summaryrefslogtreecommitdiff
path: root/Master/xemtex
diff options
context:
space:
mode:
authorStaszek Wawrykiewicz <staw@gust.org.pl>2006-12-18 03:20:19 +0000
committerStaszek Wawrykiewicz <staw@gust.org.pl>2006-12-18 03:20:19 +0000
commit34c11d2616bb32772199abf210ae88d99665a824 (patch)
treeb95fbfb76fcefd0ab1ca96dc631e2657a894ad6d /Master/xemtex
parentb0ccdf9e931213c59344f3c097608e04721149b1 (diff)
xemtex deleted
git-svn-id: svn://tug.org/texlive/trunk@2777 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/xemtex')
-rw-r--r--Master/xemtex/doc/ghostscript/API.htm671
-rw-r--r--Master/xemtex/doc/ghostscript/C-style.htm1588
-rw-r--r--Master/xemtex/doc/ghostscript/CJK.htm497
-rw-r--r--Master/xemtex/doc/ghostscript/CJKTTCID.htm409
-rw-r--r--Master/xemtex/doc/ghostscript/COPYING340
-rw-r--r--Master/xemtex/doc/ghostscript/COPYING.LGPL510
-rw-r--r--Master/xemtex/doc/ghostscript/Changes.htm288
-rw-r--r--Master/xemtex/doc/ghostscript/Current.htm272
-rw-r--r--Master/xemtex/doc/ghostscript/DLL.htm703
-rw-r--r--Master/xemtex/doc/ghostscript/Develop.htm4327
-rw-r--r--Master/xemtex/doc/ghostscript/Devices.htm6046
-rw-r--r--Master/xemtex/doc/ghostscript/Drivers.htm2538
-rw-r--r--Master/xemtex/doc/ghostscript/Fonts.htm1288
-rw-r--r--Master/xemtex/doc/ghostscript/Helpers.htm303
-rw-r--r--Master/xemtex/doc/ghostscript/Hershey.htm305
-rw-r--r--Master/xemtex/doc/ghostscript/History1.htm436
-rw-r--r--Master/xemtex/doc/ghostscript/History2.htm5231
-rw-r--r--Master/xemtex/doc/ghostscript/History3.htm8597
-rw-r--r--Master/xemtex/doc/ghostscript/History4.htm3980
-rw-r--r--Master/xemtex/doc/ghostscript/History5.htm13454
-rw-r--r--Master/xemtex/doc/ghostscript/History6.htm7293
-rw-r--r--Master/xemtex/doc/ghostscript/History7.htm5109
-rw-r--r--Master/xemtex/doc/ghostscript/Htmstyle.htm778
-rw-r--r--Master/xemtex/doc/ghostscript/Humor.htm99
-rw-r--r--Master/xemtex/doc/ghostscript/Install.htm540
-rw-r--r--Master/xemtex/doc/ghostscript/Issues.htm502
-rw-r--r--Master/xemtex/doc/ghostscript/Language.htm1897
-rw-r--r--Master/xemtex/doc/ghostscript/Lib.htm491
-rw-r--r--Master/xemtex/doc/ghostscript/Maintain.htm210
-rw-r--r--Master/xemtex/doc/ghostscript/Make.htm2766
-rw-r--r--Master/xemtex/doc/ghostscript/New-user.htm592
-rw-r--r--Master/xemtex/doc/ghostscript/News.htm96
-rw-r--r--Master/xemtex/doc/ghostscript/Projects.htm629
-rw-r--r--Master/xemtex/doc/ghostscript/Ps-style.htm514
-rw-r--r--Master/xemtex/doc/ghostscript/Ps2epsi.htm154
-rw-r--r--Master/xemtex/doc/ghostscript/Ps2pdf.htm502
-rw-r--r--Master/xemtex/doc/ghostscript/Psfiles.htm832
-rw-r--r--Master/xemtex/doc/ghostscript/README391
-rw-r--r--Master/xemtex/doc/ghostscript/Readme.htm634
-rw-r--r--Master/xemtex/doc/ghostscript/Release.htm769
-rw-r--r--Master/xemtex/doc/ghostscript/Source.htm383
-rw-r--r--Master/xemtex/doc/ghostscript/Unix-lpr.htm267
-rw-r--r--Master/xemtex/doc/ghostscript/Use.htm3036
-rw-r--r--Master/xemtex/doc/ghostscript/Xfonts.htm265
-rw-r--r--Master/xemtex/doc/ghostscript/examples/alphabet.ps62
-rw-r--r--Master/xemtex/doc/ghostscript/examples/annots.pdfbin500156 -> 0 bytes
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/all_ac1.ps221
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/all_ag1.ps218
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/all_aj1.ps218
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/all_aj2.ps214
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/all_ak1.ps215
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ac.ps120
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ag.ps120
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/gscjk_aj.ps114
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ak.ps116
-rw-r--r--Master/xemtex/doc/ghostscript/examples/cjk/iso2022.ps1256
-rw-r--r--Master/xemtex/doc/ghostscript/examples/colorcir.ps125
-rw-r--r--Master/xemtex/doc/ghostscript/examples/doretree.ps2485
-rw-r--r--Master/xemtex/doc/ghostscript/examples/escher.ps384
-rw-r--r--Master/xemtex/doc/ghostscript/examples/golfer.ps1401
-rw-r--r--Master/xemtex/doc/ghostscript/examples/grayalph.ps65
-rw-r--r--Master/xemtex/doc/ghostscript/examples/ridt91.eps135
-rw-r--r--Master/xemtex/doc/ghostscript/examples/snowflak.ps93
-rw-r--r--Master/xemtex/doc/ghostscript/examples/tiger.ps2737
-rw-r--r--Master/xemtex/doc/ghostscript/examples/vasarely.ps588
-rw-r--r--Master/xemtex/doc/ghostscript/examples/waterfal.ps80
-rw-r--r--Master/xemtex/doc/ghostscript/gs-vms.hlp293
-rw-r--r--Master/xemtex/doc/ghostscript/gs.css73
-rw-r--r--Master/xemtex/doc/ghostscript/gsdoc.el701
-rw-r--r--Master/xemtex/doc/ghostscript/index.html14
-rw-r--r--Master/xemtex/gsfonts/a010013l.afm1341
-rw-r--r--Master/xemtex/gsfonts/a010013l.pfbbin34871 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010013l.pfmbin4679 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010015l.afm1341
-rw-r--r--Master/xemtex/gsfonts/a010015l.pfbbin36354 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010015l.pfmbin4682 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010033l.afm1341
-rw-r--r--Master/xemtex/gsfonts/a010033l.pfbbin35156 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010033l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010035l.afm1341
-rw-r--r--Master/xemtex/gsfonts/a010035l.pfbbin36128 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/a010035l.pfmbin4686 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018012l.afm1341
-rw-r--r--Master/xemtex/gsfonts/b018012l.pfbbin44934 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018012l.pfmbin4681 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018015l.afm1341
-rw-r--r--Master/xemtex/gsfonts/b018015l.pfbbin44768 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018015l.pfmbin4685 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018032l.afm1341
-rw-r--r--Master/xemtex/gsfonts/b018032l.pfbbin44162 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018032l.pfmbin4685 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018035l.afm1341
-rw-r--r--Master/xemtex/gsfonts/b018035l.pfbbin44950 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/b018035l.pfmbin4689 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059013l.afm1341
-rw-r--r--Master/xemtex/gsfonts/c059013l.pfbbin46830 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059013l.pfmbin4681 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059016l.afm1341
-rw-r--r--Master/xemtex/gsfonts/c059016l.pfbbin48864 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059016l.pfmbin4681 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059033l.afm1341
-rw-r--r--Master/xemtex/gsfonts/c059033l.pfbbin45832 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059033l.pfmbin4681 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059036l.afm1341
-rw-r--r--Master/xemtex/gsfonts/c059036l.pfbbin47083 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/c059036l.pfmbin4685 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/d050000l.afm226
-rw-r--r--Master/xemtex/gsfonts/d050000l.pfbbin45955 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/d050000l.pfmbin674 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/fonts.dir44
-rw-r--r--Master/xemtex/gsfonts/fonts.scale44
-rw-r--r--Master/xemtex/gsfonts/n019003l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019003l.pfbbin36026 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019003l.pfmbin4679 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019004l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019004l.pfbbin35941 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019004l.pfmbin4679 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019023l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019023l.pfbbin38314 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019023l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019024l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019024l.pfbbin39013 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019024l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019043l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019043l.pfbbin36615 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019043l.pfmbin4686 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019044l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019044l.pfbbin37240 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019044l.pfmbin4686 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019063l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019063l.pfbbin37247 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019063l.pfmbin4690 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019064l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n019064l.pfbbin38310 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n019064l.pfmbin4690 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021003l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n021003l.pfbbin46026 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021003l.pfmbin4685 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021004l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n021004l.pfbbin44729 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021004l.pfmbin4685 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021023l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n021023l.pfbbin45458 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021023l.pfmbin4689 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021024l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n021024l.pfbbin44656 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n021024l.pfmbin4689 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022003l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n022003l.pfbbin45758 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022003l.pfmbin4679 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022004l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n022004l.pfbbin50493 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022004l.pfmbin4679 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022023l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n022023l.pfbbin44404 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022023l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022024l.afm1341
-rw-r--r--Master/xemtex/gsfonts/n022024l.pfbbin51527 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/n022024l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052003l.afm1341
-rw-r--r--Master/xemtex/gsfonts/p052003l.pfbbin52665 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052003l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052004l.afm1341
-rw-r--r--Master/xemtex/gsfonts/p052004l.pfbbin52406 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052004l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052023l.afm1341
-rw-r--r--Master/xemtex/gsfonts/p052023l.pfbbin50022 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052023l.pfmbin4683 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052024l.afm1341
-rw-r--r--Master/xemtex/gsfonts/p052024l.pfbbin51285 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/p052024l.pfmbin4687 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/s050000l.afm213
-rw-r--r--Master/xemtex/gsfonts/s050000l.pfbbin33709 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/s050000l.pfmbin682 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/z003034l.afm1341
-rw-r--r--Master/xemtex/gsfonts/z003034l.pfbbin49289 -> 0 bytes
-rw-r--r--Master/xemtex/gsfonts/z003034l.pfmbin4690 -> 0 bytes
-rw-r--r--Master/xemtex/gslib/CIDFnmap157
-rw-r--r--Master/xemtex/gslib/CIDFnmap.ARP34
-rw-r--r--Master/xemtex/gslib/CIDFnmap.Bae31
-rw-r--r--Master/xemtex/gslib/CIDFnmap.CJK289
-rw-r--r--Master/xemtex/gslib/CIDFnmap.Koc50
-rw-r--r--Master/xemtex/gslib/CIDFnmap.Ore53
-rw-r--r--Master/xemtex/gslib/CIDFnmap.Sol54
-rw-r--r--Master/xemtex/gslib/CIDFnmap.Win79
-rw-r--r--Master/xemtex/gslib/CIDFnmap.b526
-rw-r--r--Master/xemtex/gslib/CIDFnmap.gb24
-rw-r--r--Master/xemtex/gslib/CIDFnmap.ksx31
-rw-r--r--Master/xemtex/gslib/CIDFnmap.sj81
-rw-r--r--Master/xemtex/gslib/Fontmap3
-rw-r--r--Master/xemtex/gslib/Fontmap.ATB169
-rw-r--r--Master/xemtex/gslib/Fontmap.ATM186
-rw-r--r--Master/xemtex/gslib/Fontmap.GS404
-rw-r--r--Master/xemtex/gslib/Fontmap.OS2215
-rw-r--r--Master/xemtex/gslib/Fontmap.OSF163
-rw-r--r--Master/xemtex/gslib/Fontmap.SGI406
-rw-r--r--Master/xemtex/gslib/Fontmap.Sol487
-rw-r--r--Master/xemtex/gslib/Fontmap.Ult147
-rw-r--r--Master/xemtex/gslib/Fontmap.VMS424
-rw-r--r--Master/xemtex/gslib/Info-macos.plist14
-rw-r--r--Master/xemtex/gslib/acctest.ps100
-rw-r--r--Master/xemtex/gslib/addxchar.ps358
-rw-r--r--Master/xemtex/gslib/afmdiff.awk150
-rw-r--r--Master/xemtex/gslib/align.ps74
-rw-r--r--Master/xemtex/gslib/bdftops3
-rw-r--r--Master/xemtex/gslib/bdftops.bat5
-rwxr-xr-xMaster/xemtex/gslib/bdftops.cmd7
-rw-r--r--Master/xemtex/gslib/bdftops.ps796
-rw-r--r--Master/xemtex/gslib/bj8.rpd17
-rw-r--r--Master/xemtex/gslib/bj8gc12f.upp44
-rw-r--r--Master/xemtex/gslib/bj8hg12f.upp44
-rw-r--r--Master/xemtex/gslib/bj8oh06n.upp44
-rw-r--r--Master/xemtex/gslib/bj8pa06n.upp44
-rw-r--r--Master/xemtex/gslib/bj8pp12f.upp44
-rw-r--r--Master/xemtex/gslib/bj8ts06n.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a0.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a1.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a2.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a3.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a4.upp45
-rw-r--r--Master/xemtex/gslib/bjc610a5.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a6.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a7.upp44
-rw-r--r--Master/xemtex/gslib/bjc610a8.upp44
-rw-r--r--Master/xemtex/gslib/bjc610b1.upp44
-rw-r--r--Master/xemtex/gslib/bjc610b2.upp44
-rw-r--r--Master/xemtex/gslib/bjc610b3.upp44
-rw-r--r--Master/xemtex/gslib/bjc610b4.upp45
-rw-r--r--Master/xemtex/gslib/bjc610b6.upp44
-rw-r--r--Master/xemtex/gslib/bjc610b7.upp44
-rw-r--r--Master/xemtex/gslib/bjc610b8.upp44
-rw-r--r--Master/xemtex/gslib/caption.ps57
-rw-r--r--Master/xemtex/gslib/cbjc600.ppd404
-rw-r--r--Master/xemtex/gslib/cbjc800.ppd389
-rw-r--r--Master/xemtex/gslib/cdj550.upp48
-rw-r--r--Master/xemtex/gslib/cdj690.upp52
-rw-r--r--Master/xemtex/gslib/cdj690ec.upp54
-rw-r--r--Master/xemtex/gslib/cid2code.ps161
-rw-r--r--Master/xemtex/gslib/decrypt.ps14
-rw-r--r--Master/xemtex/gslib/dnj750c.upp47
-rw-r--r--Master/xemtex/gslib/dnj750m.upp59
-rw-r--r--Master/xemtex/gslib/docie.ps219
-rw-r--r--Master/xemtex/gslib/dvipdf40
-rw-r--r--Master/xemtex/gslib/eps2eps20
-rw-r--r--Master/xemtex/gslib/eps2eps.bat26
-rwxr-xr-xMaster/xemtex/gslib/eps2eps.cmd36
-rw-r--r--Master/xemtex/gslib/errpage.ps363
-rw-r--r--Master/xemtex/gslib/fixmswrd.pl208
-rw-r--r--Master/xemtex/gslib/font2c3
-rw-r--r--Master/xemtex/gslib/font2c.bat5
-rwxr-xr-xMaster/xemtex/gslib/font2c.cmd7
-rw-r--r--Master/xemtex/gslib/font2c.ps676
-rw-r--r--Master/xemtex/gslib/font2pcl.ps604
-rw-r--r--Master/xemtex/gslib/gs_agl.ps1070
-rw-r--r--Master/xemtex/gslib/gs_btokn.ps321
-rw-r--r--Master/xemtex/gslib/gs_ccfnt.ps76
-rw-r--r--Master/xemtex/gslib/gs_ce_e.ps48
-rw-r--r--Master/xemtex/gslib/gs_cff.ps758
-rw-r--r--Master/xemtex/gslib/gs_cidcm.ps511
-rw-r--r--Master/xemtex/gslib/gs_cidfn.ps702
-rw-r--r--Master/xemtex/gslib/gs_cmap.ps524
-rw-r--r--Master/xemtex/gslib/gs_cmdl.ps181
-rw-r--r--Master/xemtex/gslib/gs_css_e.ps115
-rw-r--r--Master/xemtex/gslib/gs_dbt_e.ps60
-rw-r--r--Master/xemtex/gslib/gs_diskf.ps225
-rw-r--r--Master/xemtex/gslib/gs_dpnxt.ps113
-rw-r--r--Master/xemtex/gslib/gs_dps.ps203
-rw-r--r--Master/xemtex/gslib/gs_dps1.ps142
-rw-r--r--Master/xemtex/gslib/gs_dps2.ps217
-rw-r--r--Master/xemtex/gslib/gs_dscp.ps119
-rw-r--r--Master/xemtex/gslib/gs_epsf.ps243
-rw-r--r--Master/xemtex/gslib/gs_fform.ps93
-rw-r--r--Master/xemtex/gslib/gs_fonts.ps1041
-rw-r--r--Master/xemtex/gslib/gs_frsd.ps83
-rw-r--r--Master/xemtex/gslib/gs_icc.ps115
-rw-r--r--Master/xemtex/gslib/gs_il1_e.ps67
-rw-r--r--Master/xemtex/gslib/gs_il2_e.ps64
-rw-r--r--Master/xemtex/gslib/gs_init.ps1885
-rw-r--r--Master/xemtex/gslib/gs_kanji.ps159
-rw-r--r--Master/xemtex/gslib/gs_ksb_e.ps65
-rw-r--r--Master/xemtex/gslib/gs_l.xbm29
-rw-r--r--Master/xemtex/gslib/gs_l.xpm58
-rw-r--r--Master/xemtex/gslib/gs_l2img.ps185
-rw-r--r--Master/xemtex/gslib/gs_l_m.xbm29
-rw-r--r--Master/xemtex/gslib/gs_lev2.ps935
-rw-r--r--Master/xemtex/gslib/gs_lgo_e.ps92
-rw-r--r--Master/xemtex/gslib/gs_lgx_e.ps61
-rw-r--r--Master/xemtex/gslib/gs_ll3.ps469
-rw-r--r--Master/xemtex/gslib/gs_m.xbm16
-rw-r--r--Master/xemtex/gslib/gs_m.xpm44
-rw-r--r--Master/xemtex/gslib/gs_m_m.xbm16
-rw-r--r--Master/xemtex/gslib/gs_mex_e.ps67
-rw-r--r--Master/xemtex/gslib/gs_mgl_e.ps65
-rw-r--r--Master/xemtex/gslib/gs_mro_e.ps62
-rw-r--r--Master/xemtex/gslib/gs_pdf_e.ps45
-rw-r--r--Master/xemtex/gslib/gs_pdfwr.ps495
-rw-r--r--Master/xemtex/gslib/gs_pfile.ps128
-rw-r--r--Master/xemtex/gslib/gs_rdlin.ps21
-rw-r--r--Master/xemtex/gslib/gs_res.ps928
-rw-r--r--Master/xemtex/gslib/gs_s.xbm11
-rw-r--r--Master/xemtex/gslib/gs_s.xpm36
-rw-r--r--Master/xemtex/gslib/gs_s_m.xbm11
-rw-r--r--Master/xemtex/gslib/gs_setpd.ps777
-rw-r--r--Master/xemtex/gslib/gs_statd.ps366
-rw-r--r--Master/xemtex/gslib/gs_std_e.ps74
-rw-r--r--Master/xemtex/gslib/gs_sym_e.ps84
-rw-r--r--Master/xemtex/gslib/gs_t.xbm8
-rw-r--r--Master/xemtex/gslib/gs_t.xpm28
-rw-r--r--Master/xemtex/gslib/gs_t_m.xbm8
-rw-r--r--Master/xemtex/gslib/gs_trap.ps104
-rw-r--r--Master/xemtex/gslib/gs_ttf.ps1789
-rw-r--r--Master/xemtex/gslib/gs_typ32.ps128
-rw-r--r--Master/xemtex/gslib/gs_typ42.ps45
-rw-r--r--Master/xemtex/gslib/gs_type1.ps183
-rw-r--r--Master/xemtex/gslib/gs_wan_e.ps47
-rw-r--r--Master/xemtex/gslib/gs_wl1_e.ps67
-rw-r--r--Master/xemtex/gslib/gs_wl2_e.ps67
-rw-r--r--Master/xemtex/gslib/gs_wl5_e.ps67
-rw-r--r--Master/xemtex/gslib/gsbj3
-rw-r--r--Master/xemtex/gslib/gsbj.bat5
-rw-r--r--Master/xemtex/gslib/gsdj3
-rw-r--r--Master/xemtex/gslib/gsdj.bat5
-rw-r--r--Master/xemtex/gslib/gsdj5003
-rw-r--r--Master/xemtex/gslib/gsdj500.bat5
-rw-r--r--Master/xemtex/gslib/gslj3
-rw-r--r--Master/xemtex/gslib/gslj.bat5
-rw-r--r--Master/xemtex/gslib/gslp3
-rw-r--r--Master/xemtex/gslib/gslp.bat5
-rw-r--r--Master/xemtex/gslib/gslp.ps695
-rw-r--r--Master/xemtex/gslib/gsnd3
-rw-r--r--Master/xemtex/gslib/gsnd.bat5
-rw-r--r--Master/xemtex/gslib/gsndt.bat5
-rw-r--r--Master/xemtex/gslib/gsnup.ps89
-rw-r--r--Master/xemtex/gslib/gssetgs.bat8
-rw-r--r--Master/xemtex/gslib/gst.bat5
-rw-r--r--Master/xemtex/gslib/gstt.bat5
-rw-r--r--Master/xemtex/gslib/ht_ccsto.ps3171
-rw-r--r--Master/xemtex/gslib/image-qa.ps1827
-rw-r--r--Master/xemtex/gslib/impath.ps180
-rw-r--r--Master/xemtex/gslib/jispaper.ps28
-rw-r--r--Master/xemtex/gslib/landscap.ps31
-rw-r--r--Master/xemtex/gslib/level1.ps3
-rw-r--r--Master/xemtex/gslib/lines.ps166
-rw-r--r--Master/xemtex/gslib/lp386.bat2
-rw-r--r--Master/xemtex/gslib/lp386r2.bat2
-rw-r--r--Master/xemtex/gslib/lpgs.bat5
-rw-r--r--Master/xemtex/gslib/lpr2.bat5
-rw-r--r--Master/xemtex/gslib/lprsetup.sh189
-rw-r--r--Master/xemtex/gslib/markhint.ps131
-rw-r--r--Master/xemtex/gslib/markpath.ps60
-rw-r--r--Master/xemtex/gslib/necp2x.upp35
-rw-r--r--Master/xemtex/gslib/necp2x6.upp35
-rw-r--r--Master/xemtex/gslib/packfile.ps334
-rw-r--r--Master/xemtex/gslib/pcharstr.ps127
-rw-r--r--Master/xemtex/gslib/pdf2dsc26
-rw-r--r--Master/xemtex/gslib/pdf2dsc.bat18
-rw-r--r--Master/xemtex/gslib/pdf2dsc.ps166
-rw-r--r--Master/xemtex/gslib/pdf2ps29
-rw-r--r--Master/xemtex/gslib/pdf2ps.bat24
-rwxr-xr-xMaster/xemtex/gslib/pdf2ps.cmd41
-rw-r--r--Master/xemtex/gslib/pdf_base.ps640
-rw-r--r--Master/xemtex/gslib/pdf_draw.ps1151
-rw-r--r--Master/xemtex/gslib/pdf_font.ps1224
-rw-r--r--Master/xemtex/gslib/pdf_main.ps813
-rw-r--r--Master/xemtex/gslib/pdf_ops.ps521
-rw-r--r--Master/xemtex/gslib/pdf_sec.ps361
-rw-r--r--Master/xemtex/gslib/pdfopt20
-rw-r--r--Master/xemtex/gslib/pdfopt.bat22
-rw-r--r--Master/xemtex/gslib/pdfopt.ps1126
-rw-r--r--Master/xemtex/gslib/pdfwrite.ps284
-rw-r--r--Master/xemtex/gslib/pf2afm8
-rw-r--r--Master/xemtex/gslib/pf2afm.bat17
-rwxr-xr-xMaster/xemtex/gslib/pf2afm.cmd7
-rw-r--r--Master/xemtex/gslib/pf2afm.ps497
-rw-r--r--Master/xemtex/gslib/pfbtopfa16
-rw-r--r--Master/xemtex/gslib/pfbtopfa.ps35
-rw-r--r--Master/xemtex/gslib/pftogsf.bat20
-rw-r--r--Master/xemtex/gslib/pj-gs.sh289
-rw-r--r--Master/xemtex/gslib/ppath.ps55
-rw-r--r--Master/xemtex/gslib/pphs7
-rw-r--r--Master/xemtex/gslib/pphs.ps222
-rw-r--r--Master/xemtex/gslib/prfont.ps242
-rw-r--r--Master/xemtex/gslib/printafm7
-rw-r--r--Master/xemtex/gslib/printafm.ps149
-rw-r--r--Master/xemtex/gslib/ps2ai.ps552
-rw-r--r--Master/xemtex/gslib/ps2ascii18
-rw-r--r--Master/xemtex/gslib/ps2ascii.bat15
-rwxr-xr-xMaster/xemtex/gslib/ps2ascii.cmd18
-rw-r--r--Master/xemtex/gslib/ps2ascii.ps1509
-rw-r--r--Master/xemtex/gslib/ps2epsi78
-rw-r--r--Master/xemtex/gslib/ps2epsi.bat28
-rwxr-xr-xMaster/xemtex/gslib/ps2epsi.cmd31
-rw-r--r--Master/xemtex/gslib/ps2epsi.ps248
-rw-r--r--Master/xemtex/gslib/ps2pdf7
-rw-r--r--Master/xemtex/gslib/ps2pdf.bat18
-rwxr-xr-xMaster/xemtex/gslib/ps2pdf.cmd43
-rw-r--r--Master/xemtex/gslib/ps2pdf125
-rw-r--r--Master/xemtex/gslib/ps2pdf12.bat15
-rwxr-xr-xMaster/xemtex/gslib/ps2pdf12.cmd11
-rw-r--r--Master/xemtex/gslib/ps2pdf135
-rw-r--r--Master/xemtex/gslib/ps2pdf13.bat15
-rwxr-xr-xMaster/xemtex/gslib/ps2pdf13.cmd11
-rw-r--r--Master/xemtex/gslib/ps2pdf145
-rw-r--r--Master/xemtex/gslib/ps2pdf14.bat15
-rwxr-xr-xMaster/xemtex/gslib/ps2pdf14.cmd11
-rw-r--r--Master/xemtex/gslib/ps2pdfwr36
-rw-r--r--Master/xemtex/gslib/ps2pdfxx.bat56
-rw-r--r--Master/xemtex/gslib/ps2ps20
-rw-r--r--Master/xemtex/gslib/ps2ps.bat23
-rwxr-xr-xMaster/xemtex/gslib/ps2ps.cmd36
-rw-r--r--Master/xemtex/gslib/pv.sh37
-rw-r--r--Master/xemtex/gslib/quit.ps1
-rw-r--r--Master/xemtex/gslib/ras1.upp8
-rw-r--r--Master/xemtex/gslib/ras24.upp8
-rw-r--r--Master/xemtex/gslib/ras3.upp8
-rw-r--r--Master/xemtex/gslib/ras32.upp8
-rw-r--r--Master/xemtex/gslib/ras4.upp8
-rw-r--r--Master/xemtex/gslib/ras8m.upp8
-rw-r--r--Master/xemtex/gslib/rollconv.ps385
-rw-r--r--Master/xemtex/gslib/showchar.ps94
-rw-r--r--Master/xemtex/gslib/showpage.ps1
-rw-r--r--Master/xemtex/gslib/st640ih.upp57
-rw-r--r--Master/xemtex/gslib/st640ihg.upp42
-rw-r--r--Master/xemtex/gslib/st640p.upp49
-rw-r--r--Master/xemtex/gslib/st640pg.upp34
-rw-r--r--Master/xemtex/gslib/st640pl.upp49
-rw-r--r--Master/xemtex/gslib/st640plg.upp34
-rw-r--r--Master/xemtex/gslib/stc.upp53
-rw-r--r--Master/xemtex/gslib/stc1520h.upp58
-rw-r--r--Master/xemtex/gslib/stc2.upp53
-rw-r--r--Master/xemtex/gslib/stc200_h.upp51
-rw-r--r--Master/xemtex/gslib/stc2_h.upp53
-rw-r--r--Master/xemtex/gslib/stc2s_h.upp57
-rw-r--r--Master/xemtex/gslib/stc300.upp60
-rw-r--r--Master/xemtex/gslib/stc300bl.upp40
-rw-r--r--Master/xemtex/gslib/stc300bm.upp43
-rw-r--r--Master/xemtex/gslib/stc500p.upp48
-rw-r--r--Master/xemtex/gslib/stc500ph.upp48
-rw-r--r--Master/xemtex/gslib/stc600ih.upp58
-rw-r--r--Master/xemtex/gslib/stc600p.upp34
-rw-r--r--Master/xemtex/gslib/stc600pl.upp34
-rw-r--r--Master/xemtex/gslib/stc640p.upp33
-rw-r--r--Master/xemtex/gslib/stc800ih.upp58
-rw-r--r--Master/xemtex/gslib/stc800p.upp34
-rw-r--r--Master/xemtex/gslib/stc800pl.upp34
-rw-r--r--Master/xemtex/gslib/stc_h.upp53
-rw-r--r--Master/xemtex/gslib/stc_l.upp26
-rw-r--r--Master/xemtex/gslib/stcany.upp24
-rw-r--r--Master/xemtex/gslib/stcany_h.upp24
-rw-r--r--Master/xemtex/gslib/stcinfo.ps800
-rw-r--r--Master/xemtex/gslib/stcolor.ps172
-rw-r--r--Master/xemtex/gslib/stocht.ps63
-rw-r--r--Master/xemtex/gslib/sysvlp.sh46
-rw-r--r--Master/xemtex/gslib/traceimg.ps43
-rw-r--r--Master/xemtex/gslib/traceop.ps84
-rw-r--r--Master/xemtex/gslib/type1enc.ps66
-rw-r--r--Master/xemtex/gslib/type1ops.ps238
-rw-r--r--Master/xemtex/gslib/uninfo.ps221
-rw-r--r--Master/xemtex/gslib/unix-lpr.sh161
-rw-r--r--Master/xemtex/gslib/unprot.ps68
-rw-r--r--Master/xemtex/gslib/viewcmyk.ps64
-rw-r--r--Master/xemtex/gslib/viewgif.ps161
-rw-r--r--Master/xemtex/gslib/viewjpeg.ps153
-rw-r--r--Master/xemtex/gslib/viewmiff.ps125
-rw-r--r--Master/xemtex/gslib/viewpbm.ps185
-rw-r--r--Master/xemtex/gslib/viewpcx.ps151
-rw-r--r--Master/xemtex/gslib/viewps2a.ps33
-rw-r--r--Master/xemtex/gslib/wftopfa3
-rw-r--r--Master/xemtex/gslib/wftopfa.ps304
-rw-r--r--Master/xemtex/gslib/winmaps.ps107
-rw-r--r--Master/xemtex/gslib/wmakebat.bat4
-rw-r--r--Master/xemtex/gslib/wrfont.ps663
-rw-r--r--Master/xemtex/gslib/zeroline.ps101
-rw-r--r--Master/xemtex/perl/lib/AnyDBM_File.pm93
-rw-r--r--Master/xemtex/perl/lib/AutoLoader.pm337
-rw-r--r--Master/xemtex/perl/lib/B.pm971
-rw-r--r--Master/xemtex/perl/lib/B/Deparse.pm4233
-rw-r--r--Master/xemtex/perl/lib/Carp.pm196
-rw-r--r--Master/xemtex/perl/lib/Carp/Heavy.pm247
-rw-r--r--Master/xemtex/perl/lib/Class/Struct.pm632
-rw-r--r--Master/xemtex/perl/lib/Config.pm8895
-rw-r--r--Master/xemtex/perl/lib/Cwd.pm570
-rw-r--r--Master/xemtex/perl/lib/Data/Dumper.pm1160
-rw-r--r--Master/xemtex/perl/lib/Digest/MD5.pm279
-rw-r--r--Master/xemtex/perl/lib/DynaLoader.pm826
-rw-r--r--Master/xemtex/perl/lib/Errno.pm221
-rw-r--r--Master/xemtex/perl/lib/Exporter.pm416
-rw-r--r--Master/xemtex/perl/lib/Exporter/Heavy.pm232
-rw-r--r--Master/xemtex/perl/lib/Fcntl.pm216
-rw-r--r--Master/xemtex/perl/lib/File/Basename.pm289
-rw-r--r--Master/xemtex/perl/lib/File/Compare.pm178
-rw-r--r--Master/xemtex/perl/lib/File/Copy.pm443
-rw-r--r--Master/xemtex/perl/lib/File/Find.pm1212
-rw-r--r--Master/xemtex/perl/lib/File/Glob.pm465
-rw-r--r--Master/xemtex/perl/lib/File/Path.pm267
-rw-r--r--Master/xemtex/perl/lib/File/Spec.pm292
-rw-r--r--Master/xemtex/perl/lib/File/Spec/Unix.pm482
-rw-r--r--Master/xemtex/perl/lib/File/Spec/Win32.pm370
-rw-r--r--Master/xemtex/perl/lib/File/Temp.pm1876
-rw-r--r--Master/xemtex/perl/lib/FindBin.pm183
-rw-r--r--Master/xemtex/perl/lib/Getopt/Long.pm2048
-rw-r--r--Master/xemtex/perl/lib/IO.pm47
-rw-r--r--Master/xemtex/perl/lib/IO/File.pm169
-rw-r--r--Master/xemtex/perl/lib/IO/Handle.pm613
-rw-r--r--Master/xemtex/perl/lib/IO/Seekable.pm128
-rw-r--r--Master/xemtex/perl/lib/List/Util.pm194
-rw-r--r--Master/xemtex/perl/lib/POSIX.pm950
-rw-r--r--Master/xemtex/perl/lib/SDBM_File.pm116
-rw-r--r--Master/xemtex/perl/lib/Scalar/Util.pm170
-rw-r--r--Master/xemtex/perl/lib/SelectSaver.pm54
-rw-r--r--Master/xemtex/perl/lib/Symbol.pm162
-rw-r--r--Master/xemtex/perl/lib/Term/Cap.pm651
-rw-r--r--Master/xemtex/perl/lib/Text/ParseWords.pm263
-rw-r--r--Master/xemtex/perl/lib/Text/Tabs.pm97
-rw-r--r--Master/xemtex/perl/lib/Text/Wrap.pm211
-rw-r--r--Master/xemtex/perl/lib/Tie/Hash.pm243
-rw-r--r--Master/xemtex/perl/lib/Tie/Scalar.pm140
-rw-r--r--Master/xemtex/perl/lib/Time/HiRes.pm357
-rw-r--r--Master/xemtex/perl/lib/Time/Local.pm255
-rw-r--r--Master/xemtex/perl/lib/UNIVERSAL.pm118
-rw-r--r--Master/xemtex/perl/lib/XSLoader.pm138
-rw-r--r--Master/xemtex/perl/lib/attributes.pm414
-rw-r--r--Master/xemtex/perl/lib/auto/B/B.dllbin90112 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/Cwd/Cwd.dllbin6656 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/Data/Dumper/Dumper.dllbin20992 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/Digest/MD5/MD5.dllbin12800 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/DynaLoader/autosplit.ix8
-rw-r--r--Master/xemtex/perl/lib/auto/DynaLoader/dl_expandspec.al34
-rw-r--r--Master/xemtex/perl/lib/auto/DynaLoader/dl_find_symbol_anywhere.al19
-rw-r--r--Master/xemtex/perl/lib/auto/DynaLoader/dl_findfile.al115
-rw-r--r--Master/xemtex/perl/lib/auto/Fcntl/Fcntl.dllbin10752 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/File/Glob/Glob.dllbin12800 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/IO/IO.dllbin12288 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/List/Util/Util.dllbin15872 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/POSIX.dllbin86016 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/abs.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/alarm.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/assert.al15
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/atan2.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/atexit.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/atof.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/atoi.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/atol.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/autosplit.ix153
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/bsearch.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/calloc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/chdir.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/chmod.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/chown.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/clearerr.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/closedir.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/cos.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/creat.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/div.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/errno.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/execl.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/execle.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/execlp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/execv.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/execve.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/execvp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/exit.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/exp.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fabs.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fclose.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fcntl.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fdopen.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/feof.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/ferror.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fflush.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fgetc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fgetpos.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fgets.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fileno.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fopen.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fork.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fprintf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fputc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fputs.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fread.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/free.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/freopen.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fscanf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fseek.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fsetpos.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fstat.al17
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/ftell.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/fwrite.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getc.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getchar.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getegid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getenv.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/geteuid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getgid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getgrgid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getgrnam.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getgroups.al14
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getlogin.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getpgrp.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getpid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getppid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getpwnam.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getpwuid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/gets.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/getuid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/gmtime.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/isatty.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/kill.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/labs.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/ldiv.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/link.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/load_imports.al224
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/localtime.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/log.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/longjmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/malloc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/memchr.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/memcmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/memcpy.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/memmove.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/memset.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/mkdir.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/offsetof.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/opendir.al16
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/perror.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/pow.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/printf.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/putc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/putchar.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/puts.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/qsort.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/raise.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/rand.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/readdir.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/realloc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/redef.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/remove.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/rename.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/rewind.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/rewinddir.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/rmdir.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/scanf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/setbuf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/setjmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/setvbuf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/siglongjmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/sigsetjmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/sin.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/sleep.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/sprintf.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/sqrt.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/srand.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/sscanf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/stat.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strcat.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strchr.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strcmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strcpy.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strcspn.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strerror.al14
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strlen.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strncat.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strncmp.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strncpy.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strpbrk.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strrchr.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strspn.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strstr.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/strtok.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/system.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/time.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/tmpfile.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/tolower.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/toupper.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/umask.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/ungetc.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/unimpl.al14
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/unlink.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/usage.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/utime.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/vfprintf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/vprintf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/vsprintf.al12
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/wait.al13
-rw-r--r--Master/xemtex/perl/lib/auto/POSIX/waitpid.al13
-rw-r--r--Master/xemtex/perl/lib/auto/SDBM_File/SDBM_File.dllbin20480 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/Time/HiRes/HiRes.dllbin10240 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/auto/re/re.dllbin114688 -> 0 bytes
-rw-r--r--Master/xemtex/perl/lib/base.pm94
-rw-r--r--Master/xemtex/perl/lib/bytes.pm68
-rw-r--r--Master/xemtex/perl/lib/bytes_heavy.pl8
-rw-r--r--Master/xemtex/perl/lib/constant.pm345
-rw-r--r--Master/xemtex/perl/lib/fields.pm285
-rw-r--r--Master/xemtex/perl/lib/integer.pm93
-rw-r--r--Master/xemtex/perl/lib/lib.pm205
-rw-r--r--Master/xemtex/perl/lib/newgetopt.pl75
-rw-r--r--Master/xemtex/perl/lib/overload.pm1432
-rw-r--r--Master/xemtex/perl/lib/re.pm134
-rw-r--r--Master/xemtex/perl/lib/strict.pm117
-rw-r--r--Master/xemtex/perl/lib/subs.pm40
-rw-r--r--Master/xemtex/perl/lib/unicore/ArabLink.pl49
-rw-r--r--Master/xemtex/perl/lib/unicore/ArabLnkGrp.pl98
-rw-r--r--Master/xemtex/perl/lib/unicore/Bidirectional.pl692
-rw-r--r--Master/xemtex/perl/lib/unicore/Blocks.pl116
-rw-r--r--Master/xemtex/perl/lib/unicore/Canonical.pl816
-rw-r--r--Master/xemtex/perl/lib/unicore/Category.pl1732
-rw-r--r--Master/xemtex/perl/lib/unicore/CombiningClass.pl169
-rw-r--r--Master/xemtex/perl/lib/unicore/Decomposition.pl5120
-rw-r--r--Master/xemtex/perl/lib/unicore/Exact.pl110
-rw-r--r--Master/xemtex/perl/lib/unicore/JamoShort.pl73
-rw-r--r--Master/xemtex/perl/lib/unicore/Lbrk.pl1073
-rw-r--r--Master/xemtex/perl/lib/unicore/Name.pl13869
-rw-r--r--Master/xemtex/perl/lib/unicore/Number.pl537
-rw-r--r--Master/xemtex/perl/lib/unicore/Scripts.pl371
-rw-r--r--Master/xemtex/perl/lib/unicore/To/Digit.pl274
-rw-r--r--Master/xemtex/perl/lib/unicore/To/Fold.pl849
-rw-r--r--Master/xemtex/perl/lib/unicore/To/Lower.pl760
-rw-r--r--Master/xemtex/perl/lib/unicore/To/Title.pl818
-rw-r--r--Master/xemtex/perl/lib/unicore/To/Upper.pl845
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/ASCII.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Alnum.pl423
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Alpha.pl390
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Alphabet.pl372
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Any.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Arabic.pl26
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Armenian.pl16
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/AsciiHex.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Assigned.pl398
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Bengali.pl27
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiAL.pl33
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiAN.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiB.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiBN.pl26
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiCS.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiCont.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiEN.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiES.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiET.pl36
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiL.pl366
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiLRE.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiLRO.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiNSM.pl115
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiON.pl121
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiPDF.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiR.pl26
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiRLE.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiRLO.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiS.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/BidiWS.pl20
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Blank.pl20
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Bopomofo.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Buhid.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/C.pl400
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Canadian.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Canon.pl224
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cc.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cf.pl25
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cherokee.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cn.pl399
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cntrl.pl29
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Co.pl16
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Common.pl367
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Compat.pl143
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cs.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Cyrillic.pl18
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCcircle.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCcompat.pl81
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCfinal.pl125
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCfont.pl47
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCfracti.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCinitia.pl87
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCisolat.pl110
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCmedial.pl66
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCnarrow.pl18
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCnoBrea.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCsmall.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCsquare.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCsub.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCsuper.pl22
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCvertic.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/DCwide.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Dash.pl26
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Deprecat.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Deseret.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Devanaga.pl18
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Diacriti.pl89
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Digit.pl33
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Ethiopic.pl38
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Extender.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Georgian.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Gothic.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Graph.pl398
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Grapheme.pl25
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Greek.pl40
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Gujarati.pl26
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Gurmukhi.pl27
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Han.pl25
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Hangul.pl22
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Hanunoo.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Hebrew.pl22
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/HexDigit.pl18
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Hiragana.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Hyphen.pl21
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/IdContin.pl416
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/IdStart.pl321
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Ideograp.pl20
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/IdsBinar.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/IdsTrina.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InAlphab.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InArabi2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InArabi3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InArabic.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InArmeni.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InArrows.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBasicL.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBengal.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBlockE.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBopom2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBopomo.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBoxDra.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBraill.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InBuhid.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InByzant.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCherok.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkCo2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkCo3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkCo4.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkCom.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkRad.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkSym.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkUn2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkUn3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCjkUni.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCombi2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCombi3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCombin.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InContro.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCurren.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCyril2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InCyrill.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InDesere.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InDevana.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InDingba.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InEnclo2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InEnclos.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InEthiop.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGenera.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGeomet.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGeorgi.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGothic.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGreek.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGreekA.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGreekE.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGujara.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InGurmuk.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHalfwi.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHangu2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHangu3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHangul.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHanuno.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHebrew.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHighPr.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHighSu.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InHiraga.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InIdeogr.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InIpaExt.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InKanbun.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InKangxi.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InKannad.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InKatak2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InKataka.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InKhmer.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLao.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLatin1.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLatin2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLatin3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLatinE.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLetter.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InLowSur.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMalaya.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMathe2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMathem.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMisce2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMisce3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMisce4.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMiscel.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMongol.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMusica.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InMyanma.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InNumber.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InOgham.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InOldIta.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InOptica.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InOriya.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InPrivat.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InRunic.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSinhal.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSmallF.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSpacin.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSpecia.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSupers.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSuppl2.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSuppl3.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSuppl4.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSuppl5.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSupple.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InSyriac.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InTagalo.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InTagban.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InTags.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InTamil.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InTelugu.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InThaana.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InThai.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InTibeta.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InUnifie.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InVariat.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InYiRadi.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/InYiSyll.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Inherite.pl37
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/JoinCont.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Kannada.pl25
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Katakana.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Khmer.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/L.pl319
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/L_.pl112
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lao.pl30
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Latin.pl31
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Ll.pl433
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lm.pl33
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lo.pl217
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/LogicalO.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lower.pl432
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lowercas.pl439
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lt.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Lu.pl432
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/M.pl125
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Malayala.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Math.pl101
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Mc.pl65
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Me.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Mirrored.pl105
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Mn.pl117
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Mongolia.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Myanmar.pl19
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/N.pl56
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Nd.pl34
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Nl.pl19
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/No.pl33
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Nonchara.pl30
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Ogham.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OldItali.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Oriya.pl26
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OtherAlp.pl99
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OtherDef.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OtherGra.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OtherLow.pl19
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OtherMat.pl76
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/OtherUpp.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/P.pl97
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Pc.pl20
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Pd.pl25
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Pe.pl75
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Pf.pl17
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Pi.pl18
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Po.pl83
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Print.pl400
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Ps.pl77
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Punct.pl96
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Quotatio.pl24
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Radical.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Runic.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/S.pl159
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Sc.pl24
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Sinhala.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Sk.pl35
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Sm.pl71
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/So.pl117
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/SoftDott.pl19
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Space.pl21
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/SpacePer.pl23
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Syriac.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Tagalog.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Tagbanwa.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Tamil.pl28
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Telugu.pl24
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Terminal.pl48
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Thaana.pl13
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Thai.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Tibetan.pl25
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Title.pl22
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/UnifiedI.pl22
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Upper.pl431
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Uppercas.pl433
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/WhiteSpa.pl21
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Word.pl424
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/XDigit.pl15
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Yi.pl18
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Z.pl21
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Zl.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Zp.pl14
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/Zs.pl20
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/_CanonDC.pl16
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/_CaseIgn.pl118
-rw-r--r--Master/xemtex/perl/lib/unicore/lib/_CombAbo.pl54
-rw-r--r--Master/xemtex/perl/lib/utf8.pm152
-rw-r--r--Master/xemtex/perl/lib/utf8_heavy.pl344
-rw-r--r--Master/xemtex/perl/lib/vars.pm82
-rw-r--r--Master/xemtex/perl/lib/warnings.pm489
-rw-r--r--Master/xemtex/perl/lib/warnings/register.pm51
-rw-r--r--Master/xemtex/perl/site/lib/Tk.pm696
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Adjuster.pm435
-rw-r--r--Master/xemtex/perl/site/lib/Tk/After.pm88
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Bitmap.pm18
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Button.pm148
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Camel.xpm41
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Canvas.pm60
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Checkbutton.pm42
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Clipboard.pm110
-rw-r--r--Master/xemtex/perl/site/lib/Tk/CmdLine.pm954
-rw-r--r--Master/xemtex/perl/site/lib/Tk/ColorEdit.xpm58
-rw-r--r--Master/xemtex/perl/site/lib/Tk/ColorEditor.pm759
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Config.pm12
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Configure.pm69
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Derived.pm510
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Dialog.pm70
-rw-r--r--Master/xemtex/perl/site/lib/Tk/DialogBox.pm115
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Entry.pm517
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Event.pm13
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Event/IO.pm122
-rw-r--r--Master/xemtex/perl/site/lib/Tk/FBox.pm891
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Frame.pm373
-rw-r--r--Master/xemtex/perl/site/lib/Tk/IconList.pm536
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Image.pm73
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Label.pm21
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Listbox.pm856
-rw-r--r--Master/xemtex/perl/site/lib/Tk/MainWindow.pm188
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Menu.pm1130
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Menu/Item.pm180
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Menubutton.pm398
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Optionmenu.pm110
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Pixmap.pm19
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Pretty.pm93
-rw-r--r--Master/xemtex/perl/site/lib/Tk/ROText.pm36
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Radiobutton.pm45
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Scale.pm278
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Scrollbar.pm414
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Submethods.pm46
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Text.pm1600
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Text/Tag.pm46
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Tk.xbm44
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Tk.xpm41
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Toplevel.pm211
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Widget.pm1298
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Wm.pm165
-rw-r--r--Master/xemtex/perl/site/lib/Tk/X.pm398
-rw-r--r--Master/xemtex/perl/site/lib/Tk/X11/license.terms32
-rw-r--r--Master/xemtex/perl/site/lib/Tk/Xcamel.gifbin4193 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/Tk/act_folder.xbm5
-rw-r--r--Master/xemtex/perl/site/lib/Tk/act_folder.xpm22
-rw-r--r--Master/xemtex/perl/site/lib/Tk/anim.gifbin2533 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/Tk/balArrow.xbm4
-rw-r--r--Master/xemtex/perl/site/lib/Tk/cbxarrow.xbm6
-rw-r--r--Master/xemtex/perl/site/lib/Tk/file.xbm5
-rw-r--r--Master/xemtex/perl/site/lib/Tk/file.xpm18
-rw-r--r--Master/xemtex/perl/site/lib/Tk/folder.xbm5
-rw-r--r--Master/xemtex/perl/site/lib/Tk/folder.xpm21
-rw-r--r--Master/xemtex/perl/site/lib/Tk/icon.gifbin1924 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/Tk/license.terms35
-rw-r--r--Master/xemtex/perl/site/lib/Tk/openfile.xbm5
-rw-r--r--Master/xemtex/perl/site/lib/Tk/openfolder.xbm5
-rw-r--r--Master/xemtex/perl/site/lib/Tk/openfolder.xpm21
-rw-r--r--Master/xemtex/perl/site/lib/Tk/prolog.ps284
-rw-r--r--Master/xemtex/perl/site/lib/Tk/srcfile.xpm18
-rw-r--r--Master/xemtex/perl/site/lib/Tk/textfile.xpm18
-rw-r--r--Master/xemtex/perl/site/lib/Tk/tranicon.gifbin1718 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/Tk/widgets.pm21
-rw-r--r--Master/xemtex/perl/site/lib/Tk/win.xbm6
-rw-r--r--Master/xemtex/perl/site/lib/Tk/winfolder.xpm39
-rw-r--r--Master/xemtex/perl/site/lib/Tk/wintext.xpm42
-rw-r--r--Master/xemtex/perl/site/lib/Win32/API.pm719
-rw-r--r--Master/xemtex/perl/site/lib/Win32/API/Struct.pm528
-rw-r--r--Master/xemtex/perl/site/lib/Win32/API/Type.pm440
-rw-r--r--Master/xemtex/perl/site/lib/XML/Parser.pm1089
-rw-r--r--Master/xemtex/perl/site/lib/XML/Parser/Expat.pm1231
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Bitmap/Bitmap.dllbin6144 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/CancelRepeat.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Canvas/Canvas.dllbin139264 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Clipboard/autosplit.ix6
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Clipboard/getSelected.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/EnterFocus.al26
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Entry/Entry.dllbin23040 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Error.al20
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Event/Event.dllbin53248 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/FirstMenu.al21
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/FocusChildren.al35
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/FocusOK.al33
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/AddScrollbars.al52
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/FindMenu.al22
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/autosplit.ix24
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/freeze_on_map.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/label.al24
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/labelPack.al50
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/labelVariable.al27
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/packscrollbars.al86
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/queuePack.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/sbset.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Frame/scrollbars.al24
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/ImageNames.al13
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/ImageTypes.al13
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/AutoScan.al48
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginExtend.al29
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginSelect.al45
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginToggle.al39
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/ButtonRelease_1.al16
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cancel.al43
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_End.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_Home.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_backslash.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/DataExtend.al39
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/ExtendUpDown.al30
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/Listbox.dllbin20992 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/Motion.al66
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/SelectAll.al31
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/SetList.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/UpDown.al39
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/autosplit.ix42
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/clipboardPaste.al21
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/deleteSelected.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/getSelected.al22
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Listbox/xyIndex.al27
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Menubutton/Menubutton.dllbin14848 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Pixmap/Pixmap.dllbin19968 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Receive.al23
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/RepeatId.al16
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/Activate.al33
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonDown.al40
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonUp.al16
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/ControlPress.al31
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/Drag.al29
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/EndDrag.al23
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/Enter.al19
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/Increment.al61
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/Leave.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/Scale.dllbin20992 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scale/autosplit.ix22
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonDown.al55
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonUp.al26
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Drag.al44
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/EndDrag.al29
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Enter.al21
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Leave.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Motion.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByPages.al38
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByUnits.al37
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlToPos.al35
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlTopBottom.al32
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Scrollbar.dllbin15872 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Select.al59
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/StartDrag.al33
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/autosplit.ix30
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Selection.al18
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Text/Text.dllbin94208 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Text/autosplit.ix3
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Tk.dllbin573440 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindIn.al19
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindOut.al20
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Create.al56
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Destroy.al29
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_In.al24
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Out.al32
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Toplevel/autosplit.ix10
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/TraverseToMenu.al27
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Widget/ASkludge.al30
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Widget/autosplit.ix10
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Widget/clipboardKeysyms.al51
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Widget/pathname.al15
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Wm/AnchorAdjust.al17
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Wm/FullScreen.al29
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Wm/Popup.al45
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Wm/Post.al20
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Wm/autosplit.ix14
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/Wm/iconposition.al24
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/X/X.dllbin19968 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/X/autosplit.ix3
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/autosplit.ix43
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/break.al13
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/focusFollowsMouse.al14
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/focusNext.al45
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/focusPrev.al65
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/interps.al14
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/lsearch.al19
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/tabFocus.al13
-rw-r--r--Master/xemtex/perl/site/lib/auto/Tk/updateWidgets.al17
-rw-r--r--Master/xemtex/perl/site/lib/auto/Win32/API/API.dllbin20480 -> 0 bytes
-rw-r--r--Master/xemtex/perl/site/lib/auto/XML/Parser/Expat/Expat.dllbin163840 -> 0 bytes
1196 files changed, 0 insertions, 292306 deletions
diff --git a/Master/xemtex/doc/ghostscript/API.htm b/Master/xemtex/doc/ghostscript/API.htm
deleted file mode 100644
index 01eff34f577..00000000000
--- a/Master/xemtex/doc/ghostscript/API.htm
+++ /dev/null
@@ -1,671 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>The Ghostscript Interpreter Application Programming Interface (API)</title>
-<!-- $Id: API.htm,v 1.11.2.13.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Supercedes the API in DLL.htm -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>The Ghostscript Interpreter Application Programming Interface (API)</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<ul>
-<li><a href="#API">What is the Ghostscript Interpreter API?</a>
-<li><a href="#Exported_functions ">Exported functions</a>
-<ul>
-<li><a href="#revision"><b><tt>gsapi_revision</tt></b></a>
-<li><a href="#new_instance"><b><tt>gsapi_new_instance</tt></b></a>
-<li><a href="#delete_instance"><b><tt>gsapi_delete_instance</tt></b></a>
-<li><a href="#set_stdio"><b><tt>gsapi_set_stdio</tt></b></a>
-<li><a href="#set_poll"><b><tt>gsapi_set_poll</tt></b></a>
-<li><a href="#set_display_callback"><b><tt>gsapi_set_display_callback</tt></b></a>
-<li><a href="#init"><b><tt>gsapi_init_with_args</tt></b></a>
-<li><a href="#run"><b><tt>gsapi_run_*</tt></b></a>
-<li><a href="#exit"><b><tt>gsapi_exit</tt></b></a>
-<li><a href="#return_codes">Return codes</a>
-</ul>
-<li><a href="#Example_usage">Example usage</a>
-<li><a href="#stdio">Standard input and output</a>
-<li><a href="#display">Display device</a>
-</ul>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<p>
-<b>WARNING:</b> The API described in this document is subject to changes in
-future releases, possibly ones that are not backward compatible with what
-is described here.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-
-<h2><a name="API"></a>What is the Ghostscript Interpreter API?</h2>
-
-<p>
-The Ghostscript interpreter can be built as a dynamic link library
-(DLL) on the Windows or OS/2 platforms, as a shared object on the
-GNU/Linux platform and as a framework on MacOS X.
-With some changes, it could be built as a static library.
-This document describes the Application Programming Interface (API)
-for the Ghostscript interpreter library.
-This should not be confused with the
-<a href="Lib.htm">Ghostscript library</a> which provides a graphics
-library but not the interpreter.
-<p>
-This supercedes the old <a href="DLL.htm">DLL</a> interface.
-<p>
-To provide the interface described in the
-<a href="Use.htm">usage documentation</a>, a smaller independent
-executable loads the DLL/shared object.
-This executable provides all the interaction with the windowing system,
-including image windows and, if necessary, a text window.
-
-<p>
-The Ghostscript interpreter library's name and characteristics differ
-for each platform:
-
-<ul>
-<li>The Win32 DLL <b><tt>gsdll32.dll</tt></b> has
-MULTIPLE NONSHARED data segments. Under Win32s it can be used by only one
-program at a time, but under Windows 95/98 or Windows NT it can be called by
-multiple programs simultaneously.
-
-<li>The OS/2 DLL <b><tt>gsdll2.dll</tt></b> has
-MULTIPLE NONSHARED data segments and can be called by multiple programs
-simultaneously.
-
-<li>The GNU/Linux shared object <b><tt>libgs.so</tt></b>
-can be used by multiple programs simultaneously.
-
-<li>The MacOS X <b><tt>Ghostscript.framework</tt></b> can also be used
-by multiple applications at once.
-</ul>
-
-<p>
-The source for the executable is in <b><tt>dw</tt></b>*.* (Windows),
-<b><tt>dp</tt></b>*.* (OS/2) and <b><tt>dx</tt></b>*.* (GNU/Linux).
-See these source files for examples of how to use the DLL.
-
-<p>
-The source file <tt>dxmainc.c</tt> can serve as an example of how to use the
-framework shared component on MacOS X. Just change the header includes to use
-the Ghostscript namespace:
-<blockquote><pre><tt>#include &lt;Ghostscript/errors.h&gt;
-#include &lt;Ghostscript/iapi.h&gt;</tt></pre></blockquote>
-and link with:
-<blockquote><pre><tt>cc -o gsc dxmainc.c -framework Ghostscript</tt></pre></blockquote>
-To get a useable executable. <tt>Ghostscript.framework</tt> must be properly
-installed in the search path for this to work.
-
-<p>
-At this stage, Ghostscript does not support multiple instances
-of the interpreter within a single process.
-
-<hr>
-
-<h2><a name="Exported_functions"></a>Exported functions</h2>
-
-<p>
-The functions exported by the DLL/shared object are described
-in the header file <a href="../src/iapi.h"><b><tt>iapi.h</tt></b></a>
-and are summarised below. Omitted from the summary are
-the calling convention (e.g. __stdcall), details of return
-values and error handling.
-
-
-<ul>
-<li><b><tt>
-int
-<a href="#revision">gsapi_revision</a>
- (gsapi_revision_t *pr, int len));
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#new_instance">gsapi_new_instance</a>
-(gs_main_instance **pinstance, void *caller_handle);
-</tt></b>
-
-<li><b><tt>
-void
-<a href="#delete_instance">gsapi_delete_instance</a>
-(gs_main_instance *instance);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#set_stdio">gsapi_set_stdio</a>
-(gs_main_instance *instance,
- int(*stdin_fn)(void *caller_handle, char *buf, int len),
- int(*stdout_fn)(void *caller_handle, const char *str, int len),
- int(*stderr_fn)(void *caller_handle, const char *str, int len));
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#set_poll">gsapi_set_poll</a>
-(gs_main_instance *instance, int(*poll_fn)(void *caller_handle));
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#set_display_callback">gsapi_set_display_callback</a>
-(gs_main_instance *instance, display_callback *callback);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#init">gsapi_init_with_args</a>
-(gs_main_instance *instance, int argc, char **argv);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#run">gsapi_run_string_begin</a>
-(gs_main_instance *instance, int user_errors, int *pexit_code);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#run">gsapi_run_string_continue</a>
-(gs_main_instance *instance,
- const char *str, unsigned int length, int user_errors, int *pexit_code);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#run">gsapi_run_string_end</a>
-(gs_main_instance *instance, int user_errors, int *pexit_code);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#run">gsapi_run_string_with_length</a>
-(gs_main_instance *instance,
- const char *str, unsigned int length, int user_errors, int *pexit_code);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#run">gsapi_run_string</a>
-(gs_main_instance *instance,
- const char *str, int user_errors, int *pexit_code);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#run">gsapi_run_file</a>
-(gs_main_instance *instance,
- const char *file_name, int user_errors, int *pexit_code);
-</tt></b>
-
-<li><b><tt>
-int
-<a href="#exit">gsapi_exit</a>
-(gs_main_instance *instance);
-</tt></b>
-
-</ul>
-
-<h3><a name="revision"></a><b><tt>gsapi_revision()</tt></b></h3>
-
-<blockquote>
-This function returns the revision numbers and strings of the Ghostscript
-interpreter library; you should call it before any other interpreter
-library functions to make sure that the correct version of the
-Ghostscript interpreter has been loaded.
-
-<blockquote>
-<pre>
-typedef struct gsapi_revision_s {
- const char *product;
- const char *copyright;
- long revision;
- long revisiondate;
-} gsapi_revision_t;
-gsapi_revision_t r;
-
-if (gsapi_revision(&amp;r, sizeof(r)) == 0) {
- if (r.revision < 650)
- printf("Need at least Ghostscript 6.50");
-}
-else {
- printf("revision structure size is incorrect");
-}
-</pre></blockquote>
-</blockquote>
-
-
-<h3><a name="new_instance"></a><b><tt>gsapi_new_instance()</tt></b></h3>
-<blockquote>
-Create a new instance of Ghostscript.
-This instance is passed to most other gsapi functions.
-The caller_handle will be provided to callback functions.
-<b>At this stage, Ghostscript supports only one instance</b>.
-</blockquote>
-
-
-<h3><a name="delete_instance"></a><b><tt>gsapi_delete_instance()</tt></b></h3>
-<blockquote>
-Destroy an instance of Ghostscript.
-Before you call this, Ghostscript must have finished.
-If Ghostscript has been initialised, you must call
-<b><tt>gsapi_exit</tt></b> before <b><tt>gsapi_delete_instance</tt></b>.
-</blockquote>
-
-
-<h3><a name="set_stdio"></a><b><tt>gsapi_set_stdio()</tt></b></h3>
-<blockquote>
-Set the callback functions for stdio
-The stdin callback function should return the number of
-characters read, 0 for EOF, or -1 for error.
-The stdout and stderr callback functions should return
-the number of characters written.
-</blockquote>
-
-
-<h3><a name="set_poll"></a><b><tt>gsapi_set_poll()</tt></b></h3>
-<blockquote>
-Set the callback function for polling.
-This is used for handling window events or cooperative
-multitasking. This function will only be called if
-the Ghostscript interpreter was compiled with <b><tt>CHECK_INTERRUPTS</tt></b>
-as described in <b><tt><a href="../src/gpcheck.h">gpcheck.h</a></tt></b>.
-</blockquote>
-
-<h3><a name="set_display_callback"></a><b><tt>gsapi_set_display_callback()</tt></b></h3>
-<blockquote>
-Set the callback structure for the <a href="#display">display</a>
-device. If the <a href="#display">display</a> device is used,
-this must be called after
-<b><tt>gsapi_new_instance()</tt></b>
-and before <b><tt>gsapi_init_with_args()</tt></b>.
-See <b><tt><a href="../src/gdevdsp.h">gdevdsp.h</a></tt></b>
-for more details.
-</blockquote>
-
-<h3><a name="init"></a><b><tt>gsapi_init_with_args()</tt></b></h3>
-<blockquote>
-Initialise the interpreter.
-This calls <b><tt>gs_main_init_with_args()</tt></b> in
-<b><tt><a href="../src/imainarg.c">imainarg.c</a></tt></b>.
-See below for <a href="#return_codes">return codes</a>.
-The arguments are the same as the "C" main function:
-argv[0] is ignored and the user supplied arguments
-are argv[1] to argv[argc-1].
-</blockquote>
-
-<h3><a name="run"></a><b><tt>gsapi_run_*()</tt></b></h3>
-<blockquote>
-The <b><tt>gsapi_run_*</tt></b> functions are like
-<b><tt>gs_main_run_*</tt></b> except that the error_object is omitted.
-If these functions return <= -100, either quit or a fatal
-error has occured. You must call <b><tt>gsapi_exit()</tt></b> next.
-The only exception is <b><tt>gsapi_run_string_continue()</tt></b>
-which will return <b><tt>e_NeedInput</tt></b> if all is well.
-See below for <a href="#return_codes">return codes</a>.
-</blockquote>
-
-<h3><a name="exit"></a><b><tt>gsapi_exit()</tt></b></h3>
-<blockquote>
-Exit the interpreter.
-This must be called on shutdown if <b><tt>gsapi_init_with_args()</tt></b>
-has been called, and just before <b><tt>gsapi_delete_instance()</tt></b>.
-</blockquote>
-
-<h3><a name="return_codes"></a>Return codes</h3>
-
-<p>
-The <b><tt>gsapi_init_with_args</tt></b>, <b><tt>gsapi_run_*</tt></b> and
-<b><tt>gsapi_exit</tt></b> functions return an integer code.
-
-<p>
-<table width="80%" align="center" cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Return codes from <b><tt>gsapi_*()</tt></b></font><hr>
-<tr valign=bottom>
- <th align=left>Code
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Status
-<tr> <td colspan=3><hr>
-<tr valign=top> <td align=left>0
- <td>&nbsp;
- <td>No errors
-<tr valign=top> <td align=left>e_Quit
- <td>&nbsp;
- <td>"<b><tt>quit</tt></b>" has been executed.
- This is not an error.
- <b><tt>gsapi_exit()</tt></b> must be called next.
-<tr valign=top> <td align=left>e_NeedInput
- <td>&nbsp;
- <td>More input is needed by
- <b><tt>gsapi_run_string_continue()</tt></b>.
- This is not an error.
-<tr valign=top> <td align=left>e_Info
- <td>&nbsp;
- <td>"<b><tt>gs -h</tt></b>" has been executed.
- This is not an error.
- <b><tt>gsapi_exit()</tt></b> must be called next.
-<tr valign=top> <td align=left>&lt; 0
- <td>&nbsp;
- <td>Error
-<tr valign=top> <td align=left>&lt;= -100
- <td>&nbsp;
- <td>Fatal error.
-<b><tt>gsapi_exit()</tt></b> must be called next.
-</table>
-</blockquote>
-
-<p>
-The <b><tt>gsapi_run_*()</tt></b> functions do not flush stdio.
-If you want to see output from Ghostscript you
-must do this explicitly as shown in the example below.
-
-<p>
-When executing a string with <b><tt>gsapi_run_string_*()</tt></b>,
-<b><tt>currentfile</tt></b> is the input from the string.
-Reading from <b><tt>%stdin</tt></b> uses the stdin callback.
-</blockquote>
-
-
-
-<h2><a name="Example_usage"></a>Example Usage</h2>
-Some overly simple examples of using the Ghostscript interpreter library are:
-
-<h3>Example 1</h3>
-<pre>
-/* Example of using GS DLL as a ps2pdf converter. */
-
-#ifdef _Windows
-/* Compile with:
- * cl -D_Windows -Isrc -Febin\ps2pdf.exe ps2pdf.c bin\gsdll32.lib
- */
-#include &lt;windows.h&gt;
-#define GSDLLEXPORT __declspec(dllimport)
-#endif
-
-#include "errors.h"
-#include "iapi.h"
-
-gs_main_instance *minst;
-
-int main(int argc, char *argv[])
-{
- int code;
- int exit_code;
- const char * gsargv[10];
- int gsargc;
- gsargv[0] = "ps2pdf"; /* actual value doesn't matter */
- gsargv[1] = "-dNOPAUSE";
- gsargv[2] = "-dBATCH";
- gsargv[3] = "-dSAFER";
- gsargv[4] = "-sDEVICE=pdfwrite";
- gsargv[5] = "-sOutputFile=out.pdf";
- gsargv[6] = "-c";
- gsargv[7] = ".setpdfwrite";
- gsargv[8] = "-f";
- gsargv[9] = "input.ps";
- gsargc=10;
-
- code = gsapi_new_instance(&minst, NULL);
- if (code &lt; 0)
- return 1;
- code = gsapi_init_with_args(minst, gsargc, gsargv);
- gsapi_exit(minst);
-
- gsapi_delete_instance(minst);
-
- if ((code == 0) || (code == e_Quit))
- return 0;
- return 1;
-}
-</pre>
-
-<h3>Example 2</h3>
-<pre>
-/* Similar to command line gs */
-
-#include &lt;stdio.h&gt;
-#include "errors.h"
-#include "iapi.h"
-
-/* stdio functions */
-static int GSDLLCALL
-gsdll_stdin(void *instance, char *buf, int len)
-{
- int ch;
- int count = 0;
- while (count &lt; len) {
- ch = fgetc(stdin);
- if (ch == EOF)
- return 0;
- *buf++ = ch;
- count++;
- if (ch == '\n')
- break;
- }
- return count;
-}
-
-static int GSDLLCALL
-gsdll_stdout(void *instance, const char *str, int len)
-{
- fwrite(str, 1, len, stdout);
- fflush(stdout);
- return len;
-}
-
-static int GSDLLCALL
-gsdll_stderr(void *instance, const char *str, int len)
-{
- fwrite(str, 1, len, stderr);
- fflush(stderr);
- return len;
-}
-
-gs_main_instance *minst;
-const char start_string[] = "systemdict /start get exec\n";
-
-int main(int argc, char *argv[])
-{
- int code;
- int exit_code;
-
- code = gsapi_new_instance(&minst, NULL);
- if (code < 0)
- return 1;
- gsapi_set_stdio(minst, gsdll_stdin, gsdll_stdout, gsdll_stderr);
- code = gsapi_init_with_args(minst, argc, argv);
- if (code == 0)
- code = gsapi_run_string(minst, start_string, 0, &exit_code);
- gsapi_exit(minst);
-
- gsapi_delete_instance(minst);
-
- if ((code == 0) || (code == e_Quit))
- return 0;
- return 1;
-}
-</pre>
-
-<h3>Example 3</h3>
-
-Replace main() in either of the above with the following code,
-showing how you can feed Ghostscript piecemeal:
-<pre>
-const char *command = "1 2 add == flush\n";
-
-int main(int argc, char *argv[])
-{
- int code;
- int exit_code;
-
- code = gsapi_new_instance(&minst, NULL);
- if (code < 0)
- return 1;
- code = gsapi_init_with_args(minst, argc, argv);
-
- if (code == 0) {
- gsapi_run_string_begin(minst, 0, &exit_code);
- gsapi_run_string_continue(minst, command, strlen(command), 0, &exit_code);
- gsapi_run_string_continue(minst, "qu", 2, 0, &exit_code);
- gsapi_run_string_continue(minst, "it", 2, 0, &exit_code);
- gsapi_run_string_end(minst, 0, &exit_code);
- }
-
- gsapi_exit(minst);
-
- gsapi_delete_instance(minst);
-
- if ((code == 0) || (code == e_Quit))
- return 0;
- return 1;
-}
-</pre>
-
-
-<h2><a name="Multiple_threads"></a>Multiple threads</h2>
-The Ghostscript library should have been compiled with a
-thread safe run time library.
-Synchronisation of threads is entirely up to the caller.
-
-<h2><a name="stdio"></a>Standard input and output</h2>
-<p>
-When using the Ghostscript interpreter library interface, you have a
-choice of two standard input/output methods.
-<ul>
-<li>If you do nothing, the "C" stdio will be used.
-<li>If you use <b><tt>gsapi_set_stdio()</tt></b>, all stdio will
- be redirected to the callback functions you provide.
- This would be used in a graphical user interface environment
- where stdio is not available, or where you wish to process
- Ghostscript input or output.
-</ul>
-<p>
-The callback functions are described in
-<a href="../src/iapi.h"><b><tt>iapi.h</tt></b></a>.
-
-
-<h2><a name="display"></a>Display device</h2>
-<p>
-The <b><tt>display</tt></b> device is available for use with
-the Ghostscript interpreter library. This is described in the file
-<b><tt><a href="../src/gdevdsp.h">gdevdsp.h</a></tt></b>.
-This device provides you with access to the raster output of
-Ghostscript. It is your responsibility to copy this raster
-to a display window or printer.
-<p>
-To use this device, you must provide a callback structure
-with addresses of a number of callback functions.
-The address of the callback structure is provided using
-<b><tt>gsapi_set_display_callback()</tt></b>.
-This must be called after
-<b><tt>gsapi_new_instance()</tt></b>
-and before
-<b><tt>gsapi_init_with_args()</tt></b>.
-<p>
-The callbacks are for device open, close, resize, sync, page,
-memory allocation and updating.
-Each callback function contains a handle can be set using
-<blockquote>
- -dDisplayHandle=1234
-</blockquote>
-<p>
-The device raster format can be configured using
-<blockquote>
- -dDisplayFormat=NNNN
-</blockquote>
-Options include
-<ul>
-<li> native, gray, RGB or CMYK color spaces.
-<li> alpha byte (ignored).
-<li> 1 to 16 bits/component.
-<li> bigendian (RGB) or littleendian (BGR) order.
-<li> top first or bottom first raster.
-<li> 16 bits/pixel with 555 or 565 bitfields.
-</ul>
-The format values are described in
-<b><tt><a href="../src/gdevdsp.h">gdevdsp.h</a></tt></b>.
-The format is flexible enough to support common Windows, OS/2, GNU/Linux
-and Mac raster formats. To select the display device with a
-Windows 24-bit RGB raster:
-<pre>
- char **nargv;
- char arg1[64];
- char arg2[64];
- char arg3[64];
- code = gsapi_new_instance(&minst, NULL);
- gsapi_set_stdio(minst, gsdll_stdin, gsdll_stdout, gsdll_stderr);
- code = gsapi_set_display_callback(minst, &display_callback);
- sprintf(arg1, "-sDEVICE=display");
- sprintf(arg2, "-dDisplayHandle=%d", 0);
- sprintf(arg3, "-dDisplayFormat=%d",
- DISPLAY_COLORS_RGB | DISPLAY_ALPHA_NONE | DISPLAY_DEPTH_8 |
- DISPLAY_LITTLEENDIAN | DISPLAY_BOTTOMFIRST);
- nargv = (char **)malloc((argc + 4) * sizeof(char *));
- nargv[0] = argv[0];
- nargv[1] = arg1;
- nargv[2] = arg2;
- nargv[3] = arg3;
- memcpy(nargv + 4, argv + 1, argc * sizeof(char *));
- argc += 3;
- code = gsapi_init_with_args(minst, argc, nargv);
-</pre>
-
-<p>
-The display device provides you with the address and size of the
-raster using the <b><tt>display_size()</tt></b> callback.
-You are then responsible for displaying this raster.
-Some examples are in
-<b><tt><a href="../src/dwmain.c">dwmain.c</a></tt></b> (Windows),
-<b><tt><a href="../src/dpmain.c">dpmain.c</a></tt></b> (OS/2) and
-<b><tt><a href="../src/dxmain.c">dxmain.c</a></tt></b> (X11/GNU/Linux).
-
-<p>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-
-<p>
-<small>Copyright &copy; 2001 artofcode LLC. All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/C-style.htm b/Master/xemtex/doc/ghostscript/C-style.htm
deleted file mode 100644
index 0e17e4d5e0e..00000000000
--- a/Master/xemtex/doc/ghostscript/C-style.htm
+++ /dev/null
@@ -1,1588 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript C coding guidelines</title>
-<!-- $Id: C-style.htm,v 1.21.2.11.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: c-style.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Ghostscript C coding guidelines</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#C_language">C language do's and don'ts</a>
-<ul>
-<li>Preprocessor:
- <a href="#Conditionals">Conditionals</a>,
- <a href="#Macros">Macros</a>,
- <a href="#Preprocessor_other">Other</a>
-<li><a href="#Lexical_elements">Lexical elements</a>
-<li><a href="#Scoping">Scoping</a>
-<li>Data types:
- <a href="#Scalars">Scalars</a>,
- <a href="#Arrays">Arrays</a>,
- <a href="#Typedefs">Typedefs</a>,
- <a href="#Structures">Structures</a>,
- <a href="#Unions">Unions</a>
-<li><a href="#Expressions">Expressions</a>
-<li><a href="#Statements">Statements</a>
-<li><a href="#Procedures">Procedures</a> (prototypes and definitions)
-<li><a href="#Standard_library">Standard library</a>
-</ul>
-<li><a href="#Language_extensions">Language extensions</a>
-<li><a href="#Stylistic_conventions">Stylistic conventions</a>
-<ul>
-<li>Formatting:
- <a href="#Indentation">Indentation</a>,
- <a href="#Spaces">Spaces</a>,
- <a href="#Parentheses">Parentheses</a>
-<li><a href="#Preprocessor_style">Preprocessor</a>
-<li><a href="#Naming">Naming</a>
-<li><a href="#Types">Types</a>
-<li><a href="#Procedures_style">Procedures</a>,
-<li>Miscellany:
- <a href="#Local_variables">Local variables</a>,
- <a href="#Compiler_warnings">Compiler warnings</a>
-</ul>
-<li><a href="#File_structuring">File structuring and naming</a>
-<ul>
-<li><a href="#All_files">All files</a>
-<li><a href="#Makefiles">Makefiles</a>
-<li><a href="#General_C_code">General C Code</a>
-<li><a href="#Headers">Headers (<b><tt>.h</tt></b> files)</a>
-<li><a href="#Source">Source (<b><tt>.c</tt></b> files)</a>
-</ul>
-<li><a href="#Conventions">Ghostscript conventions</a>
-<ul>
-<li><a href="#Specific_names">Specific names</a>:
- <a href="#code"><b><tt>code</tt></b></a>,
- <a href="#status"><b><tt>status</tt></b></a>
-<li><a href="#Structure_type_descriptors">Structure type descriptors</a>
-<li><a href="#Objects">"Objects"</a>
-<li><a href="#Error_handling">Error handling</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-This document describes Ghostscript's C coding conventions. It is primarily
-<em>prescriptive</em>, documenting what developers should do when writing
-new code; the companion developer documentation (<a
- href="Develop.htm">Develop.htm</a>) is primarily <em>descriptive</em>,
-documenting the way things are.
-
-<p>
-We encourage following the general language usage and stylistic rules for
-any code that will be integrated with Ghostscript, even if the code doesn't
-use Ghostscript's run-time facilities or have anything to do with
-PostScript, PDF, or page description languages. Ghostscript itself follows
-some additional conventions; these are documented separately under "<a
-href="#Conventions">Ghostscript conventions</a>" below.
-
-<hr>
-
-<h2><a name="C_language"></a>C language do's and don'ts</h2>
-
-<p>
-There are several different versions of the C language, and even of the ANSI
-C standard. Ghostscript versions through 7.0 were designed to compile on
-pre-ANSI compilers as well as on many compilers that implemented the ANSI
-standard with varying faithfulness. Ghostscript versions since 7.0 do not
-cater for pre-ANSI compilers: they must conform to the ANSI 1989 standard
-(ANS X3.159-1989), with certain restrictions and a few conventional
-additions.
-
-<h3>Preprocessor</h3>
-
-<h4><a name="Conditionals"></a>Conditionals</h4>
-
-Restrictions:
-
-<ul>
-
-<li>Don't assume that <b><tt>#if</tt></b> will treat undefined names as 0.
-While the ANSI standard requires this, it may produce a warning.
-
-<li>In <b><tt>.c</tt></b> files, don't use preprocessor conditionals that
-test for individual platforms or compilers. Use them only in header files
-named xxx<b><tt>_.h</tt></b>.
-
-</ul>
-
-<h4><a name="Macros"></a>Macros</h4>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Don't redefine a macro, even with the same definition, without using
-<b><tt>#undef</tt></b>.
-
-<li><b><tt>CAPITALIZE</tt></b> macro names unless there is a good reason not
-to.
-
-<li>Don't use a macro call within a macro argument if the call expands to a
-token sequence that includes any commas not within parentheses: this
-produces different results depending on whether the compiler expands the
-inner call before or after the argument is substituted into the macro body.
-(The ANSI standard says that calls must be expanded after substitution, but
-some compilers do it the other way.)
-
-<li>Don't use macro names, even inadvertently, in string constants. Some
-compilers erroneously try to expand them.
-
-<li>Don't use macros to define shorthands for casted pointers. For
-instance, avoid
-
-<blockquote><b><tt>
-#define fdev ((gx_device_fubar *)dev)
-</tt></b></blockquote>
-
-<p>
-and instead use
-
-<blockquote><b><tt>
-gx_device_fubar * const fdev = (gx_device_fubar *)dev;
-</tt></b></blockquote>
-
-<p>
-The use of <b><tt>const</tt></b> alerts the reader that this is effectively
-a synonym.
-
-<li>If a macro generates anything larger than a single expression (that is,
-one or more statements), surround it with <b><tt>BEGIN</tt></b> and
-<b><tt>END</tt></b>. These work around the fact that simple statements and
-compound statements in C can't be substituted for each other syntactically.
-
-</ul>
-
-<h3><a name="Preprocessor_other"></a>Other</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Only use <b><tt>#pragma</tt></b> in files that are explicitly identified
-as being platform-dependent. Many compilers complain if this is used at
-all, and some complain if they don't recognize the specific pragma being
-requested (both incorrect according to the ANSI standard).
-
-</ul>
-
-<h3><a name="Lexical_elements"></a>Lexical elements</h3>
-
-<p>
-Do not use:
-
-<ul>
-
-<li>ANSI trigraphs (??x)
-<li>Nested comments (/* /* */ */) (not ANSI compliant, but often accepted)
-<li>Multi-character character constants ('abc')
-<li>Wide-character character or string constants (L'x', L"x")
-
-</ul>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Procedure and static variable names must be 31 characters or less.
-
-<li>Externally visible procedure and variable names must be unique in the
-first 23 characters.
-
-</ul>
-
-<h3><a name="Scoping"></a>Scoping (extern, static, ...)</h3>
-
-<p>
-Do not use:
-
-<ul>
-
-<li><b><tt>register</tt></b>
-
-</ul>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Do not allow a global variable (constant) to have more than one
-non-<b><tt>extern</tt></b> definition, even though some ANSI C compilers
-allow this. Every global constant should have exactly one definition, in a
-<b><tt>.c</tt></b> file, and preferably just one <b><tt>extern</tt></b>
-declaration, in a header file.
-
-<li>Use <b><tt>private</tt></b> instead of <b><tt>static</tt></b> for
-procedures and variables declared at the outermost scope of a file. This
-allows making such constructs either visible or invisible to profilers by
-changing a single <b><tt>#define</tt></b>.
-
-<li><b><tt>static</tt></b> or <b><tt>private</tt></b> variables must be
-<b><tt>const</tt></b> and initialized: non-<b><tt>const</tt></b> statically
-allocated variables are incompatible with reentrancy, and we're in the
-process of eliminating all of them.
-
-<li>Do not use <b><tt>extern</tt></b> in <b><tt>.c</tt></b> files, only in
-<b><tt>.h</tt></b> files, unless you have a very good reason for it (e.g.,
-as in <a href="../src/iconf.c">iconf.c</a>). There are too many such
-<b><tt>extern</tt></b>s in the code now: we are eliminating them over time.
-
-<li>Do not declare the same name as both <b><tt>static</tt></b>
-(<b><tt>private</tt></b>) and non-<b><tt>static</tt></b> within the same
-compilation. (Some compilers complain, some do not.) This is especially a
-problem for procedures: it is easy to declare a procedure as
-<b><tt>private</tt></b> near the beginning of a file and accidentally not
-declare it <b><tt>private</tt></b> where it is defined later in the file.
-
-<li>Even though the ANSI standard allows initialized external declarations
-(<b><tt>extern&nbsp;int&nbsp;x&nbsp;=&nbsp;0</tt></b>), don't use them.
-
-</ul>
-
-<h3><a name="Scalars"></a>Scalars</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Avoid using <b><tt>char</tt></b>, except for <b><tt>char&nbsp;*</tt></b>
-for a pointer to a string. Don't assume that <b><tt>char</tt></b> is
-signed; also don't assume it is unsigned.
-
-<li>Never cast a <b><tt>float</tt></b> to a <b><tt>double</tt></b>
-explicitly. ANSI compilers in their default mode do all floating point
-computations in double precision, and handle such casts automatically.
-
-<li>Don't use <b><tt>long long</tt></b>: even though it is in the ANSI
-standard, not all compilers support it. Use <b><tt>bits64</tt></b> instead
-(see below under "<a href="#Language_extensions">Language extensions</a>").
-
-<li>Don't assume anything about whether <b><tt>sizeof(long)</tt></b> is less
-than, equal to, or greater than <b><tt>sizeof(ptr)</tt></b>. (However, you
-can make such comparisons in preprocessor conditionals using
-<b><tt>ARCH_SIZEOF_LONG</tt></b> and <b><tt>ARCH_SIZEOF_PTR</tt></b>.)
-
-</ul>
-
-<h3><a name="Arrays"></a>Arrays</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Don't declare arrays of size 0. (The newer ANSI standard allows this,
-but the older one doesn't.)
-
-<li>Don't declare an array of size 1 at the end of a structure to indicate
-that a variable-size array follows.
-
-<li>Don't declare initialized <b><tt>auto</tt></b> arrays.
-
-</ul>
-
-<h3><a name="Typedefs"></a>Typedefs</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Don't use <b><tt>typedef</tt></b> for function types, such as
-
-<blockquote>
-<b><tt>typedef int proc_xyz_t(double, int *);</tt></b>
-</blockquote>
-
-<p>Many compilers don't handle this correctly -- they will give errors, or
-do the wrong thing, when declaring variables of type
-<b><tt>proc_xyz_t</tt></b> and/or <b><tt>proc_xyz_t *</tt></b>. Instead, do
-this:
-
-<blockquote>
-<b><tt>#define PROC_XYZ(proc) int proc(double, int *)<br>
-PROC_XYZ(some_proc); /* declare a procedure of this type */<br>
-typedef PROC_XYZ((*proc_xyz_ptr_t)); /* define a type for procedure ptrs */<br>
-<br>
-proc_xyz_ptr_t pp; /* pointer to procedure */</tt></b>
-</blockquote>
-
-<li>Don't redefine <b><tt>typedef</tt></b>'ed names, even with the same
-definition. Some compilers complain about this, and the standard doesn't
-allow it.
-
-</ul>
-
-<h3><a name="Structures"></a>Structures</h3>
-
-<p>
-Restrictions:
-
-<li>Don't use anonymous structures if you can possibly avoid it, except
-occasionally as components of other structures. Ideally, use the
-<b><tt>struct</tt></b> keyword only for declaring named structure types,
-like this:
-
-<blockquote>
-<b><tt>typedef struct xxx_s {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... members ...<br>
-<b><tt>} xxx_t;</tt></b>
-</blockquote>
-
-<li>Use <b><tt>struct</tt></b> only when declaring structure types, never
-for referring to them (e.g., never declare a variable as type
-<b><tt>struct&nbsp;xxx_s&nbsp;*</tt></b>).
-
-<li>Don't assume that the compiler will (or won't) insert padding in
-structures to align members for best performance. To preserve alignment,
-only declare structure members that are narrower than an <b><tt>int</tt></b>
-if there will be a lot of instances of that structure in memory. For such
-structures, insert <b><tt>byte</tt></b> and/or <b><tt>short</tt></b> padding
-members as necessary to re-establish <b><tt>int</tt></b> alignment.
-
-<li>Don't declare initialized <b><tt>auto</tt></b> structures.
-
-</ul>
-
-<h3><a name="Unions"></a>Unions</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Use unions only as components of structures, not as typedefs in their
-own right.
-
-<li>Don't attempt to initialize unions: not all compilers support this, even
-though it is in the 1989 ANSI standard.
-
-</ul>
-
-<h3><a name="Expressions"></a>Expressions</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Don't assign a larger integer data type to a smaller one without a cast
-(<b><tt>int_x&nbsp;=&nbsp;long_y</tt></b>).
-
-<li>It's OK to use the address of a structure or array element
-(<b><tt>&p->e</tt></b>, <b><tt>&a[i]</tt></b>) locally, or pass it to a
-procedure that won't store it, but don't store such an address in allocated
-storage unless you're very sure of what you're doing.
-
-<li>Don't use conditional expressions with structure or union values.
-(Pointers to structures or unions are OK.)
-
-<li>For calling a variable or parameter procedure, use
-<b><tt>ptr-&gt;func(...)</tt></b>. Some old code uses explicit indirection,
-<b><tt>(*ptr-&gt;func)(...)</tt></b>: don't use this in new code.
-
-<li>Don't write expressions that depend on order of evaluation, unless the
-order is created explicitly by use of <b><tt>||</tt></b>,
-<b><tt>&amp;&amp;</tt></b>, <b><tt>?:</tt></b>, <b><tt>,</tt></b>, or
-function nesting (the arguments of a function must be evaluated before the
-function is called). In particular, don't assume that the arguments of a
-function will be evaluated left-to-right, or that the left side of an
-assignment will be evaluated before the right.
-
-<li>Don't mix integer and enumerated types ad lib: treat enumerated types as
-distinct from integer types, and use casts to convert between the two.
-(Some compilers generate warnings if you do not do this.)
-
-</ul>
-
-<h3><a name="Statements"></a>Statements</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>If you use an expression as a statement, other than an assignment or a
-function call with <b><tt>void</tt></b> return value, enclose it explicitly
-in <b><tt>DISCARD()</tt></b>.
-
-<li>The type of the operand of a <b><tt>switch</tt></b> must match the type
-of the case labels, whether the labels are <b><tt>int</tt></b>s or the
-members of an <b><tt>enum</tt></b> type. (Use a cast if necessary.)
-
-<li>It is OK for one case of a switch to "fall through" into another (i.e.,
-for the statement just before a case label not to be a control transfer),
-but a comment <b><tt>/*&nbsp;falls&nbsp;through&nbsp;*/</tt></b> is
-required.
-
-<li>If you are returning an error code specified explicitly (e.g.,
-<b><tt>return&nbsp;gs_error_rangecheck</tt></b> or
-<b><tt>return&nbsp;e_rangecheck</tt></b>), use
-<b><tt>return_error()</tt></b> rather than plain <b><tt>return</tt></b>.
-However, if the program is simply propagating an error code generated
-elsewhere, as opposed to generating the error, use <b><tt>return</tt></b>
-(e.g., <b><tt>if&nbsp;(code&nbsp;<&nbsp;0)&nbsp;return&nbsp;code</tt></b>).
-
-</ul>
-
-<h3><a name="Procedures"></a>Procedures</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Provide a prototype for every procedure, and make sure the prototype is
-available at every call site. If the procedure is local to a file
-(<b><tt>private</tt></b>), the prototype should precede the procedure, in
-the same file; if the procedure is global, the prototype should be in a
-header file.
-
-<li>If a procedure parameter is itself a procedure, do list its parameter
-types rather than just using <b><tt>()</tt></b>. For example,
-
-<blockquote><b><tt>
-int foo(int (*callback)(int, int));
-</tt></b></blockquote>
-
-<p>
-rather than just
-
-<blockquote><b><tt>
-int foo(int (*callback)());
-</tt></b></blockquote>
-
-<li>Don't use the <b><tt>P</tt></b>* macros in new code. (See the
-Procedures section of <a href="#Language_extensions">Language extensions</a>
-below for more information.)
-
-<li>Always provide an explicit return type for procedures, in both the
-prototype and the definition: don't rely on the implicit declaration as
-<b><tt>int</tt></b>.
-
-<li>Don't use <b><tt>float</tt></b> as the return type of a procedure,
-unless there's a special reason. Floating point hardware typically does
-everything in double precision internally and has to do extra work to
-convert between double and single precision.
-
-<li>Don't declare parameters as being of type <b><tt>float</tt></b>,
-<b><tt>short</tt></b>, or <b><tt>char</tt></b>. If you do this and forget
-to include the prototype at a call site, ANSI compilers will generate
-incompatible calling sequences. Use <b><tt>floatp</tt></b> (a synonym for
-<b><tt>double</tt></b>, mnemonic for "float parameter") instead of
-<b><tt>float</tt></b>, and use <b><tt>int</tt></b> or <b><tt>uint</tt></b>
-instead of <b><tt>short</tt></b> or <b><tt>char</tt></b>.
-
-</ul>
-
-<h3><a name="Standard_library"></a>Standard library</h3>
-
-<p>
-Restrictions:
-
-<ul>
-
-<li>Only use library features that are documented in the established ANSI
-standard (e.g., Harbison & Steele's book). Do not use procedures that are
-"standards" promulgated by Microsoft (e.g., <b><tt>stricmp</tt></b>), or
-originate in BSD Unix (e.g., <b><tt>strcasecmp</tt></b>), or were added in
-later versions of the standard such as C 9X.
-
-<li>Do not use any features from <b><tt>stdio.h</tt></b> that assume the
-existence of <b><tt>stdin</tt></b>, <b><tt>stdout</tt></b>, or
-<b><tt>stderr</tt></b>. See <a href="../src/gsio.h">gsio.h</a> for the full
-list. Instead, use <b><tt>gs_stdin</tt></b> et al.
-
-</ul>
-
-<hr>
-
-<h2><a name="Language_extensions"></a>Language extensions</h2>
-
-<h3>Scoping</h3>
-
-<dl>
-
-<dt><b><tt>inline</tt></b>
-
-<dd><b><tt>inline</tt></b> is available even if the compiler does not
-support it. Be aware, however, that it may have no effect. In particular,
-do not use <b><tt>inline</tt></b> in header files. Instead, use the
-<b><tt>extern_inline</tt></b> facility described just below.
-
-<dt><b><tt>extern_inline</tt></b>
-
-<dd>Compilers that do support <b><tt>inline</tt></b> vary in how they decide
-whether to (also) compile a closed-code copy of the procedure. Because of
-this, putting an <b><tt>inline</tt></b> procedure in a header file may
-produce multiple closed copies, causing duplicate name errors at link time.
-<b><tt>extern_inline</tt></b> provides a safe way to put
-<b><tt>inline</tt></b> procedures in header files, regardless of compiler.
-Unfortunately, the only way we've found to make this fully portable involves
-a fair amount of boilerplate. For details, please see <a
-href="../src/stdpre.h">stdpre.h</a>.
-
-<dt><b><tt>private</tt></b>
-
-<dd><b>Use <tt>private</tt></b> instead of <b><tt>static</tt></b> for all
-file-local procedures, and also for file-local variables defined at the
-outermost level. However, use <b><tt>static</tt></b>, not
-<b><tt>private</tt></b>, for variables defined within a procedure.
-
-<p>
-<b><tt>private</tt></b> is normally #define'd as <b><tt>static</tt></b>.
-However, it can also be #define'd as empty, which allows profilers to
-measure all procedures, and 'nm' to list all interesting statically
-allocated variables, not just public ones.
-
-</dl>
-
-<h3>Scalar types</h3>
-
-<dl>
-
-<dt><b><tt>bool, true, false</tt></b>
-
-<dd><b><tt>bool</tt></b> is intended as a Boolean type, with canonical
-values <b><tt>true</tt></b> and <b><tt>false</tt></b>. In a more reasonable
-language, such as Java, <b><tt>bool</tt></b> is an enumerated type requiring
-an explicit cast to or from <b><tt>int</tt></b>; however, because C's
-conditionals are defined as producing <b><tt>int</tt></b> values, we can't
-even define <b><tt>bool</tt></b> as a C <b><tt>enum</tt></b> without
-provoking compiler warnings.
-
-<p>
-Even though <b><tt>bool</tt></b> is a synonym for <b><tt>int</tt></b>, treat
-them as conceptually different types:
-
-<ul>
-<li>Initialize or set <b><tt>bool</tt></b> variables to <b><tt>true</tt></b>
-or <b><tt>false</tt></b>, not 0 or 1.
-<li>Use the Boolean operators <b><tt>!</tt></b>, <b><tt>&&</tt></b>,
-and <b><tt>||</tt></b> only with Booleans. Don't use the idiom
-<b><tt>!!x</tt></b> to create a Boolean that is true iff <b><tt>x</tt></b>
-!= 0: use <b><tt>x != 0</tt></b>.
-<li>Use an explicit <b><tt>(int)</tt></b> cast to convert a Boolean to an
-integer.
-</ul>
-
-<dt><b><tt>byte, ushort, uint, ulong</tt></b>
-
-<dd>These types are simply shorthands for <b><tt>unsigned char, short, int,
-long</tt></b>.
-
-<dt><b><tt>floatp</tt></b>
-
-<dd>This is a synonym for <b><tt>double</tt></b>. It should be used for,
-and only for, procedure parameters that would otherwise be
-<b><tt>float</tt></b>. (As noted above, procedure parameters should not be
-declared as <b><tt>float</tt></b>.)
-
-<dt><b><tt>bits8, bits16, bits32</tt></b>
-
-<dd>These are unsigned integer types of the given width. Use them wherever
-the actual width matters: do <em>not</em>, for example, use
-<b><tt>short</tt></b> assuming that it is 16 bits wide.
-
-<dt><b><tt>bits64</tt></b>
-
-<dd><strong>****** NOT IMPLEMENTED YET ******</strong>
-This is an unsigned 64-bit integer type, but it may not be available on all
-platforms. Any code that uses this type should be surrounded by
-<b><tt>#if&nbsp;ARCH_HAS_BITS64</tt></b>.
-
-</dl>
-
-<h3>Procedures</h3>
-
-<dl>
-
-<dt><b><tt>P0(), P1(p1), ..., P16(p1, ..., p16)</tt></b> [deprecated]
-
-<dd>Nearly all existing code uses these macros for the parameter lists of
-procedure prototypes, e.g.,
-<b><tt>int&nbsp;proc(P2(int&nbsp;a,&nbsp;int&nbsp;b))</tt></b>, to provide
-compatibility with pre-ANSI, a.k.a. "traditional" or "K &amp; R", compilers.
-Since only ANSI compilers are now supported, don't use these macros in new
-code: use the ANSI standard syntax
-<b><tt>int&nbsp;proc(int&nbsp;a,&nbsp;int&nbsp;b)</tt></b>.
-
-</dl>
-
-<hr>
-
-<h2><a name="Stylistic_conventions"></a>Stylistic conventions</h2>
-
-<p>
-Ghostscript's coding rules cover not only the use of the language, but also
-many stylistic issues like the choice of names and the use of whitespace.
-The stylistic rules are meant to produce code that is easy to read. It's
-important to observe them as much as possible in order to maintain a
-consistent style, but if you find these rules getting in your way or
-producing ugly-looking results once in a while, it's OK to break it.
-
-<h3><a name="Formatting"></a>Formatting</h3>
-
-<h4><a name="Indentation"></a>Indentation</h4>
-
-<p>
-We've formatted all of our code using the GNU <b><tt>indent</tt></b> program.
-
-<blockquote><b><tt>
-indent&nbsp;-bad&nbsp;-nbap&nbsp;-nsob&nbsp;-br&nbsp;-ce&nbsp;-cli4&nbsp;-npcs&nbsp;-ncs&nbsp;\<br>
-&nbsp;&nbsp;&nbsp;-i4&nbsp;-di0&nbsp;-psl&nbsp;-lp&nbsp;-lps&nbsp;somefile.c
-</tt></b></blockquote>
-
-<p>
-does a 98% accurate job of producing our preferred style. Unfortunately,
-there are bugs in all versions of GNU <b><tt>indent</tt></b>, requiring
-both pre- and post-processing of the code. The <b><tt>gsindent</tt></b>
-script in the Ghostscript fileset contains the necessary workarounds.
-
-<p>
-Put indentation points every 4 spaces, with 8 spaces = 1 tab stop.
-
-<p>
-For assignments (including chain assignments), put the entire statement on
-one line if it will fit; if not, break it after a <b><tt>=</tt></b> and
-indent all the following lines. I.e., format like this:
-
-<blockquote>
-var1&nbsp;<b><tt>=</tt></b>&nbsp;value<b><tt>;</tt></b><br>
-var1&nbsp;<b><tt>=</tt></b>&nbsp;var2&nbsp;<b><tt>=</tt></b>&nbsp;value<b><tt>;</tt></b><br>
-var1&nbsp;<b><tt>=</tt></b><br>
-&nbsp;&nbsp;&nbsp;&nbsp;value<b><tt>;</tt></b><br>
-var1&nbsp;<b><tt>=</tt></b><br>
-&nbsp;&nbsp;&nbsp;&nbsp;var2&nbsp;<b><tt>=</tt></b>&nbsp;value<b><tt>;</tt></b><br>
-var1&nbsp;<b><tt>=</tt></b>&nbsp;var2&nbsp;<b><tt>=</tt></b><br>
-&nbsp;&nbsp;&nbsp;&nbsp;value<b><tt>;</tt></b>
-</blockquote>
-
-<p>
-But not like this:
-
-<blockquote>
-var1&nbsp;<b><tt>=</tt></b><br>
-var2&nbsp;<b><tt>=</tt></b> value<b><tt>;</tt></b>
-</blockquote>
-
-<p>
-Indent in-line blocks thus:
-
-<blockquote>
-<b><tt>{</tt></b><br>
-&nbsp;&nbsp;&nbsp;... declarations ...<br>
-&nbsp;&nbsp;&nbsp;{{ blank line if any declarations above }}<br>
-&nbsp;&nbsp;&nbsp;... statements ...<br>
-<b><tt>}</tt></b>
-</blockquote>
-
-<p>
-Similarly, indent procedures thus:
-
-<blockquote>
-return_type<br>
-proc_name(... arguments ...)<br>
-<b><tt>{</tt></b><br>
-&nbsp;&nbsp;&nbsp;... declarations ...<br>
-&nbsp;&nbsp;&nbsp;{{ blank line if any declarations above }}<br>
-&nbsp;&nbsp;&nbsp;... statements ...<br>
-<b><tt>}</tt></b>
-</blockquote>
-
-<p>
-If a control construct (<b><tt>if</tt></b>, <b><tt>do</tt></b>,
-<b><tt>while</tt></b>, or <b><tt>for</tt></b>) has a one-line body, use
-this:
-
-<blockquote>
-... control construct ...<br>
-&nbsp;&nbsp;&nbsp;... subordinate simple statement ...
-</blockquote>
-
-<p>
-If it has a multi-line body, use this:
-
-<blockquote>
-... control construct ... <b><tt>{</tt></b><br>
-&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>}</tt></b>
-</blockquote>
-
-<p>
-If the subordinate code has declarations, see blocks above.
-
-<p>
-For if-else statements, do this:
-
-<blockquote>
-<b><tt>if (</tt></b> ...<b><tt> ) {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>} else if (</tt></b> ...<b><tt> ) {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>} else {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>}</tt></b>
-</blockquote>
-
-<p>
-When there are more than two alternatives, as in the example above, use the
-above ("parallel") syntax rather than the following ("nested") syntax:
-
-<blockquote>
-<b><tt>if (</tt></b> ...<b><tt> ) {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>} else {</tt></b><br>
-<b><tt>&nbsp;&nbsp;&nbsp;if (</tt></b> ...<b><tt> ) {</tt></b><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>&nbsp;&nbsp;&nbsp;} else {</tt></b><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... subordinate code ...<br>
-<b><tt>&nbsp;&nbsp;&nbsp;}</tt></b><br>
-<b><tt>}</tt></b>
-</blockquote>
-
-<p>
-Similarly, for do-while statements, do this:
-
-<blockquote>
-<b><tt>do {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... body ...<br>
-<b><tt>} while (</tt></b> ... condition ... <b><tt>);</tt></b>
-</blockquote>
-
-<h4><a name="Spaces"></a>Spaces</h4>
-
-<p>
-Do put a space:
-<ul>
-<li>after every comma and semicolon, unless it ends a line;
-<li>around every binary operator other than "<b><tt>-&gt;</tt></b>" and
-"<b><tt>.</tt></b>", although you can omit the spaces around the innermost
-operator in a nested expression if you like;
-<li>on both sides of the parentheses of an <b><tt>if</tt></b>, <b><tt>for</tt></b>, or <b><tt>while</tt></b>.
-</ul>
-
-<p>
-Don't put a space:
-<ul>
-<li>at the end of a line;
-<li>before a comma or semicolon;
-<li>after unary prefix operators;
-<li>before the parenthesis of a macro or procedure call.
-</ul>
-
-<h4><a name="Parentheses"></a>Parentheses</h4>
-
-<p>
-Parentheses are important in only a few places:
-
-<ul>
-<li>Around the inner subexpressions in expressions that mix
-<b><tt>&amp;&amp;</tt></b> and <b><tt>||</tt></b>, even if they are not
-required by precedence, for example
-
-<blockquote><b><tt>
-(xx &amp;&amp; yy) || zz
-</tt></b></blockquote>
-
-<li>Similarly around inner subexpressions in expressions that mix
-<b><tt>&amp;</tt></b>, <b><tt>|</tt></b>, or shifts, especially if mixing
-these with other operators, for instance
-
-<blockquote><b><tt>
-(x &lt;&lt; 3) | (y &gt;&gt; 5)
-</tt></b></blockquote>
-
-<li>In macro definitions around every use of an argument that logically
-could be an expression, for example
-
-<blockquote><b><tt>
-((x) * (x) + (y) * (y))
-</tt></b></blockquote>
-
-</ul>
-
-<p>
-Anywhere else, given the choice, use fewer parentheses.
-
-<p>
-For stylistic consistency with the existing Ghostscript code, put
-parentheses around conditional expressions even if they aren't
-syntactically required, unless you really dislike doing this. Note that
-the parentheses should go around the entire expression, not the condition.
-For instance, instead of
-
-<blockquote><b><tt>
-hpgl_add_point_to_path(pgls, arccoord_x, arccoord_y,<br>
-&nbsp;&nbsp;&nbsp;(pgls-&gt;g.pen_down) ? gs_lineto : gs_moveto);
-</tt></b></blockquote>
-
-<p>
-use
-
-<blockquote><b><tt>
-hpgl_add_point_to_path(pgls, arccoord_x, arccoord_y,<br>
-&nbsp;&nbsp;&nbsp;(pgls-&gt;g.pen_down ? gs_lineto : gs_moveto));
-</tt></b></blockquote>
-
-<h3><a name="Preprocessor_style"></a>Preprocessor</h3>
-
-<h4>Conditionals</h4>
-
-<p>
-Using preprocessor conditionals can easily lead to unreadable code, since
-the eye really wants to read linearly rather than having to parse the
-conditionals just to figure out what code is relevant. It's OK to use
-conditionals that have small scope and that don't change the structure or
-logic of the program (typically, they select between different sets of
-values depending on some configuration parameter), but where possible, break
-up source modules rather than use conditionals that affect the structure or
-logic.
-
-<h4>Macros</h4>
-
-<p>
-Ghostscript code uses macros heavily to effectively extend the rather
-weak abstraction capabilities of the C language, specifically in the area of
-memory management and garbage collection: in order to read Ghostscript code
-effectively, you simply have to learn some of these macros as though they
-were part of the language. The current code also uses macros heavily for
-other purposes, but we are trying to phase these out as rapidly as possible,
-because they make the code harder to read and debug, and to use the
-rules that follow consistently in new code.
-
-<p>
-Define macros in the smallest scope you can manage (procedure, file, or
-<b><tt>.h</tt></b> file), and <b><tt>#undef</tt></b> them at the end of
-that scope: that way, someone reading the code can see the definitions
-easily when reading the uses. If that isn't appropriate, define them in as
-large a scope as possible, so that they effectively become part of the
-language. This places an additional burden on the reader, but it can be
-amortized over reading larger amounts of code.
-
-<p>
-Try hard to use procedures instead of macros. Use "<b><tt>inline</tt></b>"
-if you really think the extra speed is needed, but only within a
-<b><tt>.c</tt></b> file: don't put inline procedures in <b><tt>.h</tt></b>
-files, because most compilers don't honor "<b><tt>inline</tt></b>" and
-you'll wind up with a copy of the procedure in every <b><tt>.c</tt></b>
-file that includes the <b><tt>.h</tt></b> file.
-
-<p>
-If you define a macro that looks like a procedure, make sure it will work
-wherever a procedure will work. In particular, put parentheses around every
-use of an argument within the macro body, so that the macro will parse
-correctly if some of the arguments are expressions, and put parentheses
-around the entire macro body. (This is still subject to the problem that an
-argument may be evaluated more than once, but there is no way around this in
-C, since C doesn't provide for local variables within expressions.)
-
-<p>
-If you define macros for special loop control structures, make their uses
-look somewhat like ordinary loops, for instance:
-
-<blockquote>
-<b><tt>BEGIN_RECT(xx, yy) {</tt></b><br>
-&nbsp;&nbsp;... body indented one position ...<br>
-<b><tt>} END_RECT(xx, yy);</tt></b>
-</blockquote>
-
-<p>
-If at all possible, don't use free variables in macros -- that is, variables
-that aren't apparent as arguments of the macro. If you must use free
-variables, list them all in a comment at the point where the macro is
-defined.
-
-<h3><a name="Comments"></a>Comments</h3>
-
-<p>
-The most important descriptive comments are ones in header files that
-describe structures, including invariants; but every procedure or structure
-declaration, or group of other declarations, should have a comment. Don't
-spend a lot of time commenting executable code unless something unusual or
-subtle is going on.
-
-<h3><a name="Naming"></a>Naming</h3>
-
-<p>
-Use fully spelled-out English words in names, rather than contractions.
-This is most important for procedure and macro names, global variables and
-constants, values of <b><tt>#define</tt></b> and <b><tt>enum</tt></b>,
-<b><tt>struct</tt></b> and other <b><tt>typedef</tt></b> names, and
-structure member names, and for argument and variable names which have
-uninformative types like <b><tt>int</tt></b>. It's not very important for
-arguments or local variables of distinctive types, or for local index or
-count variables.
-
-<p>
-Avoid names that run English words together:
-"<b><tt>hpgl_compute_arc_center</tt></b>" is better than
-"<b><tt>hpgl_compute_arccenter</tt></b>". However, for terms drawn from
-some predefined source, like the names of PostScript operators, use a term
-in its well-known form (for instance, <b><tt>gs_setlinewidth</tt></b>
-rather than <b><tt>gs_set_line_width</tt></b>).
-
-<p>
-Procedures, variables, and structures visible outside a single
-<b><tt>.c</tt></b> file should generally have prefixes that indicate what
-subsystem they belong to (in the case of Ghostscript, <b><tt>gs_</tt></b>
-or <b><tt>gx_</tt></b>). This rule isn't followed very consistently.
-
-<h3><a name="Types"></a>Types</h3>
-
-<p>
-Many older structure names don't have <b><tt>_t</tt></b> on the end, but
-this suffix should be used in all new code. (The <b><tt>_s</tt></b>
-structure name is needed only to satisfy some debuggers. No code other than
-the structure declaration should refer to it.)
-
-<p>
-Declare structure types that contain pointers to other instances of
-themselves like this:
-
-<blockquote>
-<b><tt>typedef struct xxx_s xxx_t;</tt></b><br>
-<b><tt>struct xxx_s {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... members ...<br>
-&nbsp;&nbsp;&nbsp;<b><tt>xxx_t *</tt></b>ptr_member_name;<br>
-&nbsp;&nbsp;&nbsp;... members ...<br>
-<b><tt>};</tt></b>
-</blockquote>
-
-<p>
-If, to maintain data abstraction and avoid including otherwise unnecessary
-header files, you find that you want the type <b><tt>xxx_t</tt></b> to be
-available in a header file that doesn't include the definition of the
-structure <b><tt>xxx_s</tt></b>, use this approach:
-
-<blockquote>
-<b><tt>#ifndef xxx_DEFINED</tt></b><br>
-<b><tt>#&nbsp;&nbsp;define xxx_DEFINED</tt></b><br>
-<b><tt>typedef struct xxx_s xxx_t;</tt></b><br>
-<b><tt>#endif</tt></b><br>
-<b><tt>struct xxx_s {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... members ...<br>
-<b><tt>};</tt></b>
-</blockquote>
-
-<p>
-You can then copy the first 4 lines in other header files. (Don't ever
-include them in an executable code file.)
-
-<p>
-Don't bother using <b><tt>const</tt></b> for anything other than with
-pointers as described below. However, in those places where it is necessary
-to cast a pointer of type <b><tt>const&nbsp;T&nbsp;*</tt></b> to type
-<b><tt>T&nbsp;*</tt></b>, always include a comment that explains why you are
-"breaking const".
-
-<h4>Pointers</h4>
-
-<p>
-Use <b><tt>const</tt></b> for pointer referents (that is,
-<b><tt>const&nbsp;T&nbsp;*</tt></b>) wherever possible and appropriate.
-
-<p>
-If you find yourself wanting to use <b><tt>void&nbsp;*</tt></b>, try to
-find an alternative using unions or (in the case of super- and subclasses)
-casts, unless you're writing something like a memory manager that really
-treats memory as opaque.
-
-<h3><a name="Procedures_style"></a>Procedures</h3>
-
-<p>
-In general, don't create procedures that are private and only called from
-one place. However, if a compound statement (especially an arm of a
-conditional) is too long for the eye easily to match its enclosing braces
-"<b><tt>{...}</tt></b>" -- that is, longer than 10 or 15 lines -- and it
-doesn't use or set a lot of state held in outer local variables, it may be
-more readable if you put it in a procedure.
-
-<h3>Miscellany</h3>
-
-<h4><a name="Local_variables"></a>Local variables</h4>
-
-<p>
-Don't assign new values to procedure parameters. It makes debugging very
-confusing when the parameter values printed for a procedure are not the
-ones actually supplied by the caller. Instead use a separate local
-variable initialized to the value of the parameter.
-
-<p>
-If a local variable is only assigned a value once, assign it that value at
-its declaration, if possible. For example,
-
-<blockquote>
-<b><tt>int x = </tt></b>some expression <b><tt>;</tt></b>
-</blockquote>
-
-<p>
-rather than
-
-<blockquote>
-<b><tt>int x;</tt></b><br>
-...<br>
-<b><tt>x = </tt></b> some expression <b><tt>;</tt></b>
-</blockquote>
-
-<p>
-Use a local pointer variable like this to "narrow" pointer types:
-
-<blockquote>
-<b><tt>int</tt></b><br>
-someproc(... <b><tt>gx_device *dev</tt></b> ...)<br>
-<b><tt>{<br>
-&nbsp;&nbsp;&nbsp;gx_device_printer *const pdev = (gx_device_printer *)dev;</tt></b><br>
-&nbsp;&nbsp;&nbsp;...<br>
-<b><tt>}</tt></b>
-</blockquote>
-
-<h4><a name="Compiler_warnings"></a>Compiler warnings</h4>
-
-<p>
-The following section refers to the warnings produced by <b><tt>gcc</tt></b>:
-your compiler may produce different ones.
-
-<p>
-It's OK if compilation produces the following warnings:
-
-<ul>
-<li><b><tt>&lt;name&gt; might be used uninitialized in this function</tt></b>
-<li><b><tt>cast discards `const' from pointer target type</tt></b>
-</ul>
-
-<p>
-The first of these often occurs because the compiler isn't aware of control
-flow restrictions that guarantee the variable will be initialized before
-use: if it occurs in new code, check the code carefully, but don't worry
-about the message. The second is often unavoidable in code that initializes
-or frees a structure that is otherwise <b><tt>const</tt></b> during its
-lifetime.
-<p>
-
-Do work hard to eliminate all warnings other than these,
-since they often indicate the possible presence of coding errors.
-In particular, get rid of warnings about parameter passing or
-initialization that discards <b><tt>const</tt></b>,
-by using explicit casts.
-
-<hr>
-
-<h2><a name="File_structuring"></a>File structuring</h2>
-
-<h3><a name="All_files"></a>All files</h3>
-
-<p>
-Keep file names within the "8.3" format for portability:
-<ul>
-<li>Use only letters, digits, dash, and underscore in file names.
-<li>Don't assume upper and lower case letters are distinct.
-<li>Put no more than 8 characters before the ".", if any.
-<li>If there is a ".", put between 1 and 3 characters after the ".".
-</ul>
-
-<p>
-For files other than documentation files, use only lower case letters
-in the names; for HTML documentation files, capitalize the first letter.
-
-<p>
-Every code file should start with comments containing
-
-<ol>
-<li>a copyright notice,
-<li>the name of the file in the form of an RCS Id:
-
-<blockquote><b><tt>
-/*Id$: filename.ext $*/
-</tt></b></blockquote>
-
-<p>
-(using the comment convention appropriate to the language of the file), and
-
-<li>a summary, no more than one line, of what the file contains.
-</ol>
-
-<p>
-If you create a file by copying the beginning of another file, be sure to
-update the copyright year and change the file name.
-
-<h3><a name="Makefiles"></a>Makefiles</h3>
-
-<p>
-Use the extension <b><tt>.mak</tt></b> for makefiles.
-
-<p>
-For each
-
-<blockquote><b><tt>
-#include "xxx.h"
-</tt></b></blockquote>
-
-<p>
-make sure there is a dependency on <b><tt>$(xxx_h)</tt></b> in the
-makefile. If xxx ends with a "<b><tt>_</tt></b>", this rule still holds,
-so that if you code
-
-<blockquote><b><tt>
-#include "math_.h"
-</tt></b></blockquote>
-
-<p>
-the makefile must contain a dependency on "<b><tt>$(math__h)</tt></b>"
-(note the two underscores "<b><tt>__</tt></b>").
-
-<p>
-List the dependencies bottom-to-top, like the <b><tt>#include</tt></b>
-statements themselves; within each level, list them alphabetically. Do
-this also with <b><tt>#include</tt></b> statements themselves whenever
-possible (but sometimes there are inter-header dependencies that require
-bending this rule).
-
-<p>
-For compatibility with the build utilities on OpenVMS, always put a space
-before the colon that separates the target(s) of a rule from the dependents.
-
-<h3><a name="General_C_code"></a>General C code</h3>
-
-<p>
-List <b><tt>#include</tt></b> statements from "bottom" to "top", that is,
-in the following order:
-
-<blockquote><ol>
-<li>System includes (<b><tt>"xxx_.h"</tt></b>)
-<li><b><tt>gs*.h</tt></b>
-<li><b><tt>gx*.h</tt></b> (yes, <b><tt>gs</tt></b> and <b><tt>gx</tt></b>
-are in the wrong order.)
-<li><b><tt>s*.h</tt></b>
-<li><b><tt>i*.h</tt></b> (or other interpreter headers that don't start
-with "<b><tt>i</tt></b>")
-</ol></blockquote>
-
-<h3><a name="Headers"></a>Headers (<b><tt>.h</tt></b> files)</h3>
-
-<p>
-In header files, always use the following at the beginning of a header file
-to prevent double inclusion:
-
-<blockquote>
-{{ Copyright notice etc. }}<br><br>
-
-<b><tt>#ifndef </tt></b>&lt;filename&gt;<b><tt>_INCLUDED</tt></b><br>
-<b><tt>#define </tt></b>&lt;filename&gt;<b><tt>_INCLUDED</tt></b><br><br>
-
-{{ The contents of the file }}<br><br>
-
-<b><tt>#endif /* </tt></b>&lt;filename&gt;<b><tt>_INCLUDED */</tt></b>
-</blockquote>
-
-<p>
-The header file is the first place that a reader goes for
-information about procedures, structures, constants, etc., so ensure that
-every procedure and structure has a comment that says what it does. Divide
-procedures into meaningful groups set off by some distinguished form of
-comment.
-
-<h3><a name="Source"></a>Source (<b><tt>.c</tt></b> files)</h3>
-
-<p>
-After the initial comments, arrange C files in the following order:
-
-<blockquote><ol>
-<li><b><tt>#include</tt></b> statements
-<li>Exported data declarations
-<li>Explicit externs (if necessary)
-<li>Forward declarations of procedures
-<li>Private data declarations
-<li>Exported procedures
-<li>Private procedures
-</ol></blockquote>
-
-<p>
-Be flexible about the order of the declarations if necessary to improve
-readability. Many older files don't follow this order, often without good
-reason.
-
-<hr>
-
-<h2><a name="Conventions"></a>Ghostscript conventions</h2>
-
-<h3><a name="Specific_names"></a>Specific names</h3>
-
-<p>
-The Ghostscript code uses certain names consistently for certain kinds of
-values. Some of the commonest and least obvious are these two:
-
-<h4><a name="code"></a><b><tt>code</tt></b></h4>
-
-<blockquote>
-A value to be returned from a procedure:
-
-<table cellpadding=0 cellspacing=0>
-<tr valign=top> <td align=right>&lt; 0
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>An error code defined in
-<a href="../src/gserrors.h">gserrors.h</a>
-(or <a href="../src/errors.h">errors.h</a>)
-<tr valign=top> <td align=right>0
- <td>&nbsp;
- <td>Normal return
-<tr valign=top> <td align=right>&gt; 0
- <td>&nbsp;
- <td>A non-standard but successful return (which must be documented, preferably with the procedure's prototype)
-</table>
-
-</blockquote>
-
-<h4><a name="status"></a><b><tt>status</tt></b></h4>
-
-<blockquote>
-A value returned from a stream procedure:
-
-<table cellpadding=0 cellspacing=0>
-<tr valign=top> <td align=right>&lt; 0
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>An exceptional condition as defined in
-<a href="../src/scommon.h">scommon.h</a>
-<tr valign=top> <td align=right>0
- <td>&nbsp;
- <td>Normal return (or, from the "<b><tt>process</tt></b>" procedure, means that more input is needed)
-<tr valign=top> <td align=right>1
- <td>&nbsp;
- <td>More output space is needed (from the "<b><tt>process</tt></b>" procedure)
-</table>
-</blockquote>
-
-<h3><a name="Structure_type_descriptors"></a>Structure type descriptors</h3>
-
-<p>
-The Ghostscript memory manager requires run-time type information for every
-structure. (We don't document this in detail here: see the <a
-href="Develop.htm#Structure_descriptors">Structure descriptors</a> section
-of the developer documentation for details.) Putting the descriptor for a
-structure next to the structure definition will help keep the two
-consistent, so immediately after the definition of a structure
-<b><tt>xxx_s</tt></b>, define its structure descriptor:
-
-<blockquote>
-<b><tt>struct xxx_s {</tt></b><br>
-&nbsp;&nbsp;&nbsp;... members ...<br>
-<b><tt>};</tt></b><br>
-<b><tt>#define private_st_xxx()&nbsp;&nbsp;/* in </tt></b>&lt;filename&gt;<tt><b>.c */\</tt></b><br>
-<b><tt>&nbsp;&nbsp;gs_private_st_</tt></b>&lt;whatever&gt;<b><tt>(st_xxx, xxx_t,\</tt></b><br>
-<b><tt>&nbsp;&nbsp;&nbsp;&nbsp;"xxx_t", xxx_enum_ptrs, xxx_reloc_ptrs,\</tt></b><br>
-<b><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt></b>... additional parameters as needed ...<b><tt>)</tt></b>
-</blockquote>
-
-<p>
-The file that implements operations on this structure
-(&lt;filename&gt;<b><tt>.c</tt></b>) should then include, near the
-beginning, the line:
-
-<blockquote>
-<b><tt>private_st_xxx();</tt></b>
-</blockquote>
-
-<p>
-In much existing code, structure descriptors are declared as
-<b><tt>public</tt></b>, which allows clients to allocate instances of the
-structure directly. We now consider this bad design. Instead, structure
-descriptors should always be <b><tt>private</tt></b>; the implementation
-file should provide one or more procedures for allocating instances, e.g.,
-
-<blockquote>
-<b><tt>xxx_t *gs_xxx_alloc(P1(gs_memory_t *mem));</tt></b>
-</blockquote>
-
-<p>
-If it is necessary to make a structure descriptor public, it should be
-declared in its clients as
-
-<blockquote>
-<b><tt>extern_st(st_xxx);</tt></b>
-</blockquote>
-
-<h3><a name="Objects"></a>"Objects"</h3>
-
-<p>
-Ghostscript makes heavy use of object-oriented constructs, including
-analogues of classes, instances, subclassing, and class-associated
-procedures. However, these constructs are implemented in C rather than C++,
-for two reasons:
-
-<ul>
-
-<li>The first Ghostscript code was written in 1986, long before C++ was
-codified or was well supported by tools. Even today, C++ tools rarely
-support C++ as well as C tools support C.
-
-<li>C++ imposes its own implementations for virtual procedures, inheritance,
-run-time type information, and (to some extent) memory management.
-Ghostscript requires use of its own memory manager, and also sometimes
-requires the ability to change the virtual procedures of an object
-dynamically.
-
-</ul>
-
-<h4>Classes</h4>
-
-<p>
-The source code representation of a class is simply a
-<b><tt>typedef</tt></b> for a C <b><tt>struct</tt></b>. See <a
-href="C-style.htm#Structures">Structures</a>, above, for details.
-
-<h4>Procedures</h4>
-
-<p>
-Ghostscript has no special construct for non-virtual procedures associated
-with a class. In some cases, the <b><tt>typedef</tt></b> for the class is
-in a header file but the <b><tt>struct</tt></b> declaration is in the
-implementation code file: this provides an extra level of opaqueness, since
-clients then can't see the representation and must make all accesses through
-procedures. You should use this approach in new code, if it doesn't
-increase the size of the code too much or require procedure calls for very
-heavily used accesses.
-
-<p>
-Ghostscript uses three different approaches for storing and accessing
-virtual procedures, plus a fourth one that is recommended but not currently
-used. For exposition, we assume the class (type) is named
-<b><tt>xxx_t</tt></b>, it has a virtual procedure
-<b><tt>void&nbsp;(*virtu)(P1(xxx_t&nbsp;*))</tt></b>, and we have a variable
-declared as <b><tt>xxx_t&nbsp;*pxx</tt></b>.
-
-<ol>
-
-<li>The procedures are stored in a separate, constant structure of type
-<b><tt>xxx_procs</tt></b>, of which <b><tt>virtu</tt></b> is a member. The
-structure definition of <b><tt>xxx_t</tt></b> includes a member defined as
-<b><tt>const&nbsp;xxx_procs&nbsp;*procs</tt></b> (always named
-<b><tt>procs</tt></b>). The construct for calling the virtual procedure is
-<b><tt>pxx->procs->virtu(pxx)</tt></b>.
-
-<li>The procedures are defined in a structure of type
-<b><tt>xxx_procs</tt></b> as above. The structure definition of
-<b><tt>xxx_t</tt></b> includes a member defined as
-<b><tt>xxx_procs&nbsp;procs</tt></b> (always named <b><tt>procs</tt></b>).
-The construct for calling the virtual procedure is
-<b><tt>pxx->procs.virtu(pxx)</tt></b>.
-
-<li>The procedures are not defined in a separate structure: each procedure
-is a separate member of <b><tt>xxx_t</tt></b>. The construct for calling
-the virtual procedure is <b><tt>pxx->virtu(pxx)</tt></b>.
-
-<li>The procedures are defined in a structure of type
-<b><tt>xxx_procs</tt></b> as above. The structure definition of
-<b><tt>xxx_t</tt></b> includes a member defined as
-<b><tt>xxx_procs&nbsp;procs[1]</tt></b> (always named
-<b><tt>procs</tt></b>). The construct for calling the virtual procedure is
-again <b><tt>pxx->procs->virtu(pxx)</tt></b>.
-
-</ol>
-
-<p>
-Note that in approach 1, the procedures are in a shared constant structure;
-in approaches 2 - 4, they are in a per-instance structure that can be
-changed dynamically, which is sometimes important.
-
-<p>
-In the present Ghostscript code, approach 1 is most common, followed by 2
-and 3; 4 is not used at all. For new code, you should use 1 or 4: that way,
-all virtual procedure calls have the same form, regardless of whether the
-procedures are shared and constant or per-instance and mutable.
-
-<h4>Subclassing</h4>
-
-<p>
-Ghostscript's class mechanism allows for subclasses that can add data
-members, or can add procedure members if approach 1 or 3 (above) is used.
-Since C doesn't support subclassing, we use a convention to accomplish it.
-In the example below, <b><tt>gx_device</tt></b> is the root class; it has a
-subclass <b><tt>gx_device_forward</tt></b>, which in turn has a subclass
-<b><tt>gx_device_null</tt></b>. First we define a macro for all the members
-of the root class, and the root class type. (As for structures in general,
-classes need a structure descriptor, as discussed in <a
-href="#Structures">Structures</a> above: we include these in the examples
-below.)
-
-<blockquote><b><tt>
-#define gx_device_common\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;type1 member1;\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;</tt></b>...<b><tt><br>
-&nbsp;&nbsp;&nbsp;&nbsp;typeN memberN<br>
-<br>
-typedef struct gx_device_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device_common;<br>
-} gx_device;<br>
-<br>
-#define private_st_gx_device()&nbsp;&nbsp;/* in gsdevice.c */\<br>
-&nbsp;&nbsp;gs_private_st_</tt></b>&lt;whatever&gt;<b><tt>(st_gx_device, gx_device,\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;"gx_device", device_enum_ptrs, device_reloc_ptrs,\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;</tt></b>... additional parameters as needed ...<b><tt>)</tt></b>
-</tt></b></blockquote>
-
-<p>
-We then define a similar macro and type for the subclass.
-
-<blockquote><b><tt>
-#define gx_device_forward_common\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device_common;\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device *target<br>
-<br>
-typedef struct gx_device_forward_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device_forward_common;<br>
-} gx_device_forward;<br>
-<br>
-#define private_st_device_forward()&nbsp;&nbsp;/* in gsdevice.c */\<br>
-&nbsp;&nbsp;gs_private_st_suffix_add1(st_device_forward, gx_device_forward,\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;"gx_device_forward", device_forward_enum_ptrs, device_forward_reloc_ptrs,\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device, target)
-</tt></b></blockquote>
-
-<p>
-Finally, we define a leaf class, which doesn't need a macro because we don't
-currently subclass it. (We can create the macro later if needed, with no
-changes anywhere else.) In this particular case, the leaf class has no
-additional data members, but it could have some.
-
-<blockquote><b><tt>
-typedef struct gx_device_null_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device_forward_common;<br>
-};<br>
-<br>
-#define private_st_device_null()&nbsp;&nbsp;/* in gsdevice.c */\<br>
-&nbsp;&nbsp;gs_private_st_suffix_add0_local(st_device_null, gx_device_null,\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;"gx_device_null", device_null_enum_ptrs, device_null_reloc_ptrs,\<br>
-&nbsp;&nbsp;&nbsp;&nbsp;gx_device_forward)
-</tt></b></blockquote>
-
-<p>
-Note that the above example is <strong>not</strong> the actual definition of
-the <b><tt>gx_device</tt></b> structure type: the actual type has some
-additional complications because it has a finalization procedure. See <a
-href="../src/gxdevcli.h">src/gxdevcli.h</a> for the details.
-
-<p>
-If you add members to a root class (such as <b><tt>gx_device</tt></b> in
-this example), or change existing members, do this in the
-<b><tt>gx_device_common</tt></b> macro, not the <b><tt>gx_device</tt></b>
-structure definition. Similarly, to change the
-<b><tt>gx_device_forward</tt></b> class, modify the
-<b><tt>gx_device_forward_common</tt></b> macro, not the structure
-definition. Only change the structure definition if the class is a leaf
-class (one with no <b><tt>_common</tt></b> macro and no possibility of
-subclassing), like <b><tt>gx_device_null</tt></b>.
-
-<h3><a name="Error_handling"></a>Error handling</h3>
-
-<p>
-Every caller should check for error returns and, in general, propagate them
-to <b>its</b> callers. By convention, nearly every procedure returns an
-<b><tt>int</tt></b> to indicate the outcome of the call:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td align=right>&lt; 0
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>Error return
-<tr valign=top> <td align=right>0
- <td>&nbsp;
- <td>Normal return
-<tr valign=top> <td align=right>&gt; 0
- <td>&nbsp;
- <td>Non-error return other than the normal case
-</table></blockquote>
-
-<p>
-To make a procedure generate an error and return it, as opposed to
-propagating an error generated by a lower procedure, you should use
-
-<blockquote>
-<b><tt>return_error(</tt></b><em>error_number</em><b><tt>);</tt></b>
-</blockquote>
-
-<p>
-Sometimes it is more convenient to generate the error in one place and
-return it in another. In this case, you should use
-
-<blockquote>
-<b><tt>code = gs_note_error(</tt></b><em>error_number</em><b><tt>);</tt></b><br>
-...<br>
-<b><tt>return code;</tt></b>
-</blockquote>
-
-<p>
-In executables built for debugging, the <b><tt>-E</tt></b> (or
-<b><tt>-Z#</tt></b>) command line switch causes <b><tt>return_error</tt></b>
-and <b><tt>gs_note_error</tt></b> to print the error number and the source
-file and line: this is often helpful for identifying the original cause of
-an error.
-
-<p>
-See the file <a href="../src/gserrors.h">src/gserrors.h</a> for the error
-return codes used by the graphics library, most of which correspond directly
-to PostScript error conditions.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-
-<p>
-<small>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-</small>
-
-<p>
-<small>Copyright &copy; 1996-2002 artofcode LLC.
-All rights reserved.</small>
-
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/CJK.htm b/Master/xemtex/doc/ghostscript/CJK.htm
deleted file mode 100644
index 9833db35da4..00000000000
--- a/Master/xemtex/doc/ghostscript/CJK.htm
+++ /dev/null
@@ -1,497 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or
-g/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Features to support CJK CID-keyed in Ghostscript</title>
-<!-- $Id: CJK.htm,v 1.1.4.8.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Features to support CJK CID-keyed font in Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Font_License">Font license</a>
-<li><a href="#About_OCF_fonts">About OCF fonts</a>
-<li><a href="#About_CID_keyed_fonts">About CID-keyed fonts</a>
-<ul>
- <li><a href="#About_CIDFontType0">CIDFontType 0</a>
- <li><a href="#About_CIDFontType2">CJK TrueType font and CIDFontType 2</a>
-</ul>
-<li><a href="#About_CIDFnmap">About "CIDFnmap" of Ghostscript</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>Impatient users looking for step-by-step installation notes for
-CJK fonts should check gs-cjk documents at
-<a href="http://www.gyve.org/gs-cjk/supplement/">
-http://www.gyve.org/gs-cjk/supplement/</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-
-
-<h2><a name="Font_license"></a>Font license</h2>
-<p>
-As we note in <a href="Fonts.htm#Add_fonts">"Adding your own fonts"</a>,
-you have to read the license of fonts carefully.
-The fact you obtain the fonts legally does not mean
-always that you can use them with Ghostscript.
-
-Usually, outline fonts for east Asian scripts are licensed under
-more restricted conditions in comparison with ASCII or Latin
-fonts, because they must provide a large number of glyphs,
-more than 8000 glyphs.
-
-For example, Adobe licenses the Asian font package for Acrobat
-Reader as "solely for Acrobat Reader". So even if your system
-have pre-installed Acrobat Reader, you cannot use its Asian fonts
-in Ghostscript.
-
-
-<h2><a name="About_OCF_fonts"></a>About OCF fonts</h2>
-<p>
-Prior to PostScript level 2015, PostScript fonts for multibyte encoded
-script (Chinese, Japanese, Korean and Vietnamese etc) were implemented
-as a collection of many elemental Type1/Type3 fonts and a selector.
-Today these fonts are known as OCF (Original Composite Font).
-Ghostscript fully supports OCF.
-
-
-<p>
-Adobe has announced that OCF is obsolete.
-For details of OCF, refer<br>
-<blockquote>
-"CJKV Information Processing" (Ken Lunde, O'Reilly 1999) p. 281,<br>
-"PostScript Language Reference Manual, third edition" p. 357
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf"
-class="offsite">
-href="http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf
-</a><br>
-"PostScript Language Tutorial and Cookbook, Japanese edition" (Adobe Systems, Incorporated, ASCII Corporation 1989) pp. 241-271,<br>
-</blockquote>
-and Technical Notes for CID-keyed fonts.
-
-
-<h2><a name="About_CID_keyed_fonts"></a>About CID-keyed fonts</h2>
-<p>
-In PostScript level 2015, Adobe introduced a new font format
-"CID-keyed font" for CJK scripts.
-For details of the CID-keyed font format, refer<br>
-<blockquote>
-"PostScript Language Reference Manual, third edition"</a> p. 364
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf</a><br>
-Technical Specification #5014 "Adobe CMap and CIDFont Files Specification"
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5014.CMap_CIDFont_Spec.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5014.CMap_CIDFont_Spec.pdf
-</a><br>
-Technical Specification #5092 "CID-keyed Font Technology Overview"
-<a href="http://partners.adobe.com/asn/developer/pdfs/tn/5092.CID_Overview.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5092.CID_Overview.pdf
-</a><br>
-</blockquote>
-Ghostscript provides the basic functionalities of CID-keyed fonts,
-but the "rearranged font" feature is not implemented.
-The present functionalities are enough for common usage.
-Some Japanese PostScript programs expect that any system that
-supports CID-keyed fonts will also support "rearranged font".
-Such programs do not work well with ghostscript.
-Chinese and Korean scripts were never officially supplied by OCF,
-so such problems are rare.
-
-<p>
-The CID-keyed font format has a double layered structure.
-The lower layer is a CID-keyed font. The public interface of the
-CID-keyed font is a 16-bit CID (character identifier) number
-which is given to each unique "glyph" for subsets of various scripts.
-This is not a "character" code like ASCII/Unicode/etc.
-Adobe specifies CIDs for CJK scripts:
-Adobe-CNS1 &amp 2 (Traditional Chinese Hanzi glyphs),
-Adobe-GB1 (Simplified Chinese Hanzi glyphs),
-Adobe-Japan1 &amp; 2 (Japanese Kana and Kanji glyphs),
-Adobe-Korea1 &amp; 2 (Hangul and Hanja glyphs),
-Adobe-HongKong1 (Traditional Chinese Hanzi in HongKong),
-and Adobe-Vietnam1 (Chu-Han).
-The catalogues of glyphs for some CIDs are published by Adobe,
-refer Technical Notes service of Adobe:<br>
-<blockquote>
-<a
-href="http://partners.adobe.com/asn/developer/technotes/fonts.html"
-class="offsite">
-http://partners.adobe.com/asn/developer/technotes/fonts.html</a>
-</blockquote>
-
-
-
-
-<p>
-A CID-keyed font must provide the CID number interface,
-but the format of the glyph data may vary:<br>
-<ul>
-<li>CIDFontType 0 (FontType 9, CID-keyed Type1 font),</li>
-<li>CIDFontType 1 (FontType 10, CID-keyed Type3 font),</li>
-<li>CIDFontType 2 (FontType 11, CID-keyed Type42 font - TrueType)</li>
-</ul>
-
-
-
-
-
-
-<p>
-The higher layer is a CMap. A CMap provides a map from the multibyte
-character code to the CID of corresponding glyph, under a specified
-encoding system. PostScript fonts must provide a character
-code interface, so a bare CID-keyed font cannot be used as normal
-PostScript font without a CMap (e.g. <tt>findfont</tt>, <tt>show</tt>,
-etc are not usable, however <tt>glyphshow</tt> operator is usable for
-a bare CID-keyed font).
-In a CID-keyed font system, the various encoding systems can be supported
-by higher layer only. The lower layer is sharable.
-
-<p>
-A CMap file is stored in the /CMap resource category and the
-CID-keyed font file is stored in the /CIDFont resource category.
-Several operators introduced for CID-keyed fonts assume these locations,
-so CMap and CIDFont must not be stored in the /Font resource used
-traditionally used by PostScript fonts.
-
-<p>
-For "named resource category", refer
-<a href="Use.htm#PS_resources">Finding PostScript Level 2 resources</a> of Ghostscript.
-
-<p>
-Adobe distributes their official CMap (redistributable but no modification
-is permitted) on O'Reilly ftp site:
-<blockquote>
-<a
-href="ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/"
-class="offsite">
-ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/</a>
-</blockquote>
-
-To use CID-keyed font, these CMap files must be installed into the CMap
-resource directory.
-
-
-
-<h3><a name="About_CIDFontType0"></a>CIDFontType 0</h2>
-<p>
-CIDFontType0 is the most standard CIDFont of PostScript.
-It consists of two separated parts: PostScript
-program and attached binary data. The glyph data is stored in attached
-binary part and is dynamically accessed. In comparison with OCF,
-loading a CIDFontType0 is light-weight and comsumes less memory.
-
-<p>
-To make Ghostscript recognize a CIDFontType0 font is easy.
-If the CIDFontType0 font file is installed into a directory named "CIDFont"
-under GenericResourceDir (see
-<a href="Use.htm#PS_resources">Finding PostScript Level 2 resources</a>),
-Ghostscript will find it when searching for resources in /CIDFont category.
-
-
-
-
-<h3><a name="About_CIDFontType2"></a>CJK TrueType font and CIDFontType 2</h2>
-<p>
-In PostScript 2010, Adobe introduced the Type42 font format
-to embed a host-based TrueType font into a PostScript program.
-For details of the Type42 font format, refer to
-<blockquote>
-The Type 42 Font Format Specification. Technical Note #5012
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5012.Type42_Spec.pdf"
-class="offsite">
-"http://partners.adobe.com/asn/developer/pdfs/tn/5012.Type42_Spec.pdf
-</a>
-</blockquote>
-CIDFontType2 is a CID extension of the Type42 font format.
-If Ghostscript is compiled with
-<a href="Make.htm#Features_and_devices">ttfont device</a>
-and CMap files are installed, Ghostscript is capable of
-handling CIDFontType2 resource embedded in PostScript program
-or PDF document.
-The Type42 font specification notes that Type42 is an installable font
-format, but there's no font distributed in the Type42 format.
-This is a big difference from the standard PostScript fonts: Type1, Type3
-and CIDFontType0.
-
-<p>
-Ghostscript now provides "on-the-fly CIDFontType2 converter"
-for CJK TrueType, similar to the "on-the-fly Type42 converter" for
-Roman TrueType fonts.
-This does not mean you can perfectly substitute a required PostScript
-fonts by a TrueType font. CJK TrueType font often lack many
-non-popular glyphs and a few popular glyphs in Adobe CID.
-As a result, a TrueType font
-(designed as screen font for window system) cannot be a perfect
-replacement for an Adobe PostScript font
-Refer <a href="CJKTTCID.htm">CJKTTCID.htm</a> for further particulars.
-
-<p>
-The operator <b><tt>.openttcidfont</tt></b> constructs CIDFontType2
-font dictionary from a given TrueType font. <b><tt>.openttcidfont</tt></b>
-requires extra CMaps for PDF available from:
-
-<blockquote>
-<a
-href="http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html"
-class="offsite">
-http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html
-</a>
-</blockquote>
-
-The basic syntax of <b><tt>.openttcidfont</tt></b> is:<br>
-<blockquote>
-<b><tt>&lt;ttf_filename&gt; .openttcidfont</tt></b><br>
-</blockquote>
-
-<p>
-When a font file in Microsoft's TrueType Collection format
-(a font file with suffix <b><tt>.ttc</tt></b>
- includes multiple fonts in single file) is given,
-the first font in it is used by default.
-To specify a font manually, index of the font should be passed
-to <b><tt>.openttcidfont</b></tt>, as:<br>
-
-<blockquote>
-<b><tt>&lt;ttc_filename&gt; 2 .openttcidfont</tt></b><br>
-</blockquote>
-
-<p>
-Old TrueType fonts were encoded by CJK-system specific encodings
-(e.g. Big5, Johab, ShiftJIS, etc) without stating what encoding
-is used.
-On the other hand, recent TrueType fonts are encoded by Unicode,
-but included glyphs are limited to specific language.
-By default, <b><tt>.openttcidfont</tt></b> detects encoding of
-TrueType font and the suitable Adobe CID automatically, but if
-you have trouble, these parameters should be specified manually.
-To specify Adobe CID and TrueType encoding explicitly, pass a name
-object as:
-
-<blockquote>
-<b><tt>&lt;ttf_filename&gt; /Adobe-Japan1-ShiftJIS .openttcidfont</tt></b><br>
-</blockquote>
-
-In such syntax, Adobe-Japan1 specifies Adobe CID to be mapped,
-and ShiftJIS specifies the encoding of TrueType fonts.
-Currently supported Adobe CIDs are:<br>
-
-<blockquote>
-<b><tt>Adobe-CNS1</tt></b><br>
-<b><tt>Adobe-GB1</tt></b><br>
-<b><tt>Adobe-Japan1</tt></b><br>
-<b><tt>Adobe-Japan2</tt></b><br>
-<b><tt>Adobe-Korea1</tt></b><br>
-</blockquote>
-
-and, supported TrueType encodings are:<br>
-
-<blockquote>
-<b><tt>Big5</tt></b><br>
-<b><tt>Johab</tt></b><br>
-<b><tt>PRC</tt></b><br>
-<b><tt>ShiftJIS</tt></b><br>
-<b><tt>Unicode</tt></b><br>
-<b><tt>Wansung</tt></b><br>
-</blockquote>
-
-In addition about on-the-fly CIDFontType2 conversion of TrueType fonts
-(of Big5, PRC, ShiftJIS, Wangsung), <tt>.openttcidfont</tt> requires
-more extra CMap files which are available from Asian font packages for
-Adobe Acrobat Reader. See <a href="Fonts.htm#CMap_Adobe"> "Adobe
-CMaps" subsection</a> of "Fonts and font facilities supplied with
-Ghostscript" section.
-
-
-
-<h2><a name="About_CIDFnmap"></a>About "CIDFnmap" of Ghostscript</h2>
-<p>
-By applying various CMap to single CIDFont, various font resources
-can be generated. To utilize this feature conveniently, "CIDFnmap"
-is introduced. CIDFnmap is similar to Fontmap, but it handles resource
-name of CIDFont.
-
-<p>
-To map all /Ryumin-Light-* fonts (/Ryumin-Light-H, /Ryumin-Light-RKSJ-H
-etc) derived from /Ryumin-Light CIDFont to those from /WadaMin-Regular,
-following single entry works enough:<br>
-
-<blockquote>
-<b><tt>/Ryumin-Light&nbsp;/WadaMin-Regular&nbsp;;</tt></b><br>
-</blockquote>
-
-Also CIDFnmap can define a resource from a file specified with full path,
-it is convenient to import resource from out of Ghostscript directory tree:<br>
-
-<blockquote>
-<b><tt>/WadaMin-Regular&nbsp;(/usr/lib/X11/fonts/CIDFont/WadaMin-Regular)&nbsp;;</tt></b><br>
-</blockquote>
-
-If the given file is TrueType font, CIDFnmap automatically detect it, and
-execute <b><tt>.openttcidfont</tt></b>:<br>
-
-<blockquote>
-<b><tt>/HG-MinchoL&nbsp;(/usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf)&nbsp;;</tt></b><br>
-</blockquote>
-
-Other operands for <b><tt>.openttcidfont</tt></b> (TTC index, CID/encoding
-specification) can be specified as:<br>
-
-<blockquote>
-<b><tt>
-/HeiseiMin-W3H&nbsp;(/usr/openwin/lib/locale/ja/X11/fonts/TT/HeiseiMin-W3H.ttf)&nbsp;/Adobe-Japan2-Unicode&nbsp;;<br>
-</blockquote>
-<blockquote>
-/Ryobi-PGothic&nbsp;(/usr/X11R6/lib/X11/fonts/TrueType/tcgothb.ttc)&nbsp;2&nbsp;/Adobe-Japan1-Unicode&nbsp;;<br>
-</tt></b>
-</blockquote>
-
-
-<p>
-For detail, please refer included sample CIDFnmap. For the sites
-to get font itself, refer <a href="Fonts.htm">Fonts.htm</a>.
-
-<dl>
-<dt>CIDFnmap.Ore</dt>
-<dd>
- For free CJK CIDFontType0 fonts manufactured by Adobe.
-</dd>
-
-<dt>CIDFnmap.Bae</dt>
-<dd>
- For free Hangul TrueType fonts manufactured by Hwan Design Inc..
-</dd>
-
-<dt>CIDFnmap.ARP</dt>
-<dd>
- For free Simplified/Traditional Chinese TrueType fonts
- manifactured by Arphic Technology.
-</dd>
-
-<dt>CIDFnmap.Koc</dt>
-<dd>
- Japanese TrueType fonts and free CIDFontType0 version of them,
- Kochi Mincho and Gothic.
-</dd>
-
-<dt>CIDFnmap.Sol</dt>
-<dd>
- For CJK TrueType fonts bundled on Solaris 8 International edition.
-</dd>
-
-<dt>CIDFnmap.Win</dt>
-<dd>
- For CJK TrueType fonts bundled on Windows.
-</dd>
-
-<dt>CIDFnmap.CJK</dt>
-<dd>
- Aliasing for printer-based CJK fonts
- (/HYGoThic-Medium, /MSung-Light, /Ryumin-Light, /STSong-Light, etc)
- and fallback font definitions for missing fonts in PDF.
-</dd>
-
-<dt>CIDFnmap.b5, CIDFnmap.gb, CIDFnmap.ksx, CIDFnmap.sj</dt>
-<dd>
- Aliasing locale-specific CIDFontNames which are often required
- with multi-byte encoding in PS/PDF files.
-</dd>
-
-</dl>
-
-
-<b>NOTE:</b>
-In gs7.2x and later release,
-"CIDFnmap" feature will be merged into new mapping feature:
-"cidfmap" and "CIDFnmap" itself will be removed.
-
-
-<p>
-There are CJK samples in <b><tt>examples/cjk</tt></b>:
-<b><tt>
-all_ac1.ps, all_ag1.ps, all_aj1.ps, all_aj2.ps, all_ak1.ps
-</tt></b>
-(drawing all glyphs in Adobe CID for Traditional Chinese,
-Simplified Chinese, Japanese, Japanese Hojo Kanji, Korean)
-<b><tt>
-gscjk_ac.ps, gscjk_ag.ps, gscjk_aj.ps, gscjk_ak.ps
-</tt></b>
-(drawing short texts in horizontal and vertical writing modes)
-and multilingual sample <b><tt>iso2022.ps</tt></b>
-(this sample loads many fonts for various scripts, quite heavy).
-<b><tt>gscjk_*</tt></b> samples are written in Asian character encoding and
-iso2022.ps is in ISO-2022, not pure ASCII.
-To modify them, an internationalized or binary capable editor
-are recommended.
-
-<p>
-For proofing by PostScript printers (for Asian market),
-these samples use standard printer-based CJK fonts:
-/HYGoThic-Medium, /MSung-Light, /Ryumin-Light, /STSong-Light etc.
-To display them correctly by Ghostscript,
-printer-based fonts must be aliased to available fonts on Ghostscript.
-CIDFnmap.CJK lists known printer-based CJK fonts,
-modify it for your own environment.
-
-
-
-
-
-<p>
-This section by Suzuki Toshiya and gs-cjk project.
-&lt;<a href="mailto:mpsuzuki@gyve.org">mpsuzuki@gyve.org</a>&gt;
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<font size=2>
-
-<p>Copyright &copy; 2001 gs-cjk project
-&lt;<a href="http://www.gyve.org/gs-cjk/">http://www.gyve.org/gs-cjk/</a>&gt;.
-<p>Copyright &copy; 2002 artofocode LLC. All rights reserved.
-
-<p>This file is part of GNU Ghostscript. See the
-<a href="COPYING">GNU General Public License</a> (the "License") for
-full details of the terms of using, copying, modifying, and redistributing
-GNU Ghostscript.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-</font>
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/CJKTTCID.htm b/Master/xemtex/doc/ghostscript/CJKTTCID.htm
deleted file mode 100644
index c777bc5b557..00000000000
--- a/Master/xemtex/doc/ghostscript/CJKTTCID.htm
+++ /dev/null
@@ -1,409 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Adobe CIDs and glyphs in CJK TrueType font</title>
-<!-- $Id: CJKTTCID.htm,v 1.1.4.8.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Adobe CIDs and glyphs in CJK TrueType font</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Overview">Overview</a></li>
-<li><a href="#Notes">Adobe CIDs that current Ghostscript can fills by CJK TTF</a></li>
-<li><a href="#References">References</a></li>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-This article is written by Taiji Yamada
-&lt;<a href="mailto:taiji@aihara.co.jp">taiji@aihara.co.jp</a>&gt;.
-He takes full responsibility for the wording and content of this article.
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-
-<h2><a name="Overview"></a>Overview</h2>
-
-<p>
-This note provides information on utilization of CJK (Chinese,
-Japanese and Korean) TrueType fonts (TTF) as CIDFoneType 2 (Type11)
-CID-keyed fonts from the viewpoint of its validity and limitation.
-In order to compose CIDFontType 2 font from CJK TTF on the fly,
-Ghostscript uses not only standard CMaps (mapping from character
-encoding to CID, we call them ToCID CMaps in following) but also
-ToUnicode CMaps (mapping from CID to Unicode) and
-ToCode CMaps (mapping from CID to non-Unicode character encodings)
-which are freely distributed with Acrobat Reader by Adobe Systems
-Incorporated.
-
-For detail of ToUnicode CMaps, refer
-<blockquote>
-Adobe Systems Incorporated,
-"PDF Reference, Third Edition, Version 1.4",
-p. 368
-<a
-href="http://partners.adobe.com/asn/developer/acrosdk/docs/filefmtspecs/PDFReference.zip"
-class="offsite">
-http://partners.adobe.com/asn/developer/acrosdk/docs/filefmtspecs/PDFReference.zip
-</a><br>
-Adobe Systems Incorporated,
-"ToUnicode Mapping File Tutorial",
-Technical Note #5411</a><br>
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5411.ToUnicode.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5411.ToUnicode.pdf</a><br>
-</blockquote>
-ToUnicode and ToCode CMaps are designed for text-searching in PDF,
-and you should not expect Adobe ToUnicode CMap as a one-to-one map
-between Adobe glyph collection and glyph/character in Unicode.
-
-The current algorithm of Ghostscript to map CIDs to TTF glyph ID
-completely depends on Adobe CMaps, TrueType cmap and GSUB tables.
-
-<p>
-The current revision of on-the-fly CIDFontType 2 technology
-supports the following kinds Registry-Ordering (RO) of CID-keyed
-fonts:
-
-<tt><pre>
- [RO]
- Adobe-CNS1
- Adobe-GB1
- Adobe-Japan1
- Adobe-Japan2
- Adobe-Korea1
-</pre></tt><br>
-
-and doesn't support the following kinds of CID-keyed fonts:<br>
-
-<tt><pre>
- [RO]
- Adobe-CNS2
- Adobe-HongKong1
- Adobe-Korea2
- Adobe-Vietnam1
-</pre></tt><br>
-
-The current revision can handle the following kinds (Encoding in cmap
-table) of TrueType fonts as CID-keyed fonts:<br>
-
-<tt><pre>
- [Encoding] [RO]
- Unicode Adobe-*
- ShiftJIS Adobe-Japan1
- PRC Adobe-GB1
- Big5 Adobe-CNS1
- Wansung Adobe-Korea1
- Johab Adobe-Korea1
-</pre></tt><br>
-
-and doesn't support UCS-4 Encoding TrueType fonts for the present. In
-the case of Unicode Encoding, RO can be detected by reading ``Code
-Page Character Range'' of OS/2 table of TTF as follows:<br>
-
-<tt><pre>
- [Encoding] [Code Page] [RO]
- Unicode Japanese Adobe-Japan1
- Simplified Chinese Adobe-GB1
- Korean Wansung Adobe-Korea1
- Traditional Chinese Adobe-CNS1
- Korean Johab Adobe-Korea1
-</pre></tt><br>
-
-For each combination of RO and TTF Encoding, following Adobe CMaps are
-applied:<br>
-
-<tt><pre>
- [RO-Encoding] [Supplement limit]
- [used CMap] - [Comment]
-
- Adobe-CNS1-Big5 0
- Adobe-CNS1-ETen-B5 - ToCode CMap
- ETen-B5-V - ToCID CMap
- ETen-B5-H - ToCID CMap
-
- Adobe-CNS1-Unicode 3
- Adobe-CNS1-UCS2 - ToUnicode CMap
- UniCNS-UCS2-V - ToCID CMap
- UniCNS-UCS2-H - ToCID CMap
-
- Adobe-GB1-PRC 2
- Adobe-GB1-GBK-EUC - ToCode CMap
- GBK-EUC-V - ToCID CMap
- GBK-EUC-H - ToCID CMap
-
- Adobe-GB1-Unicode 4
- Adobe-GB1-UCS2 - ToUnicode CMap
- UniGB-UCS2-V - ToCID CMap
- UniGB-UCS2-H - ToCID CMap
-
- Adobe-Japan1-ShiftJIS 2
- Adobe-Japan1-90ms-RKSJ - ToCode CMap
- 90ms-RKSJ-V - ToCID CMap
- 90ms-RKSJ-H - ToCID CMap
-
- Adobe-Japan1-Unicode 4
- Adobe-Japan1-UCS2 - ToUnicode CMap
- UniJIS-UCS2-V - ToCID CMap
- UniJIS-UCS2-H - ToCID CMap
-
- Adobe-Japan2-Unicode 0
- UniHojo-UCS2-V - ToCID CMap
- UniHojo-UCS2-H - ToCID CMap
-
- Adobe-Korea1-Johab 1
- KSC-Johab-V - ToCID CMap
- KSC-Johab-H - ToCID CMap
-
- Adobe-Korea1-Unicode 2
- Adobe-Korea1-UCS2 - ToUnicode CMap
- UniKS-UCS2-V - ToCID CMap
- UniKS-UCS2-H - ToCID CMap
-
- Adobe-Korea1-Wansung 1
- Adobe-Korea1-KSCms-UHC - ToCode CMap
- KSCms-UHC-V - ToCID CMap
- KSCms-UHC-H - ToCID CMap
-</pre></tt><br>
-
-where Supplement values are denoted as the limit determined by the
-maximum CID in used CMaps.
-
-<p>
-The Glyph Substitution table (GSUB) of TTF, Single Substitution Format
-2 is read for vertically-used glyphs in CIDs. The current revision
-doesn't handle any other formats of GSUB, so handling ligatures and
-variants as CID-keyed fonts might be tasks to be solved in future.
-
-<p>
-In recent CID-keyed fonts, pre-rotated Latin glyphs are defined, but
-the current revision merely maps to normal Latin glyphs.
-Ghostscript cannot handle them at present.
-
-<h2><a name="Notes"></a>
-Adobe CIDs that current Ghostscript can fills by CJK TTF</h2>
-<p>
-Following tables and comments provide the details of validity and
-limitation for the individual kinds of CID-keyed fonts composed from
-generally-circulated and Unicode TrueType fonts at the current
-revision. Naturally, these results of glyphs lacking are affected by
-TrueType fonts you use.<br>
-
-<tt><pre>
-Adobe-CNS1 CID-keyed font composed from Traditional Chinese Unicode TTF
------------------------------------------------------------------------
-[ROS] [CID range] [Comment]
-Adobe-CNS1-0 0- 505 96,97,124-127,228,260 are lacking
- 506- 561 no problem
- 562- 594 all glyphs are lacking
- 595-13645 no problem
- 13646-13748 13646,13647 are lacking
- 13749-13998 13996-13998 are lacking
- 13999-14098 some glyphs are lacking
-Adobe-CNS1-1 14099-17407 lots of glyphs are lacking (*1)
-Adobe-CNS1-2 17408-17600 17503,17504 are lacking (*2)
-Adobe-CNS1-3 17601-17605 17603 is lacking
- 17606-18845 lots of glyphs are lacking (*3)
-Adobe-CNS1-4 18846-18961 all glyphs assignment is impossible (*4)
-(*1) HK GCCS
-(*2) not pre-rotated
-(*3) HK SCS
-(*4) HK SCS (unused in UniCNS-UCS-2 CMap, though used in UniCNS-UTF8,
-UniCNS-UTF16, UniCNS-UTF32, also ETHK-B5, needless to say HKscs-B5)
-
-
-Adobe-GB1 CID-keyed font composed from Simplified Chinese Unicode TTF
----------------------------------------------------------------------
-[ROS] [CID range] [Comment]
-Adobe-GB1-0 0- 939 99,695,698,737,935,938 are lacking
- 940- 7702 no problem
- 7703- 7716 7705,7708 are incorrect
-Adobe-GB1-1 7717- 9896 no problem
-Adobe-GB1-2 9897-22126 no problem
-Adobe-GB1-3 22127-22352 22347,22350,22352 are lacking (*1)
-Adobe-GB1-4 22353-22427 all glyphs are not available (*2)
- 22428-29058 all glyphs are not available (*3)
- 29059-29063 all glyphs are not available (*4)
-(*1) not pre-rotated
-(*2) additional Hiragana and Katakana, extended Bopomofo glyphs
-(*3) the Unified Han Ideographs Extension A
-(*4) pre-rotated glyphs
-
-
-Adobe-Japan1 CID-keyed font composed from Japanese Unicode TTF
---------------------------------------------------------------
-[ROS] [CID range] [Comment]
-Adobe-Japan1-0 0- 1124 lots of glyphs are lacking or incorrect:
- 96-98,127,128,130-133,135-137,226,326,
- 390,396,422,424,502,506-509,512,513,515,
- 606,607,632
- 1125- 7477 no problem
- 7478- 7632 7478 is lacking and 7608,7609 are incorrect
- 7633- 8004 lots of glyphs are lacking or incorrect (*4)
- 8005- 8283 lots of glyphs are lacking or incorrect:
- 8008,8053,8059-8061,8091,8102-8111,8166-8181,
- 8189,8190,8227-8229,8260
-Adobe-Japan1-1 8284- 8358 lots of glyphs are lacking or incorrect:
- 8295-8297,8300-8302,
- 8306,8307,8321,8322,8325,8326
-Adobe-Japan1-2 8359- 8717 no problem
- 8718- 8719 8718 is lacking and 8719 is incorrect
-Adobe-Japan1-3 8720- 9353 some glyphs are lacking or incorrect (*1)
-Adobe-Japan1-4 9354- 9737 some glyphs are lacking or incorrect (*2)
- 9738-13319 lots of glyphs are lacking or incorrect (*3)
- 13320-15443 all glyphs are variants or lacking (*4)
-(*1) not pre-rotated
-(*2) not italic form
-(*3) many ligature, pre-rotated, pre-rotated and italic form glyphs
-(*4) lots of variants are assigned substitutes
-
-
-Adobe-Japan2 CID-keyed font composed from Japanese Unicode TTF
---------------------------------------------------------------
-[ROS] [CID range] [Comment]
-Adobe-Japan2-0 0- 6067 no problem
-
-
-Adobe-Korea1 CID-keyed font composed from Korean Unicode TTF
-------------------------------------------------------------
-[ROS] [CID range] [Comment]
-Adobe-Korea1-0 0- 357 some glyphs are lacking or incorrect:
- 61,97,100,104,111,227
- 358- 3435 no problem
- 3436- 8055 no problem
- 8056- 8190 lots of glyphs are lacking or incorrect:
- 8059,8061,8075,8083-8085,8089,8091,8093,8190
- 8191- 9332 no problem
-Adobe-Korea1-1 9333-18154 perhaps no problem, but cannot check (*)
-Adobe-Korea1-2 18155-18351 some glyphs are lacking
-(*) Technical Note on Adobe-Korea1-1,2 has not been published yet[6].
-</pre></tt>
-
-<p>
-The current mapping algorithm based on ToCID CMaps and ToUnicode
-CMaps still has problems. The gs-cjk project[7] is considering how
-to settle the matters.
-
-
-<h2><a name="References"></a>References</h2>
-<ol>
-<li>Microsoft Corporation, "OpenType specification"
-<a
-href="http://www.asia.microsoft.com/typography/otspec/"
-class="offsite">
-http://www.asia.microsoft.com/typography/otspec/</a>
-</li>
-
-<li>
-Adobe Systems Incorporated,
-"Adobe-CNS1-4 Character Collection for CID-Keyed Fonts",
-Technical Note #5080
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5080.Adobe-CNS1-4.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5080.Adobe-CNS1-4.pdf</a>
-</li>
-
-<li>
-Adobe Systems Incorporated,
-"Adobe-GB1-4 Character Collection for CID-Keyed Fonts",
-Technical Note #5079
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5079.Adobe-GB1-4.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5079.Adobe-GB1-4.pdf</a>
-</li>
-
-<li>
-Adobe Systems Incorporated,
-"Adobe-Japan1-4 Character Collection for CID-Keyed Fonts",
-Technical Note #5078
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5078.Adobe-Japan1-4.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5078.Adobe-Japan1-4.pdf
-</a>
-</li>
-
-<li>
-Adobe Systems Incorporated,
-"Adobe-Japan2-0 Character Collection for CID-Keyed Fonts",
-Technical Note #5097
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5097.Adobe-Japan2-0.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5097.Adobe-Japan2-0.pdf
-</a>
-</li>
-
-<li>
-Adobe Systems Incorporated,
-"Adobe-Korea1-0 Character Collection for CID-Keyed Fonts"
-Technical Note #5093
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5093.Adobe-Korea1-0.pdf"
-class="offsite">
-http://partners.adobe.com/asn/developer/pdfs/tn/5093.Adobe-Korea1-0.pdf
-</a>
-</li>
-
-<li>
-Taiji Yamada, "Tips on PostScript"
-<a href="http://www.aihara.co.jp/~taiji/tops/" class="offsite">
-http://www.aihara.co.jp/~taiji/tops/</a></li>
-
-<li>"gs-cjk project"
-<a href="http://www.gyve.org/gs-cjk/" class="offsite">
-http://www.gyve.org/gs-cjk/</a></li>
-</ol>
-
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<font size=2>
-
-<p>Copyright &copy; 2001 Taiji Yamada &lt;<a href="mailto:taiji@aihara.co.jp">taiji@aihara.co.jp</a>&gt; and
-<a href="http://www.gyve.org/gs-cjk/" class="offsite">gs-cjk project</a>.
-<p>Copyright &copy; 2002 artofcode LLC. All rights reserved.
-
-<p>This file is part of GNU Ghostscript. See the
-<a href="COPYING">GNU General Public License</a> (the "License") for
-full details of the terms of using, copying, modifying, and redistributing
-GNU Ghostscript.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-</font>
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/COPYING b/Master/xemtex/doc/ghostscript/COPYING
deleted file mode 100644
index fbdd65f6f8b..00000000000
--- a/Master/xemtex/doc/ghostscript/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/Master/xemtex/doc/ghostscript/COPYING.LGPL b/Master/xemtex/doc/ghostscript/COPYING.LGPL
deleted file mode 100644
index cf9b6b99726..00000000000
--- a/Master/xemtex/doc/ghostscript/COPYING.LGPL
+++ /dev/null
@@ -1,510 +0,0 @@
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-^L
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard. To achieve this, non-free programs must
-be allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-^L
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-^L
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-^L
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at least
- three years, to give the same user the materials specified in
- Subsection 6a, above, for a charge no more than the cost of
- performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-^L
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-^L
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-^L
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-^L
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
- To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James
- Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/Master/xemtex/doc/ghostscript/Changes.htm b/Master/xemtex/doc/ghostscript/Changes.htm
deleted file mode 100644
index e3626b64c5e..00000000000
--- a/Master/xemtex/doc/ghostscript/Changes.htm
+++ /dev/null
@@ -1,288 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head>
-<title>Ghostscript 7.07 change history as of 2003-05-17 15:57:59</title>
-<link rel=stylesheet type="text/css" href="gs.css">
-</head><body>
-
-<!-- cvs command: cvs -d giles@cvs.ghostscript.com:/cvs/ghostscript -Q log -rGS_7_0X_GNU -->
-
-<ul>
-<li><a href="#7.07-Documentation">Documentation</a>,
- <a href="#7.07-Procedures">Procedures</a>,
- <a href="#7.07-Utilities">Utilities</a>,
- <a href="#7.07-Drivers">Drivers</a>,
- <a href="#7.07-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.07-Interpreter">Interpreter</a>,
- <a href="#7.07-Library">Library</a>,
- <a href="#7.07-Other">Other</a>
-</ul>
-
-
-<h2><a name="7.07-Documentation"></a>Documentation</h2><pre>
-
-Increment the version number after release. (doc/News.htm [1.90.2.18.2.6]:
-2003/04/08 11:05:47 giles)
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (doc/Readme.htm [1.31.2.16.2.5]: 2003/04/12 14:02:38
-giles)
-
-Update the version and data for the 7.07 release.
-(doc/API.htm [1.11.2.13.2.6], doc/C-style.htm [1.21.2.11.2.5],
-doc/DLL.htm [1.15.2.11.2.5], doc/Develop.htm [1.47.2.18.2.6],
-doc/Devices.htm [1.34.2.15.2.6], doc/Drivers.htm [1.21.2.11.2.5],
-doc/Fonts.htm [1.22.2.13.2.6], doc/Helpers.htm [1.17.2.11.2.5],
-doc/History1.htm [1.13.2.11.2.5], doc/History2.htm [1.13.2.11.2.6],
-doc/History3.htm [1.13.2.11.2.6], doc/History4.htm [1.13.2.11.2.6],
-doc/History5.htm [1.15.2.11.2.6], doc/History6.htm [1.30.2.11.2.6],
-doc/History7.htm [1.5.2.17.2.7], doc/Htmstyle.htm [1.18.2.11.2.5],
-doc/Install.htm [1.26.2.13.2.6], doc/Issues.htm [1.15.2.13.2.5],
-doc/Language.htm [1.34.2.16.2.5], doc/Lib.htm [1.14.2.11.2.5],
-doc/Maintain.htm [1.23.2.12.2.6], doc/Make.htm [1.36.2.19.2.6],
-doc/New-user.htm [1.30.2.14.2.6], doc/News.htm [1.90.2.18.2.7],
-doc/Projects.htm [1.33.2.11.2.6], doc/Ps-style.htm [1.13.2.11.2.5],
-doc/Ps2epsi.htm [1.15.2.12.2.6], doc/Ps2pdf.htm [1.32.2.11.2.5],
-doc/Psfiles.htm [1.22.2.12.2.5], doc/Readme.htm [1.31.2.16.2.6],
-doc/Release.htm [1.40.2.23.2.6], doc/Source.htm [1.13.2.11.2.5],
-doc/Unix-lpr.htm [1.13.2.11.2.5], doc/Use.htm [1.33.2.22.2.6],
-doc/Xfonts.htm [1.13.2.11.2.5], doc/gs-vms.hlp [1.12.2.10.2.5],
-man/dvipdf.1 [1.10.2.9.2.5], man/font2c.1 [1.10.2.9.2.5],
-man/gs.1 [1.10.2.10.2.5], man/gslp.1 [1.10.2.9.2.5],
-man/gsnd.1 [1.10.2.9.2.5], man/pdf2dsc.1 [1.10.2.9.2.5],
-man/pdf2ps.1 [1.12.2.9.2.5], man/pdfopt.1 [1.10.2.9.2.5],
-man/pf2afm.1 [1.10.2.9.2.5], man/pfbtopfa.1 [1.11.2.9.2.5],
-man/printafm.1 [1.10.2.9.2.5], man/ps2ascii.1 [1.10.2.9.2.5],
-man/ps2epsi.1 [1.10.2.10.2.5], man/ps2pdf.1 [1.14.2.11.2.5],
-man/ps2pdfwr.1 [1.13.2.10.2.5], man/ps2ps.1 [1.17.2.9.2.5],
-man/wftopfa.1 [1.10.2.9.2.5]: 2003/05/17 14:38:59 giles)
-
-Update the release notes. (doc/News.htm [1.90.2.18.2.8]: 2003/05/17 14:44:22
-giles)
-
-</pre><h2><a name="7.07-Procedures"></a>Procedures</h2><pre>
-
-Increment the version number after release. (version.mak [1.36.2.9.2.5]:
-2003/04/08 11:05:47 giles)
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (toolbin/3way.tcl [1.3.6.1.2.1],
-toolbin/cvs2hist.py [1.9.2.2.2.1], toolbin/errlist.tcl [1.3.6.1.2.1],
-toolbin/gsindent [1.3.6.1.2.1], toolbin/gsmake.tcl [1.5.6.1.2.1],
-toolbin/gssubst [1.1.4.1.2.1], toolbin/headers.tcl [1.3.6.1.2.1],
-toolbin/leaks.tcl [1.3.6.1.2.1], toolbin/makegnu.tcl [1.3.6.1.2.1],
-toolbin/makeset.tcl [1.10.2.3.2.1], toolbin/many2pdf.tcl [1.1.4.1.2.1],
-toolbin/pdfinflt.ps [1.1.2.1.2.1], toolbin/pre [1.11.2.3.2.1],
-toolbin/precheck.tcl [1.3.6.1.2.1], toolbin/suite.tcl [1.3.6.1.2.1],
-toolbin/tmake.tcl [1.3.6.1.2.1]: 2003/04/12 14:02:39 giles)
-
-Add the bbox device to the default macos shlib build. Bug 686811.
-(macos-mcp.mak [1.3.2.8.2.2]: 2003/04/27 23:50:11 giles)
-
-Add the display device to the default macos shlib build.
-(macos-mcp.mak [1.3.2.8.2.3]: 2003/04/27 23:52:55 giles)
-
-Log message: For the pngalpha device, set the default background color to
-white in the bKGD chunk. Add an option -dBackgroundColor=16#RRGGBB to
-explicitly set the background color. This is needed by a common web browser
-that doesn't correctly support PNG with alpha transparency. DETAILS:
-Programs that don't fully support alpha transparency let libpng convert an
-RGBA image to RGB. The background color used is either provided by the
-program, or in the bKGD chunk, or it falls back to gray. MSIE was defaulting
-to a gray background which is not commonly used on web pages. By writing a
-white bKGD chunk, PNG files will display correctly against a white
-background in MSIE. If a solid color for a web page background is used with
-&lt;body bgcolor="#CCCC00"&gt;, then PNG images appearing on that page would
-need to be created with -dBackgroundColor=16#CCCC00. For textured background
-there is no hope. Microsoft needs to fix Internet Explorer.
-(libpng.mak [1.10.2.3.2.2]: 2003/05/15 10:05:29 ghostgum)
-
-Update the version and data for the 7.07 release.
-(version.mak [1.36.2.9.2.6]: 2003/05/17 14:39:00 giles)
-
-</pre><h2><a name="7.07-Utilities"></a>Utilities</h2><pre>
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (lib/Fontmap.ATB [1.2.6.1.2.1],
-lib/Fontmap.ATM [1.2.6.1.2.1], lib/Fontmap.GS [1.2.6.1.2.1],
-lib/Fontmap.OS2 [1.2.6.1.2.1], lib/Fontmap.SGI [1.2.6.1.2.1],
-lib/Fontmap.Sol [1.2.6.1.2.1], lib/Fontmap.Ult [1.2.6.1.2.1],
-lib/addxchar.ps [1.2.6.1.2.1], lib/align.ps [1.2.6.1.2.1],
-lib/bdftops.ps [1.3.2.2.2.1], lib/caption.ps [1.2.6.1.2.1],
-lib/cid2code.ps [1.3.4.1.2.1], lib/docie.ps [1.2.6.1.2.1],
-lib/errpage.ps [1.2.6.1.2.1], lib/font2c.ps [1.3.2.1.2.1],
-lib/font2pcl.ps [1.2.6.2.2.1], lib/gslp.ps [1.2.6.2.2.1],
-lib/gsnup.ps [1.2.6.1.2.1], lib/image-qa.ps [1.3.2.1.2.1],
-lib/impath.ps [1.3.4.1.2.1], lib/jispaper.ps [1.2.6.1.2.1],
-lib/lines.ps [1.2.6.1.2.1], lib/markhint.ps [1.2.6.1.2.1],
-lib/markpath.ps [1.2.6.1.2.1], lib/packfile.ps [1.2.6.2.2.1],
-lib/pcharstr.ps [1.2.6.1.2.1], lib/pdf2dsc.ps [1.3.4.2.2.1],
-lib/pdfopt.ps [1.10.2.2.2.1], lib/pdfwrite.ps [1.7.2.1.2.1],
-lib/pfbtopfa.ps [1.2.6.1.2.1], lib/ppath.ps [1.2.6.1.2.1],
-lib/pphs.ps [1.3.2.1.2.1], lib/ps2ai.ps [1.2.6.1.2.1],
-lib/ps2ascii.ps [1.3.2.2.2.1], lib/ps2epsi.ps [1.5.2.3.2.1],
-lib/rollconv.ps [1.1.8.1], lib/showchar.ps [1.2.6.1.2.1],
-lib/stcinfo.ps [1.2.6.1.2.1], lib/stcolor.ps [1.2.6.1.2.1],
-lib/stocht.ps [1.3.6.1.2.1], lib/traceimg.ps [1.2.6.2.2.1],
-lib/traceop.ps [1.2.6.1.2.1], lib/type1enc.ps [1.2.6.1.2.1],
-lib/type1ops.ps [1.2.6.1.2.1], lib/uninfo.ps [1.2.6.1.2.1],
-lib/unprot.ps [1.2.6.1.2.1], lib/viewcmyk.ps [1.2.6.2.2.1],
-lib/viewgif.ps [1.2.6.1.2.1], lib/viewjpeg.ps [1.1.6.2.2.1],
-lib/viewmiff.ps [1.2.6.1.2.1], lib/viewpbm.ps [1.2.6.2.2.1],
-lib/viewpcx.ps [1.2.6.2.2.1], lib/viewps2a.ps [1.2.6.1.2.1],
-lib/wftopfa.ps [1.2.6.1.2.1], lib/winmaps.ps [1.2.6.1.2.1],
-lib/wrfont.ps [1.2.6.1.2.1], lib/zeroline.ps [1.2.6.1.2.1]: 2003/04/12
-14:02:38 giles)
-
-Avoid calling a null pgsdll_callback, as can happen with the new client api
-and CHECK_INTERRUPTS. This fix affects primarily MacOS; similar protections
-are already in place for other platforms, although the global was not
-explicitly initialized to null. Also return EOFC in the mac stdio stream
-process if no callback is defined. Closes bug 686768. Also backports some
-code cleanup from HEAD. (gp_mac.c [1.1.4.3.2.2], gp_macio.c [1.2.4.5.2.3]:
-2003/04/12 16:37:26 giles)
-
-Add a missing variable declaration for VMS. Patch from Forrest Cahoon and
-Jouk Jansen. (gp_vms.c [1.7.2.3.2.2]: 2003/04/14 13:58:04 giles)
-
-</pre><h2><a name="7.07-Drivers"></a>Drivers</h2><pre>
-
-Avoid calling a null pgsdll_callback, as can happen with the new client api
-and CHECK_INTERRUPTS. This fix affects primarily MacOS; similar protections
-are already in place for other platforms, although the global was not
-explicitly initialized to null. Also return EOFC in the mac stdio stream
-process if no callback is defined. Closes bug 686768. Also backports some
-code cleanup from HEAD. (gdevmac.c [1.1.4.3.2.2]: 2003/04/12 16:37:26 giles)
-
-In the display device, store the line pointers separately from the bits, so
-that the bits can be placed in special memory (e.g. allocated in video
-memory). Fixes Bug 686780 display_memalloc() asks for too much memory. If
-reopening the display device fails after setting the callback, display an
-error message. Allocate the large display bitmap using a low level allocator
-to avoid exceeding the memory limit of the previously used device stable
-memory allocator. Fixes bugs 686836 "-r doesn't work" and duplicate 686838
-"Ghostscript doesn't do anything". DETAILS: The display memory device and
-the raster including line pointers was allocated using the stable allocator
-of the display device. This had a limit of 1Mbyte, which was exceeded when
-the resolution was greater then 114dpi. This would cause subsequent
-allocations to fail, but it appears that nothing else tried to use this
-allocator after the display device. The display device was changed to
-allocate the line pointers separately to allow the raster to be allocated in
-special memory, e.g. video memory or shared memory. This caused the
-subsequent allocation of the line pointers to fail when resolution exceeded
-114dpi. The modified code now allocates the raster with
-gs_alloc_byte_array_immovable, which allocates directly from the C heap, not
-subject to any memory limit apart from the overall -K limit if specified,
-and is not subject to garbage collection. The normal allocator now has
-sufficient memory to allocate the line pointers without problem. The raster
-pointer is removed from the pointers that are enumerated during garbage
-collection. (gdevdsp.c [1.5.2.5.2.3]: 2003/05/01 10:06:26 ghostgum)
-
-Log message: For the pngalpha device, set the default background color to
-white in the bKGD chunk. Add an option -dBackgroundColor=16#RRGGBB to
-explicitly set the background color. This is needed by a common web browser
-that doesn't correctly support PNG with alpha transparency. DETAILS:
-Programs that don't fully support alpha transparency let libpng convert an
-RGBA image to RGB. The background color used is either provided by the
-program, or in the bKGD chunk, or it falls back to gray. MSIE was defaulting
-to a gray background which is not commonly used on web pages. By writing a
-white bKGD chunk, PNG files will display correctly against a white
-background in MSIE. If a solid color for a web page background is used with
-&lt;body bgcolor="#CCCC00"&gt;, then PNG images appearing on that page would
-need to be created with -dBackgroundColor=16#CCCC00. For textured background
-there is no hope. Microsoft needs to fix Internet Explorer.
-(gdevpng.c [1.4.2.1.2.3]: 2003/05/15 10:05:29 ghostgum)
-
-</pre><h2><a name="7.07-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (lib/pdf_base.ps [1.14.2.1.2.1],
-lib/pdf_draw.ps [1.36.2.2.2.1], lib/pdf_font.ps [1.23.2.6.2.1],
-lib/pdf_main.ps [1.35.2.7.2.3], lib/pdf_ops.ps [1.17.2.2.2.1]: 2003/04/12
-14:02:39 giles)
-
-</pre><h2><a name="7.07-Interpreter"></a>Interpreter</h2><pre>
-
-Increment the version number after release. (lib/gs_init.ps [1.40.2.12.2.2]:
-2003/04/08 11:05:47 giles)
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (examples/waterfal.ps [1.3.2.1.2.1],
-lib/gs_agl.ps [1.2.6.1.2.1], lib/gs_btokn.ps [1.5.2.1.2.1],
-lib/gs_ccfnt.ps [1.5.2.1.2.1], lib/gs_ce_e.ps [1.2.6.1.2.1],
-lib/gs_cff.ps [1.10.2.1.2.1], lib/gs_cidcm.ps [1.5.2.2.2.1],
-lib/gs_cidfn.ps [1.18.4.5.2.1], lib/gs_cmap.ps [1.11.2.4.2.1],
-lib/gs_cmdl.ps [1.2.6.1.2.1], lib/gs_css_e.ps [1.2.6.1.2.1],
-lib/gs_dbt_e.ps [1.2.6.1.2.1], lib/gs_diskf.ps [1.2.6.1.2.1],
-lib/gs_dpnxt.ps [1.2.6.1.2.1], lib/gs_dps.ps [1.4.6.1.2.1],
-lib/gs_dps1.ps [1.2.6.1.2.1], lib/gs_dps2.ps [1.3.4.1.2.1],
-lib/gs_dscp.ps [1.4.2.1.2.1], lib/gs_epsf.ps [1.2.6.11.2.3],
-lib/gs_fform.ps [1.2.6.1.2.1], lib/gs_fonts.ps [1.13.2.3.2.1],
-lib/gs_frsd.ps [1.4.6.1.2.1], lib/gs_icc.ps [1.2.2.1.2.1],
-lib/gs_il1_e.ps [1.2.6.1.2.1], lib/gs_il2_e.ps [1.2.6.1.2.1],
-lib/gs_init.ps [1.40.2.12.2.3], lib/gs_kanji.ps [1.2.6.1.2.1],
-lib/gs_ksb_e.ps [1.2.6.1.2.1], lib/gs_l2img.ps [1.2.6.1.2.1],
-lib/gs_lev2.ps [1.7.2.4.2.3], lib/gs_lgo_e.ps [1.3.6.1.2.1],
-lib/gs_lgx_e.ps [1.2.6.1.2.1], lib/gs_ll3.ps [1.10.2.2.2.1],
-lib/gs_mex_e.ps [1.2.6.1.2.1], lib/gs_mgl_e.ps [1.3.6.1.2.1],
-lib/gs_mro_e.ps [1.2.6.1.2.1], lib/gs_pdf_e.ps [1.2.6.1.2.1],
-lib/gs_pdfwr.ps [1.11.2.1.2.1], lib/gs_pfile.ps [1.2.6.1.2.1],
-lib/gs_rdlin.ps [1.2.6.1.2.1], lib/gs_res.ps [1.16.2.2.2.1],
-lib/gs_setpd.ps [1.8.2.2.2.2], lib/gs_statd.ps [1.5.2.2.2.1],
-lib/gs_std_e.ps [1.2.6.1.2.1], lib/gs_sym_e.ps [1.2.6.1.2.1],
-lib/gs_trap.ps [1.3.6.2.2.1], lib/gs_ttf.ps [1.9.2.4.2.1],
-lib/gs_typ32.ps [1.3.2.2.2.1], lib/gs_typ42.ps [1.2.6.1.2.1],
-lib/gs_type1.ps [1.5.2.1.2.1], lib/gs_wan_e.ps [1.2.6.1.2.1],
-lib/gs_wl1_e.ps [1.2.6.1.2.1], lib/gs_wl2_e.ps [1.2.6.1.2.1],
-lib/gs_wl5_e.ps [1.2.6.1.2.1]: 2003/04/12 14:02:38 giles)
-
-Sort the list of devices in the output of 'gs -h' so they're easier to read.
-List the default device separately as it's no longer first. Based on a patch
-from Nelson Beebe. Closes bug 416746. Also correct a warning in argproc().
-(imainarg.c [1.13.2.3.2.2]: 2003/04/12 16:43:14 giles)
-
-In the display device, store the line pointers separately from the bits, so
-that the bits can be placed in special memory (e.g. allocated in video
-memory). Fixes Bug 686780 display_memalloc() asks for too much memory. If
-reopening the display device fails after setting the callback, display an
-error message. Allocate the large display bitmap using a low level allocator
-to avoid exceeding the memory limit of the previously used device stable
-memory allocator. Fixes bugs 686836 "-r doesn't work" and duplicate 686838
-"Ghostscript doesn't do anything". DETAILS: The display memory device and
-the raster including line pointers was allocated using the stable allocator
-of the display device. This had a limit of 1Mbyte, which was exceeded when
-the resolution was greater then 114dpi. This would cause subsequent
-allocations to fail, but it appears that nothing else tried to use this
-allocator after the display device. The display device was changed to
-allocate the line pointers separately to allow the raster to be allocated in
-special memory, e.g. video memory or shared memory. This caused the
-subsequent allocation of the line pointers to fail when resolution exceeded
-114dpi. The modified code now allocates the raster with
-gs_alloc_byte_array_immovable, which allocates directly from the C heap, not
-subject to any memory limit apart from the overall -K limit if specified,
-and is not subject to garbage collection. The normal allocator now has
-sufficient memory to allocate the line pointers without problem. The raster
-pointer is removed from the pointers that are enumerated during garbage
-collection. (idisp.c [1.2.2.2.2.2]: 2003/05/01 10:06:26 ghostgum)
-
-Security fixes. Add detection of %pipe% device when in SAFER mode. Also fix
-detection of 'renamefile' to prevent rename from a file that is not on the
-PermitFileControl list. (zfile.c [1.11.2.4.2.2]: 2003/05/17 14:28:33 ray)
-
-</pre><h2><a name="7.07-Library"></a>Library</h2><pre>
-
-Increment the version number after release. (gscdef.c [1.15.2.4.2.3]:
-2003/04/08 11:05:47 giles)
-
-Update the version and data for the 7.07 release. (gscdef.c [1.15.2.4.2.4]:
-2003/05/17 14:39:00 giles)
-
-</pre><h2><a name="7.07-Other"></a>Other</h2><pre>
-
-Test the optimization compiler flag '-O2' before using it since some vendor
-compilers have different syntax. (Makefile.in [1.1.4.13.2.3],
-configure.ac [1.4.4.12.2.2]: 2003/04/16 13:59:56 giles)
-
-Include the bbox device in the default autoconf build.
-(Makefile.in [1.1.4.13.2.4]: 2003/04/29 18:33:31 giles)
-
-</pre></body></html>
diff --git a/Master/xemtex/doc/ghostscript/Current.htm b/Master/xemtex/doc/ghostscript/Current.htm
deleted file mode 100644
index 1d4fd4270f6..00000000000
--- a/Master/xemtex/doc/ghostscript/Current.htm
+++ /dev/null
@@ -1,272 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Information specifically about the current release</title>
-<!-- $Id: Current.htm,v 1.13.2.11.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: current.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Information specifically about Ghostscript 6.0</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<ul>
-<li><a href="#New_features">New features (since release 5.50)</a>
-<li><a href="#Changes">Changes (since release 5.50)</a>
-<li><a href="#Known_problems">Known problems</a>
- <ul>
- <li><a href="#Usage">Usage</a>
- <li><a href="#Limitations">Limitations</a>
- <li><a href="#Graphics_bugs">Graphics bugs</a>
- <li><a href="#Non_graphics_bugs">Non-graphics bugs</a>
- </ul>
-</ul>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="New_features"></a>New features (since release 5.50)</h2>
-
-<p>
-(This is not a complete list of new features: see <a href="News.htm">the
-news</a> for details.)
-
-<p>
-Ghostscript now handles essentially all of PostScript LanguageLevel 3 and
-PDF 1.3 (Acrobat 4.x compatibility). See <a
-href="Language.htm"><b>Language.htm</b></a> for details.
-
-<p>
-The PDF writer now implements most of the Acrobat (TM) Distiller parameters
-for compressing and downsampling images.
-
-<p>
-The PDF writer now recognizes nearly all varieties of pdfmark, other than
-the Distiller 3.0 "named object" pdfmarks and the Distiller 4.0 "document
-structure" pdfmarks.
-
-<p>
-The PDF writer now handles text in all fonts, not just the 14 built-in ones,
-and implements the Distiller parameters affecting font embedding and
-subsetting. (It still usually converts double-byte fonts to bitmaps.)
-
-<p>
-16- and 24-bit X Windows displays are now fully supported.
-
-<p>
-You now need only the header files and shared libraries, not the source
-code, if you want to use precompiled versions of the jpeg, libpng, or zlib
-libraries.
-
-<p>
-The syntax
-<b><tt>%</tt></b><em>iodevice</em><b><tt>%</tt></b><em>filename</em> is now
-supported with the <b><tt>-sOutputFile=</tt></b> switch, allowing you to
-send raster output to a piped command.
-
-<p>
-You can now use MMK or MMS to build Ghostscript on OpenVMS systems.
-
-<p>
-For driver writers, there are improved facilities for planar output,
-rasterizing directly into a driver-provided buffer, detecting bands that are
-all white or that only use a subset of the colorants, and providing CRDs
-from the driver.
-
-<p>
-The driver API now includes facilities for passing high-level text
-operations, completing the set of high-level operations (bitmap images and
-vector graphics were implemented in 5.50). See <a href="Drivers.htm">the
-documentation</a> for details.
-
-<p>
-Ghostscript as a dynamically linked library is now supported on the Mac as
-well as on Windows.
-
-<p>
-GNU readline was supported in most of the beta distributions for 6.0, but
-was removed at the last minute because of objections from the Free Software
-Foundation. Please see <a href="Make.htm#GNU_readline">here</a> for more
-information.
-
-<h2><a name="Changes"></a>Changes (since release 5.50)</h2>
-
-<h3>Directories and build procedure</h3>
-
-<p>
-The files in the release now have a more complex directory structure. In
-the table below, <em>top</em> refers to the top-level directory,
-<b><tt>gs</tt></b><em>n.nn</em>.
-
-<p>
-The <em>top</em><b><tt>/</tt></b> is where you create a link to the
-appropriate makefile in <em>top</em><b><tt>/src/</tt></b>. On all systems
-other than MS Windows, the build procedure does not write into this
-directory.
-
-<p>
-The files included in the Ghostscript release now are found in five
-subdirectories.
-
-<ul>
-<li><em>top</em><b><tt>/src/</tt></b> contains the C/C++ source code, the
-makefiles, and all other files needed to build the program. The build
-procedure reads from this directory but does not write into it. Nothing in
-this directory is needed at run time.
-
-<li><p><em>top</em><b><tt>/lib/</tt></b> contains PostScript and script
-files needed at run time. The build procedure reads from this directory but
-does not write into it. The contents of this directory are needed at run
-time and are copied by the Unix <b><tt>make install</tt></b> command.
-
-<li><em>top</em><b><tt>/doc/</tt></b> contains documentation. Copied by
-<b><tt>make install</tt></b>.
-
-<li><em>top</em><b><tt>/man/</tt></b> contains Unix <b><tt>man</tt></b>
-pages. Copied by <b><tt>make install</tt></b>.
-
-<li><em>top</em><b><tt>/examples/</tt></b> contains sample PostScript and
-PDF files. Copied by <b><tt>make install</tt></b>.
-
-</ul>
-
-<p>
-The build procedure creates two additional subdirectories,
-<em>top</em><b><tt>/obj/</tt></b> (or <b><tt>debugobj</tt></b> or
-<b><tt>pgobj</tt></b>) and <em>top</em><b><tt>/bin/</tt></b>. See the
-documentation on <a href="Make.htm">how to build Ghostscript</a> for more
-information.
-
-<h2>Other changes</h2>
-
-<p>
-If you are a developer working with the Ghostscript code in any way other
-than writing or modifying drivers, please read all of the "Incompatible
-changes" sections of the <a href="News.htm">release news</a> for important
-information.
-
-<h2><a name="Known_problems"></a>Known problems</h2>
-
-<p>
-See the <a href="News.htm">release news</a> for details.
-
-<h3><a name="Usage"></a>Usage</h3>
-
-<p>
-On a DOS system, interrupting the interpreter by typing control-C doesn't
-restore the display mode.
-
-<h3><a name="Limitations"></a>Limitations</h3>
-
-<p>
-<b><tt>serialnumber</tt></b> returns the same value in all copies.
-
-<p>
-Some floating point exceptions terminate the interpreter, rather than
-producing a <b><tt>limitcheck</tt></b> error.
-
-<p>
-The <b><tt>DCTEncode</tt></b> filter disregards the <b><tt>Blend</tt></b>
-parameter, and uses different <b><tt>QuantTables</tt></b> and
-<b><tt>HuffTables</tt></b> from Adobe's.
-
-<p>
-The DCT filters do not support nonintegral sample ratios. Also,
-<b><tt>DCTEncode</tt></b> will not create files with Sum(HS&times;VS)&gt;10
-(regardless of the value of the <b><tt>Relax</tt></b> parameter) because
-they violate the JPEG standard; but <b><tt>DCTDecode</tt></b> will read
-such files.
-
-<p>
-The size of the execution stack cannot be changed dynamically. (However,
-the sizes of the operand and dictionary stacks can be changed.)
-
-<p>
-<b><tt>Separation</tt></b> and <b><tt>DeviceN</tt></b> color spaces are
-implemented, but devices that actually produce color separations are not
-supported: these color spaces always use the alternate space. The special
-color separations <b><tt>All</tt></b> and <b><tt>None</tt></b>, and the
-primary separations (<b><tt>Red</tt></b>, <b><tt>Green</tt></b>, etc.), are
-not supported.
-
-<p>
-<b><tt>execform</tt></b> and <b><tt>ucache</tt></b> are implemented, but
-they do not actually do any caching; <b><tt>setucacheparams</tt></b> and
-<b><tt>ucachestatus</tt></b> are dummies. (This only impacts performance,
-not functionality.)
-
-<p>
-The <b><tt>image</tt></b> operator honors the <b><tt>Interpolate</tt></b>
-flag in the image dictionary only for ImageType 1 and 3 images, only if the
-combined transformation (<b><tt>ImageMatrix</tt></b> + CTM) doesn't involve
-rotation, skewing, or X-reflection, and only for certain scalings and color
-spaces; <b><tt>imagemask</tt></b> doesn't honor <b><tt>Interpolate</tt></b>
-at all.
-
-<p>
-Some path-building operations that would generate a device coordinate
-larger than +/-2^<small><sup>19</sup></small> will cause a
-limitcheck. However, the common ones (<b><tt>[r]moveto</tt></b>,
-<b><tt>[r]lineto</tt></b>, <b><tt>[r]curveto</tt></b>, <b><tt>closepath</tt></b>) will not.
-
-<h3><a name="Graphics_bugs"></a>Graphics bugs</h3>
-
-<p>
-There are no known graphics bugs in this release.
-
-<h3><a name="Non_graphics_bugs"></a>Non-graphics bugs</h3>
-
-<p>
-The <b><tt>definefont</tt></b> operator (Subrs (type 1 fonts)) expects
-arrays but won't accept packed arrays.
-
-<p>
-Syntax errors occurring within a binary token do not produce the error
-message specified by the Adobe documentation.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998, 1999 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/DLL.htm b/Master/xemtex/doc/ghostscript/DLL.htm
deleted file mode 100644
index 180d4218349..00000000000
--- a/Master/xemtex/doc/ghostscript/DLL.htm
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>How to use the Ghostscript Dynamic Link Library (DLL)</title>
-<!-- $Id: DLL.htm,v 1.15.2.11.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: dll.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>How to use the Ghostscript Dynamic Link Library (DLL)</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<ul>
-<li><a href="#DLL">What is the Ghostscript DLL?</a>
-<li><a href="#Common_functions">Platform-independent DLL functions</a>
-<ul>
-<li><a href="#revision"><b><tt>gsdll_revision()</tt></b></a>
-<li><a href="#init"><b><tt>gsdll_init()</tt></b></a>
-<li><a href="#execute_begin"><b><tt>gsdll_execute_begin()</tt></b></a>
-<li><a href="#execute_cont"><b><tt>gsdll_execute_cont()</tt></b></a>
-<li><a href="#execute_end"><b><tt>gsdll_execute_end()</tt></b></a>
-<li><a href="#exit"><b><tt>gsdll_exit()</tt></b></a>
-<li><a href="#lock_device"><b><tt>gsdll_lock_device()</tt></b></a>
-</ul>
-<li><a href="#Callback">Callback function</a>
-<li><a href="#OS2_device">Ghostscript DLL device for OS/2</a>
-<ul>
-<li><a href="#OS2_bmp"><b><tt>gsdll_get_bitmap()</tt></b></a>
-<li><a href="#OS2_example">Example DLL usage for OS/2</a>
-</ul>
-<li><a href="#Win_device">Ghostscript DLL device for MS Windows</a>
-<ul>
-<li><a href="#Win_copydib"><b><tt>gsdll_copy_dib()</tt></b></a>
-<li><a href="#Win_copypalette"><b><tt>gsdll_copy_palette()</tt></b></a>
-<li><a href="#Win_draw"><b><tt>gsdll_draw()</tt></b></a>
-<li><a href="#Win_get_row"><b><tt>gsdll_get_bitmap_row()</tt></b></a>
-</ul>
-<li><a href="#Win16">Ghostscript DLL Device for 16-bit MS Windows</a>
-</ul>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<p>
-<b>WARNING: The API described in this document is obsolete and will
-be removed in the future.</b>
-The current Ghostscript Interpreter API
-is described in <a href="API.htm">API.htm</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="DLL"></a>What is the Ghostscript DLL?</h2>
-
-<p>
-For the OS/2, Win16 and Win32 platforms, Ghostscript is built as a dynamic
-link library (DLL), and to provide the interface described in the <a
-href="Use.htm">usage documentation</a>, a smaller independent executable
-(<b><tt>.EXE</tt></b>) loads this DLL, which provides all the interaction
-with the windowing system, including image windows and, if necessary, a
-text window. This document describes the DLL interface, which consists of
-eight main functions, <a href="#functions">seven platform-independent
-ones</a> provided by the DLL and one, <a href="#Callback">the callback
-function</a>, provided by the caller. The DLL provides some other
-platform-specific functions for display devices.
-
-<p>
-The DLL's name and characteristics differ among the three platforms:
-
-<ul>
-<li>The <a href="#OS2_device">OS/2 DLL <b><tt>GSDLL2.DLL</tt></b></a> has
-MULTIPLE NONSHARED data segments and can be called by multiple programs
-simultaneously.
-
-<li>The <a href="#Win_device">Win32 DLL <b><tt>GSDLL32.DLL</tt></b></a> has
-MULTIPLE NONSHARED data segments. Under Win32s it can be used by only one
-program at a time, but under Windows 95/98 or Windows NT it can be called by
-multiple programs simultaneously.
-
-<li>The <a href="#Win16">Win16 DLL <b><tt>GSDLL16.DLL</tt></b></a> is a
-large-memory model DLL with far static data. Due to the limitations of
-16-bit MS Windows -- Windows 3.n -- the DLL can be used by only one program
-at a time.
-</ul>
-
-<p>
-The source for the executable is in <b><tt>dp</tt></b>*.* (OS/2) and
-<b><tt>dw</tt></b>*.* (Windows). See these source files for examples of
-how to use the DLL.
-
-<hr>
-
-<h2><a name="Common_functions"></a>Platform-independent DLL functions</h2>
-
-<p>
-The seven functions provided by the DLL are
-<ul>
-<li><b><tt>int GSDLLAPI <a href="#revision">gsdll_revision</a>(char **product, char **copyright, long *gs_revision, long *gs_revisiondate)</tt></b>
-<li><b><tt>int GSDLLAPI <a href="#init">gsdll_init</a>(GSDLL_CALLBACK callback, HWND hwnd, int argc, char *argv[]);</tt></b>
-<li><b><tt>int GSDLLAPI <a href="#execute_begin">gsdll_execute_begin</a>(void);</tt></b>
-<li><b><tt>int GSDLLAPI <a href="#execute_cont">gsdll_execute_cont</a>(const char *str, int len);</tt></b>
-<li><b><tt>int GSDLLAPI <a href="#execute_end">gsdll_execute_end</a>(void);</tt></b>
-<li><b><tt>int GSDLLAPI <a href="#exit">gsdll_exit</a>(void);</tt></b>
-<li><b><tt>int GSDLLAPI <a href="#lock_device">gsdll_lock_device</a>(unsigned char *device, int flag);</tt></b>
-
-<p>
-where <b><tt>GSDLLAPI</tt></b> is defined under OS/2 as
-
-<blockquote><b><tt>
-#define GSDLLAPI
-</tt></b></blockquote>
-
-<p>
-and under MS Windows as
-
-<blockquote><b><tt>
-#define GSDLLAPI CALLBACK _export
-</tt></b></blockquote>
-</ul>
-
-<h3><a name="revision"></a><b><tt>gsdll_revision()</tt></b></h3>
-
-<blockquote>
-This function returns the revision numbers and strings of the Ghostscript
-DLL; you should call it before <b><tt>gsdll_init()</tt></b> to make sure
-that the correct version of the Ghostscript DLL has been loaded. For
-example
-
-<blockquote>
-<pre>char *product;
-char *copyright;
-long revision;
-long revisiondate;
-gsdll_revision(&amp;product, &amp;copyright, &amp;revision, &amp;revisiondate);
-</pre></blockquote>
-
-<p>
-You may use <b><tt>NULL</tt></b> pointers if you do not want a particular
-value.
-</blockquote>
-
-<h3><a name="init"></a><b><tt>gsdll_init()</tt></b></h3>
-
-<blockquote>
-<b><tt>gsdll_init()</tt></b> must be called after loading the DLL and
-before executing any Ghostscript commands. The arguments are the address
-of the callback function, a parent window handle, the count of arguments
-and an array of pointers to the arguments. For example
-
-<blockquote>
-<pre>char *argv[5];
-argv[0] = "gswin.exe";
-argv[1] = "-Ic:\\gs;c:\gs\\fonts";
-argv[2] = "-dNOPAUSE",
-argv[3] = "-sDEVICE=djet500",
-argv[4] = NULL;
-argc = 4;
-
-code = gsdll_init(gsdll_callback, hwnd, argc, argv);
-</pre></blockquote>
-
-<p>
-<b><tt>hwnd</tt></b> is used as the parent window handle for any windows
-created by Ghostscript. <b><tt>hwnd</tt></b> may be <b><tt>NULL</tt></b>
-if the caller has no windows, but if it is <b><tt>NULL</tt></b>, you should
-avoid using devices which may open windows.
-
-<p>
-A return code of 0 (zero) indicates no errors, and the code may now call
-<b><tt>gsdll_execute_begin()</tt></b> or <b><tt>gsdll_exit()</tt></b>. If
-the return value is non-zero then <b><tt>gsdll_exit()</tt></b> must not be
-called.
-
-<p>
-A return value of <b><tt>GSDLL_INIT_QUIT</tt></b> indicates that one of the
-command line files or arguments called "<b><tt>quit</tt></b>", or that
-Ghostscript was reading stdin and reached end-of-file. This is not an
-error. <b><tt>gsdll_exit()</tt></b> must not be called.
-
-<p>
-A return value of <b><tt>GSDLL_INIT_IN_USE</tt></b> indicates that the DLL
-is in use by another application (Windows 3.1 only). The DLL should be
-immediately unloaded (or the caller terminated).
-<b><tt>gsdll_exit()</tt></b> must not be called.
-</blockquote>
-
-<h3><a name="execute_begin"></a><b><tt>gsdll_execute_begin()</tt></b></h3>
-
-<blockquote>
-This must be called after <b><tt>gsdll_init()</tt></b> and before
-<b><tt>gsdll_execute_cont()</tt></b>.
-</blockquote>
-
-<h3><a name="execute_cont"></a><b><tt>gsdll_execute_cont()</tt></b></h3>
-
-<blockquote>
-After successfully calling <b><tt>gsdll_init()</tt></b> and
-<b><tt>gsdll_execute_begin()</tt></b>, commands may be given to Ghostscript
-with <b><tt>gsdll_execute_cont()</tt></b>. Examples are:
-
-<blockquote>
-<pre>char *command = "1 2 add == flush\n";
-code = gsdll_execute_cont(command, strlen(command));
-command = "qu"
-code = gsdll_execute_cont(command, strlen(command));
-command = "it\n"
-code = gsdll_execute_cont(command, strlen(command));
-</pre>
-
-<a name="cont_returns"></a>
-<table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Return codes from <b><tt>gsdll_execute_cont()</tt></b></font><hr>
-<tr valign=bottom>
- <th align=left>Code
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Status
-<tr> <td colspan=3><hr>
-<tr valign=top> <td align=left>0
- <td>&nbsp;
- <td>No errors
-<tr valign=top> <td align=left>&lt; 0
- <td>&nbsp;
- <td>Error
-<tr valign=top> <td align=left>&lt;= -100
- <td>&nbsp;
- <td>"<b><tt>quit</tt></b>" has been executed, or fatal error.
-<b><tt>gsdll_exit()</tt></b> must then be called: do not call
-<b><tt>gsdll_execute_end()</tt></b>.
-</table>
-</blockquote>
-
-<b><tt>gsdll_execute_cont()</tt></b>
-does not flush stdio, so if you want to see output from Ghostscript you
-must do this explicitly as shown in the example above.
-
-<p>
-When executing a string with <b><tt>gsdll_execute_cont()</tt></b>,
-<b><tt>currentfile</tt></b> is the input from
-<b><tt>gsdll_execute_cont()</tt></b>. Reading from <b><tt>%stdin</tt></b>
-uses the callback.
-
-</blockquote>
-
-<h3><a name="execute_end"></a><b><tt>gsdll_execute_end()</tt></b></h3>
-
-<blockquote>
-If <b><tt>gsdll_execute_cont()</tt></b> did not return an error, then
-<b><tt>gsdll_execute_end()</tt></b> must be called after
-<b><tt>gsdll_execute_cont()</tt></b> and before
-<b><tt>gsdll_exit()</tt></b>.
-</blockquote>
-
-<h3><a name="exit"></a><b><tt>gsdll_exit()</tt></b></h3>
-
-<blockquote>
-Call gsdll_exit() to terminate the Ghostscript DLL. It must be called if a
-fatal error has occurred; see the <a href="#cont_returns">return value
-of <b><tt>gsdll_execute_cont()</tt></b></a>. After calling
-<b><tt>gsdll_exit()</tt></b>, there are two options:
-
-<ul>
-<li>Unload the DLL, either by terminating the application or by
-calling <b><tt>DosFreeModule</tt></b> (OS/2) or <b><tt>FreeLibrary</tt></b> (MS Windows).
-
-<li>Call <b><tt>gsdll_init()</tt></b> again to restart Ghostscript.
-</ul>
-</blockquote>
-
-<h3><a name="lock_device"></a><b><tt>gsdll_lock_device()</tt></b></h3>
-
-<blockquote>
-Since the caller may be multithreaded, a lock is needed to control access
-to the display device, and <b><tt>gsdll_lock_device()</tt></b> provides that
-locking.
-
-<blockquote>
-<pre>int gsdll_lock_device(unsigned char *device, int flag);
- /* Lock the device if flag = TRUE */
- /* Unlock the device if flag = FALSE */
- /* device is a pointer to Ghostscript os2dll or mswindll device */
- /* from GSDLL_DEVICE message. */
- /* Return value is the lock count. */
-</pre>
-
-<table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Locking and unlocking devices</font><hr>
-<tr valign=top> <td>To lock a device
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td><b><tt>gsdll_lock_device(device, 1)</tt></b>;
-<tr valign=top> <td>To unlock a device
- <td>&nbsp;
- <td><b><tt>gsdll_lock_device(device, 0)</tt></b>;
-</table>
-</blockquote>
-
-<p>
-This function is typically used to lock the device while repainting a
-window or copying the device bitmap to the clipboard. Ghostscript may draw
-into the device bitmap or update the palette entries while the device is
-locked by the caller, but locking the device prevents the Ghostscript DLL
-from closing the device or changing its size or depth.
-
-<p>
-Under OS/2, Windows 95/98 and Windows NT, this lock is implemented using a
-mutual exclusion semaphore (mutex). The return value is the lock count,
-which is either 0 ("unlocked") or 1 ("locked"). The function blocks until
-the device is locked by the caller.
-
-<p>
-Under Win16 or Win32s, <b><tt>gsdll_lock_device()</tt></b> always returns
-immediately with a lock count as its return value. A lock count of 2 or
-more is definite indication of an error, probably calling the function
-twice. Access to the device should be controlled by checking the Windows
-message queue only when the bitmap is not being accessed.
-</blockquote>
-
-<hr>
-
-<h2><a name="Callback"></a>Callback function</h2>
-
-<blockquote>
-As an argument to <a href="#init"><b><tt>gsdll_init()</tt></b></a> the
-caller must provide a callback function which the DLL invokes for stdio and
-to notify the caller about device events. The function provided by the
-caller has this prototype:
-
-<blockquote><b><tt>
-int gsdll_callback(int&nbsp;message, char&nbsp;*str, unsigned&nbsp;long&nbsp;count);
-</tt></b></blockquote>
-
-<p>
-The Pascal calling convention is not used. An example callback function
-is:
-
-<blockquote>
-<pre>int
-gsdll_callback(int message, char *str, unsigned long count)
-{
-char *p;
- switch (message) {
- case GSDLL_STDIN:
- p = fgets(str, count, stdin);
- if (p)
- return strlen(str);
- else
- return 0;
- case GSDLL_STDOUT:
- if (str != (char *)NULL)
- fwrite(str, 1, count, stdout);
- return count;
- case GSDLL_DEVICE:
- fprintf(stdout,"Callback: DEVICE %p %s\n", str,
- count ? "open" : "close");
- break;
- case GSDLL_SYNC:
- fprintf(stdout,"Callback: SYNC %p\n", str);
- break;
- case GSDLL_PAGE:
- fprintf(stdout,"Callback: PAGE %p\n", str);
- break;
- case GSDLL_SIZE:
- fprintf(stdout,"Callback: SIZE %p width=%d height=%d\n", str,
- (int)(count &amp; 0xffff), (int)((count&gt;&gt;16) &amp; 0xffff) );
- break;
- case GSDLL_POLL:
- return 0; /* no error */
- default:
- fprintf(stdout,"Callback: Unknown message=%d\n",message);
- break;
- }
- return 0;
-}
-</pre>
-
-<table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Messages used by callback</font><hr>
-<tr valign=bottom>
- <th align=left>Symbol
- <td>&nbsp;&nbsp;
- <th align=left>
- <td>&nbsp;&nbsp;
- <th align=left>Use
-<tr> <td colspan=5><hr>
-<tr valign=top> <td><b><tt>GSDLL_STDIN</tt></b>
- <td>&nbsp;
- <td>1
- <td>&nbsp;
- <td>get <b><tt>count</tt></b> characters to <b><tt>str</tt></b> from stdin, return number of characters read
-<tr valign=top> <td><b><tt>GSDLL_STDOUT</tt></b>
- <td>&nbsp;
- <td>2
- <td>&nbsp;
- <td>put <b><tt>count</tt></b> characters from <b><tt>str</tt></b>
- to stdout, return number of characters written
-<tr valign=top> <td><b><tt>GSDLL_DEVICE</tt></b>
- <td>&nbsp;
- <td>3
- <td>&nbsp;
- <td>device <b><tt>str</tt></b> has been opened if
- <b><tt>count</tt></b>&nbsp;=&nbsp;1, closed if
- <b><tt>count</tt></b>&nbsp;=&nbsp;0
-<tr valign=top> <td><b><tt>GSDLL_SYNC</tt></b>
- <td>&nbsp;
- <td>4
- <td>&nbsp;
- <td>sync_output for device <b><tt>str</tt></b>
-<tr valign=top> <td><b><tt>GSDLL_PAGE</tt></b>
- <td>&nbsp;
- <td>5
- <td>&nbsp;
- <td>output_page for device <b><tt>str</tt></b>
-<tr valign=top> <td><b><tt>GSDLL_SIZE</tt></b>
- <td>&nbsp;
- <td>6
- <td>&nbsp;
- <td>resize for device <b><tt>str</tt></b>:
- LOWORD(<b><tt>count</tt></b>) is new <b><tt>xsize</tt></b>,
- HIWORD(<b><tt>count</tt></b>) is new <b><tt>ysize</tt></b>
-<tr valign=top> <td><b><tt>GSDLL_POLL</tt></b>
- <td>&nbsp;
- <td>7
- <td>&nbsp;
- <td>Called from <b><tt>gp_check_interrupt()</tt></b><br>
- Can be used by the caller to poll the message queue.
- Normally returns 0. To abort
- <b><tt>gsdll_execute_cont()</tt></b>, return a non-zero
- error code until <b><tt>gsdll_execute_cont()</tt></b>
- returns.
-</table>
-</blockquote>
-</blockquote>
-
-<hr>
-
-<h2><a name="OS2_device"></a>Ghostscript DLL device for OS/2</h2>
-
-<p>
-The <b><tt>os2dll</tt></b> device is provided in the Ghostscript DLL for
-use by the caller. No drawing facilities are provided by the DLL because
-the DLL may be loaded by a text-only (non-PM) application. The caller is
-notified via the <b><tt>gsdll_callback()</tt></b> when a new
-<b><tt>os2dll</tt></b> device is opened or closed
-(<b><tt>GSDLL_DEVICE</tt></b>), when the window should be redrawn
-(<b><tt>GSDLL_SYNC</tt></b> or <b><tt>GSDLL_PAGE</tt></b>) or when the
-bitmap size changes (<b><tt>GSDLL_SIZE</tt></b>).
-Note that more than one <b><tt>os2dll</tt></b> device may be opened.
-
-<h3><a name="OS2_bmp"></a><b><tt>gsdll_get_bitmap()</tt></b></h3>
-
-<blockquote>
-<b><tt>gsdll_get_bitmap()</tt></b> returns a pointer to a bitmap in BMP
-format. The <b><tt>os2dll</tt></b> device draws into this bitmap.
-
-<blockquote>
-<pre>unsigned long gsdll_get_bitmap(unsigned char *device, unsigned char **pbitmap);
- /* return in pbitmap the address of the bitmap */
- /* device is a pointer to Ghostscript os2dll device from GSDLL_DEVICE message */
-</pre></blockquote>
-
-<p>
-The caller can then display the bitmap however it likes, but should lock
-the bitmap with <b><tt>gsdll_lock_device()</tt></b> before painting from
-it, and unlock it afterwards. The bitmap address does not change until the
-<b><tt>os2dll</tt></b> device is closed; however the bitmap size and
-palette may change whenever the bitmap is not locked.
-</blockquote>
-
-<h3><a name="OS2_example"></a>Example DLL usage for OS/2</h3>
-
-<p>
-The example here shows a minimal usage of the Ghostscript DLL under OS/2.
-The sample callback function above is needed.
-
-<blockquote>
-<pre>#define INCL_DOS
-#include &lt;os2.h&gt;
-#include &lt;stdio.h&gt;
-#include "gsdll.h"
-
-PFN_gsdll_init pgsdll_init;
-PFN_gsdll_execute_begin pgsdll_execute_begin;
-PFN_gsdll_execute_cont pgsdll_execute_cont;
-PFN_gsdll_execute_end pgsdll_execute_end;
-PFN_gsdll_exit pgsdll_exit;
-
-HMODULE hmodule_gsdll;
-char buf[256];
-
-int
-main(int argc, char *argv[])
-{
-int code;
-APIRET rc;
- if (!DosLoadModule(buf, sizeof(buf), "GSDLL2", &amp;hmodule_gsdll)) {
- fprintf(stderr, "Loaded GSDLL2\n");
- DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_init", (PFN *)(&amp;pgsdll_init));
- DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_begin", (PFN *)(&amp;pgsdll_execute_begin));
- DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_cont", (PFN *)(&amp;pgsdll_execute_cont));
- DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_end", (PFN *)(&amp;pgsdll_execute_end));
- DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_exit", (PFN *)(&amp;pgsdll_exit));
- }
- else {
- fprintf(stderr, "Can't load GSDLL2\n");
- }
-
- code = (*pgsdll_init)(gsdll_callback, NULL, argc, argv);
- fprintf(stdout,"gsdll_init returns %d\n", code);
- code = (*pgsdll_execute_begin)();
- if (code==0) {
- while (fgets(buf, sizeof(buf), stdin)) {
- code = (*pgsdll_execute_cont)(buf, strlen(buf));
- fprintf(stdout,"gsdll_execute returns %d\n", code);
- if (code &lt; 0)
- break;
- }
- if (!code)
- code = (*pgsdll_execute_end)();
- code = (*pgsdll_exit)();
- fprintf(stdout,"gsdll_exit returns %d\n", code);
- }
- rc = DosFreeModule(hmodule_gsdll);
- fprintf(stdout,"DosFreeModule returns %d\n", rc);
- return 0;
-}
-</pre></blockquote>
-
-<hr>
-
-<h2><a name="Win_device"></a>Ghostscript DLL device for MS Windows</h2>
-
-<p>
-The <b><tt>mswindll</tt></b> device is provided in the Ghostscript DLL for
-use by the caller. The caller is notified via the
-<b><tt>gsdll_callback()</tt></b> when a new <b><tt>mswindll</tt></b> device
-is opened or closed (<b><tt>GSDLL_DEVICE</tt></b>), when the window should
-be redrawn (<b><tt>GSDLL_SYNC</tt></b> or <b><tt>GSDLL_PAGE</tt></b>) or
-when the bitmap size changes (<b><tt>GSDLL_SIZE</tt></b>). Note that more
-than one <b><tt>mswindll</tt></b> device may be opened.
-
-<p>
-Four DLL functions are available to use the <b><tt>mswindll</tt></b>
-device.
-
-<h3><a name="Win_copydib"></a><b><tt>gsdll_copy_dib()</tt></b></h3>
-
-<blockquote>
-Copy the <b><tt>mswindll</tt></b> bitmap to the clipboard.
-
-<blockquote>
-<pre>HGLOBAL GSDLLAPI gsdll_copy_dib(unsigned char *device);
- /* make a copy of the device bitmap and return shared memory handle to it */
- /* device is a pointer to Ghostscript device from GSDLL_DEVICE message */
-</pre></blockquote>
-</blockquote>
-
-<h3><a name="Win_copypalette"></a><b><tt>gsdll_copy_palette()</tt></b></h3>
-
-<blockquote>
-Copy the <b><tt>mswindll</tt></b> palette to the clipboard.
-
-<blockquote>
-<pre>HPALETTE GSDLLAPI gsdll_copy_palette(unsigned char *device);
-/* make a copy of the device palette and return a handle to it */
-/* device is a pointer to Ghostscript device from GSDLL_DEVICE message */
-</pre></blockquote>
-</blockquote>
-
-<h3><a name="Win_draw"></a><b><tt>gsdll_draw()</tt></b></h3>
-
-<blockquote>
-Display output from the <b><tt>mswindll</tt></b> device. The caller should
-create a window and call <b><tt>gsdll_draw()</tt></b> in response to the
-<b><tt>WM_PAINT</tt></b> message. The device context <b><tt>hdc</tt></b>
-must be for a device because <b><tt>SetDIBitsToDevice()</tt></b> is used.
-
-<blockquote>
-<pre>void GSDLLAPI gsdll_draw(unsigned char *device, HDC hdc,
- LPRECT dest, LPRECT src);
-/* copy the rectangle src from the device bitmap */
-/* to the rectangle dest on the device given by hdc */
-/* hdc must be a device context for a device (NOT a bitmap) */
-/* device is a pointer to Ghostscript device from GSDLL_DEVICE message */
-</pre></blockquote>
-</blockquote>
-
-<h3><a name="Win_get_row"></a><b><tt>gsdll_get_bitmap_row()</tt></b></h3>
-
-<blockquote>
-Get a BMP header, a palette, and a pointer to a row in the bitmap. This
-function exists to allow the bitmap to be copied to a file or structured
-storage without the overhead of having two copies of the bitmap in memory
-at the same time.
-
-<p>
-Ghostscript can change the palette while the device is locked. Do not call
-this function while Ghostscript is busy.
-
-<blockquote>
-<pre>int GSDLLAPI gsdll_get_bitmap_row(unsigned char *device, LPBITMAPINFOHEADER pbmih,
- LPRGBQUAD prgbquad, LPBYTE *ppbyte, unsigned int row)
-/* If pbmih nonzero, copy the BITMAPINFOHEADER.
- * If prgbquad nonzero, copy the palette.
- * number of entries copied is given by pbmih-&gt;biClrUsed
- * If ppbyte nonzero, return pointer to row.
- * pointer is only valid while device is locked
- */
-</pre></blockquote>
-</blockquote>
-
-<hr>
-
-<h2><a name="Win16"></a>Ghostscript DLL Device for 16-bit MS Windows</h2>
-
-<p>
-This platform has the most problems of the three. Support for it may be
-dropped in future.
-
-<p>
-The Win16 DLL <b><tt>GSDLL16.DLL</tt></b> is a large-memory model DLL with
-far static data. Due to the limitations of 16-bit MS Windows, the DLL can
-be used by only one program at a time.
-
-<p>
-However, <b><tt>GSDLL16</tt></b> is marked as having SINGLE SHARED data
-segments, allowing multiple applications to load it with no error
-indication. (The DLL wouldn't load at all if MULTIPLE NONSHARED was used).
-Nonetheless, <b>it cannot be used by more than one application at a
-time</b>, so applications loading <b><tt>GSDLL16</tt></b> should check the
-return value of <b><tt>gsdll_init()</tt></b>: if this value is non-zero,
-then <b><tt>GSDLL16</tt></b> is already in use by another application and
-should <b><em>not</em></b> be used: <b><tt>GSDLL16</tt></b> should be
-unloaded immediately using <b><tt>FreeLibrary()</tt></b>, or the calling
-program should quit without attempting to use the library..
-
-<p>
-The segmented architecture of the Intel 80286 causes the usual amount of
-grief when using <b><tt>GSDLL16</tt></b>. Because the callback is called
-from the DLL, which is using a different data segment, the callback must be
-declared as <b><tt>_far&nbsp;_export</tt></b>:
-
-<blockquote>
-<pre>int _far _export gsdll_callback(int message, char *str, unsigned long count);
-</pre></blockquote>
-
-<p>
-Instead of giving <b><tt>gsdll_init()</tt></b> the address of
-<b><tt>gsdll_callback()</tt></b>, it should instead be given the address of
-a thunk created by <b><tt>MakeProcInstance</tt></b>. This thunk changes
-the data segment back to that used by the caller:
-
-<blockquote>
-<pre>FARPROC lpfnCallback;
-lpfnCallback = (FARPROC)MakeProcInstance((FARPROC)gsdll_callback, hInstance);
-code = (*pgsdll_init)((GSDLL_CALLBACK)lpfnCallback, NULL, argc, argv);
-if (!code) {
- fprintf(stderr, "GSDLL16 is already in use\n");
- return -1;
-}
-</pre></blockquote>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Develop.htm b/Master/xemtex/doc/ghostscript/Develop.htm
deleted file mode 100644
index d6080881fc8..00000000000
--- a/Master/xemtex/doc/ghostscript/Develop.htm
+++ /dev/null
@@ -1,4327 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Information for Ghostscript developers</title>
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-<!-- $Id: Develop.htm,v 1.47.2.18.2.6 2003/05/17 14:38:59 giles Exp $ -->
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Information for Ghostscript developers</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#Architecture">Architecture</a>
-<ul>
-<li><a href="#Design_goals">Design goals</a>
-<li><a href="#Design_principles">Design principles</a>
-<li><a href="#Large_scale_structure">Large-scale structure</a>
-<li><a href="#Object_oriented_constructs">Object-oriented constructs</a>
-</ul>
-<li><a href="#File_roadmap">File roadmap</a>
-<ul>
-<li><a href="#Substrate">Substrate</a>
-<li><a href="#Graphics_library">Graphics library</a>
-<ul>
-<li><a href="#Library_support">Support</a>,
- <a href="#Paths">Paths</a>,
- <a href="#Text">Text</a>,
- <a href="#Images">Images</a>,
- <a href="#Paint">Paint</a>,
- <a href="#Clipping">Clipping</a>,
- <a href="#Other_graphics">Other graphics</a>,
- <a href="#Driver_support">Driver support</a>
-</ul>
-<li><a href="#Device_drivers">Device drivers</a>
-<ul>
-<li><a href="#Internal_devices">Internal devices</a>,
- <a href="#PS_and_PDF_writers">PostScript and PDF writers</a>,
- <a href="#High_level_devices">Other high-level devices</a>,
- <a href="#Other_maintained_drivers">Other maintained drivers</a>,
- <a href="#Contributed_drivers">Contributed drivers</a>
-</ul>
-<li><a href="#PostScript_interpreter">PostScript interpreter</a>
-<ul>
-<li><a href="#Main_program">Main program</a>,
- <a href="#Data_structures">Data structures</a>,
- <a href="#Interpreter_loop">Interpreter loop</a>,
- <a href="#Scanning_parsing">Scanning/parsing</a>,
- <a href="#Standard_operators">Standard operators</a>,
- <a href="#Non_standard_operators">Non-standard operators</a>,
- <a href="#Interpreter_support">Interpreter support</a>,
- <a href="#PostScript_code">PostScript code</a>
-</ul>
-<li><a href="#PDF_interpreter">PDF interpreter</a>
-<li><a href="#Build_process">Build process</a>
-<ul>
-<li><a href="#Makefile_structure">Makefile structure</a>,
- <a href="#dev_files">.dev files</a>,
- <a href="#Generators">Generators</a>,
- <a href="#Build_support">Support</a>
-</ul>
-<li><a href="#Utilities">Utilities</a>
-<ul>
-<li><a href="#Utilities_in_PostScript">Utilities in PostScript</a>
-<li><a href="#Utility_scripts">Utility scripts</a>
-</ul>
-</ul>
-<li><a href="#Memory_management">Memory management</a>
-<ul>
-<li><a href="#Memory_manager_architecture">Memory manager architecture</a>
-<ul>
-<li><a href="#Objects_vs_strings">Objects vs strings</a>,
- <a href="#Structure_descriptors">Structure descriptors</a>,
- <a href="#Garbage_collection">Garbage collection</a>,
- <a href="#Movability">Movability</a>,
- <a href="#Parent_hierarchy">Parent hierarchy</a>,
- <a href="#Allocator_API">Allocator API</a>
-</ul>
-<li><a href="#Freeing_storage">Freeing storage</a>
-<ul>
-<li><a href="#Explicit_freeing">Explicit freeing</a>,
- <a href="#Reference_counting">Reference counting</a>,
- <a href="#Real_garbage_collection">(Real) garbage collection</a>
-</ul>
-<li><a href="#Special_implementations">Special implementations</a>
-<ul>
-<li><a href="#malloc">malloc</a>,
- <a href="#Locking">Locking</a>,
- <a href="#Retrying">Retrying</a>
-</ul>
-<li><a href="#Standard_implementation">Standard implementation</a>
-<li><a href="#PostScript_interpreter_extensions">PostScript interpreter extensions</a>
-<ul>
-<li><a href="#Refs">Refs (PostScript "objects")</a>,
- <a href="#save_forgetsave_restore">save/.forgetsave/restore</a>,
- <a href="#Stable_allocators">Stable allocators</a>,
- <a href="#Interpreter_GC">Garbage collection</a>
-</ul>
-</ul>
-<li><a href="#Portability">Portability</a>
-<ul>
-<li><a href="#Structural">Structural</a>
-<ul>
-<li><a href="#CPU_and_compiler">CPU and compiler</a>,
- <a href="#Library_headers">Library headers</a>,
- <a href="#Cross_platform_APIs">Cross-platform APIs</a>,
- <a href="#Makefiles">Makefiles</a>
-</ul>
-<li><a href="#Coding">Coding</a>
-<ul>
-<li><a href="#Explicit_dependencies">Explicit dependencies</a>,
- <a href="#Implicit_dependencies">Implicit dependencies</a>
-</ul>
-<li><a href="#Platform_specific_code">Platform-specific code</a>
-</ul>
-<li><a href="#Adding_features_and_options">Adding features and options</a>
-<li><a href="#Troubleshooting">Troubleshooting</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the documentation related to <a
-href="Maintain.htm">maintaining Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-This document provides a wealth of information about Ghostscript's
-internals, primarily for developers actively working on Ghostscript. It is
-primarily <strong>descriptive</strong>, documenting the way things are; the
-companion <a href="C-style.htm">C style guide</a> is primarily
-<strong>prescriptive</strong>, documenting what developers should do when
-writing new code.
-
-<p>
-THIS FILE IS A WORK IN PROGRESS. MANY SECTIONS ARE PLACE-HOLDERS.
-
-<h2><a name="Architecture"></a>Architecture</h2>
-
-<h3><a name="Design_goals"></a>Design goals</h3>
-
-<p>
-Ghostscript has the following high-level design goals (not listed in order
-of importance):
-
-<ul>
-<li>Functionality
-<ul>
-<li>Ability to interpret the current PostScript and PDF languages, as
-defined (and occasionally, in the case of conflict, as implemented) by
-Adobe.
-<li>Ability to convert PostScript to and from PDF, comparable to
-Adobe products.
-<li>Ability to produce output for a wide range of resolutions (from
-TV-resolution displays to imagesetters) and color models (black and white,
-multilevel gray, bilevel or multi-level RGB and CMYK, 6- or 8-color
-inkjet printers, spot color).
-</ul>
-<li>Performance
-<ul>
-<li>Ability to render PostScript and PDF with commercial-quality performance
-(memory usage, speed, and output quality) on all platforms.
-<li>Specifically, ability to render PostScript effectively in embedded
-environments with constrained RAM, including the ability to put the code and
-supporting data in ROM.
-</ul>
-<li>Licensing
-<ul>
-<li>Licensing that supports both the Open Source / Free software communities
-and a commercial licensing business.
-<li>Freedom from licensing restrictions or fees imposed by third parties.
-</ul>
-<li>Other
-<ul>
-<li>Easy source portability to any platform (CPU, operating system, and
-development tools) that has an ANSI or K&amp;R C compiler.
-<li>Support for writing new interpreters and new drivers with no change to
-any existing code; specifically, ability to support PCL 5e, PCL 5c, and PCL
-XL interpreters, and the ever-changing roster of inkjet printers.
-</ul>
-</ul>
-
-<p>
-These goals often conflict: part of Ghostscript's claim to quality is that
-the conflicts have been resolved well.
-
-<h3><a name="Design_principles"></a>Design principles</h3>
-
-<p>
-Part of what has kept Ghostscript healthy through many years of major code
-revisions and functional expansion is consistent and conscientious adherence
-to a set of design principles. We hope the following list captures the most
-important ones.
-
-<h4>Non-preemption</h4>
-
-<p>
-Ghostscript is designed to be used as a component. As such, it must share
-its environment with other components. Therefore, it must not require
-ownership of, or make decisions about, inherently shared resources.
-Specifically, it must not assume that it can "own" either the locus of
-control or the management of the address space.
-
-<p>
-Not owning control means that whenever Ghostscript passes control to its
-caller, it must do so in a way that doesn't constrain what the caller can do
-next. The caller must be able to call any other piece of software, wait for
-an external event, execute another task, etc., without having to worry about
-Ghostscript being in an unknown state. While this is easy to arrange in a
-multi-threaded environment (by running Ghostscript in a separate thread),
-multi-threading APIs are not well standardized at this time (December 2000),
-and may not be implemented efficiently, or at all, on some platforms.
-Therefore, Ghostscript must choose between only two options for interacting
-with its caller: to <em>return</em>, preserving its own state in data
-structures, or to <em>call back</em> through a caller-supplied procedure.
-Calling back constrains the client program unacceptably: the callback
-procedure only has the options of either returning, or aborting Ghostscript.
-In particular, if it wants (for whatever reason) to multi-task Ghostscript
-with another program, it cannot do so in general, especially if the other
-program also uses callback rather than suspension. Therefore, Ghostscript
-tries extremely hard to return, rather than calling back, for all caller
-interaction. In particular:
-
-<ul>
-
-<li>For callers that want to pass input to Ghostscript piece by piece,
-Ghostscript returns with an <b><tt>e_NeedInput</tt></b> code rather than
-using a callback. This allows the caller complete flexibility in its
-control structure for managing the source of input. (It might, for example,
-be generating the input dynamically.)
-
-<li>In the future, the same arrangement should be used for input from
-<b><tt>stdin</tt></b> and output to <b><tt>stdout</tt></b> and
-<b><tt>stderr</tt></b>.
-
-<li>Likewise, scheduling of Ghostscript's own threads (contexts), currently
-done with a callback, should be done with suspension. The Display
-Ghostscript project (GNU DGS) is working on this.
-
-</ul>
-
-<p>
-The one area where suspension is not feasible with Ghostscript's current
-architecture is device output. Device drivers are called from deep within
-the graphics library. (If Ghostscript were being redesigned from scratch,
-we might try to do this with suspension as well, or at least optional
-suspension.)
-
-<p>
-Not owning management of the address space means that even though
-Ghostscript supports garbage collection for its own data, it must not do any
-of the things that garbage collection schemes for C often require: it must
-not replace 'malloc' and 'free', must not require its clients to use its own
-allocator, must not rely on manipulating the read/write status of memory
-pages, must not require special compiler or run-time support (e.g., APIs for
-scanning the C stack), must not depend on the availability of
-multi-threading, and must not take possession of one of a limited number of
-timer interrupts. However, in order not to constrain its own code unduly,
-it must also not require using special macros or calls to enter or leave
-procedures or assign pointers, and must not constrain the variety of C data
-structures any more than absolutely necessary. It achieves all of these
-goals, at the expense of some complexity, some performance cost (mostly for
-garbage collection), and some extra manual work required for each structure
-type allocated by its allocator. The details appear in the <a
-href="#Memory_management">Memory management</a> section below.
-
-<h4>Multi-instantiability</h4>
-
-<p>
-From many years of experience with the benefits of object-oriented design,
-we have learned that when the word "the" appears in a software design --
-"the" process scheduler, "the" memory manager, "the" output device, "the"
-interpreter, "the" stack -- it often flags an area in which the software
-will have difficulty adapting to future needs. For this reason, Ghostscript
-attempts to make every internal structure capable of existing in multiple
-instances. For example, Ghostscript's memory manager is not a one-of-a-kind
-entity with global state and procedures: it is (or rather they are, since
-Ghostscript has multiple memory managers, some of which have multiple
-instances) objects with their own state and (virtual) procedures.
-Ghostscript's PostScript interpreter has no writable non-local data
-(necessary, but not sufficient, to allow multiple instances), and in the
-future will be extended to be completely reentrant and instantiable. The
-device driver API is designed to make this easy for drivers as well. The
-graphics library is currently not completely reentrant or instantiable: we
-hope this will occur in the future.
-
-<h4>Late configuration binding</h4>
-
-<p>
-Ghostscript is designed to make configuration choices as late as possible,
-subject to simplicity and performance considerations. The major binding
-times for such choices are compilation, linking, startup, and dynamic.
-
-<ul>
-
-<li>Compilation binds only CPU and compiler characteristics (including data
-type size, presence of floating point hardware, and data alignment), and
-whether the code will be used for production, debugging, or profiling.
-
-<li>Linking binds the choice of what features and device drivers will be
-included in the executable. (Work is underway to make the choice of drivers
-dynamic.)
-
-<li>Startup binds essentially nothing. Almost every option and parameter
-that can appear on the command line can also be changed dynamically.
-
-<li>The selection of output device, all parameters associated with the
-device, the selection of debugging printout and self-checking (in debugging
-configurations), the macro-allocation of memory, and almost all other
-operational parameters are dynamic.
-
-</ul>
-
-<p>
-In addition, a number of major implementation decisions are made dynamically
-depending on the availability of resources. For example, Ghostscript
-chooses between banded and non-banded rendering depending on memory
-availability.
-
-<h3><a name="Large_scale_structure"></a>Large-scale structure</h3>
-
-<p>
-At the largest design scale, Ghostscript consists of 4 layers. Layer N
-is allowed to use the facilities of all layers M &lt;= N.
-
-<ol>
-
-<li>The bottom layer is called the <a href="#Substrate">substrate</a>. It
-includes facilities like memory management, streams, fixed-point arithmetic,
-and low-level interfaces to the operating system. The substrate is written
-in C, with a little C++ and/or assembler code for some platforms.
-
-<li>The layer above the substrate is the graphics layer. It consists of two
-separate sub-parts. The graphics layer is written in C.
-
-<ul>
-
-<li>The <a href="#Graphics_library">graphics library</a> manages graphics
-state information for, and decomposes and renders 2-D images described
-using, a graphics model that is approximately the union of those of
-PostScript, PDF, and PCL 5e/5c/XL.
-
-<li>The <a href="#Device_drivers">device drivers</a> are called by the
-graphics library to produce actual output. The graphics library, and all
-higher layers, call device driver procedures only through virtual functions.
-
-</ul>
-
-<li>The principal clients of the graphics layer are language interpreters.
-Ghostscript as distributed includes the <a
-href="#PostScript_interpreter">PostScript interpreter</a>; there are also
-interpreters for PCL 5e, PCL 5c, and PCL XL, which are not currently freely
-redistributable and are not included in the standard Ghostscript package.
-The PostScript interpreter is written partly in C and partly in PostScript.
-
-<li>The <a href="#PDF_interpreter">PDF interpreter</a> is actually a client
-of the PostScript interpreter: it is written entirely in PostScript.
-
-</ol>
-
-<p>
-The most important interface in Ghostscript is the API between the graphics
-library and the device drivers: new printers (and, to a lesser extent,
-window systems, displays, plotters, film recorders, and graphics file
-formats) come on the scene frequently, and it must be possible to produce
-output for them with a minimum of effort and distruption. This API is the
-only one that is extensively documented (see <a
-href="Drivers.htm">Drivers.htm</a>) and kept stringently backward-compatible
-through successive releases.
-
-<h3><a name="Object_oriented_constructs"></a>Object-oriented constructs</h3>
-
-<p>
-Ghostscript makes heavy use of object-oriented constructs, including
-analogues of classes, instances, subclassing, and class-associated
-procedures. Since Ghostscript is written in C, not C++, implementing these
-constructs requires following coding conventions. The <a
-href="C-style.htm#Objects">"Objects"</a> section of the C style guide
-explains these.
-
-<p>
-The memory manager API provides run-time type information about each class,
-but this information does not include anything about subclassing. See under
-<a href="#Structure_descriptors">Structure descriptors</a> below.
-
-<hr>
-
-<h2><a name="File_roadmap"></a>File roadmap</h2>
-
-<p>
-This section of the document provides a roadmap to all of the Ghostscript
-source files.
-
-<h3><a name="Substrate"></a>Substrate</h3>
-
-<h4>Memory manager</h4>
-
-<p>
-See <a href="#Memory_management">below</a>.
-
-<h4>Streams</h4>
-
-<dl>
-
-<dt>
-Framework, file and string streams:
-<dd>
-<a href="../src/gsdsrc.c">src/gsdsrc.c</a>,
-<a href="../src/gsdsrc.h">src/gsdsrc.h</a>,
-<a href="../src/scommon.h">src/scommon.h</a>,
-<a href="../src/sfxboth.c">src/sfxboth.c</a>,
-<a href="../src/sfxfd.c">src/sfxfd.c</a>,
-<a href="../src/sfxstdio.c">src/sfxstdio.c</a>,
-<a href="../src/stream.h">src/stream.h</a>,
-<a href="../src/stream.c">src/stream.c</a>,
-<a href="../src/strimpl.h">src/strimpl.h</a>.
-
-<dt>
-Standard filters:
-<dd>
-
-<dl>
-
-<dt>
-CCITTFax:
-<dd>
-<a href="../src/scf.h">src/scf.h</a>,
-<a href="../src/scfd.c">src/scfd.c</a>,
-<a href="../src/scfdgen.c">src/scfdgen.c</a>,
-<a href="../src/scfdtab.c">src/scfdtab.c</a>,
-<a href="../src/scfe.c">src/scfe.c</a>,
-<a href="../src/scfetab.c">src/scfetab.c</a>,
-<a href="../src/scfparam.c">src/scfparam.c</a>,
-<a href="../src/scfx.h">src/scfx.h</a>.
-
-<dt>
-DCT (JPEG):
-<dd>
-<a href="../src/gsjconf.h">src/gsjconf.h</a>,
-<a href="../src/gsjmorec.h">src/gsjmorec.h</a>,
-<a href="../src/sdcparam.c">src/sdcparam.c</a>,
-<a href="../src/sdcparam.h">src/sdcparam.h</a>,
-<a href="../src/sdct.h">src/sdct.h</a>,
-<a href="../src/sdctc.c">src/sdctc.c</a>,
-<a href="../src/sdctd.c">src/sdctd.c</a>,
-<a href="../src/sdcte.c">src/sdcte.c</a>,
-<a href="../src/sddparam.c">src/sddparam.c</a>,
-<a href="../src/sdeparam.c">src/sdeparam.c</a>,
-<a href="../src/sjpeg.h">src/sjpeg.h</a>,
-<a href="../src/sjpegc.c">src/sjpegc.c</a>,
-<a href="../src/sjpegd.c">src/sjpegd.c</a>,
-<a href="../src/sjpege.c">src/sjpege.c</a>.
-
-<dt>
-Other compression/decompression:
-<dd>
-<a href="../src/slzwc.c">src/slzwc.c</a>,
-<a href="../src/slzwce.c">src/slzwce.c</a>,
-<a href="../src/slzwd.c">src/slzwd.c</a>,
-<a href="../src/slzwx.h">src/slzwx.h</a>,
-<a href="../src/srld.c">src/srld.c</a>,
-<a href="../src/srle.c">src/srle.c</a>,
-<a href="../src/srlx.h">src/srlx.h</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../src/sa85d.c">src/sa85d.c</a>,
-<a href="../src/sa85d.h">src/sa85d.h</a>,
-<a href="../src/sa85x.h">src/sa85x.h</a>,
-<a href="../src/sfilter1.c">src/sfilter1.c</a>,
-<a href="../src/sfilter2.c">src/sfilter2.c</a>,
-<a href="../src/sstring.c">src/sstring.c</a>,
-<a href="../src/sstring.h">src/sstring.h</a>.
-
-</dl>
-
-<dt>
-Non-standard filters used to implement standard filters:
-<dd>
-<a href="../src/seexec.c">src/seexec.c</a>,
-<a href="../src/sfilter.h">src/sfilter.h</a>,
-<a href="../src/shc.c">src/shc.c</a>,
-<a href="../src/shc.h">src/shc.h</a>,
-<a href="../src/shcgen.c">src/shcgen.c</a>,
-<a href="../src/shcgen.h">src/shcgen.h</a>,
-<a href="../src/spdiff.c">src/spdiff.c</a>,
-<a href="../src/spdiffx.h">src/spdiffx.h</a>,
-<a href="../src/spngp.c">src/spngp.c</a>,
-<a href="../src/spngpx.h">src/spngpx.h</a>,
-<a href="../src/szlibc.c">src/szlibc.c</a>,
-<a href="../src/szlibd.c">src/szlibd.c</a>,
-<a href="../src/szlibe.c">src/szlibe.c</a>,
-<a href="../src/szlibx.h">src/szlibx.h</a>,
-<a href="../src/szlibxx.h">src/szlibxx.h</a>.
-
-<dt>
-Non-standard filters:
-<dd>
-<a href="../src/sbcp.c">src/sbcp.c</a>,
-<a href="../src/sbcp.h">src/sbcp.h</a>,
-<a href="../src/sbhc.c">src/sbhc.c</a>,
-<a href="../src/sbhc.h">src/sbhc.h</a>,
-<a href="../src/sbtx.h">src/sbtx.h</a>,
-<a href="../src/sbwbs.c">src/sbwbs.c</a>,
-<a href="../src/sbwbs.h">src/sbwbs.h</a>,
-<a href="../src/smd5.c">src/smd5.c</a>,
-<a href="../src/smd5.h">src/smd5.h</a>,
-<a href="../src/sarc4.c">src/sarc4.c</a>,
-<a href="../src/sarc4.h">src/sarc4.h</a>,
-<a href="../src/smtf.c">src/smtf.c</a>,
-<a href="../src/smtf.h">src/smtf.h</a>.
-
-<dt>
-Internal filters:
-<dd>
-a<a href="../src/siinterp.c">src/siinterp.c</a>,
-<a href="../src/siinterp.h">src/siinterp.h</a>,
-<a href="../src/siscale.c">src/siscale.c</a>,
-<a href="../src/siscale.h">src/siscale.h</a>,
-<a href="../src/sisparam.h">src/sisparam.h</a>.
-
-<dt>
-Higher-level stream support:
-<dd>
-<a href="../src/spprint.c">src/spprint.c</a>,
-<a href="../src/spprint.h">src/spprint.h</a>,
-<a href="../src/spsdf.c">src/spsdf.c</a>,
-<a href="../src/spsdf.h">src/spsdf.h</a>,
-<a href="../src/srdline.h">src/srdline.h</a>.
-
-</dl>
-
-<h4>Platform-specific code</h4>
-
-See <a href="#Cross_platform_APIs">below</a>.
-
-<h4>Miscellaneous</h4>
-
-<dl>
-
-<dt>
-Library top level:
-<dd>
-<a href="../src/gsinit.c">src/gsinit.c</a>,
-<a href="../src/gslib.h">src/gslib.h</a>.
-
-<dt>
-Configuration-related:
-<dd>
-<a href="../src/gconf.c">src/gconf.c</a>,
-<a href="../src/gconf.h">src/gconf.h</a>,
-<a href="../src/gscdef.c">src/gscdef.c</a>,
-<a href="../src/gscdefs.h">src/gscdefs.h</a>.
-
-<dt>
-Arithmetic:
-<dd>
-<a href="../src/gsfemu.c">src/gsfemu.c</a>,
-<a href="../src/gxarith.h">src/gxarith.h</a>,
-<a href="../src/gxdda.h">src/gxdda.h</a>,
-<a href="../src/gxfarith.h">src/gxfarith.h</a>,
-<a href="../src/gxfixed.h">src/gxfixed.h</a>,
-<a href="../src/gxfrac.h">src/gxfrac.h</a>.
-
-<dt>
-Operating system interface:
-<dd>
-<a href="../src/gserror.h">src/gserror.h</a>,
-<a href="../src/gsexit.h">src/gsexit.h</a>,
-<a href="../src/gxstdio.h">src/gxstdio.h</a>,
-<a href="../src/gxsync.c">src/gxsync.c</a>,
-<a href="../src/gxsync.h">src/gxsync.h</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../src/gsargs.c">src/gsargs.c</a>,
-<a href="../src/gsargs.h">src/gsargs.h</a>,
-<a href="../src/gserrors.h">src/gserrors.h</a>,
-<a href="../src/gsnotify.c">src/gsnotify.c</a>,
-<a href="../src/gsnotify.h">src/gsnotify.h</a>,
-<a href="../src/gsrect.h">src/gsrect.h</a>,
-<a href="../src/gstypes.h">src/gstypes.h</a>,
-<a href="../src/gsuid.h">src/gsuid.h</a>,
-<a href="../src/gsutil.h">src/gsutil.h</a>,
-<a href="../src/gsutil.c">src/gsutil.c</a>,
-<a href="../src/gx.h">src/gx.h</a>,
-<a href="../src/md5.c">src/md5.c</a>,
-<a href="../src/md5.h">src/md5.h</a>.
-
-</dl>
-
-<h3><a name="Graphics_library"></a>Graphics library</h3>
-
-<h4><a name="Library_support"></a>Support</h4>
-
-<dl>
-
-<dt>
-Bitmap processing:
-<dd>
-<a href="../src/gsbitcom.c">src/gsbitcom.c</a>,
-<a href="../src/gsbitmap.h">src/gsbitmap.h</a>,
-<a href="../src/gsbitops.c">src/gsbitops.c</a>,
-<a href="../src/gsbitops.h">src/gsbitops.h</a>,
-<a href="../src/gsbittab.c">src/gsbittab.c</a>,
-<a href="../src/gsbittab.h">src/gsbittab.h</a>,
-<a href="../src/gsflip.c">src/gsflip.c</a>,
-<a href="../src/gsflip.h">src/gsflip.h</a>,
-<a href="../src/gxbitmap.h">src/gxbitmap.h</a>,
-<a href="../src/gxbitops.h">src/gxbitops.h</a>,
-<a href="../src/gxsample.c">src/gxsample.c</a>,
-<a href="../src/gxsample.h">src/gxsample.h</a>.
-
-<dt>
-Functions:
-<dd>
-<a href="../src/gsfunc.c">src/gsfunc.c</a>,
-<a href="../src/gsfunc.h">src/gsfunc.h</a>,
-<a href="../src/gsfunc0.c">src/gsfunc0.c</a>,
-<a href="../src/gsfunc0.h">src/gsfunc0.h</a>,
-<a href="../src/gsfunc3.c">src/gsfunc3.c</a>,
-<a href="../src/gsfunc3.h">src/gsfunc3.h</a>,
-<a href="../src/gsfunc4.c">src/gsfunc4.c</a>,
-<a href="../src/gsfunc4.h">src/gsfunc4.h</a>,
-<a href="../src/gsfuncv.c">src/gsfuncv.c</a>,
-<a href="../src/gsfuncv.h">src/gsfuncv.h</a>,
-<a href="../src/gxfunc.h">src/gxfunc.h</a>.
-
-<dt>
-Parameter lists:
-<dd>
-<a href="../src/gscparam.c">src/gscparam.c</a>,
-<a href="../src/gsparam.c">src/gsparam.c</a>,
-<a href="../src/gsparam.h">src/gsparam.h</a>,
-<a href="../src/gsparam2.c">src/gsparam2.c</a> (not used),
-<a href="../src/gsparams.c">src/gsparams.c</a>,
-<a href="../src/gsparams.h">src/gsparams.h</a>,
-<a href="../src/gsparamx.c">src/gsparamx.c</a>,
-<a href="../src/gsparamx.h">src/gsparamx.h</a>.
-
-<dt>
-I/O-related:
-<dd>
-<a href="../src/gdevpipe.c">src/gdevpipe.c</a>,
-<a href="../src/gsfname.c">src/gsfname.c</a>,
-<a href="../src/gsfname.h">src/gsfname.h</a>,
-<a href="../src/gsio.h">src/gsio.h</a>,
-<a href="../src/gsiodev.c">src/gsiodev.c</a>,
-<a href="../src/gsiodevs.c">src/gsiodevs.c</a>,
-<a href="../src/gxiodev.h">src/gxiodev.h</a>.
-
-</dl>
-
-<h4><a name="Paths"></a>Paths</h4>
-
-<dl>
-
-<dt>
-Coordinate transformation:
-<dd>
-<a href="../src/gscoord.c">src/gscoord.c</a>,
-<a href="../src/gscoord.h">src/gscoord.h</a>,
-<a href="../src/gsmatrix.c">src/gsmatrix.c</a>,
-<a href="../src/gsmatrix.h">src/gsmatrix.h</a>,
-<a href="../src/gxcoord.h">src/gxcoord.h</a>,
-<a href="../src/gxmatrix.h">src/gxmatrix.h</a>.
-
-<dt>
-Path building:
-<dd>
-<a href="../src/gsdps1.c">src/gsdps1.c</a>,
-<a href="../src/gspath.c">src/gspath.c</a>,
-<a href="../src/gspath.h">src/gspath.h</a>,
-<a href="../src/gspath1.c">src/gspath1.c</a>,
-<a href="../src/gspath2.h">src/gspath2.h</a>,
-<a href="../src/gxpath.c">src/gxpath.c</a>,
-<a href="../src/gxpath.h">src/gxpath.h</a>,
-<a href="../src/gxpath2.c">src/gxpath2.c</a>,
-<a href="../src/gxpcopy.c">src/gxpcopy.c</a>,
-<a href="../src/gxpdash.c">src/gxpdash.c</a>,
-<a href="../src/gxpflat.c">src/gxpflat.c</a>,
-<a href="../src/gzpath.h">src/gzpath.h</a>.
-
-<dt>
-Path rendering:
-<dd>
-<a href="../src/gdevddrw.c">src/gdevddrw.c</a>,
-<a href="../src/gsdps1.c">src/gsdps1.c</a>,
-<a href="../src/gspaint.c">src/gspaint.c</a>,
-<a href="../src/gspaint.h">src/gspaint.h</a>,
-<a href="../src/gspenum.h">src/gspenum.h</a>,
-<a href="../src/gxfill.c">src/gxfill.c</a>,
-<a href="../src/gxpaint.c">src/gxpaint.c</a>,
-<a href="../src/gxpaint.h">src/gxpaint.h</a>,
-<a href="../src/gxstroke.c">src/gxstroke.c</a>.
-
-<dt>
-Clipping:
-<dd>
-See under <a href="#Clipping">Clipping</a> below.
-
-</dl>
-
-<h4><a name="Text"></a>Text</h4>
-
-<dl>
-
-<dt>
-Fonts, generic:
-<dd>
-<a href="../src/gsfont.c">src/gsfont.c</a>,
-<a href="../src/gsfont.h">src/gsfont.h</a>,
-<a href="../src/gxfont.h">src/gxfont.h</a>.
-
-<dt>
-Fonts, specific FontTypes:
-<dd>
-<a href="../src/gsfcid.c">src/gsfcid.c</a>,
-<a href="../src/gsfcmap.c">src/gsfcmap.c</a>,
-<a href="../src/gsfcmap.h">src/gsfcmap.h</a>,
-<a href="../src/gsfont0.c">src/gsfont0.c</a>,
-<a href="../src/gxcid.h">src/gxcid.h</a>,
-<a href="../src/gxfcid.h">src/gxfcid.h</a>,
-<a href="../src/gxfcmap.h">src/gxfcmap.h</a>,
-<a href="../src/gxfont0.h">src/gxfont0.h</a>,
-<a href="../src/gxfont1.h">src/gxfont1.h</a>,
-<a href="../src/gxfont42.h">src/gxfont42.h</a>,
-<a href="../src/gxftype.h">src/gxftype.h</a>,
-<a href="../src/gxttf.h">src/gxttf.h</a>.
-
-<dt>
-Character rendering + font cache, generic:
-<dd>
-<a href="../src/gsccode.h">src/gsccode.h</a>,
-<a href="../src/gschar.c">src/gschar.c</a>,
-<a href="../src/gschar.h">src/gschar.h</a>,
-<a href="../src/gscpm.h">src/gscpm.h</a>,
-<a href="../src/gstext.c">src/gstext.c</a>,
-<a href="../src/gstext.h">src/gstext.h</a>,
-<a href="../src/gxbcache.c">src/gxbcache.c</a>,
-<a href="../src/gxbcache.h">src/gxbcache.h</a>,
-<a href="../src/gxccache.c">src/gxccache.c</a>,
-<a href="../src/gxccman.c">src/gxccman.c</a>,
-<a href="../src/gxchar.c">src/gxchar.c</a>,
-<a href="../src/gxchar.h">src/gxchar.h</a>,
-<a href="../src/gxfcache.h">src/gxfcache.h</a>,
-<a href="../src/gxtext.h">src/gxtext.h</a>.
-
-<dt>
-Character rendering, specific FontTypes:
-<dd>
-<a href="../src/gschar0.c">src/gschar0.c</a>,
-<a href="../src/gscrypt1.c">src/gscrypt1.c</a>,
-<a href="../src/gscrypt1.h">src/gscrypt1.h</a>,
-<a href="../src/gstype1.c">src/gstype1.c</a>,
-<a href="../src/gstype1.h">src/gstype1.h</a>,
-<a href="../src/gstype2.c">src/gstype2.c</a>,
-<a href="../src/gstype42.c">src/gstype42.c</a>,
-<a href="../src/gxchrout.c">src/gxchrout.c</a>,
-<a href="../src/gxchrout.h">src/gxchrout.h</a>,
-<a href="../src/gxhint1.c">src/gxhint1.c</a>,
-<a href="../src/gxhint2.c">src/gxhint2.c</a>,
-<a href="../src/gxhint3.c">src/gxhint3.c</a>,
-<a href="../src/gxop1.h">src/gxop1.h</a>,
-<a href="../src/gxtype1.c">src/gxtype1.c</a>,
-<a href="../src/gxtype1.h">src/gxtype1.h</a>.
-
-</dl>
-
-<h4><a name="Images"></a>Images</h4>
-
-<dl>
-
-<dt>
-Buffered API (mostly for PostScript interpreter):
-<dd>
-<a href="../src/gsimage.c">src/gsimage.c</a>,
-<a href="../src/gsimage.h">src/gsimage.h</a>.
-
-<dt>
-Generic support:
-<dd>
-<a href="../src/gsiparam.h">src/gsiparam.h</a>,
-<a href="../src/gxiclass.h">src/gxiclass.h</a>,
-<a href="../src/gximage.c">src/gximage.c</a>,
-<a href="../src/gximage.h">src/gximage.h</a>,
-<a href="../src/gxiparam.h">src/gxiparam.h</a>.
-
-<dt>
-Type 1 and 4 images:
-<dd>
-
-<dl>
-
-<dt>
-Setup:
-<dd>
-<a href="../src/gsiparm4.h">src/gsiparm4.h</a>,
-<a href="../src/gximage1.c">src/gximage1.c</a>,
-<a href="../src/gximage4.c">src/gximage4.c</a>.
-
-<dt>
-Rendering:
-<dd>
-<a href="../src/gxi12bit.c">src/gxi12bit.c</a>,
-<a href="../src/gxicolor.c">src/gxicolor.c</a>,
-<a href="../src/gxidata.c">src/gxidata.c</a>,
-<a href="../src/gxifast.c">src/gxifast.c</a>,
-<a href="../src/gximono.c">src/gximono.c</a>,
-<a href="../src/gxino12b.c">src/gxino12b.c</a>,
-<a href="../src/gxipixel.c">src/gxipixel.c</a>,
-<a href="../src/gxiscale.c">src/gxiscale.c</a>.
-
-</dl>
-
-<dt>
-Type 2 images (Display PostScript):
-<dd>
-<a href="../src/gsiparm2.h">src/gsiparm2.h</a>,
-<a href="../src/gximage2.c">src/gximage2.c</a>.
-
-<dt>
-Type 3 images:
-<dd>
-<a href="../src/gsipar3x.h">src/gsipar3x.h</a>,
-<a href="../src/gsiparm3.h">src/gsiparm3.h</a>,
-<a href="../src/gximag3x.c">src/gximag3x.c</a>,
-<a href="../src/gximag3x.h">src/gximag3x.h</a>,
-<a href="../src/gximage3.c">src/gximage3.c</a>,
-<a href="../src/gximage3.h">src/gximage3.h</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../src/gsimpath.c">src/gsimpath.c</a>.
-
-</dl>
-
-<h4><a name="Paint"></a>Paint</h4>
-
-<p>
-Ghostscript uses 4 internal representations of color. We list them here in
-the order in which they occur in the rendering pipeline.
-
-<ol>
-
-<li>Clients of the graphics library normally specify colors using the
-<em>client color</em> structure (<b><tt>gs_client_color</tt></b>, defined in
-<a href="../src/gsccolor.h">src/gsccolor.h</a>), consisting of one or more
-numeric values and/or a pointer to a Pattern instance. This corresponds
-directly to the values that would be passed to the PostScript
-<b><tt>setcolor</tt></b> operator: one or more (floating-point) numeric
-components and/or a Pattern. Client colors are interpreted relative to a
-color space (<b><tt>gs_color_space</tt></b>, defined in <a
-href="../src/gscspace.h">src/gscspace.h</a> and <a
-href="../src/gxcspace.h">src/gxcspace.h</a>, with specific color spaces
-defined in other files). Client colors do not explicitly reference the
-color space in which they are are interpreted: <b><tt>setcolor</tt></b> uses
-the color space in the graphics state, while images and shadings explicitly
-specify the color space to be used.
-
-<li>For ordinary non-Pattern colors, the first step in color rendering
-reduces a client color to a <em>concrete</em> color -- a set of values in a
-color space that corresponds to the device's color model (except for
-possible conversions between DeviceGray, DeviceRGB, and DeviceCMYK),
-together with an identification of the associated color space. (The
-confusion here between color spaces and color models will have to be cleaned
-up when we implement native Separation/DeviceN colors.) Concrete colors are
-like the numeric values in a client color, except that they are represented
-by arrays of <b><tt>frac</tt></b> values (defined in <a
-href="../src/gxfrac.h">src/gxfrac.h</a>) rather than floats. The procedure
-for this step is the virtual <b><tt>concretize_color</tt></b> and
-<b><tt>concrete_space</tt></b> procedures in the (original) color space.
-This step reduces Indexed colors, CIEBased colors, and Separation and
-DeviceN colors that use the alternate space.
-
-<li>The final step requires mapping a concrete color to the device's color
-model, done by procedures in <a href="../src/gxcmap.c">src/gxcmap.c</a>.
-These procedures combine the following three conceptual sub-steps:
-
-<ul>
-
-<li>A possible mapping between Device color spaces, possibly involving black
-generation and undercolor removal. The non-trivial cases are implemented in
-<a href="../src/gxdcconv.c">src/gxdcconv.c</a>.
-
-<li>Application of the transfer function(s) (done in-line).
-
-<li>Halftoning if necessary: see below.
-
-</ul>
-
-The result is called (inappropriately) a <em>device color</em>
-(<b><tt>gx_device_color</tt></b>, defined in <a
-href="../src/gsdcolor.h">src/gsdcolor.h</a> and <a
-href="../src/gxdcolor.h">src/gxdcolor.h</a>). For ordinary non-Pattern
-colors, a device color is either a pure color, or a halftone. The device
-and color model associated with a device color are implicit. The procedure
-for this step is the virtual <b><tt>remap_concrete_color</tt></b> procedure
-in the color space.
-
-<li>The pure colors that underlie a device color are opaque <em>pixel
-values</em> defined by the device (misnamed <b><tt>gx_color_index</tt></b>,
-defined in <a href="../src/gscindex.h">src/gscindex.h</a>). The device with
-which they are associated is implicit. Although the format and
-interpretation of a pixel value are known only to the device, the device's
-color model and color representation capabilities are public, defined by a
-<b><tt>gx_color_info</tt></b> structure stored in the device (defined in <a
-href="../src/gxdevcli.h">src/gxdevcli.h</a>). Virtual procedures of the
-device driver map between pixel values and RGB or CMYK. (This area is
-untidy and will need to be cleaned up when we implement native
-Separation/DeviceN colors.)
-
-</ol>
-
-<p>
-Steps 2 and 3 are normally combined into a single step for efficiency, as
-the <b><tt>remap_color</tt></b> virtual procedure in a color space.
-
-<p>
-Using a device color to actually paint pixels requires a further step called
-<em>color loading</em>, implemented by the <b><tt>load</tt></b> virtual
-procedure in the device color. This does nothing for pure colors, but loads
-the caches for halftones and Patterns.
-
-<p>
-All of the above steps -- concretizing, mapping to a device color, and color
-loading -- are done as late as possible, normally not until the color is
-actually needed for painting.
-
-<p>
-All painting operations (fill, stroke, imagemask/show) eventually call a
-virtual procedure in the device color, either <b><tt>fill_rectangle</tt></b>
-or <b><tt>fill_mask</tt></b> to actually paint pixels. For rectangle fills,
-pure colors call the device's <b><tt>fill_rectangle</tt></b> procedure;
-halftones and tiled Patterns call the device's
-<b><tt>tile_rectangle</tt></b>; shaded Patterns, and painting operations
-that involve a RasterOp, do something more complicated.
-
-<dl>
-
-<dt>
-Color specification:
-<dd>
-<a href="../src/gsccolor.h">src/gsccolor.h</a>,
-<a href="../src/gscolor.c">src/gscolor.c</a>,
-<a href="../src/gscolor.h">src/gscolor.h</a>,
-<a href="../src/gscolor1.c">src/gscolor1.c</a>,
-<a href="../src/gscolor1.h">src/gscolor1.h</a>,
-<a href="../src/gscolor2.c">src/gscolor2.c</a>,
-<a href="../src/gscolor2.h">src/gscolor2.h</a>,
-<a href="../src/gscolor3.c">src/gscolor3.c</a>,
-<a href="../src/gscolor3.h">src/gscolor3.h</a>,
-<a href="../src/gshsb.c">src/gshsb.c</a>,
-<a href="../src/gshsb.h">src/gshsb.h</a>,
-<a href="../src/gxcolor2.h">src/gxcolor2.h</a>,
-<a href="../src/gxcvalue.h">src/gxcvalue.h</a>.
-
-<dt>
-Color spaces:
-<dd>
-<a href="../src/gscdevn.c">src/gscdevn.c</a>,
-<a href="../src/gscdevn.h">src/gscdevn.h</a>,
-<a href="../src/gscie.c">src/gscie.c</a>,
-<a href="../src/gscie.h">src/gscie.h</a>,
-<a href="../src/gscpixel.c">src/gscpixel.c</a>,
-<a href="../src/gscpixel.h">src/gscpixel.h</a>,
-<a href="../src/gscscie.c">src/gscscie.c</a>,
-<a href="../src/gscsepnm.h">src/gscsepnm.h</a>,
-<a href="../src/gscsepr.c">src/gscsepr.c</a>,
-<a href="../src/gscsepr.h">src/gscsepr.h</a>,
-<a href="../src/gscspace.c">src/gscspace.c</a>,
-<a href="../src/gscspace.h">src/gscspace.h</a>,
-<a href="../src/gscssub.c">src/gscssub.c</a>,
-<a href="../src/gscssub.h">src/gscssub.h</a>,
-<a href="../src/gxcdevn.h">src/gxcdevn.h</a>,
-<a href="../src/gxcie.h">src/gxcie.h</a>,
-<a href="../src/gxcspace.h">src/gxcspace.h</a>.
-
-<dt>
-Color mapping:
-<dd>
-<a href="../src/gsciemap.c">src/gsciemap.c</a>,
-<a href="../src/gscindex.h">src/gscindex.h</a>,
-<a href="../src/gscrd.c">src/gscrd.c</a>,
-<a href="../src/gscrd.h">src/gscrd.h</a>,
-<a href="../src/gscrdp.c">src/gscrdp.c</a>,
-<a href="../src/gscrdp.h">src/gscrdp.h</a>,
-<a href="../src/gscsel.h">src/gscsel.h</a>,
-<a href="../src/gsdcolor.h">src/gsdcolor.h</a>,
-<a href="../src/gxcindex.h">src/gxcindex.h</a>,
-<a href="../src/gxcmap.c">src/gxcmap.c</a>,
-<a href="../src/gxcmap.h">src/gxcmap.h</a>,
-<a href="../src/gxctable.c">src/gxctable.c</a>,
-<a href="../src/gxctable.h">src/gxctable.h</a>,
-<a href="../src/gxdcconv.c">src/gxdcconv.c</a>,
-<a href="../src/gxdcconv.h">src/gxdcconv.h</a>,
-<a href="../src/gxdcolor.c">src/gxdcolor.c</a>,
-<a href="../src/gxdcolor.h">src/gxdcolor.h</a>,
-<a href="../src/gxdither.c">src/gxdither.c</a>,
-<a href="../src/gxdither.h">src/gxdither.h</a>,
-<a href="../src/gxfmap.h">src/gxfmap.h</a>,
-<a href="../src/gxlum.h">src/gxlum.h</a>,
-<a href="../src/gxtmap.h">src/gxtmap.h</a>.
-
-<p>
-ICC profiles are in some ways a special case of color mapping, but are
-not standard in PostScript.
-
-<dt>
-Color mapping:
-<dd>
-<a href="../src/gsicc.c">src/gsicc.c</a>,
-<a href="../src/gsicc.h">src/gsicc.h</a>,
-
-</dl>
-
-<p>
-Ghostscript represents halftones internally by "whitening orders" --
-essentially, arrays of arrays of bit coordinates within a halftone cell,
-specifying which bits are inverted to get from halftone level K to level
-K+1. The code does support all of the PostScript halftone types, but they
-are all ultimately reduced to whitening orders.
-
-<p>
-Threshold arrays, the more conventional representation of halftones, can be
-mapped to whitening orders straightforwardly; however, whitening orders can
-represent non-monotonic halftones (halftones where the bits turned on for
-level K+1 don't necessarily include all the bits turned on for level K),
-while threshold arrays cannot. On the other hand, threshold arrays allow
-rapid conversion of images (using a threshold comparison for each pixel)
-with no additional space, while whitening orders do not: they require
-storing the rendered halftone cell for each possible level as a bitmap.
-
-<p>
-Ghostscript uses two distinct types of rendered halftones -- that is, the
-bitmap(s) that represent a particular level.
-
-<ul>
-
-<li>Binary halftones. The rendered halftone is a single bit plane; each bit
-selects one of two pure colors. These are fast but limited: they are used
-for monochrome output devices, or for color devices in those cases where
-only two distinct colors are involved in a halftone (e.g., a pure cyan shade
-on a CMYK device). The device color for a binary halftone stores a pointer
-to the halftone bitmap, and the two pure colors.
-
-<li>Multi-plane halftones. Internally, each plane is rendered individually.
-Since there isn't enough room to store all 2^N pure colors, multi-plane
-halftones only store the scaled values for the individual components; the
-halftone renderer maps these to the pure colors on the fly, then combines
-the planes to assemble an N-bit index into the list of colors for each
-pixel, and stores the color into the fully rendered halftone.
-
-</ul>
-
-<p>
-The halftone level for rendering a color is computed in <a
-href="../src/gxdither.c">src/gxdither.c</a>; the actual halftone mask or
-tile is computed either in <a href="../src/gxcht.c">src/gxcht.c</a> (for
-multi-plane halftones), or in <a href="../src/gxht.c">src/gxht.c</a> and <a
-href="../src/gxhtbit.c">src/gxhtbit.c</a> (for binary halftones).
-
-<dl>
-
-<dt>
-Halftoning:
-<dd>
-<a href="../src/gsht.c">src/gsht.c</a>,
-<a href="../src/gsht.h">src/gsht.h</a>,
-<a href="../src/gsht1.c">src/gsht1.c</a>,
-<a href="../src/gsht1.h">src/gsht1.h</a>,
-<a href="../src/gshtscr.c">src/gshtscr.c</a>,
-<a href="../src/gshtx.c">src/gshtx.c</a>,
-<a href="../src/gshtx.h">src/gshtx.h</a>,
-<a href="../src/gxcht.c">src/gxcht.c</a>,
-<a href="../src/gxdht.h">src/gxdht.h</a>,
-<a href="../src/gxdhtres.h">src/gxdhtres.h</a>,
-<a href="../src/gxht.c">src/gxht.c</a>,
-<a href="../src/gxht.h">src/gxht.h</a>,
-<a href="../src/gxhtbit.c">src/gxhtbit.c</a>,
-<a href="../src/gxhttile.h">src/gxhttile.h</a>,
-<a href="../src/gxhttype.h">src/gxhttype.h</a>,
-<a href="../src/gzht.h">src/gzht.h</a>.
-
-</dl>
-
-<p>
-Pattern colors (tiled patterns and shadings) each use a slightly different
-approach from solid colors.
-
-<p>
-The device color for a tiled (PatternType 1) pattern contains a pointer to a
-pattern instance, plus (for uncolored patterns) the device color to be
-masked. The pattern instance includes a procedure that actually paints the
-pattern if the pattern is not in the cache. For the PostScript interpreter,
-this procedure returns an <b><tt>e_RemapColor</tt></b> exception code: this
-eventually causes the interpreter to run the pattern's PaintProc, loading
-the rendering into the cache, and then re-execute the original drawing
-operator.
-
-<dl>
-
-<dt>
-Patterns:
-<dd>
-<a href="../src/gspcolor.c">src/gspcolor.c</a>,
-<a href="../src/gspcolor.h">src/gspcolor.h</a>,
-<a href="../src/gsptype1.c">src/gsptype1.c</a>,
-<a href="../src/gsptype1.h">src/gsptype1.h</a>,
-<a href="../src/gxp1fill.c">src/gxp1fill.c</a>,
-<a href="../src/gxp1impl.h">src/gxp1impl.h</a>,
-<a href="../src/gxpcache.h">src/gxpcache.h</a>,
-<a href="../src/gxpcmap.c">src/gxpcmap.c</a>,
-<a href="../src/gxpcolor.h">src/gxpcolor.h</a>.
-
-</dl>
-
-<p>
-The device color for a shading (PatternType 2) pattern also contains a
-pointer to a pattern instance. Shadings are not cached: painting with a
-shading runs the shading algorithm every time.
-
-<dl>
-
-<dt>
-Shading:
-<dd>
-<a href="../src/gsptype2.c">src/gsptype2.c</a>,
-<a href="../src/gsptype2.h">src/gsptype2.h</a>,
-<a href="../src/gsshade.c">src/gsshade.c</a>,
-<a href="../src/gsshade.h">src/gsshade.h</a>,
-<a href="../src/gxshade.c">src/gxshade.c</a>,
-<a href="../src/gxshade.h">src/gxshade.h</a>,
-<a href="../src/gxshade1.c">src/gxshade1.c</a>,
-<a href="../src/gxshade4.c">src/gxshade4.c</a>,
-<a href="../src/gxshade4.h">src/gxshade4.h</a>,
-<a href="../src/gxshade6.c">src/gxshade6.c</a>.
-
-</dl>
-
-<p>
-In addition to the PostScript graphics model, Ghostscript supports RasterOp,
-a weak form of alpha channel, and eventually the full PDF 1.4 transparency
-model. The implemention of these facilities is quite slipshod and
-scattered: only RasterOp is really implemented fully. There is a general
-compositing architecture, but it is hardly used at all, and in particular is
-not used for RasterOp. ****** TO BE COMPLETED ******
-
-<dl>
-
-<dt>
-Compositing architecture:
-<dd>
-<a href="../src/gscompt.h">src/gscompt.h</a>,
-<a href="../src/gxcomp.h">src/gxcomp.h</a>.
-
-<dt>
-RasterOp:
-<dd>
-<a href="../src/gdevdrop.c">src/gdevdrop.c</a>,
-<a href="../src/gdevrops.c">src/gdevrops.c</a>,
-<a href="../src/gsnorop.c">src/gsnorop.c</a>,
-<a href="../src/gsrop.c">src/gsrop.c</a>,
-<a href="../src/gsrop.h">src/gsrop.h</a>,
-<a href="../src/gsropc.c">src/gsropc.c</a>,
-<a href="../src/gsropc.h">src/gsropc.h</a>,
-<a href="../src/gsropt.h">src/gsropt.h</a>,
-<a href="../src/gsroptab.c">src/gsroptab.c</a>,
-<a href="../src/gxdevrop.h">src/gxdevrop.h</a>,
-<a href="../src/gxropc.h">src/gxropc.h</a>.
-
-<dt>
-Alpha channel and compositing:
-<dd>
-<a href="../src/gsalpha.c">src/gsalpha.c</a>,
-<a href="../src/gsalpha.h">src/gsalpha.h</a>,
-<a href="../src/gsalphac.c">src/gsalphac.c</a>,
-<a href="../src/gsalphac.h">src/gsalphac.h</a>,
-<a href="../src/gsdpnext.h">src/gsdpnext.h</a>,
-<a href="../src/gxalpha.h">src/gxalpha.h</a>.
-
-<dt>
-Advanced transparency:
-<dd>
-<a href="../src/gstparam.h">src/gstparam.h</a>,
-<a href="../src/gstrans.c">src/gstrans.c</a>,
-<a href="../src/gstrans.h">src/gstrans.h</a>,
-<a href="../src/gxblend.c">src/gxblend.c</a>,
-<a href="../src/gxblend.h">src/gxblend.h</a>,
-<a href="../src/gdevp14.c">src/gdevp14.c</a>.
-<a href="../src/gdevp14.h">src/gdevp14.h</a>.
-<a href="../src/gdevpnga.c">src/gdevpnga.c</a>.
-
-</dl>
-
-<h4><a name="Clipping"></a>Clipping</h4>
-
-<p>
-The Ghostscript graphics library implements clipping by inserting a clipping
-device in the device pipeline. The clipping device modifies all drawing
-operations to confine them to the clipping region.
-
-<p>
-The library supports three different kinds of clipping:
-
-<dl>
-
-<dt>
-Region/path clipping
-<dd>
-This corresponds to the PostScript concept of a clipping path. The clipping
-region is specified either by a list of rectangles (subject to the
-constraints documented in <a href="../src/gxcpath.h">src/gxcpath.h</a>), or
-by a path that is converted to such a list of rectangles.
-
-<dt>
-Stationary mask clipping
-<dd>
-This corresponds to the mask operand of a PostScript ImageType 3 image. The
-clipping region is specified by a bitmap and an (X,Y) offset in the
-coordinate space.
-
-<dt>
-Tiled mask clipping
-<dd>
-This corresponds to the region painted by a PostScript Pattern, for the case
-where the Pattern does not completely cover its bounding box but the
-combined transformation matrix has no skew or non-orthogonal rotation (i.e.,
-XStep and YStep map respectively to (X,0) and (0,Y) or vice versa). The
-clipping region is specified by a bitmap and an (X,Y) offset in the
-coordinate space, and is replicated indefinitely in both X and Y.
-
-</dl>
-
-<p>
-Note that simply scan-converting a clipping path in the usual way does not
-produce a succession of rectangles that can simply be stored as the list for
-region-based clipping: in general, the rectangles do not satisfy the
-constraint for rectangle lists specified in <a
-href="../src/gxcpath.h">src/gxcpath.h</a>, since they may overlap in X, Y,
-or both. A non-trivial "clipping list accumulator" device is needed to
-produce a rectangle list that does satisfy the constraint.
-
-<dl>
-
-<dt>
-Clipping support:
-<dd>
-<a href="../src/gxclip.c">src/gxclip.c</a>,
-<a href="../src/gxclip.h">src/gxclip.h</a>.
-
-<dt>
-Region/path clipping:
-<dd>
-<a href="../src/gxcpath.c">src/gxcpath.c</a>,
-<a href="../src/gxcpath.h">src/gxcpath.h</a>,
-<a href="../src/gzcpath.h">src/gzcpath.h</a>.
-
-<dt>
-Clipping list accumulator:
-<dd>
-<a href="../src/gxacpath.c">src/gxacpath.c</a>,
-<a href="../src/gzacpath.h">src/gzacpath.h</a>.
-
-<dt>
-Mask clipping support:
-<dd>
-<a href="../src/gxmclip.c">src/gxmclip.c</a>,
-<a href="../src/gxmclip.h">src/gxmclip.h</a>.
-
-<dt>
-Stationary mask clipping:
-<dd>
-<a href="../src/gxclipm.c">src/gxclipm.c</a>,
-<a href="../src/gxclipm.h">src/gxclipm.h</a>.
-
-<dt>
-Tiled mask clipping:
-<dd>
-<a href="../src/gxclip2.c">src/gxclip2.c</a>,
-<a href="../src/gxclip2.h">src/gxclip2.h</a>.
-
-</dl>
-
-<h4><a name="Other_graphics"></a>Other graphics</h4>
-
-<dl>
-
-<dt>
-Miscellaneous graphics state:
-<dd>
-<a href="../src/gsclipsr.c">src/gsclipsr.c</a>,
-<a href="../src/gsclipsr.h">src/gsclipsr.h</a>,
-<a href="../src/gsdps.c">src/gsdps.c</a>,
-<a href="../src/gsdps.h">src/gsdps.h</a>,
-<a href="../src/gsdps1.c">src/gsdps1.c</a>,
-<a href="../src/gsistate.c">src/gsistate.c</a>,
-<a href="../src/gsline.c">src/gsline.c</a>,
-<a href="../src/gsline.h">src/gsline.h</a>,
-<a href="../src/gslparam.h">src/gslparam.h</a>,
-<a href="../src/gsstate.c">src/gsstate.c</a>,
-<a href="../src/gsstate.h">src/gsstate.h</a>,
-<a href="../src/gstrap.c">src/gstrap.c</a>,
-<a href="../src/gstrap.h">src/gstrap.h</a>,
-<a href="../src/gxclipsr.h">src/gxclipsr.h</a>,
-<a href="../src/gxistate.h">src/gxistate.h</a>,
-<a href="../src/gxline.h">src/gxline.h</a>,
-<a href="../src/gxstate.h">src/gxstate.h</a>,
-<a href="../src/gzline.h">src/gzline.h</a>,
-<a href="../src/gzstate.h">src/gzstate.h</a>.
-
-</dl>
-
-<h4><a name="Driver_support"></a>Driver support</h4>
-
-<dl>
-
-<dt>
-Generic driver support:
-<dd>
-<a href="../src/gdevdcrd.c">src/gdevdcrd.c</a>,
-<a href="../src/gdevdcrd.h">src/gdevdcrd.h</a>,
-<a href="../src/gdevemap.c">src/gdevemap.c</a>,
-<a href="../src/gsdevice.c">src/gsdevice.c</a>,
-<a href="../src/gsdevice.h">src/gsdevice.h</a>,
-<a href="../src/gsdparam.c">src/gsdparam.c</a>,
-<a href="../src/gsxfont.h">src/gsxfont.h</a>,
-<a href="../src/gxdevbuf.h">src/gxdevbuf.h</a>,
-<a href="../src/gxdevcli.h">src/gxdevcli.h</a>,
-<a href="../src/gxdevice.h">src/gxdevice.h</a>,
-<a href="../src/gxrplane.h">src/gxrplane.h</a>,
-<a href="../src/gxxfont.h">src/gxxfont.h</a>.
-
-<dt>
-Accessing rendered bits:
-<dd>
-<a href="../src/gdevdbit.c">src/gdevdbit.c</a>,
-<a href="../src/gdevdgbr.c">src/gdevdgbr.c</a>,
-<a href="../src/gxbitfmt.h">src/gxbitfmt.h</a>,
-<a href="../src/gxgetbit.h">src/gxgetbit.h</a>.
-
-<dt>
-"Printer" driver support:
-<dd>
-<a href="../src/gdevmeds.c">src/gdevmeds.c</a>,
-<a href="../src/gdevmeds.h">src/gdevmeds.h</a>,
-<a href="../src/gdevppla.c">src/gdevppla.c</a>,
-<a href="../src/gdevppla.h">src/gdevppla.h</a>,
-<a href="../src/gdevprn.c">src/gdevprn.c</a>,
-<a href="../src/gdevprn.h">src/gdevprn.h</a>,
-<a href="../src/gdevprna.c">src/gdevprna.c</a>,
-<a href="../src/gdevprna.h">src/gdevprna.h</a>,
-<a href="../src/gxband.h">src/gxband.h</a>,
-<a href="../src/gxpageq.c">src/gxpageq.c</a>,
-<a href="../src/gxpageq.h">src/gxpageq.h</a>.
-
-<dt>
-High-level device support:
-<dd>
-<a href="../src/gdevvec.c">src/gdevvec.c</a>,
-<a href="../src/gdevvec.h">src/gdevvec.h</a>.
-
-<dt>
-Banding:
-<dd>
-<a href="../src/gxclbits.c">src/gxclbits.c</a>,
-<a href="../src/gxcldev.h">src/gxcldev.h</a>,
-<a href="../src/gxclfile.c">src/gxclfile.c</a>,
-<a href="../src/gxclimag.c">src/gxclimag.c</a>,
-<a href="../src/gxclio.h">src/gxclio.h</a>,
-<a href="../src/gxclist.c">src/gxclist.c</a>,
-<a href="../src/gxclist.h">src/gxclist.h</a>,
-<a href="../src/gxcllzw.c">src/gxcllzw.c</a>,
-<a href="../src/gxclmem.c">src/gxclmem.c</a>,
-<a href="../src/gxclmem.h">src/gxclmem.h</a>,
-<a href="../src/gxclpage.c">src/gxclpage.c</a>,
-<a href="../src/gxclpage.h">src/gxclpage.h</a>,
-<a href="../src/gxclpath.c">src/gxclpath.c</a>,
-<a href="../src/gxclpath.h">src/gxclpath.h</a>,
-<a href="../src/gxclrast.c">src/gxclrast.c</a>,
-<a href="../src/gxclread.c">src/gxclread.c</a>,
-<a href="../src/gxclrect.c">src/gxclrect.c</a>,
-<a href="../src/gxclutil.c">src/gxclutil.c</a>,
-<a href="../src/gxclzlib.c">src/gxclzlib.c</a>.
-
-</dl>
-
-<h3><a name="Device_drivers"></a>Device drivers</h3>
-
-<p>
-See <a href="Drivers.htm">doc/Drivers.htm</a> for extensive documentation on
-the interface between the core code and drivers.
-
-<p>
-The driver API includes high-level (path / image / text), mid-level
-(polygon), and low-level (rectangle / raster) operations. Most devices
-implement only the low-level operations, and let generic code break down the
-high-level operations. However, some devices produce high-level output, and
-therefore must implement the high-level operations.
-
-<h4><a name="Internal_devices"></a>Internal devices</h4>
-
-<p>
-There are a number of "devices" that serve internal purposes. Some of these
-are meant to be real rendering targets; others are intended for use in
-device pipelines. The rendering targets are:
-
-<dl>
-
-<dt>
-Memory devices, depth-independent:
-<dd>
-<a href="../src/gdevmem.c">src/gdevmem.c</a>,
-<a href="../src/gdevmem.h">src/gdevmem.h</a>,
-<a href="../src/gdevmpla.c">src/gdevmpla.c</a>,
-<a href="../src/gdevmpla.h">src/gdevmpla.h</a>,
-<a href="../src/gdevmrop.h">src/gdevmrop.h</a>,
-<a href="../src/gsdevmem.c">src/gsdevmem.c</a>,
-<a href="../src/gxdevmem.h">src/gxdevmem.h</a>.
-
-<dt>
-Memory devices, specific depths:
-<dd>
-<a href="../src/gdevm1.c">src/gdevm1.c</a>,
-<a href="../src/gdevm2.c">src/gdevm2.c</a>,
-<a href="../src/gdevm4.c">src/gdevm4.c</a>,
-<a href="../src/gdevm8.c">src/gdevm8.c</a>,
-<a href="../src/gdevm16.c">src/gdevm16.c</a>,
-<a href="../src/gdevm24.c">src/gdevm24.c</a>,
-<a href="../src/gdevm32.c">src/gdevm32.c</a>,
-<a href="../src/gdevmr1.c">src/gdevmr1.c</a>,
-<a href="../src/gdevmr2n.c">src/gdevmr2n.c</a>,
-<a href="../src/gdevmr8n.c">src/gdevmr8n.c</a>.
-
-<dt>
-Alpha-related devices:
-<dd>
-<a href="../src/gdevabuf.c">src/gdevabuf.c</a>,
-<a href="../src/gdevalph.c">src/gdevalph.c</a>.
-
-<dt>
-Other devices:
-<dd>
-<a href="../src/gdevdflt.c">src/gdevdflt.c</a>,
-<a href="../src/gdevhit.c">src/gdevhit.c</a>,
-<a href="../src/gdevht.c">src/gdevht.c</a>,
-<a href="../src/gdevht.h">src/gdevht.h</a>,
-<a href="../src/gdevmrun.c">src/gdevmrun.c</a>,
-<a href="../src/gdevmrun.h">src/gdevmrun.h</a>,
-<a href="../src/gdevplnx.c">src/gdevplnx.c</a>,
-<a href="../src/gdevplnx.h">src/gdevplnx.h</a>,
-
-</dl>
-
-<p>
-The forwarding devices meant for use in pipelines are:
-
-<dl>
-
-<dt>
-The bounding box device:
-<dd>
-<a href="../src/gdevbbox.h">src/gdevbbox.h</a>,
-<a href="../src/gdevbbox.c">src/gdevbbox.c</a>.
-
-<dt>
-Clipping devices:
-<dd>
-See under <a href="#Clipping">Clipping</a> above.
-
-<dt>
-Device filter stack:
-<dd>
-<a href="../src/gsdfilt.c">src/gsdfilt.c</a>,
-<a href="../src/gsdfilt.h">src/gsdfilt.h</a>,
-
-<dt>
-Other devices:
-<dd>
-<a href="../src/gdevcmap.c">src/gdevcmap.c</a>,
-<a href="../src/gdevcmap.h">src/gdevcmap.h</a>,
-<a href="../src/gdevnfwd.c">src/gdevnfwd.c</a>.
-
-</dl>
-
-<h4><a name="PS_and_PDF_writers"></a>PostScript and PDF writers</h4>
-
-<p>
-Because PostScript and PDF have the same graphics model, lexical syntax, and
-stack-based execution model, the drivers that produce PostScript and PDF
-output share a significant amount of support code. In the future, the
-PostScript output driver should be replaced with a slightly modified version
-of the PDF driver, since the latter is far more sophisticated (in
-particular, it has extensive facilities for image compression and for
-handling text and fonts).
-
-<dl>
-
-<dt>
-Shared support:
-<dd>
-
-<dl>
-Writing fonts:
-<dd>
-<a href="../src/gdevpsf.h">src/gdevpsf.h</a>,
-<a href="../src/gdevpsf1.c">src/gdevpsf1.c</a>,
-<a href="../src/gdevpsf2.c">src/gdevpsf2.c</a>,
-<a href="../src/gdevpsfm.c">src/gdevpsfm.c</a>,
-<a href="../src/gdevpsft.c">src/gdevpsft.c</a>,
-<a href="../src/gdevpsfu.c">src/gdevpsfu.c</a>,
-<a href="../src/gdevpsfx.c">src/gdevpsfx.c</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../src/gdevpsdf.h">src/gdevpsdf.h</a>,
-<a href="../src/gdevpsdi.c">src/gdevpsdi.c</a>,
-<a href="../src/gdevpsdp.c">src/gdevpsdp.c</a>,
-<a href="../src/gdevpsds.c">src/gdevpsds.c</a>,
-<a href="../src/gdevpsds.h">src/gdevpsds.h</a>,
-<a href="../src/gdevpsdu.c">src/gdevpsdu.c</a>.
-
-</dl>
-
-<dt>
-PostScript output driver ([e]pswrite):
-<dd>
-<a href="../src/gdevps.c">src/gdevps.c</a>,
-<a href="../src/gdevpsu.c">src/gdevpsu.c</a>,
-<a href="../src/gdevpsu.h">src/gdevpsu.h</a>.
-
-<dt>
-PDF output driver (pdfwrite):
-<dd>
-<dl>
-
-<dt>
-Substrate:
-<dd>
-<a href="../src/gdevpdfo.c">src/gdevpdfo.c</a>,
-<a href="../src/gdevpdfo.h">src/gdevpdfo.h</a>,
-<a href="../src/gdevpdfr.c">src/gdevpdfr.c</a>,
-<a href="../src/gdevpdfu.c">src/gdevpdfu.c</a>.
-
-<dt>
-Text and fonts:
-<dd>
-<a href="../src/gdevpdfe.c">src/gdevpdfe.c</a>,
-<a href="../src/gdevpdff.c">src/gdevpdff.c</a>,
-<a href="../src/gdevpdff.h">src/gdevpdff.h</a>,
-<a href="../src/gdevpdfs.c">src/gdevpdfs.c</a>,
-<a href="../src/gdevpdft.c">src/gdevpdft.c</a>,
-<a href="../src/gdevpdfw.c">src/gdevpdfw.c</a>.
-
-<dt>
-Graphics:
-<dd>
-<a href="../src/gdevpdfc.c">src/gdevpdfc.c</a>,
-<a href="../src/gdevpdfd.c">src/gdevpdfd.c</a>,
-<a href="../src/gdevpdfg.c">src/gdevpdfg.c</a>,
-<a href="../src/gdevpdfg.h">src/gdevpdfg.h</a>,
-<a href="../src/gdevpdfv.c">src/gdevpdfv.c</a>.
-
-<dt>
-Images:
-<dd>
-<a href="../src/gdevpdfb.c">src/gdevpdfb.c</a>,
-<a href="../src/gdevpdfi.c">src/gdevpdfi.c</a>,
-<a href="../src/gdevpdfj.c">src/gdevpdfj.c</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../src/gdevpdf.c">src/gdevpdf.c</a>,
-<a href="../src/gdevpdfm.c">src/gdevpdfm.c</a>,
-<a href="../src/gdevpdfp.c">src/gdevpdfp.c</a>,
-<a href="../src/gdevpdfx.h">src/gdevpdfx.h</a>.
-
-</dl>
-
-</dl>
-
-<h4><a name="High_level_devices"></a>Other high-level devices</h4>
-
-<p>
-Currently, the CGM driver is raster-only. If anyone cares seriously about
-CGM in the future, this driver should be upgraded to a higher level.
-
-<dl>
-
-<dt>
-PCL XL output device (pxlmono, pxlcolor):
-<dd>
-<a href="../src/gdevpx.c">src/gdevpx.c</a>,
-<a href="../src/gdevpxat.h">src/gdevpxat.h</a>,
-<a href="../src/gdevpxen.h">src/gdevpxen.h</a>,
-<a href="../src/gdevpxop.h">src/gdevpxop.h</a>,
-<a href="../src/gdevpxut.c">src/gdevpxut.c</a>,
-<a href="../src/gdevpxut.h">src/gdevpxut.h</a>.
-
-<dt>
-Other high-level devices:
-<dd>
-<a href="../src/gdevtrac.c">src/gdevtrac.c</a>.
-
-</dl>
-
-<h4><a name="Other_maintained_drivers"></a>Other maintained drivers</h4>
-
-<p>
-The standard Ghostscript distribution includes a collection of drivers,
-mostly written by Aladdin Enterprises, that are "maintained" in the same
-sense as the Ghostscript core code.
-
-<dl>
-
-<dt>
-Display drivers:
-<dd>
-<a href="../src/gdev8bcm.c">src/gdev8bcm.c</a>,
-<a href="../src/gdev8bcm.h">src/gdev8bcm.h</a>,
-<a href="../src/gdevegaa.asm">src/gdevegaa.asm</a>,
-<a href="../src/gdevevga.c">src/gdevevga.c</a>,
-<a href="../src/gdevl256.c">src/gdevl256.c</a>,
-<a href="../src/gdevpccm.c">src/gdevpccm.c</a>,
-<a href="../src/gdevpccm.h">src/gdevpccm.h</a>,
-<a href="../src/gdevpcfb.c">src/gdevpcfb.c</a>,
-<a href="../src/gdevpcfb.h">src/gdevpcfb.h</a>,
-<a href="../src/gdevs3ga.c">src/gdevs3ga.c</a>,
-<a href="../src/gdevsco.c">src/gdevsco.c</a>,
-<a href="../src/gdevsvga.c">src/gdevsvga.c</a>,
-<a href="../src/gdevsvga.h">src/gdevsvga.h</a>,
-<a href="../src/gdevvglb.c">src/gdevvglb.c</a>.
-
-<dt>
-Window system drivers:
-<dd>
-
-<dl>
-
-<dt>
-X Windows:
-<dd>
-<a href="../src/gdevx.c">src/gdevx.c</a>,
-<a href="../src/gdevx.h">src/gdevx.h</a>,
-<a href="../src/gdevxalt.c">src/gdevxalt.c</a>,
-<a href="../src/gdevxcmp.c">src/gdevxcmp.c</a>,
-<a href="../src/gdevxcmp.h">src/gdevxcmp.h</a>,
-<a href="../src/gdevxini.c">src/gdevxini.c</a>,
-<a href="../src/gdevxres.c">src/gdevxres.c</a>,
-<a href="../src/gdevxxf.c">src/gdevxxf.c</a>.
-
-<dt>
-Microsoft Windows:
-<dd>
-<a href="../src/gdevmswn.c">src/gdevmswn.c</a>,
-<a href="../src/gdevmswn.h">src/gdevmswn.h</a>,
-<a href="../src/gdevmsxf.c">src/gdevmsxf.c</a>,
-<a href="../src/gdevwddb.c">src/gdevwddb.c</a>,
-<a href="../src/gdevwdib.c">src/gdevwdib.c</a>.
-
-<dt>
-OS/2 Presentation Manager:
-<dd>
-<a href="../src/gdevpm.c">src/gdevpm.c</a>,
-<a href="../src/gdevpm.h">src/gdevpm.h</a>,
-<a href="../src/gspmdrv.c">src/gspmdrv.c</a>,
-<a href="../src/gspmdrv.h">src/gspmdrv.h</a>.
-
-</dl>
-
-<dt>
-Raster file output drivers:
-<dd>
-
-<dl>
-
-<dt>
-Fax and TIFF:
-<dd>
-<a href="../src/gdevfax.c">src/gdevfax.c</a>,
-<a href="../src/gdevfax.h">src/gdevfax.h</a>,
-<a href="../src/gdevtfax.c">src/gdevtfax.c</a>,
-<a href="../src/gdevtfax.h">src/gdevtfax.h</a>,
-<a href="../src/gdevtifs.c">src/gdevtifs.c</a>,
-<a href="../src/gdevtifs.h">src/gdevtifs.h</a>,
-<a href="../src/gdevtfnx.c">src/gdevtfnx.c</a>.
-
-<dt>
-(Low-level) CGM:
-<dd>
-<a href="../src/gdevcgm.c">src/gdevcgm.c</a>,
-<a href="../src/gdevcgml.c">src/gdevcgml.c</a>,
-<a href="../src/gdevcgml.h">src/gdevcgml.h</a>,
-<a href="../src/gdevcgmx.h">src/gdevcgmx.h</a>.
-
-<dt>
-Other raster file formats:
-<dd>
-<a href="../src/gdevbit.c">src/gdevbit.c</a>,
-<a href="../src/gdevbmp.c">src/gdevbmp.c</a>,
-<a href="../src/gdevbmp.h">src/gdevbmp.h</a>,
-<a href="../src/gdevbmpa.c">src/gdevbmpa.c</a>,
-<a href="../src/gdevbmpc.c">src/gdevbmpc.c</a>,
-<a href="../src/gdevjpeg.c">src/gdevjpeg.c</a>,
-<a href="../src/gdevmiff.c">src/gdevmiff.c</a>,
-<a href="../src/gdevp2up.c">src/gdevp2up.c</a>,
-<a href="../src/gdevpcx.c">src/gdevpcx.c</a>,
-<a href="../src/gdevpbm.c">src/gdevpbm.c</a>,
-<a href="../src/gdevpng.c">src/gdevpng.c</a>,
-<a href="../src/gdevpsim.c">src/gdevpsim.c</a>.
-
-</dl>
-
-<dt>
-Printer drivers:
-<dd>
-
-<dl>
-
-<dt>
-Operating system printer services:
-<dd>
-<a href="../src/gdevos2p.c">src/gdevos2p.c</a>,
-<a href="../src/gdevwpr2.c">src/gdevwpr2.c</a>,
-<a href="../src/gdevwprn.c">src/gdevwprn.c</a>.
-
-<dt>
-H-P monochrome printers:
-<dd>
-<a href="../src/gdevdljm.c">src/gdevdljm.c</a>,
-<a href="../src/gdevdljm.h">src/gdevdljm.h</a>,
-<a href="../src/gdevdjet.c">src/gdevdjet.c</a>,
-<a href="../src/gdevlj56.c">src/gdevlj56.c</a>.
-
-<dt>
-Other printers:
-<dd>
-<a href="../src/gdevatx.c">src/gdevatx.c</a>.
-
-</dl>
-
-</dl>
-
-<h4><a name="Contributed_drivers"></a>Contributed drivers</h4>
-
-<p>
-This list is likely to be incomplete and inaccurate: see <a
-href="../src/contrib.mak">src/contrib.mak</a> for the real one.
-
-<dl>
-
-<dt>
-Display and window system drivers:
-<dd>
-<a href="../src/gdev3b1.c">src/gdev3b1.c</a>,
-<a href="../src/gdevherc.c">src/gdevherc.c</a>,
-<a href="../src/gdevpe.c">src/gdevpe.c</a>,
-<a href="../src/gdevsnfb.c">src/gdevsnfb.c</a>,
-<a href="../src/gdevsun.c">src/gdevsun.c</a>.
-
-<dt>
-Raster file output drivers:
-<dd>
-<a href="../src/gdevcfax.c">src/gdevcfax.c</a>,
-<a href="../src/gdevcif.c">src/gdevcif.c</a>,
-<a href="../src/gdevdfax.c">src/gdevdfax.c</a>,
-<a href="../src/gdevifno.c">src/gdevifno.c</a>,
-<a href="../src/gdevmgr.c">src/gdevmgr.c</a>,
-<a href="../src/gdevmgr.h">src/gdevmgr.h</a>,
-<a href="../src/gdevsgi.c">src/gdevsgi.c</a>,
-<a href="../src/gdevsgi.h">src/gdevsgi.h</a>,
-<a href="../src/gdevsunr.c">src/gdevsunr.c</a>.
-
-<dt>
-Printer drivers:
-<dd>
-<a href="../lib/bj8.rpd">lib/bj8.rpd</a>,
-<a href="../lib/cbjc600.ppd">lib/cbjc600.ppd</a>,
-<a href="../lib/cbjc800.ppd">lib/cbjc800.ppd</a>,
-<a href="../src/gdev3852.c">src/gdev3852.c</a>,
-<a href="../src/gdev4081.c">src/gdev4081.c</a>,
-<a href="../src/gdev4693.c">src/gdev4693.c</a>,
-<a href="../src/gdev8510.c">src/gdev8510.c</a>,
-<a href="../src/gdevadmp.c">src/gdevadmp.c</a>,
-<a href="../src/gdevbj10.c">src/gdevbj10.c</a>,
-<a href="../src/gdevbjc.h">src/gdevbjc.h</a>,
-<a href="../src/gdevbjcl.c">src/gdevbjcl.c</a>,
-<a href="../src/gdevbjcl.h">src/gdevbjcl.h</a>,
-<a href="../src/gdevccr.c">src/gdevccr.c</a>,
-<a href="../src/gdevcdj.c">src/gdevcdj.c</a>,
-<a href="../src/gdevclj.c">src/gdevclj.c</a>,
-<a href="../src/gdevcljc.c">src/gdevcljc.c</a>,
-<a href="../src/gdevcp50.c">src/gdevcp50.c</a>,
-<a href="../src/gdevcslw.c">src/gdevcslw.c</a>,
-<a href="../src/gdevdjtc.c">src/gdevdjtc.c</a>,
-<a href="../src/gdevdm24.c">src/gdevdm24.c</a>,
-<a href="../src/gdevepsc.c">src/gdevepsc.c</a>,
-<a href="../src/gdevepsn.c">src/gdevepsn.c</a>,
-<a href="../src/gdevescp.c">src/gdevescp.c</a>,
-<a href="../src/gdevhl7x.c">src/gdevhl7x.c</a>,
-<a href="../src/gdevhpij.c">src/gdevhpij.c</a>,
-<a href="../src/gdevhpij.h">src/gdevhpij.h</a>,
-<a href="../src/gdevijs.c">src/gdevijs.c</a>,
-<a href="../src/gdevimgn.c">src/gdevimgn.c</a>,
-<a href="../src/gdevl31s.c">src/gdevl31s.c</a>,
-<a href="../src/gdevlbp8.c">src/gdevlbp8.c</a>,
-<a href="../src/gdevlp8k.c">src/gdevlp8k.c</a>,
-<a href="../src/gdevlxm.c">src/gdevlxm.c</a>,
-<a href="../src/gdevn533.c">src/gdevn533.c</a>,
-<a href="../src/gdevo182.c">src/gdevo182.c</a>,
-<a href="../src/gdevokii.c">src/gdevokii.c</a>,
-<a href="../src/gdevpcl.c">src/gdevpcl.c</a>,
-<a href="../src/gdevpcl.h">src/gdevpcl.h</a>,
-<a href="../src/gdevphex.c">src/gdevphex.c</a>,
-<a href="../src/gdevpjet.c">src/gdevpjet.c</a>,
-<a href="../src/gdevsj48.c">src/gdevsj48.c</a>,
-<a href="../src/gdevsppr.c">src/gdevsppr.c</a>,
-<a href="../src/gdevstp.c">src/gdevstp.c</a>,
-<a href="../src/gdevstc.c">src/gdevstc.c</a>,
-<a href="../src/gdevstc.h">src/gdevstc.h</a>,
-<a href="../src/gdevstc1.c">src/gdevstc1.c</a>,
-<a href="../src/gdevstc2.c">src/gdevstc2.c</a>,
-<a href="../src/gdevstc3.c">src/gdevstc3.c</a>,
-<a href="../src/gdevstc4.c">src/gdevstc4.c</a>,
-<a href="../src/gdevtknk.c">src/gdevtknk.c</a>,
-<a href="../src/gdevupd.c">src/gdevupd.c</a>.
-<a href="../src/gdevhl12.c">src/gdevhl12.c</a>.
-
-</dl>
-
-<h3><a name="PostScript_interpreter"></a>PostScript interpreter</h3>
-
-<p>
-The PostScript interpreter is conceptually simple: in fact, an interpreter
-that could execute "3 4 add =" and print "7" was running 3 weeks after the
-first line of Ghostscript code was written. However, a number of
-considerations make the code large and complex.
-
-<p>
-The interpreter is designed to run in environments with very limited memory.
-The main consequence of this is that it cannot allocate its stacks
-(dictionary, execution, operand) as ordinary arrays, since the
-user-specified stack size limit may be very large. Instead, it allocates
-them as a linked list of blocks. See below for more details.
-
-<p>
-The interpreter must never cause a C runtime error that it cannot trap.
-Unfortunately, C implementations almost never provide the ability to trap
-stack overflow. In order to put a fixed bound on the C stack size, the
-interpreter never implements PostScript recursion by C recursion. This
-means that any C code that logically needs to call the interpreter must
-instead push a continuation (including all necessary state information) on
-the PostScript execution stack, followed by the PostScript object to be
-executed, and then <em>return</em> to the interpreter. Unfortunately, since
-PostScript Level 2 introduces streams whose data source can be a PostScript
-procedure, any code that reads or writes stream data must be prepared to
-suspend itself, storing all necessary state in a continuation. There are
-some places where this is extremely awkward, such as the scanner/parser.
-
-<p>
-The use of continuations affects many places in the interpreter, and even
-some places in the graphics library. For example, when processing an image,
-one may need to call a PostScript procedure as part of mapping a CIE color
-to a device color. Ghostscript uses a variety of dodges to handle this: for
-example, in the case of CIE color mapping, all of the PostScript procedures
-are pre-sampled and the results cached. The Adobe implementation limits
-this kind of recursion to a fixed number of levels (5?): this would be
-another acceptable approach, but at this point it would require far more
-code restructuring than it would be worth.
-
-<p>
-A significant amount of the PostScript language implementation is in fact
-written in PostScript. Writing in PostScript leverages the C code for
-multi-threading, garbage collection, error handling, continuations for
-streams, etc., etc.; also, we have found PostScript in general more concise
-and easier to debug than C, mostly because of memory management issues. So
-given the choice, we tended to implement a feature in PostScript if it
-worked primarily with PostScript data structures, wasn't heavily used
-(example: font loading), or if it interacted with the stream or other
-callback machinery (examples: ReusableFileDecode streams, resourceforall).
-Often we would add non-standard PostScript operators for functions that had
-to run faster or that did more C-like things, such as the media matching
-algorithm for setpagedevice.
-
-</ul>
-
-<h4><a name="Main_program"></a>Main program</h4>
-
-<p>
-The main program of the interpreter is normally invoked from the command
-line, but it has an API as well. In fact, it has two APIs: one that
-recognizes the existence of multiple "interpreter instances" (although it
-currently provides a default instance, which almost all clients use), and a
-completely different one designed for Windows DLLs. These should be unified
-as soon as possible, since there are two steadily growing incompatible
-bodies of client code.
-
-<dl>
-
-<dt>
-Files:
-<dd>
-<a href="../src/gs.c">src/gs.c</a>,
-<a href="../src/gserver.c">src/gserver.c</a>,
-<a href="../src/iccinit0.c">src/iccinit0.c</a>,
-<a href="../src/iinit.c">src/iinit.c</a>,
-<a href="../src/iinit.h">src/iinit.h</a>,
-<a href="../src/imain.c">src/imain.c</a>,
-<a href="../src/imain.h">src/imain.h</a>,
-<a href="../src/imainarg.c">src/imainarg.c</a>,
-<a href="../src/imainarg.h">src/imainarg.h</a>,
-<a href="../src/iminst.h">src/iminst.h</a>,
-<a href="../src/main.h">src/main.h</a>.
-
-</dl>
-
-<h4><a name="Data_structures"></a>Data structures</h4>
-
-<p>
-The main data structures visible to the PostScript programmers are arrays,
-contexts, dictionaries, names, and stacks.
-
-<p>
-Arrays have no unusual properties. See under <a href="#Refs">Refs</a> below
-for more information about how array elements are stored.
-
-<p>
-Contexts are used to hold the interpreter state even in configurations that
-don't include the Display PostScript multiple context extension. Context
-switching is implemented by a complex cooperation of C and PostScript code.
-
-<p>
-Dictionaries have two special properties worth noting:
-
-<ul>
-
-<li>They use an optimized storage representation if all the keys are names,
-which is almost always the case.
-
-<li>They interact with a caching scheme used to accelerate name lookup in
-the interpreter.
-
-</ul>
-
-<p>
-Names are allocated in blocks. The characters and hash chains are stored
-separately from the lookup cache information, so that in the future, most of
-the former can be compiled into the executable and shared or put in ROM.
-(This is not actually done yet.)
-
-<p>
-As mentioned above, each stack is allocated as a linked list of blocks.
-However, for reasonable performance, operators must normally be able to
-access their operands and produce their results using indexing rather than
-an access procedure. This is implemented by ensuring that all the operands
-of an operator are in the topmost block of the stack, using guard entries
-that cause an internal error if the condition isn't met. See <a
-href="../src/iostack.h">src/iostack.h</a> for more details.
-
-<dl>
-
-<dt>
-General data structures:
-<dd>
-
-<dl>
-
-<dt>
-Contexts:
-<dd>
-<a href="../src/icontext.c">src/icontext.c</a>,
-<a href="../src/icontext.h">src/icontext.h</a>,
-<a href="../src/icstate.h">src/icstate.h</a>.
-
-<dt>
-Dictionaries:
-<dd>
-<a href="../src/iddict.h">src/iddict.h</a>,
-<a href="../src/idict.h">src/idict.h</a>,
-<a href="../src/idict.c">src/idict.c</a>,
-<a href="../src/idictdef.h">src/idictdef.h</a>.
-
-<dt>
-Names:
-<dd>
-<a href="../src/iname.c">src/iname.c</a>,
-<a href="../src/iname.h">src/iname.h</a>,
-<a href="../src/inamedef.h">src/inamedef.h</a>,
-<a href="../src/inameidx.h">src/inameidx.h</a>,
-<a href="../src/inames.h">src/inames.h</a>,
-<a href="../src/inamestr.h">src/inamestr.h</a>.
-
-<dt>
-Stacks:
-<dd>
-<a href="../src/isdata.h">src/isdata.h</a>,
-<a href="../src/istack.c">src/istack.c</a>,
-<a href="../src/istack.h">src/istack.h</a>,
-<a href="../src/istkparm.h">src/istkparm.h</a>.
-
-</dl>
-
-<dt>
-Specific stacks:
-<dd>
-
-<dl>
-
-<dt>
-Dictionary stack:
-<dd>
-<a href="../src/dstack.h">src/dstack.h</a>,
-<a href="../src/estack.h">src/estack.h</a>,
-<a href="../src/iddstack.h">src/iddstack.h</a>,
-<a href="../src/idsdata.h">src/idsdata.h</a>,
-<a href="../src/idstack.c">src/idstack.c</a>,
-<a href="../src/idstack.h">src/idstack.h</a>.
-
-<dt>
-Execution stack:
-<dd>
-<a href="../src/iesdata.h">src/iesdata.h</a>,
-<a href="../src/iestack.h">src/iestack.h</a>.
-
-<dt>
-Operand stack:
-<dd>
-<a href="../src/iosdata.h">src/iosdata.h</a>,
-<a href="../src/iostack.h">src/iostack.h</a>,
-<a href="../src/ostack.h">src/ostack.h</a>.
-
-</dl>
-
-</dl>
-
-<h4><a name="Interpreter_loop"></a>Interpreter loop</h4>
-
-<dl>
-
-<dt>
-Files:
-<dd>
-<a href="../src/interp.c">src/interp.c</a>,
-<a href="../src/interp.h">src/interp.h</a>.
-
-</dl>
-
-<h4><a name="Scanning_parsing"></a>Scanning/parsing</h4>
-
-<p>
-PostScript parsing consists essentially of token scanning, and is simple in
-principle. The scanner is complex because it must be able to suspend its
-operation at any time (i.e., between any two input characters) to allow an
-interpreter callout, if its input is coming from a procedure-based stream
-and the procedure must be called to provide more input data.
-
-<dl>
-
-<dt>
-Main scanner:
-<dd>
-<a href="../src/iscan.c">src/iscan.c</a>,
-<a href="../src/iscan.h">src/iscan.h</a>,
-<a href="../src/iscannum.c">src/iscannum.c</a>,
-<a href="../src/iscannum.h">src/iscannum.h</a>,
-<a href="../src/scanchar.h">src/scanchar.h</a>,
-<a href="../src/scantab.c">src/scantab.c</a>.
-
-<dt>
-Binary tokens:
-<dd>
-<a href="../src/btoken.h">src/btoken.h</a>,
-<a href="../src/ibnum.c">src/ibnum.c</a>,
-<a href="../src/ibnum.h">src/ibnum.h</a>,
-<a href="../src/inobtokn.c">src/inobtokn.c</a>,
-<a href="../src/iscanbin.c">src/iscanbin.c</a>,
-<a href="../src/iscanbin.h">src/iscanbin.h</a>.
-
-<dt>
-DSC parsing:
-<dd>
-<a href="../src/dscparse.c">src/dscparse.c</a>,
-<a href="../src/dscparse.h">src/dscparse.h</a>.
-
-</dl>
-
-<h4><a name="Standard_operators"></a>Standard operators</h4>
-
-<dl>
-
-<dt>
-Non-output-related:
-<dd>
-
-<dl>
-
-<dt>
-Filters:
-<dd>
-<a href="../src/ifilter.h">src/ifilter.h</a>,
-<a href="../src/ifilter2.h">src/ifilter2.h</a>,
-<a href="../src/ifrpred.h">src/ifrpred.h</a>,
-<a href="../src/ifwpred.h">src/ifwpred.h</a>,
-<a href="../src/istream.h">src/istream.h</a>,
-<a href="../src/zfbcp.c">src/zfbcp.c</a>,
-<a href="../src/zfdctd.c">src/zfdctd.c</a>,
-<a href="../src/zfdcte.c">src/zfdcte.c</a>,
-<a href="../src/zfdecode.c">src/zfdecode.c</a>,
-<a href="../src/zfilter.c">src/zfilter.c</a>,
-<a href="../src/zfilter2.c">src/zfilter2.c</a>,
-<a href="../src/zfilterx.c">src/zfilterx.c</a>,
-<a href="../src/zfmd5.c">src/zfmd5.c</a>,
-<a href="../src/zfarc4.c">src/zfarc4.c</a>,
-<a href="../src/zfproc.c">src/zfproc.c</a>,
-<a href="../src/zfrsd.c">src/zfrsd.c</a>,
-<a href="../src/zfzlib.c">src/zfzlib.c</a>.
-
-<dt>
-File and stream I/O:
-<dd>
-<a href="../src/files.h">src/files.h</a>,
-<a href="../src/itoken.h">src/itoken.h</a>,
-<a href="../src/zbseq.c">src/zbseq.c</a>,
-<a href="../src/zdscpars.c">src/zdscpars.c</a>,
-<a href="../src/zfile.c">src/zfile.c</a>,
-<a href="../src/zfileio.c">src/zfileio.c</a>,
-<a href="../src/ztoken.c">src/ztoken.c</a>.
-
-<dt>
-Data structures:
-<dd>
-<a href="../src/zarray.c">src/zarray.c</a>,
-<a href="../src/zdict.c">src/zdict.c</a>,
-<a href="../src/zgeneric.c">src/zgeneric.c</a>,
-<a href="../src/zpacked.c">src/zpacked.c</a>,
-<a href="../src/zstring.c">src/zstring.c</a>.
-
-<dt>
-Functions:
-<dd>
-<a href="../src/ifunc.h">src/ifunc.h</a>,
-<a href="../src/zfunc.c">src/zfunc.c</a>,
-<a href="../src/zfunc0.c">src/zfunc0.c</a>,
-<a href="../src/zfunc3.c">src/zfunc3.c</a>,
-<a href="../src/zfunc4.c">src/zfunc4.c</a>,
-
-<dt>
-Other:
-<dd>
-<a href="../src/ivmem2.h">src/ivmem2.h</a>,
-<a href="../src/zarith.c">src/zarith.c</a>,
-<a href="../src/zcontext.c">src/zcontext.c</a>,
-<a href="../src/zcontrol.c">src/zcontrol.c</a>,
-<a href="../src/zmath.c">src/zmath.c</a>,
-<a href="../src/zmatrix.c">src/zmatrix.c</a>,
-<a href="../src/zmisc.c">src/zmisc.c</a>,
-<a href="../src/zmisc1.c">src/zmisc1.c</a>,
-<a href="../src/zmisc2.c">src/zmisc2.c</a>,
-<a href="../src/zmisc3.c">src/zmisc3.c</a>,
-<a href="../src/zrelbit.c">src/zrelbit.c</a>,
-<a href="../src/zstack.c">src/zstack.c</a>,
-<a href="../src/ztype.c">src/ztype.c</a>,
-<a href="../src/zusparam.c">src/zusparam.c</a>,
-<a href="../src/zvmem.c">src/zvmem.c</a>,
-<a href="../src/zvmem2.c">src/zvmem2.c</a>.
-
-</dl>
-
-<dt>
-Output-related:
-<dd>
-
-<dl>
-
-<dt>
-Device management:
-<dd>
-<a href="../src/zdevcal.c">src/zdevcal.c</a>,
-<a href="../src/zdevice.c">src/zdevice.c</a>,
-<a href="../src/zdevice2.c">src/zdevice2.c</a>,
-<a href="../src/ziodev.c">src/ziodev.c</a>,
-<a href="../src/ziodev2.c">src/ziodev2.c</a>,
-<a href="../src/ziodevs.c">src/ziodevs.c</a>,
-<a href="../src/ziodevsc.c">src/ziodevsc.c</a>,
-<a href="../src/zmedia2.c">src/zmedia2.c</a>,
-<a href="../src/zdfilter.c">src/zdfilter.c</a>.
-
-<dt>
-Fonts and text:
-<dd>
-<a href="../src/bfont.h">src/bfont.h</a>,
-<a href="../src/ccfont.h">src/ccfont.h</a>,
-<a href="../src/iccfont.c">src/iccfont.c</a>,
-<a href="../src/icfontab.c">src/icfontab.c</a>,
-<a href="../src/ichar.h">src/ichar.h</a>,
-<a href="../src/ichar1.h">src/ichar1.h</a>,
-<a href="../src/icharout.h">src/icharout.h</a>,
-<a href="../src/icid.h">src/icid.h</a>,
-<a href="../src/ifcid.h">src/ifcid.h</a>,
-<a href="../src/ifont.h">src/ifont.h</a>,
-<a href="../src/ifont1.h">src/ifont1.h</a>,
-<a href="../src/ifont2.h">src/ifont2.h</a>,
-<a href="../src/ifont42.h">src/ifont42.h</a>,
-<a href="../src/zbfont.c">src/zbfont.c</a>,
-<a href="../src/zcfont.c">src/zcfont.c</a>,
-<a href="../src/zchar.c">src/zchar.c</a>,
-<a href="../src/zchar1.c">src/zchar1.c</a>,
-<a href="../src/zchar2.c">src/zchar2.c</a>,
-<a href="../src/zchar32.c">src/zchar32.c</a>,
-<a href="../src/zchar42.c">src/zchar42.c</a>,
-<a href="../src/zcharout.c">src/zcharout.c</a>,
-<a href="../src/zcharx.c">src/zcharx.c</a>,
-<a href="../src/zcid.c">src/zcid.c</a>,
-<a href="../src/zfcid.c">src/zfcid.c</a>,
-<a href="../src/zfcid0.c">src/zfcid0.c</a>,
-<a href="../src/zfcid1.c">src/zfcid1.c</a>,
-<a href="../src/zfcmap.c">src/zfcmap.c</a>,
-<a href="../src/zfont.c">src/zfont.c</a>,
-<a href="../src/zfont0.c">src/zfont0.c</a>,
-<a href="../src/zfont1.c">src/zfont1.c</a>,
-<a href="../src/zfont2.c">src/zfont2.c</a>,
-<a href="../src/zfont32.c">src/zfont32.c</a>,
-<a href="../src/zfont42.c">src/zfont42.c</a>.
-
-<dt>
-Color, pattern, and halftone:
-<dd>
-<a href="../src/icie.h">src/icie.h</a>,
-<a href="../src/icolor.h">src/icolor.h</a>,
-<a href="../src/icremap.h">src/icremap.h</a>,
-<a href="../src/icsmap.h">src/icsmap.h</a>,
-<a href="../src/iht.h">src/iht.h</a>,
-<a href="../src/ipcolor.h">src/ipcolor.h</a>,
-<a href="../src/zcie.c">src/zcie.c</a>,
-<a href="../src/zcolor.c">src/zcolor.c</a>,
-<a href="../src/zcolor1.c">src/zcolor1.c</a>,
-<a href="../src/zcolor2.c">src/zcolor2.c</a>,
-<a href="../src/zcrd.c">src/zcrd.c</a>,
-<a href="../src/zcsdevn.c">src/zcsdevn.c</a>,
-<a href="../src/zcsindex.c">src/zcsindex.c</a>,
-<a href="../src/zcspixel.c">src/zcspixel.c</a>,
-<a href="../src/zcssepr.c">src/zcssepr.c</a>,
-<a href="../src/zicc.c">src/zicc.c</a>,
-<a href="../src/zhsb.c">src/zhsb.c</a>,
-<a href="../src/zht.c">src/zht.c</a>,
-<a href="../src/zht1.c">src/zht1.c</a>,
-<a href="../src/zht2.c">src/zht2.c</a>,
-<a href="../src/zpcolor.c">src/zpcolor.c</a>,
-<a href="../src/zshade.c">src/zshade.c</a>,
-<a href="../src/ztrans.c">src/ztrans.c</a>.
-
-<dt>
-Images:
-<dd>
-<a href="../src/iimage.h">src/iimage.h</a>,
-<a href="../src/iimage2.h">src/iimage2.h</a>,
-<a href="../src/zimage.c">src/zimage.c</a>,
-<a href="../src/zimage2.c">src/zimage2.c</a>,
-<a href="../src/zimage3.c">src/zimage3.c</a>.
-
-<dt>
-Other graphics:
-<dd>
-<a href="../src/igstate.h">src/igstate.h</a>,
-<a href="../src/zdpnext.c">src/zdpnext.c</a>,
-<a href="../src/zdps.c">src/zdps.c</a>,
-<a href="../src/zdps1.c">src/zdps1.c</a>,
-<a href="../src/zgstate.c">src/zgstate.c</a>,
-<a href="../src/zpaint.c">src/zpaint.c</a>,
-<a href="../src/zpath.c">src/zpath.c</a>,
-<a href="../src/zpath1.c">src/zpath1.c</a>,
-<a href="../src/zrop.c">src/zrop.c</a>,
-<a href="../src/ztrap.c">src/ztrap.c</a>,
-<a href="../src/zupath.c">src/zupath.c</a>.
-
-</dl>
-
-<dt>
-Operator support:
-<dd>
-<a href="../src/oparc.h">src/oparc.h</a>,
-<a href="../src/opcheck.h">src/opcheck.h</a>,
-<a href="../src/opdef.h">src/opdef.h</a>,
-<a href="../src/oper.h">src/oper.h</a>,
-<a href="../src/opextern.h">src/opextern.h</a>.
-
-</dl>
-
-<h4><a name="Non_standard_operators"></a>Non-standard operators</h4>
-
-<p>
-The interpreter includes many non-standard operators. Most of these provide
-some part of the function of a standard operator, so that the standard
-operator itself can be implemented in PostScript: these are not of interest
-to users, and their function is usually obvious from the way they are used.
-However, some non-standard operators provide access to additional,
-non-standard facilities that users might want to know about, such as
-transparency, RasterOp, and in-memory rendering. These are documented at <a
-href="Language.htm#Additional_operators">Language.htm#Additional_operators</a>.
-
-<p>
-We don't document the complete set of non-standard operators here, because
-the set changes frequently. However, all non-standard operators are
-supposed to have names that begin with '.', so you can find them all by
-executing the following (Unix) command:
-
-<blockquote><pre>
-grep '{".[.]' src/[zi]*.c
-</pre></blockquote>
-
-<p>
-In addition to individual non-standard operators implemented in the same
-files as standard ones, there are several independent optional packages of
-non-standard operators. As with other non-standard operators, the names of
-all the operators in these packages begin with '.'. We list those packages
-here.
-
-<dl>
-
-<dt>
-<a href="../src/zdosio.c">src/zdosio.c</a>
-<dd>
-Provides access to PC hardware I/O through MS-DOS system calls. Probably no
-longer useful.
-
-<dt>
-<a href="../src/zdouble.c">src/zdouble.c</a>
-<dd>
-Provides "double" floating point arithmetic, using 8-byte strings to hold
-values. Developed under a contract; probably used only by the group that
-funded the development.
-
-<dt>
-<a href="../src/zsysvm.c">src/zsysvm.c</a>
-<dd>
-Provides operators for allocating objects in specific VM spaces,
-disregarding the current VM mode.
-
-<dt>
-<a href="../src/zccube.c">src/zccube.c</a>
-<dd>
-Provides an operator for building a color cube from an arbitrary tint
-transform, so that tint transforms can be applied from inside the
-graphics library without calling back to the PostScript interpreter.
-
-</dl>
-
-<h4><a name="Interpreter_support"></a>Interpreter support</h4>
-
-<p>
-Memory management (refs, GC, save/restore) -- see <a
-href="#PostScript_interpreter_extensions">below</a>.
-
-<dl>
-
-<dt>
-Miscellaneous support:
-<dd>
-<a href="../src/errors.h">src/errors.h</a>,
-<a href="../src/ghost.h">src/ghost.h</a>,
-<a href="../src/iconf.c">src/iconf.c</a>,
-<a href="../src/iconf.h">src/iconf.h</a>,
-<a href="../src/idparam.c">src/idparam.c</a>,
-<a href="../src/idparam.h">src/idparam.h</a>,
-<a href="../src/ilevel.h">src/ilevel.h</a>,
-<a href="../src/inouparm.c">src/inouparm.c</a>,
-<a href="../src/iparam.c">src/iparam.c</a>,
-<a href="../src/iparam.h">src/iparam.h</a>,
-<a href="../src/iparray.h">src/iparray.h</a>,
-<a href="../src/iutil.c">src/iutil.c</a>,
-<a href="../src/iutil.h">src/iutil.h</a>,
-<a href="../src/iutil2.c">src/iutil2.c</a>,
-<a href="../src/iutil2.h">src/iutil2.h</a>,
-<a href="../src/iutilasm.asm">src/iutilasm.asm</a>.
-
-</dl>
-
-<h4><a name="PostScript_code"></a>PostScript code</h4>
-
-<dl>
-
-<dt>
-Initialization and language support:
-<dd>
-
-<dl>
-
-<dt>
-All configurations:
-<dd>
-<a href="../lib/gs_init.ps">lib/gs_init.ps</a>,
-<a href="../lib/gs_statd.ps">lib/gs_statd.ps</a>.
-
-<dt>
-Level 2:
-<dd>
-<a href="../lib/gs_btokn.ps">lib/gs_btokn.ps</a>,
-<a href="../lib/gs_dps1.ps">lib/gs_dps1.ps</a>,
-<a href="../lib/gs_dps2.ps">lib/gs_dps2.ps</a>,
-<a href="../lib/gs_lev2.ps">lib/gs_lev2.ps</a>,
-<a href="../lib/gs_res.ps">lib/gs_res.ps</a>,
-<a href="../lib/gs_setpd.ps">lib/gs_setpd.ps</a>.
-
-<dt>
-LanguageLevel 3:
-<dd>
-<a href="../lib/gs_frsd.ps">lib/gs_frsd.ps</a>,
-<a href="../lib/gs_ll3.ps">lib/gs_ll3.ps</a>,
-<a href="../lib/gs_trap.ps">lib/gs_trap.ps</a>.
-
-<dt>
-Display PostScript:
-<dd>
-<a href="../lib/gs_dpnxt.ps">lib/gs_dpnxt.ps</a>,
-<a href="../lib/gs_dps.ps">lib/gs_dps.ps</a>.
-
-<dt>
-ICC color profiles:
-<dd>
-<a href="../lib/gs_icc.ps">lib/gs_icc.ps</a>.
-
-</dl>
-
-<dt>
-Font loading and support:
-<dd>
-
-<dl>
-
-<dt>
-Font name mapping:
-<dd>
-<a href="../lib/Fontmap">lib/Fontmap</a>,
-<a href="../lib/Fontmap.ATB">lib/Fontmap.ATB</a>,
-<a href="../lib/Fontmap.ATM">lib/Fontmap.ATM</a>,
-<a href="../lib/Fontmap.GS">lib/Fontmap.GS</a>,
-<a href="../lib/Fontmap.OS2">lib/Fontmap.OS2</a>,
-<a href="../lib/Fontmap.OSF">lib/Fontmap.OSF</a>,
-<a href="../lib/Fontmap.SGI">lib/Fontmap.SGI</a>,
-<a href="../lib/Fontmap.Sol">lib/Fontmap.Sol</a>,
-<a href="../lib/Fontmap.Ult">lib/Fontmap.Ult</a>,
-<a href="../lib/Fontmap.VMS">lib/Fontmap.VMS</a>.
-
-<dt>
-CIDFont name mapping:
-<dd>
-<a href="../lib/CIDFnmap">lib/CIDFnmap</a>,
-<a href="../lib/CIDFnmap.ARP">lib/CIDFnmap.ARP</a>,
-<a href="../lib/CIDFnmap.Bae">lib/CIDFnmap.Bae</a>,
-<a href="../lib/CIDFnmap.CJK">lib/CIDFnmap.CJK</a>,
-<a href="../lib/CIDFnmap.Koc">lib/CIDFnmap.Koc</a>,
-<a href="../lib/CIDFnmap.Ore">lib/CIDFnmap.Ore</a>,
-<a href="../lib/CIDFnmap.Sol">lib/CIDFnmap.Sol</a>,
-<a href="../lib/CIDFnmap.Win">lib/CIDFnmap.Win</a>,
-<a href="../lib/CIDFnmap.b5">lib/CIDFnmap.b5</a>,
-<a href="../lib/CIDFnmap.gb">lib/CIDFnmap.gb</a>,
-<a href="../lib/CIDFnmap.ksx">lib/CIDFnmap.ksx</a>,
-<a href="../lib/CIDFnmap.sj">lib/CIDFnmap.sj</a>.
-
-<dt>
-Generic:
-<dd>
-<a href="../lib/gs_ccfnt.ps">lib/gs_ccfnt.ps</a>,
-<a href="../lib/gs_fonts.ps">lib/gs_fonts.ps</a>.
-
-<dt>
-Type 1 and CFF:
-<dd>
-<a href="../lib/gs_cff.ps">lib/gs_cff.ps</a>,
-<a href="../lib/gs_diskf.ps">lib/gs_diskf.ps</a>,
-<a href="../lib/gs_type1.ps">lib/gs_type1.ps</a>.
-
-<dt>
-TrueType:
-<dd>
-<a href="../lib/gs_ttf.ps">lib/gs_ttf.ps</a>,
-<a href="../lib/gs_typ42.ps">lib/gs_typ42.ps</a>.
-
-<dt>
-CID-keyed:
-<dd>
-<a href="../lib/gs_cidcm.ps">lib/gs_cidcm.ps</a>,
-<a href="../lib/gs_cidfn.ps">lib/gs_cidfn.ps</a>,
-<a href="../lib/gs_cmap.ps">lib/gs_cmap.ps</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../lib/gs_kanji.ps">lib/gs_kanji.ps</a>,
-<a href="../lib/gs_pfile.ps">lib/gs_pfile.ps</a>,
-<a href="../lib/gs_typ32.ps">lib/gs_typ32.ps</a>.
-
-</dl>
-
-<dt>
-Encodings:
-<dd>
-
-<dl>
-
-<dt>
-Adobe-specified:
-<dd>
-<a href="../lib/gs_ce_e.ps">lib/gs_ce_e.ps</a>,
-<a href="../lib/gs_dbt_e.ps">lib/gs_dbt_e.ps</a>,
-<a href="../lib/gs_il1_e.ps">lib/gs_il1_e.ps</a>,
-<a href="../lib/gs_mex_e.ps">lib/gs_mex_e.ps</a>,
-<a href="../lib/gs_mro_e.ps">lib/gs_mro_e.ps</a>,
-<a href="../lib/gs_pdf_e.ps">lib/gs_pdf_e.ps</a>,
-<a href="../lib/gs_std_e.ps">lib/gs_std_e.ps</a>,
-<a href="../lib/gs_sym_e.ps">lib/gs_sym_e.ps</a>,
-<a href="../lib/gs_wan_e.ps">lib/gs_wan_e.ps</a>.
-
-<dt>
-Additional:
-<dd>
-<a href="../lib/gs_il2_e.ps">lib/gs_il2_e.ps</a>,
-<a href="../lib/gs_ksb_e.ps">lib/gs_ksb_e.ps</a>,
-<a href="../lib/gs_wl1_e.ps">lib/gs_wl1_e.ps</a>,
-<a href="../lib/gs_wl2_e.ps">lib/gs_wl2_e.ps</a>,
-<a href="../lib/gs_wl5_e.ps">lib/gs_wl5_e.ps</a>.
-
-<dt>
-Pseudo-encodings for internal use:
-<dd>
-<a href="../lib/gs_css_e.ps">lib/gs_css_e.ps</a>,
-<a href="../lib/gs_lgo_e.ps">lib/gs_lgo_e.ps</a>,
-<a href="../lib/gs_lgx_e.ps">lib/gs_lgx_e.ps</a>,
-<a href="../lib/gs_mgl_e.ps">lib/gs_mgl_e.ps</a>.
-
-</dl>
-
-<dt>
-Miscellaneous:
-<dd>
-
-<dl>
-
-<dt>
-Other support:
-<dd>
-<a href="../lib/gs_agl.ps">lib/gs_agl.ps</a>,
-<a href="../lib/gs_dscp.ps">lib/gs_dscp.ps</a>,
-<a href="../lib/gs_epsf.ps">lib/gs_epsf.ps</a>,
-<a href="../lib/gs_pdfwr.ps">lib/gs_pdfwr.ps</a>,
-<a href="../lib/gs_rdlin.ps">lib/gs_rdlin.ps</a>.
-
-<dt>
-X Windows icon bitmaps:
-<dd>
-<a href="../lib/gs_l.xbm">lib/gs_l.xbm</a>,
-<a href="../lib/gs_l.xpm">lib/gs_l.xpm</a>,
-<a href="../lib/gs_l_m.xbm">lib/gs_l_m.xbm</a>,
-<a href="../lib/gs_m.xbm">lib/gs_m.xbm</a>,
-<a href="../lib/gs_m.xpm">lib/gs_m.xpm</a>,
-<a href="../lib/gs_m_m.xbm">lib/gs_m_m.xbm</a>,
-<a href="../lib/gs_s.xbm">lib/gs_s.xbm</a>,
-<a href="../lib/gs_s.xpm">lib/gs_s.xpm</a>,
-<a href="../lib/gs_s_m.xbm">lib/gs_s_m.xbm</a>,
-<a href="../lib/gs_t.xbm">lib/gs_t.xbm</a>,
-<a href="../lib/gs_t.xpm">lib/gs_t.xpm</a>,
-<a href="../lib/gs_t_m.xbm">lib/gs_t_m.xbm</a>.
-
-<dt>
-Not currently used:
-<dd>
-<a href="../lib/gs_cmdl.ps">lib/gs_cmdl.ps</a>,
-<a href="../lib/gs_fform.ps">lib/gs_fform.ps</a>,
-<a href="../lib/gs_l2img.ps">lib/gs_l2img.ps</a>.
-
-</dl>
-
-</dl>
-
-<h3><a name="PDF_interpreter"></a>PDF interpreter</h3>
-
-<p>
-Ghostscript's PDF interpreter is written entirely in PostScript, because its
-data structures are the same as PostScript's, and it is much more convenient
-to manipulate PostScript-like data structures in PostScript than in C.
-There is definitely a performance cost, but apparently not a substantial
-one: we considered moving the main interpreter loop (read a token using
-slightly different syntax than PostScript, push it on the stack if literal,
-look it up in a special dictionary for execution if not) into C, but we did
-some profiling and discovered that this wasn't accounting for enough of the
-time to be worthwhile.
-
-<p>
-Until recently, there was essentially no C code specifically for the purpose
-of supporting PDF interpretation. The one major exception is the PDF 1.4
-transparency features, which we (but not Adobe) have made available to
-PostScript code.
-
-<p>
-In addition to patching the <b><tt>run</tt></b> operator to detect PDF
-files, the interpreter provides some procedures in <a
-href="../lib/pdf_main.ps">lib/pdf_main.ps</a> that are meant to be called
-from applications such as previewers.
-
-<dl>
-
-<dt>
-Files:
-<dd>
-<a href="../lib/pdf_base.ps">lib/pdf_base.ps</a>,
-<a href="../lib/pdf_draw.ps">lib/pdf_draw.ps</a>,
-<a href="../lib/pdf_font.ps">lib/pdf_font.ps</a>,
-<a href="../lib/pdf_main.ps">lib/pdf_main.ps</a>,
-<a href="../lib/pdf_ops.ps">lib/pdf_ops.ps</a>,
-<a href="../lib/pdf_sec.ps">lib/pdf_sec.ps</a>.
-
-</dl>
-
-<h3><a name="Build_process"></a>Build process</h3>
-
-<h4><a name="Makefile_structure"></a>Makefile structure</h4>
-
-<p>
-Ghostscript's makefiles embody a number of design decisions and assumptions
-that may not be obvious from a casual reading of the code.
-
-<ul>
-
-<li>All files are stored in subdirectories. The names of all subdirectories
-used in the build process are defined in the top-level makefiles for the
-various platforms: there are no "hard wired" directory names in any makefile
-rule. Subdirectory names in the makefiles are relative to the directory
-that is current at build time: normally this directory is the parent of the
-various subdirectories, and holds only a <b><tt>makefile</tt></b>, which in
-turn simply references the real top-level makefile in the source
-subdirectory.
-
-<li>All compiler and linker switches are likewise defined by macros, again
-preferably in the top-level platform makefile.
-
-<li>There is an absolute distinction between "source-like" subdirectories,
-which are read-only during the build process, and "object-like"
-subdirectories, all of whose contents are generated by the build process and
-which can be emptied (<b><tt>rm&nbsp;*</tt></b>) at any time with no bad
-effects. The source subdirectories are defined by macros named
-<b><tt>xxxSRCDIR</tt></b>.
-
-<li>Object subdirectories may distinguish further between those that hold
-the results of the build process that are needed at run time (i.e., that
-should be included in a run-time distribution), defined by
-<b><tt>BINDIR</tt></b>, and those that are not needed at run time, defined
-by <b><tt>xxxGENDIR</tt></b> and <b><tt>xxxOBJDIR</tt></b>. (The
-distinction between these is historical and probably no longer relevant.)
-
-<li>There may be multiple object subdirectories for different build
-configurations. On Unix, the <b><tt>obj</tt></b> and <b><tt>bin</tt></b>
-directories are used for normal production builds, the
-<b><tt>debugobj</tt></b> directory for debugging builds, and the
-<b><tt>pgobj</tt></b> directory for profiling builds; other platforms may
-use different conventions. The Unix makefiles support targets named
-<b><tt>debug</tt></b> and <b><tt>pg</tt></b> for debugging and profiling
-builds respectively; other platforms generally do not.
-
-<li>Makefiles will be maintained by hand. This requires editing the
-following makefile elements whenever the relevant source files changes:
-
-<ul>
-
-<li>Every header (.h) file must have a corresponding macro definition in a
-makefile. If <b><tt>abc.h</tt></b> #includes <b><tt>def.h</tt></b> and
-<b><tt>xyz.h</tt></b>, the definition must have the form
-
-<blockquote><pre>
-xyz_h=$(xxxSRCD)xyz.h $(def_h) $(xyz_h)
-</pre></blockquote>
-
-where <b><tt>xxxSRCD</tt></b> is the macro defining the relevant source
-directory (including a trailing '/'). Note that the '.' in the file name
-has been replaced by an underscore. Note also that the definition must
-follow all definitions it references, since some <b><tt>make</tt></b>
-programs expand macros in definitions at the time of definition rather than
-at the time of use.
-
-<li>Every .c file must have a corresponding rule in a makefile. If
-<b><tt>abc.c</tt></b> #includes <b><tt>def.h</tt></b> and
-<b><tt>lmn.h</tt></b>, the rule must have approximately the form
-
-<blockquote><pre>
-$(xxxOBJD)abc.$(OBJ) : $(xxxSRCD)abc.c $(def_h) $(lmn_h)
- $(xxCC) $(xxO_)abc.$(OBJ) $(C_) $(xxxSRCD)abc.c
-</pre></blockquote>
-
-where <b><tt>xxxSRCD</tt></b> is as before; <b><tt>xxxOBJD</tt></b> is the
-relevant object directory; <b><tt>xxCC</tt></b> defines the name of the C
-compiler plus the relevant compilation switches; and <b><tt>xxO_</tt></b>
-and <b><tt>C_</tt></b> are macros used to bridge syntactic differences
-between different <b><tt>make</tt></b> programs.
-
-</ul>
-
-</ul>
-
-<p>
-The requirement to keep makefiles up to date by hand has been controversial.
-Two alternatives are generally proposed.
-
-<ul>
-
-<li>Programs like <b><tt>makedeps</tt></b>, which generate build rules
-automatically from the #include lists in C files. We have found such
-programs useless: they "wire in" specific, concrete directory names, not
-only for our own code but even for the system header files; they have to be
-run manually whenever code files are added, renamed, or deleted, or whenever
-the list of #includes in any file changes; and they cannot deal with
-different source files requiring different compilation switches.
-
-<li>MSVC-style "project" files. These are equally useless: they are not
-portable across different vendors' tools -- in fact, there may not even be a
-usable import/export facility to convert their data to or from text form --
-and they cannot combine configuration-independent data with
-configuration-specific data.
-
-</ul>
-
-<p>
-We have seriously considered writing our own build program in Tcl or Python
-that would eliminate these problems, or perhaps porting the tools developed
-by Digital's Vesta research project (if we can get access to them); however,
-either of these approaches would create potential portability problems of
-its own, not to mention difficulties in integrating with others' build
-systems.
-
-<p>
-In the meantime, to ease the pain for mortal users and developers on
-Unix platforms, we have adopted the standard autoconf tool to
-systematically generate an appropriate top-level makefile for the
-target system. As currently implemented, its use makes no deep changes
-to the Ghostscript build system, but rather generates a makefile, more
-or less the same as would be achieved by starting from a
-platform-specific toplevel makefile and hand-editing. The relevant
-autoconf sources are in <a
-href="../src/Makefile.in">src/Makefile.in</a>, and <a
-href="../src/configure.ac">configure.ac</a>. These sources are used in
-the release process to create a <a href="../configure">configure</a>
-script in the toplevel directory of releases. Also, there is an <a
-href="../autogen.sh">autogen.sh</a> script to automate the autoconf
-process somewhat. The names and locations of these files were chosen
-to be clear to those familiar with autoconf, even though they represent
-a slight departure from Ghostscript tradition.
-
-<p>
-For more information about makefiles:
-
-<ul>
-
-<li>For a detailed list of makefiles, and a discussion of makefile issues
-related to portability, see the <a href="#Makefiles">Makefiles</a> section
-below.
-
-<li>For more detailed information about editing configuration information in
-makefiles, see <a
-href="Make.htm#Makefile_overview">doc/Make.htm#Makefile_overview</a>.
-
-<li>For a complete example of adding a new driver to a makefile, see <a
-href="Drivers.htm#Adding_drivers">doc/Drivers.htm#Adding_drivers</a>.
-
-<li>For a few more notes on makefile coding conventions, see <a
-href="C-style.htm#Makefiles">doc/C-style.htm#Makefiles</a>.
-
-</ul>
-
-<h4><a name="dev_files"></a>.dev files</h4>
-
-<p>
-On top of the general conventions just described, Ghostscript's makefiles
-add a further layer of structure in order to support an open-ended set of
-fine-grained, flexible configuration options. Selecting an option (usually
-called a "module") for inclusion in the build may affect the build in many
-ways:
-
-<ul>
-
-<li>Almost always, it requires linking in some compiled code files.
-
-<li>It may require running some additional initialization procedures at
-startup.
-
-<li>It may require reading in some additional PostScript files at startup.
-For example, a Level 2 PostScript build requires support for PostScript
-resources and for setpagedevice, which are implemented in PostScript code.
-
-<li>It may require adding entries to a variety of internal tables that
-catalogue such things as drivers, IODevices, Function types, etc.
-
-<li>It may require that other particular modules be included. For example,
-the "PostScript Level 2" module requires the modules for various filters,
-color spaces, etc.
-
-<li>It may require <em>removing</em> some other (default) module from the
-build. For example, the core (Level 1) PostScript build has a "stub" for
-binary tokens, which are a Level 2 feature but are referenced by the core
-scanner: a Level 2 build must remove the stub. For more information about
-this, look for the string <b><tt>-replace</tt></b> in the makefiles and in
-<a href="../src/genconf.c">src/genconf.c</a>.
-
-</ul>
-
-<p>
-Each module is defined in the makefiles by rules that create a file named
-<b><em>xxx</em><tt>.dev</tt></b>. The dependencies of the rule include all
-the files that make up the module (compiled code files, PostScript files,
-etc.); the body of the rule creates the .dev file by writing the description
-of the module into it. A program called <b><tt>genconf</tt></b>, described
-in the next section, merges all the relevant .dev files together. For
-examples of .dev rules, see any of the Ghostscript makefiles.
-
-<p>
-Ultimately, a person must specify the root set of modules to include in a
-build (which of course may require other modules, recursively).
-Ghostscript's makefiles do this with a set of macros called
-<b><tt>FEATURE_DEVS</tt></b> and <b><tt>DEVICE_DEVS</tt>n</b>, defined in
-each top-level makefile, but nothing in the module machinery depends on
-this.
-
-<h4><a name="Generators"></a>Generators</h4>
-
-<p>
-Ghostscript's build procedure is somewhat unusual in that it compiles and
-then executes some support programs during the build process. These
-programs then generate data or source code that is used later on in the
-build.
-
-<p>
-The most important and complex of the generator programs is
-<b><tt>genconf</tt></b>. <b><tt>genconf</tt></b> merges all the .dev files
-that make up the build, and creates three or more output files used in later
-stages:
-
-<ul>
-
-<li><b><tt>gconfig.h</tt></b>, consisting mainly of macro calls, one call
-per "resource" making up the build, other than "resources" listed in the
-other output files.
-
-<li><b><tt>gconfigf.h</tt></b>, produced only for PostScript builds with
-compiled-in fonts, consisting of one macro call per font.
-
-<li>A linker control file whose name varies from one platform to another,
-containing the list of compiled code files to be linked.
-
-<li>If necessary, another linker control file, also varying between
-platforms, that contains other information for the linker such as the list
-of system libraries to be searched. (On Unix platforms, the two linker
-control functions are combined in a single file.)
-
-</ul>
-
-<dl>
-
-<dt>
-Source generators:
-<dd>
-
-<dl>
-
-<dt>
-<a href="../src/genarch.c">src/genarch.c</a>
-<dd>
-Creates a header file containing a variety of information about the hardware
-and compiler that isn't provided in any standard system header file. Always
-used.
-
-<dt>
-<a href="../src/genconf.c">src/genconf.c</a> (also generates non-source)
-<dd>
-Constructs header files and linker control files from the collection of
-options and modules that make up the build. See above. Always used.
-
-<dt>
-<a href="../src/genht.c">src/genht.c</a>
-<dd>
-Converts a PostScript halftone (in a particular constrained format) to a C
-data structure that can be compiled into an executable. Only used if any
-such halftones are included in the build.
-
-<dt>
-<a href="../src/geninit.c">src/geninit.c</a>
-<dd>
-Converts PostScript initialization files to C data structures that can be
-compiled into an executable. Only used when building a PostScript
-interpreter, and only if <b><tt>COMPILE_INITS</tt></b> was set to 1 in the
-makefile.
-
-</dl>
-
-<dt>
-Other generators:
-<dd>
-
-<dl>
-
-<dt>
-<a href="../src/echogs.c">src/echogs.c</a>
-<dd>
-Implements a variety of shell-like functions to get around quirks,
-limitations, and omissions in the shells on various platforms. Always used.
-
-<dt>
-<a href="../src/genconf.c">src/genconf.c</a> (also generates source)
-<dd>
-See above.
-
-<dt>
-<a href="../src/gendev.c">src/gendev.c</a> (not used)
-<dd>
-Was intended as a replacement for <b><tt>genconf</tt></b>, but was never
-completed.
-
-</dl>
-
-</dl>
-
-<h4><a name="Build_support"></a>Support</h4>
-
-<p>
-There are a number of programs, scripts, and configuration files that exist
-only for the sake of the build process.
-
-<dl>
-
-<dt>
-Files for PC environments:
-<dd>
-<a href="../src/gswin.icx">src/gswin.icx</a>,
-<a href="../src/gswin16.icx">src/gswin16.icx</a>,
-<a href="../src/bcc32.cfg">src/bcc32.cfg</a>,
-<a href="../src/cp.bat">src/cp.bat</a>,
-<a href="../src/cp.cmd">src/cp.cmd</a>,
-<a href="../src/dw32c.def">src/dw32c.def</a>,
-<a href="../src/dwmain.rc">src/dwmain.rc</a>,
-<a href="../src/dwmain16.def">src/dwmain16.def</a>,
-<a href="../src/dwmain32.def">src/dwmain32.def</a>,
-<a href="../src/dwsetup.def">src/dwsetup.def</a>,
-<a href="../src/dwsetup.rc">src/dwsetup.rc</a>,
-<a href="../src/dwuninst.def">src/dwuninst.def</a>,
-<a href="../src/dwuninst.rc">src/dwuninst.rc</a>,
-<a href="../src/gs16spl.def">src/gs16spl.def</a>,
-<a href="../src/gs16spl.rc">src/gs16spl.rc</a>,
-<a href="../src/gsdll2.def">src/gsdll2.def</a>,
-<a href="../src/gsdll2.rc">src/gsdll2.rc</a>,
-<a href="../src/gsdll32.def">src/gsdll32.def</a>,
-<a href="../src/gsdll32.rc">src/gsdll32.rc</a>,
-<a href="../src/gsdll32w.lnk">src/gsdll32w.lnk</a>,
-<a href="../src/gsos2.def">src/gsos2.def</a>,
-<a href="../src/gsos2.icx">src/gsos2.icx</a>,
-<a href="../src/gsos2.rc">src/gsos2.rc</a>,
-<a href="../src/gspmdrv.def">src/gspmdrv.def</a>,
-<a href="../src/gspmdrv.icx">src/gspmdrv.icx</a>,
-<a href="../src/gspmdrv.rc">src/gspmdrv.rc</a>,
-<a href="../src/gswin.rc">src/gswin.rc</a>,
-<a href="../src/gswin32.rc">src/gswin32.rc</a>,
-<a href="../src/gswin386.rc">src/gswin386.rc</a>,
-<a href="../src/mv.bat">src/mv.bat</a>,
-<a href="../src/mv.cmd">src/mv.cmd</a>,
-<a href="../src/rm.bat">src/rm.bat</a>,
-<a href="../src/rm.cmd">src/rm.cmd</a>,
-<a href="../src/turboc.cfg">src/turboc.cfg</a>.
-
-<dt>
-Files for MacOS:
-<dd>
-<a href="../lib/Info-macos.plist">lib/Info-macos.plist</a>.
-
-<dt>
-Files for OpenVMS:
-<dd>
-<a href="../src/append_l.com">src/append_l.com</a>,
-<a href="../src/copy_one.com">src/copy_one.com</a>,
-<a href="../src/rm_all.com">src/rm_all.com</a>,
-<a href="../src/rm_one.com">src/rm_one.com</a>.
-
-<dt>
-Other files:
-<dd>
-<a href="../src/bench.c">src/bench.c</a>,
-<a href="../src/catmake">src/catmake</a>,
-<a href="../src/ccgs">src/ccgs</a>,
-<a href="../src/instcopy">src/instcopy</a>.
-
-</dl>
-
-<h3><a name="Utilities"></a>Utilities</h3>
-
-<p>
-Ghostscript comes with many utilities for doing things like viewing bitmap
-files and converting between file formats. Some of these are written in
-PostScript, some as scripts, and some as scripts that invoke special
-PostScript code.
-
-<h4><a name="Utilities_in_PostScript"></a>Utilities in PostScript</h4>
-
-<p>
-These are all documented in <a href="Psfiles.htm">doc/Psfiles.htm</a>, q.v.
-
-<h4><a name="Utility_scripts"></a>Utility scripts</h4>
-
-<p>
-Many of these scripts come in both Unix and MS-DOS (<b><tt>.bat</tt></b>
-versions; some also have an OS/2 (<b><tt>.cmd</tt></b>) version. The choice
-of which versions are provided is historical and irregular. These scripts
-should all be documented somewhere, but currently, many of them have man
-pages, a few have their own documentation in the doc directory, and some
-aren't documented at all.
-
-<dl>
-
-<dt>
-Script files without PC versions:
-<dd>
-<a href="../lib/afmdiff.awk">lib/afmdiff.awk</a>,
-<a href="../lib/dvipdf">lib/dvipdf</a>,
-<a href="../lib/fixmswrd.pl">lib/fixmswrd.pl</a>,
-<a href="../lib/lprsetup.sh">lib/lprsetup.sh</a>,
-<a href="../lib/pfbtopfa">lib/pfbtopfa</a>,
-<a href="../lib/pj-gs.sh">lib/pj-gs.sh</a>,
-<a href="../lib/pphs">lib/pphs</a>,
-<a href="../lib/printafm">lib/printafm</a>,
-<a href="../lib/pv.sh">lib/pv.sh</a>,
-<a href="../lib/sysvlp.sh">lib/sysvlp.sh</a>,
-<a href="../lib/unix-lpr.sh">lib/unix-lpr.sh</a>,
-<a href="../lib/wftopfa">lib/wftopfa</a>.
-
-<dt>
-Script files with PC versions:
-<dd>
-<a href="../lib/bdftops">lib/bdftops</a>,
-<a href="../lib/bdftops.bat">lib/bdftops.bat</a>,
-<a href="../lib/bdftops.cmd">lib/bdftops.cmd</a>,
-<a href="../lib/eps2eps">lib/eps2eps</a>,
-<a href="../lib/eps2eps.bat">lib/eps2eps.bat</a>,
-<a href="../lib/eps2eps.cmd">lib/eps2eps.cmd</a>,
-<a href="../lib/font2c">lib/font2c</a>,
-<a href="../lib/font2c.bat">lib/font2c.bat</a>,
-<a href="../lib/font2c.cmd">lib/font2c.cmd</a>,
-<a href="../lib/gsbj">lib/gsbj</a>,
-<a href="../lib/gsbj.bat">lib/gsbj.bat</a>,
-<a href="../lib/gsdj">lib/gsdj</a>,
-<a href="../lib/gsdj.bat">lib/gsdj.bat</a>,
-<a href="../lib/gsdj500">lib/gsdj500</a>,
-<a href="../lib/gsdj500.bat">lib/gsdj500.bat</a>,
-<a href="../lib/gslj">lib/gslj</a>,
-<a href="../lib/gslj.bat">lib/gslj.bat</a>,
-<a href="../lib/gslp">lib/gslp</a>,
-<a href="../lib/gslp.bat">lib/gslp.bat</a>,
-<a href="../lib/gsnd">lib/gsnd</a>,
-<a href="../lib/gsnd.bat">lib/gsnd.bat</a>,
-<a href="../lib/pdf2dsc">lib/pdf2dsc</a>,
-<a href="../lib/pdf2dsc.bat">lib/pdf2dsc.bat</a>,
-<a href="../lib/pdf2ps">lib/pdf2ps</a>,
-<a href="../lib/pdf2ps.bat">lib/pdf2ps.bat</a>,
-<a href="../lib/pdf2ps.cmd">lib/pdf2ps.cmd</a>,
-<a href="../lib/pdfopt">lib/pdfopt</a>,
-<a href="../lib/pdfopt.bat">lib/pdfopt.bat</a>,
-<a href="../lib/pf2afm">lib/pf2afm</a>,
-<a href="../lib/pf2afm.bat">lib/pf2afm.bat</a>,
-<a href="../lib/pf2afm.cmd">lib/pf2afm.cmd</a>,
-<a href="../lib/ps2ascii">lib/ps2ascii</a>,
-<a href="../lib/ps2ascii.bat">lib/ps2ascii.bat</a>,
-<a href="../lib/ps2ascii.cmd">lib/ps2ascii.cmd</a>,
-<a href="../lib/ps2epsi">lib/ps2epsi</a>,
-<a href="../lib/ps2epsi.bat">lib/ps2epsi.bat</a>,
-<a href="../lib/ps2epsi.cmd">lib/ps2epsi.cmd</a>,
-<a href="../lib/ps2pdf">lib/ps2pdf</a>,
-<a href="../lib/ps2pdf.bat">lib/ps2pdf.bat</a>,
-<a href="../lib/ps2pdf.cmd">lib/ps2pdf.cmd</a>,
-<a href="../lib/ps2pdf12">lib/ps2pdf12</a>,
-<a href="../lib/ps2pdf12.bat">lib/ps2pdf12.bat</a>,
-<a href="../lib/ps2pdf12.cmd">lib/ps2pdf12.cmd</a>,
-<a href="../lib/ps2pdf13">lib/ps2pdf13</a>,
-<a href="../lib/ps2pdf13.bat">lib/ps2pdf13.bat</a>,
-<a href="../lib/ps2pdf13.cmd">lib/ps2pdf13.cmd</a>,
-<a href="../lib/ps2pdf14">lib/ps2pdf14</a>,
-<a href="../lib/ps2pdf14.bat">lib/ps2pdf14.bat</a>,
-<a href="../lib/ps2pdf14.cmd">lib/ps2pdf14.cmd</a>,
-<a href="../lib/ps2pdfwr">lib/ps2pdfwr</a>,
-<a href="../lib/ps2pdfxx.bat">lib/ps2pdfxx.bat</a>,
-<a href="../lib/ps2ps">lib/ps2ps</a>,
-<a href="../lib/ps2ps.bat">lib/ps2ps.bat</a>,
-<a href="../lib/ps2ps.cmd">lib/ps2ps.cmd</a>.
-
-<dt>
-Script files with only PC versions:
-<dd>
-<a href="../lib/gsndt.bat">lib/gsndt.bat</a>,
-<a href="../lib/gssetgs.bat">lib/gssetgs.bat</a>,
-<a href="../lib/gst.bat">lib/gst.bat</a>,
-<a href="../lib/gstt.bat">lib/gstt.bat</a>,
-<a href="../lib/lp386.bat">lib/lp386.bat</a>,
-<a href="../lib/lp386r2.bat">lib/lp386r2.bat</a>,
-<a href="../lib/lpgs.bat">lib/lpgs.bat</a>,
-<a href="../lib/lpr2.bat">lib/lpr2.bat</a>,
-<a href="../lib/pftogsf.bat">lib/pftogsf.bat</a>,
-<a href="../lib/wmakebat.bat">lib/wmakebat.bat</a>.
-
-</dl>
-
-<hr>
-
-<h2><a name="Memory_management"></a>Memory management</h2>
-
-<h3><a name="Memory_manager_architecture"></a>Memory manager architecture</h3>
-
-<p>
-In many environments, the memory manager is a set of library facilities that
-implicitly manage the entire address space in a homogenous manner.
-Ghostscript's memory manager architecture has none of these properties:
-
-<ul>
-
-<li>Rather than a single library accessed as procedures, Ghostscript
-includes multiple allocator types, each of which in turn may have multiple
-instances (allocators). Allocators are 'objects' with a substantial set of
-virtual functions.
-
-<li>Rather than managing the entire address space, each allocator manages a
-storage pool, which it may or may not be able to expand or reduce by calling
-on a 'parent' allocator.
-
-<li>Rather than a single genus of untyped storage blocks, Ghostscript's
-allocators provide two genera -- type-tagged 'objects', and 'strings' --
-with substantially different properties.
-
-</ul>
-
-<h4><a name="Objects_vs_strings"></a>Objects vs strings</h4>
-
-<p>
-As noted above, allocators provide two different storage genera.
-
-<p>
-Objects:
-
-<ul>
-<li>Are aligned in storage to satisfy the most stringent alignment
-requirement imposed by the CPU or compiler;
-<li>Can be referenced only by pointers to their start, not to any internal
-location, unless special arrangements are made;
-<li>May contain pointers to other objects, or to strings;
-<li>Have an associated <em>structure descriptor</em> that specifies their
-size (usually) and the location of any pointers contained within them.
-</ul>
-
-<p>
-Given a pointer to an object, the allocator that allocated it must be able
-to return the object's size and the pointer to its structure descriptor.
-(It is up to the client to know what allocator allocated an object.)
-
-<p>
-Strings:
-
-<ul>
-<li>Are not aligned in storage;
-<li>Can be referenced by pointers (consisting of a starting address and a
-length) to any substring, starting anywhere within the string;
-<li>May not contain pointers;
-<li>Do not have a structure descriptor.
-</ul>
-
-<p>
-The object/string distinction reflects a space/capability tradeoff. The
-per-object space overhead of the standard type of allocator is typically 12
-bytes; this is too much to impose on every string of a few bytes. On the
-other hand, restricting object pointers to reference the start of the object
-currently makes object garbage collection and compaction more
-space-efficient. If we were to redesign the standard allocator, we would
-probably opt for a different design in which strings were allocated within
-container objects of a few hundred bytes, and pointers into the middle of
-all objects were allowed.
-
-<h4><a name="Structure_descriptors"></a>Structure descriptors</h4>
-
-<p>
-Every object allocated by a Ghostscript allocator has an associated
-structure descriptor, which the caller provides when allocating the object.
-The structure descriptor serves several purposes:
-
-<ul>
-<li>Specifying the size of the object for allocation;
-<li>Providing pointer-enumeration and pointer-relocation procedures for
-the garbage collector;
-<li>Providing an optional finalization procedure to be called when the
-object is freed (either explicitly or automatically).
-</ul>
-
-<p>
-Structure descriptors are read-only, and are normally defined statically
-using one of the large set of <b><tt>gs_private_st_</tt></b> or
-<b><tt>gs_public_st_</tt></b> macros in <a
-href="../src/gsstruct.h">src/gsstruct.h</a>.
-
-<p>
-While the structure descriptor normally specifies the size of the object,
-one can also allocate an array of bytes or objects, whose size is a multiple
-of the size in the descriptor. For this reason, every object stores its
-size as well as a reference to its descriptor.
-
-<p>
-Because the standard Ghostscript garbage collector is conservative and can
-move objects, every object allocated by a Ghostscript allocator must have an
-accurate structure descriptor. If you define a new type of object
-(structure) that will be allocated in storage managed by Ghostscript, you
-<em>must</em> create an accurate descriptor for it, and use that descriptor
-to allocate it. The process of creating accurate descriptors for all
-structures was long and painful, and accounted for many hard-to-diagnose
-bugs.
-
-<p>
-By convention, the structure descriptor for structure type
-<b><tt>xxx_t</tt></b> is named <b><tt>st_xxx</tt></b> (this is preferred),
-or occasionally <b><tt>st_xxx_t</tt></b>.
-
-<p>
-Note that a structure descriptor is only required for objects allocated by
-the Ghostscript allocator. A structure type <b><tt>xxx_t</tt></b> does not
-require a structure descriptor if instances of that type are used
-<em>only</em> in the following ways:
-
-<ul>
-
-<li>Instances are allocated only on the C stack, e.g., as
-<b><tt>xxx_t&nbsp;xxx1,&nbsp;xxx2;</tt></b>, or on the C heap, with
-<b><tt>malloc</tt></b> or through the Ghostscript "wrapper" defined in <a
-href="../src/gsmalloc.h">src/gsmalloc.h</a>.
-
-<li>Pointers to instances are not stored in places where the garbage
-collector will try to trace the pointer.
-
-<li>Code never attempts to get the structure type or size of an instance
-through the allocator API.
-
-</ul>
-
-<p>
-In general, structures without descriptors are problem-prone, and are
-deprecated; in new code, they should only be used if the structure is
-confined to a single .c file and its instances are only allocated on the C
-stack.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsstruct.h">src/gsstruct.h</a>,
-<a href="../src/gsstype.h">src/gsstype.h</a>.
-</dl>
-
-<h4><a name="Garbage_collection"></a>Garbage collection</h4>
-
-<p>
-The allocator architecture is designed to support compacting garbage
-collection. Every object must be able to enumerate all the pointers it
-contains, both for tracing and for relocation. As noted just above, the
-structure descriptor provides procedures that do this.
-
-<p>
-Whether or not a particular allocator type actually provides a garbage
-collector is up to the allocator: garbage collection is invoked through a
-virtual procedure. In practice, however, there are only two useful garbage
-collectors for Ghostscript's own allocator:
-
-<ul>
-<li>The "real" garbage collector associated with the PostScript interpreter,
-described <a href="#Interpreter_GC">below</a>;
-<li>A "non" garbage collector that only merges adjacent free blocks.
-</ul>
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsgc.h">src/gsgc.h</a>,
-<a href="../src/gsnogc.c">src/gsnogc.c</a>,
-<a href="../src/gsnogc.h">src/gsnogc.h</a>.
-</dl>
-
-<h4><a name="Movability"></a>Movability</h4>
-
-<p>
-As just noted, objects are normally movable by the garbage collector.
-However, some objects must be immovable, usually because some other piece of
-software must retain pointers to them. The allocator API includes
-procedures for allocating both movable (default) and immovable objects.
-Note, however, that even immovable objects must be traceable (have a
-structure descriptor), and may be freed, by the garbage collector.
-
-<h4><a name="Parent_hierarchy"></a>Parent hierarchy</h4>
-
-<p>
-When an allocator needs to add memory to the pool that it manages, it
-requests the memory from its <em>parent</em> allocator. Every allocator has
-a pointer to its parent; multiple allocators may share a single parent. The
-ultimate ancestor of all allocators that can expand their pool dynamically
-is an allocator that calls <b><tt>malloc</tt></b>, described <a
-href="#malloc">below</a>. However, especially in embedded environments, an
-allocator may be limited to a fixed-size pool assigned to it when it is
-created.
-
-<h4><a name="Allocator_API"></a>Allocator API</h4>
-
-In summary, the allocator API provides the following principal operations:
-
-<ul>
-<li>Allocate and free movable (default) or immovable objects and strings.
-<li>Return the structure type and size of an object.
-<li>Resize (shrink or grow) movable objects and strings, preserving
-the contents insofar as possible.
-<li>Report the size of the managed pool, and how much of it is in use.
-<li>Register and unregister root pointers for the garbage collector.
-<li>Free the allocator itself.
-<li>Consolidate adjacent free blocks to reduce fragmentation.
-</ul>
-
-<p>
-For details, see <a href="../src/gsmemory.h">src/gsmemory.h</a>.
-
-<p>
-The allocator API also includes one special hook for the PostScript
-interpreter: the concept of stable allocators. See the section on <a
-href="#save_forgetsave_restore"><b><tt>save</tt></b> and
-<b><tt>restore</tt></b></a> below for details.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsmemraw.h">src/gsmemraw.h</a>,
-<a href="../src/gsmemory.c">src/gsmemory.c</a>,
-<a href="../src/gsmemory.h">src/gsmemory.h</a>,
-<a href="../src/gsstruct.h">src/gsstruct.h</a>,
-<a href="../src/gsstype.h">src/gsstype.h</a>.
-</dl>
-
-<h3><a name="Freeing_storage"></a>Freeing storage</h3>
-
-<p>
-Ghostscript's memory management architecture provides three different ways
-to free objects: explicitly, by reference counting, or by garbage
-collection. They provide different safety / performance / convenience
-tradeoffs; we believe that all three are necessary.
-
-<p>
-Objects are always freed as a whole; strings may be freed piecemeal.
-
-<p>
-An object may have an associated finalization procedure, defined in the
-structure descriptor. This procedure is called just before the object is
-freed, independent of which method is being used to free the object. A few
-types of objects have a virtual finalization procedure as well: the
-finalization procedure defined in the descriptor simply calls the one in the
-object.
-
-<h4><a name="Explicit_freeing"></a>Explicit freeing</h4>
-
-<p>
-Objects and strings may be freed explicitly, using the
-<b><tt>gs_free_</tt></b> virtual procedures in the allocator API. It is up
-to the client to ensure that all allocated objects are freed at most once,
-and that there are no dangling pointers.
-
-<p>
-Explicit freeing is the fastest method, but is the least convenient and
-least safe. It is most appropriate when storage is freed in the same
-procedure where it is allocated, or for storage that is known to be
-referenced by only one pointer.
-
-<h4><a name="Reference_counting"></a>Reference counting</h4>
-
-<p>
-Objects may be managed by reference counting. When an object is allocated,
-its reference count may be set to 0 or 1. Subsequently, when the reference
-count is decremented to 0, the object is freed.
-
-<p>
-The reference counting machinery provides its own virtual finalization
-procedure for all reference-counted objects. The machinery calls this
-procedure when it is about to free the object (but not when the object is
-freed in any other way, which is probably a design bug). This is in
-addition to (and called before) any finalization procedure associated with
-the object type.
-
-<p>
-Reference counting is as fast as explicit freeing, but takes more space in
-the object. It is most appropriate for relatively large objects which are
-referenced only from a small set of pointers. Note that reference counting
-cannot free objects that are involved in a pointer cycle (e.g., A -> B -> C
--> A).
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsrefct.h">src/gsrefct.h</a>.
-</dl>
-
-<h4><a name="Real_garbage_collection"></a>(Real) garbage collection</h4>
-
-<p>
-Objects and strings may be freed automatically by a garbage collector. See
-<a href="#Interpreter_GC">below</a>.
-
-<h3><a name="Special_implementations"></a>Special implementations</h3>
-
-<h4><a name="malloc"></a>malloc</h4>
-
-<p>
-As mentioned <a href="#Parent_hierarchy">above</a>, the ultimate ancestor of
-all allocators with an expandable pool is one that calls
-<b><tt>malloc</tt></b>.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsmalloc.h">src/gsmalloc.h</a>,
-<a href="../src/gsmalloc.c">src/gsmalloc.c</a>.
-</dl>
-
-<h4><a name="Locking"></a>Locking</h4>
-
-<p>
-In a multi-threaded environment, if an allocator must be callable from
-multiple threads (for example, if it is used to allocate structures in one
-thread that are passed to, and freed by, another thread), the allocator must
-provide mutex protection. Ghostscript provides this capability in the form
-of a <em>wrapper</em> allocator, that simply forwards all calls to a
-<em>target</em> allocator under protection of a mutex. Using the wrapper
-technique, any allocator can be made thread-safe.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsmemlok.h">src/gsmemlok.h</a>,
-<a href="../src/gsmemlok.c">src/gsmemlok.c</a>.
-</dl>
-
-<h4><a name="Retrying"></a>Retrying</h4>
-
-<p>
-In an embedded environment, job failure due to memory exhaustion is very
-undesirable. Ghostscript provides a wrapper allocator that, when an
-allocation attempt fails, calls a client-provided procedure that can attempt
-to free memory, then ask for the original allocation to be retried. For
-example, such a procedure can wait for a queue to empty, or can free memory
-occupied by caches.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsmemret.h">src/gsmemret.h</a>,
-<a href="../src/gsmemret.c">src/gsmemret.c</a>.
-</dl>
-
-<h3><a name="Standard_implementation"></a>Standard implementation</h3>
-
-<p>
-The standard Ghostscript allocator gets storage from its parent (normally
-the <b><tt>malloc</tt></b> allocator) in large blocks called
-<em>chunks</em>, and then allocates objects up from the low end and strings
-down from the high end. Large objects or strings are allocated in their own
-chunk.
-
-<p>
-The standard allocator maintains a set of free-block lists for small object
-sizes, one list per size (rounded up to the word size), plus a free-block
-list for large objects (but not for objects so large that they get their own
-chunk: when such an object is freed, its chunk is returned to the parent).
-The lists are not sorted; adjacent blocks are only merged if needed.
-
-<p>
-While the standard allocator implements the generic allocator API, and is
-usable with the library alone, it includes a special hook for the PostScript
-interpreter to aid in the efficient allocation of PostScript composite
-objects (arrays and dictionaries). See the section on <a
-href="#Refs">Refs</a> below for details.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/gsalloc.c">src/gsalloc.c</a>,
-<a href="../src/gsalloc.h">src/gsalloc.h</a>,
-<a href="../src/gxalloc.h">src/gxalloc.h</a>,
-<a href="../src/gxobj.h">src/gxobj.h</a>.
-</dl>
-
-<h3><a name="PostScript_interpreter_extensions"></a>PostScript interpreter extensions</h3>
-
-<p>
-The PostScript interpreter uses an allocator that extends the graphic
-library's standard allocator to handle PostScript objects,
-<b><tt>save</tt></b> and <b><tt>restore</tt></b>, and real garbage
-collection.
-
-<h4><a name="Refs"></a>Refs (PostScript "objects")</h4>
-
-<p>
-Ghostscript represents what the PLRM calls PostScript "objects" using a
-structure called a <b><tt>ref</tt></b>, defined in <a
-href="../src/iref.h">src/iref.h</a>; packed refs, used for the elements of
-packed arrays, are defined in <a href="../src/ipacked.h">src/ipacked.h</a>.
-See those files for detailed information.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/ipacked.h">src/ipacked.h</a>,
-<a href="../src/iref.h">src/iref.h</a>.
-</dl>
-
-<p>
-The PLRM calls for two types of "virtual memory" (VM) space: global and
-local. Ghostscript adds a third space, <em>system</em> VM, whose lifetime
-is an entire session -- i.e., it is effectively "permanent". All three
-spaces are subject to garbage collection. There is a separate allocator
-instance for each VM space (actually, two instances each for global and
-local spaces; see <a href="#save_forgetsave_restore">below</a>). In a
-system with multiple contexts and multiple global or local VMs, each global
-or local VM has its own allocator instance(s).
-
-<p>
-Refs that represent PostScript composite objects, and therefore include
-pointers to stored data, include a 2-bit VM space tag to indicate in which
-VM the object data are stored. In addition to system, global, and local VM,
-there is a tag for "foreign" VM, which means that the memory is not managed
-by a Ghostscript allocator at all. Every store into a composite object must
-check for <b><tt>invalidaccess</tt></b>: the VM space tag values are chosen
-to help make this check efficient. See <a
-href="../src/ivmspace.h">src/ivmspace.h</a>, <a
-href="../src/iref.h">src/iref.h</a>, and <a
-href="../src/store.h">src/store.h</a> for details.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/ivmspace.h">src/ivmspace.h</a>.
-</dl>
-
-<p>
-PostScript composite objects (arrays and dictionaries) are usually small.
-Using a separate memory manager object for each composite object would waste
-a lot of space for object headers. Therefore, the interpreter's memory
-manager packs multiple composite objects (also called "ref-containing
-objects") into a single memory manager object, similar to the way the memory
-manager packs multiple objects into a chunk (see <a
-href="#Standard_implementation">above</a>). See <a
-href="../src/gxalloc.h">src/gxalloc.h</a> for details. This memory manager
-object has a structure descriptor, like all other memory manager objects.
-
-<p>
-Note that the <b><tt>value.pdict</tt></b>, <b><tt>value.refs</tt></b>, or
-<b><tt>value.packed</tt></b> member of a ref must point to a PostScript
-composite object, and therefore can point into the middle of a memory
-manager object. This requires special handling by the garbage collector (<a
-href="#Interpreter_GC">q.v.</a>).
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/ialloc.c">src/ialloc.c</a>,
-<a href="../src/ialloc.h">src/ialloc.h</a>,
-<a href="../src/iastate.h">src/iastate.h</a>,
-<a href="../src/iastruct.h">src/iastruct.h</a>,
-<a href="../src/ilocate.c">src/ilocate.c</a>,
-<a href="../src/imemory.h">src/imemory.h</a>,
-<a href="../src/istruct.h">src/istruct.h</a>.
-</dl>
-
-<h4><a name="save_forgetsave_restore"></a>save/.forgetsave/restore</h4>
-
-<p>
-In addition to <b><tt>save</tt></b> and <b><tt>restore</tt></b>, Ghostscript
-provides a <b><tt>.forgetsave</tt></b> operator that makes things as though
-a given <b><tt>save</tt></b> had never happened. (In data base terminology,
-<b><tt>save</tt></b> is "begin transaction", <b><tt>restore</tt></b> is
-"abort transaction", and <b><tt>.forgetsave</tt></b> is "end/commit
-transaction"). <b><tt>.forgetsave</tt></b> was implemented for a specific
-commercial customer (who may no longer even be using it): it was a pain to
-make work, but it's in the code now, and should be maintained. See the
-extensive comments in <a href="../src/isave.c">src/isave.c</a> for more
-information about how these operations work.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/idosave.h">src/idosave.h</a>,
-<a href="../src/isave.c">src/isave.c</a>,
-<a href="../src/isave.h">src/isave.h</a>,
-<a href="../src/isstate.h">src/isstate.h</a>,
-<a href="../src/store.h">src/store.h</a>.
-</dl>
-
-<h4><a name="Stable_allocators"></a>Stable allocators</h4>
-
-<p>
-Even though <b><tt>save</tt></b> and <b><tt>restore</tt></b> are concepts
-from the PostScript interpreter, the generic allocator architecture and API
-include a feature to support them, called <em>stable</em> allocators. Every
-allocator has an associated stable allocator, which tags pointers with the
-same VM space number but which is not subject to <b><tt>save</tt></b> and
-<b><tt>restore</tt></b>. System VM is intrinsically stable (its associated
-stable allocator is the same allocator), so there are only 5 allocators in
-ordinary single-context usage: system VM, stable global VM, ordinary global
-VM, stable local VM, ordinary local VM.
-
-<p>
-The reason that we cannot simply allocate all stable objects in system VM is
-that their refs must still be tagged with the correct VM space number, so
-that the check against storing pointers from global VM to local VM can be
-enforced properly.
-
-<p>
-All PostScript objects are normally allocated with the non-stable
-allocators. The stable allocators should be used with care, since using
-them can easily create dangling pointers: if storage allocated with a stable
-allocator contains any references to PostScript objects, the client is
-responsible for ensuring that the references don't outlive the referenced
-objects, normally by ensuring that any such referenced objects are allocated
-at the outermost <b><tt>save</tt></b> level. (The original reason for
-wanting stable allocators was the PostScript stacks, which are essentially
-PostScript arrays but are not subject to <b><tt>save</tt></b> and
-<b><tt>restore</tt></b>.) For more examples, search the sources for
-references to <b><tt>gs_memory_stable</tt></b>.
-
-<h4><a name="Interpreter_GC"></a>Garbage collection</h4>
-
-<p>
-The interpreter's garbage collector is a compacting, non-conservative,
-mark-and-sweep collector.
-
-<ul>
-<li>It compacts storage because that is the only way to avoid permanent
-sandbars, which is essential in limited-memory environments.
-<li>It is non-conservative because conservative collectors (which attempt
-to determine whether arbitrary bit patterns are pointers) cannot compact.
-<li>It uses mark-and-sweep, rather than a more modern copying approach,
-because it cannot afford the extra memory required for copying.
-</ul>
-
-<p>
-Roots for tracing must be registered with the allocator. Most roots are
-registered during initialization.
-
-<p>
-"Mark-and-sweep" is a bit of a misnomer. The garbage collector actually has
-5 main phases:
-
-<ul>
-<li>Sweep to clear marks;
-<li>Trace and mark;
-<li>Sweep to compute relocation;
-<li>Sweep to relocate pointers;
-<li>Sweep and compact.
-</ul>
-
-<p>
-There is some extra complexity to handle collecting local VM only. In this
-case, all pointers in global VM are treated as roots, and global VM is not
-compacted.
-
-<p>
-As noted above, PostScript arrays and strings can have refs that point
-within them (because of <b><tt>getinterval</tt></b>). Thus the garbage
-collector must mark each element of an array, and even each byte of a
-string, individually. Specifically, it marks objects, refs, and strings
-using 3 different mechanisms:
-
-<ul>
-
-<li>Objects have a mark bit in their header: see
-<a href="../src/gxobj.h">src/gxobj.h</a>,
-
-<li>Refs and packed refs have a reserved mark bit: see <a
-href="../src/iref.h">src/iref.h</a> and <a
-href="../src/ipacked.h">src/ipacked.h</a>.
-
-<li>Strings use a separate bit table, with one bit per string byte: see
-<a href="../src/gxalloc.h">src/gxalloc.h</a>,
-
-</ul>
-
-<p>
-Similarly, it records the relocation information for objects, refs, and
-strings differently:
-
-<ul>
-
-<li>Objects record relocation in the object header.
-
-<li>Refs record relocation in unused fields of refs such as nulls that
-don't use their <b><tt>value</tt></b> field. Every memory manager object
-that stores ref-containing objects as described above has an extra, unused
-ref at the end for this purpose.
-
-<li>Strings use a separate relocation table.
-
-</ul>
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/igc.c">src/igc.c</a>,
-<a href="../src/igc.h">src/igc.h</a>,
-<a href="../src/igcref.c">src/igcref.c</a>,
-<a href="../src/igcstr.c">src/igcstr.c</a>,
-<a href="../src/igcstr.h">src/igcstr.h</a>,
-<a href="../src/ireclaim.c">src/ireclaim.c</a>.
-</dl>
-
-<hr>
-
-<h2><a name="Portability"></a>Portability</h2>
-
-<p>
-One of Ghostscript's most important features is its great portability across
-platforms (CPUs, operating systems, compilers, and build tools). The code
-supports portability through two mechanisms:
-
-<ul>
-
-<li><a href="#Structural">Structural mechanisms</a> -- segregating
-platform-dependent information into files in a particular way.
-
-<li><a href="#Coding">Coding standards</a> -- avoiding relying on byte
-order, scalar size, and platform-specific compiler or library features.
-
-</ul>
-
-<h3><a name="Structural"></a>Structural</h3>
-
-<h4><a name="CPU_and_compiler"></a>CPU and compiler</h4>
-
-<p>
-Ghostscript attempts to discover characteristics of the CPU and compiler
-automatically during the build process, by compiling and then executing a
-program called <b><tt>genarch</tt></b>. <b><tt>genarch</tt></b> generates a
-file <b><tt>obj/arch.h</tt></b>, which almost all Ghostscript files then
-include. This works well for things like word size, byte order, and
-floating point representation, but it can't determine whether or not a
-compiler supports a particular feature, because if a feature is absent, the
-compilation may fail.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/genarch.c">src/genarch.c</a>,
-<a href="../obj/arch.h">obj/arch.h</a>.
-</dl>
-
-<h4><a name="Library_headers"></a>Library headers</h4>
-
-<p>
-Despite the supposed standardization of ANSI C, platforms vary considerably
-in where (and whether) they provide various standard library facilities.
-Currently, Ghostscript's build process doesn't attempt to sort this out
-automatically. Instead, for each library header file
-<b><tt>&lt;</tt></b><em>xxx</em><b><tt>.h&gt;</tt></b> there is a
-corresponding Ghostscript source file
-<b><tt>src/</tt></b><em>xxx</em><b><tt>_.h</tt></b>, containing a set of
-compile-time conditionals that attempt to select the correct platform header
-file, or in some cases substitute Ghostscript's own code for a missing
-facility. You may need to edit these files when moving to platforms with
-unusually non-standard libraries.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/ctype_.h">src/ctype_.h</a>,
-<a href="../src/dirent_.h">src/dirent_.h</a>,
-<a href="../src/dos_.h">src/dos_.h</a>,
-<a href="../src/errno_.h">src/errno_.h</a>,
-<a href="../src/fcntl_.h">src/fcntl_.h</a>,
-<a href="../src/jerror_.h">src/jerror_.h</a>,
-<a href="../src/malloc_.h">src/malloc_.h</a>,
-<a href="../src/math_.h">src/math_.h</a>,
-<a href="../src/memory_.h">src/memory_.h</a>,
-<a href="../src/pipe_.h">src/pipe_.h</a>,
-<a href="../src/png_.h">src/png_.h</a>,
-<a href="../src/stat_.h">src/stat_.h</a>,
-<a href="../src/stdio_.h">src/stdio_.h</a>,
-<a href="../src/string_.h">src/string_.h</a>,
-<a href="../src/time_.h">src/time_.h</a>,
-<a href="../src/unistd_.h">src/unistd_.h</a>,
-<a href="../src/vmsmath.h">src/vmsmath.h</a>,
-<a href="../src/windows_.h">src/windows_.h</a>,
-<a href="../src/x_.h">src/x_.h</a>.
-</dl>
-
-<p>
-It has been suggested that the GNU <b><tt>configure</tt></b> scripts do the
-above better, for Unix systems, than Ghostscript's current methods. While
-this may be true, we have found <b><tt>configure</tt></b> scripts difficult
-to write, understand, and maintain; and the <b><tt>autoconf</tt></b> tool
-for generating <b><tt>configure</tt></b> scripts, which we found easy to
-use, doesn't cover much of the ground that Ghostscript requires.
-
-<h4><a name="Cross_platform_APIs"></a>Cross-platform APIs</h4>
-
-<p>
-For a few library facilities that are available on all platforms but are not
-well standardized, or that may need to be changed for special environments,
-Ghostscript defines its own APIs. It is an architectural property of
-Ghostscript that the implementations of these APIs are the only .c files for
-which the choice of platform (as opposed to choices of drivers or optional
-features) determines whether they are compiled and linked into an
-executable.
-
-<dl>
-
-<dt>
-API:
-<dd>
-<a href="../src/gp.h">src/gp.h</a>,
-<a href="../src/gpcheck.h">src/gpcheck.h</a>,
-<a href="../src/gpgetenv.h">src/gpgetenv.h</a>,
-<a href="../src/gpmisc.h">src/gpmisc.h</a>,
-<a href="../src/gpsync.h">src/gpsync.h</a>.
-
-<dt>
-Implementation files shared among multiple platforms:
-<dd>
-<a href="../src/gp_getnv.c">src/gp_getnv.c</a>,
-<a href="../src/gp_mktmp.c">src/gp_mktmp.c</a>,
-<a href="../src/gp_nsync.c">src/gp_nsync.c</a>,
-<a href="../src/gp_psync.c">src/gp_psync.c</a>,
-<a href="../src/gp_strdl.c">src/gp_strdl.c</a>,
-<a href="../src/gpmisc.c">src/gpmisc.c</a>.
-
-<dt>
-Platform-specific implementation files:
-<dd>
-<a href="../src/gp_dosfe.c">src/gp_dosfe.c</a>,
-<a href="../src/gp_dosfs.c">src/gp_dosfs.c</a>,
-<a href="../src/gp_dvx.c">src/gp_dvx.c</a>,
-<a href="../src/gp_iwatc.c">src/gp_iwatc.c</a>,
-<a href="../src/gp_msdos.c">src/gp_msdos.c</a>,
-<a href="../src/gp_mshdl.c">src/gp_mshdl.c</a>,
-<a href="../src/gp_msio.c">src/gp_msio.c</a>,
-<a href="../src/gp_mslib.c">src/gp_mslib.c</a>,
-<a href="../src/gp_mswin.c">src/gp_mswin.c</a>,
-<a href="../src/gp_mswin.h">src/gp_mswin.h</a>,
-<a href="../src/gp_ntfs.c">src/gp_ntfs.c</a>,
-<a href="../src/gp_os2.c">src/gp_os2.c</a>,
-<a href="../src/gp_os9.c">src/gp_os9.c</a>,
-<a href="../src/gp_stdia.c">src/gp_stdia.c</a>,
-<a href="../src/gp_stdin.c">src/gp_stdin.c</a>,
-<a href="../src/gp_sysv.c">src/gp_sysv.c</a>,
-<a href="../src/gp_unifn.c">src/gp_unifn.c</a>,
-<a href="../src/gp_unifs.c">src/gp_unifs.c</a>,
-<a href="../src/gp_unix.c">src/gp_unix.c</a>,
-<a href="../src/gp_vms.c">src/gp_vms.c</a>,
-<a href="../src/gp_wgetv.c">src/gp_wgetv.c</a>,
-<a href="../src/gp_win32.c">src/gp_win32.c</a>,
-<a href="../src/gp_wsync.c">src/gp_wsync.c</a>.
-
-</dl>
-
-<h4><a name="Makefiles"></a>Makefiles</h4>
-
-<p>
-For information on the structure and conventions used within makefiles, see
-the <a href="#Makefile_structure">Makefile structure</a> section above.
-
-<p>
-Ghostscript's makefiles are structured very similarly to the cross-platform
-library files. The great majority of the makefiles are portable across all
-platforms and all versions of <b><tt>make</tt></b>. To achieve this, the
-platform-independent makefiles must obey two constraints beyond those of the
-POSIX <b><tt>make</tt></b> program:
-
-<ul>
-
-<li>No conditionals or <b><tt>include</tt></b>s are allowed. While most
-<b><tt>make</tt></b> programs now provide some form of conditional execution
-and some form of inclusion, there is no agreement on the syntax.
-(Conditionals and includes are allowed in platform-dependent makefiles; in
-fact, an inclusion facility is required.)
-
-<li>There must be a space on both sides of the : that separates the target
-of a rule from its dependencies. This is required for compatibility with
-the OpenVMS <b><tt>MMS</tt></b> and <b><tt>MMK</tt></b> programs.
-
-</ul>
-
-<p>
-The top-level makefile for each platform (where "platform" includes the OS,
-the compiler, and the flavor of <b><tt>make</tt></b>) contains all the build
-options, plus <b><tt>include</tt></b>s for the generic makefiles and any
-platform-dependent makefiles that are shared among multiple platforms.
-
-<p>
-While most of the top-level makefiles build a PostScript and/or PDF
-interpreter configuration, there are also a few makefiles that build a test
-program that only uses the graphics library without any language
-interpreter. Among other things, this can be helpful in verifying that no
-accidental dependencies on the interpreter have crept into the library or
-drivers.
-
-<p>
-For families of similar platforms, the question arises whether to use
-multiple top-level makefiles, or whether to use a single top-level makefile
-that may require minor editing for some (or all) platforms. Ghostscript
-currently uses the following top-level makefiles for building interpreter
-configurations:
-
-<ul>
-
-<li>Unix (including GNU/Linux):
-<ul>
-<li><a href="../src/Makefile.in">src/Makefile.in</a>,
-template for autoconf-based builds.
-<li><a href="../src/unix-gcc.mak">src/unix-gcc.mak</a>,
-for Unix with gcc.
-<li><a href="../src/unixansi.mak">src/unixansi.mak</a>,
-for Unix with an ANSI C compiler other than gcc.
-</ul>
-
-<li>PC:
-<ul>
-<li><a href="../src/bcwin32.mak">src/bcwin32.mak</a>,
-for MS Windows with Borland C++ Builder.
-<li><a href="../src/msvc32.mak">src/msvc32.mak</a>,
-for MS Windows with Microsoft Visual C (MSVC).
-<li><a href="../src/os2.mak">src/os2.mak</a>,
-for MS-DOS or OS/2 GCC/EMX environment.
-<li><a href="../src/watc.mak">src/watc.mak</a>,
-for extended MS-DOS with Watcom C.
-<li><a href="../src/watcw32.mak">src/watcw32.mak</a>,
-for MS Windows with Watcom C.
-</ul>
-
-<li>Macintosh:
-<ul>
-<li><a href="../src/macosx.mak">src/macosx.mak</a>,
-commandline makefile for MacOS X.
-<li><a href="../src/macos-mcp.mak">src/macos-mcp.mak</a>,
-dummy makefile to generate an xml project file for Metrowerks Codewarrior.
-</ul>
-
-
-<li>Other:
-<ul>
-<li><a href="../src/all-arch.mak">src/all-arch.mak</a>,
-for building on many Unix systems in a networked test environment.
-<li><a href="../src/dvx-gcc.mak">src/dvx-gcc.mak</a>,
-for DesqView/X with gcc.
-<li><a href="../src/openvms.mak">src/openvms.mak</a>,
-for OpenVMS with Digital's CC compiler and the MMS build program.
-<li><a href="../src/openvms.mmk">src/openvms.mmk</a>,
-for OpenVMS with Digital's CC compiler and the MMK build program.
-</ul>
-
-</ul>
-
-<p>
-The following top-level makefiles build the library test program:
-
-<ul>
-<li><a href="../src/ugcclib.mak">src/ugcclib.mak</a>,
-on Unix with gcc.
-<li><a href="../src/msvclib.mak">src/msvclib.mak</a>,
-on MS Windows with MSVC.
-<li><a href="../src/watclib.mak">src/watclib.mak</a>,
-on extended MS-DOS with Watcom C.
-</ul>
-
-<p>
-The MSVC makefiles may require editing to select between different versions
-of MSVC, since different versions may have slightly incompatible command
-line switches or customary installation path names. The Unix makefiles
-often require editing to deal with differing library path names and/or
-library names. For details, see <a href="Make.htm#Unix_build">the Unix
-section</a> of the documentation for building Ghostscript.
-
-<dl>
-
-<dt>
-Library test program:
-<dd>
-<a href="../src/gslib.c">src/gslib.c</a>.
-
-<dt>
-Platform-independent makefiles:
-<dd>
-
-<dl>
-
-<dt>
-Graphics library and support:
-<dd>
-<a href="../src/contrib.mak">src/contrib.mak</a>,
-<a href="../src/devs.mak">src/devs.mak</a>,
-<a href="../src/gnudevs.mak">src/gnudevs.mak</a>,
-<a href="../src/gs.mak">src/gs.mak</a>,
-<a href="../src/lib.mak">src/lib.mak</a>,
-<a href="../src/version.mak">src/version.mak</a>.
-
-<dt>
-PostScript interpreter and fonts:
-<dd>
-<a href="../src/cfonts.mak">src/cfonts.mak</a>,
-<a href="../src/int.mak">src/int.mak</a>,
-<a href="../src/wmin.mak">src/wmin.mak</a>.
-
-<dt>
-Third-party libraries:
-<dd>
-<a href="../src/icclib.mak">src/icclib.mak</a>,
-<a href="../src/ijs.mak">src/ijs.mak</a>,
-<a href="../src/jpeg.mak">src/jpeg.mak</a>,
-<a href="../src/libpng.mak">src/libpng.mak</a>,
-<a href="../src/zlib.mak">src/zlib.mak</a>.
-
-</dl>
-
-<dt>
-Shared platform-dependent makefiles:
-<dd>
-
-<dl>
-
-<dt>
-Unix:
-<dd>
-<a href="../src/unix-aux.mak">src/unix-aux.mak</a>,
-<a href="../src/unix-dll.mak">src/unix-dll.mak</a>,
-<a href="../src/unix-end.mak">src/unix-end.mak</a>,
-<a href="../src/unixhead.mak">src/unixhead.mak</a>,
-<a href="../src/unixinst.mak">src/unixinst.mak</a>,
-<a href="../src/unixlink.mak">src/unixlink.mak</a>.
-
-<dt>
-Microsoft Windows and MS-DOS:
-<dd>
-<a href="../src/msvccmd.mak">src/msvccmd.mak</a>,
-<a href="../src/msvctail.mak">src/msvctail.mak</a>,
-<a href="../src/pcwin.mak">src/pcwin.mak</a>,
-<a href="../src/wccommon.mak">src/wccommon.mak</a>,
-<a href="../src/wctail.mak">src/wctail.mak</a>,
-<a href="../src/winint.mak">src/winint.mak</a>,
-<a href="../src/winlib.mak">src/winlib.mak</a>,
-<a href="../src/winplat.mak">src/winplat.mak</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../src/dvx-head.mak">src/dvx-head.mak</a>,
-<a href="../src/dvx-tail.mak">src/dvx-tail.mak</a>,<br>
-<a href="../src/macos-fw.mak">src/macos-fw.mak</a>,
-for building as a MacOS X Framework.
-
-</dl>
-
-</dl>
-
-<h3><a name="Coding"></a>Coding</h3>
-
-<p>
-Coding for portability requires avoiding both <em>explicit</em>
-dependencies, such as platform-dependent <b><tt>#ifdef</tt></b>s, and
-<em>implicit</em> dependencies, such as dependencies on byte order or the
-size of the integral types.
-
-<h4><a name="Explicit_dependencies"></a>Explicit dependencies</h4>
-
-<p>
-The platform-independent .c files never, ever, use <b><tt>#ifdef</tt></b> or
-<b><tt>#if</tt></b> to select code for specific platforms. Instead, we
-always try to characterize some abstract property that is being tested. For
-example, rather than checking for macros that are defined on those specific
-platforms that have 64-bit <b><tt>long</tt></b> values, we define a macro
-<b><tt>ARCH_SIZEOF_LONG</tt></b> that can then be tested. Such macros are
-always defined in a .h file, either automatically in <b><tt>arch.h</tt></b>,
-or explicitly in a <em>xxx</em><b><tt>_.h</tt></b> file, as described in
-earlier sections.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="../src/std.h">src/std.h</a>,
-<a href="../src/stdpre.h">src/stdpre.h</a>.
-</dl>
-
-<h4><a name="Implicit_dependencies"></a>Implicit dependencies</h4>
-
-<p>
-The most common source of byte ordering dependencies is casting between
-types (T1 *) and (T2 *) where T1 and T2 are numeric types that aren't merely
-signed/unsigned variants of each other. To avoid this, the only casts
-allowed in the code are between numeric types, from a pointer type to a long
-integral type, and between pointer types.
-
-<p>
-Ghostscript's code assumes the following about the sizes of various types:
-
-<dl>
-<dt>char<dd>8 bits
-<dt>short<dd>16 bits
-<dt>int<dd>32 or 64 bits
-<dt>long<dd>32 or 64 bits
-<dt>float<dd>32 bits (may work with 64 bits)
-<dt>double<dd>64 bits (may work with 128 bits)
-</dl>
-
-<p>
-The code does not assume that the <b><tt>char</tt></b> type is signed (or
-unsigned); except for places where the value is always a literal string, or
-for interfacing to library procedures, the code uses <b><tt>byte</tt></b> (a
-Ghostscript synonym for <b><tt>unsigned char</tt></b>) almost everywhere.
-
-<p>
-Pointers are signed on some platforms and unsigned on others. In the few
-places in the memory manager where it's necessary to reliably order-compare
-(as opposed to equality-compare) pointers that aren't known to point to the
-same allocated block of memory, the code uses the
-<b><tt>PTR_</tt></b><em>relation</em> macros rather than direct comparisons.
-
-<p>
-See the files listed above for other situations where a macro provides
-platform-independence or a workaround for bugs in specific compilers or
-libraries (of which there are a distressing number).
-
-<h4><a name="Platform_specific_code"></a>Platform-specific code</h4>
-
-<p>
-There are some features that are inherently platform-specific:
-
-<ul>
-
-<li>Microsoft Windows requires a lot of special top-level code, and also has
-an installer and uninstaller.
-
-<li>OS/2 requires a little special code.
-
-<li>MacOS also requires special top-level code (now distributed with the
-standard Ghostscript package).
-
-<li>All platforms supporting DLLs (currently all three of the above) share
-some special top-level code.
-
-</ul>
-
-<dl>
-
-<dt>
-MS Windows files:
-<dd>
-<a href="../src/dpmain.c">src/dpmain.c</a>,
-<a href="../src/dwdll.c">src/dwdll.c</a>,
-<a href="../src/dwdll.h">src/dwdll.h</a>,
-<a href="../src/dwimg.c">src/dwimg.c</a>,
-<a href="../src/dwimg.h">src/dwimg.h</a>,
-<a href="../src/dwinst.cpp">src/dwinst.cpp</a>,
-<a href="../src/dwinst.h">src/dwinst.h</a>,
-<a href="../src/dwmain.c">src/dwmain.c</a>,
-<a href="../src/dwmain.h">src/dwmain.h</a>,
-<a href="../src/dwmainc.c">src/dwmainc.c</a>,
-<a href="../src/dwnodll.c">src/dwnodll.c</a>,
-<a href="../src/dwreg.c">src/dwreg.c</a>,
-<a href="../src/dwreg.h">src/dwreg.h</a>,
-<a href="../src/dwsetup.cpp">src/dwsetup.cpp</a>,
-<a href="../src/dwsetup.h">src/dwsetup.h</a>,
-<a href="../src/dwtext.c">src/dwtext.c</a>,
-<a href="../src/dwtext.h">src/dwtext.h</a>,
-<a href="../src/dwuninst.cpp">src/dwuninst.cpp</a>,
-<a href="../src/dwuninst.h">src/dwuninst.h</a>,
-<a href="../src/gp_msdll.c">src/gp_msdll.c</a>,
-<a href="../src/gp_mspol.c">src/gp_mspol.c</a>,
-<a href="../src/gp_msprn.c">src/gp_msprn.c</a>,
-<a href="../src/gs16spl.c">src/gs16spl.c</a>,
-<a href="../src/gsdllwin.h">src/gsdllwin.h</a>.
-
-<dt>
-OS/2 files:
-<dd>
-<a href="../src/gsdllos2.h">src/gsdllos2.h</a>.
-
-<dt>
-Unix files:
-<dd>
-<a href="../src/dxmain.c">src/dxmain.c</a>.
-<a href="../src/dxmainc.c">src/dxmainc.c</a>.
-
-<dt>
-Macintosh files:
-<dd>
-<a href="../src/gdevmac.c">src/gdevmac.c</a>.
-<a href="../src/gdevmac.h">src/gdevmac.h</a>.
-<a href="../src/gdevmacpictop.h">src/gdevmacpictop.h</a>.
-<a href="../src/gdevmacttf.h">src/gdevmacttf.h</a>.
-<a href="../src/gdevmacxf.c">src/gdevmacxf.c</a>.
-<a href="../src/gp_mac.c">src/gp_mac.c</a>.
-<a href="../src/gp_mac.h">src/gp_mac.h</a>.
-<a href="../src/gp_macio.c">src/gp_macio.c</a>.
-<a href="../src/macgenmcpxml.sh">src/macgenmcpxml.sh</a>.
-<a href="../src/macsysstat.h">src/macsysstat.h</a>.
-<a href="../src/macsystypes.h">src/macsystypes.h</a>.
-
-<dt>
-VMS files:
-<dd>
-<a href="../src/vms_x_fix.h">src/vms_x_fix.h</a>.
-
-<dt>
-DLL files:
-<dd>
-<a href="../src/gsdll.c">src/gsdll.c</a>,
-<a href="../src/gsdll.h">src/gsdll.h</a>,
-<a href="../src/gdevdsp.c">src/gdevdsp.c</a>,
-<a href="../src/gdevdsp.h">src/gdevdsp.h</a>,
-<a href="../src/gdevdsp2.h">src/gdevdsp2.h</a>,
-<a href="../src/iapi.c">src/iapi.c</a>,
-<a href="../src/iapi.h">src/iapi.h</a>,
-<a href="../src/idisp.c">src/idisp.c</a>,
-<a href="../src/idisp.h">src/idisp.h</a>.
-<p>
-The new DLL interface (new as of 7.0) is especially useful with the
-new display device, so it is included here. Both are due to Russell
-Lang.
-
-</dl>
-
-
-<hr>
-
-<h2><a name="Adding_features_and_options"></a>Adding features and options</h2>
-
-<p>
-[Ray, please supply more information about what you want here]
-
-<h2><a name="Troubleshooting"></a>Troubleshooting</h2>
-
-<p>
-The Ghostscript code has many tracing and debugging features that can be
-enabled at run time using the <b><tt>-Z</tt></b> command line switch, if the
-executable was compiled with <b><tt>DEBUG</tt></b> defined. One
-particularly useful combination is <b><tt>-Z@\?</tt></b>, which fills free
-memory blocks with a pattern and also turns on run-time memory consistency
-checking. For more information, see <a
-href="Use.htm#Debugging">doc/Use.htm#Debugging</a>; you can also search for
-occurrences of <b><tt>if_debug</tt></b> or <b><tt>gs_debug_c</tt></b> in the
-source code. Note that many of these features are in the graphics library
-and do not require a PostScript interpreter.
-
-<p>
-The code also contains many run-time procedures whose only purpose is to be
-called from the debugger to print out various data structures, including all
-the procedures in <a href="../src/idebug.c">src/idebug.c</a> (for the
-PostScript interpreter) and the <b><tt>debug_dump_</tt></b> procedures in <a
-href="../src/gsmisc.c">src/gsmisc.c</a>.
-
-<dl>
-<dt>
-Files:
-<dd>
-<a href="Use.htm#Debugging">doc/Use.htm#Debugging</a>,
-<a href="../src/gdebug.h">src/gdebug.h</a>,
-<a href="../src/gsmdebug.h">src/gsmdebug.h</a>,
-<a href="../src/idebug.h">src/idebug.h</a>,
-<a href="../src/idebug.c">src/idebug.c</a>.
-</dl>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2001 artofcode LLC.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Devices.htm b/Master/xemtex/doc/ghostscript/Devices.htm
deleted file mode 100644
index 57d39eec9da..00000000000
--- a/Master/xemtex/doc/ghostscript/Devices.htm
+++ /dev/null
@@ -1,6046 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Details of Ghostscript output devices</title>
-<!-- $Id: Devices.htm,v 1.34.2.15.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: devices.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Details of Ghostscript output devices</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Measurements">Notes on measurements</a>
-<li><a href="#IJS">IJS - Inkjet and other raster devices</a>
-<li><a href="#Win">MS Windows printers</a>
-<li><a href="#File_formats">File formats</a>
-<ul>
-<li><a href="#JFIF">JPEG file format (JFIF)</a>
-<li><a href="#TIFF">TIFF file formats</a>
-</ul>
-<li><a href="#Display_devices">Display devices</a>
-<ul>
-<li><a href="#x11_devices">X Window System</a>
-</ul>
-<li><a href="#HP_ijs">HP Deskjet official drivers</a>
-<li><a href="#STP">Gimp-Print (stp) drivers</a>
-<li><a href="#HP_color_inkjet">Other H-P color inkjet printers</a>
-<ul>
-<li><a href="#HP_gdevcdj">Drivers contained in <b><tt>gdevcdj.c</tt></b></a>
-<li><a href="#HP_paper_size">Default paper size</a>
-<li><a href="#HP_limits">Deskjet physical limits</a>
-<li><a href="#HP_command_line">Printer properties (command-line parameters)</a>
-<ul>
-<li><a href="#HP_bpp">Bits per pixel</a>
-<li><a href="#HP_deskjet_properties">Deskjet properties</a>
-<li><a href="#HP_paintjet_properties">Paintjet XL300 / Paintjet XL properties</a>
-</ul>
-<li><a href="#HP_gamma">Gamma correction</a>
-<li><a href="#HP_resolution_enhance">HP's resolution-enhanced mode for Inkjet printers</a>
-<li><a href="#HP_tips">General tips</a>
-</ul>
-<li><a href="#BJC_8200">Canon BJC-8200 printer</a>
-<li><a href="#BJC">Other Canon BubbleJet (BJC) printers</a>
-<ul>
-<li><a href="#BJC_history">History</a>
-<li><a href="#BJC_build">Configuring and building the BJC drivers</a>
-<ul>
-<li><a href="#BJC_defaults">Modify values in <b><tt>gdevbjc.h</tt></b></a>
-<li><a href="#BJC_CMYK_RGB">CMYK-to-RGB color conversion</a>
-<li><a href="#BJC_vertical_centering">Vertical centering of the printable area</a>
-<li><a href="#BJC_margins">Page margins</a>
-<li><a href="#BJC_compile">Makefile and compilation</a>
-</ul>
-<li><a href="#BJC_usage">Use of the drivers</a>
-<ul>
-<li><a href="#BJC_options">Supported Options and Defaults</a>
-<li><a href="#BJC_device_info">Device information</a>
-<li><a href="#BJC_HW_margins">Hardware margins</a>
-<li><a href="#BJC_PPD">PostScript printer description (PPD) files</a>
-<li><a href="#BJC_PPD_custom">Customizing the PPD files</a>
-</ul>
-<li><a href="#BJC_bugs">How to report problems</a>
-<li><a href="#BJC_acks">Acknowledgements</a>
-</ul>
-<li><a href="#STC_epson_stylus">Epson Stylus color printer (see also <b><tt>uniprint</tt></b>)</a>
-<ul>
-<li><a href="#STC_usage">Usage</a>
-<li><a href="#STC_options">Options</a>
-<li><a href="#STC_FAQ">Application note and FAQ</a>
-<ul>
-<li><a href="#STC_FAQ_A3">Support for A3 paper</a>
-<li><a href="#STC_FAQ_margins">Margins, PageSize</a>
-<li><a href="#STC_FAQ_II_IIS_1500">Stylus Color II / IIs and 1500</a>
-</ul>
-<li><a href="#STC_recommendations">Recommendations</a>
-<ul>
-<li><a href="#STC_dither_experiment">Color dithering experiments with <b><tt>gdevstc</tt></b> 1.21</a>
-</ul>
-<li><a href="#STC_color_transform">Color transformation</a>
-<li><a href="#STC_CAM"><b><tt>ColorAdjustMatrix</tt></b></a>
-<li><a href="#STC_RGBCMYK_coding">RGB / CMYK coding and transfer, and <b><tt>BitsPerPixel</tt></b></a>
-<li><a href="#What_is_weaving">What is weaving?</a>
-<li><a href="#STC_print_modes">Print mode parameters</a>
-<ul>
-<li><a href="#STC_unidirectional"><b><tt>Unidirectional</tt></b></a>
-<li><a href="#STC_noweave"><b><tt>Microweave</tt></b>, <b><tt>noWeave</tt></b> and <b><tt>OutputCode=deltarow</tt></b></a>
-<li><a href="#STC_model"><b><tt>Model</tt></b></a>
-</ul>
-<li><a href="#STC_Pitfalls">Bugs and pitfalls</a>
-<li><a href="#STC_Tests">Tests</a>
-<ul>
-<li><a href="#STC_OutputCodes">The various OutputCodes</a>
-<li><a href="#STC_printing_time">Printing time related to other options</a>
-</ul>
-<li><a href="#STC_acks">Acknowledgments</a>
-</ul>
-<li><a href="#Uniprint">uniprint, a flexible unified printer driver</a>
-<ul>
-<li><a href="#Uni_state">The state of this driver</a>
-<li><a href="#Uni_background">Notes on <b><tt>uniprint</tt></b>'s background</a>
-<li><a href="#Uni_make_pfile">Godzilla's guide to the creation of Unified Printer Parameter (<b><tt>.upp</tt></b>) files</a>
-<li><a href="#Uni_all_parameters">All parameters in brief</a>
-<li><a href="#Uni_honors"><b><tt>Uniprint</tt></b>'s Roll of Honor</a>
-<li><a href="#Uni_weaving_howto"><b><tt>Uniprint</tt></b> weaving parameters howto</a></li>
-<li><a href="#Uni_esc300">Extension to <b><tt>uniprint</tt></b> for the Epson Stylus Color 300</a></li>
-</ul>
-<li><a href="#SPARCprinter">Sun SPARCprinter</a>
-<ul>
-<li><a href="#SPARC_install">Installation</a>
-<li><a href="#SPARC_problems">Problems</a>
-</ul>
-<li><a href="#Apple">Apple dot matrix printer</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>. You may also be interested in <a href="Make.htm">how to
-build Ghostscript</a> and <a href="Install.htm">install it</a>, as well as
-the description of the <a href="Drivers.htm">driver interface</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Measurements"></a>Notes on measurements</h2>
-
-<p>
-Several different important kinds of measures appear throughout this
-document: inches, centimeters and millimeters, points, and bits per pixel.
-
-<dl>
-<dt><b>Inches</b>
-<dd>1 inch equals 2.54 centimeters. The inch measure is sometimes
-represented by "<b>in</b>" or a quotation mark (<b>&quot;</b>) to the right
-of a measure, like <b>8.5in</b> or <b>8.5""</b>. Dots per inch,
-"<b>dpi</b>", are the common measure of printing resolution for dot-matrix,
-laser, and ink-jet printers. U.S. "letter" paper is exactly
-8.5in&times;11in, approximately 21.6cm&times;27.9cm. (See in the usage
-documentation all the <a href="Use.htm#Known_paper_sizes">paper sizes
-predefined in Ghostscript</a>.)
-
-<dt><b>Centimeters</b> and <b>millimeters</b>
-<dd>ISO standard paper sizes such as A4 and A3 are commonly represented in
-the SI units of centimeters and millimeters. Centimeters are abbreviated
-"<b><tt>cm</tt></b>", millimeters "<b><tt>mm</tt></b>". ISO A4 paper is
-quite close to 21.0&times;29.7 centimeters (approximately 8.3&times;11.7
-inches).
-
-<dt><b>Points</b>
-<dd>Points are a measure traditionally used in the printing trade and now
-in PostScript, which specifies exactly 72 points per inch (approximately
-28.35 per centimeter). The <a href="Use.htm#Known_paper_sizes">paper sizes
-known to Ghostscript</a> are defined in the initialization file
-<b><tt>gs_statd.ps</tt></b> in terms of points.
-
-<dt><b>Bits per pixel</b>
-<dd>Commonly abbreviated "<b><tt>bpp</tt></b>".
-</dl>
-
-<hr>
-
-<h2><a name="IJS"></a>IJS - Inkjet and other raster devices</h2>
-
-<p>
-IJS is a relatively new initiative to improve the quality and ease of
-use of inkjet printing with Ghostscript. Using IJS, you can add new
-drivers or upgrade existing ones without recompiling Ghostscript.
-All driver authors are encouraged to adapt their drivers for IJS, and
-if there is an IJS driver available for your printer, it should be
-your first choice. The non-ijs raster printer drivers are deprecated
-and will be removed in future versions of ghostscript.
-</p>
-
-<p>
-Even more importantly, the vast majority of inkjet printers are now
-supported by one of the two free collections described below:
-<a href="#STP">Gimp-Print</a> and <a href="#HP_ijs">HPIJS</a>. Therefore
-the ijs interface is your best bet for such printers from a practical
-point of view as well.
-</p>
-
-<p>Please see the <a href="http://www.linuxprinting.org/ijs/">IJS web
-page</a> for more information about IJS, including a listing of
-IJS-compatible drivers.
-</p>
-
-<p>
-A typical command line for IJS is:
-</p>
-
-<blockquote>
-<b><tt>
-gs -DSAFER -sDEVICE=ijs -sIjsServer=hpijs
- -sDeviceManufacturer=HEWLETT-PACKARD -sDeviceModel='DESKJET 990'
- -DIjsUseOutputFD -sOutputFile=/dev/usb/lp1 -DNOPAUSE --
- examples/tiger.eps
-</tt></b>
-</blockquote>
-
-
-<p>
-Individual IJS command line parameters are as follows:
-</p>
-
-<dl>
-<dt><b><tt>-sIjsServer=</tt></b><em>{path}</em>
-<dd>Sets the pathname for the IJS server (ie printer driver). Examples
-are "hpijs" and "ijsgimpprint".
-Ghostscript will spawn a new process for this driver, and communicate
-with it using the IJS protocol. The pathname need not be absolute,
-as the PATH environment variable is searched, but it's probably a good
-idea for robustness and security. Note also that if -dSAFER is not
-specified, it's possible for PostScript code to set this parameter,
-so it can cause arbitrary code to be executed. See the section on <a
-href="Use.htm#Security">Security</a> for more information.
-</dl>
-
-<dl>
-<dt><b><tt>-sDeviceManufacturer=</tt></b><em>{name}</em>
-<dt><b><tt>-sDeviceModel=</tt></b><em>{name}</em>
-<dd>These parameters select the device according to IEEE-1284 standard
-device ID strings. In general, consult the documentation for the
-driver to find the appropriate settings. Note that, if the value
-contains a space, you'll want to quote the value in your shell, as
-in the example above.
-</dl>
-
-<dl>
-<dt><b><tt>-sIjsParams=</tt></b><em>{params}</em>
-<dd>This parameter allows you to set arbitrary IJS parameters on
-the IJS driver. The format is a comma-separated list of
-<b><tt>key=value</tt></b> pairs. If it is necessary to send a
-value containing a comma or backslash, it can be escaped with
-a backslash. Thus, <b><tt>'-sIjsParams=Foo=bar,Baz=a\,b'</tt></b> sets
-the parameter Foo to "bar", and Baz to "a,b".
-</dl>
-
-<dl>
-<dt><b><tt>-dIjsUseOutputFD</tt></b>
-<dd>This flag indicates that Ghostscript should open the output file
-and pass a file descriptor to the server. If not set, Ghostscript
-simply passes the filename set in OutputFile to the server. In most
-cases, this flag won't matter, but if you have a driver which works
-only with OutputFD (such as hpijs 1.0.2), or if you're using the
--sOutputFile="|cmd" syntax, you'll need to set it.
-</dl>
-
-<dl>
-<dt><b><tt>-dBitsPerSample=</tt></b><em>N</em>
-<dd>This parameter controls the number of bits per sample. The
-default value of 8 should be appropriate for most work. For monochrome
-images, use -dBitsPerSample=1.
-</dl>
-
-<p>Generic Ghostscript options that are particularly relevant for IJS
-are summarized below:
-</p>
-
-<dl>
-<dt><b><tt>-r</tt></b><em>number</em>
-<br><b><tt>-r</tt></b><em>number1</em><b><tt>x</tt></b><em>number2</em>
-<dd>Sets the resolution, in dpi. If the resolution is not specified,
-Ghostscript queries the IJS server to determine the preferred resolution.
-When the resolution is specified, it overrides the value (if any)
-preferred by the IJS server.
-</dl>
-
-<dl>
-<dt><b><tt>-dDuplex</tt></b>
-<dt><b><tt>-dTumble</tt></b>
-<dd>These flags enable duplex (two-sided) printing. Tumble controls
-the orientation. When Tumble is false, the pages
-are oriented suitably at the left or right. When Tumble is true,
-the pages are oriented suitably for binding at the top or
-bottom.
-</dl>
-
-<dl>
-<dt><b><tt>-sProcessColorModel=</tt></b><em>{name}</em>
-<dd>Use this flag to select the process color model. Suitable values
-include DeviceGray, DeviceRGB, and DeviceCMYK.
-</dl>
-
-<h3>Building IJS</h3>
-
-<p> IJS is included by default on Unix gcc builds, and also in
-autoconf'ed builds. Others may need some makefile tweaking. First,
-make sure the IJS device is selected:
-
-<blockquote>
-DEVICE_DEVS2=$(DD)ijs.dev
-</blockquote>
-
-<p> Next, make sure that the path and execution type are set in
-the toplevel makefile. The values for Unix are as follows:
-
-<blockquote>
-IJSSRCDIR=ijs
-IJSEXECTYPE=unix
-</blockquote>
-
-<p> At present, "unix" and "win" are the only supported values for
-IJSEXECTYPE. If neither sounds appropriate for your system, it's
-possible that more porting work is needed.
-
-<p> Last, make sure that ijs.mak is included in the toplevel makefile.
-It should be present right after the include of icclib.mak.
-
-<p> IJS is not inherently platform-specific. We're very much interested
-in taking patches from people who have ported it to non-mainstream
-platforms. And once it's built, you won't have to recompile Ghostscript
-to support new drivers!
-
-<hr>
-
-<h2><a name="STP"></a>Gimp-Print drivers</h2>
-
-<p>
-The Gimp-Print driver collection supports a wide variety of inkjet
-printers and supports Ghostscript's 'ijs' interface. Just set the
-IjsServer parameter to 'ijsgimpprint'.
-Please see <a href="http://gimp-print.sourceforge.net/"
-class="offsite">http://gimp-print.sourceforge.net/</a> for more
-information including supported printers and appropriate options.
-
-<p>
-GNU Ghostscript also includes a special client device for the Gimp-Print
-family of drivers. The device itself is called <tt>stp</tt> for historical
-reasons. This device will not be supported in future versions of Ghostscript
-or Gimp-print.
-
-<p>
-You will need to have the Gimp-Print library installed to use this
-device. The library distribution also includes extensive documentation
-on supported printers and the options available with each. Thanks to the
-Gimp-Print team for all their hard work integrating their excellent
-driver suite.
-
-<p>
-Please note that the stp driver interface is only supported through
-gimp-print version 4.2. If you have 4.2.1 or later, please use the IJS
-interface (described above) instead.
-
-<h2><a name="HP_ijs"></a>HP Inkjet official drivers</h2>
-
-<p>
-HP provides official drivers for many of their printer models.
-In order to use these drivers, you will need the HP Inkjet Server as
-well as Ghostscript, available from <a
-href="http://hpinkjet.sourceforge.net">http://hpinkjet.sourceforge.net</a>.
-
-<p>
-This version of ghostscript also contains a special client driver 'hpijs'
-that predates the current ijs interface. It will not be supported in future
-versions of Ghostscript.
-
-<p>
-Thanks to the folks at HP,
-especially David Suffield for making these drivers available and working to
-integrate it with Ghostscript.
-
-<hr>
-
-<h2><a name="Win"></a>MS Windows printers</h2>
-
-<p>
-This section was written by Russell Lang, the author of Ghostscript's
-MS&nbsp;Windows-specific printer driver, and updated by
-<a href="mailto:Pierre.Arnaud@opac.ch">Pierre Arnaud</a>,
-the current maintainer.
-</p>
-
-<p>
-The <b><tt>mswinpr2</tt></b> device uses MS&nbsp;Windows printer drivers, and
-thus should work with any printer with device-independent bitmap (DIB)
-raster capabilities. The printer resolution cannot be selected directly
-using PostScript commands from Ghostscript: use the printer setup in the
-Control Panel instead. It is however possible to specify a maximum resolution
-for the printed document (see below).
-</p>
-
-<p>
-If no Windows printer name is specified in <b><tt>-sOutputFile</tt></b>,
-Ghostscript prompts for a Windows printer using the standard Print Setup
-dialog box. You must set the orientation to Portrait and the page size to
-that expected by Ghostscript; otherwise the image will be clipped.
-Ghostscript sets the physical device size to that of the Windows printer
-driver, but it does not update the PostScript clipping path.
-</p>
-
-<p>
-If a Windows printer name is specified in <b><tt>-sOutputFile</tt></b> using
-the format <tt>"\\spool\printer_name"</tt>, for instance
-</p>
-
-<blockquote><b><tt>
-gs ... -sOutputFile="\\spool\Apple LaserWriter II NT"
-</tt></b></blockquote>
-
-<p>
-then Ghostscript attempts to open the Windows printer without prompting
-(except, of course, if the printer is connected to <b><tt>FILE:</tt></b>).
-Ghostscript attempts to set the Windows printer page size and orientation
-to match that expected by Ghostscript, but doesn't always succeed. It uses
-this algorithm:
-</p>
-
-<ol>
-<li>If the requested page size matches one of the Windows standard page
-sizes +/- 2mm, request that standard size.</li>
-
-<li>Otherwise if the requested page size matches one of the Windows
-standard page sizes in landscape mode, ask for that standard size in
-landscape.</li>
-
-<li>Otherwise ask for the page size by specifying only its dimensions.</li>
-
-<li>Merge the requests above with the defaults. If the printer driver
-ignores the requested paper size, no error is generated: it will print on
-the wrong paper size.</li>
-
-<li>Open the Windows printer with the merged orientation and size.</li>
-</ol>
-
-<p>
-The Ghostscript physical device size is updated to match the Windows
-printer physical device.
-</p>
-
-<h3><a name="Win_properties"></a>Supported command-line parameters</h3>
-
-<p>
-The <b><tt>mswinpr2</tt></b> device supports a limited number of command-line
-parameters (e.g. it does not support setting the printer resolution). The
-recognized parameters are the following:
-</p>
-
-<blockquote>
-<dl>
-<dt><b><tt>-sDEVICE=mswinpr2</tt></b></dt>
-<dd>Selects the MS&nbsp;Windows printer device. If Ghostscript was not
-compiled with this device as the default output device, you have to specify
-it on the command line.</dd>
-
-<dt><b><tt>-dNoCancel</tt></b></dt>
-<dd>Hides the progress dialog, which shows the percent of the document page
-already processed and also provides a <em>cancel</em> button. This option
-is useful if GS is intended to print pages in the background, without any
-user intervention.</dd>
-
-<dt><b><tt>-sOutputFile=</tt></b><b>"\\spool\<em>printer_name</em>"</b></dt>
-<dd>Specifies which printer should be used. The <em>printer_name</em> should be
-typed exactly as it appears in the Printers control panel, including spaces.</dd>
-
-</dl>
-</blockquote>
-
-<h3><a name="Win_options"></a>Supported options (device properties)</h3>
-
-<p>
-Several extra options exist which cannot be set through the command-line,
-but only by executing the appropriate PostScript setup code. These options
-can be set through the inclusion of a setup file on the command-line:
-</p>
-
-<blockquote><b><tt>
-gs ... setup.ps ...
-</tt></b></blockquote>
-
-<p>
-The <tt>setup.ps</tt> file is responsible for the device selection, therefore
-you should not specify the <b><tt>-sDEVICE=mswinpr2</tt></b> option on the
-command-line if you are using such a setup file. Here is an example of such
-a setup file:
-</p>
-
-<blockquote><pre>
-mark
- /NoCancel true % don't show the cancel dialog
- /BitsPerPixel 4 % force 4 bits/pixel
- /UserSettings
- &lt;&lt;
- /DocumentName (Ghostscript document) % name for the Windows spooler
- /MaxResolution 360 % maximum document resolution
- &gt;&gt;
- (mswinpr2) finddevice % select the Windows device driver
- putdeviceprops
-setdevice
-</pre></blockquote>
-
-<p>
-This example disables the progress dialog (same as the <tt><b>-dNoCancel</b></tt>
-option), forces a 4 bits/pixel output resolution and specifies additional user
-settings, such as the document name (which will be displayed by the Windows
-spooler for the queued document) and the maximum resolution (here 360&nbsp;dpi).
-It then finds and selects an instance of the MS&nbsp;Windows device printer
-and activates it. This will show the standard printer dialog, since no
-<tt><b>/OutputFile</b></tt> property was specified.
-</p>
-
-<p>
-The following options are available:
-</p>
-
-<blockquote>
-<dl>
-<dt><b><tt>/NoCancel <em>boolean</em></tt></b></dt>
-<dd>Disables (hides) the progress dialog when set to <em><tt>true</tt></em> or
-show the progress dialog if not set or set to <em><tt>false</tt></em>.</dd>
-
-<dt><b><tt>/OutputFile <em>string</em></tt></b></dt>
-<dd>Specifies which printer should be used. The string should be of the form
-<tt><b>\\spool\<em>printer_name</em></b></tt>, where the <em>printer_name</em> should be
-typed exactly as it appears in the Printers control panel, including spaces.</dd>
-
-<dt><b><tt>/QueryUser <em>integer</em></tt></b></dt>
-<dd>Shows the standard printer dialog (<tt><b>1</b></tt> or any other value),
-shows the <em>printer setup dialog</em> (<tt><b>2</b></tt>) or selects the
-<em>default Windows printer</em> without any user interaction (<tt><b>3</b></tt>).</dd>
-
-<dt><b><tt>/BitsPerPixel <em>integer</em></tt></b></dt>
-<dd>Sets the device depth to the specified bits per pixel. Currently supported
-values are <tt><b>1</b></tt> (monochrome), <tt><b>4</b></tt> (CMYK with screening
-handled by Ghostscript) and <tt><b>24</b></tt> (True Color, dithering handled by
-the Windows printer driver; this option can produce huge print jobs).</dd>
-
-<dt><b><tt>/UserSettings <em>dict</em></tt></b></dt>
-<dd>Sets additional options, defined in a dictionary. The following properties can
-be set:
-
-<dl>
-<dt><b><tt>/DocumentName <em>string</em></tt></b></dt>
-<dd>Defines the user friendly document name which will be displayed by the
-Windows spooler.</dd>
-
-<dt><b><tt>/DocumentRange <em>[n1 n2]</em></tt></b></dt>
-<dd>Defines the range of pages contained in the document. This information can
-be used by the printer dialog, in conjunction with the following property.</dd>
-
-<dt><b><tt>/SelectedRange <em>[n1 n2]</em></tt></b></dt>
-<dd>Defines the selected range of pages. This information will be displayed in
-the printer dialog and will be updated after the user interaction. A PostScript
-program could check these values and print only the selected page range.</dd>
-
-<dt><b><tt>/MaxResolution <em>dpi</em></tt></b></dt>
-<dd>Specifies the maximum tolerated output resolution. If the selected printer has
-a higher resolution than <tt><b>dpi</b></tt>, then Ghostscript will render the
-document with a submultiple of the printer resolution. For example, if
-<tt><b>MaxResolution</b></tt> is set to 360 and the output printer supports
-up to 1200 dpi, then Ghostscript renders the document with an internal
-resolution of 1200/4=300 dpi. This can be very useful to reduce the memory
-requirements when printing in True Color on some high resolution ink-jet color
-printers.</dd>
-
-</dl></dd>
-
-</dl>
-</blockquote>
-
-<p>
-These properties can be queried through the <tt><b>currentpagedevice</b></tt>
-operator. The following PostScript code snippet shows how to do it for some
-of the properties:
-</p>
-
-<blockquote><pre>
-currentpagedevice /BitsPerPixel get == % displays the selected depth
-
-currentpagedevice /UserSettings get % get the additional options..
-/us exch def % ..and assign them to a variable
-
-us /DocumentName get == % displays the document name
-us /SelectedRange get == % displays the selected page range
-
-% other misc. informations (don't rely on them)
-
-us /Color get == % 1 => monochrome output, 2 => color output
-us /PrintCopies get == % displays the number of copies requested
-</pre></blockquote>
-
-<p>
-There are a few undocumented informations stored in the <tt><b>UserSettings</b></tt>
-dictionary. You should not rely on them. Their use is still experimental and
-they could be removed in a future version.
-</p>
-
-<h3><a name="Win_duplex"></a>Duplex printing</h3>
-
-<p>
-If the Windows printer supports the duplex printing feature, then it will
-also be available through the <b><tt>mswinpr2</tt></b> device. You can query
-for this support through the <b><tt>/Duplex</tt></b> propery of the
-<b><tt>currentpagedevice</tt></b>. If it returns <b><tt>null</tt></b>, then
-the feature is not supported by the selected printer. Otherwise, <b><tt>true</tt></b>
-means that the printer is currently set up to print on both faces of the paper
-and <b><tt>false</tt></b> that it is not, but that it can.
-</p>
-
-<p>
-The following example shows how to print on both faces of the paper (using
-the long side of the paper as the reference):
-</p>
-
-<blockquote><pre>
-&lt;&lt; /Duplex true /Tumble false &gt;&gt; setpagedevice
-</pre></blockquote>
-
-<p>
-</p>
-
-
-<hr>
-
-<h2><a name="File_formats"></a>File formats</h2>
-
-<h3><a name="JFIF"></a>JPEG file format (JFIF)</h3>
-
-<p>
-Ghostscript includes output drivers that can produce <a
-href="http://www.ijg.org/">Independent JPEG Group</a> JFIF (JPEG File
-Interchange Format) files from PostScript images. <b>Please note</b> that
-JPEG is a compression method specifically intended for continuous-tone
-images such as photographs, not for graphics, and it is therefore quite
-unsuitable for the vast majority of page images produced with PostScript,
-which should be saved in a form better for graphics, such as
-<a href="http://www.libpng.org/pub/png/">Portable Network Graphics</a>
-(PNG) format. If you get crummy-looking JPEG files, don't blame
-Ghostscript; instead consult a reference about uses and abuses of JPEG,
-such as the JPEG FAQ
-
-<blockquote>
-<a href="http://www.faqs.org/faqs/jpeg-faq/">http://www.faqs.org/faqs/jpeg-faq/</a>
-</blockquote>
-
-<p>
-You can use the JPEG output drivers -- <b><tt>jpeg</tt></b> to produce
-color JPEG files and <b><tt>jpeggray</tt></b> for grayscale JPEGs -- the
-same as other file-format drivers: by specifying the device name and an
-output file name, for example
-
-<blockquote><b><tt>
-gs -sDEVICE=jpeg -sOutputFile=foo.jpg foo.ps
-</tt></b></blockquote>
-
-<p>
-You can also use the <a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b>
-switch</a> to specify the imaging resolution and thus the output file's
-size in pixels. The default resolution is normally 72&times;72dpi.
-
-<p>
-The JPEG devices support several special parameters to control the JPEG
-"quality setting" (DCT quantization level).
-
-<blockquote>
-<dl>
-<dt><b><tt>-dJPEGQ=</tt></b><b><em>N</em></b> (integer from 0 to 100, default 75)
-<dd>Set the quality level <b><em>N</em></b> according to the widely used
-IJG quality scale, which balances the extent of compression against the
-fidelity of the image when reconstituted. Lower values drop more
-information from the image to achieve higher compression, and therefore
-have lower quality when reconstituted.
-
-<dt><b><tt>-dQFactor=</tt></b><b><em>M</em></b> (float from 0.0 to 1.0)
-<dd>Adobe's QFactor quality scale, which you may use in place of
-<b><tt>JPEGQ</tt></b> above. The QFactor scale is used by PostScript's
-DCTEncode filter but is nearly unheard-of elsewhere.
-</dl>
-</blockquote>
-
-<p>
-At this writing the default JPEG quality level of 75 is equivalent to
-<b><tt>-dQFactor=0.5</tt></b>, but the JPEG default might change in the
-future. The JPEG drivers could be extended to support additional JPEG
-compression options, such as the other DCTEncode filter parameters, but so
-far they haven't been.
-
-<h3><a name="TIFF"></a>TIFF file formats</h3>
-
-<p>
-There are two unrelated sets of TIFF drivers. There are two color TIFF
-drivers that produce uncompressed output:
-
-<blockquote>
-<dl>
-<dt><b><tt>tiff12nc</tt></b>
-<dd>Produces 12-bit RGB output (4 bits per component).
-<dt><b><tt>tiff24nc</tt></b>
-<dd>Produces 24-bit RGB output (8 bits per component).
-</dl>
-</blockquote>
-
-<p>
-The remaining TIFF drivers all produce black-and-white output with different
-compression modes:
-
-<blockquote>
-<dl>
-<dt><b><tt>tiffcrle</tt></b>
-<dd>G3 fax encoding with no EOLs
-<dt><b><tt>tiffg3</tt></b>
-<dd>G3 fax encoding with EOLs
-<dt><b><tt>tiffg32d</tt></b>
-<dd>2-D G3 fax encoding
-<dt><b><tt>tiffg4</tt></b>
-<dd>G4 fax encoding
-<dt><b><tt>tifflzw</tt></b>
-<dd>LZW-compatible (tag = 5) compression
-<dt><b><tt>tiffpack</tt></b>
-<dd>PackBits (tag = 32773) compression
-</dl>
-</blockquote>
-
-<p>
-The black-and-white TIFF drivers support creation of files that are
-comprised of more than a single strip. Multi-strip files reduce the memory
-requirement on the reader, since readers need only store and process one
-strip at a time. These drivers provide two parameters beyond the standard
-set:
-
-<blockquote>
-<dl>
-<dt><b><tt>-dMaxStripSize=</tt><em>N</em></b> (non-negative integer; default = 0)
-<dd>Set the maximum (uncompressed) size of a strip.
-
-<dt><b><tt>-dAdjustWidth=</tt><em>true|false</em></b> (Boolean; default =
-true)
-<dd>If true, then if the requested page width is close to either A4 (1728
-columns) or B4 (2048 columns), set the page width to A4 or B4 respectively.
-</dl></blockquote>
-
-<p>
-The TIFF 6.0 specification, Section 7, page 27, recommends that the size of
-each strip be about 8 Kbytes. As an example, to generate the 'tiger' in
-tiffg4 format that has the recommended strip size, use:
-
-<blockquote><pre>
-gs -sDEVICE=tiffg4 -sOutputFile=tiger.tif -dMaxStripSize=8192 examples/tiger.ps
-</pre></blockquote>
-
-<p>
-If the value of the <b><tt>MaxStripSize</tt></b> parameter is smaller than a
-single image row, then no error will be generated, and the TIFF file will be
-generated correctly using one row per strip. Note that smaller strip sizes
-increase the size of the file by increasing the size of the StripOffsets and
-StripByteCounts tables, and by reducing the effectiveness of the compression
-which must start over for each strip.
-
-<p>
-If the value of MaxStripSize is 0 (the default), then the entire image will
-be a single strip.
-
-
-<hr>
-
-<h2><a name="Display_devices"></a>Display Devices</h2>
-
-<p>
-Ghostscript is often used for screen display of postscript and pdf documents.
-In many cases, a client or 'viewer' application calls the ghostscript engine
-to do the rasterization and handles the display of the resulting image itself,
-but it is also possible to invoke ghostscript directly and select an output
-device which directly handles displaying the image on screen.
-
-<p>
-This section describes the various display-oriented devices that are available
-in ghostscript.
-
-<h3><a name="x11_devices"></a>X Window System</h3>
-
-<p>
-Perhaps the most common use of of a display device is with the X Window System
-on unix-like systems. It is the default device on the command line client on
-such systems, and is used more creatively by the gv client application.
-
-<p>
-The available devices are:
-
-<dl>
-<dt><b>x11</b>
-<dd>This is the default device, handling display on X11R6.
-
-<dt><b>x11alpha</b>
-<dd>This is the x11 device, but with antialiasing. It is equivalent to
-invoking the x11 device with the options <tt>-dGraphicsAlphaBits=4
--dTextAlphaBits=4 -dMaxBitmap=50000000</tt>.
-
-<dt><b>x11cmyk</b>
-<dd>This device rasterizes the image in the CMKY color space, then flattens
-it to RGB for display. It's intended for testing only.
-
-<dt><b>x11mono</b>
-<dd>This is a strict black-and-white device for 1-bit monochrome displays.
-
-<dt><b>x11gray2</b>
-<dd>This is a device for 2 bpp (4-level) monochrome displays.
-
-<dt><b>x11gray4</b>
-<dd>This is a device for 4 bpp (16-level) monochrome displays.
-</dl>
-
-
-<hr>
-
-<h2><a name="HP_color_inkjet"></a>H-P color inkjet printers</h2>
-
-<p>
-This section, written by George Cameron, deals with the DeskJet 500C,
-DeskJet 550C, PaintJet, PaintJet XL, PaintJet XL300, the DEC LJ250
-operating in PaintJet-compatible mode.
-
-<h3><a name="HP_gdevcdj"></a>Drivers contained in <b><tt>gdevcdj.c</tt></b></h3>
-
-<p>
-The source module <b><tt>gdevcdj.c</tt></b> contains six generic drivers:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>cdj500</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>HP DeskJet 500C and 540C
-<tr valign=top> <td><b><tt>cdj550</tt></b>
- <td>&nbsp;
- <td>HP DeskJet 550C, 560C, 660C, 660Cse
-<tr valign=top> <td><b><tt>pjxl300</tt></b>
- <td>&nbsp;
- <td>HP PaintJet XL300, DeskJet 1200C, and CopyJet
-<tr valign=top> <td><b><tt>pjtest</tt></b>
- <td>&nbsp;
- <td>HP PaintJet
-<tr valign=top> <td><b><tt>pjxltest</tt></b>
- <td>&nbsp;
- <td>HP PaintJet XL
-<tr valign=top> <td><b><tt>declj250</tt></b>
- <td>&nbsp;
- <td>DEC LJ250
-</table></blockquote>
-
-<p>
-All these drivers have 8-bit (monochrome), 16-bit and 24-bit (colour) and
-for the DJ 550C, 32-bit (colour, CMYK mode) options in addition to standard
-colour and mono drivers. It is also possible to set various
-printer-specific parameters from the command line, for example
-
-<blockquote><b><tt>
-gs&nbsp;-sDEVICE=cDeskJet&nbsp;-dBitsPerPixel=16&nbsp;-dDepletion=1&nbsp;-dShingling=2&nbsp;tiger.ps
-</tt></b></blockquote>
-
-<p>
-<b>Note:</b> the old names <b><tt>cDeskJet</tt></b>,
-<b><tt>cdjcolor</tt></b> and <b><tt>cdjmono</tt></b> drivers have been
-retained; however, their functionality duplicates that available using the
-drivers above (and <b><tt>cDeskJet</tt></b> is identical to
-<b><tt>cdj500</tt></b>). That is, we can use
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>gs -sDEVICE=cdj500 -dBitsPerPixel=24</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>for <b><tt>cdjcolor</tt></b>, and
-<tr valign=top> <td><b><tt>gs -sDEVICE=cdj500 -dBitsPerPixel=1</tt></b>
- <td>&nbsp;
- <td>for <b><tt>cdjmono</tt></b>
-</table></blockquote>
-
-<h3><a name="HP_paper_size"></a>Default paper size</h3>
-
-<p>
-If the preprocessor symbol <b><tt>A4</tt></b> is defined, the default paper
-size is ISO A4; otherwise it is U.S. letter size (see about
-<a href="Use.htm#Known_paper_sizes">paper sizes</a> in the usage
-documentation). You can <a href="Use.htm#Paper_size">specify other paper
-sizes</a> on the command line, including A3 for the PaintJet XL and
-PaintJet XL300, as also explained in the usage documentation.
-
-<h3><a name="HP_limits"></a>DeskJet physical limits</h3>
-
-<p>
-The DeskJet's maximum printing width is 2400 dots, or 8 inches
-(20.32cm). The printer manuals say that the maximum recommended printing
-height on the page is 10.3 inches (26.16cm), but since this is obviously
-not true for A4 paper, and I have been unable to detect any problems in
-printing longer page lengths, this would seem to be a rather artificial
-restriction.
-
-<p>
-All DeskJets have 0.5 inches (1.27cm) of unprintable bottom margin, due to the mechanical
-arrangement used to grab the paper. Side margins are approximately 0.25 inches (0.64cm)
-for U.S. letter paper, and 0.15 inches (0.38cm) for A4.
-
-<h4><a name="HP_command_line"></a>Printer properties (command-line parameters)</h4>
-
-<p>
-Several printer "properties" have been implemented for these printers.
-Those available so far are all integer quantities, and thus may be
-specified, for instance, like
-
-<blockquote>
-<b><tt>gs -dBitsPerPixel=32 -dShingling=1</tt></b> ...
-</blockquote>
-
-<p>
-which sets the <b><tt>BitsPerPixel</tt></b> parameter to 32 and the
-<b><tt>Shingling</tt></b> parameter to 1.
-
-<h4><a name="HP_bpp"></a>Bits per pixel</h4>
-
-<p>
-If the preprocessor symbol <b><tt>BITSPERPIXEL</tt></b> is defined as an
-integer (see below for the range of allowable values), that number defines
-the default bits per pixel (bit depth) for the generic drivers. If the
-symbol is undefined, the default is 24 bits per pixel. It is, of course,
-still possible to specify the value from the command line as described
-below. Note also that the <b><tt>cDeskJet</tt></b>,
-<b><tt>cdjcolor</tt></b> and <b><tt>cdjmono</tt></b> drivers are unaffected
-by setting this symbol, as their default settings are predefined to be 1, 3
-and 24 respectively.
-
-<p>
-All of the drivers in <b><tt>gdevcdj.c</tt></b> accept a command line
-option to set the <b><tt>BitsPerPixel</tt></b> property. This gives
-considerable flexibility in choosing various tradeoffs among speed,
-quality, colour, etc. The valid numbers are:
-
-<blockquote><dl compact>
-<dt><b>1</b>
-<dd>A standard Ghostscript monochrome driver, using black ink (by
-installing the separate mono cartridge in the case of the DeskJet 500C, or
-automatically for the other printers).
-
-<dt><b>3</b>
-<dd>A standard Ghostscript colour driver, using internal dithering. This
-is fast to compute and to print, but the clustered dithering can lose some
-detail and colour fidelity.
-
-<dt><b>8</b>
-<dd>An "error-diffusion" monochrome driver which uses Floyd-Steinberg
-dithering to print greyscale images. The patterns are much more randomised
-than with the normal clustered dithering, but the data files can be much
-larger and somewhat slower to print.
-
-<dt><b>16</b>
-<dd>A "cheaper" version of the 24-bit driver, which generates
-Floyd-Steinberg colour dithered output using the minimum memory (this may
-be helpful when using Ghostscript has not been compiled using a 16-bit
-build environment). The quality can be almost as good as the 24-bit
-version.
-
-<dt><b>24</b>
-<dd>A high-quality colour driver using Floyd-Steinberg dithering for
-maximum detail and colour range. However, it is very memory-intensive, and
-thus can be slow to compute. It tends to produce rather larger raw data
-files, so they can also take longer to print.
-
-<dt><b>32</b>
-<dd>Only for the DeskJet 550C, which uses the black cartridge and the
-colour cartridge simultaneously (that is, CMYK printing). This printer can
-both be faster and give higher quality than the DeskJet 500C, because of
-the true black ink. (Note that the 24-bit mode also permits CMYK printing
-on this printer, and uses less memory. Any differences between 24-bit and
-32-bit should be small.)
-</dl></blockquote>
-
-<h4><a name="HP_DeskJet_properties"></a>DeskJet properties</h4>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Name
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>&nbsp;
-<tr> <td colspan=5><hr>
-<tr valign=top> <td><b><tt>BlackCorrect</tt></b>
- <td>&nbsp;
- <td><b><tt>int</tt></b>
- <td>&nbsp;
- <td>Colour correction to give better blacks when using the DJ500C in colour mode. For example, the default of 4 reduces the cyan component to 4/5. Range accepted: 0 - 9 (0 = none).
-<tr valign=top> <td><b><tt>Shingling</tt></b>
- <td>&nbsp;
- <td><b><tt>int</tt></b>
- <td>&nbsp;
- <td>Interlaced, multi-pass printing: 0 = none, 1 = 50%, 2 = 25%, 2 is best and slowest.
-<tr valign=top> <td><b><tt>Depletion</tt></b>
- <td>&nbsp;
- <td><b><tt>int</tt></b>
- <td>&nbsp;
- <td>"Intelligent" dot-removal: 0 = none, 1 = 25%, 2 = 50%, 1 best for graphics? Use 0 for transparencies.
-</table></blockquote>
-
-<h4><a name="HP_PaintJet_properties"></a>PaintJet XL300 / PaintJet XL properties</h4>
-
-<blockquote>
-<table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Name
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>
-<tr> <td colspan=5><hr>
-<tr valign=top> <td><b><tt>PrintQuality</tt></b>
- <td>&nbsp;
- <td><b><tt>int</tt></b>
- <td>&nbsp;
- <td>Mechanical print quality: -1 = fast, 0 = normal, 1 = presentation. Fast mode reduces ink usage and uses single-pass operation for some media types. Presentation uses more ink and the maximum number of passes, giving slowest printing for highest quality
-<tr valign=top> <td><b><tt>RenderType</tt></b>
- <td>&nbsp;
- <td><b><tt>int</tt></b>
- <td>&nbsp;
- <td><dl compact>
- <dt><b>0</b><dd>driver does dithering
- <dt><b>1</b><dd>snap to primaries
- <dt><b>2</b><dd>snap black to white, others to black
- <dt><b>3</b><dd>ordered dither
- <dt><b>4</b><dd>error diffusion
- <dt><b>5</b><dd>monochrome ordered dither
- <dt><b>6</b><dd>monochrome error diffusion
- <dt><b>7</b><dd>cluster ordered dither
- <dt><b>8</b><dd>monochrome cluster ordered dither
- <dt><b>9</b><dd>user-defined dither (not supported)
- <dt><b>10</b><dd>monochrome user-defined dither ns.
- </dl>
-</table>
-
-<p>
-The PaintJet (non-XL) has no additional properties.
-
-</blockquote>
-
-<h3><a name="HP_gamma"></a>Gamma correction</h3>
-
-<p>
-One consequence of using Floyd-Steinberg dithering rather than Ghostscript's
-default clustered ordered dither is that it is much more obvious that the
-ink dots are rather larger on the page than their nominal 1/180-inch or 1/300-inch
-size (clustering the dots tends to minimise this effect). Thus it is often
-the case that the printed result is rather too dark. A simple empirical
-correction for this may be achieved by preceding the actual PostScript
-file to be printed by a short file which effectively sets the gamma for
-the device, such as
-
-<blockquote><b><tt>
-gs ... gamma.ps colorpic.ps -c quit
-</tt></b></blockquote>
-
-<p>
-where <b><tt>gamma.ps</tt></b> is
-
-<blockquote>
-<pre>%!
-/.fixtransfer {
- currentcolortransfer 4 {
- mark exch
- dup type dup /arraytype eq exch /packedarraytype eq or
- 1 index xcheck and { /exec load } if
- 0.333 /exp load
- ] cvx 4 1 roll
- } repeat setcolortransfer
-} bind odef
-.fixtransfer
-/setpagedevice { setpagedevice .fixtransfer } bind odef</pre>
-</blockquote>
-
-<p>
-This does the gamma correction <b><em>after</em></b> whatever correction
-the device might be doing already. To do the correction
-<b><em>before</em></b> the current correction,
-
-<blockquote>
-<pre>%!
-/.fixtransfer {
- currentcolortransfer 4 {
- mark 0.333 /exp load 4 -1 roll
- dup type dup /arraytype eq exch /packedarraytype eq or
- 1 index xcheck and { /exec load } if
- ] cvx 4 1 roll
- } repeat setcolortransfer
-} bind odef
-.fixtransfer
-/setpagedevice { setpagedevice .fixtransfer } bind odef</pre>
-</blockquote>
-
-<p>
-This example sets the gamma for R, G, and B to 3, which seems to work
-reasonably well in practice.
-
-<h3><a name="HP_resolution_enhance"></a>HP's resolution-enhanced mode for Inkjet printers</h3>
-
-<p>
-This feature is available on HP's more recent inkjet printers, including
-the DeskJet 520 (mono), 540 (mono or colour) and 560C (mono and colour).
-The colour and monochrome drivers for the HP DeskJet 550c are (probably)
-the best you will get for use with Ghostscript, for the following reasons.
-
-<p>
-These printers do not offer true 600&times;300dpi resolution. Those that
-print in colour are strictly 300&times;300dpi in colour mode, while in mono
-mode there is a pseudo 600&times;300dpi mode with the restriction that you
-can't print two adjacent dots. In effect what you have is 600dpi dot
-positioning, but on average you don't get more dots per line. This
-provides the possibility, for instance, to have sharper character outlines,
-because you can place dots on the edges nearer to their ideal positions.
-This is why it is worth doing.
-
-<p>
-However, HP will not support user-level programming of this
-resolution-enhanced mode, one reason being that (I understand) all the dot
-spacing has to be done by the driver, and if you get it wrong, you can
-actually damage the print head.
-
-<p>
-To summarise, you may lose a smidgin of (potential) text clarity using the
-550c drivers (<b><tt>cdj550</tt></b>, <b><tt>cdjcolor</tt></b>,
-<b><tt>cdjmono</tt></b> etc.), but other than that, they are the ones for
-the job.
-
-<h3><a name="HP_tips"></a>General tips</h3>
-
-<p>
-For all the printers above, the choice of paper is critically important to
-the final results. The printer manuals suggest type of paper, but in
-general, smoother, less fibrous types give better results. In particular,
-the special ink-jet paper can make a big difference: colours are brighter,
-but most importantly, there is almost no colour bleed, even with adjacent
-areas of very heavy inking. Similarly the special coated transparencies
-also work well (and ordinary transparencies do not work at all!).
-
-<p>
-The Unix procedure <a href="Unix-lpr.htm"><b><tt>unix-lpr.sh</tt></b></a>
-provides one example of setting up a multi-option colour PostScript
-<b><tt>lpr</tt></b> queue on Unix systems, and includes the ability to
-choose a range of different colour options and printer accounting and error
-logging.
-
-<p>
-<b>Caveat emptor!</b> It is not always easy for me to test all of these
-drivers, as the only colour printer I have here is the DeskJet 500C. I rely
-on others to test drivers for the additional machines and report their
-findings back to me.
-
-<hr>
-
-<h2><a name="BJC_8200"></a>Canon BJC-8200 printer</h2>
-
-<p>
-This section was contributed by the author of the <b><tt>uniprint</tt></b>
-configuration files for the Canon BJC-8200, Stephan C. Buchert &lt;<a
-href="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>&gt;.
-These files also handle the Japanese Canon F850 printer.
-
-<p>
-Warning: Usage of this program is neither supported nor endorsed by
-the Canon corporation. Please see the Ghostscript <a
-href="Public.htm">license</a> regarding warranty.
-
-<h3>Introduction</h3>
-
-<p>
-The Canon Bubble Jet printer BJC-8200 is designed for printing digital
-photos and halftone images. Software drivers for Windows 95-2000 and Mac are
-usually included and can be downloaded from the Canon web sites like
-<a href="http://consumer.usa.canon.com/bjc/bjc8200/">http://consumer.usa.canon.com/bjc/bjc8200/</a>
-for the US market. If these drivers cannot be used for some reason, then at
-present Ghostscript is probably the alternative giving the best results.
-
-<p>
-The BJC-8200 has features not found among the specs of earlier bubble jet
-models (except the even more advanced BJC-8500) and is advertised to offer:
-
-<ol>
-
-<li>microfine droplet technology;
-
-<li>support for printing on a new type of paper, Photo Paper Pro;
-
-<li>a printhead capable of printing up to 1200 DpI;
-
-<li>individual ink tanks for 6 colors;
-
-<li>an internal status monitor reporting low ink back to a driver;
-
-<li>an optional color scanner cartridge for up to 600 DpI resolution.
-
-</ol>
-
-<p>
-Access to features 5 and 6 requires use of the original Canon drivers for
-the foreseeable future. This README is about getting the printer features
-1-3 working with Ghostscript. No (re)compilation of Ghostscript is normally
-required.
-
-<p>
-Ghostscript comes with a relatively highly configurable driver, called
-<a href="#Uniprint">uniprint</a>, for printers which understand raster
-images in various propriety formats. Most options for this driver are
-usually organized into files having the suffix ".upp." Ghostscript
-versions >= 5.10 (or even earlier) include such uniprint control files
-for the Canon BJC-610. They work also well for some other Canon Bubble
-Jet models, for example for my BJC-35vII. But when using them for a
-BJC-8200 the result is unsatisfactory.
-
-<h3>The uniprint control files for the BJC-8200</h3>
-
-<p>
-After some experimenting with the options for uniprint I have obtained quite
-satisfactory prints with my printer(*). This distribution includes six new
-uniprint control files:
-
-<ul>
-<li>bj8pp12f.upp
-<li>bj8hg12f.upp
-<li>bj8gc12f.upp
-<li>bj8oh06n.upp
-<li>bj8ts06n.upp
-<li>bj8pa06n.upp
-</ul>
-
-<p>
-They are included in Ghostscript >=6.21. For older versions you can put
-them anywhere in the Ghostscript search path (type "gs -h" to see the
-path), but should perhaps add the files to the directory with the
-other *.upp files. This is "/usr/share/ghostscript/gs6.01/lib" in my
-RedHat Linux 6.1 box with Aladdin Ghostscript 6.01.
-
-<p>
-Here is an explanation of my file name convention: the prefix "bj8" should
-perhaps be used for the Canon BJC-8200 and compatible (like the Japanese
-F850 and perhaps the non-Japanese BJC-8500) models. The next two letters
-indicate the print media:
-
-<ul>
-<li>pp "Photo Paper Pro"
-<li>hg "High Gloss Photo Film"
-<li>gc "Glossy Photo Cards"
-<li>oh "OHP transparencies"
-<li>ts "T-shirt transfer"
-<li>pa "Plain Paper"
-</ul>
-
-<p>
-The numbers at positions 6 and 7 indicate the resolution
-
-<ul>
-<li>12 1200x1200 DpIxDpI
-<li>06 600x600 DpIxDpI
-</ul>
-
-<p>
-The last letter stands for a quality factor that effects also the print
-speed (presumably related to the number of passes that the printhead makes).
-
-<ul>
-<li>f highest quality
-<li>n normal quality
-</ul>
-
-<p>
-Printing a postcard size (~10x15 cm^2) image at 1200x1200 DpI^2 takes about
-3 minutes. The output of Ghostscript is then typically 4-5 MByte. The
-bootleneck seems to be the transfer of the raster image in run-length
-encoded Canon format to the printer (via the parallel port on my system) or
-the printer's speed, not Ghostscript or the uniprint renderer.
-
-<h3>Further Optimization for the Canon BJC-8200</h3>
-
-So far I have only experimented with the printer initialization code at the
-beginning of each page (-dupBeginPageCommand) and the resolution (-r). Other
-options, particularly the transfer arrays (-dupBlackTransfer,
--dupCyanTransfer, -dupMagentaTransfer, -dupYellowTransfer) and the margins
-(-dupMargins) were simply copied from the files for the BJC-610, but they
-may need to be changed for optimized performance.
-
-<p>
-Here is information useful for changing or adding uniprint control files for
-the BJC-8200:
-
-<p>
-In "-dupBeginPageCommand=..." use the line
-
-<blockquote>
- 1b28 64 0400 04b0 04b0
-</blockquote>
-
-<p>
-for 1200x1200 resolution, and
-
-<blockquote>
- 1b28 64 0400 0258 0258
-</blockquote>
-
-<p>
-for 600x600. The "-r" option in the control file must of course match this
-line. Other resolutions might work as well, but I didn't try.
-
-<p>
-Crucial are the numbers in the lines like
-
-<blockquote><pre>
- 1b28 63 0300 3005 04
- ^ ^
- Plain Paper 0 4 Highest quality
- OHP transparency 2 .
- T-shirt transfer 3 .
- Glossy Photo Film 5 .
- High Gloss Paper 6 0 Lowest quality
- Photo Paper Pro 9
-</pre></blockquote>
-
-<h3>Outlook</h3>
-
-<p>
-Presently uniprint can use the black (K), cyan (C), magenta (M), and
-yellow (Y) colors in the BJC-8200. The unused colors are photo (or
-light) cyan (c) and magenta (m). Also the Canon driver seems to use
-only CMYK, for example when printing on Photo Paper Pro in "Camera" or
-"SuperPhoto" mode. These modes supposedly produce prints of the best
-quality that the Canon driver can offer. Other modes of Canon driver
-do use up to all six color cartridges (CMYKcm). Therefore expanding
-uniprint's capabilities for six colors would be interesting, but it may
-not increase the output quality of 6-color printers such as the
-BJC-8200 drastically.
-
-<p>
-More control files for uniprint could be added in order to offer more
-versatility for controlling the BJC-8200 within a Ghostscript
-installation. The number of possible combinations for media type, resolution
-and print quality factor is very large, many combinations would not make
-much sense, many might be used here and there, but relatively rarely. The
-user would have to remember a name for each combination that is used.
-
-<p>
-A better way would be to let the user patch optionally a user owned or
-system wide uniprint control file before each print via some print
-tool. This is similar to the approach taken by Canon with their driver for
-Windows. Similarly a uniprint tool could also incorporate other functions
-such as printing test and demo pages and the low ink warning once the
-protocol for this is known. Clearly it would be difficult to code such a
-uniprint tool for all the platforms where Ghostscript is running.
-
-<h3>Usage on RedHat Linux</h3>
-
-<p>
-In order to install a BJC-8200 printer on a RedHat Linux system with
-RedHat's printtool, you need also to insert with a text editor the contents
-of the file <b><tt>bj8.rpd</tt></b> into the RedHat printer database
-<b><tt>/usr/lib/rhs/rhs-printfilters/printerdb</tt></b>. Insert it most
-appropriately after the section
-
-<blockquote><pre>
-StartEntry: U_CanonBJC610
-.
-.
-.
-EndEntry
-
-< --- insert here "bj8.rpd" from this distribution:
-< --- StartEntry: U_CanonBJC8200
- .
- .
- .
-</pre></blockquote>
-
-<h3>Contacting the Author</h3>
-
-<p>
-E-mail address: &lt;<a
-href="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>&gt;
-
-<p>
-Footnotes:
-
-<p>
-(*) Actually I have a F850, not a BJC-8200. That model is sold for the
-Japanese market only. The specs and also the external look are the
-same as those of the BJC-8200 models for the American and European
-markets. I expect that the raster image mode which is used exclusively
-by Ghostscript is entirely compatible for both models.
-
-<p>
-Stephan C. Buchert
-
-<hr>
-
-<h2><a name="BJC"></a>Other Canon BubbleJet (BJC) printers</h2>
-
-<p>
-This section was contributed by the author of the drivers, Yves Arrouye
-(&lt;<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>&gt;, but
-please do not send questions to him: he no longer maintains these drivers.)
-The drivers handle Canon BJC-600, BJC-4xxx, BJC-70, Stylewriter 2x00, and
-BJC-800 printers.
-
-<h3><a name="BJC_history"></a>History</h3>
-
-<p>
-The BJC-600 driver was written in the first place by Yoshio Kuniyoshi and
-later modified by Yves Arrouye. We tried to make it evolve synchronously,
-though Yoshio cannot be reached since a long time ago. The drivers are
-based on code for the HP printers by George Cameron (in fact, they are in
-the same file!), so he's the first person to thank.
-
-<p>
-The 2.00 version of the drivers was a complete rewrite of the driver
-(arguments, optimization, colour handling, in short: everything!) by Yves
-Arrouye. That release was also the first one to be able to use the full
-width of an A3 paper size. PostScript Printer Description (PPD) files for
-the drivers were released with version 2.15. They are incomplete,
-but they can be used to drive the printers' main features.
-
-<h3><a name="BJC_build"></a>Configuring and building the BJC drivers</h3>
-
-<h4><a name="BJC_defaults"></a>Modify values in
-<b><tt>gdevbjc.h</tt></b></h4>
-
-<p>
-Configure the drivers by modifying the default values in the file
-<b><tt>gdevbjc.h</tt></b> or on the compilation line. If you don't do
-that, the drivers use reasonable defaults that make them work "as
-expected". All default values shown here are defined in that file.
-
-<h4><a name="BJC_CMYK_RGB"></a>CMYK-to-RGB color conversion</h4>
-
-<p>
-By default, the drivers use the same algorithm as Ghostscript to convert
-CMYK colors to RGB. If you prefer to use Adobe formulas, define
-<b><tt>USE_ADOBE_CMYK_RGB</tt></b> when compiling. (See the top of the
-file <b><tt>gdevcdj.c</tt></b> to see the difference between the two.)
-
-<h4><a name="BJC_vertical_centering"></a>Vertical centering of the
-printable area</h4>
-
-<p>
-The drivers center the imageable area horizontally but not vertically, so
-that what can be printed does use the most of the output media. If you
-define <b><tt>BJC_DEFAULT_CENTEREDAREA</tt></b> when compiling, then the
-top and bottom margins will be the same, resulting in a (smaller)
-vertically centered imageable area also.
-
-<h4><a name="BJC_margins"></a>Page margins</h4>
-
-<p>
-If you define <b><tt>USE_RECOMMENDED_MARGINS</tt></b>, then the top and
-bottom margins will be the same (that is,
-<b><tt>BJC_DEFAULT_CENTEREDAREA</tt></b> will be defined for you) and the
-margins will be the 12.4mm recommended by Canon. Since margins are
-complicated (because one must rely on the mechanical precision of the
-printer), the drivers do something about the bottom margin: by default the
-bottom margin is 9.54mm for the BJC-600 driver and 7mm for the BJC-800. If
-you define <b><tt>USE_TIGHT_MARGINS</tt></b>, then the bottom margin is 7mm
-for both drivers (but I never managed to get my own BJC-600 to print a line
-on this low bound, hence the larger default). Regardless of the presence
-of this definition, <b><tt>USE_FIXED_MARGINS</tt></b> will not allow the
-BJC-800 to use the lower 7mm bottom margin, so if you have a problem with
-the bottom margin on a BJC-800, just define that (without defining
-<b><tt>USE_TIGHT_MARGINS</tt></b>, of course).
-
-<p>
-A quick way to be sure the margins you selected is to print a file whose
-contents are:
-
-<blockquote><b><tt>
-%!<br>
-clippath stroke showpage
-</tt></b></blockquote>
-
-<p>
-If the margins are okay, you will get a rectangle visibly surrounding
-the printable area. If they're not correct, one or more of the sides will
-be either incomplete or completely unprinted.
-
-<h4><a name="BJC_compile"></a>Makefile and compilation</h4>
-
-<p>
-Make sure the <b><tt>bjc600</tt></b> or <b><tt>bjc800</tt></b> devices are
-in <a href="Make.htm#Features_and_devices"><b><tt>DEVICE_DEVS</tt></b> in
-the makefile</a>; that is, look in the makefile for your platform and add
-them if necessary -- they may already be there. As of Ghostscript 5.10,
-for instance, one makefile has
-
-<blockquote><b><tt>
-DEVICE_DEVS6=bj10e.dev&nbsp;bj200.dev&nbsp;bjc600.dev&nbsp;bjc800.dev
-</tt></b></blockquote>
-
-<h3><a name="BJC_usage"></a>Use of the drivers</h3>
-
-<p>
-There are two drivers here. The "<b><tt>bjc600</tt></b>" one supports the BJC-600 and
-BJC-4xxx (maybe the BJC-70 as well) and the "<b><tt>bjc800</tt></b>" one supports the
-BJC-800 series. Remarks here that apply to both drivers use the name
-"bjc".
-
-<h4><a name="BJC_options"></a>Supported Options and Defaults</h4>
-
-<p>
-Note: "options", "properties", and "parameters" designate the same thing:
-device parameters that you can change.
-
-<p>
-Giving an option an incorrect value causes an error. Unless stated
-otherwise, this error will be a rangecheckerror. Options may be set from
-the Ghostscript command line (using the <b><tt>-d</tt></b> and
-<b><tt>-s</tt></b> switches or other predetermined switches if they have an
-effect on the driver) or using the PostScript Level 2
-<b><tt>setpagedevice</tt></b> operator if Ghostscript has been compiled
-with the <b><tt>level2</tt></b> or <b><tt>level3</tt></b> device (which it should
-<b><tt>;-)</tt></b>). There are <b>no</b> special-purpose operators such as
-one was able to find in Level 1 printers.
-
-<p>
-The bjc uses 24 bits per pixel by default (unless you change the value of
-<b><tt>BJC_BITSPERPIXEL</tt></b>), corresponding to CMYK printing.
-Supported modes are 1 bpp and 4 bpp (gray levels), 8 bpp, 16 bpp, 24 bpp
-and 32 bpp (colours). Colours are preferably stored in the CMYK model
-(which means, for example, that with 16 bpp there are only 16 different
-shades of each color) but it is possible to store them as RGB color for
-some depths. Some modes do Floyd-Steinberg dithering and some don't, but
-use the default Ghostscript halftoning (in fact, when halftoning is used,
-dithering takes also place but because of the low point density it is
-usually not efficient, and thus invisible).
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Descriptions of printing modes by bpp and <b><tt>Colors</tt></b></font><hr>
-<tr valign=bottom>
- <th align=left>bpp
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left><b><tt>Colors</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Mode
-<tr> <td colspan=5><hr>
-<tr valign=top> <td>32
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td>CMYK colour printing, Floyd-Steinberg dithering
-<tr valign=top> <td>24
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td>The same. (But each primary colour is stored on 6 bits instead of 8.)
-<tr valign=top> <td>24
- <td>&nbsp;
- <td align=center>3
- <td>&nbsp;
- <td>RGB colour printing, Floyd-Steinberg dithering. This mode does
- <b><tt>not</tt></b> use the black cartridge (that's why it
- exists, for when you don't want to use it <b><tt>;-)</tt></b>).
- Each primary colour is stored in 8 bits as in the 32/4 mode,
- but black generation and under-color removal are done on the
- driver side and not by Ghostscript, so you have no control over
- it. (This mode is no longer supported in this driver.)
-<tr valign=top> <td>16
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td>CMYK colour printing, halftoned by Ghostscript. F-S dithering
- is still visible here (but the halftone patterns are visible
- too!).
-<tr valign=top> <td>8
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td>The same. (But each primary colour is stored in 2 bits instead of 4.)
-<tr valign=top> <td>8
- <td>&nbsp;
- <td align=center>3
- <td>&nbsp;
- <td>RGB colour printing. This mode is not intended for use. What I
- mean is that it should be used only if you want to use custom
- halftone screens <b>and</b> the halftoning is broken using the
- 8/4 mode (some versions of Ghostscript have this problem).
-<tr valign=top> <td>8
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td>Gray-level printing, Floyd-Steinberg dithering
-<tr valign=top> <td>1
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td>Gray-level printing halftoned by Ghostscript
-</table></blockquote>
-
-<p>
-These modes are selected using the <b><tt>BitsPerPixel</tt></b> <b>and</b>
-<b><tt>Colors</tt></b> integer options (either from the command line or in
-a PostScript program using <b><tt>setpagedevice</tt></b>). See below.
-
-<p>
-A note about darkness of what is printed: Canon printers do print dark,
-really. And the Floyd-Steinberg dithering may eventually darken your image
-too. So you may need to apply gamma correction by calling Ghostscript as in
-
-<blockquote><b><tt>
-gs -sDEVICE=bjc600 gamma.ps myfile.ps
-</tt></b></blockquote>
-
-<p>
-where <b><tt>gamma.ps</tt></b> changes the gamma correction (here to 3 for
-all colors); 0.45 gives me good results, but your mileage may vary. The
-bigger the value the lighter the output:
-
-<blockquote><b><tt>
-{ 0.45 exp } dup dup currenttransfer setcolortransfer
-</tt></b></blockquote>
-
-<p>
-The drivers support printing at 90dpi, 180dpi and 360dpi. Horizontal and
-vertical resolutions must be the same or a limitcheck error will happen. A
-rangecheck will happen too if the resolution is not
-90&nbsp;&times;2^<small><sup><b>N</b></sup></small>. If the driver
-is compiled with <b><tt>-DBJC_STRICT</tt></b> a rangecheck also happens if
-the resolution is not one of those supported. This is not the case, as we
-expect that there may be a 720dpi bjc some day.
-
-<p>
-Here are the various options supported by the bjc drivers, along with
-their types, supported values, effects, and usage:
-
-<dl>
-<dt><b><tt>BitsPerPixel</tt></b> (int)
-<dd>Choose the depth of the page. Valid values are 1, 8, 16, 24 (the
-default) and 32.
-
-<p>
-Note that when this is set for the first time, the <b><tt>Colors</tt></b>
-property is automatically adjusted unless it is also specified. The table
-here shows the corresponding color models and the rendering method visible:
-"GS" for Ghostscript halftoning and "F-S" for Floyd-Steinberg dithering.
-When both are present it means that the dithering of halftones is visible.
-Default choices are indicated by asterisk "*".
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=9 bgcolor="#CCCC00"><hr><font size="+1">Valid <b><tt>Colors</tt></b> values for<br>allowed <b><tt>BitsPerPixel</tt></b> values
-</font><hr>
-<tr valign=bottom>
- <th align=left>bpp
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left><b><tt>Colors</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>&nbsp;
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Color model
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Dithering
-<tr> <td colspan=9><hr>
-<tr valign=top> <td>32
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td>&nbsp;
- <td align=center>&nbsp;
- <td>CMYK
- <td>&nbsp;
- <td>F-S
-<tr valign=top> <td>24
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td><b>*</b>
- <td align=center>&nbsp;
- <td>CMYK
- <td>&nbsp;
- <td>F-S
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=center>3
- <td>&nbsp;
- <td>&nbsp;
- <td align=center>&nbsp;
- <td>RGB
- <td>&nbsp;
- <td>F-S
-<tr valign=top> <td>16
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td>&nbsp;
- <td align=center>&nbsp;
- <td>CMYK
- <td>&nbsp;
- <td>GS, F-S
-<tr valign=top> <td>8
- <td>&nbsp;
- <td align=center>4
- <td>&nbsp;
- <td><b>*</b>
- <td align=center>&nbsp;
- <td>CMYK
- <td>&nbsp;
- <td>GS
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=center>3
- <td>&nbsp;
- <td>&nbsp;
- <td align=center>&nbsp;
- <td>RGB
- <td>&nbsp;
- <td>GS
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td>&nbsp;
- <td align=center>&nbsp;
- <td>K (CMYK)
- <td>&nbsp;
- <td>F-S
-<tr valign=top> <td>1
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td><b>*</b>
- <td align=center>&nbsp;
- <td>K (CMYK)
- <td>&nbsp;
- <td>GS
-</table></blockquote>
-
-<p>Also note that automagical change of one parameter depending on the
-other one does not work in a <b><tt>setpagedevice</tt></b> call. This
-means that if you want to change <b><tt>BitsPerPixel</tt></b> to a value
-whose valid <b><tt>Colors</tt></b> values do not include the actual
-<b><tt>Colors</tt></b> value, you must change <b><tt>Colors</tt></b> too.
-</dl>
-
-<dl>
-<dt><b><tt>Colors</tt></b> (int)
-<dd>Choose the number of color components from among 1, 3 and 4 (the
-default). This setting cannot be used in a PostScript program, only on
-Ghostscript's command line. See <b><tt>ProcessColorModel</tt></b> below
-for what to use to change the number of colors with PostScript code.
-
-<p>
-Note that setting this property does limit the choices of
-<b><tt>BitsPerPixel</tt></b>. As for the previous property, its first
-setting may induce a setting of the "other value"
-(<b><tt>BitsPerPixel</tt></b> here). The table here indicates valid
-combinations with "V", default values with asterisk "*".
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=13 bgcolor="#CCCC00"><hr><font size="+1">Valid <b><tt>BitsPerPixel</tt></b> values<br>for allowed <b><tt>Colors</tt></b> values</font><hr>
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <th align=left colspan=9><b><tt>BitsPerPixel</tt></b> OK values<hr>
-<tr valign=top> <th>Colors
- <td>&nbsp;&nbsp;
- <th>Type
- <td>&nbsp;&nbsp;
- <td>32
- <td>&nbsp;&nbsp;
- <td>24
- <td>&nbsp;&nbsp;
- <td>16
- <td>&nbsp;&nbsp;
- <td>8
- <td>&nbsp;&nbsp;
- <td>1
-<tr> <td colspan=13><hr>
-<tr valign=top> <td>4
- <td>&nbsp;
- <td>CMYK
- <td>&nbsp;
- <td><b>V</b>
- <td>&nbsp;
- <td><b>*</b>
- <td>&nbsp;
- <td><b>V</b>
- <td>&nbsp;
- <td><b>V</b>
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>3
- <td>&nbsp;
- <td>RGB
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td><b>*</b>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td><b>V</b>
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>1
- <td>&nbsp;
- <td>K
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td><b>V</b>
- <td>&nbsp;
- <td><b>*</b>
-</table></blockquote>
-
-<p>Also note that automagical change of one parameter depending on the
-other one does not work in a <b><tt>setpagedevice</tt></b> call. This
-means that if you want to change <b><tt>Colors</tt></b> to a value whose
-valid <b><tt>BitsPerPixel</tt></b> values don't include the actual
-<b><tt>BitsPerPixel</tt></b> value, you must change
-<b><tt>BitsPerPixel</tt></b> too.
-</dl>
-
-<dl>
-<dt><b><tt>ProcessColorModel</tt></b> (symbol)
-<dd>A symbol taken from <b><tt>/DeviceGray</tt></b>,
-<b><tt>/DeviceRGB</tt></b> or <b><tt>/DeviceCMYK</tt></b> which can be used
-to select 1, 3 or 4 colors respectively. Note that this parameter takes
-precedence over <b><tt>Colors</tt></b>, and that both affect the same
-variable of the driver. (See <b><tt>Colors</tt></b> above for values
-combined with <b><tt>BitsPerPixel</tt></b>.)
-</dl>
-
-<dl>
-<dt><b><tt>HWResolution</tt></b> (floats array)
-<dd>An array of two floats giving the horizontal and vertical resolution in
-dots per inch from among 90, 180 and 360 (the default). Both values must
-be the same. On the Ghostscript command line, the resolution may be
-changed with the <a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b>
-switch</a>.
-</dl>
-
-<dl>
-<dt><b><tt>ManualFeed</tt></b> (bool)
-<dd>Indicate that the sheets won't be fed automatically by the printer,
-<b><tt>false</tt></b> by default. (Not meaningful on the BJC-600, I fear.)
-</dl>
-
-<dl>
-<dt><b><tt>MediaType</tt></b> (string)
-<dd>The media to print on, chosen from among "<b><tt>PlainPaper</tt></b>",
-"<b><tt>CoatedPaper</tt></b>", "<b><tt>TransparencyFilm</tt></b>",
-"<b><tt>Envelope</tt></b>", "<b><tt>Card</tt></b>" and
-"<b><tt>Other</tt></b>". Default is "<b><tt>PlainPaper</tt></b>". For
-"<b><tt>Envelope</tt></b>", "<b><tt>Card</tt></b>" or
-"<b><tt>Other</tt></b>" the driver puts the printer into thick mode
-automatically regardless of the actual media weight.
-</dl>
-
-<dl>
-<dt><b><tt>MediaWeight</tt></b> (int or null)
-<dd>The weight of the media in grams per square meter. Null (the default)
-indicates that the weight is of no importance. If the specified media
-weight is greater than 105 (that is, the value of the compilation default
-<b><tt>BJC</tt></b>???<b><tt>_MEDIAWEIGHT_THICKLIMIT</tt></b>) then the
-printer will be set to use thick paper.
-</dl>
-
-<dl>
-<dt><b><tt>PrintQuality</tt></b> (string)
-<dd>The quality of printing.
-<table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Value
- <td>&nbsp;&nbsp;
- <th align=left><b><tt>bjc600</tt></b>
- <td>&nbsp;&nbsp;
- <th align=left><b><tt>bjc800</tt></b>
- <td>&nbsp;&nbsp;
- <th align=left>&nbsp;
-<tr> <td colspan=7><hr>
-<tr valign=top> <td><b><tt>Low</tt></b>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td>Has the effect of making only two printing passes instead of four, so should be twice the speed; known as "CN" (Color Normal) mode
-<tr valign=top> <td><b><tt>Draft</tt></b>
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td>Unlights the "HQ" light on a BJC-600
-<tr valign=top> <td><b><tt>Normal</tt></b>
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td>Default for both drivers; lights the "HQ" light on a BJC-600
-<tr valign=top> <td><b><tt>High</tt></b>
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td align=center><b>X</b>
- <td>&nbsp;
- <td>Means 200% black and 100% CMY; lights the "Bk+" light on a BJC-600
-</table>
-</dl>
-
-<dl>
-<dt><b><tt>DitheringType</tt></b> (string)
-<dd>Dithering algorithm from between "<b><tt>Floyd-Steinberg</tt></b>" and
-"<b><tt>None</tt></b>". "<b><tt>None</tt></b>" is the default for 1/1 print
-mode, "<b><tt>Floyd-Steinberg</tt></b>" for other modes. At the moment
-this parameter is read-only, though no error is generated if one tries to
-change it. This parameter is not of much value at the moment and is here
-mainly to reserve the name for future addition of dithering algorithms.
-</dl>
-
-<dl>
-<dt><b><tt>PrintColors</tt></b> (int)
-<dd>Mask for printing color. If 0, use black for any color; otherwise the
-value must be the sum of any of 1 (cyan), 2 (magenta), 4 (yellow) and 8
-(black), indicating which colors will be used for printing. When printing
-colour, only colours specified will be printed (this means that some planes
-will be missing if a color's value above is omitted). When printing grays,
-black is used if it is present in the <b><tt>PrintColors</tt></b>;
-otherwise, the image is printed by superimposing each requested color.
-</dl>
-
-<dl>
-<dt><b><tt>MonochromePrint</tt></b> (bool)
-<dd><b>For <tt>bjc600</tt> only</b>, <b><tt>false</tt></b> by default.
-Substitute black for Cyan, Magenta and Yellow when printing -- useful, for
-example, to get some monochrome output of a dithered printing This is a
-hardware mechanism as opposed to the previous software one. I think that
-using this or setting <b><tt>PrintColors</tt></b> to 0 will give the same
-results.
-</dl>
-
-<p>
-Note that the <b><tt>MediaType</tt></b> and <b><tt>ThickMedia</tt></b>
-options will be replaced by the use of the device
-<b><tt>InputAttributes</tt></b> and <b><tt>OutputAttributes</tt></b> as
-soon as possible. Please note too that the print mode may be reset at the
-start of printing, not at the end. This is the expected behaviour. If you
-need to reset the printer to its default state, simply print a file that
-does just a <b><tt>showpage</tt></b>.
-
-<h4><a name="BJC_device_info"></a>Device information</h4>
-
-<p>
-Here is other information published by the driver that you will find
-in the <b><tt>deviceinfo</tt></b> dictionary.
-
-<dl>
-<dt><b><tt>OutputFaceUp</tt></b> (bool)
-<dd>This has the boolean value <b><tt>true</tt></b>, indicating that the
-sheets are stacked face up.
-</dl>
-
-<dl>
-<dt><b><tt>Version</tt></b> (float)
-<dd>In the form <b>M.</b><em>mm</em>pp, where <b>M</b> is the major
-version, <em>mm</em> the bjc driver's minor version, and pp the specific
-driver minor version (that is, <b><tt>M.</tt></b><em>mm</em> will always be
-the same for the <b><tt>bjc600</tt></b> and <b><tt>bjc800</tt></b>
-drivers).
-</dl>
-
-<dl>
-<dt><b><tt>VersionString</tt></b> (string)
-<dd> A string showing the driver version and other indications. At the
-moment, things like "a" or "b" may follow the version to indicate alpha or
-beta versions. The date of the last change to this version is given in the
-form MM/DD/YY (no, it won't adapt to your locale).
-</dl>
-
-<h4><a name="BJC_HW_margins"></a>Hardware margins</h4>
-
-<p>
-The BJC printers have top and bottom hardware margins of 3mm and 7.1mm
-respectively (Canon says 7mm, but this is unusable because of the rounding
-of paper sizes to PostScript points). The left margin is 3.4mm for A4 and
-smaller paper sizes, 6.4mm for U.S. paper sizes, envelopes and cards. It
-is 4.0mm for A3 paper on the BJC-800.
-
-<p>
-The maximum printing width of a BJC-600 printer is 203mm. The maximum
-printing width of a BJC-800 printer is 289mm on A3 paper, 203mm on
-U.S. letter and ISO A4 paper.
-
-<h4><a name="BJC_PPD"></a>PostScript printer description (PPD) files</h4>
-
-<p>
-The files <b><tt>CBJC600.PPD</tt></b> and <b><tt>CBJC800.PPD</tt></b> (whose
-long names are, respectively, <b><tt>Canon_BubbleJetColor_600.ppd</tt></b>
-and <b><tt>Canon_BubbleJetColor_800.ppd</tt></b>) are PPD files to drive the
-features of the <b><tt>bjc600</tt></b> and <b><tt>bjc800</tt></b> drivers.
-They can be used, for example, on NextStep systems (presumably on OpenStep
-systems too) and on Unix systems with Adobe's TranScript and
-<b><tt>pslpr</tt></b> (not tested). The files are not complete at the
-moment. Please note that NextStep's printing interface does not
-correctly enforce constraints specified in these files (in UIConstraints
-descriptions): you must force yourself to use valid combinations of
-options.
-
-<h4><a name="BJC_PPD_custom"></a>Customizing the PPD files</h4>
-
-<p>
-By default the PPD files are set for U.S. letter size paper, and they use a
-normalized transfer function. If you choose to use A4 printing by default,
-you must replace "<b><tt>Letter</tt></b>" with "<b><tt>A4</tt></b>" in
-these (noncontiguous) lines:
-
-<blockquote>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
-<b><tt>*DefaultPageSize: Letter<br></tt></b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
-<b><tt>*DefaultRegion: Letter<br></tt></b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
-<b><tt>*DefaultImageableArea: Letter</tt></b><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
-</blockquote>
-
-<p>
-Some versions of Ghostscript have problems with normalized colors, which
-makes them add magenta in gray levels. If you experience this problem,
-in the PPD file replace the line
-
-<blockquote><b><tt>
-*DefaultTransfer: Normalized
-</tt></b></blockquote>
-
-<p>
-with the alternate line
-
-<blockquote><b><tt>
-*DefaultTransfer: Null
-</tt></b></blockquote>
-
-<p>
-The "thick media" option is implemented by choosing a value of 120 or 80
-(for thick and thin media respectively) for the <b><tt>MediaWeight</tt></b>
-feature of the drivers. If you ever change the threshold for thick media
-in the driver code, you may need to change the values in the PPD files too.
-
-<p>
-All customization should be done using the "<b><tt>*Include:</tt></b>"
-feature of PPD files so that your local changes will be retained if you
-update the PPD files.
-
-<h3><a name="BJC_bugs"></a>How to report problems</h3>
-
-<p>
-Yves Arrouye no longer maintains this driver, and will not answer questions
-about it. If you are posting a question about it in a public form, please
-be as descriptive as possible, and please send information that can be used
-to reproduce the problem. Don't forget to say which driver you use, and in
-what version. Version information can be found in the source code of the
-driver or by issuing the following command in a shell:
-
-<blockquote><b><tt>
-echo&nbsp;"currentpagedevice&nbsp;/VersionString&nbsp;get&nbsp;=="&nbsp;|&nbsp;gs&nbsp;-q&nbsp;-sDEVICE=bjc600&nbsp;-
-</tt></b></blockquote>
-
-<h3><a name="BJC_acks"></a>Acknowledgements</h3>
-
-<p>
-I am particularly grateful to Yoshio Kuniyoshi &lt;<a
-href="mailto:yoshio@nak.math.keio.ac.jp">yoshio@nak.math.keio.ac.jp</a>&gt;
-without whom I'd never make these drivers, and also to L. Peter Deutsch,
-who answered all my (often silly) questions about Ghostscript's driver
-interface.
-
-<p>
-Thanks also to the people who volunteered to beta-test the v2.x BJC
-drivers: David Gaudine
-&lt;<a href="mailto:david@donald.concordia.ca">david@donald.concordia.ca</a>&gt;,
-Robert M. Kenney &lt;<a href="mailto:rmk@unh.edu">rmk@unh.edu</a>&gt;,
-James McPherson
-&lt;<a href="mailto:someone@erols.com">someone@erols.com</a>&gt;
-and Ian Thurlbeck
-&lt;<a href="mailto:ian@stams.strath.ac.uk">ian@stams.strath.ac.uk</a>&gt;
-(listed alphabetically) were particularly helpful by discovering bugs and
-helping find out exact paper margins on printers I don't have access to.
-
-<p>
-And many thanks to Klaus-Gunther Hess
-&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt; for looking
-at the dithering code and devising a good CMYK dithering algorithm for the
-Epson Stylus Color, which I then adapted to the code of these drivers.
-
-<hr>
-
-<h2><a name="STC_epson_stylus"></a>Epson Stylus color printer (see also <b><tt>uniprint</tt></b>)</h2>
-
-<p>
-This section was contributed by Gunther Hess
-&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;, who also wrote
-<b><tt>uniprint</tt></b>, a later set of drivers. You should probably see
-the section on <a href="#Uniprint"><b><tt>uniprint</tt></b></a> for whether
-it might be better for your uses than this driver.
-
-<h3><a name="STC_usage"></a>Usage</h3>
-
-<p>
-
-This driver is selected with "<b><tt>-sDEVICE=stcolor</tt></b>", producing
-output for an Epson Stylus Color at 360dpi resolution by default. But it
-can do much more with this printer, and with significantly better quality,
-than with the default mode; and it can also produce code for monochrome
-versions of the printer. This can be achieved via either command-line
-options or Ghostscript input. For convenience a PostScript file is
-supplied for use as an initial input file. Try the following command:
-
-<blockquote>
-<b><tt>gs -sDEVICE=stcolor -r</tt></b><b>{Xdpi}</b><b><tt>x</tt></b><b>{Ydpi}</b><b><tt> stcolor.ps</tt></b> <b>{YourFile.ps}</b>
-</blockquote>
-
-<p>
-where <b>{Xdpi}</b> is one of 180, 360, or 720 and <b>{Ydpi}</b> is one of
-90, 180, 360, or 720. The result should be significantly better. You may
-use <b><tt>stcolor.ps</tt></b> with other devices too, but I do not
-recommend this, since it does nothing then. <b><tt>stcolor.ps</tt></b>
-should be available with binary distributions and should reside in the same
-directory as other Ghostscript initialization files or in the same
-directory as the files to be printed. Thus if Ghostscript is part of your
-printer-spooler, you can insert
-
-<blockquote><b><tt>
-(stcolor.ps) findlibfile { pop run } if pop
-</tt></b></blockquote>
-
-<p>
-in files you want to use the improved algorithms. You may want to adapt
-<b><tt>stcolor.ps</tt></b> file to your specific needs. The methods and
-options for this are described here, but this description is restricted to
-Ghostscript options, while their manipulation at the PostScript level is
-documented in the material on <a href="Language.htm">the relationship of
-Ghostscript and PostScript</a> and in <b><tt>stcolor.ps</tt></b>.
-
-<h3><a name="STC_options"></a>Options</h3>
-
-<p>
-Now to explain the options (as written on my UNIX system). The order is
-somehow related to their use during the printing process:
-
-<dl>
-<dt><b><tt>-dUnidirectional</tt></b>
-<dd>Force unidirectional printing, recommended for transparencies
-</dl>
-
-<dl>
-<dt><b><tt>-dMicroweave</tt></b>
-<dd>Enable the printer's "microweave" feature; see
-"<a href="#What_is_weaving">What is weaving?</a>" below.
-</dl>
-
-<dl>
-<dt><b><tt>-dnoWeave</tt></b>
-<dd>Disable any Weaving (overrides <b><tt>-dMicroweave</tt></b>)
-</dl>
-
-<dl>
-<dt><b><tt>-dSoftweave</tt></b>
-<dd>Enable the driver's internal weaving. Note that <b><tt>Softweave</tt></b> works <b>only</b> with the original Stylus Color and the PRO-Series.
-</dl>
-
-<dl>
-<dt><b><tt>-sDithering=</tt></b><em>{name}</em>
-<dd>Select another dithering algorithm (name) from among
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>gscmyk</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>fast color output, CMYK process color model (default)
-<tr valign=top> <td><b><tt>gsmono</tt></b>
- <td>&nbsp;
- <td>fast monochrome output
-<tr valign=top> <td><b><tt>gsrgb</tt></b>
- <td>&nbsp;
- <td>fast color output, RGB process color model
-<tr valign=top> <td><b><tt>fsmono</tt></b>
- <td>&nbsp;
- <td>Floyd-Steinberg, monochrome
-<tr valign=top> <td><b><tt>fsrgb</tt></b>
- <td>&nbsp;
- <td>Floyd-Steinberg, RGB process color model (almost identical to the <b><tt>cdj550</tt></b>/<b><tt>bjc</tt></b> algorithm)
-<tr valign=top> <td><b><tt>fsx4</tt></b>
- <td>&nbsp;
- <td>Floyd-Steinberg, CMYK process color model (shares code with <b><tt>fsmono</tt></b> and <b><tt>fsrgb</tt></b>, but is algorithmically really bad)
-<tr valign=top> <td><b><tt>fscmyk</tt></b>
- <td>&nbsp;
- <td>Floyd-Steinberg, CMYK process color model and proper modifications for CMYK
-<tr valign=top> <td><b><tt>hscmyk</tt></b>
- <td>&nbsp;
- <td>modified Floyd-Steinberg with CMYK model ("hs" stands for "hess" not for "high speed", but the major difference from <b><tt>fscmyk</tt></b> is speed)
-<tr valign=top> <td><b><tt>fs2</tt></b>
- <td>&nbsp;
- <td>algorithm by Steven Singer (RGB) should be identical to <b><tt>escp2cfs2</tt></b>.
-</table></blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>-dBitsPerPixel=</tt></b><em>{1...32}</em>
-<dd>number of bits used for pixel storage; the larger the value, the better
-the quality -- at least in theory. In <b><tt>fsrgb</tt></b> one can gain
-some speed by restricting to 24 bits rather than the default 30.
-</dl>
-
-<dl>
-<dt><b><tt>-dFlag0</tt></b>
-<dd>causes some algorithms to select a uniform initialisation rather than a
-set of random values. May yield a sharper image impression at the cost of
-dithering artifacts. (Applies to <b><tt>hscmyk</tt></b> and all fs modes,
-except for fs2, which always uses a constant initialization.)
-</dl>
-
-<dl>
-<dt><b><tt>-dFlag1</tt></b> ... <b><tt>-dFlag4</tt></b>
-<dd>Available for future algorithms.
-</dl>
-
-<dl>
-<dt><b><tt>-dColorAdjustMatrix='{</tt></b><em>three, nine, or sixteen
-floating-point values</em><b><tt>}'</tt></b>
-<dd>This is a matrix to adjust the colors. Values should be between -1.0
-and 1.0, and the number of values depends on the color model the selected
-algorithm uses. In RGB and CMYK modes a matrix with 1.0 on the diagonal
-produces no transformation. This feature is really required, but I could
-not identify a similar feature at the language level, so I implemented it,
-but I don't know reasonable values yet.
-</dl>
-
-<dl>
-<dt><b><tt>-dCtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> or
-<dt><b><tt>-dMtransfer=</tt></b>..., <b><tt>-dY</tt></b>..., <b><tt>-dK</tt></b>... or
-<dt><b><tt>-dRtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> or
-<dt><b><tt>-dG</tt></b>..., <b><tt>-dB</tt></b>... or
-<dt><b><tt>-dKtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b>
-<dd>Which you use depends on the algorithm, which may be either either
-CMYK, RGB or monochrome. The values are arrays of floats in the range from
-0 to 1.0, representing the visible color intensity for the device. One may
-achieve similar effects with <b><tt>setcolortransfer</tt></b> at the
-language level, but this takes more time and the underlying code for the
-driver-specific parameters is still required. The size of the arrays is
-arbitrary and the defaults are "<b><tt>{0.0&nbsp;1.0}</tt></b>", which is a
-linear characteristic. Most of the code in <b><tt>stcolor.ps</tt></b> are
-better transfer arrays.
-</dl>
-
-<dl>
-<dt><b><tt>-dKcoding='{</tt></b><em>float...</em><b><tt>}'</tt></b>
-<dt><b><tt>-dC</tt></b>..., <b><tt>-dM</tt></b>... etc.
-<dd>Arrays between 0.0 and 1.0, controlling the internal coding of the
-color values. Clever use of these arrays may yield further enhancements,
-but I have no experience yet. (To be discontinued with version 2.x.)
-</dl>
-
-<dl>
-<dt><b><tt>-sModel=st800</tt></b>
-<dd>Causes output to be suitable for the monochrome Stylus 800 (no weaving,
-no color).
-</dl>
-
-<dl>
-<dt><b><tt>-sOutputCode=</tt></b><em>{name}</em>
-<dd>Can be either "<b><tt>plain</tt></b>", "<b><tt>runlength</tt></b>" or
-"<b><tt>deltarow</tt></b>" and changes the ESC/P2 coding technique
-used by the driver. The default is to use runlength encoding.
-"<b><tt>plain</tt></b>" selects uncompressed encoding and generates
-enormous amounts of data.
-</dl>
-
-<dl>
-<dt><b><tt>-descp_Band=</tt></b><em>1/8/15/24</em>
-<dd>Number of nozzles of scanlines used in printing, Useful only with
-<b><tt>-dnoWeave</tt></b>. Larger Values yield smaller code, but this
-doesn't increase the printing speed.
-</dl>
-
-<dl>
-<dt><b><tt>-descp_Width=</tt></b><em>N</em>
-<dd>Number of pixels Printed in each scan Line. (Useful only when tuning
-margins; see below)
-</dl>
-
-<dl>
-<dt><b><tt>-descp_Height=</tt></b><em>pixels</em>
-<dd>Length of the entire page in pixels. (Parameter of
-"<b><tt>ESC(C</tt></b>" in default initialization.)
-</dl>
-
-<dl>
-<dt><b><tt>-descp_Top=</tt></b><em>scan lines</em>
-<dd>Top margin in scan lines. (First parameter of "<b><tt>ESC(c</tt></b>"
-in default initialization.)
-</dl>
-
-<dl>
-<dt><b><tt>-descp_Bottom=</tt></b><em>scan lines</em>
-<dd>Bottom margin in scan lines. (Second parameter of
-"<b><tt>ESC(c</tt></b>" in default initialization.)
-</dl>
-
-<dl>
-<dt><b><tt>-sescp_Init=</tt></b>"<em>string</em>"
-<dd>Override for the initialization sequence. (Must set graphics mode 1
-and units.)
-</dl>
-
-<dl>
-<dt><b><tt>-sescp_Release=</tt></b>"<em>string</em>"
-<dd>Overrides the release sequence, "<b><tt>ESC&nbsp;@&nbsp;FF</tt></b>" by
-default.
-</dl>
-
-<p>
-ESC/P2 allows any resolutions to be valid in theory, but only
-<b><tt>-r360x360</tt></b> (the default) and <b><tt>-r720x720</tt></b> (not
-on STC-IIs ? and st800) are known to work with most printers.
-
-<p>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Valid option combinations<br>Stylus I &amp; Pro-Series only</font><hr>
-<tr valign=bottom>
- <th valign=bottom align=left>Resolution
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left><b><tt>escp_Band</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left>Weave usable
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left><b><tt>escp_Band</tt></b> &amp;<br>number of passes
-<tr> <td colspan=7><hr>
-<tr valign=top> <td>180x90
- <td>&nbsp;
- <td>15
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>180x180
- <td>&nbsp;
- <td>1 , 8, 24
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
- <td>&nbsp;
- <td>15/2 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>180x360
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>15/4 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>180x720
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>15/8 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>360x90
- <td>&nbsp;
- <td>15
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>360x180
- <td>&nbsp;
- <td>1, 8, 24
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
- <td>&nbsp;
- <td>15/2 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>360x360
- <td>&nbsp;
- <td>1, 8, 24
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
- <td>&nbsp;
- <td>15/4 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>360x720
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>15/8 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>720x90
- <td>&nbsp;
- <td>15
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>720x180
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>15/2 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>720x360
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>15/4 <b><tt>SoftWeave</tt></b>
-<tr valign=top> <td>720x720
- <td>&nbsp;
- <td>1
- <td>&nbsp;
- <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
- <td>&nbsp;
- <td>15/8 <b><tt>SoftWeave</tt></b>
-</table></blockquote>
-
-<blockquote>
-<b>Beware:</b> there are only few validity checks for parameters. A good
-example is <b><tt>escp_Band</tt></b>: if you set this, the driver uses your
-value even if the value is not supported by the printer. <b>You asked for
-it and you got it!</b>
-</blockquote>
-
-<h3><a name="STC_FAQ"></a>Application note and FAQ</h3>
-
-<p>
-Quite a bunch of parameters. Hopefully you never need any of them, besides
-feeding <b><tt>stcolor.ps</tt></b> to Ghostscript in front of your input.
-
-<p>
-After answering some questions over fifty times I prepared a FAQ. Here is
-version 1.3 of the FAQ, as of <b><tt>stcolor</tt></b> version 1.20 (for
-Ghostscript 3.50).
-
-<h4><a name="STC_FAQ_A3"></a>Support for A3 paper</h4>
-
-<p>
-Yes, this driver supports the A3-size printer: merely set the required
-pagesize and margins. A simple way to do this is to specify the
-command-line switch "<b><tt>-sPAPERSIZE=a3</tt></b>" or include the
-procedure call "<b><tt>a3</tt></b>" in the PostScript prolog section. To
-optimize the printable area or set the proper margins, see the next
-paragraph.
-
-<h4><a name="STC_FAQ_margins"></a>Margins, PageSize</h4>
-
-<p>
-I refuse to add code to <b><tt>stcolor</tt></b> that tries to guess the
-proper margins or page size, because I found that such guessing is usually
-wrong and needs correction in either the source or the parameters. You can
-modify <b><tt>stcolor.ps</tt></b> to do that, however. After the line
-
-<blockquote><b><tt>
-mark % prepare stack for "putdeviceprops"
-</tt></b></blockquote>
-
-<p>
-insert these lines, which define page size and margins in points:
-
-<blockquote>
-<pre>/.HWMargins [9.0 39.96 12.6 9.0] % Left, bottom, right, top (1/72")
-/PageSize [597.6 842.4] % Paper, including margins (1/72")
-/Margins [ % neg. Offset to Left/Top in Pixels
- 4 index 0 get STCold /HWResolution get 0 get mul 72 div neg
- 5 index 3 get STCold /HWResolution get 1 get mul 72 div neg
-]</pre></blockquote>
-
-<p>
-Feel free to change the values of <b><tt>.HWMargins</tt></b> and
-<b><tt>PageSize</tt></b> to match your needs; the values given are the
-defaults when the driver is compiled with "<b><tt>-DA4</tt></b>". This
-option or its omission may cause trouble: the Stylus Color can print up to
-exactly 8 inches (2880 pixels) at 360dpi. The remaining paper is the
-margin, where the left margin varies only slightly with the paper size,
-while the right margin is significantly increased for wider paper, such as
-U.S. letter size.
-
-<p>
-<b>Note</b> that if you are using an ISO paper size with a version of
-<b><tt>stcolor</tt></b> after 1.20 and compiled without
-"<b><tt>-DA4</tt></b>", then the default margin is too large, and you need
-to add the proper "<b><tt>.HWMargins</tt></b>" to the command line or to
-<b><tt>stcolor.ps</tt></b>.
-
-<h4><a name="STC_FAQ_II_IIS_1500"></a>Stylus Color II / IIs and 1500</h4>
-
-<p>
-First the good news: the driver can print on the Stylus Color II.
-Now the bad news:
-<ul>
-<li>According to Epson support the driver "abuses" the color
-capabilities. (See "Future Plans" for details.)
-<li>You need some parameters on the command line (or in
-<b><tt>stcolor.ps</tt></b>).
-<li>I doubted that it would be usable with the Stylus Color IIs, but
-it <b>is</b> usable and suffers from mixing problems!
-</ul>
-
-<p>
-
-To make things work, you <b>MUST</b> disable the driver's internal
-weaving (<b><tt>Softweave</tt></b>), in one of these two ways:
-
-<blockquote>
-<b><tt>gs -dMicroweave</tt></b> ...<br>
-<b><tt>gs -dnoWeave -descp_Band=1</tt></b> ...
-</blockquote>
-
-<p>
-Version 1.90, current as of Ghostscript 5.10, fixes this bug by new default
-behaviour. I experienced significantly increased printing speed with the
-second variant on the old Stylus Color, when printing mostly monochrome
-data.
-
-<h3><a name="STC_recommendations"></a>Recommendations</h3>
-
-<p>
-The next section is a contribution from Jason Patterson &lt;jason@reflections.com.au&gt;
-who evaluated a previous version (1.17). Ghostscript was invoked as follows:
-
-<blockquote><dl compact>
-<dt><b><tt>gs</tt></b>
-<dd><b><tt>-sDEVICE=stcolor -r720x720
--sDithering=</tt></b>... <b><tt>-sOutputFile=escp.out stcolor.ps
-whatsoever.ps</tt></b>
-
-</dl></blockquote>
-
-<p>
-where "..." is the name of the desired algorithm.
-<b><tt>stcolor.ps</tt></b> was omitted for the gs-algorithms
-(<b><tt>gsmono</tt></b>, <b><tt>gsrgb</tt></b> and <b><tt>gscmyk</tt></b>),
-for which it is useless and would not allow the selection of
-"<b><tt>gscmyk</tt></b>".
-
-<h4><a name="STC_dither_experiment"></a>Color dithering experiments with
-<b><tt>gdevstc</tt></b> 1.21</h4>
-
-<p>
-Here are data about the EPSON Stylus Color driver's different dithering
-methods, based on a little experiment using four good quality scanned
-images of quite varied nature, to begin with, a summary of the results of
-the four experiments. <b>Sanity note:</b> the results here are from only
-four images and a total of 24 printouts (eight on 720dpi paper, sixteen on
-plain paper). Your results will almost certainly vary, and your standards
-might not be the same as mine, so use these results only as a guide, not as
-a formal evaluation.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Quality of output by method</font><hr>
-<tr valign=bottom>
- <th align=left>
- <td>&nbsp;&nbsp;
- <th align=left>
-<tr> <td colspan=3><hr>
-<tr> <td valign=top><b><tt>gsmono</tt></b>
-<td>&nbsp;&nbsp;&nbsp;&nbsp;
-<td>Pretty much what you'd expect from a mono ordered pattern.
-Looks like what a lot of mono laser printers produce.
-<tr> <td valign=top><b><tt>fsmono</tt></b>
-<td>&nbsp;
-<td>Excellent for monochrome.
-<tr> <td valign=top><b><tt>gscmyk</tt></b>
-<td>&nbsp;
-<td>Not very good, but expected from an ordered pattern.
-<tr> <td valign=top><b><tt>gsrgb</tt></b>
-<td>&nbsp;
-<td>A little better than <b><tt>gscmyk</tt></b>. More consistent
-looking.
-<tr> <td valign=top><b><tt>fs2</tt></b>
-<td>&nbsp;
-<td>Good, but not quite as good as <b><tt>fsrgb</tt></b>. Gets the
-brightness wrong: too light at 720dpi, too dark at 360dpi.
-<tr> <td valign=top><b><tt>fsrgb</tt></b>
-<td>&nbsp;
-<td>Very good, but a little too dark and has a slight blue tint.
-<tr> <td valign=top><b><tt>hscmyk</tt></b>
-<td>&nbsp;
-<td>Excellent. Slightly better than <b><tt>fsrgb</tt></b> and
-<b><tt>fs2</tt></b>. Better than <b><tt>fscmyk</tt></b> on
-some images, almost the same on most.
-<tr> <td valign=top><b><tt>fscmyk</tt></b>
-<td>&nbsp;
-<td>Best. Very, very slightly better than <b><tt>hscmyk</tt></b>.
-On some images nearly as good as the EPSON demos done with
-the MS Windows driver.
-</table></blockquote>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=4 bgcolor="#CCCC00"><hr><font size="+1">Overall visual quality (1-10), best to worst</font><hr>
-<tr valign=top> <th colspan=4 align=left>Monochrome
-<tr> <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td><b><tt>fsmono</tt></b>
- <td>&nbsp;&nbsp;
- <td><b><tt>******************</tt></b>
-<tr> <td>&nbsp;
- <td><b><tt>gsmono</tt></b>
- <td>&nbsp;
- <td><b><tt>**********</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td><b><tt>0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10</tt></b>
-<tr> <td colspan=4><hr>
-<tr valign=top> <th colspan=4 align=left>Colour
-<tr> <td>&nbsp;
- <td><b><tt>fscmyk</tt></b>
- <td>&nbsp;
- <td><b><tt>*******************</tt></b>
-<tr> <td>&nbsp;
- <td><b><tt>hscmyk</tt></b>
- <td>&nbsp;
- <td><b><tt>*******************</tt></b>
-<tr> <td>&nbsp;
- <td><b><tt>fsrgb</tt></b>
- <td>&nbsp;
- <td><b><tt>******************</tt></b>
-<tr> <td>&nbsp;
- <td><b><tt>fs2</tt></b>
- <td>&nbsp;
- <td><b><tt>*****************</tt></b>
-<tr> <td>&nbsp;
- <td><b><tt>gsrgb</tt></b>
- <td>&nbsp;
- <td><b><tt>**********</tt></b>
-<tr> <td>&nbsp;
- <td><b><tt>gscmyk</tt></b>
- <td>&nbsp;
- <td><b><tt>*********</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td><b><tt>0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10</tt></b>
-</table></blockquote>
-
-<h3><a name="STC_color_transform"></a>Color transformation</h3>
-
-<p>
-In the initial version of the driver distributed with Ghostscript 3.33, the
-parameter "<b><tt>SpotSize</tt></b>" was the only way to manipulate the
-colors at the driver level. According to the parameters enumerated above,
-this has changed significantly with version 1.16 and above as a result an
-ongoing discussion about dithering algorithms and "false color" on the
-Epson Stylus Color. This initiated the transformation of the
-<b><tt>stcolor</tt></b> driver into a framework for different dithering
-algorithms, providing a generalized interface to the internal Ghostscript
-color models and the other data structures related to Ghostscript drivers.
-
-<p>
-The main thing such a framework should be able to do is to deliver the
-values the dithering algorithm needs; and since this directly influences
-the optical image impression, this transformation should be adjustable
-without the need for recompilation and relinking. In general the process
-can be described as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td colspan=3><b><tt>ColorAdjustMatrix</tt></b>
- <td align=center>Coding
- <td colspan=3>&nbsp;
- <td align=center>Transfer
- <td colspan=3>&nbsp;
-<tr valign=top> <td>|
- <td align=center>Ghostscript color
- <td>|
- <td align=center>=&gt;
- <td>|
- <td align=center>Ghostscript raster
- <td>|
- <td align=center>=&gt;
- <td>|
- <td align=center>Dithering data
- <td>|
-<tr valign=top> <td>|
- <td>&nbsp;
- <td>|
- <td>&nbsp;
- <td>|
- <td align=center>1/2/4/8/16/32-bit
- <td>|
- <td>&nbsp;
- <td>|
- <td>&nbsp;
- <td>|
-<tr valign=top> <td>|
- <td align=center>1/3/4 16-bit values
- <td>|
- <td>&nbsp;
- <td>|
- <td align=center>1/3/4 values
- <td>|
- <td>&nbsp;
- <td>|
- <td align=center>(arbitrary type)
- <td>|
-</table></blockquote>
-
-<p>
-Due to the limitations on raster storage, information is lost in the first
-transformation step, except for the 16-bit monochrome mode. So any color
-adjustment should take place before this step and this is where the optional
-<b><tt>ColorAdjustMatrix</tt></b> works.
-
-<p>
-The first transformation step, called "coding", is controlled by the
-<b><tt>?coding</tt></b> arrays. The decoding process expands the range of
-values expontentially to a larger range than that provided by the initial
-Ghostscript color model, and is therefore a reasonable place to make
-device- or algorithm-specific adjustments. This is where the
-<b><tt>?transfer</tt></b> arrays are used. Array access might be not the
-fastest method, but its generality is superior, so this step is always
-based upon internally algorithm-specific array access. If 8 bits are stored
-per color component and if the algorithm uses bytes too, the second
-transformation is included within the first, which saves significant
-computation time when printing the data.
-
-<h3><a name="STC_CAM"></a><b><tt>ColorAdjustMatrix</tt></b></h3>
-
-<p>
-The driver supports different values for <b><tt>ProcessColorModel</tt></b>,
-which raises the need for different color adjustments. Here
-"<b><tt>CAM</tt></b>" stands for "<b><tt>ColorAdjustMatrix</tt></b>".
-
-<dl>
-<dt><b><tt>DeviceGray</tt></b> (three floats)
-<dd><pre>if ((r == g) &amp;&amp; (g == b))
- K' = 1.0 - R;
-else
- K' = 1.0 - CAM[0] * R + CAM[1] * G + CAM[2] * B;</pre>
-
-<p>
-According to the <a href="Drivers.htm">documentation on drivers</a>, the
-latter (the "else" clause) should never happen.
-</dl>
-
-<dl>
-<dt><b><tt>DeviceRGB</tt></b> (nine floats)
-<dd><pre>if((r == g) &amp;&amp; (g == b))
- R' = B' = G' = R;
-else
- R' = CAM[0]*R + CAM[1]*G + CAM[2]*B;
- G' = CAM[3]*R + CAM[4]*G + CAM[5]*B;
- B' = CAM[6]*R + CAM[7]*G + CAM[8]*B;</pre>
-
-<p>
-The printer always uses four inks, so a special treatment of black is
-provided. Algorithms may take special action if R, G, and B are all
-equal.
-</dl>
-
-<dl>
-<dt><b><tt>DeviceCMYK</tt></b> (sixteen floats)
-<dd>
-<pre>if((c == m) &amp;&amp; (m == y))
- K' = max(C,K);
- C' = M' = Y' = 0;
-else
- K = min(C,M,Y);
- if((K &gt; 0) &amp;&amp; ColorAdjustMatrix_present) { =&gt; UCR
- C -= K;
- M -= K;
- Y -= K;
- }
-
- C' = CAM[ 0]*C + CAM[ 1]*M + CAM[ 2]*Y + CAM[ 3]*K;
- M' = CAM[ 4]*C + CAM[ 5]*M + CAM[ 6]*Y + CAM[ 7]*K;
- Y' = CAM[ 8]*C + CAM[ 9]*M + CAM[10]*Y + CAM[11]*K;
- K' = CAM[12]*C + CAM[13]*M + CAM[14]*Y + CAM[15]*K;</pre>
-
-<p>
-Again we have a special black treatment. "<b><tt>max(C,K)</tt></b>" was introduced
-because of a slight misbehaviour of Ghostscript, which delivers
-black under certain circumstances as (1,1,1,0). Normally, when
-no special black separation and undercolor removal procedures
-are defined at the PostScript level, either (C,M,Y,0) or (0,0,0,K)
-values are mapped. This would make the extended <b><tt>ColorAdjustMatrix</tt></b>
-quite tedious, and so during mapping, black separation is done for
-(C,M,Y,0) requests; and if there is a <b><tt>ColorAdjustMatrix</tt></b>, undercolor
-removal is used too. In other words the default matrix is:
-
-<blockquote><table>
-<tr> <td>1 <td>0 <td>0 <td>1
-<tr> <td>0 <td>1 <td>0 <td>1
-<tr> <td>0 <td>0 <td>1 <td>1
-<tr> <td>0 <td>0 <td>0 <td>1
-</table></blockquote>
-
-<p>
-and it is applied to CMYK values with separated and removed black. Raising
-the CMY coefficients while lowering the K coefficients reduces black and
-intensifies color. But be careful, because even small deviations from the
-default cause drastic changes.
-</dl>
-
-<p>
-If no <b><tt>ColorAdjustMatrix</tt></b> is set, the matrix computations are
-skipped. Thus the transformation reduces to range inversion in monochrome
-mode and black separation in CMYK mode.
-
-<h3><a name="STC_RGBCMYK_coding"></a>RGB / CMYK coding and transfer, and <b><tt>BitsPerPixel</tt></b></h3>
-
-<p>
-These two (groups of) parameters are arrays of floating-point numbers in
-the range 0.0 to 1.0. They control the truncation to the desired number of
-bits stored in raster memory (<b><tt>BitsPerPixel</tt></b>) and the ink
-density. The "truncation" may become a nonlinear function if any of the
-<b><tt>?coding</tt></b> arrays is set. Assume the following Ghostscript
-invocation:
-
-<blockquote><pre>gs -sDEVICE=stcolor -sDithering=fscmyk -dBitsPerPixel=16 \
- -dKcoding='{ 0.0 0.09 0.9 1.0 }' \
- -dMcoding='{ 0.0 0.09 0.9 1.0 }' \
- -dKtransfer='{ 0.0 0.09 0.9 1.0 }' \
- -dYtransfer='{ 0.0 0.09 0.9 1.0 }'</pre>
-</blockquote>
-
-<p>
-We may have either or both of <b><tt>?coding</tt></b> and
-<b><tt>?transfer</tt></b>, giving four possible combinations. (These four
-combinations appear in the given example.) The resulting mapping appears
-in the following tables, where except for the internal Indices (4
-components &times; 4 bits = 16 <b><tt>BitsPerPixel</tt></b>), all values
-are normalized to the range 0 to 1. The actual range is 0 to 65535 for the
-Ghostscript color and 0 to 16777215 for the ink values delivered to the
-<b><tt>fscmyk</tt></b> algorithm. Sorry for the bunch of numbers
-following, but you may try this example in conjunction with
-<b><tt>stcinfo.ps</tt></b>, which should give you a graphical printout of
-the following numbers when you issue a <b><tt>showpage</tt></b> command.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <th colspan=5>Cyan<hr>
- <td>&nbsp;
- <th colspan=5>Magenta<hr>
-<tr valign=top> <th>CI/15
- <td>&nbsp;
- <th>gs_color_values
- <td>&nbsp;
- <th>CI
- <td>&nbsp;
- <th>Ink
- <td>&nbsp;
- <th>gs_color_values
- <td>&nbsp;
- <th>CI
- <td>&nbsp;
- <th>Ink
-<tr> <td colspan=13><hr>
-<tr valign=top> <td align=center>0.000
- <td>&nbsp;
- <td align=center>0.000 - 0.062
- <td>&nbsp;
- <td align=right>0
- <td>&nbsp;
- <td align=center>0.000
- <td>&nbsp;
- <td align=center>-0.123 - 0.123
- <td>&nbsp;
- <td align=right>0
- <td>&nbsp;
- <td align=center>0.000
-<tr valign=top> <td align=center>0.067
- <td>&nbsp;
- <td align=center>0.063 - 0.125
- <td>&nbsp;
- <td align=right>1
- <td>&nbsp;
- <td align=center>0.067
- <td>&nbsp;
- <td align=center>0.123 - 0.299
- <td>&nbsp;
- <td align=right>1
- <td>&nbsp;
- <td align=center>0.247
-<tr valign=top> <td align=center>0.133
- <td>&nbsp;
- <td align=center>0.125 - 0.187
- <td>&nbsp;
- <td align=right>2
- <td>&nbsp;
- <td align=center>0.133
- <td>&nbsp;
- <td align=center>0.299 - 0.365
- <td>&nbsp;
- <td align=right>2
- <td>&nbsp;
- <td align=center>0.351
-<tr valign=top> <td align=center>0.200
- <td>&nbsp;
- <td align=center>0.188 - 0.250
- <td>&nbsp;
- <td align=right>3
- <td>&nbsp;
- <td align=center>0.200
- <td>&nbsp;
- <td align=center>0.365 - 0.392
- <td>&nbsp;
- <td align=right>3
- <td>&nbsp;
- <td align=center>0.379
-<tr valign=top> <td align=center>0.267
- <td>&nbsp;
- <td align=center>0.250 - 0.312
- <td>&nbsp;
- <td align=right>4
- <td>&nbsp;
- <td align=center>0.267
- <td>&nbsp;
- <td align=center>0.392 - 0.420
- <td>&nbsp;
- <td align=right>4
- <td>&nbsp;
- <td align=center>0.406
-<tr valign=top> <td align=center>0.333
- <td>&nbsp;
- <td align=center>0.313 - 0.375
- <td>&nbsp;
- <td align=right>5
- <td>&nbsp;
- <td align=center>0.333
- <td>&nbsp;
- <td align=center>0.420 - 0.447
- <td>&nbsp;
- <td align=right>5
- <td>&nbsp;
- <td align=center>0.433
-<tr valign=top> <td align=center>0.400
- <td>&nbsp;
- <td align=center>0.375 - 0.437
- <td>&nbsp;
- <td align=right>6
- <td>&nbsp;
- <td align=center>0.400
- <td>&nbsp;
- <td align=center>0.447 - 0.475
- <td>&nbsp;
- <td align=right>6
- <td>&nbsp;
- <td align=center>0.461
-<tr valign=top> <td align=center>0.467
- <td>&nbsp;
- <td align=center>0.438 - 0.500
- <td>&nbsp;
- <td align=right>7
- <td>&nbsp;
- <td align=center>0.467
- <td>&nbsp;
- <td align=center>0.475 - 0.502
- <td>&nbsp;
- <td align=right>7
- <td>&nbsp;
- <td align=center>0.488
-<tr valign=top> <td align=center>0.533
- <td>&nbsp;
- <td align=center>0.500 - 0.562
- <td>&nbsp;
- <td align=right>8
- <td>&nbsp;
- <td align=center>0.533
- <td>&nbsp;
- <td align=center>0.502 - 0.529
- <td>&nbsp;
- <td align=right>8
- <td>&nbsp;
- <td align=center>0.516
-<tr valign=top> <td align=center>0.600
- <td>&nbsp;
- <td align=center>0.563 - 0.625
- <td>&nbsp;
- <td align=right>9
- <td>&nbsp;
- <td align=center>0.600
- <td>&nbsp;
- <td align=center>0.529 - 0.557
- <td>&nbsp;
- <td align=right>9
- <td>&nbsp;
- <td align=center>0.543
-<tr valign=top> <td align=center>0.667
- <td>&nbsp;
- <td align=center>0.625 - 0.687
- <td>&nbsp;
- <td align=right>10
- <td>&nbsp;
- <td align=center>0.667
- <td>&nbsp;
- <td align=center>0.557 - 0.584
- <td>&nbsp;
- <td align=right>10
- <td>&nbsp;
- <td align=center>0.571
-<tr valign=top> <td align=center>0.733
- <td>&nbsp;
- <td align=center>0.688 - 0.750
- <td>&nbsp;
- <td align=right>11
- <td>&nbsp;
- <td align=center>0.733
- <td>&nbsp;
- <td align=center>0.584 - 0.612
- <td>&nbsp;
- <td align=right>11
- <td>&nbsp;
- <td align=center>0.598
-<tr valign=top> <td align=center>0.800
- <td>&nbsp;
- <td align=center>0.750 - 0.812
- <td>&nbsp;
- <td align=right>12
- <td>&nbsp;
- <td align=center>0.800
- <td>&nbsp;
- <td align=center>0.612 - 0.639
- <td>&nbsp;
- <td align=right>12
- <td>&nbsp;
- <td align=center>0.626
-<tr valign=top> <td align=center>0.867
- <td>&nbsp;
- <td align=center>0.813 - 0.875
- <td>&nbsp;
- <td align=right>13
- <td>&nbsp;
- <td align=center>0.867
- <td>&nbsp;
- <td align=center>0.639 - 0.715
- <td>&nbsp;
- <td align=right>13
- <td>&nbsp;
- <td align=center>0.653
-<tr valign=top> <td align=center>0.933
- <td>&nbsp;
- <td align=center>0.875 - 0.937
- <td>&nbsp;
- <td align=right>14
- <td>&nbsp;
- <td align=center>0.933
- <td>&nbsp;
- <td align=center>0.715 - 0.889
- <td>&nbsp;
- <td align=right>14
- <td>&nbsp;
- <td align=center>0.778
-<tr valign=top> <td align=center>1.000
- <td>&nbsp;
- <td align=center>0.938 - 1.000
- <td>&nbsp;
- <td align=right>15
- <td>&nbsp;
- <td align=center>1.000
- <td>&nbsp;
- <td align=center>0.889 - 1.111
- <td>&nbsp;
- <td align=right>15
- <td>&nbsp;
- <td align=center>1.000
-</table></blockquote>
-
-<p>
-The difference between cyan and magenta is the presence of a coding array.
-The coding process must map a range of color values to each of the sixteen
-component indices. If no coding array is given, this is accomplished
-by dividing by 4096, equivalent to a right shift by 12 bits. The
-final ink density resides in the given interval and moves from the left to
-the right side from 0 to 15. For magenta there is a coding array
-and the ink value matches the center of the intervals. But the distribution
-of the mapped intervals follows the given coding array and is nonlinear in
-the linear color space of Ghostscript.
-
-<p>
-Now let us take a look at the case with transfer arrays:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <th colspan=5>Yellow<hr>
- <td>&nbsp;
- <th colspan=5>Black<hr>
-<tr valign=top> <th>CI/15
- <td>&nbsp;
- <th>gs_color_values
- <td>&nbsp;
- <th>CI
- <td>&nbsp;
- <th>Ink
- <td>&nbsp;
- <th>gs_color_values
- <td>&nbsp;
- <th>CI
- <td>&nbsp;
- <th>Ink
-<tr> <td colspan=13><hr>
-<tr valign=top> <td align=center>0.000
- <td>&nbsp;
- <td align=center>0.000 - 0.062
- <td>&nbsp;
- <td align=right>0
- <td>&nbsp;
- <td align=center>0.000
- <td>&nbsp;
- <td align=center>-0.123 - 0.123
- <td>&nbsp;
- <td align=right>0
- <td>&nbsp;
- <td align=center>0.000
-<tr valign=top> <td align=center>0.067
- <td>&nbsp;
- <td align=center>0.063 - 0.125
- <td>&nbsp;
- <td align=right>1
- <td>&nbsp;
- <td align=center>0.018
- <td>&nbsp;
- <td align=center>0.123 - 0.299
- <td>&nbsp;
- <td align=right>1
- <td>&nbsp;
- <td align=center>0.067
-<tr valign=top> <td align=center>0.133
- <td>&nbsp;
- <td align=center>0.125 - 0.187
- <td>&nbsp;
- <td align=right>2
- <td>&nbsp;
- <td align=center>0.036
- <td>&nbsp;
- <td align=center>0.299 - 0.365
- <td>&nbsp;
- <td align=right>2
- <td>&nbsp;
- <td align=center>0.133
-<tr valign=top> <td align=center>0.200
- <td>&nbsp;
- <td align=center>0.188 - 0.250
- <td>&nbsp;
- <td align=right>3
- <td>&nbsp;
- <td align=center>0.054
- <td>&nbsp;
- <td align=center>0.365 - 0.392
- <td>&nbsp;
- <td align=right>3
- <td>&nbsp;
- <td align=center>0.200
-<tr valign=top> <td align=center>0.267
- <td>&nbsp;
- <td align=center>0.250 - 0.312
- <td>&nbsp;
- <td align=right>4
- <td>&nbsp;
- <td align=center>0.072
- <td>&nbsp;
- <td align=center>0.392 - 0.420
- <td>&nbsp;
- <td align=right>4
- <td>&nbsp;
- <td align=center>0.267
-<tr valign=top> <td align=center>0.333
- <td>&nbsp;
- <td align=center>0.313 - 0.375
- <td>&nbsp;
- <td align=right>5
- <td>&nbsp;
- <td align=center>0.090
- <td>&nbsp;
- <td align=center>0.420 - 0.447
- <td>&nbsp;
- <td align=right>5
- <td>&nbsp;
- <td align=center>0.333
-<tr valign=top> <td align=center>0.400
- <td>&nbsp;
- <td align=center>0.375 - 0.437
- <td>&nbsp;
- <td align=right>6
- <td>&nbsp;
- <td align=center>0.252
- <td>&nbsp;
- <td align=center>0.447 - 0.475
- <td>&nbsp;
- <td align=right>6
- <td>&nbsp;
- <td align=center>0.400
-<tr valign=top> <td align=center>0.467
- <td>&nbsp;
- <td align=center>0.438 - 0.500
- <td>&nbsp;
- <td align=right>7
- <td>&nbsp;
- <td align=center>0.414
- <td>&nbsp;
- <td align=center>0.475 - 0.502
- <td>&nbsp;
- <td align=right>7
- <td>&nbsp;
- <td align=center>0.467
-<tr valign=top> <td align=center>0.533
- <td>&nbsp;
- <td align=center>0.500 - 0.562
- <td>&nbsp;
- <td align=right>8
- <td>&nbsp;
- <td align=center>0.576
- <td>&nbsp;
- <td align=center>0.502 - 0.529
- <td>&nbsp;
- <td align=right>8
- <td>&nbsp;
- <td align=center>0.533
-<tr valign=top> <td align=center>0.600
- <td>&nbsp;
- <td align=center>0.563 - 0.625
- <td>&nbsp;
- <td align=right>9
- <td>&nbsp;
- <td align=center>0.738
- <td>&nbsp;
- <td align=center>0.529 - 0.557
- <td>&nbsp;
- <td align=right>9
- <td>&nbsp;
- <td align=center>0.600
-<tr valign=top> <td align=center>0.667
- <td>&nbsp;
- <td align=center>0.625 - 0.687
- <td>&nbsp;
- <td align=right>10
- <td>&nbsp;
- <td align=center>0.900
- <td>&nbsp;
- <td align=center>0.557 - 0.584
- <td>&nbsp;
- <td align=right>10
- <td>&nbsp;
- <td align=center>0.667
-<tr valign=top> <td align=center>0.733
- <td>&nbsp;
- <td align=center>0.688 - 0.750
- <td>&nbsp;
- <td align=right>11
- <td>&nbsp;
- <td align=center>0.920
- <td>&nbsp;
- <td align=center>0.584 - 0.612
- <td>&nbsp;
- <td align=right>11
- <td>&nbsp;
- <td align=center>0.733
-<tr valign=top> <td align=center>0.800
- <td>&nbsp;
- <td align=center>0.750 - 0.812
- <td>&nbsp;
- <td align=right>12
- <td>&nbsp;
- <td align=center>0.940
- <td>&nbsp;
- <td align=center>0.612 - 0.639
- <td>&nbsp;
- <td align=right>12
- <td>&nbsp;
- <td align=center>0.800
-<tr valign=top> <td align=center>0.867
- <td>&nbsp;
- <td align=center>0.813 - 0.875
- <td>&nbsp;
- <td align=right>13
- <td>&nbsp;
- <td align=center>0.960
- <td>&nbsp;
- <td align=center>0.639 - 0.715
- <td>&nbsp;
- <td align=right>13
- <td>&nbsp;
- <td align=center>0.867
-<tr valign=top> <td align=center>0.933
- <td>&nbsp;
- <td align=center>0.875 - 0.937
- <td>&nbsp;
- <td align=right>14
- <td>&nbsp;
- <td align=center>0.980
- <td>&nbsp;
- <td align=center>0.715 - 0.889
- <td>&nbsp;
- <td align=right>14
- <td>&nbsp;
- <td align=center>0.933
-<tr valign=top> <td align=center>1.000
- <td>&nbsp;
- <td align=center>0.938 - 1.000
- <td>&nbsp;
- <td align=right>15
- <td>&nbsp;
- <td align=center>1.000
- <td>&nbsp;
- <td align=center>0.889 - 1.111
- <td>&nbsp;
- <td align=right>15
- <td>&nbsp;
- <td align=center>1.000
-</table></blockquote>
-
-<p>
-Yellow uses a transfer array. There is no linear correspondence between
-the color and the ink values: this correspondence is defined through the
-given array. In other words, the transfer arrays define a nonlinear ink
-characteristic, which is exactly the same functionality that PostScript's
-"(color)transfer" function provides.
-
-<p>
-While for yellow the intervals match the intervals used with cyan, for
-black the intervals match the magenta intervals. But watch the
-correspondence between the CI/15 values and the ink density for black: this
-is a linear distribution in the ink domain.
-
-<p>
-Not a bad idea, I think. Consider the <b><tt>fs2</tt></b> algorithm: it
-uses values in the range 0 to 255. If any transfer array were alone, some
-of the 256 possible values would never be used and others would be used for
-adjacent intervals several times. Establishing an identical coding array
-solves this problem, so the full potential of the algorithm is used.
-
-<p>
-Another useful feature of the coding arrays is that they are internally
-normalized to the range 0-1. In 720x720dpi mode the transfer arrays in
-<b><tt>stcolor.ps</tt></b> limit the dot density to about 50%, so these
-arrays end at 0.5 (and begin at 0.5 for RGB). Because of automatic
-normalization, these arrays can also be used as coding arrays. But of
-course in the <b><tt>fs2</tt></b> case mentioned above, values from 0 to
-127 will never be delivered to the algorithm, while values 128-255 are
-delivered for adjacent intervals.
-
-<p>
-To clarify the intended use of the three parameters (parameter groups), keep this in mind:
-
-<blockquote><ul>
-<li><b><tt>ColorAdjustMatrix</tt></b> is never used when transferring gray
-values. This restricts it to what the name says: adjustment of colors,
-that is, correction for miscolored ink. Do not use it for saturation or
-brightness control.
-
-<li><b><tt>?transfer</tt></b> arrays control the values delivered to the
-driver, which in turn controls the ink quantity. Use these arrays to
-control saturation and brightness. In general these arrays are identical
-for all inks. If they differ they provide a simpler scheme for color
-correction, which is not necessarily faster than the
-<b><tt>ColorAdjustMatrix</tt></b>.
-
-<li><b><tt>?coding</tt></b> arrays control the color value intervals mapped
-to the internal color indices.
-</ul></blockquote>
-
-<h3><a name="What_is_weaving"></a>What is weaving?</h3>
-
-<p>
-The Epson Stylus Color has a head assembly that contains two physically
-identifiable heads, one for black and one for cyan, magenta, and yellow
-(CMY). This makes four "logical" heads, one for each color component.
-Each of these four heads has several jets at some vertical (Y) distance
-from one another, so several horizontal lines can be printed of a given
-color during one pass of the heads. From experience I think there are
-fifteen jets per color, spaced at 1/90in.
-
-<p>
-So the question arises of how to print at a Y resolution of 360dpi with
-90dpi jets. Simply by division one gets 360dpi/90dpi = 4, which tells us
-that 4 passes of the head assembly are needed to achieve a Y resolution of
-360dpi.
-
-<p>
-Weaving is the method of how the fifteen jets are used to print adjacent
-horizontal rows separated here by 1/360 inch:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=17 bgcolor="#CCCC00"><hr><font size="+1">Print-head jets used with and without weaving</font><hr>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <th valign=bottom colspan=7>Weaving<hr>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom colspan=7>noWeave<hr>
-<tr valign=top> <td>&nbsp;
- <th>Pass
- <th>1
- <td>&nbsp;
- <th>2
- <td>&nbsp;
- <th>3
- <td>&nbsp;
- <th>4
- <td>&nbsp;
- <th>1
- <td>&nbsp;
- <th>2
- <td>&nbsp;
- <th>3
- <td>&nbsp;
- <th>4
-<tr> <th>Row
-<tr valign=top> <td align=center>0
- <td>&nbsp;
- <td align=center>jet 0
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 0
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
-<tr valign=top> <td align=center>1
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 1
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 0
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
-<tr valign=top> <td align=center>2
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 2
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 0
- <td>&nbsp;
- <td align=center>--
-<tr valign=top> <td align=center>3
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 3
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 0
-<tr valign=top> <td align=center>4
- <td>&nbsp;
- <td align=center>jet 1
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 1
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
-<tr valign=top> <td align=center>5
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 2
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 1
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
-<tr valign=top> <td align=center>6
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 3
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>jet 1
- <td>&nbsp;
- <td align=center>--
-<tr valign=top> <th>...
-</table></blockquote>
-
-<p>
-Now let's assume that the dot diameter is different for each individual
-jet, but the average among the jets matches the desired resolution. With
-weaving, adjacent rows are printed by different jets, thus some averaging
-takes place. Without weaving, adjacent rows are printed by the same jet
-and this makes the dot diameter deviations visible as 1/90in stripes on
-the paper.
-
-<h3><a name="STC_print_modes"></a>Print mode parameters</h3>
-
-<p>
-The parameters "<b><tt>Unidirectional</tt></b>",
-"<b><tt>Microweave</tt></b>", "<b><tt>noWeave</tt></b>",
-"<b><tt>OutputCode</tt></b>", "<b><tt>Model</tt></b>" and the given
-resolution control the data generated for the printer.
-
-<h4><a name="STC_unidirectional"></a><b><tt>Unidirectional</tt></b></h4>
-
-<p>
-Simply toggles the unidirectional mode of the printer. Setting
-"<b><tt>Unidirectional</tt></b>" definitely slows printing speed, but may
-improve the quality. I use this for printing transparencies, where fast
-head movement could smear the ink.
-
-<h4><a name="STC_noweave"></a><b><tt>Microweave</tt></b>,
-<b><tt>noWeave</tt></b> and <b><tt>OutputCode=deltarow</tt></b></h4>
-
-<p>
-The first are two booleans, which implies that four combinations are
-possible. Actually only three exist (if you don't count for
-<b><tt>deltarow</tt></b>): <b><tt>Softweave</tt></b>,
-<b><tt>Microweave</tt></b>, and <b><tt>noWeave</tt></b>. The first and
-second are functionally identical, the difference being whether the driver
-or the printer does the job.
-
-<p>
-In the default <b><tt>Softweave</tt></b> mode the driver sends the data
-properly arranged to the printer, while in <b><tt>Microweave</tt></b> mode,
-it is the printer that arranges the data. But in general the host processor
-is much faster than the printer's processor, and thus it is faster for the
-host do the job. In addition to that, for 720dpi eight passes are
-required, and the amount of buffer space needed to buffer the data for the
-passes is far beyond the printer's memory. <b><tt>Softweave</tt></b>
-requires an odd value of "<b><tt>escp_Band</tt></b>"; the Stylus Color
-provides fifteen for that.
-
-<p>
-"<b><tt>OutputCode</tt></b>" controls the encoding used. In the basic
-modes, the choice consists of "plain" and "runlength". The computation of
-runlength-encoded data does not take much time, less than the data tranfer
-to the printer; thus this is the recommended mode, and of course the
-default. With the Stylus Color, Epson introduced some new encoding
-principles, namely "tiff" and "deltarow". While the first was omitted from
-this driver for lack of apparent advantages, "<b><tt>deltarow</tt></b>" is
-available as an option. "<b><tt>Softweave</tt></b>" cannot be used with
-this encoding, so if <b><tt>OutputCode=deltarow</tt></b> is set,
-<b><tt>Microweave</tt></b> becomes the default. Maybe that the size of the
-ESC/P2 code becomes smaller, but I have never observed faster printing
-speed. Things tend to become slower with <b><tt>deltarow</tt></b> compared
-to <b><tt>Softweave</tt></b>.
-
-<h4><a name="STC_model"></a><b><tt>Model</tt></b></h4>
-
-<p>
-Some ESC/P2 printers such as the Stylus 800 do not offer
-<b><tt>Microweave</tt></b> or the commands required to do
-<b><tt>Softweave</tt></b>. Setting <b><tt>Model</tt></b> just changes the
-defaults and omits some parts of the initialization sequence which are not
-compatible with the given printer model. Currently only
-"<b><tt>st800</tt></b>" is supported besides the default
-<b><tt>stcolor</tt></b>.
-
-<h3><a name="STC_Pitfalls"></a>Bugs and pitfalls</h3>
-
-<ul>
-<li>The given <b><tt>?coding</tt></b> and <b><tt>?transfer</tt></b> arrays
-should be strictly monotonic.
-
-<li>It is impossible to change <b><tt>WHITE</tt></b>: that's your paper.
-Thus RGB transfer should end at 1.0 and CMYK transfer should start at 0.0.
-
-<li>Usually 8 bits per component yields fastest operation.
-
-<li>The <b><tt>ColorAdjustMatrix</tt></b> is not used in the reverse
-transformation used when Ghostscript does the dithering
-(<b><tt>gs</tt></b>* modes). Expect funny results.
-
-<li>If <b><tt>BitsPerPixel</tt></b> is less than 6, the entire coding and
-transfer process does not work. This is always true for the
-<b><tt>gs</tt></b>* modes and becomes true for the other modes if
-<b><tt>BitsPerPixel</tt></b> is forced to low values.
-
-<li>720&times;720dpi printing should never select the <b><tt>gs</tt></b>*
-modes and should always use <b><tt>stcolor.ps</tt></b>. (I prefer
-360&times;720.)
-</ul>
-
-<h3><a name="STC_Tests"></a>Tests</h3>
-
-<p>
-This section gives an overview of performance in terms of processing and
-printing times, from tests run after version 1.13. Printing was done
-offline (simply copying a processed file to the printer) to measure real
-printing speed without regard to speed of processing on the host, since at
-high resolutions, processing time is the same order of magnitude and thus
-may become the limiting factor.
-
-<h4><a name="STC_OutputCodes"></a>The various OutputCodes</h4>
-
-<p>
-I ran several files though Ghostscript and recorded the size of the
-resulting print code, the processing time, and the printing time, at least
-for some of the files, always using these options:
-
-<blockquote><b><tt>
-gs -sDEVICE=stcolor -sPAPERSIZE=a4 stcolor.ps - &lt; file.ps
-</tt></b></blockquote>
-
-<p>
-(Actually "<b><tt>-sPAPERSIZE=a4</tt></b>" is in my
-<b><tt>gs_init.ps</tt></b> since I'm a germ.)
-
-<p>"<b><tt>deltarow</tt></b>" is the new encoding principle
-("<b><tt>ESC&nbsp;.&nbsp;3&nbsp;10&nbsp;10&nbsp;1</tt></b>") with
-<b><tt>Microweave</tt></b> on. It is activated with
-"<b><tt>-sOutputCode=deltarow</tt></b>".
-
-<p>"<b><tt>Softweave</tt></b>" actually means that nothing else was used:
-it is the default, and implies that odd v=40/h=10/m=15 mode
-("<b><tt>ESC&nbsp;.&nbsp;1&nbsp;40&nbsp;10&nbsp;15</tt></b>").
-
-<p>"<b><tt>Microweave</tt></b>" means "<b><tt>-dMicroweave</tt></b>",
-equivalent to "<b><tt>ESC&nbsp;.&nbsp;1&nbsp;10&nbsp;10&nbsp;1</tt></b>",
-with full skip optimization and microweave activated.
-
-<p>
-Finally I wanted to see the plain Kathy Ireland, and used
-"<b><tt>-sOutputCode=plain</tt></b>", which just replaces runlength
-encoding (RLE) by no encoding, thus using
-"<b><tt>ESC&nbsp;.&nbsp;0&nbsp;40&nbsp;10&nbsp;15</tt></b>". [So sorry
-<b><tt>;-)</tt></b> Kathy was still dressed in blue in front of the blue
-sea on a blue air cushion -- nice to see but hard to dither.]
-
-<p>
-So here are the results.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=9 bgcolor="#CCCC00"><hr><font size="+1">File sizes and printing speeds with various weaving methods</font><hr>
-<tr valign=bottom>
- <td>&nbsp;
- <td>&nbsp;
- <th><b><tt>golfer.ps</tt></b>
- <td>&nbsp;
- <th><b><tt>colorcir.ps</tt></b>
- <td>&nbsp;
- <th><b><tt>drawing.ps</tt></b>
- <td>&nbsp;
- <th><b><tt>brief.ps</tt></b>
-<tr> <td colspan=9><hr>
-<tr valign=top> <td><b><tt>deltarow</tt></b>
- <td>&nbsp;
- <td>572751/48.180u
- <td>&nbsp;
- <td>643374/41.690u
- <td>&nbsp;
- <td>90142/46.180u/1:50
- <td>&nbsp;
- <td>178563/49.350u/2:22
-<tr valign=top> <td><b><tt>Softweave</tt></b>
- <td>&nbsp;
- <td>559593/46.810u
- <td>&nbsp;
- <td>669966/44.960u
- <td>&nbsp;
- <td>296168/48.160u/1:30
- <td>&nbsp;
- <td>269808/43.320u/1:55
-<tr valign=top> <td><b><tt>Microweave</tt></b>
- <td>&nbsp;
- <td>590999/56.060u
- <td>&nbsp;
- <td>754276/42.890u
- <td>&nbsp;
- <td>338885/47.060u/1:50
- <td>&nbsp;
- <td>282314/44.690u/2:22
-</table></blockquote>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Kathy Ireland</font><hr>
-<tr valign=bottom>
- <td>&nbsp;
- <td>&nbsp;
- <th><b><tt>kathy.ps</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>deltarow</tt></b>
- <td>&nbsp;
- <td>3975334/111.940u/5:35
-<tr valign=top> <td><b><tt>Softweave</tt></b>
- <td>&nbsp;
- <td>3897112/101.940u/3:10
-<tr valign=top> <td><b><tt>Microweave</tt></b>
- <td>&nbsp;
- <td>4062829/100.990u/3:15
-<tr valign=top> <td><b><tt>plain/soft</tt></b>
- <td>&nbsp;
- <td>5072255/104.390u/3:05
-</table></blockquote>
-
-<p>
-It may be that I've not chosen the optimal <b><tt>deltarow</tt></b> code,
-but even if it saves at lot of bytes, printing-speed is not increased.
-
-<p>
-At least the printer prefers plain Kathy. In other words, sending 1
-Megabyte or 20% more data has no impact on printing speed.
-<b><tt>drawing.ps</tt></b> is an exception to this rule: plain prints
-slower than RLE.
-
-<p>
-"Unclever" coding -- especially with <b><tt>deltarow</tt></b> -- can
-significantly slow down printing. But even if very significant advantages
-in the size of the code are achieved, "<b><tt>deltarow</tt></b>" is not
-competitive. <b><tt>colorcir.ps</tt></b> shows savings with
-<b><tt>deltarow</tt></b>, but printing is a mess.
-
-<h4><a name="STC_printing_time"></a>Printing time related to other options</h4>
-
-<p>
-Full page halftone images printed, unless otherwise noted.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=11 bgcolor="#CCCC00"><hr><font size="+1">Printing time related to other options</font><hr>
-<tr valign=top> <th>dpi
- <td>&nbsp;
- <th colspan=3>Print mode
- <td>&nbsp;
- <th>Size KB
- <td>&nbsp;
- <th>Time
- <td>&nbsp;
- <th align=left>Comments
-<tr> <td colspan=11><hr>
-<tr valign=top> <td>180x180
- <td>&nbsp;
- <td>mono
- <td>&nbsp;
- <td align=right>-/uni
- <td>&nbsp;
- <td align=right>358
- <td>&nbsp;
- <td align=right>1:15
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>-/bi
- <td>&nbsp;
- <td align=right>358
- <td>&nbsp;
- <td align=right>0:45
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>micro/bi
- <td>&nbsp;
- <td align=right>205
- <td>&nbsp;
- <td align=right>0:45
- <td>&nbsp;
- <td>Not weaving
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>179
- <td>&nbsp;
- <td align=right>1:25
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td>color
- <td>&nbsp;
- <td align=right>-/bi
- <td>&nbsp;
- <td align=right>641
- <td>&nbsp;
- <td align=right>2:45
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>556
- <td>&nbsp;
- <td align=right>1:32
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>360x360
- <td>&nbsp;
- <td>mono
- <td>&nbsp;
- <td align=right>-/uni
- <td>&nbsp;
- <td align=right>269
- <td>&nbsp;
- <td align=right>0:50
- <td>&nbsp;
- <td>Monochrome text
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>-/bi
- <td>&nbsp;
- <td align=right>269
- <td>&nbsp;
- <td align=right>0:35
- <td>&nbsp;
- <td>Monochrome text
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>micro/bi
- <td>&nbsp;
- <td align=right>269
- <td>&nbsp;
- <td align=right>2:25
- <td>&nbsp;
- <td>Monochrome text
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/uni
- <td>&nbsp;
- <td align=right>250
- <td>&nbsp;
- <td align=right>3:15
- <td>&nbsp;
- <td>Monochrome text
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>250
- <td>&nbsp;
- <td align=right>1:55
- <td>&nbsp;
- <td>Monochrome text
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td>color
- <td>&nbsp;
- <td align=right>-/bi
- <td>&nbsp;
- <td align=right>346
- <td>&nbsp;
- <td align=right>1:00
- <td>&nbsp;
- <td>Sparse-color page, visible displacements
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>micro/bi
- <td>&nbsp;
- <td align=right>346
- <td>&nbsp;
- <td align=right>1:50
- <td>&nbsp;
- <td>Sparse-color page, looks buggy -- printer?
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>294
- <td>&nbsp;
- <td align=right>1:30
- <td>&nbsp;
- <td>Sparse-color page, O.K.
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>-/bi
- <td>&nbsp;
- <td align=right>2218
- <td>&nbsp;
- <td align=right>2:45
- <td>&nbsp;
- <td>Visible stripes
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>micro/bi
- <td>&nbsp;
- <td align=right>5171
- <td>&nbsp;
- <td align=right>3:17
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>3675
- <td>&nbsp;
- <td align=right>3:05
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>360x720
- <td>&nbsp;
- <td>mono
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>2761
- <td>&nbsp;
- <td align=right>5:40
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td>color
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>7789
- <td>&nbsp;
- <td align=right>6:15
- <td>&nbsp;
- <td>Just a small difference!
-<tr valign=top> <td>720x360
- <td>&nbsp;
- <td>color
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>7182
- <td>&nbsp;
- <td align=right>5:40
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>720x720
- <td>&nbsp;
- <td>color
- <td>&nbsp;
- <td align=right>micro/bi
- <td>&nbsp;
- <td align=right>14748
- <td>&nbsp;
- <td align=right>30:26
- <td>&nbsp;
- <td>Actually beyond printer's capabilities
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td align=right>&nbsp;
- <td>&nbsp;
- <td align=right>soft/bi
- <td>&nbsp;
- <td align=right>14407
- <td>&nbsp;
- <td align=right>11:08
- <td>&nbsp;
- <td>&nbsp;
-</table></blockquote>
-
-<h3><a name="STC_acks"></a>Acknowledgments</h3>
-
-<p>
-This driver was copied from <b><tt>gdevcdj.c</tt></b> (Ghostscript 3.12),
-which was contributed by George Cameron, Koert Zeilstra, and Eckhard
-Rueggeberg. Some of the ESC/P2 code was drawn from Richard Brown's
-<b><tt>gdevescp.c</tt></b>. The POSIX interrupt code (compilation option
-<b><tt>-DSTC_SIGNAL</tt></b>) is from Frederic Loyer. Several improvements
-are based on discussions with Brian Converse, Bill Davidson, Gero Guenther,
-Jason Patterson, ? Rueschstroer, and Steven Singer.
-
-<p>
-While I wish to thank everyone mentioned above, they are by no means
-responsible for bugs in the stcolor driver -- just for the features.
-
-<address>
-Gunther Hess<br>
-Richard Wagner Strasse 112<br>
-D-47057 Duisburg<br>
-Germany<br>
-+49 203 376273 telephone (MET evening hours)<br>
-&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
-</address>
-
-<hr>
-
-<h2><a name="Uniprint"></a>uniprint, a flexible unified printer driver</h2>
-
-<p>
-<b><tt>uniprint</tt></b> is a unified parametric driver by Gunther Hess
-&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt; for several
-kinds of printers and devices, including
-
-<blockquote>
-<ul>
-<li>any Epson Stylus Color, Stylus, or Stylus Pro
-<li>HP PCL/RTL
-<li>Canon BubbleJet Color 610
-<li>NEC P2X
-<li>Sun raster file format
-</ul></blockquote>
-
-<p>
-This driver is intended to <em>become</em> a unified printer driver. If you
-consider it ugly, please send me your suggestions for improvements. The
-driver will be updated with them. Thus the full explanation of the driver's
-name is:
-
-<blockquote>
-Ugly- -&gt; Updated- -&gt; Unified Printer Driver
-</blockquote>
-
-<p>
-But you probably want to know something about the functionality.
-At the time of this writing uniprint drives:
-
-<ul>
-<li>NEC Pinwriter P2X (24-pin monochrome impact printer, ESC/P style)
-<li>Several Epson Stylus Color models (ESC/P2 style)
-<li>HP-DeskJet 550c (basic HP-RTL)
-<li>Canon BJC 610
-</ul>
-
-<p>
-It can be configured for various other printers without recompilation
-and offers uncompressed (ugly) Sun rasterfiles as another format, but
-this format is intended for testing purposes rather than real use.
-The usage of this driver is quite simple. The typical command line looks
-like this:
-
-<blockquote>
-<b><tt>gs @</tt></b>{MODEL}<b><tt>.upp -sOutputFile=</tt></b>{printable file}<b><tt> MyFile.ps -c quit</tt></b>
-</blockquote>
-
-<p>
-For example, from my GNU/Linux box:
-
-<blockquote><b><tt>
-gs @stc.upp -sOutputFile=/dev/lp1 tiger.ps -c quit
-</tt></b></blockquote>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=6 bgcolor="#CCCC00"><hr><font size="+1">Unified Printer Parameter files distributed with Ghostscript</font><hr>
-<tr> <th align=left colspan=6>Canon BJC 610 (color, rendered)
-<tr valign=top> <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td><b><tt>bjc610a0.upp</tt></b>
- <td>&nbsp;&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;&nbsp;
- <td>plain paper, high speed
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a1.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a2.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>coated paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a3.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>transparency film
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a4.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>back print film
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a5.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>fabric sheet
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a6.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>glossy paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a7.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>high gloss film
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610a8.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>high resolution paper
-<tr> <td>&nbsp;
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b1.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b2.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>coated paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b3.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>transparency film
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b4.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>back print film
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b6.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>glossy paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b7.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>high-gloss paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>bjc610b8.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>high resolution paper
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>HP Ink-Printers
-<tr valign=top> <td>&nbsp;
- <td><b><tt>cdj550.upp</tt></b>
- <td>&nbsp;
- <td>300&times;300dpi
- <td>&nbsp;
- <td>32-bit CMYK
-<tr valign=top> <td>&nbsp;
- <td><b><tt>cdj690.upp</tt></b>
- <td>&nbsp;
- <td>300&times;300dpi
- <td>&nbsp;
- <td>Normal mode
-<tr valign=top> <td>&nbsp;
- <td><b><tt>cdj690ec.upp</tt></b>
- <td>&nbsp;
- <td>300&times;300dpi
- <td>&nbsp;
- <td>Economy mode
-<tr valign=top> <td>&nbsp;
- <td><b><tt>dnj750c.upp</tt></b>
- <td>&nbsp;
- <td>300&times;300dpi
- <td>&nbsp;
- <td>Color -- also good for 450C
-<tr valign=top> <td>&nbsp;
- <td><b><tt>dnj750m.upp</tt></b>
- <td>&nbsp;
- <td>600&times;600dpi
- <td>&nbsp;
- <td>Monochrome
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>NEC P2X
-<tr valign=top> <td>&nbsp;
- <td><b><tt>necp2x.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>8-bit (Floyd-Steinberg)
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Any Epson Stylus Color
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stcany.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>4-bit, PostScript halftoning
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stcany_h.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>4-bit, PostScript halftoning
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Original Epson Stylus and Stylus Pro Color
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>32-bit CMYK, 15-pin
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc_l.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>4-bit, PostScript halftoning, weaved noWeave
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc_h.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 15-pin Weave
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color II
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc2.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>32-bit CMYK, 20-pin, Epson Stylus Color II(s)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc2_h.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 20-pin, Epson Stylus Color II
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc2s_h.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 20-pin, Epson Stylus Color IIs
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color 200
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc200.upp</tt></b>
- <td>&nbsp;
- <td>360&times;720dpi
- <td>&nbsp;
- <td>Plain Paper
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color 300
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc300.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>32-bit CMYK, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc300bl.upp</tt></b>
- <td>&nbsp;
- <td>180&times;180dpi
- <td>&nbsp;
- <td>black only, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc300bm.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>black only, plain paper
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color 500 (good transfer curves for plain paper)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc500p.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>32-bit CMYK, noWeave, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc500ph.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, noWeave, plain paper
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color 600, 32/90-inch weaving
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc600pl.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>32-bit CMYK, 32-pin, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc600p.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 32-pin, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc600ih.upp</tt></b>
- <td>&nbsp;
- <td>1440&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 30-pin, inkjet paper
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color 640
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc640p.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>plain paper?
-
-
-
-<tr valign=top> <td>&nbsp;
- <td><b><tt>st640p.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>CMYK, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>st640pg.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>grayscale, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>st640pl.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>CMYK, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>st640plg.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>grayscale, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>st640ih.upp</tt></b>
- <td>&nbsp;
- <td>1440&times;720dpi
- <td>&nbsp;
- <td>CMYK, inkjet paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>st640ihg.upp</tt></b>
- <td>&nbsp;
- <td>1440&times;720dpi
- <td>&nbsp;
- <td>grayscale, inkjet paper
-
-
-
-
-
-
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Epson Stylus Color 800, 64/180-inch weaving
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc800pl.upp</tt></b>
- <td>&nbsp;
- <td>360&times;360dpi
- <td>&nbsp;
- <td>32-bit CMYK, 64-pin, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc800p.upp</tt></b>
- <td>&nbsp;
- <td>720&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 64-pin, plain paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc800ih.upp</tt></b>
- <td>&nbsp;
- <td>1440&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 62-pin, inkjet paper
-<tr valign=top> <td>&nbsp;
- <td><b><tt>stc1520.upp</tt></b>
- <td>&nbsp;
- <td>1440&times;720dpi
- <td>&nbsp;
- <td>32-bit CMYK, 62-pin, inkjet paper
-<tr> <td>&nbsp;
-<tr> <th align=left colspan=6>Sun raster file
-<tr valign=top> <td>&nbsp;
- <td><b><tt>ras1.upp</tt></b>
- <td>&nbsp;
- <td>1-bit
- <td>&nbsp;
- <td>monochrome (Ghostscript)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>ras3.upp</tt></b>
- <td>&nbsp;
- <td>3-bit
- <td>&nbsp;
- <td>RGB (Ghostscript)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>ras4.upp</tt></b>
- <td>&nbsp;
- <td>4-bit
- <td>&nbsp;
- <td>CMYK (Ghostscript)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>ras8m.upp</tt></b>
- <td>&nbsp;
- <td>8-bit
- <td>&nbsp;
- <td>grayscale (Floyd-Steinberg)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>ras24.upp</tt></b>
- <td>&nbsp;
- <td>24-bit
- <td>&nbsp;
- <td>RGB (Floyd-Steinberg)
-<tr valign=top> <td>&nbsp;
- <td><b><tt>ras32.upp</tt></b>
- <td>&nbsp;
- <td>32-bit
- <td>&nbsp;
- <td>CMYK (CMYK-Floyd-Steinberg)
-</table></blockquote>
-
-<p>
-Thanks to Danilo Beuche, Guido Classen, Mark Goldberg and Hans-Heinrich
-Viehmann for providing the files for the stc200, hp690, stc500 and the
-stc640. Thanks to Michael Lossin &lt;losse@germanymail.com&gt; for the
-newer st640 parameter sets.
-
-<p>
-Please note the following:
-
-<blockquote><ul>
-<li>Changing the resolution with Ghostscript's
-<a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b> switch</a> is
-usually not possible.
-<li>For Epson Stylus Color models not listed above, the two
-<b><tt>stc500</tt></b> variants are likely to work in addition to
-<b><tt>stcany</tt></b>, but their gamma correction might be wrong.
-</ul></blockquote>
-
-<h3><a name="Uni_state"></a>The state of this driver</h3>
-
-<p>
-The coding of <b><tt>uniprint</tt></b> was triggered by the requirements of
-the various Stylus Color models and some personal needs for HP and NEC
-drivers. Thus the Epson models are well represented among the distributed
-parameter files. When this driver entered the beta test phase, three other
-drivers appreared on the scene that could be at least partially integrated
-into <b><tt>uniprint</tt></b>: <b><tt>cdj850</tt></b> by Uli Wortmann
-(available at <a href="http://www.erdw.ethz.ch/~bonk/hp850/hp850.html">http://www.erdw.ethz.ch/~bonk/hp850/hp850.html</a>),
-<b><tt>hpdj</tt></b> by Martin Lottermoser, and <b><tt>bjc610</tt></b> by
-Helmut Riegler.
-
-<p>
-Uli addresses features of the more recent DeskJet models that will not be
-available in <b><tt>uniprint</tt></b> soon. Martin taught me a lesson on
-HP-PCL3 headers that will be available in <b><tt>uniprint</tt></b>
-soon. Helmut in turn followed an almost similar idea, but targetted
-primarily for printing on Canon printers from the pbmplus library. Starting
-with version 1.68 of uniprint, BJC support is available. Work on the
-<b><tt>hpdj</tt></b> integration will start after the update of my website.
-
-<h3><a name="Uni_background"></a>Notes on <b><tt>uniprint</tt></b>'s background</h3>
-
-<p>
-<b><tt>uniprint</tt></b> is actually an update of <b><tt>stcolor</tt></b>,
-but much more versatile than its predecessor; <b><tt>stcolor</tt></b>, in
-its turn, started as a clone of the color DeskJet family of drivers
-(<b><tt>cdj</tt></b>*). Finally, <b><tt>cdj</tt></b>* can be considered an
-addition of features to the simpler monochrome drivers of Ghostscript. This
-addition of features is useful to get an idea of the functionality of
-<b><tt>uniprint</tt></b>:
-
-<blockquote>
-<dl>
-<dt>Monochrome to advanced color (<b><tt>cdj</tt></b>*):
-<dd>This adds color mapping and rendering functions to the driver.
-Error diffusion is especially important for the quality of printing.
-</dl>
-
-<dl>
-<dt>HP color to Epson Color (<b><tt>stcolor</tt></b>)
-<dd>The Epson Stylus Color offered two features simultaneously: it could
-produce 720&times;720dpi output and it could soak the paper. In other
-words, it required more color management features inside the driver. This
-is still the major conceptual difference in the data generation for HP and
-Epson printers.
-</dl>
-
-<dl>
-<dt>Weaving techniques (<b><tt>stcolor</tt></b>)
-<dd>Besides the internal color management, the Stylus Color did not provide
-enough buffer space to operate the printer fast at 720&times;720dpi. The
-use of weaving could yield triple the print speed. Weaving, also called
-interleaving, is present in some monochrome drivers too. The new thing in
-<b><tt>stcolor</tt></b> was the combination with error diffusion.
-Unfortunately the weaving was somehow hard-coded, as the problems with the
-newer members of the Stylus Color family of printers demonstrated.
-</dl>
-
-<dl>
-<dt>Generalized output format and weaving (<b><tt>uniprint</tt></b>)
-<dd>The features mentioned above yield about 90% of
-<b><tt>stcolor</tt></b>'s source code; only 10% is related to the
-formatting of the output. The idea to make the output format switchable
-came up soon after completing <b><tt>stcolor</tt></b>, but its final design
-was triggered by the (personal) necessity to drive a NEC P2X and a
-Designjet 750c.
-</dl></blockquote>
-
-<p>
-Thus <b><tt>uniprint</tt></b> accumulates almost any features that can be
-found among the other printer drivers, which clearly has some disadvantage
-in processing speed -- true in particular of version 1.75, since it was
-targetted for functionality, and several speed-gaining features were
-(knowingly) omitted.
-
-<p>
-To summarize and to introduce the terms used in the description of the
-parameters, the features of <b><tt>uniprint</tt></b> that can be
-parameterized are:
-
-<blockquote><ul>
-<li>color mapping,
-<li>color rendering (error diffusion or Floyd-Steinberg),
-<li>output format, including
-<li>weaving.
-</ul></blockquote>
-
-<h3><a name="Uni_make_pfile"></a>Godzilla's guide to the creation of Unified Printer Parameter (<b><tt>.upp</tt></b>) files</h3>
-
-<p>
-Here is one of the distributed parameter files (<b><tt>stc_l.upp</tt></b>)
-with some added comments. Also see the section that describes
-<a href="#Uni_all_parameters">all <b><tt>uniprint</tt></b>'s parameters in
-brief</a>.
-
-<pre>
--supModel="Epson Stylus Color I (and PRO Series), 360x360DpI, noWeave"
--sDEVICE=uniprint -- Select the driver
--dNOPAUSE -- Useful with printers
--dSAFER -- Provides some security
--dupColorModel=/DeviceCMYK -- Selects the color mapping
--dupRendering=/ErrorDiffusion -- Selects the color rendering
--dupOutputFormat=/EscP2 -- Selects the output format
--r360x360 -- Adjusts the resolution
--dupMargins="{ 9.0 39.96 9.0 9.0}" -- Establishes (L/B/R/T margins in points)
--dupComponentBits="{1 1 1 1}" -- Map: bits per component (default: 8)
--dupWeaveYPasses=4 -- Weave: Y-passes (default: 1)
--dupOutputPins=15 -- Format/weave: scans per Command
--dupBeginPageCommand="&lt; -- Goes to the printer
- 1b40 1b40 -- ESC '@' ESC '@' -&gt; dual reset
- 1b2847 0100 01 -- ESC '(' 'G' 1 0 1 -&gt; graphics
- 1b2869 0100 00 -- ESC '(' 'i' 1 0 1 -&gt; no HW weave
- 1b2855 0100 0A -- ESC '(' 'U' 1 0 10 -&gt; 360dpi
- 1b5500 -- ESC 'U' 0 -&gt; bidir print
- 1b2843 0200 0000 -- ESC '(' 'C' 2 0 xx -&gt; page length
- 1b2863 0400 0000 0000 -- ESC '(' 'c' 4 0 xxxx -&gt; margins
-&gt;" -- as it is, unless:
--dupAdjustPageLengthCommand -- Adjust page length in BOP requested
--dupAdjustTopMarginCommand -- Adjust top margin in BOP
--dupAdjustBottomMarginCommand -- Adjust bottom margin in BOP
--dupEndPageCommand="(\033@\014)" -- Last (but one) data to the printer
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-</pre>
-
-<p>
-That's short, and if one removes <b><tt>upWeaveYPasses</tt></b> and
-<b><tt>upOutputPins</tt></b> it becomes shorter, almost
-<b><tt>stcany.upp</tt></b>. This miniature size is because I am most
-familiar with ESC/P2, and was able to add defaults for the omitted
-parameters. Now a few notes about the parameters used in this example:
-
-<ul>
-<li><b><tt>upModel</tt></b> is a string serving as a comment (and nothing else).
-
-<li><a href="Use.htm#Output_device"><b><tt>DEVICE</tt></b></a>,
-<a href="Use.htm#NoPause"><b><tt>NOPAUSE</tt></b></a>, <a
-href="Use.htm#Safer"><b><tt>SAFER</tt></b></a> are well-known Ghostscript
-parameters described in the <a href="Use.htm">usage documentation</a>.
-
-<li><b><tt>upColorModel</tt></b> is one of major <b><tt>uniprint</tt></b>
-parameters: it selects the color mapping and in turn the PostScript color
-model. It supports the devices <b><tt>/DeviceGray</tt></b>, <b><tt>/DeviceRGBW</tt></b>, <b><tt>/DeviceRGB</tt></b>, <b><tt>/DeviceCMYK</tt></b>, and <b><tt>/DeviceCMYKgenerate</tt></b>.
-
-<li><b><tt>upRendering</tt></b> selects the (color) rendering, supporting
-the values <b><tt>/ErrorDiffusion</tt></b> and <b><tt>/FSCMYK32</tt></b>.
-<b><tt>/ErrorDiffusion</tt></b> is similar to <b><tt>fsmono</tt></b>,
-<b><tt>fsrgb</tt></b> and <b><tt>fsx4</tt></b> of <b><tt>stcolor</tt></b>,
-while <b><tt>/FSCMYK32</tt></b> is (almost) identical to
-<b><tt>fscmyk</tt></b> and <b><tt>hscmyk</tt></b>, but is restricted to
-32-bit data and should be used in conjunction with
-<b><tt>/DeviceCMYKgenerate</tt></b>.
-
-<li><b><tt>upOutputFormat</tt></b> selects the output method, supporting the values
-<b><tt>/SunRaster</tt></b>, <b><tt>/Epson</tt></b>, <b><tt>/EscP2</tt></b>, <b><tt>/EscP2XY</tt></b>, and<b><tt>/Pcl</tt></b>.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>/SunRaster</tt></b>
- <td>&nbsp;
- <td>creates Sun raster files and requires no other parameters
-<tr valign=top> <td><b><tt>/Epson</tt></b>
- <td>&nbsp;
- <td>is used for the elderly ESC/P format (used by many printers)
-<tr valign=top> <td><b><tt>/EscP2</tt></b>
- <td>&nbsp;
- <td>is used by more recent Epson printers (no X weaving supported)
-<tr valign=top> <td><b><tt>/EscP2XY</tt></b>
- <td>&nbsp;
- <td>supports X-Weaving, used with 1440dpi printers and in <b><tt>stc2s_h</tt></b>
-<tr valign=top> <td><b><tt>/Pcl</tt></b>
- <td>&nbsp;
- <td>HP PCL/RTL-style output formatter without weaving
-</table></blockquote>
-
-<li><b><tt>-r360x360</tt></b> is Ghostscript's standard
-<a href="Use.htm#Resolution_switch">resolution switch</a>.
-
-<li><b><tt>upMargins="{&nbsp;9.0&nbsp;39.96&nbsp;9.0&nbsp;9.0}"</tt></b>
-has function similar to the Ghostscript parameter
-<b><tt>.HWMargins</tt></b>: it sets the left, bottom, right, and top
-margins in points. <b><tt>uniprint</tt></b> provides this parameter to
-enable automatic left-right exchange if <b><tt>upYFlip</tt></b> is active.
-
-<li><b><tt>upComponentBits</tt></b> is an array of integers that selects
-the bits stored in raster memory, by default 8 bits per component. In this
-example, 1 bit is selected for each component, thus turning down the
-Floyd-Steinberg algorithm (but still carrying out the time-consuming
-computation). The related parameter "<b><tt>upComponentShift</tt></b>"
-controls positioning the components within raster memory. Each of the
-numbers given corresponds to a component which depends on the selected
-"<b><tt>upColorModel</tt></b>":
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td align=center>&nbsp;
- <td>&nbsp;
- <td align=center><b><tt>/DeviceGray</tt></b>
- <td>&nbsp;
- <td align=center><b><tt>/DeviceRGBW</tt></b>
- <td>&nbsp;
- <td align=center><b><tt>/DeviceRGB</tt></b>
- <td>&nbsp;
- <td align=center><b><tt>/DeviceCMYK</tt></b>
- <td>&nbsp;
- <td align=center><b><tt>/DeviceCMYKgenerate</tt></b>
-<tr> <td colspan=11><hr>
-<tr valign=top> <td align=center>0
- <td>&nbsp;
- <td align=center>White
- <td>&nbsp;
- <td align=center>White
- <td>&nbsp;
- <td align=center>Red
- <td>&nbsp;
- <td align=center>Black
- <td>&nbsp;
- <td align=center>Black
-<tr valign=top> <td align=center>1
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>Red
- <td>&nbsp;
- <td align=center>Green
- <td>&nbsp;
- <td align=center>Cyan
- <td>&nbsp;
- <td align=center>Cyan
-<tr valign=top> <td align=center>2
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>Green
- <td>&nbsp;
- <td align=center>Blue
- <td>&nbsp;
- <td align=center>Magenta
- <td>&nbsp;
- <td align=center>Magenta
-<tr valign=top> <td align=center>3
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>Blue
- <td>&nbsp;
- <td align=center>--
- <td>&nbsp;
- <td align=center>Yellow
- <td>&nbsp;
- <td align=center>Yellow
-</table>
-
-<p>
-This order may not be suitable for some printers, so another parameter
-"<b><tt>upOutputComponentOrder</tt></b>", also an array of integers,
-selects the output order using the numbers on the left.
-</blockquote>
-
-<p>
-One group of very important parameters not used in the example above
-deserves to be mentioned here: the transfer arrays, named
-"<b><tt>up</tt><em>{color}</em><tt>Transfer</tt></b>", where
-<b><em>{color}</em></b> is one of the names in the table above. These are
-arrays of floats in the range 0.0 - 1.0 representing the color transfer
-functions. They are used during mapping and rendering. In the simplest
-case, these arrays ensure an equidistant distribution of the stored values
-within the device space (which means a nonlinear mapping from Ghostscript's
-point of view). If the given array does not cover the entire range from 0
-to 1, which applies for the Stylus Color family at high resolution for some
-media, only the relevant part gets mapped to raster memory (meaning that
-is's fully utilized) and the rendering takes care of the "overhang" (in
-this case the post-diffusion of 1-bit components makes sense).
-
-<p>
-Finally an important note on the transfer arrays: for monochrome devices
-the stored component is <b><tt>White</tt></b>, which is the way PostScript
-defines these devices, but most printers require <b><tt>Black</tt></b>.
-Thus one has to provide a falling "<b><tt>upWhiteTransfer</tt></b>" for
-such printers.
-
-<li><b><tt>upWeaveYPasses</tt></b> is an integer that gives the number of
-print head passes required to achieve the requested Ydpi. This makes sense
-only if
-
-<li><b><tt>upOutputPins</tt></b> is set to something greater than 1. Thus
-multiple pins or nozzles are transferred with a single command, and of
-course such a command must be supported by the device.
-
-</ul>
-
-<p>
-If no other weave parameters are given, <b><tt>uniprint</tt></b> computes
-several defaults which together do no weaving. The <b><tt>/Epson</tt></b>
-and <b><tt>/EscP2XY</tt></b> formats take care of
-"<b><tt>upWeaveXPasses</tt></b>" too.
-
-<ul>
-
-<li><b><tt>upBeginPageCommand</tt></b> represents the data transferred to
-the printer whenever a new page begins. Before that,
-"<b><tt>upBeginJobCommand</tt></b>" is written to the device only once per
-output file. (Intended for the HP PJL sequences).
-
-<li><b><tt>upAdjustBottomMarginCommand</tt></b>,
-<b><tt>upAdjustMediaSize</tt></b>,
-<b><tt>upAdjustPageLengthCommand</tt></b>,
-<b><tt>upAdjustPageWidthCommand</tt></b>,
-<b><tt>upAdjustResolutionCommand</tt></b>, and
-<b><tt>upAdjustTopMarginCommand</tt></b>
-
-<p>
-Normally <b><tt>uniprint</tt></b> does not change the
-"<b><tt>upBeginPageCommand</tt></b>", nor does it provide a default.
-However, if the above boolean values are set, the corresponding values are
-changed (provided that the code of the formatters supports this change and
-the commands to be adjusted are included in the BOP string).
-
-<li><b><tt>upEndPageCommand</tt></b> is the fixed termination sequence for
-each page, and of course there is an "<b><tt>upEndJobCommand</tt></b>" too.
-
-<li><b><tt>upAbortCommand</tt></b> is written if <b><tt>uniprint</tt></b>'s
-interrupt detection is enabled and a signal is caught. It replaces
-"<b><tt>upEndPageCommand</tt></b>" and "<b><tt>upEndJobCommand</tt></b>",
-thus allowing the indication of an aborted job. (Ghostscript gets an error
-return from <b><tt>uniprint</tt></b> in this case, and abandons further
-processing.)
-
-</ul>
-
-<p>
-For the ESC/P(2) formats all commands represent binary data, while for
-the PCL/RTL formatter some of them are formats for <b><tt>fprintf</tt></b>. These strings
-<b><em>must</em></b> explicitly have a trailing "\0'.
-
-<p>
-I should write more, but the only recommendation is to
-take a look at the various parameter files. Here are a few more hints.
-
-<ul>
-<li>If the Driver rejects a configuration, nothing happens until
-<b><tt>showpage</tt></b>; then an error is raised and a message with
-"CALL-REJECTED upd_print_page..." is printed on stderr.
-
-<li><b><tt>uniprint</tt></b> has lots of messages that can be activated by
-setting bits in the preprocessor macro <b><tt>UPD_MESSAGES</tt></b>. I
-usually use the compile-time option <b><tt>-DUPD_MESSAGES=0x17</tt></b> for
-configuration development. (For the semantics, check the
-<b><tt>UPD_M_</tt></b> macros in the source.)
-
-<li>A program "<b><tt>uninfo.ps</tt></b>" distributed with Ghostscript
-displays interactively in alphabetical order the contents of the current
-pagedevice dictionary. This includes any parameters generated or changed by
-<b><tt>uniprint</tt></b>.
-</ul>
-
-<h3><a name="Uni_all_parameters"></a>All parameters in brief</h3>
-
-<p>
-This table gives a brief explanation of every parameter known to
-<b><tt>uniprint</tt></b>, listing them in alphabetical order. "[&nbsp;]"
-denotes that a parameter is an array, and "(RO)" that it is read-only.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">All <b><tt>uniprint</tt></b> parameters</font><hr>
-<tr valign=bottom>
- <th align=left>Parameter
- <td>&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Use
-<tr> <td colspan=5><hr>
-<tr valign=top> <td><b><tt>upAbortCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>End of page and file on interrupt
-<tr valign=top> <td><b><tt>upAdjustBottomMarginCommand</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Manipulate bottom margin in <b><tt>upBeginPageCommand</tt></b>
-<tr valign=top> <td><b><tt>upAdjustMediaSizeCommand</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Manipulate <b><tt>Mediasize</tt></b> [intended]
-<tr valign=top> <td><b><tt>upAdjustPageLengthCommand</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Manipulate page length in <b><tt>upBeginPageCommand</tt></b>
-<tr valign=top> <td><b><tt>upAdjustPageWidthCommand</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Manipulate page width in <b><tt>upBeginPageCommand</tt></b>
-<tr valign=top> <td><b><tt>upAdjustResolutionCommand</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Manipulate resolution
-<tr valign=top> <td><b><tt>upAdjustTopMarginCommand</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Manipulate top margin in <b><tt>upBeginPageCommand</tt></b>
-<tr valign=top> <td><b><tt>upBeginJobCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Begin each output file
-<tr valign=top> <td><b><tt>upBeginPageCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Begin each page
-<tr valign=top> <td><b><tt>upBlackTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Black transfer (CMYK only!)
-<tr valign=top> <td><b><tt>upBlueTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Blue transfer
-<tr valign=top> <td><b><tt>upColorInfo</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>struct <b><tt>gx_device_color_info</tt></b>
-<tr valign=top> <td><b><tt>upColorModel</tt></b>
- <td>&nbsp;
- <td>Name
- <td>&nbsp;
- <td>Select color mapping
-<tr valign=top> <td><b><tt>upColorModelInitialized</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>Color mapping OK
-<tr valign=top> <td><b><tt>upComponentBits</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Bits stored per component
-<tr valign=top> <td><b><tt>upComponentShift</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Positioning within <b><tt>gx_color_index</tt></b>
-<tr valign=top> <td><b><tt>upCyanTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Cyan transfer
-<tr valign=top> <td><b><tt>upEndJobCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>End each file unless <b><tt>upAbortCommand</tt></b>
-<tr valign=top> <td><b><tt>upEndPageCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>End each page unless <b><tt>upAbortCommand</tt></b>
-<tr valign=top> <td><b><tt>upErrorDetected</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>Severe (VM) error, not fully operational
-<tr valign=top> <td><b><tt>upFSFixedDirection</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Inhbits direction toggling in rendering
-<tr valign=top> <td><b><tt>upFSProcessWhiteSpace</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Causes white-space rendering
-<tr valign=top> <td><b><tt>upFSReverseDirection</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Run rendering in reverse (if fixed)
-<tr valign=top> <td><b><tt>upFSZeroInit</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Non-random rendering initialization
-<tr valign=top> <td><b><tt>upFormatXabsolute</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Write absolute X coordinates
-<tr valign=top> <td><b><tt>upFormatYabsolute</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Write absolute Y coordinates
-<tr valign=top> <td><b><tt>upGreenTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Green transfer
-<tr valign=top> <td><b><tt>upMagentaTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Magenta transfer
-<tr valign=top> <td><b><tt>upMargins</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>L/B/R/T margins in points
-<tr valign=top> <td><b><tt>upModel</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Comment string, holds some info
-<tr valign=top> <td><b><tt>upOutputAborted</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>Caught an interrupt
-<tr valign=top> <td><b><tt>upOutputBuffers</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Number of rendering buffers (2^<small><sup><b>N</b></sup></small>)
-<tr valign=top> <td><b><tt>upOutputComponentOrder</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Order of components when printing
-<tr valign=top> <td><b><tt>upOutputComponents</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Number of written components, not fully operational
-<tr valign=top> <td><b><tt>upOutputFormat</tt></b>
- <td>&nbsp;
- <td>Name
- <td>&nbsp;
- <td>Select output format
-<tr valign=top> <td><b><tt>upOutputFormatInitialized</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>Format data OK
-<tr valign=top> <td><b><tt>upOutputHeight</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Output height in pixels
-<tr valign=top> <td><b><tt>upOutputPins</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Number of pins / nozzles per command
-<tr valign=top> <td><b><tt>upOutputWidth</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Output width in pixels
-<tr valign=top> <td><b><tt>upOutputXOffset</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Offset in pixels, if <b><tt>upFormatXabsolute</tt></b>
-<tr valign=top> <td><b><tt>upOutputXStep</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Divisor or multiplier for X coords
-<tr valign=top> <td><b><tt>upOutputYOffset</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Offset in pixels, if <b><tt>upFormatYabsolute</tt></b>
-<tr valign=top> <td><b><tt>upOutputYStep</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Divisor or multiplier for Y coords
-<tr valign=top> <td><b><tt>upRasterBufferInitialized</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>GS buffer OK
-<tr valign=top> <td><b><tt>upRedTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Red transfer
-<tr valign=top> <td><b><tt>upRendering</tt></b>
- <td>&nbsp;
- <td>Name
- <td>&nbsp;
- <td>Select rendering algorithm
-<tr valign=top> <td><b><tt>upRenderingInitialized</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>Rendering parameters OK
-<tr valign=top> <td><b><tt>upSelectComponentCommands</tt></b>
- <td>&nbsp;
- <td>String[&nbsp;]
- <td>&nbsp;
- <td>Establish color (output order!)
-<tr valign=top> <td><b><tt>upSetLineFeedCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Adjust linefeed (Epson only)
-<tr valign=top> <td><b><tt>upVersion</tt></b>
- <td>&nbsp;
- <td>String (RO)
- <td>&nbsp;
- <td>Source code version
-<tr valign=top> <td><b><tt>upWeaveFinalPins</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Number of bottom pins on EOP passes
-<tr valign=top> <td><b><tt>upWeaveFinalScan</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Begin EOP passes (Y-coord)
-<tr valign=top> <td><b><tt>upWeaveFinalXStarts</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>X-pass indices for EOP passes
-<tr valign=top> <td><b><tt>upWeaveFinalYFeeds</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Y increments for EOP passes
-<tr valign=top> <td><b><tt>upWeaveInitialPins</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Number of top pins on BOP passes
-<tr valign=top> <td><b><tt>upWeaveInitialScan</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>End BOP passes (Y coord)
-<tr valign=top> <td><b><tt>upWeaveInitialXStarts</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>X-pass indices for BOP passes
-<tr valign=top> <td><b><tt>upWeaveInitialYFeeds</tt></b>
- <td>&nbsp;
- <td>int[&nbsp;]
- <td>&nbsp;
- <td>Y increments for BOP passes
-<tr valign=top> <td><b><tt>upWeavePasses</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>XPasses &times; YPasses
-<tr valign=top> <td><b><tt>upWeaveXPasses</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Number of X passes
-<tr valign=top> <td><b><tt>upWeaveXStarts</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>X-pass indices for normal passes
-<tr valign=top> <td><b><tt>upWeaveYFeeds</tt></b>
- <td>&nbsp;
- <td>Int[&nbsp;]
- <td>&nbsp;
- <td>Y increments for normal passes
-<tr valign=top> <td><b><tt>upWeaveYOffset</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Number of blank or incomplete scans at BOP
-<tr valign=top> <td><b><tt>upWeaveYPasses</tt></b>
- <td>&nbsp;
- <td>Int
- <td>&nbsp;
- <td>Number of X passes
-<tr valign=top> <td><b><tt>upWhiteTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>White transfer (monochrome devices!)
-<tr valign=top> <td><b><tt>upWriteComponentCommands</tt></b>
- <td>&nbsp;
- <td>String[&nbsp;]
- <td>&nbsp;
- <td>Commands to write each component
-<tr valign=top> <td><b><tt>upWroteData</tt></b>
- <td>&nbsp;
- <td>Bool (RO)
- <td>&nbsp;
- <td>Something (<b><tt>BeginJob</tt></b>) written to output
-<tr valign=top> <td><b><tt>upXMoveCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>X positioning command
-<tr valign=top> <td><b><tt>upXStepCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Single step to the right
-<tr valign=top> <td><b><tt>upYFlip</tt></b>
- <td>&nbsp;
- <td>Bool
- <td>&nbsp;
- <td>Flips output along the Y axis
-<tr valign=top> <td><b><tt>upYMoveCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Y positioning command
-<tr valign=top> <td><b><tt>upYStepCommand</tt></b>
- <td>&nbsp;
- <td>String
- <td>&nbsp;
- <td>Single step down
-<tr valign=top> <td><b><tt>upYellowTransfer</tt></b>
- <td>&nbsp;
- <td>Float[&nbsp;]
- <td>&nbsp;
- <td>Yellow transfer
-</table></blockquote>
-
-<h3><a name="Uni_honors"></a><b><tt>uniprint</tt></b>'s Roll of Honor</h3>
-
-<p>
-I should mention all of the people who were involved in
-<b><tt>stcolor</tt></b>'s evolution, but I've decided to start from scratch
-here for <b><tt>uniprint</tt></b>:
-
-<blockquote>
-<dl>
-<dt>John P. Beale
-<dd>for testing the <b><tt>stc600</tt></b> modes
-<dt>Bill Davidson
-<dd>who triggered some weaving research and tested <b><tt>stc2s_h</tt></b>
-<dt>L. Peter Deutsch
-<dd>who triggered ease of configuration
-<dt>Mark Goldberg
-<dd>who prepared the <b><tt>stc500</tt></b> transfers
-<dt>Scott F. Johnston and Scott J. Kramer
-<dd>for testing the <b><tt>stc800</tt></b> modes
-<dt>Martin Lottermoser
-<dd>for his great commented H-P DeskJet driver
-<dt>Helmut Riegler
-<dd>for the BJC extension
-<dt>Hans-Gerd Straeter
-<dd>for some measured transfer curves and more
-<dt>Uli Wortmann
-<dd>for discussions and his <b><tt>cdj850</tt></b> driver
-<dt>My family
-<dd>for tolerating my printer-driver hacking
-</dl>
-</blockquote>
-
-<address>
-Gunther Hess<br>
-Duesseldorfer Landstr. 16b<br>
-D-47249 Duisburg<br>
-Germany<br>
-+49 203 376273 telephone (MET evening hours)<br>
-&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
-</address>
-<h3><a name="Uni_weaving_howto"></a><tt>Uniprint</tt> weaving parameters howto</h3>
-This section was contributed by Glenn Ramsey.<p>
-<p>I wrote this because the documentation was very brief and I really struggled
-with it for a while, but it is very simple once you understand what is going
-on.
-<p>This only describes how to work out the Y parameters, I haven't looked
-at the X parameters yet.
-<ol>
-<li>
-<b>Determine the nozzle geometry (upOutputPins)</b>
-<p>
-You need to know how many nozzles the printer has and the spacing between
-them. Usually you can find this out from the printer manual, or the printer
-supplier, but you may have to dissect a couple of printer output files
-produced with the driver supplied with the printer. There is a utility
-called escp2ras<a href="#escp2ras"><sup>*</sup></a> that will help with that.
-Sometimes the term pin is used instead of nozzle but they mean the same thing.
-<p>The number of nozzles will be the value assigned to the upOutputPins
-parameter.
-<p>Actually you don't have to print with all the pins available but for
-the purpose of demonstration I'll assume that we are using them all.
-<p>
-<a name="escp2ras"></a>* escp2ras is available from Gunther Hess' page at <a href="http://www-md.e-technik.uni-rostock.de/ma/gunther/gs/index.html">http://www-md.e-technik.uni-rostock.de/ma/gunther/gs/index.html</a>
-</li>
-<p>
-<li><b>Determine how many passes are required (upWeaveYPasses)</b>
-<p>The number of passes required is going to depend on the required resolution
-and the nozzle spacing.
-<blockquote>
-<tt>passes = resolution * nozzle spacing
-</tt>
-</blockquote>
-This will be the value assigned to the upWeaveYPasses parameter.
-<p>For example if the desired resolution is 360 dpi and the nozzles are
-spaced at 1/90in then 360 * 1/90 = 4 passes are required. For 720 dpi 8
-passes would be required. The printer would, of course, have to be capable
-of moving the paper in increments of either 360 or 720 dpi too.
-</li>
-<p>
-<li>
-<b>Determine the normal Y feed increment (upWeaveYFeeds)</b>
-<p>
-You need to work out how much to feed the paper so that when the paper
-has moved by one head length in however many passes you have then each
-row space on the paper has been passed over by at least one nozzle. There
-will be one feed value for each pass and the feed values must comply with
-the following rules:
-<blockquote>
-<tt>
-<p>sum of feeds = passes * nozzles
-<br>feed%passes != 0 (feed is not exactly divisible by passes)
-<br>sum of (nozzles - feed) = 0
-</tt>
-</blockquote>
-<p>For example if passes=4 and nozzles=15, then sum of feeds=60. The feed
-values could be 1,1,1,57 or 15,15,15,15 or 14,15,18,13.
-<p>These values will be assigned to the upWeaveYFeeds parameter.
-<p>You would need to experiment to see what combination looks best on the
-printer.
-<p>I found it convenient to draw several lines of nozzles and then move
-them around to see how the different combinations would fill the paper.
-A computer drawing tool makes this easier than pencil and paper (I used
-Dia, a GNOME app). The number of nozzles would probably be be a good place
-to start.
-<p>Remember that if the number of passes is more than 1 then the feed increment
-will be less than the nozzle spacing and <tt>passes &times; feed increment size</tt>
-must equal the physical distance between each nozzle.
-</li>
-<p>
-<li>
-<b>Determine the beginning of page pins (upWeaveInitialPins)</b>
-<p>
-These values will be assigned to the upWeaveInitialPins parameter and are
-the numbers of nozzles to operate in each of the initial passes at the top
-of a page. The nozzles that the values refer to are the topmost nozzles
-on the head, nearest the top margin. If the image doesn't start at the
-top margin then uniprint doesn't use these feeds.
-<p>I don't know a mathematical relation for this except that at least one
-of the values must be the number of nozzles, but I'm sure that there must
-be one. I used a graphical method, the description that follows refers
-to the ascii diagram in below.
-<p>Draw a line of nozzles for each pass arranged as they would be using
-the normal Y feed increment determined in step 3. In the diagram below
-this would be passes 5-8.
-<p>Draw a line of nozzles that would print just before the first normal
-pass. The feed increment for this pass will be close to and most likely
-1 or 2 units less than the feed increment of the last normal pass. In the
-example below this line is pass 4 and the feed increment is 13 whereas
-the normal feed increment is 15.
-<p>Draw each pass before that with a small feed increment so that if all
-of the nozzles appearing above the first nozzle of the first normal pass
-operate then all of the spaces will be filled. This feed increment is usually
-1 except in cases where some jiggery pokery is going on to make the printer
-print at an apparent higher resolution than the nozzle diameter.
-<p>Now select the nozzles that will operate in each of theses initial passes
-so that the paper is filled. In each pass the nozzles must be adjacent
-to each other and at least one of the passes will have all the nozzles
-operating. I suspect that for each combination of normal Y feed increments
-there will only be one set of valid beginning of page increments.
-</li>
-</ol>
-<h4>Example: stc.upp from Aladdin Ghostscript 6.01</h4>
-15 nozzles spaced at 1/90 in, 360 dpi requires 4 passes.
-<blockquote><tt><pre>
--dupWeaveYPasses=4
--dupOutputPins=15
--dupWeaveYFeeds="{15 15 15 15}"
--dupWeaveInitialYFeeds="{1 1 1 13}"
--dupWeaveInitialPins="{ 4 15 11 7}"
-</pre></tt></blockquote>
-The following diagram shows which nozzles operate during each pass.
-<br>Passes 1-4 are beginning of page passes and passes 5-8 are normal passes.
-<blockquote>
-<p>x=nozzle operates, o=nozzle not used in this pass<tt></tt>
-<p><tt>&nbsp; 1 2 3 4 5 6 7 8 - pass no</tt>
-<br><tt>0 x</tt>
-<br><tt>1&nbsp;&nbsp; x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>4 x</tt>
-<br><tt>5&nbsp;&nbsp; x</tt>
-<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>8 x</tt>
-<br><tt>9&nbsp;&nbsp; x</tt>
-<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>2 x</tt>
-<br><tt>3&nbsp;&nbsp; x</tt>
-<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>7&nbsp;&nbsp; x</tt>
-<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>0 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>1&nbsp;&nbsp; x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>4 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>5&nbsp;&nbsp; x</tt>
-<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>8 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>9&nbsp;&nbsp; x</tt>
-<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>2 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>3&nbsp;&nbsp; x</tt>
-<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>7&nbsp;&nbsp; x</tt>
-<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>0 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>1&nbsp;&nbsp; x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>4 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>5&nbsp;&nbsp; x</tt>
-<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>8 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>9&nbsp;&nbsp; x</tt>
-<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>2 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>3&nbsp;&nbsp; x</tt>
-<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>7&nbsp;&nbsp; x</tt>
-<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
-<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>6</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>0</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>4</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
-<br><tt>8</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>1</tt>
-<br><tt>2</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>5</tt>
-<br><tt>6</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>9</tt>
-<br><tt>0</tt>
-<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>3</tt>
-<br><tt>4</tt>
-<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>6</tt>
-<br><tt>7</tt>
-<br><tt>8</tt>
-<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>0</tt>
-<br><tt>1</tt>
-<br><tt>2</tt>
-<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-<br><tt>4</tt>
-<br><tt>5</tt>
-<br><tt>6</tt>
-<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-x</tt>
-</blockquote>
-<p>These parameters would also work:
-<blockquote><tt><pre>
--dupWeaveYPasses=4
--dupOutputPins=15
--dupWeaveYFeeds="{14 15 18 13}"
--dupWeaveInitialYFeeds="{1 1 1 13}"
--dupWeaveInitialPins="{ 4 11 7 15}"
-</pre></tt></blockquote>
-<p>
-<hr>
-<h3><a name="Uni_esc300"></a>Extension to <tt>uniprint</tt> for the Epson Stylus Color 300</h3>
-This section was contributed by Glenn Ramsey.<p>
-The Epson Stylus Color 300 uses a different command set to other Epson
-Stylus Color printers that use the ESC/P2 language. As far as I can
-tell its commands are a subset of ESC/P2. In ESC/P2 the colour to be
-printed is selected by a 'set colour' command and then the data sent
-is only printed in that colour until the colour is changed with another
-'set colour' command. The Stylus Color 300 lacks this functionality.
-The data sent to the printer maps directly to the ink nozzles and colour
-of an output scan line in the printed output is determined by the position
-of the scan line within the data. This means that the driver must know
-how the nozzles are arranged and must format the output accordingly.
-The extension adds a format that I have called EscNozzleMap and adds some
- additional parameters to uniprint.<br>
-<ul>
- <li><b><tt>upOutputFormat</tt></b>selects the output method, and should be set to the value
-<b><tt>/EscNozzleMap</tt></b> to select this format.
- <blockquote>
- <table cellpadding="0" cellspacing="0">
- <tbody>
- <tr valign="Top">
- <td><b><tt>/EscNozzleMap</tt></b></td>
- <td>&nbsp;</td>
- <td>produces output for the Epson Stylus Color 300
- </td>
- </tr>
- <tbody>
- </table>
- </blockquote>
-</ul>
-
-<blockquote>
- <table cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <th colspan="5" bgcolor="#cccc00">
- <hr><font size="+1"><b><tt>uniprint</tt></b> parameters for the
- EscNozzleMap format</font>
- <hr></th>
- </tr>
- <tr valign="Bottom">
- <th align="Left">Parameter
- </th>
- <td>&nbsp;
- </td>
- <th align="Left">Type
- </th>
- <td>&nbsp;&nbsp;&nbsp;
- </td>
- <th align="Left">Use
- </th>
- </tr>
- <tr>
- <td colspan="5">
- <hr></td>
- </tr>
- <tr valign="Top">
- <td><b><tt>upNozzleMapRowsPerPass</tt></b></td>
- <td>&nbsp;
- </td>
- <td>Int
- </td>
- <td>&nbsp;
- </td>
- <td>output rows to generate for each pass of the head
- </td>
- </tr>
- <tr valign="Top">
- <td><b><tt>upNozzleMapPatternRepeat</tt></b></td>
- <td>&nbsp;
- </td>
- <td>Int
- </td>
- <td>&nbsp;
- </td>
- <td>no. of rows that correspond to the repeat pattern of the
- nozzles
- </td>
- </tr>
- <tr valign="Top">
- <td><b><tt>upNozzleMapRowMask</tt></b></td>
- <td>&nbsp;
- </td>
- <td>Int[]
- </td>
- <td>&nbsp;
- </td>
- <td>mask indicating the colour of the nozzles
- </td>
- </tr>
- <tr valign="Top">
- <td><b><tt>upNozzleMapMaskScanOffset</tt></b></td>
- <td>&nbsp;
- </td>
- <td>Int[]
- </td>
- <td>&nbsp;
- </td>
- <td>mask indicating the physical position of the nozzles
- </td>
- </tr>
- </tbody>
- </table>
-</blockquote>
-
-<h4>A more detailed description of the new parameters</h4>
-<ul>
- <li><b><tt>upNozzleMapRowsPerPass</tt></b><br>
- The number of rows of data that are required to address all nozzles for a
- single pass of the head. There will always be this number of rows of output
- data generated. I'd expect it to be the same as the total number of nozzles but
- it wouldn't break the formatter if it wasn't. So if you wanted to print with
- only the 10th nozzle then row 10 would contain data corresponding to the bit
- pattern and all of the others would be padded with zeros.
- </li>
- <li><b><tt>upNozzleMapPatternRepeat</tt></b><br>
- The number of nozzles in each repeated group on the printing head.
- This parameter must correspond with the length of the upNozzleMapRowMask array.
- </li>
- <li><b><tt>upNozzleMapRowMask</tt></b><br>
- An array of integers that defines the colour of the nozzles on the
- head and whether the nozzles will be used to print. The array index
- defines the row index for the nozzle in the output data
- and the value defines the colour of the nozzle. The mapping
- of colours to values is defined in the table below.
- <blockquote>
- <table cellpadding="0" cellspacing="0">
- <tbody>
- <tr valign="Bottom">
- <th align="Left">colour
- </th>
- <td>&nbsp;
- </td>
- <th align="center">mask value
- </th>
- </tr>
- <tr>
- <td colspan="5">
- <hr></td>
- </tr>
- <tr valign="Top" align="middle">
- <td><b><tt>K</tt></b></td>
- <td>&nbsp;
- </td>
- <td>1
- </td>
- </tr>
- <tr valign="Top" align="middle">
- <td><b><tt>C</tt></b></td>
- <td>&nbsp;
- </td>
- <td>2
- </tr>
- <tr valign="Top" align="middle">
- <td><b><tt>M</tt></b></td>
- <td>&nbsp;
- </td>
- <td>3
- </td>
- </tr>
- <tr valign="Top" align="middle">
- <td><b><tt>Y</tt></b></td>
- <td>&nbsp;
- </td>
- <td>4
- </td>
- </tr>
- <tr valign="Top" align="middle">
- <td><b><tt>no data</tt></b></td>
- <td>&nbsp;
- </td>
- <td>0
- </td>
- </tr>
- </tbody>
- </table>
- </blockquote>
- A value of 0 means that the nozzle is not used and the row in the output data will be
- padded with zeros.<br>
- </li>
- <li><b><tt>upNozzleMapMaskScanOffset</tt></b><br>
- An array of integers that defines the physical position of the nozzles relative
- to the first nozzle in the repeated group. The relative distance is measured in
- printed line widths and will be different for different printing resolutions.
- This parameter is used because the physical spacing of the nozzles may not
- correspond to their mapping in the output data. For example the ESC300 has nozzles
- physically arranged something like this:
- <table>
- <tr>
- <td bgcolor="#00ffff">&nbsp;
- </td>
- <td bgcolor="#ffff00">&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td bgcolor="#ff00ff">&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td bgcolor="#00ffff">&nbsp;
- </td>
- <td bgcolor="#ffff00">&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td bgcolor="#ff00ff">&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td bgcolor="#ffffff">&nbsp;
- </td>
- </tr>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td bgcolor="#00ffff">&nbsp;
- </td>
- <td bgcolor="#ffff00">&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td bgcolor="#ff00ff">&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td bgcolor="#000000">&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td>&nbsp;
- </td>
- <td bgcolor="#00ffff">&nbsp;
- </td>
- <td bgcolor="#ffff00">&nbsp;
- </td>
- <td>etc ...
- </td>
-
- <tr>
- </tr>
- </table>
- There is a one nozzle width space between the last two nozzles in each group.
- In the output data the data for the last nozzle in the group would be in row 5
- (numbering starts at 0) but the nozzle is physically positioned at 6 spaces from
- the first nozzle.
-</ul>
-<h4>Example 1 - Epson Stylus Color 300 - 360 dpi colour</h4>
-<blockquote><pre>
--dupWeaveYPasses=6
--dupOutputPins=11
--dupWeaveYFeeds="{ 11 11 11 11 11 11 }"
--dupWeaveInitialYFeeds="{ 1 1 1 1 1 7 }"
--dupWeaveInitialPins="{ 2 11 9 7 5 3 }"
--dupNozzleMapRowsPerPass=64
--dupNozzleMapPatternRepeat=6
--dupNozzleMapRowMask="{ 2 4 1 3 0 0 }"
--dupNozzleMapMaskScanOffset="{ 0 1 2 3 0 0 }"
-</pre></blockquote>
-The weaving parameters are the same as for any other uniprint driver
-but they must be consistent with the nozzle map parameters. In this printer
-the coloured nozzles are spaced at 1/60" so 6 passes are required for 360
-dpi resolution.
-<p>
-In the example there are 64 rows of data required for each head pass. Each
-row must be completely filled with data for each pass so if certain nozzles
-do not print in the pass then the rows for those nozzles will be padded
-with zeroes.
-<P>
-The row mask translates to "C Y K M 0 0" so in the output data rows 0,7,13,...
-will contain data for cyan, rows 1,8,14,... will contain data for yellow, etc. Rows 4,10,16,...
-and 5, 11,15,... will always be padded with zeroes. The <i>upNozzleMapPatternRepeat</i>
-parameter defines the length of the mask.
-<p>
-The row mask is repeated for each group of <i>upNozzleMapPatternRepeat</i> rows
-in the output data. In this case there are 64 rows so there will be 10 groups
-of "C Y K M 0 0" followed by "C Y K M" which is equivalent to 11 output
-pins.
-<P>
-The <i>upNozzleMaskScanOffset</i> array indicates how the data from the scan
-buffer is mapped to the output data. The data is presented to the formatter
-as a buffer of four colour scanlines. The index of the scanline being printed,
-lets call it y, always corresponds, in this example, to the physical position of
-the cyan nozzle but since the nozzles are not on the same horizontal
-line then the other colours for the current pass must come from other
-scanlines in the scan buffer. The example is { 0 1 2 3 0 0 }, this means that
-when printing a 4 colour image the magenta data would come from scanline y+3,
-the black from scanline y+2, etc. It would have been possible in this case
-to use the array index instead of the <i>upNozzleMaskScanOffset</i> parameter
-however the parameter is necessary to be able to use the full capability of the
-printer in black only mode.
-
-<h4>Example 2 - Epson Stylus Color 300 - 180 dpi black only</h4>
-<blockquote>
-<pre>
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=1
--dupOutputPins=31
--dupNozzleMapRowsPerPass=64
--dupNozzleMapPatternRepeat=6
--dupNozzleMapRowMask="{ 0 0 1 0 1 1}"
--dupNozzleMapMaskScanOffset="{ 0 0 0 0 1 2 }"
-</pre>
-</blockquote>
-In this example there is no weaving.
-<p>
-The ESC300 has black nozzles evenly physically arranged as K K K but the data must
-be sent to the printer as 00K0KK. This is handled by the <i>upNozzleMapRowMask</i>
-and <i>upNozzleMaskScanOffset</i> arrays. The <i>upNozzleMapRowMask</i> array is
-{ 0 0 1 0 1 1} which translates to { 0 0 K 0 K K } so rows 0, 1 and 3 will always
-contain zeros and the other rows will contain data.
-<p>
-The <i>upNozzleMaskScanOffset</i> array
-in this case is { 0 0 0 0 1 2 } so if the data for the 1st nozzle comes from row
-y in the scan buffer then the data for the 2nd and 3rd nozzles will come from rows
-y+1 and y+2.
-
-<h4>Example 3 - Epson Stylus Color 300 - 360 dpi black only</h4>
-<blockquote>
-<pre>
--dupWeaveYPasses=2
--dupOutputPins=31
--dupWeaveYFeeds="{31 31}"
--dupWeaveInitialYFeeds="{1 31}"
--dupWeaveInitialPins="{16 31}"
--dupNozzleMapRowsPerPass=64
--dupNozzleMapPatternRepeat=6
--dupNozzleMapRowMask="{ 0 0 1 0 1 1}"
--dupNozzleMapMaskScanOffset="{ 0 0 0 0 2 4 }"
-</pre>
-</blockquote>
-In this example 2 weave passes are required to achieve the desired resolution.
-<p>
-The <i>upNozzleMaskScanOffset</i> array in this case is { 0 0 0 0 2 4 } because
-there are two weave passes so if the data for the first nozzle comes from row y
-in the scan buffer then the data for the 2nd and 3rd nozzles must come from rows
-y+(1*2) and y+(2*2).
-<p>
-<address>
-Glenn Ramsey<br>
-glennr at users.sourceforge.net<br>
-February 2001
-</address>
-<br>
-<hr>
-
-<h2><a name="SPARCprinter"></a>Sun SPARCprinter</h2>
-
-<p>
-This section was contributed by Martin Schulte.
-
-<p>
-With a SPARCprinter you always buy software that enables you to do
-PostScript printing on it. A page image is composed on the host, which
-sends a bitmap to the SPARCprinter through a special SBUS video interface.
-So the need for a Ghostscript interface to the SPARCPrinter seems low, but
-on the other hand, Sun's software prints some PostScript drawings
-incorrectly: some pages contain a thin vertical line of rubbish, and on
-some Mathematica drawings the text at the axes isn't rotated. Ghostscript,
-however, gives the correct results. Moreover, replacing proprietary
-software should never be a bad idea.
-
-<p>
-The problem is that there has yet been no effort to make the SPARCPrinter
-driver behave like a BSD output filter. I made my tests using the script
-shown here.
-
-<h3><a name="SPARC_install"></a>Installation</h3>
-
-<p>
-Add <b><tt>sparc.dev</tt></b> to <b><tt>DEVICE_DEVS</tt></b> and compile
-Ghostscript as described in the documentation on <a href="Make.htm">how to
-build Ghostscript</a>. Afterwards you can use the following script as an
-example for printing after modifying it with the right pathnames --
-including for <b>{GSPATH}</b> the full pathname of the Ghostscript
-executable:
-
-<blockquote>
-<pre>outcmd1='/vol/local/lib/troff2/psxlate -r'
-outcmd2='<b><em>{GSPATH}</em></b> -sDEVICE=sparc -sOUTPUTFILE=/dev/lpvi0 -'
-
-if [ $# -eq 0 ]
-then
- $outcmd1 | $outcmd2
-else
- cat $* | $outcmd1 | $outcmd2
-fi
-</pre></blockquote>
-
-<h3><a name="SPARC_problems"></a>Problems</h3>
-
-<p>
-Since <b><tt>/dev/lpi</tt></b> can be opened only for exclusive use, if
-another job has it open (engine_ctl_sparc or another Ghostscript are the
-most likely candidates), Ghostscript stops with "Error: /invalidfileaccess
-in --.outputpage--"
-
-<p>
-In case of common printer problems like being out of paper, a warning
-describing the reason is printed to stdout. The driver tries access again
-each five seconds. Due to a problem with the device driver (in the kernel)
-the reason for printer failure isn't always reported correctly to the
-program. This is the case, for instance, if you open the top cover (error
-E5 on the printer's display). Look at the display on the printer itself if
-a "Printer problem with unknown reason" is reported. Fatal errors cause
-the print job to be terminated.
-
-<hr>
-
-<h2><a name="Apple"></a>Apple dot matrix printer</h2>
-
-<p>
-This section was contributed by Mark Wedel
-&lt;<a href="mailto:master@cats.ucsc.edu">master@cats.ucsc.edu</a>&gt;.
-
-<p>
-The Apple Dot Matrix Printer (DMP) was a parallel predecessor to the
-Imagewriter printer. As far as I know, Imagewriter commands are a superset
-of the Dot Matrix printer's, so the driver should generate output that can
-be printed on Imagewriters.
-
-<p>
-To print images, the driver sets the printer for unidirectional printing
-and 15 characters per inch (cpi), or 120dpi. It sets the line feed to 1/9
-inch. When finished, it sets the printer to bidirectional printing,
-1/8-inch line feeds, and 12 cpi. There appears to be no way to reset the
-printer to initial values.
-
-<p>
-This code does not set for 8-bit characters (which is required). It also
-assumes that carriage return-newline is needed, and not just carriage
-return. These are all switch settings on the DMP, and I have configured
-them for 8-bit data and carriage return exclusively. Ensure that the Unix
-printer daemon handles 8-bit (binary) data properly; in my SunOS 4.1.1
-<b><tt>printcap</tt></b> file the string "<b><tt>ms=pass8,-opost</tt></b>"
-works fine for this.
-
-<p>
-Finally, you can search <b><tt>devdemp.c</tt></b> for
-"<b><tt>Init</tt></b>" and "<b><tt>Reset</tt></b>" to find the strings that
-initialize the printer and reset things when finished, and change them to
-meet your needs.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996-2002 artofcode LLC.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
-
diff --git a/Master/xemtex/doc/ghostscript/Drivers.htm b/Master/xemtex/doc/ghostscript/Drivers.htm
deleted file mode 100644
index c97bfaeb642..00000000000
--- a/Master/xemtex/doc/ghostscript/Drivers.htm
+++ /dev/null
@@ -1,2538 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>The interface between Ghostscript and device drivers</title>
-<!-- $Id: Drivers.htm,v 1.21.2.11.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: drivers.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>The interface between Ghostscript and device drivers</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Adding_drivers">Adding a driver</a>
-<li><a href="#KISS">Keeping things simple</a>
-<li><a href="#Structure">Driver structure</a>
-<ul>
-<li><a href="#Structure_definition">Structure definition</a>
-<li><a href="#Sophisticated">For sophisticated developers only</a>
-</ul>
-<li><a href="#coordinates_and_types">Coordinates and types</a>
-<ul>
-<li><a href="#Coordinate_system">Coordinate system</a>
-<li><a href="#Color_definition">Color definition</a>
-<li><a href="#Types">Types</a>
-</ul>
-<li><a href="#Coding_conventions">Coding conventions</a>
-<ul>
-<li><a href="#Allocating_storage">Allocating storage</a>
-<li><a href="#Driver_instance_allocation">Driver instance allocation</a>
-</ul>
-<li><a href="#Printer_drivers">Printer drivers</a>
-<li><a href="#Driver_procedures">Driver procedures</a>
-<ul>
-<li><a href="#Life_cycle">Life cycle</a>
-<li><a href="#Open_close">Open, close, sync, copy</a>
-<li><a href="#Color_mapping">Color and alpha mapping</a>
-<li><a href="#Pixel_level_drawing">Pixel-level drawing</a>
-<ul>
-<li><a href="#Bitmap_imaging">Bitmap imaging</a>
-<li><a href="#Pixmap_imaging">Pixmap imaging</a>
-<li><a href="#Compositing">Compositing</a>
- [<a href="#S_spec">S</a>, <a href="#T_spec">T</a>, <a href="#F_spec">f</a>,
- <a href="#Compositing_notes">Notes</a>]
-</ul>
-<li><a href="#Polygon_level_drawing">Polygon-level drawing</a>
-<li><a href="#High_level_drawing">High-level drawing</a>
-<ul>
-<li><a href="#Paths">Paths</a>
-<li><a href="#Images">Images</a> [<a href="#Images_notes">Notes</a>]
-<li><a href="#Text">Text</a> [<a href="#Text_notes">Notes</a>]
-</ul>
-<li><a href="#Reading_bits_back">Reading bits back</a>
-<li><a href="#Parameters">Parameters</a>
-<ul>
-<li><a href="#Default_CRD_parameters">Default color rendering dictionary (CRD) parameters</a>
-</ul>
-<li><a href="#External_fonts">External fonts</a>
-<li><a href="#Page_devices">Page devices</a>
-<li><a href="#Miscellaneous">Miscellaneous</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the documentation on <a href="Make.htm">how to build
-Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Adding_drivers"></a>Adding a driver</h2>
-
-<p>
-To add a driver to Ghostscript, first pick a name for your device, say
-"<b><tt>smurf</tt></b>". (Device names must be 1 to 8 characters, begin
-with a letter, and consist only of letters, digits, and underscores. Case
-is significant: all current device names are lower case.) Then all you
-need do is edit <b><tt>contrib.mak</tt></b> in two places.
-
-<ol>
-<li>The list of devices, in the section headed "Catalog". Add
-<b><tt>smurf</tt></b> to the list.
-
-<li>The section headed "Device drivers".
-
-<p>
-Suppose the files containing the smurf driver are called
-"<b><tt>joe</tt></b>" and "<b><tt>fred</tt></b>". Then you should add the
-following lines:
-
-<blockquote>
-<pre># ------ The SMURF device ------ #
-
-smurf_=$(GLOBJ)joe.$(OBJ) $(GLOBJ)fred.$(OBJ)
-$(DD)smurf.dev: $(smurf_)
- $(SETDEV) $(DD)smurf $(smurf_)
-
-$(GLOBJ)joe.$(OBJ) : $(GLSRC)joe.c
- $(GLCC) $(GLO_)joe.$(OBJ) $(C_) $(GLSRC)joe.c
-
-$(GLOBJ)fred.$(OBJ) : $(GLSRC)fred.c
- $(GLCC) $(GLO_)fred.$(OBJ) $(C_) $(GLSRC)fred.c</pre>
-</blockquote>
-
-<p>
-and whatever <b><tt>joe.c</tt></b> and <b><tt>fred.c</tt></b> depend on.
-If the smurf driver also needs special libraries, for instance a library
-named "<b><tt>gorf</tt></b>", then the entry should look like this:
-
-<blockquote>
-<pre>$(DD)smurf.dev : $(smurf_)
- $(SETDEV) $(DD)smurf $(smurf_)
- $(ADDMOD) $(DD)smurf -lib gorf</pre>
-</blockquote>
-
-<p>
-If, as will usually be the case, your driver is a printer driver (as
-<a href="#Printer_drivers">discussed below</a>), the device entry should
-look like this:
-
-<blockquote>
-<pre>$(DD)smurf.dev : $(smurf_) $(GLD)page.dev
- $(SETPDEV) $(DD)smurf $(smurf_)</pre>
-</blockquote>
-
-<p>
-or
-
-<blockquote>
-<pre>$(DD)smurf.dev : $(smurf_) $(GLD)page.dev
- $(SETPDEV) $(DD)smurf $(smurf_)
- $(ADDMOD) $(DD)smurf -lib gorf</pre>
-</blockquote>
-
-<p>
-Note that the space before the :, and the explicit compilation rules for the
-.c files, are required for portability,
-</ol>
-
-<hr>
-
-<h2><a name="KISS"></a>Keeping things simple</h2>
-
-<p>
-If you want to add a simple device (specifically, a monochrome printer), you
-probably don't need to read the rest of this document; just use the code in
-an existing driver as a guide. The Epson and Canon BubbleJet drivers <a
-href="../src/gdevepsn.c">gdevepsn.c</a> and <a
-href="../src/gdevbj10.c">gdevbj10.c</a> are good models for dot-matrix
-printers, which require presenting the data for many scan lines at once; the
-DeskJet/LaserJet drivers in <a href="../src/gdevdjet.c">gdevdjet.c</a> are
-good models for laser printers, which take a single scan line at a time but
-support data compression. For color printers, there are unfortunately no
-good models: the two major color inkjet printer drivers, <a
-href="../src/gdevcdj.c">gdevcdj.c</a> and <a
-href="../src/gdevstc.c">gdevstc.c</a>, are far too complex to read.
-
-<p>
-On the other hand, if you're writing a driver for some more esoteric
-device, you probably do need at least some of the information in the rest
-of this document. It might be a good idea for you to read it in
-conjunction with one of the existing drivers.
-
-<p>
-Duplication of code, and sheer volume of code, is a serious maintenance and
-distribution problem for Ghostscript. If your device is similar to an
-existing one, try to implement your driver by adding some parameterization
-to an existing driver rather than by copying code to create an entirely new
-source module. <a href="../src/gdevepsn.c">gdevepsn.c</a> and <a
-href="../src/gdevdjet.c">gdevdjet.c</a> are good examples of this approach.
-
-<hr>
-
-<h2><a name="Structure"></a>Driver structure</h2>
-
-<p>
-A device is represented by a structure divided into three parts:
-
-<ul>
-<li>procedures that are (normally) shared by all instances of each device;
-
-<li>parameters that are present in all devices but may be different for
-each device or instance; and
-
-<li>device-specific parameters that may be different for each instance.
-</ul>
-
-<p>
-Normally the procedure structure is defined and initialized at compile
-time. A prototype of the parameter structure (including both generic and
-device-specific parameters) is defined and initialized at compile time, but
-is copied and filled in when an instance of the device is created. Both of
-these structures should be declared as <b><tt>const</tt></b>, but for backward
-compatibility reasons the latter is not.
-
-<p>
-The <b><tt>gx_device_common</tt></b> macro defines the common structure
-elements, with the intent that devices define and export a structure along
-the following lines. Do not fill in the individual generic parameter values
-in the usual way for C structures: use the macros defined for this purpose
-in <a href="../src/gxdevice.h">gxdevice.h</a> or, if applicable, <a
-href="../src/gdevprn.h">gdevprn.h</a>.
-
-<blockquote>
-<pre>typedef struct smurf_device_s {
- gx_device_common;
- <b><em>... device-specific parameters ...</em></b>
-} smurf_device;
-smurf_device gs_smurf_device = {
- <b><em>... macro for generic parameter values ...,</em></b>
- { <b><em>... procedures ...</em></b> }, /* std_procs */
- <b><em>... device-specific parameter values if any ...</em></b>
-};</pre>
-</blockquote>
-
-<p>
-The device structure instance <b>must</b> have the name
-<b><tt>gs_smurf_device</tt></b>, where <b><tt>smurf</tt></b> is the device
-name used in <b><tt>contrib.mak</tt></b>. <b><tt>gx_device_common</tt></b>
-is a macro consisting only of the element definitions.
-
-<p>
-All the device procedures are called with the device as the first argument.
-Since each device type is actually a different structure type, the device
-procedures must be declared as taking a <b><tt>gx_device&nbsp;*</tt></b> as
-their first argument, and must cast it to
-<b><tt>smurf_device&nbsp;*</tt></b> internally. For example, in the code
-for the "memory" device, the first argument to all routines is called
-<b><tt>dev</tt></b>, but the routines actually use <b><tt>mdev</tt></b> to
-refer to elements of the full structure, using the following standard
-initialization statement at the beginning of each procedure:
-
-<blockquote>
-<pre>gx_memory_device *const mdev = (gx_device_memory *)dev;</pre>
-</blockquote>
-
-<p>
-(This is a cheap version of "object-oriented" programming: in C++, for
-example, the cast would be unnecessary, and in fact the procedure table
-would be constructed by the compiler.)
-
-<h3><a name="Structure_definition"></a>Structure definition</h3>
-
-<p>
-You should consult the definition of struct <b><tt>gx_device_s</tt></b> in
-<a href="../src/gxdevice.h">gxdevice.h</a> for the complete details of the
-generic device structure. Some of the most important members of this
-structure for ordinary drivers are:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>const char *dname;</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>The device name
-<tr valign=top> <td><b><tt>bool is_open;</tt></b>
- <td>&nbsp;
- <td>True if device has been opened
-<tr valign=top> <td><b><tt>gx_device_color_info color_info;</tt></b>
- <td>&nbsp;
- <td>Color information
-<tr valign=top> <td><b><tt>int width;</tt></b>
- <td>&nbsp;
- <td>Width in pixels
-<tr valign=top> <td><b><tt>int height;</tt></b>
- <td>&nbsp;
- <td>Height in pixels
-</table></blockquote>
-
-<p>
-The name in the structure (<b><tt>dname</tt></b>) should be the same as the
-name in <a href="../src/contrib.mak">contrib.mak</a>.
-
-<h3><a name="Sophisticated"></a>For sophisticated developers only</h3>
-
-<p>
-If for any reason you need to change the definition of the basic device
-structure, or to add procedures, you must change the following places:
-
-<blockquote><ul>
-<li>This document and the <a href="News.htm">news document</a> (if you want
- to keep the documentation up to date).
-<li>The definition of <b><tt>gx_device_common</tt></b> and the procedures
- in <a href="../src/gxdevcli.h">gxdevcli.h</a>.
-<li>Possibly, the default forwarding procedures declared in
- <a href="../src/gxdevice.h">gxdevice.h</a> and implemented in
- <a href="../src/gdevnfwd.c">gdevnfwd.c</a>.
-<li>The device procedure record completion routines in
- <a href="../src/gdevdflt.c">gdevdflt.c</a>.
-<li>Possibly, the default device implementation in
- <a href="../src/gdevdflt.c">gdevdflt.c</a>,
- <a href="../src/gdevddrw.c">gdevddrw.c</a>, and
- <a href="../src/gxcmap.c">gxcmap.c</a>.
-<li>The bounding box device in <a href="../src/gdevbbox.c">gdevbbox.c</a>
- (probably just adding <b><tt>NULL</tt></b> procedure entries if the
- new procedures don't produce output).
-<li>These devices that must have complete (non-defaulted) procedure vectors:
-<ul>
-<li>The null device in <a href="../src/gdevnfwd.c">gdevnfwd.c</a>.
-<li>The command list "device" in <a href="../src/gxclist.c">gxclist.c</a>.
- This is not an actual device; it only defines procedures.
-<li>The "memory" devices in <a href="../src/gdevmem.h">gdevmem.h</a> and
- <b><tt>gdevm*.c</tt></b>.
-<li>The halftoning device in <a href="../src/gdevht.c">gdevht.c</a>.
-</ul>
-<li>The clip list accumulation "device" in
- <a href="../src/gxacpath.c">gxacpath.c</a>.
-<li>The clipping "devices" <a href="../src/gxclip.c">gxclip.c</a>,
- <a href="../src/gxclip2.c">gxclip2.c</a>,
- and <a href="../src/gxclipm.c">gxclipm.c</a>.
-<li>The pattern accumulation "device" in
- <a href="../src/gxpcmap.c">gxpcmap.c</a>.
-<li>The hit detection "device" in <a href="../src/gdevhit.c">gdevhit.c</a>.
-<li>The generic printer device macros in
- <a href="../src/gdevprn.h">gdevprn.h</a>.
-<li>The generic printer device code in
- <a href="../src/gdevprn.c">gdevprn.c</a>.
-<li>The RasterOp source device in
- <a href="../src/gdevrops.c">gdevrops.c</a>.
-</ul></blockquote>
-
-<p>
-You may also have to change the code for
-<b><tt>gx_default_get_params</tt></b> or
-<b><tt>gx_default_put_params</tt></b> in <a
-href="../src/gsdparam.c">gsdparam.c</a>.
-
-<p>
-You should not have to change any of the real devices in the standard
-Ghostscript distribution (listed in <a href="../src/devs.mak">devs.mak</a>
-and <a href="../src/contrib.mak">contrib.mak</a>) or any of your own
-devices, because all of them are supposed to use the macros in <a
-href="../src/gxdevice.h">gxdevice.h</a> or <a
-href="../src/gdevprn.h">gdevprn.h</a> to define and initialize their state.
-
-<hr>
-
-<h2><a name="coordinates_and_types"></a>Coordinates and types</h2>
-
-<h3><a name="Coordinate_system"></a>Coordinate system</h3>
-
-<p>
-Since each driver specifies the initial transformation from user
-coordinates to device coordinates, the driver can use any coordinate system
-it wants, as long as a device coordinate will fit in an
-<b><tt>int</tt></b>. (This is only an issue on DOS systems, where ints are
-only 16 bits. User coordinates are represented as floats.) Most current
-drivers use a coordinate system with (0,0) in the upper left corner, with
-<b><em>X</em></b> increasing to the right and <b><em>Y</em></b> increasing
-toward the bottom. However, there is supposed to be nothing in the rest of
-Ghostscript that assumes this, and indeed some drivers use a coordinate
-system with (0,0) in the lower left corner.
-
-<p>
-Drivers must check (and, if necessary, clip) the coordinate parameters given
-to them: they should not assume the coordinates will be in bounds. The
-<b><tt>fit_fill</tt></b> and <b><tt>fit_copy</tt></b> macros in <a
-href="../src/gxdevice.h">gxdevice.h</a> are very helpful in doing this.
-
-<h3><a name="Color_definition"></a>Color definition</h3>
-
-<p>
-Ghostscript represents colors internally as RGB or CMYK values. In
-communicating with devices, however, it assumes that each device has a
-palette of colors identified by integers (to be precise, elements of type
-<b><tt>gx_color_index</tt></b>). Drivers may provide a uniformly spaced
-gray ramp or color cube for halftoning, or they may do their own color
-approximation, or both.
-
-<p>
-The <b><tt>color_info</tt></b> member of the device structure defines the
-color and gray-scale capabilities of the device. Its type is defined as
-follows:
-
-<blockquote>
-<pre>typedef struct gx_device_color_info_s {
- int num_components; /* 1 = gray only, 3 = RGB, */
- /* 4 = CMYK */
- int depth; /* # of bits per pixel */
- gx_color_value max_gray; /* # of distinct gray levels -1 */
- gx_color_value max_rgb; /* # of distinct color levels -1 */
- /* (only relevant if num_comp. &gt; 1) */
- gx_color_value dither_gray; /* size of gray ramp for halftoning */
- gx_color_value dither_rgb; /* size of color cube ditto */
- /* (only relevant if num_comp. &gt; 1) */
-} gx_device_color_info;</pre>
-</blockquote>
-
-<p>
-The following macros (in <a href="../src/gxdevice.h">gxdevice.h</a>) provide
-convenient shorthands for initializing this structure for ordinary
-black-and-white or color devices:
-
-<blockquote>
-<b><tt>#define dci_black_and_white</tt></b> ...<br>
-<b><tt>#define dci_color(depth,maxv,dither)</tt></b> ...
-</blockquote>
-
-<p>
-The idea is that a device has a certain number of gray levels
-(<b><tt>max_gray</tt></b>+1) and a certain number of colors
-(<b><tt>max_rgb</tt></b>+1) that it can produce directly. When Ghostscript
-wants to render a given RGB or CMYK color as a device color, it first tests
-whether the color is a gray level (if <b><tt>num_components</tt></b> is 1,
-it converts all colors to gray levels), and if so:
-
-<blockquote>
-If <b><tt>max_gray</tt></b> is large (&gt;= 31), Ghostscript asks the
-device to approximate the gray level directly. If the device returns a
-valid <b><tt>gx_color_index</tt></b>, Ghostscript uses it. Otherwise,
-Ghostscript assumes that the device can represent
-<b><tt>dither_gray</tt></b> distinct gray levels, equally spaced along the
-diagonal of the color cube, and uses the two nearest ones to the desired
-color for halftoning.
-</blockquote>
-
-<p>
-If the color is not a gray level:
-
-<blockquote>
-If <b><tt>max_rgb</tt></b> is large (&gt;= 31), Ghostscript asks the device
-to approximate the color directly. If the device returns a valid
-<b><tt>gx_color_index</tt></b>, Ghostscript uses it. Otherwise,
-Ghostscript assumes that the device can represent
-
-<blockquote>
-<b><tt>dither_rgb</tt></b> &times; <b><tt>dither_rgb</tt></b> &times; <b><tt>dither_rgb</tt></b>
-</blockquote>
-
-<p>
-distinct colors, equally spaced throughout the color cube, and uses two of
-the nearest ones to the desired color for halftoning.
-</blockquote>
-
-<h3><a name="Types"></a>Types</h3>
-
-<p>
-Here is a brief explanation of the various types that appear as parameters
-or results of the drivers.
-
-<dl>
-<dt><b><tt>gx_color_value</tt></b> (defined in <b><tt>gxdevice.h</tt></b>)
-<dd>This is the type used to represent RGB or CMYK color values. It is
-currently equivalent to unsigned short. However, Ghostscript may use less
-than the full range of the type to represent color values:
-<b><tt>gx_color_value_bits</tt></b> is the number of bits actually used,
-and <b><tt>gx_max_color_value</tt></b> is the maximum value, equal to
-(2^<small><sup><b><tt>gx_max_color_value_bits</tt></b></sup></small>)-1.
-</dl>
-
-<dl>
-<dt><b><tt>gx_device</tt></b> (defined in <b><tt>gxdevice.h</tt></b>)
-<dd>This is the device structure, as explained above.
-</dl>
-
-<dl>
-<dt><b><tt>gs_matrix</tt></b> (defined in <b><tt>gsmatrix.h</tt></b>)
-<dd>This is a 2-D homogeneous coordinate transformation matrix, used by
-many Ghostscript operators.
-</dl>
-
-<dl>
-<dt><b><tt>gx_color_index</tt></b> (defined in <b><tt>gxdevice.h</tt></b>)
-<dd>This is meant to be whatever the driver uses to represent a device
-color. For example, it might be an index in a color map, or it might be R,
-G, and B values packed into a single integer. Ghostscript doesn't ever do
-any computations with <b><tt>gx_color_index</tt></b> values: it gets them
-from <b><tt>map_rgb_color</tt></b> or <b><tt>map_cmyk_color</tt></b> and
-hands them back as arguments to several other procedures. The special
-value <b><tt>gx_no_color_index</tt></b> (defined as
-<b><tt>(gx_color_index)(-1)</tt></b>&nbsp;) means "transparent" for some of
-the procedures. The type definition is simply:
-
-<blockquote><b><tt>
-typedef unsigned long gx_color_index;
-</tt></b></blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>gs_param_list</tt></b> (defined in <a
-href="../src/gsparam.h">gsparam.h</a>)
-<dd>This is a parameter list, which is used to read and set attributes in a
-device. See the comments in <a href="../src/gsparam.h">gsparam.h</a>, and
-the <a href="#Parameters">description of the <b><tt>get_params</tt></b> and
-<b><tt>put_params</tt></b> procedures</a> below, for more detail.
-</dl>
-
-<dl>
-<dt><b><tt>gx_tile_bitmap</tt></b> (defined in
-<a href="../src/gxbitmap.h">gxbitmap.h</a>)
-<br><b><tt>gx_strip_bitmap</tt></b> (defined in
-<a href="../src/gxbitmap.h">gxbitmap.h</a>)
-<dd>These structure types represent bitmaps to be used as a tile for
-filling a region (rectangle). <b><tt>gx_tile_bitmap</tt></b> is an older
-type lacking <b><tt>shift</tt></b> and <b><tt>rep_shift</tt></b>;
-<b><tt>gx_strip_bitmap</tt></b> has superseded it, and it should not be
-used in new code. Here is a copy of the relevant part of the file:
-
-<blockquote>
-<pre>/*
- * Structure for describing stored bitmaps.
- * Bitmaps are stored bit-big-endian (i.e., the 2^7 bit of the first
- * byte corresponds to x=0), as a sequence of bytes (i.e., you can't
- * do word-oriented operations on them if you're on a little-endian
- * platform like the Intel 80x86 or VAX). Each scan line must start on
- * a (32-bit) word boundary, and hence is padded to a word boundary,
- * although this should rarely be of concern, since the raster and width
- * are specified individually. The first scan line corresponds to y=0
- * in whatever coordinate system is relevant.
- *
- * For bitmaps used as halftone tiles, we may replicate the tile in
- * X and/or Y, but it is still valuable to know the true tile dimensions
- * (i.e., the dimensions prior to replication). Requirements:
- * width % rep_width = 0
- * height % rep_height = 0
- *
- * For halftones at arbitrary angles, we provide for storing the halftone
- * data as a strip that must be shifted in X for different values of Y.
- * For an ordinary (non-shifted) halftone that has a repetition width of
- * W and a repetition height of H, the pixel at coordinate (X,Y)
- * corresponds to halftone pixel (X mod W, Y mod H), ignoring phase;
- * for a shifted halftone with shift S, the pixel at (X,Y) corresponds
- * to halftone pixel ((X + S * floor(Y/H)) mod W, Y mod H). Requirements:
- * strip_shift &lt; rep_width
- * strip_height % rep_height = 0
- * shift = (strip_shift * (size.y / strip_height)) % rep_width
- */
-typedef struct gx_strip_bitmap_s {
- byte *data;
- int raster; /* bytes per scan line */
- gs_int_point size; /* width, height */
- gx_bitmap_id id;
- ushort rep_width, rep_height; /* true size of tile */
- ushort strip_height;
- ushort strip_shift;
- ushort shift;
-} gx_strip_bitmap;</pre>
-</blockquote>
-</dl>
-
-<hr>
-
-<h2><a name="Coding_conventions"></a>Coding conventions</h2>
-
-<p>
-All the driver procedures defined below that return <b><tt>int</tt></b>
-results return 0 on success, or an appropriate negative error code in the
-case of error conditions. The error codes are defined in <a
-href="../src/gserrors.h">gserrors.h</a>; they correspond directly to the
-errors defined in the PostScript language reference manuals. The most
-common ones for drivers are:
-
-<blockquote><dl>
-<dt><b><tt>gs_error_invalidfileaccess</tt></b>
-<dd>An attempt to open a file failed.
-
-<dt><b><tt>gs_error_ioerror</tt></b>
-<dd>An error occurred in reading or writing a file.
-
-<dt><b><tt>gs_error_limitcheck</tt></b>
-<dd>An otherwise valid parameter value was too large for the
-implementation.
-
-<dt><b><tt>gs_error_rangecheck</tt></b>
-<dd>A parameter was outside the valid range.
-
-<dt><b><tt>gs_error_VMerror</tt></b>
-<dd>An attempt to allocate memory failed. (If this happens, the procedure
-should release all memory it allocated before it returns.)
-</dl></blockquote>
-
-<p>
-If a driver does return an error, rather than a simple return statement it
-should use the <b><tt>return_error</tt></b> macro defined in <a
-href="../src/gx.h">gx.h</a>, which is automatically included by <a
-href="../src/gdevprn.h">gdevprn.h</a> but not by <a
-href="../src/gserrors.h">gserrors.h</a>. For example
-
-<blockquote><b><tt>
-return_error(gs_error_VMerror);
-</tt></b></blockquote>
-
-<h3><a name="Allocating_storage"></a>Allocating storage</h3>
-
-<p>
-While most drivers (especially printer drivers) follow a very similar
-template, there is one important coding convention that is not obvious from
-reading the code for existing drivers: driver procedures must not use
-<b><tt>malloc</tt></b> to allocate any storage that stays around after the
-procedure returns. Instead, they must use <b><tt>gs_malloc</tt></b> and
-<b><tt>gs_free</tt></b>, which have slightly different calling conventions.
-(The prototypes for these are in <a href="../src/gsmemory.h">gsmemory.h</a>,
-which is included in <a href="../src/gx.h">gx.h</a>, which is included in <a
-href="../src/gdevprn.h">gdevprn.h</a>.) This is necessary so that
-Ghostscript can clean up all allocated memory before exiting, which is
-essential in environments that provide only single-address-space
-multi-tasking (some versions of Microsoft Windows).
-
-<blockquote>
-<pre>char *gs_malloc(uint num_elements, uint element_size,
- const char *client_name);</pre>
-</blockquote>
-
-<p>
-Like <b><tt>calloc</tt></b>, but unlike <b><tt>malloc</tt></b>,
-<b><tt>gs_malloc</tt></b> takes an element count and an element size. For
-structures, <b><tt>num_elements</tt></b> is 1 and
-<b><tt>element_size</tt></b> is <b><tt>sizeof</tt></b> the structure; for
-byte arrays, <b><tt>num_elements</tt></b> is the number of bytes and
-<b><tt>element_size</tt></b> is 1. Unlike <b><tt>calloc</tt></b>,
-<b><tt>gs_malloc</tt></b> does <b>not</b> clear the block of storage.
-
-<p>
-The <b><tt>client_name</tt></b> is used for tracing and debugging. It must
-be a real string, not <b><tt>NULL</tt></b>. Normally it is the name of the
-procedure in which the call occurs.
-
-<blockquote>
-<pre>void gs_free(char *data, uint num_elements, uint element_size,
- const char *client_name);</pre>
-</blockquote>
-
-<p>
-Unlike <b><tt>free</tt></b>, <b><tt>gs_free</tt></b> demands that
-<b><tt>num_elements</tt></b> and element_size be supplied. It also
-requires a client name, like <b><tt>gs_malloc</tt></b>.
-
-<h3><a name="Driver_instance_allocation"></a>Driver instance allocation</h3>
-
-<p>
-All driver instances allocated by Ghostscript's standard allocator must
-point to a "structure descriptor" that tells the garbage collector how to
-trace pointers in the structure. For drivers registered in the normal way
-(using the makefile approach described above), no special care is needed as
-long as instances are created only by calling the
-<b><tt>gs_copydevice</tt></b> procedure defined in <a
-href="../src/gsdevice.h">gsdevice.h</a>. If you have a need to define
-devices that are not registered in this way, you must fill in the stype
-member in any dynamically allocated instances with a pointer to the same
-structure descriptor used to allocate the instance. For more information
-about structure descriptors, see <a href="../src/gsmemory.h">gsmemory.h</a>
-and <a href="../src/gsstruct.h">gsstruct.h</a>.
-
-<hr>
-
-<h2><a name="Printer_drivers"></a>Printer drivers</h2>
-
-<p>
-Printer drivers (which include drivers that write some kind of raster file)
-are especially simple to implement. Of the driver procedures defined in the
-next section, they only need implement two: <b><tt>map_rgb_color</tt></b>
-(or <b><tt>map_cmyk_color</tt></b>) and <b><tt>map_color_rgb</tt></b>. In
-addition, they must implement a <b><tt>print_page</tt></b> or
-<b><tt>print_page_copies</tt></b> procedure. There are macros in <a
-href="../src/gdevprn.h">gdevprn.h</a> that generate the device structure for
-such devices, of which the simplest is <b><tt>prn_device</tt></b>; for an
-example, see <a href="../src/gdevbj10.c">gdevbj10.c</a>. If you are writing
-a printer driver, we suggest you start by reading <a
-href="../src/gdevprn.h">gdevprn.h</a> and the <a
-href="#Color_mapping">subsection on "Color mapping"</a> below; you may be
-able to ignore all the rest of the driver procedures.
-
-<p>
-The <b><tt>print_page</tt></b> procedures are defined as follows:
-
-<blockquote>
-<pre>int (*print_page)(P2(gx_device_printer *, FILE *))
-int (*print_page_copies)(P3(gx_device_printer *, FILE *, int))</pre>
-</blockquote>
-
-<p>
-This procedure must read out the rendered image from the device and write
-whatever is appropriate to the file. To read back one or more scan lines
-of the image, the <b><tt>print_page</tt></b> procedure must call one of the
-following procedures:
-
-<blockquote>
-<pre>int gdev_prn_copy_scan_lines(P4(gx_device_printer *pdev, int y, byte *str,
- uint size)</pre>
-</blockquote>
-
-<p>
-For this procedure, <b><tt>str</tt></b> is where the data should be copied to, and <b><tt>size</tt></b> is
-the size of the buffer starting at <b><tt>str</tt></b>. This procedure returns the number
-of scan lines copied, or &lt;0 for an error. <b><tt>str</tt></b> need not be aligned.
-
-<blockquote>
-<pre>int gdev_prn_get_bits(gx_device_printer *pdev, int y, byte *str,
- byte **actual_data)</pre>
-</blockquote>
-
-<p>
-This procedure reads out exactly one scan line. If the scan line is
-available in the correct format already, <b><tt>*actual_data</tt></b> is
-set to point to it; otherwise, the scan line is copied to the buffer
-starting at <b><tt>str</tt></b>, and <b><tt>*actual_data</tt></b> is set to
-<b><tt>str</tt></b>. This saves a copying step most of the time.
-<b><tt>str</tt></b> need not be aligned; however, if
-<b><tt>*actual_data</tt></b> is set to point to an existing scan line, it
-will be aligned. (See the description of the <b><tt>get_bits</tt></b>
-procedure below for more details.)
-
-<p>
-In either case, each row of the image is stored in the form described in
-the comment under <b><tt>gx_tile_bitmap</tt></b> above; each pixel takes
-the number of bits specified as <b><tt>color_info.depth</tt></b> in the
-device structure, and holds values returned by the device's
-<b><tt>map_</tt></b>{<b><tt>rgb</tt></b>,<b><tt>cmyk</tt></b>}<b><tt>_color</tt></b>
-procedure.
-
-<p>
-The <b><tt>print_page</tt></b> procedure can determine the number of bytes
-required to hold a scan line by calling:
-
-<blockquote>
-<pre>uint gdev_prn_raster(P1(gx_device_printer *))</pre>
-</blockquote>
-
-<p>
-For a very simple concrete example, we suggest reading the code in
-<b><tt>bit_print_page</tt></b> in <a href="../src/gdevbit.c">gdevbit.c</a>.
-
-<p>
-If the device provides <b><tt>print_page</tt></b>, Ghostscript will call
-<b><tt>print_page</tt></b> the requisite number of times to print the
-desired number of copies; if the device provides
-<b><tt>print_page_copies</tt></b>, Ghostscript will call
-<b><tt>print_page_copies</tt></b> once per page, passing it the desired
-number of copies.
-
-<hr>
-
-<h2><a name="Driver_procedures"></a>Driver procedures</h2>
-
-<p>
-Most of the procedures that a driver may implement are optional. If a
-device doesn't supply an optional procedure <b><tt>WXYZ</tt></b>, the entry
-in the procedure structure may be either <b><tt>gx_default_WXYZ</tt></b>,
-for instance <b><tt>gx_default_tile_rectangle</tt></b>, or
-<b><tt>NULL</tt></b> or 0. (The device procedure must also call the
-<b><tt>gx_default_</tt></b> procedure if it doesn't implement the function
-for particular values of the arguments.) Since C compilers supply 0 as the
-value for omitted structure elements, this convention means that statically
-initialized procedure structures continue to work even if new (optional)
-members are added.
-
-<h3><a name="Life_cycle"></a>Life cycle</h3>
-
-<p>
-A device instance begins life in a closed state. In this state, no output
-operations will occur. Only the following procedures may be called:
-
-<blockquote><b><tt>
-open_device<br>
-finish_copydevice<br>
-get_initial_matrix<br>
-get_params<br>
-put_params<br>
-get_hardware_params
-</tt></b></blockquote>
-
-<p>
-When <b><tt>setdevice</tt></b> installs a device instance in the graphics
-state, it checks whether the instance is closed or open. If the instance
-is closed, <b><tt>setdevice</tt></b> calls the open routine, and then sets
-the state to open. There is currently no user-accessible operation to
-close a device instance. Device instances are only closed when they are
-about to be freed, which occurs in three situations:
-
-<ul>
-<li>When a <b><tt>restore</tt></b> occurs, if the instance was created since
-the corresponding <b><tt>save</tt></b> and is in a VM being restored. I.e.,
-if the instance was created in local VM since a <b><tt>save</tt></b>, it
-will always be closed and freed by the corresponding
-<b><tt>restore</tt></b>; if it was created in global VM, it will only be
-closed by the outermost <b><tt>restore</tt></b>, regardless of the save
-level at the time the instance was created.
-
-<li>By the garbage collector, if the instance is no longer accessible.
-
-<li>When Ghostscript exits (terminates).
-</ul>
-
-<h3><a name="Open_close"></a>Open, close, sync, copy</h3>
-
-<dl>
-<dt><b><tt>int (*open_device)(P1(gx_device *))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Open the device: do any initialization associated with making the device
-instance valid. This must be done before any output to the device. The
-default implementation does nothing. <b>NOTE</b>: Clients should never call
-a device's <b><tt>open_device</tt></b> procedure directly: they should
-always call <b><tt>gs_opendevice</tt></b> instead.
-</dl>
-
-<dl>
-<dt><b><tt>int (*finish_copydevice)(P2(gx_device *dev, const gx_device
-*from_dev))</tt></b> <b><em>[OPTIONAL]</em></b> <dd>Perform any cleanup
-required after <b><tt>copydevice</tt></b> has created a new device instance
-by copying <b><tt>from_dev</tt></b>. If the copy operation should not be
-allowed, this procedure should return an error; the copy will be freed. The
-default implementation allows copying the device prototype, but does not
-allow copying device instances, because instances may contain internal
-pointers that should not be shared between copies, and there is no way to
-determine this from outside the device. <b>NOTE</b>: Clients should never
-call a device's <b><tt>finish_copydevice</tt></b> procedure: this procedure
-is only intended for use by <b><tt>gs_copydevice[2]</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>void (*get_initial_matrix)(P2(gx_device *, gs_matrix *))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Construct the initial transformation matrix mapping user coordinates
-(nominally 1/72 inch per unit) to device coordinates. The default
-procedure computes this from width, height, and
-[<b><tt>xy</tt></b>]<b><tt>_pixels_per_inch</tt></b> on the assumption that
-the origin is in the upper left corner, that is
-<blockquote>
-<b><tt>xx</tt></b> = <b><tt>x_pixels_per_inch</tt></b>/72, <b><tt>xy</tt></b> = 0,<br>
-<b><tt>yx = 0, yy = -y_pixels_per_inch</tt></b>/72,<br>
-<b><tt>tx = 0, ty = height</tt></b>.
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>int (*sync_output)(P1(gx_device *))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Synchronize the device. If any output to the device has been
-buffered, send or write it now. Note that this may be called several times
-in the process of constructing a page, so printer drivers should <b>not</b>
-implement this by printing the page. The default implementation does
-nothing.
-</dl>
-
-<dl>
-<dt><b><tt>int (*output_page)(P3(gx_device *, int num_copies, int flush))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Output a fully composed page to the device. The
-<b><tt>num_copies</tt></b> argument is the number of copies that should be
-produced for a hardcopy device. (This may be ignored if the driver has
-some other way to specify the number of copies.) The <b><tt>flush</tt></b>
-argument is true for <b><tt>showpage</tt></b>, false for
-<b><tt>copypage</tt></b>. The default definition just calls
-<b><tt>sync_output</tt></b>. Printer drivers should implement this by
-printing and ejecting the page.
-</dl>
-
-<dl>
-<dt><b><tt>int (*close_device)(P1(gx_device *))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Close the device: release any associated resources. After this, output
-to the device is no longer allowed. The default implementation does
-nothing. <b>NOTE</b>: Clients should never call a device's
-<b><tt>close_device</tt></b> procedure directly: they should always call
-<b><tt>gs_closedevice</tt></b> instead.
-</dl>
-
-<h3><a name="Color_mapping"></a>Color and alpha mapping</h3>
-
-<p>
-A given driver normally implements either <b><tt>map_rgb_color</tt></b> or
-<b><tt>map_cmyk_color</tt></b>, but not both. Black-and-white drivers need
-implement neither. Note that the <b><tt>map_xxx_color</tt></b> procedures
-must not return <b><tt>gx_no_color_index</tt></b> (all 1s).
-
-<p>
-Note that code in the Ghostscript library may cache the results of calling
-one or more of the color mapping procedures. If the result returned by any
-of these procedures would change (other than as a result of a change made by
-the driver's <b><tt>put_params</tt></b> procedure), the driver must call
-<b><tt>gx_device_decache_colors(dev)</tt></b>.
-
-<dl>
-<dt><b><tt>gx_color_index (*map_rgb_color)(P4(gx_device&nbsp;*,
-gx_color_value&nbsp;red, gx_color_value&nbsp;green,
-gx_color_value&nbsp;blue))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Map a RGB color to a device color. The range of legal values of the
-RGB arguments is 0 to <b><tt>gx_max_color_value</tt></b>. The default
-algorithm uses the <b><tt>map_cmyk_color</tt></b> procedure if the driver
-supplies one, otherwise returns 1 if any of the values exceeds
-<b><tt>gx_max_color_value</tt></b>&nbsp;/&nbsp;2, 0 otherwise.
-
-<p>
-Ghostscript assumes that for devices that have color capability (that is,
-<b><tt>color_info.num_components</tt></b> &gt; 1),
-<b><tt>map_rgb_color</tt></b> returns a color index for a gray level (as
-opposed to a non-gray color) iff red = green = blue.
-</dl>
-
-<dl>
-<dt><b><tt>gx_color_index (*map_cmyk_color)(P5(gx_device&nbsp;*,
-gx_color_value&nbsp;cyan, gx_color_value&nbsp;magenta,
-gx_color_value&nbsp;yellow, gx_color_value&nbsp;black))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Map a CMYK color to a device color. The range of legal values of the
-CMYK arguments is 0 to <b><tt>gx_max_color_value</tt></b>. The default
-algorithm calls the <b><tt>map_rgb_color</tt></b> procedure, with suitably
-transformed arguments.
-
-<p>
-Ghostscript assumes that for devices that have color capability (that is,
-<b><tt>color_info.num_components</tt></b> &gt; 1),
-<b><tt>map_cmyk_color</tt></b> returns a color index for a gray level (as
-opposed to a non-gray color) iff cyan = magenta = yellow.
-</dl>
-
-<dl>
-<dt><b><tt>int (*map_color_rgb)(P3(gx_device&nbsp;*,
-gx_color_index&nbsp;color, gx_color_value&nbsp;rgb[3]))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Map a device color code to RGB values. The default algorithm returns
-(0 if <b><tt>color</tt></b>==0 else <b><tt>gx_max_color_value</tt></b>) for
-all three components.
-</dl>
-
-<dl>
-<dt><b><tt>gx_color_index (*map_rgb_alpha_color)(P5(gx_device&nbsp;*,
-gx_color_value&nbsp;red, gx_color_value&nbsp;green,
-gx_color_value&nbsp;blue, gx_color_value&nbsp;alpha))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Map a RGB color and an opacity value to a device color. The range of
-legal values of the RGB and alpha arguments is 0 to
-<b><tt>gx_max_color_value</tt></b>; <b><tt>alpha</tt></b> = 0 means
-transparent, <b><tt>alpha</tt></b> = <b><tt>gx_max_color_value</tt></b>
-means fully opaque. The default is to use the
-<b><tt>map_rgb_color</tt></b> procedure and ignore alpha.
-
-<p>
-Note that if a driver implements <b><tt>map_rgb_alpha_color</tt></b>, it
-must also implement <b><tt>map_rgb_color</tt></b>, and must implement them
-in such a way that
-<b><tt>map_rgb_alpha_color(dev,&nbsp;r,&nbsp;g,&nbsp;b,&nbsp;gx_max_color_value)</tt></b>
-returns the same value as
-<b><tt>map_rgb_color(dev,&nbsp;r,&nbsp;g,&nbsp;b)</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>int (*map_color_rgb_alpha)(P3(gx_device&nbsp;*,
-gx_color_index&nbsp;color, gx_color_value&nbsp;rgba[4]))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>Map a device color code to RGB and alpha values. The default
-implementation calls <b><tt>map_color_rgb</tt></b> and fills in
-<b><tt>gx_max_color_value</tt></b> for alpha.
-
-<p>
-Note that if a driver implements <b><tt>map_color_rgb_alpha</tt></b>, it
-must also implement <b><tt>map_color_rgb</tt></b>, and must implement them
-in such a way that the first 3 values returned by
-<b><tt>map_color_rgb_alpha</tt></b> are the same as the values returned by
-<b><tt>map_color_rgb</tt></b>.
-
-<p>
-Note that CMYK devices currently do not support variable opacity; alpha is
-ignored on such devices.
-</dl>
-
-<dl>
-<dt><b><tt>typedef&nbsp;enum&nbsp;{&nbsp;go_text,
-go_graphics&nbsp;}&nbsp;graphic_object_type;&nbsp;int
-(*get_alpha_bits)(P4(gx_device&nbsp;*dev,
-graphic_object_type&nbsp;type))</tt></b> <b><em>[OPTIONAL] [OBSOLETE]</em></b>
-<dd>This procedure is no longer used: it is replaced by the
-color_info.anti_alias member of the driver structure. However, it still
-appears in the driver procedure vector for backward compatibility. It
-should never be called, and drivers should not implement it.
-</dl>
-
-<h3><a name="Pixel_level_drawing"></a>Pixel-level drawing</h3>
-
-<p>
-This group of drawing operations specifies data at the pixel level. All
-drawing operations use device coordinates and device color values.
-
-<dl>
-<dt><b><tt>int (*fill_rectangle)(P6(gx_device&nbsp;*, int&nbsp;x,
-int&nbsp;y, int&nbsp;width, int&nbsp;height,
-gx_color_index&nbsp;color))</tt></b>
-<dd>Fill a rectangle with a color. The set of pixels filled is {(px,py) |
-x &lt;= px &lt; x + width and y &lt;= py &lt; y + height}. In other words,
-the point <em>(x,y)</em> is included in the rectangle, as are
-<em>(x+w-1,y)</em>, <em>(x,y+h-1)</em>, and <em>(x+w-1,y+h-1)</em>, but
-<b><em>not</em></b> <em>(x+w,y)</em>, <em>(x,y+h)</em>, or
-<em>(x+w,y+h)</em>. If <b><tt>width</tt></b>&nbsp;&lt;=&nbsp;0 or
-height&nbsp;&lt;=&nbsp;0, <b><tt>fill_rectangle</tt></b> should return 0
-without drawing anything.
-
-<p>
-Note that <b><tt>fill_rectangle</tt></b> is the only non-optional procedure
-in the driver interface.
-</dl>
-
-<h4><a name="Bitmap_imaging"></a>Bitmap imaging</h4>
-
-<p>
-Bitmap (or pixmap) images are stored in memory in a nearly standard way.
-The first byte corresponds to <em>(0,0)</em> in the image coordinate
-system: bits (or polybit color values) are packed into it left to right.
-There may be padding at the end of each scan line: the distance from one
-scan line to the next is always passed as an explicit argument.
-
-<dl>
-<dt><b><tt>int (*copy_mono)(P11(gx_device&nbsp;*,
-const&nbsp;unsigned&nbsp;char&nbsp;*data, int&nbsp;data_x, int&nbsp;raster,
-gx_bitmap_id&nbsp;id, int&nbsp;x, int&nbsp;y, int&nbsp;width,
-int&nbsp;height, gx_color_index&nbsp;color0,
-gx_color_index&nbsp;color1))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Copy a monochrome image (similar to the PostScript image operator).
-Each scan line is raster bytes wide. Copying begins at
-(<b><tt>data_x</tt></b>,0) and transfers a rectangle of the given width and
-height to the device at device coordinate <em>(x,y)</em>. (If the transfer
-should start at some non-zero y value in the data, the caller can adjust
-the data address by the appropriate multiple of the raster.) The copying
-operation writes device color <b><tt>color0</tt></b> at each 0-bit, and
-<b><tt>color1</tt></b> at each 1-bit: if <b><tt>color0</tt></b> or
-<b><tt>color1</tt></b> is <b><tt>gx_no_color_index</tt></b>, the device
-pixel is unaffected if the image bit is 0 or 1 respectively. If
-<b><tt>id</tt></b> is different from <b><tt>gx_no_bitmap_id</tt></b>, it
-identifies the bitmap contents unambiguously; a call with the same
-<b><tt>id</tt></b> will always have the same <b><tt>data</tt></b>,
-<b><tt>raster</tt></b>, and data contents.
-
-<p>
-This operation, with
-<b><tt>color0</tt></b>&nbsp;=&nbsp;<b><tt>gx_no_color_index</tt></b>, is
-the workhorse for text display in Ghostscript, so implementing it
-efficiently is very important.
-</dl>
-
-<dl>
-<dt><b><tt>int (*tile_rectangle)(P10(gx_device&nbsp;*,
-const&nbsp;gx_tile_bitmap&nbsp;*tile, int&nbsp;x, int&nbsp;y,
-int&nbsp;width, int&nbsp;height, gx_color_index&nbsp;color0,
-gx_color_index&nbsp;color1, int&nbsp;phase_x, int&nbsp;phase_y))</tt></b>
-<b><em>[OPTIONAL] [OBSOLETE]</em></b>
-<dd>This procedure is still supported, but has been superseded by
-<b><tt>strip_tile_rectangle</tt></b>. New drivers should implement
-<b><tt>strip_tile_rectangle</tt></b>; if they cannot cope with non-zero
-shift values, they should test for this explicitly and call the default
-implementation (<b><tt>gx_default_strip_tile_rectangle</tt></b>) if
-shift&nbsp;!=&nbsp;0. Clients should call
-<b><tt>strip_tile_rectangle</tt></b>, not <b><tt>tile_rectangle</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>int (*strip_tile_rectangle)(P10(gx_device&nbsp;*,
-const&nbsp;gx_strip_bitmap&nbsp;*tile, int&nbsp;x, int&nbsp;y,
-int&nbsp;width, int&nbsp;height, gx_color_index&nbsp;color0,
-gx_color_index&nbsp;color1, int&nbsp;phase_x, int&nbsp;phase_y))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>Tile a rectangle. Tiling consists of doing multiple
-<b><tt>copy_mono</tt></b> operations to fill the rectangle with copies of
-the tile. The tiles are aligned with the device coordinate system, to
-avoid "seams". Specifically, the (<b><tt>phase_x</tt></b>,
-<b><tt>phase_y</tt></b>) point of the tile is aligned with the origin of
-the device coordinate system. (Note that this is backwards from the
-PostScript definition of halftone phase.) <b><tt>phase_x</tt></b> and
-<b><tt>phase_y</tt></b> are guaranteed to be in the range
-<em>[0..</em><b><tt>tile-&gt;width</tt></b><em>)</em> and
-<em>[0..</em><b><tt>tile-&gt;height</tt></b><em>)</em> respectively.
-
-<p>
-If <b><tt>color0</tt></b> and <b><tt>color1</tt></b> are both
-<b><tt>gx_no_color_index</tt></b>, then the tile is a color pixmap, not a
-bitmap: see the next section.
-
-<p>
-This operation is the workhorse for halftone filling in Ghostscript, so
-implementing it efficiently for solid tiles (that is, where either
-<b><tt>color0</tt></b> and <b><tt>color1</tt></b> are both
-<b><tt>gx_no_color_index</tt></b>, for colored halftones, or neither one is
-<b><tt>gx_no_color_index</tt></b>, for monochrome halftones) is very
-important.
-</dl>
-
-<h4><a name="Pixmap_imaging"></a>Pixmap imaging</h4>
-
-<p>
-Pixmaps are just like bitmaps, except that each pixel occupies more than
-one bit. All the bits for each pixel are grouped together (this is
-sometimes called "chunky" or "Z" format). For <b><tt>copy_color</tt></b>,
-the number of bits per pixel is given by the
-<b><tt>color_info.depth</tt></b> parameter in the device structure: the
-legal values are 1, 2, 4, 8, 16, 24, or 32. The pixel values are device
-color codes (that is, whatever it is that <b><tt>map_rgb_color</tt></b>
-returns).
-
-<dl>
-<dt><b><tt>int (*copy_color)(P9(gx_device&nbsp;*,
-const&nbsp;unsigned&nbsp;char&nbsp;*data, int&nbsp;data_x, int&nbsp;raster,
-gx_bitmap_id&nbsp;id, int&nbsp;x, int&nbsp;y, int&nbsp;width,
-int&nbsp;height))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Copy a color image with multiple bits per pixel. The raster is in
-bytes, but <b><tt>x</tt></b> and <b><tt>width</tt></b> are in pixels, not
-bits. If <b><tt>id</tt></b> is different from
-<b><tt>gx_no_bitmap_id</tt></b>, it identifies the bitmap contents
-unambiguously; a call with the same <b><tt>id</tt></b> will always have the
-same <b><tt>data</tt></b>, <b><tt>raster</tt></b>, and data contents.
-
-<p>
-We do not provide a separate procedure for tiling with a pixmap; instead,
-<b><tt>tile_rectangle</tt></b> can also take colored tiles. This is
-indicated by the <b><tt>color0</tt></b> and <b><tt>color1</tt></b>
-arguments' both being <b><tt>gx_no_color_index</tt></b>. In this case, as
-for <b><tt>copy_color</tt></b>, the <b><tt>raster</tt></b> and
-<b><tt>height</tt></b> in the "bitmap" are interpreted as for real bitmaps,
-but the <b><tt>x</tt></b> and <b><tt>width</tt></b> are in pixels, not
-bits.
-</dl>
-
-<h4><a name="Compositing"></a>Compositing</h4>
-
-<p>
-In addition to direct writing of opaque pixels, devices must also support
-compositing. Currently two kinds of compositing are defined
-(<b><tt>RasterOp</tt></b> and alpha-based), but more may be added in the
-future.
-
-<blockquote>
-<b><em>THIS AREA OF THE INTERFACE IS SOMEWHAT UNSTABLE: USE AT YOUR OWN
-RISK.</em></b>
-</blockquote>
-
-<dl>
-<dt><b><tt>int (*copy_alpha)(P11(gx_device&nbsp;*dev,
-const&nbsp;unsigned&nbsp;char&nbsp;*data, int&nbsp;data_x, int&nbsp;raster,
-gx_bitmap_id&nbsp;id, int&nbsp;x, int&nbsp;y, int&nbsp;width,
-int&nbsp;height, gx_color_index&nbsp;color, int&nbsp;depth))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>This procedure is somewhat misnamed: it was added to the interface
-before we really understood alpha channel and compositing.
-
-<p>
-Fill a given region with a given color modified by an individual alpha
-value for each pixel. For each pixel, this is equivalent to
-alpha-compositing with a source pixel whose alpha value is obtained from
-the pixmap (<b><tt>data</tt></b>, <b><tt>data_x</tt></b>, and
-<b><tt>raster</tt></b>) and whose color is the given color (which has
-<b><em>not</em></b> been premultiplied by the alpha value), using the Sover
-rule. <b><tt>depth</tt></b>, the number of bits per alpha value, is either
-2 or 4, and in any case is always a value returned by a previous call on
-the <b><tt>get_alpha_bits</tt></b> procedure. Note that if
-<b><tt>get_alpha_bits</tt></b> always returns 1, this procedure will never
-be called.
-</dl>
-
-<dl>
-<dt><b><tt>int (*create_compositor)(P5(dev_t&nbsp;*dev,
-gx_device_t&nbsp;**pcdev, const&nbsp;gs_composite_t&nbsp;*pcte,
-const&nbsp;gs_imager_state&nbsp;*pis, gs_memory_t&nbsp;*memory))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>Create a new device (called a "compositing device" or "compositor")
-that will composite data written to it with the device's existing data,
-according to the compositing function defined by <b><tt>*pcte</tt></b>.
-Devices will normally implement this in one of the following standard ways:
-
-<ul>
-<li>Devices that don't do any imaging and don't forward any imaging
-operations (for example, the null device, the hit detection device, and the
-clipping list accumulation device) simply return themselves, which
-effectively ignores the compositing function.
-
-<li>"Leaf" devices that do imaging and have no special optimizations for
-compositing (for example, some memory devices) ask the
-<b><tt>gs_composite_t</tt></b> to create a default compositor.
-
-<li>Leaf devices that can implement some kinds of compositing operation
-efficiently (for example, monobit memory devices and RasterOp) inspect the
-type and values of <b><tt>*pcte</tt></b> to determine whether it specifies
-such an operation: if so, they create a specialized compositor, and if not,
-they ask the <b><tt>gs_composite_t</tt></b> to create a default compositor.
-</ul>
-
-<p>
-Other kinds of forwarding devices, which don't fall into any of these
-categories, require special treatment. In principle, what they do is ask
-their target to create a compositor, and then create and return a copy of
-themselves with the target's new compositor as the target of the copy.
-There is a possible default implementation of this approach: if the
-original device was <b>D</b> with target <b>T</b>, and <b>T</b> creates a
-compositor <b>C</b>, then the default implementation creates a device
-<b>F</b> that for each operation temporarily changes <b>D</b>'s target to
-<b>C</b>, forwards the operation to <b>D</b>, and then changes <b>D</b>'s
-target back to <b>T</b>. However, the Ghostscript library currently only
-creates a compositor with an imaging forwarding device as target in a few
-specialized situations (banding, and bounding box computation), and these
-are handled as special cases.
-
-<p>
-Note that the compositor may have a different color space, color
-representation, or bit depth from the device to which it is compositing.
-For example, alpha-compositing devices use standard-format chunky color
-even if the underlying device doesn't.
-
-<p>
-Closing a compositor frees all of its storage, including the compositor
-itself. However, since the <b><tt>create_compositor</tt></b> call may
-return the same device, clients must check for this case, and only call the
-close procedure if a separate device was created.
-</dl>
-
-<p>
-<font size="+1">
-<b><em>[strip_]copy_rop WILL BE SUPERSEDED BY COMPOSITORS</em></b>
-</font>
-
-<dl>
-<dt><b><tt>int (*copy_rop)(P15(gx_device&nbsp;*dev,
-const&nbsp;byte&nbsp;*sdata, int&nbsp;sourcex, uint&nbsp;sraster,
-gx_bitmap_id&nbsp;id, const&nbsp;gx_color_index&nbsp;*scolors,
-const&nbsp;gx_tile_bitmap&nbsp;*texture,
-const&nbsp;gx_color_index&nbsp;*tcolors, int&nbsp;x, int&nbsp;y,
-int&nbsp;width, int&nbsp;height, int&nbsp;phase_x, int&nbsp;phase_y,
-int&nbsp;command))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>This procedure is still supported, but has been superseded by
-<b><tt>strip_copy_rop</tt></b>. New drivers should implement
-<b><tt>strip_copy_rop</tt></b>; if they cannot cope with non-zero shift
-values in the texture, they should test for this explicitly and call the
-default implementation (<b><tt>gx_default_strip_copy_rop</tt></b>) if
-shift&nbsp;!=&nbsp;0. Clients should call <b><tt>strip_copy_rop</tt></b>,
-not <b><tt>copy_rop</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>int (*strip_copy_rop)(P15(gx_device&nbsp;*dev,
-const&nbsp;byte&nbsp;*sdata, int&nbsp;sourcex, uint&nbsp;sraster,
-gx_bitmap_id&nbsp;id, const&nbsp;gx_color_index&nbsp;*scolors,
-const&nbsp;gx_strip_bitmap&nbsp;*texture,
-const&nbsp;gx_color_index&nbsp;*tcolors, int&nbsp;x, int&nbsp;y,
-int&nbsp;width, int&nbsp;height, int&nbsp;phase_x, int&nbsp;phase_y,
-int&nbsp;command))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Combine an optional source image <b>S</b> (as for
-<b><tt>copy_mono</tt></b> or <b><tt>copy_color</tt></b>) and an optional
-texture <b>T</b> (a tile, as for <b><tt>tile_rectangle</tt></b>) with the
-existing bitmap or pixmap <b>D</b> held by the driver, pixel by pixel,
-using any 3-input Boolean operation as modified by "transparency" flags:
-schematically, set <b>D&nbsp;=&nbsp;f(D,S,T)</b>, computing <b>f</b> in RGB
-space rather than using actual device pixel values. <b>S</b> and <b>T</b>
-may each (independently) be a solid color, a bitmap with "foreground" and
-"background" colors, or a pixmap. This is a complex (and currently rather
-slow) operation. The arguments are as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>dev</tt></b>
- <td>&nbsp;
- <td>the device, as for all driver procedures
-<tr valign=top> <td><b><tt>sdata</tt></b>, <b><tt>sourcex</tt></b>, <b><tt>sraster</tt></b>, <b><tt>id</tt></b>, <b><tt>scolors</tt></b>
- <td>&nbsp;
- <td>specify <b>S</b>, <a href="#S_spec">see below</a>
-<tr valign=top> <td><b><tt>texture</tt></b>, <b><tt>tcolors</tt></b>
- <td>&nbsp;
- <td>specify <b>T</b>, <a href="#T_spec">see below</a>
-<tr valign=top> <td><b><tt>x</tt></b>, <b><tt>y</tt></b>, <b><tt>width</tt></b>, <b><tt>height</tt></b>
- <td>&nbsp;
- <td>as for the other copy and fill procedures
-<tr valign=top> <td><b><tt>phase_x</tt></b>, <b><tt>phase_y</tt></b>
- <td>&nbsp;
- <td>part of <b>T</b> specification, <a href="#T_spec">see below</a>
-<tr valign=top> <td><b><tt>command</tt></b>
- <td>&nbsp;
- <td><a href="#F_spec">see below</a>
-</table></blockquote>
-</dl>
-
-<h5><a name="S_spec"></a>The source specification S</h5>
-
-<p>
-As noted above, the source <b>S</b> may be a solid color, a bitmap, or a
-pixmap. If <b>S</b> is a solid color:
-
-<ul>
-<li><b><tt>sdata</tt></b>, <b><tt>sourcex</tt></b>,
-<b><tt>sraster</tt></b>, and <b><tt>id</tt></b> are irrelevant.
-
-<li><b><tt>scolors</tt></b> points to two <b><tt>gx_color_index</tt></b>
-values; <b><tt>scolors[0]</tt></b> = <b><tt>scolors[1]</tt></b> = the
-color.
-</ul>
-
-<p>
-If <b>S</b> is a bitmap:
-
-<ul>
-<li><b><tt>sdata</tt></b>, <b><tt>sourcex</tt></b>,
-<b><tt>sraster</tt></b>, and <b><tt>id</tt></b> arguments are as for
-<b><tt>copy_mono</tt></b> or <b><tt>copy_color</tt></b>
-(<b><tt>data</tt></b>, <b><tt>data_x</tt></b>, <b><tt>raster</tt></b>,
-<b><tt>id</tt></b>), and specify a source bitmap.
-
-<li><b><tt>scolors</tt></b> points to two <b><tt>gx_color_index</tt></b>
-values; <b><tt>scolors[0]</tt></b> is the background color (the color
-corresponding to 0-bits in the bitmap), <b><tt>scolors[1]</tt></b> is the
-foreground color (the color corresponding to 1-bits in the bitmap).
-</ul>
-
-<p>
-If <b>S</b> is a pixmap:
-
-<ul>
-<li><b><tt>sdata</tt></b>, <b><tt>sourcex</tt></b>,
-<b><tt>sraster</tt></b>, and <b><tt>id</tt></b> arguments are as for
-<b><tt>copy_mono</tt></b> or <b><tt>copy_color</tt></b>
-(<b><tt>data</tt></b>, <b><tt>data_x</tt></b>, <b><tt>raster</tt></b>,
-<b><tt>id</tt></b>), and specify a source pixmap whose depth is the same as
-the depth of the destination.
-
-<li><b><tt>scolors</tt></b> is <b><tt>NULL</tt></b>.
-</ul>
-
-<p>
-Note that if the source is a bitmap with background=0 and foreground=1, and
-the destination is 1 bit deep, then the source can be treated as a pixmap
-(scolors=<b><tt>NULL</tt></b>).
-
-<h5><a name="T_spec"></a>The texture specification T</h5>
-
-<p>
-Similar to the source, the texture <b>T</b> may be a solid color, a bitmap,
-or a pixmap. If <b>T</b> is a solid color:
-
-<ul>
-<li>The texture pointer is irrelevant.
-
-<li><b><tt>tcolors</tt></b> points to two <b><tt>gx_color_index</tt></b>
-values; <b><tt>tcolors[0]</tt></b> = <b><tt>tcolors[1]</tt></b> = the
-color.
-</ul>
-
-<p>
-If <b>T</b> is a bitmap:
-
-<ul>
-<li>The texture argument points to a <b><tt>gx_tile_bitmap</tt></b>, as for
-the <b><tt>tile_rectangle</tt></b> procedure. Similarly,
-<b><tt>phase_x</tt></b> and <b><tt>phase_y</tt></b> specify the offset of
-the texture relative to the device coordinate system origin, again as for
-<b><tt>tile_rectangle</tt></b>. The tile is a bitmap (1 bit per pixel).
-
-<li><b><tt>tcolors</tt></b> points to two <b><tt>gx_color_index</tt></b>
-values; <b><tt>tcolors[0]</tt></b> is the background color (the color
-corresponding to 0-bits in the bitmap), <b><tt>tcolors[1]</tt></b> is the
-foreground color (the color corresponding to 1-bits in the bitmap).
-</ul>
-
-<p>
-If <b>T</b> is a pixmap:
-
-<ul>
-<li>The texture argument points to a <b><tt>gx_tile_bitmap</tt></b> whose
-depth is the same as the depth of the destination.
-
-<li>tcolors is <b><tt>NULL</tt></b>.
-</ul>
-
-<p>
-Again, if the texture is a bitmap with background=0 and foreground=1, and
-the destination depth is 1, the texture bitmap can be treated as a pixmap
-(tcolors=<b><tt>NULL</tt></b>).
-
-<p>
-Note that while a source bitmap or pixmap has the same width and height as
-the destination, a texture bitmap or pixmap has its own width and height
-specified in the <b><tt>gx_tile_bitmap</tt></b> structure, and is
-replicated or clipped as needed.
-
-<h5><a name="F_spec"></a>The function specification f</h5>
-
-<p>
-"Command" indicates the raster operation and transparency as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th>Bits
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>7-0
- <td>&nbsp;
- <td>raster op
-<tr valign=top> <td>8
- <td>&nbsp;
- <td>0 if source opaque, 1 if source transparent
-<tr valign=top> <td>9
- <td>&nbsp;
- <td>0 if texture opaque, 1 if texture transparent
-<tr valign=top> <td>?-10
- <td>&nbsp;
- <td>unused, must be 0
-</table></blockquote>
-
-<p>
-The raster operation follows the Microsoft and H-P specification. It is an
-8-element truth table that specifies the output value for each of the
-possible 2&times;2&times;2 input values as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th>Bit
- <td>&nbsp;
- <th>Texture
- <td>&nbsp;
- <th>Source
- <td>&nbsp;
- <th>Destination
-<tr> <td colspan=7><hr>
-<tr valign=top> <td align=center>7
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>1
-<tr valign=top> <td align=center>6
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>0
-<tr valign=top> <td align=center>5
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>1
-<tr valign=top> <td align=center>4
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>0
-<tr valign=top> <td align=center>3
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>1
-<tr valign=top> <td align=center>2
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>1
- <td>&nbsp;
- <td align=center>0
-<tr valign=top> <td align=center>1
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>1
-<tr valign=top> <td align=center>0
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>0
- <td>&nbsp;
- <td align=center>0
-</table></blockquote>
-
-<p>
-Transparency affects the output in the following way. A source or texture
-pixel is considered transparent if its value is all 1s (for instance, 1 for
-bitmaps, <tt>0xffffff</tt> for 24-bit RGB pixmaps) <b><em>and</em></b> the
-corresponding transparency bit is set in the command. For each pixel, the
-result of the Boolean operation is written into the destination iff neither
-the source nor the texture pixel is transparent. (Note that the H-P
-RasterOp specification, on which this is based, specifies that if the
-source and texture are both all 1s and the command specifies transparent
-source and opaque texture, the result <b><em>should</em></b> be written in
-the output. We think this is an error in the documentation.)
-
-<h5><a name="Compositing_notes"></a>Notes</h5>
-
-<p>
-<b><tt>copy_rop</tt></b> is defined to operate on pixels in RGB space,
-again following the H-P and Microsoft specification. For devices that
-don't use RGB (or gray-scale with black = 0, white = all 1s) as their
-native color representation, the implementation of <b><tt>copy_rop</tt></b>
-must convert to RGB or gray space, do the operation, and convert back (or
-do the equivalent of this). Here are the <b><tt>copy_rop</tt></b>
-equivalents of the most important previous imaging calls. We assume the
-declaration:
-
-<blockquote><b><tt>
-static const gx_color_index white2[2] = { 1, 1 };
-</tt></b></blockquote>
-
-<p>
-Note that <b><tt>rop3_S</tt></b> may be replaced by any other Boolean operation.
-For monobit devices, we assume that black = 1.
-
-<blockquote>
-<pre>/* For all devices: */
-(*fill_rectangle)(dev, x, y, w, h, color) ==&gt;
-
- { gx_color_index colors[2];
- colors[0] = colors[1] = color;
- (*dev_proc(dev, copy_rop))(dev, NULL, 0, 0, gx_no_bitmap_id, colors,
- NULL, colors /*irrelevant*/,
- x, y, w, h, 0, 0, rop3_S);
- }
-
-/* For black-and-white devices only: */
-(*copy_mono)(dev, base, sourcex, sraster, id,
- x, y, w, h, (gx_color_index)0, (gx_color_index)1) ==&gt;
-
- (*dev_proc(dev, copy_rop))(dev, base, sourcex, sraster, id, NULL,
- NULL, white2 /*irrelevant*/,
- x, y, w, h, 0, 0, rop3_S);
-
-/* For color devices, where neither color0 nor color1 is gx_no_color_index: */
-(*copy_mono)(dev, base, sourcex, sraster, id,
- x, y, w, h, color0, color1) ==&gt;
-
- { gx_color_index colors[2];
- colors[0] = color0, colors[1] = color1;
- (*dev_proc(dev, copy_rop))(dev, base, sourcex, sraster, id, colors,
- NULL, white2 /*irrelevant*/,
- x, y, w, h, 0, 0, rop3_S);
- }
-
-/* For black-and-white devices only: */
-(*copy_mono)(dev, base, sourcex, sraster, id,
- x, y, w, h, gx_no_color_index, (gx_color_index)1) ==&gt;
-
- (*dev_proc(dev, copy_rop))(dev, base, sourcex, sraster, id, NULL,
- NULL, white2 /*irrelevant*/,
- x, y, w, h, 0, 0,
- rop3_S | lop_S_transparent);
-
-/* For all devices: */
-(*copy_color)(dev, base, sourcex, sraster, id,
- x, y, w, h) ==&gt; [same as first copy_mono above]
-
-/* For black-and-white devices only: */
-(*tile_rectangle)(dev, tile, x, y, w, h,
- (gx_color_index)0, (gx_color_index)1, px, py) ==&gt;
-
- (*dev_proc(dev, copy_rop))(dev, NULL, 0, 0, gx_no_bitmap_id,
- white2 /*irrelevant*/,
- tile, NULL,
- x, y, w, h, px, py, rop3_T)
-</pre></blockquote>
-
-<h3><a name="Polygon_level_drawing"></a>Polygon-level drawing</h3>
-
-<p>
-In addition to the pixel-level drawing operations that take integer device
-coordinates and pure device colors, the driver interface includes
-higher-level operations that draw polygons using fixed-point coordinates,
-possibly halftoned colors, and possibly a non-default logical operation.
-
-<p>
-The <b><tt>fill_</tt></b>* drawing operations all use the center-of-pixel
-rule: a pixel is colored iff its center falls within the polygonal region
-being filled. If a pixel center <em>(X+0.5,Y+0.5)</em> falls exactly on
-the boundary, the pixel is filled iff the boundary is horizontal and the
-filled region is above it, or the boundary is not horizontal and the filled
-region is to the right of it.
-
-<dl>
-<dt><b><tt>int (*fill_trapezoid)(P10(gx_device&nbsp;*dev,
-const&nbsp;gs_fixed_edge&nbsp;*left, const&nbsp;gs_fixed_edge&nbsp;*right,
-fixed&nbsp;ybot, fixed&nbsp;ytop, bool&nbsp;swap_axes,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-gs_logical_operation_t&nbsp;lop))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Fill a trapezoid. The bottom and top edges are parallel to the x
-axis, and are defined by <b><tt>ybot</tt></b> and <b><tt>ytop</tt></b>,
-respectively. The left and right edges are defined by <b><tt>left</tt></b>
-and <b><tt>right</tt></b>. Both of these respresent lines (<b><tt>gs_fixed_edge</tt></b>
-is defined in <a href="../src/gxdevcli.h">gxdevcli.h</a> and consists
-of <b><tt>gs_fixed_point</tt></b> <b><tt>start</tt></b> and <b><tt>end</tt></b> points).
-The y coordinates of these lines need not have any specific relation to
-<b><tt>ybot</tt></b> and <b><tt>ytop</tt></b>. The routine is defined this way so
-that the filling algorithm can subdivide edges and still guarantee
-that the exact same pixels will be filled. If
-<b><tt>swap_axes</tt></b> is set, the meanings of X and Y are
-interchanged.
-</dl>
-
-<dl>
-<dt><b><tt>int (*fill_parallelogram)(P9(gx_device&nbsp;*dev,
-fixed&nbsp;px, fixed&nbsp;py, fixed&nbsp;ax, fixed&nbsp;ay, fixed&nbsp;bx,
-fixed&nbsp;by, const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-gs_logical_operation_t&nbsp;lop))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Fill a parallelogram whose corners are <em>(px,py)</em>,
-<em>(px+ax,py+ay)</em>, <em>(px+bx,py+by)</em>, and
-<em>(px+ax+bx,py+ay+by)</em>. There are no constraints on the values of
-any of the parameters, so the parallelogram may have any orientation
-relative to the coordinate axes.
-</dl>
-
-<dl>
-<dt><b><tt>int (*fill_triangle)(P9(gx_device&nbsp;*dev, fixed&nbsp;px,
-fixed&nbsp;py, fixed&nbsp;ax, fixed&nbsp;ay, fixed&nbsp;bx, fixed&nbsp;by,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-gs_logical_operation_t&nbsp;lop))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Fill a triangle whose corners are <em>(px,py)</em>,
-<em>(px+ax,py+ay)</em>, and <em>(px+bx,py+by)</em>.
-</dl>
-
-<dl>
-<dt><b><tt>int (*draw_thin_line)(P7(gx_device&nbsp;*dev,
-fixed&nbsp;fx0, fixed&nbsp;fy0, fixed&nbsp;fx1, fixed&nbsp;fy1,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-gs_logical_operation_t&nbsp;lop))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Draw a one-pixel-wide line from <em>(fx0,fy0)</em> to
-<em>(fx1,fy1)</em>.
-</dl>
-
-<dl>
-<dt><b><tt>int (*draw_line)(P6(gx_device&nbsp;*dev, int&nbsp;x0, int&nbsp;y0,
-int&nbsp;x1, int&nbsp;y1, gx_color_index&nbsp;color))</tt></b>
-<b><em>[OPTIONAL] [OBSOLETE]</em></b>
-<dd>This procedure is no longer used: it is replaced by the draw_thin_line
-procedure. However, still appears in the driver procedure vector for
-backward compatibility. It should never be called, and drivers should not
-implement it.
-</dl>
-
-<h3><a name="High_level_drawing"></a>High-level drawing</h3>
-
-<p>
-In addition to the lower-level drawing operations described above, the
-driver interface provides a set of high-level operations. Normally these
-will have their default implementation, which converts the high-level
-operation to the low-level ones just described; however, drivers that
-generate high-level output formats such as CGM, or communicate with devices
-that have firmware for higher-level operations such as polygon fills, may
-implement these high-level operations directly. For more details, please
-consult the source code, specifically:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <th align=left>Header
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Defines
-<tr valign=top> <td><a href="../src/gxpaint.h">gxpaint.h</a>
- <td>&nbsp;
- <td><b><tt>gx_fill_params</tt></b>, <b><tt>gx_stroke_params</tt></b>
-<tr valign=top> <td><a href="../src/gxfixed.h">gxfixed.h</a>
- <td>&nbsp;
- <td><b><tt>fixed</tt></b>, <b><tt>gs_fixed_point</tt></b> (used by
- <b><tt>gx_*_params</tt></b>)
-<tr valign=top> <td><a href="../src/gxistate.h">gxistate.h</a>
- <td>&nbsp;
- <td><b><tt>gs_imager_state</tt></b> (used by <b><tt>gx_*_params</tt></b>)
-<tr valign=top> <td><a href="../src/gxline.h">gxline.h</a>
- <td>&nbsp;
- <td><b><tt>gx_line_params</tt></b> (used by <b><tt>gs_imager_state</tt></b>)
-<tr valign=top> <td><a href="../src/gslparam.h">gslparam.h</a>
- <td>&nbsp;
- <td>line cap/join values (used by <b><tt>gx_line_params</tt></b>)
-<tr valign=top> <td><a href="../src/gxmatrix.h">gxmatrix.h</a>
- <td>&nbsp;
- <td><b><tt>gs_matrix_fixed</tt></b> (used by <b><tt>gs_imager_state</tt></b>)
-<tr valign=top> <td><a href="../src/gspath.h">gspath.h</a>, <a href="../src/gxpath.h">gxpath.h</a>, <a href="../src/gzpath.h">gzpath.h</a>
- <td>&nbsp;
- <td><b><tt>gx_path</tt></b>
-<tr valign=top> <td><a href="../src/gxcpath.h">gxcpath.h</a>, <a href="../src/gzcpath.h">gzcpath.h</a>
- <td>&nbsp;
- <td><b><tt>gx_clip_path</tt></b>
-</table></blockquote>
-
-<p>
-For a minimal example of how to implement the high-level drawing operations,
-see <a href="../src/gdevtrac.c">gdevtrac.c</a>.
-
-<h4><a name="Paths"></a>Paths</h4>
-
-<dl>
-<dt><b><tt>int (*fill_path)(P6(gx_device&nbsp;*dev,
-const&nbsp;gs_imager_state&nbsp;*pis, gx_path&nbsp;*ppath,
-const&nbsp;gx_fill_params&nbsp;*params,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-const&nbsp;gx_clip_path&nbsp;*pcpath))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Fill the given path, clipped by the given clip path, according to the
-given parameters, with the given color. The clip path pointer may be
-<b><tt>NULL</tt></b>, meaning do not clip.
-</dl>
-
-<dl>
-<dt><b><tt>int (*stroke_path)(P6(gx_device&nbsp;*dev,
-const&nbsp;gs_imager_state&nbsp;*pis, gx_path&nbsp;*ppath,
-const&nbsp;gx_stroke_params&nbsp;*params,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-const&nbsp;gx_clip_path&nbsp;*pcpath))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Stroke the given path, clipped by the given clip path, according to the
-given parameters, with the given color. The clip path pointer may be
-<b><tt>NULL</tt></b>, meaning not to clip.
-</dl>
-
-<dl>
-<dt><b><tt>int (*fill_mask)(P13(gx_device&nbsp;*dev,
-const&nbsp;byte&nbsp;*data, int&nbsp;data_x, int&nbsp;raster,
-gx_bitmap_id&nbsp;id, int&nbsp;x, int&nbsp;y, int&nbsp;width,
-int&nbsp;height, const&nbsp;gx_drawing_color&nbsp;*pdcolor, int&nbsp;depth,
-int&nbsp;command, const&nbsp;gx_clip_path&nbsp;*pcpath))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>Color the 1-bits in the given mask (or according to the alpha values,
-if <b><tt>depth</tt></b>&nbsp;&gt;&nbsp;1), clipped by the given clip path,
-with the given color and logical operation. The clip path pointer may be
-<b><tt>NULL</tt></b>, meaning do not clip. The parameters
-<b><tt>data</tt></b>, ..., <b><tt>height</tt></b> are as for
-<b><tt>copy_mono</tt></b>; depth is as for <b><tt>copy_alpha</tt></b>;
-command is as for <b><tt>copy_rop</tt></b>.
-</dl>
-
-<h4><a name="Images"></a>Images</h4>
-
-<p>
-Similar to the high-level interface for fill and stroke graphics, a high-level
-interface exists for bitmap images. The procedures in this part of the
-interface are optional.
-
-<p>
-Bitmap images come in a variety of types, corresponding closely (but not
-precisely) to the PostScript ImageTypes. The generic or common part of all
-bitmap images is defined by:
-
-<blockquote>
-<pre>typedef struct {
- const gx_image_type_t *type;
- gs_matrix ImageMatrix;
-} gs_image_common_t;</pre>
-</blockquote>
-
-<p>
-Bitmap images that supply data (all image types except
-<b><tt>image_type_from_device</tt></b> (2)) are defined by:
-
-<blockquote>
-<pre>#define gs_image_max_components 5
-typedef struct {
- &lt;&lt; gs_image_common_t &gt;&gt;
- int Width;
- int Height;
- int BitsPerComponent;
- float Decode[gs_image_max_components * 2];
- bool Interpolate;
-} gs_data_image_t;</pre>
-</blockquote>
-
-<p>
-Images that supply pixel (as opposed to mask) data are defined by:
-
-<blockquote>
-<pre>typedef enum {
- /* Single plane, chunky pixels. */
- gs_image_format_chunky = 0,
- /* num_components planes, chunky components. */
- gs_image_format_component_planar = 1,
- /* BitsPerComponent * num_components planes, 1 bit per plane */
- gs_image_format_bit_planar = 2
-} gs_image_format_t;
-typedef struct {
- &lt;&lt; gs_data_image_t &gt;&gt;
- const gs_color_space *ColorSpace;
- bool CombineWithColor;
-} gs_pixel_image_t;</pre>
-</blockquote>
-
-<p>
-Ordinary PostScript Level 1 or Level 2 (<b><tt>ImageType</tt></b> 1) images
-are defined by:
-
-<blockquote>
-<pre>typedef enum {
- /* No alpha. */
- gs_image_alpha_none = 0,
- /* Alpha precedes color components. */
- gs_image_alpha_first,
- /* Alpha follows color components. */
- gs_image_alpha_last
-} gs_image_alpha_t;
-typedef struct {
- &lt;&lt; gs_pixel_image_t &gt;&gt;
- bool ImageMask;
- bool adjust;
- gs_image_alpha_t Alpha;
-} gs_image1_t;
-typedef gs_image1_t gs_image_t;</pre>
-</blockquote>
-
-<p>
-Of course, standard PostScript images don't have an alpha component. For
-more details, consult the source code in <a
-href="../src/gsiparam.h">gsiparam.h</a> and <b><tt>gsiparm*.h</tt></b>,
-which define parameters for an image.
-
-<p>
-The <b><tt>begin[_typed_]image</tt></b> driver procedures create image
-enumeration structures. The common part of these structures consists of:
-
-<blockquote>
-<pre>typedef struct gx_image_enum_common_s {
- const gx_image_type_t *image_type;
- const gx_image_enum_procs_t *procs;
- gx_device *dev;
- gs_id id;
- int num_planes;
- int plane_depths[gs_image_max_planes]; /* [num_planes] */
- int plane_widths[gs_image_max_planes] /* [num_planes] */
-} gx_image_enum_common_t;</pre>
-</blockquote>
-
-<p>
-where <b><tt>procs</tt></b> consists of:
-
-<blockquote>
-<pre>typedef struct gx_image_enum_procs_s {
-
- /*
- * Pass the next batch of data for processing.
- */
-#define image_enum_proc_plane_data(proc)\
- int proc(P4(gx_device *dev,\
- gx_image_enum_common_t *info, const gx_image_plane_t *planes,\
- int height))
-
- image_enum_proc_plane_data((*plane_data));
-
- /*
- * End processing an image, freeing the enumerator.
- */
-#define image_enum_proc_end_image(proc)\
- int proc(P3(gx_device *dev,\
- gx_image_enum_common_t *info, bool draw_last))
-
- image_enum_proc_end_image((*end_image));
-
- /*
- * Flush any intermediate buffers to the target device.
- * We need this for situations where two images interact
- * (currently, only the mask and the data of ImageType 3).
- * This procedure is optional (may be 0).
- */
-#define image_enum_proc_flush(proc)\
- int proc(P1(gx_image_enum_common_t *info))
-
- image_enum_proc_flush((*flush));
-
-} gx_image_enum_procs_t;</pre>
-</blockquote>
-
-<p> In other words, <b><tt>begin[_typed]_image</tt></b> sets up an
-enumeration structure that contains the procedures that will process the
-image data, together with all variables needed to maintain the state of the
-process. Since this is somewhat tricky to get right, if you plan to create
-one of your own you should probably read an existing implementation of
-<b><tt>begin[_typed]_image</tt></b>, such as the one in <a
-href="../src/gdevbbox.c">gdevbbox.c</a> or <a
-href="../src/gdevps.c">gdevps.c</a>.
-
-<p>
-The data passed at each call of <b><tt>image_plane_data</tt></b> consists of
-one or more planes, as appropriate for the type of image.
-<b><tt>begin[_typed]_image</tt></b> must initialize the
-<b><tt>plane_depths</tt></b> array in the enumeration structure with the
-depths (bits per element) of the planes. The array of
-<b><tt>gx_image_plane_t</tt></b> structures passed to each call of
-<b><tt>image_plane_data</tt></b> then defines where the data are stored, as
-follows:
-
-<blockquote>
-<pre>typedef struct gx_image_plane_s {
- const byte *data;
- int data_x;
- uint raster;
-} gx_image_plane_t;</pre>
-</blockquote>
-
-<dl>
-<dt><b><tt>int (*begin_image)(P9(gx_device&nbsp;*dev,
-const&nbsp;gs_imager_state&nbsp;*pis, const&nbsp;gs_image_t&nbsp;*pim,
-gs_image_format_t&nbsp;format, gs_int_rect&nbsp;*prect,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-const&nbsp;gx_clip_path&nbsp;*pcpath, gs_memory_t&nbsp;*memory,
-gx_image_enum_common_t&nbsp;**pinfo))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Begin the transmission of an image. Zero or more calls of
-<b><tt>image_plane_data</tt></b> will follow, and then a call of
-<b><tt>end_image</tt></b>. The parameters of <b><tt>begin_image</tt></b>
-are as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>pis</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>pointer to an imager state. The only relevant elements of the
- imager state are the CTM (coordinate transformation matrix),
- the logical operation (<b><tt>RasterOp</tt></b> or
- transparency), and the color rendering information.
-<tr valign=top> <td><b><tt>pim</tt></b>
- <td>&nbsp;
- <td>pointer to the <b><tt>gs_image_t</tt></b> structure that
- defines the image parameters
-<tr valign=top> <td><b><tt>format</tt></b>
- <td>&nbsp;
- <td>defines how pixels are represented for
- <b><tt>image_plane_data</tt></b>. See the description of
- <b><tt>image_plane_data</tt></b> below
-<tr valign=top> <td><b><tt>prect</tt></b>
- <td>&nbsp;
- <td>if not <b><tt>NULL</tt></b>, defines a subrectangle of the
- image; only the data for this subrectangle will be passed to
- <b><tt>image_plane_data</tt></b>, and only this subrectangle should
- be drawn
-<tr valign=top> <td><b><tt>pdcolor</tt></b>
- <td>&nbsp;
- <td>defines a drawing color, only needed for masks or if
- <b><tt>CombineWithColor</tt></b> is true
-<tr valign=top> <td><b><tt>pcpath</tt></b>
- <td>&nbsp;
- <td>if not <b><tt>NULL</tt></b>, defines an optional clipping path
-<tr valign=top> <td><b><tt>memory</tt></b>
- <td>&nbsp;
- <td>defines the allocator to be used for allocating bookkeeping
- information
-<tr valign=top> <td><b><tt>pinfo</tt></b>
- <td>&nbsp;
- <td>the implementation should return a pointer to its state
- structure here
-</table></blockquote>
-
-<p>
-<b><tt>begin_image</tt></b> is expected to allocate a structure for its
-bookkeeping needs, using the allocator defined by the memory parameter, and
-return it in <b><tt>*pinfo</tt></b>. <b><tt>begin_image</tt></b> should not assume that
-the structures in <b><tt>*pim</tt></b>, <b><tt>*prect</tt></b>, or
-<b><tt>*pdcolor</tt></b> will survive the call on
-<b><tt>begin_image</tt></b> (except for the color space in
-<b><tt>*pim-&gt;ColorSpace</tt></b>): it should copy any necessary parts of
-them into its own bookkeeping structure. It may, however, assume that
-<b><tt>*pis</tt></b>, <b><tt>*pcpath</tt></b>, and of course
-<b><tt>*memory</tt></b> will live at least until <b><tt>end_image</tt></b>
-is called.
-
-<p>
-<b><tt>begin_image</tt></b> returns 0 normally, or 1 if the image does not
-need any data. In the latter case, <b><tt>begin_image</tt></b> does not
-allocate an enumeration structure.
-</dl>
-
-<dl>
-<dt><b><tt>int (*begin_typed_image)(P9(gx_device&nbsp;*dev,
-const&nbsp;gs_imager_state&nbsp;*pis, const&nbsp;gs_matrix&nbsp;*pmat,
-const&nbsp;gs_image_common_t&nbsp;*pim, gs_int_rect&nbsp;*prect,
-const&nbsp;gx_drawing_color&nbsp;*pdcolor,
-const&nbsp;gx_clip_path&nbsp;*pcpath, gs_memory_t&nbsp;*memory,
-gx_image_enum_common_t&nbsp;**pinfo))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>This has the same function as <b><tt>begin_image</tt></b>, except
-<ul>
-<li>The image may be of any <b><tt>ImageType</tt></b>, not only
-<b><tt>image_type_simple</tt></b> (1);
-
-<li>The image format is included in the image structure, not supplied as a
-separate argument;
-
-<li>The optional <b><tt>pmat</tt></b> argument provides a matrix that
-substitutes for the one in the imager state;
-
-<li>For mask images, if <b><tt>pmat</tt></b> is not <b><tt>NULL</tt></b>
-and the color is pure, <b><tt>pis</tt></b> may be <b><tt>NULL</tt></b>.
-</ul>
-</dl>
-
-<p>
-The actual transmission of data uses the procedures in the enumeration
-structure, not driver procedures, since the handling of the data usually
-depends on the image type and parameters rather than the device. These
-procedures are specified as follows.
-
-<dl>
-<dt><b><tt>int (*image_plane_data)(P4(gx_device&nbsp;*dev,
-gx_image_enum_common_t&nbsp;*info,
-const&nbsp;gx_image_plane_t&nbsp;*planes, int&nbsp;height))</tt></b>
-<dd>This call provides more of the image source data: specifically,
-<b><tt>height</tt></b> rows, with <b><tt>Width</tt></b> pixels supplied for
-each row.
-
-<p>
-The data for each row are packed big-endian within each byte, as for
-<b><tt>copy_color</tt></b>. The <b><tt>data_x</tt></b> (starting X position
-within the row) and <b><tt>raster</tt></b> (number of bytes per row) are
-specified separately for each plane, and may include some padding at the
-beginning or end of each row. Note that for non-mask images, the input data
-may be in any color space and may have any number of bits per component (1,
-2, 4, 8, 12); currently mask images always have 1 bit per component, but in
-the future, they might allow multiple bits of alpha. Note also that each
-call of <b><tt>image_plane_data</tt></b> passes complete pixels: for example, for
-a chunky image with 24 bits per pixel, each call of
-<b><tt>image_plane_data</tt></b> passes 3N bytes of data (specifically,
-3&nbsp;&times;&nbsp;Width&nbsp;&times;&nbsp;height).
-
-<p>
-The interpretation of planes depends on the <b><tt>format</tt></b> member of
-the <b><tt>gs_image[_common]_t</tt></b> structure:
-
-<ul>
-<li>If the format is <b><tt>gs_image_format_chunky</tt></b>,
-<b><tt>planes[0].data</tt></b> points to data in "chunky" format, in which
-the components follow each other (for instance, RGBRGBRGB....)
-
-<li>If the format is <b><tt>gs_image_format_component_planar</tt></b>,
-<b><tt>planes[0&nbsp;..&nbsp;N-1].data</tt></b> point to data for the
-<b><em>N</em></b> components (for example, <b><em>N</em></b>=3 for RGB
-data); each plane contains samples for a single component, for instance,
-RR..., GG..., BB.... Note that the planes are divided by component, not by
-bit: for example, for 24-bit RGB data, <b><em>N</em></b>=3, with 8-bit
-values in each plane of data.
-
-<li>If the format is <b><tt>gs_image_format_bit_planar</tt></b>,
-<b><tt>planes[0&nbsp;..&nbsp;N*B-1].data</tt></b> point to data for the
-<b><em>N</em></b> components of <b><em>B</em></b> bits each (for example,
-<b><em>N</em></b>=3 and <b><em>B</em></b>=4 for RGB data with 4 bits per
-component); each plane contains samples for a single bit, for instance, R0
-R1 R2 R3 G0 G1 G2 G3 B0 B1 B2 B3. Note that the most significant bit of
-each plane comes first.
-</ul>
-
-<p>
-If, as a result of this call, <b><tt>image_plane_data</tt></b> has been called with all
-the data for the (sub-)image, it returns 1; otherwise, it returns 0 or an
-error code as usual.
-
-<p>
-<b><tt>image_plane_data</tt></b>, unlike most other procedures that take bitmaps as
-arguments, does not require the data to be aligned in any way.
-
-<p>
-Note that for some image types, different planes may have different
-numbers of bits per pixel, as defined in the <b><tt>plane_depths</tt></b> array.
-</dl>
-
-<dl>
-<dt><b><tt>int (*end_image)(P3(gx_device&nbsp;*dev, void&nbsp;*info,
-bool&nbsp;draw_last))</tt></b>
-<dd>Finish processing an image, either because all data have been supplied
-or because the caller has decided to abandon this image.
-<b><tt>end_image</tt></b> may be called at any time after
-<b><tt>begin_image</tt></b>. It should free the info structure and any
-subsidiary structures. If <b><tt>draw_last</tt></b> is true, it should
-finish drawing any buffered lines of the image.
-</dl>
-
-<h5><a name="Images_notes"></a>Notes</h5>
-
-<p>
-While there will almost never be more than one image enumeration in
-progress -- that is, after a <b><tt>begin_image</tt></b>,
-<b><tt>end_image</tt></b> will almost always be called before the next
-<b><tt>begin_image</tt></b> -- driver code should not rely on this
-property; in particular, it should store all information regarding the
-image in the info structure, not in the driver structure.
-
-<p>
-Note that if <b><tt>begin_[typed_]image</tt></b> saves its parameters in
-the info structure, it can decide on each call whether to use its own
-algorithms or to use the default implementation. (It may need to call
-<b><tt>gx_default_begin</tt></b>/<b><tt>end_image</tt></b> partway
-through.) [A later revision of this document may include an example here.]
-
-<h4><a name="Text"></a>Text</h4>
-
-<p>
-The third high-level interface handles text. As for images, the interface
-is based on creating an enumerator which then may execute the operation in
-multiple steps. As for the other high-level interfaces, the procedures are
-optional.
-
-<dl>
-<dt><b><tt>int (*text_begin)(P9(gx_device&nbsp;*dev,
-gs_imager_state&nbsp;*pis, const&nbsp;gs_text_params_t&nbsp;*text,
-gs_font&nbsp;*font, gx_path&nbsp;*path,
-const&nbsp;gx_device_color&nbsp;*pdcolor,
-const&nbsp;gx_clip_path&nbsp;*pcpath, gs_memory_t&nbsp;*memory,
-gs_text_enum_t&nbsp;**ppte))</tt></b> <b><em>[OPTIONAL]</em></b>
-
-<dd>
-Begin processing text, by creating a state structure and storing it in
-<b><tt>*ppte</tt></b>. The parameters of <b><tt>text_begin</tt></b> are as
-follows:
-</dl>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>dev</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>The usual pointer to the device.
-<tr valign=top> <td><b><tt>pis</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>A pointer to an imager state. All elements may be relevant,
- depending on how the text is rendered.
-<tr valign=top> <td><b><tt>text</tt></b>
- <td>&nbsp;
- <td>A pointer to the structure that defines the text operation
- and parameters. See <a href="../src/gstext.h">gstext.h</a> for details.
-<tr valign=top> <td><b><tt>font</tt></b>
- <td>&nbsp;
- <td>Defines the font for drawing.
-<tr valign=top> <td><b><tt>path</tt></b>
- <td>&nbsp;
- <td>Defines the path where the character outline will be appended
- (if the text operation includes <b><tt>TEXT_DO_...PATH</tt></b>),
- and whose current point indicates where drawing should occur
- and will be updated by the string width (unless the text
- operation includes <b><tt>TEXT_DO_NONE</tt></b>).
-<tr valign=top> <td><b><tt>pdcolor</tt></b>
- <td>&nbsp;
- <td>Defines the drawing color for the text. Only relevant if
- the text operation includes <b><tt>TEXT_DO_DRAW</tt></b>.
-<tr valign=top> <td><b><tt>pcpath</tt></b>
- <td>&nbsp;
- <td>If not <b><tt>NULL</tt></b>, defines an optional clipping path.
- Only relevant if the text operation includes
- <b><tt>TEXT_DO_DRAW</tt></b>.
-<tr valign=top> <td><b><tt>memory</tt></b>
- <td>&nbsp;
- <td>Defines the allocator to be used for allocating bookkeeping
- information.
-<tr valign=top> <td><b><tt>ppte</tt></b>
- <td>&nbsp;
- <td>The implementation should return a pointer to its state
- structure here.
-</table></blockquote>
-
-<p>
-<b><tt>text_begin</tt></b> must allocate a structure for its bookkeeping
-needs, using the allocator defined by the <b><tt>memory</tt></b> parameter,
-and return it in <b><tt>*ppte</tt></b>. <b><tt>text_begin</tt></b> may
-assume that the structures passed as parameters will survive until text
-processing is complete.
-
-<p>
-Clients should not call the driver <b><tt>text_begin</tt></b> procedure
-directly. Instead, they should call <b><tt>gx_device_text_begin</tt></b>,
-which takes the same parameters and also initializes certain common elements
-of the text enumeration structure, or <b><tt>gs_text_begin</tt></b>, which
-takes many of the parameters from a graphics state structure. For details,
-see <a href="../src/gstext.h">gstext.h</a>.
-
-<p>
-The actual processing of text uses the procedures in the enumeration
-structure, not driver procedures, since the handling of the text may depend
-on the font and parameters rather than the device. Text processing may also
-require the client to take action between characters, either because the
-client requested it (<b><tt>TEXT_INTERVENE</tt></b> in the operation) or
-because rendering a character requires suspending text processing to call an
-external package such as the PostScript interpreter. (It is a deliberate
-design decision to handle this by returning to the client, rather than
-calling out of the text renderer, in order to avoid potentially unknown
-stack requirements.) Specifically, the client must call the following
-procedures, which in turn call the procedures in the text enumerator.
-
-<dl>
-<dt><b><tt>int gs_text_process(P1(gs_text_enum_t&nbsp;*pte))</tt></b>
-<dd>Continue processing text. This procedure may return 0 or a negative
-error code as usual, or one of the following values (see
-<a href="../src/gstext.h">gstext.h</a> for details).
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>TEXT_PROCESS_RENDER</tt></b>
- <td>The client must cause the current character to be rendered.
- This currently only is used for PostScript Type 0-4 fonts
- and their CID-keyed relatives.
-<tr valign=top> <td><b><tt>TEXT_PROCESS_INTERVENE</tt></b>
- <td>The client has asked to intervene between characters.
- This is used for <b><tt>cshow</tt></b> and <b><tt>kshow</tt></b>.
-</table></blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>int gs_text_release(P2(gs_text_enum_t&nbsp;*pte,
-client_name_t&nbsp;cname))</tt></b> <dd>Finish processing text and release
-all associated structures. Clients must call this procedure after
-<b><tt>gs_text_process</tt></b> returns 0 or an error, and may call it at
-any time.
-</dl>
-
-<p>
-There are numerous other procedures that clients may call during text
-processing. See <a href="../src/gstext.h">gstext.h</a> for details.
-
-<h5><a name="Text_notes"></a>Notes</h5>
-
-<p>
-Note that unlike many other optional procedures, the default implementation
-of <b><tt>text_begin</tt></b> cannot simply return: like the default
-implementation of <b><tt>begin[_typed]_image</tt></b>, it must create and
-return an enumerator. Furthermore, the implementation of the
-<b><tt>process</tt></b> procedure (in the enumerator structure, called by
-<b><tt>gs_text_process</tt></b>) cannot simply return without doing
-anything, even if it doesn't want to draw anything on the output. See the
-comments in <a href="../src/gxtext.h">gxtext.h</a> for details.
-
-<h3><a name="Reading_bits_back"></a>Reading bits back</h3>
-
-<dl>
-<dt><b><tt>int (*get_bits_rectangle)(P4(gx_device&nbsp;*dev,
-const&nbsp;gs_int_rect&nbsp;*prect, gs_get_bits_params_t&nbsp;*params,
-gs_int_rect&nbsp;**unread))</tt></b> <b><em>[OPTIONAL]</em></b>
-
-<dd>
-Read a rectangle of bits back from the device. The <b><tt>params</tt></b>
-structure consists of:
-
-<table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>options</tt></b>
- <td>&nbsp;
- <td>the allowable formats for returning the data
-<tr valign=top> <td><b><tt>data[32]</tt></b>
- <td>&nbsp;
- <td>pointers to the returned data
-<tr valign=top> <td><b><tt>x_offset</tt></b>
- <td>&nbsp;
- <td>the X offset of the first returned pixel in data
-<tr valign=top> <td><b><tt>raster</tt></b>
- <td>&nbsp;
- <td>the distance between scan lines in the returned data
-</table>
-
-<p>
-<b><tt>options</tt></b> is a bit mask specifying what formats the client is
-willing to accept. (If the client has more flexibility, the implementation
-may be able to return the data more efficiently, by avoiding representation
-conversions.) The options are divided into groups.
-
-<blockquote><dl>
-<dt><b><em>alignment</em></b>
-<dd>Specifies whether the returned data must be aligned in the normal
-manner for bitmaps, or whether unaligned data are acceptable.
-
-<dt><b><em>pointer or copy</em></b>
-<dd>Specifies whether the data may be copied into storage provided by the
-client and/or returned as pointers to existing storage. (Note that if
-copying is not allowed, it is much more likely that the implementation will
-return an error, since this requires that the client accept the data in the
-implementation's internal format.)
-
-<dt><b><em>X offset</em></b>
-<dd>Specifies whether the returned data must have a specific X offset
-(usually zero, but possibly other values to avoid skew at some later stage
-of processing) or whether it may have any X offset (which may avoid skew in
-the <b><tt>get_bits_rectangle</tt></b> operation itself).
-
-<dt><b><em>raster</em></b>
-<dd>Specifies whether the raster (distance between returned scan lines)
-must have its standard value, must have some other specific value, or may
-have any value. The standard value for the raster is the device width
-padded out to the alignment modulus when using pointers, or the minimum
-raster to accommodate the X offset + width when copying (padded out to the
-alignment modulus if standard alignment is required).
-
-<dt><b><em>format</em></b>
-<dd>Specifies whether the data are returned in chunky (all components of a
-single pixel together), component-planar (each component has its own scan
-lines), or bit-planar (each bit has its own scan lines) format.
-
-<dt><b><em>color space</em></b>
-<dd>Specifies whether the data are returned as native device pixels, or in
-a standard color space. Currently the only supported standard space is
-RGB.
-
-<dt><b><em>standard component depth</em></b>
-<dd>Specifies the number of bits per component if the data are returned in
-the standard color space. (Native device pixels use
-<b><tt>dev</tt></b>-&gt;<b><tt>color_info.depth</tt></b> bits per pixel.)
-
-<dt><b><em>alpha</em></b>
-<dd>Specifies whether alpha channel information should be returned as the
-first component, the last component, or not at all. Note that for devices
-that have no alpha capability, the returned alpha values will be all 1s.
-</dl></blockquote>
-
-<p>
-The client may set more than one option in each of the above groups; the
-implementation will choose one of the selected options in each group to
-determine the actual form of the returned data, and will update
-<b><tt>params[].options</tt></b> to indicate the form. The returned
-<b><tt>params[].options</tt></b> will normally have only one option set per
-group.
-
-<p>
-For further details on <b><tt>params</tt></b>, see <a
-href="../src/gxgetbit.h">gxgetbit.h</a>. For further details on
-<b><tt>options</tt></b>, see <a href="../src/gxbitfmt.h">gxbitfmt.h</a>.
-
-<p>
-Define w = <b><tt>prect</tt></b>-&gt;q.x - <b><tt>prect</tt></b>-&gt;p.x, h
-= <b><tt>prect</tt></b>-&gt;q.y - <b><tt>prect</tt></b>-&gt;p.y. If the
-bits cannot be read back (for example, from a printer), return
-<b><tt>gs_error_unknownerror</tt></b>; if raster bytes is not enough space
-to hold <b><tt>offset_x</tt></b> + w pixels, or if the source rectangle
-goes outside the device dimensions (p.x &lt; 0 || p.y &lt; 0 || q.x &gt;
-<b><tt>dev</tt></b>-&gt;width || q.y &gt; <b><tt>dev</tt></b>-&gt;height),
-return <b><tt>gs_error_rangecheck</tt></b>; if any regions could not be
-read, return <b><tt>gs_error_ioerror</tt></b> if unpainted is
-<b><tt>NULL</tt></b>, otherwise the number of rectangles (see below);
-otherwise return 0.
-
-<p>
-The caller supplies a buffer of <b><tt>raster</tt></b>&nbsp;&times;&nbsp;h
-bytes starting at <b><tt>data[0]</tt></b> for the returned data in chunky
-format, or <b><em>N</em></b> buffers of
-<b><tt>raster</tt></b>&nbsp;&times;&nbsp;h bytes starting at
-<b><tt>data[0]</tt></b> through
-<b><tt>data[</tt></b><b><em>N-1</em></b><b><tt>]</tt></b> in planar format
-where <b><em>N</em></b> is the number of components or bits. The contents
-of the bits beyond the last valid bit in each scan line (as defined by w)
-are unpredictable. data need not be aligned in any way. If
-<b><tt>x_offset</tt></b> is non-zero, the bits before the first valid bit
-in each scan line are undefined. If the implementation returns pointers to
-the data, it stores them into <b><tt>data[0]</tt></b> or
-<b><tt>data[</tt></b><b><em>0..N-1</em></b><b><tt>]</tt></b>.
-
-<p>
-If not all the source data are available (for example, because the source
-was a partially obscured window and backing store was not available or not
-used), or if the rectangle does not fall completely within the device's
-coordinate system, any unread bits are undefined, and the value returned
-depends on whether unread is <b><tt>NULL</tt></b>. If unread is
-<b><tt>NULL</tt></b>, return <b><tt>gs_error_ioerror</tt></b>; in this case,
-some bits may or may not have been read. If unread is not
-<b><tt>NULL</tt></b>, allocate (using <b><tt>dev</tt></b>-&gt;memory) and
-fill in a list of rectangles that could not be read, store the pointer to
-the list in <b><tt>*unread</tt></b>, and return the number of rectangles; in
-this case, all bits not listed in the rectangle list have been read back
-properly. The list is not sorted in any particular order, but the
-rectangles do not overlap. Note that the rectangle list may cover a
-superset of the region actually obscured: for example, a lazy implementation
-could return a single rectangle that was the bounding box of the region.
-</dl>
-
-<dl>
-<dt><b><tt>int (*get_bits)(P4(gx_device&nbsp;*dev, int&nbsp;y,
-byte&nbsp;*data, byte&nbsp;**actual_data))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>Read scan line <b><tt>y</tt></b> of bits back from the device into the
-area starting at data. This call is functionally equivalent to
-
-<blockquote>
-<pre>(*get_bits_rectangle)
- (dev, {0, y, dev-&gt;width, y+1},
- {(GB_ALIGN_ANY | (GB_RETURN_COPY | GB_RETURN_POINTER) | GB_OFFSET_0 |
- GB_RASTER_STANDARD | GB_FORMAT_CHUNKY | GB_COLORS_NATIVE |
- GB_ALPHA_NONE),
- {data}})</pre></blockquote>
-
-<p>
-with the returned value of
-<b><tt>params</tt></b>-&gt;<b><tt>data[0]</tt></b> stored in
-<b><tt>*actual_data</tt></b>, and will in fact be implemented this way if
-the device defines a <b><tt>get_bits_rectangle</tt></b> procedure and does
-not define one for <b><tt>get_bits</tt></b>. (If
-<b><tt>actual_data</tt></b> is <b><tt>NULL</tt></b>,
-<b><tt>GB_RETURN_POINTER</tt></b> is omitted from the options.)
-</dl>
-
-<h3><a name="Parameters"></a>Parameters</h3>
-
-<p>
-Devices may have an open-ended set of parameters, which are simply pairs
-consisting of a name and a value. The value may be of various types:
-integer (int or long), boolean, float, string, name, <b><tt>NULL</tt></b>,
-array of integer, array of float, or arrays or dictionaries of mixed types.
-For example, the <b><tt>Name</tt></b> of a device is a string; the
-<b><tt>Margins</tt></b> of a device is an array of two floats. See
-<a href="../src/gsparam.h">gsparam.h</a> for more details.
-
-<p>
-If a device has parameters other than the ones applicable to all devices
-(or, in the case of printer devices, all printer devices), it must provide
-<b><tt>get_params</tt></b> and <b><tt>put_params</tt></b> procedures. If
-your device has parameters beyond those of a straightforward display or
-printer, we strongly advise using the <b><tt>_get_params</tt></b> and
-<b><tt>_put_params</tt></b> procedures in an existing device (for example,
-<a href="../src/gdevcdj.c">gdevcdj.c</a> or <a
-href="../src/gdevbit.c">gdevbit.c</a>) as a model for your own code.
-
-<dl>
-<dt><b><tt>int (*get_params)(P2(gx_device&nbsp;*dev,
-gs_param_list&nbsp;*plist))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Read the parameters of the device into the parameter list at
-<b><tt>plist</tt></b>, using the <b><tt>param_write_*</tt></b>
-macros or procedures defined in <a href="../src/gsparam.h">gsparam.h</a>.
-</dl>
-
-<dl>
-<dt><b><tt>int (*get_hardware_params)(P2(gx_device&nbsp;*dev,
-gs_param_list&nbsp;*plist))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Read the hardware-related parameters of the device into the parameter
-list at plist. These are any parameters whose values are under control of
-external forces rather than the program -- for example, front panel
-switches, paper jam or tray empty sensors, etc. If a parameter involves
-significant delay or hardware action, the driver should only determine the
-value of the parameter if it is "requested" by the
-<b><tt>gs_param_list</tt></b> [<b><tt>param_requested</tt></b>(plist,
-<b><tt>key_name</tt></b>)]. This function may cause the asynchronous
-rendering pipeline (if enabled) to be drained, so it should be used
-sparingly.
-</dl>
-
-<dl>
-<dt><b><tt>int (*put_params)(P2(gx_device&nbsp;*dev,
-gs_param_list&nbsp;*plist))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Set the parameters of the device from the parameter list at
-<b><tt>plist</tt></b>, using the <b><tt>param_read_</tt></b>*
-macros/procedures defined in <a href="../src/gsparam.h">gsparam.h</a>. All
-<b><tt>put_params</tt></b> procedures must use a "two-phase commit"
-algorithm; see <a href="../src/gsparam.h">gsparam.h</a> for details.
-</dl>
-
-<h4><a name="Default_CRD_parameters"></a>Default color rendering
-dictionary (CRD) parameters</h4>
-
-<p>
-Drivers that want to provide one or more default CIE color rendering
-dictionaries (CRDs) can do so through <b><tt>get_params</tt></b>. To do
-this, they create the CRD in the usual way (normally using the
-<b><tt>gs_cie_render1_build</tt></b> and <b><tt>_initialize</tt></b>
-procedures defined in <a href="../src/gscrd.h">gscrd.h</a>), and then write
-it as a parameter using <b><tt>param_write_cie_render1</tt></b> defined in
-<a href="../src/gscrdp.h">gscrdp.h</a>. However, the TransformPQR procedure
-requires special handling. If the CRD uses a TransformPQR procedure
-different from the default (identity), the driver must do the following:
-
-<ul>
-<li>The TransformPQR element of the CRD must include a
-<b><tt>proc_name</tt></b>, and optionally <b><tt>proc_data</tt></b>. The
-<b><tt>proc_name</tt></b> is an arbitrary name chosen by the driver to
-designate the particular TransformPQR function. It must not be the same as
-any device parameter name; we strongly suggest it include the device name,
-for instance, "<b><tt>bitTPQRDefault</tt></b>".
-
-<li>For each such named TransformPQR procedure, the driver's
-<b><tt>get_param</tt></b> procedure must provide a parameter of the same
-name. The parameter value must be a string whose bytes are the actual
-procedure address.
-</ul>
-
-<p>
-For a complete example, see the <b><tt>bit_get_params</tt></b> procedure in
-<a href="../src/gdevbit.c">gdevbit.c</a>. Note that it is essential that
-the driver return the CRD or the procedure address only if specifically
-requested (<b><tt>param_requested(...)</tt></b> &gt; 0); otherwise, errors
-will occur.
-
-<h3><a name="External_fonts"></a>External fonts</h3>
-
-<p>
-Drivers may include the ability to display text. More precisely, they may
-supply a set of procedures that in turn implement some font and text
-handling capabilities, described in <a href="Xfonts.htm">a separate
-document</a>. The link between the two is the driver procedure that
-supplies the font and text procedures:
-
-<dl>
-<dt><b><tt>xfont_procs&nbsp;*(*get_xfont_procs)(P1(gx_device&nbsp;*dev))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Return a structure of procedures for handling external fonts and text
-display. A <b><tt>NULL</tt></b> value means that this driver doesn't
-provide this capability.
-</dl>
-
-<p>
-For technical reasons, a second procedure is also needed:
-
-<dl>
-<dt><b><tt>gx_device&nbsp;*(*get_xfont_device)(P1(gx_device&nbsp;*dev))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Return the device that implements <b><tt>get_xfont_procs</tt></b> in a
-non-default way for this device, if any. Except for certain special
-internal devices, this is always the device argument.
-</dl>
-
-<h3><a name="Page_devices"></a>Page devices</h3>
-
-<dl>
-<dt><b><tt>gx_device&nbsp;*(*get_page_device)(P1(gx_device&nbsp;*dev))</tt></b>
-<b><em>[OPTIONAL]</em></b>
-<dd>According to the Adobe specifications, some devices are "page devices"
-and some are not. This procedure returns <b><tt>NULL</tt></b> if the
-device is not a page device, or the device itself if it is a page device.
-In the case of forwarding devices, <b><tt>get_page_device</tt></b> returns
-the underlying page device (or <b><tt>NULL</tt></b> if the underlying
-device is not a page device).
-</dl>
-
-<h3><a name="Miscellaneous"></a>Miscellaneous</h3>
-
-<dl>
-<dt><b><tt>int (*get_band)(P3(gx_device&nbsp;*dev, int&nbsp;y,
-int&nbsp;*band_start))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>If the device is a band device, this procedure stores in
-<b><tt>*band_start</tt></b> the scan line (device Y coordinate) of the band
-that includes the given Y coordinate, and returns the number of scan lines
-in the band. If the device is not a band device, this procedure returns 0.
-The latter is the default implementation.
-</dl>
-
-<dl>
-<dt><b><tt>void (*get_clipping_box)(P2(gx_device&nbsp;*dev,
-gs_fixed_rect&nbsp;*pbox))</tt></b> <b><em>[OPTIONAL]</em></b>
-<dd>Stores in <b><tt>*pbox</tt></b> a rectangle that defines the device's
-clipping region. For all but a few specialized devices, this is
-<em>((0,0),(width,height))</em>.
-</dl>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Fonts.htm b/Master/xemtex/doc/ghostscript/Fonts.htm
deleted file mode 100644
index add24f89d7f..00000000000
--- a/Master/xemtex/doc/ghostscript/Fonts.htm
+++ /dev/null
@@ -1,1288 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Fonts and font facilities supplied with Ghostscript</title>
-<!-- $Id: Fonts.htm,v 1.22.2.13.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: fonts.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Fonts and font facilities supplied with Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#About">About Ghostscript fonts</a>
-<li><a href="#Free_fonts">Ghostscript's free fonts</a>
-<li><a href="#Other_fonts">Other free fonts</a>
-<ul>
-<li><a href="#Computer_Modern">Computer Modern Fontmap</a>
-<li><a href="#CID_Adobe">CJK CID-keyed fonts by Adobe</a>
-<li><a href="#CMap_Adobe">Adobe CMaps</a>
-<li><a href="#Chinese">Free Chinese (Hanzi) fonts</a>
-<li><a href="#Japanese">Free Japanese (Kanji) fonts</a>
-<li><a href="#Korean">Free Korean (Hangul and Hanja) fonts</a>
-<li><a href="#Cyrillic">Free Cyrillic fonts</a>
-<li><a href="#Partial_Unicode_fonts">(Partial) Unicode fonts</a>
-</ul>
-<li><a href="#Get_fonts">How Ghostscript gets fonts when it runs</a>
-<li><a href="#Platform_fonts">Platform fonts</a>
-<li><a href="#Add_fonts">Adding your own fonts</a>
-<ul>
-<li><a href="#Convert_BDF">Converting BDF fonts</a>
-</ul>
-<li><a href="#For_developers">For developers only</a>
-<ul>
-<li><a href="#Font_contents">Contents of fonts</a>
-<li><a href="#Precompiling">Precompiling fonts</a>
-<li><a href="#Short_identifiers">Precompiling fonts on platforms with identifier length limits</a>
-<li><a href="#Unique_IDs">Font names and unique IDs</a>
-<li><a href="#Codes">Codes used to make font file names</a>
-</ul>
-<li><a href="#Use_gs_fonts_with_X">Using Ghostscript fonts on X Windows displays</a>
-<ul>
-<li><a href="#Using_xset">Using <b><tt>xset</tt></b></a>
-<li><a href="#Font_permanent_installation">Permanent installation</a>
-<ul>
-<li><a href="#Configure_xfs">Configuring the <b><tt>xfs</tt></b> font server</a>
-<li><a href="#Configure_Xfree86">Xfree86 display servers</a>
-</ul>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="About"></a>About Ghostscript fonts</h2>
-
-<p>
-Ghostscript is distributed with two kinds of files related to fonts:
-
-<ul>
-<li>the fonts themselves in individual files, and
-<li>a file "<tt><b>Fontmap</b></tt>" that defines for
-Ghostscript which file represents which font.
-</ul>
-
-<p>
-Most of the font files supplied with Ghostscript have the extension
-<tt><b>.pfb</b></tt>, and a few have <tt><b>.pfa</b></tt> or
-<tt><b>.gsf</b></tt>. Each file defines one ordinary PostScript Type 1
-outline font which any PostScript language interpreter can use. Files with
-<tt><b>.pfa</b></tt> or <tt><b>.pfb</b></tt> extensions are also compatible
-with Adobe Type Manager (ATM) and with tools that don't include a full
-PostScript language interpreter; files with <tt><b>.gsf</b></tt> extension
-are incompatible with ATM and other tools. Ghostscript compiled with the
-"ttfont" option can also use TrueType fonts with the extension
-<tt><b>.ttf</b></tt>.
-
-<p><a name="Fontmap"></a>
-When Ghostscript needs a font, it must have some way to know where to look
-for it: that's the purpose of the <b><tt>Fontmap</tt></b> file, which
-associates the names of <em>fonts</em> such as <b><tt>/Times-Roman</tt></b>
-with the names of font <em>files</em>, such as
-<tt><b>n021003l.pfb</b></tt>. <b><tt>Fontmap</tt></b> can also create
-aliases for font names, so that for instance,
-<b><tt>/NimbusNo9L-Regu</tt></b> means the same font as
-<b><tt>/Times-Roman</tt></b>.
-
-<hr>
-
-<h2><a name="Free_fonts"></a>Ghostscript's free fonts</h2>
-
-<p>
-Two sets of free fonts are supplied for Ghostscript:
-
-<ul>
-<li>35 commercial-quality Type 1 basic PostScript fonts -- Times,
-Helvetica, Courier, Symbol, etc. -- contributed by URW++ Design and
-Development Incorporated, of Hamburg, Germany
-(<a href="http://www.urwpp.de/">http://www.urwpp.de/</a>). Fontmap names
-them all.
-
-<li>A miscellaneous set including Cyrillic, kana, and fonts derived from
-the free Hershey fonts, with improvements (such as adding accented
-characters) by Thomas Wolff. The Hershey-based fonts are quite different
-from traditional printer or display fonts; you can read about them in more
-detail in the <a href="Hershey.htm">documentation on Hershey fonts</a>.
-
-</ul>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Font packages</font><hr>
-<tr> <td><b>System</b>
- <td>&nbsp;&nbsp;
- <td><b>File name</b>
- <td>&nbsp;&nbsp;
- <td><b>Contents</b>
- <td>&nbsp;&nbsp;
- <td><b>Types</b>
-<tr> <td colspan=7><hr>
-<tr valign=top> <td>Unix
- <td>&nbsp;
- <td><b><tt>gnu-gs-fonts-std-#.##.tar.gz</tt></b>
- <td>&nbsp;
- <td>Basic
- <td>&nbsp;
- <td><b><tt>.afm</tt></b>,
- <b><tt>.pfb</tt></b>,<br><b><tt>.pfm</tt></b> <tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td><b><tt>gnu-gs-fonts-other-#.##.tar.gz</tt></b>
- <td>&nbsp;
- <td>Miscellaneous
- <td>&nbsp;
- <td><b><tt>.afm</tt></b>,
- <b><tt>.gsf</tt></b>,<br><b><tt>.pfa</tt></b>, <b><tt>.pfm</tt></b>
-
-</table>
-</blockquote>
-
-<p>
-"#.##" and "###" are the version number with and without punctuation. The
-fonts are not updated every release, so just use the most recent
-versions.
-Fonts can be found at
-
-<blockquote>
-<a href="ftp://ftp.gnu.org/gnu/ghostscript/"
-class="offsite">ftp://ftp.gnu.org/gnu/ghostscript/</a> (and mirrors)<br>
-</blockquote>
-
-<hr>
-
-<h2><a name="Other_fonts"></a>Other free fonts</h2>
-
-<h3><a name="Computer_Modern"></a>Computer Modern Fontmap</h3>
-
-<p>
-Don Knuth's Computer Modern fonts are popular, free, and widely available.
-A Fontmap appropriate for these fonts is available from:
-
-<blockquote>
-<a
-href="ftp://tug.ctan.org/tex-archive/fonts/cm/ps-type1/contrib/Fontmap.cmr"
-class="offsite">
-ftp://tug.ctan.org/tex-archive/fonts/cm/ps-type1/contrib/Fontmap.cmr</a>
-</blockquote>
-
-<p>
-or from other <a href="New-user.htm#CTAN">CTAN</a> sites.
-
-<h3><a name="Chinese"></a>Free Chinese (Hanzi) fonts</h3>
-
-<p>
-A free PostScript font for Traditional Chinese "KaiSu" in
-<a href="CJK.htm#About_OCF_fonts">OCF</a> format,
-originally provided courtesy of Jackson Technology,
-Ltd., Taiwan under the GPL and now distributed by the Taiwan NeXT User
-Group, is available from:
-
-<blockquote>
-<a
-href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/hanzi/"
-class="offsite">
-ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/hanzi/
-</a>
-</blockquote>
-
-<h3><a name="Japanese"></a>Free Japanese (Kanji) fonts</h3>
-
-<p>
-Mr. Norio Katayama has done some work to make Ghostscript work well with
-Kanji fonts. An easy-to-install Kanji font for Ghostscript, with
-installation instructions, is at
-
-<blockquote>
-<a
-href="http://www.enel.ucalgary.ca/People/far/howto/gs-ttf.html"
-class="offsite">
-http://www.enel.ucalgary.ca/People/far/howto/gs-ttf.html
-</a>
-</blockquote>
-
-<p>
-The same site has patches to make Ghostscript work with Japanese OCF fonts via VFlib,
-with documentation in both English and Japanese:
-
-<blockquote>
-<a
-href="http://www.enel.ucalgary.ca/People/far/howto/gs-vflib.html"
-class="offsite">
-http://www.enel.ucalgary.ca/People/far/howto/gs-vflib.html
-</a>
-</blockquote>
-
-<p>
-Here are some other resources in Japanese relating to VFlib and using
-Ghostscript with Japanese OCF fonts:
-
-<blockquote><dl compact>
-<dt><a href="http://kakugawa.aial.hiroshima-u.ac.jp/~kakugawa/Hacks/"
-class="offsite">http://kakugawa.aial.hiroshima-u.ac.jp/~kakugawa/Hacks/</a>
-<dt><a href="http://itohws03.ee.noda.sut.ac.jp/~matsuda/VFlib-FT/"
-class="offsite">http://itohws03.ee.noda.sut.ac.jp/~matsuda/VFlib-FT/</a>
-<dd>Author &lt;<a href="mailto:matsuda@itohws01.ee.noda.sut.ac.jp">matsuda@itohws01.ee.noda.sut.ac.jp</a>&gt;
-</dl></blockquote>
-
-<h3><a name="Korean"></a>Free Korean (Hangul and Hanja) fonts</h3>
-
-<p>
-Hwan Design Inc. created Hangul TrueType fonts (including Hanja)
-and released under license similar to BSD.
-These fonts can be used as <a href="CJK.htm#About_CID_keyed_fonts">
-CID-keyed font</a> via on-the-fly CIDFontType2 conversion. Refer
-<a href="CJK.htm">CJK.htm</a>
-
-<blockquote>
-<a href="ftp://ftp.mizi.com/pub/baekmuk/"
-class="offsite">
-ftp://ftp.mizi.com/pub/baekmuk/</a>
-</blockquote>
-
-
-<h3><a name="Cyrillic"></a>Free Cyrillic fonts</h3>
-
-<p>
-N. Glonty and A. Samarin created in 1989 a Cyrillic extension of TeX's
-"Computer Modern" fonts, now freely available through the
-<a href="New-user.htm#CTAN">Comprehensive TeX Archive Network</a> (CTAN),
-for instance at
-
-<blockquote>
-<a
-href="ftp://ctan.tug.org/tex-archive/fonts/cyrillic/cmcyr/"
-class="offsite">
-ftp://ctan.tug.org/tex-archive/fonts/cyrillic/cmcyr/
-</a>
-</blockquote>
-
-<hr>
-
-<h3><a name="Partial_Unicode_fonts"></a>(Partial) Unicode fonts</h3>
-
-<p>
-George W. Wilson is distributing some free partial Unicode fonts he created.
-These fonts currently lack Arabic and CJK characters, but they include a
-very large subset of the remaining Unicode set. They are available in both
-Type 1 and TrueType formats. See
-
-<blockquote>
-<a href="http://bibliofile.mc.duke.edu/gww/fonts/Unicode.html"
-class="offsite">http://bibliofile.mc.duke.edu/gww/fonts/Unicode.html</a>
-</blockquote>
-
-<h2><a name="Get_fonts"></a>How Ghostscript gets fonts when it runs</h2>
-
-<p>
-Fonts occupy about 50KB each, so Ghostscript doesn't load them all
-automatically when it runs. Instead, as part of normal initialization
-Ghostscript runs a file <tt><b>gs_fonts.ps</b></tt>, which arranges to load
-fonts on demand using information from the font map. To preload all of the
-known fonts, invoke the procedure
-
-<blockquote><tt><b>
-loadallfonts
-</b></tt></blockquote>
-
-<p>
-The file <tt><b>prfont.ps</b></tt> contains code to print a sample page of
-a font. Load this program by including it in the <tt><b>gs</b></tt>
-command line or by invoking
-
-<blockquote><tt><b>
-(prfont.ps) run
-</b></tt></blockquote>
-
-<p>
-Then to produce a sampler of a particular font XYZ, invoke
-
-<blockquote><tt><b>
-/XYZ DoFont
-</b></tt></blockquote>
-
-<p>For example,
-
-<blockquote><tt><b>
-/Times-Roman DoFont
-</b></tt></blockquote>
-
-<p>
-For more information about how Ghostscript loads fonts during execution,
-see <a href="Use.htm#Font_lookup">here</a>.
-
-<hr>
-
-<h2><a name="Platform_fonts"></a>Platform fonts</h2>
-
-<p>
-Ghostscript displays text on screen using whatever font technology is
-provided by the system on which it runs, by calling the system's API to
-display text. On platforms with X Windows, this is X Windows; on MS
-Windows it may be TrueType or ATM; Ghostscript neither knows nor cares.
-
-<p>
-The PostScript language specifies that fonts are data structures with
-particular contents (for instance, they include a bounding box for the
-font, an Encoding vector to specify the character set, etc.), and it is
-common for PostScript files to use this fact; also, characters can be used
-as clipping regions, and can be arbitrarily algorithmically rotated,
-skewed, expanded or condensed, etc. Most of this information is available
-in some form from the underlying graphics system, but one crucial piece is
-not: the actual scalable outlines of the characters, which Ghostscript
-needs in order to implement both clipping with character shapes and
-arbitrarily transformed characters. Consequently
-
-<blockquote>
-Ghostscript needs the scalable outlines of any font mentioned in a
-document, and loads them from the disk (<tt><b>.pfa</b></tt>,
-<tt><b>.pfb</b></tt>, or <tt><b>.gsf</b></tt>
-file) in the usual way, even if it uses the platform's font machinery to
-display the characters. In other words, Ghostscript must still be able to
-find its font files.
-</blockquote>
-
-<p>
-To make matters worse, platforms use different names for their standard
-fonts. For example, the Times Roman font, for which PostScript files use
-the name "<b><tt>Times-Roman</tt></b>", may be known as
-"<b><tt>Times-Roman</tt></b>", "<b><tt>Times&nbsp;Roman</tt></b>",
-"<b><tt>Tms&nbsp;Rmn</tt></b>",
-"<b><tt>Times&nbsp;New&nbsp;Roman</tt></b>", or
-"<b><tt>TimesNewRoman</tt></b>". The name may even be completely
-different: the usual Helvetica-equivalent TrueType font is called
-"<b><tt>Arial</tt></b>". It is possible to deal with this situation by
-introducing aliases in Fontmap, but there are two reasons why Ghostscript
-does not currently do this:
-
-<ol>
-<li>Methods of naming in different systems are so unstandardized that there
-seems to be no small set of alternative names likely to cover most
-situations. All five of the names above for Times Roman have been seen
-under Windows and OS/2, depending on the version of the system, whether it
-uses TrueType or ATM, and other unknown factors.
-
-<li>Each alias takes up space at run time. If each of the standard fonts
-has three additional aliases, this might amount to 50KB of wasted space,
-which may be a lot on some smaller systems.
-</ol>
-
-<p>
-If you don't seem to be getting nice characters on the screen under MS
-Windows, you can try adding aliases to Fontmap, according to the
-documentation you'll find in there.
-
-<hr>
-
-<h2><a name="Add_fonts"></a>Adding your own fonts</h2>
-
-<p>
-Ghostscript can use any Type 0, 1, 3, 4, or 42 font acceptable to
-other PostScript language interpreters or to ATM, including MultiMaster
-fonts. Beginning with release 4.0, Ghostscript can also use TrueType fonts
-if it was compiled with the "ttfont" option.
-
-<p>
-To add fonts of your own, you must edit Fontmap to include at the end an
-entry for your new font; the format for entries is documented
-in Fontmap itself. Since later entries in Fontmap override earlier
-entries, a font you add at the end supersedes any corresponding fonts supplied
-with Ghostscript and defined earlier in the file.
-In the PC world, Type 1 fonts are customarily given names ending in
-<tt><b>.PFA</b></tt> or <tt><b>.PFB</b></tt>. Ghostscript can use these
-directly: you just need to make the entry in Fontmap.
-To add CID-keyed fonts, refer <a href="CJK.htm">CJK.htm</a>.
-
-<p>
-If you want to use with Ghostscript a commercial fonts
-(fonts sold as individual package,
- Type 1 and CID fonts bundled to Adobe products,
- TrueType fonts bundled to Microsoft Windows and Apple Macintosh, etc),
-please read carefully the license that accompanies the font to
-satisfy yourself that you may do so legally.
-
-The license of bundled fonts are usually quite varied:
-browsing-only, printable, and embeddable.
-The license of the system and the license of fonts on
-the system must be descriminated.
-Even if you have officially licensed system,
-it does not mean you can use bundled fonts as you want.
-In addition to, TrueType and OpenType format have internal
-flags to restrict embedding, but, unfortunately,
-sometimes they does not reflect the license
-correctly.
-You have to check the license of EACH fonts which you want to
-use with Ghostscript.
-
-We take no responsibility for any possible violations of such licenses.
-
-
-<h3><a name="Convert_BDF"></a>Converting BDF fonts</h3>
-
-<p>
-Ghostscript provides a way to construct a (low-quality) Type 1 font from a
-bitmap font in the BDF format popular in the Unix world. The shell script
-<tt><b>bdftops</b></tt> (Unix) or the command file
-<tt><b>bdftops.bat</b></tt> (DOS) converts a BDF file to a
-scalable outline using <tt><b>bdftops.ps</b></tt> . Run the
-shell command
-
-<blockquote><tt><b>
-bdftops&nbsp;BDF_filename&nbsp;[AFM_file1_name&nbsp;...]&nbsp;gsf_filename&nbsp;fontname<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UniqueID&nbsp;[XUID]&nbsp;[encodingname]
-</b></tt></blockquote>
-
-<p>
-The arguments have these meanings:
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><tt><b>BDF_filename</b></tt>
- <td>&nbsp;&nbsp;
- <td>Input bitmap file in BDF format
- <td>&nbsp;&nbsp;
- <td>&nbsp;
-<tr valign=top> <td><tt><b>AFM_file1_name</b></tt>
- <td>&nbsp;
- <td>AFM files giving metrics
- <td>&nbsp;
- <td>(Optional)
-<tr valign=top> <td><tt><b>gsf_filename</b></tt>
- <td>&nbsp;
- <td>Output file
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td><tt><b>fontname</b></tt>
- <td>&nbsp;
- <td>Name of the font
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td><tt><b>UniqueID</b></tt>
- <td>&nbsp;
- <td>UniqueID (<a href="#Unique_IDs">as described below</a>)
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td><tt><b>XUID</b></tt>
- <td>&nbsp;
- <td>XUID, in the form <tt><b>n1.n2.n3...</b></tt> (<a href="#Unique_IDs">as described below</a>)
- <td>&nbsp;
- <td>(Optional)
-<tr valign=top> <td><tt><b>encodingname</b></tt>
- <td>&nbsp;
- <td>"StandardEncoding" (the default), "ISOLatin1Encoding",<br>"SymbolEncoding", "DingbatsEncoding"
- <td>&nbsp;
- <td>(Optional)
-</table></blockquote>
-
-<p>
-For instance
-
-<blockquote><tt><b>
-bdftops&nbsp;pzdr.bdf&nbsp;ZapfDingbats.afm&nbsp;pzdr.gsf&nbsp;ZapfDingbats&nbsp;4100000&nbsp;1000000.1.41
-</b></tt></blockquote>
-
-<p>
-Then make an entry in Fontmap for the <tt><b>.gsf</b></tt>
-file (<tt><b>pzdr.gsf</b></tt> in the example) as
-<a href="#Add_fonts">described above</a>.
-
-<hr>
-
-<h2><a name="For_developers"></a>For developers only</h2>
-
-<p>
-The rest of this document is very unlikely to be of value to ordinary
-users.
-
-<h3><a name="Font_contents"></a>Contents of fonts</h3>
-
-<p>
-As noted above, Ghostscript accepts fonts in the same formats as PostScript
-interpreters. Type 0, 1, and 3 fonts are documented in the PostScript
-Language Reference Manual (Second Edition); detailed documentation for Type
-1 fonts appears in a separate Adobe book. Type 2 (compressed format) fonts
-are documented in separate Adobe publications. Type 4 fonts are not
-documented anywhere; they are essentially Type 1 fonts with a BuildChar or
-BuildGlyph procedure. Types 9, 10, and 11 (CIDFontType 0, 1, and 2) and
-Type 32 (downloaded bitmap) fonts are documented in Adobe supplements.
-Type 42 (encapsulated TrueType) fonts are documented in an Adobe
-supplement; the TrueType format is documented in publications available
-from Apple and Microsoft. Ghostscript does not support Type 14 (Chameleon)
-fonts, which use a proprietary Adobe format.
-
-<h3><a name="Precompiling"></a>Precompiling fonts</h3>
-
-<p>
-You can precompile -- convert -- any Type 1 font into C, then compile and
-build it into the Ghostscript executable. (Type 1 fonts include any font
-whose name ends with <tt><b>.pfa</b></tt> or
-<tt><b>.pfb</b></tt>, and it also includes all the
-Ghostscript <tt><b>.gsf</b></tt> fonts except the Hershey
-fonts.) This has no effect on rendering speed, but it eliminates the time
-to load the font dynamically, which may make a big improvement in total
-rendering time, especially for multi-page documents. It also reduces the
-number of auxiliary files required at run time. Fonts precompiled and
-built into Ghostscript this way need not appear in Fontmap, although if
-they do appear there, no harm is done.
-
-<p><a name="font2c"></a> The utility for precompiling fonts is named
-<tt><b>font2c</b></tt>. Note that since
-<tt><b>font2c</b></tt> uses the PostScript language program
-<tt><b>font2c.ps</b></tt>, Ghostscript must already be
-available to run it, and Fontmap must contain entries for the fonts you
-want to compile. For example, to precompile the Times-Italic font,
-
-<blockquote><tt><b>
-font2c Times-Italic ptmri.c
-</b></tt></blockquote>
-
-<p>
-The first argument ("<b><tt>Times-Italic</tt></b>" above) is the font's
-name and the second ("<b><tt>ptmri.c</tt></b>") is the name of the
-resulting C file. You can use any file name you want, as long as it ends
-in "<tt><b>.c</b></tt>". It needn't be limited to eight characters unless
-your operating system requires this. If "<b><tt>XYZ.gsf</tt></b>" or
-"<b><tt>XYZ.pfa</tt></b>" is the font file's name in Fontmap,
-"<b><tt>XYZ.c</tt></b>" is a good choice for the C file.
-
-<p>
-Under VMS, or other systems whose the C compilers limit the length of
-identifiers, you must do something slightly more complicated; for that see
-the section on <a href="#Short_identifiers">short identifiers in C</a>. On
-VMS also, you must quote the font name ("{font name}") to preserve the
-name's mixed upper and lower case. For VMS environments in general see
-<a href="Make.htm#VMS">the VMS directions</a> in the documentation on
-building Ghostscript, and ignore the rest of this section.
-
-<p>
-Note that fonts are not supplied with Ghostscript in precompiled form, since
-those files are quite large and can easily be recreated using <a
-href="#font2c"><tt><b>font2c</b></tt></a>. There is a makefile target to
-run <tt><b>font2c</b></tt> on all the fonts supplied with Ghostscript.
-Invoke it with
-
-<blockquote><b><tt>
-make fonts_standard_c
-</tt></b></blockquote>
-
-<p>Besides running <tt><b>font2c</b></tt>, you must compile the fonts and
-link them into the executable. To do this, add the compiled fonts feature
-to your platform-specific makefile. See the
-<a href="Make.htm#Makefile_overview">overview of makefiles</a> in the
-documentation on building Ghostscript for the list of makefiles for each
-platform. Find the definition of the <tt><b>FEATURE_DEVS</b></tt> macro in
-the makefile, which looks something like this:
-
-<blockquote><tt><b>
-FEATURE_DEVS=$(PSD)psl3.dev&nbsp;$(PSD)pdf.dev&nbsp;$(PSD)dpsnext.dev&nbsp;$(PSD)pipe.dev
-</b></tt></blockquote>
-
-<p>
-and add "ccfonts.dev":
-
-<blockquote><tt><b>
-FEATURE_DEVS=$(PSD)psl3.dev&nbsp;$(PSD)pdf.dev&nbsp;$(PSD)dpsnext.dev&nbsp;$(PSD)pipe.dev&nbsp;$(PSD)ccfonts.dev
-</b></tt></blockquote>
-
-<p>
-Next you must add the specific fonts to <tt><b>int.mak</b></tt>, the
-platform-independent makefile for the interpreter. This makefile already
-has rules for the standard fonts supplied with Ghostscript, so if you just
-want to compile the standard fonts, you needn't do anything else. Now we
-describe how to compile other fonts into the executable, such as the Utopia
-or Kana fonts, or your own fonts.
-
-<p>
-Suppose you want to compile the Kana fonts into the executable. First pick
-one of <b><tt>ccfonts10</tt></b> through <b><tt>ccfonts15</tt></b> as the
-place you will do this, say <b><tt>ccfonts10</tt></b>. Add your compiled
-font file names, for instance
-
-<blockquote><tt><b>
-ccfonts10_=$(CFOBJ)fhirw.$(OBJ)
-</b></tt></blockquote>
-
-<p>
-(Note the underscore "_".) If this makes the line too long, use another
-line of the same form, for instance,
-
-<blockquote><tt><b>
-ccfonts11_=$(CFOBJ)fkarw.$(OBJ)
-</b></tt></blockquote>
-
-<p>
-Just below the <b><tt>ccfonts10_=</tt></b> line is a line
-
-<blockquote><tt><b>
-ccfonts10=
-</b></tt></blockquote>
-
-<p>
-(Note no underscore.) Add your own fonts to the end of this line, replacing
-dashes ("-") with underscores ("_") in the font names. For instance:
-
-<blockquote><tt><b>
-ccfonts10=Calligraphic_Hiragana
-</b></tt></blockquote>
-
-<p>
-Again, if a line becomes too long, add another line of the same form, for
-instance,
-
-<blockquote><tt><b>
-ccfonts10=Calligraphic_Hiragana<br>
-ccfonts11=Calligraphic_Katakana
-</b></tt></blockquote>
-
-<p>
-After all the lines of this form, add a pair of lines to compile each font,
-separating these entries from the "ccfonts*" lines and from each other with
-a blank line. In our example this becomes
-
-<blockquote>
-<pre>$(CFOBJ)fhirw.$(OBJ): $(CFGEN)fhirw.c $(CCFONT)
- $(CFCC) $(CFO_)fhirw.$(OBJ) $(C_) $(CFGEN)fhirw.c
-
-$(CFOBJ)fkarw.$(OBJ): $(CFGEN)fkarw.c $(CCFONT)
- $(CFCC) $(CFO_)fkarw.$(OBJ) $(C_) $(CFGEN)fkarw.c
-</pre></blockquote>
-
-<p>
-Finally, run <tt><b>make</b></tt> to build an executable that includes the
-fonts you added. They are present in <b><tt>FontDirectory</tt></b> when
-Ghostscript starts up.
-
-<h3><a name="Short_identifiers"></a>Precompiling fonts on platforms with identifier length limits</h3>
-
-<p>
-On some platforms the C compiler or linker limits the number of significant
-characters usable in an identifier. On such platforms, you must do a
-little extra work.
-
-<p>
-Let <em><b>N</b></em> be the maximum number of significant characters in an
-identifier (typically 31). For each font whose name is longer than
-<em><b>N</b></em>-5 characters, pick an arbitrary identifier that we will
-call the "short name". This can be any string you want, as long as it
-contains only letters, digits, and underscores; is no longer than
-<em><b>N</b></em>-5 characters; and is different from all other font names
-and short names. A good choice for this is the name of the C file. There
-is no harm in doing this for fonts with names shorter than
-<em><b>N</b></em>-5 characters, but it's unnecessary.
-
-<p>
-You must do two different things for fonts that require a short name.
-
-<ol>
-<li>You must supply the short name as a third argument to
-<tt><b>font2c</b></tt>. For example, to compile
-<b><tt>NewCenturySchlbk-BoldItalic</tt></b> using the short name
-<b><tt>pncbi</tt></b>,
-
-<blockquote><tt><b>
-font2c&nbsp;NewCenturySchlbk-BoldItalic&nbsp;pncbi.c&nbsp;pncbi
-</b></tt></blockquote>
-
-<li>
-Then when you add the font name to the definition of one of the ccfonts*
-macros in the makefile, use the short name, not the actual font name, for
-instance,
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td>Use
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td><tt><b>ccfonts12=pncbi</b></tt>
-<tr> <td>Rather than
- <td>&nbsp;
- <td><tt><b>ccfonts12=NewCenturySchlbk_BoldItalic</b></tt>
-</table></blockquote>
-</ol>
-
-<p>
-Everything else is as described above. This procedure doesn't change the
-name of the font in Fontmap or as seen from within Ghostscript; it just
-works around a limitation of some older compilers.
-
-<hr>
-
-<h3><a name="Unique_IDs"></a>Font names and unique IDs</h3>
-
-<p>
-If you create your own fonts and will use them only within your own
-organization, you should use <tt><b>UniqueID</b></tt> values between
-4000000 and 4999999, coded like this (see the <a href="#Codes">tables of
-codes</a> for font file names below):
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Coding of UniqueID "<tt><b>4TTWVE0</b></tt>"</font><hr>
-<tr> <td><tt><b>TT</b></tt>
- <td>&nbsp;&nbsp;
- <td><a href="#Typeface">Typeface</a>
- <td>&nbsp;&nbsp;
- <td>two-digit identifier
-<tr> <td><tt><b>W</b></tt>
- <td>&nbsp;
- <td><a href="#Weight">Weight</a>
- <td>&nbsp;
- <td>normal, bold, etc.
-<tr> <td><tt><b>V</b></tt>
- <td>&nbsp;
- <td><a href="#Variant">Variant</a>
- <td>&nbsp;
- <td>normal, italic, etc.
-<tr> <td><tt><b>E</b></tt>
- <td>&nbsp;
- <td><a href="#Expansion">Expansion</a>
- <td>&nbsp;
- <td>normal, condensed, etc.
-</table></blockquote>
-
-<p>
-This scheme will not work forever: as soon there are more than 99
-typefaces, or more than 9 weights or variants, we will have to do something
-else. But it suffices for the near future.
-
-<p>
-If you plan to distribute fonts, ask Adobe to assign you some UniqueIDs and
-also an <tt><b>XUID</b></tt> for your organization. Contact
-
-<blockquote><address>
-Unique ID Coordinator<br>
-Adobe Developers Association<br>
-Adobe Systems, Inc.<br>
-345 Park Avenue<br>
-San Jose, CA 95110-2704<br>
-+1-408-536-9000 telephone (ADA)<br>
-+1-408-536-6883 fax<br>
-<a href="mailto:fontdev-person@adobe.com">fontdev-person@adobe.com</a><br>
-</address></blockquote>
-
-<p>
-The XUID is a Level 2 PostScript feature that serves the same function as
-the UniqueID, but is not limited to a single 24-bit integer. The
-<tt><b>bdftops</b></tt> program creates XUIDs of the form
-"<tt><b>[-X-&nbsp;0&nbsp;-U-]</b></tt>" where "<tt><b>-X-</b></tt>" is the
-organization XUID and "<tt><b>-U-</b></tt>" is the UniqueID. (Aladdin
-Enterprises' organization XUID, which appears in a few places in various
-font-related files distributed with Ghostscript, is 107; do not use this for
-your own fonts that you distribute.)
-
-<p>
-Because Ghostscript runs on many different systems, including DOS, the
-names of font files can be no longer than 8 characters. We therefore
-construct a font's filename <tt><b>FTTWVVVE.gsf</b></tt>
-similarly to the construction for temporary UniqueIDs.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Coding of font file name "<tt><b>FTTWVVVE.gsf</b></tt>"</font><hr>
-<tr> <td><tt><b>F</b></tt>
- <td>&nbsp;&nbsp;
- <td><a href="#Foundries">Foundry</a>
- <td>&nbsp;&nbsp;
- <td>&nbsp;
-<tr> <td><tt><b>TT</b></tt>
- <td>&nbsp;
- <td><a href="#Typeface">Typeface</a>
- <td>&nbsp;
- <td>two-digit identifier
-<tr> <td><tt><b>W</b></tt>
- <td>&nbsp;
- <td><a href="#Weight">Weight</a>
- <td>&nbsp;
- <td>normal, bold, etc.
-<tr> <td><tt><b>V</b></tt>
- <td>&nbsp;
- <td><a href="#Variant">Variant</a>
- <td>&nbsp;
- <td>normal, italic, etc.
-<tr> <td><tt><b>E</b></tt>
- <td>&nbsp;
- <td><a href="#Expansion">Expansion</a>
- <td>&nbsp;
- <td>normal, condensed, etc.
-</table></blockquote>
-
-<p>
-Since a font can have multiple variants (for example, Lucida Regular Sans
-Typewriter Italic) we allocate three letters to that; if a font has four
-variants, you're on your own. If a font does have multiple variants, it's
-best to add the expansion letter "<b><tt>r</tt></b>" to make clear which
-letters are variants and which the expansion. This scheme is very close to
-the one proposed in "Filenames for fonts", published in the first 1990
-issue of <em>TUGboat</em> (the journal of the TeX Users Group).
-
-<h3><a name="Codes"></a>Codes used to make font file names</h3>
-
-<p>
-In the following tables we make no attempt to be exhaustive: instead we
-have simply allocated entries for those things that we needed for the fonts
-that we are actually distributing.
-
-<p>
-<a name="Foundries"></a>
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Font foundry codes</font><hr>
-<tr> <th>ID
- <th>&nbsp;&nbsp;
- <th align=left>Foundry
-<tr> <td colspan=3><hr>
-<tr> <td><tt><b>b</b></tt>
- <td>&nbsp;&nbsp;
- <td>Bitstream
-<tr> <td><tt><b>f</b></tt>
- <td>&nbsp;
- <td>Freely distributable and public-domain
-<tr> <td><tt><b>hr</b></tt>
- <td>&nbsp;
- <td>Hershey
-<tr> <td><tt><b>n</b></tt>
- <td>&nbsp;
- <td>IBM
-<tr> <td><tt><b>p</b></tt>
- <td>&nbsp;
- <td>Adobe ("p" for PostScript)
-<tr> <td><tt><b>u</b></tt>
- <td>&nbsp;
- <td>URW[++]
-</table></blockquote>
-
-<p>
-<a name="Typeface"></a>
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Typeface codes</font><hr>
-<tr valign=bottom> <th>ID
- <td>&nbsp;&nbsp;
- <th align=left>Name
- <td>&nbsp;&nbsp;
- <th align=left>Filename<br>prefix
- <td>&nbsp;&nbsp;
- <th align=left>Source
-<tr> <td colspan=7><hr>
-<tr> <td><tt><b>08</b></tt>
- <td>&nbsp;
- <td>Avant Garde
- <td>&nbsp;
- <td><tt><b>pag</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>11</b></tt>
- <td>&nbsp;
- <td>Bookman
- <td>&nbsp;
- <td><tt><b>pbk</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>01</b></tt>
- <td>&nbsp;
- <td>CharterBT
- <td>&nbsp;
- <td><tt><b>bch</b></tt>
- <td>&nbsp;
- <td>Bitstream
-<tr> <td><tt><b>02</b></tt>
- <td>&nbsp;
- <td>Courier
- <td>&nbsp;
- <td><tt><b>ncr</b></tt>
- <td>&nbsp;
- <td>IBM
-<tr> <td><tt><b>03</b></tt>
- <td>&nbsp;
- <td>Helvetica
- <td>&nbsp;
- <td><tt><b>phv</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>04</b></tt>
- <td>&nbsp;
- <td>New Century Schoolbook
- <td>&nbsp;
- <td><tt><b>pnc</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>09</b></tt>
- <td>&nbsp;
- <td>Palatino
- <td>&nbsp;
- <td><tt><b>ppl</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>05</b></tt>
- <td>&nbsp;
- <td>Symbol
- <td>&nbsp;
- <td><tt><b>psy</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>06</b></tt>
- <td>&nbsp;
- <td>Times
- <td>&nbsp;
- <td><tt><b>ptm</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td>--
- <td>&nbsp;
- <td>Utopia
- <td>&nbsp;
- <td><tt><b>put</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>07</b></tt>
- <td>&nbsp;
- <td>Zapf Chancery
- <td>&nbsp;
- <td><tt><b>zc</b></tt>
- <td>&nbsp;
- <td>public domain
-<tr> <td><tt><b>10</b></tt>
- <td>&nbsp;
- <td>Zapf Dingbats
- <td>&nbsp;
- <td><tt><b>pzd</b></tt>
- <td>&nbsp;
- <td>Adobe
-<tr> <td><tt><b>12</b></tt>
- <td>&nbsp;
- <td>public domain Cyrillic
- <td>&nbsp;
- <td><tt><b>fcy</b></tt>
- <td>&nbsp;
- <td>public domain
-<tr> <td><tt><b>13</b></tt>
- <td>&nbsp;
- <td>Kevin Hartig Hiragana
- <td>&nbsp;
- <td><tt><b>fhi</b></tt>
- <td>&nbsp;
- <td>shareware
-<tr> <td><tt><b>14</b></tt>
- <td>&nbsp;
- <td>Kevin Hartig Katakana
- <td>&nbsp;
- <td><tt><b>fka</b></tt>
- <td>&nbsp;
- <td>shareware
-<tr> <td><tt><b>90</b></tt>
- <td>&nbsp;
- <td>Hershey Gothic English
- <td>&nbsp;
- <td><tt><b>hrge</b></tt>
- <td>&nbsp;
- <td>freeware
-<tr> <td><tt><b>91</b></tt>
- <td>&nbsp;
- <td>Hershey Gothic Italian
- <td>&nbsp;
- <td><tt><b>hrit</b></tt>
- <td>&nbsp;
- <td>freeware
-<tr> <td><tt><b>92</b></tt>
- <td>&nbsp;
- <td>Hershey Gothic German
- <td>&nbsp;
- <td><tt><b>hrgr</b></tt>
- <td>&nbsp;
- <td>freeware
-<tr> <td><tt><b>93</b></tt>
- <td>&nbsp;
- <td>Hershey Greek
- <td>&nbsp;
- <td><tt><b>hrgk</b></tt>
- <td>&nbsp;
- <td>freeware
-<tr> <td><tt><b>94</b></tt>
- <td>&nbsp;
- <td>Hershey Plain
- <td>&nbsp;
- <td><tt><b>hrpl</b></tt>
- <td>&nbsp;
- <td>freeware
-<tr> <td><tt><b>95</b></tt>
- <td>&nbsp;
- <td>Hershey Script
- <td>&nbsp;
- <td><tt><b>hrsc</b></tt>
- <td>&nbsp;
- <td>freeware
-<tr> <td><tt><b>96</b></tt>
- <td>&nbsp;
- <td>Hershey Symbol
- <td>&nbsp;
- <td><tt><b>hrsy</b></tt>
- <td>&nbsp;
- <td>freeware
-</table></blockquote>
-
-<p>
-<a name="Weight"></a>
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Font weight codes</font><hr>
-<tr> <th>ID
- <td>&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;
- <th align=left>Filename
-<tr> <td colspan=5><hr>
-<tr> <td><tt><b>0</b></tt>
- <td>&nbsp;&nbsp;
- <td>normal
- <td>&nbsp;&nbsp;
- <td><tt><b>r</b></tt>
-<tr> <td><tt><b>1</b></tt>
- <td>&nbsp;
- <td>bold
- <td>&nbsp;
- <td><tt><b>b</b></tt>
-<tr> <td><tt><b>2</b></tt>
- <td>&nbsp;
- <td>book
- <td>&nbsp;
- <td><tt><b>k</b></tt>
-<tr> <td><tt><b>3</b></tt>
- <td>&nbsp;
- <td>demi
- <td>&nbsp;
- <td><tt><b>d</b></tt>
-<tr> <td><tt><b>4</b></tt>
- <td>&nbsp;
- <td>light
- <td>&nbsp;
- <td><tt><b>l</b></tt>
-<tr> <td>&nbsp;
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1"><a name="Variant"></a>Font variants</font><hr>
-<tr> <th>ID
- <td>&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;
- <th align=left>Filename
-<tr> <td colspan=5><hr>
-<tr> <td><tt><b>0</b></tt>
- <td>&nbsp;&nbsp;
- <td>normal
- <td>&nbsp;&nbsp;
- <td><tt><b>r</b></tt> (omitted when weight is normal)
-<tr> <td><tt><b>1</b></tt>
- <td>&nbsp;
- <td>italic
- <td>&nbsp;
- <td><tt><b>i</b></tt>
-<tr> <td><tt><b>2</b></tt>
- <td>&nbsp;
- <td>oblique
- <td>&nbsp;
- <td><tt><b>o</b></tt>
-<tr valign=top> <td><tt><b>3</b></tt>
- <td>&nbsp;
- <td>script, handwritten, swash
- <td>&nbsp;
- <td><tt><b>w</b></tt>
-<tr> <td>&nbsp;
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1"><a name="Expansion"></a>Expansion</font><hr>
-<tr> <th>ID
- <td>&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;
- <th align=left>Filename
-<tr> <td colspan=5><hr>
-<tr> <td><tt><b>0</b></tt>
- <td>&nbsp;&nbsp;
- <td>normal
- <td>&nbsp;&nbsp;
- <td><tt><b>r</b></tt> (omitted when weight and variant are normal)
-<tr> <td><tt><b>1</b></tt>
- <td>&nbsp;
- <td>narrow
- <td>&nbsp;
- <td><tt><b>n</b></tt>
-</table></blockquote>
-
-<hr>
-
-<h2><a name="Use_gs_fonts_with_X"></a>Using Ghostscript fonts on X Windows displays</h2>
-
-<p>
-The standard X11 distribution can display various kinds of fonts, including
-the Adobe Type 1 format, so font files distributed with Ghostscript can be
-used on X Windows displays. Beginning with Ghostscript version 6.0, the
-font archive contains the directory files needed to map Ghostscript's font
-files to XLFDs. Those files are named "<b><tt>fonts.dir</tt></b>" and
-"<b><tt>fonts.scale</tt></b>". There are two main methods to configure
-your display to use these files.
-
-<ul>
-<li><a href="#Using_xset">With <b><tt>xset</tt></b></a> any user can add a
-new directory to the font search path for the duration of a session.
-<li>An administrator with root access can <a
-href="#Font_permanent_installation">add the Ghostscript font directory
-permanently</a> to the <a href="#X_font_catalog">X font server's
-catalog</a> or to an <a href="#Xfree86_fontpath">X display server's list of
-directories</a>.
-</ul>
-
-<h3><a name="Using_xset"></a>Using <b><tt>xset</tt></b></h3>
-
-<p>
-Users without root access can add the Ghostscript font directories to the
-font search path using <b><tt>xset</tt></b>. Such a setting is transient
-and must be repeated each time the display server is reset or restarted,
-typically at login, so the call to <b><tt>xset</tt></b> should be added to
-the user's "<b><tt>.xsession</tt></b>" or "<b><tt>.xinitrc</tt></b>"
-startup script to make the fonts available at each login.
-
-<p>
-To add a new font directory, invoke <b><tt>xset</tt></b> like this:
-
-<blockquote>
-<b><tt>xset fp+</tt> <em>{directory}</em></b>
-</blockquote>
-
-<p>
-where <b><em>{directory}</em></b> is the full pathname to the directory
-containing the fonts on the host running the X display server. For common
-Ghostscript installations the path is
-
-<blockquote>
-<b><tt>/usr/local/Ghostscript/share/fonts</tt></b>
-</blockquote>
-
-<h3><a name="Font_permanent_installation"></a>Permanent installation</h3>
-
-<p> A system administrator, or anyone with the necessary root privilege,
-can make Ghostscript's fonts permanently available to the managed X display
-servers. This setup depends on the servers and the methods used
-to make the fonts available.
-
-<h4><a name="Configure_xfs"></a>Configuring the <b><tt>xfs</tt></b> font server</h4>
-
-<p>
-An X display server can obtain its font resources from a dedicated X font
-server. <b><tt>xfs</tt></b> is a prototype font server included in the X
-Consortium X11 distribution. It is configured with a file located in a
-directory whose exact location is installation-dependent and could be any
-of
-
-<blockquote><b><tt>
-/usr/lib/X11/fs/config
-<br>/usr/X11/lib/X11/fs/config
-<br>/usr/X11R6/lib/X11/fs/config
-</tt></b></blockquote>
-
-<p>
-or some similar name. You can also use <b><tt>xfs</tt></b>'s
-"<b><tt>-config</tt></b>" command-line option to specify the location of
-the configuration file.
-
-<p><a name="X_font_catalog"></a>
-The configuration file designates a list ("catalog") of directories, each
-of which contains fonts and a font mapping database (the file
-"<b><tt>fonts.dir</tt></b>"). This list is specified with the
-"<b><tt>catalogue=</tt></b>" keyword followed by a list of absolute
-directory paths separated by commas. To add the Ghostscript directory,
-include its full name in the catalog list, for example:
-
-<blockquote><b><tt>
-catalogue&nbsp;=&nbsp;/usr/local/share/Ghostscript/fonts/,
-<br>/usr/X11R6/lib/X11/fonts/misc/,
-<br>/usr/X11R6/lib/X11/fonts/Speedo/,
-<br>/usr/X11R6/lib/X11/fonts/Type1/,
-<br>/usr/X11R6/lib/X11/fonts/75dpi/,
-<br>/usr/X11R6/lib/X11/fonts/100dpi/
-</tt></b></blockquote>
-
-<p>
-The fonts are searched in the order the directories are specified, so an
-XLFD mapped by the Ghostscript directory could shadow a previous similar
-description specified in the following directories. Once the file is
-modified, instruct the font server to reload the configuration file by
-sending it the USR1 signal:
-
-<blockquote>
-<b><tt>kill -HUP</tt> <em>{pid}</em></b>
-</blockquote>
-
-<p>
-where <b><em>{pid}</em></b> is the font server process's numeric process
-ID, as obtained with the "<b><tt>ps</tt></b>" command. Be sure to check
-that the server is still alive after signaling it: it is very picky and
-could decide to shut itself down if something is wrong in the new
-configuration. If this happens, restart the server by hand and try to
-figure out from its output what's happening. If the font server dies,
-display servers using it will experience problems, so be sure to send the
-signal from the console or from a display not using that font server!
-
-<h4><a name="Configure_Xfree86"></a>Xfree86 display servers</h4>
-
-<p><a name="Xfree86_fontpath"></a>
-With the family of Xfree86 display servers, adding a new font directory
-permanently requires editing the "<b><tt>/etc/XF86Config</tt></b>" setup
-file to add a new "<b><tt>FontPath</tt></b>" to the "<b><tt>Files</tt></b>"
-section:
-
-<blockquote>
-<b><tt>Section "Files"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RgbPath&nbsp;&nbsp;&nbsp;&nbsp;"/usr/X11R6/lib/X11/rgb"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FontPath&nbsp;&nbsp;&nbsp;"/usr/local/share/Ghostscript/fonts"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FontPath&nbsp;&nbsp;&nbsp;"/usr/X11R6/lib/X11/fonts/misc:unscaled"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FontPath&nbsp;&nbsp;&nbsp;"/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FontPath&nbsp;&nbsp;&nbsp;"/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FontPath&nbsp;&nbsp;&nbsp;"/usr/X11R6/lib/X11/fonts/Type1"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FontPath&nbsp;&nbsp;&nbsp;"/usr/X11R6/lib/X11/fonts/Speedo"
-<br>EndSection</tt></b>
-</blockquote>
-
-<p>
-The fonts are searched in the order the directories are specified, so an
-XLFD mapped by the Ghostscript directory could shadow a previous similar
-description specified in the following directories. Once this global
-configuration is edited, the new fonts become available to all Xfree86
-servers in use on that host. If a server is running, it must be restarted
-to take effect: just quit the current session in the usual way. If the
-server is under the control of <b><tt>xdm</tt></b>, you may have to kill
-it, because it is usually reset only between successive sessions.
-
-<p>
-This section by Bertrand Petit
-&lt;<a href="mailto:eegs@phoe.frmug.org">eegs@phoe.frmug.org</a>&gt;
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998, 1999, 2000 Aladdin
-Enterprises. All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Helpers.htm b/Master/xemtex/doc/ghostscript/Helpers.htm
deleted file mode 100644
index 993388cfbde..00000000000
--- a/Master/xemtex/doc/ghostscript/Helpers.htm
+++ /dev/null
@@ -1,303 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>People who have helped with Ghostscript</title>
-<!-- $Id: Helpers.htm,v 1.17.2.11.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: helpers.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>People who have helped with Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-Many people have contributed to the development of Ghostscript. In the
-<a href="New-user.htm#Acknowledgments">new-user documentation</a> we give special thanks to a few major contributors; here
-we wish to acknowledge and thank the following other people (in
-alphabetical order) who have contributed substantially to improving
-Ghostscript since its inception in 1986:
-
-<blockquote>
-<dl>
-<dt>Hitoshi Aida
- <dd>for help with the SunView driver
-<dt>Pierre Arnaud
- <dd>for bug reports and fixes
-<dt>Juan Manuel Acosta
- <dd>for LN03+ driver and fixes of arc and circle rendering on SunOS
-<dt>William Bader
- <dd>for several drivers and bug reports
-<dt>Alan Barclay
- <dd>for the RGB TIFF drivers
-<dt>Nelson H. F. Beebe
- <dd>for testing on a wide variety of Unix architectures, and for
- the multi-architecture makefile
-<dt>Karl Berry and Kathy Hargreaves
- <dd>for helping create the fonts originally distributed with
- Ghostscript
-<dt>James W. Birdsall
- <dd>for the IBM ProPrinter driver
-<dt>Andrew Birrell
- <dd>for a challenging application
-<dt>Jan Bottorff
- <dd>for help with the Microsoft Windows driver
-<dt>Tom Brosnan
- <dd>for the Desqview/X port
-<dt>Philip Brown
- <dd>for the LaserJet IIID duplex additions
-<dt>Tobias Burnus
- <dd>for many challenging bug reports
-<dt>George Cameron
- <dd>for DeskJet 500C and 550C drivers
-<dt>Maurice Castro
- <dd>a collaborator of Russell Lang's
-<dt>Jeff Chua
- <dd>for the idea and first implementation of
- <b><tt>ReopenPerPage</tt></b>
-<dt>Phil Conrad
- <dd>for originating the PPM utilities and the PCX and GIF drivers,
- and lots of bug reports
-<dt>Michel Dagenais
- <dd>for major help with the DeskJet driver
-<dt>John Desrosiers
- <dd>for the final work on the Microsoft Visual C++ makefiles,
- and for enhancements to the memory manager
-<dt>Jim Dunham
- <dd>for the OpenVMS makefile
-<dt>Gershon Elber
- <dd>for improvements to the BGI driver
-<dt>Fritz Elfert
- <dd>for the Unix file enumeration routine
-<dt>George Ferguson
- <dd>for some added man pages
-<dt>Mike Ferrara
- <dd>for help with the LaserJet driver and HP-UX
-<dt>Andy Fyfe
- <dd>for the BJ200 driver modifications to the BJ10e driver, and for
- the 3B1 driver
-<dt>Tim Gallivan
- <dd>for a port to the Atari ST
-<dt>J. Greely
- <dd>for help with the PostScript-to-ASCII filter
-<dt>Gintautas Grigelionis
- <dd>for a set of XBM/XPM icons
-<dt>Paul Haeberli
- <dd>for the ideas behind better color selection and trapezoid fill
- algorithms
-<dt>Karl Hakimian
- <dd>for the Tek 4693d drivers
-<dt>Richard Hesketh
- <dd>for GSPreview
-<dt>Gunther Hess
- <dd>for the unified inkjet printer driver
-<dt>Thomas Hiller
- <dd>for the Trident TVGA driver
-<dt>Frans van Hoesel
- <dd>for improvements to the DeskJet driver
-<dt>Berthold K. P. Horn
- <dd>for a better spot halftone screen
-<dt>B. Jackowski and GUST (the Polish TeX users group)
- <dd>for improvements to the TrueType font reader, and for the
- <b><tt>tiff2ps</tt></b> and <b><tt>ttf2pf</tt></b> utilities
-<dt>Jouk Jansen
- <dd>for motivating, testing, and providing some of the script
- file for the MMK/MMS build procedure
-<dt>Earl Johnson
- <dd>for the motivation for the <b><tt>ps2ascii</tt></b> utility
-<dt>Ray Johnston
- <dd>for a first draft of FAKEFONTS and EPSF recognition, and for
- many small bug fixes
-<dt>Larry Jones
- <dd>for simplifying and improving the portability of the pthreads
- interface code
-<dt>Pete Kaiser
- <dd>for beta testing, several versions of the OSF/1 font map, and
- an HTML version of the documentation
-<dt>Norio Katayama
- <dd>for the first implementation of composite fonts, and for
- testing and helping debug the later implementation
-<dt>Alfred Kayser
- <dd>for a DeskJet 500C driver and beta testing
-<dt>Richard Keeney
- <dd>for help with the SunView driver
-<dt>Markku Koppinen
- <dd>for a better circle-to-curve algorithm
-<dt>Eleftherios Koutsofios
- <dd>for help with the SunView driver
-<dt>Tom Lane
- <dd>for major help with adapting and integrating the IJG code
-<dt>Sam Leffler
- <dd>for the original TIFF G3 driver, and for finding some subtle
- bugs in the CCITTFaxEncode filter
-<dt>Jonathan Luckey
- <dd>for the high-resolution Imagewriter drivers
-<dt>Ken Lunde
- <dd>for providing pointers to freely available CJKV font-related
- resource
-<dt>Ian MacPhedran
- <dd>for a sixel driver
-<dt>Jim Mayer
- <dd>for help with the DeskJet and LaserJet drivers
-<dt>Paul McJones
- <dd>for help in identifying a variety of bugs
-<dt>William L. Menninger
- <dd>for a version of the PC display state save/restore code
-<dt>Richard Mlynarik
- <dd>for a nearly overwhelming volume of improvements and
- suggestions
-<dt>Ulrich Mueller
- <dd>for the LN03 driver
-<dt>Daniel Newman
- <dd>for major help with VMS and the CCITTFax filters
-<dt>Bjorn S. Nilsson
- <dd>for major help with VMS, including many updates of the DCL
- build scripts and creating the VMS help file
-<dt>Roque Donizete de Oliveira
- <dd>for testing and debugging, and a "man" page
-<dt>Gerbert Orasche
- <dd>for some minor bug fixes
-<dt>Marc Paquette
- <dd>for the original PaintJet driver
-<dt>Hal Peterson
- <dd>for major help with BDF fonts
-<dt>Andy Piper
- <dd>for the first draft of the WindowID feature
-<dt>Martin Pirker
- <dd>for fixing two major problems with TrueType fonts
-<dt>Tom Quinn
- <dd>for the Canon LBP-8II driver
-<dt>Matthias Rabe
- <dd>for work on an OS/2 port
-<dt>Jerry Roylance
- <dd>for help with statusdict
-<dt>Dave St. Clair
- <dd>for the color Epson/Fujitsu driver
-<dt>Jan Sanislo
- <dd>for two subtle but vital fixes
-<dt>Clemens Schrimpe
- <dd>for help with accented characters
-<dt>Scott Schwartz
- <dd>for improvements to <b><tt>gslp.ps</tt></b>
-<dt>Mike Smolenski
- <dd>for the Sony drivers
-<dt>Snoopy
- <dd>for major help with Hershey fonts, and many other contributions
-<dt>Karsten Spang
- <dd>for the Tektronix 4695/4696 driver
-<dt>Andreas Stolcke
- <dd>for help with the SunView driver
-<dt>Hans-Gerd Straeter
- <dd>for finding many obscure bugs
-<dt>Christoph Strozyk
- <dd>for getting the URW fonts made available
-<dt>Alexey Subbotin
- <dd>for contributing an interface to GNU readline, and for the
- rewritten implementation of ==
-<dt>Michael Sweet
- <dd>for help with the high-density Epson driver
-<dt>Guenther Thomsen
- <dd>for the mid-density Epson driver
-<dt>Gregg Townsend
- <dd>for the low-resolution dithering algorithm
-<dt>Christian Tschudin
- <dd>for fixes to the virtual memory package, and for the original
- BubbleJet driver
-<dt>Stephen Turnbull
- <dd>for help with the DesqView/X port
-<dt>Jos Vos
- <dd>for the original PBM/PGM/PPM driver, and for much beta testing
-<dt>Renze de Waal
- <dd>for an improvement to the "<b><tt>SAFER</tt></b>" feature
-<dt>Allan Wax
- <dd>for the AT&amp;T 6300 modification to the BGI driver
-<dt>Mark Wedel
- <dd>for the Apple DMP driver
-<dt>David Wexelblat
- <dd>for the high-resolution 9-pin Epson driver
-<dt>George N. White III
- <dd>for testing the PDF writer and contributing documentation
-<dt>Elizabeth Zwicky
- <dd>for some very challenging examples
-</dl>
-</blockquote>
-
-<p>
-The following people have also helped out by beta testing, by reporting
-bugs and/or fixes, or in other ways:
-
-<blockquote>
-Vikas Aggarwal, Michael Almond,
-Abramo Bagnara, Malcolm Bennett, David Brooks,
-Alex Cherepanov, Jim Collins,
-Peter da Silva, Art Dederick, Paul DuBois,
-Toerless Eckert,
-Bernhard Fabricius, Mark Friedman, Richard Foulk,
-Glenn Geers, Dave Goldblatt, Ben Goren, Dirk Grunwald,
-Lars Haakedal, Howard B. Halstead, Adam Hammer, George Hartzell, Mike Hoffmann, Charles Hulse,
-Brad Jones, Terry Jones,
-David Keppel,
-Anthony Lee, Marty Leisner, John Lundin Jr., Lee McLoughlin,
-Stergios Marinopoulos, Herb Martin, David Mathog, David Maynard, Doug McDonald, Rich Murphey,
-Russ Nelson,
-Peter Phillips,
-Mark Rawling, Philippe Robert, Tomas Rokicki, Wolfgang Rupprecht,
-Bill Schelter, Larry Schwimmer, Bakul Shah,
-Erik Talvola, Henrik Theiling, Mark A. Thomas, Kjetil Bernhard Thomassen,
-Amanda Walker, Peter Wan, John L. Wehle, Carsten Wiethoff, Carl Witty,
-Frank Yellin,
-Jamie Zawinski
-</blockquote>
-
-<p>
-If your name appears on the above list and we've omitted a particular
-contribution you made, or if we've accidentally overlooked you entirely,
-please forgive us: just let us know at <a href="mailto:raph@artofcode.com">raph@artofcode.com</a>, and you will be
-properly acknowledged in the next release.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises. All
-rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Hershey.htm b/Master/xemtex/doc/ghostscript/Hershey.htm
deleted file mode 100644
index a08bae318b9..00000000000
--- a/Master/xemtex/doc/ghostscript/Hershey.htm
+++ /dev/null
@@ -1,305 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Hershey fonts for Ghostscript</title>
-<!-- $Id: Hershey.htm,v 1.3 2000/11/04 05:00:00 giles Exp $ -->
-<!-- Originally: hershey.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Hershey fonts for Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This file, unlike the rest of Ghostscript, consists entirely of information
-copied from public sources. It therefore is not covered by the
-Ghostscript copyright or license: it is in the public domain.
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>. You can also read about <a href="Fonts.htm">Ghostscript
-fonts</a> in general.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<pre>
-Mod.sources: Volume 4, Issue 42
-Submitted by: pyramid!octopus!pete (Pete Holzmann)
-
-This is part 1 of five parts of the first Usenet distribution of
-the Hershey Fonts. See the README file for more details.
-
-Peter Holzmann, Octopus Enterprises
-USPS: 19611 La Mar Court, Cupertino, CA 95014
-UUCP: {hplabs!hpdsd,pyramid}!octopus!pete
-Phone: 408/996-7746
-
-This distribution is made possible through the collective encouragement
-of the Usenet Font Consortium, a mailing list that sprang to life to get
-this accomplished and that will now most likely disappear into the mists
-of time... Thanks are especially due to Jim Hurt, who provided the packed
-font data for the distribution, along with a lot of other help.
-
-This file describes the Hershey Fonts in general, along with a description of
-the other files in this distribution and a simple re-distribution restriction.
-
-USE RESTRICTION:
- This distribution of the Hershey Fonts may be used by anyone for
- any purpose, commercial or otherwise, providing that:
- 1. The following acknowledgements must be distributed with
- the font data:
- - The Hershey Fonts were originally created by Dr.
- A. V. Hershey while working at the U. S.
- National Bureau of Standards.
- - The format of the Font data in this distribution
- was originally created by
- James Hurt
- Cognition, Inc.
- 900 Technology Park Drive
- Billerica, MA 01821
- (mit-eddie!ci-dandelion!hurt)
- 2. The font data in this distribution may be converted into
- any other format *EXCEPT* the format distributed by
- the U.S. NTIS (which organization holds the rights
- to the distribution and use of the font data in that
- particular format). Not that anybody would really
- *want* to use their format... each point is described
- in eight bytes as "xxx yyy:", where xxx and yyy are
- the coordinate values as ASCII numbers.
-
-*PLEASE* be reassured: The legal implications of NTIS' attempt to control
-a particular form of the Hershey Fonts *are* troubling. HOWEVER: We have
-been endlessly and repeatedly assured by NTIS that they do not care what
-we do with our version of the font data, they do not want to know about it,
-they understand that we are distributing this information all over the world,
-etc etc etc... but because it isn't in their *exact* distribution format, they
-just don't care!!! So go ahead and use the data with a clear conscience! (If
-you feel bad about it, take a smaller deduction for something on your taxes
-next week...)
-
-The Hershey Fonts:
- - are a set of more than 2000 glyph (symbol) descriptions in vector
- ( &lt;x,y&gt; point-to-point ) format
- - can be grouped as almost 20 'occidental' (english, greek,
- cyrillic) fonts, 3 or more 'oriental' (Kanji, Hiragana,
- and Katakana) fonts, and a few hundred miscellaneous
- symbols (mathematical, musical, cartographic, etc etc)
- - are suitable for typographic quality output on a vector device
- (such as a plotter) when used at an appropriate scale.
- - were digitized by Dr. A. V. Hershey while working for the U.S.
- Government National Bureau of Standards (NBS).
- - are in the public domain, with a few caveats:
- - They are available from NTIS (National Technical Info.
- Service) in a computer-readable from which is *not*
- in the public domain. This format is described in
- a hardcopy publication "Tables of Coordinates for
- Hershey's Repertory of Occidental Type Fonts and
- Graphic Symbols" available from NTIS for less than
- $20 US (phone number +1 703 487 4763).
- - NTIS does not care about and doesn't want to know about
- what happens to Hershey Font data that is not
- distributed in their exact format.
- - This distribution is not in the NTIS format, and thus is
- only subject to the simple restriction described
- at the top of this file.
-
-Hard Copy samples of the Hershey Fonts are best obtained by purchasing the
-book described above from NTIS. It contains a sample of all of the Occidental
-symbols (but none of the Oriental symbols).
-
-This distribution:
- - contains
- * a complete copy of the Font data using the original
- glyph-numbering sequence
- * a set of translation tables that could be used to generate
- ASCII-sequence fonts in various typestyles
- * a couple of sample programs in C and Fortran that are
- capable of parsing the font data and displaying it
- on a graphic device (we recommend that if you
- wish to write programs using the fonts, you should
- hack up one of these until it works on your system)
-
- - consists of the following files...
- hershey.doc - details of the font data format, typestyles and
- symbols included, etc.
- hersh.oc[1-4] - The Occidental font data (these files can
- be catenated into one large database)
- hersh.or[1-4] - The Oriental font data (likewise here)
- *.hmp - Occidental font map files. Each file is a translation
- table from Hershey glyph numbers to ASCII
- sequence for a particular typestyle.
- hershey.f77 - A fortran program that reads and displays all
- of the glyphs in a Hershey font file.
- hershey.c - The same, in C, using GKS, for MS-DOS and the
- PC-Color Graphics Adaptor.
-
-Additional Work To Be Done (volunteers welcome!):
-
- - Integrate this complete set of data with the hershey font typesetting
- program recently distributed to mod.sources
- - Come up with an integrated data structure and supporting routines
- that make use of the ASCII translation tables
- - Digitize additional characters for the few places where non-ideal
- symbol substitutions were made in the ASCII translation tables.
- - Make a version of the demo program (hershey.c or hershey.f77) that
- uses the standard Un*x plot routines.
- - Write a banner-style program using Hershey Fonts for input and
- non-graphic terminals or printers for output.
- - Anything else you'd like!
-
-This file provides a brief description of the contents of the Occidental
-Hershey Font Files. For a complete listing of the fonts in hard copy, order
-NBS Special Publication 424, "A contribution to computer typesetting
-techniques: Tables of Coordinates for Hershey's Repertory of Occidental
-Type Fonts and Graphic Symbols". You can get it from NTIS (phone number is
-+1 703 487 4763) for less than twenty dollars US.
-
-Basic Glyph (symbol) data:
-
- hersh.oc1 - numbers 1 to 1199
- hersh.oc2 - numbers 1200 to 2499
- hersh.oc3 - numbers 2500 to 3199
- hersh.oc4 - numbers 3200 to 3999
-
- These four files contain approximately 19 different fonts in
-the A-Z alphabet plus greek and cyrillic, along with hundreds of special
-symbols, described generically below.
-
- There are also four files of Oriental fonts (hersh.or[1-4]). These
-files contain symbols from three Japanese alphabets (Kanji, Hiragana, and
-Katakana). It is unknown what other symbols may be contained therein, nor
-is it known what order the symbols are in (I don't know Japanese!).
-
- Back to the Occidental files:
-
-Fonts:
- Roman: Plain, Simplex, Duplex, Complex Small, Complex, Triplex
- Italic: Complex Small, Complex, Triplex
- Script: Simplex, Complex
- Gothic: German, English, Italian
- Greek: Plain, Simplex, Complex Small, Complex
- Cyrillic: Complex
-
-Symbols:
- Mathematical (227-229,232,727-779,732,737-740,1227-1270,2227-2270,
- 1294-1412,2294-2295,2401-2412)
- Daggers (for footnotes, etc) (1276-1279, 2276-2279)
- Astronomical (1281-1293,2281-2293)
- Astrological (2301-2312)
- Musical (2317-2382)
- Typesetting (ffl,fl,fi sorts of things) (miscellaneous places)
- Miscellaneous (mostly in 741-909, but also elsewhere):
- - Playing card suits
- - Meteorology
- - Graphics (lines, curves)
- - Electrical
- - Geometric (shapes)
- - Cartographic
- - Naval
- - Agricultural
- - Highways
- - Etc...
-
-ASCII sequence translation files:
-
- The Hershey glyphs, while in a particular order, are not in an
- ASCII sequence. I have provided translation files that give the
- sequence of glyph numbers that will most closely approximate the
- ASCII printing sequence (from space through ~, with the degree
- circle tacked on at the end) for each of the above fonts:
-
- File names are made up of fffffftt.hmp,
-
- where ffffff is the font style, one of:
- roman Roman
- greek Greek
- italic Italic
- script Script
- cyril Cyrillic (some characters not placed in
- the ASCII sequence)
- gothgr Gothic German
- gothgb Gothic English
- gothit Gothic Italian
-
- and tt is the font type, one of:
- p Plain (very small, no lower case)
- s Simplex (plain, normal size, no serifs)
- d Duplex (normal size, no serifs, doubled lines)
- c Complex (normal size, serifs, doubled lines)
- t Triplex (normal size, serifs, tripled lines)
- cs Complex Small (Complex, smaller than normal size)
-
-The three sizes are coded with particular base line (bottom of a capital
- letter) and cap line (top of a capital letter) values for 'y':
-
- Size Base Line Cap Line
-
- Very Small -5 +4
- Small -6 +7
- Normal -9 +12
-
- (Note: some glyphs in the 'Very Small' fonts are actually 'Small')
-
-The top line and bottom line, which are normally used to define vertical
- spacing, are not given. Maybe somebody can determine appropriate
- values for these!
-
-The left line and right line, which are used to define horizontal spacing,
- are provided with each character in the database.
-
-Format of Hershey glyphs:
-
-5 bytes - glyphnumber
-3 bytes - length of data length in 16-bit words including left&amp;right numbers
-1 byte - x value of left margin
-1 byte - x value of right margin
-(length*2)-2 bytes - stroke data
-
-left&amp;right margins and stroke data are biased by the value of the letter 'R'
-Subtract the letter 'R' to get the data.
-
-e.g. if the data byte is 'R', the data is 0
- if the data byte is 'T', the data is +2
- if the data byte is 'J', the data is -8
-
-and so on...
-
-The coordinate system is x-y, with the origin (0,0) in the center of the
-glyph. X increases to the right and y increases *down*.
-
-The stroke data is pairs of bytes, one byte for x followed by one byte for y.
-
-An 'R' in the stroke data indicates a 'lift pen and move' instruction.
-</pre>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-
-<hr>
-
-<p>
-<small>Public Domain.</small>
-<small>Distributed with Ghostscript 6.50, November 2000</small>
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History1.htm b/Master/xemtex/doc/ghostscript/History1.htm
deleted file mode 100644
index 58dab2ecfc5..00000000000
--- a/Master/xemtex/doc/ghostscript/History1.htm
+++ /dev/null
@@ -1,436 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 1.n</title>
-<!-- $Id: History1.htm,v 1.13.2.11.2.5 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: history1.txt -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>History of Ghostscript versions 1.n</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version1.3">Version 1.3 (6/20/89)</a>
-<ul>
-<li><a href="#V1.3_Interpreter">Interpreter</a>,
- <a href="#V1.3_Fonts">Fonts</a>,
- <a href="#V1.3_Library">Library</a>,
- <a href="#V1.3_Usage_procedures">Usage procedures</a>
-</ul>
-<li><a href="#Version1.2">Version 1.2 (2/22/89)</a>
-<ul>
-<li><a href="#V1.2_Interpreter">Interpreter</a>,
- <a href="#V1.2_Library">Library</a>,
- <a href="#V1.2_Usage_procedures">Usage procedures</a>
-</ul>
-<li><a href="#Version1.1">Version 1.1 (2/12/89)</a>
-<ul>
-<li><a href="#V1.1_Interpreter">Interpreter</a>,
- <a href="#V1.1_Initialization">Initialization (ghost.ps, gfonts.ps)</a>,
- <a href="#V1.1_Library">Library</a>,
- <a href="#V1.1_Usage_procedures">Usage procedures</a>
-</ul>
-<li><a href="#Version1.0">Version 1.0 (8/11/88)</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a history of Ghostscript releases numbered 1.n. For more
-recent changes, see the the other history documents and, for the latest
-versions, the news:
-
-<blockquote>
-<a href="News.htm">News</a><br>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-History of Ghostscript versions 1.n (this document)<br>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-
-<h2><a name="Version1.3"></a>Version 1.3 (6/20/89)</h2>
-<pre>
-This release should have had a lot more things in it, but time pressure
-and the already long delay in getting it out made it necessary to push it
-out the door in an incomplete state (e.g., no testing on X systems
-whatsoever).
-
-</pre>
-<h3><a name="V1.3_Interpreter"></a>Interpreter</h3>
-
-<pre>
-Makes -d and -D equivalent on the command line. Adds a new switch -s / -S
-that defines a name as a string rather than a token.
-
-Arranges things so that if -sLIB=_a_prefix_ is defined on the command
-line, (filename) run will look for _a_prefix_filename before giving up if
-filename isn't the name of an accessible file.
-
-Changes showpage from an operator to a procedure. The definition of
-showpage in ghost.ps does a copypage, beeps the console, waits for the
-user to type a character (normally a &lt;return&gt;, since line buffering is
-always enabled), and then does an erasepage and an initgraphics.
-
-Adds a new initialization file, gdevs.ps, containing device-dependent
-parameters. The default window size for X Windows is properly set to 612
-x 792, i.e., 8.5" x 11".
-
-Adds a new optional initialization file, statusd.ps, that provides dummy
-definitions for the names found in statusdict on LaserWriters.
-
-Adds a new operator, getenv, to get information from the shell
-environment.
-
-Adds a new predefined operator, defaultdevicename, that returns either (X)
-or (EGA) according to how the interpreter was built.
-
-Adds a new type, devicetype, and new operators deviceparams, getscanlines,
-makedevice, makeimagedevice, and setdevice. Changes currentdevice to
-return a device object rather than a set of parameters.
-
-Makes the scanner recognize reals with 'e' exponent notation, and handle
-reals with more than 9 digits.
-
-Fixes a bug that made names starting with digits read incorrectly.
-
-Fixes a bug in the exp operator that made it not pop its first argument
-from the stack.
-
-Fixes a bug in the rand operator that made it return negative values about
-half the time.
-
-Fixes a bug in equality comparison (eq, ne, and several other operators)
-that made unequal operator objects occasionally appear to be equal on DOS
-systems.
-
-Fixes a bug in the bind operator that made it not work on packed arrays.
-
-Changes the internal representation of dictionaries so they can be
-expanded or contracted dynamically. Adds a new operator, setmaxlength, to
-change the allocated size of a dictionary.
-
-Changes sstorei.h so that non-DOS compilers don't encounter the #pragma
-directive used by Turbo C.
-
-Restores the display mode (on MS-DOS systems) when exiting.
-
-</pre>
-<h3><a name="V1.3_Fonts"></a>Fonts</h3>
-
-<pre>
-Makes undefined characters in the standard font display as tilde rather
-than blank (or causing an error). Unmapped character codes (those mapped
-to .notdef in the encoding) still display as nothing, per the PostScript
-manual.
-
-</pre>
-<h3><a name="V1.3_Library"></a>Library</h3>
-
-<pre>
-Adds a new header file, gxbitmap.h, with some new documentation describing
-the internal storage format for bitmaps.
-
-Makes numerous internal changes in the character / font cache, affecting
-many of the routines in gxcache.c.
-
-Fixes a bug in gz_draw_line / gz_fill_trapezoid that made nearly
-horizontal lines display wrong.
-
-Fixes a bug in gs_scale that made scaling not work if the coordinate
-system was rotated or skewed.
-
-Extends the font cache so it will handle characters rotated by multiples
-of 90 degrees.
-
-Changes the second argument of gx_path_bbox and gx_path_is_rectangle to be
-a gs_fixed_rect * rather than a fixed [4].
-
-Changes gs_matrix_rotate so it handles multiples of 90 degrees as a
-special case.
-
-Changes the definition of the gx_device structure to accommodate the new
-device operators, and adds corresponding library calls.
-
-Changes the type for a device color index from int to gx_color_index
-(equivalent to unsigned long). ***NOTE***: this affects existing clients
-and drivers in a non-trivial way on MS-DOS systems.
-
-Changes gs_malloc and gs_free to take a client name string as an argument.
-
-</pre>
-<h3><a name="V1.3_Usage_procedures"></a>Usage procedures</h3>
-
-<pre>
-Changes the compilation rules for Unix systems to not use the -o and -c
-compiler flags together, to be compatible with more versions of cc.
-
-Changes the gcc makefile to use $(GCC) rather than gcc as the compiler
-name.
-
-Moves the -1 flag for the MS-DOS compiler from the cc*.bat files to the
-makefile.
-
-Changes CCDEBUG to CCFLAGS, and adds ASMFLAGS, in DOS makefile.
-
-Adds -DFOR80386 and /DFOR80386 to enable use of 80386 instructions in
-assembly code on DOS systems.
-
-Merges the DEBUG and gs_DEBUG switches. There is now only a single DEBUG
-switch that affects both the interpreter and the library.
-
-Adds a new compilation switch, -DNOPRIVATE, that makes private (static)
-variables and procedures public for debugging and profiling (only needed
-on DOS systems).
-
-Adds the DOS executable (gs.exe and gs.map) to the distribution fileset.
-
-Adds new platform-specific code files, gp-*.c, for a few things like
-reading the clock.
-
-Adds a new documentation file, drivers.doc, that describes the interface
-between Ghostscript and device drivers.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version1.2"></a>Version 1.2 (2/22/89)</h2>
-
-<h3><a name="V1.2_Interpreter"></a>Interpreter</h3>
-
-<pre>
-Adds the new facilities in version 25 of PostScript: //name for immediate
-lookup, packed arrays (setpacking, currentpacking, packedarray operators),
-and new font cache parameters (setcacheparams, currentcacheparams
-operators).
-
-Adds new operators (setfileposition, currentfileposition) for random
-access to files.
-
-Extends readhexstring to take either a string or a file, just like token.
-
-Fixes a bug that caused the 'for' operator (and a couple of others) to
-randomly smash memory locations on PC platforms.
-
-</pre>
-<h3><a name="V1.2_Library"></a>Library</h3>
-
-<pre>
-Renames the init_device driver procedure as open_device, and adds a
-corresponding close_device.
-
-Adds new procedures to read and set the cache limit values (implementing
-the currentcacheparams and setcacheparams operators).
-
-</pre>
-<h3><a name="V1.2_Usage_procedures"></a>Usage procedures</h3>
-
-<pre>
-Changes the name of the Unix makefile to ux-cc-x.mak, and adds a new Unix
-makefile, ux-gcc-x.mak, for using gcc instead of cc. (The latter doesn't
-actually work yet.)
-
-Changes the name of the single built-in font from uglyfont.cp to
-ugly10.cp.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version1.1"></a>Version 1.1 (2/12/89)</h2>
-
-<h3><a name="V1.1_Interpreter"></a>Interpreter</h3>
-
-<pre>
-Makes the scanner treat ^Z (ASCII code 26) as whitespace: it erroneously
-treated ^R (ASCII code 22, or octal 26) as whitespace.
-
-Makes the token and readline operators, and the syntax for comments,
-recognize \r (code 13), \n (code 10), and \r\n as equivalent end-of-line
-indicators. The token and readline operators will skip over any of these
-sequences at the end of a token or line respectively, and a comment will
-read through any of these sequences. The other file operators (read,
-write, readstring, writestring) do nothing special with these characters.
-
-Changes the debug switch name from -D to -Z. Adds a -D switch for
-defining names in systemdict from the command line. Defines -DDEBUG for
-printing out debugging information during initialization, and -DNODISPLAY
-for suppressing display output.
-
-Corrects a bug that prevented the error machinery from working -- in
-version 1.0, errors always dumped the stacks and aborted interpretation.
-
-Corrects a bug that made eq and ne not work for strings.
-
-Makes the atan (arctangent) operator normalize its results according to
-the PostScript convention.
-
-Makes the div operator check for zero divisor.
-
-Makes unimplemented operators (resetfile, echo, save, restore, strokepath,
-reversepath) truly undefined.
-
-Makes the interactive loop exit gracefully on end-of-file: in version 1.0
-this caused an infinite loop.
-
-Implements the status operator.
-
-Corrects a bug that made the 'for' operator deliver garbage values if one
-or more of the operands (start, increment, end) was a real.
-
-Corrects a bug that made the arc and arcn operators not pop their operands
-from the stack.
-
-Corrects a bug that made the kshow operator crash the interpreter.
-
-Corrects a bug that made the print operator fail on machines that don't
-pass structure arguments by simply pushing the contents of the structure.
-
-Adds a new operator, imagecharpath, to convert images to
-addcharpath-compatible outlines.
-
-Changes alloc and alloc_free to use char * rather than byte *, and
-alloc_free to return void rather than int, making them compatible with the
-library's expectations and with malloc/free.
-
-Explicitly casts all expressions of the form (ptr1 - ptr2) used as
-procedure arguments to unsigned, to handle an incompatibility between
-Turbo C versions 1.5 and 2.0.
-
-Changes some of the internal conventions for operators: operators that
-push on the operand stack must check for overflow explicitly, and
-operators that modify the execution stack must return a special code.
-(See oper.h for details.)
-
-</pre>
-<h3><a name="V1.1_Initialization"></a>Initialization (ghost.ps, gfonts.ps)</h3>
-
-<pre>
-Modifies ghost.ps and gfonts.ps so they print debugging information only
-if the name DEBUG is defined. (Presumably the user will set this from the
-command line with -DDEBUG.)
-
-Changes ghost.ps so it initializes the nominal screen size to 640 x 350 on
-MS-DOS systems as before, but to 612 x 792 on Unix systems, which is an
-8.5" x 11" page at 72 pixels per inch.
-
-</pre>
-<h3><a name="V1.1_Library"></a>Library</h3>
-
-<pre>
-Corrects a bug that made the fill and eofill operators (gs_fill and
-gs_eofill) not perform a newpath afterward.
-
-Corrects the bug that made thin, nearly horizontal lines display wrong (as
-a series of disconnected dots) in the MS-DOS implementation.
-
-Fixes a bug in the EGA driver that often made it fill rectangular regions
-with black around information being displayed in white.
-
-Completely changes the internal representation of outline fonts, and
-changes btoi.ps (a Ghostscript language program for converting bitmaps to
-outlines) to use a new library call, gs_imagecharpath.
-
-Changes the extension for outline font files from .gf to .cp.
-
-Adds a new debugging switch, q, that traces all rectangle fill operations.
-
-Adds a new debugging switch, v, that traces all device-level output calls.
-
-Explicitly casts pointer differences passed as procedure arguments, as in
-the interpreter.
-
-Makes stringwidth work if there is no current point. In version 1.0, this
-gave a nocurrentpoint error.
-
-</pre>
-<h3><a name="V1.1_Usage_procedures"></a>Usage procedures</h3>
-
-<pre>
-Changes the name of the 'read me' file from READ.ME to README.
-
-Removes a bogus line (invoking the 'mcopy' utility) from the makefile.
-
-Splits up the makefile into a generic part (ghost.mak) and
-platform-specific parts (dos-ega.mak, unix-x11.mak). The latter are what
-is actually executed.
-
-Puts the definitions of the DEBUG and gs_DEBUG compilation flags into the
-makefile instead of in ghost.h and gx.h respectively.
-
-Changes the names of the documentation files to be a little less cryptic.
-Changes all the file names to lower-case in the documentation. Adds
-installation information to make.doc.
-
-Changes all function definitions (but not prototype declarations) to ANSI
-syntax, and adds a preprocessing step (ansi2knr) to convert them to K&amp;R
-syntax on Unix systems.
-
-Changes the normal MS-DOS link configuration to not assume the presence of
-an 80x87 coprocessor, and describes how to increase performance if a
-coprocessor is present.
-
-Changes the names of all the interpreter .c files, except stream.c, to
-begin with 'i'.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version1.0"></a>Version 1.0 (8/11/88)</h2>
-
-<pre>
-First version released to the public.
-</pre>
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p><small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>This software is provided AS-IS with no warranty, either express or
-implied.
-
-<p>
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History2.htm b/Master/xemtex/doc/ghostscript/History2.htm
deleted file mode 100644
index 62964ee41af..00000000000
--- a/Master/xemtex/doc/ghostscript/History2.htm
+++ /dev/null
@@ -1,5231 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 1.n</title>
-<!-- $Id: History2.htm,v 1.13.2.11.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: history2.txt -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>History of Ghostscript versions 2.n</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version2.9.10b">Version 2.9.10-beta (7/28/94)</a>
-<ul>
-<li><a href="#V2.9.10b_Documentation">Documentation</a>,
- <a href="#V2.9.10b_Procedures">Procedures</a>,
- <a href="#V2.9.10b_Utilities">Utilities</a>,
- <a href="#V2.9.10b_Drivers">Drivers</a>,
- <a href="#V2.9.10b_Platforms">Platforms</a>,
- <a href="#V2.9.10b_Fonts">Fonts</a>,
- <a href="#V2.9.10b_Interpreter">Interpreter</a>,
- <a href="#V2.9.10b_Streams">Streams</a>,
- <a href="#V2.9.10b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.9b">Version 2.9.9-beta (6/23/94)</a>
-<ul>
-<li><a href="#V2.9.9b_Documentation">Documentation</a>,
- <a href="#V2.9.9b_Platforms">Platforms</a>,
- <a href="#V2.9.9b_Fonts">Fonts</a>,
- <a href="#V2.9.9b_Interpreter">Interpreter</a>,
- <a href="#V2.9.9b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.8">Version 2.9.8 (6/20/94)</a>
-<ul>
-<li><a href="#V2.9.8_Documentation">Documentation</a>,
- <a href="#V2.9.8_Procedures">Procedures</a>,
- <a href="#V2.9.8_Utilities">Utilities</a>,
- <a href="#V2.9.8_Drivers">Drivers</a>,
- <a href="#V2.9.8_Platforms">Platforms</a>,
- <a href="#V2.9.8_Fonts">Fonts</a>,
- <a href="#V2.9.8_Interpreter">Interpreter</a>,
- <a href="#V2.9.8_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.7b">Version 2.9.7-beta (6/5/94)</a>
-<ul>
-<li><a href="#V2.9.7b_Documentation">Documentation</a>,
- <a href="#V2.9.7b_Procedures">Procedures</a>,
- <a href="#V2.9.7b_Utilities">Utilities</a>,
- <a href="#V2.9.7b_Drivers">Drivers</a>,
- <a href="#V2.9.7b_Platforms">Platforms</a>,
- <a href="#V2.9.7b_Fonts">Fonts</a>,
- <a href="#V2.9.7b_Interpreter">Interpreter</a>,
- <a href="#V2.9.7b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.6b">Version 2.9.6-beta (5/23/94, not distributed to the public)</a>
-<ul>
-<li><a href="#V2.9.6b_Documentation">Documentation</a>,
- <a href="#V2.9.6b_Procedures">Procedures</a>,
- <a href="#V2.9.6b_Utilities">Utilities</a>,
- <a href="#V2.9.6b_Drivers">Drivers</a>,
- <a href="#V2.9.6b_Platforms">Platforms</a>,
- <a href="#V2.9.6b_Fonts">Fonts</a>,
- <a href="#V2.9.6b_Interpreter">Interpreter</a>,
- <a href="#V2.9.6b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.5b">Version 2.9.5-beta (4/11/94)</a>
-<ul>
-<li><a href="#V2.9.5b_Documentation">Documentation</a>,
- <a href="#V2.9.5b_Procedures">Procedures</a>,
- <a href="#V2.9.5b_Utilities">Utilities</a>,
- <a href="#V2.9.5b_Drivers">Drivers</a>,
- <a href="#V2.9.5b_Platforms">Platforms</a>,
- <a href="#V2.9.5b_Interpreter">Interpreter</a>,
- <a href="#V2.9.5b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.4b">Version 2.9.4-beta (2/19/94)</a>
-<ul>
-<li><a href="#V2.9.4b_Procedures">Procedures</a>,
- <a href="#V2.9.4b_Utilities">Utilities</a>,
- <a href="#V2.9.4b_Drivers">Drivers</a>,
- <a href="#V2.9.4b_Platforms">Platforms</a>,
- <a href="#V2.9.4b_Interpreter">Interpreter</a>,
- <a href="#V2.9.4b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.3b">Version 2.9.3-beta (1/19/94)</a>
-<ul>
-<li><a href="#V2.9.3b_Documentation">Documentation</a>,
- <a href="#V2.9.3b_Procedures">Procedures</a>,
- <a href="#V2.9.3b_Drivers">Drivers</a>,
- <a href="#V2.9.3b_Platforms">Platforms</a>,
- <a href="#V2.9.3b_Interpreter">Interpreter</a>,
- <a href="#V2.9.3b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.2b">Version 2.9.2-beta (1/2/94)</a>
-<ul>
-<li><a href="#V2.9.2b_Documentation">Documentation</a>,
- <a href="#V2.9.2b_Utilities">Utilities</a>,
- <a href="#V2.9.2b_Drivers">Drivers</a>,
- <a href="#V2.9.2b_Platforms">Platforms</a>,
- <a href="#V2.9.2b_Fonts">Fonts</a>,
- <a href="#V2.9.2b_Interpreter">Interpreter</a>,
- <a href="#V2.9.2b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9.1b">Version 2.9.1-beta (12/7/93)</a>
-<ul>
-<li><a href="#V2.9.1b_Utilities">Utilities</a>,
- <a href="#V2.9.1b_Interpreter">Interpreter</a>,
- <a href="#V2.9.1b_Library">Library</a>
-</ul>
-<li><a href="#Version2.9b">Version 2.9-beta (12/6/93)</a>
-<ul>
-<li><a href="#V2.9b_Documentation">Documentation</a>,
- <a href="#V2.9b_Procedures">Procedures</a>,
- <a href="#V2.9b_Utilities">Utilities</a>,
- <a href="#V2.9b_Drivers">Drivers</a>,
- <a href="#V2.9b_Platforms">Platforms</a>,
- <a href="#V2.9b_Interpreter">Interpreter</a>,
- <a href="#V2.9b_Library">Library</a>
-</ul>
-<li><a href="#Version2.8b">Version 2.8-beta (11/10/93)</a>
-<ul>
-<li><a href="#V2.8b_Documentation">Documentation</a>,
- <a href="#V2.8b_Procedures">Procedures</a>,
- <a href="#V2.8b_Utilities">Utilities</a>,
- <a href="#V2.8b_Drivers">Drivers</a>,
- <a href="#V2.8b_Platforms">Platforms</a>,
- <a href="#V2.8b_Fonts">Fonts</a>,
- <a href="#V2.8b_Interpreter">Interpreter</a>,
- <a href="#V2.8b_Library">Library</a>
-</ul>
-<li><a href="#Version2.7.2b">Version 2.7.2-beta (10/11/93)</a>
-<ul>
-<li><a href="#V2.7.2b_Utilities">Utilities</a>,
- <a href="#V2.7.2b_Interpreter">Interpreter</a>,
- <a href="#V2.7.2b_Library">Library</a>
-</ul>
-<li><a href="#Version2.7.1b">Version 2.7.1-beta (10/4/93, not distributed to the public)</a>
-<ul>
-<li><a href="#V2.7.1b_Documentation">Documentation</a>,
- <a href="#V2.7.1b_Utilities">Utilities</a>,
- <a href="#V2.7.1b_Drivers">Drivers</a>,
- <a href="#V2.7.1b_Platforms">Platforms</a>,
- <a href="#V2.7.1b_Fonts">Fonts</a>,
- <a href="#V2.7.1b_Interpreter">Interpreter</a>,
- <a href="#V2.7.1b_Library">Library</a>
-</ul>
-<li><a href="#Version2.7b">Version 2.7-beta (9/20/93, not distributed to the public)</a>
-<ul>
-<li><a href="#V2.7b_Documentation">Documentation</a>,
- <a href="#V2.7b_Procedures">Procedures</a>,
- <a href="#V2.7b_Utilities">Utilities</a>,
- <a href="#V2.7b_Drivers">Drivers</a>,
- <a href="#V2.7b_Platforms">Platforms</a>,
- <a href="#V2.7b_Fonts">Fonts</a>,
- <a href="#V2.7b_Interpreter">Interpreter</a>,
- <a href="#V2.7b_Library">Library</a>
-</ul>
-<li><a href="#Version2.6.1">Version 2.6.1 (5/28/93)</a>
-<ul>
-<li><a href="#V2.6.1_Documentation">Documentation</a>,
- <a href="#V2.6.1_Procedures">Procedures</a>,
- <a href="#V2.6.1_Utilities">Utilities</a>,
- <a href="#V2.6.1_Drivers">Drivers</a>,
- <a href="#V2.6.1_Platforms">Platforms</a>,
- <a href="#V2.6.1_Fonts">Fonts</a>,
- <a href="#V2.6.1_Interpreter">Interpreter</a>,
- <a href="#V2.6.1_Library">Library</a>
-</ul>
-<li><a href="#Version2.6">Version 2.6 (5/9/93)</a>
-<ul>
-<li><a href="#V2.6_Documentation">Documentation</a>,
- <a href="#V2.6_Procedures">Procedures</a>,
- <a href="#V2.6_Utilities">Utilities</a>,
- <a href="#V2.6_Platforms">Platforms</a>,
- <a href="#V2.6_Fonts">Fonts</a>,
- <a href="#V2.6_Drivers">Drivers</a>,
- <a href="#V2.6_Interpreter">Interpreter</a>,
- <a href="#V2.6_Library">Library</a>
-</ul>
-<li><a href="#Version2.5.2">Version 2.5.2 (9/20/92)</a>
-<ul>
-<li><a href="#V2.5.2_Procedures">Procedures</a>,
- <a href="#V2.5.2_Utilities">Utilities</a>,
- <a href="#V2.5.2_Platforms">Platforms</a>,
- <a href="#V2.5.2_Drivers">Drivers</a>,
- <a href="#V2.5.2_Interpreter">Interpreter</a>,
- <a href="#V2.5.2_Library">Library</a>
-</ul>
-<li><a href="#Version2.5.1">Version 2.5.1 (9/11/92)</a>
-<ul>
-<li><a href="#V2.5.1_Procedures">Procedures</a>,
- <a href="#V2.5.1_Utilities">Utilities</a>,
- <a href="#V2.5.1_Platforms">Platforms</a>,
- <a href="#V2.5.1_Fonts">Fonts</a>,
- <a href="#V2.5.1_Drivers">Drivers</a>,
- <a href="#V2.5.1_Interpreter">Interpreter</a>,
- <a href="#V2.5.1_Library">Library</a>
-</ul>
-<li><a href="#Version2.5">Version 2.5 (8/18/92)</a>
-<ul>
-<li><a href="#V2.5_Procedures">Procedures</a>,
- <a href="#V2.5_Utilities">Utilities</a>,
- <a href="#V2.5_Platforms">Platforms</a>,
- <a href="#V2.5_Fonts">Fonts</a>,
- <a href="#V2.5_Drivers">Drivers</a>,
- <a href="#V2.5_Interpreter">Interpreter</a>,
- <a href="#V2.5_Library">Library</a>
-</ul>
-<li><a href="#Version2.4.2">Version 2.4.2 (5/8/92)</a>
-<ul>
-<li><a href="#V2.4.2_Procedures">Procedures</a>,
- <a href="#V2.4.2_Utilities">Utilities</a>,
- <a href="#V2.4.2_Platforms">Platforms</a>,
- <a href="#V2.4.2_Fonts">Fonts</a>,
- <a href="#V2.4.2_Drivers">Drivers</a>,
- <a href="#V2.4.2_Interpreter">Interpreter</a>,
- <a href="#V2.4.2_Library">Library</a>
-</ul>
-<li><a href="#Version2.4.1">Version 2.4.1 (4/21/92)</a>
-<ul>
-<li><a href="#V2.4.1_Procedures">Procedures</a>,
- <a href="#V2.4.1_Utilities">Utilities</a>,
- <a href="#V2.4.1_Drivers">Drivers</a>,
- <a href="#V2.4.1_Fonts">Fonts</a>,
- <a href="#V2.4.1_Interpreter">Interpreter</a>,
- <a href="#V2.4.1_Library">Library</a>
-</ul>
-<li><a href="#Version2.4">Version 2.4 (3/25/92)</a>
-<ul>
-<li><a href="#V2.4_Procedures">Procedures</a>,
- <a href="#V2.4_Utilities">Utilities</a>,
- <a href="#V2.4_Drivers">Drivers</a>,
- <a href="#V2.4_Fonts">Fonts</a>,
- <a href="#V2.4_Interpreter">Interpreter</a>,
- <a href="#V2.4_Library">Library</a>
-</ul>
-<li><a href="#Version2.3">Version 2.3 (8/28/91)</a>
-<ul>
-<li><a href="#V2.3_Utilities">Utilities</a>,
- <a href="#V2.3_Drivers">Drivers</a>
-</ul>
-<li><a href="#Version2.2">Version 2.2 (6/1/91)</a>
-<ul>
-<li><a href="#V2.2_Procedures">Procedures</a>,
- <a href="#V2.2_Drivers">Drivers</a>,
- <a href="#V2.2_Fonts">Fonts</a>,
- <a href="#V2.2_Utilities">Utilities</a>,
- <a href="#V2.2_Interpreter">Interpreter</a>,
- <a href="#V2.2_Library">Library</a>
-</ul>
-<li><a href="#Version2.1.1">Version 2.1.1 (1/15/91)</a>
-<ul>
-<li><a href="#V2.1.1_Build_procedures">Build procedures</a>,
- <a href="#V2.1.1_Interpreter">Interpreter</a>,
- <a href="#V2.1.1_Drivers">Drivers</a>,
- <a href="#V2.1.1_Library">Library</a>
-</ul>
-<li><a href="#Version2.1">Version 2.1 (12/31/90)</a>
-<ul>
-<li><a href="#V2.1_Build_procedures">Build procedures</a>,
- <a href="#V2.1_Drivers">Drivers</a>,
- <a href="#V2.1_Fonts">Fonts</a>,
- <a href="#V2.1_Interpreter">Interpreter</a>,
- <a href="#V2.1_Library">Library</a>
-</ul>
-<li><a href="#Version2.0">Version 2.0 (9/12/90)</a>
-<ul>
-<li><a href="#V2.0_Miscellaneous">Miscellaneous</a>,
- <a href="#V2.0_Drivers">Drivers</a>,
- <a href="#V2.0_Build_procedures">Build procedures</a>,
- <a href="#V2.0_Interpreter">Interpreter</a>,
- <a href="#V2.0_Library">Library</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a history of Ghostscript releases numbered 2.n. For more
-recent changes, see the the other history documents and, for the latest
-versions, the new:
-
-<blockquote>
-<a href="News.htm">News</a><br>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-History of Ghostscript versions 2.n (this document)<br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<h2><a name="Version2.9.10b"></a>Version 2.9.10-beta (7/28/94)</h2>
-
-<p>
-This is the last 2.9 beta, since 3.0 will be released on July 31.
-
-<h3><a name="V2.9.10b_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - A | in gs.1 had a \ in front of it instead of \\.
-
-Adds a paragraph in gs.1 that tells how to select paper size.
-
-Notes in devs.mak that the cdj550 driver is the best one for the H-P
-DeskJet 520, and the pjxl300 driver is the right one for the H-P DeskJet
-1200C.
-
-Notes in make.doc that Watcom C++ 10.0 may require a change in a makefile.
-
-</pre><h3><a name="V2.9.10b_Procedures"></a>Procedures</h3><pre>
-Removes ICCINIT from MODULES.LIS for VMS systems.
-
-Updates VMS.MAK to support Motif V1.2.
-
-Updates jpeg.mak to work with version 5alpha4 of the IJG JPEG code.
-
-</pre><h3><a name="V2.9.10b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - font2c didn't leave extra room in Type 0 font dictionaries for
-entries added by definefont.
- - font2c left extra information on the stack.
- - ansi2knr would remove newline characters within formal argument
-lists.
- - font2c got an Error: /undefined in makefontprocname.
-
-Updates ansi2knr to work better with the GNU configure program.
-
-Updates ansi2knr to handle procedure formal arguments automatically.
-
-</pre><h3><a name="V2.9.10b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - If a file contained color or gray-scale information followed by a
-masked image, the X driver would sometimes invert the polarity of the
-image.
-
-</pre><h3><a name="V2.9.10b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - Unix systems with a 2-argument gettimeofday returned garbage
-values for the current time.
- - The VMS build script for compiled fonts omitted the requirement
-to load gs_ccfnt.ps.
- - memory_.h didn't note that System V Unix platforms need memmove.
-
-On Unix systems, changes the subdirectory of $datadir/ghostscript to just
-be the version number (e.g., 2.9.10 rather than gs-2.9.9).
-
-</pre><h3><a name="V2.9.10b_Fonts"></a>Fonts</h3><pre>
-Adds support code for the Wadalab (University of Tokyo) free Kanji font.
-
-Notes in the documentation in Fontmap that .pfa and .pfb fonts are
-compatible with ATM, but .gsf fonts are not.
-
-Changes the names of Thomas Wolff's expanded Hershey fonts, replacing .gsf
-with .pfa.
-
-</pre><h3><a name="V2.9.10b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The scanner became confused if the literal names /&lt;&lt; or /&gt;&gt;
-straddled an input buffer boundary.
- - .setlanguagelevel gave an invalidaccess error when
-switching from level 2 to level 1.
- - currentgstate, setgstate, and copy for gstates didn't do
-the necessary access checks.
- - The Category resource category didn't define .ResourceFile, so
-/Category resourcestatus gave an error.
- - The garbage collector didn't trace the structures used by
-filenameforall properly on most platforms.
- - Automatically expanding systemdict didn't work, but didn't give
-an error.
- - Automatically expanding a dictionary usually expanded it by too
-much.
- - systemdict was created too small.
- - The garbage collector didn't trace the structures referenced only
-from allocator objects, leading to attempts to access freed storage.
- - If a chunk was empty, the GC tried to free it even if it had
-inner chunks.
-* - The outer loop in dict_find_name_by_index() could cause an
-addressing fault on segmented machines when looking up Level 2 operators,
-because the offset could get decremented past 0.
- - The heap_available procedure in gsmemory.c didn't convert
-properly to non-ANSI syntax. (New bug in 2.9.9.)
- - The ledgertray procedure wasn't implemented.
- - The xxxtray procedures didn't set the page size.
- - The settumble operator wasn't implemented, even as a dummy.
- - glyphshow didn't work with Type 3 fonts.
- - Supplying a RenderTable for a CIE color space caused an error.
- - The DCT filter code had the jpeg/ subdirectory name "wired in" to
-the source files.
-
-Adds experimental filters for Burrows/Wheeler block sorting compression
-(BWBlockSortEncode/Decode), described in DEC SRC Research Report #124,
-move-to-front coding (MoveToFrontEncode/Decode), and a simple form of
-Huffman coding (BoundedHuffmanEncode/Decode). These are experimental -- do
-not rely on them remaining the same (or existing at all) in future
-releases!
-
-Adds all function prototypes needed to pacify strict compilers.
-
-Removes all explicit references to userdict from the C code.
-
-Changes the SAFER switch so that it disallows not only explicit writing,
-deleting, or renaming of files, but also disallows specifying an explicit
-OutputFile for any device (except for the initial device, by means of
--sOutputFile= on the command line).
-
-</pre><h3><a name="V2.9.10b_Streams"></a>Streams</h3><pre>
-Fixes bugs:
- - Hex decoding (ASCIIHexDecode stream and &lt;&gt; literals) didn't treat
-the data source as read-only (although it restored it to its original
-contents).
-
-Implements move-to-front coding, a simple form of Huffman coding, and
-Burrows/Wheeler block sorting compression.
-
-</pre><h3><a name="V2.9.10b_Library"></a>Library</h3><pre>
-Fixes bugs:
-* - (The following bug fix was actually implemented somewhere around
-version 2.7.) restore didn't purge character cache entries whose keys were
-names created more recently than the save.
- - gstype1.h declared gs_type1_state_sizeof as an extern, but this
-wasn't defined anywhere.
- - gs_makeimagedevice didn't set the size of the palette correctly,
-which confused the GC.
- - gs_makeimagedevice didn't set num_components to 1 for
-mapped-color devices with only gray values.
-* - The two-color halftoning algorithms truncated when computing the
-halftone level, rather than rounding it.
-* - If a path being filled had line segments that fell entirely to
-the right of the clipping region, part of the path might not be filled.
- - The optimized code for 24-bit color didn't ensure properly that
-32-bit accesses would be aligned appropriately.
- - The miter join check had gotten reversed somewhere along the way.
-* - Because x and y were interchanged in the miter check computation,
-in some situations the check was inverted. (This is a very old bug!)
- - It was believed that strokepath didn't work with dashed lines;
-the problem appears to have been an incorrect testing program.
-
-Adds all function prototypes needed to pacify strict compilers.
-
-Changes fixed2float so it doesn't cast the result to float, and removes
-fixed2double. This produces slightly more accurate results in many places,
-and may even be faster (for FPUs that normally generate double rather than
-single precision results).
-
-</pre>
-
-<h2><a name="Version2.9.9b"></a>Version 2.9.9-beta (6/23/94)</h2>
-
-<h3><a name="V2.9.9b_Documentation"></a>Documentation</h3><pre>
-Puts a pointer to devs.mak in the section of use.doc that talks about
-MS-DOS displays.
-
-</pre><h3><a name="V2.9.9b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The %pipe% IODevice was omitted on System V platforms.
- - The AXP VMS build script needed /NESTED_INCLUDE=PRIMARY in
-CC_QUAL to work around a bug in the DEC C compiler.
-
-</pre><h3><a name="V2.9.9b_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
- - gs_lev2.ps redefined .loadFontmap incorrectly.
-
-</pre><h3><a name="V2.9.9b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - stream_compact used memcpy even though the source and destination
-might overlap.
- - filter applied to a closed file could cause a crash.
-
-</pre><h3><a name="V2.9.9b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - putdeviceparams to a printer didn't close and reopen the device
-if only the page size or resolution was changed.
-
-</pre>
-
-<h2><a name="Version2.9.8"></a>Version 2.9.8 (6/20/94)</h2>
-
-<p>
-This is the first version that claims to be a full Level 2
-implementation.
-It was distributed to satisfy a contractual requirement.
-</p>
-
-<h3><a name="V2.9.8_Documentation"></a>Documentation</h3><pre>
-In make.doc:
- - Adds a reference to the generic System V section at the end of
-the SCO section.
- - Notes that DEC OSF/1 systems may require changing the name of the
-install program to installbsd.
-
-Updates drivers.doc to reflect the change from "properties" to
-"parameters".
-
-Updates the Aladdin Enterprises Free Public License to version 1.
-
-In language.doc, notes that certain device parameters will be phased out.
-
-</pre><h3><a name="V2.9.8_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The file aa.ps was included in the distribution by mistake.
-
-Notes in the Unix makefiles that X11R6 probably needs SM and ICE added to
-XLIBS.
-
-</pre><h3><a name="V2.9.8_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - viewjpeg.ps used a non-existent file as its example.
- - A temporary string in wrfont.ps was allocated too small.
-
-Upgrades font2c.ps so it will handle (simple) Type 0 fonts as well as Type
-1.
-
-</pre><h3><a name="V2.9.8_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The TIFF drivers didn't byte-align each scan line.
- - gdevtfax.c applied &amp; to an array member of a structure.
-
-Changes the param_list interface slightly: Implementations of the
-put_params driver procedure should now use param_signal_error to report
-errors, and should not give up at the first error. (Even though this is a
-non-backward-compatible change, old implementations will continue to work;
-they just won't deliver complete results to the setpagedevice Policies
-machinery.)
-
-</pre><h3><a name="V2.9.8_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - Removes the time zone adjustment from gp_get_clock in gp_unix.c,
-since the value returned by all Unix systems is bogus.
- - The DV/X makefile still included the dfaxhigh and dfaxlow drivers.
- - gssetmod.com (VMS command file) didn't work properly if the
-argument list was empty.
- - vms.mak, vms-axp.mak, and modules.lis hadn't been updated to
-reflect changes in 2.9.7.
- - The MS Windows version wouldn't link (overflowed the 64K primary
-data segment).
-
-</pre><h3><a name="V2.9.8_Fonts"></a>Fonts</h3><pre>
-Makes the font substitution algorithm somewhat more intelligent.
-
-</pre><h3><a name="V2.9.8_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - Enumerating the pointers of a zero-length array of structures
-caused a divide by zero.
- - iref.h didn't protect itself against multiple inclusion.
- - The CCITTFaxEncode filter didn't byte-align the final
-end-of-block code if EndOfBlock and EncodedByteAlign were both true.
- - make_initial_dict in iinit.c used `name' as a formal parameter
-name, which some compilers believe conflicts with a typedef.
- - Not all internal operators had registered names.
- - The GC used memcpy, rather than bytes_copy, when compacting
-objects, even though the source and destination might overlap.
- - When debugging was enabled, gc_string_mark could give a spurious
-error indication.
- - vmstatus returned too small a value for the maximum VM.
- - The scanner could get into a loop when reading a radix-85 string.
- - The GC could get into a state where it was called after every
-allocation (because of the patch setting global = true in ireclaim).
- - The general path filling algorithm didn't skip regions that were
-completely outside the clipping box.
- - The gs_screen_enum structure contained a pointer (porder) that
-pointed into the middle of a structure, confusing the GC.
-
-Implements the BitmapWidths flag in fonts. The default of false means that
-we use scalable widths even with xfonts.
-
-Changes the Generic resource category so that ResourceFileName is optional.
-
-Changes the .getdeviceparams operator so that it takes an optional
-dictionary giving the set of keys whose values are wanted. Changes the
-.putdeviceparams operator so that it takes an optional policy dictionary
-specifying the action to be taken on errors, and returns a list of keys and
-errors if it fails, rather than causing an error. These are
-non-backward-compatible changes, but ordinary programs do not use these
-operators.
-
-Changes the names of some internal operators and procedures by adding
-a . to the beginning:
- currenttime
- devicename
-
-Implements currentpagedevice, and a small subset of setpagedevice. Only
-the following keys in the page device dictionary are known to the current
-implementation, and the ones marked with * are not actually processed:
- PageSize
- InputAttributes
- MediaColor, MediaWeight, MediaType, InsertSheet
- (for InputAttributes matching only)
- *ImagingBBox
- OutputAttributes
- OutputType
- (for OutputAttributes matching only)
- NumCopies
- HWResolution
- *Margins
- *Orientation (for all devices, not just roll devices)
- Policies
- Install
- BeginPage
- EndPage
-Does not implement:
- - Updating InputAttributes or OutputAttributes by sensing the state
- of the device;
- - Retrying media matching after an initial failure;
- - Automatic handling of portrait vs. landscape page size;
- - Recording the CTM after Install as the one to be used for
- defaultmatrix, initmatrix, and initgraphics.
-Also, media matching is normally disabled (with InputAttributes = null)
-for all devices. ****** We had to disable setpagedevice just before
-shipping this release, because of interactions with the older device
-handling machinery that we could not fix in the time available.
-
-</pre><h3><a name="V2.9.8_Library"></a>Library</h3><pre>
-Fixes bugs:
- - 24-bit color (mem_true24_fill_rectangle and _copy_mono) had
-algorithm bugs.
- - A complex conditional expression in gx_render_gray wouldn't
-compile properly with the DECStation 3100 Ultrix 4.3 compiler.
- - The GC routines for gx_device_clip didn't handle the case where
-the 'current' pointer pointed to list.single.
- - gx_add_char_bits used memcpy, rather than bytes_copy, for
-compressing character bitmaps, even though the source and destination might
-overlap.
- - Some compilers require the definition of st_gstate_contents to
-precede the definitions of the GC procedures.
- - Filling a large rectangle (more than 1K of bitmap) with a colored
-halftone overwrote random areas of the stack.
-
-Changes gs_setcachedevice[2] to take a pointer to an array of floats,
-rather than 6 or 10 individual floats. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE.
-
-Implements the BitmapWidths flag in fonts.
-
-</pre>
-
-<h2><a name="Version2.9.7b"></a>Version 2.9.7-beta (6/5/94)</h2>
-
-<p>
-Yet another pre-3.0 beta. The main features are a fairly reliable
-garbage
-collector, and function prototypes almost everywhere they are needed.
-
-<h3><a name="V2.9.7b_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The comment at the beginning of the zfindlibfile procedure was
-incorrect.
-
-Replaces the GNU License (the COPYING file) with version 0 of the new
-Aladdin Enterprises Free Public License (the PUBLIC file).
-
-</pre><h3><a name="V2.9.7b_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The definition of cmykread.dev in gs.mak was incorrect (it
-modified color.dev).
-
-Adds the ability to specify a value for FONTPATH on the command line
-(-sFONTPATH=), overriding GS_FONTPATH.
-
-Replaces the -oper2 configuration resource type with the ability to specify
-in the op_def list the dictionary in which operators will be defined. (See
-opdef.h for more details.) This is an internal change only.
-
-</pre><h3><a name="V2.9.7b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - viewgif.ps got an error on interlaced GIF files whose height
-wasn't a multiple of 8.
-
-Changes traceop.ps so it stores the traced operator in the same dictionary
-where the operator is currently defined, if possible.
-
-</pre><h3><a name="V2.9.7b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The new G3 fax drivers crashed on page widths greater than 2623
-(40 * 64 + 63) pixels. (We fixed this by disallowing page widths greater
-than approximately twice this.)
- - The 24-bit PCX driver had some debugging code accidentally left
-in it that produced large volumes of useless console output.
-
-Removes the previous (Leffler) TIFF/F driver and the TruFax driver.
-
-</pre><h3><a name="V2.9.7b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - time_.h, gp_unix.c, and gp_sysv.c didn't do the right thing on
-SVR4 platforms, where gettimeofday only takes 1 argument.
- - The final linking command on Turbo C platforms didn't specify the
-COMPDIR directory for the linker.
-
-</pre><h3><a name="V2.9.7b_Fonts"></a>Fonts</h3><pre>
-
-Changes the standard Fontmap to use the URW contributed fonts as
-work-alikes for Helvetica and Times Roman.
-
-</pre><h3><a name="V2.9.7b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The garbage collector wasn't in a consistent state.
- - In Level 2 mode, statusdict was allocated in global VM rather
-than local VM.
- - resourceforall gave an error on the built-in categories such as
-Filter.
- - The file searching algorithm didn't check the current directory
-first.
- - When opening a file failed, it didn't return a different error
-depending on the problem.
- - The CCITTFaxEncode filter crashed on widths larger than 2623 (64
-* 40 + 63) pixels. (We fixed this by disallowing page widths greater than
-approximately twice this.)
- - The .type1getsbw operator gave an invalidfont error if a
-CharString started with anything other than a [h]sbw. (Adobe's published
-specs say this is invalid, but some Adobe MultiMaster fonts start with a
-callsubr and/or a callothersubr.)
- - When printing out the stack with == after an error, the error
-handler got a repeated (and ultimately fatal) typecheck error if it
-encountered an object of non-standard type.
- - The token operator could incorrectly attempt to free a structure
-on the stack if it encountered an input buffer boundary.
- - string_to_ref didn't correctly set the a_local flag in the string
-object it created.
- - If the -c switch was the last switch on the command line,
-Ghostscript always exited without going into interactive mode.
- - copy didn't check for errors when copying a dictionary.
-
-Makes many minor changes (mostly adding prototypes) to reduce error and
-warning messages from gcc and other strict compilers.
-
-Adds files containing the 4 predefined PDF encodings (MacRoman, MacExpert,
-WinAnsi, and PDFDoc).
-
-</pre><h3><a name="V2.9.7b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - image_bbox in gxccman.c could produce a division by 0 if a
-0-width character was being entered into the cache.
- - gx_image_cached_char incorrectly specified a scale of 2x2 rather
-than 1x1 if it had to read bits from an xfont.
- - Stale pointers in the halftone cache weren't cleared properly by
-a restore. (We fixed this by making grestoreall clear the halftone cache.)
- - setdash used gs_malloc, rather than the current allocator, for
-allocating the dash pattern.
- - If one attempted to fill a very wide region with a colored
-halftone, gx_dc_ht_colored_fill_rectangle would loop indefinitely.
- - The container_offset in clipping devices was set incorrectly,
-causing the garbage collector to mangle pointers.
-
-Changes the fopen routine in IODevices so that it can return an arbitrary
-error code, rather than simply succeeding or failing. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE. It only affects IODevice implementations,
-of which there are very few. (It doesn't affect ordinary device drivers.)
-
-Changes the char_metrics xfont procedure so it returns the width as
-floating point numbers rather than integers. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE. It only affects xfont implementations, of
-which there are very few.
-
-Makes many minor changes (mostly adding prototypes) to reduce error and
-warning messages from gcc and other strict compilers.
-
-</pre>
-
-<h2><a name="Version2.9.6b"></a>Version 2.9.6-beta (5/23/94, not
-distributed to the public)</h2>
-
-<p>
-This, too, was supposed to be the last beta release for public
-release 3.0.
-It was created primarily for a user who desperately needed a Level 1 system
-that would run properly on a 64-bit hardware architecture. The garbage
-collector is badly broken (it's in the middle of an architectural change);
-setpagedevice is still not implemented.
-
-<h3><a name="V2.9.6b_Documentation"></a>Documentation</h3>
-
-<pre>
-Documents the standard location of Type 1 fonts on AIX.
-
-Changes the last few mentions of Ghostview for Microsoft Windows to GSview
-for Windows.
-
-Notes that Solaris 2.n provides the X11 header files in a different place.
-
-Changes README to reflect the differentiation between Aladdin Ghostscript
-and GNU Ghostscript.
-
-</pre>
-<h3><a name="V2.9.6b_Procedures"></a>Procedures</h3>
-
-<pre>
-Fixes bugs:
- - The compilation rules for the modules that call the IJG library
-used -Ijpeg rather than -I$(JPEGSRC).
- - The rule for gslib.dev omitted echogs$(XE) as a prerequisite.
-
-Makes it possible to define the values of buildtime, copyright, revision,
-revisiondate, and serialnumber in the makefile.
-
-</pre><h3><a name="V2.9.6b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - The viewgif.ps utility didn't handle local color tables.
-
-Updates ps2ai.ps to version 1.81.
-
-</pre><h3><a name="V2.9.6b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The TIFF and fax devices used some identical names, causing
-linker complaints.
- - The bj10e/bj200 driver inadvertently disabled the sheet feeder.
-(The change may not actually fix this bug, since we don't have either of
-these printers with a sheet feeder to test it on.)
- - The 'bit' device didn't map colors to pixel values correctly.
- - The monochrome PCL driver didn't work around the fact that the
-Canon LBP4i printer didn't clear its seed row correctly.
-
-Adds new drivers:
- - A user-contributed driver for the H-P DesignJet 650C.
- - A user-contributed driver for the Canon LIPS III printer.
- - A completely new tiffg3 driver with one based on the new, fast
-faxg3 code. This driver does not include any external code, and carries an
-Aladdin copyright.
- - A tiffg4 driver, also based on the fast CCITT filter code.
-
-Removes the tiffg3x driver that appeared briefly in 2.9.5, and renames the
-previous (Leffler) tiffg3 driver as tiffg3x.
-
-Adds support for A0, A1, and A2 paper sizes to PCL drivers.
-
-Changes all the names involving "props" to "params", for consistency with
-the header files, some other internal interfaces, and Adobe's terminology.
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. However, it only affects devices
-that implement their own get_props and put_props procedures, of which there
-aren't very many.
-
-</pre><h3><a name="V2.9.6b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The DV/X makefile used X11 rather than X for the X11 library name.
- - The DV/X makefile incorrectly included the PC display drivers.
- - The DV/X makefile omitted gp_dosfs.$(OBJ) from the list of
-platform-specific files.
- - The DV/X makefile used : rather than ; for separating directory
-names in GS_LIB_DEFAULT.
- - x_.h omitted a needed alias for XtAppSetFallbackResources.
- - The makefile entry for System V Unix systems didn't include
-gp_unifn.$(OBJ).
- - The comment before LDFLAGS in the gcc makefiles incorrectly
-suggested using the -x switch on Ultrix platforms.
- - The forward declaration of quant_params in zfdct.c upset the Sun
-compiler because it declared a parameter as float rather than floatp.
-* - The Microsoft C compiler, like the Borland C compilers, only
-compares the offset part of segmented pointers.
-
-</pre><h3><a name="V2.9.6b_Fonts"></a>Fonts</h3><pre>
-
-Adds a fontmap suitable for use with Adobe Type Basics.
-
-</pre><h3><a name="V2.9.6b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The STACK_LOOP_BEGIN macro in istack.h didn't work correctly on
-segmented systems.
- - The end_phase procedure in igc.c didn't work correctly on
-segmented systems.
- - Indexed color spaces didn't mark their base space properly when
-garbage collecting.
- - The garbage collector didn't work on segmented systems, because
-it smashed the lsize field of large objects with mark/reloc information.
- - Some structures didn't have correct associated GC procedures:
-gs_indexed_map, gs_client_pattern, gs_pattern_instance.
- - restore could free names or stack segments that were still
-referenced.
-* - If a packed object caused an error, the error object could be set
-to garbage rather than the correct object.
-* - Badly designed error handlers which use $error for temporary
-storage could cause a dictfull error.
- - Some compilers objected to the use of "dict" as a variable name
-in a scope where it was defined as a type.
- - IODevices were declared const and non-const inconsistently.
- - setpagedevice popped one object too many off the stack if the
-request included any subdictionaries that needed to be merged.
- - More garbage collector bugs were fixed.
- - If the current stack block was empty, Level 2 restore would give
-a spurious typecheck error.
- - The CCITTFaxEncode filter could get confused if it emptied the
-input and filled the output at the same time.
- - The CCITTFaxEncode filter could insert an extra EOL if it had to
-suspend at certain times.
- - The new parser for literal strings (as of 2.9.5) could mis-count
-internal parentheses if a parenthesis caused the internal buffer collecting
-the string to overflow.
- - If the current stack block had fewer than 3 elements,
-.type1addpath could report a spurious typecheck error.
- - Text rendering operations (show, stringwidth, etc.) caused a
-crash if the current color was a Pattern that hadn't already been
-rasterized.
- - If a program did a grestore when the graphics state stack was
-empty, the graphics state was initialized to unexpected (and, in some
-cases, invalid) values.
- - pathforall could cause a bogus stackoverflow if it overflowed the
-current stack block.
- - Closing an encoding filter with a procedure as target left the
-filter on the stack.
-* - The outer loop in dict_lookup() could cause an addressing fault
-on segmented machines when looking up Level 2 operators, because the offset
-could get decremented past 0.
- - There was an = instead of an == in a test in scanner_reloc_ptrs.
- - The call on gs_reloc_refs in sproc_reloc_ptrs in zfproc.c omitted
-the last (gcst) argument.
-
-(Re-)implements the 2-D case of CCITTFaxEncode, and fixes a couple of bugs
-in it.
-
-Adds DiffEncode and DiffDecode filters that implement color prediction for
-the PDF variant of the LZWDecode filter.
-
-Changes the specification of .oserrorstring to be similar to getenv,
-where, etc. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, no
-user-written code should be using .oserrorstring.
-
-Adds oversampling for better character rasterizing.
-
-</pre><h3><a name="V2.9.6b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - gx_dc_ht_colored_fill_rectangle gave a compiler warning because
-of a problem with const pointers.
- - dfmul2fixed_vars (in gxfixed.h) omitted the &amp; before vda on
-big-endian platforms, causing compilation errors.
- - IODevices were declared const and non-const inconsistently.
- - The Type 1 rasterizer never enabled overshoot suppression.
- - stroke didn't fatten the line properly if stroke adjustment was
-enabled, or if the line was horizontal or vertical.
-* - The clipping test for characters was too strict by almost 1
-pixel, leading to unnecessary clipping of text at the edge of the clipping
-box.
-* - The initial clipping box was computed incorrectly for devices
-whose initial transformation matrix included a rotation.
-
-Changed the implementation of clipping lists and show enumerators to use
-separate objects rather than embedded objects, to pacify the GC. (This is
-an internal change, not visible at the PostScript or API level.)
-
-Makes the character cache trim off left and right blank areas, as well as
-top and bottom. (Internal change.)
-
-Adds oversampling for better character rasterizing.
-
-</pre>
-
-<h2><a name="Version2.9.5b"></a>Version 2.9.5-beta (4/11/94)</h2>
-
-<p>
-This was supposed to be the last beta release before 3.0, but it
-won't be.
-The only known major defects are the unreliable garbage collector, and the
-dummy implementation of setpagedevice/currentpagedevice.
-
-<h3><a name="V2.9.5b_Documentation"></a>Documentation</h3>
-
-<pre>
-Fixes bugs:
- - The file commnew.doc didn't belong in the fileset.
-
-Notes in the makefiles that SVR4 systems may need to set EXTRALIBS=-lnsl.
-
-Adds a user-contributed `man' page for the ps2epsi utility.
-
-</pre><h3><a name="V2.9.5b_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The IJG files didn't compile properly by themselves, because they
-didn't have $(AK) in their dependency list.
-
-Changes back the handling of files named on the command line, so that they
-are first sought in the current directory, and if that fails, use the
-search path. (2.9.4-beta changed things so that files on the command line
-did not use the search path, because as of that version, the search path
-doesn't necessarily include the current directory. I consider the "check
-the current directory and then use the search path" rule, which is the
-MS-DOS standard and was used in Ghostscript prior to 2.9.4, a serious
-mistake, since it is one of the best-known security holes in Unix and can
-also produce confusing and unexpected results depending on the current
-directory; I would much rather have a clear distinction between
-user-specified files, which should not use any path searching, and system
-files, that only use the defined search path. However, as of this moment,
-users seem to want the convenience at the expense of insecurity and
-confusion.)
-
-Adds '.' to the beginning of the search path for MS-DOS platforms, to
-conform to the usual MS-DOS file searching convention.
-
-Adds a -c ("code") switch, which interprets following arguments (until the
-next switch) as PostScript tokens.
-
-Changes the handling of FEATURE_DEVS so that either level1.dev or
-level2.dev must normally be selected. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE for Level 1 systems, which formerly set FEATURE_DEVS to an empty
-definition.
-
-</pre><h3><a name="V2.9.5b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - bench.ps didn't switch back to local VM properly before running
-the program being benchmarked.
-
-Adds a ppmsetpagesize command to the pstoppm utility.
-
-</pre><h3><a name="V2.9.5b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The PCX and GIF drivers used an incorrect algorithm for computing
-the blue component of the color palette, which could cause colors to come
-out with not quite enough blue.
- - The SPARCprinter driver wouldn't compile with non-ANSI compilers.
-
-Adds new drivers:
- - A user-contributed driver for DEC sixel displays like the VT240
-(sxlcrt, in gdevln03.c, which has a FSF copyright.)
- - A much larger and supposedly faster version of the TIFF/F driver
-(tiffg3x, in gdevtifx.c), contributed by a user. This has the same
-copyright as the TIFF/F driver (gdevtiff.c).
- - A driver (faxg3, in gdevfax.c) that produces plain Group 3 fax
-output with no header, using the CCITTFaxEncode filter to do the work.
-(This is around 2.5-3 times as fast as the other fax drivers distributed
-with Ghostscript.)
- - A user-contributed driver for the Mitsubishi CP50 color printer.
-
-Changes the `bit' driver so one can set the Colors and *Values properties.
-
-Makes the color mapping for PC displays, PCX files, and GIF files identical
-(they differed slightly before).
-
-</pre><h3><a name="V2.9.5b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - VMS used DISPLAY rather than DECW$DISPLAY to get the display name
-if opening the display failed.
- - Many minor bugs relating to OS/2 and Win32 were fixed.
- - On Unix and DV/X platforms, the install script didn't mkdir
-$(gsdir), and didn't mkdir the intermediate directory for the man page.
- - On BSD and UTek platforms, the declaration of memset in
-memory_.h, and the definition in gsmisc.c, conflicted with the ANSI
-declaration.
- - One of the SPARC compilers compiled the intersection computation
-in arc_either (gspath.c) incorrectly.
- - The temporary file names created under OS/2 could exceed the 8.3
-length limit.
-
-</pre><h3><a name="V2.9.5b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The test files for the IJG library had been damaged by EOL
-conversion.
- - The garbage collector didn't mark some of the most recently
-created names.
- - The interpreter would sometimes report a typecheck instead of a
-stackunderflow.
- - If aload didn't have enough room on the stack, it would report a
-rangecheck rather than a stackoverflow.
- - zcontext wouldn't compile, because it hadn't been updated to the
-new GC interfaces.
- - The definition of private_st_stream_proc_state in ifilter.h ended
-with a semicolon, which upset some compilers.
- - load didn't check to make sure that the dictionaries it examined
-had read access.
- - cvrs didn't handle negative numbers in radix 2 or 3 properly.
- - The allocator could become confused if it was asked to allocate a
-large array.
- - readline gave an ioerror rather than a rangecheck if it
-overflowed the string.
- - The allocator didn't free packed arrays properly.
- - The allocator's check for LIFO freeing of arrays was off by 1, so
-it never succeeded.
- - The undercolor removal and black generation procedures weren't
-initialized properly.
- - If the interpreter couldn't find gs_init.ps, it returned a random
-exit code.
- - If an operator expected a procedure and didn't get one, it
-sometimes gave an invalidaccess rather than a typecheck.
- - Unix file enumeration often did the wrong thing if there were
-directories in the pattern.
- - The ASCIIHexDecode filter read an extra character after the
-terminating &gt;.
- - scalefont didn't fill in ScaleMatrix properly.
- - The CCITTFaxEncode filter crashed if the width of the page wasn't
-a multiple of 8 bits.
- - The error printing code used .languagelevel, which wasn't defined
-in Level 1 configurations.
- - setpagedevice didn't pop its argument.
- - Definitions in statusdict didn't change according to the current
-language level.
- - Separation color spaces didn't allow strings as color space names.
- - Due to a bug in chunk_locate_ptr, the garbage collector sometimes
-decided incorrectly that a pointer was pointing outside collectable space.
- - (Many other garbage collector bugs were fixed.)
-
-Implements additional Level 2 features:
- - Garbage collection for strings.
- - Expandable operand and dictionary stacks, and the ability to set
- the maximum size of these stacks.
- - Additional user and system parameters. The following are dummies:
- AccurateScreens, JobName, JobTimeout, WaitTimeout.
- - Procedure-based filters usable with cvx/exec and token.
- - Separation color spaces (always using the alternate space).
- (These were theoretically implemented in version 2.6, but they were
- never tested and were actually missing most of the implementation.)
- - VMThreshold and VMReclaim for invoking GC automatically.
-
-Adds a hook in iscan.c for parsing DSC comments.
-
-Adds encoding and decoding filters for the BCP and TBCP protocols. These
-are not fully implemented yet:
- - The interrupt and status request characters are ignored on input,
- and never generated on output;
- - The TBCP encoder doesn't emit the start-of-protocol string;
- - The TBCP decoder doesn't recognize the end-of-protocol string.
-
-Factors out Type 1 font capability as a separate feature.
-
-Changes the names of some files:
- packed.h to ipacked.h;
- bnum.h to ibnum.h.
-
-Changes the name of the value.index member of a ref to value.boolval.
-(Internal change only.)
-
-</pre><h3><a name="V2.9.5b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - The definition of RELOC_PTRS_BEGIN in gsstruct.h wouldn't compile
-properly with non-ANSI compilers.
- - The JPEG library wouldn't compile properly with non-ANSI compilers.
-* - The platform font machinery gave up too easily in some cases.
- - CMYK devices needing halftoning converted the CMYK color to RGB.
- - The debugging code in arc_add (gspath.c) didn't print the output
-values correctly.
-
-Factors out Type 1 font capability as a separate feature.
-
-</pre>
-
-<h2><a name="Version2.9.4b"></a>Version 2.9.4-beta (2/19/94)</h2>
-
-<h3><a name="V2.9.4b_Procedures"></a>Procedures</h3>
-
-<pre>
-Changes Ghostscript's path searching algorithm so that it does not
-automatically look in the current directory first. (The former algorithm
-was more MS-DOS-like; the new one is more Unix-like.) If you want to
-include the current directory, you must include '.' in the search path.
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.
-
-Adds two new resource types for genconf.c:
- - -header filexxx.h adds #include "filexxx.h" to gconfig.h.
- - -libpath dir adds dir to the list of library search paths.
-
-</pre><h3><a name="V2.9.4b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - impath.ps (used by bdftops) computed the starting X coordinate
-incorrectly, typically causing characters to be displaced slightly to the
-right.
- - pstoppm.ps didn't handle local and global VM properly.
-
-Adds a ps2ai.ps utility, contributed by a user, for converting arbitrary
-PostScript files into a form compatible with Adobe Illustrator.
-
-</pre><h3><a name="V2.9.4b_Drivers"></a>Drivers</h3><pre>
-
-Adds new drivers:
- - A user-contributed driver for Imagen Impress laser printers.
- - A user-contributed driver for the DEC LA75plus printer.
-
-</pre><h3><a name="V2.9.4b_Platforms"></a>Platforms</h3><pre>
-
-Under OS/2, adds the ability to keep Ghostscript in memory for a
-specified number of minutes.
-
-Adds support for Win32 and Win32s.
-
-Changes the MS Windows platform font interface so that it does not attempt
-to render fonts at sizes smaller than 6 pixels. Changes the X Windows
-interface, which already did this for 4-point and smaller fonts, to also
-use a lower limit of 6 pixels. Also changes the X Windows platform font
-machinery so it does not render fonts at sizes larger than 36 pixels: at
-large sizes, Ghostscript does a perfectly good job, and some X font servers
-rasterize the entire font and lock up the entire window system while doing
-so.
-
-</pre><h3><a name="V2.9.4b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - currentdash always returned a new array of reals, rather than the
-actual argument of setdash.
- - Strings in binary object sequences read in as integers.
- - Because of a bug in chunk_locate_ptr, some large objects didn't
-get freed properly.
- - If an error occurred while processing an image, Ghostscript would
-attempt to free random blocks of storage.
- - Input filters discarded trailing data, rather than filling it out
-with zeros. (This is now fixed for ASCIIHexDecode and ASCII85Decode; it's
-not clear what other filters it should affect.)
- - The ASCII85Encode filter produced garbage output for the final
-1-4 bytes before EOD.
-* - The TIFF output driver produced incorrect output for the second
-and subsequent pages if the output was being produced on multiple files.
-* - The default handleerror did a 'stop', which was not correct.
- - gpcheck.h converted all positive return codes to 0 if interrupt
-checking was enabled.
- - Images with multiple data sources didn't work.
- - Images with 12-bit sample values didn't work.
- - Images with a file as the data source read additional data beyond
-what was required.
- - 2 vmreclaim worked (pretty much), but 1 vmreclaim didn't.
- - If %lineedit was opened multiple times, characters from later
-openings overwrote characters from earlier ones.
- - token returned garbage for the "remaining string" result when
-reading from a string, if it actually read all of the string. (New bug in
-2.9.2, probably.)
-
-Implements additional Level 2 features:
- - DCTEncode and DCTDecode filters.
- - Filters with procedures as the data source or target.
- (Except for token and cvx/exec.)
- - Garbage collection for names.
-
-Changes the error printout so that strings are always truncated at 200
-characters.
-
-For Level 2 systems, changes the initial setting of the object format
-parameter from 0 to an appropriate non-zero value.
-
-* Changes the .quit operator so that it takes two operands, an error object
-and an error code; if the latter is negative, the interpreter returns this
-as the error code, rather than e_Quit.
-
-Makes StandardEncoding and ISOLatin1Encoding arrays, rather than packed
-arrays, on large-memory systems, for compatibility with certain test
-suites. Changes .registerencoding to accept arrays as well as packed
-arrays.
-
-</pre><h3><a name="V2.9.4b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - Due to an error in cie_mult3, CIE-based colors were badly
-mis-mapped.
-* - Very narrow (but not empty) rectangles would disappear.
-* - Small halftone cells could smash the next higher entry in the
-halftone cache.
- - The orientation algorithm in gxstroke.c still interchanged
-clockwise and counter-clockwise coordinate systems (after having been
-"fixed" at least 3 times).
- - Stroking 1-pixel-wide lines shortened them, instead of
-lengthening them, if non-butt caps were requested.
-
-Refactors mem_mapped8_copy_mono because of limitations in the bcc32
-compiler.
-
-</pre>
-
-<h2><a name="Version2.9.3b"></a>Version 2.9.3-beta (1/19/94)</h2>
-
-<p>This version was created for evaluation purposes for a few users who
-needed Level 2 capability; it was never released to anyone else, even
-beta testers.
-
-<h3><a name="V2.9.3b_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The description of psview and xpsview was incorrect.
-
-</pre><h3><a name="V2.9.3b_Procedures"></a>Procedures</h3><pre>
-Changes the installation directories for Unix and similar systems to put
-Ghostscript data in $(datadir)/ghostscript/gs-NN.NN.NN rather than directly
-in $(datadir)/ghostscript. (Fonts still go in $(datadir)/ghostscript/fonts.)
-
-</pre><h3><a name="V2.9.3b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - Some spaces were incorrectly replaced with tabs in the help
-message in the 3B1 display driver.
- - The BMP driver wrote a spurious scan line at the beginning
-of its output.
- - The monochrome PCX driver had the two palette elements
-interchanged.
-
-Adds new drivers:
- - A user-contributed driver for the Xerox XES printer format. This
-has a FSF copyright.
- - A user-contributed driver for the Epson AP3250 printer. (This is
-the same as the Stylus 800, with slightly different margins.)
- - A user-contributed driver for the DEC LA70 printer with some
-algorithms for improving text at low resolutions. This has a FSF
-copyright.
- - A user-contributed driver for an intermediate-resolution mode
-for 9-pin "Epson-compatible" printers.
-
-Changes the name of the Stylus 800 driver from escp2 to st800.
-
-Adds a compile-time flag to the Epson driver to cope with Panasonic 9-pin
-printers, which sometimes have trouble mixing graphics and tabs.
-
-</pre><h3><a name="V2.9.3b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The MS Windows driver (gp_mswin.c) referred to iodev.h rather
-than gxiodev.h.
- - On Unix System V platforms, gp_unifs.c and gdevpipe.c were
-incorrectly omitted from the link list.
- - (Some?) System V platforms don't have the S_ISDIR macro,
-requiring a change in stat_.h.
- - The Unix `install' target didn't install gs_std_e.ps and
-gs_iso_e.ps.
- - No MODULES.LIS file was provided for VMS.
-
-Adds Desqview/X makefiles that actually work.
-
-Documents the set of H-P-supplied patches needed to make H-P's
-compilers process Ghostscript.
-
-Changes the MS Windows driver so that if the user presses the Enter key
-while the image window has the focus, the text window will be brought to
-the top and made the active window. This is useful when viewing a
-multi-page document with Ghostscript.
-
-</pre>
-<h3><a name="V2.9.3b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The definition of public_st_client_color() in gxccolor.h
-included an extraneous semicolon.
- - The definition of private_st_AXD_state() in sfilter.h included an
-extraneous semicolon.
- - saxx.c didn't include sfilter.h, which it needed for the
-definition of private_st_AXD_state().
- - ialloc_struct failed to create a separate chunk if the structure
-was very large.
- - setcolorspace didn't allocate the colorspace object in the same
-VM space as the graphics state, causing problems when the colorspace was
-freed.
- - In rare circumstances, currentfile could return an empty array
-rather than a file.
- - Dictionary keys were always allocated in global VM.
- - If NOPLATFONTS was true, definefont didn't check whether the
-dictionary was read-only before trying to insert an ExactSize key.
- - startjob could get an invalidaccess error, because serverdict was
-allocated in global VM.
- - Using definefont with an already registered font created a
-circular list structure.
- - If a PostScript procedure appeared as a CharString in a Type 1
-font, it was always called with the character name, never the character
-code.
- - The SubFileDecode filter didn't work with a non-empty EOD string
-(went into an endless loop). (Probably a new bug in 2.8.)
- - save/restore didn't properly restore the maxlength of a
-dictionary, causing data to get smashed at random. (New bug in 2.9.)
- - save didn't mark objects as old, so a nested restore had no
-effect. (New bug in 2.9.2.)
- - After returning from an OtherSubrs callback, op_type1_free
-freed the saved interpreter state incorrectly. (New bug in 2.7.)
- - Level 1 configurations didn't work because .makeoperator gave an
-invalidaccess error. (New bug in 2.9.2.)
- - ASCII85 string literals didn't work. (Probably a new bug in 2.8.)
- - If the current global/local allocation mode was different at the
-end of a file than at the beginning, an addressing fault could occur
-(gs_unregister_root in gs_run_string). (New bug in 2.9.2.)
- - After a setfileposition on a file open for reading,
-fileposition would return an incorrect value, even though the stream
-was actually repositioned properly.
-
-Brings the dictionary unpacking code for the DCT filters into line with
-Adobe Technical Note 5116, which describes the Picky parameter for
-DCTDecode and the NoMarker, Resync, Blend, Picky, and Relax parameters for
-DCTEncode.
-
-Changes the .quit operator so that if given a negative argument, the
-interpreter returns this as the error code, rather than e_Quit.
-
-Changes the Ghostscript integer version number from 100P+10S+T to
-10000P+100S+T.
-
-Changes the default halftone screen for high-resolution devices, both
-black-and-white and color.
-
-</pre><h3><a name="V2.9.3b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - The software floating multiply code used with USE_FPU=-1 only
-worked on little-endian platforms.
- - Specifying a left side bearing to .type1addpath produced an
-inappropriate offset.
-
-</pre>
-
-<h2><a name="Version2.9.2b"></a>Version 2.9.2-beta (1/2/94)</h2>
-
-<p>This version was distributed only to beta testers. It adds a garbage
-collector and full local and global VM support. It is the first version
-that sets languagelevel = 2, i.e., claims to be a Level 2 implementation.
-
-<h3><a name="V2.9.2b_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - make.doc still referred to use_* variables in gdevx.c, and
-use.doc didn't explain the use* X resources.
-
-Notes that -Olimit=1000 is needed to compile Ghostscript on AXP systems
-under OSF/1 1.3.
-
-</pre>
-
-<h3><a name="V2.9.2b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - viewgif.ps did not work with interlaced images.
- - font2c.ps omitted gsmemory.h from the #include list in compiled
-fonts.
-
-</pre><h3><a name="V2.9.2b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The MS Windows driver hadn't been updated to work with the
-new additions to the gx_device structure.
- - The BMP file driver wrote one scan line too many.
- - The cdj driver omitted an important cast to int in the error
-diffusion code (FSdither macro).
-
-Changes the SuperVGA drivers to recognize erasepage and reset the
-color table, like the X driver.
-
-Adds some fragmentary code to begin implementing the PostScript fax
-extensions.
-
-</pre><h3><a name="V2.9.2b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The procedure initializers for the MS Windows console I/O
-were missing the new reset element.
- - The makefile entry in bcwin.mak used -fdev rather than -iodev.
- - The Borland C++ makefiles exceeded MS-DOS's line length limit if
-the compiler files were in the standard Borland directory (BORLANDC).
- - Some procedures weren't declared with prototypes in gp_vms.c.
- - Some declarations had to be reordered to pacify the VAX compiler.
- - Under MS Windows, Ghostscript didn't automatically de-iconify the
-text window to display messages on an error exit.
- - The Unix makefile rule for gconfig_.h used echogs rather than
-./echogs.
- - The Microsoft C makefile referred to an obsolete file gs.tr.
- - gp_unifs.c used strpbrk and strrchr, which some systems lack.
-
-Updates the OS/2 code and documentation for compatibility with the current
-Ghostscript version.
-
-</pre><h3><a name="V2.9.2b_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
- - The X11 .pfa fonts replaced their .gsf requirements in the
-fontmap, but not distributed with the previous (beta) release.
-
-Adds fontmaps appropriate for use with DEC Ultrix and OSF/1 systems.
-
-</pre><h3><a name="V2.9.2b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - 4-value entries in the Metrics dictionary were interpreted with
-the width and side bearing interchanged.
- - Objects large enough to require their own chunk were not freed
-properly.
- - The GS_FONTPATH scanner didn't deal with the possibility that
-opening a file might fail.
- - The interrupt and timeout errors incorrectly pushed an error
-object on the operand stack.
- - imagemask gave an error if it was invoked with a dictionary
-argument with a current color space with more than 1 parameter.
- - definefont insisted that a new font not have a FID entry.
- - Some places didn't cast char to byte when needed.
- - An extra element was left on the stack when substituting the
-default font for a font whose file couldn't be found.
- - The CCITTFaxDecode filter didn't allow the dictionary to be
-omitted. (The Adobe documentation doesn't allow this, but Adobe
-implementations do.)
- - When the input came from a pipe (`-') switch, opening a filter on
-currentfile that required more than 1 input byte to make progress would
-cause Ghostscript to hang (in sreadbuf).
- - The interpreter didn't call gs_set_lib_paths before executing a
-compiled-in initialization file.
- - A stream could be closed more than once. (New bug in 2.8.)
- - The LZW decoder produced incorrect output if a code string was
-too long to fit into a single output buffer. (New bug as of 2.8.)
-
-Implements a special check in def to allow construction of systemdict,
-which is stored in global VM but references dictionaries in local VM.
-
-Implements additional Level 2 features:
- - %null% and %ram% IODevices.
- - startjob, exitserver.
- - Local and global VM (finish).
- - Garbage collection (for everything except names and strings).
-
-Moves the procedures for selecting paper size from systemdict to userdict.
-
-Sets languagelevel to 2 in Level 2 mode, since essentially all of
-Level 2 is now implemented.
-
-Factors out the Level 1 extended color facilities (CMYK color and
-colorimage) as a separate configuration feature.
-
-Adds some preliminary code to begin implementing the Adobe BCP and TBCP
-communication protocols.
-
-Changes the implementation of save and restore so that the bookkeeping
-structures are allocated in the new area, not the old. (This is an
-internal change not visible at the PostScript level.)
-
-</pre><h3><a name="V2.9.2b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - gdevprn used some preprocessor macros in formal argument
-lists that ansi2knr couldn't handle.
- - pick_cell_size called gs_distance_transform with a 0 argument
-that non-ANSI compilers didn't automatically promote to floating point.
- - gs_screen_init called hypot with integer arguments that
-non-ANSI compilers didn't automatically promote to floating point.
- - Some places didn't cast char to byte when needed.
- - The vx/vy origin adjustment for WMode=1 wasn't implemented.
- - The pattern cache wasn't initialized properly.
- - Composite fonts didn't properly decode strings that started with
-an escape sequence, which have a special (undocumented) decoding rule, and
-also didn't properly decode strings with multiple consecutive escape
-sequences.
-
-Factors out the Level 1 extended color facilities (CMYK color and
-colorimage) as a separate configuration feature.
-
-</pre>
-
-<h2><a name="Version2.9.1b"></a>Version 2.9.1-beta (12/7/93)</h2>
-
-<p>This version was distributed only to beta testers.
-
-<h3><a name="V2.9.1b_Utilities"></a>Utilities</h3><pre>
-Adds a viewgif.ps utility to view GIF files. The current version does not
-work with interlaced data, local color tables, or files containing more
-than one image.
-
-</pre><h3><a name="V2.9.1b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - putinterval and copy didn't do the right thing if the source and
-destination were aliases for overlapping sections of the same array or
-string.
- - The DCT filter stub didn't allow the dictionary to be omitted.
-(The Adobe documentation doesn't allow this, but Adobe implementations
-do.)
-
-Adds an optional dictionary argument to the LZWDecode filter, containing
-InitialCodeLength, FirstBitLowOrder, BlockData, and EarlyChange entries.
-Setting these parameters appropriately allows reading (non-interlaced) GIF
-data directly.
-
-</pre><h3><a name="V2.9.1b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - setdash produced inverted output if the pattern had an odd
-number of elements and the offset O had the property that L &lt;= O mod
-2*L, where L was the sum of the pattern elements.
-
-</pre>
-
-<h2><a name="Version2.9b"></a>Version 2.9-beta (12/6/93)</h2>
-
-<p>Like 2.7, this version was created to satisfy a contractual
-requirement,
-and will never be distributed to anyone other than the other party to the
-contract.
-
-<h3><a name="V2.9b_Documentation"></a>Documentation</h3><pre>
-Notes that Ghostscript runs on IBM PCs and compatibles under DR DOS
-6.0.
-
-Notes that Ghostscript will run on IBM PCs and compatibles with
-Hercules display cards if you redirect text output to a file.
-
-Notes that the alternate DeskJet 500C driver (djet500c) does not work
-on the 550C.
-
-Gives a list of system-specific directories where Type 1 fonts are
-likely to be installed, as a suggested setting for GS_FONTPATH.
-
-</pre><h3><a name="V2.9b_Procedures"></a>Procedures</h3><pre>
-Changes the distribution script so that it stores all text files in the
-main source archive with Unix end-of-line conventions, but with DOS
-end-of-line conventions in the MS-DOS-specific archive.
-
-Changes the MS-DOS, MS Windows, and OS/2 makefiles so that 486SX and 486DX
-processors are different CPU_TYPEs. (The former, designated by
-CPU_TYPE=485, does not include an on-chip FPU.)
-
-Adds a line to gs_init.ps which can be uncommented to select A4 as
-the default paper size.
-
-Adds a definable CFLAGS macro to the makefiles, allowing -DA4 to
-select A4 as the default paper size.
-
-Adds the H-P printer drivers to the standard Unix configurations.
-
-</pre><h3><a name="V2.9b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - If there were no unencoded characters, prfont.ps would get
-an error.
-
-Changes ansi2knr to accept a wider range of function declaration syntax,
-and to not depend on any Ghostscript header files.
-
-</pre><h3><a name="V2.9b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - Several drivers (DigiFax, Epson LQ-2550, NEC P6) didn't handle
-A4 paper width.
- - The IBM ProPrinter wasn't being initialized properly.
- - The Epson driver didn't work properly with compilers that
-insisted on 'char' being a signed type.
- - The Epson driver ignored its end_string argument, producing
-incorrect end-of-page behavior on some printers.
-
-Adds new drivers:
- - User-contributed drivers for Bellcore MGR (a window manager most
-commonly used with OS-9) devices.
- - A user-contributed driver for the CIF file format.
- - A user-contributed driver for the HP 2563B line printer.
-
-Changes the LaserJet 2p, 3, and 4 drivers so they set the initial position
-to (0,0) rather than (0,0.25"). (I don't remember why it was the other
-way.)
-
-Implements the PageCount property in all drivers, not just printer
-drivers.
-
-Introduces a new gx_tile_bitmap type, and changes the tile_rectangle
-device procedure to take it in place of gx_bitmap. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE. However, it only affects devices that
-implement their own tile_rectangle procedures, of which there aren't very
-many.
-
-</pre><h3><a name="V2.9b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The VMS module lists referred to SDCTD and SDCTE instead of
-SDCT.
- - The Unix install script tried to install the non-existent file
-readme.doc.
- - Microsoft C does something bizarre with empty macro parameters,
-which caused a problem with the gs_struct_type_... macros.
- - The Unix platforms didn't automatically handle the presence
-or absence of &lt;dirent.h&gt;.
- - The DEC Alpha OSF/1 1.3 library lacks `const' in the prototype
-for popen, which requires a workaround.
- - The DEC Alpha OSF/1 1.3 X Windows library uses `private' as a
-member name.
-
-Splits off gp_unifs.c, containing code common to "Unix-like" file systems.
-
-Adds a user-contributed OS-9 platform.
-
-</pre><h3><a name="V2.9b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The currentfile cache wasn't updated properly if an executable
-file appeared in the middle of a procedure. In particular, eexec-encoded
-.PFB fonts often didn't work.
- - There was an extraneous `goto top' in scfd.c.
- - An integer constant overflowed in iname.c.
- - -2147483648 (i.e., -1 &lt;&lt; 31) was converted to a float.
- - eexec didn't skip the first 4 characters correctly if they were
-split across a buffer boundary.
- - The font/matrix pair cache didn't properly free entries with only
-an XUID that was being deallocated.
-
-Implements additional Level 2 features:
- - Patterns, makepattern, setpattern.
- - IODevice resource, setdevparams, currentdevparams.
- - OutputDevice resource, setpagedevice, currentpagedevice.
- (Partially implemented.)
-
-Adds a new type t_struct to handle miscellaneous types that are allocated
-as objects and that the interpreter doesn't handle specially, and changes
-condition, fontID, gstate, lock, and save types to use t_struct. (This is
-an internal change, not visible at the language level.)
-
-Moves the maxlength of a dictionary to its own ref, eliminating the "size
-of integer" hack. (This is an internal change, not visible at the
-language level.)
-
-Adds the last OS error number to the error printout.
-
-Removes the obsolete framedevice operator.
-
-Implements resetfile (the only Level 1 operator not yet implemented!).
-
-Changes the name of the getdevice operator to .getdevice.
-
-</pre><h3><a name="V2.9b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - A couple of necessary casts from char * to byte * were omitted.
- - A Sun compiler required an extra cast to (void *) in the e1
-macro in clip_rect_enum_ptrs in gxcpath.c.
- - The gx_dc_ procedures defined in gxdraw.c weren't marked as
-'private'.
- - The number of "on" pixels in a halftone cell sometimes varied by
-1 from cell to cell.
- - Mapping a gray level to CMYK didn't subtract it from 1 (to
-produce the K component).
-* - charpath took hints into account.
-
-Shuffles the order of some declarations to pacify the VMS C compiler.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.8b"></a>Version 2.8-beta (11/10/93)</h2>
-
-<p>This version was distributed only to beta testers. It adds Type 0
-font
-support. It also includes extensive redesign of streams (to eventually
-support procedure streams) and device properties (to eventually support
-get/setpagedevice and get/setdevparams).
-
-<h3><a name="V2.8b_Documentation"></a>Documentation</h3>
-
-<pre>
-Notes the change in X11 foreground/background handling.
-
-Changes README so it no longer claims that Ghostscript works with X11R3.
-
-Notes (in devs.mak) that the cdjmono driver is the best one to use for the
-DeskJet 510.
-
-</pre><h3><a name="V2.8b_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - echogs wasn't always invoked with ./ on Unix systems.
-
-Changes the file name unix-ansi.mak to unixansi.mak, so it can be created
-on a MS-DOS system.
-
-Adds a new "feature", ccinit.dev, which compiles and links the
-initialization files (gs_*.ps) into the executable, just as ccfonts.dev
-compiles and links fonts. If ccinit and ccfonts are both selected, the
-only external file needed at run time is Fontmap. Note that you must have
-a working version of Ghostscript already in order to create a version that
-uses the ccinit feature, just as for ccfonts.
-
-</pre><h3><a name="V2.8b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - the ps2image utility didn't put a %! on the first line of the
-output.
-
-</pre><h3><a name="V2.8b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The Hercules display driver didn't include definitions for
-outport2 and PAGE_HEIGHT_INCHES, which it uses.
- - The BGI driver didn't call setactivepage or setvisualpage,
-which it needs to do in general.
- - The Apple DMP driver declared dmp_print_page rather than
-appledmp_print_page, causing a compilation error.
-
-Changes the X11 driver so that it doesn't use the default foreground and
-background colors: you must set foreground and background explicitly for
-Ghostscript if you want them to be other than black and white
-respectively.
-
-Adds new user-contributed drivers for:
- - The StarJet 48 inkjet printer;
- - The GNU/Linux VGALIB display interface.
- - OS/2 Presentation Manager.
-
-Changes the margins of the Epson driver to 0.2, 0.0, 0.0, 0.0, which
-more accurately reflect the printer's capabilities.
-
-Changes the get_props and put_props device procedures to take property
-list "objects" with a procedural interface, rather than a data structure
-interface. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. It affects all
-get_props and put_props procedures. Fortunately, there were only a few
-devices that implemented their own get_props and put_props procedures (the
-H-P color printers, and the three window systems -- X Windows, MS Windows,
-and OS/2 PM).
-
-</pre><h3><a name="V2.8b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The meaning of the -p switch for the Watcom compile-and-link
-program was changed between Watcom C/386 versions 8.5 and 9.5, causing the
-make process to malfunction.
- - The SCFTAB and SCFDTAB modules were omitted from the VMS link
-list.
-
-Adds user-contributed code for OS/2.
-
-Removes the assumption that an 80486 CPU implies the presence of hardware
-floating point, since the 486SX and Cyrix 486SLC don't have it.
-
-</pre><h3><a name="V2.8b_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
-* - The GS_FONTPATH scanner didn't recognize .PFB fonts beginning
-with %!PS-AdobeFont.
-* - The GS_FONTPATH scanner often didn't recognize .PFB fonts at all.
- - Type 1 fonts always set the line join, line cap, and miter limit
-to known values, rather than using the current values. (Using the current
-values doesn't make much sense, but it's apparently what the Adobe
-implementations do.)
- - DISKFONTS didn't work, because of the change in the Ghostscript
-fonts to do a systemdict begin/end (in version 2.7.1).
-
-</pre><h3><a name="V2.8b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - == didn't produce exactly the same output as the Adobe
-interpreters. (Some automated debugging and testing programs care.)
- - The CCITTFaxEncode filter could get caught in an infinite loop,
-because it failed to mask a byte datum when scanning for runs of black
-pixels.
- - The write operator gave an error for values outside the range 0
-to 255, rather than just using the low-order 8 bits.
- - Some applications call a statusdict procedure named
-setresolution without checking first whether it is present; Ghostscript
-didn't provide one.
- - Reading from a closed stream caused an error instead of
-returning EOF.
- - Input streams didn't close automatically at EOF.
- - findfont was defined as an operator, not a procedure.
- - closefile on a closed file gave an error. (It isn't obvious
-that the Adobe documentation specifies that it shouldn't, but that's what
-Adobe says they do.)
- - The LZWDecode filter didn't handle codes representing strings
-longer than the buffer size correctly.
- - The LZWDecode filter only allowed 4095 codes to be used, rather
-than 4096.
- - The rand operator produced an infinite string of zeros if
-given 0 or 0x7fffffff as the seed.
- - When a CDevProc procedure was called, there was an extra
-copy of the character name on the operand stack below the operands of
-CDevProc.
-
-Replaces all stream implementations with new ones designed to allow
-interruption at arbitrary times. ****** The 2-D case of CCITTFaxEncode
-hasn't been converted (but it probably didn't work before, either).
-
-Implements additional Level 2 features:
- - Type 0 (composite) fonts.
-
-Adds an eexecEncode filter.
-
-Implements setcolorscreen, which was accidentally omitted from 2.7.
-
-</pre><h3><a name="V2.8b_Library"></a>Library</h3><pre>
-Fixes bugs:
-* - In colorimage, if the color space of the image was different
-from the current color space, and the first data values on a scan line
-were zeros, the wrong color could result.
- - The new flatness testing algorithm could overflow, producing
-straight lines or obvious polygons instead of curves.
- - Images could fail to display pixels after the first non-blank
-pixel on a line if halftoned color was required. (This bug was probably
-introduced in 2.7.)
- - Interpolation between transfer map entries didn't work, because
-of a rounding/truncation bug in frac2bits (bug introduced in 2.7.1.)
- - cshow did an extra grestore at the end.
-
-* Implements a hack to slightly displace 1-bit-wide or -high images. This
-is necessary to work around a bug in TeX (or dvips?), which uses such
-images to draw horizontal and vertical lines without positioning them to
-ensure that they cover device pixel centers.
-
-Adds support for composite fonts (no new client procedures).
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.7.2b"></a>Version 2.7.2-beta (10/11/93)</h2>
-
-<p>This version was distributed only to alpha testers.
-
-<h3><a name="V2.7.2b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - prfont.ps didn't print unencoded characters.
-
-Improves mergeini.ps to remove embedded comments.
-
-</pre><h3><a name="V2.7.2b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - An error occurring within the scope of an internal .stopped
-didn't pop the command and error name off the stack.
-* - The = and == procedures weren't re-entrant.
-
-* Adds a .writecvs operator that does a cvs to an internal string followed
-by a writestring.
-
-</pre><h3><a name="V2.7.2b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - grestore freed the path and the clip path in an order that
-was likely to lead to memory sandbars.
- - moveto + closepath didn't actually close the path.
- - moveto + reversepath produced an empty path (no moveto).
- - moveto + closepath + reversepath produced an extra lineto.
- - reversepath didn't set the current point to the end (i.e., the
-former beginning) of the last subpath.
-
-Adds a "planar" memory device.
-
-</pre>
-
-<h2><a name="Version2.7.1b"></a>Version 2.7.1-beta (10/4/93, not distributed to the public)</h2>
-
-<p>Like 2.7, this version was created to satisfy a contractual
-requirement,
-and will never be distributed to anyone other than the other party to the
-contract.
-
-<h3><a name="V2.7.1b_Documentation"></a>Documentation</h3><pre>
-Documents the GS_OPTIONS environment variable.
-
-Adds a summary of all environment variables to the documentation
-(use.doc).
-
-Documents the existence of a third free viewer built on Ghostscript.
-
-</pre><h3><a name="V2.7.1b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - wrfont didn't wrap a systemdict begin / end around the body of
-the font.
- - wrfont wrote out the Symbol and ZapfDingbats encodings in a way
-that only worked if the encoding was known by name.
-
-Changes bdftops to include an XUID if desired.
-
-Changes bdftops so that it uses 'show' for unknown ligatures, rather than
-executing the characters as subroutines; this makes such ligatures work
-properly with xfonts.
-
-</pre><h3><a name="V2.7.1b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The PCL drivers sent a printer reset (&lt;ESC&gt;E) at the beginning
-of every page, instead of only before the first page.
- - The PCX driver didn't round up the scan line width in the
-header, even though it produced scan lines with the correct (rounded)
-number of bytes.
-
-Adds a new map_rgb_alpha_color procedure. This is a backward-compatible
-change; this procedure defaults to calling map_rgb_color.
-
-</pre><h3><a name="V2.7.1b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - On Unix platforms, the value of the TEMP environment variable
-had to end with a '/'.
- - On MS-DOS systems, printer output to devices other than PRN
-(specifically, LPTn) didn't put the device into binary mode.
-
-Adds FPU_TYPE to the Unix makefiles, with a default value of 1.
-
-Removes the mention of Xmu linking problems on the SunOS platform,
-since the problem no longer exists.
-
-Changes the order of X Windows libraries from Xt X11 Xext to Xt Xext X11.
-This makes the OSF/1 linker happier.
-
-</pre><h3><a name="V2.7.1b_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
- - All the fonts originated by Aladdin, and the shareware fonts,
-had UniqueIDs in the 4xxxxxx range, which is only supposed to be used for
-limited-distribution fonts.
-* - When Ghostscript loaded a font, it pushed a scratch dictionary
-on the dictionary stack, rather than userdict. (Note that this fix also
-requires fixing the fonts to include a protective systemdict begin /
-end; see below.)
-* - When loading a font failed, Ghostscript didn't check the font
-name against the default font name properly.
- - Ghostscript's own fonts didn't include a systemdict begin /
-end to guard against redefinition of names used in the reading
-procedures (e.g., index).
-* - When Ghostscript scanned a .PFB font to get the FontName, it
-didn't skip over the 6-byte header, which could cause confusion or a
-syntaxerror.
- - Loading a .PFB font that left extra information on the
-operand stack didn't work.
-
-Changes the ZapfDingbats font to use DingbatsEncoding rather than include
-a copy of the encoding in itself, if DingbatsEncoding is known. Changes
-the Symbol font similarly.
-
-Removes eexec encryption from the 4 URW fonts, so they will work with
-DISKFONTS.
-
-Adds shareware Hiragana and Katakana fonts (Calligraphic-Hiragana and
-Calligraphic-Katakana, by Kevin Hartig).
-
-Adds GS on the end of the family names of all of Aladdin's own converted
-fonts.
-
-Replaces many of the Hershey fonts with new ones (mostly Type 1) created
-by Thomas Wolff, who added accents, accented characters, and other
-non-alphabetics. These too now have proper UniqueIDs.
-
-</pre><h3><a name="V2.7.1b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
-* - imagemask interpreted the Decode array incorrectly (inverted).
- - Running out of memory when constructing a path incorrectly
-signalled a limitcheck rather than a VMerror.
- - restore didn't purge uncached scaled fonts properly.
-
-Adds alpha (opacity) to the graphics state, and setalpha and
-currentalpha operators.
-
-Redefines erasepage in terms of a new .fillpage operator that fills
-the current page with the current color and then does a sync_output.
-
-Redefines setdevice and putdeviceprops in terms of new .setdevice and
-.putdeviceprops operators that return a boolean indicating whether the
-page needs to be erased. With this change, operators that erase the page
-always call erasepage at the interpreter level rather than calling
-gs_erasepage directly.
-
-</pre><h3><a name="V2.7.1b_Library"></a>Library</h3><pre>
-Fixes bugs:
- - The null device allowed its size to be reset.
- - clippath didn't establish a current point if the clipping
-path was empty.
-* - The Type 1 font interpreter (gs_type1_interpret) flattened
-curves even if it was being invoked for charpath.
- - Colored halftones usually didn't come out with the correct
-phase, and had several other problems.
- - A show or charpath within a BuildChar procedure didn't work.
- - Accented characters composed with seac used the base
-character width instead of the composed character width. (The Adobe
-documentation says these must be the same, but some commercial fonts
-don't obey this.)
- - setcurrentpoint in the accent of a character composed with
-seac didn't take the accent's displacement into account.
-
-Adds an alpha (coverage) value to the graphics state, and
-gs_setalpha/currentalpha procedures. Currently Ghostscript just passes
-the alpha value to the driver; it doesn't attempt to emulate alpha
-handling if the driver doesn't support it.
-
-Redefines gs_erasepage to call gs_fillpage.
-
-Bypasses the fill code if the clipping box is empty. This makes a big
-difference for stringwidth, and doesn't hurt anything else.
-
-Changes frac_1 from 0x7fff to 0x7ff8. This allows exact representation of
-practically all useful fractions, since this number (32760) is
-2*2*2*3*3*5*7*13.
-
-Changes float to double in several matrix routines for better accuracy.
-
-Adds new device properties to implement the deviceinfo operator:
-Colors, GrayValues, RedValues, GreenValues, BlueValues, ColorValues.
-Also adds HWBitsPerPixel and HWColorMap.
-
-Changes the sorting algorithm for halftones to use qsort instead of
-special code.
-
-Changes the Type 1 interpreter so that it uses the current point, rather
-than (0,0), as the character origin.
-
-</pre>
-
-<h2><a name="Version2.7b"></a>Version 2.7-beta (9/20/93, not distributed to the public)</h2>
-
-<p>This is the first of a series of beta-only versions planned for
-release
-between 2.6.n and 3.0. This version, in particular, was created to
-satisfy a contractual requirement, and will never be distributed to anyone
-other than the other party to the contract.
-
-<h3><a name="V2.7b_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The "HP XLFD extensions" to X11R5 are not specific to H-P
-platforms.
- - The configuration generation script used rm rather than rm -f.
- - gs.1 was installed in $(docdir) rather than $(mandir);
-$(mandir) wasn't defined.
- - ansi2knr.1 was installed in $(docdir), which was
-inappropriate because ansi2knr itself wasn't installed anywhere.
-
-Moves documentation for versions 2.4.x and 2.5.x to history.doc.
-
-Moves the documentation on how to add devices to the configuration
-from devs.mak to make.doc.
-
-Changes the name of readme.doc to current.doc, since the presence of
-two "readme" files was confusing to users.
-
-Documents how to use the Microsoft Windows PostScript printer driver
-to convert TrueType fonts to Type 1 fonts embedded in the document.
-
-Corrects several errors in the documentation of the get_bits driver
-procedure.
-
-Documents the fact that X11R3 is no longer supported.
-
-Removes the last references to "Ghostscript" from the comments in the
-gs_*.ps files. The only remaining reference, other than the boilerplate
-comments at the beginning of each file, is in the message at the end of
-gs_init.ps.
-
-Documents the use of WMAKEL rather than WMAKE with the Watcom compiler.
-
-</pre><h3><a name="V2.7b_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
-* - The Unix install script used gs rather than $(GS) as the name of
-the executable.
-* - The Unix install script didn't copy gs_dbt_e.ps to $(gsdatadir).
- - genconf.c used ps2 as a variable name; ps2 is a predefined
-preprocessor symbol in the VSC compiler used by IBM.
- - @-expansion didn't interact properly with -- and -+.
- - The Unix install script didn't copy COPYING to $(docdir),
-and copied README to $(gsdatadir) rather than $(docdir).
- - ps2ascii used /bin/sh -f, which is an incorrect flag.
-
-Removes all uses and mentions of USG (a now-obsolete GNU convention)
-as a synonym for SYSV.
-
-Removes filter.dev and dps.dev from FEATURE_DEVS if level2.dev is
-included, since they don't add anything beyond level2.dev.
-
-Changes the ccgs script to explictly remove the old .o file before
-doing the mv, for the benefit of people who have changed mv to prompt
-before overwriting. Changes the configuration script to use rm -f
-for the same reason.
-
-Changes the -Z switch so an empty list of options does nothing, rather
-than turning on all options.
-
-Adds a -@ switch which is like -- and -+ except that it does
-@-expansion of arguments.
-
-Changes genconf so it takes patterns from the command line that describe
-how to write the linker control files, rather than having the patterns
-built in.
-
-Changes -d and -D so that if no value is supplied, the default is
-true rather than null.
-
-</pre><h3><a name="V2.7b_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
-* - The ps2ascii script still referenced ps2ascii.ps under its
-old name gs_2asc.ps.
-* - ps2image.ps had a 'pop' missing in the written-out
-definition of 'max' in the boilerplate code it put at the beginning
-of compressed files.
-* - ps2image.ps got a typecheck if a scan line had no repeated
-data in it anywhere.
- - wrfont.ps didn't handle CharStrings or Subrs that weren't
-strings.
- - mergeini.ps produced an init file that incorrectly
-attempted to load the Symbol and Dingbats encodings dynamically.
-
-Removes the gsview.bat file, since it was confusingly named and not
-generally useful.
-
-Changes bdftops back to using encrypted CharStrings, for compatibility
-with Adobe interpreters, but also changes lenIV to 0, to save a little
-more space.
-
-Changes the traceop utility so it makes traced operators appear to be
-operators, and so it will replace a definition in systemdict if explicitly
-requested to do so and systemdict is writable.
-
-Adds a printafm utility for printing the metrics of fonts in AFM format.
-
-</pre><h3><a name="V2.7b_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The cdj driver was missing a few type casts that were needed to
-satisfy pedantic compilers.
- - For banded devices, many of the non-displaying target routines
-were getting called with the original device as the first argument, not
-the target device. (This didn't make any difference in practice, because
-gdev_prn_open explicitly copied the non-rendering procedures back into the
-procedure vector.)
-* - The X driver didn't catch and discard bogus errors on
-XFreeColors, which faulty servers generate.
-* - The X driver gave up on color allocation too easily.
-* - The X driver dynamic color table size could become negative.
-* - x_lookup_font could return platform fonts of very small sizes,
-which have very inaccurate metrics.
-* - The ESCP/2 driver was incorrectly named gdevescp2 in devs.mak.
- - The Apple DMP driver used #if 0 / #endif instead of comment
-brackets, and was incorrectly named "dmp" instead of "appledmp" in
-the source code.
-* - The X driver didn't free dynamic colors at the start of each page.
-* - The X driver didn't bind foreground/background defaults tightly.
-* - The X driver didn't check for GHOSTVIEW_COLORS properly.
-* - The X driver freed too many colors if an allocation request failed.
-* - The X driver didn't check return value of gs_malloc for being NULL.
-* - The DeskJet/LaserJet driver used an incorrect command for
-end-of-page.
-* - The DeskJet/LaserJet driver incorrectly reset the printer at the
-beginning of every page.
-* - The PCX driver put an old version number in the header, and
-didn't pad scan lines to an even number of bytes.
- - The BMP driver used a variable named `quad', which is a
-reserved word on some platforms.
-* - The TIFF driver didn't handle A4 or B4 size paper correctly.
-* - The X11 driver incorrectly demanded the Xmu library, which was
-not needed and which caused link errors on some versions of SunOS.
-* - X11 font matching scheme was too loose, causing overlaps and
-other problems.
-* - X11 Font Extensions (rotated and mirrored fonts) did not work
-properly on NCD terminals.
-* - When freeing the rgb cube/gray ramp, the parameters to gs_free()
-did not exactly match the parameters to gs_malloc().
-* - Ghostscript failed to warn the user when it could not allocate
-the original color cube/gray ramp and dropped back to a smaller
-cube/ramp, or from color to mono.
-* - x_release could cause Ghostscript to fail if a font was freed
-after the device was closed.
- - The X driver continued to ask the server for colors even after a
-request failed, causing colored images to display very slowly.
-
-* Adds a pcxgray driver to provide 8-bit gray scale output in PCX format.
-
-Adds a pcx24b driver to provide 24-bit RGB color PCX output.
-
-* Adds a LaserJet 4 driver.
-
-Adds a user-contributed driver for the DEC LA70 (very similar to the LA75).
-
-Substantially improves the performance of the PxM drivers by eliminating
-an unnecessary copying step and by writing each scan line with a single
-fwrite when possible.
-
-Moves the gray-scale and 24-bit RGB device color mapping routines to
-gxcmap.c from gdevpcx.c and (nowhere).
-
-Allows window granularities smaller than 64K in the VESA driver.
-
-Changes the LaserJet margins again.
-
-</pre><h3><a name="V2.7b_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - Platforms where stat doesn't return a st_blocks value
-computed the block count wrong.
- - In gp_vms.c, the call on SYS$FILESCAN needed two uint *s
-rather than a long * and a struct *.
-* - The VMS script files referenced IBSCAN instead of ISCAN2,
-and omitted GDEVXXF.
-* - The UUENCODEd icons for the MS Windows platform were omitted
-from the fileset.
-* - On MS-DOS systems, filenameforall didn't interpret * alone
-as a pattern matching all files.
-
-Adds wildcard matching capability to filenameforall under Unix.
-
-Removes gp_file_status from the platform interface, since all
-platforms provide identical stat calls in the C library.
-
-Adds DesqView/X (using djgcc and go32) as a platform.
-
-Removes the S3 driver from the standard PC configurations.
-
-Adds documentation for compiling Ghostscript on the Intergraph Clipper.
-
-Updates the documentation to add a better list of X Windows font
-names for the Sun platform.
-
-</pre><h3><a name="V2.7b_Fonts"></a>Fonts</h3><pre>
-
-Creates an external file (gs_dbt_e.ps) with the ZapfDingbats encoding
-(actually in 2.6.1, but not documented there).
-
-Changes the names of the Cyrillic fonts to Shareware-Cyrillic-Regular
-and Shareware-Cyrillic-Italic, keeping Cyrillic, Cyrillic-Regular,
-and Cyrillic-Italic as aliases.
-
-* Removes the requirement that the FontName in the font file be the same
-as the name in Fontmap. (This requirement led to the need for aliases,
-and was extremely confusing to users.)
-
-* Adds a GS_FONTPATH environment variable containing a list of directories
-that should be scanned automatically for fonts.
-
-* Gets rid of the Ugly font, and changes the default to the IBM Courier
-font, which is freely distributable.
-
-</pre><h3><a name="V2.7b_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - cvs didn't check for stack underflow.
-* - zht2.c didn't include alloc.h.
-* - execstackoverflow cleared the e-stack instead of just
-cutting it back.
- - if and ifelse incorrectly reported typecheck instead of
-stackunderflow.
- - Copying a dictionary could alter some items even if a later
-item causes an invalidaccess error because of an attempted store of a
-local object into global VM.
- - bitshift and cvrs assumed that longs occupied 32 bits.
-* - exitserver didn't check the password, and always succeeded.
- - Font loading didn't suppress all output messages if QUIET
-was set.
-* - The interpreter incorrectly pushed its exit procedure on
-the e-stack if it was called again after an interrupt.
-* - The interpreter didn't treat timeout like interrupt in
-terms of re-executing the current operation.
-* - `show' operators popped their operands before they were
-sure they wouldn't be interrupted.
-* - rotate with a matrix operand didn't check for multiples of
-90 degrees.
- - In the system name table, ge was misspelled eg, and
-pathforall was misspelled pathfoall.
-* - file_close_file attempted to free the buffer even if it was an
-externally supplied string (specifically, the argument of gs_run_string).
- - setprintername (in gs_statd.ps) set printername rather than
-.printername.
-
-Implements additional Level 2 features:
- - Indexed color space with lookup procedure.
- - sethalftone, except for the transfer function override,
- and currenthalftone.
-
-Implements OtherSubrs for indices greater than 3 (required for
-MultiMaster fonts).
-
-Implements black generation and undercolor removal.
-
-Changes `store' from a C procedure to a PostScript procedure.
-
-Changes idiv back so it requires integer operands, per the Adobe
-documentation but not per some old Adobe interpreters.
-
-* Adds many new paper sizes to gs_statd.ps. It now includes ISO a0-a10
-and b0-b10, and CAD sizes archA-archE.
-
-Implements `status' for non-%os% files. (This is currently a no-op,
-but the framework is there.)
-
-Changes the error handler so it normally uses = rather than == to print
-the operand stack, to avoid recursive errors.
-
-* Adds time slicing capability to the interpreter.
-
-Implements setcolorscreen/currentcolorscreen.
-
-</pre><h3><a name="V2.7b_Library"></a>Library</h3><pre>
-Fixes bugs:
-* - Rectangles with vertices specified in clockwise order were
-drawn as 0-width lines.
-* - The string matching function reported that 'abcdefg'
-matched the pattern 'abcde'.
-* - The bounding box of non-rectangular clipping paths was not
-being marked as valid, so cached characters would simply get
-discarded as being outside the bounding box.
- - erasepage filled the page with the device's white color,
-not with gray level 1 passed through the transfer function.
-* - Colors with equal R/G/B or C/M/Y components were rendered
-incorrectly if the 3 or 4 transfer functions were not all the same.
-* - Because of a bug in rc_unshare, using CIE color would give
-random errors (such as /invalidaccess in --for--).
-* - setbbox didn't round the coordinates properly, which could
-cause erroneous rangecheck errors with coordinates on the edge of the
-box.
-* - Color halftones "flipped over" at the 50% point, inverting
-foreground and background.
- - Quite a few places assumed that longs occupied 32 bits.
-* - kshow passed an incorrect c1 value to the procedure.
- - The debugging code in update_x_list in gxfill.c didn't take
-into account the possibility that the active line at x_first might be
-deleted.
- - gx_image_cached_char called the xfont render_char procedure an
-extra time if it failed with required=0 and succeeded with required=1.
-(This was just a small inefficiency, not a logic bug.)
- - Non-rectangular clipping regions weren't computed correctly,
-because accum_add_rect didn't handle overlapping rectangles.
- - Drivers didn't report file system errors (such as file system
-full) as an ioerror.
-* - setdevice didn't reset the charpath and setcachedevice flags.
- - The Zortech compiler produced wrong code for the uid_equal
-macro; uid_equal is now a procedure.
-
-Passes OtherSubrs arguments back to the caller correctly for indices
-greater than 3.
-
-Implements black generation and undercolor removal.
-
-Removes gdev_mem_ensure_byte_order, which was no longer used or useful.
-
-Removes gstdev.c (device tracing), since it hasn't been used in a
-long time and is of little value given a reasonable debugger.
-
-Changes the interface to the xfont char_metrics and render_char
-procedures to allow them to return 1.
-
-Changes 32-bit memory devices so they use CMYK color mapping rather
-than RGB mapping with an unused byte.
-
-Implements gs_setcolorscreen/currentcolorscreen.
-
-Implements Level 2 halftones, except for the transfer function override.
-
-Implements a hack to make zero-width rectangles display as one pixel wide,
-to work around a bug in the Microsoft Windows PostScript driver.
-Currently the hack only works for vertical lines, not horizontal ones.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.6.1"></a>Version 2.6.1 (5/28/93)</h2>
-
-<p>This is primarily a bug-fix release for 2.6, with a couple of minor
-additions.
-
-<h3><a name="V2.6.1_Documentation"></a>Documentation</h3><pre>
-
-Adds proper `man' pages ansi2knr.1 and gs.1.
-
-</pre><h3><a name="V2.6.1_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The Unix makefile produced an incorrect linker command if
-EXTRALIBS was not empty.
- - The Unix install commands didn't copy devices.doc,
-ps2epsi.doc, and xfonts.doc to the documentation directory.
- - echogs.c didn't include &lt;sys/types.h&gt;, which is needed for
-time_t on some systems.
- - malloc_.h used &lt;malloc.h&gt; rather than &lt;stdlib.h&gt; on
-NeXTStep systems.
-
-Changes the configuration procedure to use a C program rather than
-complex shell scripts.
-
-</pre><h3><a name="V2.6.1_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - The boilerplate produced by ps2image used the 'max'
-operator, which is not a standard PostScript operator.
- - The winmaps.ps utility had 'floring' instead of 'florin' in
-the OEMEncoding table.
- - quit.ps was omitted from the PC distribution.
-
-Changes the name of the dicttomark procedure to .dicttomark.
-
-Renames gs_2asc.ps as ps2ascii.ps, so it matches the names of the
-script files.
-
-</pre><h3><a name="V2.6.1_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The pbmraw driver was writing out RGG instead of RGB values.
- - The X11 driver used NULL in a place where it should have
-used None.
- - For multi-file output, the GIF driver didn't write a header
-at the beginning of each file.
- - The Epson driver didn't honor the -A4 compilation switch,
-didn't put (0,0) at the physical corner of the page, and was too
-liberal about using tabs instead of spaces.
-
-Replaces the color handling algorithms in the X Windows driver with
-new, much better ones.
-
-Makes the PC display drivers recognize the -A4 compilation switch,
-like the printer drivers.
-
-Adds new user-contributed drivers:
- - A driver for Epson printers that use the ESC/P 2 control
-language, such as the Stylus 800.
- - A driver for the Apple Dot Matrix Printer and Imagewriter.
-
-Adds a new get_xfont_device driver procedure. This is a
-backward-compatible change, since there is a sensible default.
-
-</pre><h3><a name="V2.6.1_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - On VMS, gconfig.h didn't have #include "gsconfig.h" as its
-first line.
- - gconfig.c compiled incorrectly on the RS/6000 because the
-compiler evaluated a constant of the form (x&lt;&lt;y)+z incorrectly.
- - Quite a few files that used the mem... functions didn't
-include memory_.h, which caused trouble on some bsd4.2 systems.
- - The definition of zfont_char_xglyph confused one of the AIX
-compilers.
- - On VMS, DEC C allows extra arguments for fopen, but gcc doesn't.
- - On the MS Windows platform, 2.6 used gdevwddb rather than
-gdevwdib; the latter is almost always faster.
- - The PC .zip files didn't include the Windows .ICO and .RES
-files in either GSEXE.ZIP or GSFILES.ZIP.
-
-On PC platforms, adds an option (FPU_TYPE=-1) to optimize for
-machines lacking a floating point processor.
-
-</pre><h3><a name="V2.6.1_Fonts"></a>Fonts</h3><pre>
-
-Adds 4 new fonts contributed by URW. These have a URW copyright and
-are governed by the GNU License.
-
-Documents the fact that font names in Fontmap can be strings, not
-only names.
-
-Adds DingbatsEncoding as a predefined encoding (in addition to
-Standard, ISOLatin1, and Symbol).
-
-</pre><h3><a name="V2.6.1_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - memchr (used in zfile.c) isn't available on all platforms.
- - languagelevel was defined as an operator rather than an
-integer.
- - iccfont.c referred to name_StandardEncoding instead of
-#include'ing font.h and referring just to StandardEncoding.
- - The CCITTFaxDecode filter didn't work on 32- (or 64-) bit
-machines, because of a bug in more_bits().
- - The structures recording an allocation within the scope of
-a save could get allocated unnecessarily, because they weren't
-properly marked as free when an array was freed.
-
-Renames the following Ghostscript-specific operators by adding a '.'
-at the front: makeoperator, setdebug, setmaxlength, stringmatch,
-type1decrypt, type1encrypt.
-
-Adds a real implementation of glyphshow.
-
-</pre><h3><a name="V2.6.1_Library"></a>Library</h3><pre>
-Fixes bugs:
- - Discarding fractional character coordinates in the Type 1
-rasterizer led to some rendering anomalies (e.g., characters 1 pixel
-too high).
- - If a font had a non-standard encoding (i.e., not
-StandardEncoding, ISOLatin1Encoding, or SymbolEncoding), Ghostscript
-would never invoke the platform font code.
- - The RGB to HSB color conversion algorithms produced
-nonsensical values.
- - struct cached_char_s was defined redundantly in gxcdir.h,
-causing compilation problems on some systems.
- - 32-bit color devices didn't work properly on little-endian
-machines (arrange_bytes in gdevmem2 was wrong).
- - The scaled font cache could confuse two fonts with the same
-UniqueID and different Encodings.
- - Under many common circumstances (first use of a character
-was with stringwidth, the font was renamed, the font encoding was
-changed), xfonts would not be used.
-
-Adds gs_glyphshow.
-
-</pre>
-
-<h2><a name="Version2.6"></a>Version 2.6 (5/9/93)</h2>
-
-<p>The main new feature in this release is the ability to use platform
-fonts. It also adds many more Level 2 PostScript facilities.
-
-<h3><a name="V2.6_Documentation"></a>Documentation</h3><pre>
-
-Corrects some errors in the documentation of the makeimagedevice operator.
-
-Adds operand and result types to the comments at the beginning of all the
-operators.
-
-Adds new sections on installation in use.doc.
-
-Reinstates history.doc as a repository for old and no longer interesting
-history information.
-
-Adds a new file, devices.doc, with documentation for specific devices.
-
-Points out that font2c must be run with a Fontmap that includes the fonts
-being converted, and that its arguments must be quoted with "" on VMS
-systems.
-
-Notes that the font name in the Fontmap must be the same as the FontName
-in the font.
-
-Adds a list of the Level 2 facilities not provided by Ghostscript.
-
-Identifies bug-ghostscript@prep.ai.mit.edu as an alias for the
-gnu.ghostscript.bug newsgroup.
-
-Points out explicitly that -sOutputFile=- sends output to stdout, and
-requires using the -q switch.
-
-Documents the use of tar_cat to construct the Unix makefiles.
-
-Adds a new file, xfonts.doc, that describes the external font interface.
-
-Documents the fact that drivers must use gs_malloc and gs_free rather than
-malloc and free.
-
-Documents the *.sh (shell script) files.
-
-Adds brief documentation on some additional development tool .ps files.
-
-Documents the TEMP and GS_OPTIONS environment variable.
-
-Points out the need to run Windows in 386 Enhanced mode on machines
-that have less than 6 Mb of RAM.
-
-Consolidates documentation on compiler switches in make.doc (some of
-it had been in the unix*.mak files).
-
-</pre><h3><a name="V2.6_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - \'s in arguments following -- were doubled.
-
-Includes the full set of filters automatically if the level2 feature
-is selected.
-
-Extends DEVICE_DEVS... up to DEVS9. Adds DEVICE_DEVS1 as well.
-
-Renames turboc.mak and tbcplus.mak as tc.mak and bc.mak.
-
-Makes @-files use the library path (GS_LIB, -I).
-
-Changed the Unix install script to use install &lt;file&gt; &lt;destfile&gt;
-rather than install &lt;file&gt; &lt;directory&gt;.
-
-Adds a GS_OPTIONS environment variable that acts like an implicit @-file
-at the beginning of the command line (i.e., may contain switches and
-initialization files).
-
-Renames sym__enc.ps as gs_sym_e.ps.
-
-Adds a user-contributed shell script for using Ghostscript with an
-H-P printer spooler.
-
-Adds level1.ps to the set of installed utility files.
-
-Extends the TEMP environment variable (the directory for scratch
-files) to work on Unix as well as MS-DOS.
-
-Changes the MS Windows makefile to generate gswin.exe rather than
-gs.exe, and the Watcom makefile to generate gs386.exe.
-
-Moves the "product" string from gs_init.ps to iinit.c.
-
-Adds a GS macro to the makefiles, to allow choosing the name of the
-executable.
-
-</pre><h3><a name="V2.6_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
-* - font2c did the wrong thing (still) for fonts that didn't
-use StandardEncoding, ISOLatin1Encoding, or SymbolEncoding.
-* - impath.ps had a fatal bug (wrong operand order for
-charstack_write) that caused bdftops to fail.
- - gslp didn't wrap or truncate lines.
- - gslp didn't handle tabs in a second or subsequent column
-properly.
- - The definition of ashow in gs_2asc.ps incorrectly undid the
-increment following the last character.
- - The definition of awidthshow in gs_2asc.ps failed to pop
-two entries from the stack, and also tested the character against the
-wrong value.
-
-Adds a shell script (sysvlp.sh) that interfaces Ghostscript with the
-System V 3.2 lp interface.
-
-Adds ps2ascii and ps2epsi script/batch files.
-
-Adds a new utility, mergeini.ps, for concatenating all the
-Ghostscript initialization files into a single file, optionally
-removing comments and blank lines.
-
-Adds new switches to gslp:
- -q: suppress all printed output.
- --detect: check whether the file begins with %!, and if so,
- interpret it directly as a PostScript file.
- --first-page &lt;page#&gt;: replaces the former -P switch.
- --last-page &lt;page#&gt;: replaces the former -Q switch.
- --(heading|footing)-(left|center|right) &lt;string&gt;: define
- headers/footers. # inserts the page number.
- --margin-(top|bottom|left|right) &lt;inches&gt;: define margins.
- --spacing &lt;n&gt;: for double, triple, etc. spacing.
-Also makes gslp ignore all the enscript flags it doesn't implement.
-
-Adds an option to wrfont.ps to do encryption at read-in time. (This
-allows much better compression of the standard Ghostscript fonts.)
-Changes bdftops to use this option.
-
-Changes gslp to accept wild cards in file names.
-
-Replaces landscap.ps with a new one contributed by a user.
-
-Changes the compression scheme used in ps2image to a much more
-effective one. Writing images is much slower than with the previous
-scheme, but reading is not.
-
-</pre><h3><a name="V2.6_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - SCFDTAB and SCFTAB were omitted from the VMS module lists.
- - Function prototypes were not being used with the Watcom
-compiler.
- - On MS-DOS platforms, if the value of the TEMP variable had
-a trailing : or \, Ghostscript appended a \ anyway.
- - Under Windows, changing the size or resolution of the image
-closed and reopened the window.
- - Ghostscript would not build correctly with the Watcom compiler
-if DOS4G=quiet was not set, because the DOS4GW copyright message was sent
-to stdout.
-* - Finally gets Ghostscript to run properly on the RS/6000, by
-adding a compiler bug workaround to arc_add and arc_either.
-* - Finally gets Ghostscript to compile properly on Sun SPARC
-systems, by adding a compiler bug workaround in scan_number.
-
-Changes the default MS-DOS configuration from 8086/8088 to 80286.
-
-Adds all the SuperVGA drivers to the BC++ and Watcom executables
-(except for the VESA driver in the Watcom executable).
-
-Adds a makefile (msc.mak) for the Microsoft C/C++ 7.0 platform. This
-is currently a MS-DOS, not a MS Windows, platform.
-
-Changes gp_enumerate_files_init so it takes a gs_memory_procs *, not
-separate proc_alloc_t and proc_free_t arguments; also, it must
-enumerate precisely the requested set of files, not a superset. THIS
-IS A NON-BACKWARD-COMPATIBLE CHANGE. It affects all gp_*.c files.
-
-Adds the P*M drivers and bit.dev to the standard configuration on
-Unix platforms.
-
-Changes the Watcom makefile so it uses the WATCOM environment variable (by
-default) as the base directory for the Watcom executables.
-
-Adds the MS Windows COMMDLG.DLL and SHELL.DLL files to the set of
-files incorporated in GSEXE.ZIP, since the new MS Windows code uses
-them, and they aren't provided with Windows 3.0.
-
-Makes major revisions to the MS Windows platform and driver code, to
-support the gsview front end, and also to remove the dependence on the
-Borland EasyWin library. NOTE: Compiling the MS Windows code now requires
-Borland C++ 3.1 (not 3.0).
-
-Changes time_.h so that Ghostscript will compile and run on A/UX.
-
-Changes the MS-DOS implementation of file enumeration so it always
-treats \s in the file name as literal characters, not escapes, unless
-there are two \\s in a row. This does the most sensible thing given
-the DOS file naming conventions.
-
-Adds a %pipe% file device under Unix.
-
-Adds a makefile for Watcom C under MS Windows. This is very preliminary;
-in particular, NO display output is supported.
-
-</pre><h3><a name="V2.6_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
- - fonts.mak referred to ncri and puti rather than ncrri and
-putri.
- - cyr and cyri had the wrong protection.
- - The Hershey fonts left the font on the stack when they were
-loaded.
-* - The FontName of an aliased font was the original FontName
-from the file, not the alias.
-* - Fontmap.BTS had incorrect entries for AvantGarde-Demi and
-AvantGarde-DemiOblique.
- - Ghostscript pushed userdict, rather than an empty writable
-dictionary, onto the stack when loading a font, leading to name clashes.
-
-Adds a new cfonts.mak with a full set of rules for compiling all the
-standard Ghostscript fonts (except the Hershey fonts) into C.
-
-Adds UniqueIDs to the Hershey fonts, and removes the UniqueIDs from
-the Hershey entries in the Fontmap.
-
-Adds a new Fontmap for VAX/VMS with DECWindows/Motif.
-
-Changes MakeHersheyFont so it takes the encoding as an additional
-parameter, and changes the Hershey-Symbol font to use SymbolEncoding.
-
-</pre><h3><a name="V2.6_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The !@*&amp;^%#@$ PCL drivers *still* didn't do the right thing
-about vertical spacing: the &lt;ESC&gt;*p+&lt;n&gt;Y command works on all PCL 3,
-4, and 5 printers *except* the LaserJet IIp.
- - The cdj driver used recursive macros (height, t_margin,
-b_margin) that not all compilers handled correctly.
- - The djtc driver used some assignments including =*, which
-some compilers dislike.
- - The S3 driver wouldn't compile correctly with the Watcom
-compiler.
- - The makefile entry for the S3 driver was wrong.
- - The SuperVGA drivers returned an error, rather than using
-the highest available resolution, if a too-high resolution was
-requested.
- - The GIF driver produced an incorrect header for images
-wider or taller than 32K pixels.
- - The GIF driver wasn't able to handle multi-page documents
-correctly.
- - The margins on the DeskJet were still not correct.
- - Some ANSI C compilers rejected a complex expression in
-gdevpccm.c.
- - Printer drivers didn't recover cleanly from problems in
-opening the scratch files.
- - The BJ-10e driver used the same name `out' for a label and
-a variable.
- - The SCO ODT compiler couldn't handle sizeof(ppdev-&gt;fname).
- - The Epson driver used the wrong value for ESC in the
-initialization string.
-
-Adds new drivers:
- - Drivers to produce MS Windows .BMP format output.
- - A new ATI Wonder display driver (800x600, 16 colors) and a
-1024x768 mode for the existing driver.
-
-Adds new user-contributed drivers:
- - A driver for the Tektronix 4693d color printer. This carries a
-university copyright.
- - A driver for the SPARCprinter.
- - A driver for the Canon BJ200 printer.
- - A driver for the IBM ProPrinter.
- - A driver for the DEC LJ250 printer, which has a
-PaintJet-compatible mode.
- - A replacement driver for the Sony NWP533.
- - A driver that writes TIFF/F (Group 3 fax) files. This carries
-an external copyright.
- - A driver for the C.Itoh M8510 printer.
- - A driver for the Okidata MicroLine 182 9-pin dot-matrix printer.
- - A Hercules Graphics driver.
- - A driver for printers under MS Windows.
- - A driver for direct frame buffer addressing under SCO Unix
-and Xenix and AT&amp;T SVR4.
-
-Changes the get_bits driver procedure so it always reads a single
-scan line, and optionally does not copy the data. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE. However, this change does not affect
-any existing printer driver, since these all go through intermediate
-routines in gdevprn.c.
-
-Changes gdevprn.h, and the relevant printer drivers, so that -DA4
-will change the default paper size for any printer driver.
-
-Allows the use of NULL or 0 for default procedures in the driver
-procedure vector.
-
-Adds an optional map_cmyk_color procedure to the driver procedure
-vector.
-
-Changes the Epson driver so that the minimum amount of white space
-required to use a tab is an easily changed parameter.
-
-Changes the BGI driver to use separate segments for the Borland
-device drivers, to reduce the risk of overflowing a segment.
-
-Adds an optimization option (normally enabled) to the PGM and PPM drivers
-such that they revert to PBM or (for PPM) PGM if the page can be
-represented that way.
-
-Adds a new (optional) driver procedure to get the procedure vector
-for external fonts.
-
-Adds an argument to gp_open_printer to indicate whether the file should be
-opened in binary or text mode. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.
-However, this change does not affect any existing printer driver, since
-these all go through intermediate routines in gdevprn.c.
-
-Changes the LN03/LA50/LA75 driver so it uses a text record mode to open
-the output file under VMS (by adding an argument to gp_open_printer to
-indicate this.)
-
-Allows (indeed, encourages) drivers to use far_data to declare the device
-structure, primarily to avoid overflowing the 64K data segment under MS
-Windows. Changes the file output drivers and many of the printer drivers
-to declare their device structures as far_data.
-
-Replaces the AT&amp;T 3B1 driver with an updated version (from the same
-contributor).
-
-Changes the Epson BJ driver and the SPARCprinter driver so they align
-the (0,0) point of the page with the physical corner of the paper
-rather than with the origin of the printable area.
-
-Removes the EIZO MDB-10 driver, since it caused complications for the
-EGA and VGA drivers and is not a widely used device.
-
-</pre><h3><a name="V2.6_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The entry for the copydevice operator in the operator table
-was initialized incorrectly.
- - printobject and writeobject didn't handle nested arrays.
- - restore didn't properly close the current file (if
-appropriate), causing an invalidaccess error.
- - buildfont required the presence of a valid, 4-element
-FontBBox. (The Red Books say it's required, but Adobe interpreters
-don't require it; some DEC software generates a 3-element FontBBox.)
- - resourceforall had several bugs; it didn't do even
-approximately the right thing. There were quite a few other problems
-with the implementation of resources.
- - setfont, makefont, and scalefont would accept a font with
-no FID entry.
-* - Loading a .PFB font left the file open (until the next
-restore or quit).
- - The default (null) font didn't include a PaintType entry,
-which some PostScript files expected.
-* - The ASCIIHexDecode filter sometimes thought the underlying
-stream was at EOF even when there was (at most one buffer's worth of)
-data left.
- - iscan.c included &lt;ctype.h&gt; before std.h, causing type name
-clashes on some systems.
-* - save and restore didn't handle the pointers in the graphics
-state correctly; for example, the current font wasn't restored
-properly.
- - Binary object sequences at the top interpreter level didn't
-get executed immediately.
- - On high-resolution devices, the default transfer function
-converted almost-white grays to very light grays rather than white.
- - The `string' operator was checking the string length
-against max_uint rather than max_ushort, which could cause invalid
-lengths to be accepted.
-* - deviceinfo caused a stackunderflow error.
-* - idiv could give incorrect results for quotients or
-remainders that didn't fit in 24 bits.
-* - The ASCII85Encode filter padded trailing bytes with 1's
-rather than 0's.
-* - The ASCII85Decode filter had a typo that produced incorrect
-results if there were exactly 2 trailing bytes.
- - findlibfile didn't push a copy of the file name if it was
-the name of a special (%) file.
- - setduplexmode was not defined in statusdict, causing
-/undefined errors from some poorly designed input files.
-* - The CCITTFaxDecode filter had several bugs in 2-D decoding.
-* - The ASCII85Decode filter didn't read ahead to detect EOD if
-it fell precisely on a buffer boundary.
- - If a file mentioned on the command line redefined `start',
-Ghostscript would run the new definition rather than the built-in one
-after processing all the files on the command line.
- - The SCO ODT compiler couldn't handle the conditionals in the
-ngetc (iscan.c) and sgetc* (stream.h) macros.
- - makefont and scalefont didn't cache the PostScript dictionaries
-for scaled fonts.
- - Changing the elements of the Encoding of a font dynamically
-didn't take effect if the character was already cached.
- - makefont and scalefont didn't add the (undocumented) OrigFont
-and ScaleMatrix entries to the new font.
-* - findfont insisted that the font name be a string or a name.
- - filenameforall could cause an incorrect transfer of control
-if no files matched the pattern.
-* - ISOLatin1Encoding had hyphen instead of minus at code 45.
- - restore didn't reset saved_cbot and saved_ctop correctly;
-as a result, some freed blocks could get abandoned rather than put on
-the free list.
- - Some numerical constants in zarith.c assumed that longs
-occupied 32 bits.
-
-Implements additional Level 2 features:
- - %device%file names (only the "os" device is provided).
- - &lt;~ ~&gt; for ASCII-85 strings.
- - Binary error messages.
- - BuildGlyph.
- - CCITTFaxDecode filter entries EndOfBlock, Rows, and
- (undocumented) FirstBitLowOrder.
- - {set/current}{color/colorspace/overprint/colorrendering/
- blackgeneration/undercolorremoval}. (See below under library
- for limitations.)
- - Decode for the dictionary form of image.
- - File access modes a, r/w/a+.
- - Font entries CDevProc, Metrics2, and WMode.
- - Font operators cshow, findencoding, rootfont, and
- setcachedevice2.
- - glyphshow (emulated with PostScript code).
- - languagelevel.
- - realtime.
- - setbbox.
- - (Subset of) system and user parameters.
- - xshow, yshow, and xyshow.
- - XUIDs for fonts.
-
-Moves the installation of systemdict and the initial allocation of
-globaldict (if relevant) and userdict from gs_init.ps to iinit.c.
-
-Makes Level 2 features dynamically selectable through the
-.setlanguagelevel operator; disables all Level 2 features
-(specifically including automatic dictionary expansion) unless the
-level2 feature is included and active.
-
-Adds the .knownget operator for speeding up system procedures.
-
-Renames the type1addpath operator as .type1addpath; adds an optional
-left side bearing argument; changes it so it does not do the
-setcachedevice, fill, or stroke, but does do a moveto for the
-character width. Changes Type1BuildChar appropriately. (All this is
-needed to make WMode work.)
-
-Removes the .setmetrics operator, which is no longer needed.
-
-* Changes the meaning of the user_errors argument to gs_run_file and
-gs_run_string so that -1 means always return on an error, 0 means
-only return on an error not within a `stopped'.
-
-Adds all the necessary checks and operators for local/global VM, but
-doesn't actually implement local/global mode.
-
-Changes setcachedevice back so that it requires 4 numbers on the
-stack rather than a 4-element array. (It was changed to be the other
-way in release 2.0, but that was because I didn't realize that fonts
-had to have an executable FontBBox, and some of the Ghostscript fonts
-didn't.)
-
-Changes all the filter operators from .filterxxx to .filter_xxx, and
-removes the need to enumerate them in gs_init.ps.
-
-Adds .oserrno and .oserrorstring operators for getting the last OS
-error (in the current context).
-
-Changes gs_finit similarly to gp_exit. Adds gs_exit_with_code that
-takes both an exit status and a Ghostscript error code.
-
-Changes the name of name.h to iname.h.
-
-Adds support for the `interrupt' error (but doesn't provide any standard
-way of generating one, other than through the gp_check_interrupts polling
-function).
-
-Adds copyright to systemdict.
-
-Changes the spot halftone screen to an elliptical screen supplied by
-Berthold K. P. Horn.
-
-Adds a check that the first token in gs_init.ps is an integer. In
-conjunction with other code in gs_init.ps, this should catch all attempts
-to run Ghostscript with a gs_init.ps that doesn't match the executable.
-
-Changes all relevant occurrences of sizeof to size_of in order to
-work with the buggy SVR4.2 C compiler.
-
-Changes gp_exit so it is passed both the Ghostscript error code and
-the exit status code as arguments. This is backward-compatible for
-all but the pickiest compilers.
-
-Adds a call on gp_check_interrupts() after fwrite calls in the stream
-machinery. This prevents lengthy console output from locking out
-other programs.
-
-Changes a couple of occurrences of op_def_ptr in iinit.c to work around a
-`const' bug in Sun's SC1.0 compiler.
-
-Adds a special hack in the 'where' operator to work around a bug in Aldus
-Freehand 2.x.
-
-Changes all empty argument lists from () to (void), which is the ANSI
-C syntax.
-
-Adds a hack to ignore ^[ and ^D^[ tokens, to work around the prologue
-and epilogue emitted by the MS Windows LaserJet IV driver.
-
-Defines the processcolors operator, which should not be needed, but
-is required because of bugs in Lotus 1-2-3 and Adobe PhotoShop.
-
-Changes the allocator (ialloc) to fill all allocated and/or freed
-blocks with a marker if gs_alloc_debug is set, as gs_malloc and
-gs_free already do.
-
-</pre><h3><a name="V2.6_Library"></a>Library</h3><pre>
-Fixes bugs:
- - 16-bit memory devices stored the bytes of each pixel in the
-wrong order.
- - copy_mono did the wrong thing when copying 1 source chunk
-to 2 destination chunks with polarity inverted. (This probably
-didn't affect any actual uses of Ghostscript.)
-* - The compile-time check for ints being 2 or 4 bytes used the
-#error directive, which most compilers don't recognize.
- - arc and arcn didn't do the right thing for degenerate
-(single-point) arcs, or for arcs drawn in the "wrong" direction that
-were multiples of 360 degrees.
- - charpath did the wrong thing with Type 3 fonts.
- - copyscanlines gave an error if the buffer was too large.
- - The copy_mono procedure (used for text and halftones) for
-2- and 4-bit-per-pixel memory and printer devices incorrectly
-incremented the destination pointer after every pixel, instead of
-only after every byte.
- - The fill_rectangle procedure (used for graphics) for 2- and
-4-bit-per-pixel memory and printer devices, if given any color other
-than all 0's or all 1's, multiplied the X coordinate and width by 2
-or 4, thereby filling the wrong area.
- - The use of 'data' in both gs_type1_data and gs_font upset
-the VMS compiler.
- - The `Flex' feature wasn't implemented for Type 1 fonts,
-which caused serious errors in rendering some fonts that use it.
-(Unfortunately, some Adobe fonts violate the specification, so we had
-to implement Flex to always use a curve.)
-* - Stem width adjustment was too eager, producing very strange
-effects on small characters with tight curves (a curve point could
-get snapped to the other side of the open area).
- - The allocator didn't align structures adequately on
-machines where sizeof(long) or sizeof(char *) was 8 bytes.
- - The test for IEEE floating point gave an incorrect
-(negative) result on machines where sizeof(long) was 8 bytes.
- - genarch.c assumed that the result of subtracting two
-pointers was an int, leading to a garbage arch.h file on systems
-where this was false.
-* - The Type 1 font interpreter incorrectly reset the adjusted
-path position to be the same as the unadjusted path position whenever
-it returned control to the client (in particular, for callothersubr),
-leading to discontinuities and distortions in the character shapes.
-* - Accented characters in Type 1 fonts often misplaced the
-accent to the left.
- - gsmisc.c wouldn't compile on machines with 64-bit pointers,
-because _pad was 0, and ANSI compilers don't accept 0-length arrays.
- - pathforall got confused if the client procedures modified
-the path.
- - The command list file representation limited X and Y
-coordinates to 15 bits.
-* - stroke could produce spikes or other garbage for mitered
-joins as a result of stroke adjustment.
- - The params_size field of the null device was wrong, so
-scaling the null device produced unpredictable results.
-
-Changes monobit memory devices to always store data big-endian. This
-eliminates byte-swapping, at the cost of slightly slower rendering.
-
-Removes the memswab* routines, since they are no longer needed.
-
-Implements gs_cshow_[n_]init, which provides support for cshow, and
-gs_xyshow_[n_]init, which provides support for {x,y,xy}show.
-
-Adds an optional left side bearing argument to gs_type1_interpret.
-
-Changes gs_type1_interpret so it does not do a setcachedevice, fill,
-or stroke, but only appends the character outline to the path
-(including a moveto for the character width.)
-
-Removes gs_setmetrics, which is no longer needed.
-
-Implements gs_setcachedevice2, which provides support for
-setcachedevice2.
-
-Speeds up gsave/grestore by allocating, deallocating, and copying as
-much as possible of the graphics state in a single operation.
-
-Implements gs_{set/current}{color/colorspace/overprint/colorrendering/
-blackgeneration/undercolorremoval}. Device, indexed (with table, not
-with procedure), CIE, and (substituted) separation colors are
-supported; some of the setup code for patterns is also present.
-
-Increases the size of temporary file names in gdevprn.h from 30
-characters to 60.
-
-Changes the character cache to be allocated dynamically in chunks.
-
-Splits gxcache.c into gxccache.c (fast "hit" code) and gxccman.c (all
-other code).
-
-Changes all occurrences of sizeof to size_of in order to work with the
-buggy SVR4.2 C compiler.
-
-Adds a new concept of "external fonts", which allow a driver to
-substitute its own fonts for the ones obtained through the normal
-font machinery.
-
-Changes all empty argument lists from () to (void), which is the ANSI
-C syntax.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.5.2"></a>Version 2.5.2 (9/20/92)</h2>
-
-<p>This is yet another bug fix release to (finally!) get the PCL drivers
-working again.
-
-<h3><a name="V2.5.2_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The comment in devs.mak for cdjcolor said it used 8 bits
-per pixel, rather than the correct 24.
-
-Adds gsbj/dj/lj/lp and gslp.ps to the installed files on Unix
-systems.
-
-Removes dps.dev and level2.dev from the standard configurations on
-all platforms, since the presence of the setcolor operator was
-causing the output of some common applications to fail.
-
-</pre>
-
-<h3><a name="V2.5.2_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - font2c produced invalid output for any font that didn't use
-StandardEncoding or ISOLatin1Encoding.
-
-</pre>
-
-<h3><a name="V2.5.2_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - gp_sysv.c required an extern long timezone.
-
-</pre>
-
-<h3><a name="V2.5.2_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The PCL drivers were *still* doing the wrong thing about
-zeroing the seed row for Mode 3 compression.
- - Setting the resolution with -r didn't work under Windows.
- - The Windows driver got a stack overflow if it was ever
-asked to display a bit image wider than 32 pixels.
- - The Tseng driver didn't sense the model (ET3000 vs. ET4000)
-correctly.
-
-Adds the eps9high device to the standard MS-DOS makefiles.
-
-</pre>
-
-<h3><a name="V2.5.2_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - gs_run_string used gs_user_errors (a global) rather than
-user_errors (its argument) to control error handling. (This does not
-affect normal operation of Ghostscript, only use as a server.)
- - eexec popped the top element of the dictionary stack
-afterwards even if the encrypted code had pushed something onto it.
-This caused problems for some badly written PostScript code.
- - The printed form of real numbers didn't always include a
-decimal point, causing compatibility problems.
-
-Makes -s and -d work for device properties.
-
-Increases the cache limit on large-memory systems.
-
-Adds a check to ensure that the revision of gs_init.ps matches that
-of the interpreter.
-
-Adds the .knownget operator.
-
-</pre><h3><a name="V2.5.2_Library"></a>Library</h3><pre>
-Fixes bugs:
- - The raster computation in clist_render_init, and the
-computation of state_size in clist_open, didn't widen an operand to
-long, leading to possibly incorrect operation for 24-bit-per-pixel
-printers on MS-DOS systems.
- - The flatness was set too large for Type 1 characters,
-leading to visible straight edges instead of curves at large sizes.
- - Type 1 fonts that contained out-of-range coordinates would
-produce garbled output. (This was not a problem with the standard
-Ghostscript fonts, or with Adobe Type Manager fonts.)
- - gschar0.c wouldn't compile, because it referred to a
-non-existing structure member penum-&gt;chr. (This had no effect on
-Ghostscript's operation.)
- - The curve flattener required line segments to be no more
-than 8 x the flatness in length, leading to an enormous number of
-segments.
- - pathforall would cause an addressing fault if the path
-consisted of only a moveto.
-
-Refactors some header files so that std.h is always included before
-any system header file that might include sys/types.h.
-
-Adds logic for removing top and bottom blank rows in cached
-characters. (This is the beginning of compression for the cache.)
-
-Changes the arguments of memswab2/4 from char * to byte *, for more
-accurate type conformance.
-
-</pre>
-
-<h2><a name="Version2.5.1"></a>Version 2.5.1 (9/11/92)</h2>
-
-<p>This is the usual bug fix re-release.
-
-<h3><a name="V2.5.1_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The makefile rules for compiled fonts had a circular
-dependency.
- - `make begin' didn't work properly on all platforms.
-
-Ensures that all batch files end with a newline. (The absence of the
-newline was confusing the GNU diff program.)
-
-Documents the fact that the -dASCIIOUT switch no longer exists.
-
-</pre><h3><a name="V2.5.1_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - pstoppm didn't `bind' its internal procedures.
- - grestoreall would undo the output device selected by
-pstoppm.
-
-Changes the utilities for reading and writing Type 1 character
-outlines so they can work with stack representations as well as
-arrays.
-
-Removes the pfbtogs.ps, phonbook.ps, and showpbm.ps utilities from
-the distribution.
-
-Adds a gslj utility to parallel gslp and gsdj.
-
-</pre><h3><a name="V2.5.1_Platforms"></a>Platforms</h3>
-
-<pre>
-Adds the DeskJet 500C drivers (cdeskjet/cdj*) to the MS-DOS / Borland
-C++, MS-DOS / Watcom C/386, and MS-Windows configurations.
-
-Removes the PCX file driver from the MS Windows executable, because
-the static data segment exceeded 64K.
-
-Makes some changes in the Unix System V platform file (gp_sysv.c) and
-in time_.h and unixtail.mak to accommodate the 3B1.
-
-</pre><h3><a name="V2.5.1_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
- - The Charter-Italic font was named bchi.pfa rather than
-bchri.pfa.
- - The Cyrillic fonts (cyr.gsf, cyri.gsf) were omitted from
-the fileset.
- - Ghostscript incorrectly assumed that all Type 1 fonts had a
-FontInfo dictionary.
- - .loadfont used false PFBDecode, so a few .PFB fonts would
-get errors because the first eexec byte would be whitespace.
-
-Changes font2c and its supporting code so that compiled fonts are
-location-independent.
-
-</pre><h3><a name="V2.5.1_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The margins for the H-P printers were still wrong.
- - The H-P drivers accidentally cleared the compression seed
-row when switching compression modes.
- - Some of the H-P drivers used the wrong control codes for
-skipping blank lines.
-
-Adds user-supported drivers for the AT&amp;T 3B1 console device, and for
-the NEC P6+ printer.
-
-Updates the SunView driver with a new version supplied by a(nother)
-user.
-
-Changes the X Windows driver so the Ghostscript window doesn't get
-input focus.
-
-Changes the common code for the printer drivers so that if it can
-allocate a full bitmap but there isn't at least a minimum amount of
-memory left afterwards, it switches to banding.
-
-Changes the Windows driver so it handles devices with more than 8
-bits per pixel. (We haven't been able to test this.)
-
-Adds a read-only PageCount device property (for printer devices
-only).
-
-Changes all Aladdin-supported drivers to clip drawing requests to the
-((0,0), (width,height)) rectangle of device space.
-
-</pre><h3><a name="V2.5.1_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - Closing a NullEncode filter always gave an ioerror.
- - If a single-character name occurred 1 character before the
-end of an input buffer, the character would be doubled.
- - The procedures in gs_statd.ps didn't use "bind".
- - Setting the page size didn't work properly with devices
-with rotated coordinate systems.
- - If an error occurred, and the error object wasn't the last
-element of its procedure, the interpreter would re-execute the error
-object after running the error handler.
- - Memory devices didn't get resized if HWSize was changed,
-leading to out-of-bounds memory accesses.
-
-Moves revision and revisiondate from gs_init.ps to iinit.c. Adds a
--v switch that just prints these out.
-
-Arranges things so that if Ghostscript is reading from a pipe (`-'
-switch on the command line) and encounters an error, it exits with
-status 1 rather than 0.
-
-Changes the interpreter interface so the caller explicitly passes a
-pointer for storing an error object.
-
-</pre><h3><a name="V2.5.1_Library"></a>Library</h3><pre>
-Fixes bugs:
- - The automatic adjustment of the scaling for variant paper
-sizes caused the image to get expanded when it should have been
-contracted, and vice versa.
- - The curve flattener insisted that each line segment be no
-more than 2 x the flatness in length, leading to an enormous number
-of segments even when not necessary for accuracy.
- - flattenpath and strokepath discarded a trailing moveto.
- - strokepath treated "0-width" lines as really having a width
-of zero, rather than one pixel.
- - Buffered devices weren't closed and reopened if the amount
-of buffer space was changed.
- - stroke used the line cap at the beginning of each subpath
-even if the subpath was closed.
-
-Removes the requirement that the clipping rectangle fall in the
-non-negative quadrant of device space. (This was causing problems
-for Ghostview, but removing it required adding the extra clipping
-step to the drawing routines in the drivers.)
-
-</pre>
-
-<h2><a name="Version2.5"></a>Version 2.5 (8/18/92)</h2>
-
-<p>This version adds Type 1 hinting, CCITTFax encoding and decoding, and
-Microsoft Windows support, as well as the usual minor improvements
-and bug fixes.
-
-<h3><a name="V2.5_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - GSIMPATH, SLZWD, and SLZWE were omitted from the VMS
-makefiles, and GSIM2OUT was not removed.
- - landscap.ps messed up the current path.
-
-Adds new switches:
- -dSAFER disables file writing and directory modification.
- -dESTACKPRINT causes errors to print the execution stack with
-== instead of =.
- -sOutputFile=&lt;string&gt; replaces -sOUTPUTFILE (which is still
-recognized) for setting the output file or pipe for the default
-(printer) device.
- -sPAPERSIZE=&lt;sizename&gt; initializes the paper size.
- -dBufferSpace=&lt;number&gt; sets the buffer size for the default
-(printer) device.
-
-For Unix systems, changes the directories in GS_LIB_DEFAULT from
-`pwd` to $(gsdatadir), i.e., normally $(datadir)/ghostscript, where
-datadir is normally /usr/local/lib.
-
-Adds a note in the header file to the effect that the X Windows
-driver expects to find header files in $(XINCLUDE)/X11, not in
-$(XINCLUDE).
-
-Changes -q so it defines QUIET as true instead of null (so it can be
-used in the middle of the command line as well as at the beginning).
-
-Renames the history.doc file as NEWS.
-
-</pre>
-
-<h3><a name="V2.5_Utilities"></a>Utilities</h3>
-
-<h3><a name="V2.5_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - The stack size was not getting increased on the Watcom
-platform.
-
-Removes "b" from the scratch file opening modes in gp_unix.c and
-(conditionally) in gdevprn.c, to pacify the DECstation Ultrix system.
-
-Adds a makefile (bcwin.mak) and a platform file (gp_mswin.c) for
-Microsoft Windows.
-
-On MS-DOS platforms (including Windows), uses the TEMP environment
-variable to designate the directory for scratch files.
-
-Changes std.h so that the VMS C compiler uses function prototypes and
-'const'.
-
-Changes the VMS cc makefile so it doesn't use ansi2knr.
-
-</pre><h3><a name="V2.5_Fonts"></a>Fonts</h3><pre>
-Fixes bugs:
- - findfont left an extra entry on the stack if it couldn't
-find the default font.
-
-Renames bchi, ncri, and puti as bchri, ncrri, and putri, to conform
-with the naming scheme for other fonts.
-
-Adds $(CCFLAGS) to the command line used for compiling fonts.
-
-Converts the .pfa fonts (CharterBT, IBM Courier, and Utopia) to .gsf,
-by removing eexec encryption and also removing some mysterious
-unmapped characters from Courier. This makes these fonts work with
-DISKFONTS.
-
-Changes the implementation of compiled fonts so they are read-only
-and sharable (no external references). (They are, however, not
-position-independent.)
-
-Provides a way to use compiled fonts on platforms that limit the
-number of characters in an identifier.
-
-Adds public-domain Cyrillic and Cyrillic-Italic fonts.
-
-Adds a 'userdict begin' to .loadfont, because Type 3 fonts produced
-by Fontographer expect a writable dictionary on the top of the stack.
-
-Changes definefont for Type 1 fonts to insert UnderlinePosition and
-UnderlineThickness entries in FontInfo if they are absent, because
-many word processors incorrectly assume these entries are present.
-
-</pre><h3><a name="V2.5_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The documentation in use.doc said that the densities for
-9-pin Epson printers were 60x60 to 240x60, rather than 60x72 to
-240x72.
- - gdevprn.c smashed one byte beyond the end of the string
-given as the OutputFile device property.
- - The X11 driver used XVisualIDFromVisual, which is not
-defined in X11R3.
- - The SunView driver modified the input data, which was
-declared as const.
- - The LaserJet IIP and III drivers shifted the page 185
-pixels to the left and 0.25" down, because the initialization string
-was incorrect.
- - The PCX driver wrote 16-bit values using the byte ordering
-of the platform, rather than always LSB first.
- - For vertical spacing, the LaserJet and DeskJet drivers used
-a command that spaces N/300", rather than N scan lines, but gave it a
-parameter in scan lines.
- - The VESA driver didn't allocate a full 256-byte buffer for
-reading the mode information from the BIOS, causing the stack to get
-smashed by newer VESA implementations.
- - The VESA driver didn't use the scan line length returned by
-the BIOS, causing garbage output for some cards and some resolutions.
- - The generic printer driver didn't free the bitmap when
-closing the device, if it fit entirely in memory.
- - The PaintJet driver allocated its data areas on the stack
-instead of with gs_malloc.
- - The generic printer driver didn't attempt to increase the
-buffer size if it was too small.
- - The band list driver didn't split large bitmaps properly,
-leading to garbled characters at high resolutions.
- - The GIF and PCX drivers used a color map that often turned
-gray colors into non-grays.
-
-Changes the default put_props procedure so that if the device is
-open, setting HWSize and/or HWResolution closes the device and
-reopens it.
-
-Adds a driver for Microsoft Windows 3.n.
-
-Updates the 'cdj' and 'dj500c' DeskJet 500C drivers with new versions.
-(This are user-contributed drivers.)
-
-Changes gdev_prn_put_props so OutputFile can be changed dynamically.
-
-Updates the DEC LN03 driver to also handle the LA50 and LA75. (This
-is a user-contributed driver with a FSF copyright.)
-
-Changes the LaserJet/DeskJet driver so that -DA4 in the makefile
-makes A4 paper the default. The driver now also sends an appropriate
-page size selection command to the printer if the printer supports it.
-
-Changes all the Aladdin-supported drivers to return appropriate error
-codes rather than -1.
-
-Adds a driver for the S3 86C911, a PC graphics accelerator used in
-the popular Diamond Stealth board. This is the first driver that
-uploads character bitmaps to a device; others will probably follow.
-
-Adds user-supplied code to the Epson driver so it will do triple
-passes on 9-pin printers for higher resolution.
-
-Adds user-supplied code for the PaintJet XL to the PaintJet driver.
-
-</pre><h3><a name="V2.5_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - zdps1.c didn't include alloc.h.
- - On 32-bit systems, if maxlength of a dictionary was less
-than the actual allocated space, length could become larger than
-maxlength.
- - flushfile didn't actually flush data when reading.
- - The ASCII85Decode filter signalled EOF prematurely.
- - The scanner interpreted .3D.glorp as the number 0.3, rather
-than as a name.
- - Closing a file freed the stream structure, creating
-dangling references if there were other file objects pointing to the
-same stream.
- - eexec called handleerror if an error occurred, instead of
-letting the error propagate to an enclosing stopped.
- - gs.h made perror illegal, instead of defining it in terms
-of strerror.
- - One-character names weren't being allocated at
-initialization, so they could be left dangling after a restore.
- - Internal gsaves (i.e., the ones in show and setcachedevice)
-didn't also save istate, so setfont inside a BuildChar procedure
-might cause the font outside to get changed.
- - The allocator incorrectly freed objects in the current
-chunk that were older than the current save.
- - mark was just an object, rather than an operator, so 'bind'
-didn't bind it. (This is theoretically a problem for null, true, and
-false also, but even more unlikely to be a problem in practice.)
- - packed_get didn't cast packed integers to int, so negative
-integer elements of packed arrays came out wrong.
- - quit just did a gs_exit, instead of returning to the driver
-in an orderly way.
- - Because check_type_access checked for errors in the wrong
-order, sometimes type errors were reported as access errors.
- - eq didn't check for stack underflow.
- - Some of the stream_procs structures weren't properly
-declared const, leading to link errors on VMS.
-
-Implements currentcolor, currentcolorspace, setcolor, and
-setcolorspace (for DeviceGray, DeviceRGB, and DeviceCMYK only).
-
-Implements the dictionary form of image and imagemask. All the pairs
-in the Decode array must be the same; Interpolate is ignored. The
-only supported color spaces are DeviceGray, DeviceRGB, and
-DeviceCMYK.
-
-Implements files as allowable sources for the image operators.
-
-Removes the index field from the name structure, moving it to the
-'size' field of name refs.
-
-Changes the unread/sungetc operation to require that the character be
-the same as the last one read from the file.
-
-Adds fflush calls to some debugging printout routines, because Unix
-sometimes buffers terminal output.
-
-Implements the CCITTFaxEncode and CCITTFaxDecode filters. Implements
-the general case of the SubFileDecode filter.
-
-Changes definefont to treat a UniqueID of 0 as equivalent to no
-UniqueID, because Fontographer output apparently often violates the
-specification in this way.
-
-Changes the default printer screen from 32.5 to 46 cells/inch. (The
-old value was appropriate for a hand-rotated cell with two spots in
-it.)
-
-Changes the utility routines to allow an integral real wherever an
-integer parameter is expected in a dictionary, because Fontographer
-produces fonts that violate the Adobe specification in this way.
-
-Adds a `dosio' feature that provides direct access to memory and to
-I/O ports under MS-DOS. (This feature is not included in the
-standard executables, of course.)
-
-Changes the default character cache limit to a 1/4" x 1/4" character
-at the default resolution, rather than basing it on the preallocated
-cache size.
-
-Removes support for t_color objects, which haven't actually been used
-for several releases.
-
-Implements setcmykcolor and currentcmykcolor as operators, so they
-will interact properly with setcolorspace and currentcolorspace.
-
-Changes the name of the file.h header file to files.h, to work around
-a bug in the VMS header library.
-
-Adds command line switches @file (to treat file as more command line,
-to get around the DOS 128-character command line limit) and -ffile
-(so one can specify file names that begin with - or @).
-
-Changes the PFBDecode filter so it takes an additional boolean that
-says whether or not to convert binary packets to hex. (Conversion to
-hex and back to binary accounted for a substantial amount of the time
-required to load .PFB fonts.)
-
-Splits off `copydevice' as a separate operator again.
-
-</pre><h3><a name="V2.5_Library"></a>Library</h3><pre>
-Fixes bugs:
- - In the VMS environment, string_.h used its own prototypes
-for the str... and mem... functions instead of &lt;string.h&gt;
- - gx_alloc_char_bits declared cdsize as long, but didn't
-shorten it when passing it to shorten_cached_char.
- - Stroking didn't suppress fattening of the lines.
- - kshow didn't update the cached CTM information in the show
-enumerator when returning from the callout, so further characters
-could get drawn in the wrong place.
- - When a memory device returned its initial matrix, it
-smashed the padding fields, which contained the interpreter's type
-information.
- - setcachedevice didn't set the initial matrix in the cache
-memory device.
- - image_set_rgb (in the image operators) didn't do a
-gx_color_from_rgb, so in principle one could sometimes get incorrect
-colors in an image.
- - The decision about whether or not to cache a character
-bitmap incorrectly compared the character size against cmax rather
-than cdata_size.
- - show didn't reset the in_cachedevice flag in the graphics
-state, so characters rendered by a recursive show were never cached.
- - clip and eoclip didn't release the intermediate flattened
-clip path, causing memory to be lost.
- - The tile_diff routine didn't handle the case of two
-identical tiles properly; this produced garbage in the band list
-file.
- - stringwidth didn't round the character origin to an
-integral pixel; this interacted badly with hinting, causing
-improperly hinted characters to wind up in the cache.
- - Bitmaps (including characters) were displaced, as well as
-being clipped, if they intersected the top of a clipping region.
- - In gxclist and gdevmem1, the raster computation (although
-not the result) could overflow an int on 16-bit machines.
-
-Implements decoding (sample mapping) for image and imagemask.
-
-Implements hinting for Type 1 fonts, based on (but not copying) the
-algorithms from the X11R5 tape.
-
-Changes curve rasterizing to use sampling, rather than recursive
-subdivision, for characters. This produces noticeably better output.
-Speed penalty for non-cached characters is less than 10% at display
-resolutions, up to 50% for 300 dpi printers.
-
-Implements gs_setcmykcolor and gs_currentcmykcolor. These are
-semi-fake, since they simply convert the color to and from RGB, but
-the former does set the current color space properly.
-
-Changes clipping regions so they use the any-part-of-pixel rule
-rather than the center-of-pixel rule. This helps avoid dropouts when
-using very small regions.
-
-Implements stroke adjustment.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.4.2"></a>Version 2.4.2 (5/8/92)</h2>
-
-<p>
-This is another quick release. It finally fixes rotated halftone
-screens, and cleans up a few minor problems from 2.4.1.
-
-<p>
-This release is being distributed only to beta testers and commercial
-licensees, since I don't want to be distracted from working on 2.5.
-
-<h3><a name="V2.4.2_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - UTRACE still appeared in the VMS makefiles.
- - The support files (*.bat, *.doc, *.gsf, *.ps, Fontmap,
-COPYING, README) weren't included in the MS-DOS tar file.
- - The Unix install script didn't install landscap.ps.
-
-Replaces the type1imagepath operator with PostScript code (impath.ps,
-type1ops.ps) based on the new .imagepath operator.
-
-Renames LICENSE as COPYING.
-
-</pre><h3><a name="V2.4.2_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - pcharstr.ps had an occurrence of Subrs rather than /Subrs,
-causing it to not print the Subrs, or to get an error if there were
-none.
- - font2c.ps didn't get the const declarations for string
-dictionaries quite right.
- - The missing newline at the end of gsbj.bat confused GNU
-diff.
- - ansi2knr would go into an infinite loop if a statement
-exceeded its internal buffer size.
- - Compiled fonts would get processed by ansi2knr, which
-messed them up.
-
-</pre><h3><a name="V2.4.2_Platforms"></a>Platforms</h3><pre>
-Fixes bugs:
- - Ghostscript didn't supply equivalents for rename and
-gettimeofday, which some System V platforms lack.
- - The missing newline at the end of gp_dosfb.c confused GNU
-diff.
-
-Changes the Borland makefiles so that stack checking is only enabled
-if DEBUG or TDEBUG is set.
-
-</pre><h3><a name="V2.4.2_Fonts"></a>Fonts</h3>
-
-<pre>
-Changes the names of the Utopia fonts from utrg/utb/utbi/uti to
-putr/putb/putbi/puti, for consistency with the rest of the font names.
-Changes cour/courb/courbi/couri to ncrr/ncrb/ncrbi/ncri likewise.
-
-Replaces the Charter fonts with the CharterBT fonts donated by
-Bitstream to the X11R5 distribution.
-
-Adds font aliasing capability to Fontmap. Replaces
-Courier-[Bold]Oblique and ZapfChancery-MediumItalic by aliases.
-
-Changes the FontBBox of the Hershey fonts to be an executable, rather
-than a literal, array.
-
-</pre><h3><a name="V2.4.2_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The GIF driver omitted a `private' on the definition of
-gif_print_page.
- - The GIF driver wrote 16-bit values using the byte ordering
-of the platform, rather than always LSB first.
- - George Cameron's DeskJet 500C driver had an incorrect
-control sequence for skipping blank lines.
-
-Adds 'const' in many places, including the tile and bitmap arguments
-of the tile_rectangle, copy_mono, and copy_color driver routines.
-THIS IS A DRIVER INTERFACE CHANGE. (Printer drivers are not
-affected, since they don't implement these routines.)
-
-Adds a driver for the Trident TVGA.
-
-</pre><h3><a name="V2.4.2_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - alloc_free sometimes incorrectly chose to put an unaligned
-block in an old segment on a freelist.
- - The default undercolor removal function returned its
-argument rather than returning 0.
-
-Adds NullEncode and SubFileDecode to the standard filters, since
-bdftops uses the latter.
-
-Adds RunLengthEncode and RunLengthDecode to the optional filters.
-
-Removes the type1imagepath operator. (It is still available as
-PostScript code, impath.ps.) Replaces it with a simpler outline
-tracing operator .imagepath.
-
-Adds 'const' in many places.
-
-Makes fileposition (but not setfileposition) legal for NullEncode
-filters.
-
-Changes the default transfer function for high-resolution devices
-from the identity function to the square root function.
-
-Moves array_get from zgeneric.c to iutil.c.
-
-Changes uses of fopen to add a "b" to the access mode, rather than
-relying on the _fmode global variable on MS-DOS platforms.
-
-Allows use of the -Z switch even when gsmain.c wasn't compiled with
--DDEBUG, since other modules might have been.
-
-Reorganizes gs.c and gsmain.c so that the latter can be used in
-server environments.
-
-Replaces all uses of stdin/out/err with gs_stdin/out/err.
-
-Makes the number of permanent entries on the dictionary stack a
-parameter, to allow inserting globaldict in the future.
-
-Changes BlueShift in the Type 1 font Private dictionary to allow real
-numbers. (This differs from the Adobe specification, but at least
-one commercial font has a real number for BlueShift.)
-
-</pre><h3><a name="V2.4.2_Library"></a>Library</h3><pre>
-Fixes bugs:
- - The doubling check in init_ht (gxht.c) still sometimes
-thought there was enough room to double the tile when there actually
-wasn't.
- - Rotated halftone screens didn't work.
- - gxarith.h used #ifdef vax, rather than #if
-!arch_floats_are_IEEE, to test whether IEEE floats were being used.
- - pathforall didn't report a trailing moveto.
-
-Replaces gs_type1imagepath with gs_imagepath.
-
-Allows sOUTPUTFILE=-, meaning output to stdout.
-
-Adds 'const' in many places.
-
-Replaces all uses of stdin/out/err with gs_stdin/out/err.
-
-</pre>
-
-<h2><a name="Version2.4.1"></a>Version 2.4.1 (4/21/92)</h2>
-
-<p>This is a quick release to fix minor problems discovered in 2.4, and
-to add a few improvements that didn't quite make it into 2.4. It
-also adds GIF and PCX file support.
-
-<h3><a name="V2.4.1_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - Some makefile dependencies, and the ccgs script, caused trouble
-for parallel versions of `make'.
- - Compiling genarch with -O with gcc on the RS/6000 produced a
-buggy executable.
-
-Fixes some minor problems in make.doc.
-
-Adds DEVICE_DEVS2..5 to handle long device lists.
-
-Removes the need to set GS_RUN_EXE when using the Watcom compiler on
-MS-DOS systems.
-
-Gets rid of gs_ccfnt.ps, merging its function into gs_fonts.ps.
-
-Gets rid of gconfig.ps; this information is now compiled in gconfig.c.
-
-</pre><h3><a name="V2.4.1_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - The palette for pstoppm in 8-bit mode didn't contain all 8
-primary colors.
- - font2c used just values_ to mean &amp;values_[0]; some compilers
-couldn't handle this.
-
-Makes font2c insert `const' in many appropriate places.
-
-</pre><h3><a name="V2.4.1_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The SunView driver had not been updated properly for 2.4 and was
-pretty thoroughly broken.
- - None of the printer drivers worked properly with the Watcom
-compiler, because stdprn was doing \n -&gt; \r\n substitution.
- - If the generic printer driver couldn't allocate the requested
-size command list buffer, it gave up rather than trying to allocate a
-smaller buffer.
- - The SuperVGA drivers (except for the VESA driver) didn't
-work with the Watcom compiler, because a couple of places in the
-drivers weren't truncating the offset of "segmented" pointers
-properly.
- - Some of the H-P used &lt;esc&gt;*b#Y rather than &lt;esc&gt;*p+#Y for
-vertical positioning; this apparently is wrong, at least for the
-LJIIp.
-
-Removes the dependence of the X Windows driver on Xt, Xext, and Xmu. As a
-result, Ghostscript will not install a standard colormap itself, but it
-will use one if one is already installed.
-
-Adds a set of drivers for Portable Bitmap, Graymap, and Pixmap file
-formats.
-
-Adds drivers for monochrome, EGA/VGA-style, and SuperVGA-style PCX
-file formats.
-
-Adds drivers for monochrome and 256-color GIF file formats.
-
-</pre><h3><a name="V2.4.1_Fonts"></a>Fonts</h3><pre>
-Adds ZapfChancery-MediumItalic as a copy of ZapfChancery-Oblique.
-
-</pre><h3><a name="V2.4.1_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - A value with l_new set could 'escape' to save level 0 on a
-stack; if stored, it prevented the slot from being saved and restored
-properly.
- - 16#7fffffff + 1 gave the floating point equivalent of -2^31, not
-2^31.
- - The PFBDecode filter computed the packet length incorrectly if
-the 0x8000-bit of the length was set.
- - 5-byte numbers in Type 1 CharStrings complained of a rangecheck
-if they exceeded 16 bits, rather than if they exceeded the integer part of
-a fixed.
- - (, ), and \ appearing in file name arguments in the command
-line did not work properly.
-
-Adds 'const' in many places.
-
-Changes the random number generator to be the same as the one used in
-Level 2 PostScript (as reported by Ed Taft on comp.lang.postscript).
-
-Exits with code 1 rather than code 0 on an unrecoverable error detected at
-the PostScript level.
-
-Makes dictionaries expand automatically when they fill up.
-
-Adds gp_exit to complement gp_init.
-
-Changes dictionaries to always allocate a power of 2 entries on
-32-bit machines. Changes the name table to allocate indices
-scattered, so dictionary lookup doesn't have to do a multiply to
-scramble the index.
-
-Changes the handling of currentfile to do "shallow binding" so stack
-searching is almost never required.
-
-</pre><h3><a name="V2.4.1_Library"></a>Library</h3><pre>
-Fixes bugs:
- - arc and arcn got a numeric exception if the radius was zero.
- - The undocumented 15 opcode in Type 1 fonts wasn't ignored.
- - PaintType 3 wasn't allowed. (It isn't clear what it should
-mean; we treat it as equivalent to 0.)
- - The VAX/VMS C compiler was generating incorrect code for the
-chi_bits and cmask macros in gdevmem, producing incorrect output.
- - If the result of the slow algorithm for intersecting clipping
-paths was a rectangle, the wrong thing happened (cbox didn't get set).
- - gx_path_is_rectangle didn't recognize open rectangles.
- - clist_change_tile didn't check properly whether the tile
-size had changed, so changing the screen could produce invalid band
-files.
- - The image operators did the wrong thing in the 1-for-1
-case, interleaving N bytes of data with 7*N bytes of garbage.
- - stroke sometimes handled bevel and miter joins wrong in
-reflected coordinate systems.
- - init_ht checked incorrectly whether there was enough room
-to Y-replicate tiles, so sometimes it did it when it shouldn't have.
- - stroke sometimes thought lines were thin when they weren't.
-
-Adds 'const' in many places.
-
-Adds support for 2- and 4-bit-per-pixel memory devices.
-
-</pre>
-
-<h2><a name="Version2.4"></a>Version 2.4 (3/25/92)</h2>
-
-<p>This is a major release that adds SuperVGA support, support for
-Metrics,
-settable device properties, and incremental font loading. It also
-includes important performance improvements, based on rewrites of some key
-algorithms, and quite a few new Level 2 / Display PostScript facilities.
-
-<h3><a name="V2.4_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The rule for compiling gconfig.c didn't include the -I switches.
- - .bat files were being distributed with a \n line terminator
-rather than \r\n.
- - A CLOSE MODULE_LIST was needed after END_COMPILE: in the VMS
-command files.
- - Unix systems couldn't handle multiple drivers with overlapping
-sets of files.
- - -s&lt;name&gt; defined &lt;name&gt; as a null, rather than as an empty string.
-
-Adds gconfig.ps to the list of needed configuration files.
-
-Changes the way that the makefile handles nested .h files, so that it
-doesn't have to `touch' them.
-
-Adds the loadallfonts procedure to gs_fonts.ps.
-
-Changes the standard DOS configuration to include VGA, EGA, VESA, Epson,
-BubbleJet, and H-P printer drivers.
-
-Renames ghost.mak as gs.mak, and gdevs.mak as devs.mak.
-
-Adds a USE_ASM flag so that one can build a DOS version of Ghostscript
-without having an assembler.
-
-Splits off common code from the two MS-DOS makefiles into tccommon.mak.
-
-Replaces the COPYING and LICENSE files with a new LICENSE file containing
-version 2 of the GNU General Public License.
-
-Removes DEVICES and DEVICE_OBJS from the makefiles, since they are no
-longer needed.
-
-Adds a GS_DEVICE environment variable to supply a default device name if
-desired.
-
-Adds ansihead.mak and unix-ansi.mak, to parallel [g]cc-head.mak and
-unix-[g]cc.mak, for other ANSI C compilers.
-
-Changes the way that optional features are defined in the makefiles, so
-that they actually work.
-
-Adds support for the Watcom C/386 compiler.
-
-Allows # in the command line as equivalent to =, to compensate for
-brain-damaged MS-DOS shell.
-
-Adds -sOUTPUTFILE= to set the output file or pipe.
-
-Adds -dWRITESYSTEMDICT to leave systemdict writable.
-
-</pre><h3><a name="V2.4_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - pcharstr.ps insisted on having Subrs be present in the font.
- - pcharstr.ps decoded negative numbers between -108 and -1131
-incorrectly.
- - pfbtogs.ps didn't handle packets longer than 64K correctly.
-
-Changes the bdftops utility so that it makes entries for UnderlinePosition
-and UnderlineThickness in FontInfo, and so that it always records a
-FullName (the FontName if no other is provided).
-
-Changes the name of the pfbtops utility to pfbtogs, because groff already
-includes a program called pfbtops.
-
-Adds the gslp utility for doing "line printing" of text files, similar to
-enscript + lpr.
-
-Adds a new variable DITHERPPI that enables a different dither pattern,
-claimed to be better for printers.
-
-Adds the font2c utility for compiling Type 1 fonts into C, so they can be
-linked into an executable rather than loaded dynamically.
-
-</pre><h3><a name="V2.4_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - gdev_prn_copy_scan_lines was erroneously masking the last byte
-of data even on color printers, as was paintjet_print_page.
- - The TruFax driver had a couple of compilation errors, since it
-hadn't been compiled in a while.
- - The BGI driver sometimes didn't consult BGIPATH when looking for
-.BGI files.
- - initclip did the wrong thing with memory devices.
- - The BGI driver didn't look in BGIDIR for .BGI files.
- - The Epson driver didn't set the right margin properly with
-ESC+Q.
- - The BJ-10e driver was badly broken.
- - gdev_prn_open/close_printer didn't reset the command list file,
-so it was taking quadratic time to print multi-page documents.
-
-Adds color to the SunView driver.
-
-Adds selectable resolution (75, 100, 150, or 300 DPI) to the
-DeskJet/LaserJet driver.
-
-Changes gssetdev so that drivers can specify special libraries to be
-loaded, as well as object files.
-
-Adds a driver for VESA-compliant SuperVGA displays. This driver handles
-all resolutions from 640 x 400 up to 1280 x 1024, in 256-color mode. The
-default is VGA resolution (640 x 480).
-
-Adds a driver for the ATI Wonder SuperVGA card, and for SuperVGA cards
-using the Tseng Labs ET3000 or ET4000 chip such as the STB VGA EM-16 and
-the Orchid ProDesigner II (256-color modes only).
-
-Adds a driver for Trident and Tseng Labs SuperVGA cards in 800 x 600,
-16-color modes (for cards with only 256K of memory).
-
-Adds user-contributed drivers for the Ricoh 4081, DEC LN03, Canon LBP-8II,
-and H-P DeskJet 500C printers.
-
-Adds Tim Theisen's Ghostview changes to the X11 driver.
-
-MAKES NON-BACKWARD-COMPATIBLE CHANGES TO THE DRIVER PROCEDURE INTERFACE as
-follows:
-
- - Changes map_rgb_color and map_color_rgb to always work in a
- 16-bit color value space, rather than a space defined by the
- maximum number of distinct colors provided by the device.
-
- - Adds an argument to the output_page procedure to indicate
- whether the procedure is being called for copypage or
- showpage, and a num_copies argument.
-
- - Adds a gx_bitmap_id to the copy_ and tile_ procedures, so that
- drivers can cache bitmaps in the server or device if they want
- to.
-
- - Removes fill_trapezoid and tile_trapezoid.
-
- - Adds a new get_bits procedure for reading the bits back from the
- driver buffer (when possible), replacing copy_scan_lines.
- This procedure takes a new argument describing padding and
- byte swapping, and returns a different value from
- copy_scan_lines.
-
- - Adds get_props and put_props procedures for accessing arbitrary
- additional properties of devices. The interface is quite
- complex, but provides a great deal of flexibility.
-
-See drivers.doc for details.
-
-Changes gdev_mem_bytes_per_scan_line to gdev_prn_bytes_per_scan_line.
-
-Adds a user-contributed driver for DigiBoard, Inc.'s fax software.
-
-</pre><h3><a name="V2.4_Fonts"></a>Fonts</h3>
-
-<pre>
-Changes Type1BuildChar so it uses the information from the Metrics
-dictionary in the font, if Metrics is present.
-
-Changes findfont (.loadfont) so it recognizes .PFB fonts and can load them
-directly. Also changes .loadfont to disable packing temporarily, because
-some fonts rely on procedures being writable (!).
-
-</pre><h3><a name="V2.4_Interpreter"></a>Interpreter</h3><pre>
-Fixes bugs:
- - The hypot function is not available on some Unix systems.
- - Ghostscript didn't flush and close files when exiting.
- - In statusdict, the /margins procedure used .leftmargin, but
-/setmargins used .lmargin.
- - An out-of-range putinterval would simply do nothing, rather than
-reporting an error.
- - If an attempt to allocate a block larger than the allocator's
-chunk size (20K) failed, the allocator would erroneously think it had
-succeeded.
- - The bind operator made the top-level procedure read-only, as
-well as interior procedures.
- - gs.c copied 1 extra character for the value of strings defined
-on the command line with -s...=, which could smash the first byte of the
-next object in memory.
- - copying a dictionary erroneously required the maxlength of the
-destination to be greater than or equal to the maxlength of the source,
-rather than the length of the source.
- - undef didn't correctly decide when to mark a deleted entry as
-deleted vs. free; as a result, some keys couldn't be looked up properly
-after an undef.
- - type1encrypt and type1decrypt didn't set the size of the result
-properly.
- - cvi and cvr didn't allow leading or trailing whitespace in
-strings.
- - cvs didn't cause an error if the destination string was too
-short.
- - Many operators didn't check correctly for stack underflow (off
-by 1).
- - `for' used reals, rather than integers, if the limit was a real,
-even if the initial value and increment were integers.
- - `restore' didn't properly invalidate copies of the save object
-being restored from; `save dup restore restore' would crash.
- - `restore' sometimes didn't undo stores into matrices that were
-stored into by operators. (The identity matrix always had l_new set.)
- - readline gave a rangecheck if the input line exactly filled the
-string.
- - `--' as the last switch on the command line caused a crash
-rather than an error message.
- - On MS-DOS systems, filenameforall didn't handle patterns with a
-drive or directory specifier properly.
- - stroke sometimes called gz_draw_line_fixed even if the line went
-outside the clipping box by 1 pixel.
-
-Changes the loop that binds procedure "operators" to entirely disable the
-handling of the typecheck error, rather than to use stopped. This cuts
-initialization time significantly, and also eliminates about 35K of wasted
-space (for saving the stacks).
-
-Changes the version "operator" so it returns 47.0. Adds "revision" to
-define the Ghostscript version # x 100.
-
-Adds gscurrentresolution and gssetresolution procedures for getting and
-setting the device resolution.
-
-Adds -r&lt;res&gt; and -r&lt;xres&gt;x&lt;yres&gt; as command line options for setting
-device resolution.
-
-Adds a facility for incrementally loading the individual CharStrings of a
-Ghostscript font from the disk. This can save a lot of memory, at the
-expense of slower rendering. (It is intended primarily for MS-DOS
-systems.)
-
-Changes findlibfile to return the name of the file that was actually
-opened, as well as the file itself, when the operation succeeds.
-
-Changes the name of the main entry to the interpreter from interpret to
-gs_interpret, because of a conflict with a Data General library procedure.
-
-Adds the .setmetrics operator to set the metrics for the current
-character for Type 1 fonts.
-
-Adds more LaserWriter-specific entries to statusdict.
-
-Gives names to all the internal `operators', so they will print out
-reasonably when an error occurs.
-
-Extends the status operator to accept a string and return file
-information, as defined for Level 2 PostScript.
-
-Adds the filter operator and some specific filters: ASCII85Encode,
-ASCII85Decode, ASCIIHexEncode, ASCIIHexDecode, eexecDecode, NullEncode,
-PFBDecode, and the null case of SubFileDecode.
-
-Extends the scanner to recognize the Level 2 &lt;&lt; and &gt;&gt; tokens.
-
-Adds a facility for extracting the text strings from a PostScript file and
-writing them out in a simple format (selected by -dASCIIOUT, implemented
-by gs_2asc.ps).
-
-Implements all of the remaining Display PostScript facilities that are
-also in Level 2 (i.e., everything in section A.1.3 of the PostScript
-Language Reference Manual, Second Edition, that is not also in section
-A.1.2). The virtual memory operations are all stubs; the new halftone
-options are not fully implemented.
-
-Changes makeimagedevice to use a string of gray or RGB values, rather than
-an array of color objects, to specify the palette. Removes
-currentgscolor and setgscolor from the interpreter, but leaves t_color
-objects in, since they may be useful later.
-
-Adds getdeviceprops and putdeviceprops for manipulating device properties.
-Currently defined properties for all devices: InitialMatrix, HWResolution,
-HWSize, Name. Currently defined properties for printers: BufferSpace,
-MaxBitmap, OutputFile. OutputFile allows |command for piping on Unix
-systems.
-
-Removes deviceparams and makedevice. Adds devicedefaultmatrix.
-
-Implements reversepath.
-
-Makes copy work on devices.
-
-MS-DOS specific
-- - - - - - - -
-
-Fixes bugs:
- - iutilasm.asm wouldn't assemble with newer versions of MASM if
-CPU_TYPE was set to 286 or above.
- - CPU_TYPE=386 didn't properly substitute the faster
-multiply/divide routines under Turbo C++ or Borland C++, only under the
-original Turbo C.
-
-</pre><h3><a name="V2.4_Library"></a>Library</h3><pre>
-Fixes bugs:
- - A curve whose first and last points were the same wouldn't get
-drawn at all.
- - A bug in the Turbo C++ compiler generated bad code when shifting
-a long right by 1 bit.
- - If stroking a dashed line ever encountered a segment that was
-completely blank, Ghostscript would indirect through a null pointer.
- - arc and arcn gave an error if the radius was negative.
- - stroke always used the general algorithm, even if the line was
-guaranteed to be thin.
- - arc and arcn erroneously reduced the angles mod 360.
- - Very large or negative 32-bit numbers in Type 1 fonts didn't
-work properly on MS-DOS systems (the ff0000 bits got set to zero).
- - Color printer devices rendering entirely in memory only
-allocated a monochrome-sized bitmap.
- - clip and eoclip didn't intersect the paths properly in the
-general case.
- - charpath erroneously rounded the current point to an integral
-value, causing characters to be spaced improperly.
- - The definition of max_color_param got some compilers confused.
- - charpath always used quadratic time and space, and dropped all
-but the last character when used with a Type 3 font.
- - Stroking a path with a 180 degree angle would incorrectly miter
-instead of beveling.
- - Type 1 fonts used the current flatness for curves, which could
-produce bad (and inconsistent) results.
- - Stroking a degenerate line segment produced incorrect results.
-
-Changes the character cache to use the UniqueID as the key, when
-available, instead of the font pointer. This dramatically improves
-performance when fonts are getting removed and reloaded because of page
-isolation with save/restore.
-
-Removes some unnecessary casts to (float) from gsmatrix.c and gscoord.c.
-
-Changes the Type 1 interpreter so that it rounds line and curve endpoints
-to the center of the nearest half-pixel, and omits null line segments.
-This both speeds up rendering at small sizes and improves output quality.
-
-Changes gs_deviceparams to return resolution as well as extent; changes
-gs_makedevice to accept resolution as well as extent.
-
-Replaces the algorithm for approximating circular arcs with curves with a
-more accurate one.
-
-Changes gs_point and gs_rect to use doubles rather than floats.
-
-Adds gs_setmetrics, for overriding Type 1 font metrics for the current
-character.
-
-Changes clipping to use lists of rectangles rather than path intersection.
- This makes a big difference when clipping bitmaps (including characters).
-
-Changes the character cache to discard entries incrementally, rather than
-clearing the entire cache when it fills up.
-
-Changes the implementation of transfer functions to use a cached map,
-built when the transfer function is set. This makes transfer functions
-work properly in all situations, including images.
-
-Defines a .quit operator that takes an exit code, and redefines quit in
-terms of it.
-
-Adds support for 16-bit-per-pixel devices in gdevmem.
-
-Adds gs_copydevice and gs_deviceinitialmatrix; removes gs_deviceparams and
-gs_makedevice.
-
-Changes setscreen to ensure that the cell is always at least 4x4 pixels in
-size.
-
-</pre>
-
-<h2><a name="Version2.3"></a>Version 2.3 (8/28/91)</h2>
-
-<p>This is a minor release to fix two bugs and add the PaintJet driver,
-which
-didn't make it into 2.2.
-
-<h3><a name="V2.3_Utilities"></a>Utilities</h3><pre>
-Changes the pstoppm utility so it counts pages correctly even in the
-presence of arbitrary saves and restores.
-
-</pre><h3><a name="V2.3_Drivers"></a>Drivers</h3><pre>
-Adds a new, "supported" PaintJet driver.
-
-Changes the Epson driver to use ESC+D rather than ESC+\ for horizontal
-positioning, since many printers don't support the latter.
-
-Adds horizontal double-density (two-pass) printing to the Epson driver, so
-it can do 240 x 60 and 360 x 180 densities. (Vertical double density is
-not supported yet.)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.2"></a>Version 2.2 (6/1/91)</h2>
-
-<p>
-The purpose of this release is to add save/restore, and a few
-miscellaneous Level 2 P*stScr*pt features such as undef. It also includes
-major improvements in graphics quality and in handling of high-resolution
-printers.
-
-<h3><a name="V2.2_Procedures"></a>Procedures</h3><pre>
-Changes the version numbering to M.mpp rather than M.m.p, so that
-`version' can be a real number for those programs that insist on it.
-
-Renames ghost.ps as gs_init.ps, gfonts.ps as gs_fonts.ps, and statusd.ps
-as gs_statd.ps. The initialization files now all are named gs_*.ps.
-
-Renames gdevs.{c,h,tl} as gconfig.{c,h,tl}.
-
-Changes the relevant makefiles and command files so that a single build
-can contain several drivers that share code, e.g., the Epson driver and
-the DeskJet driver.
-
-Changes gs_init.ps so it relies on an external gconfig.ps file rather than
-making a specific test for the presence of Level 2 features.
-
-Adds an entry for uglyr.gsf to the makefile.
-
-Removes the distinction between CCA and CCNA, since most of the files now
-contain constructs that require non-ANSI compilation on MS-DOS platforms.
-
-Adds a `man' page for the ansi2knr utility.
-
-Changes the documentation (use.doc) to show how to use -sDEVICE=&lt;device&gt;,
-or the selectdevice procedure, to select devices by name.
-
-Adds DEVICE_DEVS to the makefiles (analogous to DEVICES and DEVICE_OBJS).
-This finally makes the make procedure fully automatic.
-
-Adds the name of the initialization file (gs_init.ps) as a
-platform-specific makefile parameter, GS_INIT.
-
-Removes the test program gt.{c,tr} from the fileset, since it is not
-useful to users.
-
-Moves the Symbol encoding vector to a separate file (symbol_e.ps), from
-which it is loaded when first used.
-
-Changes the error handler so it can handle errors that occur while reading
-the initialization files.
-
-Extends ansi2knr so it can handle `void' and `...' in parameter lists.
-
-Adds quit.ps to the set of installed files.
-
-MS-DOS-specific changes
-- - - - - - - - - - - -
-
-Adds the VGA and BGI drivers to the standard MS-DOS configuration, and
-makes VGA the default.
-
-Adds a `+' and a newline at the end of gs.tr, to avoid problems with file
-transfer programs or editors that add a newline at the end of files.
-
-Changes the name of msdos.mak to turboc.mak, and creates a new tbcplus.mak
-makefile for use with Turbo C++ and Borland C++.
-
-Changes the extension of the loader response files from .tl to .tr.
-
-Changes the default search path from c:/ghost and c:/ghost/fonts to c:/gs
-and c:/gs/fonts.
-
-Changes the directory separator from `|' back to ';', since it appears
-that DOS can handle a ; in a command line if it is prefixed with \.
-
-Unix-specific changes
-- - - - - - - - - - -
-
-Changes the uses of install in unixtail.mak so they only install a single
-file at a time, which is all that the standard Unix install allows.
-
-Removes the duplicate files (README/readme, LICENSE/license,
-COPYING/copying, Fontmap/fontmap).
-
-Changes the ld flags from LDPLAT to LDFLAGS.
-
-Adds XCFLAGS and XLDFLAGS. These are concatenated with CFLAGS and LDFLAGS
-respectively. The intention is that they be set from the `make' command
-line if desired.
-
-VMS-specific changes
-- - - - - - - - - -
-
-Repairs the omission of ZPACKED from the VMS build lists.
-
-</pre>
-
-<h3><a name="V2.2_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The SunView driver produced semi-garbage on little-endian
-platforms (Sun-386i) because it didn't swap the bit order.
- - The X driver would dump core if it couldn't open the display and
-the DISPLAY environment variable wasn't set.
- - The X driver relied on white = 0, black = ones in a couple of
-places;
- - The X driver would return an error, instead of clipping, if
-asked to display outside the window.
- - The X driver would create inappropriately sized windows, because
-it believed the server's report of the screen resolution.
-
-Adds Fran Taylor's Private Eye driver to gdevs.mak and the fileset (not
-supported by Aladdin Enterprises).
-
-Adds Neil Ostroff's TruFax driver to gdevs.mak and the fileset (not
-supported by Aladdin Enterprises).
-
-Makes the scratch file template for the printer drivers a per-platform
-quantity (gp_scratch_file_name_template). Puts the default scratch files
-for Unix in /usr/tmp rather than /tmp.
-
-Changes the SunView driver to prevent the Ghostscript window from being
-destroyed (which badly confuses the interpreter).
-
-Extends the Epson driver to handle a variety of print densities in both X
-and Y, to handle 24-pin as well as 8-pin graphics, and to allow optional
-specification of default density in the makefile (gdevs.mak).
-
-Refactors the printer drivers so that a single driver handles both DeskJet
-and LaserJet. Adds LaserJet drivers that use the new compression modes on
-the LJ IId/IIp and LJ III.
-
-Changes all the printer drivers to use band lists rather than bitmap
-paging as the buffering method. (The individual drivers need only a
-one-line change to replace mem_copy_scan_lines with
-gdev_prn_copy_scan_lines with a different argument.)
-
-Adds the halftone phase as additional arguments to tile_rectangle and
-tile_trapezoid.
-
-Adds an entirely new and much simpler PaintJet driver, using the new band
-list interface.
-
-Adds margin information to the device structure. This is currently only
-relevant for printer devices.
-
-Adds BGIPATH and BGIUSER environment variables, allowing additional
-control of the BGI driver.
-
-Changes the x/y_pixels_per_inch member of the device structure from int to
-float.
-
-</pre>
-
-<h3><a name="V2.2_Fonts"></a>Fonts</h3>
-
-<pre>
-Patches gs_fonts.ps so definefont will add an isFixedPitch entry to
-FontInfo if there isn't one there.
-
-Removes the old "type 7 path" encoding code from gs_fonts.ps.
-
-Changes bdftops so it puts isFixedWidth and ItalicAngle entries in the
-FontInfo dictionary of the fonts it creates, since some P*stScr*pt
-programs rely on this.
-
-Changes bdftops so it synthesizes as many missing characters as possible
-out of the ones that are there (in particular: synthesizes accents out of
-punctuation marks, and accented characters using seac.) The results
-aren't all that good, but they're a lot better than having characters
-missing out of the font.
-
-</pre><h3><a name="V2.2_Utilities"></a>Utilities</h3><pre>
-Adds a pfbtops utility for converting .PFB fonts to standard Ghostscript
-fonts.
-
-Fixes bugs:
- - ps2image didn't reset things properly between pages for
-multi-page documents.
-
-</pre><h3><a name="V2.2_Interpreter"></a>Interpreter</h3><pre>
-Makes Ghostscript recognize `-' alone as meaning that it should read from
-standard input as though it were a file. This allows Ghostscript to
-accept a pipe as input.
-
-Fixes bugs:
- - seac in type1addpath used the current font's encoding, not
-StandardEncoding.
- - type1decryptfile (eexec) didn't recognize binary (as opposed to
-hex) representation.
- - Mentioning a name whose value was a no-access object caused an
-invalidaccess error.
- - There was a bogus definition of `run' in zfile.c.
- - The interpreter didn't handle end-of-file on stdin properly.
- - Real numbers with an 'e' or 'E' but no decimal point were not
-recognized.
- - On MS-DOS systems, inside strings, \ followed by a newline was
-not discarded properly.
- - On MS-DOS systems, the long unsigned divide routine sometimes
-gave incorrect answers. Among other things, this caused alternate-radix
-numbers sometimes to crash the interpreter.
- - cvrs didn't do the right thing about reals or negative integers.
- - .echo.mode was being reset with def instead of store, and was
-defined in systemdict rather than userdict.
- - setgray and settransfer didn't interact properly.
- - 16#80000000 was being interpreted as a signed integer (and
-converted to a real) rather than an unsigned one.
- - atan returned 0 sometimes when it should have returned 180.
- - currentcmykcolor was defined wrong.
-
-Removes the filename operator, since no standard Ghostscript code used it,
-and it caused problems with some P*stScr*pt files.
-
-Implements new operators: filenameforall, selectfont (as a procedure),
-stringmatch, undef.
-
-Adds new standard procedures: selectdevice.
-
-For MS-DOS, requires that the operand and execution stacks be located in
-the data segment, and uses short pointers to address them. This produces
-significantly smaller and faster code. (These changes are not visible to
-users or library clients.)
-
-Changes the assignment of attribute bits, and adds new bits for
-save/restore and the garbage collector. Changes many of the macros in
-store.h to support save/restore. (These changes are not visible to users
-or library clients.) Implements save and restore.
-
-Moves type names from gs_init.ps to ghost.h and ztype.c.
-
-Moves error names from gs_init.ps to errors.h and iinit.c.
-
-Introduces gp.h as a documented interface to the platform-specific files.
-
-Adds the -- switch, which allows Ghostscript programs to take arguments
-from the command line.
-
-Changes many uses of the name `name' to something else, to avoid upsetting
-the Microsoft C compiler.
-
-Really implements packed arrays -- they took the same amount of space as
-ordinary arrays in previous versions.
-
-Changes exitserver in serverdict so that it just clears the stacks. (This
-isn't the correct fix, but it will do as a workaround.)
-
-Makes many miscellaneous small changes to pacify various compilers.
-
-Changes gs_fonts.ps so that when "quiet" mode is selected (-q switch),
-Ghostscript doesn't print anything when loading fonts or when substituting
-for undefined characters.
-
-Defines the name consisting of just a control-D as a no-op, because some
-P*stScr*pt-generating applications put control-Ds in their output.
-
-Implements halftone phase (sethalftonephase and currenthalftonephase
-operators).
-
-Removes the -E switch, since it is no longer useful.
-
-Changes the -w and -h switches to a single -g (geometry) switch, with
-usage -g&lt;width&gt;x&lt;height&gt;. Makes the -h switch, and a new -? switch, print
-usage help.
-
-Implements correct handling of stack overflow errors (makes an array out
-of the contents of the overflowing stack, and resets the stack, before
-invoking the error handler).
-
-Adds t_oparray (`operators' defined as procedures) and the makeoperator
-operator. This is so that programs like the Distillery that rely on all
-operators being bound by `bind' will work properly.
-
-Adds a new NOPAUSE flag to suppress the prompt and pause at copypage and
-showpage.
-
-</pre><h3><a name="V2.2_Library"></a>Library</h3><pre>
-Fixes bugs:
- - gs_type1_interpret didn't store the encryption state or the skip
-count before returning to let the client handle a seac or an endchar in
-the middle of a seac.
- - The definition of the Type 1 operator ce_testadd was based on
-wrong information; the operator takes only 2 operands and does something
-unknown.
- - mem_true24_copy_mono wasn't incrementing the destination pointer
-if the color was transparent, leading to garbled characters.
- - gx_lookup_fm_pair would sometimes look at one entry beyond the
-end of the cached font/matrix pair area. (This probably had no practical
-effect.)
- - gs_type1_interpret didn't save the current point when returning
-to the client for a callothersubr, causing some characters to be rendered
-displaced (such as some of the chess pieces in chess.ps).
- - gs_setgray, gs_sethsbcolor, gs_setrgbcolor, gs_setflat, and
-gs_setlinewidth gave errors for out-of-range operands rather than forcing
-them into range.
- - Transfer functions were not actually supported.
- - The area fill algorithm failed on certain complex paths.
- - The current point was sometimes defined when a BuildChar
-procedure was called.
- - Stroking a degenerate line didn't display anything for round
-caps or joins.
- - If the ends of a curve had exactly the same X coordinate, the
-curve sometimes wouldn't be displayed.
- - Very thin lines that went outside the clipping region would
-sometimes be displayed as dashed, or not at all.
- - The translation in a FontMatrix was ignored.
- - Very wide, shallow lines would color extraneous pixels when
-using bevel or miter joins.
- - Dashed lines didn't join properly at the beginning of a closed
-path.
- - 0-degree arcs didn't add the appropriate line (possibly
-degenerate) to the path.
- - gs_type1_interpret didn't reset the callsubr stack when starting
-the base character of a seac, which caused confusion if the accent's
-endchar fell inside a Subr.
- - Non-monochrome memory memory devices weren't checking the
-arguments of the drawing procedures properly.
- - The initial clipping rectangle for memory devices was being
-computed wrong.
- - Null devices had a semi-infinite clipping rectangle instead of
-an empty one.
- - gs_setlinewidth was treating negative arguments as zero, instead
-of taking the absolute value.
- - imagemask with a dithered color used a solid color rather than
-the dithered one.
-
-Tweaks the area fill and image rendering algorithms to be a little more
-liberal with paint when being used to render characters.
-
-Changes the name of the 8-bit mapped color memory device from
-mem_mapped_color_device to mem_mapped8_color_device.
-
-Changes the memory devices so that on little-endian platforms, they can
-store the bytes within a word in either order. (Little-endian order
-allows efficient 32-bit updating, big-endian is required when displaying
-or writing to a printer or a file.)
-
-Implements halftone phase.
-
-Replaces the trapezoid fill algorithm with a much more accurate one
-inspired by a contribution from Paul Haeberli. This also changes the
-graphics convention back to filling only pixels whose center falls within
-the region to be filled.
-
-Changes the character cache to allocate headers and bits contiguously out
-of a single ring buffer.
-
-Changes gs_imagemask and gs_imagemask_init to take a thickness adjustment
-parameter.
-
-Changes gs_setcachedevice and gs_setcharwidth to take the graphics state
-as a parameter.
-
-Renames gx_device_memory_bitmap_size as gdev_mem_bitmap_size,
-mem_copy_scan_lines as gdev_mem_copy_scan_lines, and
-mem_bytes_per_scan_line as gdev_mem_bytes_per_scan_line.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.1.1"></a>Version 2.1.1 (1/15/91)</h2>
-
-<p>This is a sub-release distributed to fix a few early bugs in 2.1,
-just in
-time for the new GNU master tape.
-
-<h3><a name="V2.1.1_Build_procedures"></a>Build procedures</h3><pre>
-Removes all of the (undebugged) Level 2 code from the fileset, as well as
-the (unused) file gdevvga.c.
-
-Changes the tar file so that the files are stored in the directory
-gs&lt;version&gt; rather than simply gs, e.g., gs211.
-
-</pre><h3><a name="V2.1.1_Interpreter"></a>Interpreter</h3><pre>
-Changes the scanner so that \ is recognized within strings regardless of
-whether the scanner is reading from a string or from a file. This is
-compatible with newer P*stScr*pt interpreters, and with the newer
-P*stSc*pt language specification, but not with the older specification in
-the original PostScript Language Reference Manual.
-
-</pre><h3><a name="V2.1.1_Drivers"></a>Drivers</h3><pre>
-Fixes the max_value macro in gdevmem.c so that compilers won't complain
-about a left shift by 32.
-
-Adds 'byte' to the list of types that gdevx.c must sidestep because header
-files use them.
-
-</pre><h3><a name="V2.1.1_Library"></a>Library</h3><pre>
-Changes the computation of penum-&gt;unpack in gsimage.c so as not to upset
-compilers that don't treat procedures and pointers to procedures as
-compatible types for conditional expressions.
-
-</pre>
-<h2><a name="Version2.1"></a>Version 2.1 (12/31/90)</h2>
-
-<p>This is primarily a bug fix release to clean up problems in 2.0. It
-also implements a first cut at the new color operators.
-
-<h3><a name="V2.1_Build_procedures"></a>Build procedures</h3><pre>
-Changes the separator for multiple directories in MS-DOS from ';' to '|',
-since there is no way to include a ';' in a command line.
-
-Adds &lt;dir&gt;/fonts to the default search path, where &lt;dir&gt; is c:/ghost for
-MS-DOS systems and `pwd` for Unix systems.
-
-Adds new documentation describing how to direct output to the printer.
-
-Changes the PROCTYPE and USE8087 options in MSDOS.MAK to CPU_TYPE and
-FPU_TYPE. The latter now indicates the type of FPU to generate code for,
-if any.
-
-</pre>
-
-<h3><a name="V2.1_Drivers"></a>Drivers</h3>
-
-<pre>
-Adds a driver for the Canon BubbleJet BJ10e.
-
-Modifies the EGA driver to handle (non-standard) frame buffers larger than
-64K. Adds drivers for the VGA and for the EIZO MDB-10 (a 1024 x 768 frame
-buffer).
-
-Changes the X driver so that it clips to the window dimensions, rather
-than reporting an error.
-
-Notes that the H-P LaserJet driver, like the DeskJet driver, works under
-Unix as well as MS-DOS.
-
-Adds support for 120 X DPI mode, and for the LQ-1500, to the Epson driver.
-
-</pre><h3><a name="V2.1_Fonts"></a>Fonts</h3><pre>
-Fixes bugs in bdftops:
- - It was using /UniqueId instead of /UniqueID as the key for the
-font unique ID. This effectively disabled the font cache.
- - The definition for .notdef was bogus -- an invalid CharString.
-
-Changes ghost.ps and gfonts.ps so that NullFont is the initial font,
-rather than Ugly.
-
-Arranges things so that when attempting a font substitution, if the
-default font is not found, NullFont is used instead.
-
-Extends bdftops so that if certain easily synthesized characters are
-missing from a font, it will attempt to synthesize them using available
-characters.
-
-</pre><h3><a name="V2.1_Interpreter"></a>Interpreter</h3><pre>
-Extends the -T switch to allow specifying a printf template for the
-arguments of the procedure being traced.
-
-Fixes bugs:
- - /0 was interpreted as equivalent to 0 (a number) rather than a
-literal name.
- - packedarray was defined as being like array, instead of like
-array followed by astore.
- - Many minor and harmless type mismatches (and a couple of very
-minor genuine bugs) were upsetting the Apollo C compiler.
- - exp was incorrectly failing in certain cases with a negative
-first argument.
- - copyscanlines incorrectly required at least 4 elements on the
-operand stack, although it correctly only used the top 3.
- - readhexstring incorrectly read 1 byte even if the string length
-was zero.
- - Not every place that expected an array would accept a packed
-array.
- - Very complex paths (and infrequently other things) could produce
-a 'memory leak'.
- - / alone would skip following whitespace and gather following
-characters, rather than creating an empty name.
- - ghost.ps left newerror defined as true in $error, which resulted
-in an erroneous error report if a program executed a 'stop'.
- - The definition of exitserver in serverdict didn't clear the
-stack.
- - currentfile returned an executable file, rather than a literal
-one.
- - setfont for Type 1 fonts didn't check the UniqueID in the font
-dictionary against the one in the font's Private dictionary.
- - A value stored in a dictionary under the key /xxx couldn't be
-retrieved using the key (xxx), and vice versa.
- - charpath with a Type 1 font on a string containing a 'space'
-would produce garbage (it released the parent path inappropriately).
- - bytesavailable did not work properly for terminal input.
-
-Changes the interface to the memory allocator so that it always takes an
-element size and an element count, like calloc instead of malloc (but note
-that alloc does *not* clear just-allocated blocks). Gets rid of the
-special 'dynamic' allocation procedures.
-
-Changes the random number operators to use a better implementation.
-
-Changes the idiv operator so it will accept any numbers, not just
-integers, as arguments. (The PostScript manual doesn't allow this, but
-implementations apparently do.)
-
-Provides semi-fake but usable definitions for all of the color PostScript
-extensions, including a real implementation of colorimage.
-
-No longer uses the name 'null', which is apparently reserved by Microsoft
-C. Makes a number of other minor changes required to pacify the Microsoft
-C compiler.
-
-Implements %statementedit and %lineedit. (%statementedit is equivalent to
-%lineedit, which is wrong.) Changes the interactive interpreter to use
-%statementedit.
-
-Changes the scanner to accept null, ctrl-K (vertical tab), and ctrl-L
-(form feed) as whitespace. Ctrl-L terminates a comment, null and ctrl-K
-do not.
-
-Allows a literal string as the 'proc' argument(s) for image, imagemask,
-and colorimage.
-
-Adds the following operators/procedures: arct, cleardictstack, deletefile,
-renamefile.
-
-Defines =print as a synonym for =, for the benefit of LaserPrep.
-
-Implements non-zero PaintType for the show operators (but not for
-charpath) for Type 1 fonts.
-
-Adds the ISOLatin1Encoding encoding vector.
-
-Renames currentcolor and setcolor as currentgscolor and setgscolor, to
-avoid conflict with the Level 2 PostScript names. Removes colorhsb,
-colorrgb, hsbcolor, and rgbcolor.
-
-</pre><h3><a name="V2.1_Library"></a>Library</h3><pre>
-Fixes bugs:
- - In a couple of places, a 0 was being passed as a pointer
-argument without casting, which confused the Microsoft C compiler.
- - Image devices were not recognized properly in debugging
-configurations.
- - Inverted-color monochrome image devices were not recognized
-properly.
- - Images that exactly fill the drawing area rendered very slowly,
-because they erroneously used the general clipping algorithm.
- - Images that are 1-for-1 with the device were incorrectly scaled
-by a factor of 8 in X.
- - Rounding artifacts sometimes caused characters to be unevenly
-offset vertically by 1 pixel.
- - Type 1 fonts that used the Flex feature resulted in garbled
-images.
- - The show operator routines would incorrectly fill or stroke a
-path that existed at the time the show was started.
- - setscreen truncated the cell size instead of rounding, which
-could produce off-by-1 anomalies.
- - stroke would sometimes produce garbage (or nothing at all) for
-very narrow lines.
- - path filling would only color the pixels whose centers fell
-inside the path: the Adobe specification requires coloring a pixel if any
-part of it falls inside the path.
-
-Changes the Epson printer driver so that it drives the printer directly
-rather than writing to a file.
-
-Changes pathbbox so that if the path is empty but there is a current
-point, it returns a null rectangle at the current point.
-
-Changes gs_image_init to take an additional parameter (after bps) giving
-the number of samples per pixel (1, 3, or 4), and an indication of whether
-the samples for each pixel are together or separated (-3 or -4).
-
-Renames the gs_image_data and gs_imagemask_data procedures as gs_image and
-gs_imagemask, and removes the old versions of the latter.
-
-Adds gs_colorimage.
-
-Replaces Snoopy's color dithering algorithm with one contributed by Paul
-Haeberli.
-
-Changes gs_setgray, gs_[set]hsbcolor, and gs_[set]rgbcolor so that they
-coerce arguments outside the range [0..1] back into the range, instead of
-signalling an error.
-
-Makes a number of minor changes required to pacify the Microsoft C
-compiler.
-
-Changes gs_arcto so that if the last argument is a null pointer, the
-tangent points are not returned.
-
-Removes gs_type1addpath, which is not useful. (Clients must call
-gs_type1_init and gs_type1_interpret directly.)
-
-Implements the 'seac' opcode for Type 1 fonts, allowing fonts with accented
-characters to display properly.
-
-Implements the undocumented 'testadd' opcode for Type 1 fonts, which is
-used by some Adobe fonts.
-
-Renames gs_currentcolor and gs_setcolor as gs_currentgscolor and
-gs_setgscolor. Removes gs_colorhsb, gs_colorrgb, gs_hsbcolor, and
-gs_rgbcolor.
-
-</pre>
-
-<hr>
-
-<h2><a name="Version2.0"></a>Version 2.0 (9/12/90)</h2>
-
-<p>The main purpose of this release is to add fonts, support for
-multiple
-devices, and imaging into memory. It also fixes a number of miscellaneous
-bugs. (Unfortunately, accurate records of the bugs fixed are not
-available.) The changes were so extensive that we chose to increment the
-major version number.
-
-<h3><a name="V2.0_Miscellaneous"></a>Miscellaneous</h3><pre>
-Doesn't attempt to open the .MAP file on Unix systems.
-
-Adds mention of statusd.ps to interp.doc.
-
-Notes that Turbo C 2.0, not 1.5, is required for building the MS-DOS
-version.
-
-Adds a DEVICES= line to the makefile, and allows multiple devices.
-
-Documents, in interp.doc, the X Windows resources that Ghostscript
-recognizes.
-
-Adds three PostScript masters to the fileset: chess.ps (+ cheq.ps),
-golfer.ps, and escher.ps.
-
-</pre><h3><a name="V2.0_Drivers"></a>Drivers</h3><pre>
-Changes the names of all the device drivers. See gdevs.mak for the
-updated list.
-
-Adds a (working) driver for SunView.
-
-Adds drivers for the Sony NeWS frame buffer, and the Sony Microsystems
-NWP533 printers. These drivers were contributed by users, so we aren't
-prepared to answer questions about them.
-
-Adds a driver for the Borland Graphics Interface (BGI) for MS-DOS systems.
-Note that to use this driver with a non-EGA/VGA display, you need a .BGI
-file appropriate for your hardware. (The Ghostscript executable includes
-the EGA/VGA driver.)
-
-Adds a driver for Epson printers. The driver has only been tested on an
-LX-800, and on an H-P DeskJet in FX-80 emulation mode, but may work on
-other models. The driver could be adapted to work on Unix systems, but as
-distributed, it only works on MS-DOS systems.
-
-Adds a driver for the Hewlett-Packard DeskJet printer. The driver could
-be adapted to work on Unix systems, but as distributed, it only works on
-MS-DOS systems.
-
-The X Windows driver no longer waits for the user to type a character
-before bringing up the initial display.
-
-Adds information to drivers.doc describing how to change the definition of
-the device structure and procedure table.
-
-Extends the tile_rectangle and tile_trapezoid driver procedures to
-interpret color0 = color1 = gx_no_color_index as meaning that the tile is
-actually colored, not a mask.
-
-</pre><h3><a name="V2.0_Build_procedures"></a>Build procedures</h3><pre>
-Changes the tar file so it puts everything in a directory called gs.
-
-Removes the -ansi switch for gcc (this was causing problems with &lt;math.h&gt;
-on some systems).
-
-Changes LDPLAT to the string -X, which is appropriate for most Unix
-systems (but not for SunOS 4.n).
-
-Adds EXTRALIBS to the makefile, for specifying additional libraries to be
-linked in.
-
-Adds a 'clean' target for 'make', to get rid of all temporary files, the
-binaries, and the executable.
-
-Changes names of system-specific files from gp-xxx.c to gp_xxx.c.
-
-Adds support for VMS (gp_vms.c and ghost.dcl).
-
-Creates a new file gdevs.mak, and reorganizes the other makefiles, so that
-the choice of which device driver(s) to include is isolated in a single
-line in the platform-specific makefile.
-
-Changes the standard MS-DOS makefile so it builds for 8088/86 (not 80386),
-with neither -DNOPRIVATE nor -DDEBUG.
-
-Changes the name of the MS-DOS makefile from dos-ega.mak to msdos.mak, and
-the Unix makefiles from ux-[g]cc-x.mak to unix-[g]cc.mak.
-
-Updates drivers.doc to describe how to add new drivers in gdevs.mak.
-
-Removes gdevs.ps: the drivers are now responsible for specifying the size
-of the imaging region.
-
-</pre><h3><a name="V2.0_Interpreter"></a>Interpreter</h3><pre>
-Adds a makefile macro GS_LIB_DEFAULT and an environment variable GS_LIB to
-define a search path for the library (initialization and font) files, and
-implements the -I switch for the same purpose (replacing -sLIB=, which was
-never actually implemented). See interp.doc for details.
-
-No longer clears the operand stack between interactive inputs. No longer
-prints the contents of the operand stack after every input in debug mode.
-
-Doesn't "eat" the character that the user types to proceed after a
-showpage, unless it's an isolated &lt;return&gt;.
-
-Changes the prompt so that it says
- GS&gt;
-if the operand stack is empty, or
- GS&lt;n&gt;
-if there are n &gt; 0 elements on the operand stack.
-
-Adds -w and -h switches to the command line, equivalent to -dWIDTH= and
--dHEIGHT= except that they require numeric arguments.
-
-Adds -q (quiet startup) switch to the command line, which suppresses some
-initial messages and also has an effect equivalent to -dQUIET.
-
-Fixes bugs:
- - = and == caused an error on some kinds of objects if the object
-didn't have read access.
- - cvs didn't print operator names.
- - The definition of dynamic_begin in iscan.c caused the DEC VMS C
-compiler to produce incorrect code.
- - mul didn't return a correct (real) result when multiplying a
-very large integer by an integer that wasn't very large.
- - eq and ne didn't work on files, fonts, save objects, and some
-operators.
- - The scanner would sometimes blow up on floating point numbers
-beginning with a '.'.
- - flushfile didn't pop its argument from the stack.
- - put and putinterval would store into a packed array.
- - a few operators didn't check properly for stack underflow.
- - cvrs produced wrong output for radix values greater than 10.
- - The scanner would convert upper-case letters in alternate-radix
-numbers wrong on Unix systems.
- - String comparisons other than equality often produced the wrong
-result if the strings were of different lengths.
- - An ifelse as the last thing inside a forall would confuse the
-execution stack.
- - There were some omitted casts and 'private' declarations that
-made the GNU compiler unhappy.
- - There was a memory leak in the image[mask] operators that caused
-516 bytes to be permanently lost each time one of them was used.
- - Quoted strings of length greater than 50 and less than 100 would
-get mangled when being read in.
- - The scanner didn't consume the whitespace character following a
-token, so programs that read data out of the program file could get
-confused.
- - Under rare circumstances, an object of size between 249 and 255
-bytes could get allocated on top of another object.
-
-Allows bind to bind packed arrays, even though they aren't normally
-writable.
-
-Changes the length operator to allow a name as the argument. (The
-PostScript manual doesn't allow this, but implementations apparently do.)
-
-Changes the setcachedevice operator to allow the bounding box to be
-specified as a 4-element array instead of 4 scalars. (The PostScript
-manual doesn't allow this, but implementations apparently do.)
-
-Removes a line from ghost.ps that accidentally disabled the font cache.
-
-Implements memory devices (makeimagedevice, copyscanlines, and makedevice
-for image devices). makeimagedevice is implemented only for 1, 8, 24, and
-32 bits per pixel.
-
-Changes the deviceparams operator so it pushes a mark on the stack below
-the parameters. This is to allow for devices that have more than the
-standard set of parameters.
-
-Replaces defaultdevicename with two new operators, getdevice and
-devicename.
-
-Adds a flushpage operator that flushes any outstanding buffered output to
-the screen. This is not the same as copypage: on printers, copypage
-actually prints a page, whereas flushpage may do nothing; on displays,
-flushpage and copypage may both flush output to a server.
-
-Adds an unread operator for pushing back a character into a file.
-
-Adds a description of proposed grayimage and colorimage operators to
-ghost.doc, even though they aren't implemented yet.
-
-Changes the name of the currentfileposition operator to fileposition.
-
-Removes the framedevice operator, since the new device operators supersede
-it.
-
-Adds a writeppmfile operator, for writing the contents of a memory device
-to a ppm file.
-
-Makes Ghostscript work even when the &gt;&gt; operator doesn't sign-extend
-negative numbers. (This has not been tested.)
-
-Adds the Symbol encoding to ghost.ps.
-
-Adds two new file-related operators, filename and findlibfile. See
-ghost.doc and interp.doc for details.
-
-Adds type1encrypt and type1decrypt operators for manipulating Adobe Type 1
-encoded fonts.
-
-Changes the imagecharpath and addcharpath operators to type1imagepath and
-type1addpath. These operators now work with the Adobe Type 1 font
-encoding.
-
-Adds the type1decryptfile operator for reading Adobe Type 1 encrypted
-fonts.
-
-</pre><h3><a name="V2.0_Library"></a>Library</h3><pre>
-Fixes bugs:
- - curveto and lineto didn't check for the current point being
-defined.
- - stringwidth would fail if there was no current point.
- - There were omitted casts that made the GNU compiler unhappy.
- - Line caps and joins didn't always work.
- - Dashed lines didn't work at all.
- - If you read out the current matrix while inside a BuildChar
-procedure, the result was garbage.
- - image[mask] would crash if you gave it a single string with more
-than 64K-1 pixels (MS-DOS only).
- - Filling with a gray pattern sometimes wrote into pixels beyond
-the right edge of the region (MS-DOS only).
- - The font cache would mistake fonts for each other if both fonts
-had a default (unsupplied) "unique ID".
- - When a character was entered into the font cache for the first
-time, sometimes it would display as garbage and/or displaced vertically
-from its proper position.
-
-Implements gs_makeimagedevice, gs_copyscanlines, gs_getdevice,
-gs_devicename, gs_flushpage, gs_writeppmfile, gs_type1encrypt,
-gs_type1decrypt, gs_type1imagepath, and gs_type1addpath procedures
-corresponding to the new operators in the interpreter (see preceding
-section).
-
-Changes [gs_]setdevice so that it does an erasepage when it first opens
-the device.
-
-Changes definition of gx_device structure as follows. NOTE: THIS AFFECTS
-ALL DRIVERS.
-
- - Removes bits_from_MSB (which wasn't actually used, in any case).
- Ghostscript now assumes officially, as it always did in
- practice, that device bitmaps are stored MSB first, i.e., X=0
- corresponds to the 0x80 bit in the first byte.
-
- - Removes the initial_matrix member, which wasn't actually being
- set up.
-
- - Adds a new member 'name', a string giving the device name.
-
- - Adds new members 'x_pixels_per_inch' and 'y_pixels_per_inch'.
- These are only used by the default initial_matrix procedure
- (see below).
-
- - Adds a new procedure 'output_page'. The default implementation
- (gx_default_output_page) just calls the sync_output procedure.
-
- - Adds a new procedure 'get_initial_matrix'. The default
- procedure uses the width, height, and x/y_pixels_per_inch
- members to compute the matrix, assuming that X values run from
- right to left, and Y values run from top to bottom.
-
-Changes the names of the allocation procedure types gs_proc_alloc and
-gs_proc_free to proc_alloc_t and proc_free_t, and moves them from gs.h to
-std.h.
-
-Makes Ghostscript work even when the &gt;&gt; operator doesn't sign-extend
-negative numbers. (This has not been tested.)
-
-</pre>
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History3.htm b/Master/xemtex/doc/ghostscript/History3.htm
deleted file mode 100644
index 88fdbb934a1..00000000000
--- a/Master/xemtex/doc/ghostscript/History3.htm
+++ /dev/null
@@ -1,8597 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 3.n</title>
-<!-- $Id: History3.htm,v 1.13.2.11.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: history3.txt -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>History of Ghostscript versions 3.n</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version3.70p1">Version 3.70 patch 1 (6/24/96)</a>
-<ul>
-<li><a href="#V3.70p1_Procedures">Procedures</a>,
- <a href="#V3.70p1_Drivers">Drivers</a>
-</ul>
-<li><a href="#Version3.70">Version 3.70 (limited) (6/23/96)</a>
-<ul>
-<li><a href="#V3.70_Documentation">Documentation</a>,
- <a href="#V3.70_Procedures">Procedures</a>,
- <a href="#V3.70_Drivers">Drivers</a>,
- <a href="#V3.70_Platforms">Platforms</a>,
- <a href="#V3.70_Fonts">Fonts</a>,
- <a href="#V3.70_Interpreter">Interpreter</a>,
- <a href="#V3.70_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.70_Streams">Streams</a>,
- <a href="#V3.70_Library">Library</a>
-</ul>
-<li><a href="#Version3.69">Version 3.69 (limited) (6/14/96)</a>
-<ul>
-<li><a href="#V3.69_Documentation">Documentation</a>,
- <a href="#V3.69_Procedures">Procedures</a>,
- <a href="#V3.69_Utilities">Utilities</a>,
- <a href="#V3.69_Drivers">Drivers</a>,
- <a href="#V3.69_Platforms">Platforms</a>,
- <a href="#V3.69_Fonts">Fonts</a>,
- <a href="#V3.69_Interpreter">Interpreter</a>,
- <a href="#V3.69_Library">Library</a>
-</ul>
-<li><a href="#Version3.68p4">Version 3.68 patch 4 (5/23/96)</a>
-<ul>
-<li><a href="#V3.68p4_Documentation">Documentation</a>,
- <a href="#V3.68p4_Procedures">Procedures</a>,
- <a href="#V3.68p4_Drivers">Drivers</a>,
- <a href="#V3.68p4_Platforms">Platforms</a>,
- <a href="#V3.68p4_Fonts">Fonts</a>,
- <a href="#V3.68p4_Interpreter">Interpreter</a>,
- <a href="#V3.68p4_Library">Library</a>
-</ul>
-<li><a href="#Version3.68p3">Version 3.68 patch 3 (5/17/96)</a>
-<ul>
-<li><a href="#V3.68p3_Procedures">Procedures</a>,
- <a href="#V3.68p3_Utilities">Utilities</a>,
- <a href="#V3.68p3_Drivers">Drivers</a>,
- <a href="#V3.68p3_Platforms">Platforms</a>,
- <a href="#V3.68p3_Interpreter">Interpreter</a>,
- <a href="#V3.68p3_Library">Library</a>
-</ul>
-<li><a href="#Version3.68p2">Version 3.68 patch 2 (5/13/96)</a>
-<ul>
-<li><a href="#V3.68p2_Documentation">Documentation</a>,
- <a href="#V3.68p2_Procedures">Procedures</a>,
- <a href="#V3.68p2_Drivers">Drivers</a>,
- <a href="#V3.68p2_Interpreter">Interpreter</a>,
- <a href="#V3.68p2_Streams">Streams</a>,
- <a href="#V3.68p2_Library">Library</a>
-</ul>
-<li><a href="#Version3.68p1">Version 3.68 patch 1 (5/10/96)</a>
-<ul>
-<li><a href="#V3.68p1_Procedures">Procedures</a>
-</ul>
-<li><a href="#Version3.68">Version 3.68 (limited) (5/9/96)</a>
-<ul>
-<li><a href="#V3.68_Documentation">Documentation</a>,
- <a href="#V3.68_Procedures">Procedures</a>,
- <a href="#V3.68_Utilities">Utilities</a>,
- <a href="#V3.68_Drivers">Drivers</a>,
- <a href="#V3.68_Platforms">Platforms</a>,
- <a href="#V3.68_Fonts">Fonts</a>,
- <a href="#V3.68_Interpreter">Interpreter</a>,
- <a href="#V3.68_Streams">Streams</a>,
- <a href="#V3.68_Library">Library</a>
-</ul>
-<li><a href="#Version3.67">Version 3.67 (limited) (4/12/96)</a>
-<ul>
-<li><a href="#V3.67_Documentation">Documentation</a>,
- <a href="#V3.67_Procedures">Procedures</a>,
- <a href="#V3.67_Platforms">Platforms</a>,
- <a href="#V3.67_Interpreter">Interpreter</a>,
- <a href="#V3.67_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.67_Library">Library</a>
-</ul>
-<li><a href="#Version3.66">Version 3.66 (limited) (4/8/96)</a>
-<ul>
-<li><a href="#V3.66_Documentation">Documentation</a>,
- <a href="#V3.66_Procedures">Procedures</a>,
- <a href="#V3.66_Utilities">Utilities</a>,
- <a href="#V3.66_Drivers">Drivers</a>,
- <a href="#V3.66_Platforms">Platforms</a>,
- <a href="#V3.66_Fonts">Fonts</a>,
- <a href="#V3.66_Interpreter">Interpreter</a>,
- <a href="#V3.66_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.66_Streams">Streams</a>,
- <a href="#V3.66_Library">Library</a>
-</ul>
-<li><a href="#Version3.65">Version 3.65 (limited) (3/9/96)</a>
-<ul>
-<li><a href="#V3.65_Documentation">Documentation</a>,
- <a href="#V3.65_Procedures">Procedures</a>,
- <a href="#V3.65_Utilities">Utilities</a>,
- <a href="#V3.65_Drivers">Drivers</a>,
- <a href="#V3.65_Platforms">Platforms</a>,
- <a href="#V3.65_Interpreter">Interpreter</a>,
- <a href="#V3.65_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.65_Streams">Streams</a>,
- <a href="#V3.65_Library">Library</a>
-</ul>
-<li><a href="#Version3.64">Version 3.64 (limited, incremental) (1/27/96)</a>
-<ul>
-<li><a href="#V3.64_Documentation">Documentation</a>,
- <a href="#V3.64_Procedures">Procedures</a>,
- <a href="#V3.64_Utilities">Utilities</a>,
- <a href="#V3.64_Drivers">Drivers</a>,
- <a href="#V3.64_Platforms">Platforms</a>,
- <a href="#V3.64_Interpreter">Interpreter</a>,
- <a href="#V3.64_Streams">Streams</a>,
- <a href="#V3.64_Library">Library</a>
-</ul>
-<li><a href="#Version3.63">Version 3.63 (limited, incremental) (1/14/96)</a>
-<ul>
-<li><a href="#V3.63_Documentation">Documentation</a>,
- <a href="#V3.63_Procedures">Procedures</a>,
- <a href="#V3.63_Utilities">Utilities</a>,
- <a href="#V3.63_Drivers">Drivers</a>,
- <a href="#V3.63_Platforms">Platforms</a>,
- <a href="#V3.63_Interpreter">Interpreter</a>,
- <a href="#V3.63_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.63_Streams">Streams</a>,
- <a href="#V3.63_Library">Library</a>
-</ul>
-<li><a href="#Version3.62">Version 3.62 (limited, incremental) (12/26/95)</a>
-<ul>
-<li><a href="#V3.62_Documentation">Documentation</a>,
- <a href="#V3.62_Procedures">Procedures</a>,
- <a href="#V3.62_Interpreter">Interpreter</a>,
- <a href="#V3.62_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.62_Library">Library</a>
-</ul>
-<li><a href="#Version3.61">Version 3.61 (limited) (12/10/95)</a>
-<ul>
-<li><a href="#V3.61_Documentation">Documentation</a>,
- <a href="#V3.61_Procedures">Procedures</a>,
- <a href="#V3.61_Utilities">Utilities</a>,
- <a href="#V3.61_Drivers">Drivers</a>,
- <a href="#V3.61_Platforms">Platforms</a>,
- <a href="#V3.61_Fonts">Fonts</a>,
- <a href="#V3.61_Interpreter">Interpreter</a>,
- <a href="#V3.61_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.61_Streams">Streams</a>,
- <a href="#V3.61_Library">Library</a>
-</ul>
-<li><a href="#Version3.60">Version 3.60 (limited) (11/20/95)</a>
-<ul>
-<li><a href="#V3.60_Documentation">Documentation</a>,
- <a href="#V3.60_Procedures">Procedures</a>,
- <a href="#V3.60_Utilities">Utilities</a>,
- <a href="#V3.60_Drivers">Drivers</a>,
- <a href="#V3.60_Platforms">Platforms</a>,
- <a href="#V3.60_Fonts">Fonts</a>,
- <a href="#V3.60_Interpreter">Interpreter</a>,
- <a href="#V3.60_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.60_Streams">Streams</a>,
- <a href="#V3.60_Library">Library</a>
-</ul>
-<li><a href="#Version3.53">Version 3.53 (1/10/96)</a>
-<ul>
-<li><a href="#V3.53_Documentation">Documentation</a>,
- <a href="#V3.53_Procedures">Procedures</a>,
- <a href="#V3.53_Utilities">Utilities</a>,
- <a href="#V3.53_Drivers">Drivers</a>,
- <a href="#V3.53_Platforms">Platforms</a>,
- <a href="#V3.53_Fonts">Fonts</a>,
- <a href="#V3.53_Interpreter">Interpreter</a>,
- <a href="#V3.53_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.53_Streams">Streams</a>,
- <a href="#V3.53_Library">Library</a>
-</ul>
-<li><a href="#Version3.52">Version 3.52 (limited) (10/6/95)</a>
-<ul>
-<li><a href="#V3.52_Procedures">Procedures</a>,
- <a href="#V3.52_Interpreter">Interpreter</a>,
- <a href="#V3.52_Library">Library</a>
-</ul>
-<li><a href="#Version3.51">Version 3.51 (9/27/95)</a>
-<ul>
-<li><a href="#V3.51_Documentation">Documentation</a>,
- <a href="#V3.51_Procedures">Procedures</a>,
- <a href="#V3.51_Utilities">Utilities</a>,
- <a href="#V3.51_Drivers">Drivers</a>,
- <a href="#V3.51_Platforms">Platforms</a>,
- <a href="#V3.51_Interpreter">Interpreter</a>,
- <a href="#V3.51_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.51_Library">Library</a>
-</ul>
-<li><a href="#Version3.50">Version 3.50 (limited) (9/24/95)</a>
-<ul>
-<li><a href="#V3.50_Procedures">Procedures</a>,
- <a href="#V3.50_Utilities">Utilities</a>,
- <a href="#V3.50_Drivers">Drivers</a>,
- <a href="#V3.50_Interpreter">Interpreter</a>,
- <a href="#V3.50_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.50_Library">Library</a>
-</ul>
-<li><a href="#Version3.49">Version 3.49 (limited) (9/20/95)</a>
-<ul>
-<li><a href="#V3.49_Documentation">Documentation</a>,
- <a href="#V3.49_Procedures">Procedures</a>,
- <a href="#V3.49_Drivers">Drivers</a>,
- <a href="#V3.49_Platforms">Platforms</a>,
- <a href="#V3.49_Interpreter">Interpreter</a>,
- <a href="#V3.49_Library">Library</a>
-</ul>
-<li><a href="#Version3.48">Version 3.48 (limited) (9/17/95)</a>
-<ul>
-<li><a href="#V3.48_Documentation">Documentation</a>,
- <a href="#V3.48_Procedures">Procedures</a>,
- <a href="#V3.48_Drivers">Drivers</a>,
- <a href="#V3.48_Platforms">Platforms</a>,
- <a href="#V3.48_Interpreter">Interpreter</a>,
- <a href="#V3.48_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.48_Library">Library</a>
-</ul>
-<li><a href="#Version3.47">Version 3.47 (limited) (9/14/95)</a>
-<ul>
-<li><a href="#V3.47_Documentation">Documentation</a>,
- <a href="#V3.47_Procedures">Procedures</a>,
- <a href="#V3.47_Utilities">Utilities</a>,
- <a href="#V3.47_Drivers">Drivers</a>,
- <a href="#V3.47_Platforms">Platforms</a>,
- <a href="#V3.47_Fonts">Fonts</a>,
- <a href="#V3.47_Interpreter">Interpreter</a>,
- <a href="#V3.47_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.47_Streams">Streams</a>,
- <a href="#V3.47_Library">Library</a>
-</ul>
-<li><a href="#Version3.46">Version 3.46 (limited) (9/4/95)</a>
-<ul>
-<li><a href="#V3.46_Documentation">Documentation</a>,
- <a href="#V3.46_Procedures">Procedures</a>,
- <a href="#V3.46_Utilities">Utilities</a>,
- <a href="#V3.46_Drivers">Drivers</a>,
- <a href="#V3.46_Platforms">Platforms</a>,
- <a href="#V3.46_Interpreter">Interpreter</a>,
- <a href="#V3.46_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.46_Library">Library</a>
-</ul>
-<li><a href="#Version3.45">Version 3.45 (limited) (8/27/95)</a>
-<ul>
-<li><a href="#V3.45_Documentation">Documentation</a>,
- <a href="#V3.45_Procedures">Procedures</a>,
- <a href="#V3.45_Utilities">Utilities</a>,
- <a href="#V3.45_Drivers">Drivers</a>,
- <a href="#V3.45_Platforms">Platforms</a>,
- <a href="#V3.45_Interpreter">Interpreter</a>,
- <a href="#V3.45_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.45_Streams">Streams</a>,
- <a href="#V3.45_Library">Library</a>
-</ul>
-<li><a href="#Version3.44">Version 3.44 (limited) (8/21/95)</a>
-<ul>
-<li><a href="#V3.44_Documentation">Documentation</a>,
- <a href="#V3.44_Procedures">Procedures</a>,
- <a href="#V3.44_Utilities">Utilities</a>,
- <a href="#V3.44_Drivers">Drivers</a>,
- <a href="#V3.44_Platforms">Platforms</a>,
- <a href="#V3.44_Interpreter">Interpreter</a>,
- <a href="#V3.44_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.44_Library">Library</a>
-</ul>
-<li><a href="#Version3.43">Version 3.43 (limited) (8/10/95)</a>
-<ul>
-<li><a href="#V3.43_Documentation">Documentation</a>,
- <a href="#V3.43_Procedures">Procedures</a>,
- <a href="#V3.43_Platforms">Platforms</a>,
- <a href="#V3.43_Fonts">Fonts</a>,
- <a href="#V3.43_Interpreter">Interpreter</a>,
- <a href="#V3.43_Streams">Streams</a>,
- <a href="#V3.43_Library">Library</a>
-</ul>
-<li><a href="#Version3.42">Version 3.42 (limited) (8/2/95)</a>
-<ul>
-<li><a href="#V3.42_Documentation">Documentation</a>,
- <a href="#V3.42_Procedures">Procedures</a>,
- <a href="#V3.42_Platforms">Platforms</a>,
- <a href="#V3.42_Interpreter">Interpreter</a>,
- <a href="#V3.42_Streams">Streams</a>,
- <a href="#V3.42_Library">Library</a>
-</ul>
-<li><a href="#Version3.41">Version 3.41 (limited) (7/27/95)</a>
-<ul>
-<li><a href="#V3.41_Documentation">Documentation</a>,
- <a href="#V3.41_Procedures">Procedures</a>,
- <a href="#V3.41_Utilities">Utilities</a>,
- <a href="#V3.41_Drivers">Drivers</a>,
- <a href="#V3.41_Platforms">Platforms</a>,
- <a href="#V3.41_Fonts">Fonts</a>,
- <a href="#V3.41_Interpreter">Interpreter</a>,
- <a href="#V3.41_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.41_Streams">Streams</a>,
- <a href="#V3.41_Library">Library</a>
-</ul>
-<li><a href="#Version3.40">Version 3.40 (limited) (6/28/95)</a>
-<ul>
-<li><a href="#V3.40_Documentation">Documentation</a>,
- <a href="#V3.40_Procedures">Procedures</a>,
- <a href="#V3.40_Utilities">Utilities</a>,
- <a href="#V3.40_Platforms">Platforms</a>,
- <a href="#V3.40_Interpreter">Interpreter</a>,
- <a href="#V3.40_Streams">Streams</a>,
- <a href="#V3.40_Library">Library</a>
-</ul>
-<li><a href="#Version3.39">Version 3.39 (limited) (6/24/95)</a>
-<ul>
-<li><a href="#V3.39_Documentation">Documentation</a>,
- <a href="#V3.39_Procedures">Procedures</a>,
- <a href="#V3.39_Utilities">Utilities</a>,
- <a href="#V3.39_Platforms">Platforms</a>,
- <a href="#V3.39_Fonts">Fonts</a>,
- <a href="#V3.39_Interpreter">Interpreter</a>,
- <a href="#V3.39_Streams">Streams</a>,
- <a href="#V3.39_Library">Library</a>
-</ul>
-<li><a href="#Version3.38">Version 3.38 (limited) (6/18/95)</a>
-<ul>
-<li><a href="#V3.38_Documentation">Documentation</a>,
- <a href="#V3.38_Procedures">Procedures</a>,
- <a href="#V3.38_Utilities">Utilities</a>,
- <a href="#V3.38_Drivers">Drivers</a>,
- <a href="#V3.38_Platforms">Platforms</a>,
- <a href="#V3.38_Fonts">Fonts</a>,
- <a href="#V3.38_Interpreter">Interpreter</a>,
- <a href="#V3.38_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.38_Streams">Streams</a>,
- <a href="#V3.38_Library">Library</a>
-</ul>
-<li><a href="#Version3.37">Version 3.37 (limited) (5/11/95)</a>
-<ul>
-<li><a href="#V3.37_Documentation">Documentation</a>,
- <a href="#V3.37_Procedures">Procedures</a>,
- <a href="#V3.37_Utilities">Utilities</a>,
- <a href="#V3.37_Drivers">Drivers</a>,
- <a href="#V3.37_Fonts">Fonts</a>,
- <a href="#V3.37_Interpreter_PostScript">Interpreter (PostScript)</a>,
- <a href="#V3.37_Interpreter_PDF">Interpreter (PDF)</a>
-</ul>
-<li><a href="#Version3.36">Version 3.36 (limited) (5/4/95)</a>
-<ul>
-<li><a href="#V3.36_Documentation">Documentation</a>,
- <a href="#V3.36_Procedures">Procedures</a>,
- <a href="#V3.36_Drivers">Drivers</a>,
- <a href="#V3.36_Interpreter">Interpreter</a>,
- <a href="#V3.36_Library">Library</a>
-</ul>
-<li><a href="#Version3.35">Version 3.35 (internal) (5/2/95)</a>
-<ul>
-<li><a href="#V3.35_Documentation">Documentation</a>,
- <a href="#V3.35_Procedures">Procedures</a>,
- <a href="#V3.35_Utilities">Utilities</a>,
- <a href="#V3.35_Drivers">Drivers</a>,
- <a href="#V3.35_Platforms">Platforms</a>,
- <a href="#V3.35_Fonts">Fonts</a>,
- <a href="#V3.35_Interpreter">Interpreter</a>,
- <a href="#V3.35_Library">Library</a>
-</ul>
-<li><a href="#Version3.34">Version 3.34 (internal) (4/18/95)</a>
-<ul>
-<li><a href="#V3.34_Documentation">Documentation</a>,
- <a href="#V3.34_Procedures">Procedures</a>,
- <a href="#V3.34_Interpreter">Interpreter</a>,
- <a href="#V3.34_Library">Library</a>
-</ul>
-<li><a href="#Version3.33">Version 3.33 (4/13/95)</a>
-<ul>
-<li><a href="#V3.33_Documentation">Documentation</a>,
- <a href="#V3.33_Procedures">Procedures</a>,
- <a href="#V3.33_Utilities">Utilities</a>,
- <a href="#V3.33_Drivers">Drivers</a>,
- <a href="#V3.33_Platforms">Platforms</a>,
- <a href="#V3.33_Fonts">Fonts</a>,
- <a href="#V3.33_Library">Library</a>
-</ul>
-<li><a href="#Version3.32">Version 3.32 (4/7/95)</a>
-<ul>
-<li><a href="#V3.32_Documentation">Documentation</a>,
- <a href="#V3.32_Procedures">Procedures</a>,
- <a href="#V3.32_Utilities">Utilities</a>,
- <a href="#V3.32_Drivers">Drivers</a>,
- <a href="#V3.32_Platforms">Platforms</a>,
- <a href="#V3.32_Interpreter">Interpreter</a>,
- <a href="#V3.32_Streams">Streams</a>,
- <a href="#V3.32_Library">Library</a>
-</ul>
-<li><a href="#Version3.31">Version 3.31 (4/2/95)</a>
-<ul>
-<li><a href="#V3.31_Documentation">Documentation</a>,
- <a href="#V3.31_Procedures">Procedures</a>,
- <a href="#V3.31_Utilities">Utilities</a>,
- <a href="#V3.31_Drivers">Drivers</a>,
- <a href="#V3.31_Platforms">Platforms</a>,
- <a href="#V3.31_Interpreter">Interpreter</a>,
- <a href="#V3.31_Streams">Streams</a>,
- <a href="#V3.31_Library">Library</a>
-</ul>
-<li><a href="#Version3.30">Version 3.30 (beta) (3/21/95)</a>
-<ul>
-<li><a href="#V3.30_Documentation">Documentation</a>,
- <a href="#V3.30_Utilities">Utilities</a>,
- <a href="#V3.30_Drivers">Drivers</a>,
- <a href="#V3.30_Interpreter_PostScript">Interpreter (PostScript)</a>,
- <a href="#V3.30_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.30_Library">Library</a>
-</ul>
-<li><a href="#Version3.29">Version 3.29 (internal) (3/8/95)</a>
-<ul>
-<li><a href="#V3.29_Documentation">Documentation</a>,
- <a href="#V3.29_Procedures">Procedures</a>,
- <a href="#V3.29_Utilities">Utilities</a>,
- <a href="#V3.29_Fonts">Fonts</a>,
- <a href="#V3.29_Drivers">Drivers</a>,
- <a href="#V3.29_Interpreter_PostScript">Interpreter (PostScript)</a>,
- <a href="#V3.29_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.29_Streams">Streams</a>,
- <a href="#V3.29_Library">Library</a>
-</ul>
-<li><a href="#Version3.28">Version 3.28 (beta) (2/13/95)</a>
-<ul>
-<li><a href="#V3.28_Documentation">Documentation</a>,
- <a href="#V3.28_Procedures">Procedures</a>,
- <a href="#V3.28_Utilities">Utilities</a>,
- <a href="#V3.28_Drivers">Drivers</a>,
- <a href="#V3.28_Interpreter">Interpreter</a>,
- <a href="#V3.28_Library">Library</a>
-</ul>
-<li><a href="#Version3.27">Version 3.27 (beta)(withdrawn) (2/8/95)</a>
-<ul>
-<li><a href="#V3.27_Documentation">Documentation</a>,
- <a href="#V3.27_Procedures">Procedures</a>,
- <a href="#V3.27_Utilities">Utilities</a>,
- <a href="#V3.27_Drivers">Drivers</a>,
- <a href="#V3.27_Platforms">Platforms</a>,
- <a href="#V3.27_Fonts">Fonts</a>,
- <a href="#V3.27_Interpreter">Interpreter</a>,
- <a href="#V3.27_Streams">Streams</a>,
- <a href="#V3.27_Library">Library</a>
-</ul>
-<li><a href="#Version3.26">Version 3.26 (beta) (2/1/95)</a>
-<ul>
-<li><a href="#V3.26_Documentation">Documentation</a>,
- <a href="#V3.26_Procedures">Procedures</a>,
- <a href="#V3.26_Utilities">Utilities</a>,
- <a href="#V3.26_Drivers">Drivers</a>,
- <a href="#V3.26_Platforms">Platforms</a>,
- <a href="#V3.26_Interpreter">Interpreter</a>,
- <a href="#V3.26_Streams">Streams</a>,
- <a href="#V3.26_Library">Library</a>
-</ul>
-<li><a href="#Version3.25">Version 3.25 (beta) (1/24/95)</a>
-<ul>
-<li><a href="#V3.25_Documentation">Documentation</a>,
- <a href="#V3.25_Procedures">Procedures</a>,
- <a href="#V3.25_Drivers">Drivers</a>,
- <a href="#V3.25_Platforms">Platforms</a>,
- <a href="#V3.25_Interpreter">Interpreter</a>,
- <a href="#V3.25_Library">Library</a>
-</ul>
-<li><a href="#Version3.24">Version 3.24 (beta) (1/17/95)</a>
-<ul>
-<li><a href="#V3.24_Documentation">Documentation</a>,
- <a href="#V3.24_Procedures">Procedures</a>,
- <a href="#V3.24_Drivers">Drivers</a>,
- <a href="#V3.24_Platforms">Platforms</a>,
- <a href="#V3.24_Fonts">Fonts</a>,
- <a href="#V3.24_Interpreter">Interpreter</a>,
- <a href="#V3.24_Interpreter_PostScript">Interpreter (PostScript)</a>,
- <a href="#V3.24_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.24_Streams">Streams</a>,
- <a href="#V3.24_Library">Library</a>
-</ul>
-<li><a href="#Version3.23">Version 3.23 (beta) (1/5/95)</a>
-<ul>
-<li><a href="#V3.23_Documentation">Documentation</a>,
- <a href="#V3.23_Procedures">Procedures</a>,
- <a href="#V3.23_Utilities">Utilities</a>,
- <a href="#V3.23_Drivers">Drivers</a>,
- <a href="#V3.23_Platforms">Platforms</a>,
- <a href="#V3.23_Fonts">Fonts</a>,
- <a href="#V3.23_Interpreter_PostScript">Interpreter (PostScript)</a>,
- <a href="#V3.23_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V3.23_Streams">Streams</a>,
- <a href="#V3.23_Library">Library</a>
-</ul>
-<li><a href="#Version3.22">Version 3.22 (beta) (11/30/94)</a>
-<ul>
-<li><a href="#V3.22_Procedures">Procedures</a>,
- <a href="#V3.22_Drivers">Drivers</a>,
- <a href="#V3.22_Platforms">Platforms</a>,
- <a href="#V3.22_Fonts">Fonts</a>,
- <a href="#V3.22_Interpreter">Interpreter</a>,
- <a href="#V3.22_Streams">Streams</a>,
- <a href="#V3.22_Library">Library</a>
-</ul>
-<li><a href="#Version3.21">Version 3.21 (beta) (11/17/94)</a>
-<ul>
-<li><a href="#V3.21_Documentation">Documentation</a>,
- <a href="#V3.21_Procedures">Procedures</a>,
- <a href="#V3.21_Utilities">Utilities</a>,
- <a href="#V3.21_Drivers">Drivers</a>,
- <a href="#V3.21_Platforms">Platforms</a>,
- <a href="#V3.21_Fonts">Fonts</a>,
- <a href="#V3.21_Interpreter">Interpreter</a>,
- <a href="#V3.21_Streams">Streams</a>,
- <a href="#V3.21_Library">Library</a>
-</ul>
-<li><a href="#Version3.20">Version 3.20 (beta) (10/31/94)</a>
-<ul>
-<li><a href="#V3.20_Documentation">Documentation</a>,
- <a href="#V3.20_Procedures">Procedures</a>,
- <a href="#V3.20_Utilities">Utilities</a>,
- <a href="#V3.20_Drivers">Drivers</a>,
- <a href="#V3.20_Platforms">Platforms</a>,
- <a href="#V3.20_Fonts">Fonts</a>,
- <a href="#V3.20_Interpreters">Interpreters</a>,
- <a href="#V3.20_Library">Library</a>
-</ul>
-<li><a href="#Version3.13">Version 3.13(private) (10/3/94)</a>
-<ul>
-<li><a href="#V3.13_Documentation">Documentation</a>,
- <a href="#V3.13_Procedures">Procedures</a>,
- <a href="#V3.13_Utilities">Utilities</a>,
- <a href="#V3.13_Drivers">Drivers</a>,
- <a href="#V3.13_Platforms">Platforms</a>,
- <a href="#V3.13_Fonts">Fonts</a>,
- <a href="#V3.13_Interpreter">Interpreter</a>,
- <a href="#V3.13_Streams">Streams</a>,
- <a href="#V3.13_Library">Library</a>
-</ul>
-<li><a href="#Version3.12">Version 3.12 (9/29/94)</a>
-<ul>
-<li><a href="#V3.12_Documentation">Documentation</a>,
- <a href="#V3.12_Procedures">Procedures</a>,
- <a href="#V3.12_Drivers">Drivers</a>,
- <a href="#V3.12_Platforms">Platforms</a>,
- <a href="#V3.12_Interpreter">Interpreter</a>,
- <a href="#V3.12_Streams">Streams</a>,
- <a href="#V3.12_Library">Library</a>
-</ul>
-<li><a href="#Version3.1.1">Version 3.1.1 (9/25/94)</a>
-<ul>
-<li><a href="#V3.1.1_Documentation">Documentation</a>,
- <a href="#V3.1.1_Procedures">Procedures</a>,
- <a href="#V3.1.1_Drivers">Drivers</a>,
- <a href="#V3.1.1_Platforms">Platforms</a>,
- <a href="#V3.1.1_Interpreter">Interpreter</a>
-</ul>
-<li><a href="#Version3.1">Version 3.1 (9/20/94)</a>
-<ul>
-<li><a href="#V3.1_Documentation">Documentation</a>,
- <a href="#V3.1_Procedures">Procedures</a>,
- <a href="#V3.1_Drivers">Drivers</a>,
- <a href="#V3.1_Interpreter">Interpreter</a>,
- <a href="#V3.1_Streams">Streams</a>,
- <a href="#V3.1_Library">Library</a>
-</ul>
-<li><a href="#Version3.0.3">Version 3.0.3 (9/16/94)</a>
-<ul>
-<li><a href="#V3.0.3_Documentation">Documentation</a>,
- <a href="#V3.0.3_Procedures">Procedures</a>,
- <a href="#V3.0.3_Utilities">Utilities</a>,
- <a href="#V3.0.3_Drivers">Drivers</a>,
- <a href="#V3.0.3_Platforms">Platforms</a>,
- <a href="#V3.0.3_Fonts">Fonts</a>,
- <a href="#V3.0.3_Streams">Streams</a>,
- <a href="#V3.0.3_Interpreter">Interpreter</a>,
- <a href="#V3.0.3_Library">Library</a>
-</ul>
-<li><a href="#Version3.02">Version 3.02 (8/30/94)</a>
-<ul>
-<li><a href="#V3.02_Documentation">Documentation</a>,
- <a href="#V3.02_Procedures">Procedures</a>,
- <a href="#V3.02_Utilities">Utilities</a>,
- <a href="#V3.02_Drivers">Drivers</a>,
- <a href="#V3.02_Platforms">Platforms</a>,
- <a href="#V3.02_Fonts">Fonts</a>,
- <a href="#V3.02_Interpreter">Interpreter</a>,
- <a href="#V3.02_Streams">Streams</a>,
- <a href="#V3.02_Library">Library</a>
-</ul>
-<li><a href="#Version3.01">Version 3.01 (8/14/94)</a>
-<ul>
-<li><a href="#V3.01_Documentation">Documentation</a>,
- <a href="#V3.01_Procedures">Procedures</a>,
- <a href="#V3.01_Utilities">Utilities</a>,
- <a href="#V3.01_Drivers">Drivers</a>,
- <a href="#V3.01_Platforms">Platforms</a>,
- <a href="#V3.01_Fonts">Fonts</a>,
- <a href="#V3.01_Interpreter">Interpreter</a>,
- <a href="#V3.01_Streams">Streams</a>,
- <a href="#V3.01_Library">Library</a>
-</ul>
-<li><a href="#Version3.0">Version 3.0 (8/1/94)</a>
-<ul>
-<li><a href="#V3.0_Documentation">Documentation</a>,
- <a href="#V3.0_Procedures">Procedures</a>,
- <a href="#V3.0_Utilities">Utilities</a>,
- <a href="#V3.0_Drivers">Drivers</a>,
- <a href="#V3.0_Platforms">Platforms</a>,
- <a href="#V3.0_Fonts">Fonts</a>,
- <a href="#V3.0_Interpreter">Interpreter</a>,
- <a href="#V3.0_Streams">Streams</a>,
- <a href="#V3.0_Library">Library</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a history of Ghostscript releases numbered 3.n. For more
-recent changes, see the the other history documents and, for the latest
-versions, the news:
-
-<blockquote>
-<a href="News.htm">News</a><br>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-History of Ghostscript versions 3.n (this document)<br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<h2><a name="Version3.70p1"></a>Version 3.70 patch 1 (6/24/96)</h2>
-
-<p>
-This contains a few last-minute patches before the release.
-
-<h3><a name="V3.70p1_Procedures"></a>Procedures</h3><pre>
-Comments out the color inkjet drivers in the cc-based makefile, because a
-bug in Sun's cc prevents them from compiling. (cc-head.mak)
-
-</pre><h3><a name="V3.70p1_Drivers"></a>Drivers</h3><pre>
-Fixes bugs:
- - The os2prn driver smashed memory. (gdevos2p.c)
- - Some initialized structures weren't declared 'static'.
-(gdevpdf.c, gdevpdfm.c)
- - The PNG driver wouldn't compile with some older versions of the
-PNG library. (gdevpng.c)
-
-</pre>
-
-<h2><a name="Version3.70"></a>Version 3.70 (limited) (6/23/96)</h2>
-
-<p>
-This is the candidate fileset for 4.0. Aside from one optimization
-for the PDF writer, the only changes are bug fixes.
-
-<h3><a name="V3.70_Documentation"></a>Documentation</h3><pre>
-
-Renames all the documentation files from *.doc to *.txt, since the .doc
-extension didn't give any information about the format of the file.
-(readme, *.doc, *.txt)
-
-Notes that IJG JPEG library v6[a] is now required. (jpeg.mak)
-
-Brings ps2pdf.1 up to date. (ps2pdf.1)
-
-Adds a new file describing Aladdin's C coding practices. (c-style.txt)
-
-Updates the man pages to refer to version 4.0. (gs.1, pdf2ps.1, ps2ascii.1,
-ps2pdf.1)
-
-</pre><h3><a name="V3.70_Procedures"></a>Procedures</h3><pre>
-
-Changes some file names to fit within the MS-DOS 8.3 limit. (gs.mak)
-
-Adds the PDF writer to the remaining 32-bit configurations (Watcom, OS/2,
-MSC). (watc.mak, watcwin.mak, os2.mak, msc.mak, msvcwint.mak)
-
-Changes the -sFONTMAP= switch so it can take a list of font names, like a
-search path. (use.txt)
-
-</pre><h3><a name="V3.70_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Signed and unsigned values were mixed inconsistently. (gdevcdj.c)
- - PDF files could contain e-format floating point numbers, which the
-PDF specification doesn't allow. (gdevpdfx.h, gdevpdf*.c)
- - The PDF writer didn't handle glyphshow properly. (gs_pdfwr.ps)
- - The PDF writer did the wrong thing with fonts whose FontMatrix had
-a non-zero translation component. (gs_pdfwr.ps, gdevpdft.c)
- - The stand-alone bounding box device could crash when setting
-parameters. (gdevbbox.c)
- - The mswinpr2 driver smashed memory. (gdevwpr2.c)
-
-Changes the PDF writer so that if it encounters a re-encoded character, it
-tries to map it to an encoded character in the standard (ISO Latin-1)
-encoding rather than converting the entire string containing it to a bitmap.
-This dramatically improves output file size for files with a few divergently
-encoded characters, but it may cause the text in the PDF file to differ from
-the text in the PostScript input. (gdevpdft.c)
-
-Disallows BitsPerPixel=16 in the MS Windows and OS/2 drivers, since this bit
-depth is not supported by Windows and would require special extra buffering.
-(install.txt, dwtext.h, dwtext.cpp, gdevmswn.c, gdevpm.c, gdevwpr2.c)
-
-</pre><h3><a name="V3.70_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - On the PC platforms, file names weren't changed to reflect the
-value of CONFIG. (gs.mak, bc*.mak, ms*.mak, os2.mak, tc*.mak, watc*.mak,
-wccommon.mak)
-
-Modifies some makefiles for greater reusability. (bclib.mak, watclib.mak)
-
-</pre><h3><a name="V3.70_Fonts"></a>Fonts</h3><pre>
-
-Changes the font searching rules in the following NON-BACKWARD-COMPATIBLE
-way: (gs_fonts.ps, gs_res.ps)
- - -sFONTMAP=files specifies a list of files containing fontmaps;
-previously, it specified only a single fontmap file.
- - If -sFONTMAP= is not used, the interpreter reads the Fontmaps from
-*all* directories on the search path, and does so even if FONTPATH or
-GS_FONTPATH is set; previously, it read only the first Fontmap, and only if
-[GS_]FONTPATH was not set.
- - Fontmap(s) take precedence over [GS_]FONTPATH; previously,
-[GS_]FONTPATH caused Fontmap to be ignored. (You can still force Fontmap to
-be ignored with -dNOFONTMAP.)
- - Earlier [GS_]FONTPATH entries take precedence over later;
-previously, later entries took precedence over earlier. Note that this is
-different from Fontmap: earlier Fontmaps in the search path take precedence
-over later, but within a single Fontmap, later entries take precedence over
-earlier (for backward compatibility).
- - [GS_]FONTPATH is consulted only if there is no Fontmap entry for a
-font, or no Fontmap entry leads to successful loading; previously,
-[GS_]FONTPATH was always consulted at startup.
- - If loading a font fails, the interpreter tries the next Fontmap
-entry; previously, it fell back to font substitution.
-
-</pre><h3><a name="V3.70_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Filters didn't peek ahead for an EOD (see Streams below).
-(zfileio.c, zpaint.c)
-
-Splits up a file to allow internal access to user and system parameters even
-in Level 1. (zmisc2.c, zusparam.c)
-
-Adds LIBPATH as a predefined name in systemdict. Its value is an array of
-strings comprising the library search path. (imain.c)
-
-</pre><h3><a name="V3.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - A Dests dictionary entry with an array (rather than a dictionary)
-value caused an error. (pdf_main.ps)
- - Rotated pages could have incorrect translation and/or clipping.
-(pdf_main.ps)
-
-</pre><h3><a name="V3.70_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - If a buffer boundary fell just before an EOD, and the client read
-exactly as much data as was present before the EOD, filters didn't consume
-the EOD. (This is required as a tricky consequence of the Adobe
-specification.) (stream.h, strimpl.h, stream.c)
-
-</pre><h3><a name="V3.70_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - An extra column of bits could get turned on at the right edge of
-masked or monochrome images. (gximage2.c)
- - Rasterizing very long curves could cause arithmetic errors or
-floating point overflows. (gxpcopy.c)
- - Banding with large line widths could truncate curves or introduce
-spurious lines. (gxclpath.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.69"></a>Version 3.69 (limited) (6/14/96)</h2>
-
-<p>
-More bug fixes, plus one irresistible new feature: the ability to use
-TrueType fonts as freely as Type 1 fonts. Also, one new feature (outside
-clipping) that was needed for Aladdin's PCL XL project. We incremented the
-version number because of the change in trapezoid and path filling (see
-under Library below).
-
-<h3><a name="V3.69_Documentation"></a>Documentation</h3><pre>
-Brings documentation about fonts up to date. (fonts.doc)
-
-Updates current.doc to reflect changes since 3.53. (current.doc)
-
-Updates the DLL documentation to reflect recent changes. (dll.doc)
-
-Documents a workaround for the code generation bug in gcc 2.7.x. (make.doc)
-
-Changes the contact information for potential commercial customers in
-Europe. (new-user.doc)
-
-Updates the OS/2 documentation to make it current. (install.doc, make.doc)
-
-Documents -dCOLORSCREEN=0. (use.doc)
-
-</pre><h3><a name="V3.69_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - 'make clean' didn't work in the Watcom environment.
-(wmakebat.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak, tccommon.mak,
-unixhead.mak, wccommon.mak)
- - The X11 libraries were listed in an incorrect order.
-(ansihead.mak, cc-head.mak, gcc-head.mak, ugcclib.mak, unix-end.mak)
- - The OS/2 makefile didn't ignore errors from `erase' commands.
-(os2.mak)
-
-Adds the PDF writer to the 32-bit MS Windows configuration. (bcwin32.mak)
-
-Adds the PNG drivers to the 32-bit MS Windows platform, since they now
-compile properly. (bcwin32.mak)
-
-Changes the ttfont feature so that it refers to support for direct usage of
-TrueType fonts; puts support for Type 42 fonts into a separate feature
-(type42). (gs.mak, int.mak)
-
-Adds direct TrueType font support to the Windows platforms. (bcwin.mak,
-bcwin32.mak)
-
-Rewrites vms.mak to be structured more like the other makefiles. (vms.mak,
-modules.lis)
-
-Makes the device lists in vms-*.mak the same as those for the Unix
-configurations. (vms-cc.mak, vms-decc.mak, vms-gcc.mak)
-
-Changes the default X library directory for gcc to /usr/X11/lib.
-(gcc-head.mak)
-
-Adds the list of devices to --help, since HylaFax depends on this.
-(imainarg.c)
-
-Adds -dCOLORSCREEN=0 to indicate use of 4 separate color screens with the
-same frequency and angle. (gs_init.ps)
-
-</pre><h3><a name="V3.69_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - When ps2epsi encountered a blank page, it called the
-(undocumented) .quit operator with only one argument, causing a stack
-underflow. (ps2epsi.ps)
- - An extraneous file was included in the fileset. (checkacc.ps)
- - A file was omitted from the fileset. (bench.c)
- - Images in PostScript files produced by pdf2ps were processed about
-50 times slower than they should have been. (gs_pdf.ps)
-
-</pre><h3><a name="V3.69_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - An #include was omitted. (gdevpdfi.c)
- - The BJC driver could get into an inconsistent state. (gdevcdj.c)
- - Braces were omitted around the values for two initialized byte
-arrays. (gdevpcx.c)
- - A function used 'float' in its argument list, causing problems in
-mixed ANSI/non-ANSI compilation. (gdevcdj.c)
- - signed and unsigned char pointers were used inconsistently.
-(gdevcdj.c, gdevcgml.c)
- - Some header files weren't protected against double inclusion.
-(gdevprn.h, gdevtifs.h)
- - The 24-bit PNG driver included unnecessary copies of the color
-mapping procedures. (gdevpng.c)
-
-Fixes bugs in the PDF writer:
- - The PDF writer sometimes produced a double // in front of a filter
-name. (gdevpdfi.c)
- - The PDF writer produced zero-width, zero-height images for
-non-standard fonts. (bug introduced since 3.68) (gdevpdfi.c)
- - The PDF writer got confused if the input file invoked
-setpagedevice. (gdevpdfp.c)
- - The PDF writer put annotations on the page after the one they were
-supposed to be on. (gdevpdf.c)
- - The PDF writer sometimes failed to set the font when needed.
-(gdevpdf.c)
- - The PDF writer could produce in-line images that were too large.
-(gdevpdfi.c)
- - The PDF writer didn't scale explicit character and word spacing
-(ashow/widthshow/awidthshow) properly. (gdevpdft.c)
- - The PDF writer didn't copy named destination or article title
-strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c)
- - The PDF writer produced incorrect output for re-encoded fonts.
-(It now converts any string containing characters in non-standard positions
-to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps,
-gdevpdfx.h, gdevpdfp.c, gdevpdft.c)
-
-Updates a few drivers for the change in the handling of band device
-procedures. (gdevcp50.c, gdevdjet.c)
-
-Updates the X Windows driver for strip halftones. (gdevx.c)
-
-Adds anti-aliasing capability to the os2pm device. (gdevpm.c)
-
-Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)
-
-</pre><h3><a name="V3.69_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - A patch for the MS Windows platform was accidentally omitted.
-(gp_mswin.c)
- - A block of code was accidentally duplicated. (dwmain.cpp)
- - An identifier exceeded VAX VMS C's limit of 31 characters.
-(gscspace.h)
- - File name enumeration didn't work properly on Unix systems
-(still/again). (gp_unifs.c)
- - On MS Windows, If you closed Ghostscript with the system menu, you
-only closed the text window; Ghostscript kept running and you had to use the
-task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp)
- - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h,
-dpmainc.c, dwdll.cpp)
- - Attempts to call the DLL before it was initialized were not
-detected. (gsdll.c)
- - Bitmap line lengths were rounded up even on 32-bit Windows, which
-doesn't want this. (gdevwdib.c)
-
-Further improves the handling of attempts to use the DLL when it is already
-in use. (dwdll.cpp, gsdll.c)
-
-Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)
-
-</pre><h3><a name="V3.69_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps)
-
-Makes changes so that TrueType fonts can appear in the Fontmap and can be
-loaded directly. (gs_fonts.ps, gs_ttf.ps)
-
-</pre><h3><a name="V3.69_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Executing a .quit with only 1 element on the operand stack caused
-an invalid access. (zcontrol.c)
- - The usage help message contained incorrect double %%s.
-(imainarg.c)
- - If an initialization file tried to use any Encodings other than
-the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps)
- - Places that expected arrays of coordinates (rectangles,
-x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c)
- - filterdict was still visible after initialization. (gs_init.ps)
- - The usage error message wasn't terminated by a newline.
-(imainarg.c)
- - setcacheparams (or setting the MaxFontCache user parameter) didn't
-actually affect the size of the character cache. (zfont.c, zmisc2.c)
- - The main interpreter loop declared iref as a ref *, even though it
-may only be a ref_packed *. (iref.h, interp.c)
-
-Changes the character cache so it ignores absurd FontBBox values. Nothing
-in the Adobe spec suggests doing this, but it is necessary for handling
-questionable output produced by PageMaker 5.0 (an Adobe product!).
-(zchar1.c)
-
-Changes some type declarations slightly to reduce the number of 'discarding
-const' compiler warnings. (igc.h, igc.c, igcref.c)
-
-Adds .setclipoutside and .currentclipoutside operators for accessing the new
-outside clipping capability. (zpath.c)
-
-Adds the dictionary stack to the information printed in case of a fatal
-problem. (imain.c)
-
-Adds .set/currentrenderalgorithm operators for testing. (zrop.c)
-
-</pre><h3><a name="V3.69_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The TrueType rasterizer didn't map quadratic to cubic splines
-well, and didn't handle off-curve points at the end of a contour properly.
-(gstype42.c)
- - An #include was omitted. (gsimage.c, gxclimag.c)
- - Some compilers complained about statements with no effect, or
-comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c)
- - TrueType or Type 42 glyphs with a repeat count that crossed a
-contour boundary produced incorrect output. (gstype42.c)
- - TrueType / Type 42 composite glyphs involving rotation were placed
-incorrectly. (gstype42.c)
- - Type 42 fonts with an absent or incorrect FontBBox could fail to
-produce output. (gstype42.c)
- - Some header files weren't protected against double inclusion.
-(gsio.h, gdebug.h)
- - Decoding filters didn't "look ahead" to detect EOD, so if the last
-read operation before closing the filter ended just before the EOD mark, the
-EOD mark might not be absorbed. (stream.h, stream.c)
- - Filling paths consisting of multiple subpaths that overlap in Y
-produced slightly inaccurate output. We were unable to find a way to fix
-this without making a NON-BACKWARD-COMPATIBLE change in the interface for
-the recently introduced fill_trapezoid device procedure. (gxdevice.h,
-gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c)
- - When banding, get_bits didn't detect calls with out-of-range Y
-values. (gxclread.c)
- - setcacheparams didn't actually affect the size of the character
-cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c,
-gxccman.c, gxclbits.c)
- - When banding, colored halftones could be mangled. (gxclread.c)
-
-Fixes bugs in the bounding box device:
- - The bounding box device could give bizarre results if any objects
-crossed the lower edge of the page. (gdevbbox.c)
- - The bounding box device could get a memory access error when
-processing image data. (gdebbox.c)
- - The bounding box device ran the default drawing algorithms even if
-it had no target (performance bug only). (gdevbbox.c)
- - The bounding box device computed an incorrect (too small) box for
-partially clipped bitmap images. (gdevbbox.c)
- - The bounding box device got confused by files that filled the
-entire page with a background color. (gdevbbox.c)
- - The bounding box device produced infinite-height boxes for certain
-kinds of data. (gdevbbox.c)
-
-Changes some type declarations slightly to reduce the number of 'discarding
-const' compiler warnings. (gsmemory.h, gsstruct.h)
-
-Adds the capability of clipping to the outside rather than the inside of the
-clipping path. This is required for emulating an obscure feature of the
-Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h,
-gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.)
-
-Makes it possible for band devices to select the underlying memory device
-used to accumulate the actual bits. This is required for (at least) PCL5
-emulation. This requires adding a procedure to the gx_device_printer
-structure, which, for devices that initialize the structure without using
-the macros in gdevprn.h or access the printer-specific procedures directly,
-is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h,
-gdevdflt.c, gdevprn.c, gxclread.c)
-
-Speeds up handling of rotated or halftoned masked images. (gximage2.c)
-
-Adds an output_page procedure to the bounding box device, for testing.
-(gdevbbox.c)
-
-Adds a sample device that keeps track of the "render algorithm", for PCL5c
-emulation. (gdevrrgb.c)
-
-</pre>
-
-<h2><a name="Version3.68p4"></a>Version 3.68 patch 4 (5/23/96)</h2>
-
-<p>
-More minor bug fixes, mostly related to the MS Windows implementation.
-
-<h3><a name="V3.68p4_Documentation"></a>Documentation</h3><pre>
-Further updates various doc files to make them more useful to new users.
-(NEWS, README, current.doc, helpers.doc, new-user.doc)
-
-Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak)
-
-Documents a bug in the Borland C++ 4.52 compiler, and where to find the
-patch for it. (make.doc)
-
-</pre><h3><a name="V3.68p4_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - A command line exceeded the MS-DOS 120 character limit.
-(devs.mak)
-
-A file was accidentally omitted from the fileset. (wmakebat.bat)
-
-</pre><h3><a name="V3.68p4_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Many of the 'show' operators didn't work properly if the PDF
-writer was included in the configuration. (gs_pdfwr.ps)
- - x_wrap_get_bits was ridiculously slow. (It still is, but not
-quite as ridiculously.) (gxcindex.h, gdevxalt.c)
- - The PDF writer generated CR instead of CalRGB, which is legal per
-the Adobe spec but not compatible with some Adobe Acrobat products.
-(gdevpdfi.c)
- - Some signed/unsigned discrepancies caused compilation warnings.
-(gdevpdfm.c, gdevpdfp.c, gdevpdft.c)
-
-Fixes bugs in the Windows driver:
- - An accidentally opened tiny window didn't get closed.
-(gdevwdib.c)
- - The name DllInit was misleading, and this procedure wasn't being
-called whtn the DLL was loaded, so the DLL couldn't know the instance
-handle. (gp_mswin.c)
- - The code didn't recognize Win32s (vs. Windows 95) correctly.
-(dwmain.cpp, gdevwdib.c, gp_mswin.h, gp_mswin.c, gsdll16.rc)
- - Some compiler warnings needed fixing. (gdevwdib.c)
- - gsdll16.def and gsdll32.def were different. (gsdll32.def)
- - A GPF leaving the 16-bit DLL loaded could make the DLL permanently
-unusable. (dwmain.cpp)
- - Two obsolete files were still included in the fileset.
-(gswin.def, gswin32.def)
-
-Adds a compile-time option to the 'bit' drivers to expand 4-bit pixels to
-32-bit. This was required for tracking down customer problems, because the
-only tools we have available for displaying CMYK images require 32 bits per
-pixel. (gdevbit.c)
-
-</pre><h3><a name="V3.68p4_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - In DEC C, &lt;time.h&gt; does define the timeval struct. (time_.h)
-
-Changes gsdll_init() to take an additional argument, a window handle. This
-is a NON-BACKWARD-COMPATIBLE change. (dll.doc, dwdll.h, gsdll.h, dwdll.cpp,
-dwmain.cpp, dwmainc.cpp, gsdll.c)
-
-</pre><h3><a name="V3.68p4_Fonts"></a>Fonts</h3><pre>
-
-Updates more Fontmaps to include the new URW++ fonts. (Fontmap.OS2,
-Fontmap.ATM)
-
-</pre><h3><a name="V3.68p4_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The default operator array table wasn't big enough. (iinit.c)
- - Some signed/unsigned discrepancies caused compilation warnings.
-(imain.c, imainarg.c, zfile.c)
-
-Adds encoding vectors for Windows 3.1 Latin 1, Latin 2, and Latin 5
-encodings. None of these are loaded in the standard configuration.
-(gs_wl{1,2,5}_e.ps)
-
-</pre><h3><a name="V3.68p4_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some tracing output was incorrect or missing. (gxdither.c)
- - Resized objects in the C heap had incorrect bookkeeping
-information (bug introduced in 3.68). (gsmemory.c)
- - Image pixels that fell exactly on device half-pixel boundaries
-could get discarded. (gximage0.c)
- - The bounding box device didn't set a variable properly and didn't
-implement end_image, leading to invalid memory accesses. (gdevbbox.c)
- - Fonts with BuildChar routines written in C didn't work properly
-with kshow or xyshow. (gschar.c)
-
-Adds some additional tracing output for Patterns. (gxpcmap.c)
-
-Adds tracing output for freeing malloc'ed blocks at the end of execution.
-(gsmemory.c)
-
-Adds a gs_dashpath procedure that expands dashes in the same way that
-gs_flattenpath expands curves. (gspath.h, gspath1.c)
-
-</pre>
-
-<h2><a name="Version3.68p3"></a>Version 3.68 patch 3 (5/17/96)</h2>
-
-<p>
-More bug fixes during the beta test period. AccurateScreens now works
-properly.
-
-<h3><a name="V3.68p3_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The help message was too long to fit on a PC screen or standard
-terminal. (imainarg.c)
- - Failure to run tar_cat wasn't detected. (unix-end.mak,
-unixtail.mak)
-
-</pre><h3><a name="V3.68p3_Utilities"></a>Utilities</h3><pre>
-Fixes bugs:
- - In the PostScript files produced by pdf2ps, images using ASCII85
-encoding would cause a typecheck error. (gs_pdf.ps)
- - pdf2ps wrote out strings longer than 200 characters incorrectly.
-(pdf_2ps.ps)
-
-</pre><h3><a name="V3.68p3_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs in gdevcdj.c (according to the author, we have no way to test
-this):
- - The driver used to use Colors as well as ProcessColorModel to
-define the process color model. (devices.doc, gdevbjc.h, gdevcdj.c)
- - Incorrect or inconsistent settings of BitsPerPixel and
-ProcessColorModel, or setting one but not the other, could leave the driver
-in an inconsistent state. (gdevcdj.c)
-
-Fixes bugs in the MS Windows driver:
- - Insufficient memory for the backing bitmap could cause a GPF.
-(gdevmswn.c, gdevwdib.c)
- - Invalid parameters could cause a crash within the DLL code.
-(gdevwdib.c)
-
-Adds a user-contributed driver for the CalComp Raster Format. (devs.mak,
-gdevccr.c)
-
-Adds an anti-aliasing option for MS Windows. (gdevmswn.c, gdevwdib.c)
-
-</pre><h3><a name="V3.68p3_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs in the Windows platform:
- - One had to type "quit" twice to exit. (dwdll.h, dwdll.cpp)
-
-</pre><h3><a name="V3.68p3_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Platform fonts didn't work properly if the document's primary
-encoding was the standard MS Windows encoding. (ifont.h, gs_wan_e.ps)
- - stringwidth with a Type 1 font could give a spurious typecheck
-error (bug introduced in 3.65). (zcharout.c)
- - If a DOS editor added a ^Z to the end of the Fontmap file, an
-error occurred during initialization. (gs_fonts.ps)
- - Halftones that didn't specify a value for AccurateScreens
-sometimes ignored the setting of the AccurateScreens user parameter.
-(zht2.c)
-
-</pre><h3><a name="V3.68p3_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - gs_join_none was defined, but not implemented. (gxstroke.c)
- - A bookkeeping list for fonts could get confused, causing invalid
-memory accesses. (gsfont.c)
- - An I/O error or internal error would cause the band list
-rasterizer to go into an infinite loop. (gxclread.c)
- - The algorithm for choosing screen angles and frequencies produced
-poor results. (gshtscr.c)
- - Color screens were broken (bug introduced in 3.68). (gxdht.h,
-gzht.h, gsht.c, gshtscr.c)
-
-</pre>
-
-<h2><a name="Version3.68p2"></a>Version 3.68 patch 2 (5/13/96)</h2>
-
-<p>
-This is another set of patches for the next general release.
-
-<h3><a name="V3.68p2_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - Windows NT and Windows 95 implementations were identified as
-"under development" rather than available. (README)
- - There were several other minor errors in the README file.
-(README)
- - The claimed current IJG JPEG version was incorrect. (jpeg.mak)
-
-Splits off information for new users into a separate file. (README,
-new-user.doc)
-
-</pre><h3><a name="V3.68p2_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - gettimeofday takes 2 arguments on SVR4 systems more recent than
-SVR4.0. (make.doc, ansihead.mak, cc-head.mak, gcc-head.mak, time_.h)
-
-Changes the default Unix data installation directory from /usr/local/lib to
-/usr/local/share, which seems to be favored by more recent Unix systems
-(except for some GNU/Linux versions, which still use /usr/local/lib, and BSD/OS,
-which puts Ghostscript in /usr/contrib/lib.) (ansihead.mak, cc-head.mak,
-gcc-head.mak, ugcclib.mak)
-
-Changes the unset commands in the Unix script to assignments, because a few
-older Unix shells don't provide unset. (unixtail.mak)
-
-</pre><h3><a name="V3.68p2_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - An #include incorrectly referred directly to a system header.
-(gdevpdft.c)
- - CMYK devices took an excessive amount of time clearing the page to
-white. (gdevm32.c)
-
-Adds a compile-time option to the 'bit' drivers to remove top and bottom
-whitespace. This change was required in order to track down a customer bug.
-(gdevbit.c)
-
-</pre><h3><a name="V3.68p2_Interpreter"></a>Interpreter</h3><pre>
-
-Updates the interpreter for the split in the gstate API. (igstate.h)
-
-</pre><h3><a name="V3.68p2_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Some compilers don't define NULL widely enough. (spngp.c)
-
-</pre><h3><a name="V3.68p2_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There was a minor typo (&amp; for &amp;&amp;) that didn't affect execution.
-(gxccman.c)
- - There was a trailing comma in an enumeration. (gsiparam.h)
- - Internal and public interfaces weren't separated properly. THIS
-IS A NON-BACKWARD-COMPATIBLE CHANGE for clients using certain undocumented
-interfaces to the graphics state. (gsstate.h, gxstate.h, gzstate.h,
-gsstate.c)
- - A 'private' declaration was missing (yet again). (gxclimag.c)
-
-</pre>
-
-<h2><a name="Version3.68p1"></a>Version 3.68 patch 1 (5/10/96)</h2>
-
-<p>
-This is the first bug fix (patch) incremental release for the next
-general release.
-
-<h3><a name="V3.68p1_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - Many Windows-specific files were omitted from the previous
-fileset: dw*.rc, dw*.cpp.
-
-</pre>
-
-<h2><a name="Version3.68"></a>Version 3.68 (limited) (5/9/96)</h2>
-
-<p>
-This release cleans up the new Windows files, mostly implements the
-high-level driver API for bitmap images, and adds practical strip
-(AccurateScreens) halftoning. This is the first "serious beta" fileset for
-the next general release. It still has more problems than I would have
-liked.
-
-<h3><a name="V3.68_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The names of the executable files for MS Windows were out of date.
-(make.doc)
- - gxcindex.h still referred to "drawing color". (gxcindex.h)
- - The name of the default font directory for Unix systems was
-incorrect. (make.doc)
-
-Moves the list of files required for installation, and some other
-installation instructions, from make.doc to install.doc. (install.doc,
-make.doc)
-
-Adds a description of the PNGPredictor filters. (language.doc)
-
-Updates the documentation of the higher-level driver procedures to match the
-specification changes. (drivers.doc)
-
-Documents the change in the Watcom build procedure. (make.doc)
-
-Improves the documentation of bitmap IDs. (gxbitmap.h)
-
-Adds documentation for the new strip_tile_rectangle and strip_copy_rop
-driver procedures. (drivers.doc)
-
-Changes the few remaining direct FTP addresses in README to URLs. (README)
-
-Notes that zlib does not compile correctly on IRIX 6.n with optimization.
-(make.doc)
-
-Adds references to PDF and TrueType fonts to language.doc. (language.doc)
-
-Updates fonts.doc to remove references to fonts.mak. (fonts.doc)
-
-Describes how to substitute an LZW compressor for the LZW-compatible
-compressor provided in the standard release. (make.doc)
-
-</pre><h3><a name="V3.68_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Some lines had exceeded the 120-character limit of the
-MS-DOS shell. (int.mak)
- - The configuration files weren't generated correctly when CONFIG
-wasn't an empty string. (unixhead.mak)
-
-Factors out shared DLL makefile rules into a new file. (bcwin.mak,
-bcwin32.mak, dwcommon.mak)
-
-Makes the cp and rm commands into makefile parameters, allowing automatic
-generation of build scripts even in the MS-DOS and MS Windows environments
-where the shell requires the CALL command for sub-scripts. (*.mak,
-genconf.c)
-
-Adds the PDF writer to the default Unix configurations. (ansihead.mak,
-cc-head.mak, gcc-head.mak)
-
-Adds TrueType support to all Level 2 configurations. (int.mak)
-
-Removes fonts.mak, which is no longer relevant. (fonts.mak)
-
-Brings the font compilation procedures up to date. (cfonts.mak, int.mak)
-
-</pre><h3><a name="V3.68_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - There was an extra 'show' in one file. (align.ps)
-
-</pre><h3><a name="V3.68_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The bit devices were missing the map_color_rgb procedure.
-(gdevbit.c)
- - The MS Windows driver sent a redundant message. (gdevmswn.c)
-
-Adds a device that keeps track of the page bounding box. This device is not
-included in any standard configuration. (drivers.doc, gdevbbox.h,
-gsmatrix.h, gsstruct.h, gxdevice.h, gdevbbox.c, gdevnfwd.c, gsmatrix.c)
-
-Updates the PDF writer to track the changes in the high-level driver API,
-and to write out images in a reasonable way. NOTE: the current
-implementation doesn't write out CIE color space parameters, so CIE-color
-images won't be colored accurately. (gdevpdf.c, gdevpdfi.c)
-
-Adds a forwarding procedure for tile_rectangle. (gxdevice.h, gdevnfwd.c)
-
-Changes the copyright notices on the PDF writer to be the same as on the
-rest of Ghostscript. (gdevpdf*.[ch])
-
-Updates Gunther Hess's Epson Stylus Color driver from 1.21 to 1.90. (Aladdin
-Enterprises takes no responsibility for this driver: if you have questions,
-contact the author.) (devices.doc, devs.mak, gdevstc*.c, gdevstc.h)
-
-</pre><h3><a name="V3.68_Platforms"></a>Platforms</h3><pre>
-
-Removes some obsolete MS Windows files and #defines. (gp_mswtx.h,
-gp_mswtx.c, gp_mswin.h)
-
-Works around a memory limitation in the Watcom make utility. (wmakebat.bat)
-
-</pre><h3><a name="V3.68_Fonts"></a>Fonts</h3><pre>
-
-Changes the standard Fontmap from using the low-quality fonts converted from
-bitmaps to using high-quality fonts recently contributed by URW++.
-(Fontmap, Fontmap.GS)
-
-</pre><h3><a name="V3.68_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A macro containing an if-else, and a macro generating a compound
-statement, could cause incorrect grouping of 'if' statements. (files.h,
-ostack.h)
- - .setrasterop didn't pop its operand. (zrop.c)
- - A rounding inaccuracy could cause bounding box rangecheck errors.
-(gsdps1.c)
- - CIE-based images in PDF files didn't work. (gs_pdf.ps)
- - The page parameter .MediaSize didn't get updated when PageSize was
-set. (This is just the most recent manifestation of the setpagedevice
-morass.) (gs_setpd.ps)
- - %lineedit and %statementedit were limited to 160 characters.
-(zfileio.c, ziodev.c)
- - Compiled initialization files didn't work properly. (geninit.c,
-gs_l2img.ps)
- - Attempting to parse a command line with argc = 0 caused a crash.
-(imainarg.c)
-
-Renames some files to allow separating the non-DLL 'main' procedure into a
-separate file, and to make the file naming more consistent:
- gs.c (except for 'main') =&gt; imainarg.c
- gsmain.c =&gt; imain.c
-gs.c now consists only of 'main'. The name gs.c is still inconsistent (it
-should be i- something), but at least it's consistent with the name of the
-executable. (*.mak, imain.h, iminst.h, imainarg.h, gs.c, gsmain.c, imain.c,
-imainarg.c)
-
-Adds PNGPredictorEncode/Decode filters, and increases the size of filterdict
-slightly to make room for them. (iinit.c, zfpngp.c)
-
-Makes zwrite external, per a customer request. (opextern.h, zfileio.c)
-
-Updates clients to work with the new API-based bitmap imaging calls.
-(iimage.h, zcolor1.c, zimage2.c, zpaint.c)
-
-Updates clients for the split in gscspace.h. (zcie.c, zcolor1.c, zcolor2.c,
-zcsindex.c, zcssepr.c, zimage2.c, zpaint.c, zpcolor.c)
-
-Updates clients for strip-based halftones. (zpcolor.c)
-
-Updates the initialization code to pass the correct (system) allocator to
-the library initialization. (imain.c)
-
-</pre><h3><a name="V3.68_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - If a filter reached EOD exactly at the end of reading data for
-certain operations, it didn't get closed automatically. (stream.c)
- - The LZW-compatible encoding filter reset procedure had an
-incorrect return type. (slzwce.c)
-
-Changes the ASCIIHexEncode filter to insert \ns in fewer places, to be
-somewhat more compatible with the Adobe implementation. (sstring.c)
-
-Adds PNGPredictorEncode/Decode filters that implement the pixel prediction
-algorithms in the PNG specification. (We'd like to use the code in the PNG
-library, but it's too deeply embedded in the rest of the PNG machinery, and
-it also doesn't provide for suspendable I/O.) (spngpx.h, spngp.c)
-
-</pre><h3><a name="V3.68_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A test for pure color was backwards, causing garbage output or
-possible address or floating point exceptions. (gxclpath.c)
- - A macro containing an if-else could cause incorrect grouping of
-'if' statements. (gsrefct.h)
- - The default implementation of RasterOp didn't handle the device
-depth correctly. (gdevmrop.c)
- - The memory device implementation of RasterOp truncated 24-bit
-constant source or texture values to 8 bits. (gdevmrop.c)
- - A typo caused the garbage collector to miss an internal buffer
-used when rendering images. (gximage.h)
- - gs_debug_out was only defined if DEBUG was set. (gdebug.h)
- - The raster of horizontally replicated tiles was incorrect.
-(gxht.c)
- - A data type might not be declared, causing a compilation error.
-(gscoord.h)
- - Empty TrueType glyphs weren't handled properly. (gstype42.c)
- - Fonts with a build procedure written in C could cause an invalid
-memory access. (gschar.c)
- - The initial point of a band list path sometimes didn't get
-written, causing excess or missing filled regions. (gxclpath.c)
- - Characters between 49 and 56 bits wide were rendered incorrectly
-when banding. (gxclbits.c)
-
-Renames gsimage*.c as gximage*.c, to reflect more accurately the position of
-these files in the architecture. (gsimage*.c, gximage*.c)
-
-Fully implements the high-level bitmap image calls in the driver API. This
-includes some driver API changes; however, this part of the API was clearly
-documented as not stable enough to rely on. (gxdevice.h, gximage.h,
-gdevbbox.c, gdevddrw.c, gdevnfwd.c, gsimage.c, gximage*.c)
-
-Splits the color space header into client and implementation, as with many
-others. (gscspace.h, gxcspace.h, gximage.h, gscie.c, gscolor.c, gscolor1.c,
-gscolor2.c, gscsepr.c, gsimage.c, gspcolor.c, gsstate.c, gxcmap.c,
-gxpcmap.c)
-
-Extends band lists to handle high-level images. NOTE: This facility is
-patched out because there is not yet a way to pass the necessary color
-rendering information through the band list. (gxcldev.h, gxclist.h,
-gxclpath.h, gxclimag.c, gxclist.c, gxclpath.c, gxclread.c)
-
-Implements fixed2float and float2fixed more efficiently on machines with
-slow floating point. (gxfixed.h, gscoord.c, gsmisc.c)
-
-Makes one further NON-BACKWARD-COMPATIBLE change in the existing
-higher-level driver procedures (fill_path, stroke_path, fill_mask): we make
-the imager state pointer an explicit argument, rather than a member of the
-gx_fill/stroke_params structure. We now consider the specification of these
-procedures stable, and have removed the "subject to change" notice from the
-documentation. (gxdevice.h, gxpaint.h, gdevbbox.c, gdevnfwd.c, gxacpath.c,
-gxclpath.c, gxclread.c, gxfill.c, gxpaint.c, gxstroke.c)
-
-Extends halftone bitmaps to include "strip" and "shift" information,
-allowing halftone cells with arbitrary angles to be stored in space
-proportional to the number of bits in the cell rather than the square of the
-number of bits. This requires adding new (optional) strip_tile_rectangle
-and strip_copy_rop driver procedures that are like tile_rectangle and
-copy_rop respectively but accept a strip bitmap rather than an ordinary
-tile; these procedures supersede tile_rectangle and copy_rop (although these
-also remain, defined in terms of the new ones). This also requires making
-small but NON-BACKWARD-COMPATIBLE changes in several internal interfaces.
-(gdevmem.h, gdevprn.h, gsdcolor.h, gxbcache.h, gxbitmap.h, gxcldev.h,
-gxclip2.h, gxclist.h, gxdevice.h, gxdevrop.h, gxdht.h, gxfcache.h,
-gxhttile.h, gxpcolor.h, gzht.h; gdevabuf.c, gdevbbox.c, gdevdflt.c,
-gdevm*.c, gdevmpla.c, gdevmrop.c, gdevnfwd.c, gsht.c, gsht1.c, gshtscr.c,
-gspcolor.c, gsstate.c, gxcht.c, gxclbits.c, gxclip2.c, gxclist.c,
-gxclpath.c, gxclread.c, gxcpath.c, gxdcolor.c, gxdither.c, gxht.c,
-gximage2.c, gxpcmap.c, ...)
-
-Adds "no join" as a line join type. NOTE: this is not actually implemented
-yet. (gslparam.h)
-
-Changes the initialization code so that it passes the system allocator as an
-argument to module initialization procedures. While this is theoretically a
-NON-BACKWARD-COMPATIBLE change, module initialization procedures are not
-documented and presumably are not used by any code outside the
-implementation. (gscdefs.h, gconf.c, gdevmrop.c, gsinit.c, gxclimag.c,
-gxclpath.c)
-
-Splits up gs_lib_init into two procedures, allowing specification of a
-different default allocator for the library. (gslib.h, gsinit.c)
-
-Adds a resize_object operation to the allocator API. (gsmemory.h,
-gsalloc.c, gsmemory.c)
-
-</pre>
-
-<h2><a name="Version3.67"></a>Version 3.67 (limited) (4/12/96)</h2>
-
-<p>
-This release restructures the MS Windows and OS/2 code to be primarily DLL-
-rather than EXE-based. See under Platforms below for more news. This
-release was put out in a hurry in order to get the new DLL code into
-testers' hands; it has more rough edges than usual.
-
-<h3><a name="V3.67_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - A definition &amp; use comment was incorrect. (scanchar.h)
- - William Bader's e-mail address was wrong. (README)
-
-Adds documentation for the new begin_image, image_data, and end_image
-procedures. THIS INTERFACE IS STILL SUBJECT TO CHANGE. (drivers.doc)
-
-</pre><h3><a name="V3.67_Procedures"></a>Procedures</h3><pre>
-
-Renames all the *core.dev modules as *lib.dev. (int.mak, *lib.mak, vms.mak,
-gdevmrop.c)
-
-Updates all the remaining makefiles to IJG JPEG version 6a. (*.mak)
-
-Moves the configuration parameter definitions from gconf.c to a new file
-gscdefs.c. (bcwin*.mak, *lib.mak, gs.mak, int.mak, lib.mak, unixtail.mak,
-vms.mak, gconf.c, gscdefs.c)
-
-</pre><h3><a name="V3.67_Platforms"></a>Platforms</h3><pre>
-
-Restructures the MS Windows and OS/2 code to be primarily DLL- rather than
-EXE-based. This involves two minor NON-BACKWARD-COMPATIBLE changes to the DLL
-interface, documented near the end of dll.doc:
-
- - Adding argv and argc as arguments to gsdll_init.
-
- - Adding a new message type, GSDLL_POLL, to the callback procedure.
-
-(bcwin*.mak, devs.mak, os2.mak, dll.doc, install.doc, dw*.*, gsdll*.*,
-gdevms*.*, gdevpm.c, gdevw*.c, gp_mswin.c, gp_os2.c, gsos2.def, gswin.rc)
-
-Adds the BMP drivers to the Watcom platform. (watc.mak)
-
-</pre><h3><a name="V3.67_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - gs.c assumed the presence of stdio. (gs.c)
-
-Defines a new API entry point that is the equivalent of command line
-invocation. (imain.h, imainarg.h, gs.c)
-
-Changes clients to conform to the changes in gsimage.h. (zimage2.c,
-zpaint.c)
-
-Speeds up the search operator slightly. (zstring.c)
-
-</pre><h3><a name="V3.67_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - If the PDF interpreter was present, running a PostScript file
-didn't close the file properly if it caused an error. (pdf_main.ps)
-
-Speeds up embedded font loading by making an internal buffer bigger.
-(pdf_font.ps)
-
-</pre><h3><a name="V3.67_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There could be some non-zero garbage between the width and the
-next multiple of bitmap_align_mod for copy_alpha. (The driver API
-specification explicitly allows this, but it upset one customer.)
-(gxccman.c)
- - Nibble-swapped alpha values could be displaced in memory by one
-pixel, damaging the output. (gdevabuf.c)
-
-Makes further changes towards adding high-level bitmap image calls to the
-driver API. This includes the following minor NON-BACKWARD-COMPATIBLE
-changes to the interface defined in gsimage.h:
-
- - changing MultipleDataSources from a member of the gs_image_t
- structure to an argument of gs_image_init;
-
- - changing the default image parameter values from constant
- structures to procedures that initialize the structure.
-
-As far as we know, this doesn't affect any existing client code.
-(gsimage.h, gsiparam.h, gxdevice.h, gdevddrw.c, gdevnfwd.c, gsimage.c,
-gspcolor.c, gxccache.c)
-
-Removes an unnecessary level of call for path filling. (gxpaint.h,
-gxfill.c, gxpaint.c)
-
-</pre>
-
-<h2><a name="Version3.66"></a>Version 3.66 (limited) (4/8/96)</h2>
-
-<p>
-This release adds support for TrueType fonts and Type 42 (encapsulated
-TrueType) PostScript fonts. The MS Windows driver now interacts properly
-with the garbage collector. This release also includes a new, high-quality
-set of free fonts.
-
-<h3><a name="V3.66_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The list of generic makefiles had gotten out of date. (make.doc)
-
-Adds a mention of the bmv program, created by a user and available under the
-GPL. (README)
-
-Notes that a bug in gcc 2.7.x prevents these versions from compiling
-Ghostscript. (make.doc)
-
-Clarifies the meaning of "inverted" masks. (gsimage.h)
-
-Improves the documentation of the stack sizing parameters. (interp.c)
-
-Improves the documentation of the copy_rop driver procedure.
-(drivers.doc)
-
-Notes that all subclasses of gx_device must explicitly include the
-device_finalize finalization procedure. (gxdevice.h)
-
-Updates the documentation of the high-level driver API to reflect the change
-in gx_drawing_color, and the addition of the new polygon and image drawing
-procedures. (drivers.doc)
-
-Updates the documentation for building zlib and libpng. (make.doc)
-
-</pre><h3><a name="V3.66_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The environment space overflowed on some inferior Unix systems.
-(unixtail.mak)
-
-Adds a ttfont.dev "feature" for including the TrueType interpreter and the
-ability to handle Type 42 fonts. A new procedure, .loadttfont, allows
-loading a TrueType font directly (by converting it to a Type 42 on the fly).
-(gs.mak, int.mak, lib.mak)
-
-Updates the makefiles and procedures to libpng 0.88 and zlib 1.0.
-(libpng.mak, zlib.mak)
-
-</pre><h3><a name="V3.66_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - pdf2ps could produce lines longer than 255 characters.
-(pdf_2ps.ps)
-
-Removes some unnecessary and error-inviting code from pdf2dsc. (pdf2dsc.ps)
-
-Updates lines.ps to test the new stroke code more fully. (lines.ps)
-
-Allows omitting the second argument of ps2pdf, as for ps2epsi. (ps2pdf)
-
-</pre><h3><a name="V3.66_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A routine was incorrectly declared "private". (I wish gcc caught
-this!) (gdevpdf.c)
- - A 'const' was omitted in a parameter list. (gdevpdfp.c)
- - Some imported procedures didn't have prototypes declared.
-(gdevpdft.c)
- - The ProcSet list for PDF files didn't include Text when it was
-needed. (gdevpdfx.h, gdevpdf.c, gdevpdft.c)
- - Text in PDF output ignored the color setting. (gs_pdfwr.ps,
-gdevpdft.c)
- - Text in PDF output could be positioned incorrectly. (gdevpdft.c)
- - pdfmarks could produce an error when producing PDF output.
-(gs_pdfwr.ps)
-
-Slightly improves the text output of the PDF writer. (gs_pdfwr.ps,
-gdevpdft.c)
-
-Defines driver procedures for filling trapezoids (with the parallel edges
-parallel to a coordinate axis), parallelograms (with arbitrary orientation),
-triangles (ditto), and minimum-width lines (ditto). (Note that the last of
-these obsoletes the former draw_line procedure.) (gdevmem.h, gdevprn.h,
-gxdevice.h, gxdraw.h (deleted), gdevddrw.c, gdevdflt.c, gdevht.c,
-gdevnfwd.c, gsimage[12345].c, gxacpath.c, gxclist.c, gxclip2.c, gxcpath.c,
-gxdraw.c (deleted), gxfill.c, gxpcmap.c, gxstroke.c)
-
-Adds "sketched" driver procedures for high-level bitmap / pixmap image
-drawing. In this release, the argument lists are incomplete, and the
-procedures are stubs: don't try to use them! [see previous entry]
-
-Changes the screen update strategy for the X Windows driver from a
-compile-time option to a settable run-time variable. (gdevx.c)
-
-Patches around a problem with libpng 0.88 that can't be fixed without
-editing a configuration file. (gdevpng.c)
-
-</pre><h3><a name="V3.66_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - %g formats with sscanf don't work on NeXT systems. (gdevpdft.c,
-iutil.c, zdouble.c)
- - getenv could be declared inconsistently. (gp_unix.c)
-
-</pre><h3><a name="V3.66_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The Type 1 font interpreter sometimes set the flatness too large.
-(gstype1.c)
- - Fonts defined by definefont could never be garbage collected.
-(gsstruct.h, gxfcache.h, gxfont.h, gxfont0.h, gxfont1.h, gsfont.c,
-gsfont0.c)
- - Type 0 fonts weren't garbage collected properly. (gsfont0.c)
- - Compiled fonts caused a compilation error (bug introduced in
-3.65). (ifont.h)
- - If a Type 1 font used hint replacement, hints could be applied
-more than once, distorting the character shape. (gxtype1.h, gxhint3.c)
- - Oversampling wasn't applied to large enough characters.
-(gschar.c)
-
-</pre><h3><a name="V3.66_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The scanner accepted /[, /], /&lt;&lt;, and /&gt;&gt; as literal names (and
-similarly for //). It isn't obvious from the Red Book, but the Adobe
-implementations don't accept these. What a nuisance! (gs_btokn.ps,
-gs_init.ps, pdf_2ps.ps, pdf_base.ps, pdf_main.ps, iscan.c)
- - A spurious stackoverflow could occur under unusual conditions.
-(istack.c)
- - The values of OrigFont and ScaleMatrix in scaled fonts reflected
-only the most recent scaling operation, not the original font and the
-combined scaling operation. (zfont.c)
- - The default size of systemdict had become slightly too small.
-(iinit.c)
- - Type 1 characters defined by PostScript procedures were called
-incorrectly. (zcharout.c)
-
-Removes the papersize operator from statusdict, since it is not documented
-anywhere in the Adobe literature and didn't interact properly with the
-various ways of setting the page size. (gs_statd.ps)
-
-Changes the one client of sskip to match the changed API. (zpaint.c)
-
-Changes clients to reflect the creation of sstring.h. (iscan.h, zfilter.c)
-
-Adds PSStringEncode as an accessible filter. (zfilter.c)
-
-Adds support for TrueType and Type 42 fonts. (gs_fonts.ps, gs_ttf.ps,
-gs_typ42.ps, bfont.h, icharout.h, ifont.h, zchar1.c, zchar42.c, zcharout.c,
-zfont1.c, zfont2.c, zfont42.c)
-
-Adds a few ANSI sheet sizes (commented out, for documentation only).
-(gs_statd.ps)
-
-</pre><h3><a name="V3.66_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Clients who called pdfopen/close rather than runpdf could get an
-error (PSLevel1 undefined). (pdf_main.ps)
- - Some masked images were displayed with black and white inverted.
-(gs_pdf.ps)
- - In Level 1 output produced by pdf2ps, images caused a syntaxerror.
-(gs_pdf.ps)
- - If a PDF file had multiple xref sections and later sections added
-new objects, an error occurred. (pdf_main.ps)
- - Some very old Level 1 interpreters couldn't deal with a file
-object embedded in a procedure. (gs_pdf.ps)
-
-</pre><h3><a name="V3.66_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The PSStringEncode filter didn't always produce printable 7-bit
-output. (sstring.c)
- - The CCITTFaxDecode filter didn't implement DamagedRowsBeforeError.
-(scfx.h, scfd.c)
- - Interpolated images displayed nothing if the data stream ended
-before the image height was reached. (siscale.h, gsimage5.c, siscale.c)
-
-Changes the sskip stream procedure so that it takes an additional argument
-where it returns the actual number of bytes skipped. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE in the API. However, as far as we know,
-there are no external clients of this procedure. (stream.h, stream.c)
-
-Splits up sfilter.h so that the headers correspond more directly with the
-implementations. (sfilter.h, sstring.h, sstring.c)
-
-</pre><h3><a name="V3.66_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The default device in the library configuration was device 1, not
-device 0. (bclib.mak, ugcclib.mak, watclib.mak, gslib.c)
- - Patterns could be rendered with small gaps between them.
-(gspcolor.c)
- - Large characters could render inaccurately because of a numerical
-boundary condition. (gxpcopy.c)
- - The show_gstate pointer in the graphics state was not managed
-properly, possibly leading to dangling pointers or GC errors. (gsstate.c)
- - Bitmaps could get shifted to the left if ALPHA_LSB_FIRST was
-selected (bug introduced in 3.53). (gsbitops.c)
- - The garbage collector could move devices in memory, causing
-problems with command list devices. (gxdevice.h, gsdevice.c)
-
-Continues restructuring the image handling code in preparation for adding a
-high-level driver operation. (gsimage[12345].c)
-
-Starts to implement passing color mapping information (transfer function,
-black generation, undercolor removal, CRD, halftoning) in the band list.
-(gxfmap.h, gscolor.c, gscolor1.c, gsht1.c, gsstate.c)
-
-Speeds up the path filling code a little more. (gxdraw.c)
-
-Removes the workaround for the gcc 2.7.0/1/2 optimizer bug, since this
-turned out to cause more trouble than it was worth. (stdpre.h)
-
-Speeds up stroking dramatically for the case of butt or square caps, bevel
-or beveled miter joins, and no fill adjustment, by filling parallelograms
-and triangles directly rather than constructing and filling paths. This is
-an important common case for CAD drawings. (gxdraw.h, gxdraw.c, gxstroke.c)
-
-Adds support for TrueType and Type 42 fonts. (gxfont.h, gxfont42.h,
-gstype42.c)
-
-Extends the memory manager to allow allocating objects that the garbage
-collector won't move. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE for
-implementors of memory managers, but clients aren't supposed to have any of
-these. (gsmemory.h, gsmemory.c, gsalloc.c)
-
-Makes dynamically created instances of registered devices immovable.
-(gsdevice.c)
-
-Unifies gx_drawing_color with (makes it equivalent to) gx_device_color.
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE for implementors of the
-higher-level driver procedures (fill_path, stroke_path, fill_mask). We
-regret that this was necessary, but the documentation in drivers.doc does
-warn the reader: "DO NOT ASSUME THESE OPERATIONS WILL REMAIN UNCHANGED IN
-FUTURE RELEASES." These three procedures, at least, should now be stable.
-(gsdcolor.h, gxcindex.h, gxdcolor.h, gxdevice.h, gximage.h, gxpaint.h,
-gxpcolor.h, gdevdflt.c, gdevpdf.c, gdevpdfi.c, gdevxalt.c, gsimage.c,
-gsimage2.c, gspcolor.c, gxacpath.c, gxccache.c, gxcht.c, gxclpath.c,
-gxclread.c, gxdcconv.c, gxdither.c, gxfill.c, gxdraw.c, gxht.c, gxpaint.c,
-gxpcmap.c, gxstroke.c)
-
-</pre>
-
-<h2><a name="Version3.65"></a>Version 3.65 (limited) (3/9/96)</h2>
-
-<p>
-This release adds garbage collection for device instances. ****** NOTE:
-Because of changes in memory management, if you are using the MS Windows
-driver (mswin), you must run with -dNOGC. This is a temporary problem which
-will be fixed before the next beta release.
-
-<h3><a name="V3.65_Documentation"></a>Documentation</h3><pre>
-Documents the C API equivalent of a -d switch for setting a flag like
-NOPAUSE. (imain.h)
-
-Splits off the NEWS entries for versions 3.0 through 3.33 into a new
-file. (history3.doc)
-
-Adds a man page for ps2pdf. (ps2pdf.1)
-
-Documents the new memory management aspects of device drivers, and corrects
-many other aspects of driver documentation that had become inaccurate.
-(drivers.doc)
-
-Updates the documentation for the gs_*.ps files. (psfiles.doc)
-
-Replaces .type1addpath with .type1execchar. (language.doc)
-
-Adds some more documentation on how band lists do read/write switching.
-(gxclist.h)
-
-Adds a reference to the new Genscript program, a free Ghostscript-based
-replacement for enscript. (README)
-
-Notes that no further changes will be accepted for the gdevcdj.c file, which
-has gotten completely out of hand. (gdevcdj.c).
-
-Documents the TextAlphaBits and GraphicsAlphaBits device parameters.
-(language.doc)
-
-</pre><h3><a name="V3.65_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - gs_pdfwr.ps and pdf2ps.1 weren't installed on Unix systems.
-(unix-end.mak)
- - The pdf2ps shell script didn't accept any options. (pdf2ps)
- - The rule for srle.$(OBJ) incorrectly specified a dependency on
-srld.c. (lib.mak)
- - The rule for command lists didn't include stream.$(OBJ).
-(lib.mak)
- - The stack size for one configuration was set too small.
-(watclib.mak)
-
-Speeds up genconf by eliminating redundant file reading and processing.
-(genconf.c)
-
-Moves the pixel-difference filters from int.mak to lib.mak. (int.mak,
-lib.mak)
-
-Moves the library parts of the HSB color and Level 1 path (arcs, pathbbox,
-path enumeration) options from int.mak to lib.mak, and adds them to the
-library makefiles. (int.mak, lib.mak; bclib.mak. ugcclib.mak, watclib.mak)
-
-</pre><h3><a name="V3.65_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - pdf2ps would fail if it encountered a font with a standard
-encoding. (pdf_2ps.ps)
-
-Adds new switches to pdf2ps:
- -dPSBinaryOK allows writing binary image data in the output.
-(pdf_2ps.ps)
- -dPSLevel1 forces Level 1 compatible output. (int.mak,
-unix-end.mak, gs_l2img.ps, gs_pdf.ps, pdf_2ps.ps, pdf_main.ps)
- -dPSNoProcSet causes the ProcSet to be loaded at run time, not at
-conversion time -- primarily useful for debugging. (pdf_2ps.ps)
-
-Adds a utility for viewing PCX files, so we can preview high-resolution
-output in a reasonable compressed format. (unix-end.mak, viewpcx.ps)
-
-</pre><h3><a name="V3.65_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Some compilers require an extra #include to define structures even
-if they are only referenced by pointers. (int.mak, gdevpdf.c, gdevpdfp.c)
- - A procedure name was duplicated. (gdevpdfi.c)
- - A pdfmark between a gsave and a grestore could cause a
-rangecheck error. (gdevpdfp.c)
- - A pdfmark between a gsave and a grestore could cause the
-grestore to do an inappropriate initgraphics. (gs_pdfwr.ps)
- - The pdfwrite driver could reinitialize the output file
-unpredictably. (gdevpdfp.c)
- - The PCX drivers didn't clear padding bytes at the ends of scan
-lines. (gdevpcx.c)
- - The PCX drivers didn't set the "version" field correctly (this was
-OK in 2.6.1, bug introduced sometime since then). (gdevpcx.c)
- - Whoever last touched the color inkjet drivers completely broke the
-handling of the BitsPerPixel parameter, again. We were able to half-fix it,
-but the code is impossible to understand, let alone modify safely.
-(gdevcdj.c)
- - Anti-aliased characters didn't work with banding. (gxclpath.c)
- - The PGM/PPM drivers didn't recognize black-and-white pages for
-optimization to PBM, only gray or colored. (gdevpbm.c)
- - The color inkjet drivers initialized the params_size field of the
-static instance incorrectly, resulting in garbage in the last few structure
-members when instances were copied. (gdevcdj.c)
- - The 24-bit PCX driver didn't pad each scan line to an even number
-of bytes. (gdevpcx.c)
- - The svga16 driver initialized its procedures incorrectly.
-(gdevpcfb.c)
-
-Adds text writing capability to the PDF writer. In its present form, this
-is a very bad hack: it only works for the 14 built-in fonts with their
-standard encodings. (gdevpdfx.h, gdevpdf.c, gdevpdfp.c, gdevpdft.c)
-
-Adds garbage collection and finalization for device instances (gscdefs.h,
-gsdevice.h, gxdevice.h, gconf.c, gdevmrop.c, gsdevice.c, gslib.c, gsmain.c).
-(See the "Driver instance allocation" section of drivers.doc for more
-details about what is required to make this work.)
-
- - When an open device is freed (explicitly, by garbage collection,
-or by 'restore'), if the device was allocated dynamically by Ghostscript's
-standard allocator, the device's close procedure will be called. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE for dynamically created devices, which
-formerly were not closed automatically, even when Ghostscript exited.
-
- - Device instances allocated in GC-able space will be traced
-like other objects, assuming they have proper structure descriptors.
-
-Provides a (very slow but correct) default implementation of copy_alpha.
-(gxcindex.h, gdevdflt.c, gsimage4.c)
-
-Removes the implementation of copy_alpha in gdevpbm.c, since this is now
-implemented (more efficiently) in gdevm24.c. (gdevpbm.c)
-
-Adds TextAlphaBits and GraphicsAlphaBits as readable parameters for all
-devices. (gsdparam.c, gdevpbm.c, gdevsvga.c)
-
-</pre><h3><a name="V3.65_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - There were some attempts to coerce long to short pointers
-on segmented platforms. (gsdparam.c, gstype1.c)
- - The stack could overflow on the 16-bit MS Windows platform.
-(gxfill.c, gxclread.c)
- - The DLL callback parameter for window resize events was computed
-incorrectly on 16-bit systems. (gdevwdib.c)
- - A file included gxdevice.h unnecessarily. (bcwin.mak,
-bcwin32.mak, msvcwint.mak, gp_mswin.c)
-
-</pre><h3><a name="V3.65_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Storing into a read-only dictionary with def or store was
-allowed. (dstack.h)
- - If the interpreter allocated extra space for a dictionary
-to round its storage size up to a power of 2, it was possible for
-length to exceed maxlength. (idict.c, iinit.c)
- - The if and ifelse operators didn't check that their
-'procedure' arguments were actually procedures. (interp.c, zcontrol.c)
- - The undef operator was defined even in Level 1
-configurations. (We need this capability for all configurations, so
-we always define .undef.) (zdict.c, gs_*.ps, pdf_*.ps)
- - In Level 1 configurations, copying a dictionary should copy the
-access attributes, but it didn't. We have to work around this
-compatibility quirk in a lot of places. (gs_cidfn.ps, gs_cmap.ps,
-gs_dps1.ps, gs_fonts.ps, gs_init.ps, gs_l2img.ps, gs_lev2.ps, gs_pdf.ps,
-gs_pfile.ps, gs_res.ps, gs_setpd.ps, gs_type1.ps, zdict.c)
- - DSC comments that crossed a buffer boundary didn't call the
-scan_dsc_proc. (iscan.c)
- - "statusdict /setpage get exec" caused an error. (gs_statd.ps)
- - The default size of systemdict had become slightly too small.
-(iinit.c)
- - Doing a showpage or copypage would cause the equivalent of a
-setpagedevice at the next restore or grestore. We aren't entirely sure that
-the fix we made doesn't have bad side-effects. (gs_setpd.ps)
- - Not all filters accepted (and ignored) an optional dictionary
-parameter on the stack. (ifilter.h, zfbcp.c, zfdecode.c, zfilter.c,
-zfilterx.c, zfzlib.c, zmisc1.c)
- - The PixelDifference filters required a Columns parameter, rather
-than defaulting it to 1. (spdiffx.h, zfdecode.c)
- - Contrary to the NEWS entry for release 3.60, the LZW filters did
-not implement pixel differencing. (zfdecode.c, zfilter2.c)
- - readstring with a 0-length string didn't signal a rangecheck.
-This doesn't make a lot of sense to me, but it's what the Adobe
-documentation specifies. Unfortunately, we have to work around this in a
-number of places that assumed the sensible definition (return () true
-without reading anything). (gs_l2img.ps, pdf_font.ps, zfileio.c)
- - Encoded number strings didn't work (bug introduced in 3.64).
-(ibnum.c)
- - The allocator could produce spurious "free large 0x...... chunk
-not found" messages. (These didn't cause any harm, but they were
-disturbing.) (gsalloc.c)
-
-Changes the default transfer function for high-resolution devices so
-that it is the identity function if the device is continuous-tone.
-(gs_init.ps)
-
-Undoes the "subversion" of zgetdevice noted in release 3.61, since it
-is now possible to copy devices safely. (zdevice.c)
-
-Changes the implementation of the garbage collector and restore so that
-object finalization code may safely free objects. (igc.c, isave.c)
-
-Reimplements essentially all of Type 1 BuildChar in C. (gs_init.ps,
-gs_type0.ps (deleted), gs_type1.ps, ifont.h, zchar.c, zchar1.c, zfont.c)
-
-Reimplements DISKFONTS as a separate feature (diskfont.dev), and changes it
-to use Type 4 fonts rather than special machinery. Currently this feature
-is included only in the makefiles for 16-bit architectures. (bc.mak,
-bcwin.mak, int.mak, tc.mak, gs_diskf.ps, gs_fonts.ps, gs_type1.ps)
-
-Converts the library search path from a list of strings to a (PostScript)
-array of strings, one string per directory. (iminst.h, main.h, gs.c,
-gsmain.c, zfile.c)
-
-Adds a hook procedure scan_comment_proc for processing all comments,
-similar to scan_dsc_proc. If both are set, scan_comment_proc is used only
-for non-DSC comments. (iscan.h, iscan.c)
-
-</pre><h3><a name="V3.65_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Encrypted PDF files produced a random error (usually ioerror in
---token--) rather than a meaningful message. (pdf_main.ps)
- - Color space setting didn't work. (gs_pdf.ps)
- - The algorithm for skipping a possible blank line following the
-'stream' keyword wasn't robust enough. (We aren't sure the new algorithm is
-exactly right, either.) (pdf_base.ps)
-
-Gets rid of the special handling of the LZW decoding filter, since the
-filter itself now handles the Predictor facility. (pdf_base.ps)
-
-</pre><h3><a name="V3.65_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Configurations with LZW encoding but not decoding had an
-undefined reference. (lib.mak, slzwc.c, slzwd.c)
- - The LZW-compatible encoder didn't provide a 'reset' procedure.
-(slzwce.c)
- - The PixelDifference filters didn't work for most parameter
-combinations in which each pixel took up more than 1 byte. (spdiff.c)
- - Temporary write streams could cause an infinite loop. (We only
-need such streams for the Predictor = 2 case of LZWEncode: this is why the
-bug never showed up before.) (stream.c)
-
-Adds an optional reinitialization procedure to the stream template. Note
-that this is not the same as the PostScript 'reset' operation or the stream
-resetting operation invoked by sreset: the reinit procedure in the template
-reinitializes any internal state of the encoder or decoder without affecting
-buffered data. (scommon.h, strimpl.h, sbcp.c, sbhc.c, slzwce.c, slzwd.c,
-slzwe.c, smtf.c, spdiff.c, srle.c) ****** NOT DONE YET: sbwbs.c, szlibd.c,
-szlibe.c
-
-Adds a decoding stream for the run-length compression used in PCX.
-(spcxx.h, spcxd.c)
-
-</pre><h3><a name="V3.65_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A recent edit introduced an extraneous right parenthesis.
-(gpcheck.h)
- - A minor nit in a macro could cause incorrect grouping of 'if'
-statements under implausible conditions. (gsmdebug.h)
- - The first data plane buffer of an image enumerator didn't get
-marked during garbage collection. (gsimage.c)
- - The Watcom C compiler required splitting up a declaration.
-(gxcmap.h)
- - The extern declarations for the tables in gconf.c weren't gathered
-together in one place. (gscdefs.h, gxiodev.h, gconf.c, gsdevice.c, gslib.c,
-gsinit.c, gsiodev.c)
- - charpath and show produced different output. We fixed this by
-undoing a "bug fix", introduced in version 2.9, which suppressed hinting and
-coordinate rounding for charpath; we aren't sure this won't cause some
-obscure problems to reappear. (gstype1.c)
- - Clipping with a rectangle usually created a 3-rectangle clipping
-list, slowing down all drawing operations (performance bug only).
-(gxacpath.c)
- - stroking in a rotated coordinate system sometimes thought lines
-were always thin when they actually weren't. (gxstroke.c)
- - An unsigned quantity wasn't properly converted to signed, possibly
-causing band path coordinates to get mangled. (gxclread.c)
- - A bug in the Borland compiler caused an unsigned quantity to be
-interpreted as signed, causing band path coordinates to get mangled.
-(gxclread.c)
-
-Changes structure type pointers on 16-bit segmented systems to full
-32-bit pointers. This will increase time and space requirements very
-slightly on these systems. (gsmemory.h, gxobj.h)
-
-Changes the memory manager so that object finalization code may safely free
-objects. (gsmemory.h, gsstruct.h, gsalloc.c, gsmemory.c)
-
-Refactors the Type 1 CharString interpreter so it can be included in
-the imager library. (gstype1.h, gxtype1.h, gstype1.c)
-
-Starts to refactor the implementation of band lists in memory so that it can
-use any encoding/decoding filter. Currently this choice is made at compile
-time, but it could easily be made dynamic. (gxclmem.h, gxclmem.c)
-
-Starts to refactor image rendering so that, like path filling and stroking,
-it only uses imager state and can be done after banding. (gxcmap.h,
-gxdraw.h, gximage.h, gsimage*.c, gxcmap.c)
-
-Speeds up copy_mono for 2-bit-per-pixel devices a little. (gdevm2.c)
-
-Implements an optimized copy_alpha for 24-bit memory devices. (gdevmem.h,
-gdevm24.c)
-
-Speeds up filling rectangles significantly. (gsbitops.c)
-
-Changes the band list rasterizer to use the memory space of the device
-rather than the C heap: our allocator is considerably faster than malloc.
-(gxclread.c)
-
-Speeds up stroking a little, especially in 90 degree rotated coordinate
-systems. (gxstroke.c)
-
-</pre>
-
-<h2><a name="Version3.64"></a>Version 3.64 (limited, incremental) (1/27/96)</h2>
-
-<p>
-This release fixes a few more bugs, including some serious bugs in band
-lists, and adds pdfmark processing to the PDF writer. The PDF writer is
-still not fit for real use, since it converts all text characters into 720
-dpi bitmaps and turns images into zillions of tiny rectangles (!), but it
-should be producing legal output.
-
-<h3><a name="V3.64_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - Frans van Hoesel's e-mail address was incorrect. (gdevdjet.c)
- - The man page for ansi2knr was out of date. (ansi2knr.1)
- - The description of a procedure was out of date. (gxdcolor.h)
-
-Notes that several "optional" features are required in order to obtain the
-full PostScript Level 1 functionality at the library level. (lib.doc)
-
-Documents the top-level interpreter API. (imain.h)
-
-Adds details on differences between the imager API and the PostScript
-graphics operators. (lib.doc)
-
-Notes (here, in NEWS) that the change for device prototypes in 3.61 made the
-protection attributes of a device significant for the first time. Only the
-writable attribute is significant so far. (news)
-
-</pre><h3><a name="V3.64_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The .dev rules in the library makefiles didn't list echogs as a
-dependency. (jpeg.mak, libpng.mak, zlib.mak)
- - The install rule tried to install gs.1.1 etc. rather than gs.1
-etc. (unix-end.mak)
- - The install rule tried to install some nonexistent *.1 files.
-(unix-end.mak)
-
-Adds 'help' and '?' procedures to assist users who don't read the
-documentation. (gs_init.ps)
-
-Adds -A-, -E-, and -Z-... to turn off debugging flags. (gs.c)
-
-Adds a -dDELAYBIND switch to delay binding operators, to allow special
-packages like pstotext to redefine them. (gs_init.ps)
-
-</pre><h3><a name="V3.64_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - Fonts produced by rollconv.ps left a couple of items on the
-operand stack, and left array packing set to true. (rollconv.ps)
-
-Makes ansi2knr require that the first token after a function header be a
-left brace on the next line, so it can cope with some macros in IJG release
-6a. Also updates it to work better without the GNU configure machinery, and
-on some old compilers. (ansi2knr.c)
-
-Changes align.ps so it can be used directly to determine the margin
-parameters. (align.ps, psfiles.doc)
-
-</pre><h3><a name="V3.64_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The TIFF/F (G3 and G4) drivers were broken (bug introduced in
-3.60). (gdevtfax.c)
- - The PDF writer produced invalid output for 0-width, 0-height
-images. (gdevpdfi.c)
- - The PDF writer wasn't a page device. (gdevpdf.c)
- - The PDF writer assigned the Contents node rather than the Pages
-node as the Parent of each page. (gdevpdfx.h, gdevpdf.c)
-
-Corrects the margin information for the DeskJet printers to be the actual
-values observed on a printer; all of the values in the file were wrong.
-(gdevdjet.c)
-
-Adds pdfmark recognition and conversion to the PDF writer. All documented
-pdfmarks (ANN, ARTICLE, DEST, DOCINFO, DOCVIEW, LNK, OUT, PAGE, PAGES, PS)
-are recognized and converted, but some of them are not converted correctly.
-(gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c, gdevpdfm.c)
-
-Adds recognition of all Distiller parameters, except *ImageDict, to the PDF
-writer. Currently only ASCII85EncodePages actually has any effect.
-(gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c)
-
-Ensures that PDF output files include at least a default Info dictionary.
-(gdevpdf.c)
-
-Changes the handling of coordinates in PDF output files so that the scale is
-always 72 dpi, and so that each graphics operator is on a line by itself,
-for compatibility with Adobe Illustrator. (gdevpdfx.h, gdevpdf*.c)
-
-Adds a driver for ImageMagick's MIFF format. The driver currently only
-produces 24-bit, direct color, RLE compressed output. (gdevmiff.c)
-
-</pre><h3><a name="V3.64_Platforms"></a>Platforms</h3><pre>
-
-Changes the gp_check_interrupts platform procedure so that instead of just
-returning a Boolean, it can now also return a negative error code. THIS IS
-(THEORETICALLY) A NON-BACKWARD-COMPATIBLE CHANGE. However, since all
-implementations of this procedure should only have been returning 0 or 1 up
-to now, no existing code should need to be changed. (gpcheck.h, gsmisc.c)
-
-</pre><h3><a name="V3.64_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - devicenames was accidentally deleted. (gs_init.ps)
- - -dFAKEFONTS could cause the memory manager to waste a lot of time.
-(gs_dps1.ps)
- - Using -r or -dFIXEDMEDIA with a non-page device caused an error.
-(gs_init.ps)
- - A VMS compiler reserves the word "readonly", which was used as a
-parameter name. (imain.h, gsmain.c)
- - A garbage collection during the execution of x/y/xyshow with an
-array providing the values could get confused. (ibnum.h, ichar.h, stream.h,
-ibnum.c, iscanbin.c, zchar.c, zchar2.c, zdps1.c, zupath.c)
- - Errors in encoded number strings produced a typecheck rather than
-a rangecheck error. (ibnum.c, zupath.c)
-
-Updates the DCT filters for IJG release 6a. (zfdctc.c)
-
-Provides an API call for getting the real stdio files. (imain.h,
-gs.c, gsmain.c)
-
-</pre><h3><a name="V3.64_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - If the CCITTFaxEncode stream encountered an output buffer boundary
-while processing the last scan line of input, it could fail to process some
-the scan line. (scfe.c)
- - A couple of pointers weren't always initialized, possibly
-confusing the garbage collector. (stream.c)
- - The weighting coefficient structures used for image scaling
-weren't declared properly for the garbage collector. (siscale.h, siscale.c)
-
-</pre><h3><a name="V3.64_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Unrotated patterns always used the bounding box size as the step,
-rather than XStep/YStep. (gspcolor.c)
- - Alpha computations for graphics could be seriously incorrect (bug
-introduced in 3.6x). (gdevabuf.c)
- - The length of the next_data_x command for the fill_mask operation
-was incorrect, causing the band list to become confused (bug introduced in
-3.63). (gxclpath.c)
- - An extern was omitted, causing linker warnings. (gxdevice.h)
- - RasterOps could cause an invalid access because the palette
-for a memory device wasn't set. (gdevmrop.c)
- - gximage.h was included unnecessarily. (gspaint.c)
- - Color screens caused a segmentation fault (bug introduced in
-3.6x). (gxcht.c)
- - cshow returned the width in an incorrect coordinate system.
-(gscoord.h, gschar.c)
- - Filling or stroking a path that lay entirely off the page in the
-+X or +Y direction could corrupt memory (bug introduced in 3.6x).
-(gxclpath.c)
- - When banding, painting characters with halftones produced random
-results (bug introduced in 3.6x). (gxclpath.c)
- - When banding, characters could get clipped when they shouldn't be
-(bug introduced in 3.6x). (gxclpath.c)
- - The default implementation of fill_mask could discard clipped
-bitmaps (bug introduced in 3.6x). (gdevdflt.c)
- - Non-halftoned 24-bit colors could get garbled when banding (bug
-introduced in 3.6x). (gxclist.c)
- - When banding, if a stroked path had subpaths that fell entirely
-outside the current band, the rest of the path was drawn in the wrong place
-(bug introduced in 3.6x). (gxclpath.c)
-
-Speeds up image interpolation on machines with slow floating point.
-(siscale.h, siscale.c)
-
-Speeds up interpolated images when using device color spaces. (gxcvalue.h,
-gxfrac.h, gdevht.c, gxcmap.c, gsimage.c, gsimage3.c)
-
-Speeds up color mapping a little by removing tests and calls in favor of
-code copying. (gxcmap.c)
-
-Implements RasterOp for 24-bit RGB devices. (gdevm8.c, gdevm24.c,
-gdevmrop.c)
-
-</pre>
-
-<h2><a name="Version3.63"></a>Version 3.63 (limited, incremental) (1/14/96)</h2>
-
-<p>
-This release has the usual collection of bug fixes, and two significant
-additions: AccurateScreens, and the first draft of a PostScript-&gt;PDF
-converter ("distiller").
-
-<h3><a name="V3.63_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - Some documentation for pstoppm.ps was out of date. (psfiles.doc)
- - Documentation for acctest.ps, view*.ps, and zeroline.ps was
-missing. (psfiles.doc)
- - The documentation for rollconv.ps omitted the .CSR file.
-(rollconv.ps)
-
-Removes an inappropriate RCS Id line. (gs.1)
-
-Adds a list of paper sizes to the man page. (gs.1)
-
-Suggests that driver authors use parameterization rather than copying when
-possible. (drivers.doc)
-
-Adds an announcement of Ghostscript support on CompuServe. (README)
-
-Documents the new -dCOLORSCREEN switch and the existing -dDITHERPPI=lpi
-switch. (use.doc)
-
-Notes that the OS/2 implementation now requires EMX/GCC 0.9b rather than
-0.9a. (install.doc)
-
-Adds some new man pages. (pdf2ps.1, ps2ascii.1)
-
-Greatly expands lib.doc. (lib.doc)
-
-</pre><h3><a name="V3.63_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The pg target for Unix platforms didn't include some necessary
-additional X11 libraries. (unix-end.mak)
- - The Unix library makefile didn't define CCAUX or CCLEAF.
-(ugcclib.mak)
- - Unix systems didn't `install' some .ps files. (unix-end.mak)
-
-Extends genconf so that features at the library level can have
-initialization procedures. (gconf.c, genconf.c, gsinit.c)
-
-Adds a -dCOLORSCREEN[=false] switch to force enabling or disabling of
-4-color screens. (gs_init.ps, gs_setpd.ps)
-
-</pre><h3><a name="V3.63_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The prfont utility didn't leave enough of a margin on the left.
-(prfont.ps)
- - The ps2ascii utility still created files _temp_.out and _temp_.err
-even though they are no longer used. (ps2ascii.ps)
- - The acctest.ps file was empty, rather than including a test
-program. (acctest.ps)
-
-Adds ps2pdf[.bat] scripts for invoking the new pdfwrite driver. (ps2pdf,
-ps2pdf.bat, unix-end.mak)
-
-</pre><h3><a name="V3.63_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The x11alpha driver had a patch that suppressed output in many
-cases. (gdevxalt.c)
- - The X driver set up a parameter incorrectly in copy_color.
-(gdevx.c)
- - An explicit cast was needed to handle a 'const' problem.
-(gdevpng.c)
-
-Adds a pdfwrite driver that creates syntactically correct PDF output. The
-output is only reasonable for fill/stroke graphics, not for text or images.
-(iscan.h, sa85x.h, sfilter.h, gdevpdf.c, sfilter2.c, zfdecode.c)
-
-</pre><h3><a name="V3.63_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The test for WinExec failure on Win32 was incorrect. (gp_mswin.c)
- - getenv was declared redundantly on OS/2. (gp_os2.c)
- - gs16spl.c was missing &lt;string.h&gt;. (gs16spl.c)
-
-</pre><h3><a name="V3.63_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Images read data in smaller and smaller increments (performance
-bug only). (zpaint.c)
- - Images with MultipleDataSources=true and two or more DataSources
-referencing the same stream could get confused. (zpaint.c)
- - Invoking setpagedevice with an undefined key, even with Policy =
-1, caused an error. (gs_setpd.ps)
- - IEEE floats in binary tokens or encoded number strings were read
-incorrectly on CPUs that use non-IEEE floating point. (ibnum.c)
-
-Adds a 'const' to the second parameter of zimage_setup. (zimage2.c,
-zpaint.c)
-
-Encapsulates the filling of free memory blocks in a macro. (igc.c,
-igcstr.c)
-
-</pre><h3><a name="V3.63_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - If the first line of a file began with % but the line was longer
-than 255 characters, an error occurred. (pdf_main.ps)
- - Masked images didn't set the color before drawing. (gs_pdf.ps)
- - Extraneous blank lines in the trailer or cross-reference region
-caused an error. (pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V3.63_Streams"></a>Streams</h3><pre>
-
-Speeds up image interpolation a little. Much more could be still be done.
-(siscale.c)
-
-</pre><h3><a name="V3.63_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - An error in handling a boundary condition could cause a horizontal
-streak of pixels to be turned on or off when it shouldn't be. (gxfill.c)
- - The new scan-line-based filling loop could write pixels twice.
-(The old trapezoid-based loop still does write pixels twice.) (gxfill.c)
- - For multi-plane images, gs_image_next only sets *pused for the
-last plane; this wasn't documented. (gsimage.h)
- - Images with MultipleDataSources=true and two or more DataSources
-referencing the same stream could get confused. (gsimage.h, gsimage0.c)
- - 12-bit gray images caused an invalid memory access. (gsimage.c)
- - Nearly-zero-thickness lines didn't get filled, because the hack
-that compensates for this peculiarity of the MS Windows PostScript driver
-accidentally got disabled. (gxfill.c)
- - Some casts to remove 'const' were omitted. (gxclread.c)
- - 1-line-high bitmaps could get written in the band list with an
-inconsistent number of bytes, causing errors when reading. (gxcldev.h,
-gxclbits.c, gxclist.c, gxclpath.c, gxclread.c)
- - Isolated dots produced by round caps usually disappeared. (They
-still disappear sometimes.) (gxstroke.c)
- - On 16-bit platforms, the computation of t2 and t3 in
-gx_curve_x_at_y could overflow, leading to incorrect output. (gxpcopy.c)
- - Stroking horizontal or vertical lines could produce variations of
-1 pixel in the line width. (gxstroke.c)
- - The default clipping region for band rendering was too large,
-leading to wasted work. (gxclread.c)
- - Guarantees no double pixel writing when necessary, i.e., when a
-non-idempotent RasterOp is selected. (gsropt.h, gxfill.c)
- - For unrotated black-and-white images, one column of pixels at the
-right edge of the image might be incorrect. (gsimage1.c)
- - A const pointer was passed inappropriately. (gxistate.h,
-gscoord.c)
- - CIE color conversion could address 1 element beyond the end of an
-array, with unpredictable results. (gscie.c)
-
-Separates out the higher-level band list facilities, so they can be an
-optional feature. (lib.mak, gxcldev.h, gxclpath.h, gxclbits.c, gxclist.c,
-gxclpath.c, gxclread.c)
-
-Implements bitmap (fill_mask) clipping in the band list. (gxcldev.h,
-gxclpath.h, gxclist.c, gxclpath.c, gxclread.c)
-
-Starts to separate out the RasterOp facility as an optional feature.
-(lib.mak, gxdevice.h, gxdevrop.h, gdevdflt.c, gdevmrop.c)
-
-Encapsulates the filling of free memory blocks in a macro, at the request of
-a licensee. (gdebug.h, gsmdebug.h, gsmemory.h, gs.c, gsalloc.c, gsmemory.c,
-gxbcache.c)
-
-Speeds up fill_rectangle for 32-bit devices. (gdevm32.c)
-
-Speeds up path writing in band lists a little. (gxclpath.c)
-
-Implements AccurateScreens along the lines described in the Adobe
-documentation. The current implementation can produce very large
-super-cells, so it will not always be able to actually increase the screen
-accuracy. (gxdht.h, gsht.c, gshtscr.c)
-
-</pre>
-
-<h2><a name="Version3.62"></a>Version 3.62 (limited, incremental) (12/26/95)</h2>
-
-<p>
-This release makes some licensee-requested improvements in the garbage
-collector and fixes a couple of minor bugs. It also constitutes a
-checkpoint for the forthcoming forked 3.53 release.
-
-<h3><a name="V3.62_Documentation"></a>Documentation</h3><pre>
-Notes that for Win32s, gs16spl.exe must be in the same directory as
-gswin32.exe. (install.doc)
-
-Changes `3.N' to a real version number in the man page. (gs.1)
-
-Adds a reference to dos-psv, another "dumb terminal" user interface for
-Ghostscript intended for MS-DOS users. (README)
-
-</pre><h3><a name="V3.62_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The stack size for some of the PC platforms was set too small.
-(watc.mak, watcwin.mak)
-
-Changes the default value of ORIENT1 from false to true, i.e., assumes that
-a value of 1 for the orientation parameter of setpageparams indicates
-portrait orientation. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. It only
-affects files created for roll-media imagesetters. (gs_init.ps, use.doc)
-
-</pre><h3><a name="V3.62_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The definition of the op_index_op_array_table macro had an
-incorrect trailing semicolon. (opdef.h)
- - Setting the PageSize policy to 1 and then trying to set the page
-size caused an error if FIXEDMEDIA was selected. (gs_setpd.ps)
-
-Changes the garbage collector marking phase so that instead of just using a
-single block (allocated, free, or default) for the mark stack, it can chain
-all three types of block together. (igc.h, igc.c, igcstr.c, ilocate.c)
-
-Refactors the garbage collector slightly to reduce inter-module
-dependencies. (int.mak, igc.h, igcstr.h, igcstr.c)
-
-Changes the garbage collector to keep track of ranges within each chunk that
-must be scanned if the mark stack overflows. (gxalloc.h, igc.c)
-
-Adds [write]===[only] procedures, which act like == but also print the
-contents of dictionaries, and ppstack, which acts like pstack but uses ===.
-Changes ESTACKPRINT and OSTACKPRINT to use === rather than ==. (gs_init.ps,
-gs_setpd.ps)
-
-</pre><h3><a name="V3.62_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - If a PDF file substituted a calibrated color space for the
-DeviceGray or DeviceRGB color space using a ColorSpace resource, the
-PostScript file that pdf2ps produced from that PDF file caused an error.
-(gs_pdf.ps)
-
-</pre><h3><a name="V3.62_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The debugging code for checking the sorting of line lists didn't
-check for an empty list. (gxfill.c)
-
-</pre>
-
-<h2><a name="Version3.61"></a>Version 3.61 (limited) (12/10/95)</h2>
-
-<p>
-This limited release fixes a few bugs (including a couple that significantly
-affected character quality) and also includes some substantial performance
-improvements.
-
-<h3><a name="V3.61_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The directory name for the PNG library was incorrect.
-(libpng.mak)
- - The analysis of curve monotonocity in gxpcopy.c had an error.
-(gxpcopy.c)
-
-Changes the subdirectory names for zlib and libpng to be consistent.
-(make.doc)
-
-Documents a possible problem with object file format incompatibilities in
-certain versions of GNU/Linux. (make.doc)
-
-Documents the new distinction between devices and device prototypes.
-(language.doc)
-
-Adds a pointer to DEC's free pstotext utility. (README)
-
-</pre><h3><a name="V3.61_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - zlib.mak omitted some files in the encoding module dependencies.
-(zlib.mak)
- - os2.mak referred to png.mak rather than libpng.mak. (os2.mak)
- - The png devices didn't include gdevpccm.$(OBJ) as a required file.
-(devs.mak)
- - Some modules in lib.mak referred to stream.h, which was defined in
-int.mak. (int.mak, lib.mak)
- - Quite a few dependencies on header files were missing from the
-makefiles. (int.mak, lib.mak, *.mak)
-
-Adds a 'pg' target to the Unix makefiles, for building profiling
-configurations. (unix-end.mak)
-
-</pre><h3><a name="V3.61_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - Type 1 fonts in which some characters are defined by PostScript
-procedures couldn't be compiled. (ccfont.h, iccfont.c, font2c.ps)
- - pdf2ps didn't write Widths or Encoding in the converted file,
-producing incorrect spacing and incorrect characters. (pdf_2ps.ps)
- - markhint.ps didn't handle the Type 1 'div' operator, causing
-typecheck errors. (markhint.ps)
- - markhint.ps ignored the hstem3 and vstem3 hints. (markhint.ps)
-
-Changes the rollconv.ps utility to produce files whose names conform to the
-8.3 length restriction, and to reduce the fixed RAM overhead for Kanji
-fonts. (rollconv.ps)
-
-Adds a utility for detecting compiler problems that affect Ghostscript.
-(bughunt.sh)
-
-</pre><h3><a name="V3.61_Drivers"></a>Drivers</h3><pre>
-
-Adds anti-aliasing capability (-dTextAlphaBits and -dGraphicsAlphaBits) to
-the PGM and PPM drivers. (gdevpbm.c)
-
-Declares the static_procs member of the device structure as const *. This
-should have been done a long time ago! (drivers.doc, gxdevice.h)
-
-</pre><h3><a name="V3.61_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - Printing didn't work in 32-bit MS Windows environments.
-(bcwin32.mak, gdevmswn.c, gp_mswin.c)
- - There were some compatibility problems with IBM C. (os2.mak,
-gsdll.h, gdevpm.c, gp_os2.c)
-
-Adds the PNG drivers to the 32-bit MS Windows and OS/2 makefiles.
-(bcwin32.mak, os2.mak)
-
-Adds a conditional to work around a bug in gcc 2.7.x (it didn't recognize
-that the target of a const T * might still be mutable through aliasing).
-(stdpre.h)
-
-</pre><h3><a name="V3.61_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Rasterizing a character in a Type 1 font with an invalid FontBBox
-left some garbage on the operand stack (bug introduced in 3.52 or 3.60).
-(gs_type1.ps)
- - The font substitution algorithm could fail or loop. (gs_fonts.ps)
-
-Adds a little more support for CID fonts and CMaps. (gs_cidfn.ps,
-gs_cmap.ps)
-
-</pre><h3><a name="V3.61_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - An #include &lt;memory_.h&gt; was missing. (ziodev.h)
- - Scanner-detected errors (primarily syntaxerror) didn't report the
-file position. (gs_init.ps)
- - Rotated characters were rendered incorrectly (bug introduced in
-3.52). (gstype1.c)
- - Some compilers got upset about the use of 'dict' as a variable
-name. (zdict.c)
- - Operand stack overflows sometimes didn't set the "requested" field
-correctly. (interp.c)
- - Using -dBufferSpace= with a non-printer device caused an error.
-(gs_init.ps)
-
-Adds zlibEncode/Decode filters. (int.mak, zfzlib.c)
-
-Separates devices from device prototypes. Prototypes, which lack the
-writable attribute, cannot be installed as the current device or have their
-parameters changed. This change allows Ghostscript to be exited and
-restarted without being reloaded, which solves some problems with DLL
-usage. ****** WE HAD TO SUBVERT THIS CHANGE BECAUSE OF MEMORY MANAGER
-PROBLEMS, by making zgetdevice return a writable reference to the
-prototype. (We finally fixed this in release 3.65.) (gs_init.ps, iref.h,
-opcheck.h, zdevice.c, ztype.c, zwppm.c)
-
-Extends the client API to allow for pushing values onto the operand stack.
-(imain.h, gs.c, gsmain.c)
-
-Defines a .setdefaultscreen procedure that sets the default halftone screen,
-transfer function, and stroke adjustment for the current device. Changes
-selectdevice and setpagedevice so that they call .setdefaultscreen;
-setpagedevice calls .setdefaultscreen before calling the Install procedure,
-so that Install can set different parameters if it wishes. Note that
-setdevice does not do this. (gs_init.ps, gs_setpd.ps)
-
-</pre><h3><a name="V3.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Tf set the current text font twice, and interacted with pdf2ps in
-an awkward way. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
- - If a font had variant Widths, it could get confused in the cache
-with the underlying font. (pdf_font.ps)
- - If a character appeared twice in an encoding and the font
-specified different Widths values for the two occurrences, the last Width
-would be used. We patched this to ignore zero Widths, which is not the
-correct solution but which almost always produces correct output.
-(pdf_font.ps)
- - Arrays containing nulls didn't print out correctly (bug introduced
-in 3.60). (gs_init.ps)
- - Some PDF files contain very large dictionaries, which caused a
-stackoverflow. (pdf_base.ps)
-
-Speeds up the initial processing of PDF files by caching the map from page
-numbers to page objects, and by not scanning the outlines if we aren't
-producing PostScript output. (pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V3.61_Streams"></a>Streams</h3><pre>
-
-Adds zlibEncode/Decode filters. (lib.mak, szlibx.h, szlibc.c, szlibd.c,
-szlibe.c)
-
-</pre><h3><a name="V3.61_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - glyphshow displayed a character with code 0 rather than the
-requested character (bug introduced in 3.60.) (gschar.c)
- - If trimming white space around a character reduced its raster, the
-character was garbled in the cache (bug introduced in 3.60.) (gxccman.c)
- - colorimage would incorrectly convert white pixels to black if the
-image color space was CMYK, the current color space was not CMYK, and the
-number of bits per pixel was 4 or 8. (gsimage2.c)
- - One of the clipping tests for images was backwards (bug introduced
-in 3.60). (gsimage.c)
- - Type 1 fonts that used the Flex feature applied hints to the path
-multiple times, causing dropouts, uneven stems, and other problems (bug
-probably introduced in 3.21). (gstype1.c)
- - If a Type 1 font used the Flex feature within the accent of an
-accented character defined with seac, the shape of the accent could be
-distorted. (gxtype1.h, gstype1.c)
- - If a Type 1 font changed hints using the hint replacement facility
-when the last operation was a closepath, the old hints would be applied a
-second time, distorting the shape. (gxhint3.c)
- - Band lists could read garbage beyond the end of data for a band,
-causing unpredictable errors (bug introduced in 3.60). (gxclread.c)
- - If the bounding box of the path for fill_path or stroke_path went
-outside the device page boundary when banding, out-of-bounds memory
-references occurred (bug introduced in 3.60). (gxdevice.h, gxclpath.c)
-
-Adds an alternative implementation of the core path filling algorithm that
-is much faster on objects with curves but doesn't handle Y fattening. This
-is the implementation that will normally be used for rasterizing characters.
-This implementation rasterizes curves directly, without flattening them.
-(gxfixed.h, gxpath.h, gzpath.h, gsdps1.c, gxfill.c, gxpcopy.c, gxpdash.c)
-
-Speeds up the flattening of curves substantially by omitting more redundant
-points. (gxpcopy.c)
-
-Speeds up character bitmap compression a little more. (gsbitops.h,
-gdevabuf.c, gsbitops.c, gxccman.c)
-
-Speeds up anti-aliased graphics a bit by computing a bounding box before
-converting from oversampling to alpha values, and by speeding up the
-bounding box computation itself. (gsbitops.h, gdevabuf.c, gsbitops.c,
-gxccman.c)
-
-</pre>
-
-<h2><a name="Version3.60"></a>Version 3.60 (limited) (11/20/95)</h2>
-
-<p>
-(Note: release numbers 3.54 through 3.59 were deliberately skipped.) This
-internal release includes a major redesign of band lists in order to reduce
-their size for embedded implementations, to move towards supporting "vector"
-output formats, and to further separate the imager library from the language
-interpreters.
-
-<h3><a name="V3.60_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - A comment was incorrect. (viewpbm.ps)
- - The PixelDifference filters were not documented. (language.doc)
- - The change from currenttime to .currenttime wasn't documented.
-(language.doc)
- - gs.1 incorrectly stated that the default font directory name
-included the version number. (gs.1)
- - The -g and -r switches didn't specify that the units for their
-arguments are pixels and pixels per inch respectively. (use.doc)
- - The PageOffset page device parameter wasn't listed.
-(language.doc)
-
-Changes copy_mono and copy_color to optional procedures. (drivers.doc)
-
-Adds a reference to ps_view.ps, a "dumb terminal" user interface for
-Ghostscript intended for MS-DOS users. (README)
-
-Splits off the documentation on installing Ghostscript into a separate file.
-(readme, install.doc, use.doc)
-
-Adds documentation on the data format produced by the standard LZWEncode
-filter. (readme, lzwce.doc)
-
-Clarifies XLIBDIR vs. XLIBDIRS. (make.doc)
-
-Adds user-contributed documentation on building Ghostscript under QNX.
-(make.doc)
-
-</pre><h3><a name="V3.60_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The rule for building dfaxhigh.dev had a typo. (devs.mak)
- - The dependencies for gdevpipe.h were missing errno__h and
-string__h. (unixtail.mak)
- - The geninit program (the implementation of COMPILE_INITS=1) didn't
-parse the command line properly, and didn't check for PostScript files
-properly. (geninit.c)
- - ccfontab.c was omitted from the fileset. The easiest way to fix
-this was to rename it to icfontab.c. (gs.mak, int.mak, ccfontab.c)
- - The Unix makefiles installed caption.ls (a typo) rather than
-caption.ps. (unix-end.mak)
- - XLIBDIR, for dynamic library access, wasn't defined. (*head.mak,
-*tail.mak, ugcclib.mak)
-
-Adds the PNG and ZLIB makefiles to the fileset. (*.mak, png.mak, zlib.mak,
-tar_cat)
-
-Puts the PixelDifference filters in the standard Level 2 set, since the LZW
-filters may invoke them (a post-Red Book addition to the PostScript language
-definition). (int.mak)
-
-Adds -Wcast-qual to the gcc compiler flags. (gcc-head.mak)
-
-Adds the PNG drivers to the standard Unix configurations.
-(ansi/cc-/gcc-head.mak)
-
-Adds a -dNOFONTPATH switch to suppress any consultation of the FONTPATH
-variable or the GS_FONTPATH environment variable. (gs_fonts.ps, gs_init.ps)
-
-</pre><h3><a name="V3.60_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The default scaling for viewing PBM files was computed
-incorrectly. (viewpbm.ps)
- - ps2ascii left a value on the stack for each unrecognized character
-it processed, eventually causing a stackoverflow. (ps2ascii.ps)
-
-Changes viewpbm.ps so that it simply defines P1 through P6, allowing PBM
-files to be executed with 'run'. (viewpbm.ps)
-
-Adds a small benchmark to crudely measure hardware/system performance. The
-same file can either be compiled as a C program or executed as a PostScript
-program. (bench.c)
-
-Adds a few PPD files to the distribution. There will probably be more as
-time goes on. (tar_gs, unix-end.mak)
-
-Updates the Unix lpr scripts to handle a wider variety of device options.
-(unix-lpr.doc, lprsetup.sh, unix-lpr.sh)
-
-Adds a utility for converting files produced by Macromedia's Rollup program
-to a Type 0 form directly usable by Ghostscript. (rollconv.ps)
-
-</pre><h3><a name="V3.60_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Forwarding devices passed an incorrect first argument when
-forwarding a copy_rop operation. (gsdevice.c)
- - Because of a typo, the LaserJet drivers had incorrect margins.
-This was probably a new bug in 3.5x. (gdevdjet.c)
- - A private name was duplicated. (gdevtfax.c)
- - The x11alpha driver passed invalid colors to the X library.
-(gdevxalt.c)
- - The x11alpha driver set the blue component of colors incorrectly.
-(gdevxalt.c)
- - Some `const' declarations were missing. (gdevtifs.c, gdevtfnx.c,
-gdevxxf.c)
- - The size of A4 paper was slightly inconsistent across drivers.
-(gdevdjet.c, gdevl256.c)
-
-Provides default implementations of copy_mono and copy_color in terms of
-fill_rectangle. (gxdevice.h, gsdevice.c)
-
-Adds forwarders for sync_output and output_page. (gxdevice.h, gsdevice.c)
-
-Adds new optional procedures to the driver interface:
- - fill_path for filling a path with a color;
- - stroke_path for stroking a path;
- - fill_mask for painting a color through a mask.
-The default implementations use the existing rasterizer algorithms. This
-involves a NON-BACKWARD-COMPATIBLE change to the parameters of a few
-internal routines:
- gs_currentlineparams
- gx_fill_path, gx_fill_path_only, gx_path_expand_dashes, gx_path_flatten
-and two externally visible routines not part of standard PostScript:
- gs_setfilladjust, gs_currentfilladjust
-(gdevmem.h, gdevprn.h, gspath.h, gspenum.h, gxcpath.h, gxdevice.h, gxdraw.h,
-gxpaint.h, gxpath.h, gscoord.c, gsdevice.c, gspaint.c, gsstate.c,
-gxacpath.c, gxclist.c, gxclread.c, gxcpath.c, gxdraw.c, gxfill.c, gxpaint.c,
-gxpcmap.c, gxpcopy.c, gxstroke.c)
-
-Makes major changes to the dithering algorithm for the color DeskJet and
-BubbleJet drivers, contributed by a user. (gdevcdj.c)
-
-Adds a contributed 12-bit RGB TIFF driver. (gdevtfnx.c)
-
-</pre><h3><a name="V3.60_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The printjob created by Ghostscript was called "Ghostscirpt"
-instead of "Ghostscript". (gp_os2.c)
- - An "export" declaration was omitted from DllInit. (gp_mswin.c)
-
-Removes gp_get_clock (its interface was changed from calendar
-days/milliseconds to epoch seconds/nanoseconds in an undocumented,
-NON-BACKWARD-COMPATIBLE change in 3.51), and adds a new gp_get_realtime
-procedure that returns epoch seconds/nanoseconds. This too is a
-NON-BACKWARD-COMPATIBLE change; it is required because we overlooked the
-prior change in a batch of user-contributed code. (gp.h, gp_*.c)
-
-</pre><h3><a name="V3.60_Fonts"></a>Fonts</h3><pre>
-
-Adds Heavy as a synonym for Bold when doing intelligent font substitution.
-(gs_fonts.ps)
-
-</pre><h3><a name="V3.60_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The setup for the CCITTFax filters set the 'raster' element
-redundantly. (zfdecode.c)
- - currentscreen and currentcolorscreen could give an error if the
-current screen was set with sethalftone (or, for currentscreen,
-setcolorscreen). (gs_dps1.ps)
- - The font operators didn't work properly if a PostScript file
-redefined certain operator names. (gs_res.ps)
- - The CCITTFax filters imposed a limit of 9999 Rows or Columns. The
-new limit is 32000. (zfdecode.c)
- - Streams could get removed from a bookkeeping list prematurely, and
-wind up dangling. (zfile.c)
- - The garbage collector didn't ask for large enough a mark stack,
-and only used half of what it got. (This was only a performance problem.)
-(igc.c)
- - Two private names duplicated names in a vendor library. (zbseq.c)
- - Type 1 fonts didn't enforce the maximum value of BlueScale, which
-caused some faulty fonts produced by Fontographer to produce incorrect
-output. (zfont1.c)
- - cvs / cvrs / = didn't produce Adobe-compatible output.
-(gs_init.ps, iutil.h, iutil.c, zfileio.c)
- - Multiple -I switches set the search path incorrectly. (gsmain.c)
- - Many `const' declarations were missing. (icie.h, idparam.h,
-iref.h, iutil.h, idparam.c, iinit.c, ilocate.c, iname.c, interp.c, iparam.c,
-iutil.c, zcie.c, zfile.c, zgstate.c, ziodev.c, ztype.c)
- - Fonts could wind up with a pointer to the wrong VM space, causing
-potential GC or save/restore confusion. (zfont2.c)
- - upath could leave garbage on the stack if it failed. (gs_dps1.ps)
-
-Speeds up rasterizing characters into the cache a little. (gs_type0.ps)
-
-Changes the default limit on the size of cached characters from the maximum
-of (18 points or 5 times the "average" character size) to (18 points or 1%
-of the total cache size). (gs_init.ps)
-
-Adds the DecodedByteAlign parameter to the CCITTFax filters. (zfdecode.c)
-
-Updates some code for compatibility with the new fill_path driver procedure.
-(zupath.c)
-
-Replaces .set/currentfilladjust with .set/currentfilladjust2, and defines
-the former in terms of the latter. (gs_init.ps, zgstate.c)
-
-Extends the make[word]imagedevice operators to accept palette values of 16,
-24, and 32, for creating true-color image devices. (zdevice.c)
-
-Changes realtime to match the definition of gp_get_realtime. (zmisc.c)
-
-Removes the [.]currenttime operator. realtime provides interval timing in
-milliseconds; the %Calendar% IODevice provides calendar times. (zmisc.c)
-
-Extends the LZW filters to handle the PDF Predictor (pixel-differencing)
-option. (zfdecode.c, zfilter2.c, zfpdiff.c (deleted))
-
-</pre><h3><a name="V3.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - The length of an image's data was sometimes calculated
-incorrectly, causing an error when converting PDF to PostScript.
-(pdf_draw.ps)
- - If word spacing and/or text spacing was non-zero, an error could
-occur. (gs_pdf.ps)
- - Text that was both filled and stroked caused an error.
-(gs_pdf.ps)
-
-</pre><h3><a name="V3.60_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - When closing an encoding filter stream whose target was also a
-filter, the latter could get called incorrectly with last = 1, possibly more
-than once, leading to premature EOD markers. (stream.c)
- - The LZW-compatible encoder put out an incorrect end-of-data code.
-(slzwce.c)
- - The LZW-compatible encoder didn't put out a reset code soon
-enough. (slzwce.c)
- - Some `const' declarations were missing. (siscale.c)
- - Doing a sgets on a closed stream could call sreadbuf, possibly
-causing an error. (stream.c)
-
-Adds a new (optional) set_defaults procedure to the stream template, which
-sets the stream parameters to default values. We only implement it for a
-few stream types. (scfx.h, scommon.h, slzwx.h, spdiffx.h, srlx.h,
-strimpl.h, scfd.c, scfe.c, slzwce.c, slzwd.c, slzwe.c, spdiff.c, srld.c,
-srle.c)
-
-Adds a new parameter to the CCITTFax filters, DecodedByteAlign. This is an
-integer N, which must be a power of 2 between 1 (2^0) and 16 (2^4), that
-specifies that decoded data scan lines are always a multiple of N bytes.
-The encoding filter skips data in each scan line from Columns to the next
-multiple of N bytes; the decoding filter pads each scan line to a multiple
-of N bytes. Default value: 1. (scfx.h, scfd.c, scfe.c)
-
-Increases the maximum width of a scan line for the CCITTFaxEncode filter to
-32000 pixels. (scf.h)
-
-</pre><h3><a name="V3.60_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Cached characters sometimes had extra blank space on the left,
-leading to some unnecessary bit-shuffling when imaging them. (gxccman.c)
- - In rare cases, gray halftones called gx_color_load unnecessarily.
-(gxdither.c)
- - The list of all-bands commands wasn't initialized/reset properly.
-(gxclist.c, gxclread.c)
- - Rendering an anti-aliased character to a non-anti-aliased device
-didn't free the temporary bitmap, causing memory to be lost. (gxccache.c)
- - Dash patterns where the offset exactly reached a run of length 0
-skipped over the 0-length run. (gsline.c)
- - Rectangles closed with both lineto and closepath weren't
-recognized as rectangles. This is only a performance bug. (gxpath2.c)
- - Because of a typo in a macro formal parameter list, a private name
-was duplicated. (gsstruct.h)
- - Text display operations didn't update the current character in the
-enumerator structure during the fastest path through the code. This only
-matters to one very unusual commercial client. (gschar.c)
- - Some `const' declarations were missing. (gsparam.h, gxistate.h,
-stdpre.h; gdevm1.c, gsalloc.c, gsfont.c, gsimage3.c, gsmemory.c, gsmisc.c,
-gspcolor.c, gstype1.c, gxfill.c, gxpcopy.c)
-
-Changes the header files to assume that gcc on Solaris defines
-__svr4__ and that, in this case, &lt;string.h&gt; has the right stuff in it.
-(memory_.h)
-
-Refactors the character cache to share structures with a similar cache
-used by band lists. Eventually the band list may be able to reference
-the character cache directly, saving a lot of copying. (gxbcache.h,
-gxfcache.h, gsfont.c, gxbcache.c, gxccache.c, gxccman.c)
-
-Speeds up getting the side bearing and width of a Type 1 charstring a
-little. (gxtype1.h, gstype1.c)
-
-Redesigns band lists so that they can cache character bitmaps as well as
-halftone bitmaps. Characters may be written for all bands, not just the
-band(s) they appear in, depending on the setting of the CHAR_ALL_BANDS_COUNT
-parameter in gxclbits.c. (gxcldev.h, gxclist.h, gxclbits.c, gxclist.c,
-gxclread.c)
-
-Adds G4 fax compression for band list bitmaps. (gxcldev.h, gxclist.c,
-gxclread.c)
-
-Incorporates the new set_defaults procedure into the memory-based band list
-implementation. (gxclmem.c)
-
-Implements a halftoning device that can be used in a device pipeline.
-(gdevht.h, gzht.h, gdevht.c, gxcht.c)
-
-Factors out imager state from the full graphics state. This division is
-preliminary and subject to change. (gxistate.h, gxop1.h, gzstate.h,
-gsline.c, gsstate.c, gstype1.c, gxhint*.c)
-
-Implements passing fill operations in the band list, except for pattern
-color or colored halftones. (gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
-
-Implements passing stroke operations in the band list, except for pattern
-color or colored halftones. (gsline.h, gslparam.h, gxline.h, gzline.h,
-gsline.c; gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
-
-Implements the ability to represent halftoned characters in the band list.
-(gxccache.c)
-
-Starts to implement the ability to do halftoning during the rendering phase
-rather than before writing the band list (currently for black-and-white
-devices only). Doing this required NON-BACKWARD-COMPATIBLE changes to the
-interfaces of a few internal procedures:
- gx_check_tile_size, gx_render_device_{color,gray}
-(gxdcolor.h, gxdht.h, gzht.h, gsht.c, gsimage1.c, gsmisc.c, gspcolor.c,
-gsstate.c, gxcht.c, gxclbits.c, gxdither.c, gxht.c)
-
-Implements passing clipping information in the band list. (gzcpath.h,
-gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c)
-
-Removes the gs_state * parameter from the device color fill_rectangle
-procedures and many of their callers, since it is no longer needed. This is
-a non-backward-compatible change to an internal API. (gdevmrop.h,
-gxdcolor.h, gxdraw.h, gxpaint.h, gdevmrop.c, gsimage.c, gspcolor.c, gxcht.c,
-gxclread.c, gxdraw.c, gxfill.c, gxht.c, gxpaint.c, gxstroke.c)
-
-Removes gxdevice.h from gzstate.h, since not all modules requiring access to
-the graphics state need to know the implementation of devices. This entails
-adding gxdevice.h to the include lists for some modules. (gxchar.h,
-gxcpath.h, gxcvalue.h, gxdevice.h, gxtype1.h, gzstate.h; gschar.c,
-gscoord.c, gsdevice.c, gsimage1.c, gsimage2.c, gsimage3.c, gspaint.c,
-gspath.c, gsstate.c, gstype1.c, gxccache.c, gxccman.c, gxhint1.c, gxhint2.c,
-gxhint3.c, gxpaint.c)
-
-Adds a compile-time option, ALPHA_LSB_FIRST, which causes alpha-sampled
-characters to be nibble-reversed in the cache. This was created for a
-specialized application and does not interact well with the rest of the
-code. (gsbitops.c)
-
-Substantially reduces the space required to represent 24- or 32-bit colors
-in the band list, by using more aggressive color differencing. (gxcldev.h,
-gxclist.c, gxclread.c)
-
-Changes the allocation of unique IDs for halftone tiles to use the gray
-level rather than the number of 1-bits as the increment to a base ID; this
-allows more efficient (delta) representation of halftone indices in the band
-list. (gxcldev.h, gxclist.c, gxclread.c, gxht.c)
-
-Substantially speeds up entering anti-aliased characters in the cache, by
-removing white space before compressing rather than vice versa.
-(gsbitops.c, gxccman.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.53"></a>Version 3.53 (1/10/96)</h2>
-
-<p>
-This is an anomalous, out-of-sequence release requested by a commercial
-licensee. It consists of 3.52 plus the following retrofits from 3.60
-through 3.63:
- - PDF interpreter and pdf2ps;
- - Type 1 rasterizer fixes;
- - Type 1 rasterizer and polygon fill performance improvements;
- - MS Windows and OS/2 fixes;
- - A few other important fixes.
-It does NOT fix all problems reported since 3.52.
-
-<p>
-The list of changes below indicates which subsequent release was the source
-of each change. In several cases, minor editing of the change was required
-to make it compatible with 3.52.
-
-<h3><a name="V3.53_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- [3.61] The analysis of curve monotonocity in gxpcopy.c had an error.
-(gxpcopy.c)
-
-[3.63] Notes that the OS/2 implementation now requires EMX/GCC 0.9b rather
-than 0.9a. (use.doc)
-
-[3.62] Notes that for Win32s, gs16spl.exe must be in the same directory as
-gswin32.exe. (use.doc)
-
-[3.62] Adds a reference to dos-psv, another "dumb terminal" user interface
-for Ghostscript intended for MS-DOS users. (README)
-
-[3.61] Adds a pointer to DEC's free pstotext utility. (README)
-
-[3.60] Adds a reference to ps_view.ps, a "dumb terminal" user interface for
-Ghostscript intended for MS-DOS users. (README)
-
-</pre><h3><a name="V3.53_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- [3.60] The geninit program (the implementation of COMPILE_INITS=1)
-didn't parse the command line properly, and didn't check for PostScript
-files properly. (geninit.c)
- [3.60] ccfontab.c was omitted from the fileset. The easiest way to
-fix this was to rename it to icfontab.c. (gs.mak, int.mak, ccfontab.c)
- [3.60] The definition of pdfread.dev did an ADDMOD, not a SETMOD.
-(int.mak)
-
-[3.60] Adds a -dNOFONTPATH switch to suppress any consultation of the
-FONTPATH variable or the GS_FONTPATH environment variable. (gs_fonts.ps,
-gs_init.ps)
-
-</pre><h3><a name="V3.53_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- [3.61] pdf2ps didn't write Widths or Encoding in the converted file,
-producing incorrect spacing and incorrect characters. (pdf_2ps.ps)
- [3.60] ps2ascii left a value on the stack for each unrecognized
-character it processed, eventually causing a stackoverflow. (ps2ascii.ps)
-
-[3.61] Changes the rollconv.ps utility to produce files whose names conform
-to the 8.3 length restriction, and to reduce the fixed RAM overhead for
-Kanji fonts. (rollconv.ps)
-
-[3.60] Adds a utility for converting files produced by Macromedia's Rollup
-program to a Type 0 form directly usable by Ghostscript. (rollconv.ps)
-
-</pre><h3><a name="V3.53_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- [3.60] Because of a typo, the LaserJet drivers had incorrect
-margins. This was probably a new bug in 3.5x. (gdevdjet.c)
- [3.60] A private name was duplicated. (gdevtfax.c)
- [3.60] The x11alpha driver passed invalid colors to the X library.
-(gdevxalt.c)
- [3.60] The x11alpha driver set the blue component of colors
-incorrectly. (gdevxalt.c)
-
-</pre><h3><a name="V3.53_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- [3.63] The test for WinExec failure on Win32 was incorrect.
-(gp_mswin.c)
- [3.63] getenv was declared redundantly on OS/2. (gp_os2.c)
- [3.63] gs16spl.c was missing &lt;string.h&gt;. (gs16spl.c)
- [3.61] Printing didn't work in 32-bit MS Windows environments.
-(bcwin32.mak, gdevmswn.c, gp_mswin.c)
- [3.61] There were some compatibility problems with IBM C. (os2.mak,
-gsdll.h, gdevpm.c, gp_os2.c)
- [3.60] The printjob created by Ghostscript was called "Ghostscirpt"
-instead of "Ghostscript". (gp_os2.c)
- [3.60] An "export" declaration was omitted from DllInit.
-(gp_mswin.c)
-
-[3.61] Adds a conditional to work around a bug in gcc 2.7.x (it didn't
-recognize that the target of a const T * might still be mutable through
-aliasing). (stdpre.h)
-
-</pre><h3><a name="V3.53_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- [3.61] Rasterizing a character in a Type 1 font with an invalid
-FontBBox left some garbage on the operand stack (bug introduced in 3.52 or
-3.60). (gs_type1.ps)
- [3.61] The font substitution algorithm could fail or loop.
-(gs_fonts.ps)
-
-[3.60] Adds Heavy as a synonym for Bold when doing intelligent font
-substitution. (gs_fonts.ps)
-
-</pre><h3><a name="V3.53_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- [3.63] Invoking setpagedevice with an undefined key, even with
-Policy = 1, caused an error. (gs_setpd.ps)
- [3.62] Setting the PageSize policy to 1 and then trying to set the
-page size caused an error if FIXEDMEDIA was selected. (gs_setpd.ps)
- [3.61] Rotated characters were rendered incorrectly (bug introduced
-in 3.52). (gstype1.c)
- [3.60] currentscreen and currentcolorscreen could give an error if
-the current screen was set with sethalftone (or, for currentscreen,
-setcolorscreen). (gs_dps1.ps)
- [3.60] Streams could get removed from a bookkeeping list
-prematurely, and wind up dangling. (zfile.c)
- [3.60] Multiple -I switches set the search path incorrectly.
-(gsmain.c)
- [3.60] Fonts could wind up with a pointer to the wrong VM space,
-causing potential GC or save/restore confusion. (zfont2.c)
- [3.60] upath could leave garbage on the stack if it failed.
-(gs_dps1.ps)
-
-[3.61] Extends the client API to allow for pushing values onto the operand
-stack. (imain.h, gs.c, gsmain.c)
-
-[3.61] Defines a .setdefaultscreen procedure that sets the default halftone
-screen, transfer function, and stroke adjustment for the current device.
-Changes selectdevice and setpagedevice so that they call .setdefaultscreen;
-setpagedevice calls .setdefaultscreen before calling the Install procedure,
-so that Install can set different parameters if it wishes. Note that
-setdevice does not do this. (gs_init.ps, gs_setpd.ps)
-
-[3.60] Speeds up rasterizing characters into the cache a little.
-(gs_type0.ps)
-
-[3.60] Changes the default limit on the size of cached characters from the
-maximum of (18 points or 5 times the "average" character size) to (18 points
-or 1% of the total cache size). (gs_init.ps)
-
-[3.60] Implements parts of the Type 1 BuildChar callout in C. (gs_type1.ps,
-zchar.c)
-
-</pre><h3><a name="V3.53_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- [3.62] If a PDF file substituted a calibrated color space for the
-DeviceGray or DeviceRGB color space using a ColorSpace resource, the
-PostScript file that pdf2ps produced from that PDF file caused an error.
-(gs_pdf.ps)
- [3.61] Tf set the current text font twice, and interacted with
-pdf2ps in an awkward way. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
- [3.61] If a font had variant Widths, it could get confused in the
-cache with the underlying font. (pdf_font.ps)
- [3.61] If a character appeared twice in an encoding and the font
-specified different Widths values for the two occurrences, the last Width
-would be used. We patched this to ignore zero Widths, which is not the
-correct solution but which almost always produces correct output.
-(pdf_font.ps)
- [3.61] Arrays containing nulls didn't print out correctly (bug
-introduced in 3.60). (gs_init.ps)
- [3.61] Some PDF files contain very large dictionaries, which caused
-a stackoverflow. (pdf_base.ps)
- [3.60] The length of an image's data was sometimes calculated
-incorrectly, causing an error when converting PDF to PostScript.
-(pdf_draw.ps)
- [3.60] If word spacing and/or text spacing was non-zero, an error
-could occur. (gs_pdf.ps)
- [3.60] Text that was both filled and stroked caused an error.
-(gs_pdf.ps)
-
-[3.61] Speeds up the initial processing of PDF files by caching the map from
-page numbers to page objects, and by not scanning the outlines if we aren't
-producing PostScript output. (pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V3.53_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- [3.60] When closing an encoding filter stream whose target was also
-a filter, the latter could get called incorrectly with last = 1, possibly
-more than once, leading to premature EOD markers. (stream.c)
- [3.60] The LZW-compatible encoder put out an incorrect end-of-data
-code. (slzwce.c)
- [3.60] The LZW-compatible encoder didn't put out a reset code soon
-enough. (slzwce.c)
- [3.60] Doing a sgets on a closed stream could call sreadbuf,
-possibly causing an error. (stream.c)
-
-</pre><h3><a name="V3.53_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- [3.63] On 16-bit platforms, the computation of t2 and t3 in
-gx_curve_x_at_y could overflow, leading to incorrect output. (gxpcopy.c)
- [3.61] glyphshow displayed a character with code 0 rather than the
-requested character (bug introduced in 3.60.) (gschar.c)
- [3.61] If trimming white space around a character reduced its
-raster, the character was garbled in the cache (bug introduced in 3.60.)
-(gxccman.c)
- [3.61] colorimage would incorrectly convert white pixels to black if
-the image color space was CMYK, the current color space was not CMYK, and
-the number of bits per pixel was 4 or 8. (gsimage2.c)
- [3.61] Type 1 fonts that used the Flex feature applied hints to the
-path multiple times, causing dropouts, uneven stems, and other problems (bug
-probably introduced in 3.21). (gstype1.c)
- [3.61] If a Type 1 font used the Flex feature within the accent of
-an accented character defined with seac, the shape of the accent could be
-distorted. (gxtype1.h, gstype1.c)
- [3.61] If a Type 1 font changed hints using the hint replacement
-facility when the last operation was a closepath, the old hints would be
-applied a second time, distorting the shape. (gxhint2.c, gxhint3.c)
- [3.60] Cached characters sometimes had extra blank space on the
-left, leading to some unnecessary bit-shuffling when imaging them.
-(gxccman.c)
- [3.60] The list of all-bands commands wasn't initialized/reset
-properly. (gxclist.c)
- [3.60] Because of a typo in a macro formal parameter list, a private
-name was duplicated. (gsstruct.h)
- [3.60] Text display operations didn't update the current character
-in the enumerator structure during the fastest path through the code. This
-only matters to one very unusual commercial client. (gschar.c)
-
-[3.61] Adds an alternative implementation of the core path filling algorithm
-that is much faster on objects with curves but doesn't handle Y fattening.
-This is the implementation that will normally be used for rasterizing
-characters. This implementation rasterizes curves directly, without
-flattening them. (gxfixed.h, gxpath.h, gzpath.h, gxdraw.c, gxfill.c,
-gxpcopy.c)
-
-[3.61] Speeds up the flattening of curves substantially by omitting more
-redundant points. (gxpcopy.c)
-
-[3.61] Speeds up character bitmap compression a little more. (gsbitops.h,
-gdevabuf.c, gsbitops.c, gxccman.c)
-
-[3.61] Speeds up anti-aliased graphics a bit by computing a bounding box
-before converting from oversampling to alpha values, and by speeding up the
-bounding box computation itself. (gsbitops.h, gdevabuf.c, gsbitops.c,
-gxccman.c)
-
-[3.60] Speeds up getting the side bearing and width of a Type 1 charstring a
-little. (gxtype1.h, gstype1.c)
-
-[3.60] Adds a compile-time option, ALPHA_LSB_FIRST, which causes
-alpha-sampled characters to be nibble-reversed in the cache. This was
-created for a specialized application and does not interact well with the
-rest of the code. (gsbitops.c)
-
-[3.60] Substantially speeds up entering anti-aliased characters in the
-cache, by removing white space before compressing rather than vice versa.
-(gsbitops.c, gxccman.c)
-
-</pre>
-
-<h2><a name="Version3.52"></a>Version 3.52 (limited) (10/6/95)</h2>
-
-<p>
-This is an incremental release to fix a few problems in 3.51. Since it is
-being made in an environment with no network connectivity, it will probably
-not be released to the general public. ****** THE CHANGES MARKED WITH ***
-BELOW WERE LOST IN THE PROCESS OF SHUFFLING FILESETS BETWEEN ENVIRONMENTS.
-THEY ARE INCORPORATED IN 3.60 BUT NOT IN 3.52. ******
-
-<h3><a name="V3.52_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The fileset included a meaningless empty file. (acctest.ps)
- *** The definition of pdfread.dev did an ADDMOD, not a SETMOD.
-(int.mak)
-
-</pre><h3><a name="V3.52_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The RunLengthEncode filter used with a dictionary argument could
-give a spurious error. (zfilter.c)
- - The fast form of the 'dup' operator failed to check for stack
-overflow, which could lead to memory smashing. (interp.c)
- *** Level 1 configurations gave errors during initialization.
-(ialloc.c, iinit.c, ireclaim.c)
- *** Attempting to look up or insert a noaccess string as a
-dictionary key converted the string to a name rather than giving an error.
-(idict.h, idict.c)
-
-Adds a C implementation of the .dicttomark (&gt;&gt;) procedure. (gs_init.ps,
-zdict.c)
-
-*** Implements parts of the Type 1 BuildChar callout in C. (gs_type1.ps,
-ifont.h, zchar.c, zfont1.c, zfont2.c)
-
-</pre><h3><a name="V3.52_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Braces were missing in an initializer. (gxdcolor.h)
- - Composite fonts with a non-zero translation in the FontMatrix
-positioned characters incorrectly. (gschar.c)
- *** gsparam.c wouldn't compile with some versions of the Borland
-compiler. (gsparam.c)
-
-Speeds up the handling of curve segments in Type 1 fonts a little.
-(gstype1.c)
-
-Speeds up displaying very short strings a little. (gschar.c)
-
-*** Implements parts of the Type 1 BuildChar callout in C. (gxfont.h)
-
-</pre>
-
-<h2><a name="Version3.51"></a>Version 3.51 (9/27/95)</h2>
-
-<p>
-This is the first public release since 3.33. Its main features are a
-working setpagedevice, a working PDF interpreter, and a working PDF to PS
-converter.
-
-<h3><a name="V3.51_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The -dSHORTERRORS switch wasn't documented in enough places.
-(current.doc, use.doc)
- - The DLL documentation was internally inconsistent. (dll.doc)
- - The %pipe% file name syntax wasn't documented. (language.doc)
-
-</pre><h3><a name="V3.51_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - caption.ps wasn't installed properly. (unix-end.mak)
- - geninit depended on $(gconfig_h) in an improper way. (geninit.c,
-int.mak, *.mak)
- - One script lacked the #!/bin/sh header. (gsdj500)
-
-Adds the 24-bit color TIFF driver to all configurations that support
-black-and-white TIFF. (*.mak)
-
-</pre><h3><a name="V3.51_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - align.ps was omitted from the fileset. (psfiles.doc, align.ps,
-unix-end.mak)
-
-</pre><h3><a name="V3.51_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A driver had some \s in formal parameter lists. (gdevcdj.c)
- - A driver had some improper &amp;s. (gdevtifs.c)
- - The default MS Windows printer driver was very slow. (gdevwpr2.c)
- - The (newly restructured) TIFF drivers could produce a memory
-access error. (gdevtifs.c)
- - The CGM drivers referred to an obsolete structure member.
-(gdevcgm.c)
- - The black-and-white H-P drivers didn't set the margins properly
-(again). (gdevdjet.c)
- - Several of the most common printer drivers omitted some scan lines
-at the bottom of the page. (gdevprn.h, gdevprn.c)
-
-At the request of the main OS/2 developer, adds a printer device for OS/2.
-(gdevos2p.c, os2.mak)
-
-Makes many changes to the stcolor driver, submitted by the developer just
-before the release. (devices.doc, unix-end.mak, gdevstc.h, gdevstc*.c,
-stcinfo.ps, stcolor.ps, stcinfo.ps)
-
-</pre><h3><a name="V3.51_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - usertime (and realtime) were broken on VMS. (gp_vms.c)
- - The 32-bit MS Windows DLL control file had a typo. (gsdll32.def)
-
-Removes the color inkjet drivers from the 16-bit Windows executable, because
-they overflow the 64K default data segment; adds PCX, TIFF, and BMP output
-formats. (bcwin.mak)
-
-</pre><h3><a name="V3.51_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A routine was declared 'private' inconsistently. (zcie.c)
- - -dSHORTERRORS didn't remove enough non-Adobe error output.
-(gs_init.ps)
-
-</pre><h3><a name="V3.51_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - The ProcSet relied on the presence of NullFont. (gs_pdf.ps)
-
-</pre><h3><a name="V3.51_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There was an extraneous \ outside a macro. (gsline.c)
- - Scaling up a black-and-white image could caused many scan lines to
-be inverted. (gsimage1.c)
- - The initial clipping path did not take Margins into account
-properly. (gxdevice.h, gdevxalt.c, gscoord.c, gsdevice.c, gsdevmem.c,
-gsdparam.c, gspath.c)
- - If banding was required, characters could come out as solid black
-rectangles. (gxclist.c, gxclread.c)
-
-</pre>
-
-<h2><a name="Version3.50"></a>Version 3.50 (limited) (9/24/95)</h2>
-
-<p>
-This is the last limited bug-fix release during beta test. The color
-DeskJet drivers are broken (they sometimes produce black rectangles instead
-of characters); we will fix this in the next release.
-<p>
-The following issues have been postponed to an unspecified future release:
-<ul>
-<li> - Filling areas often writes pixels twice, causing incorrect
-output
-with certain unusual RasterOp values. [1.814]
-<li> - The tar.gz archives should include a subdirectory like
-gs-3.46/ in
-the file names.
-<li> - The CCITTFaxDecode filter should skip initial junk if
-EndOfLine =
-true. [1844 8/24/95, NRE]
-</ul>
-
-<h3><a name="V3.50_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - The name of the new 24-bit TIFF driver was incorrect in one place.
-(vms.mak)
-
-</pre><h3><a name="V3.50_Utilities"></a>Utilities</h3><pre>
-
-Adds a new utility to put a caption in a box at the bottom of each page.
-(caption.ps)
-
-</pre><h3><a name="V3.50_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PC display devices weren't page devices. Probably all the
-other display and window system devices should be made page devices too, but
-we aren't going to bother tracking them down. (gdevpcfb.c)
- - There was a lot of duplicated code in the TIFF drivers.
-(gdevtifs.h, gdevtfax.c, gdevtfnx.c, gdevtifs.c)
-
-Updates the bjc600 / bjc800 drivers with changes from the author.
-(devices.doc, gdevbjc.h, gdevcdj.c)
-
-</pre><h3><a name="V3.50_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Building with COMPILE_INITS=1 produced a stackunderflow error.
-(gs_pdf_e.ps)
- - An internal operator didn't have a name. (ztoken.c)
- - Some error and information messages weren't in the Adobe format.
-(gs_fonts.ps, gs_init.ps)
- - Some common Adobe compatibility operators weren't implemented:
-pagemargin, pageparams, setpagemargin. (gs_statd.ps, gs_lev2.ps)
- - setpageparams set Margins rather than PageOffset. (gs_lev2.ps)
- - setpage and setpageparams didn't set Orientation. (gs_lev2.ps)
- - If the end of an input buffer fell just after the / of a literal
-name, a memory access error could occur. (iscan.c)
- - When the interpreter returned from gs_[main_]run_string_continue,
-there could be an extra value on the operand stack. (iscan.h, istream.h,
-interp.c, iscan.c, zfileio.c, zfproc.c, zpaint.c, ztoken.c)
- - If the character cache was disabled, or if a character was too
-large to be cached, returning from a font BuildChar procedure could do an
-erasepage. (zchar.c)
-
-A minor change was required for compatibility with the library change for
-image devices. (zdevice.c)
-
-Adds a -dSHORTERRORS switch that changes some of the common error and
-warning messages for greater Adobe compatibility. (gs_init.ps, gs_fonts.ps)
-
-</pre><h3><a name="V3.50_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - If a CharProc for a Type 3 font did a BT/ET, the graphics state
-could get confused. (gs_pdf.ps)
- - If a Tf occurred inside a BT/ET, it didn't take effect on
-subsequent BT/ETs. (gs_pdf.ps)
-
-</pre><h3><a name="V3.50_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There was no way to control whether an image device was a page
-device. Fixing this required a NON-BACKWARD-COMPATIBLE CHANGE to
-gs_makewordimagedevice and gs_initialize_wordimagedevice to take a Boolean
-page_device argument. Fortunately, this change affects only a few obscure
-library clients. (gsdevice.h, gsdevmem.c)
-
-Adds translation capability to clipping devices. This isn't used anywhere
-yet. (gxcpath.h, gxcpath.c)
-
-Adds procedures for doing unaligned copy_xxx operations. These were added
-for a customer. (gxdevice.h, gsdevice.c)
-
-Changes the (undocumented) return value of gs_setcachedevice[2]: they used
-to return 1 if the current show operation was a non-displaying one
-(stringwidth or cshow), and now return 1 if the cache device was just
-installed. This change was required to fix the BuildChar page clearing bug
-in the interpreter. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE, but as far as
-I know, there aren't any external clients of these routines. (gschar.h,
-gschar.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.49"></a>Version 3.49 (limited) (9/20/95)</h2>
-
-<p>
-This is another bug-fix release during beta test. There are other bugs
-outstanding, but the ones I know about right now are all platform-specific.
-
-<h3><a name="V3.49_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - make.doc didn't mention that the .def files are needed to build a
-MS Windows executable. (make.doc)
-
-</pre><h3><a name="V3.49_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - There were some forward references to macro definitions in the
-makefiles. (int.mak, lib.mak)
- - The default device for library configurations was the null page
-device, not the first device in DEVICE_DEVS. (ugcclib.mak)
-
-</pre><h3><a name="V3.49_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The BJC600 / BJC800 drivers were missing a header file.
-(gdevbjc.h, gdevcdj.c)
- - A procedure name was used in two different files. (gdevcdj.c)
- - The PCX driver didn't return an error code in case of failure.
-(gdevpcx.c)
- - The X Windows driver produced some confusing warning messages.
-(gdevxini.c)
- - Some names were duplicated between drivers. (gdevepsc.c)
- - The X driver maintained its own, peculiar initial matrix even if
-Ghostview wasn't involved. (gdevx.c)
-
-With the permission of the author, changes the 24-bit TIFF license from GNU
-to Aladdin. (gdevtfnx.c)
-
-</pre><h3><a name="V3.49_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS build scripts were out of sync with the makefiles (again).
-(modules.lis, vms.mak)
-
-</pre><h3><a name="V3.49_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - When the requested media size matched an available size exactly
-with a 90 degree rotation, Orientation was ignored. (zmedia2.c)
-
-Makes zcurrentdevice extern. (opextern.h, zdevice.c)
-
-</pre><h3><a name="V3.49_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A couple of places used memcpy instead of memmove. (gxclread.c)
- - If a bitmap image was compressed with RLE compression in a band
-list, it would cause an error on decompression. (gxclread.c)
- - The representation of colors in the band list was needlessly
-inefficient. (gxcldev.h, gxclist.c, gxclread.c)
- - When using colored halftones, snowflak.ps crashed with an invalid
-memory access. More generally, any use of halftones could cause the garbage
-collector to make an invalid access. (gsstate.c)
-
-Adds some more code for paths in band lists, but again doesn't activate it.
-(gxcldev.h, gxpath.h, gzline.h, gsline.c, gspath1.c, gxclist.c, gxclread.c,
-gxpath.c)
-
-</pre>
-
-<h2><a name="Version3.48"></a>Version 3.48 (limited) (9/17/95)</h2>
-
-<p>
-This is the second bug-fix release during beta test. Among other things, it
-fixes a bug introduced in 3.47 that caused all PDF files to give an error.
-
-<p>
-******NOTE: the BJC600 and BCJ800 drivers do not work in this release,
-because we didn't get a file from the author in time. They will compile,
-but not run. This will be fixed in the next round.
-
-<h3><a name="V3.48_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - Alan Barclay's contact information was wrong. (README)
-
-</pre><h3><a name="V3.48_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The linker path for Watcom C++ 10.5 was wrong. (wccommon.mak)
- - There was a syntax error in a batch file. (pdf2ps.bat)
- - The VMS build script didn't have entries for some printers.
-(vms.mak)
-
-Adds the bjc600 and bjc800 devices on all platforms that already include the
-color DeskJet devices. (*.mak)
-
-</pre><h3><a name="V3.48_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The H-P drivers didn't reposition the cursor properly at the
-beginning of pages after the first page, causing the image to be shifted
-down slightly and cut off at the bottom. (gdevdjet.c)
- - The x11alpha driver was extremely slow. (gdevxalt.c)
- - The -g switch by itself didn't work for the X Windows driver.
-(gdevxini.c)
- - .installpagedevice can get a rangecheck on MS Windows because the
-HWColorMap can change spontaneously. (gs_setpd.ps)
-
-Updates the bjc600 and bjc800 drivers with new versions from Yves Arrouye.
-(gdevcdj.c)
-
-Adds a user-contributed driver that writes uncompressed 24-bit RGB TIFF
-images in a format that is standard on NeXT platforms. This driver is
-governed by the GNU license and is therefore separated from the rest of the
-Aladdin distribution. (gdevtfnx.c)
-
-</pre><h3><a name="V3.48_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - There was an undefined reference to clock_gettime on some Unix
-systems. (gp_unix.c)
- - The new gp_fopen routine had several errors. (gp_vms.c)
-
-</pre><h3><a name="V3.48_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Some routines that should be main-instance-specific weren't.
-(imain.h, main.h, gsmain.c)
- - sethalftone with a Type 2 or Type 4 halftone didn't work on CMYK
-devices. (zht2.c)
- - Setting A4 paper as the default in gs_init.ps, or specifying
--dPAPERSIZE, conflicted with -g. (gs_init.ps)
- - The maximum value of a single-precision float wasn't correct on
-VAX systems. (math_.h, iscannum.c)
- - Some integer expressions were passed as floating point arguments.
-(gs.c, zmedia2.c)
- - Media selection in setpagedevice was broken (again), as of 3.46.
-(gs_setpd.ps, zmedia2.c)
-
-</pre><h3><a name="V3.48_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Substituted color spaces caused an error. (gs_pdf.ps,
-pdf_draw.ps)
-
-</pre><h3><a name="V3.48_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - If a halftone had no non-default components that matched the
-device's primary colors, the result would be a solid color rather than a
-halftone using the default screen. (gsht.c)
- - sethalftone with a Type 2 or Type 4 halftone didn't work on CMYK
-devices. (gxht.h, gsht.c, gsht1.c)
- - The new gp_fopen routine wasn't being used. (gsiodev.c)
- - A mixing of float and fixed values caused a clipping region to be
-possibly incorrect by up to 1 pixel. (gspaint.c)
- - A function definition was inconsistent with the prototype.
-(gspath1.c)
-
-Adds preliminary code for including paths in band lists, but doesn't
-activate any of it. (lib.mak, gxcldev.h, gxclist.c, gxclread.c)
-
-</pre>
-
-<h2><a name="Version3.47"></a>Version 3.47 (limited) (9/14/95)</h2>
-
-<p>
-This is a bug-fix release during beta test. It is meant to have no new
-functionality, although in the case of setpagedevice that's stretching
-things a little.
-
-<h3><a name="V3.47_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The Mac documentation still referred to IJG JPEG v5a rather than
-v6. (make.doc)
- - The RasterOp texture device was identified incorrectly.
-(gdevmrop.c)
- - use.doc and psfiles.doc didn't mention the PDF-related files.
-(psfiles.doc, use.doc)
- - psview is no longer available. (README)
- - current.doc didn't document the recognized setpagedevice keys.
-(current.doc)
-
-</pre><h3><a name="V3.47_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Many utility programs weren't included in the Unix 'install' list.
-(unix-end.mak)
- - It wasn't at all convenient to make configurations without the BCP
-or other non-standard filters. (*.mak, int.mak, modules.lis, zfilter2.c,
-zfilterx.c)
- - The gconfig.c and iconfig.c files weren't deleted after
-compilation. (int.mak, lib.mak)
- - unix-end.mak referred to the nonexistent macros INT{1,2}_MAK.
-(unix-end.mak)
- - The rules for building the dfax drivers were incorrect. (devs.mak)
- - Omitting filter.dev produced an undefined reference. (int.mak)
-
-Adds a customer-contributed makefile for Microsoft Visual C++ 2.n under
-Windows NT. (msvcwint.mak)
-
-</pre><h3><a name="V3.47_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The JPEG utility didn't support the new progressive JPEG modes,
-and didn't invert Adobe Photoshop output as needed. (viewjpeg.ps)
- - The printafm utility had a single font name wired in. (printafm,
-printafm.ps)
- - The CIE lookup simulation had several bugs. (docie.ps)
- - pdf2ps[.bat] were missing from the fileset.
- - Files produced by pdf_2ps didn't include the GS_PDF ProcSet.
-(gs_pdf.ps, pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V3.47_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Bits read back from an EGA or VGA device were incorrect.
-(gdevpcfb.c)
- - The 24-bit PCX run length compressor used a slow algorithm.
-(gdevpcx.c)
- - gdevstc.c wouldn't compile with the Borland compiler. (gdevstc.c)
- - There was a typo in the OS/2 PM driver. (gdevpm.c)
- - .installpagedevice gets a rangecheck on X Windows because the
-HWColorMap can change spontaneously. (gs_setpd.ps)
- - The left margin for the DeskJet 500 was wrong. (gdevdjet.c)
- - The two notions of "margin" (offset of 0,0 from physical page
-corner vs. unprintable area around edges of physical page) were still
-confused. We've now fixed this for the H-P monochrome printers, but it's
-probably still confused for all other printers. (gdevprn.h, gdevdjet.c)
-
-</pre><h3><a name="V3.47_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The Windows print spooler header file wasn't included when it
-needed to be, and some other Win32-specific changes were missing.
-(gsdll32.def, gp_mswin.c)
- - Windows DLLs didn't parse "s in the command "arguments" correctly.
-(gsdll.c)
-
-</pre><h3><a name="V3.47_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - FAKEFONTS could get the font directories into inconsistent states.
-(gs_dps1.ps, gs_fonts.ps)
- - The substitutions for Adobe's Myriad and Minion fonts weren't
-appropriate. (gs_fonts.ps)
-
-</pre><h3><a name="V3.47_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - If pathforall got an error computing the user-space points on a
-path, it could cause an invalid access. (zpath1.c)
- - A 'private' declaration were omitted. (Why doesn't gcc catch
-this??) (zcie.c)
- - Setting GS_FONTPATH produced a stackunderflow error.
-(gs_fonts.ps)
- - currentscreen caused a typecheck if the screen had been set by
-setcolorscreen. (gs_dps1.ps)
- - setcolorrendering tried to cache values computed from the color
-space even if the current color space wasn't a CIE space. (zcrd.c)
- - Out-of-range numbers like 10E38 caused a floating point exception.
-(iscannum.c)
- - Giving a closed readable file as input for a filter caused an
-invalidaccess. (files.h, interp.c, zfilter.c)
- - setpagedevice opened the default device even with -dNODISPLAY.
-(gs_init.ps, gs_setpd.ps)
- - realtime returned the same value as usertime. (gs_lev2.ps,
-zmisc.c)
- - Storing a local value into systemdict caused some redundant code
-to be executed. (zdict.c)
- - Files with a very long first line could cause a rangecheck error.
-(gs_init.ps)
- - The PageOffset page device parameter was ignored. (gs_setpd.ps)
- - The Orientation page device parameter wasn't handled properly.
-(gs_setpd.ps, idparam.h, idparam.c, zmedia2.c)
- - setpagedevice could set device parameters twice, with an
-incomplete update the first time. (gs_setpd.ps)
-
-</pre><h3><a name="V3.47_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Readers confused the internal pdfrun procedure with the public
-runpdf procedure. (pdf_*.ps)
-
-</pre><h3><a name="V3.47_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Closed streams had a NULL state pointer, causing problems for some
-clients. (stream.c)
- - Group 4 decoding could get an ioerror if an end-of-buffer occurred
-in a horizontal code sequence between a makeup code and the termination
-code. (scfd.c)
-
-</pre><h3><a name="V3.47_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some 'private' declarations were omitted. (Why doesn't gcc catch
-these??) (gdevmrop.c, gxht.c)
- - Patterns could produce bad output in the band list. (gxclist.c)
- - RasterOp wasn't implemented at all for 2- or 4-bit devices. (In
-this release, we implement only a subset, and without handling transparency
-properly.) (gdevm2.c, gdevm4.c, gdevmrop.c)
- - Drawing operations and text sometimes didn't apply the RasterOp
-when they should, and vice versa. (gxdcolor.h, gxdraw.c)
- - setcolorrendering tried to cache values computed from the color
-space even if the current color space wasn't a CIE space. (gscie.h,
-gscie.c)
- - Some CIE color spaces produced very distorted colors. (gscie.c)
- - setpagedevice opened a window even with -dNODISPLAY. (gsdevice.c,
-gsdparam.c)
- - realtime returned the same value as usertime. (gp.h, time_.h,
-gp_*.c)
- - The library level attempted to handle the Orientation page device
-parameter. (gxdevice.h, gdevbit.c, gsdevice.c, gsdparam.c, gspath.c)
- - Severely non-linear CIE encoding/decoding functions produced
-seriously skewed colors near the ends of the color value range. This
-problem can now be alleviated, at a significant cost in performance, by
-changing configuration parameters at the beginning of gscie.h. (gscie.h,
-gscie.c)
- - Files FTP'ed in binary mode weren't being opened properly on VMS.
-(gp.h, gp_*.c, gsiodev.c)
- - A header file had an inconsistent declaration. (math_.h)
-
-Adds a new gp_get_usertime procedure to gp.h. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE, affecting only platform implementors. It
-was necessary to fix the realtime/usertime bug. (gp.h, time_.h, gp_*.c)
-
-Adds a new gp_fopen procedure to gp.h. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE, affecting only platform implementors. It was necessary to fix the
-binary file problem on VMS. (gp.h, gp_*.c)
-
-</pre>
-
-<h2><a name="Version3.46"></a>Version 3.46 (limited) (9/4/95)</h2>
-
-<p>
-This is the "serious beta test" release for the next public release. It
-finishes implementing RasterOp in the graphics state, and the remaining
-commonly used parts of setpagedevice.
-
-<h3><a name="V3.46_Documentation"></a>Documentation</h3><pre>
-Documents some possible problems when building with DJGPP v2.0-beta.
-(make.doc)
-
-Adds documentation on using Ghostscript as a PDF interpreter. (use.doc)
-
-Notes linking problems with the Watcom 10.0 environment. (make.doc)
-
-</pre><h3><a name="V3.46_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The rule for $(ccfonts).dev was wrong. (gs.mak)
-
-Makes some additional filters into 'features'. (devs.mak, gs.mak)
-
-Splits off 2 new makefiles from gs.mak, which had gotten very large: lib.mak
-(graphics library) and int.mak (interpreters). (tar_cat, tar_cat.bat,
-*.mak)
-
-Adds a new 'config-clean' target that may be helpful in changing
-configuration definitions. (gs.mak)
-
-Notes in the relevant makefiles that on Unix and DVX systems, one should not
-edit 'makefile' or the concatenated makefile, but should edit the individual
-subfile and run tar_cat. (ansihead.mak, cc-head.mak, dgc-head.mak,
-gcc-head.mak, devs.mak)
-
-Updates the Watcom makefiles to handle Watcom release 10.5, in which many
-executables moved to different directories. (watc.mak, watcwin.mak,
-wccommon.mak)
-
-Adds a pdf2ps shell script. (pdf2ps, pdf2ps.bat)
-
-Adds a -sFONTMAP= switch to specify the name of the Fontmap file.
-(gs_fonts.ps)
-
-Adds a -u&lt;name&gt; switch to undefine a name from systemdict. (interp.h, gs.c,
-iinit.c)
-
-Adds a -dFIXEDRESOLUTION switch to parallel -dFIXEDMEDIA. Makes -g set
-FIXEDMEDIA and -r set FIXEDRESOLUTION. (gs_init.ps, gs_setpd.ps, gs.c)
-
-Changes some build procedures to avoid problems with read-only source files.
-(gs.mak, int.mak, lib.mak)
-
-</pre><h3><a name="V3.46_Utilities"></a>Utilities</h3><pre>
-
-Adds a utility for emulating the CIE color mapping algorithms. (docie.ps)
-
-</pre><h3><a name="V3.46_Drivers"></a>Drivers</h3><pre>
-
-Changes the x11alpha device so that it uses 32-bit pixels with 8 bits of
-alpha. (gdevxalt.c)
-
-Updates the Epson Stylus Color driver to Gunther Hess's release 1.17.
-(devs.mak, unix-end.mak, devices.doc, stcolor.ps, gdevstc.h, gdevstc*.c)
-
-Updates the alternate X drivers for the change from PageSize to MediaSize.
-(gdevxalt.c)
-
-Makes Duplex an optional parameter of printer devices rather than of all
-devices. (gdevprn.h, gxdevice.h, gsdparam.c, gdevdjet.c, gdevprn.c)
-
-</pre><h3><a name="V3.46_Platforms"></a>Platforms</h3><pre>
-
-Makes pipes (%pipe% file syntax) a selectable option on Unix platforms,
-rather than always being included. (ansihead.mak, cc-head.mak,
-gcc-head.mak, ugcclib.mak, unixtail.mak)
-
-</pre><h3><a name="V3.46_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - colorimage, and the dictionary form of image with
-MultipleDataSources = true, didn't check that all the data sources were of
-the same type. (zpaint.c)
- - colorimage, and dictionary-type images with MultipleDataSources =
-true, usually didn't work properly with files. (zpaint.c)
- - grestoreall left a dangling pointer to the transfer function
-cache. (gsstate.c)
- - Changes made by setpagedevice could get 'lost' and not installed
-in the current page device dictionary. (gs_setpd.ps)
- - The Install procedure was called before the new page device
-dictionary had gotten installed. (gs_setpd.ps)
- - If a grestore/grestoreall/restore/setgstate operation switched
-page devices, the new page device didn't get installed properly.
-(gs_setpd.ps, opextern.h, zdevice2.c, zdps1.c)
- - If the current screen was a Type 1 halftone, currentscreen and
-currentcolorscreen returned frequency = 60, angle = 0 rather than the
-Frequency and Angle from the halftone (see Adobe TN 5085). (gs_dps1.ps,
-gs_init.ps)
- - setscreen with a Type 1 halftone dictionary didn't insert the
-frequency and angle into the dictionary (see Adobe TN 5085). (gs_dps1.ps)
- - upath didn't include a trailing moveto in the bounding box.
-(gs_dps1.ps, zpath1.c)
- - setpagedevice didn't automatically rotate or scale the image when
-necessary. (gs_setpd.ps, zmedia2.c)
-
-Moves the RasterOp operators to a separate file. (iutil.h, iutil.c,
-zgstate.c, zrop.c)
-
-Eliminates the unnecessary "wrapper" around .setdevice. (zdevice2.c)
-
-Establishes the convention that all interpreter callbacks into PostScript
-code use procedure names that begin with %; documents this in gs_init.ps.
-Changes Type1BuildChar and Type1BuildGlyph to %Type1BuildChar and
-%Type1BuildGlyph. (gs_init.ps, gs_type1.ps, zfont0.c, zfont1.c)
-
-Changes image / imagemask / colorimage for the new library API. (zimage2.c,
-zpaint.c)
-
-Reorganizes font loading to make compiled fonts and Fontmap interact better
-with each other. (gs_ccfnt.ps, gs_fonts.ps, gs_init.ps, gs_res.ps)
-
-Implements parameter collection for the new CIEBasedDEF[G] color spaces, but
-doesn't actually implement the color spaces themselves. (icie.h, zcie.c,
-zcrd.c)
-
-Renames iconfig.c as iconf.c to avoid problems with read-only source files.
-(iconf.c)
-
-</pre><h3><a name="V3.46_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - PDF to PostScript conversion didn't work. (pdf_main.ps)
-
-Shifts most of the work in the PDF interpreter from the reader to the
-ProcSet. This simplifies the code considerably and also makes it easier to
-modify. (gs_pdf.ps, pdf_draw.ps, pdf_font.ps, pdf_main.ps)
-
-</pre><h3><a name="V3.46_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - 'static' was omitted in a place that some compilers require it.
-(gxccman.c)
- - Some compilers don't allow a variable with the same name as a
-preprocessor macro with arguments. (gscie.c)
- - Some places did a "return -1" rather than a proper error return.
-(gsdevice.c, gxclist.c)
- - An external declaration had a typo. (gsrop.h)
- - An extra semicolon upset some compilers. (gzpath.h)
- - Printer devices that didn't use the standard macros for generating
-their procedure vector wound up being considered as non-page devices.
-(gdevprn.c)
- - Some compilers truncated identifiers longer than 31 characters.
-(gscspace.h, zcie.c, gscie.c)
- - upath didn't include a trailing moveto in the bounding box.
-(gspath.h, gspath1.c)
- - RasterOp value 126 returned an incorrect result. (gsroptab.c)
-
-Finishes implementing RasterOp in the graphics state. (gdevmrop.h, gsrop.h,
-gsropt.h, gsstate.h, gxbitmap.h, gxcindex.h, gxdcolor.h, gxdevice.h,
-gzstate.h, gdevmrop.c, gscolor.c, gsdevice.c, gsimage.c, gsimage1.c,
-gsimage2.c, gsimage3.c, gspcolor.c, gsrop.c, gsstate.c, gxacpath.c,
-gxccache.c, gxcht.c, gxcmap.c, gxdither.c, gxdraw.c, gxht.c)
-
-Changes forwarding devices so they forward get_bits by default. This
-probably doesn't affect any existing code. (gxdevice.h, gsdevice.c)
-
-Changes the API for gs_image[mask]_init to pass a structure rather than a
-very large number of scalars. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE,
-motivated by the addition of further image parameters to support RasterOp.
-Since there are no external clients of the library yet, it shouldn't matter.
-(gsimage.h, gsimage.c, gslib.c, gxccache.c)
-
-Redefines the device "page size" as being the size of the actual media,
-changing the name of the gx_device PageSize member to MediaSize, the name of
-the PageSize device parameter to .MediaSize (but keeping PageSize as
-equivalent, for backward compatibility), and the name of the
-gx_device_set_page_size procedure to gx_device_set_media_size (keeping the
-old name as a macro). THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. It is
-necessary to make setpagedevice work, and to avoid confusion about what
-"page size" means. It potentially affects any device driver, but almost
-none of the device drivers distributed with Ghostscript are affected, and
-those have been updated. (gsparam.h, gxdevice.h, gsdevice.c, gsdparam.c,
-gspath.c)
-
-Renames gconfig.c as gconf.c to avoid problems with read-only source files.
-(gconf.c)
-
-Adds an API procedure for setting a bitmap pattern. (gscolor2.h,
-gspcolor.c)
-
-</pre>
-
-<h2><a name="Version3.45"></a>Version 3.45 (limited) (8/27/95)</h2>
-
-<p>
-The purpose of this release is to fix some minor bugs reported by commercial
-licensees, and to add two enhancements: optional RenderTable interpolation
-for CIE color, and reducing the temporary space used during character
-caching (also for a licensee).
-
-<h3><a name="V3.45_Documentation"></a>Documentation</h3><pre>
-
-Notes that the only valid return values from get_alpha_bits are 1, 2, and 4.
-(drivers.doc)
-
-Notes that the get_bits driver procedure will return a pointer to aligned
-data, but does not require the caller's data area to be aligned.
-(drivers.doc)
-
-</pre><h3><a name="V3.45_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Many of the printer and file output drivers in devs.mak still
-included gdevprn.$(OBJ) in their dependencies. (devs.mak)
- - PDEVH was used before it was defined. (devs.mak)
- - GENCONF_XE was used before it was defined. (unixhead.mak,
-unix-end.mak)
-
-Makes it possible to switch sfile implementations without editing gs.mak.
-(gs.mak)
-
-Makes it possible to specify alternate compiled font tables without editing
-gs.mak. (gs.mak)
-
-Allows quoted arguments in @-files, e.g.,
- -sOutputFile="a file name with spaces"
-(gs.c)
-
-</pre><h3><a name="V3.45_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The ps2ascii script could fail to delete temporary files in case
-of an abnormal exit. (ps2ascii)
-
-</pre><h3><a name="V3.45_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The MS Windows printer capability test was wrong. (gdevwpr2.c)
- - The MS Windows and OS/2/PM displays weren't page devices.
-(gdevwdib.c, gdevpm.c)
-
-Gets rid of all direct references to dev-&gt;PageSize in drivers. (gdevl256.c,
-gdevvglb.c)
-
-</pre><h3><a name="V3.45_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The 32-bit MS Windows configuration file for the Borland C++
-compiler was missing from the fileset. (bcc32.cfg, tar_gs)
-
-Makes the printer devices in the OS/2 implementation capable of outputting
-directly to the print spooler. (use.doc, gp_os2.c)
-
-Makes printing on Windows NT and Windows 95 use the printer queue.
-(gp_mswin.c, gswin32.rc)
-
-</pre><h3><a name="V3.45_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Copying a null device produced an uninitialized pointer.
-(gsdevice.c)
- - The dictionary returned by deviceinfo wasn't read-only.
-(gs_lev2.ps)
- - If a filter's init code failed, an entry on the operand stack
-(usually the top) could be smashed. (files.h, zfile.c, zfilter.c)
-
-Adds const in a few places that needed it. (zwppm.c)
-
-Adds interpolation to the CIE RenderTable lookup. (icie.h, zcie.c, zcrd.c)
-
-</pre><h3><a name="V3.45_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Allows PDF files with control-character garbage at the end, and up to 250
-characters of garbage at the beginning. The latter is only supported by
-runpdf, not by run. (pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V3.45_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - A 1-D CCITTFaxDecode stream could give an error if an input buffer
-boundary fell just before a 0-length termination code. (scfx.h, scfd.c)
-
-</pre><h3><a name="V3.45_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A variable was used before being set, which could cause band
-devices to become confused when processing colored halftones. (gxclist.c)
- - Some of the color and tile bookkeeping for band lists was wrong
-(as of 3.44), causing tiled areas to be filled with garbage. (gxclist.c,
-gxclread.c)
- - Colored Patterns showed up blank on devices whose native
-representation of `black' was a non-zero value. The fix removes the
-'cached' member of the gx_device structure, and requires monobit memory
-devices to have a palette; this is a NON-BACKWARD-COMPATIBLE CHANGE for
-anyone who was foolish enough to statically initialize a gx_device structure
-without using the macros in gxdevice.h or gdevprn.h. (gdevmem.h,
-gxdevice.h, gxdevmem.h, gdevm1.c, gdevmrop.c, gsdevice.c, gxcpath.c,
-gxdither.c)
-
-Provides the framework for band devices to implement alpha (anti-aliasing).
-(gxcldev.h, gdevprn.c, gsdevice.c, gxclist.c, gxclread.c)
-
-Implements an efficient API for enumerating paths using device coordinates.
-(gspath.h, gxpath.h, gzpath.h, gspath1.c, gxpath2.c)
-
-Changes the character cache logic so that when rasterizing large
-anti-aliased characters, it converts the oversampled bits to alpha values on
-the fly rather than waiting until it has rasterized the entire character.
-This saves a lot of temporary space, at the expense of some extra time and
-lower quality results for Type 3 characters that don't use a single fill or
-imagemask operation to draw the character. This enhancement requires adding
-a member to the gx_device structure (max_fill_band), which is a
-NON-BACKWARD-COMPATIBLE CHANGE for badly written drivers (see above).
-(gxchar.h, gxdevice.h, gxpaint.h, gdevabuf.c, gschar.c, gspaint.c,
-gxccache.c, gxccman.c, gxfill.c)
-
-Changes the palette member of memory devices from gs_string to
-gs_const_string. (gdevmem.h, gxdevmem.h, gdevmem.c, gdevm1.c)
-
-Starts to decouple halftoning from the graphics state machinery, so
-it can be applied after banding rather than before. (gxdcolor.h,
-gxdht.h, gxdither.h, gzht.h, gxcmap.c, gxdither.c, gxdraw.c)
-
-Starts to decouple path filling from the graphics state machinery, so
-that we can pass paths through band lists. (gxpaint.h, gxfill.c)
-
-Adds interpolation to the CIE RenderTable lookup. This is optional, enabled
-by #define CIE_RENDER_TABLE_INTERPOLATE in gscie.h. (gscie.h, gxctable.h,
-gscie.c, gxctable.c)
-
-</pre>
-
-<h2><a name="Version3.44"></a>Version 3.44 (limited) (8/21/95)</h2>
-
-<p>
-This includes a few bug fixes, but its main purpose is to add two new
-features: monobit and 8-bit gray-scale RasterOp (at the driver level, not at
-the gstate level yet), and (compressed) band lists in RAM. Of course, these
-new features may have introduced new bugs!
-
-<h3><a name="V3.44_Documentation"></a>Documentation</h3><pre>
-Adds contact information for a user working on NeXT machines. (README)
-
-Notes that Ghostscript runs on FreeBSD. (README)
-
-Adds copy_rop (the RasterOp operation) to the driver interface.
-(drivers.doc)
-
-Adds FONTPATH information for more operating systems. (use.doc)
-
-</pre><h3><a name="V3.44_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The tar_cat script needed a #!/bin/sh to execute correctly on all
-platforms. (tar_cat)
- - There were a number of minor errors in the makefiles. (gs.mak,
-unixhead.mak)
- - Level 2 configurations without command lists had two undefined
-references. (gs.mak)
- - Some shells required an extra ';' to terminate an 'if' command.
-(ugcclib.mak, unix-end.mak, unixtail.mak)
-
-Updates the JPEG code to the officially released version 6 of the IJG
-library. See jpeg.mak for information on where to find this library.
-(jpeg/*, jpeg.mak, *.mak, modules.lis)
-
-Adds a definition of XEAUX to the makefiles to parallel CCAUX, primarily for
-cross-compilation environments. All references to &lt;some-program&gt;$(XE) must
-be replaced by $(&lt;SOME-PROGRAM&gt;_XE), where some-program={$(GS), ansi2knr,
-echogs, genarch, genconf, geninit}. This is a NON-BACKWARD-COMPATIBLE
-CHANGE, required in order for the makefiles to work in cross-compiled
-environments. (For non-cross-compiled environments, it currently doesn't
-matter.) (gs.mak, *.mak)
-
-</pre><h3><a name="V3.44_Utilities"></a>Utilities</h3><pre>
-
-Updates ps2ai.ps to version 2.13. (ps2ai.ps)
-
-Changes all the utility shell scripts to include #!/bin/sh, to use exec, and
-to pass the original arguments using "$@". (bdftops, font2c, gsbj, gsdj,
-gslj, gslp, gsnd, wftopfa)
-
-</pre><h3><a name="V3.44_Drivers"></a>Drivers</h3><pre>
-
-Adds the requirement that all page-oriented devices (i.e., those that use
-gdevprn.h and implement the print_page procedure) include page.dev in their
-dependencies and use $(SETPDEV) rather than $(SETDEV) in their makefile rule
-bodies. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. Without this change, the
-command list logic (over 25K of unnecessary object code) would have to be
-included in every configuration. (gs.mak, devs.mak, echogs.c)
-
-Adds a user-contributed driver for the Okidata Microline (IBM compatible)
-dot matrix printers. (gdevokii.c)
-
-Adds copy_rop (the RasterOp operation) to the driver interface. Currently,
-only monobit and 8-bit gray-scale devices implement it. (gxdevice.h,
-gsdevice.c)
-
-Adds the ability to read back bits from the display to the x11 devices.
-(x_.h, gdevx.c, gdevxalt.c)
-
-</pre><h3><a name="V3.44_Platforms"></a>Platforms</h3><pre>
-
-Makes some minor changes to support QNX. (stat_.h)
-
-Removes the mswinprn driver from the 16-bit Windows configuration, because
-the 64K default data segment overflowed. (bcwin.mak)
-
-</pre><h3><a name="V3.44_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Type 1 fonts didn't accept packed arrays for Subrs or OtherSubrs.
-(zchar1.c, zfont1.c)
- - TBCP-encoded files (yes, I know there isn't supposed to be any
-such thing) didn't automatically activate TBCP decoding. (gs_init.ps)
- - Fonts with invalid FID entries weren't detected. (zfont.c)
-
-Speeds up dictionary operations slightly by removing redundant checks for
-nulls. (zdict.c)
-
-Starts adding support for the new CIEBasedDEF and CIEBasedDEFG color spaces.
-(gs_l2img.ps, gs_lev2.ps, igstate.h, zcrd.c)
-
-Adds access operators for RasterOp and transparency in the graphics state.
-(They don't actually do anything yet.) (zgstate.c)
-
-</pre><h3><a name="V3.44_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - PDFDocEncoding was missing characters 24-31. (gs_pdf_e.ps)
-
-Moves the definition of pdfmark from systemdict to userdict so that Adobe
-PostScript files won't think the interpreter is a distiller. (gs_pdf.ps)
-
-</pre><h3><a name="V3.44_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some JPEG images had bands of garbage alternating with bands of
-valid data. IJG v6 fixed this -- see above.
- - With FPU_TYPE = -1, the cosine routine returned incorrect values
-for angles above 270 degrees. (gsmisc.c)
- - CIE color conversion didn't work on 16-bit systems. (gscie.h,
-gscie.c)
-
-Partially implements reducing the intermediate space for rasterizing
-anti-aliased characters by compressing the oversampled representation to an
-alpha array incrementally. (gdevmem.h, gxchar.h, gxdevmem.h, gdevabuf.c,
-gschar.c, gspaint.c, gxccman.c)
-
-Starts adding support for the new CIEBasedDEF and CIEBasedDEFG color spaces.
-(gscie.h, gscspace.h, gscie.c)
-
-Completes the implementation of band lists in RAM. To select this feature,
-change the definition of cl_impl in gs.mak from clfile to clmem. (Someday
-we'll make this easier.) (gxclmem.h, gxclmem.c)
-
-Finishes implementing RasterOp and transparency at the driver level for
-monobit and 8-bit gray-scale devices, and implements some of the framework
-for general multiple-bit-per-pixel devices. See drivers.doc for
-documentation. (gsropt.h, gxcldev.h, gxclist.h, gdevm1.c, gdevm8.c,
-gdevmem.c, gdevmrop.c, gschar.c, gxclist.c, gxclread.c)
-
-Implements the ability to include commands applicable to all bands, rather
-than an individual band, in the band list. Eventually this will be used for
-passing halftones through the band list. (gxcldev.h, gxclist.h, gxclist.c)
-
-Adds support for 2-bit-deep 'word' memory devices. (gdevmem.h, gxdevmem.c,
-gdevm2.c)
-
-Changes the initialization for memory devices so that they determine their
-polarity from the device for which they are buffering the image (if any).
-This is a subtle change. (gdevmem.h, gdevmem.c, gdevm1.c, gsdevmem.c)
-
-</pre>
-
-<h2><a name="Version3.43"></a>Version 3.43 (limited) (8/10/95)</h2>
-
-<p>
-Fixes a few more minor bugs, and changes FEATURE selection back to
-essentially the way it was before 3.41.
-
-<h3><a name="V3.43_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - A ~ was missing in a URL. (README)
-
-Adds information about an Amiga port of Ghostscript. (README)
-
-Removes a file called gs.1.c, which appears to be an obsolete version of
-gs.1.
-
-Adds DCX documentation to the PCX driver. (We don't support DCX yet, but we
-might in the future.) (gdevpcx.c)
-
-Adds information about getting Type 1 fonts from H-P if you have an H-P
-PostScript printer. (use.doc)
-
-</pre><h3><a name="V3.43_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The auxiliary programs wouldn't compile with ANSI compilers that
-don't accept K&amp;R syntax. (ccgs, gs.mak, ugcclib.mak, *head.mak,
-unixtail.mak, echogs.c, genarch.c, genconf.c, geninit.c)
-
-Reinstates FEATURE_DEVS in the makefiles, getting rid of FEATURE1..10. THIS
-IS A NON-BACKWARD-COMPATIBLE CHANGE, but it puts things back the way they
-were before 3.41, with one exception: compiling the PostScript
-initialization code into the executable is now a separate macro
-COMPILE_INITS with a definition of 0 or 1, instead of the ccinit 'feature'.
-(gs.mak, *.mak, fonts.doc, make.doc)
-
-Adds a CCLEAF macro to the makefiles, for optimizing the compilation of
-modules containing only leaf procedures. (gs.mak, *.mak)
-
-Adds a CONFIG makefile variable that helps in maintaining multiple variants
-in a single directory. (gs.mak, *.mak)
-
-</pre><h3><a name="V3.43_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - An extern for exit() (in &lt;stdlib.h&gt;) was omitted. (gp_vms.c)
-
-</pre><h3><a name="V3.43_Fonts"></a>Fonts</h3><pre>
-
-Reorganizes the compiled font facility so that fonts can be compiled and
-turned into a library by third parties. (gs.mak, font2c.ps, gs_ccfnt.ps,
-ccfont.h, iccfont.c, ccfontab.c)
-
-</pre><h3><a name="V3.43_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - internaldict was implemented as a dictionary in systemdict and an
-operator in userdict, rather than as an operator in systemdict. This caused
-a noaccess error when loading certain Type 1 fonts. (gs_init.ps,
-gs_type1.ps)
- - xfonts couldn't handle modified encodings. (zfont2.c)
-
-Changes the build date printout in the help message to YYYY-MM-DD. (gs.c)
-
-Adds native support for Multiple Master fonts (WeightVector). (zfont1.c)
-
-Implements sin and cos more efficiently (by table lookup with linear
-interpolation) on machines with slow (or no) floating point. (zmath.c)
-
-Separates out the code for 'reading' the .ps initialization files, for the
-new COMPILE_INITS arrangement. (imain.h, gconfig.c, gsmain.c, iconfig.c,
-iccinit0.c, iinit.c)
-
-</pre><h3><a name="V3.43_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxDecode filter could read up to 3 bytes beyond EOD.
-This fix doesn't quite cover all cases, but at least it makes things better.
-(ghc.h, sbhc.c, scfd.c)
-
-</pre><h3><a name="V3.43_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - After a nocurrentpoint error from a show operation with a
-composite font, the bookkeeping was confused and could cause an access
-error. (gschar.c)
- - xfonts couldn't handle modified encodings. (gsccode.h, gxchar.h,
-gxfont.h, gxxfont.h, gschar.c, gxccache.c)
-
-Makes .charboxpath able to use cached character information. (gxchar.h,
-gschar.c)
-
-Adds native support for Multiple Master fonts (OtherSubrs 14-18).
-(gxfont1.h, gstype1.c)
-
-Improves the hashing functions for the character cache. (gxfcache.h,
-gxccman.c)
-
-Adjusts the character oversampling algorithm to reduce thickening for
-devices with alpha capability. (gsbitops.c)
-
-Improves the encoding of the band list for certain kinds of small
-rectangles. (gxcldev.h, gxclist.c, gxclread.c)
-
-Implements sin and cos efficiently on machines with slow (or no) floating
-point. (gxfarith.h, gsmatrix.c, gsmisc.c, gspath1.c)
-
-</pre>
-
-<h2><a name="Version3.42"></a>Version 3.42 (limited) (8/2/95)</h2>
-
-<p>
-Fixes a few significant problems in 3.41, and brings the DLL code up to
-date.
-
-<h3><a name="V3.42_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - language.doc still referred to rectappend rather than .rectappend.
-(language.doc)
-
-Adds documentation on the Macintosh port. (readme, make.doc)
-
-Updates the DLL documentation. (dll.doc)
-
-Documents the BCP and TBCP filters as non-experimental. (language.doc)
-
-</pre><h3><a name="V3.42_Procedures"></a>Procedures</h3><pre>
-
-Changes the build date printout to YYYY-MM-DD. (gs_init.ps)
-
-</pre><h3><a name="V3.42_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS build script had gotten out of sync with the makefiles
-(again). (vms.mak, modules.lis)
-
-Brings the MS Windows and OS/2 platforms up to date with the rest of the
-code, including DLL support for OS/2. (os2.mak, gsdll*.def, gdevswn.c,
-gdevpm.c, gdevwdib.c, gp_mswin.c, gp_os2.c, gsdll.c, gsmain.c)
-
-Adds a new platform-specific routine gp_do_exit, as an alias for the C
-library `exit' call. (gp.h, gsdll.c, gsmain.c, gp_*.c)
-
-</pre><h3><a name="V3.42_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - .forgetsave at the outermost level didn't clear the l_new bit,
-causing changes to be undone improperly. (isave.c)
- - A 'void' formal parameter list upset some compilers (as it should
-have). (gsmain.c)
-
-Adds a .charboxpath operator that appends to the current path the bounding
-boxes of the characters of a string. (zchar.c, zchar1.c)
-
-</pre><h3><a name="V3.42_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - A procedure was declared private inconsistently. (siscale.c)
-
-</pre><h3><a name="V3.42_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The library test program didn't do a necessary initial gsave.
-(gslib.c)
- - The fix for landscape monobit images in 3.41 could smash memory.
-(gsimage1.c)
- - 1-pixel-wide lines drawn with image or imagemask still disappeared
-sometimes. (gsimage.c)
-
-Does some more preparatory work for the implementation of command lists in
-RAM. (gdevprn.h, gxclio.h, gxclist.h, gxclfile.c, gxclist.c, gxclread.c)
-
-Adds a gs_charboxpath procedure that appends to the current path the
-bounding boxes of the characters of a string. (gschar.h, gscpm.h,
-gstype1.h, gxchar.h, gxpath.h, gxtype1.h, gzstate.h, gschar.c, gspaint.c,
-gstype1.c, gxpath.c)
-
-</pre>
-
-<h2><a name="Version3.41"></a>Version 3.41 (limited) (7/27/95)</h2>
-<p>
-Another incremental release with bug fixes and customer-requested
-enhancements. This release was intended to include the full setpagedevice
-media matching and adjustment algorithm, but we discovered some
-architectural problems during development, and have postponed it.
-
-<h3><a name="V3.41_Documentation"></a>Documentation</h3><pre>
-
-Replaces the build instructions for NeXTSTEP with more up-to-date and
-accurate ones. (make.doc)
-
-Notes that some extra manual steps are required when cross-compiling.
-(make.doc)
-
-Documents how to define new 'features' in the makefile. (gs.mak)
-
-</pre><h3><a name="V3.41_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The build rule for ccinit.dev was circular. Fixing this required
-a small but NON-BACKWARD-COMPATIBLE change in the way that features are
-selected in the makefiles (FEATURE_DEVS replaced by FEATURE1..10). (*.mak,
-fonts.doc, make.doc)
-
-Changes the build rule for gconfig.h to be less likely to overrun MS-DOS's
-command line length limit. (gs.mak)
-
-Adds a -dFIXEDMEDIA switch to indicate that the media size should be
-considered fixed after initialization. (gs_init.ps)
-
-</pre><h3><a name="V3.41_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - traceimg.ps incorrectly referred to .stdout. (traceimg.ps)
- - prfont.ps didn't display unencoded characters correctly.
-(prfont.ps)
- - ps2epsi didn't give correct bounding box information. (ps2epsi,
-ps2epsi.ps)
- - ps2epsi produced DSC comments that didn't fully conform to the
-Adobe standard. (ps2epsi, ps2epsi.ps)
-
-Allows viewpbm.ps to take multiple files on the command line. (viewpbm.ps)
-
-</pre><h3><a name="V3.41_Drivers"></a>Drivers</h3><pre>
-
-Adds a preliminary, contributed PNG driver. THIS IS NOT USABLE YET -- DON'T
-TRY TO USE IT. (png.mak, gdevpng.c)
-
-Increases the maximum allowable scan line width for the TIFF drivers from
-5183 pixels to 12863 pixels. (scf.h)
-
-</pre><h3><a name="V3.41_Platforms"></a>Platforms</h3><pre>
-
-Updates the MS Windows DLL code to export the new, suspendable run_string
-interface. (gsdll.h, gsdll.c, dll.doc)
-
-</pre><h3><a name="V3.41_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - There were several errors in cfonts.mak. (cfonts.mak)
- - The compiled fonts option didn't offer both free and standard
-configurations. (gs.mak)
- - A bug in the handling of Encoding resources prevented compiled
-fonts from working. (gs_res.ps)
-
-Adds a little more support for CID-keyed fonts. They still aren't anywhere
-near usable. (gs_cidfn.ps, gs_type1.ps)
-
-Adds a new Fontmap for Solaris 2.3. (Fontmap.Solaris)
-
-Adds support for Type 4 fonts (Type 1 fonts with their own BuildChar
-procedures), including the CCRun procedure in internaldict. (gs_fonts.ps,
-gs_res.ps, gs_type1.ps)
-
-</pre><h3><a name="V3.41_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - showpage and copypage didn't honor NumCopies in a page device.
-(gs_setpd.ps, zdevice2.c)
- - currentpagedevice returned incorrect information if the current
-device wasn't a page device. (gs_setpd.ps)
- - currentpagedevice didn't guarantee the presence of InputAttributes
-and OutputAttributes. (gs_setpd.ps)
- - The l_new bit wasn't set properly when a dictionary changed from
-packed to unpacked keys, leading to unnecessary saves. (idict.c)
- - Streams requiring intermediate buffering could read ahead too far,
-causing input data to be skipped. (zfilter.c)
- - cshow didn't reset the font to the base font when calling the
-procedure. (zchar2.c)
- - The Install procedure in a page device didn't set the default CTM.
-(gs_setpd.ps, zmatrix.c)
- - findlibfile didn't handle special files like %stdin correctly.
-(zfile.c)
- - setpagedevice didn't implement media matching. (gs_setpd.ps,
-zdevice2.c, zmedia2.c, zmatrix.c)
- - Some floating point numbers didn't print out with enough digits to
-read back in with the identical value. (iutil.c)
- - Integers that overflowed 31 bits (but not 32 bits) were converted
-to negative integers rather than correct positive reals. (iscannum.c)
-
-Removes an experimental operator that called the image scaling/interpolation
-code. (zimage2.c)
-
-Adds a -sSUBSTFONT=&lt;fontname&gt; switch that substitutes the given font for all
-unknown fonts, bypassing the normal intelligent substitution algorithm.
-(gs_fonts.ps)
-
-Adds the Revision system parameter. (zmisc2.c)
-
-Adds a .knownundef operator that does an undef and returns true iff the key
-was formerly present. (zdict.c)
-
-Makes the maximum length of names be 256 if EXTEND_NAMES is being used, 16K
-otherwise. (inamedef.h, iname.c)
-
-Adds internaldict. (gs_init.ps, iinit.c)
-
-Adds support for Type 4 fonts. (bfont.h, zchar.c, zchar1.c, zfont1.c,
-zfont2.c)
-
-Changes .encodingdict to EncodingDirectory, for compatibility with Adobe
-interpreters. (gs_init.ps, gs_kanji.ps, gs_res.ps)
-
-Adds superexec, an undocumented operator that is equivalent to exec but
-suppresses all invalidaccess checks. NOT COMPLETED YET; currently superexec
-is equivalent to exec. (zcontrol.c)
-
-</pre><h3><a name="V3.41_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - .stderr was used but is no longer defined. (pdf_base.ps)
-
-</pre><h3><a name="V3.41_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Not all streams initialized their state pointer. (stream.c,
-sfile.c, sfileno.c)
-
-Adds a filter for the smoothed image scaling algorithm. Eventually this
-filter will require very little intermediate storage; right now it still
-needs to buffer the entire intermediate image. (siscale.h, siscale.c)
-
-Increases the maximum allowable scan line width for the CCITTFaxEncode
-filter from 5183 pixels to 12863 pixels. (scf.h)
-
-</pre><h3><a name="V3.41_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - setpagedevice didn't update NumCopies correctly. (gdevprn.c,
-gsdparam.c)
- - The newly optimized code for monobit bitmaps could cause an
-out-of-bounds memory access and/or make unaligned references. (gsimage1.c)
- - setpagedevice with unknown keys could cause an /undefined error.
-(gsdparam.c)
- - cshow didn't reset the font to the base font when calling the
-procedure. (gschar.h, gschar.c)
- - The Install procedure in a page device didn't set the default CTM.
-(gzstate.h, gschar.c, gscoord.c, gsdevice.c)
- - Very non-linear EncodeABC procedures in a color rendering
-dictionary could produce very inaccurate results. (gscie.h, gscie.c)
- - The line_ptrs pointer in memory devices didn't get relocated if
-the bitmap was moved during garbage collection, leading to memory smashing.
-(gdevmem.c)
- - setpagedevice didn't implement media matching. (gsdparam.c,
-gscoord.c)
- - 'word' memory devices weren't recognized as memory devices.
-(gdevmem.c)
- - makeimagedevice allocated, and then didn't free, an unnecessary
-palette for monobit devices. (gsdevmem.c)
- - The hack for 1-bit-wide images didn't work consistently,
-particularly in landscape orientation. (gsimage.c, gsimage0.c)
-
-Adds an .IgnoreNumCopies page device parameter that causes #copies and
-NumCopies to be ignored. (gxdevice.h, gsdevice.c, gsdparam.c)
-
-Removes the .IsPageDevice device parameter. (gsdparam.c)
-
-Converts the image scaling/interpolation code to a filter. (gximage.h,
-gsimage.c, gsimage0.c, gsimage3.c)
-
-Adds support for Type 4 fonts. (gxfont.h)
-
-Adds a default implementation of parameter lists, designed to be usable
-easily from C code. (gsparam.h, gsparam.c)
-
-</pre>
-
-<h2><a name="Version3.40"></a>Version 3.40 (limited) (6/28/95)</h2>
-
-<p>
-This is another incremental limited release for delivery of a couple of
-important bug fixes (pixel 'holes' in rotated images, setpagedevice errors
-on some platforms) and an enhancement (architectural support for band lists
-in RAM).
-
-<h3><a name="V3.40_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The FTP location of the EMX DLLs was incorrect. (use.doc)
-
-</pre><h3><a name="V3.40_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - A couple of build rules for IJG v6 were omitted. (jpeg.mak)
-
-</pre><h3><a name="V3.40_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - prfont.ps wouldn't print more than 128 unencoded characters.
-(prfont.ps)
-
-</pre><h3><a name="V3.40_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - setpagedevice often caused /undefined errors on MS Windows and
-OS/2 platforms. (gdevmswn.c, gdevpm.c)
- - The VMS module list had gotten out of sync with the makefiles
-(again). (modules.lis)
-
-</pre><h3><a name="V3.40_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A couple of casts betwen char * and byte * were omitted.
-(gsmain.c)
- - gs_[main_]run_file_open wasn't exported properly. (imain.h,
-main.h, gsmain.c)
-
-</pre><h3><a name="V3.40_Streams"></a>Streams</h3><pre>
-
-Changes the DCTEncode filter to return an error if it wasn't supplied enough
-data before being closed. (sdcte.c)
-
-</pre><h3><a name="V3.40_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The coordinate computations for all filling operations were
-slightly inaccurate, leading to pixel 'holes' in rotated images. (gxdda.h,
-gximage.h, gsimage*.c, gxdraw.c, gxfill.c)
-
-Undoes an "optimization" (inlining the normal, fast case of a procedure)
-that actually hurt performance. (gxclist.c)
-
-Refactors the command list code so that it in the future it will be able to
-store command lists either in RAM or in the file system. (gdevprn.h,
-gxcldev.h, gxclio.h, gxclist.h, gdevprn.c, gxclfile.c, gxclist.c,
-gxclread.c)
-
-Changes the interface to the path filling code to take separate X and Y
-adjustment values. (gxpaint.h, gspaint.c, gxfill.c)
-
-Makes the command list allocate a small tile cache if the device doesn't
-need halftones. (gxclist.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.39"></a>Version 3.39 (limited) (6/24/95)</h2>
-
-<p>
-This is again an incremental release primarily for delivery of enhancements
-(suspendable string input in particular) to commercial customers, and with a
-few bug fixes.
-
-<h3><a name="V3.39_Documentation"></a>Documentation</h3><pre>
-Notes that PDF files and repositioning PostScript files do not work if
-Ghostscript was compiled with VAX C. (use.doc)
-
-Notes the requirement for EOD lookahead in decoding filters. (strimpl.h)
-
-</pre><h3><a name="V3.39_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - There were a number of undefined or used-before-defined variables
-in the makefiles. (devs.mak, dvx-head.mak, unixhead.mak, gs.mak)
- - Some commands in the makefile exceeded the MS-DOS limit of 120
-characters. (gs.mak)
-
-Adds a -P and -P- switch to control whether the search path automatically
-includes `.' as its first element. Moves the default value of this choice
-(SEARCH_HERE_FIRST) from gsmain.c to iminst.h. (iminst.h, gs.c, gsmain.c,
-use.doc)
-
-Makes some makefile changes in anticipation of the IJG v6 release. (*.mak)
-
-</pre><h3><a name="V3.39_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - font2c generated invalid C procedure names from font names that
-contained non-alphanumerics other then '-'. (font2c.ps)
- - font2c generated a single element of incorrect type for numeric
-arrays of zero length. (font2c.ps)
-
-</pre><h3><a name="V3.39_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS build scripts had gotten out of sync (again). (vms*.mak,
-modules.lis)
-
-</pre><h3><a name="V3.39_Fonts"></a>Fonts</h3><pre>
-
-Makes the FONTPATH directory scanner accept fonts that begin with
-%!PS-AdobeFont or %!FontType1 with no following `-'. (gs_fonts.ps)
-
-</pre><h3><a name="V3.39_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - eq and ne on arrays or dictionaries required read access.
-(zrelbit.c)
- - An include was missing. (zcsindex.c)
- - .forgetsave at the outermost level didn't reset the l_new flag in
-changed slots, leading to an anomalous (although perhaps not harmful) state.
-(isave.c)
- - Dictionary growing or unpacking would both save and free the old
-keys array, leading to a dangling reference. (idict.c)
-
-Changes gs_interpret so that for .quit with a negative operand &lt;= -100,
-gs_interpret returns e_Fatal rather than the operand. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE, but as far as we know, it doesn't affect
-anyone. (interp.c)
-
-Adds an API to allow feeding string input to the interpreter in pieces.
-(errors.h, imain.h, main.h, gs.c, gsmain.c, interp.c, zcontrol.c, zfilter.c)
-
-Adds new predicates .identeq and .identne that test "pointer equality", even
-for numbers and strings. (iutil.h, iutil.c, zrelbit.c)
-
-Changes a few uses of return_error to return in places that don't lead
-directly to a PostScript error. (idict.c)
-
-</pre><h3><a name="V3.39_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The logic for skipping up to a 0xff byte when decoding JPEG data
-could skip too much. (sdctd.c, sjpegd.c)
- - If a buffer boundary fell in the middle of, or just before, an
-EOD, some decoding filters could stop reading too soon. (sbcp.c, smtf.c,
-sstring.c)
-
-Makes some minor changes in anticipation of the IJG v6 release.
-(gsjmorec.h)
-
-</pre><h3><a name="V3.39_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A declaration should have been removed. (gsdll.c)
- - The library initialization/termination API wasn't declared.
-(gslib.h, gsinit.c, gsmain.c)
- - A variable and a preprocessor macro with the same name confused
-VAX C. (gxclist.c)
- - Image devices with depth 2-8 and only gray shades in the palette
-didn't set color_info correctly. (gsdevice.c)
-
-Speeds up unrotated black-and-white images further by making them render
-directly into a memory device when possible. (gxdevmem.h, gsimage1.c)
-
-</pre>
-
-<h2><a name="Version3.38"></a>Version 3.38 (limited) (6/18/95)</h2>
-
-<p>
-This release incorporates several customer-requested enhancements (cleaner
-separation of the graphics library from the interpreter, option for &gt;64K
-names, true garbage collection of names, better handling of halftones on
-band devices). It is intended primarily for those customers, but is
-intended as a dry run for the next public release.
-
-<h3><a name="V3.38_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - gx_bitmap had not been updated to gx_tile_bitmap.
-(drivers.doc)
-
-</pre><h3><a name="V3.38_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The man page extension in the Unix makefiles was still $(manext),
-not $(man1ext). (unix-end.mak)
- - 'make clean' didn't remove gs_init.c. (gs.mak)
-
-Restructures the makefiles to better separate the language interpreters from
-the graphics core. (gs.mak)
-
-Adds a -dNOPROMPT switch to suppress the end-of-page prompts (but still wait
-for the user to type a newline). This is different from -dNOPAUSE, which
-suppresses both the prompts and the wait. (gs_init.ps)
-
-</pre><h3><a name="V3.38_Utilities"></a>Utilities</h3><pre>
-
-Replaces the mergeini.ps program with an equivalent (actually slightly
-better) version written in C. (gs.mak, *.mak, psfiles.doc, use.doc,
-geninit.c)
-
-</pre><h3><a name="V3.38_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The color DeskJet drivers wouldn't compile with a K&amp;R compiler,
-because some of the procedure definitions weren't in the restricted syntax
-that ansi2knr requires. (gdevcdj.c)
- - The color DeskJet drivers wouldn't compile because of a bug in
-Sun's cc. (gdevcdj.c)
-
-Changes the BJ-10e(x) margins to be identical to those of the BJ-200.
-(gdevbj10.c)
-
-Changes the LaserJet margins in response to a user's request. (gdevdjet.c)
-
-Changes the psmono driver to produce slightly larger files that execute
-faster on typical Level 1 printers. (gdevpsim.c)
-
-Changes the psmono driver so that it does not scale the image to fit the
-page size, but instead scales it to be the same physical size on the page.
-THIS IS A NON BACKWARD COMPATIBLE CHANGE. However, for full-page images, it
-will not have any visible effect. (gdevpsim.c)
-
-</pre><h3><a name="V3.38_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - There were some problems associated with printing in 32-bit
-Windows environments. (gp_mswin.c)
- - The IBM RS/6000 needs both &lt;time.h&gt; and &lt;sys/time.h&gt;. (time_.h)
-
-Adds the PDF interpreter to the standard MS Windows configuration.
-(bcwin.mak)
-
-</pre><h3><a name="V3.38_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The entry for Courier-BoldItalic in cfonts.mak incorrectly named
-it as Courier-Italic. (cfonts.mak)
- - The files for Courier-Italic in cfonts.mak were inconsistently
-named ncrri instead of ncri. (cfonts.mak)
- - The rules in cfonts.mak covered only the fonts distributed with
-the free versions of Ghostscript, omitting some of the standard set of 35.
-(cfonts.mak)
- - The maximum number of stem hints per character in Type 1 fonts
-wasn't large enough for complex Asian characters. (gxtype1.h)
-
-Adds a -dNOFONTMAP switch to suppress loading the Fontmap file.
-(gs_init.ps, gs_fonts.ps)
-
-</pre><h3><a name="V3.38_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - One of the GC marking routines for halftones had a typo,
-possibly leading to an invalid access. (zht2.c)
- - The GC could store beyond the end of the mark stack,
-possibly smashing some characters of a string or name. (igc.c)
- - If the allocator allocated a new ref object from a
-freelist, the bookkeeping for the current ref object could get
-confused. (ialloc.c)
- - The GC didn't remove names properly from the hash table.
-(iname.c)
- - If a DOS editor added a ^Z to the end of an initialization file,
-an error occurred during initialization. (gs_init.ps)
- - If an initialization file had any lines longer than 128
-characters, .skipeof would get an error. (gs_init.ps)
- - makepattern could create structures in global VM pointing to
-structures in local VM. (zpcolor.c)
- - The default color rendering dictionary didn't specify large enough
-ranges for some intermediate values. (gs_lev2.ps)
- - Files being freed by a restore weren't unlinked properly, leading
-to dangling pointers. (zfile.c)
- - The interpreter used strlen without a prototype. (interp.c)
- - Indexed or Separation colors with a CIE base or alternate space
-didn't work. (zcie.c)
- - The Watcom C 10.0 compiler produced incorrect code for an
-overlapping structure assignment. (zcsindex.c)
-
-Removes limit of 64K names, if EXTEND_NAMES is defined at compile
-time. (*.mak, idebug.h, iminst.h, iname.h, gs.c, gsmain.c, idebug.c,
-iname.c)
-
-Makes the garbage collector really collect names. (iname.h, inamedef.h,
-isstate.h, igc.c, iname.c, isave.c)
-
-Restructures some files to better separate the language interpreters
-from their support code. (gconfig.c, iconfig.c, iinit.c)
-
-Restructures some files to better separate the language interpreters
-from the graphics core. (iastate.h, iastruct.h, ialloc.c)
-
-Allows the operands of cshow to be in either order on the stack. Adobe
-interpreters apparently allow this, even though it's not documented.
-(zchar2.c)
-
-Adds a hack in cvs to truncate non-standard operator names, rather than
-giving a rangecheck, to work around the "max err string" problem in some
-common error handlers. (ztype.c)
-
-Changes the print string for unregistered operators from operator_0x... to
-@0x.... (iutil.c)
-
-Changes the garbage collector so it tries to allocate a large mark stack, to
-avoid going into its 'slow' mode if the mark stack overflows. (igc.c)
-
-</pre><h3><a name="V3.38_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Stroked text used the text matrix, rather than just the
-CTM, for scaling the line width, which could lead to inappropriately
-wide lines. (gs_pdf.ps)
- - Fonts based on other than a 1000-unit scale (i.e., with a
-FontMatrix other than [0.001 0 0 0.001 0 0]) didn't scale Widths to
-match the font scaling. (pdf_font.ps)
-
-Implements the PDF 1.1 color space extensions, except for Lab space.
-(gs_pdf.ps, pdf_draw.ps)
-
-Implements the Rotate key for pages. (pdf_main.ps)
-
-</pre><h3><a name="V3.38_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - When the garbage collector closed a file stream, the stream
-incorrectly attempted to free the buffer. (stream.c)
-
-Separates out some stream implementations to better distinguish the
-graphics core from the language interpreters. (smtf.h, sfilter1.c,
-smtf.c, srld.c, srle.c)
-
-</pre><h3><a name="V3.38_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Compressing characters being entered in the cache could cause an
-invalid memory access. (gsbitops.c)
- - The setbbox bounding box check was slightly inaccurate.
-(gsdps1.c)
- - makepattern could create structures in global VM pointing to
-structures in local VM. (gscolor2.h, gspcolor.c)
- - Out-of-range values during CIE color conversion led to random
-results. (gscie.c)
- - On output devices with non-inverted Y axes (such as MS Windows),
-Interpolated images would smash memory. (gsimage.c)
- - 90 degree rotated zero-width images caused an invalid memory
-access. (gsimage1.c)
- - If #copies was zero, showpage could create bogus empty output
-files. (gdevprn.c)
- - PageCount didn't take #copies into account. (gsdevice.c)
- - Indexed or Separation colors with a CIE base or alternate space
-didn't work. (gscie.h, gscie.c)
-
-Implements triangular line caps and joins, in anticipation of adding
-a PCL5 interpreter. (gsline.h, gxstroke.c)
-
-Moves some procedures around for better separation of library from
-interpreter. (gsinit.c, gslib.c, gsmain.c, gsmisc.c)
-
-Moves the standard allocator from the interpreter to the library.
-(gsalloc.h, gxalloc.h, gxobj.h, gsalloc.c)
-
-Starts to change the representation of paths slightly to make it possible to
-identify arcs. This change is backward-compatible for all code except
-callers of gx_path_add_arc. (gxpath.h, gspath1.c, gxpath.c, gxstroke.c)
-
-Adds some framework for keeping track of RasterOp and "transparency" in the
-graphics state, although these don't actually have any effect yet.
-(gsrop.h, gsropt.h, gsstate.h, gxcldev.h, gzstate.h, gsrop.c, gsstate.c,
-gxclist.c, gxclread.c)
-
-Adds a compile-time option for using the Adobe RGB&lt;-&gt;CMYK conversion rules.
-(gxdcconv.c)
-
-Adds a driver procedure for identifying band devices. This change is
-backward-compatible for all existing devices. (gdevmem.h, gxdevice.h,
-gsdevice.c, gxclip2.c, gxclist.c, gxcpath.c)
-
-Speeds up gray-scale images on devices requiring banding, and enables
-further optimizations, by reintroducing the distinction between banded and
-non-banded devices. (gxdevice.h, gdevprn.c, gsimage1.c)
-
-Reduces the size of the band list for halftoned images by encoding tile
-indices more compactly. (gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
-
-Extends the band list so it can cache more than 256 halftone tiles, and to
-make better decisions about tile caching. (gxcldev.h, gxclist.h, gxclist.c,
-gxclread.c)
-
-</pre>
-
-<h2><a name="Version3.37"></a>Version 3.37 (limited) (5/11/95)</h2>
-
-<p>
-Another bug fix release distributed only to customers.
-
-<h3><a name="V3.37_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - Some documentation about parameter lists was incorrect.
-(gsparam.h)
- - The documentation did not note that one cannot "pipe" PDF files
-into the interpreter. (use.doc)
-
-Adds documentation for the BJC-600 to devices.doc. (devices.doc)
-
-</pre><h3><a name="V3.37_Procedures"></a>Procedures</h3><pre>
-
-Changes the debugging switch for OS calls from -Z0 to -Ze, and adds -Z0 for
-high-level GC tracing. (use.doc, gp_unifs.c, ialloc.c, igc.c)
-
-</pre><h3><a name="V3.37_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The ps2ascii shell script included an erroneous @d. (ps2ascii)
-
-Enhances ps2ascii to output color and rectangle fill/stroke information if
-COMPLEX is defined. (ps2ascii.ps)
-
-</pre><h3><a name="V3.37_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - the BJC-600 driver didn't handle BitsPerPixel correctly.
-(gdevcdj.c)
-
-</pre><h3><a name="V3.37_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Some buggy Type 1 fonts confused the Type 1 font reader.
-(gs_fonts.ps, gs_type1.ps, pdf_font.ps)
-
-</pre><h3><a name="V3.37_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
-
-Fixes bugs:
- - .registerencoding didn't accept mixedarrays, which could cause an
-error if an encoding was loaded long after initialization. (zfont2.c)
- - If a program did a lot of saves and restores, the garbage
-collector could get invoked much too often. (iastate.h, ialloc.c, igc.c,
-isave.c)
-
-Changes the name of the rectappend operator to .rectappend, since it isn't a
-standard PostScript operator. (zdps1.c)
-
-</pre><h3><a name="V3.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - PDF files didn't interact properly with ps2ascii. (gs_pdf.ps)
- - setdash wouldn't accept a packed array. (zgstate.c)
- - PDF files with incorrect generation numbers in object references
-produced an error rather than a warning. (pdf_base.ps)
-
-</pre>
-
-<h2><a name="Version3.36"></a>Version 3.36 (limited) (5/4/95)</h2>
-
-<p>
-This is a limited-distribution release for distributing bug fixes to a few
-customers.
-
-<h3><a name="V3.36_Documentation"></a>Documentation</h3><pre>
-Adds some environment variables to the man page. (gs.1)
-
-</pre><h3><a name="V3.36_Procedures"></a>Procedures</h3><pre>
-
-Adds the psmono device to all 32-bit configurations. (*.mak)
-
-Moves the psmono and 'bit' devices to DEVICE_DEVS12 to avoid exceeding the
-120-character maximum length of the DOS command line. (*.mak)
-
-</pre><h3><a name="V3.36_Drivers"></a>Drivers</h3><pre>
-
-Changes the pgm[raw] and ppm[raw] drivers so they do *not* automatically
-switch to pbm or pgm/ppm respectively if this is possible for the particular
-page being rendered; adds pgnm[raw] and pnm[raw] drivers that *do* do this.
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. However, existing programs will
-still work; they just won't produce the smallest and simplest possible
-output. (devs.mak, gdevpbm.c)
-
-</pre><h3><a name="V3.36_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A multi-level restore didn't free gstates allocated by
-intermediate saves, causing some global VM to be lost until a garbage
-collection. (isave.h, isave.c, zvmem.c)
-
-Speeds up restore by skipping the scan of the character cache if no new
-names have been allocated since the save. (zfont.c)
-
-Extends the client API to allow for popping return values off the operand
-stack. (imain.h, gs.c, gsmain.c)
-
-</pre><h3><a name="V3.36_Library"></a>Library</h3><pre>
-
-Modifies the character oversampling algorithms to help prevent dropouts.
-(gsbitops.c, gschar.c)
-
-</pre>
-
-<h2><a name="Version3.35"></a>Version 3.35 (internal) (5/2/95)</h2>
-
-<p>
-This is another internal "snapshot" version.
-
-<h3><a name="V3.35_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - Some of the file names in the `man' page had gotten out of date.
-(gs.1)
- - Two references to .PageCount hadn't been changed to PageCount.
-(language.doc, devarch.doc)
-
-</pre><h3><a name="V3.35_Procedures"></a>Procedures</h3><pre>
-
-Puts writeppmfile back in the standard Unix and DV/X configurations, since
-gsftopk uses it. Also puts the PDF reader in all 32-bit configurations.
-(*.mak)
-
-Moves the BMP devices to DEVICE_DEVS11 to avoid exceeding the 120-character
-maximum length of the DOS command line. (bcwin.mak, bcwin32.mak, os2.mak)
-
-</pre><h3><a name="V3.35_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - unix-lpr.sh didn't handle 32-bit devices. (unix-lpr.sh)
- - unix-lpr.sh still used the name .PageCount rather than PageCount.
-(unix-lpr.sh)
- - font2c gave an error when trying to write general procedures in
-font dictionaries. (font2c.ps)
-
-Adds a pdf2dsc.ps utility for writing out fake DSC-compliant PostScript code
-to invoke the PDF reader, for the benefit of viewer programs that aren't
-PDF-aware. (unix-end.mak, pdf2dsc.ps)
-
-</pre><h3><a name="V3.35_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The TIFF drivers put out incorrect PageNumber values.
-(gdevtfax.c)
- - Printer (and file output) devices got closed and reopened
-unnecessarily when changing parameters. (gdevprn.c)
- - Printer (and file output) devices didn't check for invalid formats
-following a % in OutputFile. (devs.mak, gdevprn.c)
- - 1-bit memory devices were not considered page devices, unlike all
-other memory devices. (gsdevice.c)
- - The black-and-white H-P printers didn't close the printer
-properly, causing printing not to happen under MS Windows. (gdevprn.c)
- - Some compilers didn't like initializing a const char * to NULL.
-(gdevlbp8.c)
-
-Changes the X Windows driver so that if Ghostview specifies a bounding box,
-this also sets ImagingBBox. (gdevxini.c)
-
-At the request of a customer, adds 1-, 4-, 8-, 24-, and 32-bit-deep memory
-devices that store bits in 32-bit units rather than byte units. (gdevmem.h,
-gxdevmem.h, gdevmem.c, gdevm1.c, gdevm2.c, gdevm4.c, gdevm8.c, gdevm16.c,
-gdevm24.c, gdevm32.c)
-
-Adds a new MS Windows printer driver, mswinpr2, that uses a DIB rather than
-a DDB. (gdevwpr2.c)
-
-</pre><h3><a name="V3.35_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - A routine wouldn't compile because of a bug in the SGI C compiler.
-(zcsindex.c)
- - Some declarations were inconsistent when compiling for segmented
-environments. (gscie.c)
- - A routine wouldn't compile because of a bug in the VAX C compiler.
-(gscie.c)
-
-Turns on compiler optimization for OS/2; adds PDF support and more devices
-for Win32 and OS/2. (bcwin.mak, bcwin32.mak, os2.mak)
-
-</pre><h3><a name="V3.35_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Font loading used 'setglobal' without binding it, which caused
-some EPS files to signal errors. (gs_fonts.ps)
- - A zero-length string with offset = 0 in a binary object sequence
-caused an error. (iscanbin.c)
-
-Adds a LOCALFONTS switch that causes Ghostscript to load Type 1 fonts into
-the current VM, rather than global VM. According to Adobe, this is what
-Adobe printers (but not other interpreters, such as DPS and CPSI) do.
-(gs_init.ps, gs_fonts.ps)
-
-</pre><h3><a name="V3.35_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The 'note' page size command caused pages to be clipped
-improperly. (gs_statd.ps)
-
-Adds "word" image devices. (gs_init.ps, zdevice.c)
-
-Starts converting the interpreter to use an explicit instance pointer. This
-is very fragmentary so far and not really supported. (main.h, gs.c,
-gsmain.c, iccinit.c)
-
-</pre><h3><a name="V3.35_Library"></a>Library</h3><pre>
-
-Adds "word" image devices. (gsdevice.h, gsdevice.c)
-
-Removes the requirement that ImagingBBox[0] and [1] be non-negative. (The
-Adobe specification requires this, but Ghostscript supports more general
-initial CTMs than the Adobe spec.) (gsdparam.c)
-
-</pre>
-
-<h2><a name="Version3.34"></a>Version 3.34 (internal) (4/18/95)</h2>
-
-<p>
-This is a "snapshot" version made for internal purposes. It was never
-released to anyone.
-
-<h3><a name="V3.34_Documentation"></a>Documentation</h3><pre>
-Updates commprod.doc to be fully consistent with the AGFPL. (commprod.doc)
-
-</pre><h3><a name="V3.34_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - tar_x was out of date. (tar_x)
- - tar_gs assumed that if any PC executables were present, gs.exe
-would exist. (tar_gs)
- - jpeg.mak said the current IJG version was 5b, but the makefiles
-actually referred to version 5a. (jpeg.mak)
- - The build rule for the LIPS III driver was incorrect. (devs.mak)
- - Some definitions in the makefiles occurred out of order.
-(ansihead.mak, cc-head.mak, gcc-head.mak, unixhead.mak, unixtail.mak)
- - The build rule for dvx-gcc.mak was incorrect. (unix-end.mak)
-
-</pre><h3><a name="V3.34_Interpreter"></a>Interpreter</h3><pre>
-
-Restructures the CIE caches to move much more of the computation from color
-mapping time to cache loading time. (zcie.c)
-
-</pre><h3><a name="V3.34_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Color conversion of 12-bit images was very slightly inaccurate.
-(gxfrac.h)
-
-Changes the transfer function, black generation, and undercolor removal
-caches so that they sample at 1024 points and don't interpolate, rather than
-sampling at 256 points and interpolating. This significantly improves the
-speed of colored image rendering. ****** LIMITED TO 256 POINTS BECAUSE OF
-O-STACK SIZE LIMIT. ****** (gxfmap.h, gxcmap.c)
-
-Restructures the CIE caches to move much more of the computation from color
-mapping time to cache loading time. (gscie.h, gscie.c)
-
-</pre>
-
-<h2><a name="Version3.33"></a>Version 3.33 (4/13/95)</h2>
-
-<p>
-A few more last-minute bug fixes. This is, finally, the first public
-release since 3.12.
-
-<h3><a name="V3.33_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - There was a reference to "VAX with OSF/1", which doesn't exist,
-and an incorrect reference to VAX with Ultrix. (make.doc)
- - The Unix makefiles incorrectly stated that gsdatadir was only
-relevant to `make install'. (ansihead.mak, cc-head.mak, dgc-head.mak,
-gcc-head.mak)
- - Notes that DV/X users should use the zip version of the JPEG
-library. (jpeg.mak)
-
-</pre><h3><a name="V3.33_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - A command line had gotten too long for the MS-DOS shell.
-(gs.mak)
- - The VMS DEC C script didn't explicitly select DEC C.
-(vms-decc.mak)
- - The VMS MODULES.LIS omitted SPDIFF and ZFPDIFF. (modules.lis)
- - The VMS script had an incorrect entry. (vms.mak)
- - The `if' fix in 3.31 broke some Unix systems with different
-implementations of sh. (unix-end.mak)
- - The makefile definition of gscspace_h was out of order. (gs.mak)
- - An extra ; got written in gconfig_.h on DV/X platforms.
-(dvx-tail.mak)
- - '.' was incorrectly prepended to the library search list on DV/X
-platforms. (dgc-head.mak)
- - The build rules for unix*.mak didn't work on DV/X. (unix-end.mak)
-
-Adds a description of the -c quit switch to the help message. (gs.c)
-
-For the DV/X platform, changes /usr/include to /djgpp/include as the place
-to look for header files. I'm not sure this is always correct.
-(dvx-tail.mak)
-
-</pre><h3><a name="V3.33_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2ascii would cause an error if given a font that didn't have an
-'X' character. (ps2ascii.ps)
- - ps2ascii didn't intercept the Level 2 string display operators.
-(ps2ascii.ps)
-
-</pre><h3><a name="V3.33_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The Stylus Color driver had an incorrect type name. (gdevstc.c)
-
-</pre><h3><a name="V3.33_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - -dBitsPerPixel= didn't work properly for MS Windows or OS/2 PM.
-(gdevmswn.c, gdevpm.c)
- - The Win32 platform didn't compile properly. (memory_.h)
-
-</pre><h3><a name="V3.33_Fonts"></a>Fonts</h3><pre>
-
-Improves the font substitution algorithm to take the face name into account
-in more cases. (gs_fonts.ps)
-
-</pre><h3><a name="V3.33_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Unrotated black-and-white bitmaps with an inverted device X axis
-were displaced in X. (gsimage1.c)
-
-</pre>
-
-<h2><a name="Version3.32"></a>Version 3.32 (4/7/95)</h2>
-
-<p>
-More bug fixes. This is still not a public release.
-
-<h3><a name="V3.32_Documentation"></a>Documentation</h3><pre>
-Further clarifies the "two-phase commit" algorithm for device put_params
-procedures. (drivers.doc, gsparam.h)
-
-Adds a note about a compiler bug under Ultrix 4.4. (make.doc)
-
-</pre><h3><a name="V3.32_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Some installation scripts could fail because some implementations
-of sh take the status of an `if' condition as the status of the `if'
-command. (unix-end.mak)
-
-Adds "maintainer-clean" as a synonym for "real-clean". (gs.mak)
-
-Adds a -dORIENT1 switch that defines orientation = 1 as portrait for
-setpage[params]. (use.doc, gs_init.ps, gs_lev2.ps, gs_statd.ps)
-
-</pre><h3><a name="V3.32_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2ascii didn't redirect %stdout completely. (ps2ascii.ps)
- - ps2ascii didn't preserve the local/global VM mode. (ps2ascii.ps)
- - ps2ascii didn't handle fonts with an all-zero or missing bounding
-box correctly. (ps2ascii.ps)
- - viewpbm didn't scale the image properly. (viewpbm.ps)
-
-</pre><h3><a name="V3.32_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The CGM driver wrote out an incorrect color precision value.
-(gdevcgm.c)
- - The SGI bitmap driver was named "sgi" rather than "sgirgb".
-(gdevsgi.c)
- - The PCX driver didn't round up an odd line length for gray-scale
-output. (gdevpcx.c)
- - The PCX driver produced incorrect output for gray-scale or 4- or
-8-bit color. (gdevpcx.c)
-
-</pre><h3><a name="V3.32_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS MODULES.LIS file had gotten out of sync with the Unix
-makefiles (again). (modules.lis)
-
-</pre><h3><a name="V3.32_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Some compilers won't accept '\l', even in the false arm of a
-preprocessor conditional. (scanchar.h)
- - A procedure was declared with an incorrect argument type.
-(zcsindex.c)
- - The scaled font cache didn't copy XUIDs properly. (bfont.h,
-zfont.c, zfont2.c)
- - status could return true even if the file was closed. (zfile.c)
-
-</pre><h3><a name="V3.32_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The LZW filters were factored improperly. (modules.lis, gs.mak,
-vms.mak, slzwx.h, slzwc.c, slzwd.c)
-
-Changes the DCTDecode filter for compatibility with Adobe implementations:
- - Ignore bytes preceding the 0xff that marks the beginning of the
-JPEG data. (sdctd.c)
- - Set MAX_BLOCKS_IN_MCU to 64. (jpeg.mak, gsjpglib.h)
-
-</pre><h3><a name="V3.32_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The "two-phase commit" for device parameters wasn't fully
-implemented. (gsiodev.c)
- - Asking for a device color map before the device was opened could
-cause a crash. (gsdparam.c)
- - The scaled font cache didn't copy XUIDs properly. (gxfont.h,
-gsfont.c)
- - 90 or 270 degree rotated black-and-white bitmaps (including
-bitmapped fonts such as downloaded TrueType fonts) with an inverted device Y
-axis were displaced in Y. (gsimage1.c)
- - On high-resolution devices, parts of regions filled with halftones
-could fail to be painted. (gxclist.c)
-
-</pre>
-
-<h2><a name="Version3.31"></a>Version 3.31 (4/2/95)</h2>
-
-<p>
-A few final bug fixes for the release. Includes significant speed
-improvements for CIE color, and a first draft of a low-level CGM driver.
-
-<h3><a name="V3.31_Documentation"></a>Documentation</h3><pre>
-Notes that the BJC600 driver also works for the BJC4000. (devs.mak)
-
-</pre><h3><a name="V3.31_Procedures"></a>Procedures</h3><pre>
-
-At the suggestion of a user, changes the default protections for installed
-files on Unix and DV/X systems from 775/664 to 755/644. (*head.mak)
-
-At the suggestion of a user, adds a -dNOCIE switch to substitute DeviceGray
-and DeviceRGB color spaces for CIEBasedA and CIEBasedABC spaces
-respectively. (gs_init.ps, gs_lev2.ps)
-
-</pre><h3><a name="V3.31_Utilities"></a>Utilities</h3><pre>
-
-Changes gslp and its relatives to use ISOLatin1Encoding for output, and to
-send almost all printout to stderr rather than stdout (for use as a filter
-under Unix). (gslp.ps)
-
-</pre><h3><a name="V3.31_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The fax/TIFF driver no longer exported gdev_fax_print_page, which
-the DigiFax driver needs. (gdevtfax.c)
- - The color DeskJet drivers gave an error for BitsPerPixel=3.
-(gdevcdj.c)
- - The "Windows printer" driver was setting its margins in points
-rather than inches. (gdevwprn.c)
- - The BJ10 and BJ200 drivers calculated vertical skip distances
-wrong. (gdevbj10.c)
- - The BJ10 and BJ200 drivers output two garbage bytes following the
-initialization string. (gdevbj10.c)
-
-Adds a preliminary driver that produces low-level CGM output. (gdevcgml.h,
-gdevcgmx.h, gdevcgm.c, gdevcgml.c)
-
-</pre><h3><a name="V3.31_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS files had gotten out of sync with the other makefiles
-(again). (modules.lis, vms.mak)
- - The MS Windows and OS/2-PM drivers hadn't been updated to handle
-BitsPerPixel as a standard parameter. (gdevmswn.c, gdevpm.c)
-
-Removes the TIFF drivers from the Windows platform, and restores the BMP
-drivers. (bcwin.mak)
-
-</pre><h3><a name="V3.31_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The CIE color mapping cache could produce anomalous results
-for the default (all zero values) color if some of the mapping
-functions were non-linear. (zcie.c)
- - MultiMaster font substitution got confused if substituted
-fonts had their FontName changed. (gs_fonts.ps)
- - A procedure was declared as private inconsistently. (zdevcal.c)
- - Some pointer relocation procedures didn't work correctly on
-systems with sizeof(T *) &gt; sizeof(int). (istack.c)
- - The freelist vector wasn't large enough to handle graphics state
-objects on 64-bit systems, leading to severe memory sandbars. (iastate.h)
- - The debugging messages from the allocator had gotten inconsistent
-and hard to use. (ialloc.c)
- - Mixing save/restore with allocation could cause the GC never to
-get run. (isave.c)
-
-Speeds up the mapping of CIE colors. (zcie.c)
-
-Adds a .namestring operator for getting the string of a name without having
-to copy it. (zstring.c)
-
-</pre><h3><a name="V3.31_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The IJG code needed a couple more flags set for IJG v6.
-(gsjmorec.h)
- - Some pointer relocation procedures didn't work correctly on
-systems with sizeof(T *) &gt; sizeof(int). (stream.c)
-
-</pre><h3><a name="V3.31_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The end-test for the fast case of monobit images was wrong,
-leading to out-of-range memory accesses. (gsimage1.c)
- - Monobit images rotated by 270 degrees displayed incorrectly.
-(gsimage1.c)
- - If a Type 1 font used hint replacement, some parts of the outline
-before the hint replacement ignored the old hints. (gstype1.c)
- - Some compilers didn't accept a variable name that was the same as
-a macro with parameters. (gxht.c)
- - A procedure was declared as private inconsistently. (gdevm1.c)
- - Some pointer relocation procedures didn't work correctly on
-systems with sizeof(T *) &gt; sizeof(int). (gdevmem.c, gsstate.c)
- - The test on FORCE_HINTS_TO_BIG_PIXELS was backwards. This bug was
-supposed to have been fixed in 3.30, but somehow the fix got lost.
-(gstype1.c)
- - 90 degree rotated monobit images could drop some scan lines.
-(gsimage*.c)
-
-Speeds up the mapping of CIE colors. (gscie.h, gxcmap.h, gscie.c, gxcmap.c)
-
-Speeds up color images (non-interpolated, 1-8 bits per component) by adding
-a cache for mapped color values. (gximage.h, gsimage.c, gsimage1.c,
-gsimage2.c)
-
-Shrinks the band list file slightly by using only as many bytes as necessary
-for writing out colors, rather than always using 4 bytes. (gxclist.c,
-gxclread.c)
-
-</pre>
-
-<h2><a name="Version3.30"></a>Version 3.30 (beta) (3/21/95)</h2>
-
-<p>
-More bug fixes. The garbage collector and PDF interpreter finally appear to
-work reliably.
-
-<h3><a name="V3.30_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - language.doc had gotten out of date. (language.doc)
-
-</pre><h3><a name="V3.30_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - Changes in the handling of %stdout had broken ps2ascii.
-(gs_dps1.ps, ps2ascii.ps)
-
-Improves ps2ascii to skip empty strings and not output redundant font
-changes. (ps2ascii.ps)
-
-</pre><h3><a name="V3.30_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The fax and TIFF drivers didn't free all their working storage.
-(This bug was fixed in 3.27, and the fix somehow got lost.) (gdevtfax.c)
-
-Adds new drivers:
- - sgirgb, to produce SGI RGB raster files. (gdevsgi.c)
- - tiffcrle, to produce output in TIFF "CCITT 1-dimensional Huffman
-RLE" format (Group 3 fax with no EOLs). (gdevtfax.c)
- - tifflzw, to produce output in TIFF LZW format (using the existing
-CCITTFaxEncode filter code). (gdevtfax.c)
- - tiffpack, to produce output in TIFF PackBits format. (gdevtfax.c)
-
-</pre><h3><a name="V3.30_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
-
-Fixes bugs:
- - If the current screen was set with a halftone, setcolorscreen
-wouldn't accept what currentcolorscreen returned. (gs_dps1.ps)
- - debug_print_full_ref didn't print t_oparray objects correctly.
-(idebug.c)
- - The internal data for a font could be allocated in a different VM
-space from the font dictionary, causing dangling pointers. (zfont2.c)
- - definefont became confused if a program failed to delete the FID
-from a re-encoded font. (This is questionable PostScript, but dvips does
-it.) (zfont2.c)
- - If a BuildChar procedure did a save before the setcachedevice and
-a restore afterwards, the memory manager would attempt to free the cache
-device after it had already been freed by the restore, leading to damaged
-freelists. (gschar.c)
- - setresolution (in statusdict) was ignored. (gs_lev2.ps,
-gs_statd.ps)
- - If a string containing a string containing a \ was passed to the
-token operator, the \ was not recognized properly in a Level 2 environment.
-(iscan.c)
- - A couple of default dictionary sizes had become too small.
-(iinit.c)
-
-Makes DOS EOF (control-Z, 0x1a) a self-delimiting token, like left bracket.
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE, but it should not have any adverse
-effects. (gs_init.ps, iscan.c, iscantab.c)
-
-Distinguishes arch_small_memory from arch_ints_are_short, and adds a new
--Z. switch to force small-memory table sizes regardless of actual memory
-size. (dstack.h, idict.c, zpcolor.c, zvmem2.c)
-
-</pre><h3><a name="V3.30_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - A page with no Contents caused an error. (pdf_main.ps)
- - Executing a Form resource caused an error. (pdf_draw.ps)
- - Outlines with open entries caused an error. (pdf_main.ps)
- - Embedded Type 3 fonts caused an error. (pdf_draw.ps, pdf_font.ps)
- - The Widths array of fonts was ignored. (pdf_font.ps)
-
-</pre><h3><a name="V3.30_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Freeing an entry in the pattern cache didn't clear the pointers to
-the raster data, producing a dangling reference that confused the garbage
-collector. (gxpcmap.c)
- - The test on FORCE_HINTS_TO_BIG_PIXELS was backwards. (gstype1.c)
- - The pattern cache bookkeeping was incorrect. (gxpcmap.c)
- - Depending on the order in which pointers were relocated, the
-garbage collector could incorrectly relocate pointers from the character
-cache. (gxfcache.h, gsfont.c, gxccache.c, gxccman.c)
-
-Changes the fast case of black-and-white images so it aligns scaled images
-with the device coordinate system, to improve performance. (gsimage1.c)
-
-Extends the coordinate transformation routines to handle absurdly large
-translation values in the CTM as long as the final device device coordinates
-are within fixed-point range. (gxmatrix.h, gxpath.h, gschar.c, gscoord.c,
-gsmatrix.c, gxhint2.c, gxpath2.c)
-
-Distinguishes arch_small_memory from arch_ints_are_short, and adds a new
--Z. switch to force small-memory table sizes regardless of actual memory
-size. (gdevprn.h, gxpcolor.h, gzht.h, std.h, gsfont.c, gsht1.c, gspaint.c,
-gsstate.c, gxcht.c, gxht.c, gxpcmap.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.29"></a>Version 3.29 (internal) (3/8/95)</h2>
-
-<p>
-Another bug-fix release. This release processes all but 7 of the 500+ files
-on the Adobe Acrobat Sampler CD-ROM without giving an error. The garbage
-collector finally appears to be stable. This version was created for a
-customer; it was not released to the general public or even to the beta test
-list.
-
-<h3><a name="V3.29_Documentation"></a>Documentation</h3><pre>
-Documents the possible need to set LD_RUN_PATH on SVR4 platforms.
-(make.doc)
-
-Expands the description of the device life cycle, and of the constraints on
-put_params procedures. (drivers.doc)
-
-Adds an explicit copyright notice to the Aladdin Ghostscript Free Public
-License. (PUBLIC)
-
-Clarifies that the Win32s documentation also applies to Windows NT.
-(make.doc)
-
-</pre><h3><a name="V3.29_Procedures"></a>Procedures</h3><pre>
-
-Removes the obsolete writeppmfile operator from the standard configurations.
-(gs.mak)
-
-Changes the Watcom makefiles to work properly with Watcom C/C++ 10.0.
-(make.doc, msc.mak, watc.mak, watcwin.mak, wccommon.mak)
-
-</pre><h3><a name="V3.29_Utilities"></a>Utilities</h3><pre>
-
-Adds a wftopfa utility for converting the Wadalab fonts to usable Type 0 and
-Type 1 form. (wftopfa)
-
-</pre><h3><a name="V3.29_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Entries added automatically by definefont (FontInfo, ExactSize)
-could cause a font dictionary to become full. (gs_fonts.ps, gs_type1.ps)
- - wrfont.ps couldn't deal with very long CharStrings. (wrfont.ps)
-
-Makes the name of the Fontmap file an easily editable parameter.
-(gs_fonts.ps)
-
-Adds a utility for converting the Wadalab font to usable Type 0 and Type 1
-form. (wrfont.ps, wftopfa.ps)
-
-</pre><h3><a name="V3.29_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The top margin for printer (and fax) devices was computed
-incorrectly, using the X resolution rather than the Y resolution.
-(gdevprn.h)
- - Changing the page size or resolution of a printer device closed
-and reopened the device unnecessarily. (gdevprn.c)
- - Changing the page size of the X11 device didn't change the initial
-matrix, so (0,0) didn't wind up in the lower left corner. (gdevx.c)
- - The bit devices didn't allow changing the number of bits per
-pixel. (gdevbit.c)
-
-Adds a settable .IsPageDevice boolean device parameter to the X Windows
-driver. The default value is true. (gdevx.h, gdevx.c)
-
-Changes the PPM driver so that it chooses between PBM/PGM/PPM on a
-page-by-page basis, rather retaining the most general format ever required
-by any page. (gdevpbm.c)
-
-</pre><h3><a name="V3.29_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
-
-Fixes bugs:
- - The current page device could be null, rather than an empty
-dictionary. (igstate.h, zchar.c, zdevice.c, zdevice2.c, zgstate.c)
- - The scanner didn't signal an error for names or strings that were
-too long. (iscan.c)
- - A missing header file upset the VAX compilers. (ztype.c)
- - Some places expecting dictionary operands didn't check the type,
-because they incorrectly assumed that the dict_check_read/write macro did
-this. (idict.h, zdevice2.c, zht2.c, zmisc2.c)
- - The definition of quit in systemdict wasn't disabled within
-encapsulated jobs. (gs_lev2.ps)
- - resetfile gave an error if the file was closed, rather than doing
-nothing. (zfileio.c)
- - The scanner attempted to free an uninitialized pointer if it
-reached EOF after a / or //. (iscan.c)
- - A restore in a different file than the corresponding save caused
-an invalidrestore error. (gs_init.ps)
- - The default value of EndOfData in RunLengthDecode streams was set
-to false. (zfilter.c)
- - .registerencoding didn't invoke the save machinery correctly,
-leading to GC problems. (zfont2.c)
- - The facility for overriding .printerror didn't work correctly.
-(gs_init.ps)
- - gs_run_file_open wasn't public. (gsmain.c)
- - The interpreter returned e_undefined for undefined error names,
-rather than the error code. (interp.c)
- - Allocation in system memory (specifically, adding a block to a
-stack) couldn't trigger automatic garbage collection. (interp.c, igc.c,
-zvmem2.c)
- - A restore in a different invocation of gs_run_string than the
-corresponding save would stop reading the string. (files.h, gsmain.c,
-iccinit.c, zfile.c)
- - The Type 1 rasterizer state included a pointer into the middle of
-an object, confusing the garbage collector. (zchar1.c, zfont1.c)
- - When the garbage collector deleted a name, it didn't zero out the
-string pointer. (iname.c)
- - On platforms where obj_align_mod &gt; 4, the memory manager could
-access 1 beyond the end of its freelists. (iastate.h)
- - makefont and scalefont didn't check the type of their font operand
-soon enough. (zfont.c)
- - restore didn't finalize the objects it freed. (isave.c)
- - restore didn't free system VM. (isave.c)
- - Freeing a ref array that occupied an entire chunk didn't free the
-chunk. (ialloc.c)
-
-Adds a .runexec operator which implements the 'close if error' function of
-run. (zfile.c, zfileio.c)
-
-Moves the obsolete writeppmfile operator into a separate file. (zfileio.c,
-zwppm.c)
-
-Makes the statistics returned by the memory manager more accurate.
-(ialloc.c, zvmem.c)
-
-Adds a (read-only) %Calendar% IODevice. (zdevcal.c)
-
-Adds a "hook" in the character operators to allow external code to
-intervene; this is needed for a customer. (ichar.h, zchar.c, zchar2.c)
-
-Makes control-D (0x04) a self-delimiting token, like left bracket. THIS IS
-A NON-BACKWARD-COMPATIBLE CHANGE, but it should not have any adverse
-effects. (scanchar.h, iscan.c, iscantab.c)
-
-Changes the error stack printout so that it puts line breaks between items
-iff the items are being printed with ==. (gs_init.ps)
-
-Uses finalization to close streams being freed. (igc.c, zfile.c, ziodev.c)
-
-</pre><h3><a name="V3.29_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Embedded Type 1 fonts that invoked save and restore while being
-read caused an error. (pdf_font.ps)
- - Large files that referenced a non-alphabetic font for the first
-time late in the file could cause an error. (pdf_main.ps)
-
-</pre><h3><a name="V3.29_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - SubFileDecode streams didn't copy partial matches of the EOD
-string into their output. (sfilter1.c)
-
-Makes switching between read and write modes a stream procedure. (stream.h,
-sfile.c, sfileno.c, stream.c, zfileio.c)
-
-Makes file streams close themselves when finalized. (We can't do this for
-other streams, because finalization procedures aren't allowed to free
-storage explicitly.) (stream.h, sfile.c, sfileno.c, stream.c)
-
-</pre><h3><a name="V3.29_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The obsolete files gcdefs.h and gsfile.c were still included in
-the fileset.
- - A number of places didn't deal with null patterns properly (p_tile
-== 0). (gxdcolor.h, gspcolor.c, gxpcmap.c)
- - The pattern tiling algorithm was numerically unstable, especially
-if the X/YStep vectors were close to the axes. (gxcolor2.h, gspcolor.c,
-gxpcmap.c)
- - setdeviceparams checked the values of read-only byte array
-parameters incorrectly. (gsdparam.c)
- - The statistics macros in gxfill.c didn't use DO_NOTHING when
-disabled. (gxfill.c)
- - Changing the orientation of a device closed and reopened the
-device unnecessarily. (gsdparam.c)
- - ioerrors occurring when writing command lists weren't reported
-properly. (gxclist.h, gxclist.c)
- - Errors from device procedures weren't always propagated up to
-clients. (gsimage1.c, gsimage3.c, gxclip2.c, gxclist.c)
- - Overflowing the fixed-point translation values in the CTM caused a
-floating point exception rather than a limitcheck. (gxmatrix.h, gscoord.c)
- - charpath set the current point correctly, but didn't append a
-moveto element to the path. (This mostly affected Mathematica output.)
-(gzpath.h)
- - Image devices mapped colors incorrectly. (gdevmem.c, gdevm16.c)
- - On devices with color capability but fewer than 4 bits per pixel,
-color halftones didn't work (and could cause an arithmetic exception).
-(gxdither.c)
- - Black-on-white memory devices didn't map colors properly.
-(gdevprn.h, gxdevice.h, gxdevmem.h, gdevmem.c, gdevm1.c, gsdevice.c)
- - Memory devices with a non-zero origin in their initial matrix
-clipped the image improperly. (gsdevice.c)
- - The Type 1 rasterizer state included a pointer into the middle of
-an object, confusing the garbage collector. (gstype1.h, gxfont1.h,
-gxtype1.h, gstype1.c, gxhint2.c)
- - The band rasterizer could produce garbled output for images
-(including characters) on 64-bit architectures. (gxclread.c)
- - Bounding boxes (for pathbbox and setbbox) could be slightly
-inaccurate. (gsmatrix.c)
- - On 64-bit architectures, halftone tiles less than 16 bits wide
-were handled incorrectly. (gxclist.c)
-
-Adds an .IsPageDevice boolean device parameter (normally read-only).
-(gsdparam.c)
-
-Removes the library code for implementing the obsolete writeppmfile
-operator. (gswppm.c)
-
-Makes the default matrix (for initmatrix and defaultmatrix) a settable
-parameter in the graphics state. (gscoord.h, gzstate.h, gscoord.c,
-gsdevice.c, gsdparam.c)
-
-Makes the statistics returned by the memory manager more accurate.
-(gsmemory.h)
-
-Adds a compile-time flag to choose whether or not to force Type 1 hints to
-"big pixel" boundaries when oversampling. (gstype1.c)
-
-Changes the .PageCount device parameter back to PageCount, because the
-change broke some scripts. (gsdparam.c)
-
-Adds optimization for 90 degree rotated images with pure colors.
-(gximage.h, gsimage.c, gsimage1.c)
-
-Changes the band rasterizer so that replicated halftone tiles are written on
-the band list in unreplicated form. (gsbitops.h, gxcldev.h, gsbitops.c,
-gxclist.c, gxclread.c, gxht.c)
-
-Changes the .HWBitsPerPixel device parameter to BitsPerPixel. (drivers.doc,
-language.doc, gdevcdj.c, gdevstc.c, gsdparam.c)
-
-</pre>
-
-<h2><a name="Version3.28"></a>Version 3.28 (beta) (2/13/95)</h2>
-
-<p>
-Another bug-fix beta release. The number of bugs being fixed in each of
-these sub-releases does exceed the number of new bugs introduced, but the
-latter number is discouragingly high.
-
-<h3><a name="V3.28_Documentation"></a>Documentation</h3><pre>
-Adds some information about handling VMS file attributes for files
-transferred by FTP. (use.doc)
-
-</pre><h3><a name="V3.28_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - unix-gcc.mak said the static linkage switch for SunOS was -Bstatic
-rather than -static. (unix-gcc.mak)
- - Some dependency lists in gs.mak were out of date. (gs.mak)
-
-</pre><h3><a name="V3.28_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - markhint.ps didn't check for protected fonts. (markhint.ps)
-
-</pre><h3><a name="V3.28_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The cdj driver had a byte/char agreement problem. (gdevcdj.c)
- - The cdj driver attempted to initialize a dynamic array.
-(gdevcdj.c)
-
-Removes the setting of InputAttributes and OutputAttributes from the H-P
-drivers, since this causes more problems than it solves. (gdevdjet.c)
-
-</pre><h3><a name="V3.28_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - makeoperator assigned incorrect attributes to operators. (bug
-introduced in 3.27) (opdef.h, iinit.c, iutil.c, zmisc.c)
-
-</pre><h3><a name="V3.28_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - gs_makeimagedevice didn't set the caller's pointer to the newly
-created device. (bug introduced in 3.27) (gsdevice.c)
- - There were still some mismatches between char * and byte * values.
-(gsdparam.c)
- - The halftone replication algorithm could produce inappropriately
-large replicated masks. (gxht.c)
- - stroke usually did the wrong thing for degenerate (single-point)
-subpaths. (gxstroke.c)
-
-</pre>
-
-<h2><a name="Version3.27"></a>Version 3.27 (beta)(withdrawn) (2/8/95)</h2>
-
-<p>
-Yet another bug-fix beta release. This release had so many serious problems
-(the most serious being at least one changed file that the release tool
-failed to include in the fileset) that it was withdrawn less than a day
-after it was issued.
-
-<h3><a name="V3.27_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The NEWS for 3.26 didn't mention the fact that the stdxxx stream
-interface used by MS Windows, OS/2, and Macintosh implementations had
-changed. (NEWS)
- - The file public.doc wasn't distributed with the previous fileset.
-
-Brings the NeXTSTEP documentation up to date for NeXTSTEP releases 3.2 and
-subsequent. (make.doc)
-
-</pre><h3><a name="V3.27_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Some dependency lists in gs.mak were out of date. (gs.mak)
- - A 'fi;' was missing in the Unix install script. (unix-end.mak)
- - There was no VMS build script for the PDF options. (vms.mak)
- - The VMS script used CC_QUALI instead of CC_QUAL in several places.
-(vms.mak)
-
-</pre><h3><a name="V3.27_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2epsi's usage prompt referred to "pstoepsi". (ps2epsi)
- - ps2epsi set PATH and LOCALPATH unilaterally. (ps2epsi)
-
-Comments out the sample usage line at the end of viewjpeg.ps. (viewjpeg.ps)
-
-</pre><h3><a name="V3.27_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The fax and tiff drivers didn't free all of their working storage.
-(gdevtfax.c)
-
-Adds user-contributed drivers for the BJC 600 and ESC/P printers.
-(devs.mak, gdevcdj.c)
-
-</pre><h3><a name="V3.27_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - Some necessary casts of string parameters to (const byte *) were
-omitted. (gp_mswin.c, gp_os2.c)
-
-Adds the psmono and bit* drivers, and removes the p*m drivers, in the OS/2,
-32-bit MS-DOS, and 32-bit Windows configurations. (bcwin32.mak, os2.mak,
-watc.mak)
-
-</pre><h3><a name="V3.27_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The Fontmap for Ultrix had somehow become slightly incorrect.
-(Fontmap.Ult)
-
-Removes the font file names from the dependency lists in cfonts.mak. This
-makes cfonts.mak readily usable with any set of fonts, but it also means
-that it will always run font2c, rather than being able to avoid this if the
-.c file is up to date. (cfonts.mak)
-
-</pre><h3><a name="V3.27_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Some operators could fail if the stdxxx streams weren't currently
-open. (files.h, zfileio.c, ziodev.c)
- - setpagedevice didn't handle unrecognized keys properly.
-(gs_setpd.ps)
- - The value returned for the HWColorMap device parameter was
-allocated incorrectly, confusing the garbage collector. (iparam.c)
- - Typing ahead at the &gt;&gt;showpage&lt;&lt; prompt no longer caused all
-further pages to be processed without stopping. (gs_init.ps)
- - Setting DEVICEWIDTHPOINTS or DEVICEHEIGHTPOINTS on the command
-line caused a typecheck. (gs_init.ps)
- - The garbage collector didn't handle halftone threshold arrays
-properly. (zht2.c)
- - setdefaulttimeouts caused an error on Level 2 systems.
-(gs_lev2.ps)
- - cvi and cvr weren't equivalent to token followed by a type check.
-(iscan.h, iscannum.h, iscan.c, iscannum.c, ztoken.c, ztype.c)
- - In Level 2 systems, image and colorimage didn't allow 12 bits per
-sample. (zpaint.c)
- - If debugging was enabled, the garbage collector printed spurious
-error messages about the allocator objects not being in a chunk. (ialloc.c)
- - restore didn't reset the count of operator procedures, so the
-operator procedure table could fill up. Fixing this required splitting the
-op_array_table into a global table and a local table. (opdef.h, iinit.c,
-iutil.c, zmisc.c)
- - .forgetsave could leave a dangling pointer in the memory manager,
-causing an access error. (ialloc.c, isave.c)
- - Freed objects weren't always marked as freed, which could confuse
-the memory validator. (ialloc.c)
- - .forgetsave didn't mark inner chunk headers as free, leading to
-access errors. (isave.c)
-
-Changes the representation of operator procedures so that they point
-directly to their definition in the op_array_table. (iref.h, opdef.h,
-idebug.c, igc.c, igcref.c, interp.c, zmisc.c)
-
-Removes .makeglobaloperator. (zmisc.c)
-
-Adds patches to discard some common garbage produced by H-P-oriented
-applications and drivers. (gs_init.ps)
-
-Changes the &gt;&gt;showpage&lt;&lt; prompt so that if the input reaches EOF, the
-interpreter still stops after the next &gt;&gt;showpage&lt;&lt;, rather than processing
-all subsequent pages. This is a consequence of the bug fix that
-automatically reopens the stdxxx files.
-
-Adds an optional dictionary parameter for the RunLengthEncode/Decode
-filters, to allow specifying EndOfData. The default is true. (zfilter.c)
-
-Adds ByteTranslateEncode/Decode filters. (zfilter2.c)
-
-</pre><h3><a name="V3.27_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The K &gt; 0 option of the CCITTFaxDecode filter switched back to 2-D
-encoding if an output buffer boundary fell in the middle of a 1-D line, and
-signalled an error if an input buffer boundary fell in the middle of an EOL.
-(scfd.c)
-
-Adds an EndOfData flag to the RunLengthEncode/Decode filters. If true, RLE
-generates 128 as EOD, and RLD recognizes it; if false, RLE does not mark
-EOD, and RLD ignores 128. (srlx.h, gxclist.c, gxclread.c, sfilter1.c)
-
-Adds ByteTranslateEncode/Decode streams. (sbtx.h, sfilter2.c)
-
-</pre><h3><a name="V3.27_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There were some mismatches between char * and byte * values.
-(gsdparam.c)
- - Failure to round a scaling coordinate caused one-for-one
-black-and-white images to render slower than they should. (gsimage.c)
- - Setting PageSize without setting HWResolution could cause an
-invalid memory access. (gsdparam.c)
- - The garbage collector didn't handle halftone threshold arrays
-properly. (gxht.h, gsht.c, gsht1.c)
-
-</pre>
-
-<h2><a name="Version3.26"></a>Version 3.26 (beta) (2/1/95)</h2>
-
-<p>
-Yet another bug-fix beta release, still not ready for public release.
-
-<h3><a name="V3.26_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The description of device properties had gotten out of sync with
-the code. (language.doc)
-
-Splits off documentation specific to the Aladdin (non-GNU) release into a
-separate file. (readme, public.doc, unix-end.mak)
-
-Adds a pointer to a collection of other free fonts (including some Cyrillic
-ones) available on the net. (public.doc)
-
-</pre><h3><a name="V3.26_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - On VMS systems with both VAX C and DEC C installed, the build script
-used VAX C rather than DEC C. (vms.mak)
- - zfdecode.c didn't have a build rule. (gs.mak)
- - Several macros in the makefile were used before they were defined.
-(gs.mak)
- - Several macros in the makefile were used without being defined.
-(gs.mak)
-
-Replaces the gssetdev, gssetmod, and gsaddmod scripts with more variants of
-echogs. (echogs.c, gs.mak)
-
-</pre><h3><a name="V3.26_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The ps2ascii shell script passed a -f flag to the shell, which not
-all shells recognize. (ps2ascii)
-
-</pre><h3><a name="V3.26_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Due to a typo in an initialization string, the H-P printers didn't
-reset the top margin to zero. (gdevdjet.c)
-
-Adds InputAttributes and OutputAttributes entries to the H-P drivers. (This
-should probably be generic to all printers.) (gdevdjet.c)
-
-Replaces the contributed Epson Stylus Color driver with a newer version.
-(devices.doc, gdevstc.c)
-
-</pre><h3><a name="V3.26_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - DEC C complained about 'abs' and 'exit' not being declared. (x_.h)
- - gp_mswin.c and gp_os2.c wouldn't compile. (gp_mswin.c, gp_os2.c,
-ziodev.c)
-
-</pre><h3><a name="V3.26_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The default CIE rendering dictionary gave everything a magenta tint.
-(gs_lev2.ps)
- - Changing HWResolution and PageSize in the same call of
-setpagedevice produced an incorrect HWSize. (gsdparam.c)
- - .putdeviceparams didn't accept all the keys that .getdeviceparams
-returned. (gsdparam.c)
- - The default handler for interrupt and timeout errors didn't push a
-current object (command) on the stack. (gs_init.ps)
- - The garbage collector didn't handle strings larger than 64K
-properly. (iastate.h, ialloc.c, igcstr.c)
-
-Adds media matching and Policy consultation to the implementation of
-setpagedevice. (gs_setpd.ps)
-
-Adds a MaxGlobalVM system parameter. (zmisc2.c)
-
-</pre><h3><a name="V3.26_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxEncode filter could access a byte beyond the end of
-the allocated area. (scfe.c)
- - The CCITTFaxDecode filter could get an ioerror if a buffer
-boundary fell in exactly the wrong place. (scfd.c)
-
-</pre><h3><a name="V3.26_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The garbage collector didn't trace colored halftones properly.
-(gzht.h)
- - The garbage collector didn't relocate the bitmap pointers in
-halftone caches properly. (gzht.h, gxht.c)
-
-Adds the ability to transmit dictionaries through the param_list mechanism
-(specifically, as device parameters). This change is
-non-backward-compatible only for implementors of parameter lists, which only
-exist within the Ghostscript core. (gsparam.h, iparam.h, iparam.c)
-
-Removes the InitialMatrix device property. (gsdparam.c)
-
-</pre>
-
-<h2><a name="Version3.25"></a>Version 3.25 (beta) (1/24/95)</h2>
-
-<p>
-Yet another bug-fix beta release. There are still at least half a dozen
-significant known bugs to be fixed before a public release.
-
-<h3><a name="V3.25_Documentation"></a>Documentation</h3><pre>
-Notes that on Unix systems, one should not edit 'makefile', but should edit
-the individual subfile and run tar_cat. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE. (make.doc)
-
-Adds information on the Macintosh implementation. (readme)
-
-</pre><h3><a name="V3.25_Procedures"></a>Procedures</h3><pre>
-Fixes bugs:
- - make clean failed on Unix systems where rm -f requires at least one
-file name. (gs.mak)
- - math_.h was omitted from many dependency lists. (gs.mak)
-
-</pre><h3><a name="V3.25_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The X Windows and MS Windows draw-line routines couldn't possibly
-produce sufficiently correct output (since the interface only provides integer
-coordinates). (gdevx.c, gdevwddb.c)
-
-In response to patent-related actions by Unisys and CompuServe, removes the
-GIF driver. (*.mak)
-
-Changes dci_std_color (and std_device_std_color_* and prn_device_std_*) so
-that if the number of bits per pixel is 32, the device is defined as CMYK
-rather than RGB. (gxdevice.h)
-
-Removes the tseng8 device, which is no longer useful. (devs.mak, gdevsvga.c)
-
-Adds pseudo-alpha support to the SVGA drivers, via the TextAlphaBits and
-GraphicsAlphaBits device parameters. (gdevsvga.h, gdevsvga.c)
-
-Adds a user-contributed driver for the Epson Stylus Color printer. (devs.mak,
-gdevstc.c, devices.doc)
-
-</pre><h3><a name="V3.25_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS build scripts had gotten out of sync (again). (vms*.mak)
-
-</pre><h3><a name="V3.25_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The emulator name array was incorrectly declared const in one place.
-(gs.c)
- - A closed file could incorrectly appear to be 'eq' to another file
-(open or closed). (iutil.c)
- - If %stdin/%stdout/%stderr was ever closed, it couldn't be
-reopened. (gs_btokn.ps, gs_init.ps, files.h, zfile.c, zfileio.c, zfilter.c,
-zfproc.c, ziodev.c)
-
-Changes (almost) all the operator routines to 'static'. (z*.c)
-
-</pre><h3><a name="V3.25_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The raster value for replicated tiles in the halftone cache was
-incorrect, causing unaligned memory accesses. (gxht.c)
- - stroke and strokepath could produce slightly inaccurate output
-(leading to slight visible anomalies) as a result of stroke adjustment.
-(gxstroke.c)
- - Attempting to draw an arc with zero radius could cause a numeric
-exception. (gspath1.c)
- - Setting the Orientation of a device to null resulted in actually
-setting it to a random value. (gsdparam.c)
- - charpath, stringwidth, and cshow attempted to remap the current
-color unnecessarily. (gschar.c)
-
-Adds the ability to trace calls on the sqrt function (and possibly other math
-functions in the future.) (math_.h, gsmisc.c)
-
-Adds additional interrupt checks in the banding code. (gxclist.c, gxclread.c)
-
-</pre>
-
-<h2><a name="Version3.24"></a>Version 3.24 (beta) (1/17/95)</h2>
-
-<p>
-This was supposed to be a public release, but too many bugs showed up in 3.23,
-so this is another bug-fix beta release. This is the first release with a
-working PDF reader.
-
-<h3><a name="V3.24_Documentation"></a>Documentation</h3><pre>
-Notes that Solaris requires using installbsd instead of install. (make.doc)
-
-</pre><h3><a name="V3.24_Procedures"></a>Procedures</h3><pre>
-
-Changes 'make mostlyclean' so that it doesn't delete the Ghostscript
-executable (but deletes everything else that 'make clean' does). (gs.mak)
-
-Changes the link list generator so it eliminates duplicate library requests.
-(genconf.c)
-
-Factors the interpreter further so as to include less unnecessary PostScript
-support in the PDF interpreter. (gs.mak, zpath.c, zpath1.c)
-
-Adds a printout of the available language interpreters to the -h message.
-(genconf.c, gs.c, iinit.c, gs.mak)
-
-</pre><h3><a name="V3.24_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The alternate X drivers used a cast in an initializer, causing a
-compilation error on some platforms. (gdevxalt.c)
-
-Adds a driver for the LaserJet IIID, including duplex printing if specified by
-the Duplex page device parameter. (gdevdjet.c)
-
-Adds Orientation to the bit device. (gdevbit.c)
-
-</pre><h3><a name="V3.24_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - There was an extraneous pfen-&gt; in the NT file system module, causing
-a compilation error. (gp_ntfs.c)
- - The DLL code referred to an obsolete symbol a_foreign. (gsdll.c)
- - The VMS build scripts omitted the LaserJet 4 driver. (vms-*.mak)
- - The VMS build scripts had several other minor errors. (vms.mak)
-
-</pre><h3><a name="V3.24_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Defining a font alias in global VM with a name that was a string in
-local VM caused an error. (gs_fonts.ps)
- - The font compiler referred to an obsolete symbol a_foreign.
-(font2c.ps)
-
-</pre><h3><a name="V3.24_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - There was an extraneous '#' before an extern declaration.
-(gsmain.c)
- - The interpreter could (incorrectly) attempt to expand the e-stack.
-(istack.h, interp.c, istack.c)
- - zfproc.c called memcpy but didn't include memory_.h. (zfproc.c)
- - A garbage collection occurring within a 'save' would often smash
-memory. (igc.c)
- - If the last character returned by the procedure of a procedure-based
-filter was \r, readline could get an endless loop. (zfileio.c)
- - Saving a change to a ref member of a structure confused the garbage
-collector. (isave.h, isave.c, zdict.c)
- - The -Zu debugging printout could cause an access error under rare
-circumstances. (isave.c)
- - Save objects could get allocated in global VM, causing dangling
-references. (zvmem.c)
- - The vmsave object created by the interpreter for a save didn't get
-freed properly if the memory manager created an invisible save level, which
-could cause the next garbage collection to crash. (zvmem.c)
- - 'run' always printed an error message, rather than letting the
-top-level control loop do it. (gs.c, gs_init.ps)
-
-Adds support for duplex devices. (gxdevice.h, gsdparam.c, gs_statd.ps,
-gs_setpd.ps)
-
-Adds the beginnings of support for CID-keyed fonts. (gs_cidfn.ps)
-
-Changes the format of the stack dump printed for errors, to make it easier to
-read. (gs_init.ps)
-
-</pre><h3><a name="V3.24_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
-
-Fixes bugs:
- - The .local/global allocation operators always allocated in system
-VM. (zsysvm.c)
- - setpage[params] caused an error. (gs_lev2.ps)
- - If an error occurred during a cshow or (x|y|xy)show, the interpreter
-freed the enumerator twice. (zchar.c, zchar2.c)
-
-Changes setpageparams so that orientation = 0 means portrait. This is not
-compatible with AGFA's convention for roll-feed devices, but it is compatible
-with the more common cut-sheet printers. (gs_statd.ps)
-
-Adds meaningful values for the Emulator resource. (gsmain.c, gs_res.ps)
-
-Makes -Z? validate the state of memory before and after save and restore.
-(ialloc.h, igc.h, ialloc.c, igc.c, ilocate.c, zvmem.c)
-
-</pre><h3><a name="V3.24_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - The Unix install script didn't install the PDF files if they were
-present. (unix-end.mak)
- - PDF to PostScript conversion didn't work at all. (It still doesn't
-work very well.) (pdf_2ps.ps, pdf_main.ps)
- - Images with an Indexed color space and no Decode entry caused an
-error. (pdf_draw.ps)
- - The 'Page &lt;n&gt;' messages were printed even if QUIET was set.
-(pdf_main.ps)
-
-Changes the interpreter so that when it encounters an unknown operator, it
-prints an error message and continues, rather than signalling an error.
-(pdf_base.ps)
-
-Makes F a synonym for f if there is nothing on the operand stack, to
-compensate for a bug in some Adobe software. (pdf_base.ps)
-
-Changes pdfgetpage so it uses 1-origin rather than 0-origin indexing. THIS IS
-A NON-BACKWARD-COMPATIBLE CHANGE. (pdf_main.ps)
-
-</pre><h3><a name="V3.24_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The Group 3 2-D and Group 4 encoders produced incorrect output if a
-scan line beginning with a black pixel was followed by a scan line beginning
-with a white pixel. (scfe.c)
- - A SubFileDecode filter with a count of 1 and a non-empty EOD string
-would smash memory. (sfilter1.c)
-
-Updates the DCT filters so they will work with the latest version (5a) of the
-IJG library. (*.mak, jpeg.mak, sjpegerr.c)
-
-</pre><h3><a name="V3.24_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A call with integer parameters to a procedure with floating point
-arguments didn't work on non-ANSI compilers. (gsimage.c)
- - Arcs could get turned into polygons if the scaling values in the CTM
-were very large and the radius was (in user space coordinates) very small.
-(gspath.c)
- - The current point was defined when a BuildChar procedure was called.
-(This bug was documented as fixed in version 2.2!) (gschar.c)
-
-Adds support for Orientation and Duplex page device parameters, for those
-devices that support these. (gdevprn.h, gxdevice.h, gsdevice.c, gsdparam.c)
-
-</pre>
-
-<h2><a name="Version3.23"></a>Version 3.23 (beta) (1/5/95)</h2>
-
-<p>
-This is almost entirely a bug fix release. It also includes a largely working
-PDF reader. This is intended as the beta test release for the next public
-release.
-
-<h3><a name="V3.23_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - COPYLEFT, COPYING, NEWS, PUBLIC, README, and the standard Fontmap
-were omitted from the 3.22 fileset.
-
-Documents the use of the -oldc switch to work around a compiler crash on
-the DECstation.
-
-Expands and clarifies the documentation for building the DesqView/X version
-with djgcc. (make.doc)
-
-Adds documentation on the "600x300" H-P inkjet printers, explaining why
-this alleged higher resolution is not available. (devices.doc)
-
-Adds to the PUBLIC license a warning that it is not a GNU License, and a
-requirement to include a copy of or a pointer to the License in any written
-material. (PUBLIC)
-
-Documents the fact that Ghostscript *does* attempt to look up files in the
-current directory first. (use.doc)
-
-</pre><h3><a name="V3.23_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - In VMS.MAK, .JPEG should have been changed to .JPEG-5 in a few
-places. (vms.mak)
-
-Adds the pjxl300 driver to all configurations that include the other color
-DeskJet drivers. Replaces pjet and pjetxl with pj and pjxl. (*.mak)
-
-Makes 'run' recognize PDF files if the PDF reader is included.
-(pdf_main.ps)
-
-</pre><h3><a name="V3.23_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - viewjpeg.ps needed the test for languagelevel = 2 at the
-beginning of the file. (viewjpeg.ps)
- - prfont.ps used 'min', which isn't a standard PostScript operator.
-(prfont.ps)
- - prfont.ps created Encoding vectors that weren't 256 elements
-long. (prfont.ps)
-
-Adds the gsdj500 script to the installation list. (unix-end.mak)
-
-Changes the Unix "line printer" shell scripts to add the date to the page
-header. (gsbj, gsdj, gsdj500, gslj)
-
-Changes ansi2knr so that it will work properly on systems where the ctype
-macros don't handle 8-bit characters correctly. (ansi2knr.c)
-
-</pre><h3><a name="V3.23_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Some compilers don't allow casts in initialization expressions.
-(gdevx.c, gdevxalt.c)
- - The cdj drivers didn't initialize the color_info structure
-properly. (gdevcdj.c)
-
-Adds another alternate X Windows driver, x11mono, that is a black-and-white
-device. (devs.mak, gdevxalt.c)
-
-Adds a user-contributed driver for the Apple Imagewriter LQ. (devs.mak,
-gdevadmp.c)
-
-</pre><h3><a name="V3.23_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS MODULES.LIS file had gotten out of sync with the makefile
-(again); GDEVABUF and GSBITOPS were missing. (modules.lis)
- - The VMS script file had gotten out of sync with the makefile
-(again). (vms.mak)
- - The MS Windows platform code didn't recognize Windows 95 (Windows
-4.0) as equivalent to Windows NT. (gp_mswin.c)
- - File name enumeration didn't work on OS/2 or win32. (gp_ntfs.c,
-gp_os2.c)
- - -sOutputFile= didn't work under MS Windows. (gp_mswin.c)
-
-Changes the SCO Unix direct frame buffer driver so it generates in-line
-instructions to access the frame buffer, for a dramatic speed improvement.
-(gdevpcfb.h, gdevsco.c)
-
-</pre><h3><a name="V3.23_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - If a font couldn't be found in the Fontmap, a recursion loop
-sometimes occurred. (gs_fonts.ps)
- - Aliases for global fonts weren't automatically created as global,
-possibly leading to a recursion loop. (gs_dps1.ps, gs_fonts.ps)
- - If a font was loaded into global VM within an inner save, the restore
-deleted it from FontDirectory but not from SharedFontDirectory, causing a
-possible recursion loop. (gs_dps1.ps, gs_fonts.ps, idict.h, idict.c, zdict.c)
-
-Further improves the algorithm for substituting for unknown fonts.
-(gs_fonts.ps)
-
-</pre><h3><a name="V3.23_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
-
-Fixes bugs:
- - zcontrol.c had an assignment of const char * to const byte *,
-which some compilers don't like. (zcontrol.c)
- - Setting an Indexed color space based on a CIE space caused an
-attempt to free a random block of memory. (zcsindex.c)
- - Some compilers don't like mixing conditionals and casts in
-initialization expressions. (iref.h)
- - Some calculations of table sizes for string garbage collection
-didn't work if sizeof(long) != 4, leading to smashed strings. (iastate.h,
-ialloc.c, igcstr.c)
- - Strings longer than about 7000 bytes smashed their chunk header
-and confused the garbage collector. (ialloc.c)
- - Some compilers needed iccfont.c to include strimpl.h.
-(iccfont.c)
- - The obsolete file zcspace2.c was still included in the fileset.
- - If the command line included any @-files that required searching
-the library path, a limitcheck would occur. (zfile.c)
- - The insideness testing operators caused a memory access error,
-because the procedure vector hadn't been updated to provide a default
-get_alpha_bits procedure. (zupath.c)
- - gcheck didn't check for stack underflow. (zvmem2.c)
- - cleardictstack could fail to clear the dictionary stack if the
-stack had overflowed into additional blocks. (zdict.c)
- - If the '-' switch was selected, resources weren't released
-properly on exit. (gs.c)
- - Setting a Pattern color space based on a CIE space caused an
-invalid memory access. (zcsindex.c)
- - The garbage collector didn't treat refs properly on machines with
-short ints. (igcref.c)
- - Operators with more than 16 arguments could break the
-interpreter. (interp.h, iinit.c, interp.c)
- - save/restore didn't restore the setting of the current allocator
-VM (local/global). (isstate.h, isave.c)
- - stdpre.h declared exit as an extern, instead of letting gsmain.c
-declare it. (stdpre.h, gsmain.c)
- - gs.c used fputs to print help messages rather than fprintf.
-(gs.c)
- - Interrupts failed to re-execute the operation that was
-interrupted. (interp.c)
- - Low-resolution CMYK devices didn't use separate screens for each
-color plane as the default. (gs_init.ps)
- - filterdict wasn't getting undef'ed at the end of initialization.
-(gs_init.ps)
- - gstate operations were broken (bug introduced in 3.02).
-(zdevice2.c)
- - resourceforall didn't remove the resource dictionary from the
-dictionary stack when calling the client-supplied procedure. (gs_res.ps)
- - currentcolor with an Indexed color space returned a real rather
-than an integer. (zcolor2.c)
- - setshared / setglobal left the stack in an unobvious state if
-they were given a non-Boolean argument. (gs_dps1.ps)
- - sethalftone followed by currenthalftone returned an invalid value.
-(zht2.c)
- - Empty strings produced spurious garbage collector error messages.
-(gsstruct.h, scommon.h, igc.c, igcstr.c, iname.c)
- - The garbage collector didn't trace Separation color spaces properly.
-(gscsepr.c)
-
-Changes defineresource so that it does not, by default, make instances
-read-only. (gs_res.ps)
-
-Adds .{local,global}{array,dict,packedarray,string} operators for creating
-objects in a specific VM space. (zsysvm.c, gs_dps1.ps)
-
-Adds definitions of setpage and setpageparams to statusdict. (gs_setpd.ps,
-gs_statd.ps)
-
-Alleviates some performance problems in the garbage collector. (igc.c)
-
-</pre><h3><a name="V3.23_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - PDF files that used filters with parameters caused a typecheck
-error because the arguments to 'filter' were reversed. (pdf_base.ps)
- - The (undocumented) PDF 1.1 ability to specify link and annotation
-destinations indirectly was not supported. (pdf_main.ps)
- - The (undocumented) PDF ability to specify a null page in a link
-destination was not supported. (pdf_main.ps)
- - The PDF encodings weren't loaded properly in a system with both
-PS Level 2 and PDF features. (gs_res.ps, gs_init.ps)
- - If the next line after a stream keyword was blank, the line
-wasn't skipped, which matters for binary data. (pdf_base.ps)
- - A Q operator with no matching q operator caused an error.
-(pdf_draw.ps)
- - The text position wasn't preserved across a fill or stroke
-operator. (gs_pdf.ps, pdf_draw.ps)
- - Embedded Type 3 fonts didn't work. (pdf_base.ps, pdf_draw.ps,
-pdf_main.ps)
- - Masked images with no Decode value had their polarity inverted.
-(pdf_draw.ps)
- - Embedded Type 1 fonts referenced from within a stream didn't
-work. (pdf_font.ps)
-
-Changes the PDF code so that it automatically recognizes PDF files as such.
-(pdf_main.ps)
-
-Splits out the PixelDifference filters as a separate "feature". (gs.mak)
-
-</pre><h3><a name="V3.23_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Closing the primary input stream caused an invalid memory access.
-(stream.c)
- - Increasing the size of a buffer within a save resulted in a
-dangling reference after the restore. (files.h, sfilter.h, zfile.c,
-zfilter.c)
- - The garbage collector didn't properly trace streams that referenced
-strings directly. (stream.h, stream.c, ziodev.c)
-
-</pre><h3><a name="V3.23_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - An extraneous \ upset some compilers. (gdevabuf.c)
- - Uncolored Patterns that completely filled their bounding box
-caused an invalid memory access. (gspcolor.c)
- - If a color image required clipping, black or white pixels might
-be rendered with incorrect (random) colors. (gxcpath.c)
- - Reference counts for color spaces were sometimes set too high, so
-they would only be freed by restore or garbage collection. (gscolor.c)
- - The character cache could get confused if the Encoding for the
-character wasn't a name. (gschar.c)
- - Character outlines were always rendered with flatness = 0,
-causing very bad performance for large characters. (gzstate.h, gschar.c,
-gsimage.c, gxfill.c, gxstroke.c)
- - If a device (presumably uninitialized) had a
-color_info.num_components of zero, an invalid memory access could occur.
-(gsdparam.c)
- - Intersecting clipping paths that are not both rectangular didn't
-properly set the outer box of new clipping path, leading to unnecessary
-computation. (gxcpath.h, gxacpath.c, gxcpath.c)
- - A call passed false instead of NULL. (gschar.c)
- - On machines where sizeof returns a long, genarch.c failed.
-(genarch.c)
- - xfonts were consulted, incorrectly, even for stroked characters.
-(gxccman.c)
- - gstate/currentgstate/setgstate didn't work properly. (gsline.c,
-gsstate.c)
- - On CMYK devices needing halftoning, colors with C = M = Y were
-always converted to gray shades. (gxcmap.c)
- - Isolated horizontal lines, or the horizontal edges of rectangles,
-could get drawn with one or both end pixels missing. (gxfill.c)
-
-Changes the character cache back so it oversamples characters at small
-sizes. (gschar.c)
-
-Changes all occurrences of (void)x to discard(x), and defines discard in
-stdpre.h as a cast to void, to make it possible to pacify compilers that
-don't accept this construct for some kinds of x. (gpcheck.h, stdpre.h,
-store.h, gdevmswn.c, gp_mswin.c, gscoord.c, gxclread.c, igc.c, sfile.c,
-sfileno.c, zcie.c, zht2.c, ziodev.c, zmisc1.c)
-
-Increases the size of the halftone cache on large-memory machines from 35K
-to 100K. This substantially improves halftoning performance at higher
-resolutions. (gxht.c)
-
-</pre>
-
-<h2><a name="Version3.22"></a>Version 3.22 (beta) (11/30/94)</h2>
-
-<p>
-This is primarily a bug fix release. It also includes limited anti-aliased
-graphics capability. This release was not distributed to the public.
-
-<h3><a name="V3.22_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The definition of ghost_h was misplaced, so changes in it or its
-antecedents didn't force recompilation of its dependents. (gs.mak)
-
-Actually implements the -Z+ switch, for forcing small stack blocks.
-(interp.c)
-
-Makes the -dSAFER switch disable the %pipe syntax for file names, even for
-reading. (gs_init.ps)
-
-</pre><h3><a name="V3.22_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The dfax drivers incorrectly set EncodedByteAlign to false.
-(gdevdfax.c)
- - softwareValue and dateTimeValue were declared as byte rather than
-char. (gdevtfax.c)
-
-</pre><h3><a name="V3.22_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS DEC C compilers declare delete in unixio.h, and doesn't
-declare unlink anywhere. (stdio_.h)
- - The VMS compilers declare malloc and free in stdlib.h, which
-wasn't being included in malloc_.h. (malloc_.h)
- - The SCO Unix C compiler needs both &lt;sys/time.h&gt; and &lt;time.h&gt;.
-(time_.h)
- - The VMS compilers declare abs in stdlib.h, which wasn't being
-included anywhere. (gshtscr.c)
- - The definition for A4 paper in VMS-AXP.MAK was incorrect.
-(vms-axp.mak)
-
-Renames VMS-AXP.MAK as VMS-DECC.MAK, with some changes that make it
-appropriate for DEC C on both VAX and AXP platforms. (vms-axp.mak =&gt;
-vms.decc.mak)
-
-</pre><h3><a name="V3.22_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - gs_kanji.ps got an invalidaccess error. (gs_kanji.ps)
-
-</pre><h3><a name="V3.22_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - An off-by-1 test in the roll operator caused it to smash the
-stack if the operand stack had overflowed into additional blocks.
-(zstack.c)
- - The default CIE color rendering dictionary didn't assume a
-reasonable intermediate (XYZ) space. (gs_lev2.ps)
- - CIE color mapping tables weren't traced properly by the garbage
-collector. (gscie.h, gscie.c, zcie.c)
- - If the very last character of a file was a ^M, the scanner
-(incorrectly) signaled a syntaxerror. (iscan.c)
- - If an operator could return both a typecheck and a
-stackunderflow, it always returned a stackunderflow, which doesn't match
-the behavior of Adobe interpreters. (opcheck.h, idparam.c, interp.c,
-iutil.c, z*.c)
- - astore, dictstack, and execstack could return a spurious
-invalidaccess error (or fail to detect an invalid access) if the operand
-stack had overflowed into additional blocks. (istack.c)
- - The garbage collector didn't relocate pointers to names! (Bug
-introduced in 3.20.) (iname.h)
- - If the dictionary stack overflowed into additional blocks, the
-cached value pointer for a name could get set incorrectly, and also not get
-relocated by the garbage collector. (idict.c)
- - If the dictionary stack overflowed into additional blocks, the
-post-GC fixup of cached value pointers in names could cause an addressing
-error. (igc.c)
- - With the -Z? switch set, the garbage collector could incorrectly
-report that objects or strings weren't in any chunk. (igc.c)
- - &lt;&lt; /a 1 /a 2 &gt;&gt; /a get gave the value 2 rather than 1.
-(gs_init.ps)
- - Numbers in binary object sequences and encoded number arrays
-didn't work properly on machines where sizeof(short) != 2 or sizeof(long)
-!= 4. (ibnum.c)
- - The put operator for dictionaries allowed null as a key.
-(idict.h, idict.c)
- - &gt;&gt; didn't give an error if there were an odd number of values on
-the stack above the next mark. (gs_init.ps)
- - Operations that explicitly freed ref objects (setting a CIE
-colorspace, resizing a dictionary, popping a block off a stack) could
-corrupt storage. (ialloc.c)
- - The -Z@ switch, which fills freed blocks with a recognizable bit
-pattern, could incorrectly overwrite freed blocks in previous save levels,
-causing invalid memory accesses. (ialloc.c)
- - Since streams freed by a restore weren't marked as free, they
-could confuse the garbage collector and lead to invalid memory accesses.
-(zfile.c)
- - If one of the built-in dictionaries overflowed during
-initialization, no error was reported -- entries were simply discarded.
-(iinit.c)
- - If the level2.dev feature was combined with certain other
-features, the current languagelevel was 2 when some gs_*.ps files were
-loaded, causing them to load incorrectly. (gs_btokn.ps, gs_setpd.ps)
- - If readline read a line that ended with only a CR (no LF)
-followed by an end-of-file, it incorrectly closed the stream. (zfileio.c)
-
-Adds a .cond operator, similar to the Lisp multi-arm conditional.
-(zcontrol.c)
-
-Adds a .makeglobaloperator operator, allowing the definition of operator
-procedures in local VM that turn into global operators, provided the save
-level is zero. (iref.h, opdef.h, iinit.c, interp.c, zmisc.c)
-
-Note: the fix for returning typecheck vs. stackunderflow requires that all
-operators (or other code) that uses return_error(e_typecheck) to indicate
-an incorrect object type on the operand stack must change this to
-return_op_typecheck(op), where op points to the operand. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE.
-
-Implements string array and name array parameters for parameter lists.
-(gsparam.h, iparam.c)
-
-Brings filterdict inside the INITIAL_DICTIONARIES conditional. (iinit.c)
-
-Adds a .currentscreenlevels operator that returns the number of
-distinguishable halftone levels. (zht.c)
-
-</pre><h3><a name="V3.22_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The 2-D case of CCITTFaxDecode could get confused by an input
-data buffer boundary that fell immediately after a horizontal code.
-(scfd.c)
- - The LZW decoder didn't detect invalid data unless DEBUG was
-selected at build time. (slzwd.c)
-
-</pre><h3><a name="V3.22_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The clipping region accumulator could refer to a clipping
-rectangle even after it had been freed. (No effect on execution unless the
--Z@ switch was selected.) (gxacpath.c)
- - setbbox expanded the bounding box, but didn't place a limit on
-further path elements, if the current path wasn't empty. (gsdps1.c)
- - setbbox didn't make sufficient allowance for rounding.
-(gsdps1.c)
-
-Implements the ProcessColorModel parameter (read-only) for all devices.
-(gsdparam.c)
-
-Adds a gs_currentscreenlevels procedure that returns the number of
-distinguishable halftone levels. (gsht.c)
-
-</pre>
-
-<h2><a name="Version3.21"></a>Version 3.21 (beta) (11/17/94)</h2>
-
-<p>
-This is primarily a bug fix release. It also includes a substantial
-improvement in the Type 1 font hinting algorithms. This release was not
-distributed to the public.
-
-<h3><a name="V3.21_Documentation"></a>Documentation</h3><pre>
-Fixes bugs:
- - The `man' page referred to gnu.ghostscript.bug rather than
-comp.lang.postscript. (gs.1)
-
-Documents the special entries in operator definition tables that allow
-switching dictionaries. (opdef.h)
-
-</pre><h3><a name="V3.21_Procedures"></a>Procedures</h3><pre>
-
-Moves the definition of JSRCDIR to the individual platform makefiles, to
-make it easier to change on platforms that don't have file links. (*.mak)
-
-</pre><h3><a name="V3.21_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ansi2knr didn't recognize that a line ending with } couldn't be a
-function definition. (ansi2knr.c)
- - ps2epsi always returned an empty bounding box. (ps2epsi,
-ps2epsi.bat)
-
-</pre><h3><a name="V3.21_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The bitrgb device had an invalid depth of 3. (gdevbit.c)
-
-Replaces the color mapping code in the X driver with a much faster
-algorithm, courtesy of Tim Theisen. (gdevx.h, gdevx.c, gdevxini.c)
-
-</pre><h3><a name="V3.21_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - Two variable names were misspelled. (gdevpm.c, gp_mswin.c)
- - It wasn't possible to compile a non-DLL configuration under OS/2.
-(os2.mak)
- - Compilation under Microsoft C/C++ 8.0 gave errors. (gp_mswin.h,
-gp_mswin.c, gshtscr.c)
-
-Adds some more devices to the OS/2 makefile. (os2.mak)
-
-</pre><h3><a name="V3.21_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - wrfont.ps, and hence bdftops, didn't write out the FontType or
-PaintType. (Bug introduced since 2.6.1) (wrfont.ps)
- - wrfont.ps omitted a 'begin' and 'end', causing -! or -| to be
-undefined when the font was loaded. (Bug introduced since 2.6.1)
-(wrfont.ps)
-
-</pre><h3><a name="V3.21_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - make_tasv_old called make_tasv_new with extra arguments.
-(store.h)
- - currentcacheparams only returned 2 values instead of 3.
-(zfont.c)
- - ustroke popped one element too many off the stack if a matrix was
-supplied. (zupath.c)
- - inu[eo]fill popped one element too many off the stack.
-(zupath.c)
- - The color rendering dictionary was initialized to null rather
-than a valid dictionary. (gs_lev2.ps)
- - An invalid IODevice resource named "9" got created. (gs_res.ps)
- - bytesavailable often caused an error rather than returning -1.
-(zfileio.c, stream.c)
- - The insideness testing operators always returned true if the
-aperture was defined by a user path rather than a point. (zupath.c)
- - If INITIAL_DICTIONARIES was defined in the makefile, the
-definition of the initial_dictionaries array was missing a comma.
-(iinit.c)
- - Even if userdict appeared in INITIAL_DICTIONARIES, gs_init.ps set
-its maxlength to 200. (gs_init.ps)
- - Setting a CIE color space left a garbage value on the stack.
-(zcie.c)
- - If a file or filter was opened and then closed, opening a file
-subsequently within a 'save' could lead to a memory access error in the
-garbage collector. (zfile.c)
- - Setting an Indexed or Separation color space could cause a crash
-either in the garbage collector or when printing out the e-stack.
-(icsmap.h, zcsindex.c, zcssepr.c)
- - Invoking a filter with an invalid data source or sink could cause
-a memory access error (bug introduced in 3.20). (zfilter.c)
- - Invoking stringwidth on a font whose BuildChar procedure did a
-save could cause a memory manager error or infinite loop, because
-stringwidth attempted to use an inapplicable shortcut. (gschar.c)
- - The bounding box for rendering stroked Type 1 characters didn't
-take square caps and miter joins into account. (gs_type1.ps)
- - Invoking filter with DCTDecode or DCTEncode could cause an
-addressing error if no dictionary argument was supplied. (zfdctd.c,
-zfdcte.c)
- - The Generic resource, the Font resource, and half a dozen
-resources with no predefined instances all shared the same Instances
-dictionary. (gs_res.ps)
- - The temporary null device allocated for stringwidth was never
-freed. (gschar.h, gschar.c, zchar.c)
- - Internal operators, and structures that might be freed on stack
-unwinding, could "escape" from the e-stack. (zcontrol.c, ztype.c)
- - makefont and scalefont didn't properly handle a font whose
-Encoding had been changed. (bfont.h, zfont.c, zfont2.c)
- - Type 1 fonts with PaintType = 2 incorrectly checked for an xfont.
-(gxfont.h, gschar.c, gsfont.c, zchar1.c, zfont1.c, zfont2.c)
- - Specifying a string argument with -d...=(...) or -d...=&lt;...&gt;
-would cause an invalidaccess error. (gs.c)
- - The environment for encapsulated jobs didn't rebind quit to stop
-in userdict. (gs_lev2.ps)
- - restore didn't deal properly with open files on the e-stack.
-(zvmem.c)
- - Even with the '-' switch, Ghostscript would try to read ahead in
-the input stream rather than processing input character-by-character.
-(ziodev.c)
- - If an error occurred with a unreadable dictionary on any stack,
-the standard error printer would get into an error loop and exit the
-interpreter. (gs_init.ps)
- - The for_roots macro in igc.c used ap rather than mem as its
-second formal parameter. (This typo had no effect on the executable
-program.) (igc.c)
- - If saving the stacks for an error caused a GC request, a value
-could get stored into an improper variable on the C stack, causing havoc.
-(interp.c)
- - setdash checked to make sure that the distance array had read
-access; Adobe interpreters don't check this. (zgstate.c)
- - The roots for gs_run_string and gs_interpret weren't registered
-properly, which could cause a dangling reference in the case of a restore
-whose save had been done earlier. (gsmain.c, interp.c)
-
-Adds an OpenOutputFile Boolean device parameter for printer devices; if
-true, the device opens the OutputFile at the time the device is opened,
-instead of waiting for the first showpage. This helps with synchronization
-when the OutputFile is a pipe. (gdevprn.h, gdevprn.c)
-
-Changes the BEGIN/END_OP_DEFS macros to require an explicit { and } at each
-use. (gsmain.c, interp.c, z*.c)
-
-Arranges things so that the operators that the interpreter handles
-specially are assigned the first N operator indices [internal change only].
-(interp.h, iinit.c, interp.c)
-
-Changes the operators max and min to .max and .min, to avoid conflicts with
-PostScript programs that use these names for variables and also use 'bind'.
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE from programs that depend on
-'bind' binding in these operators; however, we have also defined procedures
-max and min that just call the operators, which should take care of any
-ordinary code. (*.ps, zrelbit.c)
-
-</pre><h3><a name="V3.21_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The pfb_state pointer in the eexecDecode filter state wasn't
-marked as traceable for the garbage collector. (sfilter.h)
- - The eexec decoding filter could access invalid memory or return
-garbage under some conditions. (Bug introduced in 3.12.) (zmisc1.c)
- - The eexec decoding filter would incorrectly ask for more input if
-the output buffer was full. (seexec.c)
-
-</pre><h3><a name="V3.21_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some compilers reserve the word 'try'. (gshtscr.c)
- - Some compilers don't like line continuations (\) within a
-preprocessor macro formal parameter list. (gdevprn.h, gxdevice.h)
- - Memory devices created with an inverted palette (0=white,
-1=black) interchanged white and black in fill operations. (gdevmem1.c)
- - The 'bits' variable in mem_mono_copy_mono was unused on
-little-endian machines. (gdevmem1.c)
- - Some garbage collector procedures were declared 'private'
-inconsistently. (gscie.c)
- - The new anti-aliased text capability accidentally caused all
-characters to be oversampled. (gschar.c)
- - Type 1 fonts with PaintType = 2 and StrokeWidth = 0 came out with
-many pixels missing because of oversampling. (gschar.c)
- - Type 1 font stem hints were not being processed correctly.
-(gstype1.h, gxtype1.h, gstype1.c, gxhint2.c, gxhint3.c, gxpath.c)
- - The tracing message for 9/7 composite fonts incorrectly
-identified them as 1/7 fonts. (gschar0.c)
- - If a 1/7 or 9/7 composite font was a child of a non-modal font,
-the font number of the child font was computed incorrectly. (gschar0.c)
-
-Splits up the various memory devices into one file per depth [internal
-change only]. (gdevm*.c)
-
-</pre>
-
-<h2><a name="Version3.20"></a>Version 3.20 (beta) (10/31/94)</h2>
-
-<p>
-This version contains some support for a PDF interpreter; however, the PDF
-code itself is not ready for release yet. It also includes anti-aliased text
-capability. This release was not distributed to the public.
-
-<h3><a name="V3.20_Documentation"></a>Documentation</h3><pre>
-Notes that the FAQ has moved to smallo.ruhr.de:pub/ghost/gs.faq. (readme)
-
-Documents various implementation limits. (language.doc)
-
-</pre><h3><a name="V3.20_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - bcp.dev wasn't included in the list of dependencies for
-level1.dev. (gs.mak)
-
-Changes the printout of version numbers so that it is always A.BC,
-rather than A.B if C is zero. (gs.c, gs_init.ps)
-
-</pre><h3><a name="V3.20_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - font2c didn't correctly handle Metrics or Metrics2 dictionaries
-whose entries were arrays rather than scalars. (font2c.ps, ccfont.h,
-iccfont.c)
- - font2c didn't handle CDevProc. (font2c.ps, ccfont.h, iccfont.c)
- - genconf could get a stack overflow on small machines.
-(genconf.c)
-
-Changes mergeini.ps so it can take arguments on the command line specifying
-the input and output files. (mergeini.ps)
-
-Adds a gsdj500 shell script to parallel gsdj500.bat. (gsdj500)
-
-</pre><h3><a name="V3.20_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The X driver didn't mask dynamically assigned colors properly, so
-it could request the same color over and over again. (gdevx.c)
-
-Adds two alternate X Windows drivers, for helping debug drivers with other
-color models:
- - x11alpha, an RGB device with 4-bit alpha capability (for
- copy_alpha only);
- - x11cmyk, a 1-bit-per-component CMYK device.
-(devs.mak, gdevxalt.c)
-
-Changes the left margin of the lj4dith driver to 0.26". (gdevcdj.c)
-
-</pre><h3><a name="V3.20_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - If &lt;sys/time.h&gt; didn't exist, time_.h didn't always include
-&lt;time.h&gt;. (time_.h)
- - The OS/2 platform wouldn't compile. (gdevpm.c)
- - The auxiliary VMS command files sometimes got blank lines
-inserted when going through EOL conversion. (vms.mak; delete gs_.com)
- - The VMS makefiles didn't include the Level 1 operators in
-level1.dev. (vms.mak)
- - The VMS gcc makefile didn't handle undefined DEVICE_DEVSn
-variables properly. (vms*.mak)
- - The VMS makefiles didn't recognize DEVICE_DEVS{1,2,5,7}.
-(vms.mak)
-
-At the request of a Unix expert, changes all the Unix shell scripts to use
-exec gs ... "$@" rather than gs ... $*. (gsnd, gsbj, gsdj, gslj, gslp)
-
-Modifies the JPEG library so that it uses 4K less of the automatic data
-segment in 16-bit environments. (bcwin.mak, jpeg.mak, sjpeg.c, sjpegerr.c)
-
-Adds the bmp drivers back into the 16-bit MS Windows executable, since they
-will fit now. (bcwin.mak)
-
-</pre><h3><a name="V3.20_Fonts"></a>Fonts</h3><pre>
-
-Makes the font substitution algorithm recognize the word Roman as calling
-for a serif font. (gs_fonts.ps)
-
-</pre><h3><a name="V3.20_Interpreters"></a>Interpreters</h3><pre>
-
-Fixes bugs:
- - The fix in 3.13 for the inexact function values at 0 didn't work.
-(zcontrol.c)
- - Level 1 configurations referenced an undefined procedure
-gs_currenthalftone. (gsht.c, gsht1.c)
- - Specifying any device properties (including -r and -g) on the
-command line caused an error. (gs_init.ps)
- - The forward declaration of cfont_name_array_create was
-incorrect. (iccfont.c)
- - save and restore could get called before the graphics state stack
-had been initialized properly. (gs_mex_e.ps)
- - Some encodings weren't loaded properly. (gs.mak, gs_mex_e.ps,
-gs_mro_e.ps, gs_pdf_e.ps, gs_wan_e.ps)
- - Zero-height images were allowed, but zero-width images
-weren't. (zpaint.c)
- - Neither zero-width nor zero-height images popped their
-arguments from the operand stack. (zpaint.c)
- - lib_file_fopen overwrote its file name argument, causing havoc
-with @-files. (gxiodev.h, gdevpipe.c, gsiodev.c, zfile.c)
- - The garbage collector got confused if there were any arrays or
-dictionaries with 8K or more elements. (igcref.c)
- - &gt;&gt; could leave the stacks in a questionable state if it failed.
-(gs_init.ps)
- - The Category resource category didn't implement undefineresource.
-(gs_res.ps)
- - When the token operator read the last token from a string, it
-left an unchanged string on the stack instead of an empty string.
-(stream.c)
- - noaccess didn't give an invalidaccess error when applied to the
-permanent dictionaries. (dstack.h, idict.c, ztype.c)
- - Overflowing the exec stack wasn't handled properly. (istack.h,
-istack.c)
- - The garbage collector cleared the cached value pointers in names,
-causing interpretation to slow down substantially. (idict.c, igc.c,
-iname.c)
- - 0 dict created a dictionary with a maxlength of 1. (idict.c)
-
-Changes the default size of the execution stack from 150 to 250, to match
-the Adobe "typical" value. (interp.c)
-
-Moves the operator definitions out of the automatic data segment.
-(opdef.h, iinit.c, z*.c)
-
-Adds operators that allow creation of objects in system space:
-.systemvmstring, .systemvmarray, .systemvmpackedarray, .systemvmdict,
-.systemvmcheck. (zsysvm.c)
-
-Renames gcdefs.h as gscdefs.h.
-
-Allocates names in system space rather than global space. (gsmain.c)
-
-Changes the memory manager so that it allows programs to create objects in
-system space. (iref.h, iutil.h, ivmspace.h, ...)
-
-Changes the implementation of filters so they appear in their own
-dictionary named filterdict. (gs_init.ps, z*.c)
-
-Changes the implementation of color spaces so each one has its own
-setcolorspace procedure, defined in a new dictionary named
-colorspacedict. (gs_lev2.ps, z*.c)
-
-Adds a new debugging switch, $, that always initializes all fields in a
-ref, in order to keep Purify happy. (store.h)
-
-</pre><h3><a name="V3.20_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The page size for image devices was always set to (0, 0).
-(gsdevice.c)
- - The PageSize computation in gx_default_put_params could overflow
-on 16-bit machines. (gsdparam.c)
- - An omitted 'static' on an initialized array caused a compiler
-error. (gxccman.c)
- - If interpolated image rendering was requested but not
-actually carried out, gs_image_cleanup could attempt to free a random
-pointer. (gsimage.c)
- - Some compilers only retain 23 characters of procedure names, but
-some procedure names weren't unique in the first 23 characters. (gscie.c,
-gscolor.c, gscolor1.c, gxcmap.c)
- - The garbage collector didn't trace device colors properly.
-(gxdcolor.h, gzht.h, gsimage1.c, gspcolor.c, gxcht.c, gxcmap.c, gxdraw.c,
-gxht.c)
- - For CMYK devices, the transfer functions were being applied to
-the CMYK values rather than the complemented RGBW values. (gxcmap.c)
- - Memory devices used their own color mapping procedures rather
-than those of the target; this could cause incorrect colors for patterns on
-devices with more than 1 bit per pixel. (gxdevmem.h, gdevmem1.c, gdevpm.c,
-gdevprn.c, gdevwdib.c, gschar.c, gsdevice.c, gxccache.c, gxccman.c,
-gxclip2.c, gxclread.c, gxpcmap.c)
- - The garbage collector didn't trace image enumerators properly in
-the image_render_simple case. (gsimage.c)
- - stroke produced different-looking output for thin (zero-width)
-lines depending on whether or not clipping was invoked. (gxstroke.c)
- - If a clipping list changed from multiple rectangles to a single
-rectangle, it could fail to clip properly thereafter. (gxacpath.c)
-
-Adds two new device procedures: alpha_bits and copy_alpha. This change is
-backward-compatible for all existing devices. (gdevmem.h, gxdevice.h,
-gsdevice.c, gxclip2.c, gxclist.c, gxcpath.c)
-
-Changes the implementation of color halftones so that, when appropriate, it
-generates a single cell and uses the device tile_rectangle procedure.
-(gzht.h, gsht.c, gxcht.c, gxclist.c, gxclread.c)
-
-Adds partial support for the Orientation page device parameter.
-(gsdevice.c)
-
-Adds support for anti-aliased characters using 2 or 4 bits of alpha.
-(gxfcache.h, gschar.c, gxccache.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.13"></a>Version 3.13(private) (10/3/94)</h2>
-
-<p>
-This release was created for a customer; it was not distributed to the
-public.
-
-<h3><a name="V3.13_Documentation"></a>Documentation</h3><pre>
-Notes in make.doc that the file names in the IJG archive distributed with
-Ghostscript do not include the gsA.BC/ prefix. (make.doc)
-
-Adds a cross-reference to make.doc to the Watcom makefiles. (watc.mak,
-watcwin.mak, wccommon.mak)
-
-</pre><h3><a name="V3.13_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The makefile rule for gconfig.h et al had a couple of blank lines
-in the middle of it. (gs.mak)
-
-</pre><h3><a name="V3.13_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - wrfont.ps didn't add a lenIV entry to the Private dictionary if
-it was needed. (wrfont.ps)
-
-Adds a packfile.ps utility that allows compressing multiple files into a
-single file for environments with very little permanent storage.
-(gs_pfile.ps, packfile.ps, wrfont.ps)
-
-</pre><h3><a name="V3.13_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The {tiff,fax}{g32d,g4} devices could produce incorrect output.
-See under Streams below.
- - The dfax drivers referred to the obsolete structure member
-EncodedEOLAlign. (gdevdfax.c)
-
-Changes the default bit order for TIFF/F output to little-endian, which is
-apparently what the majority of TIFF decoders like best. The bit order for
-the fax drivers is still big-endian. (gdevdfax.c, gdevtfax.c)
-
-</pre><h3><a name="V3.13_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS build script used -a rather than -w for creating
-gconfig_.h. (vms.mak)
- - The VMS build script didn't create gconfigv.h. (vms.mak)
- - The VMS Fontmap had incorrect entries for the Bitstream Charter
-fonts. (fontmap.vms)
- - The VMS MODULES.LIS file assumed the JPEG library files were in
-directory JPEG rather than JPEG-5. (modules.lis)
-
-</pre><h3><a name="V3.13_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Using DISKFONTS resulted in an invalidaccess error.
-(gs_fonts.ps)
-
-</pre><h3><a name="V3.13_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The standard transfer function considered gray values above
-roughly 0.994 equivalent to white; 0.999 is a better value. (gs_init.ps)
- - The transfer, black generation, and undercolor removal functions
-gave slightly inexact results for an input value of 0. (zcolor.c,
-zcontrol.c)
- - setpagedevice gave an /undefined error if it did not recognize a
-key, rather than ignoring the key. (zdevice.c, gs_init.ps, gs_lev2.ps,
-gs_setpd.ps)
-
-Changes .putdeviceparams to take an additional argument, a Boolean that
-says whether or not unrecognized keys should be reported as /undefined
-errors. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, no user-written
-code should be calling .putdeviceparams. (zdevice.c)
-
-</pre><h3><a name="V3.13_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The Group 3 2-D and Group 4 fax encoders could emit incorrect
-output. (scfe.c)
- - The algorithm for constructing optimal Huffman codes could
-produce invalid codes in some rare cases. (shcgen.c)
-
-</pre><h3><a name="V3.13_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Rectangles closed with lineto rather than closepath weren't
-recognized as rectangles. (This only affected performance, not
-functionality.) (gxpath2.c)
- - The xfont lookup_font procedure could get called with a matrix
-whose translation components had never been initialized. (gxccman.c)
- - Some compilers don't allow \ in the formal argument list of a
-preprocessor macro. (gdevprn.h, gxdevice.h)
-
-</pre>
-
-<h2><a name="Version3.12"></a>Version 3.12 (9/29/94)</h2>
-
-<p>
-This is another bug fix release, the first Level 2 release that we believe
-is reasonably reliable.
-
-<h3><a name="V3.12_Documentation"></a>Documentation</h3><pre>
-
-Adds some text warning about making copies of the makefile. (make.doc)
-
-</pre><h3><a name="V3.12_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - There were a number of unnecessary dependencies on $(MAKEFILE) in
-gs.mak, left over from before the existence of gconfigv.h. (gs.mak)
- - JPEGSRC was defined in gs.mak rather than in jpeg.mak. (gs.mak,
-jpeg.mak)
-
-Changes the version numbering scheme back to A.BC, since people seem to be
-adapting to the change, and this allows using the version number directly
-as a MS-DOS directory name. (gconfig.c, gdevtfax.c, gs.c, gs_init.ps)
-
-Updates the JPEG library to version 5 (official release) of the IJG code.
-(jpeg/*, jpeg.mak)
-
-</pre><h3><a name="V3.12_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The TIFF/F driver put out invalid PageNumber and Software
-entries. (gdevtifs.h, gdevtfax.c)
- - The TIFF/F and fax Group 3 2-D drivers used K=3 and K=5 instead
-of K=2 and K=4. (gdevtfax.c)
- - The TIFF/F and fax Group 3 2-D drivers emitted improperly aligned
-output. (See under Streams below.)
- - The MS Windows driver didn't resize the window properly in
-response to changing the device parameters. (gdevmswn.c)
-
-Because of complementary bugs in various C compilers, changes all the
-non-printer devices to use a different set of macros. (gdevmem.h,
-gdevpcfb.h, gdevprn.h, gdevsvga.h, gxdevice.h, gdev{3b1, bgi, herc, l256,
-pe, pm, sun, vglb, wddb, wdib, wprn, x}.c, gsdevice.c, gxacpath.c,
-gxclip2.c, gxcpath.c, gxpcmap.c, zupath.c)
-
-Changes the X11 driver to ignore the "margins" specified by Ghostview.
-This is apparently necessary for Ghostview to handle landscape display
-properly. (gdevxini.c)
-
-Adds a WindowID parameter to the X11 device, to allow setting the window
-for the output. (gdevx.h, gdevx.c, gdevxini.c)
-
-</pre><h3><a name="V3.12_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The definition of BEGINFILES in os2.mak occurred too late in the
-file to have the desired effect. (os2.mak)
-
-</pre><h3><a name="V3.12_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Updating the list of allocated file objects at a restore didn't
-clear the prev pointer of the new head, which could cause the garbage
-collector to encounter an invalid pointer. (Bug introduced by .forgetsave
-in 3.0.3.) (zfile.c)
-
-</pre><h3><a name="V3.12_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxEncode filter with K &gt; 0 and EncodedByteAlign = true
-incorrectly aligned the 1-D/2-D bit as the last bit of a byte, rather than
-the first bit. (scfx.h, scfe.c)
- - eexec could loop indefinitely under certain conditions.
-(seexec.c)
- - eexec's algorithm for recognizing text vs. binary encoding didn't
-work properly in some cases that don't conform to the Adobe Type 1 Font
-Format documentation. (seexec.c)
- - Closing a stream didn't clear out the strm and state pointers,
-which could cause invalid accesses by the garbage collector. (stream.c)
-
-</pre><h3><a name="V3.12_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - fill_loop could loop indefinitely under certain conditions.
-(Introduced by a bug fix in 3.1.) (gxfill.c)
- - fill/eofill sometimes failed to paint parts of a region.
-(Introduced by a bug fix in 3.1.1.) (gxfill.c)
- - Non-convex clipping paths sometimes omitted thin horizontal
-slivers of the region. (Probably introduced by the "thin graphics" fix in
-3.1.) (gxacpath.c)
-
-</pre>
-
-<h2><a name="Version3.1.1"></a>Version 3.1.1 (9/25/94)</h2>
-
-<p>
-This is primarily a bug fix release. It was originally intended for some
-commercial licensees, but beta testers found too many problems with it.
-
-<h3><a name="V3.1.1_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - NEWS didn't indicate that there was a non-backward-compatible
-change in the gx_device structure -- specifically, that l_margin,
-b_margin, r_margin, and t_margin were replaced by macros named
-dev_l_margin(dev), etc. (news)
-
-Describes the two-phase commit requirement for device put_params
-procedures. (drivers.doc, gsparam.h)
-
-</pre><h3><a name="V3.1.1_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The new S macro in genarch.c didn't work on compilers that do
-macro substitution within string constants (which is forbidden by the ANSI
-standard). (genarch.c)
-
-</pre><h3><a name="V3.1.1_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Driver put_params implementations didn't observe a "two-phase
-commit" discipline; this could lead to the current device in the graphics
-state being closed, and other inconsistencies. (gsparam.h, gxdevice.h,
-iparam.h, gdevbit.c, gdevcdj.c, gdevmswn.c, gdevpcfb.c, gdevpm.c,
-gdevprn.c, gdevx.c, gsdevice.c, gsdparam.c, zdevice.c, ziodev2.c, zmisc2.c)
-THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, it only affects
-put_params implementations, of which there are few.
-
-NOTE THE NON-BACKWARD-COMPATIBLE CHANGE IN THE gx_device STRUCTURE UNDER
-'Documentation' ABOVE. (gdevescp.c, gdevsj48.c, gdevsppr.c, gdevxini.c)
-
-</pre><h3><a name="V3.1.1_Platforms"></a>Platforms</h3><pre>
-
-Ensures that the Unix makefiles all include all the variants of TIFF/F and
-fax drivers. (ansihead.mak, cc-head.mak, gcc-head.mak)
-
-</pre><h3><a name="V3.1.1_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Most of the contents of statusdict were missing when
-running a Level 2 system in Level 1 mode. (zmisc2.c)
-
-</pre>
-
-<h2><a name="Version3.1"></a>Version 3.1 (9/20/94)</h2>
-
-<p>
-This release finally includes a usable subset implementation of
-setpagedevice, including all the machinery needed to address the
-long-standing "margins" problems.
-
-<h3><a name="V3.1_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - t_oparray objects weren't identified as behaving differently
-depending on whether they were marked executable. (iref.h)
- - drivers.doc had gx_color_value instead of gx_color_index in
-the description of color mapping. (drivers.doc)
-
-Updates drivers.doc to reflect the change from static_procs to
-std_procs in the gx_device structure. (drivers.doc)
-
-</pre><h3><a name="V3.1_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The commands for building the JPEG library used rm instead
-of rm -f. (jpeg.mak)
-
-</pre><h3><a name="V3.1_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The X Windows driver hadn't been updated to reflect some
-name changes in members of the gx_color_info structure. (gdevx.h,
-gdevx.c, gdevxini.c)
-
-Changes all non-printer drivers so that they use the new std_device_body
-macros. (gdev*.c)
-
-Adds a print_page_copies procedure for printer drivers, allowing the
-driver to receive num_copies. (gdevprn.h, gdevprn.c)
-
-</pre><h3><a name="V3.1_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - ref_memory_enum/reloc_ptrs were declared inconsistently.
-(ialloc.c)
- - If the operand of restore was invalid, the restore did
-nothing, instead of giving a typecheck. (zvmem.c)
- - In Level 2, the margins and setmargins compatibility
-operators were defined incorrectly in terms of current/setpagedevice.
-(gs_lev2.ps)
-
-Enables .makeoperator to make local operators as well as global ones.
-(opdef.h, iinit.c, zmisc.c, zpacked.c)
-
-Finishes implementing the TransferFunction entry in halftone
-dictionaries. (zht1.c, zht2.c)
-
-Adds .set/currentfilladjust operators for access to the fill
-adjustment parameter in the graphics state. (zgstate.h)
-
-Removes the deviceinitialmatrix operator. (zdevice.c)
-
-Changes defaultmatrix from a procedure to an operator. (zmatrix.c)
-
-Sets the fill adjustment to 0.5 for high-resolution devices, effectively
-implementing Adobe's any-part-of-pixel filling rule. (gs_init.ps)
-
-Implements a small but useful subset of setpagedevice. (gs_lev2.ps)
-
-</pre><h3><a name="V3.1_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The eexec decoder incorrectly concluded that its data was
-in hex form if the first data character was whitespace. (seexec.c)
-
-</pre><h3><a name="V3.1_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Thin graphics (e.g., lines or rectangles) with small angles
-relative to the X axis rendered with many points missing. (gxdraw.c,
-gxfill.c)
- - The character cache rejected oversampled characters if the
-scaled-up size was too large, even if the scaled-down size wasn't.
-(gxchar.h, gschar.c, gxccache.c, gxccman.c)
- - A call on sqrt with an integer argument didn't promote it
-explicitly to double, which is required for non-ANSI compilers.
-(gshtscr.c)
-
-Finishes implementing the TransferFunction entry in halftone
-dictionaries. (gsht1.c)
-
-Modifies the character oversampler so it can produce gray scale
-output instead of a 1-bit mask. We don't actually make use of this
-ability yet. (gxccman.c)
-
-Adds gs_set/currentfilladjust for access to the fill adjustment
-parameter in the graphics state. (gsstate.h, gsstate.c)
-
-Changes the names of the last few routines beginning with gz_ to
-begin with gx_ instead. (gzdraw.h =&gt; gxdraw.h, gsimage*.c, gxdraw.c,
-gxfill.c, gxstroke.c)
-
-Properly implements the PageSize, Margins, .HWMargins, and ImagingBBox
-device parameters for all devices. (gscoord.c, gsdparam.c, gspath2.c)
-Implements the NumCopies device parameter for printer devices.
-(gdevprn.c)
-
-Implements std_device_body macros to help insulate statically initialized
-non-printer devices from future changes in the gx_device structure.
-(gxdevice.h, ... many .c files ...)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version3.0.3"></a>Version 3.0.3 (9/16/94)</h2>
-
-<p>
-This is primarily a bug fix release; it also implements most of the
-remaining Level 2 loose ends (except for setpagedevice).
-
-<h3><a name="V3.0.3_Documentation"></a>Documentation</h3><pre>
-
-Changes code that refers to "Ghostscript" to use the correct product
-name from gs_product. (gs.mak, gdevpbm.c, gdevsun.c, gswppm.c)
-
-Documents the new .forgetsave operator. (language.doc)
-
-Clarifies the distinction between commercial licensing and single-copy
-end-user sales. (readme)
-
-</pre><h3><a name="V3.0.3_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The compilation rule for gdevadmp.c was missing from the
-makefile. (devs.mak)
-
-Changes the version numbering scheme back to A.B.C, since too many
-people got confused by the change to A.BC. (gconfig.c, gs.c,
-gs_init.ps)
-
-Adds a -dNOGC switch to prevent the garbage collector from being
-enabled. (gs_init.ps)
-
-</pre><h3><a name="V3.0.3_Utilities"></a>Utilities</h3><pre>
-
-Removes the ps2image utility, since the new psmono driver replaces it.
-
-</pre><h3><a name="V3.0.3_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The TIFF drivers incorrectly assumed that short and ulong
-were the same size as TIFF_short and TIFF_ulong, causing problems on
-64-bit systems. (gdevtfax.c)
- - The EGA/VGA driver didn't do gray halftones properly if it
-was configured as a monochrome or 8-color device. (gdevpcfb.h)
- - The comment in gdevevga.c incorrectly identified the file
-as gdevpcfb.c. (gdevevga.c)
-
-Changes the PC display drivers to save and restore more of the BIOS
-state. (gdevpcfb.h, gdevevga.c, gdevpcfb.c, gdevsco.c)
-
-Adds a new psmono driver that does the same thing as ps2image, faster
-and more conveniently. (gdevpsim.c)
-
-Replaces the X11 driver with the one from 3.01, since the color
-handling rewrite in 3.02 introduced serious bugs. (gdevx.h, gdevx.c,
-gdevxini.c)
-
-</pre><h3><a name="V3.0.3_Platforms"></a>Platforms</h3><pre>
-
-Changes the definition of gx_no_color_index to work around one of the
-bugs in the SGI Irix compiler. (gxdcolor.h)
-
-Rewrites the installation commands in unix-end.mak so they don't have
-very long lines. (unix-end.mak)
-
-</pre><h3><a name="V3.0.3_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Fonts that used 2- or 4-element arrays in the Metrics dictionary
-interpreted the width and side bearing interchanged with each other.
-(gs_type1.ps)
- - Setting FONTPATH on the command line didn't work. (gs_fonts.ps)
-
-</pre><h3><a name="V3.0.3_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The stream position wasn't updated properly if sgets
-crossed a buffer boundary. (stream.c)
-
-Extends the BoundedHuffman filters so they can encode and decode runs of
-zeros specially, and so they mark and detect EOD. (sbhc.h, shc.h, sbhc.c,
-zfilter2.c)
-
-Provides an alternate implementation of file streams which doesn't use
-stdio buffering and which works around the System V "interrupted system
-call" problem. (stream.c, sfile.c, sfileno.c)
-
-Increases the maximum LZW output code from 3000 to 4095. (slzwe.c)
-
-</pre><h3><a name="V3.0.3_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Opening a filter on a file of the wrong access type (read
-vs. write) didn't cause an error. (stream.h, sbasic.c, zfile.c, zfileio.c)
- - save performed an extra, unnecessary gsave. (zvmem.c)
- - sethalftone always gave a /undefined error. (zht2.c)
- - eexec decryption read too much data from the input -- in
-Level 2, it isn't allowed to read 512 characters ahead. (sfilter.h,
-strimpl.h, seexec.c, sstring.c, zfileio.c, zmisc1.c)
- - The scanner was too aggressive about allocating additional
-space for strings on small machines. (iscan.c)
- - The AccurateScreens flag in Type 1 and Type 2 halftone
-dictionaries was being ignored. (zht2.c)
- - The Level 2 definition of margins in statusdict didn't
-allow for Margins being undefined in the current page device.
-(gs_lev2.ps)
- - The Interpolate flag was being ignored in image
-dictionaries. [implemented in library]
- - The TransferFunction option was being ignored in halftone
-dictionaries. (zht2.c)
- - Type 5 halftones usually didn't work, because they called
-the wrong (or an invalid) spot function. (zht2.c)
-
-Implements a .forgetsave operator that effectively causes a given save (and
-all more recent saves) to disappear. (isave.h, stream.h, isave.c, zfile.c,
-zvmem.c)
-
-</pre><h3><a name="V3.0.3_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - In the 1-operand form of the image operator, a Decode value of [1
-0] with 8-bit sample values and a single data source was treated the same
-as [0 1]. (gsimage1.c)
- - Some Monotype fonts put a callsubr between an OtherSubr call and
-the following 'pop' opcodes (which the Adobe documentation forbids); The
-Type 1 font interpreter gave an invalidfont error rather than allowing
-this. (gxtype1.h, gstype1.c)
- - Patterns didn't implement XStep and YStep properly.
-(gxpcolor.h, gspcolor.c, gxclip2.c)
- - Clipping regions were sometimes 1 pixel too small at the edges;
-this could cause vertical and horizontal lines produced by certain Windows
-drivers to disappear. (gzpath.h, gxacpath.c, gxcpath.c, gxfill.c)
- - Oversampling cached rotated characters produced very bad
-results (many dropouts). (gschar.c)
- - Rendering a DeviceGray color on a DeviceCMYK device applied
-the transfer function to all 4 components, not just to the K
-component. (gxcmap.c)
- - A screen specified with setcolorscreen didn't take effect
-properly on CMYK devices. (gsht.c)
-
-Implements the Interpolate option for images. Currently this is only
-implemented for portrait-orientation images (no rotation, skewing, or
-X-reflection). (gscspace.h, gximage.h, gscie.c, gscolor.c, gscolor1.c,
-gscolor2.c, gspcolor.c, gxcmap.c, gsimage.c, gsimage2.c, gsimage3.c)
-
-Implements AccurateScreens, but only in the form of a larger limit on
-the size of a halftone super-cell. (gxht.h, gsht.c, gsht1.c)
-
-Starts to implement the TransferFunction option for halftones.
-(gzht.h, gzstate.h, gsht.c, ...too many others to list...)
-
-</pre>
-
-<h2><a name="Version3.02"></a>Version 3.02 (8/30/94)</h2>
-
-<p>
-This is another bug fix release. It was distributed only to a few people,
-since the new X Windows color mapping code is not reliable yet.
-
-<h3><a name="V3.02_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - make.doc, but not unixtail.mak, called for setting PLATFORM=unix_
-on SVR4 platforms. (unixtail.mak)
- - drivers.doc contained some wording that suggested that
-Ghostscript always used RGB colors internally. (drivers.doc)
- - The definition of gx_device in drivers.doc had gotten out of sync
-with gxdevice.h. (drivers.doc)
- - README claimed that Ghostscript is not compatible with the
-VAX/VMS DEC C compiler, which is no longer true. (readme)
-
-Adds a new section on printer drivers to drivers.doc. (drivers.doc)
-
-Adds a large number of new display boards to the 800x600 SVGA section of
-use.doc. (use.doc)
-
-Adds a bug report form to the README file. (readme)
-
-Notes that OSF/1 AXP systems require changing the definition of INSTALL
-from install to installbsd. (make.doc)
-
-</pre><h3><a name="V3.02_Procedures"></a>Procedures</h3><pre>
-
-Removes -Wno-uninitialized from the gcc flags, and fixes all the places (in
-Aladdin's code only) that need to be fixed to pacify gcc after doing this.
-(gcc-head.mak, gdevgif.c, gdevmem2.c, gdevpcl.c, gs.c, gsht1.c, gsimpath.c,
-gsutil.c, gxclread.c, gxpcopy.c, gxstroke.c, idict.c, iscannum.c, stream.c,
-zdevice2.c) (NOT FINISHED YET)
-
-Adds a FAKEFONTS switch that makes fake entries in FontDirectory for
-unloaded fonts, for the benefit of programs that think they can find all
-the available fonts by scanning FontDirectory. (gs_fonts.ps, gs_init.ps)
-
-</pre><h3><a name="V3.02_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2epsi didn't work, because setdevice now erases the page.
-(ps2epsi.ps)
- - ps2epsi didn't work, because -dNODISPLAY installs a null device
-with 0 width and height. The fix -- to remove the -dNODISPLAY -- is not
-satisfactory, because it opens an unnecessary window. (ps2epsi)
-
-</pre><h3><a name="V3.02_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - gdev_fax_open was incorrectly declared static in gdevtfax.c,
-causing the extern reference in the dfax drivers not to be resolved.
-(gdevtfax.c)
- - devs.mak included a duplicate definition of gdevmswn_h.
-(devs.mak)
- - The fax drivers didn't link properly in Level 1 systems, because
-shc.c was omitted from their dependency list. (gs.mak, devs.mak)
- - The TIFF/F drivers didn't set RowsPerStrip properly.
-(gdevtfax.c)
- - The TIFF/F drivers didn't byte-align the EOL properly. (scfx.h,
-gdevdfax.c, gdevtfax.c, scfe.c, zfilter2.c)
- - The rule for compiling gdevpccm.c incorrectly specified
-dependency on gs.h rather than gx.h. (devs.mak)
- - The rule for compiling gdevtfax.c didn't include time_.h as a
-dependency. (devs.mak)
- - The mode 2 compression routine for the DeskJet/LaserJet printers
-was broken. (gdevpcl.c)
-
-Removes the -O0 from the compilation rule for gdevsco.c, since it was
-misplaced to begin with. (devs.mak)
-
-Adds a maxDynamicColors X resource to control dynamic allocation in the
-color map. Replaces the X color lookup algorithms with completely new
-ones, for a substantial performance gain. (gdevx.h, gdevx.c, gdevxini.c)
-
-Adds PageNumber, Software, and DateTime entries to the TIFF/F drivers.
-(gdevtifs.h, gdevtfax.c)
-
-Changes the margins for the LaserJet 4 to 0. (gdevdjet.c)
-
-Adds a user-contributed LaserJet 4 driver that does Floyd-Steinberg
-dithering. (gdevcdj.c)
-
-</pre><h3><a name="V3.02_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The exit codes for Ghostscript should be different on VMS.
-(iastate.h, gs.c, gsmain.c, igc.c, igcref.c)
- - The VMS DEC C compiler declares malloc and free in stdlib.h, and
-delete and unlink in stdlib.h. (malloc_.h, stdio_.h)
- - st_prn_device wasn't defined, which upset the VMS linker even
-though there were no references. (gdevprn.h)
- - stdpre.h didn't bring in the right headers when running gcc on
-SCO Unix, causing compilation warnings/errors. (stdpre.h)
- - The definition of rename in gp_sysv didn't include const for the
-arguments. (gp_sysv.c)
- - The definition of gettimeofday in gp_sysv didn't return any
-value. (gp_sysv.c)
- - time_.h didn't work on MS-DOS systems. (time_.h)
- - math_.h didn't include &lt;math.h&gt; when compiling with gcc on VMS
-systems. (math_.h)
- - DesqView/X doesn't have a 'cat' command, which caused problems in
-the linking step. (dvx-tail.mak)
-
-Changes the definitions of popen in gdevpipe.c and gp_unix.c so they don't
-specify the argument list. This is an attempt to get around the fact that
-there is no easy way to detect whether the available header files declare
-popen correctly (with const arguments), incorrectly (with non-const
-arguments), or not at all. (gdevpipe.c, gp_unix.c)
-
-Replaces VMS.MAK, VMS-CC.MAK, and VMS-AXP.MAK with new versions provided by
-a user. (vms.mak, vms-cc.mak, vms-axp.mak)
-
-Changes the 16-bit Borland makefiles so their standard configuration is
-Level 1 plus color.dev (CMYK color and colorimage). (bc.mak, bcwin.mak)
-
-</pre><h3><a name="V3.02_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - cfonts.mak still referred to some .gsf files that have been
-replaced by .pfa files. (cfonts.mak)
- - Compiled fonts got entered into FontDirectory, but didn't get
-registered as resources. (gs_ccfnt.ps)
- - The Cyrillic, Kana, Hershey .gsf, and URW fonts didn't include a
-necessary systemdict begin/end, which caused them to fail in badly designed
-environments. (fonts/f*.gsf, fonts/h*.gsf, fonts/?0*.gsf)
-
-Changes the default target directory in cfonts.mak from fonts/c to .;
-changes the names of the Zapf Chancery compiled font procedures from c* to
-zc*. (cfonts.mak)
-
-Adds more fonts from the Adobe Type Manager package for MS Windows to
-Fontmap.ATM. (fontmap.atm)
-
-Adds the entire set of 35 standard fonts to the ccfonts feature in gs.mak;
-removes all the compilation rules for compiled fonts, since these rules are
-in cfonts.mak already. (gs.mak)
-
-</pre><h3><a name="V3.02_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - kshow executed a null, rather than the correct procedure, between
-the characters of the string, and got a typecheck error at the end.
-(zchar.c)
- - MultiMaster fonts computed their side bearing and width
-incorrectly, producing incorrect output. (zchar1.c)
- - There was no structure definition for gs_type1_state, so a GC
-during the execution of an OtherSubrs procedure could scramble pointers in
-the saved state. (zchar1.c, zfont1.c; also affects library, see below)
- - kshow didn't work properly if the kerning procedure changed the
-depth of the operand or dictionary stack. (zchar.c)
- - If the element count for roll was too large by only 1 or 2, the
-result was a crash rather than a rangecheck. (zstack.c)
- - restore didn't undo currentgstate. (igstate.h, store.h,
-gsstate.c, zdevice2.c, zdps1.c, ztype.c)
- - The scanner didn't set the local bit properly in a suspended
-state. (iscan.c)
- - copypage disregarded #copies. (gs_init.ps)
- - An incorrectly declared pointer led to addressing faults on
-16-bit systems. (zchar1.c)
- - The cache for Separation colors was allocated with one element
-too few. (zcsindex.c)
-
-Changes `executive' so that if an error other than EOF occurs in the
-reading of the statement, the interpreter prints the error message, but
-control remains in the executive loop. (This isn't a very good fix; a
-better one will require refactoring executive / execute / run.)
-(gs_init.ps)
-
-Changes dictionary undo saving to use the new ref_must_save macro [internal
-change only]. (idict.c)
-
-Moves configuration definitions from iinit.c to gconfig.c. (gcdefs.h,
-interp.h, gconfig.c, gs.c, iinit.c, zmisc2.c, gs.mak)
-
-Moves =string from systemdict to userdict for Adobe compatibility.
-(gs_init.ps)
-
-Starts to implement the Interpolate flag in image dictionaries. See under
-Library below for restrictions. (zpaint.c, zimage2.c)
-
-</pre><h3><a name="V3.02_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - stream_compact attempted to compact a read-only string being used
-as the data source of a filter. (sbasic.c, stream.c)
-
-Adds an EncodedEOLAlign flag to the CCITTFaxEncode stream, to allow direct
-generation of TIFF/F output. (scfx.h, scfe.c, zfilter2.c)
-
-</pre><h3><a name="V3.02_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There was no structure definition for gs_type1_state, so a GC
-during the execution of an OtherSubrs procedure could scramble pointers in
-the saved state. (gxfont1.h, gxtype1.h, gstype1.c, gxhint2.c)
- - A couple of calls had to discard const, but didn't include the
-necessary cast. (gxpcmap.c)
- - makeimagedevice refused to accept an empty image. (gsdevice.c)
- - The extra parentheses around arguments in memory_.h caused some
-compilers to fail. (memory_.h)
- - Floating point overflows during coordinate conversion terminated
-Ghostscript. (gxfarith.h, gxfixed.h, gsmatrix.c, gsmisc.c)
- - Accents still weren't getting placed properly on characters
-created with seac. (gstype1.c, gxhint2.c)
- - The SGI C compiler couldn't handle the (perfectly legal)
-definitions of dev_init_[open_]misc. (gxdevice.h)
- - string_.h caused some problems with gcc on some versions of
-Solaris. (string_.h)
- - The halftone levels for color screens were computed incorrectly.
-(gzht.h, gxdither.c)
- - Color screens sometimes had vertical stripes of solid color
-interspersed. (gxcht.c)
- - Colors could get mapped incorrectly if a compiler aggressively
-(and incorrectly) reordered the computation of procedure arguments
-involving the unit_frac macro. (gxcmap.c)
- - setcachedevice[2] insisted that the corners of the bounding box
-be given in the correct order, i.e., llx &lt; urx and lly &lt; ury. (gschar.c)
- - The image operator gave a limitcheck on unrotated 1-bit-per-pixel
-images whose width in device coordinates exceeded 65529. (gsimage.c)
- - The garbage collector didn't trace the input data of an
-in-progress image operator correctly. (gsimage.c)
-
-Changes the max_rgb and dither_rgb members of gx_device_color_info to
-max_color and dither_colors, since Ghostscript now uses these for CMYK
-devices as well. Also changes dither_gray to dither_grays. (gdevmem.h,
-gdevprn.h, gxdevice.h, gdevbit.c, gdevcdj.c, gdevprn.c, gdevxini.c,
-gsdparam.c, gxcht.c, gxcmap.c)
-
-Starts to implement the Interpolate option for images. Currently this is
-only implemented for image, not imagemask, and only for rotations that are
-multiples of 90 degrees (possibly with reflection). (gsimage.h,
-gsiscale.h, gximage.h, gsimage.c, gsimage1.c, gsiscale.c)
-
-Starts to implement XStep and YStep in pattern dictionaries. (gxdcolor.h,
-gxpcolor.h, gspcolor.c, gxpcmap.c)
-
-</pre>
-
-<h2><a name="Version3.01"></a>Version 3.01 (8/14/94)</h2>
-
-<p>
-This is a patch release to fix early problems in release 3.0, and to clean
-up a few known loose ends.
-
-<h3><a name="V3.01_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - language.doc still documented the devicename procedure, which has
-been withdrawn. (language.doc)
- - drivers.doc didn't specify under what circumstances each
-procedure could be called. (drivers.doc)
- - current.doc said that setcachedevice and makeimagedevice wouldn't
-accept packed arrays, but neither of these operators takes any array
-arguments. (current.doc)
- - current.doc said that definefont didn't interact properly with
-the resource machinery, which apparently is no longer true. (current.doc)
- - make.doc incorrectly gave the name of the DVX makefile as
-dvx-djg.mak rather than dvx-gcc.mak. (make.doc)
- - In one place, devices.doc incorrectly used -sBitsPerPixel= rather
-than -dBitsPerPixel=. (devices.doc)
-
-Notes that a kernel bug in SCO Unix makes Ghostscript not work correctly in
-some circumstances. (use.doc)
-
-</pre><h3><a name="V3.01_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - devs.mak incorrectly referred to gdevjetp.c instead of
-gdev3852.c. (devs.mak)
- - The obsolete file gsprops.c was accidentally included in the
-fileset.
-
-Changes the version numbering scheme from A.BCC to A.B[C]. E.g., this
-release will be 3.01, not 3.001. (gs_init.ps, gs.c, iinit.c)
-
-Adds the LaserJet 4 driver to all makefiles that already include the
-LaserJet 3 driver. (*.mak)
-
-Adds the BJ-200 driver to all makefiles that already included the BJ-10e
-driver. (*.mak)
-
-Splits the Unix 'install' target into install-exec and install-data. Moves
-the executable scripts from gsdatadir to a new directory scriptdir, which
-defaults to bindir. (ansihead.mak, cc-head.mak, gcc-head.mak,
-unix-end.mak)
-
-</pre><h3><a name="V3.01_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - genconf had fixed buffer sizes built into it, which it could
-overrun its working storage without checking. (genconf.c)
-
-Removes RCS or SCCS headers from two utility files. (pj-gs.sh,
-printafm.ps)
-
-</pre><h3><a name="V3.01_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The new dfaxhigh and dfaxlow drivers didn't set
-state.EncodedByteAlign to false. (gdevdfax.c)
- - The sunview driver assumed that the device would be open before
-map_rgb_color was called. (gdevsun.c)
- - The CP50 driver incremented page_count itself, rather than
-letting the core library do it. (gdevcp50.c)
- - The GIF driver(s) could loop indefinitely under certain
-circumstances. (gdevgif.c)
- - The Group 4 fax drivers incorrectly included end-of-line codes in
-the output. (gdevtfax.c, gdevdfax.c)
- - The Group 4 fax drivers could put out an EOB in the middle of the
-data. (scfe.c)
- - The DesignJet 650C driver didn't use the correct compression
-mode. (gdevcdj.c)
- - The Hercules and EGA/VGA/SVGA drivers computed the page height
-incorrectly according to the A4 switch. (gdevherc.c, gdevpcfb.h)
-
-Changes the page_count and showpage_count members of the device structure
-from int to long. (gxdevice.h, gdevprn.c, gsdparam.c)
-
-Changes the faxg3, faxg32d, and faxg4 drivers so that, like the TIFF and
-dfax drivers, they adjust the page size to one of the three CCITT standard
-sizes if this is reasonable. (gdevtfax.c)
-
-Splits the bit driver into bit, bitrgb, and bitcmyk. Adds bitrgb and
-bitcmyk to all makefiles that included bit. (*.mak, devs.mak, gdevbit.c)
-
-Replaces the atiw16, tseng16, and tvga16 SuperVGA drivers with a single
-svga16 driver that allows specifying the display mode number. (devs.mak,
-gdevpcfb.c)
-
-</pre><h3><a name="V3.01_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The MS Windows and OS/2 drivers allocated their terminal input
-buffers in a way that could cause the GC to crash. (gp_mswin.c, gp_os2.c)
- - The handling of gettimeofday on SVR4 platforms was incorrect.
-(time_.h, gp_sysv.c, gp_unix.c)
- - On some platforms, function prototypes were not enabled even if
-__STDC__ was defined. (stdpre.h)
- - The VMS build script referred to an obsolete feature lev2only.
-(vms.mak)
-
-Changes the DVX platform so that stdprn is buffered. This should improve
-printing performance dramatically. (gp_dvx.c)
-
-</pre><h3><a name="V3.01_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Setting DISKFONTS resulted in a reference to FontFileDirectory
-before it was defined. (gs_type1.ps, gs_fonts.ps)
- - /Font findresource gave an error rather than doing font
-substitution. (gs_res.ps)
- - FontDirectory wasn't rebound to GlobalFontDirectory when global
-VM was current. (gs_res.ps, zdict.c)
- - Type 1 fonts weren't loaded into global VM. (gs_fonts.ps)
- - In the standard Fontmap, the Utopia fonts had extension .gsf
-rather than .pfa. (fontmap.gs)
- - Fonts whose FontBBox was [0 0 0 0] were not displayed, or were
-displayed as tiny dots. (gs_type1.ps)
-
-</pre><h3><a name="V3.01_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - dict_put could read from the variable pvslot before it was used.
-(This was harmless, since the value was never actually used; it just upset
-Purify.) (idict.c)
- - Binary object sequences could cause addressing faults.
-(iscanbin.c)
- - The attributes on names were set incorrectly in binary object
-sequences. (iscanbin.c)
- - gs.c duplicated (in some cases incorrectly) some definitions in
-interp.h. (gs.c)
- - gs_lib_paths was declared const in one place and non-const in
-another. (zfile.c)
- - file_restore and font_restore had inconsistent const declarations
-for their argument. (isave.c)
- - iodev_os_open_file was missing its last formal parameter.
-(ziodev.c)
- - gs.c declared gs_devicename with an incorrect extern. (gs.c)
- - undefinefont didn't interact properly with the resource
-machinery. (gs_lev2.ps)
- - The declaration for swap_entry used a typedef name as a formal
-parameter, which upset some compilers. (zmisc2.c)
- - Including the ccinit feature could cause the garbage collector to
-make an invalid access. (stream.c)
- - The check for t_[a]struct types in ztype.c was incorrect.
-(ztype.c)
- - After the collection of halftone samples, temporary data
-structures were freed incorrectly. (gzht.h, gsht1.c, zht.c)
- - Images with source width between 489 and 492 crashed the
-memory manager. (iastate.h)
-
-Makes it possible to define SEARCH_HERE_FIRST (gsmain.c) in the makefile.
-(gsmain.c)
-
-Splits the Level 2 resource machinery into a separate file. (gs_lev2.ps,
-gs_res.ps, gs.mak, unix-end.mak, vms.mak).
-
-Changes the names of the DiffEncode/Decode filters to
-PixelDifferenceEncode/Decode, and splits them off into a separate
-"feature". (gs.mak, zfilter2.c, zfpdiff.c, spdiff.c, spdiffx.h)
-
-Adds experimental code for filtered image scaling. DON'T USE THIS CODE.
-(zimage2.c)
-
-</pre><h3><a name="V3.01_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxEncode filter could put out an EOB in the middle of
-the data. (scfe.c)
-
-Splits off the PixelDifferenceEncode/Decode filters into a separate
-"feature". (gs.mak)
-
-</pre><h3><a name="V3.01_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - gs_setcachedevice could return a garbage error code. (gschar.c)
- - joins on stroked lines were incorrect if the device coordinate
-system mapped +Y to +Y. (gxstroke.c)
- - If gsmisc.c supplied versions of missing library routines, they
-could clash with the names of the real ones if those were present
-unexpectedly. (memory_.h, gsmisc.c)
- - The initialization expression for is_open in the
-dev_init_misc_open macro included a cast, which some compilers don't allow.
-(gxdevice.h, gsdevice.c, gxclip2.c, gxpcmap.c)
- - In Type 1 fonts, character that specified their side bearing and
-width with sbw rather than hsbw gave an invalidfont error. (gstype1.c)
- - Some procedures were declared inconsistently with regard to const
-arguments. (gscie.c, gxpcmap.c, gxacpath.c, gxcmap.c)
- - A few places still assumed that pointers occupied 4 bytes.
-(gxclist.c)
- - Rendering a gray halftone on a CMYK device called the device's
-map_rgb_color procedure instead of map_cmyk_color. (gxdither.c)
-
-Renames gsfile.c as gswppm.c. (gsfile.c, gswppm.c)
-
-Implements the ability to cache arbitrarily transformed characters. This
-is currently enabled by a compile-time flag in gschar.c. (gschar.c)
-
-</pre>
-
-<h2><a name="Version3.0"></a>Version 3.0 (8/1/94)</h2>
-
-<p>
-This is the first full Level 2 version released to the public.
-Unfortunately, we were not able to include setpagedevice in this release.
-
-<h3><a name="V3.0_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - README didn't mention Aladdin's European distributor.
- - psfiles.doc didn't describe some of the newer gs_*.ps files.
-
-Notes that gcc -O2 (version 2.5.8 of gcc) generates incorrect code for some
-modules on the H-P RISC architecture.
-
-Notes that on AXP platforms running VMS, DEC C V4.0 is required.
-
-</pre><h3><a name="V3.0_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - 'make clean' didn't delete devs.tr or t.tr.
- - devs.mak was missing the entry for faxg32d.
- - unixansi.mak omitted some drivers that were included in
-unix-cc.mak and unix-gcc.mak.
-
-Updates jpeg.mak to reference version 5beta1 of the IJG JPEG code.
-
-Changes the version numbering scheme from A.B.C to A.B[CC]. I.e., the
-first sub-release after 3.0 will be 3.01 or 3.001, not 3.0.1.
-
-</pre><h3><a name="V3.0_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2ascii didn't do a setglobal.
-
-Adds an option to ansi2knr to convert ... to va_alist/va_dcl.
-
-</pre><h3><a name="V3.0_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The newly added faxg32d driver didn't have an entry in devs.mak.
- - The BMP, GIF, and PCX drivers wrote out an incorrect color
-palette (the blue values were too small).
- - The vgalib driver had some compilation problems.
- - The TIFF drivers didn't produce correct multi-page output.
-
-Adds faxg32d and tiffg32d drivers.
-
-Reinstates the DigiFax drivers, which were withdrawn when the new fax
-drivers were added.
-
-</pre><h3><a name="V3.0_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - gs_btokn.ps and gs_ccfnt.ps weren't installed on Unix platforms.
- - The VMS module list omitted SBHC, included a non-existent GXDASH,
-and had incorrect names for some of the IJG JPEG files.
- - The VMS build scripts (vms*.mak) had incorrect "boilerplate".
- - The VMS script file gssetmod.com had \r characters in it, as well
-as \n characters.
- - The echogs and genarch utilities didn't return the correct exit
-codes under VMS.
- - The VMS Fontmap had incorrect entries for the Courier and Charter
-fonts.
- - When running under Ghostview, Ghostscript didn't drain the input
-pipe. (We fixed this with a temporary patch in gs.c; this isn't a good
-solution for the longer term.)
-
-</pre><h3><a name="V3.0_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The free AvantGarde, Bookman, and Palatino font families had
-incorrect FontBBox values.
- - The 'f' and 'j' in the free AvantGarde-DemiOblique,
-Bookman-DemiItalic, Bookman-LightItalic, and Palatino-Italic fonts were
-chopped off on the right. (The bitmaps were chopped off in the original
-BDF fonts from which these fonts were made.) ****** THIS PROBLEM WAS NOT
-ACTUALLY FIXED. ******
-
-</pre><h3><a name="V3.0_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - gs -h and gs -v didn't print the tertiary version number correctly.
- - Binary object sequences with no strings or names didn't read in
-correctly.
- - Binary object sequences that crossed an input buffer boundary
-didn't read in correctly.
- - Binary object sequences read in as {[e1 .. en] e1 ... en} instead
-of {[e1 ... en]}. (New bug in 2.9.x.)
- - setpattern didn't set the current color space correctly if the
-current color space wasn't a Pattern space.
- - If the current color space was an uncolored Pattern space but the
-current color was a colored Pattern, currentcolor returned extra values on
-the operands stack.
- - .buildfont1 in gs_type1.ps didn't force binding of the old
-definition, causing ps2ascii to loop endlessly.
-
-Adds a facility for writing and reading dictionaries in binary object
-sequences. This is experimental and subject to change in the future.
-
-</pre><h3><a name="V3.0_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - gs_run_string and ccinit didn't have any way to mark the string
-as "foreign", which confused the GC.
-
-</pre><h3><a name="V3.0_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - gxchar.h had an extra comma after the last element of the
-show_width_status enum, which upset some compilers.
- - stroke and strokepath didn't correctly skip zero-length segments
-if the line width was less than one pixel, or if there was a closed subpath
-consisting entirely of zero-length segments.
- - strokepath sometimes incorrectly added a moveto at the end of the
-path.
-</pre>
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History4.htm b/Master/xemtex/doc/ghostscript/History4.htm
deleted file mode 100644
index 35e67000138..00000000000
--- a/Master/xemtex/doc/ghostscript/History4.htm
+++ /dev/null
@@ -1,3980 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 4.n</title>
-<!-- $Id: History4.htm,v 1.13.2.11.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!-- Originally: history4.txt -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>History of Ghostscript versions 4.n</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version4.81">Version 4.81 (6/1/97)</a>
-<ul>
-<li><a href="#V4.81_Documentation">Documentation</a>,
- <a href="#V4.81_Procedures">Procedures</a>,
- <a href="#V4.81_Utilities">Utilities</a>,
- <a href="#V4.81_Drivers">Drivers</a>,
- <a href="#V4.81_Platforms">Platforms</a>,
- <a href="#V4.81_Interpreter">Interpreter</a>,
- <a href="#V4.81_Library">Library</a>
-</ul>
-<li><a href="#Version4.80">Version 4.80 (limited) (5/28/97)</a>
-<ul>
-<li><a href="#V4.80_Documentation">Documentation</a>,
- <a href="#V4.80_Procedures">Procedures</a>,
- <a href="#V4.80_Utilities">Utilities</a>,
- <a href="#V4.80_Drivers">Drivers</a>,
- <a href="#V4.80_Platforms">Platforms</a>,
- <a href="#V4.80_Fonts">Fonts</a>,
- <a href="#V4.80_Interpreter">Interpreter</a>,
- <a href="#V4.80_Streams">Streams</a>,
- <a href="#V4.80_Library">Library</a>
-</ul>
-<li><a href="#Version4.74">Version 4.74 (limited) (5/5/97)</a>
-<ul>
-<li><a href="#V4.74_Documentation">Documentation</a>,
- <a href="#V4.74_Utilities">Utilities</a>,
- <a href="#V4.74_Drivers">Drivers</a>,
- <a href="#V4.74_Interpreter">Interpreter</a>,
- <a href="#V4.74_Streams">Streams</a>,
- <a href="#V4.74_Library">Library</a>
-</ul>
-<li><a href="#Version4.73">Version 4.73 (limited) (4/19/97)</a>
-<ul>
-<li><a href="#V4.73_Documentation">Documentation</a>,
- <a href="#V4.73_Procedures">Procedures</a>,
- <a href="#V4.73_Utilities">Utilities</a>,
- <a href="#V4.73_Drivers">Drivers</a>,
- <a href="#V4.73_Platforms">Platforms</a>,
- <a href="#V4.73_Interpreter">Interpreter</a>,
- <a href="#V4.73_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.73_Streams">Streams</a>,
- <a href="#V4.73_Library">Library</a>
-</ul>
-<li><a href="#Version4.72">Version 4.72 (limited) (4/14/97)</a>
-<ul>
-<li><a href="#V4.72_Documentation">Documentation</a>,
- <a href="#V4.72_Procedures">Procedures</a>,
- <a href="#V4.72_Drivers">Drivers</a>,
- <a href="#V4.72_Platforms">Platforms</a>,
- <a href="#V4.72_Interpreter">Interpreter</a>,
- <a href="#V4.72_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.72_Streams">Streams</a>,
- <a href="#V4.72_Library">Library</a>
-</ul>
-<li><a href="#Version4.71">Version 4.71 (limited) (3/31/97)</a>
-<ul>
-<li><a href="#V4.71_Documentation">Documentation</a>,
- <a href="#V4.71_Procedures">Procedures</a>,
- <a href="#V4.71_Drivers">Drivers</a>,
- <a href="#V4.71_Interpreter">Interpreter</a>,
- <a href="#V4.71_Streams">Streams</a>,
- <a href="#V4.71_Library">Library</a>
-</ul>
-<li><a href="#Version4.70">Version 4.70 (limited) (3/26/97)</a>
-<ul>
-<li><a href="#V4.70_Documentation">Documentation</a>,
- <a href="#V4.70_Procedures">Procedures</a>,
- <a href="#V4.70_Drivers">Drivers</a>,
- <a href="#V4.70_Platforms">Platforms</a>,
- <a href="#V4.70_Interpreter">Interpreter</a>,
- <a href="#V4.70_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.70_Streams">Streams</a>,
- <a href="#V4.70_Library">Library</a>
-</ul>
-<li><a href="#Version4.61">Version 4.61 (limited) (3/13/97)</a>
-<ul>
-<li><a href="#V4.61_Documentation">Documentation</a>,
- <a href="#V4.61_Procedures">Procedures</a>,
- <a href="#V4.61_Drivers">Drivers</a>,
- <a href="#V4.61_Platforms">Platforms</a>,
- <a href="#V4.61_Interpreter">Interpreter</a>,
- <a href="#V4.61_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.61_Streams">Streams</a>,
- <a href="#V4.61_Library">Library</a>
-</ul>
-<li><a href="#Version4.60">Version 4.60 (limited) (3/2/97)</a>
-<ul>
-<li><a href="#V4.60_Documentation">Documentation</a>,
- <a href="#V4.60_Procedures">Procedures</a>,
- <a href="#V4.60_Drivers">Drivers</a>,
- <a href="#V4.60_Platforms">Platforms</a>,
- <a href="#V4.60_Fonts">Fonts</a>,
- <a href="#V4.60_Interpreter">Interpreter</a>,
- <a href="#V4.60_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.60_Streams">Streams</a>,
- <a href="#V4.60_Library">Library</a>
-</ul>
-<li><a href="#Version4.51">Version 4.51 (limited) (2/9/97)</a>
-<ul>
-<li><a href="#V4.51_Procedures">Procedures</a>,
- <a href="#V4.51_Drivers">Drivers</a>,
- <a href="#V4.51_Platforms">Platforms</a>,
- <a href="#V4.51_Interpreter">Interpreter</a>,
- <a href="#V4.51_Streams">Streams</a>,
- <a href="#V4.51_Library">Library</a>
-</ul>
-<li><a href="#Version4.50">Version 4.50 (limited) (1/31/97)</a>
-<ul>
-<li><a href="#V4.50_Documentation">Documentation</a>,
- <a href="#V4.50_Procedures">Procedures</a>,
- <a href="#V4.50_Drivers">Drivers</a>,
- <a href="#V4.50_Platforms">Platforms</a>,
- <a href="#V4.50_Interpreter">Interpreter</a>,
- <a href="#V4.50_Streams">Streams</a>,
- <a href="#V4.50_Library">Library</a>
-</ul>
-<li><a href="#Version4.41">Version 4.41 (private) (1/21/97)</a>
-<ul>
-<li><a href="#V4.41_Procedures">Procedures</a>,
- <a href="#V4.41_Drivers">Drivers</a>,
- <a href="#V4.41_Fonts">Fonts</a>,
- <a href="#V4.41_Interpreter">Interpreter</a>,
- <a href="#V4.41_Streams">Streams</a>,
- <a href="#V4.41_Library">Library</a>
-</ul>
-<li><a href="#Version4.40">Version 4.40 (private) (1/13/97)</a>
-<ul>
-<li><a href="#V4.40_Documentation">Documentation</a>,
- <a href="#V4.40_Utilities">Utilities</a>,
- <a href="#V4.40_Drivers">Drivers</a>,
- <a href="#V4.40_Interpreter">Interpreter</a>,
- <a href="#V4.40_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.40_Library">Library</a>
-</ul>
-<li><a href="#Version4.39">Version 4.39 (limited) (1/1/97)</a>
-<ul>
-<li><a href="#V4.39_Documentation">Documentation</a>,
- <a href="#V4.39_Procedures">Procedures</a>,
- <a href="#V4.39_Utilities">Utilities</a>,
- <a href="#V4.39_Drivers">Drivers</a>,
- <a href="#V4.39_Interpreter">Interpreter</a>,
- <a href="#V4.39_Streams">Streams</a>,
- <a href="#V4.39_Library">Library</a>
-</ul>
-<li><a href="#Version4.38">Version 4.38 (limited) (12/20/96)</a>
-<ul>
-<li><a href="#V4.38_Interpreter">Interpreter</a>,
- <a href="#V4.38_Streams">Streams</a>,
- <a href="#V4.38_Library">Library</a>
-</ul>
-<li><a href="#Version4.37">Version 4.37 (limited) (12/10/96)</a>
-<ul>
-<li><a href="#V4.37_Fonts">Fonts</a>,
- <a href="#V4.37_Interpreter">Interpreter</a>,
- <a href="#V4.37_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.37_Library">Library</a>
-</ul>
-<li><a href="#Version4.36">Version 4.36 (limited) (12/3/96)</a>
-<ul>
-<li><a href="#V4.36_Documentation">Documentation</a>,
- <a href="#V4.36_Drivers">Drivers</a>,
- <a href="#V4.36_Interpreter">Interpreter</a>,
- <a href="#V4.36_Library">Library</a>
-</ul>
-<li><a href="#Version4.35">Version 4.35 (limited) (11/24/96)</a>
-<ul>
-<li><a href="#V4.35_Documentation">Documentation</a>,
- <a href="#V4.35_Procedures">Procedures</a>,
- <a href="#V4.35_Interpreter">Interpreter</a>,
- <a href="#V4.35_Streams">Streams</a>,
- <a href="#V4.35_Library">Library</a>
-</ul>
-<li><a href="#Version4.34">Version 4.34 (limited) (11/18/96)</a>
-<ul>
-<li><a href="#V4.34_Documentation">Documentation</a>,
- <a href="#V4.34_Procedures">Procedures</a>,
- <a href="#V4.34_Drivers">Drivers</a>,
- <a href="#V4.34_Interpreter">Interpreter</a>,
- <a href="#V4.34_Streams">Streams</a>,
- <a href="#V4.34_Library">Library</a>
-</ul>
-<li><a href="#Version4.33">Version 4.33 (limited) (11/6/96)</a>
-<ul>
-<li><a href="#V4.33_Documentation">Documentation</a>,
- <a href="#V4.33_Procedures">Procedures</a>,
- <a href="#V4.33_Interpreter">Interpreter</a>,
- <a href="#V4.33_Library">Library</a>
-</ul>
-<li><a href="#Version4.32">Version 4.32 (limited) (11/1/96)</a>
-<ul>
-<li><a href="#V4.32_Documentation">Documentation</a>,
- <a href="#V4.32_Drivers">Drivers</a>,
- <a href="#V4.32_Platforms">Platforms</a>,
- <a href="#V4.32_Fonts">Fonts</a>,
- <a href="#V4.32_Interpreter">Interpreter</a>,
- <a href="#V4.32_Library">Library</a>
-</ul>
-<li><a href="#Version4.31">Version 4.31 (limited) (10/27/96)</a>
-<ul>
-<li><a href="#V4.31_Documentation">Documentation</a>,
- <a href="#V4.31_Procedures">Procedures</a>,
- <a href="#V4.31_Platforms">Platforms</a>,
- <a href="#V4.31_Interpreter">Interpreter</a>,
- <a href="#V4.31_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.31_Streams">Streams</a>,
- <a href="#V4.31_Library">Library</a>
-</ul>
-<li><a href="#Version4.30">Version 4.30 (limited) (10/23/96)</a>
-<ul>
-<li><a href="#V4.30_Documentation">Documentation</a>,
- <a href="#V4.30_Drivers">Drivers</a>,
- <a href="#V4.30_Platforms">Platforms</a>,
- <a href="#V4.30_Fonts">Fonts</a>,
- <a href="#V4.30_Interpreter">Interpreter</a>,
- <a href="#V4.30_Library">Library</a>
-</ul>
-<li><a href="#Version4.21">Version 4.21 (limited) (10/17/96)</a>
-<ul>
-<li><a href="#V4.21_Documentation">Documentation</a>,
- <a href="#V4.21_Procedures">Procedures</a>,
- <a href="#V4.21_Drivers">Drivers</a>,
- <a href="#V4.21_Platforms">Platforms</a>,
- <a href="#V4.21_Fonts">Fonts</a>,
- <a href="#V4.21_Interpreter">Interpreter</a>,
- <a href="#V4.21_Library">Library</a>
-</ul>
-<li><a href="#Version4.20">Version 4.20 (limited) (10/13/96)</a>
-<ul>
-<li><a href="#V4.20_Documentation">Documentation</a>,
- <a href="#V4.20_Procedures">Procedures</a>,
- <a href="#V4.20_Utilities">Utilities</a>,
- <a href="#V4.20_Drivers">Drivers</a>,
- <a href="#V4.20_Interpreter">Interpreter</a>,
- <a href="#V4.20_Library">Library</a>
-</ul>
-<li><a href="#Version4.10">Version 4.10 (limited) (9/25/96)</a>
-<ul>
-<li><a href="#V4.10_Documentation">Documentation</a>,
- <a href="#V4.10_Utilities">Utilities</a>,
- <a href="#V4.10_Drivers">Drivers</a>,
- <a href="#V4.10_Interpreter">Interpreter</a>,
- <a href="#V4.10_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.10_Library">Library</a>
-</ul>
-<li><a href="#Version4.03">Version 4.03 (9/23/96)</a>
-<ul>
-<li><a href="#V4.03_Documentation">Documentation</a>,
- <a href="#V4.03_Procedures">Procedures</a>,
- <a href="#V4.03_Drivers">Drivers</a>,
- <a href="#V4.03_Fonts">Fonts</a>,
- <a href="#V4.03_Streams">Streams</a>
-</ul>
-<li><a href="#Version4.02">Version 4.02 (9/19/96)</a>
-<ul>
-<li><a href="#V4.02_Documentation">Documentation</a>,
- <a href="#V4.02_Procedures">Procedures</a>,
- <a href="#V4.02_Utilities">Utilities</a>,
- <a href="#V4.02_Drivers">Drivers</a>,
- <a href="#V4.02_Platforms">Platforms</a>,
- <a href="#V4.02_Interpreter">Interpreter</a>,
- <a href="#V4.02_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V4.02_Streams">Streams</a>,
- <a href="#V4.02_Library">Library</a>
-</ul>
-<li><a href="#Version4.01">Version 4.01 (7/10/96)</a>
-<ul>
-<li><a href="#V4.01_Documentation">Documentation</a>,
- <a href="#V4.01_Procedures">Procedures</a>,
- <a href="#V4.01_Utilities">Utilities</a>,
- <a href="#V4.01_Platforms">Platforms</a>,
- <a href="#V4.01_Platforms">Platforms</a>,
- <a href="#V4.01_Interpreter">Interpreter</a>,
- <a href="#V4.01_Library">Library</a>
-</ul>
-<li><a href="#Version4.0">Version 4.0 (6/28/96)</a>
-<ul>
-<li><a href="#V4.0_Documentation">Documentation</a>,
- <a href="#V4.0_Procedures">Procedures</a>,
- <a href="#V4.0_Utilities">Utilities</a>,
- <a href="#V4.0_Drivers">Drivers</a>,
- <a href="#V4.0_Platforms">Platforms</a>,
- <a href="#V4.0_Interpreter">Interpreter</a>,
- <a href="#V4.0_Streams">Streams</a>,
- <a href="#V4.0_Library">Library</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a history of Ghostscript releases numbered 4.n. For more
-recent changes, see the the other history documents and, for the latest
-versions, the news:
-
-<blockquote>
-<a href="News.htm">News</a><br>
-History of Ghostscript versions 4.n (this document)<br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<h2><a name="Version4.81"></a>Version 4.81 (6/1/97)</h2>
-
-<p>
-This is a last-minute set of bug fixes before the 5.0 release.
-
-<h3><a name="V4.81_Documentation"></a>Documentation</h3><pre>
-
-Adds some overlooked helpers to the list. (helpers.txt)
-
-</pre><h3><a name="V4.81_Procedures"></a>Procedures</h3><pre>
-
-Makes a distinction between 2-part and 3-digit version numbers.
-(version.mak, vms.mak)
-
-</pre><h3><a name="V4.81_Utilities"></a>Utilities</h3><pre>
-
-Develops the Type 1 to CFF converter a little further; it is still NOT
-USABLE. (t1tot2.ps)
-
-Removes the pstoppm.ps script, since the p*m drivers supersede it.
-(pstoppm.ps, unix-end.mak)
-
-</pre><h3><a name="V4.81_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PDF writer sometimes omitted an ET command before setting the
-clip path. (gdevpdf.c)
- - The PDF writer didn't initialize the "vector" state, leading to
-some redundant output (performance bug only). (gdevpdf.c)
- - The PDF writer wrote clip paths even when they included the entire
-page (performance bug only). (gdevpdf.c)
-
-Changes the PDF writer so that it recognizes not only the 14 built-in fonts
-but any font with the same UniqueID and metrics. This covers some common
-cases of re-registering a font with a variant Encoding. (gs_pdfwr.ps)
-
-</pre><h3><a name="V4.81_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - SEARCH_HERE_FIRST was accidentally set to 0 on MS Windows
-platforms. (bcwin32.mak, msvc4.mak, msvc5.mak, watcw32.mak)
-
-Adds code to remove "" around arguments in the command line passed to
-WinMain (MS Windows platforms). (dwmain.cpp, dwmainc.cpp)
-
-</pre><h3><a name="V4.81_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - setsystemparams was broken. (gs_lev2.ps)
- - restore was broken if -dNOBIND was invoked. (gs_dps1.ps)
- - deviceinfo returned much more information than it should.
-(gs_dps.ps)
- - The fix for the default EndPage procedures not popping their page
-count operand from the stack was wrong. (gs_init.ps, gs_setpd.ps)
-
-</pre><h3><a name="V4.81_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The saved character origin took the translation component of the
-FontMatrix into account, which caused charpath on fonts with non-zero
-translation in the FontMatrix to produce incorrect results. (gschar.c)
-
-Removes incorrect access attributes on a couple of files. (gdevpdfm.c,
-gxclist.h)
-
-</pre>
-
-<h2><a name="Version4.80"></a>Version 4.80 (limited) (5/28/97)</h2>
-
-<p>
-This is the candidate fileset for the 5.0 release.
-
-<h3><a name="V4.80_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The one-line description of the color image rendering module was
-incorrect. (gximage3.c)
- - Some of the VMS documentation was out of date. (make.txt,
-use.txt)
- - The description of the file name separator for -sFONTMAP= was
-wrong. (use.txt)
- - PSFile was misspelled PSfile. (use.txt)
- - There were some minor typos. (gstype1.h)
- - The build instructions had a lot of obsolete information for PC
-environments, and didn't cover Microsoft Visual C++. (make.txt)
-
-Explains that -sPAPERSIZE= only specifies the default papersize, and that
-forcing a particular paper size also requires -dFIXEDMEDIA. (use.txt)
-
-Adds information about building with GNU make on OpenVMS. (make.txt)
-
-Clarifies the meaning of EOFC for streams. (strimpl.h)
-
-Documents the new dictionary argument for the eexecDecode filter.
-(language.doc)
-
-</pre><h3><a name="V4.80_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - gs_epsf.ps didn't get installed on Unix systems. (unix-end.mak)
- - The code wouldn't build with libpng 0.95b. (libpng.mak)
- - One of the VMS scripts used CC_QUAL instead of CC_DEF.
-(vms-cc.mak)
- - version.mak wasn't included in a dependency list. (unix-end.mak)
-
-Brings the VMS DCL script up to date again (for the last time, we hope).
-(vms.mak)
-
-Modifies all platform-independent uses of upper-case command line arguments
-to deal properly with VMS, where the shell converts all command line
-arguments to lower case, without requiring quotation. (devs.mak, gs.mak,
-int.mak, lib.mak, zlib.mak)
-
-Moves the compilation rules for the third-party libraries into gs.mak, so
-they can be used to compile the callers as well. (gs.mak, jpeg.mak,
-libpng.mak, zlib.mak)
-
-Adds a set of files that allow building on OpenVMS using GNU make (slightly
-patched). The timing on this is unfortunate, but we've wanted this for a
-very long time. NOTE: be sure to look in the OpenVMS section of make.txt
-for information on patching GNU make. (openvms.mak, append_l.com,
-rm_all.com, rm_one.com, copy_one.com)
-
-Adds new makefiles for building on 32-bit Windows with Borland, Watcom, and
-Microsoft Visual C++ (versions 4.x and 5.0). The timing on this is
-unfortunate too, but having this capability is so important that we couldn't
-pass it up. (bcwin32.mak, msvc4.mak, msvc5.mak, msvccom.mak, watcw32.mak,
-wincom.mak)
-
-Removes now-obsolete makefiles. (dwcommon.mak, msc.mak, msvcwint.mak,
-mscbegin.bat, watcwin.mak)
-
-</pre><h3><a name="V4.80_Utilities"></a>Utilities</h3><pre>
-
-Extends echogs to work in VMS environments, where the shell converts all
-command line arguments to lower case, without requiring quotation.
-(echogs.c)
-
-Adds a sketch of a utility for converting Type 1 fonts to CFF. DOESN'T WORK
-YET: DON'T TRY TO USE IT. (t1tot2.ps, type1ops.ps, writecff.ps)
-
-</pre><h3><a name="V4.80_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A type declaration wasn't compatible with libpng 0.95.
-(gdevpng.c)
- - kshow wasn't handled properly when producing PDF output.
-(gs_pdfwr.ps)
- - The PDF writer put out unnecessary ET/BT commands. (gdevpdfx.h,
-gdevpdf.c, gdevpdfi.c, gdevpdfm.c, gdevpdft.c)
- - The PCL XL writer put out real numbers for the miter limit, which
-are not allowed (!). (gdevpx.c)
- - The PCL XL writer didn't combine successive curves into a single
-curve command (performance bug only). (gdevpx.c)
- - The PCL XL writer could write uncompressed images with a tag
-saying they were compressed. (gdevpx.c)
- - The PCL XL writer always selected U.S. letter paper, rather than
-the requested size. (gdevpxen.h, gdevpx.c)
- - The PCL XL writer reselected the paper size on every page, even if
-it hadn't changed. (gdevpx.c)
- - The PCL XL writer always used shorts for line and curve
-coordinates, rather than using bytes when possible (performance bug only).
-(gdevpx.c)
- - Because of a compiler bug, a macro with argument conflicted with a
-variable name. (gdevpdfx.h, gdevpdf.c)
- - A picky compiler objected to an extern for an undefined structure.
-(gdevpsdf.h)
- - The PDF writer sometimes didn't reset the clipping path, causing
-bitmaps or rectangle to disappear. (gdevpdf.c, gdevpdfi.c)
- - The PDF writer produced invalid output if the first page was
-blank. (gdevpdf.c)
- - The AutoRotatePages parameter for PostScript and PDF output (which
-doesn't actually do anything yet) incorrectly expected a Boolean value
-rather than an enumeration. (gdevpsdf.h, gdevpsdf.c)
- - Some places returned -1 for an error without calling gs_note_error
-or gs_return_error. (gdevm1.c, gdevmpla.c, gdevrun.c, gxclpath.c)
- - The PCL XL writer produced extremely large files because it didn't
-download character bitmaps. (OK, this isn't really a bug fix.) (gdevpx.c)
- - The forwarding implementation of get_page_device didn't do the
-right thing. (gdevnfwd.c)
- - The x11alpha device didn't implement get_params properly, leading
-to anomalous behavior. (gdevxalt.c)
- - The PDF writer produced incorrect Count values for outlines: the
-count only counted descendant leaves, omitting intermediate nodes.
-(gdevpdfm.c)
-
-Removes an assumption that images have at most 4 components. (gdevpdfi.c)
-
-Adds an x11gray2 device, primarily for debugging. (devs.mak, gdevxalt.c)
-
-Updates the unified printer driver with a newer version. (uninfo.ps,
-gdevupd.c, *.upp)
-
-</pre><h3><a name="V4.80_Platforms"></a>Platforms</h3><pre>
-
-Adds the P*M devices and the X11 devices (commented out) to the OS/2
-makefile. (os2.mak)
-
-Updates the MS Windows platform to be compatible with Microsoft Visual C++
-(as well as Watcom and Borland compilers). (gsdll32.def, gdevmswn.h,
-gp_mswin.h, gsdll.h, dwimg.cpp, dwmain.cpp, dwmainc.cpp, dwtext.cpp,
-gdevwdib.c, gdevwprn.c, gdevwpr2.c, gp_mswin.c, gsdll.c)
-
-</pre><h3><a name="V4.80_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Certain synthetic fonts incorrectly were loaded into local rather
-than global VM. (These fonts are not part of the standard distribution.)
-(gs_fonts.ps, gs_pfile.ps, *ss*.ps)
-
-</pre><h3><a name="V4.80_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The FAKEFONTS scan could leave junk on the stack. (gs_fonts.ps)
- - Dynamically loading known encodings on demand left junk on the
-stack, causing a typecheck error. (gs_res.ps)
- - Some 'static' declarations were missing (gcc lossage). (iname.c)
- - Some internal operators didn't have names, leading to unhelpful
-error printout. (zfileio.c)
- - The resource "operators" didn't always restore the stacks properly
-on an error. (gs_res.ps)
- - The CID font code left a garbage value on the stack during
-loading. (gs_cidfn.ps)
- - The defineresource implementation for built-in resources like
-FMapType didn't leave the resource "value" on the stack. (gs_res.ps)
- - If an operator defined by a procedure was bound into a packed
-procedure, the stack-protection feature wasn't effective. (interp.c)
- - findfont didn't restore the stack if it failed. (gs_res.ps)
- - The showpage count passed to the BeginPage and EndPage procedures
-was incremented only if a page was printed, rather than for every invocation
-of showpage. (gs_init.ps, zdevice2.c)
- - The default EndPage procedures didn't pop their page count operand
-from the stack. (gs_init.ps, gs_setpd.ps)
- - If the argument of findfont wasn't a name or a string, and no font
-with that key had been registered, an error occurred. (gs_fonts.ps,
-gs_res.ps)
-
-Updates most of the remaining pseudo-operators to take advantage of stack
-protection. (gs_btokn.ps, gs_cmap.ps, gs_dps1.ps, gs_dps2.ps, gs_fonts.ps,
-gs_lev2.ps, gs_pdfwr.ps)
-
-Splits the image operators into a separate file from the path painting
-operators. (This should have been done a long time ago.) (iimage.h,
-zimage.c, zpaint.c)
-
-Adds more of the implementation of the NeXT alpha and compositing
-operations, under an #ifdef DPNEXT. (iimage.h, zcolor1.c, zdpnext.c,
-zimage.c)
-
-Adds more of the implementation of DPS contexts. These are still not
-usable. (icontext.h, icontext.c, zcontext.c, zmath.c)
-
-Changes the help message to describe -dBATCH instead of -c quit.
-(imainarg.c)
-
-Recognizes the dictionary argument for the eexecDecode filter. (zmisc1.c)
-
-</pre><h3><a name="V4.80_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The tracing message when starting to decode 1-D fax data reported
-the run_color incorrectly. (scfd.c)
- - In the CCITTFaxDecode filter, if a buffer boundary fell between a
-makeup code and a final zero-length termination code, an ioerror could
-occur. (scfd.c)
- - Per Adobe, in the CCITTFaxDecode filter, EndOfBlock = true should
-cause Rows to be ignored. (scfd.c)
- - If an output stream returned EOFC, an infinite loop might result.
-This problem (and the fix) are in the same fragile code as the EOD fix in
-4.74, and we may again have introduced a new bug. (stream.c)
-
-Changes the eexecDecode filter so that instead of a number, it can take a
-dictionary with two keys, seed and lenIV. (Having eexecDecode skip initial
-bytes at all was a design bug that is too late to fix.) (sfilter.h,
-seexec.c)
-
-</pre><h3><a name="V4.80_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The default mapping from RGB+alpha to RGB didn't lighten
-(premultiply) the color according to the alpha value. (gxcmap.c)
- - The angle error metric for rational tangent screen parameters
-should be simply the difference in angle, not a ratio. (gshtscr.c)
- - gs_setcolorscreen and gs_sethalftone didn't initialize an
-allocator pointer, leading to memory access errors. (gsht1.c)
- - If a banded image was clipped, an invalid band list could be
-produced. (gxclimag.c)
- - A picky compiler wouldn't allow an enum to be &amp;&amp;'ed with a
-boolean. (gschar.c)
- - A short-sighted compiler didn't allow the use of actual procedure
-names (as opposed to procedure variables) in a conditional expression.
-(gxfill.c)
- - A compiler objected to a name longer than 31 characters. (gzht.h,
-gsht.c, gxclread.c)
- - The height computations for banded images were not consistent,
-possibly leading to invalid band lists. (gxclimag.c)
- - copypage didn't reset the band writer and band reader bookkeeping
-consistently, leading to incorrect output and possible errors. (gxcldev.h,
-gxclist.c, gxclread.c)
- - When banding, changing the halftone could lead to accessing memory
-after freeing it. (gxclread.c)
- - When using disk files for band storage, showpage didn't actually
-delete or truncate the band list file, possibly causing subsequent copypage
-operations to become confused. (gxclfile.c)
- - When banding, having more than one image operator in progress at a
-time confused the rasterizing pass and could produce arbitrary errors. From
-PostScript, this can only happen in the case of an image whose data source
-was a procedure-based stream that itself invoked an image operator: this is
-a senseless and perverse thing to do, but it shouldn't break the code (and a
-Genoa CET file actually does it). (gxclist.h, gxclimag.c, gxclist.c)
- - Some picky compilers objected to negating unsigned values.
-(gsuid.h, gsht.c, gsmemory.c, gxpcopy.c)
- - When banding, if a 90- or 270-degree rotated monobit image was
-clipped, invalid memory accesses could occur. (gximage.h, gximage1.c)
- - The showpage count passed to the BeginPage and EndPage procedures
-was incremented only if a page was printed, rather than for every invocation
-of showpage. Fixing this requires removing the incrementing of the count
-from the library level altogether. (gsdevice.c)
- - When rendering a subrectangle of an image, the X DDA was
-initialized incorrectly, causing possible errors. We think this only
-affected certain banded images. (gxdda.h)
-
-Adds a provision for images with an alpha component, under an #ifdef DPNEXT.
-****** THE BANDING CODE HAS NOT BEEN UPDATED YET. ****** (gsiparam.h,
-gxcmap.h, gxdither.h, gximage.h, gsimage.c, gxclimag.c, gxclread.c,
-gxcmap.c, gximage.c, gximage3.c, gximage4.c ****** NOT DONE YET ******,
-gximage5.c)
-
-Adds a return_if_error macro to capture the common idiom of making a call
-and then returning its value if that value is negative (error). (gserror.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.74"></a>Version 4.74 (limited) (5/5/97)</h2>
-
-<p>
-This fileset is supposed to fix all remaining errors reported by the Genoa
-CET, and is intended to be the last incremental test fileset before the 5.0
-release.
-
-<h3><a name="V4.74_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Mark procedures are *not* executed in the normal return case.
-(estack.h)
- - The line_params element of a gs_imager_state is *not* allocated
-separately. (gsstate.c)
- - The value passed to the PDF writer for text is a dictionary, not
-an array. (gdevpdft.c)
-
-Improves the documentation of gstate memory management. (gsstate.c)
-
-Documents end_status = EOFC for writing streams. (stream.h, strimpl.h)
-
-Clarifies memory management for halftones and device halftones. (gsht1.h,
-gxdht.h, gxht.h, gzht.h)
-
-Removes the "experimental" tag from the PostScript and EPS writers.
-(devs.mak)
-
-</pre><h3><a name="V4.74_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The viewpcx utility scaled images improperly. (viewpcx.ps)
- - If a PDF file used F instead of f for filling a path, pdf2ps
-didn't output the fill operation. (pdf_base.ps)
-
-Changes the ps2pdf script so that, like pdf2ps, it allows debugging
-switches. (ps2pdf)
-
-</pre><h3><a name="V4.74_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The vgalib driver didn't clip monobit images properly.
-(gdevvglb.c)
- - The X driver asked for exposure events to be reported, but never
-read them, causing the event queue to grow indefinitely. (gdevxini.c)
- - The "vector" drivers and the PDF writer didn't properly keep track
-of whether the current clipping region was the default one. (gs_pdfwr.ps,
-gdevvec.h, gdevvec.c, gdevpdf.c, gdevpdft.c)
- - The PDF writer had word and character spacing interchanged.
-(gdevpdft.c)
- - The PDF writer scaled word and character spacing incorrectly.
-(gdevpdft.c)
-
-</pre><h3><a name="V4.74_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The user object operators didn't leave the stack in a clean state
-if they failed. (gs_dps2.ps)
- - UserObjects wasn't actually defined. (gs_dps2.ps)
- - deviceinfo and set/currenthalftonephase were defined even if the
-dps feature wasn't selected. (int.mak, gs_dps.ps, gs_dps1.ps, gs_lev2.ps,
-zdps.c, zdps1.c)
- - The dps feature didn't automatically include the level2 feature,
-which it needs. (int.mak)
- - The DPS user names mechanism didn't work, since the user names
-array was subject to save and restore. (It still doesn't really work --
-there is no provision for expanding the user names array, which is created
-with length 0.) (gs_btokn.ps, ivmspace.h, zbseq.c, zdps.c)
- - The DPS context operators didn't do all the necessary error
-checking. (zcontext.c)
- - The debugging printout for names printed the name index in hex
-without identifying it as such. (idebug.c)
- - Adding the first non-name key (or name key with a name index
-beyond 4K) to a dictionary that had any deleted entries could cause some
-entries to apparently disappear. (idict.c)
- - If a sub-table of the name table was freed during garbage
-collection, memory could be left in an inconsistent state. (iname.c, igc.c)
- - findfont didn't restore the stacks reliably if an error occurred.
-(gs_fonts.ps)
- - definefont with an invalid Type 0 font sometimes added a FID entry
-(with a dangling pointer) if it failed. (Recovering properly from a VMerror
-during font creation would require a much more complicated fix than this,
-but since we expect a garbage collection to occur in that case, we aren't
-concerned about it.) (zfont0.c)
- - Reading parameter values from a dictionary could access beyond the
-end of the array that keeps track of which entries had been referenced.
-(idict.h, idict.c, iparam.c)
- - Halftone data was allocated in the current VM rather than in the
-same VM as the halftone dictionary or procedure. (Fixing this includes
-updating code as necessary for the change in halftone and device halftone
-allocation.) (iht.h, ivmspace.h, zht.c, zht1.c, zht2.c)
- - Closed non-executable files on the e-stack could cause a restore
-to be invalid. (zvmem.c)
-
-Adds skeleton code for the NeXT Display PostScript alpha and compositing
-operators. This is not ready for use yet! (errors.h, gs_dpnxt.ps,
-zdpsnext.c)
-
-Implements more of state saving and restoring for Display PostScript
-contexts. This is not ready for use yet either. (int.mak, icontext.h,
-istack.h, icontext.c, zcontext.c)
-
-Adds stub code for the Display PostScript view clip operators. (gs_dps.ps,
-zdps.c)
-
-Removes the obsolete PPM-writing operator. (int.mak, vms.mak, *.mak,
-zwppm.c)
-
-Makes the random number generator state public so it can be stored in the
-context state. (zmath.c)
-
-Changes the flag for forcing global garbage collection to a run-time
-variable, for debugging. (igc.c)
-
-Changes the handling of job control so that it doesn't use procedures that
-produce an execstackoverflow when being printed. (gs_init.ps)
-
-Updates code as necessary for the change in reference counting. (zcie.c,
-zcrd.c)
-
-Updates code as necessary for the change in off-stack gstate copying.
-(zdps1.c)
-
-Removes a small bit of obsolete code. (interp.c)
-
-</pre><h3><a name="V4.74_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - An output stream that was not the last one in a pipeline could
-incorrectly be asked to write its EOD marker more than once. (The fix is
-very fragile and may have introduced new bugs.) (stream.c)
-
-</pre><h3><a name="V4.74_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The gx_device_halftone_release procedure was declared in two
-different header files. (gzht.h)
- - Off-stack copying of gstates could lead to a situation where
-different parts of a single gstate were owned by different allocators; this
-could cause them to be freed improperly, corrupting memory. We fixed this
-partly by making the mixed ownership situation work, and partly by copying
-more of the gstate when off-stack gstates are involved. Unfortunately, the
-fixes are subtle and may have introduced new bugs. (gsstate.h, gsht.c,
-gsht1.c, gspcolor.c, gsstate.c)
- - If an error occurred while creating a Pattern instance, the
-partially initialized instance structure wasn't freed. (gspcolor.c)
- - Halftones and device halftones didn't allocate their clones or
-their subsidiary structures with the correct allocator. (gsht.c, gsht1.c)
- - The error statement when allocating a reference-counted object had
-to be a control transfer. (gsrefct.h)
- - Copying gstates incorrectly copied the memory and saved pointers,
-and the pointer to the dash pattern. (gsstate.c)
- - Flatness values less than 0.5 produced far more line segments than
-necessary (roughly the square of the required number). Fixing this may have
-bad effects on character quality -- this remains to be seen. (gxpflat.c)
- - An error during installation of a halftone could leave things in
-an inconsistent state. (gsht.c)
- - The API didn't provide enough flexibility with respect to memory
-management for halftones, or guarantee consistent allocation of a halftone
-and its subelements. (gsht1.h, gsht.c, gsht1.c, gshtscr.c)
- - Releasing a path didn't clear enough pointers to ensure clean
-garbage collection. (gxpath.c)
- - Finalizing or discarding a (cached) scaled font didn't properly
-unlink it from the scaled_fonts list. (gsfont.c)
- - Invoking an image operator within the BuildChar procedure for a
-charpath caused an infinite loop. (gsimage.c)
- - The bookkeeping for the scaled font cache was incorrect: the count
-didn't always get decremented when a scaled font was freed. (gsfont.c)
- - "High level" masked images were written incorrectly in the band
-list as black-and-white images. (gxclimag.c)
- - For "high level" images with fewer than 4 samples per pixel,
-non-standard Decode values were written incorrectly in the band list.
-(gxclimag.c)
- - The color wasn't set correctly for "high level" masked images.
-(gxclimag.c)
- - The fastest case of monobit image rendering could get a memory
-access error if the image lay partly outside the page. (gximage1.c)
- - Clipping with an empty path was a no-op, rather than clipping out
-everything. (gxcpath.c)
-
-Makes reference-counted objects remember which allocator owns them: this
-entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference
-counting. This was necessary to fix the off-stack gstate copying problem.
-(gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c,
-gsstate.c, gxclread.c)
-
-Refactors the unpacking of image data, to make unpacking available as a
-general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c,
-gximage1.c, gximage4.c, gxsample.c)
-
-Enhances -Z? so that before freeing an object, it checks that the object was
-owned by the correct allocator. (gsalloc.c)
-
-</pre>
-
-<h2><a name="Version4.73"></a>Version 4.73 (limited) (4/19/97)</h2>
-
-<p>
-This is an incremental bug fix release made primarily to provide a
-synchronization point for an upcoming trip.
-
-<h3><a name="V4.73_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - A reference to the uniprint documentation was incorrect.
-(current.txt)
- - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required;
-this is also required for SGI IRIX. (make.txt)
-
-Adds argument/result comments to all the operators defined in gs_lev2.ps.
-(Eventually we will do this for all operators defined as PostScript
-procedures.) (gs_lev2.ps)
-
-</pre><h3><a name="V4.73_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The makefiles didn't provide a default value for GCONFIG_EXTRAS.
-(gs.mak)
-
-</pre><h3><a name="V4.73_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - pdf2ps didn't work with TrueType or compressed Type 1 fonts.
-(gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
-
-</pre><h3><a name="V4.73_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A cast from byte to char was omitted. (gdevpdfm.c)
-
-</pre><h3><a name="V4.73_Platforms"></a>Platforms</h3><pre>
-
-Updates the VMS script (again). (vms.mak)
-
-</pre><h3><a name="V4.73_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A module that used strlen didn't include string_.h. (zdevice.c)
- - Because of some bad PostScript code in FrameMaker output, identity
-rather than unity black generation and undercolor removal functions are
-required on black-and-white devices. (gs_init.ps)
- - A harmless internal error during initialization left bogus
-information in $error. (gs_cidfn.ps)
- - startjob didn't clear the execution stack. Fixing this required
-NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop,
-and .stopped, which are not supposed to be used by any external code.
-(startjob will still give errors if executed in a file that isn't being
-piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps,
-iref.h, imain.c, interp.c, zcontrol.c, zfile.c)
-
-Adds a new .execn operator, part of the startjob changes, that allows
-pushing multiple items on the exec stack. Eventually this will allow us to
-get rid of many dynamically created closures. (zcontrol.c)
-
-</pre><h3><a name="V4.73_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps,
-pdf_main.ps)
-
-Makes the default PDF configuration notify users more informatively when
-encountering an encrypted file. (pdf_sec.ps)
-
-</pre><h3><a name="V4.73_Streams"></a>Streams</h3><pre>
-
-Makes the RunLengthEncode filter always generate optimally compressed
-output. We did this because we thought one of the Genoa CET files loops
-forever if this is not the case; but we were wrong. (srle.c)
-
-</pre><h3><a name="V4.73_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - If one coordinate of a position or distance overflowed the
-internal representable range, the other coordinate became garbage. (bug
-introduced in 4.70) (gspath.c)
- - The bounding box computation for strokes was slightly too large
-(sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c)
-
-Adds (under an #if 0) an experimental alternate halftone cell choice
-algorithm. (gshtscr.c)
-
-Adds a better comment to a particularly obscure line of C code.
-(gxclimag.c)
-
-</pre>
-
-<h2><a name="Version4.72"></a>Version 4.72 (limited) (4/14/97)</h2>
-
-<p>
-This is another bug fix release, motivated mostly by Genoa testing. It also
-updates the new uniprint driver with a major revision, and upgrades CFF
-support a little bit.
-
-<h3><a name="V4.72_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - -dNOGC only disables default automatic garbage collection, not all
-garbage collection. (use.txt)
- - Apparently a different set of flags is needed for newer H-P
-compilers. (make.txt)
-
-Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt)
-
-Updates the documentation for the uniprint driver. (devices.txt)
-
-Clarifies the fact that Ghostscript reads Fontmap files from *all*
-directories in the search list. (use.txt)
-
-Notes that building on GNU/Linux may require SM and ICE in the list of X
-libraries. (make.txt)
-
-</pre><h3><a name="V4.72_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - An -include type42 was omitted from the level2 module description.
-(int.mak)
- - A mention of $(ECHOGS) in the rule for sfile should have been
-$(ECHOGS_XE). (lib.mak)
- - The pcx2up sample device should have been put in devs.mak rather
-than lib.mak. (devs.mak, lib.mak)
- - scanchar.h and scantab.c belong in the library, not the
-interpreter. (devs.mak, int.mak, lib.mak)
- - Some _h definitions were used before being defined, or weren't
-defined at all. (devs.mak, lib.mak)
- - The JPEG driver was missing a dependency. (devs.mak)
- - The PDF writer was missing a dependency. (devs.mak)
- - Building Level 1 systems was no longer possible. (int.mak)
-
-Updates the VMS build scripts. (vms.mak, vms-decc.mak)
-
-Adds *.upp to the list of files installed under Unix. (unix-end.mak)
-
-Adds rules to the Unix makefiles to build two library files: gs.a,
-consisting of the entire PostScript/PDF interpreter lacking only gs.c, and
-gslib.a, consisting of the graphics library without the gslib.c test driver.
-(ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)
-
-</pre><h3><a name="V4.72_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PS/EPS writers could generate a reference to an undefined
-name. (gdevps.c)
- - The PDF writer produced incorrect output for multi-level outlines.
-(gdevpdfm.c)
- - The PDF writer didn't convert /Action to /A, and /Action/Subtype
-to /S, in Annot dictionaries. (gdevpdfm.c)
- - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps)
- - The PDF writer didn't transform /Rect and /R values to current
-user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c)
- - The PNG writer could refer to the 3 predefined stdio files even in
-environments where this was undesirable. (gdevpng.c)
- - The PDF writer had a compiled-in limit of 100 pages of output.
-(gdevpdfx.h, gdevpdf.c)
-
-Updates the uniprint driver with a major revision that uses device
-parameters that can be set from the command line, rather than PostScript
-code, for configuration choices. (gdevupd.c, *.upp)
-
-</pre><h3><a name="V4.72_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - gp_enumerate_files_next had no way to return an error. (gp.h,
-gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT
-IMPLEMENTED YET ******
- - On the Watcom platform, CPU_TYPE &gt;= 486 didn't automatically set
-FPU_TYPE to 387. (wccommon.mak)
-
-</pre><h3><a name="V4.72_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Caching the current device in userdict could create dangling
-references. (gs_init.ps, gs_pdfwr.ps, zdevice.c)
- - If an error occurred in a BuildChar or BuildGlyph procedure, the
-graphics state stack wasn't restored. (ichar.h, zchar.c, zchar2.c)
- - There was an obsolete check for a structure when cleaning up after
-a show operator. (zchar.c)
- - Attempting to show a character with no associated glyph in a Type
-3 font with a BuildGlyph procedure caused an error. (zchar.c)
- - noaccess on a read-only dictionary didn't give an error.
-(ztype.c)
- - The dictionary passed to a Pattern's PaintProc was the original
-template, not the copy made by makepattern. (gs_lev2.ps)
- - Invalid font parameters could result in partially constructed
-fonts, which caused problems for restore. (zfont0.c, zfont2.c)
- - Files run under job control caused an error when terminating.
-(gs_init.ps)
- - setpagedevice didn't protect itself against malfunctioning
-BeginPage or EndPage procedures. (The protection is still not perfect.)
-(gs_setpd.ps)
- - .type42execchar called font_param redundantly. (zchar42.c)
- - The font operators didn't protect themselves well enough against
-bogus font dictionaries. (zfont.c, zfont0.c)
- - If an error occurred within a stringwidth, the graphics state
-stack wasn't restored properly. (zchar.c)
- - If an error occurred within the PaintProc of a form, the graphics
-state stack was left with an extra entry. (gs_lev2.ps)
- - Registering a font under a second name could corrupt data
-structures. (zfont2.c)
- - Different scalings of the same font should have "equal" fontIDs,
-to match the Adobe implementations. (iutil.c)
- - Errors detected by PostScript code during initialization either
-allowed execution to continue or produced a hex stack dump, instead of just
-producing a message and exiting. (interp.c)
- - The memory validator didn't validate chunks at previous save
-levels. (ilocate.c)
- - The Level 1 size of systemdict was too small. (iinit.c)
- - Attempting to define a Category resource in local VM gave a
-typecheck error rather than an invalidaccess. (gs_res.ps)
- - Building Level 1 systems was no longer possible. (zusparam.c)
-
-Rearranges the interpreter code slightly so that all operator invocations go
-through a single procedure when debugging. (interp.c)
-
-Adds a -K&lt;numK&gt; switch to limit the total amount of memory that Ghostscript
-can acquire. (imainarg.c)
-
-Makes the memory validator check packed refs more carefully. (ilocate.c)
-
-Makes the memory validator check explicitly for pointers to freed objects.
-(igc.c, ilocate.c)
-
-Makes the memory validator check dictionaries more carefully. (ilocate.c)
-
-Makes the memory validator check refs embedded in structures. (ilocate.c)
-
-Adds a debugging option that bypasses the garbage collector entirely.
-(igc.c)
-
-Adds debugging options to validate memory before/after save/restore.
-(zvmem.c)
-
-Removes the patch for the uniprint driver, since it is no longer needed.
-(gs_init.ps)
-
-Implements real-number operands in CFF fonts. (gs_cff.ps)
-
-Implements non-default charsets in CFF fonts. (gs_cff.ps)
-
-</pre><h3><a name="V4.72_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - The PDF 1.2 "marked content" operators weren't defined.
-(pdf_main.ps)
- - Streams with binary data whose first character was an EOL (\n)
-didn't parse properly. Unfortunately, the way we fixed this may break some
-other files. (pdf_base.ps)
- - PDF 1.2 #nn escape syntax in names wasn't recognized. ****** This
-is implemented with an inefficient hack that should be moved down into C.
-However, I don't want to risk introducing new bugs during the beta test
-period. ****** (pdf_base.ps)
- - The interpreter had a limit of 64K objects. Removing this limit
-required changing a basic data structure -- admittedly a risky thing to do
-during beta test. (pdf_base.ps, pdf_main.ps)
- - TJ didn't multiply the offsets by the font size, causing incorrect
-character positioning. (gs_pdf.ps)
-
-</pre><h3><a name="V4.72_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The ASCIIHexDecode filter read an extra character in case of
-error. (sstring.c)
-
-Adds more tracing output to the CCITTFaxDecode stream. (scfd.c)
-
-</pre><h3><a name="V4.72_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The allocator client name for rendering bitmap patterns was
-incorrect. (Only affects tracing output.) (gspcolor.c)
- - The check for exceeding the overall allocation limit was
-incorrect, because of unsigned arithmetic. (Only affects limitation of
-total allocation, which is only used for debugging and benchmarking.)
-(gsmemory.c)
- - The 0'th component of colored screens wasn't passed through the
-band list, possibly causing access errors when rasterizing. (gxclimag.c,
-gxclread.c)
- - setbbox could get an overflow without detecting it. (gsdps1.c)
- - Images with only one component but MultipleDataSources = true
-could cause a memory access error. (gximage.c)
- - The buffer for unpacking 12-bit-per-sample image data was too
-small, causing memory corruption. (gximage.c)
- - 12-bit-per-sample images with multiple data sources sometimes
-didn't pass correct pointers to image_data. (gsimage.c)
- - If an image data stream reached EOF before supplying enough data
-for the entire image, memory corruption could occur. (zpaint.c)
- - When a device halftone was freed, some pointers in the halftone
-cache weren't cleared, leading to possible dangling references. (gsstate.c)
- - Invalid font parameters could result in partially constructed
-fonts, which caused problems for restore. (gxfont0.h, gsfont.c)
- - If an error occurred within a stringwidth, the graphics state
-stack wasn't restored properly. (gschar.c)
- - The (static) limit on the size of a command line argument was too
-small. (gsargs.h)
- - Building Level 1 systems was no longer possible. (gxdht.h,
-gsht.c, gsht1.c)
- - Truncation instead of rounding caused colors on gray-scale devices
-to come out very slightly too dark. (gxcmap.c)
- - The Decode mapping table constructed for images was slightly
-inaccurate for ranges other than [0 1] or [1 0]. (gximage.c)
-
-</pre>
-
-<h2><a name="Version4.71"></a>Version 4.71 (limited) (3/31/97)</h2>
-
-<p>
-This is a bug fix release during the beta test period.
-
-<h3><a name="V4.71_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - A larger value of -Olimit is now needed to optimize gxclread.c.
-(make.txt)
- - Some comments were incorrect. (gdevbbox.h, sfilter1.c)
-
-Updates the GPL with a newer version from FSF. (COPYLEFT)
-
-Notes that the gcc 2.7.x code generation bug is fixed in 2.7.2.1.
-(make.txt)
-
-</pre><h3><a name="V4.71_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Some streams required by high-level drivers were incorrectly
-grouped with the interpreter rather than the library. (int.mak, lib.mak)
- - The choice of implementation for file streams was buried in an
-obscure place, rather than being included in the configuration definitions
-at the head of each makefile. (We believe there are no more such buried
-parameters.) This involved a NON-BACKWARD-COMPATIBLE change in the way this
-choice was specified. (lib.mak, *.mak)
- - Some dependencies were missing. (lib.mak)
-
-</pre><h3><a name="V4.71_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A variable was used before being initialized, causing get_bits
-(and raster ops) to fail when using alternate X devices. (bug introduced in
-4.70.) (gdevxalt.c)
- - Some 'private' declarations were omitted. (It is infuriating that
-gcc doesn't check for this!) (gdevps.c, gdevpx.c)
- - A few character strings were used as byte arrays without a cast.
-(gdevpx.c)
- - The EPS writer didn't write a correct bounding box, and didn't
-write it at the beginning of the file. (gdevvec.h, gsstruct.h, gdevps.c,
-gdevvec.c)
- - x_copy_color specified an incorrect (too large) image width.
-Apparently this only mattered because it could cause invalid memory
-accesses. (gdevx.c)
- - x_copy_mono also specified too large an image width. It's not
-clear this made any difference. (gdevx.c)
- - The default implementation of strip_copy_rop didn't clamp Y values
-to legal values for get_bits. (gdevmrop.c)
-
-</pre><h3><a name="V4.71_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Some initialization files prematurely switched the interpreter
-into Level 2 mode, causing some Level 2 operators not to be defined. (bug
-introduced in 4.60 or later.) (gs_cff.ps, gs_cidfn.ps, gs_cmap.ps,
-gs_init.ps, gs_res.ps)
-
-</pre><h3><a name="V4.71_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The choice of procedure names for the file-descriptor-based
-implementation of file streams was buried in a .c file, rather than being
-chosen in the makefile. (sfile.c[deleted], sfileno.c[deleted], sfxstdio.c,
-sfxfd.c, sfxboth.c)
-
-</pre><h3><a name="V4.71_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - rcurveto was broken -- it drew curves to random points. (bug
-introduced in 4.61.) (gspath.c)
- - A trailing comma in an enum definition upset some compilers. (bug
-introduced in 4.70.) (gstype1.h)
- - Type 1 fonts with hint replacement could produce anomalous or
-clipped output, or even missing lines. (Also cleans up some out-of-date
-formatting.) (gxtype1.h, gstype1.c, gxhint2.c)
- - Removes some conditionals for choosing between old and new
-algorithms. (gxhint3.c)
- - makebitmappattern required that the bitmap consist of only a
-single tile repetition. (gspcolor.c)
- - Some computations on RasterOps didn't take transparency into
-account properly. (gdevmrop.c)
- - The structure definition for imager and graphics states had an
-incorrect offset for line_params, causing the garbage collector not to mark
-or relocate dash patterns, possibly causing memory faults, FPEs, or invalid
-output. (bug introduced since 4.03.) (gsstate.c)
- - 'show' operators gave a limitcheck for unreasonable coordinates,
-even if limit clamping was enabled. (gschar.c)
-
-Implements banded filling and stroking with colored halftones, in addition
-to pure colors and binary halftones. Since we are in a beta test period,
-actual use of this feature (but *not* all the code implementing it) is
-disabled under an #ifdef FUTURE. (gsdcolor.h, gxcldev.h, gxclpath.h,
-gxdht.h, gxhttype.h, gsht.c, gxclimag.c, gxclpath.c, gxclread.c)
-
-</pre>
-
-<h2><a name="Version4.70"></a>Version 4.70 (limited) (3/26/97)</h2>
-
-<p>
-This fileset fixes the one outstanding compilation problem on PC platforms
-and the old problem of limitchecks for out-of-bounds coordinates, and adds a
-variety of new features, including the ability to save away the band lists
-for pages and rasterize them later and/or elsewhere in any order and
-combination. This is the first "serious beta" candidate for the next
-general release.
-
-<p>
-Fileset numbers 4.62 through 4.69 were skipped deliberately.
-
-<h3><a name="V4.70_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The list of special -d and -s switches was out of date. (use.txt)
- - The name of the zlibDecode filter was incorrectly written
-zlibEncode. (language.txt)
-
-Documents where to find out how to install gcc 2.7.x on SGI IRIX 6.x.
-(make.txt)
-
-Documents a makefile patch required on NeXTStep. (make.txt)
-
-Documents how to patch gcc to fix the AXP code generation bug. (make.txt)
-
-Adds documentation for the new unified printer driver. (devices.txt)
-
-</pre><h3><a name="V4.70_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - 'make distclean' didn't remove a couple of files. (gs.mak)
- - A library module didn't include a necessary dependency. (lib.mak)
- - A new .ps file wasn't installed properly. (unix-end.mak)
- - File write dates weren't updated properly on PC platforms, causing
-unnecessary rebuilding. (cp.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak,
-tccommon.mak, wccommon.mak, zlib.mak)
- - An unnecessary explicit compilation line for gdevcdj.c caused
-problems in the Mac environment. (devs.mak)
- - The VMS scripts were out of sync again. (vms.mak)
- - The VMS build scripts didn't include the new JPEG driver.
-(vms-*.mak)
- - A number of makefile macros were referenced before being defined.
-(devs.mak, lib.mak, int.mak, *.mak)
- - libpng.mak didn't work with PVERSION=90. (libpng.mak, zlib.mak)
-
-Separates install-scripts from install-exec and install-data.
-(unix-end.mak)
-
-Moves the definition of SEARCH_HERE_FIRST from iminst.h to the makefiles.
-(*.mak, iminst.h, iconf.c, imain.c)
-
-Adds a -dBATCH switch that causes Ghostscript to exit after processing the
-files named on the command line. (gs_init.ps)
-
-Adds the PostScript, EPS, and PCL XL writers, and the color and gray-scale
-JPEG drivers, to all Unix configurations. (ansihead.mak, cc-head.mak,
-gcc-head.mak)
-
-</pre><h3><a name="V4.70_Drivers"></a>Drivers</h3><pre>
-
-NOTE: because of a change in an internal interface (clist_output_page), the
-cp50 driver no longer works. This is a user-contributed driver for which we
-take no responsibility.
-
-Fixes bugs:
- - gdevcdj.c wasn't compatible with ansi2knr. (gdevcdj.c)
- - 'private' was omitted from some declarations. (gdevjpeg.c)
- - The PostScript writer didn't keep track of the current color
-properly. (gdevps.c)
- - RESOLUTION was misspelled in a header. (gdevbjc.h)
- - Some compilers objected to the use of a floating point initial
-resolution value. (gdevbjc.h)
- - Some compilers didn't allow static initialization of a union.
-(gsdcolor.h)
- - If a TIFF driver got an error when initializing the CCITTFax
-encoder, it returned a bogus error code. (gdevtfax.c)
- - The PDF writer produced incorrect output for Indexed color space
-images. (gdevpdfi.c)
- - For many fatal error conditions, the X driver called exit()
-instead of returning an error. (gdevx*.c)
-
-Adds new drivers:
- - epswrite, an EPS-writing driver (instead of making EPS output a
-parametric option of the PostScript-writing device). (devs.mak, gdevps.c)
- - pcxcmyk, a 4-bit CMYK PCX driver. This is probably only useful
-for debugging CMYK color rendering. (gdevpcx.c)
- - jpeggray, a JPEG driver that produces gray-scale rather than color
-output. Thanks to Tom Lane for contributing this. (gdevjpeg.c)
- - uniprint, a unified printer driver for a wide variety of inkjet
-printers. Thanks to Gunther Hess for contributing this. (gdevupd.c)
-
-Adds the resolution (pHYs) to the output of the PNG drivers. (gdevpng.c)
-
-Adds recognition of the ASCII85EncodePages parameter to the PostScript and
-EPS writers. (gdevps.c)
-
-Makes the new JPEG driver write a JFIF header, which contains the image
-resolution. (gdevjpeg.c)
-
-Changes the "vector" device support interface so relative movement can be
-detected easily. THIS IS STILL SUBJECT TO CHANGE WITHOUT NOTICE.
-(gdevvec.h, gdevpsdf.c, gdevps.c, gdevpx.c, gdevvec.c)
-
-Changes the PostScript, EPS, and PDF writers to recognize curves and lines
-that can be represented more efficiently. (gdevpsdf.h, gdevpsdf.c,
-gdevps.c)
-
-Adds a new parameter to the PDF writer, FirstObjectNumber. This defines the
-first object number that will be used in the output. The default, and
-minimum, value is 1; the maximum value is approximately 2^31. This is for
-the benefit of dvipdf; we don't expect it to be used otherwise. In fact,
-using it appears to produce files that Adobe Acrobat Reader won't accept,
-even though the files are perfectly compliant with the published PDF
-specification. (gdevpdfx.h, gdevpdf.c, gdevpdfp.c)
-
-</pre><h3><a name="V4.70_Platforms"></a>Platforms</h3><pre>
-
-Removes the makefile for the 16-bit Borland C++ platform. This was the last
-supported 16-bit platform; we expect to gradually drop all 16-bit
-concessions from the code itself. (bcwin.mak)
-
-</pre><h3><a name="V4.70_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The initial size of systemdict was too small, causing the
-interpreter to slow down substantially. (iinit.c)
- - A library module depended on an interpreter module. (zcsindex.c)
- - A logically necessary (but accidentally always available) #include
-was missing. (ifont.h)
-
-Moves set/currentoverprint to a more appropriate module. (zcolor2.c,
-zcssepr.c)
-
-Changes the default transfer functions so that they do something reasonable
-when given operands outside the legal [0..1] range. We only do this to work
-around a bug in FrameMaker output, which uses the transfer function as the
-screen function (!). (gs_init.ps)
-
-Changes the CMap construction algorithm to use the new, more compact
-representation. (zfcmap.c)
-
-Adds support for Adobe's Compact Font Format. Many individual features are
-not implemented yet: see the comment in the source code for details.
-(gs_cff.ps)
-
-Adds support for Type 2 charstrings in Type 1 fonts. (ifont.h, zfont1.c)
-
-Changes the Type 1 character rendering operator for the library change in
-Type 1 fonts. (zchar1.c, zfont1.c)
-
-Initializes the graphics state limit clamp flag to true. (zgstate.c)
-
-Temporarily adds a configuration file for the new unified printer driver,
-and arranges for it to be read at startup. This arrangement will be
-replaced very soon by a different one based on command line parameters.
-(gs_init.ps, uniprint.ps)
-
-</pre><h3><a name="V4.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Adds support for Compact Font Format fonts. (pdf_font.ps)
-
-</pre><h3><a name="V4.70_Streams"></a>Streams</h3><pre>
-
-Adds a glue procedure needed for the new jpeggray driver. (sjpeg.h,
-sjpege.c)
-
-Removes the width limit of 32K in the CCITTFaxEncode filter. The new limit
-is absurdly large (about 50M). (scf.h, scfx.h, scfe.c)
-
-</pre><h3><a name="V4.70_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A library module depended on an interpreter module. (gxcolor2.h,
-gscolor2.c)
- - When rendering a band, clipping was sometimes used when it wasn't
-necessary. (Performance only.) (gxclread.c)
- - Stroking didn't check the path against the device clipping box in
-the absence of an explicit (non-default) clipping path. (Performance only.)
-(gxstroke.c)
- - A reference to an opaque type upset a couple of compilers.
-(gxclread.c)
- - Negative 32-bit numbers in Type 1 fonts didn't work properly on
-64-bit systems. (gstype1.c)
- - A logically necessary (but accidentally always available) #include
-was missing. (gxbitmap.h)
- - A header wasn't protected against double inclusion. (gxclist.h)
- - Clipping devices didn't store their actual width and height.
-(gxcpath.c)
- - The slow-case check for thin lines was incorrect. (gxstroke.c)
- - Images didn't compute their clipping boxes correctly if there
-wasn't an explicit clipping path. (This must be a very recent bug, since it
-creates an overflow condition that prevents monochrome images from being
-rendered at all.) (gximage.c)
-
-Moves set/currentoverprint to a more appropriate module. For clients of
-gs_set/currentoverprint, this is a NON-BACKWARD-COMPATIBLE CHANGE, since the
-header file is now separate. (gscolor2.h, gscsepr.h, gscolor2.c, gscsepr.c)
-
-Replace the MetroWerks work-around with a different, more general one.
-(gdevmem.h, gdevmem.c, gxdevice.h)
-
-Speeds up the Type 1 interpreter a little. (gstype1.c, gxhint3.c)
-
-Redesigns the internal representation of CMaps to be more space-efficient.
-(gxfcmap.h, gschar0.c, gsfcmap.c)
-
-Implements a facility for saving away pages and rendering them later.
-Currently this requires the pages to be represented as band lists on files,
-and only allows X translation when rendering. This involves adding the
-following new printer device parameters:
- BandHeight
- BandWidth
- BandBufferSpace
-Also changes the names of the printer device parameter elements from
-use_buffer_space to BufferSpace and from max_bitmap to MaxBitmap for
-consistency. (gdevprn.h, gxcldev.h, gxclio.h, gxclist.h, gxclmem.h,
-gxclpage.h, gxdevmem.h, gdevmem.c, gdevp2up.c, gdevprn.c, gxclmem.c,
-gxclpath.c, gxclread.c)
-
-Changes the band list implementation API to allow closing a file without
-deleting it, and to allow reopening an existing file. This is a
-NON-BACKWARD-COMPATIBLE change to a deep internal interface. (gxclio.h,
-gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c)
-
-Speeds up rendering of colored halftones, by recognizing cases where one or
-more planes don't actually require screening, unrolling a loop, and doing
-basic clipping before halftoning. (gxcht.c)
-
-Adds a graphics state parameter, gs_set/currentlimitclamp, that changes the
-handling of out-of-range coordinates to clamp them in a way that produces
-approximately the intended output most of the time, rather than causing a
-limitcheck. Currently this is only designed to work with the basic path
-construction operations ([r]moveto, [r]lineto, [r]curveto, closepath); it
-does not work with many other operations such as show, flattenpath or the
-rectangle operations. Note also that while currentpoint will return the
-correct (unclamped) value, reading out the path with pathforall will return
-clamped values. This involves NON-BACKWARD-COMPATIBLE changes to the path
-structure (but not to any public interfaces). (gxpath.h, gxtype1.h,
-gzpath.h, gzstate.h, gspath.c, gspath1.c, gsstate.c, gstype1.c, gxpaint.c,
-gxpath.c, gxpath2.c, gxpcopy.c)
-
-Adds support for Type 2 charstrings. Some features are not implemented yet:
-see gstype2.c for details. (gscrypt1.h, gstype1.h, gxfont1.h, gxop1.h,
-gxtype1.h, gstype1.c, gstype2.c, gxhint2.c, gxhint3.c, gxtype1.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.61"></a>Version 4.61 (limited) (3/13/97)</h2>
-
-<p>
-This fileset cleans up many compiler warnings. It adds support for
-CMap-encoded fonts, and a driver that writes JPEG images.
-
-<h3><a name="V4.61_Documentation"></a>Documentation</h3><pre>
-
-Corrects an error in the description of the internal CodeMap structure.
-(gs_cmap.ps)
-
-Documents the fact that the optimizer in gcc 2.7.2.1 is broken on AXP
-machines. (make.txt)
-
-Corrects the name of the .setglobal/.currentglobal procedures. (zvmem2.c)
-
-Updates current.txt in preparation for the release. (current.txt)
-
-</pre><h3><a name="V4.61_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The VMS script was out of date again. (vms.mak)
- - CIDFont support unnecessarily required composite font support.
-(int.mak)
- - CMap and CIDFont support had improper dependencies on
-initialization order. (lib.mak, int.mak)
- - Some dependencies were missing in the JPEG library code.
-(jpeg.mak)
-
-Adds the new JPEG driver to all standard configurations. (*.mak)
-
-</pre><h3><a name="V4.61_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A dependency was omitted from the makefile. (devs.mak, gdevps.c)
-
-Cleans up some warnings from picky compilers. Some of these actually
-indicated problems, such as unreachable code. (gdevpdfx.h, gdevbj10.c,
-gdevcdj.c, gdevpdfp.c, gdevstc.c)
-
-Adds a JPEG-writing driver. Currently this only produces RGB output and
-only has a QFactor parameter, but eventually it could take all the other
-parameters of the DCTEncode filter. (devs.mak, int.mak, lib.mak,
-gdevjpeg.c)
-
-Refactors the PDF and PostScript output drivers so that both of them
-understand all the relevant documented PDF distiller parameters. (The
-PostScript driver currently disregards nearly all of them.) (gdevpdfx.h,
-gdevpsdf.h, gdevvec.h, gdevpdf*.c, gdevps.c, gdevpsdf.c, gdevpx.c)
-
-</pre><h3><a name="V4.61_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The MetroWerks C compiler gave an inexplicable error on a
-particular initialization. (gdevmem.h, gdevmem.c)
-
-</pre><h3><a name="V4.61_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The insideness testing operators sometimes reported hits
-incorrectly. (zupath.c)
- - Mixed-type arithmetic used floats rather than doubles when
-converting integers, possibly leading to loss of precision. (zarith.c,
-zrelbit.c)
- - composefont was defined in a private dictionary, not in
-systemdict. (gs_cmap.ps)
- - composefont didn't work, for several different reasons.
-(gs_cmap.ps)
- - After a Type 1 font called an OtherSubr, an invalid memory access
-usually occurred, because of an incorrect attempt to free a data structure.
-(zchar1.c)
- - 2 .setlanguagelevel gave an error if globaldict hadn't been
-defined yet. (zmisc2.c)
-
-Cleans up some warnings from picky compilers. Some of these actually
-indicated problems, such as unreachable code, or failure to check for
-(implausible) out-of-range data. (idict.c, idparam.c, igc.c, iinit.c,
-imain.c, iscan.c, zbseq.c, zchar1.c, zdps1.c)
-
-Adjusts clients for a change in the internal character cache structure and
-the introduction of the font next-glyph procedure. (zfont.c, zfont0.c)
-
-Refactors the Level 1 / Level 2 interpreter split slightly so that composite
-fonts don't require all of Level 2. (int.mak, gs_dps1.ps, gs_dps2.ps)
-
-Adds FMapType 9 (CMap-encoded) composite font support. (int.mak,
-gs_cmap.ps, ifont.h, zfcmap.c, zfont.c, zfont0.c)
-
-</pre><h3><a name="V4.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Adds recognition of /Identity values for BG, UCR, and TR functions in
-ExtGState resources. (General function values still aren't recognized.)
-(pdf_draw.ps)
-
-Centralizes the handling of inherited attributes. (pdf_draw.ps,
-pdf_main.ps)
-
-Starts to add support for Type 0 fonts. (pdf_font.ps, pdf_main.ps)
-
-</pre><h3><a name="V4.61_Streams"></a>Streams</h3><pre>
-
-Cleans up some warnings from picky compilers. Some of these actually
-indicated problems, such as unreachable code. (shc.h, scfd.c, sfilter2.c,
-siscale.c, stream.c)
-
-</pre><h3><a name="V4.61_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some picky compilers disliked certain conditional expressions.
-(gxclread.c)
- - Some picky compilers couldn't handle an extraneous semicolon.
-(gdevvec.h)
- - A cast from byte ** to const byte ** was missing. (gdevvec.c)
- - Resizing the levels array of a halftone order when banding could
-cause invalid memory accesses. (bug introduced in 4.60) (gxclread.c)
- - One picky compiler didn't allow taking the address of an extern
-undefined structure. (lib.mak, gxclread.c)
- - When rendering Type 1 fonts, character overshoot was usually
-suppressed when it shouldn't have been, often producing "squashed"
-characters. (gxhint1.c)
- - On systems where sizeof(long) &gt; sizeof(int), coordinate values of
-more than 22 bits were passed through the band list incorrectly, producing
-incorrect output. (gxclread.c)
-
-Cleans up some warnings from picky compilers. Some of these actually
-indicated problems, such as unreachable code or (hypothetical) loss of
-precision. (gsdevice.c, gshsb.c, gsht.c, gsstate.c, gstype1.c, gxclimag.c,
-gxclpath.c, gxclread.c, gxpdash.c)
-
-Makes using font hints conditional, for debugging. (gxhint1.c)
-
-Adds library-level support for FMapType 9 (CMap-encoded) composite fonts.
-There is still no support for rearranged fonts. (gsccode.h, gsfcmap.h,
-gsstruct.h, gxfcache.h, gxfcmap.h, gxfont.h, gxfont0.h, gschar.c, gschar0.c,
-gsfcmap.c, gsfont.c, gsfont0.c)
-
-Splits band list control and utilities from rectangle-oriented commands,
-because a file was getting too big. (gxclist.c, gxclrect.c)
-
-Moves the temporary file names for command lists from the printer device
-structure to the command list structure; moves opening and closing the
-temporary files from gdev_prn_alloc/free to clist_open/close. (gdevprn.h,
-gxclist.h, gdevprn.c, gxclist.c, gxclread.c)
-
-Changes the command list storage implementation interface to pass the file
-name to the clist_rewind and clist_fseek functions, for the benefit of OSs
-that require closing and reopening a file to switch between reading and
-writing. This is a NON-BACKWARD-COMPATIBLE change in a non-public
-interface. (gxclio.h, gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c)
-
-Changes the get_outline procedure in Type 42 fonts to return the length of
-the outline data as well as the pointer. This is a NON-BACKWARD-COMPATIBLE
-change in a semi-public interface. (gxfont42.h, gstype42.c)
-
-</pre>
-
-<h2><a name="Version4.60"></a>Version 4.60 (limited) (3/2/97)</h2>
-
-<p>
-This fileset moves color rendering up from the graphics state to the imager
-state so that color rendering can happen after banding. It also shifts
-image rendering to the rendering pass of banding for many common cases
-(often referred to inaccurately as "high-level image" capability). The
-changes involved are substantial and in some respects subtle, so
-unfortunately it is quite possible that some new bugs have been introduced.
-
-<p>
-This fileset also includes improvements to the new PCL XL driver
-(pxlmono/color), and introduces an experimental PostScript driver (pswrite).
-
-<h3><a name="V4.60_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The argument list of colorimage was incorrect. (zcolor1.c)
- - false .charboxpath incorrectly claimed to create the correct path
-even when the CTM was not well-behaved. (language.txt)
- - The discussion of the "main program" files was out of date.
-(make.txt)
-
-Updates the OS/2 EMX documentation. (make.txt)
-
-Modifies the Aladdin Ghostscript Free Public License slightly so it may be
-applied to other software packages. (PUBLIC)
-
-Updates inaccurate build documentation for several Unix platforms.
-(make.txt, ansihead.mak, cc-head.mak, gcc-head.mak, libpng.mak)
-
-Notes a problem with the MIPSpro 7.1 compiler. (make.txt)
-
-</pre><h3><a name="V4.60_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Most makefiles didn't include version.mak. (msc.mak,
-msvcwint.mak, os2.mak, tctail.mak, wctail.mak)
- - There was an incorrect dependency for the Windows printer device.
-(devs.mak)
-
-Moves the PDF writer to devs.mak. (devs.mak, int.mak)
-
-Updates the main VMS script to be structured like version.mak. (vms.mak)
-
-</pre><h3><a name="V4.60_Drivers"></a>Drivers</h3><pre>
-
-Factors out the stream-writing procedures from the PDF writer, so they can
-be shared with the new PostScript writer. (gdevpdfs.h =&gt; gdevpstr.h,
-gdevpdfx.h, gdevpsdf.h, gdevpdf.c, gdevpdfi.c, gdevpdfs.c =&gt; gdevpstr.c,
-gdevpdft.c, gdevpsdf.c)
-
-Adds a PostScript writer (pswrite), similar to the PDF and PCL XL drivers.
-Currently this handles fill/stroke graphics and Level 1 images; everything
-else (including text) is turned into bitmaps. (devs.mak, gdevps.c)
-
-Changes the names of the PCL XL drivers from hpxmono/color to pxlmono/color.
-(devs.mak, gdevpx.c)
-
-Updates the "vector" device support interface. THIS IS STILL SUBJECT TO
-CHANGE WITHOUT NOTICE. (gdevvec.h, gdevpx.c, gdevvec.c)
-
-Makes the vgalib driver a page device. This seems bizarre, but it's
-necessary for setpagedevice to work with it. (gdevvglb.c)
-
-Updates some drivers for the new color mapping interfaces. (gdevpx.c)
-
-Updates the user-contributed Canon LBP-8II and LIPS III driver.
-(gdevlbp8.c)
-
-</pre><h3><a name="V4.60_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The workaround for Ultrix's incorrect implementation of sh -e
-still didn't work. (unixtail.mak)
- - The definition of offset_of didn't work on the Mac. (stdpre.h)
-
-Updates the OS/2 EMX linker command per input from a user. (os2.mak)
-
-</pre><h3><a name="V4.60_Fonts"></a>Fonts</h3><pre>
-
-Adds .pss (apparently used by Adobe for Multiple Master font instances) to
-the list of extensions skipped by the GS_FONTPATH directory scanner.
-(gs_fonts.ps)
-
-</pre><h3><a name="V4.60_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Programs that rebind null, true, and/or false could cause all
-kinds of problems. We've only fixed a couple of the places that might be
-affected (findfont, quit), by wrapping an explicit "systemdict begin/end"
-around the code; fixing this completely would probably require wrapping this
-implicitly around almost every pseudo-operator, which would be too
-expensive. (gs_fonts.ps, gs_lev2.ps)
- - In a Level 2 system, grestoreall stopped one level too early.
-(zdevice2.c)
- - setpagedevice didn't restore the stack properly if it got an
-error. (gs_setpd.ps)
-
-Changes the GC pointer enumeration interface to reduce the number of
-'discarding const' warnings. See under Library below. (igc.c)
-
-Updates the interpreter for the change in the imager / graphics state split.
-(zpcolor.c)
-
-Makes the stack-restoring behavior of pseudo-operators non-optional.
-(interp.c)
-
-</pre><h3><a name="V4.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - PDFDocEncoding and WinAnsiEncoding incorrectly had `minus' at
-position 45 rather than `hyphen'. (gs_pdf_e.ps, gs_wan_e.ps)
-
-</pre><h3><a name="V4.60_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - A header file wasn't protected against double inclusion.
-(stream.h)
- - any_abs was redefined. (spngp.c)
- - The CCITTFaxDecode filter didn't fully initialize the "previous
-line" for 2-D decoding, so if the very first line of data was 2-D, an
-out-of-bounds memory access could occur. (scfd.c)
-
-</pre><h3><a name="V4.60_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - gs_image_next could read too much data, causing errors at the
-interpreter level. (gsimage.c)
- - The bitmaps stored in the Pattern cache were usually freed,
-leaving dangling pointers. (gsdcolor.h, gxpcache.h, gxpcolor.h, gsstate.c,
-gxpcmap.c)
- - There was still one assignment to a const structure, and there
-were some unnecessary const-discarding casts. (gxclread.c)
- - If a character in a Type 3 font was defined by executing 'show'
-type commands, charpath did the wrong thing (didn't pick up the paths
-created by the inner show). Similarly, if it uses 'stroke', true charpath
-did the wrong thing (appended the path rather than the strokepath path).
-(gxchar.h, gschar.c, gspaint.c)
- - A header file wasn't protected against double inclusion.
-(gserror.h)
- - The new fast implementation of rectfill didn't handle rectangles
-with negative width/height. (bug introduced in 4.32) (gsdps1.c)
- - Reading banded high-level images calculated the image height
-incorrectly, (usually) causing a rangecheck. (gxclread.c)
- - When reading band data, a memory fault could occur if the halftone
-cache hadn't been allocated yet. (gxht.c)
- - The imager state data for high-level images wasn't written soon
-enough. (gxclimag.c)
- - High-level images computed bounding boxes incorrectly, so they
-could write some garbage data in the band list, and could also fail to write
-some information. (gsmatrix.h, gxmatrix.h, gxclimag.c)
- - High-level images wrote the raster value incorrectly in the band
-list. (gxclimag.c)
- - Images with non-zero initial source X and non-portrait orientation
-were displaced on the page. (In practice, this only applied to some banded
-high-level images.) (gximage.c)
- - The bounding box device didn't forward output_page calls, causing
-pages to be dropped or overprinted. (gdevbbox.c)
- - The band renderer considered all non-zero return codes as errors,
-rather than only negative codes. (gxclread.c)
- - An unnecessary extern hadn't been removed. (gxclimag.c)
- - Some macros didn't parenthesize uses of their arguments, causing
-syntax errors. (gsrefct.h)
- - The screen phase and color_info weren't set correctly when
-rendering bands. (gsstate.h, gsht.c, gxclread.c)
- - A header file didn't declare all the opaque types it used.
-(gsdevice.h)
- - Indexed color spaces didn't work with banded images. (They still
-don't -- the check for writing the color space, and the code for reading the
-table or map, are incomplete.) (gxclist.h, gxclpath.h, gxclimag.c,
-gxclpath.c, gxclread.c)
-
-In preparation for implementing post-banding halftoning:
-
- - Moves color rendering information, including alpha value, from
-graphics state to imager state; also moves the allocator pointer. This is
-quite a subtle change, and may have a significant bug tail. (gxdcolor.h,
-gxht.h, gxistate.h, gzstate.h, gschar.c, gsdps1.c, gspaint.c, gsstate.c,
-gxclread.c)
-
- - Changes all the relevant color space and color mapping procedures
-so they take a const gs_imager_state * (and, in some cases, a [const]
-gx_device *) instead of a const gs_state *. This is a
-non-backward-compatible change, but it only affects internal interfaces.
-(gsdcolor.h, gxcmap.h, gxcspace.h, gxdcconv.h, gxdcolor.h, gxdither.h,
-gxpcolor.h, gzht.h, gschar.c, gscie.c, gscolor.c, gscolor1.c, gscolor2.c,
-gscsepr.c, gsdevice.c, gsimage.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcconv.c,
-gxdcolor.c, gxht.c, gximage.c, gximage[2345].c, gxpcmap.c)
-
- - Changes the color and color space reference count adjustment
-procedures similarly, to take a gs_memory_t * instead of a gs_state_t *.
-(gxcspace.h, gscie.c, gscolor.c, gscolor2.c, gscsepr.c, gspcolor.c)
-
- - Changes the gs_halftone in the graphics state from being part of
-the gs_state_contents to being an independent reference-counted object.
-This too may have a significant bug tail. (gxht.h, gxistate.h, gsht.c,
-gsstate.c)
-
- - Changes the image processing code so it no longer assumes that the
-gs_imager_state is actually a gs_state. (gximage.h, gximage.c, gximage2.c,
-gximage3.c, gximage4.c, gximage5.c)
-
- - Adds a unique ID value to device halftones, so that it's possible
-to detect (non-)changes quickly. (gxdht.h, gsht.c)
-
-Finishes the code for writing and reading color rendering information in the
-band list. This involves changes to several band list opcodes. (gsht.h,
-gsht1.h, gxcldev.h, gxclist.h, gxclpath.h, gxdht.h, gzht.h, gsht.c, gsht1.c,
-gxclbits.c, gxclimag.c, gxclist.c, gxclread.c)
-
-Changes the garbage collector pointer enumeration procedure interface
-slightly to reduce the number of 'discarding const' warnings. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE for anyone who didn't use the
-ENUM_PTRS_BEGIN[_PROC] macro to start a pointer enumeration procedure (which
-should be no one). (gsstruct.h, gsmemory.c)
-
-Corrects a few more needlessly const-discarding casts. (gxfcache.h,
-gxccache.c)
-
-Checks for file reading errors when rasterizing bands. (gxclread.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.51"></a>Version 4.51 (limited) (2/9/97)</h2>
-
-<p>
-This version contains a more reasonable high-level PCL XL driver. The VMS
-build script is working again, we think.
-
-<h3><a name="V4.51_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The gsdll_h macro wasn't defined all the places it was needed.
-(devs.mak, os2.mak)
-
-</pre><h3><a name="V4.51_Drivers"></a>Drivers</h3><pre>
-
-Continues to develop the "vector" driver infrastructure and the PCL XL
-driver. EVERYTHING IN THESE FILES IS SUBJECT TO CHANGE WITHOUT NOTICE.
-(gdevvec.h, gdevvec.c)
-
-Brings the PCL XL driver up to usable quality for graphics. Most
-fill/stroke graphics, and portrait-orientation bitmap images up to 8 bits
-per pixel, are converted directly to their PCL XL equivalents. Text is
-still treated as bitmaps. Both gray-scale and color output are now
-supported. (devs.mak, gdevpx.c)
-
-</pre><h3><a name="V4.51_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - When using gsos2.exe with gsdll2.dll, reducing the size of the
-page bitmap caused a limitcheck error with the message
- Failed to decommit memory in pm_alloc_bitmap, rc = 87 (gdevpm.c)
- - The scripts that construct gconfig_.h failed on Ultrix, because
-Ultrix's implementation of sh -e is incorrect. (unixtail.mak, ugcclib.mak)
- - Some systems that have sys/times.h don't define CLK_TCK, making a
-compilation fail. (time_.h)
-
-</pre><h3><a name="V4.51_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - An omitted semicolon wasn't detected by gcc. (idict.c)
-
-Removes a source of unnecessary duplication by getting the revision number
-and date from version.mak. (gs.mak, int.mak, version.mak, gscdef.c)
-
-</pre><h3><a name="V4.51_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The minimum buffer sizes for the RunLengthDecode filter hadn't
-been changed to reflect the algorithm improvement made in release 4.38.
-(srld.c)
-
-Changes the RunLengthEncode filter so it can make progress with only a
-2-byte output buffer. (srlx.h, srle.c)
-
-</pre><h3><a name="V4.51_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Because of a typo, the slow general algorithm was always used for
-monochrome images. (Performance bug only, but a serious one.) (gximage2.c)
- - Dots (zero-length lines with round caps and zero dot length)
-caused an infinite loop. (bug introduced in 4.40) (gxstroke.c)
- - Some image data unpacking procedures were always required, but
-weren't always included. (bug introduced in 4.50) (gximage.c, gximage0.c,
-gximage3.c)
- - Images with 8 bits per pixel and non-identity Decode produced
-garbage. (bug introduced later than 4.03) (gximage0.c)
- - Some necessary casts and omitted punctuation weren't detected by
-gcc. (gxpath.h, gsargs.c, gsstate.c, gxclread.c, gxpdash.c)
- - The band list became confused if a band had no commands at all.
-(gxclread.c)
- - If a path included a closepath followed by a moveto to the same
-point, it could be written incorrectly in the band list. (bug probably
-introduced in 3.60) (gxclpath.c)
-
-Changes some internal computations for arcs from float to double for greater
-accuracy. (gspath1.c)
-
-</pre>
-
-<h2><a name="Version4.50"></a>Version 4.50 (limited) (1/31/97)</h2>
-
-<p>
-This release contains an experimental high-level PCL XL driver, a little
-more support for CID/CMap fonts, and the usual bug fixes. NOTE: the VMS
-build script is known to be out of sync with the makefiles again; we still
-don't see any alternative to constant struggles with this problem.
-
-<h3><a name="V4.50_Documentation"></a>Documentation</h3><pre>
-
-Corrects the -h message, which gave an incorrect file name for the bug
-report form. (imainarg.c)
-
-Removes documentation for 16-bit MS-DOS platforms with the Borland compiler.
-(fonts.txt, make.txt, new-user.txt, use.txt)
-
-</pre><h3><a name="V4.50_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The Watcom library makefile didn't define the directory
-information for libpng and zlib. (watclib.mak)
-
-Moves the selection of band list implementation (file- vs. RAM-based) and
-the compression filter for RAM-based band lists up to the top-level
-makefiles. Again, this is a NON-BACKWARD-COMPATIBLE procedure change.
-(lib.mak, *.mak)
-
-Moves the selection of version number for all platforms (except VMS, as
-usual) to a separate file. This will reduce the number of files that need
-editing when the version number changes. (ansihead.mak, cc-head.mak,
-gcc-head.mak, ugcclib.mak, version.mak, tar_cat)
-
-</pre><h3><a name="V4.50_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - An error in the (unsupported) SGI RGB driver could cause crashes
-or incorrect output. (gdevsgi.c)
-
-Starts to create a framework for structured output ("vector") drivers (PDF,
-PostScript, PCL XL, etc.) (gdevbbox.h, gdevvec.h, gsdcolor.h, gsstruct.h,
-gxdevice.h, gdevvec.c)
-
-Moves default page size parameters to a more accessible header. (gdevprn.h,
-gxdevice.h, gdevx.c)
-
-Adds a driver that produces properly structured PCL XL output. This is
-highly experimental and not ready for use yet. (gdevpx.c)
-
-</pre><h3><a name="V4.50_Platforms"></a>Platforms</h3><pre>
-
-Removes support for 16-bit MS-DOS platforms with the Borland compiler. For
-the moment, 16-bit MS Windows is still supported. (bc.mak, bcflags.mak,
-bclib.mak, tc.mak)
-
-</pre><h3><a name="V4.50_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - File-based CIDFonts (with delayed, incremental loading of
-character outlines) didn't work. (gs_cidfn.ps)
-
-Finishes implementing the definition of CMap resources, except for
-rearranged fonts. (gs_cidfn.ps, gs_cmap.ps)
-
-Adds a little more CMap support code. (zcid.c)
-
-Removes the .setcurrentfile operator, since it doesn't solve the problem it
-was intended to address. (zcontrol.c)
-
-Adapts the interpreter to use the new argument processing code.
-(imainarg.c)
-
-</pre><h3><a name="V4.50_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxDecode filter could access as much as 3 bytes beyond
-the end of a buffer, causing an invalid memory access. (This is essentially
-the same bug that was fixed for the CCITTFaxEncode filter in 4.38.)
-(scfd.c)
-
-</pre><h3><a name="V4.50_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Painting an image without having set up any halftone could cause a
-crash. (gxht.c)
- - In a very obscure case, an occasional scan line of landscape
-images could get corrupted. (gximage0.c)
- - Because of a rounding error, patterns could fail to be painted in
-certain cases. (gxpcolor.h, gspcolor.c, gxpcmap.c)
- - Very large line widths or miter limits could cause the computation
-of stroke expansion to overflow. (gxpaint.h, gdevbbox.c, gxclpath.c,
-gxstroke.c)
- - The phase could be incorrect for simple patterns. (gspcolor.c)
- - The default implementation of copy_mono used an incorrect
-RasterOp. (gdevdflt.c)
- - The default implementation of fill_masked didn't increment the row
-pointer, causing characters to appear as solid rectangular blocks.
-(gxdcolor.c)
-
-Eliminates an unnecessary gsave and grestore from rectfill and rectstroke if
-the path was null. (gsdps1.c)
-
-Adds a limit on the amount of space that the default (C heap) allocator will
-allocate, and a record of the maximum amount allocated, to help testing
-embedded products. (gsmemory.c)
-
-Changes the band list algorithm for deciding how many replicas of a halftone
-tile to store in the tile cache. The previous algorithm was too liberal,
-which could cause the cache to overflow and many unnecessary bitmaps to be
-written in the band list. (gxclbits.c)
-
-Writes clipping with a rectangle more compactly in the band list.
-(gxfixed.h, gxclpath.c)
-
-Adds new band list commands for representing 90- and 180-degree arcs
-compactly. (gxclpath.h, gxclpath.c, gxclread.c)
-
-Repackages handling of general monochrome images, color images, and 12-bit
-and interpolated images, so that they are included optionally rather than in
-all configurations. (int.mak, lib.mak, gximage.h, gximage.c,
-gximage[12345].c)
-
-Changes the structure definition for devices to include no-op pointer
-enumeration and relocation, so they can have subclasses. (gxdevice.h)
-
-Adds a library facility for processing command line arguments with
-@-expansion. (gsargs.h, gsargs.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.41"></a>Version 4.41 (private) (1/21/97)</h2>
-
-<p>
-This release adds a PCL XL output driver, and a few performance
-improvements.
-
-<h3><a name="V4.41_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The zlib library used an incorrect header file when compiling.
-(zlib.mak)
-
-Changes the names of the preprocessor symbols indicating the presence of
-system header files to be consistent with the ones used by GNU configure.
-(dvx-tail.mak, ugcclib.mak, unixtail.mak, vms.mak; dirent_.h, time_.h;
-gp_unix.c)
-
-Changes the method for choosing the compression filter for RAM-based band
-lists. This is a NON-BACKWARD-COMPATIBLE change in the makefile. (lib.mak)
-
-</pre><h3><a name="V4.41_Drivers"></a>Drivers</h3><pre>
-
-Adds black-and-white and 8-bit gray PCL XL (PCL 6) drivers for the LaserJet
-5 and 6 family. This driver is extremely simple and just emits bitmaps;
-future drivers will use more PCL XL high-level constructs. (gdevlj56.c)
-
-</pre><h3><a name="V4.41_Fonts"></a>Fonts</h3><pre>
-
-Updates the free font distribution to add the URW Grotesk and Antiqua fonts.
-
-</pre><h3><a name="V4.41_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - gs -h and -v returned with a non-zero exit code on all platforms.
-(This is necessary under Windows, to keep the message visible on the screen,
-but nowhere else.) (imainarg.c)
- - Resizing a dictionary could exceed dict_max_size, causing memory
-corruption. (dstack.h, idict.h, idict.c, zdict.c)
-
-Adds .setlinecap and .setlinejoin that can use the extended range of line
-cap/join values, and redefines setlinecap and setlinejoin in terms of them.
-(gs_init.ps, zgstate.c)
-
-</pre><h3><a name="V4.41_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxDecode filter with EncodedByteAlign = true skipped to
-a byte boundary before checking for an EOL. This may be wrong if EndOfLine
-= true; we aren't at all sure what should happen if EndOfLine = false.
-(scfd.c)
-
-Adds a "no wrapper" option to the zlib streams, to optionally suppress the
-time-consuming integrity checksum computation. (szlibx.h, szlibc.c,
-szlibd.c, szlibe.c)
-
-</pre><h3><a name="V4.41_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Dashed lines with zero-length drawn segments (dots) that fell
-exactly on a corner produced inappropriate output. (pcl/test19.pxs)
-(gxpdash.c, gxstroke.c)
- - Dashed lines didn't set the segment notes properly. (gxpdash.c)
- - The bounding box device didn't free a bookkeeping structure at the
-end of processing an image. (gdevbbox.c)
- - Curve points could get computed incorrectly when using emulated
-floating point. (gxpcopy.c)
- - The 1-element cache for curve_x_at_y didn't work if Y was
-decreasing. (gxfixed.h, gxpcopy.c)
-
-Distinguishes between error and informational exits. (stdpre.h)
-
-Defines and checks maximum values for line cap and join parameters.
-(gslparam.h, gsline.c)
-
-Removes the 'not last' segment note, since it is not used for anything.
-(gxpath.h, gspath1.c, gxpath2.c, gxpcopy.c, gxpflat.c, gxstroke.c)
-
-Changes the memory freeing algorithm for RAM-based band lists back to the
-original one, since the "improved" one had more bugs than it was worth
-chasing. (gxclmem.c)
-
-Speeds up the A * B / C algorithm a little. (gsmisc.c)
-
-Speeds up curve_x_at_y by recognizing more cases that don't require the slow
-A * B / C algorithm. (gxpcopy.c)
-
-Changes the path filling code so it uses fill-by-trapezoids even if
-fill_adjust is zero, as long as the flatness is at least 1 pixel.
-(gxfill.c)
-
-Removes the (unneeded) floating point operations from gx_curve_log2_samples.
-(gxpflat.c)
-
-Changes the memory-based implementation of band lists so that it constructs
-the compressor and decompressor by calling procedures rather than
-instantiating templates: this allows setting filter parameters to
-non-default values. (gxclmem.h, gxcllzw.c, gxclmem.c, gxclzlib.c)
-
-</pre>
-
-<h2><a name="Version4.40"></a>Version 4.40 (private) (1/13/97)</h2>
-
-<p>
-This version finally handles the last graphics model discrepancies between
-PostScript and PCL, by correctly implementing null joins, minimum dot
-lengths, and tangent-aligned curve ends. It also contains some significant
-performance improvements, and as usual a few bug fixes.
-
-<h3><a name="V4.40_Documentation"></a>Documentation</h3><pre>
-
-Documents the new accurate curves and path dashing operators.
-(language.txt)
-
-</pre><h3><a name="V4.40_Utilities"></a>Utilities</h3><pre>
-
-Adds switches for genconf to set and unset a prefix for file names.
-(genconf.c)
-
-</pre><h3><a name="V4.40_Drivers"></a>Drivers</h3><pre>
-
-Adds recognition of the new Distiller 3.0 parameters to the PDF writer.
-(None of them have any effect yet.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c,
-gdevpdfp.c)
-
-Converts all the output functions in the PDF writer from being file-based to
-using streams, in anticipation of adding compression. (gdevpdfs.h,
-gdevpdfx.h, gdevpdf*.c, gdevpdfs.c)
-
-</pre><h3><a name="V4.40_Interpreter"></a>Interpreter</h3><pre>
-
-Adds operators for accessing the new accurate curves flag in the graphics
-state. (zgstate.c)
-
-Adds an operator for invoking gs_dashpath. (zpath1.c)
-
-</pre><h3><a name="V4.40_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Indexed color spaces whose base space was a CIE space caused an
-error. (pdf_draw.ps)
-
-</pre><h3><a name="V4.40_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A pointer was declared const incorrectly. (gxcpath.c)
- - Filling with a pattern often failed to pass a non-null bitmap ID,
-causing excessive writing in the band list. (Performance bug only.)
-(gspcolor.c)
- - The bounding box device didn't discount copy_mono or draw_line
-operations drawing in white. (gdevbbox.c)
- - The bounding box device didn't read out the bounding box correctly
-as the PageBoundingBox device parameter. (It did return it correctly
-through the gx_device_bbox_bbox procedure.) (gdevbbox.c)
- - The default implementation of fill_triangle drew nothing or
-incorrect output if the corners of the triangle were specified in certain
-orders (ax &lt; 0 or bx &lt; 0) (i.e., the previous "fix" had a bug).
-(gdevddrw.c)
-
-Changes tile size from always being set in all bands to being 'known' by
-bands individually. (gxclist.h, gxcldev.h, gxclbits.c, gxclist.c)
-
-Computes an additional value in advance when rendering images. (gximage.h,
-gximage1.c, gximage2.c)
-
-Replaces some slow loops with calls of memmove. (gxclmem.c)
-
-Provides a fixed-point implementation of A * B / C for machines with slow
-floating point. (gxfixed.h, gsmisc.c)
-
-Extends the "device color" type to implement filling masked regions as well
-as rectangles. (gxdcolor.h, gdevdflt.c, gspcolor.c, gxcht.c, gxdcolor.c,
-gxht.c)
-
-Makes unclipped monobit portrait and landscape images and image masks use
-the new masked fill capability of device colors. (gximage.h, gximage.c,
-gximage1.c, gximage2.c)
-
-Adds a macro for determining pointer alignment. (stdpre.h, gdevdflt.c)
-
-When floating point is slow, uses a different, faster algorithm for
-gx_curve_x_at_y. (gxpcopy.c)
-
-Improves performance by adding a one-element cache for gx_curve_x_at_y.
-(gzpath.h, gxpcopy.c)
-
-Reduces overhead when banded images are pre-rasterized (currently, always).
-(gxclimag.c)
-
-Adds a rendering cost estimate field to each band in a band list. This
-field isn't actually used for anything yet; eventually, the intent is that
-bands with a high cost will get rendered, and stored in compressed form,
-before starting the engine. (gxclist.h)
-
-Adds the concept of 'notes' for path segments, to allow remember what
-segments constitute a single curve or arc. Currently we set these properly
-for everything except dashed paths. (gxclpath.h, gxpath.h, gzpath.h,
-gspath1.c, gxclpath.c, gxclread.c, gxpath.c, gxpath2.c, gxpcopy.c)
-
-When the dot length is non-zero, changes curve stroking to always use bevel
-joins within each curve rather than the current join. This prevents a
-"bristly" look with no join and butt caps. (gxstroke.c)
-
-Adds an "accurate curves" capability that makes the last line segment of a
-flattened curve actually be tangent to the curve, which in turn makes
-flat-end caps be correctly perpendicular to the tangent. (gxpath.h,
-gxpcopy.c)
-
-Adds an "accurate curves" flag in the graphics state. (gsline.h,
-gxclpath.h, gxistate.h, gsline.c, gspath.c, gspath1.c, gxclpath.c,
-gxclread.c, gxfill.c, gxstroke.c)
-
-Changes the meaning of "no join" (gs_join_none) so that instead of producing
-no join and butt caps, it produces whatever the current cap is. This is
-compatible with the H-P definition. (gxstroke.c)
-
-Implements non-zero dot length for dash patterns. (gxpdash.c)
-
-Splits off the curve flattening algorithms into a separate file.
-(gxpcopy.c, gxpflat.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.39"></a>Version 4.39 (limited) (1/1/97)</h2>
-
-<p>
-This version was created only to accompany a release of the PCL XL
-interpreter. It was withdrawn the day after it was released, because the
-tools used to produce it put the wrong files in the filesets.
-
-<h3><a name="V4.39_Documentation"></a>Documentation</h3><pre>
-
-Adds a more detailed description of the third-party ps_view viewer
-interface. (new-user.txt)
-
-Corrects an error in a reference to the PSLRM. (lib.txt)
-
-Documents the change in .makeoperator. (language.txt)
-
-Updates the FTP location of the zlib sources. (zlib.mak)
-
-</pre><h3><a name="V4.39_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The Unix library makefile didn't include the necessary definitions
-for libpng and zlib. (ugcclib.mak)
-
-Allows selecting the compression filters for memory-based band lists in the
-makefile. Makes zlib (deflate) the default compressor for memory-based band
-lists. (lib.mak)
-
-</pre><h3><a name="V4.39_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - prfont.ps wouldn't print unencoded characters in Type 42 fonts.
-(prfont.ps)
-
-</pre><h3><a name="V4.39_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The H-P monochrome driver didn't put out enough initialization
-commands at the beginning of each page to make each page printable
-independently. (gdevdjet.c)
-
-</pre><h3><a name="V4.39_Interpreter"></a>Interpreter</h3><pre>
-
-Changes ref_stack_count_inline so it never does a procedure call.
-(istack.h)
-
-Changes .makeoperator so that operator procedures save the stack depths, and
-restore the stack pointers (if possible) if the operator encounters an
-error. This is a NON-BACKWARD-COMPATIBLE CHANGE; it requires rewriting the
-'stop' and 'stopped' pseudo-operators (and, if there were any, any other
-pseudo-operators that interact with the error handling machinery) in C.
-(gs_init.ps, interp.c, zcontrol.c)
-
-Adds recognition of the LeadingEdge, MediaClass, and RollFedMedia keys in a
-page device dictionary, per the Adobe supplement for their version 2017
-interpreter. This involves a NON-BACKWARD-COMPATIBLE change to the
-(undocumented) .matchpagesize operator. (gs_setpd.ps, zmedia2.c)
-
-Makes necessary changes for compatibility with the added parameters for the
-zlib filters. (zfzlib.c)
-
-</pre><h3><a name="V4.39_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The zlib encoder returned EOFC when it should have returned 0.
-(szlibe.c)
-
-Adds optional parameters and reset procedures for the zlib filters.
-(szlibx.h, szlibc.c, szlibd.c, szlibe.c)
-
-</pre><h3><a name="V4.39_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Displaying characters with a non-standard RasterOp could cause an
-invalid memory access. (gdevdflt.c)
- - Banding sometimes used an incorrect RasterOp. (gxclread.c)
- - When banding, mixing Patterns and halftones could confuse the
-bookkeeping of tile size, leading to incorrect generation of the band list
-and error messages or confusion when rasterizing. (gxclist.h, gxclbits.c,
-gxclread.c)
- - If only the dash pattern offset changed, and not any of the other
-dash-related parameters, the new offset wasn't written in the band list,
-causing incorrect output. (gxclpath.c)
- - Oversized halftone tiles didn't report their error code properly.
-(gxclbits.c)
- - Oversized halftone tiles with RasterOp caused an error.
-(gxclist.c)
- - When banding, RasterOp transfers that crossed a band boundary
-didn't access the correct source data on bands other than the first.
-(gxclist.c)
- - There were redundant copies of the code for writing a RasterOp
-value in the band list. (gxclimag.c, gxclpath.c)
- - Oversized patterns or halftones produced garbled output.
-(gxclbits.c)
- - The check for oversized patterns or halftones was slightly
-incorrect, leading to the possibility of writing out a tile that would
-overflow the reading buffer and corrupt memory. (gxclbits.c)
- - When banding, RasterOp wasn't applied to fill and stroke
-operations, and wasn't applied correctly to characters. (gdevdflt.c,
-gxclimag.c, gxclread.c)
- - The RasterOp-related optimizations for black-and-white images
-sometimes produced incorrect output. (gximage.c, gximage2.c)
- - The default implementation of fill_triangle didn't draw anything
-if the corners of the triangle were specified in certain orders (ax &lt; 0 or
-bx &lt; 0). (gdevddrw.c)
- - Painting with a Pattern could pass out-of-range phase values to
-driver procedures. (gspcolor.c)
- - Because of an off-by-1 error, halftones or patterns passed through
-the band list could write past the end of their allocated space in the band
-tile cache, leading to incorrect output or possible arithmetic exceptions or
-memory access errors. (gsbitops.c)
-
-Adds -Z: for printing only the minimal command list statistics. (gxclist.c,
-gxclread.c)
-
-Expands band list tracing so it includes all of the data associated with the
-command, not just the command name and a few command parameters.
-(gxclread.c)
-
-Adds free lists for strings. Currently these are only used in
-non-garbage-collected environments. (gxalloc.h, gsalloc.c, gsnogc.c)
-
-Adds a procedure for copying a path structure, and an (internal) accessor
-for the current path in the graphics state. (gxpath.h, gspath.c, gxpath.c)
-
-Speeds up filling characters with halftones a little bit. (gdevdflt.c)
-
-Changes the memory-based implementation of band lists so it can use any
-compression / decompression filter, so it only compresses when it has
-allocated a specified amount of buffer storage, and so it releases its
-buffer storage at the end of each page. (gxclmem.h, gxclmem.c)
-
-Speeds up counting the number of 1-bits in a byte, which is used in some
-image processing algorithms. (gsbittab.h, gsbittab.c)
-
-Reduces the band list space required for changing tile size. (gxcldev.h,
-gxclbits.c, gxclread.c)
-
-</pre>
-
-<h2><a name="Version4.38"></a>Version 4.38 (limited) (12/20/96)</h2>
-
-<p>
-Adds support for a couple of undocumented features in Type 1 fonts.
-
-<h3><a name="V4.38_Interpreter"></a>Interpreter</h3><pre>
-
-Adds handling of the Type 1 font subroutineNumberBias (an optional entry in
-the Private dictionary) and lenIV = -1 features at the interpreter level.
-(zchar1.c, zfont1.c)
-
-</pre><h3><a name="V4.38_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The CCITTFaxEncode filter could access as much as 3 bytes beyond
-the end of a buffer, causing an invalid memory access. (scfe.c)
-
-Changes the RunLengthDecode filter so it can make progress (produce output)
-with only a 1-byte output buffer. (srlx.h, srld.c)
-
-</pre><h3><a name="V4.38_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The sine and cosine of multiples of 90 degrees weren't exact.
-(gxfarith.h, gsmisc.c)
- - The expanded bounding box computation for strokes didn't take into
-account the possibility of overflow. (gxstroke.c)
- - The allocator didn't fill freed strings with the 'free' mark.
-(gsalloc.c)
- - When using a pattern with RasterOp, the phase was computed
-incorrectly, leading to anomalous filling patterns. (gspcolor.c)
- - Patterns with a non-zero translation in the matrix passed to
-makepattern didn't translate the pattern origin properly. (gxcolor2.h,
-gxpcolor.h, gspcolor.c)
-
-Adds a subroutineNumberBias field to Type 1 fonts. This is an undocumented
-feature of the Type 1 font format. (gxfont1.h, gstype1.c)
-
-Interprets lenIV = -1 in Type 1 fonts as meaning that the CharStrings are
-unencrypted. This too is an undocumented feature of the Type 1 format.
-(gxfont1.h, gxtype1.h, gstype1.c, gstype2.c)
-
-Changes gs_clippath so it returns more reasonable outlines. (There are too
-many programs that rely on being able to stroke the result of clippath, even
-though both the Adobe and H-P literature specifically say the results are
-unpredictable.) (gxcpath.h, gxcpath.c)
-
-</pre>
-
-<h2><a name="Version4.37"></a>Version 4.37 (limited) (12/10/96)</h2>
-
-<p>
-This version implements separate halftone phase for source and texture,
-required for PCL XL implementation.
-
-<h3><a name="V4.37_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Loading a native TrueType font without a 'post' table caused an
-error. (gs_ttf.ps)
-
-</pre><h3><a name="V4.37_Interpreter"></a>Interpreter</h3><pre>
-
-Extends the interpreter to handle the new separate halftone phases for the
-RasterOp source and texture. (gs_dps1.ps, zdps1.c)
-
-Makes a small change to accommodate a library change supporting Type 2
-charstrings. (zfont1.c)
-
-</pre><h3><a name="V4.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Implements the FontFile2 key for embedded TrueType fonts. (pdf_font.ps)
-
-Starts to implement the FontFile3 key for compressed Type 1 fonts. This
-code is currently disabled, because none of the necessary underlying C is
-written yet. (pdf_font.ps)
-
-</pre><h3><a name="V4.37_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The floating point emulator often returned incorrect results (too
-many bugs to list). (This is not used in any standard configuration.)
-(gsfemu.c)
- - The new copy_for procedure for gstates incorrectly declared an
-argument as const. (gxstate.h, gsstate.c)
- - If a curve had to be split twice along the same axis to make it
-monotonic, the split points could still be returned in the wrong order,
-possibly causing curved edges to turn into straight lines, and the algorithm
-still produced the wrong results if the curve had to be split twice along a
-single axis. This is the second time we have "fixed" these problems and the
-4th time we have "fixed" the curve monotonizing algorithm. (gxpcopy.c)
- - Setting halftones cause a memory leak, because the subsidiary
-objects of the device halftone weren't freed properly. Fixing this required
-changing the graphics state implementation from allocating a device halftone
-for each gstate to managing the device halftone with reference counting.
-(gxdht.h, gzstate.h, gsht.c, gsstate.c)
-
-Provides an optimized version of ldexp for FPU-less configurations, and
-changes one key algorithm to use it. (gxfixed.h, gsmisc.c, gxpcopy.c)
-
-Speeds up imagemask with a halftone a little. (This will eventually require
-more serious optimization.) (gximage2.c)
-
-Adds a -Z* switch for tracing varieties of image rendering. (gximage.c)
-
-Recognizes that if the logical operation is equivalent to D = S (after
-accounting for a constant texture, if any), or if it is equivalent to D = ~S
-or D = D {&amp;,|}{S,~S} and D and S are both monobit and both colors are pure,
-imaging with RasterOp can be executed without invoking RasterOp. (gsropt.h,
-gximage.c)
-
-Makes coordinate transformations with landscape matrices execute as fast as
-with portrait matrices. (gxmatrix.h, gscoord.c, gsmatrix.c)
-
-Adds some sketch code for interpreting Type 2 charstrings. It compiles, but
-it makes no pretense of being runnable. (gstype1.h, gxop1.h, gxtype1.h,
-gstype2.h, gxfont1.h, gstype1.c, gstype2.c)
-
-Extends the library to allow setting separate halftone phases for the
-RasterOp source and texture, which is needed to implement halftone screens
-that behave like those in H-P's PCL XL printers. (gscsel.h, gsstate.h,
-gxcmap.h, gxcspace.h, gxdcolor.h, gxdither.h, gxpcolor.h, gzht.h, gzstate.h,
-gscie.c, gscsepr.c, gsht.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcolor.c,
-gxht.c, gximage.c, gximage[2345].c, gspcmap.c) ****** STILL NEED TO UPDATE
-BANDING CODE, grep FOR phase ******
-
-Removes the rc_header member from the gs_halftone structure, since we don't
-need it after all. (gxht.h)
-
-</pre>
-
-<h2><a name="Version4.36"></a>Version 4.36 (limited) (12/3/96)</h2>
-
-<p>
-This version fixes a number of library bugs related to RasterOp, Patterns,
-and memory management.
-
-<h3><a name="V4.36_Documentation"></a>Documentation</h3><pre>
-
-Changes the definition of texture transparency to match the peculiar H-P
-specification. (drivers.txt, language.txt)
-
-</pre><h3><a name="V4.36_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - x_get_bits didn't flush updates to the frame buffer, leading to
-possibly incorrect data being returned. (gdevx.c)
- - x_get_bits added padding to the scan line being copied, possibly
-corrupting memory. (gdevx.c)
-
-Changes the x11mono driver to define white = 0, black = 1 to more closely
-model black-and-white printers. (This is an internal change that doesn't
-affect the output.) (gdevxalt.c)
-
-</pre><h3><a name="V4.36_Interpreter"></a>Interpreter</h3><pre>
-
-Removes some code that is no longer needed, by virtue of the fix for the
-memory leak in Pattern remapping. (zpcolor.c)
-
-</pre><h3><a name="V4.36_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Patterns wider than 1024 bits caused a rangecheck. (gxclip2.h,
-gxclip2.c)
- - Dash patterns never got freed. The fix for this slows down gsave
-and grestore slightly, but we don't see any way around it. (gsline.c,
-gsstate.c)
- - If the CTM was very non-uniform in X and Y, stroke sometimes
-didn't recognize thin lines as being thin, leading to dropouts.
-(gxstroke.c)
- - RasterOps that didn't use S or T still took S or T transparency
-into account. (gdevmrop.c)
- - RasterOps with no source didn't handle the possibility that the
-device color for black might have a value other than 0. (gxdcolor.h,
-gspcolor.c, gxcht.c, gxdcolor.c, gxht.c)
- - White pixels in halftones on black-and-white devices apparently
-are *not* supposed to be treated as opaque for RasterOp. (gxcht.c, gxht.c)
- - clippath caused memory to be lost until a restore or a garbage
-collection. (gspath.c)
- - Clipping lists weren't ever freed, and clipping paths sometimes
-weren't freed, causing memory to be lost until a restore or a garbage
-collection. (gzacpath.h, gxacpath.c, gxcpath.c)
- - Freeing a pattern instance referenced a pointer after it had been
-freed, causing an invalid memory access. (gspcolor.c)
- - Remapping a Pattern color lost track of the temporary gstate,
-memory devices, and possibly the mask, causing memory to be lost until a
-restore or GC. (gxpcolor.h, gxpcmap.c)
- - Remapping a Pattern color could cause paths to be marked as
-shared, preventing them from being freed until a restore or GC. (gxpcmap.c)
-
-Enhances the non-tracing garbage collector so that if there are no strings
-allocated at all, it resets the string allocation pointers. (gsnogc.c)
-
-Optimizes the black-and-white RasterOp implementation by recognizing cases
-that can be implemented directly by fill_rectangle, copy_mono, or
-tile_rectangle. (gdevmrop.h, gsropt.h, gdevmrop.c, gsroptab.c)
-
-Changes -ZA so it no longer produces [P] tracing messages for path
-construction. (gxpath.c)
-
-Adds a gx_pattern_cache_winnow procedure for selectively removing entries
-from the Pattern cache, similar to gx_purge_selected_cached_chars.
-(gscolor2.h, gxpcolor.h, gxpcmap.c)
-
-Adds the Pattern UID to Pattern cache entries. (gxpcolor.h, gxpcmap.c)
-****** MUST HANDLE XUID POINTERS ON GC (RELOC) &amp; RESTORE (CLEAR LIKE HT
-CACHE) ******
-
-Makes gs_gstate free the path representation of the clipping path if it's a
-rectangle, since reconstructing it is cheap and otherwise the path segments
-would not be freeable until a restore or GC. (gsstate.c)
-
-Extends the "client data" interface for gstates so that the copy procedure
-can determine why it is being called. (gxstate.h, gsstate.c)
-
-</pre>
-
-<h2><a name="Version4.35"></a>Version 4.35 (limited) (11/24/96)</h2>
-
-<p>
-This contains the usual bug fixes, and two minor enhancements: an option for
-handling EPSF files with binary headers, and support for file-based
-resources.
-
-<h3><a name="V4.35_Documentation"></a>Documentation</h3><pre>
-
-Documents the new EPSF-reading capability. (gs.mak)
-
-</pre><h3><a name="V4.35_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Some obsolete definitions were accidentally left in the rules for
-compiling fonts into the executable. (int.mak)
-
-</pre><h3><a name="V4.35_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - initgraphics left the current color space in an inconsistent
-state. (bug introduced in 4.32) (zgstate.c)
- - restore didn't properly rebind FontDirectory to either Local or
-SharedFontDirectory according to the current VM selection. (gs_dps1.ps)
- - If FontDirectory was redefined, many things broke. (gs_ccfnt.ps,
-gs_dps1.ps, gs_fonts.ps, gs_pdfwr.ps)
- - If a resource provided a file name but the file couldn't be
-opened, an error occurred. (gs_res.ps)
- - flushfile didn't work with procedure-based streams. (zfileio.c)
-
-Adds a feature (epsf.dev) that allows the interpreter to recognize and
-handle MS-DOS EPSF files with a binary header. (int.mak, gs_epsf.ps,
-gs_init.ps, pdf_main.ps)
-
-Adds (internal) .getuserparam and .getsystemparam operators for getting the
-value of a single user or system parameter. (gs_lev2.ps, zusparam.c)
-
-To support file-based resources, implements the FontResourceDir,
-GenericResourceDir, and GenericResourcePathSep system parameters, and
-ResourceFileName for the built-in resource categories. (gs_init.ps,
-gs_lev2.ps, gs_res.ps)
-
-</pre><h3><a name="V4.35_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The 2-D CCITTFaxDecode filter became confused if a buffer boundary
-fell between a horizontal make-up code and its terminating code, typically
-causing an ioerror. (scfd.c)
-
-</pre><h3><a name="V4.35_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Using the null color could confuse the reference counts for color
-spaces, causing memory access errors. (gscolor.c)
- - Images with CombineWithColor = true caused memory access error,
-because a structure element wasn't initialized. (gdevmrop.c)
- - gs_setnullcolor tried to return an error code, even though it was
-declared as returning void. (Why doesn't gcc catch this??) (gscolor.h,
-gscolor.c)
- - gs_setnullcolor was declared inconsistently as taking a const or
-non-const argument. (gscolor.h)
- - Small color tiles in the band list were not read in correctly.
-(gxclread.c)
- - The band list could get confused, causing ioerrors, invalid memory
-accesses, or garbled output, because the algorithms for computing the size
-of bitmaps when writing and when reading had gotten inconsistent. This code
-has been broken and "fixed" at least 4 or 5 times. (gxcldev.h, gxclbits.c,
-gxclread.c)
- - When using banding, characters that extended off the page
-vertically in the -Y direction came out garbled. (gxclimag.c)
- - The bounding box device didn't compute the box correctly for
-trapezoids. (gdevbbox.c)
- - The fastest case of rendering monochrome images could cause
-unaligned data accesses. (bug introduced recently.) (gximage.h,
-gximage1.c)
- - TrueType characters with no contours could cause an invalid memory
-access. (gstype42.c)
- - Composite TrueType characters weren't rendered properly.
-(gstype42.c)
-
-Adds a get_outline procedure to the Type 42 font header, to provide a
-callback for getting the outline data for a glyph. (gxfont42.h, gstype42.c)
-
-</pre>
-
-<h2><a name="Version4.34"></a>Version 4.34 (limited) (11/18/96)</h2>
-
-<p>
-This release adds a little more support for CID-keyed fonts and for PCL
-emulation, and a bit more of the machinery for passing images through the
-band list.
-
-<h3><a name="V4.34_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The RasterOp source device wasn't listed as an internal device in
-drivers.txt. (drivers.txt)
-
-Corrects a statement regarding the pstotext license. (new-user.txt)
-
-</pre><h3><a name="V4.34_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The Watcom makefile for the library didn't work properly if
-certain variables were overridden from the command line. (watclib.mak)
- - The library code inadvertently depended on an interpreter header
-file. (*.mak)
-
-</pre><h3><a name="V4.34_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Some very picky compilers complained about assigning 0 to a
-variable of an enum type. (gdevpdfx.h, gdevpdf.c)
-
-</pre><h3><a name="V4.34_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Some very picky compilers didn't like a cast from a pointer type
-to an int type. (idebug.c)
- - Some very picky (and non-ANSI-compliant) compilers didn't allow
-assigning an int to a variable of enumerated type. (zfont2.c, zht2.c)
- - The library code inadvertently depended on an interpreter header
-file. (iref.h)
-
-Restructures the font building code slightly to support CID fonts better.
-(gs_cidfn.ps, bfont.h, zcid.c, zfont0.c, zfont1.c, zfont2.c, zfont42.c)
-
-Adds a .setcurrentfile operator to allow disk-based fonts to keep their file
-open. (gs_cidfn.ps, zcontrol.c)
-
-</pre><h3><a name="V4.34_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Some very picky compilers didn't like the computation (const byte
-*)0 - 1. (stream.c)
- - A cast to ulong was omitted. (smtf.c)
- - Some compilers got confused by typedefs in the zlib header files.
-(szlibd.c, szlibe.c)
-
-</pre><h3><a name="V4.34_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A header file didn't select the proper system header on all POSIX
-systems. (malloc_.h)
- - A subclass/superclass type discrepancy upset some compilers.
-(gsline.h, gsline.c, gxpdash.c)
- - Some very picky compilers didn't accept the previous definition of
-the offset_of macro. (stdpre.h)
- - Some very picky (and non-ANSI-compliant) compilers didn't like
-mixing int and enumerated types. (gsropt.h, gzstate.h, gdevmrop.c,
-gdevrrgb.c, gsrop.c, gxclist.c)
- - A cast was missing. (gslib.c)
- - The gs_setxxxtransparent procedures interpreted their argument
-backwards (i.e., as "opaque" rather than "transparent"). (gsrop.c)
- - Intersecting clipping paths didn't reset the logical operation to
-the default, causing a possible crash. (gsrop.h, gsrop.c, gxacpath.c)
- - Pattern accumulation didn't reset the logical operation to the
-default, possibly causing incorrect output. (gspcolor.c)
- - If a Type 1 character ended with a curve and a closepath, a
-microscopic line could result, causing output anomalies. (gstype1.c)
- - Stroking a path with a mix of thin and non-thin lines could cause
-extraneous lines to appear. (gxstroke.c)
- - Zero-width rectangles were painted even when fill adjustment was
-turned off. (gxpaint.c, gxstroke.c)
- - The algorithm for dividing a curve into monotonic pieces could
-produce incorrect results, causing anomalies when filling curved regions
-with zero fill adjustment. (gxpcopy.c)
- - The algorithms for outside clipping were wrong, causing some
-inside regions not to be clipped. (gxcpath.c)
- - The white pixels in halftones weren't treated as unconditionally
-opaque for RasterOp. (gxht.c, gxcht.c)
- - Images with RasterOp didn't work properly. (gdevmrop.c,
-gximage[2345].c, gxpcmap.c)
- - The library code inadvertently depended on an interpreter header
-file. (gxalloc.h, genarch.c)
- - An important optimization for stroking (recognizing portrait,
-landscape, and unscaled CTMs) was commented out. WE DON'T HAVE ANY RECORD
-OF WHY WE DID THIS, AND RESTORING IT MAY INTRODUCE NEW BUGS. (gxstroke.c)
- - Bitmap images with non-zero data_x values were passed through the
-band list incorrectly, possibly causing vertical "streaks" in the output.
-(gxcldev.h, gxclread.c)
- - If a curve had to be split twice along the same axis to make it
-monotonic, the split points were returned in the wrong order, possibly
-causing curved edges to turn into straight lines. (gxpcopy.c)
-
-Changes the debugging printout format for paths so the output can be
-processed mechanically more easily. (gxpath.c)
-
-Adds gs_glyphpath, like charpath but taking a glyph rather than a string of
-character codes. (gschar.h, gschar.c)
-
-Adds an internal concept of a "null color", a color that doesn't actually
-mark any pixels. (gscolor.h, gsdcolor.h, gxdcolor.h, gscolor.c, gxdcolor.c)
-
-Takes the next incremental steps towards passing images through the band
-list:
- - Implements the ability to pass some color mapping information
-(transfer functions, black generation, undercolor removal) through the band
-list. (gxclist.h, gxclimag.c, gxclist.c, gxclread.c)
-
-</pre>
-
-<h2><a name="Version4.33"></a>Version 4.33 (limited) (11/6/96)</h2>
-
-<p>
-This release fixes yet another obscure bug in the recently rewritten fast
-loops for image rendering. (These loops have caused more problems than any
-other single module of the entire library.) It also adds preliminary
-support for CID-keyed fonts (CIDFonts only, not CMaps yet) and some library
-extensions for supporting HP-GL/2.
-
-<h3><a name="V4.33_Documentation"></a>Documentation</h3><pre>
-
-Adds considerable new material to the C style document. (c-style.txt)
-
-Changes -cckr to -ansi in the SGI build procedure. (make.txt)
-
-Corrects an error in the description of the .type42execchar operator.
-(gs_typ42.ps)
-
-</pre><h3><a name="V4.33_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The 'man' pages were installed in the documentation directory as
-well as in the man directory. (unix-end.mak)
-
-</pre><h3><a name="V4.33_Interpreter"></a>Interpreter</h3><pre>
-
-Adds support for CID-keyed fonts. There is no CMap support yet, and some
-things are done with hacks. (int.mak, gs_cidfn.ps, gs_cmap.ps, ichar.h,
-zchar.c, zchar2.c, zchar42.c, zfont2.c, zfont42.c, zcid.c)
-
-Adds operators for accessing the new dash adaptation and dot length
-parameters in the graphics state. (gs_init.ps, zgstate.c)
-
-</pre><h3><a name="V4.33_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The fast case of monobit image rendering could overwrite memory.
-(gximage1.c)
- - The new fast implementation of rectfill didn't check for
-fixed-point overflow. (gsdps1.c)
- - Internally, fonts with no name all appeared to have the same name,
-possibly confusing the xfont machinery. (gxccman.c)
- - A cast to remove const was omitted, upsetting some compilers.
-(gximage1.c)
- - The driver's stroke_path routine was not called if the logical
-operation was not the default one. (gxpaint.c)
-
-Adds support for CID-keyed fonts. (gsccode.h, gxfont.h)
-
-Adds a new "dash pattern adaptation" flag in the imager state. When this
-flag is set and a dash pattern is in effect, each line segment will receive
-an integral number of repetitions of the dash pattern (if necessary, rounded
-up). (gsline.h, gxline.h, gsline.c, gsstate.c, gxpdash.c)
-
-Adds a new "dot length" parameter to the imager state. If this parameter is
-non-zero, it gives a length for rendering dots (zero-length lines). See
-language.txt for details. (gsline.h, gxline.h, gsline.c, gsstate.c,
-gxstroke.c)
-
-Extends band lists so they can handle dash pattern adaptation and dot
-length. (gxcldev.h, gxclpath.h, gxclpath.c, gxclread.c)
-
-Adds a floating point emulator to allow more realistic profiling of
-configurations without a FPU. (gsfemu.c)
-
-</pre>
-
-<h2><a name="Version4.32"></a>Version 4.32 (limited) (11/1/96)</h2>
-
-<p>
-This fixes a couple more bugs, most notably the infamous "pixel stripe" bug.
-
-<h3><a name="V4.32_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The documentation said that Ghostscript could not interpret
-encrypted PDF files. (language.txt)
- - A number of Ghostscript's extensions to the PostScript language
-were missing. (language.txt)
-
-</pre><h3><a name="V4.32_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A compiler complained about initializing an unsigned variable with
-a negative value. (gdevx.c)
- - An off-by-1 allocation error could cause memory overwriting.
-(gdevepsc.c)
-
-</pre><h3><a name="V4.32_Platforms"></a>Platforms</h3><pre>
-
-Declares a pointer 'const' that is actually only used for reading.
-(gp_unifs.c)
-
-</pre><h3><a name="V4.32_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The code for adding nominal UnderlinePosition and
-UnderlineThickness entries to FontInfo assumed (incorrectly) that all Type 1
-fonts had FontBBox entries. (gs_type1.ps)
-
-Brings CIDFont support closer to reality. It doesn't work yet, though.
-(gs_cidfn.ps, gs_fonts.ps, gs_init.ps, gs_res.ps, gs_typ42.ps)
-
-</pre><h3><a name="V4.32_Interpreter"></a>Interpreter</h3><pre>
-
-Removes a redundant implementation of initgraphics. (gs_init.ps)
-
-Speeds up rectfill a little for the common case (4 numbers on the stack).
-(zdps1.c)
-
-</pre><h3><a name="V4.32_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Zero-width, 1-bit-deep, landscape or portrait images could
-overwrite memory ad lib. (gximage1.c)
- - A procedure was declared 'static' inconsistently, upsetting many
-compilers (but not gcc, which, in contradiction to the ANSI standard,
-doesn't check this properly). (gxcpath.c)
- - A local variable was initialized with a value computed from a
-variable that hadn't been set yet, leading to possibly incorrect coloring of
-the first run of pixels in images with 12 bits per sample. (gximage4.c)
- - A compiler complained about initializing an unsigned variable with
-a negative value. (shcgen.c)
- - A rounding problem could produce a vertical stripe of 1 (or on
-very large images possibly more) incorrect pixels at the right edge of a
-1-bit-deep image. (gxdda.h, gximage1.c)
-
-Speeds up gs_rectfill substantially for the portrait/landscape case with a
-rectangular clipping region. (gsdps1.c)
-
-Adds a parameter so we can include gx_line_params in subclasses. (gzline.h)
-
-</pre>
-
-<h2><a name="Version4.31"></a>Version 4.31 (limited) (10/27/96)</h2>
-
-<p>
-This is primarily a bug fix release for 4.30, which we had hoped wouldn't be
-necessary....
-
-<h3><a name="V4.31_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The comment describing the order of coefficients in a CTM written
-on the band list was wrong. (gxclpath.h)
-
-</pre><h3><a name="V4.31_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - bug-form.txt wasn't installed by 'make install'. (unix-end.mak)
- - The default flags in ugcclib.mak didn't take the gcc code
-generation bug into account. (ugcclib.mak)
-
-</pre><h3><a name="V4.31_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - MetroWerks CodeWarrior predefines true and false, causing
-compilation errors on the Mac. (stdpre.h)
-
-</pre><h3><a name="V4.31_Interpreter"></a>Interpreter</h3><pre>
-
-Updates code for the change in the ENUM_PTR macros. (iscan.c)
-
-Changes the allocator to keep track of "lost" ref space separately, to allow
-an independent check on its activities. (gxalloc.h, ialloc.c, isave.c)
-
-Changes the garbage collector API slightly to allow implementation of the
-API in applications other than PostScript interpreters. (ivmspace.h,
-ireclaim.c, igc.c)
-
-</pre><h3><a name="V4.31_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Implements the PDF 1.1 BX and EX operators. (pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V4.31_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Some (harmless) pointer incompatibilities upset some compilers.
-(szlibd.c, szlibe.c)
-
-Updates code for the change in the ENUM_PTR macros. (stream.c)
-
-</pre><h3><a name="V4.31_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A label in the ENUM_PTR procedure generating macros was often not
-referenced, leading to compiler warnings. (gsstruct.h, gxxfont.h,
-gdevmem.c, gschar.c, gscolor2.c, gsdevice.c, gsfont0.c, gsht.c, gsstate.c,
-gxcpath.c, gximage.c)
- - Using the gstate version of setflat rather than the imager version
-caused compiler warnings (and, in some cases, errors). (gstype1.c)
- - Non-standard ImageMatrix values for banded images didn't work.
-(This wasn't actually used.) (gxclread.c)
- - imagemask with a halftone and portrait orientation colored some
-inappropriate pixels. (bug introduced in 4.30) (gximage2.c)
- - When banding, if a character straddled a band boundary the first
-time it occurred, all occurrences of it were clipped. (bug introduced in
-4.2x or 4.30) (gxclimag.c)
- - Degenerate clipping rectangles sometimes got turned into
-non-degenerate ones by swapping the min and max coordinates. (gxcpath.c)
- - Resizing an object either allocated a new object unnecessarily
-(performance bug only), or in very rare cases could corrupt memory.
-(gsalloc.c)
- - Very small objects didn't get put on a free list when freed.
-(Performance bug only.) (gsalloc.c)
- - Some pointers were incorrectly declared 'const', upsetting some
-compilers. (gxclread.c)
-
-Adds more tracing output for -ZL. (gxclread.c)
-
-Changes the -Za tracing output slightly to aid mechanical analysis of
-allocation traces: allocation events now always include a '+', deallocation
-events always include a '-', and the address is always the address of the
-object data and not the header. (gsalloc.c, gsmemory.c)
-
-Changes the allocator to keep track of "lost" object and string space
-separately, to allow an independent check on its activities. (gxalloc.h,
-gsalloc.c)
-
-Changes the allocator to use 'memmove' in an obvious place. (gsalloc.c)
-
-Provides a garbage collector API at the library level to allow
-implementation of the API in applications other than PostScript
-interpreters. (gsgc.h)
-
-</pre>
-
-<h2><a name="Version4.30"></a>Version 4.30 (limited) (10/23/96)</h2>
-
-<p>
-The main purpose of this release is to implement a substantial change in the
-"high level" image API, after which we believe this API will be stable.
-
-<h3><a name="V4.30_Documentation"></a>Documentation</h3><pre>
-
-Documents the changes in the begin_image and image_data device procedures.
-(drivers.txt)
-
-</pre><h3><a name="V4.30_Drivers"></a>Drivers</h3><pre>
-
-Speeds up the PDF writer a little by reducing the amount of allocation,
-which was causing very frequent garbage collections. (gs_pdfwr.ps,
-gdevpdft.c)
-
-Updates the PDF writer for the change in begin_image/image_data.
-(gdevpdfi.c)
-
-</pre><h3><a name="V4.30_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - Some versions of the SGI IRIX compiler have a bug that causes them
-to try to expand macros that require arguments even when the macro name
-isn't followed by a left parenthesis. (gdevsgi.h, gdevsgi.c)
- - The IBM RS6000 compilers now provide &lt;stdlib.h&gt;, so our
-definitions of malloc and free caused a conflict. (malloc_.h)
-
-</pre><h3><a name="V4.30_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Many Fontmaps included obsolete references to an old
-Helvetica-Narrow font. (Fontmap.*)
-
-Makes the GS_FONTPATH directory scanner a little more liberal about what
-files it examines: it will now examine any file whose first line begins with
-%!PS-Adobe or %!FontType. (gs_fonts.ps)
-
-To match an apparent Adobe convention, augments findfont so that if a font
-isn't in the Fontmap, it will try to load a file whose name is the same as
-the font name. (gs_fonts.ps)
-
-To make some questionable Apple font inquiry code work, augments the
-FAKEFONTS facility so that it sets the FontType of fake fonts to 1.
-(gs_fonts.ps)
-
-</pre><h3><a name="V4.30_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - .checkpassword, .putdeviceparams, .putdevparams, setsystemparams,
-and setuserparams didn't free the results byte array, causing a memory leak
-(until the next garbage collection). (zdevice.c, ziodev.c, zusparam.c)
-
-</pre><h3><a name="V4.30_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The code for emulating floating point multiplication with
-conversion to fixed point didn't detect overflow correctly, which could
-produce incorrect results instead of a limitcheck. (gsmisc.c)
- - A macro cast a pointer incorrectly, leading to spurious compiler
-warnings. (gxfixed.h)
- - The code for emulating fixed-to-float conversion computed the
-exponent incorrectly. (gsmisc.c)
- - The algorithm for advancing a DDA a given number of steps (not
-actually used anywhere before this version) was wrong. (gxdda.h)
- - The clipping box returned by clipping devices was incorrect,
-causing parts of the page to disappear. (bug introduced in 4.20)
-(gxcpath.c)
-
-Changes the begin_image and image_data device procedures:
- - begin_image now takes an optional subrectangle instead of a set of
-shape flags.
- - image_data now always takes complete rows of pixels, takes a
-source X offset, and returns 1 when it has received all the data.
-
-The change in begin_image and image_data is a NON-BACKWARD-COMPATIBLE CHANGE
-IN A PUBLIC INTERFACE; however, this interface was still designated "subject
-to change", per the notes for release 3.67 and the documentation in
-drivers.txt. (gsiparam.h, gxclpath.h, gxdda.h, gxdevice.h, gximage.h,
-gdevbbox.c, gdevnfwd.c, gsimage.c, gxclimag.c, gxclread.c, gximage.c,
-gximage?.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.21"></a>Version 4.21 (limited) (10/17/96)</h2>
-
-<p>
-The purpose of this release is to fix bugs reported in 4.0x, 4.10, and 4.20.
-
-<h3><a name="V4.21_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The Ghostscript man page had a .TH in the middle. (gs.1)
-
-</pre><h3><a name="V4.21_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The shared version of zlib was always called libgz; on most
-systems, it is now called libz (but not on Red Hat Linux, where libz is a
-library for dealing with time zones). (*.mak, gs.mak, libpng.mak, zlib.mak)
- - The pdf2dsc.1 man page wasn't installed on Unix systems.
-(unix-end.mak)
- - font2c generated procedures named gsf_xxx, but genconf assumed
-they were named gs_f_xxx. (int.mak)
-
-</pre><h3><a name="V4.21_Drivers"></a>Drivers</h3><pre>
-
-Updates the user-contributed LBP-8II driver to correct unspecified problems.
-(gdevlbp8.c)
-
-Adds a user-contributed driver for Avance Logic SuperVGA cards.
-(gdevsvga.c, devs.mak)
-
-</pre><h3><a name="V4.21_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - On Windows NT, a 32-bit parameter was truncated to 16 bits,
-preventing drawing of scroll bars of the image window when the window is
-uncovered. (dwimg.cpp)
-
-</pre><h3><a name="V4.21_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The free URW Grotesk and Antiqua fonts were omitted from the
-distribution.
-
-</pre><h3><a name="V4.21_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Defining a new global instance of a built-in resource
-(ColorRendering, ColorSpace, Form, Halftone, Pattern, ProcSet) caused an
-invalidaccess error. (gs_res.ps)
- - pathbbox with no current path left an extra item on the stack when
-the error occurred. (gs_init.ps)
- - findresource for an undefined resource instance didn't preserve
-the contents of the stack. (gs_res.ps)
-
-Adds a new file providing a procedural interface with a very rudimentary
-form of job encapsulation. (gserver.c)
-
-Changes the initial value of MaxOpStack to 20000, for the sake of a few
-badly-behaved files. (gs_init.ps, pdf_base.ps)
-
-</pre><h3><a name="V4.21_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - If the image operators failed to allocated their bookkeeping
-structure, the result was a crash rather than VMerror. (gximage.c)
- - gx_default_fill_triangle (currently used only to implement the
-fastest case of stroke) had a typo that could cause a numeric exception or
-incorrect output, and another typo that could produce incorrect output.
-(gdevddrw.c)
- - When banding, if the first occurrence of a character fell partly
-off the page, all occurrences of that character on the page could be clipped
-or mangled. (gxclbits.c, gxclimag.c)
- - When testing whether it's worthwhile compressing a bitmap for
-banding, the compressor was allowed to generate a lot more output than
-needed to make the test. (gxclbits.c)
- - Certain cases of unrotated gray-scale images dropped the first or
-last pixel of each scan line. (gximage2.c)
- - In rare cases, a run of pixels in a image could get erroneously
-displayed in the same color as the previous run, because of a cache
-bookkeeping bug. (gximage3.c)
- - The sample driver for the library had gotten inconsistent with a
-header file. (gslib.c)
- - A declaration was followed by an extraneous semicolon, which upset
-some compilers. (gxht.h)
- - Missing parentheses caused a test for thin lines to be incorrect.
-(gxstroke.c)
-
-</pre>
-
-<h2><a name="Version4.20"></a>Version 4.20 (limited) (10/13/96)</h2>
-
-<p>
-This release has internal changes for future support of banded image
-processing, but no externally visible changes. Its primary purpose is to
-incorporate speedups for clipped images. It does *not* incorporate fixes
-for all problems reported in 4.0x or 4.10.
-
-<h3><a name="V4.20_Documentation"></a>Documentation</h3><pre>
-
-Documents the new get_clipping_box device procedure. (drivers.txt)
-
-</pre><h3><a name="V4.20_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - There were many, many minor inconsistencies between the makefiles
-and the source code. (We finally have an automated tool to detect these.)
-(devs.mak, int.mak, lib.mak, unixtail.mak; gsutil.c, zwppm.c)
- - Some makefile rules weren't properly terminated by a blank line.
-(lib.mak)
-
-</pre><h3><a name="V4.20_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The comments in gslp.ps had gotten out of date. (gslp.ps)
-
-Adds --no-eject-file and --no-eject-formfeed switches to gslp.ps, to allow
-packing files in multi-column printouts. (gslp.ps)
-
-</pre><h3><a name="V4.20_Drivers"></a>Drivers</h3><pre>
-
-Adds a user-contributed driver for the Epson LP-8000 laser printer.
-(gdevlp8k.c)
-
-Adds a DisplayMode parameter to the vgalib device. (gdevvglb.c)
-
-Removes the requirement of typing a character at the end of each page using
-the vgalib driver. THIS IS A USER-VISIBLE, NON-BACKWARD-COMPATIBLE CHANGE.
-(gdevvglb.c)
-
-</pre><h3><a name="V4.20_Interpreter"></a>Interpreter</h3><pre>
-
-Updates code to accommodate the new get_clipping_box device procedure.
-(zupath.c)
-
-</pre><h3><a name="V4.20_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - When a CTM was passed through the band list, it didn't get
-translated to match the band coordinate system. (This had no effect,
-because the translation part of the CTM was never used.) (gxclread.c)
-
-Adds a ',' debugging switch to disable high-level operations when banding.
-(gxclpath.c)
-
-Adds an optional get_clipping_box device procedure, so that filling and
-stroking can clip more aggressively. (gdevmem.h, gdevprn.h, gxdevice.h,
-gxpaint.h, gxpath.h, gzacpath.h, gdevdflt.c, gdevht.c, gdevnfwd.c,
-gxacpath.c, gxclip2.c, gxclist.c, gxcpath.c, gxpcmap.c, gxfill.c,
-gxstroke.c)
-
-Speeds up clipped filling and stroking, by checking against the device
-clipping box. (gxfill.c, gxstroke.c)
-
-Adds the ability to clip with a rectangle a clipping path being accumulated,
-and uses it to do more aggressive clipping when banding. (gzacpath.h,
-gxacpath.c, gxclread.c)
-
-Speeds up clipping of objects lying partly above or below the clipping
-region. (gxcpath.c)
-
-Speeds up clipping vertically-oriented objects (such as 90 degree rotated
-images or vertical rectangles) with convex clipping regions, by checking for
-vertical rectangles contained in multiple clipping rectangles. (gxcpath.c)
-
-Speeds up the handling of 90 degree rotated gray-scale images. (gximage2.c)
-
-Enhances the band list so that it can contain commands for a range of bands,
-not just a single band or all bands. (gxcldev.h, gxclist.h, gxclbits.c,
-gxclist.c, gxclread.c)
-
-Adds an operation to the DDA structure, for eventual support of clipped
-images. (gxdda.h)
-
-Factors out some macros useful for generating bit-transformation tables.
-(gsbittab.h, gsbittab.c, gsflip.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.10"></a>Version 4.10 (limited) (9/25/96)</h2>
-
-<p>
-This release adds local garbage collection, and a number of performance
-improvements for garbage collection in general. We will support it for one
-or two OEMs, but it is not a public release.
-
-<h3><a name="V4.10_Documentation"></a>Documentation</h3><pre>
-
-Moves documentation for all releases before 4.0 to history3.txt. (NEWS,
-history3.txt)
-
-</pre><h3><a name="V4.10_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - pdf2dsc.ps didn't have a proper license notice. (pdf2dsc.ps)
-
-</pre><h3><a name="V4.10_Drivers"></a>Drivers</h3><pre>
-
-Adds a psgray driver, like psmono, to produce 8-bit gray PostScript (level
-1) images. (devs.mak, *.mak, gdevpsim.c)
-
-Changes the psmono driver to allow runs of up to 255 repeated bytes.
-(gdevpsim.c)
-
-</pre><h3><a name="V4.10_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - setdevice erased the page even if this wasn't necessary.
-(zdevice.c)
-
-Speeds up the garbage collector, primarily by speeding up pointer
-relocation. (int.mak, ipacked.h, iref.h, ialloc.c, igc.c, igcref.c)
-
-Actually implements local garbage collection. (igc.h, ivmspace.h, igc.c,
-igcref.c, igcstr.c, ireclaim.c)
-
-Adds some additional error checking for the -Z? switch. (ilocate.c)
-
-Moves a utility for color mapping from the interpreter to the library.
-(icolor.h, zcolor.c)
-
-Adds a MinScreenLevels user parameter. (zusparam.c)
-
-</pre><h3><a name="V4.10_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Adds partial support for the PDF 1.2 gs operator, reverse engineered from a
-PDF 1.2 file. (pdf_draw.ps)
-
-</pre><h3><a name="V4.10_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The test for "thin" stroked lines incorrectly claimed some
-non-thin lines were thin. (gxstroke.c)
- - The computations for halftone cells didn't work for non-square
-pixels. (gxdht.h, gsht.c, gsht1.c, gshtscr.c)
-
-Speeds up the garbage collector a little. (gsstruct.h, gxalloc.h,
-gxfcache.h, gsfont.c)
-
-Replaces references to private statically allocated color spaces with
-references to shared dynamically allocated ones, which are guaranteed to be
-fully filled-in. (gscie.c)
-
-Moves a utility for color mapping from the interpreter to the library.
-(gxfmap.h, gxcmap.c)
-
-Makes available an imager analogue of setmatrix. (gscoord.h, gscoord.c)
-
-Adds a parameter to control the minimum number of halftone screen levels.
-If a halftone cell has fewer pixels than this number, it will be replicated
-(similar to what AccurateScreens does) until the replicated screen has
-enough levels. (gxht.h, gshtscr.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version4.03"></a>Version 4.03 (9/23/96)</h2>
-
-<p>
-This was an emergency re-release of 4.02 to fix the stdin redirection
-problem. It has essentially no other changes.
-
-<h3><a name="V4.03_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Solaris 2.x has /usr/ucb/install, not installbsd. (make.txt)
-
-Updates current.txt to mention the ability to share libpng and libgz.
-(current.txt)
-
-</pre><h3><a name="V4.03_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - A rule assumed that the makefile was named `makefile'.
-(unixtail.mak)
-
-</pre><h3><a name="V4.03_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The stcolor drivers had an off-by-1 error that could cause them to
-write into unallocated memory. (gdevstc.c)
- - The Imagen driver wouldn't compile with gcc. (gdevimgn.c)
-
-</pre><h3><a name="V4.03_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The Solaris fontmap had gotten out of date. (Fontmap.Sol)
-
-</pre><h3><a name="V4.03_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The test for stdin being non-seekable could leave the file error
-flag set, which caused an infinite loop when trying to read from the file
-later. (sfile.c, sfileno.c)
-
-</pre>
-
-<h2><a name="Version4.02"></a>Version 4.02 (9/19/96)</h2>
-
-<p>
-This release fixes a few more bugs, and adds the ability to read encrypted
-PDF files and some PDF 1.2 files.
-
-<p>
-This release was withdrawn after a few days because the stdin redirection
-fix, which was made at the last minute, cause Ghostview to hang.
-
-<h3><a name="V4.02_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The list of required support files was incorrect. (install.txt)
- - The descriptions of file name lookup weren't accurate. (use.txt)
- - A J should have been an H. (gxbitmap.h)
-
-Updates the documentation about encrypted PDF files. (new-user.txt)
-
-Documents what the 13 base PDF fonts are. (ps2pdf.txt)
-
-Fixes a tiny typo. (c-style.txt)
-
-Adds a user-contributed man page for the new pdf2dsc script. (pdf2dsc.1)
-
-Updates the government restricted rights notice in the Aladdin Ghostscript
-Free Public License. (PUBLIC)
-
-Adds the URL of test files to the bug report form. (new-user.txt)
-
-Puts the bug reporting form in a separate file. (readme, bug-form.txt,
-new-user.txt)
-
-Notes that map_xxx_color procedures should not return gx_no_color_index.
-(drivers.txt)
-
-Notes that Ghostscript supports the Flate filters. (language.txt)
-
-Documents the use of the system libpng and zlib. (make.txt, gs.mak)
-
-Notes that Borland C++ 5.0 and 5.01 will not compile Ghostscript correctly.
-(make.txt)
-
-</pre><h3><a name="V4.02_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Using both DELAYBIND and SAFER caused problems. (pstotext uses
-DELAYBIND.) (gs_init.ps)
-
-</pre><h3><a name="V4.02_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - Some pdf2ps machinery interfered with the PDF interpreter.
-(pdf_2ps.ps, pdf_main.ps)
- - In the output of pdf2ps, page numbers in link destinations were
-too high by 1. (pdf_main.ps)
- - viewpbm didn't handle value ranges other than [0..255] correctly.
-(viewpbm.ps)
-
-Adds a user-contributed shell script to invoke pdf2dsc.ps. (pdf2dsc,
-unix-end.mak)
-
-Adds a switch to the genconf utility to set the prefix for generated
-procedure names. (genconf.c)
-
-Adds the option of using system libraries (possibly shared) for libpng
-and/or zlib. (*head.mak, msc*.mak, os2.mak, tccommon.mak, wccommon.mak;
-libpng.mak, zlib.mak)
-
-</pre><h3><a name="V4.02_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The X11 display devices ignored the -DA4 compile-time option.
-(gdevx.c)
- - The garbage collector could scramble the state of the CGM drivers.
-(gxdevice.h, gdevcgm.c)
- - An identifier of more than 31 characters upset the VAX DEC C
-compiler. (gdevcgml.h, gdevcgml.c)
- - In case of an error in trying to set the CoreDistVersion distiller
-parameter, a variable could be used without initialization. (gdevpdfp.c)
- - When DEBUG is selected, the X Windows driver referenced _Xdebug,
-which is not defined in (at least the VMS version of) DECWindows. (x_.h,
-gdevxini.c)
- - Some map_cmyk_color implementations could return "transparent".
-(gdevbit.c)
- - Setting GraphicsAlphaBits or TextAlphaBits in the P*M drivers
-caused an error. (gdevpbm.c)
- - If a user cancelled printing under MS Windows, a confusing error
-resulted, and a temporary file wasn't deleted. (gdevwpr2.c)
- - The map_color_rgb procedure for the bit devices produced incorrect
-results. (This probably had no effect in practice.) (gdevbit.c)
- - The os2prn device produced incorrect output. (gdevos2p.c)
- - The OS/2 PM device didn't detect PM applications correctly.
-(gdevpm.c)
- - The MS Windows printer driver didn't automatically detect the
-printer's color capabilities. (gdevwpr2.c)
- - The BJC-610 driver didn't print at 720 dpi. (gdevcdj.c)
- - The static prototypes of many devices didn't include the far_data
-keyword. (gdev3852.c, gdev4081.c, gdevbgi.c, gdevcgm.c, gdevht.c,
-gdevimgn.c, gdevl256.c, gdevmrop.c, gdevn533.c, gdevnfwd.c, gdevnp6.c,
-gdevo182.c, gdevpcfb.c, gdevpdf.c, gdevpe.c, gdevpm.c, gdevs3ga.c,
-gdevsnfb.c, gdevsppr.c, gdevsun.c, gdevsvga.c, gdevtknk.c, gdevvglb.c,
-gdevwddb.c, gdevwprn.c, gdevx.c, gdevxalt.c)
- - The (original) deskjet driver collapsed print lines towards the
-left margin. (gdevdjet.c)
-
-Adds to the pgm/pgnm/ppm/pnm[raw] drivers the ability to set the maximum
-pixel value, by setting any of the Gray/Red/Green/BlueValues device
-parameters. (gdevpbm.c)
-
-Adds pkm[raw] drivers, which do all their internal computations in CMYK and
-convert the data to RGB as they write the file. (gdevpbm.c)
-
-</pre><h3><a name="V4.02_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The VMS script referred to old versions of the third-party
-libraries. (vms.mak)
- - Under VMS with DEC C, attempting to open a new file fails.
-(gp_vms.c)
- - If you tried to print (gp_printfile) under Windows on a system
-with no printers installed, Ghostscript caused a GPF. (gp_mswin.c)
-
-Restores support for a non-DLL MS Windows platform. (bcwin32.mak,
-dwnodll.cpp)
-
-Adds a new MS Windows DLL call, gsdll_get_bitmap. (gsdll16.def,
-gsdll32.def, dll.txt, gdevwdib.c)
-
-Fixes a variety of other small Windows- and OS/2-related problems, mostly
-related to printing. (gp_mswin.h, dpmainc.c, dwmain.cpp, dwmainc.cpp,
-gdevmswn.c, gdevpm.c, gdevwpr2.c, gp_mswin.c)
-
-</pre><h3><a name="V4.02_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The value of /newerror in $error was true at the end of
-initialization. We now reset it after each internal use of stopped if
-necessary. (gs_dps1.ps, gs_fform.ps, gs_fonts.ps, gs_init.ps, gs_pdf.ps,
-gs_res.ps, gs_type1.ps)
- - setpagedevice (and finddevice) didn't recognize Default.
-(gs_init.ps)
- - When running with -dNODISPLAY, calling gssetresolution would cause
-a crash. (gs_init.ps)
- - A particular combination of save, .forgetsave, and garbage
-collection could cause a memory access error in restore. (isave.c)
- - Some references to systemdict were affected if a user redefined
-the name /systemdict. (gs_cmdl.ps, gs_fonts.ps, gs_kanji.ps, gs_dps1.ps,
-gs_init.ps, gs_res.ps, gs_statd.ps, gs_type1.ps)
- - The insideness testing operators caused an invalid memory access.
-(drivers.txt, zupath.c)
- - If a readline reached an input buffer boundary between the \r and
-\n of a 2-character EOL, an error could occur. (zfileio.c)
- - setdevparams caused an error. (gs_lev2.ps)
-
-Changes file names beginning with ./ or ../ so they are recognized as
-"absolute" and not subject to the search path. (gp_dosfs.c, gp_ntfs.c,
-gp_os2.c, gp_unifn.c)
-
-Changes the exit code for -h or --help from 0 to 1, so an invoking program
-will keep the output around for the user to look at. (imainarg.c)
-
-Adds the FlateEncode and FlateDecode filters; adds PNG pixel prediction to
-the LZW filters. These additions are required for PDF 1.2 and will be part
-of PostScript Level 3. (int.mak, lib.mak, zfdecode.c, zfilter2.c, zfzlib.c,
-zfpngp.c [deleted])
-
-</pre><h3><a name="V4.02_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - The copyright notices on some files didn't mention the Aladdin
-free license. (pdf_*.ps)
- - Some references to systemdict were affected if a user redefined
-the name /systemdict. (pdf_font.ps)
- - The value of /newerror in $error was true at the end of
-initialization. We now reset it after each internal use of stopped if
-necessary. (pdf_main.ps)
- - stdin redirection failed for PDF files even if the new stdin was
-seekable. (pdf_main.ps)
- - The Rotate key rotated pages in the wrong direction.
-(pdf_main.ps)
-
-Adds a minimal "security socket" to the interpreter. This does not include
-any actual decryption code; such code is available elsewhere (see
-new-user.txt). (int.mak, pdf_base.ps, pdf_main.ps, pdf_sec.ps)
-
-Adds a PDF 1.2 capability:
- - The destination in a Dest array can be a page number as well as a
-page object. (pdf_main.ps)
-
-</pre><h3><a name="V4.02_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - stdin was assumed to be non-seekable. (sfile.c, sfileno.c)
-
-</pre><h3><a name="V4.02_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Garbage collection could corrupt a pointer in Type 0 fonts.
-(gxfont0.h, gsfont0.c)
- - When applying hints to a Type 1 font outline, the last point could
-sometimes get moved twice, causing output anomalies. (gxhint3.c)
- - An #include needed for debugging was missing. (gxcmap.h)
- - Graphics states included a no-longer-used private color space
-object. (gsstate.c)
- - Images could get clipped randomly in the X direction. (I don't
-understand why this problem hasn't shown up more often, since it's been
-there since release 4.00.) (gximage.c)
- - The arct and arcto operators failed to draw the line to the
-starting point of the arc. (bug introduced in 4.01) (gspath1.c)
- - Prefix subclasses of simple structures caused an invalid memory
-access. (gsstruct.h)
- - The variable fheight was sometimes unused. (gstype1.c)
- - igcd and imod didn't have prototypes in an appropriate header
-file, and were declared extern in several places. (gsdcolor.h, gsline.h,
-gxarith.h, gxdht.h, gsht.c, gshtscr.c, gsimage.c, gsline.c, gstype1.c,
-gxclimag.c)
- - When using a non-identity RenderTable in a CIE rendering
-dictionary, all colors came out too light. (gscie.c)
- - When using anti-aliased graphics, stroked lines were rendered too
-thin. (gspaint.c)
- - The default map_cmyk_color implementations could return
-"transparent". (gxcmap.c)
- - The number of bits of alpha requested when rendering anti-aliased
-characters could exceed 4. (gschar.c)
- - Multi-screen halftones could cause errors or infinite looping when
-banding. (This problem predates 4.0; I don't know why it didn't show up
-before.) (gxcldev.h, gxclist.c, gxclread.c)
- - Skewed or rotated gray-scale images, or masks with a halftoned
-color, omitted one line of pixels and displaced the image by one pixel.
-(gximage2.c)
-
-Adds an implementation of realloc, for systems that don't have one that
-works. I don't know how to determine this automatically, so for the moment,
-the code uses our own implementation on GNU/Linux (where realloc is known to be
-broken, at least in some releases) and nowhere else. (malloc_.h,
-gsmemory.c, gsmisc.c)
-
-Removes the "OLD" algorithms from the Type 1 hinting source code, since they
-are no longer executed. (If necessary, they can be retrieved from an older
-version.) (gxhint3.c)
-
-</pre>
-
-<h2><a name="Version4.01"></a>Version 4.01 (7/10/96)</h2>
-
-<p>
-This fixes a few minor bugs discovered since the 4.0 release.
-
-<h3><a name="V4.01_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - An installation directory name was wrong. (make.txt,
-unix-lpr.txt)
- - A URL was wrong. (devices.txt)
- - A reference to use.doc hadn't been updated. (gs.1)
- - Some references to /usr/local/lib hadn't been updated. (gs.1)
- - The NEWS file and history* files still referred to *.doc rather
-than *.txt. (NEWS, history*.txt)
-
-Adds a note about compilation on Digital Unix. (make.txt)
-
-Clarifies that calling gs_exit calls gs_finit automatically. (imain.h)
-
-Adds a pointer to the PDF encryption patch. (Ridiculous U.S. export control
-laws don't allow including the patch itself in the main fileset.)
-(new-user.txt)
-
-Adds a help file for VMS. (gs-vms.hlp)
-
-</pre><h3><a name="V4.01_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - vms.mak had gotten out of sync with the makefiles (again).
-(vms.mak)
- - DEVICE{WIDTH,HEIGHT}POINTS didn't override PAPERSIZE.
-(gs_init.ps)
- - The Microsoft C makefiles had gotten out of date. (msc.mak)
-
-The (few) GNU-Licensed drivers were accidentally omitted from the fileset.
-
-Modifies a makefile for greater reusability. (watclib.mak)
-
-Adds a 'debug' target for making Unix debugging configurations.
-(unix-end.mak)
-
-</pre><h3><a name="V4.01_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - Some uses of 'run' should be changed to runlibfile. (bdftops.ps,
-impath.ps, markhint.ps, packfile.ps, showchar.ps, waterfal.ps, wftopfa.ps,
-wrfont.ps)
- - Some debugging code hadn't been removed. (gslp.ps)
-
-Adds a new utility, viewcmyk.ps, for viewing 4-bit CMYK data. (psfiles.txt,
-unix-end.mak, viewcmyk.ps)
-
-Improves pdf2dsc by including Title and CreationDate DSC comments (these are
-displayed by Ghostview) and reducing the size of typical output files by a
-factor of about 3. (pdf2dsc.ps)
-
-Incorporates major changes (claimed to be improvements) to ps2ascii
-contributed by a user. If you have problems with it, please contact him,
-not Aladdin. (ps2ascii.ps)
-
-</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The X value of a bounding box could be computed incorrectly.
-(gdevbbox.c)
-
-</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The Windows DLL sometimes didn't clean up properly. (dll.txt,
-dpmainc.c, dwdll.cpp, dwmain.cpp, dwmainc.cpp, gsdll.c, gsdll.h)
-
-</pre><h3><a name="V4.01_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Reading from a filter could hang forever, because a buffer was
-allocated 1 byte too small. (zfilter.c)
- - The search path could become garbage under some circumstances.
-(imain.c)
- - A dangling reference to a stack-allocated variable could corrupt
-memory if a client mixed interpreter calls and direct C calls. (interp.c)
- - Printing an object to a procedure-based filter could cause an
-invalid memory access. (zfileio.c)
-
-</pre><h3><a name="V4.01_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Setting parameters for an unopened device could cause an access
-error or invoke the wrong put_params procedure. (gsdparam.c)
- - Reading from a filter could hang forever, because a buffer was
-allocated 1 byte too small. (stream.h)
- - If the current device was the nullpage device, doing a [g]save,
-selecting a different device, and doing a [g]restore caused an error.
-(gsdparam.c)
-
-Adds the ability to append arcs without the initial lineto, for PCL
-emulation. (gspath.h, gspath1.c)
-
-</pre>
-
-<h2><a name="Version4.0"></a>Version 4.0 (6/28/96)</h2>
-
-<p>
-This is the first public release since 3.53, with a few more last-minute
-patches beyond 3.70.
-
-<h3><a name="V4.0_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Many makefiles still referred to .doc files rather than .txt.
-(cfonts.mak, devs.mak, gs.mak, int.mak, libpng.mak, unix-end.mak, watc.mak,
-watcwin.mak, wccommon.mak, zlib.mak)
- - Some FONTPATH-related information was out of date. (use.txt)
- - The installation directory for fonts was incorrect. (install.txt)
- - The libpng and zlib versions were out of date. (libpng.mak,
-zlib.mak)
- - Some information about GSview was incorrect or incomplete.
-(new-user.txt)
- - make.txt said it described installation as well as building.
-(make.txt)
-
-Notes that the current release of zlib won't compile and link correctly with
-Sun cc. (make.txt)
-
-Adds a little more detail to the C style document. (c-style.txt)
-
-</pre><h3><a name="V4.0_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Some documentation files weren't installed. (unix-end.mak)
- - Some dependencies were incorrect. (bcwin32.mak)
- - 'make begin' and 'make clean' deleted too many and/or the wrong
-files. (bcwin.mak, bcwin32.mak)
- - libpng.mak didn't work with libpng version 0.89c. (libpng.mak)
- - -d&lt;var&gt;=&lt;name&gt; was equivalent to -d&lt;var&gt;=/&lt;name&gt;, and there was no
-way to set a variable to true, false, or null. (use.txt, gs_init.ps,
-iinit.c, imainarg.c)
-
-Removes the modules.lis file, which is no longer used.
-
-Undoes detecting automatically the need to run tar_cat -- the mechanism
-didn't work, and caused confusion. (unix-end.mak)
-
-Updates the makefiles to libpng version 0.89, but allows them to work with
-either 0.88 or 0.89. (*.mak)
-
-</pre><h3><a name="V4.0_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - Showing the details of a protected font caused an error.
-(markhint.ps)
-
-</pre><h3><a name="V4.0_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A copyright notice was wrong. (gs_pdfwr.ps)
- - PDF link annotations could get written with two Dest keys.
-(gdevpdfm.c)
- - MakeProcInstance and FreeProcInstance were called on platforms
-where it wasn't appropriate. (gdevwpr2.c, gdevwprn.c, gp_mswin.c)
- - On X servers that return very large values for the "virtual
-screen" size in millimeters but correct values for the screen size in
-pixels, a rangecheck could occur. (gdevxini.c)
- - The bounding box device could return garbage if stroke or fill was
-ever invoked with an empty path. (gdevbbox.c)
-
-Replaces the LBP8 driver with a revised one contributed by a user.
-(gdevlbp8.c, devs.mak)
-
-</pre><h3><a name="V4.0_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - Some Windows menu parameters were incorrect. (gsdll16.rc,
-gsdll32.rc)
-
-</pre><h3><a name="V4.0_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - .getdevparams sometimes returned duplicate entries for /Type.
-(ziodev2.c)
- - File names weren't parsed or concatenated properly on all
-platforms. (gs_fonts.ps, zfile.c)
- - Filter lookahead caused problems with special files. (zfproc.c)
- - If a TransformPQR procedure in a CIE color rendering dictionary
-didn't pop its 4 array arguments, an error occurred. (gs_lev2.ps, zcrd.c)
-
-</pre><h3><a name="V4.0_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - Filter lookahead caused problems with special files. (bug
-introduced in 3.70) (stream.h)
-
-</pre><h3><a name="V4.0_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - .getdevparams sometimes returned duplicate entries for /Type.
-(gxiodev.h, gsiodev.c)
-
-</pre>
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History5.htm b/Master/xemtex/doc/ghostscript/History5.htm
deleted file mode 100644
index ec62a06d68d..00000000000
--- a/Master/xemtex/doc/ghostscript/History5.htm
+++ /dev/null
@@ -1,13454 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 5.n</title>
-<!-- $Id: History5.htm,v 1.15.2.11.2.6 2003/05/17 14:38:59 giles Exp $ -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>History of Ghostscript versions 5.n</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version5.99">Version 5.99 (beta) (1999-12-18)</a>
-<ul>
-<li><a href="#5.99_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.99_Documentation">Documentation</a>,
- <a href="#5.99_Procedures">Procedures</a>,
- <a href="#5.99_Utilities">Utilities</a>,
- <a href="#5.99_Drivers">Drivers</a>,
- <a href="#5.99_Platforms">Platforms</a>,
- <a href="#5.99_Fonts">Fonts</a>,
- <a href="#5.99_PDF_writer">PDF writer</a>,
- <a href="#5.99_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.99_Interpreter">Interpreter</a>,
- <a href="#5.99_Streams">Streams</a>,
- <a href="#5.99_Library">Library</a>
-</ul>
-<li><a href="#Version5.98">Version 5.98 (beta) (1999-12-01)</a>
-<ul>
-<li><a href="#5.98_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.98_Documentation">Documentation</a>,
- <a href="#5.98_Procedures">Procedures</a>,
- <a href="#5.98_Utilities">Utilities</a>,
- <a href="#5.98_Drivers">Drivers</a>,
- <a href="#5.98_Fonts">Fonts</a>,
- <a href="#5.98_PDF_writer">PDF writer</a>,
- <a href="#5.98_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.98_Interpreter">Interpreter</a>,
- <a href="#5.98_Streams">Streams</a>,
- <a href="#5.98_Library">Library</a>
-</ul>
-<li><a href="#Version5.97">Version 5.97 (beta) (11/22/99)</a>
-<ul>
-<li><a href="#5.97_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.97_Documentation">Documentation</a>,
- <a href="#5.97_Procedures">Procedures</a>,
- <a href="#5.97_Utilities">Utilities</a>,
- <a href="#5.97_Drivers">Drivers</a>,
- <a href="#5.97_Platforms">Platforms</a>,
- <a href="#5.97_PDF_writer">PDF writer</a>,
- <a href="#5.97_Interpreter">Interpreter</a>,
- <a href="#5.97_Library">Library</a>
-</ul>
-<li><a href="#Version5.96">Version 5.96 (beta) (11/12/99)</a>
-<ul>
-<li><a href="#5.96_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.96_Documentation">Documentation</a>,
- <a href="#5.96_Procedures">Procedures</a>,
- <a href="#5.96_Utilities">Utilities</a>,
- <a href="#5.96_Drivers">Drivers</a>,
- <a href="#5.96_Platforms">Platforms</a>,
- <a href="#5.96_PDF_writer">PDF writer</a>,
- <a href="#5.96_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.96_Interpreter">Interpreter</a>,
- <a href="#5.96_Streams">Streams</a>,
- <a href="#5.96_Library">Library</a>
-</ul>
-<li><a href="#Version5.95">Version 5.95 (beta) (11/1/99)</a>
-<ul>
-<li><a href="#5.95_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.95_Documentation">Documentation</a>,
- <a href="#5.95_Procedures">Procedures</a>,
- <a href="#5.95_Utilities">Utilities</a>,
- <a href="#5.95_Drivers">Drivers</a>,
- <a href="#5.95_Platforms">Platforms</a>,
- <a href="#5.95_Fonts">Fonts</a>,
- <a href="#5.95_PDF_writer">PDF writer</a>,
- <a href="#5.95_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.95_Interpreter">Interpreter</a>,
- <a href="#5.95_Library">Library</a>
-</ul>
-<li><a href="#Version5.94">Version 5.94 (beta) (9/30/99)</a>
-<ul>
-<li><a href="#5.94_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.94_Documentation">Documentation</a>,
- <a href="#5.94_Procedures">Procedures</a>,
- <a href="#5.94_Utilities">Utilities</a>,
- <a href="#5.94_Drivers">Drivers</a>,
- <a href="#5.94_Platforms">Platforms</a>,
- <a href="#5.94_Fonts">Fonts</a>,
- <a href="#5.94_PDF_writer">PDF writer</a>,
- <a href="#5.94_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.94_Interpreter">Interpreter</a>,
- <a href="#5.94_Streams">Streams</a>,
- <a href="#5.94_Library">Library</a>
-</ul>
-<li><a href="#Version5.93">Version 5.93 (beta) (9/11/99)</a>
-<ul>
-<li><a href="#5.93_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.93_Documentation">Documentation</a>,
- <a href="#5.93_Procedures">Procedures</a>,
- <a href="#5.93_Utilities">Utilities</a>,
- <a href="#5.93_Drivers">Drivers</a>,
- <a href="#5.93_Platforms">Platforms</a>,
- <a href="#5.93_PDF_writer">PDF writer</a>,
- <a href="#5.93_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.93_Interpreter">Interpreter</a>,
- <a href="#5.93_Streams">Streams</a>,
- <a href="#5.93_Library">Library</a>
-</ul>
-<li><a href="#Version5.92">Version 5.92 (beta) (9/2/99)</a>
-<ul>
-<li><a href="#5.92_Documentation">Documentation</a>,
- <a href="#5.92_Procedures">Procedures</a>,
- <a href="#5.92_Utilities">Utilities</a>,
- <a href="#5.92_Drivers">Drivers</a>,
- <a href="#5.92_PDF_writer">PDF writer</a>,
- <a href="#5.92_Interpreter">Interpreter</a>,
- <a href="#5.92_Streams">Streams</a>
-</ul>
-<li><a href="#Version5.91">Version 5.91 (beta) (8/30/99)</a>
-<ul>
-<li><a href="#5.91_Documentation">Documentation</a>,
- <a href="#5.91_Utilities">Utilities</a>,
- <a href="#5.91_Drivers">Drivers</a>,
- <a href="#5.91_Platforms">Platforms</a>,
- <a href="#5.91_Fonts">Fonts</a>,
- <a href="#5.91_PDF_writer">PDF writer</a>,
- <a href="#5.91_Library">Library</a>
-</ul>
-<li><a href="#Version5.90">Version 5.90 (beta) (8/20/99)</a>
-<ul>
-<li><a href="#5.90_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.90_Documentation">Documentation</a>,
- <a href="#5.90_Procedures">Procedures</a>,
- <a href="#5.90_Utilities">Utilities</a>,
- <a href="#5.90_Drivers">Drivers</a>,
- <a href="#5.90_Platforms">Platforms</a>,
- <a href="#5.90_Fonts">Fonts</a>,
- <a href="#5.90_PDF_writer">PDF writer</a>,
- <a href="#5.90_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.90_Interpreter">Interpreter</a>,
- <a href="#5.90_Streams">Streams</a>,
- <a href="#5.90_Library">Library</a>
-</ul>
-<li>(Version 5.89 deliberately omitted.)
-<li><a href="#Version5.88">Version 5.88 (tester) (8/3/99)</a>
-<ul>
-<li><a href="#5.88_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.88_Documentation">Documentation</a>,
- <a href="#5.88_Procedures">Procedures</a>,
- <a href="#5.88_Drivers">Drivers</a>,
- <a href="#5.88_Platforms">Platforms</a>,
- <a href="#5.88_Fonts">Fonts</a>,
- <a href="#5.88_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.88_Interpreter">Interpreter</a>,
- <a href="#5.88_Streams">Streams</a>,
- <a href="#5.88_Library">Library</a>
-</ul>
-<li><a href="#Version5.87">Version 5.87 (tester) (6/29/99)</a>
-<ul>
-<li><a href="#5.87_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.87_Documentation">Documentation</a>,
- <a href="#5.87_Procedures">Procedures</a>,
- <a href="#5.87_Drivers">Drivers</a>,
- <a href="#5.87_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.87_Interpreter">Interpreter</a>,
- <a href="#5.87_Library">Library</a>
-</ul>
-<li><a href="#Version5.86">Version 5.86 (tester) (6/14/99)</a>
-<ul>
-<li><a href="#5.86_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.86_Documentation">Documentation</a>,
- <a href="#5.86_Procedures">Procedures</a>,
- <a href="#5.86_Utilities">Utilities</a>,
- <a href="#5.86_Drivers">Drivers</a>,
- <a href="#5.86_Platforms">Platforms</a>,
- <a href="#5.86_Fonts">Fonts</a>,
- <a href="#5.86_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.86_Interpreter">Interpreter</a>,
- <a href="#5.86_Streams">Streams</a>,
- <a href="#5.86_Library">Library</a>
-</ul>
-<li><a href="#Version5.85">Version 5.85 (tester) (5/29/99)</a>
-<ul>
-<li><a href="#5.85_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.85_Documentation">Documentation</a>,
- <a href="#5.85_Procedures">Procedures</a>,
- <a href="#5.85_Utilities">Utilities</a>,
- <a href="#5.85_Drivers">Drivers</a>,
- <a href="#5.85_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.85_Interpreter">Interpreter</a>,
- <a href="#5.85_Library">Library</a>
-</ul>
-<li><a href="#Version5.84">Version 5.84 (tester) (5/19/99)</a>
-<ul>
-<li><a href="#5.84_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.84_Procedures">Procedures</a>,
- <a href="#5.84_Utilities">Utilities</a>,
- <a href="#5.84_Drivers">Drivers</a>,
- <a href="#5.84_Platforms">Platforms</a>,
- <a href="#5.84_Interpreter">Interpreter</a>,
- <a href="#5.84_Streams">Streams</a>,
- <a href="#5.84_Library">Library</a>
-</ul>
-<li><a href="#Version5.83">Version 5.83 (tester) (5/13/99)</a>
-<ul>
-<li><a href="#5.83_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.83_Documentation">Documentation</a>,
- <a href="#5.83_Procedures">Procedures</a>,
- <a href="#5.83_Utilities">Utilities</a>,
- <a href="#5.83_Interpreter">Interpreter</a>,
- <a href="#5.83_Library">Library</a>
-</ul>
-<li><a href="#Version5.82">Version 5.82 (tester) (4/24/99)</a>
-<ul>
-<li><a href="#5.82_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.82_Documentation">Documentation</a>,
- <a href="#5.82_Procedures">Procedures</a>,
- <a href="#5.82_Utilities">Utilities</a>,
- <a href="#5.82_Drivers">Drivers</a>,
- <a href="#5.82_Platforms">Platforms</a>,
- <a href="#5.82_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.82_Interpreter">Interpreter</a>,
- <a href="#5.82_Library">Library</a>
-</ul>
-<li><a href="#Version5.81">Version 5.81 (tester) (4/14/99)</a>
-<ul>
-<li><a href="#5.81_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.81_Procedures">Procedures</a>,
- <a href="#5.81_Utilities">Utilities</a>,
- <a href="#5.81_Drivers">Drivers</a>,
- <a href="#5.81_Fonts">Fonts</a>,
- <a href="#5.81_Platforms">Platforms</a>,
- <a href="#5.81_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.81_Interpreter">Interpreter</a>,
- <a href="#5.81_Library">Library</a>
-</ul>
-<li><a href="#Version5.80">Version 5.80 (tester) (4/6/99)</a>
-<ul>
-<li><a href="#5.80_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.80_Procedures">Procedures</a>,
- <a href="#5.80_Utilities">Utilities</a>,
- <a href="#5.80_Drivers">Drivers</a>,
- <a href="#5.80_Fonts">Fonts</a>,
- <a href="#5.80_Platforms">Platforms</a>,
- <a href="#5.80_Interpreter">Interpreter</a>,
- <a href="#5.80_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.80_Streams">Streams</a>,
- <a href="#5.80_Library">Library</a>
-</ul>
-<li>(Versions 5.74 - 5.79 deliberately omitted.)
-<li><a href="#Version5.73">Version 5.73 (tester) (3/19/99)</a>
-<ul>
-<li><a href="#5.73_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.73_Documentation">Documentation</a>,
- <a href="#5.73_Procedures">Procedures</a>,
- <a href="#5.73_Drivers">Drivers</a>,
- <a href="#5.73_Interpreter">Interpreter</a>,
- <a href="#5.73_Library">Library</a>
-</ul>
-<li><a href="#Version5.72">Version 5.72 (tester) (3/17/99)</a>
-<ul>
-<li><a href="#5.72_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.72_Documentation">Documentation</a>,
- <a href="#5.72_Procedures">Procedures</a>,
- <a href="#5.72_Utilities">Utilities</a>,
- <a href="#5.72_Drivers">Drivers</a>,
- <a href="#5.72_Fonts">Fonts</a>,
- <a href="#5.72_Interpreter">Interpreter</a>,
- <a href="#5.72_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.72_Streams">Streams</a>,
- <a href="#5.72_Library">Library</a>
-</ul>
-<li><a href="#Version5.71">Version 5.71 (tester) (3/3/99)</a>
-<ul>
-<li><a href="#5.71_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.71_Documentation">Documentation</a>,
- <a href="#5.71_Procedures">Procedures</a>,
- <a href="#5.71_Utilities">Utilities</a>,
- <a href="#5.71_Drivers">Drivers</a>,
- <a href="#5.71_Fonts">Fonts</a>,
- <a href="#5.71_Interpreter">Interpreter</a>,
- <a href="#5.71_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.71_Streams">Streams</a>,
- <a href="#5.71_Library">Library</a>
-</ul>
-<li><a href="#Version5.70">Version 5.70 (internal) (2/20/99)</a>
-<ul>
-<li><a href="#5.70_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.70_Documentation">Documentation</a>,
- <a href="#5.70_Procedures">Procedures</a>,
- <a href="#5.70_Utilities">Utilities</a>,
- <a href="#5.70_Drivers">Drivers</a>,
- <a href="#5.70_Fonts">Fonts</a>,
- <a href="#5.70_Interpreter">Interpreter</a>,
- <a href="#5.70_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.70_Streams">Streams</a>,
- <a href="#5.70_Library">Library</a>
-</ul>
-<li><a href="#Version5.69">Version 5.69 (internal) (2/4/99)</a>
-<ul>
-<li><a href="#5.69_Procedures">Procedures</a>,
- <a href="#5.69_Utilities">Utilities</a>,
- <a href="#5.69_Drivers">Drivers</a>,
- <a href="#5.69_Interpreter">Interpreter</a>,
- <a href="#5.69_Streams">Streams</a>,
- <a href="#5.69_Library">Library</a>
-</ul>
-<li><a href="#Version5.68">Version 5.68 (internal) (1/29/99)</a>
-<ul>
-<li><a href="#5.68_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.68_Documentation">Documentation</a>,
- <a href="#5.68_Procedures">Procedures</a>,
- <a href="#5.68_Utilities">Utilities</a>,
- <a href="#5.68_Drivers">Drivers</a>,
- <a href="#5.68_Fonts">Fonts</a>,
- <a href="#5.68_Platforms">Platforms</a>,
- <a href="#5.68_Interpreter">Interpreter</a>,
- <a href="#5.68_Streams">Streams</a>,
- <a href="#5.68_Library">Library</a>
-</ul>
-<li><a href="#Version5.67">Version 5.67 (internal) (1/8/99)</a>
-<ul>
-<li><a href="#5.67_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.67_Documentation">Documentation</a>,
- <a href="#5.67_Procedures">Procedures</a>,
- <a href="#5.67_Utilities">Utilities</a>,
- <a href="#5.67_Drivers">Drivers</a>,
- <a href="#5.67_Fonts">Fonts</a>,
- <a href="#5.67_Interpreter">Interpreter</a>,
- <a href="#5.67_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.67_Streams">Streams</a>,
- <a href="#5.67_Library">Library</a>
-</ul>
-<li><a href="#Version5.66">Version 5.66 (internal) (11/25/98)</a>
-<ul>
-<li><a href="#5.66_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.66_Documentation">Documentation</a>,
- <a href="#5.66_Procedures">Procedures</a>,
- <a href="#5.66_Utilities">Utilities</a>,
- <a href="#5.66_Drivers">Drivers</a>,
- <a href="#5.66_Platforms">Platforms</a>,
- <a href="#5.66_Interpreter">Interpreter</a>,
- <a href="#5.66_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.66_Streams">Streams</a>,
- <a href="#5.66_Library">Library</a>
-</ul>
-<li><a href="#Version5.65">Version 5.65 (internal) (11/13/98)</a>
-<ul>
-<li><a href="#5.65_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.65_Documentation">Documentation</a>,
- <a href="#5.65_Procedures">Procedures</a>,
- <a href="#5.65_Utilities">Utilities</a>,
- <a href="#5.65_Drivers">Drivers</a>,
- <a href="#5.65_Platforms">Platforms</a>,
- <a href="#5.65_Interpreter">Interpreter</a>,
- <a href="#5.65_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.65_Library">Library</a>
-</ul>
-<li><a href="#Version5.64">Version 5.64 (internal) (11/5/98)</a>
-<ul>
-<li><a href="#5.64_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.64_Documentation">Documentation</a>,
- <a href="#5.64_Procedures">Procedures</a>,
- <a href="#5.64_Drivers">Drivers</a>,
- <a href="#5.64_Library">Library</a>
-</ul>
-<li><a href="#Version5.63">Version 5.63 (internal) (11/4/98)</a>
-<ul>
-<li><a href="#5.63_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.63_Documentation">Documentation</a>,
- <a href="#5.63_Procedures">Procedures</a>,
- <a href="#5.63_Drivers">Drivers</a>,
- <a href="#5.63_Interpreter">Interpreter</a>,
- <a href="#5.63_Library">Library</a>
-</ul>
-<li><a href="#Version5.62">Version 5.62 (internal) (10/31/98)</a>
-<ul>
-<li><a href="#5.62_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.62_Documentation">Documentation</a>,
- <a href="#5.62_Drivers">Drivers</a>,
- <a href="#5.62_Interpreter">Interpreter</a>,
- <a href="#5.62_Library">Library</a>
-</ul>
-<li><a href="#Version5.61">Version 5.61 (internal) (10/28/98)</a>
-<ul>
-<li><a href="#5.61_Documentation">Documentation</a>,
- <a href="#5.61_Procedures">Procedures</a>,
- <a href="#5.61_Utilities">Utilities</a>,
- <a href="#5.61_Drivers">Drivers</a>,
- <a href="#5.61_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.61_Streams">Streams</a>,
- <a href="#5.61_Library">Library</a>
-</ul>
-<li><a href="#Version5.60">Version 5.60 (internal) (10/18/98)</a>
-<ul>
-<li><a href="#5.60_Incompatible_changes">Incompatible changes</a>,
- <a href="#5.60_Documentation">Documentation</a>,
- <a href="#5.60_Procedures">Procedures</a>,
- <a href="#5.60_Utilities">Utilities</a>,
- <a href="#5.60_Drivers">Drivers</a>,
- <a href="#5.60_Platforms">Platforms</a>,
- <a href="#5.60_Interpreter">Interpreter</a>,
- <a href="#5.60_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.60_Streams">Streams</a>,
- <a href="#5.60_Library">Library</a>
-</ul>
-<li>(Versions 5.51 - 5.59 deliberately omitted.)
-<li><a href="#Version5.50">Version 5.50 (9/16/98)</a>
-<ul>
-<li><a href="#5.50_Documentation">Documentation</a>,
- <a href="#5.50_Procedures">Procedures</a>,
- <a href="#5.50_Utilities">Utilities</a>,
- <a href="#5.50_Drivers">Drivers</a>,
- <a href="#5.50_Platforms">Platforms</a>,
- <a href="#5.50_Interpreter">Interpreter</a>,
- <a href="#5.50_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.50_Library">Library</a>
-</ul>
-<li><a href="#Version5.40">Version 5.40 (beta) (9/10/98)</a>
-<ul>
-<li><a href="#5.40_Documentation">Documentation</a>,
- <a href="#5.40_Procedures">Procedures</a>,
- <a href="#5.40_Utilities">Utilities</a>,
- <a href="#5.40_Drivers">Drivers</a>,
- <a href="#5.40_Platforms">Platforms</a>,
- <a href="#5.40_Library">Library</a>
-</ul>
-<li><a href="#Version5.39">Version 5.39 (beta) (9/8/98)</a>
-<ul>
-<li><a href="#5.39_Drivers">Drivers</a>,
- <a href="#5.39_Library">Library</a>
-</ul>
-<li><a href="#Version5.38">Version 5.38 (beta) (9/3/98)</a>
-<ul>
-<li><a href="#5.38_Documentation">Documentation</a>,
- <a href="#5.38_Drivers">Drivers</a>,
- <a href="#5.38_Interpreter">Interpreter</a>,
- <a href="#5.38_Library">Library</a>
-</ul>
-<li><a href="#Version5.37">Version 5.37 (beta) (8/31/98)</a>
-<ul>
-<li><a href="#5.37_Documentation">Documentation</a>,
- <a href="#5.37_Procedures">Procedures</a>,
- <a href="#5.37_Utilities">Utilities</a>,
- <a href="#5.37_Drivers">Drivers</a>,
- <a href="#5.37_Fonts">Fonts</a>,
- <a href="#5.37_Interpreter">Interpreter</a>,
- <a href="#5.37_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.37_Streams">Streams</a>,
- <a href="#5.37_Library">Library</a>
-</ul>
-<li><a href="#Version5.36">Version 5.36 (beta) (8/25/98)</a>
-<ul>
-<li><a href="#5.36_Documentation">Documentation</a>,
- <a href="#5.36_Utilities">Utilities</a>,
- <a href="#5.36_Drivers">Drivers</a>,
- <a href="#5.36_Platforms">Platforms</a>,
- <a href="#5.36_Fonts">Fonts</a>,
- <a href="#5.36_Interpreter">Interpreter</a>,
- <a href="#5.36_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.36_Streams">Streams</a>,
- <a href="#5.36_Library">Library</a>
-</ul>
-<li><a href="#Version5.35">Version 5.35 (beta) (8/18/98)</a>
-<ul>
-<li><a href="#5.35_Documentation">Documentation</a>,
- <a href="#5.35_Drivers">Drivers</a>,
- <a href="#5.35_Fonts">Fonts</a>,
- <a href="#5.35_Interpreter">Interpreter</a>,
- <a href="#5.35_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#5.35_Library">Library</a>
-</ul>
-<li><a href="#Version5.34">Version 5.34 (beta) (8/16/98)</a>
-<ul>
-<li><a href="#V5.34_Documentation">Documentation</a>,
- <a href="#V5.34_Procedures">Procedures</a>,
- <a href="#V5.34_Drivers">Drivers</a>,
- <a href="#V5.34_Interpreter">Interpreter</a>,
- <a href="#V5.34_Library">Library</a>
-</ul>
-<li><a href="#Version5.33">Version 5.33 (beta) (8/14/98)</a>
-<ul>
-<li><a href="#V5.33_Platforms">Platforms</a>,
- <a href="#V5.33_Fonts">Fonts</a>,
- <a href="#V5.33_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.33_Library">Library</a>
-</ul>
-<li><a href="#Version5.32">Version 5.32 (beta) (8/13/98)</a>
-<ul>
-<li><a href="#V5.32_Procedures">Procedures</a>,
- <a href="#V5.32_Interpreter">Interpreter</a>,
- <a href="#V5.32_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.32_Library">Library</a>
-</ul>
-<li><a href="#Version5.31">Version 5.31 (limited) (8/11/98)</a>
-<ul>
-<li><a href="#V5.31_Drivers">Drivers</a>,
- <a href="#V5.31_Interpreter">Interpreter</a>,
- <a href="#V5.31_Library">Library</a>
-</ul>
-<li><a href="#Version5.30">Version 5.30 (limited) (8/10/98)</a>
-<ul>
-<li><a href="#V5.30_Documentation">Documentation</a>,
- <a href="#V5.30_Procedures">Procedures</a>,
- <a href="#V5.30_Drivers">Drivers</a>,
- <a href="#V5.30_Platforms">Platforms</a>,
- <a href="#V5.30_Fonts">Fonts</a>,
- <a href="#V5.30_Interpreter">Interpreter</a>,
- <a href="#V5.30_Streams">Streams</a>,
- <a href="#V5.30_Library">Library</a>
-</ul>
-<li><a href="#Version5.28">Version 5.28 (limited) (8/3/98)</a>
-<ul>
-<li><a href="#V5.28_Documentation">Documentation</a>,
- <a href="#V5.28_Procedures">Procedures</a>,
- <a href="#V5.28_Utilities">Utilities</a>,
- <a href="#V5.28_Drivers">Drivers</a>,
- <a href="#V5.28_Platforms">Platforms</a>,
- <a href="#V5.28_Interpreter">Interpreter</a>,
- <a href="#V5.28_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.28_Streams">Streams</a>,
- <a href="#V5.28_Library">Library</a>
-</ul>
-<li><a href="#Version5.27">Version 5.27 (limited) (7/18/98)</a>
-<ul>
-<li><a href="#V5.27_Documentation">Documentation</a>,
- <a href="#V5.27_Procedures">Procedures</a>,
- <a href="#V5.27_Drivers">Drivers</a>,
- <a href="#V5.27_Platforms">Platforms</a>,
- <a href="#V5.27_Interpreter">Interpreter</a>,
- <a href="#V5.27_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.27_Library">Library</a>
-</ul>
-<li><a href="#Version5.26">Version 5.26 (limited) (7/7/98)</a>
-<ul>
-<li><a href="#V5.26_Procedures">Procedures</a>,
- <a href="#V5.26_Drivers">Drivers</a>,
- <a href="#V5.26_Fonts">Fonts</a>,
- <a href="#V5.26_Interpreter">Interpreter</a>,
- <a href="#V5.26_Library">Library</a>
-</ul>
-<li><a href="#Version5.25">Version 5.25 (limited) (7/1/98)</a>
-<ul>
-<li><a href="#V5.25_Documentation">Documentation</a>,
- <a href="#V5.25_Procedures">Procedures</a>,
- <a href="#V5.25_Platforms">Platforms</a>,
- <a href="#V5.25_Fonts">Fonts</a>,
- <a href="#V5.25_Interpreter">Interpreter</a>,
- <a href="#V5.25_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.25_Drivers">Drivers</a>,
- <a href="#V5.25_Library">Library</a>
-</ul>
-<li><a href="#Version5.24">Version 5.24 (limited) (6/17/98)</a>
-<ul>
-<li><a href="#V5.24_Documentation">Documentation</a>,
- <a href="#V5.24_Procedures">Procedures</a>,
- <a href="#V5.24_Utilities">Utilities</a>,
- <a href="#V5.24_Drivers">Drivers</a>,
- <a href="#V5.24_Platforms">Platforms</a>,
- <a href="#V5.24_Fonts">Fonts</a>,
- <a href="#V5.24_Interpreter">Interpreter</a>,
- <a href="#V5.24_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.24_Streams">Streams</a>,
- <a href="#V5.24_Library">Library</a>
-</ul>
-<li><a href="#Version5.23">Version 5.23 (limited) (5/14/98)</a>
-<ul>
-<li><a href="#V5.23_Documentation">Documentation</a>,
- <a href="#V5.23_Procedures">Procedures</a>,
- <a href="#V5.23_Utilities">Utilities</a>,
- <a href="#V5.23_Drivers">Drivers</a>,
- <a href="#V5.23_Platforms">Platforms</a>,
- <a href="#V5.23_Fonts">Fonts</a>,
- <a href="#V5.23_Interpreter">Interpreter</a>,
- <a href="#V5.23_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.23_Streams">Streams</a>,
- <a href="#V5.23_Library">Library</a>
-</ul>
-<li><a href="#Version5.22">Version 5.22 (limited) (2/19/98)</a>
-<ul>
-<li><a href="#V5.22_Documentation">Documentation</a>,
- <a href="#V5.22_Procedures">Procedures</a>,
- <a href="#V5.22_Utilities">Utilities</a>,
- <a href="#V5.22_Drivers">Drivers</a>,
- <a href="#V5.22_Interpreter">Interpreter</a>,
- <a href="#V5.22_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.22_Streams">Streams</a>,
- <a href="#V5.22_Library">Library</a>
-</ul>
-<li><a href="#Version5.21">Version 5.21 (limited) (1/19/98)</a>
-<ul>
-<li><a href="#V5.21_Documentation">Documentation</a>,
- <a href="#V5.21_Procedures">Procedures</a>,
- <a href="#V5.21_Drivers">Drivers</a>,
- <a href="#V5.21_Fonts">Fonts</a>,
- <a href="#V5.21_Interpreter">Interpreter</a>,
- <a href="#V5.21_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.21_Library">Library</a>
-</ul>
-<li><a href="#Version5.20">Version 5.20 (limited) (1/8/98)</a>
-<ul>
-<li><a href="#V5.20_Documentation">Documentation</a>,
- <a href="#V5.20_Procedures">Procedures</a>,
- <a href="#V5.20_Utilities">Utilities</a>,
- <a href="#V5.20_Drivers">Drivers</a>,
- <a href="#V5.20_Platforms">Platforms</a>,
- <a href="#V5.20_Fonts">Fonts</a>,
- <a href="#V5.20_Interpreter">Interpreter</a>,
- <a href="#V5.20_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.20_Streams">Streams</a>,
- <a href="#V5.20_Library">Library</a>
-</ul>
-<li><a href="#Version5.10">Version 5.10 (11/23/97)</a>
-<ul>
-<li><a href="#V5.10_Documentation">Documentation</a>,
- <a href="#V5.10_Procedures">Procedures</a>,
- <a href="#V5.10_Utilities">Utilities</a>,
- <a href="#V5.10_Drivers">Drivers</a>,
- <a href="#V5.10_Interpreter">Interpreter</a>,
- <a href="#V5.10_Library">Library</a>
-</ul>
-<li><a href="#Version5.07">Version 5.07 (limited) (10/31/97)</a>
-<ul>
-<li><a href="#V5.07_Documentation">Documentation</a>,
- <a href="#V5.07_Drivers">Drivers</a>,
- <a href="#V5.07_Library">Library</a>
-</ul>
-<li><a href="#Version5.06">Version 5.06 (limited) (10/7/97)</a>
-<ul>
-<li><a href="#V5.06_Documentation">Documentation</a>,
- <a href="#V5.06_Procedures">Procedures</a>,
- <a href="#V5.06_Utilities">Utilities</a>,
- <a href="#V5.06_Drivers">Drivers</a>,
- <a href="#V5.06_Interpreter">Interpreter</a>,
- <a href="#V5.06_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.06_Library">Library</a>
-</ul>
-<li><a href="#Version5.05">Version 5.05 (limited) (9/24/97)</a>
-<ul>
-<li><a href="#V5.05_Platforms">Platforms</a>,
- <a href="#V5.05_Drivers">Drivers</a>,
- <a href="#V5.05_Interpreter">Interpreter</a>,
- <a href="#V5.05_Interpreter_PDF">Interpreter (PDF)</a>
-</ul>
-<li><a href="#Version5.04">Version 5.04 (limited) (9/21/97)</a>
-<ul>
-<li><a href="#V5.04_Documentation">Documentation</a>,
- <a href="#V5.04_Procedures">Procedures</a>,
- <a href="#V5.04_Utilities">Utilities</a>,
- <a href="#V5.04_Drivers">Drivers</a>,
- <a href="#V5.04_Interpreter">Interpreter</a>,
- <a href="#V5.04_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.04_Library">Library</a>
-</ul>
-<li><a href="#Version5.03">Version 5.03 (8/8/97)</a>
-<ul>
-<li><a href="#V5.03_Documentation">Documentation</a>,
- <a href="#V5.03_Procedures">Procedures</a>,
- <a href="#V5.03_Drivers">Drivers</a>,
- <a href="#V5.03_Platforms">Platforms</a>,
- <a href="#V5.03_Fonts">Fonts</a>,
- <a href="#V5.03_Interpreter">Interpreter</a>,
- <a href="#V5.03_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.03_Library">Library</a>
-</ul>
-<li><a href="#Version5.02">Version 5.02 (7/28/97)</a>
-<ul>
-<li><a href="#V5.02_Documentation">Documentation</a>,
- <a href="#V5.02_Procedures">Procedures</a>,
- <a href="#V5.02_Utilities">Utilities</a>,
- <a href="#V5.02_Drivers">Drivers</a>,
- <a href="#V5.02_Platforms">Platforms</a>,
- <a href="#V5.02_Fonts">Fonts</a>,
- <a href="#V5.02_Interpreter">Interpreter</a>,
- <a href="#V5.02_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.02_Library">Library</a>
-</ul>
-<li><a href="#Version5.01">Version 5.01 (6/22/97)</a>
-<ul>
-<li><a href="#V5.01_Documentation">Documentation</a>,
- <a href="#V5.01_Procedures">Procedures</a>,
- <a href="#V5.01_Utilities">Utilities</a>,
- <a href="#V5.01_Drivers">Drivers</a>,
- <a href="#V5.01_Platforms">Platforms</a>,
- <a href="#V5.01_Interpreter">Interpreter</a>,
- <a href="#V5.01_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#V5.01_Library">Library</a>
-</ul>
-<li><a href="#Version5.0">Version 5.0 (6/6/97)</a>
-<ul>
-<li><a href="#V5.0_Documentation">Documentation</a>,
- <a href="#V5.0_Procedures">Procedures</a>,
- <a href="#V5.0_Interpreter">Interpreter</a>,
- <a href="#V5.0_Library">Library</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a record of changes in Ghostscript releases numbered 5.n.
-For earlier versions, see the the history documents:
-
-<blockquote>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-Within each release, news appears in the following order: Incompatible
-changes, Documentation, Procedures, Utilities, Drivers, Platforms, Fonts,
-Interpreter, Streams (included under Interpreter through release 2.9.9),
-Library. Changes marked with a * were made available as patches to a
-previous release.
-
-<hr>
-
-<h2><a name="Version5.99"></a>Version 5.99 (beta) (1999-12-18)</h2>
-
-<h3><a name="5.99_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - All platform-specific makefiles must now define the Q macro.
- - Ghostscript now exits with an error status if an error occurs in a
-file named on the command line, a -c command, or piped input.
-(Utilities)
- - ps2epsi now disables setpagedevice: the bounding box of the EPSI
-output file is recorded only in the %%BoundingBox comment.
-(Drivers)
- - The return type of gdev_vector_close_file is changed from void
-to int.
-(Interpreter)
- - The name of the predefined stochastic halftone is changed to
-StochasticDefault. (This change was actually made in 5.98.)
- - The compht feature is replaced by stocht.
- - Font searching now looks in FontResourceDir.
- - The ASCIIHexEncode filter now produces upper-case output.
-(Library)
- - The type returned by compiled halftone resource access procedures
-is changed.
-
-</pre><h3><a name="5.99_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - A stray character had gotten added to the beginning of a file.
-(doc/Use.htm)
- - Many minor HTML errors had crept in. (doc/*.htm, doc/gsdoc.el)
-
-Updates the docmentation on the mswinpr2 driver. (doc/Devices.htm)
-
-Notes that GNU make currently does not work on OpenVMS. (doc/Make.htm)
-
-Documents the fact that x/y_pixels_per_inch are deprecated. (gxdevcli.h)
-
-Documents certain bugs in ps2pdf. (doc/Ps2pdf.htm)
-
-Documents the addition of FontResourceDir to the font search process.
-(doc/Use.htm)
-
-Documents the new arrangement for B paper sizes. (doc/Psfiles.htm,
-doc/Use.htm, doc/gs-vms.hlp, man/gs.1)
-
-Removes the "under development" warning from the text API and
-get_bits_rectangle documentation, and adds a little more detail.
-(doc/Drivers.htm)
-
-Adds new user-contributed documentation for installing and using Ghostscript
-fonts with X Windows. (doc/Fonts.htm, doc/Readme.htm, doc/Use.htm)
-
-Adds building with the Watcom compiler to the release process.
-(doc/Release.htm)
-
-Adds an "Improving performance" section to the user documentation.
-(doc/Use.htm)
-
-Adds a note to the C style guide about order of evaluation.
-(doc/C-style.htm)
-
-Documents the new stocht.ps file. (doc/Psfiles.htm)
-
-</pre><h3><a name="5.99_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - A missing dependency caused builds on certain platforms to fail.
-(int.mak)
- - $(EXP) was missing before various utility invocations. (int.mak)
- - VMS converts all unquoted arguments to lower case. In order to
-work around this, we have added a platform-specific makefile macro Q, which
-is defined as a quote mark on VMS and as an empty string on all other
-platforms, and used it to quote the few mixed-case values in the makefiles.
-We removed the obsolete QQ macro from os2.mak as well. (cfonts.mak,
-dvx-head.mak, int.mak, openvms.mak, openvms.mmk, os2.mak, unixhead.mak,
-wccommon.mak, winlib.mak)
- - PSRCDIR was incorrectly referenced as PNGSRCDIR in one place.
-(all-arch.mak)
- - winint.mak had a conditional that Watcom's make program didn't
-accept. (winint.mak)
-
-Adds a makefile entry to allow compilation with libpng 1.0.5. (libpng.mak)
-
-Updates the Borland C++ makefile to work with C++Builder 4. (bcwin32.mak)
-
-Updates the Unix installation makefile to install stocht.ps. (unixinst.mak)
-
-</pre><h3><a name="5.99_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - ps2epsi didn't disable setpagedevice. (lib/ps2epsi)
- - geninit needed &lt;stdlib.h&gt; for 'exit'. (geninit.c)
- - Some invocations of utilities didn't deal with VMS's habit of
-converting arguments to lower case. (geninit.c, cfonts.mak)
- - The ps2pdf*.bat files didn't produce a usage message if no
-arguments were provided. (lib/ps2pdf.bat, lib/ps2pdf12.bat,
-lib/ps2pdf13.bat)
- - Removes some warnings from the Windows uninstaller.
-(dwuninst.cpp)
-
-Upgrades the halftone compiler to handle Type 5 halftones. (genht.c)
-
-Makes the initialization string compiler recognize sections of the code
-where binary tokens are allowed, and convert literal hex strings within such
-sections to binary-token strings, which take less space and load faster.
-(geninit.c)
-
-Adds a utility file to define b0 ... b6 as selecting JIS B paper sizes.
-(unixinst.mak, lib/jispaper.ps)
-
-Modifies the font printing utility to sort unencoded characters.
-(lib/prfont.ps)
-
-Adds a small utility to help use the StochasticDefault halftone.
-(lib/stocht.ps)
-
-</pre><h3><a name="5.99_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The output of the epswrite driver couldn't be embedded in another
-file, because it assumed it was invoked with an empty operand stack.
-(gdevps.c)
- - "Vector" drivers didn't detect I/O errors such as filling up the
-disk. (gdevvec.h, gdevpdf.c, gdevps.c, gdevpx.c, gdevvec.c)
- - The bookkeeping for image color spaces when banding was incorrect,
-possibly causing memory access errors. (gxclist.h, gxclimag.c, gxclist.c)
- - The cljet5 driver didn't place the image on the page correctly.
-(gdevclj.c)
- - 16-bit X11 devices with R/G/B widths other than 5/6/5 sometimes
-failed to map colors correctly. (gdevxcmp.h, gdevxcmp.c)
- - The cljet5c driver omitted a needed cast. (gdevcljc.c)
-
-Adds new x11rg16x and x11rg32x devices to test X Windows with unusual pixel
-layout. (devs.mak, gdevxalt.c)
-
-Works around a bug in Acrobat Distiller 4 (and perhaps some other PostScript
-interpreters) that causes an error if CCITTFaxDecode with /EndOfBlock = true
-is given data with no EOB (terminated by the end of the data stream
-instead). (gdevps.c)
-
-</pre><h3><a name="5.99_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The absence of mktemp on the Watcom platform caused a linking
-error under Windows. (watc.mak, watcw32.mak, gp_iwatc.c, gp_mktmp.c)
-
-</pre><h3><a name="5.99_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - findfont, /Font resourcestatus, and /Font resourceforall weren't
-consistent. (lib/gs_fonts.ps, lib/gs_res.ps)
- - Very large TrueType fonts caused a stackoverflow. (lib/gs_ttf.ps)
-
-</pre><h3><a name="5.99_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - Errors in pdfmark and setdistillerparams were ignored (!).
-(lib/gs_pdfwr.ps)
- - The PUT pdfmark didn't allow adding dictionaries to stream-type
-objects. (The pdfmark documentation says this isn't allowed, but we think
-this is an oversight, since it is reasonable and unambiguous and Acrobat
-Distiller allows it.) (gdevpdfm.c)
- - The token scanner used to substitute object names in pdfmark
-parameters sometimes added an extra character on the end. (gdevpdfr.c)
- - ashow and [a]widthshow produced incorrect text spacing. (bug
-introduced by an optimization in 5.97) (gdevpdft.c)
- - setdistillerparams left its argument on the stack.
-(lib/gs_pdfwr.ps)
- - 0-height images caused errors either at conversion or at rendering
-time. (gdevpdfi.c)
- - If the FontMatrix included a translation component, text was
-positioned incorrectly. NOTE: this fix may not handle x/y/xyshow.
-(gdevpdft.c)
- - Out-of-range user-space coordinates could get generated for
-rectangles. NOTE: they can still get generated for general paths.
-(gdevpdfd.c)
- - Widths weren't written for renamed built-in fonts. We fixed this
-partly by improving the algorithm for recognizing built-in fonts.
-(gdevpdff.h, gdevpdff.c, gdevpdft.c)
-
-Works around the Acrobat limitation that user-space coordinates must not
-exceed 32K. (fix from Artifex) (gdevpdfp.c)
-
-Works around an Acrobat Reader 3 bug with printing files including Type 3
-fonts: with the "Download Fonts Once" option, AR3 only emits the font subset
-referenced on the first page where the font appears. (gdevpdfx.h,
-gdevpdf.c, gdevpdft.c)
-
-</pre><h3><a name="5.99_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Type 3 fonts weren't handled properly as a marking context, so if
-a CharProc referenced a resource in the font, an error would occur.
-(lib/pdf_fonts.ps)
- - 0-height images caused an error. (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.99_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Errors weren't propagated properly. (bug introduced in 5.98 by
-enhanced error recovery code) (imainarg.h, gs.c, imainarg.c)
- - Errors in -c commands or in files named on the command line
-sometimes allowed execution to continue, and did not terminate with an
-abnormal status. (lib/gs_init.ps)
-
-Changes the binary token scanner so that if the stream buffer is in foreign
-space, binary-token strings will not be copied, but will be referenced
-directly in the buffer. This parallels what is done for name strings.
-(iscanbin.c)
-
-Changes the stochastic halftone from multiple Type 3s to a Type 5.
-(lib/ht_ccsto.ps, int.mak)
-
-Replaces the compht feature with a new feature called stocht. If this
-feature is selected, the StochasticDefault halftone resource will be
-pre-loaded into Ghostscript. If COMPILE_INITS=1, all the halftone data
-(threshold array, order and bits arrays) will be efficiently compiled into
-the executable. (int.mak)
-
-Replaces (...\n) print with (...) = everywhere. (lib/gs_cmdl.ps,
-lib/gs_fonts.ps, lib/gs_init.ps, lib/gs_setpd.ps, lib/pdf_base.ps,
-lib/pdf_font.ps, lib/pdf_main.ps, lib/pdf_sec.ps)
-
-Adds support for JIS B paper sizes: statusdict will now include isob0..6 and
-jisb0..6 operators, with b0..6 normally aliased to the former.
-(lib/gs_statd.ps, lib/jispaper.ps)
-
-Adds a b5tray procedure; limits the valid arguments for setpagetype to the
-Adobe-defined values 0 and 1. (lib/gs_statd.ps)
-
-Updates clients for the change in the gs_image_* API. (zimage.c)
-
-Makes the default halftone lookup procedure more reasonable.
-(lib/gs_init.ps, lib/gs_ll3.ps)
-
-</pre><h3><a name="5.99_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - An error condition when closing a file stream wasn't reported
-properly. (sfxfd.c, sfxstdio.c)
-
-For greater Adobe compatibility, changes the ASCIIHexEncode filter to
-produce upper-case output. (sstring.c)
-
-</pre><h3><a name="5.99_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The gs_image_* API didn't work for ImageType 3 images. Fixing
-this required a small (but backward-compatible) API change. (fix mostly
-provided by Artifex) (gsimage.h, gsimage.c)
- - The change in the bbox device in 5.95 broke it for the case where
-it was being used in a pipeline. (gdevbbox.c)
- - A possible overflow wasn't detected when stroking lines with very
-large coordinates. (gxstroke.c)
- - A mask was sized incorrectly. (gsdcolor.h)
-
-Updates the runtime support for compiled halftones. (gxdhtres.h, gscdefs.h,
-gconf.c, gxclrast.c, gxhtbit.c)
-
-Replaces all references to the now-deprecated x/y_pixels_per_inch with
-HWResolution[0/1]. (gsdevice.c, gxclist.c, gxpcmap.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.98"></a>Version 5.98 (beta) (1999-12-01)</h2>
-
-<h3><a name="5.98_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - The return type of init_proc is changed from void to int.
- - The return types of gs_lib_init* are changed from void to int.
-(Interpreter)
- - The return types of gs_[main_]init*, gs_[main_]add_lib_path,
-gs_[main_]set_lib_paths, and a number of internal initialization-related
-procedures are changed from void to int.
-
-</pre><h3><a name="5.98_Documentation"></a>Documentation</h3><pre>
-
-Improves the documentation of the clist_render_rectangle procedure.
-(gxclist.h)
-
-Makes it clear that pre-public-release filesets should not be redistributed.
-(doc/Tester.htm)
-
-Clarifies that the parameters for the X driver are command line switches,
-not X resources. (doc/Use.htm)
-
-Improves the documentation of ps2pdf in response to some user comments.
-(doc/Ps2pdf.htm)
-
-Documents the initial settings of the distiller parameters.
-(doc/Ps2pdf.htm)
-
-Documents the UniqueIDs assigned to Aladdin. (lib/gs_fonts.ps)
-
-Updates the documentation for the stochastic halftone mask. (doc/Make.htm)
-
-Removes some obsolete material. (doc/Release.htm)
-
-</pre><h3><a name="5.98_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The new ps2pdf* scripts weren't included in the Unix install list.
-(unixinst.mak)
- - The directory names were missing in BEGINFILES. (openvms.mak)
- - The .pl and .sh scripts weren't included in the Unix install list.
-(unixinst.mak)
-
-Updates all-arch.mak with a newer version from its contributor.
-(all-arch.mak)
-
-Updates the makefiles for a change in eexec modularization. (devs.mak,
-int.mak, lib.mak)
-
-</pre><h3><a name="5.98_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The dvipdf usage message was incorrect. (lib/dvipdf)
-
-Adds a utility for mechanically adding the Adobe extended Latin characters
-(primarily Central European accented letters) to a font. Eventually we
-would like to integrate this into the font loader and/or make extended
-versions of the standard 35 fonts. (lib/addxchar.ps)
-
-</pre><h3><a name="5.98_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - psdf_sorted_glyphs_include didn't handle empty lists correctly.
-(gdevpsdf.c)
- - A reference to a #defined constant hadn't been converted to upper
-case. (gdevpsdf.h)
- - Acrobat Reader couldn't handle &lt;&gt; as the definition of
-Notice in an embedded font's FontInfo dictionary: it requires a ()
-string. (gdevpsd1.c)
- - The [e]pswrite driver didn't take stroked paths into account when
-computing the bounding box. (gdevps.c)
-
-Updates gdevwpr2.c with a new version from its most recent author.
-(gdevwpr2.c)
-
-</pre><h3><a name="5.98_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - The FONTPATH file scanner wasn't protected against errors.
-(lib/gs_fonts.ps)
- - Some badly designed Chinese TrueType fonts, whose 'post' table
-gives the name .null to all glyphs, didn't work properly. (lib/gs_ttf.ps)
- - The shareware Katakana font had an incorrect UniqueID.
-(fonts/fkarw.gsf)
-
-Adds all of the PostScript 3 fonts to the intelligent substitution tables.
-(lib/gs_fonts.ps)
-
-Changes the FONTPATH scanner to allow a %%BeginFont: line as the first line
-of a font. Nothing in Adobe's documentation suggests that this is
-acceptable, but some fonts have it. (lib/gs_fonts.ps)
-
-Releases an updated set of the URW fonts, fixing the braceleftbt problem in
-the Symbol font and a couple of missing characters in the ZapfDingbats
-fonts, and adding the Euro glyph to the alphabetic fonts. The new archive
-also includes fonts.scale and fonts.dir files for use with X Windows
-(mkfontdir and xfs).
-
-Centralizes the definition of Aladdin's XUIDs. (lib/gs_fonts.ps,
-lib/gs_ttf.ps)
-
-</pre><h3><a name="5.98_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - The algorithm for making font names unique didn't take subset
-prefixes into account. (gdevpdff.h, gdevpdff.c, gdevpdfw.c)
- - Computing character bounding boxes was taking an inordinate amount
-of time. (performance problem only) (gdevpdff.c)
- - The pdf_image_writer and pdf_image_enum structures didn't have GC
-descriptors, possibly causing memory corruption. (gdevpdfi.c)
- - PostScript files containing images with premature end-of-data were
-converted to PDF files with premature end-of-data, which Acrobat doesn't
-accept. (gdevpdfo.h, gdevpdfx.h, gdevpdfi.c, gdevpdfo.c, gdevpdfu.c)
- - Pattern resources whose image was written in-line omitted a needed
-gsave (q). (bug introduced in 5.94) (gdevpdfi.c)
- - The similarity between a font and a base font wasn't computed
-correctly, leading to some unnecessary writing of Widths for standard fonts.
-(gdevpdft.c)
- - Embedding a stream in the psdf_binary_writer caused garbage
-collector problems, because there could be pointers to that stream from
-elsewhere. (gdevpsdf.h, gdevpsdf.c)
- - The algorithms for deciding whether a font was script or serif
-were very inaccurate. (The revised ones are only somewhat better.)
-(gdevpdff.c)
- - Re-encoded characters in subset fonts weren't handled correctly.
-We work around this by writing the entire font if the character doesn't
-appear in the font's encoding. This is inefficient but will always produce
-correct output. (gdevpdff.h, gdevpdff.c, gdevpdft.c, gdevpdfw.c)
- - The meaning of bit 6 in the Flags was supposed to have changed in
-PDF 1.2, but didn't. (gdevpdff.h, gdevpdff.c, gdevpdfw.c)
- - The Widths array didn't get written out for embedded subsets of
-the built-in fonts. (gdevpdfw.c)
- - Planar images weren't handled correctly, and could cause memory
-corruption. (gdevpdfi.c)
- - Patterns still weren't scaled correctly; in fact, the "fix" in
-5.94 can't possibly have worked, and we don't understand why it seemed to.
-(gdevpdfi.c)
-
-Recants the belief that the default encoding for embedded fonts is
-StandardEncoding (see 5.95): the appearance of this was a symptom of having
-multiple fonts with the same name. (gdevpdft.c)
-
-Removes FONT_EMBED_UNKNOWN, which is meaningless (a decision is always made
-about whether to embed a font). (gdevpdff.h, gdevpdff.c, gdevpdft.c)
-
-Changes the algorithm for picking the base font so that it produces more
-efficient output for certain cases of re-encoded fonts. (gdevpdft.c)
-
-</pre><h3><a name="5.98_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Fonts were getting renamed unnecessarily. (performance and PDF
-output size problem only) (lib/pdf_font.ps)
- - Fonts with Widths but no FontDescriptor caused an error.
-(lib/pdf_font.ps)
- - TrueType fonts processed the Encoding key in the font the same way
-as other font types, which is not correct. (lib/pdf_font.ps)
- - For embedded Type 3 fonts, the Widths entry in a font didn't
-override the width in the CharProc. (lib/pdf_font.ps, lib/pdf_ops.ps)
- - If a page had multiple Contents streams, and one of the streams
-ended with values on the operand stack, an error might occur.
-(lib/pdf_main.ps)
- - Ts and Tz within a text object didn't take effect immediately.
-(lib/pdf_ops.ps)
- - sc[n] and SC[N] could cause an error because Do left an extra item
-on the stack temporarily. (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.98_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Getting the unscaled outline for a Type 1 font didn't disable
-hinting. (mostly a performance problem) (zchar1.c)
- - Error conditions during initialization weren't recognized. Fixing
-this required changing various return types from void to int. (ialloc.h,
-iinit.h, imain.h, interp.h, ialloc.c, iinit.c, imain.c)
- - HalftoneMode didn't affect setscreen or setcolorscreen.
-(lib/gs_init.ps, lib/gs_ll3.ps)
-
-Makes the interpreter quit with a message, rather than a stack dump, if it
-can't open the initial device and DEBUG is not set. (lib/gs_init.ps)
-
-Adds .setlimitclamp and .currentlimitclamp operators to access the limit
-clamp flag in the graphics state. (zgstate.c)
-
-Changes the names of the stochastic halftone mask to be more descriptive.
-(lib/ht_ccsto.ps, int.mak, unixinst.mak)
-
-</pre><h3><a name="5.98_Streams"></a>Streams</h3><pre>
-
-Adds the ability to forbid using hex encoding when writing strings.
-(spsdf.h, spsdf.c)
-
-</pre><h3><a name="5.98_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Computing the width of a glyph unnecessarily constructed the
-entire outline. (performance problem only) (gxtype1.c)
- - Getting the unscaled width of a glyph in a Type 1 font didn't
-disable hinting. (mostly a performance problem) (gxtype1.c.)
- - The "unknown device" GC descriptor is no longer used. (gsdevice.c)
- - Some compilers *still* complained about end-of-loop code not being
-reached. (gxpath2.c)
- - Mixing float and double values sometimes caused spurious lines to
-be drawn when stroking very short lines with large widths. (fix from
-Artifex) (gxpdash.c)
- - The code for handling crossing lines in the path filling algorithm
-sometimes computed line crossings incorrectly, causing excessive
-computation. (gxfill.c)
- - When oversampling for anti-aliasing, the flatness parameter was
-not scaled, leading to unnecessarily accurate curve rendering. (gspaint.c)
- - An extra grestore in a Pattern PaintProc could cause a crash.
-(gxpcmap.c)
- - Error conditions during initialization weren't recognized. Fixing
-this required changing the return type of init_proc, and various other
-internal procedures, from void to int. (std.h, gslib.h, gscdefs.h,
-gshtscr.c, gsiodev.c, gslib.c, gsutil.c)
-
-Splits off the Type 1 encryption/decryption code into a separate file for
-sharing with the eexec streams. (gscrypt1.c, gxtype1.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.97"></a>Version 5.97 (beta) (11/22/99)</h2>
-
-<p>
-This is the next beta for 6.0. We believe the pdfwrite driver (ps2pdf) now
-finally produces Acrobat-acceptable output, with reasonable handling of
-fonts, and have also fixed the problem with high-level image banding. We
-are cautiously hopeful that this is a "real" beta candidate.
-
-<h3><a name="5.97_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Drivers)
- - The default CompatibilityLevel in the pdfwrite driver is now back
-to 1.3.
-(Library)
- - The seac_data procedure of a Type 1 font must now be able to
-return the glyph and/or the actual outline data.
-
-</pre><h3><a name="5.97_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - A &lt;br&gt; was missing. (doc/Release.htm)
- - The final step of copying releases to www.aladdin.com was missing.
-(doc.Release.htm)
-
-Documents the new situation with the ps2pdf* scripts. (doc/Ps2pdf.htm)
-
-Documents the simplification of the pthreads code. (doc/Helpers.htm,
-doc/Make.htm)
-
-Adds a requirement to the license that modifications include the name and
-e-mail address of the author, and the date and purpose of the modification.
-(doc/Public.htm)
-
-Adds a link to the documentation for setdistillerparams. (doc/Ps2pdf.htm)
-
-</pre><h3><a name="5.97_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - On OpenVMS, the test for whether the bin and obj subdirectories
-already existed was incorrect. (openvms.mak, openvms.mmk)
- - The recently updated Borland/Inprise makefile deleted some temp
-files prematurely. (bcwin32.mak)
- - The dependencies for the Unix install-scripts and install-data
-targets were incorrect. (unixinst.mak)
-
-Updates the RPM spec files. (gs.rps, gs-fonts.rps, rpm-conf.dif)
-
-Adds support for compilation with Borland/Inprise C++Builder 3.
-(bcwin32.mak, winint.mak)
-
-Adds a note on font installation under Red Hat Linux 6. (doc/Install.htm)
-
-</pre><h3><a name="5.97_Utilities"></a>Utilities</h3><pre>
-
-Adds ps2pdf12 and ps2pdf13 scripts to select the PDF output level
-explicitly; makes ps2pdf a wrapper for ps2pdf12. (lib/ps2pdf,
-lib/ps2pdf.bat, lib/ps2pdf12, lib/ps2pdf12.bat, lib/ps2pdf13,
-lib/ps2pdf13.bat, lib/ps2pdfwr, lib/ps2pdfwr.bat)
-
-Updates the Windows install/setup program to display the Aladdin start menu
-folder on a successful install, so that the user gets some feedback that all
-went well. (dwinst.cpp, dwsetup.cpp)
-
-</pre><h3><a name="5.97_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The lj5{mono,gray} drivers didn't send the page size to the
-printer. (gdevpxut.h, gdevlj56.c, gdevpx.c, gdevpxut.c)
- - The pxl drivers didn't handle out-of-range points properly.
-(gdevvec.c, gdevpx.c)
- - The bmpa drivers didn't produce multi-page output files correctly
--- all pages but the first were blank. (The bmp format is supposed to be
-single-page, but at least some readers handle multi-page files correctly.)
-(gdevbmpa.c)
- - The code for writing embedded TrueType fonts was broken. (bug
-probably introduced in 5.9x) (gdevpsdt.c)
-
-Removes an unused variable. (gdevbmpa.c)
-
-</pre><h3><a name="5.97_Platforms"></a>Platforms</h3><pre>
-
-Replaces the 4 pthreads files, which included a dependence on the non-POSIX
-&lt;semaphore.h&gt;, with a single file that uses only pthreads procedures.
-(gp_psync.c, gp_posem.c [deleted], gp_pthr.c [deleted], gp_ptsem.c
-[deleted], gp_semon.c [deleted])
-
-</pre><h3><a name="5.97_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - Whether or not to write the Widths array was implicit in the data
-structures rather than explicit, so it was sometimes written unnecessarily.
-(gdevpdfx.h, gdevpdff.c, gdevpdft.c)
- - Fonts based on the 14 built-in fonts didn't set BaseFont to the
-name of the built-in font. (gdevpdff.c)
- - The determination of whether a glyph was available was incorrect
-for embedded fonts, leading some glyphs to be turned into bitmaps
-unnecessarily. (gdevpdft.c)
- - Apparently Acrobat Reader gets confused if different subsets of
-the same font have different FirstChar and LastChar values, so we have to
-write the full Widths array each time. (gdevpdfx.h, gdevpdff.c, gdevpdft.c)
- - A structure member wasn't initialized when processing pdfmark
-annotations, possibly causing a memory access error. (gdevpdfm.c)
- - The typedef for gx_device_pdf had a typo. (gdevpdfx.h)
- - Each embedded font subset had its own FontDescriptor and its own
-font data, confusing Acrobat Reader. Fixing this required sharing
-FontDescriptors among multiple fonts and making FontDescriptors
-pseudo-resources. (gdevpdff.h, gdevpdfx.h, gdevpdf.c, gdevpdff.c,
-gdevpdft.c, gdevpdfw.c)
- - Incrementally defined embedded Type 1 fonts didn't write out
-correct Widths. (gdevpdff.c)
- - PDF resources didn't consistently record the gs_id of the
-structure they represented, possibly causing resources to be duplicated
-unnecessarily. (gdevpdff.c, gdevpdfu.c)
-
-Reinstates PDF text output. (gdevpdf.c)
-
-Changes the default CompatibilityLevel in the pdfwrite device back to 1.3,
-since the ps2pdf scripts now make it easy to choose the PDF level.
-(gdevpdf.c)
-
-When possible, uses the widths obtained from the font, rather than the
-default implementation of text_process, to complete the text_process
-operation. This greatly speeds up the conversion process. (gdevpdft.c)
-
-Allows character remapping (but not reencoding) of TrueType fonts.
-(gdevpdft.c)
-
-Factors the definitions for cos objects and font-related objects into header
-files more thoroughly. (gdevpdff.h, gdevpdfo.h, gdevpdfx.h, gdevpdf.c,
-gdevpdff.c, gdevpdfi.c, gdevpdfm.c, gdevpdfr.c, gdevpdft.c, gdevpdfu.c)
-
-Makes the names of some structure elements correspond more directly to keys
-in PDF directories. (gdevpdff.h, gdevpdff.c, gdevpdft.c)
-
-Splits off the font-writing code, since a source file was getting too big.
-(gdevpdff.h, gdevpdff.c, gdevpdfw.c)
-
-Adds CharSet information to embedded Type 1 font descriptors. (gdevpdfw.c)
-
-Makes all font names in the output unique, selected by static bool
-MAKE_FONT_NAMES_UNIQUE. (gdevpdff.h, gdevpdff.c, gdevpdft.c)
-
-Reinstates support for one special case of composite fonts (8/8 mapping with
-the high order byte always zero) that is used by the AdobePS4 Windows
-driver. (gdevpdft.c)
-
-Changes the assumption about the default encoding for embedded TrueType
-fonts from StandardEncoding to no known encoding. (gdevpdft.c)
-
-Changes FONT_EMBED_BASE14 to FONT_EMBED_STANDARD for greater
-descriptiveness. (gdevpdff.h, gdevpdff.c, gdevpdft.c)
-
-</pre><h3><a name="5.97_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The same-font test for Type 1 fonts didn't correctly identify
-re-encoded fonts with unchanged metrics. (zfont1.c)
- - If a save level was split into multiple internal save objects,
-some changes could get undone before objects were finalized. (isave.c)
- - When releasing all of memory, stable allocators weren't finalized.
-(isave.c)
- - Some compilers gave annoying and needless warnings about integer
-overflow. (store.h)
- - There was a signed/unsigned char * mismatch. (iccfont.c)
-
-Adds a debugging procedure. (idebug.h, idebug.c)
-
-Changes the Type 1 font seac_data procedure to match the new API.
-(zchar1.c)
-
-</pre><h3><a name="5.97_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The GC didn't know about the pointers to the tables for Indexed
-color spaces when banding, occasionally causing the tables to be written as
-garbage. This is the real fix for the problem discovered in 5.96.
-(gsiparam.h, gxclist.h, gxiparam.h, gxclimag.c, gxclist.c, gxclpath.c)
- - With 'async' drivers, multi-page files didn't render properly
-(they got a rangecheck error on every page after the first one).
-(gdevprna.c)
- - Some compilers still complained about end-of-loop code not being
-reached. (gxpath2.c)
- - The scaled font cache required that a font have a UID in order to
-be a candidate for caching. (gsfont.c)
- - An obsolete check caused slight discrepancies between banded and
-non-banded output. (gxstroke.c)
- - The glyph_outline procedure for TrueType fonts transformed the
-width by the scaling matrix twice. (gstype42.c)
-
-Removes some now-unnecessary extern_st declarations. (gdevbbox.c,
-gdevplnx.c, gximage3.c)
-
-Removes some initializations that read uninitialized locations and are
-logically unnecessary. (gsalloc.c, gscolor.c)
-
-Adds makefile rules for compiling the MD5 implementation. (lib.mak)
-
-Makes the seac_data of a Type 1 font return the glyph and/or the actual
-outline data. This is necessary because some Type 1 fonts don't have the
-accents in the same positions as StandardEncoding, but use seac anyway.
-(gxfont1.h)
-
-Changes the Type 1 font interpreter to match the new seac_data API.
-(gxtype1.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.96"></a>Version 5.96 (beta) (11/12/99)</h2>
-
-<p>
-This is the next beta for 6.0. To meet a need of our commercial licensing
-partner for a PostScript LL3 release, we are releasing this fileset with all
-font handling in the PDF writer disabled, as well as high-level image
-banding. This is a temporary measure: we will reinstate PDF text in 5.97,
-and high-level image banding as soon as we can straighten out its memory
-management problems.
-
-<h3><a name="5.96_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - All Unix 'make' programs must now predefine MAKE as the name of
-the program.
-(Interpreter)
- - zcolor_remap_one now returns o_push_estack rather than 0 in the
-case where it doesn't actually have to sample the procedure.
-(Library)
- - Multi-plane halftones (when needed) are now used for all CMYK
-devices, not only if setcolorscreen was executed.
- - Font implementors must now provide a same_font procedure.
-
-</pre><h3><a name="5.96_Documentation"></a>Documentation</h3><pre>
-
-Makes it clear that gsnup.ps is very simple and naive. (doc/Psfiles.htm,
-lib/gsnup.ps)
-
-Documents the new -Z_ switch. (doc/Use.htm)
-
-Documents that SYNC=nosync allows building on systems that don't support
-multi-threading. (doc/Make.htm)
-
-Adds documentation for building on Macintosh Rhapsody systems.
-(doc/Make.htm)
-
-Adds a reference to the new all-arch.mak file. (doc/Helpers.htm,
-doc/Make.htm)
-
-Notes that ps2pdf does preserve the color space for images.
-(doc/Ps2pdf.htm)
-
-Documents the new self-extracting archive for MS Windows. (doc/Install.htm,
-doc/Release.htm)
-
-Further improves the documentation of the PDF text machinery. (gdevpdfx.h)
-
-Reorganizes the build information for Unix. (doc/Make.htm)
-
-Adds information on building Ghostscript under BSDI. (doc/Make.htm)
-
-Notes that versions of zlib before 1.1.3 may cause an error on rare
-occasions. (zlib.mak)
-
-Fixes a few other minor problems. (doc/Current.htm, doc/Devices.htm,
-doc/DLL.htm, doc/Install.htm, doc/Language.htm, doc/Make.htm,
-doc/New-user.htm, doc/Ps2pdf.htm, doc/Source.htm, doc/Use.htm)
-
-</pre><h3><a name="5.96_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - dctd.dev and dcte.dev were defined in $(PSD), but referenced in
-$(GLD). (devs.mak, int.mak, lib.mak)
- - pipe.dev was defined in $(GLD), but referenced in $(PSD).
-(bcwin32.mak, dvx-gcc.mak, msvc32.mak, unix-gcc.mak, unixansi.mak,
-unixtrad.mak)
- - XLIBDIRS was included in the linker command even if none of the
-X drivers were used. (devs.mak, dvx-tail.mak, ugcclib.mak, unixlink.mak)
- - The OpenVMS makefile didn't create the obj and bin directories
-properly. (openvms.mak)
- - 'make debug' and 'make pg' didn't work on Unix systems where the
-make program was named something other than make. (unix-end.mak)
-
-Introduces a new top-level makefile macro, STDLIBS, that is -lm for all
-reasonable platforms but null for Rhapsody. (dvx-gcc.mak, dvx-tail.mak,
-ugcclib.mak, unix-gcc.mak, unixansi.mak, unixlink.mak, unixtrad.mak)
-
-Adds Nelson Beebe's contributed multi-architecture Unix makefile.
-(all-arch.mak)
-
-Makes it theoretically possible in theory to build the new Windows
-install/uninstall program with the Borland compiler. However, since this
-requires Borland C++ 4.52 and we only have 4.5, this is disabled in
-bcwin32.mak. (bcwin32.mak, winint.mak)
-
-</pre><h3><a name="5.96_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The default for gsnup.ps was 3x2 landscape, rather than 2x2
-portrait. (lib/gsnup.ps)
- - gslp.ps was broken (by the changes made to support gsnup.ps).
-(lib/gslp.ps)
-
-Adds a -link switch to genconf, to allow verbatim copying of commands into
-the linker command line. (genconf.c)
-
-Edits files to add missing $Id lines and module summary comments, and to
-delimit module summary comments from further material. (dwinst.h,
-dwsetup.h, dwuninst.h, bench.c, dwuninst.cpp)
-
-Makes it possible to build the new Windows install/uninstall program with
-the Borland compiler. (dwinst.cpp, dwsetup.cpp, dwsetup.def, dwsetup.rc,
-dwuninst.cpp, dwuninst.def)
-
-</pre><h3><a name="5.96_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - Embedded Type 1 fonts lacked some 'def' commands. (gdevpsd1.c)
- - Multiple Master Font instances weren't written out correctly.
-(gdevpsd1.c)
-
-Edits files to add missing $Id lines and module summary comments, and to
-delimit module summary comments from further material. (gdev8bcm.h,
-gdevht.h, gdevpccm.h, gdevpcl.h, gdevsvga.h, gdevx.h, gdev3852.c,
-gdev8510.c, gdevadmp.c, gdevcd8.c, gdevcif.c, gdevclj.c, gdevhl7x.c,
-gdevifno.c, gdevimgn.c, gdevl31s.c, gdevmeds.c, gdevmswn.c, gdevos2p.c,
-gdevpe.c, gdevpm.c, gdevsj48.c, gdevtknk.c, gdevupd.c, gdevwddb.c,
-gdevwpr2.c, gdevwprn.c)
-
-</pre><h3><a name="5.96_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The pthreads wrapper had a procedure type mismatch. We fixed this
-by making it allocate and free a wrapper object, as the Windows wrapper
-does. (gp_pthr.c)
-
-Edits files to add missing $Id lines and module summary comments, and to
-delimit module summary comments from further material. (dwimg.h, dwmain.h,
-gsdll.h, gp_msio.c, gp_mswin.c)
-
-Removes an unnecessary #include &lt;semaphore.h&gt;. (gp_semon.c)
-
-Adds a module that implements semaphores using the pthreads mutex
-facilities, as an alternative to gp_posem.c. Unfortunately, using this
-module causes immediate crashes on both GNU/Linux and BSDI, and we don't know
-why. (Let us know if you figure it out.) (gp_ptsem.c)
-
-</pre><h3><a name="5.96_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - The character and word spacing weren't recognized as being reset
-by a PDF grestore. (gdevpdfx.h, gdevpdfu.c)
- - Fonts that couldn't be embedded were always converted to bitmaps,
-rather than becoming candidates for non-embedded representation (if
-EmbedAllFonts is false and the font doesn't appear on the AlwaysEmbed list).
-(gdevpdfx.h, gdevpdff.c, gdevpdft.c)
- - Stream-type Cos objects were written with no (0-length) data.
-(gdevpdfm.c)
- - Reencoded base 14 fonts were not recognized as such, leading to
-excessive font embedding. (gdevpdfx.h, gdevpdf.c, gdevpdff.c, gdevpdft.c)
- - Fonts were embedded by default even if EmbedAllFonts was false.
-(gdevpdft.c)
-
-Changes MaxSubsetPct to 35 to match Acrobat Distiller. (gdevpsdf.h)
-
-Adds some tracing output (-Z_). (gdevpdff.c, gdevpdft.c)
-
-Temporarily disables font handling in the PDF writer, to meet a need of our
-commercial licensing partner. All text will be converted to code-scrambled
-Type 3 bitmap fonts. (gdevpdf.c)
-
-</pre><h3><a name="5.96_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The sh operator caused an invalidaccess error for shadings that
-required a DataSource. (lib/pdf_draw.ps)
- - The test for whether a Widget appearance was a Form or a
-collection of sub-appearances was incorrect, causing an /undefined error in
-the latter case. (lib/pdf_draw.ps)
- - If the FontName in a Font descriptor differed from the BaseFont
-name in the Font object, the interpreter used the two inconsistently,
-sometimes causing the wrong font to be used. (lib/pdf_font.ps)
- - ICCBased color spaces caused an error. (lib/pdf_draw.ps)
-
-Works around the fact that Acrobat Distiller produces files in which a
-Widget's Form appearance lacks Type and Subtype keys. (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.96_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Failure in allocating the name table would cause a crash.
-(iname.c)
- - Shadings with procedure-based filters didn't work.
-(lib/gs_ll3.ps, ifilter.h, zfileio.c, zfproc.c)
- - Some compilers complained about arithmetic on an enum. (iparam.c)
- - Setting a transfer or similar function to the identity function
-didn't set the cached values, so the setting didn't consistently take
-effect. (icolor.h, zcolor.c)
- - If the C library's implementation of sprintf with a %g format ever
-produced a number with an exponent but no decimal point, a crash would
-occur. (iutil.c)
- - The PageDeviceName page device parameter wasn't supported.
-(lib/gs_lev2.ps, lib/gs_setpd.ps)
- - A public procedure wasn't declared extern if DEBUG wasn't set.
-(igc.h)
- - Because of a typo, loading resources automatically from a file
-always failed. (bug introduced in 5.94) (lib/gs_res.ps)
-
-Edits files to add missing $Id lines and module summary comments, and to
-delimit module summary comments from further material. (files.h, iastate.h,
-ibnum.h, ichar.h, ifilter.h, iimage.h, iimage2.h, iparam.h, isave.h,
-iscan.h, isstate.h, istream.h, iutil.h, opcheck.h, scanchar.h)
-
-Adds a font similarity testing procedure for Type 1/2/4 fonts. (zfont1.c)
-
-</pre><h3><a name="5.96_Streams"></a>Streams</h3><pre>
-
-Edits files to add missing $Id lines and module summary comments, and to
-delimit module summary comments from further material. (sbhc.h, sbtx.h,
-sbwbs.h, sdct.h, scfdgen.c, scfdtab.c, shcgen.h, siscale.h, sjpeg.h,
-slzwx.h, smtf.h, spdiffx.h, spngpx.h, srlx.h)
-
-</pre><h3><a name="5.96_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Making a transformed font inappropriately copied the font's
-notification list. (gsfont.c)
- - Some compilers complained about end-of-loop code not being
-reached. (gxpath2.c)
- - The first two arguments of scale_delta was swapped, causing
-anomalous output for certain Type 1 fonts with curves where the starting and
-ending points had the same X or Y coordinate. (gxhint3.c)
- - Large smoothness values produced blocky output. (gxshade.c)
- - When banding, in a region where a CMYK halftone had no K at all,
-the output was likely to be black rather than the correct color. (gxcht.c)
- - Interpolated images with mirrored X scaling weren't mirrored.
-(gxiscale.c)
- - Interpolated images were truncated. (gxiscale.c)
- - Halftone caches could have a dangling pointer to a transfer map in
-the halftone order. (gxht.c)
- - The next-character code returned for kshow was the same as the
-current character. (bug probably introduced in 5.86) (gstext.c)
- - The GC didn't know about the pointers to the tables for Indexed
-color spaces when banding, occasionally causing the tables to be written as
-garbage. In the process of investigating this, we discovered that the GC
-didn't know about *any* of the pointers in the structures used to track
-banded images. ****** NOT FIXED, TOO MUCH RISK OF INTRODUCING FURTHER
-BUGS. ****** Instead, we disabled high-level image banding in this fileset.
-(gxclimag.c)
-
-Changes the name of a variable from ppc to ppcr, because an Apple compiler
-inappropriately defines the name ppc when compiling on a PowerPC.
-(gxshade6.c)
-
-Edits files to add missing $Id lines and module summary comments, and to
-delimit module summary comments from further material. (gdevbbox.h,
-gscoord.h, gscpixel.h, gsfname.h, gsfont.h, gsimage.h, gslib.h, gsmdebug.h,
-gspaint.h, gspath.h, gspath2.h, gxalloc.h, gxclipm.h, gxclpage.h,
-gxclpath.h, gxcmap.h, gxcoord.h, gxcpath.h, gxdda.h, gxdevmem.h, gxfcache.h,
-gxfont.h, gximage.h, gxiodev.h, gxpaint.h, gxpath.h, gxpcolor.h, gzacpath.h,
-gzcpath.h, gzht.h, gzpath.h, md5.h, gxdither.c, md5.c)
-
-Adds a prototype for debug_find_pointers. (gxalloc.h)
-
-Adds a font procedure for testing whether two fonts are the same in various
-ways. This is needed so that the PDF writer can do a reasonable job of
-identifying reencoded and renamed versions of the base 14 fonts. (gxfont.h,
-gsfont.c)
-
-Changes a macro to a procedure and improves some commenting. (gxhint3.c)
-
-Changes the halftoning code so that multi-plane halftones are always used on
-CMYK devices, even if only a single halftone is set (setscreen or
-HalftoneType 1). (gxcht.c, gxdither.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.95"></a>Version 5.95 (beta) (11/1/99)</h2>
-
-<p>
-There were several new problems in 5.94, some of them severe. We hope this
-beta candidate fixes them without introducing any new ones. It also fixes
-some minor problems not reported in 5.93.
-
-<p>
-We think we have finally found the right workarounds for Acrobat and
-specification problems so that pdfwrite output (with CompatibilityLevel
-either 1.2 or 1.3) both conforms as closely as possible to the published PDF
-specification and works with Acrobat Reader (3 or 4 respectively) for both
-displaying and printing.
-
-<p>
-NOTE: The default level of output from the pdfwrite device (ps2pdf) has been
-changed back to PDF 1.2 (Acrobat 3 compatible), because this is what the
-majority of users want. For PDF 1.3 output, use -dCompatibilityLevel=1.3.
-
-<p>
-Note: some post-6.0 code is included under an #ifdef POST60.
-
-<h3><a name="5.95_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Drivers)
- - The default CompatibilityLevel in the pdfwrite device (ps2pdf) is
-now 1.2 rather than 1.3.
- - pdfwrite now discards information after the last showpage rather
-than producing an additional page.
-(Library)
- - The is_monotonic procedure of a function now returns a result that
-indicates the direction of monotonicity of each value separately.
- - The coordinate system used internally by the bbox device is now
-upright (lower left corner = (0,0) rather than upper left corner). (This
-should not make any difference to clients, who should always have been using
-default user space coordinate.)
-
-</pre><h3><a name="5.95_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - A couple of URLs were incorrect or out of date. (doc/Readme.htm,
-doc/Use.htm)
- - There was a typo in a comment. (gxfont.h)
- - An old bug had been fixed, but the documentation had not been
-updated to reflect this. (doc/Current.htm)
-
-Documents the requirement to change SYNC from posync to fbsdsync on FreeBSD.
-(doc/Make.htm)
-
-Adds references to Adobe's on-line documentation. (doc/Readme.htm)
-
-Updates the release procedure to mention adding .ps files.
-(doc/Release.htm)
-
-Adds documentation for the bbox device. (doc/Use.htm)
-
-Documents the new gsnup.ps utility. (doc/Psfiles.htm)
-
-Modifies the gslp utility for greater page independence and smaller output
-files. (lib/gslp.ps)
-
-Documents the fact that the default output from pdfwrite is PDF 1.2.
-(doc/Ps2pdf.htm)
-
-Adds Inprise (as the new name of the Borland tools) in a few places.
-(doc/Make.htm)
-
-Updates the release documentation slightly. (doc/Release.htm)
-
-</pre><h3><a name="5.95_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - FreeBSD uses a different name for the pthreads implementation.
-(lib.mak, unixansi.mak, unix-gcc.mak, unixtrad.mak)
-
-Encapsulates gsnogc.$(OBJ) in a gsnogc.dev module, to make it more sharable.
-(lib.mak)
-
-</pre><h3><a name="5.95_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - guilsinglleft and guilsinglright were misspelled.
-(lib/ps2ascii.ps)
- - The ps2pdf script didn't handle the -I switch correctly. We fixed
-this by including the options twice, both before and after the automatically
-supplied options. (lib/ps2pdf, lib/ps2pdf.bat)
-
-Adds an install/uninstall program for Windows 9x, including optional
-generation of a self-extracting executable, written by Ghostgum Software Pty
-Ltd. This program is not actually used yet. (msvc32.mak, winint.mak,
-dwinst.*, dwsetup.*, dwuninst.*)
-
-Adds a new environment parameter to arch.h, ARCH_DIV_NEG_POS_TRUNCATES.
-(genarch.c)
-
-Adds a utility for N-up printing. (unixinst.mak, lib/gsnup.ps)
-
-Changes ps2pdf so that if showpage has ever been executed, any partial page
-after the last showpage is discarded rather than made into an additional
-page. This is consistent with printers, and correctly handles BeginPage
-procedures that draw backgrounds. (gdevpdf.c)
-
-</pre><h3><a name="5.95_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The TIFF drivers could produce incorrectly sorted tag tables.
-(gdevtifs.c)
- - The OS/2 PM driver had an incorrect #include. (gdevpm.c)
- - Embedded Type 1 fonts that used seac didn't automatically include
-the constituent glyphs. (gdevpsd1.c)
- - Embedded Type 1 fonts wrote the wrong font name in the first
-(comment) line. (gdevpsd1.c)
- - Deleting elements from the AlwaysEmbed or NeverEmbed list could
-cause a memory access error. (gdevpsdp.c)
- - The string and string array members of psdf_distiller_params were
-omitted from the GC descriptor, causing memory corruption. (gdevpsdf.h,
-gdevpsdf.c, gdevpsdp.c)
- - When using "async" printing, the buffer device was destroyed too
-soon. (fix from Artifex) (gdevbmpa.c)
-
-Adds (partial) parsing for the new Acrobat Distiller 4.0 parameters, under
-#ifdef POST60. The put_params code isn't finished. (gdevpsdf.h,
-gdevpsdp.c)
-
-</pre><h3><a name="5.95_Platforms"></a>Platforms</h3><pre>
-
-Changes product to productfamily as the Windows registry key. (gp_wgetv.c)
-
-</pre><h3><a name="5.95_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - guilsinglleft and guilsinglright were misspelled in
-MacRomanEncoding and MacGlyphEncoding. (lib/gs_mro_e.ps)
- - plusminus was misspelled in MacGlyphEncoding. (lib/gs_mgl_e.ps)
- - braceleftbt was misspelled as bracelefttbt in the Symbol font.
-(fonts/s050000l.pfb) ****** NOT DISTRIBUTED YET ******
- - euro was incorrectly included at position 240 in the Symbol
-encoding. (lib/gs_sym_e.ps)
- - Zcaron and zcaron weren't included in WinAnsiEncoding (this is new
-for PDF 1.3). (lib/gs_wan_e.ps)
- - Euro replaced currency in MacRomanEncoding. We had to change this
-back, even though the Mac does use code 219 for Euro, for compatibility with
-Adobe documentation. (lib/gs_mro_e.ps)
- - TrueType fonts with more glyphencoding entries than glyphs could
-cause errors. (lib/gs_ttf.ps)
-
-Adds the Adobe Central European encoding. (lib/gs_ce_e.ps, unixinst.mak)
-
-Adds more tracing to the TrueType font loader. (lib/gs_ttf.ps)
-
-Adds the remaining PDF Encodings to the predefined set. (lib/gs_lgo_e.ps,
-lib/gs_lgx_e.ps, lib/gs_mex_e.ps, lib/gs_mgl_e.ps, lib/gs_mro_e.ps)
-
-</pre><h3><a name="5.95_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - When printing an error message, a pointer/length string was
-incorrectly treated as a C string. (gdevpdfm.c)
- - The treatment of text was completely broken by "improvements" made
-in 5.94. We think we've put things back to a state that at least isn't any
-worse than 5.93. (gdevpdfx.h, gdevpdff.c, gdevpdft.c)
- - The test for whether a glyph was present in a glyph set was wrong,
-possibly causing an infinite loop. (This never happened, because the code
-was masked by other bugs.) (gdevpdft.c)
- - Testing the PDF compatibility level didn't work correctly, because
-of float/double mismatches. (gdevpdfx.h, gdevpdfp.c)
- - Embedded TrueType fonts were still written in binary even if
-ASCII85EncodePages was true. (gdevpdff.c)
- - Embedded TrueType subsets didn't use Flags to indicate that they
-had a non-standard cmap. (gdevpdff.c)
- - Contrary to the obvious reading of the PDF specification, it
-appears that the default encoding for embedded fonts, if no BaseEncoding is
-specified, is StandardEncoding, *not* the built-in encoding of the font
-itself; and that any differences from StandardEncoding must be listed
-explicitly. (gdevpdft.c)
-
-Adds parsing for the new Acrobat Distiller 4.0 parameters, under #ifdef
-POST60. (lib/gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c)
-
-Ensures that the Mac encodings are loaded when writing PDF. (devs.mak)
-
-Works around an Acrobat 3 bug: The only cmap table that works in TrueType
-fonts is format 0, which can only reference glyphs up to 255. Consequently,
-a TrueType font whose Encoding references glyphs above 255 cannot be
-embedded (as a font). (gdevpdft.c)
-
-Changes the default CompatibilityLevel from 1.3 to 1.2. The majority of
-users are running Acrobat 3. (gdevpdf.c)
-
-</pre><h3><a name="5.95_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The T* operator was changed incorrectly to use the negative of the
-leading value. (lib/pdf_ops.ps)
- - The Tz value scaled the X offset for Td and TD (which it
-shouldn't), occasionally causing strings to be displaced horizontally.
-(lib/pdf_ops.ps)
- - sc[n]/SC[N] didn't work with 1-value color spaces, because the
-code incorrectly assumed the operand stack contained only the values on the
-PDF operand stack. (bug introduced by Annotation rendering in 5.94)
-(lib/pdf_base.ps, lib/pdf_draw.ps, lib/pdf_main.ps, lib/pdf_ops.ps)
- - The HTP key in the graphics state caused an error if the
-interpreter didn't implement sethalftonephase. (lib/pdf_draw.ps)
- - If there was no Names tree, invalid links (string Dest values)
-caused an error instead of being ignored. (lib/pdf_main.ps)
- - An annotation with a Thread action caused an error.
-(lib/pdf_main.ps)
-
-Adds table entries, but not implementation, for the op and OPM keys in
-ExtGState dictionaries. (lib/pdf_draw.ps)
-
-Works around a bug in Adobe Acrobat Distiller 4.0 for Windows: it uses the
-value /Default with the BG, UCR, and TR keys in an ExtGState.
-(lib/pdf_draw.ps, lib/pdf_main.ps)
-
-Adds additional tracing for Functions. (lib/pdf_draw.ps)
-
-Implements the BG2, UCR2, and TR2 keys in ExtGStates. (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.95_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - There was a (harmless) signed/unsigned mismatch. (imainarg.c)
- - If build_gs_simple_font had to add any elements to the font
-dictionary, a temporary pointer to the CharStrings could become invalid,
-causing crashes or confusion. (zbfont.c)
- - The check for known Encodings included some pseudo-Encodings.
-(zbfont.c)
- - The error object wasn't reset to null before each call of the
-interpreter, possibly causing the garbage collector to mark it even if it no
-longer existed. (interp.c)
-
-Adds productfamily as a new predefined name, for the benefit of the Windows
-registry. (iinit.c)
-
-Changes the default color smoothness to 0.02 to match Adobe RIPs.
-(lib/gs_ll3.ps)
-
-Adds using the glyph_info procedure for Type 1 fonts, needed to fix the
-problem with seac and Type 1 embedded fonts. (zfont1.c)
-
-</pre><h3><a name="5.95_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Memory devices that may execute RasterOp must be initialized with
-an allocator (for temporary bitmaps), but sometimes they weren't.
-(gdevdrop.c)
- - The computation of colors_used for images could cause arithmetic
-exceptions and/or produce incorrect results. (fix from Artifex)
-(gxclimag.c)
- - A dead variable was getting incremented in a loop. (Small
-performance bug only.) (gsfunc0.c)
- - The cached is_monotonic value in a function head was incorrectly
-declared bool rather than int. (gsfunc.h)
- - The clip operators didn't always recognize empty clipping regions:
-sometimes they retained a 1-pixel-wide region. (gxcpath.c)
- - The bbox device could get into a recursion loop if it had a
-non-null target with a non-standard fill_path procedure. (gdevbbox.c)
- - The procedure u32 was defined in two places. (gsutil.h,
-gdevpsdt.c, gsutil.c, gstype42.c)
- - The DataSource member of a sampled function wasn't reported to the
-garbage collector. (gsfunc0.h, gsfunc0.c) ****** MUST DO THE SAME FOR
-SHADINGS ******
- - All name-type parameters (device and other) were converted as
-strings rather than names. (gsparam.c)
- - Using a mask Pattern with an anti-aliased device could make
-invalid memory accesses and cause a crash. (gxpcmap.c)
- - math_.h was included unnecessarily. (gxfill.c, gxhint3.c)
- - In a few places, (fixed-point) coordinates were truncated towards
-zero rather than taking the floor. (It's likely that this had no effect.)
-(gxfill.c, gxpcopy.c)
- - The join and cap values weren't taken into account when dividing a
-stroked path into bands, possibly causing some caps or joins to be dropped
-if they fell exactly at band boundaries. (gxclpath.c)
- - An arithmetic overflow in gx_adjust_if_empty could produce
-incorrect output. (gxfill.c)
- - Because the bbox device used a Y-inverted coordinate system, it
-could produce incorrect results for out-of-bounds coordinates. (gdevbbox.c)
- - The default font_info procedure didn't compute MISSING_WIDTH if
-IS_FIXED_WIDTH wasn't requested. (gsfont.c)
- - space_params wasn't managed properly, causing problems if the
-device altered the default values. (fix from Artifex) (gdevprn.c)
- - The Macintosh cmap table for embedded TrueType fonts was written
-incorrectly. (gdevpsdt.c)
- - The OS/2 table for embedded TrueType fonts could be inconsistent
-with the cmap table. (gdevpsdt.c)
- - In embedded subset TrueType fonts, loca entries beyond the last
-occupied glyph contained garbage. (gdevpsdt.c)
- - Embedded TrueType subsets didn't include the components of
-composite glyphs. (gdevpsdf.h, gdevpsd1.c, gdevpsdf.c, gdevpsdt.c)
-
-Changes the is_monotonic procedure of Functions so that it reports the
-direction of monotonicity of each value independently. This allows a larger
-class of functions to be detected as monotonic. (gsfunc.h, gsfunc0.c,
-gsfunc3.c)
-
-Works around a bug in Fontographer that causes it to produce (or at least
-allow users to produce) Type 1 fonts using seac in which the side bearing of
-the accented character differs from the side bearing of the base glyph. The
-published Type 1 specification and Adobe's engineers agree that such fonts
-are invalid, but the authors of Fontographer don't seem to care (this is the
-4th Fontographer bug that we have had to patch around so far). (gxtype1.h,
-gstype1.c, gxtype1.c)
-
-Adds gs_productfamily, for the benefit of the Windows registry. (gscdefs.h,
-gscdef.c)
-
-Adds a glyph_info procedure for Type 1 fonts, needed to fix the problem with
-seac and Type 1 embedded fonts. (gxfont1.h, gxtype1.c)
-
-Adds a gs_resize_struct_array procedure that either allocates or resizes an
-object. We have wanted this for quite a while. (gsmemory.h, gsmemory.c)
-
-Adds the remaining PDF Encodings to the predefined set. Also adds string
-names for the "real" encodings. (gsccode.h)
-
-Adjusts the format of embedded TrueType fonts to be closer to that produced
-by Acrobat Distiller, in the hope of making Acrobat Reader accept them.
-(gdevpsdf.h, gdevpsdt.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.94"></a>Version 5.94 (beta) (9/30/99)</h2>
-
-<p>
-This is (intended to be) the last beta candidate for the 6.0 release. Most
-changes other than added documentation are bug fixes. In order to address a
-last-minute problem report, we implemented a subset of Annotation rendering
-for PDF files.
-
-<p>
-At the request of the Free Software Foundation, we removed support for GNU
-readline from the Aladdin Ghostscript fileset. See <a
-href="Make.htm#GNU_readline">here</a> for more information.
-
-<p>
-We suspect that Acrobat's bugs and limitations still prevent embedded
-TrueType fonts in files created by the pdfwrite device from working
-properly, but we have neither the time nor the means to test this properly.
-
-<h3><a name="5.94_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - For OpenVMS with MMK or MMS, the third-party libraries are now
-located in [.&lt;lib&gt;] rather than [-.&lt;lib&gt;].
- - The OpenVMS makefiles now select the same set of devices as the
-Unix makefiles.
- - The MS Windows and MS-DOS default installation directory is now
-c:\Aladdin\gs#.# rather than c:\gs.
- - All top-level makefiles now need a definition of BUILD_TIME_GS.
-(Drivers)
- - The cljet5 driver is renamed cljet5pr; there is a new cljet5
-driver that doesn't attempt (and fail) to handle page rotation.
-(Interpreter)
- - .getiodevice may return null.
-(Library)
- - IODevices may now have a null name.
-
-</pre><h3><a name="5.94_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The documentation of font searching was still wrong in both
-places. (doc/Fonts.htm, doc/Use.htm)
-
-Notes that certain CodeWarrior code generation options produce incorrect
-code. (doc/Make.htm)
-
-Removes an inaccurate and obsolete comment. (lib/pdf_font.ps)
-
-Notes that newer versions of the SGI compiler use a different switch for
-setting the optimization limit. (doc/Make.htm)
-
-Notes that there may be code generation bugs in MSVC5 and later.
-(doc/Make.htm)
-
-Documents the new Fontmap.SGI file. (doc/Use.htm)
-
-Updates the documentation on installing Ghostscript on MS Windows.
-(doc/Install.htm)
-
-Documents the removal of the GNU readline interface. (doc/Current.htm,
-doc/Make.htm)
-
-</pre><h3><a name="5.94_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The instcopy script, supposed to handle incompatibilities between
-Unix `install' commands, didn't work. (instcopy, unixinst.mak)
- - The Windows makefiles had an extra occurrence of `.' at the
-beginning of the default search path. (bcwin32.mak, msvc32.mak,
-msvclib.mak, watc*.mak)
- - The OpenVMS makefile didn't automatically create the bin and obj
-directories if needed. (openvms.mak)
-
-Changes the OpenVMS MMK/MMS makefile to expect the third-party libraries in
-a subdirectory of the current directory, rather than a subdirectory of the
-parent. This makes it compatible with all the other makefiles.
-(openvms.mmk)
-
-Changes the OpenVMS makefiles to select the same set of devices as the Unix
-makefiles. (openvms.mak, openvms.mmk, unixansi.mak)
-
-Changes the Windows and OS/2 default search paths to match the new
-convention of installation rooted at c:\Aladdin. (bcwin32.mak, msvc32.mak,
-msvclib.mak, os2.mak, watc.mak, watclib.mak, watcw32.mak)
-
-</pre><h3><a name="5.94_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The Type 1/2 CharString printer didn't handle undefined opcodes
-correctly. (lib/type1ops.ps)
- - There was no Unix script for pf2afm. (lib/pf2afm)
- - The Type 1/2 font printing utilities didn't default lenIV to -1
-for Type 2, and didn't handle lenIV = -1 correctly in some places.
-(lib/type1ops.ps)
- - The font2c utility used the version of font2c.ps from whatever
-existing Ghostscript executable was in the search path. Fixing this
-required adding a new parameter in all top-level makefiles, BUILD_TIME_GS.
-(cfonts.mak, bcwin32.mak, dvx-gcc.mak, msvc32.mak, openvms.mak, openvms.mmk,
-os2.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak, watc.mak, watcw32.mak)
- - The pfbtopfa usage message was incorrect. (lib/pfbtopfa.ps)
-
-</pre><h3><a name="5.94_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The pswrite driver didn't reset the clipping path when writing
-low-level images, possibly causing output to be clipped incorrectly.
-(gdevps.c)
- - The PNG drivers implicitly declared png_init_io. Fixing this is
-only possible in libpng versions 1.0.3 and later. (gdevpng.c)
- - The cljet5 driver (now cljet5pr) set rotated = true if the page
-was rotated, but didn't set it to false if the page wasn't rotated.
-(gdevclj.c)
- - Embedded Type 1 fonts didn't include any FontInfo elements.
-(gdevpsd1.c)
- - Specifying the DCTEncode filter for compressing images caused a
-crash. This problem is hard to fix correctly because of the complicated
-initialization requirements of the JPEG encoder. We patched around it by
-substituting FlateEncode (when available) for DCTEncode. (gdevpsdi.c)
-
-Renames the cljet5 driver, which has special (and incorrect) hacks to handle
-page rotation for the PCL interpreter, as cljet5pr; adds a new cljet5 driver
-without the hacks. (gdevclj.c)
-
-</pre><h3><a name="5.94_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - On MS Windows and OS/2 systems, the wstdio pseudo-IODevice showed
-up as an instance of the IODevice resource category, causing problems.
-(gp_msio.c, gp_os2.c)
-
-Adds a set of XBM/XPM icons in 4 sizes, contributed by Gintautas Grigelionis
-(eragigr@ki.ericsson.se). (lib/gs*.xbm, lib/gs*.xpm, unixinst.mak)
-
-Brings the Windows and OS/2 code up to date, fixing some minor problems.
-(gdevpm.c, gp_os2.c, gsos2.rc, gspmdrv.rc, os2.mak, pcwin.mak)
-
-</pre><h3><a name="5.94_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - The font directory scanner (FONTPATH) didn't recognize TrueType
-fonts tagged as 'true' rather than 0x00010000. (lib/gs_ttf.ps)
-
-Changes the TrueType font loader to use ISOLatin1Encoding for constructing
-the CharStrings if there is a Microsoft Unicode cmap and no glyph names in
-the post table. This seems like a hack, but we aren't sure what the right
-approach would be. (lib/gs_ttf.ps)
-
-Adds a Fontmap for SGI IRIX. This just comments out those fonts that are
-provided by DPS. (lib/Fontmap.SGI)
-
-</pre><h3><a name="5.94_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - Writing Patterns could cause a memory access error. (bug
-introduced recently) (gdevpdfi.c)
- - Filling with a pattern didn't reset the clipping path, possibly
-causing output to be clipped incorrectly. (gdevpdfi.c)
- - Patterns weren't scaled correctly. (gdevpdfi.c)
- - The data for large Patterns could exceed Acrobat Reader's limit on
-the length of a string. (gdevpdfi.c)
- - copy_color did an extra gsave and concat. (gdevpdfi.c)
- - Repeated color images weren't detected (performance bug only).
-(gdevpdfi.c)
- - Names including control characters or spaces produced invalid
-output. (gdevpdfx.h, gdevpdfu.c)
- - A matrix multiply was in the wrong order, causing fonts with
-non-zero translation in the FontMatrix to render at incorrect coordinates
-(sometimes off the page).
- - If a font had one of the 14 standard names but had some characters
-defined by PostScript procedures, the output file would be invalid.
-(gdevpdft.c)
- - The graphics state line parameters were kept in two different
-copies, causing bookkeeping errors. (gdevpdfx.h, gdevpdf.c, gdevpdfd.c,
-gdevpdfu.c)
- - If a page's BeginPage procedure did anything other than erase the
-page to white, the resulting PDF file was invalid. (gdevpdf.c)
- - Articles with the same title weren't merged properly.
-(gdevpdfm.c)
- - The Threads element of the catalog wasn't an indirect object.
-(gdevpdf.c)
- - Thread actions incorrectly converted the destination (thread
-title) to a name, rather than leaving it as a string. (gdevpdfm.c)
- - Fonts with the same name as the built-in ones, but not the
-standard definitions, produced possibly incorrect output. (gdevpdff.c)
- - The writer didn't recognize attempts to use Encodings with the
-standard fonts that mentioned characters not present in the font's glyph
-set. (gdevpdft.c)
-
-Ensures that the WinAnsiEncoding is loaded when writing PDF. (devs.mak)
-
-</pre><h3><a name="5.94_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The default (identity) CMap didn't map CID 0 to glyph 0.
-(pdf_fonts.ps)
- - TrueType fonts with an explicit Encoding didn't work properly.
-(lib/gs_ttf.ps)
- - If an embedded Type 1 font executed definefont more than once,
-the wrong thing would happen. (lib/pdf_font.ps)
- - The T* operator used the negative of the leading value.
-(lib/pdf_ops.ps)
-
-Implements a subset of Annotation rendering: only Widget annotations, only
-Normal appearance, only S and D borders, no rounded-corner borders. We did
-this at the very last minute before the release, in order to respond to a
-bug report, and it probably has some bugs. (lib/pdf_draw.ps,
-lib/pdf_main.ps)
-
-</pre><h3><a name="5.94_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - If an input buffer boundary fell at exactly the wrong place, an
-image whose input was coming from a stream could fail to read the stream EOD
-marker. (This is quite an old bug.) (zimage.c)
- - On MS Windows and OS/2 systems, the wstdio pseudo-IODevice showed
-up as an instance of the IODevice resource category, causing problems.
-(lib/gs_res.ps, ziodev.c)
- - errorinfo in $error was undefined, rather than null, initially and
-after errors that didn't set it deliberately. (lib/gs_init.ps)
- - The InkParams resource category was defined even in systems that
-didn't support in-RIP trapping. (lib/gs_ll3.ps, lib/gs_res.ps,
-lib/gs_trap.ps)
- - CID fonts with 0-length data caused an error. (lib/gs_cidfn.ps)
- - Type 10 halftone dictionaries were broken -- perhaps they never
-had worked. (lib/gs_ll3.ps)
-
-Makes FontInfo entries available through the extended font API, needed to
-allow embedded Type 1 fonts to include those entries. (zfont1.c)
-
-Makes it possible to determine whether the current file is a resource file,
-needed to allow distinguishing between built-in and input-embedded fonts.
-(lib/gs_ccfnt.ps, lib/gs_fonts.ps, lib/gs_init.ps, lib/gs_res.ps,
-lib/gs_type1.ps, zfont.c)
-
-Moves support for GNU readline from the main Ghostscript fileset to the
-GNU-specific fileset. (unix-gcc.mak, int.mak, gp_gnrdl.c =>
-src/gnu/gp_gnrdl.c, gnu/src/gnudevs.mak)
-
-</pre><h3><a name="5.94_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The CCITTFaxDecode filter didn't correctly handle the case where
-the last code of a 1-D row was a black code and occurred less than 7 or 8
-bits before the end of the input stream. (We thought we fixed this in 5.86,
-but we missed one case.) (scfd.c)
- - If an input buffer boundary fell at exactly the wrong place, an
-image whose input was coming from a stream could fail to read the stream EOD
-marker. (This is quite an old bug.) Fixing this involved a possibly risky
-change to the definition of sbuf_min_left and the already fragile logic in
-sreadbuf: the fix does solve this problem, but we aren't at all certain it
-didn't introduce new ones. (stream.h, stream.c)
-
-</pre><h3><a name="5.94_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The default implementation of copy_tile didn't pass the bitmap id
-for complete tiles, missing potential optimizations (performance bug only).
-(gdevdbit.c)
- - The patch edges of ShadingType 7 shadings were ordered
-incorrectly, producing incorrect output in some cases where the surface
-folds over itself. (gxshade6.c)
- - Flushing internal buffers when rendering an image didn't clip the
-flushed data, producing incorrect output. (gxidata.c)
- - Non-zero data_x values for banded images produced incorrect band
-list data. (It's astounding that this problem hasn't shown up before.)
-(gxclimag.c)
- - Banded images rotated by 90 degrees could produce "seams" or
-garbage if they crossed band boundaries. (This is at least the third time
-we have "fixed" this problem.) (gxclimag.c, gxifast.c)
- - Circles or ellipses defined by pairs of 180-degree arcs produced
-incorrect output when banding. (gxclpath.c, gxclrast.c)
- - setgray et al simply cleared the Pattern pointer in the client
-color rather than adjusting its reference count. (gscolor.c, gscolor1.c)
- - The saved graphics state for bitmap/pixmap patterns contained a
-reference to the Pattern color, causing Patterns to be retained when they
-shouldn't be and causing unwanted recursion when freeing them. (gsptype1.c)
- - Patterns containing halftoned CMYK colors rendered as all black.
-(bug probably introduced in 5.6x) (gxcht.c)
- - Because of a typo, CMYK halftoning with only a single plane could
-put too much yellow into the output. This appears to be quite an old bug.
-(gxdither.c)
- - The error code from running out of band list memory wasn't
-propagated if the condition was detected in cmd_put_drawing_color, causing
-low-memory recovery not to be invoked. (gxclpath.c)
- - (Same error code problem) in clist_change_tile. (gxclbits.c)
-
-Adds more font attributes to the set available through a standard API.
-(gxfont.h)
-
-Adds more statistics to the filling algorithm. (gxfill.c)
-
-Adds an is_resource flag to fonts, to indicate that they originated from a
-resource rather than being embedded in an input file. (gxfont.h, gsfont.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.93"></a>Version 5.93 (beta) (9/11/99)</h2>
-
-<p>
-This is the next candidate for the 6.0 release. As with 5.92, all changes
-other than added documentation are bug fixes.
-
-<h3><a name="5.93_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - Every stream whose state includes any GC-traceable pointers must
-now have a set_defaults procedure that clears those pointers.
-
-</pre><h3><a name="5.93_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - There was an extra /ul tag. (doc/Release.htm)
- - Fontmap.GS wasn't mentioned as needing to be installed.
-(doc/Install.htm)
- - Some documentation for the handling of seac was incorrect.
-(gxtype1.c)
-
-Removes references to installbsd, which are no longer relevant.
-(doc/Install.htm)
-
-Updates the information on building with NeXTSTEP. (doc/Make.htm)
-
-</pre><h3><a name="5.93_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The install command had unpredictably different syntax from one
-"standard" Unix system to another, causing `make install' to fail. We
-replaced the install command with our own script. (instcopy, dvx-gcc.mak,
-unix-gcc.mak, unixansi.mak, unixtrad.mak)
-
-</pre><h3><a name="5.93_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - pcharstr.ps loaded type1ops.ps with run rather than runlibfile,
-causing an error. (lib/pcharstr.ps)
-
-</pre><h3><a name="5.93_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - Attempting to embed a font whose Encoding included characters not
-present in the font produced invalid output. (gdevpsd1.c)
- - Allocating a stream state didn't (automatically) clear all its
-internal pointers, possibly causing GC memory access errors. (gdevpsds.c)
- - An #include of string_.h should have been memory_.h. (gdevpsdf.c)
-
-Disables compression for very small images. (gdevpsdi.c)
-
-</pre><h3><a name="5.93_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - Compiling gp_msio with MSVC's /MD switch caused a compile-time
-error. (gp_msio.c)
-
-</pre><h3><a name="5.93_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - A bookkeeping object was allocated with the wrong allocator,
-possibly causing access errors or garbage output. (gdevpdfu.c)
- - Certain Patterns weren't treated as such, leading to very large
-output files. (gdevpdfi.c)
- - If one of the base 14 fonts had a non-standard FontMatrix, the
-output disregarded this fact. This could cause double obliquing.
-(gdevpdfx.h, gdevpdff.c, gdevpdft.c)
- - Articles never got an object ID assigned. (bug introduced in
-5.91) (gdevpdfm.c)
-
-</pre><h3><a name="5.93_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Changes the PDF interpreter to allow abbreviated filter names like /Fl for
-all streams, not just in-line images. This directly contradicts the
-published PDF specification, but Acrobat Reader allows it.
-(lib/pdf_base.ps)
-
-</pre><h3><a name="5.93_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Compiled fonts were broken by the introduction of i_ctx_p.
-(lib/font2c.ps, ccfont.h, iccfont.c)
- - Allocating a stream state didn't (automatically) clear all its
-internal pointers, possibly causing GC memory access errors. (zfproc.c)
-
-</pre><h3><a name="5.93_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - Allocating a stream state didn't (automatically) clear all its
-internal pointers, possibly causing GC memory access errors. (scfx.h,
-slzwx.h, spngpx.h, strimpl.h, sbwbs.c, sdctc.c, seexec.c, sfilter1.c,
-siscale.c, szlibc.c)
- - The PNG predictor streams could fail to process some data at the
-end of the input. (spngp.c)
-
-</pre><h3><a name="5.93_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Some obsolete definitions for Turbo C could produce references to
-an undefined procedure (setmem) at link time. (memory_.h, string_.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.92"></a>Version 5.92 (beta) (9/2/99)</h2>
-
-<p>
-This is the next candidate for the 6.0 release. All changes other than
-added documentation are bug fixes.
-
-<h3><a name="5.92_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The News for 5.91 didn't include a summary. (doc/News.htm)
- - The documentation for Microsoft platforms didn't mention that you
-must add the Ghostscript bin and lib directories to the PATH. (doc/Use.htm)
-
-Adds a file describing Aladdin's process for building, testing, and
-releasing Ghostscript. (doc/Readme.htm, doc/Release.htm)
-
-</pre><h3><a name="5.92_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - Fontmap.GS is now required, but wasn't installed. (unixinst.mak)
- - A couple of documentation files weren't installed. (unixinst.mak)
-
-</pre><h3><a name="5.92_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The ps2pdf script for MS Windows used the wrong name for the
-executable. (lib/ps2pdf.bat)
-
-</pre><h3><a name="5.92_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - An uninitialized variable annoyed some compilers. (gdevpsdt.c)
- - The PostScript-writing driver used the wrong allocator, causing
-possible memory access errors. (gdevps.c)
- - The PostScript-writing driver didn't clear a pointer, causing
-possible GC errors. (gdevps.c)
- - The PostScript-writing driver didn't have a correct GC descriptor,
-causing pointers to be corrupted. (gdevpsdf.h, gdevps.c, gdevpsdf.c)
- - Embedded Type 1 fonts unnecessarily filled individual Encoding
-slots with /.notdef. (gdevpsd1.c)
- - A large constant produced warnings on some compilers. (gdevpsdt.c)
-
-</pre><h3><a name="5.92_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - Once again, gcc didn't complain about an ANSI-illegal extra
-semicolon in a declaration list. (gdevpdfo.h)
- - Adds a cast to work around the fact that some compilers declare
-the return type of memchr as char * rather than void *. (gdevpdfr.c)
- - The bookkeeping for whether a font had been written and freed was
-inverted, causing some fonts to be written many times and other fonts not to
-be written at all. (gdevpdf.c)
-
-</pre><h3><a name="5.92_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - More places needed workarounds for the alignment aliasing gcc bug.
-The bug only occurs if a pointer variable is dereferenced through a cast to
-a stricter alignment and then dereferenced later in its original form, so it
-doesn't affect very many places. (igc.c, igcref.c, isave.c)
-
-</pre><h3><a name="5.92_Streams"></a>Streams</h3><pre>
-
-Makes the stream GC descriptor public for subclassing. (stream.h, stream.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.91"></a>Version 5.91 (beta) (8/30/99)</h2>
-
-<p>
-This is the next beta for 6.0. It includes a major rewrite of the parts of
-the PDF writer that deal with resources and pdfmarks, as well as the usual
-bug fixes. There are still problems with embedded fonts, both TrueType
-(which sometimes don't show up at all) and Type 1 (which sometimes confuse
-Acrobat Reader 3).
-
-<h3><a name="5.91_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - An HTML tag was misplaced in the News file. (doc/News.htm)
-
-Notes that the Solaris FONTPATH scanning problem may be fixed.
-(doc/Use.htm)
-
-</pre><h3><a name="5.91_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - Many of the margin and width computations in ps2epsi.ps (not
-written by Aladdin) were wrong -- off by 1. It's only because the bugs
-masked each other or cancelled each other out that the code didn't produce
-errors more of the time. (lib/ps2epsi.ps)
-
-</pre><h3><a name="5.91_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - Font subset glyphs weren't sorted early enough, causing Type 1
-embedded fonts to be written with inconsistent lengths. (gdevpsd1.c)
-
-Changes the BMP drivers so that they set the resolution in the BMP header
-rather than leaving it at 0. This solves some problems reported by users,
-but may cause others. (gdevbmpc.c)
-
-</pre><h3><a name="5.91_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - A change made in 5.90 was incorrect (we couldn't test it, because
-MS Windows and OS/2 systems can't be used over a network). (gp_msio.c,
-gp_os2.c)
-
-Adds some conditionalization to work around a bug in some recent versions of
-gcc/egcs. (stdpre.h, interp.c)
-
-</pre><h3><a name="5.91_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - If the extension of a font file name on GS_FONTPATH included any
-upper-case characters, the font would not be found. (lib/gs_fonts.ps)
-
-Allows fontmaps to contain &lt;string&gt; run or .runlibfile, to get rid of the
-Fontmap -&gt; Fontmap.GS link that VMS can't handle. (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.91_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes problems:
- - Very long arguments for pdfmark caused an ioerror, because the
-buffer used for converting them was fixed-length. (lib/gs_pdfwr.ps)
- - pdfmarks couldn't refer to objects that hadn't been defined yet.
-(gdevpdfx.h, gdevpdfo.c)
- - When a DOCVIEW pdfmark added an OpenAction key to the Catalog,
-it omitted the / before the name. (gdevpdfm.c)
- - Font resources could be written in the middle of a page contents
-stream. (bug introduced in 5.90) (gdevpdff.c, gdevpdfu.c)
- - As usual, there were some signed/unsigned char * mismatches that
-gcc didn't detect. (gdevpdff.c, gdevpdfm.c, gdevpdfo.c)
- - Fonts used on a page but freed before the end of the page were
-omitted from the page's resource dictionary. (gdevpdfx.h, gdevpdf.c,
-gdevpdff.c, gdevpdft.c)
- - /D or /Dest keys in Action pdfmark dictionaries dropped the first
-character of their value. (gdevpdfm.c)
- - If a pdfmark added annotations to a page after the end of that
-page had been reached, those annotations would be lost. (gdevpdf.c)
- - ANN, LNK, DEST, and PS pdfmarks ignored the object name, if any.
-(Only OBJ and BP processed the name.) Unfortunately, fixing this required a
-complete overhaul of the way that resources and PDF objects were represented
-internally. The result is both simpler and more general, but it involved a
-major upheaval in the PDF writer code. (lib/gs_pdfwr.ps, gdevpdfo.h,
-gdevpdfx.h, gdevpdf.c, gdevpdff.c, gdevpdfi.c, gdevpdfm.c, gdevpdfo.c,
-gdevpdfr.c, gdevpdft.c, gdevpdfu.c)
- - EP pdfmarks didn't close any open text context. (gdevpdfm.c)
-
-Adds debugging code to check the consistency of the embedded Type 1 font
-writer. (gdevpdff.c)
-
-Makes /A and /F at the top level of an annotation or outline pdfmark
-equivalent to /Action and /File respectively. See the code for more
-information. (gdevpdfm.c)
-
-</pre><h3><a name="5.91_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Degenerate Bezier curves could cause a division by zero.
-(gxpcopy.c)
- - Some macros used in non-FPU configurations were missing some
-needed uses of const, and in one case an additional cast. (gxfarith.h,
-gxfixed.h)
-
-Changes the discard macro to upper-case. (stdpre.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.90"></a>Version 5.90 (beta) (8/20/99)</h2>
-
-<p>
-This is the first real candidate for the 6.0 release. It does not fix all
-known bugs, but it includes all planned functionality. New in this fileset:
-<ul>
-<li> - FunctionType 4 for PDF files.
-<li> - Alternate printer images for PDF files (-dUsePrinterImages
- switch).
-<li> - pdfwrite support for PDF "Cos objects" (without compression for
- streams).
-<li> - pdfwrite support for graphics objects named with BP/EP/SP
- (without compression for the object definition).
-<li> - pdfwrite font subsetting and embedded TrueType fonts.
-</ul>
-
-<h3><a name="5.90_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - ref_stack_init now takes an additional argument.
- - no_time_slice_proc is removed -- use 0 instead.
-(Library)
- - Notification client procedures and the gs_notify_ procedures
-take different arguments.
- - The common part of a gs_function_t structure has changed.
- - gs_text_enum_init now returns a value that can indicate an error.
- - The font font_info procedure now takes an additional argument.
- - The IODevice open_device procedure is now defined as returning
-0 or 1 under specific circumstances.
- - gxp1fill.h is renamed gxp1impl.h.
- - Allocators now have an additional procedure they must implement,
-and a state member they must initialize.
- - Most of the gs..basic.. structure definition macros have been
-renamed. The ptrs1_stringsN structure definition macros are removed.
- - Implementations of the text API now must provide a resync
-procedure rather than a restart procedure.
-
-</pre><h3><a name="5.90_Documentation"></a>Documentation</h3><pre>
-
-Documents the new -dUsePrinterImages switch, and the expanded meaning of
--Z~. (doc/Use.htm)
-
-Updates FSF's address in documentation. (lib/Fontmap.GS, lib/Fontmap.Sol,
-gdevcd8.c)
-
-Brings the PDF writer (ps2pdf) documentation up to date. (doc/Ps2pdf.htm)
-
-Updates the current-release documentation. (doc/Current.htm,
-doc/Readme.htm)
-
-Updates the problem-reporting procedure for contributed drivers, and some
-other new-user information. (doc/New-user.htm)
-
-</pre><h3><a name="5.90_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Because of a typo, the file gs_mgl_e.ps wasn't installed (on Unix
-systems) by 'make install'. (unixinst.mak)
- - The .dev files for drivers didn't depend on devs.mak. (devs.mak)
- - The X driver didn't include a needed dependency on the bbox
-device. (devs.mak)
-
-Incorporates the pdfmin package into the pdf package, since pdfmin was only
-provided for very small-memory environments and is no longer useful.
-(int.mak)
-
-Adds additional prototype-checking switches, which are important on 64-bit
-platforms and useful on all platforms, to the gcc compilation line.
-(unix-gcc.mak)
-
-</pre><h3><a name="5.90_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - A backquote was misplaced in the Unix ps2pdf script. (lib/ps2pdf)
- - Some example files didn't have %! headers. (examples/alphabet.ps,
-examples/waterfal.ps)
- - ansi2knr didn't handle preprocessor directives within a function
-header. (ansi2knr.c)
-
-Cleans up some minor compiler complaints. (genarch.c, genconf.c, echogs.c)
-
-</pre><h3><a name="5.90_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PostScript writer sometimes failed to reset the clip path,
-causing parts of the output to be omitted or to appear incorrectly.
-(gdevvec.c)
- - There was a type mismatch in a conditional. (gdevxini.c)
- - A constant array wasn't declared as static. (gdevpsdt.c)
- - Once again, there were some signed / unsigned char mismatches that
-gcc apparently can't be forced to detect. (gdevpsdt.c)
- - The alternative X drivers didn't have GC descriptors, which could
-lead to memory corruption. (gdevxalt.c)
- - The alternative X drivers didn't handle the closing of the
-underlying X driver correctly, leading to a dangling pointer. (gdevxalt.c)
- - Font subsetting didn't eliminate duplicate glyphs (glyphs
-referenced more than once from the Encoding vector.) (gdevpsd1.c,
-gdevpsdt.c)
- - Type 1 font subsetting didn't ensure the presence of .notdef.
-(gdevpsd1.c)
- - The embedded TrueType font writer wrote all 16-bit values
-incorrectly. This could explain a lot! (gdevpsdt.c)
-
-Cleans up public functions with no previous prototype. (gdevtfax.h,
-gdevx.h, gdevdfax.c, gdevtfax.c, gdevx.c, gdevxini.c, gdevxxf.c)
-
-Adds some procedures to support font subsetting. (gdevpsdf.h, gdevpsdf.c)
-
-Adds an alternate font name for writing TrueType fonts. (gdevpsdt.c)
-
-Makes the TrueType font writer generate an OS/2 table, a Macintosh cmap, and
-a name table (for the font name), as well as a Windows cmap and post, if
-necessary. (gdevpsdf.h, gdevpsdt.c)
-
-</pre><h3><a name="5.90_Platforms"></a>Platforms</h3><pre>
-
-Updates a couple of clients for the change in the IODevice open_device
-procedure, eliminating some undesirable externs. (gp_msio.c, gp_os2.c)
-
-</pre><h3><a name="5.90_Fonts"></a>Fonts</h3><pre>
-
-Adds OS/2 and maxp to the list of tables that must be preserved when loading
-TrueType fonts. (lib/gs_ttf.ps)
-
-Registers the complete lists of glyphs in the Adobe Latin fonts as
-pseudo-encodings. (lib/gs_lgo_e.ps, lib/gs_lgx_e.ps, unixinst.mak)
-
-</pre><h3><a name="5.90_PDF_writer"></a>PDF writer</h3><pre>
-
-Fixes bugs:
- - One built-in font was sometimes substituted for another.
-(gdevpdff.c)
- - Use of composite fonts often produced a rangecheck error.
-(gdevpdft.c)
- - The structures for named objects were freed twice. (gdevpdfx.h,
-gdevpdf.c, gdevpdfo.c)
- - The code to avoid writing a blank between a Td command and
-following text was fragile and still incorrect after being "fixed" twice.
-We removed this minor optimization, at a small cost in file size when not
-compressing. (gdevpdft.c)
- - No Names tree was generated for named destinations specified as
-strings. Rather than do this, we now convert string destinations to names.
-This doesn't scale up well, but it is simple and also is compatible with all
-PDF versions from 1.1 on. (gdevpdfm.c)
- - Fonts that define characters incrementally, such as the TrueType
-fonts written by some versions of the AdobePS Windows driver, could omit
-characters if embedded. Fixing this required delaying writing out fonts
-until the font was about to be freed or the writer was closed. (gdevpdfx.h,
-gdevpdff.c, gdevpdft.c)
-
-Cleans up public functions with no previous prototype. (gdevpdfx.h,
-gdevpdf.c, gdevpdfm.c)
-
-Updates client code for the change in gs_text_enum_init. (gdevpdft.c)
-
-Makes some changes towards handling show operations that must be split up
-internally into multiple operations using different fonts. (gdevpdfx.h,
-gdevpdff.c, gdevpdft.c)
-
-Implements the PUT pdfmark for the built-in objects (Catalog, DocInfo,
-Page<#>, ThisPage, PrevPage, NextPage). This required deferring writing out
-page objects until the end of the document. (lib/gs_pdfwr.ps, gdevpdfx.h,
-gdevpdf.c, gdevpdff.c, gdevpdfm.c, gdevpdfo.c, gdevpdfu.c)
-
-Adds table entries, but not parsing, checking, or functionality, for the new
-Acrobat 4 pdfmarks related to document logical structure. (gdevpdfm.c)
-
-Implements stream-type Cos objects. (lib/gs_pdfwr.ps, gdevpdfx.h,
-gdevpdf.c, gdevpdfm.c, gdevpdfo.c, gdevpdfp.c, gdevpdfu.c)
-
-Implements BP/EP/SP pdfmarks. (gdevpdfx.h, gdevpdf.c, gdevpdfi.c,
-gdevpdfm.c)
-
-Changes enumeration and #defined names to upper case, and adds _t to type
-names. (gdevpdfx.h, gdevpdf*.c)
-
-Adds an OS/2 table for embedded fonts if missing. (gdevpdff.c)
-
-Makes the allocator for the PDF device's internal structures be the stable
-allocator of the device's allocator, not the C heap. This required
-correcting a number of GC descriptors. (gdevpdfx.h, gdevpdf.c, gdevpdfu.c)
-
-Replaces the text restart procedure with the new resync procedure.
-(gdevpdft.c)
-
-</pre><h3><a name="5.90_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Failure to find a font in the Resources dictionary signalled an
-/undefinedfont error (which does not exist) rather than /invalidfont.
-(lib/pdf_font.ps)
-
-Implements FunctionType 4 functions. (lib/pdf_draw.ps, zfunc4.c)
-
-Implements the -dUsePrinterImages switch to use "alternate" printer images
-when rendering. (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.90_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Some pointers were declared as ref * that actually could be
-ref_packed *, potentially confusing compilers that follow the new, stricter
-ANSI C rules about alignment aliasing. (idebug.h, idebug.c, igc.c,
-igcref.c, zmisc.c)
- - cshow didn't restore the root font after executing the procedure,
-producing incorrect results if the procedure did a setfont. (ichar.h,
-zcfont.c, zchar.c)
- - A needed const-breaking cast was omitted. (zmisc.c)
- - The memory validator could cause an unaligned access. (ilocate.c)
- - restore could free parts of the stacks that were still in use. We
-fixed this long-standing problem using the new concept of stable allocators.
-(interp.c)
-
-Moves the implementation of the abs operator to C, required for FunctionType
-4 support. (lib/gs_init.ps, zarith.c)
-
-Makes more operator procedures public, required for FunctionType 4 support.
-(zarith.c, zmath.c, zrelbit.c, ztype.c)
-
-Adds an additional parameter to ref_stack_init, to allow creating a
-temporary stack without having an allocator. (istkparm.h, istack.h,
-interp.c, istack.c)
-
-Cleans up public functions with no previous prototype. (files.h, ichar.h,
-icstate.h, ifilter2.h, ifrpred.h, ifwpred.h, igcstr.h, iimage.h, iimage2.h,
-iinit.h, imain.h, interp.h, iscanbin.h, ivmem2.h, oparc.h, opextern.h,
-icontext.c, igc.c, iinit.c, imain.c, inobtokn.c, interp.c, iscan.c,
-iscanbin.c, zchar.c, zcharout.c, zcolor.c, zcolor1.c, zcontrol.c, zdevice.c,
-zdpnext.c, zdps.c, zfdecode.c, zfile.c, zfilter2.c, zfont0.c, zfunc0.c,
-zfunc3.c, zfzlib.c, zgeneric.c, zht1.c, zht2.c, zimage.c, zimage2.c,
-ziodev.c, zmath.c, zpath1.c, zupath.c, zusparam.c, zvmem.c, zvmem2.c)
-
-Updates client code for the tweak in the definition of the IODevice
-open_device procedure. (ziodev.c)
-
-Implements stable local and global VM allocators. This required changing
-more places than we would have liked. (ialloc.c, igc.c, ilocate.c, imain.c,
-interp.c, ireclaim.c, isave.c, zcontext.c)
-
-Removes the global member of gs_ref_memory_t, since it isn't used.
-(gxalloc.h, ialloc.c, zcontext.c)
-
-Adds more tracing to the relocation phase of the garbage collector.
-(igcref.c)
-
-</pre><h3><a name="5.90_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - jpeg_open_backing_store no longer had the correct arguments.
-(This had no effect in practice, since the procedure was never called.)
-(sjpegc.c)
-
-Cleans up public functions with no previous prototype. (scfdgen.c,
-scfetab.c, sjpegc.c, slzwce.c, slzwd.c, stream.c)
-
-Adds some tracing to the image scaling stream. (siscale.c)
-
-</pre><h3><a name="5.90_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A null OutputFile name could cause an error. (gxdevice.h,
-gsdevice.c, gsfname.c)
- - Shading with non-monotonic Functions produced incorrect output.
-(gxshade1.c)
- - An #undef didn't match the #define it was supposed to cancel.
-(gxchar.c)
- - The default next_char_glyph procedure didn't handle FROM_CHARS or
-FROM_SINGLE_CHAR data sources. (gstext.c)
- - When finalizing a forwarding device, the target pointer in the
-device wasn't cleared, leading to an incorrect attempt to access it later.
-(gdevnfwd.c)
- - Interpolated images were broken, probably since 5.81.
-(gxiscale.c)
- - Some color space implementation procedures hadn't been updated to
-add 'const' to the color space argument. (gscie.c)
- - A constant had a signed/unsigned ambiguity on systems where
-sizeof(long) > 4. (gsccode.h)
- - The font font_info procedure didn't provide for scaling.
-(gxfont.h)
-
-Simplifies the notification mechanism to remove the concept of client and
-generating object. Registration now just takes a closure (procedure +
-opaque data); events pass the closure data and event data. (gsnotify.h,
-gsfont.c, gsnotify.c)
-
-Changes gs_notify_unregister so that it can unregister all registrations of
-a particular client rather than only one. (gsnotify.h, gsnotify.c)
-
-Adds support for "vanilla" Functions at the library level. (gsfunc.h,
-gsfunc.c)
-
-Adds some tracing for Functions. (gsfunc3.c)
-
-Redefines function monotonicity to indicate whether the function is
-increasing or decreasing, and implements monotonicity correctly for all
-FunctionTypes except 4. (gsfunc.h, gxfunc.h, gsfunc0.c, gsfunc3.c)
-
-Makes Type 0 fonts check that they are being used with a string, not a
-character or (a) glyph(s). (gxtext.h, gschar.c, gschar0.c, gstext.c,
-gxchar.c)
-
-Cleans up public functions with no previous prototype. (gdevmem.h,
-gpcheck.h, gscie.h, gserror.h, gsmemory.h, gxcie.h, gxcldev.h, gxclpath.h,
-gxcmap.h, gxcspace.h, gxfixed.h, gxfont0.h, gxp1fill.h [deleted],
-gxp1impl.h, math_.h, std.h, gconf.c, gdevdrop.c, gdevm1.c, gdevm2.c,
-gdevm4.c, gdevm8.c, gdevm24.c, gdevmr1.c, gdevmr2n.c, gdevprn.c, gsbittab.c,
-gscdef.c, gscie.c, gsciemap.c, gscspace.c, gscscie.c, gsdevmem.c,
-gsdparam.c, gshtscr.c, gsimpath.c, gsiodev.c, gsmisc.c, gsnorop.c, gspath.c,
-gspcolor.c, gsptype1.c, gsropc.c, gsutil.c, gxacpath.c, gxclist.c,
-gxcpath.c, gxi12bit.c, gxicolor.c, gxifast.c, gximono.c, gxiscale.c,
-gxp1fill.c, gxpath2.c)
-
-Gets rid of some remaining vestiges of 16-bit ints. (gdevm1.c, gsbitops.c)
-
-Adds procedures to register clients for notification when a font is freed.
-(gxfont.h, gsfont.c)
-
-Defines the IODevice open_device procedure as returning 1 if it opened a new
-stream, 0 if it returned an existing stream. This eliminates some awkward
-externs.
-
-Adds the concept of a stable allocator -- an allocator that allocates from
-the same heap and in the same VM space as another allocator, but is not
-subject to save and restore. (gsmemory.h, gsmemraw.h, gsalloc.c,
-gsmalloc.c, gsmemlok.c, gsmemret.c, gsnogc.c)
-
-Adds some new macros to make defining new kinds of fixed-format structures
-simpler. (gsstruct.h)
-
-Replaces the text processing restart procedure with a more general resync
-procedure, which can be used to restart partway through a string. We retain
-gs_text_restart for backward compatibility and general usefulness.
-(gstext.h, gxtext.h, gdevbbox.c, gstext.c, gxchar.c)
-
-Adds the Adobe Latin glyph sets as pseudo-encodings. (gsccode.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.88"></a>Version 5.88 (tester) (8/3/99)</h2>
-
-<p>
-This fileset adds the ability to reference and embed TrueType fonts in PDF
-output. Unfortunately, even though the resulting PDF files work fine with
-Ghostscript itself, Acrobat Reader apparently can't handle embedded TrueType
-fonts with non-standard Encodings. We hope to fix this problem during the
-6.0 beta test period.
-
-<p>
-This fileset also adds the ability to buffer X Windows output in a
-client-side bitmap. This is typically more efficient than trying to push
-many small commands through the X client/server knothole, especially if
-bitmap images or RasterOp are involved.
-
-<p>
-Some reported problems have been deliberately left unfixed: we will need
-every minute of the 13 days before the start of the 6.0 beta test period to
-implement the last few items of functionality scheduled for the 6.0 release,
-and we can fix problems (but not add functionality) during the beta test
-period.
-
-<h3><a name="5.88_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - The box_device member of the bbox device is replaced by the
-box_data member, with a different meaning.
- - The x_rect structure is removed; all uses are changed to
-gs_int_rect.
- - gdevpstr.h is renamed spprint.h.
- - The parameter printing procedures are moved from gdevpsdf.[hc] to
-spsdf.[hc].
- - Clients must now allocate gs_font* objects using gs_font_alloc or
-gs_font_base_alloc, not directly with gs_alloc_struct.
- - The first (vptr) argument of enum_ptrs procedures is now const *.
-EV_CONST is no longer defined.
- - The pep argument of enum_ptrs procedures is now enum_ptr_t *
-rather than const void **.
- - The font glyph_pieces procedure is replaced with an option for
-glyph_info.
- - The font encode_char procedure now takes an additional glyph_space
-argument.
- - The o_large flag in object headers is renamed o_alone; o_lmark and
-o_lsize no longer exist. The DO_LARGE and DO_SMALL macros for enumerating
-objects in a chunk are also removed.
-
-</pre><h3><a name="5.88_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - News entries since 5.72 had a missing &lt;li&gt; in the table of
-contents entry. (doc/News.htm)
- - gs_text_params_t still referred to REPLACE_X_WIDTHS and
-REPLACE_Y_WIDTHS rather than REPLACE_WIDTHS. (gstext.h)
-
-Clarifies that the font glyph_outline procedure must append a final moveto
-for the advance width. (gxfont.h)
-
-Clarifies that the font enumerate_glyph procedure enumerates glyphs in an
-unpredictable order. (gxfont.h)
-
-Documents that reference counted freeing procedures for structures with
-finalization must free the structure itself first rather than last.
-(gsrefct.h)
-
-Updates documentation on building Ghostscript on MS-DOS and MS Windows.
-(doc/Make.htm)
-
-Adds some documentation on how the makefiles are / should be structured.
-(doc/Source.htm)
-
-Documents the new parameters for the X driver. (doc/Use.htm)
-
-Updates the language documentation to refer properly to PostScript
-LanguageLevel 3 and PDF 1.3. (doc/Language.htm)
-
-</pre><h3><a name="5.88_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - An omitted space in a makefile caused an incompatibility with the
-VMS build utilities. (lib.mak)
- - The gsindent script was omitted from the fileset. (gsindent)
- - The core library didn't include stream.c, which is now required.
-(lib.mak)
- - The workaround for the peculiarities of the Watcom compiler's
-command line syntax didn't work. (zlib.mak)
- - A DOS command line overflowed in the makefile. We patched this by
-deleting the bmpgray device from the Borland Windows platform.
-(bcwin32.mak)
-
-Provides a .lnk file required by the revised linking procedures on MS
-Windows. (gsdll32w.lnk)
-
-Straightens out the Watcom makefiles so that it is possible to build a
-Windows executable and DLL using the Watcom compiler. This required moving
-some parameters around in the other PC makefiles. (bcwin32.mak,
-msvccmd.mak, watc.mak, watcw32.mak, wccommon.mak, winint.mak, winlib.mak)
-
-</pre><h3><a name="5.88_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The X driver reported the wrong parameter name for errors in the
-value of the WindowID or .IsPageDevice parameter. (gdevxini.c)
- - The X driver calculated the Y window dimension incorrectly when
-resizing the window if X and Y resolutions were different. (Never happens
-in practice.) (gdevxini.c)
- - The bmpasep8 device was defined as gx_device_printer rather than
-gx_device_async. (gdevbmpa.c)
- - Some casts between signed and unsigned char * were missing.
-(gdevpdff.c, gdevpdft.c)
- - The PDF writer didn't handle reencoded characters properly in
-non-embedded fonts. (gdevpdfx.h)
- - The PDF writer allocated new structures while being closed,
-causing memory corruption if the close procedure was called for
-finalization. (gdevpdff.c, gdevpsd1.c)
- - The PDF writer tried to close the resource file twice. (bug
-introduced since 5.50) (gdevpdf.c)
- - The PDF writer failed to work around a bug in Acrobat 3 Reader's
-Print function related to re-encoded fonts. (gdevpdft.c)
- - The PDF writer incorrectly specified ASCII85Encode rather than
-ASCII85Decode for non-binary embedded fonts. (gdevpdff.c)
- - The PDF writer didn't handle embedded fonts with a non-standard
-FontMatrix correctly. (gdevpdft.c)
- - The PDF writer didn't handle reassigned characters correctly.
-(gdevpdft.c)
- - When embedding a Type 1 font, the PDF writer didn't check that the
-font contains only CharStrings (no PostScript procedures), no non-standard
-OtherSubrs, and no CDevProc. (gdevpsd1.c)
- - There was an unused label in the mswinpr2 driver. (gdevwpr2.c)
- - The X driver didn't flush buffered output before reading back
-bits from the display. (gdevx.c)
- - The X driver still didn't set up the color mapping tables
-correctly -- in particular, it didn't initialize cman.color_to_rgb before
-setting up the dither ramp or cube. This is at least the third time we have
-"fixed" this problem. (gdevxcmp.c)
-
-Removes the remaining uses of gs_malloc, gs_free, and gs_memory_default from
-Aladdin's non-display drivers. (gdevbit.c, gdevbmp.c, gdevbmpa.c,
-gdevcgm.c, gdevclj.c, gdevcljc.c, gdevdjet.c, gdevlj56.c, gdevmiff.c,
-gdevpbm.c, gdevpcx.c, gdevpng.c, gdevpsim.c, gdevtfax.c, gdevtfnx.c,
-gdevxalt.c)
-
-Adds a MaxBitmap parameter to the X driver: the driver will maintain a
-full-window pixmap in memory if it requires no more space than MaxBitmap.
-The default value of this parameter is 0, meaning never use a client-side
-bitmap. (gdevx.h, gdevx.c, gdevxini.c, gdevxxf.c)
-
-Moves the X device closing and get/put parameters procedures from gdevx.c to
-gdevxini.c. (gdevx.c, gdevxini.c)
-
-Removes some remaining uses of gs_malloc and gs_free from the X driver.
-Note that this requires making the X device structure properly
-garbage-collectable. (gdevx.h, gsstruct.h, gdevxini.c)
-
-Removes the remaining uses of 'register' from the X driver. (gdevx.c,
-gdevxini.c)
-
-Removes the remaining uses of the obsolete far_data keyword from Aladdin's
-non-PC drivers. (gdevbmp.c, gdevbmpa.c, gdevcgm.c, gdevlj56.c, gdevmiff.c,
-gdevp2up.c)
-
-Improves the X driver's algorithm for deciding when to update the screen,
-and makes its parameters available for reading and setting. (gdevx.h,
-gdevx.c, gdevxini.c)
-
-In the X driver's color mapper, improves performance slightly by replacing
-multiplies and divides with shifts and table lookups in the normal case of
-standard color maps. (gdevxcmp.h, gdevxcmp.c)
-
-Moves some filter-related code from the driver level to the stream level.
-(gdevpsdf.c)
-
-Moves some utilities for printing values in ASCII form from the driver level
-to the stream level. (devs.mak, gdevpdfx.h, gdevpstr.h [deleted], gdevps.c,
-gdevpsde.c, gdevpsdf.c, gdevpsdp.c, gdevpstr.c [deleted])
-
-Upgrades the PDF writer to handle TrueType fonts as well as Type 1.
-(gdevpdfx.h, gdevpsdf.h, gdevpdff.c, gdevpdft.c, gdevpsde.c => gdevpsd1.c,
-gdevpsdt.c)
-
-Starts to implement font subsetting in the PDF writer. (gdevpdfx.h,
-gdevpsdf.h, gdevpdff.c, gdevpsd1.c, gdevpsdt.c)
-
-Partially implements WMode when writing font descriptors. (gdevpdff.c)
-
-Changes psdf_binary_writer so that adding the ASCII85 filter in
-psdf_begin_binary doesn't require allocating any memory. (gdevpsdf.h,
-gdevpsdf.c)
-
-Makes the PDF writer guess the Ascent and StemV values for embedded fonts
-when it can't determine them by examining the font. (gdevpdff.c)
-
-Makes the PDF writer able to handle xshow and yshow (TEXT_REPLACE_WIDTHS).
-(gdevpdft.c)
-
-Updates code to reflect the addition of glyph_space to the font encode_char
-and enumerate_glyph procedures. (gdevpsdf.h, gdevpdff.c, gdevpdft.c,
-gdevpsd1.c, gdevpsdf.c, gdevpsdt.c)
-
-Removes some unnecessary #includes. (gdevxres.c)
-
-Removes the sample driver-based CRD from the variant X drivers, since this
-created a pointless dependency. (The `bit' drivers still provide this
-feature, for testing.) (gdevxalt.c)
-
-Changes the default compatibility level of PDF output from 1.2 (Acrobat 3)
-to 1.3 (Acrobat 4). (gdevpdf.c)
-
-</pre><h3><a name="5.88_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - A comment included an extra /*. (gp_mswin.c)
- - The definitions for min and max in a couple of files disagreed
-with the ones typically provided in system header files. (dwimg.cpp,
-dwtext.cpp)
-
-Removes some unnecessary code related to generating temporary file names.
-(gp_iwatc.c)
-
-</pre><h3><a name="5.88_Fonts"></a>Fonts</h3><pre>
-
-Changes the loader for TrueType fonts to keep the 'instructions', which are
-required if the font is going to be written out in a PDF file.
-(lib/gs_ttf.ps)
-
-Adds some more debugging output to the TrueType font loader.
-(lib/gs_ttf.ps)
-
-Registers the MacGlyphEncoding so it can be made available to the PDF
-writer. (lib/gs_mgl_e.ps, lib/gs_ttf.ps, unixinst.mak, gsccode.h, ifont.h)
-
-</pre><h3><a name="5.88_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The serif and small-caps flags in the FontDescriptor were ignored
-when doing font substitution. (lib/gs_fonts.ps, lib/pdf_font.ps)
- - The ri operator was undefined. We added a dummy definition.
-(lib/pdf_ops.ps)
- - The redefinitions of restore could cause a recursion loop.
-(lib/gs_fform.ps, lib/gs_lev2.ps)
- - There was an extra gsave executed for each page, causing the
-graphics state stack to grow deeper and deeper, which caused problems when
-wrapping up at the end of execution. (lib/pdf_main.ps)
-
-Implements the sh operator. (lib/pdf_draw.ps)
-
-Works around a bug in some PDF files generated by Adobe's PDF library (?),
-which attempt to create a font Encoding array with more than 256 elements.
-(lib/pdf_font.ps)
-
-</pre><h3><a name="5.88_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The GNU readline completion code (which Aladdin did not write) was
-completely wrong. (gp_gnrdl.c)
- - The top-level restore sometimes tried to restore global VM an
-extra time, leading to memory corruption. (bug probably introduced in 5.85)
-(isave.c)
- - The glyph_ref procedure was defined in two different places
-(inconsistently). (ichar.h, zchar.c, zchar1.c)
-
-Restructures the name table to improve cache coherence and to make it
-possible to store initial name strings in ROM. (iname.h, inamedef.h,
-inames.h, inamestr.h, igc.c, iname.c, isave.c)
-
-Changes the scanner so it doesn't copy name strings when scanning a compiled
-init string. This reduces RAM requirements by about 20K when using compiled
-initialization. (iscan.c)
-
-Removes redundant FontBBox correction code, since this is now handled by the
-library. (zfont42.c)
-
-Updates the Type 1 and Type 42 font code to implement the new font
-procedures. (icharout.h, zcharout.c, zchar1.c, zchar42.c, zfont1.c,
-zfont42.c)
-
-Simplifies the code that checks whether a grestore needs to do a
-setpagedevice. (zdevice2.c)
-
-Updates code to reflect the change of the vptr argument of enum_ptrs
-procedures to const *. (igcref.c)
-
-Updates code to reflect the change in the pep argument of enum_ptrs
-procedures to enum_ptr_t *. (igc.h, iscan.h, istruct.h, igc.c, igcref.c,
-ilocate.c, iscan.c)
-
-Updates code to reflect the addition of glyph_space to the font encode_char
-and enumerate_glyph procedures. (bfont.h, ifont.h, zbfont.c, zfont1.c,
-zfont32.c, zfont42.c)
-
-Cleans up some code details. (idebug.h, ifunc.h, iparray.h, istream.h,
-zfunc.c)
-
-Removes some no longer needed test code. (zfont1.c)
-
-Updates memory manager code to reflect the change from o_large to o_alone.
-(igc.c, igcref.c, ilocate.c, isave.c)
-
-Changes the printed font substitution message to be closer to what some
-Adobe products print if SHORTERRORS is defined. (Thanks to Andrew Chilvers
-for the suggestion.) (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.88_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The fix in 5.85 for ASCII85Encode EOLs was wrong and caused a word
-of data to be dropped occasionally. (sfilter2.c)
-
-Moves some filter-related code from the driver level to the stream level.
-(stream.h, stream.c)
-
-Moves some utilities for printing values in ASCII form from the driver level
-to the stream level. (lib.mak, spprint.h, spsdf.h, spprint.c, spsdf.c)
-
-Adds some more tracing output for image scaling. (siscale.c)
-
-</pre><h3><a name="5.88_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The bbox device's check for whether a rectangle filled the entire
-page was wrong. (gdevbbox.c)
- - The bbox device didn't correctly handle parallelograms, triangles,
-or thin lines with points specified in other than ascending order.
-(gdevbbox.c)
- - The bbox device smashed the reference count of the text enumerator
-it created, causing a memory leak. (gdevbbox.c)
- - The bbox device didn't copy back all the dynamic information from
-a subsidiary text enumerator, with unpredictable results. (gxtext.h,
-gdevbbox.c, gstext.c)
- - The default implementation of glyph_info for fonts incorrectly
-reported that it returned values for all members, not just the ones it knew
-about. (gsfont.c)
- - The profiling implementation of memset was incorrect, leading to
-memory smashing. (gsmisc.c)
- - The default implementation of glyph_info had a memory leak.
-(gsfont.c)
- - The default implementation of character rendering didn't correctly
-handle the case where the character was in the cache and only the character
-width was requested. (gxchar.c)
- - Text processing didn't correctly handle REPLACE_WIDTHS if the X
-and Y width arrays were different. (The PostScript interpreter never does
-this.) (gstext.h, gstext.c, gxchar.c)
- - Compositing devices weren't initialized properly, leading to
-invalid accesses. This is the last (?) bit of the device reference counting
-bug tail. (gsalphac.c, gsropc.c)
-
-Changes the bbox device to make the procedures for managing the bounding box
-virtual, so the X device can be a subclass. (gdevbbox.h, gdevbbox.c)
-
-Changes the bbox device so it always adds the bounding box after doing the
-drawing operation rather than before, for the benefit of the buffering X
-device. (gdevbbox.c)
-
-Removes some remaining uses of gs_memory_default. (gdevdrop.c)
-
-Removes all uses of the obsolete far_data keyword from the library.
-(gconf.c, gdevbbox.c)
-
-Changes the bbox device so it doesn't run drawing algorithms twice if it has
-a target that uses the default implementation. (gdevbbox.c)
-
-Speeds up the implementation of fill_rectangle for 16-bit memory devices.
-(gdevm16.c)
-
-Makes TrueType fonts implement the new font procedures. (gxfont42.h,
-gxmatrix.h, gsmatrix.c, gstype42.c)
-
-Adds a gs_id to gs_font objects, so that fonts with the same name can be
-distinguished reliably without relying on the address. (gxfont.h, gsfont.c)
-
-Makes the vptr argument of enum_ptrs procedures be const *. This is a
-long-overdue change. (gsstype.h, gxxfont.h, gsalloc.c, gsfont.c,
-gsmemory.c) ****** REDO THE CONST-BREAKING CASTS IN gsfont.c ******
-
-Changes the pep argument of enum_ptrs from const void ** to enum_ptr_t *, to
-get rid of some hacks in enum_ptrs implementations that had to construct
-temporary gs_strings. (gsstruct.h, gsstype.h, gstext.h, gsalloc.c,
-gscolor2.c, gsfont.c, gsmemory.c, gstext.c)
-
-Adds a general mechanism that provides for an arbitrary number of clients to
-be notified when an event occurs. For the moment, we only use it to notify
-PDF writers when a font is about to be freed. (gsnotify.h, gsnotify.c)
-
-Makes fonts use the new notification mechanism to notify clients when the
-font is about to be freed. (gxfont.h, gsfont.c)
-
-Adds a gs_text_set_cache procedure to parallel restart and retry.
-(gstext.h, gxtext.h, gstext.c)
-
-Adds a glyph_space argument to the font encode_char and enumerate_glyph
-procedures, so that clients can choose between glyph names and glyph indices
-in environments that use both. (gsccode.h, gxchar.h, gxfont.h, gxfont42.h,
-gsfont.c, gstype42.c, gxchar.c)
-
-Changes the bbox device so it optionally considers white to be opaque.
-(gdevbbox.h, gdevbbox.c)
-
-Cleans up some code details. (gshsb.h)
-
-Adds a hack to suppress warning messages from the Watcom compiler about
-testing constant values. (stdpre.h)
-
-Replaces the glyph_pieces font procedure with a GLYPH_INFO_PIECES option for
-glyph_info. (gxfont.h, gxfont42.h, gsfont.c, gstype42.c)
-
-Adds a font_info font procedure, similar to glyph_info but giving
-information about the font as a whole. (gxfont.h)
-
-In order to fix a bug in resizing large objects, gets rid of the concept of
-large objects entirely, replacing it with the concept of an 'alone' object
-that is guaranteed to be the only object in its chunk. (gxalloc.h, gxobj.h,
-gsalloc.c)
-
-Adds some more tracing output for interpolated images. (gxiscale.c)
-
-Adds a _long parameter setting procedure to parallel _bool, _enum, and _int.
-(gsparamx.h, gsparamx.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.87"></a>Version 5.87 (tester) (6/29/99)</h2>
-
-<p>
-In this fileset, the pdfwrite device finally handles general Type 1 fonts,
-and can write them in both embedded and non-embedded form. This fileset
-also contains a few more changes to the text API, and some incompatible
-changes to the gs_font procedure vector: more such changes are likely. It
-also fixes a couple of long-standing pdfmark bugs.
-
-<p>
-NOTE: there are known problems in PDF output with non-embedded fonts (fonts
-represented only by a descriptor): some characters will be missing, and
-because of bugs in Acrobat's Print function, even more characters will be
-missing or wrong when printing from Acrobat. We will fix our problems, and
-work around Acrobat's bugs, in the next couple of filesets.
-
-<h3><a name="5.87_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - Text enumerators now have a release procedure.
- - gx_device_text_begin no longer stores its arguments into the
-enumerator: the driver text_begin procedure must do this.
- - The argument list for the font encode_char procedure no longer
-includes the enumerator, and the second argument is now a gs_char rather
-than a gs_char *.
- - The font next_char procedure is removed. (It has been obsolete
-for a while.) The next_glyph procedure is renamed next_char_glyph.
- - The first argument of the font init_fstack, build_char, and
-next_glyph procedures is changed from gs_show_enum * to gs_text_enum_t *.
- - gx_font_stack[_item] is renamed gx_font_stack[_item]_t.
- - New font procedures have been added, of which two (enumerate_glyph
-and glyph_outline) are required. The font procedure vector has been
-reorganized.
- - The Type 1 font next_glyph procedure is replaced by the gs_font
-enumerate_glyph procedure.
- - psdf_embed_type1_font is renamed psdf_write_type1_font, and has
-an additional argument.
- - psdf_alloc_param_printer takes slightly different arguments;
-print_binary_ok and print_ASCII85_ok are now upper-case.
-
-</pre><h3><a name="5.87_Documentation"></a>Documentation</h3><pre>
-
-Reorganizes the driver API documentation slightly, documents the fact that
-get_alpha_bits and draw_line are obsolete, and documents the driver text
-API. (doc/Drivers.htm)
-
-Documents an additional Irix configuration where the compiler doesn't work.
-(doc/Make.htm)
-
-</pre><h3><a name="5.87_Procedures"></a>Procedures</h3><pre>
-
-Moves the %pipe% IODevice into lib.mak, since it is now included on Windows
-as well as Unix. (lib.mak, unix-aux.mak)
-
-Adds the bmpgray driver to all platforms that include the other BMP drivers.
-(bcwin32.mak, msvc32.mak, os2.mak, unix-gcc.mak, watc.mak, watcw32.mak)
-
-</pre><h3><a name="5.87_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The PS and PDF writers didn't maintain the font embedding lists
-correctly. (gdevpsdp.c)
- - The CreationDate in PDF output was always set to the current date,
-and couldn't be set with a pdfmark. We now don't set CreationDate at all,
-since it is supposed to be the creation date of the original document, not
-of the PDF file. (gdevpdfm.c, gdevpdfu.c)
- - The Producer in PDF output couldn't be set with a pdfmark.
-(gdevpdfx.h, gdevpdf.c, gdevpdfm.c, gdevpdfu.c)
- - pdfmarks with /Action /GoTo incorrectly retained the Action key.
-(gdevpdfm.c)
- - pdfmarks didn't substitute /Dest => /D or /File => /F correctly.
-(gdevpdfm.c)
-
-Updates the PDF writer to use the new text API rather than the show
-pseudo-parameter. (gdevpdfx.h, gdevpdf.c, gdevpdfp.c, gdevpdft.c)
-
-Changes pdf_open_document so that it opens the document even if some
-resources have been allocated. (gdevpdf.c)
-
-Splits off pdfwrite utilities from top-level control, since the file was
-getting too big. (gdevpdfx.h, gdevpdf.c, gdevpdfu.c)
-
-When writing PDF, avoids resetting the word spacing parameter if the string
-doesn't contain any spaces, and the character spacing parameter if the
-string has no more than 1 character. (gdevpdft.c)
-
-Splits off PDF font handling from text handling, since the file was getting
-too big. (gdevpdfx.h, gdevpdff.c, gdevpdft.c)
-
-Implement both embedded and non-embedded fonts beyond the base 14 in the PDF
-writer. This code doesn't work very reliably yet. (gdevpdfx.h, gdevpdff.c,
-gdevpdft.c)
-
-Adds a bmpgray driver that produces 8-bit gray-scale output. (devs.mak,
-gdevbmp.c)
-
-Updates the PDF writer for changes in the gs_font procedure vector.
-(gdevpdff.c, gdevpdft.c)
-
-Updates the Type 1 font writer for changes in the gs_font procedure vector,
-and adds some output options. (gdevpsdf.h, gdevpsde.c)
-
-Changes the printing parameter list implementation to take all of its
-parametric arguments in the params structure, and changes the names of the
-options. (gdevpsdf.h, gdevpsde.c, gdevpsdf.c, gdevpdff.c, gdevpdfi.c,
-gdevpdfu.c)
-
-</pre><h3><a name="5.87_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Indexed color spaces didn't allow the base space to be an indirect
-reference. (lib/pdf_draw.ps)
- - The CS and cs operators didn't accept a literal color space name
-(as opposed to a color space resource name). (lib/pdf_draw.ps)
- - Some PDF 1.2 files had a SM entry in graphics state dictionaries,
-even though this is not documented and requires a LL3 interpreter.
-(lib/pdf_draw.ps)
- - Generated font names included a % character, which could cause
-problems for ps2pdf. (lib/pdf_font.ps)
-
-</pre><h3><a name="5.87_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The calculation of the final index when enumerating the pointers
-in a context state was incorrect. (source bug only, no effect on execution)
-(icontext.c)
-
-Updates the interpreter's glue code for the changes in the PDF writer.
-(lib/gs_pdfwr.ps)
-
-Updates a client to use gs_font_alloc. (zbfont.c)
-
-Updates clients for changes in the gs_font procedure vector. (zbfont.c,
-zchar1.c, zfont0.c, zfont1.c, zfont32.c)
-
-Updates a client for the change to psdf_write_type1_font. (zfont1.c)
-
-</pre><h3><a name="5.87_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Some code used rc_decrement_only instead of gx_device_retain.
-(Stylistic bug only.) (gschar.c)
- - The finalize procedure for the character cache device could get
-unset and/or the retained flag cleared, leading to a reference count not
-getting decremented. (gxccman.c)
- - Allocating a show enumerator didn't clear the show_gstate member.
-(Probably no effect in practice.) (gschar.c)
- - Cleaning up at the end of text processing was not consistent and
-sometimes didn't get done. The old API used explicit and separate client
-allocation (gs_show_enum_alloc), release (gs_show_enum_release), and freeing
-(gs_free_object); release, but not free, was automatic at the end of
-processing (in show_finish). The new API has allocation in gs_text_begin or
-gx_device_text_begin, no implicit release or free, and a single
-gs_text_release call to handle both release and free. Reconciling these
-required adding an auto_release flag in the gs_show_enum structure to
-indicate which API was used to create it, and a release procedure. (The
-auto_release flag is only needed for backward compatibility with clients
-that use the old API. Ghostscript itself no longer has such clients, but
-the PCL interpreters do.) (gxchar.h, gxtext.h, gdevbbox.c, gschar.c,
-gstext.c, gxchar.c)
- - We were burned once again by gcc's acceptance of private/public
-procedure mismatches. (gxchar.c)
- - A line break was missing between the return type and a procedure
-name. (gsstate.c)
- - Show enumerators had an incorrect GC descriptor. (gxchar.c)
- - Text enumerators didn't terminate their list properly. (gstext.c)
-
-Adds a debugging procedure that finds all the pointers to an object. This
-uses the GC's pointer enumeration procedures, so it will only work if all
-structures have correct GC descriptors. (Of course, we think this is true
-of all of Ghostscript.) The current implementation doesn't trace refs.
-(gsalloc.c)
-
-Removes remaining references from gxchar.c to procedures defined in
-gschar.c. The standard Ghostscript build now no longer needs gschar.c,
-although we will keep it for the moment for backward compatibility.
-(gschar.c, gxchar.c)
-
-Removes an obsolete reference to gs_show_enum. (gstype1.h)
-
-Adds definitions for the built-in encoding indices. (gsccode.h, gxfont.h,
-gxxfont.h)
-
-To make text_begin implementations callable, requires them, rather than
-gx_device_text_begin, to save their parameters in the enumerator structure.
-(gxtext.h, gstext.c, gxchar.c)
-
-Adds a TEXT_DO_CHARWIDTH alternative to the text operation, to just advance
-the current point by the character width (stringwidth rmoveto). (gscpm.h,
-gstext.h, gxchar.c, gxpath.c)
-
-Adds procedures to allocate and initialize fonts. (gxfont.h, gsfont.c)
-
-Starts to revise the gs_font procedure vector to create a real "font socket"
-API, adding several new procedures. This is a NON-BACKWARD-COMPATIBLE
-change, and there probably are more to come. (gxchar.h, gxfont.h, gsfont.c,
-gstext.c, gxchar.c)
-
-Moves the Type 0 font stack from gs_show_enum to gs_text_enum_t, and renames
-its types to gx_font_stack_[item_]t. Also moves cmap_code. (gxchar.h,
-gxtext.h, gschar0.c, gstext.c, gxchar.c)
-
-Moves the glyph enumeration procedure from Type 1 fonts to general fonts,
-changing its name to enumerate_glyph. (gxfont1.h)
-
-Changes the debugging code for reference counting to call procedures, to
-allow better breakpointing. (gsrefct.h, gsmemory.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.86"></a>Version 5.86 (tester) (6/14/99)</h2>
-
-<p>
-This fileset includes the first batch of changes for the new driver-based
-text API. Unfortunately, a few of them are non-backward-compatible.
-WARNING: This API is UNSTABLE and should not be used yet. This includes the
-APIs and structures in gxtext.h, and to a lesser extent those in gstext.h.
-
-<h3><a name="5.86_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - The default initialization of fonts now sets next_glyph rather
-than next_char.
-(Library)
- - The font argument of the driver text_begin procedure is no
-longer declared as const.
- - Text enumerators now have a is_width_only and current_width
-procedures; the restart procedure is renamed retry, and there is a new
-restart procedure that does something different.
- - The scale member of gs_text_enum_t is renamed log2_scale.
- - gs_show_restore_font is removed.
- - The current_char, current_glyph, width, and log2_current_scale
-members of gs_show_enum are removed (replaced by members of gs_text_enum_t).
- - The current_width member of gs_text_enum_t is removed.
- - Replaces TEXT_REPLACE_{X,Y}_WIDTHS with a single
-TEXT_REPLACE_WIDTHS.
-
-</pre><h3><a name="5.86_Documentation"></a>Documentation</h3><pre>
-
-Fixes a number of outdated URLs. (doc/Devices.htm, doc/Fonts.htm,
-doc/Install.htm, doc/Language.htm, doc/Make.htm, doc/New-user.htm)
-
-Documents the name change from gs_iso_e.ps to gs_il1_e.ps.
-(doc/Psfiles.htm)
-
-Documents the fact that a double % may be needed on MS systems.
-(doc/Use.htm)
-
-Documents that reversepath discards a trailing moveto, for compatibility
-with Adobe implementations. (gxpath2.c)
-
-</pre><h3><a name="5.86_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - Some punctuation was omitted that affects builds on VMS systems.
-(gs.mak)
- - 'make install' didn't install doc/History5.htm. (unixinst.mak)
- - The Borland makefile put some generated files in the top-level
-directory rather than the build directory. (bcwin32.mak)
-
-Updates the Unix install script for the name change of gs_iso_e.ps.
-(unixinst.mak)
-
-Moves the GNU-licensed drivers to a separate makefile. (contrib.mak,
-gnu/src/gnudevs.mak)
-
-Adds pipe.dev to the BC++, MSVC++, and OS/2 (GCC/EMX) platforms.
-(bcwin32.mak, dvx-gcc.mak, msvc32.mak, msvclib.mak)
-
-</pre><h3><a name="5.86_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems: - The usage message for pdf2ps was incorrect. (lib/pdf2ps,
- lib/pdf2ps.bat)
-
-</pre><h3><a name="5.86_Drivers"></a>Drivers</h3><pre>
-
-Removes all remaining uses of #define'd casts in connection with ENUM_PTRS
-and RELOC_PTRS procedures. (gdevpdf.c, gdevpdfo.c)
-
-Adds a user-contributed driver for the Oki Data OkiPage 4w+ LED printer.
-This is a GPL'ed driver. (contrib.mak, gnu/src/gdevop4w.c)
-
-</pre><h3><a name="5.86_Platforms"></a>Platforms</h3><pre>
-
-Adds a %handle% IODevice (mshandle.dev) to recognize file names of the form
-%handle%NNNNNNNN under MS Windows. GSview uses this feature in place of
-pipes, which are an open industry standard not supported by MS Windows.
-(msvc32.mak, winlib.mak, gp_mshdl.c)
-
-</pre><h3><a name="5.86_Fonts"></a>Fonts</h3><pre>
-
-Adds the ISO 8859-2 encoding to the stock of built-in encodings.
-(lib/gs_il2_e.ps, lib/gs_iso_e.ps => lib/gs_il1_e.ps)
-
-</pre><h3><a name="5.86_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Using a colored pattern with an uncolored Pattern color space
-caused an error. (lib/pdf_draw.ps)
- - Embedded CIDFontType 2 fonts didn't work, and embedded TrueType
-fonts did an extra definefont. (lib/gs_ttf.ps, lib/pdf_font.ps,
-lib/pdf_ops.ps) ****** IN PROGRESS ******
-
-</pre><h3><a name="5.86_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Some files hadn't been updated for the removal of the gs_imemory
-static. (int.mak, gp_gnrdl.c, imain.c, ztrap.c)
- - %statementedit could append a spurious character if the last
-character of the statement was not whitespace. (bug probably introduced in
-5.8x) (ziodev.c)
- - The show operators didn't properly handle the special case of
-executing within a cshow procedure for a non-CID font. (zchar.c)
- - cshow applied to a composite font didn't scale the current font
-correctly (in fact, at all). (zcfont.c)
- - If an error occurred within the procedure called by
-resourceforall, it wasn't reported. (lib/gs_res.ps)
- - flushfile and closefile didn't correctly handle filters that only
-write a fixed amount of data. (zfileio.c)
- - cshow didn't restore the font reliably after executing the
-procedure. (ichar.h, zcfont.c, zchar.c)
- - An execstackoverflow error might temporarily leave the execution
-stack in an invalid state. (interp.c)
-
-Cleans up some macros. (iname.c, isave.c, iscan.c)
-
-Removes all remaining uses of #define'd casts in connection with ENUM_PTRS
-and RELOC_PTRS procedures. (icontext.c, iname.c, isave.c, iscan.c,
-istack.c, zcontext.c, zfproc.c)
-
-Adds a run-time warning message if gp_gnrdl.c is included in a non-GNU
-build. (gp_gnrdl.c)
-
-Converts clients to use the gs_text procedures that replace the gs_show
-procedures, and to use gs_text_enum_t rather than gs_show_enum as the
-enumerator type. (ichar.h, zbfont.c, zcfont.c, zchar.c, zchar1.c,
-zchar32.c, zchar42.c, zcharout.c, zcharx.c, zfont.c, zfont0.c, zfont1.c,
-zfont32.c, zimage.c, zimage2.c)
-
-Updates the initialization code for the name change of gs_iso_e.ps.
-(lib/gs_init.ps)
-
-Splits off the definitions relating to name indices, in anticipation of
-defining some name indices statically. (inamedef.h, inameidx.h, iname.c)
-
-</pre><h3><a name="5.86_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The pixel-difference filters didn't initialize the previous sample
-to 0 at the beginning of each row. (spdiff.c)
- - The CCITTFaxDecode filter didn't correctly handle the case where
-the last code of a row occurred less than 7 or 8 bits before the end of the
-input stream. (scf.h, shc.h, scfd.c)
- - Flushing filters didn't work. (stream.c)
- - The DCTEncode filter gave an error if asked to write to a string
-with less than 100 bytes of free space left when the end of the input data
-was reached. (sdct.h, sdcte.c)
-
-Removes all remaining uses of #define'd casts in connection with ENUM_PTRS
-and RELOC_PTRS procedures. (stream.c)
-
-Changes the ASCII85Encode stream to reliably insert a newline at least once
-every 80 characters, rather than unreliably after at most 80 characters of
-data. (sfilter2.c)
-
-Cleans up some formatting. (stream.c)
-
-</pre><h3><a name="5.86_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - A client wasn't updated for the change in the declaration of
-gx_dht_proc. (bug introduced in 5.84) (genht.c)
- - When rendering a 12-bit-per-sample color image, the device color
-wasn't initialized, possibly causing a memory access error when comparing
-the current color with the previous one. (gxi12bit.c)
- - arch_floats_are_IEEE was incorrectly defined as
-arch_floats_are_ieee. (bug introduced in 5.83) (std.h)
- - Decoding of IEEE floats on non-IEEE systems was wrong. (ibnum.c)
- - The fast case of masked images in Pattern color spaces didn't
-work. (bug introduced since 5.50) (gxifast.c)
- - cshow gave an error if there was no current point. (gxchar.c)
-
-Replaces TEXT_REPLACE_{X,Y}_WIDTHS with a single TEXT_REPLACE_WIDTHS.
-(gstext.h, gstext.c)
-
-Cleans up some macros. (gdevddrw.c, gsfont.c, gsht1.c)
-
-Removes all remaining uses of #define'd casts in connection with ENUM_PTRS
-and RELOC_PTRS procedures. (gdevddrw.c, gdevplnx.c, gsalloc.c, gschar.c,
-gscolor.c, gscolor2.c, gscrd.c, gscsepr.c, gscspace.c, gsdevice.c, gsdsrc.c,
-gsfcmap.c, gsfont.c, gsfont0.c, gsht1.c, gshtscr.c, gsimage.c, gspcolor.c,
-gsptype1.c, gsstate.c, gstext.c, gxcmap.c, gxht.c, gxipixel.c, gxmclip.c,
-gxtype1.c)
-
-Adds gs_c_param_list_write_more, to switch a C parameter list back to write
-mode without clearing it. (gsparam.h, gscparam.c)
-
-Adds gs_grestore_only, to do a grestore without requiring 2 entries on the
-graphics state stack. (gsstate.h, gsstate.c)
-
-Completes a first bridge between the new driver text_begin procedure and the
-existing text API defined in gschar.h. The changes are backward-compatible
-for both clients of the APIs and (the few) implementors of text_begin,
-except that the font argument of text_begin is no longer const. Note that
-gschar.h is no longer used by any client, and in fact is deprecated.
-(gschar.h, gstext.h, gxfcache.h, gxtext.h, gzstate.h, gdevbbox.c,
-gdevnfwd.c, gschar.c, gsfont.c, gsfont0.c, gstext.c)
-
-Mostly splits off the existing text procedures from the default
-implementation of the new text facilities. (lib.mak, gxchar.h, gschar.c,
-gxchar.c)
-
-Makes the structure descriptor for gs_state public, for testing in gxchar.c.
-(gzstate.h, gsstate.c)
-
-Adds is_width_only and current_width procedures to the text enumerator;
-renames restart as retry, and adds a restart procedure for restarting with
-different parameters. (gstext.h, gxtext.h, gdevbbox.c, gschar.c, gstext.c,
-gxchar.c)
-
-Makes the masks for the subgroups of text operation parameters public.
-(gstext.h)
-
-Removes members of gs_show_enum that are superseded by members of
-gs_text_enum_t: current_char, current_glyph, width, and log2_current_scale.
-(gxchar.h, gxchar.c)
-
-Adds aliases for popen and pclose under WIN32. (pipe_.h)
-
-Moves gs_incachedevice from gschar.h to gsstate.h. (gschar.h, gsstate.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.85"></a>Version 5.85 (tester) (5/29/99)</h2>
-
-<p>
-This fileset removes a few more writable statics, and adds uniform support
-for %filedevice%filename syntax in OutputFile. Unfortunately, removing the
-static that held the interpreter's allocator group was almost as much of an
-upheaval as removing the statics for the interpreter stacks.
-
-<h3><a name="5.85_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - context_state_alloc now takes an additional parameter, as do
-obj_cvp, make_packed_array, parse_real_file_name, ref_stack_store,
-sread/write_proc, terminate_file_name, and a number of other internal
-interpreter procedures.
- - scan_number now does not mark the result as new.
- - The _param_list_read/write procedures now take an additional
-gs_ref_memory_t * parameter.
- - It is no longer possible to store pointers to the interpreter's
-allocator group (gs_dual_memory_t) in structures or variables across a
-garbage collection.
- - The save_level instance variable is moved from gs_dual_memory_t
-to gs_ref_memory_t.
- - op_show_finish_setup can now fail.
- - fname.h is renamed gsfname.h; the procedure names and parameters
-for %device%name file names are changed.
- - gx_imager_stroke_add now takes an additional argument; a NULL
-value for the device argument of gx_stroke_path_only is no longer valid.
- - gx_make_clip_translate_device now takes a memory parameter, and no
-container parameter; gx_make_clip_device no longer takes a container
-parameter; gx_mask_clip_initialize and tile_clip_initialize now take a
-memory parameter.
-
-</pre><h3><a name="5.85_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The language documentation still referred to outside clipping.
-(doc/Language.htm)
-
-Documents the new curve join graphics state parameter. (doc/Language.htm)
-
-Documents the fact that the OutputFile device parameter now supports the
-%device%file syntax. (gp.h, doc/Use.htm)
-
-Documents the licensing problems related to GNU readline. (int.mak,
-unix-gcc.mak, gp_gnrdl.c)
-
-</pre><h3><a name="5.85_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The bmpa devices needed gdevppla. (bug introduced in 5.84)
-(devs.mak)
- - The bmpa devices were accidentally included in the DEVICE_DEVS
-setting in the distributed fileset. (unix-gcc.mak)
- - msvclib.mak was missing some definitions. (msvclib.mak)
-
-Adds a CC_NO_WARN macro for those few files that produce tons of warnings
-that we can't work around. (bcwin32.mak, dvx-gcc.mak, msvccmd.mak,
-openvms.mak, openvms.mmk, os2.mak, ugcclib.mak, unix-gcc.mak, unixansi.mak,
-unixtrad.mak, watcw32.mak, wccommon.mak, devs.mak, lib.mak, zlib.mak)
-
-Adds version.mak to msvclib.mak, so library clients can track the version.
-(msvclib.mak)
-
-</pre><h3><a name="5.85_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - -replace didn't work if it was the last item of a module
-description. (genconf.c)
-
-</pre><h3><a name="5.85_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - CCITTFax-compressed bitmaps sometimes used both a Rows value and
-an end-of-block indicator, which some PostScript implementations don't
-handle properly. (gdevpsdf.h, gdevps.c, gdevpsdf.c)
-
-Removes an unused procedure and macro. (gdevlj56.c)
-
-</pre><h3><a name="5.85_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The interpreter cached objects even if the reference had the wrong
-generation number, causing errors if a correct reference occurred later.
-(lib/pdf_base.ps)
- - Embedded TrueType fonts using the Macintosh encoding sometimes
-caused an error. (lib/gs_ttf.ps)
-
-</pre><h3><a name="5.85_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Multiple contexts were broken (probably since 5.80). Fixing this
-required adding a parameter to context_state_alloc, to provide systemdict.
-(icontext.h, icontext.c, interp.c)
- - setpagedevice didn't accept the 4-element PageSize values that
-appear in the InputAttributes dictionary. (zmedia2.c)
- - BuildChar/BuildGlyph was "short circuited" even in some cases
-where it wasn't safe to do so. (ichar.h, zchar.c, zcharout.c)
- - The show operators didn't properly handle the special case of
-executing within a cshow procedure. (ichar.h, zcfont.c, zchar.c, zcharx.c)
- - The -dDOINTERPOLATE switch had gotten broken somehow.
-(lib/gs_init.ps)
- - The is_identity flag wasn't properly cleared when loading cached
-CIE mapping values, causing incorrect output. (zcie.c)
-
-Removes the writable static for the context scheduler. (zcontext.c)
-
-Removes the writable static for the interpreter's group of allocators
-(gs_imemory). This too turned out to be a massive change with many
-NON-BACKWARD-COMPATIBLE changes required in internal procedures. (bfont.h,
-files.h, fname.h, ialloc.h, ifunc.h, imemory.h, interp.h, iparam.h,
-iparray.h, ipcolor.h, isave.h, iscannum.h, istack.h, istream.h, iutil.h,
-store.h, ialloc.c, icontext.c, idebug.c, idict.c, iinit.c, imain.c,
-imainarg.c, interp.c, iparam.c, ireclaim.c, isave.c, iscan.c, iscanbin.c,
-iscannum.c, isstate.h, istack.c, iutil.c, zarray.c, zbfont.c, zcontext.c,
-zdict.c, zfname.c, zdps.c, zdps1.c, zfcmap.c, zdict.c, zfile.c, zfilter.c,
-zfont.c, zfont0.c, zfproc.c, zfreuse.c, zfunc.c, zfunc0.c, zfunc3.c,
-zgeneric.c, zht2.c, ziodev.c, ziodev2.c, zpacked.c, zpcolor.c, zshade.c,
-zupath.c, zvmem.c)
-
-Adds a gs_memory_t * argument to obj_cvp. This is part of the work for
-removing the gs_imemory static: we note it separately because it affects
-code beyond the interpreter. (iutil.h, gp_gnrdl.c, iutil.c, zfileio.c)
-
-Updates interpreter code for the addition of new_mask, test_mask, and
-save_level to gs_ref_memory_t, and the removal of save_level from
-gs_dual_memory_t. (ialloc.h, ialloc.c, isave.c)
-
-Adds a gs_ref_memory_t * argument to all the _param_list_read/write
-procedures. (iparam.h, iparam.c, zcrd.c, zdevice.c, zfdctd.c, zfdcte.c,
-zfdecode.c, zfilter2.c, ziodev2.c, zusparam.c)
-
-Changes the hack in file_alloc_stream that determines whether a gs_memory_t
-* is actually a gs_ref_memory_t *. The former code tested specifically
-whether the allocator was one of the current interpreter allocators; the new
-code simply tests the procedure vector. We aren't 100% sure that this
-change will work reliably. (zfile.c)
-
-Factors common code out of isave.h and store.h. (idosave.h, isave.h,
-store.h)
-
-Removes the reclaim_data member of gs_dual_memory_t, since it is no longer
-useful. (imemory.h, ialloc.c, ireclaim.c)
-
-Makes the default InputAttributes and OutputAttributes elements of page
-device dictionaries writable and (if possible) allocated in local VM, to
-work around bugs in the output of Word Perfect. (lib/gs_setpd.ps)
-
-Modifies the interpreter's error printout to indicate whether dictionaries
-on the stack(s) are writable. (lib/gs_init.ps)
-
-Moves support for %device%name file naming into the library. (fname.h,
-zfile.c, zfname.c [deleted])
-
-Adds interpreter support for the new curve join graphics state parameter.
-(zgstate.c)
-
-</pre><h3><a name="5.85_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - bbox_fill_path device didn't interact with compositors correctly.
-(This problem had no practical effect.) (gdevbbox.c)
- - kshow didn't check for CID fonts. (gschar.c)
- - The bbox and ImageType 3 image enumerators had incorrect GC
-descriptors, possibly causing memory-related crashes. (gsstruct.h,
-gdevbbox.c, gximage3.c)
- - gx_make_clip_[translate_]device took an obsolete container
-parameter. (gxcpath.h, gsshade.c, gxccache.c, gxfill.c, gxstroke.c)
- - Non-transient clipping devices were used for image clipping, but
-the API didn't support creating them. (gxcpath.h, gxclip.c, gximage3.c,
-gxipixel.c)
- - Some devices were created without setting their memory member,
-which caused the GC not to trace pointers to them. (gxmclip.h, gxclip2.h,
-gxclip2.c, gximage3.c, gxmclip.c, gxp1fill.c)
- - The bbox device didn't handle ImageType 3 images correctly.
-(gdevbbox.c)
- - When the bbox device passed a stroke operation to the library, it
-didn't pass the device, causing absolute-length dots to render incorrectly.
-Fixing this required adding a device parameter to the gx_imager_stroke_add
-procedure. (gxpaint.h, gdevbbox.c, gxpaint.c)
- - The counter control OtherSubrs (12 and 13) weren't implemented.
-(This probably had no effect.) (gstype1.c)
- - Type 1 stem hints with negative widths didn't work properly.
-(gxhint2.c)
- - The debugging output for hintmask and cntrmask printed the vstem
-and hstem counts in the wrong order. (gstype2.c)
- - If the value of the OutputFile device parameter was too long,
-the result could be memory corruption rather than a rangecheck error.
-(gsdevice.c)
- - The dash pattern pointer in the saved imager state of a band list
-writer could point inside the writer structure, confusing the garbage
-collector. (gxclist.h, gxclpath.c)
-
-Adds new_mask, test_mask, and save_level instance variables to
-gs_ref_memory_t. This too is part of the gs_imemory work: we note it
-separately because it is the only piece of this work that affects the
-library. (gxalloc.h, gsalloc.c)
-
-Makes cntrmask at the beginning of a charstring act like vstemhm + cntrmask,
-as with hintmask. This is not documented, but we see it used this way in
-Type 2 CharStrings. (gstype2.c)
-
-Cleans up formatting and macros. (gp.h)
-
-Speeds up the bounding box device by skipping path filling if the entire
-path falls within the already-accumulated bounding box, and by defining the
-device as 8-bit gray to avoid halftone computation. (gdevbbox.c)
-
-Adds a procedure, gs_show_use_glyph, for implementing the show-in-cshow
-hack. (gschar.h, gschar.c)
-
-Moves support for %device%file file naming into the library. (lib.mak,
-gsfname.h, gxiodev.h, gdevpipe.c, gsfname.c)
-
-Makes the OutputFile device parameter recognize %device%file syntax, as well
-as "-" and (on platforms that support pipes) |command. (gp.h, gxdevice.h,
-gdevprn.c, gsdevice.c, gp_unix.c)
-
-Adds a separate graphics state parameter to indicate how to treat joins
-between segments of a flattened curve, for compatibility with Adobe
-interpreters (which apparently always use bevel joins). (gsline.h,
-gxclpath.h, gxline.h, gsline.c, gsstate.c, gxclpath.c, gxclrast.c,
-gxstroke.c)
-
-Changes code slightly, introducing an unnecessary assignment, in order to
-suppress a compiler warning. (gxclpath.c)
-
-Tweaks the CIE_LOAD_CACHE_BODY macro slightly. (gscie.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.84"></a>Version 5.84 (tester) (5/19/99)</h2>
-
-<p>
-This fileset completes the implementation of planar rendering, and fixes a
-few more bugs, some of them surprisingly old.
-
-<h3><a name="5.84_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Drivers)
- - The dopath vector device implementation procedure was changed to
-take an optional matrix argument.
-(Library)
- - The internal memory__need_ macros are changed to upper case.
-
-</pre><h3><a name="5.84_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - There was a duplicate entry for GENINIT_XE in the Watcom makefile.
-(wctail.mak)
-
-Adds the duplex-capable LaserJet drivers (ljet3d and ljet4d) to all standard
-configurations. (bcwin32.mak, dvx-gcc.mak, msvc32.mak, openvms.mak,
-openvms.mmk, os2.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak, watc.mak,
-watcw32.mak)
-
-Adds a PROFILE compilation switch, similar to DEBUG, to work around the fact
-that gprof under GNU/Linux doesn't count time in memset, memcpy, or other C
-library procedures. PROFILE will substitute our own versions of memset,
-memcpy, and memmove. Currently, this switch is supported only on Unix.
-(unix-end.mak)
-
-Defines a new makefile macro, SYNC, that gives the module name for thread /
-synchronization facilities; makes async.dev include this module. This is
-posync on Unix and VMS platforms, winsync on MS Windows and OS/2 platforms.
-(bcwin32.mak, dvx-gcc.mak, lib.mak, msvc32.mak, msvclib.mak, openvms.mak,
-openvms.mmk, os2.mak, ugcclib.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak,
-watc.mak, watclib.mak, watcw32.mak)
-
-Splits off the rules common to the 3 Windows makefiles (watc, watclib,
-winlib) into a separate file, defining new modules winplat.dev and
-winsync.dev. (watc.mak, watclib.mak, winlib.mak, winplat.mak)
-
-Removes -Wcast-align from the gcc switches, since this produces huge numbers
-of warnings that we will certainly never get rid of. (unix-gcc.mak)
-
-</pre><h3><a name="5.84_Utilities"></a>Utilities</h3><pre>
-
-Enhances the ps2pdf script with a patch contributed by Jim Avera
-(avera@fjst.com) so that it can be used as a pipe by specifying "-" for the
-input and/or output file. (lib/ps2pdf)
-
-Modifies ps2ascii to handle landscape pages better. (lib/ps2ascii.ps)
-
-</pre><h3><a name="5.84_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - PDF output that used Pattern colors on more than one page failed
-to include the color space resource in the resource dictionaries of pages
-other than the first. (gdevpdf.c)
- - The PDF writer emitted bitmap patterns inverted in Y.
-(gdevpdfi.c)
- - The PCL XL driver's GC descriptor had become incorrect, causing
-crashes. (gdevpx.c)
- - The pdfwrite driver could still emit coordinates too large for
-Acrobat Reader to handle, for stroked lines with an unusual CTM.
-(gdevpdfd.c)
- - The pxl drivers emitted invalid output for dashed lines.
-(gdevpx.c)
- - The [e]pswrite and pxl drivers scaled line widths and dash
-patterns incorrectly. Fixing this properly involved refactoring the
-handling of scaling for paths, and removing gdev_vector_stroke_path.
-(gdevpsdf.h, gdevvec.h, gdevpdfd.c, gdevps.c, gdevpsdf.c, gdevpx.c,
-gdevvec.c)
- - The lj5 drivers didn't pad images to a multiple of 4 bytes per
-scan line, producing invalid PCL XL output. (We don't see how they could
-ever have worked, in fact.) (gdevpcl.h, gdevlj56.c, gdevpcl.c)
-
-Adds a user-contributed driver for the DEClaser 2100. This is a GPL'ed
-driver. (contrib.mak, gnu/src/gdevln03.c)
-
-Makes the UsePlanarBuffer parameter, and planar buffering capability, from
-the PPM devices available to general printer devices, but in a separate
-module to avoid making all printer devices require gdevmpla.c. (gdevppla.h,
-gdevpbm.c, gdevppla.c)
-
-Adds a UsePlanarBuffer parameter to the async BMP drivers, for testing.
-(gdevbmpa.c)
-
-Removes the comment about the instability of the "vector" driver interface.
-(gdevvec.h, gdevvec.c)
-
-</pre><h3><a name="5.84_Platforms"></a>Platforms</h3><pre>
-
-Splits off the Windows thread and synchronization primitives into a new file
-and a new module, winsync.dev. (watc.mak, watclib.mak, winlib.mak,
-gp_win32.c, gp_wsync.c)
-
-</pre><h3><a name="5.84_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - As usual, gcc failed to flag some signed/unsigned char mismatches.
-(gp_gnrdl.c, iutil.c)
-
-Moves the indexed color space cache lookup procedure from the interpreter to
-the library. (zcsindex.c)
-
-</pre><h3><a name="5.84_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - If a 2-D CCITTFax stream ended with 1 or 2 "vertical 0" codes,
-those codes would be ignored. (scfd.c)
-
-</pre><h3><a name="5.84_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - gsnogc.h contained an extern for gs_gc_reclaim rather than for
-gs_nogc_reclaim. (gsnogc.h)
- - Banded images in Indexed color spaces rendered incorrectly.
-(gximage.c)
- - A function declared some arguments as float rather than floatp.
-(gshtx.h, gshtx.c)
- - As usual, gcc failed to flag some public/private mismatches.
-(gdevmrun.c)
- - The tracing output for monobit images printed 8 bits per pixel
-rather than 1 bit per pixel. (gxidata.c)
- - A Pn macro was used in a header file that didn't include stdpre.h.
-(gscdefs.h, gconf.c, genht.c, gxhtbit.c, gxclrast.c)
- - get_bits_rectangle for the planar memory device didn't flush the
-last byte of each row. (gdevmpla.c)
- - When banding, Indexed color spaces using a procedure rather than a
-lookup table caused a crash. (gxcolor2.h, gscolor2.c, gxclrast.c)
- - When filling a region with a Pattern with a rotated matrix, some
-parts of the region could be missed. (bug introduced by a fix in 5.38)
-(gxp1fill.c)
-
-When compiling with gcc, replaces inline with __inline__ to get rid of a
-potential warning. (stdpre.h)
-
-Adds our own implementations of memset, memcpy, and memmove, to work around
-the fact that gprof under GNU/Linux doesn't count time in C library procedures.
-(memory_.h, string_.h, gsmisc.c)
-
-Finishes implementing planar rendering for printer / banded devices.
-(gdevprn.h, gxclist.h, gxdevbuf.h, gdevprn.c, gxclread.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.83"></a>Version 5.83 (tester) (5/13/99)</h2>
-
-<p>
-This fileset was driven mostly by commercial licensee demands; it doesn't
-fix most of the problems reported in 5.82. It features smaller threshold
-halftones, the ability to store halftones in ROM, and a nearly complete
-implementation of a planar memory device.
-
-<p>
-Items pushed off to the next fileset:
-<ul>
-<li> - Finish multi-planar band buffers (requires changing
-gdev_prn_render_lines to be based on memory devices rather than buffer
-pointers).
-<li> - For Adobe compatibility, change stroking so that it always
-uses
-bevel joins between the segments of a curve (this directly contradicts the
-Red Book, but it's what Adobe interpreters do).
-<li> - Implement an IdiomSet for Corel Draw fountain fills?
-(idioms.ps)
-<li> - Change shading so it doesn't install a clip device (make this
-a
-driver procedure instead), because that prevents clist_fill_path from being
-called.
-</ul>
-
-<h3><a name="5.83_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - The spaces.indexed member of a vm_spaces structure has been
-renamed spaces_indexed (a macro).
- - The gs_reclaim procedure is changed to a macro, GS_RECLAIM.
-(Library)
- - The bits member of a halftone order is now called bit_data, and is
-opaque; halftone orders are now "objects"; gx_ht_alloc_[ht_]order now take
-an additional argument.
- - The architectural values in arch.h are now all upper-case.
-(std.h defines lower-case synonyms for backward compatibility.)
- - The buffer device procedures for printer devices are now collected
-in a structure; this also changes the parameters of clist_init_params.
- - The parameters of the buffered device setup_buf_device procedure
-are changed.
- - gx_path_copy_reducing now takes an additional argument, an imager
-state, for flattening stroked paths.
- - Memory devices now must be created by copying a prototype device,
-rather than by initializing individual members, even if they are only being
-used for limited purposes.
-
-</pre><h3><a name="5.83_Documentation"></a>Documentation</h3><pre>
-
-Documents the new facility for compiled halftones, and the old one for
-compiling initialization files. (doc/Make.htm)
-
-</pre><h3><a name="5.83_Utilities"></a>Utilities</h3><pre>
-
-Adds a utility for compiling halftones into the executable. Also defines
-the dependency lists for the auxiliary programs in lib.mak and int.mak,
-rather than replicating them for every platform. (bcwin32.mak,
-dvx-tail.mak, gs.mak, int.mak, lib.mak, msvctail.mak, openvms.mak,
-openvms.mmk, os2.mak, unix-aux.mak, wctail.mak, genht.c)
-
-Adds support for halftone "resources" in the makefile. (genconf.c)
-
-Adds code to determine the primary and secondary CPU cache sizes
-empirically. (genarch.c)
-
-Changes the architecture definition macros from lower to upper case, with
-lower-case synonyms in std.h for backward compatibility. (gsjconf.h, std.h,
-genarch.c)
-
-Changes the ps2ai utility so that jtxt3 can be set from the command line, to
-allow pstoedit to generate AI3-compatible output. (lib/ps2ai.ps)
-
-</pre><h3><a name="5.83_Procedures"></a>Procedures</h3><pre>
-
-Adds some optional library modules to the base library compilation list, so
-that compilation errors won't slip through. (lib.mak)
-
-</pre><h3><a name="5.83_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - A change from char to byte needed to be undone (gcc didn't catch
-this). (iutil.c)
-
-Adds a 167x167 stochastic halftone that CalComp put in the public domain.
-(lib/ht_ccbnm.ps, int.mak, unixinst.mak)
-
-Updates the interpreter for the change to per-VM-spaces garbage collection.
-(igc.h, ialloc.c, icontext.c, igc.c, ilocate.c, imain.c, interp.c,
-ireclaim.c, isave.c, zfile.c, zht.c, zht1.c, zht2.c)
-
-Updates places that only use gsstruct.h for extern_st to use gsstype.h
-instead. (icontext.h, ifont.h)
-
-</pre><h3><a name="5.83_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Some types needed updating to reflect the change in the string
-freelists. (gsalloc.c, gsnogc.c)
- - clip_copy_color didn't initialize some variables in the fastest
-case. (bug probably introduced in 5.83) (gxclip.c)
- - The fit_fill_ and fit_copy_ macros didn't always parenthesize
-their dev argument. (gxdevice.h)
- - The sample_load macros returned the wrong results for depth 1 and
-2. Amazingly enough, it appears that this case had never been used.
-(gsbitops.h)
- - The standard allocator would free chunks even if is_controlled was
-true. (gsalloc.c)
- - Stroking drew semicircles rather than full circles for round
-joins. (gxstroke.c)
- - The calculation of how finely to sample a curve to achieve a
-particular flatness didn't take line width into account when stroking (the
-flatness has to apply to the outside of the stroked curve). (gxpath.h,
-gxpcopy.c, gxstroke.c)
-
-Speeds up the bbox device a little. (gdevbbox.c)
-
-Speeds up the most common cases of clipping a little. (gxclip.h,
-gxacpath.c, gxclip.c)
-
-Makes halftone orders more "object-oriented", so we can use an alternate
-representation that trades time for space. This requires a
-NON-BACKWARD-COMPATIBLE CHANGE in the gx_ht_order structure and the
-arguments of gx_ht_alloc_[ht_]order. (gxcldev.h, gxdht.h, gzht.h, gsht.c,
-gsht1.c, gshtscr.c, gshtx.c, gsistate.c, gxcht.c, gxclimag.c, gxclrast.c,
-gxht.c, gxhtbit.c)
-
-Makes it possible to compile-in halftone threshold arrays and orders (e.g.,
-in ROM) so they don't take up RAM at execution time. (gscdefs.h, gxdht.h,
-gxdhtres.h, gzht.h, gconf.c, gsht.c, gsht1.c, gxclrast.c, gxhtbit.c)
-
-Adds some statistics to the 24-bit memory device (in DEBUG mode only, as
-usual). (gdevm24.c)
-
-Makes the 24-bit memory device optionally use memcpy for wide rectangle
-fills. We thought this got us a factor of 3 speedup on a Pentium with gcc's
-library, but it turned out to be a profiler artifact. (gdevm24.c)
-
-Cleans up some formatting. (gxclip.h)
-
-Dusts off the run-length-encoded memory device, changing it so it reverts to
-the unencoded representation when necessary. This code hasn't been tested,
-and is not currently used. (gdevmrun.h, gdevrun.c [deleted], gdevmrun.c)
-
-Adds more statistics to the clipping device. (gxclip.c)
-
-Adds an implementation of the MD5 Algorithm defined in RFC 1321, derived
-directly from the text of the RFC and not from the reference implementation.
-This code uses the zlib license, which is more liberal than the Aladdin or
-GNU licenses. (md5.h, md5.c)
-
-Finishes implementing the planar memory device, including generalizing it to
-store varying numbers of bits per plane rather than 1 bit per plane.
-(gdevmem.h, gdevmpla.h, gxdevmem.h, gdevmem.c, gdevmpla.c)
-
-Updates clients to initialize memory devices more fully, now required to
-distinguish chunky from planar devices. (gxpcmap.c)
-
-Mostly implements enhancing printer / banded devices so they can use a
-planar memory device for rendering and/or band buffering. The code
-currently works only in the non-banded case. (gdevprn.h, gxclist.h,
-gxdevbuf.h, gxdevcli.h, gdevprn.c, gxclist.c, gxclread.c)
-
-For testing, adds a -dUsePlanarBuffer=&lt;boolean&gt; parameter to the PPM devices
-to make them use a planar memory device. (gdevpbm.c)
-
-Cleans up some code formatting. (gdevmem.c)
-
-Makes the garbage collection procedure separately settable for each group of
-VM spaces. (In an environment with "async" rendering, the renderer has its
-owm VM space group.) Unfortunately, this involved a NON-BACKWARD-COMPATIBLE
-change in the vm_spaces structure. (gsgc.h, gsnogc.h, gsnogc.c)
-
-Updates a client for the change in gs_reclaim; also makes the renderer
-thread use the non-tracing garbage collector. (gdevprna.c)
-
-Updates the non-tracing GC to reflect its role as a garbage collection
-procedure in a vm_spaces. (gsnogc.c)
-
-Enhances the non-tracing GC so that if a chunk ever contains no strings, the
-string marking area reserved for the tracing GC is added to free space.
-(gxalloc.h, gsalloc.c, gsnogc.c)
-
-Changes the font cache allocator to use a different structure descriptor for
-its data so that memory dumps will show "font cache bytes" rather than just
-"bytes". (gxccman.c)
-
-Splits gsstruct.h into gsstype.h, which contains enough of the definition of
-structure type descriptors to support extern_st, and gsstruct.h, which is
-needed to actually define structure types. (gsstruct.h, gsstype.h,
-gxfmap.h)
-
-Updates places that only use gsstruct.h for extern_st to use gsstype.h
-instead. (gsbitmap.h, gsccolor.h, gscie.h, gxfont.h, gzpath.h, scommon.h,
-gscdevn.c, gscrd.c, gscrdp.c, gsshade.c, gxpath2.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.82"></a>Version 5.82 (tester) (4/24/99)</h2>
-
-<p>
-This fileset fixes a few odds and ends, removes a couple more writable
-statics, and improves performance in a couple of areas.
-
-<h3><a name="5.82_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - dict_uid_param now takes an additional argument, the interpreter
-context pointer.
- - obj_cvp now takes a stream rather than a string.
-
-</pre><h3><a name="5.82_Documentation"></a>Documentation</h3><pre>
-
-Documents the -dGraphicsAlphaBits and -dTextAlphaBits switches; reorganizes
-the documentation of the -d/-s switches by function. (doc/Use.htm)
-
-</pre><h3><a name="5.82_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - Building with MSVC didn't work if COMPILE_INITS was selected.
-(msvctail.mak)
- - The cp script didn't work on all MS-DOS systems, since the systems
-are incompatible with each other in undocumented ways. (cp.bat)
- - Using ^ in a command line failed on Windows 98. (wccommon.mak)
- - Watcom compilation under Windows NT didn't include some needed
-headers. (wccommon.mak)
- - The Watcom compiler's quoting requirements were inconsistent.
-(gs.mak)
- - GLCCWIN was used without being defined. The MS DOS/Windows
-makefiles really are a tangled mess.... (watc.mak)
- - The build directories didn't get created automatically when
-compiling with the Watcom compiler. (watc.mak)
-
-Adds more optimization switches for Watcom compilation. (wccommon.mak)
-
-</pre><h3><a name="5.82_Utilities"></a>Utilities</h3><pre>
-
-Adds a pfbtopfa script. (unixinst.mak, lib/pfbtopfa, lib/pfbtopfa.bat,
-lib/pfbtopfa.ps)
-
-</pre><h3><a name="5.82_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - "Vector" drivers (currently only the PCL XL driver) filled
-polygons incorrectly. (gdevvec.c)
- - The PCL XL drivers produced incorrect output for images. (We
-can't understand how they ever could have worked.) (gdevpx.c)
- - The PCL XL drivers skipped blank pages. (gdevpx.c)
- - The page origin for the clj driver was set incorrectly. (fix from
-Artifex) (gdevclj.c)
- - The map_color_rgb procedure for the 32-bit CMYK bmp device was
-wrong, causing RasterOps to produce incorrect output. (fix from Artifex)
-(gdevbmp.c)
-
-Works around a bug in Acrobat Reader's Print command, by changing the
-scaling for bitmap patterns. (gdevpdfi.c)
-
-Cleans up some formatting and macros. (gdevpx.c)
-
-Factors out some common parameter-putting utilities. (gdevpsdf.h,
-gdevpdfp.c, gdevpsdp.c)
-
-</pre><h3><a name="5.82_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The DLL code "knew" it could only be compiled on Windows and OS/2
-platforms. (gsdll.c)
-
-Removes a Mac-specific file that is now moved to the Mac-specific archive.
-(gsdllmac.h [deleted])
-
-</pre><h3><a name="5.82_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - An invalidaccess could occur when repositioning the file after
-executing an image XObject. (lib/pdf_draw.ps)
- - Indexed color spaces gave an error if the underlying space was
-represented as a name rather than an array. (bug introduced in 5.80)
-(lib/pdf_draw.ps)
-
-</pre><h3><a name="5.82_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The interpreter reentrancy changes broke the GNU readline
-interface. (gp_gnrdl.c, ziodev.c)
- - The TrappingType resource category wasn't defined.
-(lib/gs_res.ps, lib/gs_trap.ps)
- - CIE color spaces in shading patterns didn't work. (lib/gs_ll3.ps)
- - Printing a string of more than 200 characters with == was broken.
-Fixing this required a NON-BACKWARD-COMPATIBLE change in the argument list
-of obj_cvp. (bug introduced in 5.80) (iutil.h, gp_gnrdl.c, idebug.c,
-iutil.c, zfileio.c)
-
-Changes the interpreter trace output to be somewhat more readable.
-(interp.c)
-
-Makes the linking of the binary token scanning procedure static rather than
-dynamic. (int.mak, inobtokn.c, iscan.c, zbseq.c)
-
-Makes the language level a property of the context, eliminating a writable
-static. (icstate.h, idparam.h, ilevel.h, icontext.c, idparam.c, iinit.c,
-interp.c, zcontext.c, zmisc2.c)
-
-Updates clients for the change in dict_uid_param. (zbfont.c, zfcmap.c,
-zpcolor.c, zshade.c)
-
-</pre><h3><a name="5.82_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - There was a signed/unsigned char * mismatch. (sfxfd.c)
- - Some very picky compilers complained inappropriately about a
-const/non-const mismatch. (gxcht.c)
- - The format of the string freelists didn't allow chunks with more
-than 64K bytes of string area. (gxalloc.h, gsnogc.c)
-
-Moves the interface definitions for the memory dump debugging code into a
-header file. (gxalloc.h, gsalloc.c)
-
-Makes the standard memory manager recognize more effectively when it can
-reset the high-water mark for occupied space in the current chunk. This
-turns out to make a big difference in preventing sandbars. (gxalloc.h,
-gsalloc.c)
-
-Makes clipping lists keep track of their minimum and maximum X values, so
-that they can return accurate outer clipping boxes, which in turn allows
-more effective pre-clipping of filled regions. (gxcpath.h, gxacpath.c,
-gxclip.c, gxcpath.c)
-
-Makes clipping devices cache their clipping box, so they can return it
-quickly. (gxcpath.h, gxclip.c)
-
-Makes the colored halftone logic check bounding boxes before running the
-expensive algorithms. This improves performance dramatically for some files
-without costing much for the rest. (gxcht.c)
-
-Adds some more debugging printout for clipping lists. (gxcpath.c)
-
-Cleans up formatting and macros. (gdevdflt.c, gdevhit.c, gdevnfwd.c)
-
-Factors out some common parameter-putting utilities. (gsparamx.h,
-gsparamx.c, gstrap.c)
-
-Adds some more tracing output for images. (gxidata.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.81"></a>Version 5.81 (tester) (4/14/99)</h2>
-
-<p>
-This fileset cleans up most of the bug tail from 5.80, but it doesn't fix
-all the reported problems. It also factors out the platform-specific DLL
-calls, and extends the DLL API to the Mac.
-
-<h3><a name="5.81_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Platforms)
- - gsdll_get_bitmap is now defined in gsdllos2.h; gsdll_copy_dib,
-_copy_palette, _draw, and _get_bitmap_row are now defined in gsdllwin.h.
-
-(Interpreter)
- - zcolor_remap_one may return 0 rather than o_push_estack. (This
-change actually occurred in 5.80, but was not documented.)
-
-(Library)
- - The initialized parameters of an image scaling filter are now
-stored in a subsidiary structure.
- - The names max_support and log2_max_support are changed to
-MAX_ISCALE_SUPPORT and LOG2_MAX_ISCALE_SUPPORT.
- - The structure definition for the smoothed image scaling filter is
-now private, although its descriptor remains public.
- - The criteria for when to use Interpolate are now more stringent.
-
-</pre><h3><a name="5.81_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - gs_trap.ps wasn't installed by `make install'. (unixinst.mak)
- - A semicolon was missing in one definition of GS_LIB_DEFAULT.
-(watc.mak)
- - ll.tr and _temp_.tr weren't created in the obj directory.
-(watc.mak, wctail.mak)
- - RM_ was defined incorrectly on one platform. (wccommon.mak)
-
-</pre><h3><a name="5.81_Utilities"></a>Utilities</h3><pre>
-
-Makes some minor edits in ansi2knr, contributed by a user, to remove gcc
-warnings. (ansi2knr.c)
-
-</pre><h3><a name="5.81_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - There was an int/uint mismatch. (gdevbmpa.c)
- - There was a const/non-const mismatch. (gdevbmpa.c)
-
-Changes the p*m drivers so that they use the default color mapper when
-possible, speeding up execution. (gdevpbm.c)
-
-</pre><h3><a name="5.81_Fonts"></a>Fonts</h3><pre>
-
-Adds Black as indicating that a bold font should be substituted if
-necessary. (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.81_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The Watcom NT compiler implements setmode and fileno but not
-_setmode and _fileno. (gp_ntfs.c)
- - The procedure parameter passed to the Windows _beginthread
-procedure had the wrong prototype. (gp_win32.c)
- - Watcom's _beginthread procedure takes an extra argument.
-(windows_.h, gp_win32.c)
-
-Extends the DLL API to work on the Mac. This required some restructuring of
-the code, and some NON-BACKWARD-COMPATIBLE changes to move
-environment-specific calls into environment-specific header files.
-(pcwin.mak, os2.mak, winint.mak, dwdll.h, gsdll.h, gsdllmac.h, gsdllos2.h,
-gsdllwin.h, dpmainc.c, dwdll.cpp, dwnodll.cpp, gdevmswn.c, gdevpm.c,
-gdevwdib.c, gsdll.c)
-
-</pre><h3><a name="5.81_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Changes the interpreter to handle two more specification-violating
-conditions that Adobe Acrobat accepts: truncation of %%EOF to %%EO, and use
-of Dest links with no Dests dictionary. (lib/pdf_main.ps)
-
-</pre><h3><a name="5.81_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - gcc failed to flag initialization of an automatic aggregate, which
-is allowed in neither ANSI nor traditional C. (iutil.c)
- - The system name table lacked the last 3 entries.
-(lib/gs_btokn.ps)
- - Interpolated images always wound up at (0, 0). (bug introduced in
-5.80) (gxipixel.c)
- - The Watcom compiler didn't consider "const uint" and "const
-unsigned" to be compatible. (ifunc.h)
- - The code to detect identity transfer functions could cause
-transfer functions not to be processed at all. (icolor.h, zcolor.c,
-zcolor1.c, zht2.c)
- - The Level 2 redefinition of restore could do an extra grestore,
-possibly creating a temporary reference to a freed object. (zdevice2.c)
-
-Adds more tracing for undo-saves, and changes a macro to a procedure.
-(isave.c)
-
-Removes some #define'd casts. (isave.c)
-
-</pre><h3><a name="5.81_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - When banding, the color space wasn't reinitialized for each page.
-(gxclist.c)
- - The criterion for allowing image interpolation still produced
-"mush" for some important classes of image. (gxiscale.c)
- - The Watcom compiler didn't consider "const uint" and "const
-unsigned" to be compatible. (gscdefs.h, gconf.c)
- - Identity black generation and undercolor removal functions weren't
-passed through the band list correctly. (gxcldev.h, gxclbits.c, gxclrast.c)
- - Once again, gcc failed to give a warning for extern followed by
-private. (gxcdevn.h)
- - glyphshow set up the text operation in a way that created a
-garbage collector error. (gschar.c)
-
-Makes gs_opendevice complete the device procedure vector if the device
-wasn't already open. (gsdevice.c)
-
-Factors out the image scaling filter so that we can use either Adobe's
-algorithm or the Mitchell filter. This involves a NON-BACKWARD-COMPATIBLE
-CHANGE in the way the filter parameters are defined. (gximage.h, siscale.h,
-sisparam.h, gxclimag.c, gxidata.c, gxiscale.c, siscale.c)
-
-Makes the criteria for when to use interpolation stricter, since we are
-still using the Mitchell filter. (gxiscale.c)
-
-Starts to implement Adobe's image interpolation algorithm. (siinterp.h,
-siinterp.c, gxiscale.c)
-
-Speeds up RGB interpolated images by detecting runs of output color.
-(gxiscale.c)
-
-Makes the default RGB color mapper a "known" mapper that can be propagated
-through device pipelines. (gxdevice.h, gsdevice.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.80"></a>Version 5.80 (tester) (4/6/99)</h2>
-
-<p>
-This version contains the first, and, we hope, largest wave of changes in
-the interpreter required to make the interpreter fully reentrant.
-Unfortunately, many externally visible APIs, including the argument list for
-operator procedures, required changes.
-
-<p>
-Because of the magnitude of the change, we incremented the version number to
-5.80.
-
-<p>
-The non-backward-compatible API changes were confined to the interpreter:
-the (very minor) changes to the library required to support interpreter
-reentrancy are fully backward-compatible.
-
-<p>
-This fileset also implements DeviceN color spaces (always using the
-alternate space), including Indexed spaces over DeviceN spaces, for all uses
-except smooth shading.
-
-<h3><a name="5.80_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - names_init now takes a gs_ref_memory_t * rather than a gs_memory_t
-*.
- - type_print_strings, type_name_strings, and
-ref_type_properties_data are now REF_TYPE_DEBUG_PRINT_STRINGS,
-REF_TYPE_NAME_STRINGS, and REF_TYPE_PROPERTIES_DATA.
- - The undocumented .writecvp operator, and obj_cvp, now take an
-integer instead of a Boolean to define the type of output desired.
- - The argument list for operators is changed from os_ptr to
-i_ctx_t *. Many internal interpreter APIs have changed.
- - The typedef name for operator procedures is changed from op_proc_p
-to op_proc_t.
- - gs_interpret now takes an additional context (i_ctx_t **)
-argument.
- - The interpreter's rescheduling and time-slicing procedures,
-gs_interp_reschedule_proc and gs_interp_time_slice_proc, now take a context
-(i_ctx_t **) argument.
- - The Type 1 interpreter push_value callback is renamed push_values;
-the first argument of push_values and pop_value has changed from
-gs_font_type1 * to void *.
- - dict_put*, dict_copy*, dict_undef, dict_resize, dict_grow, and
-dict_unpack now take an additional argument, a dictionary stack where the
-dictionary may be present.
-
-</pre><h3><a name="5.80_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The dependency list for the (dummy) trapping feature was wrong.
-(int.mak)
- - The directory for jerror_.h was incorrect. (jpeg.mak)
-
-Removes the never-used -header switch from genconf. (genconf.c)
-
-Adds priority-sorted resources to genconf, currently used only for image
-classes. (genconf.c)
-
-Adds an imageclass resource to genconf, for what used to be called image
-strategies. (genconf.c)
-
-</pre><h3><a name="5.80_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - ansi2knr didn't recognize id1(id2, xxxxx) as not being a function.
-(ansi2knr.c)
- - viewpcx still referred to the deleted PCXDecode filter.
-(lib/viewpcx.ps)
- - strlen was called without being declared. (genarch.c)
-
-</pre><h3><a name="5.80_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - Some drivers that called gdev_prn_open_printer didn't check the
-return code for errors. (gdevdjet.c, gdevhl7x.c)
- - The cljet5 driver didn't handle long-edge feed properly. (from
-Artifex) (gdevclj.c)
- - The [e]pswrite driver could produce incorrect output if the input
-file had zero-length lines. (gdevps.c)
- - The X driver didn't handle byte-swapped 16-bit displays.
-(gdevx.c)
- - There was an int/uint mismatch. (gdevbmp.c)
- - Some needed headers weren't included. (gdevdcrd.c, gdevpdfo.c)
- - The updated mswinpr2 driver wouldn't compile with older Windows
-header files. (gdevwpr2.c)
-
-Removes some unnecessary #includes. (gdevps.c)
-
-Adds user-contributed drivers for the CoStar LabelWriter II Plus and XL
-label printers. (gdevcslw.c)
-
-Speeds up color mapping for the bitrgb driver a little, by using the default
-procedure. (gdevbit.c)
-
-</pre><h3><a name="5.80_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - TrueType fonts with odd-length glyf definitions caused an
-invalidfont error. (lib/gs_ttf.ps)
-
-Changes the font substitution mechanism slightly to be more useful to the
-PDF interpreter. (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.80_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - Some needed headers weren't included. (watc.mak, watclib.mak,
-winlib.mak, gp_win32.c)
-
-</pre><h3><a name="5.80_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - There were many signed/unsigned char type errors that gcc didn't
-catch. (gp_gnrdl.c)
- - The operator definition list for zdouble was too long. (int.mak,
-zdouble.c)
-
-Removes some unnecessary #includes. (zchar.c)
-
-Speeds up names_string_ref. (inamedef.h, inames.h, imain.c, iname.c)
-
-Speeds up reading string/name array parameters. (iparam.c)
-
-Refactors the implementation of ==, so that all types other than arrays and
-dictionaries are handled in C code. (lib/gs_init.ps, iutil.h, iref.h,
-gp_gnrdl.c, idebug.c, iutil.c, zfileio.c, ztype.c)
-
-Changes the type name for operator procedures from op_proc_p to op_proc_t,
-for consistency and also to help detect places that need the argument list
-changed. (ichar.h, interp.h, iref.h, opdef.h, interp.c, iutil.c, zchar.c,
-zcharx.c, zcontrol.c, zupath.c)
-
-Changes the argument type for operators from os_ptr to i_ctx_t *. (i_ctx_t
-is an alias for gs_context_state_t.) This also requires adding a context
-pointer to many internal procedures, or changing an os_ptr argument to
-i_ctx_t *. This is a MASSIVE NON-BACKWARD-COMPATIBLE change which we simply
-saw no way to avoid if the interpreter was to be made fully re-entrant. See
-"Incompatible changes" above for externally visible changes.
-(lib/gs_init.ps, bfont.h, btoken.h, dstack.h, estack.h, files.h, ichar.h,
-ichar1.h, icharout.h, icie.h, icolor.h, icontext.h, icsmap.h, ifilter.h,
-ifont1.h, igstate.h, iht.h, iimage.h, iimage2.h, imain.h, imemory.h,
-interp.h, ipacked.h, iref.h, iscan.h, istream.h, opdef.h, oper.h,
-opextern.h, ostack.h, ialloc.c, icontext.c, iinit.c, imain.c, inouparm.c,
-interp.c, ireclaim.c, iscan.c, iscanbin.c, zarith.c, zarray.c, zbfont.c,
-zbseq.c, zcfont.c, zchar.c, zchar1.c, zchar2.c, zchar32.c, zchar42.c,
-zcharout.c, zcharx.c, zcid.c, zcie.c, zcolor.c, zcolor1.c, zcolor2.c,
-zcontext.c, zcontrol.c, zcrd.c, zcsdevn.c, zcsindex.c, zcspixel.c,
-zcssepr.c, zdevice.c, zdevice2.c, zdict.c, zdosio.c, zdouble.c, zdpnext.c,
-zdps.c, zdps1.c, zfbcp.c, zfcmap.c, zfdctd.c, zfdcte.c, zfdecode.c, zfile.c,
-zfileio.c, zfilter.c, zfilter2.c, zfilterx.c, zfont.c, zfont0.c, zfont1.c,
-zfont2.c, zfont32.c, zfont42.c, zfproc.c, zfreuse.c, zfunc.c, zfzlib.c,
-zgeneric.c, zgstate.c, zhsb.c, zht.c, zht1.c, zht2.c, zimage.c, zimage2.c,
-zimage3.c, ziodev.c, ziodev2.c, zmath.c, zmatrix.c, zmedia2.c, zmisc.c,
-zmisc1.c, zmisc2.c, zmisc3.c, zpacked.c, zpaint.c, zpath.c, zpath1.c,
-zpcolor.c, zrelbit.c, zrop.c, zshade.c, zstack.c, zstring.c, zsysvm.c,
-ztoken.c, ztrap.c, ztype.c, zupath.c, zusparam.c, zvmem.c, zvmem2.c)
-
-Changes caching for the interpreter's CIE color spaces so that instead of
-changing the color space installation procedure to one that schedules the
-sampling of the procedures though a back door, it leaves the installation
-procedure alone and schedules the sampling in the color-space-specific
-setcolorspace operator. This is needed for interpreter reentrancy.
-(icie.h, zcie.c, zcrd.c)
-
-Makes the linkage from the dictionary machinery to the cached values in the
-dictionary stack and the name table explicit, by adding a dstack pointer to
-all the relevant dict_* procedures. This is needed for interpreter
-reentrancy. (iddstack.h, idict.h, idstack.h, idict.c)
-
-Updates clients for the change in the dictionary API. For each changed
-dict_ procedure, we add an idict_ procedure that uses i_ctx_p-&gt;dict_stack as
-the additional argument. (iddict.h, icontext.c, iinit.c, interp.c,
-iparam.c, iscanbin.c, zdps.c, zfcmap.c, zdict.c, zfont.c, zfont0.c,
-zgeneric.c, zht2.c, zmisc2.c)
-
-Changes Pattern color remapping so that it saves information in the
-interpreter's part of the graphics state, rather than manipulating the
-e-stack directly. This is needed for interpreter reentrancy. (errors.h,
-icremap.h, igstate.h, interp.c, zgstate.c, zpcolor.c)
-
-Adds to the "main instance" structure a pointer to the currently executing
-context. This is needed for interpreter reentrancy. (imain.h, iminst.h,
-main.h, imain.c, imainarg.c)
-
-Changes the argument list for operator initialization procedures from void
-to i_ctx_t *. (opdef.h, ireclaim.c, zbfont.c, zbseq.c, zcontext.c, zfile.c,
-zfont.c, zpcolor.c)
-
-Changes the initialization of the interpreter's allocators so it doesn't
-presume the allocator structure is global. (ialloc.h, ialloc.c, imain.c)
-
-Factors out the structure definition of the stacks, which is needed for
-defining the state of a context, from the API, which is only needed by
-actual clients. (icstate.h, idsdata.h, idstack.h, iesdata.h, iestack.h,
-iosdata.h, iostack.h, isdata.h, istack.h)
-
-Changes filter error reporting so that the report_error procedure doesn't
-need access to the interpreter. (interp.h, interp.c, zfile.c, zfileio.c)
-
-Completes the implementation of DeviceN color spaces at the interpreter
-level. (lib/gs_res.ps, lib/gs_lev2.ps, lib/gs_ll3.ps, icsmap.h, zcsdevn.c,
-zcsindex.c, zcssepr.c, zimage.c)
-
-Speeds up color mapping for identity transfer, BG, or UCR functions.
-(zcolor.c)
-
-</pre><h3><a name="5.80_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The L range for Lab color spaces was wrong. (lib/pdf_draw.ps)
- - Images in Lab color spaces came out all black. (lib/pdf_draw.ps)
-
-Improves the font substitution mechanism slightly. (lib/pdf_font.ps)
-
-</pre><h3><a name="5.80_Streams"></a>Streams</h3><pre>
-
-Adds an error string to the stream state structure, which stream
-implementations can set when returning an error. The motivation is to allow
-the PostScript interpreter to put this into $error.errorinfo. (scommon.h,
-stream.c)
-
-</pre><h3><a name="5.80_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The S_ISCHR fix in 5.73 had a typo. (stat_.h)
- - The garbage collector traced dash pattern pointers even if the
-pattern had no elements. (gzline.h, gsistate.c)
- - Always tracing the clip_path element of gx_device_clist for
-garbage collection could cause crashes, because this pointer could be stale.
-However, we have to trace this pointer if an image is being processed.
-(gxclist.c)
- - A close-brace was positioned incorrectly. (No effect on the
-working of the code.) (gximage3.c)
- - Some macros caused some compilers to complain about functions that
-didn't return values. (gsmemlok.c)
- - A procedure vector wasn't declared const. (gsmemlok.c)
- - Some needed headers weren't included. (gscrdp.c)
- - A const pointer was being treated as non-const. (gxcpath.c)
- - The algorithm for choosing halftone cell dimensions required an
-unreasonably close angle tolerance (0.01 degrees, rather than 1% of a
-90-degree possible difference). (gshtscr.c)
-
-Speeds up arcs a little more. (gspath1.c)
-
-Removes some unnecessary #includes. (gxclpath.h, gxcpath.h, gzcpath.h,
-gxccman.c, gxclip.c, gxcpath.c, gxi12bit.c, gxicolor.c, gxifast.c,
-gximono.c, gxiscale.c, gxpcmap.c)
-
-Cleans up some formatting. (gxpath.c)
-
-Re-enables image interpolation for images that have at least 8 bits of input
-data per pixel. This is still a compromise.... (gxiscale.c)
-
-Enhances the default implementation of parameter lists so that a C parameter
-list can forward unrecognized param_read calls to another parameter list.
-This allows constructing incrementally modified parameter lists for internal
-purposes. (gsparam.h, gscparam.c)
-
-Changes the first argument of the Type 1 charstring interpreter push_value
-(which is renamed push_values) and pop_value callbacks from the font pointer
-to an arbitrary pointer passed in to the interpreter. This is needed for
-PostScript interpreter reentrancy. (gstype1.h, gxfont1.h, gxtype1.h,
-gstype1.c, gxtype1.c)
-
-Adds an allocator wrapper that calls a closure to attempt to free up memory
-if an allocation fails. This is used for asynchronous operation (waiting
-for the page queue to empty) and operation with an optional disk for the
-band list. (gsmemret.h, gsmemret.c)
-
-Adds the retrying wrapper to the malloc allocator. (gsmalloc.c)
-
-Makes "async" printer devices use the retrying wrapper. (gdevprna.c)
-
-Makes clist_fill_parallelogram recognize rectangles. This makes a big
-difference for images rotated 90 degrees. (gsrect.h, gdevddrw.c,
-gxclpath.c)
-
-Arranges to construct the list of image classes (formerly called strategies)
-statically rather than dynamically. (lib.mak, gscdefs.h, gxiclass.h,
-gximage.h, gconf.c, gxi12bit.c, gxicolor.c, gxifast.c, gximono.c,
-gxipixel.c, gxiscale.c)
-
-Implements Indexed color spaces for high-level image banding. (gxclist.h,
-gxclpath.h, gxclimag.c, gxclrast.c)
-
-Arranges to construct the blank bitmap for colored patterns statically
-rather than dynamically. (gsbitmap.h, gxbitmap.h, gxcht.c)
-
-Changes FORCE_STRIP_HALFTONES from a #define to a static Boolean.
-(gshtscr.c)
-
-Implements alternate-space DeviceN color spaces. (gscspace.h, gxcdevn.h,
-gscdevn.c)
-
-Implements DeviceN color spaces for images. (gximage.h, gsimage.c,
-gxi12bit.c, gxicolor.c, gxidata.c, gximage3.c, gximono.c, gxipixel.c)
-
-Speeds up color mapping a bit. (gxfmap.h, gsdevice.c, gsstate.c,
-gxclbits.c, gxclrast.c, gxcmap.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.73"></a>Version 5.73 (tester) (3/19/99)</h2>
-
-<p>
-This fileset fixes a few bugs and adds a couple of minor performance
-improvements. Its purpose is to fix a fairly serious memory management bug
-and a Microsoft-platform compilation problem, both introduced in 5.72.
-
-<h3><a name="5.73_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - Removes the restriction on device registration that was introduced
-in 5.72.
- - gx_[c]path_scale_exp2 are replaced by gx_[c]path_scale_exp2_shared.
-
-</pre><h3><a name="5.73_Documentation"></a>Documentation</h3><pre>
-
-Identifies GNU readline support as user-contributed, and adds the author's
-name. (int.mak, unix-gcc.mak, gp_gnrdl.c)
-
-Notes that an edit is required for GNU readline for AIX. (doc/Make.htm)
-
-Changes the bug reporting e-mail address to bug-gs@aladdin.com.
-(doc/Bug-form.htm, doc/New-user.htm, doc/Use.htm, imainarg.c)
-
-</pre><h3><a name="5.73_Procedures"></a>Procedures</h3><pre>
-
-Adds FEATURE_DEVS_EXTRA and DEVICE_DEVS_EXTRA, reserved for setting from the
-command line. (gs.mak)
-
-</pre><h3><a name="5.73_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - A needed cast was missing. (gdevx.c)
-
-</pre><h3><a name="5.73_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - A needed cast was missing. (zfname.c)
- - The CFF loader didn't handle empty subsections correctly.
-(lib/gs_cff.ps)
- - GNU readline gave an error, rather than expanding the input
-buffer, when called in response to %lineedit. (files.h, zfileio.c,
-ziodev.c)
- - GNU readline wasn't always initialized, causing a crash when an
-attempt was made to shut it down. (iminst.h, imain.c)
-
-Adds more tracing to the CFF loader. (lib/gs_cff.ps)
-
-Adds some deconstifying casts to compensate for broken headers in the GNU
-readline package. (gp_gnrdl.c)
-
-</pre><h3><a name="5.73_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The bounding box device didn't ignore filling paths consisting
-only of a moveto. (gdevbbox.c)
- - Some systems have S_IFCHR but not S_ISCHR. (stat_.h)
- - The clipping list accumulator didn't merge single rectangles
-correctly. (gxacpath.c)
- - The clipping list accumulator wasn't aggressive enough about
-merging rectangles. (Performance effect only.) (gxacpath.c)
- - The page wasn't cleared when installing a new device. (bug
-introduced in 5.72) (gsdevice.c)
- - With graphics anti-aliasing enabled, executing clip or eoclip
-followed by fill or stroke produced incorrect output. (bug introduced
-between 5.10 and 5.50) (gxpath.h, gspaint.c, gxcpath.c, gxpath2.c)
- - The garbage collector could crash if any banded devices were
-active. (bug introduced in 5.72) (gdevprn.c)
-
-Changes memory management for device instances to allocate the structure
-type objects dynamically. This gets rid of a static, and also gets rid of
-the requirement that device prototypes be registered, at the expense of an
-extra copy of the (small) structure type object per instance of certain
-devices. (gscdefs.h, gxdevcli.h, gxdevice.h, gconf.c, gsdevice.c)
-
-Disables image interpolation for all high-resolution images, not just
-black-and-white, since this produces better-looking output. (gxiscale.c)
-
-Speeds up path bounding box computation a little. (gxpath2.c)
-
-Speeds up clipping a little. (gxclip.c)
-
-Cleans up formatting a bit. (gxacpath.c)
-
-Adds support for libpng version 1.0.3, but (for now) updates only the
-OpenVMS and Unix makefiles to use it. (libpng.mak, openvms.mak,
-openvms.mmk, ugcclib.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak)
-
-Attempts to work around picky compilers that don't allow assigning T[M][N]
-to const T[M][N]. (gxcht.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.72"></a>Version 5.72 (tester) (3/17/99)</h2>
-
-<p>
-This fileset finally gets rid of the need to have jpeg, libpng, or zlib
-source code on Unix systems that already have these libraries available. It
-also starts to add support for general DeviceN color spaces.
-
-<p>
-Works in progress:
-<ul>
-<li> - Fix Fontmap -&gt; Fontmap.GS link, which VMS can't handle.
-<li> - Make x11alpha do real alpha blending.
-<li> - spdiff.c is unfinished, partly wrong.
-<li> - DeviceN support is in progress. In gxcht.c,
-set_ht_colors_le_4
-and set_color_ht_gt_4 don't have any way to color-map >4 planes.
-</ul>
-
-<h3><a name="5.72_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - The str argument of arg_push_memory_string is no longer const.
- - The last argument of print_reloc is now const.
-
-(Library)
- - Clients should never call the device open_device or close_device
-procedure directly: they should call gs_opendevice or gs_closedevice.
- - The fn_free_functions procedure has been made private.
- - The first argument of gs_currentpoint is no longer const.
- - References to header files in the third-party libraries must now
-include a trailing _, i.e.: jerror_.h jmorecf_.h jpeglib_.h png_.h zconf_.h
- - IJG JPEG library versions before v5a are no longer supported.
- - ilog2 replaces small_exact_log2.
- - Support for "outside" clipping has been removed.
- - Clients that define their own devices now must either register
-them in the makefile (using the SET[P]DEV[2] macros) or set the stype
-pointer in the static prototype to the correct structure type (or at least a
-structure type with the correct procedures).
-
-</pre><h3><a name="5.72_Documentation"></a>Documentation</h3><pre>
-
-Clarifies the fact that clients should never call the device open_device or
-close_device procedure directly. (doc/Drivers.htm)
-
-Updates contact information for Artifex Software. (doc/Commprod.htm,
-doc/New-user.htm)
-
-Clarifies the fact that Aladdin did not write gdevcdj.c. (gdevcdj.c)
-
-Documents the new -TTYPAUSE switch. (doc/Use.htm)
-
-Adds SCO OpenServer 5.0.5 to the list of systems where Ghostscript is known
-to build. (doc/Make.htm)
-
-Notes that the MIPSpro 7.2.1.3m compiler produces incorrect output.
-(doc/Make.htm)
-
-</pre><h3><a name="5.72_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The Unix install directory ($(gsdatadir)) and the Unix default
-search path ($(gsdatadir)/lib) weren't compatible. (bug introduced since
-5.50) (unixinst.mak)
- - The compilation rule for echogs omitted a dependency and also
-failed to specify a directory for header files. (unix-aux.mak)
- - Third-party library source code was required even if the
-corresponding SHARE_xxx option was set to 1. (devs.mak, gs.mak, int.mak,
-lib.mak, jpeg.mak)
-
-Adds a -dTTYPAUSE switch to cause .confirm to read from /dev/tty instead of
-stdin, useful when the data input is a pipe. (lib/gs_init.ps)
-
-</pre><h3><a name="5.72_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - Some preprocessor macros were defined twice on VMS. (echogs.c)
- - traceop.ps didn't build operator-tracing procedures in global VM.
-(This didn't matter before we introduced local pseudo-operators.)
-(lib/traceop.ps)
- - geninit produced invalid output or hung if the input files didn't
-have the correct EOL representation for the platform. (geninit.c)
-
-Updates a (probably otherwise obsolete) file for the deletion of the private
-JPEG library error message table. (bughunt.sh)
-
-</pre><h3><a name="5.72_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - A procedure returning void tried to return a value. (gdevtfax.c)
- - For 24-bit displays, XGetImage can return an image in which
-bits_per_pixel is 32 rather than 24, which is not at all obvious from the
-documentation; also, the bit and byte ordering may not be MSBFirst.
-(gdevx.c)
- - XFree takes a char *, not a void *. (gdevx.c)
- - The fix in 5.71 to adjust the width of TIFF images introduced
-another bug. (gdevtfax.c)
- - If the X driver used a standard colormap, pixel values 255 and
-less didn't map back to RGB properly. (bug introduced in 5.71) (gdevxcmp.c)
- - The ForceMono addition to gdevbit.c (in 5.71) was incorrect.
-(gdevbit.c)
- - There was a const mismatch in an extern. (gdevxalt.c)
- - Third-party library source code was required even if the
-corresponding SHARE_xxx option was set to 1. Fixing this required
-referencing all third-party library header files through *_.h files.
-(gdevjpeg.c, gdevpdfi.c, gdevpng.c, gdevpsdi.c, gdevpsdp.c)
- - There was no way to cause the bounding box device to give up its
-reference to the target. (gdevbbox.h, gdevbbox.c)
- - pdfwrite crashed if given a 12-bit-per-sample CMYK image when
-ConvertCMYKImagesToRGB was true, and produced invalid output for other
-12-bit-per-sample images (PDF limits bits-per-sample to 8). (gdevpsdi.c)
- - pdfwrite mangled planar images if bits-per-sample was other than
-8. (bug introduced since 5.50) (gdevpdfi.c)
-
-Changes some code to reduce compiler warnings about casts discarding const.
-(gdevxalt.c)
-
-Removes a test that allowed referencing the statically allocated instance of
-the alternative X drivers. (gdevxalt.c)
-
-Changes a reference to small_exact_log2. (gdevsvga.c)
-
-Greatly improves the PDF writer's handling of simple pattern fills, by
-retaining them as pattern fills. (gdevpdfx.h, gdevpdf.c, gdevpdfi.c)
-
-</pre><h3><a name="5.72_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - Cn in a font name wasn't recognized as indicating a condensed
-font. (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.72_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Third-party library source code was required even if the
-corresponding SHARE_xxx option was set to 1. Fixing this required
-referencing all third-party library header files through *_.h files.
-(zfdctd.c, zfdcte.c)
- - An /undefined error occurred on floating point numbers whose
-integer part exceeded the size of a long (normally 31 bits) and that also
-included a fraction. (iscannum.c)
- - ialloc.c included gxarith.h unnecessarily. (ialloc.c)
-
-When opening a terminal for reading, always sets the buffer size to 1. This
-does not apply to %stdin, %lineedit, or %statementedit. (zfile.c)
-
-Changes code to use the new deconstifying freeing procedures, to remove
-deconstifying casts. (gsargs.h, ialloc.h, gsargs.c, zfname.c, zfunc.c)
-
-Adds a writable packed ref pointer variant to ref.value, to remove compiler
-warnings about casts discarding const. (igc.h, iref.h, idict.c, igc.c,
-igcref.c)
-
-Changes the help printouts to use the new printf_program_ident procedure.
-(imainarg.c)
-
-Generalizes clients to handle color spaces that may have more than 4
-components. (zcsdevn.c, zcsindex.c, zcssepr.c, zdpnext.c, zfdecode.c)
-
-Removes support for outside clipping, which we implemented only because we
-misinterpreted a requirement. (zpath.c)
-
-</pre><h3><a name="5.72_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Selecting a colored Pattern color space caused an error.
-(lib/pdf_draw.ps, lib/pdf_ops.ps)
- - Reading data from a subfile with no filter caused an error.
-(lib/pdf_base.ps)
-
-Allows mask images to omit BitsPerComponent: Acrobat Reader accepts this
-even though the PDF specification requires it to be present (with value =
-1). (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.72_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The PixelDifference filters didn't propagate leftover bits in the
-last byte of a row. (bug probably introduced in 5.60) (spdiff.c)
- - The 1- and 2-bit-per-pixel PixelDifferenceEncode filters were
-broken. (spdiff.c)
-
-Changes code slightly to remove a warning about an uninitialized variable.
-(spdiff.c)
-
-Extends the PixelDifference filters to handle more than 4 Colors.
-s_PDiff_max_Colors is the maximum value. (spdiffx.h, spdiff.c)
-
-Adds a stream for converting 12-bit samples to 8-bit. (gdevpsds.h,
-gdevpsds.c)
-
-Gets rid of the no longer needed private copy of the JPEG error message
-table. (sdcte.c, sdeparam.c, sjpegerr.c [deleted], sjpegc.c)
-
-</pre><h3><a name="5.72_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - If a 1-bit-per-pixel image terminated early, the last few scan
-lines might not be written out. (gxidata.c)
- - The bbox device could leave its target in a half-open state,
-because it called the open/close_device procedures directly rather than
-going through gs_open/closedevice. We "fixed" this by making this device
-forward open and close, but conditionally, so that clients can choose.
-(gdevbbox.c)
- - Third-party library source code was required even if the
-corresponding SHARE_xxx option was set to 1. Fixing this required
-referencing all third-party library header files through *_.h files.
-(sdcparam.c, sdctc.c, sdctd.c, sddparam.c, sjpegc.c, sjpegd.c, sjpege.c,
-sjpegerr.c)
- - Low-memory recovery in the band list writer sometimes didn't work,
-because a test was backwards. (gxcldev.h, gxclist.c)
- - Executing a put_params during band rasterizing didn't update
-cached values in the imager state. This was probably not a problem in
-practice, since the only parameters that affect cached values (device color
-space, depth, and color mapping) were very rarely set. (gxclrast.c)
- - Converting 12-bit planar images to chunky format could store
-beyond the end of the output area and corrupt memory. (gsflip.h, gsflip.c)
- - The algorithms for converting 4-plane, 1- and 2-bit planar images
-to chunky format were wrong. (gsflip.c)
- - Images that lay entirely outside the page could cause a memory
-access error. (gxclimag.c)
- - The bbox device could return excessively conservative values for
-stroked paths. (gxpaint.h, gdevbbox.c, gxpaint.c, gxstroke.c)
- - Banding devices now include some pointers that the garbage
-collector must trace. (gdevprn.h, gxclist.h, gxdevice.h, gdevprn.c,
-gsdevice.c, gxclist.c)
-
-Adds a gs_opendevice procedure to mirror gs_closedevice. (gsdevice.h,
-gsdevice.c)
-
-Adds deconstifying freeing procedures to the memory manager. This allows us
-to have pointers as structure members that should be const * for all
-ordinary clients, and still be able to free the referenced objects without a
-compiler warning. (gsmemory.h, gsmemory.c)
-
-Changes code, often to use the new deconstifying freeing procedures, to
-remove deconstifying casts. (gspath.h, gxfunc.h, gsfunc.c, gsfunc0.c,
-gsfunc3.c, gspath.c, gsptype1.c)
-
-Changes the eprintf macros so they print the version as well as the program
-name. (std.h, gscdef.c, gsmisc.c)
-
-Adds procedures that update cached values in graphics or imager states after
-setting device parameters. Clients should use these when setting parameters
-of devices that may be current in graphics or imager states. Note that this
-is only a partial solution for a much deeper problem, and may even have to
-be replaced at some point. (gsdevice.h, gsdevice.c)
-
-Defines GS_CLIENT_COLOR_MAX_COMPONENTS (in gsccolor.h),
-GX_DEVICE_COLOR_MAX_COMPONENTS (in gxcindex.h), and GS_IMAGE_MAX_COMPONENTS,
-and starts to use them where needed, in anticipation of implementing DeviceN
-color spaces. (gsccolor.h, gsdcolor.h, gsiparam.h, gsiparm4.h, gxcindex.h,
-gxctable.h, gximage.h, gxshade.h, gdevplnx.c, gscdevn.c, gscolor2.c,
-gxcht.c, gxclimag.c, gxcmap.c, gxicolor.c, gxctable.c, gxi12bit.c)
-
-Replaces small_exact_log2 by a procedure ilog2 that computes floor(log2(n)).
-(gxarith.h, gsmisc.c, gspaint.c, gxccman.c, gxclimag.c, gxclrect.c)
-
-Upgrades gsflip.c to handle >4 planes. (gsbitops.h, gsflip.h, gsflip.c)
-
-Speeds up getting and testing memory device prototypes a little. (gdevmem.c)
-
-Speeds up adding arcs to a path a little. (gspath1.c)
-
-Increases the precision of a precomputed constant from float to double.
-(gxpath.h)
-
-Adds a new band list operation to make circles smaller and faster.
-(gxclpath.h, gxclpath.c, gxclrast.c)
-
-Adds an accessor procedure for the start point of the current subpath.
-(gxpath.h, gxpath2.c)
-
-Removes support for outside clipping, which we implemented only because we
-misinterpreted a requirement. (gspath.h, gxcldev.h, gxcpath.h, gxpath.h,
-gspath.c, gxacpath.c, gxclip.c, gxclpath.c, gxclrast.c, gxcpath.c)
-
-Changes gs_copydevice to require that static prototypes either be registered
-in gx_device_list or have a correct stype pointer. (This is already the
-case for all devices in code we distribute.) (gsdevice.c)
-
-Adds ENUM_PTRS_PROC and RELOC_PTRS_PROC macros for giving a name to the
-typed pointer to the object being processed. (gsstruct.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.71"></a>Version 5.71 (tester) (3/3/99)</h2>
-
-<p>
-This fileset reinstates support for TrueColor X displays, and adds optional
-support for GNU readline. It also includes a little more work on the new
-driver text API.
-
-<h3><a name="5.71_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - The *line_accum* macros are now capitalized; declare_line_accum is
-renamed DECLARE_LINE_ACCUM_COPY, and DECLARE_LINE_ACCUM is new.
-
-</pre><h3><a name="5.71_Documentation"></a>Documentation</h3><pre>
-
-Documents the CIE joint cache invariant more accurately. (gscie.h)
-
-Adds a request for xdpyinfo/xwininfo output to the problem reporting form.
-(doc/Bug-form.htm)
-
-</pre><h3><a name="5.71_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The default search path was missing the lib subdirectory on many
-platforms. (dvx-gcc.mak, os2.mak, ugcclib.mak, unix-gcc.mak, unixansi.mak,
-unixtrad.mak, watc.mak, watclib.mak, watcw32.mak)
- - The dependency list for the X Windows drivers was incorrect,
-sometimes causing needed recompilation to be omitted. (devs.mak)
-
-</pre><h3><a name="5.71_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The representation of maximum unsigned values produced warnings on
-some compilers (specifically, gcc with -Wtraditional). (genarch.c)
- - Some string variables weren't declared const. (echogs.c,
-genarch.c)
- - The viewpbm utility was broken for pgm and ppm (but not pbm).
-(bug introduced in 5.66) (lib/viewpbm.ps)
-
-</pre><h3><a name="5.71_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The X driver didn't handle TrueColor displays properly.
-(gdevxcmp.h, gdevxcmp.c)
- - The alternative X drivers didn't implement get_bits properly.
-(gdevxalt.c)
- - The X driver specified the byte order incorrectly for displays
-with more than 8 bits per pixel. (gdevx.c)
- - The X driver used the wrong number of bits for comparing colors on
-visuals with fixed color maps. (gdevxcmp.h, gdevxcmp.c)
- - Some symbols were multiply defined with -DNOPRIVATE. (gdevbit.c)
- - If a file specified a paper size, rather than using the default,
-the G3/G4 fax output drivers didn't adjust the width to a legal one for fax
-systems. (gdevtfax.c)
-
-Segregates the resource lists, for which warnings about casting of const to
-non-const string types should be suppressed, into a separate file.
-(devs.mak, gdevx.h, gdevxini.c, gdevxres.c)
-
-Splits off the code related to color mapping for X Windows, for greater
-understandability. (devs.mak, gdevx.h, gdevxcmp.h, gdevx.c, gdevxcmp.c,
-gdevxini.c)
-
-Changes code slightly to remove warnings about signed/unsigned integer
-constants. (gdevxalt.c)
-
-Changes code to remove unused variables. (gdevx.c, gdevxalt.c)
-
-Adds a user-contributed driver for the H-P LaserJet 4D. (devs.mak,
-gdevdjet.c)
-
-Makes the bitcmyk driver reset its map_cmyk_color procedure dynamically
-according to the depth, allowing more efficient execution in the 1- and
-8-bit cases. (gdevbit.c)
-
-Adds a settable option, AdjustWidth, to control whether the fax-format
-drivers (faxg*, tiffcrle, tiffg*) adjust the page width to legal fax values.
-Its default value is 1 (do adjust). (devs.mak, gdevtfax.c)
-
-Adds a ForceMono parameter to the bitcmyk/bitrgb devices to implement a
-special monochrome-in-CMYK mode requested by a customer. (gdevbit.c)
-
-Removes the TRIM_ and EXPAND_BITS_TO_BYTES options from the bit devices,
-since they are no longer needed. (gdevbit.c)
-
-</pre><h3><a name="5.71_Fonts"></a>Fonts</h3><pre>
-
-Changes the substitution mechanism for condensed / narrow fonts, so that the
-PDF interpreter can use it. (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.71_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The bind operator generated unaligned accesses and might not
-operate reliably. (bug introduced in 5.70) (zmisc.c)
- - If the BuildChar procedure of a font included an image or
-imagemask operator, charpath would (incorrectly) display the character.
-(zimage.c)
-
-Adds a bogus return statement to suppress a compiler warning. (gs.c)
-
-Changes code slightly to remove warnings about signed/unsigned integer
-constants. (store.h, ibnum.c)
-
-Changes the build date format to %d-%02d-%02d. (lib/gs_init.ps, imainarg.c)
-
-Rearranges some code to add readline support. (files.h, imain.c, zfileio.c,
-ziodev.c)
-
-Adds support for GNU readline, with several completion keys, contributed by
-a user. (int.mak, gs_rdlin.ps, gp_gnrdl.c)
-
-Changes the font substitution machinery slightly so the PDF interpreter can
-use it. (lib/gs_fonts.ps)
-
-</pre><h3><a name="5.71_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - In-line images caused a syntaxerror or stackunderflow.
-(lib/pdf_draw.ps)
- - The font substitution mechanism didn't detect Condensed fonts.
-(lib/pdf_font.ps)
- - The font substitution mechanism didn't use the intelligent
-algorithm used for PostScript files. (lib/pdf_font.ps)
-
-Prints a message when substituting for a font on the basis of its
-descriptor. (lib/pdf_font.ps)
-
-</pre><h3><a name="5.71_Streams"></a>Streams</h3><pre>
-
-Adds an interface and default implementation for readline. (srdline.h,
-stream.h, stream.c)
-
-</pre><h3><a name="5.71_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - A void procedure attempted to return a value. (stream.c)
- - A pointer was declared with an extra *. (gsmemory.c)
- - An argument would be stringified with traditional C. (gdevdbit.c)
- - The check for validity of the CIE joint caches was wrong, leading
-to incorrect output in some obscure cases. (gsciemap.c)
- - A tiny rounding inaccuracy could cause an occasional blank line
-when rendering adjacent images. (gxipixel.c)
- - Some symbols were multiply defined with -DNOPRIVATE. (gsptype2.h)
- - If a character was too large to be cached, it didn't use
-anti-aliasing, even if TextAlphaBits was >1. (gspaint.c)
-
-Changes code slightly to remove warnings about signed/unsigned integer
-constants. (gsccode.h, gsmisc.c, gxcht.c)
-
-Changes code to remove a warning about an unhandled case in a switch.
-(gsstruct.h, gsmemory.c)
-
-Changes code to remove unused variables. (gxcindex.h, gdevdbit.c,
-gdevprn.c, gxiscale.c)
-
-Restructures the header files for the new text API, adding the SINGLE
-options in text_params, enough new elements in text_enum to store all the
-arguments of text_begin, and new elements in text_enum to hold results
-returned by text_process. This code is no longer "subject to [arbitrary]
-change without notice", although it is still not very stable. (gstext.h,
-gxtext.h, gstext.c)
-
-Changes code to remove warnings about uninitialized variables. (gxipixel.c)
-
-Changes the syntactic form of some constants yet again to suppress a
-different set of compiler warnings. (gxsample.c)
-
-Adds a procedure to fix the charpath-in-BuildChar problem. (gsimage.h,
-gsimage.c, gsptype1.c)
-
-Speeds up the handling of certain RasterOp cases for CMYK devices.
-(gxdevice.h, gxdevmem.h, gdevdrop.c, gdevmem.c, gdevmr8n.c, gdevrops.c)
-
-Adds a platform-specific interface for reading lines from stdin. This is
-intended primarily to support GNU readline. (lib.mak, gp.h, gp_strdl.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.70"></a>Version 5.70 (internal) (2/20/99)</h2>
-
-<p>
-This fileset includes substantial changes to the interpreter in support of
-making it fully reentrant (eliminating writable globals).
-
-<h3><a name="5.70_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Interpreter)
- - The ref_stack structure has been renamed ref_stack_t, and has been
-changed substantially. Clients should now access all of its members, other
-than the pointers to the current block, through the macros or procedures
-defined in istack.h. The STACK_LOOP_{BEGIN,END} macros have been removed.
- - The argument of context_state_load is no longer const.
- - Each file's table of operator definitions is now limited to 16
-entries. op_def_table[] no longer exists: use op_index_def() instead.
- - invalid_file_entry now has an associated VM space,
-avm_invalid_file_entry, that must be used in constructing invalid file refs.
- - restore will now undo binding of pseudo-operators. Attempting to
-bind a local pseudo-operator into a global procedure will cause an
-invalidaccess error.
-
-</pre><h3><a name="5.70_Documentation"></a>Documentation</h3><pre>
-
-Updates the driver documentation a bit. It probably still includes a lot of
-out-of-date text. (doc/Drivers.htm)
-
-Improves the problem reporting form to make it absolutely clear that test
-data are required, and that the problem must be reproducible without using a
-viewer. (doc/Bug-form.htm)
-
-Documents the -dDOINTERPOLATE switch. (doc/Use.htm)
-
-Documents the difference between public and tester releases, in connection
-with making tester releases available to everyone. (doc/New-user.htm)
-
-Updates the list of history files. (doc/Readme.htm)
-
-Adds a questionnaire for people who want to be notified of new test
-releases. (doc/Readme.htm, doc/Tester.htm)
-
-</pre><h3><a name="5.70_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - A ! was missing before an include. (bcwin32.mak, msvc32.mak)
- - A trailing \ in some macro definitions was quoted incorrectly.
-(bcwin32.mak, msvc32.mak)
- - An editing error prevented a makefile from working. (bcwin32.mak)
- - The 16-bit spooler executable didn't reference its icon correctly.
-(gs16spl.rc)
- - The Watcom makefiles had gotten badly out of date. (watc.mak,
-watclib.mak, wccommon.mak)
- - Some DEVICE_DEVS lines were too long for the shell to handle.
-(openvms.mmk)
- - A space was missing before a colon. (openvms.mmk)
-
-Updates MSVC support to handle version 6. (msvc32.mak)
-
-Extends genconf to handle function types as well as image types, and changes
-the output for image types. (genconf.c)
-
-Desupports the use of CONFIG for selecting between multiple configurations,
-since parameterized output directories do this better. (bcwin32.mak,
-dvx-gcc.mak, gs.mak, int.mak, lib.mak, msvc32.mak, msvclib.mak, openvms.mak,
-openvms.mmk, os2.mak, ugcclib.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak,
-watc.mak, watclib.mak, watcw32.mak)
-
-Adds a -dDOINTERPOLATE switch to force Interpolate in all images.
-(lib/gs_init.ps)
-
-</pre><h3><a name="5.70_Utilities"></a>Utilities</h3><pre>
-
-Rewrites viewpcx to eliminate dependence on a special filter.
-(lib/viewpcx.ps)
-
-</pre><h3><a name="5.70_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The [e]pswrite and pdfwrite drivers wrote out clipping paths using
-the winding number rule even if the path had been set with eoclip.
-(gdevpdfd.c, gdevvec.c)
- - Some occurrences of ushort should have been gx_color_value.
-(gdevpbm.c)
- - A comment was accidentally left outside comment quotes.
-(gdev3852.c)
- - There was a char/byte mismatch not covered by a cast.
-(gdevdcrd.c)
- - There were still some references to the 'huge' keyword, which has
-been superseded by FAR. (gdevwdib.c)
- - Some obsolete references to which_colors hadn't been removed.
-(gdevwdib.c)
- - The [e]pswrite driver produced incorrect output for a curveto or
-closepath followed by a lineto and then a moveto. (gdevps.c)
- - The [e]pswrite driver could produce incorrect output for paths
-ending with a lineto. (gdevps.c)
- - The name paper_sizes was used both by a driver and by other code,
-causing a problem when building with -dNOPRIVATE. (gdevclj.c)
-
-Consolidates the X error handling statics into a structure. (gdevxini.c)
-
-Updates the pdfwrite driver to reflect the addition of state to the
-ASCII85Encode filter. (gdevpsdf.c)
-
-Adds a user-contributed driver for the Lexmark 5700 printer (black-and-white
-only). (contrib.mak, gdevlxm.c)
-
-Updates the mswinpr2 driver with a new, user-contributed one that includes
-interaction with the user. (gdevwpr2.c)
-
-</pre><h3><a name="5.70_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - When TrueType support was present, the FONTPATH scanner didn't
-recognize TrueType fonts whose 'type' was "true" rather than the documented
-<00 01 00 00>. (lib/gs_ttf.ps)
- - When DEBUG was set, loading a TrueType font could cause an
-/undefined error. (lib/gs_ttf.ps)
-
-</pre><h3><a name="5.70_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Local (pseudo-)operators could get bound into global procedures
-with 'bind', causing dangling references. Attempting this now causes an
-invalidaccess error. Fixing this also required making restore undo binding
-of pseudo-operators. (zmisc.c)
- - A harmless dictfull error occurring during language level
-switching caused an error. (zmisc2.c)
- - If given a closed input file, flushfile caused an error, rather
-than doing nothing. (zfileio.c)
-
-Renames the ref_stack structure as ref_stack_t, and factors it so that the
-parts set only at initialization are separated from the dynamic parts, in
-support of moving the stacks from static to dynamic storage. (icstate.h,
-idebug.h, idstack.h, iestack.h, iostack.h, iparam.h, iparray.h, istack.h,
-idebug.c, interp.c, iparam.c, istack.c, zcontext.c, zpacked.c, zvmem.c)
-
-Moves the dynamic part of the stacks in-line in the context structure; gets
-rid of the statically allocated stacks. (dstack.h, estack.h, icontext.h,
-icstate.h, idstack.h, iestack.h, interp.h, iostack.h, ostack.h, icontext.c,
-iinit.c, interp.c, zcontext.c)
-
-Packages the dictionary lookup statistics in a structure, like the other
-statistics. (idict.c)
-
-Changes from dynamic to static initialization of the function type table.
-(int.mak, ifunc.h, iconf.c, zfunc.c, zfunc0.c, zfunc3.c)
-
-Removes the PCXDecode filter. (zfilterx.c)
-
-Removes more writable statics. (int.mak, btoken.h, files.h, icstate.h,
-igstate.h, ipacked.h, iscan.h, icontext.c, imain.c, iscan.c, iscanbin.c,
-zbseq.c, zcolor2.c, zcontext.c, zgstate.c, ziodev.c, zmath.c, zpcolor.c,
-zpacked.c)
-
-Changes the representation of the operator table to avoid allocating a
-dynamic copy. This introduces a limit of 16 entries per definition set.
-(int.mak, opdef.h, iconf.c, idebug.c, iinit.c, interp.c, iutil.c,
-zcontext.c, zcontrol.c, zdict.c, zfileio.c, zgstate.c, ztype.c)
-
-Includes the ASCII85Decode filter in all configurations, for simplicity.
-(iscan.c, zfdecode.c)
-
-Makes the invalid file reference point to a static object. (files.h,
-icontext.c, zfile.c, ziodev.c)
-
-Changes all dictfull error returns from the dictionary code to use
-return_error. This should have been done a long time ago! (idict.c)
-
-Increases the predefined size of systemdict a little more because .upp files
-may define a lot of new entries. (iinit.c)
-
-Adds a few more interpreter statistics. (interp.c)
-
-</pre><h3><a name="5.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Images never closed the data stream, placing a heavy load on the
-garbage collector to clean up streams and stream states. (lib/pdf_draw.ps)
- - Streams stored on external files didn't work. (lib/pdf_base.ps)
-
-Reorganizes code slightly to allocate less memory for in-line images.
-(lib/pdf_draw.ps)
-
-Speeds up some common operations a little. (lib/pdf_base.ps)
-
-</pre><h3><a name="5.70_Streams"></a>Streams</h3><pre>
-
-Removes the PCXDecode filter. (spcxx.h [deleted], spcxd.c [deleted])
-
-Changes the name of a variable for greater clarity. (stream.c)
-
-Splits off the ASCII85Decode filter into a separate file, since it turns out
-to be convenient to include it in all configurations. (sa85d.h, sa85x.h,
-sa85d.c, sfilter2.c)
-
-Makes an initialization entry point available for non-heap-allocated
-streams. (stream.h, stream.c)
-
-Changes the ASCII85Encode filter so it always produces lines of at most 80
-characters, not counting the EOD marker. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE, because this filter now needs a state structure, which it didn't
-before. (sa85x.h, sfilter2.c)
-
-</pre><h3><a name="5.70_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Reference counting of graphics state elements was wrong when
-creating multiple contexts, causing memory corruption. (bug probably
-introduced in 5.68) (gsstate.c)
- - If CIE joint caches were created because the reference count of
-the existing caches was >1, the new caches weren't initialized correctly.
-(bug introduced in 5.60, found by Ray Johnston.) (gscie.c)
- - If Margins are set so that part of the default clipping region
-lies outside the ((0,0),(width,height)) device coordinate space, the fast
-case of images could cause a memory access error. (gxifast.c)
- - In the case of a halftone with more bits than levels,
-gx_check_tile_cache could incorrectly return false, causing images to render
-more slowly than they should. (gzht.h, gxht.c)
- - There was a const mismatch between an argument and the formal
-parameter. (gdevprn.h, gdevprn.c, gxclread.c)
- - An error in the definition of st_imager_state_num_ptrs caused the
-garbage collector to omit marking one pointer in imager states, possibly
-causing memory corruption. (gxistate.h)
- - The bbox device, used with no target, didn't properly handle
-images where more data was provided than needed. (gdevbbox.c)
-
-Removes any pretense of supporting multiple threads in a single-threaded
-environment. Dummy synchronization primitives, however, are still provided.
-(gp_nsync.c)
-
-Removes more writable statics. (gximage.h, gxi12bit.c, gxino12b.c,
-gxipixel.c)
-
-Changes the handling of image types, and adds similar handling for function
-types. (gscdefs.h, gconf.c)
-
-Consolidates the gs_std* files into a structure. (gsio.h, gsmisc.c)
-
-Speeds up the fastest (common) case of clipping fill_rectangle and copy_mono
-operations. We could do the same for the other operations if we wanted.
-(gxclip.c)
-
-Identifies this fileset as a tester release. (gscdef.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.69"></a>Version 5.69 (internal) (2/4/99)</h2>
-
-<p>
-This incremental fileset fixes minor compilation problems, as well as many
-problems with driver-based CRDs (not used by PostScript or PDF).
-
-<h3><a name="5.69_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The OpenVMS makefile had not been updated properly to reflect the
-division of files into subdirectories. (openvms.mak)
- - A space was missing before a :. (devs.mak)
- - The MMK makefile had not been updated to reflect the renaming of
-the psm[raw] devices to pksm[raw]. (openvms.mmk)
-
-Changes the default name of the build directory for the library test program
-from debugobj to libobj, so that one can work with both library and
-interpreter builds without interference. (ugcclib.mak)
-
-Adds -fno-builtin to the gcc switches, to detect failure to declare
-functions like memcpy, at a small cost in performance. (ugcclib.mak,
-unix-gcc.mak)
-
-</pre><h3><a name="5.69_Utilities"></a>Utilities</h3><pre>
-
-Makes a couple of minor fixes to ansi2knr, suggested by users. (ansi2knr.c)
-
-Updates ps2ai.ps with an improved version from its author. (lib/ps2ai.ps)
-
-</pre><h3><a name="5.69_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The 32-bit CMYK "async" BMP driver was declared incorrectly as a
-non-async device. (gdevbmpa.c)
- - Some #includes were missing, because gcc didn't warn about
-failures to declare certain standard functions. (x_.h, gdevdcrd.c, gdevx.c)
- - The PC frame buffer device still referred to _ss and near.
-(gdevpcfb.c)
- - The [e]pswrite driver didn't handle bitmaps with a non-zero X bit
-offset correctly. (gdevps.c)
- - The pdfwrite driver wrote all clipping paths with the winding
-number rule, even if they were established by eoclip. (gdevpdfd.c)
- - "Vector" drivers wrote all clipping paths with the winding number
-rule, even if they were established by eoclip. (gdevvec.c)
-
-Adds the CRDName parameter to the sample driver-based CRD. (gdevdcrd.c)
-
-Tweaks the sample driver-based CRD to make it a more realistic (closer to
-the PostScript default). (gdevdcrd.c)
-
-Adds the sample driver-based CRD to the modified X drivers. (devs.mak,
-gdevxalt.c)
-
-</pre><h3><a name="5.69_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Some #includes were missing, because gcc didn't warn about
-failures to declare certain standard functions. (zchar1.c)
- - Driver CRDs were not supported properly. (zcrd.c, lib/gs_lev2.ps)
-
-Changes some code because non-int switch expressions are not handled
-correctly in pre-ANSI C. (igcref.c, zdevice.c)
-
-Adds the ability to set the orientation of zero-length "dots". (zgstate.c)
-
-Adds comments on an alternative shallow-binding design. (dstack.h)
-
-Changes the threshold for repeatedly rescanning change lists so that it is
-based on the cumulative amount of rescanning and not the amount in a single
-pass. (isave.c)
-
-</pre><h3><a name="5.69_Streams"></a>Streams</h3><pre>
-
-Changes some code because non-int switch expressions are not handled
-correctly in pre-ANSI C. (sfilter1.c)
-
-</pre><h3><a name="5.69_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Some casts to (gx_device *) were missing. (gschar.c)
- - Some #includes were missing, because gcc doesn't warn about
-failures to declare certain standard functions. (gdevdgbr.c, gscie.c,
-gsmatrix.c, gxshade1.c)
- - gxclread.c now needs gdevprn.h to declare certain procedures. We
-tried very hard to make the command list machinery not depend on anything
-related to printer devices, but at this point we have not succeeded.
-(gxclread.c)
- - For CRDs set by library clients, the is_identity flags in the
-caches were set incorrectly, producing incorrect output. (gscie.h, gscie.c,
-gscrd.c, gscrdp.c)
- - For CRDs set by library clients, the EncodeABC and RenderTable T
-procedures were sampled incorrectly. (gsciemap.c, gscrd.c)
- - The interpreter tried to sample the TransformPQR functions in the
-PostScript CRD even for driver CRDs. (gscie.h, gscie.c)
- - Library assistance was needed for the interpreter to support
-driver CRDs properly. (gscrdp.h, gscrdp.c)
- - The procedures that accessed cached CIE values didn't round the
-index, so accessing already-cached values could wipe out the cache.
-(gscie.c)
- - The procedure that accessed cached RenderTable.T values simply
-wasn't implemented. (gscrd.c)
-
-Adds an "if (1)" to a macro to suppress "statement not reached" warnings
-from stupid compilers. (gsmemlok.c)
-
-Changes the syntactic form of some constant tables to suppress
-signed/unsigned warning messages. (gsbitops.c, gxsample.c)
-
-Changes some switch statements to if/else because non-int switch expressions
-are not handled correctly in pre-ANSI C. (gdevmr8n.c, gxdcolor.c)
-
-Adds the ability to set the orientation of zero-length "dots". (gsline.h,
-gxline.h, gsline.c, gsstate.c, gxstroke.c)
-
-Adds an allocator state variable to support the change in the rescanning
-algorithm. (gxalloc.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.68"></a>Version 5.68 (internal) (1/29/99)</h2>
-
-<p>
-This fileset implements PatternType 2 (gradient fill) Patterns. All
-significant PostScript LanguageLevel 3 features are now implemented, except
-for DeviceN color spaces. We have also verified that the MMK script for
-OpenVMS also works with MMS.
-
-<p>
-Note that there are significant non-backward compatible changes to memory
-management for device instances: we are sorry about this, but just as with
-paths in 5.22, we had to fix this design problem at some point.
-
-<h3><a name="5.68_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - A new makefile, unix-aux.mak, must be included in all Unix
-top-level makefiles. (It is included in the ones we distribute.)
-unixtail.mak is renamed unixlink.mak.
-
-(Library)
- - The names of the anti-aliasing parameters in the device color_info
-structure have been changed.
- - Dummy definitions for PC-specific C keywords (_cs, _ds, _ss, near,
-far, huge) are no longer provided: these keywords should be removed from
-non-PC-specific code.
- - The names of the alignment_mod, ptr_le, ptr_lt, ptr_ge, ptr_gt,
-and ptr_between macros have been changed to upper case (ALIGNMENT_MOD etc.)
- - gs_make_null_device now takes an additional argument.
- - The ccolor member of a gx_device_color is no longer inside a
-substructure.
- - Clients now must initialize Pattern templates with
-gs_patternN_init, where N is the PatternType (normally 1), before filling in
-the members.
- - gs_pattern_instance_common_t is renamed gs_pattern_instance_t;
-gs_pattern_instance is renamed gs_pattern1_instance.
- - To set the target of a forwarding device, you must now use
-gx_device_set_target rather than setting the target member directly.
- - Memory management for devices has changed substantially, and in a
-subtle way. If you have code that calls the library, please read the
-documentation in gxdevcli.h.
- - Callers of the driver create_buf_device procedure must always call
-it through gdev_create_buf_device, never directly.
- - For composite and CID-keyed fonts, the character code returned by
-gs_show_current_char and gs_kshow_previous_char is now the full multi-byte
-character code rather than just the last byte of the code.
- - gdev_cmap_set_method has been replaced by a device parameter,
-ColorMappingMethod.
- - The CRD pointer parameter for param_write_cie_render1 and
-param_put_cie_render1 is no longer const.
-
-</pre><h3><a name="5.68_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The documentation for resize_object and resize_string didn't allow
-the new size to be the same as the old size, didn't describe what data was
-preserved, and didn't guarantee to return the same object if the new size
-was the same as the old size. (gsmemraw.h, gsmemory.h)
- - The documentation for the value returned by the internal
-.getmetrics32 operator was incorrect. (zchar32.c)
- - The documentation for the special color mapping device didn't say
-that the caller had to call gs_setdevice_no_init to update graphics states.
-(gdevcmap.h)
-
-Notes that OPENVMS.MMK works with both MMK and MMS. (doc/Make.htm)
-
-Adds a note to the C style guide about nested vs. multi-branch 'if'
-statements. (doc/C-style.htm)
-
-Notes that the multi-threaded ("async") drivers require libc version 6 or
-higher under GNU/Linux. (doc/Make.htm)
-
-Notes additional Irix/MIPSpro combinations that compile idict.c incorrectly,
-and gives a workaround. (doc/Make.htm)
-
-Adds a couple more acknowledgements. (doc/Helpers.htm)
-
-Documents the new -Z^ switch. (doc/Use.htm)
-
-Documents the new rules about memory management for device instances
-(gxdevcli.h, gxdevice.h)
-
-</pre><h3><a name="5.68_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The "async" BMP devices were accidentally included in the default
-list for Unix, leading to a requirement for the POSIX thread package, which
-is not available on all systems. (unix-gcc.mak)
- - There was a minor typo in the new MMK script. (openvms.mmk)
- - The MMK script redefines macros, which MMS does not allow.
-(openvms.mmk)
- - The gcc version test used gcc rather than $(CC) for the compiler
-name. (unix-gcc.mak)
- - There was a minor typo in the pcx2up device makefile entry.
-(devs.mak)
- - Some commands in the Unix install rules referenced sh rather than
-$(SHELL). (unixinst.mak)
-
-Makes (dummy) in-RIP trapping an optional feature, and removes it from the
-default configuration. (int.mak, lib.mak)
-
-Splits off the build rules for the Unix auxiliary programs, so they can be
-shared between interpreter and library configurations. (ugcclib.mak,
-unix-aux.mak, unix-gcc.mak, unixansi.mak, unixtail.mak [deleted],
-unixlink.mak, unixtrad.mak)
-
-Adds the bitcmyk device to the list of devices for the library test program.
-(ugcclib.mak)
-
-</pre><h3><a name="5.68_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - ansi2knr didn't handle occurrences of '/' or quoted strings inside
-an argument list correctly. (ansi2knr.c)
-
-At the suggestion of a GNU person, makes ansi2knr check for output errors.
-(ansi2knr.c)
-
-</pre><h3><a name="5.68_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - Setting the resolution on the SPARCprinter didn't work.
-(gdevsppr.c)
- - Even in PDF 1.1 compatibility mode, the PDF writer used a
-predictor to compress images. (gdevpsdi.c)
- - Reference counting for devices was not implemented consistently.
-(gdevxalt.c)
- - gcc (again) missed some static / non-static inconsistencies.
-(gdevbmpa.c, gdevifno.c)
-
-Removes all remaining uses of segment identifiers (_cs, _ds, _ss) from
-non-PC-specific code. (gdev3852.c, gdevcdj.c, gdevhl7x.c, gdevl256.c,
-gdevmgr.c, gdevsgi.c, gdevsppr.c, gdevvglb.c)
-
-Removes all remaining uses of the 'near' keyword from non-PC-specific code.
-(gdevcd8.c, gdevcdj.c, gdevcgm.c)
-
-Changes uses of round_up to ROUND_UP. (gdevmsxf.c, gdevpcx.c, gdevpx.c,
-gdevxxf.c)
-
-Adds user-contributed support for 16-bit displays to the MS Windows driver.
-(gdevmswn.c, gdevwdib.c)
-
-Adds a user-contributed driver (sunhmono) for the Harlequin variant of 1-bit
-Sun raster files. We expect to add other varieties of Sun Raster file
-eventually as well. (contrib.mak, gdevsunr.c)
-
-Adds a user-contributed driver (fs600) for the Kyocera FS-600 laser printer.
-(devs.mak, gdevdjet.c)
-
-Replaces the sample device CRD with a slightly hacked version of the default
-PostScript CRD, and moves it to a separate file for greater flexibility in
-testing. (gdevdcrd.h, gdevbit.c, gdevdcrd.c)
-
-Adds standard and "async" 32-bit CMYK BMP drivers (even though this is
-outside the published BMP format). (gdevbmp.c, gdevbmpa.c)
-
-Changes the names of the separated-CMYK PBM drivers from psm to pksm, to be
-more descriptive. (devs.mak, openvms.mak, unix-gcc.mak, gdevpbm.c)
-
-</pre><h3><a name="5.68_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - On MS Windows and OS/2, "(%stdin) (r) file bytesavailable" caused
-a crash. (gp_msio.c, gp_os2.c)
-
-</pre><h3><a name="5.68_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - TrueType fonts with fewer glyph names in post than entries in loca
-caused an error. (gs_ttf.ps)
-
-Adds additional tracing to the TrueType font loader. (lib/gs_ttf.ps)
-
-Per Adobe, adds the Euro symbol under the name /Euro (capitalized) to
-various built-in Encodings. (lib/gs_mro_e.ps, lib/gs_pdf_e.ps,
-lib/gs_sym_e.ps, lib/gs_wan_e.ps)
-
-</pre><h3><a name="5.68_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - An extraneous file got left in the fileset. (lib/pdf_main.ps.sav
-[deleted])
- - The number of required arguments for .pathbbox was incorrectly
-specified as 0 rather than 1. (zpath1.c)
- - Opening a ReusableStreamDecode filter with a string source and no
-decoding filters left an extra value on the stack. (lib/gs_ll3.ps)
- - Type 32 fonts sometimes didn't display the characters, or
-displayed them offset. (lib/gs_typ32.ps)
- - In LanguageLevel 3, copypage still called EndPage with 1 rather
-than 0. (lib/gs_init.ps)
- - The HalftoneName parameter was missing from the trapping parameter
-set. (lib/gs_ll3.ps)
- - CMap character entries were processed in the wrong order.
-(lib/gs_cmap.ps)
- - CMap'ed non-CID fonts didn't work properly, because they called
-BuildChar with the original character code rather than BuildGlyph with the
-mapped glyph. (zchar.c)
- - Using an out-of-range CID value with a CIDFont caused an error
-rather than substituting a notdef. (lib/gs_cidfn.ps)
- - CIDFontType 0 fonts with a GlyphDirectory didn't fall back to the
-indexed character data if the CID wasn't in the GlyphDirectory.
-(lib/gs_cidfn.ps)
- - CIDFontType 0 fonts didn't substitute a notdef at all.
-(lib/gs_cidfn.ps)
-
-Changes uses of round_up to ROUND_UP. (igcstr.c)
-
-Updates clients for the object-oriented changes to Patterns. (zcolor2.c,
-zpcolor.c)
-
-Implements the rest of PatternType 2. (ipcolor.h, zpcolor.c, zshade.c)
-
-Makes in-RIP trapping an optional feature. (lib/gs_ll3.ps, lib/gs_trap.ps)
-
-Updates clients for the change in gs_show_current_char. (zcfont.c, zchar.c)
-
-Changes the dict_*_param macros to procedures, for easier tracing. This
-includes a change in the return value of dict_matrix3_param. (icie.h,
-zcie.c, zcrd.c)
-
-</pre><h3><a name="5.68_Streams"></a>Streams</h3><pre>
-
-Changes uses of round_up to ROUND_UP. (scfd.c, scfe.c)
-
-</pre><h3><a name="5.68_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Once again, gcc failed to flag a static procedure declaration
-followed by a non-static definition. (gdevprna.c, gximage3.c)
- - Anti-aliasing no longer worked for the x11alpha device. To fix
-this, we factored out the anti-aliasing information in the
-gx_device_color_info structure. (bug introduced in 5.65) (gxdevcli.h,
-gdevabuf.c, gdevdflt.c, gdevxalt.c, gsdparam.c)
- - An empty declaration generated an extraneous semicolon.
-(gxclip2.h)
- - Some macros that generated an if-else construct didn't enclose it
-in BEGIN/END, possibly leading to incorrect parsing. (gxobj.h)
- - A comment was missing a closing */. (gxpageq.h)
- - The handling of the phase in Pattern filling was broken again. We
-probably broke it with the "fix" introduced in 5.24. (gxp1fill.c)
- - Looking up an undefined IODevice name caused a memory access
-error. (bug claimed to be fixed in 5.24) (gsiodev.c)
- - The null device installed for stringwidth didn't copy the color
-mapping information from its target, causing confusion if the current device
-was a pattern accumulator. (gxdevcli.h, gxdevice.h, gschar.c, gsdevice.c,
-gxpcmap.c)
- - mem_mapped2_copy_mono produced incorrect results for byte-aligned
-rectangles exactly 1 byte wide (fix from John D.), and could also access
-data 1 byte beyond the end of each source row. (gdevm2.c)
- - In the case of a masked image or a RasterOp involving a Pattern,
-the garbage collector could fail to follow a pointer, possibly causing
-memory corruption. (gsdcolor.h)
- - Assigning a double value to a float variable caused an infinite
-recursion. (gxshade1.c)
- - Failure to detect when the region being filled had become very
-small caused excessive recursion. (gxshade4.c)
- - The default implementations of resize_object didn't always return
-the old object if the old and new sizes were the same. (gsalloc.c,
-gsmalloc.c)
- - The left side bearing of TrueType characters was sometimes
-calculated incorrectly. (gstype42.c)
- - The TrueType renderer disregarded the left side bearing values.
-We aren't sure that the change we made is right, but it seems to produce
-better output. (gstype42.c)
- - Shadings used the first Decode entry for both X and Y values.
-(gxshade.c)
- - Function-based Shadings sometimes omitted part of their output.
-(gxshade1.c)
- - Function-based Shadings didn't access 4-bit-per-sample data
-correctly. (gsfunc0.c)
- - The malloc/free-based allocator didn't finalize objects when
-freeing them. (gsmalloc.c)
- - Reference counting for device instances was not implemented even
-close to consistently. THIS IS THE BUG TAIL WE WORRIED ABOUT IN 5.24.
-(gxdevcli.h, gxdevice.h, gdevbbox.c, gdevcmap.c, gdevmem.c, gdevnfwd.c,
-gdevplnx.c, gdevprn.c, gdevrops.c, gsalphac.c, gschar.c, gsdevice.c,
-gsropc.c, gxidata.c, gxmclip.c, gxipixel.c, gxpcmap.c)
- - Some device structure definitions failed to include finalization.
-(gdevmrop.h, gsstruct.h, gxclip2.h, gxcpath.h, gxdevmem.h, gxmclip.h)
- - Reference counting for the device halftone wasn't correct in the
-band rasterizer. This must be a recently introduced bug, because otherwise
-banding couldn't have worked. (gxclrast.c)
- - When banding, high-level images that extended off the page in the
-Y direction caused memory access errors. (gxclimag.c)
- - [a]widthshow didn't use the correct value for comparison for
-composite fonts with FMapType 9 (CMap). (gxchar.h, gschar.c, gschar0.c,
-gsfcmap.c)
- - The special color mapping device only worked for
-device_cmap_monochrome. (gdevcmap.h, gdevcmap.c)
- - The definition of gs_memory_locked_release was wrong.
-(gsmemlok.h, gsmemlok.c)
- - An opaque structure definition (for gx_device) was missing,
-creating a need for an otherwise unnecessary #include. (gscrdp.h)
- - Certain cached values weren't computed when needed. Fixing this
-required removing 'const' from a parameter type. (gscrdp.h, gscrdp.c)
- - gxclmem.c #included "gsmalloc.h", which is no longer needed.
-(gxclmem.c)
- - Memory management for device halftones was incorrect, leading to
-objects being freed twice or other memory corruption during band rendering.
-(gzht.h, gsht.c, gsstate.c, gxclrast.c, gxistate.c)
- - Setting a driver-originated CRD didn't invalidate cached
-information, leading to incorrect output. (gscrdp.c)
- - A consistency check on driver-originated CRDs was incorrect,
-causing valid CRDs to be rejected. (gscrdp.c)
-
-Removes dummy definitions for old PC-specific language extensions.
-(stdpre.h)
-
-Removes uses of the PC-specific 'huge' keyword. (gdevmem.c)
-
-Removes uses of the PC-specific 'near' keyword. (gdevabuf.c, gdevbbox.c)
-
-Changes the pointer comparison macros to upper-case names. (gxalloc.h,
-stdpre.h, gsalloc.c, gsmisc.c)
-
-Changes the alignment_mod macro to upper case. (stdpre.h, gdevdbit.c,
-gdevdgbr.c, gsparams.c, gxifast.c)
-
-Changes the round_up and round_down macros to upper case. We retain the
-lower-case definitions for the sake of the PCL code. (gxfcache.h, gxobj.h,
-stdpre.h, gdevalph.c, gdevmem.c, gsalloc.c, gspath1.c, gxccman.c,
-gxclimag.c, gxifast.c)
-
-Makes Pattern colors more object-oriented, to support PatternType 2,
-splitting gsptype1.c off from gspcolor.c in the process. (gsccolor.h,
-gsdcolor.h, gspcolor.h, gsptype1.h, gsptype2.h, gxcolor2.h, gxpcolor.h,
-gspcolor.c, gsptype1.c, gxpcmap.c)
-
-Implements PatternType 2. (gspcolor.h, gsptype1.h, gsptype2.h, gxcolor2.h,
-gxpcolor.h, gxshade.h, gspcolor.c, gsptype2.c)
-
-Changes the interface to shaded filling to make filling rectangles more
-efficient. (gsshade.h, gscolor3.c, gsshade.c)
-
-Improves some macros that didn't handle expressions as arguments.
-(gsrect.h)
-
-Improves tracing of loading the CIE caches. (gscie.c)
-
-Cleans up some formatting, and replaces some floating point divides with
-multiplies. (gstype42.c)
-
-Adds default values for the MaxSeparations (1), Separations (false), and
-SeparationColorNames (empty array) device parameters. (gsdparam.c)
-
-Adds -Z^ to trace reference counting. (gsrefct.h, gsmemory.c)
-
-Changes the definition of finalization so that finalization procedures *can*
-assume that objects they reference still exist. This is necessary so that
-forwarding devices can decrement the reference counts of their targets.
-Fortunately, all invocations of finalization (in 'restore', the garbage
-collector, and freeing) already have this property. (gsstruct.h)
-
-Extends CRD initialization so that cached values may be copied from an
-existing CRD. (gscrd.h, gscrd.c)
-
-Adds a wrapper to the driver create_buf_device procedure to increment the
-reference count, so that buffer devices can be freely used in graphics
-states and as a target. (gxdevcli.h, gdevprn.c, gxclread.c)
-
-Removes recursion from the shading rendering code, in preparation for making
-it interruptible (required for DeviceN color mapping callouts).
-(gxshade4.h, gxshade1.c, gxshade4.c, gxshade6.c)
-
-Monitor-locks the default allocator based on the C heap, if multi-threading
-is being supported at all. (lib.mak, gsmalloc.h, gsmalloc.c)
-
-Speeds up the implementation of mem_true32_copy_mono for the common case.
-(gdevm32.c)
-
-Adds a (disabled) option for defining gx_color_index as a pointer or a
-structure, for testing. (gxcindex.h)
-
-Makes the library test program test the special color mapper more
-thoroughly. (gslib.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.67"></a>Version 5.67 (internal) (1/8/99)</h2>
-
-<p>
-This fileset adds more PostScript LanguageLevel 3 capability:
-<ul>
-<li> - Complete implementation of shfill.
-<li> - Most of the expanded CMap capabilities.
-<li> - ReusableStreamDecode filter.
-<li> - FontType 2 for CFFs (formerly done in an incompatible way).
-<li> - HalftoneMode user parameter.
-<li> - HalftoneTypes 6, 10, and 16.
-<li> - ImageType 3 images.
-<li> - UseCIEColor device parameter.
-</ul>
-
-<p>
-It also adds a build script for MMK (which may also work with MMS) under
-OpenVMS, and Uli Wortmann's drivers for the H-P color inkjet printers.
-Among other bug fixes, it eliminates about half the "possibly uninitialized
-variable" compiler warnings.
-
-<h3><a name="5.67_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - The default UCR and BG functions are now f(k) = k rather than f(k)
-= 0.
- - The set_[d]fmul2fixed_vars macros have been removed from
-gxfixed.h. Clients must use the new CHECK/FINISH_[D]FMUL2FIXED_VARS macros.
-(We don't think there are any such clients outside Ghostscript itself.)
- - The internal procedure gx_cpath_intersect_slow is replaced with
-gx_cpath_intersect_path_slow, with different arguments.
- - gs_color_space_type_Device{Gray,RGB,CMYK} are now private.
-Clients should use the gs_cspace_Device{Gray,RGB,CMYK} access procedures in
-gscspace.h to obtain device color space objects.
- - FontType 2 was renamed from ft_CFF to ft_encrypted2.
- - FontType 2 fonts now have FontType = ft_encrypted2, rather than
-ft_encrypted with CharstringType = 2. CharstringType no longer exists.
- - Type 1 / Type 2 fonts now have an additional member, interpret,
-that must be initialized.
- - gdev_prn_render_lines and gdev_prn_get_band_buffer replace
-gdev_prn_locate_overlay_buffer and gdev_prn_get_overlay_bits. "Async"
-drivers must now use the new procedures to implement partial-page rendering
-recovery.
- - Clients that pass ImageType 3 images where the mask and the image
-are not scaled identically, or that call image_plane_data without knowing
-the image type, must now call gs_image_planes_wanted or
-gx_image_planes_wanted in order to find out which subset of the data planes
-to pass to the next call of image_plane_data.
- - gx_image_enum_common_init now takes slightly different arguments.
- - gs_imager_state_initialize now initializes the entire imager
-state, including halftone, dev_ht, and ht_cache.
- - The argument lists for the plane_data and end_image procedures in
-image enumerators have changed.
-
-</pre><h3><a name="5.67_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The 5.66 News mentioned the non-existent WAITFILE macro, and had
-another minor typo. (doc/News.htm)
- - The URL for the user-contributed H-P 850c driver was incorrect.
-(doc/Devices.htm, contrib.mak)
- - The documentation for the driver image API had gotten out of date.
-(doc/Drivers.htm)
-
-Greatly improves documentation for the page queue. (from Artifex 5.50c)
-(gxpageq.h)
-
-Documents the fact that Solaris builds now need -lposix4 for &lt;semaphore.h&gt;.
-(doc/Make.htm)
-
-Adds a stack status comment in .pdfshow. (lib/gs_pdfwr.ps)
-
-Documents the new -Z` debugging switch. (doc/Use.htm)
-
-Touches up some formatting in the C style guide, and adds a mention of the
-space-before-: rule for makefiles. (doc/C-style.htm)
-
-Adds documentation for the new H-P 8xx drivers. (doc/Devices.htm)
-
-Splits off news for versions 5.0 - 5.50 into a separate file.
-(doc/History5.htm)
-
-</pre><h3><a name="5.67_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - On MS Windows platforms, the DLL object file wasn't created in the
-proper directory. (from Artifex 5.55) (msvc32.mak)
- - cfonts.mak didn't have no-op commands for rules that didn't
-contain any commands. (cfonts.mak)
- - The version number for libpng was different from libpng's own
-version numbering system. (libpng.mak)
- - Solaris builds now need -lposix4 for &lt;semaphore.h&gt;.
-(unix-gcc.mak, unixansi.mak, unixtrad.mak)
- - The makefiles redefined a number of macros, which MMS doesn't
-allow. (bcwin32.mak, gs.mak, int.mak, lib.mak, libpng.mak, msvc32.mak,
-openvms.mak, openvms.mmk, unix-gcc.mak, unixansi.mak, unixtrad.mak,
-version.mak)
-
-Changes cp.bat and rm.bat to eliminate "File not found" messages. (from
-Artifex 5.55) (cp.bat, rm.bat)
-
-Changes all platform-independent makefiles to add a space before the : that
-separates the targets from the dependencies, to allow the makefiles to be
-used with MMS/MMK. (cfonts.mak, contrib.mak, devs.mak, gs.mak, int.mak,
-jpeg.mak, lib.mak, libpng.mak, zlib.mak)
-
-Adds a script for compiling Ghostscript on OpenVMS systems with MMK. This
-has not been tested extensively. (doc/Make.htm, openvms.mmk)
-
-Changes the set of optimization switches for MSVC++. We believe the new
-switches produce working executables, which /O2 didn't. (msvc32.mak,
-msvccmd.mak)
-
-Updates the default expected libpng version to 1.0.2. (bcwin32.mak,
-dvx-gcc.mak, msvc32.mak, msvclib.mak, openvms.mak, os2.mak, ugcclib.mak,
-unix-gcc.mak, unixansi.mak, unixtrad.mak, watc.mak, watclib.mak,
-watcw32.mak)
-
-</pre><h3><a name="5.67_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - Default scaling in viewcmyk.ps was broken. (lib/viewcmyk.ps)
-
-Updates pdf2dsc.ps with a newer (user-contributed) version that generates
-DocumentMedia and PageMedia comments. (lib/pdf2dsc.ps)
-
-</pre><h3><a name="5.67_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - An int * was provided where a uint * was required. (gdevpbm.c)
- - ps2ps -dLanguageLevel=1 generated invalid output. (gdevps.c)
- - The X drivers crashed on gray-scale displays. (bug probably
-introduced in 5.61) (gdevx.c)
- - The width and height of the cljet5 device were interchanged.
-(from Artifex) (gdevclj.c)
- - The PDF writer didn't clip cached characters properly. (bug
-introduced somewhere between 3.51 and 5.10) (gdevpdfi.c)
- - For stroked paths with a non-uniform CTM, the PDF writer could
-emit coordinates larger than 32K, which Acrobat handles incorrectly.
-(gdevpdfd.c)
-
-Restructures some code to suppress bogus "possibly uninitialized variable"
-warnings. (gdevpdfm.c, gdevps.c)
-
-Adds some unnecessary initializations to suppress bogus "possibly
-uninitialized variable" warnings. (gdevpbm.c, gdevpdfd.c, gdevvec.c,
-gdevxalt.c)
-
-Rewrites the (contributed) X11 xfont code to remove code duplication.
-(gdevx.h, gdevx.c, gdevxini.c, gdevxxf.c)
-
-Adds a user-contributed driver for the H-P LaserJet 3100 with H-P software.
-(gdevmeds.h, gdevl31s.c, gdevmeds.c)
-
-Adds a user-contributed option for 600 dpi output on H-P DesignJet
-650C-compatible printers. (gdevcdj.c)
-
-Removes unnecessary references to device color spaces. (gdevpdfi.c)
-
-Changes the [e]pswrite and pdfwrite drivers to use EndOfBlock rather than
-Rows for CCITTFax image encoding, producing slightly smaller output.
-(gdevpsdf.c)
-
-Changes the sample async driver to use gdev_prn_render_lines and
-gdev_prn_get_band_buffer instead of locate_overlay_buffer and
-get_overlay_bits. Unfortunately, because "async" memory management is
-broken, we have no way to test the code. (gdevbmpa.c)
-
-Updates clients for the change in gx_image_enum_common_init. (gdevpdfi.c,
-gdevvec.c)
-
-Adds Uli Wortmann's drivers for the H-P color inkjet printers.
-(contrib.mak, gdevcd8.c)
-
-Adds mode 9 compression to the PCL printer utilities. (gdevpcl.h,
-gdevcdj.c, gdevpcl.c)
-
-Updates implementors for the change in the plane_data and image_end image
-processing procedures. (gdevpdfi.c, gdevps.c, gdevpx.c)
-
-</pre><h3><a name="5.67_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - The PFM files for URW Grotesk and Antiqua had some extraneous ^M
-characters inserted before ^J characters. (fonts/u003043t.pfm,
-fonts/u004006t.pfm)
- - CID-keyed fonts didn't handle GlyphDirectory correctly.
-(lib/gs_cidfn.ps)
- - CIDFontType 0 fonts with 0-length Subrs caused an error.
-(lib/gs_cidfn.ps)
- - Malformed TrueType fonts with overlapping tables (which are
-nevertheless apparently acceptable to Windows) caused an error.
-(lib/gs_ttf.ps)
- - The Hershey font repairs documented in fileset 5.24 apparently
-never happened: the makeher.ps program was fixed, but the derived fonts were
-still broken. (fonts/h*.ps)
- - In some Fontmaps, the /Charter-* font names were linked directly
-to the Bitstream fonts, rather than being aliases for /CharterBT-*.
-(lib/Fontmap.GS, lib/Fontmap.Sol, lib/Fontmap.Ult)
-
-Makes undefined fonts execute the SubstituteFont procedure in $error, per a
-posting by Stephen Zisk of Adobe on pdf-prepress-l on 10/8/97.
-(lib/gs_fonts.ps)
-
-Changes the interpreter-level CIE color space install procedures to reflect
-the addition of const to the color space argument. (zcie.c)
-
-</pre><h3><a name="5.67_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The interpreter appeared to be a distiller even when the current
-device was not pdfwrite. We fixed this by patching 'where' to make the
-distiller operators visible iff the current device is pdfwrite. We also
-moved the setcolor hack in 'where' into PostScript code. (lib/gs_init.ps,
-lib/gs_lev2.ps, lib/gs_pdfwr.ps, zmisc2.c)
- - The current color space for shfill wasn't identically the same
-color space as the one in the shading. (gs_ll3.ps)
-
-Changes the default UCR and BG functions from f(k) = 0 to f(k) = k.
-(lib/gs_init.ps)
-
-Adds some unnecessary initializations to suppress bogus "possibly
-uninitialized variable" warnings. (igc.c, zcie.c)
-
-Restructures some code slightly to suppress a bogus "possibly uninitialized
-variable" warning. (zdevice.c)
-
-Brings the CMap machinery up to LL3, by allowing a single CMap to reference
-multiple fonts (usefont, usematrix, and array CIDSystemInfo).
-(lib/gs_cmap.ps, zfcmap.c)
-
-Finishes implementing ReusableStreamDecode. The implementation is very
-inefficient -- it reads the entire contents into a string -- but it passes
-the Genoa FTS. (lib/gs_ll3.ps, lib/gs_res.ps, zfreuse.c)
-
-Changes CFFs with CharstringType = 2 to generate FontType 2 fonts, rather
-than FontType 1 with CharstringType = 2, for compatibility with Adobe's LL3
-implementations. (lib/gs_cff.ps, lib/gs_type1.ps, lib/type1ops.ps, bfont.h,
-ichar1.h, ifont.h, ifont1.h, zbfont.c, zchar1.c, zchar2.c, zcharx.c,
-zfont.c, zfont1.c, zfont2.c)
-
-Adds the ability to create (with .bytestring) and do a few operations
-(currently only length, put, putinterval) on byte arrays. This is needed
-for implementing ReusableStringDecode filters with >64K bytes of data, and
-for the LL3 halftone types. (zgeneric.c, zstring.c)
-
-Implements HalftoneMode, and HalftoneTypes 6, 10, and 16. To do this, we
-introduce an internal HalftoneType 7. (lib/gs_dps2.ps, lib/gs_init.ps,
-lib/gs_ll3.ps, lib/gs_res.ps, zht2.c)
-
-Finishes implementing ImageType 3 images. (zimage.c, zimage3.c)
-
-Adds the hooks in ColorSpace defineresource and undefineresource for
-detecting definitions that interact with UseCIEColor. (gs_res.ps)
-
-Implements UseCIEColor at the interpreter level. (lib/gs_dps1.ps,
-lib/gs_ll3.ps, zcolor1.c, zcolor2.c, zimage.c, zmisc3.c)
-
-Touches up some formatting. (igstate.h)
-
-</pre><h3><a name="5.67_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - A MediaBox with a non-zero llx or lly would produce incorrect
-output. The way we fixed this doesn't exactly match Acrobat, but it
-produces reasonable output. (based on a change from Artifex 5.55)
-(lib/pdf_main.ps)
- - Colored patterns didn't work properly. (lib/pdf_draw.ps)
- - The resources in a Pattern dictionary weren't made available
-during the execution of the PaintProc. (fix from Artifex) (lib/pdf_draw.ps)
-
-</pre><h3><a name="5.67_Streams"></a>Streams</h3><pre>
-
-Adds a flag to the ASCIIHexEncode filter to indicate whether or not to write
-an EOD, required for Level 1 output from the pswrite device. (sstring.h,
-sstring.c)
-
-Adds a close_at_eod flag to the stream state, for implementing reusable
-streams; also cleans up some formatting. (stream.h, stream.c)
-
-</pre><h3><a name="5.67_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Black-and-white images with Interpolate = true produced
-undesirable artifacts if the image resolution was close to that of the
-device. We now disable Interpolate in this case. (gxiscale.c)
- - In "async" mode, get_hardware_params did an unnecessary flush and
-reopen. (from Artifex 5.50c) (gdevprna.c)
- - The computation of the minimum band height for the "async" reader
-was incorrect. (from Artifex 5.50c) (gdevbmpa.c)
- - The "fix" for reallocating async buffer memory in 5.50 was
-incorrect. (from Artifex 5.55) (gdevprn.c)
- - The "async" reader called clist_finish_page, which it shouldn't.
-(from Artifex 5.50c) (gdevprn.c)
- - The image enumeration procedures for ImageType 4 were unnecessary,
-since the ImageType 1 code now handles ImageType 4 as well. (gximage4.c)
- - The structure descriptor for tile clipping devices was
-unnecessary, since these are the same as mask clipping devices. (gxclip2.h)
- - There was a trailing comma in an enumeration list. (gsbitops.c)
- - Some compilers didn't like initializing a uint with ~0.
-(gdevm1.c)
- - shfill unnecessarily saved, reset, and restored the graphics
-state. (gscolor3.c)
- - Radial shadings always extended the shading to radius = 0.
-(gxshade1.c)
- - An identifier exceeded VMS's limit of 31 characters. (gdevprn.h,
-gdevprn.c)
- - A header file didn't #include enough of its prerequisites.
-(gxpcolor.h)
- - Images with non-default ImageMatrix weren't written correctly in
-the band list. (bug introduced in 5.60) (gximage1.c)
- - Banded images that had to use the default implementation incurred
-an extra level of procedure call for each block of data. (gxclimag.c)
- - Images rotated by other than a multiple of 90 degrees produced
-incorrect output, because pie-&gt;rect.p.y was updated after each block of
-data, causing image_band_box to produce inconsistent results. (bug
-introduced by async changes in 5.50) (gxclimag.c)
- - The client_data pointer in client_order halftones wasn't traced
-correctly, possibly causing memory corruption if this type of halftone was
-used. (These are not currently used by the PostScript interpreter.)
-(gsht.c, gsht1.c)
- - ImageType 3 images didn't handle subrectangles. (Not a problem
-for PostScript, which doesn't generate subrectangles, or for PCL, which
-doesn't use them.) (gximage3.c)
- - If a VMerror occurred when setting up an ImageType 3 image. an
-attempt could be made to free an uninitialized pointer. (gximage3.c)
- - ImageType 4 images with 1 to 8 bits per sample and Decode = [1 0]
-didn't test transparency correctly. (bug introduced in 5.60) (gximage.h,
-gxicolor.c, gximono.c, gxipixel.c)
- - setgray, setrgbcolor, sethsbcolor, and setcmykcolor didn't use
-gs_cspace_assign, causing code duplication. After this fix, we made the
-device color space types private, since there are no longer any references
-to them outside gscspace.c. (gxcspace.h, gscolor.c, gscolor1.c, gscspace.c)
- - gs_cspace_assign was misspelled cs_cspace_assign. (gscspace.h)
- - setgray didn't set the pattern pointer of the current color to 0,
-possibly causing the GC to retain patterns it shouldn't. (gscolor.c)
- - The dev_ht member of an imager (or graphics) state wasn't included
-in the macro that enumerates reference-counted pointers. This probably had
-no effect, since the macro isn't used. (gxistate.h)
- - When the band rasterizer freed its imager state, the halftone and
-device halftone structures weren't freed, possibly causing memory leakage.
-(gsistate.c)
-
-Changes the default UCR and BG functions from f(k) = 0 to f(k) = k, per a
-user's suggestion. We aren't sure which matches the Adobe implementations
-on color devices. (gxdcconv.c)
-
-Conditionally removes some variables that are not needed on big-endian
-systems. (gdevm1.c)
-
-Restructures some code to suppress bogus "possibly uninitialized variable"
-warnings. (gxfixed.h, gdevddrw.c, gsmatrix.c, gsmisc.c, gxclimag.c)
-
-Adds a couple of unnecessary initializations to suppress bogus "possibly
-uninitialized variable" warnings. (gsbitops.c)
-
-Implements BBox, Background, and Extend for shadings. (Background isn't
-tested yet, because it only takes effect for pattern shading, which isn't
-implemented yet.) (gsshade.h, gxacpath.h, gxistate.h, gxpath.h, gscolor3.c,
-gsshade.c, gxacpath.c, gxacpath.c, gxcpath.c)
-
-Brings the CMap machinery up to LL3, by allowing a single CMap to reference
-multiple fonts (usefont, usematrix, and array CIDSystemInfo). (gsfcmap.h,
-gxfcmap.h, gsfcmap.c)
-
-Adds more tracing output to the band list reader. (gxclrast.c)
-
-Cleans up some formatting. (gstext.h, gxtext.h)
-
-Replaces FontType = 1, CharstringType = 2 with FontType = 2, to match the
-Adobe implementations. (gxfont1.h, gxftype.h, gxtype1.h, gstype1.c,
-gstype2.c, gxtype1.c)
-
-Adds new gs_bytestring and gs_const_bytestring structures that may reference
-either string or (byte) object storage. (gsstruct.h, gstypes.h, gsmemory.c)
-
-Implements an additional halftone type (ht_type_threshold2) needed for
-HalftoneTypes 6, 10, and 16. We don't extend gshtx.[hc] to deal with this
-at this time, since the new type is only needed for the PostScript
-interpreter. (gxht.h, gxhttype.h, gzht.h, gsht.c, gsht1.c, gshtscr.c)
-
-Adds a procedure for division mod M, possibly needed for halftones.
-(gxarith.h, gsmisc.c)
-
-Adds a -Z` debugging switch to turn off high-level images in the band list.
-(gxclimag.c)
-
-Implements gdev_prn_render_lines, as the lowest-level external API for
-rendering lines in a banded device. This call replaces the "overlay" calls
-for async rendering. (gdevprn.h, gdevprna.h, gxclist.h, gdevprn.c,
-gxclread.c)
-
-Extends the image enumeration API so that the enumerator can indicate what
-subset of the input planes it wants delivered on the next call to
-image_plane_data. Currently this is only needed for ImageType 3.
-(gsimage.h, gxdevcli.h, gxiparam.h, gdevddrw.c, gsimage.c, gximage.c,
-gximage3.c)
-
-Extends the image enumeration structures to handle images that require a
-different amount of data for plane N than Width * plane_depths[N]. This
-requires a NON-BACKWARD-COMPATIBLE change to the argument list of the
-gx_image_enum_common_init procedure. (gxiparam.h, gdevbbox.c, gsimage.c,
-gxclimag.c, gximage.c, gximage2.c, gximage3.c, gxipixel.c)
-
-Updates the copyright date to 1999. (gscdef.c)
-
-Cleans up formatting, capitalizes macro names, etc. (gximage.h, gxsample.h,
-gxipixel.c)
-
-Adds the UseCIEColor device parameter. (gxdevcli.h, gxdevice.h, gsdparam.c)
-
-Implements color space substitution (UseCIEColor). (gscolor2.h, gscspace.h,
-gscssub.h, gxistate.h, gzstate.h, gscolor.c, gscolor1.c, gscolor2.c,
-gscolor3.c, gscssub.c, gslib.c, gspcolor.c, gsstate.c)
-
-Changes the color space install procedure so that its color space argument
-is const. Now all color space implementation procedures take a const
-argument. (gscie.h, gxcspace.h, gscdevn.c, gscolor2.c, gscscie.c,
-gscspace.c, gscsepr.c, gspcolor.c)
-
-Changes gs_setcolorspace so its color space argument is const. (gscolor2.h,
-gscolor2.c)
-
-Splits imager state procedures out of gsstate.c, which was getting too
-large. (gxistate.h, gsstate.c, gsistate.c)
-
-Changes gs_imager_state_initialize so it really initializes the whole imager
-state. (gsistate.c, gxclrast.c)
-
-Removes the now-redundant first (device) argument from the plane_data and
-end_image procedures in image enumerators. Implementors of these procedures
-must now get the device from the enumerator structure. This is a
-NON-BACKWARD-COMPATIBLE design cleanup that we have been putting off for
-most of a year. Also adds an argument to plane_data so it can tell its
-client how many rows of data was used: this is needed for the implementation
-of ImageType 3. (gxdevcli.h, gxiparam.h, gdevbbox.c, gdevplnx.c, gsimage.c,
-gxclimag.c, gxidata.c, gximage.c, gximage3.c)
-
-Changes CFFs with CharstringType = 2 to FontType 2 fonts, rather than
-FontType 1 with CharstringType = 2, for compatibility with Adobe's LL3
-implementations. (gstype1.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.66"></a>Version 5.66 (internal) (11/25/98)</h2>
-
-<p>
-This fileset includes the ability to efficiently and conveniently obtain
-planar rather than chunky raster output. It also fixes a large number of
-minor compilation problems on non-ANSI compilers, and a small number of real
-problems. It also implements the PostScript LanguageLevel 3 clipsave and
-cliprestore operators. Unfortunately, because of fragility in third-party
-code changes that we were forced to include in the base graphics library,
-overlapped rasterizing ("async mode") fails:
-<ul>
-<li> - At 300 dpi, for 4-bit planar devices in the low-memory
-("partial
- page") condition, and always for 32-bit planar devices.
-
-<li> - At 600 dpi, for all devices other than monochrome.
-</ul>
-
-<h3><a name="5.66_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - Every platform-specific makefile must now define _D_, the internal
-separator for defining preprocessor macros.
- - Every platform-specific makefile must now define PSLIBDIR, the
-directory holding the PS initialization files at build time. (This need not
-be the same as where these files are stored at run time.)
-
-(Library)
- - New elements arch_float_mantissa_bits and
-arch_double_mantissa_bits have been added to arch.h. Cross-build
-environments that supply arch.h rather than generating it at build time must
-add these elements.
- - A new GB_SELECT_PLANES option has been added to the options mask
-for the get_bits_rectangle driver procedure. Implementations of this
-procedure must take this option into account (although they do not have to
-implement it).
- - The make_buffer_device printer device procedure has been replaced
-with create_buf_device, setup_buf_device, and destroy_buf_device. All
-clients and implementors of make_buffer_device must be changed, including
-users of the clist_init_params macro.
- - The gx_device_cmap_procs procedure has been replaced with
-gx_get_cmap_procs, which also take an imager state as an argument. Callers
-of gx_device_cmap_procs must be changed.
-
-</pre><h3><a name="5.66_Documentation"></a>Documentation</h3><pre>
-
-Updates Make.htm to clarify the standard directory structure.
-(doc/Make.htm)
-
-Adds a note about DEC C vs. VAX C for remapping of exit codes.
-(doc/Make.htm)
-
-Clarifies that the end_image procedure frees the enumerator. (gxiparam.h)
-
-</pre><h3><a name="5.66_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The genxxx utilities didn't compile properly on systems where the
-C compiler doesn't automatically search for .h files in the directory of the
-.c file. (unixtail.mak)
- - Preprocessor definitions require special quoting with Watcom C.
-Fixing this required adding a _D_ macro similar to II. This is a
-NON-BACKWARD-COMPATIBLE change, since this definition is now required in
-each platform-specific makefile. (dvx-head.mak, openvms.mak, os2.mak,
-unixhead.mak, wccommon.mak, winlib.mak, zlib.mak)
- - The VMS subdirectories didn't include the "." to make the
-directory name relative. (openvms.mak)
- - Some of the OpenVMS command files were omitted from the
-distribution. (copy_one.com, rm_one.com, rm_all.com)
- - MMK interprets a final - on a command line as a continuation
-marker. (gs.mak)
- - gsiparm4_h was used before being defined. (lib.mak)
- - Compiled initialization code (COMPILE_INITS=1) was broken because
-of the introduction of subdirectories. (bcwin32.mak, dvx-gcc.mak,
-msvc32.mak, openvms.mak, os2.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak,
-watc.mak, watcw32.mak, int.mak, geninit.c)
- - Level 1 configurations would no longer build with the standard set
-of drivers. (devs.mak)
- - wmake interpreted "&amp;" in a rule command line as calling for
-background execution. (wccommon.mak)
-
-Makes the standard set of features the same on all platforms, namely, psl3
-(PostScript LanguageLevel 3) + pdf (PDF 1.2/1.3) + dpsnext (DPS with NeXT
-extensions) + ttfont (ability to load TrueType fonts directly). Unix
-platforms add pipe (recognition of %pipe% file names). (bcwin32.mak,
-dvx-gcc.mak, msvc32.mak, openvms.mak, os2.mak, unix-gcc.mak, unixansi.mak,
-unixtrad.mak, watc.mak, watcw32.mak)
-
-Adds minimal support for Windows 95/NT compiler versions. (wccommon.mak)
-
-Notes a set of switches that may work around the optimizer bug in MSVC++
-5.0. (msvccmd.mak)
-
-</pre><h3><a name="5.66_Utilities"></a>Utilities</h3><pre>
-
-Adds a switch to genconf to set the escape character, since wmake interprets
-"&amp;" in a rule command line as calling for background execution. (genconf.c)
-
-Makes echogs recognize -+ alone as equivalent to - alone, for the sake of
-VMS systems, which interpret a final - as a line continuation marker.
-(echogs.c)
-
-Adds a viewpsm procedure to viewpbm.ps, for reassembling plane-separated
-files. (lib/viewpbm.ps)
-
-</pre><h3><a name="5.66_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - There were places where the code assumed that void * could be
-coerced to byte *, which not all C compilers support. (gdevpdfx.h,
-gdevpdfo.c)
- - The name put_bytes was defined in two places, causing an error
-when linking with NOPRIVATE=1. (gdevpx.c)
- - The minimum space computation for high-level images and for the
-scan line length for the sample async driver was slightly too small.
-(gdevbmpa.c)
-
-Improves the tracing output from the psm driver. (gdevpbm.c)
-
-Rewrites some macros to eliminate "statement not reached" compiler warnings.
-(gdevpx.c)
-
-Revises the (only) client for changes in the plane-extraction device API.
-(gdevpbm.c)
-
-Adds plane-separated BMP drivers, primarily for testing but also as an
-example. bmp[a]sep1 and bmp[a]sep8 produce 1- and 8-bit-per-pixel separated
-CMYK. (gdevbmp.h, gdevbmp.c, gdevbmpa.c, gdevbmpc.c)
-
-</pre><h3><a name="5.66_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The Watcom environment doesn't provide the st_blocks member of the
-stat structure. (stat_.h)
- - In its standard configuration, the Watcom environment doesn't
-provide stdprn. (gp_iwatc.c)
- - Newer versions of DEC C on OpenVMS don't require the remapping
-of the exit codes. (stdpre.h)
-
-Revises the dummy implementation of semaphores, monitors, and threads in an
-attempt to make async rendering (just barely) work for the non-overlay case.
-Unfortunately, this turned out not to be feasible. (gp_nsync.c)
-
-</pre><h3><a name="5.66_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Certain DEC compilers assume that a pointer is aligned even if it
-is cast to a pointer whose target type has weaker alignment; this produced
-"unaligned access" errors in the interpreter. (interp.c)
- - A necessary cast was omitted. (zcrd.c)
- - Level 1 configurations would no longer run. (lib/gs_init.ps)
-
-Updates clients to set mask image fattening properly. (zimage.c, zimage2.c)
-
-Rewrites some macros to eliminate "statement not reached" compiler warnings.
-(files.h, istruct.h)
-
-</pre><h3><a name="5.66_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - The test for whether to honor the Rotate key was backwards. (bug
-probably introduced in 5.24) (lib/pdf_main.ps)
-
-Updates the code to handle improper PDF files in which the startxref and the
-following file position appear on the same line rather than (as required by
-the spec) two successive lines. (lib/pdf_main.ps)
-
-</pre><h3><a name="5.66_Streams"></a>Streams</h3><pre>
-
-Notes a bug in s_DCT_get_quantization_tables. (sdcparam.c)
-
-</pre><h3><a name="5.66_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The algorithm for reducing 4-bit chunky to 1-bit separated colors
-didn't handle the trailing pixels of a transfer correctly. (gdevplnx.c)
- - Banding for RGB devices with multi-plane halftones was broken.
-(bug introduced recently) (gxdcolor.c)
- - Mask images were written in the band list with inverted polarity.
-(bug introduced in 5.60) (gximage1.c)
- - Mask images were always fattened. Fixing this required extending
-the API, since gs_image_t_init_mask set adjust = true by default (a bad
-decision) and we didn't want to change it. (gschar.h, gscpm.h, gsiparam.h,
-gzstate.h, gschar.c, gximage1.c)
- - The member names push and pop caused problems for compilers whose
-preprocessors consider it an error to use a macro defined with arguments as
-a name without arguments. (gxfont1.h, gstype1.c)
- - Once again, gcc didn't detect some private/non-private mismatches.
-(gdevplnx.c, gsalphac.c, gximage2.c, gximage4.c)
- - &amp; was used with an array (which gcc doesn't complain about).
-(gxshade6.c)
- - There were several uses of automatic aggregate initialization,
-which not all C compilers support. (gdevprn.c, gdevps.c)
- - There were places where the code assumed that void * could be
-coerced to byte *, which not all C compilers support. (gdevprn.c)
- - Some \ line continuation characters were used inappropriately
-(in a macro argument list). (gxclimag.c)
- - Some function prototypes didn't use the Pn macros. (gsalloc.c)
- - A function definition not at the left margin confused ansi2knr.
-(gsfont.c)
- - A cast for the result of malloc, needed on systems where malloc
-returns a char * rather than a void *, was missing. (gsmalloc.c)
- - An occurrence of dev should be pdev. (I can't understand how we
-missed this in 5.65.) (gdevprna.c)
- - A value was missing from a list of initial structure values,
-causing mismatches between subsequent values and the members they
-initialized. (gcc treated this as a warning: it should have given an
-error.) (gxband.h)
- - When setting the tile phase during banding, the old value of the
-tile phase was written out rather than the new one. (gxclutil.c)
- - The definition of fixed_mult_quo wasn't consistent between systems
-with FPU (where it took the floor, and might be slightly inaccurate) and
-systems without FPU (where it truncated towards zero, and was accurate).
-(gxfixed.h, genarch.c, gsmisc.c)
- - Banding devices using multi-screen halftones didn't set the
-halftone phase correctly. We have now "fixed" this problem at least 4
-times. (gxclrast.c)
- - The name put_bytes was defined in two places, causing an error
-when linking with NOPRIVATE=1. (gsparams.c)
- - For [x][y]show, the pointers to the width arrays weren't
-initialized, causing memory access errors when checking or garbage
-collecting. (gschar.c)
- - Due to a typo, bitmap characters were fattened too much.
-(gximage1.c)
- - Some identifiers exceeded VMS's limit of 31 characters.
-(gdevprn.h, gscsepr.h, gsdevice.h, gxdevice.h, gdevdflt.c, gdevprn.c,
-gscsepr.c, gsdparam.c)
- - The device halftone parameter was declared const inappropriately
-in some places. (gsdcolor.h, gxdither.h, gxdcolor.c, gxdither.c)
- - gdev_mem_raster was used (misleadingly, even though it happened to
-produce the correct result) on possibly non-memory devices. (gxclread.c)
- - Pure Level 1 configurations had some undefined procedures.
-(gscolor1.c, gscspace.c)
- - Indexed color images could incorrectly conclude that they didn't
-need to re-render halftones, producing incorrect output. (gximono.c)
- - gs_device_is_memory returned false for non-banding printer
-devices: this didn't used to matter, but it matters now. We changed it to
-test the procedures rather than the device name. (gdevmem.c)
- - The plane extraction device didn't handle halftoned colors
-correctly. (gdevplnx.c)
- - If an error occurred while building a Function object, a crash
-could occur while freeing the partially built object. (gsfunc.c)
- - The plane extraction device didn't handle RasterOps correctly.
-(gdevplnx.c)
- - The colors-used mask could include some additional, invalid bits.
-(gxclrect.c)
- - The colors-used mask was updated incorrectly for RasterOps on
-subtractive-color devices. (gxclrect.c)
- - Memory devices didn't set enough option bits for the case where
-get_bits_rectangle had to do conversion. (gdevmem.c)
- - The TrueType font rasterizer didn't accept fonts whose 'type' was
-"true" rather than the documented <00 01 00 00>. (gstype42.c)
- - A bug in the Watcom compiler caused two conditional expressions to
-execute incorrectly. (gstype42.c)
- - When a page queue was freed, it attempted to free the page_info
-resource in the reserve entry, which is actually unused. (gxpageq.c)
- - A necessary #include was missing. (gdevmr2n.c)
-
-Reduces the size of band list entries for halftoned colors somewhat.
-(gxclpath.h, gxclpath.c, gxclrast.c)
-
-Increases the number of saved band color masks per page, mostly for testing.
-(gxband.h)
-
-Rewrites some macros, and one 'for' statement, to eliminate "statement not
-reached" compiler warnings. (gxcldev.h, gxpath2.c)
-
-Corrects a tiny inaccuracy in the computation of trapezoid coordinates.
-(gdevddrw.c)
-
-Edits the trapezoid fill code for greater readability and better
-documentation of its functioning. The new code runs a little slower on
-compilers that don't support 'inline'. (gdevddrw.c)
-
-Improves the documentation of the tile phase bookkeeping. (gxclrast.c)
-
-Documents the fact that fixed_mult_quo takes the floor if the first argument
-is negative. (gxfixed.h)
-
-Finishes implementing clipsave and cliprestore. (gxclipsr.h, gxistate.h,
-gzstate.h, gsclipsr.c, gsstate.c)
-
-Implements driver access to planar, rather than chunky, banding.
-(gdevplnx.h, gdevprn.h, gxclist.h, gxdevcli.h, gxrplane.h, gdevplnx.c,
-gdevprn.c, gxclread.c)
-
-Makes it possible to set up memory devices that allocate just the line
-pointer table (but not the bitmap), or neither the line pointers nor the
-bitmap. (gxdevmem.h, gdevmem.c)
-
-Moves gx_device_white/black to a more appropriate header file. (gxdcolor.h)
-
-Moves gx_default_make_buffer_device to a more appropriate file.
-(gdevdflt.c, gdevprn.c)
-
-Adds plane extraction and expansion utility procedures, required for the
-extended capability of get_bits_rectangle. (gsbitops.h, gsbitops.c)
-
-Extends get_bits_rectangle so it can return individual planes rather than
-all planes. (gdevplnx.h, gsbittab.h, gxbitfmt.h, gxgetbit.h, gdevdgbr.c,
-gdevdrop.c, gdevmem.c, gdevplnx.c, gsalphac.c, gsbittab.c)
-
-Factors out the two more complex cases of gx_get_bits_copy into single-use
-procedures for readability. (gdevdgbr.c)
-
-Makes public the procedure for reducing a colored halftone to a pure or
-binary halftone, needed for planar rendering. (gxdither.h, gxdither.c)
-
-Moves the client_data pointer from gs_state to gs_imager_state.
-(gxistate.h, gzstate.h, gsstate.c)
-
-Extends the plane extraction device to handle fill_mask and images
-efficiently. (gxcmap.h, gdevplnx.h, gdevplnx.c)
-
-Creates a procedure to make a temporary copy of a gs_imager_state, needed
-for planar image processing. (gxistate.h, gsstate.c)
-
-Makes getting the color mapping procedures for a device a virtual procedure
-of the imager state, needed for planar image processing. (gxcmap.h,
-gxistate.h, gxcmap.c, gxicolor.c, gximono.c, gxi12bit.c)
-
-Increases the amount of memory allocated to the asynchronous rasterizer,
-since we now may need a dynamically allocated line pointer table for the
-target (plane) memory device. (gdevprna.c)
-
-Adds a record of which bands have "difficult" RasterOps -- RasterOps that
-can't be executed, even in principle, in CMYK space. We don't do anything
-with this information yet, but we will have to. (gsropt.h, gxband.h,
-gxcldev.h, gxclpath.h, gxclist.c, gxclpath.c, gxclrect.c)
-
-Makes conversion from render_plane indices to bit ranges the responsibility
-of the device, not the client. (gxrplane.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.65"></a>Version 5.65 (internal) (11/13/98)</h2>
-
-<p>
-The main purpose of this fileset is to fix the MS Windows and OpenVMS build
-procedures, which have been broken since 5.60. It also adds the ability for
-a driver to determine efficiently which colors are used in a given page or
-band, which is important for separated color printing, and contains some
-early support for plane-separated color printing.
-
-<h3><a name="5.65_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - Every platform-specific makefile must now define D_ and _D, the
-brackets for defining preprocessor macros.
- - The unix-cc.mak makefile has been renamed unixtrad.mak, since it
-only applies to "traditional C" compilers.
-
-(Drivers, Library)
- - Devices now store their TextAlphaBits and GraphicsAlphaBits values
-explicitly. The former get_alpha_bits procedure is obsoleted, and no
-longer implemented or called by any code we distribute.
- - gx_device_color_info now has additional fields. Code that
-constructed gx_color_info_values in any way other than by using the dci_
-macros will no longer work.
-
-</pre><h3><a name="5.65_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The -sPSFile= switch was still documented, even though it no
-longer exists. (doc/Use.htm)
- - The - "switch" wasn't documented in the list of switches,
-although it was documented elsewhere. (doc/Use.htm)
- - The documentation for the PC environments was out of date -- it
-didn't mention the use of subdirectories. (doc/Make.htm)
-
-Updates the documentation on PostScript files to indicate in what directory
-the files are distributed. (doc/Psfiles.htm)
-
-Documents more of the utility procedures used by printer drivers.
-(gdevprn.h)
-
-Notes that the public tar archives may not be compatible with the tar
-program in SunOS 4.1.3. (doc/Make.htm)
-
-Adds documentation on the Unix "make pg" target. (doc/Make.htm)
-
-Updates documentation to reflect the name change from unix-cc.mak to
-unixtrad.mak. (doc/Make.htm)
-
-Adds some links for the benefit of people who have built Ghostscript before
-and therefore skip reading the initial sections of the documentation.
-(doc/Make.htm)
-
-Documents the new -_ switch. (doc/Use.htm)
-
-Updates the documentation to mention PostScript LanguageLevel 3 and to
-remove many references to 16-bit systems. (doc/Language.htm)
-
-</pre><h3><a name="5.65_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - A cast discarded `const' needlessly. (genconf.c)
- - Upper-case echogs switches were getting converted to lower case
-on VMS. (jpeg.mak)
- - $(EXP) was missing before some invocations of executables.
-(gs.mak, jpeg.mak, lib.mak)
- - Some dependencies in the Unix install script were incorrect.
-(unixinst.mak)
- - Because of differences between shells, putting *.upp in the list
-of files to be installed didn't work with some shells. (unixinst.mak)
- - The PC makefiles were out of date. (bcwin32.mak, pcwin.mak,
-winint.mak, winlib.mak, dwmain.rc, gsdll32.rc)
- - Some makefiles still used $(DEV) instead of dev. (dvx-tail.mak,
-msvclib.mak, openvms.mak, os2.mak, pcwin.mak, watclib.mak, winlib.mak)
- - The DEVICE_DEVSn lists overflowed the DOS 120-character command
-line limit again. We had to add DEVICE_DEVS16 through 20 to work around
-this. (*.mak)
- - Preprocessor definitions have a different syntax on VMS. Fixing
-this required adding D_ and _D macros, similar to I_ and _I. This is a
-NON-BACKWARD-COMPATIBLE change, since these definitions are now required in
-each platform-specific makefile. (dvx-head.mak, openvms.mak, os2.mak,
-unixhead.mak, wccommon.mak, winlib.mak, zlib.mak)
-
-Adds command line switches to generate additional warnings when compiling
-the auxiliary programs with gcc. (unix-gcc.mak)
-
-Gets rid of the EXPP and SHP macros, since they aren't used or needed any
-longer. (gs.mak, bcwin32.mak, dvx-head.mak, msvccmd.mak, openvms.mak,
-os2.mak, unixhead.mak, watcw32.mak, wccommon.mak)
-
-Changes the Unix EXP to null, since all executables now use an explicit
-directory prefix. (unixhead.mak)
-
-Renames unix-cc.mak as unixtrad.mak, since people with ANSI-compatible cc
-were getting confused. (unix-cc.mak [deleted], unixtrad.mak)
-
-Adds a -_ switch, for piped execution with buffering. (iminst.h,
-imainarg.c)
-
-</pre><h3><a name="5.65_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The revised ansi2knr didn't recognize "foo(void)" as a procedure
-definition. (ansi2knr.c)
- - ansi2knr didn't handle function definitions where the last
-formal parameter was a procedure parameter. (ansi2knr.c)
-
-Adds a utility for printing an informative error page if a PostScript job
-fails. (lib/errpage.ps, doc/Psfiles.htm, unixinst.mak)
-
-</pre><h3><a name="5.65_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The [e]pswrite drivers produced incorrect output for images in
-non-Device color spaces. We fixed this by causing all other images to be
-handled as rectangles. This is clearly not satisfactory: we need to unify
-the PS and PDF writers in this area. (gdevps.c)
- - The CCITTFaxEncoded data produced by the [e]pswrite driver had
-both a Rows value and an EndOfBlock marker, which wasn't compatible with
-some Adobe interpreters. (gdevpsdf.c)
- - X devices couldn't be copied, because the copy didn't clear the
-list of X fonts and therefore tried to free it a second time. (gdevx.c,
-gdevxini.c)
- - gdevx.h declared a type called rect, conflicting with variables
-named rect. (gdevx.h, gdevx.c)
- - A function definition wasn't formatted properly to be
-recognized by ansi2knr. (gdevupd.c)
- - The PCL XL drivers crashed if given a masked image. (gdevpx.c)
-
-Adds a PBM driver that writes separated CMYK, using the colors-used masks to
-skip bands. (devs.mak, gdevpbm.c)
-
-Updates drivers that formerly supported the TextAlphaBits and
-GraphicsAlphaBits parameters themselves. (gdevmswn.h, gdevsvga.h,
-gdevpbm.c, gdevmswn.c, gdevpm.c, gdevwdib.c, gdevsvga.c, gdevxalt.c)
-
-</pre><h3><a name="5.65_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The stack size on the Watcom platform was set too small.
-(watc.mak)
- - The OpenVMS platform code and makefiles had gotten out of date.
-(gp_vms.c, openvms.mak)
-
-</pre><h3><a name="5.65_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The size of Indexed color space lookup tables wasn't set, possibly
-causing them to be corrupted during garbage collection. (zcsindex.c)
- - A function definition wasn't formatted properly to be
-recognized by ansi2knr. (icontext.c)
- - quit was only rebound to stop in encapsulated jobs, rather than in
-any context under control of a job server. Since we don't currently have
-any explicit way to indicate whether execution is under control of a job
-server, we consider that it is under a job server iff startjob has ever been
-executed. (lib/gs_lev2.ps)
-
-Adds tracing output for removing an entry from a dictionary. (idict.c)
-
-Slightly improves dictionary deletion so that it can replace a run of
-deleted keys with empty keys. (idict.c)
-
-Adds statistics-gathering to the interpreter. (interp.c)
-
-Adds more statistics-gathering to the dictionary stack search. (idstack.c)
-
-Improves the debugging printout of packed arrays. (idebug.c)
-
-Increases the name table allocation increment from 128 names (1.5K) to 256
-names (3K), to provide better scattering of name indices. (inamedef.h)
-
-Changes the name count / index mapping to provide better scattering.
-(inamedef.h)
-
-</pre><h3><a name="5.65_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - If a font other than the base 14 wasn't embedded and lacked a
-descriptor, an error occurred. (The PDF specification explicitly prohibits
-this, but Acrobat PDFWriter 3.02 for Windows produces PDF files with
-TrueType fonts that lack a descriptor.) (lib/pdf_font.ps)
-
-</pre><h3><a name="5.65_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The computation of colors used by CMYK halftones was incorrect.
-(gxclpath.c)
- - Some header files had preprocessor directives with a space before
-the #, which pre-ANSI compilers don't accept. (gpsync.h, gsjconf.h,
-gsmemlok.h, gxsync.h, gxxfont.h)
- - A number of prototypes didn't use the Pn macros. (gscolor2.h,
-gscsepr.h, gsptype1.h, gspcolor.c)
- - A function definition wasn't formatted properly to be
-recognized by ansi2knr. (gxcht.c)
- - The algorithm for reducing single-plane CMYK halftones to binary
-halftones was incorrect (bug introduced in 5.60). (gxdither.c)
- - Writing a degenerate triangle or parallelogram in the band list
-could cause a memory access error when rasterizing. (gxclrast.c)
-
-Adds per-band "colors used" information to the information for a saved page,
-and procedures (gdev_prn_colors_used and gx_page_info_colors_used, defined
-in gdevprn.h) for accessing it. (gdevprn.h, gxband.h, gxclist.h, gdevprn.c,
-gxclist.c)
-
-Adds an internal device that appears to clients as a multi-plane color
-device, and extracts a single plane for actual rendering. This device will
-be used to support planar output devices. (gdevplnx.h, gsbitops.h,
-gdevplnx.c)
-
-Adds explicit color_info.text_anti_alias_bits and graphics_anti_alias_bits
-values in the device state, obsoleting the get_alpha_bits procedure, and
-makes them settable for all devices. (gxdevcli.h, gxdevice.h, gdevabuf.c,
-gdevdflt.c, gdevnfwd.c, gdevprn.c, gsdparam.c)
-
-Reformats some code for readability. (gxdither.c)
-
-Adds a tentative API for a procedure that allows band rasterizing directly
-into client's memory. This is tentative because we may need to add the
-ability to select an individual plane. (gdevprn.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.64"></a>Version 5.64 (internal) (11/5/98)</h2>
-
-<p>
-This is another incremental fileset to fix problems for an external
-customer.
-
-<h3><a name="5.64_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Drivers)
- - The output_page procedure of all drivers now must call
-gx_finish_output_page as its last action. (This doesn't affect ordinary
-printer or raster file drivers, which already call a common procedure.)
-
-</pre><h3><a name="5.64_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The instructions for creating 'makefile' on Unix systems were
-out of date. (doc/Make.htm)
-
-</pre><h3><a name="5.64_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - An omitted return statement caused genconf to malfunction on some
-platforms. (genconf.c)
- - The replacement of MAKEFILES by TOP_MAKEFILES accidentally changed
-some comments that should not have been changed. (bcwin32.mak, gs.mak,
-msvctail.mak, openvms.mak, os2.mak, watcw32.mak, wctail.mak, winlib.mak)
-
-</pre><h3><a name="5.64_Drivers"></a>Drivers</h3><pre>
-
-Updates drivers to call gx_finish_output_page where needed. (gdev3b1.c,
-gdevcgm.c, gdevcp50.c, gdevpdf.c, gdevmswn.c, gdevpm.c, gdevps.c, gdevpx.c,
-gdevsnfb.c, gdevwprn.c, gdevx.c)
-
-</pre><h3><a name="5.64_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The FontBBox workaround introduced in 5.63 didn't work properly.
-(zchar1.c)
- - PageCount was getting incremented in the first device of a device
-pipeline, rather than in the last one and being propagated back.
-(gxdevice.h, gdevbbox.c, gdevdflt.c, gdevnfwd.c, gdevprn.c, gdevprna.c,
-gsdevice.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.63"></a>Version 5.63 (internal) (11/4/98)</h2>
-
-<p>
-This fileset was driven by the development needs of an external customer,
-primarily related to asynchronous rendering. It includes a few bug fixes as
-well.
-
-<h3><a name="5.63_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - In the makefiles, changes the name MAKEFILES to TOP_MAKEFILES.
-
-(Library)
- - The pis member of the Type 1 interpreter state was renamed in
-order to catch places that assumed it was set. (It may now be 0.) This
-should not affect any client code.
- - gx_page_queue_dnit and gx_page_queue_finish_dequeue now free the
-band list information associated with the page_info in the queue entry. An
-explicit call of gx_page_queue_entry_free_page_info is now required to free
-this information before any other call of gx_page_queue_entry_free.
-
-</pre><h3><a name="5.63_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - devs.mak incorrectly referred to msdevs.mak rather than pcwin.mak.
-(devs.mak)
-
-</pre><h3><a name="5.63_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - There was a $ in the makefile that wasn't quoted. (unix-gcc.mak)
- - The name MAKEFILES has a special meaning in GNU make which only be
-disabled by using a directive that is a syntactic error for standard 'make'
-implementations. We had to work around this by changing all occurrences of
-MAKEFILES to TOP_MAKEFILES. (*.mak)
- - genconf did the wrong thing for modules with names shorter than
-5 characters. (genconf.c)
-
-</pre><h3><a name="5.63_Drivers"></a>Drivers</h3><pre>
-
-Updates the Canon BJC library, changing the names of the files. This code
-is still very preliminary. (gdevbjcl.h, gdevbjcl.c)
-
-</pre><h3><a name="5.63_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - Some Type 1 fonts have a plausible but incorrect (too-small)
-FontBBox, causing some characters to be clipped. We work around this by
-enlarging the FontBBox and restarting the rasterization if the outline goes
-outside the FontBBox. (zchar1.c)
-
-</pre><h3><a name="5.63_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - gx_default_strip_copy_rop didn't check for zero width before
-dividing by it. (gdevdrop.c)
- - Some places that called a procedure returning void tried to use
-the return value. (gximage.c, gximage1.c, gximage4.c)
- - The flatness for rendering Type 1 characters was set incorrectly
-(always set to 0, producing best accuracy at extra cost) for characters not
-in portrait orientation. (gxtype1.c)
- - clist_begin_typed_image incorrectly used the memory manager client
-name "clist_begin_image". (gxclimag.c)
- - If a page queue entry was created without a page_info, the entry's
-page_info wasn't initialized, probably causing a crash when attempting to
-free the (nonexistent) associated band files later. (gxpageq.c)
-
-More fully supports the use of saved page_info objects for decoupling banded
-rendering from band list construction:
- - Adds the ability to close and free the command list associated
-with a saved page. (gxclist.h, gxclist.c)
- - Separates freeing of the band list information associated with a
-page queue entry from freeing the entry itself. (gxpageq.h, gxpageq.c)
- - Changes the rendering thread for asynchronous band rendering so
-that it doesn't try to free the band list information twice. (gdevprna.c)
-
-Implements triangles and parallelograms in the band list, primarily for the
-sake of smooth shading. (gxclpath.h, gxclist.c, gxclpath.c, gxclrast.c)
-
-Adds a rectangle merging procedure, parallel to rectangle intersection.
-This is needed for the FontBBox fix. (gsrect.h)
-
-Adds logic for keeping track of what pixel values are used in which bands.
-Currently this information is not used for anything. (gdevmrop.h, gsropt.h,
-gxcldev.h, gxclpath.h, gxclrect.c, gxclpath.c, gxclimag.c)
-
-Updates a few more files for readability and coding conventions.
-(gxband.h, gxpageq.c)
-
-Updates users of gxband.h and gxpageq.h. (gdevprn.h, gxclist.h, gxpageq.h,
-gdevprna.c, gxclpage.c, gxclread.c)
-
-Moves the definition of the page queue into the (private) implementation
-file. (gxpageq.h, gxpageq.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.62"></a>Version 5.62 (internal) (10/31/98)</h2>
-
-<p>
-This fileset concludes this round of work on (primarily color) performance
-improvement. It contains almost no new bug fixes.
-
-<h3><a name="5.62_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Library)
- - Clients that load the CIE caches themselves must now reset the
-procedures to the _from_cache values. (This affects the PostScript
-interpreter, but no ordinary library clients.)
- - gs_cie_compute_wbsd (an internal procedure) was changed to
-gs_cie_compute_points_sd, with different parameters.
-
-</pre><h3><a name="5.62_Documentation"></a>Documentation</h3><pre>
-
-Adds information about problems with PDF files copied from Macintosh
-environments. (doc/Use.htm)
-
-</pre><h3><a name="5.62_Drivers"></a>Drivers</h3><pre>
-
-Adds a library for generating Canon BJC commands. This code is subject to
-change without notice! (gdevcbjc.h, gdevcbjc.c)
-
-</pre><h3><a name="5.62_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The structures allocated for CIE RenderTables weren't marked
-correctly for garbage collection, possibly mangling the output. (zcie.c)
- - The CIE color space procedures weren't reset after the cache was
-loaded, producing incorrect output now that it matters. (zcie.c, zcrd.c)
-
-</pre><h3><a name="5.62_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Under some circumstances, a setbbox didn't take effect.
-(gxpcopy.c)
- - The last step of CIE color mapping didn't clamp the very top end
-of the range correctly. (gsciemap.c)
-
-Speeds up bits_replicate_horizontally a bit more. (gsbitops.c)
-
-Separates the CIE color mapping code from CIE cache loading, since the file
-was getting too big. (gscie.h, gscie.c, gsciemap.c)
-
-Finishes adding the hooks for skipping steps during CIE color mapping when
-possible, and implements one case of step-skipping. (gscie.h, gscie.c,
-gsciemap.c, gscrd.c)
-
-Adds more tracing to the CIE color machinery. (gscie.c)
-
-Changes the default number of tiles for the colored halftone screen caches
-from 1 to 4, substantially reducing cache turnover. (gsht1.c, gshtx.c,
-gxclrast.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.61"></a>Version 5.61 (internal) (10/28/98)</h2>
-
-<p>
-More rendering speedups, and fixes for many of the minor problems reported
-in 5.50.
-
-<h3><a name="5.61_Documentation"></a>Docmentation</h3><pre>
-
-Fixes problems:
- - There were still some incorrect references to .txt files.
-(gs.mak, libpng.mak)
- - Two references to libpng should have referred to libjpeg.
-(gs.mak)
-
-</pre><h3><a name="5.61_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - GNU 'make' treats the name MAKEFILES specially. (unix-gcc.mak)
- - genconf didn't sort libraries in the right order. (genconf.c)
- - The dependency for ansi2knr, and the invocation of ccgs, didn't
-include the directory name. (ccgs, unix-cc.mak)
- - The CC_ and CCAUX rules didn't invoke the new ccgs correctly.
-(unix-cc.mak)
- - There was a typo in a comment. (unixtail.mak)
- - gcc versions of the form 2.7.2.f.1 weren't recognized as having
-the const-related code generation bug. (unix-gcc.mak)
-
-Documents workaround for bugs in newer IRIX compilers. (doc/Make.htm)
-
-</pre><h3><a name="5.61_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - ansi2knr didn't understand the new formatting of the enum_ptrs and
-reloc_ptrs procedures, which now don't have a left brace on the same line as
-the macro call that defines the procedure. (ansi2knr.c)
-
-Adds a utility for viewing MIFF files. (lib/viewmiff.ps)
-
-</pre><h3><a name="5.61_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The X driver could report a depth (e.g., 15 bits) that caused
-problems elsewhere. (gdevxini.c)
- - With the X driver, if the display is grey-scale or does not have
-enough colors to allocate a color ramp, Ghostscript crashed in
-x_map_color_rgb due to an array index overflow. (gdevx.c)
- - The PDF writer used the X scaling of fonts to determine the point
-size rather than the Y scaling, which gives the wrong result for synthetic
-condensed fonts. (gdevpdft.c)
- - If the last thing written before a flushpage was text, the X
-driver might fail to display it. (gdevx.c)
- - The PDF writer didn't free the streams created for image
-compression, causing a memory leak. (gdevpsdf.c)
- - pswrite didn't output a command to set the page size. (gdevps.c)
-
-Removes an obsolete comment and commented-out line. (gdevxalt.c)
-
-</pre><h3><a name="5.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Explicit (not resource) Indexed color spaces caused an error.
-(lib/pdf_draw.ps)
-
-</pre><h3><a name="5.61_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The PNGPredictor filters didn't free their row buffer. (spngp.c)
- - The PNGPredictor filters didn't handle end-of-data correctly.
-(spngp.c)
-
-Changes the eexec filter to ignore % characters when reading
-ASCIIHex-encoded data. This is contrary to the Adobe documentation, but one
-badly coded prologue requires it. (seexec.c)
-
-</pre><h3><a name="5.61_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The definition of TRANSPARENCY_PER_H_P was in the wrong module,
-causing it to be ignored. (gdevmrop.h, gdevdrop.c)
- - There was a typo in the tracing output for init_tile_cursor.
-(gxcht.c)
- - gx_get_bits_copy computed the standard raster incorrectly if
-the destination used a different color representation from the source,
-causing multi-line transfers to be done incorrectly. (gdevdgbr.c)
- - Parentheses were missing around the use of width_bits in the
-definition of bitmap_raster, possibly causing incorrect computation.
-(gxbitmap.h)
- - When rendering a Pattern, a singular CTM caused an error even if
-the Pattern was empty. (gspcolor.c)
- - The lookup table wasn't allocated for device-originated CRDs.
-(gscrdp.c)
- - If an error occurred when setting up to rasterize a band,
-data_bits could be freed without ever having been initialized. (gxclrast.c)
- - Processing a CIE-color image with a color space different from the
-current color space caused an error. (gscie.c)
- - The speedup for bits_replicate_horizontally had an algorithm
-error, producing incorrect output. (gsbitops.c)
-
-Splits up the memory device implementation of RasterOp, since the file was
-getting too large. (gdevmem.h, gdevm1.c, gdevm8.c, gdevm16.c, gdevm24.c,
-gdevm32.c, gdevmrop.c [deleted], gdevmr1.c, gdevmr2n.c, gdevmr8n.c,
-gsnorop.c)
-
-Cleans up a little formatting. (gsbittab.h)
-
-Speeds up the default RasterOp implementation some more. (gdevdgbr.c,
-gdevdrop.c, gdevmem.c)
-
-Speeds up testing whether a given halftone level is already present in its
-cache. (gzht.h, gxht.c)
-
-Speeds up 1-bit CMYK halftones a bit more. (gxcht.c)
-
-Makes filling always use the (much faster) trapezoid-based algorithm if the
-region being filled is a rectangle. (gxfill.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.60"></a>Version 5.60 (internal) (10/18/98)</h2>
-
-<p>
-This fileset incorporates many performance enhancements for 1-bit CMYK
-devices, especially for PCL 5c interpretation.
-
-<p>
-This fileset divides the files into subdirectories. In the lists of changed
-files, files with no explicit subdirectory name are in the src subdirectory.
-The revised OpenVMS and OS/2 makefiles have not been tested.
-
-<h3><a name="5.60_Incompatible_changes"></a>Incompatible changes</h3><pre>
-
-(Procedures)
- - The instructions for font compilation in doc/Fonts.htm are
-different.
- - The fileset has been split into multiple directories; the source
-code and makefiles are now in src/.
- - The top-level makefile requires a definition for BINDIR for the
-directory to hold the final executable.
- - Every .dev rule of the form
- xxx.dev: &lt;list&gt;
- $(SETyyy) xxx &lt;items&gt;
- $(ADDMOD) xxx &lt;items&gt;
-must be changed to
- $(DD)xxx.dev: &lt;list&gt;
- $(SETyyy) $(DD)xxx &lt;items&gt;
- $(ADDMOD) $(DD)xxx &lt;items&gt;
-(DD for drivers, PSD for PostScript/PDF-interpreter features, GLD for
-graphics library features). Every -include and -replace option in the
-makefiles rules, and every element of FEATURE_DEVS and DEVICE_DEVS*, must be
-changed similarly. This is very unfortunate, especially since people
-editing FEATURE_DEVS and DEVICE_DEVS* must now know which subsystem
-implements a particular feature; but we tried 3 different ways to get the
-generated .dev files out of the top-level directory, and this was the only
-one we could make work.
- - Top-level makefiles must define both MAKEFILE and MAKEFILES,
-the latter to include any subsidiary makefiles that define configuration
-parameters. Dependencies on $(MAKEFILE) must be changed to $(MAKEFILES).
- - Color space objects now must either be allocated with the
-gs_cspace_build_ procedures or initialized with the gs_cspace_init_
-procedures: building color spaces "by hand" is no longer allowed.
-
-(Library)
- - There are new required elements of the gs_image_type_t structure.
- - The binary and colored variants of gx_device_halftone have
-changed. (No APIs are affected.)
- - If a device changes its (effective) color mapping algorithm other
-than as a side effect of put_params, it must call
-gx_device_decache_colors(dev).
-
-</pre><h3><a name="5.60_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - Some files still referred to .doc files rather than .htm.
-(gsiparam.h, imain.h)
- - Version 5.50 was incorrectly identified as a beta version.
-(doc/News.htm)
- - The instructions for cross-compilation were seriously
-incomplete. (doc/Make.htm)
-
-Adds a text-only README file. (doc/README)
-
-Updates the instructions for font compilation. (doc/Fonts.htm)
-
-Updates the instructions for device and feature selection. (doc/Make.htm)
-
-Adds material on 8.3 file names, compiler warning messages, and graphics
-library error codes to the C style guide. (doc/C-style.htm)
-
-Adds a note about gx_device_decache_colors. (doc/Drivers.htm)
-
-Improves formatting slightly. (doc/Install.htm, doc/Use.htm)
-
-</pre><h3><a name="5.60_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The Unix install script referred to an obsolete ps2image.ps file.
-(unixinst.mak)
- - The Unix CC script had some duplicated definitions. (unix-cc.mak)
- - The DVX makefile referred to int.mak in GLSRC rather than PSSRC.
-(dvx-gcc.mak)
- - rollconv.ps wasn't installed with the other utilities.
-(unixinst.mak)
- - Some definitions of MAKEFILE lacked a directory name. (os2.mak,
-unix-cc.mak, unixansi.mak, watclib.mak)
- - There were inappropriate dependencies on a file with the literal
-name `makefile'. (bcwin32.mak, gs.mak, watc32.mak)
- - Unix systems didn't use -fomit-frame-pointer when possible.
-(unix-cc.mak, unix-gcc.mak, unixansi.mak, unix-end.mak)
-
-Restructures the source files into multiple subdirectories:
- src/ - files needed at build time: *.mak, *.h, *.c, *.cpp, *.icx, *.rc,
- *.cmd, ??.bat, *.com, *.rps, *.dif, *.cfg
- lib/ - files needed at run time: *_*.ps, *.ppd, *.upp, *.bat
- doc/ - documentation other than man pages: *.htm, *.txt
- man/ - man pages: *.1
- examples/ - sample input data: *.ps, *.eps, *.pdf
-Also incorporates the font compilation makefile into the main makefile,
-since the former now depends on parameters defined in the latter. (*.mak)
-
-****** HAVEN'T SETTLED HOW TO HANDLE .ico FILES ******
-
-NOTE: Still need to update: openvms.mak, os2.mak.
-
-Updates the Unix install script for the directory split. (unixinst.mak)
-
-Updates the font compilation makefile rules to handle alternate directories.
-(cfonts.mak, int.mak)
-
-****** PROBLEM: cfonts.mak NEEDS CCFONT, BUT int.mak NEEDS CF* FOR ADDING
-ONE'S OWN FONTS ******
-
-Removes useless dependencies on gs_*.ps files. (int.mak)
-
-Moves the .dev files into the GEN directories where they belong. (gs.mak,
-dvx-tail.mak, msvclib.mak, openvms.mak, os2.mak, pcwin.mak, ugcclib.mak,
-unixhead.mak, unixtail.mak, unix-end.mak, watc.mak, watclib.mak, winlib.mak,
-echogs.c, genconf.c) ****** NO_OP FOR dvx HASN'T BEEN VERIFIED ******
-NOTE: Still to do:
-src/bcwin32.mak
-src/dvx-gcc.mak
-src/dvx-head.mak
-src/dvx-tail.mak
-src/msvc32.mak
-src/msvccmd.mak
-src/msvclib.mak
-src/msvctail.mak
-src/openvms.mak
-src/os2.mak
-src/pcwin.mak
-src/ugcclib.mak
-src/watc.mak
-src/watclib.mak
-src/watcw32.mak
-src/wccommon.mak
-src/wctail.mak
-src/winint.mak
-src/winlib.mak
-
-Adds a new BINDIR directory for the final executable (and associated files
-like resource files). After building, only the contents of BINDIR and lib
-are needed for execution. (gs.mak, unix-end.mak) ****** NEED TO DO
-openvms.mak, os2.mak, OTHER PC MAKEFILES ******
-
-Updates libpng to version 1.0.2. (libpng.mak)
-
-</pre><h3><a name="5.60_Utilities"></a>Utilities</h3><pre>
-
-Adds a new switch, -b, to echogs. (echogs.c)
-
-</pre><h3><a name="5.60_Drivers"></a>Drivers</h3><pre>
-
-Updates the PDF writer for the change in color space initialization.
-(gdevpdfi.c)
-
-Speeds up the pkmraw driver a bit more. (gdevpbm.c)
-
-Updates some drivers to use the new CMYK color mapping procedures.
-(gdevpbm.c, gdevpcx.c, gdevxalt.c)
-
-Updates one driver that maintained its own color cache. (gdevxalt.c)
-
-Removes some compiler warnings (mostly about "uninitialized" variables).
-(gdevpdfo.c, gdevpdft.c, gdevpx.c)
-
-Adds another driver for the H-P Color LaserJet 5/5M. (gdevcljc.c)
-
-</pre><h3><a name="5.60_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - A change in the MetroWerks C compiler caused the hypot function
-to become declared. (math_.h)
-
-</pre><h3><a name="5.60_Interpreter"></a>Interpreter</h3><pre>
-
-Updates the compiled font code for updates in the type declarations.
-(iccfont.c, icfontab.c)
-
-Cleans up some more formatting and macros. (ccfont.h, errors.h, icfontab.c,
-interp.c)
-
-Updates clients for the change in color space initialization. (zcsdevn.c,
-zcsindex.c, zcspixel.c, zcssepr.c, zpcolor.c)
-
-Updates the memory validator for the addition of the large-block freelist.
-(ilocate.c)
-
-</pre><h3><a name="5.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - If the final %%EOF was followed by any blanks before the newline,
-an error would occur. (lib/pdf_main.ps)
-
-</pre><h3><a name="5.60_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The LZWDecode filter wouldn't handle a file that had 4096-256-2+1
-data items before the reset. (We think this is a bug in the file, but
-Acrobat accepts it.) (slzwx.h, slzwd.c)
-
-Rearranges code slightly to improve readability. (spdiff.c)
-
-</pre><h3><a name="5.60_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Changing the resolution (or any other parameter) of the bbox
-device from the command line caused an invalid memory access. (gdevbbox.c)
- - When banding, if the very first drawing operation involved a
-halftone with non-zero phase, an arithmetic exception occurred.
-(gxclpath.c)
- - When banding, the X offset of the band was negated, producing
-incorrect output when placing multiple source pages on a single output page.
-(gxclread.c)
- - When banding, rotated images crossing band boundaries produced
-incorrect output, because the subrectangle X value was inconsistent with the
-amount of data transmitted. (gxclimag.c)
- - When banding, the clipping check didn't take interpolation support
-into account. (gxclimag.c)
- - The clipping check for banding used (int) to take the floor of
-floating point values, which is wrong for negative values. (gxclimag.c)
- - The bounding box device didn't return an empty bounding
-rectangle if nothing had been written to it. (gdevbbox.c)
- - A value was conditional on a debugging switch even if DEBUG wasn't
-defined. (gxcht.c)
- - Filling a region with a large colored halftone, a non-default
-RasterOp, and a non-null RasterOp source could cause only part of the region
-to be filled. (gxcht.c) ****** NOT FIXED YET ******
- - Type 1 fonts that used very large numbers (&gt;= 2^19) caused a
-rangecheck. We've fixed this for the only case that seems to matter, namely
-&lt;very-large-number&gt; &lt;number&gt; div. (gxtype1.h, gstype1.c)
- - The memory-based band list allocator failed to return an error
-code from memfile_next_blk. (gxclmem.c)
- - When recovering from a low-band-list-memory condition while
-writing an image, the record of the current image enumeration
-(cdev-&gt;image_enum_id) wasn't updated. (gxclimag.c)
- - The estimated memory requirement for the band list rasterizer was
-too small. (gdevprna.c)
-
-Adds some tracing to mask clipping. (gxclipm.c)
-
-Speeds up masked images by doing mask clipping before halftoning, using a
-more efficient mask scanning algorithm, and checking for vertical blocks of
-1s. (gxclipm.c)
-
-Speeds up ImageType 4 images greatly by incorporating the color-key check
-into the ImageType 1 rendering code. NOTE: the 12-bit case has not been
-tested. (gxcpath.h, gximage.h, gxi12bit.c, gxicolor.c, gxifast.c,
-gxiinit.c, gximage4.c, gximono.c, gxiscale.c)
-
-Implements passing ImageType 4 images (and potentially others) through the
-band list. This involves adding image parameter writing and reading
-procedures to the image type structure. (gscdefs.h, gsiparam.h, gsiparm2.h,
-gsiparm4.h, gsmatrix.h, gxclpath.h, gxiparam.h, gconf.c, genconf.c,
-gsmatrix.c, gxclimag.c, gxclist.c, gxclpath.c, gxclrast.c, gxiinit.c,
-gximage2.c, gximage3.c, gximage4.c)
-
-Splits off the generic image support code from the ImageType 1 code.
-(gxiinit.c [deleted], gximage.c, gximage1.c, gxipixel.c)
-
-Removes some vestiges of support for 16-bit environments. (gsmisc.c)
-
-Implements bit-planar images, important for PCL interpretation.
-(gsiparam.h, gximage.h, gxiparam.h, gdevddrw.c, gdevpdfi.c, gdevps.c,
-gsimage.c, gxclimag.c, gxidata.c, gximage.c, gxipixel.c) ****** NOT TESTED
-YET ******
-
-Makes closing a memory device that owns its bitmap set the bitmap pointer to
-0, for the sake of an application that doesn't handle is_open properly.
-(gdevmem.c)
-
-Speeds up floating-point emulation for single-precision add, subtract, and
-multiply. (gsfemu.c)
-
-Speeds up sampling of transfer functions. (gshtx.c)
-
-Makes the CIE cache used fixed-point values if the CPU has slow floating
-point. (gscie.h)
-
-Adds a unique ID to color spaces to allow fast detection of reselecting the
-same color space. This matters for certain client code that repeatedly
-reselects the same color space, since selecting certain color spaces is
-expensive. (gscpixel.h, gscspace.h, gxcspace.h, gscolor2.c, gscpixel.c,
-gscscie.c, gscspace.c, gspcolor.c, gsstate.c, gximage2.c) ****** NEED TO FIX
-gxclrast.c TO ALLOC INDEXED COLOR SPACE ******
-
-Speeds up setting Pattern color spaces, by bypassing the install code for
-the base space. (gspcolor.c)
-
-Adds a unique ID to CRDs to allow fast detection of reselecting the same
-CRD. This matters for certain client code that does this repeatedly.
-(gscie.h, gscrd.h, gscrd.c)
-
-Detects setting the CRD to one with identical PQR components, and bypasses
-an expensive setup step. (gscie.c)
-
-Speeds up converting pixels between representations (gx_get_bits_copy) for
-devices with up to 4 bits per pixel, by caching the pixel values.
-(gdevdgbr.c)
-
-Speeds up the slow default RasterOp algorithm a little. (gdevdrop.c)
-
-Defines standard mapping procedures for 1-bit-per-component CMYK colors.
-Other code can then test for the presence of these procedures and use more
-efficient algorithms. (gxdevice.h, gxcmap.c)
-
-Speeds up some algorithms in the bbox device by making some recursive calls
-use a pure color rather than a client-supplied one. (gdevbbox.h, gdevbbox.c)
-
-Adds a cache for the black and white pixel values to the device structure.
-(gxdevcli.h, gxdevice.h, gdevalph.c, gdevnfwd.c, gsdparam.c, gxdcolor.c)
-
-Makes the code for colored halftones a little more readable. (gxcht.c)
-
-Speeds up color mapping for CMYK devices by copying the color mapping
-procedures into forwarding devices, when applicable. (gdevcmap.c,
-gdevmem.c, gsdevice.c, gxclip.c)
-
-Removes some compiler warnings (mostly about "uninitialized" variables).
-(gxcldev.h, gsdevmem.c, gsshade.c, gstype42.c, gxclpath.c, gxfill.c,
-gximage3.c, gxpath2.c, gxpcopy.c)
-
-For the benefit of certain client code that commonly sets a CRD and then
-doesn't use it, makes loading of the joint CIE caches lazy (at the library
-level). (gscie.h, gscie.c)
-
-Changes CIE color restriction from a macro to a procedure, since it is
-rarely used. (gscie.c)
-
-Adds code and structures for detecting when CIE Decode and/or Encode
-procedures are simply linear transformations, which would allow collapsing
-them into the adjacent matrix, but doesn't actually do the collapsing.
-(gscie.h, gscie.c)
-
-Speeds up color halftoning by pre-computing the mask of planes that need to
-be halftoned, and preconverting multi-plane halftones to binary or solid
-colors when possible. (gsdcolor.h, gxcht.c, gxdcolor.c, gxdither.c, gxht.c)
-
-Optimizes color mapping for 1-bit-per-component CMYK halftones. (gxcht.c)
-
-Optimizes null RasterOp sources for black = 1 as well as black = 0.
-(gxdcolor.c)
-
-Modifies the standard allocator so it keeps track of large free blocks as
-well as small ones, and uses them to satisfy requests when appropriate.
-(gxalloc.h, gsalloc.c)
-
-Speeds up the horizontal bitmap replication code a bit. (Much more is
-possible.) (gsbitops.c)
-
-Changes gs_image_max_planes to gs_image_max_components to reflect its
-function more accurately. (gdevddrw.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.50"></a>Version 5.50 (9/16/98)</h2>
-
-<p>
-This is the first public release since 5.10. See
-<a href="Current.htm">the release summary</a>
-for a list of major additions and changes.
-
-<h3><a name="5.50_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - Many files still referred to .txt rather than .htm files.
-(DLL.htm, Make.htm, New-user.htm, Readme.htm, bcwin32.mak, cfonts.mak,
-devs.mak, dvx-gcc.mak, dwmainc.cpp, gs-vms.hlp, gxdevcli.h, gxdevice.h,
-int.mak, jpeg.mak, libpng.mak, msvc32.mak, msvclib.mak, openvms.mak,
-os2.mak, unix-cc.mak, unix-gcc.mak, unixansi.mak, watc.mak, watcw32.mak,
-wccommon.mak, zlib.mak)
-
-Notes that ps2epsi.1 and ps2epsi.txt may be inconsistent or obsolete.
-(ps2epsi.1, ps2epsi.txt)
-
-Adds a reference to Thomas Merz's Ghostscript manual. (Readme.htm)
-
-Adds instructions for making RPMs. (Install.htm, Make.htm)
-
-Changes the URL for post-release notes. (Bug-form.htm, Make.htm,
-New-user.htm)
-
-Notes problems with Watcom compilation. (Make.htm)
-
-</pre><h3><a name="5.50_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - On Unix systems, the documentation files didn't get installed by
-`make install'. (unixinst.mak)
- - $() was missing around MAKEFILE in a Windows makefile.
-(msvc32.mak)
- - The dfax drivers didn't include all the necessary files in the
-linker list. (contrib.mak)
- - The MSVC makefiles didn't allow building the executable in a
-different directory. (bcwin32.mak, gs.mak, lib.mak, msvc32.mak,
-msvccmd.mak, msvclib.mak, msvctail.mak, os2.mak, watcw32.mak, winint.mak,
-winlib.mak)
- - The default build directory for the Borland compiler was debugobj
-rather than obj. (bcwin32.mak)
-
-Adds a patch file and some specification files for making RPMs. (gs.rps,
-gs-fonts.rps, rpm-conf.dif)
-
-Removes the docs target in the makefile, since this function is now
-performed by another program. (unix-end.mak)
-
-</pre><h3><a name="5.50_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The jpeg drivers caused a memory access error. (bug introduced in
-5.20 by an incorrectly made fix) (gdevjpeg.c)
- - The x11cmyk driver implemented map_rgb_color, which it should not
-do. (gdevxalt.c)
-
-Updates a high-level driver for the addition of the bit-planar image format.
-(gdevps.c)
-
-</pre><h3><a name="5.50_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - echogs -h didn't work in environments where char is signed.
-(echogs.c)
-
-</pre><h3><a name="5.50_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - MSVC++ 5.0 produced incorrect code with TDEBUG=0. We "fixed" this
-problem by noting in the makefile that TDEBUG must be left set to 1.
-(msvc32.mak, msvclib.mak)
-
-Updates the icons for the MS Windows and OS/2 platforms. (gsgraph.icx,
-gsos2.icx, gspmdrv.icx, gstext.icx)
-
-</pre><h3><a name="5.50_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - setpagedevice didn't update the state correctly when switching to
-a new type of device (different OutputDevice value). (gs_setpd.ps)
- - The interpreter's initialization depended on BSS being initialized
-to 0. (files.h, zfile.c)
-
-Removes all references to reloc_struct_ptr other than in gsstruct.h.
-(igcref.c)
-
-Adds DEBUG tracing for pdfmarks. (gs_pdfwr.ps)
-
-Disables TEST code for release. (zcrd.c, zfdcte.c)
-
-</pre><h3><a name="5.50_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Some third-party software still referred to the obsolete #?
-procedure. (pdf_main.ps)
- - Destinations with string names weren't properly converted to
-pdfmarks. (pdf_main.ps)
- - Destinations with S = /Named weren't supported. (pdf_main.ps)
-
-</pre><h3><a name="5.50_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Dropout prevention wasn't applied to landscape image masks.
-(gximono.c)
- - When using async rendering, the renderer's allocator was allocated
-with the wrong allocator. (gdevprna.c)
- - gx_strip_bitmap and gx_device_mask_clip didn't have proper GC
-descriptors, causing crashes if a GC occurred while rendering an ImageType 3
-or 4 image. (gsstruct.h, gxbitmap.h, gxclip2.h, gxclipm.h, gxmclip.h,
-gspcolor.c, gxclipm.c, gxmclip.c)
- - The buffer for printer devices wasn't reallocated properly for
-async devices when the page size changed. We aren't entirely comfortable
-with the fix, but it's the best we've got right now. (gdevprn.c)
- - Some files wouldn't compile with -dNOPRIVATE. (gxcspace.h,
-gscdevn.c, gscolor2.c, gscscie.c, gscsepr.c)
- - gp_semaphore_close and gp_monitor_close were defined as not
-returning an error code. (gpsync.h, gp_nsync.c, gp_posem.c, gp_semon.c,
-gp_win32.c)
- - Initialization code depended on BSS being initialized to 0.
-(gsiodev.c)
- - The special PCL color mapping device didn't handle CMYK devices
-correctly in other than "identity" mode. (gdevcmap.c)
-
-Cleans up a little formatting. (gscie.h, gscpixel.c, gxmclip.c)
-
-Removes all references to reloc_struct_ptr other than in gsstruct.h.
-(gsstruct.h, gsalloc.c, gsdevice.c, gsfont.c, gxcpath.c)
-
-Patches the async code so that it allocates twice as much space for the
-renderer as should be needed, to deal with sandbars. (gdevprna.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.40"></a>Version 5.40 (beta) (9/10/98)</h2>
-
-<p>
-A few more fixes. This is intended as the candidate fileset for the 5.50
-release.
-
-<h3><a name="5.40_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The current GNU Ghostscript version was documented as 3.33, not
-4.03. (New-user.htm)
- - The ansi2knr usage documentation didn't mention --filename.
-(ansi2knr.1)
- - A projected completion date was too optimistic. (ps2pdf.1)
-
-Replaces all documentation files with new HTML versions. (*.txt [deleted],
-*.htm, index.html, imainarg.c)
-
-Adds a contributed set of Emacs macros useful for working with Ghostscript
-documentation. (gsdoc.el)
-
-Changes the version and date format slightly in one file for consistency.
-(gs-vms.hlp)
-
-</pre><h3><a name="5.40_Procedures"></a>Procedures</h3><pre>
-
-Adds a make target (make docs) to touch up documentation files before a
-release. (unix-end.mak)
-
-</pre><h3><a name="5.40_Utilities"></a>Utilities</h3><pre>
-
-Removes the long-obsolete ps2image.ps utility. (ps2image.ps [deleted])
-
-</pre><h3><a name="5.40_Drivers"></a>Drivers</h3><pre>
-
-Adds a driver for the Color LaserJet 5. (devs.mak, gdevclj.c)
-
-</pre><h3><a name="5.40_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - Blanks in command lines weren't handled properly. (dwmain.cpp,
-dwmainc.cpp)
-
-</pre><h3><a name="5.40_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - 16-bit devices didn't convert colors to RGB correctly.
-(gdevm16.c)
- - 16- and 32-bit RasterOp didn't work, because pack_from_standard
-didn't handle depths greater than 8. (gdevdrop.c)
- - RasterOps with devices with non-standard color representation
-sometimes substituted black or white for the source or target. (gdevdrop.c)
- - The non-orthogonal case of Axial shading executed the axial-case
-code as well. (gxshade1.c)
- - copy_color on 4-bit-deep memory devices did an unnecessary
-fit_copy check. (gdevm4.c)
- - An upcast was missing. (gdevbbox.c)
- - View clipping was applied to internal devices, incorrectly.
-(gspath.c)
-
-Revises the implementation of shading so as to reduce the use of macros,
-update formatting, and help prepare for PatternType 2 patterns. (gsshade.h,
-gxshade.h, gxshade4.h, gscolor3.c, gsshade.c, gxshade.c, gxshade1.c,
-gxshade4.c, gxshade6.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.39"></a>Version 5.39 (beta) (9/8/98)</h2>
-
-<p>
-A couple more small fixes.
-
-<h3><a name="5.39_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The pkm[raw] drivers didn't work with 32-bit pixels. (gdevpbm.c)
-
-Adds (fake) 8-, 16-, and 32-bit X11 CMYK devices, for debugging.
-Unfortunately, the 16- and 32-bit devices consume the hardware color map and
-then no longer behave reasonably; the 8-bit device produces output with
-garbled colors (fixed in 5.40). (devs.mak, gdevxalt.c)
-
-</pre><h3><a name="5.39_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - All banded devices caused a memory access error. (bug introduced
-in 5.38) (gsstate.c)
- - The special color mapping device didn't update its state after
-put_params. (gdevcmap.c)
- - RasterOp on 8-bit non-gray-scale devices didn't handle filling
-with constant 0 or 1 properly. (gdevmrop.c)
- - The halftone machinery didn't switch from full-size to strip
-halftones early enough, possibly allocating very large halftone data
-structures. (gshtscr.c)
- - If an ioerror (such as a disk- or memory-full condition) occurred
-while writing out the band list, the bookkeeping structures were left in an
-inconsistent state, causing further problems. (gxclutil.c)
- - Some shaded fills didn't check for errors when filling
-sub-regions. (gxshade1.c, gxshade4.c)
-
-Cleans up some formatting. (gxshade6.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.38"></a>Version 5.38 (beta) (9/3/98)</h2>
-
-<p>
-The sole purpose of this release was to fix some obscure bugs detected by
-the Genoa tests and by another Aladdin project.
-
-<h3><a name="5.38_Documentation"></a>Documentation</h3><pre>
-
-Updates the list of implemented PostScript LanguageLevel 3 features.
-(current.txt)
-
-</pre><h3><a name="5.38_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The PDF writer did the wrong thing for multi-source images with
-more than 180 bytes of data (total) per scan line. (gdevpdfi.c)
- - If one used setdistillerparams, [g]restore caused a rangecheck in
-.setpagedevice. ****** DISABLED FOR DCT DICTS, SINCE THIS CAUSES A SEGV
-****** (gdevpsdp.c)
-
-</pre><h3><a name="5.38_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - 0-length parameter arrays were given an arbitrary type, confusing
-clients. (iparam.c)
- - EOD on a write stream caused an error. (zfileio.c)
-
-</pre><h3><a name="5.38_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - 0-length parameter arrays confused clients that wanted arrays of a
-particular type. (gsparam.c)
- - Patterns with XStep or YStep smaller than the bounding box didn't
-work properly. (gxp1fill.c)
- - Resizing an object sometimes copied it unnecessarily. (gsalloc.c)
- - Freeing the shared part of a graphics state didn't free its
-sub-objects. (gsstate.c)
- - The standard allocator didn't free its initial (self-containing)
-chunk when asked to free itself. (gsalloc.c)
- - The standard allocator didn't attempt to merge free blocks before
-giving up. We implemented this by adding another virtual procedure to
-allocators, consolidate_free. (gsmemory.h, gsmemraw.h, gsalloc.c,
-gsmalloc.c, gsmemlok.c, gsmemory.c)
- - The free object merging algorithm thought there were free objects
-even when there weren't. (Small performance bug only.) (gsalloc.c)
-
-Adds some more tracing to pattern filling. (gxclip2.c, gxp1fill.c)
-
-Replaces the cs_alloc, cs_copy, and cs_undo_alloc macros with procedures.
-(gxcspace.h, gscolor2.c, gscsepr.c, gscspace.c, gspcolor.c)
-
-Moves the free-object merging code from gsnogc.c to gsalloc.c, so it can be
-used even in systems that have a garbage collector. (gsalloc.h, gxalloc.h,
-gsalloc.c, gsnogc.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.37"></a>Version 5.37 (beta) (8/31/98)</h2>
-
-<h3><a name="5.37_Documentation"></a>Documentation</h3><pre>
-
-Mentions the new cid2code utility in the documentation. (psfiles.txt)
-
-Documents dpsnext.dev. (gs.mak)
-
-Notes that clients of ImageType 3 images are responsible for providing the
-mask data before the pixel data. (gsiparm3.h)
-
-</pre><h3><a name="5.37_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The makefiles were missing a dependency of jconfig.h on arch.h.
-With this fix, parallel builds (make -jN) work reliably. (jpeg.mak)
-
-</pre><h3><a name="5.37_Utilities"></a>Utilities</h3><pre>
-
-Adds a utility for creating maps from CIDs to Unicode. (unixinst.mak,
-cid2code.ps)
-
-</pre><h3><a name="5.37_Drivers"></a>Drivers</h3><pre>
-
-Removes the %Fax% IODevice code, since it was only a skeleton and Adobe no
-longer supports this facility. (devs.mak, gdevpfax.c [deleted])
-
-</pre><h3><a name="5.37_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - TrueType fonts whose first code wasn't 0 or 0xf000 didn't display
-correctly. (bug introduced in 5.36) (gs_ttf.ps)
- - CIDFontType 0 fonts didn't handle being redefined with another
-name. (gs_cidfn.ps)
- - CIDFontType 0 fonts could get local-into-global-store errors.
-(gs_cidfn.ps)
- - PDF files couldn't use already-defined CMap resources.
-(pdf_font.ps)
- - Out-of-range CIDs gave an error rather than using a notdef
-character. (gs_cidfn.ps)
-
-</pre><h3><a name="5.37_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - CIDFontType 4 fonts weren't recognized as CID-keyed. (zchar2.c,
-zchar32.c, zfont32.c)
- - When recovering from an error in an operator procedure, the
-interpreter didn't update the dictionary stack caches. (interp.c)
- - startjob didn't reinitialize the stacks or VM space. (gs_lev2.ps)
- - Encoding filters with a Predictor always caused an error.
-(zfilter2.c)
- - currenttrapparams gave an error. (gs_ll3.ps)
- - settrapparams had no effect, and left the dictionary on the stack.
-(gs_ll3.ps)
-
-Finishes implementing Type 32 fonts. These fonts don't actually work
-directly with the cache -- they store the bitmaps in a compressed form in an
-ordinary Dictionary -- but they do behave the way they are specified.
-(gs_typ32.ps, zchar32.c, zfont32.c)
-
-Cleans up formatting and macros in a few more files. (ccfont.h, icharout.h,
-icstate.h, iutil.h, iutil2.h, ibnum.c, iccfont.c, iccinit0.c, ilocate.c,
-isave.h, isave.c, iscannum.c, iutil.c, iutil2.c)
-
-Removes or capitalizes a few more macros. (zcontext.c, zcssepr.c,
-zusparam.c)
-
-</pre><h3><a name="5.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Color spaces with subsidiary spaces (Indexed, Separation, DeviceN)
-sometimes didn't work properly, because they were translated to PostScript
-structures more than once. (pdf_draw.ps)
- - Type 3 fonts didn't rebind the resource context when executing the
-CharProc procedure. (pdf_font.ps)
-
-</pre><h3><a name="5.37_Streams"></a>Streams</h3><pre>
-
-Fixes problems:
- - The CCITTFax decoder signaled an error if it saw an EOB with
-EndOfBlock = false. (According to e-mail from Adobe, EOBs should be
-recognized even if EndOfBlock is false, even though the Red Book implies the
-opposite.) (scfd.c)
-
-Cleans up macros and formatting in a few more files. (slzwce.c, sfxfd.c,
-sfxstdio.c)
-
-</pre><h3><a name="5.37_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Landscape color images usually didn't display. (bug introduced in
-5.32) (gxicolor.c)
- - If gs_heap_free_object was called with ptr != 0 but bp = 0 (which
-is an error), an invalid memory access would occur. (gsmalloc.c)
- - The left side bearing was still being added in a second time for
-the accent of a seac. (bug probably introduced in 5.20) (gxtype1.c)
- - An access error occurred when rendering the very last glyph of a
-TrueType font with a 2-byte loca table. (gstype42.c)
- - In the fast portrait case of monochrome images, a numerical error
-sometimes produced a 1-bit-wide vertical stripe of an incorrect color at the
-right edge of the image. (gxifast.c)
- - ImageType 3 images with InterleaveType = 3 gave memory access
-errors. (gximage3.c)
- - Hit detection ignored any part of the aperture that had negative X
-or Y coordinates. (gdevhit.c)
- - The special color mapping device didn't copy all necessary values
-back from its target. (gxdevice.h, gdevbbox.c, gdevcmap.c, gsdevice.c)
- - The special color mapping device didn't handle ordinary (Type 1)
-images correctly. (gdevcmap.c)
- - CMYK halftones complemented both the color and the halftone level:
-this produced the right number of pixels turned on (only for linear spot
-functions or threshold arrays), but wasn't consistent with either the Adobe
-specification or the user's intentions. (gxcht.c)
- - The phase of mask Patterns wasn't always set correctly.
-(gxp1fill.c)
- - The reader side of overlapped band devices was confused about its
-open/closed status. (gdevprna.c)
-
-Renames Type 32 fonts from ft_bitmap to ft_CID_bitmap. (gxftype.h)
-
-Adds some more tracing for composite font decoding. (gsfcmap.c)
-
-Adds some more tracing for images. (gxiinit.c)
-
-Cleans up formatting and macros in a few more files. (gxifast.c)
-
-Moves the image*_type_data and image*_enum_procs_data definitions from
-header files into more appropriate .c files. (gsiparm2.h, gsiparm3.h,
-gsiparm4.h, gxiparam.h, gxiinit.c, gximage2.c, gximage3.c, gximage4.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.36"></a>Version 5.36 (beta) (8/25/98)</h2>
-
-<p>
-Another set of fixes. The free-standing bbox device now produces convenient
-%%BoundingBox messages. This fileset also includes support for double-byte
-TrueType fonts.
-
-<h3><a name="5.36_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - There was a minor spacing glitch in one man page. (gs.1)
- - The page printed by align.ps didn't make it clear enough what to
-do with the numbers it asks users to calculate. (align.ps)
- - The sample code for adding gamma adjustment didn't work most of
-the time. (devices.txt)
- - The prolog produced by pswrite was completely uncommented.
-(gdevps.c)
- - The documentation didn't note that the string block freelist
-(sfree) is sorted in address order. (gxalloc.h)
-
-Notes that FirstBitLowOrder and LowBitFirst are equivalent. (slzwx.h)
-
-Notes a change in the FTP site of the free Kanji ("Wadalab") fonts.
-(fonts.txt)
-
-Adds a pointer to the freely available Unicode CMaps. (fonts.txt)
-
-Changes an obsolete e-mail address for Carsten Emde. (contrib.mak)
-
-</pre><h3><a name="5.36_Utilities"></a>Utilities</h3><pre>
-
-Fixes problems:
- - The viewgif utility sometimes left 1-scan-line gaps when rendering
-interlaced images. (viewgif.ps)
-
-</pre><h3><a name="5.36_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - In the PDF writer, downsampled images were always written with 8
-bits per sample, not the requested depth. (gdevpsdi.c)
- - The 8-to-N-bit compression filter produced an extra byte at the
-end of each row, and the N-to-8-bit expansion filter skipped an input byte
-at the end of each row. (gdevpsds.c)
- - In the PDF writer, the size of downsampled images for changing the
-pixel width was set incorrectly, leading to inconsistent image parameters in
-the output. (gdevpsdi.c)
- - The subsampling filters didn't take a clear position about what to
-do with excess input samples beyond a multiple of the reduction factor,
-leading to inconsistent image parameters. We added a Boolean to indicate
-whether they should discard the samples or use them to create an additional
-output sample. (gdevpsds.h, gdevpsdi.c, gdevpsds.c)
- - The subsampling filters didn't provide the necessary set_defaults
-procedures. (gdevpsds.h, gdevpsds.c)
- - Because of a typo, pdfwrite and pswrite printed sequences of 4
-decimal values wrong. (bug introduced during macro removal in 5.25)
-(gdevpstr.c)
-
-Makes the PS writer produce a %%HiResBoundingBox as well as a %%BoundingBox.
-(gdevps.c)
-
-</pre><h3><a name="5.36_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The Borland makefile didn't include the MT libraries. We added a
-MULTITHREAD option to this makefile. (bcwin32.mak)
- - The MSVC makefile didn't include the MT switches in the right
-place. (msvccmd.mak)
- - 'make clean' in the Windows makefiles didn't clean up quite
-enough. (bcwin32.mak, msvc32.mak, msvccmd.mak)
- - The OS/2 makefile had gotten slightly out of date. (os2.mak)
-
-Cleans up some formatting. (gp_win32.c)
-
-</pre><h3><a name="5.36_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - Loading large TrueType fonts caused excessive garbage collection.
-(gs_ttf.ps)
-
-Finishes implementing support for turning double-byte TrueType fonts into
-CIDFontType 2 fonts. (gs_ttf.ps)
-
-</pre><h3><a name="5.36_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - We thought the dictionary returned by currentuserparams should
-always be allocated in local VM, but in fact the correct definition is that
-it should be allocated in the current VM. The simplest way to make this
-work is for setuserparams to copy any string values into global VM.
-(gs_lev2.ps)
- - 1-input stitching functions didn't allow k = 0. (ifunc.h,
-zfunc.c)
- - OtherSubrs defined in PostScript no longer worked. (bug probably
-introduced when we rewrote the Type 1 code in C) (zchar1.c)
-
-Cleans up a few compiler warnings (missing empty 'default' cases, unused
-variables). (igc.c, iname.c)
-
-Replaces some uses of RELOC_*_PTR (now deprecated) with RELOC_*_VAR.
-(isave.c, iscan.c)
-
-</pre><h3><a name="5.36_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Resources were re-created on each page, causing (sometimes a lot
-of) unnecessary computation. We implemented most of the machinery for
-avoiding this, but not the mechanism for actually storing resources in
-global VM. (pdf_base.ps, pdf_main.ps)
-
-Adds a little more debugging code. (pdf_draw.ps)
-
-</pre><h3><a name="5.36_Streams"></a>Streams</h3><pre>
-
-Cleans up formatting in a few more files. (sbtx.h, sfilter.h, slzwx.h,
-spngpx.h, srlx.h, sstring.h, seexec.c, sfilter1.c, sfilter2.c, smtf.c,
-spcxd.c, srld.c, srle.c)
-
-Replaces a couple of #defines with duplicated (small) structures. (sbtx.h,
-sfilter.h, sfilter1.c, sfilter2.c)
-
-Replaces all uses of RELOC_*_PTR (now deprecated) with RELOC_*_VAR.
-(stream.c)
-
-</pre><h3><a name="5.36_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - If a garbage collection occurred during a string show operation,
-memory could be corrupted. (bug introduced in 5.24) (gstext.h, gstext.c)
- - A debugging check incorrectly indicated an error when
-miter-checking lines with a 0 degree angle between them. (gxstroke.c)
- - A structure created for bitmap/pixmap patterns was never freed.
-(gspcolor.c)
- - Colored halftones didn't work with 24-bit devices. (This case was
-never actually used.) (gxcht.c)
- - CIE colors didn't remap properly if the current color space was a
-Pattern space. (gscie.c)
- - In a non-garbage-collected environment, freeing a string in the
-current chunk made an unnecessary test. (Minor performance impact only.)
-(gsnogc.c)
-
-Cleans up a few compiler warnings (missing empty 'default' cases, unused
-variables). (gsht.c, gsht1.c, gshtscr.c, gsimage.c, gxacpath.c, gxclread.c,
-gxicolor.c, gxshade4.c)
-
-Replaces some uses of RELOC_*_PTR with RELOC_*_VAR. (gsht1.c)
-
-Changes the printed output of the free-standing bbox device so it produces
-%%BoundingBox and %%HiResBoundingBox lines that can be dropped directly into
-a DSC header. (gdevbbox.c)
-
-Speeds up the 4-bit case of copy_mono by about 30%. (gdevm4.c)
-
-Expands some macros and cleans up formatting, for easier reading and
-debugging. Speeds up the color halftone generation algorithm substantially
-(up to 40%), by skipping the halftone computation for planes that are known
-to be solid-color, and using copy_mono directly if only one plane is not
-solid-color. (gxcht.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.35"></a>Version 5.35 (beta) (8/18/98)</h2>
-
-<p>
-More updates for 5.3x, specifically fixing problems with halftones on banded
-CMYK devices.
-
-<h3><a name="5.35_Documentation"></a>Documentation</h3><pre>
-
-Fixes problems:
- - The URLs for the third-party libraries were out of date.
-(make.txt, jpeg.mak, libpng.mak, zlib.mak)
-
-</pre><h3><a name="5.35_Drivers"></a>Drivers</h3><pre>
-
-Adds an x11gray4 device for help in debugging. (devs.mak, gdevxalt.c)
-
-</pre><h3><a name="5.35_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - TrueType fonts with more than 64K of data before or after the
-glyfs caused an error. (gs_ttf.ps)
-
-</pre><h3><a name="5.35_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The dictionary returned by currentuserparams was allocated in the
-current VM rather than always in local VM. (gs_lev2.ps)
-
-</pre><h3><a name="5.35_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - CID-keyed fonts caused an error, because their CDevProc was
-incorrect. (pdf_font.ps)
-
-</pre><h3><a name="5.35_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - A comment was duplicated. (gxht.h)
- - The main procedure of the command list reader was so large that it
-couldn't be optimized by many compilers, and was very hard to read.
-(gxclrast.c)
- - Banding devices using multi-screen halftones could get memory
-access errors because they didn't clear the halftone caches when changing
-halftone parameters. (gxclrast.c)
- - Banding devices using multi-screen halftones didn't set the
-halftone phase correctly. (gxcht.c, gxclrast.c)
- - RasterOp didn't work for 2- or 4-bit gray-scale devices. It still
-doesn't work right, but it's closer. (gdevm2.c, gdevm4.c, gdevmrop.c)
- - Undefined characters in CMap-based composite fonts caused errors
-and possible invalid memory accesses. (gschar0.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.34"></a>Version 5.34 (beta) (8/16/98)</h2>
-
-<p>
-More updates for 5.3x.
-
-<h3><a name="V5.34_Documentation"></a>Documentation</h3><pre>
-
-Updates all of the man pages to new versions. (gs-vms.hlp, gs.1, pdf2dsc.1,
-pdf2ps.1, ps2ascii.1, ps2epsi.1, ps2pdf.1, ps2ps.1)
-
-</pre><h3><a name="V5.34_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The MSVC library makefile incorrectly included gp_msio.c.
-(msvclib.mak, winlib.mak)
-
-</pre><h3><a name="V5.34_Drivers"></a>Drivers</h3><pre>
-
-Fixes problems:
- - The PDF writer unnecessarily checked for other parameters after a
-failing show or pdfmark. (gdevpdfp.c)
- - The device's BufferSpace parameter was ignored. (bug introduced
-by async rendering code in 5.30) (gdevprn.c)
- - Banding devices smashed the first 4 bytes of each scan line. (bug
-introduced in 5.28) (gxdevmem.h, gdevmem.c, gxclread.c)
- - The phase for colored halftones was set wrong. (We have "fixed"
-this innumerable times, and it is still probably wrong.) (gxclrast.c)
-
-Replaces the deprecated gx_device_image_xxx calls with the new gx_image_xxx
-calls. (gdevpdfi.c, gdevps.c, gdevpx.c, gdevvec.c)
-
-</pre><h3><a name="V5.34_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - The equality test for idiom recognition sometimes incorrectly
-returned false. (zmisc3.c)
- - shfill didn't take the BBox into account. (It still doesn't.)
-(gxshade.c)
- - The status operator could return an incorrect pages or bytes value
-for files larger than 2 Gb, rather than giving an error. (zfile.c)
-
-</pre><h3><a name="V5.34_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - The hint tables weren't reset after processing the base character
-of a 'seac', leading to incorrect hinting and (for Type 2 CharStrings)
-possible mis-parsing of the outline data. (gstype2.c)
- - When processing a 'seac', the left side bearing was added in
-twice, displacing characters to the right. (bug probably introduced in
-5.20) (gstype1.c)
- - RasterOps didn't set the size of the RasterOp texture device,
-which caused filling operations involving a colored halftone to be clipped
-to an empty rectangle. (gdevrops.c)
- - When filling with a colored halftone, the RasterOp source was
-often disregarded. (gxcht.c)
- - gx_device_image[_plane]_data and gx_device_end_image took an
-unused dev argument, leading to potential confusion. We deprecated the
-gx_device_image_plane_data and gx_device_end_image procedures, replacing
-them with macros that call their replacements gx_image_plane_data and
-gx_image_end (which no longer have the spurious dev argument). (gxdevcli.h,
-gxdevice.h, gxiparam.h, gdevbbox.c, gdevddrw.c, gdevdflt.c, gsimage.c,
-gslib.c, gxclimag.c, gxclrast.c, gximage2.c, gximage3.c, gximage4.c)
- - gs_color_adjust_count, introduced in 5.33 to address the problem
-of freeing free-standing patterns, just made things worse. We are replacing
-them with gs_pattern_reference, essentially the procedure introduced in 5.31
-that we deleted in 5.33. (gsccolor.h, gspcolor.h, gscolor.c, gspcolor.c)
-
-Changes hint suppression from a #define to a debugger-settable static.
-(gxhint1.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.33"></a>Version 5.33 (beta) (8/14/98)</h2>
-
-<p>
-This is the third set of updates for 5.30. These updates have been driven
-mostly by the needs of another Aladdin project, so they haven't included as
-many problem fixes as we would normally make.
-
-<h3><a name="V5.33_Platforms"></a>Platforms</h3><pre>
-
-Fixes problems:
- - The thread creation procedure for Win32 called a Windows function
-rather than the proper C library function. (gp_win32.c)
- - In some MS-DOS implementations, the copy command doesn't recognize
-the /Y switch. (bcwin32.mak)
-
-</pre><h3><a name="V5.33_Fonts"></a>Fonts</h3><pre>
-
-Fixes problems:
- - TrueType fonts with *less* than 64K of glyf data stopped working.
-(bug introduced in 5.31) (gs_ttf.ps)
-
-</pre><h3><a name="V5.33_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Using an Identity function left an extra element on the stack.
-(pdf_draw.ps)
- - The syntax of # in names is different in PDF 1.1 and PDF 1.2, but
-the PDF 1.2 syntax was always used. (pdf_base.ps, pdf_main.ps)
-
-</pre><h3><a name="V5.33_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Color images still always caused an error. (bug introduced in
-5.32) (gxicolor.c)
- - Because of a typo, the implementation of image types didn't
-compile. (bug introduced in 5.32) (gxiparam.h)
- - Free-standing colors (specifically pattern colors) and color
-spaces couldn't be freed. This required a NON-BACKWARD-COMPATIBLE change in
-an internal API used for managing color and color space reference counts.
-(gxcspace.h, gsccolor.h, gscdevn.c, gscolor.c, gscolor2.c, gscscie.c,
-gscsepr.c, gscspace.c, gspcolor.c)
-
-Cleans up a little more formatting. (gscspace.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.32"></a>Version 5.32 (beta) (8/13/98)</h2>
-
-<p>
-This is the second set of updates for 5.30.
-
-<h3><a name="V5.32_Procedures"></a>Procedures</h3><pre>
-
-Fixes problems:
- - The OS/2 makefile accidentally omitted the OS/2-PM driver.
-(os2.mak)
- - The MSVC library makefile didn't work. (msvclib.mak)
- - Debugging was turned on in the Borland Windows makefile.
-(bcwin32.mak)
- - The BEGINFILES2 list was too long in the MSVC makefile.
-(msvc32.mak)
-
-</pre><h3><a name="V5.32_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes problems:
- - .execn wouldn't accept pseudo-operators. (iref.h)
- - inustroke with a matrix operand didn't work correctly. (zupath.c)
- - ImageType 4 images didn't work. (bug introduced in 5.31)
-(zimage3.c)
-
-</pre><h3><a name="V5.32_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes problems:
- - Forms used more than once caused an invalidaccess error.
-(pdf_draw.ps)
-
-</pre><h3><a name="V5.32_Library"></a>Library</h3><pre>
-
-Fixes problems:
- - Using a colored pattern with a Pattern color space that included a
-base space could access uninitialized floating point values, possibly
-causing an arithmetic trap. (gspcolor.c)
- - RasterOp wasn't implemented for 16- and 32- bit devices.
-(gdevm16.c, gdevm32.c, gdevmrop.c)
- - The library test program relied on copysign, which some C
-libraries lack. (gslib.c)
- - The gs_free and gs_heap_free_all debugging printout were included
-even if DEBUG wasn't defined. (bug introduced in 5.30) (gsmalloc.c)
- - Color images always caused an error. (bug introduced in 5.30)
-(gxicolor.c)
- - Masked images with pis = NULL could cause an error. (gximono.c)
- - In landscape orientation, masked images didn't guarantee that the
-buffer of mask scan lines would be flushed to the mask clipping device
-before processing the data being masked. (gxiparam.h, gxidata.c, gxifast.c,
-gximage3.c)
- - Images with source transparency set but CombineWithColor = false
-could get an error because of trying to paint with an unloaded
-color. (caused by a bug fix in 5.30) (gxdcolor.c, gxiinit.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.31"></a>Version 5.31 (limited) (8/11/98)</h2>
-
-<p>
-This is the first set of updates for 5.30. They fix a few minor build
-problems, and some significant problems with bitmap patterns that do not
-affect the PostScript or PDF interpreters.
-
-<h3><a name="V5.31_Drivers"></a>Drivers</h3><pre>
-
-Moves some casting macros from generic files to the few specific files that
-use them. (gdev4693.c, gdevn533.c, gdevsnfb.c)
-
-</pre><h3><a name="V5.31_Interpreter"></a>Interpreter</h3><pre>
-
-Changes ImageType 4 images to match the change in the library interface.
-(zimage3.c)
-
-</pre><h3><a name="V5.31_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The MaskColor elements of ImageType 4 images were defined as int
-rather than uint, truncating the range by 1 bit and causing problems in
-comparing the mask color against the pixel samples. (gsiparm4.h,
-gximage4.c)
- - A needed cast was missing from gs_malloc_memory_release.
-(gsmalloc.h)
- - A needed cast from byte to char was missing. (gsparams.c)
- - Patterns always allocated a mask for rendering, which for large
-patterns specified directly as bitmaps allocated a lot of unnecessary
-memory. (gxcolor2.h, gspcolor.c, gxp1fill.c, gxpcmap.c)
- - Macros simply defining casted versions of variables made the code
-hard to debug. We have only removed the ones that are in generic code (not
-drivers) and that cast pointers to gx_device or its subclasses: the only
-ones removed from header files were prn_dev in gdevprn.h, mdev in gdevmem.h,
-and ccdev, crdev, and cwdev in gxcldev.h. gdevmem.h, (gdevprn.h, gxclist.h,
-gdevabuf.c, gdevm1.c, gdevm2.c, gdevm4.c, gdevm8.c, gdevm16.c, gdevm24.c,
-gdevm32.c, gdevmpla.c, gdevnfwd.c, gdevprn.c, gxacpath.c, gxclimag.c,
-gxclist.c, gxclpage.c, gxclpath.c, gxclread.c, gxclrect.c)
- - There was no way to free a pattern instance outside the graphics
-state. (gspcolor.h, gspcolor.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.30"></a>Version 5.30 (limited) (8/10/98)</h2>
-
-<p>
-This is the first beta candidate for the 5.50 release. It completes the
-merge of the overlapped rasterizing code into the main development line.
-
-<h3><a name="V5.30_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Yves Arrouye's e-mail address was out of date. (gdevbjc.h,
-gdevcdj.c, contrib.mak, devices.txt, unix-lpr.txt)
-
-Makes the warning against using SHARE_JPEG=1 even stronger. (make.txt,
-dvx-gcc.mak, ugcclib.mak. unix*.mak)
-
-Removes information about using DCL files on VMS to build Ghostscript.
-(make.txt)
-
-Updates the documentation for begin_typed_image. (drivers.txt)
-
-</pre><h3><a name="V5.30_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The Unix build procedure didn't create the obj subdirectory
-automatically. (unixhead.mak, unix-end.mak)
- - gsdll_h wasn't defined for the OS/2 PM device. Fixing this
-properly required moving the OS/2 drivers into the same makefile as the MS
-Windows drivers, and renaming the file. (devs.mak, msdevs.mak =&gt; pcwin.mak,
-winlib.mak)
- - gsiparm4_h was used before it was defined. (lib.mak)
- - Building with shared libaries still used header files in
-Ghostscript's directories, not the ones in /usr/include. ****** NOT DONE
-YET ******
- - The makefiles all assumed they were located in the current
-directory, not in the source directory. (*.mak)
-
-Adds new 'debugclean' and 'pgclean' targets, parallel to 'debug' and 'pg',
-for the Unix platforms. (unix-end.mak)
-
-Changes the management of .dev files so that on Unix platforms, one can
-really maintain standard, debugging, and profiling builds simultaneously.
-This is a hack, but a fairly reliable one. (gs.mak, unixhead.mak,
-unix-end.mak)
-
-Adds a dummy thread / semaphore / monitor implementation to all platforms
-other than Windows. (dvx-tail.mak, openvms.mak, os2.mak, ugcclib.mak,
-unixtail.mak, watc.mak, watclib.mak)
-
-</pre><h3><a name="V5.30_Drivers"></a>Drivers</h3><pre>
-
-Updates driver support to use the new write-position stream. (gdevpsdf.c)
-
-</pre><h3><a name="V5.30_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The Windows Registry calls didn't deal properly with a null
-pointer. (gp_wgetv.c)
-
-Makes a small change in the platform semaphore / monitor API. (gpsync.h,
-gxsync.h, gp_win32.c, gxsync.c)
-
-Adds a dummy thread / semaphore / monitor implementation. Note that with
-this implementation, async rendering WILL NOT WORK. (gp_nsync.c)
-
-Adds pthreads thread creation and POSIX semaphores for Unix platforms. (We
-still need to add System V semaphores, which is all that is available on
-Solaris and BSDI.) (gp_semon.c, gp_posem.c, gp_pthr.c).
-
-</pre><h3><a name="V5.30_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - CIDFontType 0 fonts didn't select the proper VM space for adding
-entries to font dictionaries, and for loading Subrs strings. (gs_cidfn.ps)
- - TrueType fonts with an odd glyfs length didn't work. (gs_ttf.ps)
- - TrueType fonts with a Format 3 'post' table didn't work.
-(gs_ttf.ps)
- - TrueType fonts where the encoding in the 'post' table didn't cover
-the entire set of glyfs didn't work. (gs_ttf.ps)
- - TrueType fonts with more than 128K of glyfs didn't work.
-(gs_ttf.ps)
- - TrueType cmap format 6 didn't work. (gs_ttf.ps)
- - CIDFontType 0 fonts with hex data didn't skip over the &gt; at the
-end of the data. (gs_cidfn.ps)
-
-</pre><h3><a name="V5.30_Interpreter"></a>Interpreter</h3><pre>
-
-Works around the fact that gs_shfill can't do a gs_setcolorspace for color
-spaces that require interpreter assistance. (gs_ll3.ps)
-
-Moves clipsave and cliprestore to C code. (gs_ll3.ps, zmisc3.c)
-
-Updates some files to reflect the redivision of gsmemory.h and gsstruct.h.
-(imemory.h, istruct.h, ialloc.c)
-
-</pre><h3><a name="V5.30_Streams"></a>Streams</h3><pre>
-
-Adds a stream that just keeps track of the write position. (stream.h,
-stream.c)
-
-Removes the compilation dependency that required all clients of the zlib
-filters to be compiled with the zlib source directory in the search path.
-(szlibx.h, szlibxx.h, szlib[cde].c)
-
-</pre><h3><a name="V5.30_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - ImageType 4 images with &gt;1 input component didn't work.
-(gximage4.c)
- - Sampled functions didn't keep the fractional part when
-interpolating, possibly leading to infinite recursion in shading.
-(gsfunc0.c)
- - The color error value for shadings was computed incorrectly for
-CIE color spaces. (gxshade.c)
- - The CharstringType 2 'roll' operator rolled the operands in the
-wrong direction. (gstype2.c)
- - Images with RasterOp or transparency didn't retain the current
-color properly, leading to unpredictable results. (gdevmrop.h, gsropt.h,
-gdevddrw.c, gdevrops.c, gxdcolor.c, gxiinit.c, gximage3.c)
- - A cast to void * was needed to remove a const modifier.
-(gscrdp.c)
- - On 8-bit non-gray-scale devices, RasterOp values of all-0s or
-all-1s produced the wrong output. (gdevmrop.c)
- - The GC procedure for halftone screen enumerators was wrong,
-possibly causing invalid memory access errors. This bug predates 5.10.
-(gshtscr.c)
- - An extra pair of string quotes confused some compilers.
-(gsshade.c)
- - There were several errors in the CharstringType 2 'flex'
-operators. (gstype2.c)
- - The structure descriptors for devices weren't initialized in
-library-only configurations. (int.mak, gconf.c)
- - The Pattern cache got confused if the current device when a
-Pattern color was used wasn't the same as the current device when the
-Pattern instance was created. (gxpcmap.c)
- - The target of forwarding devices wasn't reference-counted
-properly. (gsdevice.c) ****** FIXING THIS PROPERLY WILL BE A LOT OF WORK:
-WE ONLY FIXED gs_setdevice_no_erase ******
- - As a result of fixing a typo, the structure declaration for
-gx_page_queue was private, causing clients not to compile. We left it
-private and added an instance allocation procedure. (gxpageq.h, gdevprna.c,
-gxpageq.c)
- - The mask for ImageType 3 images was clipped (incorrectly).
-(gximage3.c)
- - Interpolated images with negative X-&gt;X values in the CTM were
-displaced on the page. (gxiscale.c)
-
-Finishes integrating the asynchronous rendering code. (gpsync.h, gxclist.h,
-gdevprna.c, gsmemlok.c, gxclimag.c, gxclpath.c, gxclutil.c)
-
-Updates the memory manager API for additional flexibility needed for
-asynchronous rendering. (gsmalloc.h, gsmemlok.h, gsmemraw.h, gsalloc.c,
-gsmalloc.c, gsmemlok.c)
-
-Updates the standard memory manager to work with a fixed (externally
-supplied) set of chunks, needed for asynchronous rendering, removing some
-macros in the process. (gsalloc.h, gsalloc.c)
-
-Updates some code to use more mnemonic variable names. (gstype2.c,
-gxicolor.c)
-
-Removes some macros for better readability. (gdevmrop.c)
-
-Adds dummy implementations of clipsave and cliprestore. (gsclipsr.h,
-gsclipsr.c)
-
-Implements an alternative, but completely untested, parameter list
-serializer based on streams. (gsparam2.c)
-
-Moves more of the internal memory manager structures from gsmemory.h to
-gsstruct.h. (gsmemory.h, gsstruct.h, gsmemory.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.28"></a>Version 5.28 (limited) (8/3/98)</h2>
-
-<p>
-This fileset almost finishes merging in the code for overlapped
-("asynchronous") interpretation and rasterizing that gave rise to the
-side-branch versions 5.13 and 5.14; eliminates all initialized non-constant
-globals from the graphics library (but not from the interpreter); and adds a
-few more LanguageLevel 3 features (CIEBasedDEF[G] color spaces, CloseSource
-and CloseTarget for streams, Separation base space for Indexed color
-spaces).
-
-<p>
-We were not originally planning to produce another fileset until the code
-merge was completed; however, the schedule demands of another Aladdin
-project justify another intermediate fileset.
-
-<h3><a name="V5.28_Documentation"></a>Documentation</h3><pre>
-
-Notes that the MSVC++ 5.0 compiler may lock up when compiling gxi12bit.c
-with optimization. (make.txt)
-
-</pre><h3><a name="V5.28_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - psl3 didn't include fzlib. (int.mak)
- - The Windows makefile had the wrong name for a DLL. (winint.mak)
- - The Borland Windows makefile had several errors. (bcwin32.mak)
-
-At the request of a user, changes the creation of jconfig.h so it #includes,
-rather than copies, arch.h. (jpeg.mak, gsjconf.h)
-
-</pre><h3><a name="V5.28_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - viewpbm.ps scaled the image wrong. (viewpbm.ps)
-
-</pre><h3><a name="V5.28_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - clist_close was declared as an open proc rather than a close proc.
-(As it happens, this didn't make any difference.) (gxclist.c)
- - A comment was improperly terminated. (gxpageq.h)
- - A needed #include of memory_.h was missing. (gdevpsde.c)
-
-Integrates nearly all the rest of the code for asynchronous rendering.
-(gdevprn.h, gdevprna.h, gxcldev.h, gxclist.h, gxclpath.h, gxclmem.h,
-gdevbmpa.c, gdevprn.c, gdevprna.c, gxclbits.c, gxclimag.c, gxclist.c,
-gxclmem.c, gxclpath.c, gxclread.c, gxclrect.c)
-
-Changes tracing of memory-based clists to occur only if -Z: is selected,
-rather than always if the code was compiled with -DDEBUG. Note that this is
-a NON-BACKWARD-COMPATIBLE CHANGE (but only affects debugging). (gxclmem.c)
-
-Implements the NumCopies parameter for all page devices, not just printers.
-(gxdevcli.h, gxdevice.h, gdevprn.c, gsdparam.c)
-
-Splits off command list writing utilities into a separate file, since
-gxclist.c was getting too large. (gxclist.h, gxclist.c, gxclutil.c)
-
-Splits command list reading into control (gxclread.c) and the actual list
-interpreter (gxclrast.c), since the file was getting too large. (gxcldev.h,
-gxclrast.c, gxclread.c)
-
-Distinguishes dev_proc_* (defining a general driver procedure) from
-prn_dev_proc_* (defining a printer driver procedure). Unfortunately, we
-have to keep dev_proc_print_page and _print_page_copies for backward
-compatibility. (gdevprn.h)
-
-Splits out of the BMP driver the parts shared with the async version
-(gdevbmp.h, gdevbmp.c, gdevbmpc.c).
-
-Changes the band rasterizer to implement get_bits_rectangle rather than
-get_bits. In some cases, this results in much less computation.
-(gxclist.c, gxclread.c)
-
-Makes the monochrome H-P printer drivers emit a printer reset when closing
-the device. According to a user, this helps prevent the ink nozzles from
-clogging. (gdevdjet.c)
-
-</pre><h3><a name="V5.28_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The Windows DLL entry point procedure didn't return a value as it
-was supposed to. (gp_mswin.c)
-
-Removes all remaining initialized but non-constant globals, and ensures that
-all non-debugging-related BSS variables in the library are explicitly set to
-0 at initialization time. (gp_unix.c)
-
-Improves an error message slightly. (dwmainc.cpp)
-
-</pre><h3><a name="V5.28_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The tracing code for restore_resources could access an invalid
-address. (isave.c)
- - sizeof(procedure) is not allowed in ANSI C++. (opdef.h,
-iccfont.c, interp.c, ireclaim.c)
- - A variable was declared incorrectly as bin_token_type_t rather
-than bin_seq_type_t. (iscanbin.c)
- - The behavior of copypage didn't change in LanguageLevel 3.
-(gs_init.ps)
- - When grestore et al reactivated a page device, they performed an
-initgraphics, which should only be performed by showpage. (gs_setpd.ps)
- - The RunLengthEncode filter was broken in cases where the caller
-supplied a record size. (bug introduced in 5.2x) (zfilter.c)
- - A needed #include of memory_.h was missing. (zfreuse.c)
- - On machines with sizeof(long) &gt; sizeof(int), the dictionary form
-of image and imagemask didn't work. (bug introduced in 5.2x) (zimage2.c)
- - exitserver left a 'true' on the operand stack. (gs_lev2.ps)
-
-Replaces the STACK_LOOP_BEGIN/END macros with procedures. (We retain the
-macros for backward compatibility.) (istack.h, istack.c, zchar.c,
-zcontrol.c, zdict.c, zvmem.c)
-
-Reviews the remaining operator files for ease of reading / debugging,
-including removing macros where appropriate. (z*.c)
-
-Changes the dictionary stack printer to indicate whether the dictionary is
-allocated in global or local VM. (gs_init.ps)
-
-Redefines countexecstack and execstack as operators, solely for the sake of
-the Genoa [count]execstack tests. (gs_init.ps, zcontrol.c)
-
-Changes array/string/packedarray forall not to keep an index on the stack,
-solely for the sake of the Genoa [count]execstack tests. (zgeneric.c)
-
-Finishes implementing CIEBasedDEF[G] color spaces. (icie.h, zcie.c)
-
-Adds a ColorSpace resource instance for sRGB. (gs_lev2.ps, gs_res.ps)
-
-Implements CloseSource and CloseTarget for filters. ****** DOESN'T WORK IF
-AN EXCEPTION OCCURS DURING A NESTED CLOSE. ****** (zfile.c)
-
-Allows Separation and DeviceN color spaces as the base space for an Indexed
-color space. (zcsdevn.c, zcsindex.c, zcssepr.c)
-
-</pre><h3><a name="V5.28_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - In PDF files, Indexed color spaces with a CIEBasedABC base space
-gave an /undefined error. (pdf_draw.ps)
-
-</pre><h3><a name="V5.28_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The report_error member of the DCT streams wasn't initialized
-early enough. (ifilter.h, zfdctd.c, zfdcte.c, zfile.c)
-
-Changes the zlib filters to use the stream's allocator, rather than the
-default allocator, for their private storage. Note that this requires the
-stream itself to keep pointers to this storage, for garbage collection.
-(szlibx.h, szlibc.c, szlibd.c, szlibe.c)
-
-Updates some clients to use new, simpler GC structure descriptors. (sdct.h,
-sfilter.h, sdctc.c, sfilter1.c)
-
-Adds a close_strm member for the interpreter's use (CloseSource /
-CloseTarget). (stream.h, stream.c)
-
-</pre><h3><a name="V5.28_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - gstate, currentgstate, and setgstate didn't handle the effective
-clip path properly, possibly leading to dangling pointers. (gsstate.c)
- - setrasterop, setsourcetransparent, and settexturetransparent
-should all return int rather than void, since they can fail. (gsrop.h,
-gsrop.c)
- - FunctionType 1 functions didn't clip the output value to the
-Range. (gsfunc3.c)
- - A needed cast from byte * to char * was missing. (gscrdp.c)
- - Some needed #includes of *_.h were missing. (gscrd.c, gscrdp.c,
-gxshade6.c)
- - The prototype for gx_effective_clip_path wasn't #included in a
-needed place. (gsimage.c)
- - RasterOp sometimes didn't work properly for devices whose
-representation of white wasn't a pixel value of 0. (gxdcolor.h, gdevbbox.c,
-gdevdbit.c, gdevvec.c, gslib.c, gxdcolor.c)
- - The variable used to detect double declaration of
-gs_get_bits_params_t was named incorrectly. (gxdevcli.h, gxgetbit.h)
- - gs_[eo]clip never retained the clipping path in its original form.
-These routines now retain it in the simple case (the old clipping path is a
-rectangle, and the new path is completely contained within it). This
-requires a small NON-BACKWARD-COMPATIBLE change in the gx_cpath_intersect
-procedure: it no longer updates the new path, and it flattens the path if
-needed. To avoid problems, we renamed this procedure as gx_cpath_clip.
-(gsdps.c, gspath.c, gxcpath.c)
- - If the image was empty, gs_image_common_init didn't free the
-lower-level enumerator. (gsimage.c, gxccache.c)
-
-Removes all remaining initialized but non-constant globals, and ensures that
-all non-debugging-related BSS variables in the library are explicitly set to
-0 at initialization time. (gxdevice.h, gconf.c, gsdevice.c, gshtscr.c,
-gsiodev.c, gsutil.c, gxcht.c)
-
-Finishes implementing table-driven GC descriptors. We expected it to save
-considerable space at negligible time cost; it actually shrank the 1Mb
-executable by only about 5K, and slowed down garbage collection by about
-2%. (gsfcmap.h, gsstrtab.h [deleted], gsstruct.h, gzpath.h, gsfcmap.c,
-gsmemory.c, gsstrtab.c [deleted])
-
-Finishes implementing CIEBasedDEF[G] color spaces. (gscie.h, gscie.c)
-
-Simplifies some code by removing or redefining macros. (gxi12bit.c)
-
-Removes all patches made for easier retrofitting of 5.2x code into 5.1x
-filesets. (gdevdrop.c, gdevmrop.c, gslib.c, gspcolor.c)
-
-Reviews a few more files for style and readability. (gxbitfmt.h,
-gxgetbit.h)
-
-Allows Separation (and, if included, DeviceN) color spaces as the base space
-of an Indexed color space. Unfortunately, this involves introducing a new
-distinction in color space types, which entails NON-BACKWARD-COMPATIBLE
-changes in the color space and color space type structures. (gxcspace.h,
-gscdevn.c, gscolor1.c, gscolor2.c, gscpixel.c, gscscie.c, gscsepr.c,
-gscspace.c, gspcolor.c)
-
-Makes a small addition in order to fix an interpreter bug. (gxfixed.h,
-gdevbbox.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.27"></a>Version 5.27 (limited) (7/18/98)</h2>
-
-<p>
-This is another "in-flight" snapshot made in preparation for the 5.2x / 5.1x
-code merge. It completes the driver CRD API.
-
-<h3><a name="V5.27_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The reference to psview was out of date. (new-user.txt)
-
-Adds some pointers to Aladdin Ghostscript mirror sites. (new-user.txt)
-
-Updates the C style guide a little further. (c-style.txt)
-
-Adds documentation on driver-supplied CRDs. (drivers.txt)
-
-Updates the JPEG makefile to mention IJG release 6b. (jpeg.mak)
-
-Updates documentation to reflect the devs.mak / contrib.mak split. (README,
-devices.txt, drivers.txt, make.txt, new-user.txt, source.txt, use.txt)
-
-</pre><h3><a name="V5.27_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - sjpegerr.o was needed even when using the shared JPEG library.
-(jpeg.mak)
-
-Changes the name of the jpeg library directory from jpeg-&lt;version&gt; to just
-jpeg, to parallel libpng and zlib. (make.txt, *.mak)
-
-Creates a separate makefile for contributed drivers. Eventually these
-drivers will go in a separate directory. (devs.mak, contrib.mak, *.mak)
-
-</pre><h3><a name="V5.27_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The pkm driver was absurdly inefficient. (gdevpbm.c)
- - The psfax driver (which, admittedly, doesn't come close to
-working) no longer compiled. (gdevpfax.c)
- - The ARCHAIC mode of the Epson driver emitted an incorrect
-character ('r' instead of ^R). (gdevepsn.c)
- - The X driver didn't check the calls of XInitImage for error
-status. (gdevx.c)
-
-Updates a client for the change in the names of the gb_ values. (gdevx.c)
-
-Updates a client for the added param_request procedure. (gdevpsdf.c)
-
-Reformats all Aladdin-maintained drivers to the new Ghostscript standard
-format, using indent. We deliberately did not reformat user-contributed
-drivers, since indent mangles a line once in a while and we do not want to
-take responsibility for fixing others' code. (*.h, *.c)
-
-Adds a default CRD specification to the 'bit' device, for testing.
-(gdevbit.c)
-
-Integrates a bit more of the support code for asynchronous rasterizing.
-(gxband.h, gxclio.h, gxclist.h, gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c,
-gxclread.c, gxpageq.h, gxpageq.c)
-
-</pre><h3><a name="V5.27_Platforms"></a>Platforms</h3><pre>
-
-Adds thread support to the Win32 platform. (gp_win32.c)
-
-</pre><h3><a name="V5.27_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Composite fonts with CID-keyed descendants didn't run the
-BuildGlyph procedure. (zchar.c)
- - The internal representation of CMaps was built incorrectly.
-(zfcmap.c)
- - Category resources didn't load from files automatically.
-(gs_res.ps)
-
-Reformats all files to the new Ghostscript standard format, using indent.
-(*.h, *.c)
-
-Reviews most of the operator files for ease of reading / debugging,
-including removing macros where appropriate. (z*.c)
-
-Updates a client for the change in the names of the gb_ values. (zdevice.c)
-
-Updates a client for the added param_request procedure. (iparam.c)
-
-Updates clients for the completion of the CRD API. (zcie.c, zcrd.c)
-
-Increases the initial size of systemdict a little more, to allow for -d and
--s. (iinit.c)
-
-</pre><h3><a name="V5.27_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Text modes other than 0 didn't work with multiple-byte fonts.
-(pdf_ops.ps)
- - There were many bugs in the code for Type 0 and CIDFontType 0
-fonts. (pdf_font.ps)
-
-</pre><h3><a name="V5.27_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - cshow returned a character code of -1 for composite fonts with
-FMapType 9 (CMap-based). (gsfcmap.h, gschar0.c, gsfcmap.c)
- - The GC procedure for enumerating show enumerators was broken.
-(bug introduced in 5.24 or 5.25) (gschar.c)
- - dashpath always copied the path, instead of only copying it if
-needed. (gspath1.c)
- - The hint replacement fix in 5.24 sometimes thought a path was
-closed when it wasn't, producing gross distortions of some characters.
-(gxhint3.c)
-
-Cleans up code for debugging by expanding macros, etc. (gstext.h,
-gschar0.c)
-
-Changes the gb_ values to all caps, in line with general C convention. This
-is a NON-BACKWARD-COMPATIBLE change to an as yet rarely-used API.
-(gxbitfmt.h, gdevalph.c, gdevdgbr.c, gdevmem.c, gsalphac.c, gximage2.c)
-
-Enhances the default implementation of parameter lists to allow requesting
-individual parameters. This is needed for the driver CRD API. (gsparam.h,
-gscparam.c, gsparam.c)
-
-Completes the API for driver CRDs, also moving some code from gscie.c to
-gscrd.c. This involves a NON-BACKWARD-COMPATIBLE change in the prototype of
-the TransformPQR procedures. (gscie.h, gscrd.h, gscrdp.h, gscie.c, gscrd.c,
-gscrdp.c)
-
-Reformats all files to the new Ghostscript standard format, using indent.
-(*.h, *.c)
-
-Splits up gdevmrop.c into 3 files: gdevmrop.c (RasterOp implementation for
-memory devices), gdevdrop.c (default and device-independent RasterOp
-algorithms), and gdevrops.c (RasterOp-source device). (gdevmrop.h,
-gdevdrop.c, gdevmrop.c, gdevrops.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.26"></a>Version 5.26 (limited) (7/7/98)</h2>
-
-<p>
-The purpose of this fileset is to add an API for drivers to provide one or
-more device-appropriate CIE rendering dictionaries. Like 5.25, it is a
-"snapshot" fileset not made available even to beta testers.
-
-<h3><a name="V5.26_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - An !endif was omitted. (msvc32.mak)
- - A newly needed Windows library was omitted. (msvctail.mak)
- - The /Za and /Ze switches were set incorrectly for MSVC.
-(bcwin32.mak, msvccmd.mak, watcw32.mak, winint.mak, winlib.mak)
-
-</pre><h3><a name="V5.26_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A closing bracket was omitted (in code that is ifdef'd out).
-(gdevpdf.c)
-
-</pre><h3><a name="V5.26_Fonts"></a>Fonts</h3><pre>
-
-Changes the font loader so that instead of pushing systemdict and a small
-empty dictionary on the stack before loading a font, it pushes userdict.
-This is what Adobe interpreters do, but this will probably break some
-PostScript files, specifically ones that redefine 'index'. I don't see how
-the Adobe interpreters can possibly do the right thing for such files.
-(gs_fonts.ps, gs_type1.ps)
-
-</pre><h3><a name="V5.26_Interpreter"></a>Interpreter</h3><pre>
-
-Updates clients for changes in CRD API. This involves some changes in
-internal procedures. (gs_lev2.ps, icie.h, zcie.c, zcrd.c)
-
-</pre><h3><a name="V5.26_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Pickling string, name, and array parameters tried to force
-inappropriate alignment. (gsparams.c)
- - Pickling dictionary parameters wrote the result in the wrong
-place. (gsparams.c)
- - An occurrence of dev_t should have been gx_device. The compiler
-didn't catch this because there happens to be a type named dev_t in
-&lt;types.h&gt; (!). (gxclread.c)
-
-Adds an API for drivers to provide one or more CRDs (as device parameters).
-Makes a small but NON-BACKWARD-COMPATIBLE change in the names and argument
-lists of the existing CRD API (which is not used by anything in the standard
-configuration). (gscie.h, gscrd.h, gscrdp.h, gscie.c, gscrd.c, gscrdp.c,
-gslib.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.25"></a>Version 5.25 (limited) (7/1/98)</h2>
-
-<p>
-This is a "snapshot" fileset created for the purpose of merging with a
-separate development branch. While it fixes some significant bugs in 5.24,
-it doesn't represent substantial additional progress.
-
-<h3><a name="V5.25_Documentation"></a>Documentation</h3><pre>
-
-Completely rearranges the C style guide, updates it to reflect current
-practice, and adds a 1-page summary of the most important points.
-(c-style.txt)
-
-Updates the man pages for consistency and to correct minor errors. (*.1)
-
-Notes that the pjxl300 driver works with the H-P CopyJet. (devices.txt,
-devs.mak).
-
-Notes that in order to deal with over-zealous Solaris security checking,
-additional linker switches are needed. (make.txt, unix*.mak)
-
-</pre><h3><a name="V5.25_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - 'make install' didn't get the executable from the right place.
-unixinst.mak)
- - COMPILE_INITS=1 didn't work. (int.mak, geninit.c)
- - The MSVC makefile updates hadn't been applied to the MSVC-only
-devices. (devs.mak)
- - The other PC makefiles didn't define GLCCWIN. (bcwin32.mak,
-watcw32.mak)
-
-Adds bounding box testing to the library test program. (ugcclib.mak)
-
-Reviews and reformats code for maintainability. (genarch.c, geninit.c)
-
-Moves the MS Windows-specific devices to a new file. (bcwin32.mak,
-devs.mak, msdevs.mak, msvc32.mak, watcw32.mak)
-
-</pre><h3><a name="V5.25_Platforms"></a>Platforms</h3><pre>
-
-Reviews and reformats header files for maintainability. (vmsmath.h,
-windows_.h)
-
-Removes some no-longer-used files from the fileset. (overlay.h, gp_itbc.c)
-
-</pre><h3><a name="V5.25_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - Substituted fonts had their FontName set to the requested one.
-There was a comment in the code saying that some files that depend on this
-happening, but Adobe implementations don't do it. However, aliased fonts in
-Fontmap will continue to have the FontName set to the Fontmap key.
-(gs_fonts.ps)
-
-Adds the euro symbol at position 240 (0360) in SymbolEncoding. This is a
-PostScript 3 addition, but it's too much work to make it appear there only
-if languagelevel &gt;= 3. (gs_sym_e.ps)
-
-</pre><h3><a name="V5.25_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The bbox device didn't work if its target was itself a forwarding
-device. (gdevbbox.c)
- - User parameters maintained at the PostScript (as opposed to VM)
-level didn't work. (gs_init.ps)
- - Idiom recognition didn't work. (gs_init.ps, gs_ll3.ps, zmisc3.c)
- - .beginpage and .endpage could cause an error if the current device
-was a page device but was installed with setdevice rather than
-setpagedevice. (gs_setpd.ps)
-
-In the interest of readability, replaces all casting macros with separate
-variables, other than those used in enum_ptrs and reloc_ptrs procedures.
-Note that doing this for rptr in gc_trace in igc.c will have a significant
-performance cost on Intel CPUs, unless the compiler has a very good
-optimizer, because it introduces another variable competing for scarce
-registers in the most performance-critical section of code in the garbage
-collector. (ialloc.c, igc.c, iparam.c, isave.c, istack.c, zchar42.c,
-zfproc.c, zusparam.c)
-
-Changes some macros to procedures. (igc.c, ilocate.c, zusparam.c)
-
-Changes some macros to static quasi-constants (only variable for debugging).
-(zvmem.c)
-
-Adds #include "errors.h" to oper.h, removing it from z*.c. (oper.h, z*.c)
-
-Reviews and reformats some header files for maintainability. This is an
-ongoing project. (bfont.h, errors.h, iinit.c)
-
-Consolidates and simplifies the reading and writing of binary tokens and
-binary object sequences. (bseq.h [deleted], btoken.h, ibnum.h, ibnum.c,
-iscanbin.c, zbseq.c)
-
-Adds dummy user and system parameter entries for all the parameters listed
-in Appendix C of the PostScript Red Book: even though the book clearly says
-that no PostScript program should rely on the presence of any particular
-parameter, PostScript files routinely assume the existence of the parameters
-listed in Appendix C. (gs_init.ps, gs_lev2.ps, gs_res.ps)
-
-Adds dummy user and system parameter entries for the new parameters listed
-in the 3010 Supplement. (gs_ll3.ps)
-
-Adds double-inclusion protection to all header files. (*.h)
-
-Moves the creation of binary object sequence headers from C to PostScript
-code. (zbseq.c, gs_btokn.ps)
-
-Adds support for multiple FormTypes and ColorRenderingTypes. (gs_init.ps,
-gs_lev2.ps, gs_res.ps, zcrd.c)
-
-Updates structures and clients for the introduction of "raw memory"
-allocators. (ialloc.h, igc.h, ialloc.c, imain.c, isave.c)
-
-In the interest of readability and being able to use GNU indent to create
-standard formatting, changes the operator tables from procedures back to
-data structures. This change is backward-compatible for all operator files,
-although we also edited all of Ghostscript's own operator definitions to
-remove the BEGIN_OP_DEFS and END_OP_DEFS macros (which now have to generate
-a little unnecessary code for backward compatibility). (opdef.h, iconf.c,
-iinit.c, iutil.c, z*.c)
-
-Splits zchar2.c into a Level 1+ part and a Level 2 part. (zcfont.c,
-zchar2.c)
-
-</pre><h3><a name="V5.25_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Adds font synthesis based on the FontDescriptor. Currently this is very
-rudimentary. (pdf_font.ps)
-
-</pre><h3><a name="V5.25_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PDF writer didn't default to A4 paper size if A4 was selected
-as the default in the makefile. (gdevpdf.c)
- - The default implementation of the begin_image procedure always
-called the image's begin_image implementation, rather than the device's
-begin_typed_image implementation. (gdevddrw.c)
- - The bbox device didn't initialize its reference count.
-(gdevbbox.c)
- - A necessary cast was omitted. (gdevpsde.c)
-
-Changes some macros to procedures. (gdevpstr.h, gdevpstr.c)
-
-Adds an internal device to implement the PCL5 special color mapping
-algorithms. (gdevcmap.h, gxdevice.h, gdevcmap.c, gdevnfwd.c)
-
-Adds double-inclusion protection to all header files. (*.h)
-
-Updates drivers for the change in begin_image. (gdevbbox.c, gdevpdfi.c,
-gdevvec.c, gxclimag.c)
-
-</pre><h3><a name="V5.25_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The non-ANSI definitions of CLEAR_MARKS_PROC, ENUM_PTRS_BEGIN_PROC
-and RELOC_PTRS_BEGIN were missing a parameter. (gsstruct.h)
- - A few necessary casts were omitted. (gsparam.c, gxpcmap.c)
- - Images or Patterns with non-default RasterOps could cause crashes.
-(gdevmrop.c, gxp1fill.c)
- - Exponential Interpolation functions with non-integral positive
-exponents incorrectly required the lower bound of the domain to be strictly
-positive rather than only non-negative. (gsfunc3.c)
- - The attempt to achieve the desired color smoothness when shading
-could compute (nearly) forever. (gxshade.c, gxshade1.c)
- - The arc change in 5.24 caused arcs to render incorrectly.
-(gspath1.c)
- - The macro-reducing cleanup in 5.24 introduced a bug in handling
-copy operations with negative skew. (gdevm1.c)
-
-Adds unmasked images and bounding box testing to the library test program.
-(gxdevcli.h, gslib.c)
-
-Changes some macros to procedures. (gxfunc.h, gsfunc.c, gsfunc0.c,
-gsfunc3.c)
-
-Adds double-inclusion protection to all header files. (*.h)
-
-Reviews and reformats header files for maintainability. (*_.h, dodebug.h
-[deleted])
-
-Changes the structure of the common part of the image enumerator to include
-the device (which may be different from the original device, because of
-forwarding), and to access the procedures through a pointer to a const
-structure. This is a NON-BACKWARD-COMPATIBLE CHANGE for implementors of
-begin_image, since they now must pass the device to
-gx_image_enum_common_init. (gximage.h, gxiparam.h, gdevddrw.c, gdevdflt.c,
-gxiinit.c, gximage3.c, gximage4.c)
-
-Adds tests of the new color mapping device to the library test program.
-(gslib.c)
-
-Removes the last vestiges of segmented pointers. (genarch.c, std.h)
-
-Introduces a "raw memory" API, primarily for managing the underlying memory
-pool for embedded systems. This involves a NON-BACKWARD-COMPATIBLE-CHANGE
-in the implementation (but not ordinary clients) of allocators.
-(gsmemory.h, gsmemraw.h, gxalloc.h, gsalloc.c, gsmalloc.c, gsmemory.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.24"></a>Version 5.24 (limited) (6/17/98)</h2>
-
-<p>
-In addition to the usual bug fixes, and a few enhancements where temptation
-proved irresistible or in response to an external need, this fileset:
-<ul>
-<li> - Takes the first steps on a major readability cleanup
- (4-space indentation instead of 2, replacement of macros by
- procedures, ....)
-
-<li> - Implements a bit more of the DPS functionality, including view
- clipping, and gstate stack copying for 'fork'.
-
-<li> - Starts to sketch a text API for drivers.
-
-<li> - Changes the Unix makefiles so that they create production
-binaries
- in a separate directory.
-</ul>
-
-<p>
-Again, there are some non-backward-compatible changes required by other
-architectural improvements. As always, we have tried to minimize the impact
-of such changes on users' code.
-
-<h3><a name="V5.24_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The -Kn switch wasn't documented. (use.txt)
- - The term "Software" was used instead of "Program" in the last
-paragraphs of the license. (PUBLIC)
-
-Adds a couple of missing operators to the list at the end of ostack.h.
-(ostack.h)
-
-Documents more precisely which gstate points to which objects after various
-gstate operations. (gsstate.c)
-
-Corrects some addresses for the Free Software Foundation. (commprod.txt,
-new-user.txt)
-
-Improves the documentation for memory management of color spaces. (gscie.h,
-gscolor2.h)
-
-Updates the list of hardware available to Aladdin. (new-user.txt)
-
-Documents ReopenPerPage. (language.txt)
-
-Moves the documentation of image rendering procedures to a better place.
-(gximage.h, gxiinit.c)
-
-Clarifies that old slzwe.c files may not work with current Ghostscript
-versions. (make.txt)
-
-</pre><h3><a name="V5.24_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - psl3.dev didn't include func.dev. (int.mak)
- - device and device2 devices weren't sorted together, causing
-devices to appear in the list out of order (including, possibly, selecting
-the wrong device as default). (genconf.c)
- - The mswindll module definition omitted some needed files.
-(devs.mak)
-
-Changes the optimization level for gcc from -O to -O2 for both standard and
-profiling builds. (unix-gcc.mak)
-
-Defines 3 new makefile macros for the Unix platforms,
-CFLAGS_{STANDARD|DEBUG|PROFILE}, that give the additional compiler switches
-for these 3 compilation options. (unixansi.mak, unix-cc.mak, unix-gcc.mak)
-
-Changes the Unix makefiles so that by default they create the binaries in an
-'obj' subdirectory of the source directory. (unixansi.mak, unix-cc.mak,
-unix-gcc.mak, unix-end.mak)
-
-Updates the MSVC++ makefiles so they allow setting any configuration
-parameter from the make command line. (msvc32.mak, msvccmd.mak, msvccom.mak
-[deleted], msvclib.mak, msvctail.mak)
-
-</pre><h3><a name="V5.24_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2ascii was broken. (ps2ascii.ps)
-
-Adds capability to gslp.ps:
-
- - Variable-width fonts (but without automatic line breaking);
-
- - Pair kerning (from AFM file);
-
- - Inter-character and space width adjustment.
-
-This project was done for a paying customer. (gslp.ps)
-
-</pre><h3><a name="V5.24_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The name of the plan9bm device was wrong. (gdevpbm.c)
- - The PDF writer wrote incorrect parameters for the CCITTFax filter
-used to compress Type 3 font bitmaps. (bug introduced in 5.23) (gdevpdfi.c)
- - The PDF writer emitted two 'endobj' lines for Type 3 bitmap fonts.
-(gdevpdf.c)
-
-Removes all remaining uses of _ds and _ss in Aladdin's drivers. (gdevprn.h,
-gdevsvga.h, gdevbit.c, gdevcgm.c, gdevdjet.c, gdevmsxf.c, gdevpbm.c,
-gdevpccm.c, gdevpcfb.c, gdevpdfi.c, gdevprn.c, gdevsvga.c, gdevtfax.c)
-
-Renames a local macro named END. (gdevcgml.c)
-
-Removes all uses of far_data other than for device (but not device2)
-prototypes. (gdevbit.c, gdevdjet.c, gdevemap.c, gdevmsxf.c, gdevpbm.c,
-gdevpcfb.c, gdevpcx.c, gdevpdf.c, gdevpng.c, gdevps.c, gdevpsim.c, gdevpx.c,
-gdevtfax.c, gdevtfnx.c, gdevvglb.c, gdevx.c, gdevxalt.c)
-
-Adds a psrgb driver that writes PostScript (Level 2) planar,
-run-length-compressed, 24-bit RGB images. (gdevpsci.c)
-
-Starts to define and implement a driver procedure for text. This interface
-will certainly change in the future as we get more insight into the division
-of responsibility and control flow between generic code, individual drivers,
-and internal and external fonts. This involves a major
-NON-BACKWARD-COMPATIBLE CHANGE in the gs_show_enum structure (which no
-client should be accessing directly). (gdevmem.h, gdevprn.h, gstext.h,
-gxchar.h, gxdevcli.h, gxdevice.h, gxtext.h, gdevbbox.c, gdevht.c,
-gdevnfwd.c, gschar.c, gschar0.c, gstext.c, gxacpath.c, gxclip.c, gxclip2.c,
-gxclipm.c, gxclist.c, gxpcmap.c)
-
-Extends the parameter list printer to handle names and arrays. (gdevpsdf.c)
-
-Implements the ability to write out a Type 1 font definition, for embedding
-fonts in PDF output. Currently this code isn't called from anywhere, and it
-will certainly be subject to change in the future. (gdevpsdf.h, gdevpdfi.c,
-gdevpsde.c, gdevpsdf.c)
-
-Adds the PCL XL Protocol Class 2.0 operators, attributes, and enumerated
-values to the relevant header files. (gdevpxat.h, gdevpxen.h, gdevpxop.h)
-
-Converts some additional devices to -dev2, to make them const. (devs.mak,
-gdevjpeg.c)
-
-To help in debugging, changes all uses of
- #define ss ((stream_xxx_state *)st)
-to
- stream_xxx_state * const ss = (stream_xxx_state *)st;
-(gdevpdfi.c, gdevpsdi.c, gdevpsdp.c, gdevpsds.c)
-
-Massages mem_mono_copy_mono and mem_mono_strip_tile_rectangle to reduce the
-use of macros somewhat. (gdevm1.c, gdevmem.h)
-
-Makes a change to support the change in gs_param_list_common. (gdevpsdf.c)
-
-Replaces all remaining uses of do { ... } while (0) with BEGIN ... END.
-(gdevpdfm.c, gdevpx.c, gdevx.c, gdevxalt.c)
-
-Adds a ReopenPerPage Boolean device parameter for printers, which causes the
-output file to be closed and reopened for each page. This may be helpful in
-persuading spoolers to start printing as soon as the first page is
-available. (gdevprn.h, gdevprn.c)
-
-Makes the %-format validator for output file names a procedure, even though
-it's only called in one place. (gdevprn.c)
-
-Updates some clients for the change from std_procs to procs. (gdevp2up.c,
-gdevpbm.c, gdevupd.c,
-
-Removes the use of the CleanFaxData tag (327) from TIFF output, since many
-applications don't recognize it and it isn't in the TIFF 6 documentation.
-(gdevtifs.h, gdevtfax.c)
-
-</pre><h3><a name="V5.24_Platforms"></a>Platforms</h3><pre>
-
-Adds a new gp_setmode_binary platform procedure, to set a file into binary
-mode on platforms that distinguish text and binary. (gp.h, gp_*.c)
-
-</pre><h3><a name="V5.24_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The derived (Bold, Oblique, ...) Hershey fonts were broken.
-(fonts/makeher.ps, fonts/h*.ps)
-
-</pre><h3><a name="V5.24_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - As always, gcc failed to report some signed/unsigned char *
-mismatches. (imainarg.c)
- - Some needed #includes were missing. (zcrd.c, ztype.c)
- - Contexts were always allocated in global VM (should be local VM),
-and were freed in the current VM (should be local VM). Fixing this required
-changing some internal interfaces defined in icontext.h. (icontext.h,
-icontext.c, interp.c, zcontext.c)
- - restore did some unnecessary gsaves. (zvmem.c)
- - Creating a new context didn't initialize the graphics state
-properly, and didn't do the first gsave that grestoreall relies on.
-(gs_dps.ps)
- - The bookkeeping for open files didn't work with multiple contexts.
-Fixing this required a substantial (simplifying) redesign of the
-interpreter's bookkeeping for streams in general: this may have introduced
-new bugs. (files.h, ireclaim.c, isave.c, zfile.c)
- - fork didn't copy the graphics state stack. (zcontext.c)
- - The space bits were set incorrectly in the array reference for the
-operand stack, causing the garbage collector not to mark the operand stack
-of contexts other than the current one. (interp.c)
- - LanguageLevel 3 facilities weren't enabled when desired.
-(gs_ll3.ps, ilevel.h, opdef.h, iinit.c, zcsdevn.c, zimage3.c, zmisc2.c,
-zmisc3.c, zshade.c, ztrap.c)
- - flushfile with a procedure-target stream didn't pass the buffered
-data to the procedure. We tinkered with this a little, but it still isn't
-fixed. (zfilter.c, zfproc.c)
- - The top-level color space objects allocated by the CIE color space
-setting operators were never freed (until garbage collection). (zcie.c)
- - setpagedevice with a 0-size page didn't fail. (gs_setpd.ps,
-zmedia2.c)
- - If one or more of the matrices in a CIE color space or CRD was
-singular, setcolorspace or setcolorrendering could cause a stackoverflow.
-(zcie.c)
- - defineuserobject didn't work. (I don't see how it could ever have
-worked.) (gs_dps2.ps)
- - The version string wasn't read-only. (gs_init.ps, gs_lev2.ps,
-gs_ll3.ps)
- - Some standard resource categories weren't defined (which they need
-to be, even if they have no instances). (gs_res.ps, gs_ll3.ps)
- - The Trapping ProcSet was empty. (gs_ll3.ps)
- - setvmthreshold didn't accept a value of -1. (gs_lev2.ps,
-gs_pdfwr.ps, zusparam.c, zvmem2.c)
- - Binary tokens containing native reals with swapped byte order
-didn't read in properly. (ibnum.c, iscanbin.c)
- - In binary object sequences, many executable objects were
-incorrectly written out as literal. (zbseq.c)
- - String DataSources for shadings didn't work. (zshade.c)
- - Parameter dictionaries with integer keys didn't work. (iparam.c)
- - A "can't happen" condition caused massive confusion instead of a
-rangecheck error. (gs_setpd.ps)
- - setcachelimit and setcacheparams were broken, because they no
-longer interacted correctly with setuserparams and setsystemparams.
-(gs_lev2.ps)
- - The source width and height of images was arbitrarily limited to
-32767. (zimage2.c)
- - The optional dictionary parameter for filters was the last
-operand, not the first. (zfbcp.c, zfdecode.c, zfilter.c, zfilter2.c,
-zfilterx.c, zfzlib.c)
- - If the current color space was Indexed, Separation using the
-alternative space, or DeviceN using the alternative space,
-currentgray/cmykcolor/hsbcolor/rgbcolor returned 0 rather than the
-underlying color. (This was a correction to the Red Book in the 3010
-Language Supplement, Section D.2.4 and D.2.5.) (gscolor.c, gscolor1.c,
-gxcspace.h)
-
-Implements some additional LanguageLevel 3 stream facilities:
- - CloseSource and CloseTarget (parsing only). (ilevel.h, zfilter.c)
- - Dictionary argument for SubFileDecode. (zfilter.c)
- - UnitSize (fully implemented) and LowBitFirst (parsing only) for
- LZWDecode. (zfdecode.c)
- - ReusableStreamDecode (incomplete). (gs_ll3.ps, zfreuse.c)
-
-Removes all remaining uses of _ds and _ss. (bfont.h, errors.h, files.h,
-icie.h, idict.h, idparam.h, ifunc.h, iscan.h, iutil2.h, opdef.h; iccfont.c,
-idict.c, idparam.c, igc.c, iinit.c, iparam.c, iscan.c, iscannum.c, iutil2.c,
-zcid.c, zcie.c, zdevice2.c, zfdecode.c, zfile.c, zfileio.c, zfont0.c,
-zfont2.c, zfont42.c, zfunc.c, zht2.c, zusparam.c)
-
-Removes the use of gs_if_debug_c. (zvmem2.c)
-
-Updates clients for the change in color space num_components. (zcolor2.c,
-zcsindex.c, zcssepr.c, zpcolor.c)
-
-Changes the stack manager so it can ensure an unused margin above the top
-element. This is needed for a possible change in the operator API.
-(istack.h, istack.c)
-
-Decouples the definition of the interpreter instance from the definition of
-the exported procedures that use it, so that we can use it in more places
-internally. (iminst.h, main.h)
-
-Removes all initialization of static per-context state. (iinit.c, iscan.c,
-zmath.c)
-
-Makes the freeing of VM spaces entirely dependent on the number of contexts
-referencing them, removing the special handling of interpreter termination.
-(icontext.h, gsalloc.c, icontext.c, inouparm.c, interp.c, zcontext.c,
-zusparam.c) ****** IN PROGRESS ******
-
-Enables printing of time and memory usage even in non-DEBUG systems, for
-benchmarking. (imain.c)
-
-Adds a .forceundef operator to parallel .forceput. (gs_init.ps, zdict.c)
-
-Rewrites the Form caching code to use the Pattern cache. (gs_fform.ps)
-
-Removes all uses of far_data. (imain.c, imainarg.c, iname.c, opdef.h)
-
-Moves responsibility for null page devices from C code to PostScript code.
-(gs_setpd.ps, igstate.h, zdevice2.c, zgstate.c)
-
-Changes the context scheduler to not store or reload the state when
-switching from a context to the same context. (zcontext.c)
-
-Moves .registerencoding from C code to PostScript code. (gs_init.ps,
-zfont2.c)
-
-Splits off inames.h (API for names and the name table) from iname.h (API for
-the interpreter's name table); renames the_nt as the_gs_name_table, and
-moves it to imain.c. We would like to rename iname.h as names.h, but there
-are too many places that include it. (igc.h, iname.h, inamedef.h, inames.h,
-imain.h, idict.c, idstack.c, igc.c, iname.c, interp.c, isave.c)
-
-Splits off iestack.h and iostack.h from estack.h and ostack.h, as was done
-for [i]dstack.h in 5.23. (estack.h, iestack.h, iostack.h, ostack.h,
-interp.c)
-
-Splits off the hit detection device from the user path code, moving it to
-the library level where it belongs. (zupath.c)
-
-Updates the interpreter for the changes in the enum_ptrs, reloc_ptrs, and
-clear_marks memory management procedures. (igc.c, igcref.c, ilocate.c,
-zcontext.c)
-
-Removes all uses of 'near' from the interpreter: if short and long calls
-have different formats, we rely on the compiler to generate the most
-efficient one. (iccfont.c, imainarg.c, iparam.c, zdevice2.c, zdouble.c,
-zdps.c, zgstate.c, zmatrix.c, zpath.c, zpath1.c, zrelbit.c, ztype.c)
-
-Makes a couple of minor changes to support the change in
-gs_param_list_common. (iparam.h, iparam.c)
-
-Changes internaldict to an operator, and executive and findencoding to
-procedures, in order to satisfy the Genoa FTS. (gs_dps.ps, gs_init.ps,
-gs_res.ps)
-
-Updates clients for the addition of device reference counting. (zpcolor.c,
-zupath.c)
-
-Replaces all remaining uses of do { ... } while (0) with BEGIN ... END.
-(istruct.h, opcheck.h)
-
-Adds a debugging operator for printing out a Type 1 font. (zfont1.c)
-
-Updates the Type 1 font operators for the change in the procedure structure.
-(zchar1.c, zfont1.c)
-
-Updates one client for the change in the gs_show_enum structure. (zchar.c)
-
-Removes an obsolete "hook" put in for a customer. (zchar.c)
-
-Removes the BigStringEncode filter, which was only used by a former
-customer. (zfilter.c)
-
-</pre><h3><a name="V5.24_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Images defined in non-Device color spaces were broken.
-(pdf_draw.ps)
-
-Removes some vestiges of the old pdf2ps. (pdf_draw.ps, pdf_main.ps)
-
-Adds some leftover PDF 1.2 features:
-
- - F, FFilter, and FDecodeParms keys in stream dictionaries.
- (pdf_base.ps)
-
- - Functions, including predefined spot functions. (pdf_draw.ps)
-
- - Name trees. (pdf_base.ps)
-
-Adds some PDF 1.3 features. Note that these require a fair amount of
-PostScript LanguageLevel 3 support. Note also that none of these have been
-tested yet, because we don't have any source of test files.
-
- - DeviceN and (stubbed) ICCBased color spaces. (pdf_draw.ps,
- pdf_ops.ps)
-
- - Additional extended graphics state parameters. (pdf_draw.ps)
-
- - Number trees. (pdf_base.ps)
-
- - Masked images. (pdf_draw.ps)
-
-Works around a bug in pdfTeX, which can generate Encoding vectors containing
-nulls. (pdf_font.ps)
-
-</pre><h3><a name="V5.24_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - A needed #include of memory_.h was missing. (sdeparam.c)
- - The needed input buffer size for the RunLengthEncode filter was
-128, but should be 129. (srle.c)
- - The ASCII85Encode and ASCIIHexEncode filters sometimes didn't
-insert \n characters often enough. (sfilter2.c, sstring.c)
- - In one obscure boundary case, the CCITTFaxEncode filter with K =
--1 could emit an extra, incorrect code. (scfe.c)
- - The CCITTFaxDecode filter didn't default DamagedRowsBeforeError to
-0. (scfx.h)
-
-Removes all remaining uses of _ds and _ss. (sfilter.h, sbcp.c, scfe.c,
-seexec.c, sfilter1.c, sstring.c)
-
-Removes the use of do_debug. (scfd.c)
-
-Removes all uses of far_data. (scf.h, scfdgen.c, scfdtab.c, scfetab.c,
-sjpegerr.c)
-
-Removes the save_count member of streams, which is now no longer needed.
-(stream.h)
-
-To help in debugging, changes all uses of
- #define ss ((stream_xxx_state *)st)
-to
- stream_xxx_state * const ss = (stream_xxx_state *)st;
-(sbcp.c, sbhc.c, sbwbs.c, scfd.c, scfe.c, sdctc.c, sdctd.c, sdcte.c,
-seexec.c, sfilter1.c, sfilter2.c, sfxfd.c, sfxstdio.c, siscale.c, slzwc.c,
-slzwce.c, slzwd.c, smtf.c, spdiff.c, spngp.c, srld.c, srle.c, sstring.c,
-szlibc.c, szlibd.c, szlibe.c)
-
-Changes all groups of statistic-gathering variables to be structure
-variables named stats_*. (scfe.c)
-
-Rewrites the CCITTFaxEncode filter to cut down one particularly large and
-obnoxious macro, and to simplify the code by allocating an output buffer as
-well as an input buffer. (scf.h, scfdgen.c, scfe.c, scfetab.c)
-
-</pre><h3><a name="V5.24_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The masked image clipper sequenced through mask rows incorrectly.
-(gxclipm.c)
- - gx_[c]path_init_local_shared were declared as returning void, but
-could actually return an error. (gxpath.h, gxcpath.c, gxpath.c)
- - As always, gcc failed to report some static/non-static
-inconsistencies. However, to my dismay, I find that the ANSI C standard
-allows these, so I'll have to stop complaining about them. (gxclimag.c,
-gxclipm.c)
- - As always, gcc failed to report some signed/unsigned char *
-mismatches. (gdevpdfi.c, gsparam.c)
- - A loop counted on a non-existent zero value to mark the end of the
-IODevice table. (gsiodev.c)
- - Some needed #includes of memory_.h were missing. (gdevddrw.c,
-gscolor2.c, gscrdp.c, gscspace.c, gxclipm.c, gximage3.c, gxshade4.c)
- - Pattern device colors didn't have access to the original halftone
-phase, making it impossible to handle non-standard X/YStep correctly.
-(gsdcolor.h, gspcolor.c)
- - Pattern filling disregarded the phase. THIS MAY UNDO A FIX MADE
-IN 5.02. WE NEED TO RE-TEST PATTERNS CAREFULLY. (gxp1fill.c)
- - restore did some unnecessary gsaves. (gsstate.h, gsstate.c)
- - The reference counting macros could read from an object after
-freeing it. (gsrefct.h)
- - setgstate and currentgstate freed the view clipping path, which
-they shouldn't do. (gsstate.c)
- - If no view clipping path was set, viewclippath returned the entire
-extent of the device, not the imageable area. (gxpath.h, gsdps.c, gspath.c)
- - Assigning one stack-allocated path to another incorrectly wound up
-sharing their segments. (gxcpath.c, gxpath.c)
- - dot_length_absolute was incorrectly declared as float rather than
-bool. (gxline.h)
- - The test for varying-depth banded images was incorrect, causing
-varying-depth images to be treated as constant-depth. (This only affected
-ImageType 3 images.) (gxclimag.c)
- - Failure to clamp Y values when processing banded images could
-cause crashes or invalid band list data. (gxclimag.c)
- - The changes in gsparam.c introduced in 5.23 made the coercion of
-int arrays to float arrays fail. (gsparam.h, gsparam.c)
- - Interpolated banded images could be transmitted incompletely,
-causing narrow stripes to be chopped out of their rendering. (gxclimag.c)
- - FunctionType 0 functions with 32-bit samples didn't read their
-data correctly. (gsfunc0.c)
- - Lattice-form Shadings with packed coordinates could crash or
-produce incorrect results. (gxshade.c)
- - Lattice-form Shadings with packed coordinates always returned an
-error. (gxshade4.c)
- - If the PaintProc of a Pattern or a Form, or a CharString
-procedure, or a similar callback copied the current graphics state with
-gstate or currentgstate, a dangling reference to the device could result.
-Fixing this required adding a reference count to devices: internally created
-devices initialize it to 0, externally visible devices initialize it to 1.
-THIS IS A DELICATE CHANGE AND WILL PROBABLY HAVE A BUG TAIL. (gsdevice.h,
-gxdevcli.h, gxdevice.h, gdevmem.c, gdevmrop.c, gdevnfwd.c, gschar.c,
-gsdevice.c, gsmemory.c, gspaint.c, gsstate.c, gxacpath.c, gxccman.c,
-gxclip.c, gxmclip.c, gxpcmap.c)
- - The return_if_error macro referred to code rather than code_.
-(gserror.h)
- - Non-monotonic halftones didn't allocate enough slots in the
-halftone cache. (gxht.c)
- - setpagedevice with a 0-size page didn't fail. Fixing this
-required making the nullpage device provide explicit InputAttributes.
-(gdevnfwd.c)
- - Halftone angles were often slightly off. (gshtscr.c)
- - Banded fill_mask operations (used for characters) were sometimes
-broken. This bug was obviously introduced since 5.10; I'm surprised that it
-didn't have more serious effects. (gxclread.c)
- - Partially transparent patterns didn't work with non-default
-RasterOp values. (gxp1fill.c)
- - The default implementation of strip_copy_rop didn't handle color
-space conversion properly. (gdevmrop.c)
- - Hint replacement could cause the initial moveto and final
-closepath of a Type 1 outline to differ, confusing the filling code.
-(gxhint3.c)
- - Interpolated images were truncated at the bottom. (bug probably
-introduced in 5.23) (gxiscale.c)
- - Using an unsigned type for the index passed to enum_ptrs
-procedures caused comparisons against signed values to be incorrect.
-(gsstruct.h)
-
-Rewrites the rectangle list and mask clipping algorithms to use callback
-procedures rather than macros. The rectangle list source code grew by 20%,
-but the compiled code shrank from 10K to less than 4K; the mask clip source
-code and compiled code both shrank. (gxclip.h, gxmclip.h, gxclip.c,
-gxclip2.c, gxclipm.c, gxcpath.c)
-
-Removes all remaining uses of _ds and _ss. (gsmemory.h, gsstruct.h, gzht.h,
-stdpre.h, gp_dosfb.c, gsbitops.c, gscie.c, gsht.c, gstype1.c, gstype2.c,
-gxclpath.c, gxclread.c, gxcmap.c, gxfill.c, gxi12bit.c, gxop1.h, gxpflat.c,
-gxstroke.c, gxtype1.c)
-
-Changes some GC procedures from explicit code to standard macros.
-(gsstruct.h, gscscie.c, gxcht.c)
-
-For easier debugging, changes gs_debug_c to a procedure; removes
-gs_if_debug_c and do_debug. (gdebug.h, gsht1.c, gsmisc.c, gspaint.c,
-gxcht.c, gxht.c, gxpcmap.c)
-
-Changes the num_components member of the color space structure to a
-procedure, which is needed because DeviceN color spaces have a variable
-number of components; also makes Pattern spaces return -1 - the correct
-num_components instead of -1. This is a NON-BACKWARD-COMPATIBLE CHANGE.
-Also adds a base_space procedure. (gxcspace.h, gscdevn.c, gscolor1.c,
-gscolor2.c, gscpixel.c, gscscie.c, gscsepr.c, gscspace.c, gspcolor.c,
-gxiinit.c, gxiscale.c)
-
-Changes all groups of statistic-gathering variables to be structure
-variables named stats_*. (gxclip.c, gxclist.c, gxclpath.c, gxfill.c,
-gxifast.c)
-
-Starts to pull apart gs_makebitmap/pixmappattern to remove the dependency on
-masked images. (gspcolor.c)
-
-Splits the C heap allocator from generic allocator support. (gsmemory.c,
-gsmalloc.c)
-
-Removes all uses of far_data other than references to device (but not
-device2) prototypes. (gdevmem.h, gdevmrop.h, gxdevcli.h, gconf.c,
-gdevabuf.c, gdevht.c, gdevm*.c, gdevmpla.c, gdevmrop.c, gdevnfwd.c,
-gsbittab.c, gsflip.c, gsroptab.c, gxcht.c)
-
-Adds a streams member to gs_ref_memory_t. The library doesn't use this, but
-it greatly simplifies the interpreter's bookkeeping. (gsalloc.h, gxalloc.h,
-gsalloc.c)
-
-Adds some more opaque types to the graphics state structure, rather than
-using naked struct types. (gsccolor.h, gzstate.h)
-
-Introduces the notion of the "effective clip path" in a graphics state.
-Painting operators should now call gx_effective_clip_path rather than using
-the clip_path member directly. (gxpath.h, gschar.c, gsdps1.c, gsimage.c,
-gspaint.c, gspath.c, gxccache.c, gxpaint.c)
-
-Implements view clipping. (gzstate.h, gspath.c, gsstate.c)
-
-Starts to pare down the fit_* macros in gxdevice.h, since some people feel
-strongly they are hard to follow, and also adds BEGIN/END wrapping.
-(gxdevice.h, gdevabuf.c, gdevmem.c, gxclpath.c)
-
-Refactors the structure definition macros in anticipation of moving to a
-more table-driven approach. Replaces ENUM_CALL, ENUM_RETURN_CALL, and
-RELOC_CALL with ENUM_USING and RELOC_USING. (gsstruct.h, gdevmem.c,
-gshtscr.c, gxcpath.c, gxiinit.c)
-
-Sketches a table-driven rather than procedural representation for GC
-descriptors. We believe this will improve readability, reduce code size,
-and perhaps reduce cache thrashing during garbage collection. This requires
-a NON-BACKWARD-COMPATIBLE CHANGE to the enum_ptrs, reloc_ptrs, and
-clear_marks procedures (to add the structure descriptor as a parameter).
-This should not affect any ordinary clients, because they should already
-define these procedures using the macros in gsstruct.h, which *are*
-backward-compatible; however, they do affect two internal clients that use
-their own type tags with unions (color spaces and device colors).
-(gsstrtab.h, gsstruct.h, gsalloc.c, gsstrtab.c)
-
-Updates color spaces for the change in enum_ptrs and reloc_ptrs.
-(gxcspace.h, gscdevn.c, gscolor1.c, gscolor2.c, gscpixel.c, gscscie.c,
-gscsepr.c, gscspace.c, gspcolor.c)
-
-Updates device colors for the change in enum_ptrs and reloc_ptrs.
-(gsdcolor.h, gxdcolor.h, gxpcolor.h, gspcolor.c, gxcht.c, gxcmap.c,
-gxdcolor.c, gxht.c, gxp1fill.c)
-
-Implements a hit detection device at the library level. (gserrors.h,
-gdevhit.c)
-
-Changes some configuration parameters from #defines to statics. (gschar.c)
-
-Changes "simple" structures so they no longer have 0 for the enum_ptrs or
-reloc_ptrs procedure. This is a NON-BACKWARD-COMPATIBLE CHANGE for
-structure-definers that don't use the macros in gsstruct.h (of which there
-shouldn't be any). (gsstruct.h, gsalloc.c)
-
-Adds the structure type name to the debugging printout for freeing objects.
-(gsalloc.c)
-
-To help in debugging, changes all uses of
- #define ss ((stream_xxx_state *)st)
-to
- stream_xxx_state * const ss = (stream_xxx_state *)st;
-(gxclread.c)
-
-Removes all uses of 'near' from the library: if short and long calls have
-different formats, we rely on the compiler to generate the most efficient
-one. (gscie.c, gscoord.c, gsimpath.c, gsstate.c, gstype2.c, gxclpath.c,
-gxclread.c, gxfill.c, gxhint1.c, gxhint2.c, gxhint3.c, gxstroke.c)
-
-Adds 'inline' to stdpre.h, defined as the empty string on compilers other
-than the ones we know accept it. (stdpre.h)
-
-Adds printout of the subrectangle to ImageType 1 tracing. (gxiinit.c)
-
-Replaces a few uses of gs_memory_default with dev-&gt;memory. (gdevdbit.c,
-gxclread.c)
-
-Improves support for halftone objects not associated with graphics states.
-This involves a minor change to the definitions of gs_spot_halftone and
-gs_threshold_halftone, to define the transfer function as a closure. This
-is slightly NON-BACKWARD-COMPATIBLE in that it requires clients to set
-transfer_closure.proc to 0 if they also set transfer to 0. NOTE: the API
-defined in gshtx.h is subject to future change. (gscsepnm.h, gshtx.h,
-gxdht.h, gxfmap.h, gxht.h, gxtmap.h, gscolor.c, gsht.c, gsht1.c, gshtx.c)
-
-Changes the Bezier approximation of arcs to cut arcs at absolute multiples
-of 90 degrees rather than at intervals of 90 degrees (e.g., an arc from 45
-to 105 would now be cut at 90 rather than being treated as a single
-60-degree curve) in order to produce more uniform output and also to ensure
-that the bounding box for arcs is more accurate (to pacify the Genoa FTS).
-(gxfarith.h, gsmisc.c, gspath1.c)
-
-Replaces all remaining uses of do { ... } while (0) with BEGIN ... END.
-(gsbitops.h, gsdsrc.h, gserror.h, gsmdebug.h, gsrect.h, gxcldev.h, gxfunc.h,
-gxop1.h, gxtype1.h, gsalphac.c, gsshade.c, gstype2.c, gstype42.c,
-gxclread.c, gxcpath.c, gximage4.c, gxpath.c)
-
-Adds a user-defined halftone type, to support non-monotonic halftones. We
-could make any of the following structures fully object-oriented:
- - Halftones (client level)
- - Halftone orders (device level, but not rendered)
- - Device halftones (device level, fully rendered)
-The right place to do this for non-monotonic halftones, which are specified
-directly by bit masks, is at the device halftone level. However, there are
-too many places that know too much about the implementation of device
-halftones and halftone orders right now. WE NEED TO REVISIT THIS AFTER THE
-5.1x CODE BRANCH IS TERMINATED. SHOULD ALSO CONVERT UNION TO TYPED UNION
-FOR GC -- CODE IS DUPLICATED IN gsht.c VS gshtx.c. (gxdht.h, gxht.h,
-gxhttype.h, gshtx.h, gsht.c, gsht1.c, gshtx.c)
-
-Moves the procedures in Type 1 font data into a structure. This is a
-NON-BACKWARD-COMPATIBLE CHANGE, but an internal one. (gxfont1.h, gstype1.c,
-gstype2.c, gxtype1.c)
-
-Extends Type 1 / 2 / 4 fonts to require that they be able to enumerate the
-set of glyphs that they define, to allow writing them out. We may propagate
-this to all base fonts in the future. (gxfont1.h)
-
-Provides some utilities for devices that want to define their own
-InputAttributes and OutputAttributes. (gdevprn.h, gxdevice.h, gdevprn.c,
-gsdparam.c)
-
-Removes all of the text-display procedures that took null-terminated C
-strings as operands. This is NON-BACKWARD-COMPATIBLE. However, since the
-memory manager required that all such operands be allocated using
-gs_alloc_string, the procedures were never usable with arbitrary C strings
-anyway. (gschar.h, gschar.c)
-
-Renames the gx_device procedure record from std_procs to procs, in
-anticipation of more unified support for "objects". This is a
-NON-BACKWARD-COMPATIBLE CHANGE for a surprisingly large number of clients
-that should have been using dev_proc and set_dev_proc. (gdevbbox.h,
-gxdevcli.h, gxdevice.h, gdevdflt.c, gdevdgbr.c, gdevmem.c, gdevprn.c,
-gsalphac.c, gsdevice.c, gsropc.c, gxccache.c, gxifast.c)
-
-Disallows setting of the RasterOp-related graphics state parameters when
-a cache device is active. (gsrop.c)
-
-Changes the tracing printout of path segments to provide enough accuracy to
-cover all the fraction bits of a 'fixed'. (gxpath.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.23"></a>Version 5.23 (limited) (5/14/98)</h2>
-
-<p>
-This fileset adds a number of PostScript LanguageLevel 3 features: library
-support for ImageType 3 and 4 (masked) images, PostScript-level support for
-ImageType 4, and the shfill operator for smooth shading. It also adds RCS
-Id lines to all the files we maintain. It also changes the Unix makefiles
-so that they create debugging or profiling binaries in separate directories.
-
-<p>
-This fileset includes an unusually large number of non-backward-compatible
-API changes. Most of them don't affect ordinary library clients, but a few
-do. These changes, and a few more to come, result from the next (large)
-increment in our ongoing project to make the code completely re-entrant (no
-non-idempotent writable globals in our own code). This necessarily involves
-putting some things that used to be global into structures, some of which
-must be added to some interfaces.
-
-<p>
-NOTE: because of a combination of hardware problems, time pressure, and
-belated discovery of sloppiness by the original developers of the PC
-makefiles, none of the PC makefiles in this fileset work. The Borland
-makefiles probably come the closest.
-
-<h3><a name="V5.23_Documentation"></a>Documentation</h3><pre>
-
-Adds documentation for:
- - The changes in begin_image and related facilities. (drivers.txt)
- - The addition of -Z/. (use.txt)
- - The new ps2ps utility. (ps2ps.1)
- - The new get_hardware_params procedure. (drivers.txt)
- - The new -B&lt;size&gt; / -B- switch. (use.txt).
-
-Improves the documentation for the sample_ macros. (gsbitops.h)
-
-Adds some documentation on how the debugging/tracing flags work. (gdebug.h)
-
-Improves the documentation of DDAs. (gxdda.h)
-
-Documents a subtle change in the meaning of a flag in the PDF
-FontDescriptor. (pdf_font.ps)
-
-Changes the location of the authoritative site for zlib sources. (zlib.mak)
-
-Corrects a typo. (gsht1.h)
-
-Removes pdf_2ps.ps from the fileset. (psfiles.txt)
-
-Adds standard file name comments to all .c and .h files that didn't already
-have them. (dodebug.h, gdev3b1.c, gdev8510.c, gdevadmp.c, gdevhl7x.c,
-gdevimgn.c, gdevo182.c, gdevpdfx.h, gdevpe.c gdevsco.c, gdevsj48.c,
-gdevvglb.c, gsalpha.c, gscolor1.c, gscsepr.h, gsdsc.c, scfetab.c string_.h,
-zfunc3.c, zmedia2.c)
-
-Unifies the nroff styles of the various man pages a bit. (*.1)
-
-Adds a reference to the CTAN mirror sites. (new-user.txt)
-
-Notes that the result of rect_intersect may be anomalous. (gsrect.h)
-
-Improves the documentation for the Distiller parameter handling code.
-(gdevpdfp.c, gdevpsdp.c)
-
-Corrects an ambiguity in the definition of the int_keys argument of
-param_begin_xmit_dict. (gsparam.h)
-
-Adds a new file that will evolve into a reasonable guide to the source code.
-(README, source.txt)
-
-Adds the convention for 'status' and 'code' to the C style guide.
-(c-style.txt)
-
-Improves the documentation for the '-' pseudo-switch. (use.txt)
-
-Updates the problem reporting form to include the URL for known post-release
-problems. (bug-form.txt)
-
-Documents the availability of sources and binaries for Plan 9.
-(new-user.txt)
-
-</pre><h3><a name="V5.23_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The 'tags' target in the Unix makefiles had an incorrect directory
-name. (bug probably introduced since 5.20) (unix-end.mak)
- - The ld_tr and CCFLAGS macros were used in the makefiles before
-they were defined, causing problems with `make' implementations that
-substitute macros into definitions at definition time rather than at use
-time. (*.mak)
- - Recent Digital Unix versions (4.0 and later) require -std1 when
-compiling. (make.txt)
- - The Unix library-only makefile had gotten out of date.
-(ugcclib.mak)
- - pf2afm[.bat] were omitted from the fileset. (master/package.tcl)
- - The Borland makefile didn't work, because the Borland compiler
-requires specifying the output file name (-o) before the input file name
-(-c)! This required changing the order of every compilation command in
-every platform-independent makefile. The win*.mak files still need work.
-(*.mak)
- - None of the non-Unix makefiles specified directory names for the
-auxiliary programs. (dvx-tail.mak, os2.mak, wctail.mak, winlib.mak)
- - The Windows makefiles lacked build rules for gp_ntfs and gp_win32.
-(msvclib.mak, winlib.mak)
-
-Adds a new debugging switch -Z/ that prints the file name and line number on
-all trace messages. (gdebug.h, std.h)
-
-Changes the Unix 'pg' and 'debug' build targets so that they create the
-binaries in a 'pgobj' or 'debugobj' subdirectory of the standard build
-directory. This allows keeping all 3 configurations active. (unix-end.mak)
-
-Adds GEN directories for jpeg, libpng, and zlib. (devs.mak, gs.mak,
-jpeg.mak, lib.mak, libpng.mak, zlib.mak)
-
-Adds a gendev.c that will eventually replace genconf.c. (gendev.c, *.mak)
-
-Adds -Wcast-align to the gcc compilation switches. (unix-gcc.mak)
-
-Adds support for libpng 1.0.1. (libpng.mak)
-
-Notes the use of -R on Solaris and other SVR4 systems. (unix*.mak)
-
-Removes pdf_2ps.ps from the fileset. (int.mak, unixinst.mak,
-pdf_2ps.ps[deleted])
-
-Ensures that every file that is copyright, maintained, and distributed by
-Aladdin Enterprises has a RCS Id line. In .c and .h files, these lines
-currently are only comments, but they could be converted easily to static
-strings later if we want to. We had to touch almost every file in the
-fileset to do this, but we did *not* change the write dates. (*)
-
-Makes the build procedure auto-detect whether the installed version of gcc
-has the 'const' code generation bug. (gs.mak, lib.mak, unix-gcc.mak)
-
-Removes 'makefile' as a precondition for ccf32.tr. (I can't quite figure
-out why it was there in the first place.) (msvccom.mak)
-
-Replaces the -F&lt;file&gt; switch with a -B&lt;buffer size&gt; switch that forces all
-files to use the run_string interfaces. -B- turns it off. (iminst.h,
-imainarg.c)
-
-Adds a new resource to genconf.c, -replace &lt;module&gt;. This causes &lt;module&gt;
-*not* to be included if the module with the -replace resource *is* included.
-If two modules -replace each other, either directly or indirectly through
--includes, the result is undefined. (genconf.c)
-
-Uses -replace to implement a default roplib package. (lib.mak)
-
-</pre><h3><a name="V5.23_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - unprot.ps stopped working because of the stricter prohibition
-against storing local-VM objects into systemdict. (unprot.ps)
-
-Adds a new ps2ps utility, like pdf2ps, that "distills" PostScript.
-(ps2ps, ps2ps.bat)
-
-Modifies the ps2epsi utility so it can be run outside the ps2epsi script for
-testing. (ps2epsi.ps)
-
-Changes the pdf2ps utility to use the pswrite device. This gets rid of all
-conversion problems, at the expense of larger and stupider output files.
-(pdf2ps, pdf2ps.bat)
-
-</pre><h3><a name="V5.23_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Two procedures were declared 'private' inconsistently (thank you
-again, gcc). (gdevps.c)
- - The author of the uniprint driver sent a fix for an
-allocation-related bug and an off-by-one bug. (gdevupd.c)
- - The PDF writer incorrectly converted open stroked rectangles (only
-3 sides drawn) to closed (4 sides drawn). (gxpath.h, gzpath.h, gdevpdfd.c,
-gxpath2.c)
- - When banding, filling a character within the PaintProc of a
-Pattern could produce memory access errors. (The problem was in
-gx_forward_fill_mask, which might affect filling characters in other
-situations as well.) (gdevnfwd.c)
- - The [e]pswrite driver produced incorrect line widths for stroked
-graphics. (gdevps.c)
- - The [e]pswrite driver didn't invoke colorimage correctly, so
-didn't handle Patterns right. (gdevps.c)
- - Vector devices didn't set the color before writing trapezoids,
-possibly causing incorrectly colored output. (gdevvec.c)
- - Vector devices could give errors on Pattern fills. (gdevvec.c)
- - The bbox device retained a pointer to the clipping path, which,
-since the path was embedded in the gs_state_contents, confused the garbage
-collector, causing memory access errors. We fixed this by de-embedding the
-path object: see below. (gsstate.c)
- - On some GNU/Linux systems, the X driver could get a memory access
-error when displaying patterns. We fixed this by adding calls on XInitImage
-in the necessary places when running X11R6. (gdevx.c)
- - PDF output didn't check names for unusual characters, and could
-produce invalid output if the input included names with those characters.
-(gdevpdfx.h, gdevpdf.c, gdevpdfm.c, gdevpdfo.c)
- - In the PDF writer, DEST pdfmarks with /Dest but no /Page or /View
-didn't generate named destinations. (gdevpdfm.c)
- - Printer devices didn't allow . in %-formats in the output file
-name. (gdevprn.c)
- - The x11cmyk driver didn't read bits back from the screen
-correctly. (gdevxalt.c)
- - The pcxmono and pcxgray drivers used colored rather than
-gray-scale palettes. (gdevpcx.c)
- - The PCX drivers could emit repetition counts greater than 15,
-confusing some readers. (gdevpcx.c)
-
-Removes some vestiges of the obsolete draw_line driver procedure. We also
-rename the draw_line member of the driver procedure structure as
-obsolete_draw_line, so that any uses of it will cause compilation errors,
-but we don't remove it from the structure, so that existing driver procedure
-vectors will continue to compile (although the draw_line procedure will
-never be called). (gxdevcli.h, gdevbbox.c, gdevddrw.c, gdevdflt.c)
-
-To repair a design error, and at the same time add flexibility needed for
-ImageType 3:
-
- - Removes the image_data and end_image driver procedures,
-associating them with the gx_image_enum(_common)_t structure instead.
-Clients should call gx_device_image_data and gx_device_end_image instead: we
-set the image_data and end_image procedures in the device structures to
-these procedures when filling in defaulted procedures. This is a
-NON-BACKWARD-COMPATIBLE CHANGE for drivers that implement begin_image, since
-they now have to fill the procedures into the enumerator structure.
-(gsiparm*.h, gxdevcli.h, gxdevice.h, gxiparam.h, gdevbbox.c, gdevddrw.c,
-gdevdflt.c, gdevnfwd.c, gsimage.c, gxclist.c, gxidata.c, gxifast.c,
-gxiinit.c, gximage3.c, gximage4.c)
-
- - Replaces the image_data driver procedure with a plane_data
-procedure (now associated with the image enumerator, not the device) that
-allows specifying the X offset and raster independently for each plane, and
-(depending on the image type) may allow omitting some planes. We provide a
-gx_device_image_plane_data procedure parallel to _image_data and _end_image
-(see above). (gsiparm*.h, gxdevcli.h, gxiparam.h, gdevbbox.c, gdevddrw.c,
-gxidata.c, gxiinit.c, gximage3.c, gximage4.c)
-
-Updates clients for image processing changes. (gdevvec.h, gdevpdf.c,
-gdevpdfi.c, gdevps.c, gdevpx.c, gdevvec.c)
-
-Enhances [e]pswrite to detect other kinds of opportunities for producing
-smaller output. This involves a change in the moveto procedure in the
-'vector' interface. (gdevps.c)
-
-Changes the bbox device so that it automatically detects whether it is being
-used as a component in a device pipeline or as a free-standing device,
-rather than having to select this in the makefile. (lib.mak, gdevbbox.h,
-gdevbbox.c)
-
-Moves the halftoning driver a bit closer to real usability. (gdevht.h,
-gdevht.c)
-
-Adds some tracing to the color mapping code in the X driver. (gdevx.c)
-
-Implements setting the Dict and ACSDict parameters for pswrite and pdfwrite.
-Dict is effective with the CCITTFaxEncode filter for black-and-white images;
-otherwise, these parameters still don't do anything. (gdevpdfi.c,
-gdevpsdp.c) ****** READING HUFFMAN TABLES IS NYI, SEE sdcparam.c; SETTING
-DOESN'T WORK BECAUSE DCT_set_defaults DOESN'T DO WHAT IT SHOULD ******
-
-Updates the PS/PDF writers to reflect the fact that the ASCIIHexEncode
-filter now has a state. (gdevpsdf.c)
-
-Modifies the X driver so that it can draw multiple platform characters at a
-time rather than one character per call. (gdevx.h, gdevx.c, gdevxxf.c)
-
-Takes advantage of the filter stream procedures now available in stream.c.
-(gdevjpeg.c, gdevpdf.c, gdevpsdf.c)
-
-Adds a get_hardware_params procedure, similar to get_params except that it
-reads parameters whose values depend on hardware state that may change
-without program intervention (e.g., panel switches). The default is that
-there are no hardware parameters. (gdevmem.h, gdevprn.h, gsdevice.h,
-gxdevcli.h, gxdevice.h, gxacpath.c, gxclip2.c, gxclipm.c, gxclist.c,
-gxcpath.c, gdevbbox.c, gdevdflt.c, gdevht.c, gdevmrop.c, gdevnfwd.c,
-gdevprn.c, gsdparam.c)
-
-Updates the PS/PDF writer for the change in the parameter list API.
-(gdevpsdf.c)
-
-Makes a few more writable statics const. (gdevos2p.c, gdevpipe.c,
-gdevpsim.c, gdevx.c)
-
-Removes the rrgb sample device, since it now no longer serves any purpose.
-(gdevrrgb.c[deleted])
-
-Converts some additional devices to -dev2, to make them const. (devs.mak,
-gdevbit.c, gdevpbm.c, gdevpcx.c, gdevpsim.c, gdevpng.c, gdevtfax.c,
-gdevtfnx.c, gdevx.c, gdevxalt.c)
-
-Updates a client accessing the preallocated color spaces. (gdevpsdi.c)
-
-Renames the debugging-related statics in the X driver as X_SOMETHING.
-(gdevx.c)
-
-</pre><h3><a name="V5.23_Platforms"></a>Platforms</h3><pre>
-
-Makes a few minor changes to support Plan 9. (make.txt, devs.mak, stat_.h,
-stdio_.h, time_.h, gdevpbm.c)
-
-</pre><h3><a name="V5.23_Fonts"></a>Fonts</h3><pre>
-
-Documents the availability of a free Chinese font. (fonts.txt,
-new-user.txt)
-
-Works around a bug in the Adobe PostScript driver. We though it just output
-the FontBBox for Type 42 fonts in the 2048- or 4096-unit character space
-rather than a 1-unit space, but in fact it outputs garbage. (zfont42.c,
-gstype42.c)
-
-Augments the handling of Type 42 fonts to recognize the gdir /
-GlyphDirectory method of outline definition in addition to the loca / glyf
-method, per Adobe versions 2015 and later (undocumented!). (ifont.h,
-zfont42.c)
-
-</pre><h3><a name="V5.23_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Memory management for argument strings was wrong. (gsargs.h,
-gsargs.c)
- - 1 .setlanguagelevel was broken, because it didn't allow for the
-possibility that values could get deleted from systemdict that existed in
-level2dict. (bug introduced in 5.x, x &lt;= 10) (zmisc2.c)
- - -dFAKEFONTS was broken. (gs_fonts.ps, gs_init.ps)
- - copyscanlines was broken. (bug introduced in 5.20) (gs_init.ps)
- - The matrix returned by sizeimage was incorrect. (zdpnext.c)
- - The implementation of .buildpattern for PatternType 2 was wrong.
-(gs_ll3.ps)
- - Ghostscript couldn't load TrueType fonts where the amount of data
-either before or after the glyf section exceeds 64K. (gs_ttf.ps) ****** WE
-BACKED OUT THIS CHANGE, BECAUSE WE HAD TO BACK OUT THE NEXT ONE. ******
- - Ghostscript couldn't load TrueType fonts where the total data is
-more than 64K and the offset or length of the glyfs is odd. (gs_ttf.ps)
-****** WE BACKED OUT THIS CHANGE: IT BROKE THE PDF INTERPRETER, BECAUSE IT
-IMPOSES A NEW REQUIREMENT THAT TTF FILES BE POSITIONABLE. ******
- - Some compilers complained about arithmetic on enums. (interp.c)
- - The CIE color space and CRD GC structure definitions were in the
-interpreter rather than the library. (zcie.c, zcrd.c)
- - NullFont was still present in FontDirectory when currentglobal was
-false. (gs_init.ps)
- - execform failed with Form resources, because it tried to insert
-the Implementation in a read-only dictionary. (gs_fform.ps, gs_lev2.ps)
-
-Finishes implementing ImageType 4 images, and moves closer to implementing
-ImageType 3. (iimage.h, zdps.c, zimage.c, zimage2.c, zimage3.c)
-
-Updates tracing output to use the new dlprintf macros. (idict.c, igc.c,
-igcref.c, igcstr.c, iname.c, interp.c, isave.c, iscan.c, zcie.c, zcontext.c)
-
-Implements multiproc=true for readimage. (gs_dpnxt.ps)
-
-Does a bit more work on implementing shading with PatternType 2.
-(gs_ll3.ps, zfunc.c, zshade.c)
-
-Adds a .bitadd operator for adding integers modulo the word size.
-(zarith.c)
-
-Updates filter operators to use the new stream parameter facility.
-(iparam.h, iparam.c, zfdecode.c, zfdctc.c[deleted], zfdctd.c, zfdcte.c)
-
-Updates the implementation of parameter lists for the change from _dict to
-_collection. (iparam.c, iparam.h)
-
-Takes advantage of the filter stream procedures now available in stream.c.
-(zfilter.c)
-
-Adds get_hardware_params to one device procedure vector. (zupath.c)
-
-Adds .gethardwareparams to parallel .getdeviceparams. (zdevice.c)
-
-Updates the interpreter's parameter list machinery to match the change in
-gsparam.h. (iparam.h, iparam.c)
-
-Makes more writable statics const. (gs_init.ps, btoken.h, dstack.h, iref.h,
-opextern.h, icontext.c, idict.c, igc.c, igcref.c, iinit.c, imainarg.c,
-interp.c, iscanbin.c, iutil.c, zbseq.c, zcie.c, zcontrol.c, zdevcal.c,
-zdevice2.c, zdps.c, zdps1.c, zfont2.c, zgeneric.c, zgstate.c, ziodev.c,
-ziodev2.c, ztype.c)
-
-Removes an inappropriate reference to PROGRAM_NAME. (imainarg.c)
-
-Removes set/currentrenderalgorithm, since they are useless for the purpose
-for which they were intended. (zrop.c)
-
-Uncomments code for CIEBasedDEF[G] color spaces, even though these aren't
-fully implemented yet. (zcie.c)
-
-Reimplements StartJobPassword and SystemParamsPassword as no-access strings
-in systemdict. (gs_lev2.ps, iutil2.h, iutil2.c, ziodev2.c, zusparam.c)
-
-Splits off the context state record from icontext.h, so that places that
-only need access to state variables don't need to import the
-procedures. (icontext.h, icstate.h)
-
-Updates a client for the change in gs_malloc_limit. (imainarg.c)
-
-Updates clients for the change in the accessors for predefined color spaces.
-(zcolor1.c, zimage.c, zimage2.c)
-
-Renames the (few) debugging-related statics as I_SOMETHING. (igc.c)
-
-Splits off idstack.h (API for dictionary stacks) from dstack.h (API for the
-interpreter's dictionary stack), and idstack.c (dictionary stack
-implementation) from idict.c (dictionary implementation). We should have
-done this a long time ago! (dstack.h, idictdef.h, idstack.h, idict.c,
-idstack.c, iinit.c, ireclaim.c)
-
-Folds the cached currentfile pointer into the exec-stack structure.
-(estack.h, interp.c)
-
-Changes clients of gs_register_*_root to eliminate statically allocated
-roots. (iinit.c, iname.c, interp.c, zbseq.c, zcontext.c, zfile.c, zfont.c,
-zfont2.c, zgstate.c, ziodev.c)
-
-Adds a ref_free_stack procedure, and reformats the implementation of stacks.
-(istack.h, interp.c, istack.c)
-
-</pre><h3><a name="V5.23_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Pattern colors sometimes caused errors. (gs_pdf.ps)
- - A file ending with %%EOF without an EOL caused an error.
-(pdf_main.ps)
- - Fl wasn't recognized as an abbreviation for FlateDecode in in-line
-images. (pdf_draw.ps)
-
-Removes all code related to converting PDF to PS: it never worked reliably,
-and we now support this function with the pswrite device instead.
-(gs_pdf.ps =&gt; pdf_ops.ps, pdf*.ps)
-
-</pre><h3><a name="V5.23_Streams"></a>Streams</h3><pre>
-
-Updates tracing output to use the new dlprintf macros. (shc.h, scfd.c,
-scfe.c, shcgen.c)
-
-Provides the ability to read and set stream initial parameters to/from a
-parameter list. This is currently needed only by the PDF/PS writers and the
-filter operator, so it is implemented in modules separate from the stream
-implementation per se, but it might be useful for other clients too.
-(scommon.h, scfparam.c, sdcparam.c, sdct*.c, sdeparam.c, sddparam.c,
-gdevpsfp.c[deleted])
-
-Changes the ASCII85Encode filter so it never produces two %% at the
-beginning of a line, which could mislead document managers or spoolers.
-(sfilter2.c)
-
-Changes the ASCIIHexEncode filter so it always produces lines of exactly 64
-characters, except for the last one. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE, because this filter now needs a state structure, which it didn't
-before. (sstring.h, sstring.c)
-
-Moves filter_{read,write}_procs to stream.c, changing the names to
-s_filter_{read,write}_procs. (stream.h, stream.c)
-
-Makes creation of JPEG filters set default values for parameters that are
-outside the IJG library (Picky and Relax). (sdct.h, sjpegd.c, sjpege.c)
-
-</pre><h3><a name="V5.23_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - An error in dda_step_add could theoretically produce anomalies in
-images (although we don't think we've ever seen any). (gxdda.h)
- - A boundary error in dda_state_next/previous/advance could
-theoretically produce anomalies in images by allowing R = 0 (although we
-don't think we've ever seen any). (gxdda.h)
- - A rounding error in computing the size of portrait images could
-produce a spurious 1-pixel-wide line at the edge of the image. (gxifast.c)
- - When banding, images with singular or nearly singular CTM or
-ImageMatrix could confuse things badly enough to cause memory access errors.
-(gxclimag.c)
- - Patterns were broken. (bug introduced in 5.21) (gxclip2.c)
- - Because some image processing code retained a pointer to the
-clipping path, which was embedded inside the gs_state_contents object,
-garbage collection could cause crashes. (The only case where we know this
-happened was the bounding box device, since we think all other image
-enumerators preconstruct a clipping device, which does not retain a pointer
-to the clipping path, rather than constructing one from the path on the
-fly.) We fixed this by replacing gs_state_contents with individual objects:
-see below.
- - The *_.h files didn't have double-inclusion protection. (*_.h)
- - ImageType 2 images were broken by the change in begin_typed_image.
-(gximage2.c)
- - Color-setting operators that "substitute the nearest legal value"
-didn't substitute it in storage, only when using it. E.g., after
-gs_setgray(pgs, 2.0), gs_currentgray(pgs) returned 2.0 rather than 1.0.
-This bug has been there since release 1.0! (gxcspace.h, gscie.c, gscolor.c,
-gscolor1.c, gscolor2.c, gscdevn.c, gscsepr.c, gscpixel.c, gspcolor.c)
- - The RasterOp implementation for 2-bit, 4-bit, and non-gray 8-bit
-devices didn't work. (gdevmrop.c)
- - The test of whether to use copy_mono, fill_mask, or general
-imaging for rendering characters sometimes used copy_mono when not
-appropriate. (gxccache.c)
- - The default implementation of fill_mask produced solid rectangles,
-rather than properly masked output, if the logical operation didn't use its
-source operand. (gdevdbit.c)
- - Some more files needed double inclusion protection. (gscie.h)
- - Checking for interrupts before a return always returned 0 rather
-than the correct return code if there was no interrupt. (gsmisc.c)
- - Characters within Pattern PaintProcs sometimes didn't get drawn.
-(gxpcmap.c)
- - The CIE color space and CRD GC structure definitions were in the
-interpreter rather than the library. (gscie.h, gscie.c)
- - Numeric overflows when setting up the character cache caused
-errors rather than simply disabling caching for that character. (gschar.c)
- - FORCE_STRIP_HALFTONES was accidentally left set to 1 (in 5.10!),
-slowing down all uses of monobit halftones. (gshtscr.c)
-
-Implements mask clipping, which is needed for ImageType 3 images.
-(gxclip2.h, gxclipm.h, gxmclip.h, gxclip2.c, gxclipm.c, gxmclip.c)
-
-Finishes implementing ImageType 3 and 4 images. (gsimage.h, gsiparam.h,
-gsimage.c, gsiparm3.h, gximage3.c, gximage4.c)
-
-Starts to update the banding code to handle ImageType 3 and 4 images.
-(gxclist.h, gxiparam.h, gxclimag.c, gxclist.c, gxiinit.c)
-
-Make eprintf_program_name, lprintf_file_{and_line,only}, and new
-dlprintf_file_{and_line,only} always be procedures, rather than sometimes
-macros and sometimes procedures. (std.h, gdebug.h, gsmisc.c)
-
-Adds new dlprintf, dlputc, and dlputs macros that are like
-dprintf/dputc/dputs but also print the source file name and line number at
-the beginning of the line if the -Z/ debugging switch is set. The if_debug*
-macros now use dlprintf rather than dprintf; many other places also needed
-changing. Note that if any place was overlooked, no great harm is done:
-printout produced there simply won't include the source file and line number
-even if -Z/ is set. (std.h, gdebug.h, gsmisc.c; gdevbbox.c, gdevdbit.c,
-gdevdgbr.c, gdevmrop.c, gdevrun.c, gdevsvga.c, gdevx.c, gp_unifs.c,
-gsalloc.c, gschar.c, gscoord.c, gsfont.c, gshsb.c, gsht.c, gshtscr.c,
-gsmemory.c, gspath.c, gstype1.c, gstype2.c, gxacpath.c, gxccache.c,
-gxclimag.c, gxclist.c, gxclpath.c, gxclread.c, gxcpath.c, gxfill.c,
-gxidata.c, gxpath.c, gxpcopy.c, gxpflat.c, gxstroke.c)
-
-Simplifies storage management for graphics states by replacing
-gs_state_contents with individual objects. This slows down gsave and
-grestore a bit, but eliminates a class of potential obscure bugs.
-(gxpath.h, gzstate.h, gsstate.c, gxcpath.c, gxpath.c)
-
-Adds some more information to the deubgging printout for paths. (gxpath.c)
-
-Modifies the library test program to test ImageType 3 and 4 images.
-(ugcclib.mak, gslib.c)
-
-Extends the @-file parser to be more shell-like:
-
- - The sequence \ &lt;newline&gt; is ignored everywhere.
-
- - If a # appears as the first character on a line outside quotes,
- the entire line (including the terminating newline) is ignored.
-
-(gsargs.h, gsargs.c)
-
-Changes a stem hint tracing message so that it will print with the correct
-line number. (gxhint2.c)
-
-Moves the 'format' information for images to the image parameter structure.
-This entails a NON-BACKWARD-COMPATIBLE CHANGE in the begin_typed_image
-driver procedure (which was not guaranteed stable). (gsiparam.h,
-gxdevcli.h, gsimage.c, gxiinit.c)
-
-Adds an optional matrix argument to begin_typed_image, overriding the CTM in
-the imager state if present. This is needed to make masks and masked images
-line up precisely; this too is a NON-BACKWARD-COMPATIBLE CHANGE.
-(gxdevcli.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gdevx.c, gxclimag.c,
-gxiinit.c, gximage2.c, gximage3.c, gximage4.c)
-
-Adds a procedure for testing monotonicity of Functions over a given range.
-(gsfunc.h, gsfunc0.c, gsfunc3.c)
-
-Implements smooth shading with shfill. All documented ShadingTypes (1-7)
-are implemented. (gscspace.h, gsdsrc.h, gspath.h, gsshade.h, gxshade.h,
-gxshade4.h, gscolor.c, gscolor3.c, gsdsrc.c, gsfunc0.c, gsfunc3.c,
-gspath1.c, gsshade.c, gxshade.c, gxshade1.c, gxshade4.c, gxshade6.c)
-
-Changes the TrueType rasterizer to remove the assumption that the entire
-loca table is stored contiguously. This may not have any practical effect,
-since currently Type 42 fonts never split the loca table across segments.
-(gstype42.c)
-
-Adds a new interface for creating CIE CRDs that provides the parameters as
-separate arguments. (gscrd.h, gscrd.c)
-
-Starts to add the ability for a device to provide one or more default CIE
-CRDs as (read-only) device parameters. (Not ready for use yet.) (gscie.h,
-gscrdp.h, gscie.c, gscrdp.c)
-
-Adds a multiple-bit-per-pixel analogue of gs_makebitmappattern,
-gs_makepixmappattern, for use by another Aladdin project. (lib.mak,
-gsbitmap.h, gsptype1.h, gxbitmap.h, gspcolor.c)
-
-Changes the API of param_begin_write_dict so that the client can request the
-creation of an array rather than a dictionary. This is a
-NON-BACKWARD-COMPATIBLE CHANGE for implementors (of which there are only
-2.5), but not for clients. (gsparam.h, gsparam.c)
-
-Adds dynamically typed data to the parameter list interface, and removes the
-statically typed procedures. This isn't important for any standard facility
-yet. This too is a NON-BACKWARD-COMPATIBLE CHANGE for implementors of
-parameter lists. (gsparam.h, gsparams.h, gsparam.c, gsparams.c)
-
-Adds a new platform-specific API for thread creation and synchronization,
-and a memory manager "wrapper" that monitor-locks each call. No code
-normally included in this fileset uses any of this machinery as yet. (gp.h,
-gpsync.h, gxsync.h, gsmemlok.h, gsmemlok.c, gxsync.c)
-
-Splits off (PatternType 1) Pattern filling into a separate file, since the
-file was getting too big; refactors the filling code to use procedures
-rather than macros. (gxp1fill.h, gspcolor.c, gxp1fill.c)
-
-Makes a few more writable statics const. (gscie.h, gscscie.c, gsdll.c,
-gsmemory.c, gsmisc.c, gstype1.c, gstype2.c, gxclpath.c)
-
-Adds a compile-time option, SYSTEM_CONSTANTS_ARE_WRITABLE, to choose whether
-the system configuration values (buildtime, copyright, product, revision,
-revisiondate, serialnumber) are const or not. By default they are now
-const: THIS IS A NON-BACKWARD-COMPATIBLE CHANGE (affecting only one user).
-(lib.mak, openvms.mak, os2.mak, unix-end.mak, wctail.mak, winlib.mak,
-gscdefs.h, gscdef.c)
-
-Removes the dependence of std.h on PROGRAM_NAME. (std.h, gsdll.c, gsmisc.c,
-gscdef.c)
-
-Adds a new member of the color space type structure, the size of the
-smallest color space structure that will hold a color space of the given
-type. Also removes the obsolete _ds modifier. (gscspace.h, gxcspace.h,
-gscdevn.c, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscpixel.c,
-gscsepr.c, gspcolor.c, gxiinit.c)
-
-Removes set/currentrenderalgorithm, since they are useless for the purpose
-for which they were intended. (gsrop.h, gsropt.h, gdevmrop.c, gsrop.c)
-
-Splits off gscspace.c from gscolor.c, and gscscie.c from gscie.c. (gscie.c,
-gscolor.c, gscscie.c, gscspace.c)
-
-Adds constructor and accessor procedures for color spaces. (gscie.h,
-gscolor2.h, gscsepr.h, gscspace.h, gsptype1.h, gxcolor2.h, gxcspace.h,
-gscolor.c, gscolor2.c, gscscie.c, gscsepr.c, gscspace.c, gslib.c,
-gspcolor.c)
-
-Changes the CIEBased color space structures slightly to allow implementation
-of the CIEBasedDEF[G] color spaces. (gscie.h, gscie.c)
-
-Changes gs_malloc_limit from a static to a member of the allocator
-structure. This is a NON-BACKWARD-COMPATIBLE CHANGE for clients that
-declared this variable as an extern. (gsmalloc.h, gsmemory.c)
-
-In order to eliminate some statics, changes the static color space accessors
-(gs_color_space_Device*) so they require a const gx_imager_state as
-parameter, and changes their names as well to avoid confusion. This is a
-NON-BACKWARD-COMPATIBLE CHANGE not only in these accessors, but also in
-gs_image_t_init_{gray,color}. This is very unfortunate, but we see no way
-to avoid it. (gscspace.h, gsiparam.h, gxistate.h, gscolor1.c, gscscie.c,
-gscspace.c, gsimage.c, gspcolor.c, gsstate.c, gxclread.c, gxiinit.c,
-gximage2.c, gximage3.c, gximage4.c)
-
-Unifies the handling of const for the IODevice table. (gscdefs.h,
-gxiodev.h, gconf.c, gsiodev.c)
-
-Changes the register_root memory manager call so that a NULL as the pointer
-to the root structure asks the memory manager to allocate the root structure
-itself. This is a NON-BACKWARD-COMPATIBLE CHANGE for implementors of the
-memory manager API (of which there are only 3). (gsmemory.h, gsstruct.h,
-gsalloc.c, gsmemory.c)
-
-Adds a new GC structure type, suffix_add0_local, which is a more efficient
-form of suffix_add0 that can be used when the supertype is defined in the
-same file as the subtype. (gsbitmap.h, gscie.h, gsshade.h, gsstruct.h)
-
-Uses the new package replacement facility in the makefile to make RasterOp
-optional without tinkering with statics at runtime. (lib.mak, gxdevice.h,
-gxdevrop.h, gdevdbit.c, gdevdflt.c, gdevmrop.c, gdevnfwd.c, gsnorop.c,
-gsropc.c)
-
-Makes RasterOp really optional. (gdevmrop.h, gsrop.h, gdevmrop.c, gsrop.c,
-gxiinit.c)
-
-Rewrites bits_fill_rectangle to get rid of nearly all the macros.
-(gxbitops.h, gsbitops.c)
-
-Removes the obsolete _ds from gs_log_error. (gserror.h, gsmisc.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.22"></a>Version 5.22 (limited) (2/19/98)</h2>
-
-<p>
-This fileset has a few more bug fixes, a major overhaul of memory management
-for paths so that we can do view clipping in a reasonable way, and the
-ability to build executables in a different directory from the sources.
-
-<h3><a name="V5.22_Documentation"></a>Documentation</h3><pre>
-
-Designates gv as the preferred VMS and Unix previewer. (new-user.txt,
-use.txt)
-
-Adds a pointer to post-release documentation. (README)
-
-Notes that compilation with certain platforms and compilers must turn off
-optimization. (make.txt)
-
-Improves the documentation of the fit_fill and fit_copy macros.
-(gxdevice.h)
-
-</pre><h3><a name="V5.22_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The ccgs script for non-ANSI compilers was no longer flexible
-enough to handle all the possible command lines. (ccgs)
- - The pdfwrite device was missing on the DesqView/X platform.
-(dvx-gcc.mak)
- - The System V build procedure was broken. (unixtail.mak)
- - A Watcom makefile lacked parentheses around a macro name.
-(wctail.mak)
- - Some `make' programs drop trailing spaces in macro definitions: we
-didn't work around this. (os2.mak, unixhead.mak, winlib.mak)
-
-Adds support for WCVERSION=11.0 in the Watcom makefiles. (watc.mak,
-wccommon.mak)
-
-Adds a shell script for removing the 'includes' from makefiles, since a very
-few Unix systems don't support this capability. (catmake)
-
-Changes -dNOPROMPT to -dNOPAGEPROMPT, and adds -dNOPROMPT to suppress both
-the end-of-page prompt and the executive prompt. (use.txt, gs_init.ps)
-
-Adds definitions of {GL,PS}{SRC,GEN,OBJ}DIR to the top-level makefiles,
-removing these definitions from gs.mak. (*.mak, gs.mak)
-
-Adds explicit directories to more makefile rules. We can now do builds with
-source, GL/PS generated files, and GL/PS object files in 5 different
-directories! (*.mak, gsjconf.h)
-
-</pre><h3><a name="V5.22_Utilities"></a>Utilities</h3><pre>
-
-Adds a user-contributed utility that runs dvips followed by ps2pdf.
-(dvipdf, unixinst.mak)
-
-</pre><h3><a name="V5.22_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A pointer was incorrectly declared const. (gdevpdfm.c)
- - pdfwrite handled the Title element of ARTICLE pdfmarks
-incorrectly. (gdevpdfm.c)
- - pdfwrite inserted a Dest element in Link annotations even if an A
-(Action) key was present. (gdevpdfm.c)
- - pdfwrite didn't recognize and convert /Article actions in
-pdfmarks. (gdevpdfm.c)
-
-Replaces some open-coded accesses to path structure elements with macros, in
-anticipation of a representation change. (gdevpdfd.c)
-
-Moves pdfwrite further towards supporting Dict and ACSDict Distiller
-parameters. (gdevpsdf.h, gdevpsdp.c, gdevpsfp.c)
-
-Updates a few places for the change in the path API. (gdevpdfd.c,
-gdevvec.c)
-
-Adds recognition of named object references to the PDF writer, fixing many
-bugs in the named object code in the process. (gdevpdfx.h, gdevpdfm.c,
-gdevpdfo.c)
-
-Enhances pswrite to skip fills or strokes of completely empty paths, to
-recognize horizontal and vertical lines, and to abbreviate color settings
-based on 8-bit fractions. This requires a NON-BACKWARD-COMPATIBLE CHANGE in
-the "vector" device interface (which was, however, clearly identified as
-subject to change without notice). (gdevpsdf.h, gdevvec.h, gdevps.c,
-gdevpsdf.c, gdevpx.c, gdevvec.c)
-
-</pre><h3><a name="V5.22_Interpreter"></a>Interpreter</h3><pre>
-
-Updates a few places for the change in the path API. (zupath.c)
-
-Implements %statementedit properly. (iscan.h, iscan.c, ziodev.c)
-
-Changes the initialization code so that if DELAYBIND is set, .forcedef and
-.forceput remain accessible until .bindnow is called. (gs_init.ps)
-
-</pre><h3><a name="V5.22_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - An empty Differences array, which Acrobat Distiller 3.02 can emit,
-caused a rangecheck error. (pdf_font.ps)
-
-</pre><h3><a name="V5.22_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - The alternative LZWEncode filter didn't emit a reset code as the
-first code, and waited one code too long to emit a reset. (slzwce.c)
-
-Adds some double-inclusion protection. (scfx.h)
-
-</pre><h3><a name="V5.22_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There was an (incorrect) assignment to a read-only structure
-member. (gximage2.c)
- - A formal parameter list was incorrect if __PROTOTYPES__ wasn't
-defined. (gsroptab.c)
- - Some images didn't get clipped properly when banding. This was a
-fix for 5.03 that somehow didn't make it into 5.10. (gxclimag.c)
- - When banding, dashed lines could cause an invalid memory access.
-This was apparently caused by an error in a fix made in 5.04. (gsline.c)
- - Images with non-zero data_x could cause an invalid memory access.
-(gxiinit.c, gxidata.c)
- - The band list rasterizer didn't initialize the image structure
-properly, causing control to go to a random address. (gxclread.c)
-
-Replaces some open-coded accesses to path structure elements with macros, in
-anticipation of a representation change. (gxpath.h, gzpath.h, gspath1.c,
-gxfill.c, gxpath2.c, gxstroke.c)
-
-Changes the path and clipping path structures so that segments and clipping
-lists are stored in separate, reference-counted structures. This finally
-supports reliable freeing of path segments and clipping lists even in the
-presence of off-stack gstates, and the ability to store the original
-segments of a clipping path, both of which we have wanted for a long time.
-Unfortunately, it requires SIGNIFICANT NON-BACKWARD-COMPATIBLE CHANGES TO
-THE API FOR PATHS:
- Paths:
- - adds gx_path_alloc_contained;
- - gx_path_init =&gt; gx_path_init_local (or nothing);
- - gx_path_reset =&gt; gx_path_new;
- - removes gx_path_share and gx_path_release;
- - gx_path_assign =&gt; gx_path_assign_{preserve,release};
- - renames gx_path_expand_dashes =&gt; gx_path_add_dash_expansion,
- gx_path_flatten[_accurate] =&gt; gx_path_add_flattened[_accurate],
- gx_path_monotonize =&gt; gx_path_add_monotonized;
- - removes the init Boolean from gx_path_copy[_reversed].
- Clipping paths:
- - gx_cpath_init =&gt; gx_cpath_init_local (or nothing);
- - removes gx_cpath_share and gx_cpath_release_segments;
- - gx_cpath_path =&gt; gx_cpath_to_path;
- - removes the mem argument from gx_cpath_from_rectangle.
-We believe that we either renamed or changed the argument list of every API
-function that was affected in a non-backward-compatible way, so incompatible
-clients will get either compilation or linking errors. (gxpath.h,
-gzcpath.h, gzpath.h, gschar.c, gsdps.c, gsdps1.c, gspaint.c, gspath.c,
-gspath1.c, gsstate.c, gxacpath.c, gxccache.c, gxclpath.c, gxclread.c,
-gxcpath.c, gxfill.c, gxpath.c, gxpath2.c, gxpcmap.c, gxpcopy.c, gxpdash.c,
-gxstroke.c)
-
-Reimplements view clipping bookkeeping to use reference-counted paths.
-(gzstate.h, gsdps.c, gsstate.c)
-
-Adds const in a couple more places. (gxpath2.c)
-
-If -Z? is enabled, makes the reference counting machinery check for
-reference counts going negative. (gsrefct.h)
-
-Adds the first bit of code for rendering smooth shadings. The code is
-nowhere near usable. (gsshade.h, gxshade.h, gsshade.c, gxshade.c)
-
-Adds BEGIN ... END macros for creating compound statements that are
-syntactically equivalent to single statements. (stdpre.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.21"></a>Version 5.21 (limited) (1/19/98)</h2>
-
-<p>
-This is primarily a bug fix fileset for 5.20, with a little new
-functionality (pdfwrite image downsampling and more complete pdfmark
-processing).
-
-<h3><a name="V5.21_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The build procedures still referred to tar_cat. (make.txt)
-
-Documents some user-developed patches for using certain kinds of Japanese
-fonts with Ghostscript. (new-user.txt)
-
-Notes that on Solaris 2.x systems, it is probably not a good idea to use
-Sun's fonts. (use.txt)
-
-Documents -dSTRICT. (use.txt)
-
-</pre><h3><a name="V5.21_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The definitions of MAKEFILE in several makefiles was incorrect.
-(dvx-gcc.mak, unix-cc.mak, unixansi.mak)
- - The build rules for the gp_*.$(OBJ) files lacked a directory name,
-confusing most 'make' programs. (*.mak)
- - geninit didn't work, because the syntax of psfile_() entries in
-gconfig.h had changed. (geninit.c)
- - Some files were created and then deleted during building,
-preventing [gnu]make -j from working. (lib.mak, int.mak)
-
-Adds an explicit directory name to more files in the makefiles. (jpeg.mak,
-lib.mak) Added in this fileset:
- .$(OBJ): jpeg.mak, {dvx-tail,msvclib,openvms,os2,ugcclib,unixtail,
- watc,watclib,winint,winlib}.mak
- .dev: jpeg.mak
-
-Removes the default suppression of 'const' with gcc. You must now compile
-with gcc 2.7.2.1 or newer, or patch the makefile. (ugcclib.mak,
-unix-gcc.mak)
-
-Removes -DPNG_USE_CONST from the command line for compiling libpng, since
-this has never actually worked, and is handled in a different way starting
-with libpng 0.97. (gs.mak)
-
-Adds a -dSTRICT switch that disables some Ghostscript extensions, to be more
-helpful in debugging applications that produce output for Adobe and other
-RIPs. (gs_init.ps, gs_statd.ps)
-
-</pre><h3><a name="V5.21_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Many occurrences of 'const' were missing or incorrect.
-(gdevpdfd.c, gdevpdfi.c, gdevpdfo.c, gdevpdft.c)
- - pdfmark processing was broken by changes introduced in 5.20.
-(gs_pdfwr.ps)
- - pdfwrite didn't convert /Color =&gt; /C or /Title =&gt; /T in ANN and
-LNK pdfmarks. (gdevpdfm.c)
- - pdfwrite didn't convert /Dest =&gt; /D or /File =&gt; /F in the Action
-dictionary of ANN and LNK pdfmarks. (gdevpdfm.c)
- - pdfwrite didn't convert a /Launch annotation to an Action with a
-dictionary. (gdevpdfm.c)
- - pdfwrite didn't convert \n in annotation Contents strings to \r.
-(gdevpdfm.c)
- - jstrm.state was used before being set. (gdevjpeg.c)
- - The SVGA devices were not identified as page devices.
-(gdevsvga.c)
- - The SPARCPrinter driver returned the address of a local buffer
-containing an error string. (gdevsppr.c)
- - pdfwrite no longer compressed character bitmaps. (bug introduced
-in 5.20) (gdevpdfi.c)
- - pdfwrite didn't recognize _objdef syntax everywhere. (gdevpdfx.h,
-gdevpdfm.c, gdevpdfo.c)
- - pdfwrite didn't recognize and convert Launch and GoToR OUT
-pdfmarks. (gdevpdfm.c)
- - pdfwrite used a /Dest key rather than a /P key for the page number
-in articles. (gdevpdfx.h, gdevpdfm.c)
- - pdfwrite didn't save and write the /I dictionary for articles.
-(gdevpdfx.h, gsstruct.h, gdevpdf.c, gdevpdfm.c)
-
-Implements a parameter list "reader" that prints the parameter values on a
-stream in PS/PDF syntax. (We need something like this for printing filter
-parameters.) (gdevpsdf.h, gdevpdf.c, gdevpsdf.c)
-
-Implements a write stream that just keeps track of the position. We use
-this to determine how much space to allocate for data we're going to save.
-(gdevpsdf.h, gdevpsdf.c)
-
-Implements image downsampling, but not anti-aliasing, for the PDF writer.
-(gdevpsdf.h, gdevpsds.h, gdevpsdi.c, gdevpsds.c)
-
-</pre><h3><a name="V5.21_Fonts"></a>Fonts</h3><pre>
-
-Adds Frutiger to the built-in list of sans-serif fonts. (gs_fonts.ps)
-
-</pre><h3><a name="V5.21_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Many occurrences of 'const' were missing. (gsargs.c, ialloc.c,
-zdpnext.c, zfunc3.c, zshade.c)
- - Some byte * =&gt; char * casts were missing. (imainarg.c)
- - The stack limit check in .eqproc was wrong. (zmisc3.c)
- - The paper sizes a4small and lettersmall weren't implemented.
-(gs_statd.ps)
- - setuserparams signalled errors on 64-bit systems. (zusparam.c)
-
-Changes .image2 to track the change in the library. (zdps.c)
-
-Some improvements were made to the (still not entirely functional) Type 32
-font code. (zchar32.c)
-
-Updates some filters to use the new procedure for transmitting collections
-of parameters. (zfdecode.c)
-
-Adds ISO paper sizes C0 through C6. (gs_statd.ps)
-
-Trims down the list of #includes in iconf.c. (iconf.c)
-
-</pre><h3><a name="V5.21_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - CalGray color spaces with a Gamma value caused an error.
-(gs_pdf.ps)
-
-</pre><h3><a name="V5.21_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - There was a 'const' conflict in the code for handling ImageType 2
-images. Fixing this properly required a small change in the ImageType 2
-structure. (gsiparm2.h, gximage2.c)
- - Many occurrences of 'const' were missing. (gsfunc3.h, gstrap.h,
-gxgetbit.h, gdevdgbr.c, gstrap.c, gxclist.c, gxclread.c)
- - A couple of enumerations had trailing commas. (gsshade.h,
-gxbitfmt.h)
- - The gcst parameter was omitted in the non-ANSI version of the
-ENUM_PTRS_BEGIN_PROC macro. (gsstruct.h)
- - gcc missed a private / non-private discrepancy. (gxpcmap.c)
- - An uninitialized variable was used by mistake
-(copy_params.options). (gdevdgbr.c)
- - The last statement of a procedure was unreachable. (gxclpath.c)
- - If a Type 2 font was transformed so that hints were not being
-used, hintmask and cntrmask didn't compute the number of following bytes
-correctly. (gxtype1.h, gstype2.c, gxtype1.c)
-
-Factors out some common code in gxclip2.c into macros. (gxclip2.c)
-
-Starts to reimplement RasterOp using the compositing framework. (gsropc.h,
-gxropc.h, gsropc.c) ****** IN PROGRESS ******
-
-Adds an equality-testing procedure for device colors. This is used both for
-color images (which previously did this adhoc) and for RasterOp compositing.
-(gxdcolor.h, gximage.h, gxcht.c, gxdcolor.c, gxht.c, gspcolor.c)
-
-Implements hintmask (but not cntrmask) for Type 2 CharString fonts. I don't
-know any reasonable way to test whether it's working, though. (gxtype1.h,
-gstype2.c, gxhint2.c, gxhint3.c, gxtype1.c)
-
-Adds a more convenient interface for reading and setting sets of parameters.
-(gsparam.h, gsparam.c)
-
-Pulls the decision as to whether to halftone for a given device out into a
-macro. Eventually we will do something more sophisticated about this.
-(gxdevice.h, gxclist.c, gxcmap.c)
-
-Breaks apart a macro in anticipation of future usage. (gsrefct.h)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.20"></a>Version 5.20 (limited) (1/8/98)</h2>
-
-<p>
-This fileset provides enough of the Display PostScript capabilities to start
-running real programs. It also adds the first few LanguageLevel 3 features
-(none of which have been tested) and reorganizes the makefile structure
-somewhat. There are many internal changes since 5.10, some of them still in
-progress, so we expect more problems than usual.
-
-<p>
-This fileset is being provided for testing in two different configurations:
-a full release, and a DPS-only package. The latter will be released with
-the GPL when it is reasonably complete and reliable.
-
-<h3><a name="V5.20_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - TrueType fonts on GS_FONTPATH weren't recognized. (use.txt)
- - The argument list for gstate was incorrect. (zdevice2.c)
- - There were a couple of minor errors in the e-stack documentation.
-(estack.h)
- - fonts.txt had several errors regarding compiled fonts.
-(fonts.txt)
- - An out-of-date Aladdin address still appeared in documentation.
-(new-user.txt)
-
-Updates make.txt to reflect the changes in makefile structure. (make.txt)
-
-Notes the addition of -Z' and -Z". (use.txt)
-
-Documents the new begin_typed_image, get_bits_rectangle,
-map_color_rgb_alpha, and create_compositor driver procedures. (drivers.txt)
-
-Moves documentation for all releases before 5.0 to history4.txt. (NEWS,
-history4.txt)
-
-Documents the addition of SHARE_JPEGLIB. (make.txt)
-
-Removes the author's name and e-mail address from the ps2ascii man page, at
-his request. (ps2ascii.1)
-
-Documents the addition of (some) image compression facilities to ps2pdf /
-pdfwrite. (ps2pdf.txt)
-
-Documents the new -dNOINTERPOLATE and -F&lt;n&gt; switches. (use.txt)
-
-Adds documentation for a user-contributed port to the SMS/QDOS operating
-system. (new-user.txt)
-
-Removes documentation for BGI, which is no longer supported. (use.txt)
-
-Documents the use of the Registry and the GS_DLL environment variable on
-Windows platforms. (install.txt)
-
-</pre><h3><a name="V5.20_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The OpenVMS makefile referred to EXTEND_NAME rather than
-EXTEND_NAMES. (openvms.mak)
- - A typo caused a spurious error message from lpr. (unix-lpr.sh)
- - The PDF writer didn't include a needed dependency on zlib
-compression. (devs.mak)
- - The rule for the OS/2 printer device was wrong. (devs.mak)
- - The -migrate switch was incorrectly removed from the command line
-for pre-4.0 Digital Unix. (make.txt)
- - The -r switch was ignored with -dNODISPLAY. (gs_init.ps)
-
-Adds targets for Type 32 fonts (type32.dev) and PostScript LanguageLevel 3
-(psl3.dev, psl3core.dev, psl3read.dev). (gs.mak, int.mak, lib.mak)
-
-Changes the documented feature names for PostScript Level 1 and 2
-interpreters from level1/2 to psl1/2. The old names are still recognized
-for backward compatibility. (gs.mak, int.mak, *.mak)
-
-Removes support for building with DCL under VMS. Building under VMS now
-requires some version of make, preferably GNU make. THIS IS A
-NON-BACKWARD-COMPATIBLE CHANGE, but there was plenty of lead time for users
-(it was announced in 5.01, 6/22/97). (vms*.mak[deleted])
-
-Starts to add an explicit directory name to every file in the makefiles, to
-allow building multiple object versions (e.g., debug, profile, product) or
-cross-building for multiple platforms in separate directories without any
-makefile editing. (*.mak) Done so far:
-(done) _h= devs.mak gs.mak int.mak jpeg.mak lib.mak
-(done) .h devs.mak gs.mak int.mak lib.mak zlib.mak
- openvms.mak os2.mak ugcclib.mak unix-end.mak
- unixtail.mak wctail.mak winint.mak winlib.mak
- .$(OBJ): devs.mak int.mak (except ccfonts)
- lib.mak (except special compilations)
- libpng.mak zlib.mak
- .dev: libpng.mak zlib.mak
-
-Gets rid of tar_cat. Building on Unix platforms now requires that make
-recognize the include directive. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE:
-rather than editing the *head.mak files, users should now edit the unix*.mak
-or dvx*.mak files (which they previously were instructed NOT to do). Aside
-from this, we think the change won't actually affect anyone, since most Unix
-make programs (include GNU make) do recognize this directive. (*.mak,
-ansihead.mak[deleted], cc-head.mak[deleted], gcc-head.mak[deleted],
-dgc-head.mak[deleted], tar_*cat[deleted], dvx-gcc.mak, unixansi.mak,
-unix-cc.mak, unix-gcc.mak)
-
-Includes the basic context machinery in every PostScript interpreter
-configuration. (int.mak)
-
-Removes the division between 'low-level' and 'high-level' band list
-facilities: we once thought we might make the latter optional, but this no
-longer seems useful. (lib.mak)
-
-Introduces a new category of devices, identified to genconf as -dev2 and
-created with SETDEV2 and SETPDEV2. For the moment, these are the same as
-existing devices except that their static instance is const, but we plan to
-make them quite different in the future: don't attempt to create any.
-(devs.mak, gs.mak, genconf.c, gconf.c)
-
-Removes the obsolete -includef resource from genconf. (genconf.c)
-
-Removes support for IJG JPEG library v5* from the makefile, since we no
-longer support these library versions. (jpeg.mak, lib.mak,
-gsjerror.h[deleted], gsjpglib.h[deleted], gsjerror.c[deleted])
-
-Makes the JPEG library use floating point if it is fast. (gsjmorec.h)
-
-Adds a SHARE_JPEG option to the makefiles, with the necessary warning about
-possible incompatibilities. (*.mak)
-
-Replaces the CCC macro in the makefiles with CC_, the various CC* macros
-with CC_* (except for CCA2K and CCAUX), and the O macro with O_; removes the
-'begin' target and the CCBEGIN macro. THIS IS A NON-BACKWARD-COMPATIBLE
-CHANGE, required for the new arrangement of files into directories. (*.mak)
-
-Replaces all occurrences of -Idir1 -Idir2 ... -Idirn in platform-generic
-makefiles with $(I_)dir1 $(II)dir2 ... $(_I)dirn, and defines these macros
-in platform-specific makefiles, in order to accommodate OpenVMS command
-syntax. (*.mak)
-
-Adds -fno-common to the default gcc compilation and linking switches, to
-improve checking for doubly-defined externs. (unix-gcc.mak)
-
-Adds a -dNOINTERPOLATE switch to turn off image interpolation. (gs_init.ps)
-
-Adds a -F&lt;file&gt; switch that runs files through the run_string interface with
-an 1-byte buffer. (imainarg.c)
-
-Allows specifying the name of the gconfig.h file with -DGCONFIG_H= in the
-compilation command line, to support certain multi-configuration build
-procedures. (int.mak, lib.mak, gconf.h, gconf.c, gscdef.c, iconf.c)
-
-Splits off the installation targets from unix-end.mak. (unix-end.mak,
-unixinst.mak, unix*.mak, ugcclib.mak)
-
-</pre><h3><a name="V5.20_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - A case label was misplaced. (No effect on normal operation.)
-(genconf.c)
- - ps2ascii had some Encoding-related problems, and a serious bug
-causing the stack to grow indefinitely. (ps2ascii.ps)
-
-Adds a new font2pcl.ps utility, for converting outline fonts to bitmapped
-PCL fonts. (font2pcl.ps)
-
-At the request of a user, modifies ansi2knr to read stdin if no input file
-is supplied, and to accept an optional --filename switch to set the file
-name in the #line directive. Also makes ansi2knr write the usage message on
-stderr rather than stdout. (ansi2knr.c)
-
-Adds a user-contributed Perl script that fixes compatibility problems
-between MS Word output and Ghostview 1.5. (fixmswrd.pl)
-
-Adds a new test file that produces some pretty color output. (vasarely.ps,
-unix-end.mak)
-
-Adds a user-contributed utility for producing AFM files from PFA/PFB and
-optionally PFM files. (pf2afm.bat, pf2afm.ps)
-
-</pre><h3><a name="V5.20_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Some 'static' declarations were missing (gcc lossage). (gdevht.c,
-gdevmgr.c, gdevpcfb.c, gdevrrgb.c)
- - Some 'char *' should have been 'unsigned char *'. (gdevccr.c)
- - The PDF writer represented non-rectangular clipping paths in a way
-that could cause Acrobat to produce incorrect output. (The fix relies on
-the new clipping path enumeration facility.) (gdevpdfd.c)
- - get_params for the X device didn't read the WINDOWID and
-.IsPageDevice parameters. (gdevx.c)
- - A superseded driver was still in the distribution.
-(gdevnp6.c[deleted])
- - The PDF writer's default parameters didn't quite match the default
-parameters of Adobe Acrobat(TM). (gdevpsdf.h)
- - A cast from const byte * to const char * was omitted.
-(gdevpdft.c)
- - x_map_color_rgb returned incorrect values for values in the dither
-cube/ramp. (gdevx.c)
-
-Adds user-contributed drivers for:
- - the Brother HL 720/730 laser printer (gdevhl7x.c);
- - the Cirrus Logic CL-GD54xx SuperVGA chipset (in gdevsvga.c).
-
-Adds stubs or dummy implementations for the new Acrobat Distiller 3.0
-pdfmark features (BP/EP/SP, _objdef/OBJ, PUT/PUTINTERVAL/CLOSE). Features
-not yet implemented:
- - Predefining Catalog and DocInfo.
- - Writing out added Catalog and Info keys.
- - Special handling for Page#, Prev/This/NextPage.
- - Writing out added keys in Page objects.
- - Defining objects for ANN, DEST, LNK, PS.
- - Writing out added keys for ANN, BP, DEST, LNK, PS.
- - Adding information to streams (PUT, CLOSE).
- - Writing out streams.
-(gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c, gdevpdfi.c, gdevpdfm.c, gdevpdfo.c)
-
-Removes the DoThumbnails distiller parameter, which Acrobat Distiller 3.0 no
-longer supports. (gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c, gdevpdfp.c)
-
-Starts to eliminate or segregate writable globals that point to
-heap-allocated data, as in the interpreter (see below); specifically, makes
-all device and xfont procedure structures const in devices that Aladdin
-maintains. Note that this involves a NON-BACKWARD-COMPATIBLE CHANGE in the
-get_xfont_procs device procedure (to add const to the return type); this
-only affects the 3 implementations of xfonts. (gdevprn.h, gdevdjet.c,
-gdevm1.c, gdevpccm.c, gdevpdf.c, gdevpdfm.c, gdevpdft.c, gdevps.c,
-gdevpsdf.c, gdevpx.c; gxdevice.h, gxxfont.h, gdevbgi.c, gdevbit.c,
-gdevbmp.c, gdevdflt.c, gdevdjet.c, gdevlj56.c, gdevmiff.c, gdevmsxf.c,
-gdevnfwd.c, gdevpbm.c, gdevpcfb.c, gdevpdf.c, gdevpng.c, gdevprn.c,
-gdevps.c, gdevpx.c, gdevs3ga.c, gdevsvga.c, gdevtfax.c, gdevtfnx.c,
-gdevvglb.c, gdevwddb.c, gdevwdib.c, gdevwpr2.c, gdevwprn.c, gdevx.c,
-gdevxalt.c, gdevxxf.c, gxccman.c)
-
-Makes the statically allocated device templates const in some devices, using
-the new -dev2 device resource type. NOTE: the meaning of -dev2 is subject
-to change without notice in future releases. (gdevdjet.c, gdevpdf.c,
-gdevps.c, gdevpx.c, gdevvglb.c)
-
-Adds a new begin_typed_image driver procedure which is called for all types
-of images, not just ImageType 1. The default implementation calls
-begin_image if the ImageType is 1. (gdevmem.h, gdevprn.h, gsiparam.h,
-gxdevice.h, gdevbbox.c, gdevdflt.c, gdevht.c, gdevmrop.c, gdevnfwd.c,
-gxacpath.c, gxclimag.c, gxclip2.c, gxclist.c, gxcpath.c, gxpcmap.c)
-
-Adds a new get_bits_rectangle driver procedure which allows reading back an
-arbitrary rectangle of bits from the device, not just a single full scan
-line. The default implementation calls get_bits, being careful to avoid a
-recursion loop; the default implementation of get_bits calls
-get_bits_rectangle similarly. This procedure has a lot of flexibility,
-almost all of which is ultimately provided by the implementation in memory
-devices. (gdevmem.h, gsbitops.h, gxcindex.h, gxdevice.h, gdevbbox.c,
-gdevdflt.c, gdevdgbr.c, gdevht.c, gdevm*.c, gdevmem.c, gdevmpla.c,
-gdevnfwd.c, gxbitfmt.h, gxclip2.c, gxclist.c, gxclread.c, gxcpath.c,
-gxgetbit.h)
-
-Removes support for the BGI (Borland Graphics Interface) device, since we no
-longer support the Borland compilers for MS-DOS. (devs.mak, dvx-head.mak,
-openvms.mak, unixhead.mak, gdevbgi.c[deleted])
-
-Speeds up x_map_color_rgb by avoiding server access in most cases.
-(gdevx.h, gdevx.c, gdevxini.c)
-
-Implements get_bits_rectangle in the X driver in place of get_bits.
-(gdevx.c, gdevxalt.c)
-
-Implements begin_typed_image for ImageType 2 images in the X driver, as an
-example of how a driver can implement this function itself. (gdevx.c)
-
-Adds a call on the DCTEncode set_defaults procedure, which is now required
-(see under Streams below). (gdevjpeg.c)
-
-Implements a substantial part of the Distiller image compression machinery.
-See ps2pdf.txt for details. (gdevpdfx.h, gdevpsdf.h, gdevpdf.c, gdevpdfi.c,
-gdevps.c, gdevpsdf.c, gdevpsdi.c, gdevpsdp.c, gdevpsds.c)
-
-Adds a map_color_rgb_alpha driver procedure, complementing
-map_rgb_alpha_color. (gdevmem.h, gdevprn.h, gxdevice.h,
-gdevbbox.c, gdevdflt.c, gdevht.c, gdevmrop.c, gdevnfwd.c, gdevprn.c,
-gxclip2.c, gxclist.c, gxcmap.c, gxcpath.c)
-
-Splits off gxdevcli.h (client definitions) from gxdevice.h, which had gotten
-very large. This doesn't do much good yet in terms of reducing dependencies
-and compilation time, because every client still includes gxdevice.h, but
-it's the raw material for doing so in the future. (gxdevcli.h, gxdevice.h)
-
-Adds alpha tracking to the command list. (gxclpath.h, gxclimag.c,
-gxclpath.c, gxclread.c)
-
-Changes the 'show' pseudo-parameter for the PDF writer so that it takes
-multiple additional parameters instead of a dictionary. This greatly
-reduces garbage collection overhead. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c,
-gdevpdft.c)
-
-Adds a create_compositor driver call for handling compositing. (gdevbbox.h,
-gdevmem.h, gdevprn.h, gsdevice.h, gxdevcli.h, gxdevice.h, gdevbbox.c,
-gdevdflt.c, gdevht.c, gdevnfwd.c, gsdevice.c, gxclimag.c, gxclip2.c,
-gxclist.c, gxcpath.c, gxpcmap.c)
-
-Updates drivers to account for the more careful handling of file name
-length. (gdevpdfx.h, gdevwprn.c)
-
-Adds a user-contributed enhancement to make the Epson dot matrix driver work
-at 180x60dpi and 240x180dpi for 24 pin printers. (gdevepsn.c)
-
-</pre><h3><a name="V5.20_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The Windows platform didn't put stdin into binary mode.
-(dwmainc.cpp)
-
-Removes all remaining uses of gs_malloc and gs_free in platform-specific
-code. (gp_dosfb.c, gp_vms.c)
-
-Adds a platform-specific gp_getenv call, to allow the Windows implementation
-to consult the Registry. (gp.h, gpgetenv.h, gp_getnv.c, gp_wgetv.c, *.mak,
-gp_win32.c)
-
-Separates out the declaration of popen and pclose, which may be declared
-correctly in stdio.h, incorrectly in stdio.h, or not at all, depending on
-the platform. (lib.mak, unixtail.mak, pipe_.h, gdevpipe.c, gp_os2.c,
-gp_os9.c, gp_unix.c)
-
-Tweaks the platform-workaround header file conditionals a little more.
-(malloc_.h, memory_.h).
-
-Makes the Windows DLL check the GS_DLL environment/registry variable for the
-location of the DLL. (dwdll.cpp)
-
-Defines the maximum length for the file name returned by
-gp_open_scratch_file, and possibly by gp_open_printer. (gp.h, gp_*.c)
-
-</pre><h3><a name="V5.20_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - A 'flush' was missing from a debugging message. (gs_fonts.ps)
- - Type 2 fonts didn't always have a PaintType entry. (gs_cff.ps)
- - CIDFontType 0 fonts were broken, probably because of a recently
-added validity test in the C code. (gs_cidfn.ps)
- - Font types without an Encoding caused an error (in .completefont).
-(gs_fonts.ps)
- - composefont required the elements of the font array to be actual
-fonts, rather than allowing font names. (gs_cidfn.ps)
- - composefont required that all elements of the font array have
-CIDSystemInfo dictionaries. (Adobe has said that their interpreters don't
-check for this in some cases, but it's a bug. Unfortunately, by now it's an
-established one.) (zfcmap.c)
-
-Adds .dir to the list of file suffixes known not to be fonts. (gs_fonts.ps)
-
-</pre><h3><a name="V5.20_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A Type 2 font that provided fewer CharStrings than charset
-elements caused an error. (gs_cff.ps)
- - If a context was joined before it terminated, its stack was never
-copied to the joining context. (zcontext.c)
- - Freeing a context didn't free most of its substructures.
-(icontext.h, istack.h, icontext.c, interp.c, istack.c, zcontext.c)
- - save and restore didn't save and restore the user parameters.
-(gs_lev2.ps, zvmem2.c)
- - %stdin and %stdout weren't defined per-context. (files.h,
-icontext.h, icontext.c, ziodev.c)
- - Switching contexts didn't clean up the stacks. (The current way
-we do this is very inefficient: we should use a special null for filling the
-untouched area, so we can use it to detect the high water mark.)
-(icontext.c)
- - A cast from const to non-const was missing. (zdpnext.c)
- - User parameters weren't managed per-context. (The current way we
-do this is inefficient.) (gs_dps.ps, gs_init.ps, gs_lev2.ps, isave.h,
-icontext.c, iinit.c, isave.c, zcontext.c, zusparam.c)
- - Some operand checks weren't wrapped in do { ... } while(0),
-possibly leading to incorrect parsing of 'if's. (opcheck.h)
- - If a context terminated with unmatched saves, the restores weren't
-executed. (isave.h, isave.c, zcontext.c)
- - If two or more contexts shared the same global VM, the outermost
-restore (which in this case saves only local VM) checked for invalidrestore
-incorrectly. (isave.c)
- - resourceforall didn't remove its own temporary values from the
-operand stack when calling the procedure. (gs_res.ps)
- - resourceforall returned local instances even when currentglobal
-was true. (gs_res.ps)
- - If a context had unmatched saves, other contexts sharing the same
-local VM weren't blocked from running. (zcontext.c)
- - The NeXT compositing operations (Copy, etc.) weren't defined in
-systemdict. (gs_dpnxt.ps)
- - In the case of a stack overflow, some garbage could get left on
-the stack. (istack.c)
- - Stack overflow was reported prematurely -- typically when the
-stack depth had reached half the specified limit. (istack.c)
- - Freed ref arrays weren't filled with nulls, which could confuse
-the garbage collector later. (ialloc.c)
- - Certain stack overflow conditions could put a stack into an
-anomalous state that confused the garbage collector. (istack.c)
- - The maximum stack size could not be set to a value smaller than
-the current allocated space, but the minimum value should be the number of
-entries actually in use. (istack.c)
- - If .buildfont* had to add any elements to the font dictionary, a
-temporary pointer to the Encoding, FDepVector, or sfnts could become
-invalid, causing crashes or confusion. (zfont0.c, zfont2.c, zfont42.c)
-
-Changes exit, stop, and .stop so that if there is no matching dynamically
-enclosing context (loop or stopped), the effect is a quit, like the Adobe
-interpreters, and not an invalidexit. (zcontrol.c)
-
-Adds support for ImageTypes other than 1. (gs_init.ps, gs_lev2.ps,
-gs_res.ps, zimage2.c)
-
-Adds support for LanguageLevel 3 features:
- - Idiom recognition in 'bind'. (gs_init.ps, gs_dps.ps, gs_lev2.ps,
-gs_ll3.ps, zmisc3.c)
- - HalftoneTypes 6, 10, and 16. (gs_ll3.ps)
- - FunctionType resource category. (gs_ll3.ps)
- - FunctionType 2 and 3 Functions. (zfunc3.c)
- - PatternType 2 and smooth shading (structures and API only, no
-algorithms). (gs_init.ps, gs_ll3.ps, gs_res.ps, zshade.c)
- - In-RIP trapping (structures and API only, no algorithms).
-(gs_ll3.ps, ztrap.c)
- - ImageType 3 and 4 (masked images) (structures and parsing only, no
-algorithms). (gs_ll3.ps, gs_res.ps, iimage2.h, zimage.c, zimage2.c,
-zimage3.c)
- - DevicePixel color space. (gs_lev2.ps, zcolor2.c, zcspixel.c)
- - DeviceN color space. (gs_lev2.ps, igstate.h, zcsdevn.c)
-
-Adds support for Type 32 fonts. (gs_cidfn.ps, gs_init.ps, gs_typ32.ps,
-zchar32.c, zfont32.c)
-
-Adds debugging printout to the CFF loader. (gs_cff.ps)
-
-Removes support for _ds pointers referencing the stacks, since we no longer
-support 16-bit implementations. (iref.h, istack.h, interp.c, ireclaim.c,
-istack.c)
-
-Removes all #ifdef DPNEXT conditionalization. (We had intended to use this
-to delimit blocks of code to be released with the GPL, but we're now
-planning to release a much larger number of files.) (igstate.h, interp.h,
-istruct.h, interp.c, zgstate.c)
-
-Allows user parameters to be implemented partly in PostScript code, since
-this is required for some LanguageLevel 3 features (currently only
-IdiomRecognition). (gs_lev2.ps)
-
-Removes most of the references to a global process scheduler. Completing
-this will require passing an interpreter state structure to all operators in
-place of the operand stack pointer, which we aren't prepared to contemplate
-yet. (zcontext.c)
-
-Adds tracing for context operations, -Z' and -Z". (zcontext.c)
-
-Changes def so that it doesn't have a special exception for storing
-references to local objects into systemdict or its subsidiary dictionaries
-during initialization: such stores now must use .forceput (or .forcedef,
-defined in gs_init.ps using .forceput); changes .forceput to allow storing a
-local reference into any global dictionary, not only systemdict, if the save
-level is 0. (gs_dps1.ps, gs_init.ps, gs_lev2.ps, gs_pdfwr.ps, gs_res.ps,
-gs_statd.ps, zdict.c)
-
-Moves all of the initialization of internaldict to PostScript code.
-(gs_init.ps, iinit.c, zcontrol.c)
-
-Moves the JobName user parameter from C to PostScript code. (gs_lev2.ps,
-zusparam.c)
-
-Adds to every dictionary a pointer to the allocator that created it. This
-allows us to create and grow dictionaries without having to reference any
-global variables. (idict.h, idict.c, iinit.c)
-
-Implements the localfork operator, which creates contexts with private local
-VM. (gs_dps.ps, gs_init.ps, dstack.h, gsalloc.h, ialloc.c, icontext.c,
-iinit.c, interp.c, zcontext.c)
-
-Systematizes reliable access to variables in systemdict and userdict.
-(gs_dps1.ps, gs_dps2.ps, gs_fonts.ps, gs_init.ps, gs_lev2.ps, gs_statd.ps,
-gs_type1.ps)
-
-Starts to eliminate or segregate writable globals that point to
-heap-allocated data. (Writable globals containing procedures,
-run-time-settable switches, pointers to static data, or non-pointer values
-that are initialized once and idempotently are OK.) (iconf.c, iinit.c,
-imain.c, imainarg.c, interp.c, zfont1.c, zht2.c, ziodev.c, ztype.c,
-zupath.c, zusparam.c)
-
-Adds support for ImageType 2 (device source) images. (gs_dps.ps, zdps.c)
-
-Adds begin_typed_image to internal device procedure vectors. (zupath.c)
-
-Increases the maximum stack sizes to match the Adobe implementation more
-closely. (gs_init.ps)
-
-Adds a file_is_invalid macro to work around a bug in the Borland 5.0
-compiler. (files.h, ziodev.c, zvmem.c)
-
-Changes the character cache to be allocated in the C heap rather than global
-VM. This is required because cache chunks are now allocated from the same
-allocator as the cache. (zfont.c)
-
-Implements sizeimage and readimage, including a new .getbitsrect operator.
-(gs_dpnxt.ps, gs_init.ps, zdevice.c, zdpnext.c)
-
-Resets the maximum stack sizes earlier in initialization. (gs_init.ps)
-
-Tweaks the default CRD slightly (syntactically, not the content).
-(gs_lev2.ps)
-
-Adds support for PatternTypes other than 1. (gs_init.ps, gs_lev2.ps,
-gs_res.ps, zpcolor.c)
-
-Adds a pointer to the C heap allocator to the gs_main_instance structure,
-working towards the goal of removing all references to gs_memory_default.
-(iminst.h)
-
-Removes all remaining uses of gs_malloc and gs_free from the interpreter.
-(igc.h, igc.c, imain.c, zfdctd.c, zfdcte.c)
-
-Adds an explicit #include for all remaining uses of gs_memory_default in the
-interpreter. (zfdctd.c, zfdcte.c, zvmem.c)
-
-Adds a map_color_rgb_alpha driver procedure, complementing
-map_rgb_alpha_color. (zupath.c)
-
-Removes the obsolete writeppmfile operator. (zwppm.c[deleted])
-
-Updates the implementation of the image operators to match the change from
-HasAlpha to Alpha in the image definition structure. (iimage.h, zcolor1.c,
-zimage.c)
-
-Reimplements upath in C code, since UnpaintedPath requires it. (zupath.c)
-
-Updates interpreter code for the change in the GC interface. (imemory.h,
-istruct.h, icontext.c, igc.c, igcref.c, igcstr.c, ilocate.c, iname.c,
-isave.c, iscan.c, istack.c, zfproc.c)
-
-Implements the compositing operators. (zdpnext.c, zdps.c, zupath.c)
-
-Changes some matrix operators to pass unpacked matrices on the stack.
-(zmatrix.c)
-
-Moves the alpha-related operators to where they belong. (zcolor.c,
-zdpnext.c)
-
-Changes all calls on getenv to gp_getenv. (imainarg.c, zmisc.c)
-
-</pre><h3><a name="V5.20_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - PostScript pass-throughs caused an error. They are now always
-executed; probably we should offer the option of not executing them, for
-closer compatibility with Acrobat. (pdf_draw.ps, pdf_main.ps)
- - Font resources, unlike all other types of resources, couldn't be
-inherited from an ancestor Page(s) object. (pdf_font.ps)
- - Resources appearing only in Form or Pattern dictionaries weren't
-recognized as being present. (pdf_base.ps, pdf_draw.ps, pdf_main.ps)
-
-Moves closer to supporting Type 0 (and CID) fonts. (pdf_font.ps)
-
-</pre><h3><a name="V5.20_Streams"></a>Streams</h3><pre>
-
-Fixes bugs:
- - If the image was very narrow or very shallow, the interpolated
-image scaling stream could make an invalid memory reference. (siscale.c)
-
-Removes the last few references to gs_malloc and gs_free from stream code.
-Clients now *must* call the set_defaults procedure for the DCT filters
-before initializing them: THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.
-(sdct.h, sdctd.c, sdcte.c, sjpegc.c)
-
-Adds an explicit #include for all remaining uses of gs_memory_default.
-(sdctd.c, sdcte.c, szlibd.c, szlibe.c)
-
-</pre><h3><a name="V5.20_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some files that included shc.h didn't include scommon.h. (shc.h)
- - A file didn't include std.h before &lt;stdio.h&gt;. (gslib.c)
- - There was an unnecessary extern (cleanup only). (gscsepr.c)
- - The uid.xvalues member of gs_client_pattern structures wasn't
-traced by the GC. (gspcolor.h)
- - If an Interpolated image reached the end of the input at exactly
-the wrong time, an assertion could fail. (gxiscale.c)
- - With non-ANSI compilers, an integer constant passed to the fmod
-library function, which requires a floating point argument, could cause a
-floating point exception or an incorrect result. (gsmisc.c)
- - An error in computing the bounding box sometimes caused strokes to
-print incorrectly (for example, some graduated fills printed incorrectly).
-(gxstroke.c)
-
-Implements an undocumented (!) feature of Type 2 CharStrings, namely that if
-the endchar operator is invoked with 4 or 5 operands on the stack, it is
-equivalent to the Type 1 seac operator (without the asb operand). This
-required changing the implementation of seac so that it does the base
-character first, rather than the accent. (gxtype1.h, gstype1.c, gstype2.c,
-gxtype1.c)
-
-Adds support for ImageTypes other than 1. (gsiparam.h, gximage.h,
-gxiparam.h, gdevddrw.c, gsimage.c, gximage.c, gximage0.c)
-
-Adds support for ImageType 2 (device source) images. Currently we only
-handle the simplest case (source is not transformed). (gsimage.h,
-gsiparm2.h, gsimage.c, gximage2.c)
-
-Adds support for LanguageLevel 3 features:
- - FunctionType 2 and 3 Functions. (gsfunc3.h, gsfunc3.c)
- - PatternType 2 and smooth shading (structures and API only, no
-algorithms). (gscolor3.h, gsptype2.h, gsshade.h, gxistate.h, gscolor3.c,
-gsshade.c)
- - In-RIP trapping (structures and API only, no algorithms).
-(gstrap.h, gstrap.c)
- - ImageType 3 (masked images) (structures and API only, no
-algorithms). (gsiparm3.h, gximage3.c)
- - ImageType 4 (chroma-keyed masked images). (gsiparm4.h,
-gximage4.c)
- - DevicePixel color space. (gscpixel.h, gscspace.h, gscpixel.c,
-gximono.c)
- - DeviceN color space. (gscspace.h, gscdevn.c)
-
-Removes the #ifdef FUTURE around the code for passing multi-plane and
-interpolated images through the band list (version 5.01) and for banded
-filling and stroking with colored halftones (version 4.71). This code is
-now part of the standard release. (gxcldev.h, gxclpath.h, gxdht.h,
-gxhttype.h, gsht.c, gxclimag.c, gxclread.c, gximage.c)
-
-Adds a _ptrs6 structure definition macro. (gsstruct.h)
-
-Removes #ifdef DPNEXT conditionalization, as in the interpreter (see above).
-(gzstate.h, gsdps.c, gsstate.c, gximage.c, gximage5.c)
-
-Starts to eliminate or segregate writable globals that point to
-heap-allocated data, as in the interpreter (see above). (gsbittab.h,
-gscdefs.h, gsdcolor.h, gxclist.h, gxsample.h, gzht.h, gconf.c, gsbitops.c,
-gsbittab.c, gscdef.c, gsdparam.c, gsflip.c, gsinit.c, gsmatrix.c,
-gspcolor.c, gsstate.c, gxcht.c, gxclist.c, gxcmap.c, gxdcolor.c, gxdither.c,
-gxht.c, gximage.c)
-
-Removes the division between 'low-level' and 'high-level' band list
-facilities. (gxcldev.h, gxclimag.c, gxclist.c, gxclpath.c)
-
-Renames gximage*.c as gxi*.c, since these files apply only to ImageType 1
-images and the use of numerical suffixes was confusing. (gximage.c =&gt;
-gxiinit.c, gximage0.c =&gt; gxidata.c, gximage1.c =&gt; gxifast.c,
-gximage2.c =&gt; gximono.c, gximage3.c =&gt; gxicolor.c, gximage4.c =&gt;
-gxi12bit.c, gximage5.c =&gt; gxiscale.c)
-
-Provides the ability to enumerate a clipping path (based on the clipping
-list) using an enumerator, in the same way as an ordinary path. (gxpath.h,
-gzcpath.h, gzpath.h, gxcpath.c, gxpath2.c)
-
-Speeds up mem_mapped4_copy_mono substantially. (gdevm4.c)
-
-Removes all remaining uses of gs_malloc and gs_free in the library, other
-than in drivers. This turned out to require changing a couple of
-initialization APIs. (gsfont.h, gslib.h, gxdevice.h, gxfcache.h, gsfont.c,
-gxccman.c)
-
-Reduces the writable statics related to the default (C heap) allocator to a
-single pointer. (gsmalloc.h, gsmemory.h, gsinit.c, gsmemory.c)
-
-Adds support for PatternTypes other than 1. (gscolor2.h, gspcolor.h,
-gsptype1.h, gxcolor2.h, gspcolor.c)
-
-Adds an explicit #include for all remaining uses of gs_memory_default that
-aren't covered by gxdevice.h. (gxclmem.c)
-
-Splits off the default implementations of the bit-copying device procedures,
-because the file was getting too large. (gdevdbit.c, gdevdflt.c)
-
-Adds a procedure for calculating the difference of two rectangles, needed
-for Type 2 images. (gsrect.h, gxpath.h, gsutil.c)
-
-Extends the image machinery to allow alpha values to either precede or
-follow color values in image data, replacing HasAlpha with Alpha in the
-ImageType 1 image structure. (gsiparam.h, gximage.h, gsimage.c, gxclimag.c,
-gxclread.c, gxicolor.c, gxiinit.c, gxiscale.c)
-
-Extends the path enumeration API to decouple path copying from coordinate
-transformation. (gspath.h, gzpath.h, gspath1.c, gxpath2.c)
-
-Changes the garbage collector interface so that all procedures are passed
-through a structure rather than being referenced as externs. This allows
-programs other than the GC itself to enumerate and relocate pointers, and
-also removes all static dependencies on the GC from the library. This
-involves a NON-BACKWARD-COMPATIBLE CHANGE to the argument list of enum_ptrs
-procedures, and to the implementation of both enum_ptrs and reloc_ptrs. (We
-hope that the new macros we've introduced will avoid non-backward-compatible
-changes in the future.) (gsstruct.h, gdevmem.c, gsalloc.c, gscdevn.c,
-gscolor.c, gscolor2.c, gscsepr.c, gsdevice.c, gsfont.c, gshtscr.c,
-gsimage.c, gsmemory.c, gspcolor.c, gsstate.c, gxcmap.c, gxcpath.c, gxht.c,
-gxiinit.c)
-
-Moves the image compositing code into the library from its inappropriate
-home in the interpreter. (gsdpnext.h)
-
-Splits up gsbitops.h into client interface and implementation support.
-Removes some obsolete code at the same time. (gdevmem.h, gsbitops.h,
-gxbitops.h, gsbitops.c)
-
-Creates the concept of compositing functions and compositing devices
-(compositors). (gscompt.h, gxcomp.h)
-
-Implements the default compositor for alpha-based compositing. (gsalphac.h,
-gsalphac.c)
-
-Creates a store_alpha device that adds alpha channel storage to any other
-device. (gdevalph.c)
-
-Moves alpha channel capability into the dpsnext feature, where it should
-have been all along. (gsalpha.h, gscolor.h, gsalpha.c, gscolor.c,
-gsstate.c)
-
-Implements color premultiplying by (non-unity) alpha values. Currently we
-always premultiply towards white: see gxalpha.h for some comments.
-(gxalpha.h, gxcmap.c)
-
-Reduces the amount of boilerplate in the RasterOp implementation table.
-(gsroptab.c)
-
-Adds an arg_push_temp_string procedure to accommodate the new gp_getenv
-call. (gsargs.h, gsargs.c)
-
-Updates various library APIs to account for the more careful handling of
-file name length. (gdevprn.h, gxclio.h, gxclist.h, gsdevice.c, gxclfile.c,
-gxclmem.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.10"></a>Version 5.10 (11/23/97)</h2>
-
-<p>
-This release, not originally planned, greatly reduces the size of PDF files
-produced by the pdfwrite device, fixes a number of minor problems in PDF
-output, and optionally produces output compatible with Acrobat 2.x, in order
-to address problems reported by NSF in processing these files as part of
-their FastLane electronic proposal submission process. Aside from that, and
-some localized bug fixes, it has minimal changes from 5.03.
-
-<h3><a name="V5.10_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - ansihead.mak referred to unix-ansi.mak, which is actually named
-unixansi.mak. (ansihead.mak)
- - README referred to an "If you need help" section that was moved to
-new-user.txt. (README)
-
-Updates build information for HP-UX systems. (make.txt)
-
-Updates the information for getting Martin Lottermoser's hpdj driver.
-(new-user.txt)
-
-Improves the error message when a user tries to invoke gswin32c without
-explicitly selecting a device. (dwmainc.cpp)
-
-Removes the author's name and e-mail address from the pdf2ps man page, at
-his request. (pdf2ps.1)
-
-Improves the documentation for BandBufferSpace. (language.txt)
-
-</pre><h3><a name="V5.10_Procedures"></a>Procedures</h3><pre>
-
-Changes the VMS command files so that they don't echo the commands.
-(append_l.com, copy_one.com, rm_all.com, rm_one.com)
-
-</pre><h3><a name="V5.10_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The "lp" command files all inappropriately set the top margin to
-0.1". (lp386.bat, lp386r2.bat, lpgs, lpgs.bat, lpr2, lpr2.bat)
- - The lp386[r2].bat command files inappropriately set the
-LanguageLevel to 1. (lp386.bat, lp386r2.bat)
-
-</pre><h3><a name="V5.10_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PDF writer got confused about the current color if the input
-contained text strings separated only by color changes. (gdevpdf.c)
- - Some casts between const char * and const byte * were incorrect
-(warnings only). (gdevpdft.c)
-
-Adds a NoCancel parameter to the winpr2 device, which suppresses display of
-the dialog box. (gdevwpr2.c)
-
-</pre><h3><a name="V5.10_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - An "extern" was omitted, causing a duplicate definition of
-build_function_procs. (ifunc.h)
- - The global pseudo-operator table was too small, causing a
-limitcheck in ps2ascii. (iinit.c)
- - setcolorspace with a Pattern space with no underlying space would
-cause an error if the current color space was a Pattern space. (zpcolor.c)
- - The Decode key was optional, not required, in the dictionary form
-of image[mask]. (zimage2.c)
-
-Adds two more PCL/PJL reset sequences to the list of sequences to ignore.
-(gs_init.ps)
-
-</pre><h3><a name="V5.10_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Multi-screen color halftones could produce "seams". (gxcht.c)
- - A bug in the gcc optimizer on H-P RISC workstations caused all
-curves to be output as lines. (gxpflat.c)
- - If a non-standard OtherSubr was called before the [h]sbw in a Type
-1 font, a crash could occur. (gxhint3.c)
- - gxclist.c didn't include string_.h. (gxclist.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.07"></a>Version 5.07 (limited) (10/31/97)</h2>
-
-<p>
-A few more bug fixes for the 5.10 release.
-
-<h3><a name="V5.07_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Some file and directory names hadn't been updated to match the new
-directory structure on the primary server. (make.txt, new-user.txt)
-
-Adds the URL for reaching URW++. (Fontmap.*)
-
-</pre><h3><a name="V5.07_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Because the C % operator isn't equivalent to 'modulus' for
-negative numerators, gx_default_strip_tile_rectangle could crash in some
-cases. (gxdevice.h, gdevdflt.c)
- - In the PDF writer, Dest values were correct (page numbers) for
-GoToR actions, but were incorrect (should be page object references) for
-other actions; also, Rect values were transformed, but should not be.
-(gdevpdfm.c)
- - In the PDF writer, articles and bookmarks could attempt to write
-multiple Contents streams, which is not allowed. (gdevpdfx.h, gdevpdf.c,
-gdevpdfm.c)
- - The PDF writer ignored PS (PostScript pass-through) pdfmarks.
-(gdevpdfm.c)
- - The PDF writer didn't write out the color space parameters for
-CIE-based spaces. (gdevpdfi.c)
-
-</pre><h3><a name="V5.07_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Suffix subclass structures with 4 added pointers skipped the first
-pointer in the superclass when garbage collecting, possibly causing invalid
-memory accesses. (gsstruct.h)
- - An argument list incompatibility in a procedure used in a static
-structure initialization upset some compilers. (gsfunc.h, gsfunc0.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.06"></a>Version 5.06 (limited) (10/7/97)</h2>
-
-<p>
-This fixes a few more bugs in the PDF writer, and a few other very obscure
-problems. It also adds support for Functions and brings multiple contexts
-closer to working, neither of which we expect actually to be used any time
-soon. This is intended to be the candidate fileset for the 5.10 release,
-but since we had to tinker with a delicate part of the PDF writer to fix a
-problem affecting visual quality with Acrobat, there may be new bugs that
-will have to be fixed in yet another candidate fileset.
-
-<h3><a name="V5.06_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Jim McPherson's e-mail address was out of date. (devices.txt)
- - Invoking ps2pdf with only a single file name is supported on some
-versions of Windows NT and OS/2, not only on Unix. (ps2pdf.txt)
- - The ps2pdf documentation didn't indicate that ps2pdf can use the
-Windows "console mode" executable as well as the MS-DOS executable.
-(ps2pdf.txt)
- - The list of which Distiller parameters actually have an effect was
-incorrect. (gdevpdfp.c)
-
-Notes that the cdj550 driver is compatible with the H-P 660C and 660Cse.
-(devs.mak, devices.txt)
-
-Adds a note about using Acrobat Reader fonts. (install.txt, use.txt)
-
-Notes that the LJ 5P, like the 5L, is not a PCL XL printer. (devs.mak)
-
-Notes problems and possible problems with certain versions of the Borland
-C++ compiler. (make.txt)
-
-Notes the change in -Z:. (use.txt)
-
-Updates the uniprint documentation for this release. (devices.txt)
-
-Expands the rationale for the large resolution in the bbox device.
-(gdevbbox.c)
-
-Notes that the H-P DeskJet 600 series can use the djet500 driver with -r600.
-(devs.mak)
-
-</pre><h3><a name="V5.06_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - Vector devices didn't include a necessary dependency on the stream
-package. (lib.mak)
- - There were several bugs in the ps2pdf.bat file. (ps2pdf.bat)
-
-Changes -Z: so it prints some summary lines as well as minimal information
-about banding. This makes the -ZA trace compatible with our memory leak
-tool. (iminst.h, imain.c)
-
-</pre><h3><a name="V5.06_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2epsi sometimes produced a too-large bounding box, or even
-caused a rangecheck. (ps2epsi)
-
-At the advice of a user, removes the RESOLUTION=100 line from pv.sh.
-(pv.sh)
-
-</pre><h3><a name="V5.06_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The PDF writer produced incorrect output for stroke operations
-with unusual CTMs, because PDF, unlike PostScript, applies the CTM to the
-path at the time of the fill or stroke, not as the path is being
-constructed. (gdevpdfd.c)
- - Vector devices returned an error, instead of falling back to the
-default implementations, when filling or stroking with a pattern.
-(gdevvec.c)
- - The PDF writer freed an internal stream structure using the wrong
-allocator, possibly causing memory corruption. (gdevpdf.c)
- - The uniprint driver had some compilation problems, and possibly
-other problems as well (consult the source file). (gdevupd.c, *.upp)
- - With -dNOCACHE, the PDF writer wrote all text in the base 14 fonts
-twice, once as text and once as outlines. (gs_pdfwr.ps, gdevpdfd.c)
- - The PDF writer didn't properly recognize Symbol and ZapfDingbats
-as being among the base 14 fonts. (gs_pdfwr.ps)
- - When using Acrobat Reader with font smoothing turned on, the base
-14 fonts appeared too bold on the screen in files produced by ps2pdf,
-because Reader decides that a 100-unit font at 1 unit = 0.1 point should be
-bolder than a 10-unit font at 1 unit = 1 point. (gdevpdfx.h, gdevpdf.c,
-gdevpdft.c)
- - The PDF writer didn't convert View/Page specifications for
-bookmark pdfmarks to a Dest key, causing bookmarks not to work.
-(gdevpdfm.c)
-
-Speeds up the PDF writer by only passing the encoding if it isn't
-StandardEncoding. (gs_pdfwr.ps, gdevpdft.c)
-
-Changes the PDF writer's handling of unencoded glyphs. Adds device
-parameters ReEncodeCharacters and ReAssignCharacters to control how
-unencoded glyphs are handled. (These parameters will go away when we handle
-variant encodings in full generality.) (gdevpdfx.h, gdevpdf.c, gdevpdfp.c,
-gdevpdft.c)
-
-</pre><h3><a name="V5.06_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - setpagedevice didn't restore the stack properly if it failed.
-(gs_setpd.ps)
- - 0 identmatrix didn't cause an error. (gs_init.ps)
- - Devices expecting array-valued parameters didn't accept packed
-arrays. (iparam.c)
-
-Starts to de-implement support for special handling of the stacks on
-machines with 16:16 addressing. Currently this only happens if DPNEXT is
-defined. (istack.h)
-
-Brings multiple contexts closer to working. The interpreter can now run
-some very simple test cases. (int.mak, icontext.h, igstate.h, interp.h,
-istruct.h, icontext.c, interp.c, zcontext.c, zgstate.c)
-
-Adds support for FunctionType 0 Functions. (ifunc.h, iref.h, store.h,
-zfunc.c, zfunc0.c)
-
-Updates a few remaining pseudo-operators in gs_init.ps to take advantage of
-automatic operand and dictionary stack restoration: eexec, identmatrix,
-pathbbox. Not updated yet: filter. (gs_init.ps)
-
-</pre><h3><a name="V5.06_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Separation color spaces weren't supported. (gs_pdf.ps,
-pdf_draw.ps)
-
-</pre><h3><a name="V5.06_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The size argument to gs_free was wrong in an out-of-memory case.
-(This was irrelevant, since gs_free only uses the size argument for
-error-checking during debugging.) (gdevprn.c)
- - When freeing a block on the C heap, if -Z@ was set, the block's
-header wasn't filled with the sentinel pattern. (Only relevant when
-debugging.) (gsmemory.c)
- - The C heap allocator didn't fix up pointers properly when freeing
-a block, causing unpredictable memory corruption after a 'resize' call.
-(gsmemory.c)
- - Using a show operator inside the procedure of a cshow with a
-composite font could cause an invalid access. (gschar.c)
-
-Adds support for FunctionType 0 Functions. (gsdsrc.h, gsfunc.h, gsfunc0.h,
-gxfunc.h, gsdsrc.c, gsfunc.c, gsfunc0.c)
-
-Moves the GC descriptor for arrays of constant strings to a place where it
-is more visible. (gscie.h, gsstruct.h, gscie.c, gsmemory.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.05"></a>Version 5.05 (limited) (9/24/97)</h2>
-
-<p>
-This fixes a few bugs found in the first few days of testing 5.04. There
-will probably be several more small incremental filesets before the next
-public release.
-
-<h3><a name="V5.05_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - The Windows code wouldn't compile with the latest MSVC++, because
-Microsoft changed the prototype for fprintf. (gp_msio.c)
-
-</pre><h3><a name="V5.05_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - A picky compiler complained about some omitted casts. (gdevpdf.c,
-gdevpdft.c)
- - Writing a PDF file with any synthesized fonts could produce
-slightly garbled output or possibly even an invalid memory access, because a
-string was not terminated. (gdevpdft.c)
- - When writing a PDF file, the first character of a string could get
-placed off the page, because of a matrix bookkeeping error. (gdevpdft.c)
-
-</pre><h3><a name="V5.05_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - In case of an error, setpagedevice executed a 'stop'
-unconditionally, rather than just signalling an error through the error
-machinery. (gs_setpd.ps)
-
-</pre><h3><a name="V5.05_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Files with unknown operators caused errors, even if the BX
-operator was used to disable the error report. (pdf_base.ps)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.04"></a>Version 5.04 (limited) (9/21/97)</h2>
-
-<p>
-This is a test fileset for an unplanned release that greatly reduces the
-size of PDF files produced by the pdfwrite device, and also optionally
-produces output compatible with Acrobat 2.x, in order to address problems
-reported by NSF in processing these files as part of their FastLane
-electronic proposal submission process. Aside from that, and some localized
-bug fixes, it has minimal changes from 5.03.
-
-<h3><a name="V5.04_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - George Cameron's address was listed with a domain of .ukis rather
-than .uk. (devices.txt)
- - The default value of ORIENT1 was given as false rather than true.
-(use.txt)
- - The documentation for ps2pdf said one can omit the output file
-name, but this is only true on Unix systems. (ps2pdf.txt)
- - The documentation for ps2pdf didn't make clear that the executable
-must be named gs on Microsoft OSs. (ps2pdf.txt)
- - ht_cache is actually allocated with the first gstate, not on
-demand. (gsstate.c)
-
-Slightly improves the documentation of .type1execchar. (zchar1.c)
-
-Clarifies the distinction between Ghostscript (PostScript) commands and
-shell commands, for the benefit of users brainwashed by Microsoft.
-(use.txt)
-
-Improves the usage synopsis in the ps2epsi man page. (ps2epsi.1)
-
-Adds a reference to Uli Wortmann's H-P drivers. (new-user.txt)
-
-Improves the documentation of GS_FONTPATH, distinguishing it from GS_LIB and
-the search path. (use.txt)
-
-Notes that on some systems, one must substitute 'installbsd' for 'install'
-in the makefile and make other edits. (install.txt, ansihead.mak,
-cc-head.mak, gcc-head.mak)
-
-Notes that ps2epsi is no longer maintained. (ps2epsi.ps)
-
-Clarifies the availability of support. (new-user.txt)
-
-</pre><h3><a name="V5.04_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - The uniprint driver was accidentally omitted from the default
-Watcom (MS-DOS) and OS/2 configurations. (watc.mak, os2.mak)
- - The suggested compiler switches for Digital Unix were incorrect.
-(make.txt)
- - The cp.cmd script file didn't work in the newest versions of OS/2.
-(cp.cmd)
- - The compilation rules for some Windows-specific files didn't
-include ccf32.tr in their dependencies, which could cause the compilation to
-fail. (winint.mak)
-
-Removes the lev2min configuration, since we no longer support 16-bit Windows
-environments. (int.mak)
-
-</pre><h3><a name="V5.04_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2epsi.bat always appended to the output file, rather than
-writing over it. (There are probably other bugs in this script file.)
-(ps2epsi.bat)
- - The output of pdf2ps didn't execute properly on some printers,
-especially Level 1 printers. (gs_pdf.ps)
-
-Makes ps2pdf do an initial 'save', which causes fonts to be retained better
-across pages. (ps2pdf, ps2pdf.bat)
-
-Adds an option to pcharstr.ps to produce C-like rather than PostScript-like
-output. (pcharstr.ps)
-
-</pre><h3><a name="V5.04_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The LaserJet III and higher printers weren't able to print in the
-narrow strip between 1/6" and 1/4" from the left edge of the page.
-(gdevdjet.c)
- - The PCL XL drivers produced incorrect output which often caused a
-PCL XL NoCurrentFont error at the beginning of the second page. (gdevpx.c)
- - The GC descriptors for the pswrite device and for PS/PDF devices
-were incorrect, causing the GC to smash memory. (gdevpsdf.h, gdevps.c)
- - The pdfwrite device didn't have a GC descriptor at all. ******
-DISABLED because the device allocates all its temporary structures directly
-on the C heap. ****** (gdevpdf.c)
- - When the PDF writer wrote out the Dest key in an action
-dictionary, it always used a page object instead of a page number, even if
-the page was in another file or didn't exist; it now always uses a page
-number. (gdevpdfm.c)
- - The PDF writer gave an error if a file redefined any of the 14
-known fonts. (gs_pdfwr.ps)
- - The PDF writer didn't handle copy_mono with a non-zero sourcex.
-(This probably had no effect in practice.) (gdevpdfi.c)
-
-Splits off gdevpdfd.c (driver drawing procedures) from gdevpdf.c, since the
-file was getting too large. (gdevpdfx.h, gdevpdf.c, gdevpdfd.c)
-
-Adds recognition of the CompressPages, CompatibilityLevel, and
-UseFlateCompression device (distiller) parameters to the PDF writer. If
-CompressPages is true (default), CompatibilityLevel is 1.2 (default), and
-UseFlateCompression is true (default), page contents will be compressed with
-Flate ("zip") compression; otherwise, they will not be compressed.
-
-Restructures the PDF writer to produce much smaller and faster PDF files, by
-restructuring its handling of text to defer all resources to the end of the
-file, eliminate duplicate Font resources, turn characters into Type 3 fonts
-rather than Image XObjects, use more efficient text positioning commands,
-and optionally (but by default) Flate-compress the contents streams. Also
-removes some unnecessary spaces in the output. (gdevpdfx.h, gdevpdf.c,
-gdevpdfd.c, gdevpdfi.c, gdevpdfm.c, gdevpdft.c)
-
-Improves the PDF writer so that it no longer converts stroke operations with
-non-uniform CTMs to fills, and doesn't bother to stroke empty paths at all.
-(gdevpdfd.c)
-
-Speeds up the "alternate" X devices substantially. (gdevxalt.c)
-
-</pre><h3><a name="V5.04_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - Filling a string with a Pattern caused a crash with the PDF
-writer. (gs_pdfwr.ps)
- - Converting a file with no marks at all to PDF produced invalid
-output. (gdevpdf.c)
- - .endpage, which is called at the end of every page, sometimes left
-2 extra values on the stack. (gs_setpd.ps)
- - A definefont with a Type 1 font lacking a .notdef character didn't
-cause an invalidfont error. (bfont.h, zfont1.c, zfont2.c)
- - On anti-aliased devices, characters from Type 1 fonts with an
-incorrect or missing FontBBox came out a factor of 2 or 4 too small if the
-character was small enough to cache. (zchar1.c)
- - If a file redefined certain operators, loading Type 1 fonts could
-fail. This problem was fixed in an earlier release, and somehow the fix got
-undone. (gs_type1.ps)
- - cshow didn't set the correct current font when running the
-procedure, and didn't restore it properly afterwards. (zchar.c, zchar2.c)
- - With certain compilers, the interpreter loop caused unaligned
-memory accesses on DEC Alpha systems running Windows NT. (iref.h)
-
-Adds freelist validation to the memory checker. (ilocate.c)
-
-Changes the debugging switch for bypassing the garbage collector from
-compile-time to run-time. (igc.c)
-
-Adds the real operators for view clipping (but they don't do anything yet,
-because view clipping isn't implemented at the library level). (zdps.c,
-zvmem.c)
-
-Completes the implementation of defineusername. (zdps.c)
-
-Adds an implementation of wtranslation, by simply reading a device parameter
-of the same name. (gs_dps.ps)
-
-</pre><h3><a name="V5.04_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Lab color spaces weren't implemented, and gave an error.
-(gs_pdf.ps)
- - Images only worked with built-in color spaces, not color space
-resources. (pdf_draw.ps)
- - Embedded font subsets were treated as undefined. (pdf_font.ps)
-
-</pre><h3><a name="V5.04_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - strokepath sometimes clipped the path to the current clipping
-region, which it should never do. (gxstroke.c)
- - The initial X/Y position for Type 2 charstrings (CFFs) sometimes
-was set incorrectly. (gstype2.c)
- - Memory management for dash patterns was still incorrect (despite
-the fix in 4.36), possibly causing snarled freelists and invalid memory
-references. (gsline.c, gsstate.c)
- - The saved gstate of a Pattern instance was freed properly when the
-instance was freed by reference counting as a result of setting the color or
-color space, but not when the instance was freed by reference counting
-anywhere else. (gspcolor.c)
- - A test for whether to use a slower form of oversampling was
-incorrect. (Probably only a performance bug.) (gschar.c)
- - cshow didn't set the correct current font when running the
-procedure, and didn't restore it properly afterwards. (gsfont.h, gschar.c,
-gsfont.c)
-
-Improves allocator validity checking when DEBUG is set. (gsalloc.c)
-
-Adds a couple of missing FontType values. (gxftype.h)
-
-Changes the default conversions between CMYK and RGB colors back to the
-Adobe rules documented in the Red Book, to reduce output differences from
-Adobe implementations. (gxdcconv.c)
-
-Adds a graphics state element for view clipping, under an #ifdef DPNEXT, and
-implementations of the view clipping operators (but not the logic for doing
-the actual clipping). (gsstate.h, gzstate.h, gsstate.c)
-
-Removes the redundant clip_rule variable from the graphics state (which
-wasn't used for anything). (gzstate.h, gspath.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.03"></a>Version 5.03 (8/8/97)</h2>
-
-<p>
-The only reason for this release is to fix two serious bugs introduced
-between 5.01 and 5.02. We fixed a few other very localized and low-risk
-bugs at the same time.
-
-<h3><a name="V5.03_Documentation"></a>Documentation</h3><pre>
-
-Removes the "(if relevant)" from the bug reporting form, since about 25% of
-the forms are submitted without a URL or any other data. (bug-form.txt)
-
-Adds a discussion of single-use procedures to the style guide.
-(c-style.txt)
-
-Updates the information about obtaining Ghostscript on physical media.
-(new-user.txt)
-
-Updates the information about ps_view. (new-user.txt)
-
-</pre><h3><a name="V5.03_Procedures"></a>Procedures</h3><pre>
-
-Adds the uniprint driver to all platforms. (*.mak)
-
-Changes the contents of the pc.tar.gz archives:
- - Adds *.upp.
- - Removes *.res.
- - Removes cp.bat, font2c.bat, mv.bat, rm.bat, wmakebat.bat,
- cp.cmd, mv.cmd and rm.cmd, and gv-vms.hlp.
-
-Removes an obsolete script file. (tar_mv)
-
-</pre><h3><a name="V5.03_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The uniprint driver didn't handle an increase in media height
-correctly. (gdevupd.c)
-
-</pre><h3><a name="V5.03_Platforms"></a>Platforms</h3><pre>
-
-Fixes bugs:
- - Printing to printers other than LPT1 under MS Windows no longer
-worked. (bug introduced in 5.02) (gp_mswin.c)
- - Drag-and-drop didn't work under Windows NT (or other 32-bit
-Windows environments). (dwtext.cpp)
- - Sequent systems needed an additional system header file.
-(time_.h)
-
-</pre><h3><a name="V5.03_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - The substitutions Myriad =&gt; Times and Minion =&gt; Helvetica were
-incorrect; they should be the other way around. (gs_fonts.ps)
- - MyriadPkg wasn't recognized as a condensed font. (gs_fonts.ps)
- - Univers wasn't recognized as mapping to Helvetica. (gs_fonts.ps)
-
-</pre><h3><a name="V5.03_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - A line of debugging code, printing the sections of 3 regions of
-TrueType fonts being loaded, was accidentally left in. (gs_ttf.ps)
- - TrueType fonts whose pre-glyf data had odd length were broken
-(typically gave a rangecheck error), because of the fix to treat the odd
-byte of individual sfnts strings as padding per Adobe documentation. (bug
-introduced in 5.02) (gs_ttf.ps)
-
-</pre><h3><a name="V5.03_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - If a real-number token in a CFF had an even number of nibbles, a
-unmatchedmark error would occur. (gs_cff.ps)
- - If the strings Index in a CFF included an empty string, a
-rangecheck error would occur. (gs_cff.ps)
- - CFFs with non-standard Encodings that included standard strings
-would get a typecheck error. (gs_cff.ps)
-
-</pre><h3><a name="V5.03_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Using %d in an OutputFile name didn't substitute the page number.
-(bug introduced in 5.02) (gsdevice.c)
- - In Type 2 CharStrings, if a hintmask occurred at the beginning, it
-wasn't recognized as also incorporating the function of vstemhm.
-(gstype2.c)
- - The data bytes for hintmask and cntrmask weren't printed for
-debugging. (gstype2.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.02"></a>Version 5.02 (7/28/97)</h2>
-
-<p>
-Because of an ISP failure that delayed the 5.0 announcement for 12 days, the
-5.01 release only responded to a few days of bug reports; 5.02 fixes some
-problems that should have been fixed in 5.01, as well as a large number of
-obscure problems uncovered by Genoa testing.
-
-<h3><a name="V5.02_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - The documentation for building on the Intergraph Clipper was out
-of date. (make.txt)
- - ESC was claimed to be a self-delimiting character. (gs_init.ps)
- - Removes the documentation claiming that ^D and ^Z are
-self-delimiting. (language.txt)
- - Document that -dSUBSTFONT doesn't create a font with the requested
-font name. (use.txt)
- - Ghostscript was defined as compatible with PDF 1.1 rather than PDF
-1.2. (language.txt)
- - The description of gcc problems on Alpha didn't make it clear that
-the use of gcc was optional, not required. (make.txt)
- - The description of how to use GNU make on VMS systems was
-inaccurate. (make.txt)
-
-Improves the documentation for building on H-P RISC systems. (make.txt)
-
-Corrects the discussion of Cygnus' licensing terms for the cygwin32
-environment. (make.txt)
-
-Removes the apology for the poor quality of Ghostscript's TrueType
-rasterizer, since the quality is now quite good. (fonts.txt)
-
-Documents the fact that one must use # rather than = with Watcom C.
-(use.txt)
-
-Documents the updates and additions to the uniprint driver. (devices.txt)
-
-Adds some material to Aladdin's C style guide. (c-style.txt)
-
-Documents the fact that using gmake requires VMS 6.2 or later on Alphas and
-7.1 (perhaps 7.0) or later on VAXen. (make.txt)
-
-Adds an example EPS file. (psfiles.txt)
-
-Adds some information about compiling and linking under OS/2. (make.txt)
-
-Expands the description of XLIBDIR and XLIBDIRS. (*head.mak)
-
-Adds a new pointer to information on using a Kanji font with Ghostscript.
-(new-user.txt)
-
-Documents the use of /Resource/&lt;category&gt;/&lt;resource&gt; as the default place
-where resources are sought. (use.txt)
-
-Updates the documentation on building with MSVC++ to reflect the makefile
-changes. (make.txt)
-
-</pre><h3><a name="V5.02_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - In openvms.mak, several ifdef tests were wrong. (openvms.mak)
- - One CP command was slightly inconsistent with the others.
-(zlib.mak)
- - If libz and libpng were both shared, libz was linked first,
-resulting in some undefined references. (libpng.mak)
- - The VMS makefile didn't interact properly with VMS's version
-numbering facility. (copy_one.com)
-
-Updates the VMS DCL script one last time, to handle libpng version 96.
-(vms.mak)
-
-Restructures the MSVC++ makefiles to allow building the graphics library
-without the PostScript interpreter. (bcwin32.mak, msvc4.mak[deleted],
-msvc5.mak[deleted], msvc32.mak, msvccom.mak, watcw32.mak,
-wincom.mak[deleted], winint.mak, winlib.mak)
-
-Adds a makefile to create a library-only demo program under MSVC++, like the
-ones for Unix/gcc and MS-DOS/Watcom. (msvclib.mak)
-
-Adds an example EPS file. (ridt91.eps, unix-end.mak)
-
-Removes support for libpng release 0.88, which is now quite obsolete.
-(libpng.mak)
-
-</pre><h3><a name="V5.02_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - ps2pdf.bat, unlike ps2pdf, didn't accept options. (ps2pdf.bat)
- - echogs used 'const' in one place, which wasn't accepted by some
-very old compilers. (echogs.c)
- - pdf2ps output Orientation, which it shouldn't. (pdf_main.ps)
-
-Makes the usage message from ps2pdf.bat include the options, like ps2pdf.
-(ps2pdf.bat)
-
-Changes the printpath utility so that its output is legal PostScript code.
-(ppath.ps)
-
-Makes pdf2dsc add DSC comments for the bounding box (if a CropBox is
-available in the PDF file) and the orientation. (pdf2dsc.ps)
-
-</pre><h3><a name="V5.02_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - The get_bits operation wasn't implemented for the vgalib driver.
-(gdevvglb.c)
- - The dnj650c driver output an extra % near the end of the file.
-(gdevcdj.c)
- - The definition of pprintd2 didn't have a line break before the
-procedure name, confusing ansi2knr. (gdevpstr.c)
- - EPS files produced invalid PDF output. (gdevpdf.c)
- - "Vector" output devices didn't recognize %d in output file names,
-or - for output to stdout. (gdevprn.h, gxdevice.h, gdevprn.c, gdevvec.c,
-gsdevice.c)
- - With the pdfwrite driver, restore or grestore would cause a
-rangecheck error in .installpagedevice if a setpagedevice had been executed.
-(gdevpdfp.c)
- - The pdfwrite driver produced garbage output for text rotated by
-angles that were only infinitesimally different from multiples of 90
-degrees. (gdevpdft.c)
- - The pnm[raw] driver didn't handle anti-aliasing properly.
-(gdevpbm.c)
- - The PDF writer didn't scale the parameters for [a][width]show
-correctly. (gs_pdfwr.ps, gdevpdft.c)
-
-Fixes some minor compilation warnings not affecting code functionality.
-(gdevbbox.c, gdevpdfm.c, gshtscr.c, gsmemory.c, gxccman.c, gxfill.c,
-gximage0.c)
-
-Fixes some bugs in the uniprint driver and adds some more printer models.
-(gdevupd.c, bjc610a*.upp, bjc610b*.upp, necp2x6.upp, stc1520h.upp)
-
-Makes a small change for clean compilation on BeOS. (gdevcdj.c)
-
-Updates the PNG driver to use updated API calls for allocating/initializing
-and freeing the PNG structures. (gdevpng.c)
-
-</pre><h3><a name="V5.02_Platforms"></a>Platforms</h3><pre>
-
-Refactors the MS Windows code to allow building the library without the
-interpreter. (gs_msio.c, gs_mslib.c, gp_mswin.c)
-
-</pre><h3><a name="V5.02_Fonts"></a>Fonts</h3><pre>
-
-Fixes bugs:
- - definefont was executed twice on TrueType fonts. (No bad
-consequences, just unnecessary work.) (gs_ttf.ps)
-
-</pre><h3><a name="V5.02_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - The fix for the 'stopped' around run_string_* in 5.01 was made
-incorrectly. (gs_init.ps)
- - Many operators that expect a matrix operand didn't accept packed
-arrays. (iutil.c)
- - The default CRD didn't have an explicit BlackPoint, which some
-Genoa tests require. (gs_lev2.ps)
- - A stack protection fix caused setscreen and setcolorscreen with
-dictionary operands to give a typecheck. (gs_dps2.ps)
- - Executing a string didn't handle tail recursion properly if the
-last token was followed by a single whitespace character. (interp.c)
- - Clearing the error indication didn't set errorname to null.
-(gs_init.ps)
- - Some unexpected items appeared on the execution stack, confusing
-some of the Genoa tests. (gs_init.ps, istack.h, istack.c, zcontrol.c)
- - The dummy definitions for setucacheparams/ucachestatus didn't look
-enough like the real ones. (gs_dps2.ps)
- - Insideness tests didn't work, because the hit detection device
-width and height weren't set up. (zupath.c)
- - defineuserobject didn't use the same algorithm for growing the
-array as Adobe interpreters. (gs_dps2.ps)
- - eq and ne didn't work correctly on save objects. (iutil.c)
- - findfont used =string internally, interfering with PostScript
-programs that also used it. (gs_fonts.ps)
- - cshow didn't set up scaled versions of base fonts as the current
-font. (zchar2.c)
- - defineresource didn't make the resource value read-only.
-(gs_res.ps)
- - If inustroke got an error, it could return without an error
-indication and without changing the stack. (zupath.c)
- - The arrays returned by different invocations of currentcolorspace
-with the same device color space weren't guaranteed to be eq. (gs_lev2.ps)
- - Out-of-range integers followed by a '.' were converted to names
-rather than reals. (iscan.c, iscannum.c)
- - resourceforall caused an invalidaccess error if currentglobal was
-true but the procedure, template, or scratch string was in local VM.
-(gs_res.ps)
- - In many places, integer values were converted to floats rather
-than doubles, losing precision. (ichar.h, icharout.h, ifont.h, iutil.h,
-idparam.c, iparam.c, iutil.c, zchar.c, zchar1.c, zchar42.c, zcharout.c,
-zcie.c, zcolor.c, zcolor1.c, zcolor2.c, zcontrol.c, zcsindex.c, zcssepr.c,
-zdpnext.c, zdps1.c, zfont.c, zfont2.c, zgstate.c, zhsb.c, zht.c, zmath.c,
-zmatrix.c, zmedia2.c, zpath.c, zpath1.c, zupath.c)
- - The TransformPQR procedure in the default CRD didn't pop its
-auxiliary operands from the stack. (gs_lev2.ps)
- - Because of an incorrect stack depth check, setcolorrendering
-sometimes produced a stackunderflow. (zcrd.c)
- - sethalftone caused an invalidaccess error if the HalfTone type was
-not 5, the dictionary was in local VM, and the current VM was global.
-(gs_dps2.ps)
- - writeobject and printobject caused an invalidaccess error if the
-object being written was in local VM and the current VM was global.
-(gs_btokn.ps)
- - ustrokepath appended the strokepath segments to the current path,
-rather than replacing the path. (zupath.c)
- - restore incorrectly purged from the character cache any characters
-in a font being freed, even if the font had a UID. (zfont.c)
- - The definition of zimage_opaque_setup confused ansi2knr.
-(zimage.c)
- - Type 42 fonts that included the padding byte in each sfnts string
-didn't work if sfnts had more than one string. (zfont42.c)
- - Doing a garbage collection at the same time as handling a
-stackoverflow failed to update the object that needed re-execution, causing
-the interpreter to execute random data. (interp.c)
- - %stdout and %stderr weren't flushed if they were closed
-explicitly. (ziodev.c)
-
-For greater Adobe compatibility:
- - Changes setdash to limit dash patterns to 11 elements. (This is
-enforced at the PostScript level: the graphics library doesn't have a
-limit.) (gs_init.ps)
- - Changes ^D and ^Z so they are not self-delimiting characters, and
-changes ^K so it is not a whitespace character. (gs_init.ps, iscan.c,
-scantab.c)
- - Makes = cause an error on non-read-accessible objects rather than
-printing them as --nostringval--. (gs_init.ps)
- - When -dSUBSTFONT= is used, makes findfont return the actual named
-font, rather than a copy with the FontName changed to the requested one.
-(gs_fonts.ps)
- - CFF fonts with a non-default FontMatrix caused an error.
-(gs_cff.ps)
-
-Fixes some minor compilation warnings not affecting code functionality.
-(iparam.c, zfcmap.c)
-
-Strengthens the test of o-stack validity in the main interpreter loop in
-debug mode. (interp.c)
-
-Changes the filling rule for Type 1 fonts from winding-number to even-odd.
-This affects no properly designed fonts, and seems to match Adobe
-interpreters better. (zchar1.c)
-
-Implements non-standard Encodings in CFF fonts. (gs_cff.ps)
-
-Changes the default halftone screen for 600 dpi printers from 85 to 106 lpi,
-which reduces the number of halftone levels from 50 to 32 but produces
-visually better output. (gs_init.ps)
-
-</pre><h3><a name="V5.02_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - Pattern color spaces weren't supported. (gs_pdf.ps, pdf_draw.ps)
-
-Causes references to undefined named Destinations to be ignored rather than
-giving an error. (pdf_main.ps)
-
-</pre><h3><a name="V5.02_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - A 'const' was omitted in a declaration, upsetting several
-compilers. (gxclread.c)
- - arct and arcto gave an error for negative radii. (gspath1.c)
- - The collinearity check for arct[o] could cause some arcs to be
-rendered as single points. (gspath1.c)
- - Uncolored patterns sometimes came out blank, because the color
-wasn't set before calling the PaintProc. (gspcolor.c)
- - The phase for masking colored patterns was wrong, producing
-incorrect output. (gspcolor.c)
- - reversepath always appended the current position to the new path,
-rather than only doing so if the path just consisted of a single moveto.
-(gxpath2.c)
- - cshow didn't restore the current font properly. (gschar.h,
-gschar.c)
- - The check for whether characters can be cached didn't consider
-PaintType values other than 0 and 2. (gschar.c)
- - The bounding box device didn't handle PageCount properly.
-(gdevbbox.c)
- - Uncached fonts with a next_char procedure didn't set the glyph
-properly. (gschar.c)
- - Parallelograms with ax &lt; bx, ay &lt; by, and the 'a' edge to the
-right of the 'b' edge weren't filled, causing pixels to be omitted from some
-highly skewed images. (gdevddrw.c)
- - 12-bit-per-pixel images in portrait orientation filled each scan
-line with the value of the last pixel -- i.e., didn't work. (gximage4.c)
- - The path representation of a clipping path could include some
-inappropriate, leftover path segments. (gxcpath.c)
- - The angle for the miter check was computed in device space rather
-than in user space. (gxstroke.c)
- - TrueType fonts were lumpy, and the accents of accented characters
-were placed incorrectly. (gstype42.c)
- - Some macros used for generating device prototypes didn't
-parenthesize all uses of their parameters, causing possible errors if the
-parameters were expressions rather than numeric constants. (gdevprn.h)
- - When banding, strip halftones (typically produced by
-AccurateScreens) sometimes didn't have the correct phase. (gxbitmap.h,
-gxclread.c)
- - A minor change was required for correct compilation with Microsoft
-VC++. (memory_.h)
- - Under certain conditions, character shapes could get wildly
-distorted by hints. (bug introduced in 5.01) (gxhint3.c)
-
-For greater Adobe compatibility:
- - Changes reversepath so that the implicit line created by closepath
-is not considered a "segment". (gxpath2.c)
-
-Fixes some minor compilation warnings not affecting code functionality.
-(gstype1.c)
-
-Changes the font and scaled-font caches so that if the font has a UID
-(UniqueID or XUID), the UID and FontType are both considered part of the
-key, and we don't cache fonts with non-zero PaintType. (The Red Book says
-that changing anything except the Encoding should also change or remove the
-UID, but some files don't do this. The current fix is probably not
-sufficient, but it is a step in the right direction.) (gxfcache.h,
-gxccache.c, gxccman.c)
-
-Splits off the definitions of font_type and fbit_type into a separate file,
-since gxfcache.h now needs font_type. (gxfcache.h, gxfont.h, gxftype.h)
-
-Makes the Flex feature in Type 1 fonts conform to the published
-specification, rather than always producing curves. The comment in the code
-(and in the NEWS entry for release 2.6) says that this breaks some very old
-Adobe fonts: if this turns out to be a problem, we'll figure out a test that
-will do the right thing for these fonts. (gstype1.c)
-
-Provides 'double' versions of some API functions to accommodate the
-increased use of doubles in the interpreter. (gschar.h, gschar.c)
-
-Adds a compile-time option to force the use of strip halftones, for
-debugging. (gshtscr.c)
-
-Changes the hint snapping algorithm in the Type 1 rasterizer so that it will
-only change a stem width by a maximum of 1/2 pixel rather than 1 pixel.
-This appears to help with dropouts at certain sizes. (gxhint2.c)
-
-Makes a few changes for clean compilation on BeOS. (stdpre.h, stat_.h,
-gxcpath.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.01"></a>Version 5.01 (6/22/97)</h2>
-
-<p>
-This fixes a few bugs reported in the 5.0 release. This will be a
-commercially supported release.
-
-<h3><a name="V5.01_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - README referred to an obsolete file devarch.txt. (README)
- - The comment on flip4x12 had a typo. (gsflip.c)
- - The algorithm comments for adjusted_y_spans_pixel weren't precise
-enough. (gxfill.c)
- - The usage message printed by the ps2pdf script didn't indicate
-that one can now insert options before the input file name. (ps2pdf)
- - The file searching documentation didn't indicate that paths
-beginning with ./ or ../ are considered "explicit" and not subject to
-searching. (use.txt)
- - The description of SEARCH_HERE_FIRST in the per-platform makefiles
-indicated that it only applied to initialization files, not to files
-specified on the command line as well. (*.mak)
- - There were still some references to 16-bit implementations.
-(install.txt)
-
-Clarifies that -dNODISPLAY also suppresses output to other devices.
-(use.txt)
-
-Adds the e-mail address for reporting problems to the bug report form, and
-also a space to report makefile changes. (bug-form.txt)
-
-Adds a note under -g indicating that it fixes the media size. (use.txt)
-
-Adds an explanation of why Ghostscript can't use the system libraries for
-the JPEG package. (make.txt)
-
-Notes that ps2ai doesn't work properly with Adobe's Helvetica-Oblique font,
-and other fonts whose original FontMatrix involves skewing or rotation.
-(psfiles.txt)
-
-Updates the uniprint documentation slightly. (devices.txt)
-
-Notes that the new lj5 drivers do not work with the LJ5L. (devs.mak)
-
-Modifies the Aladdin Free Public License slightly to make it clearer that
-the exception for freely redistributable CD-ROMs only applies if the CD-ROM
-is being distributed by itself, not with anything else commercial. (This
-has always been the case, but the previous wording wasn't clear enough.)
-(PUBLIC)
-
-Notes that gcc with -O still has code generation problems on H-P RISC
-machines. (make.txt)
-
-Adds a pointer to Martin Lottermoser's hpdj driver. (new-user.txt)
-
-Enhances and reorganizes the documentation for building Ghostscript, in
-response to user feedback. (make.txt, install.txt)
-
-Adds a description of the EPSF recognition feature. (language.txt)
-
-</pre><h3><a name="V5.01_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - string__h was misspelled string_h in one place. (lib.mak)
- - gs_dps.ps wasn't installed by "make install". (unix-end.mak)
- - ccgs (used with non-ANSI C compilers) didn't do the right thing
-with -DPNG_USE_CONST. (ccgs)
-
-Adds support for version 96 of libpng, and updates all the makefiles to
-reference it. (libpng.mak, *.mak)
-
-Updates the MSVC makefiles to get rid of some warning messages and provide a
-way to specify a library path for the final link. (msvc*.mak)
-
-</pre><h3><a name="V5.01_Utilities"></a>Utilities</h3><pre>
-
-Fixes bugs:
- - The usage message for the gslp utility had a minor typo.
-(gslp.ps)
- - The "line printer" utility didn't expand tabs properly when
-producing PostScript output. (gslp.ps)
- - The gslp utility didn't automatically include the date. (gslp)
- - The line printer scripts didn't pass the script name to the
-utility program, so the usage message didn't use the correct name. (gsbj*,
-gsdj*, gslj*, gslp*, lp*)
-
-Modifies the gslp utility so that invoking it with no arguments prints the
-usage message. (gslp.ps)
-
-Adds the ability to specify the number of bits per component to the
-CMYK-viewing utility. (viewcmyk.ps)
-
-Changes the ps2pdf script so that on Windows NT, as on Unix, it allows
-omitting the output file name, automatically replacing the extension of the
-input file with .pdf. (ps2pdf.bat)
-
-</pre><h3><a name="V5.01_Drivers"></a>Drivers</h3><pre>
-
-Fixes bugs:
- - Some compilers didn't accept a #define with the macro name on the
-next line. (gdevpx.c)
- - The procedure dash_pattern_eq was defined in two places.
-(gdevpdf.c)
- - The uniprint driver sometimes dropped some output or got confused,
-because of a misunderstanding about how to update device procedure vectors
-properly. (gdevupd.c)
- - The PostScript and EPS writers produced binary output for images,
-which generally can't be sent to PostScript printers. (gdevpsdf.h,
-gdevpdf.c, gdevps.c)
- - The EPS writer put a %%EOF at the end of the file, which might
-cause problems for some spoolers if the file is embedded in another.
-(gdevps.c)
-
-Changes the implementation of printer drivers so that they flush the output
-stream after each page. We aren't absolutely sure that this is a good idea,
-but it prevents certain anomalous behavior where the last page isn't ejected
-properly. (gdevprn.c)
-
-Implements a long-delayed update to the mgr drivers, to restore the color
-mapping to an older one. (gdevmgr.h, gdevmgr.c)
-
-Updates the uniprint driver with a number of changes from its author.
-(gdevupd.c)
-
-</pre><h3><a name="V5.01_Platforms"></a>Platforms</h3><pre>
-
-Adds the JPEG, Postscript, and PCL XL drivers, which are included on all
-other platforms, to the MS Windows platforms. (bcwin32.mak, msvc4.mak,
-msvc5.mak, watcw32.mak)
-
-</pre><h3><a name="V5.01_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - composefont defined the resource with the font name and font
-directory interchanged. (gs_cmap.ps)
- - With dFIXEDMEDIA, documents requesting other sizes caused an error
-instead of clipping the page. (gs_init.ps)
- - PageSize Policy = 7 wasn't implemented. (However, the current
-implementation is wrong.) (gs_setpd.ps, zmedia2.c)
- - FontType resource 42 wasn't defined even if Type 42 fonts were
-supported; similarly for FontType 9, 10, and 11 for CIDFonts. (gs_cidfn.ps,
-gs_res.ps)
- - The error handling machinery would break if the name /errordict
-was redefined. (gs_init.ps)
- - Level 1 systems got an /undefined in .doneshowpage. (zdevice.c,
-zdevice2.c)
- - Because of an initialization order problem, copy didn't work on
-gstates. (zgeneric.c)
-
-Adds a naive implementation of findcolorrendering. (gs_lev2.ps, gs_res.ps)
-
-Removes the 'stopped' around run_string[_begin/continue/end] so that, as in
-4.03, errors print a hex dump and exit with a non-zero code instead of
-printing a readable message and continuing. (We aren't sure that this
-change didn't undo the fix in 5.0 regarding calling startjob from
-run_string.) (gs_init.ps)
-
-</pre><h3><a name="V5.01_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
-
-Fixes bugs:
- - stdin redirection failed for PDF files even if the new stdin was
-seekable. This was fixed in 4.02, but the fix stopped working with the
-introduction of .runexec. (pdf_main.ps)
-
-Makes the cross-reference reader accept a startxref value that points at the
-EOL before the xref line. The Adobe documentation doesn't allow this, but
-some real files are this way. (pdf_main.ps)
-
-</pre><h3><a name="V5.01_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - The bounding box of a completely empty path was reported as
-garbage. (gxpath2.c)
- - Stroking a path with more than one segment didn't produce correct
-output when anti-aliasing was used. (gspaint.c)
- - The alpha-buffer device returned an incorrect clipping box,
-causing output to be discarded. (gdevabuf.c)
- - gx_forward_get_clipping_box passed the wrong device to the target
-procedure, producing incorrect results. (gdevnfwd.c)
- - The sin/cos procedure did some unnecessary computations
-(performance bug only). (gsmisc.c)
- - The procedure for adjusting the ends of curves to match the
-tangents did some unnecessary computations (performance bug only).
-(gxpcopy.c)
- - RAM-based banding always gave an invalidfileaccess error, due to a
-typo in memfile_fopen. (gxclmem.c)
- - The algorithms for deciding whether a line is thin still weren't
-correct. (gxstroke.c)
- - The fill adjustment values for the any-part-of-pixel case (adjust
-= 0.5) were (0.5-epsilon, 0.5+epsilon), which colored inappropriate
-additional pixels if the higher coordinate was integral. With considerable
-trepidation, we have changed this to (0.5-epsilon,0.5), which does the right
-thing in every case we can think of. (gxfill.c)
- - When banding, paths were clipped to only 0.5 pixel outside their
-bounding box, which may be slightly too conservative; 1 pixel is safer.
-(gxclpath.c)
- - The algorithm for testing whether an adjusted Y value spanned a
-pixel center was incorrect, causing some pixels to get colored incorrectly.
-(gxfill.c)
- - 24-bit devices could cause a memory fault, by accessing a pointer
-just beyond the end of the line pointer array. (gdevm24.c)
- - Astonishingly enough, the determination of which hints were
-applicable to a given segment of a Type 1 character was wrong in several
-different places. Fixing this in a way that correctly handled all allowed
-permutations of the coordinate system was not simple. (gxfont1.h,
-gxhint1.c, gxhint3.c)
- - The debugging printout macros didn't include the syntactic hack to
-prevent an 'else' from begin assigned to the wrong 'if'. (gdebug.h)
- - The bbox device was accidentally limited to 130 x 130 pixels (not
-130" x 130"). (bug introduced in 5.0) (gdevbbox.c)
- - The bbox device didn't recognize PageBoundingBox in put_params,
-causing a possible /undefined error on [g]restore. (gdevbbox.c)
- - setlinewidth didn't take the absolute value of its operand.
-(zgstate.c)
- - Some code formatting was slightly off. (gximage5.c)
- - Some extra pixels were written for Interpolated images, but they
-were immediately overwritten, so the output was correct. (gximage5.c)
-
-Changes the data flipping API from a macro to a procedure, adds a return
-value, and makes the individual flipping procedures private. (gsflip.h,
-gsflip.c)
-
-Adds (under an #ifdef FUTURE) code to allow passing multi-plane images
-through the band list. (gxclpath.h, gxclimag.c, gxclread.c)
-
-Adds (under an #ifdef FUTURE) code to allow passing interpolated images
-through the band list. NOTE: interpolated images will appear slightly
-different than without banding, because the part of the image intersecting
-each band will be scaled slightly differently in the (device) Y direction.
-(gxclpath.h, gxclimag.c, gxclread.c, gximage.c)
-
-Changes Type 1 hinting so that when it moves points on a curve, it does so
-by properly scaling the curve in the given direction. (gxhint3.c)
-
-</pre>
-
-<hr>
-
-<h2><a name="Version5.0"></a>Version 5.0 (6/6/97)</h2>
-
-<p>
-This is the first public release since 4.03.
-
-<h3><a name="V5.0_Documentation"></a>Documentation</h3><pre>
-
-Fixes bugs:
- - Fontmap.Sol was incorrectly referred to as Fontmap.Solaris.
-(use.txt)
- - There was still a reference to pstoppm in the documentation.
-(psfiles.txt)
- - The JPEG DOS source site information was out of date. (jpeg.mak)
- - The list of devices included in the distributed Unix makefiles was
-out of date. (make.txt)
- - The MCU size limitation on the DCT filters was documented
-incorrectly. (current.txt)
- - The URL for the uniprint driver home page was incorrect.
-(devices.txt)
- - The makefiles referred to sfilefd.c, which is now named sfxfd.c.
-(gs.mak, *.mak)
-
-Adds a VMS help file. (gs-vms.hlp)
-
-Removes documentation for Digital Unix (OSF/1) 1.2 and 1.3, which are now
-long obsolete, and updates the documentation for current versions.
-(make.txt)
-
-Notes that there may be a problem with libpng version 0.95. (libpng.mak)
-
-Adds some specific documentation for the JPEG drivers. (devices.txt)
-
-Adds a suggestion that people compiling Ghostscript check the values of
-JVERSION and PVERSION. (make.txt)
-
-Removes the requirement for setting the LIB environment variable when
-compiling with MSVC. (make.txt)
-
-</pre><h3><a name="V5.0_Procedures"></a>Procedures</h3><pre>
-
-Fixes bugs:
- - There were a number of small errors in the new OpenVMS makefile.
-(openvms.mak)
- - The MSVC makefiles omitted a necessary switch to work around some
-"unspecified Pentium bugs". (msvccom.mak)
- - The Borland makefile wasn't even close to working; fixing it
-required moving the compilation rule for genarch.exe into the
-compiler-specific makefiles. (bcwin32.mak, msvccom.mak, watcw32.mak,
-wincom.mak)
- - There were some (harmless) undefined macro references in the MSVC
-makefile. (msvccom.mak)
-
-Makes it unnecessary to set the LIB environment variable for MSVC.
-(msvc4.mak, msvc5.mak, wincom.mak)
-
-Adds a note on compiling with the cygwin32 gcc compiler for Windows NT.
-(make.txt)
-
-Updates vms.mak yet again, hopefully for the last time. (vms.mak)
-
-Moves the CGM, JPEG, and MIFF file formats from DEVICE_DEVS8 to
-DEVICE_DEVS14 to shorten command lines; adds pcxcmyk to all platforms that
-include PCX format at all; adds jpeggray to all platforms that include jpeg.
-(devs.mak, *.mak)
-
-Adds -DPNG_USE_CONST for compiling libpng, to get rid of compiler warning
-messages. (gs.mak)
-
-Removes obsolete makefiles from the fileset. (tccommon.mak, tctail.mak)
-
-</pre><h3><a name="V5.0_Interpreter"></a>Interpreter</h3><pre>
-
-Fixes bugs:
- - restore was broken if -dNOBIND was invoked. This fix should have
-been in the 4.81 fileset, but was left out due to operator error.
-(gs_dps1.ps)
- - Some compilers complained about macro argument replacement within
-a string literal. (isave.c)
- -dSAFER didn't allow opening the %stdxxx files, which caused the
-combination of -dSAFER and -dNOBIND to cause an infinite error.
-(gs_init.ps)
- - If C code used run_string to execute a startjob, an error
-occurred. (gs_init.ps)
-
-</pre><h3><a name="V5.0_Library"></a>Library</h3><pre>
-
-Fixes bugs:
- - Some compilers complained about macro argument replacement within
-a string literal. (gxclbits.c, gdevpdfi.c)
- - At certain resolutions, a 1-pixel line of the wrong color could
-appear at one edge of landscape-oriented monobit images. (This is the 4th
-or 5th time we have "fixed" this one infuriatingly fragile piece of code.)
-(gxfixed.h, gximage1.c)
- - The optimized code for landscape monobit images overlooked the
-possibility of partial images, causing parts of images to be translated and
-possibly clipped. (Yes, it's that same fragile piece of code.)
-(gximage1.c)
- - The bounding box device allowed resetting its resolution, which
-could cause limitchecks from coordinate overflow. Our fix is to initialize
-the device to a very high resolution (4000 dpi), which reduces the maximum
-page size it can handle to about 130" on a side. (gdevbbox.c)
- - The bounding box device wasn't identified as a page device.
-(gdevbbox.c)
- - The bounding box device used alone disregarded changes in page
-size. (gdevbbox.c)
- - One old compiler didn't allow a structure member name to be the
-same as a typedef name. (gximage.h, gximage.c, gximage4.c)
- - The height and band intersection computations for banded images
-still weren't right, leading to inconsistencies in the band list and errors
-in the output (typically, thin horizontal white stripes at band boundaries).
-(gxclimag.c)
-
-Adds an extensive memory dump facility to the standard allocator.
-Eventually this should be moved into a separate file, but it would be too
-disruptive to do this just before a release. (gsalloc.c)
-
-</pre>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1997, 1998, 1999, 2000 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History6.htm b/Master/xemtex/doc/ghostscript/History6.htm
deleted file mode 100644
index c6229760705..00000000000
--- a/Master/xemtex/doc/ghostscript/History6.htm
+++ /dev/null
@@ -1,7293 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 6.n</title>
-<!-- $Id: History6.htm,v 1.30.2.11.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<table width="100%" border="0">
-<tr><th align="center" bgcolor="#CCCC00"><font size=6>History of Ghostscript versions 6.n</font>
-</table>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version6.64">Version 6.64 (2001-04-07)</a>
-<ul>
-<li><a href="#6.64_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.64-Documentation">Documentation</a>,
- <a href="#6.64-Procedures">Procedures</a>,
- <a href="#6.64-Utilities">Utilities</a>,
- <a href="#6.64-Drivers">Drivers</a>,
- <a href="#6.64-PDF_writer">PDF writer</a>,
- <a href="#6.64-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#6.64-Interpreter">Interpreter</a>,
- <a href="#6.64-Streams">Streams</a>,
- <a href="#6.64-Library">Library</a>,
- <a href="#6.64-Other">Other</a>
-</ul>
-<li><a href="#Version6.63">Version 6.63 (2001-03-31)</a>
-<ul>
-<li><a href="#6.63_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.63-Documentation">Documentation</a>,
- <a href="#6.63-Procedures">Procedures</a>,
- <a href="#6.63-Utilities">Utilities</a>,
- <a href="#6.63-Drivers">Drivers</a>,
- <a href="#6.63-PDF_writer">PDF writer</a>,
- <a href="#6.63-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#6.63-Interpreter">Interpreter</a>,
- <a href="#6.63-Streams">Streams</a>,
- <a href="#6.63-Library">Library</a>
-</ul>
-<li><a href="#Version6.62">Version 6.62 (2001-03-19)</a>
-<ul>
-<li><a href="#6.62-Documentation">Documentation</a>,
- <a href="#6.62-Procedures">Procedures</a>,
- <a href="#6.62-Utilities">Utilities</a>,
- <a href="#6.62-Drivers">Drivers</a>,
- <a href="#6.62-PDF_writer">PDF writer</a>,
- <a href="#6.62-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#6.62-Interpreter">Interpreter</a>,
- <a href="#6.62-Streams">Streams</a>,
- <a href="#6.62-Library">Library</a>,
- <a href="#6.62-Other">Other</a>
-</ul>
-<li><a href="#Version6.61">Version 6.61 (2001-02-21)</a>
-<ul>
-<li><a href="#6.61-Documentation">Documentation</a>,
- <a href="#6.61-Procedures">Procedures</a>,
- <a href="#6.61-Utilities">Utilities</a>,
- <a href="#6.61-Drivers">Drivers</a>,
- <a href="#6.61-PDF_writer">PDF writer</a>,
- <a href="#6.61-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#6.61-Interpreter">Interpreter</a>,
- <a href="#6.61-Streams">Streams</a>,
- <a href="#6.61-Library">Library</a>,
- <a href="#6.61-Other">Other</a>
-</ul>
-<li><a href="#Version6.60">Version 6.60 (2000-12-31)</a>
-<ul>
-<li><a href="#6.60_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.60-Documentation">Documentation</a>,
- <a href="#6.60-Procedures">Procedures</a>,
- <a href="#6.60-Utilities">Utilities</a>,
- <a href="#6.60-Drivers">Drivers</a>,
- <a href="#6.60-PDF_writer">PDF writer</a>,
- <a href="#6.60-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#6.60-Interpreter">Interpreter</a>,
- <a href="#6.60-Streams">Streams</a>,
- <a href="#6.60-Library">Library</a>,
- <a href="#6.60-Other">Other</a>
-</ul>
-<li><a href="#Version6.30">Version 6.30 (2000-10-03)</a>
-<ul>
-<li><a href="#6.30_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.30 Documentation">Documentation</a>,
- <a href="#6.30 Procedures">Procedures</a>,
- <a href="#6.30 Utilities">Utilities</a>,
- <a href="#6.30 Drivers">Drivers</a>,
- <a href="#6.30 PDF writer">PDF writer</a>,
- <a href="#6.30 Interpreter (PDF)">Interpreter (PDF)</a>,
- <a href="#6.30 Interpreter">Interpreter</a>,
- <a href="#6.30 Streams">Streams</a>,
- <a href="#6.30 Library">Library</a>,
- <a href="#6.30 ???Other???">???Other???</a>
-</ul>
-<li><a href="#Version6.23">Version 6.23 (2000-08-07)</a>
-<ul>
-<li><a href="#6.23_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.23 Documentation">Documentation</a>,
- <a href="#6.23 Procedures">Procedures</a>,
- <a href="#6.23 Utilities">Utilities</a>,
- <a href="#6.23 Drivers">Drivers</a>,
- <a href="#6.23 PDF writer">PDF writer</a>,
- <a href="#6.23 Interpreter (PDF)">Interpreter (PDF)</a>,
- <a href="#6.23 Interpreter">Interpreter</a>,
- <a href="#6.23 Library">Library</a>
-</ul>
-<li><a href="#Version6.22">Version 6.22 (2000-07-05)</a>
-<ul>
-<li><a href="#6.22_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.22 Documentation">Documentation</a>,
- <a href="#6.22 Procedures">Procedures</a>,
- <a href="#6.22 Utilities">Utilities</a>,
- <a href="#6.22 Drivers">Drivers</a>,
- <a href="#6.22 PDF writer">PDF writer</a>,
- <a href="#6.22 Interpreter (PDF)">Interpreter (PDF)</a>,
- <a href="#6.22 Interpreter">Interpreter</a>,
- <a href="#6.22 Streams">Streams</a>,
- <a href="#6.22 Library">Library</a>
-</ul>
-<li><a href="#Version6.21">Version 6.21 (2000-04-28)</a>
-<ul>
-<li><a href="#6.21_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.21 Documentation">Documentation</a>,
- <a href="#6.21 Procedures">Procedures</a>,
- <a href="#6.21 Utilities">Utilities</a>,
- <a href="#6.21 Drivers">Drivers</a>,
- <a href="#6.21 PDF writer">PDF writer</a>,
- <a href="#6.21 Interpreter (PDF)">Interpreter (PDF)</a>,
- <a href="#6.21 Interpreter">Interpreter</a>,
- <a href="#6.21 Streams">Streams</a>,
- <a href="#6.21 Library">Library</a>
-</ul>
-<li><a href="#Version6.20">Version 6.20 (2000-04-06)</a>
-<ul>
-<li><a href="#6.20_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.20 Documentation">Documentation</a>,
- <a href="#6.20 Procedures">Procedures</a>,
- <a href="#6.20 Utilities">Utilities</a>,
- <a href="#6.20 Drivers">Drivers</a>,
- <a href="#6.20 PDF writer">PDF writer</a>,
- <a href="#6.20 Interpreter (PDF)">Interpreter (PDF)</a>,
- <a href="#6.20 Interpreter">Interpreter</a>,
- <a href="#6.20 Streams">Streams</a>,
- <a href="#6.20 Library">Library</a>
-</ul>
-<li>(Versions 6.02 - 6.19 deliberately omitted.)
-<li><a href="#Version6.01">Version 6.01 (2000-03-17)</a>
-<ul>
-<li><a href="#6.01_Incompatible_changes">Incompatible changes</a>,
- <a href="#6.01 Documentation">Documentation</a>,
- <a href="#6.01 Procedures">Procedures</a>,
- <a href="#6.01 Utilities">Utilities</a>,
- <a href="#6.01 Drivers">Drivers</a>,
- <a href="#6.01 PDF writer">PDF writer</a>,
- <a href="#6.01 Interpreter (PDF)">Interpreter (PDF)</a>,
- <a href="#6.01 Interpreter">Interpreter</a>,
- <a href="#6.01 Streams">Streams</a>,
- <a href="#6.01 Library">Library</a>
-</ul>
-<li><a href="#Version6.0">Version 6.0 (2000-02-03)</a>
-<ul>
-<li><a href="#6.0_Documentation">Documentation</a>,
- <a href="#6.0_Procedures">Procedures</a>,
- <a href="#6.0_Utilities">Utilities</a>,
- <a href="#6.0_Drivers">Drivers</a>,
- <a href="#6.0_Platforms">Platforms</a>,
- <a href="#6.0_Fonts">Fonts</a>,
- <a href="#6.0_PDF_writer">PDF writer</a>,
- <a href="#6.0_Interpreter_PDF">Interpreter (PDF)</a>,
- <a href="#6.0_Interpreter">Interpreter</a>,
- <a href="#6.0_Streams">Streams</a>,
- <a href="#6.0_Library">Library</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a record of changes in Ghostscript releases numbered 6.n.
-For earlier versions, see the the history documents:
-
-<blockquote>
-<a href="History5.htm">History of Ghostscript versions 5.n</a><br>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-Within each release, news appears in the following order: Incompatible
-changes, Documentation, Procedures, Utilities, Drivers, Platforms, Fonts,
-PDF writer (included under Drivers through fileset 5.88), Interpreter,
-Streams (included under Interpreter through release 2.9.9), Library.
-Changes marked with a * were made available as patches to a previous
-release.
-
-<hr>
-
-<h1><a name="Version6.64"></a>Version 6.64 (2001-04-07)</h1>
-
-<p>
-This is probably the last beta release before 7.0. Most of the patches
-since last time are bug and portability fixes.
-
-<p>
-All problems registered on SourceForge numbered 414104 or lower are
-closed, except for the following: 209350, 215256, 219798, 221582,
-222534, 222727, 224056, 224863, 226477, 226584, 227684, 227709,
-228180, 228641, 230694, 231390, 404255, 404482, 405342, 406285,
-406689, 406696, 406979, 407342, 409887, 410371, 411753, 413114,
-413669, 413747, 414022, 414104.
-
-<h3><a name="6.64_Incompatible_changes"></a>Incompatible changes</h3>
-
-<pre>
-(Library)
- - The gs_logical_operation_t type now has a bit indicating
-PDF 1.4 transparency.
-(Build process)
- - The default directories for XLIBDIR and XINCLUDE now point
-to /usr/X11R6.
-
-
-<h2><a name="6.64-Documentation"></a>Documentation</h2><pre>
-
-1. Removing the article "Minor Bugs. kshow doesn't restore currentfont after
-running proc." due to fixed. 2. Adding article "Buffering in input filters"
-to "Differences from Adobe Implementation". (doc/Issues.htm [1.6]:
-2001/04/03 15:53:01 igorm)
-
-Updates Glenn Ramsey's email address in the Epson 300 documentation.
-(doc/Devices.htm [1.24]: 2001/04/04 04:25:00 raph)
-
-Adds request for code-review submissions to identify intended branches.
-(doc/Maintain.htm [1.14]: 2001/04/04 07:22:48 raph)
-
-Move SourceForge bug #226943 to the "Other implementation" section of this
-document. The %ram% device has never been a user or customer issue, but it
-might be handy to have. (doc/Projects.htm [1.27]: 2001/04/04 16:36:36 rayjj)
-
-Updates to documentation. Remove the statement that the Inprise compiler is
-used for Windows distribution archives. (doc/Bug-info.htm [1.14],
-doc/Fonts.htm [1.16], doc/Install.htm [1.20], doc/Make.htm [1.26],
-doc/New-user.htm [1.23], doc/Release.htm [1.32], doc/Tester.htm [1.10]:
-2001/04/05 08:49:57 ghostgum)
-
-Adds issues from SourceForge bug numbers: 232334, 233403, 406643. Also adds
-missing bug ID for #228808. (doc/Issues.htm [1.7]: 2001/04/05 14:44:39
-rayjj)
-
-Various documenation fixups. Removes pointer to external pdf_sec.ps now that
-the full implementation is in our distribution. Adds note on the
-class="offset" attribute to the html style guidelines. (doc/API.htm [1.5],
-doc/Bug-form.htm [1.18], doc/Htmstyle.htm [1.13], doc/New-user.htm [1.24],
-doc/Psfiles.htm [1.17], doc/Readme.htm [1.25]: 2001/04/06 11:27:00 giles)
-
-Uses better test for avoiding crash on "gs -h". Also updates API document.
-Thanks to Russell Lang. (doc/API.htm [1.6]: 2001/04/07 00:08:08 raph)
-
-adds a last few doc fixups before the 6.64 beta release.
-(doc/Bug-info.htm [1.15], doc/C-style.htm [1.15], doc/Htmstyle.htm [1.14]:
-2001/04/07 00:15:02 giles)
-
-Integrates patch from hpijs 0.94 so that Ghostscript can use hpijs drivers.
-(doc/Devices.htm [1.25]: 2001/04/07 00:33:29 raph)
-
-Corrections to interpreter API documentation. If "gs -h" executed,
-gsapi_exit() must be called next. Assign copyright to artofcode LLC.
-(doc/API.htm [1.7]: 2001/04/07 01:17:50 ghostgum)
-
-Updates version number and date in preparation for 6.64 release. Updates
-Develop.htm to accurately list source files. (doc/API.htm [1.8],
-doc/Bug-form.htm [1.19], doc/Bug-info.htm [1.16], doc/C-style.htm [1.16],
-doc/Commprod.htm [1.12], doc/Copying.htm [1.10], doc/Current.htm [1.10],
-doc/DLL.htm [1.12], doc/Develop.htm [1.36], doc/Devices.htm [1.26],
-doc/Drivers.htm [1.18], doc/Fonts.htm [1.17], doc/Helpers.htm [1.14],
-doc/History1.htm [1.10], doc/History2.htm [1.10], doc/History3.htm [1.10],
-doc/History4.htm [1.10], doc/History5.htm [1.12], doc/History6.htm [1.25],
-doc/Htmstyle.htm [1.15], doc/Install.htm [1.21], doc/Issues.htm [1.8],
-doc/Language.htm [1.29], doc/Lib.htm [1.10], doc/Maintain.htm [1.15],
-doc/Make.htm [1.27], doc/New-user.htm [1.25], doc/News.htm [1.83],
-doc/Projects.htm [1.28], doc/Ps-style.htm [1.10], doc/Ps2epsi.htm [1.11],
-doc/Ps2pdf.htm [1.28], doc/Psfiles.htm [1.18], doc/README [1.9],
-doc/Readme.htm [1.26], doc/Release.htm [1.33], doc/Source.htm [1.10],
-doc/Tester.htm [1.11], doc/Unix-lpr.htm [1.10], doc/Use.htm [1.26],
-doc/Xfonts.htm [1.10], doc/gs-vms.hlp [1.9], man/dvipdf.1 [1.7],
-man/font2c.1 [1.7], man/gs.1 [1.7], man/gslp.1 [1.7], man/gsnd.1 [1.7],
-man/pdf2dsc.1 [1.7], man/pdf2ps.1 [1.9], man/pdfopt.1 [1.7],
-man/pf2afm.1 [1.7], man/pfbtopfa.1 [1.8], man/printafm.1 [1.7],
-man/ps2ascii.1 [1.7], man/ps2epsi.1 [1.7], man/ps2pdf.1 [1.11],
-man/ps2pdfwr.1 [1.8], man/ps2ps.1 [1.14], man/wftopfa.1 [1.7]: 2001/04/07
-07:55:24 raph)
-
-Trivial doc patch. (doc/Develop.htm [1.37]: 2001/04/07 07:58:50 raph)
-
-Documentation fixups for broken internal links. (doc/Devices.htm [1.27],
-doc/Maintain.htm [1.16], doc/Make.htm [1.28], doc/Release.htm [1.34]:
-2001/04/07 08:18:53 giles)
-
-</pre><h2><a name="6.64-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - Speed up shading type 1. (lib.mak [1.47]: 2001/04/05 08:32:28
-igorm)
-
-Adds target to OS/2 makefile to build distribution zip archive. Disables
-multiple image windows for OS/2 because we can't tell when subsequent
-windows are closed. To allow multiple windows we would need to rewrite
-gspmdrv.c. (os2.mak [1.14]: 2001/04/01 10:13:24 ghostgum)
-
-Remove the bmpa*** devices from the default build. These are example devices
-to demonstrate async rendering but do not have any advantages to users over
-the bmp*** devices, and their inclusion requires thread support which is not
-available on all systems. Resolves SourceForge bug #213799.
-(unix-gcc.mak [1.15], unixansi.mak [1.11], unixtrad.mak [1.11]: 2001/04/03
-20:04:46 rayjj)
-
-updates to support libpng v1.0.9. (all-arch.mak [1.7], bcwin32.mak [1.9],
-dvx-gcc.mak [1.9], libpng.mak [1.5], msvc32.mak [1.14], msvclib.mak [1.11],
-openvms.mak [1.10], os2.mak [1.15], ugcclib.mak [1.10], unix-gcc.mak [1.16],
-unixansi.mak [1.12], unixtrad.mak [1.12], watc.mak [1.11],
-watclib.mak [1.11], watcw32.mak [1.10]: 2001/04/04 07:51:15 giles)
-
-updates to support libpng v1.0.10. OS/2 makefile fixup for v1.0.9 and above
-from Russell Lang. (all-arch.mak [1.8], bcwin32.mak [1.10],
-dvx-gcc.mak [1.10], libpng.mak [1.6], msvc32.mak [1.15], msvclib.mak [1.12],
-openvms.mak [1.11], os2.mak [1.16], ugcclib.mak [1.11], unix-gcc.mak [1.17],
-unixansi.mak [1.13], unixtrad.mak [1.13], watc.mak [1.12],
-watclib.mak [1.12], watcw32.mak [1.11]: 2001/04/06 07:27:22 giles)
-
-Integrates patch from hpijs 0.94 so that Ghostscript can use hpijs drivers.
-(contrib.mak [1.23]: 2001/04/07 00:33:29 raph)
-
-Changes default XLIBDIR and XINCLUDE to /usr/X11R6, which is far more likely
-than the previous values. (contrib.mak [1.24], ugcclib.mak [1.12],
-unix-gcc.mak [1.18], unixtrad.mak [1.14]: 2001/04/07 06:50:27 raph)
-
-Updates version number and date in preparation for 6.64 release. Updates
-Develop.htm to accurately list source files. (version.mak [1.32]: 2001/04/07
-07:55:25 raph)
-
-</pre><h2><a name="6.64-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - -dDELAYSAFER flag added; append operator fixed in Windows and OS/2
-scripts; literal newlines removed from sed script. Bugs #223896, #230699
-(lib/ps2epsi [1.5], lib/ps2epsi.bat [1.4], lib/ps2epsi.cmd [1.2],
-lib/ps2epsi.ps [1.5]: 2001/04/04 04:45:42 alexcher)
- - The fileposition operator cannot be used on some data sources. Use
-.fileposition (if on Ghostscript) and make some other changes to make this
-portable to other PostScript interpreters. SourceForge bug #223005.
-(lib/image-qa.ps [1.3]: 2001/04/04 04:54:53 rayjj)
- - Previous fix had OutputFile set to a debug value. Restoring it to
-NUL (lib/ps2epsi.bat [1.5]: 2001/04/04 05:19:33 alexcher)
- - Adds whitespace to sed command in ps2epsi, needed on RedHat Linux 6.2.
-(lib/ps2epsi [1.6]: 2001/04/04 21:05:00 raph)
-
-</pre><h2><a name="6.64-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - JPEG data made GC-traceable to prevent early freeing. Bug # 227090
-gdevjpeg.c gdevpsdu.c sdeparam.c zfdctd.c zfdcte.c : JPEG control structure
-is allocated with a descriptor. sdct.h : defines descriptors for JPEG
-structures. sjpegc.c : implements the linked list of JPEG core blocks
-sjpegd.c sjpege.c : corrects the initialization order of (de)compress
-struct's gsstruct.h : yet another macro for a structure with 1 string and 1
-ptr (gdevjpeg.c [1.3], gdevpsdu.c [1.10]: 2001/04/04 19:20:27 alexcher)
-
-Integrates patch from hpijs 0.94 so that Ghostscript can use hpijs drivers.
-(gdevhpij.c [1.1], gdevhpij.h [1.1]: 2001/04/07 00:33:29 raph)
-
-</pre><h2><a name="6.64-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - Emits W or W* after path construction operators when outputting
-clip paths in the pdfwrite driver, to be correct with respect to the PDF
-spec. (gdevpdfd.c [1.14]: 2001/04/07 07:12:52 raph)
-
-</pre><h2><a name="6.64-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - The search area for %%EOF at the end of PDF file is increased to
-4K to cover a file generated by Distiller 3.02b for AIX 4.1.1 Customer #580
-(lib/pdf_main.ps [1.31]: 2001/04/07 01:34:23 alexcher)
- - A comment is corrected to match the source.
-(lib/pdf_main.ps [1.32]: 2001/04/07 01:47:00 alexcher)
-
-PDF 1.4 improvements: Fixes garbage collection of device filter stack.
-Forces idempotent path drawing in transparency mode. Corrects handling of
-Group at toplevel page. (lib/pdf_draw.ps [1.29], lib/pdf_main.ps [1.30]:
-2001/04/06 22:23:44 raph)
-
-</pre><h2><a name="6.64-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Windows poll function now returns a code to interrupt Ghostscript
-if the text window is closing. Don't show message box on exit if user closed
-the text window. (dwmain.c [1.4], dwtext.c [1.3]: 2001/04/03 11:12:58
-ghostgum)
- - equality operation between a pointer and enum constant (with 0
-value) is a syntax error on CodeWarrior. Replacing the enum with NULL. From
-Bernd Heller (zdscpars.c [1.10]: 2001/04/04 05:25:32 alexcher)
- - Register /All and /None in the name table on look-up. Otherwise an
-attempt to set the separation color space fails with /undefined
-(zcssepr.c [1.7]: 2001/04/04 16:09:15 alexcher)
- - JPEG data made GC-traceable to prevent early freeing. Bug # 227090
-gdevjpeg.c gdevpsdu.c sdeparam.c zfdctd.c zfdcte.c : JPEG control structure
-is allocated with a descriptor. sdct.h : defines descriptors for JPEG
-structures. sjpegc.c : implements the linked list of JPEG core blocks
-sjpegd.c sjpege.c : corrects the initialization order of (de)compress
-struct's gsstruct.h : yet another macro for a structure with 1 string and 1
-ptr (zfdctd.c [1.4], zfdcte.c [1.4]: 2001/04/04 19:20:27 alexcher)
- - Set default size of MAX_ESTACK to 5000. This is the minimal fix
-recommended by L. Peter Deutsch in the followup to SourceForge bug #224095.
-This should be fixed later to handle automatic stack expansion. The
-approaches are defined by Peter as #2 and #3. Interim resolution to
-SorceForge bug #224095. (interp.c [1.8]: 2001/04/06 06:42:45 rayjj)
- - Apparently Japanese Windows uses WM_USER+1 internally and
-conflicts with gswin32c messages starting from WM_USER+1. So gswin32c
-messages are moved to WM_USER+101 range. Fix from Akira Kakuto
-(dwmainc.c [1.4]: 2001/04/06 08:36:02 ghostgum)
- - Do not put Windows stdin into binary mode if it is the console
-because this returns CR and LF each time the Enter key is pressed. This
-caused Ghostscript to not pause at following showpage prompts.
-(dwmainc.c [1.5]: 2001/04/06 08:43:29 ghostgum)
- - Genoa FTS 035-07.ps got a SEGV error caused by data being
-allocated in non-GC memory, but pointer enumumeration giving these pointers
-to the GC for tracing. Since these objects didn't have GC type headers bad
-things happened. Also change one of the allocations in sjpegc.c to immovable
-that was not -- this change was not needed to prevent the crash.
-(zfdctd.c [1.5]: 2001/04/07 00:33:22 rayjj)
- - Compressed fonts are now recognized as narrow during font
-substitution. Customer #580 (lib/gs_fonts.ps [1.11]: 2001/04/07 01:07:01
-alexcher)
- - two small issues with compilation under xlc on IBM AIX RS6000, a
-name conflict with structures names (u)int64, and trailing commas in enum
-declarations. Patch from Dan Coby. Sourceforge bug #414328.
-(dscparse.h [1.4]: 2001/04/07 07:28:33 giles)
-
-Adds target to OS/2 makefile to build distribution zip archive. Disables
-multiple image windows for OS/2 because we can't tell when subsequent
-windows are closed. To allow multiple windows we would need to rewrite
-gspmdrv.c. (dpmain.c [1.3]: 2001/04/01 10:13:24 ghostgum)
-
-updates to support libpng v1.0.10. OS/2 makefile fixup for v1.0.9 and above
-from Russell Lang. (imain.c [1.11]: 2001/04/06 07:27:22 giles)
-
-Removed unecessary include of Macintosh QDOffscreen.h header (iapi.h [1.2]:
-2001/04/06 22:57:46 bdheller)
-
-Uses better test for avoiding crash on "gs -h". Also updates API document.
-Thanks to Russell Lang. (imain.c [1.12]: 2001/04/07 00:08:08 raph)
-
-Updates version number and date in preparation for 6.64 release. Updates
-Develop.htm to accurately list source files. (lib/gs_init.ps [1.33]:
-2001/04/07 07:55:25 raph)
-
-Removes \r\n line ends inadvertently added. (dscparse.h [1.5]: 2001/04/07
-08:07:17 raph)
-
-</pre><h2><a name="6.64-Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - JPEG data made GC-traceable to prevent early freeing. Bug # 227090
-gdevjpeg.c gdevpsdu.c sdeparam.c zfdctd.c zfdcte.c : JPEG control structure
-is allocated with a descriptor. sdct.h : defines descriptors for JPEG
-structures. sjpegc.c : implements the linked list of JPEG core blocks
-sjpegd.c sjpege.c : corrects the initialization order of (de)compress
-struct's gsstruct.h : yet another macro for a structure with 1 string and 1
-ptr (sdct.h [1.3], sdeparam.c [1.3], sjpegc.c [1.3], sjpegd.c [1.3],
-sjpege.c [1.3]: 2001/04/04 19:20:27 alexcher)
- - Genoa FTS 035-07.ps got a SEGV error caused by data being
-allocated in non-GC memory, but pointer enumumeration giving these pointers
-to the GC for tracing. Since these objects didn't have GC type headers bad
-things happened. Also change one of the allocations in sjpegc.c to immovable
-that was not -- this change was not needed to prevent the crash.
-(sjpegc.c [1.4]: 2001/04/07 00:33:22 rayjj)
-
-</pre><h2><a name="6.64-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Register /All and /None in the name table on look-up. Otherwise an
-attempt to set the separation color space fails with /undefined
-(gscsepr.c [1.8]: 2001/04/04 16:09:15 alexcher)
- - JPEG data made GC-traceable to prevent early freeing. Bug # 227090
-gsstruct.h : yet another macro for a structure with 1 string and 1 ptr
-(gsstruct.h [1.8]: 2001/04/04 18:45:08 alexcher)
- - Speed up shading type 1. (gsshade.c [1.4], gxshade1.c [1.9]:
-2001/04/05 08:32:28 igorm)
- - Some compilers complain that: "Argument of type "stream *" is
-incompatible with parameter of type "FILE *". Thanks to Nelson Beebe for
-finding this (on SGI). (gs_stdio.h [1.2]: 2001/04/06 03:19:07 rayjj)
- - Fixes crashes in Type 4 function evaluator when stack is empty.
-(gsfunc4.c [1.5]: 2001/04/06 22:22:38 raph)
-
-Adds a lop_pdf14 field to logical operators, which is used to force non-
-idempotent drawing of paths. (gsropt.h [1.4]: 2001/04/05 23:21:15 raph)
-
-PDF 1.4 improvements: Fixes garbage collection of device filter stack.
-Forces idempotent path drawing in transparency mode. Corrects handling of
-Group at toplevel page. (gdevp14.c [1.2], gsstate.c [1.11]: 2001/04/06
-22:23:44 raph)
-
-</pre><h2><a name="6.64-Other"></a>Other</h2><pre>
-
-Fixes problems:
- - two small issues with compilation under xlc on IBM AIX RS6000, a
-name conflict with structures names (u)int64, and trailing commas in enum
-declarations. Patch from Dan Coby. Sourceforge bug #414328.
-(icclib/icc.c [1.2], icclib/icc.h [1.2]: 2001/04/07 07:28:33 giles)
-
-Removes \r\n line ends inadvertently added. (icclib/icc.c [1.3],
-icclib/icc.h [1.3]: 2001/04/07 08:07:16 raph)
-
-<hr>
-
-<h1><a name="Version6.63"></a>Version 6.63 (2001-03-31)</h1>
-
-<p>
-This is the second beta release for the upcoming 7.0 release. This
-fileset contains a number of stability improvements for the new
-display device, integration of PDF 1.4 rendering with all devices, and
-the usual round of bug fixes.
-
-<p>
-All problems registered on SourceForge numbered 411753 or lower are
-closed, except for the following: 201955, 202735, 206652, 209350,
-213799, 215256, 219798, 220967, 221582, 222534, 222727, 223005,
-223754, 223896, 223992, 224056, 224095, 224863, 226477, 226584,
-226943, 227090, 227684, 227709, 228180, 228641, 230694, 230699,
-231390, 232334, 233403, 404255, 404482, 405313, 406285, 406643,
-406689, 406696, 406979, 407342, 409887, 410371, 410722, 411753.
-
-<h3><a name="6.63_Incompatible_changes"></a>Incompatible changes</h3>
-
-<pre>
-(Library)
- - The gs_text_enum_common structure has a new imaging_dev field
-which is used by the bbox device to intercept low-level drawing
-operations when drawing text.
- - There is a new pdf14 device filter used for rendering PDF 1.4
-documents.
-
-
-<h2><a name="6.63-Documentation"></a>Documentation</h2><pre>
-
-Moves the following SourceForge bugs to the Issues.htm documentation:
-201955, 220967, 223992. (doc/Issues.htm [1.2]: 2001/03/20 07:36:30 rayjj)
-
-Added 2 issues related to JPEG in PDF, Bug 226391 (doc/Issues.htm [1.3]:
-2001/03/20 16:41:28 alexcher)
-
-Adds %printer% device to Windows to allow a printer to be specified as
--sOutputFile="%printer%Printer Name". This replaces the use of
-"\\spool\Printer Name" for all but Windows 3.1/Win32s. Unlike the old
-\\spool\, the new %printer% device does not write a large temporary file.
-(doc/Install.htm [1.17]: 2001/03/26 11:28:20 ghostgum)
-
-Change the search order for the Ghostscript Windows DLL to try the
-executable directory before the location specified in the GS_DLL environment
-variable. (doc/Install.htm [1.18]: 2001/03/27 09:35:22 ghostgum)
-
-Some attributes of Catalog object are lost during PDF to PDF conversion
-(doc/Issues.htm [1.4]: 2001/03/27 21:03:18 alexcher)
-
-Increments version number after 6.62 release. (doc/News.htm [1.81]:
-2001/03/28 21:27:15 raph)
-
-Updates dates in preparation for 6.63 beta release. News updated.
-(doc/API.htm [1.4], doc/Bug-form.htm [1.17], doc/Bug-info.htm [1.13],
-doc/C-style.htm [1.14], doc/Commprod.htm [1.11], doc/Copying.htm [1.9],
-doc/Current.htm [1.9], doc/DLL.htm [1.11], doc/Develop.htm [1.35],
-doc/Devices.htm [1.23], doc/Drivers.htm [1.17], doc/Fonts.htm [1.15],
-doc/Helpers.htm [1.13], doc/History1.htm [1.9], doc/History2.htm [1.9],
-doc/History3.htm [1.9], doc/History4.htm [1.9], doc/History5.htm [1.11],
-doc/History6.htm [1.23], doc/Htmstyle.htm [1.12], doc/Install.htm [1.19],
-doc/Issues.htm [1.5], doc/Language.htm [1.28], doc/Lib.htm [1.9],
-doc/Maintain.htm [1.13], doc/Make.htm [1.25], doc/New-user.htm [1.22],
-doc/News.htm [1.82], doc/Projects.htm [1.26], doc/Ps-style.htm [1.9],
-doc/Ps2epsi.htm [1.10], doc/Ps2pdf.htm [1.27], doc/Psfiles.htm [1.16],
-doc/README [1.8], doc/Readme.htm [1.24], doc/Release.htm [1.31],
-doc/Source.htm [1.9], doc/Tester.htm [1.9], doc/Unix-lpr.htm [1.9],
-doc/Use.htm [1.25], doc/Xfonts.htm [1.9], doc/gs-vms.hlp [1.8],
-man/dvipdf.1 [1.6], man/font2c.1 [1.6], man/gs.1 [1.6], man/gslp.1 [1.6],
-man/gsnd.1 [1.6], man/pdf2dsc.1 [1.6], man/pdf2ps.1 [1.8],
-man/pdfopt.1 [1.6], man/pf2afm.1 [1.6], man/pfbtopfa.1 [1.7],
-man/printafm.1 [1.6], man/ps2ascii.1 [1.6], man/ps2epsi.1 [1.6],
-man/ps2pdf.1 [1.10], man/ps2pdfwr.1 [1.7], man/ps2ps.1 [1.13],
-man/wftopfa.1 [1.6]: 2001/04/01 01:10:54 raph)
-
-</pre><h2><a name="6.63-Procedures"></a>Procedures</h2><pre>
-
-Adds %printer% device to Windows to allow a printer to be specified as
--sOutputFile="%printer%Printer Name". This replaces the use of
-"\\spool\Printer Name" for all but Windows 3.1/Win32s. Unlike the old
-\\spool\, the new %printer% device does not write a large temporary file.
-(winlib.mak [1.9]: 2001/03/26 11:28:20 ghostgum)
-
-Adds Windows %printer% device to MS Visual C++ build. (msvc32.mak [1.13]:
-2001/03/26 12:00:07 ghostgum)
-
-Adds icclib subdirectory to tarballs. (toolbin/makeset.tcl [1.7]: 2001/03/28
-21:24:00 raph)
-
-Increments version number after 6.62 release. (version.mak [1.30]:
-2001/03/28 21:27:15 raph)
-
-Applies PDF 1.4 rendering with all devices. Previously, only pnga device
-contained PDF 1.4 rendering capabilities. Now, when the PDF 1.4 imaging
-model is detected in the source file, it installs the pdf 1.4 rendering
-device as a device filter. (lib.mak [1.46]: 2001/04/01 00:30:41 raph)
-
-Updates dates in preparation for 6.63 beta release. News updated.
-(version.mak [1.31]: 2001/04/01 01:10:55 raph)
-
-</pre><h2><a name="6.63-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - closefile added for procedure based stdio to prevent disabled
-stream from appearing valid. (ziodevsc.c [1.2]: 2001/03/27 09:37:10
-ghostgum)
- - Avoid rangecheck error when character code exceeds 255. Support
-zero-size bitmap used by some fonts for space character.
-(lib/bdftops.ps [1.3]: 2001/03/27 20:53:36 alexcher)
- - BATCH parameter is added to all bdftops* scripts
-(lib/bdftops [1.2], lib/bdftops.bat [1.3], lib/bdftops.cmd [1.2]: 2001/03/27
-21:15:55 alexcher)
- - Corrects memory allocation of command line arguments in the
-programs which load the Ghostscript interpreter DLL / shared object.
-(dxmain.c [1.2]: 2001/03/31 10:09:47 ghostgum)
-
-Adds %printer% device to Windows to allow a printer to be specified as
--sOutputFile="%printer%Printer Name". This replaces the use of
-"\\spool\Printer Name" for all but Windows 3.1/Win32s. Unlike the old
-\\spool\, the new %printer% device does not write a large temporary file.
-(gp_msprn.c [1.1]: 2001/03/26 11:28:20 ghostgum)
-
-</pre><h2><a name="6.63-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - AutoFilter.* options now select lossless compression for the image
-smaller than 64 pixels in any dimension. Bug # 226391 from a free user.
-(gdevpsdi.c [1.14]: 2001/03/24 04:17:07 alexcher)
- - In the display device, allow NULL as a valid value for
-DisplayHandle. Correct the code which requires the device to be closed
-before changing the DisplayHandle and DisplayFormat parameters. SourceForge
-bug # 411101. (gdevdsp.c [1.2]: 2001/03/28 08:46:15 ghostgum)
- - mdev-&gt;memory member was set to 0 causing gx_device_enum_ptr()
-not enumerate mdev. This led to freeing of mdev by GC and memory exceptions
-during de-allocation of the display device. (gdevdsp.c [1.3]: 2001/03/28
-21:50:56 alexcher)
- - Correct memory allocation problems in the display device. Return
-correct pointers from display_enum_ptrs so that the memory device and bitmap
-are not moved or prematurely freed. Adds a finalize procedure. Change the
-memory device to not forward to the display device. Mark the memory device
-as retained so it gets freed at the correct time. (gdevdsp.c [1.4],
-gdevdsp2.h [1.2]: 2001/03/29 07:26:57 ghostgum)
- - Prevents the buffered mode of the x11 device from missing updates
-from the bitmap buffer to the X display. Fix for Artifex customer #1130
-(gdevx.c [1.8]: 2001/03/30 18:22:28 rayjj)
-
-Adds Tumble parameter to mswinpr2 device for specifying the duplex
-arrangement. Adds QueryUser to the parameters returned by
-win_pr2_get_params, so that it works from the command line.
-(gdevwpr2.c [1.8]: 2001/03/26 09:44:08 ghostgum)
-
-Adds %printer% device to Windows to allow a printer to be specified as
--sOutputFile="%printer%Printer Name". This replaces the use of
-"\\spool\Printer Name" for all but Windows 3.1/Win32s. Unlike the old
-\\spool\, the new %printer% device does not write a large temporary file.
-(gdevwpr2.c [1.9]: 2001/03/26 11:28:20 ghostgum)
-
-Applies PDF 1.4 rendering with all devices. Previously, only pnga device
-contained PDF 1.4 rendering capabilities. Now, when the PDF 1.4 imaging
-model is detected in the source file, it installs the pdf 1.4 rendering
-device as a device filter. (gdevp14.h [1.1]: 2001/04/01 00:30:41 raph)
-
-Change: The Ghostscript 'pwrite' function name conflicted with the standard
-pwrite function defined in unistd.h on several systems. To avoid confusion
-with the standard function change the name to stream_write. Also change
-'pputc' to 'stream_putc' and 'pputs' to 'stream_puts'. Fixes SourceForge bug
-#410772. Fix by Ray Johnston. (gdevps.c [1.16], gdevpsdu.c [1.9],
-gdevpsu.c [1.4]: 2001/04/01 00:35:26 raph)
-
-</pre><h2><a name="6.63-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - coordinate range is reduced to +/- 16383 to satisfy actual AR4
-restrictions. When CTM was scaled to reduce the range, line width in stroke
-and CTM in fill were wrong. Bug # 409105 from raf_mellen at
-users.sourceforge.net (gdevpdfd.c [1.12]: 2001/03/21 04:25:48 alexcher)
- - ARTICLE pdfmark generated invalid bead object if /Page key was
-left out. Bug # 227651 from mbentley at users.sourceforge.net
-(gdevpdfm.c [1.10]: 2001/03/21 05:10:31 alexcher)
- - initial values of fill and stroke color didn't change when
-ProcessColorModel changed. An attempt to set white color in CMYK mode was
-ignored because it was considered equal to the default color. Bug #410441
-from a free user. (gdevpdf.c [1.30]: 2001/03/22 15:12:48 alexcher)
- - pdf_reset_graphics() didn't set correct default color (black) in
-/DeviceCMYK color model. An attempt to set white color was ignored because
-it was considered equal to the default color causing white objects rendered
-black. Bug #410441 from a free user. (gdevpdfg.c [1.11]: 2001/03/23 22:04:19
-alexcher)
- - Maximum depth of an outline tree increased from 8 to 32. Bug
-#410595 from a free user. (gdevpdfx.h [1.29]: 2001/03/23 22:18:28 alexcher)
-
-Change: The Ghostscript 'pwrite' function name conflicted with the standard
-pwrite function defined in unistd.h on several systems. To avoid confusion
-with the standard function change the name to stream_write. Also change
-'pputc' to 'stream_putc' and 'pputs' to 'stream_puts'. Fixes SourceForge bug
-#410772. Fix by Ray Johnston. (gdevpdf.c [1.31], gdevpdfb.c [1.4],
-gdevpdfc.c [1.15], gdevpdfd.c [1.13], gdevpdfe.c [1.9], gdevpdfg.c [1.12],
-gdevpdfj.c [1.6], gdevpdfm.c [1.11], gdevpdfo.c [1.7], gdevpdfs.c [1.3],
-gdevpdft.c [1.32], gdevpdfu.c [1.15], gdevpdfw.c [1.10]: 2001/04/01 00:35:26
-raph)
-
-</pre><h2><a name="6.63-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - OmniForm generates PDF files with endobj missing in some objects.
-Adobe Acrobat Reader ignores this. Generally speaking, Ghostscript does not
-attempt to accept files that grossly fail to obey the Adobe specification
-and are produced by software other than a very few extremely widespread
-applications. However work-around for this case is easy and unlikely to
-break anything. SourceForge bug #406694. (lib/pdf_base.ps [1.14]: 2001/03/20
-05:04:59 alexcher)
- - URI action was not converted to corresponding pdfmark and lost
-during PDF to PDF conversion. Bug #409245, patch Leon Bottou with some
-changes. (lib/pdf_main.ps [1.28]: 2001/03/24 23:59:23 alexcher)
-
-Implementation of security hooks for PDF reader by Geoffrey Keating is
-merged into the main GS code base. (lib/pdf_sec.ps [1.3]: 2001/03/25
-02:03:44 alexcher)
-
-Applies PDF 1.4 rendering with all devices. Previously, only pnga device
-contained PDF 1.4 rendering capabilities. Now, when the PDF 1.4 imaging
-model is detected in the source file, it installs the pdf 1.4 rendering
-device as a device filter. (lib/pdf_main.ps [1.29]: 2001/04/01 00:30:41
-raph)
-
-</pre><h2><a name="6.63-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - flush procedure based stdout and stderr on exit. (imain.c [1.8]:
-2001/03/27 09:38:39 ghostgum)
- - Fix for CIDFontType 0 : 1. Erroneous glyphs are drawn by cshow
-(with -dNOCACHE); 2. Glyphs written in horizontal direction instead vertical
-(with anti-aliasing); 3. Erroneous glyphs and awkward metrics (with
-anti-aliasing and -dNOCACHE); Patches 1 &amp; 3 from Hideyuki Suzuki
-(hideyuki), improved by igorm. SourceForge bug #222683. (zchar1.c [1.7]:
-2001/03/27 09:56:39 igorm)
- - Changes to introduce the min_left stream state variable set this
-to 1 for procedure streams, which caused 1 character to be retained in the
-stream buffer which was not passed to the client. This broke the DLL
-interface where procedure callouts were used to get the string from the
-callback. Procedure streams have no need for EOD lookahead (to force
-closure) so the correct min_left value is 0. SourceForge bug #404331.
-(zfproc.c [1.9]: 2001/03/29 04:09:40 rayjj)
- - After recognizing a number the scanner wrongly interpreted it as a
-name, if the number ends at the end of input buffer. Change from Raph.
-SourceForge bug #224205. (iscannum.c [1.3]: 2001/03/29 13:27:59 igorm)
- - Correct the Windows virtual key code passed from the image window
-to the console. (dwimg.c [1.2]: 2001/03/31 10:07:48 ghostgum)
- - Put Windows console stdout and stderr in binary mode. Ignore the
-initial callout for stdout and stderr as the procedure stream acquires a
-buffer. (dwmainc.c [1.2], imain.c [1.9]: 2001/03/31 10:08:43 ghostgum)
- - Corrects memory allocation of command line arguments in the
-programs which load the Ghostscript interpreter DLL / shared object.
-(dpmain.c [1.2], dwmain.c [1.2], dwmainc.c [1.3]: 2001/03/31 10:09:47
-ghostgum)
- - When gswin32 text window is closed, exit the interpreter on next
-access to stdin and then destroy the text window. (dwmain.c [1.3],
-dwtext.c [1.2], imain.c [1.10]: 2001/03/31 10:11:55 ghostgum)
-
-Change the search order for the Ghostscript Windows DLL to try the
-executable directory before the location specified in the GS_DLL environment
-variable. (dwdll.c [1.2]: 2001/03/27 09:35:22 ghostgum)
-
-Update mail address from bug-gs@aladdin.com to bug-gs@ghostscript.com.
-(imainarg.c [1.10]: 2001/03/28 18:30:35 rayjj)
-
-Increments version number after 6.62 release. (lib/gs_init.ps [1.32]:
-2001/03/28 21:27:15 raph)
-
-Applies PDF 1.4 rendering with all devices. Previously, only pnga device
-contained PDF 1.4 rendering capabilities. Now, when the PDF 1.4 imaging
-model is detected in the source file, it installs the pdf 1.4 rendering
-device as a device filter. (zdfilter.c [1.2]: 2001/04/01 00:30:41 raph)
-
-Change: The Ghostscript 'pwrite' function name conflicted with the standard
-pwrite function defined in unistd.h on several systems. To avoid confusion
-with the standard function change the name to stream_write. Also change
-'pputc' to 'stream_putc' and 'pputs' to 'stream_puts'. Fixes SourceForge bug
-#410772. Fix by Ray Johnston. (zfcmap.c [1.9]: 2001/04/01 00:35:26 raph)
-
-</pre><h2><a name="6.63-Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - Changes to introduce the min_left stream state variable set this
-to 1 for procedure streams, which caused 1 character to be retained in the
-stream buffer which was not passed to the client. This broke the DLL
-interface where procedure callouts were used to get the string from the
-callback. Procedure streams have no need for EOD lookahead (to force
-closure) so the correct min_left value is 0. SourceForge bug #404331.
-(stream.c [1.11], stream.h [1.8]: 2001/03/29 04:09:40 rayjj)
-
-Change: The Ghostscript 'pwrite' function name conflicted with the standard
-pwrite function defined in unistd.h on several systems. To avoid confusion
-with the standard function change the name to stream_write. Also change
-'pputc' to 'stream_putc' and 'pputs' to 'stream_puts'. Fixes SourceForge bug
-#410772. Fix by Ray Johnston. (spprint.c [1.3], spprint.h [1.3],
-spsdf.c [1.5]: 2001/04/01 00:35:26 raph)
-
-</pre><h2><a name="6.63-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - The old code can mis-identify ShadingType 1 function as constant
-due to testing it at insufficient set of points. Replacing it with slower
-accurate code. SourceForge bug #228714. (gxshade.c [1.6], gxshade.h [1.4],
-gxshade1.c [1.8]: 2001/03/25 10:18:50 igorm)
- - Fix for CIDFontType 0 : 1. Erroneous glyphs are drawn by cshow
-(with -dNOCACHE); 2. Glyphs written in horizontal direction instead vertical
-(with anti-aliasing); 3. Erroneous glyphs and awkward metrics (with
-anti-aliasing and -dNOCACHE); Patches 1 &amp; 3 from Hideyuki Suzuki
-(hideyuki), improved by igorm. SourceForge bug #222683. (gxchar.c [1.4]:
-2001/03/27 09:56:39 igorm)
- - Adds imaging_dev field to text enumeration, so that bbox device
-can intercept low level drawing operations caused by implementation of
-forwarded high level text operations. (gdevbbox.c [1.4], gstext.c [1.6],
-gxccache.c [1.4], gxtext.h [1.7]: 2001/04/01 00:33:36 raph)
-
-Applies PDF 1.4 rendering with all devices. Previously, only pnga device
-contained PDF 1.4 rendering capabilities. Now, when the PDF 1.4 imaging
-model is detected in the source file, it installs the pdf 1.4 rendering
-device as a device filter. (gdevp14.c [1.1], gsdfilt.c [1.2],
-gsdfilt.h [1.2]: 2001/04/01 00:30:41 raph)
-
-Change: The Ghostscript 'pwrite' function name conflicted with the standard
-pwrite function defined in unistd.h on several systems. To avoid confusion
-with the standard function change the name to stream_write. Also change
-'pputc' to 'stream_putc' and 'pputs' to 'stream_puts'. Fixes SourceForge bug
-#410772. Fix by Ray Johnston. (gdevpsf1.c [1.9], gdevpsfm.c [1.5],
-gdevpsft.c [1.7], gsfunc4.c [1.4]: 2001/04/01 00:35:26 raph)
-
-<hr>
-
-<h1><a name="Version6.62"></a>Version 6.62 (2001-03-19)</h1>
-
-<p>
-This is the first beta release for the upcoming 7.0 release. This fileset
-adds ICC profile support using Graeme Gill's icclib, and the new DLL
-interface from Russell Lang.
-
-<p>
-All problems registered on SourceForge numbered 409245 or lower are
-closed, except for the following: 201955, 202735, 206652, 209350,
-213799, 215256, 219677, 219798, 220967, 221582, 222534, 222683,
-222727, 223005, 223091, 223754, 223896, 223992, 224056, 224095,
-224134, 224205, 224863, 226364, 226391, 226462, 226477, 226584,
-226943, 227090, 227190, 227276, 227382, 227651, 227684, 227709,
-228180, 228354, 228423, 228641, 228714, 228788, 228808, 229439,
-230694, 230699, 231390, 232334, 232696, 233403, 404255, 404255,
-404482, 404933, 405313, 406285, 406643, 406689, 406694, 406696,
-406699, 406979, 407342, 409105, 409133, 409244, 409245. Note that,
-since the 6.61 release, SourceForge has renumbered all bugs in the
-1xxxxx range by adding 100000 (thus, they are now 2xxxxxx).
-
-
-<h2><a name="6.62-Documentation"></a>Documentation</h2><pre>
-
-Increments version number to 6.62 as part of 6.61 release process.
-(doc/News.htm [1.77]: 2001/02/24 01:56:01 raph)
-
-Adds Epson Stylus Color 300 support to uniprint, also some code cleanups.
-Thanks to Glenn Ramsey and Gunther Hess for the patch.
-(doc/Devices.htm [1.20]: 2001/03/03 00:45:01 raph)
-
-Added documentation for Ghostscript interpreter API as used by Windows and
-OS/2 DLL and GNU/Linux shared object. (doc/API.htm [1.1], doc/DLL.htm [1.8],
-doc/Readme.htm [1.20]: 2001/03/13 07:12:06 ghostgum)
-
-Documentation changes in preparation for 6.62 beta release.
-(doc/API.htm [1.2], doc/Bug-form.htm [1.15], doc/Bug-info.htm [1.11],
-doc/C-style.htm [1.12], doc/Commprod.htm [1.9], doc/Copying.htm [1.7],
-doc/Current.htm [1.7], doc/DLL.htm [1.9], doc/Develop.htm [1.33],
-doc/Devices.htm [1.21], doc/Drivers.htm [1.15], doc/Fonts.htm [1.13],
-doc/Helpers.htm [1.10], doc/History1.htm [1.7], doc/History2.htm [1.7],
-doc/History3.htm [1.7], doc/History4.htm [1.7], doc/History5.htm [1.9],
-doc/History6.htm [1.19], doc/Htmstyle.htm [1.10], doc/Install.htm [1.15],
-doc/Language.htm [1.26], doc/Lib.htm [1.7], doc/Maintain.htm [1.11],
-doc/Make.htm [1.23], doc/New-user.htm [1.20], doc/News.htm [1.78],
-doc/Projects.htm [1.24], doc/Ps-style.htm [1.7], doc/Ps2epsi.htm [1.8],
-doc/Ps2pdf.htm [1.25], doc/Psfiles.htm [1.14], doc/README [1.6],
-doc/Readme.htm [1.21], doc/Release.htm [1.29], doc/Source.htm [1.7],
-doc/Tester.htm [1.7], doc/Unix-lpr.htm [1.7], doc/Use.htm [1.23],
-doc/Xfonts.htm [1.7], doc/gs-vms.hlp [1.6], man/dvipdf.1 [1.4],
-man/font2c.1 [1.4], man/gs.1 [1.4], man/gslp.1 [1.4], man/gsnd.1 [1.4],
-man/pdf2dsc.1 [1.4], man/pdf2ps.1 [1.6], man/pdfopt.1 [1.4],
-man/pf2afm.1 [1.4], man/pfbtopfa.1 [1.5], man/printafm.1 [1.4],
-man/ps2ascii.1 [1.4], man/ps2epsi.1 [1.4], man/ps2pdf.1 [1.8],
-man/ps2pdfwr.1 [1.5], man/ps2ps.1 [1.11], man/wftopfa.1 [1.4]: 2001/03/17
-01:26:48 raph)
-
-Updates Changes and History6 files from cvs commit logs, in preparation for
-6.62 beta release. (doc/Changes.htm [1.22], doc/History6.htm [1.20]:
-2001/03/17 01:30:16 raph)
-
-There was a spelling error in Juan Manuel Acosta's name. His entry is also
-moved to "major contributers" section. (doc/Helpers.htm [1.11]: 2001/03/19
-16:46:05 alexcher)
-
-Updates date for 6.62 release to 2001-03-19. (doc/API.htm [1.3],
-doc/Bug-form.htm [1.16], doc/Bug-info.htm [1.12], doc/C-style.htm [1.13],
-doc/Commprod.htm [1.10], doc/Copying.htm [1.8], doc/Current.htm [1.8],
-doc/DLL.htm [1.10], doc/Develop.htm [1.34], doc/Devices.htm [1.22],
-doc/Drivers.htm [1.16], doc/Fonts.htm [1.14], doc/Helpers.htm [1.12],
-doc/History1.htm [1.8], doc/History2.htm [1.8], doc/History3.htm [1.8],
-doc/History4.htm [1.8], doc/History5.htm [1.10], doc/History6.htm [1.21],
-doc/Htmstyle.htm [1.11], doc/Install.htm [1.16], doc/Language.htm [1.27],
-doc/Lib.htm [1.8], doc/Maintain.htm [1.12], doc/Make.htm [1.24],
-doc/New-user.htm [1.21], doc/News.htm [1.79], doc/Projects.htm [1.25],
-doc/Ps-style.htm [1.8], doc/Ps2epsi.htm [1.9], doc/Ps2pdf.htm [1.26],
-doc/Psfiles.htm [1.15], doc/README [1.7], doc/Readme.htm [1.22],
-doc/Release.htm [1.30], doc/Source.htm [1.8], doc/Tester.htm [1.8],
-doc/Unix-lpr.htm [1.8], doc/Use.htm [1.24], doc/Xfonts.htm [1.8],
-doc/gs-vms.hlp [1.7], man/dvipdf.1 [1.5], man/font2c.1 [1.5],
-man/gs.1 [1.5], man/gslp.1 [1.5], man/gsnd.1 [1.5], man/pdf2dsc.1 [1.5],
-man/pdf2ps.1 [1.7], man/pdfopt.1 [1.5], man/pf2afm.1 [1.5],
-man/pfbtopfa.1 [1.6], man/printafm.1 [1.5], man/ps2ascii.1 [1.5],
-man/ps2epsi.1 [1.5], man/ps2pdf.1 [1.9], man/ps2pdfwr.1 [1.6],
-man/ps2ps.1 [1.12], man/wftopfa.1 [1.5]: 2001/03/19 17:26:17 raph)
-
-Inital version of this file that will be used to capture notes about minor
-bugs or compatibility that are identified when action will not be undertaken
-immediately. (doc/Issues.htm [1.1]: 2001/03/19 19:27:04 rayjj)
-
-</pre><h2><a name="6.62-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - Minor changes to fix compilation on VMS, thanks to Jacob
-=JoukJansen for the patch. (devs.mak [1.42]: 2001/03/01 22:16:02 raph)
- - Corrects whitespace for new entries in devs.mak for VMS build.
-Thanks to Jouk Jansen. (devs.mak [1.44]: 2001/03/13 20:01:35 raph)
- - Fixes SourceForge bug #219677. Adds debug and debugclean targets
-to MSVC++ makefile that build in the debugobj and debugbin directories.
-Fixes BEGINFILES and BEGINFILES2 so that 'make clean' removes all files.
-(msvc32.mak [1.10], winlib.mak [1.7]: 2001/03/16 22:53:18 ghostgum)
- - /None and /All separations are now supported. SourceForge bug
-#228354. (lib.mak [1.45]: 2001/03/18 19:15:50 igorm)
- - Adds lib directory to MS-Windows distribution archive. Change
-copyright message in MS-Windows setup program to artofcode LLC. Thanks to
-Russell Lang for the patch. (winint.mak [1.7]: 2001/03/19 17:12:45 raph)
-
-Increments version number to 6.62 as part of 6.61 release process.
-(version.mak [1.27]: 2001/02/24 01:56:01 raph)
-
-Provide alternate %stdin/out/err implementation using procedure based
-streams and callouts. Previous stdio implementation with
-STDIO_IMPLEMENTATION= New callout stdio implementation with
-STDIO_IMPLEMENTATION=c Bug fix to zflush and zpeekstring. New stdio stream
-code is in ziodevsc.c which will be in next commit. (bcwin32.mak [1.5],
-dvx-gcc.mak [1.6], gs.mak [1.3], int.mak [1.43], msvc32.mak [1.7],
-msvclib.mak [1.7], openvms.mak [1.7], os2.mak [1.10], ugcclib.mak [1.7],
-unix-gcc.mak [1.10], unixansi.mak [1.8], unixtrad.mak [1.8], watc.mak [1.7],
-watclib.mak [1.7], watcw32.mak [1.6]: 2001/03/12 04:05:19 ghostgum)
-
-Adds device filter pipeline, which will be used by PDF 1.4 and other
-enhanced imaging operations. (int.mak [1.44], lib.mak [1.43]: 2001/03/13
-00:41:10 raph)
-
-Implement new Ghostscript interpreter API for DLL or shared object.
-Reimplement old DLL interface using new API. See iapi.h and iapi.c for new
-API. For unix, build using "make so". Added loader programs for Ghostscript
-interpreter library for GNU/Linux (dxmain.c), Windows (dw*.c) and OS/2
-(dpmain.c). Add new "display" device for use with the new API. GNU/Linux
-dxmain.c uses the "display" device, Gtk+ and GdkRgb for faster drawing than
-the "x11" device. (devs.mak [1.43], gsdll2.def [1.2], gsdll32.def [1.2],
-int.mak [1.45], msvc32.mak [1.8], os2.mak [1.11], unix-dll.mak [1.1],
-unix-gcc.mak [1.11], winint.mak [1.6], winlib.mak [1.6]: 2001/03/13 07:09:28
-ghostgum)
-
-When building the GNU/Linux shared object, separate directories soobj and sobin
-are used to prevent 'make' from mixing the object files and building a
-corrupt executable. Added 'API.htm' to the installed documentation files.
-(unix-dll.mak [1.2], unix-gcc.mak [1.12], unixinst.mak [1.18]: 2001/03/15
-09:11:28 ghostgum)
-
-Change path on Windows and OS/2 platforms from c:/aladdin
-to c:/gs. (bcwin32.mak [1.6], msvc32.mak [1.9], msvclib.mak [1.8],
-watc.mak [1.8], watclib.mak [1.8], watcw32.mak [1.7]: 2001/03/16 22:19:16
-ghostgum)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (bcwin32.mak [1.7], devs.mak [1.45], dvx-gcc.mak [1.7], gs.mak [1.4],
-icclib.mak [1.1], int.mak [1.46], lib.mak [1.44], msvc32.mak [1.11],
-msvclib.mak [1.9], openvms.mak [1.8], os2.mak [1.12], ugcclib.mak [1.8],
-unix-gcc.mak [1.13], unixansi.mak [1.9], unixtrad.mak [1.9],
-version.mak [1.28], watc.mak [1.9], watclib.mak [1.9], watcw32.mak [1.8],
-wctail.mak [1.3], winlib.mak [1.8]: 2001/03/17 01:15:42 raph)
-
-Moves patched icclib 1.23 files into the new icclib/ subdirectory, with
-makefile changes to match. Adds missing COPYRIGHT and other documentation to
-icclib. Thanks to L. Peter Deutsch for pointing out the need.
-(bcwin32.mak [1.8], dvx-gcc.mak [1.8], msvc32.mak [1.12],
-msvclib.mak [1.10], openvms.mak [1.9], os2.mak [1.13], ugcclib.mak [1.9],
-unix-gcc.mak [1.14], unixansi.mak [1.10], unixtrad.mak [1.10],
-watc.mak [1.10], watclib.mak [1.10], watcw32.mak [1.9]: 2001/03/19 17:11:15
-raph)
-
-Updates date for 6.62 release to 2001-03-19. (version.mak [1.29]: 2001/03/19
-17:26:18 raph)
-
-</pre><h2><a name="6.62-Utilities"></a>Utilities</h2><pre>
-
-Replace many references to exit() with returns. (gp_dvx.c [1.3],
-gp_os2.c [1.7], gp_unix.c [1.4]: 2001/03/12 03:50:02 ghostgum)
-
-Cleanup of MS-Windows and OS/2 code. Remove old 16-bit MS-Windows code.
-Remove references to stdout/err, replacing with eprintf(). Remove global
-variables. Disable mswindll and os2dll devices if a callback function is not
-provided. (gp_mswin.c [1.4], gp_os2.c [1.8]: 2001/03/12 03:56:13 ghostgum)
-
-stdio implementation using callouts. Missing file from last commit.
-(ziodevsc.c [1.1]: 2001/03/12 04:11:28 ghostgum)
-
-Implement new Ghostscript interpreter API for DLL or shared object.
-Reimplement old DLL interface using new API. See iapi.h and iapi.c for new
-API. For unix, build using "make so". Added loader programs for Ghostscript
-interpreter library for GNU/Linux (dxmain.c), Windows (dw*.c) and OS/2
-(dpmain.c). Add new "display" device for use with the new API. GNU/Linux
-dxmain.c uses the "display" device, Gtk+ and GdkRgb for faster drawing than
-the "x11" device. (dxmain.c [1.1], gp_msdll.c [1.1], gp_mswin.c [1.5],
-gp_os2.c [1.9], gsdll.c [1.4]: 2001/03/13 07:09:28 ghostgum)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (icc.c [1.1]: 2001/03/17 01:15:42 raph)
-
-Moves patched icclib 1.23 files into the new icclib/ subdirectory, with
-makefile changes to match. Adds missing COPYRIGHT and other documentation to
-icclib. Thanks to L. Peter Deutsch for pointing out the need. (icc.c [1.2]:
-2001/03/19 17:11:15 raph)
-
-</pre><h2><a name="6.62-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - to achieve page independence, every page must in the general case
-set page parameters. To preserve duplexing the page cannot set page
-parameters. New code checks the current page size and sets it only if it is
-necessary. Bug #404376 reported by bannis at users.sourceforge.net
-(gdevpsu.c [1.3]: 2001/03/03 03:27:03 alexcher)
-
-Adds Epson Stylus Color 300 support to uniprint, also some code cleanups.
-Thanks to Glenn Ramsey and Gunther Hess for the patch. (gdevupd.c [1.4],
-lib/stc300.upp [1.1], lib/stc300bl.upp [1.1], lib/stc300bm.upp [1.1]:
-2001/03/03 00:45:01 raph)
-
-Cleanup of MS-Windows and OS/2 code. Remove old 16-bit MS-Windows code.
-Remove references to stdout/err, replacing with eprintf(). Remove global
-variables. Disable mswindll and os2dll devices if a callback function is not
-provided. (gdevmswn.c [1.3], gdevpm.c [1.3], gdevwdib.c [1.3],
-gdevwpr2.c [1.6], gdevwprn.c [1.3]: 2001/03/12 03:56:13 ghostgum)
-
-Redirect all user messages from stdout and stderr to outwrite() and
-errwrite(). This is needed to allow stdout/err to be redirected to the
-caller for DLL / shared object builds. (gdev4693.c [1.2], gdevcdj.c [1.5],
-gdevhl7x.c [1.4], gdevifno.c [1.2], gdevimgn.c [1.3], gdevos2p.c [1.4],
-gdevsppr.c [1.3], gdevsunr.c [1.3], gdevupd.c [1.5], gdevwddb.c [1.3],
-gdevwpr2.c [1.7]: 2001/03/13 06:51:39 ghostgum)
-
-Implement new Ghostscript interpreter API for DLL or shared object.
-Reimplement old DLL interface using new API. See iapi.h and iapi.c for new
-API. For unix, build using "make so". Added loader programs for Ghostscript
-interpreter library for GNU/Linux (dxmain.c), Windows (dw*.c) and OS/2
-(dpmain.c). Add new "display" device for use with the new API. GNU/Linux
-dxmain.c uses the "display" device, Gtk+ and GdkRgb for faster drawing than
-the "x11" device. (gdevdsp.c [1.1], gdevdsp.h [1.1], gdevdsp2.h [1.1],
-gdevmswn.c [1.4], gdevpm.c [1.4]: 2001/03/13 07:09:28 ghostgum)
-
-Adds typed image rendering to pnga (prototype PDF 1.4) device.
-(gdevpnga.c [1.3]: 2001/03/17 00:16:53 raph)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (gdevpx.c [1.6]: 2001/03/17 01:15:42 raph)
-
-</pre><h2><a name="6.62-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - properly include unistd_.h in files that call unlink()
-(gdevpdf.c [1.29]: 2001/03/16 22:12:34 giles)
-
-Redirect all user messages from stdout and stderr to outwrite() and
-errwrite(). This is needed to allow stdout/err to be redirected to the
-caller for DLL / shared object builds. (gdevpdfm.c [1.9]: 2001/03/13
-06:51:39 ghostgum)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (gdevpdfc.c [1.14]: 2001/03/17 01:15:42 raph)
-
-</pre><h2><a name="6.62-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - When the stream is located in an external file (i.e. the stream
-dictionary contains an /F entry) GS fails with "typecheck in .knownget"
-because of a minor bug in stack handling in pdf_base.ps. Bug #229425, the
-fix from Andreas Bolsch &lt;meromorphic at users.sourceforge.net&gt;
-(lib/pdf_base.ps [1.13]: 2001/03/04 16:59:19 alexcher)
- - GS can override image interpolation using INTERPOLATE or
-NOINTERPOLATE flags. These flags had no effect on PDF because the PDF
-interpreter is bound earlier than image operator is redefined. New version
-takes image and imagemask values from systemdict at run time.
-(lib/pdf_draw.ps [1.27]: 2001/03/11 05:15:26 alexcher)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (lib/pdf_draw.ps [1.28], lib/pdf_ops.ps [1.16]: 2001/03/17 01:15:41
-raph)
-
-</pre><h2><a name="6.62-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Allocate filter in local VM when currentglobal is false. Prevents
-a problem with some QuarkXpress ProcSets that turn off vmreclaim and expect
-save/restore to free memory which only works on local VM. Fix for problem
-reported by Artifex customer #150, file "japan.ps". (zfilter.c [1.5]:
-2001/02/28 00:39:26 rayjj)
- - Speed-up JPEG decompression by increasing file buffer to 2K. This
-avoids installation of an intermediate buffering filter that resulted in a
-byte-by-byte filling of the buffer to the JPEG code. When the buffer was not
-full enough a recoverable error would result in a round trip for the next
-byte. Fixes SourcForge bug #405342 for Artifex customer #350.
-(zfile.c [1.7]: 2001/03/02 03:06:50 alexcher)
- - Removes Category dictionary from dictionary stack during the
-execution of the /Font resourceforall procedure, needed for proper access
-from the procedure to underlying dictionary. Fixes SourceForge bug #224973.
-(lib/gs_cidcm.ps [1.2]: 2001/03/03 15:09:12 igorm)
- - GS didn't accept packed array as data source in image with
-multiple data sources. From internal bug report. (zimage2.c [1.4]:
-2001/03/12 22:53:22 alexcher)
- - ztype9mapcid now allocates string in global memory space to match
-allocation of contents. Thanks to Masatake YAMATO for the patch.
-(zfcid0.c [1.6]: 2001/03/13 19:57:06 raph)
- - Define to DefaultGray, DefaultRGB, DefaultCMYK color spaces to
-allow UseCIEColor to work. SourceForge bugs #216461, #219676.
-(lib/gs_ll3.ps [1.8]: 2001/03/14 12:00:37 igorm)
- - /None and /All separations are now supported. SourceForge bug
-#228354. (zcssepr.c [1.6]: 2001/03/18 19:17:50 igorm)
-
-Increments version number to 6.62 as part of 6.61 release process.
-(lib/gs_init.ps [1.30]: 2001/02/24 01:56:01 raph)
-
-Replace many references to exit() with returns. (errors.h [1.3], gs.c [1.3],
-igcref.c [1.3], imain.c [1.4], imainarg.c [1.7], imainarg.h [1.3],
-zcontext.c [1.7]: 2001/03/12 03:50:02 ghostgum)
-
-Provide alternate %stdin/out/err implementation using procedure based
-streams and callouts. Previous stdio implementation with
-STDIO_IMPLEMENTATION= New callout stdio implementation with
-STDIO_IMPLEMENTATION=c Bug fix to zflush and zpeekstring. New stdio stream
-code is in ziodevsc.c which will be in next commit. (errors.h [1.4],
-files.h [1.3], imain.c [1.5], iminst.h [1.3], interp.c [1.7], zfile.c [1.8],
-zfileio.c [1.10], zfproc.c [1.8], ziodev.c [1.4]: 2001/03/12 04:05:19
-ghostgum)
-
-This fix corrects a problem with VM usage in the DSC parser. Previously the
-dictionary dsc_dict was allocated in global VM but the DSC parser would try
-to insert items while in local VM mode. This fix forces the DSC parser into
-global VM mode. (lib/gs_dscp.ps [1.4]: 2001/03/12 22:41:22 dancoby)
-
-Adds device filter pipeline, which will be used by PDF 1.4 and other
-enhanced imaging operations. (zdfilter.c [1.1]: 2001/03/13 00:41:10 raph)
-
-Redirect all user messages from stdout and stderr to outwrite() and
-errwrite(). This is needed to allow stdout/err to be redirected to the
-caller for DLL / shared object builds. (gs.c [1.4], idebug.c [1.3],
-igc.c [1.3], imain.c [1.6], imainarg.c [1.8]: 2001/03/13 06:51:39 ghostgum)
-
-Implement new Ghostscript interpreter API for DLL or shared object.
-Reimplement old DLL interface using new API. See iapi.h and iapi.c for new
-API. For unix, build using "make so". Added loader programs for Ghostscript
-interpreter library for GNU/Linux (dxmain.c), Windows (dw*.c) and OS/2
-(dpmain.c). Add new "display" device for use with the new API. GNU/Linux
-dxmain.c uses the "display" device, Gtk+ and GdkRgb for faster drawing than
-the "x11" device. (dpmain.c [1.1], dpmainc.c [1.3], dwdll.c [1.1],
-dwdll.cpp [1.3], dwdll.h [1.3], dwimg.c [1.1], dwimg.cpp [1.4],
-dwimg.h [1.3], dwmain.c [1.1], dwmain.cpp [1.3], dwmain.h [1.3],
-dwmainc.c [1.1], dwmainc.cpp [1.4], dwnodll.c [1.1], dwnodll.cpp [1.3],
-dwtext.c [1.1], dwtext.cpp [1.3], dwtext.h [1.3], files.h [1.4], gs.c [1.5],
-iapi.c [1.1], iapi.h [1.1], iconf.c [1.3], idisp.c [1.1], idisp.h [1.1],
-imain.c [1.7], imainarg.c [1.9], iminst.h [1.4], main.h [1.3]: 2001/03/13
-07:09:28 ghostgum)
-
-Interpolation overriding is modified to support - colorimage; old version
-did nothing - ImageType 3 dictionaries; old version did nothing - local data
-source in global mode; old version failed (lib/gs_init.ps [1.31]: 2001/03/13
-22:50:03 alexcher)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (icie.h [1.3], lib/gs_icc.ps [1.1], zcie.c [1.5], zicc.c [1.1]:
-2001/03/17 01:15:41 raph)
-
-</pre><h2><a name="6.62-Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - eexecDecode filter returned EOF immediately if the input stream
-was shorter than 9 characters. New code may misidentify short streams but
-old code always failed. (seexec.c [1.4]: 2001/02/23 03:00:13 alexcher)
-
-Replace many references to exit() with returns. (stdpre.h [1.3]: 2001/03/12
-03:50:02 ghostgum)
-
-Redirect all user messages from stdout and stderr to outwrite() and
-errwrite(). This is needed to allow stdout/err to be redirected to the
-caller for DLL / shared object builds. (std.h [1.4]: 2001/03/13 06:51:39
-ghostgum)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (stream.c [1.10]: 2001/03/17 01:15:42 raph)
-
-Minor patch to header files so that unlink() prototype doesn't conflict when
-const is disabled through #define. (stdio_.h [1.4]: 2001/03/17 01:18:34
-raph)
-
-</pre><h2><a name="6.62-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Minor changes to fix compilation on VMS, thanks to Jacob
-=JoukJansen for the patch. (gstrans.c [1.13]: 2001/03/01 22:16:02 raph)
- - gp_file_name_sizeof is increased to 260 bytes, == MAX_PATH on MS
-Windows. The platform-specific fix is too difficult because some platforms
-may have very long or unlimited file names. Bug #231514 submitted by
-anonymous user. (gp.h [1.6]: 2001/03/03 04:38:19 alexcher)
- - When objects were resized or trimmed, the objects o_size was not
-being updated if the rounded_size didn't change. This could lead to
-alignment issues on some systems (causing a crash). Problem reported by
-Artifex customer #460. (gsalloc.c [1.9]: 2001/03/12 00:04:28 rayjj)
- - Some device color components were missed while serializing
-halftone to clist, causing segment fault during playback. Changes use proper
-number of device color components to be written to clist and read from it.
-SourceForge bug #211449. (gxclpath.c [1.9], gxclrast.c [1.9]: 2001/03/13
-08:38:03 igorm)
- - kshow now restores currentfont if changed while running proc.
-Fixes SourceForge bug #221715. (gxchar.c [1.3]: 2001/03/14 13:03:49 igorm)
- - properly include unistd_.h in files that call unlink()
-(gsiodev.c [1.5], gxclfile.c [1.3]: 2001/03/16 22:12:34 giles)
- - /None and /All separations are now supported. SourceForge bug
-#228354. (gscsepr.c [1.7]: 2001/03/18 19:17:50 igorm)
-
-Replace many references to exit() with returns. (gsargs.c [1.3],
-gsargs.h [1.4], gsexit.h [1.3], gxalloc.h [1.6]: 2001/03/12 03:50:02
-ghostgum)
-
-Adds device filter pipeline, which will be used by PDF 1.4 and other
-enhanced imaging operations. (gsdfilt.c [1.1], gsdfilt.h [1.1],
-gsstate.c [1.10], gzstate.h [1.5]: 2001/03/13 00:41:10 raph)
-
-Redirect all user messages from stdout and stderr to outwrite() and
-errwrite(). This is needed to allow stdout/err to be redirected to the
-caller for DLL / shared object builds. (gp_unifs.c [1.4], gsargs.c [1.4],
-gsinit.c [1.3], gsio.h [1.5], gslib.c [1.4], gsmisc.c [1.10],
-gxclutil.c [1.4]: 2001/03/13 06:51:39 ghostgum)
-
-Implement new Ghostscript interpreter API for DLL or shared object.
-Reimplement old DLL interface using new API. See iapi.h and iapi.c for new
-API. For unix, build using "make so". Added loader programs for Ghostscript
-interpreter library for GNU/Linux (dxmain.c), Windows (dw*.c) and OS/2
-(dpmain.c). Add new "display" device for use with the new API. GNU/Linux
-dxmain.c uses the "display" device, Gtk+ and GdkRgb for faster drawing than
-the "x11" device. (gsexit.h [1.4]: 2001/03/13 07:09:29 ghostgum)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (gs_stdio.h [1.1], gscdef.c [1.12], gscie.c [1.4], gscie.h [1.3],
-gsciemap.c [1.5], gscolor.c [1.5], gscolor1.c [1.4], gscscie.c [1.4],
-gscspace.h [1.6], gscssub.c [1.3], gsicc.c [1.1], gsicc.h [1.1],
-gxcie.h [1.3], gxshade.c [1.5], icc.h [1.1]: 2001/03/17 01:15:42 raph)
-
-Minor patch to header files so that unlink() prototype doesn't conflict when
-const is disabled through #define. (unistd_.h [1.2]: 2001/03/17 01:18:34
-raph)
-
-Moves patched icclib 1.23 files into the new icclib/ subdirectory, with
-makefile changes to match. Adds missing COPYRIGHT and other documentation to
-icclib. Thanks to L. Peter Deutsch for pointing out the need. (icc.h [1.2]:
-2001/03/19 17:11:15 raph)
-
-</pre><h2><a name="6.62-Other"></a>Other</h2><pre>
-
-Cleanup of MS-Windows and OS/2 code. Remove old 16-bit MS-Windows code.
-Remove references to stdout/err, replacing with eprintf(). Remove global
-variables. Disable mswindll and os2dll devices if a callback function is not
-provided. (gp_mswin.h [1.3]: 2001/03/12 03:56:13 ghostgum)
-
-Implement new Ghostscript interpreter API for DLL or shared object.
-Reimplement old DLL interface using new API. See iapi.h and iapi.c for new
-API. For unix, build using "make so". Added loader programs for Ghostscript
-interpreter library for GNU/Linux (dxmain.c), Windows (dw*.c) and OS/2
-(dpmain.c). Add new "display" device for use with the new API. GNU/Linux
-dxmain.c uses the "display" device, Gtk+ and GdkRgb for faster drawing than
-the "x11" device. (gp_mswin.h [1.4], gsdll.h [1.3], gsdllwin.h [1.3]:
-2001/03/13 07:09:28 ghostgum)
-
-Integrates ICC profile input support from Jan Stoeckenius. Also includes
-slightly modified version of icclib (icc.h, icc.c, icc9809.h) by Graeme
-Gill. (icc9809.h [1.1]: 2001/03/17 01:15:42 raph)
-
-Moves patched icclib 1.23 files into the new icclib/ subdirectory, with
-makefile changes to match. Adds missing COPYRIGHT and other documentation to
-icclib. Thanks to L. Peter Deutsch for pointing out the need.
-(icc9809.h [1.2], icclib/COPYRIGHT [1.1], icclib/NOTES [1.1],
-icclib/README [1.1], icclib/icc.c [1.1], icclib/icc.h [1.1],
-icclib/icc9809.h [1.1]: 2001/03/19 17:11:14 raph)
-
-<hr>
-
-<h1><a name="Version6.61"></a>Version 6.61 (2001-02-21)</h1>
-
-<p>
-The primary updates in this fileset are in the PDF 1.4 transparency and
-blending code (available for testing with the pnga driver). The usual
-bug fixes are also present.
-
-<p>
-All problems registered on SourceForge numbered 133403 or lower are
-closed, except for the following: 101814, 101955, 102735, 106652,
-109350, 111449, 113116, 113799, 114084, 115256, 116461, 119676,
-119677, 119798, 120967, 121582, 121715, 122534, 122683, 122727,
-123005, 123091, 123754, 123896, 123992, 124056, 124095, 124134,
-124205, 124863, 124973, 126364, 126391, 126462, 126477, 126584,
-126943, 127090, 127190, 127244, 127276, 127382, 127651, 127684,
-127709, 127802, 128180, 128354, 128423, 128641, 128714, 128808,
-129425, 129439, 130694, 130699, 131001, 131390, 131514, 132334,
-132696, 133403.
-
-
-<h2><a name="6.61-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Ps-style.htm was missing from the index/blurbs in Readme.htm Adds
-a note about documentation to the "Adding and Removing Files" section, and
-moves that section to Maintain.htm from Release.htm. Closes sourceforge bug
-#126771 (doc/Maintain.htm [1.9], doc/Readme.htm [1.18],
-doc/Release.htm [1.27]: 2001/02/09 01:59:35 giles)
-
-Brings prototypes for fill_path, stroke_path, and fill_trapezoid in sync
-with code. New description for fill_trapezoid, as the parameters changed
-considerably. (doc/Drivers.htm [1.13]: 2001/01/04 19:08:25 raph)
-
-Adds a link to Adobe's Technote #5407 regarding transparency.
-(doc/Language.htm [1.24]: 2001/01/07 18:21:55 giles)
-
-Updates png and zlib urls to the new canonical domain. Patch from Tobias
-Burnus. (doc/Devices.htm [1.18], doc/Make.htm [1.20],
-doc/New-user.htm [1.18]: 2001/01/07 18:36:35 giles)
-
-Increments CVS version number to 6.61 as part of (very delayed) 6.60 release
-process. (doc/News.htm [1.75]: 2001/02/03 01:23:03 raph)
-
-Added DOPDFMARKS to allow pdfmark to be called for annotations, links and
-cropboxes for PDF files on any device. Fixes SourceForge bug # 127062.
-(doc/Use.htm [1.21]: 2001/02/09 23:38:12 ghostgum)
-
-Added addition comments about how to build GS on am IBM RS6000 under AIX
-version 4.3.3 using the IBM C compiler (xlc) version 5.
-(doc/Make.htm [1.21]: 2001/02/20 06:09:31 dancoby)
-
-Updates dates and version numbers in preparation for 6.61 release.
-(doc/Bug-form.htm [1.14], doc/Bug-info.htm [1.10], doc/C-style.htm [1.11],
-doc/Commprod.htm [1.8], doc/Copying.htm [1.6], doc/Current.htm [1.6],
-doc/DLL.htm [1.7], doc/Develop.htm [1.32], doc/Devices.htm [1.19],
-doc/Drivers.htm [1.14], doc/Fonts.htm [1.12], doc/Helpers.htm [1.9],
-doc/History1.htm [1.6], doc/History2.htm [1.6], doc/History3.htm [1.6],
-doc/History4.htm [1.6], doc/History5.htm [1.8], doc/History6.htm [1.17],
-doc/Htmstyle.htm [1.9], doc/Install.htm [1.14], doc/Language.htm [1.25],
-doc/Lib.htm [1.6], doc/Maintain.htm [1.10], doc/Make.htm [1.22],
-doc/New-user.htm [1.19], doc/News.htm [1.76], doc/PUBLIC [1.4],
-doc/Projects.htm [1.23], doc/Ps-style.htm [1.6], doc/Ps2epsi.htm [1.7],
-doc/Ps2pdf.htm [1.24], doc/Psfiles.htm [1.13], doc/README [1.5],
-doc/Readme.htm [1.19], doc/Release.htm [1.28], doc/Source.htm [1.6],
-doc/Tester.htm [1.6], doc/Unix-lpr.htm [1.6], doc/Use.htm [1.22],
-doc/Xfonts.htm [1.6], doc/gs-vms.hlp [1.5], man/dvipdf.1 [1.3],
-man/font2c.1 [1.3], man/gs.1 [1.3], man/gslp.1 [1.3], man/gsnd.1 [1.3],
-man/pdf2dsc.1 [1.3], man/pdf2ps.1 [1.5], man/pdfopt.1 [1.3],
-man/pf2afm.1 [1.3], man/pfbtopfa.1 [1.4], man/printafm.1 [1.3],
-man/ps2ascii.1 [1.3], man/ps2epsi.1 [1.3], man/ps2pdf.1 [1.7],
-man/ps2pdfwr.1 [1.4], man/ps2ps.1 [1.10], man/wftopfa.1 [1.3]: 2001/02/22
-07:30:37 raph)
-
-</pre><h2><a name="6.61-Procedures"></a>Procedures</h2><pre>
-
-Updates png and zlib urls to the new canonical domain. Patch from Tobias
-Burnus. (libpng.mak [1.4], zlib.mak [1.3]: 2001/01/07 18:36:35 giles)
-
-First cut of the PDF 1.4 transparency and blending operations.
-(contrib.mak [1.21], lib.mak [1.42]: 2001/01/14 00:25:27 raph)
-
-Increments CVS version number to 6.61 as part of (very delayed) 6.60 release
-process. (version.mak [1.25]: 2001/02/03 01:23:03 raph)
-
-Continuing development of PDF 1.4 transparency and blending. This round of
-commits implements groups, including non-isolated and knockout variants.
-Also, moves the build rule for the pnga device from contrib to devs.
-(contrib.mak [1.22], devs.mak [1.41]: 2001/02/22 07:27:10 raph)
-
-Updates dates and version numbers in preparation for 6.61 release.
-(version.mak [1.26]: 2001/02/22 07:30:39 raph)
-
-</pre><h2><a name="6.61-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Temporary _.at file was not deleted. (lib/pdf2ps.bat [1.4]:
-2001/02/03 16:12:29 alexcher)
- - Added -dSAFER (lib/pdf2ps.cmd [1.2]: 2001/02/03 18:31:12 alexcher)
- - Defines prototypes for fputs only for (broken) Sun platforms, to
-avoid type mismatches when compiling with -Dconst=. Fixes SourceForge bug
-133358. (echogs.c [1.3]: 2001/02/22 03:59:39 raph)
-
-branches: 1.1.2; file vdtrace.c was initially added on branch HINTER.
-(vdtrace.c [1.1]: 2001/01/12 06:19:36 igorm)
-
-branches: 1.1.2; file _type1.c was initially added on branch HINTER.
-(_type1.c [1.1]: 2001/02/02 20:27:09 igorm)
-
-Converted to SAFER mode. (lib/pf2afm [1.2], lib/pf2afm.bat [1.2],
-lib/pf2afm.cmd [1.2], lib/pf2afm.ps [1.3]: 2001/02/03 21:31:40 alexcher)
-
-</pre><h2><a name="6.61-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - Changes tiff12nc to output correct number of bytes for odd widths.
-(gdevtfnx.c [1.5]: 2001/02/03 18:50:01 raph)
- - Added down cast from gx_device_printer to gx_device_fax The fix is
-suggested by the user. (gdevdfax.c [1.4]: 2001/02/12 21:02:51 alexcher)
- - pswrite ProcSet is reordered to eliminate forward references and
-please a simplistic parser used by one of GS customers. (gdevps.c [1.15]:
-2001/02/21 05:52:07 alexcher)
-
-First cut of the PDF 1.4 transparency and blending operations.
-(gdevpnga.c [1.1]: 2001/01/14 00:25:27 raph)
-
-Continuing development of PDF 1.4 transparency and blending. This round of
-commits implements groups, including non-isolated and knockout variants.
-Also, moves the build rule for the pnga device from contrib to devs.
-(gdevpnga.c [1.2]: 2001/02/22 07:27:10 raph)
-
-</pre><h2><a name="6.61-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - in pdfwrite mode kshow called its procedure in infinite loop
-bacause the character indes was not updated. Unexpected number of calls to
-the procedure often caused various errors such as /stackunderfloe.
-(gdevpdfs.c [1.2]: 2001/02/06 21:42:38 alexcher)
- - imagemask used the color of previous object if the object had
-smaller clipping path than imagemask. Deferred grestore and setcolor were
-transposed. (gdevpdfi.c [1.21]: 2001/02/07 03:49:27 alexcher)
-
-</pre><h2><a name="6.61-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - skip all bytes after the end of the stream in the inline image
-until EOL or EI is found. Some buggy PDF files require this. Fix: In PDF 1.3
-/Matrix key in XObject is optional. Add unitary matrix to the form
-dictionary if XObject has none. (lib/pdf_draw.ps [1.25]: 2001/02/02 22:08:33
-alexcher)
-
-Added DOPDFMARKS to allow pdfmark to be called for annotations, links and
-cropboxes for PDF files on any device. Fixes SourceForge bug # 127062.
-(lib/pdf_main.ps [1.27]: 2001/02/09 23:38:12 ghostgum)
-
-Continuing development of PDF 1.4 transparency and blending. This round of
-commits implements groups, including non-isolated and knockout variants.
-Also, moves the build rule for the pnga device from contrib to devs.
-(lib/pdf_draw.ps [1.26]: 2001/02/22 07:27:10 raph)
-
-</pre><h2><a name="6.61-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - cvs operator did't report rangecheck when source operand is a name
-or string and it's longer than the destination string. Bug # 130975
-(iutil.c [1.3]: 2001/02/05 20:43:40 alexcher)
- - memmove() was used without portability header file memory_.h
-(ztrans.c [1.13]: 2001/02/13 19:45:38 alexcher)
- - New TransformPQR implements a relative colorimetric intent by
-scaling the XYZ values relative to the white and black points. Bug #129771
-(lib/gs_lev2.ps [1.7]: 2001/02/21 04:23:44 alexcher)
-
-branches: 1.1.2; file dwtrace.h was initially added on branch HINTER.
-(dwtrace.h [1.1]: 2001/01/12 06:18:35 igorm)
-
-branches: 1.1.2; file dwtrace.cpp was initially added on branch HINTER.
-(dwtrace.cpp [1.1]: 2001/01/12 06:22:06 igorm)
-
-Increments CVS version number to 6.61 as part of (very delayed) 6.60 release
-process. (lib/gs_init.ps [1.29]: 2001/02/03 01:23:03 raph)
-
-</pre><h2><a name="6.61-Streams"></a>Streams</h2><pre>
-
-Minor patches for clean VMS compile. Thanks to Jacob (=Jouk) Jansen.
-(stdio_.h [1.3]: 2001/02/02 07:52:26 raph)
-
-</pre><h2><a name="6.61-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - egcc - 2.91.66 generates incorrect code for dda_step_add(dxx4,
-dxx4); Using the intermediate variable now to wark around the problem. This
-bug corrupted memory block headers and caused random crashes.
-(gxifast.c [1.3]: 2001/01/25 21:36:17 alexcher)
-
-Changes gx_image_cached_char so that it now images to the device in the text
-enumeration, rather than the current device. This change gives more
-flexibility for implementations of begin_text to interpose a device of their
-own for actual imaging. (gxccache.c [1.3]: 2001/01/04 19:39:24 raph)
-
-Updates documentation in gxdevcli.h on creating device instances.
-(gxdevcli.h [1.4]: 2001/01/14 00:24:30 raph)
-
-First cut of the PDF 1.4 transparency and blending operations.
-(gxblend.c [1.1], gxblend.h [1.1]: 2001/01/14 00:25:27 raph)
-
-Minor patches for clean VMS compile. Thanks to Jacob (=Jouk) Jansen.
-(gsnogc.c [1.6], gxblend.c [1.2]: 2001/02/02 07:52:25 raph)
-
-Continuing development of PDF 1.4 transparency and blending. This round of
-commits implements groups, including non-isolated and knockout variants.
-Also, moves the build rule for the pnga device from contrib to devs.
-(gstrans.c [1.12], gxdevcli.h [1.5]: 2001/02/22 07:27:10 raph)
-
-</pre><h2><a name="6.61-Other"></a>Other</h2><pre>
-
-branches: 1.1.2; file _type1.h was initially added on branch HINTER.
-(_type1.h [1.1]: 2001/01/12 06:22:23 igorm)
-
-branches: 1.1.2; file vdtrace.h was initially added on branch HINTER.
-(vdtrace.h [1.1]: 2001/02/02 20:27:09 igorm)
-
-<hr>
-
-<h1><a name="Version6.60"></a>Version 6.60 (2000-12-31)</h1>
-
-<p>
-This long-overdue fileset includes major new developer documentation, major
-improvements in the PDF writer (for embedded fonts and for DSC comments),
-and lots of bug fixes. Unfortunately, for unknown reasons, the release
-"smoke test" loops forever on the file data/ps/screen.ps -- but only when
-compiled in 'production' mode, not in 'debug' mode. We suspect a gcc bug,
-but don't have the time to track it down before the end of the millennium.
-
-<p>
-All problems registered on SourceForge numbered 127190 or lower are closed,
-except for the following: 101814, 101955, 102735, 105289, 106652, 109350,
-111449, 113116, 113799, 114084, 115256, 116461, 117260, 119676, 119677,
-119798, 120967, 121582, 121715, 122426, 122532, 122534, 122683, 122727,
-123005, 123091, 123702, 123754, 123867, 123896, 123992, 124042, 124056,
-124095, 124134, 124205, 124863, 124973, 126364, 126391, 126462, 126477,
-126506, 126584, 126771, 126943, 127062, 127090, 127190.
-
-<h3><a name="6.60_Incompatible_changes"></a>Incompatible changes</h3>
-
-<pre>
-(Interpreter)
- - With WMode = 1, CID-keyed fonts with no Metrics2 now use default
-metrics computed from FontBBox rather than the horizontal metrics.
-(PDF interpreter)
- - The interpreter now skips to the next EOL after reading the data
-following the ID operator.
- - The incorrectly named ViewerOrientation DSC comment is now
-corrected to ViewingOrientation.
-(Streams)
- - All decoding filters that recognize an EOD in the source data
-must now have an init procedure that sets state->min_left = 1.
-(Library)
- - The glyph_data, subr_data, and seac_data procedures in a Type 1
-font (gs_type1_data_procs), and the glyph_data procedure passed to
-psf_{check,get}_outline_glyphs, must now return 1 iff the outline string was
-newly allocated and should be freed by the caller, like the get_outline
-procedure of Type 42 fonts (gs_type42_data).
- - The ip_state structure is renamed ip_state_t, and has a new
-member, free_char_string.
- - The incorrectly named ViewerOrientation DSC comment is now
-corrected to ViewingOrientation, and the viewer_orientation members of
-the DSC parsing structure are corrected to viewing_orientation.
-
-
-
-<h2><a name="6.60-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - An isolated ampersand needed to be converted to the HTML form.
-(doc/Bug-form.htm [1.12]: 2000/11/04 17:53:57 lpd)
- - cvs2hist was generating invalid anchor names and not escaping
-special charaters. also enable '-r' commandline option, and pass '-b' if
-it's not specified for default branch logs only. Changes.htm now passes the
-validator. Minor url cleanup in Release.htm (doc/Changes.htm [1.19],
-doc/Release.htm [1.23]: 2000/11/10 01:52:35 giles)
- - Removes obsolete documentation reference to -DUsePrinterImages and
-clarifies the entry for the replacing -DPrinted. Fixes sourceforge bug #
-121907. (doc/Use.htm [1.16]: 2000/11/20 20:34:23 giles)
- - Type 1 CharStrings loaded from disk for type 0 CIDFonts were never
-freed, except by garbage collection (which doesn't reclaim chunks with only
-a small amount of surviving data). In practice, this probably only affects
-the PDF writer. (doc/News.htm [1.71]: 2000/11/23 23:34:23 lpd)
- - The pswrite device couldn't write to pipes. The fix involved
-expanding the API for opening device OutputFiles so that the individual
-driver could specify whether it required, requested, or did not want a
-positionable file. Fixes SourceForge bug # 122223. (doc/Use.htm [1.17]:
-2000/11/29 02:25:13 lpd)
- - The default ps2pdf "distiller parameters" weren't documented
-correctly; the parameter values for the other PDFSETTINGS (screen, printer,
-prepress) weren't documented at all; the xxxImageDownsampleThreshold
-parameters were incorrectly documented as xxxDownsampleThreshold.
-(doc/Ps2pdf.htm [1.22]: 2000/12/19 17:55:55 lpd)
- - The documentation of the -dSAFER command line switch was
-inaccurate. (doc/Use.htm [1.18]: 2000/12/23 01:33:06 lpd)
- - documentation for gs_cidcm.ps and gs_dscp.ps was missing.
-(doc/Psfiles.htm [1.11]: 2000/12/29 02:17:12 lpd)
-
-Adds developer documentation on the color mapping pipeline.
-(doc/Develop.htm [1.16]: 2000/11/03 04:53:00 lpd)
-
-switch to Tobias Burnus' stylesheet for the B-D html documentation, along
-with some minor cleanups (doc/Bug-form.htm [1.10], doc/Bug-info.htm [1.8],
-doc/C-style.htm [1.6], doc/Commprod.htm [1.4], doc/Copying.htm [1.4],
-doc/Current.htm [1.4], doc/DLL.htm [1.4], doc/Develop.htm [1.17],
-doc/Devices.htm [1.14], doc/Drivers.htm [1.10], doc/gs.css [1.1]: 2000/11/03
-06:42:42 giles)
-
-update remaining file links in Develop.htm to &lt;dl&gt; format, plus
-additional cleanup (doc/Commprod.htm [1.5], doc/DLL.htm [1.5],
-doc/Develop.htm [1.18], doc/Devices.htm [1.15], doc/Drivers.htm [1.11]:
-2000/11/03 20:15:55 giles)
-
-Lists all the monochrome TIFF drivers individually, rather than as a class.
-(doc/Devices.htm [1.16]: 2000/11/03 23:33:18 lpd)
-
-Switches the rest of the human-maintained html documentation to the new
-stylesheet. We now pass validator.w3.org for HTML 4.01 with the exception of
-an error I couldn't figure out in Bug-form.htm. (doc/Bug-form.htm [1.11],
-doc/Fonts.htm [1.9], doc/Helpers.htm [1.7], doc/Hershey.htm [1.3],
-doc/Htmstyle.htm [1.7], doc/Humor.htm [1.2], doc/Install.htm [1.10],
-doc/Language.htm [1.21], doc/Lib.htm [1.4], doc/Maintain.htm [1.7],
-doc/Make.htm [1.17], doc/New-user.htm [1.15], doc/Projects.htm [1.20],
-doc/Ps-style.htm [1.4], doc/Ps2epsi.htm [1.5], doc/Ps2pdf.htm [1.19],
-doc/Psfiles.htm [1.10], doc/Public.htm [1.4], doc/Readme.htm [1.15],
-doc/Release.htm [1.22], doc/Source.htm [1.4], doc/Tester.htm [1.4],
-doc/Unix-lpr.htm [1.4], doc/Use.htm [1.15], doc/Xfonts.htm [1.4],
-doc/index.html [1.2]: 2000/11/04 05:00:00 giles)
-
-updated News.htm to use gs.css (doc/News.htm [1.70]: 2000/11/04 21:59:35
-giles)
-
-Adds documentation on Ghostscript's object-oriented coding conventions, and
-more documentation on error generation. (doc/C-style.htm [1.7],
-doc/Develop.htm [1.19]: 2000/11/07 07:34:57 lpd)
-
-Expands the description of the color mapping process.
-(doc/Develop.htm [1.20]: 2000/11/09 05:41:46 lpd)
-
-updates history files 1-4 (historical) to valid html4 and the new stylesheet
-(doc/History1.htm [1.4], doc/History2.htm [1.4], doc/History3.htm [1.4],
-doc/History4.htm [1.4]: 2000/11/28 22:55:34 giles)
-
-updates the version 5.x history file to the conforming html4
-(doc/History5.htm [1.6]: 2000/12/01 00:47:08 giles)
-
-Adds documentation on creating a release directory, including checking the
-version numbers of the third-party libraries.
-(doc/Release.htm [1.24]: 2000/12/05 21:16:25 lpd)
-
-Updates documentation to reflect recent improvements in text and DSC comment
-handling. (doc/Ps2pdf.htm [1.20]: 2000/12/09 08:01:56 lpd)
-
-Documents the change from ViewerOrientation to ViewingOrientation in the DSC
-parser. (doc/News.htm [1.72]: 2000/12/09 19:53:48 lpd)
-
-Makes the PDF writer extract orientation and bounding box information from
-DSC comments, if present. The orientation is used to set Rotate if
-AutoRotatePages is not selected; the bounding box is not yet used for
-anything. (doc/Ps2pdf.htm [1.21]: 2000/12/09 19:54:55 lpd)
-
-adds a brief blurb for Develop.htm (doc/Readme.htm [1.16]: 2000/12/11
-19:39:36 giles)
-
-In the developer documentation, breaks down several long file lists into
-shorter, more focused ones. (doc/Develop.htm [1.21]: 2000/12/12 19:52:49
-lpd)
-
-Adds some additional documentation on halftones. (doc/Develop.htm [1.22]:
-2000/12/15 01:46:57 lpd)
-
-Adds additional documentation on makefile conventions, and improves a few
-other areas. (doc/Develop.htm [1.23]: 2000/12/18 06:45:23 lpd)
-
-Adds more documentation on makefiles, .dev files, and related topics.
-(doc/Develop.htm [1.24]: 2000/12/20 05:09:31 lpd)
-
-Adds more developer documentation on the PostScript interpreter; divides up
-some lists of files to provide more helpful detail. (doc/Develop.htm [1.25]:
-2000/12/20 20:15:41 lpd)
-
-Documents the preferred line breaking and indentation format for assignment
-statements, including chain assignments. (doc/C-style.htm [1.8]: 2000/12/22
-16:58:55 lpd)
-
-Makes some minor corrections and improvements to the developer
-documentation. (doc/Develop.htm [1.26]: 2000/12/28 05:57:18 lpd)
-
-Adds substantial new material on coding conventions for structures, classes,
-and subclasses. (doc/C-style.htm [1.9]: 2000/12/28 07:12:38 lpd)
-
-Documents about 15 additional non-standard operators (the ones most likely
-to be used in future code). (doc/Develop.htm [1.27],
-doc/Language.htm [1.22]: 2000/12/28 18:29:49 lpd)
-
-Documents the need to run hrefcov as part of the release process; also fixes
-some minor inaccuracies. (doc/Release.htm [1.25]: 2000/12/29 02:12:08 lpd)
-
-Adds more files to the developer "roadmap" documentation.
-(doc/Develop.htm [1.28]: 2000/12/29 02:18:47 lpd)
-
-Adds the Fontmaps and the contributed drivers to the developer documentation
-"roadmap", which is now complete. (doc/Develop.htm [1.29]: 2000/12/29
-02:33:40 lpd)
-
-Adds some developer documentation on design principles.
-(doc/Develop.htm [1.30]: 2000/12/30 22:07:37 lpd)
-
-Removes or updates no longer appropriate references to Aladdin Enterprises.
-(doc/Commprod.htm [1.6], doc/Fonts.htm [1.10], doc/Install.htm [1.11],
-doc/Make.htm [1.18], doc/New-user.htm [1.16], doc/Projects.htm [1.21],
-doc/Use.htm [1.19]: 2000/12/31 21:43:59 lpd)
-
-Updates documentation for the Windows uninstall program to reflect a name
-change.
-(doc/Install.htm [1.12]: 2000/12/31 22:26:08 lpd)
-
-Updates repository for 6.60 release. (doc/Bug-form.htm [1.13],
-doc/Bug-info.htm [1.9], doc/C-style.htm [1.10], doc/Commprod.htm [1.7],
-doc/Copying.htm [1.5], doc/Current.htm [1.5], doc/DLL.htm [1.6],
-doc/Develop.htm [1.31], doc/Devices.htm [1.17], doc/Drivers.htm [1.12],
-doc/Fonts.htm [1.11], doc/Helpers.htm [1.8], doc/History1.htm [1.5],
-doc/History2.htm [1.5], doc/History3.htm [1.5], doc/History4.htm [1.5],
-doc/History5.htm [1.7], doc/History6.htm [1.15], doc/Htmstyle.htm [1.8],
-doc/Install.htm [1.13], doc/Language.htm [1.23], doc/Lib.htm [1.5],
-doc/Maintain.htm [1.8], doc/Make.htm [1.19], doc/New-user.htm [1.17],
-doc/News.htm [1.73], doc/Projects.htm [1.22], doc/Ps-style.htm [1.5],
-doc/Ps2epsi.htm [1.6], doc/Ps2pdf.htm [1.23], doc/Psfiles.htm [1.12],
-doc/Readme.htm [1.17], doc/Release.htm [1.26], doc/Source.htm [1.5],
-doc/Tester.htm [1.5], doc/Unix-lpr.htm [1.5], doc/Use.htm [1.20],
-doc/Xfonts.htm [1.5], doc/gs-vms.hlp [1.4], man/dvipdf.1 [1.2],
-man/eps2eps.1 [1.3], man/font2c.1 [1.2], man/gs.1 [1.2], man/gslp.1 [1.2],
-man/gsnd.1 [1.2], man/pdf2dsc.1 [1.2], man/pdf2ps.1 [1.4],
-man/pdfopt.1 [1.2], man/pf2afm.1 [1.2], man/pfbtopfa.1 [1.3],
-man/printafm.1 [1.2], man/ps2ascii.1 [1.2], man/ps2epsi.1 [1.2],
-man/ps2pdf.1 [1.6], man/ps2pdfwr.1 [1.3], man/ps2ps.1 [1.9],
-man/wftopfa.1 [1.2]: 2001/01/01 00:24:05 lpd)
-
-</pre><h2><a name="6.60-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - cvs2hist was generating invalid anchor names and not escaping
-special charaters. also enable '-r' commandline option, and pass '-b' if
-it's not specified for default branch logs only. Changes.htm now passes the
-validator. Minor url cleanup in Release.htm (toolbin/cvs2hist.py [1.4]:
-2000/11/10 01:52:35 giles)
- - The OS/2 platform code would no longer compile, because the stdio
-files are no longer available. (fix from rjl) (os2.mak [1.9]: 2000/12/05
-01:16:26 lpd)
- - Embedded font subsets always used similar sequences of prefixes,
-making it likely that combining multiple PDF files would lead to clashes;
-the code now generates truly random prefixes, using an external source of
-random data. (devs.mak [1.39]: 2000/12/10 00:12:23 lpd)
- - Fixes a couple of dependency lists that had gotten out of sync.
-(devs.mak [1.40]: 2000/12/10 00:17:51 lpd)
- - Seek was broken and PDF interpreter failed when
-FILE_IMPLEMENTATION=fd The implementation of streams using direct OS calls
-is extended to support MSVC &amp;&amp; Win32. close_.h is replaced by more
-general unistd_.h (lib.mak [1.40]: 2000/12/19 03:35:40 alexcher)
- - In the previous fix unistd__h was misspelt as unistd_h .
-(lib.mak [1.41]: 2000/12/19 05:35:53 alexcher)
- - The recent change for localized man pages didn't update 2 of the 3
-top-level Unix makefiles. (unixansi.mak [1.7], unixtrad.mak [1.7]:
-2000/12/23 16:29:53 lpd)
- - The list of doc files to be installed had gotten out of date
-(Develop.htm, Maintain.htm, and Ps-style.htm were missing).
-(unixinst.mak [1.16]: 2000/12/23 16:30:36 lpd)
- - unixinst.mak was checked in with the previous fix only partly
-done. (unixinst.mak [1.17]: 2000/12/23 16:34:12 lpd)
-
-Collect some stray configuration related externs into iconf.h
-(int.mak [1.40]: 2000/11/04 06:12:02 rayjj)
-
-Adds DSC parsing capability to the PostScript interpreter, with an optional
-'feature' to use the DSC Orientation comments to compensate for sloppy
-PostScript producers that don't emit an appropriate setpagedevice command.
-(int.mak [1.41]: 2000/11/05 18:33:53 lpd)
-
-Adds the 'hook' for passing DSC comments to the PDF writer, but doesn't
-actually process any of the comments. NOTE: Part of this code was
-accidentally included in the recent fix for local/global VM problems in the
-PostScript code for using the DSC parser. (devs.mak [1.36]: 2000/11/07
-18:54:26 lpd)
-
-Reorganizes some text-writing code in anticipation of adding CIDFont and
-CMap support. (devs.mak [1.37]: 2000/11/17 22:11:44 lpd)
-
-Avoids exporting empty LD_RUN_PATH environment variable to the link process.
-This was causing binaries to search the current directory for libraries,
-which was a security hole. Fixes SourceForge bug 122532. (ugcclib.mak [1.6],
-unixlink.mak [1.3]: 2000/11/28 00:14:48 raph)
-
-Updates the date and version checker for compatibility with the newest
-documentation standards; also makes it check the makefile values of JVERSION
-and PVERSION against the currently installed third-party source code.
-(toolbin/pre [1.9]: 2000/12/05 21:14:14 lpd)
-
-Extensively revises and updates the pdfwrite text handling code to support
-processing and embedding of all types of fonts (except for Type 3 and
-CIDFontType 1, which are defined by PostScript procedures), and all variants
-of 'show' (including kshow and glyphshow). In particular, Type 0 fonts with
-all FMapTypes (including CMap-based), CIDFontType 0 and 2 fonts, and both
-standard and non-standard CMaps are supported. (devs.mak [1.38],
-int.mak [1.42], lib.mak [1.38]: 2000/12/08 23:35:37 lpd)
-
-removes a spurious import of the cgi module (toolbin/cvs2hist.py [1.5]:
-2000/12/11 19:40:23 giles)
-
-Splits off the code for downsampling an oversampled character bitmap into a
-separate file. (lib.mak [1.39]: 2000/12/14 00:14:52 lpd)
-
-Adds a '-t' option to enable text output rather than html, replacing the old
-behavior, which was to return text unless a version string was passed with
-'-v'. The version string is now set to 'CVS' if no explicit version is
-passed, and this is used in the named anchors within the html output.
-(toolbin/cvs2hist.py [1.6]: 2000/12/23 09:38:10 giles)
-
-Adds support for localized manpages to the make 'install' target. On unix
-the makefile will now intall any files with the $MAN1EXT extension it finds
-under locale subdirs of the man directory that are listed in the MAN_LCDIRS
-variable. The $man1dir is correspondingly removed from unix-gcc.mak. Also
-adds separate targets: install-doc install-man install-examples
-install-libdata (unix-gcc.mak [1.9], unixinst.mak [1.15]: 2000/12/23
-10:10:37 giles)
-
-Improves the set of files checked by hrefcov +lib.
-(toolbin/hrefcov.tcl [1.5]: 2000/12/29 02:16:13 lpd)
-
-Adds a script for batch-converting PostScript files to PDF, intended to be
-useful for testing. (toolbin/many2pdf.tcl [1.1]: 2000/12/31 22:28:09 lpd)
-
-Updates repository for 6.60 release. (toolbin/pre [1.10],
-version.mak [1.24]: 2001/01/01 00:24:06 lpd)
-
-</pre><h2><a name="6.60-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - pdfopt.ps used the "unresolved?" procedure from pdf_base.ps, which
-has been replaced by the slightly different "resolved?" procedure.
-(lib/pdfopt.ps [1.4]: 2000/12/01 04:15:52 lpd)
- - The OS/2 platform code would no longer compile, because the stdio
-files are no longer available. (fix from rjl) (gp_os2.c [1.5]: 2000/12/05
-01:16:26 lpd)
- - File flush method uses file member in stream. On Windows and OS/2
-it is NULL for %stdout or %stderr. So the standard flush method is
-installed. (gp_msio.c [1.3], gp_os2.c [1.6]: 2000/12/19 03:44:24 alexcher)
- - /NullEncode filter no longer supports fileposition. Replacing
-fileposition with .fileposition (lib/impath.ps [1.3]: 2000/12/28 17:06:07
-alexcher)
- - _.at file was not deleted in BAT file; SAFER option added to CMD
-file. (lib/eps2eps.bat [1.4], lib/eps2eps.cmd [1.2]: 2000/12/30 18:45:37
-alexcher)
-
-Improves documentation of cid2code.ps by adding a complete usage example.
-(lib/cid2code.ps [1.3]: 2000/11/30 18:22:11 lpd)
-
-Adds extensive documentation to genconf.c; also brings it into line with
-current Ghostscript coding standards. (genconf.c [1.4]: 2000/12/20 04:20:34
-lpd)
-
-Safe mode implemented using DELAYSAFER flag. (lib/pdf2dsc [1.3],
-lib/pdf2dsc.bat [1.1], lib/pdf2dsc.ps [1.3]: 2000/12/29 05:03:49 alexcher)
-
-</pre><h2><a name="6.60-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - In PDF output, color values of 1.0 were usually written as 0.999.
-(bug introduced in version 6.22) (gdevpsdu.c [1.8]: 2000/11/12 07:13:26 lpd)
- - The pswrite device couldn't write to pipes. The fix involved
-expanding the API for opening device OutputFiles so that the individual
-driver could specify whether it required, requested, or did not want a
-positionable file. Fixes SourceForge bug # 122223. (gdevps.c [1.13],
-gdevpx.c [1.5]: 2000/11/29 02:25:13 lpd)
- - Invalid (uninitialized) StripByteCount was being left in file for
-the tiff12nc and tiff24nc devices. Needed to call gdev_tiff_end_strip().
-(gdevtfnx.c [1.4]: 2000/12/15 06:09:27 rayjj)
- - Fixes bug introduced in gdevxini.c revision 1.5. Don't overwrite
-the pixmap handle provided in the GHOSTVIEW environment variable.
-(gdevxini.c [1.10]: 2000/12/15 10:18:47 ghostgum)
- - The pswrite device produced an extra page if the transfer function
-didn't map "1 setgray" to device white. (gdevps.c [1.14]: 2000/12/21
-03:58:54 lpd)
-
-</pre><h2><a name="6.60-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - kshow caused the PDF writer to revert to bitmapped fonts. Fixes
-SourceForge bug # 104118. (gdevpdft.c [1.21]: 2000/11/06 04:17:14 lpd)
- - The PDF writer didn't handle stroked fonts correctly (they were
-filled instead of stroked). (gdevpdf.c [1.23], gdevpdfd.c [1.11],
-gdevpdft.c [1.22], gdevpdfx.h [1.23]: 2000/11/12 06:52:08 lpd)
- - When mixing filled and stroked fonts, the color wasn't set
-correctly. (gdevpdft.c [1.23]: 2000/11/12 07:14:30 lpd)
- - The PDF writer incorrectly assumed that in PDF 1.3, the standard
-Latin character set was the PostScript 3 extended set (it's actually the old
-PostScript Level 2 set). (gdevpdft.c [1.28]: 2000/11/20 18:13:55 lpd)
- - Embedded CIDFontType 2 fonts had an incorrect BoundingBox.
-(gdevpdff.c [1.14]: 2000/12/09 06:53:25 lpd)
- - Embedded font subsets always used similar sequences of prefixes,
-making it likely that combining multiple PDF files would lead to clashes;
-the code now generates truly random prefixes, using an external source of
-random data. (gdevpdf.c [1.26], gdevpdfe.c [1.8], gdevpdff.c [1.15],
-gdevpdff.h [1.9], gdevpdfx.h [1.27]: 2000/12/10 00:12:23 lpd)
- - Non-embedded Multiple Master instances weren't identified as such
-(font Subtype = /MMType1). (gdevpdfw.c [1.7]: 2000/12/11 08:52:01 lpd)
- - pdfwrite would crash if a bitmap character was larger than 10Kb
-(compressed). The fix simply raises the limit to 1 Mb. (gdevpdft.c [1.30]:
-2000/12/13 01:33:37 lpd)
- - When processing DSC comments, some constant strings weren't copied
-to the heap, possibly causing memory access errors. (gdevpdfp.c [1.16]:
-2000/12/16 07:02:35 lpd)
- - If the same standard (base 14) font was loaded more than once
-(because of save/restore), the PDF file could contain fonts that had
-suffixed names (e.g., Helvetica~2) but with data missing as though they were
-standard fonts, upsetting Acrobat Reader. Fixes SourceForge bug # 101905.
-THIS FIX IS IN A VERY FRAGILE AREA AND MAY INTRODUCE NEW PROBLEMS.
-(gdevpdff.c [1.16]: 2000/12/16 08:00:53 lpd)
- - The previous fix for copying DSC comment keys to the heap was
-unnecessarily complex. (gdevpdfp.c [1.17]: 2000/12/16 19:28:51 lpd)
- - Resource usage wasn't tracked separately for Form XObjects (BP/EP
-pdfmarks), producing non-compliant files that caused errors from Acrobat.
-Fixes SourceForge bug # 102146. (gdevpdf.c [1.28], gdevpdff.c [1.17],
-gdevpdff.h [1.10], gdevpdfm.c [1.8], gdevpdfo.c [1.6], gdevpdfo.h [1.6],
-gdevpdft.c [1.31], gdevpdfu.c [1.14], gdevpdfw.c [1.8], gdevpdfx.h [1.28]:
-2000/12/16 19:36:32 lpd)
- - Strict type correctness is required on VMS system. Contributed by
-Jouk Jansen joukj@hrem.stm.tudelft.nl (gdevpdfw.c [1.9]: 2000/12/18 21:58:03
-alexcher)
-
-Adds the 'hook' for passing DSC comments to the PDF writer, but doesn't
-actually process any of the comments. NOTE: Part of this code was
-accidentally included in the recent fix for local/global VM problems in the
-PostScript code for using the DSC parser. (gdevpdfp.c [1.13]: 2000/11/07
-18:54:26 lpd)
-
-Changes the internal indication of whether to allow font subsetting from a
-Boolean to OK, YES, NO. (Unfortunately, I no longer remember why this change
-is needed.) (gdevpdfe.c [1.6], gdevpdff.c [1.10], gdevpdff.h [1.5],
-gdevpdft.c [1.24]: 2000/11/14 06:57:21 lpd)
-
-When writing PDF output, adds the ability to convert text in Type 0 fonts to
-text in the descendant leaf fonts. This completes the handling of text
-output except for CID-keyed fonts. (gdevpdft.c [1.25]: 2000/11/14 16:47:09
-lpd)
-
-Reorganizes some text-writing code in anticipation of adding CIDFont and
-CMap support. (gdevpdff.c [1.11], gdevpdff.h [1.6], gdevpdft.c [1.26]:
-2000/11/17 22:11:44 lpd)
-
-Makes glyphshow no longer revert to bitmapped fonts. Also adds a CIDFont
-pseudo-resource, in anticipation of adding CID-keyed font support.
-(gdevpdff.c [1.12], gdevpdff.h [1.7], gdevpdft.c [1.27], gdevpdfx.h [1.24]:
-2000/11/20 08:31:20 lpd)
-
-Extensively revises and updates the pdfwrite text handling code to support
-processing and embedding of all types of fonts (except for Type 3 and
-CIDFontType 1, which are defined by PostScript procedures), and all variants
-of 'show' (including kshow and glyphshow). In particular, Type 0 fonts with
-all FMapTypes (including CMap-based), CIDFontType 0 and 2 fonts, and both
-standard and non-standard CMaps are supported. (gdevpdf.c [1.24],
-gdevpdfe.c [1.7], gdevpdff.c [1.13], gdevpdff.h [1.8], gdevpdfs.c [1.1],
-gdevpdft.c [1.29], gdevpdfu.c [1.13], gdevpdfw.c [1.6], gdevpdfx.h [1.25]:
-2000/12/08 23:35:38 lpd)
-
-If ParseDSCCommentsForDocInfo is set to true, copies information from DSC
-comments Creator, CreationDate, For, and Title into the output's Info
-dictionary. (gdevpdfp.c [1.14]: 2000/12/09 07:49:22 lpd)
-
-Makes the PDF writer extract orientation and bounding box information from
-DSC comments, if present. The orientation is used to set Rotate if
-AutoRotatePages is not selected; the bounding box is not yet used for
-anything. (gdevpdf.c [1.25], gdevpdfp.c [1.15], gdevpdfx.h [1.26]:
-2000/12/09 19:54:54 lpd)
-
-Slightly changes the initialization of the random offset for font subset
-prefixes, to work better with low-resolution clocks such as those typical on
-PCs. (gdevpdf.c [1.27]: 2000/12/16 19:31:10 lpd)
-
-</pre><h2><a name="6.60-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - Type 0 fonts with a non-standard (embedded) CMap didn't work at
-all. (lib/pdf_font.ps [1.15]: 2000/12/02 20:41:52 lpd)
- - The PDF interpreter ignored the CIDToGIDMap entry in (embedded)
-CIDFontType 2 fonts, producing incorrect output if the map wasn't /Identity.
-(lib/pdf_font.ps [1.16]: 2000/12/07 23:41:10 lpd)
- - GS didn't dereference indirect objects in Widths array.
-(lib/pdf_font.ps [1.17]: 2000/12/17 19:06:19 alexcher)
- - Fixes a slight oversight in the true/false/null improvement for
-the PDF interpreter. (lib/pdf_base.ps [1.12]: 2000/12/26 04:10:12 lpd)
- - When a non-TrueType font was substituted for a TrueType font, the
-Encoding in the font descriptor was ignored. This hack was intended to fix
-SF bug # 104702, an invalid PDF file, but it broke another case. Removal of
-the hack makes GS render both cases similar to AR 4.
-(lib/pdf_font.ps [1.18]: 2000/12/26 04:29:30 alexcher)
- - The PDF interpreter didn't rotate the CropBox for landscape pages,
-producing incorrect output if the input of ps2pdf was a landscape PDF file.
-(lib/pdf_main.ps [1.26]: 2000/12/31 01:07:18 lpd)
-
-Improves font substitution by taking the "Narrow" property into account.
-Fixes SourceForge bug 116460. Fix due to Leon Bottou.
-(lib/pdf_font.ps [1.13]: 2000/11/05 17:36:28 raph)
-
-Wraps the showpagecontents call in gsave/grestore, so that the graphics
-state for drawing annotations is pristine. Fixes Sourceforge bug 123310.
-(lib/pdf_main.ps [1.23]: 2000/11/25 22:00:21 raph)
-
-The published PDF specification says the Encoding name "must be" one of the
-3 predefined Encodings, implying that an error should occur if it isn't.
-However, Acrobat Reader simply ignores unknown names, and since there are
-some buggy applications that rely on this, we do the same.
-(lib/pdf_font.ps [1.14]: 2000/11/28 18:55:24 alexcher)
-
-The PDF specification says that the 'xref' must be on a line by itself. The
-code formerly used readline and linene to check this. However, Acrobat
-Reader only requires the line to begin with 'xref', and there are enough
-applications producing non-compliant PDF files that we have to do this too.
-(lib/pdf_main.ps [1.24]: 2000/12/18 03:41:35 alexcher)
-
-AI8 writes bogus encoding array [0 1 0 0 0 0 0 0] AR doesn't care. So we
-have to straighten it up here. (lib/pdf_draw.ps [1.24]: 2000/12/20 19:02:24
-alexcher)
-
-Makes the PDF interpreter handle true, false, and null specially, rather
-than by dictionary lookup, so that the PostScript interpreter can still
-process these names using the special fast case for names defined only in
-systemdict. (lib/pdf_base.ps [1.11], lib/pdf_main.ps [1.25]: 2000/12/26
-04:08:44 lpd)
-
-</pre><h2><a name="6.60-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - The recently updated code for activating the DSC comment parser
-had several local/global VM problems, causing invalidaccess errors.
-(lib/gs_dps2.ps [1.3], lib/gs_init.ps [1.27], lib/gs_pdfwr.ps [1.7]:
-2000/11/07 18:51:24 lpd)
- - There was still a bug in the code for passing DSC comments to the
-PDF writer, causing typecheck errors. (lib/gs_pdfwr.ps [1.8]: 2000/11/07
-19:27:14 lpd)
- - If the procedure of a FunctionType 4 Function was syntactically
-valid but exceeded the maximum stack depth, an attempt was made to free a
-string as an object, causing memory corruption. (zfunc4.c [1.6]: 2000/11/11
-17:34:06 lpd)
- - Disk-based TrueType fonts caused a memory leak. (Currently, there
-are no such fonts, but CIDFontType 2 fonts, and directly-accessed TrueType
-fonts, should be made disk-based.) (zfcid1.c [1.4]: 2000/11/22 08:32:07 lpd)
- - Type 1 CharStrings loaded from disk for type 0 CIDFonts were never
-freed, except by garbage collection (which doesn't reclaim chunks with only
-a small amount of surviving data). In practice, this probably only affects
-the PDF writer. (zfcid0.c [1.5]: 2000/11/23 23:34:22 lpd)
- - Single-byte notdef ranges in CMaps incorrectly incremented the CID
-number, rather than assigning the same CID to all characters in the range.
-(lib/gs_cmap.ps [1.9]: 2000/11/29 06:58:36 lpd)
- - In dictionaries, an int lookup key sometimes didn't match a real
-stored key, and vice versa. Fixes SourceForge bug # 123678. (idict.c [1.3]:
-2000/11/30 07:13:08 lpd)
- - Further tweaking of the logic to clear end_status flags in a
-pipeline in the continuation of a procedure write, making it more aggressive
-than the previous fix, but less aggressive than the original code. This is a
-revised fix for Sourceforge bug 119777. (zfproc.c [1.7]: 2000/12/02 19:58:45
-raph)
- - 'gstate' was allowed in global VM even if the current graphics
-state included references to structures in local VM (which is, in fact,
-normally the case) and the save level was non-zero: this could create a
-dangling pointer after the 'restore'. This "fix" is a workaround that simply
-prohibits doing this, but a correct fix would copy any such structures.
-(zdps1.c [1.3]: 2000/12/02 20:39:37 lpd)
- - The first call of check_psc_function in gs_build_function_4 didn't
-initialize size to 0, causing the computed value of size to be garbage,
-possibly leading to a VMerror or memory corruption. (zfunc4.c [1.7]:
-2000/12/03 16:56:31 alexcher)
- - The font_info procedure for PostScript fonts other than Type 1
-didn't return information from the FontInfo dictionary (Copyright,
-FamilyName, FullName, Notice), causing this information to be omitted when
-embedding the font in a PDF file. (ifont.h [1.6], zbfont.c [1.7],
-zfont.c [1.3], zfont1.c [1.9]: 2000/12/03 23:35:30 lpd)
- - The %%ViewingOrientation: DSC comment was misspelled
-%%ViewerOrientation:. This also corrects the CDSC_VIEWINGORIENTATION enum
-value (formerly CDSC_VIEWERORIENTATION, and the viewing_orientation members
-of the CDSCPAGE structure and the CDSC structure (formerly
-viewer_orientation). (dscparse.c [1.3], dscparse.h [1.3], zdscpars.c [1.8]:
-2000/12/09 18:28:23 lpd)
- - Unitialized member of CDSCPAGE caused random crashes.
-(dscparse.c [1.4]: 2000/12/13 07:18:46 alexcher)
- - systemdict was being created too small for LanguageLevel 3
-systems. (It expanded properly, but left a sandbar.) (iinit.c [1.3]:
-2000/12/26 04:25:54 lpd)
- - Expanding a permanent dictionary (systemdict or userdict)
-destroyed the single-definition bookkeeping for names defined in that
-dictionary, slowing down subsequent interpretation. (idict.c [1.4]:
-2000/12/26 06:09:58 lpd)
- - Fix to dscparse.c for parsing DOS EPS files. Code now looks for
-%!PS-Adobe- at the start of the PostScript section, not at the start of the
-DOS EPS header. (dscparse.c [1.5]: 2000/12/28 01:45:01 ghostgum)
-
-Collect some stray configuration related externs into iconf.h
-(imain.c [1.3], imainarg.c [1.5]: 2000/11/04 06:12:02 rayjj)
-
-branches: 1.1.2; Collect some stray configuration related externs into
-iconf.h (iconf.h [1.1]: 2000/11/04 06:12:02 rayjj)
-
-Add COMPILE_INITS information line to -h help output. (imainarg.c [1.6]:
-2000/11/04 06:13:42 rayjj)
-
-Adds DSC parsing capability to the PostScript interpreter, with an optional
-'feature' to use the DSC Orientation comments to compensate for sloppy
-PostScript producers that don't emit an appropriate setpagedevice command.
-(lib/gs_dscp.ps [1.1], zdscpars.c [1.1]: 2000/11/05 18:33:52 lpd)
-
-branches: 1.1.2; Adds DSC parsing capability to the PostScript interpreter,
-with an optional 'feature' to use the DSC Orientation comments to compensate
-for sloppy PostScript producers that don't emit an appropriate setpagedevice
-command. (dscparse.c [1.1], dscparse.h [1.1]: 2000/11/05 18:33:53 lpd)
-
-Polishes the DSC parser interface: improves comments and formatting, and
-fixes a couple of very minor glitches. (zdscpars.c [1.2]: 2000/11/06
-07:34:21 lpd)
-
-branches: 1.3.2; ... and fixes an overlooked const discrepancy.
-(zdscpars.c [1.3]: 2000/11/06 07:35:51 lpd)
-
-branches: 1.2.2; Fix: The recently updated code for activating the DSC
-comment parser had several local/global VM problems, causing invalidaccess
-errors. (lib/gs_dscp.ps [1.2]: 2000/11/07 18:51:25 lpd)
-
-Return code variables (code and comment_code) in zparse_dsc_comments(). need
-to be signed. (zdscpars.c [1.4]: 2000/11/08 00:54:48 dancoby)
-
-Rewrites .parse_dsc_comment to use the parameter list machinery, removing a
-little functionally duplicated code; changes two incorrect uints to ints
-(fix from dan@artifex.com); adds additional comment types (BoundingBox,
-PageBoundingBox, BeginDefaults, EndDefaults) to the interface.
-(zdscpars.c [1.5]: 2000/11/08 07:07:32 lpd)
-
-DSC parser changes: adds %%ViewerOrientation to DSC parser; doesn't flag an
-error if %%Pages is absent but one %%Page is found; frees memory if
-initialization fails; recognizes general whitespace in some places where
-only spaces were recognized before. (changes from gsview@ghostgum.com.au)
-(dscparse.c [1.2], dscparse.h [1.2]: 2000/11/13 05:44:58 lpd)
-
-Adds DSC comment tracing to ps2pdf, if -dDEBUG is specified on the command
-line. (lib/gs_pdfwr.ps [1.9]: 2000/11/13 17:03:51 lpd)
-
-Adds %%EndDefaults, %%For:, and %%ViewerOrientation: to the set of DSC
-comments handled by the .parse_dsc_comments operator. (zdscpars.c [1.6]:
-2000/11/13 17:06:18 lpd)
-
-Slightly simplifies the code for creating the internal representation of
-CMaps. (lib/gs_cmap.ps [1.8]: 2000/11/16 00:32:00 lpd)
-
-Changes .buildshading to always apply a ReusableStreamDecode filter to file
-and stream DataSources, so that multiple passes over the stream work. This
-patch closes SourceForge bug 121810. (lib/gs_ll3.ps [1.7]: 2000/11/16
-00:37:32 raph)
-
-Makes single-byte CMap ranges convert into a single range in the internal
-representation, rather than (largest - smallest + 1) separate single-element
-ranges. (lib/gs_cmap.ps [1.10]: 2000/11/29 07:10:27 lpd)
-
-Adds documentation for the procedures declared in ifont.h. (ifont.h [1.5]:
-2000/12/03 23:14:28 lpd)
-
-Extensively revises and updates the pdfwrite text handling code to support
-processing and embedding of all types of fonts (except for Type 3 and
-CIDFontType 1, which are defined by PostScript procedures), and all variants
-of 'show' (including kshow and glyphshow). In particular, Type 0 fonts with
-all FMapTypes (including CMap-based), CIDFontType 0 and 2 fonts, and both
-standard and non-standard CMaps are supported. (lib/gs_cidfn.ps [1.18]:
-2000/12/08 23:35:38 lpd)
-
-Makes the default value of ParseDSCCommentsForDocInfo true rather than
-false. (lib/gs_pdfwr.ps [1.10]: 2000/12/09 08:00:52 lpd)
-
-Changes the parsing of the DSC Orientation comments to return -1 .. 3 rather
-than 0 or 1. (lib/gs_dscp.ps [1.3], zdscpars.c [1.7]: 2000/12/09 17:52:29
-lpd)
-
-Changes .parse_dsc_comments to distinguish (document default)
-ViewingOrientation from PageViewingOrientation, as for [Page]Orientation.
-(zdscpars.c [1.9]: 2000/12/09 19:52:49 lpd)
-
-Updates the comments with a new proposal for speeding up name lookup in the
-interpreter. (dstack.h [1.3]: 2000/12/26 01:20:58 lpd)
-
-The old code caused gswin crash when console window closes.
-(dwimg.cpp [1.3]: 2000/12/26 13:41:40 igorm)
-
-New flag DELAYSAFER added to defer activation of safety checks. SAFER=false
-=&gt; no safety checks SAFER=true, DELAYSAFER=false =&gt; safety checks
-always SAFER=true, DELAYSAFER=true =&gt; safety checks after .setsafe
-(lib/gs_init.ps [1.28]: 2000/12/29 04:13:56 alexcher)
-
-</pre><h2><a name="6.60-Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - Seek was broken and PDF interpreter failed when
-FILE_IMPLEMENTATION=fd The implementation of streams using direct OS calls
-is extended to support MSVC &amp;&amp; Win32. close_.h is replaced by more
-general unistd_.h (sfxfd.c [1.6]: 2000/12/19 03:35:40 alexcher)
-
-</pre><h2><a name="6.60-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Several places in the band list code didn't call s_init_state to
-initialize locally allocated stream states: this is now required (see the
-"Incompatible changes" section above). We suspect there are a few more
-places that will need this fix. (gxclbits.c [1.3], gxcldev.h [1.4],
-gxclread.c [1.3], gxclutil.c [1.3]: 2000/11/05 00:34:24 lpd)
- - Fixes infinite loops when writing large bitmaps into clist. Now,
-cmd_put_bits never requests an allocation in the clist buffer larger than
-cbuf_size. (gxclbits.c [1.4]: 2000/11/05 18:44:57 raph)
- - Works around an Acrobat Reader 4 bug that causes AR4 to draw a
-single pixel, rather than nothing, when filling a subpath consisting only of
-a moveto. (gdevvec.c [1.8]: 2000/11/07 16:42:28 lpd)
- - The PDF writer didn't handle stroked fonts correctly (they were
-filled instead of stroked). (gdevvec.c [1.9], gdevvec.h [1.5]: 2000/11/12
-06:52:08 lpd)
- - The pdfwrite and pswrite drivers could emit a lineto or rlineto
-without a moveto at the beginning of the path. (bug introduced very
-recently, by a workaround for an Acrobat Reader bug) (gdevvec.c [1.10]:
-2000/11/14 07:41:08 lpd)
- - Attempting to write a CFF Type 2 font larger than 32K but smaller
-than 64K caused a rangecheck. (gdevpsf2.c [1.8]: 2000/11/19 17:48:08 lpd)
- - Computing the default width or the fixed width for a CIDFont or
-TrueType font could do a huge amount of unnecessary work. (Probably only
-affects the PDF writer.) (gsfont.c [1.3]: 2000/11/20 21:09:09 lpd)
- - The Type 1 to Type 2 CharString converter (currently used only by
-the PDF writer) often didn't detect invalid CharStrings as input.
-(gdevpsfx.c [1.6]: 2000/11/21 02:33:55 lpd)
- - The code for writing a CIDFontType0 CFF font mistook Type 2
-CharStrings for Type 1, and tried to convert them to Type 2. (This currently
-affects only the PDF writer.) (gdevpsf2.c [1.9]: 2000/11/21 02:35:59 lpd)
- - Disk-based TrueType fonts caused a memory leak. (Currently, there
-are no such fonts, but CIDFontType 2 fonts, and directly-accessed TrueType
-fonts, should be made disk-based.) (gdevpsft.c [1.5], gstype42.c [1.10]:
-2000/11/22 08:32:07 lpd)
- - Type 1 CharStrings loaded from disk for type 0 CIDFonts were never
-freed, except by garbage collection (which doesn't reclaim chunks with only
-a small amount of surviving data). In practice, this probably only affects
-the PDF writer. (gsfcid.c [1.5], gstype1.c [1.6], gstype2.c [1.9],
-gxfont1.h [1.5], gxtype1.c [1.8], gxtype1.h [1.5]: 2000/11/23 23:34:22 lpd)
- - The pswrite device couldn't write to pipes. The fix involved
-expanding the API for opening device OutputFiles so that the individual
-driver could specify whether it required, requested, or did not want a
-positionable file. Fixes SourceForge bug # 122223. (gdevpipe.c [1.4],
-gdevvec.c [1.11], gdevvec.h [1.6], gsdevice.c [1.8]: 2000/11/29 02:25:13
-lpd)
- - The change for freeing transient CharStrings introduced two bugs,
-possibly causing the code to free data twice, or to free data that should be
-retained. (gdevpsfx.c [1.8]: 2000/11/30 05:58:19 lpd)
- - Allocates graphics state path in stable memory. This prevents
-paths in Type 3 fonts allocated inside a save ... setcachedevice ... restore
-sequence from being prematurely freed. Fixes SourceForge bug 101549.
-(gspath1.c [1.3], gsstate.c [1.6]: 2000/12/04 21:13:55 raph)
- - An inadvertent change caused the graphics state not to be freed on
-grestore. This fix, due to lpd, restores the freeing statement.
-(gsstate.c [1.7]: 2000/12/05 09:24:57 raph)
- - The pointers to the substituted color spaces in the graphics state
-weren't included in the structure descriptor, causing memory access errors
-if UseCIEColor was used. (gsstate.c [1.8]: 2000/12/11 04:06:22 alexcher)
- - In TrueType fonts, glyph outlines starting with an off-curve point
-didn't render correctly, replacing the curve with a pair of straight lines.
-(gstype42.c [1.11]: 2000/12/12 22:27:56 alexcher)
- - Strict type correctness is required on VMS system. Contributed by
-Jouk Jansen joukj@hrem.stm.tudelft.nl (gdevpsf2.c [1.12], gsfcmap.c [1.13]:
-2000/12/18 21:58:03 alexcher)
- - Seek was broken and PDF interpreter failed when
-FILE_IMPLEMENTATION=fd The implementation of streams using direct OS calls
-is extended to support MSVC &amp;&amp; Win32. close_.h is replaced by more
-general unistd_.h (gpmisc.c [1.9]: 2000/12/19 03:35:40 alexcher)
- - Fixes a subtle logic bug in the scan line path filling code, which
-unfortunately involved rewriting the code from scratch. The new code is also
-somewhat subtle, and may contain new bugs: DON'T TRUST IT YET. Fixes
-SourceForge bug # 117066. (gxfill.c [1.7]: 2000/12/23 06:02:39 lpd)
- - Embedded Type 1 fonts omitted StdVW. (Acrobat Reader requires
-this, even though the Type 1 specification says it is optional.)
-(gdevpsf1.c [1.8]: 2000/12/29 01:18:55 lpd)
-
-Adds developer documentation on the color mapping pipeline. (gxfrac.h [1.3]:
-2000/11/03 04:53:00 lpd)
-
-Improves the documentation of the minimum responsibilities of the 'process'
-procedure in a text enumerator. (gxtext.h [1.6]: 2000/11/06 00:44:37 lpd)
-
-Adds a param_string_from_transient_string macro, to parallel
-param_string_from_string for non-permanent C strings. (gsparam.h [1.8]:
-2000/11/08 06:56:50 lpd)
-
-Adds a macro for declaring suffix subclasses with 5 added pointers (in
-addition to the existing 1, 2, 3, 4, and 6). (gsstruct.h [1.6]: 2000/11/21
-16:46:55 lpd)
-
-Adds a procedure for testing whether a glyph is a "notdef" in a font,
-necessary for fixing a memory consumption problem when accessing type 0
-CIDFonts. (gsfont.c [1.4], gxfont.h [1.3]: 2000/11/23 23:23:40 lpd)
-
-Speeds up the slow case of fixed_mult_quo by nearly a factor of 2, by using
-a tiny bit of numerical analysis. (gsmisc.c [1.9], gxfixed.h [1.3]:
-2000/11/24 06:53:23 lpd)
-
-Improves the performance of embedded font writing by freeing strings when no
-longer needed, and by removing redundant computation. (Currently relevant
-only to the PDF writer.) (gdevpsf1.c [1.7], gdevpsf2.c [1.10],
-gdevpsfu.c [1.5], gdevpsfx.c [1.7]: 2000/11/24 07:10:41 lpd)
-
-Adds a procedure for creating an Identity CMap, needed by the PDF writer.
-(gsfcmap.c [1.11], gxfcmap.h [1.6]: 2000/11/26 04:08:41 lpd)
-
-Implements the stopgap measure of increasing fill_adjust for Coons patch
-shading, to cover the dropouts caused by incorrect triangulation of the mesh
-surface. See SourceForge Bug 119588 for a more thorough analysis.
-(gsptype2.c [1.4], gxshade4.c [1.4]: 2000/11/29 01:31:30 raph)
-
-Adds an internal unique ID to CMap structures (gs_cmap_t), for use as a
-cache or comparison key. (gsfcmap.c [1.12], gxfcmap.h [1.7]: 2000/11/29
-05:50:03 lpd)
-
-The old code did not comply ISO/IEC C language standard and compiled wrongly
-to Mac, causing halftone problem on Mac. (gshtscr.c [1.5]: 2000/11/29
-14:41:34 igorm)
-
-Adds macros for suffix subclass structures with 7 or 8 additional pointers
-(1-6 and 9 existed already). (gsstruct.h [1.7]: 2000/12/04 01:11:53 lpd)
-
-Extensively revises and updates the pdfwrite text handling code to support
-processing and embedding of all types of fonts (except for Type 3 and
-CIDFontType 1, which are defined by PostScript procedures), and all variants
-of 'show' (including kshow and glyphshow). In particular, Type 0 fonts with
-all FMapTypes (including CMap-based), CIDFontType 0 and 2 fonts, and both
-standard and non-standard CMaps are supported. (gdevpsf.h [1.9],
-gdevpsf2.c [1.11], gdevpsfm.c [1.4], gdevpsft.c [1.6], gdevpsfu.c [1.6]:
-2000/12/08 23:35:38 lpd)
-
-Moves definitions of gs_state_do_ptrs and gs_state_num_ptrs from gsstate.c
-to gzstate.h since they depend on the contents of struct gs_state_s defined
-there. (gsstate.c [1.9], gzstate.h [1.4]: 2000/12/11 12:52:16 alexcher)
-
-Splits off the code for downsampling an oversampled character bitmap into a
-separate file. (gsbitcom.c [1.1], gsbitops.c [1.3]: 2000/12/14 00:14:52 lpd)
-
-branches: 1.1.2; Fix: Seek was broken and PDF interpreter failed when
-FILE_IMPLEMENTATION=fd The implementation of streams using direct OS calls
-is extended to support MSVC &amp;&amp; Win32. close_.h is replaced by more
-general unistd_.h (unistd_.h [1.1]: 2000/12/19 03:35:40 alexcher)
-
-Brings gxfill.c up to date with current coding standards (except for adding
-_t to the names of locally defined structure types); also puts #ifdef
-FILL_TRAPEZOIDS around a little more code that tests 'if (fill_trapezoids)'.
-(gxfill.c [1.6]: 2000/12/21 16:10:36 lpd)
-
-Updates repository for 6.60 release. (gscdef.c [1.11]: 2001/01/01 00:24:06
-lpd)
-
-</pre><h2><a name="6.60-Other"></a>Other</h2><pre>
-
-Fixes problems:
- - Seek was broken and PDF interpreter failed when
-FILE_IMPLEMENTATION=fd The implementation of streams using direct OS calls
-is extended to support MSVC &amp;&amp; Win32. close_.h is replaced by more
-general unistd_.h (close_.h [1.3]: 2000/12/19 03:35:40 alexcher)
-
-<hr>
-
-<h1><a name="Version6.30"></a>Version 6.30 (2000-10-03)</h1>
-
-<p>
-This fileset consists of xxx.
-
-<p>
-All problems registered on SourceForge numbered 110922 or lower are closed,
-except for the following: 101549, 101814, 101905, 101955, 102146, 102735,
-104118, 105289, 105558, 106340, 106652, 109350, 110445, 110898, 110922.
-
-<p>
-The following projects are in a partially completed state:
-
-<ul>
-
-<li>CID-keyed fonts in the PDF writer (gdevpdf[eftw].c) -- barely started.
-
-</ul>
-
-<pre>
-
-<h2><a name="6.24_Incompatible_changes"></a>Incompatible changes</h2>
-
-(Procedures)
- - The -Zv and -ZV switches now trace alpha/transparency features.
- - The program name has changed.
- - The default Windows installation directory is now c:\gs rather
-than c:\Aladdin.
-(Utilities)
- - lib/pdfeof.ps is deleted; its functionality is included in the
-standard code.
-(Drivers)
- - The X driver now implements sync_output using XSync(False) rather
-than XFlush().
-(Library)
- - gdev_vector_dopath now never returns 1.
- - Color space types now have a new, required, "equal" procedure.
-
-
-<h2><a name="6.30 Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - the "User parameters" section was incorrectly titled "Device
-parameters". (doc/Language.htm [1.11]: 2000/08/17 17:00:42 lpd)
-
-Initializes files for the 6.24 fileset. (doc/News.htm [1.57]: 2000/08/09
-16:54:01 lpd)
-
-Adds Alex Cherepanov to the roster of helpers. (doc/Helpers.htm [1.2]:
-2000/08/09 16:54:39 lpd)
-
-Documents the -dDEVICE{WIDTH,HEIGHT}POINTS= switches. (doc/Use.htm [1.10]:
-2000/08/17 01:31:52 lpd)
-
-Notes the change in the return value of gdev_vector_dopath.
-(doc/News.htm [1.58]: 2000/08/20 00:20:42 lpd)
-
-Changes text to make it clear that Yves Arrouye no longer maintains the BJC
-drivers that he wrote. (doc/Devices.htm [1.11]: 2000/08/21 14:38:27 lpd)
-
-Puts the logic for detecting garbage after %%EOF (and some similar invalid
-constructs) back into the main code, making it produce a message on stderr.
-(doc/Psfiles.htm [1.6]: 2000/08/23 02:22:39 lpd)
-
-Documents the deletion of lib/pdfeof.ps. (doc/News.htm [1.59]: 2000/08/23
-02:23:54 lpd)
-
-Starts to implement the PDF 1.4 transparency features. All API and operator
-additions are now implemented (at least as stubs) and documented, as is
-bookkeeping for the new scalar graphics state members (but not for the soft
-masks or the transparency group stack). (doc/Language.htm [1.12]: 2000/08/23
-21:46:31 lpd)
-
-Adds a project to avoid DCT-decoding followed by DCT-encoding images when
-writing PDF files. (doc/Projects.htm [1.16]: 2000/08/24 03:43:12 lpd)
-
-Adds a new equality-testing virtual procedure for color spaces.
-(doc/News.htm [1.60]: 2000/08/24 05:42:30 lpd)
-
-Brings the (still mostly stubbed) transparency code to a more
-self-consistent state. (doc/Language.htm [1.13]: 2000/08/30 01:34:40 lpd)
-
-Completes the parsing of .{begin,end}transparency{group,mask}, except for
-the TransferFunction for masks. The specification is still subject to
-change. (doc/Language.htm [1.14]: 2000/08/30 15:03:36 lpd)
-
-Divides the list of documents according to whether the document is for
-users, for developers, or both. (doc/Readme.htm [1.11]: 2000/08/30 21:24:00
-lpd)
-
-Adds more documentation for the transparency rendering stack.
-(doc/Language.htm [1.15]: 2000/08/31 03:34:41 lpd)
-
-Adds a requirement to only use ANSI standard C library facilities.
-(doc/C-style.htm [1.2]: 2000/09/08 04:53:14 lpd)
-
-Changes the -Zv switch to trace alpha/transparency-related features.
-(doc/News.htm [1.61], doc/Use.htm [1.11]: 2000/09/10 05:23:10 lpd)
-
-Implements another chunk of the PDF 1.4 transparency features, fixing some
-bugs in the previous code. (doc/Language.htm [1.16]: 2000/09/10 05:26:27
-lpd)
-
-Documents the addition of (limited) PDF 1.4 output capabilities.
-(doc/Ps2pdf.htm [1.16]: 2000/09/11 02:08:58 lpd)
-
-Moves the Matte entry of soft mask images from the main structure to the
-mask structures, and changes Matted to has_Matte. (doc/Language.htm [1.17]:
-2000/09/11 04:08:13 lpd)
-
-Documents division of bug-gs mailbox into bug-gs, bug-gs-dev, and
-bug-gs-beta. (doc/Bug-form.htm [1.7], doc/Bug-info.htm [1.5]: 2000/09/15
-23:44:21 lpd)
-
-Adds a paragraph explaining license details. (doc/PUBLIC [1.2],
-doc/Public.htm [1.2]: 2000/09/18 22:26:32 lpd)
-
-Updates the license notices to reflect the name change; also updates many
-internal references. (doc/Bug-form.htm [1.8], doc/Bug-info.htm [1.6],
-doc/C-style.htm [1.3], doc/Changes.htm [1.17], doc/Commprod.htm [1.2],
-doc/Copying.htm [1.2], doc/Current.htm [1.2], doc/DLL.htm [1.2],
-doc/Devices.htm [1.12], doc/Drivers.htm [1.7], doc/Fonts.htm [1.7],
-doc/Helpers.htm [1.3], doc/History1.htm [1.2], doc/History2.htm [1.2],
-doc/History3.htm [1.2], doc/History4.htm [1.2], doc/History5.htm [1.4],
-doc/History6.htm [1.12], doc/Htmstyle.htm [1.5], doc/Install.htm [1.6],
-doc/Language.htm [1.18], doc/Lib.htm [1.2], doc/Maintain.htm [1.3],
-doc/Make.htm [1.14], doc/New-user.htm [1.11], doc/News.htm [1.62],
-doc/PUBLIC [1.3], doc/Projects.htm [1.17], doc/Ps2epsi.htm [1.3],
-doc/Ps2pdf.htm [1.17], doc/Psfiles.htm [1.7], doc/Public.htm [1.3],
-doc/Readme.htm [1.12], doc/Release.htm [1.18], doc/Source.htm [1.2],
-doc/Tester.htm [1.2], doc/Unix-lpr.htm [1.2], doc/Use.htm [1.12],
-doc/Xfonts.htm [1.2], doc/gs-vms.hlp [1.2]: 2000/09/19 21:37:50 lpd)
-
-Updates README from Readme.htm. (doc/README [1.3]: 2000/09/19 23:39:31 lpd)
-
-Changes the default Windows installation directory from c:\Aladdin to c:\gs.
-(doc/Install.htm [1.7], doc/News.htm [1.63]: 2000/09/22 05:32:17 lpd)
-
-Replaces the OpenVMS installation instructions with an improved set
-contributed by a user. (doc/Helpers.htm [1.4], doc/Install.htm [1.8]:
-2000/09/22 20:33:19 lpd)
-
-Adds a project for fixing PDF files that have gotten mangled by EOL
-conversion. (doc/Projects.htm [1.18]: 2000/09/25 14:40:37 lpd)
-
-Adds a reference to PreScript, another free text extraction program based on
-Ghostscript. (doc/New-user.htm [1.12]: 2000/09/26 01:04:40 lpd)
-
-Documentation changes in preparation for 6.30 release. Replaced some contact
-information, updated version numbers. (doc/Bug-form.htm [1.9],
-doc/Bug-info.htm [1.7], doc/Commprod.htm [1.3], doc/Copying.htm [1.3],
-doc/Current.htm [1.3], doc/DLL.htm [1.3], doc/Devices.htm [1.13],
-doc/Drivers.htm [1.8], doc/Fonts.htm [1.8], doc/Helpers.htm [1.5],
-doc/History1.htm [1.3], doc/History2.htm [1.3], doc/History3.htm [1.3],
-doc/History4.htm [1.3], doc/History5.htm [1.5], doc/History6.htm [1.13],
-doc/Htmstyle.htm [1.6], doc/Install.htm [1.9], doc/Language.htm [1.19],
-doc/Lib.htm [1.3], doc/Maintain.htm [1.4], doc/Make.htm [1.15],
-doc/New-user.htm [1.13], doc/News.htm [1.64], doc/Projects.htm [1.19],
-doc/Ps2epsi.htm [1.4], doc/Ps2pdf.htm [1.18], doc/Psfiles.htm [1.8],
-doc/README [1.4], doc/Readme.htm [1.13], doc/Release.htm [1.19],
-doc/Source.htm [1.3], doc/Tester.htm [1.3], doc/Unix-lpr.htm [1.3],
-doc/Use.htm [1.13], doc/Xfonts.htm [1.3], doc/gs-vms.hlp [1.3]: 2000/10/04
-04:33:27 raph)
-
-Bring version numbers and dates up to date. Small bug fix in toolbin/pre to
-make it able to handle months with leading zeros. (doc/C-style.htm [1.4],
-doc/Helpers.htm [1.6], man/ps2ps.1 [1.7]: 2000/10/04 05:18:54 raph)
-
-</pre><h2><a name="6.30 Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - The PostScript image writing drivers (psmono/gray/rgb) didn't set
-the page size in the output, and didn't produce DSC-compliant output.
-(devs.mak [1.31]: 2000/08/09 06:55:45 lpd)
- - The FlateEncode and zlibEncode filters didn't implement the
-"Effort" parameter. (fix from Alex Cherepanov) (int.mak [1.28]: 2000/08/09
-16:55:24 lpd)
- - Because "-" as an OutputFile now references the %stdout IODevice,
-it no longer worked in configurations without a PostScript interpreter.
-Fixing this required factoring out the stdin/out/err IODevices and providing
-an implementation that didn't reference the PostScript interpreter.
-(int.mak [1.32], lib.mak [1.34], ugcclib.mak [1.3]: 2000/09/07 06:14:45 lpd)
- - Configurations including PDF but not PostScript didn't include all
-the PostScript LL3 features needed to interpret PDF 1.3 et seq.
-(int.mak [1.33]: 2000/09/07 06:35:06 lpd)
- - Cleans up some missing and incorrect dependencies.
-(devs.mak [1.33], int.mak [1.34], lib.mak [1.35]: 2000/09/11 04:43:09 lpd)
- - The definition of PSRCDIR was inconsistent with the definition of
-PVERSION. (openvms.mak [1.5]: 2000/09/22 04:05:40 lpd)
- - The pgnm and pnm drivers didn't properly detect the presence of
-gray shades or color in images, sometimes causing gray or color information
-to be lost in the output. (fix contributed by a user) (devs.mak [1.35]:
-2000/09/23 04:52:56 lpd)
-
-Initializes files for the 6.24 fileset. (version.mak [1.19]: 2000/08/09
-16:54:02 lpd)
-
-Adds a mention of the Color LaserJet 4500 as a color PCL XL printer.
-(devs.mak [1.32]: 2000/08/17 20:43:50 lpd)
-
-Changes text to make it clear that Yves Arrouye no longer maintains the BJC
-drivers that he wrote. (contrib.mak [1.19]: 2000/08/21 14:38:28 lpd)
-
-Puts the logic for detecting garbage after %%EOF (and some similar invalid
-constructs) back into the main code, making it produce a message on stderr.
-(unixinst.mak [1.12]: 2000/08/23 02:22:39 lpd)
-
-Starts to implement the PDF 1.4 transparency features. All API and operator
-additions are now implemented (at least as stubs) and documented, as is
-bookkeeping for the new scalar graphics state members (but not for the soft
-masks or the transparency group stack). (int.mak [1.29], lib.mak [1.30]:
-2000/08/23 21:46:31 lpd)
-
-Adds a new equality-testing virtual procedure for color spaces.
-(lib.mak [1.31]: 2000/08/24 05:42:30 lpd)
-
-Partly implements opacity and shape mask bookkeeping. gsave/grestore/etc.
-and banding don't do the right thing yet. (int.mak [1.30],
-version.mak [1.20]: 2000/08/25 01:46:48 lpd)
-
-Brings the (still mostly stubbed) transparency code to a more
-self-consistent state. (lib.mak [1.32]: 2000/08/30 01:34:40 lpd)
-
-Finishes the code for parsing ImageType 103 (soft-mask) images.
-(int.mak [1.31], lib.mak [1.33]: 2000/08/30 04:30:05 lpd)
-
-*** empty log message *** (int.mak [1.35]: 2000/09/14 19:46:05 alexcher)
-
-Undoes uncommented and in some cases inappropriate changes. (int.mak [1.36]:
-2000/09/18 06:28:58 lpd)
-
-Updates license notices
-rather than simply saying "All rights reserved". (toolbin/3way.tcl [1.2],
-toolbin/cvs2hist.py [1.2], toolbin/errlist.tcl [1.2],
-toolbin/gsindent [1.2], toolbin/gsmake.tcl [1.4], toolbin/headers.tcl [1.2],
-toolbin/leaks.tcl [1.2], toolbin/makegnu.tcl [1.2],
-toolbin/makeset.tcl [1.4], toolbin/pre [1.6], toolbin/precheck.tcl [1.2],
-toolbin/suite.tcl [1.2], toolbin/tmake.tcl [1.2]: 2000/09/19 17:30:25 lpd)
-
-Updates the license notices to reflect the name change, and changes
-internal references in various scripts. (toolbin/3way.tcl [1.3],
-toolbin/cvs2hist.py [1.3], toolbin/errlist.tcl [1.3], toolbin/gsindent
-[1.3], toolbin/gsmake.tcl [1.5], toolbin/headers.tcl [1.3],
-toolbin/leaks.tcl [1.3], toolbin/makegnu.tcl [1.3], toolbin/makeset.tcl
-[1.5], toolbin/pre [1.7], toolbin/precheck.tcl [1.3], toolbin/suite.tcl
-[1.3], toolbin/tmake.tcl [1.3]: 2000/09/19 18:10:51 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (all-arch.mak [1.5], bcwin32.mak
-[1.3], cfonts.mak [1.2], contrib.mak [1.20], devs.mak [1.34], dvx-gcc.mak
-[1.4], dvx-head.mak [1.2], dvx-tail.mak [1.3], dwmain.rc [1.2], dwsetup.def
-[1.2], dwsetup.rc [1.2], dwuninst.def [1.2], dwuninst.rc [1.3]: 2000/09/19
-19:00:08 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gs.mak [1.2], gs16spl.rc [1.2],
-gsdll2.rc [1.2], gsdll32.rc [1.2]: 2000/09/19 19:00:25 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gsos2.rc [1.2], gspmdrv.rc [1.2]:
-2000/09/19 19:00:30 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gswin.rc [1.2]: 2000/09/19
-19:00:33 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (int.mak [1.37], jpeg.mak [1.3],
-lib.mak [1.36], libpng.mak [1.2], msvc32.mak [1.5], msvccmd.mak [1.5],
-msvclib.mak [1.5], msvctail.mak [1.4], openvms.mak [1.4], openvms.mmk
-[1.5], os2.mak [1.7], pcwin.mak [1.2]: 2000/09/19 19:00:45 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (ugcclib.mak [1.4], unix-aux.mak
-[1.3], unix-end.mak [1.2], unix-gcc.mak [1.7], unixansi.mak [1.5],
-unixhead.mak [1.2], unixinst.mak [1.13], unixlink.mak [1.2], unixtrad.mak
-[1.5], version.mak [1.21], watc.mak [1.5], watclib.mak [1.5], watcw32.mak
-[1.4], wccommon.mak [1.3], wctail.mak [1.2], winint.mak [1.5], winlib.mak
-[1.4], winplat.mak [1.2], wmin.mak [1.2], zlib.mak [1.2]: 2000/09/19
-19:00:52 lpd)
-
-Add commands to make the target GLGENDIR and BINDIR directories so that a
-clean build works automatically. (msvctail.mak [1.5]: 2000/09/21 15:14:37
-rayjj)
-
-Changes the default Windows installation directory from c:\Aladdin to c:\gs.
-(dwsetup.rc [1.3]: 2000/09/22 05:32:17 lpd)
-
-Changes the default Windows Start Menu Folder from "Aladdin" to
-"Ghostscript". (dwsetup.rc [1.4]: 2000/09/22 05:35:02 lpd)
-
-Updates the makefiles from libpng version 1.0.5 to 1.0.8.
-(all-arch.mak [1.6], bcwin32.mak [1.4], dvx-gcc.mak [1.5], libpng.mak [1.3],
-msvc32.mak [1.6], msvclib.mak [1.6], openvms.mak [1.6], openvms.mmk [1.6],
-os2.mak [1.8], ugcclib.mak [1.5], unix-gcc.mak [1.8], unixansi.mak [1.6],
-unixtrad.mak [1.6], watc.mak [1.6], watclib.mak [1.6], watcw32.mak [1.5]:
-2000/09/25 15:06:28 lpd)
-
-Documentation changes in preparation for 6.30 release. Replaced some contact
-information, updated version numbers. (version.mak [1.22]: 2000/10/04
-04:33:29 raph)
-
-Bring version numbers and dates up to date. Small bug fix in toolbin/pre to
-make it able to handle months with leading zeros. (toolbin/pre [1.8]:
-2000/10/04 05:18:54 raph)
-
-</pre><h2><a name="6.30 Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - ps2pdf13.cmd set the output PDF version to 1.2 rather than 1.3.
-(lib/ps2pdf13.cmd [1.2]: 2000/09/10 19:32:44 lpd)
- - The OpenVMS Fontmap had gotten badly out of date; specifically, it
-didn't reference the URW++ fonts distributed with Ghostscript.
-(lib/Fontmap.VMS [1.2]: 2000/09/22 03:30:21 lpd)
-
-Puts the logic for detecting garbage after %%EOF (and some similar invalid
-constructs) back into the main code, making it produce a message on stderr.
-(lib/pdfeof.ps [1.2]: 2000/08/23 02:22:39 lpd)
-
-Adds script / batch / command files for producing PDF 1.4 output.
-(lib/ps2pdf14 [1.1], lib/ps2pdf14.bat [1.1], lib/ps2pdf14.cmd [1.1]:
-2000/09/10 19:33:47 lpd)
-
-Updates the license notices to reflect the name change, and changes a few
-other internal references. (lib/Fontmap.ATB [1.2], lib/Fontmap.ATM [1.2],
-lib/Fontmap.GS [1.2], lib/Fontmap.OS2 [1.2], lib/Fontmap.SGI [1.2],
-lib/Fontmap.Sol [1.2], lib/Fontmap.Ult [1.2], lib/addxchar.ps [1.2],
-lib/afmdiff.awk [1.2], lib/align.ps [1.2], lib/bdftops.ps [1.2],
-lib/caption.ps [1.2], lib/cbjc600.ppd [1.2], lib/cbjc800.ppd [1.2],
-lib/cid2code.ps [1.2], lib/docie.ps [1.2], lib/errpage.ps [1.2],
-lib/font2c.ps [1.2], lib/font2pcl.ps [1.2], lib/gslp.ps [1.2], lib/gsnup.ps
-[1.2], lib/image-qa.ps [1.2], lib/impath.ps [1.2], lib/jispaper.ps [1.2],
-lib/lines.ps [1.2], lib/markhint.ps [1.2], lib/markpath.ps [1.2],
-lib/packfile.ps [1.2], lib/pcharstr.ps [1.2], lib/pdf2dsc.ps [1.2],
-lib/pdfopt.ps [1.3], lib/pdfwrite.ps [1.3], lib/pfbtopfa.ps [1.2],
-lib/ppath.ps [1.2], lib/ps2ai.ps [1.2], lib/ps2ascii.ps [1.2], lib/ps2epsi
-[1.4], lib/ps2epsi.ps [1.4], lib/showchar.ps [1.2], lib/stcinfo.ps [1.2],
-lib/stcolor.ps [1.2], lib/stocht.ps [1.3], lib/traceimg.ps [1.2],
-lib/traceop.ps [1.2], lib/type1enc.ps [1.2], lib/type1ops.ps [1.2],
-lib/uninfo.ps [1.2], lib/unprot.ps [1.2], lib/viewcmyk.ps [1.2],
-lib/viewgif.ps [1.2], lib/viewmiff.ps [1.2], lib/viewpbm.ps [1.2],
-lib/viewpcx.ps [1.2], lib/viewps2a.ps [1.2], lib/wftopfa.ps [1.2],
-lib/winmaps.ps [1.2], lib/wrfont.ps [1.2], lib/zeroline.ps [1.2]:
-2000/09/19 18:29:11 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (bench.c [1.3], echogs.c [1.2]:
-2000/09/19 19:00:08 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (genarch.c [1.2], genconf.c [1.3],
-gendev.c [1.2], genht.c [1.2], geninit.c [1.3], gp_dvx.c [1.2], gp_iwatc.c
-[1.4], gp_mktmp.c [1.2], gp_mshdl.c [1.2], gp_msio.c [1.2], gp_mslib.c
-[1.2], gp_mswin.c [1.3], gp_ntfs.c [1.4], gp_os2.c [1.4], gp_os9.c [1.3],
-gp_sysv.c [1.2], gp_unix.c [1.3], gp_vms.c [1.4], gp_wgetv.c [1.3],
-gp_win32.c [1.2], gp_wsync.c [1.2], gs16spl.c [1.2]: 2000/09/19 19:00:23
-lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gsdll.c [1.3], gserver.c [1.2]:
-2000/09/19 19:00:27 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gspmdrv.c [1.2]: 2000/09/19
-19:00:31 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (scfdgen.c [1.2]: 2000/09/19
-19:00:48 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (zdosio.c [1.2]: 2000/09/19
-19:00:53 lpd)
-
-When GSC environment variable is not set, gssetgs.bat fails to set it, which
-makes ps2pdf.bat and several other scripts fail on Windows NT 4.0 with the
-following misleading error message: "_.at" This file doesn't have a program
-associated with it ... This change fixes the problem.
-(lib/gssetgs.bat [1.2]: 2000/10/01 15:25:37 alexcher)
-
-</pre><h2><a name="6.30 Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - The PostScript image writing drivers (psmono/gray/rgb) didn't set
-the page size in the output, and didn't produce DSC-compliant output.
-(gdevps.c [1.11], gdevpsci.c [1.2], gdevpsim.c [1.3], gdevpsu.c [1.1],
-gdevpsu.h [1.1]: 2000/08/09 06:55:45 lpd)
- - the user-contributed cfax driver didn't correctly handle page
-widths other than the standard fax widths, and didn't write the required
-end-of-document marker. (gdevcfax.c [1.2]: 2000/08/17 04:43:25 lpd)
- - Setting parameters for the PS/PDF writer reset any unspecified
-*Dict parameter dictionaries to the empty dictionary, rather than leaving
-them alone. (gdevpsdp.c [1.6]: 2000/08/18 03:18:59 lpd)
- - BJC printers with different X and Y resolution produced incorrect
-output. Also removes the comment asking users to report problems to Yves
-Arrouye, since he no longer maintains this code. (gdevcdj.c [1.3]:
-2000/08/21 14:43:17 lpd)
- - The emulation of XPutImage (Ghostscript*useXPutImage: 0) was
-broken. (gdevx.c [1.6]: 2000/08/21 17:23:26 lpd)
- - Dictionary-valued device parameters for high-level devices could
-be freed while the device still referred to them. (gdevpsdp.c [1.7]:
-2000/08/31 15:55:46 lpd)
- - Cleans up some missing and incorrect dependencies.
-(gdevsco.c [1.2]: 2000/09/11 04:43:09 lpd)
- - Works around a gcc code generation bug that sometimes caused gray
-colors to be written out as RGB in PDF files. (Minor performance issue
-only.) (gdevpsdu.c [1.6]: 2000/09/11 21:12:12 lpd)
- - The pgnm and pnm drivers didn't properly detect the presence of
-gray shades or color in images, sometimes causing gray or color information
-to be lost in the output. (fix contributed by a user) (gdevpbm.c [1.3]:
-2000/09/23 04:52:57 lpd)
-
-In the X Windows driver, changes XFlush() to XSync(False) so that updates
-will actually complete before the command prompt appears. (gdevx.c [1.5],
-gdevxini.c [1.8]: 2000/08/19 03:31:44 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdev3852.c [1.2], gdev3b1.c
-[1.2], gdev4081.c [1.2], gdev8510.c [1.2], gdev8bcm.c [1.2], gdev8bcm.h
-[1.2], gdevadmp.c [1.2], gdevatx.c [1.6], gdevbit.c [1.2], gdevbj10.c
-[1.3], gdevbjc.h [1.2], gdevbjcl.c [1.2], gdevbjcl.h [1.2], gdevbmp.c
-[1.3], gdevbmp.h [1.2], gdevbmpa.c [1.3], gdevbmpc.c [1.2], gdevccr.c
-[1.2], gdevcdj.c [1.4], gdevcfax.c [1.3], gdevcgm.c [1.2], gdevcgml.c
-[1.2], gdevcgml.h [1.2], gdevcgmx.h [1.2], gdevcif.c [1.2], gdevclj.c
-[1.2], gdevcljc.c [1.2], gdevcp50.c [1.2], gdevcslw.c [1.2], gdevdcrd.c
-[1.2], gdevdcrd.h [1.2], gdevdfax.c [1.3], gdevdjet.c [1.6], gdevdjtc.c
-[1.2], gdevdljm.c [1.4], gdevdljm.h [1.4], gdevdm24.c [1.2], gdevegaa.asm
-[1.2], gdevepsc.c [1.2], gdevepsn.c [1.2], gdevescp.c [1.2], gdevevga.c
-[1.2], gdevfax.c [1.2], gdevfax.h [1.2], gdevherc.c [1.2], gdevhl7x.c
-[1.3], gdevimgn.c [1.2], gdevjpeg.c [1.2], gdevl256.c [1.3], gdevl31s.c
-[1.2], gdevlbp8.c [1.2], gdevlj56.c [1.2], gdevlp8k.c [1.2], gdevlxm.c
-[1.2], gdevmeds.c [1.2]: 2000/09/19 19:00:11 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevmeds.h [1.2], gdevmgr.c
-[1.2], gdevmgr.h [1.2], gdevmiff.c [1.2], gdevmswn.c [1.2], gdevmswn.h
-[1.2], gdevmsxf.c [1.2], gdevn533.c [1.2], gdevo182.c [1.2], gdevokii.c
-[1.2], gdevos2p.c [1.3], gdevp2up.c [1.2], gdevpbm.c [1.2], gdevpccm.c
-[1.2], gdevpccm.h [1.3], gdevpcfb.c [1.2], gdevpcfb.h [1.2], gdevpcl.c
-[1.4]: 2000/09/19 19:00:14 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevpcl.h [1.4], gdevpcx.c [1.2],
-gdevpe.c [1.2]: 2000/09/19 19:00:17 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevphex.c [1.2], gdevpjet.c
-[1.2], gdevpm.c [1.2], gdevpm.h [1.2], gdevpng.c [1.3], gdevps.c [1.12],
-gdevpsdf.h [1.8], gdevpsdi.c [1.12], gdevpsdp.c [1.8], gdevpsds.c [1.4],
-gdevpsds.h [1.4], gdevpsdu.c [1.7], gdevpsim.c [1.4], gdevpsu.c [1.2],
-gdevpsu.h [1.2], gdevpx.c [1.4], gdevpxat.h [1.3], gdevpxen.h [1.3],
-gdevpxop.h [1.2], gdevpxut.c [1.2], gdevpxut.h [1.2], gdevs3ga.c [1.2],
-gdevsco.c [1.3], gdevsj48.c [1.2], gdevsnfb.c [1.2], gdevsppr.c [1.2],
-gdevstc.c [1.2], gdevstc.h [1.2], gdevstc1.c [1.2], gdevstc2.c [1.2],
-gdevstc3.c [1.2], gdevstc4.c [1.2], gdevsun.c [1.2]: 2000/09/19 19:00:20
-lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevsunr.c [1.2], gdevsvga.c
-[1.2], gdevsvga.h [1.2], gdevtfax.c [1.4], gdevtfax.h [1.4], gdevtfnx.c
-[1.3], gdevtifs.c [1.3], gdevtifs.h [1.3], gdevtknk.c [1.2], gdevupd.c
-[1.3], gdevvglb.c [1.3], gdevwddb.c [1.2], gdevwdib.c [1.2], gdevwpr2.c
-[1.5], gdevwprn.c [1.2], gdevx.c [1.7], gdevx.h [1.4], gdevxalt.c [1.2],
-gdevxcmp.c [1.2], gdevxcmp.h [1.2], gdevxini.c [1.9], gdevxres.c [1.3],
-gdevxxf.c [1.5]: 2000/09/19 19:00:23 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (png_.h [1.2]: 2000/09/19 19:00:47
-lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (x_.h [1.2]: 2000/09/19 19:00:52
-lpd)
-
-</pre><h2><a name="6.30 PDF writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - The SrcPg entry in ANN pdfmarks was (effectively) ignored. (bug
-introduced between 5.50 and 6.01.) (gdevpdfm.c [1.5]: 2000/08/31 18:49:59
-lpd)
- - When CompatibilityLevel < 1.4, transparency was ignored rather
-than being rendered explicitly. (gdevpdfg.c [1.9]: 2000/09/11 21:13:49 lpd)
-
-Works around the bug in Acrobat Reader (all versions) that apparently treats
-stroked fonts as filled fonts, ignoring the PaintType. (gdevpdft.c [1.15]:
-2000/08/31 03:23:26 lpd)
-
-Adds the ability to write some PDF 1.4 constructs: graphics state parameters
-AIS, BM, ca/CA, and TK, and images with soft masks (except for Matte).
-(gdevpdfg.c [1.8], gdevpdfg.h [1.8], gdevpdfi.c [1.18]: 2000/09/11 02:14:09
-lpd)
-
-Adds the ability to write PDF 1.4 soft-masked images. (gdevpdfi.c [1.19],
-gdevpdfo.c [1.4], gdevpdfo.h [1.4], gdevpdfv.c [1.2]: 2000/09/11 04:10:42
-lpd)
-
-Replaces "Distiller" with our program name in the Info Producer string.
-(gdevpdf.c [1.20], gdevpdfm.c [1.6], gdevpdfu.c [1.11], gdevpdfx.h [1.21]:
-2000/09/12 02:03:35 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevpdf.c [1.21], gdevpdfb.c
-[1.2], gdevpdfc.c [1.12], gdevpdfd.c [1.10], gdevpdfe.c [1.4], gdevpdff.c
-[1.8], gdevpdff.h [1.4], gdevpdfg.c [1.10], gdevpdfg.h [1.9], gdevpdfi.c
-[1.20], gdevpdfj.c [1.5], gdevpdfm.c [1.7], gdevpdfo.c [1.5], gdevpdfo.h
-[1.5], gdevpdfp.c [1.10], gdevpdfr.c [1.4], gdevpdft.c [1.16], gdevpdfu.c
-[1.12], gdevpdfv.c [1.3], gdevpdfw.c [1.5], gdevpdfx.h [1.22]: 2000/09/19
-19:00:17 lpd)
-
-</pre><h2><a name="6.30 Interpreter (PDF)"></a>Interpreter (PDF)</h2><pre>
-
-Fixes problems:
- - PDF files with embedded CID fonts with FontName != BaseFont
-(prohibited by the PDF specification, but produced by some Adobe software)
-caused an error. (lib/pdf_font.ps [1.11], lib/pdf_ops.ps [1.8]: 2000/08/08
-22:29:12 lpd)
- - Setting the color (fill or stroke) sometimes overwrote the color
-associated with an outer gsave level. (lib/pdf_ops.ps [1.9]: 2000/08/24
-01:55:37 lpd)
- - The PDF text rendering modes that included clipping (modes 4-7)
-didn't work. The fix is a bit of a hack, but it's much closer to being
-right. (lib/pdf_ops.ps [1.12]: 2000/08/31 02:05:55 lpd)
- - The new code for detecting whether a page used any transparency
-features could cause an error. (lib/pdf_main.ps [1.14]: 2000/09/10 18:48:26
-lpd)
- - Filters with indirect object parameters caused an error. (Fix from
-Artifex.) (lib/pdf_base.ps [1.9]: 2000/09/14 00:38:05 lpd)
- - The page dictionary was left on the operand stack while the page
-was being rendered, causing the sc[n]/SC[N] operators to give an error if
-the color consisted of only a single value. (bug introduced after 6.23)
-(lib/pdf_main.ps [1.18]: 2000/09/18 06:38:38 lpd)
-
-Puts the logic for detecting garbage after %%EOF (and some similar invalid
-constructs) back into the main code, making it produce a message on stderr.
-(lib/pdf_main.ps [1.11]: 2000/08/23 02:22:39 lpd)
-
-Implements the op, OP, and OPM (overprint control) elements of ExtGStates.
-(lib/pdf_draw.ps [1.17], lib/pdf_ops.ps [1.10]: 2000/08/24 02:26:52 lpd)
-
-Implements the new PDF 1.4 scalar graphics state parameters (ca, CA, SMask,
-AIS, BM, TK). The implementation of SMask is a stub.
-(lib/pdf_draw.ps [1.18], lib/pdf_ops.ps [1.11]: 2000/08/24 03:04:29 lpd)
-
-If a PDF file is invalid but repairable, prints out the Producer as part of
-the warning message. (lib/pdf_main.ps [1.12]: 2000/08/24 04:18:40 lpd)
-
-Adds most of the code needed to support PDF 1.4 transparency groups and soft
-masks in the graphics state. (lib/pdf_draw.ps [1.19], lib/pdf_ops.ps [1.13]:
-2000/09/08 04:54:10 lpd)
-
-Implements another chunk of the PDF 1.4 transparency features, fixing some
-bugs in the previous code. (lib/pdf_draw.ps [1.20], lib/pdf_main.ps [1.13],
-lib/pdf_ops.ps [1.14]: 2000/09/10 05:26:27 lpd)
-
-Moves the Matte entry of soft mask images from the main structure to the
-mask structures, and changes Matted to has_Matte. (lib/pdf_draw.ps [1.21]:
-2000/09/11 04:08:13 lpd)
-
-Renders pages that use any transparency features as transparency groups.
-(lib/pdf_main.ps [1.15]: 2000/09/12 20:36:23 lpd)
-
-*** empty log message *** (lib/pdf_main.ps [1.16]: 2000/09/15 03:51:54
-alexcher)
-
-Undoes uncommented and in some cases inappropriate changes.
-(lib/pdf_main.ps [1.17]: 2000/09/18 06:28:58 lpd)
-
-Updates the license notices to reflect the name change, and changes a few
-other internal references. (lib/pdf_base.ps [1.10], lib/pdf_draw.ps [1.22],
-lib/pdf_font.ps [1.12], lib/pdf_main.ps [1.19], lib/pdf_ops.ps [1.15],
-lib/pdf_sec.ps [1.2]: 2000/09/19 18:29:11 lpd)
-
-</pre><h2><a name="6.30 Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - The FlateEncode and zlibEncode filters didn't implement the
-"Effort" parameter. (fix from Alex Cherepanov) (zfzlib.c [1.2]: 2000/08/09
-16:55:25 lpd)
- - The *ACSImageDict parameter dictionaries weren't being set for the
-/default configuration; the *ACSImageDict parameters were never recognized,
-because their names were spelled incorrectly as *ACSDict. (Two separate
-bugs.) (lib/gs_pdfwr.ps [1.5]: 2000/08/18 03:20:12 lpd)
- - When given an array of the wrong size, a number of operators
-produced a limitcheck error rather than a rangecheck. (idparam.c [1.2],
-idparam.h [1.2], zcie.c [1.3], zfont1.c [1.7], zfunc.c [1.5],
-zfunc0.c [1.2], zimage2.c [1.2], zimage3.c [1.2], zpcolor.c [1.2],
-zshade.c [1.3]: 2000/08/23 01:45:08 lpd)
- - The stub implementations of .{set,current}{opacity,shape}mask
-didn't {pop the argument}{push null}. (ztrans.c [1.2]: 2000/08/24 03:03:18
-lpd)
- - The BeOS C compiler objected to some int/bool mismatches.
-(icontext.c [1.5]: 2000/08/31 03:51:29 lpd)
- - If changing LanguageLevels caused a dictionary to grow, memory
-could be corrupted. (zmisc2.c [1.2]: 2000/08/31 14:43:58 lpd)
- - Because "-" as an OutputFile now references the %stdout IODevice,
-it no longer worked in configurations without a PostScript interpreter.
-Fixing this required factoring out the stdin/out/err IODevices and providing
-an implementation that didn't reference the PostScript interpreter.
-(ziodev.c [1.2], ziodevs.c [1.1]: 2000/09/07 06:14:45 lpd)
- - .LocalDefaults was stored in a local array in the (global)
-ColorSpace category dictionary, causing memory anomalies with multiple
-contexts. (lib/gs_ll3.ps [1.6], lib/gs_res.ps [1.13]: 2000/09/20 07:15:11
-lpd)
- - A missing cast caused the picky OpenVMS compiler to complain.
-(zdevcal.c [1.3]: 2000/09/22 04:18:17 lpd)
- - Attempting to show an undefined character code in a TrueType font
-with no .notdef entry caused an error. (lib/gs_ttf.ps [1.8]: 2000/09/23
-18:47:06 lpd)
-
-Initializes files for the 6.24 fileset. (lib/gs_init.ps [1.21]: 2000/08/09
-16:54:02 lpd)
-
-Adds the PDF "overprint mode" to the graphics state. THE ACTUAL
-FUNCTIONALITY IS NOT IMPLEMENTED YET. (zcssepr.c [1.4]: 2000/08/23 17:54:16
-lpd)
-
-Starts to implement the PDF 1.4 transparency features. All API and operator
-additions are now implemented (at least as stubs) and documented, as is
-bookkeeping for the new scalar graphics state members (but not for the soft
-masks or the transparency group stack). (ztrans.c [1.1]: 2000/08/23 21:46:31
-lpd)
-
-Partly implements opacity and shape mask bookkeeping. gsave/grestore/etc.
-and banding don't do the right thing yet. (igstate.h [1.2], ztrans.c [1.3]:
-2000/08/25 01:46:48 lpd)
-
-Implements some minor improvements to the freelist algorithms that can
-produce nearly a factor of 2 speedup in some allocation-intensive
-situations. (isave.c [1.2]: 2000/08/26 03:21:34 lpd)
-
-Brings the (still mostly stubbed) transparency code to a more
-self-consistent state. (ztrans.c [1.4]: 2000/08/30 01:34:40 lpd)
-
-Finishes the code for parsing ImageType 103 (soft-mask) images.
-(ztrans.c [1.5]: 2000/08/30 04:30:06 lpd)
-
-Completes the parsing of .{begin,end}transparency{group,mask}, except for
-the TransferFunction for masks. The specification is still subject to
-change. (ztrans.c [1.6]: 2000/08/30 15:03:36 lpd)
-
-*Really* finishes the transparency rendering stack operators (the previous
-version didn't even compile), except for TransferFunction. (ztrans.c [1.7]:
-2000/08/30 21:11:55 lpd)
-
-Implements another chunk of the PDF 1.4 transparency features, fixing some
-bugs in the previous code. (lib/gs_ll3.ps [1.4], ztrans.c [1.8]: 2000/09/10
-05:26:27 lpd)
-
-Checks that the TransferFunction of a soft mask is 1-in, 1-out; sets Matted
-correctly in the soft mask parameters passed to the graphics library.
-(ztrans.c [1.9]: 2000/09/11 02:10:28 lpd)
-
-Moves the Matte entry of soft mask images from the main structure to the
-mask structures, and changes Matted to has_Matte. (ztrans.c [1.10]:
-2000/09/11 04:08:13 lpd)
-
-Upgrades the proposed driver interface transparency extension from comments
-to macros, changing the name 'discard_transparency_level' to
-'discard_transparency_layer'. (ztrans.c [1.11]: 2000/09/11 20:13:31 lpd)
-
-*** empty log message *** (lib/gs_init.ps [1.22], zmatrix.c [1.2]:
-2000/09/14 19:46:05 alexcher)
-
-Undoes uncommented and in some cases inappropriate changes.
-(lib/gs_init.ps [1.23], zmatrix.c [1.3]: 2000/09/18 06:28:58 lpd)
-
-Updates the license notice to reflect the name change, and changes a few
-other internal references. (lib/gs_agl.ps [1.2], lib/gs_btokn.ps [1.3],
-lib/gs_ccfnt.ps [1.4], lib/gs_ce_e.ps [1.2], lib/gs_cff.ps [1.7],
-lib/gs_cidfn.ps [1.17], lib/gs_cmap.ps [1.6], lib/gs_cmdl.ps [1.2],
-lib/gs_css_e.ps [1.2], lib/gs_dbt_e.ps [1.2], lib/gs_diskf.ps [1.2],
-lib/gs_dpnxt.ps [1.2], lib/gs_dps.ps [1.4], lib/gs_dps1.ps [1.2],
-lib/gs_dps2.ps [1.2], lib/gs_epsf.ps [1.2], lib/gs_fform.ps [1.2],
-lib/gs_fonts.ps [1.9], lib/gs_frsd.ps [1.4], lib/gs_il1_e.ps [1.2],
-lib/gs_il2_e.ps [1.2], lib/gs_init.ps [1.24], lib/gs_kanji.ps [1.2],
-lib/gs_ksb_e.ps [1.2], lib/gs_l2img.ps [1.2], lib/gs_lev2.ps [1.6],
-lib/gs_lgo_e.ps [1.3], lib/gs_lgx_e.ps [1.2], lib/gs_ll3.ps [1.5],
-lib/gs_mex_e.ps [1.2], lib/gs_mgl_e.ps [1.3], lib/gs_mro_e.ps [1.2],
-lib/gs_pdf_e.ps [1.2], lib/gs_pdfwr.ps [1.6], lib/gs_pfile.ps [1.2],
-lib/gs_rdlin.ps [1.2], lib/gs_res.ps [1.12], lib/gs_setpd.ps [1.5],
-lib/gs_statd.ps [1.4], lib/gs_std_e.ps [1.2], lib/gs_sym_e.ps [1.2],
-lib/gs_trap.ps [1.3], lib/gs_ttf.ps [1.7], lib/gs_typ32.ps [1.2],
-lib/gs_typ42.ps [1.2], lib/gs_type1.ps [1.4], lib/gs_wan_e.ps [1.2],
-lib/gs_wl1_e.ps [1.2], lib/gs_wl2_e.ps [1.2], lib/gs_wl5_e.ps [1.2]:
-2000/09/19 18:29:11 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (bfont.h [1.3], btoken.h [1.4],
-ccfont.h [1.2], dpmainc.c [1.2], dstack.h [1.2], dwdll.cpp [1.2], dwdll.h
-[1.2], dwimg.cpp [1.2], dwimg.h [1.2], dwinst.cpp [1.2], dwinst.h [1.2],
-dwmain.cpp [1.2], dwmain.h [1.2], dwmainc.cpp [1.3], dwnodll.cpp [1.2],
-dwsetup.cpp [1.3], dwsetup.h [1.2], dwtext.cpp [1.2], dwtext.h [1.2],
-dwuninst.cpp [1.2], dwuninst.h [1.2], errors.h [1.2], estack.h [1.2],
-files.h [1.2]: 2000/09/19 19:00:09 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (ghost.h [1.2], gs.c [1.2]:
-2000/09/19 19:00:23 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (ialloc.c [1.2], ialloc.h [1.2],
-iastate.h [1.2], iastruct.h [1.2], ibnum.c [1.2], ibnum.h [1.2], iccfont.c
-[1.2], iccinit0.c [1.2], icfontab.c [1.2], ichar.h [1.3], ichar1.h [1.3],
-icharout.h [1.2], icid.h [1.2], icie.h [1.2], icolor.h [1.2], iconf.c
-[1.2], icontext.c [1.6], icontext.h [1.2], icremap.h [1.2], icsmap.h [1.2],
-icstate.h [1.4], iddict.h [1.2], iddstack.h [1.2], idebug.c [1.2], idebug.h
-[1.2], idict.c [1.2], idict.h [1.2], idictdef.h [1.2], idosave.h [1.2],
-idparam.c [1.3], idparam.h [1.3], idsdata.h [1.2], idstack.c [1.2],
-idstack.h [1.2], iesdata.h [1.2], iestack.h [1.2], ifcid.h [1.2], ifilter.h
-[1.3], ifilter2.h [1.2], ifont.h [1.4], ifont1.h [1.3], ifont2.h [1.2],
-ifont42.h [1.3], ifrpred.h [1.2], ifunc.h [1.3], ifwpred.h [1.2], igc.c
-[1.2]: 2000/09/19 19:00:41 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (igc.h [1.2], igcref.c [1.2],
-igcstr.c [1.3], igcstr.h [1.2], igstate.h [1.3], iht.h [1.2], iimage.h
-[1.2], iimage2.h [1.2], iinit.c [1.2], iinit.h [1.2], ilevel.h [1.2],
-ilocate.c [1.3], imain.c [1.2], imain.h [1.2], imainarg.c [1.4], imainarg.h
-[1.2], imemory.h [1.2], iminst.h [1.2], iname.c [1.3], iname.h [1.2],
-inamedef.h [1.2], inameidx.h [1.2], inames.h [1.2], inamestr.h [1.2],
-inobtokn.c [1.2], inouparm.c [1.2], interp.c [1.6], interp.h [1.2],
-iosdata.h [1.2], iostack.h [1.2], ipacked.h [1.2], iparam.c [1.5], iparam.h
-[1.2], iparray.h [1.2], ipcolor.h [1.2], ireclaim.c [1.2], iref.h [1.3],
-isave.c [1.3], isave.h [1.2], iscan.c [1.5], iscan.h [1.4], iscanbin.c
-[1.5], iscanbin.h [1.2], iscannum.c [1.2], iscannum.h [1.2], isdata.h
-[1.2], isstate.h [1.2], istack.c [1.2], istack.h [1.2], istkparm.h [1.2],
-istream.h [1.2], istruct.h [1.2], itoken.h [1.2], iutil.c [1.2], iutil.h
-[1.2], iutil2.c [1.2], iutil2.h [1.2], ivmem2.h [1.2]: 2000/09/19 19:00:44
-lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (ivmspace.h [1.2], main.h [1.2],
-oparc.h [1.2], opcheck.h [1.2], opdef.h [1.2], oper.h [1.2], opextern.h
-[1.2], ostack.h [1.2], sbhc.c [1.2], sbhc.h [1.2], sbwbs.c [1.2], sbwbs.h
-[1.2], sfilter1.c [1.5]: 2000/09/19 19:00:47 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (shcgen.c [1.2], shcgen.h [1.2],
-smtf.c [1.2], smtf.h [1.2], store.h [1.2], zarith.c [1.4], zarray.c [1.2],
-zbfont.c [1.6], zbseq.c [1.4], zcfont.c [1.2], zchar.c [1.3], zchar1.c
-[1.5], zchar2.c [1.2], zchar32.c [1.2], zchar42.c [1.2], zcharout.c [1.2],
-zcharx.c [1.3], zcid.c [1.3], zcie.c [1.4], zcolor.c [1.4]: 2000/09/19
-19:00:50 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (zcolor1.c [1.3], zcolor2.c [1.3],
-zcontext.c [1.6], zcontrol.c [1.3], zcrd.c [1.2], zcsdevn.c [1.3],
-zcsindex.c [1.3], zcspixel.c [1.2], zcssepr.c [1.5], zdevcal.c [1.2],
-zdevice.c [1.3], zdevice2.c [1.3], zdict.c [1.3], zdouble.c [1.2],
-zdpnext.c [1.2], zdps.c [1.4], zdps1.c [1.2], zfbcp.c [1.3], zfcid.c
-[1.10], zfcid0.c [1.4], zfcid1.c [1.2], zfcmap.c [1.8], zfdctd.c [1.3],
-zfdcte.c [1.3], zfdecode.c [1.3], zfile.c [1.5], zfileio.c [1.9], zfilter.c
-[1.4], zfilter2.c [1.3], zfilterx.c [1.2], zfmd5.c [1.2], zfont.c [1.2],
-zfont0.c [1.3], zfont1.c [1.8], zfont2.c [1.3], zfont32.c [1.2], zfont42.c
-[1.5], zfproc.c [1.4], zfrsd.c [1.4], zfunc.c [1.6], zfunc0.c [1.3],
-zfunc3.c [1.2], zfunc4.c [1.5], zfzlib.c [1.3], zgeneric.c [1.3], zgstate.c
-[1.2], zhsb.c [1.2], zht.c [1.2], zht1.c [1.2], zht2.c [1.2], zimage.c
-[1.5], zimage2.c [1.3], zimage3.c [1.3], ziodev.c [1.3], ziodev2.c [1.3],
-ziodevs.c [1.2], zmath.c [1.3], zmatrix.c [1.4], zmedia2.c [1.2], zmisc.c
-[1.2], zmisc1.c [1.3], zmisc2.c [1.3], zmisc3.c [1.2], zpacked.c [1.2],
-zpaint.c [1.2], zpath.c [1.2], zpath1.c [1.2], zpcolor.c [1.3], zrelbit.c
-[1.2], zrop.c [1.2], zshade.c [1.4], zstack.c [1.2], zstring.c [1.2],
-zsysvm.c [1.2], ztoken.c [1.6], ztrans.c [1.12], ztrap.c [1.2], ztype.c
-[1.3], zupath.c [1.2], zusparam.c [1.3], zvmem.c [1.2], zvmem2.c [1.2]:
-2000/09/19 19:00:53 lpd)
-
-Change to avoid multiply defined rect_param when NOPRIVATE is used. This
-module uses 4 element X/Y/width/Height, not a gs_rect so xywh_param is a
-better name. (zdpnext.c [1.3]: 2000/09/21 15:12:01 rayjj)
-
-Changes the default Windows installation directory from c:\Aladdin to c:\gs.
-(dwsetup.cpp [1.4]: 2000/09/22 05:32:17 lpd)
-
-Changes the default Windows Start Menu Folder from "Aladdin" to
-"Ghostscript". (dwsetup.cpp [1.5]: 2000/09/22 05:35:02 lpd)
-
-Documentation changes in preparation for 6.30 release. Replaced some contact
-information, updated version numbers. (lib/gs_init.ps [1.25]: 2000/10/04
-04:33:29 raph)
-
-</pre><h2><a name="6.30 Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - s_add_filter used min_out_size rather than min_in_size for the
-minimum buffer size, which could cause an endless loop when writing to the
-filter. (This only affected filters allocated by C code, not by the
-PostScript filter operator.) (stream.c [1.7], stream.h [1.6]: 2000/08/16
-01:26:22 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (sa85d.c [1.2], sa85d.h [1.2],
-sa85x.h [1.3], sbcp.c [1.3], sbcp.h [1.2], sbtx.h [1.2], scanchar.h [1.2],
-scantab.c [1.2], scf.h [1.2], scfd.c [1.2], scfe.c [1.2], scfetab.c [1.2],
-scfparam.c [1.2], scfx.h [1.2], scommon.h [1.2], sdcparam.c [1.2],
-sdcparam.h [1.2], sdct.h [1.2], sdctc.c [1.2], sdctd.c [1.2], sdcte.c
-[1.2], sddparam.c [1.2], sdeparam.c [1.2], seexec.c [1.3], sfilter.h [1.6],
-sfilter2.c [1.3], sfxboth.c [1.2], sfxfd.c [1.5]: 2000/09/19 19:00:47 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (sfxstdio.c [1.4], shc.c [1.2],
-shc.h [1.2], siinterp.c [1.2], siinterp.h [1.2], siscale.c [1.4], siscale.h
-[1.2], sisparam.h [1.2], sjpeg.h [1.2], sjpegc.c [1.2], sjpegd.c [1.2],
-sjpege.c [1.2], slzwc.c [1.2], slzwce.c [1.2], slzwd.c [1.2], slzwx.h
-[1.2], smd5.c [1.3], smd5.h [1.2], spdiff.c [1.3], spdiffx.h [1.2], spngp.c
-[1.2], spngpx.h [1.2], spprint.c [1.2], spprint.h [1.2], spsdf.c [1.4],
-spsdf.h [1.2], srdline.h [1.2], srld.c [1.2], srle.c [1.2], srlx.h [1.2],
-sstring.c [1.2], sstring.h [1.2], stat_.h [1.5], std.h [1.3], stdio_.h
-[1.2], stdpre.h [1.2], stream.c [1.8], stream.h [1.7], strimpl.h [1.2],
-string_.h [1.2], szlibc.c [1.2], szlibd.c [1.2], szlibe.c [1.2], szlibx.h
-[1.2], szlibxx.h [1.2]: 2000/09/19 19:00:50 lpd)
-
-</pre><h2><a name="6.30 Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Parameter lists didn't have proper GC descriptors; garbage
-collection could mangle keys and collection values in non-transient
-parameter lists (such as distiller parameters). (gscparam.c [1.5]:
-2000/08/19 03:01:30 lpd)
- - gdev_vector_dopath could return 1, which value was then propagated
-to callers that interpreted it differently. (gdevvec.c [1.5],
-gdevvec.h [1.3]: 2000/08/20 00:21:42 lpd)
- - An AIX compiler could get confused if the last elements of a
-structure were individual bytes. (gzpath.h [1.2]: 2000/08/24 19:43:48 lpd)
- - If the OutputFile of a high-level device was ever set, any
-subsequent execution of setpagedevice would cause a rangecheck in
-.installpagedevice. (gdevvec.c [1.6]: 2000/08/31 02:04:50 lpd)
- - Type 2 CharStrings didn't insert an explicit closepath at the end
-of each subpath. (This matters for charpath followed by stroke.)
-(gstype2.c [1.5]: 2000/08/31 02:16:45 lpd)
- - Type 2 fonts should insert an explicit closepath only if the
-font's PaintType != 1. (gstype2.c [1.6]: 2000/08/31 03:21:45 lpd)
- - The BeOS C compiler objected to some int/bool mismatches.
-(gp.h [1.4], gxfill.c [1.4], gxtext.h [1.2]: 2000/08/31 03:51:29 lpd)
- - Because "-" as an OutputFile now references the %stdout IODevice,
-it no longer worked in configurations without a PostScript interpreter.
-Fixing this required factoring out the stdin/out/err IODevices and providing
-an implementation that didn't reference the PostScript interpreter.
-(gsiodevs.c [1.1], gslib.c [1.2]: 2000/09/07 06:14:45 lpd)
- - Fixes a type error caused by a change in the TransferFunction
-member of gs_transparency_mask_params_t. (gstrans.c [1.7]: 2000/09/10
-18:20:09 lpd)
- - Several places in the code for ImageType 3x (soft-masked) images
-didn't correctly handle the case where only one of the two masks was
-supplied (which is always the case for PDF). (gximag3x.c [1.4]: 2000/09/11
-02:12:19 lpd)
- - The -Zv tracing messages for gs_begin_transparency_{group,mask}
-were incorrect. (gstrans.c [1.10]: 2000/09/12 20:35:05 lpd)
- - Printing the program name and version didn't use fprintf, so it
-didn't work properly with the stdout redirection on Windows. (fix from
-Artifex) (gsmisc.c [1.7]: 2000/09/18 06:22:35 lpd)
- - Undefined characters in CID-keyed (FMapType 9) composite fonts
-caused an infinite loop, because the parsing index was never advanced past
-the character. (gsfcmap.c [1.7]: 2000/09/21 02:44:44 lpd)
- - CID-keyed (FMapType 9) composite fonts didn't return the correct
-parsed character code, possibly causing widthshow or cshow to produce
-incorrect output. (gsfcmap.c [1.8], gsfcmap.h [1.4]: 2000/09/21 03:02:03
-lpd)
- - Works around ANSI C's unreasonable new aliasing restrictions.
-(gsnogc.c [1.5]: 2000/09/22 04:17:52 lpd)
- - The 'head' table in embedded TrueType fonts had a length of 56; it
-should have a length of 54 and be followed by 2 padding bytes.
-(gdevpsft.c [1.4]: 2000/09/26 06:42:05 lpd)
-
-Initializes files for the 6.24 fileset. (gscdef.c [1.7]: 2000/08/09 16:54:02
-lpd)
-
-Adds the PDF "overprint mode" to the graphics state. THE ACTUAL
-FUNCTIONALITY IS NOT IMPLEMENTED YET. (gscsepr.c [1.4], gscsepr.h [1.3],
-gsstate.c [1.2], gxclpath.c [1.3], gxclpath.h [1.2], gxclrast.c [1.4],
-gxistate.h [1.2]: 2000/08/23 17:54:14 lpd)
-
-Starts to implement the PDF 1.4 transparency features. All API and operator
-additions are now implemented (at least as stubs) and documented, as is
-bookkeeping for the new scalar graphics state members (but not for the soft
-masks or the transparency group stack). (gsistate.c [1.2], gsstate.c [1.3],
-gstparam.h [1.1], gstrans.c [1.1], gstrans.h [1.1], gxclpath.c [1.4],
-gxclpath.h [1.3], gxclrast.c [1.5], gxistate.h [1.3], gzstate.h [1.2]:
-2000/08/23 21:46:31 lpd)
-
-Adds a new equality-testing virtual procedure for color spaces.
-(gscdevn.c [1.4], gscolor2.c [1.5], gscpixel.c [1.2], gscscie.c [1.2],
-gscsepr.c [1.5], gscspace.c [1.3], gscspace.h [1.3], gspcolor.c [1.3],
-gxcspace.h [1.3]: 2000/08/24 05:42:30 lpd)
-
-Changes the band list representation of mask images to allow
-BitsPerComponent > 1 (for soft masks). (gximage1.c [1.2]: 2000/08/24
-17:58:18 lpd)
-
-Adds Matte and has_Matte members to ImageType 1 images. These are only used
-with the new transparency features. (gsiparam.h [1.2], gximage1.c [1.3]:
-2000/08/24 19:20:12 lpd)
-
-Partly implements opacity and shape mask bookkeeping. gsave/grestore/etc.
-and banding don't do the right thing yet. (gstparam.h [1.2],
-gstrans.c [1.2], gstrans.h [1.2], gxcldev.h [1.2], gxclpath.c [1.5],
-gxclpath.h [1.4]: 2000/08/25 01:46:48 lpd)
-
-Changes remove_range_from_freelist to only scan relevant freelists, rather
-than all of them. On some files, the speedup is dramatic. (gsalloc.c [1.6]:
-2000/08/26 01:18:33 lpd)
-
-Completes an edit that accidentally left the repository in an inconsistent
-state. (gxclpath.c [1.6], gxclrast.c [1.6]: 2000/08/26 03:19:56 lpd)
-
-Implements some minor improvements to the freelist algorithms that can
-produce nearly a factor of 2 speedup in some allocation-intensive
-situations. (gsalloc.c [1.7], gxalloc.h [1.4]: 2000/08/26 03:21:34 lpd)
-
-Brings the (still mostly stubbed) transparency code to a more
-self-consistent state. (gsipar3x.h [1.1], gsiparam.h [1.3],
-gsstruct.h [1.4], gstparam.h [1.3], gstrans.c [1.3], gstrans.h [1.3],
-gxclpath.c [1.7], gxclpath.h [1.5], gxclrast.c [1.7], gximag3x.c [1.1],
-gximag3x.h [1.1], gximage1.c [1.4], gxistate.h [1.4]: 2000/08/30 01:34:40
-lpd)
-
-Finishes the code for parsing ImageType 103 (soft-mask) images.
-(gximag3x.c [1.2]: 2000/08/30 04:29:56 lpd)
-
-Completes the parsing of .{begin,end}transparency{group,mask}, except for
-the TransferFunction for masks. The specification is still subject to
-change. (gstparam.h [1.4], gstrans.c [1.4], gstrans.h [1.4]: 2000/08/30
-15:03:36 lpd)
-
-Adds documentation on proposed driver interface additions for managing the
-transparency rendering stack. (gstrans.c [1.5]: 2000/08/31 20:22:47 lpd)
-
-Adds color space type names for tracing/debugging. (gscspace.h [1.4]:
-2000/09/10 05:21:44 lpd)
-
-Changes the -Zv switch to trace alpha/transparency-related features.
-(gdevabuf.c [1.2]: 2000/09/10 05:23:10 lpd)
-
-Implements another chunk of the PDF 1.4 transparency features, fixing some
-bugs in the previous code. (gstparam.h [1.5], gstrans.c [1.6],
-gximag3x.c [1.3]: 2000/09/10 05:26:27 lpd)
-
-Moves the Matte entry of soft mask images from the main structure to the
-mask structures, and changes Matted to has_Matte. (gsipar3x.h [1.2],
-gximag3x.c [1.5], gximag3x.h [1.2]: 2000/09/11 04:08:13 lpd)
-
-Adds a default implementation of soft-masked images that simply ignores the
-mask. (gximag3x.c [1.6]: 2000/09/11 04:38:01 lpd)
-
-Upgrades the proposed driver interface transparency extension from comments
-to macros, changing the name 'discard_transparency_level' to
-'discard_transparency_layer'. (gstrans.c [1.8], gstrans.h [1.5]: 2000/09/11
-20:13:31 lpd)
-
-Finishes the (dummy) implementation of the transparency layer stack in the
-graphics library. (gsistate.c [1.3], gsstate.c [1.4], gstparam.h [1.6],
-gstrans.c [1.9], gxistate.h [1.5]: 2000/09/11 22:20:05 lpd)
-
-Makes the default string matching parameters public. (gsutil.c [1.3],
-gsutil.h [1.2]: 2000/09/12 02:02:52 lpd)
-
-*** empty log message *** (gsmisc.c [1.6]: 2000/09/15 03:01:51 alexcher)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (close_.h [1.2], ctype_.h [1.2],
-dirent_.h [1.2], dos_.h [1.2], errno_.h [1.2], fcntl_.h [1.3], gconf.c
-[1.2], gconf.h [1.2], gdebug.h [1.2], gdevabuf.c [1.3], gdevalph.c [1.2],
-gdevbbox.c [1.3], gdevbbox.h [1.2]: 2000/09/19 19:00:09 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevcmap.c [1.2], gdevcmap.h
-[1.2], gdevdbit.c [1.2], gdevddrw.c [1.2], gdevdflt.c [1.3], gdevdgbr.c
-[1.2], gdevdrop.c [1.3], gdevemap.c [1.2], gdevhit.c [1.2], gdevht.c [1.3],
-gdevht.h [1.2], gdevm1.c [1.2], gdevm16.c [1.2], gdevm2.c [1.2], gdevm24.c
-[1.2], gdevm32.c [1.2], gdevm4.c [1.2], gdevm8.c [1.2], gdevmem.c [1.2],
-gdevmem.h [1.3], gdevmpla.c [1.2], gdevmpla.h [1.2], gdevmr1.c [1.2],
-gdevmr2n.c [1.2], gdevmr8n.c [1.2], gdevmrop.h [1.3], gdevmrun.c [1.2],
-gdevmrun.h [1.2], gdevnfwd.c [1.3]: 2000/09/19 19:00:12 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevpipe.c [1.3], gdevplnx.c
-[1.2], gdevplnx.h [1.2], gdevppla.c [1.2], gdevppla.h [1.2], gdevprn.c
-[1.5], gdevprn.h [1.6], gdevprna.c [1.2], gdevprna.h [1.2], gdevpsf.h
-[1.7], gdevpsf1.c [1.5], gdevpsf2.c [1.7], gdevpsfm.c [1.3], gdevpsft.c
-[1.3], gdevpsfu.c [1.4], gdevpsfx.c [1.5], gdevrops.c [1.3]: 2000/09/19
-19:00:20 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gdevtrac.c [1.2], gdevvec.c
-[1.7], gdevvec.h [1.4], gp.h [1.5], gp_dosfe.c [1.2], gp_dosfs.c [1.2],
-gp_getnv.c [1.2], gp_msdos.c [1.2], gp_nsync.c [1.2], gp_psync.c [1.2],
-gp_strdl.c [1.2], gp_unifn.c [1.2], gp_unifs.c [1.3], gpcheck.h [1.2],
-gpgetenv.h [1.2], gpmisc.c [1.7], gpmisc.h [1.2], gpsync.h [1.2], gsalloc.c
-[1.8], gsalloc.h [1.2], gsalpha.c [1.2], gsalpha.h [1.2], gsalphac.c [1.2],
-gsalphac.h [1.2], gsargs.c [1.2], gsargs.h [1.3], gsbitmap.h [1.2],
-gsbitops.c [1.2], gsbitops.h [1.2], gsbittab.c [1.2], gsbittab.h [1.2]:
-2000/09/19 19:00:23 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gsccode.h [1.4], gsccolor.h
-[1.2], gscdef.c [1.8], gscdefs.h [1.2], gscdevn.c [1.5], gscdevn.h [1.3],
-gschar.c [1.3], gschar.h [1.3], gschar0.c [1.2], gscie.c [1.3], gscie.h
-[1.2], gsciemap.c [1.3], gscindex.h [1.2], gsclipsr.c [1.2], gsclipsr.h
-[1.2], gscolor.c [1.4], gscolor.h [1.3], gscolor1.c [1.3], gscolor1.h
-[1.2], gscolor2.c [1.6], gscolor2.h [1.3], gscolor3.c [1.4], gscolor3.h
-[1.2], gscompt.h [1.2], gscoord.c [1.5], gscoord.h [1.2], gscparam.c [1.6],
-gscpixel.c [1.3], gscpixel.h [1.2], gscpm.h [1.2], gscrd.c [1.2], gscrd.h
-[1.2], gscrdp.c [1.2], gscrdp.h [1.2], gscrypt1.c [1.2], gscrypt1.h [1.2],
-gscscie.c [1.3], gscsel.h [1.2], gscsepnm.h [1.2], gscsepr.c [1.6],
-gscsepr.h [1.4], gscspace.c [1.4], gscspace.h [1.5], gscssub.c [1.2],
-gscssub.h [1.2], gsdcolor.h [1.3], gsdevice.c [1.7], gsdevice.h [1.3],
-gsdevmem.c [1.2], gsdparam.c [1.4], gsdpnext.h [1.2], gsdps.c [1.2],
-gsdps.h [1.2], gsdps1.c [1.2], gsdsrc.c [1.2], gsdsrc.h [1.3], gserror.h
-[1.2], gserrors.h [1.2], gsexit.h [1.2], gsfcid.c [1.4], gsfcmap.c [1.6],
-gsfcmap.h [1.3], gsfemu.c [1.2], gsflip.c [1.2], gsflip.h [1.2], gsfname.c
-[1.2], gsfname.h [1.2], gsfont.c [1.2], gsfont.h [1.2], gsfont0.c [1.2],
-gsfunc.c [1.4], gsfunc.h [1.4], gsfunc0.c [1.3], gsfunc0.h [1.2], gsfunc3.c
-[1.4], gsfunc3.h [1.2], gsfunc4.c [1.3], gsfunc4.h [1.2], gsfuncv.c [1.2],
-gsfuncv.h [1.2]: 2000/09/19 19:00:26 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gsgc.h [1.2], gshsb.c [1.2],
-gshsb.h [1.2], gsht.c [1.2], gsht.h [1.2], gsht1.c [1.2], gsht1.h [1.2],
-gshtscr.c [1.3], gshtx.c [1.2], gshtx.h [1.2], gsimage.c [1.3], gsimage.h
-[1.2], gsimpath.c [1.2], gsinit.c [1.2], gsio.h [1.4], gsiodev.c [1.3],
-gsiodevs.c [1.2], gsipar3x.h [1.3], gsiparam.h [1.4], gsiparm2.h [1.2],
-gsiparm3.h [1.4], gsiparm4.h [1.2], gsistate.c [1.4], gsjconf.h [1.2],
-gslib.c [1.3], gslib.h [1.2], gsline.c [1.2], gsline.h [1.2], gslparam.h
-[1.2], gsmalloc.c [1.3], gsmalloc.h [1.2], gsmatrix.c [1.2], gsmatrix.h
-[1.2], gsmdebug.h [1.2], gsmemlok.c [1.3], gsmemlok.h [1.2], gsmemory.c
-[1.2], gsmemory.h [1.2], gsmemraw.h [1.2], gsmemret.c [1.2], gsmemret.h
-[1.2], gsmisc.c [1.8], gsnogc.c [1.4], gsnogc.h [1.2], gsnorop.c [1.2],
-gsnotify.c [1.2], gsnotify.h [1.2], gspaint.c [1.2], gspaint.h [1.2],
-gsparam.c [1.4], gsparam.h [1.7], gsparam2.c [1.2], gsparams.c [1.2],
-gsparams.h [1.2], gsparamx.c [1.3], gsparamx.h [1.3], gspath.c [1.2],
-gspath.h [1.2], gspath1.c [1.2], gspath2.h [1.2], gspcolor.c [1.4],
-gspcolor.h [1.2], gspenum.h [1.2], gsptype1.c [1.2], gsptype1.h [1.2]:
-2000/09/19 19:00:29 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gsptype2.c [1.3], gsptype2.h
-[1.2], gsrect.h [1.2], gsrefct.h [1.2], gsrop.c [1.2], gsrop.h [1.2],
-gsropc.c [1.2], gsropc.h [1.2], gsropt.h [1.3], gsroptab.c [1.2], gsshade.c
-[1.3], gsshade.h [1.3], gsstate.c [1.5], gsstate.h [1.2], gsstruct.h [1.5],
-gsstype.h [1.2], gstext.c [1.3], gstext.h [1.3], gstparam.h [1.7],
-gstrans.c [1.11], gstrans.h [1.6], gstrap.c [1.3], gstrap.h [1.3],
-gstype1.c [1.5], gstype1.h [1.2], gstype2.c [1.7], gstype42.c [1.7],
-gstypes.h [1.2], gsuid.h [1.2], gsutil.c [1.4], gsutil.h [1.3], gsxfont.h
-[1.2], gx.h [1.2], gxacpath.c [1.3], gxalloc.h [1.5], gxalpha.h [1.2],
-gxarith.h [1.2], gxband.h [1.2], gxbcache.c [1.2], gxbcache.h [1.2],
-gxbitfmt.h [1.2], gxbitmap.h [1.2], gxbitops.h [1.2], gxccache.c [1.2],
-gxccman.c [1.2], gxcdevn.h [1.2], gxchar.c [1.2], gxchar.h [1.2],
-gxchrout.c [1.2], gxchrout.h [1.2], gxcht.c [1.2], gxcid.h [1.3], gxcie.h
-[1.2], gxcindex.h [1.2], gxclbits.c [1.2], gxcldev.h [1.3], gxclfile.c
-[1.2], gxclimag.c [1.2], gxclio.h [1.2], gxclip.c [1.3], gxclip.h [1.2],
-gxclip2.c [1.3], gxclip2.h [1.2], gxclipm.c [1.3], gxclipm.h [1.2],
-gxclipsr.h [1.2], gxclist.c [1.3], gxclist.h [1.2], gxcllzw.c [1.2],
-gxclmem.c [1.2], gxclmem.h [1.2]: 2000/09/19 19:00:32 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gxclpage.c [1.2], gxclpage.h
-[1.2], gxclpath.c [1.8], gxclpath.h [1.6], gxclrast.c [1.8], gxclread.c
-[1.2], gxclrect.c [1.2], gxclutil.c [1.2], gxclzlib.c [1.2], gxcmap.c
-[1.3], gxcmap.h [1.2], gxcolor2.h [1.4], gxcomp.h [1.2], gxcoord.h [1.2],
-gxcpath.c [1.3], gxcpath.h [1.2], gxcspace.h [1.4], gxctable.c [1.3],
-gxctable.h [1.2], gxcvalue.h [1.2], gxdcconv.c [1.3], gxdcconv.h [1.2],
-gxdcolor.c [1.3], gxdcolor.h [1.3], gxdda.h [1.2], gxdevbuf.h [1.2],
-gxdevcli.h [1.3], gxdevice.h [1.4], gxdevmem.h [1.2], gxdevrop.h [1.2],
-gxdht.h [1.4], gxdhtres.h [1.2], gxdither.c [1.2], gxdither.h [1.2],
-gxfarith.h [1.3], gxfcache.h [1.2], gxfcid.h [1.6], gxfcmap.h [1.5],
-gxfill.c [1.5], gxfixed.h [1.2], gxfmap.h [1.3], gxfont.h [1.2], gxfont0.h
-[1.3], gxfont1.h [1.4], gxfont42.h [1.4], gxfrac.h [1.2], gxftype.h [1.2],
-gxfunc.h [1.3], gxgetbit.h [1.2], gxhint1.c [1.2], gxhint2.c [1.2],
-gxhint3.c [1.2], gxht.c [1.2], gxht.h [1.2], gxhtbit.c [1.3], gxhttile.h
-[1.2], gxhttype.h [1.2], gxi12bit.c [1.2], gxiclass.h [1.2], gxicolor.c
-[1.2], gxidata.c [1.4], gxifast.c [1.2], gximag3x.c [1.7]: 2000/09/19
-19:00:35 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gximag3x.h [1.3], gximage.c
-[1.2], gximage.h [1.2], gximage1.c [1.5], gximage2.c [1.2], gximage3.c
-[1.6], gximage3.h [1.4], gximage4.c [1.3], gximono.c [1.2], gxino12b.c
-[1.2], gxiodev.h [1.2], gxiparam.h [1.2], gxipixel.c [1.2], gxiscale.c
-[1.2], gxistate.h [1.6], gxline.h [1.2], gxlum.h [1.2], gxmatrix.h [1.4],
-gxmclip.c [1.2], gxmclip.h [1.2], gxobj.h [1.2], gxop1.h [1.2], gxp1fill.c
-[1.2], gxp1impl.h [1.2], gxpageq.c [1.2], gxpageq.h [1.2], gxpaint.c [1.2],
-gxpaint.h [1.2], gxpath.c [1.2], gxpath.h [1.2], gxpath2.c [1.2],
-gxpcache.h [1.2], gxpcmap.c [1.3], gxpcolor.h [1.2], gxpcopy.c [1.3],
-gxpdash.c [1.2], gxpflat.c [1.2], gxropc.h [1.2], gxrplane.h [1.2],
-gxsample.c [1.2], gxsample.h [1.2], gxshade.c [1.4], gxshade.h [1.3],
-gxshade1.c [1.5], gxshade4.c [1.3], gxshade4.h [1.2], gxshade6.c [1.3],
-gxstate.h [1.2], gxstdio.h [1.2], gxstroke.c [1.2], gxsync.c [1.2],
-gxsync.h [1.2], gxtext.h [1.3], gxtmap.h [1.2], gxttf.h [1.2], gxtype1.c
-[1.6], gxtype1.h [1.4], gxxfont.h [1.2], gzacpath.h [1.2], gzcpath.h [1.2],
-gzht.h [1.3], gzline.h [1.2], gzpath.h [1.3]: 2000/09/19 19:00:38 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gzstate.h [1.3]: 2000/09/19
-19:00:41 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (jerror_.h [1.2], malloc_.h [1.2],
-math_.h [1.2], memory_.h [1.2], pipe_.h [1.2]: 2000/09/19 19:00:47 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (time_.h [1.2], vmsmath.h [1.2],
-windows_.h [1.2]: 2000/09/19 19:00:51 lpd)
-
-Bring version numbers and dates up to date. Small bug fix in toolbin/pre to
-make it able to handle months with leading zeros. (gscdef.c [1.9]:
-2000/10/04 05:18:54 raph)
-
-</pre><h2><a name="6.30 ???Other???"></a>???Other???</h2><pre>
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gp_mswin.h [1.2]: 2000/09/19
-19:00:24 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gsdll.h [1.2], gsdll32w.lnk
-[1.2], gsdllos2.h [1.2], gsdllwin.h [1.2], gsjmorec.h [1.2]: 2000/09/19
-19:00:27 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (gspmdrv.h [1.2]: 2000/09/19
-19:00:31 lpd)
-
-Updates the license notices to reflect the name change, as well as some
-internal references to the program name. (iutilasm.asm [1.2]: 2000/09/19
-19:00:46 lpd)
-
-<hr>
-
-<h1><a name="Version6.23"></a>Version 6.23 (2000-08-07)</h1>
-
-<p>
-This fileset consists mostly of bug fixes.
-
-<p>
-All problems registered on SourceForge numbered 110922 or lower are closed,
-except for the following: 101549, 101814, 101905, 101955, 102146, 102735,
-104118, 105289, 105558, 106340, 106652, 109350, 110445, 110898, 110922.
-
-<p>
-The following projects are in a partially completed state in the PDF writer:
-
-<ul>
-
-<li>CID-keyed fonts (gdevpdf[eftw].c) -- barely started.
-
-</ul>
-
-<pre>
-
-<h2><a name="6.23_Incompatible_changes"></a>Incompatible changes</h2>
-
-(Drivers)
- - With high-level drivers ([e]pswrite, pdfwrite, pxl*, cgm*),
-changing the OutputFile after writing one or more pages now causes an error.
-(Interpreter)
- - By default, copydevice will only copy a device prototype.
- - Some internal references to contexts in zcontext.c are changed
-from direct pointers to context indices.
- - Renames internal types to add a _t: ctx_list, ctx_status,
-gs_context, gs_condition, gs_lock.
-(Library)
- - By default, gs_copydevice[2] will only copy a device prototype.
-
-
-<h2><a name="6.23 Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Local GC in a multi-context system caused a crash. Also updates
-all the internal type names in zcontext.c by adding a _t suffix if
-necessary. (doc/News.htm [1.54]: 2000/07/10 23:56:55 lpd)
- - With some high-level drivers, changing the OutputFile after
-opening the device could cause a crash. After the fix, doing this works
-properly if no pages have actually been written out, but causes a rangecheck
-error if any pages have been written. (This is required to maintain internal
-consistency.) (doc/News.htm [1.55]: 2000/07/12 14:02:03 lpd)
- - The documented limit on the length of a file name was incorrect.
-(doc/Language.htm [1.9]: 2000/08/03 06:45:25 lpd)
-
-Increments the version number, in preparation for the next fileset.
-(doc/News.htm [1.52]: 2000/07/06 02:45:06 lpd)
-
-Adds a finish_copydevice device procedure, for cleaning up after copying the
-bits of a device prototype or instance. For safety, the default
-implementation only allows copying the prototype, not instances. This is a
-NON-BACKWARD-COMPATIBLE change; however, using copydevice on a device
-instance never worked reliably, so it should not have been used this way
-before. (doc/Drivers.htm [1.4], doc/News.htm [1.53]: 2000/07/06 04:13:24
-lpd)
-
-Updates the references to the Computer Modern Fontmap on CTAN.
-(doc/Fonts.htm [1.5], doc/New-user.htm [1.8]: 2000/07/09 23:29:25 lpd)
-
-Updates a couple of release procedures. (doc/Release.htm [1.15]: 2000/07/10
-19:32:59 lpd)
-
-Adds documentation and a script for preparing GNU releases from Aladdin
-releases. (doc/Release.htm [1.16]: 2000/07/17 17:10:57 lpd)
-
-Clarifies that device parameters set with -d or -s can be changed
-subsequently. (doc/Use.htm [1.8]: 2000/07/17 20:13:03 lpd)
-
-Adds a project for making Ghostscript work as a Netscape browser plug-in.
-(doc/Projects.htm [1.13]: 2000/07/19 22:50:18 lpd)
-
-Removes the SVG driver from the list of projects, since there is a group
-close to completing one (referenced from the Ghostscript home page on the
-Web). (doc/Projects.htm [1.14]: 2000/07/20 14:49:52 lpd)
-
-Directs users to the Ghostscript home page on the Web for information about
-third-party drivers. (doc/New-user.htm [1.9]: 2000/07/20 14:50:34 lpd)
-
-Adds a partially implemented driver that just produces a trace of its
-drawing calls. This driver also serves as a minimal example of how to
-implement the high-level driver operations. (doc/Drivers.htm [1.5]:
-2000/07/29 04:00:00 lpd)
-
-Updates dates and version #s for the 6.23 fileset. (doc/Bug-info.htm [1.4],
-doc/Changes.htm [1.15], doc/Drivers.htm [1.6], doc/Fonts.htm [1.6],
-doc/History5.htm [1.3], doc/Htmstyle.htm [1.4], doc/Install.htm [1.5],
-doc/Language.htm [1.10], doc/New-user.htm [1.10], doc/News.htm [1.56],
-doc/Projects.htm [1.15], doc/Ps2pdf.htm [1.15], doc/Release.htm [1.17],
-doc/Use.htm [1.9], man/ps2ps.1 [1.6]: 2000/08/07 17:48:09 lpd)
-
-</pre><h2><a name="6.23 Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - $(GLGEN)/md5.h wasn't deleted after compilation. (lib.mak [1.26]:
-2000/07/09 23:19:59 lpd)
- - TrueType font loading now requires the Adobe glyph list, but this
-dependency was missing from the makefile. (int.mak [1.26]: 2000/07/19
-08:11:15 lpd)
- - During compilation, GLSRCDIR was searched before GLGENDIR. (We're
-very surprised that this didn't cause detectable trouble before.)
-(lib.mak [1.27]: 2000/07/19 14:32:00 lpd)
- - The dependency on gsparamx.$(OBJ) was incorrectly attached to
-pdfwrite.dev rather than psdf.dev. (devs.mak [1.30]: 2000/08/03 17:42:52
-lpd)
- - 'pre' didn't work with dates in August or September (Tcl doesn't
-accept 08 and 09 as valid numbers). (toolbin/pre [1.5]: 2000/08/07 17:35:27
-lpd)
-
-Increments the version number, in preparation for the next fileset.
-(version.mak [1.17]: 2000/07/06 02:45:06 lpd)
-
-Adds some user-contributed comments about using the Canon BJ200 driver with
-the BJ300. (contrib.mak [1.18]: 2000/07/11 15:33:19 lpd)
-
-Updates the (user-contributed) all-architecture build script to work around
-a detail in the SGI IRIX C library header files. (all-arch.mak [1.4]:
-2000/07/15 19:23:45 lpd)
-
-Adds documentation and a script for preparing GNU releases from Aladdin
-releases. (toolbin/makegnu.tcl [1.1]: 2000/07/17 17:10:57 lpd)
-
-Adds a partially implemented driver that just produces a trace of its
-drawing calls. This driver also serves as a minimal example of how to
-implement the high-level driver operations. (lib.mak [1.28]: 2000/07/29
-04:00:00 lpd)
-
-Changes 'gsmake' to report line number rather than character position for
-errors and warnings. (toolbin/gsmake.tcl [1.3]: 2000/08/07 17:22:27 lpd)
-
-Updates dates and version #s for the 6.23 fileset. (version.mak [1.18]:
-2000/08/07 17:48:10 lpd)
-
-Adds some missing dependencies. (int.mak [1.27], lib.mak [1.29]: 2000/08/07
-17:52:22 lpd)
-
-</pre><h2><a name="6.23 Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - An invalid file name or pattern passed to filenameforall would
-(incorrectly) return an empty string rather than not returning any file
-names at all. (gp_vms.c [1.3]: 2000/07/09 21:09:51 lpd)
- - Some DOS/Windows script files didn't use 'call', so they would
-terminate execution prematurely if called from another script file.
-(lib/ps2pdf.bat [1.5], lib/ps2pdf12.bat [1.4], lib/ps2pdf13.bat [1.4],
-lib/ps2pdfxx.bat [1.8]: 2000/07/24 15:12:21 lpd)
-
-</pre><h2><a name="6.23 Drivers"></a>Drivers</h2><pre>
-
-Implements finish_copydevice for X windows, to allow copying instances as
-well as the prototype. (gdevx.c [1.4], gdevx.h [1.3], gdevxini.c [1.7]:
-2000/07/06 05:29:46 lpd)
-
-Adds some user-contributed comments about using the Canon BJ200 driver with
-the BJ300. (gdevbj10.c [1.2]: 2000/07/11 15:33:19 lpd)
-
-</pre><h2><a name="6.23 PDF writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - M_2PI was predefined on some systems. (gdevpdfg.c [1.6]:
-2000/07/09 23:11:31 lpd)
- - The word and character spacing values were not tracked correctly
-when mixing text and graphics, sometimes producing horizontally misplaced
-text. (gdevpdf.c [1.18], gdevpdfg.c [1.7], gdevpdfu.c [1.10],
-gdevpdfx.h [1.19]: 2000/07/11 14:33:54 lpd)
- - 'show'ing an empty string could cause the next string to be
-positioned incorrectly. (gdevpdft.c [1.14]: 2000/07/27 14:18:11 lpd)
-
-Updates font embedding code to handle CIDFontType 2 fonts. NOT TESTED.
-(gdevpdfe.c [1.3]: 2000/07/27 04:18:13 lpd)
-
-Adds glyphs_used to FontDescriptors and pfd to std_fonts in the device
-structure. WORK IN PROGRESS. (gdevpdf.c [1.19], gdevpdff.c [1.7],
-gdevpdff.h [1.3], gdevpdfx.h [1.20]: 2000/07/27 04:19:24 lpd)
-
-</pre><h2><a name="6.23 Interpreter (PDF)"></a>Interpreter (PDF)</h2><pre>
-
-Fixes problems:
- - If a badly-constructed PDF file referenced one of the 12 base
-alphabetic fonts explicitly as a TrueType font (e.g., /BaseFont
-/TimesNewRoman /Subtype /TrueType) without embedding it, the substituted
-Type 1 font had the wrong Encoding. (lib/pdf_font.ps [1.10]: 2000/07/10
-13:18:28 lpd)
- - Piped input beginning with a % caused an ioerror. (bug introduced
-in 6.22) (lib/pdf_main.ps [1.10]: 2000/07/14 05:30:19 lpd)
- - As a result of some recent changes to fix other problems, setting
-certain text state parameters (Tf, Ts, Tz) outside of text mode (BT/ET)
-caused an error. (lib/pdf_ops.ps [1.6]: 2000/07/19 15:57:54 lpd)
- - Setting a singular text matrix (e.g., 0 0 0 0 <x> <y> Tm) caused
-an error. (lib/pdf_ops.ps [1.7]: 2000/08/04 16:08:05 lpd)
-
-</pre><h2><a name="6.23 Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Removes the '?' procedure, which was defined solely for the
-convenience of users who don't read the documentation and which interfered
-with the operation of some code produced by the Adobe PS5 Windows driver.
-(lib/gs_init.ps [1.18]: 2000/07/09 22:34:30 lpd)
- - A constant 1 should have been 1L, causing a warning on systems
-where sizeof(long) > sizeof(int). (zarith.c [1.3]: 2000/07/09 23:10:58 lpd)
- - The workaround for attempting to set a 4-element PageSize value in
-a page device sometimes caused an error. (bug introduced in 6.21)
-(lib/gs_setpd.ps [1.4]: 2000/07/10 12:48:54 lpd)
- - Redefining setcolorspace could cause an infinite recursion.
-(lib/gs_lev2.ps [1.5]: 2000/07/10 13:35:24 lpd)
- - Local GC in a multi-context system caused a crash. Also updates
-all the internal type names in zcontext.c by adding a _t suffix if
-necessary. (zcontext.c [1.4]: 2000/07/10 23:56:55 lpd)
- - A garbage collection occurring within a save could cause a memory
-access error. (bug introduced in 6.22) (zcontext.c [1.5]: 2000/07/14
-05:28:56 lpd)
- - Piped input beginning with a % caused an ioerror. (bug introduced
-in 6.22) (zfileio.c [1.8]: 2000/07/14 05:30:19 lpd)
- - A garbage collection occurring while scanning a binary token
-sequence could cause a syntaxerror or corrupted data. (iscan.c [1.3]:
-2000/07/18 15:39:02 lpd)
- - (correction) An interruption (including a callout for a
-procedure-based stream), not a garbage collection, while scanning a binary
-token sequence could cause a syntaxerror or corrupted data. (iscan.c [1.4]:
-2000/07/18 15:41:55 lpd)
- - When loading a TrueType font, invalid glyph numbers in the 'post'
-table (which appear in some Adobe-created PDF files) caused an error instead
-of being ignored; a test was backwards, causing some embedded TrueType fonts
-in PDF files to produce a rangecheck error. (lib/gs_ttf.ps [1.6]: 2000/07/19
-08:12:41 lpd)
- - When NOPROMPT was set, no flush or flushpage occurred at the end
-of a page. (fix from an anonymous user on SourceForge)
-(lib/gs_init.ps [1.19]: 2000/07/20 01:40:50 lpd)
- - Type 1 or Type 2 fonts with invalid LanguageGroup values < 0
-caused an error. (Such fonts are invalid, but some real fonts have garbage
-LanguageGroup values, and Adobe software doesn't give an error.)
-(zfont1.c [1.6]: 2000/07/24 18:08:38 lpd)
- - Errors while executing gs_init.ps and other PostScript
-initialization files were sometimes ignored, leading to mysterious error
-messages later. (imainarg.c [1.3]: 2000/08/03 06:43:17 lpd)
- - Showing text with a singular matrix (scaling matrix x CTM) could
-leave extraneous values on the operand stack. (zchar1.c [1.4]: 2000/08/04
-16:09:30 lpd)
-
-Increments the version number, in preparation for the next fileset.
-(lib/gs_init.ps [1.15]: 2000/07/06 02:45:06 lpd)
-
-Redefines [gs_]copydevice in terms of a new gs_copydevice2/.copydevice2,
-which adds a Boolean keep_open argument that requests (but does not
-guarantee) that a copy of an open device remain open.
-(lib/gs_init.ps [1.16], zdevice.c [1.2]: 2000/07/06 03:26:13 lpd)
-
-Adds a finish_copydevice device procedure, for cleaning up after copying the
-bits of a device prototype or instance. For safety, the default
-implementation only allows copying the prototype, not instances. This is a
-NON-BACKWARD-COMPATIBLE change; however, using copydevice on a device
-instance never worked reliably, so it should not have been used this way
-before. (lib/gs_init.ps [1.17]: 2000/07/06 04:13:24 lpd)
-
-Adds the ability to load CIDFont resources from CFF OpenType font files.
-(lib/gs_cff.ps [1.6], lib/gs_cidfn.ps [1.16]: 2000/07/29 05:58:28 lpd)
-
-Ensures that errordict has at least one empty entry, for the sake of some
-astonishingly bad PostScript code that tests for this and has a bug in the
-case where it isn't true. (lib/gs_init.ps [1.20]: 2000/08/04 04:29:45 lpd)
-
-</pre><h2><a name="6.23 Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Some coordinate computations for Type 1 fonts could lose far too
-much precision if _fixed_shift was reduced. (gscoord.c [1.2],
-gxmatrix.h [1.2]: 2000/07/11 09:25:46 lpd)
- - If the current color space was DeviceRGB, gs_currentgray returned
-the wrong value. (bug introduced in 6.22) (gscolor.c [1.3]: 2000/07/11
-14:00:09 lpd)
- - With some high-level drivers, changing the OutputFile after
-opening the device could cause a crash. After the fix, doing this works
-properly if no pages have actually been written out, but causes a rangecheck
-error if any pages have been written. (This is required to maintain internal
-consistency.) (gdevvec.c [1.4]: 2000/07/12 14:02:04 lpd)
- - A file had accidentally acquired an incorrect license notice.
-(gscoord.c [1.4]: 2000/07/13 02:02:09 lpd)
- - Type 2 fonts that used the 'hflex' operator could produce
-distorted characters (e.g., slanted bottoms). (gstype2.c [1.4]: 2000/07/13
-02:09:21 lpd)
- - The use of macros within procedure argument lists confused
-ansi2knr. (gximage3.c [1.5], gximage3.h [1.3]: 2000/07/19 14:30:45 lpd)
- - Freeing a locking allocator could cause infinite recursion.
-(gsmemlok.c [1.2]: 2000/07/19 21:32:12 lpd)
- - "Accurate curves" was a no-op for certain cases of horizontal or
-vertical tangents. (gxpcopy.c [1.2]: 2000/08/05 01:04:28 lpd)
-
-Increments the version number, in preparation for the next fileset.
-(gscdef.c [1.5]: 2000/07/06 02:45:06 lpd)
-
-Redefines [gs_]copydevice in terms of a new gs_copydevice2/.copydevice2,
-which adds a Boolean keep_open argument that requests (but does not
-guarantee) that a copy of an open device remain open. (gsdevice.c [1.5],
-gsdevice.h [1.2]: 2000/07/06 03:26:13 lpd)
-
-Adds a finish_copydevice device procedure, for cleaning up after copying the
-bits of a device prototype or instance. For safety, the default
-implementation only allows copying the prototype, not instances. This is a
-NON-BACKWARD-COMPATIBLE change; however, using copydevice on a device
-instance never worked reliably, so it should not have been used this way
-before. (gdevbbox.c [1.2], gdevdflt.c [1.2], gdevht.c [1.2],
-gdevmem.h [1.2], gdevnfwd.c [1.2], gdevprn.h [1.5], gdevrops.c [1.2],
-gsdevice.c [1.6], gxacpath.c [1.2], gxclip.c [1.2], gxclip2.c [1.2],
-gxclipm.c [1.2], gxclist.c [1.2], gxdevcli.h [1.2], gxdevice.h [1.3],
-gxpcmap.c [1.2]: 2000/07/06 04:13:24 lpd)
-
-Adds a little more tracing output for images. (gxidata.c [1.3]: 2000/07/09
-21:04:25 lpd)
-
-Adds _simple_final structure type definition macros. (gsstruct.h [1.3]:
-2000/07/10 15:43:30 lpd)
-
-Removes a structure member no longer needed after a recent fix.
-(gscoord.c [1.3], gxmatrix.h [1.3]: 2000/07/12 04:49:43 lpd)
-
-Adds the ability to write subsetted CIDFontType 2 (TrueType-based) fonts.
-(gdevpsf.h [1.6], gdevpsft.c [1.2], gdevpsfu.c [1.3], gxfcid.h [1.5]:
-2000/07/21 01:09:16 lpd)
-
-Adds a partially implemented driver that just produces a trace of its
-drawing calls. This driver also serves as a minimal example of how to
-implement the high-level driver operations. (gdevtrac.c [1.1]: 2000/07/29
-04:00:00 lpd)
-
-Improves the smoothness of ShadingType 4 - 7 gradient fills.
-(gxshade4.c [1.2], gxshade6.c [1.2]: 2000/08/03 20:47:48 lpd)
-
-Updates dates and version #s for the 6.23 fileset. (gscdef.c [1.6]:
-2000/08/07 17:48:10 lpd)
-
-<hr>
-
-<h1><a name="Version6.22"></a>Version 6.22 (2000-07-05)</h1>
-
-<p>
-This fileset consists mostly of bug fixes. It also further improves the PDF
-writer, which now handles ImageType 3 images and PatternType 2 (shading)
-patterns.
-
-<p>
-All problems registered on SourceForge numbered 108819 or lower are closed,
-except for the following: 101549, 101814, 101905, 101955, 102146, 102735,
-104118, 105289, 105558, 106340, 106652, 108639.
-
-<p>
-The following projects are in a partially completed state in the PDF writer:
-
-<ul>
-
-<li>CID-keyed fonts (gdevpdf[eftw].c) -- barely started.
-
-</ul>
-
-<pre>
-
-<h2><a name="6.22_Incompatible_changes"></a>Incompatible changes</h2>
-
-(Procedures)
- - Versions now have odd numbers during development, even numbers
-when released.
- - The TMPDIR environment variable, if set, now takes precedence
-over TEMP.
- - On MS-DOS, MS Windows, and OS/2 platforms, the batch files that
-invoke Ghostscript now use a default name of gswin32 or gswin32c rather than
-simply gs.
-(Drivers)
- - The PCL drivers now select a given paper size if the requested
-height is at least 0.1" greater than the height of the next smaller paper
-size, rather than if the requested height is at least as large as that of
-the given paper size.
-(Interpreter)
- - user_names_p and system_names_p may now be NULL: clients must
-check this.
- - scan_comment_proc and scan_dsc_proc are now deprecated, and will
-disappear in the near future.
- - The values in psuserparams are now checking procedures rather
-than parameter values.
- - Comments beginning with %! are treated as "DSC comments", like
-comments beginning with %%.
-(Library)
- - The macro for declaring the fill_rectangle procedure of a shading
-is now upper-case. The fill_rectangle procedure is now a member of a procs
-structure; there is a new macro for calling it.
- - The parameter list and return value for gs_currentgray have
-changed. This is very unfortunate, but it was unavoidable.
-
-
-<h2><a name="6.22 Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - The batch files for MS-DOS, MS Windows, and OS/2 referred to the
-executable by the name 'gs'. They now use environment variables GS
-(graphical) and GSC (console) for the executable names, defaulting to
-gswin32 and gswin32c respectively. (doc/News.htm [1.45], doc/Use.htm [1.6]:
-2000/05/20 20:53:04 lpd)
- - The -dCompatibilityLevel= switch was incorrectly identified in one
-place as -dCompatibility=. (doc/Ps2pdf.htm [1.11]: 2000/05/22 21:29:45 lpd)
- - [gs_]currentgray didn't return the correct value if the current
-color space was a DeviceN space using the alternate space.
-(doc/News.htm [1.49]: 2000/07/03 15:28:26 lpd)
- - Fixes a couple of typos. (doc/Release.htm [1.12]: 2000/07/04
-19:19:38 lpd)
- - The "smoke test" procedure for fileset releases didn't stress the
-banding code nearly as hard as intended. (doc/Release.htm [1.13]: 2000/07/05
-04:50:13 lpd)
-
-Adds predefined pdfwrite settings similar to the three standard settings in
-Adobe Acrobat Distiller 4, plus a "default" setting, with
--dPDFSETTINGS=/settingname. (doc/Ps2pdf.htm [1.10]: 2000/04/29 02:29:20 lpd)
-
-Increments the version number to 6.23. From now on, we use odd numbers
-during development, even numbers for released filesets.
-(doc/Changes.htm [1.12], doc/History6.htm [1.7], doc/News.htm [1.40],
-doc/Release.htm [1.11]: 2000/04/29 16:49:43 lpd)
-
-Implements ImageType 3 images in the PDF writer. (doc/News.htm [1.41]:
-2000/04/30 06:21:58 lpd)
-
-Creates a procs structure for shadings, moving the fill_rectangle procedure
-into it, in anticipation of adding a get_params procedure.
-(doc/News.htm [1.42]: 2000/04/30 19:37:37 lpd)
-
-Implements PatternType 2 patterns and shfill in the PDF writer.
-(doc/News.htm [1.43]: 2000/05/02 07:14:58 lpd)
-
-Adds a reference to Karel Kulhavy's pdf2html program.
-(doc/New-user.htm [1.6]: 2000/05/04 21:16:44 lpd)
-
-Adds a small project to remove the limit on the length of the OutputFile
-parameter for printer drivers. (doc/Projects.htm [1.9]: 2000/05/06 00:32:08
-lpd)
-
-Documents the addition of TMPDIR for specifying the directory for temporary
-files. (doc/News.htm [1.44], doc/Use.htm [1.5]: 2000/05/19 17:59:28 lpd)
-
-Adds (more) user-contributed uniprint parameter files for the Epson Stylus
-Color 640. (doc/Devices.htm [1.8]: 2000/05/23 18:58:56 lpd)
-
-Adds implementation of the %font% IODevice to the list of projects.
-(doc/Projects.htm [1.10]: 2000/05/24 23:30:15 lpd)
-
-Documents the change in the paper size selection for PCL drivers.
-(doc/News.htm [1.46]: 2000/05/30 03:26:15 lpd)
-
-Adds glyph decaching notification to the list of projects.
-(doc/Projects.htm [1.11]: 2000/05/30 05:54:23 lpd)
-
-Documents that user_names_p and system_names_p may now be NULL.
-(doc/News.htm [1.47]: 2000/06/05 01:26:05 lpd)
-
-Adds the ability to write multi-strip monochrome TIFF files, controlled by a
-new MaxStripSize parameter for the monochrome TIFF drivers.
-(doc/Devices.htm [1.9]: 2000/06/05 05:41:55 lpd)
-
-Updates the open ICC color support project to reference Graeme Gill's icclib
-package. (doc/Projects.htm [1.12]: 2000/06/08 02:55:37 lpd)
-
-Adds an umbrella document for maintenance procedures, initially describing
-the procedure for uploading bug report test data to SourceForge.
-(doc/Maintain.htm [1.1], doc/Readme.htm [1.8]: 2000/06/13 20:27:26 lpd)
-
-Updates documentation to reflect the use of the GSC environment variable to
-set the name of the executable for ps2pdf. (doc/Ps2pdf.htm [1.12]:
-2000/06/21 17:10:41 lpd)
-
-Updates documentation on the ProcessColorModel and ColorConversionStrategy
-parameters. (doc/Ps2pdf.htm [1.13]: 2000/06/21 18:06:07 lpd)
-
-Adds user parameters ProcessComment and ProcessDSCComment. If not null,
-these procedures are called with the file and the comment line whenever the
-scanner detects a comment (or non-DSC comment) or DSC comment. NOTE: the
-interpreter is currently patched so that ProcessComment is never called.
-(doc/Language.htm [1.4], doc/News.htm [1.48]: 2000/06/27 00:53:38 lpd)
-
-Adds a reference to a user-maintained Czech translation of the Ghostscript
-'man' pages. (doc/Readme.htm [1.9]: 2000/06/27 14:03:29 lpd)
-
-Brings the language documentation (more) up to date.
-(doc/Language.htm [1.5]: 2000/06/29 16:00:48 lpd)
-
-Improves the documentation of copydevice regarding where it allocates the
-copy, and documents finddevice. (doc/Drivers.htm [1.2],
-doc/Language.htm [1.6]: 2000/06/30 00:09:15 lpd)
-
-Adds a findprotodevice "operator", to find a device prototype by name.
-(doc/Language.htm [1.7]: 2000/07/05 04:49:11 lpd)
-
-Changes the version numbering system back to sequential (not odd/even).
-Between numbered filesets, GS_PRODUCT will say "CVS PRE-RELEASE".
-(doc/History6.htm [1.8], doc/News.htm [1.50]: 2000/07/05 17:23:54 lpd)
-
-Updates documentation related to version numbering, reflecting the move back
-to sequential numbering. (doc/Maintain.htm [1.2], doc/Release.htm [1.14]:
-2000/07/05 18:27:50 lpd)
-
-Updates documentation dates for making a fileset. (doc/Changes.htm [1.13],
-doc/Devices.htm [1.10], doc/Drivers.htm [1.3], doc/History6.htm [1.9],
-doc/Language.htm [1.8], doc/New-user.htm [1.7], doc/News.htm [1.51],
-doc/Ps2pdf.htm [1.14], doc/Readme.htm [1.10], doc/Use.htm [1.7]: 2000/07/06
-00:01:39 lpd)
-
-</pre><h2><a name="6.22 Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - The rule for the recently-added gdevhl12 driver omitted the space
-before the colon. (contrib.mak [1.12]: 2000/05/02 01:42:12 lpd)
- - Once again, corrects an incorrect dependency list.
-(lib.mak [1.19]: 2000/05/02 07:14:11 lpd)
- - smd5.c didn't compile properly with "traditional C" compilers.
-(lib.mak [1.20]: 2000/05/19 06:08:01 lpd)
- - Temporary files weren't created as private or exclusive.
-(lib.mak [1.21], os2.mak [1.6], watc.mak [1.4], watclib.mak [1.4],
-winlib.mak [1.3]: 2000/05/19 17:52:51 lpd)
- - The definitions of user names weren't properly associated with
-local VM (they were stored in a static variable). (int.mak [1.22]:
-2000/05/26 02:27:58 lpd)
- - 'make install' on Unix systems didn't install pdfopt.ps and
-pdfwrite.ps. (unixinst.mak [1.11]: 2000/05/30 23:07:34 lpd)
- - The dependency list for the new Epson Stylus Photo driver was
-wrong, causing build problems if this driver was included.
-(contrib.mak [1.13]: 2000/06/01 20:25:39 lpd)
- - The change to implement stripped TIFF files broke non-TIFF fax
-output formats (faxg* drivers). Also factors plain-fax writing from TIFF
-writing. (devs.mak [1.26]: 2000/06/06 06:37:37 lpd)
- - Corrects a typo introduced by recent changes. (msvctail.mak [1.3]:
-2000/06/07 06:36:54 lpd)
- - Rendering TrueType fonts didn't adjust the flatness to ensure
-accurate results. (lib.mak [1.23]: 2000/06/20 15:46:53 lpd)
- - The makefile missed a dependency (CIDFontType 0 fonts require
-FontType 2 fonts). (int.mak [1.23]: 2000/06/27 17:23:13 lpd)
- - The makefiles didn't include the requirement that gs_mro_e.ps be
-loaded before gs_mgl_e.ps. (devs.mak [1.28], int.mak [1.24]: 2000/06/27
-17:36:42 lpd)
- - A dependency was missing. (lib.mak [1.24]: 2000/07/04 19:05:12
-lpd)
- - Fixes a typo; reduces the number of false warnings for
-documentation date mismatches. (toolbin/pre [1.4]: 2000/07/04 19:19:17 lpd)
- - Fixes a typo. (contrib.mak [1.16]: 2000/07/04 22:30:10 lpd)
- - Adds a missing dependency. (devs.mak [1.29]: 2000/07/04 22:30:33
-lpd)
- - Adds a missing dependency. (contrib.mak [1.17]: 2000/07/06
-00:00:13 lpd)
-
-Increments the version number to 6.23. From now on, we use odd numbers
-during development, even numbers for released filesets. (version.mak [1.15]:
-2000/04/29 16:49:43 lpd)
-
-Restructures the code for handling ImageType 3 images, for the benefit of
-the PDF writer. (lib.mak [1.18]: 2000/04/30 03:08:15 lpd)
-
-Implements ImageType 3 images in the PDF writer. (devs.mak [1.23]:
-2000/04/30 06:21:58 lpd)
-
-Implements PatternType 2 patterns and shfill in the PDF writer.
-(devs.mak [1.24]: 2000/05/02 07:14:58 lpd)
-
-Adds the first draft of a driver for the Practical Automation ATX-23, -24,
-and -38 label/ticket printers, developed under contract. This has a dual
-GPL/AFPL license. (devs.mak [1.25]: 2000/05/03 20:30:06 lpd)
-
-Works around the fact that Microsoft Visual C++ (only) doesn't define the O_
-flags for the `open' library call. (lib.mak [1.22]: 2000/05/31 20:34:43 lpd)
-
-Makes it possible to build on MSVC++ systems without specifying the paths
-for the tools, headers, or libraries. See msvc{32,lib}.mak for details.
-(msvc32.mak [1.4], msvccmd.mak [1.4], msvclib.mak [1.4], msvctail.mak [1.2],
-winint.mak [1.4]: 2000/06/05 02:46:07 lpd)
-
-Adds a user-contributed driver for SFF (the file format for CAPI fax
-devices). (contrib.mak [1.14]: 2000/06/06 06:38:31 lpd)
-
-Notes that the vgalib driver only suppotrs 16-color modes. (devs.mak [1.27]:
-2000/06/06 15:28:01 lpd)
-
-Removes an obsolete file. (toolbin/package.tcl [1.2]: 2000/06/06 18:05:32
-lpd)
-
-Documents the fact that the IJG JPEG library header files must be available
-when compiling, even if SHARE_JPEG=1. (dvx-gcc.mak [1.3], jpeg.mak [1.2],
-unix-gcc.mak [1.6], unixansi.mak [1.4], unixtrad.mak [1.4]: 2000/06/07
-13:32:44 lpd)
-
-Finishes implementing the Process[DSC]Comment callout. (int.mak [1.25]:
-2000/06/28 20:17:00 lpd)
-
-Removes some third-party drivers with incompatible licenses.
-(contrib.mak [1.15]: 2000/07/02 22:11:31 lpd)
-
-Finishes working around the fact that Microsoft C, in defiance of multiple
-standards, by default doesn't define the O_ flags for 'open' in fcntl.h (or
-anywhere else). (lib.mak [1.25]: 2000/07/05 00:48:21 lpd)
-
-Changes the version numbering system back to sequential (not odd/even).
-Between numbered filesets, GS_PRODUCT will say "CVS PRE-RELEASE".
-(version.mak [1.16]: 2000/07/05 17:23:54 lpd)
-
-</pre><h2><a name="6.22 Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Fixes a couple of minor Windows NT compatibility problems in
-script files. (lib/ps2pdf.bat [1.3], lib/ps2pdfxx.bat [1.5]: 2000/05/05
-03:21:03 lpd)
- - Temporary files weren't created as private or exclusive.
-(gp_iwatc.c [1.3], gp_mswin.c [1.2], gp_os2.c [1.3]: 2000/05/19 17:52:51
-lpd)
- - gsdll_init didn't propagate an error return from
-gs_main_init_with_args, causing clients to think Ghostscript was initialized
-properly when it wasn't. (gsdll.c [1.2]: 2000/05/20 14:39:42 lpd)
- - The batch files for MS-DOS, MS Windows, and OS/2 referred to the
-executable by the name 'gs'. They now use environment variables GS
-(graphical) and GSC (console) for the executable names, defaulting to
-gswin32 and gswin32c respectively. (lib/bdftops.bat [1.2],
-lib/eps2eps.bat [1.3], lib/font2c.bat [1.2], lib/gsbj.bat [1.2],
-lib/gsdj.bat [1.2], lib/gsdj500.bat [1.2], lib/gslj.bat [1.2],
-lib/gslp.bat [1.2], lib/gsnd.bat [1.2], lib/gsndt.bat [1.2],
-lib/gssetgs.bat [1.1], lib/gst.bat [1.2], lib/gstt.bat [1.2],
-lib/lpgs.bat [1.2], lib/lpr2.bat [1.2], lib/pdf2ps.bat [1.3],
-lib/pdfopt.bat [1.2], lib/pftogsf.bat [1.2], lib/ps2ascii.bat [1.3],
-lib/ps2epsi.bat [1.3], lib/ps2pdfxx.bat [1.7], lib/ps2ps.bat [1.3]:
-2000/05/20 20:53:05 lpd)
- - The ps2pdf.bat script didn't set the default PDF level, so it
-normally produced PDF 1.3 rather than 1.2, which was contrary to the
-documentation and different from the Unix ps2pdf script.
-(lib/ps2pdf.bat [1.4]: 2000/06/08 02:33:09 lpd)
-
-Adds a user-contributed program for displaying the differences between two
-AFM (font metric) files. This has a dual AFPL/GPL copyright.
-(lib/afmdiff.awk [1.1]: 2000/04/29 20:51:41 lpd)
-
-Removes an out-of-date e-mail address. (lib/ps2pdfxx.bat [1.4]: 2000/05/04
-16:40:08 lpd)
-
-Adds -dSAFER to all the format conversion scripts in which the input is
-executed as PostScript or PDF code. (lib/eps2eps [1.2],
-lib/eps2eps.bat [1.2], lib/pdf2dsc [1.2], lib/pdf2ps [1.3],
-lib/pdf2ps.bat [1.2], lib/ps2ascii [1.2], lib/ps2ascii.bat [1.2],
-lib/ps2epsi [1.3], lib/ps2epsi.bat [1.2], lib/ps2pdfwr [1.5],
-lib/ps2pdfxx.bat [1.6], lib/ps2ps [1.2], lib/ps2ps.bat [1.2]: 2000/05/19
-06:38:25 lpd)
-
-Adds -dSAFER to one more script. (lib/pdfopt [1.2]: 2000/05/30 05:28:22 lpd)
-
-Refactors some PDF-writing code for use in a PDF decompressor.
-(lib/pdfwrite.ps [1.2]: 2000/06/27 17:06:32 lpd)
-
-Adds a number of (user-maintained) command files for OS/2.
-(lib/bdftops.cmd [1.1], lib/eps2eps.cmd [1.1], lib/font2c.cmd [1.1],
-lib/pdf2ps.cmd [1.1], lib/pf2afm.cmd [1.1], lib/ps2ascii.cmd [1.1],
-lib/ps2epsi.cmd [1.1], lib/ps2pdf.cmd [1.1], lib/ps2pdf12.cmd [1.1],
-lib/ps2pdf13.cmd [1.1], lib/ps2ps.cmd [1.1]: 2000/07/05 16:21:13 lpd)
-
-</pre><h2><a name="6.22 Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - The "compressed data" command encoding was wrong in one place in
-the documentation, and the code used the incorrect encoding.
-(gdevatx.c [1.2]: 2000/05/06 00:31:25 lpd)
- - If a file made no marks at all, ps2[e]ps produced bad output.
-(gdevps.c [1.8]: 2000/05/07 15:38:27 lpd)
- - Returning an image compression parameter dictionary didn't close
-an enumeration, failing to free a bookkeeping structure. (gdevpsdp.c [1.5]:
-2000/05/11 16:13:16 lpd)
- - The epswrite driver could produce output that used initclip, which
-is not allowed in EPS files. (gdevps.c [1.9]: 2000/05/20 06:36:30 lpd)
- - The change to implement stripped TIFF files broke non-TIFF fax
-output formats (faxg* drivers). Also factors plain-fax writing from TIFF
-writing. (gdevfax.c [1.1], gdevfax.h [1.1], gdevtfax.c [1.3],
-gdevtfax.h [1.3]: 2000/06/06 06:37:37 lpd)
- - In the X driver, resetting MaxBitmap didn't have the proper
-effect, and could cause a crash. (This is probably only a partial fix.)
-(gdevxini.c [1.4]: 2000/06/12 01:52:16 lpd)
- - Finishes fixing the handling of MaxBitmap in the X driver.
-(gdevxini.c [1.5]: 2000/06/12 02:45:25 lpd)
- - In the ATX drivers, the word count for compressed scan lines was
-written as 2 bytes rather than 1; the drivers wouldn't accept a page width
-greater than 2400 pixels. (gdevatx.c [1.4]: 2000/06/12 04:39:48 lpd)
- - Works around a bug in the MSVC++ 5.0 compiler that treats (int <<
-unsigned) as unsigned rather than int. (gdevcd8.c [1.2], gdevcdj.c [1.2],
-gdevdj9.c [1.3]: 2000/06/20 14:21:34 lpd)
- - Uncolored Patterns used with a gray color produced incorrect PDF
-output. (Bug introduced in 6.2x.) (gdevpsdu.c [1.5]: 2000/06/28 05:13:19
-lpd)
- - Moves an assignment to eliminate a bogus warning from some picky
-compilers about a variable supposedly clobbered by longjmp.
-(gdevpng.c [1.2]: 2000/07/03 21:10:33 lpd)
- - Two values were computed and not used. (gdevpx.c [1.3]: 2000/07/03
-21:30:41 lpd)
- - [e]pswrite didn't guarantee a maximum line length of 255
-characters, and didn't mark binary data with %%BeginData:/%%EndData.
-(gdevps.c [1.10]: 2000/07/04 18:34:38 lpd)
- - Fixes references to undeclared functions. (gdevdfax.c [1.2],
-gdevl256.c [1.2]: 2000/07/04 22:25:08 lpd)
- - X Windows platform fonts were broken when using multiple device
-instances (windows). (gdevxxf.c [1.4]: 2000/07/05 18:20:41 lpd)
-
-Improves the test for whether compressing an image is worthwhile.
-(gdevpsdi.c [1.11]: 2000/04/30 01:26:41 lpd)
-
-When printing color values derived from 8-bit fields, rounds the output to 3
-decimal places for compactness with no loss of precision. (gdevpsdu.c [1.4]:
-2000/04/30 19:24:28 lpd)
-
-Adds the first draft of a driver for the Practical Automation ATX-23, -24,
-and -38 label/ticket printers, developed under contract. This has a dual
-GPL/AFPL license. (gdevatx.c [1.1]: 2000/05/03 20:30:06 lpd)
-
-Updates the ATX printer drivers to handle the unprintable margins.
-(gdevatx.c [1.3]: 2000/05/19 05:48:30 lpd)
-
-Adds (more) user-contributed uniprint parameter files for the Epson Stylus
-Color 640. (lib/st640ih.upp [1.1], lib/st640ihg.upp [1.1],
-lib/st640p.upp [1.1], lib/st640pg.upp [1.1], lib/st640pl.upp [1.1],
-lib/st640plg.upp [1.1]: 2000/05/23 18:58:56 lpd)
-
-Adds support for 11x17 paper in PCL printers; changes the paper size tests
-so that paper size N+1 is selected if the requested height is at least 0.1"
-greater than the height of paper size N. (gdevpcl.c [1.2], gdevpcl.h [1.2]:
-2000/05/30 03:24:17 lpd)
-
-Adds comments about H-P's inconsistent use of different names and size codes
-for the 11x17 paper size. (gdevpcl.c [1.3], gdevpcl.h [1.3]: 2000/05/30
-20:45:45 lpd)
-
-Adds the ability to write multi-strip monochrome TIFF files, controlled by a
-new MaxStripSize parameter for the monochrome TIFF drivers.
-(gdevtfax.c [1.2], gdevtfax.h [1.2], gdevtfnx.c [1.2], gdevtifs.c [1.2],
-gdevtifs.h [1.2]: 2000/06/05 05:41:55 lpd)
-
-Adds a user-contributed driver for SFF (the file format for CAPI fax
-devices). (gdevcfax.c [1.1]: 2000/06/06 06:38:31 lpd)
-
-Notes that the vgalib driver only suppotrs 16-color modes.
-(gdevvglb.c [1.2]: 2000/06/06 15:28:01 lpd)
-
-Adds some code contributed by Leon Bottou <leonb@research.att.com> that
-makes the X driver prefer TrueColor visuals. We aren't sure of the
-ramifications of this.... (gdevxini.c [1.6]: 2000/06/12 04:41:15 lpd)
-
-Updates the ATX driver(s) to enforce maximum page width and minimum page
-length. (gdevatx.c [1.5]: 2000/06/22 14:55:53 lpd)
-
-Removes some third-party drivers with incompatible licenses.
-(gdevcd8.c [1.3], gdevdj9.c [1.4], gdevhl12.c [1.2]: 2000/07/02 22:11:31
-lpd)
-
-Per user request, changes the license on the basic monochrome
-DeskJet/LaserJet drivers from AFPL to dual AFPL/GPL. (gdevdjet.c [1.5],
-gdevdljm.c [1.3], gdevdljm.h [1.3]: 2000/07/05 17:36:14 lpd)
-
-</pre><h2><a name="6.22 PDF writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - A "0 ||" was omitted, potentially causing some kinds of errors
-that never happen in practice to be overlooked. (gdevpdfi.c [1.17]:
-2000/05/02 01:55:10 lpd)
- - Fixes minor syntactic incompatibilities with "traditional C"
-compilers. (gdevpdfg.c [1.5]: 2000/05/11 16:14:51 lpd)
- - The PDF writer could still produce coordinates for paths that
-exceeded Acrobat Reader's user-coordinate limit of +/- 32K.
-(gdevpdfd.c [1.9]: 2000/05/23 21:05:00 lpd)
- - In PDF 1.2 output, several synthesized Type 3 fonts could have the
-same name, producing errors and/or incorrect output. (bug introduced since
-6.01) (gdevpdf.c [1.17], gdevpdft.c [1.11], gdevpdfx.h [1.18]: 2000/05/24
-20:39:30 lpd)
- - The FontDescriptor flags for non-embedded alphabetic fonts with
-non-Standard encodings incorrectly identified the font as a small-caps font.
-(gdevpdff.c [1.6]: 2000/05/30 23:04:23 lpd)
- - Works around the fact that Acrobat Reader won't accept /MMType1
-fonts, but will accept MM Type 1 instances if they're tagged as /Type1
-rather than /MMType1. (gdevpdft.c [1.12], gdevpdfw.c [1.4]: 2000/06/12
-18:13:51 lpd)
- - Embedded Type 1 (but not Type 2 / 1C) fonts were written without
-eexec encryption. We can't figure out how this happened, because the PDF
-spec requires eexec encryption and the correct code was commented out; we
-suppose this was a debugging or testing modification that got left in. (bug
-introduced since 6.01) (gdevpdfe.c [1.2]: 2000/06/12 18:15:20 lpd)
- - Text in Type 3 synthesized fonts was often positioned incorrectly,
-usually too far to the left. (bug introduced since 6.01) (gdevpdft.c [1.13]:
-2000/06/13 16:34:42 lpd)
- - Images that ended prematurely still (again?) weren't written
-correctly. (gdevpdfj.c [1.4]: 2000/06/27 06:32:03 lpd)
-
-Implements ImageType 3 images in the PDF writer. (gdevpdfb.c [1.1],
-gdevpdfg.h [1.6], gdevpdfi.c [1.16], gdevpdfj.c [1.3], gdevpdfx.h [1.16]:
-2000/04/30 06:21:58 lpd)
-
-Implements PatternType 2 patterns and shfill in the PDF writer.
-(gdevpdfc.c [1.11], gdevpdfg.h [1.7], gdevpdfo.c [1.3], gdevpdfo.h [1.3],
-gdevpdfv.c [1.1], gdevpdfx.h [1.17]: 2000/05/02 07:14:58 lpd)
-
-</pre><h2><a name="6.22 Interpreter (PDF)"></a>Interpreter (PDF)</h2><pre>
-
-Fixes problems:
- - PatternType 2 (shaded) Patterns caused errors.
-(lib/pdf_draw.ps [1.14]: 2000/05/02 07:03:09 lpd)
- - -q (-dQUIET) didn't suppress all warnings from the PDF
-interpreter. (lib/pdf_base.ps [1.8]: 2000/05/07 15:51:18 lpd)
- - FunctionType 3 functions with indirect /Bounds or /Encode entries
-caused a typecheck error. (lib/pdf_draw.ps [1.15]: 2000/06/07 19:08:00 lpd)
- - If the TR element of an ExtGState was an array of Functions (for
-setcolortransfer) rather a single Function (for settransfer), an error
-occurred. (fix from Artifex) (lib/pdf_draw.ps [1.16]: 2000/06/12 00:40:45
-lpd)
- - The code for keeping the Install procedure from getting more and
-more deeply nested didn't actually work, and also caused pages with a
-non-zero MediaBox offset to be translated incorrectly.
-(lib/pdf_main.ps [1.8]: 2000/06/12 19:17:03 lpd)
- - PDF files with embedded TrueType fonts didn't map characters to
-glyph indices correctly (i.e., using the same algorithm as Acrobat Reader).
-(lib/pdf_font.ps [1.8]: 2000/06/21 02:15:01 lpd)
- - The built-in Identity CMaps had an incorrect entry count for
-begincodespacerange and begincidrange; these CMaps, and all Type 0 fonts,
-were constructed in a way that was incompatible with some old Adobe font
-loading software. (lib/pdf_font.ps [1.9]: 2000/06/28 01:36:30 lpd)
- - If PDF interpretation was included in the build, the very first
-line of a non-PDF file wouldn't be processed (if applicable) as a comment.
-(lib/pdf_main.ps [1.9]: 2000/06/29 15:55:13 lpd)
-
-</pre><h2><a name="6.22 Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - localfork didn't properly initialize userdict in the new context.
-(lib/gs_dps.ps [1.2]: 2000/05/01 07:20:37 lpd)
- - A null Pattern color caused an error. (zcolor2.c [1.2]: 2000/05/01
-15:15:06 lpd)
- - Fixes minor syntactic incompatibilities with "traditional C"
-compilers. (zbfont.c [1.5], zfcid0.c [1.3]: 2000/05/11 16:14:51 lpd)
- - The 'monitor' operator was broken (probably had never been
-tried!). (zcontext.c [1.2]: 2000/05/15 19:14:25 lpd)
- - -dSTRICT caused an error, /undefined in SIZES.
-(lib/gs_statd.ps [1.3]: 2000/05/17 19:17:40 lpd)
- - CFF CID fonts in which the FDSelect array occurred before the
-CharStrings caused an error. (lib/gs_cff.ps [1.5]: 2000/05/17 20:39:20 lpd)
- - dict_matrix3_param didn't work correctly on platforms where the
-compiler aligned structures to a boundary larger than sizeof(float), causing
-incorrect output or arithmetic exceptions for CIE color spaces.
-(zcie.c [1.2]: 2000/05/18 19:02:25 lpd)
- - Flushing or closing a procedure-based output stream still wasn't
-implemented correctly (it could cause an endless loop). (zfproc.c [1.3]:
-2000/05/19 19:35:01 lpd)
- - 'monitor' left its operand on the stack. (zcontext.c [1.3]:
-2000/05/22 21:15:23 lpd)
- - The definitions of user names weren't properly associated with
-local VM (they were stored in a static variable). (btoken.h [1.2],
-iref.h [1.2], iscanbin.c [1.3], zbseq.c [1.2], zdps.c [1.2]: 2000/05/26
-02:27:58 lpd)
- - Invoking an image operator with an empty string data source caused
-an infinite loop. (zimage.c [1.4]: 2000/05/30 03:43:19 lpd)
- - The fix for associating the user name array with local VM didn't
-create the user name table properly for new contexts with their own local
-VM. The user name array is now created lazily. (btoken.h [1.3],
-iscanbin.c [1.4], zbseq.c [1.3], zdps.c [1.3]: 2000/05/30 04:38:26 lpd)
- - As a result of the fix removing the incorrect same-local-VM check
-in context_state_load, userparams wasn't updated properly when switching
-contexts. (icontext.c [1.3]: 2000/05/30 20:40:17 lpd)
- - MAX_HALF_INTVAL was defined incorrectly, causing the mul operator
-to run slower than necessary when multiplying two small integers.
-(zarith.c [1.2]: 2000/06/04 17:00:29 lpd)
- - Shadings with an array of Functions caused a rangecheck or
-typecheck error. (zshade.c [1.2]: 2000/06/04 18:26:17 lpd)
- - If the new value of a device parameter was an array with some
-integers and some reals, and the first element was a real, a typecheck error
-would occur. (iparam.c [1.4]: 2000/06/19 22:22:51 lpd)
- - PDF files with embedded TrueType fonts didn't map characters to
-glyph indices correctly (i.e., using the same algorithm as Acrobat Reader).
-(lib/gs_agl.ps [1.1], lib/gs_ttf.ps [1.5]: 2000/06/21 02:15:01 lpd)
- - The dictionary used to hold Encodings wasn't large enough.
-(lib/gs_init.ps [1.10]: 2000/06/27 17:55:05 lpd)
- - The change in parameter type checking required for the new
-Process[DSC]Comment user parameters broke type checking for system
-parameters. (lib/gs_lev2.ps [1.4]: 2000/06/27 17:56:04 lpd)
- - Calling out to process a comment during scanning left an extra
-element on the operand stack if the comment appeared within { }.
-(ztoken.c [1.3]: 2000/06/28 00:47:05 lpd)
- - In some cases, two successive DSC comments produced a syntaxerror.
-(ztoken.c [1.4]: 2000/06/28 05:14:17 lpd)
- - The code for registering compiled fonts was sensitive to its
-position in the order of loading the initialization files (caused an error
-if loaded too early). (lib/gs_ccfnt.ps [1.3]: 2000/06/29 23:31:14 lpd)
- - [gs_]currentgray didn't return the correct value if the current
-color space was a DeviceN space using the alternate space. (zcolor.c [1.3],
-zcolor1.c [1.2]: 2000/07/03 15:28:26 lpd)
-
-Adds predefined pdfwrite settings similar to the three standard settings in
-Adobe Acrobat Distiller 4, plus a "default" setting, with
--dPDFSETTINGS=/settingname. (lib/gs_pdfwr.ps [1.4]: 2000/04/29 02:29:21 lpd)
-
-Increments the version number to 6.23. From now on, we use odd numbers
-during development, even numbers for released filesets.
-(lib/gs_init.ps [1.8]: 2000/04/29 16:49:43 lpd)
-
-Changes .buildfont1 to accept Type 1 fonts with LanguageGroup other than 0
-or 1. This is contrary to the spec, but we've seen a few fonts with other
-values. (zfont1.c [1.5]: 2000/05/06 08:19:37 lpd)
-
-Cleans up code and comments slightly. (lib/gs_dps.ps [1.3]: 2000/05/30
-20:35:56 lpd)
-
-Adds user parameters ProcessComment and ProcessDSCComment. If not null,
-these procedures are called with the file and the comment line whenever the
-scanner detects a comment (or non-DSC comment) or DSC comment. NOTE: the
-interpreter is currently patched so that ProcessComment is never called.
-(interp.c [1.4], iscan.c [1.2], iscan.h [1.2], lib/gs_init.ps [1.9],
-lib/gs_lev2.ps [1.3], ztoken.c [1.2], ztype.c [1.2]: 2000/06/27 00:53:38
-lpd)
-
-Finishes implementing the Process[DSC]Comment callout. (icontext.c [1.4],
-icstate.h [1.3], interp.c [1.5], iscan.h [1.3], itoken.h [1.1],
-lib/gs_init.ps [1.11], ztoken.c [1.5], zusparam.c [1.2]: 2000/06/28 20:17:00
-lpd)
-
-Changes the name of the unread operator to .unread, retaining unread as a
-synonym for backward compatibility. (lib/gs_init.ps [1.12], zfileio.c [1.7]:
-2000/06/29 15:58:24 lpd)
-
-Adds a findprotodevice "operator", to find a device prototype by name.
-(lib/gs_init.ps [1.13]: 2000/07/05 04:49:11 lpd)
-
-Changes the version numbering system back to sequential (not odd/even).
-Between numbered filesets, GS_PRODUCT will say "CVS PRE-RELEASE".
-(lib/gs_init.ps [1.14]: 2000/07/05 17:23:54 lpd)
-
-</pre><h2><a name="6.22 Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - file_limit wasn't initialized properly in some cases.
-(sfxfd.c [1.4], sfxstdio.c [1.3]: 2000/05/02 02:06:41 lpd)
- - smd5.c didn't compile properly with "traditional C" compilers.
-(smd5.c [1.2]: 2000/05/19 06:08:01 lpd)
- - The workaround for Microsoft C's omission of O_APPEND et al caused
-warnings or errors with other compilers. (stat_.h [1.3]: 2000/07/03 21:07:05
-lpd)
-
-Works around the fact that Microsoft Visual C++ (only) doesn't define the O_
-flags for the `open' library call. (stat_.h [1.2]: 2000/05/31 20:34:43 lpd)
-
-Finishes working around the fact that Microsoft C, in defiance of multiple
-standards, by default doesn't define the O_ flags for 'open' in fcntl.h (or
-anywhere else). (stat_.h [1.4]: 2000/07/05 00:48:21 lpd)
-
-</pre><h2><a name="6.22 Library"></a>Library</h2><pre>
-
-Fixes problems:
- - A null Pattern color caused an error. (gspcolor.c [1.2]:
-2000/05/01 15:15:07 lpd)
- - A procedure name exceeded VMS's 31-character limit.
-(gsparam.h [1.6]: 2000/05/02 01:47:50 lpd)
- - If the DataSource of a shading was a reusable stream, the stream
-wasn't reset before rendering the shading. (gxshade.c [1.2]: 2000/05/02
-07:05:10 lpd)
- - shfill didn't go through the device fill_path procedure,
-preventing it from being written out as a high-level PostScript or PDF
-construct. (gscolor3.c [1.2]: 2000/05/02 07:06:23 lpd)
- - Once again, corrects an incorrect dependency list.
-(gscolor3.c [1.3]: 2000/05/02 07:14:11 lpd)
- - The code for adding elements to small-string free lists was wrong,
-possibly causing an endless loop. (gsnogc.c [1.3]: 2000/05/04 01:29:53 lpd)
- - Fixes minor syntactic incompatibilities with "traditional C"
-compilers. (gsfunc4.c [1.2], gstype42.c [1.5]: 2000/05/11 16:14:51 lpd)
- - CIEBasedDEF[G] color spaces computed incorrect results or caused
-invalid memory accesses, especially if DecodeDEF[G] is not the identity
-function. (This bug had probably been there since these color spaces were
-first implemented, unnoticed because DecodeDEF[G] is almost always the
-identity.) (gscie.c [1.2], gsciemap.c [1.2], gxctable.c [1.2]: 2000/05/15
-19:58:38 lpd)
- - Temporary files weren't created as private or exclusive.
-(close_.h [1.1], gp_unifs.c [1.2], gpmisc.c [1.1], gpmisc.h [1.1]:
-2000/05/19 17:52:51 lpd)
- - OutputFile values starting with a %d format string caused an
-error. (bug introduced in 5.85) (gsdevice.c [1.4]: 2000/05/20 06:58:11 lpd)
- - In rare cases, an overflow could occur in the filling loop,
-producing distorted output. (Fix from Artifex Software.) (gxfill.c [1.3]:
-2000/05/23 05:46:52 lpd)
- - When writing PDF or PostScript, stroked rectangles could sometimes
-be omitted from the output. (gdevvec.c [1.3]: 2000/05/24 18:48:14 lpd)
- - In PDF output, the conversion of Type 1 to Type 2 CharStrings
-didn't adjust the X offset of the accent for 'seac', causing accents to be
-displaced to the right. (gdevpsfx.c [1.3]: 2000/05/24 23:20:43 lpd)
- - The definitions of user names weren't properly associated with
-local VM (they were stored in a static variable). (gsalloc.c [1.3],
-gxalloc.h [1.2]: 2000/05/26 02:27:58 lpd)
- - The change for local user names didn't update the structure
-descriptor for gs_ref_memory_t. (gsalloc.c [1.4], gxalloc.h [1.3]:
-2000/05/26 02:33:38 lpd)
- - The fix for 'seac' when converting Type 1 to Type 2 CharStrings
-wasn't quite complete. (gdevpsfx.c [1.4]: 2000/05/26 20:48:37 lpd)
- - If [eo]clip set a rectangular region, clippath would return the
-rounded clipping box, not the correct clipping path. (gxcpath.c [1.2]:
-2000/05/31 22:20:04 lpd)
- - ShadingType 2 shadings could cause an invalid memory access.
-(gsfunc3.c [1.3]: 2000/06/04 18:25:33 lpd)
- - Printer drivers that didn't implement print_page_copies didn't
-print multiple copies of the same page on separate files if the OutputFile
-name included %d, and some drivers (such as the TIFF drivers) produced
-invalid output. (gdevprn.c [1.4]: 2000/06/05 02:04:26 lpd)
- - 32-bit sample values in shading data didn't work, because some
-CPUs execute (1 << 32) as (1 << 0). (gxshade.c [1.3]: 2000/06/07 19:07:17
-lpd)
- - Type 1 fonts without eexec encryption still included the 4 eexec
-padding bytes. (bug probably introduced since 6.0) (gdevpsf1.c [1.4]:
-2000/06/12 17:38:48 lpd)
- - Axial shadings with a non-orthogonal CTM could fail to fill the
-required region. (fix from Artifex) (gxshade1.c [1.4]: 2000/06/12 21:45:19
-lpd)
- - When allocator debugging was enabled (-Z@), 'restore' didn't clear
-vacated space in inner chunks. (gsalloc.c [1.5]: 2000/06/13 07:04:18 lpd)
- - the row buffers for images weren't allocated with a stable
-allocator, possibly causing data corruption or invalid accesses if a
-PostScript program invoked save/restore within the data-reading procedure
-for an image. (gsimage.c [1.2]: 2000/06/13 07:05:21 lpd)
- - Rendering TrueType fonts didn't adjust the flatness to ensure
-accurate results. (gstype42.c [1.6], gxchrout.c [1.1], gxchrout.h [1.1],
-gxtype1.c [1.5]: 2000/06/20 15:46:53 lpd)
- - Calling get_params with a static (read-only) device prototype
-could cause a memory access error. (gsdparam.c [1.3]: 2000/06/22 14:05:49
-lpd)
- - [gs_]currentgray didn't return the correct value if the current
-color space was a DeviceN space using the alternate space. (gscolor.c [1.2],
-gscolor.h [1.2], gscolor1.c [1.2]: 2000/07/03 15:28:26 lpd)
- - Some picky compilers complained about "integer constant is
-unsigned in ANSI C, signed with -traditional". (md5.c [1.2]: 2000/07/03
-21:55:18 lpd)
- - If TMPDIR wasn't defined, TEMP would be ignored. (bug introduced
-in 6.23) (gpmisc.c [1.4]: 2000/07/04 19:54:00 lpd)
- - Watcom C requires the non-standard O_BINARY mode flag when opening
-(with open) a file that will later be opened in binary mode with fdopen.
-(gpmisc.c [1.6]: 2000/07/05 17:08:27 lpd)
-
-Restructures the code for handling ImageType 3 images, for the benefit of
-the PDF writer. (gximage3.c [1.3], gximage3.h [1.1]: 2000/04/30 03:08:15
-lpd)
-
-Implements ImageType 3 images in the PDF writer. (gximage3.c [1.4],
-gximage3.h [1.2]: 2000/04/30 06:21:58 lpd)
-
-Creates a procs structure for shadings, moving the fill_rectangle procedure
-into it, in anticipation of adding a get_params procedure. (gsshade.c [1.2],
-gsshade.h [1.2], gxshade.h [1.2]: 2000/04/30 19:37:37 lpd)
-
-Implements PatternType 2 patterns and shfill in the PDF writer.
-(gsptype2.c [1.2]: 2000/05/02 07:14:58 lpd)
-
-Changes gdev_prn_file_is_new from a macro to a procedure. (gdevprn.c [1.3],
-gdevprn.h [1.4]: 2000/05/20 20:25:48 lpd)
-
-Works around the fact that Microsoft Visual C++ defines S_IREAD and S_IWRITE
-but not their newer equivalents S_IRUSR and S_IWUSR. (gpmisc.c [1.2]:
-2000/05/24 18:49:54 lpd)
-
-Changes some assignments to work around over-zealous compiler warnings.
-(gxtype1.c [1.4]: 2000/05/24 23:52:58 lpd)
-
-Works around the fact that Microsoft Visual C++ (only) doesn't define the O_
-flags for the `open' library call. (gpmisc.c [1.3]: 2000/05/31 20:34:43 lpd)
-
-Improves some comments in A_fill_stripe. (gxshade1.c [1.3]: 2000/06/04
-20:58:23 lpd)
-
-Finishes working around the fact that Microsoft C, in defiance of multiple
-standards, by default doesn't define the O_ flags for 'open' in fcntl.h (or
-anywhere else). (fcntl_.h [1.1], gpmisc.c [1.5]: 2000/07/05 00:48:21 lpd)
-
-Adds O_BINARY to the Microsoft compatibility fcntl.h patch. (fcntl_.h [1.2]:
-2000/07/05 17:21:43 lpd)
-
-Changes the version numbering system back to sequential (not odd/even).
-Between numbered filesets, GS_PRODUCT will say "CVS PRE-RELEASE".
-(gscdef.c [1.3]: 2000/07/05 17:23:54 lpd)
-
-Updates GS_PRODUCT for making a fileset. (gscdef.c [1.4]: 2000/07/06
-00:01:03 lpd)
-
-<hr>
-
-<h1><a name="Version6.21"></a>Version 6.21 (2000-04-28)</h1>
-
-<p>
-This fileset includes more PDF writer enhancements: conversion of embedded
-Type 1 fonts to Type 1C (smaller), handling of more color spaces for images,
-ImageType 4 images, compression of mask images, support for (tiled) Pattern
-colors, more graphics state distiller parameters, recording of graphics
-state functions in the output. It also greatly improves the space usage and
-loading time for CMaps.
-
-<p>
-All problems registered on SourceForge numbered 104890 or lower are closed,
-except for the following: 101549, 101814, 101905, 101955, 102146, 102735,
-103528, 104118, 104375.
-
-<p>
-The following projects are in a partially completed state in the PDF writer:
-
-<ul>
-
-<li>CID-keyed fonts (gdevpdf[eftw].c) -- barely started.
-
-<li>ImageType 3 images (gdevpdf[ij].c) -- started.
-
-</ul>
-
-<pre>
-
-<h2><a name="6.21_Incompatible_changes"></a>Incompatible changes</h2>
-
-(Drivers)
- - The downsampling filters now require WidthIn and HeightIn,
-replacing Columns.
- - The gp_ procedures for managing screen swapping between console
-and graphics are removed.
- - Any driver that processes the pdfmark pseudo-parameter must now
-also return null for the "value" of the pdfmark parameter when (and only
-when) specifically requested.
-(PDF writer)
- - The last argument of pdf_alloc_font has changed.
- - pdf_set_color is renamed pdf_set_pure_color.
- - When producing PDF 1.3 output, the base 14 fonts are now
-candidates for embedding just like any other fonts.
-(Interpreter)
- - The .fontproperties procedure in gs_fonts.ps now takes an
-additional argument.
- - The interpreter must no longer reference stdin/out/err directly.
-(Library)
- - The internal representation of CMaps is changed completely, and
-has several new required members.
- - gs_cmap is renamed gs_cmap_t; gx_code_map is renamed
-gx_code_map_t.
- - Clients creating CMaps must call gs_cmap_init to initialize them.
- - The library must no longer reference stdin/out/err directly.
-
-
-<h2><a name="6.21 Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - The PDF writer could get an ioerror when downsampling images whose
-size wasn't an exact multiple of the downsampling factor.
-(doc/News.htm [1.31]: 2000/04/13 16:44:59 lpd)
- - When processing a PDF file, the font substitution heuristic based
-on the FontName sometimes overrode the Flags information in the
-FontDescriptor. (doc/News.htm [1.34]: 2000/04/20 06:36:02 lpd)
- - When pdfwrite was producing PDF 1.3 output, the base 14 fonts were
-never embedded, rather than being handled like all other fonts.
-(doc/News.htm [1.37]: 2000/04/20 23:49:40 lpd)
- - The URL for the Arphic free Chinese fonts had become incorrect.
-(doc/Fonts.htm [1.3]: 2000/04/27 13:44:52 lpd)
- - Fixes a few typos, and adds GS_FONTPATH to the list of environment
-variables to be unset for a pristine test run. (doc/Release.htm [1.10]:
-2000/04/28 22:08:41 lpd)
-
-Adds projects related to SVG and to pswrite image compression.
-(doc/Projects.htm [1.4]: 2000/04/07 18:39:12 lpd)
-
-Makes the ps2pdf scripts replace a .eps extension with .pdf, as they do with
-.ps. (doc/Ps2pdf.htm [1.7], man/ps2pdf.1 [1.5], man/ps2pdfwr.1 [1.2]:
-2000/04/07 19:28:14 lpd)
-
-Completely redesigns the representation of CMaps, to reduce space
-requirements and make comparing them more reasonable, changing gs_cmap to
-gs_cmap_t and gx_code_map to gx_code_map_t. (****** NOTE ****** The
-PostScript code currently only handles a few well-behaved CMap structures.)
-(doc/News.htm [1.27]: 2000/04/08 03:54:38 lpd)
-
-Documents the need to set SYNC=nosync on NextStep / OpenStep systems.
-(doc/Make.htm [1.10]: 2000/04/10 04:45:37 lpd)
-
-Overhauls font embedding in the PDF writer: splits off the code into a new
-file (gdevpdfe.c), writes embedded Type 1 fonts as Type 1C (CFF Type 2), and
-adds a little bit of code for future support of Type 0 and CID-keyed fonts.
-(doc/News.htm [1.28]: 2000/04/10 07:48:37 lpd)
-
-Documents the fact that building on NeXTSTEP 3.3 systems requires removing
--Wmissing-declarations from GCFLAGS. (doc/Make.htm [1.11]: 2000/04/11
-14:06:54 lpd)
-
-Enhances pdf2ps to allow defaulting the output file name.
-(man/pdf2ps.1 [1.2]: 2000/04/11 14:23:24 lpd)
-
-Factors out code for writing functions and for adding filter-related entries
-to a stream dictionary; implements the DefaultRenderingIntent distiller
-parameter. (doc/Ps2pdf.htm [1.8]: 2000/04/11 16:06:57 lpd)
-
-Implements additional distiller parameters: PreserveHalftoneInfo,
-PreserveOverprintSetting, TransferFunctionInfo (except for Apply vs.
-Remove), UCRandBGInfo. Splits off graphics state management into separate
-files. Implements the remaining graphics state parameters (halftone,
-transfer function, black generation, undercolor removal, halftone phase,
-smoothness, overprint, stroke adjustment) ****** EXCEPT FOR IMAGES ******.
-In anticipation of handling more general colors, renames pdf_set_color as
-pdf_set_pure_color, and adds pdf_set_drawing_color. (doc/News.htm [1.29]:
-2000/04/11 18:31:32 lpd)
-
-Updates documentation to match recent changes in the pdfwrite driver.
-(doc/Ps2pdf.htm [1.9]: 2000/04/11 22:56:17 lpd)
-
-Makes the second argument of the pfbtopfa script optional, so 'pfbtopfa
-dir/x.pfb' is equivalent to 'pfbtopfa dir/x.pfb x.pfa'.
-(man/pfbtopfa.1 [1.2]: 2000/04/12 17:41:41 lpd)
-
-In pdfwrite, rewrites the image writing code to use Cos objects rather than
-direct printing, and splits off the creation of image dictionaries into a
-new file; adds support for tiling with uncolored Patterns; implements
-converting ImageType 4 images to their PDF 1.3 counterpart; starts to do the
-same for ImageType 3. This code is "in progress" and likely to have problems
-for a while. (doc/News.htm [1.30]: 2000/04/12 18:44:35 lpd)
-
-Implements pdfwrite compression for mask images, using the same parameters
-as for monochrome images. (doc/News.htm [1.32]: 2000/04/13 18:40:23 lpd)
-
-Adds user-contributed uniprint parameter files for the Canon BJC-8200,
-including an addition for the Red Hat printer data base.
-(doc/Devices.htm [1.4]: 2000/04/14 03:59:57 lpd)
-
-Slightly updates the user-contributed documentation on the new BJC-8200
-uniprint parameters. (doc/Devices.htm [1.5]: 2000/04/15 00:20:54 lpd)
-
-Completes code for reading and writing CMaps. (doc/News.htm [1.33]:
-2000/04/16 03:05:29 lpd)
-
-Clarifies some details of posting releases on SourceForge.
-(doc/Release.htm [1.9]: 2000/04/17 22:59:24 lpd)
-
-Converts the ps2epsi documentation to HTML. (doc/Ps2epsi.htm [1.1],
-doc/Readme.htm [1.6], doc/ps2epsi.txt [1.2]: 2000/04/18 17:59:13 lpd)
-
-Adds a couple of graphics library optimization projects.
-(doc/Projects.htm [1.5]: 2000/04/19 04:05:11 lpd)
-
-Adds a project for creating an OutputDevice resource instance for each
-device. (doc/Projects.htm [1.6]: 2000/04/19 21:37:47 lpd)
-
-Checks in the accumulated change log. (doc/Changes.htm [1.10]: 2000/04/20
-07:24:22 lpd)
-
-Removes the gp_ procedures for managing screen swapping between console and
-graphics, which haven't been used for a long time and are no longer useful.
-(doc/News.htm [1.35]: 2000/04/20 22:47:35 lpd)
-
-Removes all remaining direct references to stdin/out/err from the library,
-interpreter, and non-contributed drivers; moves the ersatz definitions of
-stdin/out/err to a new header file. (doc/News.htm [1.36]: 2000/04/20
-23:30:22 lpd)
-
-Reduces the startup time for displaying PDF files, by skipping the creation
-of pdfmarks for annotations and outlines when the output device doesn't
-process pdfmarks. (doc/News.htm [1.38]: 2000/04/21 16:58:28 lpd)
-
-Notes that even if SHARE_JPEG=1, the IJG library sources are required.
-(doc/Make.htm [1.12]: 2000/04/27 07:39:05 lpd)
-
-Documents the new -dPrinted[=true/false] switch for PDF files.
-(doc/Use.htm [1.3]: 2000/04/27 08:17:05 lpd)
-
-Adds a MD5Encode filter, which computes the 16-byte MD5 digest of the input.
-No output is produced until the filter is closed. (doc/Language.htm [1.2]:
-2000/04/27 14:39:57 lpd)
-
-Updates the description of the project to produce higher-level PCL output.
-(doc/Projects.htm [1.7]: 2000/04/28 10:42:02 lpd)
-
-Adds a sample file containing a wide variety of PDF annotations; updates
-documentation for this and some other overlooked files.
-(doc/Psfiles.htm [1.4]: 2000/04/28 10:51:02 lpd)
-
-Notes that the uniprint dnj750c.upp parameters are also good for the 450C.
-(doc/Devices.htm [1.6]: 2000/04/28 14:27:02 lpd)
-
-Updates release dates. (man/pdf2ps.1 [1.3], man/ps2ps.1 [1.5]: 2000/04/28
-18:29:32 lpd)
-
-Updates version numbers and dates for the 6.21 fileset.
-(doc/Bug-form.htm [1.6], doc/Devices.htm [1.7], doc/Fonts.htm [1.4],
-doc/Language.htm [1.3], doc/Make.htm [1.13], doc/Projects.htm [1.8],
-doc/Ps2epsi.htm [1.2], doc/Psfiles.htm [1.5], doc/Readme.htm [1.7],
-doc/Use.htm [1.4]: 2000/04/28 22:06:25 lpd)
-
-Updates the news for the 6.21 fileset. (doc/News.htm [1.39]: 2000/04/28
-22:18:16 lpd)
-
-</pre><h2><a name="6.21 Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - Some makefile macros were used before being defined.
-(devs.mak [1.9], lib.mak [1.9]: 2000/04/07 16:02:03 lpd)
- - `make install-data' didn't install lib/gs_frsd.ps or
-lib/pdfopt.ps. (unixinst.mak [1.7]: 2000/04/07 19:17:48 lpd)
- - gsmake would get into a loop if the makefile was not a symbolic
-link; `gsmake check' didn't accept a makefile name on the command line.
-(toolbin/gsmake.tcl [1.2]: 2000/04/07 19:37:21 lpd)
- - `makemaster' referred to an undefined variable. (How could it ever
-have worked?) (toolbin/makeset.tcl [1.3]: 2000/04/07 19:39:27 lpd)
- - A dependency wasn't updated when moving the gdevpsf* rules from
-devs.mak to lib.mak. (lib.mak [1.10]: 2000/04/07 19:40:25 lpd)
- - The dependencies in the makefile weren't updated for the pdfwrite
-font embedding overhaul. (devs.mak [1.11]: 2000/04/10 18:57:33 lpd)
- - Once again, the dependencies hadn't been updated. (int.mak [1.17]:
-2000/04/11 15:59:42 lpd)
- - Setting pdfwrite parameters for a DCTEncode filter could cause a
-crash (memory fault). (devs.mak [1.16]: 2000/04/13 01:53:07 lpd)
- - `make install' didn't install all the documentation files.
-(unixinst.mak [1.9]: 2000/04/14 04:06:13 lpd)
- - The Color LaserJet 5 drivers were incorrectly identified as
-"supported" rather than "contributed". (contrib.mak [1.7], devs.mak [1.17]:
-2000/04/20 17:12:54 lpd)
- - PDF images with a bitmap Mask caused errors or produced incorrect
-output. (int.mak [1.20]: 2000/04/24 00:59:04 lpd)
-
-Completely redesigns the representation of CMaps, to reduce space
-requirements and make comparing them more reasonable, changing gs_cmap to
-gs_cmap_t and gx_code_map to gx_code_map_t. (****** NOTE ****** The
-PostScript code currently only handles a few well-behaved CMap structures.)
-(int.mak [1.16]: 2000/04/08 03:54:38 lpd)
-
-Updates version #s to 6.21. (We should have done this earlier.)
-(version.mak [1.12]: 2000/04/10 04:46:36 lpd)
-
-Overhauls font embedding in the PDF writer: splits off the code into a new
-file (gdevpdfe.c), writes embedded Type 1 fonts as Type 1C (CFF Type 2), and
-adds a little bit of code for future support of Type 0 and CID-keyed fonts.
-(devs.mak [1.10]: 2000/04/10 07:48:37 lpd)
-
-Adds Function-based tint_transform procedures for Separation and DeviceN
-color spaces. (lib.mak [1.11]: 2000/04/10 19:02:19 lpd)
-
-Factors out code for writing functions and for adding filter-related entries
-to a stream dictionary; implements the DefaultRenderingIntent distiller
-parameter. (devs.mak [1.12]: 2000/04/11 16:06:57 lpd)
-
-Implements additional distiller parameters: PreserveHalftoneInfo,
-PreserveOverprintSetting, TransferFunctionInfo (except for Apply vs.
-Remove), UCRandBGInfo. Splits off graphics state management into separate
-files. Implements the remaining graphics state parameters (halftone,
-transfer function, black generation, undercolor removal, halftone phase,
-smoothness, overprint, stroke adjustment) ****** EXCEPT FOR IMAGES ******.
-In anticipation of handling more general colors, renames pdf_set_color as
-pdf_set_pure_color, and adds pdf_set_drawing_color. (devs.mak [1.13]:
-2000/04/11 18:31:32 lpd)
-
-Splits off creation and writing of color spaces, and writing color values,
-into a separate file. Adds support for (Function-based) Separation and
-DeviceN color spaces, general Pattern color spaces, and procedure-based
-Indexed color spaces. Adds some code to support Pattern colors, but stubs it
-out because it depends on changes in the image writing code that haven't
-been integrated yet. In fact, most of the new code isn't called yet, either.
-(devs.mak [1.14]: 2000/04/11 19:10:13 lpd)
-
-In pdfwrite, rewrites the image writing code to use Cos objects rather than
-direct printing, and splits off the creation of image dictionaries into a
-new file; adds support for tiling with uncolored Patterns; implements
-converting ImageType 4 images to their PDF 1.3 counterpart; starts to do the
-same for ImageType 3. This code is "in progress" and likely to have problems
-for a while. (devs.mak [1.15]: 2000/04/12 18:44:35 lpd)
-
-Adds user-contributed uniprint parameter files for the Canon BJC-8200,
-including an addition for the Red Hat printer data base.
-(unixinst.mak [1.8]: 2000/04/14 03:59:57 lpd)
-
-Adds code to write out CMaps, similar to the code for writing fonts, for
-eventual embedding in PDF output. (int.mak [1.18], lib.mak [1.12]:
-2000/04/14 07:17:24 lpd)
-
-Completes code for reading and writing CMaps. (int.mak [1.19],
-lib.mak [1.13]: 2000/04/16 03:05:29 lpd)
-
-Adds a user-contributed driver for the Epson Stylus (Color) Photo printers.
-(contrib.mak [1.6]: 2000/04/18 06:34:26 lpd)
-
-Converts the ps2epsi documentation to HTML. (unixinst.mak [1.10]: 2000/04/18
-17:59:13 lpd)
-
-Checks in the accumulated change log. (version.mak [1.13]: 2000/04/20
-07:24:22 lpd)
-
-Converts the bmp* and bmpa* devices to -dev2, to make them const.
-(devs.mak [1.18]: 2000/04/20 17:19:21 lpd)
-
-Removes the gp_ procedures for managing screen swapping between console and
-graphics, which haven't been used for a long time and are no longer useful.
-(dvx-tail.mak [1.2], lib.mak [1.14], openvms.mak [1.3], openvms.mmk [1.4],
-os2.mak [1.5], unix-aux.mak [1.2], watc.mak [1.3], watclib.mak [1.3],
-winlib.mak [1.2]: 2000/04/20 22:47:35 lpd)
-
-Removes all remaining direct references to stdin/out/err from the library,
-interpreter, and non-contributed drivers; moves the ersatz definitions of
-stdin/out/err to a new header file. (lib.mak [1.15], unix-gcc.mak [1.5]:
-2000/04/20 23:30:22 lpd)
-
-Adds compression for pdfwrite Patterns. (devs.mak [1.19]: 2000/04/24
-06:13:02 lpd)
-
-Adds a MD5Encode filter, which computes the 16-byte MD5 digest of the input.
-No output is produced until the filter is closed. (devs.mak [1.20],
-int.mak [1.21], lib.mak [1.16]: 2000/04/27 14:39:57 lpd)
-
-Adds a user-contributed driver for the H-P 970Cxi inkjet printer.
-(contrib.mak [1.8]: 2000/04/27 14:55:56 lpd)
-
-Factors the H-P monochrome laser and inkjet drivers into a generic driver
-and printer-specific clients. (devs.mak [1.21]: 2000/04/27 20:16:33 lpd)
-
-Adds a user-contributed driver for the Brother HL-1250 laser printer. This
-has a dual AFPL/GPL license, and a non-Aladdin copyright.
-(contrib.mak [1.9]: 2000/04/27 20:18:39 lpd)
-
-Once again, updates some dependency lists that had become inconsistent with
-the code. (contrib.mak [1.10], devs.mak [1.22], lib.mak [1.17]: 2000/04/27
-21:36:19 lpd)
-
-Yet again, updates an out-of-date dependency list. (contrib.mak [1.11]:
-2000/04/28 18:28:42 lpd)
-
-Changes the check for documentation files having the correct embedded date.
-(toolbin/pre [1.3]: 2000/04/28 18:29:14 lpd)
-
-Updates version numbers and dates for the 6.21 fileset. (version.mak [1.14]:
-2000/04/28 22:06:26 lpd)
-
-</pre><h2><a name="6.21 Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - The e-mail address for reporting problems was out of date.
-(lib/ps2epsi.ps [1.2]: 2000/04/10 02:27:21 lpd)
- - If a font didn't have a FontName (which is the case for bitmap
-fonts produced by recent versions of dvips), ps2epsi caused an error.
-(lib/ps2epsi.ps [1.3]: 2000/04/11 16:32:51 lpd)
- - Backs out contributed changes of 2000-03-05 because of bugs.
-(ansi2knr.c [1.3]: 2000/04/13 03:41:48 lpd)
- - ps2epsi removed all ^M characters in the input, possibly
-corrupting binary data. (lib/ps2epsi [1.2]: 2000/04/27 01:44:04 lpd)
-
-Makes the ps2pdf scripts replace a .eps extension with .pdf, as they do with
-.ps. (lib/ps2pdfwr [1.2], lib/ps2pdfxx.bat [1.2]: 2000/04/07 19:28:14 lpd)
-
-Enhances pdf2ps to allow defaulting the output file name. (lib/pdf2ps [1.2]:
-2000/04/11 14:23:24 lpd)
-
-Makes the second argument of the pfbtopfa script optional, so 'pfbtopfa
-dir/x.pfb' is equivalent to 'pfbtopfa dir/x.pfb x.pfa'. (lib/pfbtopfa [1.2]:
-2000/04/12 17:41:41 lpd)
-
-Adds user-contributed uniprint parameter files for the Canon BJC-8200,
-including an addition for the Red Hat printer data base. (lib/bj8.rpd [1.1]:
-2000/04/14 03:59:57 lpd)
-
-Increases the VMThreshold when converting PostScript to PDF, to reduce
-garbage collection overhead. (lib/ps2pdfwr [1.3]: 2000/04/17 19:06:58 lpd)
-
-Moves the optimization prologue for ps2pdf from the command line to a
-procedure, to avoid shell length limits. (lib/ps2pdfwr [1.4],
-lib/ps2pdfxx.bat [1.3]: 2000/04/18 16:40:14 lpd)
-
-Removes the gp_ procedures for managing screen swapping between console and
-graphics, which haven't been used for a long time and are no longer useful.
-(bench.c [1.2], gp_dosfb.c [1.2], gp_iwatc.c [1.2], gp_nofb.c [1.2]:
-2000/04/20 22:47:35 lpd)
-
-Checks in a file overlooked in the elimination of the gp_ console
-procedures. (gp_os2.c [1.2]: 2000/04/20 23:27:21 lpd)
-
-</pre><h2><a name="6.21 Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - The pdfwrite driver sometimes compressed images in an Indexed
-color space with the DCTEncode filter, producing garbage. (gdevpsdi.c [1.4]:
-2000/04/12 19:25:56 lpd)
- - Setting pdfwrite parameters for a DCTEncode filter could cause a
-crash (memory fault). (gdevpsdf.h [1.7], gdevpsdi.c [1.5], gdevpsdp.c [1.4],
-gdevpsdu.c [1.2]: 2000/04/13 01:53:07 lpd)
- - Compressing with DCTEncode tried to add the compression filter
-twice. (gdevpsdi.c [1.6]: 2000/04/13 04:52:38 lpd)
- - The PDF writer could get an ioerror when downsampling images whose
-size wasn't an exact multiple of the downsampling factor. (gdevpsdi.c [1.7],
-gdevpsds.c [1.2], gdevpsds.h [1.2]: 2000/04/13 16:44:59 lpd)
- - Downsampled mask images could cause a memory access error.
-(gdevpsdi.c [1.9]: 2000/04/18 16:37:04 lpd)
- - PDF Patterns weren't written correctly if the ProcessColorModel
-wasn't Device RGB. (gdevpsdu.c [1.3]: 2000/04/24 05:40:30 lpd)
- - The [e]pswrite driver produced incorrect output for color images
-with multiple data sources. (gdevps.c [1.5]: 2000/04/25 19:35:07 lpd)
-
-Implements pdfwrite compression for mask images, using the same parameters
-as for monochrome images. (gdevpsdi.c [1.8]: 2000/04/13 18:40:23 lpd)
-
-Adds user-contributed uniprint parameter files for the Canon BJC-8200,
-including an addition for the Red Hat printer data base.
-(lib/bj8gc12f.upp [1.1], lib/bj8hg12f.upp [1.1], lib/bj8oh06n.upp [1.1],
-lib/bj8pa06n.upp [1.1], lib/bj8pp12f.upp [1.1], lib/bj8ts06n.upp [1.1]:
-2000/04/14 03:59:57 lpd)
-
-Adds a user-contributed driver for the Epson Stylus (Color) Photo printers.
-(gdevphex.c [1.1]: 2000/04/18 06:34:26 lpd)
-
-Converts the bmp* and bmpa* devices to -dev2, to make them const.
-(gdevbmp.c [1.2], gdevbmpa.c [1.2]: 2000/04/20 17:19:21 lpd)
-
-Documents the astounding fact that the Xt implementation actually writes
-into the XtResource tables. (gdevxres.c [1.2]: 2000/04/20 19:59:28 lpd)
-
-Removes all remaining direct references to stdin/out/err from the library,
-interpreter, and non-contributed drivers; moves the ersatz definitions of
-stdin/out/err to a new header file. (gdevxxf.c [1.3]: 2000/04/20 23:30:22
-lpd)
-
-When writing PDF output, reduces the size of compressed images in Indexed
-color spaces by not using a Predictor for them. (gdevpsdi.c [1.10]:
-2000/04/21 06:46:08 lpd)
-
-Adds an internal filter for converting images to Indexed form if possible.
-(gdevpsds.c [1.3], gdevpsds.h [1.3]: 2000/04/21 19:26:37 lpd)
-
-Cleans up code by replacing macros with procedures or variables.
-(gdevps.c [1.6]: 2000/04/25 20:35:46 lpd)
-
-Makes the [e]pswrite and pdfwrite drivers merge adjacent horizontal or
-vertical line segments going in the same direction. This makes a big
-difference for PostScript files produced by certain applications.
-(gdevps.c [1.7]: 2000/04/25 22:39:54 lpd)
-
-Adds a user-contributed driver for the H-P 970Cxi inkjet printer.
-(gdevdj9.c [1.1]: 2000/04/27 14:55:56 lpd)
-
-Factors the H-P monochrome laser and inkjet drivers into a generic driver
-and printer-specific clients. (gdevdjet.c [1.3], gdevdljm.c [1.1],
-gdevdljm.h [1.1]: 2000/04/27 20:16:33 lpd)
-
-Adds a user-contributed driver for the Brother HL-1250 laser printer. This
-has a dual AFPL/GPL license, and a non-Aladdin copyright. (gdevhl12.c [1.1]:
-2000/04/27 20:18:39 lpd)
-
-Once again, updates some dependency lists that had become inconsistent with
-the code. (gdevdj9.c [1.2]: 2000/04/27 21:36:19 lpd)
-
-Makes the printers in gdevdjet.c that support setting the number of copies
-use this feature when multiple copies are requested. (gdevdjet.c [1.4],
-gdevdljm.c [1.2], gdevdljm.h [1.2]: 2000/04/28 13:37:47 lpd)
-
-</pre><h2><a name="6.21 PDF writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - The Cos objects of resources not shared between pages weren't
-freed at the end of each page. (gdevpdf.c [1.9]: 2000/04/10 04:17:56 lpd)
- - gdevpdfe.c was omitted from the check-in for the overhaul of
-pdfwrite font embedding. (gdevpdfe.c [1.1]: 2000/04/10 16:01:29 lpd)
- - pdfwrite output could contain commands to set the line width to a
-negative value, which PostScript allows but PDF doesn't. (gdevpdfd.c [1.6]:
-2000/04/12 19:51:14 lpd)
- - The changes for the new color handling code caused stroked
-graphics not to output the line width. (new bug since 6.20)
-(gdevpdfd.c [1.7]: 2000/04/13 03:47:21 lpd)
- - Pattern resources were written with incorrectly scaled XStep and
-YStep, and without a Type entry. (gdevpdfc.c [1.3], gdevpdfi.c [1.10]:
-2000/04/13 04:12:33 lpd)
- - The PDF writer could get an ioerror when downsampling images whose
-size wasn't an exact multiple of the downsampling factor.
-(gdevpdfi.c [1.11]: 2000/04/13 16:44:59 lpd)
- - Bitmapped characters weren't written properly on the output file
-(new bug since 6.20). (gdevpdfg.h [1.4], gdevpdfi.c [1.12],
-gdevpdfj.c [1.2]: 2000/04/13 17:24:54 lpd)
- - gxdcolor.h was required for gxpcolor.h, but wasn't included.
-(gdevpdfc.c [1.4]: 2000/04/18 17:42:55 lpd)
- - A table of constant strings wasn't declared as const.
-(gdevpdfp.c [1.7]: 2000/04/20 17:37:31 lpd)
- - When pdfwrite was producing PDF 1.3 output, the base 14 fonts were
-never embedded, rather than being handled like all other fonts.
-(gdevpdff.c [1.4]: 2000/04/20 23:49:40 lpd)
- - Indexed color spaces used in in-line images were being written
-incorrectly. Also optimizes Indexed images by converting RGB palettes to
-Gray if all the entries are actually gray. (gdevpdfc.c [1.5]: 2000/04/21
-15:29:20 lpd)
- - The recent optimization for using the ' command in PDF output lost
-track of the leading value between blocks of text, causing lines in later
-blocks to overprint each other. (gdevpdfu.c [1.9]: 2000/04/21 22:29:05 lpd)
- - Backs out the change that allowed embedding of the base 14 fonts,
-because it produces invalid output. (gdevpdff.c [1.5]: 2000/04/22 00:13:11
-lpd)
- - Colored Patterns requiring masking weren't written properly.
-(gdevpdfc.c [1.6]: 2000/04/24 00:09:37 lpd)
- - Patterns were written upside-down. (gdevpdfc.c [1.7]: 2000/04/24
-01:11:36 lpd)
- - PDF Patterns weren't written correctly if the ProcessColorModel
-wasn't Device RGB. (gdevpdf.c [1.15], gdevpdfc.c [1.8], gdevpdfg.h [1.5],
-gdevpdfi.c [1.13], gdevpdfx.h [1.15]: 2000/04/24 05:40:30 lpd)
- - The color space for images wasn't always written in the correct
-form (an object reference for image XObjects, a resource name for in-line
-images). (gdevpdfi.c [1.14]: 2000/04/28 12:07:37 lpd)
- - Patterns were sometimes written with a duplicate Type element.
-(gdevpdfc.c [1.10]: 2000/04/28 12:23:54 lpd)
- - Patterns were sometimes written twice, with an empty definition
-the second time. (gdevpdfi.c [1.15]: 2000/04/28 12:24:42 lpd)
-
-Overhauls font embedding in the PDF writer: splits off the code into a new
-file (gdevpdfe.c), writes embedded Type 1 fonts as Type 1C (CFF Type 2), and
-adds a little bit of code for future support of Type 0 and CID-keyed fonts.
-(gdevpdff.c [1.3], gdevpdff.h [1.2], gdevpdft.c [1.6], gdevpdfw.c [1.3]:
-2000/04/10 07:48:37 lpd)
-
-Factors out code for writing functions and for adding filter-related entries
-to a stream dictionary; implements the DefaultRenderingIntent distiller
-parameter. (gdevpdf.c [1.10], gdevpdfu.c [1.6], gdevpdfx.h [1.8]: 2000/04/11
-16:06:57 lpd)
-
-Adds ExtGState resources. These should be written and freed at the end of
-each page, but they aren't yet. (gdevpdfx.h [1.9]: 2000/04/11 16:38:14 lpd)
-
-Implements additional distiller parameters: PreserveHalftoneInfo,
-PreserveOverprintSetting, TransferFunctionInfo (except for Apply vs.
-Remove), UCRandBGInfo. Splits off graphics state management into separate
-files. Implements the remaining graphics state parameters (halftone,
-transfer function, black generation, undercolor removal, halftone phase,
-smoothness, overprint, stroke adjustment) ****** EXCEPT FOR IMAGES ******.
-In anticipation of handling more general colors, renames pdf_set_color as
-pdf_set_pure_color, and adds pdf_set_drawing_color. (gdevpdf.c [1.11],
-gdevpdfd.c [1.4], gdevpdfg.c [1.1], gdevpdfg.h [1.1], gdevpdfi.c [1.8],
-gdevpdft.c [1.7], gdevpdfu.c [1.7], gdevpdfx.h [1.10]: 2000/04/11 18:31:32
-lpd)
-
-Splits off creation and writing of color spaces, and writing color values,
-into a separate file. Adds support for (Function-based) Separation and
-DeviceN color spaces, general Pattern color spaces, and procedure-based
-Indexed color spaces. Adds some code to support Pattern colors, but stubs it
-out because it depends on changes in the image writing code that haven't
-been integrated yet. In fact, most of the new code isn't called yet, either.
-(gdevpdf.c [1.12], gdevpdfc.c [1.1], gdevpdfd.c [1.5], gdevpdfg.c [1.2],
-gdevpdfg.h [1.2], gdevpdft.c [1.8], gdevpdfx.h [1.11]: 2000/04/11 19:10:13
-lpd)
-
-Integrates a couple of minor overlooked changes in the text-writing code.
-(gdevpdf.c [1.13], gdevpdft.c [1.9], gdevpdfx.h [1.12]: 2000/04/11 19:20:56
-lpd)
-
-In pdfwrite, rewrites the image writing code to use Cos objects rather than
-direct printing, and splits off the creation of image dictionaries into a
-new file; adds support for tiling with uncolored Patterns; implements
-converting ImageType 4 images to their PDF 1.3 counterpart; starts to do the
-same for ImageType 3. This code is "in progress" and likely to have problems
-for a while. (gdevpdf.c [1.14], gdevpdfc.c [1.2], gdevpdfg.c [1.3],
-gdevpdfg.h [1.3], gdevpdfi.c [1.9], gdevpdfj.c [1.1], gdevpdfx.h [1.13]:
-2000/04/12 18:44:35 lpd)
-
-Tweaks the PDF writer to use the ' command for positioning text when
-possible (small optimization only). (gdevpdfg.c [1.4], gdevpdft.c [1.10],
-gdevpdfu.c [1.8], gdevpdfx.h [1.14]: 2000/04/18 16:08:16 lpd)
-
-Reduces the startup time for displaying PDF files, by skipping the creation
-of pdfmarks for annotations and outlines when the output device doesn't
-process pdfmarks. (gdevpdfp.c [1.8]: 2000/04/21 16:58:28 lpd)
-
-Adds compression for pdfwrite Patterns. (gdevpdfc.c [1.9]: 2000/04/24
-06:13:02 lpd)
-
-Makes the [e]pswrite and pdfwrite drivers merge adjacent horizontal or
-vertical line segments going in the same direction. This makes a big
-difference for PostScript files produced by certain applications.
-(gdevpdf.c [1.16], gdevpdfd.c [1.8]: 2000/04/25 22:39:54 lpd)
-
-Updates the list of remaining pdfwrite tasks. (gdevpdfp.c [1.9]: 2000/04/27
-21:36:52 lpd)
-
-</pre><h2><a name="6.21 Interpreter (PDF)"></a>Interpreter (PDF)</h2><pre>
-
-Fixes problems:
- - Embedded subset CFF fonts in PDF files were defined using the name
-in the font data rather than the font name in the PDF resource object. (bug
-#102901) (lib/pdf_ops.ps [1.5]: 2000/04/11 05:33:13 lpd)
- - When processing a PDF file, the font substitution heuristic based
-on the FontName sometimes overrode the Flags information in the
-FontDescriptor. (lib/pdf_font.ps [1.6]: 2000/04/20 06:36:02 lpd)
- - PDF images with a bitmap Mask caused errors or produced incorrect
-output. (lib/pdf_draw.ps [1.10]: 2000/04/24 00:59:04 lpd)
- - Masked images weren't drawn properly, because the two data sources
-could reference the same file. (lib/pdf_draw.ps [1.11]: 2000/04/24 05:39:45
-lpd)
- - *Really* fixes the problem of data source aliasing for masked
-images. (lib/pdf_draw.ps [1.12]: 2000/04/24 05:53:43 lpd)
- - If a font specified Subtype = /TrueType but the actual font used
-was not a TrueType font, any Encoding in the Font object should be ignored.
-(This is a hack required by the PDF specification.) (lib/pdf_font.ps [1.7]:
-2000/04/24 06:37:18 lpd)
- - Colored annotation borders caused an error; 0-width borders were
-drawn even though they shouldn't be; Link and Stamp annotations weren't
-drawn at all. Also adds a new -dPrinted[=true/false] switch to choose
-whether to produce "screen" or "printer" output. (code from Artifex)
-(lib/pdf_draw.ps [1.13], lib/pdf_main.ps [1.7]: 2000/04/27 08:16:40 lpd)
-
-Makes undefined XObject resources for the Do operator produce a warning
-rather than an error, to parallel Acrobat Reader. (lib/pdf_draw.ps [1.9]:
-2000/04/16 07:48:23 lpd)
-
-Tweaks up the performance of the PDF interpreter loop slightly.
-(lib/pdf_base.ps [1.7]: 2000/04/18 05:45:49 lpd)
-
-Reduces the startup time for displaying PDF files, by skipping the creation
-of pdfmarks for annotations and outlines when the output device doesn't
-process pdfmarks. (lib/pdf_main.ps [1.6]: 2000/04/21 16:58:28 lpd)
-
-</pre><h2><a name="6.21 Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Fixes some signed/unsigned char * mismatches. (zfrsd.c [1.3]:
-2000/04/07 15:27:14 lpd)
- - Automatic loading of fonts from resource files didn't work
-(usually caused an unmatchedmark or typecheck error).
-(lib/gs_fonts.ps [1.5], lib/gs_res.ps [1.9]: 2000/04/08 03:45:41 lpd)
- - A -> should have been a . (only shows up on 64-bit systems).
-(zfunc4.c [1.3]: 2000/04/09 20:04:00 lpd)
- - the most recent 'fixes' for loading font resources caused all
-built-in fonts to be returned as null. (lib/gs_res.ps [1.10]: 2000/04/09
-22:51:01 lpd)
- - /Category defineresource didn't make the category definition
-dictionary read-only. (lib/gs_res.ps [1.11]: 2000/04/10 18:29:04 lpd)
- - Attempting to build an invalid FunctionType 4 function could cause
-a memory access error. (zfunc4.c [1.4]: 2000/04/10 19:38:53 lpd)
- - Embedded subset CFF fonts in PDF files were defined using the name
-in the font data rather than the font name in the PDF resource object. (bug
-#102901) (lib/gs_cff.ps [1.4]: 2000/04/11 05:33:13 lpd)
- - CMaps with more than one code space range weren't converted to the
-internal form correctly; begincidchar and beginnotdefchar caused errors.
-(lib/gs_cmap.ps [1.3], zfcmap.c [1.6]: 2000/04/14 07:53:10 lpd)
- - flushfile and closefile didn't properly flush streams whose final
-target was a procedure, and closefile didn't actually close them. (This is a
-very old bug.) (zfproc.c [1.2]: 2000/04/18 05:50:15 lpd)
- - CIDFontType 0 CIDFonts in which some FDArray element had no Subrs
-caused an error. (lib/gs_cidfn.ps [1.14]: 2000/04/18 05:58:08 lpd)
- - Attempting to set a PageSize with 4 elements actually set the
-PageSize (to the first 2 elements), rather than ignoring the attempt. (This
-is just a patch to prevent some PageMaker files from being thrown off by the
-4-element PageSizes in Input Attributes.) (lib/gs_setpd.ps [1.2]: 2000/04/19
-06:01:19 lpd)
- - When choosing a substituted font, 'Serif' had priority over
-'Sans', so unknown fonts with 'SansSerif' in their name would have a serif
-font substituted. (lib/gs_fonts.ps [1.6]: 2000/04/19 13:48:48 lpd)
- - The fix to make setpagedevice ignore 4-element PageSizes in
-InputAttributes was broken. (It's impossible that it could ever have worked,
-despite the fact that we tested it.) (lib/gs_setpd.ps [1.3]: 2000/04/20
-06:24:39 lpd)
- - When processing a PDF file, the font substitution heuristic based
-on the FontName sometimes overrode the Flags information in the
-FontDescriptor. (lib/gs_fonts.ps [1.7]: 2000/04/20 06:36:02 lpd)
- - Showing a string in a Type 1 font with a singular combined matrix
-(e.g., after 0 scalefont setfont) caused an error instead of doing nothing.
-(zchar1.c [1.3]: 2000/04/22 00:34:46 lpd)
- - Images with multiple file DataSources where two or more of the
-files were the same caused a crash. (zimage.c [1.3]: 2000/04/24 00:07:41
-lpd)
- - .reusablestreamdecode wasn't defined for use in LanguageLevel 2.
-(The ReusableStreamDecode filter itself was properly defined.)
-(lib/gs_frsd.ps [1.3]: 2000/04/24 00:45:38 lpd)
- - Loading an unknown font gave a spurious "non-string font name"
-message; unknown fonts with names containing style strings like Bold or
-Italic caused an error. (bug introduced since 6.20) (lib/gs_fonts.ps [1.8]:
-2000/04/28 22:03:58 lpd)
-
-Adds a workaround for misnamed glyphs in some Microsoft TrueType font 'post'
-tables. (lib/gs_mgl_e.ps [1.2], lib/gs_ttf.ps [1.4]: 2000/04/08 01:53:16
-lpd)
-
-Completely redesigns the representation of CMaps, to reduce space
-requirements and make comparing them more reasonable, changing gs_cmap to
-gs_cmap_t and gx_code_map to gx_code_map_t. (****** NOTE ****** The
-PostScript code currently only handles a few well-behaved CMap structures.)
-(lib/gs_cmap.ps [1.2], zfcmap.c [1.4], zfont0.c [1.2]: 2000/04/08 03:54:38
-lpd)
-
-Updates version #s to 6.21. (We should have done this earlier.)
-(lib/gs_init.ps [1.7]: 2000/04/10 04:46:36 lpd)
-
-Makes Separation and DeviceN color spaces detect that their tint transform
-procedure is a Function, and call it rather than using its cached values.
-(zcsdevn.c [1.2], zcssepr.c [1.3]: 2000/04/10 19:39:44 lpd)
-
-Adds code to write out CMaps, similar to the code for writing fonts, for
-eventual embedding in PDF output. (zfcmap.c [1.5]: 2000/04/14 07:17:24 lpd)
-
-Completes code for reading and writing CMaps. (lib/gs_cmap.ps [1.4],
-zfcmap.c [1.7]: 2000/04/16 03:05:29 lpd)
-
-Works around a bug in the AdobePS5 Windows driver, which emits CMaps lacking
-the required CMapName entry. (lib/gs_cidfn.ps [1.15], lib/gs_cmap.ps [1.5]:
-2000/04/18 07:18:42 lpd)
-
-Moves the optimization prologue for ps2pdf from the command line to a
-procedure, to avoid shell length limits. (lib/gs_pdfwr.ps [1.3]: 2000/04/18
-16:40:14 lpd)
-
-Removes all remaining direct references to stdin/out/err from the library,
-interpreter, and non-contributed drivers; moves the ersatz definitions of
-stdin/out/err to a new header file. (imainarg.c [1.2]: 2000/04/20 23:30:22
-lpd)
-
-Speeds up Type 1 font loading slightly by removing a conversion from binary
-to hex and back again. (zmisc1.c [1.2]: 2000/04/22 16:03:18 lpd)
-
-Adds a MD5Encode filter, which computes the 16-byte MD5 digest of the input.
-No output is produced until the filter is closed. (zfmd5.c [1.1]: 2000/04/27
-14:39:57 lpd)
-
-Adds a sample file containing a wide variety of PDF annotations; updates
-documentation for this and some other overlooked files.
-(examples/annots.pdf [1.1]: 2000/04/28 10:51:02 lpd)
-
-</pre><h2><a name="6.21 Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - FILE_IMPLEMENTATION=both was broken (by the introduction of
-sread_subfile). (sfxfd.c [1.3]: 2000/04/10 02:41:48 lpd)
- - flushfile and closefile didn't properly flush streams whose final
-target was a procedure, and closefile didn't actually close them. (This is a
-very old bug.) (stream.c [1.6]: 2000/04/18 05:50:15 lpd)
- - The PixelDifference filters (Predictor = 2) weren't implemented
-for Colors > 4 and BitsPerComponent != 8, and they dropped trailing bytes if
-the length of the data wasn't an exact multiple of the pixel size.
-(spdiff.c [1.2]: 2000/04/22 03:55:22 lpd)
-
-Enhances the ASCII85Encode filter to avoid %! at the beginning of a line of
-output, in addition to avoiding %% which it did already. (sa85x.h [1.2],
-sfilter2.c [1.2]: 2000/04/08 01:30:36 lpd)
-
-Removes all remaining direct references to stdin/out/err from the library,
-interpreter, and non-contributed drivers; moves the ersatz definitions of
-stdin/out/err to a new header file. (std.h [1.2]: 2000/04/20 23:30:22 lpd)
-
-Speeds up Type 1 font loading slightly by removing a conversion from binary
-to hex and back again. (seexec.c [1.2], sfilter.h [1.5]: 2000/04/22 16:03:18
-lpd)
-
-Adds a MD5Encode filter, which computes the 16-byte MD5 digest of the input.
-No output is produced until the filter is closed. (smd5.c [1.1],
-smd5.h [1.1]: 2000/04/27 14:39:57 lpd)
-
-</pre><h2><a name="6.21 Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Fixes some signed/unsigned char * mismatches. (gdevpsf2.c [1.5]:
-2000/04/07 15:27:14 lpd)
- - Writing a Type 2 CFF with multiply-encoded glyphs produced an
-incorrect Encoding. Also, when producing output for PDF 1.2 files, no longer
-emits certain opcodes that cause an (unjustified) error in Acrobat Reader 3
-for GNU/Linux. (gdevpsf.h [1.3], gdevpsf2.c [1.6]: 2000/04/10 07:42:31 lpd)
- - gsmisc.c didn't compile in DEBUG mode on systems with a
-non-standard prototype for the sqrt function. (gsmisc.c [1.3]: 2000/04/10
-16:00:31 lpd)
- - One picky compiler complained about (1L << 31). (gsmisc.c [1.4]:
-2000/04/10 17:21:41 lpd)
- - putdeviceparams allowed a PageSize or .MediaSize value with the
-wrong number of elements to take effect. (gsdparam.c [1.2]: 2000/04/19
-05:59:05 lpd)
- - The elimination of stdin/out/err also eliminated some #defines
-that are needed for error printout. (gsio.h [1.3]: 2000/04/21 06:39:17 lpd)
- - The structure descriptor for ImageType 3 images was public rather
-than private. (gsiparm3.h [1.3], gximage3.c [1.2]: 2000/04/22 07:02:18 lpd)
- - The "point matching" feature of TrueType composite glyphs wasn't
-implemented, causing some composite (accented) characters to have their
-accents misplaced. (gstype42.c [1.4]: 2000/04/25 07:22:50 lpd)
-
-Completely redesigns the representation of CMaps, to reduce space
-requirements and make comparing them more reasonable, changing gs_cmap to
-gs_cmap_t and gx_code_map to gx_code_map_t. (****** NOTE ****** The
-PostScript code currently only handles a few well-behaved CMap structures.)
-(gsfcmap.c [1.4], gsfcmap.h [1.2], gxfcmap.h [1.3], gxfont0.h [1.2]:
-2000/04/08 03:54:38 lpd)
-
-Adds Function-based tint_transform procedures for Separation and DeviceN
-color spaces. (gscdevn.c [1.3], gscdevn.h [1.2], gscsepr.c [1.3],
-gscsepr.h [1.2]: 2000/04/10 19:02:19 lpd)
-
-Adds code to write out CMaps, similar to the code for writing fonts, for
-eventual embedding in PDF output. (gdevpsf.h [1.4], gdevpsfm.c [1.1]:
-2000/04/14 07:17:24 lpd)
-
-Completes code for reading and writing CMaps. (gdevpsf.h [1.5],
-gdevpsfm.c [1.2], gsccode.h [1.3], gsfcid.c [1.3], gsfcmap.c [1.5],
-gxcid.h [1.2], gxfcmap.h [1.4]: 2000/04/16 03:05:29 lpd)
-
-Removes the gp_ procedures for managing screen swapping between console and
-graphics, which haven't been used for a long time and are no longer useful.
-(gp.h [1.3]: 2000/04/20 22:47:35 lpd)
-
-Removes all remaining direct references to stdin/out/err from the library,
-interpreter, and non-contributed drivers; moves the ersatz definitions of
-stdin/out/err to a new header file. (gsdevice.c [1.3], gsio.h [1.2],
-gsmisc.c [1.5], gxdevice.h [1.2]: 2000/04/20 23:30:22 lpd)
-
-Adds an essential new file overlooked in the removal of references to
-stdin/out/err. (gxstdio.h [1.1]: 2000/04/20 23:50:20 lpd)
-
-Makes the [e]pswrite and pdfwrite drivers merge adjacent horizontal or
-vertical line segments going in the same direction. This makes a big
-difference for PostScript files produced by certain applications.
-(gdevvec.c [1.2], gdevvec.h [1.2]: 2000/04/25 22:39:54 lpd)
-
-Adds template macros for printer devices that implement print_page_copies
-rather than print_page. (gdevprn.c [1.2], gdevprn.h [1.3]: 2000/04/28
-13:36:16 lpd)
-
-<hr>
-
-<h1><a name="Version6.20"></a>Version 6.20 (2000-04-06)</h1>
-
-<p>
-This fileset includes the first steps towards bringing the pdfwrite driver
-closer to matching Acrobat Distiller 4. Highlights:
-
-<ul>
-
-<li> Reimplementation of CIDFontType 0 support in C rather than PostScript;
-
-<li> Parsing (but not functional implementation) of nearly all the Acrobat
-Distiller 4 parameters;
-
-<li> Implementation of AutoRotatePages and DCTEncode filtering in the PDF
-writer;
-
-<li> A PDF linearizer ("optimizer").
-
-</ul>
-
-<p>
-All problems registered on SourceForge numbered 103963 or lower are closed,
-except for the following: 101549, 101814, 101829, 101905, 101955, 102046,
-102047, 102132, 102146, 102735, 102901, 103016, 103528, 103963.
-
-<pre>
-
-<h2><a name="6.20_Incompatible_changes"></a>Incompatible changes</h2>
-
-(Procedures)
- - The default value of FPU_TYPE in all Windows and OS/2 makefiles
-is now 387 rather than 0.
- - The process for reporting problems has changed significantly.
-(PDF writer)
- - The Cos procedures no longer take the device as an argument,
-except for object-creating procedures, which now take the device rather
-than an allocator.
- - The is_object member of Cos values is replaced by value_type.
-Clients must use COS_VALUE_IS_OBJECT() to test whether a value is an object
-reference.
- - The Cos procedures that take C strings no longer copy the string.
- - The argument of cos_write_object is no longer const.
-(Drivers)
- - The default BufferSpace for printer drivers is now 4 Mb.
- - Device halftone order implementations must now provide a new
-bit_index procedure.
- - The image argument for psdf_setup_image_filters is changed from
-gs_image_t to gs_pixel_image_t.
- - The font-related psdf_ procedures are renamed psf_.
-(Streams)
- - The interface to the [T]BCP filters is now in a separate file,
-sbcp.h.
-(PDF interpreter)
- - The internal beginpage procedure is renamed dictbeginpage, and
-now takes a dictionary argument.
-(Interpreter)
- - The argument list for the internal build_gs_TrueType_font
-procedure has changed.
- - The zcharstring_glyph_outline procedure is renamed
-zchar1_glyph_outline.
- - The Instances dictionary of resources is renamed .Instances.
-(Library)
- - ImageType 4 images now give an error if a MaskColor value is out
-of the range of possible sample values.
- - The definition of gs_param_key_t, the key type returned by
-parameter list enumeration, is changed.
- - Implementors of parameter lists must now call gs_param_list_init
-to initialize the common members.
- - st_indexed_map is now private. Clients allocating instances of
-this structure must now call alloc_indexed_map.
- - Setting a transfer map as the identity mapping now requires
-calling gx_set_identity_transfer.
- - gs_cid_system_info is renamed gs_cid_system_info_t.
- - The get_outline procedure of a Type 42 or Type 11 (CIDFontType 0)
-font now returns 1 if the string was newly allocated and can be freed by the
-client.
- - The procs member of gs_type1_data is now an in-line structure
-rather than a pointer to a const structure.
-
-
-<h2><a name="6.20 Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - If log2_transfer_map_size > 8, identity transfer functions
-returned garbage. The fix requires that if a client wants to set a transfer
-function to the identity mapping, it must call gx_set_identity_transfer
-rather than simply setting the procedure to gs_identity_transfer.
-(doc/News.htm [1.13]: 2000/03/19 17:14:47 lpd)
- - In PDF files, the page CropBox was not being used to clip the
-output. (doc/News.htm [1.18]: 2000/03/21 23:08:32 lpd)
- - Fixes several problems in resourceforall and resource loading: the
-operands of resourceforall were restored even in the case of an error in the
-client's procedure; the name Instances had special meaning for some Adobe
-code; resourceforall caused an invalidaccess error if an operand was in
-local VM but the current VM was global; loading a resource from a file could
-cause a typecheck error if the file left values on the operand stack.
-(doc/News.htm [1.25]: 2000/04/04 22:26:02 lpd)
- - The location of the lists of supported and unsupported drivers was
-incorrect. (doc/Bug-info.htm [1.2]: 2000/04/07 03:01:52 lpd)
-
-Undoes an accidental RCS ID substitution in what was supposed to be literal
-text. (doc/Htmstyle.htm [1.2]: 2000/03/18 22:29:03 lpd)
-
-Increments the version number to 6.20, in anticipation of the next release.
-(We do this at the beginning of the development for a release, not the end.)
-(doc/History6.htm [1.4], doc/News.htm [1.6]: 2000/03/19 00:27:22 lpd)
-
-Splits out the [T]BCP filter interface into a separate file.
-(doc/News.htm [1.7]: 2000/03/19 02:40:18 lpd)
-
-Documents the fact that ImageType 4 images now cause an error for
-out-of-range MaskColor values. (doc/News.htm [1.8]: 2000/03/19 04:32:09 lpd)
-
-Updates the change log with recent changes. (doc/Changes.htm [1.4]:
-2000/03/19 05:39:58 lpd)
-
-Adds a new document listing projects with which we are seeking help. Also
-makes the description of Changes.htm and News.htm more accurate.
-(doc/New-user.htm [1.2], doc/Projects.htm [1.1], doc/Readme.htm [1.3]:
-2000/03/19 06:07:15 lpd)
-
-Changes the default value of BufferSpace to 4 Mb. In desktop applications,
-this is a reasonable value that can substantially improve performance
-(especially for color printers); embedded applications will want to set
-BufferSpace themselves in any case. (doc/News.htm [1.9]: 2000/03/19 06:51:13
-lpd)
-
-Changes the key type returned by parameter list enumeration to include a
-persistence flag, makes C parameter lists support non-persistent keys, and
-upgrades GC descriptors so that parameter lists can be used non-transiently;
-updates implementors of parameter lists to call gs_param_list_init to
-initialize the common members, which is now required. (doc/News.htm [1.10]:
-2000/03/19 15:16:11 lpd)
-
-Documents the fact that drivers that device halftone order implementations
-must now provide the new bit_index procedure. (This should have been
-documented when bit_index was introduced!) (doc/News.htm [1.11]: 2000/03/19
-15:47:47 lpd)
-
-Makes st_indexed_map private. Clients must now use the constructor procedure
-alloc_indexed_map rather than allocating instances directly.
-(doc/News.htm [1.12]: 2000/03/19 16:37:28 lpd)
-
-Update the date and change log for the latest batches of checked-in changes.
-(doc/Changes.htm [1.5]: 2000/03/19 17:29:57 lpd)
-
-Adds a PDF linearizer ("optimizer"). This is a separate utility (not
-integrated with the pdfwrite driver), written in PostScript.
-(doc/Psfiles.htm [1.2]: 2000/03/20 04:31:22 lpd)
-
-Adds parsing for the remaining Acrobat Distiller 4 parameters. Implements
-the LockDistillerParams, xxxDownsampleThreshold, xxxImageDict, and
-xxxACSImageDict distiller parameters. Implements DCTEncode as an
-xxxImageFilter option (it used to cause a crash). Makes the
-AutoFilterxxxImages distiller parameters select JPEG encoding (with ACSDict)
-if the image has 8 bits per component and is not Indexed, and LZW/Flate
-otherwise: this still isn't right, but it's closer. Implementation changes:
-Changes the implementation of distiller parameter dictionaries from stream
-states to parameter lists; changes the test for masks in
-psdf_setup_image_filters, and changes the image argument from gs_image_t to
-gs_pixel_image_t. (doc/News.htm [1.14]: 2000/03/20 05:40:04 lpd)
-
-Moves font-writing support into a new module (gdevpsf*), changing the source
-file names. Adds the ability to write CFF fonts, with either Type 1 or Type
-2 CharStrings; unfortunately, Acrobat Reader appears not to accept CFF fonts
-with Type 1 CharStrings. Adds the ability to convert Type 1 CharStrings to
-Type 2, including optimizing sequences of Type 1 operators into a single
-Type 2 operator. Implements writing CIDFontType 0 CFF fonts (CIDFonts) [NOT
-TESTED]. Starts (just barely) to remove more unneeded information from
-embedded TrueType fonts. (doc/News.htm [1.15]: 2000/03/20 07:02:12 lpd)
-
-Updates the consolidated change log with today's changes.
-(doc/Changes.htm [1.6]: 2000/03/20 07:18:38 lpd)
-
-Starts to move support for CIDFontType 0 and 2 into C code, needed by the
-PDF writer for handling CID-keyed fonts. Implements GlyphDirectory for
-CIDFonts. Makes GDBytes and CIDMapOffset optional for CIDFontType 0 fonts
-that have a GlyphDirectory (not documented in the PLRM, but clearly
-correct). Implements Adobe 3011 features: integer and dictionary CIDMaps,
-and the MetricsCount entry, in CIDFontType 2 fonts (but only in the C code,
-which isn't hooked in yet, not in the PostScript code in gs_cidfn.ps.)
-(doc/News.htm [1.16]: 2000/03/20 19:53:06 lpd)
-
-Notes that the argument list for the internal build_gs_TrueType_font
-procedure has changed, as part of the CIDFont migration to C code.
-(doc/News.htm [1.17]: 2000/03/20 20:04:20 lpd)
-
-Adds invocation scripts and documentation for the PDF "optimizer".
-(man/pdfopt.1 [1.1]: 2000/03/21 17:01:33 lpd)
-
-Updates information about reporting problems when using Ghostview or GSview.
-(doc/Bug-form.htm [1.3], doc/New-user.htm [1.3]: 2000/03/22 22:13:49 lpd)
-
-Checks in the latest consolidated change log. (doc/Changes.htm [1.7]:
-2000/03/24 05:04:55 lpd)
-
-Substantially enhances the Cos object machinery. Interface: Adds a few more
-procedures, including a procedure to create a stream that writes directly
-into a Cos stream object, procedures for putting more kinds of values into
-arrays and dictionaries, and a param_list interface. Changes Cos objects to
-store a reference to the PDF device, and removes the device argument from
-all Cos procedures other than object creation. Replaces the Boolean
-is_object member of Cos values by a value_type enum: clients must now use
-COS_VALUE_IS_OBJECT() to test whether a value is an object reference. To
-reduce allocator overhead, makes the Cos procedures that take C strings no
-longer copy the string. Records whether each Cos object has been written
-into the output, so that in the future (but not in this batch of changes)
-resource definitions can be copied at the end of each page. Implementation:
-Moves more of the implementation of Cos objects to the .c file.
-(doc/News.htm [1.19]: 2000/03/24 06:12:52 lpd)
-
-Adds parsing for the remaining Acrobat Distiller 4 parameters, although most
-of them don't have any effect yet; brings documentation up to date.
-(doc/Ps2pdf.htm [1.3]: 2000/03/28 07:36:58 lpd)
-
-Implements LockDistillerParams; completes the StartPage/EndPage fix checked
-in just before. (doc/Ps2pdf.htm [1.4]: 2000/03/28 07:52:06 lpd)
-
-Changes the default value of FPU_TYPE in all Windows and OS/2 makefiles from
-0 to 387, since all current desktop CPUs include floating point hardware.
-(doc/News.htm [1.20]: 2000/03/28 17:03:48 lpd)
-
-Changes the get_outline / glyph_data procedure for getting encoded font
-outline data to return an indication of whether the outline data were just
-allocated and can be freed by the client. (This is a possibly
-non-backward-compatible change.) (doc/News.htm [1.21]: 2000/03/28 18:47:02
-lpd)
-
-Adds a note about bogus "ANSI aliasing" warnings from the DEC C compiler.
-(doc/Make.htm [1.8]: 2000/03/29 19:29:08 lpd)
-
-Changes the procs structure of gs_type1_data to an in-line structure rather
-than a pointer to a const structure. (Needed for moving CIDFontType 0
-support into C.) (doc/News.htm [1.22]: 2000/03/29 22:10:31 lpd)
-
-Updates the change log with recent changes. (doc/Changes.htm [1.8]:
-2000/03/30 07:59:39 lpd)
-
-Creates a real list of projects on which help would be appreciated.
-(doc/Projects.htm [1.2]: 2000/04/01 00:43:11 lpd)
-
-Finishes implementing the ability to write CIDFontType 0 CFFs. This involved
-a surprising number of changes in other font-related files.
-(doc/News.htm [1.23]: 2000/04/02 07:38:46 lpd)
-
-Updates the documentation on preparing releases to reflect the addition of
-the toolbin directory. (doc/Release.htm [1.7]: 2000/04/02 18:56:58 lpd)
-
-Implements the AutoRotatePages distiller parameter. (doc/Ps2pdf.htm [1.5]:
-2000/04/03 02:54:41 lpd)
-
-Updates the problem reporting procedure to use SourceForge; separates the
-description of the procedure from the reporting form.
-(doc/Bug-form.htm [1.4], doc/Bug-info.htm [1.1], doc/New-user.htm [1.4],
-doc/News.htm [1.24], doc/Readme.htm [1.4]: 2000/04/04 04:14:02 lpd)
-
-Updates release dates and version numbers. (doc/Bug-form.htm [1.5],
-doc/Bug-info.htm [1.3], doc/Htmstyle.htm [1.3], doc/Make.htm [1.9],
-doc/New-user.htm [1.5], doc/Projects.htm [1.3], doc/Ps2pdf.htm [1.6],
-doc/Psfiles.htm [1.3], doc/Readme.htm [1.5], man/ps2pdf.1 [1.4],
-man/ps2ps.1 [1.4]: 2000/04/07 05:21:45 lpd)
-
-Removes redundant material, and the www.aladdin.com distribution point, from
-the release procedure documentation. (doc/Release.htm [1.8]: 2000/04/07
-05:24:29 lpd)
-
-</pre><h2><a name="6.20 Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - pdfread.dev incorrectly depended on dpsnext_. (int.mak [1.4]:
-2000/03/19 02:00:09 lpd)
- - The referenced libpng version hadn't been updated to 1.0.5.
-(openvms.mmk [1.3]: 2000/03/20 16:38:46 lpd)
- - The MSVC++ 6 compiler no longer recognizes the /FPi87 switch.
-(msvccmd.mak [1.2]: 2000/03/31 05:06:53 lpd)
- - MSVC versions before 5, not before 6, recognize /FPi87.
-(msvccmd.mak [1.3]: 2000/03/31 05:50:33 lpd)
- - Removes some occurrences of $,I,d,: that shouldn't be substituted.
-(toolbin/pre [1.2]: 2000/04/07 05:20:35 lpd)
-
-Increments the version number to 6.20, in anticipation of the next release.
-(We do this at the beginning of the development for a release, not the end.)
-(version.mak [1.6]: 2000/03/19 00:27:22 lpd)
-
-Adds a pseudo-encoding for the CFF StandardStrings that represent
-characters. (devs.mak [1.3], int.mak [1.3], unixinst.mak [1.5]: 2000/03/19
-00:38:50 lpd)
-
-Updates makefiles with dependencies for recent changes. (int.mak [1.5],
-lib.mak [1.3]: 2000/03/19 05:37:38 lpd)
-
-Adds dependencies for the new implementation of FunctionType 4 functions.
-(int.mak [1.6]: 2000/03/19 07:03:53 lpd)
-
-Splits off "vanilla" Functions into separate files, in anticipation of
-removing them (they were only used to implement PostScript Calculator
-Functions). (lib.mak [1.4]: 2000/03/19 07:33:08 lpd)
-
-Update the date and change log for the latest batches of checked-in changes.
-(version.mak [1.7]: 2000/03/19 17:29:57 lpd)
-
-Moves font-writing support into a new module (gdevpsf*), changing the source
-file names. Adds the ability to write CFF fonts, with either Type 1 or Type
-2 CharStrings; unfortunately, Acrobat Reader appears not to accept CFF fonts
-with Type 1 CharStrings. Adds the ability to convert Type 1 CharStrings to
-Type 2, including optimizing sequences of Type 1 operators into a single
-Type 2 operator. Implements writing CIDFontType 0 CFF fonts (CIDFonts) [NOT
-TESTED]. Starts (just barely) to remove more unneeded information from
-embedded TrueType fonts. (devs.mak [1.4], lib.mak [1.5]: 2000/03/20 07:02:12
-lpd)
-
-Updates dependencies to reflect today's batches of checked-in changes.
-(devs.mak [1.5], int.mak [1.7], lib.mak [1.6]: 2000/03/20 07:16:35 lpd)
-
-Updates the makefile for the renaming of gdevpsdf.c => gdevpsdu.c.
-(devs.mak [1.6]: 2000/03/20 19:30:35 lpd)
-
-Starts to move support for CIDFontType 0 and 2 into C code, needed by the
-PDF writer for handling CID-keyed fonts. Implements GlyphDirectory for
-CIDFonts. Makes GDBytes and CIDMapOffset optional for CIDFontType 0 fonts
-that have a GlyphDirectory (not documented in the PLRM, but clearly
-correct). Implements Adobe 3011 features: integer and dictionary CIDMaps,
-and the MetricsCount entry, in CIDFontType 2 fonts (but only in the C code,
-which isn't hooked in yet, not in the PostScript code in gs_cidfn.ps.)
-(int.mak [1.8], lib.mak [1.7]: 2000/03/20 19:53:06 lpd)
-
-Extends the C support for CIDFontType 0 fonts to include those with FontType
-2 subfonts in the FDArray (an Adobe 3011 addition, specifically for CFF
-fonts). (int.mak [1.9]: 2000/03/21 07:43:42 lpd)
-
-Adds invocation scripts and documentation for the PDF "optimizer".
-(unixinst.mak [1.6]: 2000/03/21 17:01:33 lpd)
-
-Splits off the ReusableStreamDecode filter as a separate module, since
-CIDFontType 0 fonts will use it even in LanguageLevels below 3.
-(int.mak [1.10]: 2000/03/21 21:34:57 lpd)
-
-Makes file streams remember the file name, needed for efficiently
-implementing reusable streams. (int.mak [1.11]: 2000/03/23 02:13:40 lpd)
-
-Checks in the latest consolidated change log. (version.mak [1.8]: 2000/03/24
-05:04:55 lpd)
-
-Changes the implementation of incrementally loaded CIDFontType 0 fonts to
-use a ReusableStreamDecode filter, in anticipation of moving the BuildGlyph
-procedure for these fonts from PostScript to C. (int.mak [1.12],
-version.mak [1.9]: 2000/03/27 16:36:24 lpd)
-
-Changes the default value of FPU_TYPE in all Windows and OS/2 makefiles from
-0 to 387, since all current desktop CPUs include floating point hardware.
-(msvc32.mak [1.3], msvclib.mak [1.3], os2.mak [1.4], watcw32.mak [1.3]:
-2000/03/28 17:03:48 lpd)
-
-Updates the change log with recent changes. (version.mak [1.10]: 2000/03/30
-07:59:39 lpd)
-
-Cleans up some dependencies missed at the last checkin. (devs.mak [1.7],
-int.mak [1.13]: 2000/03/31 05:03:30 lpd)
-
-Finishes implementing the ability to write CIDFontType 0 CFFs. This involved
-a surprising number of changes in other font-related files. (int.mak [1.14]:
-2000/04/02 07:38:46 lpd)
-
-Adds a variety of tools used to build and distribute Ghostscript releases.
-The only documentation is comments in the files themselves, and there isn't
-much of it. All aspects of these tools are subject to change without notice.
-(toolbin/3way.tcl [1.1], toolbin/cvs2hist.py [1.1],
-toolbin/errlist.tcl [1.1], toolbin/gsmake.tcl [1.1],
-toolbin/headers.tcl [1.1], toolbin/leaks.tcl [1.1],
-toolbin/makeset.tcl [1.1], toolbin/package.tcl [1.1], toolbin/pre [1.1],
-toolbin/pre.chk [1.1], toolbin/precheck.tcl [1.1], toolbin/smoke.ps [1.1],
-toolbin/suite.tcl [1.1], toolbin/tmake.tcl [1.1]: 2000/04/02 18:44:27 lpd)
-
-Moves gsindent from src to toolbin. (toolbin/gsindent [1.1]: 2000/04/02
-18:56:25 lpd)
-
-Adds an #include required by the Watcom compiler. (devs.mak [1.8]:
-2000/04/05 19:51:54 lpd)
-
-Adds a missing dependency. (lib.mak [1.8]: 2000/04/07 03:00:56 lpd)
-
-Updates a few dependencies for the release. (int.mak [1.15]: 2000/04/07
-05:23:12 lpd)
-
-Updates the build date for the release. (version.mak [1.11]: 2000/04/07
-05:25:18 lpd)
-
-Adds .cvsignore files, to prevent bogus warnings on cvs update.
-(.cvsignore [1.1], src/.cvsignore [1.1]: 2000/04/05 19:46:04 lpd)
-
-</pre><h2><a name="6.20 Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - A couple of places in the Windows code didn't correctly handle
-Ghostscript version 6.64, 7 April 2001
-21:45:03 lpd)
- - Replaces a final exit() with a return, to avoid a compiler
-warning. (genconf.c [1.2]: 2000/04/05 19:53:27 lpd)
-
-Makes geninit remove whitespace adjacent to hex and base-85 string literals.
-(geninit.c [1.2]: 2000/03/18 22:51:24 lpd)
-
-Adds a PDF linearizer ("optimizer"). This is a separate utility (not
-integrated with the pdfwrite driver), written in PostScript.
-(lib/pdfopt.ps [1.1], lib/pdfwrite.ps [1.1]: 2000/03/20 04:31:22 lpd)
-
-Replaces the O(N^2) sorting algorithm for printing unencoded characters with
-a O(N log N) algorithm, which makes printing Unicode and Chinese/Japanese
-fonts practical. (lib/prfont.ps [1.2]: 2000/03/21 06:39:49 lpd)
-
-Adds invocation scripts and documentation for the PDF "optimizer".
-(lib/pdfopt [1.1], lib/pdfopt.bat [1.1], lib/pdfopt.ps [1.2]: 2000/03/21
-17:01:33 lpd)
-
-Splits off the ReusableStreamDecode filter as a separate module, since
-CIDFontType 0 fonts will use it even in LanguageLevels below 3.
-(zfreuse.c [1.2]: 2000/03/21 21:34:57 lpd)
-
-Adds a variety of tools used to build and distribute Ghostscript releases.
-The only documentation is comments in the files themselves, and there isn't
-much of it. All aspects of these tools are subject to change without notice.
-(gsindent [1.2]: 2000/04/02 18:44:27 lpd)
-
-</pre><h2><a name="6.20 Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - The color_info member of the Windows and OS/2 printer devices (and
-other devices using PC-style palettes) wasn't initialized properly, causing
-improper behavior. (gdevos2p.c [1.2], gdevpccm.h [1.2], gdevwpr2.c [1.3]:
-2000/03/20 21:05:11 lpd)
- - Fixes a bug in the mswinpr2 driver in the handling of
-BitsPerPixel. (gdevwpr2.c [1.4]: 2000/03/22 17:08:33 lpd)
- - In PCL XL output (pxl* drivers), if a PostScript image didn't
-provide enough source data, the remainder of the output image was
-erroneously filled with pixel value 0 (typically black or the foreground
-color). (gdevpx.c [1.2]: 2000/03/22 20:55:21 lpd)
- - In the output of the pswrite driver (pdf2ps, ps2ps), the showpage
-for each page occurred before, not after, the restore that ended the page
-contents. This contradicted Adobe's documentation, and made utilities like
-N-up printing not work properly. (gdevps.c [1.4]: 2000/03/28 00:52:46 lpd)
- - The PCL XL 2.0 value for sRGB color space was wrong, and the
-attribute for writing mode was missing. (gdevpxat.h [1.2], gdevpxen.h [1.2]:
-2000/03/29 18:19:44 lpd)
- - When printing on monochrome LaserJet/DeskJet printers, the driver
-didn't set the number of copies to 1; on the LJ 4si, this sometimes caused
-double printing. (gdevdjet.c [1.2]: 2000/04/03 14:36:12 lpd)
- - Updates clients for the change in the last argument of
-cff_string_index from uint * to int *. (gdevpsf2.c [1.4]: 2000/04/05
-19:55:29 lpd)
-
-Adds parsing for the remaining Acrobat Distiller 4 parameters. Implements
-the LockDistillerParams, xxxDownsampleThreshold, xxxImageDict, and
-xxxACSImageDict distiller parameters. Implements DCTEncode as an
-xxxImageFilter option (it used to cause a crash). Makes the
-AutoFilterxxxImages distiller parameters select JPEG encoding (with ACSDict)
-if the image has 8 bits per component and is not Indexed, and LZW/Flate
-otherwise: this still isn't right, but it's closer. Implementation changes:
-Changes the implementation of distiller parameter dictionaries from stream
-states to parameter lists; changes the test for masks in
-psdf_setup_image_filters, and changes the image argument from gs_image_t to
-gs_pixel_image_t. (gdevpsdf.h [1.4], gdevpsdi.c [1.3], gdevpsdp.c [1.3]:
-2000/03/20 05:40:04 lpd)
-
-Moves font-writing support into a new module (gdevpsf*), changing the source
-file names. Adds the ability to write CFF fonts, with either Type 1 or Type
-2 CharStrings; unfortunately, Acrobat Reader appears not to accept CFF fonts
-with Type 1 CharStrings. Adds the ability to convert Type 1 CharStrings to
-Type 2, including optimizing sequences of Type 1 operators into a single
-Type 2 operator. Implements writing CIDFontType 0 CFF fonts (CIDFonts) [NOT
-TESTED]. Starts (just barely) to remove more unneeded information from
-embedded TrueType fonts. (gdevpsd1.c [1.2], gdevpsdf.c [1.3],
-gdevpsdf.h [1.5], gdevpsdt.c [1.2], gdevpsf.h [1.1], gdevpsf1.c [1.1],
-gdevpsf2.c [1.1], gdevpsft.c [1.1], gdevpsfu.c [1.1], gdevpsfx.c [1.1]:
-2000/03/20 07:02:12 lpd)
-
-Renames an inappropriately named file. (gdevpsdf.c [1.4], gdevpsdf.h [1.6],
-gdevpsdu.c [1.1]: 2000/03/20 19:03:43 lpd)
-
-Extends the C support for CIDFontType 0 fonts to include those with FontType
-2 subfonts in the FDArray (an Adobe 3011 addition, specifically for CFF
-fonts). (gdevpsf.h [1.2]: 2000/03/21 07:43:42 lpd)
-
-Changes the procs structure of gs_type1_data to an in-line structure rather
-than a pointer to a const structure. (Needed for moving CIDFontType 0
-support into C.) (gdevpsf1.c [1.2], gdevpsf2.c [1.2], gdevpsfx.c [1.2]:
-2000/03/29 22:10:31 lpd)
-
-Finishes implementing the ability to write CIDFontType 0 CFFs. This involved
-a surprising number of changes in other font-related files.
-(gdevpsf2.c [1.3], gdevpsfu.c [1.2]: 2000/04/02 07:38:45 lpd)
-
-Slightly simplifies the output of the psmono and psgray drivers.
-(gdevpsim.c [1.2]: 2000/04/02 19:57:37 lpd)
-
-Adds an #include required by the Watcom compiler. (gdevpsf1.c [1.3]:
-2000/04/05 19:51:54 lpd)
-
-</pre><h2><a name="6.20 PDF writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - The pointer enumeration procedure for pdf_image_enum was wrong,
-possibly producing a mangled pointer and a memory access error if a garbage
-collection occured while writing an image in a PDF file. (gdevpdfi.c [1.5]:
-2000/03/20 05:54:13 lpd)
- - The computation for testing whether a tiled pattern could be
-represented in line, and whether it exceeded Acrobat Reader's size limit,
-was wrong, causing some patterns not to be represented as Patterns.
-(gdevpdfi.c [1.6]: 2000/03/20 05:58:15 lpd)
- - When ProcessColorModel=/DeviceCMYK, if the first object on a page
-or after changing the clipping path was white, the PDF writer would write it
-as black. (gdevpdfu.c [1.3]: 2000/03/21 18:36:36 lpd)
- - If a page ended with an incomplete outline tree, an invalid memory
-access occurred. (gdevpdf.c [1.3], gdevpdfm.c [1.2]: 2000/03/24 05:09:56
-lpd)
- - The SP pdfmark didn't check that its argument was a graphics
-stream. (gdevpdfm.c [1.4]: 2000/03/24 06:18:39 lpd)
- - The name of the EndPage Distiller parameter collided with the
-EndPage page device parameter. (gdevpdfp.c [1.4]: 2000/03/28 07:45:25 lpd)
- - If two embedded fonts had the same base font, the PDF file could
-wind up with an invalid entry in the xref table. (gdevpdft.c [1.4]:
-2000/04/01 01:18:32 lpd)
-
-Adds parsing for the remaining Acrobat Distiller 4 parameters. Implements
-the LockDistillerParams, xxxDownsampleThreshold, xxxImageDict, and
-xxxACSImageDict distiller parameters. Implements DCTEncode as an
-xxxImageFilter option (it used to cause a crash). Makes the
-AutoFilterxxxImages distiller parameters select JPEG encoding (with ACSDict)
-if the image has 8 bits per component and is not Indexed, and LZW/Flate
-otherwise: this still isn't right, but it's closer. Implementation changes:
-Changes the implementation of distiller parameter dictionaries from stream
-states to parameter lists; changes the test for masks in
-psdf_setup_image_filters, and changes the image argument from gs_image_t to
-gs_pixel_image_t. (gdevpdfi.c [1.4]: 2000/03/20 05:40:04 lpd)
-
-Moves font-writing support into a new module (gdevpsf*), changing the source
-file names. Adds the ability to write CFF fonts, with either Type 1 or Type
-2 CharStrings; unfortunately, Acrobat Reader appears not to accept CFF fonts
-with Type 1 CharStrings. Adds the ability to convert Type 1 CharStrings to
-Type 2, including optimizing sequences of Type 1 operators into a single
-Type 2 operator. Implements writing CIDFontType 0 CFF fonts (CIDFonts) [NOT
-TESTED]. Starts (just barely) to remove more unneeded information from
-embedded TrueType fonts. (gdevpdff.c [1.2], gdevpdfw.c [1.2]: 2000/03/20
-07:02:12 lpd)
-
-Substantially enhances the Cos object machinery. Interface: Adds a few more
-procedures, including a procedure to create a stream that writes directly
-into a Cos stream object, procedures for putting more kinds of values into
-arrays and dictionaries, and a param_list interface. Changes Cos objects to
-store a reference to the PDF device, and removes the device argument from
-all Cos procedures other than object creation. Replaces the Boolean
-is_object member of Cos values by a value_type enum: clients must now use
-COS_VALUE_IS_OBJECT() to test whether a value is an object reference. To
-reduce allocator overhead, makes the Cos procedures that take C strings no
-longer copy the string. Records whether each Cos object has been written
-into the output, so that in the future (but not in this batch of changes)
-resource definitions can be copied at the end of each page. Implementation:
-Moves more of the implementation of Cos objects to the .c file.
-(gdevpdf.c [1.4], gdevpdfi.c [1.7], gdevpdfm.c [1.3], gdevpdfo.c [1.2],
-gdevpdfo.h [1.2], gdevpdfr.c [1.2], gdevpdfu.c [1.4], gdevpdfx.h [1.3]:
-2000/03/24 06:12:52 lpd)
-
-Changes a few initializations to suppress warnings from one picky compiler
-that doesn't like ptr = buf - 1 where buf is an array. (gdevpdfr.c [1.3]:
-2000/03/28 02:01:34 lpd)
-
-Adds parsing for the remaining Acrobat Distiller 4 parameters, although most
-of them don't have any effect yet; brings documentation up to date.
-(gdevpdf.c [1.5], gdevpdfp.c [1.3], gdevpdfx.h [1.4]: 2000/03/28 07:36:58
-lpd)
-
-Implements LockDistillerParams; completes the StartPage/EndPage fix checked
-in just before. (gdevpdf.c [1.6], gdevpdfp.c [1.5], gdevpdfx.h [1.5]:
-2000/03/28 07:52:06 lpd)
-
-Changes the initial values of the "job control" parameters to match Acrobat
-Distiller 4. (gdevpdf.c [1.7], gdevpdfp.c [1.6], gdevpdfx.h [1.6]:
-2000/03/28 07:57:14 lpd)
-
-Implements the AutoRotatePages distiller parameter. (gdevpdf.c [1.8],
-gdevpdft.c [1.5], gdevpdfu.c [1.5], gdevpdfx.h [1.7]: 2000/04/03 02:54:41
-lpd)
-
-</pre><h2><a name="6.20 Interpreter (PDF)"></a>Interpreter (PDF)</h2><pre>
-
-Fixes problems:
- - Reading embedded compressed CIDFonts wasn't implemented.
-(lib/pdf_font.ps [1.3]: 2000/03/19 01:28:59 lpd)
- - PDF images with DeviceN color spaces caused an error.
-(lib/pdf_draw.ps [1.2]: 2000/03/19 01:44:53 lpd)
- - PDF images with a Mask ignored the mask. (lib/pdf_draw.ps [1.3]:
-2000/03/19 01:46:27 lpd)
- - the PDF interpreter hadn't been updated for the move to
-library-based FunctionType 4 Functions, and still tried to bind the names
-true and false to the no longer existing operators .true and .false.
-(lib/pdf_draw.ps [1.5]: 2000/03/19 07:37:03 lpd)
- - FunctionType 2 and 3 functions didn't work.
-(lib/pdf_draw.ps [1.6]: 2000/03/19 15:23:10 lpd)
- - In PDF files, the page CropBox was not being used to clip the
-output. (lib/pdf_main.ps [1.4], lib/pdf_ops.ps [1.3]: 2000/03/21 23:08:32
-lpd)
- - The "fix" for FunctionTypes 2 and 3 in PDF files had made things
-worse, because the code didn't distinguish between resolving to a PostScript
-function (for shadings) and resolving to a PostScript procedure (for
-halftones, BG/UCR, alternate color space mapping, etc.)
-(lib/pdf_draw.ps [1.7]: 2000/03/23 18:31:46 lpd)
- - Text with a Pattern color scaled the pattern according to the text
-matrix, not the default matrix of the marking context.
-(lib/pdf_base.ps [1.6], lib/pdf_main.ps [1.5], lib/pdf_ops.ps [1.4]:
-2000/03/30 18:01:58 lpd)
- - Resolving a Shading didn't create a reusable stream for the
-shading data; since the data was then read at unpredictable times, the
-shading or other constructs in the PDF file could read incorrect data.
-(lib/pdf_draw.ps [1.8]: 2000/04/03 06:01:25 lpd)
-
-Adds a lforall procedure for the PDF linearizer. (lib/pdf_base.ps [1.3]:
-2000/03/19 01:50:05 lpd)
-
-Changes the PDF interpreter so that following an object reference doesn't
-store the result back into the referring slot, and so that # # R always
-creates an indirect object. This is necessary for the PDF linearizer. It
-shouldn't have any visible effect (other than a possible small performance
-cost). (lib/pdf_base.ps [1.4], lib/pdf_draw.ps [1.4]: 2000/03/19 01:53:58
-lpd)
-
-Refactors some code to make it usable by the PDF linearizer.
-(lib/pdf_main.ps [1.3]: 2000/03/19 17:26:42 lpd)
-
-Speeds up loading embedded Type 1 fonts a little. (lib/pdf_base.ps [1.5],
-lib/pdf_font.ps [1.4]: 2000/03/24 07:42:16 lpd)
-
-Speeds up reading embedded Type 1 fonts a little more.
-(lib/pdf_font.ps [1.5]: 2000/03/24 16:28:26 lpd)
-
-</pre><h2><a name="6.20 Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Font substitution was broken. (lib/gs_fonts.ps [1.3]: 2000/03/19
-00:22:05 lpd)
- - The CFF reader gave an error if a font included any Subrs (it's
-very surprising that this hasn't surfaced before, but apparently Acrobat
-Distiller always produces CFF fonts with no Subrs); the CFF reader didn't
-default lenIV to -1 for Type 1 CharStrings; the CFF reader wasn't able to
-read CIDFonts. (lib/gs_cff.ps [1.3], lib/gs_cidfn.ps [1.4]: 2000/03/19
-00:45:40 lpd)
- - EXTEND_NAMES had stopped working, because not all places that
-needed the index of a name ref used name_index rather than r_size
-(ilocate.c), and because the high_index value in the name sub-table was set
-incorrectly (iname.c). (ilocate.c [1.2], iname.c [1.2]: 2000/03/19 01:33:23
-lpd)
- - The attribute check for Functions being executed was incorrect
-(always succeeded). (zfunc.c [1.2]: 2000/03/19 02:12:37 lpd)
- - s_add_filter didn't ensure enough buffering. This entailed moving
-the NullEncode/Decode filters to stream.[hc]. (sfilter1.c [1.2]: 2000/03/19
-03:15:02 lpd)
- - The parameters of SubFileDecode filters weren't initialized fully
-(required by a change in this version). (zfilter.c [1.3]: 2000/03/19
-04:03:45 lpd)
- - The AutoPositionEPSFiles Distiller parameter was misspelled
-AutoPositionEPSFile. (lib/gs_pdfwr.ps [1.2]: 2000/03/19 05:03:31 lpd)
- - Enumerating the elements of a dictionary-based parameter list
-returned garbage for the keys. (iparam.c [1.2]: 2000/03/19 15:13:13 lpd)
- - .buildfont0 should not check CIDSystemInfo compatibility. The
-PLRM3 says PostScript interpreters do not make this check, even though the
-PLRM2 says compatibility is required (!). (zfcmap.c [1.2]: 2000/03/19
-16:53:50 lpd)
- - If log2_transfer_map_size > 8, identity transfer functions
-returned garbage. The fix requires that if a client wants to set a transfer
-function to the identity mapping, it must call gx_set_identity_transfer
-rather than simply setting the procedure to gs_identity_transfer.
-(zcolor.c [1.2]: 2000/03/19 17:14:47 lpd)
- - Separation color spaces didn't store the separation name.
-(zcssepr.c [1.2]: 2000/03/19 17:21:36 lpd)
- - The addition of the dummy cid_Setup procedure in gs 6.01 was
-accidentally commented out. (lib/gs_cidfn.ps [1.5]: 2000/03/21 00:11:55 lpd)
- - The test for whether an CIDFontType 2 outline string was large
-enough to include prefixed metrics was backwards, which would have caused
-problems with any font that used MetricsCount. (zfcid.c [1.3]: 2000/03/21
-00:43:17 lpd)
- - A couple of places in the Windows code didn't correctly handle
-Ghostscript version numbers of the form #.0#. (dwsetup.cpp [1.2]: 2000/03/22
-21:45:03 lpd)
- - In some cases, re-registering an existing font or CIDFont with
-definefont would cause an invalidfont error. (zbfont.c [1.4],
-zfont42.c [1.3]: 2000/03/28 18:20:39 lpd)
- - Re-registering a CIDFont with definefont, or defining a CIDFont
-with definefont instead of /CIDFont defineresource, caused an invalidfont
-error or a crash. (lib/gs_cidfn.ps [1.9], lib/gs_fonts.ps [1.4]: 2000/03/28
-18:21:50 lpd)
- - The new C BuildGlyph code for CIDFontType 0 fonts didn't handle
-GlyphDirectory or Type 2 CharStrings correctly. (lib/gs_cidfn.ps [1.12],
-zfcid.c [1.8]: 2000/03/31 23:21:57 lpd)
- - The internaldict "operator" was allocated in local VM, preventing
-it from being bound into procedures allocated in global VM.
-(lib/gs_init.ps [1.6]: 2000/04/04 22:16:02 lpd)
- - If there was a CIDInit ProcSet defined in the filesystem, the code
-for initializing the built-in CIDInit ProcSet became confused.
-(lib/gs_cidfn.ps [1.13]: 2000/04/04 22:17:33 lpd)
- - Fixes several problems in resourceforall and resource loading: the
-operands of resourceforall were restored even in the case of an error in the
-client's procedure; the name Instances had special meaning for some Adobe
-code; resourceforall caused an invalidaccess error if an operand was in
-local VM but the current VM was global; loading a resource from a file could
-cause a typecheck error if the file left values on the operand stack.
-(interp.c [1.3], lib/gs_ccfnt.ps [1.2], lib/gs_res.ps [1.3]: 2000/04/04
-22:26:02 lpd)
- - resourceforall didn't enumerate external (loadable) instances, and
-would enumerate an instance twice if it had both a local and a global
-definition. (lib/gs_res.ps [1.4]: 2000/04/05 21:07:02 lpd)
- - The implementation of resourcestatus wasn't compatible with some
-badly written code in an Adobe font downloader that assumes that the
-implementation of resourcestatus in Generic and Font is the same.
-(lib/gs_res.ps [1.5]: 2000/04/05 21:20:07 lpd)
- - The just-checked-in fixed for resourceforall didn't work properly
-for the IdiomSet category. (They probably failed for other categories that
-had no instances, but we didn't check this.) (lib/gs_res.ps [1.6]:
-2000/04/05 21:51:43 lpd)
- - Some Adobe font downloading code assumed that loading a resource
-file would never leave extra values on the stack; our implementation didn't
-ensure this (by popping them if needed). (lib/gs_res.ps [1.8]: 2000/04/06
-04:50:28 lpd)
- - If an alphabetic font defined and used a .notdef character,
-pdfwrite always converted it to a bitmap. (lib/gs_lgo_e.ps [1.2]: 2000/04/07
-02:48:23 lpd)
-
-Provides a gs_atan2_degrees procedure to parallel sin and cos.
-(zmath.c [1.2]: 2000/03/18 23:10:39 lpd)
-
-Speeds up string garbage collection by scanning unmodified string regions
-faster. (igcstr.c [1.2]: 2000/03/18 23:29:32 lpd)
-
-Adds the ImagemaskTrapping parameter to the trapping state.
-(lib/gs_trap.ps [1.2]: 2000/03/18 23:35:53 lpd)
-
-Increments the version number to 6.20, in anticipation of the next release.
-(We do this at the beginning of the development for a release, not the end.)
-(lib/gs_init.ps [1.4]: 2000/03/19 00:27:22 lpd)
-
-Adds a pseudo-encoding for the CFF StandardStrings that represent
-characters. (lib/gs_cff.ps [1.2], lib/gs_css_e.ps [1.1]: 2000/03/19 00:38:50
-lpd)
-
-Refactors the code for getting Type 1/2/4 font parameters so it can be used
-for FDArray entries of CIDFontType 0 fonts. (ifont1.h [1.2], zfont1.c [1.2]:
-2000/03/19 02:07:45 lpd)
-
-Speeds up Function evaluation slightly, by preallocating space for a
-reasonable number of operands and results on the C stack rather than always
-allocating it on the heap. (zfunc.c [1.3]: 2000/03/19 02:16:58 lpd)
-
-Adds a public procedure for determining whether a PostScript object is a
-Function, and if so, returning the pointer to the gs_function_t structure.
-(ifunc.h [1.2], zfunc.c [1.4]: 2000/03/19 02:22:01 lpd)
-
-Splits out the [T]BCP filter interface into a separate file. (zfbcp.c [1.2]:
-2000/03/19 02:40:18 lpd)
-
-Adds a skip_count parameter to the SubFileDecode filter, giving the number
-of initial bytes or records to skip over. (Needed for printing FunctionType
-4 functions, possibly useful for other things.) (sfilter1.c [1.3]:
-2000/03/19 03:20:18 lpd)
-
-Replaces the implementation of FunctionType 4 functions at the PostScript
-language level with one that uses the new library-based facilities.
-(zdevice2.c [1.2], zfunc4.c [1.2]: 2000/03/19 06:56:23 lpd)
-
-Changes the key type returned by parameter list enumeration to include a
-persistence flag, makes C parameter lists support non-persistent keys, and
-upgrades GC descriptors so that parameter lists can be used non-transiently;
-updates implementors of parameter lists to call gs_param_list_init to
-initialize the common members, which is now required. (iparam.c [1.3]:
-2000/03/19 15:16:11 lpd)
-
-Makes Separation and DeviceN color spaces convert their tint transform
-function to a FunctionType 4 Function if possible, for better accuracy and
-to allow writing in PDF files. (lib/gs_lev2.ps [1.2], lib/gs_ll3.ps [1.2]:
-2000/03/19 15:28:34 lpd)
-
-Makes st_indexed_map private. Clients must now use the constructor procedure
-alloc_indexed_map rather than allocating instances directly.
-(zcsindex.c [1.2]: 2000/03/19 16:37:28 lpd)
-
-Refactors the code for building fonts so it can be used for FDArray entries
-of CIDFontType 0 fonts. (bfont.h [1.2], zbfont.c [1.2]: 2000/03/19 16:45:47
-lpd)
-
-Adds a .fileposition operator that will read the position even of
-non-positionable streams, needed for the PDF linearizer. (zfileio.c [1.3]:
-2000/03/20 04:30:49 lpd)
-
-Starts to move support for CIDFontType 0 and 2 into C code, needed by the
-PDF writer for handling CID-keyed fonts. Implements GlyphDirectory for
-CIDFonts. Makes GDBytes and CIDMapOffset optional for CIDFontType 0 fonts
-that have a GlyphDirectory (not documented in the PLRM, but clearly
-correct). Implements Adobe 3011 features: integer and dictionary CIDMaps,
-and the MetricsCount entry, in CIDFontType 2 fonts (but only in the C code,
-which isn't hooked in yet, not in the PostScript code in gs_cidfn.ps.)
-(icid.h [1.1], ifont.h [1.2], ifont42.h [1.1], zcid.c [1.2], zfcid.c [1.1],
-zfcmap.c [1.3], zfont42.c [1.2]: 2000/03/20 19:53:06 lpd)
-
-Hooks the new CIDMap code into the BuildGlyph procedure for CIDFontType 2
-fonts. (Contrary to a previous log comment, MetricsCount is already hooked
-in.) Support for CIDFontType 2 fonts is now implemented entirely in C, as
-for Type 42 fonts. (lib/gs_cidfn.ps [1.6], zfcid.c [1.2]: 2000/03/21
-00:32:15 lpd)
-
-Extends the C support for CIDFontType 0 fonts to include those with FontType
-2 subfonts in the FDArray (an Adobe 3011 addition, specifically for CFF
-fonts). (ifont2.h [1.1], zfcid.c [1.4], zfont2.c [1.2]: 2000/03/21 07:43:42
-lpd)
-
-Changes Subr loading for CIDFontType 0 fonts from lazy to immediate, so that
-C code can be guaranteed access to the Subrs. (In every CIDFontType 0 font
-that we have seen, SubrCount is 5, so this has no significant time or space
-cost.) Also adds support for FDBytes > 1 in GlyphDirectory definitions.
-(lib/gs_cidfn.ps [1.7]: 2000/03/21 20:06:44 lpd)
-
-Splits off the ReusableStreamDecode filter as a separate module, since
-CIDFontType 0 fonts will use it even in LanguageLevels below 3.
-(lib/gs_frsd.ps [1.1], lib/gs_ll3.ps [1.3], zfrsd.c [1.1]: 2000/03/21
-21:34:57 lpd)
-
-Makes file streams remember the file name, needed for efficiently
-implementing reusable streams. (zfile.c [1.3], zfileio.c [1.4]: 2000/03/23
-02:13:40 lpd)
-
-Changes the new .filename operator to return true/false rather than causing
-an error; redefines findlibfile in terms of a simpler .libfile operator +
-.filename. (lib/gs_init.ps [1.5], zfile.c [1.4], zfileio.c [1.5]: 2000/03/23
-18:47:17 lpd)
-
-Finishes implementing the file case of ReusableStreamDecode. This required
-adding the ability to restrict file-reading streams to a subfile.
-(lib/gs_frsd.ps [1.2], sfilter1.c [1.4], zfileio.c [1.6], zfrsd.c [1.2]:
-2000/03/24 03:59:42 lpd)
-
-Changes the implementation of incrementally loaded CIDFontType 0 fonts to
-use a ReusableStreamDecode filter, in anticipation of moving the BuildGlyph
-procedure for these fonts from PostScript to C. (lib/gs_cidfn.ps [1.8],
-zbfont.c [1.3], zfcid.c [1.5]: 2000/03/27 16:36:24 lpd)
-
-Changes the get_outline / glyph_data procedure for getting encoded font
-outline data to return an indication of whether the outline data were just
-allocated and can be freed by the client. (This is a possibly
-non-backward-compatible change.) (zfcid.c [1.6]: 2000/03/28 18:47:02 lpd)
-
-Changes the procs structure of gs_type1_data to an in-line structure rather
-than a pointer to a const structure. (Needed for moving CIDFontType 0
-support into C.) (zfont1.c [1.3]: 2000/03/29 22:10:31 lpd)
-
-Finishes moving support for CIDFontType 0 fonts from PostScript to C.
-(ifont.h [1.3], ifont42.h [1.2], lib/gs_cidfn.ps [1.10], zfcid.c [1.7],
-zfont42.c [1.4]: 2000/03/31 04:55:18 lpd)
-
-Allows dictionaries as the value of CIDMap resources. (Also removes an
-unrelated obsolete comment.) (lib/gs_cidfn.ps [1.11]: 2000/03/31 05:11:30
-lpd)
-
-Finishes implementing the ability to write CIDFontType 0 CFFs. This involved
-a surprising number of changes in other font-related files. (ichar1.h [1.2],
-ifcid.h [1.1], zchar1.c [1.2], zfcid.c [1.9], zfcid0.c [1.1],
-zfcid1.c [1.1], zfont1.c [1.4]: 2000/04/02 07:38:46 lpd)
-
-Makes the .writefont9 operator (used only for testing) available in both
-DEBUG and PROFILE configurations. (zfcid0.c [1.2]: 2000/04/03 02:37:55 lpd)
-
-Extends .forceput to handle arrays as well as dictionaries, required to fix
-a bug with internaldict. (zdict.c [1.2], zgeneric.c [1.2]: 2000/04/04
-22:13:23 lpd)
-
-Works around an Adobe code assumption that the default FindResource
-procedure does *not* call the ResourceStatus procedure if the requested
-instance is already defined in VM. (lib/gs_res.ps [1.7]: 2000/04/05 23:31:54
-lpd)
-
-Implements the framework for superexec (but none of the actual access check
-bypasses). (icontext.c [1.2], icstate.h [1.2], zcontrol.c [1.2]: 2000/04/06
-04:40:06 lpd)
-
-Extends the undocumented CCRun procedure to take an additional argument, a
-Private dictionary, required by some Adobe font downloading code.
-(lib/gs_type1.ps [1.3]: 2000/04/06 05:25:10 lpd)
-
-</pre><h2><a name="6.20 Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - s_add_filter didn't ensure enough buffering. This entailed moving
-the NullEncode/Decode filters to stream.[hc]. (sfilter.h [1.3],
-stream.c [1.3], stream.h [1.3]: 2000/03/19 03:15:02 lpd)
- - When FPU_TYPE <= 0, the image interpolation code lost too much
-accuracy, producing color streaks in the output. (Fix by DanCoby.)
-(siscale.c [1.2]: 2000/03/29 20:34:45 lpd)
- - Fixes a couple of typos in the recently checked-in image
-interpolation fix. (siscale.c [1.3]: 2000/03/30 06:55:26 lpd)
-
-Splits out the [T]BCP filter interface into a separate file. (sbcp.c [1.2],
-sbcp.h [1.1], sfilter.h [1.2]: 2000/03/19 02:40:18 lpd)
-
-Adds a skip_count parameter to the SubFileDecode filter, giving the number
-of initial bytes or records to skip over. (Needed for printing FunctionType
-4 functions, possibly useful for other things.) (sfilter.h [1.4]: 2000/03/19
-03:20:18 lpd)
-
-Changes the key type returned by parameter list enumeration to include a
-persistence flag, makes C parameter lists support non-persistent keys, and
-upgrades GC descriptors so that parameter lists can be used non-transiently;
-updates implementors of parameter lists to call gs_param_list_init to
-initialize the common members, which is now required. (spsdf.c [1.2]:
-2000/03/19 15:16:11 lpd)
-
-Makes file streams remember the file name, needed for efficiently
-implementing reusable streams. (stream.c [1.4], stream.h [1.4]: 2000/03/23
-02:13:40 lpd)
-
-Finishes implementing the file case of ReusableStreamDecode. This required
-adding the ability to restrict file-reading streams to a subfile.
-(sfxfd.c [1.2], sfxstdio.c [1.2], stream.c [1.5], stream.h [1.5]: 2000/03/24
-03:59:42 lpd)
-
-Changes a few initializations to suppress warnings from one picky compiler
-that doesn't like ptr = buf - 1 where buf is an array. (spsdf.c [1.3]:
-2000/03/28 02:01:34 lpd)
-
-</pre><h2><a name="6.20 Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Two comments in the file were incorrect. (gsiparm3.h [1.2]:
-2000/03/19 02:46:11 lpd)
- - param_coerce_typed, which works with any parameter list
-implementation, was incorrectly described as associated with the default
-implementation. (gsparam.h [1.2]: 2000/03/19 03:37:08 lpd)
- - TrueType fonts didn't use vhea/vmtx if WMode = 1. Also makes
-gs_font_type42 subclassable, for implementing CIDFontType 2 fonts, and makes
-its procedure for getting a glyph's side bearing and width virtual, required
-to support MetricsCount in CIDFontType 2 fonts. (gstype42.c [1.3],
-gxfont42.h [1.2]: 2000/03/19 03:58:51 lpd)
- - ImageType 4 images didn't give an error for out-of-range MaskColor
-values. The file also had an unnecessary #include. (gximage4.c [1.2]:
-2000/03/19 04:10:09 lpd)
- - If log2_transfer_map_size > 8, identity transfer functions
-returned garbage. The fix requires that if a client wants to set a transfer
-function to the identity mapping, it must call gx_set_identity_transfer
-rather than simply setting the procedure to gs_identity_transfer.
-(gxclrast.c [1.3], gxcmap.c [1.2], gxfmap.h [1.2]: 2000/03/19 17:14:47 lpd)
- - Fixes a warning about aliasing produced by one extremely picky
-compiler. (gsnogc.c [1.2]: 2000/03/22 21:39:32 lpd)
- - Filling or clipping with ridiculously large (out-of-bounds)
-coordinates could cause an internal overflow that produced incorrect
-results. (This is probably not the last such bug.) (gxfill.c [1.2]:
-2000/03/30 07:03:59 lpd)
-
-Provides a gs_atan2_degrees procedure to parallel sin and cos.
-(gsmisc.c [1.2], gxfarith.h [1.2]: 2000/03/18 23:10:39 lpd)
-
-Improves the 8x8 bitmap "flipping" procedure to take advantage of 32-bit
-ints. (gsutil.c [1.2]: 2000/03/18 23:16:16 lpd)
-
-Adds a public procedure for restricting a color to its legal range.
-(gscspace.c [1.2], gscspace.h [1.2], gxcspace.h [1.2]: 2000/03/18 23:19:17
-lpd)
-
-Adds the new ImagemaskTrapping parameter to the trapping state.
-(gstrap.c [1.2], gstrap.h [1.2]: 2000/03/18 23:26:17 lpd)
-
-Increments the version number to 6.20, in anticipation of the next release.
-(We do this at the beginning of the development for a release, not the end.)
-(gscdef.c [1.2]: 2000/03/19 00:27:22 lpd)
-
-Adds a pseudo-encoding for the CFF StandardStrings that represent
-characters. (gsccode.h [1.2]: 2000/03/19 00:38:50 lpd)
-
-Adds a bit_index procedure to the implementation of device halftones,
-required for writing halftones in PDF files. (The only implementors are
-internal ones.) (gxdht.h [1.2], gxhtbit.c [1.2]: 2000/03/19 05:10:55 lpd)
-
-Adds a public procedure for getting a palette entry of an Indexed color
-space, used when writing Indexed color spaces in PDF files.
-(gscindex.h [1.1], gscolor2.c [1.2], gscolor2.h [1.2]: 2000/03/19 05:20:28
-lpd)
-
-Reimplements "PostScript calculator" (FunctionType 4) functions entirely in
-C, to allow them to be written out in PDF files. (gsfunc4.c [1.1],
-gsfunc4.h [1.1], gsstruct.h [1.2]: 2000/03/19 05:25:53 lpd)
-
-Moves gx_device_color_equal to the public API, for detecting redundant color
-setting when writing PDF files. (gsdcolor.h [1.2], gxdcolor.c [1.2],
-gxdcolor.h [1.2]: 2000/03/19 06:46:08 lpd)
-
-Changes the default value of BufferSpace to 4 Mb. In desktop applications,
-this is a reasonable value that can substantially improve performance
-(especially for color printers); embedded applications will want to set
-BufferSpace themselves in any case. (gdevprn.h [1.2]: 2000/03/19 06:51:13
-lpd)
-
-Adds virtual procedures for Functions to write their parameters to a
-parameter list, and to access their data source and subfunctions. This is
-needed for writing Functions in PDF files. This change is also a
-prerequisite for the C implemention of FunctionType 4 functions, even though
-it appears later in the change log. (gsdsrc.h [1.2], gsfunc.c [1.2],
-gsfunc.h [1.2], gsfunc0.c [1.2], gsfunc3.c [1.2], gsparam.c [1.2],
-gsparam.h [1.3], gxfunc.h [1.2]: 2000/03/19 07:24:53 lpd)
-
-Splits off "vanilla" Functions into separate files, in anticipation of
-removing them (they were only used to implement PostScript Calculator
-Functions). (gsfunc.c [1.3], gsfunc.h [1.3], gsfuncv.c [1.1],
-gsfuncv.h [1.1]: 2000/03/19 07:33:08 lpd)
-
-Adds a procedure for allocating a C parameter list. (gscparam.c [1.2],
-gsparam.h [1.4]: 2000/03/19 15:00:05 lpd)
-
-Undoes a premature change that depends on an update not yet checked in.
-(gscparam.c [1.3]: 2000/03/19 15:07:59 lpd)
-
-Changes the key type returned by parameter list enumeration to include a
-persistence flag, makes C parameter lists support non-persistent keys, and
-upgrades GC descriptors so that parameter lists can be used non-transiently;
-updates implementors of parameter lists to call gs_param_list_init to
-initialize the common members, which is now required. (gscparam.c [1.4],
-gsparam.c [1.3], gsparam.h [1.5]: 2000/03/19 15:16:11 lpd)
-
-Adds a procedure for copying one parameter list to another.
-(gsparamx.c [1.2], gsparamx.h [1.2]: 2000/03/19 15:35:31 lpd)
-
-Records the CTM used for sampling HalftoneType 1 spot functions. This is
-needed for recognizing the standard spot functions when producing PDF
-output. Also factors the code for initializing spot functions for the
-benefit of the PDF writer. (gshtscr.c [1.2], gxdht.h [1.3], gzht.h [1.2]:
-2000/03/19 15:43:36 lpd)
-
-Adds a proc_data member to the map for Separation and Indexed color spaces.
-(gscolor2.c [1.3], gxcolor2.h [1.2]: 2000/03/19 16:23:46 lpd)
-
-Makes st_indexed_map private. Clients must now use the constructor procedure
-alloc_indexed_map rather than allocating instances directly.
-(gscolor2.c [1.4], gscsepr.c [1.2], gxclrast.c [1.2], gxcolor2.h [1.3]:
-2000/03/19 16:37:28 lpd)
-
-Adds procedures for building and accessing DeviceN color spaces.
-(gscdevn.c [1.2], gscdevn.h [1.1]: 2000/03/19 17:02:37 lpd)
-
-Exports the 'blend' operators of the Type 1 interpreter, for use by the Type
-1 / Type 2 font writer. (gstype1.c [1.3], gxtype1.c [1.2], gxtype1.h [1.3]:
-2000/03/19 18:46:44 lpd)
-
-Starts to move support for CIDFontType 0 and 2 fonts into C code. (These
-header files are the ones needed to compile the new gdevpsf* files; they
-don't interact with any existing code.) (gxcid.h [1.1], gxfcid.h [1.1]:
-2000/03/20 06:40:22 lpd)
-
-Moves font-writing support into a new module (gdevpsf*), changing the source
-file names. Adds the ability to write CFF fonts, with either Type 1 or Type
-2 CharStrings; unfortunately, Acrobat Reader appears not to accept CFF fonts
-with Type 1 CharStrings. Adds the ability to convert Type 1 CharStrings to
-Type 2, including optimizing sequences of Type 1 operators into a single
-Type 2 operator. Implements writing CIDFontType 0 CFF fonts (CIDFonts) [NOT
-TESTED]. Starts (just barely) to remove more unneeded information from
-embedded TrueType fonts. (gxttf.h [1.1]: 2000/03/20 07:02:12 lpd)
-
-Starts to move support for CIDFontType 0 and 2 into C code, needed by the
-PDF writer for handling CID-keyed fonts. Implements GlyphDirectory for
-CIDFonts. Makes GDBytes and CIDMapOffset optional for CIDFontType 0 fonts
-that have a GlyphDirectory (not documented in the PLRM, but clearly
-correct). Implements Adobe 3011 features: integer and dictionary CIDMaps,
-and the MetricsCount entry, in CIDFontType 2 fonts (but only in the C code,
-which isn't hooked in yet, not in the PostScript code in gs_cidfn.ps.)
-(gsfcid.c [1.1], gsfcmap.c [1.3], gxfcmap.h [1.2], gxfont1.h [1.2]:
-2000/03/20 19:53:06 lpd)
-
-Changes a few initializations to suppress warnings from one picky compiler
-that doesn't like ptr = buf - 1 where buf is an array. (gxclpath.c [1.2]:
-2000/03/28 02:01:34 lpd)
-
-Changes the get_outline / glyph_data procedure for getting encoded font
-outline data to return an indication of whether the outline data were just
-allocated and can be freed by the client. (This is a possibly
-non-backward-compatible change.) (gxfcid.h [1.2], gxfont42.h [1.3]:
-2000/03/28 18:47:02 lpd)
-
-Changes the procs structure of gs_type1_data to an in-line structure rather
-than a pointer to a const structure. (Needed for moving CIDFontType 0
-support into C.) (gstype1.c [1.4], gstype2.c [1.3], gxfont1.h [1.3],
-gxtype1.c [1.3]: 2000/03/29 22:10:31 lpd)
-
-Finishes moving support for CIDFontType 0 fonts from PostScript to C.
-(gxfcid.h [1.3]: 2000/03/31 04:55:18 lpd)
-
-Finishes implementing the ability to write CIDFontType 0 CFFs. This involved
-a surprising number of changes in other font-related files. (gsfcid.c [1.2],
-gxfcid.h [1.4]: 2000/04/02 07:38:46 lpd)
-
-<hr>
-
-<h1><a name="Version6.01"></a>Version 6.01 (2000-03-17)</h1>
-
-This is a bug-fix release for 6.0.
-
-This release fixes the following reported bugs: #101555, #101813, #101816,
-#101818, #101827, #101830, #101871, #101853, #101906, #101949, #101950,
-#102003, #102004, #102038, #102081, #102936.
-
-<h2><a name="6.01_Incompatible_changes"></a>Incompatible changes</h2>
-
-(Platforms)
- - OpenVMS using VAX C is no longer supported. (OpenVMS with DEC C
-and gcc are still supported.)
-(Drivers)
- - The third argument of psdf_set_color is changed from const char *
-to const psdf_set_color_commands_t *.
-(Interpreter)
- - The non-standard feature of writing dictionaries in binary object
-output is now disabled by default, but can now be enabled dynamically.
-(Library)
- - The definition of TRANSPARENCY_PER_H_P is moved from gdevmrop.h to
-gsropt.h.
- - The handling of the source opaque, texture transparent case of
-RasterOp when TRANSPARENCY_PER_H_P is defined is changed slightly.
-
-
-<h2><a name="6.01 Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Fixes a typo. (man/ps2pdf.1 [1.2]: 2000/03/10 03:11:06 lpd)
- - When converting PostScript to PDF, selecting /Bicubic as an image
-DownsampleType caused an error instead of defaulting to /Average.
-(doc/Ps2pdf.htm [1.2]: 2000/03/10 04:16:09 lpd)
- - The gs###src.zip and gs###lib.zip files weren't mentioned as being
-included in distributions; News.htm and Changes.htm weren't mentioned at
-all. (doc/Release.htm [1.5]: 2000/03/15 07:23:52 lpd)
- - Fixes a problem producing too much black in the output; also adds
-support for 5 new printers (H-P Color DeskJet 690, H-P DesignJet 750, and
-Epson Stylus Color 200). Note that this is user-contributed code.
-(doc/Devices.htm [1.2]: 2000/03/16 02:01:36 lpd)
-
-In ansi2knr, adds user-contributed support for concatenated string literals
-and character constants, and fixes for a couple of minor bugs.
-(man/ansi2knr.1 [1.2]: 2000/03/10 03:16:17 lpd)
-
-Removes an inappropriate copying notice. (doc/Hershey.htm [1.2]: 2000/03/10
-07:03:57 lpd)
-
-Clarifies when xdpyinfo and xwininfo are needed. Adds privacy options for
-problem reports. (doc/Bug-form.htm [1.2]: 2000/03/10 07:06:08 lpd)
-
-Adds a new eps2eps utility analogous to ps2ps. (man/eps2eps.1 [1.1],
-man/ps2ps.1 [1.2]: 2000/03/10 07:51:55 lpd)
-
-Updates the documentation on making RPMs, which is no longer supported.
-(doc/Install.htm [1.2], doc/Make.htm [1.2]: 2000/03/10 07:58:00 lpd)
-
-Adds a recommendation to use gcc on SGI platforms. (doc/Make.htm [1.3]:
-2000/03/10 07:59:53 lpd)
-
-Updates documentation regarding Unix systems that do/don't use libpthread.
-(doc/Make.htm [1.4]: 2000/03/10 08:01:35 lpd)
-
-Removes support for VAX C, which DEC stopped supporting 9 (!) years ago.
-(doc/Make.htm [1.5], doc/Use.htm [1.2]: 2000/03/10 08:02:59 lpd)
-
-Updates the documentation for building Aladdin releases to reflect revised
-procedures for the Windows executable, and a few other minor changes.
-(doc/Release.htm [1.2]: 2000/03/10 15:55:39 lpd)
-
-Adds the ability to compile on OS/2 with XFree86. (doc/Install.htm [1.3],
-doc/Make.htm [1.6]: 2000/03/10 19:50:49 lpd)
-
-Moves all history for versions 5.n into History5.htm; creates History6.htm
-for versions 6.n; redefines News.htm as containing only news for the current
-release; adds (a link to) Changes.htm for the mechanically generated change
-log. (doc/History5.htm [1.2], doc/History6.htm [1.1], doc/News.htm [1.2],
-doc/README [1.2], doc/Readme.htm [1.2]: 2000/03/14 06:14:43 lpd)
-
-Partially updates the release procedure documentation to reflect the use of
-SourceForge and CVS. (doc/Release.htm [1.3]: 2000/03/14 06:39:23 lpd)
-
-Adds a change log generated mechanically from the CVS logs. Future releases
-may omit this file (doc/Changes.htm) from their change log.
-(doc/Changes.htm [1.1], doc/News.htm [1.3]: 2000/03/14 06:48:44 lpd)
-
-Revises the release procedures to reflect use of SourceForge, and to
-separate out the procedures for building Windows executables.
-(doc/Release.htm [1.4]: 2000/03/15 02:24:58 lpd)
-
-Adds information on uninstalling Ghostscript on Windows.
-(doc/Install.htm [1.4]: 2000/03/15 07:29:53 lpd)
-
-Adds the ability to set the ProcessColorModel of the pdfwrite device to
-/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
-for fill, stroke, text, and imagemask, and for images that (for whatever
-reason) can't be written in their specified color space. Note that this is a
-short-term fix: pdfwrite should output colors in the color space in which
-they were specified. However, a proper fix will require more significant
-architectural changes. (doc/News.htm [1.4]: 2000/03/16 01:21:23 lpd)
-
-Adds a reference to a third-party Fontmap for the Computer Modern fonts.
-(doc/Fonts.htm [1.2]: 2000/03/16 04:05:07 lpd)
-
-Adds documentation and a makefile entry for Matthew Gelhaus' cdj880 driver.
-The code will eventually be included in gdevcd8.c, but it is not yet mature
-enough. (doc/Devices.htm [1.3]: 2000/03/16 08:09:42 lpd)
-
-Updates the version number reference in the troff header.
-(man/ps2pdf.1 [1.3], man/ps2ps.1 [1.3]: 2000/03/17 00:47:08 lpd)
-
-Removes the attempted documentation on building Windows executable
-distributions: it was never correct, and Aladdin will no longer be creating
-such distributions. Also reorganizes the document slightly and brings the
-rest of it fully into line with reality. (doc/Release.htm [1.6]: 2000/03/17
-04:40:47 lpd)
-
-Adds information on building with the Intel C/C++ optimizing compiler
-(requires the Microsoft Visual C++ environment), and fixes a typo in the
-link to ftp.cdrom.com. (doc/Make.htm [1.7]: 2000/03/17 17:42:59 lpd)
-
-Checks in the first wrap-up for the 6.01 release. (doc/Changes.htm [1.2],
-doc/History6.htm [1.2], doc/News.htm [1.5]: 2000/03/18 04:13:40 lpd)
-
-</pre><h2><a name="6.01 Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - The terminating $ on the $Id: line in gsmalloc.c was missing, and
-dwuninst.rc lacked a $Id: line. (dwuninst.rc [1.2]: 2000/03/10 03:44:33 lpd)
- - The %ram% IODevice was defined, but should not be (it represents a
-RAM-based file system, which Ghostscript does not provide). Fix: The type of
-the %null% IODevice was /FileSystem rather than /Special. (int.mak [1.2]:
-2000/03/10 07:02:07 lpd)
- - The dependency list for coslwxl omitted a $(DD).
-(contrib.mak [1.2]: 2000/03/10 07:30:54 lpd)
- - The makefile still referred to a long-gone driver for the DEC
-LA70. (contrib.mak [1.3]: 2000/03/10 07:32:43 lpd)
- - The Unix install process tried to make links without deleting them
-first. (unixinst.mak [1.2]: 2000/03/10 07:49:21 lpd)
- - The Watcom compiler switches didn't force enums to occupy a full
-int, leading to execution errors because the code casts (enum *) pointers to
-(int *). (wccommon.mak [1.2]: 2000/03/10 08:15:31 lpd)
- - The Windows zip archive didn't include font metrics files. (This
-change only fixes the build procedure: it doesn't actually update the
-currently released zip archive.) (winint.mak [1.2]: 2000/03/10 08:17:06 lpd)
- - the "all architectures" build and test script hadn't been updated
-to use different STDLIBS values depending on where the platform provides the
-pthreads library. (all-arch.mak [1.2]: 2000/03/10 15:40:43 lpd)
- - The documentation for building with pthreads on FreeBSD hadn't
-been updated. (unix-gcc.mak [1.2], unixansi.mak [1.2], unixtrad.mak [1.2]:
-2000/03/10 15:44:01 lpd)
- - gsmalloc.c didn't include the prototype for gs_exit(), which it
-calls. (lib.mak [1.2]: 2000/03/10 15:53:08 lpd)
-
-Because of rampant confusion, disagreement, and lack of standardization,
-removes the RPM-related spec and patch files. (gs-fonts.rps [1.2],
-gs.rps [1.2], rpm-conf.dif [1.2]: 2000/03/10 03:22:04 lpd)
-
-Increases the stack size for the PC platforms, since a user had reported
-that the OS/2 stack size was too small. (dw32c.def [1.2],
-dwmain32.def [1.2], gsos2.def [1.2]: 2000/03/10 03:33:21 lpd)
-
-Updates the Brother HL7xx drivers with a new user-contributed version, plus
-a couple of minor fixes. (contrib.mak [1.4]: 2000/03/10 07:33:44 lpd)
-
-Adds a new eps2eps utility analogous to ps2ps. (unixinst.mak [1.3]:
-2000/03/10 07:51:55 lpd)
-
-Removes support for VAX C, which DEC stopped supporting 9 (!) years ago.
-(openvms.mak [1.2], openvms.mmk [1.2]: 2000/03/10 08:02:59 lpd)
-
-Updates all makefiles to the current libpng version, 1.0.5.
-(bcwin32.mak [1.2], dvx-gcc.mak [1.2], msvc32.mak [1.2], msvclib.mak [1.2],
-os2.mak [1.2], ugcclib.mak [1.2], unix-gcc.mak [1.3], unixansi.mak [1.3],
-unixtrad.mak [1.3], watc.mak [1.2], watclib.mak [1.2], watcw32.mak [1.2]:
-2000/03/10 15:48:58 lpd)
-
-Updates the version # to 6.01, and the version date. (version.mak [1.2]:
-2000/03/10 17:18:29 lpd)
-
-Adds the ability to compile on OS/2 with XFree86. (os2.mak [1.3]: 2000/03/10
-19:50:49 lpd)
-
-Moves all history for versions 5.n into History5.htm; creates History6.htm
-for versions 6.n; redefines News.htm as containing only news for the current
-release; adds (a link to) Changes.htm for the mechanically generated change
-log. (unixinst.mak [1.4], version.mak [1.3]: 2000/03/14 06:14:44 lpd)
-
-Adds entries for ibm-rs6000-aix-4.3, sgi-mips-irix6.5-64bit, and
-sun-sparc-solaris-64bit. (all-arch.mak [1.3]: 2000/03/15 18:38:29 lpd)
-
-Adds the ability to set the ProcessColorModel of the pdfwrite device to
-/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
-for fill, stroke, text, and imagemask, and for images that (for whatever
-reason) can't be written in their specified color space. Note that this is a
-short-term fix: pdfwrite should output colors in the color space in which
-they were specified. However, a proper fix will require more significant
-architectural changes. (version.mak [1.4]: 2000/03/16 01:21:24 lpd)
-
-Adds documentation and a makefile entry for Matthew Gelhaus' cdj880 driver.
-The code will eventually be included in gdevcd8.c, but it is not yet mature
-enough. (contrib.mak [1.5]: 2000/03/16 08:09:42 lpd)
-
-Adds a missing dependency of gdevpdft.o on gxfont42.h. (devs.mak [1.2]:
-2000/03/17 02:59:26 lpd)
-
-Adds a disclaimer of responsibility for the makefile section for creating
-distribution archives, which Aladdin is no longer maintaining.
-(winint.mak [1.3]: 2000/03/17 03:01:58 lpd)
-
-Checks in the first wrap-up for the 6.01 release. (unix-gcc.mak [1.4],
-version.mak [1.5]: 2000/03/18 04:13:40 lpd)
-
-</pre><h2><a name="6.01 Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - The loader for the stochastic halftone incorrectly assumed that
-the resource file left the resource on the stack, causing a stackunderflow
-error. (lib/stocht.ps [1.2]: 2000/03/10 03:34:44 lpd)
- - The ps2pdf*.bat scripts didn't set PS2PDFSW to the empty string if
-there were no arguments, causing the same file to be processed again.
-(lib/ps2pdf12.bat [1.2], lib/ps2pdf13.bat [1.2]: 2000/03/10 07:40:00 lpd)
- - Fixes a typo in the fix for putting stdout in binary mode.
-(gp_ntfs.c [1.3]: 2000/03/18 01:15:16 lpd)
- - For printer devices, a non-null definition for OutputFile was
-required even on platforms that had a default printer (as implemented by
-gp_open_printer for that platform). (gp_os9.c [1.2], gp_unix.c [1.2],
-gp_vms.c [1.2]: 2000/03/18 01:45:16 lpd)
-
-In ansi2knr, adds user-contributed support for concatenated string literals
-and character constants, and fixes for a couple of minor bugs.
-(ansi2knr.c [1.2]: 2000/03/10 03:16:17 lpd)
-
-Updates the pf2afm.ps utility with a revised version from its authors.
-(lib/pf2afm.ps [1.2]: 2000/03/10 03:35:37 lpd)
-
-Adds a new eps2eps utility analogous to ps2ps. (lib/eps2eps [1.1],
-lib/eps2eps.bat [1.1]: 2000/03/10 07:51:55 lpd)
-
-Removes a temporary file that was included in the fileset by mistake.
-(lib/history [1.2]: 2000/03/10 08:18:36 lpd)
-
-Changes the ps2pdf MS Windows / MS-DOS scripts to use temporary files to
-avoid the absurdly low limits on the length of a command line and the total
-size of environment variable definitions. (lib/ps2pdf.bat [1.2],
-lib/ps2pdf12.bat [1.3], lib/ps2pdf13.bat [1.3], lib/ps2pdfwr.bat [1.2],
-lib/ps2pdfxx.bat [1.1]: 2000/03/14 20:20:20 lpd)
-
-On Windows, puts stdout into binary mode as well as stdin, to allow piping
-printer output through stdout (not a good idea, but it should be supported
-as well as on other platforms). (gp_ntfs.c [1.2]: 2000/03/17 06:22:59 lpd)
-
-</pre><h2><a name="6.01 Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - When converting PostScript to PDF, selecting /Bicubic as an image
-DownsampleType caused an error instead of defaulting to /Average.
-(gdevpsdf.h [1.2], gdevpsdi.c [1.2], gdevpsdp.c [1.2]: 2000/03/10 04:16:09
-lpd)
- - The mswinpr2 driver didn't handle setting BitsPerPixel to the same
-value when the device was already open, possibly causing an error on restore
-or grestore. (gdevwpr2.c [1.2]: 2000/03/10 04:26:07 lpd)
- - When operating in buffered mode (MaxBitmap > 0), the X driver
-sometimes failed to copy all of the updated area to the screen.
-(gdevx.c [1.2], gdevx.h [1.2], gdevxini.c [1.2], gdevxxf.c [1.2]: 2000/03/10
-06:56:27 lpd)
- - The [e]pswrite driver produced invalid output if the input file
-didn't end with a showpage. Also cleans up some formatting and removes a
-redundant test. (gdevps.c [1.2]: 2000/03/10 07:44:27 lpd)
- - Fixes a problem producing too much black in the output; also adds
-support for 5 new printers (H-P Color DeskJet 690, H-P DesignJet 750, and
-Epson Stylus Color 200). Note that this is user-contributed code.
-(gdevupd.c [1.2], lib/bjc610a0.upp [1.2], lib/bjc610a1.upp [1.2],
-lib/bjc610a2.upp [1.2], lib/bjc610a3.upp [1.2], lib/bjc610a4.upp [1.2],
-lib/bjc610a5.upp [1.2], lib/bjc610a6.upp [1.2], lib/bjc610a7.upp [1.2],
-lib/bjc610a8.upp [1.2], lib/bjc610b1.upp [1.2], lib/bjc610b2.upp [1.2],
-lib/bjc610b3.upp [1.2], lib/bjc610b4.upp [1.2], lib/bjc610b6.upp [1.2],
-lib/bjc610b7.upp [1.2], lib/bjc610b8.upp [1.2], lib/cdj550.upp [1.2],
-lib/cdj690.upp [1.1], lib/cdj690ec.upp [1.1], lib/dnj750c.upp [1.1],
-lib/dnj750m.upp [1.1], lib/ras32.upp [1.2], lib/stc.upp [1.2],
-lib/stc1520h.upp [1.2], lib/stc2.upp [1.2], lib/stc200_h.upp [1.1],
-lib/stc2_h.upp [1.2], lib/stc2s_h.upp [1.2], lib/stc500p.upp [1.2],
-lib/stc500ph.upp [1.2], lib/stc600ih.upp [1.2], lib/stc600p.upp [1.2],
-lib/stc600pl.upp [1.2], lib/stc800ih.upp [1.2], lib/stc800p.upp [1.2],
-lib/stc800pl.upp [1.2], lib/stc_h.upp [1.2], lib/stc_l.upp [1.2],
-lib/stcany.upp [1.2]: 2000/03/16 02:01:36 lpd)
- - The X driver's algorithm for deciding when to update the screen
-was changed several times between 5.50 and 6.0, and one of the more recent
-changes caused it to copy many more pixels to the screen than necessary if
-the file was making marks on the page in widely separated places.
-(gdevx.c [1.3]: 2000/03/17 07:35:43 lpd)
- - In the X driver, the full-page buffer controlled by -dMaxBitmap=
-wasn't allocated with a stable allocator, possibly leading to memory access
-errors if save/restore were used. (gdevxini.c [1.3]: 2000/03/18 04:11:59
-lpd)
-
-Updates the Brother HL7xx drivers with a new user-contributed version, plus
-a couple of minor fixes. (gdevhl7x.c [1.2]: 2000/03/10 07:33:44 lpd)
-
-Enhances the [e]pswrite driver to handle Indexed color spaces over Device
-color spaces, only with the standard Decode. (gdevps.c [1.3]: 2000/03/10
-07:45:50 lpd)
-
-Adds the ability to set the ProcessColorModel of the pdfwrite device to
-/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
-for fill, stroke, text, and imagemask, and for images that (for whatever
-reason) can't be written in their specified color space. Note that this is a
-short-term fix: pdfwrite should output colors in the color space in which
-they were specified. However, a proper fix will require more significant
-architectural changes. (gdevpsdf.c [1.2], gdevpsdf.h [1.3]: 2000/03/16
-01:21:24 lpd)
-
-Adds two more user-contributed 'uniprint' printer parameter sets: Epson
-Stylus Color 640, and a generic Epson Stylus Color in high resolution mode
-(720x720 dpi). (lib/stc640p.upp [1.1], lib/stcany_h.upp [1.1]: 2000/03/16
-02:03:40 lpd)
-
-</pre><h2><a name="6.01 PDF writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - In-line images emitted an extra 'q' (gsave), causing the CTM to
-become incorrect, entries to pile up on the dictionary stack, and an
-invalidrestore error to occur at the end of the page. (gdevpdfi.c [1.2]:
-2000/03/10 03:47:37 lpd)
- - The change in 5.99 to work around Acrobat Reader's 32K limit on
-user space coordinates caused all 0-width rectangles to disappear, which had
-major effects on some files. (gdevpdfd.c [1.2]: 2000/03/10 03:48:10 lpd)
- - Incrementally downloaded TrueType fonts produced truncated Widths
-tables in the output. We have patched this with a ******HACK****** that
-causes such fonts to be converted to bitmaps: the correct fix (to delay
-determining the range of valid characters until the font is written) is too
-large a change to make in a bug fix release. (gdevpdft.c [1.2]: 2000/03/10
-03:48:48 lpd)
-
-Adds the ability to set the ProcessColorModel of the pdfwrite device to
-/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
-for fill, stroke, text, and imagemask, and for images that (for whatever
-reason) can't be written in their specified color space. Note that this is a
-short-term fix: pdfwrite should output colors in the color space in which
-they were specified. However, a proper fix will require more significant
-architectural changes. (gdevpdf.c [1.2], gdevpdfd.c [1.3], gdevpdfi.c [1.3],
-gdevpdfp.c [1.2], gdevpdft.c [1.3], gdevpdfu.c [1.2], gdevpdfx.h [1.2]:
-2000/03/16 01:21:24 lpd)
-
-</pre><h2><a name="6.01 Interpreter (PDF)"></a>Interpreter (PDF)</h2><pre>
-
-Fixes problems:
- - When interpreting a PDF file, the Install page device procedure
-got more and more deeply nested after every page, eventually causing an
-execstackoverflow. (lib/pdf_main.ps [1.2]: 2000/03/10 03:56:11 lpd)
- - When interpreting a PDF file, text drawing operators didn't reset
-the text position, so strings could get displayed on top of each other. (bug
-introduced by a fix in 5.98) (lib/pdf_ops.ps [1.2]: 2000/03/10 03:57:03 lpd)
- - When interpreting a PDF file, substituted small-cap fonts were
-created with incorrect scaling. (lib/pdf_font.ps [1.2]: 2000/03/10 03:57:50
-lpd)
-
-Cleans up some formatting. (lib/pdf_base.ps [1.2]: 2000/03/10 03:58:14 lpd)
-
-</pre><h2><a name="6.01 Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - There were extraneous 'def' commands that caused definitions to be
-made in the wrong dictionary. (lib/gs_ttf.ps [1.2]: 2000/03/10 03:31:39 lpd)
- - If an error occurred while loading a font, it wouldn't produce an
-error message. (This is a 'fix' of a 'fix' of a 'fix': it might well break
-something else.) (lib/gs_type1.ps [1.2]: 2000/03/10 03:37:14 lpd)
- - When reading the strings of a binary object sequence, having to
-get more data from a procedure-based stream sometimes caused a syntaxerror.
-Fix: If the reserved (0) field in binary objects or binary object sequences
-was not 0, no syntaxerror occurred. (iscanbin.c [1.2]: 2000/03/10 03:38:50
-lpd)
- - The code for handling execstackoverflow errors didn't cut back the
-stack correctly, possibly causing invalid memory accesses if an incorrect
-attempt was made to run a cleanup procedure. (interp.c [1.2]: 2000/03/10
-04:04:38 lpd)
- - Writing of dictionaries in binary object output, a non-standard
-extension, was enabled by default, and also had to be enabled at startup
-time if it was ever going to be used. Fix: Binary error messages caused an
-error if the command wasn't of a type that printobject could handle. We now
-do what the Adobe implementations appear to do in this case, namely, convert
-the object with cvs. (lib/gs_btokn.ps [1.2]: 2000/03/10 04:27:31 lpd)
- - CloseSource and CloseTarget were effectively ignored for Flate and
-LZW filters with a Predictor, and for the DCT filters. (ifilter.h [1.2],
-zfdctd.c [1.2], zfdcte.c [1.2], zfdecode.c [1.2], zfilter.c [1.2],
-zfilter2.c [1.2]: 2000/03/10 04:32:51 lpd)
- - findlibfile didn't handle %iodevice% prefixes correctly.
-(zfile.c [1.2]: 2000/03/10 04:35:08 lpd)
- - fileposition didn't give an error for filters or non-seekable
-streams. (zfileio.c [1.2]: 2000/03/10 04:35:53 lpd)
- - Images with input from a file or filter demanded 1 byte of data
-too many, sometimes causing the last line of the image to be dropped. (bug
-probably introduced in 6.0) (zimage.c [1.2]: 2000/03/10 04:37:02 lpd)
- - The check for a show within a cshow procedure for a CID font was
-wrong. Fix: Character widths in CIDFontType 0 fonts were ignored (!). Adds a
-.glyphwidth operator to support correct handling of character widths for CID
-fonts. Adds a glyphwidth procedure to the library, like glyphshow and
-glyphpath, in order to support correct handling of widths for CID fonts.
-(ichar.h [1.2], lib/gs_cidfn.ps [1.2], zchar.c [1.2], zcharx.c [1.2]:
-2000/03/10 04:41:47 lpd)
- - resourcestatus for fonts was broken. (lib/gs_res.ps [1.2]:
-2000/03/10 04:54:15 lpd)
- - Fixes incorrect documentation of several procedures.
-(lib/gs_fonts.ps [1.2]: 2000/03/10 07:00:28 lpd)
- - The %ram% IODevice was defined, but should not be (it represents a
-RAM-based file system, which Ghostscript does not provide). Fix: The type of
-the %null% IODevice was /FileSystem rather than /Special. (ziodev2.c [1.2]:
-2000/03/10 07:02:07 lpd)
- - Directly-loaded TrueType fonts (including embedded TrueType fonts
-in PDF files) could get confused with each other in the cache, because their
-XUIDs were based on the font checksum field, which some fonts don't have set
-correctly. (lib/gs_ttf.ps [1.3]: 2000/03/16 07:38:07 lpd)
-
-Adds a new example file, a 3-D synthetic image. (examples/doretree.ps [1.1]:
-2000/03/10 04:00:45 lpd)
-
-Adds implementations of the devforall, devstatus, and diskonline
-compatibility operators. (lib/gs_statd.ps [1.2]: 2000/03/10 04:01:55 lpd)
-
-Some Adobe CIDFonts include a line /Setup /cid_Setup load def that
-apparently is intended only to prevent the fonts from being loaded by a
-standard PostScript interpreter (as opposed to ATM or a special font
-loader), since cid_Setup is not defined anywhere and Setup is never
-referenced; this change adds a dummy definition of cid_Setup to work around
-this. (lib/gs_cidfn.ps [1.3]: 2000/03/10 04:53:25 lpd)
-
-Updates the version # to 6.01, and the version date. (lib/gs_init.ps [1.2]:
-2000/03/10 17:18:29 lpd)
-
-Changes the default undercolor removal and black generation functions back
-from f(k) = k to f(k) = 0. This fixes some, but not all, of the reported
-problems with color inkjet output in 6.0. (lib/gs_init.ps [1.3]: 2000/03/10
-18:47:31 lpd)
-
-On Windows, puts stdout into binary mode as well as stdin, to allow piping
-printer output through stdout (not a good idea, but it should be supported
-as well as on other platforms). (dwmainc.cpp [1.2]: 2000/03/17 06:22:59 lpd)
-
-</pre><h2><a name="6.01 Streams"></a>Streams</h2><pre>
-
-Changes the sbuf_min_left macro to a procedure for readability and in
-preparation for later revision. (stream.c [1.2], stream.h [1.2]: 2000/03/10
-03:40:13 lpd)
-
-</pre><h2><a name="6.01 Library"></a>Library</h2><pre>
-
-Fixes problems:
- - (%os%) currentdevparams didn't return (fixed) values for
-InitializeAction, Mounted, Removable, Searchable, SearchOrder, and
-Writeable, or (meaningful) values for BlockSize, Free, and LogicalSize.
-Currently, the latter values are dummies. (gsiodev.c [1.2]: 2000/03/10
-03:43:06 lpd)
- - The terminating $ on the $Id: line in gsmalloc.c was missing, and
-dwuninst.rc lacked a $Id: line. (gsmalloc.c [1.2]: 2000/03/10 03:44:33 lpd)
- - RasterOps with source transparency = 0, texture transparency = 1
-didn't match the (very peculiar) H-P specification even if
-TRANSPARENCY_PER_H_P was defined. (gdevdrop.c [1.2], gdevmrop.h [1.2],
-gsropt.h [1.2]: 2000/03/10 04:06:15 lpd)
- - The prototype for gs_exit() was not included even though gs_exit()
-was called. Fix: A cast discarded const unnecessarily. (gsalloc.c [1.2]:
-2000/03/10 04:08:23 lpd)
- - The type of the %pipe% IODevice was /FileSystem, whereas it should
-be /Special. (gdevpipe.c [1.2]: 2000/03/10 04:13:57 lpd)
- - An incorrectly formatted procedure couldn't be converted correctly
-by ansi2knr. (gxidata.c [1.2]: 2000/03/10 04:30:58 lpd)
- - The check for a show within a cshow procedure for a CID font was
-wrong. Fix: Character widths in CIDFontType 0 fonts were ignored (!). Adds a
-.glyphwidth operator to support correct handling of character widths for CID
-fonts. Adds a glyphwidth procedure to the library, like glyphshow and
-glyphpath, in order to support correct handling of widths for CID fonts.
-(gschar.c [1.2], gschar.h [1.2], gstext.c [1.2], gstext.h [1.2]: 2000/03/10
-04:41:47 lpd)
- - The description of the value returned by code_map_decode_next in
-*pchr was incorrect. (documentation bug only) (gsfcmap.c [1.2]: 2000/03/10
-07:03:09 lpd)
- - Fixes a problem producing too much black in the output; also adds
-support for 5 new printers (H-P Color DeskJet 690, H-P DesignJet 750, and
-Epson Stylus Color 200). Note that this is user-contributed code.
-(gsargs.h [1.2]: 2000/03/16 02:01:36 lpd)
- - The code for Axial shadings incorrectly assumed that if the
-shading axis was horizontal or vertical in user space, it was also
-horizontal or vertical in device space: this caused incorrect results when
-the CTM wasn't orthogonal. (gxshade1.c [1.2]: 2000/03/17 08:17:55 lpd)
- - For printer devices, a non-null definition for OutputFile was
-required even on platforms that had a default printer (as implemented by
-gp_open_printer for that platform). (gp.h [1.2], gsdevice.c [1.2]:
-2000/03/18 01:45:16 lpd)
-
-Clears the glyf and loca offsets in TrueType fonts that lack these tables,
-so that clients who care can tell whether the font is being downloaded
-incrementally. (gstype42.c [1.2]: 2000/03/10 03:45:29 lpd)
-
-Changes a few macro definitions to work around over-zealous compiler
-warnings. (gstype1.c [1.2], gstype2.c [1.2], gxtype1.h [1.2]: 2000/03/10
-04:29:37 lpd)
-
-Changes the default undercolor removal and black generation functions back
-from f(k) = k to f(k) = 0. This fixes some, but not all, of the reported
-problems with color inkjet output in 6.0. (gxdcconv.c [1.2]: 2000/03/10
-18:47:31 lpd)
-
-<hr>
-
-<h1><a name="Version6.0"></a>Version 6.0 (2000-02-03)</h1>
-
-This is the first public release since 5.50. See <a href="Current.htm">the
-release summary</a> for information about new capabilities and known
-problems.
-
-<h2><a name="6.0_Documentation"></a>Documentation</h2>
-
-Documents the fact that the plane_depths of a gx_image_enum structure may
-vary, and that planes_wanted procedure of a gx_image_enum must return false
-if the depths *or* widths can change. (gxiparam.h)
-
-Documents the fact that a wanted plane's wanted status, width, or depth can
-only be changed by a call of plane_data that provides data for that plane.
-(gxiparam.h)
-
-Documents the change in the handling of the pthreads library.
-(doc/Make.htm)
-
-Documents the fact that setting parameters for the DCTEncode filter in
-ps2pdf causes a crash. (doc/Ps2pdf.htm)
-
-Documents another bug in the MIPSpro 7.x / IRIX 6.5.x compilers, with
-isave.c. (doc/Make.htm)
-
-Corrects Russell Lang's e-mail address. (doc/New-user.htm)
-
-Documents the new image operator test file and the pdfeof file.
-(doc/Psfiles.htm)
-
-Documents the 'w' argument for image_render procedures. (gxiclass.h)
-
-Adds a little more checking to the release process. (doc/Release.htm)
-
-Documents the return values from the font build_char procedure. (gxfont.h)
-
-Documents the fact that the free 'zip' program is needed to build the
-self-extracting Windows executable, as well as WinZipSE. (doc/Make.htm,
-msvc32.mak, winint.mak)
-
-Adds references to several new free fonts. (doc/Fonts.htm)
-
-Documents an important invariant for streams. (stream.h)
-
-Adds a reference for user-supported Watcom / GNU make makefiles.
-(doc/Make.htm, doc/New-user.htm)
-
-Documents the dependence of gs_ttf.ps on some of the gs_*_e.ps files.
-(lib/gs_ttf.ps)
-
-Documents how to make self-extracting Windows executables.
-(doc/Release.htm)
-
-Adds a number of new user-contributed man pages. (unixinst.mak, man/gslp.1,
-man/wftopfa.1, man/printafm.1, man/pfbtopfa.1, man/font2c.1, man/dvipdf.1,
-man/ps2pdfwr.1, man/gsnd.1, man/pf2afm.1, man/ps2pdf.1)
-
-<h2><a name="6.0_Procedures"></a>Procedures</h2>
-
-Fixes problems:
- - Building on BSDI didn't work. The simplest way to fix this was to
-change the linking of the pthreads library on Unix platforms to be included
-in STDLIBS rather than the "sync" implementation. (fix contributed by a
-user) (lib.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak)
- - Once again, some runtime files weren't installed. (unixinst.mak)
- - Building the self-extracting executable didn't work. (winint.mak)
-
-Updates the user-contributed all-architectures makefile. (all-arch.mak)
-
-<h2><a name="6.0_Utilities"></a>Utilities</h2>
-
-Fixes problems:
- - A needed #include was missing. (geninit.c)
- - There were signed/unsigned char mismatches. (genht.c, geninit.c)
- - The MacOS compiler imposes a 32K limit on the size of a stack
-frame: we changed the code to use malloc/free. (geninit.c)
-
-Removes an unnecessary variable. (echogs.c)
-
-Adds a file that attempts to test the image operators exhaustively.
-(lib/image-qa.ps, unixinst.mak)
-
-Enhances the prfont.ps utility to print CIDFonts. (lib/prfont.ps)
-
-Adds a utility file that patches the PDF interpreter to allow garbage after
-the %%EOF (or the %%EOF to be missing completely). (lib/pdfeof.ps)
-
-<h2><a name="6.0_Drivers"></a>Drivers</h2>
-
-Fixes problems:
- - The X driver compared too many bits of color value, leading to
-unnecessary halftoning. (bug introduced by a fix in 5.99) (gdevxcmp.c)
- - Output from the pswrite driver got a dictfull error on Level 1
-printers. (gdevps.c)
- - Anti-aliasing had stopped working on MS Windows and OS/2. (bug
-probably introduced in 5.65) (gdevmswn.c, gdevpm.c)
-
-<h2><a name="6.0_Platforms"></a>Platforms</h2>
-
-Adds a conditional definition of PTHREAD_CREATE_DETACHED for old versions of
-the pthreads library. (gp_psync.c)
-
-Updates the Microsoft Visual C++ library makefile for VC++ 6. (msvclib.mak)
-
-Updates some copyright dates. (winint.mak, dwsetup.rc)
-
-<h2><a name="6.0_Fonts"></a>Fonts</h2>
-
-Updates the URW fonts to include the expanded Adobe character set, including
-many Eastern European accented characters. (doc/New-user.htm)
-
-Removes a 'readonly' that inconvenienced the authors of ttf2pf.
-(lib/gs_ttf.ps)
-
-<h2><a name="6.0_PDF_writer"></a>PDF writer</h2>
-
-Fixes problems:
- - The Dest key was deleted from GoTo and GoToR link annotation
-pdfmarks. (gdevpdfm.c)
- - {name} references were substituted even in stream data for the
-/PUT pdfmark. (gdevpdfm.c)
- - The revision number was sometimes printed incorrectly if its
-fraction part was zero. (gdevpdf.c)
- - Embedded Multiple Master font instances weren't identified as
-MMType1 rather than Type1. (gdevpdff.h, gdevpdff.c, gdevpdft.c, gdevpdfw.c)
- - The test against MaxSubsetPct was incorrect when the percentages
-were equal. (gdevpdfw.c)
- - Font registrations weren't removed when the device was closed.
-(gdevpdff.h, gdevpdfx.h, gdevpdff.c, gdevpdfw.c)
- - Multiple /OBJ pdfmarks with the same name caused an error. For
-Distiller compatibility, we now allow this if the type is the same, even
-though the pdfmark specification doesn't say anything about this being
-legal. (gdevpdfm.c)
-
-Removes an unnecessary variable. (gdevpdff.c, gdevpdfr.c)
-
-Disables embedding Multiple Master font instances, since Acrobat Reader
-doesn't accept what appear to be correct output and we don't have time
-before the release to track down the problem. (gdevpdft.c)
-
-<h2><a name="6.0_Interpreter_PDF"></a>Interpreter (PDF)</h2>
-
-Factors some code to allow patching the PDF reader to allow garbage after
-the %%EOF (or the %%EOF to be missing completely). (lib/pdf_main.ps)
-
-<h2><a name="6.0_Interpreter"></a>Interpreter</h2>
-
-Fixes problems:
- - Type 1 fonts with non-standard OtherSubrs had stopped working.
-(bug introduced since 5.60) (zchar1.c)
- - usecmap didn't work. (lib/gs_cmap.ps)
- - The glyph_info procedure for Type 1 fonts didn't take Metrics[2]
-or CDevProc into account. (zchar1.c, zfont1.c)
- - The multiple-data-source case of images was broken. (bug
-introduced in 5.99) (zimage.c)
- - If a page device Install procedure caused an error, things could
-be left in an inconsistent state. (lib/gs_setpd.ps)
- - Using a DeviceN color space could access uninitialized data in a
-color value. (zcsdevn.c)
- - DeviceN images with procedure data sources were broken.
-(zimage.c)
- - Images with a procedure data source could terminate prematurely if
-their processing was interrupted. (zimage.c)
- - The garbage collector only marked half the name table sub-tables,
-and attempted to mark an equal number of invalid pointers, leading to
-invalid accesses or memory corruption. (iname.c)
-
-Removes an unused variable. (zmisc.c)
-
-<h2><a name="6.0_Streams"></a>Streams</h2>
-
-Fixes problems:
- - sgets didn't reset the cursor pointers, so sgets into a client
-buffer followed by sseek (for some kinds of streams, including files) could
-get confused. (stream.c)
-
-<h2><a name="6.0_Library"></a>Library</h2>
-
-Fixes problems:
- - A 'const' qualifier was omitted, leading to a type mismatch.
-(gxclrast.c)
- - The revision number was sometimes printed incorrectly if its
-fraction part was zero. (gsmisc.c)
- - gs_image_next returned the wrong value in *pused if it incremented
-the plane number. (bug introduced in 5.99) (gsimage.c)
- - Only the last of the data_x and raster values in the local
-'planes' array in gs_image_next_planes were initialized. (bug introduced in
-5.99) (gsimage.c)
- - The multiple-data-source case of images was broken. (bug
-introduced in 5.99) (gsimage.h, gsimage.c)
- - ImageType 3 images with unequal scaling for the mask and data
-didn't work. (We thought they once did, but it appears they never have.)
-(gximage3.c)
- - Images with 12-bit samples treated a Decode entry of [1 0] the
-same as [0 1]. (Other, general Decode entries worked correctly.)
-(gxipixel.c)
- - ImageType 3 images didn't work if processing was ever interrupted
-for remapping a color. (gximage3.c)
- - Images in DeviceN color spaces with 12-bit samples didn't work.
-(gxi12bit.c, gxidata.c)
- - Images in DeviceN color spaces could fail to render properly
-because the interruption of rendering left a half-built entry in an internal
-cache. (gxi12bit.c, gxicolor.c)
- - Images with non-idempotent RasterOps in 1-component DeviceN color
-spaces didn't render properly, because the same pixel was rendered multiple
-times after a color remapping interruption. (gximono.c)
- - The fast case of masked images caused a crash if invoked without
-an imager state. (gximono.c)
- - Flushing buffered image data could cause coordinate bookkeeping
-to get out of sync. (gxidata.c)
- - ImageType 3, InterleaveType 2 images sometimes failed to render
-the last row. (gximage3.c)
- - The fix in 5.88 for resizing large objects had a bug itself.
-(gsalloc.c)
- - Whan banding, if a client supplied more data than necessary for an
-image, the client was told (incorrectly) that all of the data was used.
-(fix from Artifex) (gxclimag.c)
- - Null patterns caused a crash. (bug probably introduced by changes
-to support PatternType 2) (gspcolor.c)
- - On hand-initialized memory devices where line_ptrs[0] != base,
-monobit RasterOps could cause invalid or stray memory accesses. (gdevmr1.c)
-
-Removes an unnecessary variable. (gdevppla.c, gsfont.c)
-
-Adds the ability to call a specified procedure when unregistering
-notification, needed for removing PDF font registrations. (gsnotify.h,
-gsnotify.c)
-
-Updates the copyright year. (gscdef.c)
-
-</pre>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2000 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/History7.htm b/Master/xemtex/doc/ghostscript/History7.htm
deleted file mode 100644
index 7e71a4f3b3f..00000000000
--- a/Master/xemtex/doc/ghostscript/History7.htm
+++ /dev/null
@@ -1,5109 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>History of Ghostscript versions 7.n</title>
-<!-- $Id: History7.htm,v 1.5.2.17.2.8 2003/05/17 15:00:53 giles Exp $ -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<table width="100%" border="0">
-<tr><th align="center" bgcolor="#CCCC00"><font size=6>History of Ghostscript versions 7.xx</font>
-</table>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Version7.07">Version 7.07 (2003-05-17)</a>
-<ul>
-<li><a href="#7.07_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.07-Documentation">Documentation</a>,
- <a href="#7.07-Procedures">Procedures</a>,
- <a href="#7.07-Utilities">Utilities</a>,
- <a href="#7.07-Drivers">Drivers</a>,
- <a href="#7.07-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.07-Interpreter">Interpreter</a>,
- <a href="#7.07-Library">Library</a>,
- <a href="#7.07-Other">Other</a>
-</ul>
-<li><a href="#Version7.06">Version 7.06 (2003-04-01)</a>
-<ul>
-<li><a href="#7.06_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.06-Documentation">Documentation</a>,
- <a href="#7.06-Procedures">Procedures</a>,
- <a href="#7.06-Utilities">Utilities</a>,
- <a href="#7.06-Drivers">Drivers</a>,
- <a href="#7.06-PDF_writer">PDF writer</a>,
- <a href="#7.06-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.06-Interpreter">Interpreter</a>,
- <a href="#7.06-Streams">Streams</a>,
- <a href="#7.06-Library">Library</a>,
- <a href="#7.06-Other">Other</a>
-</ul>
-<li><a href="#Version7.05">Version 7.05 (2002-04-22)</a>
-<ul>
-<li><a href="#7.05_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.05-Documentation">Documentation</a>,
- <a href="#7.05-Procedures">Procedures</a>,
- <a href="#7.05-Utilities">Utilities</a>,
- <a href="#7.05-Drivers">Drivers</a>,
- <a href="#7.05-PDF_writer">PDF writer</a>,
- <a href="#7.05-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.05-Interpreter">Interpreter</a>,
- <a href="#7.05-Streams">Streams</a>,
- <a href="#7.05-Library">Library</a>,
- <a href="#7.05-Other">Other</a>
-</ul>
-<li><a href="#Version7.04">Version 7.04 (2002-01-30)</a>
-<ul>
-<li><a href="#7.04_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.04-Documentation">Documentation</a>,
- <a href="#7.04-Procedures">Procedures</a>,
- <a href="#7.04-Utilities">Utilities</a>,
- <a href="#7.04-Drivers">Drivers</a>,
- <a href="#7.04-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.04-Interpreter">Interpreter</a>,
- <a href="#7.04-Library">Library</a>,
- <a href="#7.04-Other">Other</a>
-</ul>
-<li><a href="#Version7.03">Version 7.03 (2001-10-20)</a>
-<ul>
-<li><a href="#7.03_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.03-Documentation">Documentation</a>,
- <a href="#7.03-Procedures">Procedures</a>,
- <a href="#7.03-Utilities">Utilities</a>,
- <a href="#7.03-Drivers">Drivers</a>,
- <a href="#7.03-PDF_writer">PDF writer</a>,
- <a href="#7.03-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.03-Interpreter">Interpreter</a>,
- <a href="#7.03-Streams">Streams</a>,
- <a href="#7.03-Library">Library</a>,
- <a href="#7.03-Other">Other</a>
-</ul>
-<li><a href="#Version7.02">Version 7.02 (2001-09-22)</a>
-<ul>
-<li><a href="#7.02_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.02-Documentation">Documentation</a>,
- <a href="#7.02-Procedures">Procedures</a>,
- <a href="#7.02-Utilities">Utilities</a>,
- <a href="#7.02-Drivers">Drivers</a>,
- <a href="#7.02-PDF_writer">PDF writer</a>,
- <a href="#7.02-PDF_Interpreter">PDF Interpreter</a>,
- <a href="#7.02-Interpreter">Interpreter</a>,
- <a href="#7.02-Streams">Streams</a>,
- <a href="#7.02-Library">Library</a>,
- <a href="#7.02-Other">Other</a>
-</ul>
-<li><a href="#Version7.00">Version 7.00 (2001-04-08)</a>
-<ul>
-<li><a href="#7.00_Incompatible_changes">Incompatible changes</a>,
- <a href="#7.00-Documentation">Documentation</a>,
- <a href="#7.00-Procedures">Procedures</a>,
- <a href="#7.00-Utilities">Utilities</a>,
- <a href="#7.00-PDF_writer">PDF writer</a>,
- <a href="#7.00-Interpreter">Interpreter</a>,
- <a href="#7.00-Library">Library</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is a record of changes in Ghostscript releases numbered 7.xx.
-For earlier versions, see the the history documents:
-
-<blockquote>
-<a href="History6.htm">History of Ghostscript versions 6.n</a><br>
-<a href="History5.htm">History of Ghostscript versions 5.n</a><br>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-Within each release, news appears in the following order: Incompatible
-changes, Documentation, Procedures, Utilities, Drivers, Platforms, Fonts,
-PDF writer (included under Drivers through fileset 5.88), Interpreter,
-Streams (included under Interpreter through release 2.9.9), Library.
-Changes marked with a * were made available as patches to a previous
-release.
-
-<hr>
-
-<h1><a name="Version7.07"></a>Version 7.07 (2003-05-17)</h1>
-
-<p>This is the third release of the stable 7.0x series under the GNU
-GPL. It includes an important security update; upgrading is strongly
-recommended.</p>
-
-<h3><a name="7.07_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version. Users of the 6.5x versions of GNU
-Ghostscript will want to check the History for a complete list of changes since that version.
-
-<pre>
-
-
-
-<h2><a name="7.07-Documentation"></a>Documentation</h2><pre>
-
-Increment the version number after release. (doc/News.htm [1.90.2.18.2.6]:
-2003/04/08 11:05:47 giles)
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (doc/Readme.htm [1.31.2.16.2.5]: 2003/04/12 14:02:38
-giles)
-
-Update the version and data for the 7.07 release.
-(doc/API.htm [1.11.2.13.2.6], doc/C-style.htm [1.21.2.11.2.5],
-doc/DLL.htm [1.15.2.11.2.5], doc/Develop.htm [1.47.2.18.2.6],
-doc/Devices.htm [1.34.2.15.2.6], doc/Drivers.htm [1.21.2.11.2.5],
-doc/Fonts.htm [1.22.2.13.2.6], doc/Helpers.htm [1.17.2.11.2.5],
-doc/History1.htm [1.13.2.11.2.5], doc/History2.htm [1.13.2.11.2.6],
-doc/History3.htm [1.13.2.11.2.6], doc/History4.htm [1.13.2.11.2.6],
-doc/History5.htm [1.15.2.11.2.6], doc/History6.htm [1.30.2.11.2.6],
-doc/History7.htm [1.5.2.17.2.7], doc/Htmstyle.htm [1.18.2.11.2.5],
-doc/Install.htm [1.26.2.13.2.6], doc/Issues.htm [1.15.2.13.2.5],
-doc/Language.htm [1.34.2.16.2.5], doc/Lib.htm [1.14.2.11.2.5],
-doc/Maintain.htm [1.23.2.12.2.6], doc/Make.htm [1.36.2.19.2.6],
-doc/New-user.htm [1.30.2.14.2.6], doc/News.htm [1.90.2.18.2.7],
-doc/Projects.htm [1.33.2.11.2.6], doc/Ps-style.htm [1.13.2.11.2.5],
-doc/Ps2epsi.htm [1.15.2.12.2.6], doc/Ps2pdf.htm [1.32.2.11.2.5],
-doc/Psfiles.htm [1.22.2.12.2.5], doc/Readme.htm [1.31.2.16.2.6],
-doc/Release.htm [1.40.2.23.2.6], doc/Source.htm [1.13.2.11.2.5],
-doc/Unix-lpr.htm [1.13.2.11.2.5], doc/Use.htm [1.33.2.22.2.6],
-doc/Xfonts.htm [1.13.2.11.2.5], doc/gs-vms.hlp [1.12.2.10.2.5],
-man/dvipdf.1 [1.10.2.9.2.5], man/font2c.1 [1.10.2.9.2.5],
-man/gs.1 [1.10.2.10.2.5], man/gslp.1 [1.10.2.9.2.5],
-man/gsnd.1 [1.10.2.9.2.5], man/pdf2dsc.1 [1.10.2.9.2.5],
-man/pdf2ps.1 [1.12.2.9.2.5], man/pdfopt.1 [1.10.2.9.2.5],
-man/pf2afm.1 [1.10.2.9.2.5], man/pfbtopfa.1 [1.11.2.9.2.5],
-man/printafm.1 [1.10.2.9.2.5], man/ps2ascii.1 [1.10.2.9.2.5],
-man/ps2epsi.1 [1.10.2.10.2.5], man/ps2pdf.1 [1.14.2.11.2.5],
-man/ps2pdfwr.1 [1.13.2.10.2.5], man/ps2ps.1 [1.17.2.9.2.5],
-man/wftopfa.1 [1.10.2.9.2.5]: 2003/05/17 14:38:59 giles)
-
-Update the release notes. (doc/News.htm [1.90.2.18.2.8]: 2003/05/17 14:44:22
-giles)
-
-</pre><h2><a name="7.07-Procedures"></a>Procedures</h2><pre>
-
-Increment the version number after release. (version.mak [1.36.2.9.2.5]:
-2003/04/08 11:05:47 giles)
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (toolbin/3way.tcl [1.3.6.1.2.1],
-toolbin/cvs2hist.py [1.9.2.2.2.1], toolbin/errlist.tcl [1.3.6.1.2.1],
-toolbin/gsindent [1.3.6.1.2.1], toolbin/gsmake.tcl [1.5.6.1.2.1],
-toolbin/gssubst [1.1.4.1.2.1], toolbin/headers.tcl [1.3.6.1.2.1],
-toolbin/leaks.tcl [1.3.6.1.2.1], toolbin/makegnu.tcl [1.3.6.1.2.1],
-toolbin/makeset.tcl [1.10.2.3.2.1], toolbin/many2pdf.tcl [1.1.4.1.2.1],
-toolbin/pdfinflt.ps [1.1.2.1.2.1], toolbin/pre [1.11.2.3.2.1],
-toolbin/precheck.tcl [1.3.6.1.2.1], toolbin/suite.tcl [1.3.6.1.2.1],
-toolbin/tmake.tcl [1.3.6.1.2.1]: 2003/04/12 14:02:39 giles)
-
-Add the bbox device to the default macos shlib build. Bug 686811.
-(macos-mcp.mak [1.3.2.8.2.2]: 2003/04/27 23:50:11 giles)
-
-Add the display device to the default macos shlib build.
-(macos-mcp.mak [1.3.2.8.2.3]: 2003/04/27 23:52:55 giles)
-
-Log message: For the pngalpha device, set the default background color to
-white in the bKGD chunk. Add an option -dBackgroundColor=16#RRGGBB to
-explicitly set the background color. This is needed by a common web browser
-that doesn't correctly support PNG with alpha transparency. DETAILS:
-Programs that don't fully support alpha transparency let libpng convert an
-RGBA image to RGB. The background color used is either provided by the
-program, or in the bKGD chunk, or it falls back to gray. MSIE was defaulting
-to a gray background which is not commonly used on web pages. By writing a
-white bKGD chunk, PNG files will display correctly against a white
-background in MSIE. If a solid color for a web page background is used with
-&lt;body bgcolor="#CCCC00"&gt;, then PNG images appearing on that page would
-need to be created with -dBackgroundColor=16#CCCC00. For textured background
-there is no hope. Microsoft needs to fix Internet Explorer.
-(libpng.mak [1.10.2.3.2.2]: 2003/05/15 10:05:29 ghostgum)
-
-Update the version and data for the 7.07 release.
-(version.mak [1.36.2.9.2.6]: 2003/05/17 14:39:00 giles)
-
-</pre><h2><a name="7.07-Utilities"></a>Utilities</h2><pre>
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (lib/Fontmap.ATB [1.2.6.1.2.1],
-lib/Fontmap.ATM [1.2.6.1.2.1], lib/Fontmap.GS [1.2.6.1.2.1],
-lib/Fontmap.OS2 [1.2.6.1.2.1], lib/Fontmap.SGI [1.2.6.1.2.1],
-lib/Fontmap.Sol [1.2.6.1.2.1], lib/Fontmap.Ult [1.2.6.1.2.1],
-lib/addxchar.ps [1.2.6.1.2.1], lib/align.ps [1.2.6.1.2.1],
-lib/bdftops.ps [1.3.2.2.2.1], lib/caption.ps [1.2.6.1.2.1],
-lib/cid2code.ps [1.3.4.1.2.1], lib/docie.ps [1.2.6.1.2.1],
-lib/errpage.ps [1.2.6.1.2.1], lib/font2c.ps [1.3.2.1.2.1],
-lib/font2pcl.ps [1.2.6.2.2.1], lib/gslp.ps [1.2.6.2.2.1],
-lib/gsnup.ps [1.2.6.1.2.1], lib/image-qa.ps [1.3.2.1.2.1],
-lib/impath.ps [1.3.4.1.2.1], lib/jispaper.ps [1.2.6.1.2.1],
-lib/lines.ps [1.2.6.1.2.1], lib/markhint.ps [1.2.6.1.2.1],
-lib/markpath.ps [1.2.6.1.2.1], lib/packfile.ps [1.2.6.2.2.1],
-lib/pcharstr.ps [1.2.6.1.2.1], lib/pdf2dsc.ps [1.3.4.2.2.1],
-lib/pdfopt.ps [1.10.2.2.2.1], lib/pdfwrite.ps [1.7.2.1.2.1],
-lib/pfbtopfa.ps [1.2.6.1.2.1], lib/ppath.ps [1.2.6.1.2.1],
-lib/pphs.ps [1.3.2.1.2.1], lib/ps2ai.ps [1.2.6.1.2.1],
-lib/ps2ascii.ps [1.3.2.2.2.1], lib/ps2epsi.ps [1.5.2.3.2.1],
-lib/rollconv.ps [1.1.8.1], lib/showchar.ps [1.2.6.1.2.1],
-lib/stcinfo.ps [1.2.6.1.2.1], lib/stcolor.ps [1.2.6.1.2.1],
-lib/stocht.ps [1.3.6.1.2.1], lib/traceimg.ps [1.2.6.2.2.1],
-lib/traceop.ps [1.2.6.1.2.1], lib/type1enc.ps [1.2.6.1.2.1],
-lib/type1ops.ps [1.2.6.1.2.1], lib/uninfo.ps [1.2.6.1.2.1],
-lib/unprot.ps [1.2.6.1.2.1], lib/viewcmyk.ps [1.2.6.2.2.1],
-lib/viewgif.ps [1.2.6.1.2.1], lib/viewjpeg.ps [1.1.6.2.2.1],
-lib/viewmiff.ps [1.2.6.1.2.1], lib/viewpbm.ps [1.2.6.2.2.1],
-lib/viewpcx.ps [1.2.6.2.2.1], lib/viewps2a.ps [1.2.6.1.2.1],
-lib/wftopfa.ps [1.2.6.1.2.1], lib/winmaps.ps [1.2.6.1.2.1],
-lib/wrfont.ps [1.2.6.1.2.1], lib/zeroline.ps [1.2.6.1.2.1]: 2003/04/12
-14:02:38 giles)
-
-Avoid calling a null pgsdll_callback, as can happen with the new client api
-and CHECK_INTERRUPTS. This fix affects primarily MacOS; similar protections
-are already in place for other platforms, although the global was not
-explicitly initialized to null. Also return EOFC in the mac stdio stream
-process if no callback is defined. Closes bug 686768. Also backports some
-code cleanup from HEAD. (gp_mac.c [1.1.4.3.2.2], gp_macio.c [1.2.4.5.2.3]:
-2003/04/12 16:37:26 giles)
-
-Add a missing variable declaration for VMS. Patch from Forrest Cahoon and
-Jouk Jansen. (gp_vms.c [1.7.2.3.2.2]: 2003/04/14 13:58:04 giles)
-
-</pre><h2><a name="7.07-Drivers"></a>Drivers</h2><pre>
-
-Avoid calling a null pgsdll_callback, as can happen with the new client api
-and CHECK_INTERRUPTS. This fix affects primarily MacOS; similar protections
-are already in place for other platforms, although the global was not
-explicitly initialized to null. Also return EOFC in the mac stdio stream
-process if no callback is defined. Closes bug 686768. Also backports some
-code cleanup from HEAD. (gdevmac.c [1.1.4.3.2.2]: 2003/04/12 16:37:26 giles)
-
-In the display device, store the line pointers separately from the bits, so
-that the bits can be placed in special memory (e.g. allocated in video
-memory). Fixes Bug 686780 display_memalloc() asks for too much memory. If
-reopening the display device fails after setting the callback, display an
-error message. Allocate the large display bitmap using a low level allocator
-to avoid exceeding the memory limit of the previously used device stable
-memory allocator. Fixes bugs 686836 "-r doesn't work" and duplicate 686838
-"Ghostscript doesn't do anything". DETAILS: The display memory device and
-the raster including line pointers was allocated using the stable allocator
-of the display device. This had a limit of 1Mbyte, which was exceeded when
-the resolution was greater then 114dpi. This would cause subsequent
-allocations to fail, but it appears that nothing else tried to use this
-allocator after the display device. The display device was changed to
-allocate the line pointers separately to allow the raster to be allocated in
-special memory, e.g. video memory or shared memory. This caused the
-subsequent allocation of the line pointers to fail when resolution exceeded
-114dpi. The modified code now allocates the raster with
-gs_alloc_byte_array_immovable, which allocates directly from the C heap, not
-subject to any memory limit apart from the overall -K limit if specified,
-and is not subject to garbage collection. The normal allocator now has
-sufficient memory to allocate the line pointers without problem. The raster
-pointer is removed from the pointers that are enumerated during garbage
-collection. (gdevdsp.c [1.5.2.5.2.3]: 2003/05/01 10:06:26 ghostgum)
-
-Log message: For the pngalpha device, set the default background color to
-white in the bKGD chunk. Add an option -dBackgroundColor=16#RRGGBB to
-explicitly set the background color. This is needed by a common web browser
-that doesn't correctly support PNG with alpha transparency. DETAILS:
-Programs that don't fully support alpha transparency let libpng convert an
-RGBA image to RGB. The background color used is either provided by the
-program, or in the bKGD chunk, or it falls back to gray. MSIE was defaulting
-to a gray background which is not commonly used on web pages. By writing a
-white bKGD chunk, PNG files will display correctly against a white
-background in MSIE. If a solid color for a web page background is used with
-&lt;body bgcolor="#CCCC00"&gt;, then PNG images appearing on that page would
-need to be created with -dBackgroundColor=16#CCCC00. For textured background
-there is no hope. Microsoft needs to fix Internet Explorer.
-(gdevpng.c [1.4.2.1.2.3]: 2003/05/15 10:05:29 ghostgum)
-
-</pre><h2><a name="7.07-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (lib/pdf_base.ps [1.14.2.1.2.1],
-lib/pdf_draw.ps [1.36.2.2.2.1], lib/pdf_font.ps [1.23.2.6.2.1],
-lib/pdf_main.ps [1.35.2.7.2.3], lib/pdf_ops.ps [1.17.2.2.2.1]: 2003/04/12
-14:02:39 giles)
-
-</pre><h2><a name="7.07-Interpreter"></a>Interpreter</h2><pre>
-
-Increment the version number after release. (lib/gs_init.ps [1.40.2.12.2.2]:
-2003/04/08 11:05:47 giles)
-
-Apply standard FSF license banner to files missed the 7.06 release. Patch
-from Brett Smith. (examples/waterfal.ps [1.3.2.1.2.1],
-lib/gs_agl.ps [1.2.6.1.2.1], lib/gs_btokn.ps [1.5.2.1.2.1],
-lib/gs_ccfnt.ps [1.5.2.1.2.1], lib/gs_ce_e.ps [1.2.6.1.2.1],
-lib/gs_cff.ps [1.10.2.1.2.1], lib/gs_cidcm.ps [1.5.2.2.2.1],
-lib/gs_cidfn.ps [1.18.4.5.2.1], lib/gs_cmap.ps [1.11.2.4.2.1],
-lib/gs_cmdl.ps [1.2.6.1.2.1], lib/gs_css_e.ps [1.2.6.1.2.1],
-lib/gs_dbt_e.ps [1.2.6.1.2.1], lib/gs_diskf.ps [1.2.6.1.2.1],
-lib/gs_dpnxt.ps [1.2.6.1.2.1], lib/gs_dps.ps [1.4.6.1.2.1],
-lib/gs_dps1.ps [1.2.6.1.2.1], lib/gs_dps2.ps [1.3.4.1.2.1],
-lib/gs_dscp.ps [1.4.2.1.2.1], lib/gs_epsf.ps [1.2.6.11.2.3],
-lib/gs_fform.ps [1.2.6.1.2.1], lib/gs_fonts.ps [1.13.2.3.2.1],
-lib/gs_frsd.ps [1.4.6.1.2.1], lib/gs_icc.ps [1.2.2.1.2.1],
-lib/gs_il1_e.ps [1.2.6.1.2.1], lib/gs_il2_e.ps [1.2.6.1.2.1],
-lib/gs_init.ps [1.40.2.12.2.3], lib/gs_kanji.ps [1.2.6.1.2.1],
-lib/gs_ksb_e.ps [1.2.6.1.2.1], lib/gs_l2img.ps [1.2.6.1.2.1],
-lib/gs_lev2.ps [1.7.2.4.2.3], lib/gs_lgo_e.ps [1.3.6.1.2.1],
-lib/gs_lgx_e.ps [1.2.6.1.2.1], lib/gs_ll3.ps [1.10.2.2.2.1],
-lib/gs_mex_e.ps [1.2.6.1.2.1], lib/gs_mgl_e.ps [1.3.6.1.2.1],
-lib/gs_mro_e.ps [1.2.6.1.2.1], lib/gs_pdf_e.ps [1.2.6.1.2.1],
-lib/gs_pdfwr.ps [1.11.2.1.2.1], lib/gs_pfile.ps [1.2.6.1.2.1],
-lib/gs_rdlin.ps [1.2.6.1.2.1], lib/gs_res.ps [1.16.2.2.2.1],
-lib/gs_setpd.ps [1.8.2.2.2.2], lib/gs_statd.ps [1.5.2.2.2.1],
-lib/gs_std_e.ps [1.2.6.1.2.1], lib/gs_sym_e.ps [1.2.6.1.2.1],
-lib/gs_trap.ps [1.3.6.2.2.1], lib/gs_ttf.ps [1.9.2.4.2.1],
-lib/gs_typ32.ps [1.3.2.2.2.1], lib/gs_typ42.ps [1.2.6.1.2.1],
-lib/gs_type1.ps [1.5.2.1.2.1], lib/gs_wan_e.ps [1.2.6.1.2.1],
-lib/gs_wl1_e.ps [1.2.6.1.2.1], lib/gs_wl2_e.ps [1.2.6.1.2.1],
-lib/gs_wl5_e.ps [1.2.6.1.2.1]: 2003/04/12 14:02:38 giles)
-
-Sort the list of devices in the output of 'gs -h' so they're easier to read.
-List the default device separately as it's no longer first. Based on a patch
-from Nelson Beebe. Closes bug 416746. Also correct a warning in argproc().
-(imainarg.c [1.13.2.3.2.2]: 2003/04/12 16:43:14 giles)
-
-In the display device, store the line pointers separately from the bits, so
-that the bits can be placed in special memory (e.g. allocated in video
-memory). Fixes Bug 686780 display_memalloc() asks for too much memory. If
-reopening the display device fails after setting the callback, display an
-error message. Allocate the large display bitmap using a low level allocator
-to avoid exceeding the memory limit of the previously used device stable
-memory allocator. Fixes bugs 686836 "-r doesn't work" and duplicate 686838
-"Ghostscript doesn't do anything". DETAILS: The display memory device and
-the raster including line pointers was allocated using the stable allocator
-of the display device. This had a limit of 1Mbyte, which was exceeded when
-the resolution was greater then 114dpi. This would cause subsequent
-allocations to fail, but it appears that nothing else tried to use this
-allocator after the display device. The display device was changed to
-allocate the line pointers separately to allow the raster to be allocated in
-special memory, e.g. video memory or shared memory. This caused the
-subsequent allocation of the line pointers to fail when resolution exceeded
-114dpi. The modified code now allocates the raster with
-gs_alloc_byte_array_immovable, which allocates directly from the C heap, not
-subject to any memory limit apart from the overall -K limit if specified,
-and is not subject to garbage collection. The normal allocator now has
-sufficient memory to allocate the line pointers without problem. The raster
-pointer is removed from the pointers that are enumerated during garbage
-collection. (idisp.c [1.2.2.2.2.2]: 2003/05/01 10:06:26 ghostgum)
-
-Security fixes. Add detection of %pipe% device when in SAFER mode. Also fix
-detection of 'renamefile' to prevent rename from a file that is not on the
-PermitFileControl list. (zfile.c [1.11.2.4.2.2]: 2003/05/17 14:28:33 ray)
-
-</pre><h2><a name="7.07-Library"></a>Library</h2><pre>
-
-Increment the version number after release. (gscdef.c [1.15.2.4.2.3]:
-2003/04/08 11:05:47 giles)
-
-Update the version and data for the 7.07 release. (gscdef.c [1.15.2.4.2.4]:
-2003/05/17 14:39:00 giles)
-
-</pre><h2><a name="7.07-Other"></a>Other</h2><pre>
-
-Test the optimization compiler flag '-O2' before using it since some vendor
-compilers have different syntax. (Makefile.in [1.1.4.13.2.3],
-configure.ac [1.4.4.12.2.2]: 2003/04/16 13:59:56 giles)
-
-Include the bbox device in the default autoconf build.
-(Makefile.in [1.1.4.13.2.4]: 2003/04/29 18:33:31 giles)
-
-<hr>
-
-<h1><a name="Version7.06"></a>Version 7.06 (2003-04-01)</h1>
-
-<p>This is the second release of the stable 7.0x series under the GNU
-GPL, following one year after the release of 7.00. It includes a number
-of small bug fixes and documentation cleanup to comply with the GNU
-coding guidelines.
-
-<p>Also new in this release is the 'pngalpha' device which produces png output
-with a transparent background (page) color so they can be composited against a
-separate background. The transparency is based only on what parts of the page
-have been drawn and does not support PDF 1.4 trasparent painting.</p>
-
-<h3><a name="7.06_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version. Users of the 6.5x versions of GNU
-Ghostscript will want to check the History for a complete list of changes since that version.
-Authors of drivers with potential security implications are also encouraged to review
-the security changes introduced with 6.53/7.04.
-
-<p>
-Additionally, the scripts which create the project file for bulding
-ghostscript on MacOS have been updated for Metrowerks CodeWarrior 7.2 and 8.3.
-Edit the LIBS entries in macgenmcpxml.sh to recover the settings for
-CW6.
-
-<h2><a name="7.06-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Add the option -dUseCropBox to set the page size from the CropBox
-rather than the MediaBox. This is appropriate when using ghostscript to view
-PDF files or convert to bitmaps. It probably isn't appropriate for printing.
-Fixes SourceForge bugs #522486, "Wromg size EPS generated from PDF" and
-#538267 "Problems with Media Box in PDF and PS interpreter".
-(doc/Use.htm [1.33.2.13]: 2002/06/28 10:59:01 ghostgum)
- - When ghostscript is given a PDF file on standard input, copy it to
-a temporary file before processing. Prior to version 7, ghostscript could
-read PDF from standard input redirected from a file, but not from a pipe.
-Standard input was changed in version 7 to use callouts, which prevented PDF
-reading from standard input. Fixes SourceForge bug #583413, /ioerror with gs
-- &lt; file.pdf vers 7.xx (doc/Use.htm [1.33.2.15]: 2002/09/14 12:05:58
-ghostgum)
- - Fix: Mentions the autoconf build method in the installation
-documentation. Inspired by a user report of having looked there first rather
-than at Make.htm; an understandible choice based on GNU/Linux packaging
-conventions. Also removes a reference to using the Acrobat Reader fonts.
-(doc/Install.htm [1.26.2.9]: 2002/09/16 21:41:40 giles)
- - Fix a broken documentation link. (doc/Use.htm [1.33.2.17]:
-2002/09/16 22:50:31 giles)
- - Keep pagedevice and device views of .LockSafetyParams correct even
-after a 'restore' is used to unlock. The dictionary fed to the setpagedevice
-operator is allocated in the same VM space as currentpagedevice to avoid
-invalidaccess problems. Fixed SF #580029 and does not revert to the
-incorrect behaviour of bug #516379. (doc/Language.htm [1.34.2.12]:
-2002/09/19 17:05:05 ray)
- - adds missing files to the developer documentation.
-(doc/Develop.htm [1.47.2.16]: 2002/10/10 13:22:31 giles)
- - release number must be updated in lib/gs_init.ps as well.
-(doc/Release.htm [1.40.2.19]: 2002/10/10 13:25:25 giles)
-
-Update the url for the zlib website and source. Fixes SF Bug #550585.
-(doc/Make.htm [1.36.2.13], doc/New-user.htm [1.30.2.9]: 2002/05/09 17:04:50
-giles)
-
-Prefer {} to () for manditory alteration groups in commandline arguments.
-Patch from Eric S. Raymond. (man/de/ps2pdf.1 [1.1.4.1],
-man/ps2pdf.1 [1.14.2.8], man/ps2pdfwr.1 [1.13.2.8]: 2002/08/08 12:27:21
-giles)
-
-Add missing "Summary of environment variables" header to Use.htm.
-(doc/Use.htm [1.33.2.14]: 2002/08/09 11:00:04 ghostgum)
-
-Delete all temporary files when the interpreter closes.
-(doc/Language.htm [1.34.2.11]: 2002/09/05 12:21:45 ghostgum)
-
-Add command line options -dEPS, -dEPSCrop and -dEPSFitPage for handling
-Encapsulated PostScript files. (doc/Use.htm [1.33.2.16]: 2002/09/14 12:17:25
-ghostgum)
-
-Removes mention of the gdevcd8.c drivers from the documentation. All of
-these printers are supported by the gimp-print and/or hpijs projects. The
-(GPL) third party drivers for them were never added to the 7.0x series.
-Closes SourceForge bug #557177. (doc/Devices.htm [1.34.2.12]: 2002/09/22
-23:02:38 giles)
-
-Add documentation to the .setsafe operator that was added to .locksafe
-operator that says that .setsafe uses setpagedevice, thus it will erase the
-page. Related to SourceForge bug #580029. (doc/Language.htm [1.34.2.13]:
-2002/09/23 06:19:58 ray)
-
-Remove excessive trademark symbols to improve compliance with the GNU coding
-guidelines. (man/de/ps2pdf.1 [1.1.4.2], man/ps2pdf.1 [1.14.2.9]: 2002/09/23
-14:53:40 giles)
-
-Attempt to update version info on the german manpages and port Thomas
-Hoffmann's fixes from HEAD. (man/de/ansi2knr.1 [1.1.4.1],
-man/de/dvipdf.1 [1.1.4.1], man/de/font2c.1 [1.1.4.1],
-man/de/gsnd.1 [1.2.4.1], man/de/pdf2dsc.1 [1.1.4.1],
-man/de/pdf2ps.1 [1.2.4.1], man/de/pdfopt.1 [1.1.4.1],
-man/de/printafm.1 [1.1.4.1], man/de/ps2ascii.1 [1.1.4.1],
-man/de/ps2pdf.1 [1.1.4.3], man/de/ps2ps.1 [1.2.4.1],
-man/de/wftopfa.1 [1.1.4.1]: 2002/09/23 15:57:35 giles)
-
-Improve compliance with GNU coding standards by removing references to
-other software. (doc/API.htm [1.11.2.11], doc/C-style.htm [1.21.2.9],
-doc/Current.htm [1.13.2.9], doc/DLL.htm [1.15.2.9], doc/Develop.htm
-[1.47.2.14], doc/Devices.htm [1.34.2.13], doc/Drivers.htm [1.21.2.9],
-doc/Fonts.htm [1.22.2.10], doc/Helpers.htm [1.17.2.9], doc/Hershey.htm
-[1.3.4.1], doc/History1.htm [1.13.2.9], doc/History2.htm [1.13.2.9],
-doc/History3.htm [1.13.2.9], doc/History4.htm [1.13.2.9], doc/History5.htm
-[1.15.2.9], doc/History6.htm [1.30.2.9], doc/History7.htm [1.5.2.13],
-doc/Htmstyle.htm [1.18.2.9], doc/Humor.htm [1.3.2.2], doc/Install.htm
-[1.26.2.10], doc/Issues.htm [1.15.2.10], doc/Language.htm [1.34.2.14],
-doc/Lib.htm [1.14.2.9], doc/Maintain.htm [1.23.2.9], doc/Make.htm
-[1.36.2.14], doc/New-user.htm [1.30.2.10], doc/News.htm [1.90.2.15],
-doc/Projects.htm [1.33.2.9], doc/Ps-style.htm [1.13.2.9], doc/Ps2epsi.htm
-[1.15.2.10], doc/Ps2pdf.htm [1.32.2.9], doc/Psfiles.htm [1.22.2.10],
-doc/Readme.htm [1.31.2.11], doc/Release.htm [1.40.2.16], doc/Source.htm
-[1.13.2.9], doc/Unix-lpr.htm [1.13.2.9], doc/Use.htm [1.33.2.18],
-doc/Xfonts.htm [1.13.2.9]: 2002/09/23 16:26:21 giles)
-
-Additional german manpage cleanup thanks to the Jens Harting.
-(man/de/ansi2knr.1 [1.1.4.2], man/de/dvipdf.1 [1.1.4.2],
-man/de/font2c.1 [1.1.4.2], man/de/gsnd.1 [1.2.4.2],
-man/de/pdf2dsc.1 [1.1.4.2], man/de/pdf2ps.1 [1.2.4.2],
-man/de/pdfopt.1 [1.1.4.2], man/de/ps2ascii.1 [1.1.4.2],
-man/de/ps2pdf.1 [1.1.4.4], man/de/ps2ps.1 [1.2.4.2]: 2002/09/23 17:24:44
-giles)
-
-Improve compliance with the GNU coding guidelines on references to other
-software. (doc/Readme.htm [1.31.2.12]: 2002/09/25 14:58:34 giles)
-
-Further improvement of compliance with the GNU coding guidelines on
-references to other software. (doc/Make.htm [1.36.2.15], doc/New-user.htm
-[1.30.2.11]: 2002/09/25 18:13:29 giles)
-
-Further improvement of compliance with the GNU coding guidelines on
-references to other software. (doc/gs-vms.hlp [1.12.2.8]: 2002/10/07
-22:18:20 giles)
-
-Remove Tester.htm. It's (probably) out of date. (doc/Readme.htm
-[1.31.2.13]: 2002/10/07 22:19:40 giles)
-
-Last round of refinement for compliance with GNU coding
-standards. (doc/Fonts.htm [1.22.2.11], doc/Install.htm [1.26.2.11],
-doc/Issues.htm [1.15.2.11], doc/Maintain.htm [1.23.2.10], doc/Make.htm
-[1.36.2.16], doc/New-user.htm [1.30.2.12], doc/Readme.htm [1.31.2.14],
-doc/Release.htm [1.40.2.17]: 2002/10/08 08:24:34 giles)
-
-Remove remaining elements of support for K&amp;R (pre-ansi) C. We no longer
-support building ghostscript tt way, but the remaining dead code causes
-confusion for some users. Closes Sourceforge bug #618048.
-(doc/Develop.htm [1.47.2.15], doc/Make.htm [1.36.2.17],
-doc/Release.htm [1.40.2.18]: 2002/10/10 00:28:26 giles)
-
-Update version number and date for release. (doc/API.htm [1.11.2.12],
-doc/C-style.htm [1.21.2.10], doc/Current.htm [1.13.2.10],
-doc/DLL.htm [1.15.2.10], doc/Develop.htm [1.47.2.17],
-doc/Devices.htm [1.34.2.14], doc/Drivers.htm [1.21.2.10],
-doc/Fonts.htm [1.22.2.12], doc/Helpers.htm [1.17.2.10],
-doc/History1.htm [1.13.2.10], doc/History2.htm [1.13.2.10],
-doc/History3.htm [1.13.2.10], doc/History4.htm [1.13.2.10],
-doc/History5.htm [1.15.2.10], doc/History6.htm [1.30.2.10],
-doc/History7.htm [1.5.2.14], doc/Htmstyle.htm [1.18.2.10],
-doc/Install.htm [1.26.2.12], doc/Issues.htm [1.15.2.12],
-doc/Language.htm [1.34.2.15], doc/Lib.htm [1.14.2.10],
-doc/Maintain.htm [1.23.2.11], doc/Make.htm [1.36.2.18],
-doc/New-user.htm [1.30.2.13], doc/News.htm [1.90.2.16],
-doc/Projects.htm [1.33.2.10], doc/Ps-style.htm [1.13.2.10],
-doc/Ps2epsi.htm [1.15.2.11], doc/Ps2pdf.htm [1.32.2.10],
-doc/Psfiles.htm [1.22.2.11], doc/Readme.htm [1.31.2.15],
-doc/Release.htm [1.40.2.20], doc/Source.htm [1.13.2.10],
-doc/Unix-lpr.htm [1.13.2.10], doc/Use.htm [1.33.2.19],
-doc/Xfonts.htm [1.13.2.10], doc/gs-vms.hlp [1.12.2.9]: 2002/10/10 13:36:49
-giles)
-
-Update version number and date for release. (man/dvipdf.1 [1.10.2.8],
-man/font2c.1 [1.10.2.8], man/gs.1 [1.10.2.9], man/gslp.1 [1.10.2.8],
-man/gsnd.1 [1.10.2.8], man/pdf2dsc.1 [1.10.2.8], man/pdf2ps.1 [1.12.2.8],
-man/pdfopt.1 [1.10.2.8], man/pf2afm.1 [1.10.2.8], man/pfbtopfa.1 [1.11.2.8],
-man/printafm.1 [1.10.2.8], man/ps2ascii.1 [1.10.2.8],
-man/ps2epsi.1 [1.10.2.9], man/ps2pdf.1 [1.14.2.10],
-man/ps2pdfwr.1 [1.13.2.9], man/ps2ps.1 [1.17.2.8], man/wftopfa.1 [1.10.2.8]:
-2002/10/10 13:37:00 giles)
-
-Improvements to processing of EPS files. (doc/Use.htm [1.33.2.20]:
-2002/10/31 11:12:12 ghostgum)
-
-Correct the documented paper sizes in Use.htm to match gs_statd.ps after fix
-for SF bug # 536877. Change cm units to the more common mm.
-(doc/Use.htm [1.33.2.21]: 2002/11/04 22:55:35 ghostgum)
-
-Add working 'distclean' and 'maintainer-clean' targets to the autoconf
-makefile. Backport from HEAD. (doc/Release.htm [1.40.2.22]: 2002/12/02
-00:10:23 giles)
-
-Update release date for second candidate. (doc/API.htm [1.11.2.13],
-doc/C-style.htm [1.21.2.11], doc/DLL.htm [1.15.2.11],
-doc/Develop.htm [1.47.2.18], doc/Devices.htm [1.34.2.15],
-doc/Drivers.htm [1.21.2.11], doc/Fonts.htm [1.22.2.13],
-doc/Helpers.htm [1.17.2.11], doc/History1.htm [1.13.2.11],
-doc/History2.htm [1.13.2.11], doc/History3.htm [1.13.2.11],
-doc/History4.htm [1.13.2.11], doc/History5.htm [1.15.2.11],
-doc/History6.htm [1.30.2.11], doc/History7.htm [1.5.2.16],
-doc/Htmstyle.htm [1.18.2.11], doc/Install.htm [1.26.2.13],
-doc/Issues.htm [1.15.2.13], doc/Language.htm [1.34.2.16],
-doc/Lib.htm [1.14.2.11], doc/Maintain.htm [1.23.2.12],
-doc/Make.htm [1.36.2.19], doc/New-user.htm [1.30.2.14],
-doc/News.htm [1.90.2.18], doc/Projects.htm [1.33.2.11],
-doc/Ps-style.htm [1.13.2.11], doc/Ps2epsi.htm [1.15.2.12],
-doc/Ps2pdf.htm [1.32.2.11], doc/Psfiles.htm [1.22.2.12],
-doc/Readme.htm [1.31.2.16], doc/Release.htm [1.40.2.23],
-doc/Source.htm [1.13.2.11], doc/Unix-lpr.htm [1.13.2.11],
-doc/Use.htm [1.33.2.22], doc/Xfonts.htm [1.13.2.11],
-doc/gs-vms.hlp [1.12.2.10]: 2002/12/02 01:54:36 giles)
-
-Update release date for second candidate. (man/dvipdf.1 [1.10.2.9],
-man/font2c.1 [1.10.2.9], man/gs.1 [1.10.2.10], man/gslp.1 [1.10.2.9],
-man/gsnd.1 [1.10.2.9], man/pdf2dsc.1 [1.10.2.9], man/pdf2ps.1 [1.12.2.9],
-man/pdfopt.1 [1.10.2.9], man/pf2afm.1 [1.10.2.9], man/pfbtopfa.1 [1.11.2.9],
-man/printafm.1 [1.10.2.9], man/ps2ascii.1 [1.10.2.9],
-man/ps2epsi.1 [1.10.2.10], man/ps2pdf.1 [1.14.2.11],
-man/ps2pdfwr.1 [1.13.2.10], man/ps2ps.1 [1.17.2.9],
-man/wftopfa.1 [1.10.2.9]: 2002/12/02 01:54:43 giles)
-
-Change documentation and changelogs to better comply with GNU coding
-guidelines. Patch from Brett Smith. (doc/API.htm [1.11.2.13.2.1],
-doc/Changes.htm [1.28.2.8.2.1], doc/Develop.htm [1.47.2.18.2.1],
-doc/Devices.htm [1.34.2.15.2.1], doc/Fonts.htm [1.22.2.13.2.1],
-doc/History2.htm [1.13.2.11.2.1], doc/History3.htm [1.13.2.11.2.1],
-doc/History4.htm [1.13.2.11.2.1], doc/History5.htm [1.15.2.11.2.1],
-doc/History6.htm [1.30.2.11.2.1], doc/History7.htm [1.5.2.17.2.1],
-doc/Install.htm [1.26.2.13.2.1], doc/Maintain.htm [1.23.2.12.2.1],
-doc/Make.htm [1.36.2.19.2.1], doc/New-user.htm [1.30.2.14.2.1],
-doc/Projects.htm [1.33.2.11.2.1], doc/Ps2epsi.htm [1.15.2.12.2.1],
-doc/Release.htm [1.40.2.23.2.1], doc/Use.htm [1.33.2.22.2.1]: 2003/01/17
-00:58:51 giles)
-
-Update release date for final 7.06 release. (doc/API.htm [1.11.2.13.2.2],
-doc/C-style.htm [1.21.2.11.2.1], doc/DLL.htm [1.15.2.11.2.1],
-doc/Develop.htm [1.47.2.18.2.2], doc/Devices.htm [1.34.2.15.2.2],
-doc/Drivers.htm [1.21.2.11.2.1], doc/Fonts.htm [1.22.2.13.2.2],
-doc/Helpers.htm [1.17.2.11.2.1], doc/History1.htm [1.13.2.11.2.1],
-doc/History2.htm [1.13.2.11.2.2], doc/History3.htm [1.13.2.11.2.2],
-doc/History4.htm [1.13.2.11.2.2], doc/History5.htm [1.15.2.11.2.2],
-doc/History6.htm [1.30.2.11.2.2], doc/History7.htm [1.5.2.17.2.2],
-doc/Htmstyle.htm [1.18.2.11.2.1], doc/Install.htm [1.26.2.13.2.2],
-doc/Issues.htm [1.15.2.13.2.1], doc/Language.htm [1.34.2.16.2.1],
-doc/Lib.htm [1.14.2.11.2.1], doc/Maintain.htm [1.23.2.12.2.2],
-doc/Make.htm [1.36.2.19.2.2], doc/New-user.htm [1.30.2.14.2.2],
-doc/News.htm [1.90.2.18.2.1], doc/Projects.htm [1.33.2.11.2.2],
-doc/Ps-style.htm [1.13.2.11.2.1], doc/Ps2epsi.htm [1.15.2.12.2.2],
-doc/Ps2pdf.htm [1.32.2.11.2.1], doc/Psfiles.htm [1.22.2.12.2.1],
-doc/Readme.htm [1.31.2.16.2.1], doc/Release.htm [1.40.2.23.2.2],
-doc/Source.htm [1.13.2.11.2.1], doc/Unix-lpr.htm [1.13.2.11.2.1],
-doc/Use.htm [1.33.2.22.2.2], doc/Xfonts.htm [1.13.2.11.2.1],
-doc/gs-vms.hlp [1.12.2.10.2.1], man/dvipdf.1 [1.10.2.9.2.1],
-man/font2c.1 [1.10.2.9.2.1], man/gs.1 [1.10.2.10.2.1],
-man/gslp.1 [1.10.2.9.2.1], man/gsnd.1 [1.10.2.9.2.1],
-man/pdf2dsc.1 [1.10.2.9.2.1], man/pdf2ps.1 [1.12.2.9.2.1],
-man/pdfopt.1 [1.10.2.9.2.1], man/pf2afm.1 [1.10.2.9.2.1],
-man/pfbtopfa.1 [1.11.2.9.2.1], man/printafm.1 [1.10.2.9.2.1],
-man/ps2ascii.1 [1.10.2.9.2.1], man/ps2epsi.1 [1.10.2.10.2.1],
-man/ps2pdf.1 [1.14.2.11.2.1], man/ps2pdfwr.1 [1.13.2.10.2.1],
-man/ps2ps.1 [1.17.2.9.2.1], man/wftopfa.1 [1.10.2.9.2.1]: 2003/02/09
-16:20:03 giles)
-
-Correct a typo in the release date. (doc/API.htm [1.11.2.13.2.3],
-doc/C-style.htm [1.21.2.11.2.2], doc/DLL.htm [1.15.2.11.2.2],
-doc/Develop.htm [1.47.2.18.2.3], doc/Devices.htm [1.34.2.15.2.3],
-doc/Drivers.htm [1.21.2.11.2.2], doc/Fonts.htm [1.22.2.13.2.3],
-doc/Helpers.htm [1.17.2.11.2.2], doc/History1.htm [1.13.2.11.2.2],
-doc/History2.htm [1.13.2.11.2.3], doc/History3.htm [1.13.2.11.2.3],
-doc/History4.htm [1.13.2.11.2.3], doc/History5.htm [1.15.2.11.2.3],
-doc/History6.htm [1.30.2.11.2.3], doc/History7.htm [1.5.2.17.2.3],
-doc/Htmstyle.htm [1.18.2.11.2.2], doc/Install.htm [1.26.2.13.2.3],
-doc/Issues.htm [1.15.2.13.2.2], doc/Language.htm [1.34.2.16.2.2],
-doc/Lib.htm [1.14.2.11.2.2], doc/Maintain.htm [1.23.2.12.2.3],
-doc/Make.htm [1.36.2.19.2.3], doc/New-user.htm [1.30.2.14.2.3],
-doc/News.htm [1.90.2.18.2.2], doc/Projects.htm [1.33.2.11.2.3],
-doc/Ps-style.htm [1.13.2.11.2.2], doc/Ps2epsi.htm [1.15.2.12.2.3],
-doc/Ps2pdf.htm [1.32.2.11.2.2], doc/Psfiles.htm [1.22.2.12.2.2],
-doc/Readme.htm [1.31.2.16.2.2], doc/Release.htm [1.40.2.23.2.3],
-doc/Source.htm [1.13.2.11.2.2], doc/Unix-lpr.htm [1.13.2.11.2.2],
-doc/Use.htm [1.33.2.22.2.3], doc/Xfonts.htm [1.13.2.11.2.2],
-doc/gs-vms.hlp [1.12.2.10.2.2], man/dvipdf.1 [1.10.2.9.2.2],
-man/font2c.1 [1.10.2.9.2.2], man/gs.1 [1.10.2.10.2.2],
-man/gslp.1 [1.10.2.9.2.2], man/gsnd.1 [1.10.2.9.2.2],
-man/pdf2dsc.1 [1.10.2.9.2.2], man/pdf2ps.1 [1.12.2.9.2.2],
-man/pdfopt.1 [1.10.2.9.2.2], man/pf2afm.1 [1.10.2.9.2.2],
-man/pfbtopfa.1 [1.11.2.9.2.2], man/printafm.1 [1.10.2.9.2.2],
-man/ps2ascii.1 [1.10.2.9.2.2], man/ps2epsi.1 [1.10.2.10.2.2],
-man/ps2pdf.1 [1.14.2.11.2.2], man/ps2pdfwr.1 [1.13.2.10.2.2],
-man/ps2ps.1 [1.17.2.9.2.2], man/wftopfa.1 [1.10.2.9.2.2]: 2003/02/09
-17:07:08 giles)
-
-Update changelog and release date. (doc/News.htm [1.90.2.18.2.3]: 2003/03/31
-13:56:42 giles)
-
-Propagate new release date to all documentation.
-(doc/API.htm [1.11.2.13.2.4], doc/C-style.htm [1.21.2.11.2.3],
-doc/DLL.htm [1.15.2.11.2.3], doc/Develop.htm [1.47.2.18.2.4],
-doc/Devices.htm [1.34.2.15.2.4], doc/Drivers.htm [1.21.2.11.2.3],
-doc/Fonts.htm [1.22.2.13.2.4], doc/Helpers.htm [1.17.2.11.2.3],
-doc/History1.htm [1.13.2.11.2.3], doc/History2.htm [1.13.2.11.2.4],
-doc/History3.htm [1.13.2.11.2.4], doc/History4.htm [1.13.2.11.2.4],
-doc/History5.htm [1.15.2.11.2.4], doc/History6.htm [1.30.2.11.2.4],
-doc/History7.htm [1.5.2.17.2.4], doc/Htmstyle.htm [1.18.2.11.2.3],
-doc/Install.htm [1.26.2.13.2.4], doc/Issues.htm [1.15.2.13.2.3],
-doc/Language.htm [1.34.2.16.2.3], doc/Lib.htm [1.14.2.11.2.3],
-doc/Maintain.htm [1.23.2.12.2.4], doc/Make.htm [1.36.2.19.2.4],
-doc/New-user.htm [1.30.2.14.2.4], doc/News.htm [1.90.2.18.2.4],
-doc/Projects.htm [1.33.2.11.2.4], doc/Ps-style.htm [1.13.2.11.2.3],
-doc/Ps2epsi.htm [1.15.2.12.2.4], doc/Ps2pdf.htm [1.32.2.11.2.3],
-doc/Psfiles.htm [1.22.2.12.2.3], doc/Readme.htm [1.31.2.16.2.3],
-doc/Release.htm [1.40.2.23.2.4], doc/Source.htm [1.13.2.11.2.3],
-doc/Unix-lpr.htm [1.13.2.11.2.3], doc/Use.htm [1.33.2.22.2.4],
-doc/Xfonts.htm [1.13.2.11.2.3], doc/gs-vms.hlp [1.12.2.10.2.3],
-man/dvipdf.1 [1.10.2.9.2.3], man/font2c.1 [1.10.2.9.2.3],
-man/gs.1 [1.10.2.10.2.3], man/gslp.1 [1.10.2.9.2.3],
-man/gsnd.1 [1.10.2.9.2.3], man/pdf2dsc.1 [1.10.2.9.2.3],
-man/pdf2ps.1 [1.12.2.9.2.3], man/pdfopt.1 [1.10.2.9.2.3],
-man/pf2afm.1 [1.10.2.9.2.3], man/pfbtopfa.1 [1.11.2.9.2.3],
-man/printafm.1 [1.10.2.9.2.3], man/ps2ascii.1 [1.10.2.9.2.3],
-man/ps2epsi.1 [1.10.2.10.2.3], man/ps2pdf.1 [1.14.2.11.2.3],
-man/ps2pdfwr.1 [1.13.2.10.2.3], man/ps2ps.1 [1.17.2.9.2.3],
-man/wftopfa.1 [1.10.2.9.2.3]: 2003/03/31 14:00:26 giles)
-
-</pre><h2><a name="7.06-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - .pushpdf14devicefilter was defined in zdfilter.c, but depended on
-the optional pdf module's transparency features. Moves the definition of
-this routine to the conditionally included ztrans.c. Fix by L. Peter
-Deutsch, resolves SourceForge Bug 565019. (int.mak [1.50.2.4]: 2002/06/14
-09:53:12 giles)
- - As a result of a recent fix, an opdef table had more than 16
-entries, causing initialization to abort. backporting a fix by L. Peter
-Deutsch from HEAD. (int.mak [1.50.2.5]: 2002/06/14 15:26:00 giles)
- - When building an archive of the graphics library or interpreter,
-add only the object files, not the .dev and interpreter files. Fixes
-SourceForge bug # 538311 - files missing from library archive.
-(gs.mak [1.5.2.4], ugcclib.mak [1.13.2.6], unixlink.mak [1.3.4.2]:
-2002/06/22 03:34:43 ghostgum)
- - Provide an implementation of popen for Windows, to avoid the
-broken implementation in MSVC++ 5 and 6. This allows pswrite to output to a
-pipe on Windows. Fixes SourceForge bug #482038, pswrite does not write to
-pipe. (winlib.mak [1.12.2.3]: 2002/09/05 10:19:00 ghostgum)
- - provide a meaningful error message when an immediately evaluated
-name can not be found. Fixes SourceForge bug #543185, Confusing diagnostics
-for //undefined. (int.mak [1.50.2.6]: 2002/09/14 11:59:15 ghostgum)
-
-Update the url for the zlib website and source. Fixes SF Bug #550585.
-(zlib.mak [1.3.2.2]: 2002/05/09 17:04:50 giles)
-
-Add a 32 bit/pixel CMYK driver named pam using the Portable Arbitrary Map
-file format, one of the netpbm family. This driver has problems with
-anti-aliasing that will be fixed in a later patch. (devs.mak [1.47.2.7]:
-2002/06/22 03:44:00 ghostgum)
-
-Remove spurious build of the gtk client along with the macos framework.
-Backport the 'framework_install' target from HEAD. (macos-fw.mak [1.1.2.3]:
-2002/08/07 13:05:17 giles)
-
-Add command line options -dEPS, -dEPSCrop and -dEPSFitPage for handling
-Encapsulated PostScript files. (bcwin32.mak [1.12.2.6],
-msvc32.mak [1.20.2.8]: 2002/09/14 12:17:26 ghostgum)
-
-Remove some interpreter references from the graphics library. Partial fix
-for SourceForge bug #542848, "library #includes interpreter headers".
-(lib.mak [1.53.2.5], msvclib.mak [1.16.2.4], msvctail.mak [1.6.2.2],
-pcwin.mak [1.2.6.2]: 2002/09/14 12:25:55 ghostgum)
-
-Prune the dead 'begin' makefile target. This was supposedly removed in
-release 5.20. (gs.mak [1.5.2.5]: 2002/10/09 22:07:08 giles)
-
-Remove remaining elements of support for K&amp;R (pre-ansi) C. We no longer
-support building ghostscript tt way, but the remaining dead code causes
-confusion for some users. Closes Sourceforge bug #618048.
-(dvx-gcc.mak [1.12.2.6], dvx-tail.mak [1.5.2.2], gs.mak [1.5.2.6],
-macos-mcp.mak [1.3.2.5], macosx.mak [1.3.2.7], openvms.mak [1.16.2.6],
-openvms.mmk [1.12.2.3], os2.mak [1.19.2.6], ugcclib.mak [1.13.2.7],
-unix-aux.mak [1.5.2.3], unix-gcc.mak [1.23.2.10], unixansi.mak [1.16.2.9],
-wccommon.mak [1.3.6.2], winlib.mak [1.12.2.4]: 2002/10/10 00:24:01 giles)
-
-Set USE_ASM to zero explicitly. (unix-gcc.mak [1.23.2.11],
-unixansi.mak [1.16.2.10]: 2002/10/10 12:47:49 giles)
-
-Update libpng version number to latest release. (all-arch.mak [1.9.2.4],
-bcwin32.mak [1.12.2.7], dvx-gcc.mak [1.12.2.7], macos-mcp.mak [1.3.2.6],
-macosx.mak [1.3.2.8], msvc32.mak [1.20.2.9], msvclib.mak [1.16.2.5],
-openvms.mak [1.16.2.7], os2.mak [1.19.2.7], ugcclib.mak [1.13.2.8],
-unix-gcc.mak [1.23.2.12], unixansi.mak [1.16.2.11], watc.mak [1.16.2.4],
-watclib.mak [1.13.2.5], watcw32.mak [1.13.2.5]: 2002/10/10 13:35:51 giles)
-
-Update version number and date for release. (version.mak [1.36.2.8]:
-2002/10/10 13:37:03 giles)
-
-Module gslib removed from the library archive. Further fix for [ 538311 ]
-files missing from library archive. (ugcclib.mak [1.13.2.9]: 2002/11/02
-04:31:13 ghostgum)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(macos-mcp.mak [1.3.2.7], macosx.mak [1.3.2.9]: 2002/12/01 23:29:37 giles)
-
-Update libpng version makefile variables to 10205. These were accidentally
-reverted in the last commit. (macos-mcp.mak [1.3.2.8],
-macosx.mak [1.3.2.10]: 2002/12/01 23:32:56 giles)
-
-Add working 'distclean' and 'maintainer-clean' targets to the autoconf
-makefile. Backport from HEAD. (gs.mak [1.5.2.7]: 2002/12/02 00:10:24 giles)
-
-Update release date for second candidate. (version.mak [1.36.2.9]:
-2002/12/02 01:55:46 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (all-arch.mak [1.9.2.4.2.1], bcwin32.mak [1.12.2.7.2.1],
-cfonts.mak [1.2.6.1.2.1], contrib.mak [1.24.2.1.2.1],
-devs.mak [1.47.2.7.2.1], dvx-gcc.mak [1.12.2.7.2.1],
-dvx-head.mak [1.2.6.1.2.1], dvx-tail.mak [1.5.2.2.2.1],
-dwmain.rc [1.2.6.2.2.1], dwsetup.rc [1.5.2.4.2.1],
-dwuninst.rc [1.3.6.2.2.1], gs.mak [1.5.2.7.2.1], gs16spl.rc [1.2.6.2.2.1],
-gsdll2.rc [1.2.6.1.2.1], gsdll32.rc [1.2.6.2.2.1]: 2003/01/17 00:49:00
-giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (gsos2.rc [1.2.6.1.2.1], gspmdrv.rc [1.2.6.1.2.1],
-gswin.rc [1.2.6.2.2.1], icclib.mak [1.3.2.2.2.1], ijs.mak [1.2.2.2.2.1],
-int.mak [1.50.2.6.2.1], jpeg.mak [1.4.2.1.2.1], lib.mak [1.53.2.5.2.1],
-libpng.mak [1.10.2.3.2.1], macos-fw.mak [1.1.2.3.2.1],
-macos-mcp.mak [1.3.2.8.2.1], macosx.mak [1.3.2.10.2.1],
-msvc32.mak [1.20.2.9.2.1], msvccmd.mak [1.6.2.1.2.1],
-msvclib.mak [1.16.2.5.2.1], msvctail.mak [1.6.2.2.2.1],
-openvms.mak [1.16.2.7.2.1], openvms.mmk [1.12.2.3.2.1],
-os2.mak [1.19.2.7.2.1], pcwin.mak [1.2.6.2.2.1], ugcclib.mak [1.13.2.9.2.1],
-unix-aux.mak [1.5.2.3.2.1], unix-dll.mak [1.6.2.2.2.1],
-unix-end.mak [1.2.6.1.2.1], unix-gcc.mak [1.23.2.12.2.1],
-unixansi.mak [1.16.2.11.2.1], unixhead.mak [1.2.6.1.2.1],
-unixinst.mak [1.20.2.9.2.1], unixlink.mak [1.3.4.2.2.1],
-version.mak [1.36.2.9.2.1], watclib.mak [1.13.2.5.2.1],
-watcw32.mak [1.13.2.5.2.1], wccommon.mak [1.3.6.2.2.1],
-wctail.mak [1.3.2.2.2.1], winint.mak [1.8.2.5.2.1],
-winlib.mak [1.12.2.4.2.1], winplat.mak [1.2.6.1.2.1],
-wmin.mak [1.2.6.1.2.1]: 2003/01/17 00:49:03 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (zlib.mak [1.3.2.2.2.1]: 2003/01/17 00:49:06 giles)
-
-Makefile banner lines should be comments. (gs.mak [1.5.2.7.2.2]: 2003/01/28
-12:02:09 ghostgum)
-
-Update release date for final 7.06 release. (version.mak [1.36.2.9.2.2]:
-2003/02/09 16:20:05 giles)
-
-Add pngalpha device that uses RGBA, with the alpha channel providing pixel
-coverage. Used for generating PNG images with a transparent background.
-(bcwin32.mak [1.12.2.7.2.2], devs.mak [1.47.2.7.2.2],
-macosx.mak [1.3.2.10.2.2], msvc32.mak [1.20.2.9.2.2],
-openvms.mak [1.16.2.7.2.2], os2.mak [1.19.2.7.2.2],
-unix-gcc.mak [1.23.2.12.2.2], unixansi.mak [1.16.2.11.2.2],
-watcw32.mak [1.13.2.5.2.2]: 2003/03/11 11:59:10 ghostgum)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(gp_mac.c [1.1.4.3], gp_macio.c [1.2.4.4], macgenmcpxml.sh [1.1.4.4]:
-2002/12/01 23:29:37 giles)
-Update changelog and release date. (version.mak [1.36.2.9.2.3]: 2003/03/31
-13:56:42 giles)
-
-Correct the copyright date and avoid putting NT security attributes into the
-Windows distribution archive. (winint.mak [1.8.2.5.2.2]: 2003/04/01 09:30:59
-ghostgum)
-
-</pre><h2><a name="7.06-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Reinstate ps2epsi.bat and ps2epsi.cmd. Correctly embed the
-original EPS file in the output of ps2epsi on Windows and OS/2.
-(lib/ps2epsi.bat [1.6.2.2], lib/ps2epsi.cmd [1.3.2.2]: 2002/04/26 00:24:45
-ghostgum)
- - Temporary files weren't being put in the proper location under
-MacOS X/Carbon. Updates the the proper prameter block type for the Carbon
-interface so this works properly on both OS 9/X. Patch from Erik Strik.
-(gp_macio.c [1.2.4.3]: 2002/06/13 15:40:59 giles)
- - Provide an implementation of popen for Windows, to avoid the
-broken implementation in MSVC++ 5 and 6. This allows pswrite to output to a
-pipe on Windows. Fixes SourceForge bug #482038, pswrite does not write to
-pipe. (gp_mswin.c [1.7.2.2]: 2002/09/05 10:19:00 ghostgum)
-
-Remove the DOS and OS/2 versions of the ps2epsi code. They have been broken
-for some time. (lib/ps2epsi.bat [1.6.2.1], lib/ps2epsi.cmd [1.3.2.1]:
-2002/04/22 20:38:01 giles)
-
-Changes to the gtk+ client to request a suitable window size based on the
-screen and image sizes, to reduce unnecessary redraws and erase the window
-area outside the image. (dxmain.c [1.7.2.2]: 2002/04/26 05:03:20 ghostgum)
-
-Update project file generation script to support Metrowerks CodeWarrior 7.
-(macgenmcpxml.sh [1.1.4.3]: 2002/09/04 09:02:38 giles)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(gp_mac.c [1.1.4.3], gp_macio.c [1.2.4.4], macgenmcpxml.sh [1.1.4.4]:
-2002/12/01 23:29:37 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (bench.c [1.4.4.1.2.1], dxmain.c [1.7.2.2.2.1],
-dxmainc.c [1.4.2.2.2.1], echogs.c [1.3.2.1.2.1], genarch.c [1.2.6.1.2.1],
-genconf.c [1.4.4.1.2.1], gendev.c [1.2.6.1.2.1], genht.c [1.2.6.1.2.1],
-geninit.c [1.3.6.1.2.1], gp_dvx.c [1.4.2.1.2.1], gp_iwatc.c [1.6.2.2.2.1],
-gp_mac.c [1.1.4.3.2.1], gp_macio.c [1.2.4.5.2.1], gp_mktmp.c [1.2.6.1.2.1],
-gp_msdll.c [1.1.2.1.2.1], gp_mshdl.c [1.2.6.1.2.1], gp_msio.c [1.3.4.1.2.1],
-gp_mslib.c [1.3.2.1.2.1], gp_mspol.c [1.1.2.1.2.1],
-gp_msprn.c [1.1.2.1.2.1], gp_mswin.c [1.7.2.3.2.1], gp_ntfs.c [1.5.2.4.2.1],
-gp_os2.c [1.10.2.3.2.1], gp_os9.c [1.4.2.1.2.1], gp_stdia.c [1.3.2.1.2.1],
-gp_stdin.c [1.2.2.1.2.1], gp_sysv.c [1.2.6.1.2.1], gp_unix.c [1.5.2.1.2.1],
-gp_vms.c [1.7.2.3.2.1], gp_wgetv.c [1.4.2.2.2.1], gp_win32.c [1.2.6.1.2.1],
-gp_wsync.c [1.2.6.1.2.1], gs16spl.c [1.2.6.1.2.1], gsdll.c [1.6.2.1.2.1],
-gserver.c [1.2.6.1.2.1]: 2003/01/17 00:49:00 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (gspmdrv.c [1.2.6.1.2.1], scfdgen.c [1.2.6.1.2.1],
-zdosio.c [1.2.6.1.2.1]: 2003/01/17 00:49:03 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (ziodevs.c [1.5.2.1.2.1], ziodevsc.c [1.3.2.1.2.1]: 2003/01/17
-00:49:06 giles)
-
-Correct an incorrectly applied patch to the macos implementation of
-gp_pathstring_not_bare(). (gp_macio.c [1.2.4.5.2.2]: 2003/04/01 12:21:50
-giles)
-
-</pre><h2><a name="7.06-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - Correct the display device color mapping functions that were
-wrong. Change 4-bit mapping functions to standard VGA. Correct 16-bit native
-RGB and 32-bit xRGB mapping functions. Add RGB to color mapping functions
-for CMYK formats, needed by anti-aliasing. (gdevdsp.c [1.5.2.5]: 2002/06/22
-03:10:10 ghostgum)
- - When compiled for A4 default page size, the initial page size is
-now 595x842pts. The initial printer page size in tenths of an inch now uses
-floating point. This may cause problems with old compilers that do not allow
-floating point calculations in initializers for integers. Add some casts to
-suppress warnings with the MS compiler. Fixes SourceForge bug #535997,
-"ps2pdf produces incorrect A4 page size". (gdevbmpc.c [1.2.6.2]: 2002/07/18
-11:11:40 ghostgum)
-
-To improve clarity, use hexadecimal for -dDisplayFormat=16#XXXXXX in the
-display device example code. (gdevdsp.c [1.5.2.4]: 2002/06/19 11:36:36
-ghostgum)
-
-Add a 32 bit/pixel CMYK driver named pam using the Portable Arbitrary Map
-file format, one of the netpbm family. This driver has problems with
-anti-aliasing that will be fixed in a later patch. (gdevpbm.c [1.3.6.2]:
-2002/06/22 03:44:00 ghostgum)
-
-Remove some interpreter references from the graphics library. Partial fix
-for SourceForge bug #542848, "library #includes interpreter headers".
-(gdevmswn.c [1.4.2.2]: 2002/09/14 12:25:55 ghostgum)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(gdevmac.h [1.1.4.3]: 2002/12/01 23:29:37 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (gdev3852.c [1.3.2.1.2.1], gdev3b1.c [1.2.6.1.2.1],
-gdev4081.c [1.3.2.1.2.1], gdev8510.c [1.3.2.1.2.1],
-gdev8bcm.c [1.2.6.1.2.1], gdev8bcm.h [1.2.6.1.2.1],
-gdevadmp.c [1.3.2.1.2.1], gdevatx.c [1.6.8.1], gdevbit.c [1.2.6.1.2.1],
-gdevbj10.c [1.4.2.1.2.1], gdevbjc.h [1.2.6.1.2.1], gdevbjcl.c [1.2.6.1.2.1],
-gdevbjcl.h [1.2.6.1.2.1], gdevbmp.c [1.4.2.1.2.1], gdevbmp.h [1.2.6.1.2.1],
-gdevbmpa.c [1.3.6.1.2.1], gdevbmpc.c [1.2.6.2.2.1], gdevccr.c [1.2.6.1.2.1],
-gdevcdj.c [1.5.2.1.2.1], gdevcfax.c [1.3.6.1.2.1], gdevcgm.c [1.2.6.2.2.1],
-gdevcgml.c [1.2.6.1.2.1], gdevcgml.h [1.2.6.1.2.1],
-gdevcgmx.h [1.2.6.1.2.1], gdevcif.c [1.3.2.1.2.1], gdevclj.c [1.2.6.1.2.1],
-gdevcljc.c [1.4.2.1.2.1], gdevcp50.c [1.3.2.1.2.1],
-gdevcslw.c [1.2.6.1.2.1], gdevdcrd.c [1.2.6.1.2.1],
-gdevdcrd.h [1.2.6.1.2.1], gdevdfax.c [1.4.2.1.2.1], gdevdjet.c [1.6.8.1],
-gdevdjtc.c [1.3.2.1.2.1], gdevdljm.c [1.4.8.1], gdevdljm.h [1.4.8.1],
-gdevdm24.c [1.3.2.1.2.1], gdevdsp.c [1.5.2.5.2.1],
-gdevegaa.asm [1.2.6.1.2.1], gdevepsc.c [1.3.2.1.2.1],
-gdevepsn.c [1.3.2.1.2.1], gdevescp.c [1.3.2.1.2.1],
-gdevevga.c [1.2.6.1.2.1], gdevfax.c [1.2.6.1.2.1], gdevfax.h [1.2.6.1.2.1],
-gdevherc.c [1.2.6.1.2.1], gdevhl7x.c [1.5.2.1.2.1], gdevijs.c [1.1.2.3.2.1],
-gdevimgn.c [1.4.2.1.2.1], gdevjpeg.c [1.3.2.1.2.1],
-gdevl256.c [1.3.6.1.2.1], gdevl31s.c [1.2.6.1.2.1],
-gdevlbp8.c [1.3.2.1.2.1], gdevlj56.c [1.3.2.1.2.1],
-gdevlp8k.c [1.2.6.1.2.1], gdevlxm.c [1.2.6.1.2.1], gdevmac.c [1.1.4.3.2.1],
-gdevmac.h [1.1.4.3.2.1], gdevmacpictop.h [1.1.4.2.2.1],
-gdevmacttf.h [1.1.4.2.2.1], gdevmacxf.c [1.1.4.2.2.1],
-gdevmeds.c [1.2.6.1.2.1], gdevmeds.h [1.2.6.1.2.1], gdevmgr.c [1.2.6.1.2.1],
-gdevmgr.h [1.2.6.1.2.1], gdevmiff.c [1.3.2.1.2.1], gdevmswn.c [1.4.2.2.2.1],
-gdevmswn.h [1.2.6.1.2.1], gdevmsxf.c [1.2.6.1.2.1],
-gdevn533.c [1.3.2.1.2.1], gdevo182.c [1.3.2.1.2.1],
-gdevokii.c [1.3.2.1.2.1], gdevos2p.c [1.4.2.1.2.1], gdevp14.h [1.1.2.1.2.1],
-gdevp2up.c [1.2.6.1.2.1], gdevpbm.c [1.3.6.2.2.1], gdevpccm.c [1.2.6.1.2.1],
-gdevpccm.h [1.3.6.1.2.1], gdevpcfb.c [1.2.6.1.2.1],
-gdevpcfb.h [1.2.6.1.2.1], gdevpcl.c [1.5.2.1.2.1], gdevpcl.h [1.5.2.1.2.1],
-gdevpcx.c [1.2.6.1.2.1], gdevpe.c [1.2.6.1.2.1], gdevphex.c [1.2.6.2.2.1],
-gdevpjet.c [1.3.2.1.2.1], gdevpm.c [1.4.2.1.2.1], gdevpm.h [1.2.6.1.2.1],
-gdevpng.c [1.4.2.1.2.1], gdevpnga.c [1.4.2.1.2.1], gdevps.c [1.19.2.2.2.1],
-gdevpsdf.h [1.9.4.1.2.1], gdevpsdi.c [1.15.2.1.2.1],
-gdevpsdp.c [1.8.6.1.2.1], gdevpsds.c [1.4.6.1.2.1],
-gdevpsds.h [1.4.6.1.2.1], gdevpsdu.c [1.10.2.1.2.1],
-gdevpsim.c [1.6.2.1.2.1], gdevpsu.c [1.7.2.2.2.1], gdevpsu.h [1.4.2.1.2.1],
-gdevpx.c [1.6.2.1.2.1], gdevpxat.h [1.3.6.1.2.1], gdevpxen.h [1.3.6.1.2.1],
-gdevpxop.h [1.2.6.1.2.1], gdevpxut.c [1.2.6.1.2.1],
-gdevpxut.h [1.2.6.1.2.1], gdevs3ga.c [1.2.6.1.2.1], gdevsco.c [1.3.6.1.2.1],
-gdevsj48.c [1.2.6.1.2.1], gdevsnfb.c [1.3.2.1.2.1],
-gdevsppr.c [1.5.2.1.2.1], gdevstc.c [1.2.6.1.2.1], gdevstc.h [1.2.6.1.2.1],
-gdevstc1.c [1.2.6.1.2.1], gdevstc2.c [1.2.6.1.2.1],
-gdevstc3.c [1.2.6.1.2.1], gdevstc4.c [1.2.6.1.2.1], gdevsun.c [1.2.6.1.2.1],
-gdevsunr.c [1.4.2.1.2.1], gdevsvga.c [1.2.6.1.2.1],
-gdevsvga.h [1.2.6.1.2.1], gdevtfax.c [1.4.6.1.2.1],
-gdevtfax.h [1.4.6.1.2.1], gdevtfnx.c [1.5.2.1.2.1],
-gdevtifs.c [1.4.2.1.2.1], gdevtifs.h [1.3.6.1.2.1],
-gdevtknk.c [1.3.2.1.2.1], gdevupd.c [1.5.2.1.2.1], gdevvglb.c [1.3.6.1.2.1],
-gdevwddb.c [1.3.2.1.2.1], gdevwdib.c [1.3.2.1.2.1],
-gdevwpr2.c [1.9.2.1.2.1], gdevwprn.c [1.3.2.1.2.1], gdevx.c [1.8.2.3.2.1],
-gdevx.h [1.4.6.1.2.1], gdevxalt.c [1.2.6.2.2.1], gdevxcmp.c [1.2.6.2.2.1],
-gdevxcmp.h [1.2.6.1.2.1], gdevxini.c [1.10.4.1.2.1],
-gdevxres.c [1.3.6.1.2.1], gdevxxf.c [1.5.6.1.2.1]: 2003/01/17 00:49:00
-giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (gdevpdf.c [1.38.2.3.2.1], gdevpdfb.c [1.6.2.1.2.1],
-gdevpdfc.c [1.17.2.1.2.1], gdevpdfd.c [1.16.2.1.2.1],
-gdevpdfg.c [1.14.2.1.2.1], gdevpdfg.h [1.9.6.1.2.1],
-gdevpdfi.c [1.24.2.1.2.1], gdevpdfj.c [1.7.2.1.2.1],
-gdevpdfm.c [1.14.2.1.2.1], gdevpdfo.c [1.9.2.1.2.1],
-gdevpdfo.h [1.6.4.1.2.1], gdevpdfp.c [1.19.2.1.2.1],
-gdevpdfr.c [1.4.6.1.2.1], gdevpdfu.c [1.16.2.1.2.1],
-gdevpdfv.c [1.10.2.1.2.1], gdevpdfx.h [1.34.2.1.2.1]: 2003/01/17 00:49:01
-giles)
-
-</pre><h2><a name="7.06-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - (pdfwrite) Completely replacing the Rotation computation logics.
-Source Forge bug "[ 475147 ] GS 7.03 produces everthing upsidedown"
-(gdevpdf.c [1.38.2.2]: 2002/06/28 10:44:18 igor)
-
-</pre><h2><a name="7.06-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - Add the option -dUseCropBox to set the page size from the CropBox
-rather than the MediaBox. This is appropriate when using ghostscript to view
-PDF files or convert to bitmaps. It probably isn't appropriate for printing.
-Fixes SourceForge bugs #522486, "Wromg size EPS generated from PDF" and
-#538267 "Problems with Media Box in PDF and PS interpreter".
-(lib/pdf_main.ps [1.35.2.3]: 2002/06/28 10:59:02 ghostgum)
- - When drawing PDF annotation links which are missing a /Border,
-assume the default /Border [0 0 1]. Previously ghostscript assumed that
-links without a /Border should not be drawn, which is contrary to the PDF
-specification. (lib/pdf_draw.ps [1.36.2.2]: 2002/06/28 23:12:21 ghostgum)
- - If a PDF annotation specified other than the default color with
-/C, pass this into the pdfmark logic as /Color. (lib/pdf_main.ps [1.35.2.4]:
-2002/06/28 23:13:06 ghostgum)
- - When using -dUseCropBox, use an inherited CropBox. The previous
-fix would only use a CropBox on the page being displayed.
-(lib/pdf_main.ps [1.35.2.5]: 2002/07/18 10:45:42 ghostgum)
- - When ghostscript is given a PDF file on standard input, copy it to
-a temporary file before processing. Prior to version 7, ghostscript could
-read PDF from standard input redirected from a file, but not from a pipe.
-Standard input was changed in version 7 to use callouts, which prevented PDF
-reading from standard input. Fixes SourceForge bug #583413, /ioerror with gs
-- &lt; file.pdf vers 7.xx (lib/pdf_main.ps [1.35.2.6]: 2002/09/14 12:05:58
-ghostgum)
-
-Move code from pdfshowpage to pdfshowpage_finish for the benefit of GSview
-which calls pdfshowpage_init and pdfshowpage_finish, but not
-pdfshowpage_setpage. (lib/pdf_main.ps [1.35.2.7]: 2002/11/05 20:58:19
-ghostgum)
-
-Makes the PDF interpreter run files under a level of 'save'. This improves
-memory utilization significantly, although we don't understand why. Patch
-originally applied as revision 1.45 by lpd. (lib/pdf_main.ps [1.35.2.7.2.1]:
-2003/01/28 11:08:36 ghostgum)
-
-Treat files starting with %Pxxx as PostScript, not PDF. Process empty files
-without error. Fixes SourceForge bug #663150, Some PS files half-recognized
-as PDF files DETAILS: Changes for the 8.00 release to allow reading of PDF
-files from stdin caused files starting with %Pxxx to be half recognised as
-PDF files. This patch simplifies the PDF recognition code and makes it treat
-only files starting with "%PDF-" as PDF. Testing of this code found that
-zero length input files caused a PostScript error. This was an existing
-error which is fixed by the gs_epsf.ps patch and last line of the
-pdf_main.ps patch. (lib/pdf_main.ps [1.35.2.7.2.2]: 2003/01/28 11:54:11
-ghostgum)
-
-</pre><h2><a name="7.06-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - .pushpdf14devicefilter was defined in zdfilter.c, but depended on
-the optional pdf module's transparency features. Moves the definition of
-this routine to the conditionally included ztrans.c. Fix by L. Peter
-Deutsch, resolves SourceForge Bug 565019. (zdfilter.c [1.2.2.2],
-ztrans.c [1.13.2.2]: 2002/06/14 09:53:12 giles)
- - As a result of a recent fix, an opdef table had more than 16
-entries, causing initialization to abort. backporting a fix by L. Peter
-Deutsch from HEAD. (ztrans.c [1.13.2.3]: 2002/06/14 15:26:00 giles)
- - Correct the display device color mapping functions that were
-wrong. Change 4-bit mapping functions to standard VGA. Correct 16-bit native
-RGB and 32-bit xRGB mapping functions. Add RGB to color mapping functions
-for CMYK formats, needed by anti-aliasing. (dpmain.c [1.5.2.2],
-dwimg.c [1.3.2.2]: 2002/06/22 03:10:10 ghostgum)
- - correct the ISO paper sizes in gs_statd.ps to match those in the
-Adobe PPD specification, technical note 5003. Fixes SourceForge bug #536877,
-"Paper sizes wrong in gs_statd.ps". (lib/gs_statd.ps [1.5.2.2]: 2002/07/18
-10:43:42 ghostgum)
- - process comment lines when they straddle a buffer boundary, so
-that all DSC comments can be processed by the PDF writer. Fixes SourceForge
-bug #432040, DSC ignored when reading stdin. (iscan.c [1.5.6.2]: 2002/09/05
-08:30:38 ghostgum)
- - copy comment lines inside a procedure which require a scanner
-refill to the operand stack, not the execution stack. Fixes SourceForge bug
-#605240, 070-01.ps fails in .parse_dsc_comments. (iscan.c [1.5.6.3]:
-2002/09/06 20:54:10 ghostgum)
- - provide a meaningful error message when an immediately evaluated
-name can not be found. Fixes SourceForge bug #543185, Confusing diagnostics
-for //undefined. (interp.c [1.8.2.2], ziodev.c [1.6.2.2]: 2002/09/14
-11:59:15 ghostgum)
- - Keep pagedevice and device views of .LockSafetyParams correct even
-after a 'restore' is used to unlock. The dictionary fed to the setpagedevice
-operator is allocated in the same VM space as currentpagedevice to avoid
-invalidaccess problems. Fixed SF #580029 and does not revert to the
-incorrect behaviour of bug #516379. (lib/gs_init.ps [1.40.2.11]: 2002/09/19
-17:05:05 ray)
- - Fix : Overlapping format 4 CMap ranges, while arguably buggy, are
-commonly found in quite a few popular CJK TrueType fonts. Patch from Anthony
-Fok Tung-Ling. (lib/gs_ttf.ps [1.9.2.3]: 2002/09/20 15:35:22 igor)
- - The constraint for FontBBox to be non-zero was not conforming and
-now is removed. (bfont.h [1.3.6.2], zbfont.c [1.7.4.2], zfcid0.c [1.7.2.3],
-zfcid1.c [1.4.4.2]: 2002/09/21 08:36:49 igor)
- - Fix : Unwinding the patch from Anthony Fok Tung-Ling, because it
-caused regression with comparefiles/fonts.pdf . (lib/gs_ttf.ps [1.9.2.4]:
-2002/09/22 12:43:55 igor)
- - Provide a meaningful error message when an immediately evaluated
-name in a procedure can not be found. Additional fix for SourceForge bug
-#543185, Confusing diagnostics for //undefined. (iscan.c [1.5.6.4],
-ziodev.c [1.6.2.3]: 2002/11/01 23:50:42 ghostgum)
- - Redefine .runstdin with one bound to EPSF 'run' operator so that
-EPS files are handled correctly from %stdin. Code for skipping DOS EPS
-header now uses the EPS encapsulating run, instead of directly calling
-.runexec. (lib/gs_epsf.ps [1.2.6.5]: 2002/11/01 23:53:32 ghostgum)
- - When processing an EPS file, remove any left over items on the
-operand and dictionary stacks. (lib/gs_epsf.ps [1.2.6.7]: 2002/11/12
-20:32:59 ghostgum)
- - Fix the remaining security patch problems so that local/global
-state is correctly handled, both for the pagedevice as well as the
-PermitFile... userparam dictionary entries. Fixes bug #647685. Patch from
-Ray Johnston. (lib/gs_epsf.ps [1.2.6.11.2.2],
-lib/gs_init.ps [1.40.2.12.2.1], lib/gs_lev2.ps [1.7.2.4.2.2],
-lib/gs_setpd.ps [1.8.2.2.2.1]: 2003/03/31 13:02:22 giles)
-
-Delete all temporary files when the interpreter closes. (imain.c [1.19.2.2]:
-2002/09/05 10:26:09 ghostgum)
-
-Add command line options -dEPS, -dEPSCrop and -dEPSFitPage for handling
-Encapsulated PostScript files. (lib/gs_epsf.ps [1.2.6.2],
-lib/gs_init.ps [1.40.2.10]: 2002/09/14 12:17:26 ghostgum)
-
-Remove a debug message from previous EPS commit. (lib/gs_epsf.ps [1.2.6.3]:
-2002/09/14 12:45:02 ghostgum)
-
-Update version number and date for release. (lib/gs_init.ps [1.40.2.12]:
-2002/10/10 13:36:56 giles)
-
-Improvements to processing of EPS files. (lib/gs_epsf.ps [1.2.6.4]:
-2002/10/31 11:12:13 ghostgum)
-
-Correct -dEPSFitPage when the device has non-zero margins.
-(lib/gs_epsf.ps [1.2.6.6]: 2002/11/07 07:16:34 ghostgum)
-
-Correct the display device color mapping intended for the Macintosh.
-(gdevdsp.h [1.1.2.3]: 2002/11/13 07:19:56 ghostgum)
-
-Make sure resource use of .forcedef works with -dDELAYBIND. Patch by Alex
-Cherepanov. (lib/gs_res.ps [1.16.2.2]: 2002/11/18 20:31:52 ghostgum)
-
-Prevent access to .forceput. (lib/gs_epsf.ps [1.2.6.8]: 2002/11/20 06:44:59
-ghostgum)
-
-When processing multiple EPS files, call showpage if necessary for
-subsequent files. (lib/gs_epsf.ps [1.2.6.9]: 2002/11/20 06:46:35 ghostgum)
-
-When processing EPS files, empty the path after checking the page size.
-(lib/gs_epsf.ps [1.2.6.10]: 2002/11/21 09:59:46 ghostgum)
-
-Backport debug and unitialized variable fixes from HEAD. After a patch from
-Alexei A. Podtelezhnikov. (icontext.c [1.6.6.3], interp.c [1.8.2.3],
-iscan.c [1.5.6.5], ziodev.c [1.6.2.4]: 2002/12/01 15:10:20 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (bfont.h [1.3.6.2.2.1], btoken.h [1.4.6.1.2.1],
-ccfont.h [1.2.6.1.2.1], dpmain.c [1.5.2.2.2.1], dscparse.c [1.7.2.1.2.1],
-dscparse.h [1.6.2.2.2.1], dstack.h [1.3.4.1.2.1], dwdll.c [1.2.2.1.2.1],
-dwdll.h [1.3.2.1.2.1], dwimg.c [1.3.2.2.2.1], dwimg.h [1.4.2.2.2.1],
-dwinst.cpp [1.2.6.2.2.1], dwinst.h [1.2.6.3.2.1], dwmain.c [1.6.2.2.2.1],
-dwmain.h [1.3.2.2.2.1], dwmainc.c [1.8.2.2.2.1], dwnodll.c [1.1.2.2.2.1],
-dwreg.c [1.1.2.2.2.1], dwreg.h [1.1.2.2.2.1], dwsetup.cpp [1.5.6.2.2.1],
-dwsetup.h [1.2.6.2.2.1], dwtext.c [1.5.2.1.2.1], dwtext.h [1.4.2.2.2.1],
-dwuninst.cpp [1.2.6.2.2.1], dwuninst.h [1.2.6.2.2.1],
-errors.h [1.4.2.1.2.1], estack.h [1.2.6.1.2.1], files.h [1.4.2.1.2.1],
-gdevdsp.h [1.1.2.3.2.1], gdevdsp2.h [1.2.2.2.2.1], ghost.h [1.2.6.1.2.1],
-gs.c [1.6.2.1.2.1]: 2003/01/17 00:49:00 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (ialloc.c [1.2.6.1.2.1], ialloc.h [1.2.6.1.2.1],
-iapi.c [1.1.2.2.2.1], iapi.h [1.2.2.1.2.1], iastate.h [1.2.6.1.2.1],
-iastruct.h [1.2.6.1.2.1], ibnum.c [1.2.6.1.2.1], ibnum.h [1.2.6.1.2.1],
-iccfont.c [1.2.6.2.2.1], iccinit0.c [1.2.6.1.2.1], icfontab.c [1.2.6.1.2.1],
-ichar.h [1.3.6.1.2.1], ichar1.h [1.3.6.1.2.1], icharout.h [1.3.4.1.2.1],
-icid.h [1.2.6.1.2.1], icie.h [1.3.2.1.2.1], icolor.h [1.2.6.1.2.1],
-iconf.c [1.3.2.1.2.1], iconf.h [1.1.6.1.2.1], icontext.c [1.6.6.3.2.1],
-icontext.h [1.2.6.1.2.1], icremap.h [1.2.6.1.2.1], icsmap.h [1.2.6.1.2.1],
-icstate.h [1.4.6.2.2.1], iddict.h [1.2.6.1.2.1], iddstack.h [1.2.6.1.2.1],
-idebug.c [1.4.2.1.2.1], idebug.h [1.2.6.1.2.1], idict.c [1.4.4.1.2.1],
-idict.h [1.2.6.1.2.1], idictdef.h [1.2.6.1.2.1], idisp.c [1.2.2.2.2.1],
-idisp.h [1.1.2.1.2.1], idosave.h [1.2.6.1.2.1], idparam.c [1.3.6.1.2.1],
-idparam.h [1.3.6.1.2.1], idsdata.h [1.2.6.1.2.1], idstack.c [1.2.6.1.2.1],
-idstack.h [1.2.6.1.2.1], iesdata.h [1.2.6.1.2.1], iestack.h [1.2.6.1.2.1],
-ifcid.h [1.2.6.1.2.1], ifilter.h [1.3.6.1.2.1], ifilter2.h [1.2.6.1.2.1],
-ifont.h [1.6.4.1.2.1], ifont1.h [1.3.6.1.2.1], ifont2.h [1.2.6.1.2.1],
-ifont42.h [1.3.6.1.2.1], ifrpred.h [1.2.6.1.2.1], ifunc.h [1.3.6.3.2.1],
-ifwpred.h [1.2.6.1.2.1], igc.c [1.5.2.1.2.1], igc.h [1.2.6.1.2.1],
-igcref.c [1.3.2.1.2.1], igcstr.c [1.3.6.1.2.1], igcstr.h [1.2.6.1.2.1],
-igstate.h [1.3.6.1.2.1], iht.h [1.2.6.1.2.1], iimage.h [1.2.6.1.2.1],
-iimage2.h [1.2.6.1.2.1], iinit.c [1.3.4.1.2.1], iinit.h [1.2.6.1.2.1],
-ilevel.h [1.2.6.1.2.1], ilocate.c [1.4.2.1.2.1], imain.c [1.19.2.2.2.1],
-imain.h [1.3.2.1.2.1], imainarg.c [1.13.2.3.2.1], imainarg.h [1.3.2.1.2.1],
-imemory.h [1.2.6.1.2.1], iminst.h [1.5.2.1.2.1], iname.c [1.3.6.1.2.1],
-iname.h [1.2.6.1.2.1], inamedef.h [1.2.6.1.2.1], inameidx.h [1.2.6.1.2.1],
-inames.h [1.2.6.1.2.1], inamestr.h [1.2.6.1.2.1], inobtokn.c [1.2.6.1.2.1],
-inouparm.c [1.2.6.1.2.1], interp.c [1.8.2.3.2.1], interp.h [1.2.6.1.2.1],
-iosdata.h [1.2.6.1.2.1], iostack.h [1.2.6.1.2.1], ipacked.h [1.2.6.1.2.1],
-iparam.c [1.5.6.1.2.1], iparam.h [1.2.6.1.2.1], iparray.h [1.2.6.1.2.1],
-ipcolor.h [1.2.6.1.2.1], ireclaim.c [1.3.2.1.2.1], iref.h [1.5.4.1.2.1],
-isave.c [1.3.6.1.2.1], isave.h [1.2.6.1.2.1], iscan.c [1.5.6.5.2.1],
-iscan.h [1.4.6.1.2.1], iscanbin.c [1.5.6.1.2.1], iscanbin.h [1.2.6.1.2.1],
-iscannum.c [1.3.2.1.2.1], iscannum.h [1.2.6.1.2.1], isdata.h [1.2.6.1.2.1],
-isstate.h [1.2.6.1.2.1], istack.c [1.2.6.1.2.1], istack.h [1.2.6.1.2.1],
-isstate.h [1.2.6.1.2.1], istack.c [1.2.6.1.2.1], istack.h [1.2.6.1.2.1],
-istkparm.h [1.2.6.1.2.1], istream.h [1.2.6.1.2.1], istruct.h [1.2.6.1.2.1],
-itoken.h [1.2.6.1.2.1], iutil.c [1.3.2.1.2.1], iutil.h [1.2.6.1.2.1],
-iutil2.c [1.2.6.2.2.1], iutil2.h [1.2.6.2.2.1], ivmem2.h [1.2.6.1.2.1],
-ivmspace.h [1.2.6.1.2.1], main.h [1.3.2.1.2.1], oparc.h [1.2.6.1.2.1],
-opcheck.h [1.2.6.1.2.1], opdef.h [1.3.2.1.2.1], oper.h [1.2.6.1.2.1],
-opextern.h [1.2.6.1.2.1], ostack.h [1.2.6.1.2.1], sbhc.c [1.3.4.1.2.1],
-sbhc.h [1.2.6.1.2.1], sbwbs.c [1.2.6.1.2.1], sbwbs.h [1.2.6.1.2.1],
-sfilter1.c [1.6.4.1.2.1], shcgen.c [1.2.6.1.2.1], shcgen.h [1.2.6.1.2.1],
-smtf.c [1.2.6.1.2.1], smtf.h [1.2.6.1.2.1], store.h [1.2.6.1.2.1],
-zarith.c [1.4.6.1.2.1], zarray.c [1.2.6.1.2.1], zbfont.c [1.7.4.2.2.1],
-zbseq.c [1.4.6.1.2.1], zcfont.c [1.2.6.2.2.1], zchar.c [1.4.2.2.2.1],
-zchar1.c [1.7.2.2.2.1], zchar2.c [1.2.6.1.2.1], zchar32.c [1.2.6.1.2.1],
-zchar42.c [1.3.4.2.2.1], zcharout.c [1.4.4.2.2.1], zcharx.c [1.3.6.1.2.1],
-zcid.c [1.3.6.1.2.1], zcie.c [1.5.2.1.2.1], zcolor.c [1.4.6.1.2.1],
-zcolor1.c [1.3.6.1.2.1], zcolor2.c [1.4.2.1.2.1], zcontext.c [1.7.2.1.2.1],
-zcontrol.c [1.3.6.2.2.1], zcrd.c [1.2.6.1.2.1], zcsdevn.c [1.5.2.2.2.1],
-zcsindex.c [1.3.6.1.2.1], zcspixel.c [1.2.6.1.2.1], zcssepr.c [1.8.2.1.2.1],
-zdevcal.c [1.3.6.1.2.1], zdevice.c [1.3.6.2.2.1], zdevice2.c [1.4.2.2.2.1],
-zdfilter.c [1.2.2.2.2.1], zdict.c [1.3.6.1.2.1], zdouble.c [1.2.6.1.2.1],
-zdpnext.c [1.3.6.1.2.1], zdps.c [1.4.6.1.2.1], zdps1.c [1.3.4.1.2.1],
-zdscpars.c [1.12.2.1.2.1], zfarc4.c [1.2.2.1.2.1], zfbcp.c [1.3.6.1.2.1],
-zfcid.c [1.11.4.1.2.1], zfcid0.c [1.7.2.3.2.1], zfcid1.c [1.4.4.2.2.1],
-zfcmap.c [1.9.2.1.2.1], zfdctd.c [1.6.2.1.2.1], zfdcte.c [1.5.2.1.2.1],
-zfdecode.c [1.3.6.1.2.1], zfile.c [1.11.2.4.2.1], zfileio.c [1.12.2.1.2.1],
-zfilter.c [1.5.2.1.2.1], zfilter2.c [1.3.6.1.2.1], zfilterx.c [1.2.6.1.2.1],
-zfmd5.c [1.2.6.1.2.1], zfont.c [1.3.4.1.2.1], zfont0.c [1.3.6.1.2.1],
-zfont1.c [1.9.4.1.2.1], zfont2.c [1.4.2.1.2.1], zfont32.c [1.2.6.1.2.1],
-zfont42.c [1.5.6.1.2.1], zfproc.c [1.9.2.1.2.1], zfrsd.c [1.4.6.1.2.1],
-zfunc.c [1.6.6.3.2.1], zfunc0.c [1.3.6.2.2.1], zfunc3.c [1.2.6.2.2.1],
-zfunc4.c [1.7.4.2.2.1], zfzlib.c [1.3.6.1.2.1], zgeneric.c [1.3.6.1.2.1],
-zgstate.c [1.2.6.1.2.1], zhsb.c [1.2.6.1.2.1], zht.c [1.2.6.1.2.1],
-zht1.c [1.2.6.1.2.1], zht2.c [1.2.6.1.2.1], zicc.c [1.2.2.2.2.1],
-zimage.c [1.5.6.1.2.1], zimage2.c [1.4.2.1.2.1], zimage3.c [1.3.6.1.2.1],
-ziodev.c [1.6.2.4.2.1], ziodev2.c [1.3.6.1.2.1], zmath.c [1.3.6.1.2.1],
-zmatrix.c [1.4.6.1.2.1], zmedia2.c [1.3.2.1.2.1], zmisc.c [1.2.6.1.2.1],
-zmisc1.c [1.3.6.1.2.1], zmisc2.c [1.3.6.1.2.1], zmisc3.c [1.2.6.1.2.1],
-zpacked.c [1.2.6.1.2.1], zpaint.c [1.2.6.1.2.1], zpath.c [1.2.6.1.2.1],
-zpath1.c [1.2.6.1.2.1], zpcolor.c [1.3.6.1.2.1], zrelbit.c [1.2.6.1.2.1],
-zrop.c [1.2.6.1.2.1], zshade.c [1.4.6.2.2.1], zstack.c [1.2.6.1.2.1],
-zstring.c [1.2.6.1.2.1], zsysvm.c [1.2.6.1.2.1], ztoken.c [1.6.6.1.2.1],
-ztrans.c [1.13.2.3.2.1], ztrap.c [1.2.6.1.2.1], ztype.c [1.3.6.1.2.1],
-zupath.c [1.2.6.1.2.1], zusparam.c [1.3.6.2.2.1], zvmem.c [1.3.2.2.2.1],
-zvmem2.c [1.3.2.1.2.1]: 2003/01/17 00:49:04 giles)
-
-Update DSC parser to current Ghostgum Software version. Fixes SourceForge
-bug #657289, SEGV on Alpha in DSC parser. DETAILS: A %%Page line with
-mismatched parentheses around the page label was ignored, but parser state
-was updated to scanning pages, not setup section. This resulted in access to
-dsc-&gt;page[-1] which is invalid and caused a SEGV on Alpha. The updated
-code now checks that dsc-&gt;page_count is non-zero before accessing dsc-
-&gt;page[dsc-&gt;page_count-1]. It also makes a second attempt at finding
-the page ordinal at the end of a line like: %%Page: (label with closing
-parentheses 1 Other parser updates include support for DCS2 files (which is
-not quite compliant with DSC), removing a few compiler warnings,
-%%HiResBoundingBox, %%CropBox, %%PageCropBox, and being more resilient to
-incorrect DSC. (dscparse.c [1.7.2.1.2.2], dscparse.h [1.6.2.2.2.2]:
-2003/01/28 11:44:44 ghostgum)
-
-Treat files starting with %Pxxx as PostScript, not PDF. Process empty files
-without error. Fixes SourceForge bug #663150, Some PS files half-recognized
-as PDF files DETAILS: Changes for the 8.00 release to allow reading of PDF
-files from stdin caused files starting with %Pxxx to be half recognised as
-PDF files. This patch simplifies the PDF recognition code and makes it treat
-only files starting with "%PDF-" as PDF. Testing of this code found that
-zero length input files caused a PostScript error. This was an existing
-error which is fixed by the gs_epsf.ps patch and last line of the
-pdf_main.ps patch. (lib/gs_epsf.ps [1.2.6.11.2.1]: 2003/01/28 11:54:11
-ghostgum)
-
-</pre><h2><a name="7.06-Streams"></a>Streams</h2><pre>
-
-Remove some interpreter references from the graphics library. Partial fix
-for SourceForge bug #542848, "library #includes interpreter headers".
-(sarc4.c [1.5.2.2]: 2002/09/14 12:25:55 ghostgum)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(stat_.h [1.6.2.2], stdpre.h [1.4.2.2]: 2002/12/01 23:29:37 giles)
-
-</pre><h2><a name="7.06-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - When drawing with anti-aliasing on devices with less than
-8-bit/pixel, extract the correct existing pixel value.
-(gdevdbit.c [1.2.6.2]: 2002/06/22 03:09:05 ghostgum)
- - (pdfwrite) Enforce writing FontBBox into CFF. Source Forge bug "[
-578899 ] Missing /FontBBox when converting to ps?" (gdevpsf.h [1.10.2.2],
-gdevpsf2.c [1.15.2.2]: 2002/07/16 13:33:49 igor)
- - When compiled for A4 default page size, the initial page size is
-now 595x842pts. The initial printer page size in tenths of an inch now uses
-floating point. This may cause problems with old compilers that do not allow
-floating point calculations in initializers for integers. Add some casts to
-suppress warnings with the MS compiler. Fixes SourceForge bug #535997,
-"ps2pdf produces incorrect A4 page size". (gdevprn.h [1.6.6.2],
-gxdevice.h [1.4.6.3]: 2002/07/18 11:11:40 ghostgum)
- - Provide an implementation of popen for Windows, to avoid the
-broken implementation in MSVC++ 5 and 6. This allows pswrite to output to a
-pipe on Windows. Fixes SourceForge bug #482038, pswrite does not write to
-pipe. (pipe_.h [1.2.6.2]: 2002/09/05 10:19:00 ghostgum)
- - Propagate error codes from gs_distance_transform_inverse. Patch
-from Forrest Cahoon, improved. (gxstroke.c [1.2.6.2]: 2002/10/31 09:02:54
-igor)
-
-Remove some interpreter references from the graphics library. Partial fix
-for SourceForge bug #542848, "library #includes interpreter headers".
-(gsargs.c [1.4.2.2]: 2002/09/14 12:25:55 ghostgum)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (ctype_.h [1.2.6.1.2.1], dirent_.h [1.2.6.1.2.1],
-dos_.h [1.2.6.1.2.1], errno_.h [1.2.6.1.2.1], fcntl_.h [1.3.6.1.2.1],
-gconf.c [1.2.6.1.2.1], gconf.h [1.2.6.1.2.1], gdebug.h [1.3.2.1.2.1],
-gdevabuf.c [1.3.6.1.2.1], gdevbbox.c [1.4.2.1.2.1],
-gdevbbox.h [1.2.6.1.2.1], gdevcmap.c [1.2.6.1.2.1],
-gdevcmap.h [1.2.6.1.2.1], gdevdbit.c [1.2.6.2.2.1],
-gdevddrw.c [1.2.6.1.2.1], gdevdflt.c [1.3.6.1.2.1],
-gdevdgbr.c [1.2.6.1.2.1], gdevdrop.c [1.3.6.1.2.1],
-gdevemap.c [1.2.6.1.2.1], gdevhit.c [1.2.6.1.2.1], gdevm1.c [1.2.6.1.2.1],
-gdevm16.c [1.2.6.1.2.1], gdevm2.c [1.2.6.1.2.1], gdevm24.c [1.2.6.1.2.1],
-gdevm32.c [1.2.6.1.2.1], gdevm4.c [1.2.6.1.2.1], gdevm8.c [1.2.6.1.2.1],
-gdevmem.c [1.2.6.1.2.1], gdevmem.h [1.3.6.1.2.1], gdevmpla.c [1.2.6.1.2.1],
-gdevmpla.h [1.2.6.1.2.1], gdevmr1.c [1.2.6.1.2.1], gdevmr2n.c [1.2.6.1.2.1],
-gdevmr8n.c [1.2.6.1.2.1], gdevmrop.h [1.3.6.1.2.1],
-gdevmrun.c [1.2.6.1.2.1], gdevmrun.h [1.2.6.1.2.1],
-gdevnfwd.c [1.3.6.1.2.1], gdevp14.c [1.4.2.3.2.1], gdevpipe.c [1.4.4.1.2.1],
-gdevplnx.c [1.2.6.1.2.1], gdevplnx.h [1.2.6.1.2.1],
-gdevppla.c [1.2.6.1.2.1], gdevppla.h [1.2.6.1.2.1], gdevprn.c [1.5.6.2.2.1],
-gdevprn.h [1.6.6.2.2.1], gdevprna.c [1.2.6.1.2.1], gdevprna.h [1.2.6.1.2.1],
-gdevpsf.h [1.10.2.2.2.1], gdevpsf1.c [1.9.2.1.2.1],
-gdevpsf2.c [1.15.2.2.2.1], gdevpsfm.c [1.5.2.2.2.1],
-gdevpsft.c [1.8.2.1.2.1], gdevpsfu.c [1.7.2.1.2.1],
-gdevpsfx.c [1.9.2.1.2.1], gdevrops.c [1.3.6.1.2.1],
-gdevtrac.c [1.2.6.1.2.1], gdevvec.c [1.12.2.2.2.1], gdevvec.h [1.7.2.1.2.1],
-gp.h [1.8.2.3.2.1], gp_dosfe.c [1.2.6.2.2.1], gp_dosfs.c [1.2.6.3.2.1],
-gp_getnv.c [1.2.6.1.2.1], gp_msdos.c [1.2.6.1.2.1],
-gp_nsync.c [1.2.6.1.2.1], gp_psync.c [1.2.6.1.2.1],
-gp_strdl.c [1.2.6.1.2.1], gp_unifn.c [1.2.6.3.2.1],
-gp_unifs.c [1.6.2.2.2.1], gpcheck.h [1.2.6.1.2.1], gpgetenv.h [1.2.6.1.2.1],
-gpmisc.c [1.9.4.1.2.1], gpmisc.h [1.2.6.1.2.1], gpsync.h [1.2.6.1.2.1],
-gsalloc.c [1.11.2.2.2.1], gsalloc.h [1.2.6.1.2.1], gsalpha.c [1.2.6.1.2.1],
-gsalpha.h [1.2.6.1.2.1], gsalphac.c [1.2.6.1.2.1], gsalphac.h [1.2.6.1.2.1],
-gsargs.c [1.4.2.2.2.1], gsargs.h [1.4.2.1.2.1], gsbitcom.c [1.1.4.1.2.1],
-gsbitmap.h [1.2.6.1.2.1], gsbitops.c [1.3.4.1.2.1],
-gsbitops.h [1.2.6.1.2.1], gsbittab.c [1.2.6.1.2.1],
-gsbittab.h [1.2.6.1.2.1], gsccode.h [1.4.6.1.2.1], gsccolor.h [1.2.6.1.2.1],
-gscdef.c [1.15.2.4.2.1], gscdefs.h [1.2.6.1.2.1], gscdevn.c [1.6.2.1.2.1],
-gscdevn.h [1.3.6.1.2.1], gschar.c [1.3.6.1.2.1], gschar.h [1.3.6.1.2.1],
-gschar0.c [1.3.4.3.2.1], gscie.c [1.4.2.1.2.1], gscie.h [1.3.2.1.2.1],
-gsciemap.c [1.6.2.1.2.1], gscindex.h [1.2.6.1.2.1],
-gsclipsr.c [1.2.6.1.2.1], gsclipsr.h [1.2.6.1.2.1], gscolor.c [1.5.2.1.2.1],
-gscolor.h [1.3.6.1.2.1], gscolor1.c [1.4.2.1.2.1], gscolor1.h [1.2.6.1.2.1],
-gscolor2.c [1.6.6.1.2.1], gscolor2.h [1.3.6.1.2.1],
-gscolor3.c [1.4.6.1.2.1], gscolor3.h [1.2.6.1.2.1], gscompt.h [1.2.6.1.2.1],
-gscoord.c [1.5.6.1.2.1], gscoord.h [1.2.6.1.2.1], gscparam.c [1.7.2.1.2.1],
-gscpixel.c [1.3.6.1.2.1], gscpixel.h [1.2.6.1.2.1], gscpm.h [1.2.6.1.2.1],
-gscrd.c [1.2.6.1.2.1], gscrd.h [1.2.6.1.2.1], gscrdp.c [1.2.6.1.2.1],
-gscrdp.h [1.2.6.1.2.1], gscrypt1.c [1.2.6.1.2.1], gscrypt1.h [1.2.6.1.2.1],
-gscscie.c [1.4.2.1.2.1], gscsel.h [1.2.6.1.2.1], gscsepr.c [1.12.2.2.2.1],
-gscsepr.h [1.4.6.1.2.1], gscspace.c [1.4.6.1.2.1], gscspace.h [1.8.2.1.2.1],
-gscssub.c [1.3.2.1.2.1], gscssub.h [1.2.6.1.2.1], gsdcolor.h [1.3.6.1.2.1],
-gsdevice.c [1.11.2.1.2.1], gsdevice.h [1.3.6.1.2.1],
-gsdevmem.c [1.2.6.1.2.1], gsdfilt.c [1.3.2.1.2.1], gsdfilt.h [1.2.2.2.2.1],
-gsdparam.c [1.4.6.2.2.1], gsdpnext.h [1.2.6.1.2.1], gsdps.c [1.2.6.1.2.1],
-gsdps.h [1.2.6.1.2.1], gsdps1.c [1.2.6.1.2.1], gsdsrc.c [1.2.6.1.2.1],
-gsdsrc.h [1.3.6.1.2.1], gserror.h [1.2.6.1.2.1], gserrors.h [1.2.6.2.2.1],
-gsexit.h [1.4.2.1.2.1], gsfcid.c [1.5.4.1.2.1], gsfcmap.c [1.14.2.2.2.1],
-gsfcmap.h [1.4.6.1.2.1], gsfemu.c [1.2.6.1.2.1], gsflip.c [1.2.6.1.2.1],
-gsflip.h [1.2.6.1.2.1], gsfname.c [1.2.6.1.2.1], gsfname.h [1.2.6.1.2.1],
-gsfont.c [1.4.4.1.2.1], gsfont.h [1.2.6.1.2.1], gsfont0.c [1.2.6.1.2.1],
-gsfunc.c [1.4.6.1.2.1], gsfunc.h [1.4.6.1.2.1], gsfunc0.c [1.5.4.1.2.1],
-gsfunc0.h [1.2.6.1.2.1], gsfunc3.c [1.4.6.1.2.1], gsfunc3.h [1.2.6.1.2.1],
-gsfunc4.c [1.7.2.1.2.1], gsfunc4.h [1.2.6.1.2.1], gsgc.h [1.3.2.1.2.1],
-gshsb.c [1.2.6.1.2.1], gshsb.h [1.2.6.1.2.1], gsht.c [1.2.6.1.2.1],
-gsht.h [1.2.6.1.2.1], gsht1.c [1.3.2.1.2.1], gsht1.h [1.2.6.1.2.1],
-gshtscr.c [1.6.2.1.2.1], gshtx.c [1.2.6.1.2.1], gshtx.h [1.2.6.1.2.1],
-gsicc.c [1.5.2.1.2.1], gsicc.h [1.3.2.1.2.1], gsimage.c [1.4.2.1.2.1],
-gsimage.h [1.2.6.1.2.1], gsimpath.c [1.2.6.1.2.1], gsinit.c [1.3.2.1.2.1],
-gsio.h [1.5.2.1.2.1], gsiodev.c [1.5.2.1.2.1], gsiodevs.c [1.2.6.1.2.1],
-gsipar3x.h [1.3.6.1.2.1], gsiparam.h [1.4.6.1.2.1],
-gsiparm2.h [1.2.6.1.2.1], gsiparm3.h [1.4.6.1.2.1],
-gsiparm4.h [1.2.6.1.2.1], gsistate.c [1.4.6.1.2.1], gsjconf.h [1.2.6.1.2.1],
-gslib.c [1.5.2.1.2.1], gslib.h [1.2.6.1.2.1], gsline.c [1.2.6.1.2.1]:
-2003/01/17 00:49:00 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (gsline.h [1.2.6.1.2.1], gslparam.h [1.2.6.1.2.1],
-gsmalloc.c [1.3.6.1.2.1], gsmalloc.h [1.2.6.1.2.1],
-gsmatrix.c [1.2.6.1.2.1], gsmatrix.h [1.2.6.1.2.1],
-gsmdebug.h [1.3.2.1.2.1], gsmemlok.c [1.3.6.1.2.1],
-gsmemlok.h [1.2.6.1.2.1], gsmemory.c [1.4.2.1.2.1],
-gsmemory.h [1.3.2.1.2.1], gsmemraw.h [1.2.6.1.2.1],
-gsmemret.c [1.2.6.1.2.1], gsmemret.h [1.2.6.1.2.1], gsmisc.c [1.12.2.1.2.1],
-gsnogc.c [1.7.2.1.2.1], gsnogc.h [1.2.6.1.2.1], gsnorop.c [1.2.6.1.2.1],
-gsnotify.c [1.2.6.1.2.1], gsnotify.h [1.2.6.1.2.1], gspaint.c [1.2.6.1.2.1],
-gspaint.h [1.2.6.1.2.1], gsparam.c [1.4.6.1.2.1], gsparam.h [1.8.4.1.2.1],
-gsparam2.c [1.2.6.1.2.1], gsparams.c [1.2.6.1.2.1],
-gsparams.h [1.2.6.1.2.1], gsparamx.c [1.4.2.1.2.1],
-gsparamx.h [1.3.6.1.2.1], gspath.c [1.2.6.1.2.1], gspath.h [1.2.6.1.2.1],
-gspath1.c [1.3.4.1.2.1], gspath2.h [1.2.6.1.2.1], gspcolor.c [1.4.6.1.2.1],
-gspcolor.h [1.2.6.1.2.1], gspenum.h [1.2.6.1.2.1], gsptype1.c [1.3.2.1.2.1],
-gsptype1.h [1.2.6.1.2.1], gsptype2.c [1.5.2.1.2.1],
-gsptype2.h [1.4.2.1.2.1], gsrect.h [1.2.6.1.2.1], gsrefct.h [1.2.6.1.2.1],
-gsrop.c [1.2.6.1.2.1], gsrop.h [1.2.6.1.2.1], gsropc.c [1.2.6.1.2.1],
-gsropc.h [1.2.6.1.2.1], gsropt.h [1.4.2.1.2.1], gsroptab.c [1.2.6.1.2.1],
-gsshade.c [1.4.2.1.2.1], gsshade.h [1.3.6.1.2.1], gsstate.c [1.11.2.1.2.1],
-gsstate.h [1.2.6.1.2.1], gsstruct.h [1.8.2.1.2.1], gsstype.h [1.2.6.1.2.1],
-gstext.c [1.6.2.2.2.1], gstext.h [1.3.6.1.2.1], gstparam.h [1.7.6.1.2.1],
-gstrans.c [1.13.2.1.2.1], gstrans.h [1.6.6.1.2.1], gstrap.c [1.3.6.1.2.1],
-gstrap.h [1.3.6.1.2.1], gstype1.c [1.6.4.1.2.1], gstype1.h [1.2.6.1.2.1],
-gstype2.c [1.10.2.3.2.1], gstype42.c [1.12.2.2.2.1],
-gstypes.h [1.3.2.1.2.1], gsuid.h [1.2.6.1.2.1], gsutil.c [1.4.6.2.2.1],
-gsutil.h [1.3.6.2.2.1], gsxfont.h [1.2.6.1.2.1], gx.h [1.2.6.1.2.1],
-gxacpath.c [1.3.6.1.2.1], gxalloc.h [1.6.2.1.2.1], gxalpha.h [1.2.6.1.2.1],
-gxarith.h [1.2.6.1.2.1], gxband.h [1.2.6.1.2.1], gxbcache.c [1.2.6.1.2.1],
-gxbcache.h [1.2.6.1.2.1], gxbitfmt.h [1.2.6.1.2.1],
-gxbitmap.h [1.2.6.1.2.1], gxbitops.h [1.2.6.1.2.1], gxblend.c [1.2.2.1.2.1],
-gxblend.h [1.1.2.1.2.1], gxccache.c [1.5.2.1.2.1], gxccman.c [1.2.6.1.2.1],
-gxcdevn.h [1.2.6.1.2.1], gxchar.c [1.5.2.5.2.1], gxchar.h [1.2.6.2.2.1],
-gxchrout.c [1.2.6.1.2.1], gxchrout.h [1.2.6.1.2.1], gxcht.c [1.3.2.1.2.1],
-gxcid.h [1.3.6.1.2.1], gxcie.h [1.3.2.1.2.1], gxcindex.h [1.2.6.1.2.1],
-gxclbits.c [1.4.4.1.2.1], gxcldev.h [1.4.4.1.2.1], gxclfile.c [1.3.2.1.2.1],
-gxclimag.c [1.3.2.1.2.1], gxclio.h [1.2.6.1.2.1], gxclip.c [1.4.2.1.2.1],
-gxclip.h [1.2.6.1.2.1], gxclip2.c [1.3.6.1.2.1], gxclip2.h [1.2.6.1.2.1],
-gxclipm.c [1.3.6.1.2.1], gxclipm.h [1.2.6.1.2.1], gxclipsr.h [1.2.6.1.2.1],
-gxclist.c [1.3.6.1.2.1], gxclist.h [1.2.6.1.2.1], gxcllzw.c [1.2.6.1.2.1],
-gxclmem.c [1.2.6.1.2.1], gxclmem.h [1.2.6.1.2.1], gxclpage.c [1.2.6.1.2.1],
-gxclpage.h [1.2.6.1.2.1], gxclpath.c [1.9.2.1.2.1],
-gxclpath.h [1.6.6.1.2.1], gxclrast.c [1.9.2.1.2.1],
-gxclread.c [1.3.4.1.2.1], gxclrect.c [1.2.6.1.2.1],
-gxclutil.c [1.5.2.1.2.1], gxclzlib.c [1.2.6.1.2.1], gxcmap.c [1.3.6.1.2.1],
-gxcmap.h [1.2.6.1.2.1], gxcolor2.h [1.4.6.1.2.1], gxcomp.h [1.2.6.1.2.1],
-gxcoord.h [1.2.6.1.2.1], gxcpath.c [1.3.6.1.2.1], gxcpath.h [1.2.6.1.2.1],
-gxcspace.h [1.4.6.1.2.1], gxctable.c [1.3.6.1.2.1],
-gxctable.h [1.2.6.1.2.1], gxcvalue.h [1.2.6.1.2.1],
-gxdcconv.c [1.3.6.1.2.1], gxdcconv.h [1.2.6.1.2.1],
-gxdcolor.c [1.3.6.1.2.1], gxdcolor.h [1.3.6.1.2.1], gxdda.h [1.2.6.1.2.1],
-gxdevbuf.h [1.2.6.1.2.1], gxdevcli.h [1.5.2.2.2.1],
-gxdevice.h [1.4.6.3.2.1], gxdevmem.h [1.2.6.1.2.1],
-gxdevrop.h [1.2.6.1.2.1], gxdht.h [1.4.6.1.2.1], gxdhtres.h [1.2.6.1.2.1],
-gxdither.h [1.2.6.1.2.1], gxfarith.h [1.3.6.1.2.1],
-gxfcache.h [1.2.6.1.2.1], gxfcid.h [1.6.6.1.2.1], gxfcmap.h [1.8.2.1.2.1],
-gxfill.c [1.8.2.1.2.1], gxfixed.h [1.3.4.1.2.1], gxfmap.h [1.3.6.1.2.1],
-gxfont.h [1.3.4.1.2.1], gxfont0.h [1.3.6.1.2.1], gxfont1.h [1.5.4.1.2.1],
-gxfont42.h [1.4.6.1.2.1], gxfrac.h [1.3.4.1.2.1], gxftype.h [1.2.6.1.2.1],
-gxfunc.h [1.3.6.1.2.1], gxgetbit.h [1.2.6.1.2.1], gxhint1.c [1.2.6.1.2.1],
-gxhint2.c [1.2.6.1.2.1], gxhint3.c [1.3.2.1.2.1], gxht.c [1.2.6.2.2.1],
-gxht.h [1.2.6.1.2.1], gxhtbit.c [1.3.6.1.2.1], gxhttile.h [1.2.6.1.2.1],
-gxhttype.h [1.2.6.1.2.1], gxi12bit.c [1.2.6.1.2.1],
-gxiclass.h [1.2.6.1.2.1], gxicolor.c [1.3.2.1.2.1], gxidata.c [1.4.6.1.2.1],
-gxifast.c [1.4.2.1.2.1], gximag3x.c [1.7.6.1.2.1], gximag3x.h [1.3.6.1.2.1],
-gximage.c [1.2.6.1.2.1], gximage.h [1.2.6.1.2.1], gximage1.c [1.5.6.1.2.1],
-gximage2.c [1.2.6.1.2.1], gximage3.c [1.6.6.1.2.1],
-gximage3.h [1.4.6.1.2.1], gximage4.c [1.3.6.1.2.1], gximono.c [1.2.6.1.2.1],
-gxino12b.c [1.2.6.1.2.1], gxiodev.h [1.2.6.1.2.1], gxiparam.h [1.2.6.1.2.1],
-gxipixel.c [1.2.6.1.2.1], gxiscale.c [1.2.6.2.2.1],
-gxistate.h [1.6.6.1.2.1], gxline.h [1.2.6.1.2.1], gxlum.h [1.2.6.1.2.1],
-gxmatrix.h [1.4.6.1.2.1], gxmclip.c [1.2.6.1.2.1], gxmclip.h [1.2.6.1.2.1],
-gxobj.h [1.2.6.1.2.1], gxop1.h [1.2.6.1.2.1], gxp1fill.c [1.2.6.1.2.1],
-gxp1impl.h [1.2.6.1.2.1], gxpageq.c [1.2.6.1.2.1], gxpageq.h [1.2.6.1.2.1],
-gxpaint.c [1.2.6.1.2.1], gxpaint.h [1.2.6.1.2.1], gxpath.c [1.2.6.1.2.1],
-gxpath.h [1.2.6.1.2.1], gxpath2.c [1.2.6.1.2.1], gxpcache.h [1.2.6.1.2.1],
-gxpcmap.c [1.3.6.1.2.1], gxpcolor.h [1.2.6.1.2.1], gxpcopy.c [1.3.6.1.2.1],
-gxpdash.c [1.2.6.1.2.1], gxpflat.c [1.2.6.1.2.1], gxropc.h [1.2.6.1.2.1],
-gxrplane.h [1.2.6.1.2.1], gxsample.c [1.2.6.1.2.1],
-gxsample.h [1.2.6.1.2.1], gxshade.c [1.6.2.1.2.1], gxshade.h [1.4.2.1.2.1],
-gxshade1.c [1.9.2.1.2.1], gxshade4.c [1.6.2.1.2.1],
-gxshade4.h [1.2.6.1.2.1], gxshade6.c [1.3.6.1.2.1], gxstate.h [1.2.6.1.2.1],
-gxstdio.h [1.2.6.1.2.1], gxstroke.c [1.2.6.2.2.1], gxsync.c [1.2.6.1.2.1],
-gxsync.h [1.2.6.1.2.1], gxtext.h [1.7.2.1.2.1], gxtmap.h [1.2.6.1.2.1],
-gxttf.h [1.2.6.1.2.1], gxtype1.c [1.8.4.1.2.1], gxtype1.h [1.5.4.1.2.1],
-gxxfont.h [1.2.6.1.2.1], gzacpath.h [1.2.6.1.2.1], gzcpath.h [1.2.6.1.2.1],
-gzht.h [1.4.4.1.2.1], gzline.h [1.2.6.1.2.1], gzpath.h [1.3.6.1.2.1],
-gzstate.h [1.5.2.1.2.1], jerror_.h [1.2.6.2.2.1], malloc_.h [1.2.6.1.2.1],
-math_.h [1.2.6.1.2.1], md5.c [1.2.8.1], md5.h [1.1.8.1],
-memory_.h [1.2.6.1.2.1], pipe_.h [1.2.6.2.2.1], time_.h [1.3.2.2.2.1],
-unistd_.h [1.4.2.1.2.1], vmsmath.h [1.2.6.1.2.1], windows_.h [1.2.6.1.2.1]:
-2003/01/17 00:49:03 giles)
-
-Update release date for final 7.06 release. (gscdef.c [1.15.2.4.2.2]:
-2003/02/09 16:20:05 giles)
-
-Add pngalpha device that uses RGBA, with the alpha channel providing pixel
-coverage. Used for generating PNG images with a transparent background.
-(gdevprn.h [1.6.6.2.2.2]: 2003/03/11 11:59:10 ghostgum)
-
-</pre><h2><a name="7.06-Other"></a>Other</h2><pre>
-
-Add a configure option to enable COMPILE_INITS. After a patch from Michael
-Sweet. (Makefile.in [1.1.4.8], configure.ac [1.4.4.10]: 2002/05/03 03:40:11
-giles)
-
-Add a configure option for setting the name of the ghostscript executable.
-From a patch by Michael Sweet. (Makefile.in [1.1.4.9],
-configure.ac [1.4.4.11]: 2002/05/03 07:26:21 giles)
-
-Add a .cvsignore. (ijs/.cvsignore [1.1.2.1]: 2002/09/29 17:53:27 giles)
-
-Remove remaining elements of support for K&amp;R (pre-ansi) C. We no longer
-support building ghostscript tt way, but the remaining dead code causes
-confusion for some users. Closes Sourceforge bug #618048.
-(Makefile.in [1.1.4.10]: 2002/10/10 00:24:01 giles)
-
-Set USE_ASM to zero explicitly. (Makefile.in [1.1.4.11]: 2002/10/10 12:47:49
-giles)
-
-Backport debug and unitialized variable fixes from HEAD. After a patch from
-Alexei A. Podtelezhnikov. (gdevp14.c [1.4.2.2], gsalloc.c [1.11.2.2],
-gxht.c [1.2.6.2]: 2002/12/01 15:10:20 giles)
-
-Backport additional cast and initialization fixes. (gdevp14.c [1.4.2.3]:
-2002/12/01 18:02:41 giles)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(time_.h [1.3.2.2]: 2002/12/01 23:29:37 giles)
-
-Backport MacOS build updates for Metrowerks CW8 from HEAD.
-(macsystypes.h [1.1.4.3]: 2002/12/01 23:29:37 giles)
-
-Add working 'distclean' and 'maintainer-clean' targets to the autoconf
-makefile. Backport from HEAD. (Makefile.in [1.1.4.12]: 2002/12/02 00:10:24
-giles)
-
-Update release date for second candidate. Also adds a dummy 'check' target
-to the autoconf makefile for standards compliance. (Makefile.in [1.1.4.13]:
-2002/12/02 01:55:46 giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (Makefile.in [1.1.4.13.2.1], gp_mac.h [1.1.4.2.2.1],
-gp_mswin.h [1.4.2.1.2.1], gsdll.h [1.3.2.2.2.1], gsdllos2.h [1.2.6.1.2.1],
-gsdllwin.h [1.3.2.1.2.1], gsjmorec.h [1.3.4.1.2.1]: 2003/01/17 00:49:00
-giles)
-
-Apply standard GNU license banner at the request of RMS. Patch from Brett
-Smith. (gspmdrv.h [1.2.6.1.2.1], iutilasm.asm [1.2.6.1.2.1],
-macsystypes.h [1.1.4.3.2.1], vms_x_fix.h [1.1.2.2.2.1]: 2003/01/17 00:49:03
-giles)
-
-Define the RM macro for the benifit of the 'clean' targets in the autoconf
-build. (Makefile.in [1.1.4.13.2.2]: 2003/02/09 17:20:51 giles)
-
-<hr>
-
-<h1><a name="Version7.05"></a>Version 7.05 (2002-04-22)</h1>
-
-<p>This is the first release of the stable 7.0x series under the GNU
-GPL, following one year after the release of 7.00. The license change in
-the major reason for this release, and we hope the community of
-Free Software users will enjoy the much improved features of the new
-stable branch.
-
-<p>Another major change over the 7.04 release is a improved asian
-language support from the gs-cjk team. This is a new version of the
-work released with 6.53.
-
-<p>And of course there are the usual bug fixes and minor improvements.
-
-<p>At the time of release, the following bugs were open against all
-ghostscript versions:
-
-219798,
-405342,
-406979,
-407342,
-414947,
-414985,
-415142,
-418241,
-423838,
-427193,
-427347,
-428891,
-428973,
-432040,
-434277,
-437285,
-446344,
-446672,
-448199,
-453969,
-458261,
-458500,
-458775,
-458780,
-459647,
-462221,
-465720,
-465936,
-468762,
-474745,
-475147,
-477644,
-482038,
-483629,
-484752,
-484753,
-485510,
-487953,
-493348,
-495319,
-498595,
-503794,
-505429,
-506375,
-508081,
-508675,
-509646,
-510808,
-511232,
-513905,
-514616,
-514616,
-515475,
-516653,
-517349,
-520686,
-521354,
-521664,
-521916,
-522486,
-524292,
-525508,
-526099,
-526491,
-528647,
-529103,
-529578,
-530011,
-530588,
-533467,
-534637,
-535366,
-535752,
-535836,
-535997,
-536877,
-538033,
-538042,
-538055,
-538267,
-538311,
-538428,
-539239,
-539327,
-539359,
-542535,
-542625,
-542664,
-542786,
-542848,
-543185,
-544247,
-544365,
-544774,
-544996,
-545003,
-545177,
-545478,
-546823,
-547102,
-547111.
-
-<h3><a name="7.05_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version. Users of the 6.5x versions of GNU
-Ghostscript will want to check the History for a complete list of changes since that version.
-Authors of drivers with potential security implications are also encouraged to review
-the security changes introduced with 6.53/7.04.
-
-<pre>
-
-
-
-<h2><a name="7.05-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - corrects a typo in the new Id: line (doc/index.html [1.2.4.2]:
-2002/04/10 09:45:40 giles)
- - the url for the guide to international paper sizes has changed.
-Thanks to Nelson Beebe for finding th e update. (doc/Use.htm [1.33.2.7]:
-2002/04/14 01:10:01 giles)
- - Fix typo in cvs2hist invocation example
-(doc/Release.htm [1.40.2.12]: 2002/04/17 01:42:58 giles)
-
-Documents the work-around of using '#' instead of '=' to separate command
-line options from their arguments. The was previously listed only as a quirk
-of the Wacom build on MS-DOS, but is also needed on win32 because the
-command shell treats '=' as whitespace in passing arguments to batch files
-(like ps2pdf.bat). Closes SourceForge bug #483066. Also documents that
-MS-DOS is no longer a supported operating system. (doc/Use.htm [1.33.2.4]:
-2002/02/01 19:43:02 giles)
-
-Improves branch handling in cvs2hist, raph's patch from HEAD. Also documents
-the new options. (doc/Release.htm [1.40.2.4]: 2002/02/06 23:31:10 giles)
-
-Removes mention of SourceForge Bug #223005, which was closed before the 7.00
-release. (doc/Issues.htm [1.15.2.3]: 2002/02/21 20:33:08 giles)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(doc/API.htm [1.11.2.4],
-doc/Bug-form.htm [1.23.2.3], doc/Bug-info.htm [1.20.2.3],
-doc/C-style.htm [1.21.2.3], doc/Commprod.htm [1.15.2.3],
-doc/Current.htm [1.13.2.3], doc/DLL.htm [1.15.2.3],
-doc/Develop.htm [1.47.2.4], doc/Devices.htm [1.34.2.5],
-doc/Drivers.htm [1.21.2.3], doc/Fonts.htm [1.22.2.3],
-doc/Helpers.htm [1.17.2.3], doc/History1.htm [1.13.2.3],
-doc/History2.htm [1.13.2.3], doc/History3.htm [1.13.2.3],
-doc/History4.htm [1.13.2.3], doc/History5.htm [1.15.2.3],
-doc/History6.htm [1.30.2.3], doc/History7.htm [1.5.2.4],
-doc/Htmstyle.htm [1.18.2.3], doc/Humor.htm [1.3.2.1],
-doc/Install.htm [1.26.2.3], doc/Issues.htm [1.15.2.4],
-doc/Language.htm [1.34.2.5], doc/Lib.htm [1.14.2.3],
-doc/Maintain.htm [1.23.2.3], doc/Make.htm [1.36.2.6],
-doc/New-user.htm [1.30.2.3], doc/News.htm [1.90.2.5],
-doc/Projects.htm [1.33.2.3], doc/Ps-style.htm [1.13.2.3],
-doc/Ps2epsi.htm [1.15.2.3], doc/Ps2pdf.htm [1.32.2.3],
-doc/Psfiles.htm [1.22.2.3], doc/Readme.htm [1.31.2.3],
-doc/Release.htm [1.40.2.5], doc/Source.htm [1.13.2.3],
-doc/Tester.htm [1.14.2.3], doc/Unix-lpr.htm [1.13.2.3],
-doc/Use.htm [1.33.2.5], doc/Xfonts.htm [1.13.2.3]: 2002/02/22 19:45:53 ray)
-
-Removes auto-generated plain text versions of html documentation from cvs
-and makes their creation an explicit part of the release process.
-(doc/Release.htm [1.40.2.6]: 2002/02/25 21:43:20 giles)
-
-Add example code to doc/API.htm showing how to call the Ghostscript DLL as a
-PostScript to PDF convertor. (doc/API.htm [1.11.2.5]: 2002/03/12 07:15:16
-ghostgum)
-
-Update msvc32.mak and documentation to support compilation with Microsoft
-Visual Studio .NET. This requires MSVC_VERSION=7. (doc/Make.htm [1.36.2.7]:
-2002/03/12 07:21:30 ghostgum)
-
-Documents how to build a Windows self-extracting archive for a ghostscript
-distribution (doc/Release.htm [1.40.2.7]: 2002/03/12 07:25:12 ghostgum)
-
-gs-cjk project : add new documents CJK.htm and CJKTTCID.htm, add references
-to Fonts.htm, Readme.htm, Use.htm add targets to unixinst.mak. Fix by Suzuki
-Toshiya and Taiji Yamada. (doc/Fonts.htm [1.22.2.4],
-doc/Readme.htm [1.31.2.4], doc/Use.htm [1.33.2.6]: 2002/04/02 14:26:38
-mpsuzuki)
-
-gs-cjk project : add CIDFnmap samples add references to Develop.htm add
-targets to unixinst.mak (doc/Develop.htm [1.47.2.5]: 2002/04/02 14:47:42
-mpsuzuki)
-
-add a missing Id: line (doc/index.html [1.2.4.1]: 2002/04/10 09:19:35 giles)
-
-add new files to the Developer documentation (doc/Develop.htm [1.47.2.6]:
-2002/04/10 09:44:24 giles)
-
-mark this as a GNU version and bump the release number
-(doc/News.htm [1.90.2.6]: 2002/04/15 05:47:56 giles)
-
-Update version and date for the 7.05rc1. (doc/API.htm [1.11.2.6],
-doc/Bug-form.htm [1.23.2.4], doc/Bug-info.htm [1.20.2.4],
-doc/C-style.htm [1.21.2.4], doc/Commprod.htm [1.15.2.4],
-doc/Current.htm [1.13.2.4], doc/DLL.htm [1.15.2.4],
-doc/Develop.htm [1.47.2.7], doc/Devices.htm [1.34.2.6],
-doc/Drivers.htm [1.21.2.4], doc/Fonts.htm [1.22.2.5],
-doc/Helpers.htm [1.17.2.4], doc/History1.htm [1.13.2.4],
-doc/History2.htm [1.13.2.4], doc/History3.htm [1.13.2.4],
-doc/History4.htm [1.13.2.4], doc/History5.htm [1.15.2.4],
-doc/History6.htm [1.30.2.4], doc/History7.htm [1.5.2.5],
-doc/Htmstyle.htm [1.18.2.4], doc/Install.htm [1.26.2.4],
-doc/Issues.htm [1.15.2.5], doc/Language.htm [1.34.2.6],
-doc/Lib.htm [1.14.2.4], doc/Maintain.htm [1.23.2.4],
-doc/Make.htm [1.36.2.8], doc/New-user.htm [1.30.2.4],
-doc/News.htm [1.90.2.7], doc/Projects.htm [1.33.2.4],
-doc/Ps-style.htm [1.13.2.4], doc/Ps2epsi.htm [1.15.2.4],
-doc/Ps2pdf.htm [1.32.2.4], doc/Psfiles.htm [1.22.2.4],
-doc/Readme.htm [1.31.2.5], doc/Release.htm [1.40.2.8],
-doc/Source.htm [1.13.2.4], doc/Tester.htm [1.14.2.4],
-doc/Unix-lpr.htm [1.13.2.4], doc/Use.htm [1.33.2.8],
-doc/Xfonts.htm [1.13.2.4], doc/gs-vms.hlp [1.12.2.3],
-man/dvipdf.1 [1.10.2.3], man/font2c.1 [1.10.2.3], man/gs.1 [1.10.2.3],
-man/gslp.1 [1.10.2.3], man/gsnd.1 [1.10.2.3], man/pdf2dsc.1 [1.10.2.3],
-man/pdf2ps.1 [1.12.2.3], man/pdfopt.1 [1.10.2.3], man/pf2afm.1 [1.10.2.3],
-man/pfbtopfa.1 [1.11.2.3], man/printafm.1 [1.10.2.3],
-man/ps2ascii.1 [1.10.2.3], man/ps2epsi.1 [1.10.2.3],
-man/ps2pdf.1 [1.14.2.3], man/ps2pdfwr.1 [1.13.2.3], man/ps2ps.1 [1.17.2.3],
-man/wftopfa.1 [1.10.2.3]: 2002/04/15 19:20:09 giles)
-
-Document the -dBATCH option in the manpage. Strengthen the wording for
--dSAFER and improve the ordering of the option descriptions.
-(man/gs.1 [1.10.2.4]: 2002/04/15 19:54:06 giles)
-
-Update the release documentation to better reflect current practice.
-(doc/Release.htm [1.40.2.9]: 2002/04/15 21:40:02 giles)
-
-Documentation updates for a revised 7.05rc1. (doc/API.htm [1.11.2.7],
-doc/Bug-form.htm [1.23.2.5], doc/Bug-info.htm [1.20.2.5],
-doc/C-style.htm [1.21.2.5], doc/Commprod.htm [1.15.2.5],
-doc/Current.htm [1.13.2.5], doc/DLL.htm [1.15.2.5],
-doc/Develop.htm [1.47.2.8], doc/Devices.htm [1.34.2.7],
-doc/Drivers.htm [1.21.2.5], doc/Fonts.htm [1.22.2.6],
-doc/Helpers.htm [1.17.2.5], doc/History1.htm [1.13.2.5],
-doc/History2.htm [1.13.2.5], doc/History3.htm [1.13.2.5],
-doc/History4.htm [1.13.2.5], doc/History5.htm [1.15.2.5],
-doc/History6.htm [1.30.2.5], doc/History7.htm [1.5.2.6],
-doc/Htmstyle.htm [1.18.2.5], doc/Install.htm [1.26.2.5],
-doc/Issues.htm [1.15.2.6], doc/Language.htm [1.34.2.7],
-doc/Lib.htm [1.14.2.5], doc/Maintain.htm [1.23.2.5],
-doc/Make.htm [1.36.2.9], doc/New-user.htm [1.30.2.5],
-doc/News.htm [1.90.2.8], doc/Projects.htm [1.33.2.5],
-doc/Ps-style.htm [1.13.2.5], doc/Ps2epsi.htm [1.15.2.5],
-doc/Ps2pdf.htm [1.32.2.5], doc/Psfiles.htm [1.22.2.5],
-doc/Readme.htm [1.31.2.6], doc/Release.htm [1.40.2.10],
-doc/Source.htm [1.13.2.5], doc/Tester.htm [1.14.2.5],
-doc/Unix-lpr.htm [1.13.2.5], doc/Use.htm [1.33.2.9],
-doc/Xfonts.htm [1.13.2.5], doc/gs-vms.hlp [1.12.2.4]: 2002/04/17 01:08:26
-giles)
-
-Documentation updates for a revised 7.05rc1. (man/dvipdf.1 [1.10.2.4],
-man/font2c.1 [1.10.2.4], man/gs.1 [1.10.2.5], man/gslp.1 [1.10.2.4],
-man/gsnd.1 [1.10.2.4], man/pdf2dsc.1 [1.10.2.4], man/pdf2ps.1 [1.12.2.4],
-man/pdfopt.1 [1.10.2.4], man/pf2afm.1 [1.10.2.4], man/pfbtopfa.1 [1.11.2.4],
-man/printafm.1 [1.10.2.4], man/ps2ascii.1 [1.10.2.4],
-man/ps2epsi.1 [1.10.2.4], man/ps2pdf.1 [1.14.2.4],
-man/ps2pdfwr.1 [1.13.2.4], man/ps2ps.1 [1.17.2.4], man/wftopfa.1 [1.10.2.4]:
-2002/04/17 01:08:37 giles)
-
-Update release date for revised 7.05rc1. (doc/API.htm [1.11.2.8],
-doc/Bug-form.htm [1.23.2.6], doc/Bug-info.htm [1.20.2.6],
-doc/C-style.htm [1.21.2.6], doc/Commprod.htm [1.15.2.6],
-doc/Current.htm [1.13.2.6], doc/DLL.htm [1.15.2.6],
-doc/Develop.htm [1.47.2.9], doc/Devices.htm [1.34.2.8],
-doc/Drivers.htm [1.21.2.6], doc/Fonts.htm [1.22.2.7],
-doc/Helpers.htm [1.17.2.6], doc/History1.htm [1.13.2.6],
-doc/History2.htm [1.13.2.6], doc/History3.htm [1.13.2.6],
-doc/History4.htm [1.13.2.6], doc/History5.htm [1.15.2.6],
-doc/History6.htm [1.30.2.6], doc/History7.htm [1.5.2.7],
-doc/Htmstyle.htm [1.18.2.6], doc/Install.htm [1.26.2.6],
-doc/Issues.htm [1.15.2.7], doc/Language.htm [1.34.2.8],
-doc/Lib.htm [1.14.2.6], doc/Maintain.htm [1.23.2.6],
-doc/Make.htm [1.36.2.10], doc/New-user.htm [1.30.2.6],
-doc/News.htm [1.90.2.9], doc/Projects.htm [1.33.2.6],
-doc/Ps-style.htm [1.13.2.6], doc/Ps2epsi.htm [1.15.2.6],
-doc/Ps2pdf.htm [1.32.2.6], doc/Psfiles.htm [1.22.2.6],
-doc/Readme.htm [1.31.2.7], doc/Release.htm [1.40.2.11],
-doc/Source.htm [1.13.2.6], doc/Tester.htm [1.14.2.6],
-doc/Unix-lpr.htm [1.13.2.6], doc/Use.htm [1.33.2.10],
-doc/Xfonts.htm [1.13.2.6], doc/gs-vms.hlp [1.12.2.5]: 2002/04/17 01:13:15
-giles)
-
-Update release date for revised 7.05rc1. (man/dvipdf.1 [1.10.2.5],
-man/font2c.1 [1.10.2.5], man/gs.1 [1.10.2.6], man/gslp.1 [1.10.2.5],
-man/gsnd.1 [1.10.2.5], man/pdf2dsc.1 [1.10.2.5], man/pdf2ps.1 [1.12.2.5],
-man/pdfopt.1 [1.10.2.5], man/pf2afm.1 [1.10.2.5], man/pfbtopfa.1 [1.11.2.5],
-man/printafm.1 [1.10.2.5], man/ps2ascii.1 [1.10.2.5],
-man/ps2epsi.1 [1.10.2.5], man/ps2pdf.1 [1.14.2.5],
-man/ps2pdfwr.1 [1.13.2.5], man/ps2ps.1 [1.17.2.5], man/wftopfa.1 [1.10.2.5]:
-2002/04/17 01:13:21 giles)
-
-update changelog for 7.05rc1 (doc/Changes.htm [1.28.2.4],
-doc/History7.htm [1.5.2.8], doc/News.htm [1.90.2.10]: 2002/04/17 01:43:27
-giles)
-
-Minor clean-up for GNU coding standards. (doc/Readme.htm [1.31.2.8]: 2002/04/17
-01:52:38 giles)
-
-Remove the chess.ps example file due to license ambiguity.
-(doc/Psfiles.htm [1.22.2.7]: 2002/04/18 06:01:27 giles)
-
-update the language describing the gnu portion of the license options to
-reflect current practice. (doc/Commprod.htm [1.15.2.7]: 2002/04/19 01:45:01
-giles)
-
-Add the 'stp' driver from the gimp-print project, and compile it in by
-default from the autoconf build if libgimprint is found.
-(doc/Devices.htm [1.34.2.9]: 2002/04/19 22:23:09 giles)
-
-bump release date for 7.05rc2 (doc/API.htm [1.11.2.9],
-doc/Bug-form.htm [1.23.2.7], doc/Bug-info.htm [1.20.2.7],
-doc/C-style.htm [1.21.2.7], doc/Commprod.htm [1.15.2.8],
-doc/Current.htm [1.13.2.7], doc/DLL.htm [1.15.2.7],
-doc/Develop.htm [1.47.2.10], doc/Devices.htm [1.34.2.10],
-doc/Drivers.htm [1.21.2.7], doc/Fonts.htm [1.22.2.8],
-doc/Helpers.htm [1.17.2.7], doc/History1.htm [1.13.2.7],
-doc/History2.htm [1.13.2.7], doc/History3.htm [1.13.2.7],
-doc/History4.htm [1.13.2.7], doc/History5.htm [1.15.2.7],
-doc/History6.htm [1.30.2.7], doc/History7.htm [1.5.2.9],
-doc/Htmstyle.htm [1.18.2.7], doc/Install.htm [1.26.2.7],
-doc/Issues.htm [1.15.2.8], doc/Language.htm [1.34.2.9],
-doc/Lib.htm [1.14.2.7], doc/Maintain.htm [1.23.2.7],
-doc/Make.htm [1.36.2.11], doc/New-user.htm [1.30.2.7],
-doc/News.htm [1.90.2.11], doc/Projects.htm [1.33.2.7],
-doc/Ps-style.htm [1.13.2.7], doc/Ps2epsi.htm [1.15.2.7],
-doc/Ps2pdf.htm [1.32.2.7], doc/Psfiles.htm [1.22.2.8],
-doc/Readme.htm [1.31.2.9], doc/Release.htm [1.40.2.13],
-doc/Source.htm [1.13.2.7], doc/Tester.htm [1.14.2.7],
-doc/Unix-lpr.htm [1.13.2.7], doc/Use.htm [1.33.2.11],
-doc/Xfonts.htm [1.13.2.7], doc/gs-vms.hlp [1.12.2.6],
-man/dvipdf.1 [1.10.2.6], man/font2c.1 [1.10.2.6], man/gs.1 [1.10.2.7],
-man/gslp.1 [1.10.2.6], man/gsnd.1 [1.10.2.6], man/pdf2dsc.1 [1.10.2.6],
-man/pdf2ps.1 [1.12.2.6], man/pdfopt.1 [1.10.2.6], man/pf2afm.1 [1.10.2.6],
-man/pfbtopfa.1 [1.11.2.6], man/printafm.1 [1.10.2.6],
-man/ps2ascii.1 [1.10.2.6], man/ps2epsi.1 [1.10.2.6],
-man/ps2pdf.1 [1.14.2.6], man/ps2pdfwr.1 [1.13.2.6], man/ps2ps.1 [1.17.2.6],
-man/wftopfa.1 [1.10.2.6]: 2002/04/19 22:38:45 giles)
-
-Update the open bug list. (doc/News.htm [1.90.2.12]: 2002/04/19 22:47:14
-giles)
-
-add gnudevs.mak and gdevstp.c to Develop.htm (doc/Develop.htm [1.47.2.11]:
-2002/04/19 22:53:14 giles)
-
-Update changelog for the 7.05rc2 pre-release. (doc/Changes.htm [1.28.2.5],
-doc/History7.htm [1.5.2.10]: 2002/04/19 23:03:02 giles)
-
-Add a step to create the configure script for ijs.
-(doc/Release.htm [1.40.2.14]: 2002/04/22 18:11:46 giles)
-
-Remove the DOS and OS/2 versions of the ps2epsi code. They have been broken
-for some time. (doc/Develop.htm [1.47.2.12], doc/Ps2epsi.htm [1.15.2.8],
-man/ps2epsi.1 [1.10.2.7]: 2002/04/22 20:38:01 giles)
-
-Update version date for release. (doc/API.htm [1.11.2.10],
-doc/Bug-form.htm [1.23.2.8], doc/Bug-info.htm [1.20.2.8],
-doc/C-style.htm [1.21.2.8], doc/Commprod.htm [1.15.2.9],
-doc/Current.htm [1.13.2.8], doc/DLL.htm [1.15.2.8],
-doc/Develop.htm [1.47.2.13], doc/Devices.htm [1.34.2.11],
-doc/Drivers.htm [1.21.2.8], doc/Fonts.htm [1.22.2.9],
-doc/Helpers.htm [1.17.2.8], doc/History1.htm [1.13.2.8],
-doc/History2.htm [1.13.2.8], doc/History3.htm [1.13.2.8],
-doc/History4.htm [1.13.2.8], doc/History5.htm [1.15.2.8],
-doc/History6.htm [1.30.2.8], doc/History7.htm [1.5.2.11],
-doc/Htmstyle.htm [1.18.2.8], doc/Install.htm [1.26.2.8],
-doc/Issues.htm [1.15.2.9], doc/Language.htm [1.34.2.10],
-doc/Lib.htm [1.14.2.8], doc/Maintain.htm [1.23.2.8],
-doc/Make.htm [1.36.2.12], doc/New-user.htm [1.30.2.8],
-doc/News.htm [1.90.2.13], doc/Projects.htm [1.33.2.8],
-doc/Ps-style.htm [1.13.2.8], doc/Ps2epsi.htm [1.15.2.9],
-doc/Ps2pdf.htm [1.32.2.8], doc/Psfiles.htm [1.22.2.9],
-doc/Readme.htm [1.31.2.10], doc/Release.htm [1.40.2.15],
-doc/Source.htm [1.13.2.8], doc/Tester.htm [1.14.2.8],
-doc/Unix-lpr.htm [1.13.2.8], doc/Use.htm [1.33.2.12],
-doc/Xfonts.htm [1.13.2.8], doc/gs-vms.hlp [1.12.2.7]: 2002/04/22 21:15:32
-giles)
-
-Update version date for release.Update version date for release.
-(man/dvipdf.1 [1.10.2.7], man/font2c.1 [1.10.2.7], man/gs.1 [1.10.2.8],
-man/gslp.1 [1.10.2.7], man/gsnd.1 [1.10.2.7], man/pdf2dsc.1 [1.10.2.7],
-man/pdf2ps.1 [1.12.2.7], man/pdfopt.1 [1.10.2.7], man/pf2afm.1 [1.10.2.7],
-man/pfbtopfa.1 [1.11.2.7], man/printafm.1 [1.10.2.7],
-man/ps2ascii.1 [1.10.2.7], man/ps2epsi.1 [1.10.2.8],
-man/ps2pdf.1 [1.14.2.7], man/ps2pdfwr.1 [1.13.2.7], man/ps2ps.1 [1.17.2.7],
-man/wftopfa.1 [1.10.2.7]: 2002/04/22 21:15:55 giles)
-
-Update the open bug list for release. (doc/News.htm [1.90.2.14]: 2002/04/22
-21:26:46 giles)
-
-</pre><h2><a name="7.05-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - ps2pdf14 was not being installed by unixinst.mak. Fixes
-SourceForge bug #508607. (unixinst.mak [1.20.2.2]: 2002/02/06 07:19:17
-jackiem)
- - make symlinks to equivalent manpages with relative rather than
-absolute paths to facilitate moving the directory to another location.
-Closes SourceForge Bug #416131. (unixinst.mak [1.20.2.7]: 2002/04/18
-01:56:12 giles)
- - Adds -p parameter to mkdir to suppress warning messages when the
-target already exists and to create parent directories automatically if they
-don't exist. Fixes Sourceforge bug #518742. (unix-dll.mak [1.6.2.2],
-unixinst.mak [1.20.2.9]: 2002/04/19 01:10:40 jack)
-
-Improves branch handling in cvs2hist, raph's patch from HEAD. Also documents
-the new options. (toolbin/cvs2hist.py [1.9.2.1]: 2002/02/06 23:31:10 giles)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(all-arch.mak [1.9.2.2],
-bcwin32.mak [1.12.2.3], cfonts.mak [1.2.6.1], contrib.mak [1.24.2.1],
-devs.mak [1.47.2.3], dvx-gcc.mak [1.12.2.3], dvx-head.mak [1.2.6.1],
-dvx-tail.mak [1.5.2.1], dwmain.rc [1.2.6.1], dwsetup.rc [1.5.2.1],
-dwuninst.rc [1.3.6.1], gs.mak [1.5.2.3], gs16spl.rc [1.2.6.1],
-gsdll2.rc [1.2.6.1], gsdll32.rc [1.2.6.1]: 2002/02/22 19:45:55 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(gsos2.rc [1.2.6.1],
-gspmdrv.rc [1.2.6.1], gswin.rc [1.2.6.1], icclib.mak [1.3.2.2],
-ijs.mak [1.2.2.2], int.mak [1.50.2.3], jpeg.mak [1.4.2.1],
-lib.mak [1.53.2.2], libpng.mak [1.10.2.2], macos-fw.mak [1.1.2.2],
-macos-mcp.mak [1.3.2.3], macosx.mak [1.3.2.2], msvc32.mak [1.20.2.4],
-msvccmd.mak [1.6.2.1], msvclib.mak [1.16.2.2], msvctail.mak [1.6.2.1],
-openvms.mak [1.16.2.3], openvms.mmk [1.12.2.1], os2.mak [1.19.2.3],
-pcwin.mak [1.2.6.1], ugcclib.mak [1.13.2.3], unix-aux.mak [1.5.2.1],
-unix-dll.mak [1.6.2.1], unix-end.mak [1.2.6.1], unix-gcc.mak [1.23.2.4],
-unixansi.mak [1.16.2.4], unixhead.mak [1.2.6.1], unixinst.mak [1.20.2.3],
-unixlink.mak [1.3.4.1], version.mak [1.36.2.3], watc.mak [1.16.2.2],
-watclib.mak [1.13.2.3], watcw32.mak [1.13.2.3], wccommon.mak [1.3.6.1],
-wctail.mak [1.3.2.2], winint.mak [1.8.2.1], winlib.mak [1.12.2.2],
-winplat.mak [1.2.6.1], wmin.mak [1.2.6.1], zlib.mak [1.3.2.1]: 2002/02/22
-19:45:58 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(toolbin/3way.tcl [1.3.6.1],
-toolbin/cvs2hist.py [1.9.2.2], toolbin/errlist.tcl [1.3.6.1],
-toolbin/gsindent [1.3.6.1], toolbin/gsmake.tcl [1.5.6.1],
-toolbin/gssubst [1.1.4.1], toolbin/headers.tcl [1.3.6.1],
-toolbin/leaks.tcl [1.3.6.1], toolbin/makegnu.tcl [1.3.6.1],
-toolbin/makeset.tcl [1.10.2.3], toolbin/many2pdf.tcl [1.1.4.1],
-toolbin/pdfinflt.ps [1.1.2.1], toolbin/pre [1.11.2.1],
-toolbin/precheck.tcl [1.3.6.1], toolbin/suite.tcl [1.3.6.1],
-toolbin/tmake.tcl [1.3.6.1]: 2002/02/22 19:46:03 ray)
-
-Removes auto-generated plain text versions of html documentation from cvs
-and makes their creation an explicit part of the release process.
-(toolbin/pre [1.11.2.2]: 2002/02/25 21:43:20 giles)
-
-Add gdevpccm.obj to the display device dependencies. (devs.mak [1.47.2.4]:
-2002/02/28 22:22:25 ghostgum)
-
-When building the distribution archive, don't flag an error if gsv16spl.exe
-doesn't exist. This file is only needed for Win32s which is no longer
-supported. (winint.mak [1.8.2.2]: 2002/02/28 22:23:03 ghostgum)
-
-Update msvc32.mak and documentation to support compilation with Microsoft
-Visual Studio .NET. This requires MSVC_VERSION=7. (msvc32.mak [1.20.2.5]:
-2002/03/12 07:21:30 ghostgum)
-
-Replace Windows icons with new versions that include 48x48 pixel and 32-bit
-versions for Windows XP. Change the 16x16 pixel icons to use the full 'g'
-instead of just the head. Use a restricted icon gswin16.ico for WinZip SE
-which can't handle the new icon. (bcwin32.mak [1.12.2.4],
-dwmain.rc [1.2.6.2], dwsetup.rc [1.5.2.2], dwuninst.rc [1.3.6.2],
-gs16spl.rc [1.2.6.2], gsdll32.rc [1.2.6.2], gswin.rc [1.2.6.2],
-gswin32.rc [1.1.6.1], gswin386.rc [1.1.6.1], winint.mak [1.8.2.3]:
-2002/03/30 01:33:03 ghostgum)
-
-gs_cjk project : bugfix for nested FMapType4/5 OCF. Fix by Suzuki Toshiya.
-(lib.mak [1.53.2.3]: 2002/04/02 13:29:35 mpsuzuki)
-
-gs-cjk project : add new documents CJK.htm and CJKTTCID.htm, add references
-to Fonts.htm, Readme.htm, Use.htm add targets to unixinst.mak. Fix by Suzuki
-Toshiya and Taiji Yamada. (unixinst.mak [1.20.2.4]: 2002/04/02 14:26:39
-mpsuzuki)
-
-gs-cjk project : add CIDFnmap samples add references to Develop.htm add
-targets to unixinst.mak (unixinst.mak [1.20.2.5]: 2002/04/02 14:47:42
-mpsuzuki)
-
-gs-cjk project : add CJK samples and fix install targets, by Taiji Yamada
-(unixinst.mak [1.20.2.6]: 2002/04/02 14:53:39 mpsuzuki)
-
-Create the bboxutil pseudo-device to allow inclusion of the bbox device for
-internal use by those drivers that require it without putting it on the list
-of devices. Also some minor makefile cleanup. Patch by Ray Johnston from
-7.20. (devs.mak [1.47.2.5], lib.mak [1.53.2.4], macosx.mak [1.3.2.3],
-msvc32.mak [1.20.2.6], openvms.mak [1.16.2.4], os2.mak [1.19.2.4],
-unix-gcc.mak [1.23.2.5], unixansi.mak [1.16.2.5]: 2002/04/10 00:53:33 giles)
-
-Adds support for compilation against a standard shared libjpeg. It is
-believed that non-baseline compliant DCTEncoded data, permitted by early
-versions of postscript, is now extremely rare and the prohibition against
-SHARE_JPEG=1 may reasonably be removed. The autoconf build will prefer a
-local copy of the jpeg source, in which case the D_MAX_BLOCKS_IN_MCU patch
-will still be applied. If no such local copy is found, it will try to find a
-shared library on the system. For all unix builds, if $(JSRCDIR)/jmemsys.h
-cannot be found, we define DONT_HAVE_JMEMSYS_H and include our own versions
-of the libjpeg memory manager prototypes. The default allocator in the
-shared library is overridden by the ghostscript one at link-time. While this
-may be implementation-dependent, it appears to function as desired on at
-least GNU/Linux and Solaris. Also changes the autoconf build to prefer local
-zlib and libpng source, and cleans up some variable names. Patch by Raph
-Levien from 7.20. (dvx-gcc.mak [1.12.2.4], macosx.mak [1.3.2.4],
-ugcclib.mak [1.13.2.4], unix-aux.mak [1.5.2.2], unixansi.mak [1.16.2.6]:
-2002/04/10 01:44:27 giles)
-
-remove the warning against SHARE_JPEG=1, omitted in the last commit
-(unix-gcc.mak [1.23.2.6]: 2002/04/10 02:33:31 giles)
-
-use relative paths for the smoke test data files
-(toolbin/smoke.ps [1.1.6.1]: 2002/04/10 02:33:31 giles)
-
-makefile cleanup. remove a redundant -fno-common from the linker flags
-(unix-gcc.mak [1.23.2.7]: 2002/04/10 02:37:36 giles)
-
-add a missing Id: line (toolbin/smoke.ps [1.1.6.2]: 2002/04/10 09:17:30
-giles)
-
-mark this as a GNU version and bump the release number
-(version.mak [1.36.2.4]: 2002/04/15 05:47:56 giles)
-
-update the libpng version (macosx.mak [1.3.2.5]: 2002/04/15 19:24:22 giles)
-
-Documentation updates for a revised 7.05rc1. (version.mak [1.36.2.5]:
-2002/04/17 01:08:44 giles)
-
-Check release dates in UTC to avoid conflicts due to timezone.
-(toolbin/pre [1.11.2.3]: 2002/04/17 01:16:22 giles)
-
-Remove the chess.ps example file due to license ambiguity.
-(unixinst.mak [1.20.2.8]: 2002/04/18 06:01:27 giles)
-
-Committing in . Back-ports from the main stream such that OpenVMS is happy
-Modified Files: Tag: GS_7_0X gs/src/devs.mak gs/src/gschar0.c
-gs/src/gserrors.h gs/src/imainarg.c
-----------------------------------------------------------------------
-(devs.mak [1.47.2.6]: 2002/04/18 09:58:45 joukj)
-
-Update libpng version numbers to the latest 1.2.2. (all-arch.mak [1.9.2.3],
-bcwin32.mak [1.12.2.5], dvx-gcc.mak [1.12.2.5], libpng.mak [1.10.2.3],
-macos-mcp.mak [1.3.2.4], macosx.mak [1.3.2.6], msvc32.mak [1.20.2.7],
-msvclib.mak [1.16.2.3], openvms.mak [1.16.2.5], openvms.mmk [1.12.2.2],
-os2.mak [1.19.2.5], ugcclib.mak [1.13.2.5], unix-gcc.mak [1.23.2.8],
-unixansi.mak [1.16.2.7], watc.mak [1.16.2.3], watclib.mak [1.13.2.4],
-watcw32.mak [1.13.2.4]: 2002/04/19 06:32:22 giles)
-
-Add the 'stp' driver from the gimp-print project, and compile it in by
-default from the autoconf build if libgimprint is found.
-(unix-gcc.mak [1.23.2.9], unixansi.mak [1.16.2.8]: 2002/04/19 22:23:09
-giles)
-
-bump the release date in the makefile (version.mak [1.36.2.6]: 2002/04/19
-22:39:53 giles)
-
-Update licensing information in the Windows distribution archive.
-(winint.mak [1.8.2.4]: 2002/04/20 10:14:02 ghostgum)
-
-Update licensing information in Windows distribution archive.
-(winint.mak [1.8.2.5]: 2002/04/20 10:32:37 ghostgum)
-
-Update licensing information in Windows files. (dwsetup.def [1.2.6.1],
-dwsetup.rc [1.5.2.3], dwuninst.def [1.2.6.1]: 2002/04/20 22:11:39 ghostgum)
-
-Update version date for release.Update version date for release.Update
-version date for release. (version.mak [1.36.2.7]: 2002/04/22 21:16:23
-giles)
-
-Change the license reference in the installer dialog and update the
-copyright year. (dwsetup.rc [1.5.2.4]: 2002/04/23 01:41:13 giles)
-
-</pre><h2><a name="7.05-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Fixes pdf2dsc to open input file before .setsafe, so that it works
-even when SAFER locks down read file access. Backport patch by raph from
-HEAD. (lib/pdf2dsc.ps [1.3.4.1]: 2002/02/13 23:29:52 giles)
- - ps2epsi generated an invalid DSC header. Also, encapsulate the
-original file in %%Begin/EndDocument t o protect against confusion with
-multiple DSC comments. Patch from Russell Lang. (lib/ps2epsi [1.7.2.1]:
-2002/04/22 20:18:24 giles)
- - Calculate more accurate BoundingBox and prevent invalidaccess by
-using an 8-bit deep preview image. Patch from Ray Johnston. SF bug #525508.
-(lib/ps2epsi.ps [1.5.2.3]: 2002/04/22 20:30:39 giles)
-
-Update licensing information, with permission from Thomas Merz. Also
-updates the author's email address and removes the obsolete physical
-address.
-(lib/viewjpeg.ps [1.1.6.1]: 2002/02/08 09:44:43 giles)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(bench.c [1.4.4.1],
-dxmain.c [1.7.2.1], dxmainc.c [1.4.2.2], echogs.c [1.3.2.1],
-lib/Fontmap.ATB [1.2.6.1], lib/Fontmap.ATM [1.2.6.1],
-lib/Fontmap.GS [1.2.6.1], lib/Fontmap.OS2 [1.2.6.1],
-lib/Fontmap.SGI [1.2.6.1], lib/Fontmap.Sol [1.2.6.1],
-lib/Fontmap.Ult [1.2.6.1], lib/addxchar.ps [1.2.6.1],
-lib/align.ps [1.2.6.1], lib/bdftops.ps [1.3.2.1], lib/caption.ps [1.2.6.1],
-lib/cid2code.ps [1.3.4.1], lib/docie.ps [1.2.6.1], lib/errpage.ps [1.2.6.1],
-lib/font2c.ps [1.3.2.1], lib/font2pcl.ps [1.2.6.1], lib/gslp.ps [1.2.6.1],
-lib/gsnup.ps [1.2.6.1], lib/image-qa.ps [1.3.2.1], lib/impath.ps [1.3.4.1],
-lib/jispaper.ps [1.2.6.1], lib/lines.ps [1.2.6.1],
-lib/markhint.ps [1.2.6.1], lib/markpath.ps [1.2.6.1],
-lib/packfile.ps [1.2.6.1], lib/pcharstr.ps [1.2.6.1],
-lib/pdf2dsc.ps [1.3.4.2], lib/pdfopt.ps [1.10.2.1],
-lib/pdfwrite.ps [1.7.2.1], lib/pfbtopfa.ps [1.2.6.1],
-lib/ppath.ps [1.2.6.1], lib/pphs.ps [1.3.2.1], lib/ps2ai.ps [1.2.6.1],
-lib/ps2ascii.ps [1.3.2.1], lib/ps2epsi.ps [1.5.2.1],
-lib/showchar.ps [1.2.6.1], lib/stcinfo.ps [1.2.6.1],
-lib/stcolor.ps [1.2.6.1], lib/stocht.ps [1.3.6.1],
-lib/traceimg.ps [1.2.6.1], lib/traceop.ps [1.2.6.1],
-lib/type1enc.ps [1.2.6.1], lib/type1ops.ps [1.2.6.1],
-lib/uninfo.ps [1.2.6.1], lib/unprot.ps [1.2.6.1], lib/viewcmyk.ps [1.2.6.1],
-lib/viewgif.ps [1.2.6.1], lib/viewjpeg.ps [1.1.6.2],
-lib/viewmiff.ps [1.2.6.1], lib/viewpbm.ps [1.2.6.1],
-lib/viewpcx.ps [1.2.6.1], lib/viewps2a.ps [1.2.6.1],
-lib/wftopfa.ps [1.2.6.1], lib/winmaps.ps [1.2.6.1], lib/wrfont.ps [1.2.6.1],
-lib/zeroline.ps [1.2.6.1]: 2002/02/22 19:45:54 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(genarch.c [1.2.6.1],
-genconf.c [1.4.4.1], gendev.c [1.2.6.1], genht.c [1.2.6.1],
-geninit.c [1.3.6.1], gp_dvx.c [1.4.2.1], gp_iwatc.c [1.6.2.1],
-gp_mac.c [1.1.4.1], gp_mktmp.c [1.2.6.1], gp_msdll.c [1.1.2.1],
-gp_mshdl.c [1.2.6.1], gp_msio.c [1.3.4.1], gp_mslib.c [1.3.2.1],
-gp_mspol.c [1.1.2.1], gp_msprn.c [1.1.2.1], gp_mswin.c [1.7.2.1],
-gp_ntfs.c [1.5.2.3], gp_os2.c [1.10.2.2], gp_os9.c [1.4.2.1],
-gp_stdia.c [1.3.2.1], gp_stdin.c [1.2.2.1], gp_sysv.c [1.2.6.1],
-gp_unix.c [1.5.2.1], gp_vms.c [1.7.2.2], gp_wgetv.c [1.4.2.1],
-gp_win32.c [1.2.6.1], gp_wsync.c [1.2.6.1], gs16spl.c [1.2.6.1],
-gsdll.c [1.6.2.1], gserver.c [1.2.6.1], gspmdrv.c [1.2.6.1]: 2002/02/22
-19:45:57 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(scfdgen.c [1.2.6.1],
-zdosio.c [1.2.6.1], ziodevs.c [1.5.2.1], ziodevsc.c [1.3.2.1]: 2002/02/22
-19:46:00 ray)
-
-gs_cjk project : replace "min" &amp; "max" by ".min" &amp; ".max". Fix by
-Suzuki Toshiya. (lib/bdftops.ps [1.3.2.2], lib/font2pcl.ps [1.2.6.2],
-lib/gslp.ps [1.2.6.2], lib/packfile.ps [1.2.6.2], lib/pdfopt.ps [1.10.2.2],
-lib/prfont.ps [1.2.6.1], lib/ps2ascii.ps [1.3.2.2],
-lib/traceimg.ps [1.2.6.2], lib/viewcmyk.ps [1.2.6.2],
-lib/viewpbm.ps [1.2.6.2], lib/viewpcx.ps [1.2.6.2]: 2002/04/02 13:57:27
-mpsuzuki)
-
-add missing Id: lines (lib/acctest.ps [1.1.6.1], lib/decrypt.ps [1.1.6.1],
-lib/landscap.ps [1.1.6.1], lib/level1.ps [1.1.6.1], lib/pf2afm.ps [1.3.2.1],
-lib/printafm.ps [1.1.6.1]: 2002/04/10 09:22:58 giles)
-
-adds missing Id: lines. (gp_mac.c [1.1.4.2]: 2002/04/10 09:33:26 giles)
-
-Updating licensing information in Windows files. (gp_wgetv.c [1.4.2.2]:
-2002/04/20 22:11:39 ghostgum)
-
-Use sed in preference to tail to avoid conflicts between posix and
-traditional implementations. Patch from Paul Eggert. Closes SourceForge bug
-#521597. (lib/unix-lpr.sh [1.1.6.1]: 2002/04/22 19:54:55 giles)
-
-Add new license header to some files.
-(gp_macio.c [1.2.4.2]: 2002/04/23 01:32:26 giles)
-
-</pre><h2><a name="7.05-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - Changes XPutImage to use xdev-&gt;vinfo-&gt;depth rather than
-xdev-&gt;color_info.depth. These are the same in all cases except a visual
-depth of 15, in which the latter is 16. (gdevx.c [1.8.2.2]: 2002/02/20
-21:11:49 raph)
- - improve pswrite with compatibility to interpreters which don't
-consume ASCII85Decode EOD when reader stops immediately before it. Source
-Forge bug #525044 "pswrite incompatible with some RIPs". Thanks to Paul
-Vojta for spotting this. (gdevps.c [1.19.2.2]: 2002/03/13 17:09:11 igor)
- - epswrite was incompatible with HP LaserJet 4000 TN. Source Forge
-bug #529202 "Wrong PostScript in pswrite prolog". (gdevpsu.c [1.7.2.2]:
-2002/03/20 20:17:31 igor)
- - Fixes incorrect margins on IJS devices. Thanks to Dave Suffield
-for the patch. (gdevijs.c [1.1.2.3]: 2002/03/28 20:44:53 raph)
- - Initializes the green and blue components of cmap and their
-multipliers. A floating point exception was occuring on static gray X
-displays when these were left at 0. (gdevxcmp.c [1.2.6.2]: 2002/04/19
-00:46:41 jack)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(gdev3852.c [1.3.2.1],
-gdev3b1.c [1.2.6.1], gdev4081.c [1.3.2.1], gdev8510.c [1.3.2.1],
-gdev8bcm.c [1.2.6.1], gdev8bcm.h [1.2.6.1], gdevadmp.c [1.3.2.1],
-gdevbit.c [1.2.6.1], gdevbj10.c [1.4.2.1], gdevbjc.h [1.2.6.1],
-gdevbjcl.c [1.2.6.1], gdevbjcl.h [1.2.6.1], gdevbmp.c [1.4.2.1],
-gdevbmp.h [1.2.6.1], gdevbmpa.c [1.3.6.1], gdevbmpc.c [1.2.6.1],
-gdevccr.c [1.2.6.1], gdevcdj.c [1.5.2.1], gdevcfax.c [1.3.6.1],
-gdevcgm.c [1.2.6.2], gdevcgml.c [1.2.6.1], gdevcgml.h [1.2.6.1],
-gdevcgmx.h [1.2.6.1], gdevcif.c [1.3.2.1], gdevclj.c [1.2.6.1],
-gdevcljc.c [1.4.2.1], gdevcp50.c [1.3.2.1], gdevcslw.c [1.2.6.1],
-gdevdcrd.c [1.2.6.1], gdevdcrd.h [1.2.6.1], gdevdfax.c [1.4.2.1],
-gdevdjtc.c [1.3.2.1], gdevdm24.c [1.3.2.1], gdevdsp.c [1.5.2.2],
-gdevegaa.asm [1.2.6.1], gdevepsc.c [1.3.2.1], gdevepsn.c [1.3.2.1],
-gdevescp.c [1.3.2.1], gdevevga.c [1.2.6.1], gdevfax.c [1.2.6.1],
-gdevfax.h [1.2.6.1], gdevherc.c [1.2.6.1], gdevhl7x.c [1.5.2.1],
-gdevijs.c [1.1.2.2], gdevimgn.c [1.4.2.1], gdevjpeg.c [1.3.2.1],
-gdevl256.c [1.3.6.1], gdevl31s.c [1.2.6.1], gdevlbp8.c [1.3.2.1],
-gdevlj56.c [1.3.2.1], gdevlp8k.c [1.2.6.1], gdevlxm.c [1.2.6.1],
-gdevmac.h [1.1.4.1], gdevmacxf.c [1.1.4.1], gdevmeds.c [1.2.6.1],
-gdevmeds.h [1.2.6.1], gdevmgr.c [1.2.6.1], gdevmgr.h [1.2.6.1],
-gdevmiff.c [1.3.2.1], gdevmswn.c [1.4.2.1], gdevmswn.h [1.2.6.1],
-gdevmsxf.c [1.2.6.1], gdevn533.c [1.3.2.1], gdevo182.c [1.3.2.1],
-gdevokii.c [1.3.2.1], gdevos2p.c [1.4.2.1], gdevp14.h [1.1.2.1],
-gdevp2up.c [1.2.6.1], gdevpbm.c [1.3.6.1], gdevpccm.c [1.2.6.1],
-gdevpccm.h [1.3.6.1], gdevpcfb.c [1.2.6.1], gdevpcfb.h [1.2.6.1],
-gdevpcl.c [1.5.2.1], gdevpcl.h [1.5.2.1], gdevpcx.c [1.2.6.1],
-gdevpe.c [1.2.6.1], gdevphex.c [1.2.6.1], gdevpjet.c [1.3.2.1],
-gdevpm.c [1.4.2.1], gdevpm.h [1.2.6.1], gdevpng.c [1.4.2.1],
-gdevpnga.c [1.4.2.1], gdevps.c [1.19.2.1], gdevpsdf.h [1.9.4.1],
-gdevpsdi.c [1.15.2.1], gdevpsdp.c [1.8.6.1], gdevpsds.c [1.4.6.1],
-gdevpsds.h [1.4.6.1], gdevpsdu.c [1.10.2.1], gdevpsim.c [1.6.2.1],
-gdevpsu.c [1.7.2.1], gdevpsu.h [1.4.2.1], gdevpx.c [1.6.2.1],
-gdevpxat.h [1.3.6.1], gdevpxen.h [1.3.6.1], gdevpxop.h [1.2.6.1],
-gdevpxut.c [1.2.6.1], gdevpxut.h [1.2.6.1], gdevs3ga.c [1.2.6.1],
-gdevsco.c [1.3.6.1], gdevsj48.c [1.2.6.1], gdevsnfb.c [1.3.2.1],
-gdevsppr.c [1.5.2.1], gdevstc.c [1.2.6.1], gdevstc.h [1.2.6.1],
-gdevstc1.c [1.2.6.1], gdevstc2.c [1.2.6.1], gdevstc3.c [1.2.6.1],
-gdevstc4.c [1.2.6.1], gdevsun.c [1.2.6.1], gdevsunr.c [1.4.2.1],
-gdevsvga.c [1.2.6.1], gdevsvga.h [1.2.6.1], gdevtfax.c [1.4.6.1],
-gdevtfax.h [1.4.6.1], gdevtfnx.c [1.5.2.1], gdevtifs.c [1.4.2.1],
-gdevtifs.h [1.3.6.1], gdevtknk.c [1.3.2.1], gdevupd.c [1.5.2.1],
-gdevvglb.c [1.3.6.1], gdevwddb.c [1.3.2.1], gdevwdib.c [1.3.2.1],
-gdevwpr2.c [1.9.2.1], gdevwprn.c [1.3.2.1], gdevx.c [1.8.2.3],
-gdevx.h [1.4.6.1], gdevxalt.c [1.2.6.2], gdevxcmp.c [1.2.6.1],
-gdevxcmp.h [1.2.6.1], gdevxini.c [1.10.4.1], gdevxres.c [1.3.6.1],
-gdevxxf.c [1.5.6.1]: 2002/02/22 19:45:55 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(png_.h [1.2.6.1],
-x_.h [1.3.2.1]: 2002/02/22 19:46:00 ray)
-
-Add multiple inclusion protection to headers files which were missing it.
-(gdevmacpictop.h [1.1.4.1], gdevmacttf.h [1.1.4.1], png_.h [1.2.6.2]:
-2002/04/10 09:13:11 giles)
-
-adds missing Id: lines. (gdevdsp.c [1.5.2.3], gdevhpij.c [1.3.2.1],
-gdevhpij.h [1.2.4.1], gdevmac.c [1.1.4.2], gdevmac.h [1.1.4.2],
-gdevmacxf.c [1.1.4.2], gdevphex.c [1.2.6.2]: 2002/04/10 09:33:25 giles)
-
-Add new license header to some files.
-(gdevmac.c [1.1.4.3]: 2002/04/23 01:32:26 giles)
-
-</pre><h2><a name="7.05-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - Fix : pdfwrite wrongly computed text width for fonts with unusual
-font matrix. Source Forge bug "[ 535401 ] euro glyph misplaced after
-pdfwrite". (gdevpdff.c [1.22.2.2], gdevpdfs.c [1.7.2.2]: 2002/04/11 15:49:45
-igor)
- - Fix : pdfwrite wrongly computed line width for fonts with
-PaintType 2. (gdevpdfs.c [1.7.2.3]: 2002/04/16 10:11:30 igor)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(gdevpdf.c [1.38.2.1],
-gdevpdfb.c [1.6.2.1], gdevpdfc.c [1.17.2.1], gdevpdfd.c [1.16.2.1],
-gdevpdfe.c [1.10.2.1], gdevpdff.c [1.22.2.1], gdevpdff.h [1.11.2.1],
-gdevpdfg.c [1.14.2.1], gdevpdfg.h [1.9.6.1], gdevpdfi.c [1.24.2.1],
-gdevpdfj.c [1.7.2.1], gdevpdfm.c [1.14.2.1], gdevpdfo.c [1.9.2.1],
-gdevpdfo.h [1.6.4.1], gdevpdfp.c [1.19.2.1], gdevpdfr.c [1.4.6.1],
-gdevpdfs.c [1.7.2.1], gdevpdft.c [1.36.2.1], gdevpdfu.c [1.16.2.1],
-gdevpdfv.c [1.10.2.1], gdevpdfw.c [1.12.2.1], gdevpdfx.h [1.34.2.1]:
-2002/02/22 19:45:56 ray)
-
-</pre><h2><a name="7.05-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(lib/pdf_base.ps [1.14.2.1],
-lib/pdf_draw.ps [1.36.2.1], lib/pdf_font.ps [1.23.2.1],
-lib/pdf_main.ps [1.35.2.1], lib/pdf_ops.ps [1.17.2.2]: 2002/02/22 19:45:55
-ray)
-
-gs_cjk project : CIDWProc sample implementation by Suzuki Toshiya.
-(lib/pdf_font.ps [1.23.2.2]: 2002/04/02 13:53:16 mpsuzuki)
-
-gs_cjk project : replace "min" &amp; "max" by ".min" &amp; ".max". Fix by
-Suzuki Toshiya. (lib/pdf_font.ps [1.23.2.3], lib/pdf_main.ps [1.35.2.2],
-lib/pdf_sec.ps [1.5.2.1]: 2002/04/02 13:57:27 mpsuzuki)
-
-gs_cjk project : Automatic bold &amp; italic for non-CID fonts in PDF. Fix
-by Taiji Yamada. (lib/pdf_font.ps [1.23.2.4]: 2002/04/02 13:58:40 mpsuzuki)
-
-gs-cjk project : update comments on "PDF reference", third edition fixes
-wrong notes about /DW in second edition. Fix by Suzuki Toshiya.
-(lib/pdf_font.ps [1.23.2.5]: 2002/04/03 07:27:49 mpsuzuki)
-
-disable the new auto-bold and auto-slant functions for non-cid fonts,
-pending improved detection of when this is necessary.
-(lib/pdf_font.ps [1.23.2.6]: 2002/04/16 06:11:29 giles)
-
-</pre><h2><a name="7.05-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Prevent .locksafe (and .setsafe) from resetting the current
-pagedevice. Fixes SourceForge bug #516379. (lib/gs_init.ps [1.40.2.5]:
-2002/02/14 01:25:59 rayjj)
- - -dSAFER mode to allow opening a file that references the parent
-directory as long as the PermitFileReading strings include a (*) string
-(allow all reading). Corresponds to rev 1.19 change. (zfile.c [1.11.2.3]:
-2002/04/11 20:05:01 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(bfont.h [1.3.6.1],
-btoken.h [1.4.6.1], ccfont.h [1.2.6.1], dpmain.c [1.5.2.1],
-dscparse.c [1.7.2.1], dscparse.h [1.6.2.1], dstack.h [1.3.4.1],
-dwdll.c [1.2.2.1], dwdll.h [1.3.2.1], dwimg.c [1.3.2.1], dwimg.h [1.4.2.1],
-dwinst.cpp [1.2.6.1], dwinst.h [1.2.6.1], dwmain.c [1.6.2.2],
-dwmain.h [1.3.2.1], dwmainc.c [1.8.2.2], dwnodll.c [1.1.2.1],
-dwreg.c [1.1.2.1], dwreg.h [1.1.2.1], dwsetup.cpp [1.5.6.1],
-dwsetup.h [1.2.6.1], dwtext.c [1.5.2.1], dwtext.h [1.4.2.1],
-dwuninst.cpp [1.2.6.1], dwuninst.h [1.2.6.1], errors.h [1.4.2.1],
-estack.h [1.2.6.1], examples/waterfal.ps [1.3.2.1], files.h [1.4.2.1],
-gdevdsp.h [1.1.2.1], gdevdsp2.h [1.2.2.1], lib/gs_agl.ps [1.2.6.1],
-lib/gs_btokn.ps [1.5.2.1], lib/gs_ccfnt.ps [1.5.2.1],
-lib/gs_ce_e.ps [1.2.6.1], lib/gs_cff.ps [1.10.2.1],
-lib/gs_cidcm.ps [1.5.2.1], lib/gs_cidfn.ps [1.18.4.1],
-lib/gs_cmap.ps [1.11.2.1], lib/gs_cmdl.ps [1.2.6.1],
-lib/gs_css_e.ps [1.2.6.1], lib/gs_dbt_e.ps [1.2.6.1],
-lib/gs_diskf.ps [1.2.6.1], lib/gs_dpnxt.ps [1.2.6.1],
-lib/gs_dps.ps [1.4.6.1], lib/gs_dps1.ps [1.2.6.1], lib/gs_dps2.ps [1.3.4.1],
-lib/gs_dscp.ps [1.4.2.1], lib/gs_epsf.ps [1.2.6.1],
-lib/gs_fform.ps [1.2.6.1], lib/gs_fonts.ps [1.13.2.2],
-lib/gs_frsd.ps [1.4.6.1], lib/gs_icc.ps [1.2.2.1],
-lib/gs_il1_e.ps [1.2.6.1], lib/gs_il2_e.ps [1.2.6.1],
-lib/gs_init.ps [1.40.2.6], lib/gs_kanji.ps [1.2.6.1],
-lib/gs_ksb_e.ps [1.2.6.1], lib/gs_l2img.ps [1.2.6.1],
-lib/gs_lev2.ps [1.7.2.3], lib/gs_lgo_e.ps [1.3.6.1],
-lib/gs_lgx_e.ps [1.2.6.1], lib/gs_ll3.ps [1.10.2.1],
-lib/gs_mex_e.ps [1.2.6.1], lib/gs_mgl_e.ps [1.3.6.1],
-lib/gs_mro_e.ps [1.2.6.1], lib/gs_pdf_e.ps [1.2.6.1],
-lib/gs_pdfwr.ps [1.11.2.1], lib/gs_pfile.ps [1.2.6.1],
-lib/gs_rdlin.ps [1.2.6.1], lib/gs_res.ps [1.16.2.1],
-lib/gs_setpd.ps [1.8.2.2], lib/gs_statd.ps [1.5.2.1],
-lib/gs_std_e.ps [1.2.6.1], lib/gs_sym_e.ps [1.2.6.1],
-lib/gs_trap.ps [1.3.6.1], lib/gs_ttf.ps [1.9.2.1],
-lib/gs_typ32.ps [1.3.2.1], lib/gs_typ42.ps [1.2.6.1],
-lib/gs_type1.ps [1.5.2.1], lib/gs_wan_e.ps [1.2.6.1],
-lib/gs_wl1_e.ps [1.2.6.1], lib/gs_wl2_e.ps [1.2.6.1],
-lib/gs_wl5_e.ps [1.2.6.1]: 2002/02/22 19:45:54 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(ghost.h [1.2.6.1],
-gs.c [1.6.2.1], ialloc.c [1.2.6.1], ialloc.h [1.2.6.1], iapi.c [1.1.2.2],
-iapi.h [1.2.2.1], iastate.h [1.2.6.1], iastruct.h [1.2.6.1],
-ibnum.c [1.2.6.1], ibnum.h [1.2.6.1], iccfont.c [1.2.6.2],
-iccinit0.c [1.2.6.1], icfontab.c [1.2.6.1], ichar.h [1.3.6.1],
-ichar1.h [1.3.6.1], icharout.h [1.3.4.1], icid.h [1.2.6.1],
-icie.h [1.3.2.1], icolor.h [1.2.6.1], iconf.c [1.3.2.1], iconf.h [1.1.6.1],
-icontext.c [1.6.6.2], icontext.h [1.2.6.1], icremap.h [1.2.6.1],
-icsmap.h [1.2.6.1], icstate.h [1.4.6.2], iddict.h [1.2.6.1],
-iddstack.h [1.2.6.1], idebug.c [1.4.2.1], idebug.h [1.2.6.1],
-idict.c [1.4.4.1], idict.h [1.2.6.1], idictdef.h [1.2.6.1],
-idisp.c [1.2.2.1], idisp.h [1.1.2.1], idosave.h [1.2.6.1],
-idparam.c [1.3.6.1], idparam.h [1.3.6.1], idsdata.h [1.2.6.1],
-idstack.c [1.2.6.1], idstack.h [1.2.6.1], iesdata.h [1.2.6.1],
-iestack.h [1.2.6.1], ifcid.h [1.2.6.1], ifilter.h [1.3.6.1],
-ifilter2.h [1.2.6.1], ifont.h [1.6.4.1], ifont1.h [1.3.6.1],
-ifont2.h [1.2.6.1], ifont42.h [1.3.6.1], ifrpred.h [1.2.6.1],
-ifunc.h [1.3.6.3], ifwpred.h [1.2.6.1], igc.c [1.5.2.1], igc.h [1.2.6.1],
-igcref.c [1.3.2.1], igcstr.c [1.3.6.1], igcstr.h [1.2.6.1],
-igstate.h [1.3.6.1], iht.h [1.2.6.1], iimage.h [1.2.6.1],
-iimage2.h [1.2.6.1], iinit.c [1.3.4.1], iinit.h [1.2.6.1],
-ilevel.h [1.2.6.1], ilocate.c [1.4.2.1], imain.c [1.19.2.1],
-imain.h [1.3.2.1], imainarg.c [1.13.2.2], imainarg.h [1.3.2.1],
-imemory.h [1.2.6.1], iminst.h [1.5.2.1], iname.c [1.3.6.1],
-iname.h [1.2.6.1], inamedef.h [1.2.6.1], inameidx.h [1.2.6.1],
-inames.h [1.2.6.1], inamestr.h [1.2.6.1], inobtokn.c [1.2.6.1],
-inouparm.c [1.2.6.1], interp.c [1.8.2.1], interp.h [1.2.6.1],
-iosdata.h [1.2.6.1], iostack.h [1.2.6.1], ipacked.h [1.2.6.1],
-iparam.c [1.5.6.1], iparam.h [1.2.6.1], iparray.h [1.2.6.1],
-ipcolor.h [1.2.6.1], ireclaim.c [1.3.2.1], iref.h [1.5.4.1],
-isave.c [1.3.6.1], isave.h [1.2.6.1], iscan.c [1.5.6.1], iscan.h [1.4.6.1],
-iscanbin.c [1.5.6.1], iscanbin.h [1.2.6.1], iscannum.c [1.3.2.1],
-iscannum.h [1.2.6.1], isdata.h [1.2.6.1], isstate.h [1.2.6.1],
-istack.c [1.2.6.1], istack.h [1.2.6.1], istkparm.h [1.2.6.1],
-istream.h [1.2.6.1], istruct.h [1.2.6.1], itoken.h [1.2.6.1],
-iutil.c [1.3.2.1], iutil.h [1.2.6.1], iutil2.c [1.2.6.2],
-iutil2.h [1.2.6.2], ivmem2.h [1.2.6.1], ivmspace.h [1.2.6.1],
-main.h [1.3.2.1], oparc.h [1.2.6.1], opcheck.h [1.2.6.1], opdef.h [1.3.2.1],
-oper.h [1.2.6.1], opextern.h [1.2.6.1]: 2002/02/22 19:45:57 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(ostack.h [1.2.6.1],
-sbhc.c [1.3.4.1], sbhc.h [1.2.6.1], sbwbs.c [1.2.6.1], sbwbs.h [1.2.6.1],
-sfilter1.c [1.6.4.1], shcgen.c [1.2.6.1], shcgen.h [1.2.6.1],
-smtf.c [1.2.6.1], smtf.h [1.2.6.1], store.h [1.2.6.1], zarith.c [1.4.6.1],
-zarray.c [1.2.6.1], zbfont.c [1.7.4.1], zbseq.c [1.4.6.1],
-zcfont.c [1.2.6.1], zchar.c [1.4.2.1], zchar1.c [1.7.2.1],
-zchar2.c [1.2.6.1], zchar32.c [1.2.6.1], zchar42.c [1.3.4.1],
-zcharout.c [1.4.4.1], zcharx.c [1.3.6.1], zcid.c [1.3.6.1],
-zcie.c [1.5.2.1], zcolor.c [1.4.6.1], zcolor1.c [1.3.6.1],
-zcolor2.c [1.4.2.1], zcontext.c [1.7.2.1], zcontrol.c [1.3.6.2],
-zcrd.c [1.2.6.1], zcsdevn.c [1.5.2.2], zcsindex.c [1.3.6.1],
-zcspixel.c [1.2.6.1], zcssepr.c [1.8.2.1], zdevcal.c [1.3.6.1],
-zdevice.c [1.3.6.2], zdevice2.c [1.4.2.2], zdfilter.c [1.2.2.1],
-zdict.c [1.3.6.1], zdouble.c [1.2.6.1], zdpnext.c [1.3.6.1],
-zdps.c [1.4.6.1], zdps1.c [1.3.4.1], zdscpars.c [1.12.2.1],
-zfarc4.c [1.2.2.1], zfbcp.c [1.3.6.1], zfcid.c [1.11.4.1],
-zfcid0.c [1.7.2.1], zfcid1.c [1.4.4.1], zfcmap.c [1.9.2.1],
-zfdctd.c [1.6.2.1], zfdcte.c [1.5.2.1], zfdecode.c [1.3.6.1],
-zfile.c [1.11.2.2], zfileio.c [1.12.2.1], zfilter.c [1.5.2.1],
-zfilter2.c [1.3.6.1], zfilterx.c [1.2.6.1], zfmd5.c [1.2.6.1],
-zfont.c [1.3.4.1], zfont0.c [1.3.6.1], zfont1.c [1.9.4.1],
-zfont2.c [1.4.2.1], zfont32.c [1.2.6.1], zfont42.c [1.5.6.1],
-zfproc.c [1.9.2.1], zfrsd.c [1.4.6.1], zfunc.c [1.6.6.3],
-zfunc0.c [1.3.6.2], zfunc3.c [1.2.6.2], zfunc4.c [1.7.4.2],
-zfzlib.c [1.3.6.1], zgeneric.c [1.3.6.1], zgstate.c [1.2.6.1],
-zhsb.c [1.2.6.1], zht.c [1.2.6.1], zht1.c [1.2.6.1], zht2.c [1.2.6.1],
-zicc.c [1.2.2.1], zimage.c [1.5.6.1], zimage2.c [1.4.2.1],
-zimage3.c [1.3.6.1], ziodev.c [1.6.2.1], ziodev2.c [1.3.6.1],
-zmath.c [1.3.6.1], zmatrix.c [1.4.6.1], zmedia2.c [1.3.2.1],
-zmisc.c [1.2.6.1], zmisc1.c [1.3.6.1], zmisc2.c [1.3.6.1],
-zmisc3.c [1.2.6.1], zpacked.c [1.2.6.1], zpaint.c [1.2.6.1],
-zpath.c [1.2.6.1], zpath1.c [1.2.6.1], zpcolor.c [1.3.6.1],
-zrelbit.c [1.2.6.1], zrop.c [1.2.6.1], zshade.c [1.4.6.2],
-zstack.c [1.2.6.1], zstring.c [1.2.6.1], zsysvm.c [1.2.6.1],
-ztoken.c [1.6.6.1], ztrans.c [1.13.2.1], ztrap.c [1.2.6.1],
-ztype.c [1.3.6.1], zupath.c [1.2.6.1], zusparam.c [1.3.6.2],
-zvmem.c [1.3.2.2], zvmem2.c [1.3.2.1]: 2002/02/22 19:46:00 ray)
-
-MS-Windows installer now clears the read-only attribute when copying files.
-The installer was failing when the source files were stored unpacked on a
-CD-ROM. (dwinst.cpp [1.2.6.2], dwinst.h [1.2.6.2]: 2002/03/12 20:57:01
-ghostgum)
-
-gs_cjk project : gdevpsfm.c did not know about CODE_VALUE_NOTDEF which was
-introduced by MDRC. Fix by Suzuki Toshiya. Also Fix in HEAD (revision 1.8
--&gt; 1.9) by L. Peter Deutsch is included. (lib/gs_cmap.ps [1.11.2.2]:
-2002/04/02 13:24:12 mpsuzuki)
-
-gs_cjk project : MDRC bug fix pt.1: use signalerror instead stop Fix by
-Suzuki Toshiya. (lib/gs_cmap.ps [1.11.2.3]: 2002/04/02 13:25:44 mpsuzuki)
-
-gs_cjk project : MDRC bug fix pt.2: shrink map infos by endcidchar too, to
-provide parsing of Adobe-CNS1-4 UCS4 CMap. Fix by Suzuki Toshiya.
-(lib/gs_cmap.ps [1.11.2.4]: 2002/04/02 13:26:37 mpsuzuki)
-
-gs_cjk project : return error when we cannot load even CID=0. Fix by Suzuki
-Toshiya. (zfcid0.c [1.7.2.2]: 2002/04/02 13:28:34 mpsuzuki)
-
-gs_cjk project : cshow bug patch for CIDFont. proc passed to cshow can
-change currentfont internally, in such case, rangecheck error should not be
-returned. Fix by Masatake Yamato. (zchar.c [1.4.2.2]: 2002/04/02 13:30:49
-mpsuzuki)
-
-gs_cjk project : cshow bug patch for composite font. Fix by Masatake Yamato.
-(zcfont.c [1.2.6.2]: 2002/04/02 13:31:38 mpsuzuki)
-
-gs_cjk project : support for vertical writing mode by CIDFontType2 by
-Hideyuki Suzuki. (zchar42.c [1.3.4.2]: 2002/04/02 13:32:14 mpsuzuki)
-
-gs_cjk project : zsetcachedevice2 bug patch by Masatake Yamato, modified by
-Hideo Saito (zchar1.c [1.7.2.2]: 2002/04/02 13:45:02 mpsuzuki)
-
-gs_cjk project : CDevProc patch by Masatake Yamato. (zcharout.c [1.4.4.2]:
-2002/04/02 13:46:13 mpsuzuki)
-
-gs_cjk project : CJK TTF loader: on-the-fly CIDFontType2 convertor,
-including bugfix for cmap format2 parser (2002-01-09 for GS_6_5) by Hideyuki
-Suzuki and Taiji Yamada. (lib/gs_ttf.ps [1.9.2.2]: 2002/04/02 13:55:03
-mpsuzuki)
-
-gs_cjk project : CIDFontmap patch (without CJK TTF support) by Masatake
-Yamato. (lib/gs_cidcm.ps [1.5.2.2], lib/gs_cidfn.ps [1.18.4.2],
-lib/gs_init.ps [1.40.2.7]: 2002/04/02 13:55:47 mpsuzuki)
-
-gs_cjk project : CIDFontmap patch CJK TTF support by Masatake Yamato.
-(lib/gs_cidfn.ps [1.18.4.3]: 2002/04/02 13:56:26 mpsuzuki)
-
-gs_cjk project : replace "min" &amp; "max" by ".min" &amp; ".max". Fix by
-Suzuki Toshiya. (lib/gs_cidfn.ps [1.18.4.4], lib/gs_fonts.ps [1.13.2.3],
-lib/gs_init.ps [1.40.2.8], lib/gs_ll3.ps [1.10.2.2],
-lib/gs_trap.ps [1.3.6.2], lib/gs_typ32.ps [1.3.2.2]: 2002/04/02 13:57:27
-mpsuzuki)
-
-gs-cjk project : apply security fix by rayjj for gs6.53 branch (for original
-fix, see rev. 1.17.2.2). Fix by Suzuki Toshiya. (lib/gs_cidfn.ps [1.18.4.5]:
-2002/04/03 07:31:14 mpsuzuki)
-
-Add multiple inclusion protection to headers files which were missing it.
-(dscparse.h [1.6.2.2], dwimg.h [1.4.2.2], dwinst.h [1.2.6.3],
-dwmain.h [1.3.2.2], dwreg.h [1.1.2.2], dwsetup.h [1.2.6.2],
-dwtext.h [1.4.2.2], dwuninst.h [1.2.6.2]: 2002/04/10 09:13:11 giles)
-
-adds missing Id: lines. (dwnodll.c [1.1.2.2], gdevdsp.h [1.1.2.2],
-gdevdsp2.h [1.2.2.2], idisp.c [1.2.2.2], zicc.c [1.2.2.2]: 2002/04/10
-09:33:25 giles)
-
-Update the version number in the library as well.
-(lib/gs_init.ps [1.40.2.9]: 2002/04/15 06:49:43 giles)
-
-Committing in . Back-ports from the main stream such that OpenVMS is happy
-Modified Files: Tag: GS_7_0X gs/src/devs.mak gs/src/gschar0.c
-gs/src/gserrors.h gs/src/imainarg.c
-----------------------------------------------------------------------
-(imainarg.c [1.13.2.3]: 2002/04/18 09:58:45 joukj)
-
-Updating licensing information in Windows files. (dwreg.c [1.1.2.2],
-dwsetup.cpp [1.5.6.2], dwuninst.cpp [1.2.6.2]: 2002/04/20 22:11:39 ghostgum)
-
-</pre><h2><a name="7.05-Streams"></a>Streams</h2><pre>
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(sa85d.c [1.3.4.1],
-sa85d.h [1.3.4.1], sa85x.h [1.3.6.1], sarc4.c [1.5.2.1], sarc4.h [1.2.2.1],
-sbcp.c [1.3.6.1], sbcp.h [1.2.6.1], sbtx.h [1.2.6.1], scanchar.h [1.2.6.1],
-scantab.c [1.2.6.1], scf.h [1.2.6.1], scfd.c [1.3.4.1], scfe.c [1.2.6.1],
-scfetab.c [1.2.6.1], scfparam.c [1.2.6.1], scfx.h [1.2.6.1],
-scommon.h [1.3.4.1], sdcparam.c [1.3.2.1], sdcparam.h [1.2.6.1],
-sdct.h [1.4.2.1], sdctc.c [1.2.6.1], sdctd.c [1.2.6.1], sdcte.c [1.4.2.1],
-sddparam.c [1.2.6.1], sdeparam.c [1.4.2.1], seexec.c [1.4.2.1],
-sfilter.h [1.6.6.1], sfilter2.c [1.3.6.1], sfxboth.c [1.2.6.1],
-sfxfd.c [1.6.4.1], sfxstdio.c [1.4.6.1], shc.c [1.2.6.1], shc.h [1.2.6.1],
-siinterp.c [1.2.6.1], siinterp.h [1.2.6.1], siscale.c [1.4.6.1],
-siscale.h [1.2.6.1], sisparam.h [1.2.6.1], sjpeg.h [1.2.6.1],
-sjpegc.c [1.4.2.1], sjpegd.c [1.3.2.1], sjpege.c [1.3.2.1],
-slzwc.c [1.2.6.1], slzwce.c [1.2.6.1], slzwd.c [1.3.4.1], slzwx.h [1.2.6.1],
-smd5.c [1.3.6.1], smd5.h [1.2.6.1], spdiff.c [1.3.6.1], spdiffx.h [1.2.6.1],
-spngp.c [1.2.6.1], spngpx.h [1.2.6.1], spprint.c [1.4.2.1],
-spprint.h [1.3.2.1], spsdf.c [1.5.2.1], spsdf.h [1.2.6.1],
-srdline.h [1.2.6.1], srld.c [1.2.6.1], srle.c [1.2.6.1], srlx.h [1.3.4.1],
-sstring.c [1.2.6.1], sstring.h [1.3.4.1], stat_.h [1.6.2.1],
-std.h [1.4.2.1], stdio_.h [1.4.2.1], stdpre.h [1.4.2.1],
-stream.c [1.15.2.1], stream.h [1.8.2.1], strimpl.h [1.3.4.1],
-string_.h [1.2.6.1], szlibc.c [1.3.2.1], szlibd.c [1.3.4.1],
-szlibe.c [1.2.6.1], szlibx.h [1.2.6.1], szlibxx.h [1.2.6.1]: 2002/02/22
-19:46:00 ray)
-
-Adds support for compilation against a standard shared libjpeg. It is
-believed that non-baseline compliant DCTEncoded data, permitted by early
-versions of postscript, is now extremely rare and the prohibition against
-SHARE_JPEG=1 may reasonably be removed. The autoconf build will prefer a
-local copy of the jpeg source, in which case the D_MAX_BLOCKS_IN_MCU patch
-will still be applied. If no such local copy is found, it will try to find a
-shared library on the system. For all unix builds, if $(JSRCDIR)/jmemsys.h
-cannot be found, we define DONT_HAVE_JMEMSYS_H and include our own versions
-of the libjpeg memory manager prototypes. The default allocator in the
-shared library is overridden by the ghostscript one at link-time. While this
-may be implementation-dependent, it appears to function as desired on at
-least GNU/Linux and Solaris. Also changes the autoconf build to prefer local
-zlib and libpng source, and cleans up some variable names. Patch by Raph
-Levien from 7.20. (sjpegc.c [1.4.2.2]: 2002/04/10 01:44:27 giles)
-
-</pre><h2><a name="7.05-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - The formula for dy6 in Type2 hflex1 instruction was wrong. Source
-Forge bug #530136 "hflex1 arguments misinterpreted". Thanks to Felix Pahl
-(fpahl) for spotting this. (gstype2.c [1.10.2.2]: 2002/03/20 20:22:15 igor)
- - Fix : Type2 interpreter state was wrongly backed up for sbw
-fallback. Source Forge bug "[ 541877 ] /invalidfont on Kozuka Mincho". Patch
-by Igor Melichev, backported from the development tree.
-(gstype2.c [1.10.2.3]: 2002/04/18 21:10:48 giles)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(ctype_.h [1.2.6.1],
-dirent_.h [1.2.6.1], dos_.h [1.2.6.1], errno_.h [1.2.6.1],
-fcntl_.h [1.3.6.1], gconf.c [1.2.6.1], gconf.h [1.2.6.1],
-gdebug.h [1.3.2.1], gdevabuf.c [1.3.6.1], gdevalph.c [1.2.6.1],
-gdevbbox.c [1.4.2.1], gdevbbox.h [1.2.6.1], gdevcmap.c [1.2.6.1],
-gdevcmap.h [1.2.6.1], gdevdbit.c [1.2.6.1], gdevddrw.c [1.2.6.1],
-gdevdflt.c [1.3.6.1], gdevdgbr.c [1.2.6.1], gdevdrop.c [1.3.6.1],
-gdevemap.c [1.2.6.1], gdevhit.c [1.2.6.1], gdevm1.c [1.2.6.1],
-gdevm16.c [1.2.6.1], gdevm2.c [1.2.6.1], gdevm24.c [1.2.6.1],
-gdevm32.c [1.2.6.1], gdevm4.c [1.2.6.1], gdevm8.c [1.2.6.1],
-gdevmem.c [1.2.6.1], gdevmem.h [1.3.6.1], gdevmpla.c [1.2.6.1],
-gdevmpla.h [1.2.6.1], gdevmr1.c [1.2.6.1], gdevmr2n.c [1.2.6.1],
-gdevmr8n.c [1.2.6.1], gdevmrop.h [1.3.6.1], gdevmrun.c [1.2.6.1],
-gdevmrun.h [1.2.6.1], gdevnfwd.c [1.3.6.1], gdevp14.c [1.4.2.1],
-gdevpipe.c [1.4.4.1], gdevplnx.c [1.2.6.1], gdevplnx.h [1.2.6.1],
-gdevppla.c [1.2.6.1], gdevppla.h [1.2.6.1], gdevprn.c [1.5.6.2],
-gdevprn.h [1.6.6.1], gdevprna.c [1.2.6.1], gdevprna.h [1.2.6.1],
-gdevpsf.h [1.10.2.1], gdevpsf1.c [1.9.2.1], gdevpsf2.c [1.15.2.1],
-gdevpsfm.c [1.5.2.1], gdevpsft.c [1.8.2.1], gdevpsfu.c [1.7.2.1],
-gdevpsfx.c [1.9.2.1], gdevrops.c [1.3.6.1], gdevtrac.c [1.2.6.1],
-gdevvec.c [1.12.2.2], gdevvec.h [1.7.2.1], gp.h [1.8.2.2],
-gp_dosfe.c [1.2.6.2], gp_dosfs.c [1.2.6.2], gp_getnv.c [1.2.6.1],
-gp_msdos.c [1.2.6.1], gp_nsync.c [1.2.6.1], gp_psync.c [1.2.6.1],
-gp_strdl.c [1.2.6.1], gp_unifn.c [1.2.6.2], gp_unifs.c [1.6.2.1],
-gpcheck.h [1.2.6.1], gpgetenv.h [1.2.6.1], gpmisc.c [1.9.4.1],
-gpmisc.h [1.2.6.1], gpsync.h [1.2.6.1], gsalloc.c [1.11.2.1],
-gsalloc.h [1.2.6.1], gsalpha.c [1.2.6.1], gsalpha.h [1.2.6.1],
-gsalphac.c [1.2.6.1], gsalphac.h [1.2.6.1], gsargs.c [1.4.2.1],
-gsargs.h [1.4.2.1], gsbitcom.c [1.1.4.1], gsbitmap.h [1.2.6.1],
-gsbitops.c [1.3.4.1], gsbitops.h [1.2.6.1], gsbittab.c [1.2.6.1],
-gsbittab.h [1.2.6.1], gsccode.h [1.4.6.1], gsccolor.h [1.2.6.1],
-gscdef.c [1.15.2.1], gscdefs.h [1.2.6.1], gscdevn.c [1.6.2.1],
-gscdevn.h [1.3.6.1], gschar.c [1.3.6.1], gschar.h [1.3.6.1],
-gschar0.c [1.3.4.1], gscie.c [1.4.2.1], gscie.h [1.3.2.1],
-gsciemap.c [1.6.2.1], gscindex.h [1.2.6.1], gsclipsr.c [1.2.6.1],
-gsclipsr.h [1.2.6.1], gscolor.c [1.5.2.1], gscolor.h [1.3.6.1],
-gscolor1.c [1.4.2.1], gscolor1.h [1.2.6.1], gscolor2.c [1.6.6.1],
-gscolor2.h [1.3.6.1], gscolor3.c [1.4.6.1], gscolor3.h [1.2.6.1],
-gscompt.h [1.2.6.1], gscoord.c [1.5.6.1], gscoord.h [1.2.6.1],
-gscparam.c [1.7.2.1], gscpixel.c [1.3.6.1], gscpixel.h [1.2.6.1],
-gscpm.h [1.2.6.1], gscrd.c [1.2.6.1], gscrd.h [1.2.6.1], gscrdp.c [1.2.6.1],
-gscrdp.h [1.2.6.1], gscrypt1.c [1.2.6.1], gscrypt1.h [1.2.6.1],
-gscscie.c [1.4.2.1], gscsel.h [1.2.6.1], gscsepnm.h [1.2.6.1],
-gscsepr.c [1.12.2.2], gscsepr.h [1.4.6.1], gscspace.c [1.4.6.1],
-gscspace.h [1.8.2.1], gscssub.c [1.3.2.1], gscssub.h [1.2.6.1],
-gsdcolor.h [1.3.6.1], gsdevice.c [1.11.2.1], gsdevice.h [1.3.6.1],
-gsdevmem.c [1.2.6.1], gsdfilt.c [1.3.2.1], gsdfilt.h [1.2.2.1],
-gsdparam.c [1.4.6.2], gsdpnext.h [1.2.6.1], gsdps.c [1.2.6.1],
-gsdps.h [1.2.6.1], gsdps1.c [1.2.6.1], gsdsrc.c [1.2.6.1],
-gsdsrc.h [1.3.6.1], gserror.h [1.2.6.1], gserrors.h [1.2.6.1],
-gsexit.h [1.4.2.1], gsfcid.c [1.5.4.1], gsfcmap.c [1.14.2.1],
-gsfcmap.h [1.4.6.1], gsfemu.c [1.2.6.1], gsflip.c [1.2.6.1],
-gsflip.h [1.2.6.1], gsfname.c [1.2.6.1], gsfname.h [1.2.6.1],
-gsfont.c [1.4.4.1], gsfont.h [1.2.6.1], gsfont0.c [1.2.6.1],
-gsfunc.c [1.4.6.1], gsfunc.h [1.4.6.1], gsfunc0.c [1.5.4.1],
-gsfunc0.h [1.2.6.1], gsfunc3.c [1.4.6.1], gsfunc3.h [1.2.6.1],
-gsfunc4.c [1.7.2.1], gsfunc4.h [1.2.6.1], gsgc.h [1.3.2.1],
-gshsb.c [1.2.6.1], gshsb.h [1.2.6.1], gsht.c [1.2.6.1], gsht.h [1.2.6.1],
-gsht1.c [1.3.2.1], gsht1.h [1.2.6.1], gshtscr.c [1.6.2.1],
-gshtx.c [1.2.6.1], gshtx.h [1.2.6.1], gsicc.c [1.5.2.1], gsicc.h [1.3.2.1],
-gsimage.c [1.4.2.1], gsimage.h [1.2.6.1], gsimpath.c [1.2.6.1],
-gsinit.c [1.3.2.1]: 2002/02/22 19:45:55 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(gsio.h [1.5.2.1],
-gsiodev.c [1.5.2.1], gsiodevs.c [1.2.6.1], gsipar3x.h [1.3.6.1],
-gsiparam.h [1.4.6.1], gsiparm2.h [1.2.6.1], gsiparm3.h [1.4.6.1],
-gsiparm4.h [1.2.6.1], gsistate.c [1.4.6.1], gsjconf.h [1.2.6.1],
-gslib.c [1.5.2.1], gslib.h [1.2.6.1], gsline.c [1.2.6.1],
-gsline.h [1.2.6.1], gslparam.h [1.2.6.1], gsmalloc.c [1.3.6.1],
-gsmalloc.h [1.2.6.1], gsmatrix.c [1.2.6.1], gsmatrix.h [1.2.6.1],
-gsmdebug.h [1.3.2.1], gsmemlok.c [1.3.6.1], gsmemlok.h [1.2.6.1],
-gsmemory.c [1.4.2.1], gsmemory.h [1.3.2.1], gsmemraw.h [1.2.6.1],
-gsmemret.c [1.2.6.1], gsmemret.h [1.2.6.1], gsmisc.c [1.12.2.1],
-gsnogc.c [1.7.2.1], gsnogc.h [1.2.6.1], gsnorop.c [1.2.6.1],
-gsnotify.c [1.2.6.1], gsnotify.h [1.2.6.1], gspaint.c [1.2.6.1],
-gspaint.h [1.2.6.1], gsparam.c [1.4.6.1], gsparam.h [1.8.4.1],
-gsparam2.c [1.2.6.1], gsparams.c [1.2.6.1], gsparams.h [1.2.6.1],
-gsparamx.c [1.4.2.1], gsparamx.h [1.3.6.1], gspath.c [1.2.6.1],
-gspath.h [1.2.6.1], gspath1.c [1.3.4.1], gspath2.h [1.2.6.1],
-gspcolor.c [1.4.6.1], gspcolor.h [1.2.6.1], gspenum.h [1.2.6.1],
-gsptype1.c [1.3.2.1], gsptype1.h [1.2.6.1], gsptype2.c [1.5.2.1],
-gsptype2.h [1.4.2.1], gsrect.h [1.2.6.1], gsrefct.h [1.2.6.1],
-gsrop.c [1.2.6.1], gsrop.h [1.2.6.1], gsropc.c [1.2.6.1],
-gsropc.h [1.2.6.1], gsropt.h [1.4.2.1], gsroptab.c [1.2.6.1],
-gsshade.c [1.4.2.1], gsshade.h [1.3.6.1], gsstate.c [1.11.2.1],
-gsstate.h [1.2.6.1], gsstruct.h [1.8.2.1], gsstype.h [1.2.6.1],
-gstext.c [1.6.2.1], gstext.h [1.3.6.1], gstparam.h [1.7.6.1],
-gstrans.c [1.13.2.1], gstrans.h [1.6.6.1], gstrap.c [1.3.6.1],
-gstrap.h [1.3.6.1], gstype1.c [1.6.4.1], gstype1.h [1.2.6.1],
-gstype2.c [1.10.2.1], gstype42.c [1.12.2.1], gstypes.h [1.3.2.1],
-gsuid.h [1.2.6.1], gsutil.c [1.4.6.2], gsutil.h [1.3.6.2],
-gsxfont.h [1.2.6.1], gx.h [1.2.6.1], gxacpath.c [1.3.6.1],
-gxalloc.h [1.6.2.1], gxalpha.h [1.2.6.1], gxarith.h [1.2.6.1],
-gxband.h [1.2.6.1], gxbcache.c [1.2.6.1], gxbcache.h [1.2.6.1],
-gxbitfmt.h [1.2.6.1], gxbitmap.h [1.2.6.1], gxbitops.h [1.2.6.1],
-gxblend.c [1.2.2.1], gxblend.h [1.1.2.1], gxccache.c [1.5.2.1],
-gxccman.c [1.2.6.1], gxcdevn.h [1.2.6.1], gxchar.c [1.5.2.2],
-gxchar.h [1.2.6.1], gxchrout.c [1.2.6.1], gxchrout.h [1.2.6.1],
-gxcht.c [1.3.2.1], gxcid.h [1.3.6.1], gxcie.h [1.3.2.1],
-gxcindex.h [1.2.6.1], gxclbits.c [1.4.4.1], gxcldev.h [1.4.4.1],
-gxclfile.c [1.3.2.1], gxclimag.c [1.3.2.1], gxclio.h [1.2.6.1],
-gxclip.c [1.4.2.1], gxclip.h [1.2.6.1], gxclip2.c [1.3.6.1],
-gxclip2.h [1.2.6.1], gxclipm.c [1.3.6.1], gxclipm.h [1.2.6.1],
-gxclipsr.h [1.2.6.1], gxclist.c [1.3.6.1], gxclist.h [1.2.6.1],
-gxcllzw.c [1.2.6.1], gxclmem.c [1.2.6.1], gxclmem.h [1.2.6.1],
-gxclpage.c [1.2.6.1], gxclpage.h [1.2.6.1], gxclpath.c [1.9.2.1],
-gxclpath.h [1.6.6.1], gxclrast.c [1.9.2.1], gxclread.c [1.3.4.1],
-gxclrect.c [1.2.6.1], gxclutil.c [1.5.2.1], gxclzlib.c [1.2.6.1],
-gxcmap.c [1.3.6.1], gxcmap.h [1.2.6.1], gxcolor2.h [1.4.6.1],
-gxcomp.h [1.2.6.1], gxcoord.h [1.2.6.1], gxcpath.c [1.3.6.1],
-gxcpath.h [1.2.6.1], gxcspace.h [1.4.6.1], gxctable.c [1.3.6.1],
-gxctable.h [1.2.6.1], gxcvalue.h [1.2.6.1], gxdcconv.c [1.3.6.1],
-gxdcconv.h [1.2.6.1], gxdcolor.c [1.3.6.1], gxdcolor.h [1.3.6.1],
-gxdda.h [1.2.6.1], gxdevbuf.h [1.2.6.1], gxdevcli.h [1.5.2.2],
-gxdevice.h [1.4.6.2], gxdevmem.h [1.2.6.1], gxdevrop.h [1.2.6.1],
-gxdht.h [1.4.6.1], gxdhtres.h [1.2.6.1], gxdither.c [1.2.6.1],
-gxdither.h [1.2.6.1], gxfarith.h [1.3.6.1], gxfcache.h [1.2.6.1],
-gxfcid.h [1.6.6.1], gxfcmap.h [1.8.2.1], gxfill.c [1.8.2.1],
-gxfixed.h [1.3.4.1], gxfmap.h [1.3.6.1], gxfont.h [1.3.4.1],
-gxfont0.h [1.3.6.1], gxfont1.h [1.5.4.1], gxfont42.h [1.4.6.1],
-gxfrac.h [1.3.4.1], gxftype.h [1.2.6.1], gxfunc.h [1.3.6.1],
-gxgetbit.h [1.2.6.1], gxhint1.c [1.2.6.1], gxhint2.c [1.2.6.1],
-gxhint3.c [1.3.2.1], gxht.c [1.2.6.1], gxht.h [1.2.6.1],
-gxhtbit.c [1.3.6.1], gxhttile.h [1.2.6.1], gxhttype.h [1.2.6.1],
-gxi12bit.c [1.2.6.1], gxiclass.h [1.2.6.1], gxicolor.c [1.3.2.1],
-gxidata.c [1.4.6.1], gxifast.c [1.4.2.1], gximag3x.c [1.7.6.1],
-gximag3x.h [1.3.6.1], gximage.c [1.2.6.1], gximage.h [1.2.6.1],
-gximage1.c [1.5.6.1], gximage2.c [1.2.6.1], gximage3.c [1.6.6.1],
-gximage3.h [1.4.6.1], gximage4.c [1.3.6.1], gximono.c [1.2.6.1],
-gxino12b.c [1.2.6.1], gxiodev.h [1.2.6.1], gxiparam.h [1.2.6.1],
-gxipixel.c [1.2.6.1], gxiscale.c [1.2.6.2], gxistate.h [1.6.6.1],
-gxline.h [1.2.6.1], gxlum.h [1.2.6.1], gxmatrix.h [1.4.6.1],
-gxmclip.c [1.2.6.1], gxmclip.h [1.2.6.1], gxobj.h [1.2.6.1],
-gxop1.h [1.2.6.1], gxp1fill.c [1.2.6.1], gxp1impl.h [1.2.6.1],
-gxpageq.c [1.2.6.1], gxpageq.h [1.2.6.1], gxpaint.c [1.2.6.1],
-gxpaint.h [1.2.6.1], gxpath.c [1.2.6.1], gxpath.h [1.2.6.1],
-gxpath2.c [1.2.6.1], gxpcache.h [1.2.6.1], gxpcmap.c [1.3.6.1],
-gxpcolor.h [1.2.6.1], gxpcopy.c [1.3.6.1], gxpdash.c [1.2.6.1],
-gxpflat.c [1.2.6.1], gxropc.h [1.2.6.1], gxrplane.h [1.2.6.1],
-gxsample.c [1.2.6.1], gxsample.h [1.2.6.1], gxshade.c [1.6.2.1],
-gxshade.h [1.4.2.1], gxshade1.c [1.9.2.1], gxshade4.c [1.6.2.1],
-gxshade4.h [1.2.6.1], gxshade6.c [1.3.6.1], gxstate.h [1.2.6.1],
-gxstdio.h [1.2.6.1], gxstroke.c [1.2.6.1], gxsync.c [1.2.6.1],
-gxsync.h [1.2.6.1], gxtext.h [1.7.2.1], gxtmap.h [1.2.6.1],
-gxttf.h [1.2.6.1], gxtype1.c [1.8.4.1], gxtype1.h [1.5.4.1],
-gxxfont.h [1.2.6.1], gzacpath.h [1.2.6.1], gzcpath.h [1.2.6.1],
-gzht.h [1.4.4.1], gzline.h [1.2.6.1], gzpath.h [1.3.6.1],
-gzstate.h [1.5.2.1], jerror_.h [1.2.6.1], malloc_.h [1.2.6.1],
-math_.h [1.2.6.1], memory_.h [1.2.6.1], pipe_.h [1.2.6.1],
-time_.h [1.3.2.1], unistd_.h [1.4.2.1], vmsmath.h [1.2.6.1],
-windows_.h [1.2.6.1]: 2002/02/22 19:45:58 ray)
-
-gs_cjk project : gdevpsfm.c did not know about CODE_VALUE_NOTDEF which was
-introduced by MDRC. Fix by Suzuki Toshiya. Also Fix in HEAD (revision 1.8
--&gt; 1.9) by L. Peter Deutsch is included. (gdevpsfm.c [1.5.2.2]:
-2002/04/02 13:24:12 mpsuzuki)
-
-gs_cjk project : handle "cidchar" map correctly. Fix by Suzuki Toshiya.
-(gsfcmap.c [1.14.2.2]: 2002/04/02 13:27:37 mpsuzuki)
-
-gs_cjk project : bugfix for nested FMapType4/5 OCF. Fix by Suzuki Toshiya.
-(gschar0.c [1.3.4.2]: 2002/04/02 13:29:35 mpsuzuki)
-
-gs_cjk project : bugfix for invalid metrics calculation for CIDFontType2.
-Fix by Masatake Yamato. (gstype42.c [1.12.2.2]: 2002/04/02 13:33:06
-mpsuzuki)
-
-gs_cjk project : cshow bug fix for CIDFontType2. Fix by Hideyuki Suzuki.
-(gxchar.c [1.5.2.3]: 2002/04/02 13:33:44 mpsuzuki)
-
-gs_cjk project: glyph cache bug patch for vertical writing mode. Fallback
-against inconsistency in double checking of glyph cache. The inconsistency
-causes misplacement of CJK glyph in vertical writing mode. Fix by Hideo
-Saito. (gxchar.c [1.5.2.4], gxchar.h [1.2.6.2]: 2002/04/02 13:35:00
-mpsuzuki)
-
-gs_cjk project : glyphshow in vertical writing mode bug patch. Originally,
-FontBBox_as_Metrics2 was set when charcode string is decoded into CIDs.
-"glyphshow" bypasses such decoding procedure, thus FontBBox_as_Metrics2 is
-not set. Fix by Masatake Yamato. (gstext.c [1.6.2.2]: 2002/04/02 13:42:10
-mpsuzuki)
-
-gs-cjk project : move definition "cc" to the scope that it is used. Fix by
-Suzuki Toshiya. (gxchar.c [1.5.2.5]: 2002/04/02 13:52:29 mpsuzuki)
-
-Add multiple inclusion protection to headers files which were missing it.
-(gsdfilt.h [1.2.2.2], jerror_.h [1.2.6.2]: 2002/04/10 09:13:11 giles)
-
-mark this as a GNU version and bump the release number (gscdef.c [1.15.2.2]:
-2002/04/15 05:47:56 giles)
-
-disable the new auto-bold and auto-slant functions for non-cid fonts,
-pending improved detection of when this is necessary. (gscdef.c [1.15.2.3]:
-2002/04/16 06:11:29 giles)
-
-revert bad licensing change accidentally included in the last commit.
-(gscdef.c [1.15.2.4]: 2002/04/16 06:12:42 giles)
-
-Committing in . Back-ports from the main stream such that OpenVMS is happy
-Modified Files: Tag: GS_7_0X gs/src/devs.mak gs/src/gschar0.c
-gs/src/gserrors.h gs/src/imainarg.c
-----------------------------------------------------------------------
-(gschar0.c [1.3.4.3], gserrors.h [1.2.6.2]: 2002/04/18 09:58:45 joukj)
-
-</pre><h2><a name="7.05-Other"></a>Other</h2><pre>
-
-Fixes problems:
- - Fixes the gdevx.o command line in the case when AC_PATH_X sets
-x_includes to the empty string. Fixes SF #530429. (Makefile.in [1.1.4.4],
-configure.ac [1.4.4.4]: 2002/03/28 19:35:58 raph)
- - Uses a default 'src' setting for PSRCDIR in the autoconf build
-with a shared libpng, as we do with zlib, preventing compiler confusion from
-empty -I lines. Partial fix for SF bug #514898. (configure.ac [1.4.4.5]:
-2002/03/28 20:37:33 giles)
- - improves X11 path settings in the autoconf build. We use
-AC_PATH_XTRA instead of the previous "is it null" hack with AC_PATH_X. The
-new macro also defines some additional libraries that may need to be
-included. We currently don't use this information. (Makefile.in [1.1.4.5],
-configure.ac [1.4.4.6]: 2002/03/28 20:41:25 giles)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(Makefile.in [1.1.4.3],
-gp_mswin.h [1.4.2.1], gsdll.h [1.3.2.1], gsdllos2.h [1.2.6.1],
-gsdllwin.h [1.3.2.1]: 2002/02/22 19:45:55 ray)
-
-Update banner to the new format common to all releases. References file
-LICENSE. Note that the $Id: line is not altered by this change.
-(gsjmorec.h [1.3.4.1],
-gspmdrv.h [1.2.6.1], iutilasm.asm [1.2.6.1]: 2002/02/22 19:45:58 ray)
-
-Replace Windows icons with new versions that include 48x48 pixel and 32-bit
-versions for Windows XP. Change the 16x16 pixel icons to use the full 'g'
-instead of just the head. Use a restricted icon gswin16.ico for WinZip SE
-which can't handle the new icon. (gswin.icx [1.1.2.1]: 2002/03/30 01:33:03
-ghostgum)
-
-Replace Windows icons with new versions that include 48x48 pixel and 32-bit
-versions for Windows XP. Change the 16x16 pixel icons to use the full 'g'
-instead of just the head. Use a restricted icon gswin16.ico for WinZip SE
-which can't handle the new icon. (gswin16.icx [1.1.2.1]: 2002/03/30 01:34:00
-ghostgum)
-
-Propagate autoconf build updates from HEAD: Allow shared jpeg since
-non-baseline dctencoded data is now vanishingly rare. Prefer local source of
-libjpeg, libpng and zlib to shared versions if it's available. Add the
-standard gcc cflags only if we're using gcc and it don't error on them. Also
-look for current-version-named third-party libraries to save a step.
-(Makefile.in [1.1.4.6], configure.ac [1.4.4.7]: 2002/04/09 21:18:27 giles)
-
-Add multiple inclusion protection to headers files which were missing it.
-(gsdll.h [1.3.2.2]: 2002/04/10 09:13:11 giles)
-
-adds missing Id: lines. (gp_mac.h [1.1.4.1], macsysstat.h [1.1.4.1],
-macsystypes.h [1.1.4.1], vms_x_fix.h [1.1.2.1]: 2002/04/10 09:33:26 giles)
-
-Adds the LICENSE file, containing a copy of the GNU GPL.
-(LICENSE [1.1.2.1]: 2002/04/15 05:38:45 giles)
-
-Upgrade icclib to (proposed) 2.01 release. Patch has been sent to Graeme
-Gill for consideration. (icclib/icc.c [1.6.2.1], icclib/icc.h [1.4.2.1],
-icclib/icc9809.h [1.2.2.1]: 2002/04/18 18:20:16 raph)
-
-Removes trailing comma in enum. (icclib/icc.h [1.4.2.2]: 2002/04/18 20:29:14
-raph)
-
-Update libpng version numbers to the latest 1.2.2. (configure.ac [1.4.4.8]:
-2002/04/19 06:32:22 giles)
-
-Add the 'stp' driver from the gimp-print project, and compile it in by
-default from the autoconf build if libgimprint is found.
-(Makefile.in [1.1.4.7], configure.ac [1.4.4.9]: 2002/04/19 22:23:09 giles)
-
-Update to the latest cvs version of ijs. Source files now properly include
-the MIT license header. (ijs/Makefile.in [1.1.2.2], ijs/README [1.1.2.2],
-ijs/ijs.c [1.1.2.2], ijs/ijs.h [1.1.2.2], ijs/ijs_client.c [1.1.2.2],
-ijs/ijs_client.h [1.1.2.2], ijs/ijs_client_example.c [1.1.2.2],
-ijs/ijs_exec_unix.c [1.1.2.2], ijs/ijs_exec_win.c [1.1.2.2],
-ijs/ijs_server.c [1.1.2.2], ijs/ijs_server.h [1.1.2.2],
-ijs/ijs_server_example.c [1.1.2.2], ijs/ijs_spec.sgml [1.1.2.2],
-ijs/unistd_.h [1.1.2.2]: 2002/04/22 17:53:36 giles)
-
-update icclib to the 2.02 release (icclib/Licence.txt [1.1.2.1],
-icclib/Readme.txt [1.1.2.1], icclib/icc.c [1.6.2.2], icclib/icc.h [1.4.2.3]:
-2002/04/22 18:17:47 giles)
-
-Update the ijs source to the latest 0.34 release.
-(ijs/Makefile.in [1.1.2.3], ijs/configure.in [1.1.2.2],
-ijs/ijs_spec.pdf [1.1.2.2], ijs/ijs_spec.sgml [1.1.2.3]: 2002/04/23 01:23:33
-giles)
-
-Add new license header to some files.
-(gp_mac.h [1.1.4.2], macsysstat.h [1.1.4.2], macsystypes.h [1.1.4.2]:
-2002/04/23 01:32:26 giles)
-
-<hr>
-
-<h1><a name="Version7.04"></a>Version 7.04 (2002-01-30)</h1>
-
-<p>
-This is a security update of Ghostscript. A number of maintenance
-fixes and new features have been added.
-
-<p> Major changes include:
-
-<ul>
-<li>A rather serious security hole, where PostScript code could cause
-arbitrary commands to be executed, has been patched.
-
-<li>There is also a new -DPARANOIDSAFER option, which locks down
-reading of arbitrary files.
-
-<li>This release integrates the IJS driver, which makes it much easier
-to add and upgrade printer drivers without needing to recompile
-Ghostscript.
-
-<li>There is a configure script for automatically configuring the
-makefile on Unix platforms. Those who enjoy the fun of hand-editing
-the makefile are still welcome to do so.
-
-<li>The usual bug fixes.
-
-</ul>
-
-<p>
-The following SourceForge bug numbers are currently open: (todo)
-
-<h3><a name="7.04_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version. Authors
-of drivers with potential security implications are encouraged to review
-the security changes, however.
-
-<pre>
-
-
-
-<h2><a name="7.04-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Improve security in a (mostly) backward compatible fashion adding
-more flexible file access paths (PermitFile...) as user paramters and adding
-the facility to return to NOSAFER mode after running jobs (files/procedures)
-in SAFER mode. Also adds a -dPARANOIDSAFER command line option that only
-allows reading files from %stdin, paths specified on LIBPATH, FONTPATH and
-/GenericResourceDir or /FontResourceDir. Improve security for device related
-access to the file system and to pipes by allowing the dangerous parameters
-to be locked (for example, OutputFile). The locking is performed after
-command line parameters are established. This should address SF bug #474582
-and eliminate the need for the RedHat PARANOIDSAFER patch.
-(doc/Language.htm [1.34.2.1], doc/Use.htm [1.33.2.1]: 2002/01/25 06:33:08
-rayjj)
-
-Removes the admonishment to update PVERSION and JVERSION from the Makefile
-documentation. The build dependencies were removed earlier to reduce user
-confusion; they're currently vestigial in expectation of future build
-requirements. This is the second half of the fix for sf bug #457838.
-(doc/Make.htm [1.36.2.1]: 2001/10/24 22:29:29 giles)
-
-Adds a link to the v7.xx history files. (doc/News.htm [1.90.2.2]: 2001/10/24
-22:32:18 giles)
-
-Adds basic autoconf support to the build system. (doc/Make.htm [1.36.2.2],
-doc/Release.htm [1.40.2.1]: 2002/01/24 01:30:56 giles)
-
-Adds a new documentation section on display devices along with a basic
-description of the x11 devices. (doc/Devices.htm [1.34.2.1]: 2002/01/30
-07:36:09 giles)
-
-Minor change from 'search' to 'filenameforall' in discussion about the
-wildcard characters in PermitFile... strings. (doc/Language.htm [1.34.2.2]:
-2002/01/31 17:36:56 rayjj)
-
-Version number upgrade and minor documentation patch in preparation for 7.04
-release. (doc/API.htm [1.11.2.1], doc/Bug-form.htm [1.23.2.1],
-doc/Bug-info.htm [1.20.2.1], doc/C-style.htm [1.21.2.1],
-doc/Changes.htm [1.28.2.2], doc/Commprod.htm [1.15.2.1],
-doc/Copying.htm [1.13.2.1], doc/Current.htm [1.13.2.1],
-doc/DLL.htm [1.15.2.1], doc/Develop.htm [1.47.2.1],
-doc/Devices.htm [1.34.2.2], doc/Drivers.htm [1.21.2.1],
-doc/Fonts.htm [1.22.2.1], doc/Helpers.htm [1.17.2.1],
-doc/History1.htm [1.13.2.1], doc/History2.htm [1.13.2.1],
-doc/History3.htm [1.13.2.1], doc/History4.htm [1.13.2.1],
-doc/History5.htm [1.15.2.1], doc/History6.htm [1.30.2.1],
-doc/History7.htm [1.5.2.2], doc/Htmstyle.htm [1.18.2.1],
-doc/Install.htm [1.26.2.1], doc/Issues.htm [1.15.2.1],
-doc/Language.htm [1.34.2.3], doc/Lib.htm [1.14.2.1],
-doc/Maintain.htm [1.23.2.1], doc/Make.htm [1.36.2.3],
-doc/New-user.htm [1.30.2.1], doc/News.htm [1.90.2.3], doc/PUBLIC [1.5.2.1],
-doc/Projects.htm [1.33.2.1], doc/Ps-style.htm [1.13.2.1],
-doc/Ps2epsi.htm [1.15.2.1], doc/Ps2pdf.htm [1.32.2.1],
-doc/Psfiles.htm [1.22.2.1], doc/README [1.12.2.1],
-doc/Readme.htm [1.31.2.1], doc/Release.htm [1.40.2.2],
-doc/Source.htm [1.13.2.1], doc/Tester.htm [1.14.2.1],
-doc/Unix-lpr.htm [1.13.2.1], doc/Use.htm [1.33.2.2],
-doc/Xfonts.htm [1.13.2.1], doc/gs-vms.hlp [1.12.2.1],
-man/dvipdf.1 [1.10.2.1], man/font2c.1 [1.10.2.1], man/gs.1 [1.10.2.1],
-man/gslp.1 [1.10.2.1], man/gsnd.1 [1.10.2.1], man/pdf2dsc.1 [1.10.2.1],
-man/pdf2ps.1 [1.12.2.1], man/pdfopt.1 [1.10.2.1], man/pf2afm.1 [1.10.2.1],
-man/pfbtopfa.1 [1.11.2.1], man/printafm.1 [1.10.2.1],
-man/ps2ascii.1 [1.10.2.1], man/ps2epsi.1 [1.10.2.1],
-man/ps2pdf.1 [1.14.2.1], man/ps2pdfwr.1 [1.13.2.1], man/ps2ps.1 [1.17.2.1],
-man/wftopfa.1 [1.10.2.1]: 2002/02/01 03:25:43 raph)
-
-Adds IJS driver to Ghostscript. Includes complete IJS version 0.33
-distribution. Also includes autoconf patch by Ralph Giles.
-(doc/Develop.htm [1.47.2.2], doc/Devices.htm [1.34.2.3]: 2002/02/01 03:30:14
-raph)
-
-</pre><h2><a name="7.04-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - the icclib makefile comments were out of date; the build rule
-referred to gs_stdio_h, which no longer exists; the build rule for gsicc.o
-referred to icc_h, which was not defined at that point. patch originally by
-lpd, propagated from the development branch. (gs.mak [1.5.2.1],
-icclib.mak [1.3.2.1], lib.mak [1.53.2.1]: 2001/10/26 00:15:30 giles)
- - Fix for #474544. Corrects inability to convert valid DeviceN tint
-transform functions into type 4 functions. Valid operator names were not
-being recognized unless the tint transform function had been bound. One of
-two fixes required for this problem. Customer #710. (int.mak [1.50.2.1]:
-2002/01/17 02:59:35 dancoby)
- - Fix for #474544. This is the second of two fixes required for this
-problem. This fix creates a type 0 function which implements a "color cube"
-for those tint transform functions which cannot be converted into a type 4
-function. Customer #710. Note: There is one more revision planned for this
-effort. This revision will make the buildcolorcube operator into a more
-general buildsampledfunction. This will allow its use in other situations.
-(int.mak [1.50.2.2]: 2002/01/17 06:57:55 dancoby)
-
-Version number upgrade and minor documentation patch in preparation for 7.04
-release. (all-arch.mak [1.9.2.1], bcwin32.mak [1.12.2.1],
-dvx-gcc.mak [1.12.2.1], libpng.mak [1.10.2.1], macos-mcp.mak [1.3.2.1],
-msvc32.mak [1.20.2.1], msvclib.mak [1.16.2.1], openvms.mak [1.16.2.1],
-os2.mak [1.19.2.1], ugcclib.mak [1.13.2.1], unix-gcc.mak [1.23.2.1],
-unixansi.mak [1.16.2.1], version.mak [1.36.2.1], watc.mak [1.16.2.1],
-watclib.mak [1.13.2.1], watcw32.mak [1.13.2.1]: 2002/02/01 03:25:45 raph)
-
-Adds IJS driver to Ghostscript. Includes complete IJS version 0.33
-distribution. Also includes autoconf patch by Ralph Giles.
-(bcwin32.mak [1.12.2.2], devs.mak [1.47.2.1], dvx-gcc.mak [1.12.2.2],
-gs.mak [1.5.2.2], ijs.mak [1.2.2.1], macos-mcp.mak [1.3.2.2],
-msvc32.mak [1.20.2.2], openvms.mak [1.16.2.2], os2.mak [1.19.2.2],
-ugcclib.mak [1.13.2.2], unix-gcc.mak [1.23.2.2], unixansi.mak [1.16.2.2],
-watclib.mak [1.13.2.2], watcw32.mak [1.13.2.2], wctail.mak [1.3.2.1],
-winlib.mak [1.12.2.1]: 2002/02/01 03:30:13 raph)
-
-</pre><h2><a name="7.04-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Incorporate patch from Tim Waugh of RedHat to allow ps2pdfwr to
-correctly process files with spaces in their names. Peter's earlier fix
-missed a few enclosing "'s for output files. Fixes Sourceforge bug #505338.
-(lib/ps2pdfwr [1.6.2.1]: 2002/01/22 21:34:04 jackiem)
- - Improve security in a (mostly) backward compatible fashion adding
-more flexible file access paths (PermitFile...) as user paramters and adding
-the facility to return to NOSAFER mode after running jobs (files/procedures)
-in SAFER mode. Also adds a -dPARANOIDSAFER command line option that only
-allows reading files from %stdin, paths specified on LIBPATH, FONTPATH and
-/GenericResourceDir or /FontResourceDir. Improve security for device related
-access to the file system and to pipes by allowing the dangerous parameters
-to be locked (for example, OutputFile). The locking is performed after
-command line parameters are established. This should address SF bug #474582
-and eliminate the need for the RedHat PARANOIDSAFER patch.
-(gp_macio.c [1.2.4.1], gp_ntfs.c [1.5.2.1], gp_os2.c [1.10.2.1],
-gp_vms.c [1.7.2.1]: 2002/01/25 06:33:09 rayjj)
-
-Replaces references of 'FontManagerLib' with 'FontManager' to match the
-Universal Headers stub shipped with Metrowerks CW 6.3.
-(macgenmcpxml.sh [1.1.4.1]: 2001/11/02 02:31:21 giles)
-
-Disables the 'unused arguments' warning with the Metrowerks Codewarrior 6.3
-Compiler. We have many of these by design and it's responsible for a large
-number of warnings on that platform. (macgenmcpxml.sh [1.1.4.2]: 2001/11/02
-02:33:21 giles)
-
-</pre><h2><a name="7.04-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - Improve security in a (mostly) backward compatible fashion adding
-more flexible file access paths (PermitFile...) as user paramters and adding
-the facility to return to NOSAFER mode after running jobs (files/procedures)
-in SAFER mode. Also adds a -dPARANOIDSAFER command line option that only
-allows reading files from %stdin, paths specified on LIBPATH, FONTPATH and
-/GenericResourceDir or /FontResourceDir. Improve security for device related
-access to the file system and to pipes by allowing the dangerous parameters
-to be locked (for example, OutputFile). The locking is performed after
-command line parameters are established. This should address SF bug #474582
-and eliminate the need for the RedHat PARANOIDSAFER patch.
-(gdevcgm.c [1.2.6.1], gdevmac.c [1.1.4.1]: 2002/01/25 06:33:09 rayjj)
- - Removes broken x11alpha driver, and installs an alias for x11
-under that name, with default parameters changed to support antialiasing.
-Fixes SourceForge bug #505692. (gdevx.c [1.8.2.1], gdevxalt.c [1.2.6.1]:
-2002/01/30 20:09:26 raph)
-
-Don't allocate memory or call callbacks when display device does not have a
-callback function. (gdevdsp.c [1.5.2.1]: 2001/12/18 07:09:17 ghostgum)
-
-Adds IJS driver to Ghostscript. Includes complete IJS version 0.33
-distribution. Also includes autoconf patch by Ralph Giles.
-(gdevijs.c [1.1.2.1]: 2002/02/01 03:30:13 raph)
-
-</pre><h2><a name="7.04-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - T* applied the leading horizontally when using a font in vertical
-writing mode, but the PDF Reference says the leading is always applied
-vertically. (lib/pdf_ops.ps [1.17.2.1]: 2001/12/22 07:34:23 masata-y)
-
-</pre><h2><a name="7.04-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Some gsapi functions were not passing the user_errors argument to
-the corresponding gs_main_run_string_* functions, and instead, these
-functions were passing 0. (iapi.c [1.1.2.1]: 2002/01/03 20:20:38 jackiem)
- - ifont.h requires gsmatix.h and gxfont.h for clean compilation. Not
-having them was a warning on gcc, but an error on Borland CBuilder 5.5.
-Thanks to Rod Webster for the fix. Closes Sourceforge bug #474246.
-(iccfont.c [1.2.6.1]: 2002/01/09 21:52:04 giles)
- - ReleaseDC was missed in Windows client applications. SourceForge
-bug #499903. (dwmain.c [1.6.2.1], dwmainc.c [1.8.2.1]: 2002/01/16 21:07:16
-igorm)
- - Fix for #474544. Corrects inability to convert valid DeviceN tint
-transform functions into type 4 functions. Valid operator names were not
-being recognized unless the tint transform function had been bound. One of
-two fixes required for this problem. Customer #710. (ifunc.h [1.3.6.1],
-zfunc.c [1.6.6.1], zfunc0.c [1.3.6.1], zfunc3.c [1.2.6.1],
-zfunc4.c [1.7.4.1], zshade.c [1.4.6.1]: 2002/01/17 02:59:35 dancoby)
- - Fix for #474544. This is the second of two fixes required for this
-problem. This fix creates a type 0 function which implements a "color cube"
-for those tint transform functions which cannot be converted into a type 4
-function. Customer #710. Note: There is one more revision planned for this
-effort. This revision will make the buildcolorcube operator into a more
-general buildsampledfunction. This will allow its use in other situations.
-(ifunc.h [1.3.6.2], lib/gs_lev2.ps [1.7.2.1], zccube.c [1.1.2.1],
-zcsdevn.c [1.5.2.1], zfunc.c [1.6.6.2]: 2002/01/17 06:57:55 dancoby)
- - Improve security in a (mostly) backward compatible fashion adding
-more flexible file access paths (PermitFile...) as user paramters and adding
-the facility to return to NOSAFER mode after running jobs (files/procedures)
-in SAFER mode. Also adds a -dPARANOIDSAFER command line option that only
-allows reading files from %stdin, paths specified on LIBPATH, FONTPATH and
-/GenericResourceDir or /FontResourceDir. Improve security for device related
-access to the file system and to pipes by allowing the dangerous parameters
-to be locked (for example, OutputFile). The locking is performed after
-command line parameters are established. This should address SF bug #474582
-and eliminate the need for the RedHat PARANOIDSAFER patch.
-(icontext.c [1.6.6.1], icstate.h [1.4.6.1], imainarg.c [1.13.2.1],
-iutil2.c [1.2.6.1], iutil2.h [1.2.6.1], lib/gs_fonts.ps [1.13.2.1],
-lib/gs_init.ps [1.40.2.2], lib/gs_lev2.ps [1.7.2.2],
-lib/gs_setpd.ps [1.8.2.1], zcontrol.c [1.3.6.1], zdevice.c [1.3.6.1],
-zdevice2.c [1.4.2.1], zfile.c [1.11.2.1], zusparam.c [1.3.6.1],
-zvmem.c [1.3.2.1]: 2002/01/25 06:33:09 rayjj)
- - .locksafe is not supposed to change the PermitFileWriting and
-PermitFileControl paths (was setting them to empty arrays).
-(lib/gs_init.ps [1.40.2.3]: 2002/01/31 17:39:07 rayjj)
-
-Change the unstopped error handler to print the operand stack in the same
-order as the normal error handler, with the top of the stack at the right.
-Fixes Sourceforge bug #496440. (lib/gs_init.ps [1.40.2.1]: 2002/01/10
-02:41:01 ghostgum)
-
-Version number upgrade and minor documentation patch in preparation for 7.04
-release. (lib/gs_init.ps [1.40.2.4]: 2002/02/01 03:25:45 raph)
-
-</pre><h2><a name="7.04-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Change show_enum pointer enumeration to properly enumerate
-underlying gs_text_enum structure. (gxchar.c [1.5.2.1]: 2001/10/26 16:35:25
-raph)
- - Image Type 4 images processed with the Interpolate turned on (as
-from -dDOINTERPOLATE) left an uninitialized variable that could cause
-extensive slowdown. Fix for SourceForge bug #491308 for Artifex customer
-671. (gxiscale.c [1.2.6.1]: 2001/12/14 19:16:04 rayjj)
- - Improve security in a (mostly) backward compatible fashion adding
-more flexible file access paths (PermitFile...) as user paramters and adding
-the facility to return to NOSAFER mode after running jobs (files/procedures)
-in SAFER mode. Also adds a -dPARANOIDSAFER command line option that only
-allows reading files from %stdin, paths specified on LIBPATH, FONTPATH and
-/GenericResourceDir or /FontResourceDir. Improve security for device related
-access to the file system and to pipes by allowing the dangerous parameters
-to be locked (for example, OutputFile). The locking is performed after
-command line parameters are established. This should address SF bug #474582
-and eliminate the need for the RedHat PARANOIDSAFER patch.
-(gdevprn.c [1.5.6.1], gdevvec.c [1.12.2.1], gp.h [1.8.2.1],
-gp_dosfe.c [1.2.6.1], gp_dosfs.c [1.2.6.1], gp_unifn.c [1.2.6.1],
-gsdparam.c [1.4.6.1], gsutil.c [1.4.6.1], gsutil.h [1.3.6.1],
-gxdevcli.h [1.5.2.1], gxdevice.h [1.4.6.1]: 2002/01/25 06:33:09 rayjj)
-
-</pre><h2><a name="7.04-Other"></a>Other</h2><pre>
-
-Adds basic autoconf support to the build system. (.cvsignore [1.2.2.1],
-Makefile.in [1.1.4.1], autogen.sh [1.3.4.1], configure.ac [1.4.4.1]:
-2002/01/24 01:30:56 giles)
-
-Adds IJS driver to Ghostscript. Includes complete IJS version 0.33
-distribution. Also includes autoconf patch by Ralph Giles.
-(Makefile.in [1.1.4.2], configure.ac [1.4.4.2]: 2002/02/01 03:30:13 raph)
-
-<hr>
-
-<h1><a name="Version7.03"></a>Version 7.03 (2001-10-20)</h1>
-
-<p>
-This is a fully tested, stable release of Ghostscript. It fixes quite a
-few issues with 7.02.
-
-<p> Major changes include:
-
-<ul>
-<li>Integration of icclib 2.0.
-
-<li>There was at least one embarassing pdfwrite bug, now fixed.
-
-<li>Significant shading speedups, especially for worst-case files
-such as Coons01.ps.
-
-<li>The stdio logic is a lot more robust. 7.02 had some problems,
-especially with trying to set stdin to non-blocking.
-
-<li>The usual bug fixes. In particular, regression testing against
-7.00 shows only one serious regression (035-01.ps), and numerous
-progressions.
-
-</ul>
-
-<p>
-The following SourceForge bug numbers are currently open: 215256,
-219798, 222727, 226477, 405342, 406689, 406979, 407342, 414947,
-414985, 415016, 415142, 415170, 416131, 416830, 418241, 421057,
-422532, 423838, 427193, 427314, 427347, 428891, 428973, 432040,
-432657, 434277, 434707, 436099, 436897, 437285, 438679, 438957,
-443745, 444791, 446344, 446672, 448199, 450663, 451456, 452155,
-453969, 457838, 458261, 458500, 458769, 458775, 458780, 462221,
-465720, 465921, 465936, 468386, 468762, 469518, 472681, 473305.
-
-<h3><a name="7.03_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version.
-
-<pre>
-
-
-
-<h2><a name="7.03-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Add new Windows and Unix platform files to developer
-documentation. (doc/Develop.htm [1.46]: 2001/09/23 08:54:03 ghostgum)
- - Adds a -dNOCCFONTS switch to disable use of compiled-in fonts.
-(doc/Use.htm [1.32]: 2001/10/01 05:25:55 lpd)
- - Added potential workaround for DCTEncode filter problem where the
-image has less rows than requested. (doc/Issues.htm [1.13]: 2001/10/03
-17:24:23 jackiem)
- - Fixes reference counting for PDF 1.4 device filter stack.
-Temporary patch to not free PDF 1.4 marking device for images (it was being
-freed prematurely). (doc/Issues.htm [1.14]: 2001/10/17 17:28:10 raph)
- - Syncs with hpijs version 0.97, and fixes a documentation bug.
-(doc/Devices.htm [1.33]: 2001/10/19 04:20:08 raph)
- - Documentation and version number change in preparation for 7.03
-release. (doc/API.htm [1.11], doc/Bug-form.htm [1.23],
-doc/Bug-info.htm [1.20], doc/C-style.htm [1.21], doc/Commprod.htm [1.15],
-doc/Copying.htm [1.13], doc/Current.htm [1.13], doc/DLL.htm [1.15],
-doc/Develop.htm [1.47], doc/Devices.htm [1.34], doc/Drivers.htm [1.21],
-doc/Fonts.htm [1.22], doc/Helpers.htm [1.17], doc/History1.htm [1.13],
-doc/History2.htm [1.13], doc/History3.htm [1.13], doc/History4.htm [1.13],
-doc/History5.htm [1.15], doc/History6.htm [1.30], doc/History7.htm [1.4],
-doc/Htmstyle.htm [1.18], doc/Install.htm [1.26], doc/Issues.htm [1.15],
-doc/Language.htm [1.34], doc/Lib.htm [1.14], doc/Maintain.htm [1.23],
-doc/Make.htm [1.36], doc/New-user.htm [1.30], doc/News.htm [1.89],
-doc/Projects.htm [1.33], doc/Ps-style.htm [1.13], doc/Ps2epsi.htm [1.15],
-doc/Ps2pdf.htm [1.32], doc/Psfiles.htm [1.22], doc/README [1.12],
-doc/Readme.htm [1.31], doc/Release.htm [1.40], doc/Source.htm [1.13],
-doc/Tester.htm [1.14], doc/Unix-lpr.htm [1.13], doc/Use.htm [1.33],
-doc/Xfonts.htm [1.13], doc/gs-vms.hlp [1.12], man/dvipdf.1 [1.10],
-man/font2c.1 [1.10], man/gs.1 [1.10], man/gslp.1 [1.10], man/gsnd.1 [1.10],
-man/pdf2dsc.1 [1.10], man/pdf2ps.1 [1.12], man/pdfopt.1 [1.10],
-man/pf2afm.1 [1.10], man/pfbtopfa.1 [1.11], man/printafm.1 [1.10],
-man/ps2ascii.1 [1.10], man/ps2epsi.1 [1.10], man/ps2pdf.1 [1.14],
-man/ps2pdfwr.1 [1.13], man/ps2ps.1 [1.17], man/wftopfa.1 [1.10]: 2001/10/20
-08:44:30 raph)
-
-</pre><h2><a name="7.03-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - cvs2hist no longer worked in Python 2.1 and later: the regex and
-regsub modules were superseded by re, and append() no longer accepted
-multiple arguments to create a tuple. The fixes are backward compatible for
-all versions of Python from 1.5 on. (toolbin/cvs2hist.py [1.7]: 2001/09/23
-04:45:10 lpd)
- - The previous update to make cvs2hist use Python's re module rather
-than the obsolete regex and regsub modules didn't change the code to use
-match objects when necessary. Finishes fixing SourceForge #462777.
-(toolbin/cvs2hist.py [1.8]: 2001/09/23 20:43:16 lpd)
- - Some print statements for debugging were accidentally left in the
-code. (toolbin/cvs2hist.py [1.9]: 2001/09/23 21:05:12 lpd)
- - Committing in . Modified Files: gs/src/gp_stdia.c
-gs/src/openvms.mmk gs/src/ziodevs.c patches for OpenVMS (openvms.mmk [1.10]:
-2001/09/24 10:47:06 joukj)
- - Fixes for stdin as a result of using callouts. Use unbuffered
-read, not non-blocking read. Change gp_stdin_read to use file pointer not
-handle. Remove gp_stdin_init since we don't need to set non-blocking. Change
-gp_stdin.c to use fread/fwrite to be more portable. Flush redirected stdout
-correctly. Added casts to fix compiler warnings in dxmain.c. Corrected
-header dependencies. Fixes SourceForge bug #467787. (dvx-tail.mak [1.5],
-macos-mcp.mak [1.3], openvms.mak [1.16], openvms.mmk [1.11], os2.mak [1.19],
-unix-aux.mak [1.5], watc.mak [1.16], winlib.mak [1.12]: 2001/10/12 21:37:08
-ghostgum)
- - Committing in . Modified Files: gs/src/openvms.mmk OpenVMS needs
-target : sources ^ this space is realy needed. Otherwise MMS/MMK chokes on
-it!!!! (openvms.mmk [1.12]: 2001/10/15 10:24:21 joukj)
- - When building gsx and gsc, use the GS makefile macro as the shared
-library name to link against, not a hard coded gs. (unix-dll.mak [1.6]:
-2001/10/17 10:11:23 ghostgum)
- - Removes cheq.ps from list of example files installed.
-(unixinst.mak [1.20]: 2001/10/17 19:48:36 raph)
- - uses concrete color space of alternate color space, rather than
-simply alternate color space, to determine target color space for
-concretizing /All colors. Fixes regression of non-sepqxd2distiller.pdf, for
-which those color spaces differed. (gscsepr.c [1.13]: 2001/10/21 06:02:21
- raph)
- - Updates icclib to version 2.0, and integrates icclib changes. In
-particular, icclib now accesses Ghostscript streams through the clean
-icmFile object interface, rather than previous hack. Removes remnants of
-previous hack, including gs_stdio.h header file and sread() and swrite()
-functions in stream.c. (lib.mak [1.53]: 2001/10/19 21:52:50 raph)
- - Documentation and version number change in preparation for 7.03
-release. (version.mak [1.36]: 2001/10/20 08:44:31 raph)
- - Updates default MSVC_VERSION to 6. (msvc32.mak [1.20]: 2001/10/20
-08:45:39 raph)
-
-</pre><h2><a name="7.03-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Committing in . Modified Files: gs/src/gp_stdia.c
-gs/src/openvms.mmk gs/src/ziodevs.c patches for OpenVMS (gp_stdia.c [1.2],
-ziodevs.c [1.4]: 2001/09/24 10:47:06 joukj)
- - add missing file descriptor variable to stdin function of
-dxmainc.c. Fixes SourceForge bug #465214. (dxmainc.c [1.3]: 2001/09/28
-22:04:03 ghostgum)
- - If gtk+ GUI can't be initialised, disable display device. This
-allows gsx to be used without an X display. Partial fix for SourceForge bug
-#450933. (dxmain.c [1.5]: 2001/10/12 11:10:37 ghostgum)
- - Fixes for stdin as a result of using callouts. Use unbuffered
-read, not non-blocking read. Change gp_stdin_read to use file pointer not
-handle. Remove gp_stdin_init since we don't need to set non-blocking. Change
-gp_stdin.c to use fread/fwrite to be more portable. Flush redirected stdout
-correctly. Added casts to fix compiler warnings in dxmain.c. Corrected
-header dependencies. Fixes SourceForge bug #467787. (dxmain.c [1.6],
-dxmainc.c [1.4], gp_stdia.c [1.3], gp_stdin.c [1.2]: 2001/10/12 21:37:08
-ghostgum)
- - Proposed log message: Fix: Callout implementation of %stdin,
-%stdout and %stderr now correctly allocates the streams in system memory.
-This avoids a crash during garbage collection seen during frequent
-open/close of stderr.. Fixes SourceForge bugs #427316, #442477.
-(ziodevsc.c [1.3]: 2001/10/15 21:44:42 ghostgum)
- - When using STDIO_IMPLEMENTATION=, call gp_stdin_read with a file
-pointer, not a file handle. (ziodevs.c [1.5]: 2001/10/17 21:12:44 ghostgum)
- - Use unbuffered read within gtk+ handler instead of using
-non-blocking read. While waiting for stdin, allow gtk main loop to block to
-avoid wasting CPU. (dxmain.c [1.7]: 2001/10/20 08:22:05 ghostgum)
-
-</pre><h2><a name="7.03-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - If "distiller" image compression options were changed in the
-middle of a file, the parameter list holding them might not be set back to
-read mode when using them to compress an image, causing an error. Fixes
-SourceForge #464938. (gdevpsdi.c [1.15]: 2001/09/25 22:00:44 lpd)
- - bmp16 and png16 devices now create 4 bit/pixel bitmaps instead of
-8. bmp256 and png256 devices now use dci values which match the color
-mapping functions. (gdevbmp.c [1.4], gdevpng.c [1.4]: 2001/09/28 22:06:21
-ghostgum)
- - Don't omit zero length deltas when stroking so that linecap will
-be produced by resulting PS or EPS file. SourceForge bug #466162.
-(gdevps.c [1.19]: 2001/09/28 23:18:46 rayjj)
- - Fixes for stdin as a result of using callouts. Use unbuffered
-read, not non-blocking read. Change gp_stdin_read to use file pointer not
-handle. Remove gp_stdin_init since we don't need to set non-blocking. Change
-gp_stdin.c to use fread/fwrite to be more portable. Flush redirected stdout
-correctly. Added casts to fix compiler warnings in dxmain.c. Corrected
-header dependencies. Fixes SourceForge bug #467787. (gdevsppr.c [1.5]:
-2001/10/12 21:37:08 ghostgum)
- - When the display device fails to allocate memory for the bitmap,
-set the memory device width and height to zero to prevent drawing on it.
-Always call the display_size callback to prevent a lockup in the caller, and
-if there is no memory tell the caller that the width and height are zero.
-Add some casts to remove compiler warnings. Fixes SourceForge bug #430879.
-(gdevdsp.c [1.5]: 2001/10/12 21:41:25 ghostgum)
- - Syncs with hpijs version 0.97, and fixes a documentation bug.
-(gdevhpij.c [1.3]: 2001/10/19 04:20:07 raph)
-
-</pre><h2><a name="7.03-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - pdfwrite didn't set the orig_matrix of standard fonts, sometimes
-causing re-encoded characters to be written with a width of 0. Bug
-introduced by fix for #439474, gdevpdff.c [1.19]. Fixes SourceForge #463400.
-(gdevpdff.c [1.22]: 2001/10/05 05:40:41 lpd)
- - pdfwrite allowed AutoRotatePages to override DSC comments rather
-than vice versa, and it interpreted "Portrait" in a DSC orientation comment
-as "don't rotate" rather than as "rotate if necessary so that width &lt;
-height." Fixes SourceForge #467259, although the result is not what the
-submitter wanted. (gdevpdf.c [1.38], gdevpdfp.c [1.19], gdevpdfx.h [1.34]:
-2001/10/07 05:33:11 lpd)
-
-</pre><h2><a name="7.03-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - Pop the /None key in the SMask processing of the 'gs' in a PDF 1.4
-document. Fixes SourceForge bug #459647 for Artifex customer Accusoft.
-(lib/pdf_draw.ps [1.35]: 2001/10/05 18:25:16 rayjj)
- - Enhances -dDEBUG for encrypted PDF files to print strings after
-decryption. (lib/pdf_sec.ps [1.5]: 2001/10/09 20:17:23 lpd)
- - If LastPage was greater than the number of pages in the document,
-a rangecheck was generated. Instead, limit LastPage (silently) to the number
-of pages in the document. If FirstPage is past end of document, issue a
-warning. Also, if no pages are processed due to FirstPage &gt; LastPage,
-give a clear error message. SourceForge bug #470025.
-(lib/pdf_main.ps [1.35]: 2001/10/12 07:07:54 rayjj)
- - Changing the hack in PDF font processing, which chooses character
-width with encodings where the same character appears more than once. New
-code takes width for character code which appears in Differences. Source
-Forge bugs #444366, #468389. (lib/pdf_font.ps [1.22]: 2001/10/14 01:28:05
-igorm)
- - Fix for #471414. Thanks to Leon Bottou for his excellent analysis
-and fix for this problem. Ghostscript was incorrectly handling a PDF shading
-dictionary in which the /Function entry contained an array of function
-dictionary references. An additonal oforce was required in the array
-processing loop. (lib/pdf_draw.ps [1.36]: 2001/10/16 22:20:31 dancoby)
- - Applied two patches reported in
-http://www.ghostscript.com/pipermail/gs-code-review/2001-October/001255.html
-by Hideyuki Suzuki / hideyuki at sat dot t dot u-tokyo dot ac dot jp.
-pdf_font.ps: automatic substitution &amp; transformation of CID-keyed fonts.
-pdf_ops.ps: make spacings vertical when WMode is 1. (lib/pdf_font.ps [1.23],
-lib/pdf_ops.ps [1.17]: 2001/10/19 16:42:47 masata-y)
-
-</pre><h2><a name="7.03-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Adds a -dNOCCFONTS switch to disable use of compiled-in fonts.
-(lib/gs_ccfnt.ps [1.5], lib/gs_init.ps [1.39]: 2001/10/01 05:25:55 lpd)
- - After removing a compiled font with undefinefont, loading the font
-or asking for its resourcestatus left extra information on the stack. Fixes
-SourceForge #458818. (lib/gs_res.ps [1.16]: 2001/10/01 05:56:58 lpd)
- - Clean up PostScript files in examples directory to prevent
-spurious bug reports caused when running more than a sigle file or running
-chess.ps without cheq.ps in the current directory. Thanks to Russell Lang
-for cleanup on DSC comment and structure. (examples/alphabet.ps [1.2],
-examples/chess.ps [1.2], examples/colorcir.ps [1.2],
-examples/doretree.ps [1.2], examples/escher.ps [1.2],
-examples/golfer.ps [1.2], examples/grayalph.ps [1.2],
-examples/snowflak.ps [1.2], examples/tiger.ps [1.2],
-examples/vasarely.ps [1.2], examples/waterfal.ps [1.3]: 2001/10/01 21:28:25
-rayjj)
- - Remove this file which was referenced from chess.ps -- now it is
-included in chess.ps to prevent errors when cheq.ps could not be located.
-(examples/cheq.ps [1.2]: 2001/10/01 21:33:05 rayjj)
- - When using a substitute for an unknown font, add an alias in
-FontDirectory under the original requested font name.
-(lib/gs_fonts.ps [1.12]: 2001/10/01 21:35:53 rayjj)
- - Undo previous 1.12 update. The PS file that exhibited the problem
-was bad as was my testing against Adobe PS behaviour. Substituted fonts are
-neither aliased, nor entered in the FontDirectory by Adobe PostScript. Fixes
-regression bug with Genoa PS LL3 FTS test 313-01.ps.
-(lib/gs_fonts.ps [1.13]: 2001/10/09 18:01:17 rayjj)
- - Fixing inaccurate coding in Type 2 font processing : when
-GlobalSubrs absents, old code damages useful information in
-charstring_font_refs_s::GlobalSubrs, possibly causing indeterministic error.
-(zfont2.c [1.4]: 2001/10/11 17:55:32 igorm)
- - Fix : Making GlobalSubrs to be shared for all descendent fonts
-within CFF CID font. 1/2 fix for Source Forge bug #468389 "rangecheck in
-type2execchar" (lib/gs_cff.ps [1.10]: 2001/10/12 08:52:14 igorm)
- - Fixes for stdin as a result of using callouts. Use unbuffered
-read, not non-blocking read. Change gp_stdin_read to use file pointer not
-handle. Remove gp_stdin_init since we don't need to set non-blocking. Change
-gp_stdin.c to use fread/fwrite to be more portable. Flush redirected stdout
-correctly. Added casts to fix compiler warnings in dxmain.c. Corrected
-header dependencies. Fixes SourceForge bug #467787. (dpmain.c [1.5],
-dwmainc.c [1.8], idebug.c [1.4], igc.c [1.5], imain.c [1.19]: 2001/10/12
-21:37:08 ghostgum)
- - Documentation and version number change in preparation for 7.03
-release. (lib/gs_init.ps [1.40]: 2001/10/20 08:44:31 raph)
-
-</pre><h2><a name="7.03-Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - Updates icclib to version 2.0, and integrates icclib changes. In
-particular, icclib now accesses Ghostscript streams through the clean
-icmFile object interface, rather than previous hack. Removes remnants of
-previous hack, including gs_stdio.h header file and sread() and swrite()
-functions in stream.c. (stream.c [1.15]: 2001/10/19 21:52:50 raph)
-
-</pre><h2><a name="7.03-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Fixes nontermination of triangle subdivision in shading, as
-triggered by FTS 446-01.ps. The criterion for whether a triangle spans more
-than one pixel was too conservative, as it took the fill adjust into
-account. (gxshade4.c [1.6]: 2001/10/01 21:16:47 raph)
- - Correct inverted Decode cases of ImageType 4 color range masks for
-the Monochrome single bit per pixel case. Fixes SourceForge bug #462319 for
-Artifex customer #671. (gxifast.c [1.4]: 2001/10/06 03:27:57 rayjj)
- - Fix : More error tolerance in type2 charstring interpreter. 2/2
-fix for Source Forge bug #468389 "rangecheck in type2execchar". Thanks to L.
-Peter Deutsch for participation and for the comment in code.
-(gstype2.c [1.10]: 2001/10/12 08:55:24 igorm)
- - Fixes for stdin as a result of using callouts. Use unbuffered
-read, not non-blocking read. Change gp_stdin_read to use file pointer not
-handle. Remove gp_stdin_init since we don't need to set non-blocking. Change
-gp_stdin.c to use fread/fwrite to be more portable. Flush redirected stdout
-correctly. Added casts to fix compiler warnings in dxmain.c. Corrected
-header dependencies. Fixes SourceForge bug #467787. (gp.h [1.8],
-gxclutil.c [1.5], unistd_.h [1.4]: 2001/10/12 21:37:08 ghostgum)
- - Fixes reference counting for PDF 1.4 device filter stack.
-Temporary patch to not free PDF 1.4 marking device for images (it was being
-freed prematurely). (gdevp14.c [1.4], gsdfilt.c [1.3]: 2001/10/17 17:28:10
-raph)
- - Updates icclib to version 2.0, and integrates icclib changes. In
-particular, icclib now accesses Ghostscript streams through the clean
-icmFile object interface, rather than previous hack. Removes remnants of
-previous hack, including gs_stdio.h header file and sread() and swrite()
-functions in stream.c. (gsicc.c [1.5], gsicc.h [1.3]: 2001/10/19 21:52:50
-raph)
- - Documentation and version number change in preparation for 7.03
-release. (gscdef.c [1.15]: 2001/10/20 08:44:31 raph)
-
-</pre><h2><a name="7.03-Other"></a>Other</h2><pre>
-
-Fixes problems:
- - Updates icclib to version 2.0, and integrates icclib changes. In
-particular, icclib now accesses Ghostscript streams through the clean
-icmFile object interface, rather than previous hack. Removes remnants of
-previous hack, including gs_stdio.h header file and sread() and swrite()
-functions in stream.c. (gs_stdio.h [1.3], icclib/Licence.txt [1.1],
-icclib/NOTES [1.2], icclib/Readme.txt [1.1], icclib/icc.c [1.6],
-icclib/icc.h [1.4], icclib/icc9809.h [1.2]: 2001/10/19 21:52:50 raph)
-
-<hr>
-
-<h1><a name="Version7.02"></a>Version 7.02 (2001-09-22)</h1>
-
-<p>
-This is a prerelease of Ghostscript, in preparation for a forthcoming
-fully tested, supported 7.0x release. We are skipping the 7.01 release
-number because that number is now associated with CVS versions.
-
-<p> Major changes include:
-
-<ul>
-<li>Compile and portability fixes, including the dreaded time.h
-problem that affects up-to-date GNU/Linux builds.
-
-<li>Big improvements in stdio, including a new -sstdout= redirect
-switch. In addition, reading from stdin uses nonblocking I/O, so the
-ugly -_ workaround is no longer necessary.
-
-<li>Substantial pdfwrite improvements.
-
-<li>128-bit encrypted files are now supported.
-
-<li>The usual bug fixes.
-
-</ul>
-
-Release issues that will be fixed before next fully supported version:
-
-<ul>
-
-<li> Update icclib to 2.0.
-
-<li> Update hpijs and Omni glue to latest versions.
-
-<li> Make sure all source files are referenced in Develop.htm.
-
-</ul>
-
-<p>
-The following SourceForge bug numbers are currently open:
-215256, 219798, 222727, 224863, 226477, 405342, 406285, 406689,
-406979, 407342, 411753, 413669, 414947, 414985, 415016, 415142,
-415170, 415177, 415526, 416043, 416131, 416830, 418241, 418597,
-421057, 422532, 423838, 426274, 427193, 427314, 427316, 427347,
-428891, 428973, 430879, 431065, 432040, 432657, 433835, 434277,
-434707, 435154, 436099, 436897, 437285, 438679, 438957, 441566,
-442477, 443745, 444791, 446344, 446672, 446676, 446035, 447695,
-448199, 450271, 450663, 451456, 452155, 452173, 453861, 453969,
-457838, 458025, 458261, 458500, 458769, 458775, 458780, 458818,
-459645, 459647, 459764, 460292, 462139, 462212, 462221, 462319,
-462777, 463123, 463400.
-
-<h3><a name="7.02_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version.
-
-<pre>
-
-
-
-<h2><a name="7.02-Documentation"></a>Documentation</h2><pre>
-
-Fixes problems:
- - Fixes a typo: gs_stable_memory should have been gs_memory_stable.
-(doc/Develop.htm [1.41]: 2001/06/17 04:06:05 lpd)
- - The "Incompatible changes" sections for 6.62 and 6.61 were
-duplicates of the section for 6.60. (doc/History6.htm [1.28]: 2001/07/28
-23:02:56 lpd)
-
-Increments version number after 7.00 release. Also fixes gs_init.ps to
-consistently print minor revision number as two digits.
-(doc/News.htm [1.86]: 2001/04/17 07:40:12 raph)
-
-Documents the circumstances when no structure descriptor is needed.
-(doc/Develop.htm [1.39]: 2001/04/20 19:44:18 lpd)
-
-Adds documentation for the graphics library's implementation of clipping.
-(doc/Develop.htm [1.40]: 2001/04/20 20:17:28 lpd)
-
-Make copyright and license info at the end match other .htm files.
-(doc/Humor.htm [1.3]: 2001/04/21 17:14:33 rayjj)
-
-Added entry about confusing error messages. (doc/Issues.htm [1.10]:
-2001/04/27 23:41:28 alexcher)
-
-Clarifies the manpage for the ps2pdfwr wrapper script, mentioning the
--dSAFER option and adding a sentence describing the role of this particular
-script. (man/ps2pdfwr.1 [1.10]: 2001/05/03 21:07:33 giles)
-
-Adds a 'see also' reference to ps2pdf from the pdf2pdfwr manpage.
-(man/ps2pdfwr.1 [1.11]: 2001/05/03 23:54:51 giles)
-
-Restructures the C style guide to explicitly distinguish language
-restrictions from purely stylistic issues. (Requested by Artifex engineer.)
-(doc/C-style.htm [1.18]: 2001/05/25 00:35:41 lpd)
-
-Updates hpijs driver to version 0.96. (doc/Devices.htm [1.30]: 2001/05/30
-23:25:25 raph)
-
-Minor documentation update for HPIJS driver (adds more supported devices).
-(doc/Devices.htm [1.31]: 2001/05/30 23:58:44 raph)
-
-updates the bug report for to reflect the public nature of the new bug lists
-and tracker. (doc/Bug-form.htm [1.21]: 2001/06/05 02:30:47 giles)
-
-corrects the spelling of Metrowerks CodeWarrior (doc/Bug-info.htm [1.18]:
-2001/06/05 02:31:58 giles)
-
-branches: 1.1.2; file COPYING was initially added on branch GS_6_5.
-(doc/COPYING [1.1]: 2001/06/05 07:07:35 raph)
-
-Changes release policy to preserve the original filenames of 3rd party
-tarballs. (doc/Release.htm [1.38]: 2001/06/06 18:46:23 giles)
-
-This revision allows the MSVC makefiles to work with spaces in the DEVSTUDIO
-path. Also if DEVSTUDIO is set to empty then the PATH, LIB, INCLUDE
-environment variables are used for building. The MSVC section of Make.htm
-was enlarged. (doc/Make.htm [1.32]: 2001/06/12 23:06:19 dancoby)
-
-Adds an explanation of why stable allocators are needed, rather than using
-the system VM allocator for all stable objects. (doc/Develop.htm [1.42]:
-2001/06/17 04:12:06 lpd)
-
-Adds extern_inline for including inline procedures in header files.
-(doc/C-style.htm [1.19]: 2001/06/17 05:09:07 lpd)
-
-Adds and documents an operator &lt;prefix|null&gt; &lt;access_string&gt;
-.tempfile &lt;filename&gt; &lt;file&gt; to create and open a temporary file,
-using gp_open_scratch_file. (doc/Language.htm [1.32]: 2001/07/15 13:54:17
-lpd)
-
-Adds pphs, a utility for printing the Primary Hint Stream of a linearized
-PDF file. (doc/Develop.htm [1.43], doc/Psfiles.htm [1.20]: 2001/07/15
-16:25:02 lpd)
-
-Adds documentation of the new macos build processes. (doc/Make.htm [1.33]:
-2001/07/18 20:17:11 giles)
-
-Makes explicit note of the requirement to update the 'incompatible changes'
-section of the documentation with relevant commits.
-(doc/Maintain.htm [1.19], doc/News.htm [1.87]: 2001/07/31 03:31:35 giles)
-
-Adds documentation for the 'Fix:' prefix handling in changelog generation.
-(doc/Maintain.htm [1.20]: 2001/07/31 08:06:48 giles)
-
-Removes a reference to mailing separate bug fix notices to artifex made
-obsolete by the commit announcement mailing list. (doc/Maintain.htm [1.21]:
-2001/07/31 20:27:42 giles)
-
-Documentation update : ps2ascii can't handle incremental fonts.
-(doc/Issues.htm [1.11]: 2001/08/06 10:24:01 igorm)
-
-Update to 1. add Active-X project suggested by a user. 2. Remove the DSC
-processing project (completed). 3. provide minor update to the pswrite
-project. 4. Update the ICC profile support project to reflect the partial
-support now completed (in 7.00). (doc/Projects.htm [1.31]: 2001/08/17
-19:42:49 rayjj)
-
-Adds documentation for the -sPDFPassword command line option for encrypted
-pdf files, introduced with the inclusion of pdf_sec.ps. (doc/Use.htm [1.29]:
-2001/09/05 22:47:27 giles)
-
-Notes that ps2pdf may cause a limitcheck on PostScript files with
-unreasonably large coordinates; suggests using -r as a workaround. Responds
-to SourceForge bug #461335. (doc/Ps2pdf.htm [1.30]: 2001/09/14 00:40:04 lpd)
-
-Update documentation to describe how to build and install ghostscript as a
-shared object on Unix. Fixes sourceforge bug #444593.
-(doc/Install.htm [1.24], doc/Make.htm [1.34]: 2001/09/15 08:04:42 ghostgum)
-
-Speed up reading stdin when using callouts. Add platform-specific functions
-for reading stdin, to allow non-blocking reading of stdin if supported.
-Fixes Sourceforge bug #416973. (doc/Develop.htm [1.44]: 2001/09/15 08:48:33
-ghostgum)
-
-Allow PostScript stdout to be redirected to stderr or a file. This is
-required to avoid driver stdout being mixed with PostScript stdout. Options
-are -sstdout=filename or -sstdout=%stderr. To reset redirection use
--sstdout=- or -sstdout=%stdout. Fixes Sourceforge bug #222534.
-(doc/Use.htm [1.30]: 2001/09/22 07:33:35 ghostgum)
-
-Updates version and date in documentation in preparation for 7.02
-pre-release. (doc/API.htm [1.10], doc/Bug-form.htm [1.22],
-doc/Bug-info.htm [1.19], doc/C-style.htm [1.20], doc/Commprod.htm [1.14],
-doc/Copying.htm [1.12], doc/Current.htm [1.12], doc/DLL.htm [1.14],
-doc/Develop.htm [1.45], doc/Devices.htm [1.32], doc/Drivers.htm [1.20],
-doc/Fonts.htm [1.21], doc/Helpers.htm [1.16], doc/History1.htm [1.12],
-doc/History2.htm [1.12], doc/History3.htm [1.12], doc/History4.htm [1.12],
-doc/History5.htm [1.14], doc/History6.htm [1.29], doc/History7.htm [1.2],
-doc/Htmstyle.htm [1.17], doc/Install.htm [1.25], doc/Issues.htm [1.12],
-doc/Language.htm [1.33], doc/Lib.htm [1.13], doc/Maintain.htm [1.22],
-doc/Make.htm [1.35], doc/New-user.htm [1.29], doc/News.htm [1.88],
-doc/PUBLIC [1.5], doc/Projects.htm [1.32], doc/Ps-style.htm [1.12],
-doc/Ps2epsi.htm [1.14], doc/Ps2pdf.htm [1.31], doc/Psfiles.htm [1.21],
-doc/README [1.11], doc/Readme.htm [1.30], doc/Release.htm [1.39],
-doc/Source.htm [1.12], doc/Tester.htm [1.13], doc/Unix-lpr.htm [1.12],
-doc/Use.htm [1.31], doc/Xfonts.htm [1.12], doc/gs-vms.hlp [1.11],
-man/dvipdf.1 [1.9], man/font2c.1 [1.9], man/gs.1 [1.9], man/gslp.1 [1.9],
-man/gsnd.1 [1.9], man/pdf2dsc.1 [1.9], man/pdf2ps.1 [1.11],
-man/pdfopt.1 [1.9], man/pf2afm.1 [1.9], man/pfbtopfa.1 [1.10],
-man/printafm.1 [1.9], man/ps2ascii.1 [1.9], man/ps2epsi.1 [1.9],
-man/ps2pdf.1 [1.13], man/ps2pdfwr.1 [1.12], man/ps2ps.1 [1.16],
-man/wftopfa.1 [1.9]: 2001/09/22 16:26:21 raph)
-
-</pre><h2><a name="7.02-Procedures"></a>Procedures</h2><pre>
-
-Fixes problems:
- - Removing the dependence of graphic library on PS interpreter.
-Source Forge bug #415003. (lib.mak [1.48]: 2001/04/20 09:38:39 igorm)
- - Undoes makefile breakage introduced in previous version (for VMS).
-(icclib.mak [1.3], lib.mak [1.50]: 2001/04/24 18:36:55 raph)
- - !ifndef COMPILED_INITS instead of !ifndef COMPILE_INITS Discovered
-fixing bug #414985 from anonymous user (msvclib.mak [1.13]: 2001/04/28
-00:53:46 alexcher)
- - Optimization for shading fill. The general path filling algorithm
-subdivides fill region with trapezoid or rectangle subregions and then
-paints each subregion with given color. If the color is shading, each
-subregion to be subdivided into areas of constant color. But with radial
-shading each area is a high order polygon, being subdivided into smaller
-subregions, so as total number of subregions grows huge. Faster processing
-is done here by changing the order of subdivision cycles : we first
-subdivide the shading into areas of constant color, then apply the general
-path filling algorithm (i.e. subdivide each area into trapezoids or
-rectangles), using the filling path as clip mask. Source Forge bug #414022.
-(lib.mak [1.51]: 2001/05/10 18:36:40 igorm)
- - Adobe PhotoShop 5+ duotone code assumes that setcolor operator
-calls tint transform function if source colors don't make a subset of device
-colors. Bug #224056, Customer #150 (int.mak [1.47]: 2001/06/07 14:48:24
-alexcher)
- - index.html and gs.css weren't being copied to the installed
-documentation directory. (unixinst.mak [1.19]: 2001/07/25 21:10:39 giles)
- - define previously undefined make variables. DISPLAY_DEV in
-unix-gcc.mak. gdevdsp_h and gdevdsp2_h in int.mak. Add missing iref.h
-dependency for idisp. Bug #415006. (devs.mak [1.46], int.mak [1.48],
-unix-gcc.mak [1.22]: 2001/08/01 08:58:49 ghostgum)
- - Link GNU/Linux shared object as position independent code, instead of
-just compiling the modules as position independent. Adds prefix to shared
-object recursive make to allow install to a temporary location while
-building a distribution. (unix-dll.mak [1.3]: 2001/08/01 09:42:01 ghostgum)
- - allow any value of JVERSION in the platform-specific makefiles to
-reduce user confusion over minor version naming. We continue to support only
-libjpeg v6*. Sourceforge bugs #457617 and #457838, September 2001.
-(jpeg.mak [1.4]: 2001/09/05 21:46:35 giles)
- - Fix for MS-Windows graphics library. Remove references to
-interpreter from gp_check_interrupts function in library. Make gslib.c
-access gs_stdin not stdin. Correct the build paths for graphics devices. Add
-missing graphics devices. (msvc32.mak [1.18], msvclib.mak [1.16],
-winlib.mak [1.11]: 2001/09/22 07:07:02 ghostgum)
- - Prevent memory corruption when reading %statementedit. Allocate
-lineedit buffer in correct memory space. Line being assembled is stored in a
-PostScript string during callouts, so prevent zfilelineedit from reading
-more than max_string_size bytes. Allocate extra space for trailing new-line
-for statementedit, rather than fiddling the string length which broke when
-sreadline reallocated the string. (int.mak [1.50]: 2001/09/22 07:26:45
-ghostgum)
- - pdfwrite failed to recognize several of the standard screen spot
-functions: Ellipse, Round, and Diamond weren't implemented, and several of
-the others didn't match the PostScript implementation because of
-float/double discrepancies. Also, pdfwrite wrote out halftone screens using
-the adjusted ("actual") frequency and angle values rather than the requested
-values. Fixes SourceForge #446676. (devs.mak [1.47]: 2001/09/22 16:27:04
-lpd)
-
-Increments version number after 7.00 release. Also fixes gs_init.ps to
-consistently print minor revision number as two digits. (version.mak [1.34]:
-2001/04/17 07:40:12 raph)
-
-Committing in . Modified Files: gs/icclib/icc.c gs/src/gdevpdf.c
-gs/src/gp_vms.c gs/src/gsnogc.c gs/src/icclib.mak gs/src/openvms.mmk
-gs/src/x_.h Added Files: gs/src/vms_x_fix.h Patches for OpenVMS
-(icclib.mak [1.2], openvms.mmk [1.7]: 2001/04/20 09:56:22 joukj)
-
-Committing in . Modified Files: gs/src/lib.mak Patch for OpenVMS (little
-delayed since it was merged first with another commit) (lib.mak [1.49]:
-2001/04/20 10:39:44 joukj)
-
-Committing in . Modified Files: gs/src/gdevpdf.c gs/src/imainarg.c
-gs/src/openvms.mmk Merged in some patches by Rick Dyson, which affect
-compilation on VMS only. (openvms.mmk [1.8]: 2001/04/25 08:19:41 joukj)
-
-Committing in . Modified Files: gs/src/openvms.mak bringing openvms.mak in
-sync. with new features( Icclib etc.) and with new compile strategy with
-long variable names( as in openvms.mmk) Patch from Rick Dyson.
-(openvms.mak [1.12]: 2001/04/25 13:24:20 joukj)
-
-Changes gp_open_scratch_file() to use mkstemp() rather than mktemp() on gcc
-builds, which avoids warnings. Adds CAPOPT variable to unix-gcc.mak to
-select which function is used, so that builds will still succeed on systems
-that don't have mkstemp(). (unix-gcc.mak [1.20]: 2001/05/07 19:05:46
-jackiem)
-
-Committing in . Modified Files: gs/src/openvms.mmk Enabling mkstemp on VMS.
-(openvms.mmk [1.9]: 2001/05/08 12:28:38 joukj)
-
-This file is a new utility intended for debug. It is not yet ready for prime
-time, but is available for whoever wants to fix it. The main problems are:
-1. It doesn't work for files that use chained filters such as [
-/ASCII85Decode /FlateDecode ] 2. The PDF files that are written are
-sometimes broken. GS gets an xref problem. This second problem may actually
-due to lib/pdfwrite.ps since even when no conversion is done, the file is
-bad. (toolbin/pdfinflt.ps [1.1]: 2001/05/31 04:54:51 rayjj)
-
-branches: 1.1.2; file gnudevs.mak was initially added on branch GS_6_5.
-(gnudevs.mak [1.1]: 2001/06/05 07:07:37 raph)
-
-removes unnessary whitespace, which was breaking tmake.tcl. Part of
-sourceforge bug #415170, 2001 April 10. (libpng.mak [1.7]: 2001/06/07
-22:01:16 giles)
-
-This revision allows the MSVC makefiles to work with spaces in the DEVSTUDIO
-path. Also if DEVSTUDIO is set to empty then the PATH, LIB, INCLUDE
-environment variables are used for building. The MSVC section of Make.htm
-was enlarged. (msvc32.mak [1.16], msvccmd.mak [1.6], msvclib.mak [1.14],
-msvctail.mak [1.6]: 2001/06/12 23:06:19 dancoby)
-
-updates makefiles to use version 1.0.12 of the png library.
-(all-arch.mak [1.9], bcwin32.mak [1.11], dvx-gcc.mak [1.11],
-libpng.mak [1.8], msvc32.mak [1.17], msvclib.mak [1.15], openvms.mak [1.13],
-os2.mak [1.17], ugcclib.mak [1.13], unix-gcc.mak [1.21],
-unixansi.mak [1.15], unixtrad.mak [1.15], watc.mak [1.13],
-watclib.mak [1.13], watcw32.mak [1.12]: 2001/07/10 01:39:57 giles)
-
-drops support for libpng v0.89 and streamlines the library makefile.
-(libpng.mak [1.9]: 2001/07/10 02:07:08 giles)
-
-minor comment cleanup (libpng.mak [1.10]: 2001/07/10 03:14:33 giles)
-
-branches: 1.1.2; Adds the makefile and script for the new macos build method
-(macos-mcp.mak [1.1]: 2001/07/18 20:28:57 giles)
-
-To reduce redraw flicker, do not allow Windows to erase the background since
-we paint it ourselves. Paint areas outside the page with the window
-background colour or light grey. Save and restore window size using
-registry. Add "Paste" to system menu of text window. Make error message box
-a child of text window to avoid it appearing behind the text window. To
-allow user to read the error message, the text window is not automatically
-destroyed in the event of an error. The user must close text window using
-close button or system menu. If text window closed, return e_Fatal to poll
-function to provide a cleaner exit without a stack dump. (winint.mak [1.8]:
-2001/08/01 09:50:36 ghostgum)
-
-Uses lynx instead of netscape to generate text versions of important
-documentation files. (toolbin/pre [1.11]: 2001/08/18 02:50:09 giles)
-
-Adds a C implementation of the Arcfour encryption filter. This is a
-work-alike of the RC4 cipher used in PDF encryption. (int.mak [1.49],
-lib.mak [1.52]: 2001/09/02 06:16:41 giles)
-
-The Unix shared object loader 'gsx' depends on Gtk+ which causes it to fail
-in an environment where X11 and Gtk+ are not available. Add a console only
-loader 'gsc' which does not depend on X11 or Gtk+. This does not support the
-'display' device. Fixes sourceforge bug #450933. (unix-dll.mak [1.4]:
-2001/09/15 08:10:33 ghostgum)
-
-Speed up reading stdin when using callouts. Add platform-specific functions
-for reading stdin, to allow non-blocking reading of stdin if supported.
-Fixes Sourceforge bug #416973. (dvx-tail.mak [1.4], macos-mcp.mak [1.2],
-openvms.mak [1.14], os2.mak [1.18], unix-aux.mak [1.4], watc.mak [1.14],
-winlib.mak [1.10]: 2001/09/15 08:48:33 ghostgum)
-
-Change all interpreter builds to use callouts for stdio. Ghostscript library
-builds still use file based stdio. (bcwin32.mak [1.12], dvx-gcc.mak [1.12],
-gs.mak [1.5], openvms.mak [1.15], unix-gcc.mak [1.23], unixansi.mak [1.16],
-unixtrad.mak [1.16], watc.mak [1.15], watcw32.mak [1.13]: 2001/09/15
-08:55:32 ghostgum)
-
-Correct makefile dependency for gsx/dxmainc.c. (unix-dll.mak [1.5]:
-2001/09/22 07:21:00 ghostgum)
-
-Add the needed object files when building Windows large executable.
-(msvc32.mak [1.19]: 2001/09/22 07:24:33 ghostgum)
-
-Updates version and date in documentation in preparation for 7.02
-pre-release. (version.mak [1.35]: 2001/09/22 16:26:22 raph)
-
-</pre><h2><a name="7.02-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - null object was converted to -nostringval- Discovered during the
-work on pdfopt. (lib/pdfwrite.ps [1.4]: 2001/04/28 01:01:38 alexcher)
- - On Windows GS enumerated "." and ".." as external resources and
-failed with /invalidresource trying to load them later. (gp_ntfs.c [1.5]:
-2001/05/04 20:27:40 alexcher)
- - pass #xx escaped characters in names through and fix the escape
-logic to prevent a /typecheck in add. (lib/pdfwrite.ps [1.5]: 2001/05/31
-04:38:42 rayjj)
- - Many scripts for invoking Ghostscript-based utilities didn't
-properly handle file names that included spaces. Unix and DOS/Windows/OS/2
-scripts required different fixes. (lib/dvipdf [1.2], lib/eps2eps [1.3],
-lib/eps2eps.bat [1.5], lib/gssetgs.bat [1.3], lib/pdf2dsc.bat [1.2],
-lib/pdf2ps [1.4], lib/pdf2ps.bat [1.5], lib/pdfopt [1.3],
-lib/pdfopt.bat [1.3], lib/pf2afm.bat [1.3], lib/pfbtopfa [1.3],
-lib/ps2ascii [1.3], lib/ps2epsi [1.7], lib/ps2epsi.bat [1.6],
-lib/ps2epsi.cmd [1.3], lib/ps2pdf.bat [1.6], lib/ps2pdf12.bat [1.5],
-lib/ps2pdf13.bat [1.5], lib/ps2pdf14.bat [1.2], lib/ps2pdfwr [1.6],
-lib/ps2pdfxx.bat [1.10], lib/ps2ps [1.3], lib/ps2ps.bat [1.4]: 2001/06/22
-16:09:22 lpd)
- - pdfopt gave an error if the input file had PageMode = /UseOutlines
-but lacked an Outlines tree. Fixes SourceForge bug #410371.
-(lib/pdfopt.ps [1.5]: 2001/07/01 07:16:28 lpd)
- - The first pass of pdfopt always estimated the size of the primary
-hint stream as 0, which occasionally caused the second-pass fixup to fail.
-Fixes SourceForge bug #409887. (lib/pdfopt.ps [1.7]: 2001/07/01 07:23:36
-lpd)
- - If the OpenAction of a document referred to a Page object, pdfopt
-would try to include the page in the "document-level objects" section of the
-output, causing a rangecheck error. Fixes SourceForge bug #437724. Also adds
-more tracing to pdfopt (with -dPDEBUG). (lib/pdfopt.ps [1.8]: 2001/07/02
-15:50:19 lpd)
- - gp_open_scratch_file concatenated the temporary directory name
-with the prefix even if the prefix was an absolute path; also, it didn't
-check the length of the final file name, possibly leading to memory
-corruption. (gp_iwatc.c [1.6], gp_mswin.c [1.6], gp_os2.c [1.10],
-gp_vms.c [1.7]: 2001/07/15 13:57:50 lpd)
- - glyphshow procedure in ps2ascii lacks a pop in the for loop. Patch
-from Leon Bottou. Source Forge bug #443361. (lib/ps2ascii.ps [1.3]:
-2001/07/22 20:43:32 igorm)
- - pdfopt was broken because SAFER prevented it from opening its
-output and temporary files, and from deleting its temporary files. Note:
-this fix requires the .tempfile operator added in src/zfile.c [1.9].
-(lib/pdfopt [1.4], lib/pdfopt.bat [1.4], lib/pdfopt.ps [1.9]: 2001/07/23
-06:57:27 lpd)
- - Running font2c on any of the 35 standard fonts caused an
-invalidaccess error if gs was built with compiled fonts (ccfonts.dev
-"feature"). Fixes SourceForge #458816. (lib/font2c.ps [1.3]: 2001/09/13
-23:16:29 lpd)
- - Fix for MS-Windows graphics library. Remove references to
-interpreter from gp_check_interrupts function in library. Make gslib.c
-access gs_stdin not stdin. Correct the build paths for graphics devices. Add
-missing graphics devices. (gp_mslib.c [1.3], gp_mspol.c [1.1],
-gp_mswin.c [1.7]: 2001/09/22 07:07:02 ghostgum)
-
-Committing in . Modified Files: gs/icclib/icc.c gs/src/gdevpdf.c
-gs/src/gp_vms.c gs/src/gsnogc.c gs/src/icclib.mak gs/src/openvms.mmk
-gs/src/x_.h Added Files: gs/src/vms_x_fix.h Patches for OpenVMS
-(gp_vms.c [1.6]: 2001/04/20 09:56:22 joukj)
-
-branches: 1.1.2; file gp_gnrdl.c was initially added on branch GS_6_5.
-(gp_gnrdl.c [1.1]: 2001/06/05 07:07:37 raph)
-
-Change ps2pdfxx.bat to use lowercase output file extension to be consistent
-with other platforms. This closes sourceforge bug #430129.
-(lib/ps2pdfxx.bat [1.9]: 2001/06/15 05:32:56 jackiem)
-
-Adds more tracing output to pdfopt with -dPDEBUG. (lib/pdfopt.ps [1.6]:
-2001/07/01 07:20:30 lpd)
-
-Adds more tracing (with -dPDEBUG) to lib/pdfwrite.ps, used by pdfopt.
-(lib/pdfwrite.ps [1.6]: 2001/07/02 15:46:05 lpd)
-
-Adds pphs, a utility for printing the Primary Hint Stream of a linearized
-PDF file. (lib/pphs [1.1], lib/pphs.ps [1.1]: 2001/07/15 16:25:02 lpd)
-
-Re-enables export of the hwnd parameter in the old dll interface. This is
-required by macgsview. (gsdll.c [1.5]: 2001/07/18 20:16:24 giles)
-
-Adds initial support for macos. (gp_macio.c [1.1]: 2001/07/18 20:20:50
-giles)
-
-branches: 1.1.2; Adds initial support for macos. (gp_mac.c [1.1]: 2001/07/18
-20:20:50 giles)
-
-branches: 1.1.2; Adds the makefile and script for the new macos build method
-(macgenmcpxml.sh [1.1]: 2001/07/18 20:28:57 giles)
-
-Adds descriptive labels to the output of the utility for printing linearized
-PDF data. (lib/pphs.ps [1.2]: 2001/07/19 18:38:45 lpd)
-
-Protect the export of 'hwndtext', required by macgsview, with platform
-#ifdefs to avoid conflicts with the win32 dll build. (gsdll.c [1.6]:
-2001/07/23 05:25:08 giles)
-
-branches: 1.2.2; corrects line endings in gp_macio.c (gp_macio.c [1.2]:
-2001/07/24 22:22:59 giles)
-
-Improves the comments printed with dumps of Linearized PDF hint tables.
-(lib/pphs.ps [1.3]: 2001/07/24 22:24:28 lpd)
-
-Changes pdfopt to work around several Acrobat code and documentation bugs,
-so that Acrobat now recognizes pdfopt output as "optimized". Fixes
-SourceForge #438685. (lib/pdfopt.ps [1.10], lib/pdfwrite.ps [1.7]:
-2001/07/30 07:16:32 lpd)
-
-The Unix shared object loader 'gsx' depends on Gtk+ which causes it to fail
-in an environment where X11 and Gtk+ are not available. Add a console only
-loader 'gsc' which does not depend on X11 or Gtk+. This does not support the
-'display' device. Fixes sourceforge bug #450933. (dxmainc.c [1.1]:
-2001/09/15 08:10:33 ghostgum)
-
-When using the Unix Gtk+ loader gsx, delay setting the default color map and
-visual until the display device is opened. This may allow gsx to be used
-when X11 is not available. May fix Sourceforge bug #450933. (dxmain.c [1.4]:
-2001/09/15 08:14:21 ghostgum)
-
-Speed up reading stdin when using callouts. Add platform-specific functions
-for reading stdin, to allow non-blocking reading of stdin if supported.
-Fixes Sourceforge bug #416973. (gp_stdia.c [1.1], gp_stdin.c [1.1],
-ziodevs.c [1.3]: 2001/09/15 08:48:34 ghostgum)
-
-Correct the stdin code in dxmainc.c (gsc) to be the same as gp_stdia.c.
-(dxmainc.c [1.2]: 2001/09/22 07:16:50 ghostgum)
-
-</pre><h2><a name="7.02-Drivers"></a>Drivers</h2><pre>
-
-Fixes problems:
- - Prevent empty or invalid OutputFile values from causing SEGV in
-psrgb, psgray and psmono. SourceForge bug #414151. (gdevpsu.c [1.5]:
-2001/04/20 02:35:24 rayjj)
- - Corrects incorrect month value in TIFF headers. Need to increment
-tm_mon by one to get actual month. Fix from Helge Blischke.
-(gdevtifs.c [1.4]: 2001/04/20 06:36:00 rayjj)
- - epswrite now writes each page into separate file, if OutputFile
-specifies format. SourceForge bug #228641. (gdevps.c [1.17],
-gdevpsim.c [1.5], gdevpsu.c [1.6], gdevpsu.h [1.3]: 2001/05/05 11:04:22
-igorm)
- - Writing each page to separate file, epswrite wrote wrong number of
-pages to their trailers. (gdevps.c [1.18], gdevpsim.c [1.6],
-gdevpsu.c [1.7], gdevpsu.h [1.4]: 2001/05/10 17:41:22 igorm)
- - Removes duplicate rc_decrement_only() in
-pdf14_begin_typed_image(), so that the marking device is now deallocated
-once. Fixes SourceForge bug #434705. (gdevpnga.c [1.4]: 2001/07/05 23:21:01
-raph)
-
-Committing in . Modified Files: gs/icclib/icc.c gs/src/gdevpdf.c
-gs/src/gp_vms.c gs/src/gsnogc.c gs/src/icclib.mak gs/src/openvms.mmk
-gs/src/x_.h Added Files: gs/src/vms_x_fix.h Patches for OpenVMS (x_.h [1.3]:
-2001/04/20 09:56:22 joukj)
-
-branches: 1.2.2; Updates hpijs driver to version 0.96. (gdevhpij.c [1.2],
-gdevhpij.h [1.2]: 2001/05/30 23:25:25 raph)
-
-branches: 1.1.2; file defs.h was initially added on branch GS_6_5.
-(defs.h [1.1]: 2001/05/31 08:28:49 raph)
-
-branches: 1.1.2; file gomni.c was initially added on branch GS_6_5.
-(gomni.c [1.1]: 2001/05/31 08:28:49 raph)
-
-branches: 1.1.2; file gdevln03.c was initially added on branch GS_6_5.
-(gdevln03.c [1.1]: 2001/06/05 07:07:37 raph)
-
-branches: 1.1.2; file gdevop4w.c was initially added on branch GS_6_5.
-(gdevop4w.c [1.1]: 2001/06/05 07:07:37 raph)
-
-branches: 1.1.2; file gdevxes.c was initially added on branch GS_6_5.
-(gdevxes.c [1.1]: 2001/06/05 07:07:37 raph)
-
-Adds knowledge of more paper sizes to PCL driver. Thanks to Jonathan Kamens
-for the patch. (gdevpcl.c [1.5], gdevpcl.h [1.5]: 2001/07/15 06:38:38 raph)
-
-branches: 1.1.2; Adds initial support for macos. (gdevmac.c [1.1],
-gdevmac.h [1.1], gdevmacpictop.h [1.1], gdevmacttf.h [1.1]: 2001/07/18
-20:20:50 giles)
-
-branches: 1.1.2; Adds the remaining macos source files (gdevmacxf.c [1.1]:
-2001/07/18 20:27:39 giles)
-
-Added const to all printer device descriptors const gx_device_printer
-gs_xxx_device = ... (gdev3852.c [1.3], gdev4081.c [1.3], gdev4693.c [1.3],
-gdev8510.c [1.3], gdevadmp.c [1.3], gdevbj10.c [1.4], gdevcif.c [1.3],
-gdevcljc.c [1.4], gdevcp50.c [1.3], gdevdjtc.c [1.3], gdevdm24.c [1.3],
-gdevepsc.c [1.3], gdevepsn.c [1.3], gdevescp.c [1.3], gdevhl7x.c [1.5],
-gdevimgn.c [1.4], gdevlbp8.c [1.3], gdevlj56.c [1.3], gdevmiff.c [1.3],
-gdevn533.c [1.3], gdevo182.c [1.3], gdevokii.c [1.3], gdevpjet.c [1.3],
-gdevsgi.c [1.2], gdevsnfb.c [1.3], gdevsppr.c [1.4], gdevsunr.c [1.4],
-gdevtknk.c [1.3]: 2001/08/01 00:48:23 stefan911)
-
-</pre><h2><a name="7.02-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - Empty pages included a Contents entry whose value was an empty
-array: the spec allows this, and AR3 and 4 accept it, but AR5 rejects it.
-(gdevpdf.c [1.34]: 2001/06/29 06:52:13 lpd)
- - When tiling with a bitmap, the /Type entry in the Pattern resource
-was written twice. (Minor file size problem only, not a functional problem.)
-(gdevpdfb.c [1.5]: 2001/06/29 17:04:17 lpd)
- - Some poorly designed PDF tools couldn't handle the fact that the
-Contents stream of each page was not surrounded by q/Q. (The PDF spec does
-not require this.) Fixes SourceForge bug #231390. (gdevpdfu.c [1.16]:
-2001/07/02 18:07:55 lpd)
- - pdfwrite didn't set returned.current_char, so the "current
-character" for kshow was 0 or a random value. Fixes SourceForge bug #420933.
-(gdevpdfs.c [1.5]: 2001/07/02 19:09:23 lpd)
- - When producing text in a Type 3 (bitmap) font and using TL and '
-for Y positioning, emitting a horizontal space character reset
-text.use_leading, causing the line to be positioned incorrectly. Fixes
-SourceForge bug #427159. (gdevpdft.c [1.33]: 2001/07/04 16:47:33 uid22160)
- - When producing text using a Type 3 (bitmap) font, the TL command
-was used (incorrectly) when the new text position was directly below the
-current text position, not (correctly) when the new text position was
-directly below the beginning of the current text line. Fixes SourceForge bug
-#228180. (gdevpdft.c [1.34]: 2001/07/04 18:06:39 uid22160)
- - Scaled fonts with PaintType = 2 (stroked) were painted with
-incorrect stroked width. (gdevpdfs.c [1.6]: 2001/07/04 21:57:02 uid22160)
- - pdfwrite generated masked images, a PDF 1.3 feature, even when
-CompatibilityLevel &lt; 1.3. Fixes item (2) of SourceForge bug #414104.
-(gdevpdfj.c [1.7], gdevpdfv.c [1.6]: 2001/07/07 19:15:51 lpd)
- - pdfwrite could write out a Pattern image too large for Acrobat
-Reader to handle, which would then never be referenced. Fixes item (4) of
-SourceForge bug #414104. (gdevpdfv.c [1.7]: 2001/07/07 19:41:12 lpd)
- - MSVC requires that a label not be the last thing in a block.
-(gdevpdfv.c [1.9]: 2001/07/08 13:46:25 lpd)
- - The algorithm for scaling down user coordinates to fall within
-Acrobat Reader's limitations didn't work properly for stroked paths with
-anisotropic CTMs, possibly producing large coordinates that led Acrobat (but
-not Ghostscript) to display the resulting file incorrectly. Fixes
-SourceForge bug #440476. (gdevpdfd.c [1.15], gdevpdfp.c [1.18],
-gdevpdfx.h [1.30]: 2001/07/12 03:28:02 lpd)
- - pdfwrite didn't write transfer functions in the output for images,
-and allowed lossy compressions on images even in the presence of peculiar
-transfer functions (such as functions simulating indexed color spaces). This
-fix writes transfer functions for images, prevents lossy compression if the
-transfer function is not the identity, and undoes the hack that was
-implemented earlier to work around this problem. Fixes SourceForge bug
-#420257. (gdevpdf.c [1.35], gdevpdfg.c [1.13], gdevpdfi.c [1.22],
-gdevpdfx.h [1.31]: 2001/07/12 05:47:07 lpd)
- - When writing text, the leading offset was sometimes ignored if
-blank lines were followed by a non-blank line. Fixes SourceForge bug
-#440490. (gdevpdft.c [1.35]: 2001/07/12 19:45:53 lpd)
- - If ConvertCMYKImagesToRGB was true, pdfwrite produced images with
-the correct RGB data but with the color space still set to DeviceCMYK. (Fix
-originally from Helge Blischke.) (gdevpdfi.c [1.23]: 2001/07/24 04:47:37
-lpd)
- - The calculation of a scaling value for stroked paths was
-incorrect, causing Inf and NaN values to be written in the PDF file. Fixes
-SourceForge #444682. Bug was introduced by the fix for #440476.
-(gdevpdfd.c [1.16]: 2001/07/27 22:28:31 lpd)
- - Some error codes were ignored, masking errors in writing embedded
-fonts. (gdevpdfe.c [1.10]: 2001/07/31 06:32:42 lpd)
- - ICCBased color spaces were copied to the output even if the output
-level was 1.2 (ICCBased color spaces were introduced in PDF 1.3).
-(gdevpdfc.c [1.16]: 2001/08/02 20:29:07 lpd)
- - If an image used a color space that couldn't be represented in
-PDF, an invalid file was produced, rather than falling back to the default
-representation as tiny rectangles. (bug introduced by H. Blischke's color
-space fix) (gdevpdfi.c [1.24]: 2001/08/03 16:12:16 lpd)
- - Type 1 fonts that did not use the standard 1000-unit cell, such as
-some fonts in PostScript files produced by Windows NT 4.0, were written with
-an incorrect FontMatrix. (The output was visually correct, because the font
-size was scaled to compensate.) Fixes SourceForge #439474.
-(gdevpdff.c [1.19], gdevpdff.h [1.11], gdevpdfs.c [1.7]: 2001/08/06 19:36:01
-lpd)
- - If the base 14 fonts were being embedded, they would often be
-embedded multiple times. Partially fixes SourceForge #438957.
-(gdevpdff.c [1.20]: 2001/08/17 21:27:21 lpd)
- - The descriptors for embedded fonts were recomputed unnecessarily.
-Part 1 of a two-part fix for SourceForge #451456. (gdevpdff.c [1.21]:
-2001/08/29 19:03:59 lpd)
- - Uncolored Patterns with all bits set (equivalent to a solid color)
-crashed pdfwrite. Fixes SourceForge #461330. (gdevpdfv.c [1.10]: 2001/09/15
-06:12:29 lpd)
- - pdfwrite failed to recognize several of the standard screen spot
-functions: Ellipse, Round, and Diamond weren't implemented, and several of
-the others didn't match the PostScript implementation because of
-float/double discrepancies. Also, pdfwrite wrote out halftone screens using
-the adjusted ("actual") frequency and angle values rather than the requested
-values. Fixes SourceForge #446676. (gdevpdfg.c [1.14]: 2001/09/22 16:27:04
-lpd)
-
-Committing in . Modified Files: gs/icclib/icc.c gs/src/gdevpdf.c
-gs/src/gp_vms.c gs/src/gsnogc.c gs/src/icclib.mak gs/src/openvms.mmk
-gs/src/x_.h Added Files: gs/src/vms_x_fix.h Patches for OpenVMS
-(gdevpdf.c [1.32]: 2001/04/20 09:56:22 joukj)
-
-Committing in . Modified Files: gs/src/gdevpdf.c gs/src/imainarg.c
-gs/src/openvms.mmk Merged in some patches by Rick Dyson, which affect
-compilation on VMS only. (gdevpdf.c [1.33]: 2001/04/25 08:19:41 joukj)
-
-Changes the locally used BASE_ENCODING macro to an inline procedure
-base_encoding_index. (Code hygeine only, no functional effect.)
-(gdevpdfs.c [1.4]: 2001/06/29 17:05:35 lpd)
-
-Makes pdfwrite recognize colored Patterns where all the pixels are the same
-color, and convert them to uncolored Patterns. This is an important
-optimization for files produced by certain applications (the test file came
-from Freehand on the Mac). Fixes item (3) of SourceForge bug #414104.
-(gdevpdfv.c [1.8]: 2001/07/08 04:27:48 lpd)
-
-Capitalizes a macro, and replaces two other macros with variables.
-(gdevpdfm.c [1.12]: 2001/07/15 22:53:23 lpd)
-
-Interprets bookmarks (/OUT pdfmarks) lacking both Action and Dest keys as a
-GoTo to the current page, to match Acrobat Distiller. SourceForge bug
-(enhancement) #442111. (gdevpdfm.c [1.13]: 2001/07/24 22:28:42 lpd)
-
-Changes pdfwrite to produce MediaBox values with up to 2 digits of decimal
-fraction, rather than truncating to integers. SourceForge enhancement
-request #440782. (gdevpdf.c [1.36], gdevpdfx.h [1.32]: 2001/07/25 23:16:44
-lpd)
-
-Changes the writing of Type 3 character bitmaps to use Decode in the image
-dictionary, rather than BlackIs1 in the parameter dictionary, to invert the
-data, because it takes slightly less space on the file. (gdevpdfb.c [1.6]:
-2001/07/29 02:21:43 lpd)
-
-Shrinks PDF output slightly by removing unnecessary spaces.
-(gdevpdfo.c [1.8]: 2001/07/29 03:00:45 lpd)
-
-Writes only the necessary Encoding entries for Type 3 bitmap fonts, rather
-than always writing all 256 entries. Motivated by SourceForge #438957.
-(gdevpdf.c [1.37], gdevpdft.c [1.36], gdevpdfw.c [1.12], gdevpdfx.h [1.33]:
-2001/07/30 15:11:00 lpd)
-
-Added const to all printer device descriptors const gx_device_printer
-gs_xxx_device = ... (gdevpdff.c [1.18]: 2001/08/01 00:48:23 stefan911)
-
-Converts all locally defined macros to upper case. (gdevpdfc.c [1.17]:
-2001/08/03 06:43:52 lpd)
-
-Shrinks pdfwrite output slightly by omitting the unnecessary space character
-before strings and hex strings, as well as before names, arrays, and
-dictionaries. (gdevpdfo.c [1.9]: 2001/08/14 02:29:16 lpd)
-
-Committing in . Modified Files: gs/src/gdevpdfm.c gs/src/sarc4.c
-gs/src/zcsdevn.c gs/src/zfile.c Some type casts added (gdevpdfm.c [1.14]:
-2001/09/04 14:30:13 joukj)
-
-</pre><h2><a name="7.02-PDF_Interpreter"></a>PDF Interpreter</h2><pre>
-
-Fixes problems:
- - 5-element DeviceN array (with attributes) messed up the operand
-stack and failed. The attributes is an informational entry that can be
-safely ignored. Bug #419509, Customer #150. (lib/pdf_draw.ps [1.30]:
-2001/04/28 01:45:25 alexcher)
- - PDF files containing strings with codes that map to glyph names
-that are not part of the font would error with undefined in --get--.
-Substitute the .notdef glyph as Adobe Acrobat Reader apparently does.
-(lib/pdf_font.ps [1.19]: 2001/05/12 00:11:42 rayjj)
- - .resolvefn4 used stream length as the length of the decompressed
-data, truncated the PostScript procedure and caused syntax error in the
-token operator because of the unmatched brackets. Reading directly from the
-stream fixes the problem. Bugs #425919 (lib/pdf_draw.ps [1.31]: 2001/05/24
-16:48:59 alexcher)
- - The March 1999 PDF 1.3 version of the specification had a change
-to make the /FormType key and /Matrix key optional in a Form. While we had
-already handled missing /Matrix key, the missing /FormType key was not
-accounted for in all cases. Move this to the common DoForm code. Fix for
-SourceForge bug #430556, Artifex customer #671. (lib/pdf_draw.ps [1.32]:
-2001/06/13 05:30:29 rayjj)
- - Wrong entry name (BaseFont instead CIDFontName) was used while
-resolving font resource to CIDFontType2 in PDF interpreter. Source Forge bug
-#436892 (lib/pdf_font.ps [1.20]: 2001/07/09 19:27:37 igorm)
- - Workaround a SEGV caused by GC interaction with stderr file.
-Needed to complete the fix for #430556, but the stderr bug remains open as
-442477. (lib/pdf_main.ps [1.34]: 2001/07/18 20:42:48 rayjj)
- - Detect and load embedded Type1 fonts that are in PFB format (have
-the 6 byte PFB header before each segment). Also ignore /Length values in
-the streamdict keys that don't match the PFB segnment lengths. Issue warning
-messages to stderr for all of these spec violations. SourceForge bug #430556
-for Artifex customer #671. VS:
-----------------------------------------------------------------------
-(lib/pdf_font.ps [1.21]: 2001/07/18 20:45:35 rayjj)
- - This problem was a rangecheck error being reported in
-.setindexedspace when the base colorspace was DeviceN. The cause was an
-error in determining the number of components in the DeviceN space. This is
-the second of two fixes for SF bugs 427165 (customer #1110) and 438682.
-(lib/pdf_draw.ps [1.34]: 2001/08/21 23:54:30 dancoby)
-
-Improvement: Prevents PDF files with more than 65534 page from failing due
-to the dict size limit. The caches never hit on pages past 65534. Problem
-was reported by a potential Artifex customer re their customer's files.
-(lib/pdf_main.ps [1.33]: 2001/05/12 17:15:41 rayjj)
-
-This is the fix for [ #427354 ] PDF checkboxes problem. The PDF annotation
-handler was not correctly handling cases in which there was no appearance in
-the appearance dictionary AP for the current appearance state AS. It should
-not display anything in this case. (lib/pdf_draw.ps [1.33]: 2001/06/14
-22:25:36 dancoby)
-
-Updates pdf_sec.ps to use the new PDF 1.4 algorithms and 128 bit keylengths.
-Rewritten to use C implementations of Arcfour (RC4 compatible cipher) and
-MD5. Also fixes bug in processing of zero-length streams.
-(lib/pdf_sec.ps [1.4]: 2001/09/19 07:12:13 raph)
-
-</pre><h2><a name="7.02-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - GS didn't exit to shell when it was used with '--' option. The bug
-was introduced in revision 1.7 when many references to exit() were replaced
-with returns. Bug #416498 by Paul Vojta (imainarg.c [1.11]: 2001/04/19
-23:39:39 ghostgum)
- - Removing the dependence of graphic library on PS interpreter.
-Source Forge bug #415003. (zcssepr.c [1.8]: 2001/04/20 09:38:39 igorm)
- - Auto-rotation is enabled for non-null orientations. Auto rotation
-now always rotates the image +90 degrees relative to the orientation. Bug
-#416830 Customer #430 (zmedia2.c [1.3]: 2001/04/26 17:57:41 alexcher)
- - EPS files without a showpage could not be viewed if given as a
-command line arg. Extra call to display_set_callback erased the page before
-going to the GS&gt; prompt the first time. Only do display_set_callback as
-part of init_2. (imain.c [1.13]: 2001/05/04 20:35:33 rayjj)
- - in global mode pdfmark with composite objects causes invalidaccess
-because the objects are copied to local memory but the array is copied to
-current memory. Now the array is copied to local memory too. Fix from Helge
-Blischke with changes. (lib/gs_pdfwr.ps [1.11]: 2001/05/04 20:59:33
-alexcher)
- - This IdiomSet replaces 3 procedures generated by Win2K driver in
-level 1 mode for RGB source image and DeviceRGB, DeviceCMYK, and DeviceGray
-color models. Original implementation uses transfer functions to simulate
-the indexed color space. Currently, GS always ignore transfer functions. The
-replacement procedure uses indexed color space directly. This Idiom should
-really be in a file in the IdiomSet directory of the Resource path, but we
-put it here until GS has a way to handle distribution and installation of
-Resources. Customer #670, Bug #420257 (lib/gs_ll3.ps [1.9]: 2001/05/08
-19:42:13 alexcher)
- - Add all page sizes supported in statusdict to the .pagetypenames
-array so that these page sizes can be selected from the command line using
--sPAPERSIZE=... parameter. Also implement the STRICT that limits the
-available known paper sizes to those Adobe had defined prior to Level 2 when
-'setpagedevice' replaced this mess. SourceForge bug #427898
-(lib/gs_statd.ps [1.5]: 2001/05/30 21:14:35 rayjj)
- - Fix for [ #419211 ] .parse_dsc_comments not robust. This change
-modifies the DSC parser so that errors in DSC comments do not abort the file
-processing. (zdscpars.c [1.11]: 2001/06/06 08:11:20 dancoby)
- - Adobe PhotoShop 5+ duotone code assumes that setcolor operator
-calls tint transform function if source colors don't make a subset of device
-colors. Bug #224056, Customer #150 (zcolor2.c [1.4]: 2001/06/07 14:48:24
-alexcher)
- - When finding a %%Page line in the trailer due to incorrect DSC
-comments, the DSC parser now returns CDSC_PAGE only if the parser treats it
-as a valid page. Partial fix for SourceForge bug #435157. (dscparse.c [1.6]:
-2001/06/23 10:21:24 ghostgum)
- - Fix for [ #435157 ] segmentation fault in dsc_page. Add test for
-valid page data before using. (zdscpars.c [1.12]: 2001/06/27 00:25:08
-dancoby)
- - Implementing CIDFont.CMap construction with period character (see
-Ken Lunde, "CJKV Information Processing," O'RELILLY. 1999. p284) for any
-compatible pair of CIDFont &amp; CMap. This feature complies with Adobe
-CPSI. Thanks to Masatake Yamato for discovering this feature.
-(lib/gs_cidcm.ps [1.5]: 2001/07/01 08:55:34 igorm)
- - Reading a TrueType font with an empty table could cause a
-rangecheck error. (lib/gs_ttf.ps [1.9]: 2001/07/08 15:24:11 lpd)
- - pdfwrite didn't write transfer functions in the output for images,
-and allowed lossy compressions on images even in the presence of peculiar
-transfer functions (such as functions simulating indexed color spaces). This
-fix writes transfer functions for images, prevents lossy compression if the
-transfer function is not the identity, and undoes the hack that was
-implemented earlier to work around this problem. Fixes SourceForge bug
-#420257. (lib/gs_ll3.ps [1.10]: 2001/07/12 05:47:07 lpd)
- - zfilelineedit sometimes reallocates (resizes) buffer string
-without updating reference to it from o-stack, so as console input after
-callout reads undefined data. Fixed with copying new reference to o-stack
-whenever it changes. Source Forge bug #437808 (ziodev.c [1.5]: 2001/07/16
-08:38:14 igorm)
- - If a 'restore' had to restore page device parameters, it did so
-before rather than after restoring the state of VM, possibly creating
-dangling references. Fixes SourceForge #230694, #414588, #444565.
-(lib/gs_setpd.ps [1.8], zdevice2.c [1.4]: 2001/07/30 07:11:38 lpd)
- - Ignore white space between %%DocumentData: and argument. Fix: Set
-dsc-&gt;preview correctly to DOS EPS if both DOS EPS and EPSI previews are
-present. Update to latest dscparse.c/h used in GSview. Change dscparse to
-mark internal functions "dsc_private" not "private", so it can be compiled
-as C++ (needed by GSview, not Ghostscript). (dscparse.c [1.7],
-dscparse.h [1.6]: 2001/08/01 09:03:40 ghostgum)
- - Fixing wrong binding of .getmetrics32 with -dNOBIND.
-(lib/gs_typ32.ps [1.3]: 2001/08/06 10:19:42 igorm)
- - Old hack about underline parameters in gs_type1.ps now conflicts
-with QuarkXPress_4.1 3.0 0 procset. Disabling it for fonts, which have
-degenerate FontBBox. Source Forge bug #441870. (lib/gs_type1.ps [1.5]:
-2001/08/06 16:47:43 igorm)
- - The problem was a rangecheck error being reported in
-.setdevicenspace with PDF files. The cause of the problem was not allowing
-multiple copies of the name /None in DeviceN colorant specification. This is
-the first of two fixes for SF bugs 427165 (customer #1110) and 438682.
-(zcsdevn.c [1.4]: 2001/08/21 23:52:36 dancoby)
- - Work around a bug in the Adobe AGM_Core that results in areas
-painted by the tint transform of a spot color being overpainted with white.
-The symptom is missing graphics (lines, fills or text). SourceForge bug
-#454415 for Artifex customer #190. (lib/gs_init.ps [1.37]: 2001/08/29
-21:10:23 rayjj)
- - Fix a bug that the procedure for arraytype in cntdict leaves an
-object. (lib/gs_btokn.ps [1.4]: 2001/09/04 22:59:52 masata-y)
- - If MaxLocalVM user parameter is set, perform garbage collection
-before checking for potential VMerror. Without this fix, VMerror would be
-issued even if a garbage collection would have freed enough memory to stay
-below the MaxLocalVM limit. (ireclaim.c [1.3]: 2001/09/05 17:50:36 rayjj)
- - Prevent memory corruption when reading %statementedit. Allocate
-lineedit buffer in correct memory space. Line being assembled is stored in a
-PostScript string during callouts, so prevent zfilelineedit from reading
-more than max_string_size bytes. Allocate extra space for trailing new-line
-for statementedit, rather than fiddling the string length which broke when
-sreadline reallocated the string. (zfile.c [1.11], ziodev.c [1.6]:
-2001/09/22 07:26:46 ghostgum)
-
-Increments version number after 7.00 release. Also fixes gs_init.ps to
-consistently print minor revision number as two digits.
-(lib/gs_init.ps [1.35]: 2001/04/17 07:40:12 raph)
-
-Committing in . Modified Files: gs/src/gdevpdf.c gs/src/imainarg.c
-gs/src/openvms.mmk Merged in some patches by Rick Dyson, which affect
-compilation on VMS only. (imainarg.c [1.12]: 2001/04/25 08:19:41 joukj)
-
-Added dot(.) composed font name(CIDFont.CMap) supports.
-(lib/gs_cidcm.ps [1.3]: 2001/05/09 09:15:19 masata-y)
-
-In zfilename, a string allocated by ialloc_string is put on the stack with
-correct memory space. (zfileio.c [1.11]: 2001/05/09 09:25:24 masata-y)
-
-The show operator doesn't clear the operand stack on interrupts. Source
-Forge bug 209350. (zchar.c [1.4]: 2001/05/10 19:15:29 igorm)
-
-Move jpeg_decompress structure enum/reloc handler from interp level to
-stream utility level to support non-PostScript clients. (zfdcte.c [1.5]:
-2001/05/30 17:38:45 rayjj)
-
-Unwind to the revision 1.2, because CIDFont.CMap patch misses some important
-CIDFont-CMap combinations. (lib/gs_cidcm.ps [1.4]: 2001/06/06 10:44:05
-igorm)
-
-If an ICC color space failed to load, Acrobat Reader uses the alternate
-color space. Previous implementation ignored errors during load and used the
-partial ICC space. This change signals an error and uses the alternate space
-by catching the error in a stopped context in the interpreter.
-(lib/gs_icc.ps [1.2]: 2001/06/12 16:02:39 rayjj)
-
-Patch from Mr. Toshiya Suzuki : Implementing multi-dimensional CID ranges,
-and fixing bugs about decoding text string with CID font : (1) when GS
-consumes undefined byte sequence (which cannot be mapped to some glyphs), GS
-aborts. (2) when selected CID font lacks the glyph for requested CID, GS
-aborts. (3) "notdefrange" defines SINGLE CID for undefined byte sequences in
-specified range, but current GS implementation take it as an offset to
-calculate MULTIPLE CID. (4) "cidrange" operators accept only full range
-specification (&lt;0000&gt; to &lt;FFFF&gt;) or 8 bit width range
-(&lt;xxyy&gt; to &lt;xxzz&gt;). Source Forge bug #415163.
-(lib/gs_cmap.ps [1.11], zfcid0.c [1.7]: 2001/06/16 19:02:31 igorm)
-
-Committing in . Modified Files: gs/src/idisp.c gs/src/imain.c
-gs/src/zfileio.c Some minor fixes (2 added includes and 1 type cast) needed
-to compile cleanly on OpenVMS. (idisp.c [1.2], imain.c [1.14],
-zfileio.c [1.12]: 2001/07/11 12:05:52 joukj)
-
-Adds and documents an operator &lt;prefix|null&gt; &lt;access_string&gt;
-.tempfile &lt;filename&gt; &lt;file&gt; to create and open a temporary file,
-using gp_open_scratch_file. (zfile.c [1.9]: 2001/07/15 13:54:17 lpd)
-
-Add the local and global vmstatus values to calculate the memory usage of a
-resource. (lib/gs_res.ps [1.15]: 2001/07/15 16:13:39 masata-y)
-
-Allows temporary files (created and opened with .tempfile) to be deleted
-even if SAFER is set. (lib/gs_init.ps [1.36]: 2001/07/23 06:56:24 lpd)
-
-To reduce redraw flicker, do not allow Windows to erase the background since
-we paint it ourselves. Paint areas outside the page with the window
-background colour or light grey. Save and restore window size using
-registry. Add "Paste" to system menu of text window. Make error message box
-a child of text window to avoid it appearing behind the text window. To
-allow user to read the error message, the text window is not automatically
-destroyed in the event of an error. The user must close text window using
-close button or system menu. If text window closed, return e_Fatal to poll
-function to provide a cleaner exit without a stack dump. (dwimg.c [1.3],
-dwimg.h [1.4], dwmain.c [1.5], dwmainc.c [1.6], dwtext.c [1.4],
-dwtext.h [1.4]: 2001/08/01 09:50:36 ghostgum)
-
-Changed debugging flag variables to const. (igc.c [1.4], zvmem.c [1.3]:
-2001/08/01 16:21:35 stefan911)
-
-Adds missing dwreg.cpp and dwreg.h files needed by recent Windows updates
-which save and restore window size using registry. (dwreg.c [1.1],
-dwreg.h [1.1]: 2001/08/02 08:36:07 ghostgum)
-
-Improves documentation of the op_def array elements and removes the obsolete
-BEGIN/END_OP_DEFS macros, deprecated since 5.25. (opdef.h [1.3]: 2001/08/28
-03:28:08 giles)
-
-Adds a C implementation of the Arcfour encryption filter. This is a
-work-alike of the RC4 cipher used in PDF encryption. (zfarc4.c [1.1]:
-2001/09/02 06:16:41 giles)
-
-Corrects indenting, and adds another missing header. (zfarc4.c [1.2]:
-2001/09/02 07:09:13 giles)
-
-Committing in . Modified Files: gs/src/gdevpdfm.c gs/src/sarc4.c
-gs/src/zcsdevn.c gs/src/zfile.c Some type casts added (zcsdevn.c [1.5],
-zfile.c [1.10]: 2001/09/04 14:30:13 joukj)
-
-Change to debug output so that when the ptr is totally bogus, some useful
-output will be generated before otype-&gt;ssize is dereferenced (which can
-cause a memory access crash such as SEGV). No effect on non-debug code.
-(ilocate.c [1.4]: 2001/09/06 15:46:13 rayjj)
-
-Move misplaced comment block. (zvmem2.c [1.3]: 2001/09/06 16:01:23 rayjj)
-
-.objectprinttest: do one more pop if the operator is executed without error.
-.writeobjects: Before writing the header, check whether the written objects
-are arrays or not. If they are arrays, they are left them on the stack. If
-they are not arrays, they are removed from the stack.
-(lib/gs_btokn.ps [1.5]: 2001/09/15 07:11:00 masata-y)
-
-When using gswin32 (GUI version) and an error occurs or -? is used, do not
-display an error message box. Add a message to the text window "Close this
-window with the close button on the title bar or the system menu". Flash the
-window to attract attention. Fixes sourceforge bug #459019. (dwmain.c [1.6],
-dwtext.c [1.5]: 2001/09/15 08:36:53 ghostgum)
-
-Speed up reading stdin when using callouts. Add platform-specific functions
-for reading stdin, to allow non-blocking reading of stdin if supported.
-Fixes Sourceforge bug #416973. (dpmain.c [1.4], dwmainc.c [1.7],
-imain.c [1.15]: 2001/09/15 08:48:33 ghostgum)
-
-When using stdio callouts without callback functions, flush stdout and
-stderr. (imain.c [1.16]: 2001/09/15 09:17:10 ghostgum)
-
-Don't initialize stdin if it is being handled by the caller.
-(imain.c [1.17]: 2001/09/22 07:22:48 ghostgum)
-
-Allow PostScript stdout to be redirected to stderr or a file. This is
-required to avoid driver stdout being mixed with PostScript stdout. Options
-are -sstdout=filename or -sstdout=%stderr. To reset redirection use
--sstdout=- or -sstdout=%stdout. Fixes Sourceforge bug #222534.
-(imain.c [1.18], imain.h [1.3], imainarg.c [1.13], iminst.h [1.5]:
-2001/09/22 07:33:35 ghostgum)
-
-Updates version and date in documentation in preparation for 7.02
-pre-release. (lib/gs_init.ps [1.38]: 2001/09/22 16:26:22 raph)
-
-</pre><h2><a name="7.02-Streams"></a>Streams</h2><pre>
-
-Fixes problems:
- - When input stream of an input filter reports EOF, old code reports
-EOF for the filter. But if output buffer for the filter is not empty, EOF
-status to be delayed until it empties. Source Forge bug #417127.
-(stream.c [1.12]: 2001/05/05 10:12:23 igorm)
- - Non-stable memory was used for internal zlib data, causing
-inconsistent heap state after 'restore' while zlib is active, and subsequent
-crash. Source Forge bug #431057 (szlibc.c [1.3]: 2001/07/16 08:29:46 igorm)
- - Fixes numerous bugs in setting of DCT compression parameters.
-Manual setting of parameters such as QFactor should now work. Also
-ColorTransform now defaults to YCC instead of RGB color space so the default
-quality and compression ratio should improve. Thanks to Dave Slattengren for
-the initial version of this fix. (sdcparam.c [1.3], sdcte.c [1.4],
-sdeparam.c [1.4]: 2001/09/01 23:54:57 raph)
- - fixes bounds overstepping in arcfour filter in the case where
-write buffer space is smaller than read buffer space. (sarc4.c [1.5]:
-2001/09/14 20:26:02 raph)
-
-Set file_name.size = 0 when file_name.data is set to 0. (stream.c [1.13]:
-2001/05/09 09:42:57 masata-y)
-
-Move jpeg_decompress structure enum/reloc handler from interp level to
-stream utility level to support non-PostScript clients. (sdcte.c [1.3]:
-2001/05/30 17:38:45 rayjj)
-
-Move jpeg_decompress structure enum/reloc handler from interp level to
-stream utility level to support non-PostScript clients. (see also zfdcte.c
-and sdcte.c) (sdct.h [1.4]: 2001/06/08 07:08:44 rayjj)
-
-Adds a comment describing the function and return value of sreadbuf.
-(stream.c [1.14]: 2001/06/17 04:28:10 lpd)
-
-Adds extern_inline for including inline procedures in header files.
-(stdpre.h [1.4]: 2001/06/17 05:09:07 lpd)
-
-These changes were originally put into the GS_6_5 branch on 2001/03/13. They
-are needed for using the current version of teh graphics library with the
-PCL6 code. Short description of changes: stat_.h: Added definition of
-stat_is_dir for use with MSVC. Not used in Ghostscript. gsptype1.c: Changes
-in image_PaintProc. This routine is used in gs_makepixmappattern.
-gs_makepixmappattern is only used in test8 (in gslib.c - a test module) and
-gs_makebitmappattern_xform. gs_makebitmappatern_xform is not used in
-Ghostscript. It is used in pcl6. (stat_.h [1.6]: 2001/08/07 22:13:29
-dancoby)
-
-Makes the spprint* procedures use sputc rather than sputs for printing
-converted values. Speeds up one set of customer ps2pdf conversions by 2.5%.
-(spprint.c [1.4]: 2001/08/25 06:59:04 lpd)
-
-Adds a C implementation of the Arcfour encryption filter. This is a
-work-alike of the RC4 cipher used in PDF encryption. (sarc4.c [1.1],
-sarc4.h [1.1]: 2001/09/02 06:16:41 giles)
-
-adds a missing header file for e_rangecheck. (sarc4.c [1.2]: 2001/09/02
-06:27:18 giles)
-
-Corrects indenting, and adds another missing header. (sarc4.c [1.3],
-sarc4.h [1.2]: 2001/09/02 07:09:13 giles)
-
-Committing in . Modified Files: gs/src/gdevpdfm.c gs/src/sarc4.c
-gs/src/zcsdevn.c gs/src/zfile.c Some type casts added (sarc4.c [1.4]:
-2001/09/04 14:30:13 joukj)
-
-</pre><h2><a name="7.02-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - When copying a device, copy the static procs if needed before
-calling finish_copydevice, so that the correct finish_copydevice is used.
-(gsdevice.c [1.9]: 2001/04/12 08:45:02 ghostgum)
- - Removing the dependence of graphic library on PS interpreter.
-Source Forge bug #415003. (gscsepr.c [1.10], gscspace.h [1.7]: 2001/04/20
-09:38:38 igorm)
- - Removing the dependence of graphic library on PS interpreter.
-Source Forge bug #415003. (gscsepr.c [1.11]: 2001/04/20 10:07:48 igorm)
- - Optimization for shading fill. The general path filling algorithm
-subdivides fill region with trapezoid or rectangle subregions and then
-paints each subregion with given color. If the color is shading, each
-subregion to be subdivided into areas of constant color. But with radial
-shading each area is a high order polygon, being subdivided into smaller
-subregions, so as total number of subregions grows huge. Faster processing
-is done here by changing the order of subdivision cycles : we first
-subdivide the shading into areas of constant color, then apply the general
-path filling algorithm (i.e. subdivide each area into trapezoids or
-rectangles), using the filling path as clip mask. Source Forge bug #414022.
-(gsptype2.c [1.5], gsptype2.h [1.3], gxfill.c [1.8]: 2001/05/10 18:35:14
-igorm)
- - If the OutputFile name was not NULL terminated, the strcmp would
-fail in unpredictable ways. (gsdevice.c [1.10]: 2001/05/12 00:08:36 rayjj)
- - dev_color_eq used wrong number of components for halftones. Source
-Forge bug #422534. (gsht1.c [1.3], gxcht.c [1.3]: 2001/05/12 14:51:52 igorm)
- - Current code for /All separations marks all planes in the
-alternate color space, not the destination color space. This is wrong, but
-gx_concretize_Separation() doesn't have access to the destination device
-color space. This fix makes tint value 1 print as black in any alternate
-color space. It printed as white in DeviceCMYK before. Bug #423838
-(gscsepr.c [1.12]: 2001/05/25 13:54:01 alexcher)
- - Prevent SEGV caused by freeing memory not owned. Variable 'code'
-was overwritten, losing the get_outline return code that was needed for the
-decision to free the glyph_string.data. Problem detected with PCL. Bug was
-introduced in rev 1.10. (gstype42.c [1.12]: 2001/05/31 04:34:23 rayjj)
- - Include &lt;time.h&gt; as required by Debian systems with glibc
-2.2. Fixes SourceForge bugs 413747, 417180, 417181, 417182. (time_.h [1.3]:
-2001/06/07 21:04:52 raph)
- - FunctionType 4 functions that contained conditionals (if/ifelse)
-would report the length of their symbolic definition incorrectly;
-FunctionType 4 functions that had to return their symbolic definition in
-pieces would loop forever. Fixes SourceForge bug #427191. (gsfunc4.c [1.6]:
-2001/07/04 01:23:46 lpd)
- - Changes clip logic in gx_image_cached_char() to affect the imaging
-device, so that clipping is reliably effective. Fixes SF bug #433821 (and
-probably others). (gxccache.c [1.5]: 2001/07/05 20:36:55 raph)
- - Removes duplicate rc_decrement_only() in
-pdf14_begin_typed_image(), so that the marking device is now deallocated
-once. Fixes SourceForge bug #434705. (gdevp14.c [1.3]: 2001/07/05 23:21:00
-raph)
- - Prevent non-persistent name_arrays of size==0 from causing a
-VMerror if alloc of size 0 returns a NULL. Detected with
-SeparationColorNames from the PCL code. (gscparam.c [1.7]: 2001/07/06
-17:02:25 rayjj)
- - If the FontMatrix of a CFF CIDFont was the default [0.001 0 0
-0.001 0 0], it was not written, causing the FontMatrices of the subfonts to
-be scaled by 1000. (The Adobe documentation isn't at all clear about this.)
-Fixes SourceForge bug #428595. (gdevpsf2.c [1.14]: 2001/07/07 06:28:08 lpd)
- - Before processing an image that uses the current color, call
-gs_state_color_load to ensure that if the current color is a pattern, the
-pattern is loaded. (This parallels existing code used for filling paths and
-processing text.) This prevents a SEGV caused when pdfwrite dereferenced a 0
-pointer to pdc-&gt;colors.pattern.p_tile. Fixes SourceForge bug #422089 for
-Artifex Customer #1110. (gsimage.c [1.4]: 2001/07/10 22:04:20 lpd)
- - The algorithm for scaling down user coordinates to fall within
-Acrobat Reader's limitations didn't work properly for stroked paths with
-anisotropic CTMs, possibly producing large coordinates that led Acrobat (but
-not Ghostscript) to display the resulting file incorrectly. Fixes
-SourceForge bug #440476. (gdevvec.c [1.12], gdevvec.h [1.7]: 2001/07/12
-03:28:02 lpd)
- - -sOutputFile=%stdout handling was broken by rev. 1.4 is fixed by
-giving priority to iodevices when there is a leading %, but if the iodevice
-is not recognized, attempting to parse as a format. Fix for SourceForge bugs
-436895 and 428738, Artifex customer #680 (gsdevice.c [1.11]: 2001/07/12
-14:10:55 rayjj)
- - gp_open_scratch_file concatenated the temporary directory name
-with the prefix even if the prefix was an absolute path; also, it didn't
-check the length of the final file name, possibly leading to memory
-corruption. (gp_unifs.c [1.6]: 2001/07/15 13:57:50 lpd)
- - An incorrect optimization in the conversion of Type 1 to Type 2
-CharStrings could cause character shapes to be mangled. This probably only
-affected embedded fonts in PDF output. Fixes SourceForge #444374.
-(gdevpsfx.c [1.9]: 2001/07/26 03:04:51 lpd)
- - Acrobat Reader would not accept embedded TrueType fonts with a
-zero-length glyf table. Fixes SourceForge #429156. (gdevpsft.c [1.8]:
-2001/07/30 07:03:18 lpd)
- - An embedded CFF font could not be larger than 64K. Fixes
-SourceForge #445400. (gdevpsf2.c [1.15]: 2001/07/31 06:39:06 lpd)
- - For CIEBasedDEF(G) color spaces the interpolated values from the
-Table need to be scaled to the range given by RangeABC. Fixes SourceForge
-bug #440278 reported by Artifex customer #10. (gsciemap.c [1.6]: 2001/08/03
-15:26:35 rayjj)
- - Correct a problem with white lines appearing in an image at or
-near band boundaries. Problem caused by different handling for the last
-image pixel at a band boundary versus the remaining pixels. Replaced it with
-uniform handling. Fixes SourceForge bug #436899 reported by Artifex customer
-#150. Also included are three lines of source code clean up in the same
-section. (gxicolor.c [1.3]: 2001/08/06 21:22:31 dancoby)
- - Writing a Type 2 font subset with undefined glyphs in the Encoding
-produced invalid output. Fixes SourceForge #451399. (gdevpsf.h [1.10],
-gdevpsfu.c [1.7]: 2001/08/16 13:36:37 lpd)
- - The problem was a rangecheck error being reported in
-.setdevicenspace with PDF files. The cause of the problem was not allowing
-multiple copies of the name /None in DeviceN colorant specification. This is
-the first of two fixes for SF bugs 427165 (customer #1110) and 438682.
-(gscdevn.c [1.6], gscspace.h [1.8]: 2001/08/21 23:52:36 dancoby)
- - Most of the Type 1 hinting code was executed even when hinting was
-disabled. Part 2 of a two-part fix for SourceForge #451456.
-(gxhint3.c [1.3]: 2001/08/29 19:04:55 lpd)
- - Quark Xpress turns off garbage collection with -2 vmreclaim when
-embedding EPS files which can lead to rampant allocation that is only
-reclaimed when GC is reenabled. When the GC is disabled, reduce the
-threshold from 2 Gb to 8 Mb. Fixes SourceForge bugs: 444370 and 438676.
-(gsalloc.c [1.10]: 2001/09/05 17:54:31 rayjj)
- - Fixes some typos in the comment for FORCE_GC_LIMIT.
-(gsalloc.c [1.11]: 2001/09/05 18:03:39 lpd)
- - Copying a parameter list failed to copy persistent aggregates if
-the target list used a different allocator from the source list, possibly
-causing crashes at 'restore'. Fixes SourceForge #461007. (gsparamx.c [1.4]:
-2001/09/14 04:23:11 lpd)
- - The sin and cos operators in Type 4 (PostScript Calculator)
-Functions expected their argument in radians, not degrees. (gsfunc4.c [1.7]:
-2001/09/17 06:01:12 lpd)
- - Fix for MS-Windows graphics library. Remove references to
-interpreter from gp_check_interrupts function in library. Make gslib.c
-access gs_stdin not stdin. Correct the build paths for graphics devices. Add
-missing graphics devices. (gslib.c [1.5]: 2001/09/22 07:07:02 ghostgum)
-
-Committing in . Modified Files: gs/icclib/icc.c gs/src/gdevpdf.c
-gs/src/gp_vms.c gs/src/gsnogc.c gs/src/icclib.mak gs/src/openvms.mmk
-gs/src/x_.h Added Files: gs/src/vms_x_fix.h Patches for OpenVMS
-(gsnogc.c [1.7]: 2001/04/20 09:56:22 joukj)
-
-Changes gp_open_scratch_file() to use mkstemp() rather than mktemp() on gcc
-builds, which avoids warnings. Adds CAPOPT variable to unix-gcc.mak to
-select which function is used, so that builds will still succeed on systems
-that don't have mkstemp(). (gp_unifs.c [1.5]: 2001/05/07 19:05:46 jackiem)
-
-This fixes a minor omission that prevents ghostscript from building on at
-least some platforms. After an #ifndef, a #define isn't done.
-(gsptype2.h [1.4]: 2001/05/11 23:12:11 jackiem)
-
-fix: If the ICC profile fails to load completely, or is missing a WhitePoint
-a valid default is needed to prevent a divide by zero. The WhitePoint is the
-same as the ICC default illuminant, D50. SourceForge bug 432130 for Artifex
-customer #150 as well as bug 427156, customers #880 and #1110 and bug
-414984. (gsicc.c [1.3]: 2001/06/12 15:32:20 rayjj)
-
-If an ICC color space failed to load, Acrobat Reader uses the alternate
-color space. Previous implementation ignored errors during load and used the
-partial ICC space. This change signals an error and uses the alternate space
-by catching the error in a stopped context in the interpreter.
-(gsicc.c [1.4]: 2001/06/12 16:02:39 rayjj)
-
-Patch from Mr. Toshiya Suzuki : Implementing multi-dimensional CID ranges,
-and fixing bugs about decoding text string with CID font : (1) when GS
-consumes undefined byte sequence (which cannot be mapped to some glyphs), GS
-aborts. (2) when selected CID font lacks the glyph for requested CID, GS
-aborts. (3) "notdefrange" defines SINGLE CID for undefined byte sequences in
-specified range, but current GS implementation take it as an offset to
-calculate MULTIPLE CID. (4) "cidrange" operators accept only full range
-specification (&lt;0000&gt; to &lt;FFFF&gt;) or 8 bit width range
-(&lt;xxyy&gt; to &lt;xxzz&gt;). Source Forge bug #415163. (gdebug.h [1.3],
-gsfcmap.c [1.14], gsmisc.c [1.12], gxfcmap.h [1.8]: 2001/06/16 19:02:32
-igorm)
-
-Notes that the 'foreign' member of the vm_spaces.memories allocator array is
-not used (always zero). (gsgc.h [1.3]: 2001/06/17 04:03:52 lpd)
-
-Makes embedded CFF fonts in PDF files omit the FontBBox if it is [0 0 0 0].
-This should only be a minor optimization, but SourceForge bug #428595 claims
-that Acrobat Reader cares. (gdevpsf2.c [1.13]: 2001/07/06 05:17:31 lpd)
-
-Changed debugging flag variables to const. (gshtscr.c [1.6],
-gsmdebug.h [1.3], gxchar.c [1.5], gxclimag.c [1.3], gxclip.c [1.4]:
-2001/08/01 16:21:34 stefan911)
-
-Changed fill patterns for unallocated memory to const (gsmemory.c [1.3]:
-2001/08/02 00:12:08 stefan911)
-
-These changes were originally put into the GS_6_5 branch on 2001/03/13. They
-are needed for using the current version of teh graphics library with the
-PCL6 code. Short description of changes: stat_.h: Added definition of
-stat_is_dir for use with MSVC. Not used in Ghostscript. gsptype1.c: Changes
-in image_PaintProc. This routine is used in gs_makepixmappattern.
-gs_makepixmappattern is only used in test8 (in gslib.c - a test module) and
-gs_makebitmappattern_xform. gs_makebitmappatern_xform is not used in
-Ghostscript. It is used in pcl6. (gsptype1.c [1.3]: 2001/08/07 22:13:29
-dancoby)
-
-Improves documentation for gs_string and gs_bytestring types; adds
-gs_free_[const_]bytestring procedures. (gsmemory.c [1.4], gsmemory.h [1.3],
-gstypes.h [1.3]: 2001/08/25 06:46:21 lpd)
-
-Speed up reading stdin when using callouts. Add platform-specific functions
-for reading stdin, to allow non-blocking reading of stdin if supported.
-Fixes Sourceforge bug #416973. (gp.h [1.7], unistd_.h [1.3]: 2001/09/15
-08:48:33 ghostgum)
-
-Improves poor performance of shadings in some cases, notably Coons01.ps.
-Long, thin triangles are now cut in half, rather than into four smaller
-triangles. Thus, the mesh is more regular. (gxshade4.c [1.5]: 2001/09/22
-16:15:43 raph)
-
-Updates version and date in documentation in preparation for 7.02
-pre-release. (gscdef.c [1.14]: 2001/09/22 16:26:22 raph)
-
-</pre><h2><a name="7.02-Other"></a>Other</h2><pre>
-
-Committing in . Modified Files: gs/icclib/icc.c gs/src/gdevpdf.c
-gs/src/gp_vms.c gs/src/gsnogc.c gs/src/icclib.mak gs/src/openvms.mmk
-gs/src/x_.h Added Files: gs/src/vms_x_fix.h Patches for OpenVMS
-(icclib/icc.c [1.4], vms_x_fix.h [1.1]: 2001/04/20 09:56:22 joukj)
-
-This is the fix for [ #425014 ] Compile error on AIX in icc.c. The control87
-is not defined on AIX systems (or probably on anything but x86 systems).
-This was suggested by Graeme Gill. (icclib/icc.c [1.5]: 2001/06/06 08:14:14
-dancoby)
-
-branches: 1.1.2; Adds initial support for macos. (gp_mac.h [1.1]: 2001/07/18
-20:20:50 giles)
-
-branches: 1.1.2; Adds the remaining macos source files (macsysstat.h [1.1],
-macsystypes.h [1.1]: 2001/07/18 20:27:39 giles)
-
-Adds generated macos build files to .cvsignore (.cvsignore [1.2]: 2001/07/31
-20:03:20 giles)
-
-<hr>
-
-<h1><a name="Version7.00"></a>Version 7.00 (2001-04-08)</h1>
-
-<p>
-This is the official 7.0 Ghostscript release. Most of the changes
-since 6.64 are quite minor, with the exception of one fix for ICC
-profile support.
-
-<p>
-All problems registered on SourceForge numbered 414588 or lower are
-closed, except for the following: 209350 215256, 219798, 221582,
-222534, 222727, 224056, 224863, 226477, 226584, 227684, 228180,
-228641, 230694, 231390, 404255, 404482, 405342, 406285, 406689,
-406696, 406979, 407342, 409887, 410371, 411753, 413114, 413669,
-413747, 414022, 414104, 414588.
-
-<h3><a name="7.00_Incompatible_changes"></a>Incompatible changes</h3>
-
-<pre>
-</pre>
-
-<h2><a name="7.00-Documentation"></a>Documentation</h2><pre>
-
-Updates broken and obsolete offsite links in the documenation.
-(doc/Devices.htm [1.28], doc/Fonts.htm [1.18], doc/Language.htm [1.30],
-doc/Lib.htm [1.11], doc/Maintain.htm [1.17], doc/Make.htm [1.29],
-doc/New-user.htm [1.26], doc/Projects.htm [1.29], doc/Ps2epsi.htm [1.12],
-doc/Readme.htm [1.27]: 2001/04/08 04:42:55 giles)
-
-Updates version number and date in preparation for 7.00 release.
-(doc/API.htm [1.9], doc/Bug-form.htm [1.20], doc/Bug-info.htm [1.17],
-doc/C-style.htm [1.17], doc/Commprod.htm [1.13], doc/Copying.htm [1.11],
-doc/Current.htm [1.11], doc/DLL.htm [1.13], doc/Develop.htm [1.38],
-doc/Devices.htm [1.29], doc/Drivers.htm [1.19], doc/Fonts.htm [1.19],
-doc/Helpers.htm [1.15], doc/History1.htm [1.11], doc/History2.htm [1.11],
-doc/History3.htm [1.11], doc/History4.htm [1.11], doc/History5.htm [1.13],
-doc/History6.htm [1.27], doc/Htmstyle.htm [1.16], doc/Install.htm [1.22],
-doc/Issues.htm [1.9], doc/Language.htm [1.31], doc/Lib.htm [1.12],
-doc/Maintain.htm [1.18], doc/Make.htm [1.30], doc/New-user.htm [1.27],
-doc/News.htm [1.84], doc/Projects.htm [1.30], doc/Ps-style.htm [1.11],
-doc/Ps2epsi.htm [1.13], doc/Ps2pdf.htm [1.29], doc/Psfiles.htm [1.19],
-doc/README [1.10], doc/Readme.htm [1.28], doc/Release.htm [1.35],
-doc/Source.htm [1.11], doc/Tester.htm [1.12], doc/Unix-lpr.htm [1.11],
-doc/Use.htm [1.27], doc/Xfonts.htm [1.11], doc/gs-vms.hlp [1.10],
-man/dvipdf.1 [1.8], man/font2c.1 [1.8], man/gs.1 [1.8], man/gslp.1 [1.8],
-man/gsnd.1 [1.8], man/pdf2dsc.1 [1.8], man/pdf2ps.1 [1.10],
-man/pdfopt.1 [1.8], man/pf2afm.1 [1.8], man/pfbtopfa.1 [1.9],
-man/printafm.1 [1.8], man/ps2ascii.1 [1.8], man/ps2epsi.1 [1.8],
-man/ps2pdf.1 [1.12], man/ps2pdfwr.1 [1.9], man/ps2ps.1 [1.15],
-man/wftopfa.1 [1.8]: 2001/04/09 06:20:01 raph)
-
-</pre><h2><a name="7.00-Procedures"></a>Procedures</h2><pre>
-
-Completes the change of default X directories to /usr/X11R6. Last commit on
-this was inadvertently incomplete. (unix-gcc.mak [1.19],
-unixansi.mak [1.14]: 2001/04/07 23:34:40 raph)
-
-Updates version number and date in preparation for 7.00 release.
-(version.mak [1.33]: 2001/04/09 06:20:03 raph)
-
-</pre><h2><a name="7.00-Utilities"></a>Utilities</h2><pre>
-
-Fixes problems:
- - Correct the Unix executable handing of the display device formats
-of 8bit and 24bit per pixel RGB. (dxmain.c [1.3]: 2001/04/08 08:40:29
-ghostgum)
- - Ghostscript should return to the caller, not exit. Remove exit()
-from gp_do_exit() for all platforms except VMS. (gp_dvx.c [1.4],
-gp_iwatc.c [1.5], gp_os9.c [1.4], gp_unix.c [1.5]: 2001/04/08 08:43:24
-ghostgum)
-
-</pre><h2><a name="7.00-PDF_writer"></a>PDF writer</h2><pre>
-
-Fixes problems:
- - AR4 doesn't like fonts with empty FontBBox which happens when the
-font contains only space characters. Small BBox causes AR 4 to display a
-hairline. So we use the full BBox. (gdevpdfw.c [1.11]: 2001/04/08 14:12:56
-alexcher)
-
-</pre><h2><a name="7.00-Interpreter"></a>Interpreter</h2><pre>
-
-Fixes problems:
- - Ghostscript should return to the caller, not exit. Remove exit()
-from gp_do_exit() for all platforms except VMS. (gs.c [1.6]: 2001/04/08
-08:43:24 ghostgum)
- - Need a cast to (gs_memory_t *) to prevent errors on some
-compliers. Change provided by Nelson H. F. Beebe. (zfdctd.c [1.6]:
-2001/04/09 05:15:57 rayjj)
- - Setting an ICC color space now invalidates the joint cache, so
-that TransformPQR gets computed. The profile is explicitly loaded so that
-the TransformPQR procedures have access to the white point. Also, the
-photometric interpretation of the hack for /All separation color spaces is
-reversed. Fixes Fixed_Original.pdf from Michael Jahn and Adobe tech note
-5002_EPSF_Spec.pdf. (zicc.c [1.2]: 2001/04/09 06:09:58 raph)
-
-Updates version number and date in preparation for 7.00 release.
-(lib/gs_init.ps [1.34]: 2001/04/09 06:20:03 raph)
-
-</pre><h2><a name="7.00-Library"></a>Library</h2><pre>
-
-Fixes problems:
- - Setting an ICC color space now invalidates the joint cache, so
-that TransformPQR gets computed. The profile is explicitly loaded so that
-the TransformPQR procedures have access to the white point. Also, the
-photometric interpretation of the hack for /All separation color spaces is
-reversed. Fixes Fixed_Original.pdf from Michael Jahn and Adobe tech note
-5002_EPSF_Spec.pdf. (gscsepr.c [1.9], gsicc.c [1.2], gsicc.h [1.2]:
-2001/04/09 06:09:58 raph)
-
-</pre>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2001 artofcode LLC.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Htmstyle.htm b/Master/xemtex/doc/ghostscript/Htmstyle.htm
deleted file mode 100644
index 05b4e82ef06..00000000000
--- a/Master/xemtex/doc/ghostscript/Htmstyle.htm
+++ /dev/null
@@ -1,778 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>HTML coding and style guidelines for Ghostscript documentation</title>
-<!-- $Id: Htmstyle.htm,v 1.18.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>HTML coding and style guidelines for Ghostscript documentation</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#Appearance">Appearance and contents</a>
-<ul>
-<li><a href="#Page_structure">Page structure</a>
-<li><a href="#Links_outside">Links to outside the Ghostscript documentation</a>
-<li><a href="#Images">Images and graphics</a>
-<li><a href="#index.html"><b><tt>index.html</tt></b></a>
-</ul>
-<li><a href="#Large_structure">HTML large structure</a>
-<ul>
-<li><a href="#HTML_head">HTML <b><tt>&lt;head&gt;</tt></b></a>
-<li><a href="#HTML_body">HTML <b><tt>&lt;body&gt;</tt></b></a>
-</ul>
-<li><a href="#Inner_structure">HTML inner structure</a>
-<ul>
-<li><a href="#Structuring_comments">Structuring comments</a>
-<li><a href="#Headers">Headers: <b><tt>&lt;Hn&gt;</tt></b></a>
-<li><a href="#Anchors">Anchors: <b><tt>&lt;a name="..."&gt;</tt></b></a>
-</ul>
-<li><a href="#Text">The presentation of text</a>
-<ul>
-<li><a href="#Text_sections">Sections of text</a>
-<ul>
-<li><a href="#Paragraphs">Paragraphs: <b><tt>&lt;p&gt;</tt></b></a>
-<li><a href="#Blockquote">Indented paragraphs: <b><tt>&lt;blockquote&gt;</tt></b></a>
-<li><a href="#Line_breaks">Explicit line breaks: <b><tt>&lt;br&gt;</tt></b></a>
-<li><a href="#Preformatted_text">Preformatted text: <b><tt>&lt;pre&gt;</tt></b></a>
-</ul>
-<li><a href="#Use_of_fonts">The use of different font faces</a>
-</ul>
-<li><a href="#Lists">Lists: <b><tt>&lt;ul&gt;, &lt;ol&gt;, &lt;dl&gt;</tt></b></a>
-<li><a href="#Tables">Tables: <b><tt>&lt;table&gt;</tt></b></a>
-<ul>
-<li><a href="#Readability">Readability for the user and the HTML writer</a>
-<li><a href="#Table_guidelines">Specific guidelines for coding tables</a>
-<li><a href="#Typical_table">HTML code for typical tables</a>
-</ul>
-<li><a href="#Unused_tags">Tags not used</a>
-<li><a href="#New_document">Creating a new document</a>
-<ul>
-<li><a href="#File_name">Name the new document in 8+3 format</a>
-<li><a href="#Plagiarize">Use an existing document as a model</a>
-<li><a href="#Readme_material">Write new references to go in <b><tt>Readme.htm</tt></b></a>
-<li><a href="#New_doc_other">Other considerations</a>
-</ul>
-<li><a href="#Miscellany">Miscellany</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-The most important intention in casting Ghostscript's documentation into
-Hypertext Markup Language (HTML) from simple text form is to improve its
-usefulness greatly to those who use, install, and build Ghostscript:
-everything else is details. The wide spread of World Wide Web browsers now
-makes it possible to distribute documents which are not only readable as
-text, but also richly cross-linked as hypertext. Using hypertext through a
-browser can reduce the effort required to find and use the information
-people often need in order to use Ghostscript.
-
-<p>
-The remainder of this document expresses the guidelines used to create the
-HTML form of the Ghostscript documentation. The guidelines are intended to
-encourage
-
-<ul>
-<li>documents that are easy to read and understand in all of the most-used
-forms: on screen with a browser, printed by a browser, or as plain text;
-
-<li>correct HTML that conforms to prevailing standards;
-
-<li>consistent HTML coding among all Ghostscript's documents; and
-
-<li>HTML documents that are as simple as possible in light of their
-contents; free of difficult, little-used, or proprietary constructs; and
-easy to understand and modify.
-</ul>
-
-<p>
-Here are those guidelines.
-
-<hr>
-
-<h2><a name="Appearance"></a>Appearance and contents</h2>
-
-<p>
-What the user sees browsing the documentation, and what a document
-developer or editor sees working with it, are different. This section is
-about what the user sees.
-
-<h3><a name="Page_structure"></a>Page structure</h3>
-
-<p>
-A Ghostscript document in HTML form should consist of
-
-<ol>
-<li>a visual header containing
-<ol type=a>
-<li>a conspicuous highlighted headline;
-<li>a table of contents;
-<li>"hints": references to other useful documents, always including
-<a href="Readme.htm">Readme.htm</a>;
-</ol>
-<li>the substantive contents;
-<li>a visual trailer consisting entirely of
-<ol type=a>
-<li>standard copyright and licensing text;
-<li>the Ghostscript version number; and
-<li>the date when the document was last modified.
-</ol>
-</ol>
-
-<p>
-This document is an example of this standard visible structure. Also see
-below about "<a href="#Structuring_comments">Structuring comments</a>" in
-HTML source code.
-
-<p>
-Where it makes sense to modify the standard structure to make the document
-more usable, do that. See
-<a href="Readme.htm"><b><tt>Readme.htm</tt></b></a> for an example: the
-introductory material at the beginning of the visible header, before the
-table of contents.
-
-<h3><a name="Links_outside"></a>Links to outside the Ghostscript documentation</h3>
-
-<p>
-Links to sites and documents outside the ghostscript distribution
-must carry the <code>class="offsite"</code> attribute and value. This signals special
-formatting to the stylesheet to assist users reading offline.
-
-<p>
-Avoid gratuitous commercial links; for instance, link the title of a book
-to its publisher, not to one particular on-line bookseller. See
-<a href="Language.htm#Capabilities"><b><tt>Language.htm</tt></b></a> for an
-example, the reference to the <em>PostScript Language Reference
-Manual</em>.
-
-<p>
-Similarly, where you have a choice, refer to free software rather than
-commercial products. See
-<a href="Make.htm#Third-party_libraries">Make.htm</a> for an example, the
-reference to <a href="Make.htm#Third-party_libraries">InfoZip
-<b><tt>unzip</tt></b></a> (where many commercial products provide similar
-functions).
-
-<h3><a name="Images"></a>Images and graphics</h3>
-
-<p>
-Use no graphics or images. The documents are text-only, so nothing is lost
-when a document is converted into ASCII text. This is an explicit initial
-design goal of the HTML documentation.
-
-<h3><a name="index.html"></a><b><tt>index.html</tt></b></h3>
-
-<p>
-<b><tt>index.html</tt></b> is not a part of the visible Ghostscript
-documentation itself, but when it is placed with all the
-<b><tt>*.htm</tt></b> files in a directory and a browser refers to the
-directory name alone, most servers are configured to deliver a file named
-<b><tt>index.html</tt></b> by default. This one does nothing except
-immediately to open the introductory Ghostscript document
-<a href="index.html"><b><tt>Readme.htm</tt></b></a>. This is intended to
-make life easier for both webmasters and users.
-
-<hr>
-
-<h2><a name="Large_structure"></a>HTML large structure</h2>
-
-<h3><a name="HTML_head"></a>HTML <b><tt>&lt;head&gt;</tt></b></h3>
-
-<p>
-Besides the essential HTML structure elements, Ghostscript HTML document's
-<b><tt>&lt;head&gt;</tt></b> consists of three elements in this order:
-
-<ol>
-<li>A <b><tt>&lt;title&gt;</tt></b>, usually the same text as the
-<a href="#Headline">headline</a>
-
-<li>An RCS identification line giving the name of the file in an HTML
-comment:
-
-<blockquote>
-<!-- The next line must not contain the literal string $,I,d,:! -->
-<b><tt>&lt;!-- $Id</tt><tt>: </tt></b><b><em>{file name}</em></b><b><tt>.htm $ --&gt;</tt></b>
-</blockquote>
-
-<li>For documents converted from another form, an HTML comment line giving
-the name of the original file before it was edited and converted to HTML:
-
-<blockquote>
-<b><tt>&lt;!-- Originally: </tt></b><b><em>{file name}</em></b><b><tt> --&gt;</tt></b>
-</blockquote>
-</ol>
-
-<h3><a name="HTML_body"></a>HTML <b><tt>&lt;body&gt;</tt></b></h3>
-
-<p>
-A Ghostscript HTML document's <b><tt>&lt;body&gt;</tt></b> consists of five
-elements in this order:
-
-<ol>
-<li><a name="Headline"></a>The <b><em>headline</em></b> is conspicuous text
-at the top of the page, usually the same as the
-<a href="#Structure_head"><b><tt>&lt;title&gt;</tt></b></a> text. It is
-always in a table whose purpose is to provide a colored background using
-<b><tt>bgcolor</tt></b>, going the full width of the page:
-
-<blockquote>
-<b><tt>&lt;p&gt;&lt;table width="100%" border="0"&gt;<br>
-&lt;tr&gt;&lt;th align="center" bgcolor="#CCCC00"&gt;&lt;font size=6&gt;</tt></b><br>
-<b><em>{Text}</em></b><br>
-<b><tt>&lt;/font&gt;<br>
-&lt;/table&gt;</tt></b>
-</blockquote>
-
-<li><a name="Table_of_contents"></a>
-The <b><em>table of contents</em></b> consists of nested unordered
-lists <b><tt>&lt;ul&gt;</tt></b>, in most documents assembled strictly from
-the <b><tt>&lt;Hn&gt;</tt></b> headers. The levels of nesting in the table
-of contents correspond to the level numbers of the headers.
-
-<li>The <b><em>hint</em></b> is a short section suggesting where to look
-for other related information. With very few exceptions this always
-includes a reference and link to
-<a href="Readme.htm"><b><tt>Readme.htm</tt></b></a>, but may include other
-suggestions and references.
-
-<li>The substance of the document.
-
-<li>The <b><em>trailer</em></b> contains, in a small font size,
-
-<ol type=a>
-<li>the <b><em>copyright notice</em></b> and other legal boilerplate text
-<li>the <b><em>version number</em></b> of Ghostscript and the
-<b><em>date</em></b> when the file was last modified.
-</ol>
-</ol>
-
-<p>
-This document for an example of that structure.
-
-<hr>
-
-<h2><a name="Inner_structure"></a>HTML inner structure</h2>
-
-<h3><a name="Structuring_comments"></a>Structuring comments</h3>
-
-<p>
-Special comment lines within the HTML files mark internally the visible
-sections of the document. They make it easy for both document developers
-and programs to handle the HTML code. Each of these comments is exactly 80
-characters wide, and each important section of a document is bracketed by a
-unique beginning and ending pair. View the source code of this document
-for an example of these structuring comments. The sections they mark are:
-
-<ol>
-<li>the <b><em>visible header</em></b>
-<ol type=a>
-<li>the <a href="#Headline"><b><em>headline</em></b></a>
-<li>the <b><em>table of contents</em></b>
-<li>the "see also" <b><em>hints</em></b>
-</ol>
-<li>the <b><em>body</em></b>
-<li>the <b><em>trailer</em></b>
-</ol>
-
-<h3><a name="Headers"></a>Headers: <b><tt>&lt;Hn&gt;</tt></b></h3>
-
-<p>
-Give a header <b><tt>&lt;Hn&gt;</tt></b> this structure:
-
-<blockquote><b><tt>
-&lt;h2&gt;&lt;a name="Head_anchor"&gt;&lt;/a&gt;Header text&lt;/h2&gt;
-</tt></b></blockquote>
-
-<p>
-That is, the opening header tag, an anchor, the header text, and the
-closing tag.
-
-<p>
-Represent every header in the table of contents, linked
-<b><tt>&lt;a&nbsp;href="#..."&gt;</tt></b>...<b><tt>&lt;/a&gt;</tt></b> to
-the header. Of course, the headers are also convenient linkage points for
-references from other documents.
-
-<h3><a name="Anchors"></a>Anchors: <b><tt>&lt;a name="..."&gt;</tt></b></h3>
-
-<p>
-Give an anchor a name consisting only of letters, digits, dots
-("<b><tt>.</tt></b>"), hyphens ("<b><tt>-</tt></b>"), and underscores
-("<b><tt>_</tt></b>"), but not white space or other punctuation marks.
-This ensures that the name is readable and that an entire name always
-appears on a single line of HTML source both where it's defined and
-everywhere it's used, making it simple to find anchors by text search in
-the HTML source code.
-
-<p>
-Choose anchor names to be readable and meaningful in the HTML source code.
-For instance:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Use this form
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>... <b><em>NOT</em></b> this form
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>&lt;a&nbsp;name="Image_formats"&gt;&lt;/a&gt;</tt></b>
- <td>&nbsp;
- <td><b><tt>&lt;a&nbsp;name="Imgfts"&gt;&lt;/a&gt;</tt></b>
-</table></blockquote>
-
-<p>
-Anchors should be empty, that is
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Use this form
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>... <b><em>NOT</em></b> this form
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>&lt;a&nbsp;name="..."&gt;&lt;/a&gt;</tt></b>
- <td>&nbsp;
- <td><b><tt>&lt;a&nbsp;name="..."&gt;</tt></b><b><em>anything</em></b><b><tt>&lt;/a&gt;</tt></b>
-</table></blockquote>
-
-<p>
-<a name="Anchor_placement"></a>Place an anchor within a paragraph (indented
-paragraph, list item, head, etc.) and at its beginning.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Use this form
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>... <b><em>NOT</em></b> this form
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>&lt;p&gt;&lt;a&nbsp;name="..."&gt;&lt;/a&gt;</tt></b>
- <td>&nbsp;
- <td><b><tt>&lt;p&gt;</tt></b><b><em>&nbsp;...text...&nbsp;</em></b><b><tt>&lt;a&nbsp;name="..."&gt;&lt;/a&gt;</tt></b>
-<tr valign=top> <td><b><tt>&lt;p&gt;&lt;a&nbsp;name="..."&gt;&lt;/a&gt;</tt></b>
- <td>&nbsp;
- <td><b><tt>&lt;a&nbsp;name="..."&gt;&lt;/a&gt;&lt;p&gt;</tt></b>
-<tr valign=top> <td><b><tt>&lt;li&gt;&lt;a&nbsp;name="..."&gt;&lt;/a&gt;</tt></b>
- <td>&nbsp;
- <td><b><tt>&lt;a&nbsp;name="..."&gt;&lt;/a&gt;&lt;li&gt;</tt></b>
-</table></blockquote>
-
-<hr>
-
-<h2><a name="Text"></a>The presentation of text</h2>
-
-<h3><a name="Text_sections"></a>Sections of text</h3>
-
-<h4><a name="Paragraphs"></a>Paragraphs: <b><tt>&lt;p&gt;</tt></b></h4>
-
-<p>
-Define unindented paragraphs with <b><tt>&lt;p&gt;</tt></b>, never with
-explicit line breaks <b><tt>&lt;br&gt;</tt></b>, and make them
-ragged-right, not right-filled or centered. Put the paragraph tag
-<b><tt>&lt;p&gt;</tt></b> on a line alone, except when it is
-<a href="#Anchor_placement">followed immediately by an anchor</a>.
-Don't place the anchor before the paragraph tag.
-
-<h4><a name="Blockquote"></a>Indented paragraphs: <b><tt>&lt;blockquote&gt;</tt></b></h4>
-
-<p>
-Define indented paragraphs with <b><tt>&lt;blockquote&gt;</tt></b>. Avoid
-elaborate nested indentation -- that is, more than two levels. It is
-generally a poor idea to try to make indentation carry too much weight of
-meaning for text, so use indentation simply to separate visual elements for
-easier reading.
-
-<h4><a name="Line_breaks"></a>Explicit line breaks: <b><tt>&lt;br&gt;</tt></b></h4>
-
-<p>
-Use explicit line breaks <b><tt>&lt;br&gt;</tt></b> sparingly, and never as
-a substitute for paragraph tags. Do use them in
-
-<ul>
-<li>multi-line addresses
-<li>formatted coding examples
-<li>table entries, sparingly
-</ul>
-
-<h4><a name="Preformatted_text"></a>Preformatted text: <b><tt>&lt;pre&gt;</tt></b></h4>
-
-<p>
-Use preformatted text <b><tt>&lt;pre&gt;</tt></b> exclusively for material
-that must be presented with exact spacing in a monospaced font, such as
-extended coding examples. Where extended preformatted text seems likely to
-be wider than a typical browser window, reduce the font size:
-
-<blockquote>
-<b><tt>&lt;font size="-1"&gt;&lt;pre&gt;</tt></b><br>
-<b><em>...&nbsp;Wide preformatted text&nbsp;...</em></b><br>
-<b><tt>&lt;/pre&gt;&lt;/font&gt;</tt></b>
-</blockquote>
-
-<h3><a name="Use_of_fonts"></a>The use of different font faces</h3>
-
-<p>
-Do not use named fonts. Use only standard markup to specify fonts, as
-shown in this table.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Use of fonts</font><hr>
-<tr valign=bottom>
- <th align=left>Tag
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Used for
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>&lt;address&gt;</tt></b>
- <td>&nbsp;
- <td>Addresses in running text
-<tr valign=top> <td><b><tt>&lt;b&gt;</tt></b>
- <td>&nbsp;
- <td>Emphasis everywhere
-<tr valign=top> <td><b><tt>&lt;em&gt;</tt></b>
- <td>&nbsp;
- <td>Emphasis, usually in running text; with <b><tt>&lt;b&gt;</tt></b>, strong emphasis
-<tr valign=top> <td><b><tt>&lt;font size=</tt></b><b><em>N</em></b><b><tt>&gt;</tt></b>
- <td>&nbsp;
- <td>Table headings, extended <b><tt>&lt;pre&gt;</tt></b> examples
-<tr valign=top> <td><b><tt>&lt;pre&gt;</tt></b>
- <td>&nbsp;
- <td>Preformatted text (to control spacing)
-<tr valign=top> <td><b><tt>&lt;small&gt;</tt></b>
- <td>&nbsp;
- <td>Superscripts (smaller than <b><tt>&lt;font size="-1"&gt;</tt></b>)
-<tr valign=top> <td><b><tt>&lt;sup&gt;</tt></b>
- <td>&nbsp;
- <td>Superscripts
-<tr valign=top> <td><b><tt>&lt;tt&gt;</tt></b>
- <td>&nbsp;
- <td>With <b><tt>&lt;b&gt;</tt></b>, used for specific names of
- code, programs, and data in running text, and in short examples
-</table></blockquote>
-
-<hr>
-
-<h2><a name="Lists"></a>Lists: <b><tt>&lt;ul&gt;, &lt;ol&gt;, &lt;dl&gt;</tt></b></h2>
-
-<p>
-Don't over-use lists: instead simply use clear wording in running text
-wherever possible. Use a list where the special formatting improves the
-material's clarity and readability.
-
-<p>
-Most simple lists should be unordered (bulleted) lists
-<b><tt>&lt;ul&gt;</tt></b>. Use an ordered (numbered or alphabetized) list
-<b><tt>&lt;ol&gt;</tt></b> only where the exact ordering or an exact count
-is important.
-
-<p>
-Where entries in a descriptive list <b><tt>&lt;dl&gt;</tt></b> contain
-extended descriptions <b><tt>&lt;dd&gt;</tt></b> -- especially if the
-descriptions contain paragraph breaks or tables -- improve the spacing
-between entries by making each entry a separate list. That is, enclose
-each entry in a separate list to give it more readable spacing, rather than
-putting many <b><tt>&lt;dt&gt;...&lt;dd&gt;...</tt></b> entries in a single
-list:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Use this form
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>... <b><em>NOT</em></b> this form
-<tr> <td colspan=3><hr>
-<tr> <td valign=top>
- <b><tt>&lt;dl&gt;</tt></b><br>
- <b><tt>&lt;dt&gt;</tt></b>Term<br>
- <b><tt>&lt;dd&gt;</tt></b>Description<br>
- <b><tt>&lt;p&gt;</tt></b>Another paragraph of description<br>
- <b><tt>&lt;/dl&gt;</tt></b><br>
- &nbsp;<br>
- <b><tt>&lt;dl&gt;</tt></b><br>
- <b><tt>&lt;dt&gt;</tt></b>Another term<br>
- <b><tt>&lt;dd&gt;</tt></b>Another description<br>
- <b><tt>&lt;/dl&gt;</tt></b><br>
- ...<br>
- <td>&nbsp;
- <td valign=top>
- <b><tt>&lt;dl&gt;</tt></b><br>
- <b><tt>&lt;dt&gt;</tt></b>Term<br>
- <b><tt>&lt;dd&gt;</tt></b>Description<br>
- <b><tt>&lt;p&gt;</tt></b>Another paragraph of description<br>
- <b><tt>&lt;dt&gt;</tt></b>Another term<br>
- <b><tt>&lt;dd&gt;</tt></b>Another description<br>
- ...<br>
- <b><tt>&lt;/dl&gt;</tt></b>
-</table></blockquote>
-
-<p>
-This may be more work for the HTML writer, but the results for the reader
-are often much better.
-
-<hr>
-
-<h2><a name="Tables"></a>Tables: <b><tt>&lt;table&gt;</tt></b></h2>
-
-<h3><a name="Readability"></a>Readability for the user and the HTML writer</h3>
-
-<p>
-Format tables to be as readable as possible both with a browser and when
-converted to plain text. Browsers and converters of all kinds handle
-tables idiosyncratically, so there seems to be more art than science to
-reaching this end, which accounts for all the detail in the guidelines for
-tables: it is the reason for all the uses of background color
-<b><tt>bgcolor</tt></b>, horizontal rules <b><tt>&lt;hr&gt;</tt></b>, and
-explicit spacing.
-
-<p>
-Secondarily, arrange HTML source code for tables to be readable by the
-writer and developer.
-
-<h3><a name="Table_guidelines"></a>Specific guidelines for coding tables</h3>
-
-<ul>
-<li>Large tables have heads with the same background color as the page's
-<a href="#Headline">headline</a>. (Color is used only in tables and only
-this way, and it is the same color everywhere. In consideration of
-differences of color vision, the color is chosen so that normal black text
-contrasts with a brighter background, and the color itself against white.)
-
-<li>Do not use borders for tables; they almost invariably only clutter the
-appearance without adding to clarity, and they don't convert well to plain
-text. For visual spacing prefer white space.
-
-<li>Set cell padding and spacing to 0. Use explicit white space for
-readability, not implicit white space.
-
-<li>Begin the code for a new row <b><tt>&lt;tr&gt;</tt></b> on a new line.
-Generally use <b><tt>valign=top</tt></b> to control the placement of text
-in a row for readability with a browser or as plain text.
-
-<li>Code the first column of a row beginning on the same line as the
-beginning of the row, and then begin every other column on a separate line.
-Always precede <b><tt>&lt;td&gt;</tt></b> by a tab character.
-
-<li>Separate two columns of substantive material by a visually empty column
-of nonbreaking spaces for readability. Specify the width of this empty
-column in the first row, and in all other rows give that column a single
-nonbreaking space.
-
-<li>Use horizontal rules and visually empty rows for clarity, but
-sparingly. Be consistent with the existing tables.
-
-<li>Give every cell some contents: put a nonbreaking space in a visually
-empty cell as a placeholder.
-</ul>
-
-<h3><a name="Typical_table"></a>HTML code for typical tables</h3>
-
-<p>
-The HTML source code for a typical large table should look like this:
-
-<blockquote>
-<pre>&lt;table cellpadding=0 cellspacing=0&gt;
-&lt;tr&gt;&lt;th colspan=5 bgcolor="#CCCC00"&gt;&lt;hr&gt;&lt;font size="+1"&gt;Large&nbsp;table&lt;/font&gt;&lt;hr&gt;
-&lt;tr&gt; &lt;th align=left&gt;...
- &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
- &lt;th align=left&gt;...
- &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
- &lt;th align=left&gt;...
-&lt;tr&gt; &lt;td&gt;...
- &lt;td&gt;&amp;nbsp;&amp;nbsp;
- &lt;td&gt;...
- &lt;td&gt;&amp;nbsp;
- &lt;td&gt;...
-...
-&lt;/table&gt;
-</pre></blockquote>
-
-<p>
-The HTML source code for a typical small table should look like this:
-
-<blockquote>
-<pre>&lt;table cellpadding=0 cellspacing=0&gt;
-&lt;tr&gt; &lt;td&gt;...
- &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
- &lt;td&gt;...
-&lt;tr&gt; &lt;td&gt;...
- &lt;td&gt;&amp;nbsp;
- &lt;td&gt;...
-...
-&lt;/table&gt;
-</pre></blockquote>
-
-<hr>
-
-<h2><a name="Unused_tags"></a>Tags not used</h2>
-
-<p>
-Don't use optional tags (ones not required by the HTML standard). These
-include <b><tt>&lt;/dd&gt;</tt></b>, <b><tt>&lt;/dt&gt;</tt></b>,
-<b><tt>&lt;/li&gt;</tt></b>, <b><tt>&lt;/p&gt;</tt></b>,
-<b><tt>&lt;/tr&gt;</tt></b>, <b><tt>&lt;/th&gt;</tt></b>, and
-<b><tt>&lt;/td&gt;</tt></b>.
-
-<hr>
-
-<h2><a name="New_document"></a>Creating a new document</h2>
-
-<h3><a name="File_name"></a>Name the new document in 8+3 format</h3>
-
-<p>
-If you create a new Ghostscript HTML document, choose for it a name in 8+3
-format for cross-platform compabitility:
-
-<blockquote>
-<b><em>Name</em></b><b><tt>.htm</tt></b>
-</blockquote>
-
-<p>
-where "<b><em>Name</em></b>" is no more than eight characters.
-
-<p>
-Begin the new file name with an upper-case letter like the existing names,
-which are in mixed case beginning with upper-case letters. Use spelling,
-not case, to distinguish between names: that is, don't create a new file
-whose name differs from an existing one only by the difference between
-upper and lower case, because some platforms can't store two such files.
-
-<h3><a name="Plagiarize"></a>Use an existing document as a model</h3>
-
-<p>
-To create an entirely new Ghostscript document, plagiarize this one for the
-<a href="#Structuring_comments">structuring comments</a> and other useful
-parts. Then, using the <a href="#Structuring_comments">structuring
-comments</a> as a guide to the sections of the document (in a text editor,
-search for "<b><tt>&lt;!--&nbsp;[</tt></b>"):
-
-<ul>
-<li>insert your own HTML title and <a href="#Headline">headline</a> (they
-should ordinarily be the same text) in place of the old ones;
-
-<li>insert your own RCS <b><tt>$Id</tt></b> in place of the old one in the
-<a href="#Structure_head">HTML header</a>;
-
-<li>delete the old entries in the <a href="#Table_of_contents">table of
-contents</a>;
-
-<li>keep the hint paragraph;
-
-<li>delete the entire contents section between the structuring comments;
-and
-
-<li>in the trailer, update the version number and date.
-</ul>
-
-<p>
-You now have a template document ready for new contents.
-
-<h3><a name="Readme_material"></a>Write new references to go in <b><tt>Readme.htm</tt></b></h3>
-
-<p>
-Write material to go in <a href="Readme.htm"><b><tt>Readme.htm</tt></b></a>
-that describes the new document, and links to it from two sections:
-
-<ul>
-<li>the <a href="Readme.htm#Theme_roadmap">thematic section</a> and
-
-<li>the descriptions of documentation
-<a href="Readme.htm#Ordered_roadmap">arranged by file name</a>.
-</ul>
-
-<h3><a name="New_doc_other"></a>Other considerations</h3>
-
-<p>
-Follow the other guidelines here, including which elements of the
-document should go in which section according to the structuring comments,
-and <a href="#Headers">anchoring every <b><tt>&lt;Hn&gt;</tt></b>
-header</a>. As you create text and headers, you will want to rebuild the
-<a href="#Table_of_contents">table of contents</a> from the headers
-occasionally.
-
-<p>
-Pete Kaiser &lt;<a href="mailto:kaiser@acm.org">kaiser@acm.org</a>&gt;
-wrote a package of GNU emacs functions specifically to handle Ghostscript
-HTML documentation, including functions to build a table of contents from
-headers in an HTML document, and to build and maintain tables and
-other structures built along the guidelines in this document.
-
-<hr>
-
-<h2><a name="Miscellany"></a>Miscellany</h2>
-
-<p>
-Use <b><tt>&lt;&gt;</tt></b> to bracket links to visible email addresses
-(<b><tt>mailto</tt></b>) in running text. This makes it easy for a user to
-cut and paste the entire name and address into another document or mailer,
-for instance
-
-<blockquote>
-Free Software Foundation &lt;<a href="mailto:gnu@gnu.org">gnu@gnu.org</a>&gt;
-</blockquote>
-
-<p>
-For exponentiation use "<b><tt>^</tt></b>" (not "**" or "exp()") plus
-writing the exponent as a superscript in <b><tt>&lt;small&gt;</tt></b>
-size:
-
-<blockquote>
-Something<b><tt>^&lt;sup&gt;</tt></b><b><tt>&lt;small&gt;</tt></b>exponent<b><tt>&lt;/small&gt;&lt;/sup&gt;</tt></b>.
-</blockquote>
-
-<p>
-to look like this:
-
-<blockquote>
-Something<b><tt>^</tt></b><sup><small>exponent</small></sup>
-</blockquote>
-
-<p>
-This is intended for readability both in a browser and as plain text.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Humor.htm b/Master/xemtex/doc/ghostscript/Humor.htm
deleted file mode 100644
index 2df2a61a1b4..00000000000
--- a/Master/xemtex/doc/ghostscript/Humor.htm
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Another Ghostscript interpreter</title>
-<!-- $Id: Humor.htm,v 1.3.2.1 2002/02/22 19:45:54 ray Exp $ -->
-<!-- Originally: humor.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Another Ghostscript interpreter</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document contains a humorous message, verbatim except for
-minor spelling corrections, received from a friend out in network-land.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<hr>
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-Regarding Ghostscript: I hate to say this to you but I've already
-implemented a Ghostscript interpreter. I'm happy to see that someone else
-has recognized the need dead people have for computers. I have included an
-example of the output of my Ghostscript at the end of this letter.
-
-<p>
-The interpreter is written in a language called cant-C, developed by Mr.
-Turing last year. The compiler is easily ported to any environment you
-care to name. I would be more than happy to send you a copy, but you must
-first contact my lawyer for this venture, Thomas Jefferson of Phila. Pa..
-(As a side note, Mr. Jefferson is very excited by Ghostscript. Look for
-The Declaration of Independance V1.1 RSN).
-
-<p>
-The possibilities for Ghostscript go far beyond Deathtop publishing, I'm
-sure you'll agree. I have contacted numerous authors who may be interested
-in using Ghostscript (Shakespeare, Hemingway, etc) and all have been very
-excited by what they've seen. (Shakespeare wants to write a modern Romeo
-and Juliette, called Romeo and Julio, the story of 2 gay hispanic men kept
-apart by their parents.)
-
-<p>
-Anyway, here is the Ghostscript example I promised. Feel free to show this
-to your friends and colleagues, I'm sure they'll all be suitably impressed.
-
-<pre>
-------Cut Here--------------------------------------
-------Cut Here--------------------------------------
-</pre>
-
-<!-- [2.0 end contents]
-==================================================== -->
-
-<!-- [3.0 begin visible trailer]
-=========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2001 artofcode LLC. All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-For more information about licensing, please refer to
-http://www.ghostscript.com/licensing/. For information on
-commercial licensing, go to http://www.artifex.com/licensing/ or
-contact Artifex Software, Inc., 101 Lucas Valley Road #110,
-San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-
-<p>
-<small>Ghostscript version 7.00, 8 April 2001
-</small>
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Install.htm b/Master/xemtex/doc/ghostscript/Install.htm
deleted file mode 100644
index 060de229bae..00000000000
--- a/Master/xemtex/doc/ghostscript/Install.htm
+++ /dev/null
@@ -1,540 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>How to install Ghostscript</title>
-<!-- $Id: Install.htm,v 1.26.2.13.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: install.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>How to install Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Overview">Overview of how to install Ghostscript</a>
-<li><a href="#Install_Unix">Installing Ghostscript on Unix</a>
-<ul>
-<li><a href="#Shared_object">Ghostscript as a shared object</a>
-<li><a href="#Install_GNULinux">Additional notes on GNU/Linux</a>
-</ul>
-<li><a href="#Install_Windows">Installing Ghostscript on MS Windows</a>
-<li><a href="#Install_VMS">Installing Ghostscript on OpenVMS</a>
-<li><a href="#Install_DOS">Installing Ghostscript on DOS</a>
-<li><a href="#Install_OS2">Installing Ghostscript on OS/2 2.x</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and "<a href="Make.htm">How to build Ghostscript from source
-code</a>".
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Overview"></a>Overview of how to install Ghostscript</h2>
-
-<p>
-You must have three things to run Ghostscript:
-<ol>
-<li>The Ghostscript executable file; on some operating
-systems, more than one file is required. These are entirely
-platform-specific. See below for details.
-
-<li>Initialization files that Ghostscript reads in when it
-starts up; these are the same on all platforms.
-<ul>
-<li><b><tt>gs_</tt></b>*<b><tt>.ps</tt></b> unless Ghostscript was compiled
-using the "compiled initialization files" option. See the documentation of
-<a href="Psfiles.htm">PostScript files distributed with Ghostscript</a>.
-
-<li><b><tt>pdf_</tt></b>*<b><tt>.ps</tt></b> if Ghostscript was compiled
-with the ability to interpret Adobe Portable Document Format (PDF) files,
-that is, <b><tt>pdf.dev</tt></b> was included in
-<b><tt>FEATURE_DEVS</tt></b> when Ghostscript was built.
-
-<li><b><tt>Fontmap</tt></b> and <b><tt>Fontmap.GS</tt></b> (or the
-appropriate <b><tt>Fontmap.</tt></b><em>xxx</em> for your platform), unless
-you plan always to invoke Ghostscript with the <a
-href="Use.htm#FONTMAP_switch"><b><tt>-dNOFONTMAP</tt></b> switch</a>.
-</ul>
-
-<li>Fonts, for rendering text. These are platform-independent,
-but if you already have fonts of the right kind on your platform,
-you may be able to use those. See below for details. Also see the
-<a href="Fonts.htm">documentation on fonts</a>.
-</ol>
-
-<p>
-The <a href="Use.htm">usage documentation</a> describes the search
-algorithms used to find initialization files and font files. The
-per-platform descriptions that follow tell you where to install these
-files.
-
-<hr>
-
-<h2><a name="Install_Unix"></a>Installing Ghostscript on Unix</h2>
-
-<p>
-Ghostscript uses a GNU autoconf-based configure, build and install method
-common to many modern software packages. In general the following with suffice
-to build ghostscript:
-<blockquote><tt><b>
- ./configure<br>
- make
-</b></tt></blockquote>
-and then it may be installed in the default location with:
-<blockquote><b>
- <tt>make install</tt>
-</b></blockquote>
-This last command may need to be performed with super user privileges.
-
-<p>
-You can set the installation directory by adding <tt>--prefix=<em>path</em></tt>
-to the configure invocation in the first step. The default prefix is <tt>/usr/local</tt>,
-which is to say the <tt>gs</tt> executable is installed as <tt>/usr/local/bin/gs</tt>.
-
-</p>A list of similar configuration options is available via <tt>./configure --help</tt>
-
-<p>
-For more detailed information on building Ghostscript see
-<a href="Make.htm#Unix_build">how to build Ghostscript on Unix</a> in
-the documentation on building Ghostscript, especially regarding information
-on using the older <a href="Make.htm#UNIX_makefile">hand edited makefile</a>
-approach. Whatever configuration method you use, execute "<b><tt>make
-install</tt></b>" to install the executable and all the required and
-ancillary files after the build is complete.
-
-<h3><a name="Unix_Fonts"></a>Fonts</h3>
-
-<p>
-The makefile installs all the files except fonts under the directory
-defined in the makefile as <b><tt>prefix</tt></b>. Fonts need to be
-installed separately. The fonts should be installed in
-<tt><em>{prefix}</em>/share/ghostscript/fonts</tt>.
-(That is, <tt>/usr/local/share/ghostscript/fonts/</tt> if you used the default
-configuration above.)
-
-<p>
-You can have ghostscript use other fonts on your system by adding
-entries to the fontmap or adding the directories to the GS_FONTMAP environment
-variable. See the <a href="Use.htm#Font_lookup">usage documentation</a> for more
-information.
-For example, many GNU/Linux distributions place fonts under <tt>/usr/share/fonts</tt>.
-
-<h3><a name="Shared_object"></a>Ghostscript as a shared object</h3>
-If you've built Ghostscript as a shared object, instead of '<tt>make install</tt>',
-you must use '<tt>make soinstall</tt>'.
-See <a href="Make.htm#Shared_object">how to build Ghostscript
-as a shared object</a> for more details.
-
-<h3><a name="Install_GNULinux"></a>Additional notes on GNU/Linux</h3>
-
-<p>
-For GNU/Linux, you may be able to install or upgrade Ghostscript from
-precompiled <a href="http://www.rpm.org">RPM</a> files using:
-
-<blockquote><b><tt>
-rpm -U ghostscript-N.NN-1.i386.rpm<br>
-rpm -U ghostscript-fonts-N.NN-1.noarch.rpm
-</tt></b></blockquote>
-
-<p>
-However, please note that we do not create RPMs for Ghostscript, and we take
-no responsibility for RPMs created by others.
-
-<hr>
-
-<h2><a name="Install_Windows"></a>Installing Ghostscript on MS Windows</h2>
-
-<p>
-We usually distribute Ghostscript releases for Windows as self-extracting
-archive files, since this is the most convenient form for users. These
-files can also be unpacked as if they were plain zip files.
-
-<p>
-The self-extracting archive is normally named
-<b><tt>gs###w32.exe</tt></b>,
-where ### is the release number (e.g., 650 for Ghostscript 6.50,
-700 for Ghostscript 7.00).
-
-<h3><a name="Windows4"></a>Windows 95/98 and NT 4</h3>
-
-<p>
-To install a self-extracting Ghostscript archive on Windows 95/98 or
-Windows NT4/2000, you need just this self-extracting archive file.
-Run this file to install Ghostscript.
-
-<p>
-Alternatively, if you have the zip file, unzip it to a temporary
-directory then run the included <b><tt>setupgs.exe</tt></b>.
-After the setup program has finished, remove the temporary files.
-
-<h3><a name="General_Windows"></a>General Windows configuration</h3>
-
-<p>
-The archive includes files in these subdirectories:
-
-<blockquote><b><tt>
-gs<em>#.##</em>\bin
-<br>gs<em>#.##</em>\lib
-<br>gs<em>#.##</em>\examples
-<br>gs<em>#.##</em>\doc
-<br>fonts
-</tt></b></blockquote>
-
-<p>
-The actual executable files, in the <b><tt>gs<em>#.##</em>\bin</tt></b>
-subdirectory, are:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>GSWIN32.EXE</tt></b>
- <td>&nbsp;
- <td>32-bit Ghostscript using windows
-<tr valign=top> <td><b><tt>GSWIN32C.EXE</tt></b>
- <td>&nbsp;
- <td>32-bit Ghostscript using only the command line
-<tr valign=top> <td><b><tt>GSDLL32.DLL</tt></b>
- <td>&nbsp;
- <td>32-bit dynamic link library containing most of Ghostscript's
-functionality
-</table></blockquote>
-
-<p>
-See "<a href="#Install_DOS">Installing Ghostscript on DOS</a>" below for
-information about using Adobe Type Manager, Adobe Type Basics, or Adobe
-Acrobat fonts. If your system uses TrueType fonts, you can get them
-converted to a Ghostscript-compatible format at the time you select your
-"printer" by doing the following:
-
-<blockquote><ol>
-<li>Open control panel and double-click on the "Printers" icon.
-<li>Select your Postscript printer.
-<li>Choose Setup.
-<li>Choose Options.
-<li>Choose Advanced.
-<li>At the top of the dialog box you will see TrueType Fonts Send to
-Printer As: Choose <em>(drop-down menu)</em> Adobe Type 1.
-<li>Uncheck Use Printer Fonts for All TrueType Fonts and Use
-Substitution
-Table.
-<li>OK.
-<li>OK etc.
-</ol></blockquote>
-
-<p>
-That's it! Your TrueType fonts will automatically be downloaded in your
-PostScript file for Ghostscript to use.
-
-<p>
-For printer devices, the default output is:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td>The default printer
- <td>&nbsp;&nbsp;&nbsp;
- <td>Win95 or WinNT
-<tr valign=top> <td>Prompt for a printer port
- <td>&nbsp;
- <td>Win32s (Windows 3.1)
-</table></blockquote>
-
-<p>
-This can be modified as follows.
-
-<blockquote>
-<dl>
-<dt><b><tt>-sOutputFile="LPT1:"</tt></b>
-<dd>Output to the named port.
-
-<dt><b><tt>-sOutputFile="%printer%printer name"</tt></b> (Windows 95, 98,
-NT or 2000)
-<dd>Output to the named printer. If your printer is named "HP DeskJet 500"
-then you would use <tt>-sOutputFile="%printer%HP DeskJet 500"</tt>.
-
-<dt><b><tt>-sOutputFile="\\spool\printer name"</tt></b> (Windows 3.1/Win32s)
-<dd>Output to the named printer. Note that this is NOT a UNC name.
-
-</dl>
-</blockquote>
-
-<p>
-If Ghostscript fails to find an environment variable, it looks for a
-registry value of the same name under the key
-
-<blockquote><b><tt>
-HKEY_CURRENT_USER\Software\GNU Ghostscript\#.##
-</tt></b></blockquote>
-
-<p>
-or if that fails, under the key
-
-<blockquote><b><tt>
-HKEY_LOCAL_MACHINE\SOFTWARE\GNU Ghostscript\#.##
-</tt></b></blockquote>
-
-<p>
-where #.## is the Ghostscript version number. This does not work under
-Win32s (that is, Windows 3.1, which doesn't support named registry
-values).
-
-<p>
-Ghostscript will attempt to load the Ghostscript dynamic link
-library <b><tt>GSDLL32.DLL</tt></b> in the following order:
-<ul>
-<li> In the same directory as the Ghostscript executable.
-<li> If the environment variable <b><tt>GS_DLL</tt></b> is defined,
-Ghostscript tries to load the Ghostscript dynamic link library (DLL)
-with the name given.
-<li> Using the standard Windows library search method: the directory
-from which the application loaded, the current directory, the Windows
-system directory, the Windows directory and the directories listed in
-the PATH environment variable.
-</ul>
-
-<p>
-The Ghostscript setup program will create registry values
-for the environment variables <b><tt>GS_LIB</tt></b>
-and <b><tt>GS_DLL</tt></b>.
-
-<h3><a name="Uninstall_Windows"></a>Uninstalling Ghostscript on Windows</h3>
-
-<p>
-To uninstall Ghostscript, use the Control Panel, Add/Remove Programs and
-remove "Ghostscript #.##" and "Ghostscript Fonts". (The entries may be
-called "Aladdin Ghostscript" or some other specifier rather than just
-"Ghostscript", depending on what version of Ghostscript was installed.)
-
-<hr>
-
-<h2><a name="Install_VMS"></a>Installing Ghostscript on OpenVMS</h2>
-
-<p>
-You need the file <b><tt>GS.EXE</tt></b> to run Ghostscript on OpenVMS, and
-installing Ghostscript on an OpenVMS system requires building it first:
-please read <a href="Make.htm#VMS_build">how to build Ghostscript on VMS</a>
-in the documentation on building Ghostscript.
-
-<p>
-The following installation steps assume that the Ghostscript directory is
-<b><tt>DISK1:[DIR.GHOSTSCRIPT]</tt></b>. Yours will almost certainly be in
-a different location so adjust the following commands accordingly.
-
-<ul>
-
-<li>Download the fonts and unpack them into
-<b><tt>DISK1:[DIR.GHOSTSCRIPT.LIB]</tt></b>.
-
-<li>Enable access to the program and support files for all users with:
-
-<blockquote><pre>
-$ set file/prot=w:re DISK1:[DIR]GHOSTSCRIPT.dir
-$ set file/prot=w:re DISK1:[DIR.GHOSTSCRIPT...]*.*
-</pre></blockquote>
-
-<li>Optionally, add the Ghostscript help instructions to your system wide
-help file:
-
-<blockquote><pre>
-$ lib/help sys$help:HELPLIB.HLB DISK1:[DIR.GHOSTSCRIPT.DOC]GS-VMS.HLP
-</pre></blockquote>
-
-<li>Lastly, add the following lines to the appropriate system wide or user
-specific login script.
-
-<blockquote><pre>
-$ define gs_exe DISK1:[DIR.GHOSTSCRIPT.BIN]
-$ define gs_lib DISK1:[DIR.GHOSTSCRIPT.EXE]
-$ gs :== $gs_exe:gs.exe
-</pre></blockquote>
-
-</ul>
-
-<p>
-If you have DECWindows/Motif installed, you may wish to replace the
-<b><tt>FONTMAP.GS</tt></b> file with <b><tt>FONTMAP.VMS</tt></b>. Read the
-comment at the beginning of the latter file for more information.
-
-<hr>
-
-<h2><a name="Install_DOS"></a>Installing Ghostscript on DOS</h2>
-
-<p>
-You need the files <b><tt>GS386.EXE</tt></b> and <b><tt>DOS4GW.EXE</tt></b>
-to run Ghostscript. You should install all the files except the fonts in
-<b><tt>C:\GS</tt></b>, and the fonts in <b><tt>C:\GS\FONTS</tt></b>.
-
-<p><a name="Use_platform_fonts_DOS"></a> If you have Adobe Type Manager
-(ATM) fonts installed on your system, and you wish to use them with
-Ghostscript, you may wish to replace the <b><tt>FONTMAP</tt></b> file with
-<b><tt>FONTMAP.ATM</tt></b>, and to add to the environment variable
-<b><tt>GS_LIB</tt></b> the name of the directory where the fonts are located
-(see below for more information about <b><tt>GS_LIB</tt></b>). Before you
-do this, please read carefully the license that accompanies the ATM fonts;
-we take no responsibility for any possible violations of such licenses.
-Similarly, if you have Adobe Type Basics, you may wish to replace
-<b><tt>FONTMAP</tt></b> with <b><tt>FONTMAP.ATB</tt></b>. Finally, if you
-have neither ATM nor ATB but you have Adobe Acrobat installed, you can use
-the Acrobat fonts in place of the ones provided with Ghostscript by adding
-the Acrobat fonts directory to <b><tt>GS_FONTPATH</tt></b> and removing
-these fonts from <b><tt>FONTMAP</tt></b>:
-
-<blockquote>
-Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique, Helvetica,
-Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique, Symbol, Times-Bold,
-Times-BoldItalic, Times-Italic, Times-Roman, ZapfDingbats
-</blockquote>
-
-<hr>
-
-<h2><a name="Install_OS2"></a>Installing Ghostscript on OS/2 2.x</h2>
-
-<p>
-The Ghostscript OS/2 implementation is designed for OS/2 2.1 or later. A
-few people have used it successfully under OS/2 2.0, but it has had very
-little testing. You need these files to run Ghostscript on OS/2:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>GSOS2.EXE</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>A text application that will run windowed or full screen
-<tr valign=top> <td><b><tt>GSDLL2.DLL</tt></b>
- <td>&nbsp;
- <td>A dynamic link library that must be in the same directory as
- <b><tt>GSOS2.EXE</tt></b> or on the <b><tt>LIBPATH</tt></b>.
-<tr valign=top> <td><b><tt>GSPMDRV.EXE</tt></b>
- <td>&nbsp;
- <td>An "external driver" used by the "<b><tt>os2pm</tt></b>"
- device, which is normally the default device and which displays
- output in a Presentation Manager window;
- <b><tt>GSPMDRV.EXE</tt></b> must be located in the same
- directory as <b><tt>GSOS2.EXE</tt></b> or on the
- <b><tt>PATH</tt></b>
-</table></blockquote>
-
-<p>
-<b><tt>GSOS2.EXE</tt></b>, <b><tt>GSDLL2.DLL</tt></b> and
-<b><tt>GSPMDRV.EXE</tt></b> are compiled using EMX/GCC 0.9d. You must have
-the EMX DLLs on your <b><tt>LIBPATH</tt></b>; they are available in a
-package <b><tt>emxrt.zip</tt></b> from many places on the Internet, so you
-can find the package by using a search engine or an ftp lookup service such
-as the one at
-
-<blockquote>
-<a href="http://ftpsearch.lycos.com/"
-class="offset">http://ftpsearch.lycos.com/</a>
-</blockquote>
-
-<p>
-The system menu of the Ghostscript Image window includes a "Copy" command
-to copy the currently displayed bitmap to the Clipboard.
-
-<p>
-OS/2 comes with some Adobe Type Manager fonts. If you wish to use these with
-Ghostscript, you should replace the <b><tt>FONTMAP</tt></b> file with
-<b><tt>FONTMAP.OS2</tt></b>, and add to the environment variable
-<b><tt>GS_LIB</tt></b> (see below for more information about
-<b><tt>GS_LIB</tt></b>) the name of the directory where the fonts are
-located, usually <b><tt>C:\PSFONTS</tt></b>. Before you do this, please
-read carefully the license that accompanies the ATM fonts; we take no
-responsibility for any possible violations of such licenses.
-
-<p>
-Since <b><tt>GSOS2.EXE</tt></b> is not a PM application, it cannot
-determine the depth of the PM display. You must provide this information
-using the <b><tt>-dBitsPerPixel</tt></b> option. Valid values are 1, 4, 8
-(the default), and 24.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Use
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>For
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>-dBitsPerPixel=1</tt></b>
- <td>&nbsp;
- <td>VGA monochrome
-<tr valign=top> <td><b><tt>-dBitsPerPixel=4</tt></b>
- <td>&nbsp;
- <td>VGA standard
-<tr valign=top> <td><b><tt>-dBitsPerPixel=8</tt></b>
- <td>&nbsp;
- <td>SVGA 256 colors
-</table></blockquote>
-
-<p>
-A command file <b><tt>gspm.cmd</tt></b> containing the following line may
-be useful:
-
-<blockquote><b><tt>
-@c:\gs\gsos2.exe -Ic:/gs;c:/gs/fonts;c:/psfonts -sDEVICE=os2pm -dBitsPerPixel=8 -sPAPERSIZE=a4 %1 %2 %3 %4 %5 %6 %7 %8
-</tt></b></blockquote>
-
-<p>
-While drawing, the <b><tt>os2pm</tt></b> driver updates the display every 5
-seconds. On slow computers this is undesirable, and a different interval
-can be specified in milliseconds with the <b><tt>-dUpdateInterval</tt></b>
-option, with a default of <b><tt>-dUpdateInterval=5000</tt></b>; to disable
-update, use <b><tt>-dUpdateInterval=0</tt></b>.
-
-<p>
-Standard VGA is very slow because it uses double buffering to avoid bugs
-and because of 1-plane to 4-plane conversion; it's better to use a
-256-color display driver. Many display drivers have bugs which cause 1
-bit-per-pixel bitmaps to be displayed incorrectly.
-
-<p>
-<b><tt>GSOS2.EXE</tt></b> and <b><tt>GSPMDRV.EXE</tt></b> will stay in
-memory for the number of minutes specified in the environment variable
-<b><tt>GS_LOAD</tt></b>.
-
-<p>
-If you run <b><tt>GS386</tt></b> in the OS/2 2.0 or 2.1 DOS box, you must
-select the "ENABLED" setting for the DPMI_DOS_API option of the DOS box.
-<b><tt>GS386</tt></b> will not run with the "AUTO" setting.
-
-<p>
-For printer devices, output goes to the default queue. To print to a
-specified queue, use <b><tt>-sOutputFile=\\spool\NullLPT1</tt></b>, where
-<b><tt>NullLPT1</tt></b> is the queue's physical name.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Issues.htm b/Master/xemtex/doc/ghostscript/Issues.htm
deleted file mode 100644
index 6285337ecfb..00000000000
--- a/Master/xemtex/doc/ghostscript/Issues.htm
+++ /dev/null
@@ -1,502 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript Open Issues.</title>
-<!-- $Id: Issues.htm,v 1.15.2.13.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Known limitations and minor bugs.</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<ul>
-<li><a href="#Known_Limitations">Known Limitations</a>
-<li><a href="#Minor_bugs">Minor bugs</a>
-<li><a href="#Driver_Issues">Specific Driver Issues</a>
-<li><a href="#Performance">Performance</a>
-<li><a href="#Differences_from_Adobe">Differences from Adobe Implementation</a>
-</ul>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Projects.htm">Development Projects list
-</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-There are many areas that might make Ghostscript more useful or minor bugs
-that we would like to investigate and possibly fix, but for which we don't
-have enough resources. These may or may not be addressed in future releases.
-<p>
-If you would like to take responsibility for any of these issues, please
-<a href="mailto:raph@artofcode.com">contact us</a>.
-<p>
-Additional comments on implementation approaches or project goals are in
-<I>italic type like this</I>.
-<hr>
-
-<h2><a name="Known_Limitations"></a>Known Limitations.</h2>
-
-<h3>bbox device doesn't allow min coords < 0.</h3>
-Adobe eps specification doesn't say that bbox values must be positive,
-and, for example Adobe Illustrator, can create EPS files with negative bboxes.
-In such case, Ghostscipt returns zero instead of proper negative number.
-<br>SourceForge Bug #202735 March 09, 2000.
-<p>
-<I>
-This might be able to be fixed by applying a large positive translation to
-the bbox CTM which would be subtracted from coordinates passed to the target
-device as well as from the results the bbox device reports.
-<p>
-If coordinates for the ImagingBBox[0] and [1] values, then negative
-values are handled, but this is not reliable since there are places in
-the graphics library that depend on first quadrant coordinates.
-</I>
-
-<h3>Error messages are too low level and confusing.</h3>
-
-<p>
-Although technically correct many error messages are confusing for
-end users. Some commonly reported examples are listed below.
-
-<p>
-When pdfwrite device cannot open the output file it fails with:
-<pre>**** Unable to open the initial device, quitting.</pre>
-
-When CIDFont-CMap pair required by PDF file is not available GS
-fails with:
-<pre>/undefinedresource in --findresource--</pre>
-
-<hr>
-<h2><a name="Minor_bugs"></a>Minor Bugs.</h2>
-
-<h3>PageSize cannot use packedarray</h3>
-PageSize doesn't accept packed array as an argument if the page size is
-adjusted, for instance, to the whole number of pixels. The following
-program
-<pre>
-%!
-/x 333.33333333 def /y 666.66666666 def
-
-<< /PageSize x y 2 packedarray >> setpagedevice
-(pached passed)== % fails
-%EOF
-</pre>
-fails with
-<pre>
-Error: /configurationerror in --setpagedevice--
-Additional information: [/PageSize [333.333344 666.666687]]
-</pre>
-
-<h3> Multiple encode filters in a pipeline fail.</h3>
-The following code fragment should output "3E>". It outputs nothing.
-<pre>
-%!PS
-(%stdout) (w) file
-/ASCIIHexEncode filter
-/ASCIIHexEncode filter
-closefile
-</pre>
-SourceForge bug #224134, December 2, 2000.
-
-<h3> Bad JPEG stream in PDF generated when source ends prematurely</h3>
-When GS converts the source image to JPEG stream in PDF file and the
-source data end prematurely, it generates bad JPEG stream.
-tiff2ps from libtiff distribution often generates such files.
-<p>
-One potential workaround is to use -dAutoFilterColorImages=false and
--dColorImageFilter=/FlateEncode.
-<p>
-SourceForge bug #228808, Jan 15, 2000.
-<p>
-<I>
-JPEG stream writes image dimensions in JPEG header when the stream is created.
-When the source data end the dimensions are not updated. There may be other
-problems too.
-</I>
-
-<h3> Some attributes of Catalog object are lost during PDF to PDF conversion</h3>
-Dests, OpenAction, URI, PageMode, ViewerPreferences are lost during PDF to PDF
-conversion. Other attributes have not been checked.
-<p>
-<I>
-The loss happens diring PDF interpretation. GS can generate these attributes
-from pdfmark's.
-</I>
-<p>
-March 25, 2001.
-<h3>ps2pdf ignores transfer functions in shaded fill</h3>
-ps2pdf ignores transfer functions in the shaded fill but
-uses them for vector objects. The following sample program
-has 2 shaded fills and 2 rectangles that should have the
-same color as the left end of the shaded fill.
-<pre>
-
- <</PageSize [612 200] /Policies<</PageSize 1>> >>setpagedevice
- 612 1 scale
- /grad
- { gsave
- 0 0 1 100 rectclip
- <<
- /ColorSpace [/DeviceCMYK]
- /Domain [0 1]
- /Coords [0 0 1 0]
- /Extend [false false]
- /Function
- << /FunctionType 3
- /Domain [ 0 1]
- /Functions
- [ <<
- /FunctionType 2
- /N 1
- /C0 [ 0 0.5 0 0 ]
- /Domain [ 0 1]
- /C1 [0.5 0 0 0]
- >> ]
- /Bounds []
- /Encode [0 1]
- >>
- /ShadingType 2
- >> shfill
-
- 0 0.5 0 0 setcmykcolor
- 0 0 0.1 50 rectfill
- grestore
- } def
-
- grad
- {1 exch 2 div sub} settransfer
- 0 100 translate
- grad
- showpage
-</pre>
-SourceForge Bug #232334, Feb 14, 2001.
-
-<h3>ResourceFileName gives wrong result with Font category.</h3>
-The following sequence:
-
-<pre>
- /Font /Category findresource begin
- /CharterBT-Roman 255 string ResourceFileName =
- end
-</pre>
-
-Gives the results:
-<pre>
- /Resource/Font/CharterBT-Roman
-</pre>
-
-This should be a valid platform specific file name and path such as:
-<pre>
- f:/fonts/bchr.pfa
-</pre>
-SourceForge Bug #233403, Feb 21, 2001.
-<h3>GS doesn't handle names of separations with HalftoneType 5.</h3>
-PLRM3 says, that HalftoneType 5 may use user defined
-names of separations. Neither zht2.c nor cmd_put_drawing_color in
-gxclpath.c can handle this. GS chooses default halftone component
-for any non-standard separation name.
-<p>
-SourceForge Bug #406643, Mar 7, 2001.
-
-<h3> PDF 1.4 images don't deallocate all memory </h3>
-
-The pdf14_begin_typed_image() function in the PDF 1.4 device creates
-a marking device, but this is not freed on end_image. The garbage
-collector will free it, so it's not a real memory leak, but it would
-still be nicer to free it explicitly.
-
-<h3> </h3>
-
-<hr>
-
-<h2><a name="Driver_Issues"></a>Driver Issues.</h2>
-
-<h3> [ ] Missing text in landscape mode.</h3>
-Using GSWIN32C.EXE with djet500 to print a file in landscape mode
-on a HP 2000C, the first 3 characters on the left margin are missing.<br>
-When the postscript file is editted to use a larger offset (1st moveto
-parameter), the text appears ok.<br>
-When the postscript file is sent to a printer with a builtin postscript
-interpreter, it prints ok.
-<br>SourceForge Bug #206652.
-<p><I>
-A possible work around is to send the following
-postscript file to the printer prior to printing the problem
-file. This works but it leaves a .5" margin at the top
-and left which is may be ok for some uses.
-</I>
-<pre>
-
-%!PS-Adobe-2.0
-% Reset the offset and margins.
-<<
- /PageOffset [-12 -18]
- /Margins [0 0]
- /.HWMargins [0 0 0 0]
->>
-setpagedevice
-</pre>
-
-<I>
-This is an instance of the endless struggle with printer margins, especially
-for HP printers. The HP drivers are inconsistent as to whether the user space
-(0,0) should be the physical corner of the page (as it is in PostScript) or
-the corner of the printable area, and if the latterm whether the page should
-be clipped or scaled.
-</I>
-<p>
-
-<hr>
-
-<h2><a name="Performance"></a>Performance.</h2>
-
-<h3>Incremental loading for CIDFontType 2 and TrueType fonts.</h3>
-
-Entire TrueType outline data in CIDFontType 2 and TrueType fonts are
-loaded into memory at once. Incremental loading of the outline data is
-indispensable for practical use of Asian fonts.
-<p>
-There is one other type of CID-keyed font that should also be
-loaded incrementally: CFF CIDFontType0, i.e., a CIDFontType 0
-font represented using the compact binary CFF format. This is
-important because this is one of the two variants of Asian OpenType
-fonts (the other is essentially the same as TrueType). Ghostscript
-already supports both of these OpenType variants, but not with
-incremental loading.
-<p>
-SourceForge bug #223992, November 30, 2000.
-<p><I>
-We suggest that anyone who would like to work on this project
-start by looking at how CIDFontType 0 fonts do incremental loading
-(lib/gs_cidfn.ps and src/zfcid0.c). Probably much of this
-code can be also be used with CIDFontType 2 and TrueType fonts.
-</I>
-
-<hr>
-
-<h2><a name="Differences_from_Adobe"></a>Differences from Adobe Implementation.</h2>
-
-<h3>pdfwrite + TT font => Acrobat 3.x for Windows gives error</h3>
-
-Running ps2pdf12 on the file test1.ps produces a PDF on which Acrobat
-3.x for Windows complains about not being able to find or create a
-particular TrueType font that is embedded in the PDF file. However,
-Acrobat 3.x for other platforms, and Acrobat 4.x for all platforms,
-accepts the file.
-<p>
-SourceForge bug #201955, February 14, 2000.
-<p><I>
-Since Acrobat 3 is superseded by Acrobat 4 which is available at no
-charge, and the file produced by Ghostscript meets published PDF
-specification, this will most likely be left as is.
-</I>
-
-<h3> Inconsistent handling of /Orientation.</h3>
-PLRM says "The dictionary returned by currentpagedevice always
-contains an entry for every parameter supported by the device".
-GS prints both messages in the following program:
-
-<pre>
-%!
-currentpagedevice /Orientation known not
-{ (This printer does _not_ support Orientation.) =
-}
-if
-<</Orientation 1>> setpagedevice
-currentpagedevice /Orientation known
-{ (Err... wait... it does.) =
-}
-if
-%%EOF
-</pre>
-SourceForge bug #220967, October 31, 2000.
-<p><I>
-The handling of Orientation is a mess. The PLRM says quite explicitly
-that it is only supported for roll devices, where the page size
-alone doesn't give enough information to decide whether to rotate
-the page.
-<p>
-The reason that Ghostscript accepts it for other devices at all
-is twofold: displays are like roll media in that they don't have
-an inherent orientation, and almost none of the other Ghostscript
-devices actually specify their page sizes. Both of these reasons
-are now poorly motivated: displays should behave like
-portrait-orientation devices (albeit with variable page dimensions),
-rotating the image if the requested page width is greater than
-the height, and now that setpagedevice and the Resource machinery
-are fully implemented, all printer drivers should be updated
-to provide the paper size information. Once these fixes are made
-(which will probably have some repercussions other places in
-the code), Ghostscript will handle Orientation properly.
-<p>
-This should be addressed when the "setpagedevice in C" project is
-completed since part of this will require printer drivers to make
-page size information available to the setpagedevice logic.
-</I>
-
-<h3>Filesystem implementation differences.</h3>
-Adobe implementations often treat the filesystem as flat. This means that the
-path separator characters are not handled as special characters in filenames.
-The PLRM states that file names are implementation specific (section 3.8.2)
-and Ghostscript currently implements filenames that conform with the underlying
-operating system as is stated in this section about the %os% device. This
-can result from behaviour that is different from Adobe printer implementations.
-<br><br>
-<I>
-Current implementation is incompatible with most font installers. Installers
-expect that:
-<ul>
-"filenameforall" enumerates all files in all directories using the relative path name.
-Directory names, including . and .. are not enumerated
-</ul>
-<ul>
-characters not supported on the platform are encoded.
-</ul>
-<ul>
-"(w) file" operator creates directories if necessary.
-</ul>
-</I>
-
-<h3>Cannot load Adobe's fonts. </h3>
-The following program fails with Adobe fonts:
-
-<pre>
-(C*)
-{ cvn findfont pop
-} 255 string /Font resourceforall
-</pre>
-SourceForge Bug #226462, December 20, 2000.
-<p>
-<I>
-The 'findfont' operator and '/Font resourceforall' are very difficult to
-keep consistent, because the same logic algorithms must be implemented
-in two different ways. The problem is likely to be in lib/gs_fonts.ps,
-lib/gs_res.ps, and lib/gs_cidcm.ps.
-</I>
-<h3> There's no %ram% device.</h3>
-GS doesn't have %ram% device reguired on all Level 3 products.
-It is documented in PS Supplement 3010 and 3011 dated August 30, 1999
-<br>SourceForge Bug #226943, December 27, 2000.
-<p>
-<I>
-This should be implemented using the (disk) file system rather than
-actual RAM, at least initially, since that will be easy.
-<br>
-On Unix, it should be implemented with a directory /tmp/$$/ (where
-$$ is the process id), which Ghostscript should delete when it exits.
-</I>
-
-<h3> pdfwrite doesn't recognise the image type by content</h3>
-Currently pdfwrite uses JPEG compression for any 8 bit per component
-images >= 64 pixels in both dimensions.
-<p>
-<I>
-pdfwrite needs to be changed to use a reasonable algorithm for deciding
-between JPEG and Flate compression, probably based on sharp vs. smooth
-color transitions in the image; in case of uncertainty, it should use Flate.
-</I>
-<p>
-SourceForge Bug #226391, December 19, 2000.
-<p>
-
-
-<h3> ps2ascii can't handle incremental fonts</h3>
-ps2ascii fails with rangecheck on incremental fonts.
-Need to recognise incremental fonts and say that incremental
-fonts are impossible to convert to ASCII.
-<p>
-SourceForge Bug #441959 keeps good test data for this.
-<p>
-
-
-<h3> Buffering in input filters</h3>
-
-The following program prints differently to stdout on GS and Adobe :
-<p>
-<pre>
-%!
-/proc
- { currentfile =string readline pop
- dup ==
- (%) anchorsearch { pop } if
- } bind def
-/test
- { //proc /ASCIIHexDecode filter
- 3 string readstring pop ==
- } bind def
-
-(start) ==
-
-test
-%31
-%32
-%33
-%34
-%35
-%36
-%37
-%38
-%39
-
-(stop) ==
-
-%%EOF
-</pre>
-<p>
-<I>
-Adobe fills entire input buffer of ASCIIHexDecode with procedure's output,
-before passing data to ASCIIHexDecode, and without knowledge how much data
-does ASCIIHexDecode want. GS does know the size of data requested,
-so as the procedure is called exact number of times. Thus, GS is more conservative.
-</I>
-<p>
-Anoter useful test to be made by repeating lines %31-%39 hundred times,
-without intermediate empty lines.
-<p>
-<h3> </h3>
-<p>
-
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2000 artofocode LLC. All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Language.htm b/Master/xemtex/doc/ghostscript/Language.htm
deleted file mode 100644
index b47f003bec9..00000000000
--- a/Master/xemtex/doc/ghostscript/Language.htm
+++ /dev/null
@@ -1,1897 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript and the PostScript language</title>
-<!-- $Id: Language.htm,v 1.34.2.16.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: language.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Ghostscript and the PostScript language</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Capabilities">Ghostscript's capabilities in relation to PostScript</a>
-<li><a href="#Implementation_limits">Implementation limits</a>
-<ul>
-<li><a href="#Architectural_limits">Architectural limits</a>
-<li><a href="#Typical_memory_limits">Typical memory limits in LanguageLevel 1</a>
-<li><a href="#VM_consumption">Other differences in VM consumption</a>
-</ul>
-<li><a href="#Additional_operators">Additional operators in Ghostscript</a>
-<ul>
-<li><a href="#Graphics_and_text">Graphics and text operators</a>
-<ul>
-<li><a href="#Transparency">Transparency</a>
-<ul>
-<li><a href="#Transparency_graphics_state_operators">Graphics state operators</a>
-<li><a href="#Transparency_rendering_stack_operators">Rendering stack operators</a>
-<li><a href="#Transparency_ImageType">New ImageType</a>
-</ul>
-<li><a href="#Graphics_state">Other graphics state operators</a>
-<li><a href="#Path">Path operators</a>
-<li><a href="#Painting">Painting operators</a>
-<li><a href="#Character">Character operators</a>
-</ul>
-<li><a href="#Other">Other operators</a>
-<ul>
-<li><a href="#Mathematical">Mathematical operators</a>
-<li><a href="#Dictionary">Dictionary operators</a>
-<li><a href="#String">String and name operators</a>
-<li><a href="#Relational">Relational operators</a>
-<li><a href="#File">File operators</a>
-<li><a href="#Virtual_memory">Virtual memory operators</a>
-<li><a href="#Miscellaneous">Miscellaneous operators</a>
-<li><a href="#Device">Device operators</a>
-</ul>
-</ul>
-<li><a href="#Filters">Filters</a>
-<ul>
-<li><a href="#Standard_filters">Standard filters</a>
-<li><a href="#Non_standard_filters">Non-standard filters</a>
-<li><a href="#Unstable_filters">Unstable filters</a>
-</ul>
-<li><a href="#Device_parameters">Device parameters</a>
-<li><a href="#User_parameters">User parameters</a>
-<li><a href="#Miscellaneous_additions">Miscellaneous additions</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Capabilities"></a>Ghostscript's capabilities in relation to PostScript</h2>
-
-<p>
-The Ghostscript interpreter, except as noted below, is intended to execute
-properly any source program written in the (LanguageLevel 3)
-<b>PostScript</b> language as defined in the <cite>PostScript
-Language Reference, Third Edition</cite> (ISBN 0-201-37922-8) published by
-Addison-Wesley in mid-1999. However, the interpreter is configurable in
-ways that can restrict it to various subsets of this language.
-Specifically, the base interpreter accepts the Level 1 subset of the
-PostScript language, as defined in the first edition of the <cite>PostScript
-Language Reference Manual</cite> (ISBN 0-201-10174-2) Addison-Wesley 1985,
-plus the file system, version 25.0 language, and miscellaneous additions
-listed in sections A.1.6, A.1.7, and A.1.8 of the Second Edition
-respectively, including allowing a string operand for the
-"<b><tt>status</tt></b>" operator. The base interpreter may be configured
-(see the <a href="Make.htm">documentation on building Ghostscript</a> for
-how to configure it) by adding any combination of the following:
-
-<ul>
-<li>The ability to process PostScript Type 1 fonts. This facility is
-normally included in the interpreter.
-
-<li>The CMYK color extensions listed in section A.1.4 of the Second Edition
-(including <b><tt>colorimage</tt></b>). These facilities are available
-only if the <b><tt>color</tt></b>, <b><tt>dps</tt></b>, or
-<b><tt>level2</tt></b> feature was selected when Ghostscript was built.
-
-<li>The Display PostScript extensions listed in section A.1.3 of the Second
-Edition, but excluding the operators listed in section A.1.2. These
-facilities are available only if the <b><tt>dps</tt></b> feature or the
-<b><tt>level2</tt></b> feature was selected when Ghostscript was built.
-
-<li>The composite font extensions listed in section A.1.5 of the Second
-Edition, and the ability to handle Type 0 fonts. These facilities are
-available only if the <b><tt>compfont</tt></b> feature or the
-<b><tt>level2</tt></b> feature was selected when Ghostscript was built.
-
-<li>The ability to load TrueType fonts and to handle PostScript Type 42
-(encapsulated TrueType) fonts. These facilities are available only if the
-<b><tt>ttfont</tt></b> feature was selected when Ghostscript was built.
-
-<li>The PostScript Level 2 "filter" facilities except the
-<b><tt>DCTEncode</tt></b> and <b><tt>DCTDecode</tt></b> filters. These
-facilities are available only if the <b><tt>filter</tt></b>,
-<b><tt>dps</tt></b>, or <b><tt>level2</tt></b> feature was selected when
-Ghostscript was built.
-
-<li>The PostScript Level 2 <b><tt>DCTEncode</tt></b> and
-<b><tt>DCTDecode</tt></b> filters. These facilities are available only if
-the <b><tt>dct</tt></b> or <b><tt>level2</tt></b> feature was selected when
-Ghostscript was built.
-
-<li>All the other PostScript Level 2 operators and facilities listed in
-section A.1.1 of the Second Edition and not listed in any of the other
-A.1.n sections. These facilities are available only if the
-<b><tt>level2</tt></b> feature was selected when Ghostscript was built.
-
-<li>All PostScript LanguageLevel 3 operators and facilities listed in the
-Third Edition, except as noted below. These facilities are available only
-if the <b><tt>psl3</tt></b> feature was selected when Ghostscript was built.
-
-<li>The ability to recognize DOS EPSF files and process only the PostScript
-part, ignoring bitmap previews or other information. This facility is
-available only if the <b><tt>epsf</tt></b> feature was selected when
-Ghostscript was built.
-</ul>
-
-<p>
-Ghostscript currently does not implement the following PostScript
-LanguageLevel 3 facilities:
-
-<ul>
-<li>Native <b><tt>Separation</tt></b> and <b><tt>DeviceN</tt></b> color
-spaces -- the alternate space is always used.
-
-<li>Settable <b><tt>ProcessColorModel</tt></b> for page devices, except for
-a very few special devices.
-
-<li><b><tt>IODevice</tt></b>s other than <b><tt>%stdin</tt></b>,
-<b><tt>%stdout</tt></b>, <b><tt>%stderr</tt></b>, <b><tt>%lineedit</tt></b>,
-<b><tt>%statementedit</tt></b>, <b><tt>%os%</tt></b>, and (if configured)
-<b><tt>%pipe%</tt></b>.
-</ul>
-
-<p>
-Ghostscript can also interpret files in the Portable Document Format (PDF)
-1.3 format defined in the <a
-href="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf"><em>Portable
-Document Format Reference Manual</em> Version 1.3</a> of March 11, 1999,
-distributed by <a href="http://www.adobe.com/">Adobe Systems
-Incorporated</a>, except as noted below. This facility is available only if
-the <b><tt>pdf</tt></b> feature was selected when Ghostscript was built.
-
-<p>
-Ghostscript currently does not implement the following PDF 1.3 facilities:
-
-<ul>
-<li>Native <b><tt>Separation</tt></b> and <b><tt>DeviceN</tt></b> color
-spaces, as noted above for PostScript.
-
-<li>Native <b><tt>ICCBased</tt></b> color spaces -- these too always use the
-alternate space.
-</ul>
-
-<p>
-Ghostscript also includes a number of
-<a href="#Additional_operators">additional operators</a> defined below that
-are not in the PostScript language defined by Adobe.
-
-<hr>
-
-<h2><a name="Implementation_limits"></a>Implementation limits</h2>
-
-<p>
-The implementation limits show here correspond to those in Tables B.1 and
-B.2 of the Second and Third Editions, which describe the quantities fully.
-Where Ghostscript's limits are different from those of Adobe's
-implementations (as shown in the Third Edition), Adobe's limits are also
-shown.
-
-<h3><a name="Architectural_limits"></a>Architectural limits</h3>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Architectural limits (corresponds to Adobe table B.1)</font><hr>
-<tr valign=bottom>
- <th align=left>Quantity
- <td>&nbsp;&nbsp;
- <th align=left>Limit
- <td>&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;
- <th align=left>Adobe
-<tr> <td colspan=7><hr>
-<tr valign=top> <td>integer
- <td>&nbsp;
- <td>32-bit
- <td>&nbsp;
- <td>twos complement integer
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>real
- <td>&nbsp;
- <td>single-precision
- <td>&nbsp;
- <td>IEEE float
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>array
- <td>&nbsp;
- <td>65535
- <td>&nbsp;
- <td>elements
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>dictionary
- <td>&nbsp;
- <td>65534
- <td>&nbsp;
- <td>elements
- <td>&nbsp;
- <td>65535
-<tr valign=top> <td>string
- <td>&nbsp;
- <td>65535
- <td>&nbsp;
- <td>characters
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>name
- <td>&nbsp;
- <td>16383
- <td>&nbsp;
- <td>characters
- <td>&nbsp;
- <td>127
-<tr valign=top> <td>filename
- <td>&nbsp;
- <td>128*
- <td>&nbsp;
- <td>characters
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td><b><tt>save</tt></b> level
- <td>&nbsp;
- <td>none
- <td>&nbsp;
- <td>(capacity of memory)
- <td>&nbsp;
- <td>15
-<tr valign=top> <td><b><tt>gsave</tt></b> level
- <td>&nbsp;
- <td>none
- <td>&nbsp;
- <td>(capacity of memory)
- <td>&nbsp;
- <td>13
-</table></blockquote>
-
-<p>
-* The limit on the length of a file name is 128 characters if the name
-starts with a %...% IODevice designation, or 124 characters if it does not.
-
-<h3><a name="Typical_memory_limits"></a>Typical memory limits in LanguageLevel 1</h3>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-
-<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Memory limits (corresponds to Adobe table B.2)</font><hr>
-<tr valign=bottom>
- <th align=left>Quantity
- <td>&nbsp;&nbsp;
- <th align=left>Limit
- <td>&nbsp;&nbsp;
- <th align=left>Type
- <td>&nbsp;&nbsp;
- <th align=left>Adobe
-<tr> <td colspan=7><hr>
-<tr valign=top> <td><b><tt>userdict</tt></b>
- <td>&nbsp;
- <td>200
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td><b><tt>FontDirectory</tt></b>
- <td>&nbsp;
- <td>100
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>operand stack
- <td>&nbsp;
- <td>800
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>500
-<tr valign=top> <td>dictionary stack
- <td>&nbsp;
- <td>20
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>execution stack
- <td>&nbsp;
- <td>250
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>interpreter level
- <td>&nbsp;
- <td>none
- <td>&nbsp;
- <td>(capacity of memory)
- <td>&nbsp;
- <td>10
-<tr valign=top> <td>path
- <td>&nbsp;
- <td>none
- <td>&nbsp;
- <td>(capacity of memory)
- <td>&nbsp;
- <td>1500
-<tr valign=top> <td>dash
- <td>&nbsp;
- <td>11
- <td>&nbsp;
- <td>&nbsp;
-<tr valign=top> <td>VM
- <td>&nbsp;
- <td>none
- <td>&nbsp;
- <td>(capacity of memory)
- <td>&nbsp;
- <td>240000
-<tr valign=top> <td>file
- <td>&nbsp;
- <td>none
- <td>&nbsp;
- <td>(determined by operating system)
- <td>&nbsp;
- <td>6
-<tr valign=top> <td>image
- <td>&nbsp;
- <td>65535
- <td>&nbsp;
- <td>values (samples × components)<br>for1-, 2-, 4-, or 8-bit samples
- <td>&nbsp;
- <td>3300
-<tr valign=top> <td>&nbsp;
- <td>&nbsp;
- <td>32767
- <td>&nbsp;
- <td>values for 12-bit samples
- <td>&nbsp;
- <td>3300
-</table></blockquote>
-
-<h3><a name="VM_consumption"></a>Other differences in VM consumption</h3>
-
-<p>
-Packed array elements occupy either 2 bytes or 8 bytes. The average
-element size is probably about 5 bytes. Names occupy 12 bytes plus the
-space for the string.
-
-<hr>
-
-<h2><a name="Additional_operators"></a>Additional operators in Ghostscript</h2>
-
-<h3><a name="Graphics_and_text"></a>Graphics and text operators</h3>
-
-<h4><a name="Transparency"></a>Transparency</h4>
-
-<p>
-Ghostscript provides a set of operators for implementing the transparency
-and compositing facilities of PDF 1.4. These are defined only if the
-<b><tt>transpar</tt></b> option was selected when Ghostscript was built. We
-do not attempt to explain the underlying graphics model here: for details,
-see <a
-href="http://partners.adobe.com/asn/developer/technotes.html#acrobat-pdf"
-class="offsite">Adobe
-Technical Note</a> #5407, "<a
-href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/PDF_Transparency.pdf"
-class="offsite">Transparency
-in PDF</a>". Note, however, that
-Ghostscript's model generalizes that of PDF 1.4 in that Ghostscript
-maintains separate alpha and mask values for opacity and shape, rather than
-a single value with a Boolean that says whether it represents opacity or
-shape. EVERYTHING IN THIS SECTION IS SUBJECT TO CHANGE.
-
-<h5><a name="Transparency_graphics_state_operators"></a>Graphics state
-operators</h5>
-
-<dl>
-<dt><b><tt>&lt;modename&gt; .setblendmode -</tt></b>
-<dd>Sets the blending mode in the graphics state. If the mode name is not
-recognized, causes a <b><tt>rangecheck</tt></b> error. The initial value of
-the blending mode is <b><tt>/Compatible</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentblendmode &lt;modename&gt;</tt></b>
-<dd>Returns the current blending mode.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;0..1&gt; .setopacityalpha -</tt></b>
-<dd>Sets the opacity alpha value in the graphics state.
-The initial opacity alpha value is 1.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentopacityalpha &lt;0..1&gt;</tt></b>
-<dd>Returns the current opacity alpha value.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;0..1&gt; .setshapealpha -</tt></b>
-<dd>Sets the shape alpha value in the graphics state.
-The initial shape alpha value is 1.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentshapealpha &lt;0..1&gt;</tt></b>
-<dd>Returns the current shape alpha value.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;bool&gt; .settextknockout -</tt></b>
-<dd>Sets the text knockout flag in the graphics state.
-The initial value of the text knockout flag is <b><tt>true</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>- .currenttextknockout &lt;bool&gt;</tt></b>
-<dd>Returns the current text knockout flag.
-</dl>
-
-<h5><a name="Transparency_rendering_stack_operators"></a>Rendering stack
-operators</h5>
-
-<p>
-The interpreter state is extended to include a (per-context) rendering stack
-for handling transparency groups and masks (generically, "layers"). Groups
-accumulate a full value for each pixel (paint plus transparency); masks
-accumulate only a coverage value. Layers must be properly nested, i.e., the
-'end' or 'discard' operator must match the corresponding 'begin' operator.
-
-<p>
-Beginning and ending layers must nest properly with respect to
-<b><tt>save</tt></b> and <b><tt>restore</tt></b>: <b><tt>save</tt></b> and
-<b><tt>restore</tt></b> do not save and restore the layer stack. Currently,
-layers are not required to nest with respect to <b><tt>gsave</tt></b> and
-<b><tt>grestore</tt></b>, except that the device that is current in the
-graphics state when ending a layer must be the same as the device that was
-current when beginning the layer. THIS AREA IS SUBJECT TO CHANGE.
-
-<dl>
-<dt><b><tt>&lt;paramdict&gt; &lt;llx&gt; &lt;lly&gt; &lt;urx&gt; &lt;ury&gt;
-.begintransparencygroup -</tt></b>
-<dd>Begins a new transparency group. The <b><tt>ll/ur</tt></b> coordinates
-are the bounding box of the group in the current user coordinate system.
-<b><tt>paramdict</tt></b> has the following keys:
-<dl>
-<dt><b><tt>/Isolated</tt></b>
-<dd>(optional) Boolean; default value = <b><tt>false</tt></b>.
-<dt><b><tt>/Knockout</tt></b>
-<dd>(optional) Boolean; default value = <b><tt>false</tt></b>.
-</dl>
-</dl>
-
-<dl>
-<dt><b><tt>- .discardtransparencygroup -</tt></b>
-<dd>Ends and discards the current transparency group.
-</dl>
-
-<dl>
-<dt><b><tt>- .endtransparencygroup -</tt></b>
-<dd>Ends the current transparency group, compositing the group being ended
-onto the group that now becomes current.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;paramdict&gt; &lt;llx&gt; &lt;lly&gt; &lt;urx&gt; &lt;ury&gt;
-.begintransparencymask -</tt></b>
-<dd>Begins a new transparency mask. The <b><tt>ll/ur</tt></b> coordinates
-are the bounding box of the mask in the current user coordinate system.
-<b><tt>paramdict</tt></b> has the following keys:
-<dl>
-<dt><b><tt>/Subtype</tt></b>
-<dd>(required) Name, either <b><tt>/Alpha</tt></b> or
-<b><tt>/Luminosity</tt></b>.
-<dt><b><tt>/Background</tt></b>
-<dd>(optional) Array of number.
-<dt><b><tt>/TransferFunction</tt></b>
-<dd>(optional) Function object (produced by applying
-<b><tt>.buildfunction</tt></b> to a Function dictionary).
-</dl>
-</dl>
-
-<dl>
-<dt><b><tt>- .discardtransparencymask -</tt></b>
-<dd>Ends and discards the current transparency mask.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;masknum&gt; .endtransparencymask -</tt></b>
-<dd>Ends the current transparency mask, installing it as the current opacity
-(<b><tt>masknum</tt></b> = 0) or shape (<b><tt>masknum</tt></b> = 1) mask in
-the graphics state.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;masknum&gt; .inittransparencymask -</tt></b>
-<dd>Resets the current opacity (<b><tt>masknum</tt></b> = 0) or shape
-(<b><tt>masknum</tt></b> = 1) mask to an infinite mask with alpha = 1
-everywhere.
-</dl>
-
-<h5><a name="Transparency_ImageType"></a>New ImageType</h5>
-
-<p>
-The transparency extension defines a new ImageType 103, similar to ImageType
-3 with the following differences:
-
-<ul>
-
-<li>The required <b><tt>MaskDict</tt></b> is replaced by two optional
-dictionaries, <b><tt>OpacityMaskDict</tt></b> and
-<b><tt>ShapeMaskDict</tt></b>. If present, these dictionaries must have a
-<b><tt>BitsPerComponent</tt></b> entry, whose value may be greater than 1.
-Note that in contrast to ImageType 3, where any non-zero chunky mask value
-is equivalent to 1, ImageType 103 simply takes the low-order bits of chunky
-mask values.
-
-<li>A <b><tt>Matte</tt></b> entry may be present in one or both mask
-dictionaries, indicating premultiplication of the data values. If both
-<b><tt>MaskDict</tt></b>s have a <b><tt>Matte</tt></b> entry and the values
-of the two <b><tt>Matte</tt></b> entries are different, a
-<b><tt>rangecheck</tt></b> error occurs.
-
-<li><b><tt>InterleaveType</tt></b> appears in the <b><tt>MaskDict</tt></b>s,
-not the <b><tt>DataDict</tt></b>, because each mask has its own
-<b><tt>InterleaveType</tt></b>. <b><tt>InterleaveType</tt></b> 2
-(interlaced scan lines) is not supported.
-
-</ul>
-
-<h4><a name="Graphics_state"></a>Other graphics state operators</h4>
-
-<dl>
-<dt><b><tt>&lt;bool&gt; .setaccuratecurves -</tt></b>
-<dd>Sets a graphics state flag that determines whether curves and arcs,
-when flattened, always start and end with a line that is a segment of the
-tangent; this also causes butt and square caps to be properly perpendicular
-to the tangent. <b><tt>initgraphics</tt></b> sets this flag to false, to
-match other PostScript implementations.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentaccuratecurves &lt;bool&gt;</tt></b>
-<dd>Returns the current value of the accurate curves flag.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;int&gt; .setcurvejoin -</tt></b>
-<dd>Sets a graphics state parameter that determines how to treat the joins
-between the line segments produced when a curve is flattened. The parameter
-value may be either -1 or a value acceptable to <b><tt>setlinejoin</tt></b>.
-If the parameter value is -1, the join used for flattened curve line
-segments is given by the current line join parameter in the graphics state
-(except that if the line join value is "none", a bevel join is used), which
-matches the Adobe Red Book, but not the Adobe implementations; if the curve
-join parameter value is a line join value, that type of join is used for
-flattened curve line segments, regardless of the value of the graphics state
-line join parameter. The initial (and default) value of the curve join
-parameter is 2, causing bevel joins to be used: this matches the Adobe
-implementations. <b><tt>initgraphics</tt></b> sets the parameter to its
-default value.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentcurvejoin &lt;int&gt;</tt></b>
-<dd>Returns the current value of the curve join parameter.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;bool&gt; .setdashadapt -</tt></b>
-<dd>Sets a graphics state flag that determines whether dash patterns do
-(true) or do not (false) automatically scale themselves so that each line
-segment consists of an integral number of pattern repetitions.
-<b><tt>initgraphics</tt></b> sets this flag to false.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentdashadapt &lt;bool&gt;</tt></b>
-<dd>Returns the current value of the dash adaptation flag.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;matrix&gt; .setdefaultmatrix -</tt></b>
-<dd>Sets the default matrix that is returned by
-<b><tt>defaultmatrix</tt></b> and installed by <b><tt>initmatrix</tt></b>.
-Ordinary programs should not use this operator.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;num&gt; &lt;bool&gt; .setdotlength -</tt></b>
-<dd>Sets a graphics state parameter that determines the handling of
-zero-length lines (dots). If the dot length is zero, dots are painted as
-circles if round line caps are in effect, otherwise they are not painted at
-all. If the dot length is non-zero, dots are treated exactly like lines of
-the given length: the length is specified in user coordinates (like line
-width) if <b><tt>bool</tt></b> is false, or in default user coordinates of
-points (units of 1/72in; see the <a href="Devices.htm#Measurements">notes
-on measurements</a> in the documentation on devices) if
-<b><tt>bool</tt></b> is true. Dots occurring as part of dash patterns will
-be oriented correctly; isolated dots will be oriented as though they were
-part of a vertical line. <b><tt>initgraphics</tt></b> sets the dot length
-to zero.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentdotlength &lt;num&gt; &lt;bool&gt;</tt></b>
-<dd>Returns the current dot length and dot length mode.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;dx&gt; &lt;dy&gt; .setfilladjust2 -</tt></b>
-<dd>Sets graphics state parameters that cause all filled and stroked
-regions to be "fattened" by the given amount relative to an algorithm that
-only paints pixels whose centers fall within the region to be painted.
-<b><tt>dx</tt></b> and <b><tt>dy</tt></b> are numbers between 0 and 0.5,
-measured in device space. The only two values that are likely to be useful
-are 0, which gives a pure center-of-pixel rule, and 0.5, which gives
-Adobe's any-part-of-pixel rule. (0.5 is treated slightly specially in
-order to create half-open pixels per Adobe's specification.)
-</dl>
-
-<dl>
-<dt><b><tt>- .currentfilladjust2 &lt;dx&gt; &lt;dy&gt;</tt></b>
-<dd>Returns the current fill adjustment values.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;bool&gt; .setlimitclamp -</tt></b>
-<dd>Sets a graphics state flag that determines whether attempts to set the
-current point outside the internally representable range should clamp the
-value to the largest representable value (true) or give a
-<b><tt>limitcheck</tt></b> error (false). <b><tt>initgraphics</tt></b> sets
-this flag to false, to match other PostScript implementations.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentlimitclamp &lt;bool&gt;</tt></b>
-<dd>Returns the current value of the limit clamp flag.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;int&gt; .setoverprintmode -</tt></b>
-<dd>Sets the overprint mode in the graphics state. Legal values are 0 or 1.
-Per the PDF 1.3 specification, if the overprint mode is 1, then when the
-current color space is <b><tt>DeviceCMYK</tt></b>, color components whose
-value is 0 do not write into the target, rather than writing a 0 value.
-THIS BEHAVIOR IS NOT IMPLEMENTED YET. The initial value of the overprint
-mode is 0.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentoverprintmode &lt;int&gt;</tt></b>
-<dd>Returns the current overprint mode.
-</dl>
-
-<h4><a name="Path"></a>Path operators</h4>
-
-<dl>
-<dt><b><tt>- .dashpath -</tt></b>
-<dd>If there is no current dash pattern, does nothing. Otherwise, does the
-equivalent of <b><tt>flattenpath</tt></b> and then chops up the path as
-determined by the dash pattern.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;x&gt; &lt;y&gt; &lt;width&gt; &lt;height&gt; .rectappend -</tt></b>
-<dt><b><tt>&lt;numarray&gt; .rectappend -</tt></b>
-<dt><b><tt>&lt;numstring&gt; .rectappend -</tt></b>
-<dd>Appends a rectangle or rectangles to the current path, in the same
-manner as <b><tt>rectfill</tt></b>, <b><tt>rectclip</tt></b>, etc. Defined
-only if the <b><tt>dps</tt></b> or <b><tt>level2</tt></b> option was
-selected when Ghostscript was built.
-</dl>
-
-<h4><a name="Painting"></a>Painting operators</h4>
-
-<p>
-Ghostscript supports an experimental extension of the PostScript imaging
-model to include <b><tt>RasterOp</tt></b> and some related facilities.
-This extension is available only if the <b><tt>rasterop</tt></b> option was
-selected when building Ghostscript.
-
-<p>
-With the <b><tt>RasterOp</tt></b> extension, imaging operations compute a
-function <b>D&nbsp;=&nbsp;f(D,S,T)</b> in RGB space, where <b>f</b> is an
-arbitrary 3-input Boolean function, <b>D</b> is the destination (frame
-buffer or print buffer), <b>S</b> is the source (described below), and
-<b>T</b> is the texture (the current PostScript color, which may be a
-pattern). The source and texture depend on the PostScript imaging
-operation:
-
-<ul>
-<li>For <b><tt>fill</tt></b> and <b><tt>stroke</tt></b>, the source is
-solid black, covering the region to be painted; the texture is the current
-PostScript color.
-
-<li>For <b><tt>show</tt></b> and <b><tt>imagemask</tt></b>, the source is
-solid black, covering the pixels to be painted; the texture is the current
-PostScript color.
-
-<li>For <b><tt>image</tt></b> and <b><tt>colorimage</tt></b>, the source is
-the image data; the texture depends on an optional Boolean parameter,
-<b><tt>CombineWithColor</tt></b>, in the image dictionary. If
-<b><tt>CombineWithColor</tt></b> is false (the default), the texture is
-solid black. If <b><tt>CombineWithColor</tt></b> is true, the texture is
-the current color. For the non-dictionary form of the image operator,
-<b><tt>CombineWithColor</tt></b> is considered to be false.
-</ul>
-
-<p>
-The <b><tt>rasterop</tt></b> option adds the following operators:
-
-<dl>
-<dt><b><tt>&lt;int8&gt; .setrasterop -</tt></b>
-<dd>Sets the <b><tt>RasterOp</tt></b> function in the graphics state. The
-default function is 252, Source | Texture.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentrasterop &lt;int8&gt;</tt></b>
-<dd>Returns the current <b><tt>RasterOp</tt></b> function.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;bool&gt; .setsourcetransparent -</tt></b>
-<dd>Sets source transparency in the graphics state. When source
-transparency is true, white source pixels prevent storing into the
-destination, regardless of what the <b><tt>RasterOp</tt></b> function
-returns. The default source transparency is false.
-</dl>
-
-<dl>
-<dt><b><tt>- .currentsourcetransparent &lt;bool&gt; -</tt></b>
-<dd>Returns the current source transparency.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;bool&gt; .settexturetransparent -</tt></b>
-<dd>Sets texture transparency in the graphics state. When texture
-transparency is true, white texture pixels prevent storing into the
-destination, regardless of what the <b><tt>RasterOp</tt></b> function
-returns. The default texture transparency is false.
-</dl>
-
-<dl>
-<dt><b><tt>- .currenttexturetransparent &lt;bool&gt; -</tt></b>
-<dd>Returns the current texture transparency.
-</dl>
-
-<p>
-For more information on RasterOp and transparency, please consult chapter 5
-of the "PCL 5 Color Technical Reference Manual",
-<a href="http://www.hp.com/cposupport/printers/support_doc/bpl01354.html">Hewlett-Packard
-Manual Part No. 5961-0635</a>.
-
-<h4><a name="Character"></a>Character operators</h4>
-
-<dl>
-<dt><b><tt>&lt;string&gt; &lt;bool&gt; .charboxpath -</tt></b>
-<dd>For each character <b>C</b> in the rendering of &lt;string&gt;, let the
-bounding box of <b>C</b> <b><em>in device space</em></b> be the four
-<b><em>user-space</em></b> points p1x/y, p2x/y, p3x/y, and p4x/y. For each
-character in order, <b><tt>.charboxpath</tt></b> appends the following to
-the current path:
-
-<ul><li>If <b><tt>&lt;bool&gt;</tt></b> is true, the equivalent of:
-
-<blockquote>
-p1x p1y <b><tt>moveto</tt></b><br>
-p2x p2y <b><tt>lineto</tt></b><br>
-p3x p3y <b><tt>lineto</tt></b><br>
-p4x p4y <b><tt>lineto</tt></b><br>
-<b><tt>closepath</tt></b>
-</blockquote>
-</ul>
-
-<p>
-This creates a path whose <b><tt>pathbbox</tt></b> is the
-<b><tt>bbox</tt></b> of the string.
-
-<ul><li>If <b><tt>&lt;bool&gt;</tt></b> is false, the equivalent of:
-
-<blockquote>
-p1x p1y <b><tt>moveto</tt></b><br>
-p3x p3y <b><tt>lineto</tt></b>
-</blockquote>
-</ul>
-
-<p>
-If the CTM is well-behaved (consists only of reflection, scaling, and
-rotation by multiples of 90 degrees), this too creates a (simpler) path
-whose <b><tt>pathbbox</tt></b> is the <b><tt>bbox</tt></b> of the string.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;font&gt; &lt;charname|charcode&gt; &lt;charname&gt; &lt;charstring&gt; .type1execchar -</tt></b>
-<dd>Does all the work for rendering a Type 1 outline. This operator, like
-<b><tt>setcharwidth</tt></b> and <b><tt>setcachedevice</tt></b>, is valid
-only in the context of a show operator -- that is, it must only be called
-from within a <b><tt>BuildChar</tt></b> or <b><tt>BuildGlyph</tt></b>
-procedure.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;font&gt; &lt;charcode&gt; %Type1BuildChar -</tt></b>
-<dd>This is not a new operator: rather, it is a name known specially to the
-interpreter. Whenever the interpreter needs to render a character (during
-a ...<b><tt>show</tt></b>, <b><tt>stringwidth</tt></b>, or
-<b><tt>charpath</tt></b>), it looks up the name <b><tt>BuildChar</tt></b>
-in the font dictionary to find a procedure to run. If it does not find
-this name, and if the <b><tt>FontType</tt></b> is 1, the interpreter
-instead uses the value (looked up on the dictionary stack in the usual way)
-of the name <b><tt>%Type1BuildChar</tt></b>.
-
-<p>
-The standard definition of <b><tt>%Type1BuildChar</tt></b> is in the
-initialization file <b><tt>gs_type1.ps</tt></b>. Users should not need to
-redefine <b><tt>%Type1BuildChar</tt></b>, except perhaps for tracing or
-debugging.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;font&gt; &lt;charname&gt; %Type1BuildGlyph -</tt></b>
-<dd>Provides the Type 1 implementation of <b><tt>BuildGlyph</tt></b>.
-</dl>
-
-<h3><a name="Other"></a>Other operators</h3>
-
-<h4><a name="Mathematical"></a>Mathematical operators</h4>
-
-<dl>
-<dt><b><tt>&lt;number&gt; arccos &lt;number&gt;</tt></b>
-<dd>Computes the arc cosine of a number between -1 and 1.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;number&gt; arcsin &lt;number&gt;</tt></b>
-<dd>Computes the arc sine of a number between -1 and 1.
-</dl>
-
-<h4><a name="Dictionary"></a>Dictionary operators</h4>
-
-<dl>
-<dt><b><tt>mark &lt;key1&gt; &lt;value1&gt; &lt;key2&gt; &lt;value2&gt; ... .dicttomark &lt;dict&gt;</tt></b>
-<dd>Creates and returns a dictionary with the given keys and values. This
-is the same as the PostScript Level 2 <b><tt>&gt;&gt;</tt></b> operator,
-but is available even in Level 1 configurations.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;dict&gt; &lt;key&gt; &lt;value&gt; .forceput - </tt></b>
-<dd>Equivalent to <b><tt>put</tt></b>, but works even if
-<b><tt>dict</tt></b> is not writable, and (if <b><tt>dict</tt></b> is
-<b><tt>systemdict</tt></b> or the current save level is 0) even if
-<b><tt>dict</tt></b> is in global VM and <b><tt>key</tt></b> and/or
-<b><tt>value</tt></b> is in local VM. <strong>This operator should be used
-only initialization code, and only in executeonly procedures: it must not be
-accessible after initialization.</strong>
-</dl>
-
-<dl>
-<dt><b><tt>&lt;dict&gt; &lt;key&gt; .forceundef - </tt></b>
-<dd>Equivalent to <b><tt>undef</tt></b>, but works even if
-<b><tt>dict</tt></b> is not writable. <strong>This operator should be used
-only initialization code, and only in executeonly procedures: it must not be
-accessible after initialization.</strong>
-</dl>
-
-
-<dl>
-<dt><b><tt>&lt;dict&gt; &lt;key&gt; .knownget &lt;value&gt; true</tt></b>
-<dt><b><tt>&lt;dict&gt; &lt;key&gt; .knownget false</tt></b>
-<dd>Combines <b><tt>known</tt></b> and <b><tt>get</tt></b> in the
-obvious way.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;dict&gt; &lt;integer&gt; .setmaxlength -</tt></b>
-<dd>Sets the capacity (<b><tt>maxlength</tt></b>) of a dictionary.
-Causes a <b><tt>dictfull</tt></b> error if the dictionary has more
-occupied entries than the requested capacity.
-</dl>
-
-<h4><a name="String"></a>String and name operators</h4>
-
-<dl>
-<dt><b><tt>&lt;integer&gt; .bytestring &lt;bytestring&gt;</tt></b>
-<dd>Allocates and returns a bytestring, a special data type that can be
-larger than the maximum size of a string (64K-1 bytes) and can be used in
-place of a string with a very few operators.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;name&gt; .namestring &lt;string&gt;</tt></b>
-<dd>Returns the (read-only) string for a name.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;obj&gt; &lt;pattern&gt; .stringmatch &lt;bool&gt;</tt></b>
-<dd>Matches <b><tt>obj</tt></b> against a pattern in which '*' matches 0 or
-more characters and '?' matches any single character. If
-<b><tt>obj</tt></b> is a string or a name, matches its characters against
-the pattern; if <b><tt>obj</tt></b> is of any other type, the result is
-<b><tt>true</tt></b> if the pattern is the single character "*" and
-<b><tt>false</tt></b> otherwise.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;state&gt; &lt;fromString&gt; &lt;toString&gt; .type1encrypt &lt;newState&gt; &lt;toSubstring&gt;</tt></b>
-<dd>Encrypts <b><tt>fromString</tt></b> according to the algorithm for
-Adobe Type 1 fonts, writing the result into <b><tt>toString</tt></b>.
-<b><tt>toString</tt></b> must be at least as long as
-<b><tt>fromString</tt></b>, or a rangecheck error occurs.
-<b><tt>state</tt></b> is the initial state of the encryption algorithm (a
-16-bit non-negative integer); <b><tt>newState</tt></b> is the new state of
-the algorithm.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;state&gt; &lt;fromString&gt; &lt;toString&gt; .type1decrypt &lt;newState&gt; &lt;toSubstring&gt;</tt></b>
-<dd>Decrypts <b><tt>fromString</tt></b> according to the algorithm for
-Adobe Type 1 fonts, writing the result into <b><tt>toString</tt></b>.
-Other specifications are as for <b><tt>type1encrypt</tt></b>.
-</dl>
-
-<h4><a name="Relational"></a>Relational operators</h4>
-
-<dl>
-<dt><b><tt>&lt;number|string&gt; &lt;number|string&gt; max &lt;number|string&gt;</tt></b>
-<dd>Returns the larger of two numbers or strings.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;number|string&gt; &lt;number|string&gt; min &lt;number|string&gt;</tt></b>
-<dd>Returns the smaller of two numbers or strings.
-</dl>
-
-<h4><a name="File"></a>File operators</h4>
-
-<dl>
-<dt><b><tt>&lt;file&gt; .filename &lt;string&gt; true</tt></b>
-<dt><b><tt>&lt;file&gt; .filename false</tt></b>
-<dd>If the file was opened by the <b><tt>file</tt></b> or
-<b><tt>.tempfile</tt></b> operator, returns the file name and
-<b><tt>true</tt></b>; if the file is a filter, returns
-<b><tt>false</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;file&gt; .fileposition &lt;integer&gt; true</tt></b>
-<dd>Returns the position of <b><tt>file</tt></b>. Unlike the standard
-<b><tt>fileposition</tt></b> operator, which causes an error if the file is
-not positionable, <b><tt>.fileposition</tt></b> works on all files,
-including filters: for non-positionable files, it returns the total number
-of bytes read or written since the file was opened.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;string&gt; findlibfile &lt;foundstring&gt; &lt;file&gt; true</tt></b>
-<dt><b><tt>&lt;string&gt; findlibfile &lt;string&gt; false</tt></b>
-<dd>Opens the file of the given name for reading, searching through
-directories <a href="Use.htm#Finding_files">as described in the usage
-documentation</a>. If the search fails, <b><tt>findlibfile</tt></b> simply
-pushes false on the stack and returns, rather than causing an error.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;file&gt; &lt;string&gt; .peekstring &lt;substring&gt; &lt;filled_bool&gt;</tt></b>
-<dd>Reads bytes from a file like <b><tt>readstring</tt></b>, but also leaves
-the bytes in the file buffer so they will be read again by a subsequent read
-operation. Currently gives a <b><tt>rangecheck</tt></b> error if
-<b><tt>string</tt></b> is larger than the file's buffer.
-</dl>
-
-<a name=Tempfile></a>
-<dl>
-<dt><b><tt>&lt;prefix_string|null&gt; &lt;access_string&gt; .tempfile
-&lt;string&gt; &lt;file&gt;</tt></b>
-<dd>Creates and opens a temporary file
-like the <b><tt>file</tt></b> operator, also returning the file name. There
-are three cases for the <b><tt>&lt;prefix_string|null&gt;</tt></b> operand:
-
-<ul>
-<p>
-<li><b><tt>null</tt></b>: create the file in the same directory and with the
-same name conventions as other temporary files created by the Ghostscript
-implementation on this platform. E.g., the temporary file might be named
-<b><tt>/tmp/gs_a1234</tt></b>.
-<p>
-<li>A string that is not the beginning of an absolute file name (e.g., does
-not begin with <b><tt>.</tt></b> or <b><tt>/</tt></b> on Unix-like
-platforms): create the file in the standard temporary directory, but use the
-<b><tt>&lt;prefix_string&gt;</tt></b> as the first part of the file name.
-E.g., if <b><tt>&lt;prefix_string&gt;</tt></b> is <b><tt>xx</tt></b>, the
-temporary file might be named <b><tt>/tmp/xxa1234</tt></b>.
-<p>
-<li>A string that is the beginning of an absolute file name: use the
-<b><tt>&lt;prefix_string&gt;</tt></b> as the first part of the file name.
-E.g., if <b><tt>&lt;prefix_string&gt;</tt></b> is
-<b><tt>/my/tmpdir/zz</tt></b>, the temporary file might be named
-<b><tt>/my/tmpdir/zza1234</tt></b>.
-<p>
-When running in <b><tt>SAFER</tt></b> mode, the absolute path must
-be one of the strings on the list given by the <b><tt>PermitFileWriting</tt></b>
-userparameter. Temporary files created with <b><tt>.tempfile</tt></b> can
-be deleted when in SAFER mode, and can be renamed to one of the paths
-that is on <b>both</b> the PermitFileControl and PermitFileWriting
-paths.
-</ul>
-
-</dl>
-
-<dl>
-<dt><b><tt>&lt;file&gt; &lt;integer&gt; .unread -</tt></b>
-<dd>Pushes back the last-read character onto the front of the file. If the
-file is open only for writing, or if the integer argument is not the same
-as the last character read from the file, causes an <b><tt>ioerror</tt></b>
-error. May also cause an <b><tt>ioerror</tt></b> if the last operation on
-the file was not a reading operation. This operator is now deprecated:
-use <b><tt>.peekstring</tt></b> in new code.
-</dl>
-
-<p>
-Ghostscript also supports the following <b><tt>IODevice</tt></b> in
-addition to a subset of those defined in the Adobe documentation:
-<b><tt>%pipe%command</tt></b>, which opens a pipe on the given command.
-This is supported only on operating systems that provide
-<b><tt>popen</tt></b> (primarily Unix systems, and not all of those).
-
-<h4><a name="Virtual_memory"></a>Virtual memory operators</h4>
-
-<dl>
-<dt><b><tt>&lt;save&gt; .forgetsave -</tt></b>
-<dd>Cancels the effect of a save, making it as though the save never
-happened.
-</dl>
-
-<h4><a name="Miscellaneous"></a>Miscellaneous operators</h4>
-
-<dl>
-<dt><b><tt>&lt;obj1&gt; &lt;obj2&gt; ... &lt;objn&gt; &lt;n&gt; .execn ...</tt></b>
-<dd>This executes <b><tt>obj1</tt></b> through <b><tt>objn</tt></b> in that
-order, essentially equivalent to
-
-<blockquote><pre>
-&lt;obj1&gt; &lt;obj2&gt; ... &lt;objn&gt; &lt;n&gt; array astore {exec} forall
-</pre></blockquote>
-
-<p>
-except that it doesn't actually create the array.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;string&gt; getenv &lt;string&gt; true</tt></b>
-<dt><b><tt>&lt;string&gt; getenv false</tt></b>
-<dd>Looks up a name in the shell environment. If the name is found,
-returns the corresponding value and true; if the name is not found, returns
-false.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;name&gt; &lt;array&gt; .makeoperator &lt;operator&gt;</tt></b>
-<dd>Constructs and returns a new operator that is actually the given
-procedure in disguise. The name is only used for printing. The operator
-has the executable attribute.
-
-<p>
-Operators defined in this way do one other thing besides running the
-procedure: if an error occurs during the execution of the procedure, and
-there has been no net reduction in operand or dictionary stack depth, the
-operand or dictionary stack pointer respectively is reset to its position
-at the beginning of the procedure.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;string&gt; &lt;boolean&gt; .setdebug -</tt></b>
-<dd>If the Ghostscript interpreter was built with the <b><tt>DEBUG</tt></b>
-flag set, sets or resets any subset of the debugging flags normally
-controlled by <b><tt>-Z</tt></b> in the command line. Has no effect
-otherwise.
-</dl>
-
-<dl>
-<dt><b><tt>- .oserrno &lt;errno&gt;</tt></b>
-<dd>Returns the error code for the most recent operating system error.
-</dl>
-
-<dl>
-<dt><b><tt>- .oserrorstring &lt;string&gt;</tt></b>
-<dd>Returns the error string for the most recent operating system error.
-</dl>
-
-<a name="Runandhide"></a>
-<dl>
-<dt><b><tt>&lt;array&gt; &lt;procedure&gt; .runandhide ... &lt;array&gt;</tt></b>
-<dd>Runs the <i><tt>&lt;procedure&gt;</tt></i> after removing the
-<i><tt>&lt;array&gt;</tt></i> from the stack. As long as <i><tt>&lt;array&gt;</tt></i>
-is not contained in any readable dictionaries or elsewhere on stacks, it
-will not be accessible to <i><tt>&lt;procedure&gt;</tt></i>.
-<p>
-This operator is intended to allow hiding a <i><tt>&lt;save&gt;</tt></i> object
-during execution of procedures or files that run in <b>SAFER</b> mode.
-If a <b><tt>save</tt></b> is performed prior to entering <b>SAFER</b> mode
-with <b><tt>.setsafe</tt></b>, using the save object as the operand to
-<b><tt>restore</tt></b> will return to <b>NOSAFER</b> mode. In order to
-prevent the procedures running in <b>SAFER</b> mode from being able to
-return to <b>NOSAFER</b> mode, this operator should be used.
-Upon return from the file or procedure <b><tt>restore</tt></b> can be used
-to return to <b>NOSAFER</b> mode.
-<p>
-<b>Note:</b> The array operand hidden during the execution of the file or
-procedure will be placed at the top of the operand stack which may be on
-top of objects that the file or procedure leaves on top of the stack.
-Thus removing objects below the array may be needed to prevent an
-<b><tt>invalidrestore</tt></b> error.
-<p>
-For example, in order for a script or job server to execute a file
-<tt>somefile.ps</tt> with the <b>SAFER</b> mode restrictions in place, returning
-to unrestricted <b>NOSAFER</b> mode when the procedure exits is as follows:
-<pre>
- Start Ghostscript with <b>-dNOSAFER</b>
-
- ... % perform any device set up w/o restrictions
- [ save ] % create a save object before SAFER
- (somefile.ps) (r) file cvx % open the file to process
- .setsafe % enter SAFER mode
- .runandhide % run the file hiding the save object
- count 1 roll % place array below anything left over
- count 1 sub { pop } repeat % pop left over stuff
- cleardictstack % prevent invalidrestore from dicts
- 0 get restore % go back to NOSAFER mode
-</pre>
-Another refinement on the above would be to execute <b><tt>.runandhide</tt></b>
-using <b><tt>stopped</tt></b> in order to report errors but continue processing.
-</dl>
-
-<dl>
-<dt><b><tt>- .setsafe -</tt></b>
-<dd>If Ghostscript is started with <b><tt>-dNOSAFER</tt></b> or
-<b><tt>-dDELAYSAFER</tt></b>, this operator can be used to enter <b>SAFER</b>
-mode (see <a href="Use.htm#Safer"><b>-dSAFER</b></a>)
-<p>
-<b>Note: </b>If <b><tt>-dPARANOIDSAFER</tt></b> was specified on the command
-line, <b><tt>.setsafe</tt></b> also sets the <b><tt>PermitFileReading</tt></b>
-parameter to an empty array.
-<p>
-Since <b>SAFER</b> mode is implemented with userparameters and device parameters,
-it is possible to use <b><tt>save</tt></b> and <b><tt>restore</tt></b> before
-and after <b><tt>.setsafe</tt></b> to return to <b>NOSAFER</b> mode, but care
-should be taken to ensure that the <i><tt>save</tt></i> object is not
-accessible to any procedures or file run in <b>SAFER</b> mode (see
-<a href="#Runandhide"><b>.runandhide</b></a> above).
-<p>
-<b>Note: This uses setpagedevice to change .LockSafetyParams, so the page
-will be erased as a side effect of this operator</b>
-</dl>
-
-<dl>
-<dt><b><tt>- .locksafe -</tt></b>
-<dd>
-This operator sets the current device's <b><tt>.LockSafetyParams</tt></b>
-and the <b><tt>LockFilePermissions</tt></b> user parameter true as well as
-adding the paths on LIBPATH and FONTPATH and the paths given by the
-system params /GenericResourceDir and /FontResourceDir to the current
-PermitFileReading list of paths.
-<p>
-If Ghostscript is started with <b><tt>-dNOSAFER</tt></b> or
-<b><tt>-dDELAYSAFER</tt></b>, this operator can be used to enter <b>SAFER</b>
-mode with the current set of <b><tt>PermitFile...</tt></b> user parameters
-in effect. Since <b><tt>.setsafe</tt></b> sets the <b><tt>PermitFileWriting</tt></b>
-and <b><tt>PermitFileControl</tt></b> user parameters to empty arrays, a script
-or job server that needs to enable certain paths for file Writing and/or Control
-can use this operator to perform the locking needed to enter <b>SAFER</b> mode.
-<p>
-For example, to enable reading everywhere, but disallow writing and file
-control (deleting and renaming files), the following can be used:
-<pre>
- { << /PermitFileReading [ (*) ]
- /PermitFileWriting [ ]
- /PermitFileControl [ ]
- >> setuserparams
- .locksafe
- } stopped pop
-</pre>
-In the above example, use of stopped will allow the use of this sequence on
-older versions of Ghostscript where <b><tt>.locksafe</tt></b> was not an operator.
-<p>
-<b>Note: This uses setpagedevice to change .LockSafetyParams, so the page
-will be erased as a side effect of this operator</b>
-<p>
-See also <a href="#LockSafetyParams">.LockSafetyParams</a> and
-<a href="#User_parameters">User Parameters</a>.
-<p>
-</dl>
-
-<h4><a name="Device"></a>Device operators</h4>
-
-<dl>
-<dt><b><tt>&lt;device&gt; copydevice &lt;device&gt;</tt></b>
-<dd>Copies a device. The copy is writable and installable. The copy is
-created in the current VM (local or global), usually local VM for executing
-ordinary PostScript files.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;devicename&gt; finddevice &lt;device&gt;</tt></b>
-<dd>Creates a default instance of a device specified by name. The instance
-is created in global VM. If <b><tt>finddevice</tt></b> is called more than
-once with the same device name, it creates the default instance the first
-time, and returns the same instance thereafter.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;devicename&gt; findprotodevice &lt;device&gt;</tt></b>
-<dd>Finds the prototype of a device specified by name. A prototype can be
-used with <b><tt>.getdeviceparams</tt></b> or other parameter-reading
-operators, but it is read-only and cannot be set with
-<b><tt>setdevice</tt></b>: it must be copied first.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;device&gt; &lt;x&gt; &lt;y&gt; &lt;width&gt; &lt;max_height&gt; &lt;alpha?&gt; &lt;std_depth|null&gt; &lt;string&gt; .getbitsrect &lt;height&gt; &lt;substring&gt;</tt></b>
-<dd>Reads a rectangle of rendered bits back from a device. This is only
-guaranteed to be implemented for image devices (see below).
-<b><tt>alpha?</tt></b> is 0 for no alpha, -1 for alpha first, 1 for alpha
-last. <b><tt>std_depth</tt></b> is null for native pixels, number of bits
-per component for a standard color space.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;index&gt; .getdevice &lt;device&gt;</tt></b>
-<dd>Returns a device from the set of devices known to the system. The
-first device, which is the default, is numbered 0. If the
-<b><tt>index</tt></b> is out of range, causes a <b><tt>rangecheck</tt></b>
-error. This device is actually a prototype, not a directly usable device,
-and is marked read-only; it cannot have its parameters changed or be
-installed as the current device.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;matrix&gt; &lt;width&gt; &lt;height&gt; &lt;palette&gt; makeimagedevice &lt;device&gt;</tt></b>
-<dd>Makes a new device that accumulates an image in memory. <b><tt>
-matrix</tt></b> is the initial transformation matrix: it must be orthogonal
-(that is, [a&nbsp;0&nbsp;0&nbsp;b&nbsp;x&nbsp;y] or
-[0&nbsp;a&nbsp;b&nbsp;0&nbsp;x&nbsp;y]). <b><tt>palette</tt></b> is a
-string of 2^<small><sup><b>N</b></sup></small> or
-3&nbsp;&times;&nbsp;2^<small><sup><b>N</b></sup></small> elements,
-specifying how the 2^<small><sup><b>N</b></sup></small> possible pixel
-values will be interpreted. Each element is interpreted as a gray value,
-or as RGB values, multiplied by 255. For example, if you want a monochrome
-image for which 0=white and 1=black, the palette should be
-<b><tt>&lt;ff&nbsp;00&gt;</tt></b>; if you want a 3-bit deep image with
-just the primary colors and their complements (ignoring the fact that 3-bit
-images are not supported), the palette might be <b><tt>&lt;000000 0000ff
-00ff00 00ffff ff0000 ff00ff ffff00 ffffff&gt;</tt></b>. At present, the
-palette must contain exactly 2, 4, 16, or 256 entries, and must contain an
-entry for black and an entry for white; if it contains any entries that
-aren't black, white, or gray, it must contain at least the six primary
-colors (red, green, blue, and their complements cyan, magenta, and yellow);
-aside from this, its contents are arbitrary.
-
-<p>
-Alternatively, palette can be 16, 24, 32, or null (equivalent to 24).
-These are interpreted as:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th valign=bottom align=left>Palette
- <td>&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left>Bits allocated per color
-<tr> <td colspan=3><hr>
-<tr valign=top> <td>16
- <td>&nbsp;
- <td>5 red, 6 green, 5 blue
-<tr valign=top> <td>24
- <td>&nbsp;
- <td>8 red, 8 green, 8 blue
-<tr valign=top> <td>32
- <td>&nbsp;
- <td>8C, 8M, 8Y, 8K
-</table></blockquote>
-
-<p>
-Note that one can also make an image device (with the same palette as an
-existing image device) by copying a device using the
-<b><tt>copydevice</tt></b> operator.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;matrix&gt; &lt;width&gt; &lt;height&gt; &lt;palette&gt; &lt;word?&gt; makewordimagedevice &lt;device&gt;</tt></b>
-<dd>Makes an image device as described above. <b><tt>word?</tt></b> is a
-Boolean value indicating whether the data should be stored in a
-word-oriented format internally. No ordinary PostScript programs should
-use this operator.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;device&gt; &lt;index&gt; &lt;string&gt; copyscanlines &lt;substring&gt;</tt></b>
-<dd>Copies one or more scan lines from an image device into a string,
-starting at a given scan line in the image. The data is in the same format
-as for the <b><tt>image</tt></b> operator. It is an error if the device is
-not an image device or if the string is too small to hold at least one
-complete scan line. Always copies an integral number of scan lines.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;device&gt; setdevice -</tt></b>
-<dd>Sets the current device to the specified device. Also resets the
-transformation and clipping path to the initial values for the device.
-Signals an <b><tt>invalidaccess</tt></b> error if the device is a
-prototype or if <a href="Language.htm#LockSafetyParams">.LockSafetyParams</a>
-is true for the current device.
-</dl>
-
-<dl>
-<dt><b><tt>- currentdevice &lt;device&gt;</tt></b>
-<dd>Gets the current device from the graphics state.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;device&gt; getdeviceprops &lt;mark&gt; &lt;name1&gt; &lt;value1&gt; ... &lt;namen&gt; &lt;valuen&gt;</tt></b>
-<dd>Gets the properties of a device. See the section on
-<a href="#Device_parameters">device parameters</a> below for details.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;mark&gt; &lt;name1&gt; &lt;value1&gt; ... &lt;namen&gt; &lt;valuen&gt; &lt;device&gt; putdeviceprops &lt;device&gt;</tt></b>
-<dd>Sets properties of a device. May cause <b><tt>undefined</tt></b>,
-<b><tt>invalidaccess</tt></b>, <b><tt>typecheck</tt></b>, <b><tt>rangecheck</tt></b>, or
-<b><tt>limitcheck</tt></b> errors.
-</dl>
-
-<dl>
-<dt><b><tt>- flushpage -</tt></b>
-<dd>On displays, flushes any buffered output, so that it is guaranteed to
-show up on the screen; on printers, has no effect.
-</dl>
-
-<hr>
-
-<h2><a name="Filters"></a>Filters</h2>
-
-<h3><a name="Standard_filters"></a>Standard filters</h3>
-
-<p>
-In its usual configuration, Ghostscript supports all the standard PostScript
-LanguageLevel 3 filters, both encoding and decoding, except that it does not
-currently support:
-
-<ul>
-
-<li>the <b><tt>EarlyChange</tt></b> key in the <b><tt>LZWEncode</tt></b>
-filter.
-
-</ul>
-
-<p>
-Ghostscript also supports additional keys in the optional dictionary
-operands for some filters. For the <b><tt>LZWDecode</tt></b> filter:
-
-<dl>
-<dt><b><tt>InitialCodeLength &lt;integer&gt;</tt></b> (default 8)
-<dd>An integer between 2 and 11 specifying the initial number of data bits
-per code. Note that the actual initial code length is 1 greater than this,
-to allow for the reset and end-of-data code values.
-</dl>
-
-<dl>
-<dt><b><tt>FirstBitLowOrder &lt;boolean&gt;</tt></b> (default false)
-<dd>If true, codes appear with their low-order bit first.
-</dl>
-
-<dl>
-<dt><b><tt>BlockData &lt;boolean&gt;</tt></b> (default false)
-<dd>If true, the data is broken into blocks in the manner specified for the
-GIF file format.
-</dl>
-
-<p>
-For the <b><tt>CCITTFaxEncode</tt></b> and <b><tt>CCITTFaxDecode</tt></b>
-filters:
-
-<dl>
-<dt><b><tt>DecodedByteAlign &lt;integer&gt;</tt></b> (default 1)
-<dd>An integer <b>N</b> with the value 1, 2, 4, 8, or 16, specifying that
-decoded data scan lines are always a multiple of <b>N</b> bytes. The
-encoding filter skips data in each scan line from Columns to the next
-multiple of <b>N</b> bytes; the decoding filter pads each scan line to a
-multiple of <b>N</b> bytes.
-</dl>
-
-<h3><a name="Non_standard_filters"></a>Non-standard filters</h3>
-
-<p>
-In addition to the standard PostScript LanguageLevel 3 filters, Ghostscript
-supports the following non-standard filters. Many of these filters are used
-internally to implement standard filters or facilities; they are almost
-certain to remain, in their present form or a backward-compatible one, in
-future Ghostscript releases.
-
-<dl>
-<dt><b><tt>&lt;target&gt; /BCPEncode filter &lt;file&gt;</tt></b>
-<dt><b><tt>&lt;source&gt; /BCPDecode filter &lt;file&gt;</tt></b>
-<dd>Create filters that implement the Adobe Binary Communications Protocol.
-See Adobe documentation for details.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target&gt; &lt;seed_integer&gt; /eexecEncode filter &lt;file&gt;</tt></b>
-<dd>Creates a filter for encrypting data into the encrypted format described
-in the Adobe Type 1 Font Format documentation. The
-<b><tt>seed_integer</tt></b> must be 55665 for the <b><tt>eexec</tt></b>
-section of a font, or 4330 for a <b><tt>CharString</tt></b>. Note that for
-the <b><tt>eexec</tt></b> section of a font, this filter produces binary
-output and does not include the initial 4 (or <b><tt>lenIV</tt></b>) garbage
-bytes.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;source&gt; &lt;seed_integer&gt; /eexecDecode filter &lt;file&gt;</tt></b>
-<dt><b><tt>&lt;source&gt; &lt;dict&gt; /eexecDecode filter &lt;file&gt;</tt></b>
-<dd>Creates a filter for decrypting data encrypted as described in the Adobe
-Type 1 Font Format documentation. The <b><tt>seed_integer</tt></b> must be
-55665 or 4330 as described just above. Recognized dictionary keys are:
-
-<blockquote>
-<b><tt>seed &lt;16-bit integer&gt;</tt></b> (required)<br>
-<b><tt>lenIV &lt;non-negative integer&gt;</tt></b> (default=4)
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target&gt; /MD5Encode filter &lt;file&gt;</tt></b>
-<dd>Creates a filter that produces the 16-byte MD5 digest of the input.
-Note that no output is produced until the filter is closed.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;source&gt; &lt;hex_boolean&gt; /PFBDecode filter &lt;file&gt;</tt></b>
-<dd>Creates a filter that decodes data in <b><tt>.PFB</tt></b> format, the
-usual semi-binary representation for Type 1 font files on IBM PC and
-compatible systems. If <b><tt>hex_boolean</tt></b> is true, binary packets
-are converted to hex; if false, binary packets are not converted.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target&gt; &lt;dict&gt; /PixelDifferenceEncode filter &lt;file&gt;</tt></b>
-<dt><b><tt>&lt;source&gt; &lt;dict&gt; /PixelDifferenceDecode filter &lt;file&gt;</tt></b>
-<dd>Implements the Predictor=2 pixel-differencing option of the LZW
-filters. Recognized keys are:
-
-<blockquote>
-<b><tt>Colors &lt;integer&gt;</tt></b> (1 to 4, default=1)<br>
-<b><tt>BitsPerComponent &lt;integer&gt;</tt></b> (1, 2, 4, or 8, default=8)<br>
-<b><tt>Columns &lt;integer&gt;</tt></b> (&gt;= 0, required)
-</blockquote>
-
-<p>
-See the Adobe <a
-href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/pdfspec.pdf"><em>Portable
-Document Format Reference Manual</em></a> for details.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target&gt; &lt;dict&gt; /PNGPredictorEncode filter &lt;file&gt;</tt></b>
-<dt><b><tt>&lt;source&gt; &lt;dict&gt; /PNGPredictorDecode filter &lt;file&gt;</tt></b>
-<dd>Implements the "filter" algorithms of the
-<a href="http://www.libpng.org/pub/png/">Portable Network Graphics (PNG)
-graphics format</a>. Recognized keys are:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Keys recognized in PNG filter algorithms</font><hr>
-<tr valign=bottom>
- <th align=left>Key
- <td>&nbsp;&nbsp;
- <th align=left>Range
- <td>&nbsp;&nbsp;
- <th align=left>Default
-<tr> <td colspan=5><hr>
-<tr valign=top> <td><b><tt>Colors &lt;integer&gt;</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>1 to 16
- <td>&nbsp;&nbsp;
- <td>16
-<tr valign=top> <td><b><tt>BitsPerComponent &lt;integer&gt;</tt></b>
- <td>&nbsp;
- <td>1, 2, 4, 8, or 16
- <td>&nbsp;&nbsp;
- <td>8
-<tr valign=top> <td><b><tt>Columns &lt;integer&gt;</tt></b>
- <td>&nbsp;
- <td>&gt;= 0
- <td>&nbsp;&nbsp;
- <td>1
-<tr valign=top> <td><b><tt>Predictor &lt;integer&gt;</tt></b>
- <td>&nbsp;
- <td>10 to 15
- <td>&nbsp;&nbsp;
- <td>15
-</table></blockquote>
-
-<p>
-The <b><tt>Predictor</tt></b> is the PNG algorithm number + 10 for the
-<b><tt>Encoding</tt></b> filter; the <b><tt>Decoding</tt></b> filter
-ignores <b><tt>Predictor</tt></b>. 15 means the encoder attempts to
-optimize the choice of algorithm. For more details see the PNG
-specification
-
-<blockquote>
-<a href="http://www.w3.org/TR/WD-png-960128.html">http://www.w3.org/TR/WD-png-960128.html</a>
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target&gt; /TBCPEncode filter &lt;file&gt;</tt></b>
-<dt><b><tt>&lt;source&gt; /TBCPDecode filter &lt;file&gt;</tt></b>
-<dd>Create filters that implement the Adobe Tagged Binary Communications
-Protocol. See Adobe documentation for details.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target&gt; /zlibEncode filter &lt;file&gt;</tt></b>
-<dt><b><tt>&lt;source&gt; /zlibDecode filter &lt;file&gt;</tt></b>
-<dd>Creates filters that use the data compression method variously known as
-'zlib' (the name of a popular library that implements it), 'Deflate' (as in
-<a href="http://www.ietf.org/rfc/rfc1951.txt">RFC 1951</a>, which is a
-detailed specification for the method), 'gzip' (the name of a popular
-compression application that uses it), or 'Flate' (Adobe's name). Note that
-the PostScript <b><tt>Flate</tt></b> filters are actually a combination of
-this filter with an optional predictor filter.
-</dl>
-
-<h3><a name="Unstable_filters"></a>Unstable filters</h3>
-
-<p>
-Some versions of Ghostscript may also support other non-standard filters for
-experimental purposes. The current version includes the following such
-filters, which are not documented further. No code should assume that these
-filters will exist in compatible form, or at all, in future versions.
-
-<dl>
-<dt><b><tt>&lt;target/source&gt; &lt;string&gt; ByteTranslateEncode/Decode filter &lt;file&gt;</tt></b>
-<dd><b><tt>string</tt></b> must be a string of exactly 256 bytes. Creates a
-filter that converts each input byte <em>b</em> to
-<b><tt>string</tt></b>[<em>b</em>]. Note that the <b><tt>Encode</tt></b>
-and <b><tt>Decode</tt></b> filters operate identically: the client must
-provide a <b><tt>string</tt></b> for the <b><tt>Decode</tt></b> filter that
-is the inverse mapping of the <b><tt>string</tt></b> for the
-<b><tt>Encode</tt></b> filter.
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target/source&gt; &lt;dict&gt; BoundedHuffmanEncode/Decode filter &lt;file&gt;</tt></b>
-<dd>These filters encode and decode data using Huffman codes. Since these
-filters aren't used anywhere, we don't document them further, except to note
-the recognized dictionary keys, which must be set identically for encoding
-and decoding:
-
-<blockquote>
-<b><tt>FirstBitLowOrder &lt;bool&gt;</tt></b> (default=false)<br>
-<b><tt>MaxCodeLength &lt;int&gt;</tt></b> (default=16)<br>
-<b><tt>EndOfData &lt;bool&gt;</tt></b> (default=true)<br>
-<b><tt>EncodeZeroRuns &lt;int&gt;</tt></b> (default=256)<br>
-<b><tt>Tables &lt;int_array&gt;</tt></b>
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target/source&gt; &lt;dict&gt; BWBlockSortEncode/Decode filter &lt;file&gt;</tt></b>
-<dd>This filter implements the Burroughs-Wheeler block sorting compression
-method, which we've heard is also used in the popular <b><tt>bzip2</tt></b>
-compression application. See <a
-href="http://sources.redhat.com/bzip2/">http://sources.redhat.com/bzip2/</a>
-for more information. The only recognized dictionary key is:
-
-<blockquote>
-<b><tt>BlockSize &lt;integer&gt;</tt></b> (default=16384)
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>&lt;target/source&gt; MoveToFrontEncode/Decode filter &lt;file&gt;</tt></b>
-
-<dd>The <b><tt>Encode</tt></b> filter starts by initializing an internal
-256-byte array <b><tt>a</tt></b> to the values 0 .. 255. This array will
-always hold a permutation of these values. Then for each input byte
-<em>b</em>, the filter outputs the index <em>i</em> such that
-<b><tt>a</tt></b>[<em>i</em>] = <em>b</em>, and moves that element to the
-front (element 0) of <b><tt>a</tt></b>, moving elements 0 .. <em>i-1</em> to
-positions 1 .. <em>i</em>. The <b><tt>Decode</tt></b> filter inverts this
-process.
-</dl>
-
-<hr>
-
-<h2><a name="Device_parameters"></a>Device parameters</h2>
-
-Ghostscript supports the concept of device parameters for all devices, not
-just page devices. (For non-page devices, these are accessible through
-<b><tt>getdeviceprops</tt></b> and <b><tt>putdeviceprops</tt></b>, as
-indicated above.) Here are the currently defined parameters for all
-devices:
-
-<dl>
-<a name="LockSafetyParams"></a>
-<dt><b><tt>.LockSafetyParams &lt;boolean&gt;</tt></b>
-<dd>This parameter allows for improved system security by preventing
-PostScript programs from being able to change potentially dangerous
-device paramters such as OutputFile. This parameter cannot be set false
-if it is already true.
-<p>
-If this parameter is true for the current device, attempt to set a new
-device that has <b><tt>.LockSafetyParams</tt></b> false will signal an
-<tt><b> invalidaccess</b></tt> error.
-</dl>
-
-<dl>
-<dt><b><tt>BitsPerPixel &lt;integer&gt; (usually read-only)</tt></b>
-<dd>Number of bits per pixel.
-</dl>
-
-<dl>
-<dt><b><tt>.HWMargins [&lt;four floats&gt;]</tt></b>
-<dd>Size of non-imageable regions around the edges of the page, in points
-(units of 1/72in; see the <a href="Devices.htm#Measurements">notes on
-measurements</a> in the documentation on devices).
-</dl>
-
-<dl>
-<dt><b><tt>HWSize [&lt;integer&gt; &lt;integer&gt;]</tt></b>
-<dd>X and Y size in pixels.
-</dl>
-
-<dl>
-<dt><b><tt>Name &lt;string&gt; (read-only)</tt></b>
-<dd>The device name. Currently the same as <b><tt>OutputDevice</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>Colors, GrayValues, RedValues, GreenValues, BlueValues, ColorValues (usually read-only)</tt></b>
-<dd>As for the <b><tt>deviceinfo</tt></b> operator of Display PostScript.
-<b><tt>Red</tt></b>, <b><tt>Green</tt></b>, <b><tt>Blue</tt></b>, and
-<b><tt>ColorValues</tt></b> are only defined if
-<b><tt>Colors</tt></b>&nbsp;&gt;&nbsp;1.
-</dl>
-
-<dl>
-<dt><b><tt>TextAlphaBits, GraphicsAlphaBits (usually read-only)</tt></b>
-<dd>The number of bits of anti-aliasing information for text or graphics
-respectively. Legal values are 1 (no anti-aliasing, the default for most
-devices), 2, or 4.
-</dl>
-
-<p>
-In addition, the following are defined per Adobe's documentation for the
-<b><tt>setpagedevice</tt></b> operator:
-
-<blockquote>
-<b><tt>Duplex</tt></b> (if supported)<br>
-<b><tt>HWResolution</tt></b><br>
-<b><tt>ImagingBBox</tt></b><br>
-<b><tt>Margins</tt></b><br>
-<b><tt>NumCopies</tt></b> (for printers only)<br>
-<b><tt>Orientation</tt></b> (if supported)<br>
-<b><tt>OutputDevice</tt></b><br>
-<b><tt>PageOffset</tt></b> (write-only)<br>
-<b><tt>PageSize</tt></b><br>
-<b><tt>ProcessColorModel</tt></b> (usually read-only)<br>
-</blockquote>
-
-<p>
-Some devices may only allow certain values for <b><tt>HWResolution</tt></b>
-and <b><tt>PageSize</tt></b>. The null device ignores attempts to set
-<b><tt>PageSize</tt></b>; its size is always <b><tt>[0&nbsp;0]</tt></b>.
-
-<p>
-For printers these are also defined:
-
-<dl>
-<dt><b><tt>BufferSpace &lt;integer&gt;</tt></b>
-<dd>Buffer space for band lists, if the bitmap is too big to fit in memory.
-</dl>
-
-<dl>
-<dt><b><tt>MaxBitmap &lt;integer&gt;</tt></b>
-<dd>Maximum space for a full bitmap in memory.
-</dl>
-
-<dl>
-<dt><b><tt>OutputFile &lt;string&gt;</tt></b>
-
-<dd>An empty string means "send to printer directly", otherwise specifies
-the file name for output; <b><tt>%d</tt></b> is replaced by the page number;
-on Unix systems <b><tt>%pipe%</tt></b><em>command</em> writes to a pipe.
-(<b><tt>|</tt></b><em>command</em> also writes to a pipe, but is now
-deprecated.)
-<p>
-Attempts to set this parameter if <tt><b>.LockSafetyParams</b></tt> is true
-will signal an <tt><b>invalidaccess</b></tt> error.
-</dl>
-
-<dl>
-<dt><b><tt>OpenOutputFile &lt;boolean&gt;</tt></b>
-<dd>If true, open the device's output file when the device is opened,
-rather than waiting until the first page is ready to print.
-</dl>
-
-<dl>
-<dt><b><tt>PageCount &lt;integer&gt; (read-only)</tt></b>
-<dd>Counts the number of pages printed on the device.
-</dl>
-
-<p>
-The following parameters are for use only by very specialized applications
-that separate band construction from band rasterization. Improper use may
-cause unpredictable errors. In particular, if you only want to allocate
-more memory for banding, to increase band size and improve performance, use
-the <b><tt>BufferSpace</tt></b> parameter, not
-<b><tt>BandBufferSpace</tt></b>.
-
-<dl>
-<dt><b><tt>BandHeight &lt;integer&gt;</tt></b>
-<dd>The height of bands when banding. 0 means use the largest band height
-that will fit within the BandBufferSpace (or BufferSpace, if
-BandBufferSpace is not specified).
-</dl>
-
-<dl>
-<dt><b><tt>BandWidth &lt;integer&gt;</tt></b>
-<dd>The width of bands in the rasterizing pass, in pixels. 0 means use the
-actual page width.
-</dl>
-
-<dl>
-<dt><b><tt>BandBufferSpace &lt;integer&gt;</tt></b>
-<dd>The size of the band buffer in the rasterizing pass, in bytes. 0 means
-use the same buffer size as for the interpretation pass.
-</dl>
-
-<p>
-Ghostscript supports the following parameter for
-<b><tt>setpagedevice</tt></b> and <b><tt>currentpagedevice</tt></b> that is
-not a device parameter per se:
-
-<dl>
-<dt><b><tt>ViewerPreProcess &lt;procedure&gt;</tt></b>
-<dd>Specifies a procedure to be applied to the page device dictionary
-before any other processing is done. The procedure may not alter the
-dictionary, but it may return a modified copy. This "hook" is provided for
-use by viewing programs such as GSview.
-</dl>
-
-<hr>
-
-<h2><a name="User_parameters"></a>User parameters</h2>
-
-Ghostscript supports the following non-standard user parameters:
-
-<dl>
-<dt><b><tt>ProcessDSCComment &lt;procedure|null&gt;</tt></b>
-<dd>If not null, this procedure is called whenever the scanner detects a DSC
-comment (comment beginning with <b><tt>%%</tt></b> or <b><tt>%!</tt></b>).
-There are two operands, the file and the comment (minus any terminating
-EOL), which the procedure must consume.
-</dl>
-
-<dl>
-<dt><b><tt>ProcessComment &lt;procedure|null&gt;</tt></b>
-<dd>If not null, this procedure is called whenever the scanner detects a
-comment (or, if <b><tt>ProcessDSCComment</tt></b> is also not null, a
-comment other than a DSC comment). The operands are the same as for
-<b><tt>ProcessDSCComment</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>LockFilePermissions &lt;boolean&gt;</tt></b>
-<dd>If <tt>true</tt>, this parameter and the three <tt>PermitFile...</tt>
-parameters cannot be changed. Attempts to change any of the values
-when LockFilePermissions is <tt>true</tt> will signal <b><tt>invalidaccess</tt></b>.
-Also, when this value is <tt>true</tt>, the <b><tt>file</tt></b> operator
-will give <b><tt>invalidaccess</tt></b> when attempting to open files
-(processes) using the <b><tt>%pipe</tt></b> device.
-<p>
-Also when <b><tt>LockFilePermissions</tt></b> is <tt>true</tt>, strings
-cannot reference the parent directory (platform specific). For example
-<b><tt>(../../xyz)</tt></b> is illegal on unix, Windows
-and Macintosh, and <b><tt>([.#.#.XYZ])</tt></b> is illegal on VMS.
-<p>
-This parameter is set <tt>true</tt> by the <b><tt>.setsafe</tt></b> and
-<b><tt>.locksafe</tt></b> operators.
-</dl>
-
-<dl>
-<dt><b><tt>PermitFileReading &lt;array of strings&gt;</tt></b>
-<dt><b><tt>PermitFileWriting &lt;array of strings&gt;</tt></b>
-<dt><b><tt>PermitFileControl &lt;array of strings&gt;</tt></b>
-<dd>These parameters specify paths where file reading, writing and the
-'control' operations are permitted, respectively. File control
-operations are <b><tt>deletefile</tt></b> and <b><tt>renamefile</tt></b>.
-For <b><tt>renamefile</tt></b>, the filename for the current filename
-must match one of the paths on the PermitFileControl list, and the
-new filename must be on <b>both</b> the PermitFileControl and the
-PermitFileWriting lists of paths.
-<p>
-The strings can contain wildcard characters as for the <b><tt>filenameforall</tt></b>
-operator and unless specifying a single file, will end with a <b>*</b>
-for directories (folders) to allow access to all files and sub-directories
-in that directory.
-<p>
-<b>Note:</b> The strings are used for stringmatch operations similar
-to <b><tt>filenameforall</tt></b>, thus on MS Windows platforms, use the '/'
-character to separate directories and filenames or use '\\\\' to
-have the string contain '\\' which will match a single '\' in the
-target filename (use of '/' is strongly recommended).
-<p>
-The <a href=Use.htm#Safer><b>SAFER</b></a> mode and the
-<b><tt>.setsafe</tt></b> operator set all three lists to empty arrays,
-thus the only files that can be read are the <b><tt>%stdin</tt></b> device and
-on LIBPATH or FONTPATH or the Resource paths specified by the /FontResourceDir
-or /GenericResourceDir system params. Files cannot be opened for writing
-anywhere and cannot be deleted or renamed except for files created with the
-<a href=#Tempfile><b>.tempfile</b></a> operator).
-</dl>
-
-<hr>
-
-<h2><a name="Miscellaneous_additions"></a>Miscellaneous additions</h2>
-
-<b><tt>run</tt></b> can take either a string or a file as its argument. In
-the latter case, it just runs the file, closing it at the end, and trapping
-errors just as for the string case.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Lib.htm b/Master/xemtex/doc/ghostscript/Lib.htm
deleted file mode 100644
index d3377b6238b..00000000000
--- a/Master/xemtex/doc/ghostscript/Lib.htm
+++ /dev/null
@@ -1,491 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>The Ghostscript library</title>
-<!-- $Id: Lib.htm,v 1.14.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: lib.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>The Ghostscript Library</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#GS_library">The Ghostscript library</a>
-<li><a href="#PS_operator_API">PostScript operator API</a>
-<ul>
-<li><a href="#Patterns">Patterns</a>
-<li><a href="#Lower_level_API">Lower-level API</a>
-</ul>
-<li><a href="#Full_example">A full example</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="GS_library"></a>The Ghostscript library</h2>
-
-<p>
-This document describes the Ghostscript library, a set of procedures
-to implement the graphics and filtering capabilities that are primitive
-operations in the PostScript language and in Adobe Portable Document Format
-(PDF).
-
-<p>
-Ghostscript is actually two programs: a language interpreter, and a
-graphics library. The library provides, in the form of C procedures, all
-the graphics functions of the language, that is, approximately those
-facilities listed in section 8.1 of the <cite>PostScript
-Language Reference Manual</cite>, starting with the
-graphics state operators. In addition, the library provides some
-lower-level graphics facilities that offer higher performance in exchange
-for less generality.
-
-<hr>
-
-<h2><a name="PS_operator_API"></a>PostScript operator API</h2>
-
-<p>
-The highest level of the library, which is the one that most clients will
-use, directly implements the PostScript graphics operators with procedures
-named <b><tt>gs_XXX</tt></b>, for instance <b><tt>gs_moveto</tt></b> and
-<b><tt>gs_fill</tt></b>. Nearly all of these procedures take graphics
-state objects as their first arguments, such as
-
-<blockquote><b><tt>
-int gs_moveto(gs_state *, double, double);
-</tt></b></blockquote>
-
-<p>
-Nearly every procedure returns an integer code which is &gt;= 0 for a
-successful return or &lt;0 for a failure. The failure codes correspond
-directly to PostScript errors, and are defined in
-<b><tt>gserrors.h</tt></b>.
-
-<p>
-The library implements all the operators in the following sections of the
-<cite>PostScript Language Reference Manual</cite>, with the indicated
-omissions and with the APIs defined in the indicated <b><tt>.h</tt></b>
-files. A header of the form <b><em>A.h(B.h)</em></b> indicates that
-<b><em>A.h</em></b> is included in <b><em>B.h</em></b>, so
-<b><em>A.h</em></b> need not be included explicitly if <b><em>B.h</em></b>
-is included. Operators marked with * in the "omissions" column are not
-implemented directly; the library provides lower-level procedures that can
-be used to implement the operator.
-
-<p>
-There are slight differences in the operators that return multiple values,
-since C's provisions for this are awkward. Also, the control structure for
-the operators involving callback procedures (<b><tt>pathforall</tt></b>,
-<b><tt>image</tt></b>, <b><tt>colorimage</tt></b>,
-<b><tt>imagemask</tt></b>) is partly inverted: the client calls a procedure
-to set up an enumerator object, and then calls another procedure for each
-iteration. The <b><tt>...show</tt></b> operators,
-<b><tt>charpath</tt></b>, and <b><tt>stringwidth</tt></b> also use an
-inverted control structure.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Section<br>(operators)
- <td>&nbsp;&nbsp;
- <th align=left>Headers
- <td>&nbsp;&nbsp;
- <th align=left>Omissions
-<tr> <td colspan=5><hr>
-<tr valign=top> <td>Graphics state -- device-independent
- <td>&nbsp;
- <td><b><tt>gscolor.h</tt></b>(<b><tt>gsstate.h</tt></b>)<br><b><tt>gscolor1.h</tt></b><br><b><tt>gscolor2.h</tt></b><br><b><tt>gscspace.h</tt></b><br><b><tt>gshsb.h</tt></b><br><b><tt>gsline.h</tt></b>(<b><tt>gsstate.h</tt></b>)<br><b><tt>gsstate.h</tt></b>
- <td>&nbsp;
- <td>&nbsp;
-<tr> <td>&nbsp;
-<tr valign=top> <td>Graphics state -- device-dependent
- <td>&nbsp;
- <td><b><tt>gscolor.h</tt></b>(<b><tt>gsstate.h</tt></b>)<br><b><tt>gscolor1.h</tt></b><br><b><tt>gscolor2.h</tt></b><br><b><tt>gsht.h</tt></b>(<b><tt>gsht1.h</tt></b>,<b><tt>gsstate.h</tt></b>)<br><b><tt>gsht1.h</tt></b><br><b><tt>gsline.h</tt></b>(<b><tt>gsstate.h</tt></b>)
- <td>&nbsp;
- <td>&nbsp;
-<tr> <td>&nbsp;
-<tr valign=top> <td>Coordinate system and matrix
- <td>&nbsp;
- <td><b><tt>gscoord.h</tt></b><br><b><tt>gsmatrix.h</tt></b>
- <td>&nbsp;
- <td><b><tt>*matrix</tt></b>, <b><tt>*identmatrix</tt></b>, <b><tt>*concatmatrix</tt></b>, <b><tt>*invertmatrix</tt></b>
-<tr> <td>&nbsp;
-<tr valign=top> <td>Path construction
- <td>&nbsp;
- <td><b><tt>gspath.h</tt></b><br><b><tt>gspath2.h</tt></b>
- <td>&nbsp;
- <td><b><tt>*arct</tt></b>, <b><tt>*pathforall</tt></b>, <b><tt>ustrokepath</tt></b>, <b><tt>uappend</tt></b>, <b><tt>upath</tt></b>, <b><tt>ucache</tt></b>
-<tr> <td>&nbsp;
-<tr valign=top> <td>Painting
- <td>&nbsp;
- <td><b><tt>gsimage.h</tt></b><br><b><tt>gspaint.h</tt></b><br><b><tt>gspath2.h</tt></b>
- <td>&nbsp;
- <td><b><tt>*image</tt></b>, <b><tt>*colorimage</tt></b>, <b><tt>*imagemask</tt></b>, <b><tt>ufill</tt></b>, <b><tt>ueofill</tt></b>, <b><tt>ustroke</tt></b>
-<tr> <td>&nbsp;
-<tr valign=top> <td>Form and pattern
- <td>&nbsp;
- <td><b><tt>gscolor2.h</tt></b>
- <td>&nbsp;
- <td><b><tt>execform</tt></b>
-<tr> <td>&nbsp;
-<tr valign=top> <td>Device setup and output
- <td>&nbsp;
- <td><b><tt>gsdevice.h</tt></b>
- <td>&nbsp;
- <td><b><tt>*showpage</tt></b>, <b><tt>*set</tt></b>/<b><tt>currentpagedevice</tt></b>
-<tr> <td>&nbsp;
-<tr valign=top> <td>Character and font
- <td>&nbsp;
- <td><b><tt>gschar.h</tt></b><br><b><tt>gsfont.h</tt></b>
- <td>&nbsp;
- <td>*(all the <b><tt>show</tt></b> operators), <b><tt>definefont</tt></b>, <b><tt>undefinefont</tt></b>, <b><tt>findfont</tt></b>, <b><tt>*scalefont</tt></b>, <b><tt>*makefont</tt></b>, <b><tt>selectfont</tt></b>, <b><tt>[Global]FontDirectory</tt></b>, <b><tt>Standard</tt></b>/<b><tt>ISOLatin1Encoding</tt></b>, <b><tt>findencoding</tt></b>
-</table></blockquote>
-
-<p>
-The following procedures from the list above operate differently from their
-PostScript operator counterparts, as explained here:
-
-<dl>
-<dt><b><tt>gs_makepattern(gscolor2.h)</tt></b>
-<dd>Takes an explicit current color, rather than using the current color in
-the graphics state. Takes an explicit allocator for allocating the pattern
-implementation. See below for more details on
-<b><tt>gs_makepattern</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>gs_setpattern(gscolor2.h)</tt></b>
-<dt><b><tt>gs_setcolor(gscolor2.h)</tt></b>
-<dt><b><tt>gs_currentcolor(gscolor2.h)</tt></b>
-<dd>Use <b><tt>gs_client_color</tt></b> rather than a set of color
-parameter values. See below for more details on
-<b><tt>gs_setpattern</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>gs_currentdash_length/pattern/offset(gsline.h)</tt></b>
-<dd>Splits up <b><tt>currentdash</tt></b> into three separate procedures.
-</dl>
-
-<dl>
-<dt><b><tt>gs_screen_init/currentpoint/next/install(gsht.h)</tt></b>
-<dd>Provide an "enumeration style" interface to <b><tt>setscreen</tt></b>.
-(<b><tt>gs_setscreen</tt></b> is also implemented.)
-</dl>
-
-<dl>
-<dt><b><tt>gs_rotate/scale/translate(gscoord.h)</tt></b>
-<dt><b><tt>gs_[i][d]transform(gscoord.h)</tt></b>
-<dd>These always operate on the graphics state CTM. The corresponding
-operations on free-standing matrices are in <b><tt>gsmatrix.h</tt></b> and
-have different names.
-</dl>
-
-<dl>
-<dt><b><tt>gs_path_enum_alloc/init/next/cleanup(gspath.h)</tt></b>
-<dd>Provide an "enumeration style" implementation of
-<b><tt>pathforall</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>gs_image_enum_alloc(gsimage.h)</tt></b>
-<dt><b><tt>gs_image_init/next/cleanup(gsimage.h)</tt></b>
-<dd>Provide an "enumeration style" interface to the equivalent of
-<b><tt>image</tt></b>, <b><tt>imagemask</tt></b>, and
-<b><tt>colorimage</tt></b>. In the <b><tt>gs_image_t</tt></b>,
-<b><tt>ColorSpace</tt></b> provides an explicit color space, rather than
-using the current color space in the graphics state;
-<b><tt>ImageMask</tt></b> distinguishes <b><tt>imagemask</tt></b> from
-<b><tt>[color]image</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>gs_get/putdeviceparams(gsdevice.h)</tt></b>
-<dd>Take a <b><tt>gs_param_list</tt></b> for specifying or receiving the
-parameter values. See <b><tt>gsparam.h</tt></b> for more details.
-</dl>
-
-<dl>
-<dt><b><tt>gs_show_enum_alloc/release(gschar.h)</tt></b>
-<dt><b><tt>gs_xxxshow_[n_]init(gschar.h)</tt></b>
-<dt><b><tt>gs_show_next(gschar.h)</tt></b>
-<dd>Provide an "enumeration style" interface to writing text. Note that
-control returns to the caller if the character must be rasterized.
-</dl>
-
-<p>
-This level of the library also implements the following operators from other
-sections of the Manual:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Section<br>(operators)
- <td>&nbsp;&nbsp;
- <th align=left>Headers
- <td>&nbsp;&nbsp;
- <th align=left>Operators
-<tr> <td colspan=5><hr>
-<tr valign=top> <td>Interpreter parameter
- <td>&nbsp;
- <td><b><tt>gsfont.h</tt></b>
- <td>&nbsp;
- <td><b><tt>cachestatus</tt></b>, <b><tt>setcachelimit</tt></b>, <b><tt>*set/currentcacheparams</tt></b>
-<tr valign=top> <td>Display PostScript
- <td>&nbsp;
- <td><b><tt>gsstate.h</tt></b>
- <td>&nbsp;
- <td><b><tt>set/currenthalftonephase</tt></b>
-</table></blockquote>
-
-<p>
-In order to obtain the full PostScript Level 2 functionality listed above,
-<b><tt>FEATURE_DEVS</tt></b> must be set in the makefile to include at least the following:
-
-<blockquote><b><tt>
-FEATURE_DEVS=patcore.dev cmykcore.dev psl2core.dev dps2core.dev ciecore.dev path1core.dev hsbcore.dev
-</tt></b></blockquote>
-
-<p>
-The <b><tt>*lib.mak</tt></b> makefiles mentioned below do not always
-include all of these features.
-
-<p>
-Files named <b><tt>gs*.c</tt></b> implement the higher level of the
-graphics library. As might be expected, all procedures, variables, and
-structures available at this level begin with "<b><tt>gs_</tt></b>".
-Structures that appear in these interfaces, but whose definitions may be
-hidden from clients, also have names beginning with "<b><tt>gs_</tt></b>",
-that is, the prefix, not the implementation, reflects at what level the
-abstraction is made available.
-
-<h3><a name="Patterns"></a>Patterns</h3>
-
-<p>
-Patterns are the most complicated PostScript language objects that the
-library API deals with. As in PostScript, defining a pattern color and
-using the color are two separate operations.
-
-<p>
-<b><tt>gs_makepattern</tt></b> defines a pattern color. Its arguments are as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td><b><tt>gs_client_color *</tt></b>
- <td>&nbsp;&nbsp;&nbsp;
- <td>The resulting <b><tt>Pattern</tt></b> color is stored here. This is different from PostScript, which has no color objects <em>per se</em>, and hence returns a modified copy of the dictionary.
-<tr valign=top> <td><b><tt>const gs_client_pattern *</tt></b>
- <td>&nbsp;
- <td>The analogue of the original <b><tt>Pattern</tt></b> dictionary, described in detail just below.
-<tr valign=top> <td><b><tt>const gs_matrix *</tt></b>
- <td>&nbsp;
- <td>Corresponds to the matrix argument of the <b><tt>makepattern</tt></b> operator.
-<tr valign=top> <td><b><tt>gs_state *</tt></b>
- <td>&nbsp;
- <td>The current graphics state.
-<tr valign=top> <td><b><tt>gs_memory_t *</tt></b>
- <td>&nbsp;
- <td>The allocator to use for allocating the saved data for the
- <b><tt>Pattern</tt></b> color. If this is
- <b><tt>NULL</tt></b>, <b><tt>gs_makepattern</tt></b> uses the
- same allocator that allocated the graphics state. Library
- clients should probably always use <b><tt>NULL</tt></b>.
-
-</table></blockquote>
-
-<p>
-The <b><tt>gs_client_pattern</tt></b> structure defined in
-<b><tt>gscolor2.h</tt></b> corresponds to the <b><tt>Pattern</tt></b>
-dictionary that is the argument to the PostScript language
-<b><tt>makepattern</tt></b> operator. This structure has one extra member,
-<b><tt>void&nbsp;*client_data</tt></b>, which is a place for clients to
-store a pointer to additional data for the <b><tt>PaintProc</tt></b>; this
-provides the same functionality as putting additional keys in the
-<b><tt>Pattern</tt></b> dictionary at the PostScript language level. The
-<b><tt>PaintProc</tt></b> is an ordinary C procedure that takes as
-parameters a <b><tt>gs_client_color&nbsp;*</tt></b>, which is the
-<b><tt>Pattern</tt></b> color that is being used for painting, and a
-<b><tt>gs_state&nbsp;*</tt></b>, which is the same graphics state that
-would be presented to the <b><tt>PaintProc</tt></b> in PostScript.
-Currently the <b><tt>gs_client_color&nbsp;*</tt></b> is always the current
-color in the graphics state, but the <b><tt>PaintProc</tt></b> should not
-rely on this. The <b><tt>PaintProc</tt></b> can retrieve the
-<b><tt>gs_client_pattern&nbsp;*</tt></b> from the
-<b><tt>gs_client_color&nbsp;*</tt></b> with the
-<b><tt>gs_getpattern</tt></b> procedure, also defined in
-<b><tt>gscolor2.h</tt></b>, and from there, it can retrieve the
-<b><tt>client_data</tt></b> pointer.
-
-<p>
-The normal way to set a <b><tt>Pattern</tt></b> color is to call
-<b><tt>gs_setpattern</tt></b> with the graphics state and with the
-<b><tt>gs_client_color</tt></b> returned by <b><tt>gs_makepattern</tt></b>.
-After that, one can use <b><tt>gs_setcolor</tt></b> to set further
-<b><tt>Pattern</tt></b> colors (colored, or uncolored with the same
-underlying color space); the rules are the same as those in PostScript.
-Note that for <b><tt>gs_setpattern</tt></b>, the
-<b><tt>paint.values</tt></b> in the <b><tt>gs_client_color</tt></b> must be
-filled in for uncolored patterns; this corresponds to the additional
-arguments for the PostScript <b><tt>setpattern</tt></b> operator in the
-uncolored case.
-
-<p>
-There is a special procedure <b><tt>gs_makebitmappattern</tt></b> for creating bitmap-based
-patterns. Its API is documented in <b><tt>gscolor2.h</tt></b>; its implementation, in
-<b><tt>gspcolor.c</tt></b>, may be useful as an example of a pattern using a particularly
-simple <b><tt>PaintProc.</tt></b>
-
-<h3><a name="Lower_level_API"></a>Lower-level API</h3>
-
-<p>
-Files named <b><tt>gx*.c</tt></b> implement the lower level of the graphics
-library. The interfaces at the <b><tt>gx</tt></b> level are less stable,
-and expose more of the implementation detail, than those at the
-<b><tt>gs</tt></b> level: in particular, the <b><tt>gx</tt></b> interfaces
-generally use device coordinates in an internal fixed-point representation,
-as opposed to the <b><tt>gs</tt></b> interfaces that use floating point
-user coordinates. Named entities at this level begin with
-<b><tt>gx_</tt></b>.
-
-<p>
-Files named <b><tt>gz*.c</tt></b> and <b><tt>gz*.h</tt></b> are internal to
-the Ghostscript implementation, and are not designed to be called by
-clients.
-
-<hr>
-
-<h2><a name="Full_example"></a>A full example</h2>
-
-<p>
-The file <b><tt>gslib.c</tt></b> in the Ghostscript fileset is a complete
-example program that initializes the library and produces output using it;
-files named <b><tt>*lib.mak</tt></b> (such as <b><tt>ugcclib.mak</tt></b>
-and <b><tt>bclib.mak</tt></b>) are makefiles using <b><tt>gslib.c</tt></b>
-as the main program. The following annotated excerpts from this file are
-intended to provide a roadmap for applications that call the library.
-
-<blockquote><pre>/* Capture stdin/out/err before gs.h redefines them. */
-#include &lt;stdio.h&gt;
-static FILE *real_stdin, *real_stdout, *real_stderr;
-static void
-get_real(void)
-{ real_stdin = stdin, real_stdout = stdout, real_stderr = stderr;
-}</pre></blockquote>
-
-<p>
-Any application using Ghostscript should include the fragment above at the
-very beginning of the main program.
-
-<blockquote><pre>#include "gx.h"</pre></blockquote>
-
-<p>
-The <b><tt>gx.h</tt></b> header includes a wealth of declarations related
-to the Ghostscript memory manager, portability machinery, debugging
-framework, and other substrate facilities. Any application file that calls
-any Ghostscript API functions should probably include <b><tt>gx.h</tt></b>.
-
-<blockquote><pre>/* Configuration information imported from gconfig.c. */
-extern gx_device *gx_device_list[];
-
-/* Other imported procedures */
- /* from gsinit.c */
-extern void gs_lib_init(P1(FILE *));
-extern void gs_lib_finit(P2(int, int));
- /* from gsalloc.c */
-extern gs_ref_memory_t *ialloc_alloc_state(P2(gs_memory_t *, uint));</pre></blockquote>
-
-<p>
-The externs above are needed for initializing the library.
-
-<blockquote><pre> gs_ref_memory_t *imem;
-#define mem ((gs_memory_t *)imem)
- gs_state *pgs;
- gx_device *dev = gx_device_list[0];
-
- gp_init();
- get_real();
- gs_stdin = real_stdin;
- gs_stdout = real_stdout;
- gs_stderr = real_stderr;
- gs_lib_init(stdout);
- ....
- imem = ialloc_alloc_state(&amp;gs_memory_default, 20000);
- imem-&gt;space = 0;
- ....
- pgs = gs_state_alloc(mem);</pre></blockquote>
-
-<p>
-The code above initializes the library and its memory manager. <b><tt>pgs</tt></b> now
-points to the graphics state that will be passed to the drawing routines in
-the library.
-
-<blockquote><pre> gs_setdevice_no_erase(pgs, dev); /* can't erase yet */
- { gs_point dpi;
- gs_screen_halftone ht;
- gs_dtransform(pgs, 72.0, 72.0, &amp;dpi);
- ht.frequency = min(fabs(dpi.x), fabs(dpi.y)) / 16.001;
- ht.angle = 0;
- ht.spot_function = odsf;
- gs_setscreen(pgs, &amp;ht);
- }</pre></blockquote>
-
-<p>
-The code above initializes the default device and sets a default halftone
-screen. (For brevity, we have omitted the definition of odsf, the spot
-function.)
-
-<blockquote><pre> /* gsave and grestore (among other places) assume that */
- /* there are at least 2 gstates on the graphics stack. */
- /* Ensure that now. */
- gs_gsave(pgs);</pre></blockquote>
-
-<p>
-The call above completes initializing the graphics state. When the program
-is finished, it should execute:
-
-<blockquote><pre> gs_lib_finit(0, 0);</pre></blockquote>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Maintain.htm b/Master/xemtex/doc/ghostscript/Maintain.htm
deleted file mode 100644
index 789602bd86c..00000000000
--- a/Master/xemtex/doc/ghostscript/Maintain.htm
+++ /dev/null
@@ -1,210 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript maintenance procedures</title>
-<!-- $Id: Maintain.htm,v 1.23.2.12.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Ghostscript maintenance procedures</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#CVS">Rules for CVS commits</a>
-<li><a href="#Adding_or_removing_files">Adding or Removing Files</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the instructions on how to <a href="Make.htm">build
-Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-This document describes various maintenance procedures associated with
-development version
-Ghostscript. It is only meant for developers actively working on
-Ghostscript.
-
-<hr>
-
-<h2><a name="CVS"></a>Rules for CVS Commits</h2>
-
-<p>
-This section describes a few rules intended to make life easier for people
-working with this code base.
-
-<p>
-At any given time, there are usually two active branches: a stable
-branch and a development branch. The development branch is HEAD, which
-is the default when doing a checkout without a -r flag. At the time of
-this writing (7 October 2002), the stable branch is tagged
-GS_7_0x.
-
-<p>
-A concise and useful document for working with CVS branches is Jeff
-Semke's <a href="http://www.psc.edu/~semke/cvs_branches.html"
-class="offsite">CVS
-Branch and Tag Primer</a>. A
-somewhat more detailed explanation is the <a
-href="http://www.loria.fr/~molli/cvs/doc/cvs_5.html"
-class="offsite">Branching and
-merging</a> section from the CVS documentation by Pascal Molli.
-
-<p>
-For new development commits, you can basically ignore the
-branches. Just commit to the HEAD branch. For bug fixes for the stable
-branch, it is your responsibility to commit to both the stable branch
-and, if appropriate, HEAD. Commits to HEAD are appropriate if they are
-in an area not being actively reworked, if the development version
-exhibits the same bug symptoms, and if the patch fixes these
-symptoms.
-
-<p>
-When modifying a number of files for a single issue, please group them
-together as a single commit. For two separate sets of changes dealing
-with two different issues, there should be two commits.
-
-<p>
-You should strive not to introduce any new bugs with your
-commit. Always make sure the code compiles before committing. Test the
-changes with several files, including the problem file in the case of
-a bug fix, and other files that may have been affected by the
-changes.
-
-<p>
-Always supply a descriptive log message for your commits. These log
-messages are used to automatically generate the <a
-href="News.htm">News.htm</a> file and History changelogs, and are also
-crucial for navigating CVS using the CVSweb gateway. Please try to
-keep the style of the descriptions similar to those in the current
-History#.htm files.
-
-<p>
-Log messages beginning with 'Fix' are treated specially. Such messages are
-put under the "Fixes problems" heading when the History files are
-generated. Additionally, if the first four characters are 'Fix:' this is removed
-(i.e., "Fix: The xyz" becomes "The xyz", but "Fixes xyz" is copied unchanged).
-This feature is intended for explicit bugfixes and should be avoided for
-enhancements or commits with long explanations.
-
-<p>
-Information about who changed what, when, and why is maintained in the
-CVS logs. In general, a file should be a clean representation of the
-current version rather than a history trail of how it got
-there. Keeping old code around for reference is usually not necessary,
-as it is stored in the CVS diffs. When necessary, use #if / #endif, or
-descriptive conditionals such as #ifdef OLD_CMAP_TABLES. Do not
-comment out old code. (A very few files that are distributed separate
-from Ghostscript have a change log at the beginning, which should be
-maintained: currently, only ansiknr.c and md5.[ch].)
-
-<p>
-Additionally, if your patch removes a feature, changes an interface or
-otherwise creates an incompatibility with the last release, you
-must add an entry to the "Incompatible changes" section of <tt>News.htm</tt>
-as this information can only be generated manually.
-This admonition applies to api changes that might
-affect other developers as well as user issues like switch behavior.
-Upon release, the accumulated incompatible changes will be moved to the
-relevant History file, and the News collection in cvs will be wiped clean
-for the next version.
-
-<p>
-All patches must be reviewed before being committed. Please email your
-patch to <a
-href="mailto:gs-code-review@ghostscript.com">gs-code-review@ghostscript.com</a>.
-Make sure to include your commit comment and any other information
-that would be helpful for the review. Also, please identify which
-branches the patch is intended for.
-
-<p>
-If you are not an employee or consultant of Artifex or artofcode, then
-we need a copyright assignment form so we can incorporate your
-changes. Please email Raph Levien &lt;<a
-href="mailto:raph@artofcode.com">raph@artofcode.com</a>&gt; and
-include your snailmail address for a hardcopy assignment form.
-
-<h2><a name="Adding_or_removing_files"></a>Adding or removing files</h2>
-
-<p>
-When adding or removing files, don't forget to invoke <b><tt>cvs
-add</tt></b> or <b><tt>cvs rm</tt></b>.
-
-<p>
-When adding files, update the file roadmap in
-<b><tt>doc/Develop.htm</tt></b>.
-
-<p>
-When adding or removing files other than .c or .h: If the files will be
-used at runtime, check the install list in <b><tt>unixinst.mak</tt></b>.
-
-<p>
-When adding .c files, update the relevant <b><tt>.mak</tt></b> file
-(usually <b><tt>devs.mak</tt></b>, <b><tt>int.mak</tt></b>, or
-<b><tt>lib.mak</tt></b>).
-
-<p>
-When adding new documentation, add a link to <tt>doc/Readme.htm</tt> and
-a short blurb describing the contents of the file.
-
-<p>
-When adding or changing fonts, update <b><tt>lib/Fontmap.GS</tt></b>,
-<b><tt>fonts.mak</tt></b>, and possibly the compiled fonts in
-<b><tt>gs.mak</tt></b> and the examples in
-<b><tt>doc/Fonts.htm</tt></b>.
-
-<p>
-When adding .ps files, update <b><tt>doc/Psfiles.htm</tt></b>.
-
-<p>
-Likewise, you will want to delete any references for a file you
-remove from Ghostscript.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2000 artofcode LLC.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Make.htm b/Master/xemtex/doc/ghostscript/Make.htm
deleted file mode 100644
index 2fecd470c45..00000000000
--- a/Master/xemtex/doc/ghostscript/Make.htm
+++ /dev/null
@@ -1,2766 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>How to build Ghostscript from source code</title>
-<!-- $Id: Make.htm,v 1.36.2.19.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: make.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>How to build Ghostscript from source code</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#General_overview">General overview</a>
-<li><a href="#Acquiring">How to acquire the source code</a>
-<ul>
-<li><a href="#Ghostscript_source">Ghostscript source code</a>
-<li><a href="#Third-party_libraries">Third-party library source code</a>
-</ul>
-<li><a href="#Unpack">How to unpack the source code</a>
-<ul>
-<li><a href="#Tarfiles">How to unpack compressed tar files generally</a>
-<li><a href="#Zipfiles">How to unpack zip files generally</a>
-<li><a href="#Unpack_Ghostscript">How to unpack Ghostscript itself</a>
-<li><a href="#Unpack_libraries">How to unpack the third-party libraries</a>
-</ul>
-<li><a href="#Makefile_overview">How to prepare the makefiles</a>
-<ul>
-<li><a href="#Preparing_makefiles">Changes for your environment</a>
-<li><a href="#Features_and_devices">Selecting features and devices</a>
-<ul>
-<li><a href="#Precompiled_data">Precompiled run-time data</a>
-<li><a href="#GNU_readline">GNU readline</a>
-</ul>
-<li><a href="#Makefile_setup">Setting up "makefile"</a>
-<li><a href="#Invoke_make">Invoking "make"</a>
-<li><a href="#Cross-compiling">Cross-compiling</a>
-</ul>
-<li><a href="#PC_build">How to build Ghostscript from source (PC version)</a>
-<ul>
-<li><a href="#Borland_build">Borland/Inprise environment</a>
-<li><a href="#Microsoft_build">Microsoft environment</a>
-<li><a href="#Self-extracting_executables">Making self-extracting executables</a>
-<li><a href="#Watcom_build">Watcom environment</a>
-<li><a href="#Cygwin32_build">Cygwin32 gcc</a>
-<li><a href="#IntelWin32_build">Intel C/C++ compiler</a>
-</ul>
-<li><a href="#Mac_build">How to build Ghostscript from source (MacOS version)</a>
-<ul>
-<li><a href="#MacOS">Traditional MacOS</a>
-<li><a href="#MacOSX">MacOS X</a>
-</ul>
-<li><a href="#Unix_build">How to build Ghostscript from source (Unix version)</a>
-<ul>
-<li><a href="#Multi_architecture_makefile">The multi-architecture makefile</a>
-<li><a href="#UNIX_makefile">Setting up "makefile"</a>
-<li><a href="#Shared_object">Shared object</a>
-<li><a href="#Tool_specific_issues">Tool-specific issues</a>
-<ul>
-<li><a href="#gcc_27x">gcc 2.7.*</a>
-<li><a href="#GNU_make">GNU make</a>
-</ul>
-<li><a href="#OS_specific_issues">OS-specific issues</a>
-<ul>
-<li><a href="#386_Unix">386 Unix</a>
-<li><a href="#BSDI">BSDI</a>
-<li><a href="#Digital_Unix">Digital Unix (Alpha)</a>
-<li><a href="#FreeBSD">FreeBSD</a>
-<li><a href="#GNULinux">GNU/Linux</a>
-<li><a href="#NeXTSTEP">NeXTSTEP / OpenSTEP</a>
-<li><a href="#SCO">SCO Unix/Xenix</a>
-<li><a href="#SVR4">SVR4 Unix</a>
-<li><a href="#System_V">System V Unix platforms</a>
-<li><a href="#Unixware">Unixware</a>
-</ul>
-<li><a href="#Hardware_specific_issues">Hardware-specific issues</a>
-<ul>
-<li><a href="#Alpha_with_gcc">Alpha with gcc</a>
-<li><a href="#Apollo">H-P Apollo</a>
-<li><a href="#ATT_7040">AT&amp;T 7040 R3</a>
-<li><a href="#Convex">Convex</a>
-<li><a href="#DECStations">DECStations with Ultrix</a>
-<li><a href="#HP_RISC">H-P RISC workstations</a>
-<li><a href="#Intergraph">Intergraph Clipper</a>
-<li><a href="#MIPS">MIPS</a>
-<li><a href="#NCR_3550">NCR 3550</a>
-<li><a href="#Pyramid">Pyramid MIServer-S</a>
-<li><a href="#RS6000">IBM RS/6000 with AIX</a>
-<li><a href="#Silicon_Graphics">Silicon Graphics</a>
-<li><a href="#Sun">Sun</a>
-<li><a href="#SunOS">SunOS</a>
-<li><a href="#Solaris">Solaris</a>
-<li><a href="#VAX_Ultrix">VAX with Ultrix</a>
-</ul>
-</ul>
-<li><a href="#OS2_build">How to build Ghostscript from source (OS/2 version)</a>
-<li><a href="#VMS_build">How to build Ghostscript from source (OpenVMS version)</a>
-<ul>
-<li><a href="#GNU_make_VMS">Building with GNU make on OpenVMS</a>
-<li><a href="#MMK_MMS_VMS">Building with MMK or MMS on OpenVMS</a>
-</ul>
-<li><a href="#Other_environments">Other environments</a>
-<ul>
-<li><a href="#No_multi_thread">Environments lacking multi-threading</a>
-<li><a href="#Plan_9">Plan 9</a>
-<li><a href="#QNX">QNX</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the instructions on how to <a href="Install.htm">install
-Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="General_overview"></a>General overview</h2>
-
-<p>
-This document describes how to build a Ghostscript executable from source
-code. There are four major steps to building Ghostscript:
-
-<ol>
-<li>Acquire the compressed archive files of source code for Ghostscript and
-the required third-party libraries.
-<li>Unpack the archive files into the Ghostscript directory and correctly
-named subdirectories.
-<li>Prepare the makefiles, including specific changes for your operating
-environment and your choice of configuration options.
-<li>Invoke "<b><tt>make</tt></b>" to build the software.
-</ol>
-
-<p>
-The remainder of this document describes each of these steps in detail.
-Note that some of this process is platform-dependent. After building
-Ghostscript you must then install it; for that, see the
-<a href="Install.htm">installation instructions</a>.
-
-<hr>
-
-<h2><a name="Acquiring"></a>How to acquire the source code</h2>
-
-<p>
-Building Ghostscript requires the Ghostscript source code itself, and also
-the source code for some third-party libraries that Ghostscript uses.
-
-<h3><a name="Ghostscript_source"></a>Ghostscript source code</h3>
-
-<p><a name="Authoritative_distribution_site"></a>
-Ghostscript is available from all the standard GNU mirrors, e.g.
-
-<blockquote>
-<a href="ftp://ftp.gnu.org/pub/gnu/"
-class="offsite">ftp://ftp.gnu.org/pub/gnu/</a>
-</blockquote>
-
-<p>
-Ghostscript source code is packaged in two different formats:
-gzip-compressed tar files (*<b><tt>.tar.gz</tt></b>) and zip files
-(*<b><tt>.zip</tt></b>). For all versions there are gzip-compressed tar
-files:
-
-<blockquote>
-<b><tt>ghostscript-</tt></b>#.##<b><tt>.tar.gz</tt></b><br>
-<b><tt>ghostscript-fonts-std-</tt></b>#.##<b><tt>.tar.gz</tt></b><br>
-<b><tt>ghostscript-fonts-other-</tt></b>#.##<b><tt>.tar.gz</tt></b>
-</blockquote>
-
-<p>For recent versions of Ghostscript there may also be zip files
-
-<blockquote>
-<b><tt>gs</tt></b>###<b><tt>src.zip</tt></b><br>
-<b><tt>gs</tt></b>###<b><tt>w32.exe</tt></b>
-</blockquote>
-
-<p>
-("#.##" and "###" are version numbers in punctuated and unpunctuated form.)
-Software to decompress and extract both formats is available for almost
-every platform for which Ghostscript is available -- including Unix, DOS,
-MS Windows, and VMS -- so you can choose the format most convenient for
-you; but it's up to you to locate that software. See the section on <a
-href="#Unpack">unpacking the source code</a>.
-
-<h3><a name="Third-party_libraries"></a>Third-party library source code</h3>
-
-<p>
-To build Ghostscript you need the source code for the <a
-href="http://www.ijg.org/">Independent JPEG Group</a> (IJG) library, the
-<a href="http://www.libpng.org/pub/png/">Portable Network Graphics</a>
-(PNG)
-library, and the <a
-href="http://www.gzip.org/zlib/">zlib</a>
-compression and decompression library. Here are authoritative distribution
-points for these libraries, where as elsewhere, "#" is used for version
-numbers. The JPEG source code is quite stable, so the reference
-here includes the latest version number. The zlib references are
-version-independent and should always provide the latest version.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Third-party libraries: authoritative sources</font><hr>
-<tr> <td valign=top>JPEG
- <td>&nbsp;&nbsp;&nbsp;
- <td><a href="ftp://ftp.uu.net/graphics/jpeg/"
-class="offsite">ftp://ftp.uu.net/graphics/jpeg/</a><a
-href="ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz"
-class="offsite">jpegsrc.v6b.tar.gz</a><br>
- <a href="ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/"
-class="offsite">ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/</a><a
-href="ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/jpegsr6b.zip">jpegsr6b.zip</a>
-
-<tr> <td valign=top>PNG
- <td>&nbsp;
- <td><a href="http://www.libpng.org/pub/png/src/"
-class="offsite">http://www.libpng.org/pub/png/src/</a>libpng-#.#.#.tar.gz<br>
- <a href="http://www.libpng.org/pub/png/src/"
-class="offsite">http://www.libpng.org/pub/png/src/</a>lpng###.zip<br>
- <a href="ftp://swrinde.nde.swri.edu/pub/png/src/"
-class="offsite">ftp://swrinde.nde.swri.edu/pub/png/src/</a>libpng-#.#.#.tar.gz<br>
- <a href="ftp://swrinde.nde.swri.edu/pub/png/src/"
-class="offsite">ftp://swrinde.nde.swri.edu/pub/png/src/</a>lpng###.zip
-
-<tr> <td valign=top>zlib (latest)
- <td>&nbsp;
- <td> <a href="http://www.gzip.org/zlib/zlib.tar.gz"
-class="offsite">http://www.gzip.org/zlib/zlib.tar.gz</a><br>
- <a href="http://www.gzip.org/zlib/zlib.zip"
-class="offsite">http://www.gzip.org/zlib/zlib.zip</a><br>
- <a href="ftp://swrinde.nde.swri.edu/pub/png/src/" class="offsite">ftp://swrinde.nde.swri.edu/pub/png/src/zlib-#.#.#.tar.gz</a><br>
- <a href="ftp://swrinde.nde.swri.edu/pub/png/src/" class="offsite">ftp://swrinde.nde.swri.edu/pub/png/src/zlib###.zip</a>
-</table></blockquote>
-
-<p>
-On DOS or MS Windows one ordinarily uses the zip file kits, in other
-environments the compressed tar files, but this is simply a matter of
-convenience, since for the same version of the software the compressed tar
-file has the same contents as the zip file. Note that each of these
-libraries has <b><em>its own version number</em></b> that has
-<b><em>nothing to do with Ghostscript's version number</em></b>; you should
-get the highest numbered version. (If you encounter difficulties in the
-build process you might have to use a lower-numbered version, but don't
-worry about this yet.) If you're running GNU/Linux, you might check whether
-these libraries are already available in source form on your system, since
-many GNU/Linux distributors include them; but we advise you to get the highest
-version from the Net if you can.
-
-<p>
-Although the zip archives of an old version of the PNG library may not be
-named <b><tt>lpng</tt></b>###<b><tt>.zip</tt></b>, we refer to it as
-<b><tt>lpng</tt></b>###<b><tt>.zip</tt></b>.
-
-<p>
-On MacOS, the .sit source archive includes the appropriate source versions
-of these libraries, so no additional downloads are necessary.
-
-<hr>
-
-<h2><a name="Unpack"></a>How to unpack the source code</h2>
-
-<p>
-Unfortunately there are no generally accepted standards for how to package
-source code into archives, so the instructions for unpacking Ghostscript are
-longer than they should be. We begin with a brief explanation of how to
-extract the two kinds of archive files.
-
-<h3><a name="Tarfiles"></a>How to unpack compressed tar files generally</h3>
-
-<p>
-Tar (<b><tt>.tar</tt></b>) files are the <em>de facto</em> standard for
-archiving files on Unix (every Unix system has the <b><tt>tar</tt></b>
-program), and programs to extract their contents are also widely available
-for DOS, MS Windows, and VMS. To economize on space and downloading time,
-Ghostscript's tar files are compressed with GNU <b><tt>gzip</tt></b>, which
-adds the suffix "<b><tt>.gz</tt></b>" to the file name, giving
-"<b><tt>.tar.gz</tt></b>".
-
-<p>
-To unpack a compressed tar file <b><tt>MyArchive.tar.gz</tt></b> you
-must both decompress it and extract the contents. You can do this in two
-steps, one to decompress the file and another to unpack it:
-
-<blockquote>
-<b><tt>gzip -d MyArchive.tar.gz</tt></b>
-<br><b><tt>tar -xf MyArchive.tar</tt></b>
-</blockquote>
-
-<p>
-or in a pipeline:
-
-<blockquote>
-<b><tt>gzip -d -c MyArchive.tar.gz | tar -xf -</tt></b>
-</blockquote>
-
-<p>
-or, if you have a program like GNU <b><tt>tar</tt></b> that can handle
-compressed tar files, with a single command:
-
-<blockquote>
-<b><tt>tar -zxf MyArchive.tar.gz</tt></b>
-</blockquote>
-
-<p>
-The <b><tt>tar</tt></b> program automatically preserves directory structure
-in extracting files. The Ghostscript source archive puts all files under a
-directory <b><tt>gs</tt></b>#.##, so using <b><tt>tar</tt></b> to unpack a
-compressed archive should always properly create that directory, which we
-will call the "gs directory". Make sure you're positioned in the
-<b><em>parent</em></b> of the gs directory <b><em>before</em></b> unpacking
-the files. If a subdirectory doesn't already exist, <b><tt>tar</tt></b>
-creates it.
-
-<p>
-Some other programs -- under MS Windows, for instance -- can also unpack
-compressed tar files, but they may not automatically preserve directory
-structure nor even extract files into the current directory. If you use
-one of these, you must
-
-<ul>
-<li>set the program's options to "Use folder names" or the equivalent, and
-<li>check that it is extracting files into the right place.
-</ul>
-
-<h3><a name="Zipfiles"></a>How to unpack zip files generally</h3>
-
-<p>
-Zip files are the <em>de facto</em> standard for archiving files on DOS and
-MS Windows, and programs to extract their contents are widely available for
-DOS, MS Windows, Unix, VMS, and other platforms. Zip files are at once an
-archive format and a compressed format, so an unzipping program
-decompresses and extracts archived files as a single step.
-
-<p>
-One common 16-bit DOS program is <b><tt>pkunzip</tt></b>, which comes in
-the <b><tt>pkzip</tt></b> package. If you use this, you should ensure that
-you have at least version 2.04g, because with its <b><tt>-d</tt></b>
-switch, that version of <b><tt>pkunzip</tt></b> preserves the directory
-structure of archived files when extracting them; see below. Another
-popular free program to unpack zip archives, available for DOS and MS
-Windows (16-bit and 32-bit), Unix, VMS, and other platforms, is InfoZIP
-<b><tt>unzip</tt></b>:
-
-<blockquote>
-<a href="http://www.info-zip.org/pub/infozip/UnZip.html"
-class="offsite">http://www.info-zip.org/pub/infozip/UnZip.html</a>
-</blockquote>
-
-<p>
-Unlike <b><tt>pkunzip</tt></b>, InfoZIP <b><tt>unzip</tt></b> automatically
-preserves the directory structure of extracted files. So if you have a zip
-archive <b><tt>MyArchive.zip</tt></b>:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Extracting zipped files</font><hr>
-<tr valign=bottom>
- <th align=left>Command
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Preserves directory structure
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>pkunzip MyArchive.zip</tt></b>
- <td>&nbsp;
- <td>Does <b><em>NOT</em></b>
-<tr valign=top> <td><b><tt>pkunzip -d MyArchive.zip</tt></b>
- <td>&nbsp;
- <td><b><em>DOES</em></b> (note the <b><tt>-d</tt></b> switch)
-<tr valign=top> <td><b><tt>unzip MyArchive.zip</tt></b>
- <td>&nbsp;
- <td><b><em>DOES</em></b>
-</table></blockquote>
-
-<p>
-As with the compressed tar files, make sure you're positioned in the
-<b><em>parent</em></b> of the gs directory <b><em>before</em></b> unpacking
-the files. If a subdirectory doesn't already exist, <b><tt>zip</tt></b> or
-<b><tt>pkunzip&nbsp;-d</tt></b> creates it.
-
-<h3><a name="Unpack_Ghostscript"></a>How to unpack Ghostscript itself</h3>
-
-<p>
-At this point you have <a href="#Acquiring">acquired all the source code</a>
-and are ready to unpack it according to the preceding guidelines for <a
-href="#Tarfiles">tar files</a> or <a href="#Zipfiles">zip files</a>. To
-unpack the Ghostscript source, make the <b><em>parent</em></b> of the (new)
-gs directory the current directory.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <th align=left valign=top>2-step:
- <td>&nbsp;&nbsp;&nbsp;
- <td><b><tt>gzip -d ghostscript-</tt></b>#.##<b><tt>.tar.gz</tt></b><br><b><tt>tar -xf ghostscript-</tt></b>#.##<b><tt>.tar</tt></b>
-<tr><td>
-<tr> <th align=left valign=top>Pipe:
- <td>&nbsp;
- <td><b><tt>gzip -d -c ghostscript-</tt></b>#.##<b><tt>.tar.gz | tar -xf -</tt></b>
-<tr><td>
-<tr> <th align=left valign=top>GNU <b><tt>tar</tt></b>:
- <td>&nbsp;
- <td><b><tt>tar -zxf ghostscript-</tt></b>#.##<b><tt>.tar.gz</tt></b>
-<tr><td>
-<tr> <th align=left valign=top><b><tt>pkunzip</tt></b>:
- <td>&nbsp;
- <td><b><tt>pkunzip -d gs</tt></b>###<b><tt>sr1.zip</tt></b><br><b><tt>pkunzip -d gs</tt></b>###<b><tt>sr2.zip</tt></b><br>...
-<tr><td>
-<tr> <th align=left valign=top><tt>unzip</tt>:
- <td>&nbsp;
- <td><b><tt>unzip gs</tt></b>###<b><tt>src.zip</tt></b>
-</table></blockquote>
-
-<p>
-All the Ghostscript source files are now in subdirectories of the gs
-directory.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Source subdirectories</font><hr>
-<tr> <th valign=bottom align=left>Subdirectory
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left>Contents
-<tr> <td colspan=5><hr>
-<tr> <td><b><tt>src/</tt></b>
- <td>&nbsp;
- <td>C source code and makefiles
-<tr> <td><b><tt>lib/</tt></b>
- <td>&nbsp;
- <td>PostScript files and scripts used when running Ghostscript
-<tr> <td><b><tt>doc/</tt></b>
- <td>&nbsp;
- <td>Documentation
-<tr> <td><b><tt>man/</tt></b>
- <td>&nbsp;
- <td>Unix <b><tt>man</tt></b> pages
-<tr> <td><b><tt>examples/</tt></b>
- <td>&nbsp;
- <td>Sample PostScript files
-</table></blockquote>
-
-<h3><a name="Unpack_libraries"></a>How to unpack the third-party libraries</h3>
-
-<p>
-The Ghostscript makefiles expect to find the JPEG, PNG, and zlib source code
-in specific subdirectories of the <b><tt>gs</tt></b> directory, and this
-means you must pay careful attention to unpacking the source code for these
-packages. Use the same method for all of them, no matter how they're
-packaged:
-
-<ol>
-<li>Make the gs directory current.
-<li>Unpack the archive file, creating a subdirectory (which will include a
-version number).
-<li>Whatever the subdirectory's original name, rename it to the versionless
-name shown just below.
-</ol>
-
-<p>
-If you're uncertain how to unpack an archive, review the sections on <a
-href="#Tarfiles">compressed tar files</a> and <a href="#Zipfiles">zip
-files</a>.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">3d-party software subdirectories</font><hr>
-<tr> <th valign=bottom align=left>Package
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left>Possible<br>original name
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th valign=bottom align=left>Rename to
-<tr> <td colspan=5><hr>
-<tr> <td>JPEG
- <td>&nbsp;
- <td><b><tt>./jpeg-6b</tt></b>
- <td>&nbsp;
- <td><b><tt>./jpeg</tt></b>
-<tr> <td>PNG
- <td>&nbsp;
- <td><b><tt>./libpng-</tt></b>#.##
- <td>&nbsp;
- <td><b><tt>./libpng</tt></b>
-<tr> <td>zlib
- <td>&nbsp;
- <td><b><tt>./zlib-</tt></b>#.#.#
- <td>&nbsp;
- <td><b><tt>./zlib</tt></b>
-</table></blockquote>
-
-<hr>
-
-<h2><a name="Makefile_overview"></a>How to prepare the makefiles</h2>
-
-<p>
-The Ghostscript makefiles are very large and complex in order to deal with
-the diverse requirements of all the different systems where they may be
-used.
-
-<p>
-New with this release is support for the GNU autoconf tool for generating
-an automatic configuration script. If you're on unix or a related system
-that supports unix shell scripts, this is the easiest option to use.
-Simply type:
-
-<blockquote>
-<tt>./configure</tt>
-</blockquote>
-
-from the top level of the ghostscript source directory. It should configure
-itself based on what's available on your system, warn you of any missing
-dependencies, and generate a Makefile. At this point you can skip to the
-section <a href="#Invoke_make">invoking make</a> below. Note that the
-autoconfiguration option is only available with the unix .tar distribution
-of the source.
-
-<p>
-If your system doesn't support the configure script or you don't wish to
-use it, you can use the traditional ghostscript makefile system, editing
-the options by hand to match your system as described below.
-Fortunately, the only makefiles you're likely to want to change are
-relatively small ones containing platform-specific information.
-
-
-<blockquote><a name="Platform-specific_makefiles"></a><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Platform-specific makefiles</font><hr>
-<tr> <th align=left>Makefile
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Used for
-<tr> <td colspan=3><hr>
-<tr> <td><b><tt>bcwin32.mak</tt></b>
- <td>&nbsp;
- <td>MS Windows with Borland/Inprise compilers
-<tr> <td><b><tt>msvc32.mak</tt></b>
- <td>&nbsp;
- <td>MS Windows with Microsoft Visual C++ version 4 to 7.
-<tr> <td><b><tt>openvms.mak</tt></b>
- <td>&nbsp;
- <td>OpenVMS
-<tr> <td><b><tt>os2.mak</tt></b>
- <td>&nbsp;
- <td>OS/2 with the gcc/emx compiler
-<tr> <td><b><tt>unix-gcc.mak</tt></b>
- <td>&nbsp;
- <td>Unix with gcc
-<tr> <td><b><tt>unixansi.mak</tt></b>
- <td>&nbsp;
- <td>Unix with ANSI C compilers other than gcc
-<tr> <td><b><tt>watc.mak</tt></b>
- <td>&nbsp;
- <td>DOS with Watcom compilers
-<tr> <td><b><tt>watcw32.mak</tt></b>
- <td>&nbsp;
- <td>MS Windows with Watcom compilers
-<tr> <td>&nbsp;
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Platform-independent makefiles</font><hr>
-<tr> <td><b><tt>contrib.mak</tt></b>
- <td>&nbsp;
- <td>Contributed device drivers
-<tr> <td><b><tt>devs.mak</tt></b>
- <td>&nbsp;
- <td>Maintained device drivers
-<tr> <td><b><tt>gs.mak</tt></b>
- <td>&nbsp;
- <td>Documentation and miscellany
-<tr> <td><b><tt>int.mak</tt></b>
- <td>&nbsp;
- <td>Main makefile for the PostScript &amp; PDF interpreter
-<tr> <td><b><tt>jpeg.mak</tt></b>
- <td>&nbsp;
- <td>JPEG library
-<tr> <td><b><tt>lib.mak</tt></b>
- <td>&nbsp;
- <td>Graphics engine
-<tr> <td><b><tt>libpng.mak</tt></b>
- <td>&nbsp;
- <td>PNG library
-<tr> <td><b><tt>version.mak</tt></b>
- <td>&nbsp;
- <td>Version and release date
-<tr> <td><b><tt>zlib.mak</tt></b>
- <td>&nbsp;
- <td>zlib library
-</table></blockquote>
-
-<p>
-Since these files change from one Ghostscript version to another, sometimes
-substantially, and since they all include documentation for the various
-options, here we don't duplicate most of that documentation: we recommend
-strongly that you review the entire makefile specific for your operating
-system and compiler before building Ghostscript.
-
-<h3><a name="Preparing_makefiles"></a>Changes for your environment</h3>
-
-<p>
-You must edit the platform-specific makefile to change any of these:
-
-<ul>
-<li>The name of the makefile itself (<b><tt>MAKEFILE</tt></b> macro)
-<li>The locations to install Ghostscript files (<b><tt>prefix</tt></b> etc.)
-<li>The default search paths for the initialization and font files
-(<b><tt>GS_LIB_DEFAULT</tt></b> macro)
-<li>The debugging options (<b><tt>DEBUG</tt></b> and <b><tt>TDEBUG</tt></b>
-macros)
-<li>Which optional features to include (<b><tt>FEATURE_DEVS</tt></b>)
-<li>Which device drivers to include (<b><tt>DEVICE_DEVS</tt></b> and
-<b><tt>DEVICE_DEVS</tt></b>{<em>1--20</em>} macros)
-<li>Default resolution parameters for some printer drivers
-(<b><tt>devs.mak</tt></b> or <b><tt>contrib.mak</tt></b>, whichever defines
-the driver)
-
-</ul>
-
-<p>
-The <a href="#Platform-specific_makefiles">platform-specific makefiles</a>
-include comments describing all these except the
-<b><tt>DEVICE_DEVS</tt></b> options. These are described in
-<b><tt>devs.mak</tt></b> and <b><tt>contrib.mak</tt></b>, even though the
-file that must be edited to select them is the <a
-href="#Platform-specific_makefiles">platform-specific makefile</a>.
-
-<p>
-Some platform-specific options are described in the sections for individual
-platforms. See the "Options" section near the beginning of the relevant
-makefile for more information.
-
-<h3><a name="Features_and_devices"></a>Selecting features and devices</h3>
-
-<p>
-You may build Ghostscript with any of a variety of features and with any
-subset of the available device drivers. The complete list of features is
-in a comment at the beginning of <b><tt>gs.mak</tt></b>, and the complete
-list of drivers in comments at the beginning of <b><tt>devs.mak</tt></b>
-and <b><tt>contrib.mak</tt></b>. To find what devices a platform-specific
-makefile selects to include in the executable, look in it for all lines of
-the form
-
-<blockquote>
-<b><tt>FEATURE_DEVS=</tt></b><em>{list of features}</em><br>
-<b><tt>DEVICE_DEVS</tt></b>*<b><tt>=</tt></b><em>{list of devices}</em>
-</blockquote>
-
-<p>
-For example, if the makefile has
-
-<blockquote><b><tt>
-FEATURE_DEVS=$(PSD)level2.dev
-</tt></b></blockquote>
-
-<p>
-indicating that only the PostScript Level 2 facilities should be included,
-you might make it
-
-<blockquote><b><tt>
-FEATURE_DEVS=$(PSD)level2.dev $(PSD)pdf.dev
-</tt></b></blockquote>
-
-<p>
-to add the ability to interpret PDF files. (In fact,
-<b><tt>FEATURE_DEVS</tt></b> in the current Unix makefiles already includes
-<b><tt>$(PSD)pdf.dev</tt></b>.) The Unix makefile also defines
-
-<blockquote><b><tt>
-DEVICE_DEVS=$(DD)x11.dev
-</tt></b></blockquote>
-
-<p>
-indicating that the X Windows driver should be included, but since
-platform-specific makefiles as distributed normally include many of the
-possible features and drivers, you will probably rather remove from the
-makefile the features and drivers you don't want. It does no harm to
-include unneeded features and devices, but the resulting executable will be
-larger than needed.
-
-<p>
-You may edit the <b><tt>FEATURE_DEVS</tt></b> line to select or omit any of
-the features listed near the beginning of <b><tt>gs.mak</tt></b>, and the
-<b><tt>DEVICE_DEVS</tt></b>* lines to select or omit any of the device
-drivers listed near the beginning of <b><tt>devs.mak</tt></b> and
-<b><tt>contrib.mak</tt></b>. The first device listed in the definition of
-<b><tt>DEVICE_DEVS</tt></b> becomes the default device for this executable;
-see the usage documentation for <a href="Use.htm#Output_device">how to
-select an output device</a> at run time using the
-<a href="Use.htm#DEVICE_switch"><b><tt>-sDEVICE=</tt></b></a> switch. If
-you can't fit all the devices on a single line, you may add lines defining
-
-<blockquote>
-<b><tt>DEVICE_DEVS1=$(DD)</tt></b><em>{dev11}</em><b><tt>.dev</tt></b> ... <b><tt>$(DD)</tt></b><em>{dev1n}</em><b><tt>.dev</tt></b>
-<br><b><tt>DEVICE_DEVS2=$(DD)</tt></b><em>{dev21}</em><b><tt>.dev</tt></b> ... <b><tt>$(DD)</tt></b><em>{dev2n}</em><b><tt>.dev</tt></b>
-</blockquote>
-
-<p>
-etc., up to <b><tt>DEVICE_DEVS15</tt></b>. Don't use continuation lines --
-on some platforms they don't work.
-
-<p>
-Note that if you want to include a driver named <em>xxx</em>, you must put
-<b><tt>$(DD)</tt></b><em>xxx</em><b><tt>.dev</tt></b> in
-<b><tt>DEVICE_DEVS</tt></b>*. Similarly, if you want to include a feature
-related to the PostScript or PDF language interpreters (PostScript level
-1 .. 3, or other language features such as the ability to read EPSF files or
-TrueType font files), you must represent it as
-<b><tt>$(PSD)</tt></b><em>xxx</em><b><tt>.dev</tt></b>. If you are linking
-only the graphics library -- not the language interpreter(s) -- with an
-application and want to include optional graphics library features such as
-CIE color, you represent them as
-<b><tt>$(GLD)</tt></b><em>xxx</em><b><tt>.dev</tt></b>.
-
-<h4><a name="Precompiled_data"></a>Precompiled run-time data</h4>
-
-<p>
-Ghostscript normally reads a number of external data files at run time:
-initialization files containing PostScript code, fonts, and other resources
-such as halftones. By changing options in the top-level makefile for the
-platform, you can cause some of these files to be compiled into the
-executable: this simplifies installation, improves security, may reduce
-memory requirements, and may be essential if you are planning on putting
-Ghostscript into ROM.
-
-<p>
-To compile the initialization files (<b><tt>lib/gs_init.ps</tt></b>, etc.)
-into the executable, change the <b><tt>0</tt></b> to a <b><tt>1</tt></b> in
-the line
-
-<blockquote><b><tt>
-COMPILE_INITS=0
-</tt></b></blockquote>
-
-<p>
-To compile fonts into the executable, see <a
-href="Fonts.htm#Precompiling">Precompiling fonts</a>.
-
-<p>
-To compile threshold-array halftones into the executable, see the "Compiled
-halftone" section of <b><tt>int.mak</tt></b> for a sample makefile fragment,
-<b><tt>genht.c</tt></b> for the syntax of halftone data files, and
-<b><tt>lib/ht_ccsto.ps</tt></b> for a sample data file. Note that even
-though the data files use PostScript syntax, compiled halftones do not
-require the PostScript interpreter and may be used with the graphics library
-alone.
-
-<h4><a name="GNU_readline"></a>GNU readline</h4>
-
-<p>
-GNU Ghostscript distributions include support for GNU readline, but this
-is not officially supported at this time. We will, however, welcome bug
-fixes or updates, and distribute them with subsequent releases.
-
-<h3><a name="Makefile_setup"></a>Setting up "makefile"</h3>
-
-<p>
-
-After going through the steps just described to <a href="#Unpack">unpack
-the
-sources</a>, make any desired <a href="#Preparing_makefiles">changes to
-the
-makefiles</a>, and unpack or create links to the <a
-href="#Unpack_libraries">third party libraries</a>, as the final step in
-preparing to build Ghostscript you must usually associate the name
-"<b><tt>makefile</tt></b>" with the correct makefile for your environment so
-the <b><tt>make</tt></b> command can find it. See the section on your
-particular platform for how to do that if necessary.
-
-<h3><a name="Invoke_make"></a>Invoking "make"</h3>
-
-<dl>
-<dt><b><tt>make</tt></b>
-<dd>Builds Ghostscript without debugging options.
-</dl>
-
-<dl>
-<dt><a name="Debugging"></a><b><tt>make debug</tt></b>
-<dd>Builds Ghostscript with debugging options and additional internal error
-checks. The program will be somewhat larger and slower, but it will behave
-no differently unless you actually turn on debugging options at execution
-time with the <b><tt>-DDEBUG</tt></b> or
-<a href="Use.htm#Debugging"><b><tt>-Z</tt></b> command line switches</a>
-described in the usage documentation.
-</dl>
-
-<dl>
-<dt><b><tt>make pg</tt></b>
-<dd>On Unix platforms, builds with the <b><tt>-pg</tt></b> compiler
-switch, creating an executable for time profiling.
-</dl>
-
-<dl>
-<dt><b><tt>make begin</tt></b>
-<dd>On PC platforms, attempts a quick and dirty compilation of all the
-<b><tt>.c</tt></b> files in the current directory. See the
-<a href="#Make_begin">more detailed explanation</a>.
-</dl>
-
-<dl>
-<dt><b><tt>make install</tt></b>
-<dd>After building, installs the Ghostscript executables, support files,
-and documentation, but does <b><em>not</em></b> install fonts. See the
-<a href="Install.htm">installation documentation</a>.
-</dl>
-
-<dl>
-<dt><b><tt>make clean</tt></b>
-<dd>Deletes all the files created by the build process (relocatables,
-executables, and miscellaneous temporary files). If you've built an
-executable and want to save it, move it first to another place, because
-"<b><tt>make clean</tt></b>" deletes it.
-</dl>
-
-<p>
-<b><em>Note:</em></b> on most platforms some of these simple instructions don't
-quite work in one way or another. Read the section on your specific
-platform.
-
-<h3><a name="Cross-compiling"></a>Cross-compiling</h3>
-
-<p>
-If you are compiling Ghostscript on machines <b>X1</b> ... <b>X</b><em>n</em> with
-cross-compilers that generate code for machine <b>Y</b>, you must first
-perform several extra steps on some machine <b>Z</b> (not necessarily of the
-same type as either <b>X</b><em>i</em> or <b>Y</b>). First of all, choose a makefile
-appropriate for <b>Z</b> and edit it to reflect the run-time options you
-wish to include (<b><tt>FEATURE_DEVS</tt></b>, <b><tt>DEVICE_DEVS*</tt></b>,
-and any other relevant options), just as for non-cross-compilation.
-
-<p>
-If <b>Z</b> runs Unix, perform the following steps:
-<ol>
-<li>On <b>Z</b>,
-<blockquote>
-<b><tt>make clean</tt></b><br>
-<b><tt>make obj/arch.h obj/genconf obj/echogs</tt></b>
-</blockquote>
-
-<li>Edit <b><tt>obj/arch.h</tt></b> to reflect the architecture of <b>Y</b>.
-
-<li>On <b>Z</b>,
-<blockquote>
-<b><tt>make CC=: CCLD=:</tt></b>
-</blockquote>
-
-<li>Copy the files <b><tt>obj/*.h</tt></b> from <b>Z</B> to the directory on
-each <b>X</b><em>i</em> that will be used for compilation.
-
-<li>Extract from the file <b><tt>obj/ldt.tr</tt></b> (on <b>Z</b>) the list
-of <b><tt>.o</tt></b> files that will be linked: this gives the list of
-source files that must be compiled.
-
-<li>Do the compilations on <b>X</b><em>i</em>.
-</ol>
-
-<p>
-If <b>Z</b> runs some version of Microsoft Windows with Microsoft Visual
-C++, use the following steps. <em>NOTE: We have not actually tested
-this.</em>
-
-<ol>
-<li>On <b>Z</b>,
-<blockquote>
-<b><tt>nmake clean</tt></b><br>
-<b><tt>nmake obj\arch.h obj\genconf.exe obj\echogs.exe</tt></b>
-</blockquote>
-
-<li>Edit <b><tt>obj\arch.h</tt></b> to reflect the architecture of <b>Y</b>.
-
-<li>On <b>Z</b>,
-<blockquote>
-<b><tt>nmake CC=rem LINK=rem</tt></b>
-</blockquote>
-
-<li>Copy the files <b><tt>obj\*.h</tt></b> from <b>Z</B> to the directory on
-each <b>X</b><em>i</em> that will be used for compilation.
-
-<li>Extract from the file <b><tt>obj\ldt.tr</tt></b> (on <b>Z</b>) the list
-of <b><tt>.obj</tt></b> files that will be linked: this gives the list of
-source files that must be compiled.
-
-<li>Do the compilations on <b>X</b><em>i</em>.
-</ol>
-
-<hr>
-
-<h2><a name="PC_build"></a>How to build Ghostscript from source (PC version)</h2>
-
-<p>
-All Ghostscript builds in PC (DOS and MS Windows) environments are 32- or
-64-bit: 16-bit builds are not supported. The relevant makefiles are
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">PC makefiles</font><hr>
-<tr> <th align=left>Makefile
- <td>&nbsp;&nbsp;
- <th align=left>Construction tools
- <td>&nbsp;&nbsp;
- <th align=left>For environment
-<tr> <td colspan=5><hr>
-<tr> <td valign=top><b><tt>bcwin32.mak</tt></b>
- <td>&nbsp;
- <td valign=top><a href="#Borland_build">Borland/Inprise C++ 4.x</a>
- <td>&nbsp;
- <td valign=top>32-bit MS Windows 3.1 + Win32s, 95, 98, NT
-<tr> <td valign=top><b><tt>msvc32.mak</tt></b>
- <td>&nbsp;
- <td valign=top><a href="#Microsoft_build">Microsoft Visual C++ 4 to 7</a>
- <td>&nbsp;
- <td valign=top>MS Windows 32-bit
-<tr> <td valign=top><b><tt>watc.mak</tt></b>
- <td>&nbsp;
- <td valign=top><a href="#Watcom_build">Watcom C/386 or C++</a>
- <td>&nbsp;
- <td valign=top>MS-DOS 32-bit (extended)
-<tr> <td valign=top><b><tt>watcw32.mak</tt></b>
- <td>&nbsp;
- <td valign=top><a href="#Watcom_build">Watcom C/386 or C++</a>
- <td>&nbsp;
- <td valign=top>MS Windows 32-bit
-<tr> <td valign=top><b><tt>unix-gcc.mak</tt></b>
- <td>&nbsp;
- <td valign=top><a href="#Cygwin32_build">Cygnus gcc</a>
- <td>&nbsp;
- <td valign=top><a href="http://sourceware.cygnus.com/cygwin/">Cygnus gnu-win32</a>
-</table></blockquote>
-
-<p>
-To build Ghostscript you need MS-DOS version 3.3 or later and
-Borland/Inprise C/C++ (4.0 or later); Microsoft Visual C++ (version 4.0 or
-later); Watcom C/386 (version 8.5 or later) or C++ (any version); or the
-free djgpp + go32 development system. The options in the makefiles are
-chosen to strike a balance between RAM consumption and likely usefulness.
-If you run <b><tt>make</tt></b> in directory <em>{dir}</em>, the default
-configuration generates an executable that assumes the Ghostscript
-initialization and font files are in directory
-<em>{dir}</em><b><tt>\lib</tt></b>.
-
-<p>
-Note that the <b><tt>make</tt></b> program supplied with each PC compiler
-has a different name. We refer to this program generically as
-<b><tt>make</tt></b> everywhere else in this document, but you will find the
-correct name for each compiler in the relevant section below that discusses
-that compiler.
-
-<p>
-You must have <b><tt>COMMAND.COM</tt></b> in your path to build Ghostscript.
-After making the changes needed to choose features and devices to build into
-the executable, you must create the directory where the compiler will do its
-work (normally the <b><tt>obj</tt></b> subdirectory of the current
-directory) and the directory where the compiled code will be placed
-(normally the <b><tt>bin</tt></b> subdirectory). Then to build the
-Ghostscript executable all you need do is give the <b><tt>make</tt></b>
-command.
-
-<p><a name="Make_begin"></a>
-A special make target "<b><tt>begin</tt></b>" attempts to compile all the
-<b><tt>.c</tt></b> files in the current directory. Some of these
-compilations will fail, but the ones that succeed will go considerably
-faster because they don't individually pay the overhead of starting up the
-compiler. So a good strategy for building the executable for the first
-time, or after changing a widely used <b><tt>.h</tt></b> file, is to do the
-fast compilation of everything possible, then the controlled compilation of
-everything that failed in the first step:
-
-<blockquote><b><tt>
-make begin<br>
-make
-</tt></b></blockquote>
-
-<p>
-<b><em>Note:</em></b> if you unpack the Ghostscript sources on a DOS or MS Windows
-system from a Unix tar file, the unpacked files have linefeed alone as the
-line terminator (the Unix convention) instead of carriage return + linefeed
-(the Microsoft convention), which may make the C compiler unhappy. One
-simple way to fix this, if you have the InfoZIP <b><tt>zip</tt></b> and
-<b><tt>unzip</tt></b> programs, is
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td><b><tt>zip -l CVTEMP.zip *.bat *.c *.h *.def *.rc</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>(Letter "l", not the digit "1")
-<tr> <td><b><tt>unzip -o CVTEMP.zip</tt></b>
- <td>&nbsp;
- <td>(Rewrite all the same files correctly)
-<tr> <td><b><tt>del CVTEMP.zip</tt></b>
- <td>&nbsp;
- <td>(Delete the temporary zip file)
-</table></blockquote>
-
-<h3><a name="Borland_build"></a>Borland/Inprise environment</h3>
-
-<p>
-To compile Ghostscript with the Borland/Inprise environment (hereafter
-referred to as just "Borland"), you need Borland C++ (version 4.0 or later);
-specifically the compiler, <b><tt>make</tt></b> utility, and linker. You
-also need either the Borland assembler (version 1.0 or later) or the
-Microsoft assembler (version 4.0 or later).
-
-<p>
-To create "<b><tt>makefile</tt></b>", give the command
-
-<blockquote><b><tt>
-echo !include "src\bcwin32.mak" &gt;makefile
-</tt></b></blockquote>
-
-<p>
-To run the <b><tt>make</tt></b> program, give the commmand
-
-<blockquote><b><tt>
-make
-</tt></b></blockquote>
-
-<p>
-Besides the source files and the makefiles, you need:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <td>*<b><tt>.bat</tt></b>
- <td>&nbsp;
- <td>(a variety of batch files used in the build process)
-</table></blockquote>
-
-<p>
-Comments in the makefiles describe the configuration parameters. If your
-configuration is different from the following, you should definitely read
-those comments and see if you want or need to change any of this:
-<ul>
-<li>The compiler files are in <b><tt>C:\BC</tt></b> and its subdirectories.
-<li>You are using the Borland assembler <b><tt>tasm</tt></b>.
-<li>You want an executable that will run on any 32-bit PC-compatible,
-regardless of processor type (80386, 80486, Pentium, or compatible) and
-regardless of whether a math coprocessor (80x87) is present -- an issue only
-with 80386 processors.
-</ul>
-
-<p>
-<b>Notes</b>
-
-<ul>
-<li>A user reports that the Borland C++ 4.00 with patch 1-6 doesn't
-produce a working executable of Ghostscript 5.03. We can't test this,
-since we no longer have this compiler.
-
-<li>Borland C++ 4.5 has a bug or bugs that cause(s) the 32-bit Windows
-executable to crash if you give any @-files on the command line. Among
-other things, this makes the uniprint driver unusable, because it references
-the .upp configuration files this way. This problem may possibly be fixed
-by one or more of the patch files on
-
-<blockquote>
-<a href="ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/"
-class="offsite">ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/</a>
-</blockquote>
-
-<li>Borland C++ 4.52 has a bug that causes the 32-bit Windows executable to
-fail during startup. Borland (now Inprise) provides a patch for this bug
-in
-
-<blockquote>
-<a
-href="ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/bc45xp1.zip"
-class="offsite">ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/bc45xp1.zip</a>
-</blockquote>
-
-<li>Borland C++ 5.0 and 5.01 have a code generator bug that generates
-incorrect code for the construct <b><tt>!file_is_valid()</tt></b>. Do not
-attempt to compile Ghostscript with these compilers. If you want to report
-this bug to Borland, send them the result of compiling
-<b><tt>ziodev.c</tt></b> and tell them to look at the code generated for
-<b><tt>file_is_valid()</tt></b> and <b><tt>!file_is_valid()</tt></b>. We
-don't know whether Borland C++ 5.02 still has this problem.
-
-<li>When building for the MS Windows Win32s environment, the make
-process will stop after it has created <b><tt>genarch.exe</tt></b>.
-You should then run "<b><tt>_genarch.bat</tt></b>", wait until
-<b><tt>genarch</tt></b> has finished and then exit MS Windows. Then type
-"<b><tt>make</tt></b>" again to restart the make process.
-
-</ul>
-
-<h3><a name="Microsoft_build"></a>Microsoft Environment</h3>
-
-<p> NOTE: We have received reports that the Microsoft Visual C++ 5.0 and 6.0 compilers
- produce incorrect code for Ghostscript version 6.0 and later, from the same
- source code that compiles and runs correctly with other compilers. In spite
- of these reports, several members of the Artifex staff use version 6.0 of the
- MSVC compiler on a regular basis and we have not found any problems. You may
- also want to try out the <a href="#IntelWin32_build">Intel&nbsp;C/C++ compiler</a>,
- which can be integrated into the Microsoft Visual C++ environment.
-<p>To compile Ghostscript using the Microsoft environment, you need Microsoft
- Visual C++ 4.0 or later with its associated "<b><tt>nmake</tt></b>" utility
- and linker.
-<h4><a name="Using_the_MS_Development_Environment"> </a>Using Microsoft Developer
- Studio</h4>
-<p>Microsoft Developer Studio is the Microsoft Visual C++ integrated development
- environment. To use it to build Ghostscript: it is first necessary to create
- a new workspace/project. To create the workspace/project, open Microsoft Developer
- Studio and select <b><tt>File/New</tt></b>. In the dialog window that is opened,
- select 'Makefile' as the type of project. Specify a name for the project. (Microsoft
- does not allow special characters such as ., *, ?, /, or \ as part of project
- names.) Also specify the location of the master directory for your Ghostscript
- files. Then select OK.
-<p> In the next dialog window, specify the build command line as <b><tt>nmake
- /f src/msvc32.mak DEVSTUDIO= </tt></b> Note the value for <b><tt>DEVSTUDIO</tt></b>
- is empty. Then select <b><tt>Finish</tt></b>.
-<p>At this point, it is now possible to build Ghostscript using Developer Studio.
- To build, press F7 or select the build icon. Note: multiple warnings will also
- given about things like double to float data conversions. Ignore them. We have
- not found a way to create a single set of sources that does not create warnings
- with the different compilers and operating systems supported by Ghostscript.
- We are working to reduce the number of the warning messages.
-<p>To run Ghostscript inside of Developer Studio, it is necessary to specify the
- name of the executable program . Select <b><tt>Project/Settings</tt></b>. Select
- the <b><tt>Debug</tt></b> tab. Then for <b><tt>Executable for debug session:</tt></b>
- specify <b><tt>bin/gswin32.exe</tt></b>
-<p>To use all of the features of Microsoft Developer Studio for debugging, and
- modifying Ghostscriptt, you need to finish the remaining steps.
-<p>To add the Ghostscript DLL to the project, select <b><tt>Project/Settings</tt></b>.
- Select the <b><tt>Debug</tt></b> tab. Change the <b><tt>Category</tt></b> to
- <b><tt>Additional DLLs</tt></b>. Then specify <b><tt>bin/gsdll32.dll</tt></b>.
-<p> To specify the Ghostscript program arguments, select <b><tt>Project/Settings</tt></b>.
- Select the <b><tt>Debug</tt></b> tab. Change the <b><tt>Category</tt></b> to
- <b><tt>General</tt></b>. Then specify the desired program arguments. For example,
- specifying: <b><tt>examples/tiger.ps</tt></b> will result in the tiger example
- file being displayed when Ghostscript is executed. .
-<p> A final note: it is possible to create a command file (build.bat) to be used
- for the build command line. If many different workspaces/projects are created,
- it is simpler to use a build batch command file rather than retyping the build
- command line for each new project. Here is an example used by one of Artifex's
- staff members. This file is one line:
-<blockquote><b><tt> nmake -f src/msvc32.mak DEVSTUDIO= DEBUG=1 GS_LIB_DEFAULT="./lib/;./font;$(GSROOTDIR)/lib;$(AROOTDIR)/fonts"
- </tt></b></blockquote>
-<p> The <b><tt>DEBUG=1</tt></b> enables many debugging features built into Ghostscript.
- Please note the double quotes around the value for <b><tt>GS_LIB_DEFAULT</tt></b>
- and the addition of <b><tt>./lib;./fonts;</tt></b> to its definition. This uses
- the local (within the project) copy of the <b><tt>lib</tt></b> and <b><tt>fonts</tt></b>
- directories. This is convenient if any changes need to be made in these directories.
-<h4><a name="Using_the_command_line"></a>Using the command line</h4>
-<p>Ghostscript can be made using either the DOS shell or one one of the various
- command line shells made for Windows.
-<p>In order for the makefiles to work properly, two items may have to be changed.
- If you are not using version 6.x then before building, in <b><tt>src\msvc32.mak</tt></b>
- find the line "<b><tt>MSVC_VERSION=6</tt></b>" and change it to "<b><tt>MSVC_VERSION=4</tt></b>",
- "<b><tt>MSVC_VERSION=5</tt></b>" or "<b><tt>MSVC_VERSION=7</tt></b>".
-<p>In some cases the location of the Microsoft Developer Studio, needs to be changed.
- The location of Microsoft Developer Studio is defined by the value of <b><tt>DEVSTUDIO</tt></b>.
- There are four different definitions of <b><tt>DEVSTUDIO</tt></b> in src\msvc32.mak.
- There is one for each of the currently supported versions of Microsoft Visual
- C++ (4, 5, 6 and 7).
-<p>The normal installation process for Microsoft Visual C++ includes setting the
- location of the Microsoft Visual C++ executables (cl.exe, link.exe, nmake.exe,
- rc.exe) in your PATH definition and the LIB and INCLUDE environment variables
- are set to point to the Microsoft Visual C++ directories. If this is true then
- the value for <b><tt>DEVSTUDIO</tt></b> can be changed to empty. I.e. <b><tt>DEVSTUDIO=</tt></b>
-<p> If PATH, LIB, and INCLUDE are not correctly set then the value for <b><tt>DEVSTUDIO</tt></b>
- needs to be defined. For example, for version 6.0, the default definition for
- the location for the Microsoft Developer Studio is: <b><tt>DEVSTUDIO=C:\Program
- Files\Microsoft Visual Studio </tt></b> If the path to Microsoft Developer Studio
- on your system differs from the default then change the appropriate definition
- of <b><tt>DEVSTUDIO</tt></b>. (Remember that there is a separate definition
- of <b><tt>DEVSTUDIO</tt></b> for each version of MSVC, so be sure to change
- the correct definition.)
-<p>To run the <b><tt>make</tt></b> program, give the command
-<blockquote><b><tt>
-nmake -f src\msvc32.mak
-</tt></b></blockquote>
-
-<p>
-Rather than changing src/msvc32.mak, these values can be specified on the make
-command line, I.e.
-
-<blockquote><b><tt> nmake -f src\msvc32.mak MSVC_VERSION=6 DEVSTUDIO="C:\Program Files\Microsoft Visual Studio" <br>
-nmake -f src\msvc32.mak MSVC_VERSION=7 DEVSTUDIO="C:\Program Files\Microsoft Visual Studio .NET"
- </tt></b></blockquote>
-
-<p> Note that double quotes have been added around the path for <b><tt>DEVSTUDIO</tt></b>
- due to the spaces in the path value.
-<p>
-This command line can also be put into a batch file.
-
-<p> You may get warning messages during compilation about <b><tt>/QI0f</tt></b>
- being an undefined switch, or the message "dwmain32.def: EXETYPE not supported
- for platform; ignored" during linking. Multiple warnings will also given about
- things like double to float data conversions. Ignore them. We have not found
- a way to create a single set of sources that does not create warnings with the
- different compilers and operating systems supported by Ghostscript.
-<p>
-The Microsoft VC++ 5.0 compiler locks up when compiling
-<b><tt>gxi12bit.c</tt></b> with <b><tt>/O2</tt></b>. Compile this file
-without <b><tt>/O2</tt></b>.
-
-<p> The Microsoft VC++ 5.0 compiler produces a non-working executable if compiling
- without stack checking. Don't change the setting <b><tt>TDEBUG=1</tt></b> in
- <b><tt>msvc32.mak</tt></b>.
-
-
-<h4><a name="Self-extracting_executables"></a>Making self-extracting executables</h4>
-
-<p>
-You can build self-extracting Windows executables of Ghostscript. (This is
-not needed to use Ghostscript.) Currently this requires both the
-Borland/Inprise and the Microsoft compilers, and also two pieces of
-third-party software:
-
-<ul>
-<li><b><tt>WinZipSE</tt></b>, available from <a
-href="http://www.winzip.com/winzipse.html"
-class="offsite">http://www.winzip.com/winzipse.html</a>.
-This is not free.
-<li><b><tt>zip</tt></b>, available from <a
-href="http://www.info-zip.org/pub/infozip/Zip.html" class="offsite">
-http://www.info-zip.org/pub/infozip/Zip.html</a>. This is free.
-</ul>
-
-<p>
-You will have to edit <b><tt>src/winint.mak</tt></b> to define
-<b><tt>WINZIPSE_XE</tt></b> and <b><tt>ZIP_XE</tt></b> respectively as the
-path names of these programs. See <a href="Release.htm">Release.htm</a> for
-the detailed procedure.
-
-<h3><a name="Watcom_build"></a>Watcom environment</h3>
-
-<p>
-Because of limitations in the way that Watcom implemented their
-<b><tt>wmake</tt></b> program, you must run the Watcom tools under MS
-Windows, even if you are generating a DOS executable. This is very
-unfortunate, and there is no good technical reason for it, but we were
-unable to persuade Watcom (now Powersoft) to do anything about it.
-
-<p>
-To use the Watcom compiler, add to <b><tt>AUTOEXEC.BAT</tt></b> the line
-"<b><tt>set&nbsp;DOS4G=quiet</tt></b>". Check that
-<b><tt>AUTOEXEC.BAT</tt></b> also contains a line of the form
-"<b><tt>set&nbsp;WATCOM=</tt></b><em>{wcdir}</em>" where <em>{wcdir}</em> is
-the directory where you installed the Watcom tools, and that the setting of
-<b><tt>PATH</tt></b> includes <em>{wcdir}</em><b><tt>\binnt</tt></b> (or
-<b><tt>%WATCOM%\binnt</tt></b>) before <em>{wcdir}</em><b><tt>\binw</tt></b>
-(or <b><tt>%WATCOM%\binw</tt></b>). Then to create
-"<b><tt>makefile</tt></b>":
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <th align=left>For
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Give the command
-<tr> <td colspan=3><hr>
-<tr> <td>DOS
- <td>&nbsp;
- <td nowrap><b><tt>echo&nbsp;!include&nbsp;src\watc.mak&nbsp;&gt;makefile</tt></b>
-<tr> <td>MS Windows
- <td>&nbsp;
- <td nowrap><b><tt>echo&nbsp;!include&nbsp;src\watcw32.mak&nbsp;&gt;makefile</tt></b>
-</table></blockquote>
-
-<p>
-Before compiling, change the definition of the <b><tt>WCVERSION</tt></b>
-macro in the makefile (<b><tt>watc.mak</tt></b> or
-<b><tt>watcw32.mak</tt></b>) to the version of the Watcom compiler you are
-using. This is necessary to handle some minor incompatibilities between
-versions.
-
-<p>
-To run the <b><tt>make</tt></b> program, give the commmand
-
-<blockquote>
-<b><tt>wmake -u</tt></b>
-</blockquote>
-
-<p>
-For information on using the GNU <b><tt>make</tt></b> program with the
-Watcom compiler to build MS-DOS executables, which avoids the limitations in
-<b><tt>wmake</tt></b>, see <a href="New-user.htm#MS-DOS">here</a>.
-
-<h3><a name="Cygwin32_build"></a>Cygwin32 gcc</h3>
-
-<p>
-A user reports that it is possible to compile Ghostscript for MS Windows NT
-using the Cygwin32 gcc compiler, GNU <b><tt>make</tt></b>, and the
-<b><tt>unix-gcc.mak</tt></b> makefile, with only two small source code
-changes:
-
-<ul>
-<li>Add "<b><tt>b</tt></b>" to the call to <b><tt>fopen</tt></b> in <b><tt>gp_open_scratch</tt></b>
-<li>Mirror the <b><tt>gp_ntfs</tt></b> logic for <b><tt>gp_file_name_is_absolute</tt></b>
-</ul>
-
-<p>
-Information about this compiler and environment is at the Cygnus site:
-
-<blockquote>
-<a href="http://sources.redhat.com/cygwin/">http://sources.redhat.com/cygwin/</a>
-</blockquote>
-
-<p>
-Please note that Cygnus's licensing terms aren't quite as liberal about
-redistribution as either the GNU
-<a href="http://www.gnu.org/copyleft/gpl.html">General Public License</a>
-or the Aladdin <a href="Public.htm">Free Public License</a>, so read their
-license carefully if you want to redistribute the results of using their
-compiler.
-
-<h3><a name="IntelWin32_build"></a>Intel C/C++ environment</h3>
-
-<p>
-Intel provides a C/C++ compiler that is compatible with the <a
-href="#Microsoft_build">Microsoft Visual&nbsp;C++ environment</a>. The main
-advantage of this compiler over MSVC&nbsp;5.0 and 6.0 is that it produces
-working code even when all optimizations are enabled and when stack checking
-is disabled.
-
-<p>
-To build Ghostscript using the Intel C/C++ compiler, you have to make the
-following small changes in the makefiles:
-
-<ul>
-<li>Find and change the second occurrence of
-"<b><tt>COMPILE_FULL_OPTIMIZED</tt></b>" to "<b><tt>/O2</tt></b>" in file
-<b><tt>msvccmd.mak</tt></b>. <li>Override "<b><tt>TDEBUG</tt></b>",
-"<b><tt>COMP</tt></b>", and "<b><tt>COMPAUX</tt></b>" when invoking
-<b><tt>nmake</tt></b>.
-</ul>
-
-<p>
-More specifically, use "<b><tt>TDEBUG=0</tt></b>" and set both
-"<b><tt>COMP</tt></b>" and "<b><tt>COMPAUX</tt></b>" to the full path of
-<b><tt>icl</tt></b> (for example
-"<b><tt>COMP=C:\intel\compiler45\bin\icl</tt></b>" if the Intel&nbsp;C/C++
-compiler V4.5 was installed to <b><tt>C:\intel</tt></b>). It is suggested
-that you use a batch file to launch <b><tt>nmake</tt></b>, since the command
-line processes the "<b><tt>=</tt></b>" on its own. Also, you may need to
-execute <b><tt>vcvars32.bat</tt></b> and <b><tt>iccvars.bat</tt></b> to
-register the proper paths for the compiler, its include files and its
-libraries.
-
-<p>
-You can buy or download a 30-day evaluation version of the Intel&nbsp;C/C++
-compiler from Intel's Software Performance Tools web site:
-
-<blockquote>
-<a href="http://www.intel.com/vtune/">http://www.intel.com/vtune/</a>
-</blockquote>
-
-<hr>
-
-<h2><a name="Mac_build"></a>How to build Ghostscript from source (MacOS version)</h2>
-
-<h3><a name="MacOS"></a>Traditional MacOS</h3>
-
-<p>
-The Macintosh version of Ghostscript requires the <a href="http://www.metrowerks.com/"
-class="offsite">Metrowerks Codewarrior</a> development suite. Download the
-<tt>macgs-7xx-src.sit</tt> source archive from the location listed
-below. This includes a Codewarrior .mcp project file than can be used to build both
-Carbon and CFM versions of the ghostscript shared library component.
-
-<blockquote>
-<a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/current/"
-
-class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/current/</a>
-</blockquote>
-
-<p>
-If your system doesn't automatically unpack the source archive, you can
-download the gratis <a href="http://stuffit.com/download.html"
-class="offsite">Stuffit Expander</a> to open it.
-
-<p>
-This archive includes appropriate versions of the jpeg, zlib and libpng 3rd party
-library source for convenience. You must still download the fonts and place them in an
-appropriate location, along with the contents of the <tt>lib</tt> directory from the source
-archive.
-
-<p>
-Note that since this is just a library component, you will need a front-end application, such as
-MacGSView, to actually view or convert postscript and pdf documents.
-
-
-<h3><a name="MacOSX"></a>MacOS X</h3>
-
-<p>
-The unix source distribution (.tar.gz) builds fine on Darwin/MacOS X,
-albeit without a display device. You can generally just use the <tt>Makefile</tt>
-generated by ./configure or <tt>macosx.mak</tt> as your top-level makefile.
-This will allow you to use Ghostscript from the command line as a BSD-layer
-tool to rasterize postscript and pdf and convert between
-the various formats supported by Ghostscript.
-
-<p>
-There is also a support for building Ghostscript as a framework. This is
-a special encapsulated shared library format specific to MacOS X. To build
-the framework, copy <tt>macosx.mak</tt> to the top-level directory, rename it to
-<tt>makefile</tt> and issue 'make framework' from Terminal.app. This will result
-in a <tt>Ghostscript.framework</tt> in the <tt>sobin</tt> directory. It must be
-manually copied to /Library/Frameworks/ before applications
-can use it. You may need to create the Frameworks/ directory on some systems.
-
-<p>
-Finally, there is a <tt>macos-mcp.mak</tt> makefile that can be
-used to set up the Codewarrior shared library component build described
-in the section on <a href="#MacOS">Classic MacOS</a> above.
-
-<p>
-To set up the shlib build, download and uncompress the Ghostscript source.
-If the archive doesn't contain the 3rd party jpeg, png, and zlib source,
-you must download them as described at the beginning of this document and
-unpack them under the macgs-###-src directory under the specific names
-<tt>jpeg</tt>, <tt>zlib</tt> and <tt>libpng</tt>. You cannot use symlinks as
-Codewarrior will not be able to follow them for some of the needed header
-files.
-
-<p>
-Copy <tt>src/macos-mcp.mak</tt> to the top-level directory and rename
-it <tt>makefile</tt>. Then run 'make' in that directory, either from
-within Terminal.app or through Project Builder. This will set up the
-generated code required for the build and run a shell script to generate
-<tt>ghostscript.mcp.xml</tt>. Launch Metrowerks Codewarrior, and select
-'Import Project...' from the File menu, and open the xml project file.
-When asked, save the results as <tt>ghostscript.mcp</tt> in the same
-directory and you should be ready to build the shared library component.
-
-</p>
-Tradtional ('PPC') applications based on the Code Fragment Manager
-will not be able to open the shlib linked with CarbonLib, so two
-targets are provided, one with carbon and one without.
-
-<hr>
-
-<h2><a name="Unix_build"></a>How to build Ghostscript from source (Unix version)</h2>
-
-<p>
-Before issuing the <b><tt>make</tt></b> command to build Ghostscript, you
-have to make some choices, for instance
-<ul>
-<li>which compiler to use;
-<li>what features and devices to include;
-<li>whether to use system libraries for PNG and zlib;
-<li>and how to handle issues for your particular platform.
-</ul>
-
-<p>
-Be sure to check the sections on <a
-href="#Tool_specific_issues">tool-</a>, <a
-href="#OS_specific_issues">OS-</a>, and <a
-href="#Hardware_specific_issues">hardware-</a>specific issues for notes
-on your particular platform and compiler. In fact, that is the
-<b><em>first</em></b> place to check if you build Ghostscript and it crashes
-or produces obviously incorrect results.
-
-<h3><a name="Multi_architecture_makefile"></a>The multi-architecture makefile</h3>
-
-<p>
-Especially if you are working in a Unix environment with multiple CPU types,
-operating systems, and/or C compilers, you may find the file
-<b><tt>all-arch.mak</tt></b> useful. This user-contributed file includes
-"wrappers" for the Unix makefiles for many different common environments.
-The author of this file notes:
-
-<blockquote>
-
-<p>
-This makefile allows you to execute
-
-<pre>
- make `hostname`
-</pre>
-
-<p>
-on any machine on a network, without having to examine the Makefile for a
-specific target name. Also, some of the targets in the Makefile incorporate
-special changes in compiler options for certain files, to work around
-compiler bugs that Ghostscript has been so good at exposing. Having that
-special handling written down in a Makefile proves very convenient.
-
-<p>
-I don't do "make install" until I've done
-
-<pre>
- cd ...build-directory.../gs-x.yz
- cd lib
- ../bin/gs ../examples/tiger.ps
-</pre>
-
-<p>
-and verified that the famous tiger can be correctly displayed. Also, the
-"make install" step is careful to first remove any existing
-<b><tt>$(BINDIR)/gs</tt></b>, then install a new gs there with a hard link
-to gs-x.yz.
-
-<p>
-That way, each installation makes gs a synonym for the latest release,
-but earlier ones remain in place in case backtracking is needed, which
-I've fairly often wanted to do when investigating changed behavior, or
-a suspected bug.
-
-<p>
-When I've been experimenting with a new feature, such as GNU readline
-support, I change the setting of GS from gs to ngs (new gs), so as not
-to break any existing programs by the installation of an experimental
-version.
-
-</blockquote>
-
-<h3><a name="UNIX_makefile"></a>Setting up "makefile"</h3>
-
-<p>
-The files <b><tt>src/unix</tt></b>*<b><tt>.mak</tt></b> are the makefiles for
-Unix platforms, and you choose one based on what compiler you use. To
-build Ghostscript, however, you must use the simple command
-"<b><tt>make</tt></b>", which must find the file "<b><tt>makefile</tt></b>"
-(or "<b><tt>Makefile</tt></b>"). If your system supports symbolic links,
-set up "<b><tt>makefile</tt></b>" like this.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td>GNU gcc:
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td nowrap><b><tt>ln -s src/unix-gcc.mak makefile</tt></b>
-<tr> <td>Non-gcc ANSI C compiler:
- <td>&nbsp;
- <td nowrap><b><tt>ln -s src/unixansi.mak makefile</tt></b>
-</table></blockquote>
-
-<p>
-If your system doesn't support symbolic links, first finish all changes to
-the compiler-specific makefile, then make a hard link, omitting the
-<b><tt>-s</tt></b> switch.
-
-<p>
-The makefile distributed with Ghostscript selects the following devices
-to include in the build:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Devices included as distributed</font><hr>
-<tr valign=bottom>
- <th align=left>Type
- <td>&nbsp;&nbsp;
- <th align=left>Devices
-<tr> <td colspan=3><hr>
-<tr valign=top> <td>Display
- <td>&nbsp;
- <td>X Windows
-<tr valign=top> <td>Printers
- <td>&nbsp;
- <td>H-P DeskJets, LaserJets, and color DeskJets and PaintJets; Canon BubbleJets
-<tr valign=top> <td>File formats
- <td>&nbsp;
- <td>Group 3 &amp; Group 4 fax; JPEG; PCX; PBM, PGM, PKM, &amp; PPM; TIFF; PostScript images; PNG; distilled PDF, PostScript, and EPS; PCL XL ("PCL 6")
-</table></blockquote>
-
-<p>
-The <b><tt>unix</tt></b>*<b><tt>.mak</tt></b> files explicitly compile and
-link the JPEG, PNG, and zlib libraries into the executable. If your Unix
-system already includes the PNG and zlib libraries -- probably in
-<b><tt>/usr/lib/libpng.</tt></b>{<b><tt>a</tt></b>,<b><tt>so</tt></b>} and
-<b><tt>/usr/lib/libz.</tt></b>{<b><tt>a</tt></b>,<b><tt>so</tt></b>} -- and
-you would rather use those copies, change the definition of
-<b><tt>SHARE_LIBPNG</tt></b> and <b><tt>SHARE_ZLIB</tt></b> from 0 to 1 in
-the relevant <b><tt>unix</tt></b>*<b><tt>.mak</tt></b> file before
-compiling. Note that if you do this, you will get non-debug versions of
-these libraries even if you selected <b><tt>DEBUG</tt></b> in the makefile.
-At the insistence of some users, we have also provided the ability to do
-this with the JPEG library (<b><tt>SHARE_JPEG</tt></b>), but should not use
-it: in order to be compatible with Adobe interpreters (which do not follow
-the JPEG standard exactly), Ghostscript has to compile the IJG code with
-the non-standard definition
-
-<blockquote><b><tt>
-#define D_MAX_BLOCKS_IN_MCU 64
-</tt></b></blockquote>
-
-<p>
-and since shared versions of this library will not have been compiled this
-way, you will get errors on some valid PostScript and PDF input files. Note
-also that because not all the JPEG library header files that Ghostscript
-uses are normally installed in <b><tt>/usr/include</tt></b>, you must have
-the source code for this library available even if you set
-<b><tt>SHARE_JPEG</tt></b> to 1.
-
-<p>
-If the X11 client header files are located in some directory which your
-compiler does not automatically search, you must change the
-<b><tt>XINCLUDE</tt></b> macro in the makefile to include a specific
-<b><tt>-I</tt></b> switch. See the comment preceding
-<b><tt>XINCLUDE</tt></b> in the makefile.
-
-<p>
-Currently Ghostscript is set up to compile and link in a generic Unix
-environment. Some Unix environments may require changing the
-<b><tt>LDFLAGS</tt></b> macro in the makefile; be sure to check the <a
-href="#Unix_build">Unix section</a> for your specific tools, operating
-system, and hardware.
-
-<p>
-Ghostscript uses ANSI syntax for function definitions. Building
-with pre-ANSI C compilers is no longer supported.
-
-<h3><a name="Shared_object"></a>Shared object</h3>
-To build Ghostscript as a shared object with gcc
-(instead of as a single large executable) use:
-<pre>
- ln -s src/unix-gcc.mak makefile
- make so
-</pre>
-<p>
-This will build <b><tt>libgs.so</tt></b> and two programs which use the
-shared object, <b><tt>gsx</tt></b> which uses Gtk+ and <b><tt>gsc</tt></b>
-which does not.
-
-<p>
-Do not use <tt>make -f src/unix-gcc.mak</tt> because this will
-break the recursive make used in building the shared object.
-<p>
-To install the shared object and these two programs:
-<pre>
- make soinstall
-</pre>
-To delete files created by the build process:
-<pre>
- make soclean
-</pre>
-<p>
-For more details see <a href="../src/unix-dll.mak">unix-dll.mak</a>.
-
-<h3><a name="Tool_specific_issues"></a>Tool-specific issues</h3>
-
-<h4><a name="gcc_27x"></a>gcc 2.7.*</h4>
-
-<p>
-Some of the issues in using gcc are very specific to the particular
-computer, the particular version of the operating system, and the
-particular version of gcc available to you. You can check the version of
-gcc with the <b><tt>gcc&nbsp;--version</tt></b> command.
-
-<p>
-An optimizer bug in gcc versions 2.7.0, 2.7.1, and 2.7.2 causes the
-compiler to generate incorrect code. The makefile works around this, but
-we recommend that if possible you use either an earlier or a later version
-of gcc; for instance, gcc 2.5.8, gcc 2.6.3, 2.7.2.1 or later which don't
-have this bug. Note, however, that gcc has other problems on some
-platforms, so please read the section for your specific platform.
-
-<h4><a name="GNU_make"></a>GNU make</h4>
-
-<p>
-Current versions of GNU <b><tt>make</tt></b> have no problems, but GNU
-<b><tt>make</tt></b> 3.59 can't handle the final linking step in some
-cases; if this happens, use the platform's standard <b><tt>make</tt></b>,
-typically <b><tt>/bin/make</tt></b>.
-
-<h3><a name="OS_specific_issues"></a>OS-specific issues</h3>
-
-<h4><a name="386_Unix"></a>386 Unix</h4>
-
-<ul>
-<li>gcc versions older than 1.38 on Intel 80386 systems do not compile
-Ghostscript correctly with the <b><tt>-O</tt></b> option.
-
-<li>gcc 1.39 under <b><tt>386BSD</tt></b> has a bug that causes
-float-to-integer conversions to compile incorrectly, rendering the
-executable unusable.
-
-<li>X11R5 may need "<b><tt>#include &lt;stddef.h&gt;</tt></b>" in <b><tt>x_.h</tt></b>.
-
-<li>Also see regarding <a href="#System_V">System V</a> platforms.
-</ul>
-
-<h4><a name="BSDI"></a>BSDI</h4>
-
-<ul>
-
-<li>Use <b><tt>unix-gcc.mak</tt></b> and set<blockquote><b><tt>
-STDLIBS=-lm<br>
-XINCLUDE=-I/usr/X11R6/include<br>
-XLIBDIRS=-L/usr/X11R6/lib<br>
-XLIBS=Xt SM ICE Xext X11<br></tt></b></blockquote>
-
-<li>If you want to use the shared versions of the PNG and zlib libraries, set
-<b><tt>SHARE_LIBPNG=1</tt></b> and <b><tt>SHARE_ZLIB=1</tt></b>
-as discussed <a href="#UNIX_makefile">previously</a>.
-
-<li>BSD <b><tt>make</tt></b> uses a different syntax for its
-<b><tt>include</tt></b> directive than Ghostscript;
-use <b><tt>gmake</tt></b> instead.
-</ul>
-
-<h4><a name="Digital_Unix"></a>Digital Unix (Alpha)</h4>
-
-<ul>
-
-<li>Use <b><tt>unixansi.mak</tt></b> for all Digital Unix compilers.
-
-<li>For versions of Digital Unix before 4.0, set
-
-<p>
-<b><tt>CFLAGS=-std -migrate -Olimit 1000 -g3 -O2 $(XCFLAGS)<br>
-LDFLAGS=-lots $(XLDFLAGS)</tt></b>
-
-<p>
-You may be able to omit <b><tt>-g3</tt></b>. For later versions of Digital
-Unix, users have reported that the proper flags are
-
-<p>
-<b><tt>CFLAGS=-std1 -Olimit 1000 -g3 -O2 $(XCFLAGS)</tt></b>
-
-<p>
-again, optionally omitting the <b><tt>-g3</tt></b>.
-
-<li>If you get compiler error messages about "ANSI aliasing rules", please
-see the section about <a href="#VMS_build">building under OpenVMS</a> below.
-
-</ul>
-
-<h4><a name="FreeBSD"></a>FreeBSD</h4>
-
-<p>
-On FreeBSD systems, in the top-level makefile (<b><tt>unixansi.mak</tt></b>,
-<b><tt>unix-gcc.mak</tt></b>, change the
-value of <b><tt>STDLIBS</tt></b> from <b><tt>-lpthread -lm</tt></b> to
-<b><tt>-lc_r -lm</tt></b> before building.
-
-<h4><a name="GNULinux"></a>GNU/Linux</h4>
-
-<ul>
-<li>If you build on GNU/Linux with X11 R6 or later, you may get link-time error
-messages about undefined references to various functions beginning with
-"SMC" and "ICE". If this happens, make sure that <b><tt>XLIBS</tt></b> in
-the makefile is set to
-"<b><tt>Xt&nbsp;SM&nbsp;ICE&nbsp;Xext&nbsp;X11</tt></b>" rather than
-"<b><tt>Xt&nbsp;Xext&nbsp;X11</tt></b>".
-
-<li>With gcc version 2.6.3 or later, you may encounter an incompatibility
-in object formats (<b><tt>a.out</tt></b> vs. ELF) with the XFree86 library.
-Typically, <b><tt>ld</tt></b> complains that some X library is not found,
-or that many <b><tt>Xlib</tt></b> or <b><tt>Xt</tt></b> functions are not
-found in the library (similar to the messages for omitting
-<b><tt>SM</tt></b> and <b><tt>ICE</tt></b> from <b><tt>XLIBS</tt></b>). Or
-you get a message when you start Ghostscript that the program or the shared
-library is an unrecognized format.
-If this happens, edit <b><tt>unix-gcc.mak</tt></b> to add the switches
-"<b><tt>-b i486-linuxaout</tt></b>" to both <b><tt>CFLAGS</tt></b> and
-<b><tt>LDFLAGS</tt></b>, then "<b><tt>make clean</tt></b>" followed by
-"<b><tt>make</tt></b>"). If this doesn't help, or if other strange things
-happen, contact your GNU/Linux supplier or support resource.
-
-<li>A few of Ghostscript's drivers are multi-threaded (currently only those
-whose names begin with "bmpa"). These drivers require <b><tt>libc</tt></b>
-version 6 or higher. Some GNU/Linux distributions, including Red Hat
-distributions before 5.0, have <b><tt>libc</tt></b> version 5, so these
-drivers may not compile. If this happens, remove these drivers (from the
-definitions of <b><tt>DEVICE_DEVS*</tt></b> in
-<b><tt>unix-gcc.mak</tt></b>), and, if you wish, substitute the
-corresponding single-threaded drivers, whose names don't include the "a".
-
-</ul>
-
-<p>
-You may want to create <a href="http://www.rpm.org">RPM</a> (<b>R</b>ed Hat
-<b>P</b>ackage <b>M</b>anager) files for Ghostscript. Because of the lack
-of standardization of installation directory names between GNU/Linux releases,
-Ghostscript does not come with any RPM specification files. You may wish to
-contact the following people who have created RPM spec files in the past:
-
-<blockquote>
-Henri Gomez <a href="mailto:hgomez@slib.fr">hgomez@slib.fr</a><br>
-Russell Lang <a href="mailto:gsview@ghostgum.com.au">gsview@ghostgum.com.au</a><br>
-Cristian Gafton <a href="mailto:gafton@redhat.com">gafton@redhat.com</a><br>
-Preston Brown <a href="mailto:pbrown@redhat.com">pbrown@redhat.com</a><br>
-</blockquote>
-
-<p>
-The following instructions may work for the Ghostscript 6.0x distributions,
-once you have RPM spec files that you believe are appropriate.
-
-<p>
-To create RPMs for Ghostscript N.NN:
-
-<ul>
-<li>Change to your source directory (<b><tt>/usr/src/redhat</tt></b> for Red Hat
- Linux 5.1).
-<li>Copy <b><tt>ghostscript-N.NN*.tar.gz</tt></b> (4 source files) to the
-<b><tt>SOURCES</tt></b> subdirectory.
-<li>Copy <b><tt>ghostscript-fonts-std-6.0.tar.gz</tt></b> and
-<b><tt>ghostscript-fonts-other-6.0.tar.gz</tt></b> to the
-<b><tt>SOURCES</tt></b> subdirectory.
-<li>From <b><tt>SOURCES/ghostscript-N.NN.tar.gz</tt></b>,
-<ul>
-<li>extract <b><tt>rpm-conf.dif</tt></b> and copy to
-<b><tt>SOURCES/ghostscript-N.NN-config.patch</tt></b>
-<li>extract <b><tt>gs.rps</tt></b> and copy to
-<b><tt>SPECS/ghostscript-N.NN.spec</tt></b>
-<li>extract <b><tt>gs-fonts.rps</tt></b> and copy to
-<b><tt>SPECS/ghostscript-fonts-N.NN.spec</tt></b>
-</ul>
-If the contents of these files have become out of date, you
-will need to update the version number N.NN in the spec files,
-and update the patch file.
-<li> Change to the SPECS subdirectory and then execute the commands
-<blockquote><b><tt>
-rpm -ba ghostscript-N.NN.spec<br>
-rpm -ba ghostscript-fonts-N.NN.spec
-</tt></b></blockquote>
-This will create the RPM files
-<blockquote><b><tt>
-RPMS/i386/ghostscript-N.NN-1.i386.rpm<br>
-RPMS/noarch/ghostscript-fonts-N.NN-1.noarch.rpm<br>
-SRPMS/ghostscript-N.NN-1.src.rpm<br>
-SRPMS/ghostscript-fonts-N.NN-1.src.rpm<br>
-</tt></b></blockquote>
-<li> See instructions on how to <a href="Install.htm#Install_Unix">install
- Ghostscript under Unix</a>.
-</ul>
-
-<p>
-Bruce Babcock
-&lt;<a href="mailto:babcock@math.psu.edu">babcock@math.psu.edu</a>&gt; has
-made available everything needed to build Ghostscript under Slackware
-3.*, Red Hat 4.* and 5.*, and Debian 1.* and 2.0; the files include
-instructions and shell scripts to build and install Ghostscript, as well as
-all the source and font kits and patches needed:
-
-<blockquote>
-<a href="ftp://ykbsb2.yk.psu.edu/pub/ghost/GS-5.10/"
-class="offsite">ftp://ykbsb2.yk.psu.edu/pub/ghost/GS-5.10/</a><br>
-<a href="ftp://ykbsb2.yk.psu.edu/pub/ghost/GS-5.10-Extra/"
-class="offsite">ftp://ykbsb2.yk.psu.edu/pub/ghost/GS-5.10-Extra/</a>
-</blockquote>
-
-<h4><a name="NeXTSTEP"></a>NeXTSTEP / OpenSTEP</h4>
-
-<ul>
-<li>If you are using a NeXTSTEP version before 3.3, please get a no-cost
-upgrade (along with Y2K patches) from Apple.
-
-<li>For all NeXTSTEP systems, use <b><tt>unix-gcc.mak</tt></b>. Make the
-following changes:
-
-<ul>
-<li>In <b><tt>unix-aux.mak</tt></b> (and <b><tt>ugcclib.mak</tt></b>, if you
-are using only the library) change the definition of <b><tt>INCLUDE</tt></b>
-to "<b><tt>INCLUDE=/usr/include/bsd</tt></b>";
-
-<li>in <b><tt>unix-gcc.mak</tt></b>:
-
-<ul>
-<li>change <b><tt>CC=gcc</tt></b> to <b><tt>CC=cc</tt></b>;
-
-<li>change the definition of <b><tt>STDLIBS</tt></b> to only
-<b><tt>-lm</tt></b>;
-
-<li>change <b><tt>SYNC=posync</tt></b> to <b><tt>SYNC=nosync</tt></b>;
-
-<li>add <b><tt>-D_POSIX_SOURCE</tt></b> to <b><tt>CFLAGS</tt></b> and remove
-<b><tt>-g</tt></b>;
-
-<li>remove <b><tt>-Wstrict-prototypes</tt></b> from <b><tt>GCFLAGS</tt></b>,
-and if you are using NeXTSTEP 3.3 (with gcc 2.5.8), also remove
-<b><tt>-Wmissing-declarations</tt></b>;
-</ul>
-
-<li>to the end of <b><tt>Fontmap.GS</tt></b> add the line
-"<b><tt>/Ohlfs&nbsp;/Courier&nbsp;;</tt></b>".
-</ul>
-
-<li>If you are running the Pencom co-Xist X server (development version),
-the X headers and libraries are in the default places, so change the
-makefile definitions of <b><tt>XINCLUDE</tt></b> and
-<b><tt>XLIBDIRS</tt></b> to empty strings.
-</ul>
-
-<h4><a name="SCO"></a>SCO Unix/Xenix</h4>
-
-<ul>
-<li>See also "<a href="#386_Unix">386 Unix</a>" and
-"<a href="#System_V">System V Unix platforms</a>".
-
-<li>The standard cc compiler on SCO OpenServer v5 has optimizer bugs.
-Compile without -O.
-
-<li>The SCO Unix C compiler apparently can't handle the
-<b><tt>P</tt></b><em>n</em> macros in <b><tt>std.h</tt></b>. If you get
-strange compilation errors on SCO Unix, ask SCO for a compiler fix.
-
-<li>Meanwhile, to use gcc with SCO ODT, see <b><tt>unix-gcc.mak</tt></b>
-for the appropriate switch settings.
-
-<li>Because of a bug in SCO's floating point emulator, gcc 2.3.3 produces
-code that causes crashes on machines without hardware floating point. Use
-a different compiler on these machines.
-
-<li>If you aren't using the X11 driver, you must add
-<b><tt>-lsocket</tt></b> to the value of <b><tt>EXTRALIBS</tt></b> to link
-the date and time functions.
-
-<li>If you want to use direct frame buffer addressing instead of X Windows,
-include the relevant frame buffer devices (<b><tt>$(DD)ega.dev</tt></b>,
-<b><tt>$(DD)vga.dev</tt></b>, etc.) and change the definition of
-<b><tt>EGAVGA</tt></b> to <b><tt>$(EGAVGA_SCO)</tt></b> as indicated in
-<b><tt>devs.mak</tt></b>. <b>Note</b>: this works with SuperVGA displays
-only for 800x600x16 mode.
-
-<li>If the display looks "smeared", try recompiling
-<b><tt>gdevpcfb.c</tt></b> with <b><tt>-O0</tt></b>.
-
-<li>If Ghostscript crashes, use the <b><tt>-q</tt></b> switch or redirect
-console output to a file.
-
-<li>If your compiler accepts both the <b><tt>-Xt</tt></b> and
-<b><tt>-Xa</tt></b> switches, use <b><tt>-Xt</tt></b>. Even though this
-causes the compiler to use incorrect rules for computing the result types
-of "<b><tt>&lt;&lt;</tt></b>" and "<b><tt>&gt;&gt;</tt></b>",
-<b><tt>-Xa</tt></b> enables optimizations that produce incorrect code.
-
-<li>For SCO ODT 2.0, in addition to <b><tt>-D__SVR3</tt></b> and
-<b><tt>-DSYSV</tt></b>, you need to specify <b><tt>-Dsco</tt></b>,
-<b><tt>-DUSG</tt></b>, and <b><tt>-DMALLOC_0_RETURNS_NULL</tt></b>. For
-SCO ODT, you need
-"<b><tt>EXTRALIBS=-lX11&nbsp;-lsocket&nbsp;-lmalloc</tt></b>", or maybe
-only <b><tt>-lsocket</tt></b> depending on the version), and for SCO ODT
-2.0, you must also specify <b><tt>-lc_s</tt></b>. For SCO Xenix, you need
-"<b><tt>EXTRALIBS=-lmalloc</tt></b>".
-
-<li>For SCO OpenServer 5.0.5, add <b><tt>-L/usr/local/lib</tt></b> to
-<b><tt>LDFLAGS</tt></b>.
-
-<li>For all SCO systems, set "<b><tt>XINCLUDE=</tt></b>" and
-"<b><tt>XLIBDIRS=</tt></b>".
-</ul>
-
-<h4><a name="SVR4"></a>SVR4 Unix</h4>
-
-<ul>
-<li>You may need to set <b><tt>EXTRALIBS=-lnsl</tt></b>.
-
-<li>Do <b><em>not</em></b> change <b><tt>PLATFORM=unix_</tt></b> to <b><tt>PLATFORM=sysv_</tt></b>.
-
-<li>On SVR4 Unix platforms with dynamic linking, you may need to define
-<b><tt>XLIBDIR</tt></b> as the name of the directory that holds the X
-Windows libraries. Do <b><em>not</em></b> prefix the name with
-"<b><tt>-L</tt></b>".
-
-<li>For SVR4.0 systems, set <b><tt>-DSVR4</tt></b> and
-<b><tt>-DSVR4_0</tt></b> in the makefile; do <b><em>not</em></b> set
-<b><tt>-DSYSV</tt></b>. For SVR4.2 (or later) and Solaris 2.<em>n</em>
-systems, set only <b><tt>-DSVR4</tt></b> (<b><em>not</em></b>
-<b><tt>-DSVR4_0</tt></b> nor <b><tt>-DSYSV</tt></b>).
-</ul>
-
-<h4><a name="System_V"></a>System V Unix platforms</h4>
-
-<ul>
-<li>If you are using a stock System V platform that lacks
-<b><tt>rename</tt></b> and <b><tt>gettimeofday</tt></b>, in the makefile
-change "<b><tt>PLATFORM=unix_</tt></b>" to
-"<b><tt>PLATFORM=sysv_</tt></b>".
-
-<li>You will probably need to change the definition of
-<b><tt>INSTALL</tt></b> from "<b><tt>install</tt></b>" to
-"<b><tt>/usr/ucb/install</tt></b>".
-</ul>
-
-<h4><a name="Unixware"></a>Unixware</h4>
-
-<ul>
-<li>The standard cc compiler has optimizer bugs. Compile without
-<b><tt>-O</tt></b>.
-</ul>
-
-<h3><a name="Hardware_specific_issues"></a>Hardware-specific issues</h3>
-
-<h4><a name="Alpha_with_gcc"></a>Alpha with gcc</h4>
-
-<ul>
-<li>You don't have to use gcc on Alpha systems, because the bundled
-compiler works.
-
-<li>The Alpha code generator in gcc 2.7.2.1 is broken. gcc 2.5.8 and 2.6.3
-are probably usable. Versions before 2.5.0 are believed not to work. We
-suggest you use a recent version.
-
-<li>If you really want to use gcc 2.7.x, here is a patch for that version
-from gcc maintainer Jim Wilson
-&lt;<a href="mailto:wilson@cygnus.com">wilson@cygnus.com</a>&gt;.
-
-<pre>
-*** reload.c.orig Sun Mar 9 14:05:23 1997
---- reload.c Sun Mar 9 14:06:54 1997
-*************** push_secondary_reload (in_p, x, opnum, o
-*** 589,600 ****
- set it up now. */
-
- if (in_p &amp;&amp; icode == CODE_FOR_nothing
-! &amp;&amp; SECONDARY_MEMORY_NEEDED (class, reload_class, reload_mode))
-! get_secondary_mem (x, reload_mode, opnum, type);
-
- if (! in_p &amp;&amp; icode == CODE_FOR_nothing
-! &amp;&amp; SECONDARY_MEMORY_NEEDED (reload_class, class, reload_mode))
-! get_secondary_mem (x, reload_mode, opnum, type);
- #endif
- }
-
---- 589,600 ----
- set it up now. */
-
- if (in_p &amp;&amp; icode == CODE_FOR_nothing
-! &amp;&amp; SECONDARY_MEMORY_NEEDED (class, reload_class, mode))
-! get_secondary_mem (x, mode, opnum, type);
-
- if (! in_p &amp;&amp; icode == CODE_FOR_nothing
-! &amp;&amp; SECONDARY_MEMORY_NEEDED (reload_class, class, mode))
-! get_secondary_mem (x, mode, opnum, type);
- #endif
- }
-</pre>
-</ul>
-
-<h4><a name="Apollo"></a>H-P Apollo</h4>
-
-<ul>
-
-<li>You must run the compiler in ANSI-compatible mode (that is, set <b><tt>AK=</tt></b>{null string} in the makefile); otherwise it gives incorrect error
-messages for any function declared as returning a float value.
-
-<li>The H-P Apollo compiler may not compile Ghostscript correctly. If you
-get unexpected crashes at run time, use gcc.
-</ul>
-
-<h4><a name="ATT_7040"></a>AT&amp;T 7040 R3</h4>
-
-<ul>
-<li>If Ghostscript crashes on startup, recompile with <b><tt>-O0</tt></b>
-to work around compiler bugs.
-</ul>
-
-<h4><a name="Convex"></a>Convex</h4>
-
-<ul>
-
-<li>Use <b><tt>unixansi.mak</tt></b>. Do not invoke optimization
-(<b><tt>-O1</tt></b>) because the compiler will produce incorrect code.
-
-<li>Set <b><tt>CFLAGS</tt></b> to
-"<b><tt>-no&nbsp;-fn&nbsp;-tm&nbsp;c1</tt></b>".
-</ul>
-
-<h4><a name="DECStations"></a>DECStations with Ultrix</h4>
-
-<ul>
-
-<li>If you get the compiler message "cfe: Fatal: _temp_19086.c:
-Segmentation violation" or a similar one, try compiling with the
-<b><tt>-oldc</tt></b> switch.
-
-<li>You may wish to set
-
-<p>
-<b><tt>GS_LIB_DEFAULT=$(gsdatadir):/usr/lib/DPS/outline/decwin:$(gsdatadir)/fonts</tt></b>
-
-<p>
-in the makefile to add the Display PostScript font directory to the font
-search path.
-
-<li>Set
-
-<p>
-<b><tt>CFLAGS="-Olimit&nbsp;2500"</tt></b>
-
-<p>
-to make the optimizer allocate enough table space.
-
-<li>The Ultrix 4.4 C compiler compiles <b><tt>gdevm1.c</tt></b>
-incorrectly. Insert the following line in the makefile rule for
-"<b><tt>gdevm1.$(OBJ)</tt></b>" (the body of the rule is empty in the
-standard distribution):
-
-<p>
-<b><tt>$(CCC) -oldc gdevm1.c</tt></b>
-</ul>
-
-<h4><a name="HP_RISC"></a>H-P RISC workstations</h4>
-
-<ul>
-
-<li>HP-UX versions before 11.0 do not support POSIX threads. Set
-<b><tt>SYNC=nosync</tt></b> in the makefile before building.
-
-<li>Ghostscript builds on H-P machines with either GNU gcc or H-P's
-ANSI-capable <b><tt>cc</tt></b>. The minimal, non-ANSI-capable
-<b><tt>cc</tt></b> that ships with a basic HPUX system does <b><em>not</em></b>
-work. If <b><tt>cc</tt></b> on your system doesn't accept the
-<b><tt>-Aa</tt></b> switch, then you need to get the full
-<b><tt>cc</tt></b> or gcc.
-
-<li>If you use H-P's compiler, be sure you have upgraded to a recent
-release. Many bizarre symptoms have been reported trying to build
-Ghostscript with older, buggier compilers, for example:
-<ul>
-<li>The link step fails with a message about "<b><tt>max</tt></b>" not being defined.
-<li>The build succeeds, but the resulting executable fails to start up,
-with an error message like "Initializing... Unrecoverable error: typecheck
-in .registerencoding".
-<li>The build succeeds, but the resulting executable produces a black
-background on the first page of output.
-</ul>
-
-<li>It is reported that On HPUX 9.* you need at least compiler patch
-PHSS_5723 and dld.sl patch PHSS_5734 to build Ghostscript. (As of late
-1997, those patches are long obsolete; the current patches are compiler
-PHSS_10357 and dld.sl PHSS_11246. It is unknown whether current
-Ghostscript releases work with compiler/dld.sl versions older than these.)
-
-<li>On HPUX 10.*, we don't know what combinations of compiler version and
-switches work. It is reported that On HPUX 10.20, setting
-"<b><tt>CC=c89</tt></b>" and "<b><tt>CFLAGS=+O3&nbsp;$(XCFLAGS)</tt></b>"
-works, contradicting the information in the next paragraph, but this may be
-dependent on the specific compiler version.
-
-<li>In either HPUX version, you need to set
-"<b><tt>CC=cc&nbsp;-Aa</tt></b>" (or use <b><tt>-Ae</tt></b> if you
-prefer), and set
-"<b><tt>CFLAGS=-D_HPUX_SOURCE&nbsp;-O&nbsp;$(XCFLAGS)</tt></b>". Higher
-levels of optimization than <b><tt>-O</tt></b> may work depending on your
-compiler revision; some users have reported success with
-<b><tt>+O3</tt></b>, some have not.
-
-<li>Some users have reported needing <b><tt>-DNOSYSTIME</tt></b> and
-<b><tt>-D_POSIX_SOURCE</tt></b> in <b><tt>CFLAGS</tt></b>, but recent tests
-do not show these to be necessary.
-
-<li>If you use gcc, it's a good idea to have a recent release -- 2.7.2.1 or
-later -- but gcc 2.6.3 has been known to work with past releases of
-Ghostscript. gcc versions earlier than 2.6.3, and 2.7.* earlier than
-2.7.2.1, are known <b><em>not</em></b> to work. You may be able to get a working
-executable with an older gcc by removing <b><tt>-O</tt></b> from
-<b><tt>CFLAGS</tt></b>.
-</ul>
-
-<h4><a name="Intergraph"></a>Intergraph Clipper</h4>
-
-<ul>
-<li>Recommended settings are:
-
-<p>
-<b><tt>XCFLAGS=-w -Q -DSYSV -D__SVR3<br>
-EXTRALIBS=-lbsd -lc_s<br>
-CC=acc -knr<br>
-PLATFORM=sysv_</tt></b><br>&nbsp;
-
-<li>You will probably need to change the value of <b><tt>XLIBS</tt></b> from
-"<b><tt>XLIBS=Xt X11 Xext</tt></b>" to "<b><tt>XLIBS=Xt_s X11_s Xext</tt></b>".
-</ul>
-
-<h4><a name="MIPS"></a>MIPS</h4>
-
-<ul>
-<li>There is apparently a bug in older versions of the MIPS C compiler
-which causes <b><tt>gxdither.c</tt></b> to compile incorrectly if
-optimization is enabled (<b><tt>-O</tt></b>). However, this bug is
-definitely fixed in MipsPRO C version 6.00; with this version, compiling
-with "<b><tt>-O2 -mips2</tt></b>" produces good output.
-</ul>
-
-<h4><a name="NCR_3550"></a>NCR 3550</h4>
-
-<ul>
-<li>With the NCR C Development Toolkit you must use <b><tt>-O0</tt></b>.
-</ul>
-
-<h4><a name="Pyramid"></a>Pyramid MIServer-S</h4>
-
-<p>
-See "<a href="#ATT_7040">AT&amp;T 7040 R3</a>".
-
-<h4><a name="RS6000"></a>IBM RS/6000 with AIX</h4>
-
-<ul>
-
-<li>Many versions of the AIX C compiler have bugs that have prevented
-Ghostscript from compiling and linking properly. We believe that the
-current Ghostscript release works around these bugs, and that
-<b><tt>unixansi.mak</tt></b> with <b><tt>CC=cc</tt></b> should work.
-
-<li>You must also edit the makefile (<b><tt>unixansi.mak</tt></b>) to change
-<b><tt>INSTALL</tt></b> to <b><tt>/usr/ucb/install</tt></b>.
-
-<li>AIX doesn't use a separate library for multi-thread support: set
-<b><tt>STDLIBS=-lm</tt></b> in the makefile.
-
-<li>If <b><tt>-DSYSV</tt></b> produces a complaint about the functions
-<b><tt>index</tt></b> and <b><tt>rindex</tt></b> not being defined, try
-removing it.
-
-<li>If the xlc 1.2.1 optimizer runs out of memory, you may need to add
-<b><tt>-qmaxmem=4000</tt></b> to <b><tt>CFLAGS</tt></b>.
-
-<li>A user reports that the AIX C compiler shipped with AIX 3.2.5 compiles
-Ghostscript only if invoked with "<b><tt>c89&nbsp;-D_POSIX_SOURCE</tt></b>"
-and <b><em>without</em></b> <b><tt>-O</tt></b>. On the other hand, another
-user reports successful compilation using <b><tt>unix-ansi.mak</tt></b> and
-the command line
-
-<p>
-<b><tt>make&nbsp;CC=c89&nbsp;XCFLAGS="-DOSY_AIX&nbsp;-D_ALL_SOURCE&nbsp;-qnoro&nbsp;-qmaxmem=3000&nbsp;-bfl"&nbsp;$*</tt></b><br>&nbsp;
-
-<li>Apparently some (but not all) releases of the C library declare the
-<b><tt>hypot</tt></b> function: if the declaration in
-<b><tt>math_.h</tt></b> produces an error message, try removing it.
-
-<li>The IBM X11R3 server is known to be buggy: use the MIT X server if
-possible.
-
-<li>The xlc 1.3.0.x compiler provided in AIX 3.2.5+ definitely will not
-compile Ghostscript correctly if <b><tt>-O</tt></b> is used on all files.
-A user reports that compiling <b><tt>z</tt></b>*<b><tt>.c</tt></b>,
-<b><tt>gsmatrix.c</tt></b>, <b><tt>gxstroke.c</tt></b> without
-<b><tt>-O</tt></b> is sufficient to produce a working executable:.
-
-<li>Some installations of AIX 3.2.5 have what appears to be an incorrect or
-inconsistent version of <b><tt>libXt.a</tt></b> in
-<b><tt>/usr/lpp/X11/lib</tt></b>. If linking shows
-<b><tt>XtShellStrings</tt></b> and <b><tt>XtStrings</tt></b> as unresolved
-externals, set
-"<b><tt>XLIBDIRS=-L/usr/lpp/X11/lib/R5&nbsp;-L/usr/lpp/X11/lib</tt></b>"
-rather than just "<b><tt>XLIBDIRS=-L/usr/lpp/X11/lib</tt></b>".
-
-<li>Ghostscript has been successfully compiled and runs under AIX 4.3.3 and
-the IBM C compiler version 5. The following changes were required in
-unixansi.mak:
-
-<p>
-<b><tt>CC=xlc</tt></b>
-<br>
-<b><tt>XCFLAGS=-qalign=natural</tt></b>
-
-</ul>
-
-<h4>
-<a NAME="Silicon_Graphics"></a>Silicon Graphics</h4>
-
-<p>
-Users have had a lot of problems with the MIPSpro compilers on SGI systems.
-We recommend using gcc. If you do choose to use the MIPSpro compiler,
-please read the following carefully.
-
-<ul>
-<li>
-To make the optimizer allocate enough table space, set
-
-<p><b><tt>CFLAGS="-Olimit 2500"</tt></b> (for older compilers)
-<br><b><tt>CFLAGS="-OPT:Olimit=2500"</tt></b> (for newer compilers)
-
-<p>
-MIPSpro compiler version 3.19 is "older", and 7.1 is "newer"; we aren't
-sure at what point in between the latter syntax was introduced.
-
-<li>
-With the compiler shipped with Irix 5.2, use the <b><tt>-ansi</tt></b>
-option.
-
-<li>
-The SGI C compiler may produce warnings about "Undefined the ANSI standard
-library defined macro stdin/stdout/stderr". To suppress these warnings, add
-"<b><tt>-woff 608</tt></b>" to the definition of <b><tt>CFLAGS</tt></b>.
-
-<li>
-The SGI C compiler shipped with Irix 6.1 and 6.2 will not compile
-<b><tt>zlib/deflate.c</tt></b> properly with optimization. Compile this file
-separately without <b><tt>-O</tt></b>.
-
-<li>
-With IRIX 6.5.x and the MIPSpro 7.x compilers there have been reports about
-incorrect output and binaries that cause segmentation faults.&nbsp; Various
-solutions have been suggested and you may want to try them in this order,
-until you get a working binary:
-
-<ul>
-<li>
-Compile <b><tt>idict.c</tt></b> and <b><tt>isave.c</tt></b> separately
-without optimization after doing a normal compile; then relink.e.g.:
-
-<p>
-<b><tt>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/idict.o -c ./idict.c</tt></b><br>
-<b><tt>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/isave.o -c ./isave.c</tt></b>
-
-<li>
-Set <b><tt>CFLAGS=</tt></b> (no optimization).
-
-<li>
-Use only <b><tt>-O2</tt></b>.&nbsp;&nbsp; Compiler produces incorrect output
-with <b><tt>-O3</tt></b> or "<b><tt>-Ofast=ip32 -show</tt></b>".
-
-<li>
-Irix 6.5.1m with MIPSpro compiler 7.2.1.1m, Irix 6.5.3m with MIPSpro
-compiler 7.2.1, and probably other 6.5x / 7.2x combinations require
-compiling with the <b><tt>-o32</tt></b> option. Compiling with the (default)
-<b><tt>-n32</tt></b> option produces non-working executables.
-<b><tt>-O2</tt></b> is OK (possibly except for <b><tt>idict.c</tt></b>), but
-not <b><tt>-O3</tt></b>.
-</ul>
-</ul>
-
-<h4><a name="Sun"></a>Sun</h4>
-
-<ul>
-<li>The Sun unbundled C compiler (SC1.0) doesn't compile Ghostscript
-properly with the <b><tt>-fast</tt></b> option: Ghostscript core-dumps in
-<b><tt>build_gs_font</tt></b>. With that compiler use <b><tt>-g</tt></b>,
-or use gcc instead.
-
-<li>The Sun version of <b><tt>dbx</tt></b> often gives up with an error
-message when trying to load Ghostscript. If this happens, use GNU
-<b><tt>gdb</tt></b> instead. (<b><tt>gdb</tt></b> is more reliable than
-<b><tt>dbx</tt></b> in other ways as well.)
-
-<li>A bug in some versions of <b><tt>zlib</tt></b> results in an undefined
-symbol <b><tt>zmemcmp</tt></b> when compiling with Sun cc. Use gcc
-instead.
-</ul>
-
-<h4><a name="SunOS"></a>SunOS</h4>
-
-<ul>
-<li>The <tt><b>tar</b></tt> program provided with SunOS 4.1.3 may not be
-able to unpack the archives in the standard Ghostscript distribution.
-Get a more recent version of <tt><b>tar</b></tt>, such as GNU
-<tt><b>tar</b></tt>.
-
-<li>In SunOS 4.1.[23], you may get undefined symbols
-<b><tt>_get_wmShellWidgetClass</tt></b> and
-<b><tt>_get_applicationShellWidgetClass</tt></b> when linking. Compiling
-"<b><tt>-Bstatic&nbsp;-lXmu&nbsp;-Bdynamic</tt></b>" appears to work for
-SC1.0. For gcc, try adding <b><tt>-static</tt></b> to
-<b><tt>CFLAGS</tt></b>. To solve the problem if you are using OpenWindows
-3.0 (X11R4-based Xt), ask Sun for patches 100512-02 and 100573-03.
-</ul>
-
-<h4><a name="Solaris"></a>Solaris</h4>
-
-<ul>
-<li>Solaris 2.2 may require setting "<b><tt>EXTRALIBS=-lsocket</tt></b>".
-Solaris 2.3 and later seem to require "<b><tt>EXTRALIBS=-lnsl&nbsp;-lsocket&nbsp;-lposix4</tt></b>".
-
-<li>For Solaris 2.6 (and possibly some other versions), if you set
-<b><tt>SHARE_LIBPNG=1</tt></b>, <b><tt>SHARE_ZLIB=1</tt></b>, or
-<b><tt>SHARE_JPEG=1</tt></b>, you may need to set
-
-<p>
-<b><tt>XLDFLAGS=-R /usr/local/</tt></b>xxx<b><tt>/lib:/usr/local/lib</tt></b>
-
-<p>
-using the full path names of the relevant directories.
-
-<li>Solaris 2.<em>n</em> uses <b><tt>/usr/openwin/share/include</tt></b>
-for the X11 libraries rather than <b><tt>/usr/local/X/include</tt></b>.
-
-<li>Solaris 2.<em>n</em> typically has Type 1 fonts in
-<b><tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt></b>.
-
-<li>For Solaris 2.<b><tt>n</tt></b> in the makefile you must change
-the definition of <b><tt>INSTALL</tt></b> from "<b><tt>install&nbsp;-c</tt></b>" to
-"<b><tt>/usr/ucb/install&nbsp;-c</tt></b>".
-
-<li>You may need to set <b><tt>XLIBDIR</tt></b> to the directory that holds
-the X11 libraries, as for other SVR4 systems. Set <b><tt>-DSVR4</tt></b>
-in <b><tt>CFLAGS</tt></b>.
-
-<li>If you are using the SunPRO C compiler, don't use optimization level
-<b><tt>-xO3</tt></b>. On SPARC platforms the compiler hangs; on Intel
-platforms the generated code is incorrect. With this compiler on Intel, do
-not use the <b><tt>-native</tt></b> flag: floating point computations
-become unacceptably inaccurate. You can use <b><tt>-xcg92</tt></b> (SPARC
-V8) and <b><tt>-dalign</tt></b> for better performance.
-</ul>
-
-<h4><a name="VAX_Ultrix"></a>VAX with Ultrix</h4>
-
-<ul>
-<li>You may wish to set
-
-<p>
-<b><tt>GS_LIB_DEFAULT=$(gsdatadir):/usr/lib/DPS/outline/decwin:$(gsdatadir)/fonts</tt></b>
-
-<p>
-in the makefile to add the Display PostScript font directory to the font
-search path.
-</ul>
-
-<hr>
-
-<h2><a name="OS2_build"></a>How to build Ghostscript from source (OS/2 version)</h2>
-
-<p>
-<em>Note: This section was contributed by a user: please e-mail Hermann
-Ulrichskötter &lt;<a
-href="mailto:ulrichsk@t-online.de">ulrichsk@t-online.de</a>&gt; if you have
-questions or problems.</em>
-
-<p>
-The following instructions are for building with emx 0.9d/Fix2. Be warned
-that with this version of gcc/emx, compiler optimization flags '-O' or '-O1'
-will produce non-working output.
-
-<ul>
-<li>The relevant makefile is <b><tt>os2.mak</tt></b> The gcc/emx 0.9b (or
-later) compiler and IBM <b><tt>NMAKE.EXE</tt></b> are required.
-
-<li>For gcc/emx versions 0.9c and later, the <b><tt>LINK386</tt></b>
-command must <b><em>include</em></b>
-"<b><tt>$(COMPBASE)\lib\end.lib</tt></b>"; version 0.9b requires
-<b><em>omitting</em></b> it. The current <b><tt>os2.mak</tt></b> file does
-include this file in the <b><tt>LINK386</tt></b> command, so if you are
-using 0.9b, delete this file reference before building.
-
-<li>Be sure you are using the standard OS/2 shell, <b><tt>CMD.EXE</tt></b>.
-Some other shells have bugs or differences that cause the makefile not to
-work.
-
-<li>Make sure you followed the instructions in "How to unpack the source
-code" and "How to unpack the third-party libraries".
-
-<li>Use jpegsrc_v6b.tar.gz, zlib.tar.gz and libpng-1.0.3.tar.gz. Earlier
-versions may not work.
-
-<li>If you wish to include support for XFree86, edit the makefile
-to change <b>BUILD_X11=0</b> to <b>BUILD_X11=1</b>.
-XFree86 for OS/2 can be obtained from
-<a href="http://borneo.gmd.de/~veit/os2/xf86os2.html">
-http://borneo.gmd.de/~veit/os2/xf86os2.html</a>
-You must use emx 0.9d.
-</ul>
-
-<p>
-Before compiling or linking, execute <b><tt>md bin</tt></b> and <b><tt>md
-obj</tt></b> in the <b><tt>gs</tt></b> directory to create the directories
-for the binaries.
-
-<p>
-First, build the standard configuration:
-
-<ul>
-<li>Edit gs/src/os2.mak: find line with 'CO=-O' (Optimizer flag) and edit
-this line to 'CO=-O2' (-O or -O1 do not work!).
-
-<li>To start the make process, type <b><tt>nmake -f .\src\os2.mak</tt></b>,
-from the gs-directory.
-
-<li>One DLL and two EXEs will be produced in <b><tt>gs/bin</tt></b>:
-<b><tt>gsdll2.dll</tt></b> (the Ghostscript DLL), <b><tt>gsos2.exe</tt></b>
-(the Ghostscript executable) and <b><tt>gspmdrv.exe</tt></b> (the
-Presentation Manager display driver). All other newly generated files will
-be produced in <b><tt>gs/obj</tt></b>.
-</ul>
-
-<p>
-Now, if you wish, you can edit OS2.MAK to suit your needs, and then perform
-<b><tt>nmake -f .\src\os2.mak clean</tt></b> and then <b><tt>nmake -f
-.\src\os2.mak</tt></b>.
-
-<hr>
-
-<h2><a name="VMS_build"></a>How to build Ghostscript from source (OpenVMS version)</h2>
-
-<p>The DECC6.2-003 compiler has an optimization problem that may lead to
-warnings about the "ANSI aliasing rules". DEC (Compaq) can provide a fix
-for this problem. The DECC6.2-006 compiler apparently does not have the
-problem.
-
-<p>
-DEC C runtime library versions 5.5 and newer have an <b><tt>exit</tt></b>
-function that is compatible with all other C systems, but some older ones
-don't. If you get error messages from VMS when auxiliary programs such as
-<b><tt>genarch</tt></b> or <b><tt>echogs</tt></b> finish executing, find the
-line in stdpre.h that reads
-
-<blockquote><b><tt>
-/*#define&nbsp;OLD_VMS_C*/
-</tt></b></blockquote>
-
-and remove the <b><tt>/*</tt></b> and <b><tt>*/</tt></b>, changing it to
-
-<blockquote><b><tt>
-#define&nbsp;OLD_VMS_C
-</tt></b></blockquote>
-
-<p>
-Some versions of DEC's X server have bugs that produce broad bands of color
-where dither patterns should appear, or characters displayed white on top
-of black rectangles or not displayed at all. If this happens, consult the
-usage documentation for how to <a href="Use.htm#X_server_bugs">work around
-X server bugs</a> using X resources; also report the problem to DEC, or
-whomever supplied your X server.
-
-<p>
-You may also wish to turn off the use of a backing pixmap with Ghostscript,
-either to work around X server memory limitations or bugs, or to obtain
-faster displaying at the expense of no redrawing when a Ghostscript window
-is restored from an icon or exposed after being occluded by another window.
-Again, the <a href="Use.htm">usage documentation</a> tells how to do this.
-
-<p>
-You can <a href="Fonts.htm#Precompiling">precompile any Type 1 font</a>
-into C, then compile and build it into Ghostscript, as described in the
-<a href="Fonts.htm">fonts documentation</a>. If you do this, then add
-"<b><tt>$(PSD)ccfonts.dev</tt></b>" to <b><tt>FEATURE_DEVS</tt></b> in
-<b><tt>OPENVMS.MAK</tt></b>:
-
-<blockquote><b><tt>
-$&nbsp;FEATURE_DEVS&nbsp;=&nbsp;"$(PSD)psl3.dev&nbsp;$(PSD)pdf.dev&nbsp;$(PSD)dpsnext.dev&nbsp;$(PSD)ttfont.dev&nbsp;$(PSD)ccfonts.dev"
-</tt></b></blockquote>
-
-<p>
-Specify the font names with <b><tt>ccfonts1</tt></b>:
-
-<blockquote><b><tt>
-$&nbsp;ccfonts1&nbsp;=&nbsp;"Courier&nbsp;Courier_Oblique&nbsp;Courier_Bold&nbsp;Courier_BoldOblique"
-</tt></b></blockquote>
-
-<p>
-If this makes the line too long, add another line of the same form, such as
-
-<blockquote><b><tt>
-$&nbsp;ccfonts1&nbsp;=&nbsp;"Courier&nbsp;Courier_Oblique&nbsp;Courier_Bold&nbsp;Courier_BoldOblique"
-$&nbsp;ccfonts2&nbsp;=&nbsp;"Times_Roman&nbsp;Times_Italic&nbsp;Times_Bold&nbsp;Times_BoldItalic"
-</tt></b></blockquote>
-
-<h3><a name="GNU_make_VMS"></a>Building with GNU make on OpenVMS</h3>
-
-<p>
-<em>Note: GNU make on OpenVMS apparently has bugs that make it stop with an
-error when building Ghostscript version 5.80 or later. Until further
-notice, use MMS or MMK for building Ghostscript on OpenVMS. See <a
-href="#MMK_MMS_VMS">below</a> for details.</em>
-
-<p>
-As of Ghostscript version 5.0 you can use GNU make -- with the file
-<b><tt>OPENVMS.MAK</tt></b> and some auxiliary <b><tt>.COM</tt></b> files
--- to build Ghostscript on OpenVMS. Use the command:
-
-<blockquote>
-<b><tt>make&nbsp;-fopenvms.mak&nbsp;"DECWINDOWS=</tt></b><em>[</em><b><tt>1.2</tt></b><em>]</em><b><tt>"</tt></b>
-</blockquote>
-
-<p>
-That is, specify either "<b><tt>1.2</tt></b>" or nothing (blank) as the
-value of <b><tt>DECWINDOWS</tt></b>. In Europe and other parts of the world
-where ISO standard paper sizes are used, append "<b><tt>A4_PAPER=1</tt></b>"
-to that line to make A4 the default paper size at run time.
-
-<p>
-If you haven't a prebuilt copy of GNU make, you'll have to build it
-yourself; as of Version 3.76 (but not earlier) it is said to build properly
-under OpenVMS on both VAX and Alpha. The kit is available at the
-<a href="http://www.gnu.org/">Free Software Foundation's</a> ftp site and
-its mirrors. See
-
-<blockquote>
-<a href="ftp://ftp.gnu.org/pub/gnu/"
-class="offsite">ftp://ftp.gnu.org/pub/gnu/</a>
-</blockquote>
-
-<h3><a name="MMK_MMS_VMS"></a>Building with MMK or MMS on OpenVMS</h3>
-
-<p>
-As of Ghostscript version 5.68 you can use MMK or MMS to build Ghostscript on
-OpenVMS. MMS is a utility available from Compaq (Digital);
-MMK is a freely-available program largely compatible with MMS.
-
-<p>
-Building Ghostscript with MMK or MMS uses the file
-<b><tt>OPENVMS.MMK</tt></b> and some auxiliary <b><tt>.COM</tt></b> files.
-To build Ghostscript with MMK or MMS, use the command:
-
-<blockquote>
-<b><tt>###/descrip=[.src]openvms.mmk/macro=("DECWINDOWS1_2=</tt></b><em>{</em><b><tt>0</tt></b>,<b><tt>1</tt></b><em>}</em><b><tt>")</tt></b>
-</blockquote>
-
-where <b><tt>###</tt></b> is either <b><tt>mmk</tt></b> or <b><tt>mms</tt></b>.
-
-<p>
-Specify <b><tt>DECWINDOWS1_2=1</tt></b> for DECWINDOWS 1.2,
-<b><tt>DECWINDOWS1_2=0</tt></b> for other DECWINDOWS versions. In Europe
-and other parts of the world where ISO standard paper sizes are used, add
-<b><tt>,"A4_PAPER=1"</tt></b> just before the final closing parenthesis to
-make A4 the default paper size at run time.
-
-<hr>
-
-<h2><a name="Other_environments"></a>Other environments</h2>
-
-<h3><a name="No_multi_thread"></a>Environments lacking multi-threading</h3>
-
-<p>
-All environments mentioned here by name have multi-threading capability.
-However, if your environment doesn't, you can remove all need for
-multi-threading by setting <b><tt>SYNC=nosync</tt></b> in the top-level
-makefile. Note that you will not be able to use any so-called "async"
-drivers (drivers that overlap interpretation and rasterization) if you do
-this. No such drivers are in the <b><tt>DEVICE_DEVS*</tt></b> lists of any
-makefile that we distribute.
-
-<h3><a name="Plan_9"></a>Plan 9</h3>
-
-<p>
-Use <b><tt>unix-gcc.mak</tt></b>, editing it to define
-
-<blockquote><b><tt>
-CC=cc
-GCFLAGS=-D_BSD_EXTENSION -DPlan9
-</tt></b></blockquote>
-
-<p>
-You will also probably have to edit many path names.
-
-<h3><a name="QNX"></a>QNX</h3>
-
-<p>
-David J. Hawkey Jr. writes that he built Ghostscript 4.03 and 5.0 under QNX
-4.22, 4.23, and 4.24 using Watcom C 10.6 and that "it works quite well,
-after figuring out the <b><tt>/etc/config/lpsrvr</tt></b> directives,
-except for color printing to my HP DeskJet some-number-or-another". Here
-is a concise presentation of changes based on the ones he made for
-Ghostscript 4.03.
-
-<dl>
-<dt><b><tt>unixansi.mak</tt></b>
-<dd><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Original lines
- <td>&nbsp;&nbsp;
- <th align=left>Change to
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>INSTALL = install -c<br>INSTALL_PROGRAM = $(INSTALL) -m 755<br>INSTALL_DATA = $(INSTALL) -m 644</tt></b>
- <td>&nbsp;
- <td><b><tt>INSTALL = cp<br>INSTALL_PROGRAM = $(INSTALL)<br>INSTALL_DATA = $(INSTALL)</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>datadir = $(prefix)/share</tt></b>
- <td>&nbsp;
- <td><b><tt>datadir = $(prefix)/lib</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>CFLAGS_STANDARD=-O</tt></b>
- <td>&nbsp;
- <td><b><tt>CFLAGS_STANDARD=-Otx -zp1 -mf</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>LDFLAGS=$(XLDFLAGS)</tt></b>
- <td>&nbsp;
- <td><b><tt>LDFLAGS=-mf -N32k $(XLDFLAGS)</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>EXTRALIBS=</tt></b>
- <td>&nbsp;
- <td><b><tt>EXTRALIBS=-lXqnx_s -lsocket</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>XINCLUDE=-I/usr/local/X/include</tt></b>
- <td>&nbsp;
- <td><b><tt>#XINCLUDE=-I/usr/local/X/include</tt></b>
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>XLIBDIRS=-L/usr/local/X/lib<br>XLIBDIR=<br>XLIBS=Xt Xext X11</tt></b>
- <td>&nbsp;
- <td><b><tt>#XLIBDIRS=-L/usr/local/X/lib<br>#XLIBDIR=<br>XLIBS=Xt_s Xext X11_s</tt></b>
-<tr> <td colspan=3><hr>
-</table>
-</dl>
-
-<dl>
-<dt><b><tt>gp_unifs.c</tt></b>
-<dd>After the line
-
-<blockquote>
-<b><tt>#include&nbsp;&lt;sys/param.h&gt;</tt></b>
-</blockquote>
-
-<p>
-add these lines:
-
-<blockquote>
-<b><tt>#if&nbsp;defined(__QNX__)<br>
-#include&nbsp;&lt;unix.h&gt;<br>
-#endif</tt></b><br>
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>gp_unix.c</tt></b>
-<dd>After the line
-
-<blockquote>
-<b><tt>#include&nbsp;"time.h"</tt></b>
-</blockquote>
-
-<p>
-add these lines:
-
-<blockquote>
-<b><tt>#if&nbsp;defined(__QNX__)<br>
-#include&nbsp;&lt;sys/time.h&gt;<br>
-#endif</tt></b><br>
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>time_.h</tt></b>
-<dd>Modify the line beginning
-
-<blockquote>
-<b><tt>#&nbsp;&nbsp;if&nbsp;defined(Plan9)&nbsp;||</tt></b>
-</blockquote>
-
-<p>
-to begin
-
-<blockquote>
-<b><tt>#&nbsp;&nbsp;if&nbsp;defined(__QNX__)&nbsp;||&nbsp;defined(Plan9)&nbsp;||</tt></b>
-</blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>/etc/config/lpsrvr</tt></b>
-<dd>Here is Hawkey's <b><tt>lpsrvr</tt></b> as an example.
-
-<blockquote>
-<pre># lpsrvr
-#
-# Defines the print queues and their devices
-#
-# Queues
-
-# ink-jet: Ghostscript interpreter for mono DeskJet - LaserJet works
-# better than DeskJet!
-
-[ij-monops]
- ta=lpt1
- co=/usr/local/bin/gs -q -sDEVICE=laserjet -sOutputFile=- -dNOPAUSE $(spfile) quit.ps | cat &gt; $(device)
-
-# Devices
-
-[-lpt1]
- dv=/dev/par1
-
-[-lpt2]
- dv=/dev/par2
-</pre></blockquote>
-</dl>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises.
-All rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/New-user.htm b/Master/xemtex/doc/ghostscript/New-user.htm
deleted file mode 100644
index 125058b234e..00000000000
--- a/Master/xemtex/doc/ghostscript/New-user.htm
+++ /dev/null
@@ -1,592 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Background information for new users of Ghostscript</title>
-<!-- $Id: New-user.htm,v 1.30.2.14.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: new-user.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Background information for new users of Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<ul>
-<li><a href="#Overview">An overview of Ghostscript</a>
-<ul>
-<li><a href="#Find_Ghostscript">How is Ghostscript licensed? Where can I find it?</a>
-<ul>
-<li><a href="#GNU_gs">GNU Ghostscript</a>
-</ul>
-<li><a href="#Third-party_libraries">Libraries obtained from other parties</a>
-<li><a href="#Support">What if I want support?</a>
-<li><a href="#Commercial_use">What about commercial use?</a>
-<li><a href="#Platforms">What platforms does Ghostscript run on?</a>
-<ul>
-<li><a href="#Third-party_platforms">Ports done by users</a>
-</ul>
-</ul>
-<li><a href="#Related_work">Related work</a>
-<ul>
-<li><a href="#Drivers">Drivers</a>
-<li><a href="#Previewers">Previewers</a>
-<ul>
-<li><a href="#Previewer_X">Previewers for X Windows</a>
-<li><a href="#Previewer_DOS-Win">Previewers for DOS and MS Windows</a>
-<li><a href="#Previewer_GNULinux">A previewer for GNU/Linux</a>
-</ul>
-<li><a href="#Related_programs">Related programs</a>
-</ul>
-<li><a href="#Need_help">If you need help</a>
-<ul>
-<li><a href="#Reporting_problems">Reporting problems</a>
-</ul>
-<li><a href="#Contacting_us">Contacting Ghostscript headquarters</a>
-<li><a href="#How_to_help">How you can help improve Ghostscript</a>
-<li><a href="#Acknowledgments">Acknowledgements</a>
-</ul>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Overview"></a>An overview of Ghostscript</h2>
-
-<p>
-Ghostscript is the name of a set of software that provides:
-
-<ul>
-<li>An interpreter for the <b>PostScript</b><small><sup>TM</sup></small>
-language and the Adobe <b>Portable Document Format</b> (<b>PDF</b> --
-sometimes confused with Acrobat, Adobe's PDF browser and editor product);
-
-<li>Input modules (utilities) for reading a variety of raster formats,
-including <b>CMYK</b>, <b>GIF</b>, <b>JFIF</b> (<b>JPEG</b>), <b>MIFF</b>,
-<b>PBM</b>/<b>PGM</b>/<b>PPM</b>, and <b>PCX</b>;
-
-<li>Output modules (drivers) for a wide variety of window systems (including
-X Windows and Microsoft Windows), raster file formats, and printers, as well
-as a PDF output module that implements functions similar to Adobe's
-Acrobat<small><sup>TM</sup></small> Distiller<small><sup>TM</sup></small>
-product; and
-
-<li>The Ghostscript library, a set of procedures to implement the graphics
-and filtering capabilities that are primitive operations in the PostScript
-language and in PDF.
-</ul>
-
-<p>
-In simple terms, this means that Ghostscript can read a PostScript or PDF
-file and display the results on the screen or convert them into a form you
-can print on a non-PostScript printer. Especially together with several
-popular <a href="#Previewers">previewers</a>, with Ghostscript you can view
-or print an entire document or even isolated pages, even if your computer
-doesn't have Display PostScript and your printer doesn't handle PostScript
-itself.
-
-<h3><a name="Find_Ghostscript"></a>How is Ghostscript licensed? Where can I find it?</h3>
-
-<p>
-Ghostscript is a copyrighted work (artofcode LLC owns the copyright);
-it is not shareware or in the public domain. Different versions of it are
-distributed with three different licenses:
-
-<h4><a name="GNU_gs"></a>GNU Ghostscript</h4>
-
-<p>
-GNU Ghostscript is distributed under the terms of the GNU <a
-href="http://www.gnu.org/copyleft/gpl.html">General Public License</a>,
-which allows free use, and free copying and redistribution under certain
-conditions (including, in some cases, commercial distribution).
-You can always get the current version of GNU Ghostscript by Internet FTP
-from any of the many GNU distribution sites. The GNU home ftp site is
-
-<blockquote>
-<a href="ftp://ftp.gnu.org/pub/gnu/"
-class="offsite">ftp://ftp.gnu.org/pub/gnu/</a>
-</blockquote>
-
-<p>
-For a more complete list of sites, including sites outside the U.S. and
-other ways of obtaining GNU software, contact
-the <a href="http://www.gnu.org/">Free Software Foundation</a>
-<a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.
-
-<p><a name="CTAN"></a>
-Versions of Ghostscript are also available from sites in the
-Comprehensive TeX Archive Network (CTAN), in a tree based at
-/tex-archive/support/ghostscript/, which you can find at these principal
-CTAN distribution sites ("participating hosts") as of mid-1998:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td><a
-href="ftp://ctan.tug.org/tex-archive/support/ghostscript/"
-class="offsite">ftp://ctan.tug.org/tex-archive/support/ghostscript/</a>
- <td>&nbsp;&nbsp;
- <td>Massachusetts, U.S.A.
-<tr> <td><a href="ftp://ftp.dante.de/tex-archive/support/ghostscript/"
-class="offsite">ftp://ftp.dante.de/tex-archive/support/ghostscript/</a>
- <td>&nbsp;
- <td>Deutschland
-<tr> <td><a
-href="ftp://ftp.tex.ac.uk/tex-archive/support/ghostscript/"
-class="offsite">ftp://ftp.tex.ac.uk/tex-archive/support/ghostscript/</a>
- <td>&nbsp;
- <td>United Kingdom
-</table></blockquote>
-
-<p>
-CTAN has more than fifty mirror sites around the world. For information
-about CTAN sites, including how to use them over the World Wide Web, visit
-<a href="http://www.ctan.org/" class="offsite">ctan.org</a> or get
-the file <b><tt>CTAN.sites</tt></b> from any CTAN server, for
-instance
-
-<blockquote>
-<a href="ftp://ctan.tug.org/tex-archive/CTAN.sites"
-class="offsite">ftp://ctan.tug.org/tex-archive/CTAN.sites</a>
-</blockquote>
-
-<hr>
-
-<h3><a name="Third-party_libraries"></a>Libraries obtained from other parties</h3>
-
-<p>
-The Ghostscript source code distribution, and the Ghostscript executable
-code, include libraries obtained from other parties. All the source files
-mentioned in this section are in the Ghostscript and third-party library
-source kits. The documentation of <a href="Make.htm">how to build
-Ghostscript</a> tells <a href="Make.htm#Acquiring">where to get these
-libraries</a> and <a href="Make.htm#Unpack">how to unpack them</a>.
-
-<blockquote><dl>
-<dt>The <a href="http://www.ijg.org/" class="offsite">Independent JPEG
-Group</a> (IJG)
-library
-<dd>The executable versions of Ghostscript are based in part on the work of
-the Independent JPEG Group. For more information, see
-<b><tt>jpeg.mak</tt></b> in the main Ghostscript source directory and
-<b><tt>README</tt></b> in the libjpeg source directory.
-
-<dt>The <a href="http://www.libpng.org/pub/png/"
-class="offsite">Portable Network
-Graphics</a> (PNG) library created by Dave Martindale, Guy Eric Schalnat,
-Paul Schmidt, and Tim Wegner, of Group 42, Inc.
-<dd>For more information, see <b><tt>libpng.mak</tt></b> in the main
-Ghostscript source directory, and <b><tt>README</tt></b> and
-<b><tt>png.h</tt></b> in the libpng source directory.
-
-<dt>The <a href="http://www.gzip.org/zlib/"
-class="offsite">zlib</a> library
-created by Jean-loup Gailly and Mark Adler
-<dd>For more information, see <b><tt>zlib.mak</tt></b> in the main
-Ghostscript source directory, and <b><tt>README</tt></b> in the
-zlib source code.
-</dl></blockquote>
-
-<p>
-These libraries do not fall under the GPL but come with their own licenses,
-which also allow free use and redistribution under appropriate
-circumstances and which appear in the files mentioned just above. These
-libraries are entirely original works of their respective authors, and are
-provided as is with no warranty and no support.
-
-<hr>
-
-<h3><a name="Support"></a>What if I want support?</h3>
-
-<p>
-Neither artofcode LLC nor any organization known to us currently offers
-Ghostscript support for end-users -- that is, for people or companies who
-just want to use Ghostscript and not redistribute it as part of a product.
-
-<p>
-Nothing in the GNU license prevents anyone from providing
-support for Ghostscript, either free or commercial. We would be happy to
-include in the Ghostscript documentation the contact information for anyone
-who wants to offer such support.
-
-<hr>
-
-<h3><a name="Platforms"></a>What platforms does Ghostscript run on?</h3>
-
-<p>
-Ghostscript is written entirely in C, with special care taken to make it
-portable to a wide variety of systems. It is actively maintained on many
-unix-like operating systems, Microsoft Windows, Apple's MacOS and
-OpenVMS and can easily be ported to others. Please see <a
-href="Make.htm">Making Ghostscript</a> for details on the build process
-and hints for various platforms.
-
-<hr>
-
-<h2><a name="Related_work"></a>Related work</h2>
-
-<h3><a name="Drivers"></a>Drivers</h3>
-
-<p>
-A number of people have created Ghostscript drivers that they prefer to
-distribute directly, rather than including them in the Ghostscript
-distributions. Please refer to <a
-href="http://www.linuxprinting.org/"
-class="offsite">www.linuxprinting.org</a> or your favorite search engine
-for
-relevant examples.
-
-<h3><a name="Previewers"></a>Previewers</h3>
-
-<p>
-The Ghostscript user interface is very primitive, so several people have
-contributed screen previewers with better user interfaces.
-
-<h4><a name="Previewer_X"></a>Previewers for X Windows</h4>
-
-<dl>
-<dt><b><tt>GSPreview</tt></b>
-<dd>For information on GSPreview, contact Richard Hesketh
-&lt;<a href="mailto:rlh@ukc.ac.uk">rlh@ukc.ac.uk</a>&gt;.
-</dl>
-
-<h4><a name="Previewer_DOS-Win"></a>Previewers for DOS and MS Windows</h4>
-
-<dl>
-<dt><b><tt>psv</tt></b>
-<dd><b><tt>PSV</tt></b>, another keyboard-based PostScript viewing package
-for DOS, appears to be redistributable with no restrictions. It was once
-available from
-
-<blockquote>
-ftp://puccini.ujf-grenoble.fr/pub/contrib-ps/DOS-PSV/
-</blockquote>
-</dl>
-
-<h4><a name="Previewer_GNULinux"></a>A previewer for GNU/Linux</h4>
-
-<dl>
-<dt><b><tt>BMV</tt></b> <dd>Jan Kybic has created a Ghostscript-based
-bitmap previewing program for GNU/Linux called <b><tt>BMV</tt></b>, which
-doesn't use X Windows but is based on <b><tt>svgalib</tt></b>. He says
-there is a port of <b><tt>BMV</tt></b> for SCO Unix by William Bader.
-<b><tt>BMV</tt></b> is available from
-
-<blockquote>
-<a
-href="ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz"
-class="offsite">ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz</a>
-</blockquote>
-</dl>
-
-<hr>
-
-<h3><a name="Related_programs"></a>Related programs</h3>
-
-<dl>
-<dt><b><tt>genscript</tt></b>
-<dd><b><tt>genscript</tt></b> is a free replacement for the
-<b><tt>enscript</tt></b> program. <b><tt>genscript</tt></b> converts plain
-text files to PostScript and sends the generated PostScript output to the
-specified printer or to a file. <b><tt>genscript</tt></b> can be easily
-extended to handle different output media, and it has many options which can
-be used to customize printouts, including 2-up printing, pagination, complex
-headers, and many more. You can find the current version at
-
-<blockquote>
-<a href="http://www.iki.fi/~mtr/genscript/"
-class="offsite">http://www.iki.fi/~mtr/genscript/</a> (home page)<br>
-<a href="ftp://ftp.gnu.org/pub/gnu/"
-class="offsite">ftp://ftp.gnu.org/pub/gnu/enscript/</a>enscript-*.tar.gz
-</blockquote>
-
-<dt><b><tt>pstotext</tt></b>
-<dd>A good free utility <b><tt>pstotext</tt></b> uses Ghostscript to extract
-plain text from PostScript files. It is much better than the
-<b><tt>ps2ascii</tt></b> utility distributed with Ghostscript. You can read
-the <b><tt>pstotext</tt></b> documentation at
-
-<blockquote>
-<a
-href="http://www.research.digital.com/SRC/virtualpaper/manpages/pstotext.1.html"
-class="offsite">http://www.research.digital.com/SRC/virtualpaper/manpages/pstotext.1.html</a>
-</blockquote>
-
-<p>
-and download the <b><tt>pstotext</tt></b> kit from
-
-<blockquote>
-<a href="http://www.research.digital.com/SRC/virtualpaper/pstotext.html"
-class="offsite">http://www.research.digital.com/SRC/virtualpaper/pstotext.html</a>
-</blockquote>
-
-<p>
-<b><tt>pstotext</tt></b> is unsupported, but the authors,
-Paul McJones
-&lt;<a href="mailto:paul.mcjones@acm.org">paul.mcjones@acm.org</a>&gt;
-and Andrew Birrell
-&lt;<a href="mailto:birrell@pa.dec.com">birrell@pa.dec.com</a>&gt;, are
-happy to have your questions and comments either by e-mail or <a href="http://www.research.digital.com/SRC/virtualpaper/comments.html"
-class="offsite">here</a>
-
-<p>
-For more information about the authors' Virtual Paper project, which
-attempts to make on-line reading of lengthy material (like research
-reports, manuals, or entire books) comfortable, read:
-
-<blockquote>
-<a href="http://www.research.digital.com/SRC/virtualpaper"
-class="offsite">http://www.research.digital.com/SRC/virtualpaper</a>
-</blockquote>
-
-<dt><b><tt>PreScript</tt></b>
-<dd>This is another good free utility that uses Ghostscript to extract text
-from PostScript or PDF files. It can also generate very simple HTML,
-keeping some of the formatting. It is unsupported, but is the product of an
-active research project. Its home page is:
-
-<blockquote>
-<a href="http://www.nzdl.org/html/prescript.html"
-class="offsite">http://www.nzdl.org/html/prescript.html</a>
-</blockquote>
-
-</dl>
-
-<hr>
-
-<h2><a name="Need_help"></a>If you need help</h2>
-
-<p>
-The list of Frequently Asked Questions (FAQ) isn't updated very often, so
-it may be somewhat out of date. It's available from
-
-<blockquote>
-<a href="http://www.cs.wisc.edu/~ghost/doc/faq.htm"
-class="offsite">http://www.cs.wisc.edu/~ghost/doc/faq.htm</a><br>
-<a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/faq.htm"
-class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/faq.htm</a>
-</blockquote>
-
-<p>
-or by AFS from
-
-<blockquote>
-/afs/cs.wisc.edu/p/mirror/pub/mirrors/ghost/faq.htm
-</blockquote>
-
-<p>
-CompuServe announced in December 1995 that the Graphics Support Forum offers
-Message Section and Library 21, "Ghostscript", for technical assistance with
-Ghostscript. Ghostscript is available for downloading in Library 21,
-"Ghostscript." To access the Graphics Support Forum, <b><tt>GO
-GRAPHSUP</tt></b>. This service has no connection with the main Ghostscript
-developers.
-
-<p>
-If you have problems with Ghostscript and you have access to the
-Internet, we suggest to post your question to one of these Usenet
-newsgroups:
-
-<dl>
-<dt><b><tt><a href="news:gnu.ghostscript.bug">gnu.ghostscript.bug</a></tt></b>
-<dd>if your question is about <b>GNU Ghostscript</b>. If you have access to Internet mail, but not Usenet news,
-write to <b><tt>bug-ghostscript@gnu.org</tt></b>, which is equivalent to
-posting to that newsgroup.
-
-<dt><b><tt><a href="news:comp.lang.postscript">comp.lang.postscript</a></tt></b>
-<dd>if you have a general question about Ghostscript. Note
-however that this newsgroup was not intended for Ghostscript
-discussion <em>per se</em>.
-</dl>
-
-<p>
-There are hundreds of Ghostscript user sites all over the world, and another
-user will often be able to help you. If you have trouble with a specific
-device driver, look at <b><tt>devs.mak</tt></b> and
-<b><tt>contrib.mak</tt></b> in the Ghostscript source directory to see in
-which file the driver is defined. If it's defined in
-<b><tt>contrib.mak</tt></b>, the list of contributed drivers, please contact
-the author directly: the maintainers of Ghostscript can't help you with
-user-maintained drivers.
-
-<h3><a name="Reporting_problems"></a>Reporting problems</h3>
-
-<p>
-Please read <a href="Bug-info.htm">Bug-info.htm</a> for information about
-reporting problems.
-
-<hr>
-
-<h2><a name="Contacting_us"></a>Contacting Ghostscript headquarters</h2>
-
-<p>
-As of mid-September 2000, artofcode LLC is responsible for the future
-development of Ghostscript. Please do not contact us if all you want is
-help with Ghostscript! Ghostscript is
-free, but our time is not. If you call for help, we will tell you politely
-that we cannot answer your question. Ghostscript's documentation, while not
-of commercial end-user quality, has been adequate for thousands of users
-(for many of whom English is a foreign language), so the answer to your
-question is very likely in it somewhere. <!-- ouch -->
-
-<p>
-Here is our contact information:
-
-<blockquote><address>
-Raph Levien<br>
-artofcode LLC<br>
-940 Tyler St. Studio 6<br>
-Benicia, CA 94510<br>
-tel/fax +1 707 746 6398<br>
-<a href="mailto:raph@artofcode.com">raph@artofcode.com</a>
-</address></blockquote>
-
-<h3>Aladdin Enterprises</h3>
-
-<p>
-Aladdin Enterprises, the original authors of Ghostscript, is no
-longer responsible for Ghostscript, but may be available for small
-contract projects. Here is their contact information:
-
-<blockquote><address>
-Aladdin Enterprises<br>
-203 Santa Margarita Avenue<br>
-Menlo Park, CA 94025 U.S.A.<br>
-+1-650-322-1734 fax<br>
-<a href="mailto:ghost@aladdin.com">ghost@aladdin.com</a><br>
-<a href="http://www.ghostscript.com/"
-class="offsite">http://www.ghostscript.com/</a>
-</address></blockquote>
-
-<p>
-If you want help with Ghostscript, or want to report a problem, please do
-not contact us. We will not be able to help you.
-
-<hr>
-
-<h2><a name="How_to_help"></a>How you can help improve Ghostscript</h2>
-
-<p>
-The most valuable thing you can do to help improve Ghostscript is to help
-test it. We make three different grades of release available, each of
-which needs a different kind of testing.
-
-<ul>
-<li><em>Stable</em> releases are made available about every 9 months, after
-a beta test period. Reporting problems as described <a
-href="#Reporting_problems">above</a> often results in a fix being posted on
-our Web site.
-</ul>
-
-<ul>
-<li><em>Beta</em> releases are posted starting about 6 weeks before a
-planned public release. These are candidates for public release, and need
-intensive testing.
-</ul>
-
-<ul>
-<li><em>Development</em> releases are posted every few weeks. These are not
-supposed to be good enough for general use, but testing them is still very
-helpful, since it gets problems corrected before the intensive beta test
-period.
-</ul>
-
-<p>
-You can always find the current public release and the current beta or
-tester release on our <a href="http://www.cs.wisc.edu/~ghost/">Web
-site</a>. If you would like to be notified when new beta or tester releases
-are posted, please <a href="#Contacting_us">contact us</a>.
-
-<p>
-There are also some useful projects that we don't have enough resources to
-work on, and with which we would appreciate help. See <a
-href="Projects.htm">this list</a> for details.
-
-<hr>
-
-<h2><a name="Acknowledgments"></a>Acknowledgements</h2>
-
-<p>
-Ghostscript was originally created, and through the year 2000 was primarily
-developed and maintained, by L. Peter Deutsch, President of Aladdin
-Enterprises (not to be confused with Peter J. Deutsch, founder of Bunyip
-Information Systems Inc.).
-
-<p>
-Special thanks are due to Russell Lang, for the
-<b><tt>GSview for Windows</tt></b> and
-<b><tt>PM GSview</tt></b> programs, and for contributing most of the code for
-the Microsoft Windows and OS/2 environments; to Tim Theisen, for the
-<b><tt>Ghostview</tt></b> program for X Windows and for major contributions
-to, and assistance with support of, the code for the X Windows
-environment; to Martin Fong and Mark Lentczner, for the first Macintosh
-ports; to Pete Kaiser
-&lt;<a href="mailto:kaiser@acm.org">kaiser@acm.org</a>&gt;, for redoing all
-of the documentation in HTML;
-and to the <a href="http://www.ijg.org/">Independent
-JPEG Group</a>, to Group 42, Inc., and to Jean-loup Gailly and Mark Adler,
-for creating the freely available libraries that Ghostscript uses.
-
-<p>
-Special thanks are due to URW++ Design and Development Incorporated, of
-Hamburg, Germany (<a href="http://www.urwpp.de/">http://www.urwpp.de/</a>)
-for making a commercial-quality set of the 35 standard PostScript Type 1
-fonts available for free distribution under the GNU and Aladdin licenses,
-and for updating them to include Adobe's expanded PostScript 3 character
-set.
-
-<p>
-Special thanks are due to Richard Stallman and the
-<a href="http://www.gnu.org/" class="offsite">Free Software
-Foundation</a> for originating
-the <a href="http://www.gnu.org/copyleft/gpl.html" class="offsite">GNU
-General Public
-License</a>, for originally motivating Aladdin's interest in creating free
-software, and for being the primary distributor of GNU Ghostscript on the
-Internet.
-
-<p>
-See also the <a href="Helpers.htm">list of the many other people</a> who have
-contributed significantly to improving Ghostscript.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996-2002 artofcode LLC. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/News.htm b/Master/xemtex/doc/ghostscript/News.htm
deleted file mode 100644
index 7e3fa2fa015..00000000000
--- a/Master/xemtex/doc/ghostscript/News.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Recent changes in Ghostscript</title>
-<!-- $Id: News.htm,v 1.90.2.18.2.8 2003/05/17 14:44:22 giles Exp $ -->
-<!-- Originally: NEWS -->
-<!--
- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
- re-create the table of contents here, because it will replace the
- hand-edited TOC subheads with a separate subhead for each H2 in
- the body of the file. Or if you do, first look at the original
- TOC to see how to edit it for visual conciseness.
--->
-<link rel="stylesheet" type="text/css" href="gs.css">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Changes in the most recent release of Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-This document is news about the most recent Ghostscript release. For
-earlier versions, see the history documents:
-
-<blockquote>
-<a href="History7.htm">History of Ghostscript versions 7.n</a><br>
-<a href="History6.htm">History of Ghostscript versions 6.n</a><br>
-<a href="History5.htm">History of Ghostscript versions 5.n</a><br>
-<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
-<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
-<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
-<a href="History1.htm">History of Ghostscript versions 1.n</a>
-</blockquote>
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h3><a name="Version7.07"></a>Version 7.07 (2003-05-17)</h3>
-
-<p>This is the third release of the stable 7.0x series under the GNU
-GPL. It includes an important security update; upgrading is strongly
-recommended.</p>
-
-<h3><a name="7.07_Incompatible_changes"></a>Incompatible changes</h3>
-
-<p>
-No incompatible changes have been recorded for this version. Users of the 6.5x versions of GNU
-Ghostscript will want to check the History for a complete list of changes since that version.
-
-<pre>
-
-</pre>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2003 artofcode LLC. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Projects.htm b/Master/xemtex/doc/ghostscript/Projects.htm
deleted file mode 100644
index 3ee7f5cad5f..00000000000
--- a/Master/xemtex/doc/ghostscript/Projects.htm
+++ /dev/null
@@ -1,629 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript projects</title>
-<!-- $Id: Projects.htm,v 1.33.2.11.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Ghostscript projects seeking developers</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<ul>
-<li><a href="#Platforms">Platforms</a>
-<li><a href="#Driver_architecture">Driver architecture</a>
-<li><a href="#Specific_drivers">Specific drivers</a>
-<li><a href="#Graphics_functionality">Graphics functionality</a>
-<li><a href="#Performance">Performance</a>
-<li><a href="#Other_functionality">Other functionality</a>
-<li><a href="#Other_implementation">Implementation improvements</a>
-</ul>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<p>
-There are many projects that would improve Ghostscript and that we would
-like to do, but for which we don't have enough resources. If you would like
-to take responsibility for any of these projects, please <a
-href="mailto:raph@artofcode.com">contact us</a>. Additional comments on
-implementation approaches or project goals are in <I>italic type like
-this</I>.
-
-<h2><a name="Platforms"></a>Additional platforms</h2>
-
-<h3>DOS, Windows and OS/2 builds using gcc.</h3>
-
-<p>
-We would like Ghostscript to work with the free <b><tt>emx/gcc</tt></b> and
-<b><tt>rsx</tt></b> libraries, to provide an alternative DOS, Windows
-95/98/NT, and OS/2 implementation that requires no proprietary, commercial
-compilers. We think Ghostscript's existing OS/2 makefile already includes
-most of what is needed. If someone is willing to do the work, we will be
-happy to include this in our list of supported platforms and to distribute
-the makefiles.
-
-<h3>Windows driver using Ghostscript as a language monitor.</h3>
-
-<p>
-MS Windows has a "language monitor" capability which would allow Ghostscript
-to be invoked seamlessly to process input files in any language Ghostscript
-could handle (currently PostScript and PDF) and for any printer for which
-Ghostscript had a driver. Doing this properly would require integrating
-Ghostscript with Windows' "Add Printer" dialog, and would also require
-creating a PPD for Ghostscript. <I>Russell Lang's RedMon program provides
-some, but not all, of this capability.</I>
-
-<h3>Netscape browser plug-in.</h3>
-
-<p>
-Currently, Ghostscript can work as a "helper application" for the Netscape
-browser, but not as a plug-in; the latter would integrate it more closely
-with the browser. We aren't sure what doing this would involve; we've also
-heard by rumor that it's already been done.
-
-<h3>Ghostscript as an Active-X COM Object.</h3>
-
-<p>
-In order to integrate Ghostscript into XMetaL and other applications it
-would be convenient for Ghostscript to be distributed as a COM object
-along with the current gswin32.exe, gswin32c.exe and gsdll32.dll files.
-
-<hr>
-
-<h2><a name="Driver_architecture"></a>Driver Architecture</h2>
-
-<h3>Improved multi-threaded rendering support.</h3>
-
-<p>
-Currently, drivers can be written so that converting PostScript to a list of
-graphical objects can run in one thread, and rasterizing the objects can run
-in another thread. However, drivers must be written specially if they are
-going to do this. We would like to change the architecture so that any
-driver can work this way. We would also like to support dual-threaded
-operation for drivers that produce high-level output, such as the PDF
-writer. <I>Doing this would require separating banding from
-the multithreaded logic. Also, currently each thread has its own allocation
-pool: this is unnecessary in the normal case, since Ghostscript now supports
-properly locked access to the C heap, but embedded systems still need to use
-a fixed-size area for the rasterizing thread. With a locked, shared
-allocator, the rasterizing thread could use the full set of band list
-functions; with a fixed-size area and a separate allocator, only a subset is
-available, as is the case now for dual-threaded drivers.
-</I>
-
-<h3>Dynamic run-time loadable devices.</h3>
-
-<p>
-Currently, drivers must be linked into the executable. We would like to be
-able to load drivers dynamically. Doing this requires defining a
-platform-independent API (presumably extending the current gp_* APIs) that
-would work at least on GNU/Linux, vendor Unix, MS Windows, and Macintosh. Unix
-systems should include Sun, HP, AIX, IRIX, DEC; Linux ELF and a.out formats
-should both be supported. <I>Consider the Netscape plug-in
-architecture.</I>
-
-<h3>Moving 'setpagedevice' into C.</h3>
-
-<p>
-The PostScript 'setpagedevice' function implements matching of media and
-page size requests to available media, page orientation, and paper handling
-(duplex, etc.) Currently it is implemented in PostScript code, which means
-it is not available for use with other input languages. (It is available
-for PDF, which Ghostscript implements on top of PostScript, but not for the
-not-yet-freely-available PCL interpreters that use the Ghostscript library,
-or for possible future SVG or similar interpreters). We would like to move
-this function into C. <I>The device driver will be required to
-send page parameters up to PostScript to be stored in a resource. To be
-included in this project are handling policy implementations in the device
-drivers. DeferredMediaSelection should also be implemented.</I>
-
-<h3>Adding 'tee' for output to multiple devices.</h3>
-
-<p>
-In a few cases, it would be desirable to provide a 'tee' capability for
-drivers: specifically, for generating small, low-resolution 'thumbnail'
-images concurrently with other output. <I>Probably the
-simplest way to do this is to generate a band list and then process it
-twice. This is not completely trivial, since the band list does include
-device resolution information and scaling would be required for some
-constructs.</I>
-
-<h3><b><tt>OutputDevice</tt></b> resource category</h3>
-
-<p>
-Each available output device should provide an instance of the
-<b><tt>OutputDevice</tt></b> resource category, which gives the available
-page sizes, resolutions, media classes, process color models, and other
-information about the device. <I>This would replace the current
-non-standard use of a 4-element <b><tt>PageSize</tt></b> in the
-<b><tt>InputAttributes</tt></b> entry of the page device dictionary.</I>
-
-<h3>Removing the limit on the length of OutputFile.</h3>
-
-<p>
-Currently, the maximum length of the <b><tt>OutputFile</tt></b> parameter is
-a compile-time constant, <b><tt>gp_file_name_sizeof</tt></b>. This is
-appropriate for ordinary file names, since this constant is the platform's
-limit on the length of a file name. However, if <b><tt>OutputFile</tt></b>
-is a pipe, the length should not be limited in this way. <I>This is
-probably a small project: it requires allocating the file name dynamically,
-and freeing it in the finalization routine that gets called when a driver
-instance is freed.</I>.
-
-<h2><a name="Specific_drivers"></a>Specific drivers</h2>
-
-<h3>PrintGear and PPA output drivers.</h3>
-
-<p>
-We would like to provide (Adobe) PrintGear and (H-P) PPA output drivers for
-Ghostscript, but the specifications for these protocols are not published.
-If you can provide them to us without violating any agreements, please let
-us know. (Some work has already been done on reverse-engineering these
-protocols, but we don't have references to it.)
-
-<h3>Improve 'pswrite' up to the level of 'pdfwrite'.</h3>
-
-<p>
-We would like to improve the high-level PostScript-writing
-<b><tt>pswrite</tt></b> driver to bring it up to parity with the PDF-writing
-driver (including the many improvements in the latter being implemented in
-Ghostscript 7.xx). Specifically, we want it to write text as text rather
-than bitmaps, and to consistently write images in their original high-level
-form. <I>We have already started to factor out code that
-should be common to these two drivers, specifically for writing embedded
-fonts and compressed data streams.</I>
-
-<p>
-There is one small part of this project that would be especially valuable
-and could be done independently (although it might have to be partly or
-entirely redone later): compressing images. Currently the driver only
-compresses character bitmaps, and doesn't compress other images at all.
-<I>It should use the <b><tt>CCITTFaxEncode</tt></b> filter for 1-bit-deep
-images, and plane-separated <b><tt>LZWEncode</tt></b> compression for color
-images, using the <b><tt>miGIF</tt></b> algorithms that are believed to be
-free of the Welch patent for the latter. When generating LL3 PS, the
-<b><tt>Flate</tt></b> compression will work better than miGIF. It may be
-worth trying several methods on each image and use the one that works best.</I>
-
-<h3>High level graphics and text for PCL 5 and PCL XL drivers.</h3>
-
-<p>
-Currently, the PCL 5 drivers produce only bitmaps; the PCL XL driver
-produces high-level graphics and sometimes high-level images, but low-level
-text. We would like to improve these drivers to produce higher-level,
-smaller output. <I>This was a very low-priority project; it has become more
-important now that H-P's laser printers are shipping with less memory.</I>
-
-<h3>Improved high level GDI driver for Windows.</h3>
-
-<p>
-We would like a "GDI driver" for MS Windows that would implement more
-higher-level constructs (specifically for text). <I> The
-<b><tt>mswin</tt></b> and <b><tt>mswinprn</tt></b> drivers both do some of
-this. Some of the the 'xfont' support code for MS Windows should be useful.
-We were frustrated in the past because the GDI calls for getting font sizes
-and metrics consistently returned incorrect information and provided no way
-to get the correct information; perhaps this has been fixed in 32-bit
-Windows. We believe that H-P, Russell Lang, and perhaps others are working
-in this area, but we can always use more help.</I>
-
-<h3>PDF thumbnail generation.</h3>
-
-<p>
-The PDF writer needs to be able to generate thumbnails (small previews). We
-might do this through the 'tee' capability mentioned above. However, we
-currently prefer the idea of implementing a completely separate program to
-add thumbnails to an arbitrary, existing PDF file: this would allow
-Ghostscript to add thumbnails to PDF files generated by other programs.
-<I>Much of the code needed to do this has already been written
-for Ghostscript's PDF linearizer: see
-<b><tt>lib/pdfwrite.ps</tt></b>. A user has implemented this as well,
-using a separate program that calls Ghostscript: see
-<a href="http://www.uni-giessen.de/~g029/eurotex99/oberdiek/">
-http://www.uni-giessen.de/~g029/eurotex99/oberdiek/</a>.
-</I>
-
-<h3>Consolidate inkjet drivers into a single family.</h3>
-
-<p>
-In addition to factoring out the error diffusion code as described below, we
-would like to see another attempt at reducing the enormous volume of code
-for color inkjet drivers. There are three sets of drivers (gdevcdj.c,
-gdevstc.c, gdevupd.c) with much overlapping functionality. The latter two
-driver families make good attempts at factoring out things like head
-geometry and canned control strings, but we think this problem deserves
-another pass, especially in the hope of consolidating these drivers into a
-single family.
-
-<h3>Download glyph bitmaps (with glyph decaching notification).</h3>
-
-<p>
-See below under "Notification for glyph decaching."
-
-<h3>Preserve compression when writing PDF images.</h3>
-
-<p>
-Currently, all images are decompressed by the interpreter before being
-passed to the graphics library; the PDF writer may then compress them again.
-Ordinarily, this only slows things down a little, but in the case of
-DCT-encoded images that are being DCT-encoded in the output, image
-degradation may occur. Ideally, the implementation should be smart enough
-to not decode and re-encode the image. However, making this work properly
-is difficult. <I>This would probably involve extending the library APIs for
-images so that they could pass a stream, possibly including filters, instead
-of the (fully decoded) data rows.</I>
-
-<hr>
-
-<h2><a name="Graphics_functionality"></a>Graphics functionality</h2>
-
-<h3>Support for 64-bit colors on 64-bit platforms.</h3>
-
-<p>
-Currently, the library supports a maximum of 32 bits of data per pixel; we
-would like to raise this limit to 64 bits on systems where the 'long' data
-type is 64 bits wide. <I>The <b><tt>gx_color_index</tt></b>
-type is already defined as 'long', but there are many places where the type
-<b><tt>bits32</tt></b> is used for pixel values; there is a 32-bit
-stored-image "device", but there is no 64-bit device; a few algorithms and
-tables have knowledge of the 32-bit width built into them, only because the
-C preprocessor doesn't have any kind of loop or repetition
-capability.</I>
-
-<h3>In-RIP trapping.</h3>
-
-<p>
-The PostScript specification includes an option for the interpreter to
-implement trapping (adjustments of object boundaries to prevent visual
-anomalies caused by slight misregistration of different ink layers): we
-would like to implement this. <I>This is a complex and
-difficult area; even many Adobe RIPs don't do it.</I>
-
-<h3>Hook FreeType TrueType library into graphics library.</h3>
-
-<p>
-We would like to provide an option for good integration of the FreeType font
-rasterizer into Ghostscript, since the FreeType code is better than
-Ghostscript's current rasterizers. We understand that some users in Japan
-have done this already, but we don't know if this is a good starting point
-(the only documentation is in Japanese). <I>Their work uses
-Ghostscript's 'xfont' interface, which is how Ghostscript interfaces to
-platform facilities such as the X and MS Windows font capabilities. This is
-a device-level interface and not the best place to do this: we would rather
-have the graphics library interface to FreeType directly.</I>
-
-<h3>ICC profile support for output.</h3>
-
-<p>
-Ghostscript 7.00 and later supports ICCBased color spaces of PDF
-using the icclib package from
-<a href="http://web.access.net.au/argyll/color.html ">
-http://web.access.net.au/argyll/color.html</a>
-but there is no facility to use ICC output (printer) profiles that
-may be embedded in the PDF. Also it would be useful for PostScript
-to be able to directly use a specific Intent from ICC profile to
-convert output colors (as CRD's are now used).
-<I>The primary difficulty is that the graphics library and PostScript
-always use CIE XYZ as the connection space, but ICC profiles may
-use CIELAB as the connection space, requiring conversion for use
-with the graphics library. </I>
-
-<h3>Making halftones into "objects" and adding new types.</h3>
-
-<p>
-Currently, knowledge of the specific data formats and algorithms for
-halftoning permeates too many places in the library. We would like
-halftoning to be more "object oriented" (using virtual procedures) so that
-we could support other halftoning methods such as direct use of threshold
-arrays, or the double-rectangle approach added in newer PostScript versions.
-<I>Threshold arrays take much less space than the current
-representation, generally at the expense of longer rendering time for
-black-and-white images; double-rectangle representation would give us a
-better implementation of AccurateScreens. We might want store both
-threshold arrays and the current representation.</I>
-
-<h3>Factor out error diffusion routines, integrate ETS.</h3>
-
-<p>
-Currently, several different inkjet drivers implement their own, very
-similar but slightly differing error diffusion methods. This has caused
-severe code bloat as well as tempting future driver writers to contribute to
-it further. We want to factor out error diffusion into a common set of
-facilities that drivers can use. <I>We would like to design
-these facilities so that they can easily interface to the Even-Toned
-Screening algorithms from artofcode (Raph Levien), to the extent that these
-will be Open Source.</I>
-
-<h3>Improve, or generalize, linearization for stochastic threshold
-data.</h3>
-
-<p>
-The Ghostscript distribution includes a stochastic threshold array. This
-array has some gamma correction built into it, which works well for some
-output devices and not for others. We would like to provide a version of
-this array without (or with less) gamma correction. <I>We have
-original data available from which this could be done fairly easily.</I>
-
-<h3>Change sampled functions to use new interpreted functions.</h3>
-
-<p>
-The PostScript language defines many functions relevant to graphics
-rendering as being implemented by arbitrary PostScript procedures: transfer
-(gamma correction), black generation, undercolor removal, several stages of
-CIE color space and rendering, and color mapping for Separation and DeviceN
-spaces. Since the graphics library can't call PostScript procedures,
-Ghostscript currently samples these procedures at a fixed number of points
-and interpolates linearly between the samples. As of Ghostscript 6.20, the
-library can interpret a restricted subset of PostScript procedures directly
-(basically those that only use arithmetic and comparisons: no loops,
-sub-procedures, or data structures). Changing the rendering functions to
-use this approach when possible would greatly improve output quality when
-the functions are very non-linear (which we have actually seen in practice).
-<I>This should only be done if the function is, in fact,
-severely non-linear, since interpreting the function definition will almost
-always be much slower than interpolating in the table.</I>
-
-<h3>Add optional cubic interpolation to RenderTable and other table
-lookup.</h3>
-
-<p>
-Currently, if a CIE rendering dictionary uses a lookup table for the final
-step, Ghostscript always interpolates linearly between the entries. Cubic
-interpolation should be supported as an option. A cubic interpolation
-option is also needed for general table-lookup Functions.
-
-<h3>Add better (SVG-like) alpha channel and compositing to library.</h3>
-
-<p>
-Ghostscript has partial support for alpha channel and for alpha and RasterOp
-compositing. There is some architectural support for general compositing,
-but it postdates the RasterOp implementation, and most of the RasterOp code
-doesn't use it. We expect that the more extensive compositing and alpha
-capabilities of SVG will find their way into PDF (and probably PostScript as
-well) in the course of 2000 and 2001, and we will need to implement them.
-
-<hr>
-
-<h2><a name="Performance"></a>Performance</h2>
-
-<h3>Change band list logic to defer halftoning until rendering.</h3>
-
-<p>
-Currently, when Ghostscript uses a band list, it does halftoning before
-banding. It should do halftoning after banding: this produces smaller band
-lists and shifts more work to the rasterizer (which is good because the
-rasterizer can be multi-threaded internally for higher performance on
-multiprocessors: see the next topic.)
-
-<h3>Reduce redundant data for smoothed banded images.</h3>
-
-<p>
-When smoothed ("interpolated") images are written in the band list, extra
-rows must be written above and below each band in order to provide the data
-for interpolation. Currently, the number of such rows is computed very
-conservatively; instead, the final interpolation algorithm should be
-consulted to provide the correct value. <i>This is a small task.</i>
-
-<h3>Multi-threaded rasterizing</h3>
-
-<p>
-For high-resolution devices, rasterization dominates execution time. On
-multiprocessor systems, Ghostscript can do tasks in parallel:
-
-<ul>
-
-<li>Rasterize multiple bands simultaneously;
-
-<li>Rasterize multiple color planes of a single band simultaneously (if a
-planar representation is being used);
-
-<li>For some computation-intensive tasks like smoothing images or filling
-large regions, partition the task (possibly buffering more data to allow
-larger-grain partitioning) and execute several partitions simultaneously.
-
-</ul>
-
-<p>
-We would want these facilities implemented so that no conditional
-compilation was involved: on uniprocessor systems, the locking API would
-simply have a vacuous implementation.
-
-<h3>Notification for glyph decaching.</h3>
-
-<p>
-Currently, drivers can't do a very good job of downloading rendered
-character bitmaps to the device they manage, because they can't find out
-when a bitmap is being deleted from Ghostscript's cache and therefore will
-never be referenced again. Here is a sketch of how we would add this
-capability to the graphics library:
-
-<ul>
-
-<li>The driver would implement the <b><tt>text_begin</tt></b> call, simply
-to get access to a <b><tt>gs_imager_state</tt></b> that references the
-rendered character cache. (The driver could always simply call the default
-implementation of <b><tt>text_begin</tt></b>.)
-
-<li>In the <b><tt>text_begin</tt></b> procedure, the driver would call
-
-<blockquote><pre>
-gs_glyph_decache_register(imager_state, notify_proc, proc_data)
-</pre></blockquote>
-
-<p>
-where <b><tt>proc_data</tt></b> was, or pointed to a structure that
-included, a pointer to the driver.
-
-<li><b><tt>gs_glyph_decache_register</tt></b> would use the general
-notification mechanism defined in <b><tt>gsnotify.h</tt></b> to call
-
-<blockquote><pre>
-notify_proc(proc_data, pchar_data)
-</pre></blockquote>
-
-<p>
-whenever a bitmap was removed from the character cache.
-<b><tt>pchar_data</tt></b> would point to some identification of the
-character; perhaps just the bitmap ID, but possibly a
-<b><tt>gx_cached_bits_common</tt></b> or even a <b><tt>cached_char</tt></b>.
-
-<li>The <b><tt>char_cache</tt></b> structure would be need an additional
-member, a <b><tt>gs_notify_list_t</tt></b>. It would also need to add
-finalization so that when it was freed, it would notify and unregister all
-clients, using <b><tt>gs_notify_all(list, NULL)</tt></b> and then
-<b><tt>gs_notify_release</tt></b>.
-
-</ul>
-
-<p>
-<I>This facility was requested by the Display Ghostscript project, but it
-could also be used to improve the output of the PCL XL driver and possibly
-the X and PCL5 drivers.</I>
-
-<hr>
-
-<h2><a name="Other_functionality"></a>Other functionality</h2>
-
-<h3>OpenStep (Display PostScript + NeXT) extensions to Ghostscript.</h3>
-
-<p>
-There is a project to create a GNU implementation of the OPENStep API, which
-involves extending Ghostscript to provide the full functionality of Adobe's
-Display PostScript system with some of the NeXT extensions. For more
-information, please contact Net-Community &lt;<a
-href="mailto:scottc@net-community.com">scottc@net-community.com</a>&gt;.
-
-<h3>Job Server implementation.</h3>
-
-<p>
-For full Adobe PostScript compatibility, Ghostscript needs a real "job
-server" to encapsulate the execution of PostScript files.
-<I>See the section on "Job Execution Environment" in the PostScript
-Language Reference Manual for details.</I>
-
-<h3>SVG (XML Structured Vector Graphics) interpreter.</h3>
-
-<p>
-Ghostscript could be adapted with some work to read SVG. This would be an
-interesting and challenging project because SVG's graphics model would
-require extending the library (see above). <I>If SVG turns out to be an
-important standard, it is important that there be a good free implementation
-of it.</I>
-
-<h3><b><tt>%font%</tt></b> and other IODevices.</h3>
-
-<p>
-Currently, the <b><tt>%font%</tt></b> IODevice is not implemented. We would
-like to see this implemented using a general framework for implementing
-IODevices (%xxxx%) entirely in PostScript, in an "object oriented" manner
-very similiar to the way Resource categories are implemented. An IODevice
-would be implemented as a dictionary with the following keys, whose values
-would be procedures that implemented the corresponding operation:
-
-<blockquote><pre>
-/File
-/DeleteFile
-/RenameFile
-/Status
-/FileNameForAll
-/GetDevParams
-/PutDevParams
-</pre></blockquote>
-
-<p>
-There would only be global IODevices, no local ones; the dictionary keeping
-track of them would be stored in global VM.
-
-<p>
-<I>This is an obscure feature that matters only because some PostScript code
-uses <b><tt>filenameforall</tt></b> with this IODevice, rather than
-<b><tt>filenameforall</tt></b> with the <b><tt>/Font</tt></b> Resource
-category, to enumerate available fonts.</I>
-
-<h3>Repairing damaged or EOL-converted PDF files.</h3>
-
-<p>
-Adobe Acrobat Reader can scan a PDF file that has had its end-of-lines
-converted by careless users transferring the file across operating systems
-as text rather than binary across, and reconstruct the cross-reference table
-which the PDF interpreter requires. This only works if the file has no
-binary data in it, which with PDF 1.3 is rarely the case. However, users
-occasionally receive PDF files that have been damaged in this way, and it
-might be useful to have a program that can repair them. <I>We think this
-should probably be done as a separate program, possibly in PostScript,
-similar to Ghostscript's PDF linearizer.</I>
-
-<h2><a name="Other_implementation"></a>Implementation improvements</h2>
-
-<h3>Fully re-entrant code.</h3>
-
-<p>
-Currently, neither the PostScript interpreter nor the graphics library is
-fully re-entrant (no writable globals). Making them fully re-entrant would
-make Ghostscript usable in multi-threaded environments, and more easily
-usable in embedded environments. Note that this is necessary, but far from
-sufficient, for Ghostscript to allow simultaneous execution of a single
-Ghostscript interpreter instance by multiple threads: that is probably
-permanently out of the question. <I>Almost all drivers, including all of
-the drivers in devs.mak which are maintained as part of the main Ghostscript
-code, are already fully re-entrant; making the remaining ones re-entrant
-should really be up to the driver author.</I>
-
-<h3>Ghostscript has no %ram% device.</h3>
-
-The %ram% device is documented in PS Supplement 3010 and 3011 dated August 30, 1999.
-This is probably not a major impediment to portability, but it would be handy.
-<p><I>
-On Unix, the suggested implementation would be to create a subdirectory
-of the temporary directory (usually /tmp), with the name chosen and the
-directory created in such a way as to avoid /tmp races and similar
-problems. Ghostscript should delete the subdirectory when it exits.
-</I>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Ps-style.htm b/Master/xemtex/doc/ghostscript/Ps-style.htm
deleted file mode 100644
index 5cf2e643113..00000000000
--- a/Master/xemtex/doc/ghostscript/Ps-style.htm
+++ /dev/null
@@ -1,514 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript PostScript coding guidelines</title>
-<!-- $Id: Ps-style.htm,v 1.13.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Ghostscript PostScript coding guidelines</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Summary">Summary of the coding guidelines</a>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#PS_features">Use of PostScript language features</a>
-<ul>
-<li><a href="#Restrictions">Restrictions</a>
-<li><a href="#Protection">Protection</a>
-<li><a href="#Standard_constructions">Standard constructions</a>
-</ul>
-<li><a href="#File_structuring">File structuring</a>
-<li><a href="#Commenting">Commenting</a>
-<li><a href="#Formatting">Formatting</a>
-<ul>
-<li><a href="#Indentation">Indentation</a>
-<li><a href="#Spaces">Spaces</a>
-</ul>
-<li><a href="#Naming">Naming</a>
-<li><a href="#Miscellany">Miscellany</a>
-<ul>
-<li><a href="#Non_standard_operators">Some useful non-standard operators</a>
-<li><a href="#Useful_procedures">Some useful procedures</a>
-<li><a href="#Other">Other</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Summary"></a>Summary of the coding guidelines</h2>
-
-<ul>
-
-<li>Don't store into literals.
-
-<li>Use <b><tt>loop</tt></b> to create a block with multiple exits.
-
-<li>Use a dictionary or an array for multi-way switches.
-
-<li>Start every file with a copyright notice, the file name, and a one-line
-summary.
-
-<li>Comment every procedure with the arguments and result, and with the
-function of the procedure unless it's obvious.
-
-<li>Comment the stack contents ad lib, and particularly at the beginning of
-every loop body.
-
-<li>Indent every 2 spaces.
-
-<li>Always put { at the end of a line, and } at the beginning of a line,
-unless the contents are very short.
-
-<li>Always put spaces between adjacent tokens.
-
-<li>Use only lower-case letters and digits for names, or Vienna style names,
-except for an initial "." for names only used within a single file.
-
-<li>Don't allocate objects in heavily used code.
-
-<li>Consider factoring out code into a procedure if it is used more than
-once.
-
-</ul>
-
-<hr>
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-The many rules that Ghostscript's code follows almost everywhere are meant
-to produce code that is easy to read. It's important to observe them as
-much as possible in order to maintain a consistent style, but if you find a
-rule getting in your way or producing ugly-looking results once in a while,
-it's OK to break it.
-
-<hr>
-
-<h2><a name="PS_features"></a>Use of PostScript language features</h2>
-
-<h3><a name="Restrictions"></a>Restrictions</h3>
-
-<p>
-If you need to store a value temporarily, don't write into a literal in the
-code, as in this fragment to show a character given the character code:
-
-<blockquote><pre>
-( ) dup 0 4 -1 roll put show
-</pre></blockquote>
-
-<p>
-Instead, allocate storage for it:
-
-<blockquote><pre>
-1 string dup 0 4 -1 roll put show
-</pre></blockquote>
-
-<h3><a name="Protection"></a>Protection</h3>
-
-<p>
-If an object is never supposed to change, use <b><tt>readonly</tt></b> to
-make it read-only. This applies especially to permanently allocated objects
-such as constant strings or dictionaries.
-
-<p>
-During initialization, and occasionally afterwards, it may be necessary to
-store into a read-only dictionary, or to store a pointer to a dictionary in
-local VM into a dictionary in global VM. The operators
-<b><tt>.forceput</tt></b> and <b><tt>.forceundef</tt></b> are available for
-this purpose. To make these operators inaccessible to ordinary programs,
-they are removed from <b><tt>systemdict</tt></b> at the end of
-initialization: system code that uses them should always use
-<b><tt>bind</tt></b> and <b><tt>odef</tt></b> (or
-<b><tt>executeonly</tt></b>) to make uses of them inaccessible as well.
-
-<h3><a name="Standard_constructions"></a>Standard constructions</h3>
-
-<h4>Multi-way conditionals</h4>
-
-<p>
-If you write a block of code with more than about 3 exit points, the usual
-way to do it would be like this:
-
-<blockquote><pre>
-{
- ... {
- ...1
- } {
- ... {
- ...2
- } {
- ... {
- ...3
- } {
- ...4
- } ifelse
- } ifelse
- } ifelse
-}
-</pre></blockquote>
-
-<p>
-However, this causes the 4 logically somewhat parallel code blocks to be
-indented differently, and as the indentation increases, it becomes harder to
-see the structure visually. As an alternative, you can do it this way:
-
-<blockquote><pre>
-{ % The loop doesn't actually loop: it just provides a common exit.
- ... {
- ...1
- exit
- } if
- ... {
- ...2
- exit
- } if
- ... {
- ...3
- exit
- } if
- ...4
- exit
-} loop
-</pre></blockquote>
-
-<p>
-Don't forget the final exit, to prevent the loop from actually looping.
-
-<h4>Switches</h4>
-
-<p>
-Use a dictionary or an array of procedures to implement a 'switch', rather
-than a series of conditionals, if there are more than about 3 cases. For
-example, rather than:
-
-<blockquote><pre>
-dup /a eq {
- pop ...a
-} {
- dup /b eq {
- pop ...b
- } {
- dup /c eq {
- pop ...c
- } {
- ...x
- } ifelse
- } ifelse
-} ifelse
-</pre></blockquote>
-
-<p>
-(or using the loop/exit construct suggested above), consider:
-
-<blockquote><pre>
-/xyzdict mark
- /a {...a} bind
- /b {...b} bind
- /c {...c} bind
-.dicttomark readonly def
-...
-//xyzdict 1 index .knownget {
- exch pop exec
-} {
- ...x
-} ifelse
-</pre></blockquote>
-
-<hr>
-
-<h2><a name="File_structuring"></a>File structuring</h2>
-
-<p>
-Every code file should start with comments containing
-
-<ol>
-<li>a copyright notice;
-<li>the name of the file in the form of an RCS Id:
-
-<blockquote><pre>
-% Id$: filename.ps $
-</pre></blockquote>
-
-<li>a very brief summary (preferably only one line) of what the file
-contains.
-</ol>
-
-<p>
-If you create a file by copying the beginning of another file, be sure to
-update the copyright year and change the file name.
-
-<hr>
-
-<h2><a name="Commenting"></a>Commenting</h2>
-
-<p>
-If a file has well-defined functional sections, put a comment at the
-beginning of each section to describe its purpose or function.
-
-<p>
-Put a comment before every procedure to describe what the procedure does,
-unless it's obvious or the procedure's function is defined by the PLRM. In
-case of doubt, don't assume it's obvious. If the procedure may execute a
-deliberate 'stop' or 'exit' not enclosed in 'stopped' or a loop
-respectively, that should be mentioned. However, information about the
-arguments and results should go in the argument and result comment
-(described just below) if possible, not the functional comment.
-
-<p>
-Put a comment on every procedure to describe the arguments and results:
-
-<blockquote><pre>
-/hypot { % &lt;num1&gt; &lt;num2&gt; hypot &lt;real&gt;
- dup mul exch dup mul add sqrt
-} def
-</pre></blockquote>
-
-<p>
-There is another commenting style that some people prefer to the above:
-
-<blockquote><pre>
-/hypot { % num1 num2 --> realnum
- dup mul exch dup mul add sqrt
-} def
-</pre></blockquote>
-
-<p>
-We have adopted the first style for consistency with Adobe's documentation,
-but we recognize that there are technical arguments for and against both
-styles, and might consider switching some time in the future. If you have
-strong feelings either way, please make your opinion known to
-<b><tt>gs-devel@ghostscript.com</tt></b>.
-
-<p>
-Put comments describing the stack contents wherever you think they will be
-helpful; put such a comment at the beginning of every loop body unless you
-have a good reason not to.
-
-<p>
-When you change a piece of code, do <em>not</em> include a comment with your
-name or initials. Also, do <em>not</em> retain the old code in a comment,
-unless you consider it essential to explain something about the new code; in
-that case, retain as little as possible. (CVS logs do both of these things
-better than manual editing.) However, if you make major changes in a
-procedure or a file, you may put your initials, the date, and a brief
-comment at the head of the procedure or file respectively.
-
-<hr>
-
-<h2><a name="Formatting"></a>Formatting</h2>
-
-<h3><a name="Indentation"></a>Indentation</h3>
-
-<p>
-Indent 2 spaces per indentation level. You may use tabs at the left margin
-for indentation, with 1 tab = 8 spaces, but you should not use tabs anywhere
-else, except to place comments.
-
-<p>
-Indent { } constructs like this:
-
-<blockquote><pre>
-... {
- ...
-} {
- ...
-} ...
-</pre></blockquote>
-
-<p>
-If the body of a conditional or loop is no more than about 20 characters,
-you can put the entire construct on a single line if you want:
-
-<blockquote><pre>
-... { ... } if
-</pre></blockquote>
-
-rather than
-
-<blockquote><pre>
-... {
- ...
-} if
-</pre></blockquote>
-
-<p>
-There is another indentation style that many people prefer to the above:
-
-<blockquote><pre>
-...
-{ ...
-}
-{ ...
-} ...
-</pre></blockquote>
-
-<p>
-We have adopted the first style for consistency with our C code, but we
-recognize that there are technical arguments for and against both styles,
-and might consider switching some time in the future. If you have strong
-feelings either way, please make your opinion known to
-<b><tt>gs-devel@ghostscript.com</tt></b>.
-
-<h3><a name="Spaces"></a>Spaces</h3>
-
-<p>
-Always put spaces between two adjacent tokens, even if this isn't strictly
-required. E.g.,
-
-<blockquote><pre>
-/Halftone /Category findresource
-</pre></blockquote>
-
-<p>
-not
-
-<blockquote><pre>
-/Halftone/Category findresource
-</pre></blockquote>
-
-<hr>
-
-<h2><a name="Naming"></a>Naming</h2>
-
-<p>
-All names should consist only of letters and digits, possibly with an
-initial ".", except for names drawn from the PostScript or PDF reference
-manual, which must be capitalized as in the manual. In general, an initial
-"." should be used for those and only those names that are not defined in a
-private dictionary but that are meant to be used only in the file where they
-are defined.
-
-<p>
-For edits to existing code, names made up of multiple words should not use
-any punctuation, or capitalization, to separate the words, again except for
-names that must match a specification. For new code, you may use this
-convention, or you may use the "Vienna" convention of capitalizing the first
-letter of words, e.g., <b><tt>readSubrs</tt></b> rather than
-<b><tt>readsubrs</tt></b>. If you use the Vienna convention, function names
-should start with an upper case letter, variable names with a lower case
-letter. Using the first letter of a variable name to indicate the
-variable's type is optional, but if you do it, you should follow existing
-codified usage (****** WE NEED A REFERENCE FOR THIS ******).
-
-<hr>
-
-<h2><a name="Miscellany"></a>Miscellany</h2>
-
-<h3><a name="Non_standard_operators"></a>Some useful non-standard
-operators</h3>
-
-<dl>
-
-<dt><b><tt>&lt;obj1&gt; &lt;obj2&gt; ... &lt;objn&gt; &lt;n&gt; .execn ...</tt></b>
-<dd>This executes <b><tt>obj1</tt></b> through <b><tt>objn</tt></b> in that
-order, essentially equivalent to
-
-<blockquote><pre>
-&lt;obj1&gt; &lt;obj2&gt; ... &lt;objn&gt; &lt;n&gt; array astore {exec} forall
-</pre></blockquote>
-
-<p>
-except that it doesn't actually create the array.
-
-<dt><b><tt>&lt;dict&gt; &lt;key&gt; <b>.knownget</b> &lt;value&gt; true</tt></b>
-<dt><b><tt>&lt;dict&gt; &lt;key&gt; <b>.knownget</b> false</tt></b>
-
-<dd>This combines <b><tt>known</tt></b> and <b><tt>get</tt></b> in the
-obvious way.
-
-<dt><b><tt>&lt;name&gt; &lt;proc&gt; odef -</tt></b>
-
-<dd>This defines <b><tt>name</tt></b> as a "pseudo-operator". The value of
-<b><tt>name</tt></b> will be executable, will have type
-<b><tt>operatortype</tt></b>, and will be executed if it appears directly in
-the body of a procedure (like an operator, unlike a procedure), but what
-will actually be executed will be <b><tt>proc</tt></b>. In addition, if the
-execution of <b><tt>proc</tt></b> is ended prematurely (by
-<b><tt>stop</tt></b>, including the <b><tt>stop</tt></b> that is normally
-executed when an error occurs, or <b><tt>exit</tt></b>) and the operand and
-dictionary stacks are at least as deep as they were when the "operator" was
-invoked, the stacks will be cut back to their original depths before the
-error is processed. Thus, if pseudo-operator procedures are careful not to
-remove any of their operands until they reach a point in execution beyond
-which they cannot possibly cause an error, they will behave just like
-operators in that the stacks will appear to be unchanged if an error occurs.
-
-</dl>
-
-<h3><a name="Useful_procedures"></a>Some useful procedures</h3>
-
-<dl>
-
-<dt><b><tt>&lt;object&gt; &lt;errorname&gt; signalerror -</tt></b>
-
-<dd>Signal an error with the given name and the given "current object".
-This does exactly what the interpreter does when an error occurs.
-
-</dl>
-
-<h3><a name="Other"></a>Other</h3>
-
-<p>
-If you can avoid it, don't allocate objects (strings, arrays, dictionaries,
-gstates, etc.) in commonly used operators or procedures: these will need to
-be garbage collected later, slowing down execution. Instead, keep values on
-the stack, if you can. The <b><tt>.execn</tt></b> operator discussed above
-may be helpful in doing this.
-
-<p>
-If you find yourself writing the same stretch of code (more than about half
-a dozen tokens) more than once, ask yourself whether it performs a function
-that could be made into a procedure.
-
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<small>
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-</small>
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Ps2epsi.htm b/Master/xemtex/doc/ghostscript/Ps2epsi.htm
deleted file mode 100644
index 3656b722a08..00000000000
--- a/Master/xemtex/doc/ghostscript/Ps2epsi.htm
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Convert PostScript to Encapsulated PostScript Interchange format</title>
-<!-- $Id: Ps2epsi.htm,v 1.15.2.12.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: ps2epsi.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Convert PostScript to Encapsulated PostScript Interchange
-format</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Overview">Overview</a>
-<li><a href="#Usage">Usage</a>
-<ul>
-<li><a href="#Unix_usage">Unix</a>
-</ul>
-<li><a href="#Limitations">Limitations</a>
-<li><a href="#Files">Files</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-The information in this document was contributed by George Cameron
-&lt;<a href="mailto:george@bio-medical-physics.aberdeen.ac.uk">george@bio-medical-physics.aberdeen.ac.uk</a>&gt;;
-please direct to him any questions about it. Because the software
-described here is no longer being maintained, this document may be
-obsolete, or inconsistent with <b><tt>ps2epsi.1</tt></b>.
-
-<p>
-For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Overview"></a>Overview</h2>
-
-<p>
-<b><tt>ps2epsi</tt></b> is a utility based on Ghostscript, which takes as
-input a PostScript file and generates as output a new file which conforms
-to Adobe's Encapsulated PostScript Interchange (EPSI) format, a special
-form of
-<a href="http://partners.adobe.com/asn/developer/pdfs/tn/5002.EPSF_Spec.pdf"
-class="offsite">Encapsulated PostScript</a>
-(EPS) which adds to the beginning of the file, as PostScript comments, a
-low-resolution monochrome bitmap image of the final displayed page.
-Programs which understand EPSI can use this bitmap as a preview on screen
-of the full PostScript page. The displayed quality is often not very good,
-but the final printed version uses the "real" PostScript, and thus has the
-normal full PostScript quality.
-
-<hr>
-
-<h2><a name="Usage"></a>Usage</h2>
-
-<h3><a name="Unix_usage"></a>Unix</h3>
-
-<p>
-Using the supplied shell script <b><tt>ps2epsi</tt></b>, the command is
-
-<blockquote>
-<b><tt>ps2epsi</tt></b> <b><em>infile.ps</em></b> <b><em>[outfile.epsi]</em></b>
-</blockquote>
-
-<p>
-where <b><em>infile.ps</em></b> is the input file and
-<b><em>outfile.epsi</em></b> is the output EPSI file to be created. If the
-output filename is omitted, <b><tt>ps2epsi</tt></b> generates one from the
-input filename; and any standard extension (<b><tt>.ps</tt></b>,
-<b><tt>.cps</tt></b>, <b><tt>.eps</tt></b> or <b><tt>.epsf</tt></b>) of the
-input file is replaced in the output file with the extension
-<b><tt>.epsi</tt></b>.
-
-<hr>
-
-<h2><a name="Limitations"></a>Limitations</h2>
-
-<p>
-Not all PostScript files can be encapsulated, because there are
-restrictions in what is permitted in a PostScript file for it to be
-properly encapsulated. <b><tt>ps2epsi</tt></b> does a little extra work to
-try to help encapsulation, and it automatically calculates the bounding box
-required for all encapsulated PostScript files, so most of the time it does
-a pretty good job. There are certain to be cases, however, when
-encapsulation fails because of the nature of the original PostScript file.
-
-<hr>
-
-<h2><a name="Files"></a>Files</h2>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1"><b><tt>ps2epsi</tt></b> files</font><hr>
-<tr valign=bottom>
- <th align=left>File
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Contents
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>Ps2epsi.htm</tt></b>
- <td>&nbsp;
- <td>This document
-<tr valign=top> <td><b><tt>ps2epsi</tt></b>
- <td>&nbsp;
- <td>Unix shell script
-<tr valign=top> <td><b><tt>ps2epsi.ps</tt></b>
- <td>&nbsp;
- <td>Ghostscript program which does the work
-</table></blockquote>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-
-<hr>
-
-<p>
-<small>Copyright &copy; 1998, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Ps2pdf.htm b/Master/xemtex/doc/ghostscript/Ps2pdf.htm
deleted file mode 100644
index 6d369674969..00000000000
--- a/Master/xemtex/doc/ghostscript/Ps2pdf.htm
+++ /dev/null
@@ -1,502 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>ps2pdf: PostScript-to-PDF converter</title>
-<!-- $Id: Ps2pdf.htm,v 1.32.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: ps2pdf.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1><tt>ps2pdf</tt>: PostScript-to-PDF converter</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Overview">Overview</a>
-<li><a href="#Usage">Usage</a>
-<li><a href="#Options">Options</a>
-<li><a href="#Limitations">Limitations</a>
-<li><a href="#Problems">Known problems</a>
-<li><a href="#Ps2pdf_vs_AD">Comparison of <b><tt>ps2pdf</tt></b> and Acrobat Distiller</a>
-<li><a href="#Acknowledgments">Acknowledgments</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Overview"></a>Overview</h2>
-
-<b><tt>ps2pdf</tt></b> is a work-alike for nearly all the functionality (but
-not the user interface) of Adobe's Acrobat<small><sup>TM</sup></small>
-Distiller<small><sup>TM</sup></small> product: it converts PostScript files
-to Portable Document Format (PDF) files.
-
-<p>
-<b><tt>ps2pdf</tt></b> is implemented as a very small command script (batch
-file) that invokes Ghostscript, selecting a special "output device" called
-<b><tt>pdfwrite</tt></b>. In order to use <b><tt>ps2pdf</tt></b>, the
-<b><tt>pdfwrite</tt></b> device must be included in the makefile when
-Ghostscript was compiled; see the <a
-href="Make.htm#Features_and_devices">documentation on building
-Ghostscript</a> for details: this is currently the case on all platforms, in
-Ghostscript as we distribute it.
-
-<hr>
-
-<h2><a name="Usage"></a>Usage</h2>
-
-<p>
-The usage for <b><tt>ps2pdf</tt></b> is
-
-<blockquote><b><tt>
-ps2pdf</tt></b> <em>[options] input.[e]ps output.pdf</em>
-</blockquote>
-
-<p>
-or, on Unix systems and some versions of Windows NT and OS/2
-
-<blockquote><b><tt>
-ps2pdf</tt></b> <em>input.[e]ps</em>
-</blockquote>
-
-<p>
-which is equivalent to
-
-<blockquote><b><tt>
-ps2pdf</tt></b> <em>input.[e]ps input.pdf</em>
-</blockquote>
-
-<p>
-There are actually several different <b><tt>ps2pdf</tt></b><em>*</em> scripts:
-the name <b><tt>ps2pdf</tt></b> above refers to any of them.
-
-<ul>
-
-<li><b><tt>ps2pdf12</tt></b> will always produce PDF 1.2 output (Acrobat
-3-and-later compatible).
-
-<li><b><tt>ps2pdf13</tt></b> will always produce PDF 1.3 output (Acrobat
-4-and-later compatible).
-
-<li><b><tt>ps2pdf14</tt></b> will always produce PDF 1.4 output (Acrobat
-5-and-later compatible).
-
-<li><b><tt>ps2pdf</tt></b> per se currently produces PDF 1.2 output (Acrobat
-3-and-later compatible). However, this may change in the future. If you
-care about the compatibility level of the output, use
-<b><tt>ps2pdf12</tt></b>, <b><tt>ps2pdf13</tt></b>, or
-<b><tt>ps2pdf14</tt></b>, or use the
-<b><tt>-dCompatibilityLevel=</tt></b><em>1.x</em> switch in the command
-line.
-
-</ul>
-
-<p>
-All of these scripts actually call a script named <b><tt>ps2pdfwr</tt></b>
-or <b><tt>ps2pdfxx</tt></b>. The Unix <b><tt>ps2pdfwr</tt></b> script
-assumes that the Ghostscript executable is named <b><tt>gs</tt></b>; it is
-unlikely that you will need to change this. The DOS and MS Windows
-<b><tt>ps2pdfxx.bat</tt></b> script uses the value of the
-<b><tt>GSC</tt></b> environment variable, if defined, as the name of the
-executable; otherwise the script assumes the executable is named
-<b><tt>gswin32c</tt></b>. So in these environments, if the executable has a
-different name, you must set <b><tt>GSC</tt></b> to the name of the
-executable.
-
-<hr>
-
-<h2><a name="Options"></a>Options</h2>
-
-<p>
-The <em>options</em> in the command line may include any switches that may
-be used with Ghostscript's PostScript and PDF interpreter (see <a
-href="Use.htm#Switches">here</a> for a complete list), although almost none
-of them are useful with <b><tt>ps2pdf</tt></b>. The following may be
-useful:
-
-<dl>
-
-<dt><b><tt>-r</tt></b><em>resolution</em>
-<dd>Sets the resolution for pattern fills and for fonts that must be
-converted to bitmaps.
-
-<dt><b><tt>-dProcessColorModel=</tt></b><em>device_color_space</em> <dd>Sets
-the color space to be used for device-dependent colors in the
-output. <em>device_color_space</em> may be <b><tt>/DeviceGray</tt></b>,
-<b><tt>/DeviceRGB</tt></b>, or <b><tt>/DeviceCMYK</tt></b>; the default
-value is <b><tt>/DeviceRGB</tt></b>.
-
-</dl>
-
-<p>
-More importantly, <em>options</em> may include
-<b><tt>-d</tt></b><em>parameter</em>=<em>value</em> or
-<b><tt>-s</tt></b><em>parameter</em>=<em>string</em> switches for setting
-"distiller parameters", Adobe's documented parameters for controlling the
-conversion process. The PostScript <b><tt>setdistillerparams</tt></b> and
-<b><tt>currentdistillerparams</tt></b> operators are also recognized when
-running <b><tt>ps2pdf</tt></b>, and provide an equivalent way to set these
-parameters from within the PostScript input file.
-
-<p>
-<b><tt>ps2pdf</tt></b> also recognizes the following switches:
-
-<dl>
-<dt><b><tt>-dPDFSETTINGS=</tt></b><em>configuration</em>
-<dd>Presets the "distiller parameters" to one of four predefined settings:
-
-<ul>
-
-<li><b><tt>/screen</tt></b> selects low-resolution output similar to the
-Acrobat Distiller "Screen Optimized" setting.
-
-<li><b><tt>/printer</tt></b> selects output similar to the Acrobat Distiller
-"Print Optimized" setting.
-
-<li><b><tt>/prepress</tt></b> selects output similar to Acrobat Distiller
-"Prepress Optimized" setting.
-
-<li><b><tt>/default</tt></b> selects output intended to be useful across a
-wide variety of uses, possibly at the expense of a larger output file.
-
-</ul>
-
-</dl>
-
-<p>
-<b><tt>ps2pdf</tt></b> recognizes all of the Acrobat Distiller 4 parameters
-documented in
-<a href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/distparm.pdf">
-Adobe Technical Note #5151</a>. Cells in the table containing '=' mean that
-the value of the parameter is the same as in the "default" column.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=bottom>
- <th align=left>Parameter name
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Notes
- <td>&nbsp;&nbsp;
- <th align=left>default
- <td>&nbsp;&nbsp;
- <th align=left>screen
- <td>&nbsp;&nbsp;
- <th align=left>printer
- <td>&nbsp;&nbsp;
- <th align=left>prepress
-<tr> <td colspan=11><hr>
-<tr valign=top><td><b><tt>ASCII85EncodePages</tt></b><td><td><td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AlwaysEmbed</tt></b><td><td><td><td>[]<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AntiAliasColorImages</tt></b><td><td>(0)<td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AntiAliasGrayImages</tt></b><td><td>(0)<td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AntiAliasMonoImages</tt></b><td><td>(0)<td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AutoFilterColorImages</tt></b><td><td>(1)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AutoFilterGrayImages</tt></b><td><td>(1)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AutoPositionEPSFiles</tt></b><td><td>(0)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>AutoRotatePages</tt></b><td><td><td><td>/PageByPage<td><td>/PageByPage<td><td>/None<td><td>/None
-<tr valign=top><td><b><tt>Binding</tt></b><td><td>(0)<td><td>/Left<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>CalCMYKProfile</tt></b><td><td>(0)<td><td>()<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>CalGrayProfile</tt></b><td><td>(0)<td><td>()<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>CalRGBProfile</tt></b><td><td>(0)<td><td>()<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>CannotEmbedFontPolicy</tt></b><td><td>(0)<td><td>/Warning<td><td>/Warning<td><td>/Warning<td><td>/Error
-<tr valign=top><td><b><tt>ColorACSImageDict</tt></b><td><td><td><td>(note 7)<td><td>(note 7)<td><td>(note 8)<td><td>(note 9)
-<tr valign=top><td><b><tt>ColorConversionStrategy</tt></b><td><td>(0,6)<td><td>/LeaveColorUnchanged<td><td>/sRGB<td><td>/UseDeviceIndependentColor<td><td>/LeaveColorUnchanged
-<tr valign=top><td><b><tt>ColorImageDepth</tt></b><td><td><td><td>-1<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ColorImageDict</tt></b><td><td><td><td>(note 7)<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ColorImageFilter</tt></b><td><td><td><td>/DCTEncode<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ColorImageDownsampleThreshold</tt></b><td><td><td><td>1.5<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ColorImageDownsampleType</tt></b><td><td>(3)<td><td>/Subsample<td><td>/Average<td><td>/Bicubic<td><td>/Bicubic
-<tr valign=top><td><b><tt>ColorImageResolution</tt></b><td><td><td><td>72<td><td>72<td><td>300<td><td>300
-<tr valign=top><td><b><tt>CompatibilityLevel</tt></b><td><td><td><td>1.3<td><td>1.2<td><td>1.3<td><td>1.3
-<tr valign=top><td><b><tt>CompressPages</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ConvertCMYKImagesToRGB</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ConvertImagesToIndexed</tt></b><td><td>(0)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>CoreDistVersion</tt></b><td><td><td><td>4000<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>CreateJobTicket</tt></b><td><td>(0)<td><td>false<td><td>false<td><td>true<td><td>true
-<tr valign=top><td><b><tt>DefaultRenderingIntent</tt></b><td><td><td><td>/Default<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>DetectBlends</tt></b><td><td>(0)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>DoThumbnails</tt></b><td><td>(0)<td><td>false<td><td>false<td><td>false<td><td>true
-<tr valign=top><td><b><tt>DownsampleColorImages</tt></b><td><td><td><td>false<td><td>true<td><td>false<td><td>false
-<tr valign=top><td><b><tt>DownsampleGrayImages</tt></b><td><td><td><td>false<td><td>true<td><td>false<td><td>false
-<tr valign=top><td><b><tt>DownsampleMonoImages</tt></b><td><td><td><td>false<td><td>true<td><td>false<td><td>false
-<tr valign=top><td><b><tt>EmbedAllFonts</tt></b><td><td><td><td>true<td><td>false<td><td>true<td><td>true
-<tr valign=top><td><b><tt>EmitDSCWarnings</tt></b><td><td>(0)<td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>EncodeColorImages</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>EncodeGrayImages</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>EncodeMonoImages</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>EndPage</tt></b><td><td>(0)<td><td>-1<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>GrayACSImageDict</tt></b><td><td><td><td>(note 7)<td><td>(note 7)<td><td>(note 8)<td><td>=
-<tr valign=top><td><b><tt>GrayImageDepth</tt></b><td><td><td><td>-1<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>GrayImageDict</tt></b><td><td><td><td>(note 7)<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>GrayImageDownsampleThreshold</tt></b><td><td><td><td>1.5<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>GrayImageDownsampleType</tt></b><td><td>(3)<td><td>/Subsample<td><td>/Average<td><td>/Bicubic<td><td>/Bicubic
-<tr valign=top><td><b><tt>GrayImageFilter</tt></b><td><td><td><td>/DCTEncode<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>GrayImageResolution</tt></b><td><td><td><td>72<td><td>72<td><td>300<td><td>300
-<tr valign=top><td><b><tt>ImageMemory</tt></b><td><td>(0)<td><td>500000<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>LockDistillerParams</tt></b><td><td><td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>LZWEncodePages</tt></b><td><td>(2)<td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>MaxSubsetPct</tt></b><td><td><td><td>100<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>MonoImageDepth</tt></b><td><td><td><td>-1<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>MonoImageDict</tt></b><td><td><td><td><<K -1>><td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>MonoImageDownsampleThreshold</tt></b><td><td><td><td>1.5<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>MonoImageDownsampleType</tt></b><td><td><td><td>/Subsample<td><td>/Average<td><td>/Bicubic<td><td>/Bicubic
-<tr valign=top><td><b><tt>MonoImageFilter</tt></b><td><td><td><td>/CCITTFaxEncode<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>MonoImageResolution</tt></b><td><td><td><td>300<td><td>300<td><td>1200<td><td>1200
-<tr valign=top><td><b><tt>NeverEmbed</tt></b><td><td><td><td>[]<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>OPM</tt></b><td><td><td><td>1<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>Optimize</tt></b><td><td>(0,5)<td><td>false<td><td>true<td><td>true<td><td>true
-<tr valign=top><td><b><tt>ParseDSCComments</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>ParseDSCCommentsForDocInfo</tt></b><td><td><td><td>true<td><td>false<td><td>true<td><td>true
-<tr valign=top><td><b><tt>PreserveCopyPage</tt></b><td><td>(0)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>PreserveEPSInfo</tt></b><td><td>(0)<td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>PreserveHalftoneInfo</tt></b><td><td><td><td>false<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>PreserveOPIComments</tt></b><td><td>(0)<td><td>false<td><td>false<td><td>true<td><td>true
-<tr valign=top><td><b><tt>PreserveOverprintSettings</tt></b><td><td><td><td>false<td><td>false<td><td>true<td><td>true
-<tr valign=top><td><b><tt>sRGBProfile</tt></b><td><td>(0)<td><td>()<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>StartPage</tt></b><td><td>(0)<td><td>1<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>SubsetFonts</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>TransferFunctionInfo</tt></b><td><td>(4)<td><td>/Preserve<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>UCRandBGInfo</tt></b><td><td><td><td>/Remove<td><td>/Remove<td><td>/Preserve<td><td>/Preserve
-<tr valign=top><td><b><tt>UseFlateCompression</tt></b><td><td><td><td>true<td><td>=<td><td>=<td><td>=
-<tr valign=top><td><b><tt>UsePrologue</tt></b><td><td>(0)<td><td>false<td><td>=<td><td>=<td><td>=
-</table></blockquote>
-
-<p>
-(note 0) This parameter can be set and queried, but currently has no effect.
-
-<p>
-(note 1) <b><tt>AutoFilterxxxImages</tt></b> doesn't examine the image to
-decide between JPEG and LZW or Flate compression: it uses JPEG compression
-if the image has 8 bits per component and does not use an Indexed color
-space, and LZW or Flate compression otherwise.
-
-<p>
-(note 2) Because of Unisys's threats regarding the Welch patent,
-<b><tt>ps2pdf</tt></b> cannot actually use LZW compression: instead, it
-treats all requests for LZW compression as calling for Flate compression if
-<b><tt>UseFlateCompression</tt></b> is true and
-<b><tt>CompatibilityLevel</tt></b> &gt;= 1.2, and ignores them otherwise.
-
-<p>
-(note 3) The <b><tt>xxxDownsampleType</tt></b> parameters can also have the
-value /Bicubic (a Distiller 4 feature), which is currently treated as
-equivalent to /Average.
-
-<p>
-(note 4) Currently, the transfer function is always applied. If the
-corresponding parameter is set to <b><tt>/Preserve</tt></b>, the function
-setting is also copied into the PDF file.
-
-<p>
-(note 5) Optimization (linearization) is implemented with a separate
-program, <b><tt>pdfopt</tt></b> <em>input.pdf</em> <em>output.pdf</em>; the
-<b><tt>Optimize</tt></b> parameter has no effect.
-
-<p>
-(note 6) Currently, colors for images and shadings are left in the color
-space specified in the PostScript input, except for
-<b><tt>ConvertCMYKImagesToRGB</tt></b>; the current color in the graphics
-state (used for fill, stroke, text, and imagemask) is always converted to
-the color space specified by the current value of
-<b><tt>ProcessColorModel</tt></b>. The intended behavior is the same as for
-Acrobat Distiller, except that if <b><tt>ColorConversionStrategy</tt></b> is
-set to <b><tt>/UseDeviceDependentColor</tt></b>, colors are converted to the
-color space specified by <b><tt>ProcessColorModel</tt></b> rather than
-always to <b><tt>/DeviceRGB</tt></b>.
-
-<p>
-(note 7) The default image parameter dictionary is
-<blockquote><b><tt>
-<< /QFactor 0.9 /Blend 1 /HSamples [2 1 1 2] /VSamples [2 1 1 2] >>
-</tt></b></blockquote>
-
-<p>
-(note 8) The printer ACS image parameter dictionary is
-<blockquote><b><tt>
-<< /QFactor 0.55 /Blend 1 /HSamples [2 1 1 2] /VSamples [2 1 1 2] >>
-</tt></b></blockquote>
-
-<p>
-(note 9) The prepress ACS image parameter dictionary is
-<blockquote><b><tt>
-<< /QFactor 0.25 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
-</tt></b></blockquote>
-
-<hr>
-
-<h2><a name="Limitations"></a>Limitations</h2>
-
-<p>
-<b><tt>ps2pdf</tt></b> will sometimes convert text to high-resolution
-bitmapped fonts rather than to embedded outline fonts. This will occur when
-the PostScript file uses Type 3, CIDFontType 1, or CIDFontType 4 fonts, or
-Type 0 fonts that reference any of these; it may also occur in some cases if
-the input file uses fonts with non-standard encodings, or in some other rare
-cases.
-
-<p>
-The PDF output always represents the colors of text and graphics in
-DeviceGray or DeviceRGB color space (or DeviceCMYK if the
-<b><tt>ProcessColorModel</tt></b> parameter has been set to
-<b><tt>/DeviceCMYK</tt></b>); all other color spaces are converted to these.
-However, for images, it will retain the original color space for DeviceGray,
-DeviceRGB, DeviceCMYK, certain CIEBased spaces, and Indexed spaces based on
-these.
-
-<p>
-<b><tt>ps2pdf</tt></b> will sometimes convert PostScript constructs to
-lower-level ones, even if a higher-level construct is available. For
-example, if the PostScript file uses <b><tt>charpath</tt></b> to set a
-clipping path consisting of text, <b><tt>ps2pdf</tt></b> will write the
-clipping path as a path in the PDF file, rather than as text, even though
-PDF is able to express clipping with text. This is only a performance
-issue, and will be improved incrementally over time.
-
-<p>
-Some applications, such as HIGZ, produce PostScript files that use
-ridiculously large coordinates. On such files, <b><tt>ps2pdf</tt></b> may
-cause a <b><tt>limitcheck</tt></b> error. If this occurs, try reducing the
-default internal resolution of 720 dpi by using the <b><tt>-r</tt></b>
-switch, e.g., <b><tt>ps2pdf&nbsp;-r300&nbsp;somefile.ps</tt></b>.
-
-<p>
-<b><tt>ps2pdf</tt></b> ignores the PDF 1.3 (Acrobat 4.x) pdfmarks related to
-document content structure: <b><tt>StRoleMap</tt></b>,
-<b><tt>StClassMap</tt></b>, <b><tt>StPNE</tt></b>,
-<b><tt>StBookmarkRoot</tt></b>, <b><tt>StPush</tt></b>,
-<b><tt>StPop</tt></b>, <b><tt>StPopAll</tt></b>, <b><tt>StBMC</tt></b>,
-<b><tt>StBDC</tt></b>, <b><tt>EMC</tt></b>, <b><tt>StOBJ</tt></b>,
-<b><tt>StAttr</tt></b>, <b><tt>StStore</tt></b>, <b><tt>StRetrieve</tt></b>,
-<b><tt>NamespacePush</tt></b>, <b><tt>NamespacePop</tt></b>, and
-<b><tt>NI</tt></b>. While this causes some structural information to be
-omitted from the output file, the displayed and printed output are normally
-not affected.
-
-<p>
-<b><tt>ps2pdf</tt></b> currently has only very limited support for PDF 1.4.
-It writes out the blend mode, constant alpha, and text knockout graphics
-state parameters, and it handles images with soft masks, but it does not
-handle transparency groups, or soft masks in the graphics state. (Note that
-there is no standard way to specify any of these things in PostScript, so
-these statements only apply when the input file is already a PDF 1.4 file.)
-
-<hr>
-
-<h2><a name="Problems"></a>Known problems</h2>
-
-<p>
-Distiller parameters should only be saved by <b><tt>save</tt></b> and
-restored by <b><tt>restore</tt></b>, but they are also saved by
-<b><tt>gsave</tt></b> and restored by <b><tt>grestore</tt></b>.
-
-<p>
-Changing the value of the <b><tt>CompressPages</tt></b> parameter after any
-marks have been made on the page may cause a crash.
-
-<p>
-If the input file downloads Type 1 fonts incrementally, the output file may
-contain embedded fonts with some information missing from the
-FontDescriptor, which may crash Acrobat Reader 4 or produce incorrect
-character spacing.
-
-<hr>
-
-<h2><a name="Ps2pdf_vs_AD"></a>Comparison of <b><tt>ps2pdf</tt></b> and
-Acrobat Distiller</h2>
-
-<p>
-According to users, the greatest benefit of <b><tt>ps2pdf</tt></b> is that
-it is more robust than Acrobat Distiller: it will process complex and
-difficult PostScript files that Acrobat Distiller is not able to handle.
-
-<p>
-For certain documents, <b><tt>ps2pdf</tt></b> is much faster than Adobe
-Distiller, and may be suitable for run-time conversions. George White,
-a heavy user of <b><tt>ps2pdf</tt></b>, remarks:
-
-<blockquote>
-I haven't seen a head to head comparison, but Distiller seems
-slower when running on what should be a faster system (for instance,
-Distiller on a PPC Mac vs a 25 MHz 68040 NeXT running
-<b><tt>ps2pdf</tt></b>), so I think this is fair -- also, one of Mark
-Doyle's postings indicated that Distiller was not fast enough for use as a
-run-time server. In contrast, I find that I can use <b><tt>ps2pdf</tt></b>
-as a post-processor during routine document creation.
-</blockquote>
-
-<p>
-On the other hand, there are some documents for which <b><tt>ps2pdf</tt></b>
-may be much slower than Acrobat Distiller. Caveat user.
-
-<p>
-<b><tt>ps2pdf</tt></b> usually produces output that is comparable in size to
-the output of Acrobat Distiller; however, it sometimes produces much larger
-output, especially if the input file involves pattern fills.
-
-<p>
-Many users report that the combination of <b><tt>ps2pdf</tt></b> with
-Acrobat Reader is superior to using a generic PostScript viewer
-(<b><tt>psview</tt></b> or <b><tt>ghostview</tt></b>), particularly for
-documents with many pages where the navigational support in PDF files
-reduces the overhead involved in navigating conventional PostScript
-documents.
-
-<hr>
-
-<h2><a name="Acknowledgments"></a>Acknowledgments</h2>
-
-<p>
-Thanks to George N. White III &lt;<a href="mailto:aa056@chebucto.ns.ca">aa056@chebucto.ns.ca</a>&gt; of the Ocean
-Sciences Division of the Bedford Institute of Oceanography in Dartmouth,
-Nova Scotia for extensive testing of early versions of
-<b><tt>ps2pdf</tt></b>, and for contributing most of this writeup.
-
-<p>
-Thanks to Martin Hosken of SIL International &lt;<a
-href="http://www.sil.org">http://www.sil.org</a>&gt; for help with testing
-<b><tt>ps2pdf</tt></b> with a wide variety of international fonts.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Psfiles.htm b/Master/xemtex/doc/ghostscript/Psfiles.htm
deleted file mode 100644
index 2b5a7a75c1c..00000000000
--- a/Master/xemtex/doc/ghostscript/Psfiles.htm
+++ /dev/null
@@ -1,832 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>.ps files distributed with Ghostscript</title>
-<!-- $Id: Psfiles.htm,v 1.22.2.12.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: psfiles.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Postscript files distributed with Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#General">Generally used system files</a>
-<li><a href="#Obscure">More obscure system files</a>
-<li><a href="#PDF_specific">PDF-specific system files</a>
-<li><a href="#DPS_specific">Display PostScript-specific system files</a>
-<li><a href="#Art">Art and examples</a>
-<li><a href="#Utilities">Utilities</a>
-<li><a href="#Development_tools">Development tools</a>
-<li><a href="#Miscellany">Odds and ends</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="General"></a>Generally used system files</h2>
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><tt>gs_*_e.ps</tt>
-<dd><p>
-These files define the Encodings known to Ghostscript. All of
-them except <b><tt>gs_std_e.ps</tt></b> and <b><tt>gs_il1_e.ps</tt></b>
-are loaded only if referred to.
-
-<dl>
-
-<dt>
-PostScript Encodings:
-<dd>
-<a href="../lib/gs_ce_e.ps"><tt>gs_ce_e.ps</tt></a>,
-<a href="../lib/gs_il1_e.ps"><tt>gs_il1_e.ps</tt></a>,
-<a href="../lib/gs_std_e.ps"><tt>gs_std_e.ps</tt></a>,
-<a href="../lib/gs_sym_e.ps"><tt>gs_sym_e.ps</tt></a>.
-
-<dt>
-PDF Encodings:
-<dd>
-<a href="../lib/gs_mex_e.ps"><tt>gs_mex_e.ps</tt></a>,
-<a href="../lib/gs_mro_e.ps"><tt>gs_mro_e.ps</tt></a>,
-<a href="../lib/gs_pdf_e.ps"><tt>gs_pdf_e.ps</tt></a>,
-<a href="../lib/gs_wan_e.ps"><tt>gs_wan_e.ps</tt></a>.
-
-<dt>
-Non-standard Encodings:
-<dd>
-<a href="../lib/gs_dbt_e.ps"><tt>gs_dbt_e.ps</tt></a>,
-<a href="../lib/gs_il2_e.ps"><tt>gs_il2_e.ps</tt></a>,
-<a href="../lib/gs_ksb_e.ps"><tt>gs_ksb_e.ps</tt></a>,
-<a href="../lib/gs_wl1_e.ps"><tt>gs_wl1_e.ps</tt></a>,
-<a href="../lib/gs_wl2_e.ps"><tt>gs_wl2_e.ps</tt></a>,
-<a href="../lib/gs_wl5_e.ps"><tt>gs_wl5_e.ps</tt></a>.
-
-<dt>
-Pseudo-encodings:
-<dd>
-<a href="../lib/gs_css_e.ps"><tt>gs_css_e.ps</tt></a>,
-<a href="../lib/gs_lgo_e.ps"><tt>gs_lgo_e.ps</tt></a>,
-<a href="../lib/gs_lgx_e.ps"><tt>gs_lgx_e.ps</tt></a>,
-<a href="../lib/gs_mgl_e.ps"><tt>gs_mgl_e.ps</tt></a>.
-
-</dl>
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_btokn.ps"><tt>gs_btokn.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in if the <b><tt>btoken</tt></b>
-feature is included in the configuration. It provides support for binary
-tokens.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_ccfnt.ps"><tt>gs_ccfnt.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in if the <b><tt>ccfonts</tt></b>
-feature is included in the configuration. It provides support for compiled
-fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_cff.ps"><tt>gs_cff.ps</tt></a>
-<dd>Load CFF (compressed) fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_cidcm.ps"><tt>gs_cidcm.ps</tt></a>
-<dd>Code for recognizing font names of the form CIDFont-CMap (or
-CIDFont--CMap) and creating the font automatically.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_cidfn.ps"><tt>gs_cidfn.ps</tt></a>
-<dd><b><tt>ProcSet</tt></b> for implementing <b><tt>CIDFont</tt></b> and
-<b><tt>CIDMap</tt></b> resources.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_cmap.ps"><tt>gs_cmap.ps</tt></a>
-<dd><b><tt>ProcSet</tt></b> for implementing <b><tt>CMap</tt></b> resources.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_dscp.ps"><tt>gs_dscp.ps</tt></a>
-<dd>Code to compensate for badly written PostScript files by setting
-Orientation according to the DSC comments.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_epsf.ps"><tt>gs_epsf.ps</tt></a>
-<dd>Allow the interpreter to recognize DOS EPSF file headers, and skip to the
-PostScript section of the file.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_fonts.ps"><tt>gs_fonts.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in. It initializes Ghostscript's
-font machinery and provides some utility procedures that work with fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_frsd.ps"><tt>gs_frsd.ps</tt></a>
-<dd>Support for the PostScript LanguageLevel 3
-<b><tt>ReusableStreamDecode</tt></b> filter.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_init.ps"><tt>gs_init.ps</tt></a>
-<dd>Ghostscript reads this automatically when it starts up. It contains
-definitions of many standard procedures and initialization for a wide
-variety of things.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_lev2.ps"><tt>gs_lev2.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in if the Ghostscript interpreter
-includes Level 2 PostScript functions. It contains definitions of
-procedures and miscellaneous initialization for the Level 2 functions.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_ll3.ps"><tt>gs_ll3.ps</tt></a>
-<dd>Initialize PostScript LanguageLevel 3 functions.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_res.ps"><tt>gs_res.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in if the Level 2 resource
-machinery is included. Currently, this is the case for all Level 2
-configurations.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_setpd.ps"><tt>gs_setpd.ps</tt></a>
-<dd>Implementation of the <b><tt>setpagedevice</tt></b> operator.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_statd.ps"><tt>gs_statd.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in. It creates a dummy
-<b><tt>statusdict</tt></b> and some other environmental odds and ends for
-the benefit of PostScript files that really want to be printed on a
-LaserWriter.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_trap.ps"><tt>gs_trap.ps</tt></a>
-<dd>Stub support for the PostScript LanguageLevel 3 "In-RIP trapping"
-feature.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_ttf.ps"><tt>gs_ttf.ps</tt></a>
-<dd>Support code for direct use of TrueType fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_typ32.ps"><tt>gs_typ32.ps</tt></a>
-<dd>Initialization file for Type 32 fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_typ42.ps"><tt>gs_typ42.ps</tt></a>
-<dd>Support code for Type 42 fonts (TrueType font in a PostScript "wrapper").
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_type1.ps"><tt>gs_type1.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads this in if the Ghostscript interpreter
-includes Type 1 font capability (which it normally does).
-</dl>
-
-<hr>
-
-<h2><a name="Obscure"></a>More obscure system files</h2>
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../lib/font2c.ps"><tt>font2c.ps</tt></a>
-<dd>Convert a PostScript Type 0 or Type 1 font to C code that can be compiled
-and linked into Ghostscript; see the documentation on fonts for <a
-href="Fonts.htm#Precompiling">how to do this</a>.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_agl.ps"><tt>gs_agl.ps</tt></a>
-<dd>Contains the mapping from Adobe glyph names to Unicode values, used to
-support TrueType fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_cmdl.ps"><tt>gs_cmdl.ps</tt></a>
-<dd>This file is not used yet. Eventually it will replace C code that
-parses the Ghostscript command line.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_diskf.ps"><tt>gs_diskf.ps</tt></a>
-<dd>This file implements the <b><tt>-dDISKFONTS</tt></b> feature
-(<b><tt>diskfont.dev</tt></b>). See the the usage documentation for <a
-href="Use.htm#DISKFONTS">a description of this feature</a>.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_fform.ps"><tt>gs_fform.ps</tt></a>
-<dd>A usable but imperfect PostScript implementation of Form caching.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_kanji.ps"><tt>gs_kanji.ps</tt></a>
-<dd>This file provides support for the Wadalab free Kanji font. It is not
-included automatically in any configuration.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_pdfwr.ps"><tt>gs_pdfwr.ps</tt></a>
-<dd>This file contains some patches for providing information to the
-<b><tt>pdfwrite</tt></b> driver. It is included only if the
-<b><tt>pdfwrite</tt></b> driver is included.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_pfile.ps"><tt>gs_pfile.ps</tt></a>
-<dd>This file provides runtime support for packed fonts. It is not
-included automatically in any configuration.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_rdlin.ps"><tt>gs_rdlin.ps</tt></a>
-<dd>A tiny patch for systems with built-in readline support.
-</dl>
-
-<dl>
-<dt><a href="../lib/ht_ccsto.ps"><tt>ht_ccsto.ps</tt></a>
-<dd>A default stochastic CMYK halftone. This file is in the public domain.
-</dl>
-
-<dl>
-<dt><a href="../lib/stcolor.ps"><tt>stcolor.ps</tt></a>
-<dd>Configure the (Epson) <b><tt>stcolor</tt></b> driver
-</dl>
-
-<hr>
-
-<h2><a name="PDF_specific"></a>PDF-specific system files</h2>
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../lib/gs_l2img.ps"><tt>gs_l2img.ps</tt></a>
-<dd>The <b><tt>ProcSet</tt></b> that emulates the PostScript Level 2
-"<b><tt>image</tt></b>" operator on Level 1 systems.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf_base.ps"><tt>pdf_base.ps</tt></a>
-<dd>Utilities for interpreting PDF objects and streams.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf_draw.ps"><tt>pdf_draw.ps</tt></a>
-<dd>The interpreter for drawing-related PDF operations.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf_font.ps"><tt>pdf_font.ps</tt></a>
-<dd>Code for handling fonts in PDF files.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf_main.ps"><tt>pdf_main.ps</tt></a>
-<dd>Document- and page-level control for interpreting PDF files.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf_ops.ps"><tt>pdf_ops.ps</tt></a>
-<dd>Definitions for most of the PDF operators.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf_sec.ps"><tt>pdf_sec.ps</tt></a>
-<dd>PDF security (encryption) code.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdfopt.ps"><tt>pdfopt.ps</tt></a>
-<dd>A PDF linearizer ("optimizer").
-</dl>
-
-<dl>
-<dt><a href="../lib/pdfwrite.ps"><tt>pdfwrite.ps</tt></a>
-<dd>Support for writing PDF files. Currently used only by the linearizer,
-but potentially useful for other kinds of PDF-processing utilities.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_icc.ps"><tt>gs_icc.ps</tt></a> <dd>Support for
-ICC color profiles. These are not a standard PostScript feature, but
-are used in the PDF interpreter, as ICC profiles may be embedded in
-PDF files.
-</dl>
-
-<hr>
-
-<h2><a name="DPS_specific"></a>Display PostScript-specific system files</h2>
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../lib/gs_dpnxt.ps"><tt>gs_dpnxt.ps</tt></a>
-<dd>NeXT Display PostScript extensions.
-</dl>
-
-<dl>
-<dt><a href="../lib/gs_dps.ps"><tt>gs_dps.ps</tt></a>,
-<a href="../lib/gs_dps1.ps"><tt>gs_dps1.ps</tt></a>,
-<a href="../lib/gs_dps2.ps"><tt>gs_dps2.ps</tt></a>
-<dd><b><tt>gs_init.ps</tt></b> reads these in if the <b><tt>dps</tt></b>
-feature is included in the configuration. They provide support for various
-Display PostScript and Level 2 features.
-</dl>
-
-<hr>
-
-<h2><a name="Art"></a>Art and examples</h2>
-
-<p>
-These files are found in the <b><tt>examples</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../examples/alphabet.ps"><tt>alphabet.ps</tt></a>
-<dd>Prints a sample alphabet at several different sizes.
-</dl>
-
-<dl>
-<dt><a href="../examples/annots.pdf"><tt>annots.pdf</tt></a>
-<dd>A sample file with a wide variety of PDF "annotations".
-</dl>
-
-<dl>
-<dt><a href="../examples/colorcir.ps"><tt>colorcir.ps</tt></a>
-<dd>A set of nested ellipses made up of colored bars.
-</dl>
-
-<dl>
-<dt><a href="../examples/doretree.ps"><tt>doretree.ps</tt></a>
-<dd>A 3-D image produced by a modeling program. This file is in the public
-domain.
-</dl>
-
-<dl>
-<dt><a href="../examples/escher.ps"><tt>escher.ps</tt></a>
-<dd>A colored version of a hexagonally symmetric Escher drawing of
-interlocking butterflies. Can be printed on monochrome devices, with
-somewhat less dramatic results.
-</dl>
-
-<dl>
-<dt><a href="../examples/golfer.ps"><tt>golfer.ps</tt></a>
-<dd>A gray-scale picture of a stylishly dressed woman swinging a golf club.
-</dl>
-
-<dl>
-<dt><a href="../examples/grayalph.ps"><tt>grayalph.ps</tt></a>
-<dd>Grayscaled text test pattern.
-</dl>
-
-<dl>
-<dt><a href="../examples/ridt91.eps"><tt>ridt91.eps</tt></a>
-<dd>The RIDT '91 logo. Note that since this is an EPS file, you will have
-to add "<b><tt>-c&nbsp;showpage</tt></b>" at the end of the command line to
-print it or convert it to a raster file.
-</dl>
-
-<dl>
-<dt><a href="../examples/snowflak.ps"><tt>snowflak.ps</tt></a>
-<dd>A rectangular grid of intricate colored snowflakes. (May render very
-slowly.)
-</dl>
-
-<dl>
-<dt><a href="../examples/tiger.ps"><tt>tiger.ps</tt></a>
-<dd>A dramatic colored picture of a tiger's head.
-</dl>
-
-<dl>
-<dt><a href="../examples/vasarely.ps"><tt>vasarely.ps</tt></a>
-<dd>Colored rectangles and ellipses inspired by Victor Vasarely's experiments
-with tilting circles and squares.
-</dl>
-
-<dl>
-<dt><a href="../examples/waterfal.ps"><tt>waterfal.ps</tt></a>
-<dd>Prints text in a variety of different sizes, to help evaluate the
-quality of text rendering.
-</dl>
-
-<hr>
-
-<h2><a name="Utilities"></a>Utilities</h2>
-
-<p>
-For more information on these utility programs, see the comments at the
-beginnings of the files. The ones marked (*) have batch files or shell
-scripts of the same name (like <b><tt>bdftops</tt></b> and
-<b><tt>bdftops.bat</tt></b>) to invoke them conveniently.
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../lib/addxchar.ps"><tt>addxchar.ps</tt></a>
-<dd>A utility to add Central European and other Adobe extended Latin
-characters to a Type 1 font.
-</dl>
-
-<dl>
-<dt><a href="../lib/align.ps"><tt>align.ps</tt></a>
-<dd>A test page for determining the proper margin and offset parameters for
-your printer.
-</dl>
-
-<dl>
-<dt><a href="../lib/bdftops.ps"><tt>bdftops.ps</tt></a> *
-<dd>A utility for converting BDF fonts to outline form: see the <a
-href="Fonts.htm">documentation on fonts</a>.
-</dl>
-
-<dl>
-<dt><a href="../lib/bench.ps"><tt>bench.ps</tt></a>
-<dd>A file useful for running benchmarks.
-</dl>
-
-<dl>
-<dt><a href="../lib/caption.ps"><tt>caption.ps</tt></a>
-<dd>A file for putting a caption in a box at the bottom of each page,
-useful for trade show demos.
-</dl>
-
-<dl>
-<dt><a href="../lib/cid2code.ps"><tt>cid2code.ps</tt></a>
-<dd>A utility for creating maps from CIDs to Unicode, useful when
-substituting a TrueType font for an Adobe font.
-</dl>
-
-<dl>
-<dt><a href="../lib/docie.ps"><tt>docie.ps</tt></a>
-<dd>An emulation of the CIE color mapping algorithms.
-</dl>
-
-<dl>
-<dt><a href="../lib/errpage.ps"><tt>errpage.ps</tt></a>
-<dd>A file that you can put in front of your own files to make Ghostscript
-(or a PostScript printer) produce an informative error page if something
-goes wrong during the processing of your file(s).
-</dl>
-
-<dl>
-<dt><a href="../lib/font2pcl.ps"><tt>font2pcl.ps</tt></a>
-<dd>A utility to write a font as a PCL bitmap font.
-</dl>
-
-<dl>
-<dt><a href="../lib/gslp.ps"><tt>gslp.ps</tt></a> *
-<dd>A utility for doing "line printing" of plain text files.
-</dl>
-
-<dl>
-<dt><a href="../lib/gsnup.ps"><tt>gsnup.ps</tt></a>
-<dd>A file that you can concatenate in front of (very well-behaved)
-PostScript files to do N-up printing. It is deliberately simple and naive:
-for more generality, use <b><tt>psnup</tt></b> (which, however, requires DSC
-comments).
-</dl>
-
-<dl>
-<dt><a href="../lib/jispaper.ps"><tt>jispaper.ps</tt></a>
-<dd>A file that makes the <b><tt>b0</tt></b> through <b><tt>b6</tt></b>
-procedures refer to JIS B paper sizes rather than ISO B.
-</dl>
-
-
-<dl>
-<dt><a href="../lib/impath.ps"><tt>impath.ps</tt></a>
-<dd>A utility for reconstructing outlines from bitmap images, used by
-<b><tt>bdftops</tt></b>.
-</dl>
-
-<dl>
-<dt><a href="../lib/landscap.ps"><tt>landscap.ps</tt></a>
-<dd>A file that you can put in front of your own files to get them rendered
-in landscape mode.
-</dl>
-
-<dl>
-<dt><a href="../lib/level1.ps"><tt>level1.ps</tt></a>
-<dd>A file that turns off any Level 2 features.
-</dl>
-
-<dl>
-<dt><a href="../lib/packfile.ps"><tt>packfile.ps</tt></a>
-<dd>A utility for compressing fonts into a single file.
-</dl>
-
-<dl>
-<dt><a href="../lib/pdf2dsc.ps"><tt>pdf2dsc.ps</tt></a>
-<dd>A utility to read a PDF file and produce a DSC "index" file.
-</dl>
-
-<dl>
-<dt><a href="../lib/pf2afm.ps"><tt>pf2afm.ps</tt></a> *
-<dd>A utility for producing AFM files from PFA, PFB, and optionally PFM
-files.
-</dl>
-
-<dl>
-<dt><a href="../lib/pfbtopfa.ps"><tt>pfbtopfa.ps</tt></a> *
-<dd>A utility to convert PFB (binary) font files to PFA (text) format.
-</dl>
-
-<dl>
-<dt><a href="../lib/prfont.ps"><tt>prfont.ps</tt></a>
-<dd>A utility to print a font catalog.
-</dl>
-
-<dl>
-<dt><a href="../lib/printafm.ps"><tt>printafm.ps</tt></a>
-<dd>A utility to print an AFM file on standard output.
-</dl>
-
-<dl>
-<dt><a href="../lib/ps2ai.ps"><tt>ps2ai.ps</tt></a>
-<dd>A utility for converting an arbitrary PostScript file into a form
-compatible with Adobe Illustrator. NOTE: <b><tt>ps2ai</tt></b> doesn't
-work properly with Adobe's Helvetica-Oblique font, and other fonts whose
-original <b><tt>FontMatrix</tt></b> involves skewing or rotation.
-</dl>
-
-<dl>
-<dt><a href="../lib/ps2ascii.ps"><tt>ps2ascii.ps</tt></a> *
-<dd>A utility for extracting the ASCII text from PostScript source files.
-It redefines many operators. For more information, see the comments in the
-file.
-</dl>
-
-<dl>
-<dt><a href="../lib/ps2epsi.ps"><tt>ps2epsi.ps</tt></a> *
-<dd>A utility for converting an arbitrary PostScript file into EPSI form.
-</dl>
-
-<dl>
-<dt><a href="../lib/quit.ps"><tt>quit.ps</tt></a>
-<dd>A file containing just the word "<b><tt>quit</tt></b>". (The
-<b><tt>-c</tt></b> switch now makes this unnecessary; this file exists for
-backward compatibility.)
-</dl>
-
-<dl>
-<dt><a href="../lib/rollconv.ps"><tt>rollconv.ps</tt></a>
-<dd>A utility for converting files produced by Macromedia's
-<b><tt>Rollup</tt></b> program to a Type 0 form directly usable by
-Ghostscript.
-</dl>
-
-<dl>
-<dt><a href="../lib/showpage.ps"><tt>showpage.ps</tt></a>
-<dd>A file containing just the word "<b><tt>showpage</tt></b>". (The
-<b><tt>-c</tt></b> switch now makes this unnecessary; this file exists for
-backward compatibility.)
-</dl>
-
-<dl>
-<dt><a href="../lib/stocht.ps"><tt>stocht.ps</tt></a>
-<dd>A file that installs the StochasticDefault halftone as the default,
-which may improve output quality on inkjet printers. See the file for more
-information.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewcmyk.ps"><tt>viewcmyk.ps</tt></a>
-<dd>A utility for displaying CMYK files.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewgif.ps"><tt>viewgif.ps</tt></a>
-<dd>A utility for displaying GIF files.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewjpeg.ps"><tt>viewjpeg.ps</tt></a>
-<dd>A utility for displaying JPEG files.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewmiff.ps"><tt>viewmiff.ps</tt></a>
-<dd>A utility for displaying MIFF files.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewpbm.ps"><tt>viewpbm.ps</tt></a>
-<dd>A utility for displaying PBM/PGM/PPM files.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewpcx.ps"><tt>viewpcx.ps</tt></a>
-<dd>A utility for displaying PCX files.
-</dl>
-
-<dl>
-<dt><a href="../lib/waterfal.ps"><tt>waterfal.ps</tt></a>
-<dd>A utility to print a "waterfall" of fonts at different sizes.
-</dl>
-
-<hr>
-
-<h2><a name="Development_tools"></a>Development tools</h2>
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../lib/acctest.ps"><tt>acctest.ps</tt></a>
-<dd>A utility that checks whether the interpreter enforces access
-restrictions.
-</dl>
-
-<dl>
-<dt><a href="../lib/decrypt.ps"><tt>decrypt.ps</tt></a>
-<dd>A utility for decrypting the <b><tt>eexec</tt></b> section of a font.
-</dl>
-
-<dl>
-<dt><a href="../lib/image-qa.ps"><tt>image-qa.ps</tt></a>
-<dd>A comprehensive test of the image display operators.
-</dl>
-
-<dl>
-<dt><a href="../lib/markpath.ps"><tt>markpath.ps</tt></a>
-<dd>A utility for showing the points on a path.
-</dl>
-
-<dl>
-<dt><a href="../lib/pcharstr.ps"><tt>pcharstr.ps</tt></a>
-<dd>A utility for printing out the <b><tt>CharStrings</tt></b> and
-<b><tt>Subrs</tt></b> in a Type 1 font.
-</dl>
-
-<dl>
-<dt><a href="../lib/ppath.ps"><tt>ppath.ps</tt></a>
-<dd>A couple of utilities for printing out the current path, for debugging.
-</dl>
-
-<dl>
-<dt><a href="../lib/pphs.ps"><tt>pphs.ps</tt></a>
-<dd>A utility to print the Primary Hint Stream of a linearized PDF file.
-</dl>
-
-<dl>
-<dt><a href="../lib/traceimg.ps"><tt>traceimg.ps</tt></a>
-<dd>Trace the data supplied to the <b><tt>image</tt></b> operator.
-</dl>
-
-<dl>
-<dt><a href="../lib/traceop.ps"><tt>traceop.ps</tt></a>
-<dd>A utility for tracing uses of any procedure or operator for debugging.
-</dl>
-
-<dl>
-<dt><a href="../lib/type1enc.ps"><tt>type1enc.ps</tt></a>
-<dd>The Type 1 font format encryption and decryption algorithms, written in
-PostScript.
-</dl>
-
-<dl>
-<dt><a href="../lib/uninfo.ps"><tt>uninfo.ps</tt></a>
-<dd>Some utilities for printing out PostScript data structures.
-</dl>
-
-<dl>
-<dt><a href="../lib/unprot.ps"><tt>unprot.ps</tt></a>
-<dd>A prologue to disable access checking.
-</dl>
-
-<dl>
-<dt><a href="../lib/viewps2a.ps"><tt>viewps2a.ps</tt></a>
-<dd>A utility for displaying the output of <b><tt>ps2ascii.ps</tt></b>.
-</dl>
-
-<dl>
-<dt><a href="../lib/wftopfa.ps"><tt>wftopfa.ps</tt></a>
-<dd>Convert a Wadalab (Japanese) base font to <b><tt>.PFA</tt></b> (or
-<b><tt>.PFB</tt></b>) format.
-</dl>
-
-<dl>
-<dt><a href="../lib/winmaps.ps"><tt>winmaps.ps</tt></a>
-<dd>A utility for creating mappings between the Adobe encodings and the
-Microsoft Windows character sets.
-</dl>
-
-<dl>
-<dt><a href="../lib/wrfont.ps"><tt>wrfont.ps</tt></a>
-<dd>A utility for writing out an unprotected Type 1 font, such as the
-standard Ghostscript fonts.
-</dl>
-
-<dl>
-<dt><a href="../lib/zeroline.ps"><tt>zeroline.ps</tt></a>
-<dd>A utility for testing how interpreters handle zero-width lines.
-</dl>
-
-<hr>
-
-<h2><a name="Miscellany"></a>Odds and ends</h2>
-
-<p>
-These files are found in the <b><tt>lib</tt></b> subdirectory of
-the Ghostscript source distribution.
-
-<dl>
-<dt><a href="../lib/lines.ps"><tt>lines.ps</tt></a>
-<dd>A test program for line joins and caps.
-</dl>
-
-<dl>
-<dt><a href="../lib/markhint.ps"><tt>markhint.ps</tt></a>
-<dd>Draw the hints for a Type 1 font.
-</dl>
-
-<dl>
-<dt><a href="../lib/showchar.ps"><tt>showchar.ps</tt></a>
-<dd>Show a character's outline and rasterized forms.
-</dl>
-
-<dl>
-<dt><a href="../lib/stcinfo.ps"><tt>stcinfo.ps</tt></a>
-<dd>Print and show parameters of the (Epson) <b><tt>stcolor</tt></b> driver.
-</dl>
-
-<dl>
-<dt><a href="../lib/type1ops.ps"><tt>type1ops.ps</tt></a>
-<dd>The Type 1 font format opcodes.
-</dl>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/README b/Master/xemtex/doc/ghostscript/README
deleted file mode 100644
index 193c9f09192..00000000000
--- a/Master/xemtex/doc/ghostscript/README
+++ /dev/null
@@ -1,391 +0,0 @@
-
- Overview of Ghostscript
-
- If this is your first contact with Ghostscript, before continuing here
- you should read the documentation for new users, where you'll find
- * what Ghostscript does (PostScript and PDF previewing, conversion,
- and printing);
- * its licensing terms (free for ordinary use);
- * what platforms it runs on (every platform you're likely to be
- interested in);
- * where to find some useful programs that enhance Ghostscript (like
- user-friendly previewers for Unix, VMS, MS Windows, DOS, and
- Macintosh); and
- * what to do if you need help.
-
- The rest of this document is a roadmap to the Ghostscript
- documentation. After looking through it, if you want to install
- Ghostscript and not only use it, we recommend you read how to install
- Ghostscript, and how to compile Ghostscript from source code (which is
- necessary before installing it on Unix and VMS systems).
- _________________________________________________________________
-
-Table of contents
-
- * Document roadmap by theme
- + What should I read if I'm a new user?
- + Before building Ghostscript
- + What should I read if I'm not a new user?
- + What if I'm a developer?
- + What if I'm writing documentation?
- * Presence on the World Wide Web
- + Ghostscript's home pages
- + Adobe PostScript, Encapsulated PostScript, and PDF reference
- documentation
- + Other material on the WWW
- * Which document contains what?
- + Primarily for users:
-
- Devices.htm
- Helpers.htm
- Humor.htm
- New-user.htm
- Ps2epsi.htm
- Ps2pdf.htm
- Readme.htm
- Unix-lpr.htm
- Use.htm
-
- + For both users and developers:
-
- Changes.htm
- Current.htm
- CJK.htm
- Fonts.htm
- Hershey.htm
- History*.htm
- Install.htm
- Language.htm
- Make.htm
- News.htm
- Psfiles.htm
-
- + Primarily for developers:
-
- API.htm
- C-style.htm
- CJKTTCID.htm
- DLL.htm
- Develop.htm
- Drivers.htm
- Htmstyle.htm
- Issues.htm
- Lib.htm
- Maintain.htm
- Projects.htm
- Ps-style.htm
- Release.htm
- Source.htm
- Xfonts.htm
- _________________________________________________________________
-
-Document roadmap by theme
-
- What should I read if I'm a new user?
-
- A new user of Ghostscript should begin by reading the material
- specifically for new users, then as many of these documents as seem
- useful:
- * how to install Ghostscript
- * how to use Ghostscript; some of this information information also
- found in gs.1, the Unix "man" page for Ghostscript.
- * the catalogs at the beginning of devs.mak and contrib.mak, which
- list all the devices for which Ghostscript is able to produce
- output (although if you got Ghostscript in binary form, it will
- only include some of these devices)
- * detailed information about some specific devices that Ghostscript
- knows about
- * more detailed information about how to use Ghostscript under Unix
- with lpr as a filter for non-PostScript printers
- * about the fonts distributed with Ghostscript, including how to add
- or replace fonts
- * a description of the Ghostscript language, and its differences
- from the documented PostScript language
- * about the postscript files distributed with Ghostscript (other
- than fonts)
-
- Before building Ghostscript
-
- If you are going to compile Ghostscript, rather than just use an
- executable you got from somewhere, you should read:
- * how to build Ghostscript and install it
- _________________________________________________________________
-
-What should I read if I'm not a new user?
-
- If you have already used Ghostscript, when you receive a new release
- you should begin by reading this file, then
- * News.htm, for incompatible changes and new features in the current
- release;
- * Current.htm, for known problems in the current release;
- * if you wish, Changes.htm, for a detailed list of changes in the
- current release;
- * if you wish, History#.htm (currently History7.htm), for changes in
- other releases.
- _________________________________________________________________
-
-What if I'm a developer?
-
- If you are going to do any development on or with Ghostscript at all,
- you should at least look at
- * the roadmap documentation for Ghostscript's source files and
- architecture
-
- If you are going to write a new driver for Ghostscript, you should
- read
- * the guide to the Ghostscript source code
- * the interface between Ghostscript and device drivers
- * about the external font interface between Ghostscript and
- platform-supplied fonts (but read about drivers in general first)
-
- If you intend to use Ghostscript in the form of a dynamic link library
- (DLL) under OS/2 or Microsoft Windows or in the form of shared object
- under GNU/Linux, read
- * documentation on Ghostscript Interpreter API
-
- If you want to use Ghostscript as part of another program--as a
- callable PostScript language interpreter--and not as a DLL or as a
- self-contained executable application, you should begin by reading
- * the source file imain.h, the documented API for Ghostscript not as
- a DLL
-
- or if you are going to use only the Ghostscript graphics library,
- * about the structure of the Ghostscript library and its interfaces
- _________________________________________________________________
-
-What if I'm writing documentation?
-
- If you are editing or adding to Ghostscript's existing documentation
- in HTML format, or writing a new document, you should read
- * the coding and style guidelines for Ghostscript's HTML-based
- documentation.
- _________________________________________________________________
-
-Presence on the World Wide Web
-
- Ghostscript's home page
-
- GNU Ghostscript has a home page on the World Wide Web with helpful
- information. Pleave visit:
-
- http://www.gnu.org/software/ghostscript/
-
- More material about Ghostscript can be found at
-
- http://www.ghostscript.com/
-
- Adobe PostScript, Encapsulated PostScript, and PDF reference documentation
-
- Adobe makes a wealth of technical documentation available over the
- Web, including the PostScript Language Reference Manual (Third
- Edition); the Encapsulated PostScript (EPS) Format Specification
- version 3, including Encapsulated PostScript Interchange (EPSI)
- format; the PDF 1.3 specification; and the pdfmark, transparency and
- Acrobat Distiller parameters documentation. Some of these documents
- are also available at Adobe's ftp site, but not necessarily under the
- same filenames.
-
- Other material on the WWW
-
- Much other material about Ghostscript is available on the World Wide
- Web, both as web pages and as archived Usenet and mailing list
- discussions. Use the well-known search engines to find such material.
-
- There is a good manual for Ghostscript available in PDF form, in
- English and German (and soon in Japanese), at:
-
- http://www.pdflib.com/gsmanual
-
- There is a translation of the Ghostscript 'man' pages into Czech at:
-
- http://www.volny.cz/rebus/ghostscript/
- _________________________________________________________________
-
-Which document contains what?
-
- Here is the list in alphabetic order of Ghostscript documentation,
- with explanations of the contents.
-
- API.htm
- On MS-Windows and OS/2, Ghostscript is compiled as a dynamic
- link library (DLL). On GNU/Linux, Ghostscript can be compiled
- as a shared object. This describes how to use it. For
- developers.
-
- C-style.htm
- Guidelines and style for C coding, which you should follow if,
- for example, you write a new driver or add or change something
- in Ghostscript. For developers.
-
- Changes.htm
- A detailed list of all code changes in the current release or
- pre-release, generated mechanically from the CVS logs. For
- developers.
-
- CJK.htm
- Usage of features to support CJK CID-keyed fonts in
- Ghostscript.
-
- CJKTTCID.htm
- Note providing information on utilization of CJK (Chinese,
- Japanese and Korean) TrueType fonts as CIDFontType2 fonts from
- the viewpoint of its validity and limitations.
-
- Current.htm
- Information specifically about the current release of
- Ghostscript. See also the latest news of changes.
-
- DLL.htm
- On OS/2, MS Windows-16 and MS Windows-32 platforms, Ghostscript
- is compiled as a dynamic link library (DLL). This describes how
- to use it. For developers. This DLL interface is obsolete. Use
- API.htm instead.
-
- Develop.htm
- Code orientation for developers. Contains a detailed breakdown
- of the source files by functional group, and overviews of the
- major architectural features and services.
-
- Devices.htm
- Detailed information about some specific devices for which
- Ghostscript can produce output. Run "gs -h" to see which
- devices a particular version of Ghostscript is built to use.
-
- Drivers.htm
- Describes the interface between Ghostscript and device drivers.
- If you do this, you should also read and use the C style and
- coding guidelines. Necessary to develop a new driver. For
- developers.
-
- Fonts.htm
- All about fonts freely available for Ghostscript, and how to
- add and use new fonts. Also describes how to use Ghostscript
- fonts as X Windows fonts. For both users and developers.
-
- Helpers.htm
- A note of thanks to people who have helped in the development
- of Ghostscript.
-
- Hershey.htm
- Part 1 of the five-part original Usenet distribution of the
- free Hershey fonts, giving the terms of use and describing
- their encoding.
-
- History*.htm
- The history of changes in all Ghostscript releases:
-
- History7.htm for Ghostscript versions 7.n
- History6.htm for Ghostscript versions 6.n
- History5.htm for Ghostscript versions 5.n
- History4.htm for Ghostscript versions 4.n
- History3.htm for Ghostscript versions 3.n
- History2.htm for Ghostscript versions 2.n
- History1.htm for Ghostscript versions 1.n
-
- Htmstyle.htm
- The guidelines and style for HTML coding of Ghostscript's
- documentation, which you should follow if, for example, you
- change existing HTML documentation or write new documents. For
- writers and editors.
-
- Humor.htm
- Another Ghostscript interpreter.
-
- Install.htm
- How to install Ghostscript. See also how to build it.
-
- Issues.htm
- A list of outstanding open issues in Ghostscript. These include
- known limitations, minor bugs, performance issues, differences
- from Adobe implementations, and others.
-
- Language.htm
- The relationship between the Ghostscript interpreter and the
- PostScript language as defined by Adobe.
-
- Lib.htm
- A description of the Ghostscript library, a set of procedures
- to implement the graphics and filtering capabilities that are
- primitive operations in the PostScript language and in Adobe
- Portable Document Format (PDF). For developers.
-
- Maintain.htm
- Assorted Ghostscript maintenance procedures. For developers.
-
- Make.htm
- How to build Ghostscript executables from the source code. See
- also how to install it. It's not necessary to be a highly
- experienced developer to build or install Ghostscript, but some
- experience is needed.
-
- New-user.htm
- Essential information for new users of Ghostscript.
-
- News.htm
- A brief description of the latest release or pre-release of
- Ghostscript, and a list of any incompatible changes in it.
- Changes in older releases are described in the history files
- "History*.htm", which are usually installed in the
- documentation directory. Run "gs -h" to see where that is.
-
- Projects.htm
- A list of Ghostscript development projects with which we would
- like help.
-
- Ps-style.htm
- The guidelines and style for postscript coding in Ghostscript.
- Some of Ghostscript is implemented in the postscript language
- itself, and various utilities and examples are distributed with
- it. You should follow these guidelines if you're extending or
- modifying those files. For developers.
-
- Ps2epsi.htm
- Detailed information on how to use Ghostscript through ps2epsi
- to convert PostScript to Adobe Encapsulated PostScript
- Interchange (EPSI) format.
-
- Ps2pdf.htm
- Detailed information on how to use Ghostscript through ps2pdf
- to convert PostScript to Adobe Portable Document Format (PDF).
-
- Psfiles.htm
- A description of the PostScript files (other than font files)
- distributed with Ghostscript, including initialization
- routines, utility programs, and sample printable files.
-
- Readme.htm
- This document.
-
- Release.htm
- A description of how to prepare and test a Ghostscript release.
- Of interest only to developers who want to create new
- Ghostscript versions for distribution.
-
- Source.htm
- A guide to the Ghostscript source code, for development and
- debugging.
-
- Unix-lpr.htm
- How to set up Ghostscript as a Unix lpr filter.
-
- Use.htm
- Detailed instructions on how to use Ghostscript, including such
- matters as designating an output device; choosing a default
- paper size; how Ghostscript finds files, including font files;
- how it uses environment variables; notes on specific platforms,
- including the X Window System; and command-line options.
-
- Xfonts.htm
- Ghostscript's external font interface to a host platform's
- font-rendering mechanism, for developers.
- _________________________________________________________________
-
- Copyright © 1996, 2000 Aladdin Enterprises. All rights reserved.
-
- This software is provided AS-IS with no warranty, either express or
- implied. This software is distributed under license and may not be
- copied, modified or distributed except as expressly authorized under
- the terms of the license contained in the file LICENSE in this
- distribution.
-
- Ghostscript version 7.07, 17 May 2003
diff --git a/Master/xemtex/doc/ghostscript/Readme.htm b/Master/xemtex/doc/ghostscript/Readme.htm
deleted file mode 100644
index b1ed5164975..00000000000
--- a/Master/xemtex/doc/ghostscript/Readme.htm
+++ /dev/null
@@ -1,634 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Overview of Ghostscript</title>
-<!-- $Id: Readme.htm,v 1.31.2.16.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: README -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Overview of Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>
-If this is your first contact with Ghostscript, before continuing here you
-should read the <a href="New-user.htm">documentation for new users</a>,
-where you'll find
-
-<ul>
-<li><a href="New-user.htm#Overview">what Ghostscript does</a> (PostScript
-and PDF previewing, conversion, and printing);
-
-<li>its <a href="New-user.htm#Find_Ghostscript">licensing terms</a> (free
-for ordinary use);
-
-<li>what <a href="New-user.htm#Platforms">platforms it runs on</a> (every
-platform you're likely to be interested in);
-
-<li>where to find some <a href="New-user.htm#Previewers">useful
-programs</a> that enhance Ghostscript (like user-friendly previewers for
-Unix, VMS, MS Windows, DOS, and Macintosh); and
-
-<li>what to do <a href="New-user.htm#Need_help">if you need help</a>.
-</ul>
-
-<p>
-The rest of this document is a roadmap to the Ghostscript documentation.
-After looking through it, if you want to install Ghostscript and not only
-use it, we recommend you read <a href="Install.htm">how to install
-Ghostscript</a>, and <a href="Make.htm">how to compile Ghostscript</a> from
-source code (which is necessary before installing it on Unix and VMS
-systems).
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Theme_roadmap">Document roadmap by theme</a>
-<ul>
-<li><a href="#New_users">What should I read if I'm a new user?</a>
-<li><a href="#Before_building">Before building Ghostscript</a>
-<li><a href="#Not_a_new_user">What should I read if I'm not a new user?</a>
-<li><a href="#Developer">What if I'm a developer?</a>
-<li><a href="#Writer">What if I'm writing documentation?</a>
-</ul>
-<li><a href="#Web_presence">Presence on the World Wide Web</a>
-<ul>
-<li><a href="#Web_home_page">Ghostscript's home pages</a>
-<li><a href="#Adobe_documentation">Adobe PostScript, Encapsulated
-PostScript, and PDF reference documentation</a>
-<li><a href="#Web_other">Other material on the WWW</a>
-</ul>
-<li><a href="#Ordered_roadmap">Which document contains what?</a>
-<ul>
-<li>Primarily for users:
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><td valign=top>
-<a href="#Devices">Devices.htm</a><br>
-<a href="#Helpers">Helpers.htm</a><br>
-<td>&nbsp;&nbsp;&nbsp;<td valign=top>
-<a href="#Humor">Humor.htm</a><br>
-<a href="#New-user">New-user.htm</a><br>
-<a href="#Ps2epsi">Ps2epsi.htm</a><br>
-<a href="#Ps2pdf">Ps2pdf.htm</a><br>
-<td>&nbsp;&nbsp;&nbsp;<td valign=top>
-<a href="#Readme">Readme.htm</a><br>
-<a href="#Unix-lpr">Unix-lpr.htm</a><br>
-<a href="#Use">Use.htm</a><br>
-<tr><td valign=top>
-</table></blockquote>
-<li>For both users and developers:
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><td valign=top>
-<a href="#Changes">Changes.htm</a><br>
-<a href="#Current">Current.htm</a><br>
-<a href="#CJK">CJK.htm</a><br>
-<a href="#Fonts">Fonts.htm</a><br>
-<td>&nbsp;&nbsp;&nbsp;<td valign=top>
-<a href="#Hershey">Hershey.htm</a><br>
-<a href="#History">History*.htm</a><br>
-<a href="#Install">Install.htm</a><br>
-<a href="#Language">Language.htm</a><br>
-<a href="#Make">Make.htm</a><br>
-<td>&nbsp;&nbsp;&nbsp;<td valign=top>
-<a href="#News">News.htm</a><br>
-<a href="#Psfiles">Psfiles.htm</a><br>
-</table></blockquote>
-<li>Primarily for developers:
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><td valign=top>
-<a href="#API">API.htm</a><br>
-<a href="#C-style">C-style.htm</a><br>
-<a href="#CJKTTCID">CJKTTCID.htm</a><br>
-<a href="#DLL">DLL.htm</a><br>
-<a href="#Develop">Develop.htm</a><br>
-<a href="#Drivers">Drivers.htm</a><br>
-<td>&nbsp;&nbsp;&nbsp;<td valign=top>
-<a href="#Htmstyle">Htmstyle.htm</a><br>
-<a href="#Issues">Issues.htm</a><br>
-<a href="#Lib">Lib.htm</a><br>
-<a href="#Maintain">Maintain.htm</a><br>
-<a href="#Projects">Projects.htm</a><br>
-<td>&nbsp;&nbsp;&nbsp;<td valign=top>
-<a href="#Ps-style">Ps-style.htm</a><br>
-<a href="#Release">Release.htm</a><br>
-<a href="#Source">Source.htm</a><br>
-<a href="#Xfonts">Xfonts.htm</a><br>
-</table></blockquote>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Theme_roadmap"></a>Document roadmap by theme</h2>
-
-<h3><a name="New_users"></a>What should I read if I'm a new user?</h3>
-
-<p>
-A new user of Ghostscript should begin by reading the material
-<a href="New-user.htm">specifically for new users</a>, then as many of
-these documents as seem useful:
-
-<ul>
-<li>how to <a href="Install.htm">install Ghostscript</a>
-
-<li>how to <a href="Use.htm">use Ghostscript</a>; some of this information
-information also found in <b><tt>gs.1</tt></b>, the Unix
-"man" page for Ghostscript.
-
-<li>the catalogs at the beginning of <b><tt>devs.mak</tt></b> and
-<b><tt>contrib.mak</tt></b>, which list all the devices for which
-Ghostscript is able to produce output (although if you got Ghostscript in
-binary form, it will only include some of these devices)
-
-<li>detailed information about <a href="Devices.htm">some specific
-devices</a> that Ghostscript knows about
-
-<li>more detailed information about how to use Ghostscript under
-Unix with <b><tt>lpr</tt></b> <a href="Unix-lpr.htm">as a filter</a>
-for non-PostScript printers
-
-<li> about the <a href="Fonts.htm">fonts distributed with
-Ghostscript</a>, including how to add or replace fonts
-
-<li> a description of <a href="Language.htm">the Ghostscript language</a>,
-and its differences from the documented PostScript language
-
-<li> about the <a href="Psfiles.htm">postscript files distributed with
-Ghostscript</a> (other than fonts)
-</ul>
-
-<h3><a name="Before_building"></a>Before building Ghostscript</h3>
-
-<p>
-If you are going to compile Ghostscript, rather than just use an executable
-you got from somewhere, you should read:
-
-<ul>
-<li> <a href="Make.htm">how to build Ghostscript</a> and
-<a href="Install.htm">install it</a>
-</ul>
-
-<hr>
-
-<h2><a name="Not_a_new_user"></a>What should I read if I'm not a new user?</h2>
-
-<p>
-If you have already used Ghostscript, when you receive a new release you
-should begin by reading this file, then
-
-<ul>
-<li> <a href="News.htm">News.htm</a>, for incompatible changes and new
-features in the current release;
-
-<li> <a href="Current.htm">Current.htm</a>, for known problems in the
-current release;
-
-<li> if you wish, <a href="Changes.htm">Changes.htm</a>, for a detailed list
-of changes in the current release;
-
-<li> if you wish, History#.htm (currently <a
-href="History6.htm">History7.htm</a>), for changes in other releases.
-</ul>
-
-<hr>
-
-<h2><a name="Developer"></a>What if I'm a developer?</h2>
-
-<p>
-If you are going to do any development on or with Ghostscript at all, you
-should at least look at
-
-<ul>
-<li>the <a href="Develop.htm">roadmap documentation</a> for Ghostscript's
-source files and architecture
-</ul>
-
-<p>
-If you are going to write a new driver for Ghostscript, you should read
-
-<ul>
-<li> the <a href="Source.htm">guide to the Ghostscript source code</a>
-
-<li> the interface between Ghostscript and <a href="Drivers.htm">device
-drivers</a>
-
-<li> about the <a href="Xfonts.htm">external font interface</a> between
-Ghostscript and platform-supplied fonts (but read about
-<a href="Drivers.htm">drivers in general</a> first)
-</ul>
-
-<p>
-If you intend to use Ghostscript in the form of a dynamic link library
-(DLL) under OS/2 or Microsoft Windows or in the form of shared object
-under GNU/Linux, read
-
-<ul>
-<li> documentation on <a href="API.htm">Ghostscript Interpreter API</a>
-</ul>
-
-<p>
-If you want to use Ghostscript as part of another program--as a callable
-PostScript language interpreter--and not as a DLL or as a self-contained
-executable application, you should begin by reading
-
-<ul>
-<li> the source file <b><tt>imain.h</tt></b>, the documented
-API for Ghostscript <em>not</em> as a DLL
-</ul>
-
-<p>
-or if you are going to use only the Ghostscript graphics library,
-
-<ul>
-<li> about the structure of the <a href="Lib.htm">Ghostscript library</a>
-and its interfaces
-</ul>
-
-<hr>
-
-<h2><a name="Writer"></a>What if I'm writing documentation?</h2>
-
-<p>
-If you are editing or adding to Ghostscript's existing documentation in
-HTML format, or writing a new document, you should read
-
-<ul>
-<li> the <a href="Htmstyle.htm">coding and style guidelines</a> for
-Ghostscript's HTML-based documentation.
-</ul>
-
-<hr>
-
-<h2><a name="Web_presence"></a>Presence on the World Wide Web</h2>
-
-<h3><a name="Web_home_page"></a>Ghostscript's home page</h3>
-
-<p>
-GNU Ghostscript has a home page on the World Wide Web with helpful
-information. Pleave visit:
-
-<blockquote>
-<a href="http://www.gnu.org/software/ghostscript/"
-class="offsite">http://www.gnu.org/software/ghostscript/</a>
-</blockquote>
-
-<p>
-More material about Ghostscript can be found at
-
-<blockquote>
-<a href="http://www.ghostscript.com/" class="offsite">http://www.ghostscript.com/</a>
-</blockquote>
-
-<h3><a name="Adobe_documentation"></a>Adobe PostScript, Encapsulated
-PostScript, and PDF reference documentation</h3>
-
-<p>
-Adobe makes a wealth of
-<a href="http://partners.adobe.com/asn/developer/technotes.html"
-class="offsite">
-technical documentation</a> available over the Web, including the
-<a href="http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf"
-class="offsite">
-PostScript Language Reference Manual (Third Edition)</a>; the
-<a
-href="http://partners.adobe.com/asn/developer/pdfs/tn/5002.EPSF_Spec.pdf"
-class="offsite">
-Encapsulated PostScript</a> (EPS) Format Specification version 3, including
-<a href="#Ps2epsi">Encapsulated PostScript Interchange (EPSI)</a>
-format; the
-<a
-href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/pdfspec.pdf"
-class="offsite">
-PDF 1.3 specification</a>; and the
-<a
-href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/pdfmark.pdf"
-class="offsite">
-pdfmark</a>,
-<a href="http://partners.adobe.com/asn/developer/acrosdk/docs/PDF_Transparency.pdf"
-class="offsite">transparency</a> and
-<a
-href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/distparm.pdf"
-class="offsite">
-Acrobat Distiller parameters</a> documentation. Some of these documents
-are also available at <a href="ftp://ftp.adobe.com/pub/adobe/"
-class="offsite">Adobe's ftp
-site</a>, but not necessarily under the same filenames.
-
-<h3><a name="Web_other"></a>Other material on the WWW</h3>
-
-<p>
-Much other material about Ghostscript is available on the World Wide Web,
-both as web pages and as archived Usenet and mailing list discussions. Use
-the well-known search engines to find such material.
-
-<p>
-There is a good manual for Ghostscript available in PDF form,
-in English and German (and soon in Japanese), at:
-
-<blockquote>
-<a href="http://www.pdflib.com"
-class="offsite">http://www.pdflib.com/gsmanual</a>
-</blockquote>
-
-<p>
-There is a translation of the Ghostscript 'man' pages into Czech at:
-
-<blockquote>
-<a href="http://www.volny.cz/rebus/ghostscript/"
-class="offsite">http://www.volny.cz/rebus/ghostscript/</a>
-</blockquote>
-
-<hr>
-
-<h2><a name="Ordered_roadmap"></a>Which document contains what?</h2>
-
-<p> Here is the list in alphabetic order of Ghostscript documentation,
-with explanations of the contents.
-
-<dl>
-<dt><a name="API"></a><a href="API.htm"><b>API.htm</b></a>
-<dd> On MS-Windows and OS/2, Ghostscript is compiled as a dynamic
-link library (DLL). On GNU/Linux, Ghostscript can be compiled as
-a shared object. This describes how to use it.
-For developers.
-</dl>
-
-<dl>
-<dt><a name="C-style"></a><a href="C-style.htm"><b>C-style.htm</b></a>
-<dd> Guidelines and style for C coding, which you should follow
-if, for example, you <a href="#Drivers">write a new driver</a> or add or
-change something in Ghostscript. For developers.
-</dl>
-
-<dl>
-<dt><a name="Changes"></a><a href="Changes.htm"><b>Changes.htm</b></a>
-<dd> A detailed list of all code changes in the current release or
-pre-release, generated mechanically from the CVS logs. For developers.
-</dl>
-
-<dl>
-<dt><a name="CJK"></a><a href="CJK.htm"><b>CJK.htm</b></a>
-<dd> Usage of features to support CJK CID-keyed fonts in Ghostscript.
-</dl>
-
-<dl>
-<dt><a name="CJKTTCID"></a><a href="CJKTTCID.htm"><b>CJKTTCID.htm</b></a>
-<dd> Note providing information on utilization of CJK (Chinese,
-Japanese and Korean) TrueType fonts as CIDFontType2 fonts from the
-viewpoint of its validity and limitations.
-</dl>
-
-<dl>
-<dt><a name="Current"></a><a href="Current.htm"><b>Current.htm</b></a>
-<dd> Information specifically about the current release of Ghostscript.
-See also the <a href="#News">latest news</a> of changes.
-</dl>
-
-<dl>
-<dt><a name="DLL"></a><a href="DLL.htm"><b>DLL.htm</b></a>
-<dd> On OS/2, MS Windows-16 and MS Windows-32 platforms, Ghostscript is
-compiled as a dynamic link library (DLL). This describes how to use it.
-For developers. <b>This DLL interface is obsolete.</b>
-Use <a href="#API"><b>API.htm</b></a> instead.
-</dl>
-
-<dl>
-<dt><a name="Develop"></a><a href="Develop.htm"><b>Develop.htm</b></a>
-<dd> Code orientation for developers. Contains a detailed breakdown of
-the source files by functional group, and overviews of the major
-architectural features and services.
-</dl>
-
-<dl>
-<dt><a name="Devices"></a><a href="Devices.htm"><b>Devices.htm</b></a>
-<dd> Detailed information about some specific devices for which Ghostscript
-can produce output. Run "<b><tt>gs&nbsp;-h</tt></b>" to see which
-devices a particular version of Ghostscript is built to use.
-</dl>
-
-<dl>
-<dt><a name="Drivers"></a><a href="Drivers.htm"><b>Drivers.htm</b></a>
-<dd> Describes the interface between Ghostscript and device drivers. If
-you do this, you should also read and use the <a href="#C-style">C style
-and coding guidelines</a>. Necessary to develop a new driver. For
-developers.
-</dl>
-
-<dl>
-<dt><a name="Fonts"></a><a href="Fonts.htm"><b>Fonts.htm</b></a> <dd> All
-about fonts freely available for Ghostscript, and how to add and use new
-fonts. Also describes how to use Ghostscript fonts as X Windows fonts. For
-both users and developers.
-</dl>
-
-<dl>
-<dt><a name="Helpers"></a><a href="Helpers.htm"><b>Helpers.htm</b></a>
-<dd> A note of thanks to people who have helped in the development of
-Ghostscript.
-</dl>
-
-<dl>
-<dt><a name="Hershey"></a><a href="Hershey.htm"><b>Hershey.htm</b></a>
-<dd> Part 1 of the five-part original Usenet distribution of the free
-Hershey fonts, giving the terms of use and describing their encoding.
-</dl>
-
-<dl>
-<dt><a name="History"></a><b>History*.htm</b>
-<dd> The history of changes in all Ghostscript releases:
-<blockquote>
-<a href="History7.htm">History7.htm</a> for Ghostscript versions 7.n<br>
-<a href="History6.htm">History6.htm</a> for Ghostscript versions 6.n<br>
-<a href="History5.htm">History5.htm</a> for Ghostscript versions 5.n<br>
-<a href="History4.htm">History4.htm</a> for Ghostscript versions 4.n<br>
-<a href="History3.htm">History3.htm</a> for Ghostscript versions 3.n<br>
-<a href="History2.htm">History2.htm</a> for Ghostscript versions 2.n<br>
-<a href="History1.htm">History1.htm</a> for Ghostscript versions 1.n
-</blockquote>
-</dl>
-
-<dl>
-<dt><a name="Htmstyle"></a><a href="Htmstyle.htm"><b>Htmstyle.htm</b></a>
-<dd> The guidelines and style for HTML coding of Ghostscript's
-documentation, which you should follow if, for example, you change existing
-HTML documentation or write new documents. For writers and editors.
-</dl>
-
-<dl>
-<dt><a name="Humor"></a><a href="Humor.htm"><b>Humor.htm</b></a>
-<dd> Another Ghostscript interpreter.
-</dl>
-
-<dl>
-<dt><a name="Install"></a><a href="Install.htm"><b>Install.htm</b></a>
-<dd> How to install Ghostscript. See also <a href="#Make">how to build
-it</a>.
-</dl>
-
-<dl>
-<dt><a name="Issues"></a><a href="Issues.htm"><b>Issues.htm</b></a>
-<dd> A list of outstanding open issues in Ghostscript. These include
-known limitations, minor bugs, performance issues, differences from
-Adobe implementations, and others.
-</dl>
-
-<dl>
-<dt><a name="Language"></a><a href="Language.htm"><b>Language.htm</b></a>
-<dd> The relationship between the Ghostscript interpreter and the
-PostScript language as defined by Adobe.
-</dl>
-
-<dl>
-<dt><a name="Lib"></a><a href="Lib.htm"><b>Lib.htm</b></a>
-<dd> A description of the Ghostscript library, a set of procedures to
-implement the graphics and filtering capabilities that are primitive
-operations in the PostScript language and in Adobe Portable Document Format
-(PDF). For developers.
-</dl>
-
-<dl>
-<dt><a name="Maintain"></a><a href="Maintain.htm"><b>Maintain.htm</b></a>
-<dd> Assorted Ghostscript maintenance procedures. For developers.
-</dl>
-
-<dl>
-<dt><a name="Make"></a><a href="Make.htm"><b>Make.htm</b></a>
-<dd> How to build Ghostscript executables from the source code. See also
-<a href="#Install">how to install it</a>. It's not necessary to be a highly
-experienced developer to build or install Ghostscript, but some experience
-is needed.
-</dl>
-
-<dl>
-<dt><a name="New-user"></a><a href="New-user.htm"><b>New-user.htm</b></a>
-<dd> Essential information for new users of Ghostscript.
-</dl>
-
-<dl>
-<dt><a name="News"></a><a href="News.htm"><b>News.htm</b></a>
-<dd> A brief description of the latest release or pre-release of
-Ghostscript, and a list of any incompatible changes in it. Changes in older
-releases are described in the history files "<b><tt>History*.htm</tt></b>",
-which are usually installed in the documentation directory. Run
-"<b><tt>gs&nbsp;-h</tt></b>" to see where that is.
-</dl>
-
-<dl>
-<dt><a name="Projects"></a><a href="Projects.htm"><b>Projects.htm</b></a>
-<dd> A list of Ghostscript development projects with which we would like
-help.
-</dl>
-
-<dl>
-<dt><a name="Ps-style"></a><a
-href="Ps-style.htm"><b>Ps-style.htm</b></a>
-<dd> The guidelines and style for postscript coding in Ghostscript. Some
-of Ghostscript is implemented in the postscript language itself, and
-various utilities and examples are distributed with it. You should
-follow these guidelines if you're extending or modifying those files.
-For developers.
-</dl>
-
-<dl>
-<dt><a name="Ps2epsi"></a><a href="Ps2epsi.htm"><b>Ps2epsi.htm</b></a>
-<dd> Detailed information on how to use Ghostscript through
-<tt><b>ps2epsi</b></tt> to convert PostScript to Adobe
-Encapsulated PostScript Interchange (EPSI) format.
-</dl>
-
-<dl>
-<dt><a name="Ps2pdf"></a><a href="Ps2pdf.htm"><b>Ps2pdf.htm</b></a>
-<dd> Detailed information on how to use Ghostscript through
-<tt><b>ps2pdf</b></tt> to convert PostScript to Adobe
-Portable Document Format (PDF).
-</dl>
-
-<dl>
-<dt><a name="Psfiles"></a><a href="Psfiles.htm"><b>Psfiles.htm</b></a>
-<dd> A description of the PostScript files (other than font files)
-distributed with Ghostscript, including initialization routines, utility
-programs, and sample printable files.
-</dl>
-
-<dl>
-<dt><a name="Readme"></a><b>Readme.htm</b>
-<dd> This document.
-</dl>
-
-<dl>
-<dt><a name="Release"></a><a href="Release.htm"><b>Release.htm</b></a>
-<dd> A description of how to prepare and test a Ghostscript release. Of
-interest only to developers who want to create new Ghostscript versions for
-distribution.
-</dl>
-
-<dl>
-<dt><a name="Source"></a><a href="Source.htm"><b>Source.htm</b></a>
-<dd> A guide to the Ghostscript source code, for development and debugging.
-</dl>
-
-<dl>
-<dt><a name="Unix-lpr"></a><a href="Unix-lpr.htm"><b>Unix-lpr.htm</b></a>
-<dd> How to set up Ghostscript as a Unix <tt><b>lpr</b></tt>
-filter.
-</dl>
-
-<dl>
-<dt><a name="Use"></a><a href="Use.htm"><b>Use.htm</b></a>
-<dd> Detailed instructions on how to use Ghostscript, including such
-matters as designating an output device; choosing a default paper size;
-how Ghostscript finds files, including font files; how it uses environment
-variables; notes on specific platforms, including the X Window System; and
-command-line options.
-</dl>
-
-<dl>
-<dt><a name="Xfonts"></a><a href="Xfonts.htm"><b>Xfonts.htm</b></a>
-<dd> Ghostscript's external font interface to a host platform's
-font-rendering mechanism, for developers.
-</dl>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Release.htm b/Master/xemtex/doc/ghostscript/Release.htm
deleted file mode 100644
index 561de32658c..00000000000
--- a/Master/xemtex/doc/ghostscript/Release.htm
+++ /dev/null
@@ -1,769 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>How to prepare a Ghostscript release</title>
-<!-- $Id: Release.htm,v 1.40.2.23.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: make.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>How to prepare a Ghostscript release</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#Servers">Servers</a>
-<ul>
-<li><a href="#Distribution">Distribution</a>
-</ul>
-<li><a href="#Making_distributions">Making distributions</a>
-<ul>
-<li><a href="#Preparing_source">Preparing the source code</a>
-<li><a href="#Testing">Testing</a>
-<li><a href="#Making_Tarballs">Making the source distribution</a>
-<li><a href="#Testing_on_Windows">Testing on Windows</a>
-<li><a href="#Windows_distribution">Building the Windows distribution</a>
-<li><a href="#Finishing_up">Finishing up</a>
-<li><a href="#Beta_distributions">Beta distributions</a>
-<li><a href="#Public_releases">Public releases</a>
-</ul>
-<li><a href="#After_releasing">After releasing</a>
-<li><a href="#Fonts">Fonts</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the instructions on how to <a href="Make.htm">build
-Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-This document describes the process that artofcode LLC, the copyright holder
-of Ghostscript, uses for making new Ghostscript releases. Please note
-that while the the license allows anyone to prepare and distribute
-releases in accordance with its terms and conditions, this document is
-really meant only to document the process used by artofcode LLC.
-However, the eventual purpose of this document is to describe
-Ghostscript release procedures in enough detail that someone who knows
-little about Ghostscript but is generally familiar with the platform on
-which the procedure is being carried out can execute the procedures
-correctly. So if you add or changing anything to/in this document,
-be sure to specify all command lines, file names, etc. in explicit
-detail.
-
-<p>
-File names below that don't include an explicit subdirectory name are in the
-<b><tt>src</tt></b> subdirectory.
-
-<p>
-If you do plan to make your own distribution, please be aware of some items
-you will want to change.
-
-<ul>
-
-<li>If you make any significant changes, please edit
-<b><tt>gscdef.c</tt></b> to change <b><tt>GS_PRODUCTFAMILY</tt></b> and
-<b><tt>GS_PRODUCT</tt></b> from "GNU Ghostscript" to something else,
-in order to avoid confusion with artofcode's releases.
-
-<li>In the same file, you may also want to edit <b><tt>GS_COPYRIGHT</tt></b>
-to add your own copyright notice (although you must not remove any
-notice that is there).
-
-<li>You will almost certainly want to edit <b><tt>version.mak</tt></b> to
-change the revision date, <b><tt>GS_REVISIONDATE</tt></b>.
-
-<li>If you want to change the version number, you must change it in both
-<b><tt>version.mak</tt></b> (<b><tt>GS_VERSION_</tt></b>*) and
-<b><tt>lib/gs_init.ps</tt></b> (the integer on a line by itself near the
-beginning of the file).
-
-</ul>
-
-<h2><a name="Servers"></a>Servers</h2>
-
-<p>
-The Ghostscript source files are maintained on sites accessible to
-the public. One specific site hosts the active CVS repository for code,
-data, and documentation, and the bug report data base; several sites
-offer distributions with version numbers, intended for wider
-distribution.
-
-<h3><a name="Distribution"></a>Distribution</h3>
-
-<p>
-The primary distribution site for GNU Ghostscript is the <a
-href="ftp://ftp.gnu.org/gnu/ghostscript/" class="offsite">GNU ftp
-site</a> and its <a
-href="http://www.gnu.org/prep/ftp.html" class="offsite">mirrors</a>.
-
-<p>
-Stable releases are also distributed from
-
-<blockquote>
-<a
-href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/"
-class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/</a>
-</blockquote>
-
-<h2><a name="Making_distributions"></a>Making distributions</h2>
-
-<p>
-This document only discusses source distributions. Source distributions
-currently can only be made on GNU/Linux systems (but it probably wouldn't
-take much work to support other Unix-like systems). Ghostscript as
-distributed also
-often includes executables or other packages for the Windows and MacOS
-environments, but artofcode does not produce these, and this document does not
-discuss them. For more information about Windows packages, please contact
-<a href="mailto:bug-gswin@ghostscript.com"><tt>bug-gswin@ghostscript.com</tt></a>;
-for more information about MacOS packages, please contact <a
-href="mailto:mac-gs@ghostscript.com"><tt>mac-gs@ghostscript.com</tt></a>.
-
-<p>
-To make a source distribution, you will need the scripts and data files in
-the <b><tt>toolbin/</tt></b> directory. The instructions below generally
-assume that you're invoking the relative to the top level of the source
-tree.
-
-To run the scripts, you will need reasonably current versions of Tcl,
-freely available from Scriptics
-(<a class="offsite" href="http://www.scriptics.com"><tt>http://www.scriptics.com</tt></a>), and
-Python, freely available from <a class="offsite"
-href="http://www.python.org"><tt>http://www.python.org</tt></a>.
-
-<p>
-The instructions below also refer to some files that are deliberately
-omitted from the public distribution, because they are not freely
-redistributable. You will need to provide similar files for your
-environment.
-
-<blockquote><pre>
-<b><tt>data/*/*.ps</tt></b> (PostScript files) - needed for smoke testing
-</pre></blockquote>
-
-<h3><a name="Preparing_source"></a>Preparing the source code</h3>
-
-<p>
-Update references to the date for release:
-
-<ul>
-
-<li>In <b><tt>lib/gs_init.ps</tt></b>, as an integer (release number
-x100) at the beginning of the file just after the initial comment
-blocks.
-
-<li>In <b><tt>version.mak</tt></b>, the numeric date.
-
-<li>In <b><tt>doc/News.htm</tt></b>, in two places, skipping the Id:
-line. That is, in parentheses after the <tt>VERSION X.YY</tt> heading,
-and in the copyright footer both the year and the release date.
-
-</ul>
-
-We recommend using a UTC release date to avoid timezone skew.
-
-<p>
-Also in <b><tt>doc/News.htm</tt></b>, update the number of the highest
-closed bug and the list of open bugs.
-
-<p>
-Check in <b><tt>gscdef.c</tt></b> that the definition of
-<b><tt>GS_PRODUCT</tt></b> includes the appropriate one of "DEVELOPMENT
-RELEASE", "BETA RELEASE", or neither, and does not include "CVS
-PRE-RELEASE".
-
-<p>Run the source-consistency checks from the test suite:
-
-<blockquote><pre>
-toolbin/tests/check_all.py --gsroot=.
-</pre></blockquote>
-Where the argument of --gsroot is the path to the top level of the
-source tree. Fix any problems it indicates, and commit them to cvs.
-
-<p>
-Check for patched configuration parameters, <b><tt>#define TEST</tt></b>s,
-version/date inconsistencies, and mismatches between the working directory
-and the CVS repository by running:
-
-<blockquote><pre>
-toolbin/pre
-</pre></blockquote>
-
-<p>
-This program compares the result of various greps against a check file,
-writing the results of grep on one output file and the differences from the
-check file on another. See the source code of
-<b><tt>toolbin/pre</tt></b> for the default file names. The
-important one is the check file,
-<b><tt>toolbin/pre.chk</tt></b>. <b><tt>pre</tt></b> also verifies
-that the
-right information is in the following places:
-<ul>
-<li>version number in <b><tt>man/*.1</tt></b>, <b><tt>doc/*.htm</tt></b>,
-<b><tt>version.mak</tt></b>, <b><tt>doc/gs-vms.hlp</tt></b>,
-<b><tt>lib/gs_init.ps</tt></b>
-<li>revision date in <b><tt>man/*.1</tt></b>, <b><tt>doc/*.htm</tt></b>,
-<b><tt>version.mak</tt></b>, <b><tt>doc/gs-vms.hlp</tt></b>
-<li>copyright year (if necessary) in <b><tt>gscdef.c</tt></b>
-<li>third-party library version number in <b><tt>*.mak</tt></b>
-</ul>
-
-<p>
-If necessary, run
-
-<blockquote><pre>
-toolbin/pre update
-</pre></blockquote>
-
-<p>
-to update the version and revision date in the doc files, and then run
-
-<blockquote><pre>
-toolbin/pre
-</pre></blockquote>
-
-<p>
-again. To confirm that everything is updated. You may have to commit to
-cvs after the update to satify the script that all the dates are
-correct.
-
-<p>
-Check the consistency of the source code with the makefiles by
-running:
-
-<blockquote><pre>
-toolbin/gsmake.tcl check
-</pre></blockquote>
-
-This script assumes the top level makefile is named '<tt>makefile</tt>'.
-
-<p>
-Fix any problems and commit to cvs.
-
-<h3><a name="Testing"></a>Testing</h3>
-
-<p>
-Edit your top-level the Makefile to set
-<blockquote><pre>
-FEATURE_DEVS=$(FEATURE_DEVS_ALL)
-COMPILE_INITS=1
-</pre></blockquote>
-
-<p>
-This will help catch compilation problems.
-
-<p>
-Run
-
-<blockquote><pre>
-rm obj/*
-make -j2 &gt;&amp; make.log
-</pre></blockquote>
-
-<p>
-and look for warnings and errors in the log file.
-
-<p>
-Do a smoke test, updating the example paths as necessary:
-
-<blockquote><pre>
-unset GS_DEVICE GS_FONTPATH GS_LIB GS_OPTIONS
-./bin/gs -I./lib -I./fonts -dNOPAUSE -dBATCH /gs/toolbin/smoke.ps
-./bin/gs -I./lib -I./fonts -dNOPAUSE -dBATCH -sDEVICE=bitcmyk\
- -sOutputFile=/dev/null -r600 -dBufferSpace=50000 /gs/toolbin/smoke.ps
-</pre></blockquote>
-
-<p>
-This reads files named
-
-<blockquote><pre>
-<b><tt>data/misc/*.ps</tt></b>
-<b><tt>data/ps/*.ps</tt></b>
-<b><tt>data/psl2/*.ps</tt></b>
-<b><tt>data/psl3/*.ps</tt></b>
-<b><tt>data/pdf/*.pdf</tt></b>
-</pre></blockquote>
-
-<p>
-(Edit <b><tt>toolbin/smoke.ps</tt></b> to use other test sets.)
-Watch for crashes, unusual error messages, or anomalous displayed output.
-If there are any problems, start over from the beginning of the process.
-
-<p>
-Undo the <b><tt>FEATURE_DEVS</tt></b> and <b><tt>COMPILE_INITS</tt></b>
-edits.
-
-<p>
-Run
-
-<blockquote><pre>
-cvs commit
-</pre></blockquote>
-
-<p>
-to ensure the repository is up to date.
-
-<p>
-Execute
-
-<blockquote><pre>
-toolbin/cvs2hist.py -j &lt;previous_tag&gt; -r '-r&lt;branch_tag&gt;' -v &lt;new_version&gt; &gt; doc/Changes.htm
-</pre>
-e.g. <pre>toolbin/cvs2hist.py -j gs7_04 -r '-rGS_7_0X' -v 7.05</pre>
-</blockquote>
-
-<p>
-This consolidates all the CVS logs since the previous release in a readable
-format. Note: the cvs2hist.py tool currently in the distribution is not
-very branch-aware (nor is the 'cvs log' command it depends on) so the extra
-complication of the -j and -r options are required when generating the Changes
-for a non-HEAD branch of Ghostscript. Note that the -r option should be
-an empty '-b' when generating logs for the cvs main branch due to
-variations in naming.
-
-<p>
-Run
-
-<blockquote><pre>
-tclsh
-% source toolbin/makeset.tcl
-% makehist
-</pre></blockquote>
-
-<p>
-This updates <b><tt>doc/History#.htm</tt></b> from
-<b><tt>doc/News.htm</tt></b> and <b><tt>doc/Changes.htm</tt></b>.
-
-Then run
-
-<blockquote><pre>
-cvs commit
-</pre></blockquote>
-
-<p>
-again to check in the Changes and history files.
-
-<h3><a name="Making_Tarballs"></a>Making the source distribution</h3>
-
-<p>
-First, tag the versions of the files in cvs with the release version
-number.
-
-<blockquote>
-<pre><tt>cvs tag gs#_##</tt></pre>
-</blockquote>
-
-If you've already tagged this release (e.g. in making an earlier
-release candidate) you'll need to add the <tt>-r</tt> and <tt>-F</tt>
-options after 'cvs tag' to force moving the tag to the new revisions
-of changed files.
-
-<p>
-Pull a fresh copy for distribution from the cvs repository:
-
-<blockquote><pre>
-<tt>cvs -z3 -d &lt;ghostscript cvsroot&gt; export -r gs#_## -d ghostscript-#.## gs</tt>
-</pre></blockquote>
-
-
-<p>
-Generate the text versions of the README document:
-
-<blockquote>
-<pre><tt>cd ghostscript-#.##</tt>
-<tt>lynx -dump -nolist doc/Readme.htm &gt; doc/README</tt>
-</blockquote>
-
-<p>
-For the unix source distributions only, generate the configure
-scripts. From the top level directory, run
-
-<blockquote><pre><tt>./autogen.sh</tt>
-<tt>make distclean</tt>
-</pre></blockquote>
-
-This should create links to <tt>configure.ac</tt> and
-<tt>Makefile.in</tt> in the top level directory and
-invoke autoconf to create the <tt>configure</tt> script.
-
-<p>
-Also, run <tt>autoconf</tt> in the ijs subdir to create the configure script
-for that package.
-
-<p>
-Move back to directory containing the distribution code and make the
-source archives with:
-
-<blockquote><pre>
-<tt>tar cvzf ghostscript-#.##.tar.gz ghostscript-#.##/*</tt>
-<tt>zcat ghostscript-#.##.tar.gz | bzip2 -c > ghostscript-#.##.tar.bz2</tt>
-</pre></blockquote>
-
-<p>
-This creates the files
-
-<blockquote><pre>
-<b><tt>ghostscript-#.##.tar.gz</tt></b> (main archive)
-<b><tt>ghostscript-#.##.tar.bz2</tt></b> (main archive)
-</pre></blockquote>
-
-<p>
-The important issue is that the tarballs unpack into a directory
-of the same name, and that the code be a pristine copy without
-build or CVS housekeeping files.
-
-<p>
-It is also customary to make a <tt>gs###src.zip</tt> archive for the
-convenience of windows developers. See below.
-
-<h3><a name="Testing_on_Windows"></a>Testing on Windows</h3>
-
-<p>
-For Windows testing, you will need, in addition to the files listed
-under "<a href="#Preparing_source">Preparing the source</a>" above:
-<blockquote><pre>
-<b><tt>toolbin/makewin</tt></b> (link to <b><tt>makeset.tcl</tt></b>)
-</pre></blockquote>
-
-<p>
-The following procedures rely on a large number of MS-DOS batch scripts that
-are not discussed here: they are unlikely to be generally useful.
-
-<p>
-Mount the Windows partition on <b><tt>/c</tt></b>, and create the
-<b><tt>/c/work</tt></b> directory if needed.
-
-<p>
-Make the zip archive of all files needed for a Windows build, and copy it to
-the Windows partition:
-
-<blockquote><pre>
-toolbin/makewin
-cp gs###.zip /c/work
-</pre></blockquote>
-
-<p>
-Boot into Windows. Unpack the archive:
-
-<blockquote><pre>
-cd \work
-unzip -oq gs###.zip
-gs###
-</pre></blockquote>
-
-<p>
-The <b><tt>gs###.bat</tt></b> script creates some necessary directories,
-sets up <b><tt>PATH</tt></b> and <b><tt>GS_LIB</tt></b> for testing, and
-makes the <b><tt>gs#.##</tt></b> directory current.
-
-<p>
-Build with the Borland compiler:
-
-<blockquote><pre>
-config bcwin32
-copy /y /b ..\gs\makefile
-erase obj\*.*
-make > bc.log
-</pre></blockquote>
-
-<p>
-Smoke test the executables (both <b><tt>gswin32</tt></b> and
-<b><tt>gswin32c</tt></b>), as described above for source distributions.
-Then build with the Microsoft compiler:
-
-<blockquote><pre>
-config msvc32
-copy /y /b ..\gs\makefile
-erase obj\*.*
-nmake > msvc.log
-</pre></blockquote>
-
-<p>
-Smoke test these executables too.
-
-<p>
-Building with the Watcom compiler doesn't work, because the
-<b><tt>wmake</tt></b> or <b><tt>wmakel</tt></b> program runs out of memory.
-However, if it did work, this is how to do it:
-
-<blockquote><pre>
-config watcw32
-copy /y /b ..\gs\makefile
-erase obj\*.*
-wmake -u > watc.log
-</pre></blockquote>
-
-<p>
-Boot back into GNU/Linux. If testing in Windows revealed problems, edit the
-source files as necessary, and go back to <a
-href="#Preparing_source">"Preparing the source code."</a>
-
-<h3><a name="Windows_distribution"></a>Building the Windows distribution</h3>
-<p>
-Extract the sources from <b><tt>ghostscript-N.NN.tar.gz</tt></b>
-then repackage in a zip file as follows:
-<blockquote>
-<b><tt>zip -r temp.zip gsN.NN/doc gsN.NN/examples gsN.NN/icclib
- gsN.NN/ijs gsN.NN/lib gsN.NN/src</tt></b>
-</blockquote>
-Unzip converting the line endings to CRLF:
-<blockquote>
-<b><tt>unzip -a temp.zip<br>
-del temp.zip</tt></b>
-</blockquote>
-Then finally zip up the sources to the distribution file:
-<blockquote>
-<b><tt>zip -9 -r gsNNNsrc.zip gsN.NN</tt></b>
-</blockquote>
-This method is reasonably portable, and does not convert binary
-files such as
-<b><tt><a href="../examples/annots.pdf">examples/annots.pdf</a></tt></b>.
-<p>
-Unzip <b><tt>gsNNNsrc.zip</tt></b>.
-The directory must be named <b><tt>gsN.NN</tt></b>.
-<p>
-Extract the fonts <b><tt>gnu-gs-fonts-std-6.0.tar.gz</tt></b>
-into a directory <b><tt>fonts</tt></b> adjacent to the
-<b><tt>gsN.NN</tt></b> directory.
-The fonts are needed in this location for building
-the distribution archive later.
-<p>
-You will need the command line Info-Zip zip program available from
-<a href="http://www.info-zip.org/pub/infozip/">
-http://www.info-zip.org/pub/infozip/</a>
-Alternatively, the command line version of WinZip
-(<b><tt>wzzip.exe</tt></b>) can be used by replacing the
-Info-Zip command line options <b><tt>-9 -r</tt></b>
-with <b><tt>-ex -P</tt></b> in
-<b><tt><a href="../src/winint.mak">winint.mak</a></tt></b>.
-<p>
-You will need WinZip Self-Extractor for building the
-self extracting archive. This is commercial software.
-You may need to update the path <b><tt>WINZIPSE_XE</tt></b> in
-<b><tt><a href="../src/winint.mak">winint.mak</a></tt></b>.
-<p>
-Unzip the jpeg, libpng and zlib libraries, then make ghostscript
-as documented in <a href="Make.htm">Make.htm</a>.
-<p>
-Run the command <b><tt>nmake archive</tt></b>. This builds the distribution
-archive <b><tt>gsNNNw32.exe</tt></b> and an ordinary zip file
-<b><tt>gsNNNw32.zip</tt></b> in the parent directory.
-If you do not have WinZip Self-Extractor, you can use
-<b><tt>nmake zip</tt></b> to make <b><tt>gsNNNw32.zip</tt></b> only.
-
-<h3><a name="Finishing_up"></a>Finishing up</h3>
-
-<p>
-Upload <b><tt>ghostscript-#.##.tar.*</tt></b> to SourceForge (by anonymous
-FTP to <b><tt>upload.sourceforge.net</tt></b>, directory
-<b><tt>/incoming</tt></b>), and then post it using the "File Release"
-facility in the Ghostscript project.
-If this is a GNU release, put it in the <b><tt>gnu-gs</tt></b> module.
-If this is a test release or beta release, put
-it in the <b><tt>gs-devel</tt></b> or <b><tt>gs-beta</tt></b> module,
-respectively.
-If you are adding executable builds or source archives for other
-platforms to an existing source release, please use the same release
-date as the source release, not the current date.
-
-<h3><a name="Beta_distributions"></a>Beta distributions</h3>
-
-<p>
-Do the steps for distributions in general.
-
-<p>
-Upload <b><tt>ghostscript-#.##.tar.*</tt></b> to the testing directory on
-mirror.cs.wisc.edu.
-
-<p>
-Send an email announcement to the <tt>gs-test</tt> list
-announcing the new release.
-
-<h3><a name="Public_releases"></a>Public releases</h3>
-
-<p>
-Update the title (current version #), first heading (previous version #),
-and "new features" and "known problems" lists in
-<b><tt>doc/Current.htm</tt></b>.
-
-<p>
-Do the steps for distributions in general.
-
-<p>
-Create a directory at
-<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/gs###/</tt></b>.
-In that
-directory, store the following files:
-
-<ul>
-
-<li>Standard distribution files:
-
-<blockquote><pre>
-<b><tt>ghostscript-#.##.tar.gz</tt></b>
-<b><tt>ghostscript-#.##.tar.bz2</tt></b>
-</pre></blockquote>
-
-<li>MS Windows source and executables:
-
-<blockquote><pre>
-<b><tt>gs###src.zip</tt></b>
-<b><tt>gs###w32.exe</tt></b>
-<b><tt>gs###w32.zip</tt></b>
-</pre></blockquote>
-
-<li>Third-party libraries, as links (upload these if not installed), where
-<b><tt>$$$</tt></b> et al. refer to the version number of the library, which
-should be the latest compatible release of the library and should be
-consistent with the values of and version numbers specifically listed in
-the makefiles.
-
-<blockquote><pre>
-<b><tt>jpegsrc.v$$.tar.gz</tt></b> -> <b><tt>../../3rdparty/jpegsrc.v$$.tar.gz</tt></b>
-<b><tt>libpng-$.$.$.tar.gz</tt></b> -> <b><tt>../../3rdparty/libpng-$.$.$.tar.gz</tt></b>
-<b><tt>zlib-$.$.$.tar.gz</tt></b> -> <b><tt>../../3rdparty/zlib-$.$.$.tar.gz</tt></b>
-<b><tt>jpegsr$$.zip</tt></b> -> <b><tt>../../3rdparty/jpegsr$$.zip</tt></b>
-<b><tt>lpng$$$.zip</tt></b> -> <b><tt>../../3rdparty/lpng$$$.zip</tt></b>
-<b><tt>zlib$$$.zip</tt></b> -> <b><tt>../../3rdparty/zlib$$$.zip</tt></b>
-</pre></blockquote>
-
-In any case, the names of the links in the distribution directory should reflect
-the original name of the upstream file.
-
-<li>Fonts, where <b><tt>$.$$</tt></b> refers to the most recent version
-number of the fonts:
-
-<blockquote><pre>
-<b><tt>ghostscript-fonts-other-$.$.tar.gz</tt></b> -> <b><tt>../fonts/ghostscript-fonts-other-$.$.tar.gz</tt></b>
-<b><tt>ghostscript-fonts-std-$.$.tar.gz</tt></b> -> <b><tt>../fonts/ghostscript-fonts-std-$.$.tar.gz</tt></b>
-</pre></blockquote>
-
-</ul>
-
-<p>
-(Note that the link names are somewhat inconsistent: some of them retain the
-version number of the file being referenced, and some of them use the
-Ghostscript version number. This is a historical artifact that might be
-changed someday.)
-
-<p>
-E-mail the release announcement using:
-<blockquote><pre>
-To: gs-announce
-</pre></blockquote>
-
-<p>
-Edit the Web pages in cvs and commit to reflect the new release.
-The Wisconsin server should update automatically.
-
-<h2><a name="After_releasing"></a>After releasing</h2>
-
-<p>
-E-mail the full URL and the <b><tt>md5sum</tt></b> of the new archive(s) to
-<a href="mailto:ftp-upload@gnu.org"><tt>ftp-upload@gnu.org</tt></a>. This
-will allow the site maintainers to add the new release to the GNU
-distribution network.
-
-<p>
-It may also be helpful to have the Free Software Foundation review the
-code before release to see whether it meets their standards for
-distribution from the gnu.org website.
-
-<p>
-Update the version number by incrementing it:
-
-<ul>
-
-<li>In <b><tt>lib/gs_init.ps</tt></b>, at the very beginning of the file.
-
-<li>In <b><tt>version.mak</tt></b>, in 3 definitions.
-
-<li>In <b><tt>doc/News.htm</tt></b>, in 4 places.
-
-</ul>
-
-<p>
-In <b><tt>gscdef.c</tt></b>, edit the definition of
-<b><tt>GS_PRODUCT</tt></b> to include "CVS PRE-RELEASE".
-
-<p>
-Edit <b><tt>doc/News.htm</tt></b> to remove all the content.
-
-
-<h2><a name="Fonts"></a>Fonts</h2>
-
-<p>
-artofcode LLC distributes a package of the base 35 PostScript fonts, and a
-package of other miscellaneous fonts. These are released with a
-licence matching that of the Ghostscript code.
-
-<p>
-To make the font packages, run the command
-
-<blockquote><pre>
-toolbin/makefonts #.##
-</pre></blockquote>
-
-<p>
-This creates the following files:
-
-<blockquote><pre>
-ghostscript-fonts-std-#.##.tar.gz
-ghostscript-fonts-other-#.##.tar.gz
-gnu-gs-fonts-std-#.##.tar.gz
-gnu-gs-fonts-other-#.##.tar.gz
-</pre></blockquote>
-
-<p>
-The second two should be uploaded to
-<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/fonts/</tt></b>,
-and the url and md5sum sent to the GNU ftp maintainers as with the
-ghostscript source.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1999-2002 artofcode LLC. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Source.htm b/Master/xemtex/doc/ghostscript/Source.htm
deleted file mode 100644
index 348920b4e22..00000000000
--- a/Master/xemtex/doc/ghostscript/Source.htm
+++ /dev/null
@@ -1,383 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Guide to Ghostscript source code</title>
-<!-- $Id: Source.htm,v 1.13.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: source.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Guide to Ghostscript source code</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Overview">Conceptual overview</a>
-<li><a href="#PostScript_interpreter">PostScript Interpreter</a>
-<li><a href="#PDF_interpreter">PDF interpreter</a>
-<li><a href="#Graphics_library">Graphics library</a>
-<ul>
-<li><a href="#Drivers">Device drivers</a>
-<li><a href="#Platform_specific_code">Platform-specific code</a>
-</ul>
-<li><a href="#Makefiles">Makefiles</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the documents on <a href="Make.htm">how to build
-Ghostscript</a> from source, <a href="C-style.htm">Ghostscript C coding
-guidelines</a>, <a href="Drivers.htm">drivers</a>, the
-<a href="Lib.htm">Ghostscript library</a> and <a href="Install.htm">how to
-install Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Overview"></a>Conceptual overview</h2>
-
-<p>
-The Ghostscript source code is divided conceptually as follows:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr valign=top> <th align=left colspan=4><a href="#PostScript_interpreter">PostScript interpreter</a>:
-<tr valign=top> <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td>PostScript operators
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <td><b><tt>z</tt></b>*<b><tt>.h</tt></b> and <b><tt>z</tt></b>*<b><tt>.c</tt></b>
-<tr valign=top> <td>&nbsp;
- <td>Other interpreter code
- <td>&nbsp;
- <td><b><tt>i</tt></b>*<b><tt>.h</tt></b> and <b><tt>i</tt></b>*<b><tt>.c</tt></b>
-<tr valign=top> <td>&nbsp;
- <td>PostScript code
- <td>&nbsp;
- <td><b><tt>gs_</tt></b>*<b><tt>.ps</tt></b>
-<tr valign=top> <th align=left colspan=4><a href="#PDF_interpreter">PDF interpreter</a>:
-<tr valign=top> <td>&nbsp;
- <td>PostScript code
- <td>&nbsp;
- <td><b><tt>pdf_</tt></b>*<b><tt>.ps</tt></b>
-<tr valign=top> <th align=left colspan=4><a href="#Graphics_library">Graphics library</a>:
-<tr valign=top> <td>&nbsp;
- <td>Main library code
- <td>&nbsp;
- <td><b><tt>g</tt></b>*<b><tt>.h</tt></b> and <b><tt>g</tt></b>*<b><tt>.c</tt></b>
-<tr valign=top> <td>&nbsp;
- <td>Streams
- <td>&nbsp;
- <td><b><tt>s</tt></b>*<b><tt>.h</tt></b> and <b><tt>s</tt></b>*<b><tt>.c</tt></b>
-<tr valign=top> <td>&nbsp;
- <td><a href="#Drivers">Device drivers</a>
- <td>&nbsp;
- <td><b><tt>gdev</tt></b>*<b><tt>.h</tt></b> and <b><tt>gdev</tt></b>*<b><tt>.c</tt></b>
-<tr valign=top> <td>&nbsp;
- <td><a href="#Platform_specific_code">Platform-specific code</a>
- <td>&nbsp;
- <td><b><tt>gp</tt></b>*<b><tt>.h</tt></b> and <b><tt>gp</tt></b>*<b><tt>.c</tt></b>
-</table></blockquote>
-
-<hr>
-
-<h2><a name="PostScript_interpreter"></a>PostScript Interpreter</h2>
-
-<p>
-<b><tt>gs.c</tt></b> is the main program for the interactive language
-interpreter; <b><tt>gserver.c</tt></b> is an alternative main program that
-is a rudimentary server. If you configure Ghostscript as a server rather
-than an interactive program, you will use <b><tt>gserver.c</tt></b> instead
-of <b><tt>gs.c</tt></b>.
-
-<p>
-Files named <b><tt>z</tt></b>*<b><tt>.c</tt></b> are Ghostscript operator
-files. The names of the files generally follow the section headings of the
-operator summary in section 6.2 (Second Edition) or 8.2 (Third Edition) of
-the PostScript Language Reference Manual. Each operator XXX is implemented
-by a procedure named <b><tt>z</tt></b>XXX, for example,
-<b><tt>zfill</tt></b> and <b><tt>zarray</tt></b>.
-
-<p>
-Files named <b><tt>i</tt></b>*<b><tt>.c</tt></b>, and *<b><tt>.h</tt></b>
-other than <b><tt>g</tt></b>*<b><tt>.h</tt></b>, are the rest of the
-interpreter. See the makefile for a little more information on how the
-files are divided functionally.
-
-<p>
-The main loop of the PostScript interpreter is the <b><tt>interp</tt></b>
-procedure in <b><tt>interp.c</tt></b>. When the interpreter is reading
-from an input file, it calls the token scanner in
-<b><tt>iscan</tt></b>*<b><tt>.c</tt></b>.
-
-<p>
-<b><tt>idebug.c</tt></b> contains a lot of debugger-callable routines
-useful for printing PostScript objects when debugging.
-
-<hr>
-
-<h2><a name="PDF_interpreter"></a>PDF interpreter</h2>
-
-<p>
-The PDF interpreter is written entirely in PostScript. Its main loop is
-the <b><tt>.pdfrun</tt></b> procedure in <b><tt>pdf_base.ps</tt></b>. When
-the PDF interpreter is configured into the build, it redefines the
-"<b><tt>run</tt></b>" operator to test whether the file is a PDF file.
-This redefinition is near the beginning of <b><tt>pdf_main.ps</tt></b>.
-
-<hr>
-
-<h2><a name="Graphics_library"></a>Graphics library</h2>
-
-<p>
-Files beginning with <b><tt>gs</tt></b>, <b><tt>gx</tt></b>, or
-<b><tt>gz</tt></b> (both <b><tt>.c</tt></b> and <b><tt>.h</tt></b>), other
-than <b><tt>gs.c</tt></b> and <b><tt>gserver.c</tt></b>, are the
-Ghostscript library. Files beginning with <b><tt>gdev</tt></b> are device
-drivers or related code, also part of the library. Other files beginning
-with <b><tt>g</tt></b> are library files that don't fall neatly into either
-the kernel or the driver category.
-
-<p>
-Files named <b><tt>s</tt></b>*<b><tt>.c</tt></b> and
-<b><tt>s</tt></b>*<b><tt>.h</tt></b> are a flexible stream package,
-including the Level 2 PostScript "filters" supported by Ghostscript. See
-<b><tt>stream.h</tt></b>, <b><tt>scommon.h</tt></b>, and
-<b><tt>strimpl.h</tt></b> for all the details.
-
-<h3><a name="Drivers"></a>Device drivers</h3>
-
-<p>
-The interface between the graphics library and device drivers is the only
-really well documented one in all of Ghostscript: see the
-<a href="Drivers.htm">documentation on drivers</a>.
-
-<p>
-In addition to many real device and file format drivers listed in
-<b><tt>devs.mak</tt></b> and <b><tt>contrib.mak</tt></b>, a number of
-drivers are used for internal purposes. You can search
-<b><tt>lib.mak</tt></b> for files named
-<b><tt>gdev</tt></b>*<b><tt>.c</tt></b> to find almost all of them.
-
-<p>
-Drivers are divided into "printer" drivers, which support banding, and
-non-printer drivers, which don't. The decision whether banding is
-required is made (by default on the basis of how much memory is available)
-in the procedure <b><tt>gdev_prn_alloc</tt></b> in
-<b><tt>gdevprn.c</tt></b>: it implements this decision by filling the
-virtual procedure table for the printer device in one of two different
-ways.
-
-<p>
-A good simple "printer" (bandable) driver to read is
-<b><tt>gdevmiff.c</tt></b>: it's less than 100 lines, of which much is
-boilerplate. There are no simple non-printer drivers that actually drive
-devices: probably the simplest non-printer driver for reading is
-<b><tt>gdevm8.c</tt></b>, which implements 8-bit-deep devices that only
-store the bits in memory.
-
-<h3><a name="Platform_specific_code"></a>Platform-specific code</h3>
-
-<p>
-There are very few platform dependencies in Ghostscript. Ghostscript deals
-with them in three ways:
-
-<ul>
-<li>Files named *<b><tt>_.h</tt></b> substitute for the corresponding
-<b><tt>&lt;</tt></b>*<b><tt>.h&gt;</tt></b> file by adding conditionals
-that provide a uniform set of system interfaces on all platforms.
-
-<li>The file <b><tt>arch.h</tt></b> contains a set of
-mechanically-discovered platform properties like byte order, size of
-<b><tt>int</tt></b>, etc. These properties, <b>not</b> the names of
-specific platforms, are used to select between different algorithms or
-parameters at compile time.
-
-<li>Files named <b><tt>gp</tt></b>*<b><tt>.h</tt></b> define interfaces
-that are intended to be implemented differently on each platform, but whose
-specification is common to all platforms.
-</ul>
-
-<p>
-The platform-specific implementations of the
-<b><tt>gp</tt></b>*<b><tt>.h</tt></b> interfaces have names of the form
-"<b><tt>gp_</tt></b><em>{platform}</em><b><tt>.c</tt></b>, specifically
-(this list may be out of date):
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Platform-specific interfaces</font><hr>
-<tr valign=bottom>
- <th align=left>Routine
- <td>&nbsp;&nbsp;&nbsp;&nbsp;
- <th align=left>Platform
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>gp_dosfb.c</tt></b>
- <td>&nbsp;
- <td>DOS
-<tr valign=top> <td><b><tt>gp_dosfs.c</tt></b>
- <td>&nbsp;
- <td>DOS and MS Windows
-<tr valign=top> <td><b><tt>gp_itbc.c</tt></b>
- <td>&nbsp;
- <td>DOS, Borland compilers
-<tr valign=top> <td><b><tt>gp_iwatc.c</tt></b>
- <td>&nbsp;
- <td>DOS, Watcom or Microsoft compiler
-<tr valign=top> <td><b><tt>gp_msdos.c</tt></b>
- <td>&nbsp;
- <td>DOS and MS Windows
-<tr valign=top> <td><b><tt>gp_ntfs.c</tt></b>
- <td>&nbsp;
- <td>MS-Windows Win32s and Windows NT
-<tr valign=top> <td><b><tt>gp_os2.c</tt></b>
- <td>&nbsp;
- <td>OS/2
-<tr valign=top> <td><b><tt>gp_os9.c</tt></b>
- <td>&nbsp;
- <td>OS-9
-<tr valign=top> <td><b><tt>gp_unifs.c</tt></b>
- <td>&nbsp;
- <td>Unix, OS-9, and QNX
-<tr valign=top> <td><b><tt>gp_unix.c</tt></b>
- <td>&nbsp;
- <td>Unix and QNX
-<tr valign=top> <td><b><tt>gp_sysv.c</tt></b>
- <td>&nbsp;
- <td>System V Unix
-<tr valign=top> <td><b><tt>gp_vms.c</tt></b>
- <td>&nbsp;
- <td>VMS
-<tr valign=top> <td><b><tt>gp_win32.c</tt></b>
- <td>&nbsp;
- <td>MS-Windows Win32s and Windows NT
-</table></blockquote>
-
-<p>
-If you are going to extend Ghostscript to new machines or operating
-systems, check the *<b><tt>_.h</tt></b> files for <b><tt>ifdef</tt></b> on
-things other than <b><tt>DEBUG</tt></b>. You should probably plan to make
-a new makefile and a new <b><tt>gp_</tt></b>XXX<b><tt>.c</tt></b> file.
-
-<hr>
-
-<h2><a name="Makefiles"></a>Makefiles</h2>
-
-<p>
-This section is only for advanced developers who need to integrate
-Ghostscript into a larger program at build time.
-
-<p>
-NOTE: THIS SECTION IS INCOMPLETE. IT WILL BE IMPROVED IN A LATER REVISION.
-
-<p>
-The Ghostscript makefiles are meant to be organized according to the
-following two principles:
-
-<ul>
-
-<li>All the parameters that vary from platform to platform appear in the
-top-level makefile for a given platform. ("Platform" = OS + compiler +
-choice of interpreter vs. library)
-
-<li>All the rules and definitions that can meaningfully be shared among more
-than 1 platform appear in a makefile that is "included" by a makefile
-(normally the top-level makefile) for those platforms.
-</ul>
-
-<p>
-Thus, for example:
-
-<ul>
-
-<li>Rules and definitions shared by all builds are in
-<b><tt>gs.mak</tt></b>.
-
-<li>Rules and definitions specific to the library (on all platforms) are in
-<b><tt>lib.mak</tt></b>. In principle this could be merged with
-<b><tt>gs.mak</tt></b>, but we wanted to leave open the possibility that
-<b><tt>gs.mak</tt></b> might be useful with hypothetical interpreter-only
-products.
-
-<li>Stuff specific to interpreters (on all platforms) is in
-<b><tt>int.mak</tt></b>.
-
-<li>Stuff specific to all Unix platforms should be in a single
-<b><tt>unix.mak</tt></b> file, but because <b><tt>make</tt></b> sometimes
-cares about the order of definitions, and because some of it is shared with
-DV/X, it got split between <b><tt>unix-aux.mak</tt></b>,
-<b><tt>unix-end.mak</tt></b>, <b><tt>unixhead.mak</tt></b>,
-<b><tt>unixinst.mak</tt></b>, and <b><tt>unixlink.mak</tt></b>.
-
-</ul>
-
-<p>
-For MS-DOS and MS Windows builds, there should be:
-
-<ul>
-
-<li>A makefile for all MS OS (DOS or Windows) builds, for all
- compilers and products.
-
-<li>Perhaps a makefile for all MS-DOS builds, for all compilers and
-products, although since Watcom is the only such compiler we're likely to
-support this may be overkill.
-
-<li>A makefile for all MS Windows builds, for all compilers and products.
-
-<li>A makefile for all Watcom builds (DOS or Windows), for all products.
-
-<li>A top-level makefile for the Watcom DOS interpreter product.
-
-<li>A top-level makefile for the Watcom Windows interpreter product.
-
-<li>A top-level makefile for the Watcom DOS library "product".
-
-<li>A top-level makefile for the Watcom Windows library "product".
-
-<li>A makefile for all Borland builds (DOS or Windows), for all
- products.
-
-</ul>
-
-<p>
-and so on.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises. All
-rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Unix-lpr.htm b/Master/xemtex/doc/ghostscript/Unix-lpr.htm
deleted file mode 100644
index a92e7809534..00000000000
--- a/Master/xemtex/doc/ghostscript/Unix-lpr.htm
+++ /dev/null
@@ -1,267 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Setting up a Unix lpr filter for Ghostscript</title>
-<!-- $Id: Unix-lpr.htm,v 1.13.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: unix-lpr.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Setting up a Unix <tt>lpr</tt> filter for Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Overview">Overview</a>
-<li><a href="#What_it_can_do">What it can do</a>
-<li><a href="#Setting_up">Setting it up</a>
-<ul>
-<li><a href="#Editing_device_list">Editing the device list <b><tt>DEVICES</tt></b></a>
-<ul>
-<li><a href="#Field_bpp">Field 1: bits per pixel</a>
-<li><a href="#Field_colours">Field 2: colours</a>
-<li><a href="#Field_dq">Field 3: dual queues</a>
-<li><a href="#Device_example">Example definition of <b><tt>DEVICES</tt></b></a>
-</ul>
-<li><a href="#Editing_filter_list">Editing the filter list</a>
-<li><a href="#Editing_printer_port">Editing the printer port and type</a>
-<li><a href="#Modifying_printcap_insert">Modifying <b><tt>printcap.insert</tt></b></a>
-<li><a href="#Multiple_queues">Single or dual queues</a>
-</ul>
-<li><a href="#Bugs">Bugs</a>
-<li><a href="#Authors">Authors</a>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a> and the <a href="Use.htm">usage documentation</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Overview"></a>Overview</h2>
-
-<p>
-"How do I set up Ghostscript to provide PostScript queues in a standard lpr
-environment on Unix systems?" is a Frequently Asked Question amongst
-Ghostscript users. The two shell scripts described by this document are
-designed to make this task a little easier. They are
-
-<blockquote><dl>
-<dt><b><tt>unix-lpr.sh</tt></b>
-<dd>a flexible, multi-option print filter
-
-<dt><b><tt>lprsetup.sh</tt></b>
-<dd>A shell script which sets up soft links and creates a template insert
-for the <b><tt>printcap</tt></b> file
-</dl></blockquote>
-
-<hr>
-
-<h2><a name="What_it_can_do"></a>What it can do</h2>
-
-<p>
-The print filter resides in the Ghostscript installation directory (often
-<b><tt>/usr/local/share/ghostscript</tt></b>, but may be something else at
-your installation), together with a dummy filter directory containing
-various soft links which point to the filter. It offers the following
-features:
-
-<ul>
-<li>Multiple devices supported by a single filter
-<li>Multiple bit-depths for the same device
-<li>Multiple number of colours for the same device
-<li>Direct (single-queue) and indirect (two-queue) setup
-<li>Support for the standard preprocessing filters if you have the
-corresponding (whatever)-to-PostScript translators
-<li>Redirection of diagnostic and programmed output to a logfile in
-the spooling directory
-<li>Maintaining of printer accounting records of the numbers of pages
-printed by each user (compatible with the <b><tt>pac</tt></b> command)
-<li>Straightforward editing for further customisation
-</ul>
-
-<hr>
-
-<h2><a name="Setting_up"></a>Setting it up</h2>
-
-<p>
-The <b><tt>lprsetup.sh</tt></b> script needs to have two lines edited
-before running, to set the printer devices to use and the list of filters
-available. With this information, it
-
-<ul>
-<li>creates a "<b><tt>filt</tt></b>" subdirectory under the
-Ghostscript installation directory
-<li>creates the links in this directory which enable the filter to
-determine the parameters for running Ghostscript
-<li>automatically generates <b><tt>printcap</tt></b> entries which should
-need only a little editing before adding to your system
-<b><tt>printcap</tt></b> file
-</ul>
-
-<h3><a name="Editing_device_list"></a>Editing the device list <tt>DEVICES</tt></h3>
-
-<p>
-At the top of <b><tt>lprsetup.sh</tt></b> is a line of the form
-<b><tt>DEVICES=</tt></b><em>{list}</em>. Replace the example list with
-your own list of devices. Each entry is the name of a device, followed by
-three more optional fields, separated by dots "<b><tt>.</tt></b>".
-
-<h4><a name="Field_bpp"></a>Field 1: bits per pixel</h4>
-
-<p>
-The first field is required only if the printer device understands the <a
-href="Devices.htm#deskjet_parameters"><b><tt>-dBitsPerPixel=</tt></b>
-switch</a>, which applies only to colour devices. For a particular number
-<b><em>N</em></b> of bits per pixel, add the suffix <b><em>.N</em></b> to
-the device name, for instance <b><tt>cdj500.3</tt></b>,
-<b><tt>cdj500.24</tt></b>, etc.
-
-<h4><a name="Field_colours"></a>Field 2: colours</h4>
-
-<p>
-The second field is required only if the printer device understands the
-setting of the <b><tt>Colors</tt></b> device parameter (as in
-<b><tt>-dColors=</tt></b>), which applies only to colour devices (and at
-present is only supported by the <b><tt>bjc</tt></b>* family of drivers).
-For a particular number <b><em>N</em></b> of colours, suffix
-<b><em>.N</em></b> to the device name, such as <b><tt>bjc600.24.3</tt></b>,
-<b><tt>bjc600.8.1</tt></b> etc.
-
-<h4><a name="Field_dq"></a>Field 3: dual queues</h4>
-
-<p>
-The third field is required in order to use two separate queues for the
-device, a "raw" queue and a PostScript queue (see
-"<a href="#Multiple_queues">Single or dual queues</a>" below). If you want
-dual queues, add the suffix <b><tt>.dq</tt></b> ("dual queue") to the name,
-whether or not a <a href="#Field_bpp">bits-per-pixel suffix</a> has already
-been added.
-
-<h4><a name="Device_example"></a>Example definition of
-<tt>DEVICES</tt></h4>
-
-<p>
-Thus the following list supports a <b><tt>cdj550</tt></b> device at three
-different bit depths (24 bpp, 3 bpp and 1 bpp), with a dual queue (that is,
-a separate queue for the raw data); a monochrome <b><tt>deskjet</tt></b>
-device with a single queue; and a <b><tt>djet500</tt></b> device using a
-separate queue:
-
-<blockquote><b><tt>
-DEVICES="cdj550.24.dq&nbsp;cdj550.3.dq&nbsp;cdj550.1.dq&nbsp;deskjet&nbsp;djet500.dq"
-</tt></b></blockquote>
-
-<h3><a name="Editing_filter_list"></a>Editing the filter list</h3>
-
-<p>
-The standard list contains only the generic "<b><tt>if</tt></b>" filter,
-but a commented-out list shows other filters which may be available. If
-you wish to use the support for these filters, you may need to edit the
-<b><tt>bsd-if</tt></b> file to add to the <b><tt>PATH</tt></b> the
-directories where the translators are stored, or to change the names of the
-filters if yours are different. The <b><tt>bsd-if</tt></b> script is
-supplied with an example setup using Transcript (a commercial package from
-Adobe), and PBMPLUS, a freeware package by Jef Poskanzer and others.
-
-<h3><a name="Editing_printer_port"></a>Editing the printer port and
-type</h3>
-
-<p>
-You can set the port and port type (parallel or printer) for an attached
-printer, but for remote printers you'll have to modify the
-<tt>printcap.insert</tt> file yourself.
-
-<h3><a name="Modifying_printcap_insert"></a>Modifying
-<tt>printcap.insert</tt></h3>
-
-<p>
-Running <b><tt>lprsetup.sh</tt></b> generates a file
-<b><tt>printcap.insert</tt></b> which has a template setup for your
-printer queues. It cannot guarantee to do the whole job, and you will
-probably need to consult your system documentation and edit this file
-before you add it to your <b><tt>printcap</tt></b> file. The file has good
-defaults for serial printers, as these often cause problems in getting
-binary data to the printer. However, you may need to change the baud rate,
-or the handshaking method. Only a small change is required in the
-<b><tt>printcap</tt></b> file to use a networked remote printer instead of
-an attached printer, and an example is given in
-<b><tt>printcap.insert</tt></b>.
-
-<h3><a name="Multiple_queues"></a>Single or dual queues</h3>
-
-<p>
-If you wish to provide a PostScript-only queue (for example, so that all
-pages printed go through accounting), and the printer port is local to the
-host machine, a single queue is appropriate -- Ghostscript simply converts
-PostScript into the printer's native data format and sends it to the
-port. But if the printer is on a remote networked machine, or if you need to
-send raw printer data to the printer, you must use two queues. Simply
-specify the <a href="#Field_dq">"<b><tt>.dq</tt></b>" option</a> above.
-
-<hr>
-
-<h2><a name="Bugs"></a>Bugs</h2>
-
-<p>
-You must have write access to the Ghostscript installation directory for
-<b><tt>lprsetup.sh</tt></b> to create the filter directory and soft links.
-
-<p>
-If you have several different values of bits per pixel for the same device,
-you must list all instances of that device as adjacent items in the
-<a href="#Editing_device_list"><b><tt>DEVICES</tt></b></a> device
-list. If you do not, <b><tt>printcap.insert</tt></b> will contain multiple
-entries for the same device, which is not supported.
-
-<hr>
-
-<h2><a name="Authors"></a>Authors</h2>
-
-<p>
-This material was contributed by George Cameron. Yves Arrouye
-&lt;<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>&gt;
-is responsible for the number-of-colours part of the script.
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises. All
-rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Use.htm b/Master/xemtex/doc/ghostscript/Use.htm
deleted file mode 100644
index e2d2576d09b..00000000000
--- a/Master/xemtex/doc/ghostscript/Use.htm
+++ /dev/null
@@ -1,3036 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>How to use Ghostscript</title>
-<!-- $Id: Use.htm,v 1.33.2.22.2.6 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: use.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>How to use Ghostscript</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Invoking">Invoking Ghostscript</a>
-<ul>
-<li><a href="#Help_command">Help at the command line: <b><tt>gs -h</tt></b></a>
-</ul>
-<li><a href="#Security">Security</a>
-<li><a href="#Pipe_input">Input from a pipe</a>
-<li><a href="#Output_device">Selecting an output device</a>
-<ul>
-<li><a href="#Printer_resolution">Printer resolution</a>
-<li><a href="#File_output">Output to files</a>
-<ul>
-<li><a href="#One_page_per_file">One page per file</a>
-<li><a href="#Pipe_output">Output to a pipe</a>
-<li><a href="#Output_to_graphics">Output to graphics file formats</a>
-<li><a href="#Bounding_box_output">Bounding box output</a>
-</ul>
-<li><a href="#Paper_size">Choosing paper size</a>
-<li><a href="#Change_default_size">Changing the installed default paper size</a>
-</ul>
-<li><a href="#Finding_files">How Ghostscript finds files</a>
-<ul>
-<li><a href="#PS_resources">Finding PostScript Level 2 resources</a>
-<li><a href="#Font_lookup">Font lookup</a>
-<li><a href="#Temp_files">Temporary files</a>
-</ul>
-<li><a href="#CIDFontSubstitution">CID font substitution</a>
-<li><a href="#Environment_variables">Summary of environment variables</a>
-<li><a href="#EPS">Using Ghostscript with EPS files</a>
-<li><a href="#PDF">Using Ghostscript with PDF files</a>
-<ul>
-<li><a href="#PDF_stdin">PDF files from standard input</a>
-<li><a href="#PDF_switches">Switches for PDF files</a>
-<li><a href="#PDF_problems">Problems interpreting a PDF file</a>
-</ul>
-<li><a href="#Platforms">Notes on specific platforms</a>
-<ul>
-<li><a href="#Unix">Unix</a>
-<li><a href="#VMS">VMS</a>
-<ul>
-<li><a href="#VMS_X_Windows">Using X Windows on VMS</a>
-</ul>
-<li><a href="#MS_Windows">MS Windows</a>
-<li><a href="#MS-DOS">MS-DOS</a>
-<li><a href="#X_Windows">X Windows</a>
-<ul>
-<li><a href="#X_resources">X resources</a>
-<li><a href="#X_server_bugs">Working around bugs in X servers</a>
-<li><a href="#X_fonts">X fonts</a>
-<li><a href="#GS_fonts_as_X_fonts">Using Ghostscript fonts on X displays</a>
-<li><a href="#X_device_parameters">X device parameters</a>
-</ul>
-<li><a href="#SCO_Unix">SCO Unix</a>
-</ul>
-<li><a href="#Switches">Switches</a>
-<ul>
-<li><a href="#General_switches">General switches</a>
-<ul>
-<li><a href="#Input_control">Input control</a>
-<li><a href="#File_searching">File searching</a>
-<li><a href="#Parameters">Setting parameters</a>
-<li><a href="#Quiet">Suppress messages</a>
-</ul>
-<li><a href="#Parameter_switches">Parameter switches (<b><tt>-d</tt></b> and <b><tt>-s</tt></b>)</a>
-<ul>
-<li><a href="#Rendering_parameters">Rendering parameters</a>
-<li><a href="#Page_parameters">Page parameters</a>
-<li><a href="#Font_related_parameters">Font-related parameters</a>
-<li><a href="#Interaction_related_parameters">Interaction-related parameters</a>
-<li><a href="#Output_selection_parameters">Device and output selection parameters</a>
-<li><a href="#Other_parameters">Other parameters</a>
-</ul>
-</ul>
-<li><a href="#Improving_performance">Improving performance</a>
-<li><a href="#Debugging">Debugging</a>
-<li><a href="#Known_paper_sizes">Appendix: Paper sizes known to Ghostscript</a>
-<li><a href="#X_font_mappings">Appendix: X default font mappings</a>
-<ul>
-<li><a href="#Standard_X_server_fonts">Standard X servers</a>
-<ul>
-<li><a href="#X_regular_fonts">Regular fonts</a>
-<li><a href="#X_symbol_fonts">Symbol fonts</a>
-<li><a href="#X_dingbat_fonts">Dingbat fonts</a>
-</ul>
-<li><a href="#OpenWindows_fonts">Sun OpenWindows</a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>, the new user's documentation on
-<a href="New-user.htm#Previewers">previewers</a> and, if necessary, how to
-<a href="Install.htm">install Ghostscript</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Invoking"></a>Invoking Ghostscript</h2>
-
-<p><a name="Command_line"></a> The command line to invoke Ghostscript is
-essentially the same on all systems, although the name of the executable
-program itself may differ among systems. For instance, to invoke
-Ghostscript on Unix:
-
-<blockquote>
-<b><tt>gs</tt></b> [switches] {filename 1} ... [switches] {filename <em>N</em>} ...
-</blockquote>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Ghostscript's name on different systems</font><hr>
-<tr> <th align=left>System
- <td>&nbsp;&nbsp;
- <th align=left>Ghostscript's name
-<tr> <td colspan=3><hr>
-<tr> <td>Unix
- <td>&nbsp;<td><b><tt>gs</tt></b>
-<tr> <td>VMS
- <td>&nbsp;<td><b><tt>gs</tt></b>
-<tr> <td>DOS &amp; MS Windows 3
- <td>&nbsp;<td><b><tt>gs386</tt></b>
-<tr> <td>MS Windows 95/98
- <td>&nbsp;<td><b><tt>gswin32</tt></b>
-<tr> <td>MS Windows 95/98 command line
- <td>&nbsp;<td><b><tt>gswin32c</tt></b>
-<tr> <td>OS/2
- <td>&nbsp;<td><b><tt>gsos2</tt></b>
-</table></blockquote>
-
-<p>
-Note, though, that on a system with a windowed graphical user interface,
-it's common to use Ghostscript through a previewer, so you should read the
-<a href="New-user.htm#Previewers">section about previewers</a> in the
-documentation for new users.
-
-<p>
-Ghostscript is capable of interpreting PostScript, encapsulated PostScript
-(EPS), DOS EPS (EPSF), and -- if the executable was built for it -- Adobe
-Portable Document Format (PDF). The interpreter reads and executes the
-files in sequence, using the method described under
-"<a href="#File_searching">File searching</a>" to find them. After doing
-this, it reads further lines of PostScript language commands from the
-primary input stream, normally the keyboard, interpreting each line
-separately. To quit the interpreter, type "<b><tt>quit</tt></b>". The
-interpreter also quits gracefully if it encounters end-of-file or
-control-C.
-
-<p>
-The interpreter recognizes many <a href="#Switches">switches</a>. A switch
-may appear anywhere in the command line, and applies to all files named
-after it on the line. Many of the switches include "<b><tt>=</tt></b>"
-followed by a parameter.
-
-<h3><a name="Help_command"></a>Help at the command line: <b><tt>gs -h</tt></b></h3>
-
-<p>
-You can get a brief help message by invoking Ghostscript with the
-<b><tt>-h</tt></b> or <b><tt>-?</tt></b> switch, like this:
-
-<blockquote><b><tt>
-gs -h<br>
-gs -?
-</tt></b></blockquote>
-
-<p>
-(Of course, for "<b><tt>gs</tt></b>" use the right
-<a href="#Command_line">command for your system</a>.) The message shows
-for this executable
-
-<ul>
-<li>its version
-<li>the format of the command to invoke it
-<li>a few of the most useful switches
-<li>the formats it can interpret
-<li>the devices for which it can produce output
-<li>where it looks for font files
-<li>where and how to send bug reports
-</ul>
-
-<h2><a name="Security"></a>Security</h2>
-
-<p>
-Ghostscript implements a full-featured programming language, with
-access to the filesystem and the ability to control a diverse set of
-devices. As such, there are potential security implications.
-
-<p>
-The first line of defense is to use the security mechanisms
-provided by Ghostscript. If you're running arbitrary PostScript files
-(for example, those sent through email or downloaded from the Web),
-make sure to use the -dSAFER option. Otherwise, you are opening up
-your entire filesystem to potentially malicious code.
-
-<p>
-By default, Ghostscript opens up read access to the entire
-filesystem. In general, if you're just viewing or printing documents,
-this does not pose a significant security risk. However, if there is
-a chance that the output of Ghostscript can leak sensitive information,
-also set the -DPARANOIDSAFER option. Note, however, that this option
-is incompatible with some scripts and wrappers, including gv and
-related viewer apps.
-
-<p>
-We plan to make -dSAFER the default in future versions of Ghostscript.
-Since most people use Ghostscript to print and view documents, rather
-than to run scripts written in the PostScript language, this will
-provide additional safety with little hassle for most users. If you
-<em>are</em> using Ghostscript as a scripting language and need
-unfettered access to the filesystem, use the -dNOSAFER flag to signal
-explictly that you wish the PostScript code to have full access to the
-file system. Currently, this flag has no effect, but it will insure
-than your scripts execute as expected in future versions.
-
-<p>
-While we've tried to patch all known security problems, there is
-no guarantee that we've caught them all. Ghostscript is a complex
-application written in C. Buffer overflows and other exploits remain
-a distinct possibility. Thus we recommend that, whenever possible,
-Ghostscript should run in a secure "sandbox" environment, making
-use of the security mechanisms of the underlying operating system.
-In particular, we urge GNU/Linux distributors to invoke Ghostscript from
-the print subsystem in a chroot'ed environment, and never as root.
-
-<p>
-We will continue to be vigilant regarding security issues. As
-always, apply security updates promptly.
-
-<h2><a name="Pipe_input"></a>Input from a pipe</h2>
-
-<p>
-As noted above, one normally specifies input with file names on the command
-line. However, one can also "pipe" input into Ghostscript by using the
-special file name "<b><tt>-</tt></b>" or "<b><tt>-_</tt></b>", for instance
-
-<blockquote>
-{some program producing PS} <b><tt>| gs</tt></b> {...options...} <b><tt>-</tt></b>
-<br>
-{some program producing PS} <b><tt>| gs</tt></b> {...options...} <b><tt>-_</tt></b>
-</blockquote>
-
-<p>
-These switches differ from a named file in two respects:
-
-<ol>
-<li>When Ghostscript finishes reading from the pipe, it quits rather than
-going into interactive mode. Because of this, these switches are
-really only useful as the last argument on the command line.
-
-<li>These switches can't be used to pipe PDF input to Ghostscript.
-See "<a href="#PDF">Using Ghostscript with PDF files</a>" below.
-</ol>
-
-<p>
-
-The difference between "<b><tt>-</tt></b>" and "<b><tt>-_</tt></b>" is that
-"<b><tt>-</tt></b>" may read the input one character at a time, which is useful
-for programs that generate input for Ghostscript dynamically
-and watch for some response, whereas "<b><tt>-_</tt></b>" reads the input in
-blocks, which is more efficient for ordinary (batch) execution.
-
-<h2><a name="Output_device"></a>Selecting an output device</h2>
-
-<p>
-Ghostscript may be built to handle multiple output devices, and it normally
-opens and directs output to the first one built in. Ghostscript's
-<b><tt>gs&nbsp;-h</tt></b> <a href="#Help_command">help message</a> lists
-the output devices known to the executable. Once you invoke Ghostscript
-you can also find out what devices are available by
-"<b><tt>devicenames&nbsp;==</tt></b>" at its command prompt.
-
-<p><a name="Source_code"></a>
-
-A little more information about devices appears near the beginning of the
-files <b><tt>devs.mak</tt></b> (for drivers that are considered "part of"
-Ghostscript and are maintained by the maintainers of the main Ghostscript
-code) and <b><tt>contrib.mak</tt></b> (for user-contributed drivers) used to
-build Ghostscript. (If you got Ghostscript under the Aladdin <a
-href="Public.htm">Free Public License</a>, the person or place from which
-you got it is also required to make the source code available to you; if you
-got it under the GNU General Public License (GPL), see the GNU <a
-href="http://www.gnu.org/copyleft/gpl.html">General Public License</a> for
-more information.)
-
-<p><a name="Device_output"></a>
-To use device <em>xyz</em> as the initial output device, use the
-command-line switch
-
-<blockquote>
- <b><tt>-sDEVICE=</tt></b><em>xyz</em>
-</blockquote>
-
-<p>
-Note that this switch must precede the name of the first input file, and
-only its first use has any effect. For example, for printer output in a
-configuration that includes an Epson printer driver, instead of just
-"<b><tt>gs&nbsp;myfile.ps</tt></b>" you might use
-
-<blockquote>
- <b><tt>gs -sDEVICE=epson myfile.ps</tt></b>
-</blockquote>
-
-<p>
-Alternatively, once you invoke Ghostscript and have its own command prompt
-you can type
-
-<blockquote><b><tt>
- (epson) selectdevice<br>
- (myfile.ps) run
-</tt></b></blockquote>
-
-<p>
-All output then goes to the Epson printer instead of the display until you
-do something to change devices. You can switch devices at any time by
-using the <b><tt>selectdevice</tt></b> procedure, for
-instance like one of these:
-
-<blockquote><b><tt>
- (vga) selectdevice<br>
- (epson) selectdevice
-</tt></b></blockquote>
-
-<p><a name="GS_DEVICE"></a>
-A third possibility is to define an environment variable
-<b><tt>GS_DEVICE</tt></b> with the name of your desired default device.
-The order of precedence for these alternatives, highest to lowest, is:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td><b><tt>selectdevice</tt></b>
- <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <td>Highest precedence
-<tr> <td>(command line)
- <td>&nbsp;
- <td>&nbsp;
-<tr> <td><b><tt>GS_DEVICE</tt></b>
- <td>&nbsp;
- <td>&nbsp;
-<tr> <td>(first device built in)
- <td>&nbsp;
- <td>Default; lowest precedence
-</table></blockquote>
-
-<h3><a name="Printer_resolution"></a>Printer resolution</h3>
-
-<p>
-Some printers can print at several different resolutions, letting you
-balance resolution against printing speed. To select the resolution on
-such a printer, use the <b><tt>-r</tt></b> switch:
-
-<blockquote>
- <b><tt>gs -sDEVICE=</tt></b><em>printer</em><b><tt> -r</tt></b><em>XRES</em><b><tt>x</tt></b><em>YRES</em>
-</blockquote>
-
-<p>
-For example, on Epson-compatible printers you have these choices:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr> <td><b><tt>gs -sDEVICE=epson</tt></b>
- <td>&nbsp;&nbsp;
- <td><b><tt>-r60x72</tt></b>
- <td>&nbsp;&nbsp;
- <td>9-pin
- <td>&nbsp;&nbsp;
- <td>lowest resolution
- <td>&nbsp;&nbsp;
- <td>fastest
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td><b><tt>-r240x72</tt></b>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>highest
- <td>&nbsp;
- <td>slowest
-<tr> <td>&nbsp;
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td><b><tt>-r60x60</tt></b>
- <td>&nbsp;
- <td>24-pin
- <td>&nbsp;
- <td>lowest
- <td>&nbsp;
- <td>fastest
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td><b><tt>-r360x180</tt></b>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>highest
- <td>&nbsp;
- <td>slowest
-</table></blockquote>
-
-<h3><a name="File_output"></a>Output to files</h3>
-
-<p>
-If you select a printer as the output device, Ghostscript also allows you to
-control where the device sends its output. On DOS and MS Windows systems,
-output normally goes directly to the printer (<b><tt>PRN</tt></b>); on Unix
-or VMS systems normally to a temporary file for later printing. To send the
-output to a file, use the <b><tt>-sOutputFile=</tt></b> switch (for
-compatibility with older versions of Ghostscript,
-<b><tt>-sOUTPUTFILE=</tt></b> also works). For instance, to direct all
-output into the file <b><tt>ABC.xyz</tt></b>, use
-
-<blockquote><b><tt>
-gs -sOutputFile=ABC.xyz
-</tt></b></blockquote>
-
-<p>
-The file name follows the PostScript convention that if a name begins with
-<b><tt>%</tt></b>, the name must be in the form <b><tt>%</tt></b>filedevice
-or <b><tt>%</tt></b>filedevice<b><tt>%</tt></b>file. The legal values of
-filedevice are system-dependent, but the following have consistent meanings
-across systems:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">"%{filedevice}%{file}" in <b><tt>-sOutputFile=</tt></b></font><hr>
-<tr valign=bottom>
- <th align=left>filedevice
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Meaning
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>%os%xyz</tt></b>
- <td>&nbsp;
- <td>An ordinary file named <b><tt>xyz</tt></b>
-<tr valign=top> <td><b><tt>%pipe%cmd</tt></b>
- <td>&nbsp;
- <td>(if supported) A pipe to an instance of the command <b><tt>cmd</tt></b>
-<tr valign=top> <td><b><tt>%stdout</tt></b>
- <td>&nbsp;
- <td>The standard output file
-</table></blockquote>
-
-<p>
-Note that because of this, if you want to specify a file name that actually
-begins with <b><tt>%</tt></b>, you must specify the <b><tt>%os%</tt></b>
-filedevice explicitly: e.g., for output to a file named
-<b><tt>%abc</tt></b>, you need to specify
-<b><tt>-sOutputFile=%os%%abc</tt></b>. Note also that on DOS and MS Windows
-systems, the <b><tt>%</tt></b> character has a special meaning for the
-command processor (shell), so you will have to double it, e.g., for a pipe
-on MS Windows,
-
-<blockquote><b><tt>
-gs -sOutputFile=%%pipe%%cmd
-</tt></b></blockquote>
-
-<h4><a name="One_page_per_file"></a>One page per file</h4>
-
-<p>
-You can also tell Ghostscript to put each page of output in a separate
-file. To send output to a series of files each representing a single page,
-use in the filename the <b><tt>printf</tt></b> format specifier
-"<b><tt>%d</tt></b>" (or its extended form like "<b><tt>%02d</tt></b>");
-for instance
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">"%{n}d" in <b><tt>-sOutputFile=</tt></b></font><hr>
-<tr valign=bottom>
- <th align=left>Output specification
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Produces the series of 1-page files
-<tr> <td colspan=3><hr>
-<tr valign=top> <td><b><tt>-sOutputFile=ABC%d.xyz</tt></b>
- <td>&nbsp;
- <td><b><tt>ABC1.xyz</tt></b> ... <b><tt>ABC10.xyz</tt></b> ...
-<tr valign=top> <td><b><tt>-sOutputFile=ABC%03d.xyz</tt></b>
- <td>&nbsp;
- <td><b><tt>ABC001.xyz</tt></b> ... <b><tt>ABC010.xyz</tt></b> ...
-</table></blockquote>
-
-<p>
-As noted above, on DOS and MS Windows systems, you will have to double the
-<b><tt>%</tt></b> character, e.g.,
-
-<blockquote><b><tt>
-gs -sOutputFile=ABC%%03d.xyz
-</tt></b></blockquote>
-
-<h4><a name="Pipe_output"></a>Output to a pipe</h4>
-
-<p>
-On Unix and (32-bit) MS Windows systems you can use this switch to send
-output directly to a pipe. For example, to pipe the output to
-<b><tt>lpr</tt></b>, use the command
-
-<blockquote><b><tt>
- gs -sOutputFile=\|lpr
-</tt></b></blockquote>
-or, as noted above,
-<blockquote><b><tt>
- gs -sOutputFile=%pipe%lpr
-</tt></b></blockquote>
-
-<p>
-(doubling the <b><tt>%</tt></b> characters on MS Windows systems, as noted
-above.) You can also send output to standard output for piping in the usual
-way supported by the system:
-
-<blockquote>
- <b><tt>gs -sOutputFile=- -q |</tt></b> ...
-</blockquote>
-or, as noted above,
-<blockquote>
- <b><tt>gs -sOutputFile=%stdout -q |</tt></b> ...
-</blockquote>
-
-<p>
-(again, doubling the <b><tt>%</tt></b> character on MS Windows systems.)
-In this case you must also use the <a href="#Quiet"><b><tt>-q</tt></b>
-switch</a> to prevent Ghostscript from writing messages to standard output
-which become mixed with the intended output stream.
-
-<h4><a name="Output_to_graphics"></a>Output to graphics file formats</h4>
-
-<p>
-File formats like PCX and PBM are also "devices". When you select a file
-format as the "device", you must also specify an output file, for instance
-
-<blockquote><b><tt>
-gs -sDEVICE=pcxmono -sOutputFile=xyz.pcx
-</tt></b></blockquote>
-
-<p>
-Here, as with printable files, you can use "<b><tt>%d</tt></b>"
-("<b><tt>%%d</tt></b>" on DOS and MS Windows) to specify <a
-href="#One_page_per_file">one page per output file</a>.
-
-<h4><a name="Bounding_box_output"></a>Bounding box output</h4>
-
-<p>
-There is a special <b><tt>bbox</tt></b> "device" that just prints the
-bounding box of each page. You select it in the usual way:
-
-<blockquote><b><tt>
-gs -dNOPAUSE -dBATCH -sDEVICE=bbox
-</tt></b></blockquote>
-
-<p>
-It prints the output in a format like this:
-
-<blockquote>
-<pre><b><tt>%%BoundingBox: 14 37 570 719
-%%HiResBoundingBox: 14.308066 37.547999 569.495061 718.319158
-</tt></b></pre></blockquote>
-
-<p>
-Currently, it always prints the bounding box on <b><tt>stderr</tt></b>;
-eventually, it should also recognize <b><tt>-sOutputFile=</tt></b>.
-
-<p>
-Note that this device, like other devices, has a resolution and a (maximum)
-page size. As for other devices, the product (resolution x page size) is
-limited to approximately 500K pixels. By default, the resolution is 4000
-DPI and the maximum page size is approximately 125", or approximately 9000
-default (1/72") user coordinate units. If you need to measure larger pages
-than this, you must reset <em>both</em> the resolution and the page size in
-pixels, e.g.,
-
-<blockquote><b><tt>
-gs -dNOPAUSE -dBATCH -sDEVICE=bbox -r100 -g500000x500000
-</tt></b></blockquote>
-
-<h3><a name="Paper_size"></a>Choosing paper size</h3>
-
-<p>
-Ghostscript is distributed configured to use U.S. letter paper as its
-default page size. There are two ways to select other paper sizes from the
-command line:
-
-<ul>
-
-<li>
-If the desired paper size is listed in the section on <a
-href="#Known_paper_sizes">paper sizes known to Ghostscript</a> below, you
-can select it as the default paper size for a single invocation of
-Ghostscript by using the <b><tt>-sPAPERSIZE=</tt></b> switch, for instance
-
-<blockquote><b><tt>
--sPAPERSIZE=a4<br>
--sPAPERSIZE=legal
-</tt></b></blockquote>
-
-<li>
-Otherwise, let <em>w</em> be the desired paper width and <em>h</em> be the
-desired paper height, in 1/72" units. You can set the page size using the
-pair of switches
-
-<blockquote>
-<b><tt>-dDEVICEWIDTHPOINTS=</tt></b><em>w</em>
-<b><tt>-dDEVICEHEIGHTPOINTS=</tt></b><em>h</em>
-</blockquote>
-
-</ul>
-
-<p>
-Individual documents can (and often do) specify a paper size, which takes
-precedence over the default size. To force a specific paper size and
-ignore the paper size specified in the document, select a paper size as
-just described, and also include the
-<a href="#FIXEDMEDIA"><b><tt>-dFIXEDMEDIA</tt></b> switch</a> on the
-command line.
-
-<h3><a name="Change_default_size"></a>Changing the installed default paper size</h3>
-
-<p>
-You can change the installed default paper size in installing Ghostscript
-or later, by editing the initialization file <b><tt>gs_init.ps</tt></b>.
-Find the consecutive lines
-
-<blockquote><b><tt>
-%&nbsp;Optionally&nbsp;choose&nbsp;a&nbsp;default&nbsp;paper&nbsp;size&nbsp;other&nbsp;than&nbsp;U.S.&nbsp;letter.<br>
-%&nbsp;(a4)
-</tt></b></blockquote>
-
-<p>
-Then to make A4 the default paper size, uncomment the second line to change
-this to
-
-<blockquote><b><tt>
-%&nbsp;Optionally&nbsp;choose&nbsp;a&nbsp;default&nbsp;paper&nbsp;size&nbsp;other&nbsp;than&nbsp;U.S.&nbsp;letter.<br>
-(a4)
-</tt></b></blockquote>
-
-<p>
-For <b><tt>a4</tt></b> you can substitute any
-<a href="#Known_paper_sizes">paper size Ghostscript knows</a>.
-
-<h2><a name="Finding_files"></a>How Ghostscript finds files</h2>
-
-<p>
-When looking for initialization files (<b><tt>gs_*.ps</tt></b>,
-<b><tt>pdf_*.ps</tt></b>), font files, the <b><tt>Fontmap</tt></b> file,
-and files named on the command line, Ghostscript first tests whether the
-file name specifies an explicit directory.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Testing a file name for an explicit directory</font><hr>
-<tr> <th align=left>System
- <td>&nbsp;&nbsp;
- <th align=left>Does the name ...
-<tr> <td colspan=3><hr>
-<tr> <td valign=top>Unix
- <td>&nbsp;
- <td>Begin with <b><tt><u>/</u></tt></b>, <b><tt><u>./</u></tt></b> or <b><tt><u>../</u></tt></b> ?
-<tr> <td valign=top>DOS or MS Windows
- <td>&nbsp;
- <td>Have <b><tt><u>:</u></tt></b> as its second character, or
- begin with <b><tt><u>/</u></tt></b>, <b><tt><u>\</u></tt></b>,
- <b><tt><u>./</u></tt></b>, <b><tt><u>../</u></tt></b>, <b><tt><u>.\</u></tt></b>, or <b><tt><u>..\</u></tt></b> ?
-<tr> <td valign=top>VMS
- <td>&nbsp;
- <td>Contain a node, device, root, or directory specification?
-</table></blockquote>
-
-<p><a name="General_search_path"></a> If the test succeeds, the file name
-specifies an explicit directory and Ghostscript tries to open the file
-using the name given. Otherwise it tries directories in this order:
-
-<ol>
-<li>The current directory (unless disabled by the
-<a href="#P-_switch"><b><tt>-P-</tt></b> switch</a>);
-
-<li>The directories specified by <a href="#I_switch"><b><tt>-I</tt></b>
-switches</a> in the command line, if any;
-
-<li>The directories specified by the <b><tt>GS_LIB</tt></b>
-environment variable, if any;
-
-<li>The directories specified by the
-<b><tt>GS_LIB_DEFAULT</tt></b> macro (if any) in the makefile
-when this executable was built.
-</ol>
-
-<p>
-<b><tt>GS_LIB_DEFAULT</tt></b>,
-<b><tt>GS_LIB</tt></b>, and the
-<b><tt>-I</tt></b> parameter may specify either a single
-directory or a list of directories separated by a character appropriate for
-the operating system ("<b><tt>:</tt></b>" on Unix systems,
-"<b><tt>,</tt></b>" on VMS systems, and
-"<b><tt>;</tt></b>" on DOS systems). We think that trying
-the current directory first is a very bad idea -- it opens serious security
-loopholes and can lead to very confusing errors if one has more than one
-version of Ghostscript in one's environment -- but when we attempted to
-change it, users insisted that we change it back. You can disable looking
-in the current directory first by using the
-<a href="#P_switch"><b><tt>-P-</tt></b> switch</a>.
-
-<p>
-Note that Ghostscript does not use this file searching algorithm for the
-<b><tt>run</tt></b> or <b><tt>file</tt></b>
-operators: for these operators, it simply opens the file with the name
-given. To run a file using the searching algorithm, use
-<b><tt>runlibfile</tt></b> instead of
-<b><tt>run</tt></b>.
-
-<h3><a name="PS_resources"></a>Finding PostScript Level 2 resources</h3>
-
-<p>
-Ghostscript uses a completely different rule for looking for files
-containing PostScript Level 2 "resources": per the Adobe documentation, it
-concatenates together
-
-<ol>
-<li>the value of the system parameter
-<b><tt>GenericResourceDir</tt></b> (initially
-<b><tt>/Resource/</tt></b>)
-
-<li>the name of the resource category (for instance, <b><tt>ProcSet</tt></b>)
-
-<li>the value of the system parameter
-<b><tt>GenericResourcePathSep</tt></b> (initially
-"<b><tt>/</tt></b>")
-
-<li>the name of the resource instance (for instance, <b><tt>CIDInit</tt></b>)
-</ol>
-
-<p>
-To look up fonts, after exhausting the search method described in <a href="#Font_lookup">the
-next section</a>, it concatenates together
-
-<ol>
-<li>the value of the system parameter
-<b><tt>FontResourceDir</tt></b> (initially
-<b><tt>/Resource/Font/</tt></b>)
-
-<li>the name of the resource font (for instance, <b><tt>Times-Roman</tt></b>)
-</ol>
-
-<p>
-Note that even though the system parameters are named "somethingDir", they
-are not just plain directory names: they have "<b><tt>/</tt></b>" on the
-end, so that they can be concatenated with the category name or font name.
-
-<h3><a name="Font_lookup"></a>Font lookup</h3>
-
-<p>
-Ghostscript has a slightly different way to find the file containing a font
-with a given name. This rule uses not only the search path defined by
-<b><tt>-I</tt></b>, <b><tt>GS_LIB</tt></b>, and
-<b><tt>GS_LIB_DEFAULT</tt></b> <a href="#General_search_path">as described
-above</a>, but also the directory that is the value of the
-<b><tt>FontResourceDir</tt></b> system parameter, and an additional list of
-directories that is the value of the <b><tt>GS_FONTPATH</tt></b> environment
-variable (or the value provided with the <b><tt>-sFONTPATH=</tt></b> switch,
-if present).
-
-<p>
-At startup time, Ghostscript reads in the <b><tt>Fontmap</tt></b> files in
-every directory on the search path (or in the list provided with the
-<b><tt>-sFONTMAP=</tt></b> switch, if present): these files are catalogs of
-fonts and the files that contain them. (See <a href="Fonts.htm#Fontmap">the
-documentation of fonts</a> for details.) Then, when Ghostscript needs to
-find a font that isn't already loaded into memory, it goes through a series
-of steps.
-
-<ul>
-
-<li>
-First, it looks up the font name in the combined Fontmaps. If there is an
-entry for the desired font name, and the file named in the entry can be
-found in some directory on the general search path (defined by
-<b><tt>-I</tt></b>, <b><tt>GS_LIB</tt></b>, and
-<b><tt>GS_LIB_DEFAULT</tt></b>), and the file is loaded successfully, and
-loading it defines a font of the desired name, that is the end of the
-process.
-
-<li>
-If this process fails at any step, Ghostscript looks for a file whose name
-is the concatenation of the value of the <b><tt>FontResourceDir</tt></b>
-system parameter and the font name, with no extension. If such a file
-exists, can be loaded, and defines a font of the desired name, that again is
-the end. The value of <b><tt>FontResourceDir</tt></b> is normally the
-string <b><tt>/Resource/Font/</tt></b>, but it can be changed with the
-<b><tt>setsystemparams</tt></b> operator: see the PostScript Language
-Reference Manual for details.
-
-<li>
-If that fails, Ghostscript then looks for a file on the general search path
-whose name is the desired font name, with no extension. If such a file
-exists, can be loaded, and defines a font of the desired name, that again is
-the end.
-
-<li>
-If that too fails, Ghostscript looks at the <b><tt>GS_FONTPATH</tt></b>
-environment variable (or the value provided with the
-<b><tt>-sFONTPATH=</tt></b> switch, if present), which is also a list of
-directories. It goes to the first directory on the list, looking for all
-files that appear to contain PostScript fonts; it then adds all those files
-and fonts to the combined Fontmaps, and starts over.
-
-<li>
-If scanning the first FONTPATH directory doesn't produce a file that
-provides the desired font, it adds the next directory on the FONTPATH list,
-and so on until either the font is defined successfully or the list is
-exhausted.
-
-<li>
-Finally, if all else fails, it will try to find a substitute for the font
-from among the standard 35 fonts.
-
-</ul>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Differences between search path and font path</font><hr>
-<tr> <th>Search path
- <td>&nbsp;&nbsp;&nbsp;
- <th>Font path
-<tr> <td colspan=3><hr>
-<tr> <td><b><tt>-I</tt></b> switch
- <td>&nbsp;
- <td><b><tt>-sFONTPATH=</tt></b> switch
-<tr> <td>&nbsp;
-<tr> <td><b><tt>GS_LIB</tt></b> and <b><tt>GS_LIB_DEFAULT</tt></b>
- environment variables
- <td>&nbsp;
- <td><b><tt>GS_FONTPATH</tt></b> environment variable
-<tr> <td>&nbsp;
-<tr> <td valign=top>Consulted first
- <td>&nbsp;
- <td valign=top>Consulted only if search path and
- <b><tt>FontResourceDir</tt></b> don't provide the file.
-<tr> <td>&nbsp;
-<tr> <td valign=top>Font-name-to-file-name mapping given in Fontmap
- files; aliases are possible, and there need not be any relation
- between the font name in the Fontmap and the
- <b><tt>FontName</tt></b> in the file.
- <td>&nbsp; <td valign=top>Font-name-to-file-name mapping is
- implicit -- the <b><tt>FontName</tt></b> in the file is
- used. Aliases are not possible.
-<tr> <td>&nbsp;
-<tr> <td valign=top>Only fonts and files named in Fontmap are used.
- <td>&nbsp;
- <td valign=top>Every Type 1 font file in each directory is
- available; if TrueType fonts are supported (the
- <b><tt>ttfont.dev</tt></b> feature was included when the
- executable was built), they are also available.
-</table></blockquote>
-
-<p>
-If you are using one of the following types of computer, you may wish to
-set the environment variable <b><tt>GS_FONTPATH</tt></b> to
-the value indicated so that Ghostscript will automatically acquire all the
-installed Type 1 (and, if supported, TrueType) fonts (but see below for
-notes on systems marked with "*"):
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Suggested <b><tt>GS_FONTPATH</tt></b> for different systems</font><hr>
-<tr> <td>&nbsp;
- <td>&nbsp;&nbsp;
- <th align=left>System type
- <td>&nbsp;&nbsp;
- <th valign=bottom align=left><b><tt>GS_FONTPATH</tt></b>
-<tr> <td colspan=5><hr>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>Digital Unix
- <td>&nbsp;
- <td><b><tt>/usr/lib/X11/fonts/Type1Adobe</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>Ultrix
- <td>&nbsp;
- <td><b><tt>/usr/lib/DPS/outline/decwin</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>HP-UX 9
- <td>&nbsp;
- <td><b><tt>/usr/lib/X11/fonts/type1.st/typefaces</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>IBM AIX
- <td>&nbsp;
- <td><b><tt>/usr/lpp/DPS/fonts/outlines
- <br>/usr/lpp/X11/lib/X11/fonts/Type1
- <br>/usr/lpp/X11/lib/X11/fonts/Type1/DPS</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>NeXT
- <td>&nbsp;
- <td><b><tt>/NextLibrary/Fonts/outline</tt></b>
-<tr> <td>*
- <td>&nbsp;
- <td valign=top>SGI IRIX
- <td>&nbsp;
- <td><b><tt>/usr/lib/DPS/outline/base
- <br>/usr/lib/X11/fonts/Type1</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>SunOS 4.x<br>(NeWSprint only)
- <td>&nbsp;
- <td valign=top><b><tt>newsprint_2.5/SUNWsteNP/reloc/$BASEDIR/NeWSprint/<br>&nbsp;&nbsp;&nbsp;&nbsp;small_openwin/lib/fonts</tt></b>
-<tr> <td>**
- <td>&nbsp;
- <td valign=top>SunOS 4.x
- <td>&nbsp;
- <td><b><tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt></b>
-<tr> <td>**
- <td>&nbsp;
- <td valign=top>Solaris 2.x
- <td>&nbsp;
- <td><b><tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt></b>
-<tr> <td>&nbsp;
- <td>&nbsp;
- <td valign=top>VMS
- <td>&nbsp;
- <td><b><tt>SYS$COMMON:[SYSFONT.XDPS.OUTLINE]</tt></b>
-</table>
-
-<hr align=left width="25%">
-
-<p>
-<b>*</b> On SGI IRIX systems, you must use <b><tt>Fontmap.SGI</tt></b> in
-place of <b><tt>Fontmap</tt></b> or <b><tt>Fontmap.GS</tt></b>, because
-otherwise the entries in <b><tt>Fontmap</tt></b> will take precedence over
-the fonts in the FONTPATH directories.
-
-<p>
-<b>**</b> On Solaris systems simply setting <b><tt>GS_FONTPATH</tt></b> or
-using <b><tt>-sFONTPATH=</tt></b> may not work, because for some reason some
-versions of Ghostscript can't seem to find any of the Type1 fonts in
-<b><tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt></b>. (It says: "15
-files, 15 scanned, 0 new fonts". We think this problem has been fixed in
-Ghostscript version 6.0, but we aren't sure because we've never been able to
-reproduce it.) See <b><tt>Fontmap.Sol</tt></b> instead. Also, on Solaris
-2.x it's probably not worth your while to add Sun's fonts to your font path
-and Fontmap. The fonts Sun distributes on Solaris 2.x in the directories
-
-<blockquote><b><tt>
- /usr/openwin/lib/X11/fonts/Type1<br>
- /usr/openwin/lib/X11/fonts/Type1/outline
-</tt></b></blockquote>
-
-<p>
-are already represented among the ones distributed as part of Ghostscript;
-and on some test files, Sun's fonts have been shown to cause incorrect
-displays with Ghostscript.
-
-</blockquote>
-
-<p>
-These paths may not be exactly right for your installation; if the indicated
-directory doesn't contain files whose names are familiar font names like
-Courier and Helvetica, you may wish to ask your system administrator where
-to find these fonts.
-
-<p>
-Adobe Acrobat comes with a set of fourteen Type 1 fonts, on Unix typically
-in a directory called ...<b><tt>/Acrobat3/Fonts</tt></b>. There is no
-particular reason to use these instead of the corresponding fonts in the
-Ghostscript distribution (which are of just as good quality), except to save
-about a megabyte of disk space, but the installation documentation explains
-how to do it <a href="Install.htm#Unix_Fonts">on Unix</a> and <a
-href="Install.htm#Use_platform_fonts_DOS">on DOS</a> (where you can also use
-Adobe Type Manager fonts).
-
-<h3><a name="Temp_files"></a>Temporary files</h3>
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Where Ghostscript puts temporary files</font><hr>
-<tr valign=bottom>
- <th align=left>Platform
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Filename
- <td>&nbsp;&nbsp;&nbsp;
- <th align=left>Location
-<tr> <td colspan=5><hr>
-<tr valign=top> <td>DOS and OpenVMS
- <td>&nbsp;
- <td><b><tt>_temp_</tt></b>XX.XXX
- <td>&nbsp;
- <td>Current directory
-<tr valign=top> <td>OS/2
- <td>&nbsp;
- <td><b><tt>gs</tt></b>XXXXXX
- <td>&nbsp;
- <td>Current directory
-<tr valign=top> <td>Unix
- <td>&nbsp;
- <td><b><tt>gs_</tt></b>XXXXX
- <td>&nbsp;
- <td><b><tt>/tmp</tt></b>
-</table></blockquote>
-
-<p>
-You can change in which directory Ghostscript creates temporary files by
-setting the <b><tt>TMPDIR</tt></b> or <b><tt>TEMP</tt></b> environment
-variable to the name of the directory you want used. Ghostscript currently
-doesn't do a very good job of deleting temporary files if it exits because
-of an error; you may have to delete them manually from time to time.
-
-<dl>
-<dt><b><tt>GS</tt></b>, <b><tt>GSC</tt></b> (MS Windows only)
-<dd>Specify the names of the Ghostscript executables. <b><tt>GS</tt></b>
-brings up a new typein window and possibly a graphics window;
-<b><tt>GSC</tt></b> uses the DOS console. If these are not set,
-<b><tt>GS</tt></b> defaults to <b><tt>gswin32</tt></b>, and
-<b><tt>GSC</tt></b> defaults to <b><tt>gswin32c</tt></b>.
-</dl>
-
-<h2><a name="Environment_variables"></a>Summary of environment variables</h2>
-
-<dl>
-<dt><a href="#GS_DEVICE"><b><tt>GS_DEVICE</tt></b></a>
-<dd>Defines the default output device.
-</dl>
-
-<dl>
-<dt><a href="#Font_lookup"><b><tt>GS_FONTPATH</tt></b></a>
-<dd>Specifies a list of directories to scan for fonts if a font requested
-can't be found anywhere on the search path.
-</dl>
-
-<dl>
-<dt><a href="#Finding_files"><b><tt>GS_LIB</tt></b></a>
-<dd>Provides a search path for initialization files and fonts.
-</dl>
-
-<dl>
-<dt><b><tt>GS_OPTIONS</tt></b>
-<dd>Defines a list of command-line arguments to be processed before the
-ones actually specified on the command line. For example, setting
-<b><tt>GS_DEVICE</tt></b> to XYZ is equivalent to setting
-<b><tt>GS_OPTIONS</tt></b> to <b><tt>-sDEVICE=XYZ</tt></b>. The contents
-of <b><tt>GS_OPTIONS</tt></b> are not limited to switches; they may include
-actual file names or even <a href="#Input_control">"@file" arguments</a>.
-
-</dl>
-
-<dl>
-<dt><a href="#Temp_files"><b><tt>TEMP</tt></b>, <b><tt>TMPDIR</tt></b></a>
-<dd>Defines a directory name for temporary files. If both
-<b><tt>TEMP</tt></b> and <b><tt>TMPDIR</tt></b> are defined,
-<b><tt>TMPDIR</tt></b> takes precedence.
-</dl>
-
-<hr>
-<h2><a name="CIDFontSubstitution"></a>CID font substitution</h2>
-
-<p>
-CID fonts are PostScript resources containing
-large number of glyphs (e.g. glyphs for Far East languages).
-Please refer Postscript Language Reference,
-third edition, for details.
-
-
-<p>
-CID font resources are different kind of PostScript resources than fonts.
-Particularly they cannot be used as regular fonts. For doing this,
-CID font resourse first to be combined with a CMap resource, which
-defines specific codes for hieroglyphs (this allows to use
-same collection of hieroglyphs with different encodings).
-
-<p>
-The simplest method to request a font composed of CID font resource and CMap resource
-is to code
-<blockquote><b><tt>
-/CIDFont-CMap findfont
-</tt></b></blockquote>
-in a PostScript document, where <b><tt>CIDFont</tt></b> is a name of any
-CID font resourse, and <b><tt>CMap</tt></b> is a name of a CMap resource,
-being designed for same character collection. The interpreter will compose
-the font automatically from the specified CID font and CMap resources.
-Another method is based on the operator <b><tt>composefont</tt></b>.
-
-<p>
-For substituting CID font resources Ghostscript 6.53 and 7.0x provides
-the control file "CIDFnmap", which defines a CID font resource map.
-please refer
-<a href="CJK.htm#About_CIDFnmap">"About CIDFnmap of Ghostscript"</a>
-in CJK.htm. However, "CIDFnmap" will be replaced by "cidfmap" in
-Ghostscript 7.2x and later releases.
-
-
-<h2><a name="EPS"></a>Using Ghostscript with EPS files</h2>
-<p>
-Encapsulated PostScript (EPS) files are intended to be encapsulated
-in another PostScript document and may not display or print on their
-own. An EPS file must conform to the Document Structuring Conventions,
-must include a <b><tt>%%BoundingBox:</tt></b> line to indicate the
-rectangle in which it will draw, must not use PostScript commands
-which will interfere with the document importing the EPS,
-and can have either zero pages or one page.
-Ghostscript has support for handling EPS files, but requires
-that the <b><tt>%%BoundingBox:</tt></b> be in the header,
-not the trailer.
-</p>
-<p>
-For the official description of the EPS file format, please
-refer to the Adobe documentation in their tech note #5002. It
-is available from:
-<a href="http://partners.adobe.com/asn/developer/technotes/postscript.html"
-class="offsite">
-http://partners.adobe.com/asn/developer/technotes/postscript.html</a>
-</p>
-<p>
-To crop an EPS file to the bounding box:
-<blockquote>
-<b><tt>
- gs -dEPSCrop file.eps
-</tt></b>
-</blockquote>
-</p>
-<p>
-To resize an EPS file to fit the page:
-<blockquote>
-<b><tt>
- gs -dEPSFitPage file.eps
-</tt></b>
-</blockquote>
-</p>
-<p>
-To disable special processing of EPS files:
-<blockquote>
-<b><tt>
- gs -dNOEPS file.eps
-</tt></b>
-</blockquote>
-</p>
-
-<h2><a name="PDF"></a>Using Ghostscript with PDF files</h2>
-
-<p>
-Ghostscript is normally built (except on 16-bit DOS platforms) to interpret
-both PostScript and PDF files, examining each file to determine
-automatically whether its contents are PDF or PostScript. All the normal
-switches and procedures for interpreting PostScript files also apply to PDF
-files, with a few exceptions. In addition, the
-<b><tt>pdf2ps</tt></b> utility uses Ghostscript to convert
-PDF to (Level 2) PostScript.
-
-<h3><a name="PDF_stdin"></a>PDF files from standard input</h3>
-
-<p>
-The PDF language, unlike the PostScript language, inherently requires
-random access to the file.
-If you provide PDF to standard input using the
-<a href="#Pipe_input">"<b><tt>-</tt></b>" or "<b><tt>-_</tt></b>"
-switch</a>,
-ghostscript will copy it to a temporary file before interpreting the PDF.
-
-<h3><a name="PDF_switches"></a>Switches for PDF files</h3>
-
-<dl>
-<dt><b><tt>-dFirstPage=</tt></b><em>pagenumber</em>
-<dd>Begins interpreting on the designated page of the document.
-</dl>
-
-<dl>
-<dt><b><tt>-dLastPage=</tt></b><em>pagenumber</em>
-<dd>Stops interpreting after the designated page of the document.
-</dl>
-
-<dl>
-<dt><b><tt>-dPrinted</tt></b>
-<dt><b><tt>-dPrinted=false</tt></b>
-<dd>Determines whether the file should be displayed or printed using the
-"screen" or "printer" options for annotations and images. With
-<b><tt>-dPrinted</tt></b>, the output will use the file's "print"
-options; with <b><tt>-dPrinted=false</tt></b>, the output will use the
-file's "screen" options. If neither of these is specified, the output will
-use the screen options for any output device that doesn't have an
-<b><tt>OutputFile</tt></b> parameter, and the printer options for
-devices that do have this parameter.
-</dl>
-
-<dl>
-<dt><b><tt>-dUseCropBox</tt></b>
-<dd>Sets the page size to the CropBox rather than the MediaBox.
-Some files have a CropBox that is smaller than the MediaBox and
-may include white space, registration or cutting marks outside
-the CropBox. Using this option will set the page size
-appropriately for a viewer.
-</dl>
-
-<dl>
-<dt><b><tt>-sPDFPassword=</tt></b><em>password</em>
-<dd>Sets the user or owner password to be used in decoding encrypted
-PDF files.
-</dl>
-
-<h3><a name="PDF_problems"></a>Problems interpreting a PDF file</h3>
-
-<p>
-Occasionally you may try to read or print a <b><tt>*.pdf</tt></b> file that
-Ghostscript doesn't recognize as PDF, even though the same file
-<b><em>can</em></b> be opened and interpreted by an Adobe Acrobat viewer.
-This can happen when, for instance, a PDF file produced on a Macintosh is
-carelessly moved to another kind of system, leaving now-useless
-Macintosh-specific data before the standard header. Ghostscript can't read
-these files because they don't conform to the PDF standard, Adobe's <a
-href="http://partners.adobe.com/asn/developer/acrosdk/docs/PDFRef.pdf"
-class="offsite"><cite>Portable
-Document Format Reference Manual</cite></a>, version 1.2, which states:
-
-<blockquote>
-The first line of a PDF file specifies the version number of the PDF
-specification to which the file adheres.... [T]he first line of a
-1.2-conforming PDF file should be <b><tt>%PDF-1.2</tt></b>.
-</blockquote>
-
-<p>
-However, in an appendix the manual also says that Adobe
-
-<blockquote>
-Acrobat viewers are very liberal in their check for a valid PDF header.
-All viewers allow the header to appear anywhere in the first 1,000 bytes of
-the file.
-</blockquote>
-
-<p>
-Ghostscript doesn't do this: it expects PDF files to conform to the
-standard, because that's how it recognizes them among other formats it
-handles, unlike Acrobat viewers which need deal only with PDF and can
-therefore afford to be more liberal with PDF. So if you encounter a file
-with useless characters before the header and you want to use it with
-Ghostscript, you can fix it by stripping the extra characters from before
-the standard header. The file should begin with exactly the characters
-
-<blockquote><b><tt>
-%PDF
-</tt></b></blockquote>
-
-<p>
-PDF files are binary, not text, so be careful to edit the file as a binary,
-not as text. On Unix, after determining the length of the useless prefix
-string, which you can do with <b><tt>od</tt></b>, you can use
-<b><tt>tail</tt></b> to strip them off. For instance:
-
-<blockquote>
-<b><tt>od -c Macintosh.pdf | more</tt></b> ;# <em>shows that <b><tt>%PDF</tt></b> occurs after 128 characters</em><br>
-<b><tt>tail +128c Macintosh.pdf &gt;Legal.pdf</tt></b>
-</blockquote>
-
-<p>
-On PCs and other systems you can use the <b><tt>hexl</tt></b> program
-distributed with GNU emacs to convert the PDF file to editable text form.
-After editing, <b><tt>hexl</tt></b> can convert the text form back to
-binary.
-
-<hr>
-
-<h2><a name="Platforms"></a>Notes on specific platforms</h2>
-
-<h3><a name="Unix"></a>Unix</h3>
-
-<p>
-The Ghostscript distribution includes some Unix shell scripts to use with
-Ghostscript in different environments. These are all user-contributed
-code, so if you have questions, please contact the user identified in the
-file, not Aladdin Enterprises or artofcode LLC.
-
-<dl>
-<dt><b><tt>pv.sh</tt></b>
-<dd>Preview a specified page of a <b><tt>dvi</tt></b> file in an X window
-</dl>
-
-<dl>
-<dt><b><tt>sysvlp.sh</tt></b>
-<dd>System V 3.2 lp interface for parallel printer
-</dl>
-
-<dl>
-<dt><b><tt>pj-gs.sh</tt></b>
-<dd>Printing on an H-P PaintJet under HP-UX
-</dl>
-
-<dl>
-<dt><b><tt>unix-lpr.sh</tt></b>
-<dd>Queue filter for <b><tt>lpr</tt></b> under Unix;
-<a href="Unix-lpr.htm">its documentation</a> is intended for system
-administrators
-</dl>
-
-<dl>
-<dt><b><tt>lprsetup.sh</tt></b>
-<dd>Setup for <b><tt>unix-lpr.sh</tt></b>
-</dl>
-
-<hr>
-
-<h3><a name="VMS"></a>VMS</h3>
-
-<ul>
-<li>To be able to specify switches and file names when invoking the
-interpreter, define <b><tt>gs</tt></b> as a foreign command:
-
-<blockquote>
-<b><tt>$ gs == "$</tt></b><em>disk</em><b><tt>:[</tt></b><em>directory</em><b><tt>]gs.exe</tt></b>"
-</blockquote>
-
-<p>
-where the "<em>disk</em>" and "<em>directory</em>" specify where
-the Ghostscript executable is located. For instance,
-
-<blockquote><b><tt>
-$ gs == "$dua1:[ghostscript]gs.exe"
-</tt></b></blockquote>
-
-<li>On VMS systems, the last character of each "directory" name indicates
-what sort of entity the "directory" refers to. If the "directory" name
-ends with a colon "<b><tt>:</tt></b>", it is taken to refer to a logical
-device, for instance
-
-<blockquote><b><tt>
-$ define ghostscript_device dua1:[ghostscript_510]<br>
-$ define gs_lib ghostscript_device:
-</tt></b></blockquote>
-
-<p>
-If the "directory" name ends with a closing square bracket
-"<b><tt>]</tt></b>", it is taken to refer to a real directory, for instance
-
-<blockquote><b><tt>
-$ define gs_lib dua1:[ghostscript]
-</tt></b></blockquote>
-
-<li>Defining the logical <b><tt>GS_LIB</tt></b>
-
-<blockquote>
-<b><tt>$ define gs_lib</tt></b> <em>disk</em><b><tt>:[</tt></b><em>directory</em><b><tt>]</tt></b>
-</blockquote>
-
-<p>
-allows Ghostscript to find its initialization files in the Ghostscript
-directory even if that's not where the executable resides.<br>&nbsp;
-
-<li>Although VMS DCL itself converts unquoted parameters to upper case, C
-programs such as Ghostscript receive their parameters through the C runtime
-library, which forces all unquoted command-line parameters to lower case.
-That is, with the command
-
-<blockquote><b><tt>
-$ gs -Isys$login:
-</tt></b></blockquote>
-
-<p>
-Ghostscript sees the switch as <b><tt>-isys$login</tt></b>,
-which doesn't work. To preserve the case of switches, quote them like
-this:
-
-<blockquote><b><tt>
-$ gs "-Isys$login:"
-</tt></b></blockquote>
-
-<li>If you write printer output to a file with
-<b><tt>-sOutputFile=</tt></b> and then want to print the file later, use
-"<b><tt>PRINT/PASSALL</tt></b>".
-</ul>
-
-<ul>
-<li>PDF files (or PostScript files that use the
-<b><tt>setfileposition</tt></b> operator) must be "stream LF" type files to
-work properly on VMS systems. (<b><em>Note:</em></b> This definitely matters
-if Ghostscript was compiled with DEC C; we are not sure of the situation if
-you use <b><tt>gcc</tt></b>.) Because of this, if you transfer files by
-FTP, you probably need to do one of these two things after the transfer:
-
-<ol>
-<li>If the FTP transfer was in text (ASCII) mode:
-
-<blockquote>
-<b><tt>$ convert/fdl=streamlf.fdl</tt></b> input-file output-file
-</blockquote>
-
-<p>
-where the contents of the file <b><tt>STREAMLF.FDL</tt></b> are
-
-<blockquote>
-<pre>FILE
- ORGANIZATION sequential
-
-RECORD
- BLOCK_SPAN yes
- CARRIAGE_CONTROL carriage_return
- FORMAT stream_lf
-</pre></blockquote>
-
-<li>If the FTP transfer was in binary mode:
-
-<blockquote><b><tt>
- $ set file/attribute=(rfm:stmlf)
-</tt></b></blockquote>
-</ol>
-</ul>
-
-<h4><a name="VMS_X_Windows"></a>Using X Windows on VMS</h4>
-
-<p>
-If you are using on an X Windows display, you can set it up with the node
-name and network transport, for instance
-
-<blockquote><b><tt>
- $ set display/create/node="doof.city.com"/transport=tcpip
-</tt></b></blockquote>
-
-<p>
-and then run Ghostscript by typing <b><tt>gs</tt></b> at the command line.
-
-<hr>
-
-<h3><a name="MS_Windows"></a>MS Windows</h3>
-
-<p>
-You must add <em>gs\</em><b><tt>bin</tt></b> and
-<em>gs\</em><b><tt>lib</tt></b> to the <b><tt>PATH</tt></b>, where
-<em>gs</em> is the top-level Ghostscript directory.
-
-<p>
-When passing options to ghostcript through a batch file wrapper such as
-<tt>ps2pdf.bat</tt> you need to substitute '#' for '=' as the separator
-between options and their arguments. For example:
-<blockquote><pre>
-ps2pdf -sPAPERSIZE#a4 file.ps file.pdf
-</pre></blockquote>
-
-Ghostscript treats '#' the same internally, and the '=' is mangled by
-the command shell.
-
-<hr>
-
-<h3><a name="MS-DOS"></a>MS-DOS</h3>
-
-<p>
-<strong>Note:</strong> Ghostscript is no longer supported on MS-DOS. This
-documentation is included for historical interest only.
-
-<p>
-You must add <em>gs\</em><b><tt>bin</tt></b> and
-<em>gs\</em><b><tt>lib</tt></b> to the <b><tt>PATH</tt></b>, where
-<em>gs</em> is the top-level Ghostscript directory.
-
-<ul>
-<li>
-Ghostscript supports many SuperVGA displays directly, most of them with
-more than 16 colors. The complete list is in the file
-<b><tt>devs.mak</tt></b>, part of Ghostscript's
-<a href="#Source_code">source code</a>.
-
-<li>
-Some applications, such as Microsoft Word, require a prologue in front of
-the PostScript files they produce. In the case of MS Word, this prologue
-is one of the *.ini files Microsoft includes with Word. Other applications
-may require other prologues. You may specify a prologue on the Ghostscript
-command line, for instance
-
-<blockquote><b><tt>
- gs386 prologue.ini myfile.ps
-</tt></b></blockquote>
-
-<li>
-If you have a SuperVGA display that supports a 16-color mode with 800x600
-pixels and you know the display mode number for this mode, you can select
-it by using the command line switches
-
-<blockquote>
-<b><tt>-sDEVICE=svga16 -dDisplayMode=</tt></b><em>NNN</em>
-</blockquote>
-
-<p>
-where <em>NNN</em> is the display mode number in decimal. Here are modes
-for some popular display chipsets; the ones that use the default value are
-marked "*". If your card's chipset doesn't appear on this list, or if you
-try the value here and it doesn't work, please send the name of the chipset
-and its correct display mode to &lt;<a href="mailto:bug-gs@aladdin.com">bug-gs@aladdin.com</a>&gt; to include in
-future releases.
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=6 bgcolor="#CCCC00"><hr><font size="+1">Display modes for PC display chipsets</font><hr>
-<tr> <td>&nbsp;
- <th>Chipset
- <td>&nbsp;
- <th>Decimal
- <td>&nbsp;
- <th>Hex
-<tr> <td colspan=6><hr>
-<tr> <td>&nbsp;
- <td>Acumos AVGA2, AVGA3
- <td>&nbsp;
- <td align=center>88
- <td>&nbsp;
- <td align=right><tt>0x58</tt>
-<tr> <td>&nbsp;
- <td>Advance Logic AL2101
- <td>&nbsp;
- <td align=center>43
- <td>&nbsp;
- <td align=right><tt>0x2B</tt>
-<tr> <td>&nbsp;
- <td>Ahead V5000
- <td>&nbsp;
- <td align=center>113
- <td>&nbsp;
- <td align=right><tt>0x71</tt>
-<tr> <td>&nbsp;
- <td>ATI VGAWONDER, Graphics Ultra etc.
- <td>&nbsp;
- <td align=center>84
- <td>&nbsp;
- <td align=right><tt>0x54</tt>
-<tr> <td>&nbsp;
- <td>Chips and Technologies
- <td>&nbsp;
- <td align=center>106
- <td>&nbsp;
- <td align=right><tt>0x6A</tt>
-<tr> <td>&nbsp;
- <td>Cirrus Logic CL-GD 500/600
- <td>&nbsp;
- <td align=center>100
- <td>&nbsp;
- <td align=right><tt>0x64</tt>
-<tr> <td>&nbsp;
- <td>Cirrus Logic GD 5422
- <td>&nbsp;
- <td align=center>88
- <td>&nbsp;
- <td align=right><tt>0x58</tt>
-<tr> <td>&nbsp;
- <td>Compaq VGA
- <td>&nbsp;
- <td align=center>89
- <td>&nbsp;
- <td align=right><tt>0x59</tt>
-<tr> <td>&nbsp;
- <td>CTI
- <td>&nbsp;
- <td align=center>106
- <td>&nbsp;
- <td align=right><tt>0x6A</tt>
-<tr> <td>*
- <td>Genoa 5xxx, Sigma VGA
- <td>&nbsp;
- <td align=center>41
- <td>&nbsp;
- <td align=right><tt>0x29</tt>
-<tr> <td>&nbsp;
- <td>Genoa 6xxx
- <td>&nbsp;
- <td align=center>106
- <td>&nbsp;
- <td align=right><tt>0x6A</tt>
-<tr> <td>&nbsp;
- <td>MXIC MX 68010
- <td>&nbsp;
- <td align=center>85
- <td>&nbsp;
- <td align=right><tt>0x55</tt>
-<tr> <td>&nbsp;
- <td>NCR 77C22
- <td>&nbsp;
- <td align=center>88
- <td>&nbsp;
- <td align=right><tt>0x58</tt>
-<tr> <td>&nbsp;
- <td>OAK Technologies OTI-067, OTI-077, OTI037C
- <td>&nbsp;
- <td align=center>82
- <td>&nbsp;
- <td align=right><tt>0x52</tt>
-<tr> <td>&nbsp;
- <td>OAK Technologies OTI037C w/ NEL BIOS
- <td>&nbsp;
- <td align=center>91
- <td>&nbsp;
- <td align=right><tt>0x5B</tt>
-<tr> <td>*
- <td>Orchid Prodesigner
- <td>&nbsp;
- <td align=center>41
- <td>&nbsp;
- <td align=right><tt>0x29</tt>
-<tr> <td>&nbsp;
- <td>Paradise
- <td>&nbsp;
- <td align=center>88
- <td>&nbsp;
- <td align=right><tt>0x58</tt>
-<tr> <td>&nbsp;
- <td>Poach
- <td>&nbsp;
- <td align=center>106
- <td>&nbsp;
- <td align=right><tt>0x6A</tt>
-<tr> <td>&nbsp;
- <td>Primus
- <td>&nbsp;
- <td align=center>42
- <td>&nbsp;
- <td align=right><tt>0x2A</tt>
-<tr> <td>&nbsp;
- <td>Realtek RT 3106
- <td>&nbsp;
- <td align=center>31
- <td>&nbsp;
- <td align=right><tt>0x1F</tt>
-<tr> <td>&nbsp;
- <td>Tecmar
- <td>&nbsp;
- <td align=center>22
- <td>&nbsp;
- <td align=right><tt>0x16</tt>
-<tr> <td>&nbsp;
- <td>Trident 8900
- <td>&nbsp;
- <td align=center>91
- <td>&nbsp;
- <td align=right><tt>0x5B</tt>
-<tr> <td>*
- <td>Tseng ET-3000, ET-4000
- <td>&nbsp;
- <td align=center>41
- <td>&nbsp;
- <td align=right><tt>0x29</tt>
-<tr> <td>*
- <td>VEGA
- <td>&nbsp;
- <td align=center>41
- <td>&nbsp;
- <td align=right><tt>0x29</tt>
-<tr> <td>&nbsp;
- <td>Video 7 SVGA
- <td>&nbsp;
- <td align=center>98
- <td>&nbsp;
- <td align=right><tt>0x62</tt>
-<tr> <td>&nbsp;
- <td>WD90C11
- <td>&nbsp;
- <td align=center>92
- <td>&nbsp;
- <td align=right><tt>0x5C</tt>
-<tr> <td>&nbsp;
- <td>Western Digital
- <td>&nbsp;
- <td align=center>88
- <td>&nbsp;
- <td align=right><tt>0x58</tt>
-</table></blockquote>
-</ul>
-
-<p>
-Note that when passing arguments to batch files (as above) and also with the
-DOS executable <b><tt>gs386.exe</tt></b> build with the Watcom C/C++ compiler,
-you must use '<b><tt>#</tt></b>' rather than '<b><tt>=</tt></b>' between a
-command line switch and its argument, because of a strange design decision
-in the Wacom run-time library.
-
-
-<hr>
-
-<h3><a name="X_Windows"></a>X Windows</h3>
-
-<p>
-Ghostscript looks for the following resources under the program name
-<b><tt>ghostscript</tt></b> and class name
-<b><tt>Ghostscript</tt></b>; the ones marked "**" are
-calculated from display metrics:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">X Windows resources</font><hr>
-<tr> <th align=left>Name
- <td>&nbsp;&nbsp;
- <th align=left>Class
- <td>&nbsp;&nbsp;
- <th align=left>Default
-<tr> <td colspan=5><hr>
-<tr> <td><b><tt>background</tt></b>
- <td>&nbsp;
- <td><b><tt>Background</tt></b>
- <td>&nbsp;
- <td><b><tt>white</tt></b>
-<tr> <td><b><tt>foreground</tt></b>
- <td>&nbsp;
- <td><b><tt>Foreground</tt></b>
- <td>&nbsp;
- <td><b><tt>black</tt></b>
-<tr> <td><b><tt>borderColor</tt></b>
- <td>&nbsp;
- <td><b><tt>BorderColor</tt></b>
- <td>&nbsp;
- <td><b><tt>black</tt></b>
-<tr> <td><b><tt>borderWidth</tt></b>
- <td>&nbsp;
- <td><b><tt>BorderWidth</tt></b>
- <td>&nbsp;
- <td><b><tt>1</tt></b>
-<tr> <td><b><tt>geometry</tt></b>
- <td>&nbsp;
- <td><b><tt>Geometry</tt></b>
- <td>&nbsp;
- <td><b><tt>NULL</tt></b>
-<tr> <td><b><tt>xResolution</tt></b>
- <td>&nbsp;
- <td><b><tt>Resolution</tt></b>
- <td>&nbsp;
- <td>**
-<tr> <td><b><tt>yResolution</tt></b>
- <td>&nbsp;
- <td><b><tt>Resolution</tt></b>
- <td>&nbsp;
- <td>**
-<tr> <td><b><tt>useExternalFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>UseExternalFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>true</tt></b>
-<tr> <td><b><tt>useScalableFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>UseScalableFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>true</tt></b>
-<tr> <td><b><tt>logExternalFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>LogExternalFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>false</tt></b>
-<tr> <td><b><tt>externalFontTolerance</tt></b>
- <td>&nbsp;
- <td><b><tt>ExternalFontTolerance</tt></b>
- <td>&nbsp;
- <td><b><tt>10.0</tt></b>
-<tr> <td><b><tt>palette</tt></b>
- <td>&nbsp;
- <td><b><tt>Palette</tt></b>
- <td>&nbsp;
- <td><b><tt>Color</tt></b>
-<tr> <td><b><tt>maxGrayRamp</tt></b>
- <td>&nbsp;
- <td><b><tt>MaxGrayRamp</tt></b>
- <td>&nbsp;
- <td><b><tt>128</tt></b>
-<tr> <td><b><tt>maxRGBRamp</tt></b>
- <td>&nbsp;
- <td><b><tt>MaxRGBRamp</tt></b>
- <td>&nbsp;
- <td><b><tt>5</tt></b>
-<tr> <td><b><tt>maxDynamicColors</tt></b>
- <td>&nbsp;
- <td><b><tt>MaxDynamicColors</tt></b>
- <td>&nbsp;
- <td><b><tt>256</tt></b>
-<tr> <td><b><tt>useBackingPixmap</tt></b>
- <td>&nbsp;
- <td><b><tt>UseBackingPixmap</tt></b>
- <td>&nbsp;
- <td><b><tt>true</tt></b>
-<tr> <td><b><tt>useXPutImage</tt></b>
- <td>&nbsp;
- <td><b><tt>UseXPutImage</tt></b>
- <td>&nbsp;
- <td><b><tt>true</tt></b>
-<tr> <td><b><tt>useXSetTile</tt></b>
- <td>&nbsp;
- <td><b><tt>UseXSetTile</tt></b>
- <td>&nbsp;
- <td><b><tt>true</tt></b>
-<tr> <td><b><tt>regularFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>RegularFonts</tt></b>
- <td>&nbsp;
- <td>See "<a href="#X_fonts">X fonts</a>"
-<tr> <td><b><tt>symbolFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>SymbolFonts</tt></b>
- <td>&nbsp;
- <td>See "<a href="#X_fonts">X fonts</a>"
-<tr> <td><b><tt>dingbatFonts</tt></b>
- <td>&nbsp;
- <td><b><tt>DingbatFonts</tt></b>
- <td>&nbsp;
- <td>See "<a href="#X_fonts">X fonts</a>"
-</table></blockquote>
-
-<h4><a name="X_resources"></a>X resources</h4>
-
-<ul>
-<li>
-To set X resources, put them in a file (such as
-<b><tt>~/.Xdefaults</tt></b> on Unix) in a form like this:
-
-<blockquote><table cellpadding=0 cellspacing=0>
-<tr><td><b><tt>Ghostscript*geometry:</tt></b><td><b><tt>&nbsp;&nbsp;</tt></b><td><b><tt>595x842-0+0</tt></b>
-<tr><td><b><tt>Ghostscript*xResolution:</tt></b><td><b><tt>&nbsp;</tt></b><td><b><tt>72</tt></b>
-<tr><td><b><tt>Ghostscript*yResolution:</tt></b><td><b><tt>&nbsp;</tt></b><td><b><tt>72</tt></b>
-</table></blockquote>
-
-<p>
-Then merge these resources into the X server's resource database:
-
-<blockquote><b><tt>
- xrdb -merge ~/.Xdefaults
-</tt></b></blockquote>
-
-<li>
-Ghostscript doesn't look at the default system background and foreground
-colors; if you want to change the background or foreground color, you must
-set them explicitly for Ghostscript. This is a deliberate choice, so that
-PostScript documents will display correctly by default -- with white as
-white and black as black -- even if text windows use other colors.
-
-<li>
-The <b><tt>geometry</tt></b> resource affects only window placement.
-
-<li>
-Resolution is expressed in pixels per inch (1 inch = 25.4mm).
-
-<li>
-The font tolerance gives the largest acceptable difference in height of the
-screen font, expressed as a percentage of the height of the desired font.
-
-<li>
-The <b><tt>palette</tt></b> resource can be used to restrict Ghostscript to
-using a grayscale or monochrome palette.
-
-<li>
-<b><tt>maxRGBRamp</tt></b> and
-<b><tt>maxGrayRamp</tt></b> control the maximum number of
-colors that ghostscript allocates ahead of time for the dither cube (ramp).
-Ghostscript never preallocates more than half the cells in a colormap.
-<b><tt>maxDynamicColors</tt></b> controls the maximum
-number of colors that Ghostscript will allocate dynamically in the
-colormap.
-</ul>
-
-<h4><a name="X_server_bugs"></a>Working around bugs in X servers</h4>
-
-<p>
-The "<b><tt>use</tt></b>..." resources exist primarily to work around bugs
-in X servers.
-
-<ul>
-<li> Old versions of DEC's X server (DECwindows) have bugs that
- require setting <b><tt>useXPutImage</tt></b> or
- <b><tt>useXSetTile</tt></b> to
- <b><tt>false</tt></b>.
-
-<li> Some servers do not implement backing pixmaps properly, or do not
- have enough memory for them. If you get strange behavior or "out
- of memory" messages, try setting
- <b><tt>useBackingPixmap</tt></b> to
- <b><tt>false</tt></b>.
-
-<li> Some servers do not implement tiling properly. This appears
- as broad bands of color where dither patterns should appear. If
- this happens, try setting
- <b><tt>useXSetTile</tt></b> to
- <b><tt>false</tt></b>.
-
-<li> Some servers do not implement bitmap or pixmap displaying properly.
- This may appear as white or black rectangles where characters
- should appear; or characters may appear in "inverse video" (for
- instance, white on a black rectangle rather than black on white).
- If this happens, try setting
- <b><tt>useXPutImage</tt></b> to
- <b><tt>false</tt></b>.
-</ul>
-
-<h4><a name="X_fonts"></a>X fonts</h4>
-
-<p>
-To use native X11 fonts, Ghostscript must map PostScript font names to the
-XLFD font names. The resources <b><tt>regularFonts</tt></b>
-(fonts available in standard or ISO-Latin-1 encoding),
-<b><tt>symbolFonts</tt></b> (using Symbol encoding), and
-<b><tt>dingbatFonts</tt></b> (using Dingbat encoding) give
-the name mapping for different encodings. The XLFD font name in the
-mapping must contain 7 dashes; the X driver adds the additional size and
-encoding fields to bring the total number of dashes in the font name to 14.
-See the appendix "<a href="#X_font_mappings">X default font mappings</a>"
-for the full list of default mappings.
-
-<p>
-Users who switch regularly between different X servers may wish to use the
-"*" wild card in place of the foundry name
-(<b><tt>itc</tt></b>,
-<b><tt>monotype</tt></b>,
-<b><tt>linotype</tt></b>,
-<b><tt>b&amp;h</tt></b>, or
-<b><tt>adobe</tt></b>); users who do not switch X servers
-should leave the explicit foundry in the name, since it speeds up access to
-fonts.
-
-<p>
-Ghostscript takes advantage of the "HP XLFD Enhancements," if available, to
-use native X11 fonts for fonts that are anamorphically scaled, rotated, or
-mirrored. If the changes have been installed to the X or font server, they
-are automatically used when appropriate.
-
-<h4><a name="GS_fonts_as_X_fonts"></a>Using Ghostscript fonts on X displays</h4>
-
-<p>
-Font files distributed with Ghostscript can be used on X Windows displays.
-You can find full instructions in the
-<a href="Fonts.htm#Use_gs_fonts_with_X">documentation on fonts</a>.
-
-<h4><a name="X_device_parameters"></a>X device parameters</h4>
-
-<p>
-In addition to the device parameters recognized by <a
-href="Language.htm#Device_parameters">all devices</a>, Ghostscript's X
-driver provides parameters to adjust its performance. Users will rarely
-need to modify these. Note that these are parameters to be set with the
-<b><tt>-d</tt></b> switch in the command line (e.g.,
-<b><tt>-dMaxBitmap=10000000</tt></b>), not resources to be defined in the
-<b><tt>~/.Xdefaults</tt></b> file.
-
-<dl>
-<dt><b><tt>AlwaysUpdate &lt;boolean&gt;</tt></b>
-<dd>If <b><tt>true</tt></b>, the driver updates the screen after each
-primitive drawing operation; if <b><tt>false</tt></b> (the default), the
-driver uses an intelligent buffered updating algorithm.
-</dl>
-
-<dl>
-<dt><b><tt>MaxBitmap &lt;integer&gt;</tt></b>
-<dd>If the amount of memory required to hold the pixmap for the window is no
-more than the value of <b><tt>MaxBitmap</tt></b>, the driver will draw to a
-pixmap in Ghostscript's address space (called a "client-side pixmap") and
-will copy it to the screen from time to time; if the amount of memory
-required for the pixmap exceeds the value of <b><tt>MaxBitmap</tt></b>, the
-driver will draw to a server pixmap. Using a client-side pixmap usually
-provides better performance -- for bitmap images, possibly much better
-performance -- but since it may require quite a lot of RAM (e.g., about 2.2
-Mb for a 24-bit 1024x768 window), the default value of
-<b><tt>MaxBitmap</tt></b> is 0.
-</dl>
-
-<dl>
-<dt><b><tt>MaxTempPixmap, MaxTempImage, MaxBufferedTotal, MaxBufferedArea,
-MaxBufferedCount &lt;integer&gt;</tt></b>
-<dd>These control various aspects of the driver's buffering behavior. For
-details, please consult the source file <b><tt>gdevx.h</tt></b>.
-</dl>
-
-<hr>
-
-<h3><a name="SCO_Unix"></a>SCO Unix</h3>
-
-<p>
-Because of bugs in the SCO Unix kernel, Ghostscript will not work if you
-select direct screen output and also allow it to write messages on the
-console. If you are using direct screen output, redirect Ghostscript's
-terminal output to a file.
-
-<hr>
-
-<h2><a name="Switches"></a>Switches</h2>
-
-<p>
-Unless otherwise noted, these switches can be used on all platforms.
-
-<h3><a name="General_switches"></a>General switches</h3>
-
-<h4><a name="Input_control"></a>Input control</h4>
-
-<dl>
-<dt><b><tt>@</tt></b><em>filename</em>
-<dd>Causes Ghostscript to read <em>filename</em> and treat its contents the
-same as the command line. (This is intended primarily for getting around
-DOS's 128-character limit on the length of a command line.) Switches or
-file names in the file may be separated by any amount of white space
-(space, tab, line break); there is no limit on the size of the file.
-</dl>
-
-<dl>
-<dt><b><tt>--</tt></b> <em>filename arg1 ...</em>
-<br><b><tt>-+</tt></b> <em>filename arg1 ...</em>
-<dd>Takes the next argument as a file name as usual, but takes all
-remaining arguments (even if they have the syntactic form of switches) and
-defines the name <b><tt>ARGUMENTS</tt></b> in userdict (not systemdict) as
-an array of those strings, <em>before</em> running the file. When
-Ghostscript finishes executing the file, it exits back to the shell.
-</dl>
-
-<dl>
-<dt><b><tt>-@</tt></b> <em>filename arg1 ...</em>
-<dd>Does the same thing as <b><tt>--</tt></b> and <b><tt>-+</tt></b>, but
-expands <b><tt>@</tt></b><em>filename</em> arguments.
-</dl>
-
-<dl>
-<dt><b><tt>-</tt></b>
-<br><b><tt>-_</tt></b>
-<dd>These are not really switches: they tell Ghostscript to read from
-standard input, which is coming from a file or a pipe,
-with or without buffering.
-See <a href="#Pipe_input">"Input from a pipe"</a> above.
-</dl>
-
-<dl>
-<dt><b><tt>-c</tt></b> <em>tokens ...</em>
-<dd>Interprets arguments as PostScript code up to the next argument that
-begins with "<b><tt>-</tt></b>" followed by a non-digit, or with
-"<b><tt>@</tt></b>". For example, if the file <b><tt>quit.ps</tt></b>
-contains just the word "<b><tt>quit</tt></b>", then
-<b><tt>-c&nbsp;quit</tt></b> on the command line is equivalent to
-<b><tt>quit.ps</tt></b> there. Each argument must be exactly one token, as
-defined by the <b><tt>token</tt></b> operator.
-</dl>
-
-<dl>
-<dt><b><tt>-f</tt></b>
-<dd>Interprets following non-switch arguments as file names to be executed
-using the normal <b><tt>run</tt></b> command. Since this is the default
-behavior, <b><tt>-f</tt></b> is useful only for terminating the list of
-tokens for the <b><tt>-c</tt></b> switch.
-</dl>
-
-<dl>
-<dt><b><tt>-f</tt></b><em>filename</em>
-<dd>Execute the given file, even if its name begins with a
-"<b><tt>-</tt></b>" or "<b><tt>@</tt></b>".
-</dl>
-
-<h4><a name="File_searching"></a>File searching</h4>
-
-<p>
-Note that by "library files" here we mean all the files identified using
-the search rule under "<a href="#Finding_files">How Ghostscript finds
-files</a>" above: Ghostscript's own initialization files, fonts, and files
-named on the command line.
-
-<dl>
-<dt><a name="I_switch"></a><b><tt>-I</tt></b><em>directories</em>
-<dd>Adds the designated list of directories at the head of the search path
-for library files.
-</dl>
-
-<dl>
-<dt><a name="P_switch"></a><b><tt>-P</tt></b>
-<dd>Makes Ghostscript look first in the current directory for library
-files. This is currently the default.
-</dl>
-
-<dl>
-<dt><a name="P-_switch"></a><b><tt>-P-</tt></b>
-<dd>Makes Ghostscript <b><em>not</em></b> look first in the current
-directory for library files (unless, of course, the first explicitly
-supplied directory is "<b><tt>.</tt></b>").
-</dl>
-
-<h4><a name="Parameters"></a>Setting parameters</h4>
-
-<dl>
-<dt><b><tt>-D</tt></b><em>name</em>
-<br><b><tt>-d</tt></b><em>name</em>
-<dd>Define a name in systemdict with value=true.
-</dl>
-
-<dl>
-<dt><b><tt>-D</tt></b><em>name</em><b><tt>=</tt></b><em>token</em>
-<br><b><tt>-d</tt></b><em>name</em><b><tt>=</tt></b><em>token</em>
-<dd>Define a name in systemdict with the given definition. The token must
-be exactly one token (as defined by the <b><tt>token</tt></b> operator) and
-must not contain any whitespace. If the token is a non-literal name, it
-must be true, false, or null.
-</dl>
-
-<dl>
-<dt><b><tt>-S</tt></b><em>name</em><b><tt>=</tt></b><em>string</em>
-<br><b><tt>-s</tt></b><em>name</em><b><tt>=</tt></b><em>string</em>
-<dd>Define a name in systemdict with a given string as value. This is
-different from <b><tt>-d</tt></b>. For example, <b><tt>-dXYZ=35</tt></b>
-on the command line is equivalent to the program fragment
-
-<blockquote><b><tt>
-/XYZ 35 def
-</tt></b></blockquote>
-
-<p>
-whereas <b><tt>-sXYZ=35</tt></b> is equivalent to
-
-<blockquote><b><tt>
-/XYZ (35) def
-</tt></b></blockquote>
-</dl>
-
-<dl>
-<dt><b><tt>-u</tt></b><em>name</em>
-<dd>Un-define a name, cancelling <b><tt>-d</tt></b> or <b><tt>-s</tt></b>.
-</dl>
-
-<p>
-Note that the initialization file <b><tt>gs_init.ps</tt></b> makes
-<b><tt>systemdict</tt></b> read-only, so the values of names defined with
-<b><tt>-D</tt></b>, <b><tt>-d</tt></b>, <b><tt>-S</tt></b>, and
-<b><tt>-s</tt></b> cannot be changed -- although, of course, they can be
-superseded by definitions in <b><tt>userdict</tt></b> or other dictionaries.
-However, device parameters set this way (<b><tt>PageSize</tt></b>,
-<b><tt>Margins</tt></b>, etc.) are <em>not</em> read-only, and <em>can</em>
-be changed by code in PostScript files.
-
-<dl>
-<dt><b><tt>-g</tt></b><em>number1</em><b><tt>x</tt></b><em>number2</em>
-<dd>Equivalent to <b><tt>-dDEVICEWIDTH=</tt></b><em>number1</em> and
-<b><tt>-dDEVICEHEIGHT=</tt></b><em>number2</em>, specifying the device
-width and height in pixels for the benefit of devices such as X11 windows
-and VESA displays that require (or allow) you to specify width and height.
-Note that this causes documents of other sizes to be clipped, not scaled:
-see <b><tt>-dFIXEDMEDIA</tt></b> below.
-</dl>
-
-<dl>
-<dt><a name="Resolution_switch"></a><b><tt>-r</tt></b><em>number</em> (same
-as <b><tt>-r</tt></b><em>number</em><b><tt>x</tt></b><em>number</em>)
-<br><b><tt>-r</tt></b><em>number1</em><b><tt>x</tt></b><em>number2</em>
-<dd>Equivalent to <b><tt>-dDEVICEXRESOLUTION=</tt></b><em>number1</em> and
-<b><tt>-dDEVICEYRESOLUTION=</tt></b><em>number2</em>, specifying the device
-horizontal and vertical resolution in pixels per inch for the benefit of
-devices such as printers that support multiple X and Y resolutions.
-</dl>
-
-<h4><a name="Quiet"></a>Suppress messages</h4>
-
-<dl>
-<dt><a name="Quiet"></a><b><tt>-q</tt></b>
-<dd>Quiet startup: suppress normal startup messages, and also do the
-equivalent of <a href="#dQUIET"><b><tt>-dQUIET</tt></b></a>.
-</dl>
-
-<h3><a name="Parameter_switches"></a>Parameter switches (<b><tt>-d</tt></b> and <b><tt>-s</tt></b>)</h3>
-
-<p>
-As noted above, <b><tt>-d</tt></b> and <b><tt>-s</tt></b> define initial
-values for PostScript names. Some of these names are parameters that
-control the interpreter or the graphics engine. You can also use
-<b><tt>-d</tt></b> or <b><tt>-s</tt></b> to define a value for any device
-parameter of the initial device (the one defined with
-<b><tt>-sDEVICE=</tt></b>, or the default device if this switch is not
-used). For example, since the <b><tt>ppmraw</tt></b> device has a numeric
-<b><tt>GrayValues</tt></b> parameter that controls the number of bits per
-component, <b><tt>-sDEVICE=ppmraw -dGrayValues=16</tt></b> will make this
-the default device and set the number of bits per component to 4 (log2(16)).
-
-<h4><a name="Rendering_parameters"></a>Rendering parameters</h4>
-
-<dl>
-<dt><b><tt>-dCOLORSCREEN
-<br>-dCOLORSCREEN=0
-<br>-dCOLORSCREEN=false</tt></b>
-<dd>On high-resolution devices (at least 150 dpi resolution, or
-<b><tt>-dDITHERPPI</tt></b> specified), <b><tt>-dCOLORSCREEN</tt></b>
-forces the use of separate halftone screens with different angles for CMYK
-or RGB if halftones are needed (this produces the best-quality output);
-<b><tt>-dCOLORSCREEN=0</tt></b> uses separate screens with the same
-frequency and angle; <b><tt>-dCOLORSCREEN=false</tt></b> forces the use of
-a single binary screen. The default if <b><tt>COLORSCREEN</tt></b> is not
-specified is to use separate screens with different angles if the device
-has fewer than 5 bits per color, and a single binary screen (which is never
-actually used under normal circumstances) on all other devices.
-</dl>
-
-<dl>
-<dt><b><tt>-dDITHERPPI=</tt></b><em>lpi</em>
-<dd>Forces all devices to be considered high-resolution, and forces use of
-a halftone screen or screens with <em>lpi</em> lines per inch, disregarding
-the actual device resolution. Reasonable values for <em>lpi</em> are
-<b><em>N</em></b>/5 to <b><em>N</em></b>/20, where <b><em>N</em></b> is the
-resolution in dots per inch.
-</dl>
-
-<dl>
-<dt><b><tt>-dDOINTERPOLATE</tt></b>
-<dd>Turns on image interpolation for all images, improving image quality for
-scaled images at the expense of speed. Note that
-<b><tt>-dNOINTERPOLATE</tt></b> overrides <b><tt>-dDOINTERPOLATE</tt></b> if
-both are specified.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOCIE</tt></b>
-<dd>Substitutes <b><tt>DeviceGray</tt></b> and <b><tt>DeviceRGB</tt></b>
-for CIEBasedA and CIEBasedABC color spaces respectively. Useful only on
-very slow systems where color accuracy is less important.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOINTERPOLATE</tt></b>
-<dd>Turns off image interpolation, improving performance on interpolated
-images at the expense of image quality. <b><tt>-dNOINTERPOLATE</tt></b>
-overrides <b><tt>-dDOINTERPOLATE</tt></b>.
-</dl>
-
-<h4><a name="Page_parameters"></a>Page parameters</h4>
-
-<dl>
-<dt><a name="FIXEDMEDIA"></a><b><tt>-dFIXEDMEDIA</tt></b>
-<dd>Causes the media size to be fixed after initialization, forcing pages
-of other sizes or orientations to be clipped. This may be useful when
-printing documents on a printer that can handle their requested paper size
-but whose default is some other size. Note that <b><tt>-g</tt></b>
-automatically sets <b><tt>-dFIXEDMEDIA</tt></b>, but
-<b><tt>-sPAPERSIZE=</tt></b> does not.
-</dl>
-
-<dl>
-<dt><b><tt>-dFIXEDRESOLUTION</tt></b>
-<dd>Causes the media resolution to be fixed similarly. <b><tt>-r</tt></b>
-automatically sets <b><tt>-dFIXEDRESOLUTION</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>-dORIENT1=true
-<br>-dORIENT1=false</tt></b>
-<dd>Defines the meaning of the 0 and 1 orientation values for the
-setpage[params] compatibility operators. The default value of
-<b><tt>ORIENT1</tt></b> is true (set in <b><tt>gs_init.ps</tt></b>), which
-is the correct value for most files that use setpage[params] at all,
-namely, files produced by badly designed applications that "know" that the
-output will be printed on certain roll-media printers: these applications
-use 0 to mean landscape and 1 to mean portrait.
-<b><tt>-dORIENT1=false</tt></b> declares that 0 means portrait and 1 means
-landscape, which is the convention used by a smaller number of files
-produced by properly written applications.
-</dl>
-
-<dl>
-<dt><b><tt>-dDEVICEWIDTHPOINTS=</tt></b><em>w</em>
-<br><b><tt>-dDEVICEHEIGHTPOINTS=</tt></b><em>h</em>
-<dd>Sets the initial page width to <em>w</em> or initial page height to
-<em>h</em> respectively, specified in 1/72" units.
-</dl>
-
-<h4><a name="Font_related_parameters"></a>Font-related parameters</h4>
-
-<dl>
-<dt><a name="DISKFONTS"></a><b><tt>-dDISKFONTS</tt></b>
-<dd>Causes individual character outlines to be loaded from the disk the
-first time they are encountered. (Normally Ghostscript loads all the
-character outlines when it loads a font.) This may allow loading more
-fonts into memory at the expense of slower rendering.
-<b><tt>DISKFONTS</tt></b> is effective only if the diskfont feature was
-built into the executable; otherwise it is ignored.
-</dl>
-
-<dl>
-<dt><b><tt>-dLOCALFONTS</tt></b>
-<dd>Causes Type 1 fonts to be loaded into the current VM -- normally local
-VM -- instead of always being loaded into global VM. Useful only for
-compatibility with Adobe printers for loading some obsolete fonts.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOCCFONTS</tt></b>
-<dd>Suppresses the use of fonts precompiled into the Ghostscript executable.
-See <a href="Fonts.htm#Precompiling">"Precompiling fonts"</a> in the
-documentation on fonts for details. This is probably useful only for
-debugging.
-</dl>
-
-<dl>
-<dt><a name="FONTMAP_switch"></a><b><tt>-dNOFONTMAP</tt></b>
-<dd>Suppresses the normal loading of the Fontmap file. This may be useful
-in environments without a file system.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOFONTPATH</tt></b>
-<dd>Suppresses consultation of <b><tt>GS_FONTPATH</tt></b>. This may be
-useful for debugging.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOPLATFONTS</tt></b>
-<dd>Disables the use of fonts supplied by the underlying platform (X
-Windows or Microsoft Windows). This may be needed if the platform fonts
-look undesirably different from the scalable fonts.
-</dl>
-
-<dl>
-<dt><b><tt>-sFONTMAP=</tt></b><em>filename1</em><b><tt>;</tt></b><em>filename2</em><b><tt>;</tt></b><em>...</em>
-<dd>Specifies alternate name or names for the Fontmap file. Note that the
-names are separated by "<b><tt>:</tt></b>" on Unix systems, by
-"<b><tt>;</tt></b>" on DOS or MS Windows systems, and by
-"<b><tt>,</tt></b>" on VMS systems, just as for search paths.
-</dl>
-
-<dl>
-<dt><b><tt>-sFONTPATH=</tt></b><em>dir1</em><b><tt>;</tt></b><em>dir2</em><b><tt>;</tt></b><em>...</em>
-<dd>Specifies a list of directories that will be scanned when looking for
-fonts not found on the search path, overriding the environment variable
-<b><tt>GS_FONTPATH</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>-sSUBSTFONT=</tt></b><em>fontname</em>
-<dd>Causes the given font to be substituted for all unknown fonts, instead
-of using the normal intelligent substitution algorithm. Also, in this
-case, the font returned by <b><tt>findfont</tt></b> is the actual font
-named "<em>fontname</em>", not a copy of the font with the
-<b><tt>FontName</tt></b> changed to the requested one.
-</dl>
-
-<h4><a name="Interaction_related_parameters"></a>Interaction-related parameters</h4>
-
-<dl>
-<dt><b><tt>-dBATCH</tt></b>
-<dd>Causes Ghostscript to exit after processing all files named on the
-command line, rather than going into an interactive loop reading PostScript
-commands. Equivalent to putting -c quit at the end of the command line.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOPAGEPROMPT</tt></b>
-<dd>Disables only the prompt, but not the pause, at the end of each page.
-This may be useful on PC displays that get confused if a program attempts
-to write text to the console while the display is in a graphics mode.
-</dl>
-
-<dl>
-<dt><a name="NoPause"></a><b><tt>-dNOPAUSE</tt></b>
-<dd>Disables the prompt and pause at the end of each page. Normally one
-should use this (along with <b><tt>-dBATCH</tt></b>) when producing output
-on a printer or to a file; it also may be desirable for applications where
-another program is "driving" Ghostscript.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOPROMPT</tt></b>
-<dd>Disables the prompt printed by Ghostscript when it expects interactive
-input, as well as the end-of-page prompt (<b><tt>-dNOPAGEPROMPT</tt></b>);
-also disables the implicit <b><tt>flushpage</tt></b> that normally occurs
-each time Ghostscript asks for more input. This allows piping input
-directly into Ghostscript, as long as the data doesn't refer to
-<b><tt>currentfile</tt></b>.
-</dl>
-
-<dl>
-<dt><a name="dQUIET"></a><b><tt>-dQUIET</tt></b>
-<dd>Suppresses routine information comments on standard output. This is
-currently necessary when redirecting device output to standard output.
-</dl>
-
-<dl>
-<dt><b><tt>-dSHORTERRORS</tt></b>
-<dd>Makes certain error and information messages more Adobe-compatible.
-</dl>
-
-<dl>
-<dt><b><tt>-sstdout=</tt></b><em>filename</em>
-<dd>Redirect PostScript <b><tt>%stdout</tt></b> to a file or
-<b><tt>stderr</tt></b>, to avoid it being mixed with device stdout.
-To redirect stdout to stderr use <b><tt>-sstdout=%stderr</tt></b>.
-To cancel redirection of stdout use <b><tt>-sstdout=%stdout</tt></b>
-or <b><tt>-sstdout=-</tt></b>.
-</dl>
-
-<dl>
-<dt><b><tt>-dTTYPAUSE</tt></b>
-<dd>Causes Ghostscript to read a character from <b><tt>/dev/tty</tt></b>,
-rather than standard input, at the end of each page. This may be useful if
-input is coming from a pipe. Note that <b><tt>-dTTYPAUSE</tt></b>
-overrides <b><tt>-dNOPAUSE</tt></b>.
-</dl>
-
-<h4><a name="Output_selection_parameters"></a>Device and output selection parameters</h4>
-
-<dl>
-<dt><b><tt>-dNODISPLAY</tt></b>
-<dd>Initializes Ghostscript with a null device (a device that discards the
-output image) rather than the default device or the device selected with
-<b><tt>-sDEVICE=</tt></b>. This is usually useful only when running
-PostScript code whose purpose is to compute something rather than to
-produce an output image; for instance, when converting PostScript to PDF.
-</dl>
-
-<dl>
-<dt><a name="DEVICE_switch"></a><b><tt>-sDEVICE=</tt></b><em>device</em>
-<dd>Selects an alternate <a href="#Output_device">initial output
-device</a>.
-</dl>
-
-<dl>
-<dt><b><tt>-sOutputFile=</tt></b><em>filename</em>
-<dd>Selects an alternate output file (or pipe) for the initial output
-device, as described above.
-</dl>
-
-<h4><a name="Other_parameters"></a>Other parameters</h4>
-
-<dl>
-<dt><b><tt>-dDELAYBIND</tt></b>
-<dd>Causes <b><tt>bind</tt></b> to remember all its invocations, but not
-actually execute them until the <b><tt>.bindnow</tt></b> procedure is
-called. Useful only for certain specialized packages like
-<b><tt>pstotext</tt></b> that redefine operators.
-</dl>
-
-<dl>
-<dt><b><tt>-dDOPDFMARKS</tt></b>
-<dd>Causes <b><tt>pdfmark</tt></b> to be called for bookmarks,
-annotations, links and cropbox when processing PDF files.
-Normally, <b><tt>pdfmark</tt></b> is only called for these types
-for PostScript files or when the output device requests it
-(e.g. pdfwrite device).
-</dl>
-
-<dl>
-<dt><b><tt>-dNOBIND</tt></b>
-<dd>Disables the <b><tt>bind</tt></b> operator. Useful only for debugging.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOCACHE</tt></b>
-<dd>Disables character caching. Useful only for debugging.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOGC</tt></b>
-<dd>Suppresses the initial automatic enabling of the garbage collector in
-Level 2 systems. (The <b><tt>vmreclaim</tt></b> operator is not disabled.)
-Useful only for debugging.
-</dl>
-
-<dl>
-<dt><b><tt>-dNOSAFER</tt></b> (equivalent to <b><tt>-dDELAYSAFER</tt></b>).
-<dd>This flag disables SAFER mode until the <b><tt>.setsafe</tt></b>
-procedure is run. This is intended for clients or scripts that cannot
-operate in SAFER mode. If Ghostscript is started with <b><tt>-dNOSAFER</tt></b>
-or <b><tt>-dDELAYSAFER</tt></b>, PostScript programs are allowed to read, write,
-rename or delete any files in the system that are not protected by operating
-system permissions.
-<p><b>This mode should be used with caution, and <tt>.setsafe</tt> should be
-run prior to running any PostScript file with unknown contents.</b>
-</dl>
-
-<a name="Safer"></a>
-<dl>
-<dt><b><tt>-dSAFER</tt></b>
-<dd>Disables the <b><tt>deletefile</tt></b> and <b><tt>renamefile</tt></b>
-operators, and the ability to open piped commands (<b><tt>%pipe%</tt></b><em>cmd</em>)
-at all. Only <b><tt>%stdout</tt></b> and <b><tt>%stderr</tt></b> can be opened
-for writing.
-<p>
-This mode also sets the <a href="Language.htm#LockSafetyParams">.LockSafetyParams</a>
-parameter of the default device, or the device specified with the <b><tt>-sDEVICE= </tt></b>
-switch to protect against programs that attempt to write to files using the
-OutputFile device parameter. Note that since the device parameters specified
-on the command line (including OutputFile) are set prior to SAFER mode,
-the <b><tt>-sOutputFile=...</tt></b> on the command line is unrestricted.
-<p>
-<b><tt>SAFER</tt></b> mode also prevents changing the /GenericResourceDir,
-/FontResourceDir and either the /SystemParamsPassword or the /StartJobPassword.
-<p>
-<b>Note: </b>While SAFER mode is not the default, in a subsequent release of
-Ghostscript, SAFER mode will be the default thus scripts or programs that need
-to open files or set restricted parameters will require the <b><tt>-dNOSAFER</tt></b>
-command line option.
-<p>
-When running -dNOSAFER it is possible to perform a <b><tt>save</tt></b>,
-followed by <b><tt>.setsafe</tt></b>, execute a file or procedure in SAFER mode,
-then use <b><tt>restore</tt></b> to return to NOSAFER mode. In order to prevent
-the save object from being restored by the foreign file or procedure, the
-<a href="Language.htm#Runandhide"><b>.runandhide</b></a> operator should
-be used to hide the save object from the restricted procedure.
-</dl>
-
-<dl>
-<dt><b><tt>-dPARANOIDSAFER</tt></b>
-<dd>Disables reading of files other than <b><tt>%stdin</tt></b>, those given as
-a command line argument, or those contained on one of the paths given by
-LIBPATH and FONTPATH and specified by the system params /FontResourceDir
-and /GenericResourceDir.
-<p>
-<b><tt>-dPARANOIDSAFER</tt></b> implies <b><tt>-dSAFER</tt></b> so if
-<b><tt>-dPARANOIDSAFER</tt></b> is given on the command line,
-<b><tt>-dSAFER</tt></b> is optional.
-</dl>
-
-<dl>
-<dt><b><tt>-dSTRICT</tt></b>
-<dd>Disables as many Ghostscript extensions as feasible, to be more helpful
-in debugging applications that produce output for Adobe and other RIPs.
-</dl>
-
-<dl>
-<dt><b><tt>-dWRITESYSTEMDICT</tt></b>
-<dd>Leaves <b><tt>systemdict</tt></b> writable. This is necessary when
-running special utility programs such as <b><tt>font2c</tt></b> and
-<b><tt>pcharstr</tt></b>, which must bypass normal PostScript access
-protection.
-</dl>
-
-<hr>
-
-<h2><a name="Improving_performance"></a>Improving performance</h2>
-
-<p>
-Ghostscript attempts to find an optimum balance between speed and memory
-consumption, but there are some cases in which you may get a very large
-speedup by telling Ghostscript to use more memory.
-
-<ul>
-
-<li>
-If you are using X Windows, setting the <b><tt>-dMaxBitmap=</tt></b>
-parameter described <a href="#X_device_parameters">above</a> may
-dramatically improve performance on files that have a lot of bitmap images.
-
-<li>
-If you are using Chinese, Japanese, or other fonts with very large character
-sets, adding the following sequence of switches before the first file name
-may dramatically improve performance at the cost of an additional 2-3 Mb of
-memory: <b><tt>-c&nbsp;3000000&nbsp;setvmthreshold&nbsp;-f</tt></b>.
-
-</ul>
-
-<hr>
-
-<h2><a name="Debugging"></a>Debugging</h2>
-
-<p>
-The information here describing the debugging switches is probably
-interesting only to developers. The <b><tt>-Z</tt></b> switch applies only
-if the interpreter was <a href="Make.htm#Debugging">built for a debugging
-configuration</a>. In the table below, the first column is a debugging
-switch, the second is an equivalent switch (if any) and the third is its
-usage.
-
-<table cellpadding=0 cellspacing=0>
-<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Switches used in debugging</font><hr>
-<tr> <th align=left>Switch
- <td>&nbsp;&nbsp;
- <th align=left>Equivalent
- <td>&nbsp;&nbsp;
- <th>&nbsp;
-<tr> <td colspan=5><hr>
-<tr> <td valign=top><b><tt>-A</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>-Z@</tt></b>
- <td>&nbsp;
- <td>Fill empty storage with a distinctive bit pattern for debugging
-
-<tr> <td valign=top><b><tt>-A-</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>-Z-@</tt></b>
- <td>&nbsp;
- <td>Turn off <b><tt>-A</tt></b>
-<tr> <td valign=top><b><tt>-B</tt></b><em>size</em>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Run all subsequent files named on the command line (except for
- <b><tt>-F</tt></b>) through the run_string interface, using a
- buffer of <em>size</em> bytes
-<tr> <td valign=top><b><tt>-B-</tt></b>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Turn off <b><tt>-B</tt></b>: run subsequent files (except for
- <b><tt>-F</tt></b>) directly in the normal way
-<tr> <td valign=top><b><tt>-E</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>-Z#</tt></b>
- <td>&nbsp;
- <td>Turn on tracing of error returns from operators
-<tr> <td valign=top><b><tt>-E-</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>-Z-#</tt></b>
- <td>&nbsp;
- <td>Turn off <b><tt>-E</tt></b>
-<tr> <td valign=top><b><tt>-F</tt></b><em>file</em>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Execute the file with <b><tt>-B1</tt></b> temporarily in effect
-<tr> <td valign=top><b><tt>-K</tt></b><em>n</em>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Limit the total amount of memory that the interpreter can have
- allocated at any one time to <b><em>n</em></b>K bytes.
- <b><em>n</em></b> is a positive decimal integer.
-<tr> <td valign=top><b><tt>-M</tt></b><em>n</em>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Force the interpreter's allocator to acquire additional memory
- in units of <b><em>n</em></b>K bytes, rather than the default
- (currently 20K on DOS systems, 50K on Unix). <b><em>n</em></b>
- is a positive decimal integer, on DOS systems no greater than
- 63.
-<tr> <td valign=top><b><tt>-N</tt></b><em>n</em>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Allocate space for <b><em>n</em></b>K names, rather than the
- default (normally 64K). <b><em>n</em></b> may be greater than
- 64 only if <b><tt>EXTEND_NAMES</tt></b> was defined when the
- interpreter was compiled .
-<tr> <td valign=top><b><tt>-Z</tt></b><em>xxx</em><br><b><tt>-Z-</tt></b><em>xxx</em>
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td>Turn debugging printout on (off). Each of the <em>xxx</em>
- characters selects an option. Case is significant: "a" and
- "A" have different meanings.
-
-<dl compact>
-<dt><b><tt>0</tt></b><dd>garbage collector, minimal detail
-<dt><b><tt>1</tt></b><dd>type 1 and type 42 font interpreter
-<dt><b><tt>2</tt></b><dd>curve subdivider/rasterizer
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>3</tt></b><dd>curve subdivider/rasterizer, detail
-<dt><b><tt>4</tt></b><dd>garbage collector (strings)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>5</tt></b><dd>garbage collector (strings, detail)
-<dt><b><tt>6</tt></b><dd>garbage collector (chunks, roots)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>7</tt></b><dd>garbage collector (objects)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>8</tt></b><dd>garbage collector (refs)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>9</tt></b><dd>garbage collector (pointers)
-<dt><b><tt>a</tt></b><dd>allocator (large blocks only)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>A</tt></b><dd>allocator (all calls)
-<dt><b><tt>b</tt></b><dd>bitmap image processor
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>B</tt></b><dd>bitmap images, detail
-<dt><b><tt>c</tt></b><dd>color/halftone mapper
-<dt><b><tt>d</tt></b><dd>dictionary put/undef
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>D</tt></b><dd>dictionary lookups
-<dt><b><tt>e</tt></b><dd>external (OS-related) calls
-<dt><b><tt>f</tt></b><dd>fill algorithm (summary)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>F</tt></b><dd>fill algorithm (detail)
-<dt><b><tt>g</tt></b><dd>gsave/grestore[all]
-<dt><b><tt>h</tt></b><dd>halftone renderer
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>H</tt></b><dd>halftones, every pixel
-<dt><b><tt>i</tt></b><dd>interpreter, just names
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>I</tt></b><dd>interpreter, everything
-<dt><b><tt>j</tt></b><dd>(Japanese) composite fonts
-<dt><b><tt>k</tt></b><dd>character cache and xfonts
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>K</tt></b><dd>character cache, every access
-<dt><b><tt>l</tt></b><dd>command lists, bands
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>L</tt></b><dd>command lists, everything
-<dt><b><tt>m</tt></b><dd>makefont and font cache
-<dt><b><tt>n</tt></b><dd>name lookup (new names only)
-<dt><b><tt>o</tt></b><dd>outliner (stroke)
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>O</tt></b><dd>stroke detail
-<dt><b><tt>p</tt></b><dd>band list paths
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>P</tt></b><dd>all paths
-<dt><b><tt>q</tt></b><dd>clipping
-<dt><b><tt>r</tt></b><dd>arc renderer
-<dt><b><tt>s</tt></b><dd>streams
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>S</tt></b><dd>scanner
-<dt><b><tt>t</tt></b><dd>tiling algorithm
-<dt><b><tt>u</tt></b><dd>undo saver (for save/restore), finalization
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>U</tt></b><dd>undo saver, more detail
-<dt><b><tt>v</tt></b><dd>alpha/transparency
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>V</tt></b><dd>alpha/transparency, more detail
-<dt><b><tt>w</tt></b><dd>compression encoder/decoder
-<dt><b><tt>x</tt></b><dd>transformations
-<dt><b><tt>y</tt></b><dd>Type 1 hints
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>Y</tt></b><dd>Type 1 hints, every access
-<dt><b><tt>z</tt></b><dd>trapezoid fill
-<dt><b><tt>#</tt></b><dd>operator error returns
-<dt><b><tt>%</tt></b><dd>externally processed comments
-<dt><b><tt>*</tt></b><dd>image and RasterOp parameters
-<dt><b><tt>:</tt></b><dd>command list and allocator/time summary
-<dt><b><tt>~</tt></b><dd>math functions and Functions
-<dt><b><tt>'</tt></b><dd>contexts, create/destroy
-<dt>&nbsp;&nbsp;&nbsp;<b><tt>"</tt></b><dd>contexts, every operation
-<dt><b><tt>^</tt></b><dd>reference counting
-<dt><b><tt>_</tt></b><dd>high-level output
-<dt><b><tt>|</tt></b><dd>(reserved for experimental code)
-</dl>
-
-<p>
-The following switch affects what is printed, but does not select specific
-items for printing:
-
-<dl compact>
-<dt><b><tt>/</tt></b><dd>include file name and line number on all trace output
-</dl>
-
-<p>
-These switches select debugging options other than what should be printed:
-
-<dl compact>
-<dt><b><tt>$</tt></b><dd>set unused parts of object references to
-identifiable garbage values
-<dt><b><tt>+</tt></b><dd>use minimum-size stack blocks
-<dt><b><tt>,</tt></b><dd>don't use path-based banding
-<dt><b><tt>`</tt></b><dd>don't use high-level banded images
-<dt><b><tt>.</tt></b><dd>use small-memory table sizes even on large-memory
-machines
-<dt><b><tt>?</tt></b><dd>validate pointers before, during and after garbage
-collection, also before and after save and restore; also make other
-allocator validity checks
-<dt><b><tt>@</tt></b><dd>fill newly allocated, garbage-collected, and freed
-storage with a marker (a1, c1, and f1 respectively)
-</dl>
-</table>
-
-<hr>
-
-<h2><a name="Known_paper_sizes"></a>Appendix: Paper sizes known to Ghostscript</h2>
-
-<p>
-The paper sizes known to Ghostscript are defined at the beginning of the
-initialization file <b><tt>gs_statd.ps</tt></b>; see the comments there for
-more details about the definitions. The table here lists them by name and
-size. <b><tt>gs_statd.ps</tt></b> defines their sizes exactly in points,
-and the dimensions in inches (at 72 points per inch) and centimeters shown
-in the table are derived from those, rounded to the nearest 0.1 unit. A
-guide to international paper sizes can be found at
-
-<blockquote>
-<a href="http://www.twics.com/~eds/paper/index.html">http://www.twics.com/~eds/paper/</a>
-</blockquote>
-
-<table cellpadding=0 cellspacing=0>
-<tr><th colspan=13 bgcolor="#CCCC00"><hr><font size="+1">Paper sizes known to Ghostscript</font><hr>
-<tr><th colspan=13>U.S. standard
-<tr> <td>&nbsp;
- <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <th colspan=3>Inches
- <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <th colspan=3>mm
- <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <th colspan=3>Points
- <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <td>&nbsp;
-<tr> <th align=left>Name
- <td>&nbsp;
- <th>&nbsp;W&nbsp;
- <td>&times;
- <th>&nbsp;H&nbsp;
- <td>&nbsp;
- <th>&nbsp;W&nbsp;
- <td>&times;
- <th>&nbsp;H&nbsp;
- <td>&nbsp;
- <th>&nbsp;W&nbsp;
- <td>&times;
- <th>&nbsp;H&nbsp;
- <td>&nbsp;
- <td>&nbsp;
-<tr> <td colspan=13><hr>
-<tr> <td>11x17
- <td>&nbsp;&nbsp;<td align=right>11.0<td>&nbsp;&nbsp;<td align=right>17.0<td>&nbsp;&nbsp;<td align=right>279<td>&nbsp;&nbsp;<td align=right>432<td>&nbsp;&nbsp;<td align=right>792<td>&nbsp;&nbsp;<td align=right>1224<td>&nbsp;&nbsp;<td>11&times;17in portrait
-<tr> <td>ledger
- <td>&nbsp;<td align=right>17.0<td>&nbsp;<td align=right>11.0<td>&nbsp;<td align=right>432<td>&nbsp;<td align=right>279<td>&nbsp;<td align=right>1224<td>&nbsp;<td align=right>792<td>&nbsp;<td>11&times;17in landscape
-<tr> <td>legal
- <td>&nbsp;<td align=right>8.5<td>&nbsp;<td align=right>14.0<td>&nbsp;<td align=right>216<td>&nbsp;<td align=right>356<td>&nbsp;<td align=right>612<td>&nbsp;<td align=right>1008<td>&nbsp;<td>&nbsp;
-<tr> <td>letter
- <td>&nbsp;<td align=right>8.5<td>&nbsp;<td align=right>11.0<td>&nbsp;<td align=right>216<td>&nbsp;<td align=right>279<td>&nbsp;<td align=right>612<td>&nbsp;<td align=right>792<td>&nbsp;<td>&nbsp;
-<tr> <td>lettersmall
- <td>&nbsp;<td align=right>8.5<td>&nbsp;<td align=right>11.0<td>&nbsp;<td align=right>216<td>&nbsp;<td align=right>279<td>&nbsp;<td align=right>612<td>&nbsp;<td align=right>792<td>&nbsp;<td>&nbsp;
-<tr> <td>archE
- <td>&nbsp;<td align=right>36.0<td>&nbsp;<td align=right>48.0<td>&nbsp;<td align=right>914<td>&nbsp;<td align=right>1219<td>&nbsp;<td align=right>2592<td>&nbsp;<td align=right>3456<td>&nbsp;<td>&nbsp;
-<tr> <td>archD
- <td>&nbsp;<td align=right>24.0<td>&nbsp;<td align=right>36.0<td>&nbsp;<td align=right>610<td>&nbsp;<td align=right>914<td>&nbsp;<td align=right>1728<td>&nbsp;<td align=right>2592<td>&nbsp;<td>&nbsp;
-<tr> <td>archC
- <td>&nbsp;<td align=right>18.0<td>&nbsp;<td align=right>24.0<td>&nbsp;<td align=right>457<td>&nbsp;<td align=right>610<td>&nbsp;<td align=right>1296<td>&nbsp;<td align=right>1728<td>&nbsp;<td>&nbsp;
-<tr> <td>archB
- <td>&nbsp;<td align=right>12.0<td>&nbsp;<td align=right>18.0<td>&nbsp;<td align=right>305<td>&nbsp;<td align=right>457<td>&nbsp;<td align=right>864<td>&nbsp;<td align=right>1296<td>&nbsp;<td>&nbsp;
-<tr> <td>archA
- <td>&nbsp;<td align=right>9.0<td>&nbsp;<td align=right>12.0<td>&nbsp;<td align=right>229<td>&nbsp;<td align=right>305<td>&nbsp;<td align=right>648<td>&nbsp;<td align=right>864<td>&nbsp;<td>&nbsp;
-<tr> <td colspan=13><hr>
-<tr><th colspan=13>ISO standard
-<tr> <td colspan=13><hr>
-<tr> <td>a0
- <td>&nbsp;<td align=right>33.1<td>&nbsp;<td align=right>46.8<td>&nbsp;<td align=right>841<td>&nbsp;<td align=right>1189<td>&nbsp;<td align=right>2384<td>&nbsp;<td align=right>3370<td>&nbsp;<td>&nbsp;
-<tr> <td>a1
- <td>&nbsp;<td align=right>23.4<td>&nbsp;<td align=right>33.1<td>&nbsp;<td align=right>594<td>&nbsp;<td align=right>841<td>&nbsp;<td align=right>1684<td>&nbsp;<td align=right>2384<td>&nbsp;<td>&nbsp;
-<tr> <td>a2
- <td>&nbsp;<td align=right>16.5<td>&nbsp;<td align=right>23.4<td>&nbsp;<td align=right>420<td>&nbsp;<td align=right>594<td>&nbsp;<td align=right>1191<td>&nbsp;<td align=right>1684<td>&nbsp;<td>&nbsp;
-<tr> <td>a3
- <td>&nbsp;<td align=right>11.7<td>&nbsp;<td align=right>16.5<td>&nbsp;<td align=right>297<td>&nbsp;<td align=right>420<td>&nbsp;<td align=right>842<td>&nbsp;<td align=right>1191<td>&nbsp;<td>&nbsp;
-<tr> <td>a4
- <td>&nbsp;<td align=right>8.3<td>&nbsp;<td align=right>11.7<td>&nbsp;<td align=right>210<td>&nbsp;<td align=right>297<td>&nbsp;<td align=right>595<td>&nbsp;<td align=right>842<td>&nbsp;<td>&nbsp;
-<tr> <td>a4small
- <td>&nbsp;<td align=right>8.3<td>&nbsp;<td align=right>11.7<td>&nbsp;<td align=right>210<td>&nbsp;<td align=right>297<td>&nbsp;<td align=right>595<td>&nbsp;<td align=right>842<td>&nbsp;<td>&nbsp;
-<tr> <td>a5
- <td>&nbsp;<td align=right>5.8<td>&nbsp;<td align=right>8.3<td>&nbsp;<td align=right>148<td>&nbsp;<td align=right>210<td>&nbsp;<td align=right>420<td>&nbsp;<td align=right>595<td>&nbsp;<td>&nbsp;
-<tr> <td>a6
- <td>&nbsp;<td align=right>4.1<td>&nbsp;<td align=right>5.8<td>&nbsp;<td align=right>105<td>&nbsp;<td align=right>148<td>&nbsp;<td align=right>297<td>&nbsp;<td align=right>420<td>&nbsp;<td>&nbsp;
-<tr> <td>a7
- <td>&nbsp;<td align=right>2.9<td>&nbsp;<td align=right>4.1<td>&nbsp;<td align=right>74<td>&nbsp;<td align=right>105<td>&nbsp;<td align=right>210<td>&nbsp;<td align=right>297<td>&nbsp;<td>&nbsp;
-<tr> <td>a8
- <td>&nbsp;<td align=right>2.1<td>&nbsp;<td align=right>2.9<td>&nbsp;<td align=right>52<td>&nbsp;<td align=right>74<td>&nbsp;<td align=right>148<td>&nbsp;<td align=right>210<td>&nbsp;<td>&nbsp;
-<tr> <td>a9
- <td>&nbsp;<td align=right>1.5<td>&nbsp;<td align=right>2.1<td>&nbsp;<td align=right>37<td>&nbsp;<td align=right>52<td>&nbsp;<td align=right>105<td>&nbsp;<td align=right>148<td>&nbsp;<td>&nbsp;
-<tr> <td>a10
- <td>&nbsp;<td align=right>1.0<td>&nbsp;<td align=right>1.5<td>&nbsp;<td align=right>26<td>&nbsp;<td align=right>37<td>&nbsp;<td align=right>73<td>&nbsp;<td align=right>105<td>&nbsp;<td>&nbsp;
-<tr> <td>isob0
- <td>&nbsp;<td align=right>39.4<td>&nbsp;<td align=right>55.7<td>&nbsp;<td align=right>1000<td>&nbsp;<td align=right>1414<td>&nbsp;<td align=right>2835<td>&nbsp;<td align=right>4008<td>&nbsp;<td>&nbsp;
-<tr> <td>isob1
- <td>&nbsp;<td align=right>27.8<td>&nbsp;<td align=right>39.4<td>&nbsp;<td align=right>707<td>&nbsp;<td align=right>1000<td>&nbsp;<td align=right>2004<td>&nbsp;<td align=right>2835<td>&nbsp;<td>&nbsp;
-<tr> <td>isob2
- <td>&nbsp;<td align=right>19.7<td>&nbsp;<td align=right>27.8<td>&nbsp;<td align=right>500<td>&nbsp;<td align=right>707<td>&nbsp;<td align=right>1417<td>&nbsp;<td align=right>2004<td>&nbsp;<td>&nbsp;
-<tr> <td>isob3
- <td>&nbsp;<td align=right>13.9<td>&nbsp;<td align=right>19.7<td>&nbsp;<td align=right>353<td>&nbsp;<td align=right>500<td>&nbsp;<td align=right>1001<td>&nbsp;<td align=right>1417<td>&nbsp;<td>&nbsp;
-<tr> <td>isob4
- <td>&nbsp;<td align=right>9.8<td>&nbsp;<td align=right>13.9<td>&nbsp;<td align=right>250<td>&nbsp;<td align=right>353<td>&nbsp;<td align=right>709<td>&nbsp;<td align=right>1001<td>&nbsp;<td>&nbsp;
-<tr> <td>isob5
- <td>&nbsp;<td align=right>6.9<td>&nbsp;<td align=right>9.8<td>&nbsp;<td align=right>176<td>&nbsp;<td align=right>250<td>&nbsp;<td align=right>499<td>&nbsp;<td align=right>709<td>&nbsp;<td>&nbsp;
-<tr> <td>isob6
- <td>&nbsp;<td align=right>4.9<td>&nbsp;<td align=right>6.9<td>&nbsp;<td align=right>125<td>&nbsp;<td align=right>176<td>&nbsp;<td align=right>354<td>&nbsp;<td align=right>499<td>&nbsp;<td>&nbsp;
-<tr> <td>c0
- <td>&nbsp;<td align=right>36.1<td>&nbsp;<td align=right>51.1<td>&nbsp;<td align=right>917<td>&nbsp;<td align=right>1297<td>&nbsp;<td align=right>2599<td>&nbsp;<td align=right>3677<td>&nbsp;<td>&nbsp;
-<tr> <td>c1
- <td>&nbsp;<td align=right>25.5<td>&nbsp;<td align=right>36.1<td>&nbsp;<td align=right>648<td>&nbsp;<td align=right>917<td>&nbsp;<td align=right>1837<td>&nbsp;<td align=right>2599<td>&nbsp;<td>&nbsp;
-<tr> <td>c2
- <td>&nbsp;<td align=right>18.0<td>&nbsp;<td align=right>25.5<td>&nbsp;<td align=right>458<td>&nbsp;<td align=right>648<td>&nbsp;<td align=right>1298<td>&nbsp;<td align=right>1837<td>&nbsp;<td>&nbsp;
-<tr> <td>c3
- <td>&nbsp;<td align=right>12.8<td>&nbsp;<td align=right>18.0<td>&nbsp;<td align=right>324<td>&nbsp;<td align=right>458<td>&nbsp;<td align=right>918<td>&nbsp;<td align=right>1298<td>&nbsp;<td>&nbsp;
-<tr> <td>c4
- <td>&nbsp;<td align=right>9.0<td>&nbsp;<td align=right>12.8<td>&nbsp;<td align=right>229<td>&nbsp;<td align=right>324<td>&nbsp;<td align=right>649<td>&nbsp;<td align=right>918<td>&nbsp;<td>&nbsp;
-<tr> <td>c5
- <td>&nbsp;<td align=right>6.4<td>&nbsp;<td align=right>9.0<td>&nbsp;<td align=right>162<td>&nbsp;<td align=right>229<td>&nbsp;<td align=right>459<td>&nbsp;<td align=right>649<td>&nbsp;<td>&nbsp;
-<tr> <td>c6
- <td>&nbsp;<td align=right>4.5<td>&nbsp;<td align=right>6.4<td>&nbsp;<td align=right>114<td>&nbsp;<td align=right>162<td>&nbsp;<td align=right>323<td>&nbsp;<td align=right>459<td>&nbsp;<td>&nbsp;
-<tr> <td colspan=13><hr>
-<tr><th colspan=13>JIS standard
-<tr> <td colspan=13><hr>
-<tr> <td>jisb0
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>1030<td>&nbsp;<td align=right>1456<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td>jisb1
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>728<td>&nbsp;<td align=right>1030<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td>jisb2
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>515<td>&nbsp;<td align=right>728<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td>jisb3
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>364<td>&nbsp;<td align=right>515<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td>jisb4
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>257<td>&nbsp;<td align=right>364<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td>jisb5
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>182<td>&nbsp;<td align=right>257<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td>jisb6
- <td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td align=right>128<td>&nbsp;<td align=right>182<td>&nbsp;<td align=right><td>&nbsp;<td align=right><td>&nbsp;<td>&nbsp;
-<tr> <td colspan=13><hr>
-<tr><th colspan=13>ISO/JIS switchable
-<tr> <td colspan=13><hr>
-<tr> <td>b0 (see * below)
-<tr> <td>b1 (see * below)
-<tr> <td>b2 (see * below)
-<tr> <td>b3 (see * below)
-<tr> <td>b4 (see * below)
-<tr> <td>b5 (see * below)
-<tr> <td colspan=13><hr>
-<tr><th colspan=13>Other
-<tr> <td colspan=13><hr>
-<tr> <td>flsa
- <td>&nbsp;<td align=right>8.5<td>&nbsp;<td align=right>13.0<td>&nbsp;<td align=right>216<td>&nbsp;<td align=right>330<td>&nbsp;<td align=right>612<td>&nbsp;<td align=right>936<td>&nbsp;<td>U.S. foolscap
-<tr> <td>flse
- <td>&nbsp;<td align=right>8.5<td>&nbsp;<td align=right>13.0<td>&nbsp;<td align=right>216<td>&nbsp;<td align=right>330<td>&nbsp;<td align=right>612<td>&nbsp;<td align=right>936<td>&nbsp;<td>European foolscap
-<tr> <td>halfletter
- <td>&nbsp;<td align=right>5.5<td>&nbsp;<td align=right>8.5<td>&nbsp;<td align=right>140<td>&nbsp;<td align=right>216<td>&nbsp;<td align=right>396<td>&nbsp;<td align=right>612<td>&nbsp;<td>&nbsp;
-</table>
-
-<p>
-*<em>Note:</em> Initially the B paper sizes are the ISO sizes, e.g.,
-<b><tt>b0</tt></b> is the same as <b><tt>isob0</tt></b>. Running the file
-<b><tt>lib/jispaper.ps</tt></b> makes the B paper sizes be the JIS sizes,
-e.g., <b><tt>b0</tt></b> becomes the same as <b><tt>jisb0</tt></b>.
-
-<hr>
-
-<h2><a name="X_font_mappings"></a>Appendix: X default font mappings</h2>
-
-<h3><a name="Standard_X_server_fonts"></a>Standard X servers</h3>
-
-<h4><a name="X_regular_fonts"></a>Regular fonts</h4>
-
-<pre> AvantGarde-Book: -Adobe-ITC Avant Garde Gothic-Book-R-Normal--\n\
- AvantGarde-BookOblique: -Adobe-ITC Avant Garde Gothic-Book-O-Normal--\n\
- AvantGarde-Demi: -Adobe-ITC Avant Garde Gothic-Demi-R-Normal--\n\
- AvantGarde-DemiOblique: -Adobe-ITC Avant Garde Gothic-Demi-O-Normal--\n\
- Bookman-Demi: -Adobe-ITC Bookman-Demi-R-Normal--\n\
- Bookman-DemiItalic: -Adobe-ITC Bookman-Demi-I-Normal--\n\
- Bookman-Light: -Adobe-ITC Bookman-Light-R-Normal--\n\
- Bookman-LightItalic: -Adobe-ITC Bookman-Light-I-Normal--\n\
- Courier: -Adobe-Courier-Medium-R-Normal--\n\
- Courier-Bold: -Adobe-Courier-Bold-R-Normal--\n\
- Courier-BoldOblique: -Adobe-Courier-Bold-O-Normal--\n\
- Courier-Oblique: -Adobe-Courier-Medium-O-Normal--\n\
- Helvetica: -Adobe-Helvetica-Medium-R-Normal--\n\
- Helvetica-Bold: -Adobe-Helvetica-Bold-R-Normal--\n\
- Helvetica-BoldOblique: -Adobe-Helvetica-Bold-O-Normal--\n\
- Helvetica-Narrow: -Adobe-Helvetica-Medium-R-Narrow--\n\
- Helvetica-Narrow-Bold: -Adobe-Helvetica-Bold-R-Narrow--\n\
- Helvetica-Narrow-BoldOblique: -Adobe-Helvetica-Bold-O-Narrow--\n\
- Helvetica-Narrow-Oblique: -Adobe-Helvetica-Medium-O-Narrow--\n\
- Helvetica-Oblique: -Adobe-Helvetica-Medium-O-Normal--\n\
- NewCenturySchlbk-Bold: -Adobe-New Century Schoolbook-Bold-R-Normal--\n\
- NewCenturySchlbk-BoldItalic: -Adobe-New Century Schoolbook-Bold-I-Normal--\n\
- NewCenturySchlbk-Italic: -Adobe-New Century Schoolbook-Medium-I-Normal--\n\
- NewCenturySchlbk-Roman: -Adobe-New Century Schoolbook-Medium-R-Normal--\n\
- Palatino-Bold: -Adobe-Palatino-Bold-R-Normal--\n\
- Palatino-BoldItalic: -Adobe-Palatino-Bold-I-Normal--\n\
- Palatino-Italic: -Adobe-Palatino-Medium-I-Normal--\n\
- Palatino-Roman: -Adobe-Palatino-Medium-R-Normal--\n\
- Times-Bold: -Adobe-Times-Bold-R-Normal--\n\
- Times-BoldItalic: -Adobe-Times-Bold-I-Normal--\n\
- Times-Italic: -Adobe-Times-Medium-I-Normal--\n\
- Times-Roman: -Adobe-Times-Medium-R-Normal--\n\
- ZapfChancery-MediumItalic: -Adobe-ITC Zapf Chancery-Medium-I-Normal--
-</pre>
-
-<h4><a name="X_symbol_fonts"></a>Symbol fonts</h4>
-
-<pre> Symbol: -Adobe-Symbol-Medium-R-Normal--
-</pre>
-
-<h4><a name="X_dingbat_fonts"></a>Dingbat fonts</h4>
-
-<pre> ZapfDingbats: -Adobe-ITC Zapf Dingbats-Medium-R-Normal--
-</pre>
-
-<h3><a name="OpenWindows_fonts"></a>Sun OpenWindows</h3>
-
-<p>
-For Sun's X11/NeWS one can use the OpenWindows scalable fonts instead,
-which gives good output for any point size. In this environment, the
-relevant section of the resource file should look like this:
-
-<pre>Ghostscript.regularFonts: \
- AvantGarde-Book: -itc-avantgarde-book-r-normal-- \n\
- AvantGarde-BookOblique: -itc-avantgarde-book-o-normal-- \n\
- AvantGarde-Demi: -itc-avantgarde-demi-r-normal-- \n\
- AvantGarde-DemiOblique: -itc-avantgarde-demi-o-normal-- \n\
- Bembo: -monotype-bembo-medium-r-normal-- \n\
- Bembo-Bold: -monotype-bembo-bold-r-normal-- \n\
- Bembo-BoldItalic: -monotype-bembo-bold-i-normal-- \n\
- Bembo-Italic: -monotype-bembo-medium-i-normal-- \n\
- Bookman-Demi: -itc-bookman-demi-r-normal-- \n\
- Bookman-DemiItalic: -itc-bookman-demi-i-normal-- \n\
- Bookman-Light: -itc-bookman-light-r-normal-- \n\
- Bookman-LightItalic: -itc-bookman-light-i-normal-- \n\
- Courier: -itc-courier-medium-r-normal-- \n\
- Courier-Bold: -itc-courier-bold-r-normal-- \n\
- Courier-BoldOblique: -itc-courier-bold-o-normal-- \n\
- Courier-Oblique: -itc-courier-medium-o-normal-- \n\
- GillSans: -monotype-gill-medium-r-normal-sans- \n\
- GillSans-Bold: -monotype-gill-bold-r-normal-sans- \n\
- GillSans-BoldItalic: -monotype-gill-bold-i-normal-sans- \n\
- GillSans-Italic: -monotype-gill-normal-i-normal-sans- \n\
- Helvetica: -linotype-helvetica-medium-r-normal-- \n\
- Helvetica-Bold: -linotype-helvetica-bold-r-normal-- \n\
- Helvetica-BoldOblique: -linotype-helvetica-bold-o-normal-- \n\
- Helvetica-Narrow: -linotype-helvetica-medium-r-narrow-- \n\
- Helvetica-Narrow-Bold: -linotype-helvetica-bold-r-narrow-- \n\
- Helvetica-Narrow-BoldOblique: -linotype-helvetica-bold-o-narrow-- \n\
- Helvetica-Narrow-Oblique: -linotype-helvetica-medium-o-narrow-- \n\
- Helvetica-Oblique: -linotype-helvetica-medium-o-normal-- \n\
- LucidaBright: -b&amp;h-lucidabright-medium-r-normal-- \n\
- LucidaBright-Demi: -b&amp;h-lucidabright-demibold-r-normal-- \n\
- LucidaBright-DemiItalic: -b&amp;h-lucidabright-demibold-i-normal-- \n\
- LucidaBright-Italic: -b&amp;h-lucidabright-medium-i-normal-- \n\
- LucidaSans: -b&amp;h-lucida-medium-r-normal-sans- \n\
- LucidaSans-Bold: -b&amp;h-lucida-bold-r-normal-sans- \n\
- LucidaSans-BoldItalic: -b&amp;h-lucida-bold-i-normal-sans- \n\
- LucidaSans-Italic: -b&amp;h-lucida-medium-i-normal-sans- \n\
- LucidaSans-Typewriter: -b&amp;h-lucidatypewriter-medium-r-normal-sans- \n\
- LucidaSans-TypewriterBold: -b&amp;h-lucidatypewriter-bold-r-normal-sans- \n\
- NewCenturySchlbk-BoldItalic: -linotype-new century schoolbook-bold-i-normal-- \n\
- NewCenturySchlbk-Bold: -linotype-new century schoolbook-bold-r-normal-- \n\
- NewCenturySchlbk-Italic: -linotype-new century schoolbook-medium-i-normal-- \n\
- NewCenturySchlbk-Roman: -linotype-new century schoolbook-medium-r-normal-- \n\
- Palatino-Bold: -linotype-palatino-bold-r-normal-- \n\
- Palatino-BoldItalic: -linotype-palatino-bold-i-normal-- \n\
- Palatino-Italic: -linotype-palatino-medium-i-normal-- \n\
- Palatino-Roman: -linotype-palatino-medium-r-normal-- \n\
- Rockwell: -monotype-rockwell-medium-r-normal-- \n\
- Rockwell-Bold: -monotype-rockwell-bold-r-normal-- \n\
- Rockwell-BoldItalic: -monotype-rockwell-bold-i-normal-- \n\
- Rockwell-Italic: -monotype-rockwell-medium-i-normal-- \n\
- Times-Bold: -linotype-times-bold-r-normal-- \n\
- Times-BoldItalic: -linotype-times-bold-i-normal-- \n\
- Times-Italic: -linotype-times-medium-i-normal-- \n\
- Times-Roman: -linotype-times-medium-r-normal-- \n\
- Utopia-Bold: -adobe-utopia-bold-r-normal-- \n\
- Utopia-BoldItalic: -adobe-utopia-bold-i-normal-- \n\
- Utopia-Italic: -adobe-utopia-regular-i-normal-- \n\
- Utopia-Regular: -adobe-utopia-regular-r-normal-- \n\
- ZapfChancery-MediumItalic: -itc-zapfchancery-medium-i-normal-- \n
-Ghostscript.dingbatFonts: \
- ZapfDingbats: -itc-zapfdingbats-medium-r-normal--
-Ghostscript.symbolFonts: \
- Symbol: --symbol-medium-r-normal--
-</pre>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 2000 Aladdin Enterprises. All rights
-reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/Xfonts.htm b/Master/xemtex/doc/ghostscript/Xfonts.htm
deleted file mode 100644
index d86653143ab..00000000000
--- a/Master/xemtex/doc/ghostscript/Xfonts.htm
+++ /dev/null
@@ -1,265 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript's external font and text interface</title>
-<!-- $Id: Xfonts.htm,v 1.13.2.11.2.5 2003/05/17 14:39:00 giles Exp $ -->
-<!-- Originally: xfonts.txt -->
-<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
-</head>
-
-<body>
-<!-- [1.0 begin visible header] ============================================ -->
-
-<!-- [1.1 begin headline] ================================================== -->
-
-<h1>Ghostscript's external font and text interface</h1>
-
-<!-- [1.1 end headline] ==================================================== -->
-
-<!-- [1.2 begin table of contents] ========================================= -->
-
-<h2>Table of contents</h2>
-
-<blockquote><ul>
-<li><a href="#Introduction">Introduction</a>
-<li><a href="#Types">Types</a>
-<li><a href="#Implementation_procedures">Implementation procedures</a>
-<li><a href="#Font_level_procedures">Font-level procedures</a>
-<ul>
-<li><a href="#lookup_font"><b><tt>lookup_font</tt></b></a>
-<li><a href="#char_xglyph"><b><tt>char_xglyph</tt></b></a>
-<li><a href="#char_metrics"><b><tt>char_metrics</tt></b></a>
-<li><a href="#render_char"><b><tt>render_char</tt></b></a>
-<li><a href="#release"><b><tt>release</tt></b></a>
-</ul>
-</ul></blockquote>
-
-<!-- [1.2 end table of contents] =========================================== -->
-
-<!-- [1.3 begin hint] ====================================================== -->
-
-<p>For other information, see the <a href="Readme.htm">Ghostscript
-overview</a>.
-
-<!-- [1.3 end hint] ======================================================== -->
-
-<hr>
-
-<!-- [1.0 end visible header] ============================================== -->
-
-<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Introduction"></a>Introduction</h2>
-
-<p>
-Ghostscript can use the character rasterizer provided by the underlying
-operating system and window system; specifically, Adobe Type Manager (ATM)
-or a TrueType rasterizer under MS Windows, or the facilities provided by X
-Windows. This ability augments, but does not replace, Ghostscript's own
-Type 1 rasterizer: Ghostscript may still use its own rasterizer for very
-large characters, characters that are clipped or transformed in unusual
-ways, and for output to devices other than the screen.
-
-<p>
-Ghostscript connects to these platform facilities through a driver-like
-interface called the xfont (external font) interface. Current xfont
-implementations are associated directly with device drivers; in a future
-release, Ghostscript may separate them, so that (for example) it will be
-possible to use the platform rasterizer when writing to a file.
-
-<p>
-Please note that from this point, this file is likely to be useful only
-to a small number of Ghostscript porters and implementors.
-
-<hr>
-
-<h2><a name="Types"></a>Types</h2>
-
-<table cellpadding=0 cellspacing=0>
-<tr> <th valign=bottom align=left>Type
- <td>&nbsp;&nbsp;
- <th valign=bottom align=left>Declared /<br>defined in
- <td>&nbsp;
- <th valign=bottom align=left>Represents
-<tr> <td colspan=5><hr>
-<tr> <td valign=top><b><tt>gs_char</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>gsccode.h</tt></b>
- <td>&nbsp;
- <td valign=top>A character code that appears in a string. Currently
- it is always a single byte, but composite fonts or Unicode may
- require it to be wider in the future.
-<tr> <td valign=top><b><tt>gs_glyph</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>gsccode.h</tt></b>
- <td>&nbsp;
- <td valign=top>A character name like "period" or "epsilon". From
- the xfont implementation's point of view, it is just a handle;
- when necessary, Ghostscript provides a
- <b><tt>gs_proc_glyph_name_t</tt></b> procedure to
- convert it to a string name.
-<tr> <td valign=top><b><tt>gs_proc_glyph_name_t</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>gsccode.h</tt></b>
- <td>&nbsp;
- <td valign=top>A procedure that maps a <b><tt>gs_glyph</tt></b> to
- its string name; see the <b><tt>char_xglyph</tt></b> procedure.
-<tr> <td valign=top><b><tt>gx_xglyph</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>gsxfont.h</tt></b>
- <td>&nbsp;
- <td valign=top>A character or glyph code that can be used with a
- specific platform font. Normally it will be a character code
- that the implementation of <b><tt>render_char</tt></b> will
- turn into a 1-character string and give to the platform's
- "display string" operation.
-<tr> <td valign=top><b><tt>gx_xfont_procs</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>gsxfont.h</tt></b>, <b><tt>gxxfont.h</tt></b>
- <td>&nbsp;
- <td valign=top>The xfont analogue of
- <b><tt>gx_device_procs</tt></b>, the type of the
- procedure record that defines an xfont implementation.
-<tr> <td valign=top><b><tt>gx_xfont</tt></b>
- <td>&nbsp;
- <td valign=top><b><tt>gsxfont.h</tt></b>, <b><tt>gxxfont.h</tt></b>
- <td>&nbsp;
- <td valign=top>The gxfont analogue of <b><tt>gx_device</tt></b>,
- the type of the basic structure for an xfont.
-<tr> <td valign=top>(<b><tt>encoding_index</tt></b>)
- <td>&nbsp;
- <td>&nbsp;
- <td>&nbsp;
- <td valign=top>Not really a type, although it probably should be:
- an <b><tt>int</tt></b> used to indicate the
- <b><tt>Encoding</tt></b> used by a font. Defined values are
- <dl compact>
- <dt>0<dd><b><tt>StandardEncoding</tt></b>
- <dt>1<dd><b><tt>ISOLatin1Encoding</tt></b>
- <dt>2<dd><b><tt>SymbolEncoding</tt></b>
- <dt>3<dd><b><tt>DingbatsEncoding</tt></b>
- <dt>-1<dd>Other encoding
- </dl>
-</table>
-
-<hr>
-
-<h2><a name="Implementation_procedures"></a>Implementation
-procedures</h2>
-
-<p>
-All the procedures that return <b><tt>int</tt></b> results return 0 on
-success, or an appropriate negative error code for error conditions; these
-error codes are defined in <b><tt>gserrors.h</tt></b>. The relevant ones
-are the same as for <a href="Drivers.htm">drivers</a>, and as with drivers,
-if an implementation procedure returns an error, it should use the
-<b><tt>return_error</tt></b> macro -- defined in <b><tt>gx.h</tt></b>,
-which is automatically included by <b><tt>gdevprn.h</tt></b> but not by
-<b><tt>gserrors.h</tt></b> -- rather than a simple <b><tt>return</tt></b>
-statement, for instance
-
-<blockquote>
-<b><tt>return_error(gs_error_VMerror);</tt></b>
-</blockquote>
-
-<h2><a name="Font_level_procedures"></a>Font-level procedures</h2>
-
-<h3><a name="lookup_font"></a><b><tt>lookup_font</tt></b></h3>
-
-<dl>
-<dt><b><tt>gx_xfont *(*lookup_font)(P7(gx_device&nbsp;*dev,
-const&nbsp;byte&nbsp;*fname, uint&nbsp;len, int&nbsp;encoding_index,
-const&nbsp;gs_uid&nbsp;*puid, const&nbsp;gs_matrix&nbsp;*pmat,
-const&nbsp;gs_memory_procs&nbsp;*mprocs))</tt></b>
-<dd>Look up a font name, <b><tt>UniqueID</tt></b>, and matrix, and return
-an xfont, or <b><tt>NULL</tt></b> if no suitable xfont exists. Use
-<b><tt>mprocs</tt></b> to allocate the xfont and any subsidiary data
-structures. The matrix is the <b><tt>FontMatrix</tt></b> concatenated with
-the CTM, so (roughly speaking) the font size in pixels is
-<b><tt>pmat&nbsp;-&gt;&nbsp;yy</tt></b>&nbsp;&times;&nbsp;1000 for a normal
-Type 1 font.
-
-<p>
-Note that this is the only implementation procedure that does not take an
-xfont * as its first argument. In fact, callers of
-<b><tt>lookup_font</tt></b> must use the <b><tt>get_xfont_device</tt></b>
-driver procedure to get the correct device to pass as the first argument to
-<b><tt>lookup_font</tt></b>.
-</dl>
-
-<h3><a name="char_xglyph"></a><b><tt>char_xglyph</tt></b></h3>
-
-<dl>
-<dt><b><tt>gx_xglyph (*char_xglyph)(P5(gx_xfont&nbsp;*xf, gs_char&nbsp;chr,
-int&nbsp;encoding_index, gs_glyph&nbsp;glyph,
-gs_proc_glyph_name_t&nbsp;glyph_name))</tt></b>
-<dd>Convert a character name to an xglyph code. In the case of
-<b><tt>glyphshow</tt></b>, <b><tt>chr</tt></b> may be
-<b><tt>gs_no_char</tt></b>; for an ordinary <b><tt>show</tt></b> operation,
-if the character code is invalid, <b><tt>glyph</tt></b> may be
-<b><tt>gs_no_glyph</tt></b>.
-</dl>
-
-<h3><a name="char_metrics"></a><b><tt>char_metrics</tt></b></h3>
-
-<dl>
-<dt><b><tt>int (*char_metrics)(P5(gx_xfont&nbsp;*xf, gx_xglyph&nbsp;xg,
-int&nbsp;wmode, gs_int_point&nbsp;*pwidth,
-gs_int_rect&nbsp;*pbbox))</tt></b>
-<dd>Get the metrics for a character. If the metrics are unavailable,
-return 1.
-</dl>
-
-<h3><a name="render_char"></a><b><tt>render_char</tt></b></h3>
-
-<dl>
-<dt><b><tt>int (*render_char)(P7(gx_xfont&nbsp;*xf, gx_xglyph&nbsp;xg,
-gx_device&nbsp;*target, int&nbsp;x, int&nbsp;y, gx_color_index&nbsp;color,
-int&nbsp;required))</tt></b>
-<dd>Render a character. <em>(x,y)</em> corresponds to the character
-origin. The target may be any Ghostscript device. A good implementation
-will check whether the target can handle this type of xfont directly (for
-instance by checking the target name), and if so, will render the character
-directly; otherwise, it will do what has to be done in the general case,
-namely, get a bitmap for the character and use the target's
-<b><tt>copy_mono</tt></b> operation. If <b><tt>required</tt></b> is false,
-the procedure should return an error if the rendering operation would be
-expensive, since in this case Ghostscript has already cached the bitmap and
-metrics from a previous call with <b><tt>required</tt></b>=true. If the
-operation cannot be done, return 1.
-</dl>
-
-<h3><a name="release"></a><b><tt>release</tt></b></h3>
-
-<dl>
-<dt><b><tt>int (*release)(P2(gx_xfont&nbsp;*xf,
-const&nbsp;gs_memory_procs&nbsp;*mprocs))</tt></b>
-<dd>Release any external resources associated with an xfont. If
-<b><tt>mprocs</tt></b> is not <b><tt>NULL</tt></b>, also free any storage
-allocated by <b><tt>lookup_font</tt></b> (including the xfont itself).
-</dl>
-
-<!-- [2.0 end contents] ==================================================== -->
-
-<!-- [3.0 begin visible trailer] =========================================== -->
-<hr>
-
-<p>
-<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises. All
-rights reserved.</small>
-
-<p>
-This software is provided AS-IS with no warranty, either express or
-implied.
-
-This software is distributed under license and may not be copied,
-modified or distributed except as expressly authorized under the terms
-of the license contained in the file LICENSE in this distribution.
-
-<p>
-<small>Ghostscript version 7.07, 17 May 2003
-
-<!-- [3.0 end visible trailer] ============================================= -->
-
-</body>
-</html>
diff --git a/Master/xemtex/doc/ghostscript/examples/alphabet.ps b/Master/xemtex/doc/ghostscript/examples/alphabet.ps
deleted file mode 100644
index 95137585b25..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/alphabet.ps
+++ /dev/null
@@ -1,62 +0,0 @@
-%!
-% Check for command line parameters:
-% Name, FirstSize, Ratio, NumSizes, UseOutline.
-
-/alphabetsave save def % prevent left over effects
-
-/FontName where { pop } { /FontName (Palatino-Italic) def } ifelse
-/FirstSize where { pop } { /FirstSize 15 def } ifelse
-/Ratio where { pop } { /Ratio 1.6 def } ifelse
-/NumSizes where { pop } { /NumSizes 3 def } ifelse
-/UseOutline where { pop } { /UseOutline false def } ifelse
-
-/Strings FirstSize 20 gt
- { [
- (ABCDEFGHIJ) (KLMNOPQR) (STUVWXYZ)
- (abcdefghijklm) (nopqrstuvwxyz)
- (0123456789<=>) (:;?@ !"#$%&')
- (\(\)*+,-./[\\]^_) (`{|}~)
- ] }
- { [
- (ABCDEFGHIJKLMNOPQRSTUVWXYZ)
- (abcdefghijklmnopqrstuvwxyz)
- (0123456789<=>:;?@ !"#$%&')
- (\(\)*+,-./ [\\]^_ `{|}~)
- ] }
-ifelse def
-
-/sshow
- { gsave UseOutline
- { { gsave ( ) dup 0 4 -1 roll put
- false charpath pathbbox 0 setlinewidth stroke grestore
- pop 8 add currentpoint exch pop moveto pop
- } forall
- }
- { 2 0 3 -1 roll ashow }
- ifelse grestore
- } def
-
-FontName findfont FirstSize scalefont setfont
-
-clippath pathbbox /top exch def pop pop pop newpath
-10 10 moveto
-NumSizes
- { gsave nulldevice (Q) false charpath pathbbox grestore
- exch pop exch sub exch pop 1.25 mul /height exch def
- Strings
- { currentpoint exch pop top height 3 mul sub gt
- { showpage 10 10 height sub moveto
- }
- if
- dup sshow
- UseOutline not
- { 0 height rmoveto gsave 0.01 rotate sshow grestore }
- if
- 0 height rmoveto
- } forall
- Ratio dup scale
- } repeat
-showpage
-
-clear cleardictstack
-alphabetsave restore
diff --git a/Master/xemtex/doc/ghostscript/examples/annots.pdf b/Master/xemtex/doc/ghostscript/examples/annots.pdf
deleted file mode 100644
index 467926df379..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/annots.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/all_ac1.ps b/Master/xemtex/doc/ghostscript/examples/cjk/all_ac1.ps
deleted file mode 100644
index bb038b640e5..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/all_ac1.ps
+++ /dev/null
@@ -1,221 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: Adobe-CNS1 CID-Keyed Fonts Character List
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%Version: 1.0
-%
-% Usage:
-% gs [-sF=MOESung-Regular] [-daffix [-sAF=MSung-Light]] \
-% [-dglyphshow- [-sI=Identity-H]] [-ddescent=200] all_ac1.ps
-%
-%%DocumentMedia: A4 595 842 0 white ()
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/*CIDFont*findresource {
- dup /CIDFont resourcestatus { pop pop /CIDFont findresource } {
- notice*page begin
- *open
- (Error in /CIDFont findresource: ) *echo-n dup *echo
- *close
- end
- /CIDFont findresource
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-
-/title (Adobe-CNS1 CID-Keyed Fonts Character List) def
-/PW 595 def
-/PH 842 def
-/LM 78 def
-/TM 130 def
-/RM 47 def
-/BM 76 def
-/NH 10 def
-/NV 12 def
-/RW PW LM RM add sub NH div def
-/RH PH TM BM add sub NV div def
-/FS RW 3 mul 4 div def
-/AFS RW 1 mul 4 div def
-/unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def
-/F (MKai-Medium) unknowndef
-/affix false unknowndef
-%/AF (MOESung-Regular) unknowndef
-%/AF (MOEKai-Regular) unknowndef
-/AF (MSung-Light) unknowndef
-%/AF (MHei-Medium) unknowndef
-/descent 130 unknowndef
-/glyphshow- false unknowndef
-/fss { exch /CIDFont findresource exch scalefont setfont } bind def
-/concats { % [str ...] concats str
- () exch dup length 1 sub -1 0 {
- 1 index exch get dup type /stringtype ne { dup length string cvs } if
- 3 -1 roll exch dup length 2 index length add string
- dup dup 4 2 roll copy length 4 -1 roll putinterval exch
- } for pop
-} bind def
-/composefontname { % font cmap composefontname font--cmap
- [ 2 index (--) 3 index ] concats dup 3 -1 roll [ 5 -1 roll ] composefont pop
-} bind def
-glyphshow- {
- /I (Identity-H) unknowndef
- /F F I composefontname def
- affix { /AF AF I composefontname def } if
- /fss { exch findfont exch scalefont setfont } bind def
- /s 2 string def
-} if
-/glyphframe { % h oldx glyphframe -
- gsave 0 setlinewidth
- currentpoint pop sub exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/box { % llx lly urx ury box -
- 3 index 3 index moveto exch 4 -1 roll sub 3 1 roll exch sub
- currentpoint 4 -2 roll rectstroke
-} bind def
-/charframe { % h string charframe -
- gsave 0 setlinewidth
- stringwidth pop exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/pathframe { % string pathframe -
- gsave 0 setlinewidth
- true charpath flattenpath pathbbox box grestore
-} bind def
-/np {
- /Helvetica findfont 11 scalefont setfont
- LM BM 11 2 mul sub moveto title show ( - ) show F show
- affix {
- gsave /Helvetica findfont 5 scalefont setfont ( and ) show AF show grestore
- } if
- PW RM sub BM 11 2 mul sub moveto p 3 string cvs show
- /p p 1 add def
- showpage
- /x LM def
- /y PH TM sub def
-} bind def
-/nb {
- /x x RW add def
- x PW RM sub ge {
- /x LM def
- /y y RH sub def
- y BM le {
- np
- /y PH TM sub def
- } if
- } if
-} bind def
-%%EndProlog
-/x LM def
-/y PH TM sub def
-/p 1 def
-[
- %[0 14098] % Adobe-CNS1-0
- %[0 17407] % Adobe-CNS1-0,1
- %[0 17600] % Adobe-CNS1-0,1,2
- %[0 18845] % Adobe-CNS1-0,1,2,3
- [0 18961] % Adobe-CNS1-0,1,2,3,4
-] {
- cvx exec 1 exch {
- /id exch def
- F FS fss
- x y FS sub moveto
- glyphshow- not {
- id glyphshow
- FS x glyphframe
- } {
- s 0 id 256 idiv put s 1 id 256 mod put
- FS s charframe
- s pathframe
- s show
- } ifelse
- affix {
- AF AFS fss
- x FS add y FS sub moveto
- glyphshow- not {
- id glyphshow
- AFS x FS add glyphframe
- } {
- AFS s charframe
- s pathframe
- s show
- } ifelse
- } if
- %
- /Times-Roman findfont 7 scalefont setfont
- x y FS sub FS descent mul 1000 div sub 7 sub moveto
- id 5 string cvs show
- nb
- } for
- np
-} forall
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/all_ag1.ps b/Master/xemtex/doc/ghostscript/examples/cjk/all_ag1.ps
deleted file mode 100644
index 26d8178959f..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/all_ag1.ps
+++ /dev/null
@@ -1,218 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: Adobe-GB1 CID-Keyed Fonts Character List
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%Version: 1.0
-%
-% Usage:
-% gs [-sF=BousungEG-Light-GB] [-daffix [-sAF=STSong-Light]] \
-% [-dglyphshow- [-sI=Identity-H]] [-ddescent=200] all_ag1.ps
-%
-%%DocumentMedia: A4 595 842 0 white ()
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/*CIDFont*findresource {
- dup /CIDFont resourcestatus { pop pop /CIDFont findresource } {
- notice*page begin
- *open
- (Error in /CIDFont findresource: ) *echo-n dup *echo
- *close
- end
- /CIDFont findresource
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-
-/title (Adobe-GB1 CID-Keyed Fonts Character List) def
-/PW 595 def
-/PH 842 def
-/LM 78 def
-/TM 130 def
-/RM 47 def
-/BM 76 def
-/NH 10 def
-/NV 12 def
-/RW PW LM RM add sub NH div def
-/RH PH TM BM add sub NV div def
-/FS RW 3 mul 4 div def
-/AFS RW 1 mul 4 div def
-/unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def
-/F (STHeiti-Regular) unknowndef
-/affix false unknowndef
-/AF (STSong-Light) unknowndef
-/descent 130 unknowndef
-/glyphshow- false unknowndef
-/fss { exch *CIDFont*findresource exch scalefont setfont } bind def
-/concats { % [str ...] concats str
- () exch dup length 1 sub -1 0 {
- 1 index exch get dup type /stringtype ne { dup length string cvs } if
- 3 -1 roll exch dup length 2 index length add string
- dup dup 4 2 roll copy length 4 -1 roll putinterval exch
- } for pop
-} bind def
-/composefontname { % font cmap composefontname font--cmap
- [ 2 index (--) 3 index ] concats dup 3 -1 roll [ 5 -1 roll ] composefont pop
-} bind def
-glyphshow- {
- /I (Identity-H) unknowndef
- /F F I composefontname def
- affix { /AF AF I composefontname def } if
- /fss { exch *findfont exch scalefont setfont } bind def
- /s 2 string def
-} if
-/glyphframe { % h oldx glyphframe -
- gsave 0 setlinewidth
- currentpoint pop sub exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/box { % llx lly urx ury box -
- 3 index 3 index moveto exch 4 -1 roll sub 3 1 roll exch sub
- currentpoint 4 -2 roll rectstroke
-} bind def
-/charframe { % h string charframe -
- gsave 0 setlinewidth
- stringwidth pop exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/pathframe { % string pathframe -
- gsave 0 setlinewidth
- true charpath flattenpath pathbbox box grestore
-} bind def
-/np {
- /Helvetica findfont 11 scalefont setfont
- LM BM 11 2 mul sub moveto title show ( - ) show F show
- affix {
- gsave /Helvetica findfont 5 scalefont setfont ( and ) show AF show grestore
- } if
- PW RM sub BM 11 2 mul sub moveto p 3 string cvs show
- /p p 1 add def
- showpage
- /x LM def
- /y PH TM sub def
-} bind def
-/nb {
- /x x RW add def
- x PW RM sub ge {
- /x LM def
- /y y RH sub def
- y BM le {
- np
- /y PH TM sub def
- } if
- } if
-} bind def
-%%EndProlog
-/x LM def
-/y PH TM sub def
-/p 1 def
-[
- %[0 7716] % Adobe-GB1-0
- %[0 9896] % Adobe-GB1-0,1
- %[0 22126] % Adobe-GB1-0,1,2
- %[0 22352] % Adobe-GB1-0,1,2,3
- [0 29063] % Adobe-GB1-0,1,2,3,4
-] {
- cvx exec 1 exch {
- /id exch def
- F FS fss
- x y FS sub moveto
- glyphshow- not {
- id glyphshow
- FS x glyphframe
- } {
- s 0 id 256 idiv put s 1 id 256 mod put
- FS s charframe
- s pathframe
- s show
- } ifelse
- affix {
- AF AFS fss
- x FS add y FS sub moveto
- glyphshow- not {
- id glyphshow
- AFS x FS add glyphframe
- } {
- AFS s charframe
- s pathframe
- s show
- } ifelse
- } if
- %
- /Times-Roman findfont 7 scalefont setfont
- x y FS sub FS descent mul 1000 div sub 7 sub moveto
- id 5 string cvs show
- nb
- } for
- np
-} forall
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/all_aj1.ps b/Master/xemtex/doc/ghostscript/examples/cjk/all_aj1.ps
deleted file mode 100644
index 9dd2f4d3d5c..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/all_aj1.ps
+++ /dev/null
@@ -1,218 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: Adobe-Japan1 CID-Keyed Fonts Character List
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%Version: 1.0
-%
-% Usage:
-% gs [-sF=WadaMin-Regular] [-daffix [-sAF=HeiseiMin-W3]] \
-% [-dglyphshow- [-sI=Identity-H]] [-ddescent=200] all_aj1.ps
-%
-%%DocumentMedia: A4 595 842 0 white ()
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/*CIDFont*findresource {
- dup /CIDFont resourcestatus { pop pop /CIDFont findresource } {
- notice*page begin
- *open
- (Error in /CIDFont findresource: ) *echo-n dup *echo
- *close
- end
- /CIDFont findresource
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-
-/title (Adobe-Japan1 CID-Keyed Fonts Character List) def
-/PW 595 def
-/PH 842 def
-/LM 78 def
-/TM 130 def
-/RM 47 def
-/BM 76 def
-/NH 10 def
-/NV 12 def
-/RW PW LM RM add sub NH div def
-/RH PH TM BM add sub NV div def
-/FS RW 3 mul 4 div def
-/AFS RW 1 mul 4 div def
-/unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def
-/F (HeiseiKakuGo-W5) unknowndef
-/affix false unknowndef
-/AF (HeiseiMin-W3) unknowndef
-/descent 130 unknowndef
-/glyphshow- false unknowndef
-/fss { exch *CIDFont*findresource exch scalefont setfont } bind def
-/concats { % [str ...] concats str
- () exch dup length 1 sub -1 0 {
- 1 index exch get dup type /stringtype ne { dup length string cvs } if
- 3 -1 roll exch dup length 2 index length add string
- dup dup 4 2 roll copy length 4 -1 roll putinterval exch
- } for pop
-} bind def
-/composefontname { % font cmap composefontname font--cmap
- [ 2 index (--) 3 index ] concats dup 3 -1 roll [ 5 -1 roll ] composefont pop
-} bind def
-glyphshow- {
- /I (Identity-H) unknowndef
- /F F I composefontname def
- affix { /AF AF I composefontname def } if
- /fss { exch *findfont exch scalefont setfont } bind def
- /s 2 string def
-} if
-/glyphframe { % h oldx glyphframe -
- gsave 0 setlinewidth
- currentpoint pop sub exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/box { % llx lly urx ury box -
- 3 index 3 index moveto exch 4 -1 roll sub 3 1 roll exch sub
- currentpoint 4 -2 roll rectstroke
-} bind def
-/charframe { % h string charframe -
- gsave 0 setlinewidth
- stringwidth pop exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/pathframe { % string pathframe -
- gsave 0 setlinewidth
- true charpath flattenpath pathbbox box grestore
-} bind def
-/np {
- /Helvetica findfont 11 scalefont setfont
- LM BM 11 2 mul sub moveto title show ( - ) show F show
- affix {
- gsave /Helvetica findfont 5 scalefont setfont ( and ) show AF show grestore
- } if
- PW RM sub BM 11 2 mul sub moveto p 3 string cvs show
- /p p 1 add def
- showpage
- /x LM def
- /y PH TM sub def
-} bind def
-/nb {
- /x x RW add def
- x PW RM sub ge {
- /x LM def
- /y y RH sub def
- y BM le {
- np
- /y PH TM sub def
- } if
- } if
-} bind def
-%%EndProlog
-/x LM def
-/y PH TM sub def
-/p 1 def
-[
- [0 8283] % Adobe-Japan1-0
- [8284 8358] % Adobe-Japan1-1
- [8359 8719] % Adobe-Japan1-2
- [8720 9353] % Adobe-Japan1-3
- [9354 15443] % Adobe-Japan1-4
-] {
- cvx exec 1 exch {
- /id exch def
- F FS fss
- x y FS sub moveto
- glyphshow- not {
- id glyphshow
- FS x glyphframe
- } {
- s 0 id 256 idiv put s 1 id 256 mod put
- FS s charframe
- s pathframe
- s show
- } ifelse
- affix {
- AF AFS fss
- x FS add y FS sub moveto
- glyphshow- not {
- id glyphshow
- AFS x FS add glyphframe
- } {
- AFS s charframe
- s pathframe
- s show
- } ifelse
- } if
- %
- /Times-Roman findfont 7 scalefont setfont
- x y FS sub FS descent mul 1000 div sub 7 sub moveto
- id 5 string cvs show
- nb
- } for
- np
-} forall
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/all_aj2.ps b/Master/xemtex/doc/ghostscript/examples/cjk/all_aj2.ps
deleted file mode 100644
index 7e6019eb83b..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/all_aj2.ps
+++ /dev/null
@@ -1,214 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: Adobe-Japan2 CID-Keyed Fonts Character List
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%Version: 1.0
-%
-% Usage:
-% gs [-sF=HeiseiMin-W3H] [-daffix [-sAF=WadaMin-RegularH]] \
-% [-dglyphshow- [-sI=Identity-H]] [-ddescent=200] all_aj2.ps
-%
-%%DocumentMedia: A4 595 842 0 white ()
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/*CIDFont*findresource {
- dup /CIDFont resourcestatus { pop pop /CIDFont findresource } {
- notice*page begin
- *open
- (Error in /CIDFont findresource: ) *echo-n dup *echo
- *close
- end
- /CIDFont findresource
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-
-/title (Adobe-Japan2 CID-Keyed Fonts Character List) def
-/PW 595 def
-/PH 842 def
-/LM 78 def
-/TM 130 def
-/RM 47 def
-/BM 76 def
-/NH 10 def
-/NV 12 def
-/RW PW LM RM add sub NH div def
-/RH PH TM BM add sub NV div def
-/FS RW 3 mul 4 div def
-/AFS RW 1 mul 4 div def
-/unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def
-/F (WadaMin-RegularH) unknowndef
-/affix false unknowndef
-/AF (HeiseiMin-W3H) unknowndef
-/descent 130 unknowndef
-/glyphshow- false unknowndef
-/fss { exch *CIDFont*findresource exch scalefont setfont } bind def
-/concats { % [str ...] concats str
- () exch dup length 1 sub -1 0 {
- 1 index exch get dup type /stringtype ne { dup length string cvs } if
- 3 -1 roll exch dup length 2 index length add string
- dup dup 4 2 roll copy length 4 -1 roll putinterval exch
- } for pop
-} bind def
-/composefontname { % font cmap composefontname font--cmap
- [ 2 index (--) 3 index ] concats dup 3 -1 roll [ 5 -1 roll ] composefont pop
-} bind def
-glyphshow- {
- /I (Identity-H) unknowndef
- /F F I composefontname def
- affix { /AF AF I composefontname def } if
- /fss { exch *findfont exch scalefont setfont } bind def
- /s 2 string def
-} if
-/glyphframe { % h oldx glyphframe -
- gsave 0 setlinewidth
- currentpoint pop sub exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/box { % llx lly urx ury box -
- 3 index 3 index moveto exch 4 -1 roll sub 3 1 roll exch sub
- currentpoint 4 -2 roll rectstroke
-} bind def
-/charframe { % h string charframe -
- gsave 0 setlinewidth
- stringwidth pop exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/pathframe { % string pathframe -
- gsave 0 setlinewidth
- true charpath flattenpath pathbbox box grestore
-} bind def
-/np {
- /Helvetica findfont 11 scalefont setfont
- LM BM 11 2 mul sub moveto title show ( - ) show F show
- affix {
- gsave /Helvetica findfont 5 scalefont setfont ( and ) show AF show grestore
- } if
- PW RM sub BM 11 2 mul sub moveto p 3 string cvs show
- /p p 1 add def
- showpage
- /x LM def
- /y PH TM sub def
-} bind def
-/nb {
- /x x RW add def
- x PW RM sub ge {
- /x LM def
- /y y RH sub def
- y BM le {
- np
- /y PH TM sub def
- } if
- } if
-} bind def
-%%EndProlog
-/x LM def
-/y PH TM sub def
-/p 1 def
-[
- [0 6067] % Adobe-Japan2-0
-] {
- cvx exec 1 exch {
- /id exch def
- F FS fss
- x y FS sub moveto
- glyphshow- not {
- id glyphshow
- FS x glyphframe
- } {
- s 0 id 256 idiv put s 1 id 256 mod put
- FS s charframe
- s pathframe
- s show
- } ifelse
- affix {
- AF AFS fss
- x FS add y FS sub moveto
- glyphshow- not {
- id glyphshow
- AFS x FS add glyphframe
- } {
- AFS s charframe
- s pathframe
- s show
- } ifelse
- } if
- %
- /Times-Roman findfont 7 scalefont setfont
- x y FS sub FS descent mul 1000 div sub 7 sub moveto
- id 5 string cvs show
- nb
- } for
- np
-} forall
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/all_ak1.ps b/Master/xemtex/doc/ghostscript/examples/cjk/all_ak1.ps
deleted file mode 100644
index b3e138e7381..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/all_ak1.ps
+++ /dev/null
@@ -1,215 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: Adobe-Korea1 CID-Keyed Fonts Character List
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%Version: 1.0
-%
-% Usage:
-% gs [-sF=MunhwaGothic-Regular] [-daffix [-sAF=HYGoThic-Medium]] \
-% [-dglyphshow- [-sI=Identity-H]] [-ddescent=200] all_ak1.ps
-%
-%%DocumentMedia: A4 595 842 0 white ()
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/*CIDFont*findresource {
- dup /CIDFont resourcestatus { pop pop /CIDFont findresource } {
- notice*page begin
- *open
- (Error in /CIDFont findresource: ) *echo-n dup *echo
- *close
- end
- /CIDFont findresource
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-
-/title (Adobe-Korea1 CID-Keyed Fonts Character List) def
-/PW 595 def
-/PH 842 def
-/LM 78 def
-/TM 130 def
-/RM 47 def
-/BM 76 def
-/NH 10 def
-/NV 12 def
-/RW PW LM RM add sub NH div def
-/RH PH TM BM add sub NV div def
-/FS RW 3 mul 4 div def
-/AFS RW 1 mul 4 div def
-/unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def
-/F (HYGoThic-Medium) unknowndef
-/affix false unknowndef
-/AF (HYSMyeongJo-Medium) unknowndef
-/descent 130 unknowndef
-/glyphshow- false unknowndef
-/fss { exch *CIDFont*findresource exch scalefont setfont } bind def
-/concats { % [str ...] concats str
- () exch dup length 1 sub -1 0 {
- 1 index exch get dup type /stringtype ne { dup length string cvs } if
- 3 -1 roll exch dup length 2 index length add string
- dup dup 4 2 roll copy length 4 -1 roll putinterval exch
- } for pop
-} bind def
-/composefontname { % font cmap composefontname font--cmap
- [ 2 index (--) 3 index ] concats dup 3 -1 roll [ 5 -1 roll ] composefont pop
-} bind def
-glyphshow- {
- /I (Identity-H) unknowndef
- /F F I composefontname def
- affix { /AF AF I composefontname def } if
- /fss { exch *findfont exch scalefont setfont } bind def
- /s 2 string def
-} if
-/glyphframe { % h oldx glyphframe -
- gsave 0 setlinewidth
- currentpoint pop sub exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/box { % llx lly urx ury box -
- 3 index 3 index moveto exch 4 -1 roll sub 3 1 roll exch sub
- currentpoint 4 -2 roll rectstroke
-} bind def
-/charframe { % h string charframe -
- gsave 0 setlinewidth
- stringwidth pop exch dup 0 exch descent mul 1000 div neg rmoveto
- currentpoint 4 -2 roll rectstroke grestore
-} bind def
-/pathframe { % string pathframe -
- gsave 0 setlinewidth
- true charpath flattenpath pathbbox box grestore
-} bind def
-/np {
- /Helvetica findfont 11 scalefont setfont
- LM BM 11 2 mul sub moveto title show ( - ) show F show
- affix {
- gsave /Helvetica findfont 5 scalefont setfont ( and ) show AF show grestore
- } if
- PW RM sub BM 11 2 mul sub moveto p 3 string cvs show
- /p p 1 add def
- showpage
- /x LM def
- /y PH TM sub def
-} bind def
-/nb {
- /x x RW add def
- x PW RM sub ge {
- /x LM def
- /y y RH sub def
- y BM le {
- np
- /y PH TM sub def
- } if
- } if
-} bind def
-%%EndProlog
-/x LM def
-/y PH TM sub def
-/p 1 def
-[
- [0 9332] % Adobe-Korea1-0
- [9333 18351] % Adobe-Korea1-1,2
-] {
- cvx exec 1 exch {
- /id exch def
- F FS fss
- x y FS sub moveto
- glyphshow- not {
- id glyphshow
- FS x glyphframe
- } {
- s 0 id 256 idiv put s 1 id 256 mod put
- FS s charframe
- s pathframe
- s show
- } ifelse
- affix {
- AF AFS fss
- x FS add y FS sub moveto
- glyphshow- not {
- id glyphshow
- AFS x FS add glyphframe
- } {
- AFS s charframe
- s pathframe
- s show
- } ifelse
- } if
- %
- /Times-Roman findfont 7 scalefont setfont
- x y FS sub FS descent mul 1000 div sub 7 sub moveto
- id 5 string cvs show
- nb
- } for
- np
-} forall
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ac.ps b/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ac.ps
deleted file mode 100644
index dfc6230bd93..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ac.ps
+++ /dev/null
@@ -1,120 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: chinese-big5 encoding
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%BoundingBox: 30 150 530 650
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-%%EndProlog
-/MSung-Light--B5-V *findfont 25 scalefont setfont
-500 625 moveto
-(ÆFµ§¤¤¤åÁcÅé¦rª½¼g¦L¨ê) show
-/MSung-Light--B5-H *findfont 25 scalefont setfont
-50 600 moveto
-(ÆFµ§ Ghostscript) show
-50 550 moveto
-(¤¤¤åÁcÅé¦r Traditional Chinese) show
-50 500 moveto
-(¾î¼g horizontal writing) show
-50 450 moveto
-(¦L¨ê Print) show
-%
-/MSung-Light--B5-V *findfont [ 1 .3 0 1 0 0 ] makefont 20 scalefont setfont
-100 275 moveto 20 2 div 0 rmoveto
-(±×Åé) dup stringwidth neg rmoveto show
-/MSung-Light--B5-H *findfont [ 1 0 .3 1 0 0 ] makefont 20 scalefont setfont
-100 250 moveto
-(±×Åé Italic transformation) show
-%
-/MSung-Light--B5-H *findfont 20 scalefont setfont
-150 400 moveto
-(Sung Typeface §ºÅé) show
-/MSung-Medium--B5-H *findfont 20 scalefont setfont
-150 375 moveto
-(Sung Medium Typeface ¤¤§ºÅé) show
-/MHei-Medium--B5-H *findfont 20 scalefont setfont
-150 350 moveto
-(Hei Typeface ¶ÂÅé) show
-/MKai-Medium--B5-H *findfont 20 scalefont setfont
-150 325 moveto
-(Kai Typeface ´{Åé) show
-%
-/Times-Roman findfont 13 scalefont setfont
-50 200 moveto
-(* Chinese translation of "Ghostscript" is merely associative \
-characters of these meanings.) show
-50 200 13 sub moveto
-(In Traditional Chinese articles, customarily we use just \
-"Ghostscript" as it is.) show
-showpage
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ag.ps b/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ag.ps
deleted file mode 100644
index 02568b64f8d..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ag.ps
+++ /dev/null
@@ -1,120 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: euc-china encoding
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%BoundingBox: 30 150 530 650
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-%%EndProlog
-/STSong-Light--GB-EUC-V *findfont 25 scalefont setfont
-500 625 moveto
-(Áé±ÊÖÐÎļòÌå×Öֱдӡˢ) show
-/STSong-Light--GB-EUC-H *findfont 25 scalefont setfont
-50 600 moveto
-(Áé±Ê Ghostscript) show
-50 550 moveto
-(ÖÐÎļòÌå×Ö Simplified Chinese) show
-50 500 moveto
-(ºáд horizontal writing) show
-50 450 moveto
-(Ó¡Ë¢ Print) show
-%
-/STSong-Light--GB-EUC-V *findfont [ 1 .3 0 1 0 0 ] makefont 20 scalefont setfont
-100 275 moveto 20 2 div 0 rmoveto
-(бÌå) dup stringwidth neg rmoveto show
-/STSong-Light--GB-EUC-H *findfont [ 1 0 .3 1 0 0 ] makefont 20 scalefont setfont
-100 250 moveto
-(бÌå Italic transformation) show
-%
-/STSong-Light--GB-EUC-H *findfont 20 scalefont setfont
-150 400 moveto
-(Song Typeface ËÎÌå) show
-/STFangsong-Light--GB-EUC-H *findfont 20 scalefont setfont
-150 375 moveto
-(Fangsong Typeface ·ÂËÎÌå) show
-/STHeiti-Regular--GB-EUC-H *findfont 20 scalefont setfont
-150 350 moveto
-(Hei Typeface ºÚÌå) show
-/STKaiti-Regular--GB-EUC-H *findfont 20 scalefont setfont
-150 325 moveto
-(Kai Typeface ¿«Ìå) show
-%
-/Times-Roman findfont 13 scalefont setfont
-50 200 moveto
-(* Chinese translation of "Ghostscript" is merely associative \
-characters of these meanings.) show
-50 200 13 sub moveto
-(In Simplified Chinese articles, customarily we use just "Ghostscript" \
-as it is.) show
-showpage
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_aj.ps b/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_aj.ps
deleted file mode 100644
index 42d98bcdbb1..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_aj.ps
+++ /dev/null
@@ -1,114 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: japanese-shift-jis encoding
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%BoundingBox: 30 150 530 650
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-%%EndProlog
-/Ryumin-Light-RKSJ-V *findfont 25 scalefont setfont
-500 625 moveto
-(—ì•M “ú–{Œê c‘‚« ˆóü) show
-/Ryumin-Light-RKSJ-H *findfont 25 scalefont setfont
-50 600 moveto
-(—ì•M Ghostscript) show
-50 550 moveto
-(“ú–{Œê Japanese) show
-50 500 moveto
-(‰¡‘‚« horizontal writing) show
-50 450 moveto
-(ˆóü Print) show
-%
-/Ryumin-Light-RKSJ-V *findfont [ 1 .3 0 1 0 0 ] makefont 20 scalefont setfont
-100 275 moveto 20 2 div 0 rmoveto
-(ŽÎ‘Ì) dup stringwidth neg rmoveto show
-/Ryumin-Light-RKSJ-H *findfont [ 1 0 .3 1 0 0 ] makefont 20 scalefont setfont
-100 250 moveto
-(ŽÎ‘Ì Italic transformation) show
-%
-/Ryumin-Light-RKSJ-H *findfont 20 scalefont setfont
-150 400 moveto
-(Mincho Typeface –¾’©‘Ì) show
-/GothicBBB-Medium-RKSJ-H *findfont 20 scalefont setfont
-150 375 moveto
-(Gothic Typeface ƒSƒVƒbƒN‘Ì) show
-%
-/Times-Roman findfont 13 scalefont setfont
-50 200 moveto
-(* Japanese translation of "Ghostscript" is merely associative \
-characters of these meanings.) show
-50 200 13 sub moveto
-(In Japanese articles, customarily we use just "Ghostscript" as it \
-is.) show
-showpage
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ak.ps b/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ak.ps
deleted file mode 100644
index 78ce81876b2..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/gscjk_ak.ps
+++ /dev/null
@@ -1,116 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: euc-korea encoding
-%%Creator: Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%Copyright: (C) 2001 Taiji Yamada and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU General Public License. See the file COPYING
-%%+ for more information.
-%%BoundingBox: 30 150 530 650
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-%%EndProlog
-/HYSMyeongJo-Medium--KSC-EUC-V *findfont 25 scalefont setfont
-500 625 moveto
-(ÖÄù¶ Çѱ¹¾î ¼¼·Î¾²±â Àμâ) show
-/HYSMyeongJo-Medium--KSC-EUC-H *findfont 25 scalefont setfont
-50 600 moveto
-(ÖÄù¶ Ghostscript) show
-50 550 moveto
-(Çѱ¹¾î Korean) show
-50 500 moveto
-(°¡·Î¾²±â horizontal writing) show
-50 450 moveto
-(Àμâ Print) show
-%
-/HYSMyeongJo-Medium--KSC-EUC-V *findfont [ 1 .3 0 1 0 0 ] makefont 20 scalefont setfont
-100 275 moveto 20 2 div 0 rmoveto
-(±â¿ïÀÓ²Ã) dup stringwidth neg rmoveto show
-/HYSMyeongJo-Medium--KSC-EUC-H *findfont [ 1 0 .3 1 0 0 ] makefont 20 scalefont setfont
-100 250 moveto
-(±â¿ïÀӲà Italic transformation) show
-%
-/HYSMyeongJo-Medium--KSC-EUC-H *findfont 20 scalefont setfont
-150 400 moveto
-(MyeongJo Typeface ¸íÁ¶) show
-/HYGoThic-Medium--KSC-EUC-H *findfont 20 scalefont setfont
-150 375 moveto
-(Gothic Typeface °íµñ) show
-/HYRGoThic-Medium--KSC-EUC-H *findfont 20 scalefont setfont
-150 350 moveto
-(Rounded Gothic Typeface µÕ±Ù°íµñ) show
-%
-/Times-Roman findfont 13 scalefont setfont
-50 200 moveto
-(* Korean translation of "Ghostscript" is merely associative \
-characters of these meanings.) show
-50 200 13 sub moveto
-(In Korean articles, customarily we use just "Ghostscript" as it is.) show
-showpage
-%%Trailer
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/cjk/iso2022.ps b/Master/xemtex/doc/ghostscript/examples/cjk/iso2022.ps
deleted file mode 100644
index 9edb39bd6c5..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/cjk/iso2022.ps
+++ /dev/null
@@ -1,1256 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: tops by Taiji Yamada <taiji@aihara.co.jp>
-%%Copyright: 2001 Taiji Yamada <taiji@aihara.co.jp> and gs-cjk project
-%%+ This script is part of GNU Ghostscript and is distributed under
-%%+ the terms of the GNU GPL. See the file COPYING for more information.
-%%+ It is also part of tops, a text filter into PostScript for various
-%%+ languages. To get it, visit http://www.aihara.co.jp/~taiji/tops/#tops
-%%DocumentData: Clean7Bit
-%%DocumentMedia: A4 595 842 0 white ()
-%%Extensions: Composite
-%%Orientation: Portrait
-%%Title: iso-2022-7bit - Emacs/Mule editable PostScript file
-%%Version: 1.0
-%
-% Usage:
-% gs [-dverttext] iso2022.ps
-%
-%%EndComments
-%%BeginProlog
-
-/*gs-cjk (\
-------------------------------------------------------------------------\n\
-This is a script to test CJK fonts such as CID-keyed fonts.\n\
-If you have not done CID-keyed fonts installation and definitions at\n\
-/Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\
-this script can't work correctly.\n\
-For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\
-
-If you throw this script into a printer, it requires PostScript 3\n\
-printer and CID-keyed fonts specified in this script.\n\
-------------------------------------------------------------------------\n) def
-
-/notice*stdout 4 dict begin
- /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def
- currentdict
-end def
-
-/notice*page 5 dict begin
- /*y 750 def
- /*open {
- gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto
- *y 750 eq {
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- } if
- } def
- /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def
- /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def
- /*close { grestore } def
- currentdict
-end def
-
-/greeting*gs-cjk {
- product (Ghostscript) search not { pop } { pop pop pop QUIET not {
- notice*stdout begin
- *open
- *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop
- *close
- end
- } if } ifelse
-} bind def
-greeting*gs-cjk
-
-/*findfont {
- dup /Font resourcestatus { pop pop findfont } {
- notice*page begin
- *open
- (Error in findfont: ) *echo-n dup *echo
- *close
- end
- findfont
- } ifelse
-} bind def
-
-/orighandleerror errordict /handleerror get def
-errordict begin
- /handleerror {
- notice*page begin errordict begin $error begin
- *open
- (Error of ) *echo-n errorname dup length string cvs *echo
- *close
- showpage
- end end end
- orighandleerror
- } bind def
-end
-
-/unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def
-
-/ISOLatin1Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin1Encoding)
-%%EndComments
-/ISOLatin1Encoding [ % iso-8859-1
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
-/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
-/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
-/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-% 0xc0
-/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-% 0xe0
-/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin2Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin2Encoding)
-%%EndComments
-/ISOLatin2Encoding [ % iso-8859-2
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/Aogonek/breve/Lslash/currency/Lcaron/Sacute/section
-/dieresis/Scaron/Scedilla/Tcaron/Zacute/hyphen/Zcaron/Zdotaccent
-/degree/aogonek/ogonek/lslash/acute/lcaron/sacute/caron
-/cedilla/scaron/scedilla/tcaron/zacute/hungarumlaut/zcaron/zdotaccent
-% 0xc0
-/Racute/Aacute/Acircumflex/Abreve/Adieresis/Lacute/Cacute/Ccedilla
-/Ccaron/Eacute/Eogonek/Edieresis/Ecaron/Iacute/Icircumflex/Dcaron
-/Dcroat/Nacute/Ncaron/Oacute/Ocircumflex/Ohungarumlaut/Odieresis/multiply
-/Rcaron/Uring/Uacute/Uhungarumlaut/Udieresis/Yacute/Tcommaaccent/germandbls
-% 0xe0
-/racute/aacute/acircumflex/abreve/adieresis/lacute/cacute/ccedilla
-/ccaron/eacute/eogonek/edieresis/ecaron/iacute/icircumflex/dcaron
-/dcroat/nacute/ncaron/oacute/ocircumflex/ohungarumlaut/odieresis/divide
-/rcaron/uring/uacute/uhungarumlaut/udieresis/yacute/tcommaaccent/dotaccent
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin3Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin3Encoding)
-%%EndComments
-/ISOLatin3Encoding [ % iso-8859-3
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/Hbar/breve/sterling/currency/.notdef/Hcircumflex/section
-/dieresis/Idotaccent/Scedilla/Gbreve/Jcircumflex/hyphen/.notdef/Zdotaccent
-/degree/hbar/twosuperior/threesuperior/acute/mu/hcircumflex/periodcentered
-/cedilla/dotlessi/scedilla/gbreve/jcircumflex/onehalf/.notdef/zdotaccent
-% 0xc0
-/Agrave/Aacute/Acircumflex/.notdef/Adieresis/Cdotaccent/Ccircumflex/Ccedilla
-/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-/.notdef/Ntilde/Ograve/Oacute/Ocircumflex/Gdotaccent/Odieresis/multiply
-/Gcircumflex/Ugrave/Uacute/Ucircumflex/Udieresis/Ubreve/Scircumflex/germandbls
-% 0xe0
-/agrave/aacute/acircumflex/.notdef/adieresis/cdotaccent/ccircumflex/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/.notdef/ntilde/ograve/oacute/ocircumflex/gdotaccent/odieresis/divide
-/gcircumflex/ugrave/uacute/ucircumflex/udieresis/ubreve/scircumflex/dotaccent
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin4Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin4Encoding)
-%%EndComments
-/ISOLatin4Encoding [ % iso-8859-4
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/Aogonek/kgreenlandic/Rcommaaccent/currency/Itilde/Lcommaaccent/section
-/dieresis/Scaron/Emacron/Gcommaaccent/Tbar/hyphen/Zcaron/macron
-/degree/aogonek/ogonek/rcommaaccent/acute/itilde/lcommaaccent/caron
-/cedilla/scaron/emacron/gcommaaccent/tbar/Eng/zcaron/eng
-% 0xc0
-/Amacron/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Iogonek
-/Ccaron/Eacute/Eogonek/Edieresis/Edotaccent/Iacute/Icircumflex/Imacron
-/Dcroat/Ncommaaccent/Omacron/Kcommaaccent/Ocircumflex/Otilde/Odieresis/multiply
-/Oslash/Uogonek/Uacute/Ucircumflex/Udieresis/Utilde/Umacron/germandbls
-% 0xe0
-/amacron/aacute/acircumflex/atilde/adieresis/aring/ae/iogonek
-/ccaron/eacute/eogonek/edieresis/edotaccent/iacute/icircumflex/imacron
-/dcroat/ncommaaccent/omacron/kcommaaccent/ocircumflex/otilde/odieresis/divide
-/oslash/uogonek/uacute/ucircumflex/udieresis/utilde/umacron/dotaccent
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOCyrillicEncoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOCyrillicEncoding)
-%%EndComments
-/ISOCyrillicEncoding [ % iso-8859-5
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/afii10023/afii10051/afii10052/afii10053/afii10054/afii10055/afii10056
-/afii10057/afii10058/afii10059/afii10060/afii10061/hyphen/afii10062/afii10145
-/afii10017/afii10018/afii10019/afii10020/afii10021/afii10022/afii10024/afii10025
-/afii10026/afii10027/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033
-% 0xc0
-/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10040/afii10041
-/afii10042/afii10043/afii10044/afii10045/afii10046/afii10047/afii10048/afii10049
-/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073
-/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081
-% 0xe0
-/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089
-/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097
-/afii61352/afii10071/afii10099/afii10100/afii10101/afii10102/afii10103/afii10104
-/afii10105/afii10106/afii10107/afii10108/afii10109/section/afii10110/afii10193
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOGreekEncoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOGreekEncoding)
-%%EndComments
-/ISOGreekEncoding [ % iso-8859-7
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/quoteleft/quoteright/sterling/.notdef/.notdef/brokenbar/section
-/dieresis/copyright/.notdef/guillemotleft/logicalnot/hyphen/.notdef/afii00208
-/degree/plusminus/twosuperior/threesuperior/tonos/dieresistonos/Alphatonos/periodcentered
-/Epsilontonos/Etatonos/Iotatonos/guillemotright/Omicrontonos/onehalf/Upsilontonos/Omegatonos
-% 0xc0
-/iotadieresistonos/Alpha/Beta/Gamma/Delta/Epsilon/Zeta/Eta
-/Theta/Iota/Kappa/Lambda/Mu/Nu/Xi/Omicron
-/Pi/Rho/.notdef/Sigma/Tau/Upsilon/Phi/Chi
-/Psi/Omega/Iotadieresis/Upsilondieresis/alphatonos/epsilontonos/etatonos/iotatonos
-% 0xe0
-/upsilondieresistonos/alpha/beta/gamma/delta/epsilon/zeta/eta
-/theta/iota/kappa/lambda/mu/nu/xi/omicron
-/pi/rho/sigma1/sigma/tau/upsilon/phi/chi
-/psi/omega/iotadieresis/upsilondieresis/omicrontonos/upsilontonos/omegatonos/.notdef
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin5Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin5Encoding)
-%%EndComments
-/ISOLatin5Encoding [ % iso-8859-9
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
-/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
-/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
-/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-% 0xc0
-/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-/Gbreve/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Idotaccent/Scedilla/germandbls
-% 0xe0
-/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/gbreve/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-/oslash/ugrave/uacute/ucircumflex/udieresis/dotlessi/scedilla/ydieresis
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin6Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin6Encoding)
-%%EndComments
-/ISOLatin6Encoding [ % iso-8859-10
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/Aogonek/Emacron/Gcommaaccent/Imacron/Itilde/Kcommaaccent/section
-/Lcommaaccent/Dcroat/Scaron/Tbar/Zcaron/hyphen/Umacron/Eng
-/degree/aogonek/emacron/gcommaaccent/imacron/itilde/kcommaaccent/periodcentered
-/lcommaaccent/dcroat/scaron/tbar/zcaron/afii00208/umacron/eng
-% 0xc0
-/Amacron/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Iogonek
-/Ccaron/Eacute/Eogonek/Edieresis/Edotaccent/Iacute/Icircumflex/Idieresis
-/Eth/Ncommaaccent/Omacron/Oacute/Ocircumflex/Otilde/Odieresis/Utilde
-/Oslash/Uogonek/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-% 0xe0
-/amacron/aacute/acircumflex/atilde/adieresis/aring/ae/iogonek
-/ccaron/eacute/eogonek/edieresis/edotaccent/iacute/icircumflex/idieresis
-/eth/ncommaaccent/omacron/oacute/ocircumflex/otilde/odieresis/utilde
-/oslash/uogonek/uacute/ucircumflex/udieresis/yacute/thorn/kgreenlandic
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin7Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin7Encoding)
-%%EndComments
-/ISOLatin7Encoding [ % iso-8859-13
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/quotedblright/cent/sterling/currency/quotedblbase/brokenbar/section
-/Oslash/copyright/Rcommaaccent/guillemotleft/logicalnot/hyphen/registered/AE
-/degree/plusminus/twosuperior/threesuperior/quotedblleft/mu/paragraph/periodcentered
-/oslash/onesuperior/rcommaaccent/guillemotright/onequarter/onehalf/threequarters/ae
-% 0xc0
-/Aogonek/Iogonek/Amacron/Cacute/Adieresis/Aring/Eogonek/Emacron
-/Ccaron/Eacute/Zacute/Edotaccent/Gcommaaccent/Kcommaaccent/Imacron/Lcommaaccent
-/Scaron/Nacute/Ncommaaccent/Oacute/Omacron/Otilde/Odieresis/multiply
-/Uogonek/Lslash/Sacute/Umacron/Udieresis/Zdotaccent/Zcaron/germandbls
-% 0xe0
-/aogonek/iogonek/amacron/cacute/adieresis/aring/eogonek/emacron
-/ccaron/eacute/zacute/edotaccent/gcommaaccent/kcommaaccent/imacron/lcommaaccent
-/scaron/nacute/ncommaaccent/oacute/omacron/otilde/odieresis/divide
-/uogonek/lslash/sacute/umacron/udieresis/zdotaccent/zcaron/quoteright
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/ISOLatin9Encoding /Encoding resourcestatus { pop pop } {
-%!PS-Adobe-3.0 Resource-Encoding
-%%BeginResource: Encoding (ISOLatin9Encoding)
-%%EndComments
-/ISOLatin9Encoding [ % iso-8859-15
-% 0x00
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0x20
-/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
-/parenleft/parenright/asterisk/plus/comma/minus/period/slash
-/zero/one/two/three/four/five/six/seven
-/eight/nine/colon/semicolon/less/equal/greater/question
-% 0x40
-/at/A/B/C/D/E/F/G
-/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W
-/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
-% 0x60
-/grave/a/b/c/d/e/f/g
-/h/i/j/k/l/m/n/o
-/p/q/r/s/t/u/v/w
-/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
-% 0x80
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-% 0xa0
-/space/exclamdown/cent/sterling/Euro/yen/Scaron/section
-/scaron/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
-/degree/plusminus/twosuperior/threesuperior/Zcaron/mu/paragraph/periodcentered
-/zcaron/onesuperior/ordmasculine/guillemotright/OE/oe/Ydieresis/questiondown
-% 0xc0
-/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-% 0xe0
-/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
-] /Encoding defineresource pop
-%%EndResource
-} ifelse
-
-/reencode-font { % fontname font encoding reencode-font font
- exch dup type dup /nametype eq exch /stringtype eq or { findfont } if
- dup length dict begin
- {
- 1 index /FID ne 2 index /UniqueID ne and { def } { pop pop } ifelse
- } forall
- /Encoding exch dup type /nametype eq { /Encoding findresource } if def
- dup /FontName exch def
- currentdict
- end
- definefont
-} bind def
-
-/vertical-font { % fontname font vertical-font font
- dup type dup /nametype eq exch /stringtype eq or { *findfont } if
- dup length 1 add dict begin {
- 1 index /FontName eq { pop 1 index def } {
- 1 index /FID ne 2 index /UniqueID ne and { def } { pop pop } ifelse
- } ifelse
- } forall /WMode 1 def currentdict end
- definefont
-} bind def
-
-%
-% fontname [font ...] compose-fontset font
-%
-% References:
-% [1] kanno@jn1jdz.ymt.prug.or.jp, ``jisfont.ps,''
-% in Japanesized Tgif(Tgif-3.0J-p17 JIS patch version), 7 1997.
-%
-/compose-fontset {
- 12 dict begin
- /FontType 0 def
- /FontMatrix matrix def
- /FontBBox { 0 0 0 0 } def
- /FMapType 3 def
- %/EscChar 255 def
- /FDepVector [
- 2 index {
- dup type dup /nametype eq exch /stringtype eq or { *findfont } if
- dup /WMode known {
- dup /WMode get /WMode exch def
- WMode 1 eq {
- [ 0 1 -1 0 0 .3 ] makefont
- } if
- } if
- } forall
- ] def
- /Encoding [ 0 1 4 index length 1 sub {} for ] def
- pop
- dup /FontName exch def
- currentdict
- end
- definefont
-} bind def
-
-/decode-mule-big5 { % R1 R2 1|2 decode-mule-big5 R1 R2
- 2 dict begin
- 3 1 roll
- /r2 exch def
- /r1 exch def
- /r2 r1 16#21 sub 94 mul r2 add 16#21 sub def
- 2 eq { /r2 r2 6280 add def } if
- /r1 r2 157 idiv 16#a1 add def
- /r2 r2 157 mod def
- /r2 r2 r2 16#3f lt { 16#40 } { 16#62 } ifelse add def
- r1 r2
- end
-} bind def
-/decode-mule-big5-l1 { % str idx decode-mule-big5-l1 str idx
- 2 copy get exch 1 add exch 2 index 2 index get
- 1 decode-mule-big5
- buffer size 4 -1 roll put /size size 1 add store
- buffer size 3 -1 roll put /size size 1 add store
-} bind def
-/decode-mule-big5-l2 { % str idx decode-mule-big5-l2 str idx
- 2 copy get exch 1 add exch 2 index 2 index get
- 2 decode-mule-big5
- buffer size 4 -1 roll put /size size 1 add store
- buffer size 3 -1 roll put /size size 1 add store
-} bind def
-/decode-gl { % str idx decode-gl str idx
- 2 copy get buffer size 3 -1 roll put
- /size size 1 add store
-} bind def
-/decode-gr { % str idx decode-gr str idx
- 2 copy get 16#80 add buffer size 3 -1 roll put
- /size size 1 add store
-} bind def
-/iso-2022-set [
- [ (\033\(B) {decode-gl} ] % iso-2022:ascii
- [ (\033,A) {decode-gr} ] % iso-2022:iso-8859-1,iso-latin1
- [ (\033,B) {decode-gr} ] % iso-2022:iso-8859-2,iso-latin2
-% [ (\033,C) {decode-gr} ] % iso-2022:iso-8859-3,iso-latin3
-% [ (\033,D) {decode-gr} ] % iso-2022:iso-8859-4,iso-latin4
-% [ (\033,F) {decode-gr} ] % iso-2022:iso-8859-7,iso-greek
-% [ (\033,G) {decode-gr} ] % iso-2022:iso-8859-6,iso-arabic
-% [ (\033,H) {decode-gr} ] % iso-2022:iso-8859-8,iso-hebrew
-% [ (\033,L) {decode-gr} ] % iso-2022:iso-8859-5,iso-cyrillic
- [ (\033,M) {decode-gr} ] % iso-2022:iso-8859-9,iso-latin5
-% [ (\033,T) {decode-gr} ] % iso-2022:iso-8859-11,iso-thai
-% [ (\033,V) {decode-gr} ] % iso-2022:iso-8859-10,iso-latin6
- [ (\033\(I) {decode-gl} ] % iso-2022:jis-x-0201-kana
- [ (\033\(J) {decode-gl} ] % iso-2022:jis-x-0201-roman
-% [ (\033\(T) {decode-gl} ] % iso-2022:gb-1988-roman
- [ (\033$@) {decode-gl} ] % iso-2022:jis-x-0208-1978
- [ [ (\033$A) (\033$\(A) ] {decode-gl} ] % iso-2022:gb-2312-1980
- [ [ (\033$B) (\033$\(B) (\033&@\033$B) ] {decode-gl} ] % iso-2022:jis-x-0208-1983&1990
- [ (\033$\(C) {decode-gl} ] % iso-2022:ks-x-1001-1992
- [ (\033$\(D) {decode-gl} ] % iso-2022:jis-x-0212-1990
- [ (\033$\(?) {decode-gl} ] % iso-2022:gbt-12345-1990,private-iso-gbt
- [ (\033$\(G) {decode-gl} ] % iso-2022:cns-11643-1992-p1
- [ (\033$\(H) {decode-gl} ] % iso-2022:cns-11643-1992-p2
- [ (\033$\(0) {decode-mule-big5-l1} ] % iso-2022:big5,mule-big5
- [ (\033$\(1) {decode-mule-big5-l2} ] % iso-2022:big5,mule-big5
-] def
-/iso-2022-translate { % str idx iso-2022-translate str idx
- 2 copy get 16#20 lt {
- iso-2022-set length 1 sub 0 1 3 -1 roll { % str idx j
- iso-2022-set 1 index get 0 get dup % str idx j ()|[] ()|[]
- dup type /stringtype eq { % str idx j () ()
- dup length 5 index 5 index 3 -1 roll 7 index length 7 index sub
- 2 copy lt { pop } { exch pop } ifelse
- getinterval eq % str idx j () true|false
- } { % str idx j [] []
- pop () false 3 -1 roll {
- dup 4 -1 roll pop 3 1 roll
- dup length 6 index 6 index 3 -1 roll 8 index length 8 index sub
- 2 copy lt { pop } { exch pop } ifelse
- getinterval eq or dup { exit } if % str idx j () true|false
- } forall
- } ifelse
- { exch /iso-2022-state exch store length 1 sub add exit } { pop } ifelse
- pop
- } for
- } if
-} bind def
-/iso-2022-show { % str iso-2022-show -
- 10 dict begin
- /iso-6429-state null def
- /iso-2022-state 0 def
- /iso-2022-current iso-2022-state def
- /buffer 65535 string def
- /size 0 def
- /width 0 def
- /BoldFont false def /Underscore false def /BackColor 1 def
- /foldline dup where { pop foldline } { false } ifelse def
- 0 { % idx {} loop
- dup 2 index length lt {
- iso-2022-translate
- iso-2022-state iso-2022-current ne {
- buffer size 8#377 put
- /size size 1 add store
- buffer size iso-2022-state put
- /size size 1 add store
- } {
- iso-6429-translate
- iso-6429-state null ne {
- iso-6429-set iso-6429-state get 1 get exec
- } {
- iso-2022-set iso-2022-current get 1 get exec
- } ifelse
- } ifelse
- } {
- exit
- } ifelse
- /iso-2022-current iso-2022-state store
- 1 add
- } loop
- pop pop
- iflush
- end
-} bind def
-/ichop { % required for some Adobe-official PostScript interpreters
- dup length dup 2 sub -2 0 { % str len len-2 -2 0 {} for
- 2 index 1 index get 8#377 eq % str len idx c(str idx get) 8#377 eq
- { exch pop } { pop exit } ifelse % str len|idx
- } for 0 exch getinterval % str'(str 0 len|idx getinterval)
-} bind def
-
-/iso-6429-set [
- [ (\t)
- { buffer 0 size getinterval ichop % ``ichop'' is not required for GS
- stringwidth pop ( ) stringwidth pop div round cvi width add
- 8 dup 3 1 roll mod sub {
- buffer size ( ) putinterval /size size 1 add store
- } repeat } bind
- ]
- [ (\f) { iflush margin 0 get margin 3 get moveto } bind ]
- [ [ (\033[m) (\033[0m) ]
- { iflush
- /BoldFont false textfont
- /Underscore false textfont
- 0 textcolor
- 1 backcolor
- } bind
- ] % All Off
- [ (\033[1m) { iflush /BoldFont true textfont } bind ]
- [ (\033[4m) { iflush /Underscore true textfont } bind ]
- [ (\033[22m) { iflush /BoldFont false textfont } bind ]
- [ (\033[24m) { iflush /Underscore false textfont } bind ]
- [ (\033[30m) { iflush 0 textcolor } bind ]
- [ (\033[31m) { iflush [ 1 0 0 ] textcolor } bind ]
- [ (\033[32m) { iflush [ 0 1 0 ] textcolor } bind ]
- [ (\033[33m) { iflush [ 1 1 0 ] textcolor } bind ]
- [ (\033[34m) { iflush [ 0 0 1 ] textcolor } bind ]
- [ (\033[35m) { iflush [ 1 0 1 ] textcolor } bind ]
- [ (\033[36m) { iflush [ 0 1 1 ] textcolor } bind ]
- [ (\033[37m) { iflush 1 textcolor } bind ]
- [ (\033[39m) { iflush 0 textcolor } bind ]
- [ (\033[40m) { iflush 0 backcolor } bind ]
- [ (\033[41m) { iflush [ 1 0 0 ] backcolor } bind ]
- [ (\033[42m) { iflush [ 0 1 0 ] backcolor } bind ]
- [ (\033[43m) { iflush [ 1 1 0 ] backcolor } bind ]
- [ (\033[44m) { iflush [ 0 0 1 ] backcolor } bind ]
- [ (\033[45m) { iflush [ 1 0 1 ] backcolor } bind ]
- [ (\033[46m) { iflush [ 0 1 1 ] backcolor } bind ]
- [ (\033[47m) { iflush 1 backcolor } bind ]
- [ (\033[49m) { iflush 1 backcolor } bind ]
-] def
-/iso-6429-translate { % str idx iso-6429-translate str idx
- /iso-6429-state null store
- 2 copy get 16#20 lt {
- iso-6429-set length 1 sub 0 1 3 -1 roll { % str idx j
- iso-6429-set 1 index get 0 get dup % str idx j ()|[] ()|[]
- dup type /stringtype eq { % str idx j () ()
- dup length 5 index 5 index 3 -1 roll 7 index length 7 index sub
- 2 copy lt { pop } { exch pop } ifelse
- getinterval eq % str idx j () true|false
- } { % str idx j [] []
- pop () false 3 -1 roll {
- dup 4 -1 roll pop 3 1 roll
- dup length 6 index 6 index 3 -1 roll 8 index length 8 index sub
- 2 copy lt { pop } { exch pop } ifelse
- getinterval eq or dup { exit } if % str idx j () true|false
- } forall
- } ifelse
- { exch /iso-6429-state exch store length 1 sub add exit } { pop } ifelse
- pop
- } for
- } if
-} bind def
-/show-attribute {
- BackColor dup type dup /integertype eq exch /realtype eq or {
- dup 1 eq { pop } {
- gsave setgray BoldFont { setboldfont } if textfill grestore
- } ifelse
- } {
- gsave cvx exec setrgbcolor BoldFont { setboldfont } if textfill grestore
- } ifelse
- Underscore {
- gsave .2 setlinewidth currentpoint fontsize .1 mul sub moveto
- BoldFont { setboldfont } if dup stringwidth pop 0 rlineto stroke grestore
- } if
- BoldFont {
- gsave setboldfont show currentpoint grestore moveto
- } {
- show
- } ifelse
-} bind def
-/cshow-attribute {
- pop currentpoint pop add pagesize 0 get margin 2 get sub lt {
- 1 string dup 0 4 -1 roll put show-attribute
- } {
- currentpoint exch pop fontsize sub round margin 3 get lt {
- gsave
- nextpage preparepage
- currentpoint matrix currentmatrix grestore setmatrix moveto
- } {
- origin 0 get currentpoint exch pop fontsize sub moveto
- } ifelse
- 1 string dup 0 4 -1 roll put show-attribute
- } ifelse
-} bind def
-/iflush {
- size 0 gt {
- buffer 0 size getinterval ichop % ``ichop'' is not required for GS
- dup stringwidth pop ( ) stringwidth pop div round cvi /width exch store
- foldline not {
- show-attribute
- } {
- dup stringwidth
- pop currentpoint pop add pagesize 0 get margin 2 get sub lt {
- show-attribute
- } {
- BoldFont { /BoldFont false store
- gsave setboldfont
- { cshow-attribute } exch cshow
- currentpoint grestore moveto
- } {
- { cshow-attribute } exch cshow
- } ifelse
- } ifelse
- } ifelse
- /size 0 store
- } if
-} bind def
-/textfont { % /BoldFont|/Underscore any textfont -
- store
-} bind def
-/textcolor {
- dup type dup /integertype eq exch /realtype eq or { setgray }
- { cvx exec setrgbcolor } ifelse
-} bind def
-/backcolor {
- /BackColor exch store
-} bind def
-/textfill {
- currentpoint fontsize .2 mul sub 2 index stringwidth pop fontsize
- 4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto
- closepath fill
-} bind def
-/setboldfont {
- currentfont /FontName get dup length string cvs (-Bold)
- exch dup length 2 index length add string
- dup dup 4 2 roll copy length 4 -1 roll putinterval cvn
- findfont [fontwidth 0 0 fontsize 0 0] makefont setfont
-} bind def
-/iso-6429-show { % str iso-6429-show -
- 8 dict begin
- /iso-6429-state null def
- /buffer 65535 string def
- /size 0 def
- /width 0 def
- /BoldFont false def /Underscore false def /BackColor 1 def
- /foldline dup where { pop foldline } { false } ifelse def
- 0 { % idx {} loop
- dup 2 index length lt {
- iso-6429-translate
- iso-6429-state null ne {
- iso-6429-set iso-6429-state get 1 get exec
- } {
- 2 copy get buffer size 3 -1 roll put
- /size size 1 add store
- } ifelse
- } {
- exit
- } ifelse
- 1 add
- } loop
- pop pop
- iflush
- end
-} bind def
-/shown-init {
- /inshow exch def
- /mediasize [ 595 842 ] def
- /mediamargin [ 30 30 30 30 ] def
- /pagesize [
- mediasize cvx exec mediamargin cvx exec
- 3 -1 roll add 3 1 roll add 3 1 roll sub 3 1 roll sub exch
- ] def
- /margin [ 20 28 20 28 ] def
- /division [ 1 1 ] def
- /landscape false def
- /landscale false def
- /evenscale true def
- /pagescale false def
- pagescale not {
- /pagesize [
- pagesize 0 get division 0 get div pagesize 1 get division 1 get div
- ] store
- } if
- landscape {
- /pagesize [ pagesize cvx exec exch ] store
- /margin [ margin cvx exec 4 1 roll ] store
- } if
- /verttext dup where { pop verttext } { false } ifelse def
- /foldline true def
- /header true def /footer true def /border true def
- /origin [ margin 0 get pagesize 1 get margin 1 get sub fontsize sub ] def
- /position [ 0 0 ] def
- /preparepage { initmatrix
- landscape landscale xor not {
- mediasize cvx exec exch mediamargin 0 get mediamargin 2 get add sub
- division 0 get div position 0 get mul mediamargin 0 get add
- exch dup mediamargin 1 get mediamargin 3 get add sub
- division 1 get div position 1 get 1 add mul sub mediamargin 1 get sub
- translate
- pagescale { landscale not { 1 } { pagesize cvx exec div } ifelse
- division 1 get div evenscale { dup } {
- landscale not { 1 } { pagesize cvx exec exch div } ifelse
- division 0 get div exch
- } ifelse scale
- } if
- } {
- verttext {
- 180 rotate mediasize { neg } forall translate
- } if
- mediasize cvx exec exch mediamargin 0 get mediamargin 2 get add sub
- division 0 get div position 0 get mul mediamargin 0 get add
- exch mediamargin 1 get mediamargin 3 get add sub
- division 1 get div position 1 get mul mediamargin 3 get add
- translate
- pagescale { landscale not { 1 } { pagesize cvx exec div } ifelse
- division 0 get div evenscale { dup } {
- landscale not { 1 } { pagesize cvx exec exch div } ifelse
- division 1 get div
- } ifelse scale
- } if
- 90 rotate 0 pagesize 1 get neg translate
- } ifelse
- origin cvx exec moveto
- } bind def
- /gssafe false def % GS-safe but not always perfect at decoratepage
- /nextpage { gssafe { /decorated false store } { decoratepage } ifelse
- position landscape landscale or not { 0 } { 1 } ifelse 2 copy get 1 add
- dup 4 1 roll put
- division landscape landscale or not { 0 } { 1 } ifelse get eq {
- position landscape landscale or not { 0 } { 1 } ifelse 0 put
- position landscape landscale or not { 1 } { 0 } ifelse 2 copy get 1 add
- dup 4 1 roll put
- division landscape landscale or not { 1 } { 0 } ifelse get eq {
- position landscape landscale or not { 1 } { 0 } ifelse 0 put
- showpage
- } if
- } if
- } bind def
- /lastpage { gssafe {} { decoratepage } ifelse showpage } bind def
- /nextline {
- currentpoint exch pop fontsize sub round margin 3 get lt {
- nextpage preparepage /empty true store
- } {
- origin 0 get currentpoint exch pop fontsize sub moveto
- } ifelse
- } bind def
- %
- /page 0 def
- /infofont /Helvetica findfont [fontwidth 0 0 fontsize 0 0] makefont def
- /head (gs-cjk project: iso-2022-7bit - Emacs/Mule editable PostScript file) def
- /showheader {
- header {
- gsave
- verttext not {
- margin 0 get pagesize 1 get margin 1 get sub fontsize add moveto
- } {
- margin 0 get fontsize sub margin 3 get translate 90 rotate
- fontsize fontwidth div fontwidth fontsize div scale 0 0 moveto
- } ifelse
- 1 dict dup /foldline false put begin
- infofont setfont head inshow
- end
- grestore
- } if
- } bind def
- /foot 64 string def
- /showfooter {
- /page page 1 add store
- footer {
- gsave
- verttext not {
- pagesize 0 get margin 2 get sub margin 3 get fontsize 2 mul sub moveto
- } {
- pagesize 0 get margin 2 get sub fontsize 2 mul add
- pagesize 1 get margin 1 get sub translate 90 rotate
- fontsize fontwidth div fontwidth fontsize div scale 0 0 moveto
- } ifelse
- 1 dict dup /foldline false put begin
- infofont setfont page foot cvs dup stringwidth pop neg 0 rmoveto inshow
- end
- grestore
- } if
- } bind def
- /bord {
- pagesize cvx exec margin { fontsize 2 div sub } forall
- 3 1 roll exch 5 -1 roll exch sub exch 5 -1 roll exch sub exch
- 4 copy 3 1 roll exch 8 -2 roll moveto lineto 4 2 roll lineto lineto
- closepath
- } bind def
- /showborder {
- border {
- gsave .25 setlinewidth bord stroke grestore
- } if
- } bind def
- /decoratepage { showheader showfooter showborder } bind def
- %
- preparepage /empty true def
- gssafe { /decorated false def } if
-} bind def
-/shown {
- gssafe { decorated not { decoratepage /decorated true store } if } if
- inshow /empty false store nextline
-} bind def
-/shown-close { empty not { lastpage } if } bind def
-/shown-readlines {
- /shown-buffer 65535 string def
- shown-init
- {
- currentfile shown-buffer readline not { pop exit } if
- shown
- } loop
- shown-close
-} bind def
-/shown-readhexstrings {
- /shown-buffer 65535 string def
- /shown-size 0 def
- /previous-char (\000) def
- shown-init
- {
- currentfile 1 string readhexstring not { pop exit } if
- dup (\n) ne {
- dup (\r) ne {
- shown-buffer shown-size 2 index putinterval
- /shown-size shown-size 1 add store
- } { % mac
- shown-buffer 0 shown-size getinterval shown
- /shown-size 0 store
- } ifelse
- } { % unix
- previous-char (\r) ne {
- shown-buffer 0 shown-size getinterval shown
- } { % dos
- } ifelse
- /shown-size 0 store
- } ifelse
- previous-char 0 3 -1 roll putinterval
- } loop
- shown-close
-} bind def
-
-/fitfont { [ .8335276 0 0 .8335276 0 .1 ] makefont } bind def
-
-/verttext false unknowndef
-/iso-2022-fontset [
- /Courier findfont fitfont % iso-2022:ascii
- /Courier-Latin1 /Courier /ISOLatin1Encoding reencode-font fitfont % iso-2022:iso-8859-1,iso-latin1
- /Courier-Latin2 /Courier /ISOLatin2Encoding reencode-font fitfont % iso-2022:iso-8859-2,iso-latin2
-% /CourierNewLatin3 findfont fitfont % iso-2022:iso-8859-3,iso-latin3
-% /CourierNewLatin4 findfont fitfont % iso-2022:iso-8859-4,iso-latin4
-% /CourierNewGreek findfont fitfont % iso-2022:iso-8859-7,iso-greek
-% /CourierNewArabic findfont fitfont % iso-2022:iso-8859-6,iso-arabic
-% /CourierNewHebrew findfont fitfont % iso-2022:iso-8859-8,iso-hebrew
-% /Courier-Cyrillic /CourierNewCyrillic /ISOCyrillicEncoding reencode-font fitfont % iso-2022:iso-8859-5,iso-cyrillic
- /Courier-Latin5 /Courier /ISOLatin5Encoding reencode-font fitfont % iso-2022:iso-8859-9,iso-latin5
-% /CourierNewThai findfont fitfont % iso-2022:iso-8859-11,iso-thai
-% /CourierNewLatin6 findfont fitfont % iso-2022:iso-8859-10,iso-latin6
- verttext not {
- /Ryumin-Light.Katakana % iso-2022:jis-x-0201-kana
- /Ryumin-Light.Roman % iso-2022:jis-x-0201-roman
-% /STSong-Light-GBK-EUC-H % iso-2022:gb-1988-roman
- /Ryumin-Light-78-H % iso-2022:jis-x-0208-1978
- /STSong-Light-GB-H % iso-2022:gb-2312-1980
- /Ryumin-Light-H % iso-2022:jis-x-0208-1983&1990
- /HYSMyeongJo-Medium-KSC-H % iso-2022:ks-x-1001-1992
- /HeiseiMin-W3H-Hojo-H % iso-2022:jis-x-0212-1990
- /STSong-Light-GBT-H % iso-2022:gbt-12345-1990,private-iso-gbt
- /MSung-Light-CNS1-H % iso-2022:cns-11643-1992-p1
- /MSung-Light-CNS2-H % iso-2022:cns-11643-1992-p2
- /MSung-Light-ETen-B5-H % iso-2022:big5,mule-big5
- /MSung-Light-ETen-B5-H % iso-2022:big5,mule-big5
- } {
- /Ryumin-Light.Katakana-V /Ryumin-Light.Katakana vertical-font % iso-2022:jis-x-0201-kana
- /Ryumin-Light.Roman-V /Ryumin-Light.Roman vertical-font % iso-2022:jis-x-0201-roman
-% /STSong-Light-GBK-EUC-V % iso-2022:gb-1988-roman
- /Ryumin-Light-78-V % iso-2022:jis-x-0208-1978
- /STSong-Light-GB-V % iso-2022:gb-2312-1980
- /Ryumin-Light-V % iso-2022:jis-x-0208-1983&1990
- /HYSMyeongJo-Medium-KSC-V % iso-2022:ks-x-1001-1992
- /HeiseiMin-W3H-Hojo-V % iso-2022:jis-x-0212-1990
- /STSong-Light-GBT-V % iso-2022:gbt-12345-1990,private-iso-gbt
- /MSung-Light-CNS1-V % iso-2022:cns-11643-1992-p1
- /MSung-Light-CNS2-V % iso-2022:cns-11643-1992-p2
- /MSung-Light-ETen-B5-V % iso-2022:big5,mule-big5
- /MSung-Light-ETen-B5-V % iso-2022:big5,mule-big5
- } ifelse
-] def
-/iso-2022-bold-fontset [
- /Courier-Bold findfont fitfont % iso-2022:ascii
- /Courier-Bold-Latin1 /Courier-Bold /ISOLatin1Encoding reencode-font fitfont % iso-2022:iso-8859-1,iso-latin1
- /Courier-Bold-Latin2 /Courier-Bold /ISOLatin2Encoding reencode-font fitfont % iso-2022:iso-8859-2,iso-latin2
-% /CourierNewLatin3-Bold findfont fitfont % iso-2022:iso-8859-3,iso-latin3
-% /CourierNewLatin4-Bold findfont fitfont % iso-2022:iso-8859-4,iso-latin4
-% /CourierNewGreek-Bold findfont fitfont % iso-2022:iso-8859-7,iso-greek
-% /CourierNewArabic-Bold findfont fitfont % iso-2022:iso-8859-6,iso-arabic
-% /CourierNewHebrew-Bold findfont fitfont % iso-2022:iso-8859-8,iso-hebrew
-% /Courier-Bold-Cyrillic /CourierNewCyrillic-Bold /ISOCyrillicEncoding reencode-font fitfont % iso-2022:iso-8859-5,iso-cyrillic
- /Courier-Bold-Latin5 /Courier-Bold /ISOLatin5Encoding reencode-font fitfont % iso-2022:iso-8859-9,iso-latin5
-% /CourierNewThai-Bold findfont fitfont % iso-2022:iso-8859-11,iso-thai
-% /CourierNewLatin6-Bold findfont fitfont % iso-2022:iso-8859-10,iso-latin6
- verttext not {
- /GothicBBB-Medium.Katakana % iso-2022:jis-x-0201-kana
- /GothicBBB-Medium.Roman % iso-2022:jis-x-0201-roman
-% /STHeiti-Regular-GBK-EUC-H % iso-2022:gb-1988-roman
- /GothicBBB-Medium-78-H % iso-2022:jis-x-0208-1978
- /STHeiti-Regular-GB-H % iso-2022:gb-2312-1980
- /GothicBBB-Medium-H % iso-2022:jis-x-0208-1983&1990
- /HYGoThic-Medium-KSC-H % iso-2022:ks-x-1001-1992
- /HeiseiKakuGo-W5H-Hojo-H % iso-2022:jis-x-0212-1990
- /STHeiti-Regular-GBT-H % iso-2022:gbt-12345-1990,private-iso-gbt
- /MHei-Medium-CNS1-H % iso-2022:cns-11643-1992-p1
- /MHei-Medium-CNS2-H % iso-2022:cns-11643-1992-p2
- /MHei-Medium-ETen-B5-H % iso-2022:big5,mule-big5
- /MHei-Medium-ETen-B5-H % iso-2022:big5,mule-big5
- } {
- /GothicBBB-Medium.Katakana-V /GothicBBB-Medium.Katakana vertical-font % iso-2022:jis-x-0201-kana
- /GothicBBB-Medium.Roman-V /GothicBBB-Medium.Roman vertical-font % iso-2022:jis-x-0201-roman
-% /STHeiti-Regular-GBK-EUC-V % iso-2022:gb-1988-roman
- /GothicBBB-Medium-78-V % iso-2022:jis-x-0208-1978
- /STHeiti-Regular-GB-V % iso-2022:gb-2312-1980
- /GothicBBB-Medium-V % iso-2022:jis-x-0208-1983&1990
- /HYGoThic-Medium-KSC-V % iso-2022:ks-x-1001-1992
- /HeiseiKakuGo-W5H-Hojo-V % iso-2022:jis-x-0212-1990
- /STHeiti-Regular-GBT-V % iso-2022:gbt-12345-1990,private-iso-gbt
- /MHei-Medium-CNS1-V % iso-2022:cns-11643-1992-p1
- /MHei-Medium-CNS2-V % iso-2022:cns-11643-1992-p2
- /MHei-Medium-ETen-B5-V % iso-2022:big5,mule-big5
- /MHei-Medium-ETen-B5-V % iso-2022:big5,mule-big5
- } ifelse
-] def
-/fontset-iso-2022 iso-2022-fontset compose-fontset pop
-/fontset-iso-2022-Bold iso-2022-bold-fontset compose-fontset pop
-%%EndProlog
-/fontsize 11 def /fontwidth 11 def
-/fontset-iso-2022 findfont [fontwidth 0 0 fontsize 0 0] makefont setfont
-{ iso-2022-show } shown-readlines
-A list of ways to say hello in various languages.
-
-Czech (,Bh(Besky) Dobr,B}(B den
-Danish (Dansk) Hej, Goddag
-English Hello
-Esperanto Saluton
-Estonian Tere, Tervist
-PostScript (Hello) =
-Finnish (Suomi) Hei
-French (Fran,Ag(Bais) Bonjour, Salut
-German (Deutsch Nord) Guten Tag
-
-Italiano Ciao, Buon giorno
-
-Maltese Ciao
-Nederlands, Vlaams Hallo, Dag
-Norwegian (Norsk) Hei, God dag
-Polish Dzie,Bq(B dobry, Hej
-
-Slovak Dobr,B}(B de,Br(B
-Spanish (Espa,Aq(Bol) ,A!(BHola!
-Swedish (Svenska) Hej, Goddag
-
-Turkish (T,M|(Brk,Mg(Be) Merhaba
-
-Chinese ($(GDcEF$(0!.$(GiGk#$(0!.Vn^V)t(B) $(0<@)p$(G!$I#Go!$$(0'*)y!$(B
-Chinese ($AVPND#,::So#,<rLeWV(B) $ADz:C!#Dc:C!#(B
-Japanese ($BF|K\8l!"4A;z!"J?2>L>!"JR2>L>(B) $B$3$s$K$A$O!#(I:]FAJ(B.
-Korean ($(CGQ1[#,ySm.(B) $(C>H3gGO=J4O1n#.>H3gGO<<?d#.(B
-
-Difference among chinese characters in GB, JIS, KSC, BIG5:
- GB -- $AT*Fx(B $A?*7"(B
- JIS -- $B855$(B $B3+H/(B
- KSC -- $(Cj*Q((B $(CKR[!(B
- BIG5 -- $(0&x86(B $(0DeBv(B
-
-Just for a test of JISX0212: $BqV$(DiQ(B (the second character is of JISX0212)
-
-Just for a test of JISX0201: (I123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\&]_^(B
-
-Difference between JISX0208.1978 and 1983:
-
- \x1b$@ $@032)3B3I3v4C4R6F7[979\<I?YA(D[EWEnEsFvGhI0KjKyLyMZO6(B
- \x1b$B $B032)3B3I3v4C4R6F7[979\<I?YA(D[EWEnEsFvGhI0KjKyLyMZO6(B
-
-Difference between GB2312.1980 and GBT12345.1990
-
- \x1b$A $AMrLuP4;-8v:s<8;z@oTS@kRuQt4SQyJ&8IO0?*Fx5g9X6T;6<&Gl(B
- $A1_9};9=xT6Ub;*0.HHME4&RURdRZSJ(B
- $AJiN*3$J1S&6+35K-8xAeR{CE<dNJM7BrBt(B
- \x1b$(? $(?MrLuP4;-8v:s<8;z@oTS@kRuQt4SQyJ&8IO0?*Fx5g9X6T;6<&Gl(B
- $(?1_9};9=xT6Ub;*0.HHME4&RURdRZSJ(B
- $(?JiN*3$J1S&6+35K-8xAeR{CE<dNJM7BrBt(B
-
-Color names:
- BLACK $(0E**d(B $A:ZI+(B $B9u?'(B $(C0KA$;v(B 
- RED $(04y*d(B $A:lI+(B $B@V?'(B $(C;!0-;v(B 
- GREEN $(0L;*d(B $ABLI+(B $BNP?'(B $(C3k6{;v(B 
- YELLOW $(0E(Yn*d(B $A;FI+(B $B2+?'(B $(CH2;v(B 
- BLUE $(0Y1*d(B $A@6I+(B $B@D?'(B $(CFD6{;v(B 
- MAGENTA $(0C<*d(B $AWOI+(B $B;g?'(B $(C:86s;v(B 
- CYAN $(0LJL;*d(B $A4dBLI+(B $B@DNP?'(B $(CC;7O;v(B 
- WHITE $(0(v*d(B $A0WI+(B $BGr?'(B $(CGO>a;v(B 
diff --git a/Master/xemtex/doc/ghostscript/examples/colorcir.ps b/Master/xemtex/doc/ghostscript/examples/colorcir.ps
deleted file mode 100644
index cf4a49e537c..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/colorcir.ps
+++ /dev/null
@@ -1,125 +0,0 @@
-%!
-/colorcirsave save def % prevent left over effects
-
-gsave
-/Times-Roman findfont 24 scalefont setfont
-72 72 translate 0 0 moveto 1 0 0 setrgbcolor (Red) show
-72 0 translate 0 0 moveto 0 1 0 setrgbcolor (Green) show
-72 0 translate 0 0 moveto 0 0 1 setrgbcolor (Blue) show
-72 0 translate 0 0 moveto 1 1 0 setrgbcolor (Yellow) show
-72 0 translate 0 0 moveto 1 0 1 setrgbcolor (Pink) show
-72 0 translate 0 0 moveto 0 1 1 setrgbcolor (Cyan) show
-72 0 translate 0 0 moveto 0.9 0.9 0.9 setrgbcolor ('White') show
-grestore
-
-0.0 setlinewidth
-
-/length 0.1 def
-/width 0.02 def
-/hsvcircle {
-gsave
- /h 0.0 def
- 0 4 360 {
- pop
- gsave
- 0.5 0.0 translate
-
- newpath
- 0.0 0.0 moveto
- length 0.0 lineto
- length width lineto
- 0.0 width lineto
- closepath
- h 1.0 1.0 sethsbcolor
- fill
-
- %newpath
- %0.0 0.0 moveto
- %length 0.0 lineto
- %length width lineto
- %0.0 width lineto
- %closepath
- %0.0 setgray
- %stroke
-
- grestore
- /h h 4 360 div add def
- 4 rotate
- } for
-grestore
-} def
-
-/graycircle {
-gsave
- /h -1.0 def
- 0 4 360 {
- pop
- gsave
- 0.5 0.0 translate
-
- newpath
- 0.0 0.0 moveto
- length 0.0 lineto
- length width lineto
- 0.0 width lineto
- closepath
-
- h abs setgray
- fill
-
- %newpath
- %0.0 0.0 moveto
- %length 0.0 lineto
- %length width lineto
- %0.0 width lineto
- %closepath
- %0.0 setgray
- %stroke
- grestore
-
- /h h 8 360 div add def
- 4 rotate
- } for
-grestore
-} def
-
-0.0 setlinewidth
-0.0 setgray
-300 400 translate
-500 500 scale
-
-30 rotate
-1.0 0.7 scale
--30 rotate
-
-hsvcircle
-0.8 0.8 scale
-graycircle
-0.8 0.8 scale
-hsvcircle
-0.8 0.8 scale
-graycircle
-0.8 0.8 scale
-hsvcircle
-0.8 0.8 scale
-graycircle
-0.8 0.8 scale
-hsvcircle
-0.8 0.8 scale
-graycircle
-0.8 0.8 scale
-hsvcircle
-0.8 0.8 scale
-graycircle
-0.8 0.8 scale
-hsvcircle
-0.8 0.8 scale
-graycircle
-0.8 0.8 scale
-hsvcircle
-0.8 0.8 scale
-graycircle
-
-showpage
-clear cleardictstack
-colorcirsave restore
diff --git a/Master/xemtex/doc/ghostscript/examples/doretree.ps b/Master/xemtex/doc/ghostscript/examples/doretree.ps
deleted file mode 100644
index 23157fabdd8..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/doretree.ps
+++ /dev/null
@@ -1,2485 +0,0 @@
-%!PS-Adobe-1.0
-%%Title: dore.ps
-%%Creator: Dore' Postscript Device Driver
-%%For: Jesse Don Hickson III
-%%CreationDate: Sat Apr 11 18:26:44 1998
-%%Pages: (atend)
-%%DocumentFonts:
-%%BoundingBox: 0 0 612 612
-%%EndComments
-/doretreesave save def % prevent left over effects
-% The author, Jesse Don Hickson III, hereby places this file into
-% the public domain on this day 23 Feb 2000.
-/Dore 20 dict def
-Dore begin
-/Prgb { moveto -1 -1 rmoveto 2 0 rlineto
- 0 2 rlineto -2 0 rlineto
- closepath setrgbcolor fill } def
-/Lrgb { moveto lineto setrgbcolor stroke } def
-/Trgb { moveto lineto lineto closepath
- setrgbcolor fill } def
-/BGrgb { dup 3 -1 roll dup 5 -1 roll dup
- 7 -1 roll dup 3 -1 roll moveto
- 6 -1 roll lineto exch 4 -1 roll
- lineto lineto closepath
- setrgbcolor
- fill } def
-/Pgray { moveto -1 -1 rmoveto 2 0 rlineto
- 0 2 rlineto -2 0 rlineto
- closepath setgray fill } def
-/Lgray { moveto lineto setgray stroke } def
-/Tgray { moveto lineto lineto closepath
- setgray fill } def
-/BGgray { dup 3 -1 roll dup 5 -1 roll dup
- 7 -1 roll dup 3 -1 roll moveto
- 6 -1 roll lineto exch 4 -1 roll
- lineto lineto closepath setgray
- fill } def
-/BDR { dup 3 -1 roll dup 5 -1 roll dup
- 7 -1 roll dup 3 -1 roll moveto
- 6 -1 roll lineto exch 4 -1 roll
- lineto lineto closepath
- setgray 40 setlinewidth
- stroke } def
-%%EndProlog
-%%Page: 1 1
-
-gsave
-0.400000 0.400000 0.400000 0 0 612 612 BGrgb
-
-0.25028 0.20022 0.15028 66 73 545 73 478 350 Trgb
-0.25028 0.20022 0.15028 66 73 478 350 133 350 Trgb
-0.312849 0.250279 0.312849 69 61 542 61 545 73 Trgb
-0.312849 0.250279 0.312849 69 61 545 73 66 73 Trgb
-
-0.000000 0.699172 0.209751 308 254 305 260 302 254 Trgb
-0.000000 0.699172 0.209751 305 260 299 260 302 254 Trgb
-0.000000 0.699172 0.209751 299 260 296 255 302 254 Trgb
-0.000000 0.699172 0.209751 296 255 299 249 302 254 Trgb
-0.000000 0.699172 0.209751 299 249 305 249 302 254 Trgb
-0.000000 0.699172 0.209751 305 249 308 254 302 254 Trgb
-0.000000 0.000000 0.000000 303 225 299 249 296 255 Trgb
-0.000000 0.000000 0.000000 303 225 296 255 300 230 Trgb
-0.000000 0.006800 0.002040 308 225 305 249 299 249 Trgb
-0.000000 0.003400 0.001020 308 225 299 249 303 225 Trgb
-0.000000 0.025554 0.007666 311 230 308 254 305 249 Trgb
-0.000000 0.017877 0.005363 311 230 305 249 308 225 Trgb
-0.000000 0.698504 0.209551 318 220 315 223 313 218 Trgb
-0.000000 0.698504 0.209551 315 223 310 222 313 218 Trgb
-0.000000 0.698504 0.209551 310 222 309 217 313 218 Trgb
-0.000000 0.698504 0.209551 309 217 312 214 313 218 Trgb
-0.000000 0.698504 0.209551 312 214 317 215 313 218 Trgb
-0.000000 0.698504 0.209551 317 215 318 220 313 218 Trgb
-0.000000 0.039441 0.011832 303 258 315 223 318 220 Trgb
-0.000000 0.039755 0.011926 303 258 318 220 306 256 Trgb
-0.000000 0.013042 0.003913 299 257 310 222 315 223 Trgb
-0.000000 0.026084 0.007825 299 257 315 223 303 258 Trgb
-0.000000 0.000000 0.000000 298 253 309 217 310 222 Trgb
-0.000000 0.000000 0.000000 298 253 310 222 299 257 Trgb
-0.000000 0.696509 0.208953 351 168 348 168 348 166 Trgb
-0.000000 0.696509 0.208953 348 168 346 166 348 166 Trgb
-0.000000 0.696509 0.208953 346 166 345 164 348 166 Trgb
-0.000000 0.696509 0.208953 345 164 348 164 348 166 Trgb
-0.000000 0.696509 0.208953 348 164 351 166 348 166 Trgb
-0.000000 0.696509 0.208953 351 166 351 168 348 166 Trgb
-0.000000 0.059893 0.017968 314 220 348 168 351 168 Trgb
-0.000000 0.060927 0.018278 314 220 351 168 316 221 Trgb
-0.000000 0.019620 0.005886 311 218 346 166 348 168 Trgb
-0.000000 0.039239 0.011772 311 218 348 168 314 220 Trgb
-0.000000 0.000000 0.000000 311 216 345 164 346 166 Trgb
-0.000000 0.000000 0.000000 311 216 346 166 311 218 Trgb
-0.000000 0.000000 0.000000 350 168 349 168 348 166 Trgb
-0.000000 0.000000 0.000000 349 168 347 166 348 166 Trgb
-0.000000 0.000000 0.000000 347 166 346 164 348 166 Trgb
-0.000000 0.000000 0.000000 346 164 347 164 348 166 Trgb
-0.000000 0.000000 0.000000 347 164 349 166 348 166 Trgb
-0.000000 0.000000 0.000000 349 166 350 168 348 166 Trgb
-0.000000 0.238723 0.071617 349 166 385 141 386 143 Trgb
-0.000000 0.241460 0.072438 349 166 386 143 350 168 Trgb
-0.000000 0.078662 0.023599 347 164 384 140 385 141 Trgb
-0.000000 0.157324 0.047197 347 164 385 141 349 166 Trgb
-0.000000 0.000000 0.000000 346 164 383 140 384 140 Trgb
-0.000000 0.000000 0.000000 346 164 384 140 347 164 Trgb
-0.340732 0.248642 0.117875 397 153 395 142 402 143 Trgb
-0.278657 0.203344 0.096400 395 127 402 143 395 142 Trgb
-0.247789 0.180819 0.085722 395 142 386 130 395 127 Trgb
-0.119439 0.087158 0.041319 386 130 377 126 395 127 Trgb
-0.106393 0.077638 0.036806 376 140 383 156 371 151 Trgb
-0.318775 0.232620 0.110279 395 142 397 153 383 156 Trgb
-0.234743 0.171299 0.081209 383 156 376 140 395 142 Trgb
-0.225832 0.164797 0.078126 386 130 395 142 376 140 Trgb
-0.033948 0.024773 0.011744 366 140 376 140 371 151 Trgb
-0.000000 0.000000 0.000000 372 130 377 126 366 140 Trgb
-0.033948 0.024773 0.011744 376 140 366 140 377 126 Trgb
-0.097482 0.071136 0.033724 377 126 386 130 376 140 Trgb
-0.072446 0.052866 0.025062 383 156 373 156 371 151 Trgb
-0.228924 0.167052 0.079195 397 153 391 158 383 156 Trgb
-0.110944 0.080959 0.038381 373 156 383 156 391 158 Trgb
-0.000000 0.699929 0.209979 390 172 391 170 391 172 Trgb
-0.000000 0.699929 0.209979 391 170 392 170 391 172 Trgb
-0.000000 0.699929 0.209979 392 170 393 172 391 172 Trgb
-0.000000 0.699929 0.209979 393 172 392 174 391 172 Trgb
-0.000000 0.699929 0.209979 392 174 391 174 391 172 Trgb
-0.000000 0.699929 0.209979 391 174 390 172 391 172 Trgb
-0.000000 0.004526 0.001358 348 164 391 170 390 172 Trgb
-0.000000 0.006998 0.002099 348 164 390 172 347 166 Trgb
-0.000000 0.000685 0.000205 349 164 392 170 391 170 Trgb
-0.000000 0.001370 0.000411 349 164 391 170 348 164 Trgb
-0.000000 0.008785 0.002635 347 166 390 172 391 174 Trgb
-0.000000 0.008100 0.002430 347 166 391 174 347 168 Trgb
-0.315444 0.255254 0.114140 397 175 404 160 408 174 Trgb
-0.160986 0.130268 0.058251 383 174 386 160 397 175 Trgb
-0.207378 0.167808 0.075037 404 160 397 175 386 160 Trgb
-0.095933 0.077628 0.034712 386 160 393 153 404 160 Trgb
-0.267978 0.216844 0.096964 404 160 409 172 408 174 Trgb
-0.330957 0.267806 0.119752 402 187 397 175 408 174 Trgb
-0.176499 0.142820 0.063864 384 186 383 174 397 175 Trgb
-0.238403 0.192912 0.086263 397 175 402 187 384 186 Trgb
-0.137926 0.111608 0.049907 390 190 384 186 402 187 Trgb
-0.049541 0.040088 0.017926 386 160 383 174 374 172 Trgb
-0.015977 0.012928 0.005781 374 172 381 157 386 160 Trgb
-0.015977 0.012928 0.005781 393 153 386 160 381 157 Trgb
-0.283490 0.229397 0.102577 409 172 402 187 408 174 Trgb
-0.065053 0.052640 0.023539 383 174 384 186 374 172 Trgb
-0.031489 0.025481 0.011394 379 183 374 172 384 186 Trgb
-0.042458 0.034357 0.015363 384 186 390 190 379 183 Trgb
-0.000000 0.697723 0.209317 341 150 344 149 343 152 Trgb
-0.000000 0.697723 0.209317 344 149 346 151 343 152 Trgb
-0.000000 0.697723 0.209317 346 151 345 153 343 152 Trgb
-0.000000 0.697723 0.209317 345 153 343 154 343 152 Trgb
-0.000000 0.697723 0.209317 343 154 341 152 343 152 Trgb
-0.000000 0.697723 0.209317 341 152 341 150 343 152 Trgb
-0.000000 0.049494 0.014848 350 168 345 153 346 151 Trgb
-0.000000 0.044068 0.013220 350 168 346 151 350 165 Trgb
-0.000000 0.029160 0.008748 348 168 343 154 345 153 Trgb
-0.000000 0.042040 0.012612 348 168 345 153 350 168 Trgb
-0.000000 0.005426 0.001628 346 167 341 152 343 154 Trgb
-0.000000 0.010853 0.003256 346 167 343 154 348 168 Trgb
-0.041998 0.199607 0.048321 336 144 348 143 342 148 Trgb
-0.000000 0.000000 0.000000 334 144 343 140 336 144 Trgb
-0.020666 0.098222 0.023778 348 143 336 144 343 140 Trgb
-0.028561 0.135744 0.032861 343 140 351 143 348 143 Trgb
-0.080827 0.384157 0.092997 348 143 349 154 342 148 Trgb
-0.101740 0.483551 0.117058 356 151 352 159 349 154 Trgb
-0.088824 0.422164 0.102198 349 154 348 143 356 151 Trgb
-0.057889 0.275137 0.066605 351 143 356 151 348 143 Trgb
-0.030833 0.146542 0.035475 337 155 336 144 342 148 Trgb
-0.000000 0.000000 0.000000 331 153 334 144 336 144 Trgb
-0.009501 0.045158 0.010932 336 144 337 155 331 153 Trgb
-0.009501 0.045158 0.010932 335 161 331 153 337 155 Trgb
-0.069662 0.331092 0.080151 349 154 337 155 342 148 Trgb
-0.090575 0.430486 0.104212 352 159 344 163 349 154 Trgb
-0.066494 0.316036 0.076506 337 155 349 154 344 163 Trgb
-0.027665 0.131486 0.031830 344 163 335 161 337 155 Trgb
-0.000000 0.699775 0.209933 370 210 368 207 370 207 Trgb
-0.000000 0.699775 0.209933 368 207 369 204 370 207 Trgb
-0.000000 0.699775 0.209933 369 204 370 203 370 207 Trgb
-0.000000 0.699775 0.209933 370 203 372 206 370 207 Trgb
-0.000000 0.699775 0.209933 372 206 372 209 370 207 Trgb
-0.000000 0.699775 0.209933 372 209 370 210 370 207 Trgb
-0.000000 0.011674 0.003502 312 219 368 207 370 210 Trgb
-0.000000 0.014707 0.004412 312 219 370 210 313 222 Trgb
-0.000000 0.002881 0.000864 312 216 369 204 368 207 Trgb
-0.000000 0.005761 0.001728 312 216 368 207 312 219 Trgb
-0.000000 0.014859 0.004458 313 222 370 210 372 209 Trgb
-0.000000 0.011978 0.003594 313 222 372 209 315 221 Trgb
-0.000000 0.000000 0.000000 369 208 369 209 370 207 Trgb
-0.000000 0.000000 0.000000 369 209 369 207 370 207 Trgb
-0.000000 0.000000 0.000000 369 207 371 205 370 207 Trgb
-0.000000 0.000000 0.000000 371 205 372 205 370 207 Trgb
-0.000000 0.000000 0.000000 372 205 371 206 370 207 Trgb
-0.000000 0.000000 0.000000 371 206 369 208 370 207 Trgb
-0.000000 0.033825 0.010148 371 206 410 235 409 237 Trgb
-0.000000 0.027366 0.008210 371 206 409 237 369 208 Trgb
-0.000000 0.026347 0.007904 372 205 411 234 410 235 Trgb
-0.000000 0.033316 0.009995 372 205 410 235 371 206 Trgb
-0.000000 0.013938 0.004181 369 208 409 237 408 237 Trgb
-0.000000 0.006969 0.002091 369 208 408 237 369 209 Trgb
-0.402052 0.138238 0.108058 417 254 429 236 426 248 Trgb
-0.324052 0.111419 0.087094 402 249 413 237 417 254 Trgb
-0.415721 0.142938 0.111732 429 236 417 254 413 237 Trgb
-0.399297 0.137291 0.107317 413 237 421 224 429 236 Trgb
-0.303041 0.104195 0.081447 421 224 422 218 429 236 Trgb
-0.196628 0.067607 0.052847 397 253 402 249 417 254 Trgb
-0.000000 0.000000 0.000000 405 218 392 236 392 223 Trgb
-0.195487 0.067215 0.052540 413 237 402 249 392 236 Trgb
-0.127423 0.043812 0.034247 392 236 405 218 413 237 Trgb
-0.239564 0.082370 0.064387 421 224 413 237 405 218 Trgb
-0.000000 0.000000 0.000000 402 218 405 218 392 223 Trgb
-0.031167 0.010716 0.008377 405 218 402 218 422 218 Trgb
-0.143308 0.049274 0.038516 422 218 421 224 405 218 Trgb
-0.000000 0.000000 0.000000 392 236 390 235 392 223 Trgb
-0.068063 0.023402 0.018293 402 249 397 253 392 236 Trgb
-0.000000 0.000000 0.000000 390 235 392 236 397 253 Trgb
-0.000000 0.699725 0.209917 388 238 390 237 389 239 Trgb
-0.000000 0.699725 0.209917 390 237 392 238 389 239 Trgb
-0.000000 0.699725 0.209917 392 238 391 240 389 239 Trgb
-0.000000 0.699725 0.209917 391 240 388 241 389 239 Trgb
-0.000000 0.699725 0.209917 388 241 387 240 389 239 Trgb
-0.000000 0.699725 0.209917 387 240 388 238 389 239 Trgb
-0.000000 0.011031 0.003309 371 205 390 237 388 238 Trgb
-0.000000 0.005515 0.001655 371 205 388 238 369 206 Trgb
-0.000000 0.017121 0.005136 372 206 392 238 390 237 Trgb
-0.000000 0.016834 0.005050 372 206 390 237 371 205 Trgb
-0.000000 0.000000 0.000000 369 206 388 238 387 240 Trgb
-0.000000 0.000000 0.000000 369 206 387 240 368 207 Trgb
-0.349698 0.218700 0.113680 387 242 406 239 397 252 Trgb
-0.133776 0.083663 0.043488 379 231 393 224 387 242 Trgb
-0.271918 0.170056 0.088395 406 239 387 242 393 224 Trgb
-0.255724 0.159929 0.083131 393 224 405 226 406 239 Trgb
-0.354064 0.221431 0.115099 406 239 402 254 397 252 Trgb
-0.280651 0.175518 0.091234 402 254 406 239 407 236 Trgb
-0.260091 0.162660 0.084550 405 226 407 236 406 239 Trgb
-0.250481 0.156650 0.081426 384 257 387 242 397 252 Trgb
-0.086350 0.054003 0.028071 371 242 379 231 387 242 Trgb
-0.125275 0.078347 0.040724 387 242 384 257 371 242 Trgb
-0.038925 0.024344 0.012654 374 251 371 242 384 257 Trgb
-0.047425 0.029660 0.015417 393 224 379 231 376 224 Trgb
-0.047425 0.029660 0.015417 376 224 394 221 393 224 Trgb
-0.117582 0.073536 0.038224 405 226 393 224 394 221 Trgb
-0.254847 0.159381 0.082846 402 254 384 257 397 252 Trgb
-0.000000 0.000000 0.000000 379 231 371 242 376 224 Trgb
-0.000000 0.682373 0.204712 391 162 392 163 390 162 Trgb
-0.000000 0.682373 0.204712 392 163 391 163 390 162 Trgb
-0.000000 0.682373 0.204712 391 163 389 162 390 162 Trgb
-0.000000 0.682373 0.204712 389 162 388 161 390 162 Trgb
-0.000000 0.682373 0.204712 388 161 389 161 390 162 Trgb
-0.000000 0.682373 0.204712 389 161 391 162 390 162 Trgb
-0.000000 0.137665 0.041299 371 208 391 163 392 163 Trgb
-0.000000 0.128141 0.038442 371 208 392 163 372 208 Trgb
-0.000000 0.068110 0.020433 369 207 389 162 391 163 Trgb
-0.000000 0.107649 0.032295 369 207 391 163 371 208 Trgb
-0.000000 0.009524 0.002857 368 206 388 161 389 162 Trgb
-0.000000 0.019047 0.005714 368 206 389 162 369 207 Trgb
-0.163081 0.086165 0.049849 403 150 407 155 399 143 Trgb
-0.357741 0.189016 0.109351 408 169 406 171 407 155 Trgb
-0.201687 0.106563 0.061650 407 155 389 148 399 143 Trgb
-0.192638 0.101782 0.058884 394 168 380 161 389 148 Trgb
-0.292072 0.154319 0.089278 389 148 407 155 394 168 Trgb
-0.396347 0.209413 0.121152 406 171 394 168 407 155 Trgb
-0.311639 0.164657 0.095259 406 171 408 169 395 181 Trgb
-0.074953 0.039602 0.022911 389 148 385 143 399 143 Trgb
-0.069652 0.036801 0.021291 380 161 372 155 389 148 Trgb
-0.042354 0.022378 0.012946 385 143 389 148 372 155 Trgb
-0.080631 0.042602 0.024647 377 174 395 181 382 180 Trgb
-0.150284 0.079404 0.045937 380 161 394 168 377 174 Trgb
-0.203616 0.107582 0.062240 395 181 377 174 394 168 Trgb
-0.350245 0.185055 0.107060 394 168 406 171 395 181 Trgb
-0.027298 0.014423 0.008344 372 155 380 161 377 174 Trgb
-0.000000 0.000000 0.000000 377 174 374 169 372 155 Trgb
-0.000000 0.697969 0.209391 293 250 295 248 296 251 Trgb
-0.000000 0.697969 0.209391 295 248 299 249 296 251 Trgb
-0.000000 0.697969 0.209391 299 249 299 253 296 251 Trgb
-0.000000 0.697969 0.209391 299 253 297 254 296 251 Trgb
-0.000000 0.697969 0.209391 297 254 293 253 296 251 Trgb
-0.000000 0.697969 0.209391 293 253 293 250 296 251 Trgb
-0.000000 0.000000 0.000000 313 215 295 248 293 250 Trgb
-0.000000 0.000000 0.000000 313 215 293 250 310 217 Trgb
-0.000000 0.029354 0.008806 316 217 299 249 295 248 Trgb
-0.000000 0.014677 0.004403 316 217 295 248 313 215 Trgb
-0.000000 0.046680 0.014004 317 220 299 253 299 249 Trgb
-0.000000 0.045355 0.013607 317 220 299 249 316 217 Trgb
-0.156998 0.121144 0.055628 280 252 297 247 291 260 Trgb
-0.000000 0.000000 0.000000 279 244 288 235 280 252 Trgb
-0.084838 0.065463 0.030060 297 247 280 252 288 235 Trgb
-0.132657 0.102362 0.047004 288 235 302 236 297 247 Trgb
-0.278211 0.214675 0.098577 297 247 305 263 291 260 Trgb
-0.324474 0.250373 0.114969 312 246 313 259 305 263 Trgb
-0.310052 0.239244 0.109859 305 263 297 247 312 246 Trgb
-0.236658 0.182612 0.083854 302 236 312 246 297 247 Trgb
-0.089372 0.068962 0.031667 289 268 280 252 291 260 Trgb
-0.000000 0.000000 0.000000 280 256 279 244 280 252 Trgb
-0.017212 0.013281 0.006099 280 252 289 268 280 256 Trgb
-0.047819 0.036898 0.016943 302 236 288 235 303 235 Trgb
-0.210585 0.162493 0.074615 305 263 289 268 291 260 Trgb
-0.256848 0.198191 0.091008 313 259 304 267 305 263 Trgb
-0.174799 0.134880 0.061936 289 268 305 263 304 267 Trgb
-0.151820 0.117148 0.053794 312 246 302 236 303 235 Trgb
-0.000000 0.699942 0.209983 348 304 347 302 351 301 Trgb
-0.000000 0.699942 0.209983 347 302 349 298 351 301 Trgb
-0.000000 0.699942 0.209983 349 298 353 297 351 301 Trgb
-0.000000 0.699942 0.209983 353 297 355 300 351 301 Trgb
-0.000000 0.699942 0.209983 355 300 352 303 351 301 Trgb
-0.000000 0.699942 0.209983 352 303 348 304 351 301 Trgb
-0.000000 0.000000 0.000000 298 255 347 302 348 304 Trgb
-0.000000 0.000000 0.000000 298 255 348 304 300 258 Trgb
-0.000000 0.001821 0.000546 301 252 349 298 347 302 Trgb
-0.000000 0.000911 0.000273 301 252 347 302 298 255 Trgb
-0.000000 0.006793 0.002038 304 251 353 297 349 298 Trgb
-0.000000 0.004762 0.001429 304 251 349 298 301 252 Trgb
-0.000000 0.018322 0.005497 350 301 386 356 384 357 Trgb
-0.000000 0.009161 0.002748 350 301 384 357 348 302 Trgb
-0.000000 0.035636 0.010691 353 299 389 354 386 356 Trgb
-0.000000 0.031560 0.009468 353 299 386 356 350 301 Trgb
-0.000000 0.021390 0.006417 353 299 390 354 389 354 Trgb
-0.000000 0.030551 0.009165 353 299 389 354 353 299 Trgb
-0.000000 0.677885 0.203366 386 356 385 355 387 356 Trgb
-0.000000 0.677885 0.203366 385 355 386 354 387 356 Trgb
-0.000000 0.677885 0.203366 386 354 388 355 387 356 Trgb
-0.000000 0.677885 0.203366 388 355 389 356 387 356 Trgb
-0.000000 0.677885 0.203366 389 356 388 357 387 356 Trgb
-0.000000 0.677885 0.203366 388 357 386 356 387 356 Trgb
-0.000000 0.144797 0.043439 388 357 369 396 367 395 Trgb
-0.000000 0.115047 0.034514 388 357 367 395 386 356 Trgb
-0.000000 0.117682 0.035305 389 356 369 395 369 396 Trgb
-0.000000 0.146114 0.043834 389 356 369 396 388 357 Trgb
-0.000000 0.056865 0.017059 386 356 367 395 365 394 Trgb
-0.000000 0.028432 0.008530 386 356 365 394 385 355 Trgb
-0.009232 0.148327 0.031512 363 401 370 403 364 402 Trgb
-0.022270 0.357806 0.076015 365 397 371 399 363 401 Trgb
-0.022149 0.355867 0.075603 370 403 363 401 371 399 Trgb
-0.031065 0.499105 0.106034 371 399 375 399 370 403 Trgb
-0.009353 0.150267 0.031924 360 393 365 397 363 401 Trgb
-0.002795 0.044900 0.009539 363 401 359 396 360 393 Trgb
-0.000000 0.000000 0.000000 360 390 360 393 359 396 Trgb
-0.019209 0.308621 0.065566 376 392 369 391 371 387 Trgb
-0.025955 0.417018 0.088595 371 399 365 397 369 391 Trgb
-0.029520 0.474291 0.100762 369 391 376 392 371 399 Trgb
-0.034750 0.558317 0.118613 375 399 371 399 376 392 Trgb
-0.009086 0.145981 0.031013 369 391 365 386 371 387 Trgb
-0.013038 0.209479 0.044503 365 397 360 393 369 391 Trgb
-0.006480 0.104112 0.022118 365 386 369 391 360 393 Trgb
-0.000000 0.000000 0.000000 360 393 360 390 365 386 Trgb
-0.000000 0.698602 0.209581 389 395 390 396 387 396 Trgb
-0.000000 0.698602 0.209581 390 396 388 397 387 396 Trgb
-0.000000 0.698602 0.209581 388 397 386 397 387 396 Trgb
-0.000000 0.698602 0.209581 386 397 385 396 387 396 Trgb
-0.000000 0.698602 0.209581 385 396 387 395 387 396 Trgb
-0.000000 0.698602 0.209581 387 395 389 395 387 396 Trgb
-0.000000 0.037233 0.011170 389 356 390 396 389 395 Trgb
-0.000000 0.038872 0.011662 389 356 389 395 389 355 Trgb
-0.000000 0.003278 0.000983 386 354 387 395 385 396 Trgb
-0.000000 0.001639 0.000492 386 354 385 396 385 355 Trgb
-0.000000 0.028646 0.008594 389 355 389 395 387 395 Trgb
-0.000000 0.016781 0.005034 389 355 387 395 386 354 Trgb
-0.404995 0.114698 0.103939 398 404 399 414 388 415 Trgb
-0.435739 0.123405 0.111829 402 388 409 395 398 404 Trgb
-0.425131 0.120400 0.109106 399 414 398 404 409 395 Trgb
-0.324162 0.091805 0.083193 376 404 398 404 388 415 Trgb
-0.354905 0.100512 0.091083 386 385 402 388 398 404 Trgb
-0.263463 0.074615 0.067616 398 404 376 404 386 385 Trgb
-0.091315 0.025861 0.023435 371 389 386 385 376 404 Trgb
-0.276324 0.078257 0.070916 409 395 402 388 397 377 Trgb
-0.152013 0.043051 0.039013 377 414 376 404 388 415 Trgb
-0.039290 0.011127 0.010084 376 404 377 414 366 396 Trgb
-0.039290 0.011127 0.010084 366 396 371 389 376 404 Trgb
-0.195491 0.055364 0.050171 402 388 386 385 397 377 Trgb
-0.064759 0.018340 0.016620 376 378 397 377 386 385 Trgb
-0.052024 0.014734 0.013352 386 385 371 389 376 378 Trgb
-0.000000 0.000000 0.000000 371 389 366 396 376 378 Trgb
-0.000000 0.699996 0.209999 421 374 420 376 419 375 Trgb
-0.000000 0.699996 0.209999 420 376 419 377 419 375 Trgb
-0.000000 0.699996 0.209999 419 377 418 376 419 375 Trgb
-0.000000 0.699996 0.209999 418 376 418 374 419 375 Trgb
-0.000000 0.699996 0.209999 418 374 420 373 419 375 Trgb
-0.000000 0.699996 0.209999 420 373 421 374 419 375 Trgb
-0.000000 0.000000 0.000000 385 357 418 376 419 377 Trgb
-0.000000 0.000000 0.000000 385 357 419 377 386 358 Trgb
-0.000000 0.000000 0.000000 386 355 418 374 418 376 Trgb
-0.000000 0.000000 0.000000 386 355 418 376 385 357 Trgb
-0.000000 0.001176 0.000353 388 354 420 373 418 374 Trgb
-0.000000 0.000588 0.000176 388 354 418 374 386 355 Trgb
-0.289362 0.280459 0.113964 436 374 429 389 431 382 Trgb
-0.278122 0.269564 0.109537 429 389 419 386 431 382 Trgb
-0.077960 0.075561 0.030704 412 390 407 384 419 386 Trgb
-0.159921 0.155000 0.062984 419 386 429 389 412 390 Trgb
-0.292601 0.283598 0.115240 426 371 436 374 431 382 Trgb
-0.104389 0.101177 0.041113 426 360 431 366 436 374 Trgb
-0.181640 0.176051 0.071538 436 374 426 371 426 360 Trgb
-0.094729 0.091814 0.037309 417 362 426 360 426 371 Trgb
-0.281360 0.272703 0.110813 419 386 426 371 431 382 Trgb
-0.077960 0.075561 0.030704 407 384 409 372 419 386 Trgb
-0.163159 0.158139 0.064260 426 371 419 386 409 372 Trgb
-0.087489 0.084798 0.034457 409 372 417 362 426 371 Trgb
-0.009530 0.009236 0.003753 426 360 417 362 410 361 Trgb
-0.000000 0.000000 0.000000 409 372 407 384 403 376 Trgb
-0.000000 0.000000 0.000000 403 376 410 361 409 372 Trgb
-0.002290 0.002219 0.000902 417 362 409 372 410 361 Trgb
-0.000000 0.697280 0.209184 347 363 350 363 349 364 Trgb
-0.000000 0.697280 0.209184 350 363 352 364 349 364 Trgb
-0.000000 0.697280 0.209184 352 364 351 365 349 364 Trgb
-0.000000 0.697280 0.209184 351 365 348 365 349 364 Trgb
-0.000000 0.697280 0.209184 348 365 346 364 349 364 Trgb
-0.000000 0.697280 0.209184 346 364 347 363 349 364 Trgb
-0.000000 0.034648 0.010394 352 300 350 363 347 363 Trgb
-0.000000 0.017324 0.005197 352 300 347 363 349 300 Trgb
-0.000000 0.053795 0.016138 354 301 352 364 350 363 Trgb
-0.000000 0.052883 0.015865 354 301 350 363 352 300 Trgb
-0.000000 0.000000 0.000000 349 300 347 363 346 364 Trgb
-0.000000 0.000000 0.000000 349 300 346 364 348 301 Trgb
-0.308371 0.106028 0.082880 340 375 360 376 349 384 Trgb
-0.157725 0.054231 0.042391 336 359 352 359 340 375 Trgb
-0.324928 0.111721 0.087330 360 376 340 375 352 359 Trgb
-0.420222 0.144486 0.112941 352 359 366 361 360 376 Trgb
-0.317849 0.109287 0.085427 360 376 358 381 349 384 Trgb
-0.343885 0.118239 0.092425 358 381 360 376 369 365 Trgb
-0.429700 0.147745 0.115489 366 361 369 365 360 376 Trgb
-0.141167 0.048538 0.037941 337 380 340 375 349 384 Trgb
-0.055697 0.019150 0.014970 329 363 336 359 340 375 Trgb
-0.055697 0.019150 0.014970 340 375 337 380 329 363 Trgb
-0.046330 0.015930 0.012452 361 348 341 347 350 344 Trgb
-0.102027 0.035080 0.027422 352 359 336 359 341 347 Trgb
-0.148358 0.051010 0.039874 341 347 361 348 352 359 Trgb
-0.299349 0.102926 0.080455 366 361 352 359 361 348 Trgb
-0.308827 0.106185 0.083002 369 365 366 361 361 348 Trgb
-0.000000 0.000000 0.000000 336 359 329 363 341 347 Trgb
-0.000000 0.698661 0.209598 356 291 357 294 353 293 Trgb
-0.000000 0.698661 0.209598 357 294 354 296 353 293 Trgb
-0.000000 0.698661 0.209598 354 296 351 295 353 293 Trgb
-0.000000 0.698661 0.209598 351 295 350 292 353 293 Trgb
-0.000000 0.698661 0.209598 350 292 353 290 353 293 Trgb
-0.000000 0.698661 0.209598 353 290 356 291 353 293 Trgb
-0.000000 0.033302 0.009991 352 304 354 296 357 294 Trgb
-0.000000 0.037838 0.011351 352 304 357 294 354 302 Trgb
-0.000000 0.009589 0.002877 348 303 351 295 354 296 Trgb
-0.000000 0.019177 0.005753 348 303 354 296 352 304 Trgb
-0.000000 0.000000 0.000000 348 300 350 292 351 295 Trgb
-0.000000 0.000000 0.000000 348 300 351 295 348 303 Trgb
-0.000000 0.000000 0.000000 328 260 328 261 326 261 Trgb
-0.000000 0.000000 0.000000 328 261 326 263 326 261 Trgb
-0.000000 0.000000 0.000000 326 263 324 263 326 261 Trgb
-0.000000 0.000000 0.000000 324 263 324 262 326 261 Trgb
-0.000000 0.000000 0.000000 324 262 326 260 326 261 Trgb
-0.000000 0.000000 0.000000 326 260 328 260 326 261 Trgb
-0.000000 0.115033 0.034510 355 293 328 261 328 260 Trgb
-0.000000 0.073975 0.022192 355 293 328 260 355 291 Trgb
-0.000000 0.134147 0.040244 354 295 326 263 328 261 Trgb
-0.000000 0.145119 0.043536 354 295 328 261 355 293 Trgb
-0.000000 0.041058 0.012317 352 295 324 263 326 263 Trgb
-0.000000 0.082116 0.024635 352 295 326 263 354 295 Trgb
-0.012930 0.111978 0.024982 327 251 325 259 320 255 Trgb
-0.024464 0.211872 0.047267 334 254 335 258 327 251 Trgb
-0.032663 0.282874 0.063107 325 259 327 251 335 258 Trgb
-0.055838 0.483582 0.107884 335 258 331 265 325 259 Trgb
-0.012930 0.111978 0.024982 325 259 317 262 320 255 Trgb
-0.013042 0.112948 0.025198 324 269 319 269 317 262 Trgb
-0.025972 0.224926 0.050180 317 262 325 259 324 269 Trgb
-0.049147 0.425634 0.094956 331 265 324 269 325 259 Trgb
-0.000000 0.000000 0.000000 319 254 327 251 320 255 Trgb
-0.046381 0.401681 0.089613 336 261 334 269 335 258 Trgb
-0.062754 0.543471 0.121245 331 265 335 258 334 269 Trgb
-0.000000 0.000000 0.000000 317 262 319 254 320 255 Trgb
-0.013154 0.113918 0.025414 319 269 324 269 325 272 Trgb
-0.032999 0.285785 0.063757 334 269 325 272 324 269 Trgb
-0.056063 0.485523 0.108317 324 269 331 265 334 269 Trgb
-0.000000 0.677401 0.203220 372 250 370 250 370 249 Trgb
-0.000000 0.677401 0.203220 370 250 368 249 370 249 Trgb
-0.000000 0.677401 0.203220 368 249 367 248 370 249 Trgb
-0.000000 0.677401 0.203220 367 248 369 248 370 249 Trgb
-0.000000 0.677401 0.203220 369 248 371 249 370 249 Trgb
-0.000000 0.677401 0.203220 371 249 372 250 370 249 Trgb
-0.000000 0.155473 0.046642 354 294 370 250 372 250 Trgb
-0.000000 0.146657 0.043997 354 294 372 250 356 294 Trgb
-0.000000 0.072397 0.021719 352 293 368 249 370 250 Trgb
-0.000000 0.118344 0.035503 352 293 370 250 354 294 Trgb
-0.000000 0.008817 0.002645 351 292 367 248 368 249 Trgb
-0.000000 0.017634 0.005290 351 292 368 249 352 293 Trgb
-0.253712 0.080223 0.066787 390 240 373 240 377 229 Trgb
-0.428856 0.135602 0.112892 390 257 383 259 390 240 Trgb
-0.393311 0.124363 0.103535 373 240 390 240 383 259 Trgb
-0.382168 0.120840 0.100601 383 259 367 256 373 240 Trgb
-0.133898 0.042338 0.035247 373 240 360 230 377 229 Trgb
-0.000000 0.000000 0.000000 353 248 349 241 360 230 Trgb
-0.100475 0.031770 0.026449 360 230 373 240 353 248 Trgb
-0.209145 0.066131 0.055055 367 256 353 248 373 240 Trgb
-0.125755 0.039763 0.033104 363 268 379 268 362 269 Trgb
-0.381589 0.120657 0.100449 383 259 390 257 379 268 Trgb
-0.298777 0.094472 0.078650 379 268 363 268 383 259 Trgb
-0.334900 0.105894 0.088159 367 256 383 259 363 268 Trgb
-0.053208 0.016824 0.014006 350 258 363 268 362 269 Trgb
-0.000000 0.000000 0.000000 349 241 353 248 350 258 Trgb
-0.053208 0.016824 0.014006 363 268 350 258 353 248 Trgb
-0.161878 0.051185 0.042613 353 248 367 256 363 268 Trgb
-0.000000 0.699775 0.209932 374 329 375 328 376 328 Trgb
-0.000000 0.699775 0.209932 375 328 377 327 376 328 Trgb
-0.000000 0.699775 0.209932 377 327 378 327 376 328 Trgb
-0.000000 0.699775 0.209932 378 327 378 329 376 328 Trgb
-0.000000 0.699775 0.209932 378 329 375 330 376 328 Trgb
-0.000000 0.699775 0.209932 375 330 374 329 376 328 Trgb
-0.000000 0.000000 0.000000 352 292 375 328 374 329 Trgb
-0.000000 0.000000 0.000000 352 292 374 329 351 294 Trgb
-0.000000 0.010089 0.003027 354 291 377 327 375 328 Trgb
-0.000000 0.005044 0.001513 354 291 375 328 352 292 Trgb
-0.000000 0.015452 0.004635 356 292 378 327 377 327 Trgb
-0.000000 0.015292 0.004588 356 292 377 327 354 291 Trgb
-0.251815 0.220453 0.094454 371 344 380 331 385 342 Trgb
-0.043448 0.038037 0.016297 360 337 362 328 371 344 Trgb
-0.140870 0.123326 0.052839 380 331 371 344 362 328 Trgb
-0.124253 0.108778 0.046606 362 328 373 319 380 331 Trgb
-0.321818 0.281738 0.120711 380 331 393 331 385 342 Trgb
-0.216925 0.189909 0.081367 385 315 392 319 393 331 Trgb
-0.264847 0.231862 0.099342 393 331 380 331 385 315 Trgb
-0.178226 0.156030 0.066851 373 319 385 315 380 331 Trgb
-0.213871 0.187235 0.080221 384 344 371 344 385 342 Trgb
-0.000000 0.000000 0.000000 362 328 360 337 359 325 Trgb
-0.000000 0.000000 0.000000 359 325 368 312 362 328 Trgb
-0.026831 0.023489 0.010064 373 319 362 328 368 312 Trgb
-0.283874 0.248520 0.106479 393 331 384 344 385 342 Trgb
-0.103473 0.090587 0.038812 392 319 385 315 381 313 Trgb
-0.053974 0.047252 0.020245 368 312 381 313 385 315 Trgb
-0.080804 0.070741 0.030309 385 315 373 319 368 312 Trgb
-0.000000 0.665402 0.199621 241 278 244 280 242 282 Trgb
-0.000000 0.665402 0.199621 244 280 245 284 242 282 Trgb
-0.000000 0.665402 0.199621 245 284 243 286 242 282 Trgb
-0.000000 0.665402 0.199621 243 286 240 284 242 282 Trgb
-0.000000 0.665402 0.199621 240 284 239 280 242 282 Trgb
-0.000000 0.665402 0.199621 239 280 241 278 242 282 Trgb
-0.000000 0.101649 0.030495 305 252 244 280 241 278 Trgb
-0.000000 0.050824 0.015247 305 252 241 278 301 250 Trgb
-0.000000 0.191076 0.057323 305 257 245 284 244 280 Trgb
-0.000000 0.171775 0.051532 305 257 244 280 305 252 Trgb
-0.000000 0.108729 0.032619 303 259 243 286 245 284 Trgb
-0.000000 0.159553 0.047866 303 259 245 284 305 257 Trgb
-0.000000 0.000000 0.000000 183 257 182 260 181 259 Trgb
-0.000000 0.000000 0.000000 182 260 180 262 181 259 Trgb
-0.000000 0.000000 0.000000 180 262 180 261 181 259 Trgb
-0.000000 0.000000 0.000000 180 261 181 258 181 259 Trgb
-0.000000 0.000000 0.000000 181 258 182 256 181 259 Trgb
-0.000000 0.000000 0.000000 182 256 183 257 181 259 Trgb
-0.000000 0.058545 0.017564 243 283 182 260 183 257 Trgb
-0.000000 0.052058 0.015618 243 283 183 257 243 280 Trgb
-0.000000 0.034650 0.010395 241 285 180 262 182 260 Trgb
-0.000000 0.049841 0.014952 241 285 182 260 243 283 Trgb
-0.000000 0.030381 0.009114 243 280 183 257 182 256 Trgb
-0.000000 0.015191 0.004557 243 280 182 256 243 279 Trgb
-0.000000 0.699531 0.209859 182 258 183 258 181 259 Trgb
-0.000000 0.699531 0.209859 183 258 182 259 181 259 Trgb
-0.000000 0.699531 0.209859 182 259 180 260 181 259 Trgb
-0.000000 0.699531 0.209859 180 260 179 260 181 259 Trgb
-0.000000 0.699531 0.209859 179 260 180 259 181 259 Trgb
-0.000000 0.699531 0.209859 180 259 182 258 181 259 Trgb
-0.000000 0.018127 0.005438 180 259 158 222 160 221 Trgb
-0.000000 0.021833 0.006550 180 259 160 221 182 258 Trgb
-0.000000 0.004807 0.001442 179 260 157 224 158 222 Trgb
-0.000000 0.009615 0.002884 179 260 158 222 180 259 Trgb
-0.000000 0.020731 0.006219 182 258 160 221 161 221 Trgb
-0.000000 0.015923 0.004777 182 258 161 221 183 258 Trgb
-0.000000 0.000000 0.000000 158 206 144 215 151 210 Trgb
-0.125687 0.116237 0.048385 165 212 154 217 158 206 Trgb
-0.054272 0.050191 0.020893 144 215 158 206 154 217 Trgb
-0.059609 0.055128 0.022947 154 217 145 225 144 215 Trgb
-0.005337 0.004936 0.002055 145 225 145 232 144 215 Trgb
-0.118139 0.109256 0.045479 173 213 165 212 158 206 Trgb
-0.290405 0.268570 0.111795 155 233 169 224 167 235 Trgb
-0.245347 0.226900 0.094449 154 217 165 212 169 224 Trgb
-0.246867 0.228306 0.095035 169 224 155 233 154 217 Trgb
-0.132545 0.122579 0.051025 145 225 154 217 155 233 Trgb
-0.189409 0.175168 0.072915 160 239 155 233 167 235 Trgb
-0.091599 0.084712 0.035262 155 233 160 239 145 232 Trgb
-0.078273 0.072388 0.030132 145 232 145 225 155 233 Trgb
-0.282857 0.261589 0.108889 169 224 174 230 167 235 Trgb
-0.237798 0.219919 0.091543 165 212 173 213 169 224 Trgb
-0.231771 0.214345 0.089223 174 230 169 224 173 213 Trgb
-0.000000 0.687742 0.206322 155 248 154 246 156 245 Trgb
-0.000000 0.687742 0.206322 154 246 155 244 156 245 Trgb
-0.000000 0.687742 0.206322 155 244 157 243 156 245 Trgb
-0.000000 0.687742 0.206322 157 243 158 244 156 245 Trgb
-0.000000 0.687742 0.206322 158 244 157 247 156 245 Trgb
-0.000000 0.687742 0.206322 157 247 155 248 156 245 Trgb
-0.000000 0.066457 0.019937 183 258 158 244 157 243 Trgb
-0.000000 0.033228 0.009969 183 258 157 243 182 257 Trgb
-0.000000 0.115018 0.034505 183 261 157 247 158 244 Trgb
-0.000000 0.107351 0.032205 183 261 158 244 183 258 Trgb
-0.000000 0.056227 0.016868 181 261 155 248 157 247 Trgb
-0.000000 0.089455 0.026837 181 261 157 247 183 261 Trgb
-0.095233 0.034446 0.025936 143 255 136 238 145 239 Trgb
-0.080765 0.029213 0.021996 149 265 139 256 143 255 Trgb
-0.051549 0.018645 0.014039 136 238 143 255 139 256 Trgb
-0.053915 0.019501 0.014683 136 238 153 226 145 239 Trgb
-0.010230 0.003700 0.002786 153 226 136 238 149 228 Trgb
-0.241449 0.087332 0.065756 160 244 143 255 145 239 Trgb
-0.216750 0.078399 0.059030 163 263 149 265 143 255 Trgb
-0.333750 0.120718 0.090894 143 255 160 244 163 263 Trgb
-0.445297 0.161065 0.121272 173 250 163 263 160 244 Trgb
-0.200131 0.072388 0.054504 153 226 160 244 145 239 Trgb
-0.104898 0.037942 0.028568 163 225 173 234 153 226 Trgb
-0.251114 0.090828 0.068388 160 244 153 226 173 234 Trgb
-0.403979 0.146120 0.110020 173 234 173 250 160 244 Trgb
-0.165202 0.059754 0.044991 149 265 163 263 159 264 Trgb
-0.383518 0.138719 0.104448 163 263 173 250 176 253 Trgb
-0.342200 0.123775 0.093195 173 250 173 234 176 253 Trgb
-0.000000 0.000000 0.000000 138 279 137 277 139 279 Trgb
-0.000000 0.000000 0.000000 137 277 138 277 139 279 Trgb
-0.000000 0.000000 0.000000 138 277 139 279 139 279 Trgb
-0.000000 0.000000 0.000000 139 279 140 281 139 279 Trgb
-0.000000 0.000000 0.000000 140 281 139 281 139 279 Trgb
-0.000000 0.000000 0.000000 139 281 138 279 139 279 Trgb
-0.000000 0.007901 0.002370 181 257 138 277 137 277 Trgb
-0.000000 0.003951 0.001185 181 257 137 277 180 257 Trgb
-0.000000 0.086361 0.025908 182 259 139 279 138 277 Trgb
-0.000000 0.049106 0.014732 182 259 138 277 181 257 Trgb
-0.000000 0.115714 0.034714 182 261 140 281 139 279 Trgb
-0.000000 0.119664 0.035899 182 261 139 279 182 259 Trgb
-0.103705 0.001023 0.020945 115 270 125 287 116 290 Trgb
-0.383332 0.003780 0.077422 134 263 143 280 125 287 Trgb
-0.180283 0.001778 0.036412 125 287 115 270 134 263 Trgb
-0.076578 0.000755 0.015467 128 256 134 263 115 270 Trgb
-0.130831 0.001290 0.026424 125 287 130 303 116 290 Trgb
-0.517330 0.005102 0.104486 143 280 149 296 125 287 Trgb
-0.341407 0.003367 0.068955 130 303 125 287 149 296 Trgb
-0.332454 0.003279 0.067146 149 296 149 301 130 303 Trgb
-0.239839 0.002365 0.048441 158 272 147 256 161 269 Trgb
-0.463077 0.004567 0.093529 143 280 134 263 158 272 Trgb
-0.260028 0.002564 0.052519 147 256 158 272 134 263 Trgb
-0.076578 0.000755 0.015467 134 263 128 256 147 256 Trgb
-0.346710 0.003419 0.070026 162 287 158 272 161 269 Trgb
-0.597075 0.005888 0.120593 149 296 143 280 158 272 Trgb
-0.500898 0.004940 0.101168 158 272 162 287 149 296 Trgb
-0.412199 0.004065 0.083253 149 301 149 296 162 287 Trgb
-0.000000 0.698970 0.209691 239 286 235 285 237 282 Trgb
-0.000000 0.698970 0.209691 235 285 233 282 237 282 Trgb
-0.000000 0.698970 0.209691 233 282 235 279 237 282 Trgb
-0.000000 0.698970 0.209691 235 279 239 279 237 282 Trgb
-0.000000 0.698970 0.209691 239 279 241 283 237 282 Trgb
-0.000000 0.698970 0.209691 241 283 239 286 237 282 Trgb
-0.000000 0.004282 0.001285 244 279 239 279 235 279 Trgb
-0.000000 0.002141 0.000642 244 279 235 279 241 279 Trgb
-0.000000 0.025877 0.007763 245 282 241 283 239 279 Trgb
-0.000000 0.016150 0.004845 245 282 239 279 244 279 Trgb
-0.000000 0.031322 0.009397 244 285 239 286 241 283 Trgb
-0.000000 0.033463 0.010039 244 285 241 283 245 282 Trgb
-0.000000 0.699983 0.209995 269 294 268 292 270 291 Trgb
-0.000000 0.699983 0.209995 268 292 269 290 270 291 Trgb
-0.000000 0.699983 0.209995 269 290 270 289 270 291 Trgb
-0.000000 0.699983 0.209995 270 289 272 290 270 291 Trgb
-0.000000 0.699983 0.209995 272 290 271 293 270 291 Trgb
-0.000000 0.699983 0.209995 271 293 269 294 270 291 Trgb
-0.000000 0.002735 0.000821 235 283 268 292 269 294 Trgb
-0.000000 0.003769 0.001131 235 283 269 294 236 285 Trgb
-0.000000 0.000567 0.000170 236 281 269 290 268 292 Trgb
-0.000000 0.001134 0.000340 236 281 268 292 235 283 Trgb
-0.000000 0.000000 0.000000 238 280 270 289 269 290 Trgb
-0.000000 0.000000 0.000000 238 280 269 290 236 281 Trgb
-0.376135 0.200455 0.115318 276 308 269 291 284 295 Trgb
-0.154087 0.082118 0.047241 265 311 256 303 276 308 Trgb
-0.237541 0.126594 0.072827 269 291 276 308 256 303 Trgb
-0.116308 0.061985 0.035659 256 303 255 288 269 291 Trgb
-0.346879 0.184863 0.106348 269 291 283 279 284 295 Trgb
-0.091976 0.049017 0.028199 263 274 275 271 283 279 Trgb
-0.196118 0.104518 0.060127 283 279 269 291 263 274 Trgb
-0.104142 0.055501 0.031929 255 288 263 274 269 291 Trgb
-0.381060 0.203080 0.116828 290 296 276 308 284 295 Trgb
-0.012166 0.006484 0.003730 255 288 256 303 250 286 Trgb
-0.351803 0.187488 0.107858 283 279 290 296 284 295 Trgb
-0.091976 0.049017 0.028199 275 271 284 279 283 279 Trgb
-0.201042 0.107142 0.061637 290 296 283 279 284 279 Trgb
-0.000000 0.000000 0.000000 263 274 255 288 250 286 Trgb
-0.000000 0.696680 0.209004 220 322 221 321 222 322 Trgb
-0.000000 0.696680 0.209004 221 321 224 322 222 322 Trgb
-0.000000 0.696680 0.209004 224 322 225 323 222 322 Trgb
-0.000000 0.696680 0.209004 225 323 223 324 222 322 Trgb
-0.000000 0.696680 0.209004 223 324 221 323 222 322 Trgb
-0.000000 0.696680 0.209004 221 323 220 322 222 322 Trgb
-0.000000 0.003836 0.001151 236 281 221 321 220 322 Trgb
-0.000000 0.001918 0.000575 236 281 220 322 235 282 Trgb
-0.000000 0.043010 0.012903 238 282 224 322 221 321 Trgb
-0.000000 0.024382 0.007315 238 282 221 321 236 281 Trgb
-0.000000 0.057802 0.017341 239 283 225 323 224 322 Trgb
-0.000000 0.059720 0.017916 239 283 224 322 238 282 Trgb
-0.032130 0.233204 0.053067 212 326 221 325 219 331 Trgb
-0.000000 0.000000 0.000000 212 319 216 316 212 326 Trgb
-0.019262 0.139807 0.031814 221 325 212 326 216 316 Trgb
-0.033635 0.244129 0.055553 216 316 223 317 221 325 Trgb
-0.055827 0.405196 0.092205 221 325 227 331 219 331 Trgb
-0.069102 0.501547 0.114130 231 321 233 326 227 331 Trgb
-0.067720 0.491517 0.111847 227 331 221 325 231 321 Trgb
-0.058397 0.423846 0.096448 223 317 231 321 221 325 Trgb
-0.012868 0.093396 0.021253 219 333 212 326 219 331 Trgb
-0.000000 0.000000 0.000000 216 316 212 319 217 314 Trgb
-0.001064 0.007725 0.001758 217 314 225 312 216 316 Trgb
-0.015437 0.112046 0.025497 223 317 216 316 225 312 Trgb
-0.036565 0.265389 0.060391 227 331 219 333 219 331 Trgb
-0.050904 0.369464 0.084074 233 326 231 321 232 318 Trgb
-0.031324 0.227352 0.051735 225 312 232 318 231 321 Trgb
-0.040198 0.291763 0.066392 231 321 223 317 225 312 Trgb
-0.000000 0.000000 0.000000 194 295 195 296 195 297 Trgb
-0.000000 0.000000 0.000000 195 296 196 298 195 297 Trgb
-0.000000 0.000000 0.000000 196 298 196 299 195 297 Trgb
-0.000000 0.000000 0.000000 196 299 194 299 195 297 Trgb
-0.000000 0.000000 0.000000 194 299 193 296 195 297 Trgb
-0.000000 0.000000 0.000000 193 296 194 295 195 297 Trgb
-0.000000 0.120080 0.036024 238 281 195 296 194 295 Trgb
-0.000000 0.060040 0.018012 238 281 194 295 236 280 Trgb
-0.000000 0.307224 0.092167 238 283 196 298 195 296 Trgb
-0.000000 0.243672 0.073102 238 283 195 296 238 281 Trgb
-0.000000 0.250695 0.075208 238 285 196 299 196 298 Trgb
-0.000000 0.310735 0.093220 238 285 196 298 238 283 Trgb
-0.017736 0.110162 0.025580 185 292 191 298 185 301 Trgb
-0.007836 0.048670 0.011301 191 286 195 288 185 292 Trgb
-0.025572 0.158832 0.036881 191 298 185 292 195 288 Trgb
-0.053236 0.330662 0.076779 195 288 199 295 191 298 Trgb
-0.027636 0.171654 0.039858 191 298 191 307 185 301 Trgb
-0.057770 0.358825 0.083319 201 303 199 308 191 307 Trgb
-0.058923 0.365987 0.084982 191 307 191 298 201 303 Trgb
-0.076687 0.476325 0.110603 199 295 201 303 191 298 Trgb
-0.000000 0.000000 0.000000 185 301 185 292 185 301 Trgb
-0.007836 0.048670 0.011301 195 288 191 286 199 287 Trgb
-0.029223 0.181512 0.042147 199 287 205 293 195 288 Trgb
-0.056887 0.353342 0.082046 199 295 195 288 205 293 Trgb
-0.009900 0.061492 0.014278 191 307 185 301 185 301 Trgb
-0.061421 0.381505 0.088585 199 308 201 303 204 302 Trgb
-0.066226 0.411348 0.095515 205 293 204 302 201 303 Trgb
-0.080339 0.499005 0.115869 201 303 199 295 205 293 Trgb
-0.000000 0.000000 0.000000 204 336 203 336 206 337 Trgb
-0.000000 0.000000 0.000000 203 336 206 337 206 337 Trgb
-0.000000 0.000000 0.000000 206 337 208 339 206 337 Trgb
-0.000000 0.000000 0.000000 208 339 208 339 206 337 Trgb
-0.000000 0.000000 0.000000 208 339 206 337 206 337 Trgb
-0.000000 0.000000 0.000000 206 337 204 336 206 337 Trgb
-0.000000 0.287100 0.086130 242 282 206 337 203 336 Trgb
-0.000000 0.143550 0.043065 242 282 203 336 240 280 Trgb
-0.000000 0.549999 0.165000 244 283 208 339 206 337 Trgb
-0.000000 0.490325 0.147098 244 283 206 337 242 282 Trgb
-0.000000 0.322574 0.096772 244 284 208 339 208 339 Trgb
-0.000000 0.466124 0.139837 244 284 208 339 244 283 Trgb
-0.000000 0.698197 0.209459 204 336 205 335 206 337 Trgb
-0.000000 0.698197 0.209459 205 335 207 337 206 337 Trgb
-0.000000 0.698197 0.209459 207 337 208 339 206 337 Trgb
-0.000000 0.698197 0.209459 208 339 206 339 206 337 Trgb
-0.000000 0.698197 0.209459 206 339 204 338 206 337 Trgb
-0.000000 0.698197 0.209459 204 338 204 336 206 337 Trgb
-0.000000 0.008040 0.002412 204 338 183 364 182 362 Trgb
-0.000000 0.004020 0.001206 204 338 182 362 204 336 Trgb
-0.000000 0.036178 0.010854 206 339 185 365 183 364 Trgb
-0.000000 0.024119 0.007236 206 339 183 364 204 338 Trgb
-0.000000 0.040198 0.012059 208 339 186 364 185 365 Trgb
-0.000000 0.044218 0.013265 208 339 185 365 206 339 Trgb
-0.000000 0.000000 0.000000 166 351 166 365 164 363 Trgb
-0.000000 0.000000 0.000000 172 382 164 363 166 365 Trgb
-0.121419 0.011415 0.026567 166 365 177 378 172 382 Trgb
-0.296498 0.027876 0.064875 177 378 193 382 172 382 Trgb
-0.293709 0.027614 0.064265 187 364 178 346 195 351 Trgb
-0.000000 0.000000 0.000000 166 365 166 351 178 346 Trgb
-0.171952 0.016166 0.037624 178 346 187 364 166 365 Trgb
-0.293371 0.027582 0.064191 177 378 166 365 187 364 Trgb
-0.469028 0.044097 0.102625 205 363 187 364 195 351 Trgb
-0.476578 0.044806 0.104277 203 375 193 382 205 363 Trgb
-0.522349 0.049110 0.114292 187 364 205 363 193 382 Trgb
-0.468450 0.044042 0.102498 193 382 177 378 187 364 Trgb
-0.121997 0.011470 0.026693 178 346 197 344 195 351 Trgb
-0.000000 0.000000 0.000000 166 351 176 345 178 346 Trgb
-0.000239 0.000023 0.000052 197 344 178 346 176 345 Trgb
-0.297315 0.027953 0.065054 197 344 205 363 195 351 Trgb
-0.000000 0.699742 0.209923 205 337 206 335 206 337 Trgb
-0.000000 0.699742 0.209923 206 335 207 336 206 337 Trgb
-0.000000 0.699742 0.209923 207 336 207 338 206 337 Trgb
-0.000000 0.699742 0.209923 207 338 206 340 206 337 Trgb
-0.000000 0.699742 0.209923 206 340 205 339 206 337 Trgb
-0.000000 0.699742 0.209923 205 339 205 337 206 337 Trgb
-0.000000 0.015210 0.004563 205 339 165 339 165 337 Trgb
-0.000000 0.011503 0.003451 205 339 165 337 205 337 Trgb
-0.000000 0.013720 0.004116 206 340 167 340 165 339 Trgb
-0.000000 0.016319 0.004896 206 340 165 339 205 339 Trgb
-0.000000 0.005197 0.001559 205 337 165 337 166 335 Trgb
-0.000000 0.002599 0.000780 205 337 166 335 206 335 Trgb
-0.058239 0.091602 0.029968 159 333 159 344 153 334 Trgb
-0.040484 0.063676 0.020832 156 347 153 334 159 344 Trgb
-0.079983 0.125802 0.041157 159 344 164 351 156 347 Trgb
-0.017755 0.027926 0.009136 163 325 159 333 153 334 Trgb
-0.232855 0.366250 0.119821 173 347 170 334 178 337 Trgb
-0.127138 0.199970 0.065422 159 344 159 333 170 334 Trgb
-0.193657 0.304596 0.099650 170 334 173 347 159 344 Trgb
-0.164256 0.258353 0.084522 164 351 159 344 173 347 Trgb
-0.207746 0.326757 0.106901 180 341 173 347 178 337 Trgb
-0.139147 0.218860 0.071601 170 350 164 351 173 347 Trgb
-0.176996 0.278391 0.091077 170 334 177 328 178 337 Trgb
-0.086654 0.136294 0.044590 159 333 163 325 170 334 Trgb
-0.097313 0.153061 0.050075 177 328 170 334 163 325 Trgb
-0.028415 0.044692 0.014621 163 325 169 324 177 328 Trgb
-0.151887 0.238897 0.078157 177 328 180 341 178 337 Trgb
-0.000000 0.698962 0.209689 220 381 218 381 220 381 Trgb
-0.000000 0.698962 0.209689 218 381 217 381 220 381 Trgb
-0.000000 0.698962 0.209689 217 381 219 380 220 381 Trgb
-0.000000 0.698962 0.209689 219 380 221 380 220 381 Trgb
-0.000000 0.698962 0.209689 221 380 222 380 220 381 Trgb
-0.000000 0.698962 0.209689 222 380 220 381 220 381 Trgb
-0.000000 0.016514 0.004954 205 337 219 380 217 381 Trgb
-0.000000 0.008257 0.002477 205 337 217 381 204 338 Trgb
-0.000000 0.033230 0.009969 207 336 221 380 219 380 Trgb
-0.000000 0.029001 0.008700 207 336 219 380 205 337 Trgb
-0.000000 0.020944 0.006283 208 337 222 380 221 380 Trgb
-0.000000 0.029201 0.008760 208 337 221 380 207 336 Trgb
-0.307148 0.060281 0.073486 210 400 221 393 226 401 Trgb
-0.252761 0.049607 0.060474 201 384 214 377 221 393 Trgb
-0.175305 0.034406 0.041942 221 393 210 400 201 384 Trgb
-0.015997 0.003140 0.003827 199 388 201 384 210 400 Trgb
-0.461610 0.090596 0.110441 221 393 239 390 226 401 Trgb
-0.396072 0.077734 0.094761 214 377 231 373 221 393 Trgb
-0.473078 0.092847 0.113185 239 390 221 393 231 373 Trgb
-0.422991 0.083017 0.101202 231 373 240 373 239 390 Trgb
-0.000000 0.000000 0.000000 211 364 201 371 213 360 Trgb
-0.093452 0.018341 0.022359 214 377 201 384 211 364 Trgb
-0.000000 0.000000 0.000000 201 371 211 364 201 384 Trgb
-0.000000 0.000000 0.000000 201 384 199 388 201 371 Trgb
-0.000000 0.000000 0.000000 229 361 211 364 213 360 Trgb
-0.236764 0.046468 0.056646 231 373 214 377 211 364 Trgb
-0.143312 0.028127 0.034288 211 364 229 361 231 373 Trgb
-0.252533 0.049563 0.060419 240 373 231 373 229 361 Trgb
-0.000000 0.699663 0.209899 381 310 379 311 383 307 Trgb
-0.000000 0.699663 0.209899 379 311 381 307 383 307 Trgb
-0.000000 0.699663 0.209899 381 307 385 304 383 307 Trgb
-0.000000 0.699663 0.209899 385 304 387 303 383 307 Trgb
-0.000000 0.699663 0.209899 387 303 385 307 383 307 Trgb
-0.000000 0.699663 0.209899 385 307 381 310 383 307 Trgb
-0.000000 0.009326 0.002798 303 230 381 307 379 311 Trgb
-0.000000 0.004663 0.001399 303 230 379 311 301 233 Trgb
-0.000000 0.018911 0.005673 307 226 385 304 381 307 Trgb
-0.000000 0.016450 0.004935 307 226 381 307 303 230 Trgb
-0.000000 0.012047 0.003614 310 226 387 303 385 304 Trgb
-0.000000 0.016710 0.005013 310 226 385 304 307 226 Trgb
-0.000000 0.000000 0.000000 381 310 381 307 383 307 Trgb
-0.000000 0.000000 0.000000 381 307 384 304 383 307 Trgb
-0.000000 0.000000 0.000000 384 304 386 304 383 307 Trgb
-0.000000 0.000000 0.000000 386 304 385 307 383 307 Trgb
-0.000000 0.000000 0.000000 385 307 383 310 383 307 Trgb
-0.000000 0.000000 0.000000 383 310 381 310 383 307 Trgb
-0.000000 0.025647 0.007694 383 310 439 357 437 357 Trgb
-0.000000 0.012824 0.003847 383 310 437 357 381 310 Trgb
-0.000000 0.054647 0.016394 385 307 442 354 439 357 Trgb
-0.000000 0.046559 0.013968 385 307 439 357 383 310 Trgb
-0.000000 0.037089 0.011127 386 304 442 352 442 354 Trgb
-0.000000 0.049912 0.014974 386 304 442 354 385 307 Trgb
-0.000000 0.687787 0.206336 438 356 437 353 440 355 Trgb
-0.000000 0.687787 0.206336 437 353 439 352 440 355 Trgb
-0.000000 0.687787 0.206336 439 352 442 353 440 355 Trgb
-0.000000 0.687787 0.206336 442 353 442 356 440 355 Trgb
-0.000000 0.687787 0.206336 442 356 440 357 440 355 Trgb
-0.000000 0.687787 0.206336 440 357 438 356 440 355 Trgb
-0.000000 0.101740 0.030522 442 356 464 346 462 348 Trgb
-0.000000 0.074722 0.022417 442 356 462 348 440 357 Trgb
-0.000000 0.096953 0.029086 442 353 463 344 464 346 Trgb
-0.000000 0.112855 0.033857 442 353 464 346 442 356 Trgb
-0.000000 0.027017 0.008105 439 352 461 343 463 344 Trgb
-0.000000 0.054034 0.016210 439 352 463 344 442 353 Trgb
-0.000000 0.691825 0.207548 460 345 460 344 461 345 Trgb
-0.000000 0.691825 0.207548 460 344 462 345 461 345 Trgb
-0.000000 0.691825 0.207548 462 345 463 345 461 345 Trgb
-0.000000 0.691825 0.207548 463 345 463 346 461 345 Trgb
-0.000000 0.691825 0.207548 463 346 461 346 461 345 Trgb
-0.000000 0.691825 0.207548 461 346 460 345 461 345 Trgb
-0.000000 0.075590 0.022677 462 345 472 314 474 314 Trgb
-0.000000 0.090975 0.027293 462 345 474 314 463 345 Trgb
-0.000000 0.020068 0.006020 460 344 471 313 472 314 Trgb
-0.000000 0.040137 0.012041 460 344 472 314 462 345 Trgb
-0.000000 0.000000 0.000000 460 345 470 314 471 313 Trgb
-0.000000 0.000000 0.000000 460 345 471 313 460 344 Trgb
-0.009659 0.007219 0.003376 468 307 460 308 472 301 Trgb
-0.060429 0.045167 0.021119 484 307 472 301 476 303 Trgb
-0.283462 0.211871 0.099067 485 316 478 310 484 307 Trgb
-0.156813 0.117208 0.054804 472 301 484 307 478 310 Trgb
-0.106043 0.079261 0.037061 478 310 468 307 472 301 Trgb
-0.182166 0.136158 0.063665 478 324 472 327 468 326 Trgb
-0.328054 0.245201 0.114651 485 316 483 320 478 324 Trgb
-0.077145 0.057661 0.026961 460 321 467 317 468 326 Trgb
-0.000000 0.000000 0.000000 459 313 460 308 460 321 Trgb
-0.035955 0.026874 0.012566 467 317 460 321 460 308 Trgb
-0.045614 0.034094 0.015942 460 308 468 307 467 317 Trgb
-0.195825 0.146368 0.068439 467 317 478 324 468 326 Trgb
-0.341713 0.255410 0.119425 478 310 485 316 478 324 Trgb
-0.251020 0.187622 0.087728 478 324 467 317 478 310 Trgb
-0.141998 0.106135 0.049627 468 307 478 310 467 317 Trgb
-0.000000 0.000000 0.000000 463 344 462 346 461 345 Trgb
-0.000000 0.000000 0.000000 462 346 461 347 461 345 Trgb
-0.000000 0.000000 0.000000 461 347 460 346 461 345 Trgb
-0.000000 0.000000 0.000000 460 346 460 345 461 345 Trgb
-0.000000 0.000000 0.000000 460 345 462 344 461 345 Trgb
-0.000000 0.000000 0.000000 462 344 463 344 461 345 Trgb
-0.000000 0.014411 0.004323 461 347 485 367 485 366 Trgb
-0.000000 0.007206 0.002162 461 347 485 366 460 346 Trgb
-0.000000 0.054003 0.016201 462 346 487 366 485 367 Trgb
-0.000000 0.037810 0.011343 462 346 485 367 461 347 Trgb
-0.000000 0.055784 0.016735 463 344 487 364 487 366 Trgb
-0.000000 0.062990 0.018897 463 344 487 366 462 346 Trgb
-0.117681 0.406254 0.104787 491 366 493 361 495 366 Trgb
-0.126551 0.436877 0.112686 495 366 491 373 491 366 Trgb
-0.122641 0.423379 0.109204 487 372 491 366 491 373 Trgb
-0.006385 0.022042 0.005685 481 358 487 358 480 360 Trgb
-0.038254 0.132061 0.034063 491 358 493 361 487 358 Trgb
-0.006385 0.022042 0.005685 487 358 481 358 491 358 Trgb
-0.077571 0.267788 0.069072 481 373 487 372 491 373 Trgb
-0.000000 0.000000 0.000000 477 365 481 358 480 360 Trgb
-0.014824 0.051177 0.013200 487 358 482 366 480 360 Trgb
-0.085380 0.294746 0.076025 493 361 491 366 487 358 Trgb
-0.061950 0.213861 0.055162 482 366 487 358 491 366 Trgb
-0.090341 0.311871 0.080442 491 366 487 372 482 366 Trgb
-0.008440 0.029135 0.007515 482 366 477 365 480 360 Trgb
-0.002055 0.007094 0.001830 481 373 479 370 477 365 Trgb
-0.010495 0.036229 0.009345 477 365 482 366 481 373 Trgb
-0.045270 0.156280 0.040310 487 372 481 373 482 366 Trgb
-0.000000 0.000000 0.000000 461 344 461 344 461 345 Trgb
-0.000000 0.000000 0.000000 461 344 462 346 461 345 Trgb
-0.000000 0.000000 0.000000 462 346 462 347 461 345 Trgb
-0.000000 0.000000 0.000000 462 347 461 346 461 345 Trgb
-0.000000 0.000000 0.000000 461 346 460 344 461 345 Trgb
-0.000000 0.000000 0.000000 460 344 461 344 461 345 Trgb
-0.000000 0.074013 0.022204 462 346 495 335 494 336 Trgb
-0.000000 0.062494 0.018748 462 346 494 336 462 347 Trgb
-0.000000 0.051548 0.015464 461 344 494 333 495 335 Trgb
-0.000000 0.068539 0.020562 461 344 495 335 462 346 Trgb
-0.000000 0.011519 0.003456 461 344 493 332 494 333 Trgb
-0.000000 0.023037 0.006911 461 344 494 333 461 344 Trgb
-0.094155 0.178202 0.054471 504 331 498 324 503 331 Trgb
-0.011283 0.021354 0.006527 494 326 490 324 498 324 Trgb
-0.075245 0.142413 0.043532 498 324 504 331 494 326 Trgb
-0.135510 0.256474 0.078397 498 333 494 326 504 331 Trgb
-0.000000 0.000000 0.000000 484 337 485 329 484 337 Trgb
-0.170934 0.323519 0.098891 497 344 499 341 503 339 Trgb
-0.190588 0.360716 0.110261 504 331 503 339 499 341 Trgb
-0.198172 0.375072 0.114649 499 341 498 333 504 331 Trgb
-0.021265 0.040247 0.012302 485 329 490 336 484 337 Trgb
-0.011283 0.021354 0.006527 490 324 494 326 485 329 Trgb
-0.032547 0.061601 0.018830 490 336 485 329 494 326 Trgb
-0.092812 0.175662 0.053695 494 326 498 333 490 336 Trgb
-0.031247 0.059140 0.018077 490 336 490 344 484 337 Trgb
-0.128236 0.242707 0.074189 499 341 497 344 490 344 Trgb
-0.105192 0.199092 0.060857 490 344 490 336 499 341 Trgb
-0.155475 0.294260 0.089947 498 333 499 341 490 336 Trgb
-0.000000 0.698488 0.209546 453 408 454 408 451 408 Trgb
-0.000000 0.698488 0.209546 454 408 452 409 451 408 Trgb
-0.000000 0.698488 0.209546 452 409 449 409 451 408 Trgb
-0.000000 0.698488 0.209546 449 409 448 409 451 408 Trgb
-0.000000 0.698488 0.209546 448 409 450 408 451 408 Trgb
-0.000000 0.698488 0.209546 450 408 453 408 451 408 Trgb
-0.000000 0.035029 0.010509 442 354 454 408 453 408 Trgb
-0.000000 0.040113 0.012034 442 354 453 408 441 354 Trgb
-0.000000 0.010168 0.003050 439 354 450 408 448 409 Trgb
-0.000000 0.005084 0.001525 439 354 448 409 437 355 Trgb
-0.000000 0.035216 0.010565 441 354 453 408 450 408 Trgb
-0.000000 0.025234 0.007570 441 354 450 408 439 354 Trgb
-0.000000 0.696558 0.208967 443 433 443 434 441 433 Trgb
-0.000000 0.696558 0.208967 443 434 441 435 441 433 Trgb
-0.000000 0.696558 0.208967 441 435 439 434 441 433 Trgb
-0.000000 0.696558 0.208967 439 434 439 432 441 433 Trgb
-0.000000 0.696558 0.208967 439 432 441 432 441 433 Trgb
-0.000000 0.696558 0.208967 441 432 443 433 441 433 Trgb
-0.000000 0.059446 0.017834 453 409 443 434 443 433 Trgb
-0.000000 0.060519 0.018156 453 409 443 433 453 408 Trgb
-0.000000 0.002147 0.000644 451 407 441 432 439 432 Trgb
-0.000000 0.001074 0.000322 451 407 439 432 449 407 Trgb
-0.000000 0.042136 0.012641 453 408 443 433 441 432 Trgb
-0.000000 0.022679 0.006804 453 408 441 432 451 407 Trgb
-0.329826 0.121701 0.090305 449 438 444 450 437 444 Trgb
-0.430194 0.158735 0.117786 456 429 458 440 449 438 Trgb
-0.398450 0.147022 0.109094 444 450 449 438 458 440 Trgb
-0.318627 0.117568 0.087239 458 440 450 446 444 450 Trgb
-0.180059 0.066439 0.049300 444 450 428 444 437 444 Trgb
-0.230910 0.085202 0.063223 432 432 449 438 437 444 Trgb
-0.331278 0.122236 0.090703 445 421 456 429 449 438 Trgb
-0.200618 0.074025 0.054929 449 438 432 432 445 421 Trgb
-0.050851 0.018763 0.013923 432 420 445 421 432 432 Trgb
-0.081143 0.029941 0.022217 428 444 432 432 437 444 Trgb
-0.004639 0.001712 0.001270 432 432 428 444 425 427 Trgb
-0.004639 0.001712 0.001270 425 427 432 420 432 432 Trgb
-0.223084 0.082315 0.061080 456 429 445 421 455 423 Trgb
-0.087786 0.032392 0.024036 438 416 455 423 445 421 Trgb
-0.046212 0.017052 0.012653 445 421 432 420 438 416 Trgb
-0.000000 0.699959 0.209988 485 427 484 429 484 427 Trgb
-0.000000 0.699959 0.209988 484 429 483 429 484 427 Trgb
-0.000000 0.699959 0.209988 483 429 484 427 484 427 Trgb
-0.000000 0.699959 0.209988 484 427 485 425 484 427 Trgb
-0.000000 0.699959 0.209988 485 425 485 426 484 427 Trgb
-0.000000 0.699959 0.209988 485 426 485 427 484 427 Trgb
-0.000000 0.005578 0.001673 450 408 484 427 483 429 Trgb
-0.000000 0.003816 0.001145 450 408 483 429 450 410 Trgb
-0.000000 0.005972 0.001792 451 407 485 425 484 427 Trgb
-0.000000 0.006656 0.001997 451 407 484 427 450 408 Trgb
-0.000000 0.001762 0.000529 452 407 485 426 485 425 Trgb
-0.000000 0.003525 0.001057 452 407 485 425 451 407 Trgb
-0.371114 0.204675 0.115158 489 443 491 432 498 435 Trgb
-0.172821 0.095313 0.053627 475 436 479 426 491 432 Trgb
-0.240382 0.132574 0.074591 491 432 489 443 475 436 Trgb
-0.114646 0.063229 0.035575 477 441 475 436 489 443 Trgb
-0.382205 0.210792 0.118599 491 432 499 422 498 435 Trgb
-0.183911 0.101430 0.057068 479 426 486 416 491 432 Trgb
-0.262562 0.144807 0.081474 499 422 491 432 486 416 Trgb
-0.144668 0.079787 0.044891 486 416 492 413 499 422 Trgb
-0.000000 0.000000 0.000000 471 421 470 432 471 419 Trgb
-0.047085 0.025968 0.014611 479 426 475 436 471 421 Trgb
-0.016255 0.008965 0.005044 470 432 471 421 475 436 Trgb
-0.016255 0.008965 0.005044 475 436 477 441 470 432 Trgb
-0.000000 0.000000 0.000000 480 412 471 421 471 419 Trgb
-0.058175 0.032084 0.018052 486 416 479 426 471 421 Trgb
-0.027345 0.015081 0.008485 471 421 480 412 486 416 Trgb
-0.035187 0.019406 0.010919 492 413 486 416 480 412 Trgb
-0.000000 0.668910 0.200673 449 408 449 407 451 408 Trgb
-0.000000 0.668910 0.200673 449 407 451 407 451 408 Trgb
-0.000000 0.668910 0.200673 451 407 452 408 451 408 Trgb
-0.000000 0.668910 0.200673 452 408 453 409 451 408 Trgb
-0.000000 0.668910 0.200673 453 409 451 409 451 408 Trgb
-0.000000 0.668910 0.200673 451 409 449 408 451 408 Trgb
-0.000000 0.099272 0.029782 451 409 439 442 437 441 Trgb
-0.000000 0.049636 0.014891 451 409 437 441 449 408 Trgb
-0.000000 0.181706 0.054512 453 409 441 441 439 442 Trgb
-0.000000 0.165307 0.049592 453 409 439 442 451 409 Trgb
-0.000000 0.000000 0.000000 449 408 437 441 437 440 Trgb
-0.000000 0.000000 0.000000 449 408 437 440 449 407 Trgb
-0.004375 0.127388 0.026353 433 445 440 448 437 446 Trgb
-0.003962 0.115366 0.023866 433 441 438 444 433 445 Trgb
-0.008337 0.242754 0.050218 440 448 433 445 438 444 Trgb
-0.015764 0.459008 0.094954 438 444 443 445 440 448 Trgb
-0.018343 0.534106 0.110490 443 445 446 443 440 448 Trgb
-0.000000 0.000000 0.000000 432 438 433 441 433 445 Trgb
-0.007368 0.214543 0.044382 443 439 436 437 441 435 Trgb
-0.003962 0.115366 0.023866 438 444 433 441 436 437 Trgb
-0.010090 0.293808 0.060780 436 437 443 439 438 444 Trgb
-0.017517 0.510062 0.105516 443 445 438 444 443 439 Trgb
-0.009534 0.277619 0.057431 445 436 443 439 441 435 Trgb
-0.014836 0.431982 0.089364 443 439 445 436 446 443 Trgb
-0.020096 0.585160 0.121051 446 443 443 445 443 439 Trgb
-0.001240 0.036101 0.007468 436 437 438 433 441 435 Trgb
-0.000000 0.000000 0.000000 433 441 432 438 436 437 Trgb
-0.000000 0.000000 0.000000 438 433 436 437 432 438 Trgb
-0.000000 0.699421 0.209826 496 351 496 354 496 353 Trgb
-0.000000 0.699421 0.209826 496 354 496 355 496 353 Trgb
-0.000000 0.699421 0.209826 496 355 496 354 496 353 Trgb
-0.000000 0.699421 0.209826 496 354 496 351 496 353 Trgb
-0.000000 0.699421 0.209826 496 351 496 350 496 353 Trgb
-0.000000 0.699421 0.209826 496 350 496 351 496 353 Trgb
-0.000000 0.023624 0.007087 439 356 496 354 496 355 Trgb
-0.000000 0.018777 0.005633 439 356 496 355 440 357 Trgb
-0.000000 0.019183 0.005755 439 354 496 351 496 354 Trgb
-0.000000 0.023827 0.007148 439 354 496 354 439 356 Trgb
-0.000000 0.004847 0.001454 439 352 496 350 496 351 Trgb
-0.000000 0.009693 0.002908 439 352 496 351 439 354 Trgb
-0.000000 0.172605 0.051782 496 353 494 352 496 353 Trgb
-0.000000 0.172605 0.051782 494 352 494 351 496 353 Trgb
-0.000000 0.172605 0.051782 494 351 496 352 496 353 Trgb
-0.000000 0.172605 0.051782 496 352 497 353 496 353 Trgb
-0.000000 0.172605 0.051782 497 353 497 354 496 353 Trgb
-0.000000 0.172605 0.051782 497 354 496 353 496 353 Trgb
-0.000000 0.589120 0.176736 497 353 517 321 517 322 Trgb
-0.000000 0.508333 0.152500 497 353 517 322 497 354 Trgb
-0.000000 0.384877 0.115463 496 352 516 320 517 321 Trgb
-0.000000 0.527393 0.158218 496 352 517 321 497 353 Trgb
-0.000000 0.080787 0.024236 494 351 515 320 516 320 Trgb
-0.000000 0.161575 0.048472 494 351 516 320 496 352 Trgb
-0.147652 0.061182 0.041767 532 317 522 307 524 308 Trgb
-0.249743 0.103485 0.070645 526 322 516 315 522 307 Trgb
-0.298271 0.123593 0.084373 522 307 532 317 526 322 Trgb
-0.412156 0.170783 0.116588 531 329 526 322 532 317 Trgb
-0.040189 0.016653 0.011368 522 307 512 306 524 308 Trgb
-0.099123 0.041073 0.028039 516 315 506 311 522 307 Trgb
-0.040189 0.016653 0.011368 512 306 522 307 506 311 Trgb
-0.000000 0.000000 0.000000 506 311 502 313 512 306 Trgb
-0.155686 0.064511 0.044039 510 326 520 336 507 334 Trgb
-0.252711 0.104714 0.071485 516 315 526 322 510 326 Trgb
-0.304207 0.126053 0.086052 520 336 510 326 526 322 Trgb
-0.415124 0.172013 0.117427 526 322 531 329 520 336 Trgb
-0.045255 0.018752 0.012802 500 325 510 326 507 334 Trgb
-0.102091 0.042303 0.028879 506 311 516 315 510 326 Trgb
-0.043157 0.017883 0.012208 510 326 500 325 506 311 Trgb
-0.000000 0.000000 0.000000 502 313 506 311 500 325 Trgb
-0.000000 0.000000 0.000000 496 354 495 352 496 353 Trgb
-0.000000 0.000000 0.000000 495 352 494 351 496 353 Trgb
-0.000000 0.000000 0.000000 494 351 496 351 496 353 Trgb
-0.000000 0.000000 0.000000 496 351 497 353 496 353 Trgb
-0.000000 0.000000 0.000000 497 353 497 354 496 353 Trgb
-0.000000 0.000000 0.000000 497 354 496 354 496 353 Trgb
-0.000000 0.192098 0.057629 497 353 525 330 525 331 Trgb
-0.000000 0.177366 0.053210 497 353 525 331 497 354 Trgb
-0.000000 0.098407 0.029522 496 351 523 328 525 330 Trgb
-0.000000 0.152618 0.045785 496 351 525 330 497 353 Trgb
-0.000000 0.014732 0.004420 494 351 522 328 523 328 Trgb
-0.000000 0.029463 0.008839 494 351 523 328 496 351 Trgb
-0.180153 0.097673 0.055565 540 329 531 317 535 320 Trgb
-0.192968 0.104621 0.059518 532 329 523 320 531 317 Trgb
-0.282334 0.153073 0.087081 531 317 540 329 532 329 Trgb
-0.391187 0.212089 0.120655 535 338 532 329 540 329 Trgb
-0.087413 0.047393 0.026961 524 342 516 342 512 339 Trgb
-0.315976 0.171312 0.097458 535 338 532 342 524 342 Trgb
-0.067950 0.036840 0.020958 523 320 515 317 531 317 Trgb
-0.092721 0.050270 0.028598 515 330 524 342 512 339 Trgb
-0.160670 0.087110 0.049556 523 320 532 329 515 330 Trgb
-0.217739 0.118051 0.067158 524 342 515 330 532 329 Trgb
-0.358889 0.194578 0.110694 532 329 535 338 524 342 Trgb
-0.005308 0.002878 0.001637 508 330 515 330 512 339 Trgb
-0.035652 0.019330 0.010996 515 317 523 320 515 330 Trgb
-0.005308 0.002878 0.001637 515 330 508 330 515 317 Trgb
-0.000000 0.000000 0.000000 512 321 515 317 508 330 Trgb
-0.000000 0.000000 0.000000 496 353 495 354 496 353 Trgb
-0.000000 0.000000 0.000000 495 354 495 354 496 353 Trgb
-0.000000 0.000000 0.000000 495 354 496 352 496 353 Trgb
-0.000000 0.000000 0.000000 496 352 497 351 496 353 Trgb
-0.000000 0.000000 0.000000 497 351 497 352 496 353 Trgb
-0.000000 0.000000 0.000000 497 352 496 353 496 353 Trgb
-0.000000 0.028228 0.008468 497 352 526 379 524 380 Trgb
-0.000000 0.027588 0.008276 497 352 524 380 496 353 Trgb
-0.000000 0.010903 0.003271 497 351 526 378 526 379 Trgb
-0.000000 0.019885 0.005966 497 351 526 379 497 352 Trgb
-0.000000 0.017965 0.005390 496 353 524 380 523 381 Trgb
-0.000000 0.008983 0.002695 496 353 523 381 495 354 Trgb
-0.553377 0.015557 0.113787 535 393 545 380 539 394 Trgb
-0.488126 0.013722 0.100370 525 384 535 373 535 393 Trgb
-0.537456 0.015109 0.110513 545 380 535 393 535 373 Trgb
-0.413448 0.011623 0.085014 535 373 539 366 545 380 Trgb
-0.433488 0.012186 0.089135 525 399 535 393 539 394 Trgb
-0.368237 0.010352 0.075718 514 393 525 384 535 393 Trgb
-0.297677 0.008368 0.061209 535 393 525 399 514 393 Trgb
-0.088894 0.002499 0.018279 510 393 514 393 525 399 Trgb
-0.000000 0.000000 0.000000 524 360 514 373 510 366 Trgb
-0.279343 0.007853 0.057439 535 373 525 384 514 373 Trgb
-0.150823 0.004240 0.031012 514 373 524 360 535 373 Trgb
-0.235597 0.006623 0.048444 539 366 535 373 524 360 Trgb
-0.000000 0.000000 0.000000 514 373 504 380 510 366 Trgb
-0.159453 0.004483 0.032787 525 384 514 393 514 373 Trgb
-0.030933 0.000870 0.006360 504 380 514 373 514 393 Trgb
-0.030933 0.000870 0.006360 514 393 510 393 504 380 Trgb
-0.000000 0.698638 0.209592 397 383 401 383 397 384 Trgb
-0.000000 0.698638 0.209592 401 383 400 384 397 384 Trgb
-0.000000 0.698638 0.209592 400 384 396 385 397 384 Trgb
-0.000000 0.698638 0.209592 396 385 393 385 397 384 Trgb
-0.000000 0.698638 0.209592 393 385 393 384 397 384 Trgb
-0.000000 0.698638 0.209592 393 384 397 383 397 384 Trgb
-0.000000 0.038092 0.011428 387 306 401 383 397 383 Trgb
-0.000000 0.033330 0.009999 387 306 397 383 384 306 Trgb
-0.000000 0.000000 0.000000 380 307 393 384 393 385 Trgb
-0.000000 0.000000 0.000000 380 307 393 385 380 308 Trgb
-0.000000 0.019045 0.005714 384 306 397 383 393 384 Trgb
-0.000000 0.009523 0.002857 384 306 393 384 380 307 Trgb
-0.000000 0.617376 0.185213 369 434 371 436 369 435 Trgb
-0.000000 0.617376 0.185213 371 436 371 437 369 435 Trgb
-0.000000 0.617376 0.185213 371 437 369 436 369 435 Trgb
-0.000000 0.617376 0.185213 369 436 367 434 369 435 Trgb
-0.000000 0.617376 0.185213 367 434 367 434 369 435 Trgb
-0.000000 0.617376 0.185213 367 434 369 434 369 435 Trgb
-0.000000 0.264623 0.079387 399 385 371 436 369 434 Trgb
-0.000000 0.200825 0.060247 399 385 369 434 397 383 Trgb
-0.000000 0.237071 0.071121 399 386 371 437 371 436 Trgb
-0.000000 0.282747 0.084824 399 386 371 436 399 385 Trgb
-0.000000 0.091351 0.027405 397 383 369 434 367 434 Trgb
-0.000000 0.045675 0.013703 397 383 367 434 394 383 Trgb
-0.000000 0.698748 0.209624 369 435 369 433 369 435 Trgb
-0.000000 0.698748 0.209624 369 433 369 434 369 435 Trgb
-0.000000 0.698748 0.209624 369 434 369 435 369 435 Trgb
-0.000000 0.698748 0.209624 369 435 370 437 369 435 Trgb
-0.000000 0.698748 0.209624 370 437 369 437 369 435 Trgb
-0.000000 0.698748 0.209624 369 437 369 435 369 435 Trgb
-0.000000 0.035263 0.010579 369 437 329 445 329 443 Trgb
-0.000000 0.028701 0.008610 369 437 329 443 369 435 Trgb
-0.000000 0.027065 0.008120 370 437 329 445 329 445 Trgb
-0.000000 0.034445 0.010334 370 437 329 445 369 437 Trgb
-0.000000 0.014759 0.004428 369 435 329 443 328 442 Trgb
-0.000000 0.007380 0.002214 369 435 328 442 369 433 Trgb
-0.000793 0.000950 0.000349 318 443 321 455 315 446 Trgb
-0.122526 0.146716 0.053848 327 441 329 451 318 443 Trgb
-0.080197 0.096030 0.035245 321 455 318 443 329 451 Trgb
-0.149369 0.178859 0.065646 329 451 331 457 321 455 Trgb
-0.000000 0.000000 0.000000 318 436 318 443 315 446 Trgb
-0.043122 0.051635 0.018951 326 432 327 441 318 443 Trgb
-0.000000 0.000000 0.000000 318 443 318 436 326 432 Trgb
-0.000000 0.000000 0.000000 326 430 326 432 318 436 Trgb
-0.243693 0.291804 0.107100 340 451 337 439 342 441 Trgb
-0.201137 0.240847 0.088397 329 451 327 441 337 439 Trgb
-0.255047 0.305399 0.112089 337 439 340 451 329 451 Trgb
-0.245608 0.294097 0.107941 331 457 329 451 340 451 Trgb
-0.146662 0.175617 0.064456 337 439 337 432 342 441 Trgb
-0.121733 0.145766 0.053500 327 441 326 432 337 439 Trgb
-0.078611 0.094131 0.034548 337 432 337 439 326 432 Trgb
-0.000000 0.000000 0.000000 326 432 326 430 337 432 Trgb
-0.000000 0.696899 0.209070 360 448 358 449 358 447 Trgb
-0.000000 0.696899 0.209070 358 449 356 448 358 447 Trgb
-0.000000 0.696899 0.209070 356 448 356 446 358 447 Trgb
-0.000000 0.696899 0.209070 356 446 358 445 358 447 Trgb
-0.000000 0.696899 0.209070 358 445 360 446 358 447 Trgb
-0.000000 0.696899 0.209070 360 446 360 448 358 447 Trgb
-0.000000 0.000000 0.000000 369 433 358 445 356 446 Trgb
-0.000000 0.000000 0.000000 369 433 356 446 367 434 Trgb
-0.000000 0.028512 0.008554 371 434 360 446 358 445 Trgb
-0.000000 0.014256 0.004277 371 434 358 445 369 433 Trgb
-0.000000 0.057393 0.017218 371 436 360 448 360 446 Trgb
-0.000000 0.050081 0.015024 371 436 360 446 371 434 Trgb
-0.031196 0.349100 0.076059 362 452 354 455 356 450 Trgb
-0.044298 0.495717 0.108003 366 452 361 456 362 452 Trgb
-0.031814 0.356014 0.077566 354 455 362 452 361 456 Trgb
-0.013721 0.153545 0.033453 361 456 355 455 354 455 Trgb
-0.013103 0.146631 0.031947 354 455 351 446 356 450 Trgb
-0.000000 0.000000 0.000000 350 450 350 443 351 446 Trgb
-0.004147 0.046407 0.010111 351 446 354 455 350 450 Trgb
-0.035568 0.398023 0.086718 359 444 362 452 356 450 Trgb
-0.048670 0.544640 0.118662 366 445 366 452 362 452 Trgb
-0.040558 0.453861 0.098884 362 452 359 444 366 445 Trgb
-0.025556 0.285986 0.062308 362 440 366 445 359 444 Trgb
-0.017475 0.195555 0.042606 351 446 359 444 356 450 Trgb
-0.000000 0.000000 0.000000 350 443 355 439 351 446 Trgb
-0.008519 0.095331 0.020770 359 444 351 446 355 439 Trgb
-0.011610 0.129925 0.028307 355 439 362 440 359 444 Trgb
-0.017037 0.190656 0.041539 366 445 362 440 362 440 Trgb
-0.000000 0.000000 0.000000 367 434 369 434 369 435 Trgb
-0.000000 0.000000 0.000000 369 434 371 435 369 435 Trgb
-0.000000 0.000000 0.000000 371 435 371 436 369 435 Trgb
-0.000000 0.000000 0.000000 371 436 369 436 369 435 Trgb
-0.000000 0.000000 0.000000 369 436 367 436 369 435 Trgb
-0.000000 0.000000 0.000000 367 436 367 434 369 435 Trgb
-0.000000 0.242861 0.072858 369 436 372 469 370 468 Trgb
-0.000000 0.121430 0.036429 369 436 370 468 367 436 Trgb
-0.000000 0.537282 0.161185 371 436 374 468 372 469 Trgb
-0.000000 0.450787 0.135236 371 436 372 469 369 436 Trgb
-0.000000 0.380917 0.114275 371 435 374 467 374 468 Trgb
-0.000000 0.502347 0.150704 371 435 374 468 371 436 Trgb
-0.023187 0.019364 0.008510 357 469 363 475 366 481 Trgb
-0.316349 0.264191 0.116108 374 477 384 473 381 480 Trgb
-0.200748 0.167650 0.073679 381 480 366 481 374 477 Trgb
-0.121324 0.101321 0.044529 363 475 374 477 366 481 Trgb
-0.006442 0.005380 0.002364 365 465 363 456 371 456 Trgb
-0.006442 0.005380 0.002364 363 456 365 465 357 469 Trgb
-0.018714 0.015629 0.006869 363 475 357 469 365 465 Trgb
-0.298993 0.249697 0.109738 384 473 387 466 381 480 Trgb
-0.093666 0.078222 0.034378 379 463 365 465 371 456 Trgb
-0.311877 0.260456 0.114467 384 473 374 477 379 463 Trgb
-0.191803 0.160180 0.070397 365 465 379 463 374 477 Trgb
-0.116852 0.097586 0.042888 374 477 363 475 365 465 Trgb
-0.000000 0.000000 0.000000 363 456 378 454 371 456 Trgb
-0.087224 0.072843 0.032013 378 454 379 463 371 456 Trgb
-0.294521 0.245962 0.108097 387 466 384 473 379 463 Trgb
-0.168006 0.140306 0.061662 379 463 378 454 387 466 Trgb
-0.000000 0.699893 0.209968 443 419 441 421 443 419 Trgb
-0.000000 0.699893 0.209968 441 421 441 420 443 419 Trgb
-0.000000 0.699893 0.209968 441 420 442 418 443 419 Trgb
-0.000000 0.699893 0.209968 442 418 444 416 443 419 Trgb
-0.000000 0.699893 0.209968 444 416 444 417 443 419 Trgb
-0.000000 0.699893 0.209968 444 417 443 419 443 419 Trgb
-0.000000 0.001169 0.000351 395 386 441 420 441 421 Trgb
-0.000000 0.000585 0.000175 395 386 441 421 396 386 Trgb
-0.000000 0.008146 0.002444 396 383 442 418 441 420 Trgb
-0.000000 0.004950 0.001485 396 383 441 420 395 386 Trgb
-0.000000 0.010173 0.003052 398 382 444 416 442 418 Trgb
-0.000000 0.010758 0.003227 398 382 442 418 396 383 Trgb
-0.000000 0.699690 0.209907 475 413 475 415 474 414 Trgb
-0.000000 0.699690 0.209907 475 415 474 416 474 414 Trgb
-0.000000 0.699690 0.209907 474 416 473 415 474 414 Trgb
-0.000000 0.699690 0.209907 473 415 473 412 474 414 Trgb
-0.000000 0.699690 0.209907 473 412 474 412 474 414 Trgb
-0.000000 0.699690 0.209907 474 412 475 413 474 414 Trgb
-0.000000 0.009727 0.002918 441 419 473 415 474 416 Trgb
-0.000000 0.014819 0.004446 441 419 474 416 443 421 Trgb
-0.000000 0.001545 0.000463 441 417 473 412 473 415 Trgb
-0.000000 0.003090 0.000927 441 417 473 415 441 419 Trgb
-0.000000 0.000000 0.000000 442 416 474 412 473 412 Trgb
-0.000000 0.000000 0.000000 442 416 473 412 441 417 Trgb
-0.444852 0.102658 0.109502 492 406 490 425 489 411 Trgb
-0.475371 0.109701 0.117014 490 425 477 419 489 411 Trgb
-0.234152 0.054035 0.057637 472 433 463 423 477 419 Trgb
-0.394626 0.091068 0.097139 477 419 490 425 472 433 Trgb
-0.358772 0.082794 0.088313 482 431 472 433 490 425 Trgb
-0.311095 0.071791 0.076577 479 399 492 406 489 411 Trgb
-0.148213 0.034203 0.036483 492 406 479 399 476 395 Trgb
-0.048297 0.011145 0.011888 466 396 476 395 479 399 Trgb
-0.341613 0.078834 0.084089 477 419 479 399 489 411 Trgb
-0.152014 0.035080 0.037419 463 423 461 407 477 419 Trgb
-0.178731 0.041246 0.043995 479 399 477 419 461 407 Trgb
-0.048297 0.011145 0.011888 461 407 466 396 479 399 Trgb
-0.103718 0.023935 0.025530 463 423 472 433 456 422 Trgb
-0.021580 0.004980 0.005312 461 407 463 423 456 422 Trgb
-0.000000 0.000000 0.000000 456 422 458 403 461 407 Trgb
-0.000000 0.000000 0.000000 466 396 461 407 458 403 Trgb
-0.000000 0.000000 0.000000 442 419 441 419 443 419 Trgb
-0.000000 0.000000 0.000000 441 419 441 419 443 419 Trgb
-0.000000 0.000000 0.000000 441 419 443 418 443 419 Trgb
-0.000000 0.000000 0.000000 443 418 445 418 443 419 Trgb
-0.000000 0.000000 0.000000 445 418 444 418 443 419 Trgb
-0.000000 0.000000 0.000000 444 418 442 419 443 419 Trgb
-0.000000 0.045400 0.013620 444 418 452 460 450 460 Trgb
-0.000000 0.030855 0.009257 444 418 450 460 442 419 Trgb
-0.000000 0.049070 0.014721 445 418 453 460 452 460 Trgb
-0.000000 0.054507 0.016352 445 418 452 460 444 418 Trgb
-0.000000 0.010874 0.003262 442 419 450 460 449 460 Trgb
-0.000000 0.005437 0.001631 442 419 449 460 441 419 Trgb
-0.353693 0.099034 0.090545 448 476 466 472 455 479 Trgb
-0.272514 0.076304 0.069763 443 463 458 461 448 476 Trgb
-0.402283 0.112639 0.102985 466 472 448 476 458 461 Trgb
-0.462817 0.129589 0.118481 458 461 468 458 466 472 Trgb
-0.182115 0.050992 0.046621 442 475 448 476 455 479 Trgb
-0.134561 0.037677 0.034448 434 464 443 463 448 476 Trgb
-0.092752 0.025971 0.023745 448 476 442 475 434 464 Trgb
-0.045201 0.012656 0.011571 461 445 443 449 447 441 Trgb
-0.179761 0.050333 0.046019 458 461 443 463 443 449 Trgb
-0.183153 0.051283 0.046887 443 449 461 445 458 461 Trgb
-0.336439 0.094203 0.086129 468 458 458 461 461 445 Trgb
-0.277313 0.077648 0.070992 469 456 468 458 461 445 Trgb
-0.000000 0.000000 0.000000 443 449 437 448 447 441 Trgb
-0.041809 0.011706 0.010703 443 463 434 464 443 449 Trgb
-0.000000 0.000000 0.000000 437 448 443 449 434 464 Trgb
-0.000000 0.698795 0.209638 443 439 445 440 442 440 Trgb
-0.000000 0.698795 0.209638 445 440 444 442 442 440 Trgb
-0.000000 0.698795 0.209638 444 442 441 442 442 440 Trgb
-0.000000 0.698795 0.209638 441 442 440 440 442 440 Trgb
-0.000000 0.698795 0.209638 440 440 441 439 442 440 Trgb
-0.000000 0.698795 0.209638 441 439 443 439 442 440 Trgb
-0.000000 0.031657 0.009497 445 418 445 440 443 439 Trgb
-0.000000 0.022869 0.006861 445 418 443 439 444 417 Trgb
-0.000000 0.000000 0.000000 441 417 441 439 440 440 Trgb
-0.000000 0.000000 0.000000 441 417 440 440 440 419 Trgb
-0.000000 0.009388 0.002816 444 417 443 439 441 439 Trgb
-0.000000 0.004694 0.001408 444 417 441 439 441 417 Trgb
-0.464524 0.061662 0.105237 449 436 456 454 442 452 Trgb
-0.328483 0.043604 0.074417 452 424 463 435 449 436 Trgb
-0.473280 0.062825 0.107221 456 454 449 436 463 435 Trgb
-0.488213 0.064807 0.110604 463 435 462 449 456 454 Trgb
-0.388439 0.051563 0.088000 456 454 436 460 442 452 Trgb
-0.321110 0.042625 0.072747 436 460 456 454 449 458 Trgb
-0.265926 0.035300 0.060245 428 442 449 436 442 452 Trgb
-0.186236 0.024722 0.042191 435 423 452 424 449 436 Trgb
-0.132435 0.017580 0.030003 449 436 428 442 435 423 Trgb
-0.000000 0.000000 0.000000 423 432 435 423 428 442 Trgb
-0.196048 0.026024 0.044414 463 435 452 424 449 421 Trgb
-0.189841 0.025200 0.043008 436 460 428 442 442 452 Trgb
-0.056350 0.007480 0.012766 428 442 436 460 422 446 Trgb
-0.000000 0.000000 0.000000 422 446 423 432 428 442 Trgb
-0.053800 0.007142 0.012188 452 424 435 423 449 421 Trgb
-0.000000 0.000000 0.000000 435 423 423 432 429 427 Trgb
-0.000000 0.000000 0.000000 394 385 396 383 397 384 Trgb
-0.000000 0.000000 0.000000 396 383 398 382 397 384 Trgb
-0.000000 0.000000 0.000000 398 382 399 383 397 384 Trgb
-0.000000 0.000000 0.000000 399 383 398 385 397 384 Trgb
-0.000000 0.000000 0.000000 398 385 395 386 397 384 Trgb
-0.000000 0.000000 0.000000 395 386 394 385 397 384 Trgb
-0.000000 0.009095 0.002729 395 386 418 431 417 430 Trgb
-0.000000 0.004548 0.001364 395 386 417 430 394 385 Trgb
-0.000000 0.072128 0.021639 398 385 420 430 418 431 Trgb
-0.000000 0.042886 0.012866 398 385 418 431 395 386 Trgb
-0.000000 0.092276 0.027683 399 383 422 429 420 430 Trgb
-0.000000 0.096823 0.029047 399 383 420 430 398 385 Trgb
-0.000000 0.697133 0.209140 418 430 418 428 419 429 Trgb
-0.000000 0.697133 0.209140 418 428 419 427 419 429 Trgb
-0.000000 0.697133 0.209140 419 427 421 428 419 429 Trgb
-0.000000 0.697133 0.209140 421 428 421 430 419 429 Trgb
-0.000000 0.697133 0.209140 421 430 419 431 419 429 Trgb
-0.000000 0.697133 0.209140 419 431 418 430 419 429 Trgb
-0.000000 0.020589 0.006177 419 431 420 435 418 434 Trgb
-0.000000 0.010295 0.003088 419 431 418 434 418 430 Trgb
-0.000000 0.052480 0.015744 421 430 422 435 420 435 Trgb
-0.000000 0.041682 0.012505 421 430 420 435 419 431 Trgb
-0.000000 0.042689 0.012807 421 428 422 433 422 435 Trgb
-0.000000 0.052984 0.015895 421 428 422 435 421 430 Trgb
-0.291762 0.030182 0.064389 426 444 408 438 420 431 Trgb
-0.050562 0.005231 0.011159 415 452 403 442 408 438 Trgb
-0.235211 0.024332 0.051909 408 438 426 444 415 452 Trgb
-0.389230 0.040265 0.085899 429 450 415 452 426 444 Trgb
-0.425848 0.044053 0.093980 432 426 426 444 420 431 Trgb
-0.413548 0.042781 0.091266 437 425 438 439 432 426 Trgb
-0.503383 0.052074 0.111092 426 444 432 426 438 439 Trgb
-0.523316 0.054136 0.115491 438 439 429 450 426 444 Trgb
-0.107113 0.011081 0.023639 408 438 413 420 420 431 Trgb
-0.005095 0.000527 0.001124 403 442 402 428 408 438 Trgb
-0.005095 0.000527 0.001124 413 420 408 438 402 428 Trgb
-0.000000 0.000000 0.000000 402 428 411 417 413 420 Trgb
-0.241200 0.024952 0.053230 413 420 432 426 420 431 Trgb
-0.233994 0.024206 0.051640 426 416 437 425 432 426 Trgb
-0.139181 0.014398 0.030716 432 426 413 420 426 416 Trgb
-0.000000 0.000000 0.000000 411 417 426 416 413 420 Trgb
-0.000000 0.697171 0.209151 417 467 417 468 415 467 Trgb
-0.000000 0.697171 0.209151 417 468 415 468 415 467 Trgb
-0.000000 0.697171 0.209151 415 468 414 467 415 467 Trgb
-0.000000 0.697171 0.209151 414 467 414 467 415 467 Trgb
-0.000000 0.697171 0.209151 414 467 415 467 415 467 Trgb
-0.000000 0.697171 0.209151 415 467 417 467 415 467 Trgb
-0.000000 0.044776 0.013433 421 430 417 468 417 467 Trgb
-0.000000 0.053715 0.016115 421 430 417 467 421 429 Trgb
-0.000000 0.017878 0.005364 419 428 415 467 414 467 Trgb
-0.000000 0.008939 0.002682 419 428 414 467 418 429 Trgb
-0.000000 0.050709 0.015213 421 429 417 467 415 467 Trgb
-0.000000 0.038763 0.011629 421 429 415 467 419 428 Trgb
-0.398748 0.030157 0.085781 427 480 421 486 413 487 Trgb
-0.541936 0.040987 0.116584 433 466 435 471 427 480 Trgb
-0.376526 0.028477 0.081001 407 476 427 480 413 487 Trgb
-0.519713 0.039306 0.111804 421 461 433 466 427 480 Trgb
-0.393916 0.029792 0.084742 427 480 407 476 421 461 Trgb
-0.185847 0.014056 0.039980 405 460 421 461 407 476 Trgb
-0.393176 0.029736 0.084582 435 471 433 466 429 453 Trgb
-0.168457 0.012740 0.036239 401 482 407 476 413 487 Trgb
-0.063268 0.004785 0.013611 407 476 401 482 396 463 Trgb
-0.063268 0.004785 0.013611 396 463 405 460 407 476 Trgb
-0.059310 0.004486 0.012759 429 453 410 449 417 448 Trgb
-0.370954 0.028055 0.079802 433 466 421 461 429 453 Trgb
-0.181888 0.013756 0.039129 410 449 429 453 421 461 Trgb
-0.122578 0.009271 0.026370 421 461 405 460 410 449 Trgb
-0.000000 0.000000 0.000000 405 460 396 463 410 449 Trgb
-0.000000 0.013103 0.003931 419 430 457 446 456 446 Trgb
-0.000000 0.006551 0.001965 419 430 456 446 419 431 Trgb
-0.000000 0.020230 0.006069 420 429 457 444 457 446 Trgb
-0.000000 0.019942 0.005983 420 429 457 446 419 430 Trgb
-0.000000 0.007416 0.002225 420 427 458 443 457 444 Trgb
-0.000000 0.013967 0.004190 420 427 457 444 420 429 Trgb
-0.105394 0.247297 0.070538 453 455 455 452 463 453 Trgb
-0.099335 0.233080 0.066483 463 453 462 453 453 455 Trgb
-0.076087 0.178532 0.050924 460 437 461 434 467 442 Trgb
-0.177850 0.417308 0.119032 463 453 467 442 468 449 Trgb
-0.134392 0.315339 0.089946 455 452 458 444 463 453 Trgb
-0.157331 0.369162 0.105299 467 442 463 453 458 444 Trgb
-0.113669 0.266714 0.076077 458 444 460 437 467 442 Trgb
-0.000000 0.000000 0.000000 448 446 447 447 447 440 Trgb
-0.041228 0.096737 0.027593 455 452 453 455 448 446 Trgb
-0.008584 0.020141 0.005745 447 447 448 446 453 455 Trgb
-0.000000 0.000000 0.000000 451 436 452 436 447 440 Trgb
-0.020505 0.048112 0.013723 461 434 460 437 452 436 Trgb
-0.000000 0.000000 0.000000 452 436 448 446 447 440 Trgb
-0.070226 0.164778 0.047001 458 444 455 452 448 446 Trgb
-0.037582 0.088182 0.025153 448 446 452 436 458 444 Trgb
-0.058087 0.136295 0.038876 460 437 458 444 452 436 Trgb
-0.000000 0.699414 0.209824 398 361 400 364 396 364 Trgb
-0.000000 0.699414 0.209824 400 364 398 366 396 364 Trgb
-0.000000 0.699414 0.209824 398 366 394 367 396 364 Trgb
-0.000000 0.699414 0.209824 394 367 392 364 396 364 Trgb
-0.000000 0.699414 0.209824 392 364 394 361 396 364 Trgb
-0.000000 0.699414 0.209824 394 361 398 361 396 364 Trgb
-0.000000 0.025252 0.007576 387 307 400 364 398 361 Trgb
-0.000000 0.023246 0.006974 387 307 398 361 385 304 Trgb
-0.000000 0.000000 0.000000 381 305 394 361 392 364 Trgb
-0.000000 0.000000 0.000000 381 305 392 364 379 307 Trgb
-0.000000 0.014159 0.004248 385 304 398 361 394 361 Trgb
-0.000000 0.007080 0.002124 385 304 394 361 381 305 Trgb
-0.000000 0.670057 0.201017 363 403 365 405 363 405 Trgb
-0.000000 0.670057 0.201017 365 405 366 407 363 405 Trgb
-0.000000 0.670057 0.201017 366 407 364 407 363 405 Trgb
-0.000000 0.670057 0.201017 364 407 361 406 363 405 Trgb
-0.000000 0.670057 0.201017 361 406 361 404 363 405 Trgb
-0.000000 0.670057 0.201017 361 404 363 403 363 405 Trgb
-0.000000 0.126608 0.037982 398 364 365 405 363 403 Trgb
-0.000000 0.070797 0.021239 398 364 363 403 396 362 Trgb
-0.000000 0.172428 0.051728 399 366 366 407 365 405 Trgb
-0.000000 0.177423 0.053227 399 366 365 405 398 364 Trgb
-0.000000 0.009991 0.002997 396 362 363 403 361 404 Trgb
-0.000000 0.004996 0.001499 396 362 361 404 394 362 Trgb
-0.000000 0.000000 0.000000 321 398 321 400 321 399 Trgb
-0.000000 0.000000 0.000000 321 400 320 401 321 399 Trgb
-0.000000 0.000000 0.000000 320 401 320 400 321 399 Trgb
-0.000000 0.000000 0.000000 320 400 320 397 321 399 Trgb
-0.000000 0.000000 0.000000 320 397 321 396 321 399 Trgb
-0.000000 0.000000 0.000000 321 396 321 398 321 399 Trgb
-0.000000 0.039172 0.011752 363 407 321 400 321 398 Trgb
-0.000000 0.034938 0.010481 363 407 321 398 364 405 Trgb
-0.000000 0.022937 0.006881 363 408 320 401 321 400 Trgb
-0.000000 0.033171 0.009951 363 408 321 400 363 407 Trgb
-0.000000 0.020469 0.006141 364 405 321 398 321 396 Trgb
-0.000000 0.010235 0.003070 364 405 321 396 363 403 Trgb
-0.000000 0.000000 0.000000 316 395 314 403 312 397 Trgb
-0.027860 0.282235 0.062019 323 395 322 402 316 395 Trgb
-0.016503 0.167185 0.036738 314 403 316 395 322 402 Trgb
-0.028485 0.288569 0.063411 322 402 320 407 314 403 Trgb
-0.012424 0.125863 0.027657 320 407 319 407 314 403 Trgb
-0.000000 0.000000 0.000000 315 392 316 395 312 397 Trgb
-0.011357 0.115051 0.025282 322 390 323 395 316 395 Trgb
-0.000000 0.000000 0.000000 316 395 315 392 322 390 Trgb
-0.047694 0.483162 0.106171 326 405 328 397 329 400 Trgb
-0.045026 0.456136 0.100232 322 402 323 395 328 397 Trgb
-0.051278 0.519465 0.114148 328 397 326 405 322 402 Trgb
-0.046094 0.466948 0.102608 320 407 322 402 326 405 Trgb
-0.030749 0.311499 0.068450 328 397 327 394 329 400 Trgb
-0.028523 0.288951 0.063495 323 395 322 390 328 397 Trgb
-0.017829 0.180617 0.039689 327 394 328 397 322 390 Trgb
-0.000000 0.699487 0.209846 371 439 368 439 370 437 Trgb
-0.000000 0.699487 0.209846 368 439 368 437 370 437 Trgb
-0.000000 0.699487 0.209846 368 437 370 436 370 437 Trgb
-0.000000 0.699487 0.209846 370 436 372 436 370 437 Trgb
-0.000000 0.699487 0.209846 372 436 372 438 370 437 Trgb
-0.000000 0.699487 0.209846 372 438 371 439 370 437 Trgb
-0.000000 0.000605 0.000182 363 404 370 436 368 437 Trgb
-0.000000 0.000303 0.000091 363 404 368 437 361 405 Trgb
-0.000000 0.016071 0.004821 365 404 372 436 370 436 Trgb
-0.000000 0.008489 0.002547 365 404 370 436 363 404 Trgb
-0.000000 0.023048 0.006914 365 406 372 438 372 436 Trgb
-0.000000 0.023350 0.007005 365 406 372 436 365 404 Trgb
-0.065732 0.277683 0.068683 373 448 364 445 372 445 Trgb
-0.067033 0.283180 0.070043 364 445 370 438 372 445 Trgb
-0.026637 0.112527 0.027833 361 434 368 430 370 438 Trgb
-0.031584 0.133427 0.033002 370 438 364 445 361 434 Trgb
-0.005867 0.024787 0.006131 360 440 361 434 364 445 Trgb
-0.104129 0.439892 0.108804 379 441 373 448 372 445 Trgb
-0.089964 0.380052 0.094003 381 435 379 440 379 441 Trgb
-0.105430 0.445389 0.110164 370 438 379 441 372 445 Trgb
-0.046486 0.196380 0.048573 368 430 376 430 370 438 Trgb
-0.089831 0.379489 0.093864 379 441 370 438 376 430 Trgb
-0.091265 0.385549 0.095363 376 430 381 435 379 441 Trgb
-0.000920 0.003887 0.000961 368 430 361 434 367 427 Trgb
-0.000000 0.000000 0.000000 361 434 367 427 361 434 Trgb
-0.020769 0.087740 0.021702 376 430 368 430 367 427 Trgb
-0.019849 0.083853 0.020740 367 427 376 430 376 430 Trgb
-0.047000 0.198553 0.049111 381 435 376 430 376 430 Trgb
-0.000000 0.699497 0.209849 381 445 379 445 381 444 Trgb
-0.000000 0.699497 0.209849 379 445 380 444 381 444 Trgb
-0.000000 0.699497 0.209849 380 444 382 443 381 444 Trgb
-0.000000 0.699497 0.209849 382 443 383 443 381 444 Trgb
-0.000000 0.699497 0.209849 383 443 383 444 381 444 Trgb
-0.000000 0.699497 0.209849 383 444 381 445 381 444 Trgb
-0.000000 0.000696 0.000209 362 406 380 444 379 445 Trgb
-0.000000 0.000348 0.000104 362 406 379 445 361 406 Trgb
-0.000000 0.016007 0.004802 364 405 382 443 380 444 Trgb
-0.000000 0.008525 0.002558 364 405 380 444 362 406 Trgb
-0.000000 0.022792 0.006838 365 404 383 443 382 443 Trgb
-0.000000 0.023140 0.006942 365 404 382 443 364 405 Trgb
-0.310982 0.003067 0.062810 384 465 374 464 391 465 Trgb
-0.084174 0.000830 0.017001 363 455 361 451 374 464 Trgb
-0.485793 0.004791 0.098117 374 464 393 453 391 465 Trgb
-0.382596 0.003773 0.077274 371 443 388 435 393 453 Trgb
-0.343159 0.003384 0.069309 393 453 374 464 371 443 Trgb
-0.125602 0.001239 0.025368 361 451 371 443 374 464 Trgb
-0.577749 0.005698 0.116689 393 453 403 454 391 465 Trgb
-0.474551 0.004680 0.095846 388 435 400 433 393 453 Trgb
-0.527070 0.005198 0.106454 403 454 393 453 400 433 Trgb
-0.374535 0.003694 0.075646 400 433 401 437 403 454 Trgb
-0.000000 0.000000 0.000000 379 423 360 435 372 424 Trgb
-0.165038 0.001628 0.033333 388 435 371 443 379 423 Trgb
-0.041428 0.000409 0.008367 360 435 379 423 371 443 Trgb
-0.041428 0.000409 0.008367 371 443 361 451 360 435 Trgb
-0.256994 0.002534 0.051906 400 433 388 435 379 423 Trgb
-0.133383 0.001315 0.026940 379 423 389 425 400 433 Trgb
-0.000000 0.699868 0.209960 440 368 438 370 438 367 Trgb
-0.000000 0.699868 0.209960 438 370 436 368 438 367 Trgb
-0.000000 0.699868 0.209960 436 368 436 365 438 367 Trgb
-0.000000 0.699868 0.209960 436 365 438 363 438 367 Trgb
-0.000000 0.699868 0.209960 438 363 440 365 438 367 Trgb
-0.000000 0.699868 0.209960 440 365 440 368 438 367 Trgb
-0.000000 0.005175 0.001553 394 366 436 368 438 370 Trgb
-0.000000 0.008820 0.002646 394 366 438 370 396 367 Trgb
-0.000000 0.000510 0.000153 394 363 436 365 436 368 Trgb
-0.000000 0.001020 0.000306 394 363 436 368 394 366 Trgb
-0.000000 0.000000 0.000000 396 361 438 363 436 365 Trgb
-0.000000 0.000000 0.000000 396 361 436 365 394 363 Trgb
-0.130763 0.477881 0.121729 448 370 441 374 446 367 Trgb
-0.101991 0.372731 0.094944 441 374 448 370 440 377 Trgb
-0.069415 0.253681 0.064619 440 377 434 377 441 374 Trgb
-0.110114 0.402415 0.102506 441 374 438 363 446 367 Trgb
-0.022716 0.083017 0.021147 430 370 431 362 438 363 Trgb
-0.063387 0.231649 0.059007 438 363 441 374 430 370 Trgb
-0.051461 0.188065 0.047905 434 377 430 370 441 374 Trgb
-0.115504 0.422115 0.107524 446 360 448 370 446 367 Trgb
-0.094854 0.346649 0.088301 438 363 446 360 446 367 Trgb
-0.022716 0.083017 0.021147 431 362 435 356 438 363 Trgb
-0.048127 0.175883 0.044802 446 360 438 363 435 356 Trgb
-0.025411 0.092867 0.023656 435 356 442 357 446 360 Trgb
-0.000000 0.000000 0.000000 431 362 430 370 427 363 Trgb
-0.000000 0.000000 0.000000 430 373 427 363 430 370 Trgb
-0.010790 0.039432 0.010044 430 370 434 377 430 373 Trgb
-0.000000 0.000000 0.000000 435 356 431 362 427 363 Trgb
-0.000000 0.697531 0.209259 400 424 402 424 403 424 Trgb
-0.000000 0.697531 0.209259 402 424 405 424 403 424 Trgb
-0.000000 0.697531 0.209259 405 424 406 424 403 424 Trgb
-0.000000 0.697531 0.209259 406 424 404 424 403 424 Trgb
-0.000000 0.697531 0.209259 404 424 401 425 403 424 Trgb
-0.000000 0.697531 0.209259 401 425 400 424 403 424 Trgb
-0.000000 0.010115 0.003035 395 364 402 424 400 424 Trgb
-0.000000 0.005058 0.001517 395 364 400 424 393 364 Trgb
-0.000000 0.042881 0.012864 398 363 405 424 402 424 Trgb
-0.000000 0.029027 0.008708 398 363 402 424 395 364 Trgb
-0.000000 0.046621 0.013986 399 364 406 424 405 424 Trgb
-0.000000 0.051678 0.015503 399 364 405 424 398 363 Trgb
-0.000000 0.692681 0.207804 401 424 402 423 403 424 Trgb
-0.000000 0.692681 0.207804 402 423 404 423 403 424 Trgb
-0.000000 0.692681 0.207804 404 423 405 424 403 424 Trgb
-0.000000 0.692681 0.207804 405 424 405 426 403 424 Trgb
-0.000000 0.692681 0.207804 405 426 403 426 403 424 Trgb
-0.000000 0.692681 0.207804 403 426 401 424 403 424 Trgb
-0.000000 0.033284 0.009985 403 426 395 452 393 450 Trgb
-0.000000 0.016642 0.004993 403 426 393 450 401 424 Trgb
-0.000000 0.083949 0.025185 405 426 397 451 395 452 Trgb
-0.000000 0.066938 0.020081 405 426 395 452 403 426 Trgb
-0.000000 0.067677 0.020303 405 424 397 450 397 451 Trgb
-0.000000 0.084319 0.025296 405 424 397 451 405 426 Trgb
-0.009477 0.046295 0.011154 386 451 390 456 387 455 Trgb
-0.023261 0.113633 0.027379 396 460 387 455 390 456 Trgb
-0.055621 0.271710 0.065466 390 456 398 458 396 460 Trgb
-0.082430 0.402675 0.097021 398 458 403 455 396 460 Trgb
-0.044843 0.219063 0.052781 398 451 390 446 397 444 Trgb
-0.009477 0.046295 0.011154 390 456 386 451 390 446 Trgb
-0.041455 0.202511 0.048793 390 446 398 451 390 456 Trgb
-0.073815 0.360588 0.086881 398 458 390 456 398 451 Trgb
-0.067345 0.328984 0.079266 403 445 398 451 397 444 Trgb
-0.077745 0.379787 0.091506 404 449 403 455 403 445 Trgb
-0.090766 0.443397 0.106833 398 451 403 445 403 455 Trgb
-0.100624 0.491553 0.118435 403 455 398 458 398 451 Trgb
-0.012865 0.062846 0.015142 390 446 395 440 397 444 Trgb
-0.000000 0.000000 0.000000 386 451 387 445 390 446 Trgb
-0.000000 0.000000 0.000000 395 440 390 446 387 445 Trgb
-0.035367 0.172767 0.041627 395 440 403 445 397 444 Trgb
-0.000000 0.637740 0.191322 379 451 379 452 377 451 Trgb
-0.000000 0.637740 0.191322 379 452 378 452 377 451 Trgb
-0.000000 0.637740 0.191322 378 452 376 451 377 451 Trgb
-0.000000 0.637740 0.191322 376 451 376 449 377 451 Trgb
-0.000000 0.637740 0.191322 376 449 377 449 377 451 Trgb
-0.000000 0.637740 0.191322 377 449 379 451 377 451 Trgb
-0.000000 0.252303 0.075691 405 426 379 452 379 451 Trgb
-0.000000 0.246714 0.074014 405 426 379 451 404 424 Trgb
-0.000000 0.000000 0.000000 403 423 377 449 376 449 Trgb
-0.000000 0.000000 0.000000 403 423 376 449 402 423 Trgb
-0.000000 0.160749 0.048225 404 424 379 451 377 449 Trgb
-0.000000 0.080375 0.024112 404 424 377 449 403 423 Trgb
-0.017498 0.271496 0.057799 377 454 377 459 372 456 Trgb
-0.034877 0.541162 0.115208 382 450 384 455 377 454 Trgb
-0.029698 0.460799 0.098099 377 459 377 454 384 455 Trgb
-0.028021 0.434774 0.092559 384 455 382 458 377 459 Trgb
-0.008105 0.125751 0.026771 377 459 370 455 372 456 Trgb
-0.010945 0.169818 0.036153 370 450 377 454 372 456 Trgb
-0.023966 0.371853 0.079164 378 445 382 450 377 454 Trgb
-0.012233 0.189812 0.040409 377 454 370 450 378 445 Trgb
-0.002840 0.044067 0.009382 373 444 378 445 370 450 Trgb
-0.032683 0.507117 0.107960 384 455 382 450 385 447 Trgb
-0.025310 0.392708 0.083604 385 447 384 452 384 455 Trgb
-0.001552 0.024074 0.005125 370 455 370 450 372 456 Trgb
-0.000000 0.000000 0.000000 371 447 373 444 370 450 Trgb
-0.021771 0.337807 0.071916 382 450 378 445 385 447 Trgb
-0.010039 0.155767 0.033161 378 442 385 447 378 445 Trgb
-0.002840 0.044067 0.009382 378 445 373 444 378 442 Trgb
-0.000000 0.699962 0.209989 436 449 434 451 435 449 Trgb
-0.000000 0.699962 0.209989 434 451 433 451 435 449 Trgb
-0.000000 0.699962 0.209989 433 451 434 449 435 449 Trgb
-0.000000 0.699962 0.209989 434 449 435 447 435 449 Trgb
-0.000000 0.699962 0.209989 435 447 436 447 435 449 Trgb
-0.000000 0.699962 0.209989 436 447 436 449 435 449 Trgb
-0.000000 0.002331 0.000699 402 424 434 449 433 451 Trgb
-0.000000 0.001165 0.000350 402 424 433 451 402 426 Trgb
-0.000000 0.006038 0.001812 404 423 435 447 434 449 Trgb
-0.000000 0.004767 0.001430 404 423 434 449 402 424 Trgb
-0.000000 0.004978 0.001494 405 423 436 447 435 447 Trgb
-0.000000 0.006144 0.001843 405 423 435 447 404 423 Trgb
-0.240590 0.297323 0.107583 437 464 437 455 445 458 Trgb
-0.089658 0.110800 0.040092 424 458 427 449 437 455 Trgb
-0.138434 0.171078 0.061902 437 455 437 464 424 458 Trgb
-0.058982 0.072890 0.026374 428 461 424 458 437 464 Trgb
-0.252665 0.312245 0.112982 447 446 447 455 445 458 Trgb
-0.110270 0.136273 0.049309 442 437 445 440 447 446 Trgb
-0.267098 0.330082 0.119436 437 455 447 446 445 458 Trgb
-0.110128 0.136097 0.049245 427 449 434 441 437 455 Trgb
-0.185412 0.229133 0.082909 447 446 437 455 434 441 Trgb
-0.124703 0.154109 0.055763 434 441 442 437 447 446 Trgb
-0.010206 0.012612 0.004564 427 449 424 458 422 443 Trgb
-0.000000 0.000000 0.000000 422 452 422 443 424 458 Trgb
-0.000000 0.000000 0.000000 432 435 422 443 424 441 Trgb
-0.030676 0.037910 0.013717 434 441 427 449 422 443 Trgb
-0.020470 0.025297 0.009154 422 443 432 435 434 441 Trgb
-0.039214 0.048461 0.017535 442 437 434 441 432 435 Trgb
-0.000000 0.675208 0.202562 239 301 244 305 240 305 Trgb
-0.000000 0.675208 0.202562 244 305 244 309 240 305 Trgb
-0.000000 0.675208 0.202562 244 309 241 309 240 305 Trgb
-0.000000 0.675208 0.202562 241 309 236 305 240 305 Trgb
-0.000000 0.675208 0.202562 236 305 236 301 240 305 Trgb
-0.000000 0.675208 0.202562 236 301 239 301 240 305 Trgb
-0.000000 0.139589 0.041877 309 230 244 305 239 301 Trgb
-0.000000 0.098494 0.029548 309 230 239 301 305 226 Trgb
-0.000000 0.142419 0.042726 310 234 244 309 244 305 Trgb
-0.000000 0.161552 0.048465 310 234 244 305 309 230 Trgb
-0.000000 0.038266 0.011480 305 226 239 301 236 301 Trgb
-0.000000 0.019133 0.005740 305 226 236 301 301 226 Trgb
-0.000000 0.697893 0.209368 237 302 239 302 240 305 Trgb
-0.000000 0.697893 0.209368 239 302 242 305 240 305 Trgb
-0.000000 0.697893 0.209368 242 305 243 308 240 305 Trgb
-0.000000 0.697893 0.209368 243 308 241 308 240 305 Trgb
-0.000000 0.697893 0.209368 241 308 238 305 240 305 Trgb
-0.000000 0.697893 0.209368 238 305 237 302 240 305 Trgb
-0.000000 0.017023 0.005107 238 305 176 350 175 346 Trgb
-0.000000 0.008512 0.002553 238 305 175 346 237 302 Trgb
-0.000000 0.044670 0.013401 241 308 179 352 176 350 Trgb
-0.000000 0.035103 0.010531 241 308 176 350 238 305 Trgb
-0.000000 0.037215 0.011165 243 308 181 352 179 352 Trgb
-0.000000 0.045727 0.013718 243 308 179 352 241 308 Trgb
-0.000000 0.699920 0.209976 176 348 178 347 178 349 Trgb
-0.000000 0.699920 0.209976 178 347 180 348 178 349 Trgb
-0.000000 0.699920 0.209976 180 348 180 351 178 349 Trgb
-0.000000 0.699920 0.209976 180 351 178 352 178 349 Trgb
-0.000000 0.699920 0.209976 178 352 176 351 178 349 Trgb
-0.000000 0.699920 0.209976 176 351 176 348 178 349 Trgb
-0.000000 0.001914 0.000574 176 351 145 347 145 344 Trgb
-0.000000 0.000957 0.000287 176 351 145 344 176 348 Trgb
-0.000000 0.007792 0.002337 178 352 147 348 145 347 Trgb
-0.000000 0.005332 0.001599 178 352 145 347 176 351 Trgb
-0.000000 0.000000 0.000000 176 348 145 344 147 343 Trgb
-0.000000 0.000000 0.000000 176 348 147 343 178 347 Trgb
-0.000000 0.699197 0.209759 146 344 148 344 147 345 Trgb
-0.000000 0.699197 0.209759 148 344 149 345 147 345 Trgb
-0.000000 0.699197 0.209759 149 345 148 347 147 345 Trgb
-0.000000 0.699197 0.209759 148 347 146 347 147 345 Trgb
-0.000000 0.699197 0.209759 146 347 145 345 147 345 Trgb
-0.000000 0.699197 0.209759 145 345 146 344 147 345 Trgb
-0.000000 0.000000 0.000000 145 345 151 323 151 321 Trgb
-0.000000 0.000000 0.000000 145 345 151 321 146 344 Trgb
-0.000000 0.025417 0.007625 148 344 153 321 154 322 Trgb
-0.000000 0.029199 0.008760 148 344 154 322 149 345 Trgb
-0.000000 0.007212 0.002163 146 344 151 321 153 321 Trgb
-0.000000 0.014423 0.004327 146 344 153 321 148 344 Trgb
-0.041504 0.027267 0.013754 155 311 144 313 148 310 Trgb
-0.041504 0.027267 0.013754 148 310 162 312 155 311 Trgb
-0.133196 0.087504 0.044140 164 317 155 311 162 312 Trgb
-0.157254 0.103310 0.052113 143 333 145 322 150 331 Trgb
-0.048551 0.031896 0.016089 138 320 144 313 145 322 Trgb
-0.055597 0.036525 0.018424 145 322 143 333 138 320 Trgb
-0.007046 0.004629 0.002335 141 328 138 320 143 333 Trgb
-0.203918 0.133965 0.067577 157 336 143 333 150 331 Trgb
-0.286927 0.188499 0.095085 145 322 159 325 150 331 Trgb
-0.090055 0.059162 0.029843 144 313 155 311 145 322 Trgb
-0.226774 0.148981 0.075151 159 325 145 322 155 311 Trgb
-0.269915 0.177323 0.089448 155 311 164 317 159 325 Trgb
-0.333590 0.219155 0.110549 159 325 157 336 150 331 Trgb
-0.216378 0.142151 0.071706 167 325 161 332 157 336 Trgb
-0.320101 0.210293 0.106079 157 336 159 325 167 325 Trgb
-0.316578 0.207979 0.104911 164 317 167 325 159 325 Trgb
-0.000000 0.698678 0.209603 147 347 147 346 147 345 Trgb
-0.000000 0.698678 0.209603 147 346 147 344 147 345 Trgb
-0.000000 0.698678 0.209603 147 344 147 344 147 345 Trgb
-0.000000 0.698678 0.209603 147 344 147 345 147 345 Trgb
-0.000000 0.698678 0.209603 147 345 147 346 147 345 Trgb
-0.000000 0.698678 0.209603 147 346 147 347 147 345 Trgb
-0.000000 0.018415 0.005524 147 344 109 337 110 336 Trgb
-0.000000 0.009207 0.002762 147 344 110 336 147 344 Trgb
-0.000000 0.037448 0.011234 147 346 109 338 109 337 Trgb
-0.000000 0.032535 0.009761 147 346 109 337 147 344 Trgb
-0.000000 0.023946 0.007184 147 347 109 339 109 338 Trgb
-0.000000 0.033154 0.009946 147 347 109 338 147 346 Trgb
-0.013745 0.002545 0.003258 96 334 94 347 91 334 Trgb
-0.190914 0.035354 0.045254 106 349 105 355 94 347 Trgb
-0.152290 0.028202 0.036098 94 347 96 334 106 349 Trgb
-0.295853 0.054788 0.070128 108 336 106 349 96 334 Trgb
-0.013745 0.002545 0.003258 99 323 96 334 91 334 Trgb
-0.064484 0.011941 0.015285 113 320 111 324 99 323 Trgb
-0.078229 0.014487 0.018543 96 334 99 323 111 324 Trgb
-0.221792 0.041073 0.052573 111 324 108 336 96 334 Trgb
-0.438208 0.081150 0.103872 119 353 121 339 127 341 Trgb
-0.315714 0.058466 0.074836 105 355 106 349 119 353 Trgb
-0.452629 0.083820 0.107290 121 339 119 353 106 349 Trgb
-0.471392 0.087295 0.111737 106 349 108 336 121 339 Trgb
-0.364147 0.067435 0.086316 121 339 125 328 127 341 Trgb
-0.115222 0.021337 0.027312 111 324 113 320 125 328 Trgb
-0.304506 0.056390 0.072179 125 328 121 339 111 324 Trgb
-0.397330 0.073580 0.094182 108 336 111 324 121 339 Trgb
-0.000000 0.691781 0.207534 149 346 148 347 147 345 Trgb
-0.000000 0.691781 0.207534 148 347 147 346 147 345 Trgb
-0.000000 0.691781 0.207534 147 346 145 345 147 345 Trgb
-0.000000 0.691781 0.207534 145 345 146 344 147 345 Trgb
-0.000000 0.691781 0.207534 146 344 147 345 147 345 Trgb
-0.000000 0.691781 0.207534 147 345 149 346 147 345 Trgb
-0.000000 0.000000 0.000000 145 345 131 375 131 374 Trgb
-0.000000 0.000000 0.000000 145 345 131 374 146 344 Trgb
-0.000000 0.058813 0.017644 147 346 132 376 131 375 Trgb
-0.000000 0.029406 0.008822 147 346 131 375 145 345 Trgb
-0.000000 0.093726 0.028118 148 347 134 376 132 376 Trgb
-0.000000 0.090973 0.027292 148 347 132 376 147 346 Trgb
-0.000000 0.000000 0.000000 124 370 125 375 124 380 Trgb
-0.107475 0.388264 0.099148 136 381 141 379 133 384 Trgb
-0.029201 0.105490 0.026938 133 366 141 370 136 368 Trgb
-0.031304 0.113090 0.028879 125 375 130 379 124 380 Trgb
-0.054230 0.195912 0.050028 133 384 124 380 130 379 Trgb
-0.102218 0.369274 0.094298 130 379 136 381 133 384 Trgb
-0.023944 0.086500 0.022089 129 369 133 366 136 368 Trgb
-0.008378 0.030267 0.007729 125 375 124 370 129 369 Trgb
-0.008378 0.030267 0.007729 133 366 129 369 124 370 Trgb
-0.074140 0.267838 0.068396 141 370 138 374 136 368 Trgb
-0.095135 0.343686 0.087764 138 374 141 370 141 379 Trgb
-0.129488 0.467789 0.119455 141 379 136 381 138 374 Trgb
-0.068883 0.248847 0.063546 138 374 129 369 136 368 Trgb
-0.039682 0.143357 0.036608 130 379 125 375 129 369 Trgb
-0.084621 0.305704 0.078065 129 369 138 374 130 379 Trgb
-0.124231 0.448798 0.114606 136 381 130 379 138 374 Trgb
-0.000000 0.000000 0.000000 133 384 131 383 131 381 Trgb
-0.000000 0.000000 0.000000 131 383 130 380 131 381 Trgb
-0.000000 0.000000 0.000000 130 380 129 379 131 381 Trgb
-0.000000 0.000000 0.000000 129 379 131 380 131 381 Trgb
-0.000000 0.000000 0.000000 131 380 132 382 131 381 Trgb
-0.000000 0.000000 0.000000 132 382 133 384 131 381 Trgb
-0.000000 0.087931 0.026379 178 348 131 380 129 379 Trgb
-0.000000 0.043965 0.013190 178 348 129 379 176 347 Trgb
-0.000000 0.299857 0.089957 179 350 132 382 131 380 Trgb
-0.000000 0.215876 0.064763 179 350 131 380 178 348 Trgb
-0.000000 0.295907 0.088772 179 352 133 384 132 382 Trgb
-0.000000 0.339872 0.101962 179 352 132 382 179 350 Trgb
-0.000000 0.691585 0.207476 106 387 105 387 105 385 Trgb
-0.000000 0.691585 0.207476 105 387 103 386 105 385 Trgb
-0.000000 0.691585 0.207476 103 386 104 384 105 385 Trgb
-0.000000 0.691585 0.207476 104 384 105 383 105 385 Trgb
-0.000000 0.691585 0.207476 105 383 107 385 105 385 Trgb
-0.000000 0.691585 0.207476 107 385 106 387 105 385 Trgb
-0.000000 0.038905 0.011671 131 383 105 387 106 387 Trgb
-0.000000 0.068470 0.020541 131 383 106 387 132 383 Trgb
-0.000000 0.059130 0.017739 133 381 107 385 105 383 Trgb
-0.000000 0.029565 0.008870 133 381 105 383 131 379 Trgb
-0.000000 0.094922 0.028477 132 383 106 387 107 385 Trgb
-0.000000 0.091809 0.027543 132 383 107 385 133 381 Trgb
-0.036557 0.227068 0.052725 105 391 97 391 99 386 Trgb
-0.065148 0.404652 0.093960 111 392 105 395 105 391 Trgb
-0.037225 0.231217 0.053688 97 391 105 391 105 395 Trgb
-0.009849 0.061174 0.014205 97 391 97 381 99 386 Trgb
-0.052749 0.327638 0.076077 104 381 105 391 99 386 Trgb
-0.083603 0.519279 0.120576 113 385 111 392 105 391 Trgb
-0.071872 0.446414 0.103657 105 391 104 381 113 385 Trgb
-0.058213 0.361574 0.083957 110 379 113 385 104 381 Trgb
-0.026041 0.161745 0.037557 97 381 104 381 99 386 Trgb
-0.000000 0.000000 0.000000 100 378 105 376 97 381 Trgb
-0.016192 0.100570 0.023352 104 381 97 381 105 376 Trgb
-0.029241 0.181624 0.042173 105 376 110 379 104 381 Trgb
-0.069674 0.432765 0.100488 111 392 113 385 113 389 Trgb
-0.044015 0.273387 0.063480 113 380 113 389 113 385 Trgb
-0.044284 0.275061 0.063869 113 385 110 379 113 380 Trgb
-0.015313 0.095110 0.022085 110 379 105 376 113 380 Trgb
-0.000000 0.698498 0.209550 130 380 132 380 131 381 Trgb
-0.000000 0.698498 0.209550 132 380 133 381 131 381 Trgb
-0.000000 0.698498 0.209550 133 381 132 383 131 381 Trgb
-0.000000 0.698498 0.209550 132 383 130 383 131 381 Trgb
-0.000000 0.698498 0.209550 130 383 129 381 131 381 Trgb
-0.000000 0.698498 0.209550 129 381 130 380 131 381 Trgb
-0.000000 0.000000 0.000000 129 381 111 401 111 400 Trgb
-0.000000 0.000000 0.000000 129 381 111 400 130 380 Trgb
-0.000000 0.023294 0.006988 130 383 112 403 111 401 Trgb
-0.000000 0.011647 0.003494 130 383 111 401 129 381 Trgb
-0.000000 0.040413 0.012124 132 383 113 403 112 403 Trgb
-0.000000 0.037677 0.011303 132 383 112 403 130 383 Trgb
-0.019290 0.043219 0.012502 102 398 104 406 103 408 Trgb
-0.112959 0.253086 0.073209 111 411 119 410 113 412 Trgb
-0.059036 0.132271 0.038261 113 412 103 408 111 411 Trgb
-0.071059 0.159208 0.046053 104 406 111 411 103 408 Trgb
-0.088148 0.197496 0.057129 110 400 111 391 118 396 Trgb
-0.000000 0.000000 0.000000 102 398 106 393 111 391 Trgb
-0.044502 0.099707 0.028842 111 391 110 400 102 398 Trgb
-0.063792 0.142926 0.041344 104 406 102 398 110 400 Trgb
-0.157140 0.352073 0.101843 121 404 110 400 118 396 Trgb
-0.174684 0.391380 0.113213 119 410 111 411 121 404 Trgb
-0.165263 0.370273 0.107107 110 400 121 404 111 411 Trgb
-0.115561 0.258915 0.074895 111 411 104 406 110 400 Trgb
-0.060868 0.136376 0.039449 111 391 121 395 118 396 Trgb
-0.129860 0.290952 0.084162 121 395 121 404 118 396 Trgb
-0.147404 0.330260 0.095533 122 405 119 410 121 404 Trgb
-0.110704 0.248032 0.071747 121 404 121 395 122 405 Trgb
-0.000000 0.699554 0.209866 131 380 131 379 131 381 Trgb
-0.000000 0.699554 0.209866 131 379 132 380 131 381 Trgb
-0.000000 0.699554 0.209866 132 380 132 382 131 381 Trgb
-0.000000 0.699554 0.209866 132 382 131 383 131 381 Trgb
-0.000000 0.699554 0.209866 131 383 130 382 131 381 Trgb
-0.000000 0.699554 0.209866 130 382 131 380 131 381 Trgb
-0.000000 0.019279 0.005784 130 382 92 378 93 376 Trgb
-0.000000 0.013935 0.004181 130 382 93 376 131 380 Trgb
-0.000000 0.018894 0.005668 131 383 93 380 92 378 Trgb
-0.000000 0.021758 0.006527 131 383 92 378 130 382 Trgb
-0.000000 0.005728 0.001718 131 380 93 376 94 376 Trgb
-0.000000 0.002864 0.000859 131 380 94 376 131 379 Trgb
-0.000000 0.000000 0.000000 83 371 82 384 82 377 Trgb
-0.062639 0.107049 0.033938 90 370 88 379 83 371 Trgb
-0.045424 0.077629 0.024611 82 384 83 371 88 379 Trgb
-0.092448 0.157993 0.050088 88 379 89 387 82 384 Trgb
-0.068102 0.116386 0.036898 89 387 93 390 82 384 Trgb
-0.017215 0.029420 0.009327 94 365 90 370 83 371 Trgb
-0.214613 0.366772 0.116277 98 385 99 373 105 379 Trgb
-0.124366 0.212540 0.067381 88 379 90 370 99 373 Trgb
-0.189956 0.324634 0.102918 99 373 98 385 88 379 Trgb
-0.175253 0.299506 0.094952 89 387 88 379 98 385 Trgb
-0.190267 0.325166 0.103087 104 384 98 385 105 379 Trgb
-0.141265 0.241421 0.076537 98 385 104 384 93 390 Trgb
-0.150908 0.257900 0.081762 93 390 89 387 98 385 Trgb
-0.148111 0.253120 0.080246 99 373 104 372 105 379 Trgb
-0.078942 0.134911 0.042771 90 370 94 365 99 373 Trgb
-0.078030 0.133353 0.042277 104 372 99 373 94 365 Trgb
-0.000000 0.651830 0.195549 178 348 180 348 178 349 Trgb
-0.000000 0.651830 0.195549 180 348 180 350 178 349 Trgb
-0.000000 0.651830 0.195549 180 350 178 351 178 349 Trgb
-0.000000 0.651830 0.195549 178 351 175 350 178 349 Trgb
-0.000000 0.651830 0.195549 175 350 175 349 178 349 Trgb
-0.000000 0.651830 0.195549 175 349 178 348 178 349 Trgb
-0.000000 0.136743 0.041023 178 351 181 395 179 394 Trgb
-0.000000 0.068371 0.020511 178 351 179 394 175 350 Trgb
-0.000000 0.224390 0.067317 180 350 184 394 181 395 Trgb
-0.000000 0.214752 0.064426 180 350 181 395 178 351 Trgb
-0.000000 0.097284 0.029185 180 348 184 392 184 394 Trgb
-0.000000 0.165656 0.049697 180 348 184 394 180 350 Trgb
-0.000000 0.000000 0.000000 181 392 182 391 181 393 Trgb
-0.000000 0.000000 0.000000 182 391 183 393 181 393 Trgb
-0.000000 0.000000 0.000000 183 393 182 394 181 393 Trgb
-0.000000 0.000000 0.000000 182 394 181 395 181 393 Trgb
-0.000000 0.000000 0.000000 181 395 180 394 181 393 Trgb
-0.000000 0.000000 0.000000 180 394 181 392 181 393 Trgb
-0.000000 0.098567 0.029570 182 394 210 409 209 410 Trgb
-0.000000 0.058014 0.017404 182 394 209 410 181 395 Trgb
-0.000000 0.127481 0.038244 183 393 211 408 210 409 Trgb
-0.000000 0.133301 0.039990 183 393 210 409 182 394 Trgb
-0.000000 0.040554 0.012166 182 391 211 407 211 408 Trgb
-0.000000 0.081108 0.024332 182 391 211 408 183 393 Trgb
-0.449781 0.027005 0.095357 204 426 214 420 223 422 Trgb
-0.000000 0.000000 0.000000 191 412 197 394 196 401 Trgb
-0.570312 0.034242 0.120911 214 420 222 408 223 422 Trgb
-0.467717 0.028082 0.099160 228 405 223 422 222 408 Trgb
-0.379352 0.022777 0.080426 222 408 222 395 228 405 Trgb
-0.105134 0.006312 0.022289 203 412 191 412 196 401 Trgb
-0.381323 0.022895 0.080844 214 420 204 426 203 412 Trgb
-0.184233 0.011062 0.039059 191 412 203 412 204 426 Trgb
-0.079098 0.004749 0.016769 204 426 198 421 191 412 Trgb
-0.026036 0.001563 0.005520 197 394 209 394 196 401 Trgb
-0.026036 0.001563 0.005520 209 394 197 394 216 391 Trgb
-0.111265 0.006680 0.023589 216 391 222 395 209 394 Trgb
-0.131171 0.007876 0.027809 209 394 203 412 196 401 Trgb
-0.501854 0.030132 0.106397 222 408 214 420 203 412 Trgb
-0.330800 0.019862 0.070132 203 412 209 394 222 408 Trgb
-0.310894 0.018666 0.065912 222 395 222 408 209 394 Trgb
-0.000000 0.699809 0.209943 180 394 180 392 181 393 Trgb
-0.000000 0.699809 0.209943 180 392 182 391 181 393 Trgb
-0.000000 0.699809 0.209943 182 391 183 392 181 393 Trgb
-0.000000 0.699809 0.209943 183 392 183 394 181 393 Trgb
-0.000000 0.699809 0.209943 183 394 181 395 181 393 Trgb
-0.000000 0.699809 0.209943 181 395 180 394 181 393 Trgb
-0.000000 0.006766 0.002030 181 395 168 392 166 391 Trgb
-0.000000 0.003383 0.001015 181 395 166 391 180 394 Trgb
-0.000000 0.000000 0.000000 180 392 167 389 168 388 Trgb
-0.000000 0.000000 0.000000 180 392 168 388 182 391 Trgb
-0.000000 0.000000 0.000000 180 394 166 391 167 389 Trgb
-0.000000 0.000000 0.000000 180 394 167 389 180 392 Trgb
-0.168457 0.380906 0.109873 173 398 164 393 172 391 Trgb
-0.049902 0.112835 0.032547 164 400 159 394 164 393 Trgb
-0.115650 0.261502 0.075430 164 393 173 398 164 400 Trgb
-0.105923 0.239508 0.069086 171 400 164 400 173 398 Trgb
-0.184304 0.416738 0.120208 177 388 173 398 172 391 Trgb
-0.147343 0.333164 0.096101 173 398 177 388 177 395 Trgb
-0.121770 0.275339 0.079422 177 395 171 400 173 398 Trgb
-0.128611 0.290809 0.083884 164 393 169 384 172 391 Trgb
-0.037902 0.085702 0.024721 159 394 159 386 164 393 Trgb
-0.063804 0.144271 0.041615 169 384 164 393 159 386 Trgb
-0.025902 0.058569 0.016894 159 386 165 380 169 384 Trgb
-0.144458 0.326640 0.094220 169 384 177 388 172 391 Trgb
-0.064954 0.146870 0.042365 173 381 177 387 177 388 Trgb
-0.079651 0.180103 0.051951 177 388 169 384 173 381 Trgb
-0.025902 0.058569 0.016894 165 380 173 381 169 384 Trgb
-0.000000 0.694743 0.208423 182 394 181 393 181 393 Trgb
-0.000000 0.694743 0.208423 181 393 180 392 181 393 Trgb
-0.000000 0.694743 0.208423 180 392 181 392 181 393 Trgb
-0.000000 0.694743 0.208423 181 392 182 393 181 393 Trgb
-0.000000 0.694743 0.208423 182 393 183 394 181 393 Trgb
-0.000000 0.694743 0.208423 183 394 182 394 181 393 Trgb
-0.000000 0.065286 0.019586 183 394 157 420 156 420 Trgb
-0.000000 0.074712 0.022413 183 394 156 420 182 394 Trgb
-0.000000 0.018852 0.005655 181 393 154 418 154 417 Trgb
-0.000000 0.009426 0.002828 181 393 154 417 180 392 Trgb
-0.000000 0.065517 0.019655 182 394 156 420 154 418 Trgb
-0.000000 0.046897 0.014069 182 394 154 418 181 393 Trgb
-0.365097 0.114210 0.095861 159 429 167 431 150 434 Trgb
-0.067185 0.021017 0.017640 139 421 150 434 144 430 Trgb
-0.321781 0.100660 0.084488 149 421 159 429 150 434 Trgb
-0.159955 0.050037 0.041999 150 434 139 421 149 421 Trgb
-0.092770 0.029020 0.024358 143 411 149 421 139 421 Trgb
-0.297384 0.093028 0.078082 172 416 166 418 167 407 Trgb
-0.459583 0.143767 0.120670 167 431 159 429 166 418 Trgb
-0.366658 0.114698 0.096271 166 418 172 416 167 431 Trgb
-0.000000 0.000000 0.000000 144 406 143 411 139 421 Trgb
-0.254068 0.079478 0.066709 166 418 155 406 167 407 Trgb
-0.416267 0.130217 0.109297 159 429 149 421 166 418 Trgb
-0.280026 0.087598 0.073525 155 406 166 418 149 421 Trgb
-0.118355 0.037024 0.031076 149 421 143 411 155 406 Trgb
-0.092397 0.028904 0.024260 155 406 161 403 167 407 Trgb
-0.025585 0.008004 0.006718 161 403 155 406 144 406 Trgb
-0.025585 0.008004 0.006718 143 411 144 406 155 406 Trgb
-0.000000 0.699458 0.209837 243 351 238 351 240 348 Trgb
-0.000000 0.699458 0.209837 238 351 236 348 240 348 Trgb
-0.000000 0.699458 0.209837 236 348 238 345 240 348 Trgb
-0.000000 0.699458 0.209837 238 345 243 345 240 348 Trgb
-0.000000 0.699458 0.209837 243 345 245 348 240 348 Trgb
-0.000000 0.699458 0.209837 245 348 243 351 240 348 Trgb
-0.000000 0.000000 0.000000 238 302 238 345 236 348 Trgb
-0.000000 0.000000 0.000000 238 302 236 348 236 305 Trgb
-0.000000 0.010118 0.003035 242 302 243 345 238 345 Trgb
-0.000000 0.005059 0.001518 242 302 238 345 238 302 Trgb
-0.000000 0.023392 0.007018 244 305 245 348 243 345 Trgb
-0.000000 0.019284 0.005785 244 305 243 345 242 302 Trgb
-0.000000 0.699769 0.209931 279 344 276 345 277 342 Trgb
-0.000000 0.699769 0.209931 276 345 274 343 277 342 Trgb
-0.000000 0.699769 0.209931 274 343 274 340 277 342 Trgb
-0.000000 0.699769 0.209931 274 340 277 338 277 342 Trgb
-0.000000 0.699769 0.209931 277 338 279 340 277 342 Trgb
-0.000000 0.699769 0.209931 279 340 279 344 277 342 Trgb
-0.000000 0.006306 0.001892 238 349 274 343 276 345 Trgb
-0.000000 0.011255 0.003376 238 349 276 345 240 351 Trgb
-0.000000 0.000452 0.000136 238 346 274 340 274 343 Trgb
-0.000000 0.000904 0.000271 238 346 274 343 238 349 Trgb
-0.000000 0.000000 0.000000 241 345 277 338 274 340 Trgb
-0.000000 0.000000 0.000000 241 345 274 340 238 346 Trgb
-0.000000 0.582895 0.174869 282 300 282 301 280 301 Trgb
-0.000000 0.582895 0.174869 282 301 280 302 280 301 Trgb
-0.000000 0.582895 0.174869 280 302 278 301 280 301 Trgb
-0.000000 0.582895 0.174869 278 301 278 300 280 301 Trgb
-0.000000 0.582895 0.174869 278 300 279 299 280 301 Trgb
-0.000000 0.582895 0.174869 279 299 282 300 280 301 Trgb
-0.000000 0.335109 0.100533 277 343 280 302 282 301 Trgb
-0.000000 0.336208 0.100862 277 343 282 301 279 342 Trgb
-0.000000 0.111337 0.033401 275 342 278 301 280 302 Trgb
-0.000000 0.222674 0.066802 275 342 280 302 277 343 Trgb
-0.000000 0.000000 0.000000 275 341 278 300 278 301 Trgb
-0.000000 0.000000 0.000000 275 341 278 301 275 342 Trgb
-0.156119 0.052040 0.041632 292 284 290 293 281 282 Trgb
-0.267437 0.089146 0.071317 290 293 292 284 300 303 Trgb
-0.431611 0.143870 0.115096 300 303 293 309 290 293 Trgb
-0.154020 0.051340 0.041072 290 293 269 291 281 282 Trgb
-0.130571 0.043524 0.034819 278 310 264 306 269 291 Trgb
-0.263240 0.087747 0.070197 269 291 290 293 278 310 Trgb
-0.429512 0.143171 0.114537 293 309 278 310 290 293 Trgb
-0.413054 0.137685 0.110148 293 309 300 303 288 319 Trgb
-0.021351 0.007117 0.005694 269 291 271 282 281 282 Trgb
-0.008229 0.002743 0.002194 264 306 259 298 269 291 Trgb
-0.008229 0.002743 0.002194 271 282 269 291 259 298 Trgb
-0.114112 0.038037 0.030430 267 317 288 319 278 319 Trgb
-0.122342 0.040781 0.032624 264 306 278 310 267 317 Trgb
-0.236454 0.078818 0.063054 288 319 267 317 278 310 Trgb
-0.410955 0.136985 0.109588 278 310 293 309 288 319 Trgb
-0.000000 0.000000 0.000000 259 298 264 306 267 317 Trgb
-0.000000 0.699650 0.209895 320 357 320 355 320 355 Trgb
-0.000000 0.699650 0.209895 320 355 321 353 320 355 Trgb
-0.000000 0.699650 0.209895 321 353 321 353 320 355 Trgb
-0.000000 0.699650 0.209895 321 353 321 355 320 355 Trgb
-0.000000 0.699650 0.209895 321 355 320 357 320 355 Trgb
-0.000000 0.699650 0.209895 320 357 320 357 320 355 Trgb
-0.000000 0.019057 0.005717 276 342 320 355 320 357 Trgb
-0.000000 0.016121 0.004836 276 342 320 357 276 344 Trgb
-0.000000 0.013204 0.003961 277 340 321 353 320 355 Trgb
-0.000000 0.017599 0.005280 277 340 320 355 276 342 Trgb
-0.000000 0.002937 0.000881 277 340 321 353 321 353 Trgb
-0.000000 0.005873 0.001762 277 340 321 353 277 340 Trgb
-0.051513 0.547915 0.119886 325 363 327 354 330 358 Trgb
-0.033489 0.356204 0.077939 317 363 318 358 325 363 Trgb
-0.045176 0.480506 0.105136 327 354 325 363 318 358 Trgb
-0.037293 0.396663 0.086791 318 358 320 351 327 354 Trgb
-0.042482 0.451858 0.098868 327 354 329 351 330 358 Trgb
-0.009041 0.096168 0.021042 322 346 324 347 329 351 Trgb
-0.027114 0.288393 0.063101 329 351 327 354 322 346 Trgb
-0.028262 0.300606 0.065774 320 351 322 346 327 354 Trgb
-0.022883 0.243388 0.053254 319 364 317 363 325 363 Trgb
-0.000000 0.000000 0.000000 314 350 312 359 311 352 Trgb
-0.016992 0.180738 0.039546 318 358 317 363 312 359 Trgb
-0.010607 0.112815 0.024684 312 359 314 350 318 358 Trgb
-0.019221 0.204438 0.044732 320 351 318 358 314 350 Trgb
-0.000000 0.000000 0.000000 316 347 314 350 311 352 Trgb
-0.001576 0.016759 0.003667 314 350 316 347 322 346 Trgb
-0.010190 0.108381 0.023714 322 346 320 351 314 350 Trgb
-0.000000 0.698163 0.209449 265 347 268 347 266 349 Trgb
-0.000000 0.698163 0.209449 268 347 268 350 266 349 Trgb
-0.000000 0.698163 0.209449 268 350 267 351 266 349 Trgb
-0.000000 0.698163 0.209449 267 351 265 351 266 349 Trgb
-0.000000 0.698163 0.209449 265 351 264 348 266 349 Trgb
-0.000000 0.698163 0.209449 264 348 265 347 266 349 Trgb
-0.000000 0.014969 0.004491 278 340 268 347 265 347 Trgb
-0.000000 0.007485 0.002245 278 340 265 347 276 339 Trgb
-0.000000 0.041203 0.012361 279 342 268 350 268 347 Trgb
-0.000000 0.031829 0.009549 279 342 268 347 278 340 Trgb
-0.000000 0.035609 0.010683 277 344 267 351 268 350 Trgb
-0.000000 0.043093 0.012928 277 344 268 350 279 342 Trgb
-0.005581 0.351590 0.071434 263 344 271 348 264 350 Trgb
-0.000872 0.054960 0.011166 264 340 270 341 263 344 Trgb
-0.004101 0.258361 0.052492 271 348 263 344 270 341 Trgb
-0.006315 0.397826 0.080828 270 341 274 347 271 348 Trgb
-0.007937 0.500031 0.101594 271 348 267 356 264 350 Trgb
-0.007251 0.456807 0.092812 274 353 269 357 267 356 Trgb
-0.008813 0.555244 0.112812 267 356 271 348 274 353 Trgb
-0.008671 0.546267 0.110988 274 347 274 353 271 348 Trgb
-0.002352 0.148188 0.030108 259 351 263 344 264 350 Trgb
-0.000284 0.017904 0.003638 259 345 264 340 263 344 Trgb
-0.000284 0.017904 0.003638 263 344 259 351 259 345 Trgb
-0.000000 0.000000 0.000000 258 351 259 345 259 351 Trgb
-0.004708 0.296630 0.060268 267 356 259 351 264 350 Trgb
-0.004307 0.271310 0.055123 269 357 262 356 267 356 Trgb
-0.002640 0.166346 0.033797 259 351 267 356 262 356 Trgb
-0.000000 0.000000 0.000000 262 356 258 351 259 351 Trgb
-0.000000 0.699555 0.209867 274 400 274 399 276 398 Trgb
-0.000000 0.699555 0.209867 274 399 276 397 276 398 Trgb
-0.000000 0.699555 0.209867 276 397 279 396 276 398 Trgb
-0.000000 0.699555 0.209867 279 396 279 397 276 398 Trgb
-0.000000 0.699555 0.209867 279 397 276 399 276 398 Trgb
-0.000000 0.699555 0.209867 276 399 274 400 276 398 Trgb
-0.000000 0.001828 0.000548 238 349 274 399 274 400 Trgb
-0.000000 0.000914 0.000274 238 349 274 400 238 350 Trgb
-0.000000 0.016145 0.004843 240 347 276 397 274 399 Trgb
-0.000000 0.009443 0.002833 240 347 274 399 238 349 Trgb
-0.000000 0.021019 0.006306 243 346 279 396 276 397 Trgb
-0.000000 0.021933 0.006580 243 346 276 397 240 347 Trgb
-0.000000 0.000000 0.000000 275 399 275 398 276 398 Trgb
-0.000000 0.000000 0.000000 275 398 277 396 276 398 Trgb
-0.000000 0.000000 0.000000 277 396 278 397 276 398 Trgb
-0.000000 0.000000 0.000000 278 397 278 398 276 398 Trgb
-0.000000 0.000000 0.000000 278 398 276 400 276 398 Trgb
-0.000000 0.000000 0.000000 276 400 275 399 276 398 Trgb
-0.000000 0.040083 0.012025 276 400 304 426 303 425 Trgb
-0.000000 0.020042 0.006012 276 400 303 425 275 399 Trgb
-0.000000 0.090960 0.027288 278 398 305 424 304 426 Trgb
-0.000000 0.075542 0.022663 278 398 304 426 276 400 Trgb
-0.000000 0.066294 0.019888 278 397 306 422 305 424 Trgb
-0.000000 0.086336 0.025901 278 397 305 424 278 398 Trgb
-0.082512 0.183187 0.053140 311 434 303 434 299 434 Trgb
-0.144624 0.321084 0.093142 299 434 307 431 311 434 Trgb
-0.131873 0.292775 0.084930 313 423 314 416 316 424 Trgb
-0.161712 0.359021 0.104147 316 424 311 434 313 423 Trgb
-0.186888 0.414915 0.120361 307 431 313 423 311 434 Trgb
-0.028116 0.062421 0.018107 300 424 292 424 296 417 Trgb
-0.022788 0.050592 0.014676 299 434 295 431 292 424 Trgb
-0.050904 0.113013 0.032783 292 424 300 424 299 434 Trgb
-0.113016 0.250910 0.072785 307 431 299 434 300 424 Trgb
-0.033444 0.074249 0.021539 305 413 300 424 296 417 Trgb
-0.100265 0.222601 0.064573 314 416 313 423 305 413 Trgb
-0.098496 0.218673 0.063434 300 424 305 413 313 423 Trgb
-0.155280 0.344741 0.100004 313 423 307 431 300 424 Trgb
-0.000000 0.000000 0.000000 292 424 297 414 296 417 Trgb
-0.005328 0.011829 0.003431 297 414 305 413 296 417 Trgb
-0.035213 0.078177 0.022678 309 414 314 416 305 413 Trgb
-0.000000 0.000000 0.000000 276 398 274 397 276 398 Trgb
-0.000000 0.000000 0.000000 274 397 275 397 276 398 Trgb
-0.000000 0.000000 0.000000 275 397 277 398 276 398 Trgb
-0.000000 0.000000 0.000000 277 398 278 399 276 398 Trgb
-0.000000 0.000000 0.000000 278 399 278 399 276 398 Trgb
-0.000000 0.000000 0.000000 278 399 276 398 276 398 Trgb
-0.000000 0.456347 0.136904 278 399 262 440 260 440 Trgb
-0.000000 0.340193 0.102058 278 399 260 440 276 398 Trgb
-0.000000 0.423140 0.126942 278 399 263 440 262 440 Trgb
-0.000000 0.497820 0.149346 278 399 262 440 278 399 Trgb
-0.000000 0.149360 0.044808 276 398 260 440 259 439 Trgb
-0.000000 0.074680 0.022404 276 398 259 439 274 397 Trgb
-0.212339 0.022980 0.047064 249 455 269 460 253 460 Trgb
-0.339481 0.036740 0.075244 252 441 268 447 249 455 Trgb
-0.400003 0.043290 0.088659 269 460 249 455 268 447 Trgb
-0.531030 0.057471 0.117700 268 447 280 448 269 460 Trgb
-0.070112 0.007588 0.015540 242 448 249 455 253 460 Trgb
-0.144590 0.015648 0.032048 241 434 252 441 249 455 Trgb
-0.062885 0.006806 0.013938 249 455 242 448 241 434 Trgb
-0.184671 0.019986 0.040931 280 431 260 426 268 419 Trgb
-0.329260 0.035634 0.072979 268 447 252 441 260 426 Trgb
-0.379562 0.041078 0.084128 260 426 280 431 268 447 Trgb
-0.520810 0.056365 0.115435 280 448 268 447 280 431 Trgb
-0.052664 0.005700 0.011673 260 426 253 419 268 419 Trgb
-0.134369 0.014542 0.029782 252 441 241 434 260 426 Trgb
-0.052664 0.005700 0.011673 253 419 260 426 241 434 Trgb
-0.000000 0.000000 0.000000 241 434 242 431 253 419 Trgb
-0.000000 0.699838 0.209951 305 398 304 400 303 399 Trgb
-0.000000 0.699838 0.209951 304 400 303 401 303 399 Trgb
-0.000000 0.699838 0.209951 303 401 301 400 303 399 Trgb
-0.000000 0.699838 0.209951 301 400 301 398 303 399 Trgb
-0.000000 0.699838 0.209951 301 398 303 397 303 399 Trgb
-0.000000 0.699838 0.209951 303 397 305 398 303 399 Trgb
-0.000000 0.004567 0.001370 275 399 301 400 303 401 Trgb
-0.000000 0.008870 0.002661 275 399 303 401 276 400 Trgb
-0.000000 0.000088 0.000026 275 397 301 398 301 400 Trgb
-0.000000 0.000176 0.000053 275 397 301 400 275 399 Trgb
-0.000000 0.000000 0.000000 277 396 303 397 301 398 Trgb
-0.000000 0.000000 0.000000 277 396 301 398 275 397 Trgb
-0.222606 0.358895 0.116300 316 395 312 409 312 399 Trgb
-0.223481 0.360306 0.116757 312 409 301 403 312 399 Trgb
-0.084475 0.136195 0.044134 299 413 292 405 301 403 Trgb
-0.166838 0.268984 0.087164 301 403 312 409 299 413 Trgb
-0.143692 0.231666 0.075072 307 412 299 413 312 409 Trgb
-0.172674 0.278393 0.090214 306 390 316 395 312 399 Trgb
-0.090628 0.146114 0.047348 316 395 306 390 307 386 Trgb
-0.033050 0.053284 0.017267 298 386 307 386 306 390 Trgb
-0.173550 0.279804 0.090671 301 403 306 390 312 399 Trgb
-0.059072 0.095239 0.030862 292 405 292 394 301 403 Trgb
-0.091503 0.147525 0.047806 306 390 301 403 292 394 Trgb
-0.033050 0.053284 0.017267 292 394 298 386 306 390 Trgb
-0.026022 0.041954 0.013595 292 405 299 413 289 403 Trgb
-0.000619 0.000998 0.000323 292 394 292 405 289 403 Trgb
-0.000000 0.000000 0.000000 298 386 292 394 294 389 Trgb
-0.000000 0.683893 0.205168 199 372 201 375 199 375 Trgb
-0.000000 0.683893 0.205168 201 375 201 378 199 375 Trgb
-0.000000 0.683893 0.205168 201 378 199 378 199 375 Trgb
-0.000000 0.683893 0.205168 199 378 197 376 199 375 Trgb
-0.000000 0.683893 0.205168 197 376 197 373 199 375 Trgb
-0.000000 0.683893 0.205168 197 373 199 372 199 375 Trgb
-0.000000 0.091401 0.027420 243 347 201 375 199 372 Trgb
-0.000000 0.049695 0.014909 243 347 199 372 240 345 Trgb
-0.000000 0.127779 0.038334 243 350 201 378 201 375 Trgb
-0.000000 0.130442 0.039133 243 350 201 375 243 347 Trgb
-0.000000 0.005327 0.001598 240 345 199 372 197 373 Trgb
-0.000000 0.002663 0.000799 240 345 197 373 238 346 Trgb
-0.144027 0.150940 0.058993 191 371 200 384 189 382 Trgb
-0.110751 0.116067 0.045364 199 362 207 369 191 371 Trgb
-0.201210 0.210868 0.082416 200 384 191 371 207 369 Trgb
-0.289919 0.303835 0.118751 207 369 211 381 200 384 Trgb
-0.135622 0.142131 0.055551 200 384 192 390 189 382 Trgb
-0.184399 0.193250 0.075530 192 390 200 384 208 388 Trgb
-0.281513 0.295026 0.115308 211 381 208 388 200 384 Trgb
-0.047625 0.049911 0.019507 183 377 191 371 189 382 Trgb
-0.028132 0.029483 0.011523 190 362 199 362 191 371 Trgb
-0.022189 0.023254 0.009088 191 371 183 377 190 362 Trgb
-0.088563 0.092814 0.036275 207 369 199 362 206 361 Trgb
-0.143049 0.149916 0.058593 206 361 215 374 207 369 Trgb
-0.253947 0.266136 0.104017 211 381 207 369 215 374 Trgb
-0.039219 0.041102 0.016064 192 390 183 377 189 382 Trgb
-0.245542 0.257328 0.100574 208 388 211 381 215 374 Trgb
-0.005944 0.006229 0.002434 199 362 190 362 206 361 Trgb
-0.000000 0.663069 0.198921 237 303 239 304 240 305 Trgb
-0.000000 0.663069 0.198921 239 304 243 306 240 305 Trgb
-0.000000 0.663069 0.198921 243 306 243 307 240 305 Trgb
-0.000000 0.663069 0.198921 243 307 241 306 240 305 Trgb
-0.000000 0.663069 0.198921 241 306 237 304 240 305 Trgb
-0.000000 0.663069 0.198921 237 304 237 303 240 305 Trgb
-0.000000 0.004603 0.001381 237 304 193 373 193 372 Trgb
-0.000000 0.002302 0.000690 237 304 193 372 237 303 Trgb
-0.000000 0.134078 0.040224 241 306 197 375 193 373 Trgb
-0.000000 0.070492 0.021148 241 306 193 373 237 304 Trgb
-0.000000 0.193062 0.057919 243 307 199 376 197 375 Trgb
-0.000000 0.195363 0.058609 243 307 197 375 241 306 Trgb
-0.000000 0.000000 0.000000 195 373 198 373 196 374 Trgb
-0.000000 0.000000 0.000000 198 373 199 374 196 374 Trgb
-0.000000 0.000000 0.000000 199 374 197 375 196 374 Trgb
-0.000000 0.000000 0.000000 197 375 194 376 196 374 Trgb
-0.000000 0.000000 0.000000 194 376 193 374 196 374 Trgb
-0.000000 0.000000 0.000000 193 374 195 373 196 374 Trgb
-0.000000 0.116215 0.034865 194 376 202 423 201 422 Trgb
-0.000000 0.058108 0.017432 194 376 201 422 193 374 Trgb
-0.000000 0.468066 0.140420 197 375 204 423 202 423 Trgb
-0.000000 0.321194 0.096358 197 375 202 423 194 376 Trgb
-0.000000 0.498723 0.149617 199 374 206 422 204 423 Trgb
-0.000000 0.556831 0.167049 199 374 204 423 197 375 Trgb
-0.000000 0.011484 0.003445 202 423 231 450 230 451 Trgb
-0.000000 0.005742 0.001723 202 423 230 451 202 423 Trgb
-0.000000 0.027990 0.008397 204 422 232 449 231 450 Trgb
-0.000000 0.022608 0.006782 204 422 231 450 202 423 Trgb
-0.000000 0.021887 0.006566 205 420 233 448 232 449 Trgb
-0.000000 0.027629 0.008289 205 420 232 449 204 422 Trgb
-0.140855 0.120441 0.052259 222 460 224 457 234 462 Trgb
-0.240544 0.205683 0.089245 244 451 244 451 242 459 Trgb
-0.170476 0.145769 0.063249 244 451 244 451 242 439 Trgb
-0.212239 0.181480 0.078744 238 442 242 439 244 451 Trgb
-0.303940 0.259891 0.112766 234 462 244 451 242 459 Trgb
-0.225159 0.192527 0.083537 224 457 231 450 234 462 Trgb
-0.297267 0.254185 0.110290 244 451 234 462 231 450 Trgb
-0.275635 0.235688 0.102265 231 450 238 442 244 451 Trgb
-0.044827 0.038331 0.016632 224 457 222 460 219 448 Trgb
-0.000000 0.000000 0.000000 230 437 229 437 221 439 Trgb
-0.020908 0.017878 0.007757 229 437 230 437 242 439 Trgb
-0.095304 0.081492 0.035359 242 439 238 442 229 437 Trgb
-0.000000 0.000000 0.000000 229 437 219 448 221 439 Trgb
-0.129131 0.110416 0.047909 231 450 224 457 219 448 Trgb
-0.084303 0.072086 0.031278 219 448 229 437 231 450 Trgb
-0.158699 0.135699 0.058880 238 442 231 450 229 437 Trgb
-0.000000 0.697205 0.209161 203 423 202 421 203 422 Trgb
-0.000000 0.697205 0.209161 202 421 202 420 203 422 Trgb
-0.000000 0.697205 0.209161 202 420 203 421 203 422 Trgb
-0.000000 0.697205 0.209161 203 421 205 422 203 422 Trgb
-0.000000 0.697205 0.209161 205 422 205 423 203 422 Trgb
-0.000000 0.697205 0.209161 205 423 203 423 203 422 Trgb
-0.000000 0.053582 0.016075 205 423 177 446 175 445 Trgb
-0.000000 0.054544 0.016363 205 423 175 445 203 423 Trgb
-0.000000 0.001924 0.000577 202 421 174 444 174 443 Trgb
-0.000000 0.000962 0.000289 202 421 174 443 202 420 Trgb
-0.000000 0.037965 0.011390 203 423 175 445 174 444 Trgb
-0.000000 0.020425 0.006128 203 423 174 444 202 421 Trgb
-0.316256 0.106519 0.084555 174 454 183 458 166 458 Trgb
-0.035608 0.011993 0.009520 158 444 166 458 164 454 Trgb
-0.217204 0.073158 0.058072 166 444 174 454 166 458 Trgb
-0.081816 0.027557 0.021875 166 458 158 444 166 444 Trgb
-0.046208 0.015564 0.012354 163 434 166 444 158 444 Trgb
-0.350542 0.118068 0.093722 193 445 183 444 188 434 Trgb
-0.436507 0.147022 0.116706 183 458 174 454 183 444 Trgb
-0.410770 0.138353 0.109825 183 444 193 445 183 458 Trgb
-0.324951 0.109448 0.086880 188 454 183 458 193 445 Trgb
-0.251490 0.084706 0.067239 183 444 175 430 188 434 Trgb
-0.337456 0.113660 0.090223 174 454 166 444 183 444 Trgb
-0.212668 0.071630 0.056859 175 430 183 444 166 444 Trgb
-0.056808 0.019134 0.015188 166 444 163 434 175 430 Trgb
-0.095631 0.032210 0.025568 175 430 185 430 188 434 Trgb
-0.010600 0.003570 0.002834 163 434 168 430 175 430 Trgb
-0.000000 0.699705 0.209912 228 451 227 452 227 452 Trgb
-0.000000 0.699705 0.209912 227 452 226 453 227 452 Trgb
-0.000000 0.699705 0.209912 226 453 225 453 227 452 Trgb
-0.000000 0.699705 0.209912 225 453 226 451 227 452 Trgb
-0.000000 0.699705 0.209912 226 451 228 450 227 452 Trgb
-0.000000 0.699705 0.209912 228 450 228 451 227 452 Trgb
-0.000000 0.012277 0.003683 203 421 226 451 225 453 Trgb
-0.000000 0.006561 0.001968 203 421 225 453 202 423 Trgb
-0.000000 0.017430 0.005229 204 421 228 450 226 451 Trgb
-0.000000 0.017712 0.005313 204 421 226 451 203 421 Trgb
-0.000000 0.005716 0.001715 205 421 228 451 228 450 Trgb
-0.000000 0.011432 0.003430 205 421 228 450 204 421 Trgb
-0.039036 0.368851 0.081578 229 459 226 459 232 458 Trgb
-0.014453 0.136564 0.030203 221 457 220 456 226 459 Trgb
-0.054216 0.512286 0.113300 232 453 235 454 232 458 Trgb
-0.042493 0.401514 0.088801 235 454 232 453 233 446 Trgb
-0.040366 0.381422 0.084358 229 448 233 446 232 453 Trgb
-0.054876 0.518519 0.114679 226 459 232 453 232 458 Trgb
-0.022702 0.214515 0.047443 220 456 223 452 226 459 Trgb
-0.043812 0.413980 0.091559 232 453 226 459 223 452 Trgb
-0.041026 0.387655 0.085736 223 452 229 448 232 453 Trgb
-0.007590 0.071717 0.015861 225 444 228 445 233 446 Trgb
-0.018790 0.177548 0.039268 233 446 229 448 225 444 Trgb
-0.000000 0.000000 0.000000 225 444 219 450 222 445 Trgb
-0.008716 0.082358 0.018215 223 452 220 456 219 450 Trgb
-0.008250 0.077951 0.017240 219 450 225 444 223 452 Trgb
-0.019450 0.183782 0.040646 229 448 223 452 225 444 Trgb
-0.000000 0.675852 0.202756 157 401 155 402 154 399 Trgb
-0.000000 0.675852 0.202756 155 402 153 400 154 399 Trgb
-0.000000 0.675852 0.202756 153 400 152 397 154 399 Trgb
-0.000000 0.675852 0.202756 152 397 154 396 154 399 Trgb
-0.000000 0.675852 0.202756 154 396 156 398 154 399 Trgb
-0.000000 0.675852 0.202756 156 398 157 401 154 399 Trgb
-0.000000 0.082884 0.024865 197 377 155 402 157 401 Trgb
-0.000000 0.128084 0.038425 197 377 157 401 198 376 Trgb
-0.000000 0.090401 0.027120 198 373 156 398 154 396 Trgb
-0.000000 0.045200 0.013560 198 373 154 396 195 371 Trgb
-0.000000 0.160724 0.048217 198 376 157 401 156 398 Trgb
-0.000000 0.148162 0.044449 198 376 156 398 198 373 Trgb
-0.000000 0.624566 0.187370 133 381 132 382 132 381 Trgb
-0.000000 0.624566 0.187370 132 382 130 382 132 381 Trgb
-0.000000 0.624566 0.187370 130 382 130 380 132 381 Trgb
-0.000000 0.624566 0.187370 130 380 132 379 132 381 Trgb
-0.000000 0.624566 0.187370 132 379 134 379 132 381 Trgb
-0.000000 0.624566 0.187370 134 379 133 381 132 381 Trgb
-0.000000 0.236481 0.070944 154 401 132 382 133 381 Trgb
-0.000000 0.274378 0.082313 154 401 133 381 156 400 Trgb
-0.000000 0.066195 0.019858 153 400 130 382 132 382 Trgb
-0.000000 0.132389 0.039717 153 400 132 382 154 401 Trgb
-0.000000 0.246080 0.073824 156 400 133 381 134 379 Trgb
-0.000000 0.179885 0.053966 156 400 134 379 156 398 Trgb
-0.190356 0.052692 0.048610 134 378 117 386 121 372 Trgb
-0.466388 0.129100 0.119098 146 386 134 397 134 378 Trgb
-0.319369 0.088404 0.081555 117 386 134 378 134 397 Trgb
-0.207824 0.057527 0.053070 134 397 122 397 117 386 Trgb
-0.050611 0.014010 0.012924 117 386 115 370 121 372 Trgb
-0.032644 0.009036 0.008336 115 370 117 386 115 388 Trgb
-0.060843 0.016842 0.015537 122 397 115 388 117 386 Trgb
-0.157712 0.043656 0.040274 132 362 134 378 121 372 Trgb
-0.426508 0.118061 0.108914 149 373 146 386 134 378 Trgb
-0.246846 0.068329 0.063035 134 378 132 362 149 373 Trgb
-0.107101 0.029646 0.027349 142 364 149 373 132 362 Trgb
-0.440979 0.122066 0.112609 134 397 146 386 149 391 Trgb
-0.268552 0.074337 0.068578 149 391 132 398 134 397 Trgb
-0.182415 0.050494 0.046582 122 397 134 397 132 398 Trgb
-0.017967 0.004973 0.004588 115 370 132 362 121 372 Trgb
-0.401099 0.111028 0.102425 146 386 149 373 149 391 Trgb
-0.000000 0.696208 0.208862 150 441 149 441 152 441 Trgb
-0.000000 0.696208 0.208862 149 441 151 441 152 441 Trgb
-0.000000 0.696208 0.208862 151 441 153 441 152 441 Trgb
-0.000000 0.696208 0.208862 153 441 154 441 152 441 Trgb
-0.000000 0.696208 0.208862 154 441 152 441 152 441 Trgb
-0.000000 0.696208 0.208862 152 441 150 441 152 441 Trgb
-0.000000 0.021860 0.006558 154 399 151 441 149 441 Trgb
-0.000000 0.010930 0.003279 154 399 149 441 152 399 Trgb
-0.000000 0.059363 0.017809 156 399 153 441 151 441 Trgb
-0.000000 0.046076 0.013823 156 399 151 441 154 399 Trgb
-0.000000 0.050790 0.015237 157 399 154 441 153 441 Trgb
-0.000000 0.061719 0.018516 157 399 153 441 156 399 Trgb
-0.039530 0.023325 0.012571 135 441 138 440 141 452 Trgb
-0.241096 0.142261 0.076671 141 452 158 453 150 458 Trgb
-0.358611 0.211603 0.114043 149 440 162 441 158 453 Trgb
-0.265973 0.156940 0.084583 158 453 141 452 149 440 Trgb
-0.127736 0.075372 0.040622 138 440 149 440 141 452 Trgb
-0.000000 0.000000 0.000000 138 440 135 441 143 428 Trgb
-0.251597 0.148458 0.080011 158 453 160 454 150 458 Trgb
-0.369112 0.217799 0.117382 162 441 168 442 158 453 Trgb
-0.286976 0.169334 0.091262 160 454 158 453 168 442 Trgb
-0.048676 0.028722 0.015480 160 429 143 428 153 424 Trgb
-0.269050 0.158756 0.085561 162 441 149 440 160 429 Trgb
-0.136882 0.080769 0.043530 143 428 160 429 149 440 Trgb
-0.088206 0.052047 0.028051 149 440 138 440 143 428 Trgb
-0.279552 0.164953 0.088901 168 442 162 441 160 429 Trgb
-0.147384 0.086966 0.046870 160 429 162 430 168 442 Trgb
-0.000000 0.698453 0.209536 154 397 154 397 154 399 Trgb
-0.000000 0.698453 0.209536 154 397 155 399 154 399 Trgb
-0.000000 0.698453 0.209536 155 399 155 401 154 399 Trgb
-0.000000 0.698453 0.209536 155 401 155 401 154 399 Trgb
-0.000000 0.698453 0.209536 155 401 154 399 154 399 Trgb
-0.000000 0.698453 0.209536 154 399 154 397 154 399 Trgb
-0.000000 0.024988 0.007496 154 399 112 404 112 402 Trgb
-0.000000 0.012494 0.003748 154 399 112 402 154 397 Trgb
-0.000000 0.040894 0.012268 155 401 112 406 112 404 Trgb
-0.000000 0.039188 0.011756 155 401 112 404 154 399 Trgb
-0.000000 0.017612 0.005284 155 401 113 406 112 406 Trgb
-0.000000 0.030106 0.009032 155 401 112 406 155 401 Trgb
-0.013474 0.018613 0.006417 101 396 102 410 99 405 Trgb
-0.048974 0.067653 0.023325 110 392 110 400 101 396 Trgb
-0.062448 0.086266 0.029743 102 410 101 396 110 400 Trgb
-0.140330 0.193851 0.066836 110 400 111 410 102 410 Trgb
-0.074641 0.103109 0.035550 104 413 102 410 113 417 Trgb
-0.152523 0.210694 0.072643 111 410 113 417 102 410 Trgb
-0.000000 0.000000 0.000000 112 391 110 392 101 396 Trgb
-0.190994 0.263838 0.090966 121 407 120 394 126 402 Trgb
-0.084474 0.116692 0.040233 110 400 110 392 120 394 Trgb
-0.181141 0.250228 0.086274 120 394 121 407 110 400 Trgb
-0.223523 0.308773 0.106459 111 410 110 400 121 407 Trgb
-0.203187 0.280681 0.096774 123 411 121 407 126 402 Trgb
-0.205527 0.283915 0.097888 121 407 123 411 113 417 Trgb
-0.235716 0.325617 0.112267 113 417 111 410 121 407 Trgb
-0.035500 0.049040 0.016908 110 392 112 391 120 394 Trgb
-0.000000 0.000000 0.000000 196 373 198 373 196 374 Trgb
-0.000000 0.000000 0.000000 198 373 199 374 196 374 Trgb
-0.000000 0.000000 0.000000 199 374 196 375 196 374 Trgb
-0.000000 0.000000 0.000000 196 375 194 375 196 374 Trgb
-0.000000 0.000000 0.000000 194 375 194 374 196 374 Trgb
-0.000000 0.000000 0.000000 194 374 196 373 196 374 Trgb
-0.000000 0.058250 0.017475 196 375 211 428 209 428 Trgb
-0.000000 0.029125 0.008737 196 375 209 428 194 375 Trgb
-0.000000 0.089543 0.026863 199 374 214 427 211 428 Trgb
-0.000000 0.088459 0.026538 199 374 211 428 196 375 Trgb
-0.000000 0.032377 0.009713 198 373 213 426 214 427 Trgb
-0.000000 0.061502 0.018451 198 373 214 427 199 374 Trgb
-0.000000 0.030777 0.009233 211 428 250 437 250 438 Trgb
-0.000000 0.024674 0.007402 211 428 250 438 211 429 Trgb
-0.000000 0.024499 0.007350 211 426 250 435 250 437 Trgb
-0.000000 0.030690 0.009207 211 426 250 437 211 428 Trgb
-0.000000 0.006103 0.001831 212 425 250 434 250 435 Trgb
-0.000000 0.012206 0.003662 212 425 250 435 211 426 Trgb
-0.191392 0.316343 0.101547 257 446 258 441 262 439 Trgb
-0.197092 0.325763 0.104571 248 447 249 440 258 441 Trgb
-0.176218 0.291262 0.093496 258 441 257 446 248 447 Trgb
-0.088556 0.146370 0.046985 247 447 248 447 257 446 Trgb
-0.191022 0.315731 0.101350 258 441 260 430 262 439 Trgb
-0.196721 0.325151 0.104374 249 440 251 431 258 441 Trgb
-0.175477 0.290037 0.093103 260 430 258 441 251 431 Trgb
-0.087553 0.144712 0.046453 251 431 253 425 260 430 Trgb
-0.002361 0.003902 0.001253 241 437 240 442 238 433 Trgb
-0.111529 0.184341 0.059174 249 440 248 447 241 437 Trgb
-0.047688 0.078822 0.025302 240 442 241 437 248 447 Trgb
-0.045589 0.075353 0.024188 248 447 247 447 240 442 Trgb
-0.002361 0.003902 0.001253 243 426 241 437 238 433 Trgb
-0.111158 0.183728 0.058977 251 431 249 440 241 437 Trgb
-0.047318 0.078209 0.025105 241 437 243 426 251 431 Trgb
-0.044957 0.074307 0.023853 253 425 251 431 243 426 Trgb
-0.000000 0.696159 0.208848 210 428 209 426 211 427 Trgb
-0.000000 0.696159 0.208848 209 426 211 426 211 427 Trgb
-0.000000 0.696159 0.208848 211 426 212 426 211 427 Trgb
-0.000000 0.696159 0.208848 212 426 213 428 211 427 Trgb
-0.000000 0.696159 0.208848 213 428 212 429 211 427 Trgb
-0.000000 0.696159 0.208848 212 429 210 428 211 427 Trgb
-0.000000 0.053681 0.016104 212 429 198 454 197 453 Trgb
-0.000000 0.036521 0.010956 212 429 197 453 210 428 Trgb
-0.000000 0.057934 0.017380 213 428 200 453 198 454 Trgb
-0.000000 0.064388 0.019316 213 428 198 454 212 429 Trgb
-0.000000 0.012907 0.003872 210 428 197 453 196 451 Trgb
-0.000000 0.006454 0.001936 210 428 196 451 209 426 Trgb
-0.154398 0.084429 0.047765 188 459 198 464 187 464 Trgb
-0.165493 0.090496 0.051198 202 466 187 464 198 464 Trgb
-0.296883 0.162344 0.091845 198 464 209 463 202 466 Trgb
-0.036020 0.019697 0.011143 183 449 188 459 187 464 Trgb
-0.274719 0.150224 0.084989 209 453 194 450 203 442 Trgb
-0.225659 0.123397 0.069811 198 464 188 459 194 450 Trgb
-0.328338 0.179544 0.101576 194 450 209 453 198 464 Trgb
-0.388466 0.212424 0.120178 209 463 198 464 209 453 Trgb
-0.223779 0.122368 0.069229 209 440 209 453 203 442 Trgb
-0.226457 0.123833 0.070058 209 453 209 440 213 455 Trgb
-0.337526 0.184568 0.104419 213 455 209 463 209 453 Trgb
-0.136021 0.074380 0.042080 194 450 194 438 203 442 Trgb
-0.107282 0.058665 0.033189 188 459 183 449 194 450 Trgb
-0.071262 0.038968 0.022046 194 438 194 450 183 449 Trgb
-0.000000 0.000000 0.000000 183 449 187 441 194 438 Trgb
-0.085080 0.046524 0.026321 194 438 209 440 203 442 Trgb
-0.000000 0.695760 0.208728 202 465 202 466 200 465 Trgb
-0.000000 0.695760 0.208728 202 466 201 466 200 465 Trgb
-0.000000 0.695760 0.208728 201 466 199 465 200 465 Trgb
-0.000000 0.695760 0.208728 199 465 198 464 200 465 Trgb
-0.000000 0.695760 0.208728 198 464 200 465 200 465 Trgb
-0.000000 0.695760 0.208728 200 465 202 465 200 465 Trgb
-0.000000 0.053534 0.016060 213 428 202 466 202 465 Trgb
-0.000000 0.065180 0.019554 213 428 202 465 213 427 Trgb
-0.000000 0.023293 0.006988 211 427 200 465 198 464 Trgb
-0.000000 0.011646 0.003494 211 427 198 464 209 427 Trgb
-0.000000 0.062864 0.018859 213 427 202 465 200 465 Trgb
-0.000000 0.048901 0.014670 213 427 200 465 211 427 Trgb
-0.375597 0.014475 0.078015 207 480 205 484 195 485 Trgb
-0.566565 0.021835 0.117680 216 466 220 471 207 480 Trgb
-0.435134 0.016770 0.090381 205 484 207 480 220 471 Trgb
-0.360499 0.013893 0.074879 187 474 207 480 195 485 Trgb
-0.551467 0.021253 0.114544 202 460 216 466 207 480 Trgb
-0.404938 0.015606 0.084109 207 480 187 474 202 460 Trgb
-0.194920 0.007512 0.040486 187 458 202 460 187 474 Trgb
-0.435649 0.016790 0.090488 220 471 216 466 215 452 Trgb
-0.150481 0.005799 0.031256 185 479 187 474 195 485 Trgb
-0.057909 0.002232 0.012028 187 474 185 479 180 460 Trgb
-0.057909 0.002232 0.012028 180 460 187 458 187 474 Trgb
-0.079101 0.003049 0.016430 215 452 195 446 206 446 Trgb
-0.420551 0.016208 0.087352 216 466 202 460 215 452 Trgb
-0.216112 0.008329 0.044888 195 446 215 452 202 460 Trgb
-0.137011 0.005280 0.028458 202 460 187 458 195 446 Trgb
-0.000000 0.000000 0.000000 187 458 180 460 195 446 Trgb
-
-0.2 20 20 592 592 BDR
-
-grestore
-showpage
-%%Trailer
-%%Pages: 1
-end
-clear cleardictstack
-doretreesave restore
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/escher.ps b/Master/xemtex/doc/ghostscript/examples/escher.ps
deleted file mode 100644
index 74b3e92d6de..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/escher.ps
+++ /dev/null
@@ -1,384 +0,0 @@
-%!
-% If you're concerned that the cpu in your PostScript printer will atrophy
-% from disuse, here is another Escher-like contribution to to keep it busy
-% for a while. It uses PostScript color commands, but will still work on
-% a monochrome printer (but isn't very pretty in black & white).
-%
-% The butterflies are arranged in a hexagonal grid (wallpaper group p6),
-% and the moveto, lineto, curveto commands used to render the tesselation
-% are redefined so as to impose a nonlinear transform that shrinks the
-% infinite plane to an ellipse. This is a sleazy way to mimic Escher's
-% "circle limit" sorts of things.
-%
-% The butterfly permimeter was made by imposing all the symmetry constraints
-% on a path, and then that path was filled in using Adobe Illustrator
-%
-% The routines Xform and next_color are easy to change if you want to hack
-% with them. The code was written to sacrifice efficiency for readability.
-%
-% Bob Wallis
-%
-% UUCP {sun,pyramid,cae780,apple}!weitek!wallis
-
-/eschersave save def % prevent left over side effects
-
-%statusdict begin waittimeout 6000 lt % if you have a slow printer, you
-% {0 60 6000 setdefaulttimeouts} % might need to uncomment this
-%if end
-
-/nlayers 1 def % 1 takes about 10 minutes on a LW+; 2 takes 4x longer
-/warp 1 def % 1 -> ellipsoidal distortion; 0 -> flat Euclidean
-/inch {72 mul} def
-
-/x4 152 def /y4 205.6 def % 6 fold rotation center of bfly
-/x12 387.20 def /y12 403.84 def % 3 fold center of bfly
-
-/dx x4 x12 sub def % [dx,dy] = distance between the
-/dy y4 y12 sub def % two fixed points above
-
-/Dm dx dup mul dy dup mul % magnitude of basis vectors of
- add sqrt 3 sqrt mul % parallelogram lattice
-def % = |dx,dy| * sqrt(3)
-
-/Da dy dx atan 30 add def
-/D1x Dm Da cos mul def % [D1x, D1y] = basis vector vector #1
-/D1y Dm Da sin mul def % = [Dm,0] exp(j30)
-
-/Da dy dx atan 30 sub def
-/D2x Dm Da cos mul def % [D2x, D2y] = basis vector vector #2
-/D2y Dm Da sin mul def % = [Dm,0] exp(-j30)
-
-/m { moveto} def
-/L {lineto} def
-/S {stroke} def
-/c {curveto} def
-/f {closepath fill} def
-/F {closepath fill} def
-/g { setgray} def
-
-/FillStroke { % fill interior & stroke black border
- closepath gsave fill grestore 0 setgray stroke
-} def
-
-%
-% Description of 1 butterfly
-%
-/body {
- 314.96 280.19 m
- 383.4 261.71 445.11 243.23 513.52 224.68 c
- 463.68 256.59 490.26 328.83 446.99 360.76 c
- 423.71 347.32 397.08 339.7 367.07 337.9 c
- 388.93 358.28 414.14 372.84 442.73 381.58 c
- 426.68 398.18 394.07 389.7 387.2 403.84 c
- 371.52 404.96 362.56 372.48 340.16 366.88 c
- 346.88 396.01 346.88 425.12 340.16 454.24 c
- 326.72 427.35 320 400.48 320 373.6 c
- 270.71 352.1 221.44 411.23 168.88 384.02 c
- 189.04 388.03 202.48 380.4 212.57 366.95 c
- 216.72 350.85 209.23 341.46 190.1 338.79 c
- 177.34 343.57 167.94 354.17 161.9 370.59 c
- 176.06 305.52 132.02 274.05 152 205.6 c
- 201.29 257.12 250.56 234.72 299.84 279.52 c
- 288.64 266.08 284.16 252.64 286.4 239.2 c
- 298.27 223.97 310.15 222.18 322.02 233.82 c
- 328.62 249.28 328.51 264.74 314.96 280.19 c
- FillStroke
-} def
-
-/eyes {
- 294.8125 238.3246 m
- 296.9115 238.3246 298.6132 242.7964 298.6132 248.3125 c
- 298.6132 253.8286 296.9115 258.3004 294.8125 258.3004 c
- 292.7135 258.3004 291.0118 253.8286 291.0118 248.3125 c
- 291.0118 242.7964 292.7135 238.3246 294.8125 238.3246 c
- closepath gsave 1 g fill grestore 0 g S
-
- 319.5 241.1782 m
- 321.7455 241.1782 323.5659 245.4917 323.5659 250.8125 c
- 323.5659 256.1333 321.7455 260.4468 319.5 260.4468 c
- 317.2545 260.4468 315.4341 256.1333 315.4341 250.8125 c
- 315.4341 245.4917 317.2545 241.1782 319.5 241.1782 c
- closepath gsave 1 g fill grestore 0 g S
- 0 g
- 296.875 242.0939 m
- 297.4608 242.0939 297.9356 243.479 297.9356 245.1875 c
- 297.9356 246.896 297.4608 248.2811 296.875 248.2811 c
- 296.2892 248.2811 295.8143 246.896 295.8143 245.1875 c
- 295.8143 243.479 296.2892 242.0939 296.875 242.0939 c
- f
- 0 g
- 318.5 243.7707 m
- 319.281 243.7707 319.9142 245.0766 319.9142 246.6875 c
- 319.9142 248.2984 319.281 249.6043 318.5 249.6043 c
- 317.719 249.6043 317.0858 248.2984 317.0858 246.6875 c
- 317.0858 245.0766 317.719 243.7707 318.5 243.7707 c
- f
-} def
-
-/stripes {
- 292 289 m
- 252 294 241 295 213 279 c
- 185 263 175 252 159 222 c
- S
- 285 313 m
- 239 326 226 325 206 315 c
- 186 305 164 278 161 267 c
- S
- 298 353 m
- 262 342 251 339 237 355 c
- 223 371 213 380 201 383 c
- S
- 330 288 m
- 384 293 385 292 418 280 c
- 451 268 452 264 473 247 c
- S
- 342 306 m
- 381 311 386 317 410 311 c
- 434 305 460 287 474 262 c
- S
- 345 321 m
- 352 357 359 367 379 377 c
- 399 387 409 385 426 382 c
- S
- 327.75 367.75 m
- 336.5 392.25 333.682 403.348 335.25 415.5 c
- S
- 320 364.75 m
- 322 361.75 323.5 360.5 326.25 360 c
- 329 359.5 332 360.5 334 362.75 c
- S
- 316.25 356.5 m
- 318.75 353.25 320 353 323.25 352.25 c
- 326.5 351.5 329 352 331.5 353.25 c
- S
- 312.5 349 m
- 316.75 345.5 318.25 344.5 321.25 343.75 c
- 324.25 343 327 344 329.75 346 c
- S
- 310.75 340.75 m
- 314.25 336.5 316.25 335.25 320 335.25 c
- 323.75 335.25 327 336.5 329.25 338 c
- S
- 308.5 332 m
- 311.75 328.5 312.5 327.25 317 327 c
- 321.5 326.75 325.75 328.25 327.75 329.75 c
- S
- 305 322 m
- 309.5 317.75 310.75 317 315 316.5 c
- 319.25 316 322.25 318 324.75 320 c
- S
- 302.25 311 m
- 307 307.5 307.75 306.25 312.75 306 c
- 317.75 305.75 320 307.25 323.75 309.5 c
- S
- 301.25 298.25 m
- 304.5 292.75 305.25 292 308.25 292 c
- 311.25 292 313.75 293.75 315.75 295.75 c
- S
-} def
-/nostrils {
- 0 g
- 304.062 227.775 m
- 304.599 227.775 305.034 228.883 305.034 230.25 c
- 305.034 231.616 304.599 232.724 304.062 232.724 c
- 303.525 232.724 303.09 231.616 303.09 230.25 c
- 303.09 228.883 303.525 227.775 304.062 227.775 c
- f
- 304.062 230.25 m
- F
- 309.562 228.275 m
- 310.099 228.275 310.534 229.383 310.534 230.75 c
- 310.534 232.116 310.099 233.224 309.562 233.224 c
- 309.025 233.224 308.59 232.116 308.59 230.75 c
- 308.59 229.383 309.025 228.275 309.562 228.275 c
- f
-} def
-/thorax
-{
- 327.5 300 m
- 316.5 283 315.5 275.5 308 277.5 c
- 294 311.5 299 313.5 304 334 c
- 309 354.5 315.5 362 322.5 372 c
- 329.5 382 327.5 376.5 331 376 c
- 334.5 375.5 339.1367 379.1109 339 369 c
- 338.5 332 333.4999 324.5 330.5 311.5 c
- 0 g S
-} def
-/spots {
- next_color
- 192 242.201 m
- 202.1535 242.201 210.3848 251.0655 210.3848 262 c
- 210.3848 272.9345 202.1535 281.799 192 281.799 c
- 181.8465 281.799 173.6152 272.9345 173.6152 262 c
- 173.6152 251.0655 181.8465 242.201 192 242.201 c
- FillStroke
- next_color
- 447.5 250.2365 m
- 459.6061 250.2365 469.4203 257.5181 469.4203 266.5 c
- 469.4203 275.4819 459.6061 282.7635 447.5 282.7635 c
- 435.3939 282.7635 425.5797 275.4819 425.5797 266.5 c
- 425.5797 257.5181 435.3939 250.2365 447.5 250.2365 c
- FillStroke
- next_color
- 401 369.1005 m
- 409.5914 369.1005 416.5563 373.5327 416.5563 379 c
- 416.5563 384.4673 409.5914 388.8995 401 388.8995 c
- 392.4086 388.8995 385.4436 384.4673 385.4436 379 c
- 385.4436 373.5327 392.4086 369.1005 401 369.1005 c
- FillStroke
- next_color
- 249 348.2721 m
- 261.4966 348.2721 271.6274 353.9707 271.6274 361 c
- 271.6274 368.0293 261.4966 373.7279 249 373.7279 c
- 236.5034 373.7279 226.3726 368.0293 226.3726 361 c
- 226.3726 353.9707 236.5034 348.2721 249 348.2721 c
- FillStroke
-} def
-
-/ncolor 6 def
-/cidx 0 def
-
-/next_color {
- cidx ncolor div % hue
- .75 % saturation (change these if you like)
- .8 % lightness
- sethsbcolor
- /cidx cidx 1 add ncolor mod def
-} def
-
-/cidx 0 def
-
-/max_r2 % radius^2 for center of outermost ring of butterflies
- Dm nlayers mul 1.05 mul dup mul
-def
-
-/max_radius max_r2 sqrt def
-/max_radius_inv 1 max_radius div def
-/Dm_inv 1 Dm div def
-
-%
-% Ellipsoidal distortion, maps "nlayers" concentric rings of cells into
-% an ellipse centered on page
-
-% D length of 1 basis vector separating hexagonal cells
-% z0 center of 6-fold rotation = origin of shrink xform
-% z' = (z - z0)/D new coord system
-% |z'| = sqrt(x^2 + [(8.5/11)*y]^2) aspect ratio of paper
-% z" = z' * a/M(|z'|) shrink by "a/M(|z|)" as fcn of radius
-
-% At the max radius, we want the shrunk ellipse to be "W" units wide so it
-% just fits our output format - solve for scale factor "a"
-
-% zmax = n+0.5 for n layers of cells
-% zmax * [a/M(zmax)] = W 1/2 width of output on paper
-% a = M(zmax)*W/zmax solve for "a"
-
-%/M{dup mul 1 add sqrt}bind def % M(u) = sqrt(1+|u|^2) = one possible shrink
-/M { 1.5 add } bind def % M(u) = (1.5+|u|) = another possible one
-/W 3.8 inch def % 1/2 width of ellipse
-/zmax 0.5 nlayers add def % radius at last layer of hexagons
-/a zmax M W mul zmax div def % a = M(zmax)*W/zmax
-
-/Xform { % [x0,y0] = ctr ellipse
- Matrix transform
- /y exch def
- /x exch def
- /z x dup mul y .773 mul dup mul add sqrt def % ellipse radius
- /Scale a z M div def % z=a/M(|z|)
- x Scale mul x0 add % magnify back up
- y Scale mul y0 add % [x0+x*s, y0+y*s]
-} def
-
-
-/Helvetica findfont 8 scalefont setfont
-4.25 inch 0.5 inch moveto
-(RHW) stringwidth pop -0.5 mul 0 rmoveto
-(RHW) show % autograph
-
-warp 1 eq { % redefine commands to use Xform
- /moveto { Xform //moveto} def
- /lineto { Xform //lineto} def
- /curveto {
- Xform 6 -2 roll
- Xform 6 -2 roll
- Xform 6 -2 roll
- //curveto
- } def
-}if
-
-
-/bfly { % paint 1 butterfly
- next_color body
- 1 setgray eyes
- stripes
- 0 setgray nostrils
- 0.5 setgray thorax next_color
- spots
-} def
-
-/x0 x4 def % center
-/y0 y4 def
-
-/T1matrix % xlate to center of image
- x0 neg y0 neg matrix translate
-def
-
-/Smatrix % scale so that 1 basis vector = 1.0
- Dm_inv dup matrix scale
-def
-
-/HexCell { % 6 butterflys rotated about center of
- /cidx 0 def % 6 fold symmetry
- /color 0 def
- /T2matrix dx dy matrix translate def
- 0 60 300 {
- /angle exch def
- /Rmatrix angle matrix rotate def
- /Matrix % translate, rotate, scale - used by Xform
- T1matrix Rmatrix matrix concatmatrix
- T2matrix matrix concatmatrix
- Smatrix matrix concatmatrix
- def
- gsave
- warp 0 eq % then may use usual PostScript machinery
- { % else using Xform
- x0 y0 translate angle rotate
- .5 dup scale
- dx x0 sub dy y0 sub translate
- } if
- bfly
- next_color
- grestore
- } for
-} def
-
-
-%320 x4 sub 240 y4 sub translate
-4.25 inch x4 sub 5.5 inch y4 sub translate
-
-
-0 setlinewidth
-/N 2 def
-N neg 1 N {
- /i exch def % translate to
- N neg 1 N { % i*D1 + j*D2
- /j exch def % and draw HexCell
- gsave
- /dx i D1x mul j D2x mul add def % translate HexCell by
- /dy i D1y mul j D2y mul add def % [dx,dy]
- /r2 dx dup mul dy dup mul add def % r^2 = |dx,dy|^2
- r2 max_r2 lt % inside radius?
- { % yes
- 1 r2 max_r2 div sub sqrt 2 div
- setlinewidth % make skinnier lines
- HexCell % 6 butterflies
- }
- if
- grestore
- } for
-} for
-
-showpage
-
-clear cleardictstack
-eschersave restore
diff --git a/Master/xemtex/doc/ghostscript/examples/golfer.ps b/Master/xemtex/doc/ghostscript/examples/golfer.ps
deleted file mode 100644
index 9f3a8916d49..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/golfer.ps
+++ /dev/null
@@ -1,1401 +0,0 @@
-%!PS-Adobe-2.0 EPSF-1.2
-%%Creator:Adobe Illustrator(TM) 1.0b2-
-%%Title:golfer art+
-%%CreationDate:1/6/87 9:32 AM
-%%DocumentFonts:Helvetica-Bold
-%%BoundingBox:7 31 577 726
-%%TemplateBox:0 -48 576 672
-%%EndComments
-/golfersave save def % prevent left over effects
-100 dict begin
-/q{bind def}bind def
-/Q{load def}q
-/x{exch def}q
-/X/def Q
-/g{/_g x/p{_g setgray}X}q
-/G{/_G x/P{_G setgray}X}q
-/k{/_b x/_g x/_r x/p{_r _g _b setrgbcolor}X}q
-/K{/_B x/_G x/_R x/P{_R _G _B setrgbcolor}X}q
-/d/setdash Q
-/i/setflat Q
-/j/setlinejoin Q
-/J/setlinecap Q
-/M/setmiterlimit Q
-/w/setlinewidth Q
-/_C{.25 sub round .25 add}q
-/_c{transform _C exch _C exch itransform}q
-/c{_c curveto}q
-/C/c Q
-/v{currentpoint 6 2 roll _c curveto}q
-/V/v Q
-/y{_c 2 copy curveto}q
-/Y/y Q
-/l{_c lineto}q
-/L/l Q
-/m{_c moveto}q
-/_e[]X
-/_E{_e length 0 ne{gsave 1 g 0 G 1 i 0 J 0 j .5 w 10 M[]0 d
-/Helvetica-Bold 24 0 0 1 z
-[0.966 0.259 -0.259 0.966
-_e 0 get _e 2 get add 2 div _e 1 get _e 3 get add 2 div]a
-(ERROR: can't fill a path)t T grestore}if}q
-/n/newpath Q
-/N/newpath Q
-/F{p{fill}stopped{/_e[pathbbox]X n _E}if}q
-/f{closepath F}q
-/S{P stroke}q
-/s{closepath S}q
-/B{gsave F grestore S}q
-/b{closepath B}q
-/u{}q
-/U{}q
-/_s/ashow Q
-/_S{(?)exch{2 copy 0 exch put pop dup true charpath currentpoint _m setmatrix
-stroke _M setmatrix moveto 3 copy pop rmoveto}forall pop pop pop n}q
-/_A{_a moveto _t exch 0 exch}q
-/_L{0 _l neg translate _M currentmatrix pop}q
-/_w{dup stringwidth exch 3 -1 roll length 1 sub _t mul add exch}q
-/_z[{0 0}bind{dup _w exch neg 2 div exch neg 2 div}bind
-{dup _w exch neg exch neg}bind]X
-/z{_z exch get/_a x/_t x/_l x exch findfont exch scalefont setfont}q
-/_d{matrix currentmatrix X}q
-/_D{/_m _d gsave concat/_M _d}q
-/e{_D p/t{_A _s _L}X}q
-/r{_D P/t{_A _S _L}X}q
-/a{_D/t{dup p _A _s P _A _S _L}X}q
-/o{_D/t{pop _L}X}q
-/T{grestore}q
-/Z{findfont begin currentdict dup length dict begin
-{1 index/FID ne{X}{pop pop}ifelse}forall/FontName exch X dup length 0 ne
-{/Encoding Encoding 256 array copy X 0 exch{dup type/nametype eq
-{Encoding 2 index 2 index put pop 1 add}{exch pop}ifelse}forall}if pop
-currentdict dup end end/FontName get exch definefont pop}q
-n
-%%EndProlog
-u
-0.9 g
-0 G
-1 i
-0 J
-0 j
-1 w
-10 M
-[]0 d
-%%Note:
-15.815 40.248 m
-567.815 40.002 L
-567.748 716.565 L
-15.998 716.81 L
-15.815 40.248 L
-b
-U
-1 g
-285.313 40 m
-567.688 40.125 L
-567.812 78.375 L
-285.312 78.25 L
-285.313 40 L
-b
-0 g
-175.5 163 m
-180.007 163 173.738 169.081 171.75 168.75 c
-174.75 169.25 176.25 169.5 174.5 171.25 C
-178 171.25 176.349 173.783 175 176.75 c
-173.75 179.5 170.75 182.25 168.25 182 C
-165.5 181.25 167.622 182.838 165.25 186 c
-164.5 187 164.75 187.5 161.75 186.75 c
-158.75 186 163.25 190 156.75 190 c
-150.25 190 148.5 189 145.5 186 c
-142.5 183 139.75 183.75 139.5 182.5 c
-139.25 181.25 139.5 176.75 138.75 175.5 c
-138 174.25 136.75 174.25 136.25 178 c
-135.75 181.75 140.25 182.25 134 187 C
-135.75 190.75 134.5 191.75 131 193.5 C
-131 200 129.202 203.364 119.5 208.5 c
-115.25 210.75 107 212.75 104.75 208.75 c
-102.5 204.75 103 206.5 96.5 205.75 c
-90 205 87.25 202.5 86.5 197.75 c
-85.75 193 82.75 195 79 194.75 c
-75.25 194.5 77 192.75 77.25 191.75 c
-77.5 190.75 75.25 192.5 71.5 192 c
-67.75 191.5 64.25 185.5 69.5 180.75 c
-74.75 176 66.5 180.75 64.25 182.25 c
-62 183.75 60.5 181.75 61 180.25 c
-61.5 178.75 58.75 180.75 57.5 180.75 c
-56.25 180.75 51.008 180.188 52 172.25 c
-52.25 170.25 51.5 170.5 49.75 169.25 c
-48 168 45.75 164.25 48.5 158.75 c
-51.25 153.25 49 150 48 145.5 c
-47 141 48 138.25 51.25 137.25 c
-54.5 136.25 54 133.791 54 130.75 C
-57 130.5 59 129.25 58.75 124.5 C
-62.25 124.5 61.75 126.75 62.5 130 c
-63.25 133.25 65.75 129 66.25 127 c
-66.75 125 67.5 125 72 125 C
-74.75 116.25 74.75 120.5 75.25 117.25 C
-80 117.5 79.5 116.75 83.25 113.75 c
-87 110.75 88.25 115.5 92 118.5 c
-95.75 121.5 94.25 122.75 96.25 118.75 c
-98.25 114.75 98.5 119 101.5 119.25 c
-104.5 119.5 101 115.75 105.25 114.5 c
-109.5 113.25 105 113.75 103.5 111.25 c
-102 108.75 95 103.5 101.75 101.5 c
-108.5 99.5 103.5 99.75 94.75 99.5 c
-86 99.25 73.75 87.5 97.25 73.25 C
-117.25 53.25 117.25 53.5 v
-117.25 53.75 175.25 163 175.5 163 c
-f
-1 J
-0.2 w
-389.709 210.076 m
-511.826 210.076 l
-S
-394.709 212.461 m
-516.826 212.461 l
-S
-415.459 215.112 m
-537.576 215.112 l
-S
-399.709 217.762 m
-521.826 217.762 l
-S
-402.459 222.799 m
-524.576 222.799 l
-S
-402.709 225.45 m
-524.826 225.45 l
-S
-392.959 227.851 m
-515.076 227.851 l
-S
-400.691 232.856 m
-522.809 232.856 l
-S
-388.191 235.241 m
-510.309 235.241 l
-S
-393.941 237.892 m
-516.059 237.892 l
-S
-393.441 240.292 m
-515.559 240.292 l
-S
-396.191 242.928 m
-518.309 242.928 l
-S
-386.441 245.579 m
-508.559 245.579 l
-S
-393.191 248.23 m
-515.309 248.23 l
-S
-414.191 250.631 m
-536.309 250.631 l
-S
-397.95 252.973 m
-520.067 252.973 l
-S
-398.7 255.358 m
-520.817 255.358 l
-S
-400.7 258.009 m
-522.817 258.009 l
-S
-384.45 260.659 m
-506.567 260.659 l
-S
-380.7 265.696 m
-502.817 265.696 l
-S
-379.95 268.347 m
-502.067 268.347 l
-S
-386.7 270.748 m
-508.817 270.748 l
-S
-394.433 275.752 m
-516.55 275.752 l
-S
-381.933 278.138 m
-504.05 278.138 l
-S
-379.433 280.789 m
-501.55 280.789 l
-S
-383.183 283.189 m
-505.3 283.189 l
-S
-370.433 285.825 m
-492.55 285.825 l
-S
-382.433 288.476 m
-504.55 288.476 l
-S
-356.183 291.127 m
-478.3 291.127 l
-S
-372.433 293.277 m
-494.55 293.277 l
-S
-361.866 296.006 m
-483.984 296.006 l
-S
-365.616 298.406 m
-487.734 298.406 l
-S
-366.866 301.042 m
-488.984 301.042 l
-S
-346.866 303.693 m
-468.984 303.693 l
-S
-338.616 306.344 m
-460.734 306.344 l
-S
-330.866 308.494 m
-452.984 308.494 l
-S
-301.575 344.342 m
-423.692 344.342 l
-S
-314.075 346.728 m
-436.192 346.728 l
-S
-318.325 349.378 m
-440.442 349.378 l
-S
-312.075 352.029 m
-434.192 352.029 l
-S
-327.325 357.065 m
-449.442 357.065 l
-S
-327.575 359.716 m
-449.692 359.716 l
-S
-317.825 362.117 m
-439.942 362.117 l
-S
-335.558 367.122 m
-457.675 367.122 l
-S
-313.058 369.507 m
-435.175 369.507 l
-S
-318.808 372.158 m
-440.925 372.158 l
-S
-317.579 404.674 m
-439.696 404.674 l
-S
-322.312 409.179 m
-444.429 409.179 l
-S
-323.812 412.065 m
-445.929 412.065 l
-S
-329.562 414.715 m
-451.679 414.715 l
-S
-329.062 417.116 m
-451.179 417.116 l
-S
-331.812 419.752 m
-453.929 419.752 l
-S
-322.062 422.402 m
-444.179 422.402 l
-S
-328.812 425.053 m
-450.929 425.053 l
-S
-349.812 427.454 m
-471.929 427.454 l
-S
-333.571 429.796 m
-455.688 429.796 l
-S
-334.321 432.182 m
-456.438 432.182 l
-S
-336.321 434.832 m
-458.438 434.832 l
-S
-320.071 437.483 m
-442.188 437.483 l
-S
-316.321 442.519 m
-438.438 442.519 l
-S
-315.571 445.17 m
-437.688 445.17 l
-S
-322.321 447.571 m
-444.438 447.571 l
-S
-330.054 452.576 m
-452.171 452.576 l
-S
-317.554 454.961 m
-439.671 454.961 l
-S
-315.054 457.612 m
-437.171 457.612 l
-S
-318.804 460.012 m
-440.921 460.012 l
-S
-306.054 462.648 m
-428.171 462.648 l
-S
-300.054 465.299 m
-422.171 465.299 l
-S
-291.804 467.95 m
-413.921 467.95 l
-S
-308.054 470.101 m
-430.171 470.101 l
-S
-260.834 543.511 m
-382.951 543.511 l
-S
-246.066 548.016 m
-368.184 548.016 l
-S
-256.066 550.901 m
-378.184 550.901 l
-S
-253.566 553.552 m
-375.684 553.552 l
-S
-230.316 555.952 m
-352.434 555.952 l
-S
-244.566 558.588 m
-366.684 558.588 l
-S
-238.566 561.239 m
-360.684 561.239 l
-S
-230.316 563.89 m
-352.434 563.89 l
-S
-216.566 565.541 m
-338.684 565.541 l
-S
-104.443 572.01 m
-226.575 572.209 l
-S
-98.682 567.48 m
-220.814 567.68 l
-S
-91.688 565.11 m
-213.82 565.31 l
-S
-97.192 561.955 m
-219.324 562.155 l
-S
-73.943 559.517 m
-196.075 559.717 l
-S
-88.199 556.904 m
-210.331 557.103 l
-S
-82.203 554.243 m
-204.335 554.443 l
-S
-73.956 551.578 m
-196.088 551.778 l
-S
-73.707 549.405 m
-195.839 549.605 l
-S
-85.302 539.953 m
-207.434 540.152 l
-S
-79.541 535.423 m
-201.673 535.623 l
-S
-72.547 533.053 m
-194.679 533.253 l
-S
-78.051 529.898 m
-200.183 530.098 l
-S
-54.802 527.46 m
-176.934 527.66 l
-S
-69.058 524.847 m
-191.19 525.046 l
-S
-63.061 522.186 m
-185.194 522.385 l
-S
-54.815 519.521 m
-176.947 519.721 l
-S
-54.566 517.348 m
-176.698 517.547 l
-S
-u
-189.475 196.879 m
-311.592 196.879 l
-S
-176.975 199.265 m
-299.092 199.265 l
-S
-174.475 201.916 m
-296.592 201.916 l
-S
-178.225 204.316 m
-300.342 204.316 l
-S
-165.475 206.952 m
-287.592 206.952 l
-S
-177.475 209.603 m
-299.592 209.603 l
-S
-155.725 212.254 m
-277.842 212.254 l
-S
-167.475 214.404 m
-289.592 214.404 l
-S
-156.908 217.133 m
-279.026 217.133 l
-S
-144.658 219.533 m
-266.776 219.533 l
-S
-161.908 222.169 m
-284.026 222.169 l
-S
-153.908 224.82 m
-276.026 224.82 l
-S
-163.658 226.971 m
-285.776 226.971 l
-S
-152.408 229.121 m
-274.526 229.121 l
-S
-145.925 233.316 m
-268.042 233.316 l
-S
-157.675 235.466 m
-279.792 235.466 l
-S
-147.108 238.195 m
-269.226 238.195 l
-S
-134.858 240.595 m
-256.976 240.595 l
-S
-137.608 243.231 m
-259.726 243.231 l
-S
-144.108 245.882 m
-266.226 245.882 l
-S
-153.858 248.033 m
-275.976 248.033 l
-S
-155.108 231.183 m
-277.226 231.183 l
-S
-103.425 247.816 m
-225.542 247.816 l
-S
-100.175 249.966 m
-222.292 249.966 l
-S
-89.608 252.695 m
-211.726 252.695 l
-S
-77.358 255.095 m
-199.476 255.095 l
-S
-U
-u
-1 g
-0 J
-1 w
-120.001 389.999 m
-170.811 344.713 248.714 349.191 294.001 400.001 c
-339.287 450.811 334.809 528.714 283.999 574.001 c
-233.189 619.287 155.286 614.809 109.999 563.999 c
-64.713 513.189 69.191 435.286 120.001 389.999 c
-f
-202 482 m
-F
-U
-u
-258 302 m
-306.6 267.759 373.759 279.4 408 328 c
-442.241 376.6 430.6 443.759 382 478 c
-333.4 512.241 266.241 500.6 232 452 c
-197.759 403.4 209.4 336.241 258 302 c
-f
-320 390 m
-F
-U
-u
-196 376 m
-252.332 345.072 323.072 365.668 354 422 c
-384.928 478.332 364.332 549.072 308 580 c
-251.668 610.928 180.928 590.332 150 534 c
-119.072 477.668 139.668 406.928 196 376 c
-f
-252 478 m
-F
-U
-u
-106 257 m
-170.064 231.595 242.595 262.936 268 327 c
-293.405 391.064 262.064 463.595 198 489 c
-133.936 514.405 61.405 483.064 36 419 c
-10.595 354.936 41.936 282.405 106 257 c
-f
-152 373 m
-F
-U
-u
-366.001 122 m
-415.706 97.7 475.7 118.296 500 168.001 c
-524.3 217.706 503.704 277.7 453.999 302 c
-404.294 326.3 344.3 305.704 320 255.999 c
-295.7 206.294 316.296 146.3 366.001 122 c
-f
-410 212 m
-F
-U
-u
-227.999 198 m
-267.763 185.85 309.849 208.236 322 247.999 c
-334.15 287.763 311.764 329.849 272.001 342 c
-232.237 354.15 190.151 331.764 178 292.001 c
-165.85 252.237 188.236 210.151 227.999 198 c
-f
-250 270 m
-F
-U
-0 g
-15.75 71.25 m
-24.25 82.75 24.75 84.75 27.75 82.25 c
-30.75 79.75 31.75 81.25 32.75 82.75 c
-33.75 84.25 30.75 86.75 35.75 88.75 c
-40.75 90.75 41.25 91.75 43.25 89.75 c
-45.25 87.75 39.25 89.25 50.25 88.75 c
-61.25 88.25 70.25 81.75 74.25 75.25 c
-78.25 68.75 77.75 67.25 75.25 63.25 c
-72.75 59.25 68.25 56.75 72.25 57.25 c
-76.25 57.75 75.75 60.75 77.75 56.75 c
-79.75 52.75 80.25 51.25 79.25 49.25 c
-78.25 47.25 74.25 46.75 81.25 46.25 c
-88.25 45.75 91.75 37.557 91.75 40.25 c
-15.752 40.248 l
-15.75 71.25 l
-f
-340.75 55.5 m
-F
-u
-u
-3 w
-280.774 44.223 m
-567.893 44.223 l
-S
-280.774 48.728 m
-567.893 48.728 l
-S
-280.774 53.734 m
-567.893 53.734 l
-S
-U
-u
-280.774 58.739 m
-567.893 58.739 l
-S
-280.774 63.245 m
-567.893 63.245 l
-S
-280.774 68.251 m
-567.893 68.251 l
-S
-U
-u
-280.774 73.257 m
-567.893 73.257 l
-S
-280.774 78.263 m
-567.893 78.263 l
-S
-U
-U
-0.8 g
-0.2 w
-243 252 m
-323 235 l
-346 273 l
-368 248 l
-376 247 376 248 V
-377 174 380.5 121 330.5 40 C
-90.5 40 91.5 40 V
-138.5 129 163 162 214 200 C
-236 229 234.527 240.11 238 254 c
-240 262 243 252 y
-b
-0.5 g
-359.5 485 m
-389.267 485 402.5 486.25 415.75 489 c
-429 491.75 435 493.25 439 493.5 c
-443 493.75 490.398 537.797 502.5 562 c
-507 571 514.5 577 517.5 579.5 c
-520.5 582 501.5 591 y
-428 512 428 512.5 v
-428 513 356.5 510 356 509.5 c
-355.5 509 351 488 y
-359 485 359.5 485 v
-b
-0.7 g
-370 496.5 m
-368 480.5 365.5 472.5 364.5 471.5 C
-329.5 476.5 l
-323.5 489.5 l
-370 496.5 l
-b
-0.5 g
-352.75 494 m
-380 493.25 399.626 496.75 407.5 499 c
-418 502 424.586 497.135 432.75 505.5 c
-453 526.25 473.5 544.5 496.5 586.5 C
-473.5 590 473.5 590.5 V
-456 571.5 443 563.5 434 558 c
-425 552.5 416 544 408.5 534.5 C
-399 533 379.5 537.5 364 537.5 c
-348.5 537.5 352.75 494 y
-b
-1 g
-500 583 m
-500.5 577.098 517 573.5 520.5 572 c
-524 570.5 526.353 568.989 526.5 579 c
-526.675 590.992 541 586 539 624 C
-538.5 624 506 628 y
-499.958 583.498 500 583 v
-b
-0 g
-1 J
-3 w
-562 629 m
-343 645 217 644 77 601 C
-52 576 L
-59.5 562 80.132 560.877 87 589 c
-89.513 599.292 87 597 101 601 c
-108.323 603.092 265 654 561 617 C
-562 629 l
-f
-1 G
-0 J
-0.7 w
-305 634 m
-391.5 636.5 415 635 473 632 c
-S
-0.5 w
-213 626.5 m
-153.5 619 125.925 611.699 90.75 602.5 c
-78.654 599.337 82.567 597.884 82.5 592 c
-82.395 582.717 73.75 571 59 572.5 c
-S
-1 g
-0 G
-1 w
-73 595.25 m
-79.25 592.5 76.25 574.75 57.25 580 C
-73 595.25 l
-f
-0.5 g
-0.2 w
-312 574.25 m
-311.25 570.5 310.687 571.687 306.187 569.187 C
-307.687 564.187 311.106 565.66 304.5 561.5 c
-302.594 560.299 305.598 556.561 305.75 555.5 c
-306.038 553.485 304.629 548.098 297 548.5 c
-292.25 548.75 255.5 536 y
-229.5 608.5 l
-224 650 224.5 650 v
-248.101 650 273.345 678.918 298 655.5 c
-324.857 629.99 316.981 613.501 316.75 612.875 c
-313.346 603.644 313.238 604.937 314.75 597.375 c
-316.88 586.725 317.016 588.834 318.625 584.75 C
-320.25 581.875 318.625 580.375 y
-316.689 578.236 313.081 579.809 310.375 579 c
-307.013 577.994 312 574.25 y
-B
-0 g
-0.5 w
-288.5 456 m
-S
-0.2 w
-211 511 m
-194.5 518.5 187 520.5 170.5 500 C
-154.5 498.5 149.5 501 131.5 479.5 C
-151 477.5 140 475 161 460 c
-182 445 190.5 436.5 212 461 C
-224.5 458 229 454.5 238.5 447 C
-238 446.5 237 500.5 y
-211 511 l
-f
-1 g
-207.5 526.5 m
-206 514.5 204 506 236 490.5 C
-242.5 509.5 l
-207.5 526.5 l
-b
-0 g
-1 w
-294.464 627.589 m
-288.571 618.522 284.821 617.313 280 615.5 c
-275.179 613.686 271.429 605.224 277.857 587.089 C
-274.107 586.485 275.179 585.88 275.714 582.858 C
-271.429 599.179 270.357 606.433 259.643 609.455 c
-248.929 612.477 245.714 589.507 247.321 566.537 C
-228.572 554.448 L
-224.639 578.851 235.956 576.38 212.5 600.992 c
-194.17 620.226 195.893 654.791 225.357 658.418 C
-223.214 667.485 233.929 678.97 259.107 677.761 c
-284.286 676.552 281.071 667.485 Y
-302.5 667.485 334.964 665.942 301.429 614.895 C
-306.25 639.679 303.571 643.306 296.607 646.933 C
-299.286 634.239 294.464 627.589 y
-f
-0.7 g
-0.2 w
-207.5 524.5 m
-214.75 519.25 241.5 509 y
-239 504.5 l
-232 503 214.5 508.75 206.75 519 C
-207 522.5 207.5 524.5 y
-b
-1 g
-298 546.5 m
-272.625 574.625 248.5 596 195.5 568.5 C
-196.26 524.417 214.492 504.333 239.5 510.5 C
-298 546.5 l
-b
-0.8 g
-351.5 542 m
-367 540 L
-358.5 509.5 357 489.5 357 482 C
-323.5 482.5 295.5 485.5 284.5 477.5 c
-298.5 468.5 l
-299 457 l
-270.5 451 l
-238.5 483.5 l
-241 513.5 l
-250.5 538 252.5 547.5 282.5 550 C
-306.251 550 334.454 541.702 343.687 542.187 C
-342.576 538.175 346.737 538.055 351.5 542 c
-b
-0 g
-1 w
-333.25 484.75 m
-343.25 458.25 371.5 466 349 418.5 C
-359 348.5 378 357 363 336 C
-358.5 333 359 333 v
-359.5 333 353 328 359 327.5 c
-365 327 371 316.5 373.5 253.5 C
-381 245.5 l
-371 221 371 220.5 V
-360.5 247 358 253 351 261.5 C
-340 238 331.5 220.5 328.5 211.5 C
-301 229.5 265 250 232.5 244.5 C
-247.5 287 246 299.5 275 320.5 C
-270 331.5 268.689 334.634 265.75 336.25 c
-255.75 341.75 261.891 340.771 251 375 c
-247.5 386 249.5 384 255.5 399 C
-252.5 397 253.5 401 253.5 402.5 c
-253.5 404 252.057 400.023 251 402.5 c
-235 440 219.5 489.5 249.5 534 C
-238.5 503.5 242.102 477.13 260 463 c
-269.5 455.5 278.75 453.25 291 457.25 C
-297.5 461 299.549 465.787 282 476.75 C
-292.5 487.5 333.25 484.75 y
-f
-457.25 576.25 m
-454.936 574.233 453.51 595.217 479.25 583 C
-495.651 573.321 495.931 560.263 482.5 560.5 C
-486.25 566 491.682 565.465 478.5 575 c
-463.444 585.891 460.318 578.924 457.25 576.25 c
-f
-1 g
-460.75 581.5 m
-463.387 583.699 467.528 583.937 470.5 583.375 c
-473.752 582.76 473.75 581.75 Y
-461.735 583.841 458.891 579.95 460.75 581.5 c
-f
-0 g
-310.393 647.785 m
-329.089 651.66 328.75 623.692 320.178 607.976 C
-319.107 621.274 316.428 636.386 310.536 635.782 c
-304.643 635.177 310.393 647.785 y
-f
-284.286 663.858 m
-286.964 677.157 280.536 689.246 281.071 689.246 C
-289.107 677.761 288.036 665.672 y
-284.286 663.858 l
-f
-0.2 w
-274.643 683.201 m
-278.929 678.97 280 668.694 279.464 665.672 c
-S
-276.25 686.224 m
-284.393 677.036 283.75 662.045 y
-S
-1 w
-297.679 661.44 m
-312.602 661.44 312.143 677.157 310.536 680.784 C
-308.929 672.321 305.179 666.276 292.857 664.463 C
-297.679 661.44 l
-f
-0.2 w
-295 661.44 m
-298.75 666.276 302.5 675.343 294.464 683.201 c
-S
-300.357 681.992 m
-304.265 669.255 303.814 670.807 292.321 656.604 c
-S
-311.821 649.078 m
-321.464 649.078 330.571 646.66 329.5 627.921 c
-S
-307.536 650.892 m
-316.268 651.33 319.057 653.025 326.821 646.056 c
-330.446 642.802 331.1 637.618 331.107 637.593 c
-S
-304.643 665.067 m
-305.629 663.874 321.031 667.072 321.304 651.569 c
-S
-0.5 w
-311.071 639.679 m
-317.893 638.968 312.696 617.332 v
-S
-1 w
-313.375 612.875 m
-315.455 614.262 313.5 617.375 297.125 615.375 C
-310.375 616.625 311.875 611.875 313.375 612.875 c
-f
-1 g
-308.5 604.875 m
-309.833 600.875 309.125 601.25 307.375 599 C
-302.25 600.625 303.25 599.875 299 602.5 C
-304.25 604.75 308.375 605.25 308.5 604.875 c
-f
-0 g
-307.5 604.437 m
-305.463 602.811 305.481 601.49 307.375 598.937 C
-309.261 601.307 309.489 602.172 308.562 605.062 C
-308.562 604.937 308.191 604.989 307.5 604.437 c
-f
-0.2 w
-305.625 583.75 m
-304.687 582.562 306.5 579.375 308.875 579.75 c
-S
-1 w
-311.125 574.5 m
-310.25 573.898 310 573.437 304.937 569.312 C
-306.229 564.611 308.063 564.014 308.312 564.562 C
-309.775 566.476 307.663 569.565 306.687 569.75 C
-311.812 571.75 311.625 572.5 312 574.25 C
-311.687 574.75 311.176 574.535 311.125 574.5 c
-f
-298.625 603 m
-302 600.437 304.294 599.524 307.812 598.937 c
-308.187 598.875 308.562 598.5 308.687 597.875 c
-S
-297.5 602.25 m
-299.939 602.851 307.687 603.062 311.75 607.812 C
-307.812 606 297.011 602.129 297.5 602.25 c
-f
-213.5 576.125 m
-218.674 549.92 230.862 532.355 245.5 526.5 C
-243.75 514.5 209.75 494.25 195.5 568.5 C
-203.75 572.25 213.347 576.901 213.5 576.125 c
-f
-0.2 w
-343.375 541.75 m
-333.375 534.75 318.25 525.5 312 521.25 c
-S
-351.562 541.937 m
-337.936 530.579 327.2 525.581 313.25 517.75 c
-S
-0.3 w
-312.75 495 m
-291.75 483.5 276.25 476 274.25 466 c
-S
-0.5 w
-229 580.75 m
-235.5 571 241.25 554.75 245.75 528 c
-S
-1 w
-235 581 m
-246 555.75 246.75 537.75 245.75 526 C
-252.125 560.5 243.75 567.75 239.75 581.5 C
-240 581.5 237 581.75 235 581 C
-f
-0.7 g
-0.2 w
-248.625 580.5 m
-253.169 564.605 256.75 553.75 250.25 535.75 C
-257.5 552.75 259.125 558.937 252.875 579.687 C
-251.029 580.149 248.517 580.879 248.625 580.5 c
-b
-0 g
-1 w
-258.25 577.75 m
-262.047 567.879 262.5 552.5 259.25 544.25 C
-267.75 548.25 275 549.75 278.25 549.75 C
-281.75 555.25 282.75 556.75 279.5 565.25 C
-270.06 573.13 257.909 578.635 258.25 577.75 c
-f
-207.5 524.5 m
-F
-207.25 514.75 m
-207.185 514.86 228.75 497.5 238 500.75 C
-236 494.5 l
-225 498 213.924 503.454 207.25 514.75 c
-f
-1 g
-0.2 w
-191 516 m
-175.472 497.418 168.5 492 171.5 453 C
-185 443.5 189 443.5 200 450.5 C
-186.5 469.5 182 491 198.5 515.5 C
-194.5 516 191.339 516.406 191 516 c
-b
-201 515 m
-194 499 187 484 203.5 453 C
-206.5 455 211.5 460.5 212 461 C
-203.5 480.5 193.5 501.5 206 510.5 C
-205 499.5 210.5 490.5 232.5 473.5 C
-232.5 483 231.5 482.5 233 492 C
-221 498 210 505 208 512.5 C
-201 515 l
-b
-0 g
-1 G
-0.5 w
-268 442.5 m
-253.5 402.5 l
-S
-269.5 435.5 m
-258.5 407 258.5 407.5 v
-S
-0.5 G
-0.4 w
-293.5 480.5 m
-297.5 463.5 298.5 460.5 289 445.5 c
-S
-1 G
-1 J
-0.3 w
-349.125 418.125 m
-338.393 403.978 348.387 416.158 341.625 408.875 c
-S
-u
-1 g
-0 G
-0 J
-0.2 w
-336.038 340.015 m
-338.267 329.694 L
-342.937 338.843 L
-340.707 349.164 L
-336.038 340.015 L
-b
-339.487 339.429 m
-B
-U
-u
-328.791 340.569 m
-331.562 330.38 L
-335.743 339.762 L
-332.972 349.952 L
-328.791 340.569 L
-b
-332.267 340.166 m
-B
-U
-u
-321.758 340.67 m
-325.133 330.664 L
-328.746 340.28 L
-325.37 350.286 L
-321.758 340.67 L
-b
-325.252 340.475 m
-B
-U
-u
-314.504 340.97 m
-317.88 330.964 L
-321.492 340.58 L
-318.117 350.586 L
-314.504 340.97 L
-b
-317.998 340.775 m
-B
-U
-u
-u
-307.24 340.468 m
-311.982 331.033 L
-314.214 341.059 L
-309.473 350.494 L
-307.24 340.468 L
-b
-310.727 340.764 m
-B
-U
-u
-300.016 339.751 m
-304.757 330.316 L
-306.99 340.342 L
-302.249 349.777 L
-300.016 339.751 L
-b
-303.503 340.047 m
-B
-U
-U
-u
-u
-292.985 339.2 m
-298.349 330.104 L
-299.903 340.258 L
-294.54 349.353 L
-292.985 339.2 L
-b
-296.444 339.729 m
-B
-U
-u
-285.826 338 m
-291.189 328.904 L
-292.744 339.057 L
-287.38 348.153 L
-285.826 338 L
-b
-289.285 338.529 m
-B
-U
-U
-u
-278.742 336.229 m
-285.413 328.042 L
-285.423 338.314 L
-278.753 346.501 L
-278.742 336.229 L
-b
-282.083 337.272 m
-B
-U
-u
-272.228 332.392 m
-279.743 324.974 L
-278.644 335.186 L
-271.13 342.604 L
-272.228 332.392 L
-b
-275.437 333.789 m
-B
-U
-0 g
-1 G
-1 w
-266.25 335.5 m
-276.25 351.5 284.659 350 343 350 c
-364 350 363 336 y
-S
-271 321 m
-294 332 309 335 362 324 c
-S
-u
-1 g
-0 G
-0.2 w
-350.823 325.912 m
-364.33 322.302 L
-361.658 347.078 L
-348.151 350.689 L
-350.823 325.912 L
-b
-356.24 336.495 m
-B
-U
-0 g
-1 w
-274 347.5 m
-281.5 351.5 280.229 357.581 311 338 c
-316.5 334.5 322.5 338 351 357.5 C
-282 360 l
-274 347.5 l
-f
-1 G
-0.5 w
-269.25 355.75 m
-277.75 353.25 284.25 352.5 288.75 349.75 c
-S
-353.25 358.25 m
-347.25 354 345.5 353.5 339.75 349.5 c
-S
-0.3 w
-355.25 272.75 m
-359.75 281.5 361.25 285 363.25 290.75 c
-S
-0.5 G
-0.5 w
-354 219 m
-339 195 327 176 317 166 c
-S
-323 197 m
-310 150 308 135 235 48 c
-S
-1 w
-241 241.5 m
-232 227.5 215.231 198.443 215 198 c
-192.581 155 178 110 164 71 c
-S
-0 G
-0.2 w
-265.394 600.822 m
-263.576 606.114 262.122 612.994 253.035 607.173 C
-250.126 603.468 249.763 601.704 249.763 596.589 c
-249.763 591.473 254.307 592.179 257.76 587.24 c
-261.213 582.301 266.484 579.302 267.029 588.475 c
-S
-0.3 g
-260.668 605.409 m
-262.486 601.352 261.94 599.941 257.578 597.824 c
-253.216 595.707 257.76 591.473 260.305 592.355 c
-262.849 593.237 263.394 592.532 264.303 591.65 c
-265.212 590.768 266.666 591.826 264.667 594.119 c
-262.667 596.413 259.759 593.943 261.032 597.471 c
-262.304 600.999 260.668 605.409 y
-b
-0 g
-257.578 606.644 m
-254.125 605.056 251.58 604.174 251.58 598.177 c
-251.58 592.179 258.487 590.415 259.214 588.651 c
-S
-u
-1 g
-257.397 584.594 m
-258.601 581.671 262.019 580.25 265.03 581.419 c
-268.041 582.588 269.506 585.905 268.302 588.827 c
-267.097 591.75 263.679 593.172 260.668 592.003 c
-257.657 590.833 256.192 587.516 257.397 584.594 c
-b
-262.849 586.711 m
-B
-U
-u
-0.2 g
-1 w
-258.487 586.358 m
-263.213 582.477 L
-267.211 587.063 L
-262.486 590.944 L
-258.487 586.358 L
-f
-262.849 586.711 m
-F
-U
-0 g
-309.25 579.875 m
-310.75 580.5 313.25 583.125 314.625 581 c
-F
-1 g
-307.964 565.926 m
-307.88 566.015 306.794 566.513 307.22 566.682 c
-307.647 566.851 307.68 566.599 307.935 566.639 C
-307.924 566.13 307.971 566.31 307.964 565.926 c
-f
-510 104 m
-509.564 104.895 511.5 89 495.5 74.5 C
-495.5 68 l
-506 79 518.582 86.358 510 104 c
-f
-0 g
-0.2 w
-403.75 534.25 m
-413.25 533.75 415.75 534.25 417.75 534.75 c
-S
-1 G
-0.3 w
-538.5 629 m
-542 625 547.5 620 y
-S
-548.75 629.25 m
-552.25 625.25 557.75 620.25 y
-S
-0 G
-0.2 w
-518.5 587.5 m
-522.5 586 526 587.5 527 587.5 c
-S
-514 617.5 m
-518 614 518.5 611.5 520 607.5 c
-S
-528.25 613.75 m
-533.25 615.25 532.5 615.5 538.25 614.25 c
-S
-1 g
-538 637.5 m
-537.25 618 533 617.5 531.25 617.5 c
-529.5 617.5 528.235 615.255 528.5 622.5 c
-529.25 643 528.775 643.326 534.25 642.75 c
-539 642.25 539 642.25 540.5 630.75 C
-538 631 l
-538 629 538 631.25 v
-538 633.5 538 637.5 Y
-b
-0.7 g
-507.5 650.75 m
-510 648.5 510.25 645.75 511.75 643.25 c
-513.25 640.75 508.5 638.25 508.5 638 c
-508.5 637.75 507.5 650.75 y
-b
-1 g
-529.25 639.25 m
-528.5 643 527 642.75 524 642.75 c
-521 642.75 519.75 644 519.5 632.25 C
-519.75 638 519.75 641 v
-519.75 644 518.75 644.25 515.25 644.25 c
-511.75 644.25 511.75 646 509.25 641.25 c
-506.75 636.5 505.75 633.25 506 633.25 c
-506.25 633.25 509.75 628.25 Y
-511.5 620.25 512.75 619.75 515.5 619.5 c
-518.25 619.25 520.25 618.25 519.5 623.5 C
-521 618.25 521 617.75 524.75 617 c
-528.5 616.25 528.5 618.25 528.5 622.5 c
-528.5 626.75 529.25 639.25 y
-b
-507.75 636.75 m
-512.687 638.231 515.604 641 515.25 641 C
-517.839 637.469 517.494 629.281 508.75 625.5 C
-508.75 625.25 502 635 502.25 634.75 c
-502.5 634.5 507.75 636.75 y
-b
-493.5 571.5 m
-495.171 563.425 503.634 565.498 503.5 576.25 c
-503.25 596.25 515.75 586.25 509 636.75 c
-508.301 641.977 510 650.75 506.5 651.5 c
-501.514 652.568 500.436 652.26 499.25 644.75 c
-498.5 640 496.5 646.25 496 648.5 c
-495.5 650.75 493.75 651 490.75 650.25 c
-487.75 649.5 488.253 648.665 487.5 645.5 c
-486.194 640.013 486.75 641.75 484.5 645.5 c
-482.39 649.016 481.306 648.011 477.5 647.25 c
-475 646.75 474.784 644.479 475.25 640.75 c
-475.5 638.75 474 642.25 472.5 644.5 c
-471 646.75 469.25 645.5 466.5 645.5 c
-463.75 645.5 463.25 641.003 463.5 635.5 c
-463.511 635.25 463 626.25 y
-449.75 627.25 l
-459.25 618.5 465.606 612.863 468.25 597 c
-468.75 594 468 592.25 470 592.75 C
-459.719 593.497 459.195 585.398 461 586 c
-466.25 587.75 471.75 589.25 476.75 587 c
-481.75 584.75 486.25 584.25 489.5 586.25 C
-490.25 582.75 492 578.75 493.5 571.5 c
-b
-0 g
-486.25 592.5 m
-489 595.25 492.117 593.078 492.25 592.75 c
-494.972 586.028 477 591.75 467.25 593 c
-S
-0.4 w
-470 592.75 m
-474.25 595.75 475 596 481.5 595.75 c
-S
-1 J
-2.5 w
-477.75 630 m
-478.5 620.75 l
-S
-479.25 617.5 m
-480 610.5 l
-S
-480.25 607.75 m
-481 600.25 481 600.5 v
-S
-487.5 631.75 m
-487.75 623.5 l
-S
-487.75 620.75 m
-487.75 612.5 l
-S
-488 609.25 m
-488.25 609.25 487.75 602.5 y
-S
-498 630.75 m
-497.25 623.75 l
-S
-496.75 620.75 m
-495.5 612.5 l
-S
-495.25 609.5 m
-493.75 602 l
-S
-0 J
-0.2 w
-465.5 637.25 m
-464.5 629.75 461.25 628.75 464.75 617 c
-S
-0.5 w
-502 589.25 m
-503.25 585 503.5 583.25 503.5 577 c
-S
-1 g
-1 w
-521.949 86.694 m
-521.637 87.353 523.021 75.657 511.583 64.988 C
-511.583 60.205 l
-519.089 68.299 528.083 73.713 521.949 86.694 c
-f
-553.457 99.673 m
-553.091 100.449 554.713 86.67 541.309 74.1 C
-541.309 68.465 l
-550.105 78.001 560.646 84.379 553.457 99.673 c
-f
-482.74 95.04 m
-482.429 95.699 483.812 84.003 472.375 73.334 C
-472.375 68.551 l
-479.881 76.645 488.875 82.059 482.74 95.04 c
-f
-450.924 87.63 m
-450.69 88.028 451.731 80.968 443.129 74.528 C
-443.129 71.641 l
-448.774 76.527 455.538 79.795 450.924 87.63 c
-f
-0 g
-308 61.5 m
-N
-3 w
-16.002 40.373 m
-568.002 40.127 L
-567.748 716.565 L
-S
-u
-15.815 40.248 m
-567.815 40.002 L
-567.748 716.565 L
-15.998 716.81 L
-15.815 40.248 L
-s
-U
-%%Trailer
-_E end
-showpage
-golfersave restore
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/grayalph.ps b/Master/xemtex/doc/ghostscript/examples/grayalph.ps
deleted file mode 100644
index fffb5f6a2a1..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/grayalph.ps
+++ /dev/null
@@ -1,65 +0,0 @@
-%!
-% grayscaled text test, including a trivial user bitmap font
-
-/grayalphsave save def % prevent left over effects
-
-/inch {72 mul} def
-
-/BuildCharDict 10 dict def
-/$ExampleFont 7 dict def
-$ExampleFont begin
- /FontType 3 def % user defined font.
- /FontMatrix [1 0 0 1 0 0] def
- /FontBBox [0 0 1 1] def
- /Encoding 256 array def
- 0 1 255 {Encoding exch /.notdef put} for
- Encoding (a) 0 get /plus put
- /CharStrings 2 dict def
- CharStrings /.notdef {} put
- CharStrings /plus
- { gsave
- 0 0 moveto
- 32 32 true [32 0 0 -32 0 32]
- {<0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000
- 0007E000 0007E000 0007E000 0007E000 0007E000 FFFFFFFF FFFFFFFF FFFFFFFF
- FFFFFFFF FFFFFFFF FFFFFFFF 0007E000 0007E000 0007E000 0007E000 0007E000
- 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000>
- } imagemask
- grestore
- } put
- /BuildChar
- { BuildCharDict begin
- /char exch def
- /fontdict exch def
- /charproc
- fontdict /Encoding get char get
- fontdict /CharStrings get
- exch get def
- 1 0 0 0 1 1 setcachedevice
- charproc
- end
- } def
-end
-
-/MyFont $ExampleFont definefont pop
-
- newpath
- .5 inch 7.5 inch moveto
- 7.5 inch 0 rlineto
- 0 1.5 inch rlineto
- -7.5 inch 0 rlineto
- closepath
- 0 setgray
- fill
-
- /MyFont findfont 72 scalefont setfont
- .75 inch 7.75 inch moveto
- 0 1 6
- { /n exch def
- 1 n 6 div sub setgray
- (a) show
- } for
-
-showpage
-clear cleardictstack
-grayalphsave restore
diff --git a/Master/xemtex/doc/ghostscript/examples/ridt91.eps b/Master/xemtex/doc/ghostscript/examples/ridt91.eps
deleted file mode 100644
index 1de3c14f29c..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/ridt91.eps
+++ /dev/null
@@ -1,135 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 0 0 380 200
-%%Creator: karl@cs.umb.edu from code by Roger Hersch
-%%CreationDate: 8 March 1991
-%%Title: RIDT logo
-
-% Forget everything we do.
-save
-
-% Make definitions in our own dictionary.
-20 dict begin
-
-% However, this isn't quite a true EPS file, because we use the
-% setscreen operator, which has device- and document-dependent effects.
-% In particular, if the document is being printed in landscape mode, we
-% have to rotate the cell by 90 degrees. The dvips translator sets the
-% variable `isls' to be true in landscape mode, so we test for that.
-%
-/screen_angle
- /isls where
- { /isls get { 90 } { 0 } ifelse }
- { 0 }
- ifelse
-def
-
-
-% Increasing this number makes the screen finer (it isn't the actual
-% frequency).
-%
-/screen_frequency 10 def
-
-
-% If you change these numbers, change the bounding box comment above.
-% This default size is approximately 134mm by 71mm.
-/logo_width 380 def
-/logo_height 200 def
-
-% Besides changing the size from the outside, you can also change the
-% scale factor defined here. Of course then the bounding box won't be
-% accurate.
-/scalefactor 1 def
-
-% We need a string to hold the gray values.
-/fountainstring 256 string def
-
-% Put values varying from 0 to 255 into the string; these will be values
-% for the image operator.
-0 1 255
- {
- fountainstring exch dup
- 255 div 180 mul cos neg 2 div
- .5 add 255 mul cvi
- put
- }
-bind for
-
-
-% This procedure takes the bounding box of a rectangle, and images
-% /fountainstring into it.
-/fountain
- {
- /ury exch def
- /urx exch def
- /lly exch def
- /llx exch def
- gsave
- llx lly translate
-
- % Scale to the size of the rectangle.
- urx llx sub ury lly sub scale
-
- % The source image has one row of 256 8-bit values.
- 1 256 8
-
- % Map unit square to source.
- [1 0 0 -256 0 256]
-
- % Image the string.
- { fountainstring } image
- grestore
- }
-bind def
-
-
-% Draw a line across the bottom for visual anchoring.
-%
-0 0 moveto
-logo_width 0 lineto stroke
-
- screen_frequency scalefactor div
- screen_angle
- { exch pop abs 1 exch sub } bind
-setscreen
-
-scalefactor scalefactor scale
-
-/Palatino-Roman findfont 100 scalefont setfont
-
-% Determine the dimensions of our string.
-/logo_words (RIDT 91) def
-
-0 0 moveto
-logo_words true charpath flattenpath pathbbox
-/word_height exch def
-/word_width exch def
-pop pop % llx and lly are zero.
-newpath
-
-/x_offset logo_width word_width sub 2 div def
-/y_offset 15 def
-
-% Draw the background pattern, which is dark at the top and light at the
-% bottom.
-%
-0 0 logo_width logo_height fountain
-
-% Make the clipping path be `RIDT 91', twice.
-x_offset y_offset moveto
-logo_words true charpath
-x_offset logo_height y_offset word_height add sub moveto
-logo_words true charpath
-clip
-newpath
-
-% Paint the pattern again, this time with light at the top and dark at
-% the bottom.
-%
-logo_width logo_height translate
-180 rotate
-0 0 logo_width logo_height fountain
-
-end
-restore
-
-% showpage
diff --git a/Master/xemtex/doc/ghostscript/examples/snowflak.ps b/Master/xemtex/doc/ghostscript/examples/snowflak.ps
deleted file mode 100644
index 8ebdf0adc8a..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/snowflak.ps
+++ /dev/null
@@ -1,93 +0,0 @@
-%!
-%% Elizabeth D. Zwicky
-%% zwicky@erg.sri.com
-%% multiflake
-
-/snowflaksave save def % prevent left over effects
-/newflake
-{/seed usertime def
-seed srand
-/strokecolor [rand 99 mod 100 div
- rand 99 mod 100 div
- 100 rand 22 mod sub 100 div] def
-/fillcolor [rand 99 mod 100 div
- 100 rand 22 mod sub 100 div
- rand 99 mod 100 div] def
-/eofillcolor [rand 99 mod 100 div
- rand 22 mod 100 div
- 100 rand 22 mod sub 100 div] def
-
-/colorfill {fillcolor aload pop setrgbcolor fill } def
-/colorstroke {strokecolor aload pop setrgbcolor stroke } def
-/eocolorfill {eofillcolor aload pop setrgbcolor eofill } def
-/arm {0 0 moveto
- 5 {3 {x y x y x y curveto} repeat} repeat
- seed srand
- 0 0 moveto
- 5 {3 {x neg y x neg y x neg y curveto} repeat} repeat
- seed srand
-} def
-
- newpath
-
-0 0 moveto boxsize 0 rlineto 0 boxsize rlineto boxsize neg 0 rlineto
-0 0 lineto
-
-rand 99 mod 100 div
-100 rand 22 mod sub 100 div
-100 rand 22 mod sub 100 div
- sethsbcolor fill
-seed srand
-boxsize 2 div boxsize 2 div translate
-
-%% If the device you are using can handle complex fills, replace the
-%% next three lines with:
-%%
-6 {arm 60 rotate} repeat
-gsave colorfill grestore gsave eocolorfill grestore colorstroke
-%%
-%% This will be not only faster, but prettier. On a LaserWriter or a
-%% Tektronix Phaser II PS it gives a limitcheck.
-
-%% 6 {arm 60 rotate colorfill} repeat
-%% 6 {arm 60 rotate eocolorfill} repeat
-%% 6 {arm 60 rotate} repeat colorstroke
-} def
-
-1 setlinewidth
-clippath pathbbox /ury exch def /urx exch def /lly exch def /llx exch def
-/minsize 250 def
-/pagewidth urx llx sub def
-/pageheight ury lly sub def
-/inwidth pagewidth minsize div def
-/inheight pageheight minsize div def
-
-/boxsize
- inwidth inheight gt
- {pagewidth inwidth truncate div}
- {pageheight inheight truncate div}
- ifelse
-def
-
-/inwidth pagewidth boxsize div cvi def
-/inheight pageheight boxsize div cvi def
-
-/x {rand 70 mod abs} def
-/y {rand 120 mod abs} def
-
-llx lly translate
-
-inheight {
- inwidth {
- gsave
- newflake
- grestore
- boxsize 0 translate
- } repeat
- boxsize inwidth mul neg boxsize translate
-} repeat
-
-
-showpage
-clear cleardictstack
-snowflaksave restore
diff --git a/Master/xemtex/doc/ghostscript/examples/tiger.ps b/Master/xemtex/doc/ghostscript/examples/tiger.ps
deleted file mode 100644
index ea887726051..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/tiger.ps
+++ /dev/null
@@ -1,2737 +0,0 @@
-%!PS-Adobe-2.0 EPSF-1.2
-%%Creator: Adobe Illustrator(TM) 1.2d4
-%%For: OpenWindows Version 2
-%%Title: tiger.eps
-%%CreationDate: 4/12/90 3:20 AM
-%%DocumentProcSets: Adobe_Illustrator_1.2d1 0 0
-%%DocumentSuppliedProcSets: Adobe_Illustrator_1.2d1 0 0
-%%BoundingBox: 17 171 567 739
-%%EndComments
-/tigersave save def % prevent residual side effects
-
-%%BeginProcSet:Adobe_Illustrator_1.2d1 0 0
-
-/Adobe_Illustrator_1.2d1 dup 100 dict def load begin
-% definition operators
-/bdef {bind def} bind def
-/ldef {load def} bdef
-/xdef {exch def} bdef
-% graphic state operators
-/_K { 3 index add neg dup 0 lt {pop 0} if 3 1 roll } bdef
-/_k /setcmybcolor where {
- /setcmybcolor get
-} {
- { 1 sub 4 1 roll _K _K _K setrgbcolor pop } bind
-} ifelse def
-/g {/_b xdef /p {_b setgray} def} bdef
-/G {/_B xdef /P {_B setgray} def} bdef
-/k {/_b xdef /_y xdef /_m xdef /_c xdef /p {_c _m _y _b _k} def} bdef
-/K {/_B xdef /_Y xdef /_M xdef /_C xdef /P {_C _M _Y _B _k} def} bdef
-/d /setdash ldef
-/_i currentflat def
-/i {dup 0 eq {pop _i} if setflat} bdef
-/j /setlinejoin ldef
-/J /setlinecap ldef
-/M /setmiterlimit ldef
-/w /setlinewidth ldef
-% path construction operators
-/_R {.25 sub round .25 add} bdef
-/_r {transform _R exch _R exch itransform} bdef
-/c {_r curveto} bdef
-/C /c ldef
-/v {currentpoint 6 2 roll _r curveto} bdef
-/V /v ldef
-/y {_r 2 copy curveto} bdef
-/Y /y ldef
-/l {_r lineto} bdef
-/L /l ldef
-/m {_r moveto} bdef
-% path painting operators
-/n /newpath ldef
-/N /n ldef
-/F {p fill} bdef
-/f {closepath F} bdef
-/S {P stroke} bdef
-/s {closepath S} bdef
-/B {gsave F grestore S} bdef
-/b {closepath B} bdef
-end
-%%EndProcSet
-%%EndProlog
-
-%%Page: 1 1
-
-Adobe_Illustrator_1.2d1 begin
-
-.8 setgray
-clippath fill
--110 -300 translate
-1.1 dup scale
-
-0 g
-0 G
-0 i
-0 J
-0 j
-0.172 w
-10 M
-[]0 d
-0 0 0 0 k
-
-177.696 715.715 m
-177.797 713.821 176.973 713.84 v
-176.149 713.859 159.695 761.934 139.167 759.691 C
-156.95 767.044 177.696 715.715 V
-b
-181.226 718.738 m
-180.677 716.922 179.908 717.221 v
-179.14 717.519 180.023 768.325 159.957 773.199 C
-179.18 774.063 181.226 718.738 V
-b
-208.716 676.41 m
-210.352 675.45 209.882 674.773 v
-209.411 674.096 160.237 686.898 150.782 668.541 C
-154.461 687.428 208.716 676.41 V
-b
-205.907 666.199 m
-207.763 665.803 207.529 665.012 v
-207.296 664.221 156.593 660.879 153.403 640.478 C
-150.945 659.563 205.907 666.199 V
-b
-201.696 671.724 m
-203.474 671.061 203.128 670.313 v
-202.782 669.565 152.134 673.654 146.002 653.936 C
-146.354 673.175 201.696 671.724 V
-b
-190.991 689.928 m
-192.299 688.554 191.66 688.033 v
-191.021 687.512 147.278 713.366 133.131 698.324 C
-141.872 715.467 190.991 689.928 V
-b
-183.446 685.737 m
-184.902 684.52 184.326 683.929 v
-183.75 683.339 137.362 704.078 125.008 687.531 C
-131.753 705.553 183.446 685.737 V
-b
-180.846 681.665 m
-182.454 680.657 181.964 679.994 v
-181.474 679.331 132.692 693.554 122.709 675.478 C
-126.934 694.251 180.846 681.665 V
-b
-191.58 681.051 m
-192.702 679.52 192.001 679.085 v
-191.3 678.65 151.231 709.898 135.273 696.793 C
-146.138 712.674 191.58 681.051 V
-b
-171.8 710 m
-172.4 708.2 171.6 708 v
-170.8 707.8 142.2 749.8 122.999 742.2 C
-138.2 754 171.8 710 V
-b
-172.495 703.021 m
-173.47 701.392 172.731 701.025 v
-171.993 700.657 135.008 735.501 117.899 723.939 C
-130.196 738.739 172.495 703.021 V
-b
-172.38 698.651 m
-173.502 697.12 172.801 696.685 v
-172.1 696.251 132.031 727.498 116.073 714.393 C
-126.938 730.274 172.38 698.651 V
-b
-0 J 1 w
-170.17 696.935 m
-170.673 690.887 171.661 684.318 173.4 681.199 C
-169.8 668.799 178.6 655.599 V
-178.2 648.399 179.8 645.199 V
-183.8 636.799 188.6 635.999 v
-192.484 635.352 201.207 632.283 211.068 630.879 c
-228.2 616.799 225 603.999 V
-224.6 587.599 221 585.999 V
-232.6 597.199 223 580.399 V
-218.6 561.599 l
-244.2 583.199 228.6 564.799 V
-218.6 538.799 l
-238.2 557.199 231 548.799 V
-227.8 539.999 l
-271 567.199 240.2 537.599 V
-248.2 541.199 252.6 538.399 V
-259.4 539.599 258.6 537.999 V
-237.8 527.599 234.2 509.199 V
-242.6 519.199 239.4 508.399 V
-239.8 496.799 l
-243.8 518.399 243.4 480.799 V
-262.6 498.799 251 477.999 V
-251 461.199 l
-266.2 477.599 259.8 464.799 V
-269.8 473.599 265.8 458.399 V
-265 447.999 269.4 459.199 V
-285.4 489.799 279.4 463.599 V
-278.6 444.399 283.4 459.199 V
-283.8 448.799 293 441.599 V
-291.8 492.399 304.6 456.399 V
-308.6 439.999 l
-311.4 449.199 311 454.399 V
-325.8 470.799 319 446.399 V
-334.2 469.199 331 455.999 V
-323.4 439.999 325 435.199 V
-341.8 469.999 343 471.599 V
-341 429.198 351.8 465.199 V
-357.4 453.199 354.6 448.799 V
-362.6 456.799 361.8 459.999 V
-366.4 468.199 369.2 454.599 V
-371 445.199 372.6 448.399 V
-376.6 424.398 377.8 447.199 V
-379.4 460.799 372.2 472.399 V
-373 475.599 370.2 479.599 v
-383.8 457.999 376.6 486.799 V
-387.801 478.799 389.001 478.799 V
-375.4 501.999 384.2 497.199 V
-379 507.599 397.001 495.599 V
-381 511.599 398.601 501.999 V
-406.601 495.599 399.001 505.599 V
-384.6 521.599 406.601 503.599 V
-418.201 487.199 419.001 484.399 V
-409.001 513.599 404.601 516.399 V
-413.001 552.799 454.201 537.199 V
-461.001 519.999 465.401 538.399 V
-478.201 544.799 489.401 517.199 V
-493.401 530.799 492.601 533.599 V
-499.401 532.399 498.601 533.599 V
-511.801 529.199 513.001 529.999 V
-519.801 523.199 520.201 526.799 V
-529.401 523.999 527.401 527.599 V
-536.201 511.999 536.601 508.399 V
-539.001 522.399 l
-541.001 519.599 l
-542.601 527.199 541.801 528.399 v
-541.001 529.599 561.801 521.599 566.601 500.799 C
-568.601 492.399 l
-574.601 507.199 573.001 511.199 V
-578.201 510.399 578.601 505.999 V
-582.601 529.199 577.801 535.199 V
-582.201 535.999 583.401 532.399 V
-583.401 539.599 l
-590.601 538.799 590.601 541.199 V
-595.001 545.199 597.001 540.399 V
-584.601 575.599 603.001 556.399 V
-610.201 545.599 606.601 564.399 v
-603.001 583.199 599.001 584.799 603.801 585.199 C
-604.601 588.799 602.601 590.399 v
-600.601 591.999 603.801 590.399 y
-608.601 586.399 603.401 608.399 V
-609.801 606.799 597.801 635.999 V
-600.601 638.399 596.601 646.799 V
-604.601 642.399 607.401 643.999 V
-607.001 645.599 603.801 649.599 V
-582.201 704.4 602.601 682.399 V
-614.451 668.849 608.051 691.649 V
-598.94 715.659 599.717 719.955 V
-170.17 696.935 l
-b
-0.2 0.55 0.85 0 k
-599.717 719.755 m
-600.345 719.574 602.551 718.45 603.801 716.8 C
-610.601 706 605.401 724.4 V
-596.201 753.2 605.001 742 V
-611.001 734.8 607.801 748.4 v
-603.936 764.827 601.401 771.2 y
-613.001 766.4 586.201 806 V
-595.001 802.4 l
-575.401 842 553.801 847.2 V
-545.801 853.2 l
-584.201 891.2 571.401 928 V
-564.601 933.2 555.001 924 V
-548.601 919.2 542.601 920.8 V
-511.801 919.6 509.801 919.6 v
-507.801 919.6 473.001 956.8 407.401 939.2 C
-402.201 937.2 397.801 938.4 V
-379.4 954.4 330.6 931.6 v
-320.6 929.6 319 929.6 v
-317.4 929.6 314.6 929.6 306.6 923.2 c
-298.6 916.8 298.2 916 296.2 914.4 C
-279.8 903.2 275 902.4 V
-263.4 896 259 886 V
-255.4 884.8 l
-253.8 877.6 253.4 876.4 V
-248.6 872.8 247.8 867.2 V
-239 861.2 239.4 856.8 V
-237.8 851.6 237 846.8 V
-229.8 842 230.6 839.2 V
-223 825.2 224.2 818.4 V
-217.8 818.8 215 816.4 V
-214.2 811.6 212.6 811.2 V
-209.8 810 212.2 806 V
-210.6 803.2 210.2 801.6 V
-211 798.8 206.6 793.2 V
-200.2 774.4 202.2 769.2 V
-202.6 764.4 199.8 762.8 V
-196.2 763.2 204.6 751.2 V
-205.4 750 202.2 747.6 V
-185 744 182.6 727.6 V
-169 712.8 169 707.6 v
-169 705.295 169.271 702.148 169.97 697.535 C
-169.4 689.199 197 688.399 v
-224.6 687.599 599.717 719.755 Y
-b
-184.4 697.4 m
-159.4 736.8 173.8 680.399 Y
-182.6 645.999 312.2 683.599 y
-481.001 714 492.201 718 v
-503.401 722 598.601 715.6 y
-593.001 732.4 L
-528.201 778.8 509.001 755.6 495.401 759.6 c
-481.801 763.6 484.201 754 481.001 753.2 c
-477.801 752.4 438.601 777.2 432.201 776.4 c
-425.801 775.6 400.459 799.351 415.401 767.6 c
-431.401 733.6 357 728.4 340.2 739.6 c
-323.4 750.8 347.4 721.2 Y
-365.8 701.2 331.4 718 y
-297 730.8 273 705.2 269.8 704.4 c
-266.6 703.6 261.8 700.4 261 706.8 c
-260.2 713.2 252.69 729.901 221 703.6 c
-201 686.999 187.2 709 Y
-184.4 697.4 L
-f
-0.09 0.5 0.772 0 k
-433.51 774.654 m
-427.11 773.854 401.743 797.593 416.71 765.854 c
-433.31 730.654 358.31 726.654 341.51 737.854 c
-324.709 749.054 348.71 719.454 Y
-367.11 699.454 332.709 716.254 y
-298.309 729.054 274.309 703.454 271.109 702.654 c
-267.909 701.854 263.109 698.654 262.309 705.054 c
-261.509 711.454 254.13 727.988 222.309 701.854 c
-201.073 684.508 187.582 705.963 Y
-184.382 695.854 L
-159.382 735.654 174.454 677.345 Y
-183.255 642.944 313.509 681.854 y
-482.31 712.254 493.51 716.254 v
-504.71 720.254 599.038 713.927 y
-593.51 731.236 L
-528.71 777.636 510.31 753.854 496.71 757.854 c
-483.11 761.854 485.51 752.254 482.31 751.454 c
-479.11 750.654 439.91 775.454 433.51 774.654 c
-f
-0.081 0.45 0.695 0 k
-434.819 772.909 m
-428.419 772.109 403.685 796.138 418.019 764.109 c
-434.219 727.908 359.619 724.908 342.819 736.108 c
-326.019 747.308 350.019 717.708 Y
-368.419 697.708 334.019 714.508 y
-299.619 727.308 275.618 701.708 272.418 700.908 c
-269.218 700.108 264.418 696.908 263.618 703.308 c
-262.818 709.708 255.57 726.075 223.618 700.108 c
-201.145 682.017 187.964 702.926 Y
-184.364 694.308 L
-160.564 733.308 175.109 674.29 Y
-183.909 639.89 314.819 680.108 y
-483.619 710.508 494.819 714.508 v
-506.019 718.508 599.474 712.254 y
-594.02 730.072 L
-529.219 776.472 511.619 752.109 498.019 756.109 c
-484.419 760.109 486.819 750.509 483.619 749.708 c
-480.419 748.908 441.219 773.709 434.819 772.909 c
-f
-0.072 0.4 0.618 0 k
-436.128 771.163 m
-429.728 770.363 404.999 794.395 419.328 762.363 c
-436.128 724.807 360.394 723.518 344.128 734.363 c
-327.328 745.563 351.328 715.963 Y
-369.728 695.963 335.328 712.763 y
-300.928 725.563 276.928 699.963 273.728 699.163 c
-270.528 698.363 265.728 695.163 264.928 701.563 c
-264.128 707.963 257.011 724.161 224.927 698.363 c
-201.218 679.526 188.345 699.89 Y
-184.345 692.763 L
-162.545 729.563 175.764 671.235 Y
-184.564 636.835 316.128 678.363 y
-484.928 708.763 496.129 712.763 v
-507.329 716.763 599.911 710.581 y
-594.529 728.908 L
-529.729 775.309 512.929 750.363 499.329 754.363 c
-485.728 758.363 488.128 748.763 484.928 747.963 c
-481.728 747.163 442.528 771.963 436.128 771.163 c
-f
-0.063 0.35 0.54 0 k
-437.438 769.417 m
-431.037 768.617 406.814 792.871 420.637 760.617 c
-437.438 721.417 362.237 721.417 345.437 732.617 c
-328.637 743.817 352.637 714.217 Y
-371.037 694.217 336.637 711.017 y
-302.237 723.817 278.237 698.217 275.037 697.417 c
-271.837 696.617 267.037 693.417 266.237 699.817 c
-265.437 706.217 258.452 722.248 226.237 696.617 c
-201.291 677.035 188.727 696.854 Y
-184.327 691.217 L
-164.527 726.018 176.418 668.181 Y
-185.218 633.78 317.437 676.617 y
-486.238 707.017 497.438 711.017 v
-508.638 715.017 600.347 708.908 y
-595.038 727.745 L
-530.238 774.145 514.238 748.617 500.638 752.617 c
-487.038 756.617 489.438 747.017 486.238 746.217 c
-483.038 745.417 443.838 770.217 437.438 769.417 c
-f
-0.054 0.3 0.463 0 k
-438.747 767.672 m
-432.347 766.872 406.383 790.323 421.947 758.872 c
-441.147 720.072 363.546 719.672 346.746 730.872 c
-329.946 742.072 353.946 712.472 Y
-372.346 692.472 337.946 709.272 y
-303.546 722.072 279.546 696.472 276.346 695.672 c
-273.146 694.872 268.346 691.672 267.546 698.072 c
-266.746 704.472 259.892 720.335 227.546 694.872 c
-201.364 674.544 189.109 693.817 Y
-184.309 689.672 L
-166.309 722.872 177.073 665.126 Y
-185.873 630.726 318.746 674.872 y
-487.547 705.272 498.747 709.272 v
-509.947 713.272 600.783 707.236 y
-595.547 726.581 L
-530.747 772.981 515.547 746.872 501.947 750.872 c
-488.347 754.872 490.747 745.272 487.547 744.472 c
-484.347 743.672 445.147 768.472 438.747 767.672 c
-f
-0.045 0.25 0.386 0 k
-440.056 765.927 m
-433.655 765.127 407.313 788.387 423.255 757.127 c
-443.656 717.126 364.855 717.926 348.055 729.126 c
-331.255 740.326 355.255 710.726 Y
-373.655 690.726 339.255 707.526 y
-304.855 720.326 280.855 694.726 277.655 693.926 c
-274.455 693.126 269.655 689.926 268.855 696.326 c
-268.055 702.726 261.332 718.422 228.855 693.126 c
-201.436 672.053 189.491 690.781 Y
-184.291 688.126 L
-168.291 718.326 177.727 662.071 Y
-186.527 627.671 320.055 673.126 y
-488.856 703.526 500.056 707.526 v
-511.256 711.526 601.22 705.563 y
-596.056 725.417 L
-531.256 771.817 516.856 745.126 503.256 749.126 c
-489.656 753.127 492.056 743.526 488.856 742.726 c
-485.656 741.926 446.456 766.727 440.056 765.927 c
-f
-0.036 0.2 0.309 0 k
-441.365 764.181 m
-434.965 763.381 407.523 786.056 424.565 755.381 c
-446.565 715.781 366.164 716.181 349.364 727.381 c
-332.564 738.581 356.564 708.981 Y
-374.964 688.981 340.564 705.781 y
-306.164 718.581 282.164 692.981 278.964 692.181 c
-275.764 691.381 270.964 688.181 270.164 694.581 c
-269.364 700.981 262.773 716.508 230.164 691.381 c
-201.509 669.562 189.873 687.744 Y
-184.273 686.581 L
-169.872 714.981 178.382 659.017 Y
-187.182 624.616 321.364 671.381 y
-490.165 701.781 501.365 705.781 v
-512.565 709.781 601.656 703.89 y
-596.565 724.254 L
-531.765 770.654 518.165 743.381 504.565 747.381 c
-490.965 751.381 493.365 741.781 490.165 740.981 c
-486.965 740.181 447.765 764.981 441.365 764.181 c
-f
-0.027 0.15 0.231 0 k
-442.674 762.435 m
-436.274 761.635 408.832 784.311 425.874 753.635 c
-447.874 714.035 367.474 714.435 350.674 725.635 c
-333.874 736.835 357.874 707.235 Y
-376.274 687.235 341.874 704.035 y
-307.473 716.835 283.473 691.235 280.273 690.435 c
-277.073 689.635 272.273 686.435 271.473 692.835 c
-270.673 699.235 264.214 714.595 231.473 689.635 c
-201.582 667.071 190.255 684.707 Y
-184.255 685.035 L
-170.654 711.436 179.037 655.962 Y
-187.837 621.562 322.673 669.635 y
-491.474 700.035 502.674 704.035 v
-513.874 708.035 602.093 702.217 y
-597.075 723.09 L
-532.274 769.49 519.474 741.635 505.874 745.635 c
-492.274 749.635 494.674 740.035 491.474 739.235 c
-488.274 738.435 449.074 763.235 442.674 762.435 c
-f
-0.018 0.1 0.154 0 k
-443.983 760.69 m
-437.583 759.89 410.529 782.777 427.183 751.89 c
-449.183 711.09 368.783 712.69 351.983 723.89 c
-335.183 735.09 359.183 705.49 Y
-377.583 685.49 343.183 702.29 y
-308.783 715.09 284.783 689.49 281.583 688.69 c
-278.382 687.89 273.582 684.69 272.782 691.09 c
-271.982 697.49 265.654 712.682 232.782 687.89 c
-201.655 664.58 190.637 681.671 Y
-184.236 683.49 L
-171.236 707.49 179.691 652.907 Y
-188.491 618.507 323.983 667.89 y
-492.783 698.29 503.983 702.29 v
-515.183 706.29 602.529 700.544 y
-597.583 721.926 L
-532.783 768.327 520.783 739.89 507.183 743.89 c
-493.583 747.89 495.983 738.29 492.783 737.49 c
-489.583 736.69 450.383 761.49 443.983 760.69 c
-f
-0.009 0.05 0.077 0 k
-445.292 758.945 m
-438.892 758.145 412.917 781.589 428.492 750.145 c
-449.692 707.344 370.092 710.944 353.292 722.144 c
-336.492 733.344 360.492 703.744 Y
-378.892 683.744 344.492 700.544 y
-310.092 713.344 286.092 687.744 282.892 686.944 c
-279.692 686.144 274.892 682.944 274.092 689.344 c
-273.292 695.744 267.095 710.768 234.092 686.144 c
-201.727 662.089 191.018 678.635 Y
-184.218 681.944 L
-171.418 705.144 180.346 649.853 Y
-189.146 615.453 325.292 666.144 y
-494.093 696.544 505.293 700.544 v
-516.493 704.544 602.965 698.872 y
-598.093 720.763 L
-533.292 767.163 522.093 738.144 508.493 742.144 c
-494.893 746.145 497.293 736.544 494.093 735.744 c
-490.892 734.944 451.692 759.745 445.292 758.945 c
-f
-1 g
-184.2 680.399 m
-171.4 702.4 181 646.799 Y
-189.8 612.399 326.6 664.399 y
-495.401 694.8 506.601 698.8 v
-517.801 702.8 603.401 697.2 y
-598.601 719.6 L
-533.801 766 523.401 736.4 509.801 740.4 c
-496.201 744.4 498.601 734.8 495.401 734 c
-492.201 733.2 453.001 758 446.601 757.2 c
-440.201 756.4 414.981 780.207 429.801 748.4 c
-452.028 700.693 369.041 710.773 354.6 720.4 c
-337.8 731.6 361.8 702 Y
-380.2 681.999 345.8 698.8 y
-311.4 711.6 287.4 685.999 284.2 685.199 c
-281 684.399 276.2 681.199 275.4 687.599 c
-274.6 694 268.535 708.856 235.4 684.399 c
-201.8 659.599 191.4 675.599 Y
-184.2 680.399 L
-f
-0 g
-225.8 650.399 m
-218.6 638.799 239.4 625.599 V
-240.8 624.199 222.8 628.399 V
-216.6 630.399 215 640.799 V
-210.2 645.199 205.4 650.799 v
-200.6 656.399 225.8 650.399 y
-f
-0.8 g
-365.8 698 m
-383.498 671.179 382.9 666.399 v
-381.6 655.999 381.4 646.399 384.6 642.399 c
-387.801 638.399 396.601 605.199 y
-396.201 603.999 408.601 641.999 V
-420.201 657.999 400.201 676.399 V
-365 705.2 365.8 698 v
-f
-0 g
-1 J 0.1 w
-245.8 623.599 m
-257 616.399 242.6 585.199 V
-249 587.599 l
-248.2 576.399 245 573.999 V
-252.2 577.199 l
-257 569.199 253 564.399 V
-269.8 556.399 269 549.999 V
-275.4 557.999 271.4 564.399 v
-267.4 570.799 260.2 566.799 261 585.199 C
-252.2 581.999 l
-257.8 590.799 257.8 597.199 V
-249.8 594.799 l
-265.269 621.377 254.6 622.799 v
-248.6 623.599 245.8 623.599 Y
-f
-0.8 g
-278.2 606.799 m
-281 611.199 278.2 610.399 v
-275.4 609.599 244.2 594.799 238.2 585.199 C
-272.6 609.599 278.2 606.799 V
-f
-288.6 598.799 m
-291.4 603.199 288.6 602.399 v
-285.8 601.599 254.6 586.799 248.6 577.199 C
-283 601.599 288.6 598.799 V
-f
-301.8 613.999 m
-304.6 618.399 301.8 617.599 v
-299 616.799 267.8 601.999 261.8 592.399 C
-296.2 616.799 301.8 613.999 V
-f
-278.6 570.399 m
-278.6 576.399 275.8 575.599 v
-273 574.799 237 557.199 231 547.599 C
-273 573.199 278.6 570.399 V
-f
-279.8 581.199 m
-281 585.999 278.2 585.199 V
-276.2 585.199 249.8 573.599 243.8 563.999 C
-273.4 585.599 279.8 581.199 V
-f
-265.4 533.599 m
-255.4 525.999 l
-265.8 533.599 269.4 532.399 V
-262.6 521.199 261.8 515.999 V
-272.2 528.799 277.8 528.399 V
-285.4 527.999 285.4 517.199 V
-291 527.599 294.2 527.199 V
-295.4 520.799 294.2 513.999 V
-298.2 521.599 302.2 519.999 V
-308.6 521.999 307.8 510.399 V
-307.8 499.999 307 497.199 V
-312.6 523.599 315 523.999 V
-323 525.199 327.8 516.399 V
-323.8 523.999 328.6 521.999 V
-339.4 520.399 342.6 513.599 V
-335.8 525.599 341.4 522.399 V
-348.2 522.399 349.4 515.999 V
-357.8 494.799 359.8 493.199 V
-352.2 514.799 353.8 514.799 V
-351.8 526.799 357 511.999 V
-353.8 525.999 359.4 525.199 v
-365 524.399 369.4 514.399 377.8 516.799 C
-387.401 511.199 389.401 580.399 V
-265.4 533.599 L
-f
-0 g
-0 J 1 w
-270.2 626.399 m
-285 632.399 325 626.399 V
-332.2 625.999 339 634.799 v
-345.8 643.599 372.6 650.799 379 648.799 C
-388.601 642.399 l
-389.401 641.199 l
-401.801 630.799 402.201 623.199 v
-402.601 615.599 387.801 567.599 378.2 551.599 c
-368.6 535.599 359 523.199 339.8 525.599 C
-319 529.599 293.4 525.599 v
-264.2 527.199 261.4 535.199 v
-258.6 543.199 272.6 558.399 y
-277 566.799 275.8 581.199 v
-274.6 595.599 275 623.599 270.2 626.399 c
-f
-0.1 0.6 0.45 0 k
-292.2 624.399 m
-300.6 605.999 271 540.799 y
-269 539.199 283.66 533.154 293.8 535.599 c
-304.746 538.237 345 533.999 Y
-368.6 549.599 381.4 593.999 y
-391.801 617.999 374.2 621.199 v
-356.6 624.399 292.2 624.399 y
-f
-0.1 0.6 0.45 0.2 k
-290.169 593.503 m
-293.495 606.293 295.079 618.094 292.2 624.399 c
-354.6 617.999 365.8 638.799 v
-370.041 646.674 384.801 615.999 384.4 606.399 c
-321.4 591.999 306.6 603.199 V
-290.169 593.503 L
-f
-0.1 0.6 0.45 0.25 k
-294.6 577.199 m
-296.6 569.999 294.2 565.999 V
-292.6 565.199 291.4 564.799 V
-292.6 561.199 298.6 559.599 V
-300.6 555.199 303 554.799 v
-305.4 554.399 310.2 548.799 314.2 549.999 c
-318.2 551.199 329.4 555.199 y
-335 558.399 343.8 554.799 V
-346.175 555.601 346.6 559.599 v
-347.1 564.299 350.2 567.999 352.2 569.999 c
-354.2 571.999 363.8 584.799 362.6 585.199 c
-361.4 585.599 294.6 577.199 Y
-f
-0 0.55 0.5 0 k
-290.2 625.599 m
-287.4 603.199 290.6 594.799 v
-293.8 586.399 293 584.399 292.2 580.399 c
-291.4 576.399 295.8 566.399 301.4 560.399 C
-313.4 558.799 l
-328.6 562.399 337.8 559.599 V
-346.794 558.256 350.2 573.199 V
-355 579.599 362.2 582.399 v
-369.4 585.199 376.6 626.799 372.6 634.799 c
-368.6 642.799 354.2 647.199 338.2 631.599 c
-322.2 615.999 320.2 632.799 290.2 625.599 C
-b
-0 0 0.2 0 k
-0.5 w
-291.8 550.799 m
-291 552.799 286.6 553.199 V
-264.2 556.799 255.8 569.199 V
-249 574.799 253.4 563.199 V
-263.8 542.799 270.6 539.999 V
-287 535.999 291.8 550.799 V
-b
-0 0.55 0.5 0.2 k
-1 w
-371.742 614.771 m
-372.401 622.677 374.354 631.291 372.6 634.799 c
-366.154 647.693 349.181 642.305 338.2 631.599 c
-322.2 615.999 320.2 632.799 290.2 625.599 C
-288.455 611.636 289.295 601.624 v
-326.6 613.199 327.4 607.599 V
-329 610.799 338.2 610.799 v
-347.4 610.799 370.142 611.971 371.742 614.771 C
-f
-0 g
-0 0.55 0.5 0.35 K
-2 w
-328.6 624.799 m
-333.4 619.999 329.8 610.399 V
-315.4 594.399 317.4 580.399 v
-S
-0 0 0.2 0 k
-0 G
-0.5 w
-280.6 539.999 m
-276.2 552.799 285 545.999 V
-289.8 543.999 288.6 542.399 v
-287.4 540.799 281.8 536.799 280.6 539.999 C
-b
-285.64 538.799 m
-282.12 549.039 289.16 543.599 V
-293.581 541.151 292.04 540.719 v
-287.48 539.439 292.04 536.879 285.64 538.799 C
-b
-290.44 538.799 m
-286.92 549.039 293.96 543.599 V
-298.335 541.289 296.84 540.719 v
-293.48 539.439 296.84 536.879 290.44 538.799 C
-b
-297.04 538.599 m
-293.52 548.839 300.56 543.399 V
-304.943 541.067 303.441 540.519 v
-300.48 539.439 303.441 536.679 297.04 538.599 C
-b
-303.52 538.679 m
-300 548.919 307.041 543.479 V
-310.881 541.879 309.921 540.599 v
-308.961 539.319 309.921 536.759 303.52 538.679 C
-b
-310.2 537.999 m
-305.4 550.399 314.6 543.999 V
-319.4 541.999 318.2 540.399 v
-317 538.799 318.2 535.599 310.2 537.999 C
-b
-0 g
-0.1 0.6 0.45 0.25 K
-2 w
-281.8 555.199 m
-295 557.999 301 554.799 V
-307 553.599 308.2 553.999 v
-309.4 554.399 312.6 554.799 y
-S
-315.8 546.399 m
-327.8 559.999 339.8 555.599 v
-346.816 553.026 345.8 556.399 346.6 559.199 c
-347.4 561.999 347.6 566.199 352.6 569.199 c
-S
-0 0 0.2 0 k
-0 G
-0.5 w
-333 562.399 m
-329 573.199 326.2 560.399 v
-323.4 547.599 320.2 543.999 318.6 541.199 C
-318.6 535.999 327 536.399 V
-337.8 536.799 338.2 539.599 v
-338.6 542.399 337 553.999 333 562.399 C
-b
-0 g
-0.1 0.6 0.45 0.25 K
-2 w
-347 555.199 m
-350.6 557.599 353 556.399 v
-S
-353.5 571.599 m
-356.4 576.499 361.2 577.299 v
-S
-0.7 g
-0 G
-1 w
-274.2 534.799 m
-292.2 531.599 296.6 533.199 V
-305.4 533.199 297 531.199 V
-284.2 531.199 276.2 532.399 V
-264.6 537.999 274.2 534.799 V
-f
-0 0 0.2 0 k
-0.5 w
-288.2 627.999 m
-305.8 627.999 307.8 627.199 V
-315 596.399 311.4 588.799 V
-310.2 585.999 307.4 591.599 V
-289 624.399 285.8 626.399 v
-282.6 628.399 287 627.999 288.2 627.999 C
-b
-211.1 630.699 m
-220 628.999 232.6 626.399 V
-237.4 603.999 240.6 599.199 v
-243.8 594.399 240.2 594.399 236.6 597.199 c
-233 599.999 218.2 613.999 216.2 618.399 c
-214.2 622.799 211.1 630.699 y
-b
-232.961 626.182 m
-238.761 624.634 239.77 622.419 v
-240.778 620.205 238.568 616.908 y
-237.568 613.603 236.366 615.765 v
-235.164 617.928 232.292 625.588 232.961 626.182 c
-b
-0 g
-233 626.399 m
-236.6 621.199 240.2 621.199 v
-243.8 621.199 244.182 621.612 247 620.999 c
-251.6 619.999 251.2 621.999 257.8 620.799 c
-260.44 620.319 263 621.199 265.8 619.999 c
-268.6 618.799 271.8 619.599 273 621.599 c
-274.2 623.599 279 627.799 Y
-266.2 625.999 263.4 625.199 V
-241 623.999 233 626.399 V
-f
-0 0 0.2 0 k
-277.6 626.199 m
-271.15 622.699 270.75 620.299 v
-270.35 617.899 276 614.199 y
-278.75 609.599 279.35 611.999 v
-279.95 614.399 278.4 625.799 277.6 626.199 c
-b
-240.115 620.735 m
-247.122 609.547 247.339 620.758 V
-247.896 622.016 246.136 622.038 v
-240.061 622.114 241.582 626.216 240.115 620.735 C
-b
-247.293 620.486 m
-255.214 609.299 254.578 620.579 V
-254.585 620.911 252.832 621.064 v
-248.085 621.478 248.43 625.996 247.293 620.486 C
-b
-254.506 620.478 m
-262.466 609.85 261.797 619.516 V
-261.916 620.749 260.262 621.05 v
-256.37 621.756 256.159 625.005 254.506 620.478 C
-b
-261.382 620.398 m
-269.282 608.837 269.63 618.618 V
-271.274 619.996 269.528 620.218 v
-263.71 620.958 264.508 625.412 261.382 620.398 C
-b
-0 0 0.2 0.1 k
-225.208 616.868 m
-217.55 618.399 l
-214.95 623.399 212.85 629.549 y
-219.2 628.549 231.7 625.749 V
-232.576 622.431 234.048 616.636 v
-225.208 616.868 l
-f
-290.276 621.53 m
-288.61 624.036 287.293 625.794 286.643 626.2 c
-283.63 628.083 287.773 627.706 288.902 627.706 C
-305.473 627.706 307.356 626.953 V
-307.88 624.711 308.564 621.32 V
-298.476 623.33 290.276 621.53 V
-f
-0.2 0.55 0.85 0 k
-1 w
-343.88 759.679 m
-371.601 755.719 397.121 791.359 398.881 801.04 c
-400.641 810.72 390.521 822.6 Y
-391.841 825.68 387.001 839.76 381.721 849 c
-376.441 858.24 360.54 857.266 343 858.24 c
-327.16 859.12 308.68 835.8 307.36 834.04 c
-306.04 832.28 312.2 793.999 313.52 788.279 c
-314.84 782.559 312.2 756.159 y
-346.44 765.259 316.16 763.639 343.88 759.679 c
-f
-0.08 0.44 0.68 0 k
-308.088 833.392 m
-306.792 831.664 312.84 794.079 314.136 788.463 c
-315.432 782.847 312.84 756.927 y
-345.512 765.807 316.728 764.271 343.944 760.383 c
-371.161 756.495 396.217 791.487 397.945 800.992 c
-399.673 810.496 389.737 822.16 Y
-391.033 825.184 386.281 839.008 381.097 848.08 c
-375.913 857.152 360.302 856.195 343.08 857.152 c
-327.528 858.016 309.384 835.12 308.088 833.392 c
-f
-0.06 0.33 0.51 0 k
-308.816 832.744 m
-307.544 831.048 313.48 794.159 314.752 788.647 c
-316.024 783.135 313.48 757.695 y
-344.884 766.855 317.296 764.903 344.008 761.087 c
-370.721 757.271 395.313 791.615 397.009 800.944 c
-398.705 810.272 388.953 821.72 Y
-390.225 824.688 385.561 838.256 380.473 847.16 c
-375.385 856.064 360.063 855.125 343.16 856.064 c
-327.896 856.912 310.088 834.44 308.816 832.744 c
-f
-0.04 0.22 0.34 0 k
-309.544 832.096 m
-308.296 830.432 314.12 794.239 315.368 788.831 c
-316.616 783.423 314.12 758.463 y
-343.556 767.503 317.864 765.535 344.072 761.791 c
-370.281 758.047 394.409 791.743 396.073 800.895 c
-397.737 810.048 388.169 821.28 Y
-389.417 824.192 384.841 837.504 379.849 846.24 c
-374.857 854.976 359.824 854.055 343.24 854.976 c
-328.264 855.808 310.792 833.76 309.544 832.096 c
-f
-0.02 0.11 0.17 0 k
-310.272 831.448 m
-309.048 829.816 314.76 794.319 315.984 789.015 c
-317.208 783.711 314.76 759.231 y
-342.628 768.151 318.432 766.167 344.136 762.495 c
-369.841 758.823 393.505 791.871 395.137 800.848 c
-396.769 809.824 387.385 820.84 Y
-388.609 823.696 384.121 836.752 379.225 845.32 c
-374.329 853.888 359.585 852.985 343.32 853.888 c
-328.632 854.704 311.496 833.08 310.272 831.448 c
-f
-1 g
-344.2 763.2 m
-369.4 759.6 392.601 792 394.201 800.8 c
-395.801 809.6 386.601 820.4 Y
-387.801 823.2 383.4 836 378.6 844.4 c
-373.8 852.8 359.346 851.914 343.4 852.8 c
-329 853.6 312.2 832.4 311 830.8 c
-309.8 829.2 315.4 794.4 316.6 789.2 c
-317.8 784 315.4 760 y
-340.9 768.6 319 766.8 344.2 763.2 c
-f
-0.8 g
-390.601 797.2 m
-362.8 789.6 351.2 791.2 V
-335.4 797.8 326.6 776 V
-323 768.8 321 766.8 v
-319 764.8 390.601 797.2 Y
-f
-0 g
-394.401 799.4 m
-365.4 787.2 355.4 787.6 v
-339 792.2 330.6 777.6 V
-322.2 768.4 319 766.8 V
-318.6 765.2 325 769.2 V
-335.4 764 l
-350.2 754.4 359.8 770.4 V
-363.8 781.6 363.8 783.6 v
-363.8 785.6 385 791.2 386.601 791.6 c
-388.201 792 394.801 796.2 394.401 799.4 C
-f
-0.4 0.2 0.8 0 k
-347 763.486 m
-340.128 763.486 331.755 767.351 331.755 773.6 c
-331.755 779.848 340.128 786.113 347 786.113 c
-353.874 786.113 359.446 781.048 359.446 774.8 c
-359.446 768.551 353.874 763.486 347 763.486 c
-f
-0.4 0.2 0.8 0.2 k
-343.377 780.17 m
-338.531 779.448 333.442 777.945 333.514 778.161 c
-335.054 782.78 341.415 786.113 347 786.113 c
-351.296 786.113 355.084 784.135 357.32 781.125 c
-352.004 781.455 343.377 780.17 v
-f
-1 g
-355.4 780.4 m
-351 783.6 351 781.4 V
-354.6 777 355.4 780.4 V
-f
-0 g
-345.4 772.274 m
-342.901 772.274 340.875 774.3 340.875 776.8 c
-340.875 779.299 342.901 781.325 345.4 781.325 c
-347.9 781.325 349.926 779.299 349.926 776.8 c
-349.926 774.3 347.9 772.274 345.4 772.274 c
-f
-0.2 0.55 0.85 0 k
-241.4 785.6 m
-238.2 806.8 240.6 811.2 V
-251.4 821.2 251 824.8 V
-250.6 842.8 249.4 843.6 v
-248.2 844.4 240.6 850.4 234.6 844 C
-224.2 826 225 819.6 V
-225 817.6 l
-217.4 818 215.8 816 V
-214.6 810.8 213.4 810.4 V
-210.6 808 212.6 805.2 V
-210.6 802.8 211 798.8 V
-218.6 794.8 L
-220.6 780.4 231.4 775.2 v
-236.236 772.871 239.4 779.6 241.4 785.6 c
-f
-1 g
-240.4 787.44 m
-237.52 806.52 239.68 810.48 V
-249.4 819.48 249.04 822.72 V
-248.68 838.92 247.6 839.64 v
-246.52 840.36 239.68 845.76 234.28 840 C
-224.92 823.8 225.64 818.04 V
-225.64 816.24 l
-218.8 816.6 217.36 814.8 V
-216.28 810.12 215.2 809.76 V
-212.68 807.6 214.48 805.08 V
-212.68 802.92 213.04 799.32 V
-219.88 795.72 L
-221.68 782.76 231.4 778.08 v
-235.752 775.985 238.6 782.04 240.4 787.44 c
-f
-0.075 0.412 0.637 0 k
-248.95 842.61 m
-247.86 843.47 240.37 849.24 234.52 843 C
-224.38 825.45 225.16 819.21 V
-225.16 817.26 l
-217.75 817.65 216.19 815.7 V
-215.02 810.63 213.85 810.24 V
-211.12 807.9 213.07 805.17 V
-211.12 802.83 211.51 798.93 V
-218.92 795.03 L
-220.87 780.99 231.4 775.92 v
-236.114 773.65 239.2 780.21 241.15 786.06 c
-238.03 806.73 240.37 811.02 V
-250.9 820.77 250.51 824.28 V
-250.12 841.83 248.95 842.61 V
-f
-0.05 0.275 0.425 0 k
-248.5 841.62 m
-247.52 842.54 240.14 848.08 234.44 842 C
-224.56 824.9 225.32 818.82 V
-225.32 816.92 l
-218.1 817.3 216.58 815.4 V
-215.44 810.46 214.3 810.08 V
-211.64 807.8 213.54 805.14 V
-211.64 802.86 212.02 799.06 V
-219.24 795.26 L
-221.14 781.58 231.4 776.64 v
-235.994 774.428 239 780.82 240.9 786.52 c
-237.86 806.66 240.14 810.84 V
-250.4 820.34 250.02 823.76 V
-249.64 840.86 248.5 841.62 V
-f
-0.025 0.137 0.212 0 k
-248.05 840.63 m
-247.18 841.61 239.91 846.92 234.36 841 C
-224.74 824.35 225.48 818.43 V
-225.48 816.58 l
-218.45 816.95 216.97 815.1 V
-215.86 810.29 214.75 809.92 V
-212.16 807.7 214.01 805.11 V
-212.16 802.89 212.53 799.19 V
-219.56 795.49 L
-221.41 782.17 231.4 777.36 v
-235.873 775.206 238.8 781.43 240.65 786.98 c
-237.69 806.59 239.91 810.66 V
-249.9 819.91 249.53 823.24 V
-249.16 839.89 248.05 840.63 V
-f
-1 g
-240.4 787.54 m
-237.52 806.52 239.68 810.48 V
-249.4 819.48 249.04 822.72 V
-248.68 838.92 247.6 839.64 V
-246.84 840.68 239.68 845.76 234.28 840 C
-224.92 823.8 225.64 818.04 V
-225.64 816.24 l
-218.8 816.6 217.36 814.8 V
-216.28 810.12 215.2 809.76 V
-212.68 807.6 214.48 805.08 V
-212.68 802.92 213.04 799.32 V
-219.88 795.72 L
-221.68 782.76 231.4 778.08 v
-235.752 775.985 238.6 782.14 240.4 787.54 c
-f
-0.8 g
-237.3 793.8 m
-215.7 804 214.8 804.8 V
-223.9 796.6 224.7 796.6 v
-225.5 796.6 237.3 793.8 Y
-f
-0 g
-220.2 800 m
-238.6 796.4 238.6 792 v
-238.6 789.088 238.357 775.669 233 777.2 c
-224.6 779.6 228.2 794 220.2 800 c
-f
-0.4 0.2 0.8 0 k
-228.6 796.2 m
-237.578 794.726 238.6 792 v
-239.2 790.4 239.863 782.092 234.4 781 c
-229.848 780.089 227.618 790.31 228.6 796.2 c
-f
-0 g
-314.595 753.651 m
-314.098 755.393 315.409 755.262 317.2 755.8 c
-319.2 756.4 331.4 760.2 332.2 762.8 c
-333 765.4 346.2 761 Y
-348 760.2 352.4 757.6 Y
-357.2 756.4 363.8 756 Y
-366.2 755 369.6 752.2 Y
-384.2 742 396.601 749.2 Y
-416.601 755.8 410.601 773 Y
-407.601 782 410.801 785.4 Y
-411.001 789.2 418.201 782.8 Y
-420.801 778.6 421.601 773.6 Y
-429.601 762.4 426.201 780.2 Y
-426.401 781.2 423.601 784.8 423.601 786 c
-423.601 787.2 421.801 790.6 Y
-418.801 794 421.201 801 Y
-423.001 814.8 420.801 813 Y
-419.601 814.8 410.401 804.8 Y
-408.201 801.4 402.201 799.8 Y
-399.401 798 396.001 799.4 Y
-393.401 799.8 387.801 792.8 Y
-390.601 793 393.001 788.6 395.401 788.4 c
-397.801 788.2 399.601 790.8 401.201 791.4 c
-402.801 792 405.601 786.2 Y
-406.001 783.6 400.401 778.8 Y
-400.001 774.2 398.401 775.8 Y
-395.401 776.4 394.201 772.6 393.201 768 c
-392.201 763.4 388.001 763 y
-386.401 755.6 385.2 758.6 Y
-385 764.2 379 758.4 Y
-377.8 756.4 373.2 758.6 Y
-366.4 760.6 368.8 762.6 Y
-370.6 764.8 381.8 762.6 Y
-384 764.2 376 768.2 Y
-375.4 770 376.4 774.4 Y
-377.6 777.6 384.4 783.2 Y
-393.801 784.4 391.001 786 Y
-384.801 791.2 379 783.6 Y
-376.8 777.4 359.4 762.4 Y
-354.6 759 357.2 765.8 353.2 762.4 c
-349.2 759 328.6 768 y
-317.038 769.193 314.306 753.451 310.777 756.571 c
-316.195 748.051 314.595 753.651 v
-f
-509.401 920 m
-483.801 912 481.001 893.2 V
-478.601 870.4 499.001 852.8 V
-499.401 846.4 501.401 843.2 v
-499.801 838.4 518.601 846 V
-545.801 854.4 l
-552.201 856.8 557.401 865.6 v
-562.601 874.4 577.801 893.2 574.201 918.4 C
-575.401 929.6 569.401 930 V
-561.001 931.6 553.801 924 V
-547.001 920.8 544.601 921.2 V
-509.401 920 L
-f
-564.022 920.99 m
-566.122 929.92 561.282 925.08 V
-554.242 919.36 546.761 919.36 V
-532.241 917.16 527.841 903.96 V
-523.881 877.12 531.801 871.4 V
-536.641 863.92 543.681 870.52 v
-550.722 877.12 566.222 907.35 564.022 920.99 C
-f
-0.2 g
-563.648 920.632 m
-565.738 929.376 560.986 924.624 V
-554.074 919.008 546.729 919.008 V
-532.473 916.848 528.153 903.888 V
-524.265 877.536 532.041 871.92 V
-536.793 864.576 543.705 871.056 v
-550.618 877.536 565.808 907.24 563.648 920.632 C
-f
-0.4 g
-563.274 920.274 m
-565.354 928.832 560.69 924.168 V
-553.906 918.656 546.697 918.656 V
-532.705 916.536 528.465 903.816 V
-524.649 877.952 532.281 872.44 V
-536.945 865.232 543.729 871.592 v
-550.514 877.952 565.394 907.13 563.274 920.274 C
-f
-0.6 g
-562.9 919.916 m
-564.97 928.288 560.394 923.712 V
-553.738 918.304 546.665 918.304 V
-532.937 916.224 528.777 903.744 V
-525.033 878.368 532.521 872.96 V
-537.097 865.888 543.753 872.128 v
-550.41 878.368 564.98 907.02 562.9 919.916 C
-f
-0.8 g
-562.526 919.558 m
-564.586 927.744 560.098 923.256 V
-553.569 917.952 546.633 917.952 V
-533.169 915.912 529.089 903.672 V
-525.417 878.784 532.761 873.48 V
-537.249 866.544 543.777 872.664 v
-550.305 878.784 564.566 906.91 562.526 919.558 C
-f
-1 g
-562.151 919.2 m
-564.201 927.2 559.801 922.8 V
-553.401 917.6 546.601 917.6 V
-533.401 915.6 529.401 903.6 V
-525.801 879.2 533.001 874 V
-537.401 867.2 543.801 873.2 v
-550.201 879.2 564.151 906.8 562.151 919.2 C
-f
-0.1 0.55 0.85 0.3 k
-350.6 716 m
-330.2 735.2 322.2 736 V
-287.8 740 273 722 V
-290.6 742.4 318.2 736.8 V
-296.6 741.2 284.2 738 V
-267.4 738 257.8 724 V
-255 719.2 l
-259 734 277.4 740 V
-300.2 744.8 311 740 V
-289.4 746.8 279.4 744.8 V
-249 747.2 236.2 720.8 V
-240.2 735.2 255 742.4 V
-268.6 751.2 289 748.4 V
-303.4 745.2 308.6 742.8 v
-313.8 740.4 312.6 743.2 304.2 748 C
-298.6 758 284.6 757.6 V
-241.8 754 231.4 742 V
-245 753.2 255.4 756 V
-277.8 764 286.2 763.2 V
-311 762.2 318.6 766.2 V
-307.4 761.2 310.6 758 v
-313.8 754.8 320.6 747.2 320.6 746 c
-320.6 744.8 344.8 722.7 348.4 718.3 C
-350.6 716 l
-f
-0.8 g
-1 J 0.1 w
-489 522 m
-473.5 558.5 461 568 V
-487 552 490.5 534 V
-490.5 524 489 522 V
-f
-536 514.5 m
-509.5 569.5 491 593.5 V
-534.5 556 539.5 529.5 V
-540 524 l
-537 526.5 l
-536.5 517.5 536 514.5 V
-f
-592.5 563 m
-530 622.5 528.5 625 V
-589 559 592 551.5 V
-590 560.5 592.5 563 V
-f
-404 519.5 m
-423.5 571.5 442.5 549 V
-457.5 539 457 536 V
-453 542.5 435 542 V
-416 545 404 519.5 V
-f
-594.5 647 m
-549.5 675.5 542 677 v
-530.193 679.361 591.5 648 596.5 637.5 C
-598.5 640 594.5 647 V
-f
-0 g
-0 J 1 w
-443.801 540.399 m
-464.201 542.399 471.001 549.199 V
-475.401 545.599 l
-493.001 583.999 l
-496.601 578.799 l
-511.001 593.599 510.201 601.599 v
-509.401 609.599 523.001 595.599 y
-522.201 607.199 529.401 600.399 V
-527.001 615.999 535.401 607.999 V
-524.864 638.156 547.401 612.399 v
-553.001 605.999 548.601 612.799 y
-522.601 660.799 544.201 646.399 v
-546.201 669.199 545.001 673.599 v
-543.801 677.999 541.801 700.4 537.001 705.6 c
-532.201 710.8 537.401 712.4 543.001 707.2 C
-531.801 731.2 545.001 719.2 V
-541.401 734.4 537.001 737.2 V
-531.401 754.4 546.601 743.6 V
-542.201 756 539.001 759.2 V
-527.401 786.8 534.601 782 V
-539.001 778.4 l
-532.201 792.4 538.601 788 v
-545.001 783.6 545.001 784 y
-523.801 817.2 544.201 799.6 V
-536.042 813.518 532.601 820.4 V
-513.801 840.8 528.201 834.4 V
-533.001 832.8 l
-524.201 842.8 516.201 844.4 v
-508.201 846 518.601 852.4 525.001 850.4 c
-531.401 848.4 547.001 840.8 y
-559.801 822 563.801 821.6 V
-543.801 829.2 549.801 821.2 V
-564.201 807.2 557.001 807.6 V
-551.001 800.4 555.801 791.6 V
-537.342 809.991 552.201 784.4 v
-559.001 768 l
-534.601 792.8 545.801 770.8 V
-563.001 747.2 565.001 746.8 v
-567.001 746.4 571.401 737.6 y
-567.001 739.6 l
-572.201 730.8 l
-561.001 742.8 567.001 729.6 V
-572.601 715.2 l
-552.201 737.2 565.801 707.6 V
-549.401 712.8 558.201 695.6 V
-556.601 679.599 557.001 674.399 v
-557.401 669.199 558.601 640.799 554.201 632.799 c
-549.801 624.799 560.201 605.599 562.201 601.599 c
-564.201 597.599 567.801 586.799 559.001 595.999 c
-550.201 605.199 554.601 599.599 556.601 590.799 c
-558.601 581.999 564.601 566.399 563.801 560.799 C
-562.601 559.599 559.401 563.199 V
-544.601 585.999 546.201 571.599 V
-545.001 563.599 541.801 554.799 V
-538.601 543.999 538.601 552.799 V
-535.401 569.599 532.601 561.999 v
-529.801 554.399 526.201 548.399 523.401 545.999 c
-520.601 543.599 515.401 566.399 514.201 555.999 C
-502.201 568.399 497.401 551.999 V
-485.801 535.599 l
-485.401 547.999 484.201 541.999 V
-454.201 535.999 443.801 540.399 V
-f
-409.401 897.2 m
-397.801 905.2 393.801 904.8 v
-389.801 904.4 421.401 913.6 462.601 886 C
-467.401 883.2 471.001 883.6 V
-474.201 881.2 471.401 877.6 V
-462.601 868 473.801 856.8 V
-492.201 850 486.601 858.8 V
-497.401 854.8 499.801 850.8 v
-502.201 846.8 501.001 850.8 y
-494.601 858 488.601 863.2 V
-483.401 865.2 480.601 873.6 v
-477.801 882 475.401 892 479.801 895.2 C
-475.801 890.8 476.601 894.8 v
-477.401 898.8 481.001 902.4 482.601 902.8 c
-484.201 903.2 500.601 919 507.401 919.4 C
-498.201 918 495.201 919 v
-492.201 920 465.601 931.4 459.601 932.6 C
-442.801 939.2 454.801 937.2 V
-490.601 933.4 508.801 920.2 V
-501.601 928.6 483.201 935.6 V
-461.001 948.2 425.801 943.2 V
-408.001 940 400.201 938.2 V
-397.601 938.8 397.001 939.2 v
-396.401 939.6 384.6 948.6 357 941.6 C
-340 937 331.4 932.2 V
-316.2 931 312.6 927.8 V
-294 913.2 292 912.4 v
-290 911.6 278.6 904 277.8 903.6 C
-302.4 910.2 304.8 912.6 v
-307.2 915 324.6 917.6 327 916.2 c
-329.4 914.8 337.8 915.4 328.2 914.8 C
-403.801 900 404.601 898 v
-405.401 896 409.401 897.2 y
-f
-0.2 0.55 0.85 0 k
-480.801 906.4 m
-470.601 913.8 468.601 913.8 v
-466.601 913.8 454.201 924 450.001 923.6 c
-445.801 923.2 433.601 933.2 406.201 925 C
-405.601 927 409.201 927.8 V
-415.601 930 416.001 930.6 V
-436.201 934.8 443.401 931.2 V
-452.601 928.6 458.801 922.4 V
-470.001 919.2 473.201 920.2 V
-482.001 918 482.401 916.2 V
-488.201 913.2 486.401 910.6 V
-486.801 909 480.801 906.4 V
-f
-468.33 908.509 m
-469.137 907.877 470.156 907.779 470.761 906.97 c
-470.995 906.656 470.706 906.33 470.391 906.233 c
-469.348 905.916 468.292 906.486 467.15 905.898 c
-466.748 905.691 466.106 905.873 465.553 906.022 c
-463.921 906.463 462.092 906.488 460.401 905.8 C
-458.416 906.929 456.056 906.345 453.975 907.346 c
-453.917 907.373 453.695 907.027 453.621 907.054 c
-450.575 908.199 446.832 907.916 444.401 910.2 C
-441.973 910.612 439.616 911.074 437.188 911.754 c
-435.37 912.263 433.961 913.252 432.341 914.084 c
-430.964 914.792 429.507 915.314 427.973 915.686 c
-426.11 916.138 424.279 916.026 422.386 916.546 c
-422.293 916.571 422.101 916.227 422.019 916.254 c
-421.695 916.362 421.405 916.945 421.234 916.892 c
-419.553 916.37 418.065 917.342 416.401 917 C
-415.223 918.224 413.495 917.979 411.949 918.421 c
-408.985 919.269 405.831 917.999 402.801 919 C
-406.914 920.842 411.601 919.61 415.663 921.679 c
-417.991 922.865 420.653 921.763 423.223 922.523 c
-423.71 922.667 424.401 922.869 424.801 922.2 C
-424.935 922.335 425.117 922.574 425.175 922.546 c
-427.625 921.389 429.94 920.115 432.422 919.049 c
-432.763 918.903 433.295 919.135 433.547 918.933 c
-435.067 917.717 437.01 917.82 438.401 916.6 C
-440.099 917.102 441.892 916.722 443.621 917.346 c
-443.698 917.373 443.932 917.032 443.965 917.054 c
-445.095 917.802 446.25 917.531 447.142 917.227 c
-447.48 917.112 448.143 916.865 448.448 916.791 c
-449.574 916.515 450.43 916.035 451.609 915.852 c
-451.723 915.834 451.908 916.174 451.98 916.146 c
-453.103 915.708 454.145 915.764 454.801 914.6 C
-454.936 914.735 455.101 914.973 455.183 914.946 c
-456.21 914.608 456.859 913.853 457.96 913.612 c
-458.445 913.506 459.057 912.88 459.633 912.704 c
-462.025 911.973 463.868 910.444 466.062 909.549 c
-466.821 909.239 467.697 909.005 468.33 908.509 c
-f
-391.696 922.739 m
-389.178 924.464 386.81 925.57 384.368 927.356 c
-384.187 927.489 383.827 927.319 383.625 927.441 c
-382.618 928.05 381.73 928.631 380.748 929.327 c
-380.209 929.709 379.388 929.698 378.88 929.956 c
-376.336 931.248 373.707 931.806 371.2 933 C
-371.882 933.638 373.004 933.394 373.6 934.2 C
-373.795 933.92 374.033 933.636 374.386 933.827 c
-376.064 934.731 377.914 934.884 379.59 934.794 c
-381.294 934.702 383.014 934.397 384.789 934.125 c
-385.096 934.078 385.295 933.555 385.618 933.458 c
-387.846 932.795 390.235 933.32 392.354 932.482 c
-393.945 931.853 395.515 931.03 396.754 929.755 c
-397.006 929.495 396.681 929.194 396.401 929 C
-396.789 929.109 397.062 928.903 397.173 928.59 c
-397.257 928.351 397.257 928.049 397.173 927.81 c
-397.061 927.498 396.782 927.397 396.408 927.346 c
-395.001 927.156 396.773 928.536 396.073 928.088 c
-394.8 927.274 395.546 925.868 394.801 924.6 C
-394.521 924.794 394.291 925.012 394.401 925.4 C
-394.635 924.878 394.033 924.588 393.865 924.272 c
-393.48 923.547 392.581 922.132 391.696 922.739 c
-f
-359.198 915.391 m
-356.044 916.185 352.994 916.07 349.978 917.346 c
-349.911 917.374 349.688 917.027 349.624 917.054 c
-348.258 917.648 347.34 918.614 346.264 919.66 c
-345.351 920.548 343.693 920.161 342.419 920.648 c
-342.095 920.772 341.892 921.284 341.591 921.323 c
-340.372 921.48 339.445 922.429 338.4 923 C
-340.736 923.795 343.147 923.764 345.609 924.148 c
-345.722 924.166 345.867 923.845 346 923.845 c
-346.136 923.845 346.266 924.066 346.4 924.2 C
-346.595 923.92 346.897 923.594 347.154 923.848 c
-347.702 924.388 348.258 924.198 348.798 924.158 c
-348.942 924.148 349.067 923.845 349.2 923.845 c
-349.336 923.845 349.467 924.156 349.6 924.156 c
-349.736 924.155 349.867 923.845 350 923.845 c
-350.136 923.845 350.266 924.066 350.4 924.2 C
-351.092 923.418 351.977 923.972 352.799 923.793 c
-353.837 923.566 354.104 922.418 355.178 922.12 c
-359.893 920.816 364.03 918.671 368.393 916.584 c
-368.7 916.437 368.91 916.189 368.8 915.8 C
-369.067 915.8 369.38 915.888 369.57 915.756 c
-370.628 915.024 371.669 914.476 372.366 913.378 c
-372.582 913.039 372.253 912.632 372.02 912.684 c
-367.591 913.679 363.585 914.287 359.198 915.391 c
-f
-345.338 871.179 m
-343.746 872.398 343.162 874.429 342.034 876.221 c
-341.82 876.561 342.094 876.875 342.411 876.964 c
-342.971 877.123 343.514 876.645 343.923 876.443 c
-345.668 875.581 347.203 874.339 349.2 874.2 C
-351.19 871.966 355.45 871.581 355.457 868.2 c
-355.458 867.341 354.03 868.259 353.6 867.4 C
-351.149 868.403 348.76 868.3 346.38 869.767 c
-345.763 870.148 346.093 870.601 345.338 871.179 c
-f
-317.8 923.756 m
-317.935 923.755 324.966 923.522 324.949 923.408 c
-324.904 923.099 317.174 922.05 316.81 922.22 c
-316.646 922.296 309.134 919.866 309 920 C
-309.268 920.135 317.534 923.756 317.8 923.756 c
-f
-0 g
-333.2 914 m
-318.4 912.2 314 911 v
-309.6 909.8 291 902.2 288 900.2 C
-274.6 894.8 257.6 874.8 V
-265.2 878.2 267.4 881 V
-281 893.6 280.8 891 V
-293 899.6 292.4 897.4 V
-316.8 908.6 314.8 905.4 V
-336.4 910 335.4 908 V
-354.2 903.6 351.4 903.4 V
-345.6 902.2 352 898.6 V
-348.6 894.2 343.2 898.2 v
-337.8 902.2 340.8 900 335.8 899 C
-333.2 898.2 328.6 902.2 V
-323 906.8 314.2 903.2 V
-283.6 890.6 281.6 890 V
-278 887.2 275.6 883.6 V
-269.8 879.2 266.8 877.8 V
-254 866.2 252.8 864.8 V
-249.4 859.6 248.6 859.2 V
-255 863 257 865 V
-271 875 276.4 875.8 V
-280.8 878.8 281.6 880.2 V
-296 889.4 300.2 889.4 V
-309.4 884.2 311.8 891.2 V
-317.6 893 323.2 891.8 V
-326.4 894.4 325.6 896.6 V
-327.2 898.4 328.2 894.6 V
-331.6 891 336.4 893 V
-340.4 893.2 338.4 890.8 V
-334 887 322.2 886.8 V
-309.8 886.2 293.4 878.6 V
-263.6 868.2 254.4 857.8 V
-248 849 242.6 847.8 V
-236.8 847 230.8 839.6 V
-240.6 845.4 249.6 845.4 V
-253.6 847.8 249.8 844.2 V
-246.2 836.6 247.8 831.2 V
-247.2 826 246.4 824.4 V
-238.6 811.6 238.6 809.2 v
-238.6 806.8 239.8 797 240.2 796.4 c
-240.6 795.8 239.2 798 243 795.6 c
-246.8 793.2 249.6 791.6 250.4 788.8 c
-251.2 786 248.4 794.2 248.2 796 c
-248 797.8 243.8 805 244.6 807.4 C
-245.6 806.4 246.4 805 V
-245.8 805.6 246.4 809.2 V
-247.2 814.4 248.6 817.6 v
-250 820.8 252 824.6 252.4 825.4 c
-252.8 826.2 252.8 832 254.2 829.4 C
-257.6 826.8 l
-254.8 829.4 257 831.6 V
-256 837.2 257.8 839.8 V
-264.8 848.2 266.4 849.2 v
-268 850.2 266.6 849.8 y
-272.6 854 266.8 852.4 V
-262.8 850.8 259.8 850.8 V
-252.2 848.8 256.2 853 v
-260.2 857.2 270.2 862.6 274 862.4 C
-274.8 860.8 l
-286 863.2 l
-284.8 862.4 l
-284.6 862.6 288.8 863 v
-293 863.4 298.8 862 300.2 863.8 c
-301.6 865.6 305 866.6 304.6 865.2 c
-304.2 863.8 304 861.8 y
-309 867.6 308.4 865.4 v
-307.8 863.2 299.6 858 298.2 851.8 C
-308.6 860 l
-312.2 863 l
-315.8 860.8 316 862.4 v
-316.2 864 320.8 869.8 322 869.6 c
-323.2 869.4 325.2 872.2 325 869.6 c
-324.8 867 332.4 861.6 y
-335.6 863.4 337 862 v
-338.4 860.6 342.6 881.8 y
-367.6 892.4 l
-411.201 895.8 l
-394.201 902.6 l
-333.2 914 l
-f
-0.2 0.55 0.85 0.5 K
-1 J 2 w
-351.4 715 m
-336.4 731.8 328 734.4 V
-314.6 741.2 290 733.4 v
-S
-324.8 735.8 m
-299.6 743.8 284.2 739.6 V
-265.8 737.6 257.4 723.8 v
-S
-321.2 737 m
-304.2 744.2 289.4 746.4 V
-272.8 749 256.2 741.8 V
-244 735.8 238.6 725.6 v
-S
-322.2 736.6 m
-306.8 747.6 305.8 749 V
-298.8 760 285.8 760.4 V
-264.4 759.6 247.2 751.6 v
-S
-0 G
-0 J 1 w
-320.895 745.593 m
-322.437 744.13 349.4 715.2 Y
-384.6 678.599 356.6 712.8 Y
-349 717.6 339.8 736.4 Y
-338.6 739.2 353.8 729.2 Y
-357.8 728.4 371.4 709.2 Y
-364.6 711.6 369.4 704.4 Y
-372.2 702.4 392.601 686.799 Y
-396.201 682.799 400.201 681.199 Y
-414.201 686.399 407.801 673.199 Y
-410.201 666.399 415.801 677.999 Y
-427.001 694.8 410.601 692.399 Y
-380.6 689.599 373.8 705.6 Y
-371.4 708 380.2 705.6 Y
-388.601 703.6 373 718 Y
-375.4 718 384.6 711.2 Y
-395.001 702 397.001 704 Y
-415.001 712.8 425.401 705.2 Y
-427.401 703.6 421.801 696.8 423.401 691.599 c
-425.001 686.399 429.801 673.999 Y
-427.401 672.399 427.801 661.599 Y
-444.601 638.399 435.001 640.399 Y
-419.401 640.799 434.201 633.199 Y
-437.401 631.199 446.201 623.999 Y
-443.401 625.199 441.801 619.999 Y
-446.601 615.999 443.801 611.199 Y
-437.801 609.999 436.601 605.999 Y
-443.401 597.999 433.401 597.599 Y
-437.001 593.199 432.201 581.199 Y
-427.401 581.199 421.001 575.599 Y
-423.401 570.799 413.001 565.199 Y
-404.601 563.599 407.401 556.799 Y
-399.401 550.799 397.001 534.799 Y
-396.201 524.399 393.801 521.199 399.001 523.199 c
-404.201 525.199 403.401 537.599 Y
-398.601 553.199 441.401 569.199 Y
-445.401 570.799 446.201 575.999 Y
-448.201 575.599 457.001 567.999 Y
-464.601 556.799 465.001 565.999 Y
-466.201 569.599 464.601 575.599 Y
-470.601 597.199 456.601 603.599 Y
-446.601 637.199 460.601 628.799 Y
-463.401 623.199 474.201 617.999 y
-477.801 620.399 L
-476.201 625.199 484.601 631.199 Y
-487.401 624.799 493.401 632.799 Y
-497.001 657.199 509.401 642.799 Y
-513.401 641.599 514.601 648.399 Y
-518.201 658.799 514.601 672.399 Y
-518.201 672.799 527.801 666.799 Y
-530.601 670.399 521.401 687.199 525.401 684.799 c
-529.401 682.399 533.801 680.799 Y
-534.601 682.799 524.601 695.199 Y
-520.201 698 515.001 718.4 Y
-522.201 714.8 512.201 730 Y
-512.201 733.2 518.201 744.4 Y
-517.401 751.2 518.201 750.8 Y
-521.001 749.6 529.001 748 522.201 754.4 c
-515.401 760.8 523.001 765.6 Y
-527.401 768.4 513.801 768 Y
-508.601 772.4 509.001 776.4 Y
-517.001 774.4 502.601 788.8 500.201 792.4 c
-497.801 796 507.401 801.2 Y
-520.601 804.8 509.001 808 Y
-489.401 807.6 500.201 818.4 Y
-506.201 818 504.601 820.4 Y
-499.401 821.6 489.801 828 Y
-485.801 831.6 489.401 830.8 Y
-506.201 829.6 477.401 840.8 Y
-485.401 840.8 467.401 851.2 Y
-465.401 852.8 462.201 860.4 Y
-456.201 865.6 451.401 872.4 Y
-451.001 876.8 446.201 881.6 Y
-434.601 895.2 429.001 894.8 Y
-414.201 898.4 409.001 897.6 Y
-356.2 893.2 l
-329.8 880.4 337.6 859.4 Y
-344 851 353.2 854.8 Y
-357.8 861 369.4 858.8 Y
-389.801 855.6 387.201 859.2 Y
-384.801 863.8 368.6 870 368.4 870.6 c
-368.2 871.2 359.4 874.6 Y
-356.4 875.8 352 885 Y
-348.8 888.4 364.6 882.6 Y
-363.4 881.6 370.8 877.6 Y
-388.201 878.6 398.801 867.8 Y
-409.601 851.2 409.801 859.4 Y
-412.601 868.8 400.801 890 Y
-401.201 892 409.401 885.4 Y
-410.801 887.4 411.601 881.6 Y
-411.801 879.2 415.601 871.2 Y
-418.401 858.2 422.001 865.6 Y
-426.601 856.2 L
-428.001 853.6 422.001 846 Y
-421.801 843.2 422.601 843.4 417.001 835.8 c
-411.401 828.2 414.801 823.8 Y
-413.401 817.2 422.201 817.6 Y
-424.801 815.4 428.201 815.4 Y
-430.001 813.4 432.401 814 Y
-434.001 817.8 440.201 815.8 Y
-441.601 818.2 449.801 818.6 Y
-450.801 821.2 451.201 822.8 454.601 823.4 c
-458.001 824 433.401 867 Y
-439.801 867.8 431.601 880.2 Y
-429.401 886.8 440.801 872.2 443.001 870.8 c
-445.201 869.4 446.201 867.2 444.601 867.4 c
-443.001 867.6 441.201 865.4 442.601 865.2 c
-444.001 865 457.001 850 460.401 839.8 c
-463.801 829.6 469.801 825.6 476.001 819.6 c
-482.201 813.6 481.401 789.4 Y
-481.001 780.6 487.001 770 Y
-489.001 766.2 484.801 748 Y
-482.801 745.8 484.201 745 Y
-485.201 743.8 492.001 730.6 Y
-490.201 730.8 493.801 727.2 Y
-499.001 721.2 492.601 724.2 Y
-486.601 725.8 493.601 716 Y
-494.801 714.2 485.801 718.8 Y
-476.601 719.4 488.201 712.2 Y
-496.801 705 485.401 709.4 Y
-480.801 711.2 484.001 704.4 Y
-487.201 702.8 504.401 695.8 Y
-504.801 691.999 501.801 686.999 Y
-502.201 682.999 500.001 679.599 Y
-498.801 671.399 498.201 670.599 Y
-494.001 670.399 486.601 656.599 Y
-484.801 653.999 474.601 641.999 Y
-472.601 634.999 454.601 642.199 Y
-448.001 638.799 450.001 642.199 Y
-449.601 644.399 454.401 650.399 Y
-461.401 652.999 458.801 663.799 Y
-462.801 665.199 451.601 667.999 451.801 669.199 c
-452.001 670.399 457.801 671.799 Y
-465.801 673.799 461.401 676.199 Y
-460.801 680.199 463.801 685.799 Y
-475.401 686.599 463.801 702.8 Y
-453.001 710.4 452.001 716.2 Y
-464.601 724.4 456.401 736.8 456.601 740.4 c
-456.801 744 458.001 765.6 Y
-456.001 771.8 453.001 785.4 Y
-455.201 790.6 462.601 803.2 Y
-465.401 807.4 474.201 812.2 472.001 815.2 c
-469.801 818.2 462.001 816.4 Y
-454.201 817.8 454.801 812.6 Y
-453.201 811.6 452.401 806.6 Y
-451.68 798.667 442.801 792.4 Y
-431.601 786.2 440.801 782.2 Y
-446.801 775.6 437.001 775.4 Y
-426.001 777.2 434.201 767 Y
-445.001 754.2 442.001 751.4 Y
-431.801 750.4 444.401 741.2 y
-443.601 743.2 443.801 741.4 v
-444.001 739.6 447.001 735.4 447.801 733.4 c
-448.601 731.4 444.601 731.2 Y
-445.201 721.6 429.801 725.8 y
-429.801 725.8 428.201 725.6 v
-426.601 725.4 415.401 726.2 409.601 728.4 c
-403.801 730.6 397.001 730.6 y
-393.001 728.8 385.4 729 v
-377.8 729.2 369.8 726.4 Y
-365.4 726.8 374 731.2 374.2 731 c
-374.4 730.8 380 736.4 372 735.8 c
-350.203 734.165 339.4 744.4 Y
-337.4 745.8 334.8 748.6 Y
-324.8 750.6 336.2 736.2 Y
-337.4 734.8 336 733.8 Y
-335.2 735.4 327.4 740.8 Y
-324.589 741.773 323.226 743.107 320.895 745.593 C
-f
-0.2 0.55 0.85 0.5 k
-1 J 2 w
-297 757.2 m
-308.6 751.6 311.2 748.8 v
-313.8 746 327.8 734.6 y
-322.4 736.6 319.8 738.4 v
-317.2 740.2 306.4 748.4 y
-302.6 754.4 297 757.2 v
-f
-0.4 0.2 0.8 0 k
-0 J 1 w
-238.991 788.397 m
-239.328 788.545 238.804 791.257 238.6 791.8 c
-237.578 794.526 228.6 796 y
-228.373 794.635 228.318 793.039 228.424 791.401 c
-233.292 785.882 238.991 788.397 v
-f
-0.4 0.2 0.8 0.2 k
-238.991 788.597 m
-238.542 788.439 238.976 791.331 238.8 791.8 c
-237.778 794.526 228.6 796.1 y
-228.373 794.735 228.318 793.139 228.424 791.501 c
-232.692 786.382 238.991 788.597 v
-f
-0 g
-234.6 788.454 m
-233.975 788.454 233.469 789.594 233.469 791 c
-233.469 792.405 233.975 793.545 234.6 793.545 c
-235.225 793.545 235.732 792.405 235.732 791 c
-235.732 789.594 235.225 788.454 234.6 788.454 c
-f
-234.6 791 m
-F
-189 690.399 m
-183.4 680.399 208.2 686.399 V
-222.2 687.599 224.6 689.999 V
-225.8 689.199 234.166 686.266 237 685.599 c
-243.8 683.999 252.2 694 y
-256.8 704.5 259.6 704.5 v
-262.4 704.5 259.2 702.9 y
-252.6 692.799 253 691.199 V
-247.8 671.199 231.8 670.399 V
-215.65 669.449 217 663.599 V
-225.8 665.999 228.2 663.599 V
-239 663.999 231 657.599 V
-224.2 645.999 l
-224.34 642.081 214.2 645.599 v
-204.4 648.999 194.1 661.899 y
-178.15 676.449 189 690.399 V
-f
-0.1 0.4 0.4 0 k
-187.8 686.399 m
-185.8 676.799 222.6 687.199 V
-227 687.199 229.4 686.399 v
-231.8 685.599 243.8 682.799 245.8 683.999 C
-238.6 670.399 227 671.999 V
-213.8 670.399 214.2 665.599 V
-218.2 658.399 223 655.999 V
-225.8 653.599 225.4 650.399 v
-225 647.199 222.2 645.599 220.2 644.799 c
-218.2 643.999 215 647.199 213.4 647.199 c
-211.8 647.199 203.4 653.599 199 658.399 c
-194.6 663.199 186.2 675.199 186.6 677.999 c
-187 680.799 187.8 686.399 Y
-f
-0.1 0.4 0.4 0.2 k
-191 668.949 m
-193.6 664.999 196.8 660.799 199 658.399 c
-203.4 653.599 211.8 647.199 213.4 647.199 c
-215 647.199 218.2 643.999 220.2 644.799 c
-222.2 645.599 225 647.199 225.4 650.399 c
-225.8 653.599 223 655.999 Y
-219.934 657.532 217.194 661.024 215.615 663.347 C
-215.8 660.799 210.6 661.599 v
-205.4 662.399 200.2 665.199 198.6 668.399 c
-197 671.599 194.6 673.999 196.2 670.399 c
-197.8 666.799 200.2 663.199 201.8 662.799 c
-203.4 662.399 203 661.199 200.6 661.599 c
-198.2 661.999 195.4 662.399 191 667.599 c
-F
-0.1 0.55 0.85 0.3 k
-188.4 689.999 m
-190.2 703.6 191.4 707.6 V
-190.6 714.4 193 718.6 v
-195.4 722.8 197.4 729 200.4 734.4 c
-203.4 739.8 203.6 743.8 207.6 745.4 c
-211.6 747 217.6 755.6 220.4 756.6 c
-223.2 757.6 223 756.8 y
-229.8 771.6 243.4 767.6 V
-227.2 770.4 243 779.8 V
-238.2 778.7 241.5 785.7 v
-243.701 790.368 243.2 783.6 232.2 771.8 C
-227.2 763.2 222 760.2 v
-216.8 757.2 204.8 750.2 203.6 746.4 c
-202.4 742.6 199.2 736.8 197.2 735.2 c
-195.2 733.6 192.4 729.4 192 726 C
-190.8 722 189.4 720.8 v
-188 719.6 187.8 716.4 187.8 714.4 c
-187.8 712.4 185.8 709.6 186 707.2 C
-186.8 688.199 186.4 686.199 V
-188.4 689.999 L
-f
-1 g
-179.8 685.399 m
-177.8 686.799 173.4 680.799 V
-180.7 647.799 180.7 646.399 V
-181.8 648.499 180.5 655.699 v
-179.2 662.899 178.3 675.599 y
-179.8 685.399 l
-f
-0.1 0.55 0.85 0.3 k
-201.4 746 m
-183.8 742.8 184.2 713.6 V
-183.4 688.799 l
-182.2 714.4 181 716 v
-179.8 717.6 183.8 728.8 180.6 722.8 C
-166.6 708.8 174.6 687.599 V
-176.1 684.299 173.1 688.899 V
-168.5 701.5 169.6 707.9 V
-169.8 710.1 171.7 712.9 V
-180.3 724.6 183 726.9 V
-184.8 741.3 200.2 746.5 V
-205.9 748.8 201.4 746 V
-f
-0 g
-340.8 812.2 m
-341.46 812.554 341.451 813.524 342.031 813.697 c
-343.18 814.041 343.344 815.108 343.862 815.892 c
-344.735 817.211 344.928 818.744 345.51 820.235 c
-345.782 820.935 345.809 821.89 345.496 822.55 c
-344.322 825.031 343.62 827.48 342.178 829.906 c
-341.91 830.356 341.648 831.15 341.447 831.748 c
-340.984 833.132 339.727 834.123 338.867 835.443 c
-338.579 835.884 339.104 836.809 338.388 836.893 c
-337.491 836.998 336.042 837.578 335.809 836.552 c
-335.221 833.965 336.232 831.442 337.2 829 C
-336.418 828.308 336.752 827.387 336.904 826.62 c
-337.614 823.014 336.416 819.662 335.655 816.188 c
-335.632 816.084 335.974 815.886 335.946 815.824 c
-334.724 813.138 333.272 810.693 331.453 808.312 c
-330.695 807.32 329.823 806.404 329.326 805.341 c
-328.958 804.554 328.55 803.588 328.8 802.6 C
-325.365 799.82 323.115 795.975 320.504 792.129 c
-320.042 791.449 320.333 790.24 320.884 789.971 c
-321.697 789.573 322.653 790.597 323.123 791.443 c
-323.512 792.141 323.865 792.791 324.356 793.434 c
-324.489 793.609 324.31 794.028 324.445 794.149 c
-327.078 796.496 328.747 799.432 331.2 801.8 C
-333.15 802.129 334.687 803.127 336.435 804.14 c
-336.743 804.319 337.267 804.07 337.557 804.265 c
-339.31 805.442 339.308 807.478 339.414 809.388 c
-339.464 810.272 339.66 811.589 340.8 812.2 c
-f
-331.959 816.666 m
-332.083 816.743 331.928 817.166 332.037 817.382 c
-332.199 817.706 332.602 817.894 332.764 818.218 c
-332.873 818.434 332.71 818.814 332.846 818.956 c
-335.179 821.403 335.436 824.427 334.4 827.4 C
-335.424 828.02 335.485 829.282 335.06 830.129 c
-334.207 831.829 334.014 833.755 333.039 835.298 c
-332.237 836.567 330.659 837.811 329.288 836.508 c
-328.867 836.108 328.546 835.321 328.824 834.609 c
-328.888 834.446 329.173 834.3 329.146 834.218 c
-329.039 833.894 328.493 833.67 328.487 833.398 c
-328.457 831.902 327.503 830.391 328.133 829.062 c
-328.905 827.433 329.724 825.576 330.4 823.8 C
-329.166 821.684 330.199 819.235 328.446 817.358 c
-328.31 817.212 328.319 816.826 328.441 816.624 c
-328.733 816.138 329.139 815.732 329.625 815.44 c
-329.827 815.319 330.175 815.317 330.375 815.441 c
-330.953 815.803 331.351 816.29 331.959 816.666 c
-f
-394.771 826.977 m
-396.16 825.185 396.45 822.39 394.401 821 C
-394.951 817.691 398.302 819.67 400.401 820.2 C
-400.292 820.588 400.519 820.932 400.802 820.937 c
-401.859 820.952 402.539 821.984 403.601 821.8 C
-404.035 823.357 405.673 824.059 406.317 825.439 c
-408.043 829.134 407.452 833.407 404.868 836.653 c
-404.666 836.907 404.883 837.424 404.759 837.786 c
-404.003 839.997 401.935 840.312 400.001 841 C
-398.824 844.875 398.163 848.906 396.401 852.6 C
-394.787 852.85 394.089 854.589 392.752 855.309 c
-391.419 856.028 390.851 854.449 390.892 853.403 c
-390.899 853.198 391.351 852.974 391.181 852.609 c
-391.105 852.445 390.845 852.334 390.845 852.2 c
-390.846 852.065 391.067 851.934 391.201 851.8 C
-390.283 850.98 388.86 850.503 388.565 849.358 c
-387.611 845.648 390.184 842.523 391.852 839.322 c
-392.443 838.187 391.707 836.916 390.947 835.708 c
-390.509 835.013 390.617 833.886 390.893 833.03 c
-391.645 830.699 393.236 828.96 394.771 826.977 c
-f
-357.611 808.591 m
-356.124 806.74 352.712 804.171 355.629 802.243 c
-355.823 802.114 356.193 802.11 356.366 802.244 c
-358.387 803.809 360.39 804.712 362.826 805.294 c
-362.95 805.323 363.224 804.856 363.593 805.017 c
-365.206 805.72 367.216 805.662 368.4 807 C
-372.167 806.776 375.732 807.892 379.123 809.2 c
-380.284 809.648 381.554 810.207 382.755 810.709 c
-384.131 811.285 385.335 812.213 386.447 813.354 c
-386.58 813.49 386.934 813.4 387.201 813.4 C
-387.161 814.263 388.123 814.39 388.37 815.012 c
-388.462 815.244 388.312 815.64 388.445 815.742 c
-390.583 817.372 391.503 819.39 390.334 821.767 c
-390.049 822.345 389.8 822.963 389.234 823.439 c
-388.149 824.35 387.047 823.496 386 823.8 C
-385.841 823.172 385.112 823.344 384.726 823.146 c
-383.867 822.707 382.534 823.292 381.675 822.854 c
-380.313 822.159 379.072 821.99 377.65 821.613 c
-377.338 821.531 376.56 821.627 376.4 821 C
-376.266 821.134 376.118 821.368 376.012 821.346 c
-374.104 820.95 372.844 820.736 371.543 819.044 c
-371.44 818.911 370.998 819.09 370.839 818.955 c
-369.882 818.147 369.477 816.913 368.376 816.241 c
-368.175 816.118 367.823 816.286 367.629 816.157 c
-366.983 815.726 366.616 815.085 365.974 814.638 c
-365.645 814.409 365.245 814.734 365.277 814.99 c
-365.522 816.937 366.175 818.724 365.6 820.6 C
-367.677 823.12 370.194 825.069 372 827.8 C
-372.015 829.966 372.707 832.112 372.594 834.189 c
-372.584 834.382 372.296 835.115 372.17 835.462 c
-371.858 836.316 372.764 837.382 371.92 838.106 c
-370.516 839.309 369.224 838.433 368.4 837 C
-366.562 836.61 364.496 835.917 362.918 837.151 c
-361.911 837.938 361.333 838.844 360.534 839.9 c
-359.549 841.202 359.884 842.638 359.954 844.202 c
-359.96 844.33 359.645 844.466 359.645 844.6 c
-359.646 844.735 359.866 844.866 360 845 C
-359.294 845.626 359.019 846.684 358 847 C
-358.305 848.092 357.629 848.976 356.758 849.278 c
-354.763 849.969 353.086 848.057 351.194 847.984 c
-350.68 847.965 350.213 849.003 349.564 849.328 c
-349.132 849.544 348.428 849.577 348.066 849.311 c
-347.378 848.807 346.789 848.693 346.031 848.488 c
-344.414 848.052 343.136 846.958 341.656 846.103 c
-340.171 845.246 339.216 843.809 338.136 842.489 c
-337.195 841.337 337.059 838.923 338.479 838.423 c
-340.322 837.773 341.626 840.476 343.592 840.15 c
-343.904 840.099 344.11 839.788 344 839.4 C
-344.389 839.291 344.607 839.52 344.8 839.8 C
-345.658 838.781 346.822 838.444 347.76 837.571 c
-348.73 836.667 350.476 837.085 351.491 836.088 c
-353.02 834.586 352.461 831.905 354.4 830.6 C
-353.814 829.287 353.207 828.01 352.872 826.583 c
-352.59 825.377 353.584 824.18 354.795 824.271 c
-356.053 824.365 356.315 825.124 356.8 826.2 C
-357.067 825.933 357.536 825.636 357.495 825.42 c
-357.038 823.033 356.011 821.04 355.553 818.609 c
-355.494 818.292 355.189 818.09 354.8 818.2 C
-354.332 814.051 350.28 811.657 347.735 808.492 c
-347.332 807.99 347.328 806.741 347.737 806.338 c
-349.14 804.951 351.1 806.497 352.8 807 C
-353.013 808.206 353.872 809.148 355.204 809.092 c
-355.46 809.082 355.695 809.624 356.019 809.754 c
-356.367 809.892 356.869 809.668 357.155 809.866 c
-358.884 811.061 360.292 812.167 362.03 813.356 c
-362.222 813.487 362.566 813.328 362.782 813.436 c
-363.107 813.598 363.294 813.985 363.617 814.17 c
-363.965 814.37 364.207 814.08 364.4 813.8 C
-363.754 813.451 363.75 812.494 363.168 812.292 c
-362.393 812.024 361.832 811.511 361.158 811.064 c
-360.866 810.871 360.207 811.119 360.103 810.94 c
-359.505 809.912 358.321 809.474 357.611 808.591 c
-f
-302.2 858 m
-292.962 860.872 281.8 835.2 V
-279.4 830 277 828 v
-274.6 826 263.4 822.4 261.4 818.4 C
-251 802.4 L
-265.8 818.4 269 820.8 V
-277 829.2 273.8 822.4 V
-259.8 811.6 261 802.4 V
-255.4 788 254.6 786 V
-270.6 818 273 819.2 v
-275.4 820.4 276.6 820.4 275.4 816.8 c
-274.2 813.2 273.8 796.8 271 794.8 C
-279 815.2 278.2 818.4 V
-281.4 822 283.8 816.8 V
-282.6 800.8 l
-287 788.8 l
-284.6 800 286.2 815.6 V
-284.2 826 288.2 820.4 v
-292.2 814.8 301.8 808.8 301.8 804 C
-296.6 821.6 287.4 826.4 V
-283.4 820.4 l
-282.2 822.4 l
-278.6 823.2 283 830 v
-287.4 836.8 287 837.6 y
-293.4 830.4 295 830.4 V
-308.2 838 309.4 813.6 V
-316.2 828 307 834.8 V
-292.2 836.8 293.4 842 V
-300.6 854.4 L
-304.2 859.6 302.6 856.8 y
-F
-282.2 841.6 m
-269.4 841.6 266.2 836.4 V
-259 826.8 l
-276.2 836.8 280.2 838 v
-284.2 839.2 282.2 841.6 Y
-f
-242.2 835.2 m
-240.2 834 239.8 831.2 v
-239.4 828.4 237 828 237.8 825.2 c
-238.6 822.4 240.6 820 240.6 824 c
-240.6 828 242.2 830 243 831.2 c
-243.8 832.4 245.4 836.8 242.2 835.2 c
-f
-233.4 774 m
-225 778 221.8 781.6 v
-218.6 785.2 219.052 780.034 214.2 780.4 c
-208.353 780.841 209.4 796.8 y
-205.4 789.2 l
-204.2 774.8 212.2 777.2 v
-216.107 778.372 217.4 776.8 215.8 776 c
-214.2 775.2 221.4 774.8 218.6 773.2 c
-215.8 771.6 230.2 776.8 227.8 766.4 C
-233.4 774 L
-f
-220.8 759.6 m
-205.4 755.2 201.8 764.8 V
-197 762.4 199.2 759.4 v
-201.4 756.4 202.6 756 y
-208 754.8 207.4 754 v
-206.8 753.2 204.4 749.8 y
-214.6 755.8 220.8 759.6 v
-f
-1 g
-449.201 681.399 m
-448.774 679.265 447.103 678.464 445.201 677.799 C
-443.284 678.757 440.686 681.863 438.801 679.799 C
-438.327 680.279 437.548 680.339 437.204 681.001 c
-436.739 681.899 437.011 682.945 436.669 683.743 c
-436.124 685.015 435.415 686.381 435.601 687.799 C
-437.407 688.511 438.002 690.417 437.528 692.18 c
-437.459 692.437 437.03 692.634 437.23 692.983 c
-437.416 693.306 437.734 693.533 438.001 693.8 C
-437.866 693.665 437.721 693.432 437.61 693.452 c
-437 693.558 437.124 694.195 437.254 694.582 c
-437.839 696.328 439.853 696.592 441.201 695.4 C
-441.457 695.965 441.966 695.771 442.401 695.8 C
-442.351 696.379 442.759 696.906 442.957 697.326 c
-443.475 698.424 445.104 697.318 445.901 697.93 c
-446.977 698.755 448.04 699.454 449.118 698.851 c
-450.927 697.838 452.636 696.626 453.835 694.885 c
-454.41 694.051 454.65 692.77 454.592 691.812 c
-454.554 691.165 453.173 691.517 452.83 690.588 c
-452.185 688.84 454.016 688.321 454.772 686.983 c
-454.97 686.634 454.706 686.33 454.391 686.232 c
-453.98 686.104 453.196 686.293 453.334 685.84 c
-454.306 682.647 451.55 681.969 449.201 681.399 C
-f
-439.6 661.799 m
-439.593 663.537 437.992 665.293 439.201 666.999 C
-439.336 666.865 439.467 666.644 439.601 666.644 c
-439.736 666.644 439.867 666.865 440.001 666.999 C
-441.496 664.783 445.148 663.855 445.006 661.009 c
-444.984 660.562 443.897 659.644 444.801 658.999 C
-442.988 657.651 442.933 655.281 442.001 653.399 C
-440.763 653.685 439.551 654.048 438.401 654.599 C
-438.753 656.085 438.636 657.769 439.456 659.089 c
-439.89 659.787 439.603 660.866 439.6 661.799 c
-f
-0.8 g
-273.4 670.799 m
-256.542 660.663 270.6 675.999 v
-279.4 685.599 289.4 691.199 y
-299.8 695.6 303.4 696.8 v
-307 698 322.2 703.2 325.4 703.6 c
-328.6 704 338.2 708 345 704 c
-351.8 700 359.8 695.6 y
-343.4 704 339.8 701.6 v
-336.2 699.2 329 699.6 323 696.4 C
-308.2 691.999 305 689.999 v
-301.8 687.999 291.4 676.399 289.8 677.199 c
-288.2 677.999 290.2 678.399 291.4 681.199 c
-292.6 683.999 290.6 685.599 282.6 679.199 c
-274.6 672.799 273.4 670.799 Y
-f
-0 g
-280.805 676.766 m
-282.215 689.806 290.693 688.141 V
-298.919 692.311 301.641 694.279 V
-309.78 695.981 311.09 696.598 v
-329.569 705.298 344.288 700.779 344.835 701.899 c
-345.381 703.018 365.006 695.901 368.615 691.815 c
-369.006 691.372 358.384 697.412 348.686 699.303 c
-340.413 700.917 318.811 699.056 307.905 693.52 c
-304.932 692.011 295.987 686.227 293.456 686.338 c
-290.925 686.45 280.805 676.766 Y
-f
-0.8 g
-277 651.199 m
-261.8 653.599 278.6 655.199 V
-296.6 657.199 300.6 662.399 V
-314.2 671.599 317 671.999 v
-319.8 672.399 349.8 679.599 350.2 681.999 c
-350.6 684.399 356.2 684.399 357.8 683.599 c
-359.4 682.799 358.6 681.599 355.8 680.799 c
-353 679.999 321.8 663.599 315.4 662.399 c
-309 661.199 297.4 653.599 292.6 652.399 c
-287.8 651.199 277 651.199 Y
-f
-0 g
-296.52 658.597 m
-287.938 659.426 296.539 660.245 V
-305.355 663.669 307.403 666.332 V
-314.367 671.043 315.8 671.247 v
-317.234 671.452 331.194 675.139 331.399 676.367 c
-331.604 677.596 365.67 690.177 370.09 686.987 c
-373.001 684.886 363.1 686.563 353.466 682.153 c
-352.111 681.533 318.258 666.946 314.981 666.332 c
-311.704 665.717 305.765 661.826 303.307 661.212 c
-300.85 660.597 296.52 658.597 Y
-f
-288.6 656.399 m
-293.8 656.799 292.6 655.199 v
-291.4 653.599 289 654.399 y
-288.6 656.399 l
-f
-281.4 654.799 m
-286.6 655.199 285.4 653.599 v
-284.2 651.999 281.8 652.799 y
-281.4 654.799 l
-f
-271 653.199 m
-276.2 653.599 275 651.999 v
-273.8 650.399 271.4 651.199 y
-271 653.199 l
-f
-263.4 652.399 m
-268.6 652.799 267.4 651.199 v
-266.2 649.599 263.8 650.399 y
-263.4 652.399 l
-f
-301.8 691.999 m
-306.2 691.999 305 690.399 v
-303.8 688.799 300.6 689.199 y
-301.8 691.999 l
-f
-291.8 686.399 m
-298.306 688.54 295.8 685.199 v
-294.6 683.599 292.2 684.399 y
-291.8 686.399 l
-f
-280.6 681.599 m
-285.8 681.999 284.6 680.399 v
-283.4 678.799 281 679.599 y
-280.6 681.599 l
-f
-273 675.599 m
-278.2 675.999 277 674.399 v
-275.8 672.799 273.4 673.599 y
-273 675.599 l
-f
-266.2 670.799 m
-271.4 671.199 270.2 669.599 v
-269 667.999 266.6 668.799 y
-266.2 670.799 l
-f
-305.282 664.402 m
-312.203 664.934 310.606 662.805 v
-309.009 660.675 305.814 661.74 y
-305.282 664.402 l
-f
-315.682 669.202 m
-322.603 669.734 321.006 667.605 v
-319.409 665.475 316.214 666.54 y
-315.682 669.202 l
-f
-326.482 673.602 m
-333.403 674.134 331.806 672.005 v
-330.209 669.875 327.014 670.94 y
-326.482 673.602 l
-f
-336.882 678.402 m
-343.803 678.934 342.206 676.805 v
-340.609 674.675 337.414 675.74 y
-336.882 678.402 l
-f
-309.282 696.402 m
-316.203 696.934 314.606 694.805 v
-313.009 692.675 309.014 692.94 y
-309.282 696.402 l
-f
-319.282 699.602 m
-326.203 700.134 324.606 698.005 v
-323.009 695.875 318.614 696.14 y
-319.282 699.602 l
-f
-296.6 659.599 m
-301.8 659.999 300.6 658.399 v
-299.4 656.799 297 657.599 y
-296.6 659.599 l
-f
-0.1 0.55 0.85 0.3 k
-223.4 758.8 m
-219 750 218.6 746.8 V
-219.4 755.6 220.6 757.6 v
-221.8 759.6 223.4 758.8 y
-f
-205 744.8 m
-201.8 730.4 202.2 727.6 V
-201 739.2 201.4 740.4 v
-201.8 741.6 205 744.8 y
-f
-0.8 g
-225.8 819.4 m
-225.6 816.2 l
-223.4 816 l
-237.6 803.4 238.2 795.8 V
-239 804 225.8 819.4 V
-f
-0 g
-229.784 818.135 m
-229.353 818.551 229.572 819.296 229.164 819.556 c
-228.355 820.072 230.462 820.129 230.234 820.845 c
-229.851 822.051 230.038 822.072 229.916 823.348 c
-229.859 823.946 230.447 825.486 230.832 825.926 c
-232.278 827.578 230.954 830.51 232.594 832.061 c
-232.898 832.35 233.274 832.902 233.559 833.32 c
-234.218 834.283 235.402 834.771 236.352 835.599 c
-236.67 835.875 236.469 836.702 237.038 836.61 c
-237.752 836.495 238.993 836.625 238.948 835.784 c
-238.835 833.664 237.506 831.944 236.226 830.276 C
-236.677 829.572 236.219 828.937 235.935 828.38 c
-234.6 825.76 234.789 822.919 234.615 820.079 c
-234.61 819.994 234.303 819.916 234.311 819.863 c
-234.664 817.528 235.248 815.329 236.127 813.1 c
-236.493 812.17 236.964 811.275 237.114 810.348 c
-237.225 809.662 237.328 808.829 236.92 808.124 C
-238.955 805.234 237.646 802.583 238.815 799.052 c
-239.022 798.427 240.714 796.513 240.251 796.674 c
-237.738 797.545 237.626 797.943 237.449 798.696 c
-237.303 799.319 236.973 800.696 236.736 801.298 c
-236.672 801.462 236.501 803.346 236.423 803.468 c
-234.91 805.85 236.268 805.674 234.898 808.032 C
-233.47 808.712 232.504 809.816 231.381 810.978 c
-231.183 811.182 232.326 811.906 232.145 812.119 c
-231.053 813.408 229.9 814.175 230.236 815.668 c
-230.391 816.358 230.528 817.415 229.784 818.135 c
-f
-226.2 816.4 m
-226.6 809.6 229 808 v
-231.4 806.4 230.2 807.2 227 808.4 c
-223.8 809.6 225 810.4 y
-222.2 810 224.6 808 v
-227 806 230.6 803.6 229 803.6 c
-227.4 803.6 219.8 807.6 219.8 810.4 c
-219.8 813.2 218.8 817.3 y
-219.9 818.1 224.7 818 V
-226.1 817.3 226.2 816.4 V
-f
-1 g
-1 J 0.1 w
-225.4 797.8 m
-216.88 800.591 198.4 797.2 V
-207.431 799.278 226.2 797 v
-236.5 795.75 225.4 797.8 Y
-b
-227.498 797.871 m
-219.252 801.389 200.547 799.608 V
-209.725 800.897 228.226 797.005 v
-238.38 794.869 227.498 797.871 Y
-b
-229.286 797.778 m
-221.324 801.899 202.539 801.514 V
-211.787 802.118 229.948 796.86 v
-239.914 793.975 229.286 797.778 Y
-b
-230.556 797.555 m
-223.732 801.862 206.858 802.96 V
-215.197 802.79 231.078 796.681 v
-239.794 793.328 230.556 797.555 Y
-b
-345.84 787.039 m
-344.91 786.395 345.124 787.576 v
-345.339 788.757 373.547 801.927 377.161 801.677 C
-346.913 788.471 345.84 787.039 V
-b
-342.446 786.4 m
-341.57 785.685 341.691 786.879 v
-341.812 788.073 368.899 803.418 372.521 803.452 C
-343.404 787.911 342.446 786.4 V
-b
-339.16 785.025 m
-338.332 784.253 338.374 785.453 v
-338.416 786.652 358.233 802.149 368.045 804.023 C
-350.015 795.896 339.16 785.025 V
-b
-336.284 783.162 m
-335.539 782.468 335.577 783.547 v
-335.615 784.627 353.449 798.574 362.28 800.26 C
-346.054 792.946 336.284 783.162 V
-b
-0.8 g
-0 J 1 w
-304.6 635.199 m
-289.4 637.599 306.2 639.199 V
-324.2 641.199 328.2 646.399 V
-341.8 655.599 344.6 655.999 v
-347.4 656.399 363.8 659.999 364.2 662.399 c
-364.6 664.799 370.6 667.199 372.2 666.399 c
-373.8 665.599 373.8 656.399 371 655.599 c
-368.2 654.799 349.4 647.599 343 646.399 c
-336.6 645.199 325 637.599 320.2 636.399 c
-315.4 635.199 304.6 635.199 Y
-f
-0 g
-377.6 672.599 m
-374.6 670.999 373.4 668.399 V
-367 657.799 352.8 654.599 V
-329.8 645.599 322 643.599 V
-308.6 638.599 301.2 639.399 V
-294.2 639.199 300.4 637.599 V
-320.6 639.599 324 641.399 V
-339.6 646.599 342.6 649.199 v
-345.6 651.799 363.8 656.799 366 658.799 c
-368.2 660.799 378 669.199 377.6 672.599 C
-f
-318.882 641.089 m
-324.111 641.315 322.958 639.766 v
-321.805 638.216 319.357 639.09 y
-318.882 641.089 l
-f
-311.68 639.737 m
-316.908 639.963 315.756 638.414 v
-314.603 636.864 312.155 637.737 y
-311.68 639.737 l
-f
-301.251 638.489 m
-306.48 638.716 305.327 637.166 v
-304.174 635.617 301.726 636.49 y
-301.251 638.489 l
-f
-293.617 637.945 m
-298.846 638.171 297.693 636.622 v
-296.54 635.072 294.092 635.946 y
-293.617 637.945 l
-f
-335.415 648.487 m
-342.375 648.788 340.84 646.726 v
-339.306 644.664 336.047 645.826 y
-335.415 648.487 l
-f
-345.73 652.912 m
-351.689 656.213 351.155 651.151 v
-350.885 648.595 346.362 650.251 y
-345.73 652.912 l
-f
-354.862 655.726 m
-362.021 659.427 360.287 653.965 v
-359.509 651.515 355.493 653.065 y
-354.862 655.726 l
-f
-364.376 660.551 m
-368.735 665.452 369.801 658.79 v
-370.207 656.252 365.008 657.89 y
-364.376 660.551 l
-f
-326.834 644.003 m
-332.062 644.23 330.91 642.68 v
-329.757 641.131 327.308 642.004 y
-326.834 644.003 l
-f
-1 g
-1 J 0.1 w
-362.434 765.397 m
-361.708 764.732 361.707 765.803 v
-361.707 766.873 379.191 780.137 388.034 781.521 C
-371.935 774.792 362.434 765.397 V
-b
-0 g
-0 J 1 w
-365.4 701.6 m
-387.401 679.199 396.601 675.599 V
-405.801 664.399 401.801 638.399 V
-398.601 630.799 395.401 651.599 V
-398.601 676.799 387.401 660.799 V
-379 670.699 385.4 670.399 V
-388.601 668.399 389.001 669.999 v
-389.401 671.599 381.4 685.199 364.2 699.6 c
-347 714 365.4 701.6 Y
-f
-1 g
-1 J 0.1 w
-307 662.799 m
-306.8 664.599 308.6 663.799 v
-310.4 662.999 404.601 656.799 436.201 632.799 C
-391.001 655.999 307 662.799 V
-b
-317.4 667.199 m
-317.2 668.999 319 668.199 v
-320.8 667.399 457.401 668.399 481.001 635.999 C
-459.001 661.199 317.4 667.199 V
-b
-329 671.199 m
-328.8 672.999 330.6 672.199 v
-332.4 671.399 505.801 684.399 529.401 651.999 C
-519.801 677.599 329 671.199 V
-b
-339 675.999 m
-338.8 677.799 340.6 676.999 v
-342.4 676.199 464.601 714.8 488.201 682.399 C
-474.801 707 339 675.999 V
-b
-281 653.199 m
-280.8 654.999 282.6 654.199 v
-284.4 653.399 302.2 651.199 304.2 612.399 C
-297 654.399 281 653.199 V
-b
-272.2 651.599 m
-272 653.399 273.8 652.599 v
-275.6 651.799 289.8 656.399 287 617.599 C
-288.2 652.799 272.2 651.599 V
-b
-264.2 651.199 m
-264 652.999 265.8 652.199 v
-267.6 651.399 283 650.799 270.6 628.399 C
-280.2 652.399 264.2 651.199 V
-b
-311.526 695.535 m
-311.082 693.536 312.631 694.753 v
-328.699 707.378 361.141 766.28 416.826 771.914 C
-378.518 784.024 311.526 695.535 V
-b
-322.726 697.335 m
-321.363 698.528 323.231 699.153 v
-325.099 699.778 437.541 772.28 476.826 764.314 C
-449.719 771.824 322.726 697.335 V
-b
-301.885 691.233 m
-301.376 689.634 303.087 690.61 v
-312.062 695.73 315.677 752.941 359.254 754.196 C
-326.843 768.91 301.885 691.233 V
-b
-281.962 680.207 m
-280.885 678.921 282.838 679.175 v
-293.084 680.507 314.489 721.778 358.928 716.699 C
-326.962 731.045 281.962 680.207 V
-b
-293.2 686.333 m
-292.389 684.864 294.258 685.489 v
-304.057 688.763 317.141 733.375 361.729 736.922 C
-327.603 744.865 293.2 686.333 V
-b
-274.922 675.088 m
-274.049 674.046 275.631 674.252 v
-283.93 675.331 301.268 708.76 337.264 704.646 C
-311.371 716.266 274.922 675.088 V
-b
-267.323 669.179 m
-266.318 668.134 267.909 668.252 v
-272.077 668.561 302.715 701.64 321.183 686.138 C
-309.168 704.861 267.323 669.179 V
-b
-336.855 701.102 m
-335.654 702.457 337.586 702.842 v
-339.518 703.226 460.221 760.939 498.184 748.073 C
-472.243 758.947 336.855 701.102 V
-b
-303.4 636.799 m
-303.2 638.599 305 637.799 v
-306.8 636.999 322.2 636.399 309.8 613.999 C
-319.4 637.999 303.4 636.799 V
-b
-313.8 638.399 m
-313.6 640.199 315.4 639.399 v
-317.2 638.599 335 636.399 337 597.599 C
-329.8 639.599 313.8 638.399 V
-b
-320.6 639.999 m
-320.4 641.799 322.2 640.999 v
-324 640.199 348.6 636.799 372.2 604.399 C
-336.6 641.199 320.6 639.999 V
-b
-328.225 642.028 m
-327.788 643.786 329.678 643.232 v
-331.568 642.678 352.002 644.577 390.099 610.401 C
-343.924 645.344 328.225 642.028 V
-b
-338.625 646.428 m
-338.188 648.186 340.078 647.632 v
-341.968 647.078 376.802 642.577 428.499 607.601 C
-354.324 649.744 338.625 646.428 V
-b
-298.2 657.999 m
-298 659.799 299.8 658.999 v
-301.6 658.199 355 655.599 385.4 628.799 C
-350.499 653.574 298.2 657.999 V
-b
-288.2 653.999 m
-288 655.799 289.8 654.999 v
-291.6 654.199 316.2 650.799 339.8 618.399 C
-304.2 655.199 288.2 653.999 V
-b
-349.503 651.038 m
-348.938 652.759 350.864 652.345 v
-352.79 651.932 387.86 649.996 441.981 618.902 C
-364.317 653.296 349.503 651.038 V
-b
-357.903 653.438 m
-357.338 655.159 359.264 654.745 v
-361.19 654.332 396.26 652.396 450.381 621.302 C
-373.317 656.096 357.903 653.438 V
-b
-367.503 658.438 m
-366.938 660.159 368.864 659.745 v
-370.79 659.332 413.86 654.996 503.582 620.702 C
-382.917 661.096 367.503 658.438 V
-b
-0 g
-0 J 1 w
-256.2 651.599 m
-261.4 651.999 260.2 650.399 v
-259 648.799 256.6 649.599 y
-256.2 651.599 l
-f
-287 637.599 m
-292.2 637.999 291 636.399 v
-289.8 634.799 287.4 635.599 y
-287 637.599 l
-f
-278.2 637.999 m
-283.4 638.399 282.2 636.799 v
-281 635.199 278.6 635.999 y
-278.2 637.999 l
-f
-182.831 649.818 m
-187.876 648.495 186.218 647.376 v
-184.561 646.256 182.554 647.798 y
-182.831 649.818 l
-f
-184.831 659.418 m
-189.876 658.095 188.218 656.976 v
-186.561 655.856 184.554 657.398 y
-184.831 659.418 l
-f
-177.631 663.818 m
-182.676 662.495 181.018 661.376 v
-179.361 660.256 177.354 661.798 y
-177.631 663.818 l
-f
-0.8 g
-1 J 0.1 w
-257.4 588.799 m
-255.8 588.799 251.8 586.799 V
-249.8 586.799 238.6 583.199 233 573.199 C
-245.4 582.799 257.4 588.799 V
-f
-345.116 496.153 m
-345.257 495.895 345.312 495.475 345.604 495.458 c
-346.262 495.418 347.495 495.117 347.37 495.753 c
-346.522 500.059 345.648 504.996 341.515 506.803 c
-340.876 507.082 339.434 506.669 339.36 505.785 c
-339.233 504.261 339.116 502.912 339.425 501.446 c
-339.725 500.025 341.883 500.015 342.8 501.399 C
-343.736 499.727 344.168 497.884 345.116 496.153 c
-f
-334.038 491.419 m
-334.786 490.006 334.659 488.147 336.074 487.584 c
-336.814 487.29 338.664 488.265 338.246 489.339 c
-337.444 491.4 337.056 493.639 335.667 495.45 c
-335.467 495.712 335.707 496.245 335.547 496.573 c
-334.953 497.793 333.808 498.528 332.4 498.199 C
-331.285 495.996 332.433 493.867 333.955 492.158 c
-334.091 492.006 333.925 491.63 334.038 491.419 c
-f
-294.436 496.609 m
-294.328 496.986 294.29 497.449 294.455 497.77 c
-294.986 498.803 295.779 499.925 295.442 500.947 c
-295.094 502.003 293.978 501.821 293.328 501.252 c
-292.193 500.258 292.144 498.432 291.453 497.073 c
-291.257 496.687 291.308 496.114 290.867 495.723 c
-290.393 495.302 289.953 493.778 290.049 493.207 c
-290.102 492.894 289.919 482.986 290.141 483.249 c
-290.76 483.982 293.81 493.716 293.879 494.608 c
-293.936 495.339 294.668 495.804 294.436 496.609 c
-f
-268.798 503.401 m
-271.432 505.9 274.222 508.861 273.78 512.573 c
-273.664 513.549 271.889 513.022 271.702 512.176 c
-270.9 508.551 268.861 505.89 266.293 503.498 c
-264.097 501.451 262.235 495.107 262 494.599 C
-265.697 499.855 267.954 502.601 268.798 503.401 c
-f
-255.224 509.365 m
-255.747 509.735 255.445 510.226 255.662 510.558 c
-256.615 512.016 257.916 513.262 257.934 515 c
-257.937 515.277 257.559 515.586 257.224 515.362 c
-256.947 515.178 256.605 515.048 256.497 514.918 c
-254.467 512.469 253.067 509.798 251.624 506.986 c
-251.441 506.629 250.297 502.138 250.61 502.027 c
-250.849 501.942 252.569 506.123 252.779 506.237 c
-254.042 506.923 254.054 508.538 255.224 509.365 c
-f
-271.957 489.821 m
-272.401 490.69 273.977 491.892 273.864 492.781 c
-273.746 493.709 274.214 495.152 273.302 494.464 c
-272.045 493.516 268.596 492.167 268.326 486.359 c
-268.3 485.788 271.274 488.481 271.957 489.821 c
-f
-286.4 506.999 m
-286.8 507.667 287.508 507.194 287.967 507.457 c
-288.615 507.829 289.226 508.387 289.518 509.036 c
-290.488 511.185 292.257 513.005 292.4 515.399 C
-290.909 516.804 290.23 514.764 289.6 513.799 C
-288.277 515.446 287.278 513.572 285.978 513.053 c
-285.908 513.025 285.695 513.372 285.62 513.345 c
-284.443 512.905 283.763 511.824 282.765 511.043 c
-282.594 510.909 282.189 511.089 282.042 510.953 c
-281.39 510.35 280.417 510.025 280.137 509.343 c
-279.027 506.636 275.887 504.541 274 496.999 C
-274.381 496.09 278.512 503.641 278.999 504.339 c
-279.835 505.535 279.953 502.678 281.229 503.344 c
-281.28 503.371 281.466 503.133 281.6 502.999 C
-281.794 503.279 282.012 503.508 282.4 503.399 C
-282.4 503.799 282.266 504.355 282.467 504.514 c
-283.704 505.491 283.62 506.559 284.4 507.799 C
-284.858 507.01 285.919 507.729 286.4 506.999 C
-f
-346.2 452.599 m
-353.6 472.999 349.2 484.199 V
-360.6 462.599 356 451.399 V
-355.6 461.799 351.6 466.799 V
-347.6 453.999 346.2 452.599 V
-f
-331.4 455.199 m
-336.8 463.999 328.8 482.399 V
-328 461.999 321.2 450.999 V
-335.4 471.199 331.4 455.199 V
-f
-321.4 457.199 m
-321.2 477.199 321.6 480.199 V
-317.8 463.599 307.6 453.999 V
-322 465.999 321.4 457.199 V
-f
-311.8 489.199 m
-317.8 475.599 307.8 457.199 V
-314.2 469.399 309.4 476.399 V
-312 479.799 311.8 489.199 V
-f
-292.6 457.599 m
-291.6 473.199 293.4 475.399 V
-293.6 481.799 293.2 482.799 V
-297.2 488.999 297.4 481.599 V
-298.8 473.799 301.6 469.199 V
-305.2 463.799 305 457.399 V
-295 487.599 292.6 457.599 V
-f
-289 485.199 m
-282.4 474.399 280.6 455.399 V
-279.2 461.599 283 475.999 V
-287.2 491.399 289 485.199 V
-f
-267.2 465.399 m
-272.2 470.799 273.6 475.799 V
-277.2 491.599 270.8 482.999 V
-271 474.999 262.8 467.599 V
-267.6 469.999 267.2 465.399 V
-f
-261.4 470.399 m
-264.8 487.799 265.6 488.599 V
-267.4 491.999 264.6 488.799 V
-255.8 469.599 251.8 462.999 V
-259.8 472.199 261.4 470.399 V
-f
-255.6 486.999 m
-267.2 509.399 245.4 483.599 V
-256.4 493.399 255.6 486.999 V
-f
-240.2 501.599 m
-245 520.399 247.6 520.199 V
-255.8 529.199 249.2 518.599 V
-243.2 508.999 243.8 499.199 V
-243.2 508.799 240.2 501.599 V
-f
-570.5 513 m
-558.5 523 556 526.5 V
-569.5 508 569.5 501 V
-572 508.5 570.5 513 V
-f
-576 535 m
-555 550 551.5 557.5 V
-578 528 578 523.5 V
-578.5 532.5 576 535 V
-f
-593 689 m
-581 697 579.5 695 V
-590 688.5 592.5 680 V
-591 689 593 689 V
-f
-601.5 608.5 m
-584 620.5 l
-603 603.5 603.5 599.5 V
-601.5 608.5 L
-f
-0 g
-1 w
-210.75 631 m
-232.75 626.25 l
-S
-261 469 m
-260.5 472.5 251.5 462 v
-S
-266.5 464 m
-268.5 470.5 262 466 v
-S
-320.5 455.5 m
-322 466.5 310.5 453.5 v
-S
-
-showpage
-
-%%Trailer
-end
-tigersave restore
-%%EOF
diff --git a/Master/xemtex/doc/ghostscript/examples/vasarely.ps b/Master/xemtex/doc/ghostscript/examples/vasarely.ps
deleted file mode 100644
index 82b9e616562..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/vasarely.ps
+++ /dev/null
@@ -1,588 +0,0 @@
-%!
-% vasarely
-% Elizabeth D. Zwicky
-% zwicky@sgi.com
-/vasarelysave save def % prevent residual side effects
-%
-% Inspired by Vasarely's experiments with tilting circles and squares
-% (for instance "Tlinko" and "Betelgeuse"
-
-%% circles
-/part { circle } def /nnrand false def
-%% squares
-% /part { ngon } def /nn 4 def /nnrand false def
-%% random polygons
-% /part { ngon } def /nnrand true def
-%% random stars (not my favorite on this program)
-% /part { nstar } def /nnrand true def
-
-%% tilt the base shape a random amount?
-/twist false def
-% /twist true def
-
-
-/rainbow false def
-%% To make rainbows
-% /rainbow true def
-%% Set this to 1 to go through a full range of colors
-/rainrange .25 def
-
-% number of different designs per page
-/inheight 2 def
-/inwidth 2 def
-% number of repeats in a design
-/xtimes 10 def
-/ytimes 16 def
-
-%% This sets the relationship between the two hues: comptwo is maximum contrast
-/colorway {comptwo} def
-%% monochrome comptwo harmtwo harmfour freecolor compthree closeharm
-%% origcolor
-
-%% This sets the brightness and saturation of the colors; vivid makes
-%% them both bright
-/colorfam {vivid} def
-%% vivid jewel intense medium pastel free orig contrast
-%% medjewel medvivid vivpastel medpastel
-
-
-%% Only experts below this point!
-
-usertime srand
-/seed rand def
-
-/starcompensate false def
-/constroke 1 def
-
-
-
-/circle {
- /radius radius 1.33 mul def
- currentpoint /herey exch def /herex exch def
- herex herey radius 0 360 arc
-} def
-
-/ngon{ % polygon of n sides, n determined by nn
- nside 2 div radius rmoveto
- nn cvi {
- nside neg 0 rlineto
- 360 360 nn div sub neg rotate
- } repeat
- closepath
-} def
-
-/nstar{ % star of n points, n determined by nstarslider
- /radius radius 1.33 mul def
- currentpoint /herey exch def /herex exch def
- 0 radius rmoveto
- 90 nstarangle 2 div add neg rotate
- nn cvi {nstarside 0 rlineto
- 180 180 nstarangle 2 mul sub sub neg rotate
- nstarside 0 rlineto
- 180 180 360 nn div sub nstarangle 2 mul sub sub rotate
- } repeat
- 90 nstarangle 2 div add rotate
- closepath
-} def
-
-/nstarangle {180 360 nn div sub 3 div} def
-/nstarside {
- 2
- radius
- 1
- 180 nn div
- sin
- div
- div
- mul
- nstarangle sin
- mul
- 180
- nstarangle 2 mul
- sub
- sin
- div
-} def
-
-/nside {
- 2
- radius
- 360 nn div 2 div tan
- mul
- mul
-} def
-
-
-/tan { /alpha exch def
- alpha sin
- 1 alpha sin dup mul sub sqrt
- div
-} def
-
-
-/pastel {
- /backbright high def
- /backsat medlow def
- /fillbright high def
- /fillsat medlow def
- /eobright high def
- /eosat medlow def
- constroke 0 eq {
- /strokebright high def
- /strokesat medlow def
- }
- {
- /strokebright low def
- /strokesat high def
- } ifelse
-} def
-
-/jewel {
- /fillbright med def
- /fillsat high def
- /backbright med def
- /backsat high def
- /eobright med def
- /eosat high def
- constroke 0 eq {
- /strokebright medlow def
- /strokesat high def
- }
- {
- /strokebright high def
- /strokesat medlow def
- } ifelse
-} def
-
-/vivid {
- /fillsat 1 def
- /fillbright high def
- /eosat 1 def
- /eobright high def
- /backsat 1 def
- /backbright high def
- constroke 0 eq {
- /strokesat 1 def
- /strokebright high def
- }
- {
- /strokesat high def
- /strokebright medlow def
- } ifelse
-} def
-
-/free {
- /fillsat anyrand def
- /fillbright anyrand def
- /eosat anyrand def
- /eobright anyrand def
- /backsat anyrand def
- /backbright anyrand def
- /strokesat anyrand def
- /strokebright anyrand def
-} def
-
-/contrast {
- /sat medhigh def
- /bright rand 2 mod 0 eq {medhigh} {medlow} ifelse def
- /backsat sat def
- /backbright bright def
- /eosat sat def
- /eobright 1 bright sub def
- /fillsat sat def
- /fillbright bright def
- /strokebright rand 2 mod def
- /strokesat rand 2 mod def
-
-} def
-/medium {
- /backsat med def
- /backbright med def
- /eosat med def
- /eobright med def
- /fillsat med def
- /fillbright med def
- /strokebright med def
- /strokesat med def
-
-} def
-/intense {
- /backsat high def
- /backbright med def
- /eosat high def
- /eobright high def
- /fillsat high def
- /fillbright med def
- /strokebright high def
- /strokesat high def
-
-} def
-/orig {
- /backsat rand 99 mod 55 add 100 div def
- /backbright rand 99 mod 35 add 100 div def
- /eosat rand 77 mod 22 add 100 div def
- /eobright 90 rand 75 mod sub 15 add 100 div def
- /fillsat 100 rand 90 mod sub 100 div def
- /fillbright 100 rand 45 mod sub 20 add 100 div def
- /strokebright 100 rand 55 mod sub 100 div def
- /strokesat 100 rand 85 mod sub 100 div def
-
-} def
-
-/medjewel {
- /alt rand 2 mod def
- /backsat alt 0 eq {high} { med} ifelse def
- /fillsat alt 0 eq {med} {high} ifelse def
- /eosat alt 0 eq {high} {med} ifelse def
- /backbright med def
- /fillbright med def
- /eobright med def
- constroke 0 eq {
- /strokebright medlow def
- /strokesat high def
- }
- {
- /strokebright high def
- /strokesat medlow def
- } ifelse
-} def
-
-/medvivid {
- /alt rand 2 mod def
- /backsat alt 0 eq {1} { med} ifelse def
- /fillsat alt 0 eq {med} {1} ifelse def
- /eosat alt 0 eq {1} {med} ifelse def
- /backbright alt 0 eq {high} {med} ifelse def
- /eobright alt 0 eq {high} {med} ifelse def
- /fillbright alt 0 eq {med} {high} ifelse def
- constroke 0 eq {
- /strokesat 1 def
- /strokebright high def
- }
- {
- /strokesat high def
- /strokebright medlow def
- } ifelse
-} def
-/vivpastel {
- /backlight rand 2 mod def
- /backsat backlight 0 eq {medlow} {1} ifelse def
- /eosat backlight 0 eq {medlow} {1} ifelse def
- /fillsat backlight 0 eq {1} {medlow} ifelse def
- /fillbright high def
- /backbright high def
- /eobright high def
- constroke 0 eq {
- /strokesat 1 def
- /strokebright high def
- }
- {
- /strokesat high def
- /strokebright medlow def
- } ifelse
-} def
-
-/medpastel {
- /alt rand 2 mod def
- /backsat alt 0 eq {medlow} {med} ifelse def
- /eosat alt 0 eq {medlow} {med} ifelse def
- /fillsat alt 0 eq {med} {medlow} ifelse def
- /fillbright alt 0 eq { high } {med} ifelse def
- /backbright alt 0 eq {med} { high } ifelse def
- /eobright alt 0 eq {med} { high } ifelse def
- constroke 0 eq {
- /strokebright high def
- /strokesat medlow def
- }
- {
- /strokebright low def
- /strokesat high def
- } ifelse
-} def
-
-/maxcon {
- rand 2 mod 1 eq {
- /backsat 0 def
- /backbright 0 def
- /eosat 0 def
- /eobright 0 def
- /fillsat 0 def
- /fillbright 1 def
- /strokebright 1 def
- /strokesat 0 def
- }
- {
- /backsat 0 def
- /backbright 1 def
- /eosat 0 def
- /eobright 1 def
- /fillsat 0 def
- /fillbright 0 def
- /strokebright 0 def
- /strokesat 0 def
- }
- ifelse
-} def
-
-/monochrome {
- /fillhue hue closevary def
- /strokehue hue closevary def
- /eohue hue closevary def
- /backhue hue def
-} def
-
-/blackandwhite {
- /fillhue 1 def
- /eohue 0 def
- /backhue 0 def
- /strokehue 1 def
-} def
-
-
-/freecolor {
- /fillhue anyrand def
- /strokehue anyrand def
- /eohue anyrand def
- /backhue anyrand def
-} def
-
-/purple {
- /fillhue rand 15 mod 80 add 100 div def
- /backhue rand 15 mod 80 add 100 div def
- /strokehue rand 15 mod 80 add 100 div def
- /eohue rand 15 mod 80 add 100 div def
- /backhue rand 15 mod 80 add 100 div def
-} def
-
-/comptwo {
- /fillhue hue closevary def
- /strokehue hue .5 add dup 1 gt {1 sub} if def
- /backhue strokehue def
- /eohue strokehue closevary def
-} def
-
-/compthree {
- /backhue hue def
- /strokehue hue 1 3 div add dup 1 gt {1 sub} if closevary def
- /fillhue strokehue closevary def
- /eohue hue 1 3 div sub dup 1 lt { 1 add} if closevary def
-} def
-
-/origcolor {
- /backhue hue def
- /strokehue
- hue 1000 mul cvi 3 mod dup 1 eq
- {hue closevary}
- {2 eq
- {rand 999 mod 1000 div}
- {hue .5 add dup 1 gt {1 sub} if }
- ifelse
- }
- ifelse def
- /fillhue hue 1000 mul cvi 3 mod dup 1 eq
- {hue closevary}
- {2 eq
- {rand 999 mod 1000 div}
- {hue .5 add dup 1 gt {1 sub} if }
- ifelse
- }
- ifelse
- def
- /eohue hue 1000 mul cvi 2 mod 1 eq
- {hue closevary}
- {rand 999 mod 1000 div}
- ifelse def
-} def
-
-/harmtwo {
- /fillhue hue closevary def
- /backhue hue def
- /strokehue hue .2 add dup 1 gt {1 sub} if closevary def
- /eohue strokehue closevary def
-} def
-
-/harmfour {
- /fillhue hue closevary def
- /backhue hue .1 add dup 1 gt {1 sub} if def
- /strokehue hue .2 add dup 1 gt {1 sub} if closevary def
- /eohue hue .1 sub dup 1 lt {1 add} if closevary def
-} def
-
-/closeharm {
- /fillhue hue def
- /backhue hue .05 add dup 1 gt {1 sub} if closevary def
- /strokehue hue .1 add dup 1 gt {1 sub} if closevary def
- /eohue hue .05 sub dup 0 lt {1 add} if closevary def
-} def
-
-
-/high {100 rand 25 mod sub 100 div } def
-/med { rand 33 mod 33 add 100 div } def
-/medhigh {100 rand 50 mod sub 100 div } def
-/medlow {rand 50 mod 100 div } def
-/low { rand 25 mod 100 div} def
-/anyrand { rand 100 mod 100 div } def
-/closevary {rand 70 mod rand 100 mod sub 1000 div add} def
-
-%rainbow
-% {/colorfill {fillhue 1 1 sethsbcolor fill} def}
- /colorfill {fillhue fillsat fillbright sethsbcolor fill } def
-%ifelse
-/colorstroke {strokehue strokesat strokebright sethsbcolor stroke } def
-/eocolorfill {eohue eosat eobright sethsbcolor eofill } def
-/backfill{ backhue backsat backbright sethsbcolor fill } def
-
-/xstep { xrange xtimes 1 sub div x 1 sub mul } def
-/ystep { yrange ytimes 1 sub div y 1 sub mul} def
-
-/functionarray [
- {sin abs}
- {sin }
- {cos }
- {cos abs}
- {sin dup mul }
- {cos dup mul }
- {sin abs sqrt }
- {cos abs sqrt }
-] def
-
-/range { /top exch def /bottom exch def /number exch def
-% number is between -1 and 1
- /rangesize top bottom sub def
- number 1 add 2 div
- % number is now between 0 and 1
- rangesize mul
- bottom add
- } def
-
-/drawone {
- /radius
- width height lt {width 3 div} {height 3 div} ifelse
- def
- seed srand
- 0 0 moveto
- /origmatrix [ 0 0 0 0 0 0 ] currentmatrix def
- [ % xstep function ystep function2 add .4 1.3 range
- 1
- ystep function xstep function add -.25 .25 range
- ystep function3 xstep function2 add -.5 .5 range
-% xstep function4 ystep function mul .4 1.3 range
- 1
- 0
- 0
- ]
- concat
- twist {twistdeg rotate} if
- part colorfill
- origmatrix setmatrix
- rainbow
- {/fillhue fillhue rainrange xtimes ytimes mul div add dup 1 gt {1 sub} if def}
- if
-
-} def
-
-/notdrawone {
- seed srand
- twist {/twistdeg rand 360 mod def} if
- nnrand {/nn rand 6 mod 3 add def} if
- /x1 rand width 3 div cvi mod width 8 div add def
- /y1 rand height 3 div cvi mod height 8 div add def
- rand 3 mod dup 1 eq
- {pop /x2 rand width 2 div cvi mod def
- /y2 rand height 2 div cvi mod def}
- { 2 eq
- {/x2 y1 def /y2 x1 def}
- {/x2 y1 width mul height div def /y2 x1 height mul width div def}
- ifelse
- }
- ifelse
- /radius width height gt {width} {height} ifelse 2.5 div def
- /stripe rand width 10 div cvi mod 2 add def
- starcompensate { /stripe stripe 2 mul def /radius radius 10 nn div mul def } if
- /i 1 def
- /repeats radius stripe div cvi 1 add def
- /nnincr 1 def
- repeats {
- colorvary {colorfam colorway} if
- /i i 1 add def
- /radius radius stripe sub def
-
- } repeat
-} def
-
-
-/page {
- clippath pathbbox /ury exch def /urx exch def /lly exch def /llx exch
-def
-/pagewidth urx llx sub def
-/pageheight ury lly sub def
-0 0 moveto
- llx lly translate
- /outerwidth
- pagewidth inwidth div
- def
- /outerheight
- pageheight inheight div
- def
- /width
- outerwidth xtimes div
- def
- /height
- outerheight ytimes div
- def
-
-
-
- /size
- width height gt {width} {height} ifelse
- def
- inwidth {
- inheight {
-
- /seed rand def
- /hue rand 999 mod 1000 div def
- colorway colorfam
- /x 1 def /y 1 def
- nnrand {/nn rand 6 mod 3 add def} if
- /twistdeg rand 360 mod def
-
- /function functionarray rand functionarray length mod get def
- /function2 functionarray rand functionarray length mod get def
- /function3 functionarray rand functionarray length mod get def
- /function4 functionarray rand functionarray length mod get def
-
-/xrange [ 90 180 270 360 180 360 ] rand 6 mod get def
-/yrange [ 90 180 270 360 180 360 ] rand 6 mod get def
- initclip
- newpath
- 0 0 moveto
- outerwidth 0 rlineto
- 0 outerheight rlineto
- outerwidth neg 0 rlineto
- backfill
-
- xtimes {
- ytimes{
- /y y 1 add def
- width 2 div height 2 div translate
- drawone
- width 2 div neg height 2 div neg translate
- 0 height translate
- } repeat
-
- /y 1 def
- /x x 1 add def
- width height ytimes mul neg translate
-
- } repeat
-
- width xtimes mul neg outerheight translate
- } repeat
- outerwidth outerheight inheight mul neg translate
- } repeat
-
- } def
-
-page showpage
-clear cleardictstack
-vasarelysave restore
diff --git a/Master/xemtex/doc/ghostscript/examples/waterfal.ps b/Master/xemtex/doc/ghostscript/examples/waterfal.ps
deleted file mode 100644
index 0236f8f06a2..00000000000
--- a/Master/xemtex/doc/ghostscript/examples/waterfal.ps
+++ /dev/null
@@ -1,80 +0,0 @@
-%!
-/waterfalsave save def % prevent residual side effects
-% Copyright (C) 1992, 1993, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: waterfal.ps,v 1.3.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% waterfal.ps
-% This file produces a 'waterfall' printout of fonts at various sizes.
-
-
-% Specify any desired set of up to 3 fonts here.
-/Fonts [/Courier /Helvetica] def
-
-% Specify any desired set of point sizes here.
-% The sum of the sizes should not exceed (roughly) 100.
-% For sizes larger than about 16, some characters may fall off the page.
-/Sizes [6 7 8 9 10 11 12 14 16] def
-
-/eol
- { currentfont /FontBBox get aload pop
- exch pop sub exch pop 0 exch
- % Many Ghostscript fonts have incorrect FontBBoxes....
- pop -1000
- 1.15 mul currentfont /FontMatrix get dtransform
- translate
- 0 0 moveto
- } def
-
-(landscap.ps) runlibfile
-clippath pathbbox newpath
-/ury exch def /urx exch def /lly exch def /llx exch def
-llx 18 add ury 18 sub translate
-% Read the current Y resolution without using Ghostscript-specific operators.
-gsave initmatrix 0 72 dtransform abs exch abs exch .max grestore
-round cvi /dpi exch def
-QUIET not
- { (Creating waterfall printout at ) print dpi =only ( DPI.\n) print flush
- }
-if
-
-newpath 0 setgray
-/Courier findfont 20 scalefont setfont
-
-Fonts
- { save exch
- QUIET not { dup ==only flush } if
- findfont /basefont exch def
- basefont 20 scalefont setfont eol
- basefont /FontName get =string cvs show
- ( ) show dpi =string cvs show ( DPI) show
- Sizes
- { QUIET not { ( ) print dup =only flush } if
- dup /size exch def basefont exch scalefont setfont eol
- size =string cvs show ( ) show
- (qwertyuiop-asdfghjkl_zxcvbnm ) show
- (QWERTYUIOP+ASDFGHJKL/ZXCVBNM ) show
- (1470258369 .,:;?!) show
- } forall
- QUIET not { () = flush } if
- matrix currentmatrix aload pop
- 7 -1 roll restore
- 6 array astore setmatrix
- } forall
-
-showpage
-clear cleardictstack
-waterfalsave restore
diff --git a/Master/xemtex/doc/ghostscript/gs-vms.hlp b/Master/xemtex/doc/ghostscript/gs-vms.hlp
deleted file mode 100644
index 9156b6af303..00000000000
--- a/Master/xemtex/doc/ghostscript/gs-vms.hlp
+++ /dev/null
@@ -1,293 +0,0 @@
-1 gs
- gs - GNU Ghostscript interpreter/previewer
-! $Id: gs-vms.hlp,v 1.12.2.10.2.5 2003/05/17 14:39:00 giles Exp $
-! Ghostscript version 7.07, 17 May 2003
- Usage:
- $ gs [options] [file ...]
-
- Ghostscript is an implementation of Adobe Systems' PostScript (tm)
- and Portable Document Format (PDF) languages. Gs reads files in sequence
- and executes them as Ghostscript programs. After doing this, it reads
- further input from the standard input stream (normally the keyboard).
- Each line is interpreted separately. To exit from the interpreter,
- enter the `quit' command. The interpreter also exits gracefully if it
- encounters end-of-file. Typing the interrupt character (e.g. Control-C)
- is also safe.
-
-2 Description
- The interpreter recognizes several switches described below, which
- may appear anywhere in the command line and apply to all files
- thereafter.
-
- You can get a help message by invoking Ghostscript with the -h
- or -? option. This message also lists the available devices.
-
- Ghostscript may be built with multiple output devices. Ghostscript
- normally opens the first one and directs output to it. To use
- device xyz as the initial output device, include the switch
- "-sDEVICE=xyz"
- in the command line. Note that this switch must precede the first
- .ps file, and only its first invocation has any effect. For example,
- for printer output in a normal configuration that includes an Epson
- printer driver, you might use the command
- gs "-sDEVICE=epson" myfile.ps
- instead of just
- gs myfile.ps
- Alternatively, you can type
- (epson) selectdevice
- (myfile.ps) run
- All output then goes to the printer instead of the display until
- further notice. You can switch devices at any time by using the
- selectdevice procedure, e.g.,
- (vga) selectdevice
- or
- (epson) selectdevice
- As yet a third alternative, you can define a logical name GS_DEVICE
- as the desired default device name. The order of precedence for these
- alternatives, highest to lowest, is:
- selectdevice
- (command line)
- GS_DEVICE
- (first device in build list)
-
- To select the density on a printer, use
- gs "-sDEVICE=<device>" -r<xres>x<yres>
- For example, on a 9-pin Epson-compatible printer, you can get the
- lowest-density (fastest) mode with
- gs "-sDEVICE=epson" -r60x72
- and the highest-density mode with
- gs "-sDEVICE=epson" -r240x72.
-
- If you select a printer as the output device, Ghostscript also
- allows you to control where the device sends its output. Normally,
- output goes directly to a scratch file on Unix and VMS systems. To
- send the output to a series of files foo1.xyz, foo2.xyz, ..., use
- the switch
- "-sOutputFile=foo%d.xyz"
- The %d is a printf format specification; you can use other formats
- like %02d. Each file will receive one page of output. Alternatively,
- to send the output to a single file foo.xyz, with all the pages con-
- catenated, use the switch
- "-sOutputFile=foo.xyz"
-
- To find out what devices are available, type
- devicenames ==
- after starting up Ghostscript. Alternatively, you can use the -h or -?
- switch in the command line; the help message also lists the available
- devices.
-
- To select a different paper size, use the command line switch
- "-sPAPERSIZE=a_known_paper_size"
- e.g.,
- "-sPAPERSIZE=a4"
- or
- "-sPAPERSIZE=legal"
-
- As of this printing, the known paper sizes, defined in gs_statd.ps, are:
-
- PAPERSIZE X" Y" X cm Y cm
- ____________________________________________________
- 11x17 11" 17" 27.94 43.18
- a0 33.0556" 46.7778" 83.9611 118.816
- a10 1.02778" 1.45833" 2.61056 3.70417
- a1 23.3889" 33.0556" 59.4078 83.9611
- a2 16.5278" 23.3889" 41.9806 59.4078
- a3 11.6944" 16.5278" 29.7039 41.9806
- a4 8.26389" 11.6944" 20.9903 29.7039
- a5 5.84722" 8.26389" 14.8519 20.9903
- a6 4.125" 5.84722" 10.4775 14.8519
- a7 2.91667" 4.125" 7.40833 10.4775
- a8 2.05556" 2.91667" 5.22111 7.40833
- a9 1.45833" 2.05556" 3.70417 5.22111
- archA 9" 12" 22.86 30.48
- archB 12" 18" 30.48 45.72
- archC 18" 24" 45.72 60.96
- archD 24" 36" 60.96 91.44
- archE 36" 48" 91.44 121.92
- b0 39.3889" 55.6667" 100.048 141.393
- b1 27.8333" 39.3889" 70.6967 100.048
- b2 19.6944" 27.8333" 50.0239 70.6967
- b3 13.9167" 19.6944" 35.3483 50.0239
- b4 9.84722" 13.9167" 25.0119 35.3483
- b5 6.95833" 9.84722" 17.6742 25.0119
- flsa 8.5" 13" 21.59 33.02
- flse 8.5" 13" 21.59 33.02
- halfletter 5.5" 8.5" 13.97 21.59
- ledger 17" 11" 43.18 27.94
- legal 8.5" 14" 21.59 35.56
- letter 8.5" 11" 21.59 27.94
- note 7.5" 10" 19.05 25.4
-
- Note that the B paper sizes are ISO sizes: for information about using
- JIS B sizes, see `Use.htm'.
-
-2 Initialization_files
- When looking for the initialization files (gs_*.ps), the files related
- to fonts, or the file for the `run' operator, Ghostscript first tries
- opening the file with the name as given (i.e., using the current
- working directory if none is specified). If this fails, and the file
- name doesn't specify an explicit directory or drive, Ghostscript will
- try directories in the following order:
-
- 1. The directory/ies specified by the -I switch(es) in the command
- line (see below), if any;
- 2. The directory/ies specified by the GS_LIB logical, if any;
- 3. The directory/ies specified by the GS_LIB_DEFAULT macro in the
- Ghostscript makefile.
-
- Each of these (GS_LIB_DEFAULT, GS_LIB, and -I parameter) may be either
- a single directory, or a list of directories separated by a `:'.
-
-2 X_resources
- Ghostscript looks for the following resources under the program name
- `Ghostscript':
-
- borderWidth
- The border width in pixels (default = 1).
-
- borderColor
- The name of the border color (default = black).
-
- geometry
- The window size and placement, WxH+X+Y (default is NULL).
-
- xResolution
- The number of x pixels per inch (default is computed from
- WidthOfScreen and WidthMMOfScreen).
-
- yResolution
- The number of y pixels per inch (default is computed from
- HeightOfScreen and HeightMMOfScreen).
-
- useBackingPixmap
- Determines whether backing store is to be used for saving display
- window (default = true).
-
- See the file `Use.htm' for a more complete list of resources.
-
- To set these resources, put them in a file (such as
- SYS$Login:ghostscript.dat) in the following form:
-
- Ghostscript*geometry: 612x792-0+0
- Ghostscript*xResolution: 72
- Ghostscript*yResolution: 72
-
-2 Options
- Note that VMS will convert all command line arguments to lower case
- if they are not within quotes. Therefore, if a certain command does
- not work, try again but with quotes around it.
-
- -- filename arg1 ...
- Takes the next argument as a file name as usual, but takes all
- remaining arguments (even if they have the syntactic form of switches)
- and defines the name ARGUMENTS in userdict (not systemdict) as an
- array of those strings, before running the file. When Ghostscript
- finishes executing the file, it exits.
-
- -Dname=token
- -dname=token
- Define a name in systemdict with the given definition. The token must
- be exactly one token (as defined by the `token' operator) and must not
- contain any whitespace.
-
- -Dname
- -dname
- Define a name in systemdict with value=null.
-
- -Sname=string
- -sname=string
- Define a name in systemdict with a given string as value. This is
- different from -d. For example, -dname=35 is equivalent to the
- program fragment
- /name 35 def
- whereas -sname=35 is equivalent to
- /name (35) def
-
- -q
- Quiet startup - suppress normal startup messages, and also do the
- equivalent of -dQUIET.
-
- -gnumber1Xnumber2
- Equivalent to -dDEVICEWIDTH=number1 and -dDEVICEHEIGHT=number2. This is
- for the benefit of devices (such as X11 windows) that require (or allow)
- width and height to be specified.
-
- -rnumber
- -rnumber1Xnumber2
- Equivalent to -dDEVICEXRESOLUTION=number1 and -dDEVICEYRESOLUTION=number2
- This is for the benefit of devices (such as printers) that support
- multiple X and Y resolutions. (If only one number is given, it is used
- for both X and Y resolutions.)
-
- -Idirectories
- Adds the designated list of directories at the head of the search path
- for library files.
-
- Note that gs_init.ps makes systemdict read-only, so the values of names
- defined with -D/d/S/s cannot be changed (although, of course, they can
- be superseded by definitions in userdict or other dictionaries.)
-
-2 Special_names
-
- -dDISKFONTS
- Causes individual character outlines to be loaded from the disk the
- first time they are encountered. (Normally Ghostscript loads all the
- character outlines when it loads a font.) This may allow loading more
- fonts into RAM, at the expense of slower rendering.
-
- -dNOCACHE
- Disables character caching. Only useful for debugging.
-
- -dNOBIND
- Disables the `bind' operator. Only useful for debugging.
-
- -dNODISPLAY
- Suppresses the normal initialization of the output device. This may be
- useful when debugging.
-
- -dNOPAUSE
- Disables the prompt and pause at the end of each page. This may be
- desirable for applications where another program is `driving'
- Ghostscript.
-
- -dNOPLATFONTS
- Disables the use of fonts supplied by the underlying platform (e.g.
- X Windows). This may be needed if the platform fonts look undesirably
- different from the scalable fonts.
-
- -dSAFER
- Disables the deletefile and renamefile operators, and the ability to
- open files in any mode other than read-only. This may be desirable
- for spoolers or other sensitive environments.
-
- -dWRITESYSTEMDICT
- Leaves systemdict writable. This is necessary when running special
- utility programs such as font2c and pcharstr, which must bypass normal
- PostScript access protection.
-
- -sDEVICE=device
- Selects an alternate initial output device, as described above.
-
- -sOutputFile=filename
- Selects an alternate output file for the initial output device, as
- described above.
-
-2 Files
-!!! Change
- GS_Root:[Ghostscript.gs4_0]
- Startup-files, utilities, and basic font definitions.
-
- GS_Root:[Ghostscript.Fonts4_0]
- Additional font definitions.
-
- GS_Root:[Ghostscript.gs4_0.Examples]
- Demo Ghostscript files.
-
- GS_Root:[Ghostscript.gs4_0.Doc]
- Assorted document files.
-!!! Change
-2 See_also
- The various Ghostscript document files (above).
-
-2 Bugs
- See the network news group comp.lang.postscript.
diff --git a/Master/xemtex/doc/ghostscript/gs.css b/Master/xemtex/doc/ghostscript/gs.css
deleted file mode 100644
index d59976ed00e..00000000000
--- a/Master/xemtex/doc/ghostscript/gs.css
+++ /dev/null
@@ -1,73 +0,0 @@
-/* This is the default Ghostscript stylesheet */
-
-body
-{
- color: black;
- background-color: white;
-}
-
-h1,h2,h3,h4,h5,h6
-{
- font-family: sans-serif;
-}
-
-/* This needs a patched html file else you have it all over the place */
-/* we only want this for the "visual header" at the page top */
-h1
-{
- text-align: center;
- background-color: #CCCC00;
-}
-
-/* Number the h2/h3 -- doesn't work on v4/5 browsers */
-h2
-{
- counter-increment: h2-count;
- counter-reset: h3-count;
-}
-
-h2:before
-{
- content: counter(h2-count) " ";
-}
-
-h3
-{
- counter-increment: h3-count;
-}
-
-h3:before
-{
- content: counter(h2-count) "." counter(h3-count) " ";
-
-}
-
-tt
-{
- color: rgb(40%,24%,24%);
-}
-
-a > tt, a > b > tt
-{
- color: blue;
-}
-
-a
-{
- color: blue;
-}
-
-a.offsite
-{
- font-style: oblique;
-}
-
-a:visited
-{
- color: rgb(60%,0%,30%);
-}
-
-a:hover, a:active, a:focus
-{
- background: #FFFFAA;
-}
diff --git a/Master/xemtex/doc/ghostscript/gsdoc.el b/Master/xemtex/doc/ghostscript/gsdoc.el
deleted file mode 100644
index 76be2c15fe4..00000000000
--- a/Master/xemtex/doc/ghostscript/gsdoc.el
+++ /dev/null
@@ -1,701 +0,0 @@
-;; gsdoc.el
-;;
-;; GNU emacs (19.34) functions to help working with the HTML form of
-;; Ghostscript documentation.
-;;
-;; Pete Kaiser 8 September 1998 V1.2
-;; 2 December 1999 V1.3 Correct improper "--" to "=="
-;; in HTML marker comments
-;;============================================================
-;; One global key setting, which runs the function to bind some keys
-;; locally -- presumably in a buffer containing HTML code. Plus that
-;; function itself.
-
-(global-set-key [?\C-\S-k] 'gskeys)
-
-(defun gskeys ()
-
-"Set the keys in this buffer to use with Ghostscript HTML docs."
-
-(interactive)
-(local-set-key [?\C-\S-b] 'gs-bold)
-(local-set-key [?\C-\S-c] 'gs-code)
-(local-set-key [?\C-\S-e] 'gs-emphatic)
-(local-set-key [?\C-\S-g] 'gs-get-anchor)
-(local-set-key [?\C-\S-h] 'gs-href)
-(local-set-key [?\C-\S-i] 'gs-italic)
-(local-set-key [?\C-\S-m] 'gs-mailto)
-(local-set-key [?\C-\S-n] 'gs-name)
-(local-set-key [?\C-\S-p] 'gs-put-anchor)
-(local-set-key [?\C-\S-q] 'gs-quote)
-(local-set-key [?\C-\S-r] 'gs-row-of-table)
-(local-set-key [?\C-\S-s] 'gs-selfref)
-(local-set-key [?\C-\S-t] 'gs-table)
-(local-set-key [?\C-\S-u] 'gs-tag)
-(local-set-key [?\C-\S-x] 'gs-example)
-)
-
-;;============================================================
-;; Each of these next few functions just wraps a region in a
-;; <TAG>...</TAG>, or two nested tags. Where there are two, the first one
-;; is inner. See the inner function ~gsregion.
-
-(defun gs-bold () "Make text strong (bold)."
-(interactive)
-(~gsregion "b"))
-
-(defun gs-code () "Make text strong code (bold TT)."
-(interactive)
-(~gsregion "tt")
-(~gsregion "b"))
-
-(defun gs-emphatic () "Make text emphatic (bold italic)."
-(interactive)
-(~gsregion "em")
-(~gsregion "b"))
-
-(defun gs-italic () "Make text italic."
-(interactive)
-(~gsregion "em"))
-
-;;============================================================
-
-(defun gs-quote ()
-
-"Indent a region with BLOCKQUOTE and separate it with empty lines from
-surrounding text."
-
-(interactive)
-
-(save-restriction (narrow-to-region (region-beginning) (region-end))
- (goto-char (point-min)) (insert "\n\n")
- (push-mark (1+ (point-min)) t)
- (goto-char (point-max))
- (~gsregion "blockquote")
- (insert "\n\n")
- )
-)
-
-;;============================================================
-
-(defun gs-example ()
-
-"Make an indented literatim example BLOCKQUOTE PRE and separate it with
-empty lines from surrounding text."
-
-(interactive)
-
-(save-restriction (narrow-to-region (region-beginning) (region-end))
- (goto-char (point-min)) (insert "\n")
- (push-mark (point-min) t)
- (goto-char (point-max))
- (~gsregion "pre")
- (~gsregion "blockquote")
- (insert "\n")
- )
-)
-
-;;============================================================
-
-(defun gs-get-anchor ()
-
-"Beginning at the head of this line, pick up the next anchor name for later
-use along with its HTML file name. This is useful when picking up an
-anchor name from a file in one buffer and using it in another buffer
-containing a different file."
-
-(interactive)
-
-;; From the beginning of this line find and pick up the next non-empty
-;; anchor, which might, of course not be right here -- though that's how it
-;; ought to be used, to pick up an anchor for immediate use. The regular
-;; expression picks up only the name itself.
-
-(beginning-of-line)
-(re-search-forward "<a name=\"?\\([^\">]+\\)\"?></a>" nil t)
-(setq gs-anchor (buffer-substring (match-beginning 1) (match-end 1)))
-
-;; Get the name of this buffer, treating it as the filename.
-
-(setq gs-anchor-file (buffer-name))
-)
-
-;;============================================================
-
-(defun gs-href ()
-
-"Wrap a region in an empty link and leave point in the middle of the
-emptiness to write the link. Maybe some day read the URL and put it
-there."
-
-(interactive)
-
-(save-restriction
- (narrow-to-region (region-beginning) (region-end))
- (goto-char (point-min)) (insert "<a href=\"#\">")
- (setq HREF (- (point) 2))
- (goto-char (point-max)) (insert "</a>")
- (goto-char HREF)
- )
-)
-
-;;============================================================
-
-(defun gs-mailto ()
-
-"Turn an address into a proper \"mailto:\" visually bracketed with <>."
-
-(interactive)
-
-(save-restriction
- (narrow-to-region (region-beginning) (region-end))
- (setq gs-address (buffer-substring (point-min) (point-max)))
- (goto-char (point-min)) (insert "&lt;<a href=\"mailto:")
- (goto-char (point-max)) (insert "\">" gs-address "</a>&gt;")
- )
-)
-
-;;============================================================
-
-(defun gs-tag (Tag)
-
-"Bracket a region with some arbitrary tag read from the minibuffer, leaving
-point right after the opening word of the opening tag, and the end of the
-region at the end of the closing tag. Leaving point there makes it
-possible, for instance, to enter additional matter in a <FONT> tag. Get to
-the end of a region with ^x-^x."
-
-(interactive "*sTag: ")
-
- (~gsregion Tag)
- (exchange-point-and-mark) (forward-word 1)
-)
-
-;;============================================================
-
-(defun gs-toc ()
-
-"[Re]build the table of contents by picking up all the <Hn> lines and
-converting them to properly indented <UL> entries, placing the TOC within
-the standard TOC markers. Note that several of the original Ghostscript
-HTML files have hand-modified TOCs, so it's wise to check before running
-this function. It can be run from anywhere within the HTML file.
-
-This function relies on the specific format of the structure comments for
-the table of contents, which are set by the g~marker function used in
-defvars run when this package is loaded."
-
-(interactive)
-
-(setq g~html-buffer (buffer-name))
-
-(save-restriction (save-excursion
- (widen)
-
-;; Since we're building the TOC, delete any current TOC. Locate the place
-;; for the TOC using the standard markers, deleting everything between the
-;; TOC-beginning and TOC-end markers. The new TOC is built entirely in the
-;; work buffer before being copied into the HTML buffer at that point.
-
- (goto-char (point-min))
- (search-forward g~toc-begin nil t)
- (next-line 1) (beginning-of-line) (setq g~toc-insert (point))
- (search-forward g~toc-end nil t)
- (beginning-of-line) (delete-region g~toc-insert (point))
-
-;; Empty the work buffer by copying nothing into it.
-
- (copy-to-buffer gs-work-buffer 1 1)
-
-;; Now collect all the following header lines into a buffer to work on
-;; them. The later append-to-buffer needs point to be in the middle of the
-;; empty list, so go there before entering the work buffer.
-
- (save-excursion (while (re-search-forward "^<h[1-6][^>]*>" nil t)
- (beginning-of-line) (setq BOH (point))
- (re-search-forward "</h[1-6]>\n" nil t)
- (append-to-buffer gs-work-buffer BOH (point))
- ))
- (goto-char g~toc-insert)
-
-;; All the useful header lines should be in the work buffer now.
-
- (save-excursion
- (set-buffer gs-work-buffer)
-
-;; Formatting as list entries: insert <ul> when the level deepens and </ul>
-;; when it rises.
-
- (goto-char (point-min))
- (while (search-forward "</a>" nil t) (replace-match ""))
- (goto-char (point-min))
- (while (re-search-forward "</h[1-6]>" nil t) (replace-match "</a>"))
- (goto-char (point-min))
- (while (re-search-forward "<a name=\"" nil t) (replace-match "<a href=\"#"))
-
-;; Change <h[1-6]> to <li>, inserting <ul>...</ul> as needed. Pick up the
-;; upmost level from the first header, usually <h1>, and save a copy to
-;; use to insert any terminating </ul>.
-
- (goto-char (point-min))
- (re-search-forward "^<h\\([1-6]\\)[^>]*>" nil t)
- (setq First (string-to-number
- (buffer-substring (match-beginning 1) (match-end 1))))
- (setq Previous First)
- (replace-match "<li>" t t)
-
-;; Got the first one, now handle the rest.
-
- (while (re-search-forward "^<h\\([1-6]\\)[^>]*>" nil t)
- (setq This (string-to-number
- (buffer-substring (match-beginning 1) (match-end 1))))
- (setq Hold This)
- (replace-match "<li>" t t) (beginning-of-line)
-
-;; No point being too fancy with conditionals: the "while" statements here
-;; make at most one logically unnecessary test.
-
- (while (> This Previous) (insert "<ul>\n") (setq This (1- This)))
- (while (< This Previous) (insert "</ul>\n") (setq This (1+ This)))
- (setq Previous Hold)
- )
-
-;; Done with the loop. Clean up by inserting at the end any </ul> needed
-;; to get back to the top level.
-
- (goto-char (point-max))
- (while (> Previous First) (insert "</ul>\n") (setq Previous (1- Previous)))
-
-;; Finally add the trailing whitespace and leading whitespace and header line.
-
- (insert "</ul></blockquote>\n\n")
- (goto-char (point-min))
- (insert "\n<h2>Table of contents</h2>\n\n<blockquote><ul>\n")
-
-;; The TOC is now entirely built in the work buffer. Move it to where it's
-;; supposed to be in the original buffer.
-
- (append-to-buffer g~html-buffer (point-min) (point-max))
- )
- ))
-)
-
-;;============================================================
-
-(defun gs-name ()
-
-"Insert a name anchor at point and leave point ready to enter the anchor's
-name. Anchors are always empty (that is, <a name=...></a>)."
-
-(interactive)
-
-(insert "<a name=\"\"></a>")
-(backward-char 6)
-)
-
-;;============================================================
-
-(defun gs-put-anchor ()
-
-"Insert around the current region the last anchor picked up with
-gs-get-anchor. This includes the HTML file name if the href is put in a
-file other than the anchor."
-
-(interactive)
-
-(save-restriction
- (narrow-to-region (region-beginning) (region-end))
- (goto-char (point-min))
- (insert (concat
- "<a href=\""
-
-;; Insert the filename (buffer name) picked up by gs-get-anchor only if
-;; this is a different buffer.
-
- (if (string-equal gs-anchor-file (buffer-name)) "" gs-anchor-file)
-
-;; And finish unconditionally with the specific anchor name.
-
- "#" gs-anchor "\">"))
- (goto-char (point-max)) (insert "</a>"))
-)
-
-;;============================================================
-
-(defun gs-row-of-table ()
-
-"Set up a row of a table from the line containing point.
-
-Insert the right things at beginning and end, and in between convert tab
-and \"|\" into column breaks with a nonbreaking space in between -- which
-means that no entry can contain a tab or \"|\". Format the HTML nicely
-for readability.
-
-Between each two substantive columns this function puts a column containing
-a single nonbreaking space to provide a visual break. Generally in the
-first row of a table those columns should be given enough NBSPs to make
-the table look right on screen and when converted to text, but this has to
-be done by hand."
-
-(interactive)
-
-(save-restriction
- (end-of-line) (setq EOL (point))
- (beginning-of-line) (narrow-to-region (point) EOL)
- (insert "<tr valign=top>\t<td>")
- (while (re-search-forward "[|\t]" nil t)
- (replace-match "\n\t<td>&nbsp;\n\t<td>" t t))
- (goto-char (point-max))
- )
-(next-line 1) (beginning-of-line)
-)
-
-;;============================================================
-
-(defun gs-selfref ()
-
-"Wrap an URL to make it its own link. This is useful for links that should
-be visible when converted to text."
-
-(interactive)
-
-(save-restriction
- (narrow-to-region (region-beginning) (region-end))
- (goto-char (point-min))
- (if (not (looking-at "http:\\|ftp:")) (insert "http://"))
- (setq g~url (buffer-substring (point-min) (point-max)))
- (goto-char (point-min))
- (insert "<a href=\"")
- (goto-char (point-max)) (insert "\">" g~url "</a>")
- )
-)
-
-;;============================================================
-
-(defun gs-table ()
-
-"Set up an indented table around this region, leaving plenty of white space
-around the table within the HTML. The number of columns in the table is
-hardcoded here as 3, so that number must be changed by hand if the table
-has more than 3 columns. See gs-row-of-table for how rows are built: a
-table with N visible columns generally has 2N-1 HTML columns, including the
-columns that provide vertical white space."
-
-(interactive)
-
-(save-restriction
- (narrow-to-region (region-beginning) (region-end))
- (indent-rigidly (region-beginning) (region-end) -80)
- (goto-char (point-min))
- (insert (concat
- "\n\n<blockquote><table cellpadding=0 cellspacing=0>\n"
- "<tr><th colspan=3 bgcolor=\"#CCCC00\"><hr><font size=\"+1\">XXXXXXXXXX</font><hr>\n"
- "<tr valign=bottom>\n"
- "\t<th align=left>\n"
- "\t<td>&nbsp;&nbsp;\n"
- "\t<th align=left>\n"
- "<tr>\t<td colspan=3><hr>\n"
- ))
- (goto-char (point-max))
- (insert "</table></blockquote>\n")
- )
-)
-
-;;============================================================
-
-(defun gs-text-chars ()
-
-"Prepare text for inclusion in HTML by converting \"&\", \"<\", and \">\" into
-their HTML special forms. The function acts from point to end-of-region or
-end-of-buffer, whichever comes first.
-
-This function is NOT idempotent -- running it twice on the same text will
-certainly do the wrong thing, unless at first the text contained none of
-those characters."
-
-(interactive)
-(setq BEGIN (point))
-
-;; Replace significant characters: "&", "<", and ">".
-
-(while (search-forward "&" nil t) (replace-match "&amp;" t t))
-
-(goto-char BEGIN)
-(while (search-forward "<" nil t) (replace-match "&lt;" t t))
-
-(goto-char BEGIN)
-(while (search-forward ">" nil t) (replace-match "&gt;" t t))
-
-(goto-char BEGIN)
-)
-
-;;============================================================
-
-(defun gs-wrap-textfile ()
-
-"Prepare a text file for inclusion between <pre> and </pre>, then put a
-header and footer around it. One would generally run this function on a
-buffer containing only an original text file; it is how the original
-history and news files were first prepared. At this point it's likely to
-be most useful in preparing new sections for the news document."
-
-(interactive)
-
-(widen)
-
-;; First prepare the entire text by replacing special characters.
-
-(goto-char (point-min))
-(gs-text-chars)
-
-;; At the end of the file, end as-is text and add the standard footer.
-
-(goto-char (point-max))
-(backward-word 1) (next-line 1) (beginning-of-line)
-(delete-region (point) (point-max))
-(insert "\n</pre>\n")
-(insert-file "Footer.htm")
-
-;; At the beginning of the file, begin as-is text and delete everything
-;; up to the identity string (if any), saving the identity string.
-
-(goto-char (point-min))
-(insert "<pre>\n") (setq g~pre-point (point))
-(setq g~ID " [No pre-existing ID] ")
-(if (re-search-forward "^\\$Id:\\( [^ ]+ \\)\\$" nil t) (progn
- (setq g~ID (buffer-substring (match-beginning 1) (match-end 1)))
- (next-line 1) (beginning-of-line) (delete-region g~pre-point (point))
- ))
-
-;; Insert the standard header and fill in the identity string.
-
-(goto-char (point-min)) (insert-file "Header.htm")
-(goto-char (point-min)) (search-forward "<!--" nil t)
-(delete-horizontal-space) (insert g~ID)
-(search-forward "<pre>\n" nil t)
-)
-
-;;============================================================
-
-(defun ~gsregion (Tag)
-
-"Tag a region, leaving point at its end and the region around the whole
-thing including the new surrounding tags; thus invoking this function twice
-successively makes the first invocation the inner tags and the second the
-outer.
-
-Not intended for interactive use; for that use gs-tag, which gives a little
-bit of additional service."
-
-(interactive)
-
-(if (not (= 0 (length Tag))) (save-restriction
- (narrow-to-region (region-beginning) (region-end))
- (goto-char (point-min)) (insert "<" Tag ">")
- (goto-char (point-max)) (insert "</" Tag ">")
- (push-mark (point-min) t)
- (goto-char (point-max))
- )
- )
-)
-
-;;============================================================
-
-(defun gs-structure ()
-
-"For historical interest only: add structuring commentary to a Ghostscript
-HTML file. It's crude, but it did most of the work. Future files will
-acquire their structure through plagiarism, like any other code.
-
-Now they've all been structured, and this function was used to do it. The
-placement of table-of-contents lines never worked, because most of the
-files didn't yet have TOCS. Now all files that should have TOCs have
-properly placed markers, but that's history."
-
-(interactive)
-
-(setq g~thisfile (buffer-name))
-
-(widen)
-(goto-char (point-min))
-
-;; Replace the RCS $Id if one can be found in exactly the right format, and
-;; otherwise insert one just after the title, along with a warning message.
-
-(if (re-search-forward "<!-- $Id: *\\([^ ]*\\) $ -->" nil t)
- (progn
- (setq Original (buffer-substring (match-beginning 1) (match-end 1)))
- (replace-match g~thisfile t t nil 1)
- )
- (progn
- (search-forward "</title>" nil t) (end-of-line)
- (insert (concat "\n<!-- $Id: " g~thisfile " $ -->"))
- (setq Original "(UNSET by gs-structure)")
- )
- )
-
-(end-of-line)
-(insert (concat "\n<!-- Originally: " Original " -->"))
-
-;; Place the visible header marker immediately after <BODY>.
-
-(re-search-forward "<body[^>]*>" nil t)
- (end-of-line) (forward-char 1)
- (insert (concat g~header-begin "\n\n"))
-
-;; Place the headline marker before the first <table> block.
-
-(search-forward "<table" nil t) (search-backward "\n\n" nil t)
- (forward-word 1) (beginning-of-line)
- (insert (concat g~headline-begin "\n\n"))
-
-;; After the first table block place the end-headline marker and both
-;; table-of-contents markers, without worrying where the table of contents
-;; really is. The TOC markers can easily be moved by hand later.
-
-(search-forward "\n\n" nil t)
- (backward-word 1) (end-of-line) (forward-char 1)
- (insert (concat
- "\n"
- g~headline-end "\n\n"
- g~toc-begin "\n\n"
- g~toc-end "\n\n"))
-
-;; The hints section begins with the first paragraph after where the TOC
-;; markers are placed, and ends with <HR>. This isn't precise, and in fact
-;; fails for several files, but once again only an approximation is needed
-;; because it'll be edited by hand later.
-
-(search-forward "<p>" nil t) (beginning-of-line)
- (insert (concat g~hint-begin "\n\n"))
-
-(search-forward "<hr>" nil t) (beginning-of-line)
- (insert (concat g~hint-end "\n\n"))
-
-;; The visible header ends with (and includes) the first <HR>, and the
-;; contents begin immediately thereafter.
-
-(search-forward "<hr>\n" nil t)
- (insert (concat "\n" g~header-end "\n\n"))
-
-(forward-word 1) (beginning-of-line)
- (insert (concat g~contents-begin "\n\n"))
-
-;; The contents end before the final <HR> and the trailer begins
-;; immediately thereafter.
-
-(goto-char (point-max)) (search-backward "<hr>" nil t)
- (backward-word 1) (end-of-line) (forward-char 1)
- (insert (concat
- "\n"
- g~contents-end "\n\n"
- g~trailer-begin "\n\n"))
-
-;; The trailer ends with </BODY>.
-
-(goto-char (point-max)) (search-backward "</body>" nil t)
- (insert (concat "\n" g~trailer-end "\n\n"))
-
-;; We may have introduced trailing whitespace and extra empty lines.
-;; Remove them.
-
-(goto-char (point-min))
-(while (re-search-forward "[ \t\240\r]+$" nil t) (replace-match "" t t))
-(goto-char (point-min))
-(while (re-search-forward "\n\n\n+" nil t) (replace-match "\n\n" t t))
-
-)
-
-;;============================================================
-;; When this file is loaded into emacs, define the structure markers for GS
-;; HTML files. These markers have two purposes: first, to make the HTML
-;; more readable, and second, to enable these functions to locate sections
-;; unambiguously (see gs-toc, the table of contents builder). Note that
-;; the markers do not include LF.
-
-(defun g~marker (basic)
-
-"Build a complete Ghostscript HTML file marker from its text-only part.
-gs-toc relies entirely on this function, so if it's ever changed, gs-toc
-and existing markers would also have to be changed to keep pace.
-
-Intended only for initialization, not interactive use.
-
-All the existing files are now marked up, and since any future ones are
-(properly) likely to be created by plagiarism, it's difficult to imagine
-why anyone would want to change this unless they want to go to the trouble
-of coming up with a much more useful marking scheme."
-
-(interactive)
-
-(setq HEAD (concat "<!-- [" basic "] "))
-(concat HEAD
- (substring
- "====================================================================== -->"
- (- (length HEAD) 80)
- ))
-)
-
-;;============================================================
-;; Initialization code that must run after functions are defined.
-;;
-;; Look in a Ghostscript HTML file to see how these markers are used,
-;; generally
-;;
-;; begin visible header
-;; begin headline
-;; end headline
-;; begin table of contents
-;; end table of contents
-;; begin hint
-;; end hint
-;; end visible header
-;; begin contents
-;; end contents
-;; begin visible trailer
-;; end visible trailer
-;;
-;; although the TOC is in slightly different positions in a few files.
-
-(defvar g~header-begin (g~marker "1.0 begin visible header")
- "Begin the HTML file's visible header material")
-
-(defvar g~header-end (g~marker "1.0 end visible header")
- "End the HTML file's visible header")
-
-(defvar g~headline-begin (g~marker "1.1 begin headline")
- "Begin the conspicuous headline")
-
-(defvar g~headline-end (g~marker "1.1 end headline")
- "End the conspicuous headline")
-
-(defvar g~toc-begin (g~marker "1.2 begin table of contents")
- "Begin the table of contents")
-
-(defvar g~toc-end (g~marker "1.2 end table of contents")
- "End the table of contents")
-
-(defvar g~hint-begin (g~marker "1.3 begin hint")
- "Begin the \"for other information\" section")
-
-(defvar g~hint-end (g~marker "1.3 end hint")
- "End the \"for other information\" section")
-
-(defvar g~contents-begin (g~marker "2.0 begin contents")
- "Begin the main contents")
-
-(defvar g~contents-end (g~marker "2.0 end contents")
- "End the main contents")
-
-(defvar g~trailer-begin (g~marker "3.0 begin visible trailer")
- "Begin the visible standard trailer material")
-
-(defvar g~trailer-end (g~marker "3.0 end visible trailer")
- "End the visible standard trailer material")
-
-;;============================================================
-;; Some working variables
-
-(defvar gs-anchor "JUNK" "*Anchor name to insert")
-(defvar gs-anchor-file "JUNKFILE" "*Anchor filename to insert")
-(defvar gs-work-buffer "*GS work*" "*Ghostscript working buffer")
diff --git a/Master/xemtex/doc/ghostscript/index.html b/Master/xemtex/doc/ghostscript/index.html
deleted file mode 100644
index d931f27faad..00000000000
--- a/Master/xemtex/doc/ghostscript/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>Ghostscript</title>
-<!-- Ghostscript auto-referral to the introductory document -->
-<!-- $Id: index.html,v 1.2.4.2 2002/04/10 09:45:40 giles Exp $ -->
-<meta http-equiv="REFRESH" content="0; url=Readme.htm">
-</head>
-<body>
-<p>
-Please see <a href="Readme.htm">Readme.htm</a> for an index of the
-Ghostscript documentation.
-</body>
-</html>
diff --git a/Master/xemtex/gsfonts/a010013l.afm b/Master/xemtex/gsfonts/a010013l.afm
deleted file mode 100644
index 602008ee2ff..00000000000
--- a/Master/xemtex/gsfonts/a010013l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWGothicL-Book
-FullName URW Gothic L Book
-FamilyName URW Gothic L
-Weight Book
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -96
-UnderlineThickness 58
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -115 -240 1151 976
-CapHeight 739
-XHeight 547
-Descender -192
-Ascender 739
-StartCharMetrics 316
-C 32 ; WX 277 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 295 ; N exclam ; B 111 0 185 739 ;
-C 34 ; WX 309 ; N quotedbl ; B 74 513 237 739 ;
-C 35 ; WX 554 ; N numbersign ; B 5 0 549 739 ;
-C 36 ; WX 554 ; N dollar ; B 71 -56 479 810 ;
-C 37 ; WX 775 ; N percent ; B 13 -13 752 749 ;
-C 38 ; WX 757 ; N ampersand ; B 57 -13 735 752 ;
-C 39 ; WX 351 ; N quoteright ; B 91 547 253 739 ;
-C 40 ; WX 369 ; N parenleft ; B 57 -125 335 739 ;
-C 41 ; WX 369 ; N parenright ; B 34 -125 312 739 ;
-C 42 ; WX 425 ; N asterisk ; B 64 468 360 752 ;
-C 43 ; WX 606 ; N plus ; B 51 49 555 557 ;
-C 44 ; WX 277 ; N comma ; B 91 -67 253 126 ;
-C 45 ; WX 332 ; N hyphen ; B 31 233 302 296 ;
-C 46 ; WX 277 ; N period ; B 101 0 175 126 ;
-C 47 ; WX 437 ; N slash ; B 40 -128 397 739 ;
-C 48 ; WX 554 ; N zero ; B 30 -13 525 752 ;
-C 49 ; WX 554 ; N one ; B 155 0 354 739 ;
-C 50 ; WX 554 ; N two ; B 33 0 506 752 ;
-C 51 ; WX 554 ; N three ; B 33 -13 504 752 ;
-C 52 ; WX 554 ; N four ; B 12 0 527 739 ;
-C 53 ; WX 554 ; N five ; B 26 -13 528 739 ;
-C 54 ; WX 554 ; N six ; B 25 -13 529 739 ;
-C 55 ; WX 554 ; N seven ; B 64 0 490 739 ;
-C 56 ; WX 554 ; N eight ; B 42 -13 512 752 ;
-C 57 ; WX 554 ; N nine ; B 25 0 529 752 ;
-C 58 ; WX 277 ; N colon ; B 101 0 175 507 ;
-C 59 ; WX 277 ; N semicolon ; B 41 -67 203 507 ;
-C 60 ; WX 606 ; N less ; B 49 37 558 565 ;
-C 61 ; WX 606 ; N equal ; B 51 164 555 436 ;
-C 62 ; WX 606 ; N greater ; B 48 37 557 565 ;
-C 63 ; WX 591 ; N question ; B 65 0 525 752 ;
-C 64 ; WX 867 ; N at ; B 71 -13 797 752 ;
-C 65 ; WX 740 ; N A ; B 11 0 729 739 ;
-C 66 ; WX 574 ; N B ; B 76 0 544 739 ;
-C 67 ; WX 813 ; N C ; B 44 -13 770 752 ;
-C 68 ; WX 744 ; N D ; B 76 0 700 739 ;
-C 69 ; WX 536 ; N E ; B 76 0 480 739 ;
-C 70 ; WX 485 ; N F ; B 76 0 451 739 ;
-C 71 ; WX 872 ; N G ; B 44 -13 831 752 ;
-C 72 ; WX 683 ; N H ; B 76 0 607 739 ;
-C 73 ; WX 226 ; N I ; B 76 0 150 739 ;
-C 74 ; WX 482 ; N J ; B 11 -14 406 739 ;
-C 75 ; WX 591 ; N K ; B 76 0 585 739 ;
-C 76 ; WX 462 ; N L ; B 76 0 456 739 ;
-C 77 ; WX 919 ; N M ; B 76 0 843 739 ;
-C 78 ; WX 740 ; N N ; B 76 0 664 739 ;
-C 79 ; WX 869 ; N O ; B 44 -13 825 752 ;
-C 80 ; WX 592 ; N P ; B 76 0 565 739 ;
-C 81 ; WX 871 ; N Q ; B 44 -13 839 752 ;
-C 82 ; WX 607 ; N R ; B 76 0 577 739 ;
-C 83 ; WX 498 ; N S ; B 22 -13 476 752 ;
-C 84 ; WX 426 ; N T ; B 7 0 419 739 ;
-C 85 ; WX 655 ; N U ; B 76 -13 579 739 ;
-C 86 ; WX 702 ; N V ; B 10 0 692 739 ;
-C 87 ; WX 960 ; N W ; B 10 0 950 739 ;
-C 88 ; WX 609 ; N X ; B 8 0 601 739 ;
-C 89 ; WX 592 ; N Y ; B 2 0 590 739 ;
-C 90 ; WX 480 ; N Z ; B 17 0 474 739 ;
-C 91 ; WX 351 ; N bracketleft ; B 112 -125 313 739 ;
-C 92 ; WX 605 ; N backslash ; B 84 0 464 739 ;
-C 93 ; WX 351 ; N bracketright ; B 38 -125 239 739 ;
-C 94 ; WX 606 ; N asciicircum ; B 18 180 588 739 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -67 ;
-C 96 ; WX 351 ; N quoteleft ; B 98 547 260 739 ;
-C 97 ; WX 683 ; N a ; B 42 -13 620 560 ;
-C 98 ; WX 682 ; N b ; B 63 -13 640 739 ;
-C 99 ; WX 647 ; N c ; B 42 -13 608 560 ;
-C 100 ; WX 685 ; N d ; B 42 -13 622 739 ;
-C 101 ; WX 650 ; N e ; B 42 -13 611 560 ;
-C 102 ; WX 314 ; N f ; B 16 0 311 739 ;
-C 103 ; WX 673 ; N g ; B 42 -215 610 560 ;
-C 104 ; WX 610 ; N h ; B 63 0 547 739 ;
-C 105 ; WX 200 ; N i ; B 63 0 137 739 ;
-C 106 ; WX 203 ; N j ; B -45 -192 140 739 ;
-C 107 ; WX 502 ; N k ; B 63 0 497 739 ;
-C 108 ; WX 200 ; N l ; B 63 0 137 739 ;
-C 109 ; WX 938 ; N m ; B 63 0 875 561 ;
-C 110 ; WX 610 ; N n ; B 63 0 547 560 ;
-C 111 ; WX 655 ; N o ; B 42 -13 613 560 ;
-C 112 ; WX 682 ; N p ; B 63 -192 640 560 ;
-C 113 ; WX 682 ; N q ; B 42 -192 619 560 ;
-C 114 ; WX 301 ; N r ; B 63 0 292 560 ;
-C 115 ; WX 388 ; N s ; B 18 -13 361 560 ;
-C 116 ; WX 339 ; N t ; B 12 0 327 739 ;
-C 117 ; WX 608 ; N u ; B 63 -13 545 547 ;
-C 118 ; WX 554 ; N v ; B 8 0 546 547 ;
-C 119 ; WX 831 ; N w ; B 7 0 824 547 ;
-C 120 ; WX 480 ; N x ; B 8 0 472 547 ;
-C 121 ; WX 536 ; N y ; B 9 -192 527 547 ;
-C 122 ; WX 425 ; N z ; B 10 0 415 547 ;
-C 123 ; WX 351 ; N braceleft ; B 37 -126 271 739 ;
-C 124 ; WX 672 ; N bar ; B 304 0 368 739 ;
-C 125 ; WX 351 ; N braceright ; B 38 -126 269 739 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 210 555 390 ;
-C 161 ; WX 295 ; N exclamdown ; B 111 -192 185 547 ;
-C 162 ; WX 554 ; N cent ; B 45 62 509 707 ;
-C 163 ; WX 554 ; N sterling ; B 18 0 592 752 ;
-C 164 ; WX 166 ; N fraction ; B -115 0 281 739 ;
-C 165 ; WX 554 ; N yen ; B 0 0 589 739 ;
-C 166 ; WX 554 ; N florin ; B 18 -153 546 818 ;
-C 167 ; WX 615 ; N section ; B 87 -141 529 752 ;
-C 168 ; WX 554 ; N currency ; B 26 50 528 553 ;
-C 169 ; WX 198 ; N quotesingle ; B 74 513 124 739 ;
-C 170 ; WX 502 ; N quotedblleft ; B 96 547 406 739 ;
-C 171 ; WX 425 ; N guillemotleft ; B 40 99 385 499 ;
-C 172 ; WX 251 ; N guilsinglleft ; B 40 99 211 499 ;
-C 173 ; WX 251 ; N guilsinglright ; B 40 99 211 499 ;
-C 174 ; WX 487 ; N fi ; B 13 0 424 739 ;
-C 175 ; WX 485 ; N fl ; B 13 0 422 739 ;
-C 177 ; WX 500 ; N endash ; B 0 233 500 296 ;
-C 178 ; WX 553 ; N dagger ; B 59 -133 494 739 ;
-C 179 ; WX 553 ; N daggerdbl ; B 59 -133 494 739 ;
-C 180 ; WX 277 ; N periodcentered ; B 101 229 175 355 ;
-C 182 ; WX 564 ; N paragraph ; B 37 -133 491 739 ;
-C 183 ; WX 606 ; N bullet ; B 118 118 488 488 ;
-C 184 ; WX 354 ; N quotesinglbase ; B 89 -67 251 126 ;
-C 185 ; WX 502 ; N quotedblbase ; B 89 -67 398 126 ;
-C 186 ; WX 484 ; N quotedblright ; B 87 547 393 739 ;
-C 187 ; WX 425 ; N guillemotright ; B 40 99 385 499 ;
-C 188 ; WX 1000 ; N ellipsis ; B 130 0 870 126 ;
-C 189 ; WX 1174 ; N perthousand ; B 13 -13 1151 749 ;
-C 191 ; WX 591 ; N questiondown ; B 66 -205 526 547 ;
-C 193 ; WX 378 ; N grave ; B 74 610 304 776 ;
-C 194 ; WX 375 ; N acute ; B 74 610 301 782 ;
-C 195 ; WX 502 ; N circumflex ; B 74 623 428 749 ;
-C 196 ; WX 439 ; N tilde ; B 75 633 365 728 ;
-C 197 ; WX 485 ; N macron ; B 74 643 411 707 ;
-C 198 ; WX 453 ; N breve ; B 74 623 378 743 ;
-C 199 ; WX 222 ; N dotaccent ; B 74 623 148 749 ;
-C 200 ; WX 369 ; N dieresis ; B 74 623 295 749 ;
-C 202 ; WX 332 ; N ring ; B 74 610 258 794 ;
-C 203 ; WX 324 ; N cedilla ; B 74 -213 250 0 ;
-C 205 ; WX 552 ; N hungarumlaut ; B 74 610 479 780 ;
-C 206 ; WX 302 ; N ogonek ; B 74 -191 228 0 ;
-C 207 ; WX 502 ; N caron ; B 74 623 428 749 ;
-C 208 ; WX 1000 ; N emdash ; B 0 233 1000 296 ;
-C 225 ; WX 992 ; N AE ; B 11 0 936 739 ;
-C 227 ; WX 369 ; N ordfeminine ; B 31 319 339 745 ;
-C 232 ; WX 517 ; N Lslash ; B 26 0 502 739 ;
-C 233 ; WX 868 ; N Oslash ; B 44 -83 824 821 ;
-C 234 ; WX 1194 ; N OE ; B 44 -13 1138 752 ;
-C 235 ; WX 369 ; N ordmasculine ; B 32 319 337 745 ;
-C 241 ; WX 1157 ; N ae ; B 42 -13 1118 560 ;
-C 245 ; WX 200 ; N dotlessi ; B 63 0 137 547 ;
-C 248 ; WX 300 ; N lslash ; B 36 0 270 739 ;
-C 249 ; WX 653 ; N oslash ; B 42 -39 611 594 ;
-C 250 ; WX 1137 ; N oe ; B 42 -13 1098 560 ;
-C 251 ; WX 554 ; N germandbls ; B 59 -13 524 752 ;
-C -1 ; WX 655 ; N Udieresis ; B 76 -13 579 931 ;
-C -1 ; WX 655 ; N Uacute ; B 76 -13 579 964 ;
-C -1 ; WX 498 ; N Scedilla ; B 22 -213 476 752 ;
-C -1 ; WX 426 ; N Tcaron ; B 7 0 419 931 ;
-C -1 ; WX 498 ; N Scaron ; B 22 -13 476 931 ;
-C -1 ; WX 607 ; N Rcaron ; B 76 0 577 931 ;
-C -1 ; WX 607 ; N Racute ; B 76 0 577 964 ;
-C -1 ; WX 498 ; N Sacute ; B 22 -13 476 964 ;
-C -1 ; WX 869 ; N Otilde ; B 44 -13 825 910 ;
-C -1 ; WX 608 ; N ucircumflex ; B 63 -13 545 749 ;
-C -1 ; WX 869 ; N Ohungarumlaut ; B 44 -13 825 962 ;
-C -1 ; WX 655 ; N Uhungarumlaut ; B 76 -13 579 962 ;
-C -1 ; WX 592 ; N Yacute ; B 2 0 590 964 ;
-C -1 ; WX 790 ; N Eth ; B 26 0 746 739 ;
-C -1 ; WX 790 ; N Dcroat ; B 26 0 746 739 ;
-C -1 ; WX 480 ; N Zacute ; B 17 0 474 964 ;
-C -1 ; WX 655 ; N Uring ; B 76 -13 579 976 ;
-C -1 ; WX 673 ; N gbreve ; B 42 -215 610 743 ;
-C -1 ; WX 650 ; N eogonek ; B 42 -191 611 560 ;
-C -1 ; WX 650 ; N edotaccent ; B 42 -13 611 749 ;
-C -1 ; WX 650 ; N ecaron ; B 42 -13 611 749 ;
-C -1 ; WX 655 ; N Ugrave ; B 76 -13 579 958 ;
-C -1 ; WX 592 ; N Thorn ; B 76 0 565 739 ;
-C -1 ; WX 650 ; N eacute ; B 42 -13 611 782 ;
-C -1 ; WX 650 ; N edieresis ; B 42 -13 611 749 ;
-C -1 ; WX 725 ; N dcaron ; B 42 -13 765 739 ;
-C -1 ; WX 647 ; N ccedilla ; B 42 -224 608 560 ;
-C -1 ; WX 647 ; N ccaron ; B 42 -13 608 749 ;
-C -1 ; WX 647 ; N cacute ; B 42 -13 608 782 ;
-C -1 ; WX 683 ; N aogonek ; B 42 -191 651 560 ;
-C -1 ; WX 683 ; N aring ; B 42 -13 620 794 ;
-C -1 ; WX 683 ; N atilde ; B 42 -13 620 728 ;
-C -1 ; WX 683 ; N abreve ; B 42 -13 620 743 ;
-C -1 ; WX 650 ; N egrave ; B 42 -13 611 776 ;
-C -1 ; WX 683 ; N agrave ; B 42 -13 620 776 ;
-C -1 ; WX 683 ; N aacute ; B 42 -13 620 782 ;
-C -1 ; WX 683 ; N adieresis ; B 42 -13 620 749 ;
-C -1 ; WX 655 ; N Uogonek ; B 76 -191 579 739 ;
-C -1 ; WX 608 ; N ugrave ; B 63 -13 545 776 ;
-C -1 ; WX 608 ; N uacute ; B 63 -13 545 782 ;
-C -1 ; WX 608 ; N udieresis ; B 63 -13 545 749 ;
-C -1 ; WX 339 ; N tcaron ; B 12 0 379 739 ;
-C -1 ; WX 388 ; N scommaaccent ; B 18 -225 361 560 ;
-C -1 ; WX 480 ; N Zcaron ; B 17 0 474 931 ;
-C -1 ; WX 650 ; N ecircumflex ; B 42 -13 611 749 ;
-C -1 ; WX 655 ; N Ucircumflex ; B 76 -13 579 931 ;
-C -1 ; WX 683 ; N acircumflex ; B 42 -13 620 749 ;
-C -1 ; WX 480 ; N Zdotaccent ; B 17 0 474 931 ;
-C -1 ; WX 388 ; N scaron ; B 17 -13 371 749 ;
-C -1 ; WX 740 ; N Amacron ; B 11 0 729 889 ;
-C -1 ; WX 388 ; N sacute ; B 18 -13 361 782 ;
-C -1 ; WX 426 ; N Tcommaaccent ; B 7 -225 419 739 ;
-C -1 ; WX 592 ; N Ydieresis ; B 2 0 590 931 ;
-C -1 ; WX 682 ; N thorn ; B 63 -192 640 739 ;
-C -1 ; WX 536 ; N Emacron ; B 76 0 480 889 ;
-C -1 ; WX 869 ; N Ograve ; B 44 -13 825 958 ;
-C -1 ; WX 869 ; N Oacute ; B 44 -13 825 964 ;
-C -1 ; WX 869 ; N Odieresis ; B 44 -13 825 931 ;
-C -1 ; WX 740 ; N Ntilde ; B 76 0 664 910 ;
-C -1 ; WX 740 ; N Ncaron ; B 76 0 664 931 ;
-C -1 ; WX 740 ; N Nacute ; B 76 0 664 964 ;
-C -1 ; WX 462 ; N Lcaron ; B 76 0 456 739 ;
-C -1 ; WX 462 ; N Lacute ; B 76 0 456 964 ;
-C -1 ; WX 226 ; N Idotaccent ; B 76 0 150 931 ;
-C -1 ; WX 301 ; N racute ; B 63 0 324 782 ;
-C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 931 ;
-C -1 ; WX 655 ; N ohungarumlaut ; B 42 -13 613 780 ;
-C -1 ; WX 655 ; N otilde ; B 42 -13 613 728 ;
-C -1 ; WX 554 ; N Euro ; B -32 -13 573 752 ;
-C -1 ; WX 655 ; N ocircumflex ; B 42 -13 613 749 ;
-C -1 ; WX 332 ; N onesuperior ; B 98 288 233 739 ;
-C -1 ; WX 332 ; N twosuperior ; B 12 288 320 747 ;
-C -1 ; WX 332 ; N threesuperior ; B 13 280 319 747 ;
-C -1 ; WX 226 ; N Igrave ; B -2 0 228 958 ;
-C -1 ; WX 226 ; N Iacute ; B -1 0 226 964 ;
-C -1 ; WX 226 ; N Imacron ; B -56 0 281 889 ;
-C -1 ; WX 226 ; N Iogonek ; B 27 -191 181 739 ;
-C -1 ; WX 226 ; N Idieresis ; B 3 0 224 931 ;
-C -1 ; WX 872 ; N Gbreve ; B 44 -13 831 925 ;
-C -1 ; WX 655 ; N Umacron ; B 76 -13 579 889 ;
-C -1 ; WX 591 ; N Kcommaaccent ; B 76 -225 585 739 ;
-C -1 ; WX 655 ; N ograve ; B 42 -13 613 776 ;
-C -1 ; WX 498 ; N Scommaaccent ; B 22 -225 476 752 ;
-C -1 ; WX 536 ; N Eogonek ; B 76 -191 511 739 ;
-C -1 ; WX 655 ; N oacute ; B 42 -13 613 782 ;
-C -1 ; WX 536 ; N Edotaccent ; B 76 0 480 931 ;
-C -1 ; WX 200 ; N iogonek ; B 14 -191 168 739 ;
-C -1 ; WX 673 ; N gcommaaccent ; B 42 -215 610 790 ;
-C -1 ; WX 655 ; N odieresis ; B 42 -13 613 749 ;
-C -1 ; WX 610 ; N ntilde ; B 63 0 547 728 ;
-C -1 ; WX 610 ; N ncaron ; B 63 0 547 749 ;
-C -1 ; WX 536 ; N Ecaron ; B 76 0 480 931 ;
-C -1 ; WX 536 ; N Ecircumflex ; B 76 0 480 931 ;
-C -1 ; WX 388 ; N scedilla ; B 17 -213 361 560 ;
-C -1 ; WX 301 ; N rcaron ; B 10 0 364 749 ;
-C -1 ; WX 536 ; N Egrave ; B 76 0 480 958 ;
-C -1 ; WX 536 ; N Eacute ; B 76 0 480 964 ;
-C -1 ; WX 872 ; N Gcommaaccent ; B 44 -225 831 752 ;
-C -1 ; WX 607 ; N Rcommaaccent ; B 76 -225 577 739 ;
-C -1 ; WX 536 ; N Edieresis ; B 76 0 480 931 ;
-C -1 ; WX 610 ; N nacute ; B 63 0 547 782 ;
-C -1 ; WX 608 ; N uogonek ; B 63 -191 576 547 ;
-C -1 ; WX 608 ; N umacron ; B 63 -13 545 707 ;
-C -1 ; WX 744 ; N Dcaron ; B 76 0 700 931 ;
-C -1 ; WX 245 ; N lcaron ; B 63 0 285 739 ;
-C -1 ; WX 813 ; N Ccaron ; B 44 -13 770 931 ;
-C -1 ; WX 813 ; N Cacute ; B 44 -13 770 964 ;
-C -1 ; WX 813 ; N Ccedilla ; B 44 -240 770 752 ;
-C -1 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C -1 ; WX 740 ; N Aogonek ; B 11 -191 760 739 ;
-C -1 ; WX 606 ; N minus ; B 51 267 555 341 ;
-C -1 ; WX 606 ; N multiply ; B 51 48 555 551 ;
-C -1 ; WX 606 ; N divide ; B 51 112 555 496 ;
-C -1 ; WX 740 ; N Aring ; B 11 0 729 976 ;
-C -1 ; WX 1000 ; N trademark ; B 63 340 938 739 ;
-C -1 ; WX 301 ; N rcommaaccent ; B 63 -225 292 560 ;
-C -1 ; WX 200 ; N lacute ; B -14 0 213 964 ;
-C -1 ; WX 655 ; N omacron ; B 42 -13 613 707 ;
-C -1 ; WX 740 ; N Atilde ; B 11 0 729 910 ;
-C -1 ; WX 200 ; N icircumflex ; B -77 0 277 749 ;
-C -1 ; WX 200 ; N igrave ; B -15 0 215 776 ;
-C -1 ; WX 610 ; N ncommaaccent ; B 63 -225 547 560 ;
-C -1 ; WX 200 ; N lcommaaccent ; B 26 -225 148 739 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 555 585 ;
-C -1 ; WX 831 ; N onehalf ; B 96 0 814 739 ;
-C -1 ; WX 831 ; N onequarter ; B 101 0 803 739 ;
-C -1 ; WX 831 ; N threequarters ; B 13 0 803 747 ;
-C -1 ; WX 200 ; N iacute ; B -13 0 214 782 ;
-C -1 ; WX 740 ; N Abreve ; B 11 0 729 925 ;
-C -1 ; WX 502 ; N kcommaaccent ; B 63 -225 497 739 ;
-C -1 ; WX 869 ; N Omacron ; B 44 -13 825 889 ;
-C -1 ; WX 200 ; N imacron ; B -69 0 268 707 ;
-C -1 ; WX 650 ; N emacron ; B 42 -13 611 707 ;
-C -1 ; WX 683 ; N amacron ; B 42 -13 620 707 ;
-C -1 ; WX 339 ; N tcommaaccent ; B 12 -225 327 739 ;
-C -1 ; WX 536 ; N ydieresis ; B 9 -192 527 749 ;
-C -1 ; WX 425 ; N zdotaccent ; B 10 0 415 749 ;
-C -1 ; WX 425 ; N zcaron ; B 10 0 415 749 ;
-C -1 ; WX 425 ; N zacute ; B 10 0 415 782 ;
-C -1 ; WX 536 ; N yacute ; B 9 -192 527 782 ;
-C -1 ; WX 608 ; N uhungarumlaut ; B 63 -13 547 780 ;
-C -1 ; WX 655 ; N eth ; B 42 -13 613 756 ;
-C -1 ; WX 608 ; N uring ; B 63 -13 545 794 ;
-C -1 ; WX 869 ; N Ocircumflex ; B 44 -13 825 931 ;
-C -1 ; WX 351 ; N commaaccent ; B 101 -225 223 -53 ;
-C -1 ; WX 747 ; N copyright ; B -9 -13 755 752 ;
-C -1 ; WX 747 ; N registered ; B -9 -13 755 752 ;
-C -1 ; WX 740 ; N Acircumflex ; B 11 0 729 931 ;
-C -1 ; WX 200 ; N idieresis ; B -10 0 211 749 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 549 ; N notequal ; B 25 42 529 558 ;
-C -1 ; WX 549 ; N radical ; B 10 -35 515 913 ;
-C -1 ; WX 740 ; N Agrave ; B 11 0 729 958 ;
-C -1 ; WX 740 ; N Aacute ; B 11 0 729 964 ;
-C -1 ; WX 549 ; N lessequal ; B 26 0 530 646 ;
-C -1 ; WX 549 ; N greaterequal ; B 26 0 530 646 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 148 555 436 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 76 -225 664 739 ;
-C -1 ; WX 685 ; N dcroat ; B 42 -13 685 739 ;
-C -1 ; WX 672 ; N brokenbar ; B 304 0 368 739 ;
-C -1 ; WX 462 ; N Lcommaaccent ; B 76 -225 456 739 ;
-C -1 ; WX 740 ; N Adieresis ; B 11 0 729 931 ;
-C -1 ; WX 608 ; N mu ; B 63 -192 545 547 ;
-C -1 ; WX 277 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -36
-KPX A Ccedilla -37
-KPX A G -38
-KPX A O -38
-KPX A Odieresis -38
-KPX A Q -38
-KPX A T -50
-KPX A U -29
-KPX A Uacute -29
-KPX A Ucircumflex -29
-KPX A Udieresis -29
-KPX A Ugrave -29
-KPX A V -72
-KPX A W -47
-KPX A Y -77
-KPX A a -20
-KPX A b 5
-KPX A c -22
-KPX A ccedilla -22
-KPX A comma -5
-KPX A d -21
-KPX A e -21
-KPX A g -23
-KPX A guillemotleft -22
-KPX A guilsinglleft -22
-KPX A hyphen 13
-KPX A o -20
-KPX A period 13
-KPX A q -21
-KPX A quotedblright -90
-KPX A quoteright -92
-KPX A t -28
-KPX A u -15
-KPX A v -39
-KPX A w -33
-KPX A y -37
-KPX Aacute C -36
-KPX Aacute G -38
-KPX Aacute O -38
-KPX Aacute Q -38
-KPX Aacute T -50
-KPX Aacute U -29
-KPX Aacute V -72
-KPX Aacute W -47
-KPX Aacute Y -77
-KPX Aacute a -20
-KPX Aacute b 5
-KPX Aacute c -22
-KPX Aacute comma -5
-KPX Aacute d -21
-KPX Aacute e -21
-KPX Aacute g -23
-KPX Aacute guillemotleft -22
-KPX Aacute guilsinglleft -22
-KPX Aacute hyphen 13
-KPX Aacute o -20
-KPX Aacute period 13
-KPX Aacute q -21
-KPX Aacute quoteright -92
-KPX Aacute t -28
-KPX Aacute u -15
-KPX Aacute v -39
-KPX Aacute w -33
-KPX Aacute y -37
-KPX Acircumflex C -36
-KPX Acircumflex G -38
-KPX Acircumflex O -38
-KPX Acircumflex Q -38
-KPX Acircumflex T -50
-KPX Acircumflex U -29
-KPX Acircumflex V -72
-KPX Acircumflex W -47
-KPX Acircumflex Y -77
-KPX Acircumflex comma -5
-KPX Acircumflex period 13
-KPX Adieresis C -36
-KPX Adieresis G -38
-KPX Adieresis O -38
-KPX Adieresis Q -38
-KPX Adieresis T -50
-KPX Adieresis U -29
-KPX Adieresis V -72
-KPX Adieresis W -47
-KPX Adieresis Y -77
-KPX Adieresis a -20
-KPX Adieresis b 5
-KPX Adieresis c -22
-KPX Adieresis comma -5
-KPX Adieresis d -21
-KPX Adieresis g -23
-KPX Adieresis guillemotleft -22
-KPX Adieresis guilsinglleft -22
-KPX Adieresis hyphen 13
-KPX Adieresis o -20
-KPX Adieresis period 13
-KPX Adieresis q -21
-KPX Adieresis quotedblright -90
-KPX Adieresis quoteright -92
-KPX Adieresis t -28
-KPX Adieresis u -15
-KPX Adieresis v -39
-KPX Adieresis w -33
-KPX Adieresis y -37
-KPX Agrave C -36
-KPX Agrave G -38
-KPX Agrave O -38
-KPX Agrave Q -38
-KPX Agrave T -50
-KPX Agrave U -29
-KPX Agrave V -72
-KPX Agrave W -47
-KPX Agrave Y -77
-KPX Agrave comma -5
-KPX Agrave period 13
-KPX Aring C -36
-KPX Aring G -38
-KPX Aring O -38
-KPX Aring Q -38
-KPX Aring T -50
-KPX Aring U -29
-KPX Aring V -72
-KPX Aring W -47
-KPX Aring Y -77
-KPX Aring a -20
-KPX Aring b 5
-KPX Aring c -22
-KPX Aring comma -5
-KPX Aring d -21
-KPX Aring e -21
-KPX Aring g -23
-KPX Aring guillemotleft -22
-KPX Aring guilsinglleft -22
-KPX Aring hyphen 13
-KPX Aring o -20
-KPX Aring period 13
-KPX Aring q -21
-KPX Aring quotedblright -90
-KPX Aring quoteright -92
-KPX Aring t -28
-KPX Aring u -15
-KPX Aring v -39
-KPX Aring w -33
-KPX Aring y -37
-KPX Atilde C -36
-KPX Atilde G -38
-KPX Atilde O -38
-KPX Atilde Q -38
-KPX Atilde T -50
-KPX Atilde U -29
-KPX Atilde V -72
-KPX Atilde W -47
-KPX Atilde Y -77
-KPX Atilde comma -5
-KPX Atilde period 13
-KPX B A -8
-KPX B AE -21
-KPX B Aacute -8
-KPX B Acircumflex -8
-KPX B Adieresis -8
-KPX B Aring -8
-KPX B Atilde -8
-KPX B O 6
-KPX B OE 7
-KPX B Oacute 6
-KPX B Ocircumflex 6
-KPX B Odieresis 6
-KPX B Ograve 6
-KPX B Oslash 9
-KPX B V -24
-KPX B W -2
-KPX B Y -26
-KPX C A -22
-KPX C AE -45
-KPX C Aacute -22
-KPX C Adieresis -22
-KPX C Aring -22
-KPX C H 0
-KPX C K 0
-KPX C O -18
-KPX C Oacute -18
-KPX C Odieresis -18
-KPX Ccedilla A -22
-KPX D A -37
-KPX D Aacute -37
-KPX D Acircumflex -37
-KPX D Adieresis -37
-KPX D Agrave -37
-KPX D Aring -37
-KPX D Atilde -37
-KPX D J -5
-KPX D T -40
-KPX D V -36
-KPX D W -14
-KPX D X -29
-KPX D Y -44
-KPX F A -56
-KPX F Aacute -56
-KPX F Acircumflex -56
-KPX F Adieresis -56
-KPX F Agrave -56
-KPX F Aring -56
-KPX F Atilde -56
-KPX F J -55
-KPX F O 0
-KPX F Odieresis 0
-KPX F a -3
-KPX F aacute -3
-KPX F adieresis -3
-KPX F ae -3
-KPX F aring -3
-KPX F comma -98
-KPX F e -3
-KPX F eacute -3
-KPX F hyphen 23
-KPX F i -5
-KPX F j -7
-KPX F o -3
-KPX F oacute -3
-KPX F odieresis -3
-KPX F oe -3
-KPX F oslash -5
-KPX F period -80
-KPX F r -11
-KPX F u -11
-KPX G A -40
-KPX G AE -64
-KPX G Aacute -40
-KPX G Acircumflex -40
-KPX G Adieresis -40
-KPX G Agrave -40
-KPX G Aring -40
-KPX G Atilde -40
-KPX G T -45
-KPX G V -43
-KPX G W -22
-KPX G Y -48
-KPX J A -27
-KPX J AE -39
-KPX J Adieresis -27
-KPX J Aring -27
-KPX K C -36
-KPX K G -38
-KPX K O -38
-KPX K OE -37
-KPX K Oacute -38
-KPX K Odieresis -38
-KPX K S -16
-KPX K T 37
-KPX K a -44
-KPX K adieresis -44
-KPX K ae -44
-KPX K aring -44
-KPX K e -45
-KPX K hyphen -29
-KPX K o -44
-KPX K oacute -44
-KPX K odieresis -44
-KPX K u -38
-KPX K udieresis -38
-KPX K y -44
-KPX L A 34
-KPX L AE 34
-KPX L Aacute 34
-KPX L Adieresis 34
-KPX L Aring 34
-KPX L C -46
-KPX L Ccedilla -49
-KPX L G -48
-KPX L O -49
-KPX L Oacute -49
-KPX L Ocircumflex -49
-KPX L Odieresis -49
-KPX L Ograve -49
-KPX L Otilde -49
-KPX L S 7
-KPX L T -47
-KPX L U -25
-KPX L Udieresis -25
-KPX L V -100
-KPX L W -59
-KPX L Y -88
-KPX L hyphen -79
-KPX L quotedblright -114
-KPX L quoteright -116
-KPX L u -14
-KPX L udieresis -14
-KPX L y -59
-KPX N A 0
-KPX N AE -1
-KPX N Aacute 0
-KPX N Adieresis 0
-KPX N Aring 0
-KPX N C 10
-KPX N Ccedilla 11
-KPX N G 9
-KPX N O 9
-KPX N Oacute 9
-KPX N Odieresis 9
-KPX N a 8
-KPX N aacute 8
-KPX N adieresis 8
-KPX N ae 7
-KPX N aring 8
-KPX N comma -15
-KPX N e 7
-KPX N eacute 7
-KPX N o 8
-KPX N oacute 8
-KPX N odieresis 8
-KPX N oslash 9
-KPX N period 3
-KPX N u 13
-KPX N udieresis 13
-KPX O A -39
-KPX O AE -68
-KPX O Aacute -39
-KPX O Adieresis -39
-KPX O Aring -39
-KPX O T -42
-KPX O V -38
-KPX O W -16
-KPX O X -31
-KPX O Y -46
-KPX Oacute A -39
-KPX Oacute T -42
-KPX Oacute V -38
-KPX Oacute W -16
-KPX Oacute Y -46
-KPX Ocircumflex T -42
-KPX Ocircumflex V -38
-KPX Ocircumflex Y -46
-KPX Odieresis A -39
-KPX Odieresis T -42
-KPX Odieresis V -38
-KPX Odieresis W -16
-KPX Odieresis X -31
-KPX Odieresis Y -46
-KPX Ograve T -42
-KPX Ograve V -38
-KPX Ograve Y -46
-KPX Oslash A -36
-KPX Otilde T -42
-KPX Otilde V -38
-KPX Otilde Y -46
-KPX P A -61
-KPX P AE -108
-KPX P Aacute -61
-KPX P Adieresis -61
-KPX P Aring -61
-KPX P J -68
-KPX P a -16
-KPX P aacute -16
-KPX P adieresis -16
-KPX P ae -16
-KPX P aring -16
-KPX P comma -125
-KPX P e -15
-KPX P eacute -15
-KPX P hyphen -4
-KPX P o -15
-KPX P oacute -15
-KPX P odieresis -15
-KPX P oe -15
-KPX P oslash -19
-KPX P period -106
-KPX R C 2
-KPX R Ccedilla 3
-KPX R G 1
-KPX R O 2
-KPX R OE 2
-KPX R Oacute 2
-KPX R Odieresis 2
-KPX R T -4
-KPX R U 11
-KPX R Udieresis 11
-KPX R V -11
-KPX R W -3
-KPX R Y -14
-KPX R a -7
-KPX R aacute -7
-KPX R adieresis -7
-KPX R ae -7
-KPX R aring -7
-KPX R e -7
-KPX R eacute -7
-KPX R hyphen 3
-KPX R o -7
-KPX R oacute -7
-KPX R odieresis -7
-KPX R oe -7
-KPX R u 7
-KPX R uacute 7
-KPX R udieresis 7
-KPX R y 20
-KPX S A -5
-KPX S AE -16
-KPX S Aacute -5
-KPX S Adieresis -5
-KPX S Aring -5
-KPX S T 3
-KPX S V -9
-KPX S W 3
-KPX S Y -10
-KPX S t 17
-KPX T A -50
-KPX T AE -51
-KPX T Aacute -50
-KPX T Acircumflex -50
-KPX T Adieresis -50
-KPX T Agrave -50
-KPX T Aring -50
-KPX T Atilde -50
-KPX T C -40
-KPX T G -41
-KPX T J -49
-KPX T O -42
-KPX T OE -40
-KPX T Oacute -42
-KPX T Ocircumflex -42
-KPX T Odieresis -42
-KPX T Ograve -42
-KPX T Oslash -38
-KPX T Otilde -42
-KPX T S 0
-KPX T V 34
-KPX T W 35
-KPX T Y 38
-KPX T a -48
-KPX T ae -48
-KPX T c -49
-KPX T colon -53
-KPX T comma -65
-KPX T e -48
-KPX T g -48
-KPX T guillemotleft -42
-KPX T guilsinglleft -42
-KPX T hyphen -11
-KPX T i 8
-KPX T j 6
-KPX T o -48
-KPX T oslash -45
-KPX T period -47
-KPX T r -33
-KPX T s -32
-KPX T semicolon -62
-KPX T u -40
-KPX T v -50
-KPX T w -49
-KPX T y -50
-KPX U A -30
-KPX U AE -50
-KPX U Aacute -30
-KPX U Acircumflex -30
-KPX U Adieresis -30
-KPX U Aring -30
-KPX U Atilde -30
-KPX U comma -36
-KPX U m 13
-KPX U n 13
-KPX U p 13
-KPX U period -15
-KPX U r 13
-KPX Uacute A -30
-KPX Uacute comma -36
-KPX Uacute m 13
-KPX Uacute n 13
-KPX Uacute p 13
-KPX Uacute period -15
-KPX Uacute r 13
-KPX Ucircumflex A -30
-KPX Udieresis A -30
-KPX Udieresis b 13
-KPX Udieresis comma -36
-KPX Udieresis m 13
-KPX Udieresis n 13
-KPX Udieresis p 13
-KPX Udieresis period -15
-KPX Udieresis r 13
-KPX Ugrave A -30
-KPX V A -72
-KPX V AE -118
-KPX V Aacute -72
-KPX V Acircumflex -72
-KPX V Adieresis -72
-KPX V Agrave -72
-KPX V Aring -72
-KPX V Atilde -72
-KPX V C -37
-KPX V G -38
-KPX V O -39
-KPX V Oacute -39
-KPX V Ocircumflex -39
-KPX V Odieresis -39
-KPX V Ograve -39
-KPX V Oslash -35
-KPX V Otilde -39
-KPX V S -12
-KPX V T 35
-KPX V a -59
-KPX V ae -59
-KPX V colon -60
-KPX V comma -110
-KPX V e -59
-KPX V g -59
-KPX V guillemotleft -49
-KPX V guilsinglleft -49
-KPX V hyphen -25
-KPX V i 6
-KPX V o -59
-KPX V oslash -58
-KPX V period -92
-KPX V r -32
-KPX V semicolon -70
-KPX V u -34
-KPX V y -8
-KPX W A -48
-KPX W AE -73
-KPX W Aacute -48
-KPX W Acircumflex -48
-KPX W Adieresis -48
-KPX W Agrave -48
-KPX W Aring -48
-KPX W Atilde -48
-KPX W C -14
-KPX W G -15
-KPX W O -16
-KPX W Oacute -16
-KPX W Ocircumflex -16
-KPX W Odieresis -16
-KPX W Ograve -16
-KPX W Oslash -12
-KPX W Otilde -16
-KPX W S 0
-KPX W T 35
-KPX W a -30
-KPX W ae -30
-KPX W colon -38
-KPX W comma -71
-KPX W e -30
-KPX W g -30
-KPX W guillemotleft -21
-KPX W guilsinglleft -21
-KPX W hyphen 3
-KPX W i 6
-KPX W o -30
-KPX W oslash -28
-KPX W period -53
-KPX W r -15
-KPX W semicolon -47
-KPX W u -21
-KPX W y 4
-KPX X C -29
-KPX X O -31
-KPX X Odieresis -31
-KPX X Q -30
-KPX X a -36
-KPX X e -37
-KPX X hyphen -17
-KPX X o -36
-KPX X u -29
-KPX X y -37
-KPX Y A -78
-KPX Y AE -93
-KPX Y Aacute -78
-KPX Y Acircumflex -78
-KPX Y Adieresis -78
-KPX Y Agrave -78
-KPX Y Aring -78
-KPX Y Atilde -78
-KPX Y C -44
-KPX Y G -46
-KPX Y O -46
-KPX Y Oacute -46
-KPX Y Ocircumflex -46
-KPX Y Odieresis -46
-KPX Y Ograve -46
-KPX Y Oslash -42
-KPX Y Otilde -46
-KPX Y S -13
-KPX Y T 39
-KPX Y a -68
-KPX Y ae -68
-KPX Y colon -69
-KPX Y comma -107
-KPX Y e -68
-KPX Y g -68
-KPX Y guillemotleft -63
-KPX Y guilsinglleft -62
-KPX Y hyphen -45
-KPX Y i 10
-KPX Y o -68
-KPX Y oslash -66
-KPX Y p -38
-KPX Y period -89
-KPX Y semicolon -78
-KPX Y u -40
-KPX Y v -14
-KPX Z v -8
-KPX Z y -8
-KPX a j 14
-KPX a quoteright -7
-KPX a v 5
-KPX a w 6
-KPX a y 5
-KPX aacute v 5
-KPX aacute w 6
-KPX aacute y 5
-KPX adieresis v 5
-KPX adieresis w 6
-KPX adieresis y 5
-KPX ae v -23
-KPX ae w -20
-KPX ae y -22
-KPX agrave v 5
-KPX agrave w 6
-KPX agrave y 5
-KPX aring v 5
-KPX aring w 6
-KPX aring y 5
-KPX b v -25
-KPX b w -19
-KPX b y -23
-KPX c h -4
-KPX c k -4
-KPX comma one -64
-KPX comma quotedblright -17
-KPX comma quoteright -19
-KPX e quoteright -31
-KPX e t -23
-KPX e v -24
-KPX e w -20
-KPX e x -20
-KPX e y -23
-KPX eacute v -24
-KPX eacute w -20
-KPX eacute y -23
-KPX ecircumflex v -24
-KPX ecircumflex w -20
-KPX ecircumflex y -23
-KPX eight four 17
-KPX eight one -84
-KPX eight seven -43
-KPX f a -20
-KPX f aacute -20
-KPX f adieresis -20
-KPX f ae -21
-KPX f aring -20
-KPX f e -19
-KPX f eacute -19
-KPX f f 32
-KPX f i 9
-KPX f j 7
-KPX f l 9
-KPX f o -19
-KPX f oacute -19
-KPX f odieresis -19
-KPX f oe -19
-KPX f oslash -24
-KPX f quoteright -5
-KPX f s 13
-KPX f t 34
-KPX five four 24
-KPX five one -77
-KPX five seven -32
-KPX four four 24
-KPX four one -81
-KPX four seven -35
-KPX g a 7
-KPX g adieresis 7
-KPX g ae 7
-KPX g aring 7
-KPX g e 7
-KPX g eacute 7
-KPX g l 16
-KPX g oacute 7
-KPX g odieresis 7
-KPX g r 16
-KPX guillemotright A -22
-KPX guillemotright AE -60
-KPX guillemotright Aacute -22
-KPX guillemotright Adieresis -22
-KPX guillemotright Aring -22
-KPX guillemotright T -42
-KPX guillemotright V -48
-KPX guillemotright W -21
-KPX guillemotright Y -62
-KPX guilsinglright A -22
-KPX guilsinglright AE -60
-KPX guilsinglright Aacute -22
-KPX guilsinglright Adieresis -22
-KPX guilsinglright Aring -22
-KPX guilsinglright T -41
-KPX guilsinglright V -48
-KPX guilsinglright W -21
-KPX guilsinglright Y -61
-KPX h quoteright -30
-KPX h y -17
-KPX hyphen A 13
-KPX hyphen AE -21
-KPX hyphen Aacute 13
-KPX hyphen Adieresis 13
-KPX hyphen Aring 13
-KPX hyphen T -11
-KPX hyphen V -24
-KPX hyphen W 4
-KPX hyphen Y -43
-KPX i T 8
-KPX i j 13
-KPX k a -28
-KPX k aacute -28
-KPX k adieresis -28
-KPX k ae -28
-KPX k aring -28
-KPX k comma -21
-KPX k e -28
-KPX k eacute -28
-KPX k g -29
-KPX k hyphen -36
-KPX k o -28
-KPX k oacute -28
-KPX k odieresis -28
-KPX k period -7
-KPX k s -5
-KPX k u 1
-KPX k udieresis 1
-KPX l v 5
-KPX l y 5
-KPX m p 14
-KPX m v -17
-KPX m w -12
-KPX m y -15
-KPX n T -41
-KPX n p 13
-KPX n quoteright -30
-KPX n v -19
-KPX n w -14
-KPX n y -17
-KPX nine four -33
-KPX nine one -77
-KPX nine seven -31
-KPX o T -47
-KPX o quoteright -31
-KPX o t -22
-KPX o v -24
-KPX o w -18
-KPX o x -18
-KPX o y -21
-KPX oacute v -24
-KPX oacute w -18
-KPX oacute y -21
-KPX ocircumflex t -22
-KPX odieresis t -22
-KPX odieresis v -24
-KPX odieresis w -18
-KPX odieresis x -18
-KPX odieresis y -21
-KPX ograve v -24
-KPX ograve w -18
-KPX ograve y -21
-KPX one comma -77
-KPX one eight -46
-KPX one five -46
-KPX one four -62
-KPX one nine -52
-KPX one one -133
-KPX one period -58
-KPX one seven -88
-KPX one six -49
-KPX one three -55
-KPX one two -51
-KPX one zero -27
-KPX p t -23
-KPX p y -23
-KPX period one -100
-KPX period quotedblright -56
-KPX period quoteright -58
-KPX q c 7
-KPX q u 13
-KPX quotedblbase A 6
-KPX quotedblbase AE -8
-KPX quotedblbase T -52
-KPX quotedblbase V -96
-KPX quotedblbase W -57
-KPX quotedblbase Y -93
-KPX quotedblleft A -95
-KPX quotedblleft AE -172
-KPX quotedblleft Aacute -95
-KPX quotedblleft Adieresis -95
-KPX quotedblleft Aring -95
-KPX quotedblleft T -19
-KPX quotedblleft V 3
-KPX quotedblleft W 12
-KPX quotedblleft Y 0
-KPX quotedblright A -101
-KPX quotedblright AE -179
-KPX quotedblright Aacute -101
-KPX quotedblright Adieresis -101
-KPX quotedblright Aring -101
-KPX quotedblright T -5
-KPX quotedblright V 0
-KPX quotedblright W 7
-KPX quotedblright Y -4
-KPX quoteleft A -92
-KPX quoteleft AE -170
-KPX quoteleft Aacute -92
-KPX quoteleft Adieresis -92
-KPX quoteleft Aring -92
-KPX quoteleft T -17
-KPX quoteleft V 6
-KPX quoteleft W 14
-KPX quoteleft Y 2
-KPX quoteright A -105
-KPX quoteright AE -183
-KPX quoteright Aacute -105
-KPX quoteright Adieresis -105
-KPX quoteright Aring -105
-KPX quoteright comma -100
-KPX quoteright d -56
-KPX quoteright o -55
-KPX quoteright period -80
-KPX quoteright r -30
-KPX quoteright s -27
-KPX quoteright t -32
-KPX quoteright v -21
-KPX quoteright w -19
-KPX quoteright y -21
-KPX r a -28
-KPX r aacute -28
-KPX r acircumflex -28
-KPX r adieresis -28
-KPX r ae -28
-KPX r agrave -28
-KPX r aring -28
-KPX r c -30
-KPX r ccedilla -25
-KPX r colon -12
-KPX r comma -70
-KPX r d -29
-KPX r e -28
-KPX r eacute -28
-KPX r ecircumflex -28
-KPX r egrave -28
-KPX r f 29
-KPX r g -18
-KPX r h 6
-KPX r hyphen -19
-KPX r i 6
-KPX r j 4
-KPX r k 6
-KPX r l 6
-KPX r m 6
-KPX r n 6
-KPX r o -28
-KPX r oacute -28
-KPX r ocircumflex -28
-KPX r odieresis -28
-KPX r oe -27
-KPX r ograve -28
-KPX r oslash -33
-KPX r p 6
-KPX r period -53
-KPX r q -29
-KPX r quoteright -8
-KPX r r 6
-KPX r s 8
-KPX r semicolon -24
-KPX r t 31
-KPX r u 6
-KPX r v 32
-KPX r w 33
-KPX r x 31
-KPX r y 32
-KPX r z 27
-KPX s quoteright -16
-KPX s t 8
-KPX seven colon -75
-KPX seven comma -133
-KPX seven eight -41
-KPX seven five -47
-KPX seven four -81
-KPX seven one -65
-KPX seven period -115
-KPX seven seven -20
-KPX seven six -60
-KPX seven three -42
-KPX seven two -27
-KPX six four 24
-KPX six one -94
-KPX six seven -64
-KPX t S 14
-KPX t a -25
-KPX t aacute -25
-KPX t adieresis -25
-KPX t ae -25
-KPX t aring -25
-KPX t colon -13
-KPX t e -24
-KPX t eacute -24
-KPX t h 4
-KPX t o -24
-KPX t oacute -24
-KPX t odieresis -24
-KPX t quoteright -9
-KPX t semicolon -25
-KPX three four 12
-KPX three one -91
-KPX three seven -51
-KPX two four -19
-KPX two one -81
-KPX two seven -35
-KPX u quoteright -7
-KPX v a -25
-KPX v aacute -25
-KPX v acircumflex -25
-KPX v adieresis -25
-KPX v ae -25
-KPX v agrave -25
-KPX v aring -25
-KPX v atilde -25
-KPX v c -26
-KPX v colon -21
-KPX v comma -87
-KPX v e -25
-KPX v eacute -25
-KPX v ecircumflex -25
-KPX v egrave -25
-KPX v g -21
-KPX v hyphen 0
-KPX v l 6
-KPX v o -25
-KPX v oacute -25
-KPX v odieresis -25
-KPX v ograve -25
-KPX v oslash -24
-KPX v period -70
-KPX v s -2
-KPX v semicolon -31
-KPX w a -20
-KPX w aacute -20
-KPX w acircumflex -20
-KPX w adieresis -20
-KPX w ae -20
-KPX w agrave -20
-KPX w aring -20
-KPX w atilde -20
-KPX w c -21
-KPX w colon -19
-KPX w comma -79
-KPX w e -20
-KPX w eacute -20
-KPX w ecircumflex -20
-KPX w egrave -20
-KPX w g -18
-KPX w hyphen 6
-KPX w l 7
-KPX w o -20
-KPX w oacute -20
-KPX w odieresis -20
-KPX w ograve -20
-KPX w oslash -19
-KPX w period -62
-KPX w s 0
-KPX w semicolon -29
-KPX x a -19
-KPX x c -20
-KPX x e -19
-KPX x eacute -19
-KPX x o -19
-KPX x q -19
-KPX y a -26
-KPX y aacute -26
-KPX y acircumflex -26
-KPX y adieresis -26
-KPX y ae -26
-KPX y agrave -26
-KPX y aring -26
-KPX y atilde -26
-KPX y c -27
-KPX y colon -21
-KPX y comma -89
-KPX y e -26
-KPX y eacute -26
-KPX y ecircumflex -26
-KPX y egrave -26
-KPX y g -22
-KPX y hyphen 0
-KPX y l 6
-KPX y o -26
-KPX y oacute -26
-KPX y odieresis -26
-KPX y ograve -26
-KPX y oslash -25
-KPX y period -72
-KPX y s -3
-KPX y semicolon -31
-KPX zero four 22
-KPX zero one -66
-KPX zero seven -30
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/a010013l.pfb b/Master/xemtex/gsfonts/a010013l.pfb
deleted file mode 100644
index 2ff1adcfe43..00000000000
--- a/Master/xemtex/gsfonts/a010013l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010013l.pfm b/Master/xemtex/gsfonts/a010013l.pfm
deleted file mode 100644
index b3fd5b93750..00000000000
--- a/Master/xemtex/gsfonts/a010013l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010015l.afm b/Master/xemtex/gsfonts/a010015l.afm
deleted file mode 100644
index 8946a1879e5..00000000000
--- a/Master/xemtex/gsfonts/a010015l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWGothicL-Demi
-FullName URW Gothic L Demi
-FamilyName URW Gothic L
-Weight Demi
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -93
-UnderlineThickness 90
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -121 -251 1248 1000
-CapHeight 739
-XHeight 554
-Descender -185
-Ascender 739
-StartCharMetrics 316
-C 32 ; WX 280 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 280 ; N exclam ; B 72 0 205 739 ;
-C 34 ; WX 360 ; N quotedbl ; B 74 513 283 739 ;
-C 35 ; WX 560 ; N numbersign ; B 34 0 526 739 ;
-C 36 ; WX 560 ; N dollar ; B 59 -86 494 856 ;
-C 37 ; WX 860 ; N percent ; B 21 -13 835 752 ;
-C 38 ; WX 680 ; N ampersand ; B 35 -13 664 752 ;
-C 39 ; WX 280 ; N quoteright ; B 72 466 205 739 ;
-C 40 ; WX 380 ; N parenleft ; B 74 -137 349 739 ;
-C 41 ; WX 380 ; N parenright ; B 37 -137 312 739 ;
-C 42 ; WX 440 ; N asterisk ; B 70 441 371 739 ;
-C 43 ; WX 600 ; N plus ; B 51 117 555 625 ;
-C 44 ; WX 280 ; N comma ; B 72 -140 205 128 ;
-C 45 ; WX 420 ; N hyphen ; B 74 229 351 347 ;
-C 46 ; WX 280 ; N period ; B 72 0 205 128 ;
-C 47 ; WX 460 ; N slash ; B 26 -128 443 739 ;
-C 48 ; WX 560 ; N zero ; B 30 -13 525 752 ;
-C 49 ; WX 560 ; N one ; B 153 0 379 739 ;
-C 50 ; WX 560 ; N two ; B 34 0 520 752 ;
-C 51 ; WX 560 ; N three ; B 15 -13 518 752 ;
-C 52 ; WX 560 ; N four ; B 0 0 530 739 ;
-C 53 ; WX 560 ; N five ; B 12 -13 520 739 ;
-C 54 ; WX 560 ; N six ; B 21 -13 533 739 ;
-C 55 ; WX 560 ; N seven ; B 65 0 500 739 ;
-C 56 ; WX 560 ; N eight ; B 31 -13 523 752 ;
-C 57 ; WX 560 ; N nine ; B 22 0 532 752 ;
-C 58 ; WX 280 ; N colon ; B 72 0 205 502 ;
-C 59 ; WX 280 ; N semicolon ; B 72 -140 205 502 ;
-C 60 ; WX 600 ; N less ; B 49 33 558 582 ;
-C 61 ; WX 600 ; N equal ; B 51 210 555 523 ;
-C 62 ; WX 600 ; N greater ; B 48 33 557 582 ;
-C 63 ; WX 560 ; N question ; B 32 0 485 752 ;
-C 64 ; WX 740 ; N at ; B 3 -13 745 766 ;
-C 65 ; WX 740 ; N A ; B 7 0 733 739 ;
-C 66 ; WX 580 ; N B ; B 68 0 548 739 ;
-C 67 ; WX 780 ; N C ; B 30 -13 760 752 ;
-C 68 ; WX 700 ; N D ; B 68 0 660 739 ;
-C 69 ; WX 520 ; N E ; B 68 0 465 739 ;
-C 70 ; WX 480 ; N F ; B 68 0 444 739 ;
-C 71 ; WX 840 ; N G ; B 30 -13 818 752 ;
-C 72 ; WX 680 ; N H ; B 68 0 606 739 ;
-C 73 ; WX 280 ; N I ; B 68 0 205 739 ;
-C 74 ; WX 480 ; N J ; B 9 -13 414 739 ;
-C 75 ; WX 620 ; N K ; B 68 0 599 739 ;
-C 76 ; WX 440 ; N L ; B 68 0 431 739 ;
-C 77 ; WX 900 ; N M ; B 68 0 840 739 ;
-C 78 ; WX 740 ; N N ; B 68 0 667 739 ;
-C 79 ; WX 840 ; N O ; B 30 -13 800 752 ;
-C 80 ; WX 560 ; N P ; B 68 0 540 739 ;
-C 81 ; WX 840 ; N Q ; B 30 -15 828 752 ;
-C 82 ; WX 580 ; N R ; B 68 0 568 739 ;
-C 83 ; WX 520 ; N S ; B 14 -13 493 752 ;
-C 84 ; WX 420 ; N T ; B 7 0 418 739 ;
-C 85 ; WX 640 ; N U ; B 68 -13 567 739 ;
-C 86 ; WX 700 ; N V ; B 8 0 694 739 ;
-C 87 ; WX 900 ; N W ; B 7 0 898 739 ;
-C 88 ; WX 680 ; N X ; B 5 0 676 739 ;
-C 89 ; WX 620 ; N Y ; B 3 0 626 739 ;
-C 90 ; WX 500 ; N Z ; B 18 0 480 739 ;
-C 91 ; WX 320 ; N bracketleft ; B 74 -137 292 739 ;
-C 92 ; WX 640 ; N backslash ; B 84 0 503 739 ;
-C 93 ; WX 320 ; N bracketright ; B 37 -137 255 739 ;
-C 94 ; WX 600 ; N asciicircum ; B 63 313 543 739 ;
-C 95 ; WX 500 ; N underscore ; B 0 -138 500 -48 ;
-C 96 ; WX 280 ; N quoteleft ; B 72 466 205 739 ;
-C 97 ; WX 660 ; N a ; B 30 -13 615 567 ;
-C 98 ; WX 660 ; N b ; B 54 -13 638 739 ;
-C 99 ; WX 640 ; N c ; B 30 -13 601 567 ;
-C 100 ; WX 660 ; N d ; B 30 -13 613 739 ;
-C 101 ; WX 640 ; N e ; B 30 -13 608 567 ;
-C 102 ; WX 280 ; N f ; B 10 0 274 739 ;
-C 103 ; WX 660 ; N g ; B 30 -221 611 567 ;
-C 104 ; WX 600 ; N h ; B 54 0 545 739 ;
-C 105 ; WX 240 ; N i ; B 54 0 187 739 ;
-C 106 ; WX 260 ; N j ; B 17 -185 205 739 ;
-C 107 ; WX 580 ; N k ; B 54 0 555 739 ;
-C 108 ; WX 240 ; N l ; B 54 0 187 739 ;
-C 109 ; WX 940 ; N m ; B 54 0 885 567 ;
-C 110 ; WX 600 ; N n ; B 54 0 546 567 ;
-C 111 ; WX 640 ; N o ; B 30 -13 619 567 ;
-C 112 ; WX 660 ; N p ; B 54 -185 634 567 ;
-C 113 ; WX 660 ; N q ; B 30 -185 611 567 ;
-C 114 ; WX 320 ; N r ; B 54 0 306 567 ;
-C 115 ; WX 440 ; N s ; B 19 -13 420 567 ;
-C 116 ; WX 300 ; N t ; B 9 0 287 739 ;
-C 117 ; WX 600 ; N u ; B 54 -13 547 554 ;
-C 118 ; WX 560 ; N v ; B 1 0 553 554 ;
-C 119 ; WX 800 ; N w ; B 10 0 785 554 ;
-C 120 ; WX 560 ; N x ; B 1 0 553 554 ;
-C 121 ; WX 580 ; N y ; B 6 -185 568 554 ;
-C 122 ; WX 460 ; N z ; B 20 0 442 554 ;
-C 123 ; WX 340 ; N braceleft ; B 37 -129 302 740 ;
-C 124 ; WX 600 ; N bar ; B 243 0 362 739 ;
-C 125 ; WX 340 ; N braceright ; B 38 -129 303 740 ;
-C 126 ; WX 600 ; N asciitilde ; B 51 214 555 421 ;
-C 161 ; WX 280 ; N exclamdown ; B 72 -185 205 554 ;
-C 162 ; WX 560 ; N cent ; B 39 39 511 715 ;
-C 163 ; WX 560 ; N sterling ; B 0 0 563 752 ;
-C 164 ; WX 160 ; N fraction ; B -121 0 280 739 ;
-C 165 ; WX 560 ; N yen ; B -35 0 589 739 ;
-C 166 ; WX 560 ; N florin ; B -17 -149 494 823 ;
-C 167 ; WX 560 ; N section ; B 40 -157 529 752 ;
-C 168 ; WX 560 ; N currency ; B 27 148 534 654 ;
-C 169 ; WX 220 ; N quotesingle ; B 74 513 150 739 ;
-C 170 ; WX 480 ; N quotedblleft ; B 70 466 410 739 ;
-C 171 ; WX 460 ; N guillemotleft ; B 36 108 388 469 ;
-C 172 ; WX 240 ; N guilsinglleft ; B 36 108 175 469 ;
-C 173 ; WX 240 ; N guilsinglright ; B 73 108 212 469 ;
-C 174 ; WX 520 ; N fi ; B 8 0 461 739 ;
-C 175 ; WX 520 ; N fl ; B 8 0 461 739 ;
-C 177 ; WX 500 ; N endash ; B 0 229 500 347 ;
-C 178 ; WX 560 ; N dagger ; B 48 -128 505 739 ;
-C 179 ; WX 560 ; N daggerdbl ; B 48 -128 505 739 ;
-C 180 ; WX 280 ; N periodcentered ; B 72 300 205 433 ;
-C 182 ; WX 600 ; N paragraph ; B 37 -128 527 739 ;
-C 183 ; WX 600 ; N bullet ; B 134 147 471 484 ;
-C 184 ; WX 280 ; N quotesinglbase ; B 70 -140 203 128 ;
-C 185 ; WX 480 ; N quotedblbase ; B 70 -140 410 128 ;
-C 186 ; WX 480 ; N quotedblright ; B 70 466 410 739 ;
-C 187 ; WX 460 ; N guillemotright ; B 73 108 425 469 ;
-C 188 ; WX 1000 ; N ellipsis ; B 100 0 899 128 ;
-C 189 ; WX 1280 ; N perthousand ; B 21 -13 1248 752 ;
-C 191 ; WX 560 ; N questiondown ; B 69 -198 522 554 ;
-C 193 ; WX 420 ; N grave ; B 74 613 353 825 ;
-C 194 ; WX 420 ; N acute ; B 74 613 352 825 ;
-C 195 ; WX 540 ; N circumflex ; B 74 630 473 768 ;
-C 196 ; WX 480 ; N tilde ; B 74 636 405 772 ;
-C 197 ; WX 420 ; N macron ; B 74 648 351 748 ;
-C 198 ; WX 480 ; N breve ; B 74 630 404 769 ;
-C 199 ; WX 280 ; N dotaccent ; B 74 630 207 763 ;
-C 200 ; WX 500 ; N dieresis ; B 74 630 417 763 ;
-C 202 ; WX 360 ; N ring ; B 74 610 280 816 ;
-C 203 ; WX 340 ; N cedilla ; B 74 -251 270 0 ;
-C 205 ; WX 700 ; N hungarumlaut ; B 74 613 629 825 ;
-C 206 ; WX 340 ; N ogonek ; B 74 -204 256 0 ;
-C 207 ; WX 540 ; N caron ; B 74 630 473 768 ;
-C 208 ; WX 1000 ; N emdash ; B 0 229 1000 347 ;
-C 225 ; WX 900 ; N AE ; B 17 0 843 739 ;
-C 227 ; WX 360 ; N ordfeminine ; B 28 310 342 750 ;
-C 232 ; WX 480 ; N Lslash ; B 14 0 473 739 ;
-C 233 ; WX 840 ; N Oslash ; B 30 -65 803 809 ;
-C 234 ; WX 1060 ; N OE ; B 38 -13 1004 752 ;
-C 235 ; WX 360 ; N ordmasculine ; B 31 311 338 750 ;
-C 241 ; WX 1080 ; N ae ; B 30 -13 1051 567 ;
-C 245 ; WX 240 ; N dotlessi ; B 54 0 187 554 ;
-C 248 ; WX 320 ; N lslash ; B 17 0 312 739 ;
-C 249 ; WX 660 ; N oslash ; B 30 -67 620 623 ;
-C 250 ; WX 1080 ; N oe ; B 30 -13 1048 567 ;
-C 251 ; WX 600 ; N germandbls ; B 51 -13 584 752 ;
-C -1 ; WX 640 ; N Udieresis ; B 68 -13 567 938 ;
-C -1 ; WX 640 ; N Uacute ; B 68 -13 567 1000 ;
-C -1 ; WX 520 ; N Scedilla ; B 14 -251 493 752 ;
-C -1 ; WX 420 ; N Tcaron ; B 7 0 418 943 ;
-C -1 ; WX 520 ; N Scaron ; B 14 -13 493 943 ;
-C -1 ; WX 580 ; N Rcaron ; B 68 0 568 943 ;
-C -1 ; WX 580 ; N Racute ; B 68 0 568 1000 ;
-C -1 ; WX 520 ; N Sacute ; B 14 -13 493 1000 ;
-C -1 ; WX 840 ; N Otilde ; B 30 -13 800 947 ;
-C -1 ; WX 600 ; N ucircumflex ; B 54 -13 547 768 ;
-C -1 ; WX 840 ; N Ohungarumlaut ; B 30 -13 800 1000 ;
-C -1 ; WX 640 ; N Uhungarumlaut ; B 44 -13 599 1000 ;
-C -1 ; WX 620 ; N Yacute ; B 3 0 626 1000 ;
-C -1 ; WX 742 ; N Eth ; B 14 0 702 739 ;
-C -1 ; WX 742 ; N Dcroat ; B 14 0 702 739 ;
-C -1 ; WX 500 ; N Zacute ; B 18 0 480 1000 ;
-C -1 ; WX 640 ; N Uring ; B 68 -13 567 991 ;
-C -1 ; WX 660 ; N gbreve ; B 30 -221 611 769 ;
-C -1 ; WX 640 ; N eogonek ; B 30 -204 608 567 ;
-C -1 ; WX 640 ; N edotaccent ; B 30 -13 608 763 ;
-C -1 ; WX 640 ; N ecaron ; B 30 -13 608 768 ;
-C -1 ; WX 640 ; N Ugrave ; B 68 -13 567 1000 ;
-C -1 ; WX 560 ; N Thorn ; B 68 0 540 739 ;
-C -1 ; WX 640 ; N eacute ; B 30 -13 608 825 ;
-C -1 ; WX 640 ; N edieresis ; B 30 -13 608 763 ;
-C -1 ; WX 754 ; N dcaron ; B 30 -13 794 739 ;
-C -1 ; WX 640 ; N ccedilla ; B 30 -251 601 567 ;
-C -1 ; WX 640 ; N ccaron ; B 30 -13 601 768 ;
-C -1 ; WX 640 ; N cacute ; B 30 -13 601 825 ;
-C -1 ; WX 660 ; N aogonek ; B 30 -204 641 567 ;
-C -1 ; WX 660 ; N aring ; B 30 -13 615 816 ;
-C -1 ; WX 660 ; N atilde ; B 30 -13 615 772 ;
-C -1 ; WX 660 ; N abreve ; B 30 -13 615 769 ;
-C -1 ; WX 640 ; N egrave ; B 30 -13 608 825 ;
-C -1 ; WX 660 ; N agrave ; B 30 -13 615 825 ;
-C -1 ; WX 660 ; N aacute ; B 30 -13 615 825 ;
-C -1 ; WX 660 ; N adieresis ; B 30 -13 615 763 ;
-C -1 ; WX 640 ; N Uogonek ; B 68 -204 567 739 ;
-C -1 ; WX 600 ; N ugrave ; B 54 -13 547 825 ;
-C -1 ; WX 600 ; N uacute ; B 54 -13 547 825 ;
-C -1 ; WX 600 ; N udieresis ; B 54 -13 547 763 ;
-C -1 ; WX 369 ; N tcaron ; B 9 0 409 739 ;
-C -1 ; WX 440 ; N scommaaccent ; B 19 -245 420 567 ;
-C -1 ; WX 500 ; N Zcaron ; B 18 0 480 943 ;
-C -1 ; WX 640 ; N ecircumflex ; B 30 -13 608 768 ;
-C -1 ; WX 640 ; N Ucircumflex ; B 68 -13 567 943 ;
-C -1 ; WX 660 ; N acircumflex ; B 30 -13 615 768 ;
-C -1 ; WX 500 ; N Zdotaccent ; B 18 0 480 938 ;
-C -1 ; WX 440 ; N scaron ; B 19 -13 423 768 ;
-C -1 ; WX 740 ; N Amacron ; B 7 0 733 923 ;
-C -1 ; WX 440 ; N sacute ; B 19 -13 420 825 ;
-C -1 ; WX 420 ; N Tcommaaccent ; B 7 -245 418 739 ;
-C -1 ; WX 620 ; N Ydieresis ; B 3 0 626 938 ;
-C -1 ; WX 660 ; N thorn ; B 54 -185 634 739 ;
-C -1 ; WX 520 ; N Emacron ; B 68 0 465 923 ;
-C -1 ; WX 840 ; N Ograve ; B 30 -13 800 1000 ;
-C -1 ; WX 840 ; N Oacute ; B 30 -13 800 1000 ;
-C -1 ; WX 840 ; N Odieresis ; B 30 -13 800 938 ;
-C -1 ; WX 740 ; N Ntilde ; B 68 0 667 947 ;
-C -1 ; WX 740 ; N Ncaron ; B 68 0 667 943 ;
-C -1 ; WX 740 ; N Nacute ; B 68 0 667 1000 ;
-C -1 ; WX 440 ; N Lcaron ; B 68 0 440 739 ;
-C -1 ; WX 440 ; N Lacute ; B 68 0 431 1000 ;
-C -1 ; WX 280 ; N Idotaccent ; B 68 0 207 938 ;
-C -1 ; WX 320 ; N racute ; B 24 0 306 825 ;
-C -1 ; WX 280 ; N Icircumflex ; B -56 0 343 943 ;
-C -1 ; WX 640 ; N ohungarumlaut ; B 30 -13 619 825 ;
-C -1 ; WX 640 ; N otilde ; B 30 -13 619 772 ;
-C -1 ; WX 560 ; N Euro ; B -33 -11 595 750 ;
-C -1 ; WX 640 ; N ocircumflex ; B 30 -13 619 768 ;
-C -1 ; WX 336 ; N onesuperior ; B 94 296 241 739 ;
-C -1 ; WX 336 ; N twosuperior ; B 10 296 326 747 ;
-C -1 ; WX 336 ; N threesuperior ; B 4 288 331 746 ;
-C -1 ; WX 280 ; N Igrave ; B 4 0 283 1000 ;
-C -1 ; WX 280 ; N Iacute ; B 4 0 282 1000 ;
-C -1 ; WX 280 ; N Imacron ; B 4 0 281 923 ;
-C -1 ; WX 280 ; N Iogonek ; B 49 -204 231 739 ;
-C -1 ; WX 280 ; N Idieresis ; B -36 0 307 938 ;
-C -1 ; WX 840 ; N Gbreve ; B 30 -13 818 944 ;
-C -1 ; WX 640 ; N Umacron ; B 68 -13 567 923 ;
-C -1 ; WX 620 ; N Kcommaaccent ; B 68 -245 599 739 ;
-C -1 ; WX 640 ; N ograve ; B 30 -13 619 825 ;
-C -1 ; WX 520 ; N Scommaaccent ; B 14 -245 493 752 ;
-C -1 ; WX 520 ; N Eogonek ; B 68 -204 491 739 ;
-C -1 ; WX 640 ; N oacute ; B 30 -13 619 825 ;
-C -1 ; WX 520 ; N Edotaccent ; B 68 0 465 938 ;
-C -1 ; WX 240 ; N iogonek ; B 31 -204 213 739 ;
-C -1 ; WX 660 ; N gcommaaccent ; B 30 -221 611 799 ;
-C -1 ; WX 640 ; N odieresis ; B 30 -13 619 763 ;
-C -1 ; WX 600 ; N ntilde ; B 54 0 546 772 ;
-C -1 ; WX 600 ; N ncaron ; B 54 0 546 768 ;
-C -1 ; WX 520 ; N Ecaron ; B 64 0 465 943 ;
-C -1 ; WX 520 ; N Ecircumflex ; B 64 0 465 943 ;
-C -1 ; WX 440 ; N scedilla ; B 19 -251 420 567 ;
-C -1 ; WX 320 ; N rcaron ; B -36 0 363 768 ;
-C -1 ; WX 520 ; N Egrave ; B 68 0 465 1000 ;
-C -1 ; WX 520 ; N Eacute ; B 68 0 465 1000 ;
-C -1 ; WX 840 ; N Gcommaaccent ; B 30 -245 818 752 ;
-C -1 ; WX 580 ; N Rcommaaccent ; B 68 -245 568 739 ;
-C -1 ; WX 520 ; N Edieresis ; B 68 0 465 938 ;
-C -1 ; WX 600 ; N nacute ; B 54 0 546 825 ;
-C -1 ; WX 600 ; N uogonek ; B 54 -204 573 554 ;
-C -1 ; WX 600 ; N umacron ; B 54 -13 547 748 ;
-C -1 ; WX 700 ; N Dcaron ; B 68 0 660 943 ;
-C -1 ; WX 330 ; N lcaron ; B 54 0 370 739 ;
-C -1 ; WX 780 ; N Ccaron ; B 30 -13 760 943 ;
-C -1 ; WX 780 ; N Cacute ; B 30 -13 760 1000 ;
-C -1 ; WX 780 ; N Ccedilla ; B 30 -251 760 752 ;
-C -1 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C -1 ; WX 740 ; N Aogonek ; B 7 -204 759 739 ;
-C -1 ; WX 600 ; N minus ; B 51 312 555 430 ;
-C -1 ; WX 600 ; N multiply ; B 51 114 555 618 ;
-C -1 ; WX 600 ; N divide ; B 51 73 555 669 ;
-C -1 ; WX 740 ; N Aring ; B 7 0 733 991 ;
-C -1 ; WX 1000 ; N trademark ; B 71 345 929 739 ;
-C -1 ; WX 320 ; N rcommaaccent ; B 54 -245 306 567 ;
-C -1 ; WX 240 ; N lacute ; B -16 0 262 1000 ;
-C -1 ; WX 640 ; N omacron ; B 30 -13 619 748 ;
-C -1 ; WX 740 ; N Atilde ; B 7 0 733 947 ;
-C -1 ; WX 240 ; N icircumflex ; B -76 0 323 768 ;
-C -1 ; WX 240 ; N igrave ; B -16 0 263 825 ;
-C -1 ; WX 600 ; N ncommaaccent ; B 54 -245 546 567 ;
-C -1 ; WX 240 ; N lcommaaccent ; B 16 -245 187 739 ;
-C -1 ; WX 600 ; N plusminus ; B 51 0 555 653 ;
-C -1 ; WX 840 ; N onehalf ; B 94 0 830 739 ;
-C -1 ; WX 840 ; N onequarter ; B 94 0 836 739 ;
-C -1 ; WX 840 ; N threequarters ; B 4 0 836 746 ;
-C -1 ; WX 240 ; N iacute ; B -16 0 262 825 ;
-C -1 ; WX 740 ; N Abreve ; B 7 0 733 944 ;
-C -1 ; WX 580 ; N kcommaaccent ; B 54 -245 555 739 ;
-C -1 ; WX 840 ; N Omacron ; B 30 -13 800 923 ;
-C -1 ; WX 240 ; N imacron ; B -16 0 261 748 ;
-C -1 ; WX 640 ; N emacron ; B 30 -13 608 748 ;
-C -1 ; WX 660 ; N amacron ; B 30 -13 615 748 ;
-C -1 ; WX 300 ; N tcommaaccent ; B 9 -245 287 739 ;
-C -1 ; WX 580 ; N ydieresis ; B 6 -185 568 763 ;
-C -1 ; WX 460 ; N zdotaccent ; B 20 0 442 763 ;
-C -1 ; WX 460 ; N zcaron ; B 20 0 442 768 ;
-C -1 ; WX 460 ; N zacute ; B 20 0 442 825 ;
-C -1 ; WX 580 ; N yacute ; B 6 -185 568 825 ;
-C -1 ; WX 600 ; N uhungarumlaut ; B 24 -13 579 825 ;
-C -1 ; WX 640 ; N eth ; B 30 -13 619 756 ;
-C -1 ; WX 600 ; N uring ; B 54 -13 547 816 ;
-C -1 ; WX 840 ; N Ocircumflex ; B 30 -13 800 943 ;
-C -1 ; WX 351 ; N commaaccent ; B 71 -245 233 -53 ;
-C -1 ; WX 740 ; N copyright ; B -12 -13 759 752 ;
-C -1 ; WX 740 ; N registered ; B -12 -13 759 752 ;
-C -1 ; WX 740 ; N Acircumflex ; B 7 0 733 943 ;
-C -1 ; WX 240 ; N idieresis ; B -56 0 287 763 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 600 ; N notequal ; B 51 101 555 632 ;
-C -1 ; WX 549 ; N radical ; B -25 -35 542 917 ;
-C -1 ; WX 740 ; N Agrave ; B 7 0 733 1000 ;
-C -1 ; WX 740 ; N Aacute ; B 7 0 733 1000 ;
-C -1 ; WX 600 ; N lessequal ; B 45 0 549 711 ;
-C -1 ; WX 600 ; N greaterequal ; B 51 0 555 711 ;
-C -1 ; WX 600 ; N logicalnot ; B 51 182 555 473 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 68 -245 667 739 ;
-C -1 ; WX 660 ; N dcroat ; B 30 -13 660 739 ;
-C -1 ; WX 600 ; N brokenbar ; B 243 0 362 739 ;
-C -1 ; WX 440 ; N Lcommaaccent ; B 68 -245 431 739 ;
-C -1 ; WX 740 ; N Adieresis ; B 7 0 733 938 ;
-C -1 ; WX 576 ; N mu ; B 54 -185 547 554 ;
-C -1 ; WX 280 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -36
-KPX A Ccedilla -37
-KPX A G -36
-KPX A O -36
-KPX A Odieresis -36
-KPX A Q -37
-KPX A T -41
-KPX A U -31
-KPX A Uacute -31
-KPX A Ucircumflex -31
-KPX A Udieresis -31
-KPX A Ugrave -31
-KPX A V -74
-KPX A W -55
-KPX A Y -83
-KPX A a -20
-KPX A b 0
-KPX A c -23
-KPX A ccedilla -23
-KPX A comma 20
-KPX A d -20
-KPX A e -23
-KPX A g -20
-KPX A guillemotleft -16
-KPX A guilsinglleft -16
-KPX A hyphen -17
-KPX A o -23
-KPX A period 20
-KPX A q -22
-KPX A quotedblright -73
-KPX A quoteright -74
-KPX A t -10
-KPX A u -14
-KPX A v -42
-KPX A w -40
-KPX A y -43
-KPX Aacute C -36
-KPX Aacute G -36
-KPX Aacute O -36
-KPX Aacute Q -37
-KPX Aacute T -41
-KPX Aacute U -31
-KPX Aacute V -74
-KPX Aacute W -55
-KPX Aacute Y -83
-KPX Aacute a -20
-KPX Aacute b 0
-KPX Aacute c -23
-KPX Aacute comma 20
-KPX Aacute d -20
-KPX Aacute e -23
-KPX Aacute g -20
-KPX Aacute guillemotleft -16
-KPX Aacute guilsinglleft -16
-KPX Aacute hyphen -17
-KPX Aacute o -23
-KPX Aacute period 20
-KPX Aacute q -22
-KPX Aacute quoteright -74
-KPX Aacute t -10
-KPX Aacute u -14
-KPX Aacute v -42
-KPX Aacute w -40
-KPX Aacute y -43
-KPX Acircumflex C -36
-KPX Acircumflex G -36
-KPX Acircumflex O -36
-KPX Acircumflex Q -37
-KPX Acircumflex T -41
-KPX Acircumflex U -31
-KPX Acircumflex V -74
-KPX Acircumflex W -55
-KPX Acircumflex Y -83
-KPX Acircumflex comma 20
-KPX Acircumflex period 20
-KPX Adieresis C -36
-KPX Adieresis G -36
-KPX Adieresis O -36
-KPX Adieresis Q -37
-KPX Adieresis T -41
-KPX Adieresis U -31
-KPX Adieresis V -74
-KPX Adieresis W -55
-KPX Adieresis Y -83
-KPX Adieresis a -20
-KPX Adieresis b 0
-KPX Adieresis c -23
-KPX Adieresis comma 20
-KPX Adieresis d -20
-KPX Adieresis g -20
-KPX Adieresis guillemotleft -16
-KPX Adieresis guilsinglleft -16
-KPX Adieresis hyphen -17
-KPX Adieresis o -23
-KPX Adieresis period 20
-KPX Adieresis q -22
-KPX Adieresis quotedblright -73
-KPX Adieresis quoteright -74
-KPX Adieresis t -10
-KPX Adieresis u -14
-KPX Adieresis v -42
-KPX Adieresis w -40
-KPX Adieresis y -43
-KPX Agrave C -36
-KPX Agrave G -36
-KPX Agrave O -36
-KPX Agrave Q -37
-KPX Agrave T -41
-KPX Agrave U -31
-KPX Agrave V -74
-KPX Agrave W -55
-KPX Agrave Y -83
-KPX Agrave comma 20
-KPX Agrave period 20
-KPX Aring C -36
-KPX Aring G -36
-KPX Aring O -36
-KPX Aring Q -37
-KPX Aring T -41
-KPX Aring U -31
-KPX Aring V -74
-KPX Aring W -55
-KPX Aring Y -83
-KPX Aring a -20
-KPX Aring b 0
-KPX Aring c -23
-KPX Aring comma 20
-KPX Aring d -20
-KPX Aring e -23
-KPX Aring g -20
-KPX Aring guillemotleft -16
-KPX Aring guilsinglleft -16
-KPX Aring hyphen -17
-KPX Aring o -23
-KPX Aring period 20
-KPX Aring q -22
-KPX Aring quotedblright -73
-KPX Aring quoteright -74
-KPX Aring t -10
-KPX Aring u -14
-KPX Aring v -42
-KPX Aring w -40
-KPX Aring y -43
-KPX Atilde C -36
-KPX Atilde G -36
-KPX Atilde O -36
-KPX Atilde Q -37
-KPX Atilde T -41
-KPX Atilde U -31
-KPX Atilde V -74
-KPX Atilde W -55
-KPX Atilde Y -83
-KPX Atilde comma 20
-KPX Atilde period 20
-KPX B A -18
-KPX B AE -36
-KPX B Aacute -18
-KPX B Acircumflex -18
-KPX B Adieresis -18
-KPX B Aring -18
-KPX B Atilde -18
-KPX B O 2
-KPX B OE 0
-KPX B Oacute 2
-KPX B Ocircumflex 2
-KPX B Odieresis 2
-KPX B Ograve 2
-KPX B Oslash 4
-KPX B V -33
-KPX B W -16
-KPX B Y -39
-KPX C A -17
-KPX C AE -41
-KPX C Aacute -17
-KPX C Adieresis -17
-KPX C Aring -17
-KPX C H 6
-KPX C K 6
-KPX C O -6
-KPX C Oacute -6
-KPX C Odieresis -6
-KPX Ccedilla A -17
-KPX D A -38
-KPX D Aacute -38
-KPX D Acircumflex -38
-KPX D Adieresis -38
-KPX D Agrave -38
-KPX D Aring -38
-KPX D Atilde -38
-KPX D J -14
-KPX D T -24
-KPX D V -39
-KPX D W -21
-KPX D X -33
-KPX D Y -50
-KPX F A -53
-KPX F Aacute -53
-KPX F Acircumflex -53
-KPX F Adieresis -53
-KPX F Agrave -53
-KPX F Aring -53
-KPX F Atilde -53
-KPX F J -55
-KPX F O -3
-KPX F Odieresis -3
-KPX F a -9
-KPX F aacute -9
-KPX F adieresis -9
-KPX F ae -8
-KPX F aring -9
-KPX F comma -60
-KPX F e -9
-KPX F eacute -9
-KPX F hyphen 5
-KPX F i -9
-KPX F j -22
-KPX F o -9
-KPX F oacute -9
-KPX F odieresis -9
-KPX F oe -9
-KPX F oslash -9
-KPX F period -60
-KPX F r -9
-KPX F u -12
-KPX G A -35
-KPX G AE -60
-KPX G Aacute -35
-KPX G Acircumflex -35
-KPX G Adieresis -35
-KPX G Agrave -35
-KPX G Aring -35
-KPX G Atilde -35
-KPX G T -24
-KPX G V -38
-KPX G W -20
-KPX G Y -49
-KPX J A -27
-KPX J AE -41
-KPX J Adieresis -27
-KPX J Aring -27
-KPX K C -46
-KPX K G -46
-KPX K O -46
-KPX K OE -48
-KPX K Oacute -46
-KPX K Odieresis -46
-KPX K S -27
-KPX K T 21
-KPX K a -51
-KPX K adieresis -51
-KPX K ae -52
-KPX K aring -51
-KPX K e -54
-KPX K hyphen -68
-KPX K o -55
-KPX K oacute -55
-KPX K odieresis -55
-KPX K u -46
-KPX K udieresis -44
-KPX K y -59
-KPX L A 26
-KPX L AE 20
-KPX L Aacute 26
-KPX L Adieresis 26
-KPX L Aring 26
-KPX L C -22
-KPX L Ccedilla -25
-KPX L G -22
-KPX L O -21
-KPX L Oacute -21
-KPX L Ocircumflex -21
-KPX L Odieresis -21
-KPX L Ograve -21
-KPX L Otilde -21
-KPX L S 17
-KPX L T -41
-KPX L U -12
-KPX L Udieresis -12
-KPX L V -73
-KPX L W -54
-KPX L Y -82
-KPX L hyphen -26
-KPX L quotedblright -71
-KPX L quoteright -72
-KPX L u -5
-KPX L udieresis -5
-KPX L y -48
-KPX N A -6
-KPX N AE -11
-KPX N Aacute -6
-KPX N Adieresis -6
-KPX N Aring -6
-KPX N C 7
-KPX N Ccedilla 7
-KPX N G 7
-KPX N O 7
-KPX N Oacute 7
-KPX N Odieresis 7
-KPX N a 5
-KPX N aacute 5
-KPX N adieresis 5
-KPX N ae 4
-KPX N aring 5
-KPX N comma 8
-KPX N e 3
-KPX N eacute 3
-KPX N o 3
-KPX N oacute 3
-KPX N odieresis 3
-KPX N oslash 5
-KPX N period 8
-KPX N u 9
-KPX N udieresis 9
-KPX O A -40
-KPX O AE -70
-KPX O Aacute -40
-KPX O Adieresis -40
-KPX O Aring -40
-KPX O T -29
-KPX O V -42
-KPX O W -24
-KPX O X -36
-KPX O Y -53
-KPX Oacute A -40
-KPX Oacute T -29
-KPX Oacute V -42
-KPX Oacute W -24
-KPX Oacute Y -53
-KPX Ocircumflex T -29
-KPX Ocircumflex V -42
-KPX Ocircumflex Y -53
-KPX Odieresis A -40
-KPX Odieresis T -29
-KPX Odieresis V -42
-KPX Odieresis W -24
-KPX Odieresis X -36
-KPX Odieresis Y -53
-KPX Ograve T -29
-KPX Ograve V -42
-KPX Ograve Y -53
-KPX Oslash A -37
-KPX Otilde T -29
-KPX Otilde V -42
-KPX Otilde Y -53
-KPX P A -60
-KPX P AE -108
-KPX P Aacute -60
-KPX P Adieresis -60
-KPX P Aring -60
-KPX P J -68
-KPX P a -18
-KPX P aacute -18
-KPX P adieresis -18
-KPX P ae -19
-KPX P aring -18
-KPX P comma -95
-KPX P e -20
-KPX P eacute -20
-KPX P hyphen -20
-KPX P o -20
-KPX P oacute -20
-KPX P odieresis -20
-KPX P oe -20
-KPX P oslash -20
-KPX P period -95
-KPX R C 5
-KPX R Ccedilla 5
-KPX R G 5
-KPX R O 5
-KPX R OE 2
-KPX R Oacute 5
-KPX R Odieresis 5
-KPX R T 12
-KPX R U 10
-KPX R Udieresis 10
-KPX R V -12
-KPX R W -5
-KPX R Y -17
-KPX R a -3
-KPX R aacute -3
-KPX R adieresis -3
-KPX R ae -4
-KPX R aring -3
-KPX R e -5
-KPX R eacute -5
-KPX R hyphen -15
-KPX R o -6
-KPX R oacute -6
-KPX R odieresis -6
-KPX R oe -5
-KPX R u 8
-KPX R uacute 8
-KPX R udieresis 8
-KPX R y 15
-KPX S A -14
-KPX S AE -30
-KPX S Aacute -14
-KPX S Adieresis -14
-KPX S Aring -14
-KPX S T 2
-KPX S V -22
-KPX S W -10
-KPX S Y -27
-KPX S t 12
-KPX T A -39
-KPX T AE -44
-KPX T Aacute -39
-KPX T Acircumflex -39
-KPX T Adieresis -39
-KPX T Agrave -39
-KPX T Aring -39
-KPX T Atilde -39
-KPX T C -22
-KPX T G -22
-KPX T J -39
-KPX T O -22
-KPX T OE -24
-KPX T Oacute -22
-KPX T Ocircumflex -22
-KPX T Odieresis -22
-KPX T Ograve -22
-KPX T Oslash -19
-KPX T Otilde -22
-KPX T S 7
-KPX T V 29
-KPX T W 30
-KPX T Y 31
-KPX T a -33
-KPX T ae -34
-KPX T c -35
-KPX T colon -33
-KPX T comma -25
-KPX T e -35
-KPX T g -32
-KPX T guillemotleft -25
-KPX T guilsinglleft -25
-KPX T hyphen -26
-KPX T i 2
-KPX T j -6
-KPX T o -36
-KPX T oslash -32
-KPX T period -25
-KPX T r -21
-KPX T s -25
-KPX T semicolon -33
-KPX T u -26
-KPX T v -40
-KPX T w -45
-KPX T y -43
-KPX U A -34
-KPX U AE -55
-KPX U Aacute -34
-KPX U Acircumflex -34
-KPX U Adieresis -34
-KPX U Aring -34
-KPX U Atilde -34
-KPX U comma -11
-KPX U m 8
-KPX U n 8
-KPX U p 8
-KPX U period -8
-KPX U r 8
-KPX Uacute A -34
-KPX Uacute comma -11
-KPX Uacute m 8
-KPX Uacute n 8
-KPX Uacute p 8
-KPX Uacute period -8
-KPX Uacute r 8
-KPX Ucircumflex A -34
-KPX Udieresis A -34
-KPX Udieresis b 8
-KPX Udieresis comma -11
-KPX Udieresis m 8
-KPX Udieresis n 8
-KPX Udieresis p 8
-KPX Udieresis period -8
-KPX Udieresis r 8
-KPX Ugrave A -34
-KPX V A -72
-KPX V AE -119
-KPX V Aacute -72
-KPX V Acircumflex -72
-KPX V Adieresis -72
-KPX V Agrave -72
-KPX V Aring -72
-KPX V Atilde -72
-KPX V C -36
-KPX V G -36
-KPX V O -36
-KPX V Oacute -36
-KPX V Ocircumflex -36
-KPX V Odieresis -36
-KPX V Ograve -36
-KPX V Oslash -34
-KPX V Otilde -36
-KPX V S -19
-KPX V T 28
-KPX V a -55
-KPX V ae -56
-KPX V colon -51
-KPX V comma -80
-KPX V e -58
-KPX V g -54
-KPX V guillemotleft -47
-KPX V guilsinglleft -47
-KPX V hyphen -48
-KPX V i 0
-KPX V o -58
-KPX V oslash -55
-KPX V period -80
-KPX V r -35
-KPX V semicolon -51
-KPX V u -39
-KPX V y -14
-KPX W A -52
-KPX W AE -83
-KPX W Aacute -52
-KPX W Acircumflex -52
-KPX W Adieresis -52
-KPX W Agrave -52
-KPX W Aring -52
-KPX W Atilde -52
-KPX W C -16
-KPX W G -17
-KPX W O -16
-KPX W Oacute -16
-KPX W Ocircumflex -16
-KPX W Odieresis -16
-KPX W Ograve -16
-KPX W Oslash -14
-KPX W Otilde -16
-KPX W S -5
-KPX W T 30
-KPX W a -31
-KPX W ae -32
-KPX W colon -34
-KPX W comma -48
-KPX W e -34
-KPX W g -30
-KPX W guillemotleft -23
-KPX W guilsinglleft -23
-KPX W hyphen -24
-KPX W i 2
-KPX W o -34
-KPX W oslash -31
-KPX W period -48
-KPX W r -18
-KPX W semicolon -34
-KPX W u -24
-KPX W y -3
-KPX X C -32
-KPX X O -32
-KPX X Odieresis -32
-KPX X Q -32
-KPX X a -39
-KPX X e -41
-KPX X hyphen -53
-KPX X o -42
-KPX X u -32
-KPX X y -42
-KPX Y A -78
-KPX Y AE -93
-KPX Y Aacute -78
-KPX Y Acircumflex -78
-KPX Y Adieresis -78
-KPX Y Agrave -78
-KPX Y Aring -78
-KPX Y Atilde -78
-KPX Y C -44
-KPX Y G -44
-KPX Y O -44
-KPX Y Oacute -44
-KPX Y Ocircumflex -44
-KPX Y Odieresis -44
-KPX Y Ograve -44
-KPX Y Oslash -41
-KPX Y Otilde -44
-KPX Y S -20
-KPX Y T 34
-KPX Y a -64
-KPX Y ae -66
-KPX Y colon -61
-KPX Y comma -75
-KPX Y e -67
-KPX Y g -63
-KPX Y guillemotleft -62
-KPX Y guilsinglleft -62
-KPX Y hyphen -66
-KPX Y i 6
-KPX Y o -67
-KPX Y oslash -64
-KPX Y p -41
-KPX Y period -75
-KPX Y semicolon -61
-KPX Y u -46
-KPX Y v -18
-KPX Z v -11
-KPX Z y -13
-KPX a j 9
-KPX a quoteright 11
-KPX a v 0
-KPX a w -4
-KPX a y -3
-KPX aacute v 0
-KPX aacute w -4
-KPX aacute y -3
-KPX adieresis v 0
-KPX adieresis w -4
-KPX adieresis y -3
-KPX ae v -25
-KPX ae w -24
-KPX ae y -29
-KPX agrave v 0
-KPX agrave w -4
-KPX agrave y -3
-KPX aring v 0
-KPX aring w -4
-KPX aring y -3
-KPX b v -19
-KPX b w -17
-KPX b y -22
-KPX c h -7
-KPX c k -7
-KPX comma one -80
-KPX comma quotedblright -27
-KPX comma quoteright -28
-KPX e quoteright -20
-KPX e t -2
-KPX e v -27
-KPX e w -25
-KPX e x -26
-KPX e y -31
-KPX eacute v -27
-KPX eacute w -25
-KPX eacute y -31
-KPX ecircumflex v -27
-KPX ecircumflex w -25
-KPX ecircumflex y -31
-KPX eight four 16
-KPX eight one -75
-KPX eight seven -43
-KPX f a -6
-KPX f aacute -6
-KPX f adieresis -6
-KPX f ae -8
-KPX f aring -6
-KPX f e -9
-KPX f eacute -9
-KPX f f 13
-KPX f i 7
-KPX f j -3
-KPX f l 7
-KPX f o -9
-KPX f oacute -9
-KPX f odieresis -9
-KPX f oe -8
-KPX f oslash -6
-KPX f quoteright 16
-KPX f s 1
-KPX f t 14
-KPX five four 14
-KPX five one -84
-KPX five seven -53
-KPX four four 19
-KPX four one -76
-KPX four seven -44
-KPX g a 9
-KPX g adieresis 9
-KPX g ae 8
-KPX g aring 9
-KPX g e 7
-KPX g eacute 7
-KPX g l 16
-KPX g oacute 7
-KPX g odieresis 7
-KPX g r 16
-KPX guillemotright A -16
-KPX guillemotright AE -54
-KPX guillemotright Aacute -16
-KPX guillemotright Adieresis -16
-KPX guillemotright Aring -16
-KPX guillemotright T -27
-KPX guillemotright V -48
-KPX guillemotright W -26
-KPX guillemotright Y -66
-KPX guilsinglright A -12
-KPX guilsinglright AE -50
-KPX guilsinglright Aacute -12
-KPX guilsinglright Adieresis -12
-KPX guilsinglright Aring -12
-KPX guilsinglright T -24
-KPX guilsinglright V -45
-KPX guilsinglright W -22
-KPX guilsinglright Y -62
-KPX h quoteright -9
-KPX h y -21
-KPX hyphen A -15
-KPX hyphen AE -53
-KPX hyphen Aacute -15
-KPX hyphen Adieresis -15
-KPX hyphen Aring -15
-KPX hyphen T -26
-KPX hyphen V -47
-KPX hyphen W -24
-KPX hyphen Y -68
-KPX i T 0
-KPX i j 5
-KPX k a -45
-KPX k aacute -45
-KPX k adieresis -45
-KPX k ae -47
-KPX k aring -45
-KPX k comma -7
-KPX k e -48
-KPX k eacute -48
-KPX k g -45
-KPX k hyphen -71
-KPX k o -48
-KPX k oacute -48
-KPX k odieresis -48
-KPX k period -7
-KPX k s -32
-KPX k u -37
-KPX k udieresis -30
-KPX l v -2
-KPX l y -5
-KPX m p 11
-KPX m v -19
-KPX m w -18
-KPX m y -21
-KPX n T -29
-KPX n p 12
-KPX n quoteright -8
-KPX n v -18
-KPX n w -17
-KPX n y -20
-KPX nine four -30
-KPX nine one -69
-KPX nine seven -25
-KPX o T -33
-KPX o quoteright -16
-KPX o t 1
-KPX o v -22
-KPX o w -21
-KPX o x -22
-KPX o y -26
-KPX oacute v -22
-KPX oacute w -21
-KPX oacute y -26
-KPX ocircumflex t 1
-KPX odieresis t 1
-KPX odieresis v -22
-KPX odieresis w -21
-KPX odieresis x -22
-KPX odieresis y -26
-KPX ograve v -22
-KPX ograve w -21
-KPX ograve y -26
-KPX one comma -45
-KPX one eight -43
-KPX one five -39
-KPX one four -52
-KPX one nine -47
-KPX one one -120
-KPX one period -45
-KPX one seven -88
-KPX one six -49
-KPX one three -51
-KPX one two -45
-KPX one zero -28
-KPX p t 2
-KPX p y -25
-KPX period one -80
-KPX period quotedblright -27
-KPX period quoteright -28
-KPX q c 7
-KPX q u 14
-KPX quotedblbase A 20
-KPX quotedblbase AE 3
-KPX quotedblbase T -27
-KPX quotedblbase V -80
-KPX quotedblbase W -50
-KPX quotedblbase Y -78
-KPX quotedblleft A -73
-KPX quotedblleft AE -145
-KPX quotedblleft Aacute -73
-KPX quotedblleft Adieresis -73
-KPX quotedblleft Aring -73
-KPX quotedblleft T 9
-KPX quotedblleft V 9
-KPX quotedblleft W 17
-KPX quotedblleft Y 0
-KPX quotedblright A -76
-KPX quotedblright AE -149
-KPX quotedblright Aacute -76
-KPX quotedblright Adieresis -76
-KPX quotedblright Aring -76
-KPX quotedblright T 10
-KPX quotedblright V 7
-KPX quotedblright W 15
-KPX quotedblright Y -1
-KPX quoteleft A -76
-KPX quoteleft AE -148
-KPX quoteleft Aacute -76
-KPX quoteleft Adieresis -76
-KPX quoteleft Aring -76
-KPX quoteleft T 7
-KPX quoteleft V 6
-KPX quoteleft W 15
-KPX quoteleft Y -1
-KPX quoteright A -79
-KPX quoteright AE -151
-KPX quoteright Aacute -79
-KPX quoteright Adieresis -79
-KPX quoteright Aring -79
-KPX quoteright comma -38
-KPX quoteright d -24
-KPX quoteright o -31
-KPX quoteright period -38
-KPX quoteright r -1
-KPX quoteright s -9
-KPX quoteright t 12
-KPX quoteright v 6
-KPX quoteright w 4
-KPX quoteright y 4
-KPX r a -18
-KPX r aacute -18
-KPX r acircumflex -18
-KPX r adieresis -18
-KPX r ae -20
-KPX r agrave -18
-KPX r aring -18
-KPX r c -20
-KPX r ccedilla -17
-KPX r colon -12
-KPX r comma -30
-KPX r d -17
-KPX r e -21
-KPX r eacute -21
-KPX r ecircumflex -21
-KPX r egrave -21
-KPX r f 13
-KPX r g -14
-KPX r h 0
-KPX r hyphen -30
-KPX r i 0
-KPX r j -16
-KPX r k 0
-KPX r l 0
-KPX r m 0
-KPX r n 0
-KPX r o -22
-KPX r oacute -22
-KPX r ocircumflex -22
-KPX r odieresis -22
-KPX r oe -20
-KPX r ograve -22
-KPX r oslash -21
-KPX r p 0
-KPX r period -30
-KPX r q -16
-KPX r quoteright 19
-KPX r r 0
-KPX r s -3
-KPX r semicolon -12
-KPX r t 14
-KPX r u -5
-KPX r v 17
-KPX r w 12
-KPX r x 3
-KPX r y 14
-KPX r z -5
-KPX s quoteright -4
-KPX s t 8
-KPX seven colon -58
-KPX seven comma -96
-KPX seven eight -39
-KPX seven five -36
-KPX seven four -65
-KPX seven one -71
-KPX seven period -96
-KPX seven seven -27
-KPX seven six -56
-KPX seven three -35
-KPX seven two -22
-KPX six four 20
-KPX six one -83
-KPX six seven -54
-KPX t S 8
-KPX t a -8
-KPX t aacute -8
-KPX t adieresis -8
-KPX t ae -9
-KPX t aring -8
-KPX t colon -6
-KPX t e -10
-KPX t eacute -10
-KPX t h 10
-KPX t o -10
-KPX t oacute -10
-KPX t odieresis -10
-KPX t quoteright 20
-KPX t semicolon -6
-KPX three four 13
-KPX three one -79
-KPX three seven -51
-KPX two four 13
-KPX two one -71
-KPX two seven -28
-KPX u quoteright 8
-KPX v a -27
-KPX v aacute -27
-KPX v acircumflex -27
-KPX v adieresis -27
-KPX v ae -28
-KPX v agrave -27
-KPX v aring -27
-KPX v atilde -27
-KPX v c -30
-KPX v colon -20
-KPX v comma -60
-KPX v e -30
-KPX v eacute -30
-KPX v ecircumflex -30
-KPX v egrave -30
-KPX v g -26
-KPX v hyphen -22
-KPX v l -5
-KPX v o -30
-KPX v oacute -30
-KPX v odieresis -30
-KPX v ograve -30
-KPX v oslash -27
-KPX v period -60
-KPX v s -19
-KPX v semicolon -20
-KPX w a -25
-KPX w aacute -25
-KPX w acircumflex -25
-KPX w adieresis -25
-KPX w ae -27
-KPX w agrave -25
-KPX w aring -25
-KPX w atilde -25
-KPX w c -28
-KPX w colon -23
-KPX w comma -54
-KPX w e -28
-KPX w eacute -28
-KPX w ecircumflex -28
-KPX w egrave -28
-KPX w g -24
-KPX w hyphen -21
-KPX w l -9
-KPX w o -28
-KPX w oacute -28
-KPX w odieresis -28
-KPX w ograve -28
-KPX w oslash -26
-KPX w period -54
-KPX w s -18
-KPX w semicolon -23
-KPX x a -27
-KPX x c -30
-KPX x e -30
-KPX x eacute -30
-KPX x o -30
-KPX x q -28
-KPX y a -35
-KPX y aacute -35
-KPX y acircumflex -35
-KPX y adieresis -35
-KPX y ae -36
-KPX y agrave -35
-KPX y aring -35
-KPX y atilde -35
-KPX y c -37
-KPX y colon -23
-KPX y comma -70
-KPX y e -38
-KPX y eacute -38
-KPX y ecircumflex -38
-KPX y egrave -38
-KPX y g -34
-KPX y hyphen -29
-KPX y l -7
-KPX y o -38
-KPX y oacute -38
-KPX y odieresis -38
-KPX y ograve -38
-KPX y oslash -34
-KPX y period -69
-KPX y s -26
-KPX y semicolon -23
-KPX zero four 17
-KPX zero one -61
-KPX zero seven -27
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/a010015l.pfb b/Master/xemtex/gsfonts/a010015l.pfb
deleted file mode 100644
index b301fcdcb96..00000000000
--- a/Master/xemtex/gsfonts/a010015l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010015l.pfm b/Master/xemtex/gsfonts/a010015l.pfm
deleted file mode 100644
index 0a3f4e7c275..00000000000
--- a/Master/xemtex/gsfonts/a010015l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010033l.afm b/Master/xemtex/gsfonts/a010033l.afm
deleted file mode 100644
index d628de345ab..00000000000
--- a/Master/xemtex/gsfonts/a010033l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWGothicL-BookObli
-FullName URW Gothic L Book Oblique
-FamilyName URW Gothic L
-Weight Book
-ItalicAngle -10.0
-IsFixedPitch false
-UnderlinePosition -96
-UnderlineThickness 58
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -115 -232 1275 972
-CapHeight 739
-XHeight 547
-Descender -192
-Ascender 739
-StartCharMetrics 316
-C 32 ; WX 277 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 295 ; N exclam ; B 111 0 322 739 ;
-C 34 ; WX 309 ; N quotedbl ; B 169 513 374 739 ;
-C 35 ; WX 554 ; N numbersign ; B 51 0 640 739 ;
-C 36 ; WX 554 ; N dollar ; B 112 -56 575 810 ;
-C 37 ; WX 775 ; N percent ; B 117 -13 785 749 ;
-C 38 ; WX 757 ; N ampersand ; B 93 -13 774 752 ;
-C 39 ; WX 351 ; N quoteright ; B 192 547 390 739 ;
-C 40 ; WX 369 ; N parenleft ; B 106 -125 472 739 ;
-C 41 ; WX 369 ; N parenright ; B 10 -125 377 739 ;
-C 42 ; WX 425 ; N asterisk ; B 172 449 477 752 ;
-C 43 ; WX 606 ; N plus ; B 100 55 618 550 ;
-C 44 ; WX 277 ; N comma ; B 79 -67 276 126 ;
-C 45 ; WX 332 ; N hyphen ; B 80 233 364 296 ;
-C 46 ; WX 277 ; N period ; B 101 0 198 126 ;
-C 47 ; WX 437 ; N slash ; B 16 -128 534 739 ;
-C 48 ; WX 554 ; N zero ; B 71 -13 621 752 ;
-C 49 ; WX 554 ; N one ; B 280 0 491 739 ;
-C 50 ; WX 554 ; N two ; B 33 0 607 752 ;
-C 51 ; WX 554 ; N three ; B 71 -13 564 752 ;
-C 52 ; WX 554 ; N four ; B 37 0 597 739 ;
-C 53 ; WX 554 ; N five ; B 64 -13 604 739 ;
-C 54 ; WX 554 ; N six ; B 66 -13 579 739 ;
-C 55 ; WX 554 ; N seven ; B 108 0 627 739 ;
-C 56 ; WX 554 ; N eight ; B 78 -13 580 752 ;
-C 57 ; WX 554 ; N nine ; B 112 0 625 752 ;
-C 58 ; WX 277 ; N colon ; B 101 0 270 507 ;
-C 59 ; WX 277 ; N semicolon ; B 29 -67 298 507 ;
-C 60 ; WX 606 ; N less ; B 99 37 663 565 ;
-C 61 ; WX 606 ; N equal ; B 82 164 636 436 ;
-C 62 ; WX 606 ; N greater ; B 55 37 619 565 ;
-C 63 ; WX 591 ; N question ; B 159 0 627 752 ;
-C 64 ; WX 867 ; N at ; B 133 -13 883 752 ;
-C 65 ; WX 740 ; N A ; B 11 0 729 739 ;
-C 66 ; WX 574 ; N B ; B 76 0 607 739 ;
-C 67 ; WX 813 ; N C ; B 106 -13 869 752 ;
-C 68 ; WX 744 ; N D ; B 76 0 774 739 ;
-C 69 ; WX 536 ; N E ; B 76 0 617 739 ;
-C 70 ; WX 485 ; N F ; B 76 0 588 739 ;
-C 71 ; WX 872 ; N G ; B 107 -13 894 752 ;
-C 72 ; WX 683 ; N H ; B 76 0 744 739 ;
-C 73 ; WX 226 ; N I ; B 76 0 287 739 ;
-C 74 ; WX 482 ; N J ; B 41 -14 543 739 ;
-C 75 ; WX 591 ; N K ; B 76 0 722 739 ;
-C 76 ; WX 462 ; N L ; B 76 0 468 739 ;
-C 77 ; WX 919 ; N M ; B 76 0 980 739 ;
-C 78 ; WX 740 ; N N ; B 76 0 801 739 ;
-C 79 ; WX 869 ; N O ; B 106 -13 900 752 ;
-C 80 ; WX 592 ; N P ; B 76 0 665 739 ;
-C 81 ; WX 871 ; N Q ; B 105 -13 913 752 ;
-C 82 ; WX 607 ; N R ; B 76 0 673 739 ;
-C 83 ; WX 498 ; N S ; B 56 -13 564 752 ;
-C 84 ; WX 426 ; N T ; B 132 0 556 739 ;
-C 85 ; WX 655 ; N U ; B 119 -13 716 739 ;
-C 86 ; WX 702 ; N V ; B 147 0 829 739 ;
-C 87 ; WX 960 ; N W ; B 147 0 1087 739 ;
-C 88 ; WX 609 ; N X ; B 8 0 723 739 ;
-C 89 ; WX 592 ; N Y ; B 139 0 727 739 ;
-C 90 ; WX 480 ; N Z ; B 17 0 600 739 ;
-C 91 ; WX 351 ; N bracketleft ; B 132 -125 450 739 ;
-C 92 ; WX 605 ; N backslash ; B 221 0 464 739 ;
-C 93 ; WX 351 ; N bracketright ; B 14 -125 332 739 ;
-C 94 ; WX 606 ; N asciicircum ; B 51 180 621 739 ;
-C 95 ; WX 500 ; N underscore ; B -23 -125 488 -67 ;
-C 96 ; WX 351 ; N quoteleft ; B 235 547 361 739 ;
-C 97 ; WX 683 ; N a ; B 88 -13 721 560 ;
-C 98 ; WX 682 ; N b ; B 63 -13 696 739 ;
-C 99 ; WX 647 ; N c ; B 88 -13 679 560 ;
-C 100 ; WX 685 ; N d ; B 88 -13 759 739 ;
-C 101 ; WX 650 ; N e ; B 88 -13 665 560 ;
-C 102 ; WX 314 ; N f ; B 101 0 447 739 ;
-C 103 ; WX 673 ; N g ; B 60 -215 711 560 ;
-C 104 ; WX 610 ; N h ; B 63 0 609 739 ;
-C 105 ; WX 200 ; N i ; B 63 0 274 739 ;
-C 106 ; WX 203 ; N j ; B -81 -192 277 739 ;
-C 107 ; WX 502 ; N k ; B 63 0 584 739 ;
-C 108 ; WX 200 ; N l ; B 63 0 274 739 ;
-C 109 ; WX 938 ; N m ; B 63 0 941 560 ;
-C 110 ; WX 610 ; N n ; B 63 0 609 560 ;
-C 111 ; WX 655 ; N o ; B 87 -13 669 560 ;
-C 112 ; WX 682 ; N p ; B 27 -192 695 560 ;
-C 113 ; WX 682 ; N q ; B 87 -192 720 560 ;
-C 114 ; WX 301 ; N r ; B 63 0 396 560 ;
-C 115 ; WX 388 ; N s ; B 43 -13 425 560 ;
-C 116 ; WX 339 ; N t ; B 101 0 428 739 ;
-C 117 ; WX 608 ; N u ; B 99 -13 646 547 ;
-C 118 ; WX 554 ; N v ; B 109 0 647 547 ;
-C 119 ; WX 831 ; N w ; B 108 0 925 547 ;
-C 120 ; WX 480 ; N x ; B 8 0 573 547 ;
-C 121 ; WX 536 ; N y ; B 97 -192 628 547 ;
-C 122 ; WX 425 ; N z ; B 10 0 497 547 ;
-C 123 ; WX 351 ; N braceleft ; B 94 -126 408 739 ;
-C 124 ; WX 672 ; N bar ; B 304 0 505 739 ;
-C 125 ; WX 351 ; N braceright ; B 14 -127 326 739 ;
-C 126 ; WX 606 ; N asciitilde ; B 99 210 619 390 ;
-C 161 ; WX 295 ; N exclamdown ; B 75 -192 286 547 ;
-C 162 ; WX 554 ; N cent ; B 113 62 595 707 ;
-C 163 ; WX 554 ; N sterling ; B 58 0 655 752 ;
-C 164 ; WX 166 ; N fraction ; B -115 0 418 739 ;
-C 165 ; WX 554 ; N yen ; B 97 0 726 739 ;
-C 166 ; WX 554 ; N florin ; B -21 -153 685 818 ;
-C 167 ; WX 615 ; N section ; B 114 -141 596 752 ;
-C 168 ; WX 554 ; N currency ; B 51 50 615 554 ;
-C 169 ; WX 198 ; N quotesingle ; B 169 513 261 739 ;
-C 170 ; WX 502 ; N quotedblleft ; B 233 547 507 739 ;
-C 171 ; WX 425 ; N guillemotleft ; B 96 99 472 499 ;
-C 172 ; WX 251 ; N guilsinglleft ; B 96 99 298 499 ;
-C 173 ; WX 251 ; N guilsinglright ; B 65 99 267 499 ;
-C 174 ; WX 487 ; N fi ; B 98 0 561 739 ;
-C 175 ; WX 485 ; N fl ; B 98 0 559 739 ;
-C 177 ; WX 500 ; N endash ; B 49 233 562 296 ;
-C 178 ; WX 553 ; N dagger ; B 146 -133 594 739 ;
-C 179 ; WX 553 ; N daggerdbl ; B 121 -133 598 739 ;
-C 180 ; WX 277 ; N periodcentered ; B 145 229 242 355 ;
-C 182 ; WX 564 ; N paragraph ; B 135 -133 628 739 ;
-C 183 ; WX 606 ; N bullet ; B 171 113 547 489 ;
-C 184 ; WX 354 ; N quotesinglbase ; B 77 -67 274 126 ;
-C 185 ; WX 502 ; N quotedblbase ; B 77 -66 421 126 ;
-C 186 ; WX 484 ; N quotedblright ; B 188 547 530 739 ;
-C 187 ; WX 425 ; N guillemotright ; B 65 99 441 499 ;
-C 188 ; WX 1000 ; N ellipsis ; B 130 0 893 126 ;
-C 189 ; WX 1174 ; N perthousand ; B 117 -13 1184 749 ;
-C 191 ; WX 591 ; N questiondown ; B 64 -205 532 547 ;
-C 193 ; WX 378 ; N grave ; B 207 610 428 778 ;
-C 194 ; WX 375 ; N acute ; B 198 610 436 782 ;
-C 195 ; WX 502 ; N circumflex ; B 188 623 542 749 ;
-C 196 ; WX 439 ; N tilde ; B 200 633 486 734 ;
-C 197 ; WX 485 ; N macron ; B 188 651 537 713 ;
-C 198 ; WX 453 ; N breve ; B 207 626 511 743 ;
-C 199 ; WX 222 ; N dotaccent ; B 188 623 285 749 ;
-C 200 ; WX 369 ; N dieresis ; B 188 623 432 749 ;
-C 202 ; WX 332 ; N ring ; B 203 606 390 790 ;
-C 203 ; WX 324 ; N cedilla ; B 46 -227 228 0 ;
-C 205 ; WX 552 ; N hungarumlaut ; B 197 608 615 780 ;
-C 206 ; WX 302 ; N ogonek ; B 53 -195 203 0 ;
-C 207 ; WX 502 ; N caron ; B 211 623 565 749 ;
-C 208 ; WX 1000 ; N emdash ; B 49 233 1062 296 ;
-C 225 ; WX 992 ; N AE ; B 11 0 1073 739 ;
-C 227 ; WX 369 ; N ordfeminine ; B 91 319 477 745 ;
-C 232 ; WX 517 ; N Lslash ; B 70 0 514 739 ;
-C 233 ; WX 868 ; N Oslash ; B 72 -83 925 821 ;
-C 234 ; WX 1194 ; N OE ; B 106 -13 1275 752 ;
-C 235 ; WX 369 ; N ordmasculine ; B 92 319 450 745 ;
-C 241 ; WX 1157 ; N ae ; B 88 -13 1172 560 ;
-C 245 ; WX 200 ; N dotlessi ; B 63 0 238 547 ;
-C 248 ; WX 300 ; N lslash ; B 94 0 370 739 ;
-C 249 ; WX 653 ; N oslash ; B 76 -38 687 593 ;
-C 250 ; WX 1137 ; N oe ; B 88 -13 1153 560 ;
-C 251 ; WX 554 ; N germandbls ; B 59 -13 576 752 ;
-C -1 ; WX 655 ; N Udieresis ; B 119 -13 716 931 ;
-C -1 ; WX 655 ; N Uacute ; B 119 -13 716 964 ;
-C -1 ; WX 498 ; N Scedilla ; B 56 -227 564 752 ;
-C -1 ; WX 426 ; N Tcaron ; B 132 0 560 931 ;
-C -1 ; WX 498 ; N Scaron ; B 56 -13 599 931 ;
-C -1 ; WX 607 ; N Rcaron ; B 76 0 673 931 ;
-C -1 ; WX 607 ; N Racute ; B 76 0 673 964 ;
-C -1 ; WX 498 ; N Sacute ; B 56 -13 564 964 ;
-C -1 ; WX 869 ; N Otilde ; B 106 -13 900 916 ;
-C -1 ; WX 608 ; N ucircumflex ; B 99 -13 646 749 ;
-C -1 ; WX 869 ; N Ohungarumlaut ; B 106 -13 900 962 ;
-C -1 ; WX 655 ; N Uhungarumlaut ; B 119 -13 716 962 ;
-C -1 ; WX 592 ; N Yacute ; B 139 0 727 964 ;
-C -1 ; WX 790 ; N Eth ; B 93 0 820 739 ;
-C -1 ; WX 790 ; N Dcroat ; B 93 0 820 739 ;
-C -1 ; WX 480 ; N Zacute ; B 17 0 600 964 ;
-C -1 ; WX 655 ; N Uring ; B 119 -13 716 972 ;
-C -1 ; WX 673 ; N gbreve ; B 60 -215 711 743 ;
-C -1 ; WX 650 ; N eogonek ; B 88 -195 665 560 ;
-C -1 ; WX 650 ; N edotaccent ; B 88 -13 665 749 ;
-C -1 ; WX 650 ; N ecaron ; B 88 -13 665 749 ;
-C -1 ; WX 655 ; N Ugrave ; B 119 -13 716 960 ;
-C -1 ; WX 592 ; N Thorn ; B 76 0 637 739 ;
-C -1 ; WX 650 ; N eacute ; B 88 -13 665 782 ;
-C -1 ; WX 650 ; N edieresis ; B 88 -13 665 749 ;
-C -1 ; WX 714 ; N dcaron ; B 88 -13 894 739 ;
-C -1 ; WX 647 ; N ccedilla ; B 88 -227 679 560 ;
-C -1 ; WX 647 ; N ccaron ; B 88 -13 679 749 ;
-C -1 ; WX 647 ; N cacute ; B 88 -13 679 782 ;
-C -1 ; WX 683 ; N aogonek ; B 88 -195 721 560 ;
-C -1 ; WX 683 ; N aring ; B 88 -13 721 790 ;
-C -1 ; WX 683 ; N atilde ; B 88 -13 721 734 ;
-C -1 ; WX 683 ; N abreve ; B 88 -13 721 743 ;
-C -1 ; WX 650 ; N egrave ; B 88 -13 665 778 ;
-C -1 ; WX 683 ; N agrave ; B 88 -13 721 778 ;
-C -1 ; WX 683 ; N aacute ; B 88 -13 721 782 ;
-C -1 ; WX 683 ; N adieresis ; B 88 -13 721 749 ;
-C -1 ; WX 655 ; N Uogonek ; B 119 -195 716 739 ;
-C -1 ; WX 608 ; N ugrave ; B 99 -13 646 778 ;
-C -1 ; WX 608 ; N uacute ; B 99 -13 646 782 ;
-C -1 ; WX 608 ; N udieresis ; B 99 -13 646 749 ;
-C -1 ; WX 339 ; N tcaron ; B 101 0 501 739 ;
-C -1 ; WX 388 ; N scommaaccent ; B 43 -232 425 560 ;
-C -1 ; WX 480 ; N Zcaron ; B 17 0 600 931 ;
-C -1 ; WX 650 ; N ecircumflex ; B 88 -13 665 749 ;
-C -1 ; WX 655 ; N Ucircumflex ; B 119 -13 716 931 ;
-C -1 ; WX 683 ; N acircumflex ; B 88 -13 721 749 ;
-C -1 ; WX 480 ; N Zdotaccent ; B 17 0 600 931 ;
-C -1 ; WX 388 ; N scaron ; B 43 -13 508 749 ;
-C -1 ; WX 740 ; N Amacron ; B 11 0 729 895 ;
-C -1 ; WX 388 ; N sacute ; B 43 -13 443 782 ;
-C -1 ; WX 426 ; N Tcommaaccent ; B 104 -232 556 739 ;
-C -1 ; WX 592 ; N Ydieresis ; B 139 0 727 931 ;
-C -1 ; WX 682 ; N thorn ; B 27 -192 695 739 ;
-C -1 ; WX 536 ; N Emacron ; B 76 0 617 895 ;
-C -1 ; WX 869 ; N Ograve ; B 106 -13 900 960 ;
-C -1 ; WX 869 ; N Oacute ; B 106 -13 900 964 ;
-C -1 ; WX 869 ; N Odieresis ; B 106 -13 900 931 ;
-C -1 ; WX 740 ; N Ntilde ; B 76 0 801 916 ;
-C -1 ; WX 740 ; N Ncaron ; B 76 0 801 931 ;
-C -1 ; WX 740 ; N Nacute ; B 76 0 801 964 ;
-C -1 ; WX 462 ; N Lcaron ; B 76 0 522 739 ;
-C -1 ; WX 462 ; N Lacute ; B 76 0 480 964 ;
-C -1 ; WX 226 ; N Idotaccent ; B 76 0 323 931 ;
-C -1 ; WX 301 ; N racute ; B 63 0 399 782 ;
-C -1 ; WX 226 ; N Icircumflex ; B 76 0 439 931 ;
-C -1 ; WX 655 ; N ohungarumlaut ; B 87 -13 669 780 ;
-C -1 ; WX 655 ; N otilde ; B 87 -13 669 734 ;
-C -1 ; WX 554 ; N Euro ; B -32 -13 638 752 ;
-C -1 ; WX 655 ; N ocircumflex ; B 87 -13 669 749 ;
-C -1 ; WX 332 ; N onesuperior ; B 227 297 370 739 ;
-C -1 ; WX 332 ; N twosuperior ; B 67 297 435 747 ;
-C -1 ; WX 332 ; N threesuperior ; B 91 289 411 747 ;
-C -1 ; WX 226 ; N Igrave ; B 76 0 388 960 ;
-C -1 ; WX 226 ; N Iacute ; B 76 0 362 964 ;
-C -1 ; WX 226 ; N Imacron ; B 76 0 437 895 ;
-C -1 ; WX 226 ; N Iogonek ; B 4 -195 287 739 ;
-C -1 ; WX 226 ; N Idieresis ; B 76 0 396 931 ;
-C -1 ; WX 872 ; N Gbreve ; B 107 -13 894 925 ;
-C -1 ; WX 655 ; N Umacron ; B 119 -13 716 895 ;
-C -1 ; WX 591 ; N Kcommaaccent ; B 76 -232 722 739 ;
-C -1 ; WX 655 ; N ograve ; B 87 -13 669 778 ;
-C -1 ; WX 498 ; N Scommaaccent ; B 56 -232 564 752 ;
-C -1 ; WX 536 ; N Eogonek ; B 76 -195 617 739 ;
-C -1 ; WX 655 ; N oacute ; B 87 -13 669 782 ;
-C -1 ; WX 536 ; N Edotaccent ; B 76 0 617 931 ;
-C -1 ; WX 200 ; N iogonek ; B -9 -195 274 739 ;
-C -1 ; WX 673 ; N gcommaaccent ; B 60 -215 711 792 ;
-C -1 ; WX 655 ; N odieresis ; B 87 -13 669 749 ;
-C -1 ; WX 610 ; N ntilde ; B 63 0 609 734 ;
-C -1 ; WX 610 ; N ncaron ; B 63 0 619 749 ;
-C -1 ; WX 536 ; N Ecaron ; B 76 0 622 931 ;
-C -1 ; WX 536 ; N Ecircumflex ; B 76 0 617 931 ;
-C -1 ; WX 388 ; N scedilla ; B 43 -227 425 560 ;
-C -1 ; WX 301 ; N rcaron ; B 63 0 465 749 ;
-C -1 ; WX 536 ; N Egrave ; B 76 0 617 960 ;
-C -1 ; WX 536 ; N Eacute ; B 76 0 617 964 ;
-C -1 ; WX 872 ; N Gcommaaccent ; B 107 -232 894 752 ;
-C -1 ; WX 607 ; N Rcommaaccent ; B 76 -232 673 739 ;
-C -1 ; WX 536 ; N Edieresis ; B 76 0 617 931 ;
-C -1 ; WX 610 ; N nacute ; B 63 0 609 782 ;
-C -1 ; WX 608 ; N uogonek ; B 99 -195 646 547 ;
-C -1 ; WX 608 ; N umacron ; B 99 -13 646 713 ;
-C -1 ; WX 744 ; N Dcaron ; B 76 0 774 931 ;
-C -1 ; WX 231 ; N lcaron ; B 63 0 412 739 ;
-C -1 ; WX 813 ; N Ccaron ; B 106 -13 869 931 ;
-C -1 ; WX 813 ; N Cacute ; B 106 -13 869 964 ;
-C -1 ; WX 813 ; N Ccedilla ; B 106 -227 869 752 ;
-C -1 ; WX 400 ; N degree ; B 157 381 462 681 ;
-C -1 ; WX 740 ; N Aogonek ; B 11 -195 733 739 ;
-C -1 ; WX 606 ; N minus ; B 100 267 618 341 ;
-C -1 ; WX 606 ; N multiply ; B 70 29 648 570 ;
-C -1 ; WX 606 ; N divide ; B 100 112 618 496 ;
-C -1 ; WX 740 ; N Aring ; B 11 0 729 972 ;
-C -1 ; WX 1000 ; N trademark ; B 189 338 1075 739 ;
-C -1 ; WX 301 ; N rcommaaccent ; B 0 -232 396 560 ;
-C -1 ; WX 200 ; N lacute ; B 63 0 349 964 ;
-C -1 ; WX 655 ; N omacron ; B 87 -13 669 713 ;
-C -1 ; WX 740 ; N Atilde ; B 11 0 729 916 ;
-C -1 ; WX 200 ; N icircumflex ; B 37 0 391 749 ;
-C -1 ; WX 200 ; N igrave ; B 63 0 339 778 ;
-C -1 ; WX 610 ; N ncommaaccent ; B 63 -232 609 560 ;
-C -1 ; WX 200 ; N lcommaaccent ; B -9 -232 274 739 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 628 610 ;
-C -1 ; WX 831 ; N onehalf ; B 207 0 874 739 ;
-C -1 ; WX 831 ; N onequarter ; B 217 0 841 739 ;
-C -1 ; WX 831 ; N threequarters ; B 91 0 841 747 ;
-C -1 ; WX 200 ; N iacute ; B 63 0 349 782 ;
-C -1 ; WX 740 ; N Abreve ; B 11 0 729 925 ;
-C -1 ; WX 502 ; N kcommaaccent ; B 63 -232 584 739 ;
-C -1 ; WX 869 ; N Omacron ; B 106 -13 900 895 ;
-C -1 ; WX 200 ; N imacron ; B 46 0 395 713 ;
-C -1 ; WX 650 ; N emacron ; B 88 -13 665 713 ;
-C -1 ; WX 683 ; N amacron ; B 88 -13 721 713 ;
-C -1 ; WX 339 ; N tcommaaccent ; B 40 -232 428 739 ;
-C -1 ; WX 536 ; N ydieresis ; B 97 -192 628 749 ;
-C -1 ; WX 425 ; N zdotaccent ; B 10 0 497 749 ;
-C -1 ; WX 425 ; N zcaron ; B 10 0 527 749 ;
-C -1 ; WX 425 ; N zacute ; B 10 0 497 782 ;
-C -1 ; WX 536 ; N yacute ; B 97 -192 628 782 ;
-C -1 ; WX 608 ; N uhungarumlaut ; B 99 -13 646 780 ;
-C -1 ; WX 655 ; N eth ; B 87 -13 673 756 ;
-C -1 ; WX 608 ; N uring ; B 99 -13 646 790 ;
-C -1 ; WX 869 ; N Ocircumflex ; B 106 -13 900 931 ;
-C -1 ; WX 351 ; N commaaccent ; B 66 -232 224 -53 ;
-C -1 ; WX 747 ; N copyright ; B 53 -13 830 752 ;
-C -1 ; WX 747 ; N registered ; B 53 -13 830 752 ;
-C -1 ; WX 740 ; N Acircumflex ; B 11 0 729 931 ;
-C -1 ; WX 200 ; N idieresis ; B 63 0 348 749 ;
-C -1 ; WX 494 ; N lozenge ; B 88 0 535 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 82 42 636 558 ;
-C -1 ; WX 549 ; N radical ; B 93 -35 683 913 ;
-C -1 ; WX 740 ; N Agrave ; B 11 0 729 960 ;
-C -1 ; WX 740 ; N Aacute ; B 11 0 729 964 ;
-C -1 ; WX 549 ; N lessequal ; B 26 0 650 646 ;
-C -1 ; WX 549 ; N greaterequal ; B 26 0 606 646 ;
-C -1 ; WX 606 ; N logicalnot ; B 118 148 636 436 ;
-C -1 ; WX 713 ; N summation ; B -9 -123 761 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 56 -10 545 753 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 76 -232 801 739 ;
-C -1 ; WX 685 ; N dcroat ; B 88 -13 808 739 ;
-C -1 ; WX 672 ; N brokenbar ; B 304 0 505 739 ;
-C -1 ; WX 462 ; N Lcommaaccent ; B 76 -232 468 739 ;
-C -1 ; WX 740 ; N Adieresis ; B 11 0 729 931 ;
-C -1 ; WX 608 ; N mu ; B 27 -192 646 547 ;
-C -1 ; WX 277 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -38
-KPX A Ccedilla -38
-KPX A G -39
-KPX A O -39
-KPX A Odieresis -39
-KPX A Q -39
-KPX A T -56
-KPX A U -32
-KPX A Uacute -32
-KPX A Ucircumflex -32
-KPX A Udieresis -32
-KPX A Ugrave -32
-KPX A V -75
-KPX A W -50
-KPX A Y -80
-KPX A a -22
-KPX A b 0
-KPX A c -22
-KPX A ccedilla -23
-KPX A comma -8
-KPX A d -22
-KPX A e -22
-KPX A g -23
-KPX A guillemotleft -24
-KPX A guilsinglleft -24
-KPX A hyphen 8
-KPX A o -21
-KPX A period 10
-KPX A q -21
-KPX A quotedblright -93
-KPX A quoteright -95
-KPX A t -31
-KPX A u -15
-KPX A v -42
-KPX A w -36
-KPX A y -39
-KPX Aacute C -38
-KPX Aacute G -39
-KPX Aacute O -39
-KPX Aacute Q -39
-KPX Aacute T -56
-KPX Aacute U -32
-KPX Aacute V -75
-KPX Aacute W -50
-KPX Aacute Y -80
-KPX Aacute a -22
-KPX Aacute b 0
-KPX Aacute c -22
-KPX Aacute comma -8
-KPX Aacute d -22
-KPX Aacute e -22
-KPX Aacute g -23
-KPX Aacute guillemotleft -24
-KPX Aacute guilsinglleft -24
-KPX Aacute hyphen 8
-KPX Aacute o -21
-KPX Aacute period 10
-KPX Aacute q -21
-KPX Aacute quoteright -95
-KPX Aacute t -31
-KPX Aacute u -15
-KPX Aacute v -42
-KPX Aacute w -36
-KPX Aacute y -39
-KPX Acircumflex C -38
-KPX Acircumflex G -39
-KPX Acircumflex O -39
-KPX Acircumflex Q -39
-KPX Acircumflex T -56
-KPX Acircumflex U -32
-KPX Acircumflex V -75
-KPX Acircumflex W -50
-KPX Acircumflex Y -80
-KPX Acircumflex comma -8
-KPX Acircumflex period 10
-KPX Adieresis C -38
-KPX Adieresis G -39
-KPX Adieresis O -39
-KPX Adieresis Q -39
-KPX Adieresis T -56
-KPX Adieresis U -32
-KPX Adieresis V -75
-KPX Adieresis W -50
-KPX Adieresis Y -80
-KPX Adieresis a -22
-KPX Adieresis b 0
-KPX Adieresis c -22
-KPX Adieresis comma -8
-KPX Adieresis d -22
-KPX Adieresis g -23
-KPX Adieresis guillemotleft -24
-KPX Adieresis guilsinglleft -24
-KPX Adieresis hyphen 8
-KPX Adieresis o -21
-KPX Adieresis period 10
-KPX Adieresis q -21
-KPX Adieresis quotedblright -93
-KPX Adieresis quoteright -95
-KPX Adieresis t -31
-KPX Adieresis u -15
-KPX Adieresis v -42
-KPX Adieresis w -36
-KPX Adieresis y -39
-KPX Agrave C -38
-KPX Agrave G -39
-KPX Agrave O -39
-KPX Agrave Q -39
-KPX Agrave T -56
-KPX Agrave U -32
-KPX Agrave V -75
-KPX Agrave W -50
-KPX Agrave Y -80
-KPX Agrave comma -8
-KPX Agrave period 10
-KPX Aring C -38
-KPX Aring G -39
-KPX Aring O -39
-KPX Aring Q -39
-KPX Aring T -56
-KPX Aring U -32
-KPX Aring V -75
-KPX Aring W -50
-KPX Aring Y -80
-KPX Aring a -22
-KPX Aring b 0
-KPX Aring c -22
-KPX Aring comma -8
-KPX Aring d -22
-KPX Aring e -22
-KPX Aring g -23
-KPX Aring guillemotleft -24
-KPX Aring guilsinglleft -24
-KPX Aring hyphen 8
-KPX Aring o -21
-KPX Aring period 10
-KPX Aring q -21
-KPX Aring quotedblright -93
-KPX Aring quoteright -95
-KPX Aring t -31
-KPX Aring u -15
-KPX Aring v -42
-KPX Aring w -36
-KPX Aring y -39
-KPX Atilde C -38
-KPX Atilde G -39
-KPX Atilde O -39
-KPX Atilde Q -39
-KPX Atilde T -56
-KPX Atilde U -32
-KPX Atilde V -75
-KPX Atilde W -50
-KPX Atilde Y -80
-KPX Atilde comma -8
-KPX Atilde period 10
-KPX B A -14
-KPX B AE -26
-KPX B Aacute -14
-KPX B Acircumflex -14
-KPX B Adieresis -14
-KPX B Aring -14
-KPX B Atilde -14
-KPX B O 3
-KPX B OE 5
-KPX B Oacute 3
-KPX B Ocircumflex 3
-KPX B Odieresis 3
-KPX B Ograve 3
-KPX B Oslash 7
-KPX B V -24
-KPX B W -2
-KPX B Y -31
-KPX C A -27
-KPX C AE -49
-KPX C Aacute -27
-KPX C Adieresis -27
-KPX C Aring -27
-KPX C H -4
-KPX C K -4
-KPX C O -20
-KPX C Oacute -20
-KPX C Odieresis -20
-KPX Ccedilla A -30
-KPX D A -42
-KPX D Aacute -42
-KPX D Acircumflex -42
-KPX D Adieresis -42
-KPX D Agrave -42
-KPX D Aring -42
-KPX D Atilde -42
-KPX D J -11
-KPX D T -44
-KPX D V -38
-KPX D W -15
-KPX D X -33
-KPX D Y -46
-KPX F A -61
-KPX F Aacute -61
-KPX F Acircumflex -61
-KPX F Adieresis -61
-KPX F Agrave -61
-KPX F Aring -61
-KPX F Atilde -61
-KPX F J -60
-KPX F O -6
-KPX F Odieresis -6
-KPX F a -8
-KPX F aacute -8
-KPX F adieresis -8
-KPX F ae -8
-KPX F aring -8
-KPX F comma -101
-KPX F e -8
-KPX F eacute -8
-KPX F hyphen 16
-KPX F i -10
-KPX F j -11
-KPX F o -8
-KPX F oacute -8
-KPX F odieresis -8
-KPX F oe -8
-KPX F oslash -11
-KPX F period -83
-KPX F r -15
-KPX F u -15
-KPX G A -46
-KPX G AE -69
-KPX G Aacute -46
-KPX G Acircumflex -46
-KPX G Adieresis -46
-KPX G Agrave -46
-KPX G Aring -46
-KPX G Atilde -46
-KPX G T -49
-KPX G V -45
-KPX G W -22
-KPX G Y -53
-KPX J A -32
-KPX J AE -44
-KPX J Adieresis -32
-KPX J Aring -32
-KPX K C -40
-KPX K G -41
-KPX K O -41
-KPX K OE -40
-KPX K Oacute -41
-KPX K Odieresis -41
-KPX K S -21
-KPX K T 32
-KPX K a -49
-KPX K adieresis -49
-KPX K ae -49
-KPX K aring -49
-KPX K e -50
-KPX K hyphen -35
-KPX K o -49
-KPX K oacute -49
-KPX K odieresis -49
-KPX K u -41
-KPX K udieresis -41
-KPX K y -50
-KPX L A 28
-KPX L AE 27
-KPX L Aacute 28
-KPX L Adieresis 28
-KPX L Aring 28
-KPX L C -53
-KPX L Ccedilla -56
-KPX L G -56
-KPX L O -56
-KPX L Oacute -56
-KPX L Ocircumflex -56
-KPX L Odieresis -56
-KPX L Ograve -56
-KPX L Otilde -56
-KPX L S 0
-KPX L T -52
-KPX L U -33
-KPX L Udieresis -33
-KPX L V -108
-KPX L W -66
-KPX L Y -93
-KPX L hyphen -85
-KPX L quotedblright -117
-KPX L quoteright -119
-KPX L u -20
-KPX L udieresis -20
-KPX L y -66
-KPX N A -7
-KPX N AE -7
-KPX N Aacute -7
-KPX N Adieresis -7
-KPX N Aring -7
-KPX N C 2
-KPX N Ccedilla 3
-KPX N G 1
-KPX N O 0
-KPX N Oacute 0
-KPX N Odieresis 0
-KPX N a 0
-KPX N aacute 0
-KPX N adieresis 0
-KPX N ae 0
-KPX N aring 0
-KPX N comma -17
-KPX N e 0
-KPX N eacute 0
-KPX N o 0
-KPX N oacute 0
-KPX N odieresis 0
-KPX N oslash 1
-KPX N period 0
-KPX N u 8
-KPX N udieresis 8
-KPX O A -43
-KPX O AE -73
-KPX O Aacute -43
-KPX O Adieresis -43
-KPX O Aring -43
-KPX O T -44
-KPX O V -39
-KPX O W -16
-KPX O X -34
-KPX O Y -47
-KPX Oacute A -43
-KPX Oacute T -44
-KPX Oacute V -39
-KPX Oacute W -16
-KPX Oacute Y -47
-KPX Ocircumflex T -44
-KPX Ocircumflex V -39
-KPX Ocircumflex Y -47
-KPX Odieresis A -43
-KPX Odieresis T -44
-KPX Odieresis V -39
-KPX Odieresis W -16
-KPX Odieresis X -34
-KPX Odieresis Y -47
-KPX Ograve T -44
-KPX Ograve V -39
-KPX Ograve Y -47
-KPX Oslash A -42
-KPX Otilde T -44
-KPX Otilde V -39
-KPX Otilde Y -47
-KPX P A -65
-KPX P AE -112
-KPX P Aacute -65
-KPX P Adieresis -65
-KPX P Aring -65
-KPX P J -73
-KPX P a -22
-KPX P aacute -22
-KPX P adieresis -22
-KPX P ae -22
-KPX P aring -22
-KPX P comma -129
-KPX P e -21
-KPX P eacute -21
-KPX P hyphen -11
-KPX P o -22
-KPX P oacute -22
-KPX P odieresis -22
-KPX P oe -21
-KPX P oslash -27
-KPX P period -112
-KPX R C -3
-KPX R Ccedilla -2
-KPX R G -4
-KPX R O -4
-KPX R OE -3
-KPX R Oacute -4
-KPX R Odieresis -4
-KPX R T -13
-KPX R U 1
-KPX R Udieresis 1
-KPX R V -20
-KPX R W -5
-KPX R Y -23
-KPX R a -11
-KPX R aacute -11
-KPX R adieresis -11
-KPX R ae -11
-KPX R aring -11
-KPX R e -11
-KPX R eacute -11
-KPX R hyphen -3
-KPX R o -11
-KPX R oacute -11
-KPX R odieresis -11
-KPX R oe -11
-KPX R u 0
-KPX R uacute 0
-KPX R udieresis 0
-KPX R y 14
-KPX S A -11
-KPX S AE -23
-KPX S Aacute -11
-KPX S Adieresis -11
-KPX S Aring -11
-KPX S T -4
-KPX S V -16
-KPX S W 2
-KPX S Y -18
-KPX S t 13
-KPX T A -57
-KPX T AE -57
-KPX T Aacute -57
-KPX T Acircumflex -57
-KPX T Adieresis -57
-KPX T Agrave -57
-KPX T Aring -57
-KPX T Atilde -57
-KPX T C -43
-KPX T G -44
-KPX T J -54
-KPX T O -44
-KPX T OE -43
-KPX T Oacute -44
-KPX T Ocircumflex -44
-KPX T Odieresis -44
-KPX T Ograve -44
-KPX T Oslash -39
-KPX T Otilde -44
-KPX T S -5
-KPX T V 28
-KPX T W 28
-KPX T Y 32
-KPX T a -50
-KPX T ae -50
-KPX T c -51
-KPX T colon -58
-KPX T comma -67
-KPX T e -50
-KPX T g -49
-KPX T guillemotleft -44
-KPX T guilsinglleft -44
-KPX T hyphen -16
-KPX T i 3
-KPX T j 1
-KPX T o -50
-KPX T oslash -49
-KPX T period -50
-KPX T r -35
-KPX T s -33
-KPX T semicolon -68
-KPX T u -42
-KPX T v -55
-KPX T w -54
-KPX T y -55
-KPX U A -34
-KPX U AE -55
-KPX U Aacute -34
-KPX U Acircumflex -34
-KPX U Adieresis -34
-KPX U Aring -34
-KPX U Atilde -34
-KPX U comma -39
-KPX U m 6
-KPX U n 6
-KPX U p 6
-KPX U period -20
-KPX U r 5
-KPX Uacute A -34
-KPX Uacute comma -39
-KPX Uacute m 6
-KPX Uacute n 6
-KPX Uacute p 6
-KPX Uacute period -20
-KPX Uacute r 5
-KPX Ucircumflex A -34
-KPX Udieresis A -34
-KPX Udieresis b 5
-KPX Udieresis comma -39
-KPX Udieresis m 6
-KPX Udieresis n 6
-KPX Udieresis p 6
-KPX Udieresis period -20
-KPX Udieresis r 5
-KPX Ugrave A -34
-KPX V A -75
-KPX V AE -121
-KPX V Aacute -75
-KPX V Acircumflex -75
-KPX V Adieresis -75
-KPX V Agrave -75
-KPX V Aring -75
-KPX V Atilde -75
-KPX V C -41
-KPX V G -43
-KPX V O -43
-KPX V Oacute -43
-KPX V Ocircumflex -43
-KPX V Odieresis -43
-KPX V Ograve -43
-KPX V Oslash -38
-KPX V Otilde -43
-KPX V S -18
-KPX V T 30
-KPX V a -62
-KPX V ae -62
-KPX V colon -66
-KPX V comma -112
-KPX V e -62
-KPX V g -60
-KPX V guillemotleft -52
-KPX V guilsinglleft -52
-KPX V hyphen -30
-KPX V i 1
-KPX V o -62
-KPX V oslash -62
-KPX V period -95
-KPX V r -36
-KPX V semicolon -77
-KPX V u -38
-KPX V y -13
-KPX W A -51
-KPX W AE -79
-KPX W Aacute -51
-KPX W Acircumflex -51
-KPX W Adieresis -51
-KPX W Agrave -51
-KPX W Aring -51
-KPX W Atilde -51
-KPX W C -18
-KPX W G -20
-KPX W O -20
-KPX W Oacute -20
-KPX W Ocircumflex -20
-KPX W Odieresis -20
-KPX W Ograve -20
-KPX W Oslash -15
-KPX W Otilde -20
-KPX W S -4
-KPX W T 30
-KPX W a -33
-KPX W ae -33
-KPX W colon -44
-KPX W comma -73
-KPX W e -33
-KPX W g -31
-KPX W guillemotleft -24
-KPX W guilsinglleft -24
-KPX W hyphen -1
-KPX W i 1
-KPX W o -33
-KPX W oslash -33
-KPX W period -55
-KPX W r -18
-KPX W semicolon -54
-KPX W u -23
-KPX W y -1
-KPX X C -32
-KPX X O -34
-KPX X Odieresis -34
-KPX X Q -33
-KPX X a -39
-KPX X e -40
-KPX X hyphen -22
-KPX X o -39
-KPX X u -31
-KPX X y -43
-KPX Y A -81
-KPX Y AE -99
-KPX Y Aacute -81
-KPX Y Acircumflex -81
-KPX Y Adieresis -81
-KPX Y Agrave -81
-KPX Y Aring -81
-KPX Y Atilde -81
-KPX Y C -48
-KPX Y G -50
-KPX Y O -50
-KPX Y Oacute -50
-KPX Y Ocircumflex -50
-KPX Y Odieresis -50
-KPX Y Ograve -50
-KPX Y Oslash -45
-KPX Y Otilde -50
-KPX Y S -19
-KPX Y T 34
-KPX Y a -70
-KPX Y ae -70
-KPX Y colon -75
-KPX Y comma -109
-KPX Y e -70
-KPX Y g -69
-KPX Y guillemotleft -65
-KPX Y guilsinglleft -65
-KPX Y hyphen -50
-KPX Y i 5
-KPX Y o -70
-KPX Y oslash -70
-KPX Y p -42
-KPX Y period -92
-KPX Y semicolon -85
-KPX Y u -44
-KPX Y v -19
-KPX Z v -13
-KPX Z y -14
-KPX a j 11
-KPX a quoteright -9
-KPX a v 0
-KPX a w 0
-KPX a y 0
-KPX aacute v 0
-KPX aacute w 0
-KPX aacute y 0
-KPX adieresis v 0
-KPX adieresis w 0
-KPX adieresis y 0
-KPX ae v -26
-KPX ae w -20
-KPX ae y -24
-KPX agrave v 0
-KPX agrave w 0
-KPX agrave y 0
-KPX aring v 0
-KPX aring w 0
-KPX aring y 0
-KPX b v -25
-KPX b w -19
-KPX b y -23
-KPX c h -8
-KPX c k -8
-KPX comma one -67
-KPX comma quotedblright -19
-KPX comma quoteright -21
-KPX e quoteright -31
-KPX e t -24
-KPX e v -26
-KPX e w -21
-KPX e x -22
-KPX e y -25
-KPX eacute v -26
-KPX eacute w -21
-KPX eacute y -25
-KPX ecircumflex v -26
-KPX ecircumflex w -21
-KPX ecircumflex y -25
-KPX eight four 11
-KPX eight one -87
-KPX eight seven -50
-KPX f a -25
-KPX f aacute -25
-KPX f adieresis -25
-KPX f ae -24
-KPX f aring -25
-KPX f e -24
-KPX f eacute -24
-KPX f f 28
-KPX f i 4
-KPX f j 2
-KPX f l 4
-KPX f o -25
-KPX f oacute -25
-KPX f odieresis -25
-KPX f oe -25
-KPX f oslash -28
-KPX f quoteright -13
-KPX f s 9
-KPX f t 30
-KPX five four 19
-KPX five one -82
-KPX five seven -36
-KPX four four 20
-KPX four one -83
-KPX four seven -40
-KPX g a -1
-KPX g adieresis -1
-KPX g ae -1
-KPX g aring -1
-KPX g e -1
-KPX g eacute -1
-KPX g l 11
-KPX g oacute -1
-KPX g odieresis -1
-KPX g r 11
-KPX guillemotright A -24
-KPX guillemotright AE -62
-KPX guillemotright Aacute -24
-KPX guillemotright Adieresis -24
-KPX guillemotright Aring -24
-KPX guillemotright T -44
-KPX guillemotright V -49
-KPX guillemotright W -22
-KPX guillemotright Y -63
-KPX guilsinglright A -24
-KPX guilsinglright AE -62
-KPX guilsinglright Aacute -24
-KPX guilsinglright Adieresis -24
-KPX guilsinglright Aring -24
-KPX guilsinglright T -44
-KPX guilsinglright V -49
-KPX guilsinglright W -22
-KPX guilsinglright Y -63
-KPX h quoteright -31
-KPX h y -19
-KPX hyphen A 14
-KPX hyphen AE -21
-KPX hyphen Aacute 14
-KPX hyphen Adieresis 14
-KPX hyphen Aring 14
-KPX hyphen T -11
-KPX hyphen V -24
-KPX hyphen W 5
-KPX hyphen Y -43
-KPX i T 3
-KPX i j 11
-KPX k a -30
-KPX k aacute -30
-KPX k adieresis -30
-KPX k ae -30
-KPX k aring -30
-KPX k comma -26
-KPX k e -30
-KPX k eacute -30
-KPX k g -29
-KPX k hyphen -41
-KPX k o -30
-KPX k oacute -30
-KPX k odieresis -30
-KPX k period -13
-KPX k s -10
-KPX k u -2
-KPX k udieresis -2
-KPX l v 0
-KPX l y 0
-KPX m p 7
-KPX m v -19
-KPX m w -13
-KPX m y -17
-KPX n T -44
-KPX n p 6
-KPX n quoteright -31
-KPX n v -21
-KPX n w -15
-KPX n y -19
-KPX nine four -37
-KPX nine one -84
-KPX nine seven -38
-KPX o T -49
-KPX o quoteright -31
-KPX o t -21
-KPX o v -24
-KPX o w -18
-KPX o x -20
-KPX o y -22
-KPX oacute v -24
-KPX oacute w -18
-KPX oacute y -22
-KPX ocircumflex t -21
-KPX odieresis t -21
-KPX odieresis v -24
-KPX odieresis w -18
-KPX odieresis x -20
-KPX odieresis y -22
-KPX ograve v -24
-KPX ograve w -18
-KPX ograve y -22
-KPX one comma -79
-KPX one eight -52
-KPX one five -50
-KPX one four -66
-KPX one nine -60
-KPX one one -138
-KPX one period -62
-KPX one seven -93
-KPX one six -59
-KPX one three -60
-KPX one two -59
-KPX one zero -35
-KPX p t -23
-KPX p y -24
-KPX period one -103
-KPX period quotedblright -58
-KPX period quoteright -60
-KPX q c 0
-KPX q u 8
-KPX quotedblbase A 4
-KPX quotedblbase AE -10
-KPX quotedblbase T -54
-KPX quotedblbase V -97
-KPX quotedblbase W -59
-KPX quotedblbase Y -95
-KPX quotedblleft A -97
-KPX quotedblleft AE -175
-KPX quotedblleft Aacute -97
-KPX quotedblleft Adieresis -97
-KPX quotedblleft Aring -97
-KPX quotedblleft T -26
-KPX quotedblleft V 2
-KPX quotedblleft W 10
-KPX quotedblleft Y -1
-KPX quotedblright A -105
-KPX quotedblright AE -182
-KPX quotedblright Aacute -105
-KPX quotedblright Adieresis -105
-KPX quotedblright Aring -105
-KPX quotedblright T -10
-KPX quotedblright V -4
-KPX quotedblright W 4
-KPX quotedblright Y -7
-KPX quoteleft A -95
-KPX quoteleft AE -172
-KPX quoteleft Aacute -95
-KPX quoteleft Adieresis -95
-KPX quoteleft Aring -95
-KPX quoteleft T -24
-KPX quoteleft V 4
-KPX quoteleft W 12
-KPX quoteleft Y 1
-KPX quoteright A -108
-KPX quoteright AE -186
-KPX quoteright Aacute -108
-KPX quoteright Adieresis -108
-KPX quoteright Aring -108
-KPX quoteright comma -104
-KPX quoteright d -60
-KPX quoteright o -59
-KPX quoteright period -83
-KPX quoteright r -33
-KPX quoteright s -30
-KPX quoteright t -37
-KPX quoteright v -24
-KPX quoteright w -22
-KPX quoteright y -24
-KPX r a -32
-KPX r aacute -32
-KPX r acircumflex -32
-KPX r adieresis -32
-KPX r ae -31
-KPX r agrave -32
-KPX r aring -32
-KPX r c -33
-KPX r ccedilla -27
-KPX r colon -17
-KPX r comma -71
-KPX r d -33
-KPX r e -31
-KPX r eacute -31
-KPX r ecircumflex -31
-KPX r egrave -31
-KPX r f 26
-KPX r g -20
-KPX r h 2
-KPX r hyphen -23
-KPX r i 1
-KPX r j 0
-KPX r k 2
-KPX r l 2
-KPX r m 2
-KPX r n 2
-KPX r o -32
-KPX r oacute -32
-KPX r ocircumflex -32
-KPX r odieresis -32
-KPX r oe -32
-KPX r ograve -32
-KPX r oslash -36
-KPX r p 2
-KPX r period -55
-KPX r q -32
-KPX r quoteright -11
-KPX r r 2
-KPX r s 4
-KPX r semicolon -30
-KPX r t 28
-KPX r u 2
-KPX r v 27
-KPX r w 28
-KPX r x 26
-KPX r y 27
-KPX r z 23
-KPX s quoteright -16
-KPX s t 2
-KPX seven colon -81
-KPX seven comma -136
-KPX seven eight -47
-KPX seven five -51
-KPX seven four -84
-KPX seven one -70
-KPX seven period -118
-KPX seven seven -25
-KPX seven six -64
-KPX seven three -46
-KPX seven two -32
-KPX six four 19
-KPX six one -96
-KPX six seven -69
-KPX t S 8
-KPX t a -29
-KPX t aacute -29
-KPX t adieresis -29
-KPX t ae -28
-KPX t aring -29
-KPX t colon -19
-KPX t e -28
-KPX t eacute -28
-KPX t h 0
-KPX t o -29
-KPX t oacute -29
-KPX t odieresis -29
-KPX t quoteright -12
-KPX t semicolon -32
-KPX three four 7
-KPX three one -93
-KPX three seven -58
-KPX two four -25
-KPX two one -88
-KPX two seven -43
-KPX u quoteright -9
-KPX v a -28
-KPX v aacute -28
-KPX v acircumflex -28
-KPX v adieresis -28
-KPX v ae -27
-KPX v agrave -28
-KPX v aring -28
-KPX v atilde -28
-KPX v c -28
-KPX v colon -27
-KPX v comma -89
-KPX v e -28
-KPX v eacute -28
-KPX v ecircumflex -28
-KPX v egrave -28
-KPX v g -24
-KPX v hyphen -3
-KPX v l 2
-KPX v o -27
-KPX v oacute -27
-KPX v odieresis -27
-KPX v ograve -27
-KPX v oslash -28
-KPX v period -72
-KPX v s -7
-KPX v semicolon -38
-KPX w a -23
-KPX w aacute -23
-KPX w acircumflex -23
-KPX w adieresis -23
-KPX w ae -23
-KPX w agrave -23
-KPX w aring -23
-KPX w atilde -23
-KPX w c -24
-KPX w colon -25
-KPX w comma -81
-KPX w e -23
-KPX w eacute -23
-KPX w ecircumflex -23
-KPX w egrave -23
-KPX w g -21
-KPX w hyphen 1
-KPX w l 2
-KPX w o -23
-KPX w oacute -23
-KPX w odieresis -23
-KPX w ograve -23
-KPX w oslash -23
-KPX w period -64
-KPX w s -5
-KPX w semicolon -37
-KPX x a -21
-KPX x c -22
-KPX x e -21
-KPX x eacute -21
-KPX x o -21
-KPX x q -21
-KPX y a -30
-KPX y aacute -30
-KPX y acircumflex -30
-KPX y adieresis -30
-KPX y ae -29
-KPX y agrave -30
-KPX y aring -30
-KPX y atilde -30
-KPX y c -30
-KPX y colon -27
-KPX y comma -91
-KPX y e -30
-KPX y eacute -30
-KPX y ecircumflex -30
-KPX y egrave -30
-KPX y g -25
-KPX y hyphen -6
-KPX y l 1
-KPX y o -29
-KPX y oacute -29
-KPX y odieresis -29
-KPX y ograve -29
-KPX y oslash -30
-KPX y period -75
-KPX y s -7
-KPX y semicolon -38
-KPX zero four 16
-KPX zero one -70
-KPX zero seven -37
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/a010033l.pfb b/Master/xemtex/gsfonts/a010033l.pfb
deleted file mode 100644
index 3407908ae6d..00000000000
--- a/Master/xemtex/gsfonts/a010033l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010033l.pfm b/Master/xemtex/gsfonts/a010033l.pfm
deleted file mode 100644
index 1ed050efbb3..00000000000
--- a/Master/xemtex/gsfonts/a010033l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010035l.afm b/Master/xemtex/gsfonts/a010035l.afm
deleted file mode 100644
index 3ebc227db86..00000000000
--- a/Master/xemtex/gsfonts/a010035l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWGothicL-DemiObli
-FullName URW Gothic L Demi Oblique
-FamilyName URW Gothic L
-Weight Demi
-ItalicAngle -10.0
-IsFixedPitch false
-UnderlinePosition -93
-UnderlineThickness 90
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -121 -251 1281 1013
-CapHeight 739
-XHeight 554
-Descender -185
-Ascender 739
-StartCharMetrics 316
-C 32 ; WX 280 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 280 ; N exclam ; B 72 0 342 739 ;
-C 34 ; WX 360 ; N quotedbl ; B 169 513 420 739 ;
-C 35 ; WX 560 ; N numbersign ; B 77 0 623 739 ;
-C 36 ; WX 560 ; N dollar ; B 100 -86 575 856 ;
-C 37 ; WX 860 ; N percent ; B 124 -13 868 752 ;
-C 38 ; WX 680 ; N ampersand ; B 71 -13 741 752 ;
-C 39 ; WX 280 ; N quoteright ; B 159 464 342 739 ;
-C 40 ; WX 380 ; N parenleft ; B 122 -137 486 739 ;
-C 41 ; WX 380 ; N parenright ; B 13 -137 377 739 ;
-C 42 ; WX 440 ; N asterisk ; B 176 425 490 739 ;
-C 43 ; WX 600 ; N plus ; B 100 129 625 609 ;
-C 44 ; WX 280 ; N comma ; B 47 -140 230 128 ;
-C 45 ; WX 420 ; N hyphen ; B 122 229 421 347 ;
-C 46 ; WX 280 ; N period ; B 72 0 230 128 ;
-C 47 ; WX 460 ; N slash ; B 2 -128 580 739 ;
-C 48 ; WX 560 ; N zero ; B 68 -13 623 752 ;
-C 49 ; WX 560 ; N one ; B 246 0 516 739 ;
-C 50 ; WX 560 ; N two ; B 42 0 619 752 ;
-C 51 ; WX 560 ; N three ; B 53 -13 571 752 ;
-C 52 ; WX 560 ; N four ; B 20 0 589 739 ;
-C 53 ; WX 560 ; N five ; B 50 -13 586 739 ;
-C 54 ; WX 560 ; N six ; B 62 -13 584 739 ;
-C 55 ; WX 560 ; N seven ; B 85 0 637 739 ;
-C 56 ; WX 560 ; N eight ; B 69 -13 582 752 ;
-C 57 ; WX 560 ; N nine ; B 108 0 628 752 ;
-C 58 ; WX 280 ; N colon ; B 72 0 298 502 ;
-C 59 ; WX 280 ; N semicolon ; B 47 -140 298 502 ;
-C 60 ; WX 600 ; N less ; B 98 33 668 582 ;
-C 61 ; WX 600 ; N equal ; B 81 210 643 524 ;
-C 62 ; WX 600 ; N greater ; B 56 33 625 582 ;
-C 63 ; WX 560 ; N question ; B 129 0 586 752 ;
-C 64 ; WX 740 ; N at ; B 64 -13 831 766 ;
-C 65 ; WX 740 ; N A ; B 7 0 733 739 ;
-C 66 ; WX 580 ; N B ; B 68 0 607 739 ;
-C 67 ; WX 780 ; N C ; B 92 -13 858 752 ;
-C 68 ; WX 700 ; N D ; B 68 0 734 739 ;
-C 69 ; WX 520 ; N E ; B 68 0 602 739 ;
-C 70 ; WX 480 ; N F ; B 68 0 581 739 ;
-C 71 ; WX 840 ; N G ; B 91 -13 888 752 ;
-C 72 ; WX 680 ; N H ; B 68 0 743 739 ;
-C 73 ; WX 280 ; N I ; B 68 0 342 739 ;
-C 74 ; WX 480 ; N J ; B 38 -13 551 739 ;
-C 75 ; WX 620 ; N K ; B 68 0 736 739 ;
-C 76 ; WX 440 ; N L ; B 68 0 456 739 ;
-C 77 ; WX 900 ; N M ; B 68 0 977 739 ;
-C 78 ; WX 740 ; N N ; B 68 0 804 739 ;
-C 79 ; WX 840 ; N O ; B 91 -13 875 752 ;
-C 80 ; WX 560 ; N P ; B 68 0 639 739 ;
-C 81 ; WX 840 ; N Q ; B 91 -15 889 752 ;
-C 82 ; WX 580 ; N R ; B 68 0 657 739 ;
-C 83 ; WX 520 ; N S ; B 49 -13 579 752 ;
-C 84 ; WX 420 ; N T ; B 119 0 555 739 ;
-C 85 ; WX 640 ; N U ; B 109 -13 704 739 ;
-C 86 ; WX 700 ; N V ; B 145 0 831 739 ;
-C 87 ; WX 900 ; N W ; B 144 0 1035 739 ;
-C 88 ; WX 680 ; N X ; B 5 0 813 739 ;
-C 89 ; WX 620 ; N Y ; B 140 0 763 739 ;
-C 90 ; WX 500 ; N Z ; B 18 0 598 739 ;
-C 91 ; WX 320 ; N bracketleft ; B 100 -137 429 739 ;
-C 92 ; WX 640 ; N backslash ; B 221 0 503 739 ;
-C 93 ; WX 320 ; N bracketright ; B 13 -137 346 739 ;
-C 94 ; WX 600 ; N asciicircum ; B 130 324 610 750 ;
-C 95 ; WX 500 ; N underscore ; B -26 -138 491 -48 ;
-C 96 ; WX 280 ; N quoteleft ; B 161 466 343 739 ;
-C 97 ; WX 660 ; N a ; B 75 -13 718 567 ;
-C 98 ; WX 660 ; N b ; B 54 -13 695 739 ;
-C 99 ; WX 640 ; N c ; B 77 -13 670 567 ;
-C 100 ; WX 660 ; N d ; B 76 -13 750 739 ;
-C 101 ; WX 640 ; N e ; B 76 -13 665 567 ;
-C 102 ; WX 280 ; N f ; B 57 0 413 739 ;
-C 103 ; WX 660 ; N g ; B 30 -221 714 567 ;
-C 104 ; WX 600 ; N h ; B 54 0 613 739 ;
-C 105 ; WX 240 ; N i ; B 54 0 324 739 ;
-C 106 ; WX 260 ; N j ; B -17 -185 342 739 ;
-C 107 ; WX 580 ; N k ; B 54 0 625 739 ;
-C 108 ; WX 240 ; N l ; B 54 0 324 739 ;
-C 109 ; WX 940 ; N m ; B 54 0 952 567 ;
-C 110 ; WX 600 ; N n ; B 54 0 613 567 ;
-C 111 ; WX 640 ; N o ; B 76 -13 675 567 ;
-C 112 ; WX 660 ; N p ; B 20 -185 691 567 ;
-C 113 ; WX 660 ; N q ; B 77 -185 714 567 ;
-C 114 ; WX 320 ; N r ; B 54 0 412 569 ;
-C 115 ; WX 440 ; N s ; B 49 -13 482 567 ;
-C 116 ; WX 300 ; N t ; B 74 0 390 739 ;
-C 117 ; WX 600 ; N u ; B 88 -13 650 554 ;
-C 118 ; WX 560 ; N v ; B 104 0 656 554 ;
-C 119 ; WX 800 ; N w ; B 113 0 888 554 ;
-C 120 ; WX 560 ; N x ; B 1 0 629 554 ;
-C 121 ; WX 580 ; N y ; B 73 -185 671 554 ;
-C 122 ; WX 460 ; N z ; B 20 0 528 554 ;
-C 123 ; WX 340 ; N braceleft ; B 94 -129 439 740 ;
-C 124 ; WX 600 ; N bar ; B 243 0 499 739 ;
-C 125 ; WX 340 ; N braceright ; B 14 -129 360 740 ;
-C 126 ; WX 600 ; N asciitilde ; B 105 214 619 421 ;
-C 161 ; WX 280 ; N exclamdown ; B 38 -185 308 554 ;
-C 162 ; WX 560 ; N cent ; B 106 39 593 715 ;
-C 163 ; WX 560 ; N sterling ; B 40 0 616 752 ;
-C 164 ; WX 160 ; N fraction ; B -121 0 417 739 ;
-C 165 ; WX 560 ; N yen ; B 51 0 726 739 ;
-C 166 ; WX 560 ; N florin ; B -44 -149 646 820 ;
-C 167 ; WX 560 ; N section ; B 68 -157 608 752 ;
-C 168 ; WX 560 ; N currency ; B 69 148 640 654 ;
-C 169 ; WX 220 ; N quotesingle ; B 169 513 287 739 ;
-C 170 ; WX 480 ; N quotedblleft ; B 159 466 548 739 ;
-C 171 ; WX 460 ; N guillemotleft ; B 85 108 480 469 ;
-C 172 ; WX 240 ; N guilsinglleft ; B 85 108 267 469 ;
-C 173 ; WX 240 ; N guilsinglright ; B 98 108 280 469 ;
-C 174 ; WX 520 ; N fi ; B 55 0 598 739 ;
-C 175 ; WX 520 ; N fl ; B 55 0 598 739 ;
-C 177 ; WX 500 ; N endash ; B 48 229 570 347 ;
-C 178 ; WX 560 ; N dagger ; B 129 -128 607 739 ;
-C 179 ; WX 560 ; N daggerdbl ; B 96 -128 615 739 ;
-C 180 ; WX 280 ; N periodcentered ; B 119 300 276 432 ;
-C 182 ; WX 600 ; N paragraph ; B 133 -128 664 739 ;
-C 183 ; WX 600 ; N bullet ; B 190 144 533 487 ;
-C 184 ; WX 280 ; N quotesinglbase ; B 46 -140 228 128 ;
-C 185 ; WX 480 ; N quotedblbase ; B 45 -147 435 128 ;
-C 186 ; WX 480 ; N quotedblright ; B 157 464 547 739 ;
-C 187 ; WX 460 ; N guillemotright ; B 98 108 493 469 ;
-C 188 ; WX 1000 ; N ellipsis ; B 100 0 924 128 ;
-C 189 ; WX 1280 ; N perthousand ; B 124 -13 1281 752 ;
-C 191 ; WX 560 ; N questiondown ; B 71 -198 528 554 ;
-C 193 ; WX 420 ; N grave ; B 211 617 484 832 ;
-C 194 ; WX 420 ; N acute ; B 205 617 488 832 ;
-C 195 ; WX 540 ; N circumflex ; B 189 630 588 768 ;
-C 196 ; WX 480 ; N tilde ; B 206 631 528 769 ;
-C 197 ; WX 420 ; N macron ; B 189 650 486 749 ;
-C 198 ; WX 480 ; N breve ; B 214 630 544 766 ;
-C 199 ; WX 280 ; N dotaccent ; B 189 630 347 762 ;
-C 200 ; WX 500 ; N dieresis ; B 189 630 557 762 ;
-C 202 ; WX 360 ; N ring ; B 206 617 416 823 ;
-C 203 ; WX 340 ; N cedilla ; B 42 -251 244 0 ;
-C 205 ; WX 700 ; N hungarumlaut ; B 204 617 768 838 ;
-C 206 ; WX 340 ; N ogonek ; B 52 -204 235 0 ;
-C 207 ; WX 540 ; N caron ; B 214 630 613 768 ;
-C 208 ; WX 1000 ; N emdash ; B 48 229 1070 347 ;
-C 225 ; WX 900 ; N AE ; B 17 0 980 739 ;
-C 227 ; WX 360 ; N ordfeminine ; B 90 312 480 752 ;
-C 232 ; WX 480 ; N Lslash ; B 49 0 498 739 ;
-C 233 ; WX 840 ; N Oslash ; B 91 -80 887 826 ;
-C 234 ; WX 1060 ; N OE ; B 100 -13 1141 752 ;
-C 235 ; WX 360 ; N ordmasculine ; B 90 313 451 752 ;
-C 241 ; WX 1080 ; N ae ; B 76 -13 1108 567 ;
-C 245 ; WX 240 ; N dotlessi ; B 54 0 290 554 ;
-C 248 ; WX 320 ; N lslash ; B 59 0 420 739 ;
-C 249 ; WX 660 ; N oslash ; B 76 -64 680 620 ;
-C 250 ; WX 1080 ; N oe ; B 76 -13 1105 567 ;
-C 251 ; WX 600 ; N germandbls ; B 51 -13 628 752 ;
-C -1 ; WX 640 ; N Udieresis ; B 109 -13 704 937 ;
-C -1 ; WX 640 ; N Uacute ; B 109 -13 704 1007 ;
-C -1 ; WX 520 ; N Scedilla ; B 49 -251 579 752 ;
-C -1 ; WX 420 ; N Tcaron ; B 119 0 573 943 ;
-C -1 ; WX 520 ; N Scaron ; B 49 -13 638 943 ;
-C -1 ; WX 580 ; N Rcaron ; B 68 0 657 943 ;
-C -1 ; WX 580 ; N Racute ; B 68 0 657 1007 ;
-C -1 ; WX 520 ; N Sacute ; B 49 -13 579 1007 ;
-C -1 ; WX 840 ; N Otilde ; B 91 -13 875 943 ;
-C -1 ; WX 600 ; N ucircumflex ; B 88 -13 650 768 ;
-C -1 ; WX 840 ; N Ohungarumlaut ; B 91 -13 875 1013 ;
-C -1 ; WX 640 ; N Uhungarumlaut ; B 109 -13 818 1013 ;
-C -1 ; WX 620 ; N Yacute ; B 140 0 763 1007 ;
-C -1 ; WX 742 ; N Eth ; B 73 0 776 739 ;
-C -1 ; WX 742 ; N Dcroat ; B 73 0 776 739 ;
-C -1 ; WX 500 ; N Zacute ; B 18 0 598 1007 ;
-C -1 ; WX 640 ; N Uring ; B 109 -13 704 998 ;
-C -1 ; WX 660 ; N gbreve ; B 30 -221 714 766 ;
-C -1 ; WX 640 ; N eogonek ; B 76 -204 665 567 ;
-C -1 ; WX 640 ; N edotaccent ; B 76 -13 665 762 ;
-C -1 ; WX 640 ; N ecaron ; B 76 -13 665 768 ;
-C -1 ; WX 640 ; N Ugrave ; B 109 -13 704 1007 ;
-C -1 ; WX 560 ; N Thorn ; B 68 0 613 739 ;
-C -1 ; WX 640 ; N eacute ; B 76 -13 665 832 ;
-C -1 ; WX 640 ; N edieresis ; B 76 -13 665 762 ;
-C -1 ; WX 752 ; N dcaron ; B 76 -13 932 739 ;
-C -1 ; WX 640 ; N ccedilla ; B 77 -251 670 567 ;
-C -1 ; WX 640 ; N ccaron ; B 77 -13 670 768 ;
-C -1 ; WX 640 ; N cacute ; B 77 -13 670 832 ;
-C -1 ; WX 660 ; N aogonek ; B 75 -204 718 567 ;
-C -1 ; WX 660 ; N aring ; B 75 -13 718 823 ;
-C -1 ; WX 660 ; N atilde ; B 75 -13 718 769 ;
-C -1 ; WX 660 ; N abreve ; B 75 -13 718 766 ;
-C -1 ; WX 640 ; N egrave ; B 76 -13 665 832 ;
-C -1 ; WX 660 ; N agrave ; B 75 -13 718 832 ;
-C -1 ; WX 660 ; N aacute ; B 75 -13 718 832 ;
-C -1 ; WX 660 ; N adieresis ; B 75 -13 718 762 ;
-C -1 ; WX 640 ; N Uogonek ; B 109 -204 704 739 ;
-C -1 ; WX 600 ; N ugrave ; B 88 -13 650 832 ;
-C -1 ; WX 600 ; N uacute ; B 88 -13 650 832 ;
-C -1 ; WX 600 ; N udieresis ; B 88 -13 650 762 ;
-C -1 ; WX 364 ; N tcaron ; B 74 0 544 739 ;
-C -1 ; WX 440 ; N scommaaccent ; B 49 -245 482 567 ;
-C -1 ; WX 500 ; N Zcaron ; B 18 0 618 943 ;
-C -1 ; WX 640 ; N ecircumflex ; B 76 -13 665 768 ;
-C -1 ; WX 640 ; N Ucircumflex ; B 109 -13 704 943 ;
-C -1 ; WX 660 ; N acircumflex ; B 75 -13 718 768 ;
-C -1 ; WX 500 ; N Zdotaccent ; B 18 0 598 937 ;
-C -1 ; WX 440 ; N scaron ; B 49 -13 563 768 ;
-C -1 ; WX 740 ; N Amacron ; B 7 0 733 924 ;
-C -1 ; WX 440 ; N sacute ; B 49 -13 498 832 ;
-C -1 ; WX 420 ; N Tcommaaccent ; B 83 -245 555 739 ;
-C -1 ; WX 620 ; N Ydieresis ; B 140 0 763 937 ;
-C -1 ; WX 660 ; N thorn ; B 20 -185 691 739 ;
-C -1 ; WX 520 ; N Emacron ; B 68 0 602 924 ;
-C -1 ; WX 840 ; N Ograve ; B 91 -13 875 1007 ;
-C -1 ; WX 840 ; N Oacute ; B 91 -13 875 1007 ;
-C -1 ; WX 840 ; N Odieresis ; B 91 -13 875 937 ;
-C -1 ; WX 740 ; N Ntilde ; B 68 0 804 943 ;
-C -1 ; WX 740 ; N Ncaron ; B 68 0 804 943 ;
-C -1 ; WX 740 ; N Nacute ; B 68 0 804 1007 ;
-C -1 ; WX 440 ; N Lcaron ; B 68 0 531 739 ;
-C -1 ; WX 440 ; N Lacute ; B 68 0 498 1007 ;
-C -1 ; WX 280 ; N Idotaccent ; B 68 0 377 937 ;
-C -1 ; WX 320 ; N racute ; B 54 0 438 832 ;
-C -1 ; WX 280 ; N Icircumflex ; B 68 0 492 943 ;
-C -1 ; WX 640 ; N ohungarumlaut ; B 76 -13 738 838 ;
-C -1 ; WX 640 ; N otilde ; B 76 -13 675 769 ;
-C -1 ; WX 560 ; N Euro ; B -33 -11 673 751 ;
-C -1 ; WX 640 ; N ocircumflex ; B 76 -13 675 768 ;
-C -1 ; WX 336 ; N onesuperior ; B 209 296 378 739 ;
-C -1 ; WX 336 ; N twosuperior ; B 70 296 440 746 ;
-C -1 ; WX 336 ; N threesuperior ; B 82 288 415 746 ;
-C -1 ; WX 280 ; N Igrave ; B 68 0 448 1007 ;
-C -1 ; WX 280 ; N Iacute ; B 68 0 418 1007 ;
-C -1 ; WX 280 ; N Imacron ; B 68 0 436 924 ;
-C -1 ; WX 280 ; N Iogonek ; B 27 -204 342 739 ;
-C -1 ; WX 280 ; N Idieresis ; B 68 0 481 937 ;
-C -1 ; WX 840 ; N Gbreve ; B 91 -13 888 941 ;
-C -1 ; WX 640 ; N Umacron ; B 109 -13 704 924 ;
-C -1 ; WX 620 ; N Kcommaaccent ; B 68 -245 736 739 ;
-C -1 ; WX 640 ; N ograve ; B 76 -13 675 832 ;
-C -1 ; WX 520 ; N Scommaaccent ; B 49 -245 579 752 ;
-C -1 ; WX 520 ; N Eogonek ; B 68 -204 602 739 ;
-C -1 ; WX 640 ; N oacute ; B 76 -13 675 832 ;
-C -1 ; WX 520 ; N Edotaccent ; B 68 0 602 937 ;
-C -1 ; WX 240 ; N iogonek ; B 9 -204 324 739 ;
-C -1 ; WX 660 ; N gcommaaccent ; B 30 -221 714 799 ;
-C -1 ; WX 640 ; N odieresis ; B 76 -13 675 762 ;
-C -1 ; WX 600 ; N ntilde ; B 54 0 613 769 ;
-C -1 ; WX 600 ; N ncaron ; B 54 0 643 768 ;
-C -1 ; WX 520 ; N Ecaron ; B 68 0 633 943 ;
-C -1 ; WX 520 ; N Ecircumflex ; B 68 0 612 943 ;
-C -1 ; WX 440 ; N scedilla ; B 49 -251 482 567 ;
-C -1 ; WX 320 ; N rcaron ; B 54 0 503 768 ;
-C -1 ; WX 520 ; N Egrave ; B 68 0 602 1007 ;
-C -1 ; WX 520 ; N Eacute ; B 68 0 602 1007 ;
-C -1 ; WX 840 ; N Gcommaaccent ; B 91 -245 888 752 ;
-C -1 ; WX 580 ; N Rcommaaccent ; B 68 -245 657 739 ;
-C -1 ; WX 520 ; N Edieresis ; B 68 0 602 937 ;
-C -1 ; WX 600 ; N nacute ; B 54 0 613 832 ;
-C -1 ; WX 600 ; N uogonek ; B 88 -204 650 554 ;
-C -1 ; WX 600 ; N umacron ; B 88 -13 650 749 ;
-C -1 ; WX 700 ; N Dcaron ; B 68 0 734 943 ;
-C -1 ; WX 326 ; N lcaron ; B 54 0 506 739 ;
-C -1 ; WX 780 ; N Ccaron ; B 92 -13 858 943 ;
-C -1 ; WX 780 ; N Cacute ; B 92 -13 858 1007 ;
-C -1 ; WX 780 ; N Ccedilla ; B 92 -251 858 752 ;
-C -1 ; WX 400 ; N degree ; B 157 386 462 686 ;
-C -1 ; WX 740 ; N Aogonek ; B 7 -204 738 739 ;
-C -1 ; WX 600 ; N minus ; B 99 312 625 430 ;
-C -1 ; WX 600 ; N multiply ; B 78 112 645 622 ;
-C -1 ; WX 600 ; N divide ; B 100 73 625 669 ;
-C -1 ; WX 740 ; N Aring ; B 7 0 733 998 ;
-C -1 ; WX 1000 ; N trademark ; B 194 345 1066 739 ;
-C -1 ; WX 320 ; N rcommaaccent ; B 33 -245 412 569 ;
-C -1 ; WX 240 ; N lacute ; B 54 0 398 1007 ;
-C -1 ; WX 640 ; N omacron ; B 76 -13 675 749 ;
-C -1 ; WX 740 ; N Atilde ; B 7 0 733 943 ;
-C -1 ; WX 240 ; N icircumflex ; B 39 0 438 768 ;
-C -1 ; WX 240 ; N igrave ; B 54 0 394 832 ;
-C -1 ; WX 600 ; N ncommaaccent ; B 54 -245 613 567 ;
-C -1 ; WX 240 ; N lcommaaccent ; B -7 -245 324 739 ;
-C -1 ; WX 600 ; N plusminus ; B 51 0 635 627 ;
-C -1 ; WX 840 ; N onehalf ; B 205 0 889 739 ;
-C -1 ; WX 840 ; N onequarter ; B 209 0 867 739 ;
-C -1 ; WX 840 ; N threequarters ; B 82 0 867 746 ;
-C -1 ; WX 240 ; N iacute ; B 54 0 398 832 ;
-C -1 ; WX 740 ; N Abreve ; B 7 0 733 941 ;
-C -1 ; WX 580 ; N kcommaaccent ; B 54 -245 625 739 ;
-C -1 ; WX 840 ; N Omacron ; B 91 -13 875 924 ;
-C -1 ; WX 240 ; N imacron ; B 54 0 396 749 ;
-C -1 ; WX 640 ; N emacron ; B 76 -13 665 749 ;
-C -1 ; WX 660 ; N amacron ; B 75 -13 718 749 ;
-C -1 ; WX 300 ; N tcommaaccent ; B 23 -245 390 739 ;
-C -1 ; WX 580 ; N ydieresis ; B 73 -185 671 762 ;
-C -1 ; WX 460 ; N zdotaccent ; B 20 0 528 762 ;
-C -1 ; WX 460 ; N zcaron ; B 20 0 573 768 ;
-C -1 ; WX 460 ; N zacute ; B 20 0 528 832 ;
-C -1 ; WX 580 ; N yacute ; B 73 -185 671 832 ;
-C -1 ; WX 600 ; N uhungarumlaut ; B 88 -13 718 838 ;
-C -1 ; WX 640 ; N eth ; B 76 -13 680 757 ;
-C -1 ; WX 600 ; N uring ; B 88 -13 650 823 ;
-C -1 ; WX 840 ; N Ocircumflex ; B 91 -13 875 943 ;
-C -1 ; WX 280 ; N commaaccent ; B 13 -245 211 -53 ;
-C -1 ; WX 740 ; N copyright ; B 50 -13 834 752 ;
-C -1 ; WX 740 ; N registered ; B 50 -13 834 752 ;
-C -1 ; WX 740 ; N Acircumflex ; B 7 0 733 943 ;
-C -1 ; WX 240 ; N idieresis ; B 54 0 427 762 ;
-C -1 ; WX 494 ; N lozenge ; B 88 0 535 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 600 ; N notequal ; B 90 101 652 632 ;
-C -1 ; WX 549 ; N radical ; B 60 -35 709 917 ;
-C -1 ; WX 740 ; N Agrave ; B 7 0 733 1007 ;
-C -1 ; WX 740 ; N Aacute ; B 7 0 733 1007 ;
-C -1 ; WX 600 ; N lessequal ; B 45 0 681 711 ;
-C -1 ; WX 600 ; N greaterequal ; B 51 0 643 711 ;
-C -1 ; WX 600 ; N logicalnot ; B 117 182 643 471 ;
-C -1 ; WX 713 ; N summation ; B -9 -123 761 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 56 -10 545 753 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 68 -245 804 739 ;
-C -1 ; WX 660 ; N dcroat ; B 77 -13 801 739 ;
-C -1 ; WX 600 ; N brokenbar ; B 243 0 499 739 ;
-C -1 ; WX 440 ; N Lcommaaccent ; B 68 -245 456 739 ;
-C -1 ; WX 740 ; N Adieresis ; B 7 0 733 937 ;
-C -1 ; WX 576 ; N mu ; B 20 -185 650 554 ;
-C -1 ; WX 280 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -39
-KPX A Ccedilla -38
-KPX A G -38
-KPX A O -38
-KPX A Odieresis -38
-KPX A Q -38
-KPX A T -47
-KPX A U -34
-KPX A Uacute -34
-KPX A Ucircumflex -34
-KPX A Udieresis -34
-KPX A Ugrave -34
-KPX A V -78
-KPX A W -58
-KPX A Y -86
-KPX A a -22
-KPX A b -8
-KPX A c -25
-KPX A ccedilla -25
-KPX A comma 14
-KPX A d -22
-KPX A e -25
-KPX A g -23
-KPX A guillemotleft -22
-KPX A guilsinglleft -22
-KPX A hyphen -24
-KPX A o -25
-KPX A period 16
-KPX A q -23
-KPX A quotedblright -78
-KPX A quoteright -79
-KPX A t -13
-KPX A u -16
-KPX A v -45
-KPX A w -43
-KPX A y -47
-KPX Aacute C -39
-KPX Aacute G -38
-KPX Aacute O -38
-KPX Aacute Q -38
-KPX Aacute T -47
-KPX Aacute U -34
-KPX Aacute V -78
-KPX Aacute W -58
-KPX Aacute Y -86
-KPX Aacute a -22
-KPX Aacute b -8
-KPX Aacute c -25
-KPX Aacute comma 14
-KPX Aacute d -22
-KPX Aacute e -25
-KPX Aacute g -23
-KPX Aacute guillemotleft -22
-KPX Aacute guilsinglleft -22
-KPX Aacute hyphen -24
-KPX Aacute o -25
-KPX Aacute period 16
-KPX Aacute q -23
-KPX Aacute quoteright -79
-KPX Aacute t -13
-KPX Aacute u -16
-KPX Aacute v -45
-KPX Aacute w -43
-KPX Aacute y -47
-KPX Acircumflex C -39
-KPX Acircumflex G -38
-KPX Acircumflex O -38
-KPX Acircumflex Q -38
-KPX Acircumflex T -47
-KPX Acircumflex U -34
-KPX Acircumflex V -78
-KPX Acircumflex W -58
-KPX Acircumflex Y -86
-KPX Acircumflex comma 14
-KPX Acircumflex period 16
-KPX Adieresis C -39
-KPX Adieresis G -38
-KPX Adieresis O -38
-KPX Adieresis Q -38
-KPX Adieresis T -47
-KPX Adieresis U -34
-KPX Adieresis V -78
-KPX Adieresis W -58
-KPX Adieresis Y -86
-KPX Adieresis a -22
-KPX Adieresis b -8
-KPX Adieresis c -25
-KPX Adieresis comma 14
-KPX Adieresis d -22
-KPX Adieresis g -23
-KPX Adieresis guillemotleft -22
-KPX Adieresis guilsinglleft -22
-KPX Adieresis hyphen -24
-KPX Adieresis o -25
-KPX Adieresis period 16
-KPX Adieresis q -23
-KPX Adieresis quotedblright -78
-KPX Adieresis quoteright -79
-KPX Adieresis t -13
-KPX Adieresis u -16
-KPX Adieresis v -45
-KPX Adieresis w -43
-KPX Adieresis y -47
-KPX Agrave C -39
-KPX Agrave G -38
-KPX Agrave O -38
-KPX Agrave Q -38
-KPX Agrave T -47
-KPX Agrave U -34
-KPX Agrave V -78
-KPX Agrave W -58
-KPX Agrave Y -86
-KPX Agrave comma 14
-KPX Agrave period 16
-KPX Aring C -39
-KPX Aring G -38
-KPX Aring O -38
-KPX Aring Q -38
-KPX Aring T -47
-KPX Aring U -34
-KPX Aring V -78
-KPX Aring W -58
-KPX Aring Y -86
-KPX Aring a -22
-KPX Aring b -8
-KPX Aring c -25
-KPX Aring comma 14
-KPX Aring d -22
-KPX Aring e -25
-KPX Aring g -23
-KPX Aring guillemotleft -22
-KPX Aring guilsinglleft -22
-KPX Aring hyphen -24
-KPX Aring o -25
-KPX Aring period 16
-KPX Aring q -23
-KPX Aring quotedblright -78
-KPX Aring quoteright -79
-KPX Aring t -13
-KPX Aring u -16
-KPX Aring v -45
-KPX Aring w -43
-KPX Aring y -47
-KPX Atilde C -39
-KPX Atilde G -38
-KPX Atilde O -38
-KPX Atilde Q -38
-KPX Atilde T -47
-KPX Atilde U -34
-KPX Atilde V -78
-KPX Atilde W -58
-KPX Atilde Y -86
-KPX Atilde comma 14
-KPX Atilde period 16
-KPX B A -24
-KPX B AE -42
-KPX B Aacute -24
-KPX B Acircumflex -24
-KPX B Adieresis -24
-KPX B Aring -24
-KPX B Atilde -24
-KPX B O 0
-KPX B OE -3
-KPX B Oacute 0
-KPX B Ocircumflex 0
-KPX B Odieresis 0
-KPX B Ograve 0
-KPX B Oslash 0
-KPX B V -34
-KPX B W -16
-KPX B Y -45
-KPX C A -21
-KPX C AE -45
-KPX C Aacute -21
-KPX C Adieresis -21
-KPX C Aring -21
-KPX C H 2
-KPX C K 2
-KPX C O -9
-KPX C Oacute -9
-KPX C Odieresis -9
-KPX Ccedilla A -24
-KPX D A -44
-KPX D Aacute -44
-KPX D Acircumflex -44
-KPX D Adieresis -44
-KPX D Agrave -44
-KPX D Aring -44
-KPX D Atilde -44
-KPX D J -22
-KPX D T -29
-KPX D V -41
-KPX D W -22
-KPX D X -38
-KPX D Y -53
-KPX F A -57
-KPX F Aacute -57
-KPX F Acircumflex -57
-KPX F Adieresis -57
-KPX F Agrave -57
-KPX F Aring -57
-KPX F Atilde -57
-KPX F J -61
-KPX F O -10
-KPX F Odieresis -10
-KPX F a -14
-KPX F aacute -14
-KPX F adieresis -14
-KPX F ae -14
-KPX F aring -14
-KPX F comma -64
-KPX F e -14
-KPX F eacute -14
-KPX F hyphen -3
-KPX F i -17
-KPX F j -27
-KPX F o -14
-KPX F oacute -14
-KPX F odieresis -14
-KPX F oe -14
-KPX F oslash -16
-KPX F period -63
-KPX F r -17
-KPX F u -21
-KPX G A -38
-KPX G AE -65
-KPX G Aacute -38
-KPX G Acircumflex -38
-KPX G Adieresis -38
-KPX G Agrave -38
-KPX G Aring -38
-KPX G Atilde -38
-KPX G T -25
-KPX G V -38
-KPX G W -20
-KPX G Y -50
-KPX J A -31
-KPX J AE -45
-KPX J Adieresis -31
-KPX J Aring -31
-KPX K C -50
-KPX K G -50
-KPX K O -49
-KPX K OE -52
-KPX K Oacute -49
-KPX K Odieresis -49
-KPX K S -34
-KPX K T 16
-KPX K a -57
-KPX K adieresis -57
-KPX K ae -59
-KPX K aring -57
-KPX K e -60
-KPX K hyphen -75
-KPX K o -60
-KPX K oacute -60
-KPX K odieresis -60
-KPX K u -50
-KPX K udieresis -48
-KPX K y -65
-KPX L A 19
-KPX L AE 14
-KPX L Aacute 19
-KPX L Adieresis 19
-KPX L Aring 19
-KPX L C -29
-KPX L Ccedilla -32
-KPX L G -29
-KPX L O -29
-KPX L Oacute -29
-KPX L Ocircumflex -29
-KPX L Odieresis -29
-KPX L Ograve -29
-KPX L Otilde -29
-KPX L S 10
-KPX L T -46
-KPX L U -20
-KPX L Udieresis -20
-KPX L V -76
-KPX L W -56
-KPX L Y -84
-KPX L hyphen -32
-KPX L quotedblright -76
-KPX L quoteright -77
-KPX L u -11
-KPX L udieresis -11
-KPX L y -50
-KPX N A -13
-KPX N AE -18
-KPX N Aacute -13
-KPX N Adieresis -13
-KPX N Aring -13
-KPX N C -2
-KPX N Ccedilla -1
-KPX N G -1
-KPX N O -1
-KPX N Oacute -1
-KPX N Odieresis -1
-KPX N a -3
-KPX N aacute -3
-KPX N adieresis -3
-KPX N ae -4
-KPX N aring -3
-KPX N comma 3
-KPX N e -5
-KPX N eacute -5
-KPX N o -5
-KPX N oacute -5
-KPX N odieresis -5
-KPX N oslash -4
-KPX N period 4
-KPX N u 3
-KPX N udieresis 3
-KPX O A -44
-KPX O AE -75
-KPX O Aacute -44
-KPX O Adieresis -44
-KPX O Aring -44
-KPX O T -30
-KPX O V -42
-KPX O W -23
-KPX O X -39
-KPX O Y -54
-KPX Oacute A -44
-KPX Oacute T -30
-KPX Oacute V -42
-KPX Oacute W -23
-KPX Oacute Y -54
-KPX Ocircumflex T -30
-KPX Ocircumflex V -42
-KPX Ocircumflex Y -54
-KPX Odieresis A -44
-KPX Odieresis T -30
-KPX Odieresis V -42
-KPX Odieresis W -23
-KPX Odieresis X -39
-KPX Odieresis Y -54
-KPX Ograve T -30
-KPX Ograve V -42
-KPX Ograve Y -54
-KPX Oslash A -41
-KPX Otilde T -30
-KPX Otilde V -42
-KPX Otilde Y -54
-KPX P A -64
-KPX P AE -112
-KPX P Aacute -64
-KPX P Adieresis -64
-KPX P Aring -64
-KPX P J -71
-KPX P a -24
-KPX P aacute -24
-KPX P adieresis -24
-KPX P ae -25
-KPX P aring -24
-KPX P comma -98
-KPX P e -25
-KPX P eacute -25
-KPX P hyphen -28
-KPX P o -26
-KPX P oacute -26
-KPX P odieresis -26
-KPX P oe -24
-KPX P oslash -27
-KPX P period -98
-KPX R C -1
-KPX R Ccedilla 0
-KPX R G -1
-KPX R O 0
-KPX R OE -4
-KPX R Oacute 0
-KPX R Odieresis 0
-KPX R T 4
-KPX R U 2
-KPX R Udieresis 2
-KPX R V -21
-KPX R W -9
-KPX R Y -26
-KPX R a -7
-KPX R aacute -7
-KPX R adieresis -7
-KPX R ae -8
-KPX R aring -7
-KPX R e -9
-KPX R eacute -9
-KPX R hyphen -22
-KPX R o -10
-KPX R oacute -10
-KPX R odieresis -10
-KPX R oe -9
-KPX R u 1
-KPX R uacute 1
-KPX R udieresis 1
-KPX R y 7
-KPX S A -19
-KPX S AE -35
-KPX S Aacute -19
-KPX S Adieresis -19
-KPX S Aring -19
-KPX S T -3
-KPX S V -28
-KPX S W -10
-KPX S Y -33
-KPX S t 10
-KPX T A -47
-KPX T AE -52
-KPX T Aacute -47
-KPX T Acircumflex -47
-KPX T Adieresis -47
-KPX T Agrave -47
-KPX T Aring -47
-KPX T Atilde -47
-KPX T C -27
-KPX T G -27
-KPX T J -46
-KPX T O -27
-KPX T OE -30
-KPX T Oacute -27
-KPX T Ocircumflex -27
-KPX T Odieresis -27
-KPX T Ograve -27
-KPX T Oslash -25
-KPX T Otilde -27
-KPX T S 1
-KPX T V 22
-KPX T W 23
-KPX T Y 24
-KPX T a -38
-KPX T ae -39
-KPX T c -41
-KPX T colon -37
-KPX T comma -30
-KPX T e -40
-KPX T g -36
-KPX T guillemotleft -33
-KPX T guilsinglleft -33
-KPX T hyphen -33
-KPX T i -2
-KPX T j -11
-KPX T o -40
-KPX T oslash -39
-KPX T period -29
-KPX T r -25
-KPX T s -30
-KPX T semicolon -37
-KPX T u -30
-KPX T v -48
-KPX T w -51
-KPX T y -50
-KPX U A -37
-KPX U AE -59
-KPX U Aacute -37
-KPX U Acircumflex -37
-KPX U Adieresis -37
-KPX U Aring -37
-KPX U Atilde -37
-KPX U comma -15
-KPX U m 2
-KPX U n 2
-KPX U p 1
-KPX U period -12
-KPX U r 2
-KPX Uacute A -37
-KPX Uacute comma -15
-KPX Uacute m 2
-KPX Uacute n 2
-KPX Uacute p 1
-KPX Uacute period -12
-KPX Uacute r 2
-KPX Ucircumflex A -37
-KPX Udieresis A -37
-KPX Udieresis b 1
-KPX Udieresis comma -15
-KPX Udieresis m 2
-KPX Udieresis n 2
-KPX Udieresis p 1
-KPX Udieresis period -12
-KPX Udieresis r 2
-KPX Ugrave A -37
-KPX V A -76
-KPX V AE -123
-KPX V Aacute -76
-KPX V Acircumflex -76
-KPX V Adieresis -76
-KPX V Agrave -76
-KPX V Aring -76
-KPX V Atilde -76
-KPX V C -41
-KPX V G -41
-KPX V O -41
-KPX V Oacute -41
-KPX V Ocircumflex -41
-KPX V Odieresis -41
-KPX V Ograve -41
-KPX V Oslash -39
-KPX V Otilde -41
-KPX V S -25
-KPX V T 23
-KPX V a -59
-KPX V ae -61
-KPX V colon -57
-KPX V comma -83
-KPX V e -62
-KPX V g -58
-KPX V guillemotleft -54
-KPX V guilsinglleft -54
-KPX V hyphen -54
-KPX V i -4
-KPX V o -62
-KPX V oslash -61
-KPX V period -83
-KPX V r -41
-KPX V semicolon -57
-KPX V u -44
-KPX V y -20
-KPX W A -55
-KPX W AE -90
-KPX W Aacute -55
-KPX W Acircumflex -55
-KPX W Adieresis -55
-KPX W Agrave -55
-KPX W Aring -55
-KPX W Atilde -55
-KPX W C -22
-KPX W G -22
-KPX W O -21
-KPX W Oacute -21
-KPX W Ocircumflex -21
-KPX W Odieresis -21
-KPX W Ograve -21
-KPX W Oslash -19
-KPX W Otilde -21
-KPX W S -10
-KPX W T 25
-KPX W a -36
-KPX W ae -37
-KPX W colon -38
-KPX W comma -52
-KPX W e -38
-KPX W g -34
-KPX W guillemotleft -31
-KPX W guilsinglleft -31
-KPX W hyphen -31
-KPX W i -2
-KPX W o -38
-KPX W oslash -37
-KPX W period -51
-KPX W r -22
-KPX W semicolon -39
-KPX W u -28
-KPX W y -9
-KPX X C -36
-KPX X O -35
-KPX X Odieresis -35
-KPX X Q -35
-KPX X a -43
-KPX X e -46
-KPX X hyphen -61
-KPX X o -46
-KPX X u -36
-KPX X y -49
-KPX Y A -81
-KPX Y AE -100
-KPX Y Aacute -81
-KPX Y Acircumflex -81
-KPX Y Adieresis -81
-KPX Y Agrave -81
-KPX Y Aring -81
-KPX Y Atilde -81
-KPX Y C -49
-KPX Y G -48
-KPX Y O -48
-KPX Y Oacute -48
-KPX Y Ocircumflex -48
-KPX Y Odieresis -48
-KPX Y Ograve -48
-KPX Y Oslash -46
-KPX Y Otilde -48
-KPX Y S -27
-KPX Y T 29
-KPX Y a -68
-KPX Y ae -69
-KPX Y colon -67
-KPX Y comma -78
-KPX Y e -70
-KPX Y g -66
-KPX Y guillemotleft -69
-KPX Y guilsinglleft -69
-KPX Y hyphen -73
-KPX Y i 1
-KPX Y o -71
-KPX Y oslash -69
-KPX Y p -47
-KPX Y period -77
-KPX Y semicolon -67
-KPX Y u -52
-KPX Y v -25
-KPX Z v -17
-KPX Z y -20
-KPX a j 8
-KPX a quoteright 7
-KPX a v -4
-KPX a w -5
-KPX a y -7
-KPX aacute v -4
-KPX aacute w -5
-KPX aacute y -7
-KPX adieresis v -4
-KPX adieresis w -5
-KPX adieresis y -7
-KPX ae v -25
-KPX ae w -24
-KPX ae y -30
-KPX agrave v -4
-KPX agrave w -5
-KPX agrave y -7
-KPX aring v -4
-KPX aring w -5
-KPX aring y -7
-KPX b v -18
-KPX b w -17
-KPX b y -23
-KPX c h -11
-KPX c k -11
-KPX comma one -83
-KPX comma quotedblright -32
-KPX comma quoteright -33
-KPX e quoteright -17
-KPX e t -2
-KPX e v -25
-KPX e w -24
-KPX e x -27
-KPX e y -30
-KPX eacute v -25
-KPX eacute w -24
-KPX eacute y -30
-KPX ecircumflex v -25
-KPX ecircumflex w -24
-KPX ecircumflex y -30
-KPX eight four 10
-KPX eight one -78
-KPX eight seven -52
-KPX f a -10
-KPX f aacute -10
-KPX f adieresis -10
-KPX f ae -11
-KPX f aring -10
-KPX f e -12
-KPX f eacute -12
-KPX f f 11
-KPX f i 3
-KPX f j -6
-KPX f l 3
-KPX f o -13
-KPX f oacute -13
-KPX f odieresis -13
-KPX f oe -12
-KPX f oslash -11
-KPX f quoteright 10
-KPX f s -2
-KPX f t 11
-KPX five four 10
-KPX five one -86
-KPX five seven -58
-KPX four four 15
-KPX four one -78
-KPX four seven -51
-KPX g a 2
-KPX g adieresis 2
-KPX g ae 1
-KPX g aring 2
-KPX g e 0
-KPX g eacute 0
-KPX g l 14
-KPX g oacute 0
-KPX g odieresis 0
-KPX g r 14
-KPX guillemotright A -16
-KPX guillemotright AE -54
-KPX guillemotright Aacute -16
-KPX guillemotright Adieresis -16
-KPX guillemotright Aring -16
-KPX guillemotright T -26
-KPX guillemotright V -47
-KPX guillemotright W -24
-KPX guillemotright Y -66
-KPX guilsinglright A -13
-KPX guilsinglright AE -51
-KPX guilsinglright Aacute -13
-KPX guilsinglright Adieresis -13
-KPX guilsinglright Aring -13
-KPX guilsinglright T -22
-KPX guilsinglright V -44
-KPX guilsinglright W -21
-KPX guilsinglright Y -62
-KPX h quoteright -11
-KPX h y -23
-KPX hyphen A -14
-KPX hyphen AE -53
-KPX hyphen Aacute -14
-KPX hyphen Adieresis -14
-KPX hyphen Aring -14
-KPX hyphen T -24
-KPX hyphen V -46
-KPX hyphen W -23
-KPX hyphen Y -68
-KPX i T -3
-KPX i j 3
-KPX k a -48
-KPX k aacute -48
-KPX k adieresis -48
-KPX k ae -50
-KPX k aring -48
-KPX k comma -15
-KPX k e -51
-KPX k eacute -51
-KPX k g -47
-KPX k hyphen -78
-KPX k o -51
-KPX k oacute -51
-KPX k odieresis -51
-KPX k period -14
-KPX k s -38
-KPX k u -40
-KPX k udieresis -34
-KPX l v -8
-KPX l y -10
-KPX m p 5
-KPX m v -20
-KPX m w -19
-KPX m y -24
-KPX n T -31
-KPX n p 5
-KPX n quoteright -10
-KPX n v -20
-KPX n w -18
-KPX n y -23
-KPX nine four -33
-KPX nine one -76
-KPX nine seven -32
-KPX o T -33
-KPX o quoteright -16
-KPX o t 1
-KPX o v -22
-KPX o w -20
-KPX o x -24
-KPX o y -27
-KPX oacute v -22
-KPX oacute w -20
-KPX oacute y -27
-KPX ocircumflex t 1
-KPX odieresis t 1
-KPX odieresis v -22
-KPX odieresis w -20
-KPX odieresis x -24
-KPX odieresis y -27
-KPX ograve v -22
-KPX ograve w -20
-KPX ograve y -27
-KPX one comma -50
-KPX one eight -50
-KPX one five -45
-KPX one four -60
-KPX one nine -55
-KPX one one -126
-KPX one period -49
-KPX one seven -93
-KPX one six -60
-KPX one three -58
-KPX one two -54
-KPX one zero -36
-KPX p t 1
-KPX p y -26
-KPX period one -83
-KPX period quotedblright -32
-KPX period quoteright -33
-KPX q c 0
-KPX q u 9
-KPX quotedblbase A 17
-KPX quotedblbase AE 0
-KPX quotedblbase T -28
-KPX quotedblbase V -82
-KPX quotedblbase W -52
-KPX quotedblbase Y -80
-KPX quotedblleft A -76
-KPX quotedblleft AE -148
-KPX quotedblleft Aacute -76
-KPX quotedblleft Adieresis -76
-KPX quotedblleft Aring -76
-KPX quotedblleft T 1
-KPX quotedblleft V 7
-KPX quotedblleft W 15
-KPX quotedblleft Y -1
-KPX quotedblright A -78
-KPX quotedblright AE -150
-KPX quotedblright Aacute -78
-KPX quotedblright Adieresis -78
-KPX quotedblright Aring -78
-KPX quotedblright T 0
-KPX quotedblright V 5
-KPX quotedblright W 14
-KPX quotedblright Y -3
-KPX quoteleft A -78
-KPX quoteleft AE -150
-KPX quoteleft Aacute -78
-KPX quoteleft Adieresis -78
-KPX quoteleft Aring -78
-KPX quoteleft T 0
-KPX quoteleft V 4
-KPX quoteleft W 13
-KPX quoteleft Y -4
-KPX quoteright A -81
-KPX quoteright AE -153
-KPX quoteright Aacute -81
-KPX quoteright Adieresis -81
-KPX quoteright Aring -81
-KPX quoteright comma -39
-KPX quoteright d -27
-KPX quoteright o -34
-KPX quoteright period -39
-KPX quoteright r -4
-KPX quoteright s -12
-KPX quoteright t 7
-KPX quoteright v 3
-KPX quoteright w 1
-KPX quoteright y 0
-KPX r a -23
-KPX r aacute -23
-KPX r acircumflex -23
-KPX r adieresis -23
-KPX r ae -24
-KPX r agrave -23
-KPX r aring -23
-KPX r c -25
-KPX r ccedilla -21
-KPX r colon -16
-KPX r comma -33
-KPX r d -21
-KPX r e -25
-KPX r eacute -25
-KPX r ecircumflex -25
-KPX r egrave -25
-KPX r f 11
-KPX r g -18
-KPX r h -10
-KPX r hyphen -37
-KPX r i -9
-KPX r j -19
-KPX r k -10
-KPX r l -10
-KPX r m -10
-KPX r n -10
-KPX r o -25
-KPX r oacute -25
-KPX r ocircumflex -25
-KPX r odieresis -25
-KPX r oe -24
-KPX r ograve -25
-KPX r oslash -26
-KPX r p -11
-KPX r period -33
-KPX r q -20
-KPX r quoteright 10
-KPX r r -10
-KPX r s -8
-KPX r semicolon -16
-KPX r t 11
-KPX r u -12
-KPX r v 12
-KPX r w 8
-KPX r x -1
-KPX r y 10
-KPX r z -9
-KPX s quoteright -3
-KPX s t 6
-KPX seven colon -63
-KPX seven comma -98
-KPX seven eight -46
-KPX seven five -41
-KPX seven four -67
-KPX seven one -77
-KPX seven period -97
-KPX seven seven -33
-KPX seven six -60
-KPX seven three -42
-KPX seven two -28
-KPX six four 16
-KPX six one -85
-KPX six seven -60
-KPX t S 3
-KPX t a -11
-KPX t aacute -11
-KPX t adieresis -11
-KPX t ae -12
-KPX t aring -11
-KPX t colon -14
-KPX t e -13
-KPX t eacute -13
-KPX t h 2
-KPX t o -13
-KPX t oacute -13
-KPX t odieresis -13
-KPX t quoteright 12
-KPX t semicolon -15
-KPX three four 9
-KPX three one -81
-KPX three seven -57
-KPX two four 8
-KPX two one -74
-KPX two seven -36
-KPX u quoteright 4
-KPX v a -31
-KPX v aacute -31
-KPX v acircumflex -31
-KPX v adieresis -31
-KPX v ae -32
-KPX v agrave -31
-KPX v aring -31
-KPX v atilde -31
-KPX v c -34
-KPX v colon -24
-KPX v comma -63
-KPX v e -33
-KPX v eacute -33
-KPX v ecircumflex -33
-KPX v egrave -33
-KPX v g -29
-KPX v hyphen -29
-KPX v l -8
-KPX v o -33
-KPX v oacute -33
-KPX v odieresis -33
-KPX v ograve -33
-KPX v oslash -33
-KPX v period -63
-KPX v s -23
-KPX v semicolon -24
-KPX w a -29
-KPX w aacute -29
-KPX w acircumflex -29
-KPX w adieresis -29
-KPX w ae -30
-KPX w agrave -29
-KPX w aring -29
-KPX w atilde -29
-KPX w c -32
-KPX w colon -27
-KPX w comma -58
-KPX w e -31
-KPX w eacute -31
-KPX w ecircumflex -31
-KPX w egrave -31
-KPX w g -28
-KPX w hyphen -27
-KPX w l -12
-KPX w o -32
-KPX w oacute -32
-KPX w odieresis -32
-KPX w ograve -32
-KPX w oslash -31
-KPX w period -57
-KPX w s -21
-KPX w semicolon -27
-KPX x a -30
-KPX x c -33
-KPX x e -32
-KPX x eacute -32
-KPX x o -32
-KPX x q -30
-KPX y a -38
-KPX y aacute -38
-KPX y acircumflex -38
-KPX y adieresis -38
-KPX y ae -39
-KPX y agrave -38
-KPX y aring -38
-KPX y atilde -38
-KPX y c -41
-KPX y colon -27
-KPX y comma -72
-KPX y e -40
-KPX y eacute -40
-KPX y ecircumflex -40
-KPX y egrave -40
-KPX y g -37
-KPX y hyphen -34
-KPX y l -10
-KPX y o -41
-KPX y oacute -41
-KPX y odieresis -41
-KPX y ograve -41
-KPX y oslash -39
-KPX y period -70
-KPX y s -30
-KPX y semicolon -27
-KPX zero four 12
-KPX zero one -63
-KPX zero seven -34
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/a010035l.pfb b/Master/xemtex/gsfonts/a010035l.pfb
deleted file mode 100644
index d66ef9bd423..00000000000
--- a/Master/xemtex/gsfonts/a010035l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/a010035l.pfm b/Master/xemtex/gsfonts/a010035l.pfm
deleted file mode 100644
index 41b98b964bb..00000000000
--- a/Master/xemtex/gsfonts/a010035l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018012l.afm b/Master/xemtex/gsfonts/b018012l.afm
deleted file mode 100644
index 5901621ba90..00000000000
--- a/Master/xemtex/gsfonts/b018012l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWBookmanL-Ligh
-FullName URW Bookman L Light
-FamilyName URW Bookman L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -125
-UnderlineThickness 60
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -188 -268 1266 930
-CapHeight 681
-XHeight 485
-Descender -228
-Ascender 717
-StartCharMetrics 316
-C 32 ; WX 320 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 300 ; N exclam ; B 75 -13 219 694 ;
-C 34 ; WX 380 ; N quotedbl ; B 56 445 323 694 ;
-C 35 ; WX 620 ; N numbersign ; B 65 0 556 666 ;
-C 36 ; WX 620 ; N dollar ; B 34 -110 593 791 ;
-C 37 ; WX 900 ; N percent ; B 22 -8 873 689 ;
-C 38 ; WX 800 ; N ampersand ; B 45 -13 787 694 ;
-C 39 ; WX 220 ; N quoteright ; B 46 476 178 694 ;
-C 40 ; WX 300 ; N parenleft ; B 76 -151 278 717 ;
-C 41 ; WX 300 ; N parenright ; B 17 -151 219 717 ;
-C 42 ; WX 440 ; N asterisk ; B 54 323 391 694 ;
-C 43 ; WX 600 ; N plus ; B 51 111 555 595 ;
-C 44 ; WX 320 ; N comma ; B 90 -112 223 117 ;
-C 45 ; WX 400 ; N hyphen ; B 50 232 350 289 ;
-C 46 ; WX 320 ; N period ; B 92 -13 220 115 ;
-C 47 ; WX 600 ; N slash ; B 74 -141 532 717 ;
-C 48 ; WX 620 ; N zero ; B 40 -13 586 694 ;
-C 49 ; WX 620 ; N one ; B 160 0 501 681 ;
-C 50 ; WX 620 ; N two ; B 42 0 576 694 ;
-C 51 ; WX 620 ; N three ; B 40 -13 576 694 ;
-C 52 ; WX 620 ; N four ; B 25 0 600 681 ;
-C 53 ; WX 620 ; N five ; B 60 -13 584 717 ;
-C 54 ; WX 620 ; N six ; B 45 -13 590 694 ;
-C 55 ; WX 620 ; N seven ; B 60 0 586 681 ;
-C 56 ; WX 620 ; N eight ; B 44 -13 583 694 ;
-C 57 ; WX 620 ; N nine ; B 37 -13 576 694 ;
-C 58 ; WX 320 ; N colon ; B 92 -13 220 494 ;
-C 59 ; WX 320 ; N semicolon ; B 90 -112 223 494 ;
-C 60 ; WX 600 ; N less ; B 49 49 558 599 ;
-C 61 ; WX 600 ; N equal ; B 51 217 555 489 ;
-C 62 ; WX 600 ; N greater ; B 48 49 557 599 ;
-C 63 ; WX 540 ; N question ; B 27 -13 514 694 ;
-C 64 ; WX 820 ; N at ; B 55 -13 755 700 ;
-C 65 ; WX 680 ; N A ; B -37 0 714 681 ;
-C 66 ; WX 740 ; N B ; B 31 0 702 681 ;
-C 67 ; WX 740 ; N C ; B 44 -13 702 694 ;
-C 68 ; WX 800 ; N D ; B 31 0 752 681 ;
-C 69 ; WX 720 ; N E ; B 31 0 705 681 ;
-C 70 ; WX 640 ; N F ; B 31 0 654 681 ;
-C 71 ; WX 800 ; N G ; B 44 -13 778 694 ;
-C 72 ; WX 800 ; N H ; B 31 0 769 681 ;
-C 73 ; WX 340 ; N I ; B 31 0 301 681 ;
-C 74 ; WX 600 ; N J ; B -23 -13 567 681 ;
-C 75 ; WX 720 ; N K ; B 31 0 750 681 ;
-C 76 ; WX 600 ; N L ; B 31 0 629 681 ;
-C 77 ; WX 920 ; N M ; B 26 0 894 681 ;
-C 78 ; WX 740 ; N N ; B 26 0 722 681 ;
-C 79 ; WX 800 ; N O ; B 44 -13 758 694 ;
-C 80 ; WX 620 ; N P ; B 31 0 613 681 ;
-C 81 ; WX 820 ; N Q ; B 44 -190 769 694 ;
-C 82 ; WX 720 ; N R ; B 31 0 757 681 ;
-C 83 ; WX 660 ; N S ; B 28 -13 634 694 ;
-C 84 ; WX 620 ; N T ; B -37 0 656 681 ;
-C 85 ; WX 780 ; N U ; B 25 -13 754 681 ;
-C 86 ; WX 700 ; N V ; B -30 0 725 681 ;
-C 87 ; WX 960 ; N W ; B -30 0 984 681 ;
-C 88 ; WX 720 ; N X ; B -30 0 755 681 ;
-C 89 ; WX 640 ; N Y ; B -30 0 666 681 ;
-C 90 ; WX 640 ; N Z ; B 10 0 656 681 ;
-C 91 ; WX 300 ; N bracketleft ; B 92 -141 258 717 ;
-C 92 ; WX 600 ; N backslash ; B 74 0 532 717 ;
-C 93 ; WX 300 ; N bracketright ; B 41 -141 207 717 ;
-C 94 ; WX 600 ; N asciicircum ; B 52 318 554 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -155 500 -95 ;
-C 96 ; WX 220 ; N quoteleft ; B 46 475 178 694 ;
-C 97 ; WX 580 ; N a ; B 35 -9 587 494 ;
-C 98 ; WX 620 ; N b ; B -2 -9 582 717 ;
-C 99 ; WX 520 ; N c ; B 37 -9 498 494 ;
-C 100 ; WX 620 ; N d ; B 37 -9 591 717 ;
-C 101 ; WX 520 ; N e ; B 37 -9 491 494 ;
-C 102 ; WX 320 ; N f ; B 20 0 414 734 ;
-C 103 ; WX 540 ; N g ; B 17 -241 542 563 ;
-C 104 ; WX 660 ; N h ; B 20 0 643 717 ;
-C 105 ; WX 300 ; N i ; B 20 0 288 654 ;
-C 106 ; WX 300 ; N j ; B -109 -241 214 654 ;
-C 107 ; WX 620 ; N k ; B 20 0 628 717 ;
-C 108 ; WX 300 ; N l ; B 20 0 286 717 ;
-C 109 ; WX 940 ; N m ; B 17 0 928 494 ;
-C 110 ; WX 660 ; N n ; B 20 0 649 494 ;
-C 111 ; WX 560 ; N o ; B 37 -9 526 494 ;
-C 112 ; WX 620 ; N p ; B 20 -228 583 494 ;
-C 113 ; WX 580 ; N q ; B 37 -228 589 494 ;
-C 114 ; WX 440 ; N r ; B 20 0 447 494 ;
-C 115 ; WX 520 ; N s ; B 40 -9 487 494 ;
-C 116 ; WX 380 ; N t ; B 20 -9 388 667 ;
-C 117 ; WX 680 ; N u ; B 20 -9 653 485 ;
-C 118 ; WX 520 ; N v ; B -23 0 534 485 ;
-C 119 ; WX 780 ; N w ; B -19 0 804 485 ;
-C 120 ; WX 560 ; N x ; B -16 0 576 485 ;
-C 121 ; WX 540 ; N y ; B -23 -241 549 485 ;
-C 122 ; WX 480 ; N z ; B 7 0 476 485 ;
-C 123 ; WX 280 ; N braceleft ; B 35 -122 248 738 ;
-C 124 ; WX 600 ; N bar ; B 264 0 342 722 ;
-C 125 ; WX 280 ; N braceright ; B 35 -122 248 738 ;
-C 126 ; WX 600 ; N asciitilde ; B 52 152 556 332 ;
-C 161 ; WX 300 ; N exclamdown ; B 75 -213 219 494 ;
-C 162 ; WX 620 ; N cent ; B 116 21 511 652 ;
-C 163 ; WX 620 ; N sterling ; B 8 -13 631 694 ;
-C 164 ; WX 140 ; N fraction ; B -188 0 335 681 ;
-C 165 ; WX 620 ; N yen ; B -22 0 647 681 ;
-C 166 ; WX 620 ; N florin ; B -29 -155 633 749 ;
-C 167 ; WX 520 ; N section ; B 33 -183 486 694 ;
-C 168 ; WX 620 ; N currency ; B 58 105 563 606 ;
-C 169 ; WX 220 ; N quotesingle ; B 67 445 153 694 ;
-C 170 ; WX 400 ; N quotedblleft ; B 46 475 348 694 ;
-C 171 ; WX 360 ; N guillemotleft ; B 51 89 312 437 ;
-C 172 ; WX 240 ; N guilsinglleft ; B 51 89 189 437 ;
-C 173 ; WX 240 ; N guilsinglright ; B 51 89 189 437 ;
-C 174 ; WX 620 ; N fi ; B 20 0 608 734 ;
-C 175 ; WX 620 ; N fl ; B 20 0 606 734 ;
-C 177 ; WX 500 ; N endash ; B -15 232 515 289 ;
-C 178 ; WX 540 ; N dagger ; B 79 -161 455 694 ;
-C 179 ; WX 540 ; N daggerdbl ; B 79 -161 455 694 ;
-C 180 ; WX 320 ; N periodcentered ; B 92 196 222 326 ;
-C 182 ; WX 600 ; N paragraph ; B 14 0 577 681 ;
-C 183 ; WX 460 ; N bullet ; B 60 213 404 557 ;
-C 184 ; WX 220 ; N quotesinglbase ; B 46 -106 178 112 ;
-C 185 ; WX 400 ; N quotedblbase ; B 46 -107 348 112 ;
-C 186 ; WX 400 ; N quotedblright ; B 46 475 348 694 ;
-C 187 ; WX 360 ; N guillemotright ; B 51 89 312 437 ;
-C 188 ; WX 1000 ; N ellipsis ; B 101 -13 898 115 ;
-C 189 ; WX 1280 ; N perthousand ; B 22 -8 1266 689 ;
-C 191 ; WX 540 ; N questiondown ; B 23 -213 510 494 ;
-C 193 ; WX 340 ; N grave ; B 68 564 274 680 ;
-C 194 ; WX 340 ; N acute ; B 68 564 274 680 ;
-C 195 ; WX 420 ; N circumflex ; B 68 563 352 681 ;
-C 196 ; WX 440 ; N tilde ; B 68 573 375 659 ;
-C 197 ; WX 440 ; N macron ; B 68 587 364 637 ;
-C 198 ; WX 460 ; N breve ; B 68 563 396 682 ;
-C 199 ; WX 260 ; N dotaccent ; B 68 563 186 681 ;
-C 200 ; WX 420 ; N dieresis ; B 68 563 349 681 ;
-C 202 ; WX 320 ; N ring ; B 68 547 252 732 ;
-C 203 ; WX 320 ; N cedilla ; B 68 -200 257 0 ;
-C 205 ; WX 380 ; N hungarumlaut ; B 68 539 311 700 ;
-C 206 ; WX 320 ; N ogonek ; B 68 -152 245 0 ;
-C 207 ; WX 420 ; N caron ; B 68 562 352 680 ;
-C 208 ; WX 1000 ; N emdash ; B -15 232 1015 289 ;
-C 225 ; WX 1260 ; N AE ; B -36 0 1250 681 ;
-C 227 ; WX 420 ; N ordfeminine ; B 49 288 393 685 ;
-C 232 ; WX 600 ; N Lslash ; B 31 0 629 681 ;
-C 233 ; WX 800 ; N Oslash ; B 44 -53 758 734 ;
-C 234 ; WX 1240 ; N OE ; B 44 -13 1214 694 ;
-C 235 ; WX 420 ; N ordmasculine ; B 56 288 361 685 ;
-C 241 ; WX 860 ; N ae ; B 35 -9 832 494 ;
-C 245 ; WX 300 ; N dotlessi ; B 20 0 288 485 ;
-C 248 ; WX 320 ; N lslash ; B 20 0 291 717 ;
-C 249 ; WX 560 ; N oslash ; B 37 -42 526 543 ;
-C 250 ; WX 900 ; N oe ; B 37 -9 876 494 ;
-C 251 ; WX 660 ; N germandbls ; B -109 -110 614 694 ;
-C -1 ; WX 780 ; N Udieresis ; B 25 -13 754 871 ;
-C -1 ; WX 780 ; N Uacute ; B 25 -13 754 869 ;
-C -1 ; WX 660 ; N Scedilla ; B 28 -200 634 694 ;
-C -1 ; WX 620 ; N Tcaron ; B -37 0 656 869 ;
-C -1 ; WX 660 ; N Scaron ; B 28 -13 634 869 ;
-C -1 ; WX 720 ; N Rcaron ; B 31 0 757 869 ;
-C -1 ; WX 720 ; N Racute ; B 31 0 757 869 ;
-C -1 ; WX 660 ; N Sacute ; B 28 -13 634 869 ;
-C -1 ; WX 800 ; N Otilde ; B 44 -13 758 852 ;
-C -1 ; WX 680 ; N ucircumflex ; B 20 -9 653 681 ;
-C -1 ; WX 800 ; N Ohungarumlaut ; B 44 -13 758 889 ;
-C -1 ; WX 780 ; N Uhungarumlaut ; B 25 -13 754 889 ;
-C -1 ; WX 640 ; N Yacute ; B -30 0 666 869 ;
-C -1 ; WX 800 ; N Eth ; B 31 0 752 681 ;
-C -1 ; WX 800 ; N Dcroat ; B 31 0 752 681 ;
-C -1 ; WX 640 ; N Zacute ; B 10 0 656 869 ;
-C -1 ; WX 780 ; N Uring ; B 25 -13 754 921 ;
-C -1 ; WX 540 ; N gbreve ; B 17 -241 542 682 ;
-C -1 ; WX 520 ; N eogonek ; B 37 -152 491 494 ;
-C -1 ; WX 520 ; N edotaccent ; B 37 -9 491 681 ;
-C -1 ; WX 520 ; N ecaron ; B 37 -9 491 680 ;
-C -1 ; WX 780 ; N Ugrave ; B 25 -13 754 869 ;
-C -1 ; WX 620 ; N Thorn ; B 31 0 613 681 ;
-C -1 ; WX 520 ; N eacute ; B 37 -9 491 680 ;
-C -1 ; WX 520 ; N edieresis ; B 37 -9 491 681 ;
-C -1 ; WX 620 ; N dcaron ; B 37 -9 667 718 ;
-C -1 ; WX 520 ; N ccedilla ; B 37 -200 498 494 ;
-C -1 ; WX 520 ; N ccaron ; B 37 -9 498 680 ;
-C -1 ; WX 520 ; N cacute ; B 37 -9 498 680 ;
-C -1 ; WX 580 ; N aogonek ; B 35 -152 640 494 ;
-C -1 ; WX 580 ; N aring ; B 35 -9 587 732 ;
-C -1 ; WX 580 ; N atilde ; B 35 -9 587 659 ;
-C -1 ; WX 580 ; N abreve ; B 35 -9 587 682 ;
-C -1 ; WX 520 ; N egrave ; B 37 -9 491 680 ;
-C -1 ; WX 580 ; N agrave ; B 35 -9 587 680 ;
-C -1 ; WX 580 ; N aacute ; B 35 -9 587 680 ;
-C -1 ; WX 580 ; N adieresis ; B 35 -9 587 681 ;
-C -1 ; WX 780 ; N Uogonek ; B 25 -152 754 681 ;
-C -1 ; WX 680 ; N ugrave ; B 20 -9 653 680 ;
-C -1 ; WX 680 ; N uacute ; B 20 -9 653 680 ;
-C -1 ; WX 680 ; N udieresis ; B 20 -9 653 681 ;
-C -1 ; WX 380 ; N tcaron ; B 20 -9 388 718 ;
-C -1 ; WX 520 ; N scommaaccent ; B 40 -268 487 494 ;
-C -1 ; WX 640 ; N Zcaron ; B 10 0 656 869 ;
-C -1 ; WX 520 ; N ecircumflex ; B 37 -9 491 681 ;
-C -1 ; WX 780 ; N Ucircumflex ; B 25 -13 754 871 ;
-C -1 ; WX 580 ; N acircumflex ; B 35 -9 587 681 ;
-C -1 ; WX 640 ; N Zdotaccent ; B 10 0 656 870 ;
-C -1 ; WX 520 ; N scaron ; B 40 -9 487 680 ;
-C -1 ; WX 680 ; N Amacron ; B -37 0 714 826 ;
-C -1 ; WX 520 ; N sacute ; B 40 -9 487 680 ;
-C -1 ; WX 620 ; N Tcommaaccent ; B -37 -268 656 681 ;
-C -1 ; WX 640 ; N Ydieresis ; B -30 0 666 871 ;
-C -1 ; WX 620 ; N thorn ; B 20 -228 583 717 ;
-C -1 ; WX 720 ; N Emacron ; B 31 0 705 826 ;
-C -1 ; WX 800 ; N Ograve ; B 44 -13 758 869 ;
-C -1 ; WX 800 ; N Oacute ; B 44 -13 758 869 ;
-C -1 ; WX 800 ; N Odieresis ; B 44 -13 758 871 ;
-C -1 ; WX 740 ; N Ntilde ; B 26 0 722 852 ;
-C -1 ; WX 740 ; N Ncaron ; B 26 0 722 869 ;
-C -1 ; WX 740 ; N Nacute ; B 26 0 722 869 ;
-C -1 ; WX 600 ; N Lcaron ; B 31 0 629 694 ;
-C -1 ; WX 600 ; N Lacute ; B 31 0 629 869 ;
-C -1 ; WX 340 ; N Idotaccent ; B 31 0 301 870 ;
-C -1 ; WX 440 ; N racute ; B 20 0 447 680 ;
-C -1 ; WX 340 ; N Icircumflex ; B 28 0 312 871 ;
-C -1 ; WX 560 ; N ohungarumlaut ; B 37 -9 526 700 ;
-C -1 ; WX 560 ; N otilde ; B 37 -9 526 659 ;
-C -1 ; WX 620 ; N Euro ; B 17 -13 582 694 ;
-C -1 ; WX 560 ; N ocircumflex ; B 37 -9 526 681 ;
-C -1 ; WX 372 ; N onesuperior ; B 80 273 302 681 ;
-C -1 ; WX 372 ; N twosuperior ; B 20 273 367 689 ;
-C -1 ; WX 372 ; N threesuperior ; B 12 265 360 689 ;
-C -1 ; WX 340 ; N Igrave ; B 31 0 301 869 ;
-C -1 ; WX 340 ; N Iacute ; B 31 0 301 869 ;
-C -1 ; WX 340 ; N Imacron ; B 18 0 314 826 ;
-C -1 ; WX 340 ; N Iogonek ; B 31 -152 391 681 ;
-C -1 ; WX 340 ; N Idieresis ; B 28 0 309 871 ;
-C -1 ; WX 800 ; N Gbreve ; B 44 -13 778 871 ;
-C -1 ; WX 780 ; N Umacron ; B 25 -13 754 826 ;
-C -1 ; WX 720 ; N Kcommaaccent ; B 31 -268 750 681 ;
-C -1 ; WX 560 ; N ograve ; B 37 -9 526 680 ;
-C -1 ; WX 660 ; N Scommaaccent ; B 28 -268 634 694 ;
-C -1 ; WX 720 ; N Eogonek ; B 31 -152 705 681 ;
-C -1 ; WX 560 ; N oacute ; B 37 -9 526 680 ;
-C -1 ; WX 720 ; N Edotaccent ; B 31 0 705 870 ;
-C -1 ; WX 300 ; N iogonek ; B 20 -152 378 654 ;
-C -1 ; WX 540 ; N gcommaaccent ; B 17 -241 542 754 ;
-C -1 ; WX 560 ; N odieresis ; B 37 -9 526 681 ;
-C -1 ; WX 660 ; N ntilde ; B 20 0 649 659 ;
-C -1 ; WX 660 ; N ncaron ; B 20 0 649 680 ;
-C -1 ; WX 720 ; N Ecaron ; B 31 0 705 869 ;
-C -1 ; WX 720 ; N Ecircumflex ; B 31 0 705 871 ;
-C -1 ; WX 520 ; N scedilla ; B 40 -200 487 494 ;
-C -1 ; WX 440 ; N rcaron ; B 20 0 447 680 ;
-C -1 ; WX 720 ; N Egrave ; B 31 0 705 869 ;
-C -1 ; WX 720 ; N Eacute ; B 31 0 705 869 ;
-C -1 ; WX 800 ; N Gcommaaccent ; B 44 -268 778 694 ;
-C -1 ; WX 720 ; N Rcommaaccent ; B 31 -268 757 681 ;
-C -1 ; WX 720 ; N Edieresis ; B 31 0 705 871 ;
-C -1 ; WX 660 ; N nacute ; B 20 0 649 680 ;
-C -1 ; WX 680 ; N uogonek ; B 20 -152 743 485 ;
-C -1 ; WX 680 ; N umacron ; B 20 -9 653 637 ;
-C -1 ; WX 800 ; N Dcaron ; B 31 0 752 869 ;
-C -1 ; WX 336 ; N lcaron ; B 20 0 356 718 ;
-C -1 ; WX 740 ; N Ccaron ; B 44 -13 702 869 ;
-C -1 ; WX 740 ; N Cacute ; B 44 -13 702 869 ;
-C -1 ; WX 740 ; N Ccedilla ; B 44 -200 702 694 ;
-C -1 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C -1 ; WX 680 ; N Aogonek ; B -37 -152 804 681 ;
-C -1 ; WX 600 ; N minus ; B 51 314 555 392 ;
-C -1 ; WX 600 ; N multiply ; B 51 100 555 604 ;
-C -1 ; WX 600 ; N divide ; B 51 91 555 615 ;
-C -1 ; WX 680 ; N Aring ; B -37 0 714 922 ;
-C -1 ; WX 980 ; N trademark ; B 34 273 930 681 ;
-C -1 ; WX 440 ; N rcommaaccent ; B 20 -268 447 494 ;
-C -1 ; WX 300 ; N lacute ; B 20 0 286 869 ;
-C -1 ; WX 560 ; N omacron ; B 37 -9 526 637 ;
-C -1 ; WX 680 ; N Atilde ; B -37 0 714 852 ;
-C -1 ; WX 300 ; N icircumflex ; B 8 0 292 681 ;
-C -1 ; WX 300 ; N igrave ; B 20 0 288 680 ;
-C -1 ; WX 660 ; N ncommaaccent ; B 20 -268 649 494 ;
-C -1 ; WX 300 ; N lcommaaccent ; B 20 -268 286 717 ;
-C -1 ; WX 600 ; N plusminus ; B 51 0 555 595 ;
-C -1 ; WX 930 ; N onehalf ; B 80 0 885 681 ;
-C -1 ; WX 930 ; N onequarter ; B 80 0 869 681 ;
-C -1 ; WX 930 ; N threequarters ; B 52 0 889 689 ;
-C -1 ; WX 300 ; N iacute ; B 20 0 288 680 ;
-C -1 ; WX 680 ; N Abreve ; B -37 0 714 871 ;
-C -1 ; WX 620 ; N kcommaaccent ; B 20 -268 628 717 ;
-C -1 ; WX 800 ; N Omacron ; B 44 -13 758 826 ;
-C -1 ; WX 300 ; N imacron ; B -2 0 294 637 ;
-C -1 ; WX 520 ; N emacron ; B 37 -9 491 637 ;
-C -1 ; WX 580 ; N amacron ; B 35 -9 587 637 ;
-C -1 ; WX 380 ; N tcommaaccent ; B 20 -268 388 667 ;
-C -1 ; WX 540 ; N ydieresis ; B -23 -241 549 681 ;
-C -1 ; WX 480 ; N zdotaccent ; B 7 0 476 681 ;
-C -1 ; WX 480 ; N zcaron ; B 7 0 476 680 ;
-C -1 ; WX 480 ; N zacute ; B 7 0 476 680 ;
-C -1 ; WX 540 ; N yacute ; B -23 -241 549 680 ;
-C -1 ; WX 680 ; N uhungarumlaut ; B 20 -9 653 700 ;
-C -1 ; WX 560 ; N eth ; B 37 -9 526 759 ;
-C -1 ; WX 680 ; N uring ; B 20 -9 653 732 ;
-C -1 ; WX 800 ; N Ocircumflex ; B 44 -13 758 871 ;
-C -1 ; WX 268 ; N commaaccent ; B 68 -268 200 -50 ;
-C -1 ; WX 740 ; N copyright ; B 24 0 724 700 ;
-C -1 ; WX 740 ; N registered ; B 23 0 723 700 ;
-C -1 ; WX 680 ; N Acircumflex ; B -37 0 714 871 ;
-C -1 ; WX 300 ; N idieresis ; B 8 0 289 681 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 600 ; N notequal ; B 51 101 555 610 ;
-C -1 ; WX 549 ; N radical ; B -9 -83 532 930 ;
-C -1 ; WX 680 ; N Agrave ; B -37 0 714 869 ;
-C -1 ; WX 680 ; N Aacute ; B -37 0 714 869 ;
-C -1 ; WX 600 ; N lessequal ; B 45 0 549 649 ;
-C -1 ; WX 600 ; N greaterequal ; B 51 0 555 649 ;
-C -1 ; WX 600 ; N logicalnot ; B 51 80 555 370 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 26 -268 722 681 ;
-C -1 ; WX 620 ; N dcroat ; B 37 -9 591 717 ;
-C -1 ; WX 600 ; N brokenbar ; B 264 0 342 722 ;
-C -1 ; WX 600 ; N Lcommaaccent ; B 31 -268 629 681 ;
-C -1 ; WX 680 ; N Adieresis ; B -37 0 714 871 ;
-C -1 ; WX 680 ; N mu ; B 20 -219 653 485 ;
-C -1 ; WX 320 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -34
-KPX A Ccedilla -33
-KPX A G -34
-KPX A O -35
-KPX A Odieresis -35
-KPX A Q -36
-KPX A T -18
-KPX A U -34
-KPX A Uacute -34
-KPX A Ucircumflex -34
-KPX A Udieresis -34
-KPX A Ugrave -34
-KPX A V -71
-KPX A W -58
-KPX A Y -14
-KPX A a 21
-KPX A b 13
-KPX A c -9
-KPX A ccedilla -9
-KPX A comma 17
-KPX A d -5
-KPX A e -13
-KPX A g 24
-KPX A guillemotleft -24
-KPX A guilsinglleft -24
-KPX A hyphen -2
-KPX A o -8
-KPX A period 15
-KPX A q -9
-KPX A quotedblright -61
-KPX A quoteright -61
-KPX A t -7
-KPX A u -15
-KPX A v -36
-KPX A w -34
-KPX A y -40
-KPX Aacute C -34
-KPX Aacute G -34
-KPX Aacute O -35
-KPX Aacute Q -36
-KPX Aacute T -18
-KPX Aacute U -34
-KPX Aacute V -71
-KPX Aacute W -58
-KPX Aacute Y -14
-KPX Aacute a 21
-KPX Aacute b 13
-KPX Aacute c -9
-KPX Aacute comma 17
-KPX Aacute d -5
-KPX Aacute e -13
-KPX Aacute g 24
-KPX Aacute guillemotleft -24
-KPX Aacute guilsinglleft -24
-KPX Aacute hyphen -2
-KPX Aacute o -8
-KPX Aacute period 15
-KPX Aacute q -9
-KPX Aacute quoteright -61
-KPX Aacute t -7
-KPX Aacute u -15
-KPX Aacute v -36
-KPX Aacute w -34
-KPX Aacute y -40
-KPX Acircumflex C -34
-KPX Acircumflex G -34
-KPX Acircumflex O -35
-KPX Acircumflex Q -36
-KPX Acircumflex T -18
-KPX Acircumflex U -34
-KPX Acircumflex V -71
-KPX Acircumflex W -58
-KPX Acircumflex Y -14
-KPX Acircumflex comma 17
-KPX Acircumflex period 15
-KPX Adieresis C -34
-KPX Adieresis G -34
-KPX Adieresis O -35
-KPX Adieresis Q -36
-KPX Adieresis T -18
-KPX Adieresis U -34
-KPX Adieresis V -71
-KPX Adieresis W -58
-KPX Adieresis Y -14
-KPX Adieresis a 21
-KPX Adieresis b 13
-KPX Adieresis c -9
-KPX Adieresis comma 17
-KPX Adieresis d -5
-KPX Adieresis g 24
-KPX Adieresis guillemotleft -24
-KPX Adieresis guilsinglleft -24
-KPX Adieresis hyphen -2
-KPX Adieresis o -8
-KPX Adieresis period 15
-KPX Adieresis q -9
-KPX Adieresis quotedblright -61
-KPX Adieresis quoteright -61
-KPX Adieresis t -7
-KPX Adieresis u -15
-KPX Adieresis v -36
-KPX Adieresis w -34
-KPX Adieresis y -40
-KPX Agrave C -34
-KPX Agrave G -34
-KPX Agrave O -35
-KPX Agrave Q -36
-KPX Agrave T -18
-KPX Agrave U -34
-KPX Agrave V -71
-KPX Agrave W -58
-KPX Agrave Y -14
-KPX Agrave comma 17
-KPX Agrave period 15
-KPX Aring C -34
-KPX Aring G -34
-KPX Aring O -35
-KPX Aring Q -36
-KPX Aring T -18
-KPX Aring U -34
-KPX Aring V -71
-KPX Aring W -58
-KPX Aring Y -14
-KPX Aring a 21
-KPX Aring b 13
-KPX Aring c -9
-KPX Aring comma 17
-KPX Aring d -5
-KPX Aring e -13
-KPX Aring g 24
-KPX Aring guillemotleft -24
-KPX Aring guilsinglleft -24
-KPX Aring hyphen -2
-KPX Aring o -8
-KPX Aring period 15
-KPX Aring q -9
-KPX Aring quotedblright -61
-KPX Aring quoteright -61
-KPX Aring t -7
-KPX Aring u -15
-KPX Aring v -36
-KPX Aring w -34
-KPX Aring y -40
-KPX Atilde C -34
-KPX Atilde G -34
-KPX Atilde O -35
-KPX Atilde Q -36
-KPX Atilde T -18
-KPX Atilde U -34
-KPX Atilde V -71
-KPX Atilde W -58
-KPX Atilde Y -14
-KPX Atilde comma 17
-KPX Atilde period 15
-KPX B A 0
-KPX B AE 0
-KPX B Aacute 0
-KPX B Acircumflex 0
-KPX B Adieresis 0
-KPX B Aring 0
-KPX B Atilde 0
-KPX B O -1
-KPX B OE -1
-KPX B Oacute -1
-KPX B Ocircumflex -1
-KPX B Odieresis -1
-KPX B Ograve -1
-KPX B Oslash 0
-KPX B V -12
-KPX B W -12
-KPX B Y -12
-KPX C A -10
-KPX C AE -10
-KPX C Aacute -10
-KPX C Adieresis -10
-KPX C Aring -10
-KPX C H -14
-KPX C K -14
-KPX C O -10
-KPX C Oacute -10
-KPX C Odieresis -10
-KPX Ccedilla A -7
-KPX D A -35
-KPX D Aacute -35
-KPX D Acircumflex -35
-KPX D Adieresis -35
-KPX D Agrave -35
-KPX D Aring -35
-KPX D Atilde -35
-KPX D J 20
-KPX D T 16
-KPX D V -40
-KPX D W -32
-KPX D X -38
-KPX D Y -40
-KPX F A -61
-KPX F Aacute -61
-KPX F Acircumflex -61
-KPX F Adieresis -61
-KPX F Agrave -61
-KPX F Aring -61
-KPX F Atilde -61
-KPX F J -39
-KPX F O 7
-KPX F Odieresis 7
-KPX F a -28
-KPX F aacute -28
-KPX F adieresis -28
-KPX F ae -30
-KPX F aring -28
-KPX F comma -101
-KPX F e -38
-KPX F eacute -38
-KPX F hyphen -33
-KPX F i 17
-KPX F j 23
-KPX F o -38
-KPX F oacute -38
-KPX F odieresis -38
-KPX F oe -40
-KPX F oslash -39
-KPX F period -102
-KPX F r 18
-KPX F u 18
-KPX G A 8
-KPX G AE 8
-KPX G Aacute 8
-KPX G Acircumflex 8
-KPX G Adieresis 8
-KPX G Agrave 8
-KPX G Aring 8
-KPX G Atilde 8
-KPX G T -2
-KPX G V -24
-KPX G W -24
-KPX G Y -24
-KPX J A -36
-KPX J AE -37
-KPX J Adieresis -36
-KPX J Aring -36
-KPX K C -37
-KPX K G -37
-KPX K O -39
-KPX K OE -38
-KPX K Oacute -39
-KPX K Odieresis -39
-KPX K S 16
-KPX K T 30
-KPX K a 19
-KPX K adieresis 19
-KPX K ae 20
-KPX K aring 19
-KPX K e -15
-KPX K hyphen -32
-KPX K o -10
-KPX K oacute -10
-KPX K odieresis -10
-KPX K u -17
-KPX K udieresis -17
-KPX K y -53
-KPX L A 42
-KPX L AE 41
-KPX L Aacute 42
-KPX L Adieresis 42
-KPX L Aring 42
-KPX L C 26
-KPX L Ccedilla 27
-KPX L G 26
-KPX L O 25
-KPX L Oacute 25
-KPX L Ocircumflex 25
-KPX L Odieresis 25
-KPX L Ograve 25
-KPX L Otilde 25
-KPX L S 42
-KPX L T -54
-KPX L U 0
-KPX L Udieresis 0
-KPX L V -52
-KPX L W -36
-KPX L Y -50
-KPX L hyphen 56
-KPX L quotedblright -69
-KPX L quoteright -69
-KPX L u -1
-KPX L udieresis -1
-KPX L y -11
-KPX N A 7
-KPX N AE 6
-KPX N Aacute 7
-KPX N Adieresis 7
-KPX N Aring 7
-KPX N C -12
-KPX N Ccedilla -11
-KPX N G -11
-KPX N O -12
-KPX N Oacute -12
-KPX N Odieresis -12
-KPX N a -17
-KPX N aacute -17
-KPX N adieresis -17
-KPX N ae -16
-KPX N aring -17
-KPX N comma -16
-KPX N e -15
-KPX N eacute -15
-KPX N o -14
-KPX N oacute -14
-KPX N odieresis -14
-KPX N oslash -13
-KPX N period -17
-KPX N u -24
-KPX N udieresis -24
-KPX O A -35
-KPX O AE -35
-KPX O Aacute -35
-KPX O Adieresis -35
-KPX O Aring -35
-KPX O T 19
-KPX O V -36
-KPX O W -29
-KPX O X -38
-KPX O Y -36
-KPX Oacute A -35
-KPX Oacute T 19
-KPX Oacute V -36
-KPX Oacute W -29
-KPX Oacute Y -36
-KPX Ocircumflex T 19
-KPX Ocircumflex V -36
-KPX Ocircumflex Y -36
-KPX Odieresis A -35
-KPX Odieresis T 19
-KPX Odieresis V -36
-KPX Odieresis W -29
-KPX Odieresis X -38
-KPX Odieresis Y -36
-KPX Ograve T 19
-KPX Ograve V -36
-KPX Ograve Y -36
-KPX Oslash A -34
-KPX Otilde T 19
-KPX Otilde V -36
-KPX Otilde Y -36
-KPX P A -51
-KPX P AE -87
-KPX P Aacute -51
-KPX P Adieresis -51
-KPX P Aring -51
-KPX P J -24
-KPX P a -3
-KPX P aacute -3
-KPX P adieresis -3
-KPX P ae -5
-KPX P aring -3
-KPX P comma -94
-KPX P e -10
-KPX P eacute -10
-KPX P hyphen -9
-KPX P o -10
-KPX P oacute -10
-KPX P odieresis -10
-KPX P oe -12
-KPX P oslash -10
-KPX P period -95
-KPX R C -8
-KPX R Ccedilla -7
-KPX R G -7
-KPX R O -9
-KPX R OE -8
-KPX R Oacute -9
-KPX R Odieresis -9
-KPX R T 34
-KPX R U -16
-KPX R Udieresis -16
-KPX R V 0
-KPX R W 0
-KPX R Y 0
-KPX R a 23
-KPX R aacute 23
-KPX R adieresis 23
-KPX R ae 24
-KPX R aring 23
-KPX R e -12
-KPX R eacute -12
-KPX R hyphen -23
-KPX R o -7
-KPX R oacute -7
-KPX R odieresis -7
-KPX R oe -7
-KPX R u 2
-KPX R uacute 2
-KPX R udieresis 2
-KPX R y 24
-KPX S A 3
-KPX S AE 2
-KPX S Aacute 3
-KPX S Adieresis 3
-KPX S Aring 3
-KPX S T 22
-KPX S V -3
-KPX S W -3
-KPX S Y -3
-KPX S t -11
-KPX T A -16
-KPX T AE -16
-KPX T Aacute -16
-KPX T Acircumflex -16
-KPX T Adieresis -16
-KPX T Agrave -16
-KPX T Aring -16
-KPX T Atilde -16
-KPX T C 18
-KPX T G 19
-KPX T J -50
-KPX T O 17
-KPX T OE 18
-KPX T Oacute 17
-KPX T Ocircumflex 17
-KPX T Odieresis 17
-KPX T Ograve 17
-KPX T Oslash 17
-KPX T Otilde 17
-KPX T S 30
-KPX T V 54
-KPX T W 54
-KPX T Y 54
-KPX T a -72
-KPX T ae -71
-KPX T c -86
-KPX T colon -82
-KPX T comma -80
-KPX T e -87
-KPX T g -43
-KPX T guillemotleft -91
-KPX T guilsinglleft -91
-KPX T hyphen -69
-KPX T i 0
-KPX T j 0
-KPX T o -86
-KPX T oslash -58
-KPX T period -81
-KPX T r -49
-KPX T s -72
-KPX T semicolon -80
-KPX T u -100
-KPX T v -78
-KPX T w -80
-KPX T y -78
-KPX U A -31
-KPX U AE -32
-KPX U Aacute -31
-KPX U Acircumflex -31
-KPX U Adieresis -31
-KPX U Aring -31
-KPX U Atilde -31
-KPX U comma -35
-KPX U m -27
-KPX U n -28
-KPX U p -28
-KPX U period -36
-KPX U r -28
-KPX Uacute A -31
-KPX Uacute comma -35
-KPX Uacute m -27
-KPX Uacute n -28
-KPX Uacute p -28
-KPX Uacute period -36
-KPX Uacute r -28
-KPX Ucircumflex A -31
-KPX Udieresis A -31
-KPX Udieresis b 27
-KPX Udieresis comma -35
-KPX Udieresis m -27
-KPX Udieresis n -28
-KPX Udieresis p -28
-KPX Udieresis period -36
-KPX Udieresis r -28
-KPX Ugrave A -31
-KPX V A -80
-KPX V AE -95
-KPX V Aacute -80
-KPX V Acircumflex -80
-KPX V Adieresis -80
-KPX V Agrave -80
-KPX V Aring -80
-KPX V Atilde -80
-KPX V C -42
-KPX V G -39
-KPX V O -43
-KPX V Oacute -43
-KPX V Ocircumflex -43
-KPX V Odieresis -43
-KPX V Ograve -43
-KPX V Oslash -42
-KPX V Otilde -43
-KPX V S -7
-KPX V T 51
-KPX V a -70
-KPX V ae -73
-KPX V colon -72
-KPX V comma -102
-KPX V e -73
-KPX V g -76
-KPX V guillemotleft -70
-KPX V guilsinglleft -70
-KPX V hyphen -49
-KPX V i -18
-KPX V o -72
-KPX V oslash -71
-KPX V period -103
-KPX V r -36
-KPX V semicolon -72
-KPX V u -36
-KPX V y -12
-KPX W A -68
-KPX W AE -74
-KPX W Aacute -68
-KPX W Acircumflex -68
-KPX W Adieresis -68
-KPX W Agrave -68
-KPX W Aring -68
-KPX W Atilde -68
-KPX W C -37
-KPX W G -37
-KPX W O -38
-KPX W Oacute -38
-KPX W Ocircumflex -38
-KPX W Odieresis -38
-KPX W Ograve -38
-KPX W Oslash -35
-KPX W Otilde -38
-KPX W S -7
-KPX W T 50
-KPX W a -60
-KPX W ae -61
-KPX W colon -63
-KPX W comma -84
-KPX W e -59
-KPX W g -61
-KPX W guillemotleft -56
-KPX W guilsinglleft -55
-KPX W hyphen -35
-KPX W i -22
-KPX W o -57
-KPX W oslash -56
-KPX W period -85
-KPX W r -27
-KPX W semicolon -63
-KPX W u -27
-KPX W y -4
-KPX X C -35
-KPX X O -37
-KPX X Odieresis -37
-KPX X Q -38
-KPX X a 22
-KPX X e -13
-KPX X hyphen -47
-KPX X o -8
-KPX X u -15
-KPX X y -50
-KPX Y A -28
-KPX Y AE -28
-KPX Y Aacute -28
-KPX Y Acircumflex -28
-KPX Y Adieresis -28
-KPX Y Agrave -28
-KPX Y Aring -28
-KPX Y Atilde -28
-KPX Y C -41
-KPX Y G -38
-KPX Y O -42
-KPX Y Oacute -42
-KPX Y Ocircumflex -42
-KPX Y Odieresis -42
-KPX Y Ograve -42
-KPX Y Oslash -42
-KPX Y Otilde -42
-KPX Y S -6
-KPX Y T 51
-KPX Y a -84
-KPX Y ae -83
-KPX Y colon -86
-KPX Y comma -92
-KPX Y e -86
-KPX Y g -82
-KPX Y guillemotleft -93
-KPX Y guilsinglleft -93
-KPX Y hyphen -79
-KPX Y i -11
-KPX Y o -85
-KPX Y oslash -84
-KPX Y p -51
-KPX Y period -94
-KPX Y semicolon -86
-KPX Y u -51
-KPX Y v -26
-KPX Z v -12
-KPX Z y -16
-KPX a j -15
-KPX a quoteright -38
-KPX a v -29
-KPX a w -31
-KPX a y -37
-KPX aacute v -29
-KPX aacute w -31
-KPX aacute y -37
-KPX adieresis v -29
-KPX adieresis w -31
-KPX adieresis y -37
-KPX ae v -6
-KPX ae w -8
-KPX ae y -13
-KPX agrave v -29
-KPX agrave w -31
-KPX agrave y -37
-KPX aring v -29
-KPX aring w -31
-KPX aring y -37
-KPX b v -18
-KPX b w -20
-KPX b y -24
-KPX c h -17
-KPX c k -17
-KPX comma one -85
-KPX comma quotedblright -52
-KPX comma quoteright -52
-KPX e quoteright -6
-KPX e t -25
-KPX e v -6
-KPX e w -8
-KPX e x -6
-KPX e y -12
-KPX eacute v -6
-KPX eacute w -8
-KPX eacute y -12
-KPX ecircumflex v -6
-KPX ecircumflex w -8
-KPX ecircumflex y -12
-KPX eight four 10
-KPX eight one -84
-KPX eight seven -20
-KPX f a -14
-KPX f aacute -14
-KPX f adieresis 11
-KPX f ae -13
-KPX f aring -6
-KPX f e -24
-KPX f eacute -24
-KPX f f 14
-KPX f i 17
-KPX f j 22
-KPX f l 72
-KPX f o -23
-KPX f oacute -23
-KPX f odieresis 5
-KPX f oe -24
-KPX f oslash -22
-KPX f quoteright 60
-KPX f s -14
-KPX f t 15
-KPX five four 11
-KPX five one -92
-KPX five seven -47
-KPX four four 19
-KPX four one -74
-KPX four seven -54
-KPX g a -22
-KPX g adieresis -22
-KPX g ae -21
-KPX g aring -22
-KPX g e -15
-KPX g eacute -15
-KPX g l 11
-KPX g oacute -16
-KPX g odieresis -16
-KPX g r 9
-KPX guillemotright A -26
-KPX guillemotright AE -93
-KPX guillemotright Aacute -26
-KPX guillemotright Adieresis -26
-KPX guillemotright Aring -26
-KPX guillemotright T -90
-KPX guillemotright V -61
-KPX guillemotright W -46
-KPX guillemotright Y -76
-KPX guilsinglright A -27
-KPX guilsinglright AE -94
-KPX guilsinglright Aacute -27
-KPX guilsinglright Adieresis -27
-KPX guilsinglright Aring -27
-KPX guilsinglright T -91
-KPX guilsinglright V -63
-KPX guilsinglright W -47
-KPX guilsinglright Y -78
-KPX h quoteright -31
-KPX h y -23
-KPX hyphen A -6
-KPX hyphen AE -75
-KPX hyphen Aacute -6
-KPX hyphen Adieresis -6
-KPX hyphen Aring -6
-KPX hyphen T -70
-KPX hyphen V -43
-KPX hyphen W -27
-KPX hyphen Y -64
-KPX i T 5
-KPX i j -22
-KPX k a 5
-KPX k aacute 5
-KPX k adieresis 5
-KPX k ae 6
-KPX k aring 5
-KPX k comma -2
-KPX k e -28
-KPX k eacute -28
-KPX k g 7
-KPX k hyphen -64
-KPX k o -24
-KPX k oacute -24
-KPX k odieresis -24
-KPX k period -4
-KPX k s 5
-KPX k u 12
-KPX k udieresis 12
-KPX l v -2
-KPX l y -2
-KPX m p -24
-KPX m v -15
-KPX m w -17
-KPX m y -19
-KPX n T -44
-KPX n p -23
-KPX n quoteright -29
-KPX n v -16
-KPX n w -18
-KPX n y -22
-KPX nine four 2
-KPX nine one -86
-KPX nine seven -18
-KPX o T -85
-KPX o quoteright -16
-KPX o t -22
-KPX o v -16
-KPX o w -18
-KPX o x -20
-KPX o y -23
-KPX oacute v -16
-KPX oacute w -18
-KPX oacute y -23
-KPX ocircumflex t -22
-KPX odieresis t -22
-KPX odieresis v -16
-KPX odieresis w -18
-KPX odieresis x -20
-KPX odieresis y -23
-KPX ograve v -16
-KPX ograve w -18
-KPX ograve y -23
-KPX one comma -62
-KPX one eight -74
-KPX one five -75
-KPX one four -91
-KPX one nine -70
-KPX one one -96
-KPX one period -64
-KPX one seven -105
-KPX one six -71
-KPX one three -69
-KPX one two -37
-KPX one zero -70
-KPX p t -23
-KPX p y -21
-KPX period one -88
-KPX period quotedblright -51
-KPX period quoteright -51
-KPX q c -11
-KPX q u -13
-KPX quotedblbase A 36
-KPX quotedblbase AE 34
-KPX quotedblbase T -61
-KPX quotedblbase V -78
-KPX quotedblbase W -58
-KPX quotedblbase Y -57
-KPX quotedblleft A -65
-KPX quotedblleft AE -201
-KPX quotedblleft Aacute -65
-KPX quotedblleft Adieresis -65
-KPX quotedblleft Aring -65
-KPX quotedblleft T 36
-KPX quotedblleft V 23
-KPX quotedblleft W 29
-KPX quotedblleft Y 22
-KPX quotedblright A -66
-KPX quotedblright AE -206
-KPX quotedblright Aacute -66
-KPX quotedblright Adieresis -66
-KPX quotedblright Aring -66
-KPX quotedblright T 36
-KPX quotedblright V 29
-KPX quotedblright W 30
-KPX quotedblright Y 29
-KPX quoteleft A -60
-KPX quoteleft AE -196
-KPX quoteleft Aacute -60
-KPX quoteleft Adieresis -60
-KPX quoteleft Aring -60
-KPX quoteleft T 41
-KPX quoteleft V 28
-KPX quoteleft W 34
-KPX quoteleft Y 27
-KPX quoteright A -61
-KPX quoteright AE -201
-KPX quoteright Aacute -61
-KPX quoteright Adieresis -61
-KPX quoteright Aring -61
-KPX quoteright comma -43
-KPX quoteright d -14
-KPX quoteright o -13
-KPX quoteright period -43
-KPX quoteright r -3
-KPX quoteright s -8
-KPX quoteright t -1
-KPX quoteright v 19
-KPX quoteright w 17
-KPX quoteright y 19
-KPX r a 2
-KPX r aacute 2
-KPX r acircumflex 2
-KPX r adieresis 2
-KPX r ae 0
-KPX r agrave 2
-KPX r aring 2
-KPX r c -6
-KPX r ccedilla -6
-KPX r colon -3
-KPX r comma -80
-KPX r d -6
-KPX r e -6
-KPX r eacute -6
-KPX r ecircumflex -6
-KPX r egrave -6
-KPX r f 26
-KPX r g -6
-KPX r h -14
-KPX r hyphen -76
-KPX r i 28
-KPX r j 29
-KPX r k -14
-KPX r l -14
-KPX r m 30
-KPX r n 28
-KPX r o -6
-KPX r oacute -6
-KPX r ocircumflex -6
-KPX r odieresis -6
-KPX r oe -7
-KPX r ograve -6
-KPX r oslash -6
-KPX r p 28
-KPX r period -82
-KPX r q -8
-KPX r quoteright 4
-KPX r r 28
-KPX r s 2
-KPX r semicolon -3
-KPX r t 28
-KPX r u 28
-KPX r v 49
-KPX r w 47
-KPX r x 32
-KPX r y 48
-KPX r z 11
-KPX s quoteright -19
-KPX s t -22
-KPX seven colon -77
-KPX seven comma -110
-KPX seven eight -31
-KPX seven five -24
-KPX seven four -90
-KPX seven one -55
-KPX seven period -111
-KPX seven seven -14
-KPX seven six -45
-KPX seven three -28
-KPX seven two -18
-KPX six four 14
-KPX six one -77
-KPX six seven -20
-KPX t S 4
-KPX t a 15
-KPX t aacute 15
-KPX t adieresis 15
-KPX t ae 15
-KPX t aring 15
-KPX t colon -4
-KPX t e -12
-KPX t eacute -12
-KPX t h 18
-KPX t o -8
-KPX t oacute -8
-KPX t odieresis -8
-KPX t quoteright -14
-KPX t semicolon -3
-KPX three four 6
-KPX three one -90
-KPX three seven -26
-KPX two four 2
-KPX two one -78
-KPX two seven -30
-KPX u quoteright -30
-KPX v a -10
-KPX v aacute -10
-KPX v acircumflex -10
-KPX v adieresis -10
-KPX v ae -12
-KPX v agrave -10
-KPX v aring -10
-KPX v atilde -10
-KPX v c -21
-KPX v colon -1
-KPX v comma -82
-KPX v e -22
-KPX v eacute -22
-KPX v ecircumflex -22
-KPX v egrave -22
-KPX v g -18
-KPX v hyphen -24
-KPX v l -10
-KPX v o -21
-KPX v oacute -21
-KPX v odieresis -21
-KPX v ograve -21
-KPX v oslash -22
-KPX v period -82
-KPX v s -9
-KPX v semicolon -1
-KPX w a -5
-KPX w aacute -5
-KPX w acircumflex -5
-KPX w adieresis -5
-KPX w ae -8
-KPX w agrave -5
-KPX w aring -5
-KPX w atilde -5
-KPX w c -17
-KPX w colon 3
-KPX w comma -72
-KPX w e -17
-KPX w eacute -17
-KPX w ecircumflex -17
-KPX w egrave -17
-KPX w g -14
-KPX w hyphen -17
-KPX w l -5
-KPX w o -16
-KPX w oacute -16
-KPX w odieresis -16
-KPX w ograve -16
-KPX w oslash -17
-KPX w period -72
-KPX w s -4
-KPX w semicolon 3
-KPX x a 8
-KPX x c -22
-KPX x e -26
-KPX x eacute -26
-KPX x o -21
-KPX x q -22
-KPX y a -20
-KPX y aacute -20
-KPX y acircumflex -20
-KPX y adieresis -20
-KPX y ae -22
-KPX y agrave -20
-KPX y aring -20
-KPX y atilde -20
-KPX y c -30
-KPX y colon -5
-KPX y comma -88
-KPX y e -31
-KPX y eacute -31
-KPX y ecircumflex -31
-KPX y egrave -31
-KPX y g -27
-KPX y hyphen -29
-KPX y l -13
-KPX y o -29
-KPX y oacute -29
-KPX y odieresis -29
-KPX y ograve -29
-KPX y oslash -31
-KPX y period -88
-KPX y s -17
-KPX y semicolon -5
-KPX zero four 8
-KPX zero one -82
-KPX zero seven -18
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/b018012l.pfb b/Master/xemtex/gsfonts/b018012l.pfb
deleted file mode 100644
index 47219db0b10..00000000000
--- a/Master/xemtex/gsfonts/b018012l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018012l.pfm b/Master/xemtex/gsfonts/b018012l.pfm
deleted file mode 100644
index 55ef814b600..00000000000
--- a/Master/xemtex/gsfonts/b018012l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018015l.afm b/Master/xemtex/gsfonts/b018015l.afm
deleted file mode 100644
index 4f02cad8149..00000000000
--- a/Master/xemtex/gsfonts/b018015l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWBookmanL-DemiBold
-FullName URW Bookman L Demi Bold
-FamilyName URW Bookman L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -125
-UnderlineThickness 60
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -194 -306 1346 927
-CapHeight 681
-XHeight 502
-Descender -213
-Ascender 724
-StartCharMetrics 316
-C 32 ; WX 340 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 360 ; N exclam ; B 82 -13 282 694 ;
-C 34 ; WX 420 ; N quotedbl ; B 11 383 369 694 ;
-C 35 ; WX 660 ; N numbersign ; B 84 0 576 681 ;
-C 36 ; WX 660 ; N dollar ; B 48 -120 620 805 ;
-C 37 ; WX 940 ; N percent ; B 12 -8 924 689 ;
-C 38 ; WX 800 ; N ampersand ; B 21 -13 772 694 ;
-C 39 ; WX 320 ; N quoteright ; B 82 438 242 694 ;
-C 40 ; WX 320 ; N parenleft ; B 48 -155 289 737 ;
-C 41 ; WX 320 ; N parenright ; B 20 -155 262 737 ;
-C 42 ; WX 460 ; N asterisk ; B 62 317 405 694 ;
-C 43 ; WX 600 ; N plus ; B 51 108 555 597 ;
-C 44 ; WX 340 ; N comma ; B 78 -120 257 167 ;
-C 45 ; WX 360 ; N hyphen ; B 20 210 340 318 ;
-C 46 ; WX 340 ; N period ; B 76 -13 257 168 ;
-C 47 ; WX 600 ; N slash ; B 50 -138 555 720 ;
-C 48 ; WX 660 ; N zero ; B 30 -13 639 694 ;
-C 49 ; WX 660 ; N one ; B 137 0 568 681 ;
-C 50 ; WX 660 ; N two ; B 41 0 628 694 ;
-C 51 ; WX 660 ; N three ; B 37 -13 631 694 ;
-C 52 ; WX 660 ; N four ; B 19 0 649 681 ;
-C 53 ; WX 660 ; N five ; B 44 -13 623 724 ;
-C 54 ; WX 660 ; N six ; B 34 -13 634 694 ;
-C 55 ; WX 660 ; N seven ; B 36 0 632 681 ;
-C 56 ; WX 660 ; N eight ; B 36 -13 633 694 ;
-C 57 ; WX 660 ; N nine ; B 33 -13 636 694 ;
-C 58 ; WX 340 ; N colon ; B 76 -13 257 516 ;
-C 59 ; WX 340 ; N semicolon ; B 75 -120 259 516 ;
-C 60 ; WX 600 ; N less ; B 49 56 558 643 ;
-C 61 ; WX 600 ; N equal ; B 51 199 555 506 ;
-C 62 ; WX 600 ; N greater ; B 48 56 557 643 ;
-C 63 ; WX 660 ; N question ; B 61 -13 608 694 ;
-C 64 ; WX 820 ; N at ; B 60 -13 758 700 ;
-C 65 ; WX 720 ; N A ; B -34 0 763 681 ;
-C 66 ; WX 720 ; N B ; B 20 0 693 681 ;
-C 67 ; WX 740 ; N C ; B 35 -13 724 694 ;
-C 68 ; WX 780 ; N D ; B 20 0 748 681 ;
-C 69 ; WX 720 ; N E ; B 20 0 724 681 ;
-C 70 ; WX 680 ; N F ; B 20 0 686 681 ;
-C 71 ; WX 780 ; N G ; B 35 -13 773 694 ;
-C 72 ; WX 820 ; N H ; B 20 0 800 681 ;
-C 73 ; WX 400 ; N I ; B 20 0 379 681 ;
-C 74 ; WX 640 ; N J ; B -12 -13 622 681 ;
-C 75 ; WX 800 ; N K ; B 20 0 796 681 ;
-C 76 ; WX 640 ; N L ; B 20 0 668 681 ;
-C 77 ; WX 940 ; N M ; B 20 0 924 681 ;
-C 78 ; WX 740 ; N N ; B 20 0 724 681 ;
-C 79 ; WX 800 ; N O ; B 35 -13 769 694 ;
-C 80 ; WX 660 ; N P ; B 20 0 658 681 ;
-C 81 ; WX 800 ; N Q ; B 35 -226 775 694 ;
-C 82 ; WX 780 ; N R ; B 20 0 783 681 ;
-C 83 ; WX 660 ; N S ; B 21 -13 639 694 ;
-C 84 ; WX 700 ; N T ; B -4 0 703 681 ;
-C 85 ; WX 740 ; N U ; B 15 -13 724 681 ;
-C 86 ; WX 720 ; N V ; B -20 0 730 681 ;
-C 87 ; WX 940 ; N W ; B -20 0 963 681 ;
-C 88 ; WX 780 ; N X ; B 1 0 770 681 ;
-C 89 ; WX 700 ; N Y ; B -20 0 718 681 ;
-C 90 ; WX 640 ; N Z ; B 6 0 635 681 ;
-C 91 ; WX 300 ; N bracketleft ; B 75 -138 285 720 ;
-C 92 ; WX 600 ; N backslash ; B 50 0 555 725 ;
-C 93 ; WX 300 ; N bracketright ; B 21 -138 231 720 ;
-C 94 ; WX 600 ; N asciicircum ; B 52 318 554 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -155 500 -95 ;
-C 96 ; WX 320 ; N quoteleft ; B 82 438 242 694 ;
-C 97 ; WX 580 ; N a ; B 28 -9 588 511 ;
-C 98 ; WX 600 ; N b ; B -20 -9 568 724 ;
-C 99 ; WX 580 ; N c ; B 31 -9 550 511 ;
-C 100 ; WX 640 ; N d ; B 31 -9 622 724 ;
-C 101 ; WX 580 ; N e ; B 31 -9 548 511 ;
-C 102 ; WX 380 ; N f ; B 22 0 461 736 ;
-C 103 ; WX 580 ; N g ; B 9 -248 583 593 ;
-C 104 ; WX 680 ; N h ; B 22 0 654 724 ;
-C 105 ; WX 360 ; N i ; B 22 0 335 730 ;
-C 106 ; WX 340 ; N j ; B -94 -226 278 731 ;
-C 107 ; WX 660 ; N k ; B 22 0 643 724 ;
-C 108 ; WX 340 ; N l ; B 9 0 322 724 ;
-C 109 ; WX 1000 ; N m ; B 22 0 980 511 ;
-C 110 ; WX 680 ; N n ; B 22 0 652 511 ;
-C 111 ; WX 620 ; N o ; B 31 -9 585 511 ;
-C 112 ; WX 640 ; N p ; B 22 -213 611 511 ;
-C 113 ; WX 620 ; N q ; B 31 -213 633 511 ;
-C 114 ; WX 460 ; N r ; B 22 0 462 511 ;
-C 115 ; WX 520 ; N s ; B 22 -9 492 511 ;
-C 116 ; WX 460 ; N t ; B 22 -9 445 661 ;
-C 117 ; WX 660 ; N u ; B 22 -13 653 502 ;
-C 118 ; WX 600 ; N v ; B -6 0 593 502 ;
-C 119 ; WX 800 ; N w ; B -6 0 810 502 ;
-C 120 ; WX 600 ; N x ; B 8 0 591 502 ;
-C 121 ; WX 620 ; N y ; B 6 -221 613 502 ;
-C 122 ; WX 560 ; N z ; B 22 0 547 502 ;
-C 123 ; WX 320 ; N braceleft ; B 34 -140 280 720 ;
-C 124 ; WX 600 ; N bar ; B 243 0 362 722 ;
-C 125 ; WX 320 ; N braceright ; B 35 -140 280 720 ;
-C 126 ; WX 600 ; N asciitilde ; B 51 251 555 443 ;
-C 161 ; WX 360 ; N exclamdown ; B 84 -196 284 512 ;
-C 162 ; WX 660 ; N cent ; B 133 16 535 674 ;
-C 163 ; WX 660 ; N sterling ; B 10 -13 659 694 ;
-C 164 ; WX 120 ; N fraction ; B -194 0 312 681 ;
-C 165 ; WX 660 ; N yen ; B -28 0 696 681 ;
-C 166 ; WX 660 ; N florin ; B -46 -203 674 749 ;
-C 167 ; WX 600 ; N section ; B 36 -158 560 694 ;
-C 168 ; WX 660 ; N currency ; B 77 88 584 593 ;
-C 169 ; WX 240 ; N quotesingle ; B 42 383 178 694 ;
-C 170 ; WX 540 ; N quotedblleft ; B 82 438 449 694 ;
-C 171 ; WX 400 ; N guillemotleft ; B 34 71 360 430 ;
-C 172 ; WX 220 ; N guilsinglleft ; B 34 74 188 430 ;
-C 173 ; WX 220 ; N guilsinglright ; B 34 74 188 430 ;
-C 174 ; WX 740 ; N fi ; B 22 0 710 736 ;
-C 175 ; WX 740 ; N fl ; B 22 0 710 736 ;
-C 177 ; WX 500 ; N endash ; B -25 212 525 320 ;
-C 178 ; WX 440 ; N dagger ; B 33 -160 398 694 ;
-C 179 ; WX 380 ; N daggerdbl ; B 8 -161 380 694 ;
-C 180 ; WX 340 ; N periodcentered ; B 76 175 257 356 ;
-C 182 ; WX 800 ; N paragraph ; B 14 -98 757 681 ;
-C 183 ; WX 460 ; N bullet ; B 60 213 404 557 ;
-C 184 ; WX 320 ; N quotesinglbase ; B 82 -108 242 148 ;
-C 185 ; WX 540 ; N quotedblbase ; B 82 -108 450 148 ;
-C 186 ; WX 540 ; N quotedblright ; B 82 438 449 694 ;
-C 187 ; WX 400 ; N guillemotright ; B 34 71 360 430 ;
-C 188 ; WX 1000 ; N ellipsis ; B 76 -13 923 169 ;
-C 189 ; WX 1360 ; N perthousand ; B 12 -8 1346 689 ;
-C 191 ; WX 660 ; N questiondown ; B 62 -196 609 513 ;
-C 193 ; WX 400 ; N grave ; B 68 554 327 738 ;
-C 194 ; WX 400 ; N acute ; B 68 554 327 738 ;
-C 195 ; WX 500 ; N circumflex ; B 68 555 430 731 ;
-C 196 ; WX 480 ; N tilde ; B 69 564 421 699 ;
-C 197 ; WX 460 ; N macron ; B 68 582 383 667 ;
-C 198 ; WX 500 ; N breve ; B 68 556 429 725 ;
-C 199 ; WX 320 ; N dotaccent ; B 68 551 259 742 ;
-C 200 ; WX 500 ; N dieresis ; B 68 559 441 698 ;
-C 202 ; WX 340 ; N ring ; B 68 551 275 755 ;
-C 203 ; WX 360 ; N cedilla ; B 68 -213 284 0 ;
-C 205 ; WX 440 ; N hungarumlaut ; B 68 553 365 741 ;
-C 206 ; WX 320 ; N ogonek ; B 68 -170 246 0 ;
-C 207 ; WX 500 ; N caron ; B 68 555 430 731 ;
-C 208 ; WX 1000 ; N emdash ; B -25 212 1025 320 ;
-C 225 ; WX 1140 ; N AE ; B -34 0 1149 681 ;
-C 227 ; WX 400 ; N ordfeminine ; B 27 286 396 694 ;
-C 232 ; WX 640 ; N Lslash ; B 20 0 668 681 ;
-C 233 ; WX 800 ; N Oslash ; B 35 -110 771 779 ;
-C 234 ; WX 1220 ; N OE ; B 35 -13 1219 694 ;
-C 235 ; WX 400 ; N ordmasculine ; B 17 286 383 694 ;
-C 241 ; WX 880 ; N ae ; B 28 -9 852 511 ;
-C 245 ; WX 360 ; N dotlessi ; B 22 0 335 502 ;
-C 248 ; WX 340 ; N lslash ; B 9 0 322 724 ;
-C 249 ; WX 620 ; N oslash ; B 31 -40 586 546 ;
-C 250 ; WX 940 ; N oe ; B 31 -9 908 511 ;
-C 251 ; WX 660 ; N germandbls ; B -61 -92 644 688 ;
-C -1 ; WX 740 ; N Udieresis ; B 15 -13 724 877 ;
-C -1 ; WX 740 ; N Uacute ; B 15 -13 724 910 ;
-C -1 ; WX 660 ; N Scedilla ; B 21 -213 639 694 ;
-C -1 ; WX 700 ; N Tcaron ; B -4 0 703 904 ;
-C -1 ; WX 660 ; N Scaron ; B 21 -13 639 904 ;
-C -1 ; WX 780 ; N Rcaron ; B 20 0 783 904 ;
-C -1 ; WX 780 ; N Racute ; B 20 0 783 910 ;
-C -1 ; WX 660 ; N Sacute ; B 21 -13 639 910 ;
-C -1 ; WX 800 ; N Otilde ; B 35 -13 769 884 ;
-C -1 ; WX 660 ; N ucircumflex ; B 22 -13 653 731 ;
-C -1 ; WX 800 ; N Ohungarumlaut ; B 35 -13 769 913 ;
-C -1 ; WX 740 ; N Uhungarumlaut ; B 15 -13 724 913 ;
-C -1 ; WX 700 ; N Yacute ; B -20 0 718 910 ;
-C -1 ; WX 780 ; N Eth ; B 20 0 748 681 ;
-C -1 ; WX 780 ; N Dcroat ; B 20 0 748 681 ;
-C -1 ; WX 640 ; N Zacute ; B 6 0 635 910 ;
-C -1 ; WX 740 ; N Uring ; B 15 -13 724 927 ;
-C -1 ; WX 580 ; N gbreve ; B 9 -248 583 725 ;
-C -1 ; WX 580 ; N eogonek ; B 31 -170 548 511 ;
-C -1 ; WX 580 ; N edotaccent ; B 31 -9 548 742 ;
-C -1 ; WX 580 ; N ecaron ; B 31 -9 548 731 ;
-C -1 ; WX 740 ; N Ugrave ; B 15 -13 724 910 ;
-C -1 ; WX 660 ; N Thorn ; B 20 0 658 681 ;
-C -1 ; WX 580 ; N eacute ; B 31 -9 548 738 ;
-C -1 ; WX 580 ; N edieresis ; B 31 -9 548 698 ;
-C -1 ; WX 720 ; N dcaron ; B 31 -9 720 724 ;
-C -1 ; WX 580 ; N ccedilla ; B 31 -213 550 511 ;
-C -1 ; WX 580 ; N ccaron ; B 31 -9 550 731 ;
-C -1 ; WX 580 ; N cacute ; B 31 -9 550 738 ;
-C -1 ; WX 580 ; N aogonek ; B 28 -170 600 511 ;
-C -1 ; WX 580 ; N aring ; B 28 -9 588 755 ;
-C -1 ; WX 580 ; N atilde ; B 28 -9 588 699 ;
-C -1 ; WX 580 ; N abreve ; B 28 -9 588 725 ;
-C -1 ; WX 580 ; N egrave ; B 31 -9 548 738 ;
-C -1 ; WX 580 ; N agrave ; B 28 -9 588 738 ;
-C -1 ; WX 580 ; N aacute ; B 28 -9 588 738 ;
-C -1 ; WX 580 ; N adieresis ; B 28 -9 588 698 ;
-C -1 ; WX 740 ; N Uogonek ; B 15 -170 724 681 ;
-C -1 ; WX 660 ; N ugrave ; B 22 -13 653 738 ;
-C -1 ; WX 660 ; N uacute ; B 22 -13 653 738 ;
-C -1 ; WX 660 ; N udieresis ; B 22 -13 653 698 ;
-C -1 ; WX 470 ; N tcaron ; B 22 -9 470 724 ;
-C -1 ; WX 520 ; N scommaaccent ; B 22 -306 492 511 ;
-C -1 ; WX 640 ; N Zcaron ; B 6 0 635 904 ;
-C -1 ; WX 580 ; N ecircumflex ; B 31 -9 548 731 ;
-C -1 ; WX 740 ; N Ucircumflex ; B 15 -13 724 904 ;
-C -1 ; WX 580 ; N acircumflex ; B 28 -9 588 731 ;
-C -1 ; WX 640 ; N Zdotaccent ; B 6 0 635 914 ;
-C -1 ; WX 520 ; N scaron ; B 22 -9 492 731 ;
-C -1 ; WX 720 ; N Amacron ; B -34 0 763 839 ;
-C -1 ; WX 520 ; N sacute ; B 22 -9 492 738 ;
-C -1 ; WX 700 ; N Tcommaaccent ; B -4 -306 703 681 ;
-C -1 ; WX 700 ; N Ydieresis ; B -20 0 718 877 ;
-C -1 ; WX 640 ; N thorn ; B 22 -213 611 724 ;
-C -1 ; WX 720 ; N Emacron ; B 20 0 724 839 ;
-C -1 ; WX 800 ; N Ograve ; B 35 -13 769 910 ;
-C -1 ; WX 800 ; N Oacute ; B 35 -13 769 910 ;
-C -1 ; WX 800 ; N Odieresis ; B 35 -13 769 877 ;
-C -1 ; WX 740 ; N Ntilde ; B 20 0 724 884 ;
-C -1 ; WX 740 ; N Ncaron ; B 20 0 724 904 ;
-C -1 ; WX 740 ; N Nacute ; B 20 0 724 910 ;
-C -1 ; WX 640 ; N Lcaron ; B 20 0 668 694 ;
-C -1 ; WX 640 ; N Lacute ; B 20 0 668 910 ;
-C -1 ; WX 400 ; N Idotaccent ; B 20 0 379 914 ;
-C -1 ; WX 460 ; N racute ; B 22 0 462 738 ;
-C -1 ; WX 400 ; N Icircumflex ; B 18 0 380 904 ;
-C -1 ; WX 620 ; N ohungarumlaut ; B 31 -9 585 741 ;
-C -1 ; WX 620 ; N otilde ; B 31 -9 585 699 ;
-C -1 ; WX 660 ; N Euro ; B 9 -13 636 694 ;
-C -1 ; WX 620 ; N ocircumflex ; B 31 -9 585 731 ;
-C -1 ; WX 396 ; N onesuperior ; B 65 273 345 681 ;
-C -1 ; WX 396 ; N twosuperior ; B 14 273 396 689 ;
-C -1 ; WX 396 ; N threesuperior ; B 5 265 391 689 ;
-C -1 ; WX 400 ; N Igrave ; B 20 0 379 910 ;
-C -1 ; WX 400 ; N Iacute ; B 20 0 379 910 ;
-C -1 ; WX 400 ; N Imacron ; B 20 0 379 839 ;
-C -1 ; WX 400 ; N Iogonek ; B 20 -170 445 681 ;
-C -1 ; WX 400 ; N Idieresis ; B 18 0 391 877 ;
-C -1 ; WX 780 ; N Gbreve ; B 35 -13 773 898 ;
-C -1 ; WX 740 ; N Umacron ; B 15 -13 724 839 ;
-C -1 ; WX 800 ; N Kcommaaccent ; B 20 -306 796 681 ;
-C -1 ; WX 620 ; N ograve ; B 31 -9 585 738 ;
-C -1 ; WX 660 ; N Scommaaccent ; B 21 -306 639 694 ;
-C -1 ; WX 720 ; N Eogonek ; B 20 -170 724 681 ;
-C -1 ; WX 620 ; N oacute ; B 31 -9 585 738 ;
-C -1 ; WX 720 ; N Edotaccent ; B 20 0 724 914 ;
-C -1 ; WX 360 ; N iogonek ; B 22 -170 401 730 ;
-C -1 ; WX 580 ; N gcommaaccent ; B 9 -248 583 824 ;
-C -1 ; WX 620 ; N odieresis ; B 31 -9 585 698 ;
-C -1 ; WX 680 ; N ntilde ; B 22 0 652 699 ;
-C -1 ; WX 680 ; N ncaron ; B 22 0 652 731 ;
-C -1 ; WX 720 ; N Ecaron ; B 20 0 724 904 ;
-C -1 ; WX 720 ; N Ecircumflex ; B 20 0 724 904 ;
-C -1 ; WX 520 ; N scedilla ; B 22 -213 492 511 ;
-C -1 ; WX 460 ; N rcaron ; B 22 0 462 731 ;
-C -1 ; WX 720 ; N Egrave ; B 20 0 724 910 ;
-C -1 ; WX 720 ; N Eacute ; B 20 0 724 910 ;
-C -1 ; WX 780 ; N Gcommaaccent ; B 35 -306 773 694 ;
-C -1 ; WX 780 ; N Rcommaaccent ; B 20 -306 783 681 ;
-C -1 ; WX 720 ; N Edieresis ; B 20 0 724 877 ;
-C -1 ; WX 680 ; N nacute ; B 22 0 652 738 ;
-C -1 ; WX 660 ; N uogonek ; B 22 -170 719 502 ;
-C -1 ; WX 660 ; N umacron ; B 22 -13 653 667 ;
-C -1 ; WX 780 ; N Dcaron ; B 20 0 748 904 ;
-C -1 ; WX 430 ; N lcaron ; B 9 0 430 724 ;
-C -1 ; WX 740 ; N Ccaron ; B 35 -13 724 904 ;
-C -1 ; WX 740 ; N Cacute ; B 35 -13 724 910 ;
-C -1 ; WX 740 ; N Ccedilla ; B 35 -213 724 694 ;
-C -1 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C -1 ; WX 720 ; N Aogonek ; B -34 -170 829 681 ;
-C -1 ; WX 600 ; N minus ; B 51 294 555 411 ;
-C -1 ; WX 600 ; N multiply ; B 48 100 552 604 ;
-C -1 ; WX 600 ; N divide ; B 51 72 555 633 ;
-C -1 ; WX 720 ; N Aring ; B -34 0 763 924 ;
-C -1 ; WX 980 ; N trademark ; B 42 273 982 681 ;
-C -1 ; WX 460 ; N rcommaaccent ; B 22 -306 462 511 ;
-C -1 ; WX 340 ; N lacute ; B 9 0 322 910 ;
-C -1 ; WX 620 ; N omacron ; B 31 -9 585 667 ;
-C -1 ; WX 720 ; N Atilde ; B -34 0 763 884 ;
-C -1 ; WX 360 ; N icircumflex ; B -2 0 360 731 ;
-C -1 ; WX 360 ; N igrave ; B 22 0 335 738 ;
-C -1 ; WX 680 ; N ncommaaccent ; B 22 -306 652 511 ;
-C -1 ; WX 340 ; N lcommaaccent ; B 9 -306 322 724 ;
-C -1 ; WX 600 ; N plusminus ; B 51 0 555 629 ;
-C -1 ; WX 990 ; N onehalf ; B 65 0 980 681 ;
-C -1 ; WX 990 ; N onequarter ; B 65 0 967 681 ;
-C -1 ; WX 990 ; N threequarters ; B 15 0 967 689 ;
-C -1 ; WX 360 ; N iacute ; B 22 0 335 738 ;
-C -1 ; WX 720 ; N Abreve ; B -34 0 763 898 ;
-C -1 ; WX 660 ; N kcommaaccent ; B 22 -306 643 724 ;
-C -1 ; WX 800 ; N Omacron ; B 35 -13 769 839 ;
-C -1 ; WX 360 ; N imacron ; B 18 0 335 667 ;
-C -1 ; WX 580 ; N emacron ; B 31 -9 548 667 ;
-C -1 ; WX 580 ; N amacron ; B 28 -9 588 667 ;
-C -1 ; WX 460 ; N tcommaaccent ; B 22 -306 445 661 ;
-C -1 ; WX 620 ; N ydieresis ; B 6 -221 613 698 ;
-C -1 ; WX 560 ; N zdotaccent ; B 22 0 547 742 ;
-C -1 ; WX 560 ; N zcaron ; B 22 0 547 731 ;
-C -1 ; WX 560 ; N zacute ; B 22 0 547 738 ;
-C -1 ; WX 620 ; N yacute ; B 6 -221 613 738 ;
-C -1 ; WX 660 ; N uhungarumlaut ; B 22 -13 653 741 ;
-C -1 ; WX 620 ; N eth ; B 31 -9 585 779 ;
-C -1 ; WX 660 ; N uring ; B 22 -13 653 755 ;
-C -1 ; WX 800 ; N Ocircumflex ; B 35 -13 769 904 ;
-C -1 ; WX 296 ; N commaaccent ; B 68 -306 228 -50 ;
-C -1 ; WX 740 ; N copyright ; B 23 0 723 700 ;
-C -1 ; WX 740 ; N registered ; B 23 0 723 700 ;
-C -1 ; WX 720 ; N Acircumflex ; B -34 0 763 904 ;
-C -1 ; WX 360 ; N idieresis ; B -2 0 371 698 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 600 ; N notequal ; B 51 63 555 646 ;
-C -1 ; WX 549 ; N radical ; B -34 -35 548 918 ;
-C -1 ; WX 720 ; N Agrave ; B -34 0 763 910 ;
-C -1 ; WX 720 ; N Aacute ; B -34 0 763 910 ;
-C -1 ; WX 600 ; N lessequal ; B 45 0 549 722 ;
-C -1 ; WX 600 ; N greaterequal ; B 51 0 555 722 ;
-C -1 ; WX 600 ; N logicalnot ; B 51 80 555 369 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 9 -10 478 755 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 20 -306 724 681 ;
-C -1 ; WX 640 ; N dcroat ; B 31 -9 622 724 ;
-C -1 ; WX 600 ; N brokenbar ; B 243 0 362 722 ;
-C -1 ; WX 640 ; N Lcommaaccent ; B 20 -306 668 681 ;
-C -1 ; WX 720 ; N Adieresis ; B -34 0 763 877 ;
-C -1 ; WX 660 ; N mu ; B 22 -219 653 502 ;
-C -1 ; WX 340 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -14
-KPX A Ccedilla -13
-KPX A G -9
-KPX A O -12
-KPX A Odieresis -12
-KPX A Q 9
-KPX A T -26
-KPX A U -10
-KPX A Uacute -10
-KPX A Ucircumflex -10
-KPX A Udieresis -10
-KPX A Ugrave -10
-KPX A V -59
-KPX A W -40
-KPX A Y -25
-KPX A a 37
-KPX A b 27
-KPX A c 11
-KPX A ccedilla 13
-KPX A comma 33
-KPX A d 16
-KPX A e 9
-KPX A g 40
-KPX A guillemotleft -9
-KPX A guilsinglleft -9
-KPX A hyphen 12
-KPX A o 11
-KPX A period 34
-KPX A q 13
-KPX A quotedblright -74
-KPX A quoteright -74
-KPX A t 2
-KPX A u 2
-KPX A v -26
-KPX A w -19
-KPX A y -36
-KPX Aacute C -14
-KPX Aacute G -9
-KPX Aacute O -12
-KPX Aacute Q 9
-KPX Aacute T -26
-KPX Aacute U -10
-KPX Aacute V -59
-KPX Aacute W -40
-KPX Aacute Y -25
-KPX Aacute a 37
-KPX Aacute b 27
-KPX Aacute c 11
-KPX Aacute comma 33
-KPX Aacute d 16
-KPX Aacute e 9
-KPX Aacute g 40
-KPX Aacute guillemotleft -9
-KPX Aacute guilsinglleft -9
-KPX Aacute hyphen 12
-KPX Aacute o 11
-KPX Aacute period 34
-KPX Aacute q 13
-KPX Aacute quoteright -75
-KPX Aacute t 2
-KPX Aacute u 2
-KPX Aacute v -26
-KPX Aacute w -19
-KPX Aacute y -36
-KPX Acircumflex C -14
-KPX Acircumflex G -9
-KPX Acircumflex O -12
-KPX Acircumflex Q 9
-KPX Acircumflex T -26
-KPX Acircumflex U -10
-KPX Acircumflex V -59
-KPX Acircumflex W -40
-KPX Acircumflex Y -25
-KPX Acircumflex comma 33
-KPX Acircumflex period 34
-KPX Adieresis C -14
-KPX Adieresis G -9
-KPX Adieresis O -12
-KPX Adieresis Q 9
-KPX Adieresis T -26
-KPX Adieresis U -10
-KPX Adieresis V -59
-KPX Adieresis W -40
-KPX Adieresis Y -25
-KPX Adieresis a 37
-KPX Adieresis b 27
-KPX Adieresis c 11
-KPX Adieresis comma 33
-KPX Adieresis d 16
-KPX Adieresis g 40
-KPX Adieresis guillemotleft -9
-KPX Adieresis guilsinglleft -9
-KPX Adieresis hyphen 12
-KPX Adieresis o 11
-KPX Adieresis period 34
-KPX Adieresis q 13
-KPX Adieresis quotedblright -75
-KPX Adieresis quoteright -75
-KPX Adieresis t 2
-KPX Adieresis u 2
-KPX Adieresis v -26
-KPX Adieresis w -19
-KPX Adieresis y -36
-KPX Agrave C -14
-KPX Agrave G -9
-KPX Agrave O -12
-KPX Agrave Q 9
-KPX Agrave T -26
-KPX Agrave U -10
-KPX Agrave V -59
-KPX Agrave W -40
-KPX Agrave Y -25
-KPX Agrave comma 33
-KPX Agrave period 34
-KPX Aring C -14
-KPX Aring G -9
-KPX Aring O -12
-KPX Aring Q 9
-KPX Aring T -26
-KPX Aring U -10
-KPX Aring V -59
-KPX Aring W -40
-KPX Aring Y -25
-KPX Aring a 37
-KPX Aring b 27
-KPX Aring c 11
-KPX Aring comma 33
-KPX Aring d 16
-KPX Aring e 9
-KPX Aring g 40
-KPX Aring guillemotleft -9
-KPX Aring guilsinglleft -9
-KPX Aring hyphen 12
-KPX Aring o 11
-KPX Aring period 34
-KPX Aring q 13
-KPX Aring quotedblright -75
-KPX Aring quoteright -75
-KPX Aring t 2
-KPX Aring u 2
-KPX Aring v -26
-KPX Aring w -19
-KPX Aring y -36
-KPX Atilde C -14
-KPX Atilde G -9
-KPX Atilde O -12
-KPX Atilde Q 9
-KPX Atilde T -26
-KPX Atilde U -10
-KPX Atilde V -59
-KPX Atilde W -40
-KPX Atilde Y -25
-KPX Atilde comma 33
-KPX Atilde period 34
-KPX B A 17
-KPX B AE 17
-KPX B Aacute 17
-KPX B Acircumflex 17
-KPX B Adieresis 17
-KPX B Aring 17
-KPX B Atilde 17
-KPX B O 2
-KPX B OE 1
-KPX B Oacute 2
-KPX B Ocircumflex 2
-KPX B Odieresis 2
-KPX B Ograve 2
-KPX B Oslash 2
-KPX B V 3
-KPX B W 3
-KPX B Y 3
-KPX C A 5
-KPX C AE 5
-KPX C Aacute 5
-KPX C Adieresis 5
-KPX C Aring 5
-KPX C H -2
-KPX C K -2
-KPX C O -4
-KPX C Oacute -4
-KPX C Odieresis -4
-KPX Ccedilla A 6
-KPX D A -15
-KPX D Aacute -15
-KPX D Acircumflex -15
-KPX D Adieresis -15
-KPX D Agrave -15
-KPX D Aring -15
-KPX D Atilde -15
-KPX D J 14
-KPX D T 8
-KPX D V -23
-KPX D W -18
-KPX D X -30
-KPX D Y -23
-KPX F A -62
-KPX F Aacute -62
-KPX F Acircumflex -62
-KPX F Adieresis -62
-KPX F Agrave -62
-KPX F Aring -62
-KPX F Atilde -62
-KPX F J -46
-KPX F O 4
-KPX F Odieresis 4
-KPX F a -15
-KPX F aacute -15
-KPX F adieresis -15
-KPX F ae -20
-KPX F aring -15
-KPX F comma -92
-KPX F e -31
-KPX F eacute -31
-KPX F hyphen -22
-KPX F i 20
-KPX F j 15
-KPX F o -30
-KPX F oacute -30
-KPX F odieresis -30
-KPX F oe -33
-KPX F oslash -31
-KPX F period -91
-KPX F r 20
-KPX F u 20
-KPX G A 6
-KPX G AE 6
-KPX G Aacute 6
-KPX G Acircumflex 6
-KPX G Adieresis 6
-KPX G Agrave 6
-KPX G Aring 6
-KPX G Atilde 6
-KPX G T -14
-KPX G V -23
-KPX G W -16
-KPX G Y -23
-KPX J A -18
-KPX J AE -18
-KPX J Adieresis -18
-KPX J Aring -18
-KPX K C -37
-KPX K G -32
-KPX K O -36
-KPX K OE -40
-KPX K Oacute -36
-KPX K Odieresis -36
-KPX K S -6
-KPX K T -9
-KPX K a 14
-KPX K adieresis 14
-KPX K ae 12
-KPX K aring 14
-KPX K e -13
-KPX K hyphen -34
-KPX K o -11
-KPX K oacute -11
-KPX K odieresis -11
-KPX K u -20
-KPX K udieresis -20
-KPX K y -69
-KPX L A 30
-KPX L AE 30
-KPX L Aacute 30
-KPX L Adieresis 30
-KPX L Aring 30
-KPX L C 23
-KPX L Ccedilla 23
-KPX L G 23
-KPX L O 23
-KPX L Oacute 23
-KPX L Ocircumflex 23
-KPX L Odieresis 23
-KPX L Ograve 23
-KPX L Otilde 23
-KPX L S 35
-KPX L T -54
-KPX L U -5
-KPX L Udieresis -5
-KPX L V -52
-KPX L W -28
-KPX L Y -56
-KPX L hyphen 58
-KPX L quotedblright -80
-KPX L quoteright -80
-KPX L u 0
-KPX L udieresis -1
-KPX L y -22
-KPX N A -2
-KPX N AE -2
-KPX N Aacute -2
-KPX N Adieresis -2
-KPX N Aring -2
-KPX N C -11
-KPX N Ccedilla -11
-KPX N G -11
-KPX N O -13
-KPX N Oacute -13
-KPX N Odieresis -13
-KPX N a -12
-KPX N aacute -12
-KPX N adieresis -12
-KPX N ae -14
-KPX N aring -12
-KPX N comma -17
-KPX N e -17
-KPX N eacute -17
-KPX N o -17
-KPX N oacute -17
-KPX N odieresis -17
-KPX N oslash -15
-KPX N period -16
-KPX N u -22
-KPX N udieresis -23
-KPX O A -20
-KPX O AE -20
-KPX O Aacute -20
-KPX O Adieresis -20
-KPX O Aring -20
-KPX O T 10
-KPX O V -22
-KPX O W -19
-KPX O X -32
-KPX O Y -22
-KPX Oacute A -20
-KPX Oacute T 10
-KPX Oacute V -22
-KPX Oacute W -19
-KPX Oacute Y -22
-KPX Ocircumflex T 10
-KPX Ocircumflex V -22
-KPX Ocircumflex Y -22
-KPX Odieresis A -20
-KPX Odieresis T 10
-KPX Odieresis V -22
-KPX Odieresis W -19
-KPX Odieresis X -32
-KPX Odieresis Y -22
-KPX Ograve T 10
-KPX Ograve V -22
-KPX Ograve Y -22
-KPX Oslash A -18
-KPX Otilde T 10
-KPX Otilde V -22
-KPX Otilde Y -22
-KPX P A -51
-KPX P AE -92
-KPX P Aacute -51
-KPX P Adieresis -51
-KPX P Aring -51
-KPX P J -29
-KPX P a 1
-KPX P aacute 1
-KPX P adieresis 1
-KPX P ae -4
-KPX P aring 1
-KPX P comma -87
-KPX P e -8
-KPX P eacute -8
-KPX P hyphen 1
-KPX P o -7
-KPX P oacute -7
-KPX P odieresis -7
-KPX P oe -9
-KPX P oslash -7
-KPX P period -87
-KPX R C -19
-KPX R Ccedilla -19
-KPX R G -18
-KPX R O -20
-KPX R OE -21
-KPX R Oacute -20
-KPX R Odieresis -20
-KPX R T -2
-KPX R U -24
-KPX R Udieresis -24
-KPX R V -8
-KPX R W -8
-KPX R Y -8
-KPX R a 17
-KPX R aacute 17
-KPX R adieresis 17
-KPX R ae 15
-KPX R aring 17
-KPX R e -10
-KPX R eacute -10
-KPX R hyphen -21
-KPX R o -8
-KPX R oacute -8
-KPX R odieresis -8
-KPX R oe -5
-KPX R u -16
-KPX R uacute -16
-KPX R udieresis -16
-KPX R y -7
-KPX S A 12
-KPX S AE 12
-KPX S Aacute 12
-KPX S Adieresis 12
-KPX S Aring 12
-KPX S T 2
-KPX S V -8
-KPX S W -8
-KPX S Y -8
-KPX S t -2
-KPX T A -33
-KPX T AE -33
-KPX T Aacute -33
-KPX T Acircumflex -33
-KPX T Adieresis -33
-KPX T Agrave -33
-KPX T Aring -33
-KPX T Atilde -33
-KPX T C 7
-KPX T G 7
-KPX T J -58
-KPX T O 5
-KPX T OE 6
-KPX T Oacute 5
-KPX T Ocircumflex 5
-KPX T Odieresis 5
-KPX T Ograve 5
-KPX T Oslash 5
-KPX T Otilde 5
-KPX T S 14
-KPX T V 20
-KPX T W 20
-KPX T Y 20
-KPX T a -14
-KPX T ae -20
-KPX T c -33
-KPX T colon -9
-KPX T comma -77
-KPX T e -34
-KPX T g -23
-KPX T guillemotleft -95
-KPX T guilsinglleft -94
-KPX T hyphen -70
-KPX T i 23
-KPX T j 14
-KPX T o -33
-KPX T oslash -32
-KPX T period -77
-KPX T r 23
-KPX T s -11
-KPX T semicolon -8
-KPX T u 23
-KPX T v 37
-KPX T w 37
-KPX T y 31
-KPX U A -16
-KPX U AE -16
-KPX U Aacute -16
-KPX U Acircumflex -16
-KPX U Adieresis -16
-KPX U Aring -16
-KPX U Atilde -16
-KPX U comma -33
-KPX U m -21
-KPX U n -20
-KPX U p -26
-KPX U period -32
-KPX U r -20
-KPX Uacute A -16
-KPX Uacute comma -33
-KPX Uacute m -21
-KPX Uacute n -20
-KPX Uacute p -26
-KPX Uacute period -32
-KPX Uacute r -20
-KPX Ucircumflex A -16
-KPX Udieresis A -16
-KPX Udieresis b 34
-KPX Udieresis comma -33
-KPX Udieresis m -21
-KPX Udieresis n -20
-KPX Udieresis p -26
-KPX Udieresis period -32
-KPX Udieresis r -20
-KPX Ugrave A -16
-KPX V A -71
-KPX V AE -80
-KPX V Aacute -71
-KPX V Acircumflex -71
-KPX V Adieresis -71
-KPX V Agrave -71
-KPX V Aring -71
-KPX V Atilde -71
-KPX V C -26
-KPX V G -28
-KPX V O -33
-KPX V Oacute -33
-KPX V Ocircumflex -33
-KPX V Odieresis -33
-KPX V Ograve -33
-KPX V Oslash -32
-KPX V Otilde -33
-KPX V S -2
-KPX V T 17
-KPX V a -57
-KPX V ae -60
-KPX V colon -65
-KPX V comma -90
-KPX V e -63
-KPX V g -58
-KPX V guillemotleft -63
-KPX V guilsinglleft -60
-KPX V hyphen -33
-KPX V i 0
-KPX V o -62
-KPX V oslash -60
-KPX V period -89
-KPX V r -34
-KPX V semicolon -65
-KPX V u -34
-KPX V y -20
-KPX W A -63
-KPX W AE -66
-KPX W Aacute -63
-KPX W Acircumflex -63
-KPX W Adieresis -63
-KPX W Agrave -63
-KPX W Aring -63
-KPX W Atilde -63
-KPX W C -19
-KPX W G -21
-KPX W O -27
-KPX W Oacute -27
-KPX W Ocircumflex -27
-KPX W Odieresis -27
-KPX W Ograve -27
-KPX W Oslash -26
-KPX W Otilde -27
-KPX W S 3
-KPX W T 24
-KPX W a -48
-KPX W ae -51
-KPX W colon -60
-KPX W comma -77
-KPX W e -54
-KPX W g -49
-KPX W guillemotleft -54
-KPX W guilsinglleft -51
-KPX W hyphen -24
-KPX W i 7
-KPX W o -53
-KPX W oslash -51
-KPX W period -76
-KPX W r -31
-KPX W semicolon -61
-KPX W u -31
-KPX W y -17
-KPX X C -40
-KPX X O -39
-KPX X Odieresis -39
-KPX X Q -17
-KPX X a 11
-KPX X e -16
-KPX X hyphen -50
-KPX X o -14
-KPX X u -23
-KPX X y -54
-KPX Y A -37
-KPX Y AE -37
-KPX Y Aacute -37
-KPX Y Acircumflex -37
-KPX Y Adieresis -37
-KPX Y Agrave -37
-KPX Y Aring -37
-KPX Y Atilde -37
-KPX Y C -22
-KPX Y G -24
-KPX Y O -29
-KPX Y Oacute -29
-KPX Y Ocircumflex -29
-KPX Y Odieresis -29
-KPX Y Ograve -29
-KPX Y Oslash -28
-KPX Y Otilde -29
-KPX Y S 1
-KPX Y T 21
-KPX Y a -71
-KPX Y ae -72
-KPX Y colon -82
-KPX Y comma -80
-KPX Y e -78
-KPX Y g -67
-KPX Y guillemotleft -88
-KPX Y guilsinglleft -87
-KPX Y hyphen -67
-KPX Y i 4
-KPX Y o -77
-KPX Y oslash -75
-KPX Y p -52
-KPX Y period -79
-KPX Y semicolon -83
-KPX Y u -52
-KPX Y v -30
-KPX Z v -23
-KPX Z y -27
-KPX a j -21
-KPX a quoteright -51
-KPX a v -16
-KPX a w -16
-KPX a y -23
-KPX aacute v -16
-KPX aacute w -16
-KPX aacute y -23
-KPX adieresis v -16
-KPX adieresis w -16
-KPX adieresis y -23
-KPX ae v 0
-KPX ae w 0
-KPX ae y -10
-KPX agrave v -16
-KPX agrave w -16
-KPX agrave y -23
-KPX aring v -16
-KPX aring w -16
-KPX aring y -23
-KPX b v -4
-KPX b w -4
-KPX b y -13
-KPX c h -11
-KPX c k -11
-KPX comma one -63
-KPX comma quotedblright -63
-KPX comma quoteright -63
-KPX e quoteright -37
-KPX e t -17
-KPX e v -3
-KPX e w -3
-KPX e x -7
-KPX e y -13
-KPX eacute v -3
-KPX eacute w -3
-KPX eacute y -13
-KPX ecircumflex v -3
-KPX ecircumflex w -3
-KPX ecircumflex y -13
-KPX eight four 9
-KPX eight one -66
-KPX eight seven -20
-KPX f a -3
-KPX f aacute -3
-KPX f adieresis 30
-KPX f ae -4
-KPX f aring -3
-KPX f e -17
-KPX f eacute -17
-KPX f f 14
-KPX f i 36
-KPX f j 28
-KPX f l 68
-KPX f o -16
-KPX f oacute -16
-KPX f odieresis 12
-KPX f oe -16
-KPX f oslash -14
-KPX f quoteright 30
-KPX f s -3
-KPX f t 8
-KPX five four 5
-KPX five one -74
-KPX five seven -33
-KPX four four 15
-KPX four one -70
-KPX four seven -39
-KPX g a -16
-KPX g adieresis -16
-KPX g ae -19
-KPX g aring -16
-KPX g e -18
-KPX g eacute -18
-KPX g l 15
-KPX g oacute -17
-KPX g odieresis -17
-KPX g r 9
-KPX guillemotright A -22
-KPX guillemotright AE -24
-KPX guillemotright Aacute -22
-KPX guillemotright Adieresis -22
-KPX guillemotright Aring -22
-KPX guillemotright T -95
-KPX guillemotright V -65
-KPX guillemotright W -41
-KPX guillemotright Y -82
-KPX guilsinglright A -18
-KPX guilsinglright AE -25
-KPX guilsinglright Aacute -18
-KPX guilsinglright Adieresis -18
-KPX guilsinglright Aring -18
-KPX guilsinglright T -91
-KPX guilsinglright V -58
-KPX guilsinglright W -35
-KPX guilsinglright Y -77
-KPX h quoteright -54
-KPX h y -29
-KPX hyphen A 0
-KPX hyphen AE -34
-KPX hyphen Aacute 0
-KPX hyphen Adieresis 0
-KPX hyphen Aring 0
-KPX hyphen T -68
-KPX hyphen V -32
-KPX hyphen W -9
-KPX hyphen Y -58
-KPX i T -15
-KPX i j -25
-KPX k a 7
-KPX k aacute 7
-KPX k adieresis 7
-KPX k ae 6
-KPX k aring 7
-KPX k comma -8
-KPX k e -20
-KPX k eacute -20
-KPX k g 11
-KPX k hyphen -46
-KPX k o -18
-KPX k oacute -18
-KPX k odieresis -18
-KPX k period -8
-KPX k s 4
-KPX k u -11
-KPX k udieresis -11
-KPX l v -10
-KPX l y -16
-KPX m p -18
-KPX m v -16
-KPX m w -16
-KPX m y -23
-KPX n T -35
-KPX n p -21
-KPX n quoteright -51
-KPX n v -19
-KPX n w -19
-KPX n y -26
-KPX nine four 8
-KPX nine one -63
-KPX nine seven -2
-KPX o T -36
-KPX o quoteright -41
-KPX o t -17
-KPX o v -7
-KPX o w -7
-KPX o x -15
-KPX o y -18
-KPX oacute v -7
-KPX oacute w -7
-KPX oacute y -18
-KPX ocircumflex t -17
-KPX odieresis t -17
-KPX odieresis v -7
-KPX odieresis w -7
-KPX odieresis x -15
-KPX odieresis y -18
-KPX ograve v -7
-KPX ograve w -7
-KPX ograve y -18
-KPX one comma -40
-KPX one eight -46
-KPX one five -42
-KPX one four -79
-KPX one nine -49
-KPX one one -81
-KPX one period -39
-KPX one seven -86
-KPX one six -61
-KPX one three -42
-KPX one two -35
-KPX one zero -60
-KPX p t -12
-KPX p y -13
-KPX period one -64
-KPX period quotedblright -62
-KPX period quoteright -62
-KPX q c -3
-KPX q u -9
-KPX quotedblbase A 22
-KPX quotedblbase AE 17
-KPX quotedblbase T -81
-KPX quotedblbase V -95
-KPX quotedblbase W -68
-KPX quotedblbase Y -79
-KPX quotedblleft A -90
-KPX quotedblleft AE -174
-KPX quotedblleft Aacute -91
-KPX quotedblleft Adieresis -91
-KPX quotedblleft Aring -91
-KPX quotedblleft T -2
-KPX quotedblleft V 0
-KPX quotedblleft W 9
-KPX quotedblleft Y -1
-KPX quotedblright A -92
-KPX quotedblright AE -178
-KPX quotedblright Aacute -93
-KPX quotedblright Adieresis -93
-KPX quotedblright Aring -93
-KPX quotedblright T -3
-KPX quotedblright V 4
-KPX quotedblright W 12
-KPX quotedblright Y 2
-KPX quoteleft A -84
-KPX quoteleft AE -168
-KPX quoteleft Aacute -85
-KPX quoteleft Adieresis -85
-KPX quoteleft Aring -85
-KPX quoteleft T 4
-KPX quoteleft V 7
-KPX quoteleft W 15
-KPX quoteleft Y 4
-KPX quoteright A -85
-KPX quoteright AE -172
-KPX quoteright Aacute -86
-KPX quoteright Adieresis -86
-KPX quoteright Aring -86
-KPX quoteright comma -57
-KPX quoteright d -36
-KPX quoteright o -35
-KPX quoteright period -56
-KPX quoteright r -15
-KPX quoteright s -19
-KPX quoteright t -14
-KPX quoteright v 3
-KPX quoteright w 4
-KPX quoteright y -4
-KPX r a 8
-KPX r aacute 8
-KPX r acircumflex 8
-KPX r adieresis 8
-KPX r ae 3
-KPX r agrave 8
-KPX r aring 8
-KPX r c 2
-KPX r ccedilla 1
-KPX r colon -4
-KPX r comma -61
-KPX r d 0
-KPX r e 1
-KPX r eacute 1
-KPX r ecircumflex 1
-KPX r egrave 1
-KPX r f 22
-KPX r g 1
-KPX r h -16
-KPX r hyphen 1
-KPX r i 22
-KPX r j 13
-KPX r k -13
-KPX r l -8
-KPX r m 22
-KPX r n 22
-KPX r o 2
-KPX r oacute 2
-KPX r ocircumflex 2
-KPX r odieresis 2
-KPX r oe 0
-KPX r ograve 2
-KPX r oslash 2
-KPX r p 22
-KPX r period -60
-KPX r q 2
-KPX r quoteright 2
-KPX r r 22
-KPX r s 13
-KPX r semicolon -3
-KPX r t 22
-KPX r u 22
-KPX r v 36
-KPX r w 36
-KPX r x 19
-KPX r y 30
-KPX r z 3
-KPX s quoteright -29
-KPX s t -10
-KPX seven colon -70
-KPX seven comma -106
-KPX seven eight -25
-KPX seven five -20
-KPX seven four -89
-KPX seven one -50
-KPX seven period -105
-KPX seven seven -7
-KPX seven six -32
-KPX seven three -18
-KPX seven two -11
-KPX six four 10
-KPX six one -63
-KPX six seven -19
-KPX t S -7
-KPX t a 10
-KPX t aacute 10
-KPX t adieresis 10
-KPX t ae 9
-KPX t aring 10
-KPX t colon -13
-KPX t e -12
-KPX t eacute -12
-KPX t h 12
-KPX t o -10
-KPX t oacute -10
-KPX t odieresis -10
-KPX t quoteright -48
-KPX t semicolon -14
-KPX three four 8
-KPX three one -66
-KPX three seven -16
-KPX two four 3
-KPX two one -68
-KPX two seven -18
-KPX u quoteright -30
-KPX v a 1
-KPX v aacute 1
-KPX v acircumflex 1
-KPX v adieresis 1
-KPX v ae -3
-KPX v agrave 1
-KPX v aring 1
-KPX v atilde 1
-KPX v c -11
-KPX v colon -8
-KPX v comma -81
-KPX v e -12
-KPX v eacute -12
-KPX v ecircumflex -12
-KPX v egrave -12
-KPX v g -8
-KPX v hyphen -16
-KPX v l -13
-KPX v o -11
-KPX v oacute -11
-KPX v odieresis -11
-KPX v ograve -11
-KPX v oslash -11
-KPX v period -80
-KPX v s 4
-KPX v semicolon -8
-KPX w a 9
-KPX w aacute 9
-KPX w acircumflex 9
-KPX w adieresis 9
-KPX w ae 4
-KPX w agrave 9
-KPX w aring 9
-KPX w atilde 9
-KPX w c -2
-KPX w colon 0
-KPX w comma -58
-KPX w e -3
-KPX w eacute -3
-KPX w ecircumflex -3
-KPX w egrave -3
-KPX w g 0
-KPX w hyphen -1
-KPX w l -4
-KPX w o -3
-KPX w oacute -3
-KPX w odieresis -3
-KPX w ograve -3
-KPX w oslash -3
-KPX w period -57
-KPX w s 12
-KPX w semicolon 0
-KPX x a 11
-KPX x c -14
-KPX x e -16
-KPX x eacute -16
-KPX x o -14
-KPX x q -12
-KPX y a 0
-KPX y aacute 0
-KPX y acircumflex 0
-KPX y adieresis 0
-KPX y ae -6
-KPX y agrave 0
-KPX y aring 0
-KPX y atilde 0
-KPX y c -15
-KPX y colon -8
-KPX y comma -86
-KPX y e -16
-KPX y eacute -16
-KPX y ecircumflex -16
-KPX y egrave -16
-KPX y g -10
-KPX y hyphen -23
-KPX y l -13
-KPX y o -15
-KPX y oacute -15
-KPX y odieresis -15
-KPX y ograve -15
-KPX y oslash -15
-KPX y period -86
-KPX y s 2
-KPX y semicolon -8
-KPX zero four 9
-KPX zero one -62
-KPX zero seven -3
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/b018015l.pfb b/Master/xemtex/gsfonts/b018015l.pfb
deleted file mode 100644
index c2c98b8075f..00000000000
--- a/Master/xemtex/gsfonts/b018015l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018015l.pfm b/Master/xemtex/gsfonts/b018015l.pfm
deleted file mode 100644
index 71fed23315e..00000000000
--- a/Master/xemtex/gsfonts/b018015l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018032l.afm b/Master/xemtex/gsfonts/b018032l.afm
deleted file mode 100644
index 92e9eec0cd5..00000000000
--- a/Master/xemtex/gsfonts/b018032l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWBookmanL-LighItal
-FullName URW Bookman L Light Italic
-FamilyName URW Bookman L
-Weight Regular
-ItalicAngle -10.0
-IsFixedPitch false
-UnderlinePosition -125
-UnderlineThickness 60
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -228 -281 1269 930
-CapHeight 681
-XHeight 486
-Descender -212
-Ascender 715
-StartCharMetrics 316
-C 32 ; WX 300 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 320 ; N exclam ; B 103 -13 342 694 ;
-C 34 ; WX 360 ; N quotedbl ; B 107 462 402 694 ;
-C 35 ; WX 620 ; N numbersign ; B 107 0 598 666 ;
-C 36 ; WX 620 ; N dollar ; B 78 -85 619 762 ;
-C 37 ; WX 800 ; N percent ; B 56 -8 811 689 ;
-C 38 ; WX 820 ; N ampersand ; B 65 -13 848 694 ;
-C 39 ; WX 280 ; N quoteright ; B 148 466 288 694 ;
-C 40 ; WX 280 ; N parenleft ; B 96 -120 383 715 ;
-C 41 ; WX 280 ; N parenright ; B -8 -120 279 715 ;
-C 42 ; WX 440 ; N asterisk ; B 139 324 505 698 ;
-C 43 ; WX 600 ; N plus ; B 91 106 595 594 ;
-C 44 ; WX 300 ; N comma ; B 88 -115 227 112 ;
-C 45 ; WX 320 ; N hyphen ; B 78 232 336 285 ;
-C 46 ; WX 300 ; N period ; B 96 -13 231 122 ;
-C 47 ; WX 600 ; N slash ; B 104 -121 562 715 ;
-C 48 ; WX 620 ; N zero ; B 86 -13 646 695 ;
-C 49 ; WX 620 ; N one ; B 154 0 500 681 ;
-C 50 ; WX 620 ; N two ; B 66 0 636 694 ;
-C 51 ; WX 620 ; N three ; B 55 -13 622 694 ;
-C 52 ; WX 620 ; N four ; B 69 0 634 681 ;
-C 53 ; WX 620 ; N five ; B 70 -13 614 681 ;
-C 54 ; WX 620 ; N six ; B 89 -13 657 694 ;
-C 55 ; WX 620 ; N seven ; B 143 0 672 681 ;
-C 56 ; WX 620 ; N eight ; B 61 -13 655 694 ;
-C 57 ; WX 620 ; N nine ; B 77 -13 649 694 ;
-C 58 ; WX 300 ; N colon ; B 96 -13 292 499 ;
-C 59 ; WX 300 ; N semicolon ; B 88 -115 292 499 ;
-C 60 ; WX 600 ; N less ; B 79 49 588 599 ;
-C 61 ; WX 600 ; N equal ; B 91 212 595 488 ;
-C 62 ; WX 600 ; N greater ; B 93 49 602 599 ;
-C 63 ; WX 540 ; N question ; B 114 -13 604 694 ;
-C 64 ; WX 780 ; N at ; B 102 -13 802 700 ;
-C 65 ; WX 700 ; N A ; B -25 0 720 681 ;
-C 66 ; WX 720 ; N B ; B 21 0 746 681 ;
-C 67 ; WX 720 ; N C ; B 88 -13 746 694 ;
-C 68 ; WX 740 ; N D ; B 21 0 782 681 ;
-C 69 ; WX 680 ; N E ; B 21 0 736 681 ;
-C 70 ; WX 620 ; N F ; B 21 0 743 681 ;
-C 71 ; WX 760 ; N G ; B 88 -13 813 694 ;
-C 72 ; WX 800 ; N H ; B 21 0 888 681 ;
-C 73 ; WX 320 ; N I ; B 21 0 412 681 ;
-C 74 ; WX 560 ; N J ; B -2 -13 666 681 ;
-C 75 ; WX 720 ; N K ; B 21 0 804 681 ;
-C 76 ; WX 580 ; N L ; B 21 0 656 681 ;
-C 77 ; WX 860 ; N M ; B 18 0 956 681 ;
-C 78 ; WX 720 ; N N ; B 18 0 823 681 ;
-C 79 ; WX 760 ; N O ; B 88 -13 799 694 ;
-C 80 ; WX 600 ; N P ; B 21 0 681 681 ;
-C 81 ; WX 780 ; N Q ; B 61 -191 812 694 ;
-C 82 ; WX 700 ; N R ; B 21 0 736 681 ;
-C 83 ; WX 640 ; N S ; B 61 -13 668 694 ;
-C 84 ; WX 600 ; N T ; B 50 0 725 681 ;
-C 85 ; WX 720 ; N U ; B 118 -13 842 681 ;
-C 86 ; WX 680 ; N V ; B 87 0 815 681 ;
-C 87 ; WX 960 ; N W ; B 87 0 1095 681 ;
-C 88 ; WX 700 ; N X ; B -25 0 815 681 ;
-C 89 ; WX 660 ; N Y ; B 87 0 809 681 ;
-C 90 ; WX 580 ; N Z ; B 8 0 695 681 ;
-C 91 ; WX 260 ; N bracketleft ; B 56 -121 351 715 ;
-C 92 ; WX 600 ; N backslash ; B 84 0 542 717 ;
-C 93 ; WX 260 ; N bracketright ; B 15 -120 309 715 ;
-C 94 ; WX 600 ; N asciicircum ; B 97 318 599 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -155 500 -95 ;
-C 96 ; WX 280 ; N quoteleft ; B 191 466 330 694 ;
-C 97 ; WX 620 ; N a ; B 71 -9 686 495 ;
-C 98 ; WX 600 ; N b ; B 88 -9 621 715 ;
-C 99 ; WX 480 ; N c ; B 65 -9 522 495 ;
-C 100 ; WX 640 ; N d ; B 65 -9 695 715 ;
-C 101 ; WX 540 ; N e ; B 65 -9 575 495 ;
-C 102 ; WX 340 ; N f ; B -160 -206 557 728 ;
-C 103 ; WX 560 ; N g ; B 4 -221 581 495 ;
-C 104 ; WX 620 ; N h ; B 88 -9 689 715 ;
-C 105 ; WX 280 ; N i ; B 88 -9 351 666 ;
-C 106 ; WX 280 ; N j ; B -200 -221 308 665 ;
-C 107 ; WX 600 ; N k ; B 88 -9 657 715 ;
-C 108 ; WX 280 ; N l ; B 100 -9 342 715 ;
-C 109 ; WX 880 ; N m ; B 88 -9 952 495 ;
-C 110 ; WX 620 ; N n ; B 88 -9 673 495 ;
-C 111 ; WX 540 ; N o ; B 65 -9 572 495 ;
-C 112 ; WX 600 ; N p ; B -24 -212 620 495 ;
-C 113 ; WX 560 ; N q ; B 65 -212 584 495 ;
-C 114 ; WX 400 ; N r ; B 88 0 481 495 ;
-C 115 ; WX 540 ; N s ; B 65 -9 547 495 ;
-C 116 ; WX 340 ; N t ; B 88 -9 411 665 ;
-C 117 ; WX 620 ; N u ; B 88 -9 686 486 ;
-C 118 ; WX 540 ; N v ; B 88 -9 562 499 ;
-C 119 ; WX 880 ; N w ; B 88 -9 893 499 ;
-C 120 ; WX 540 ; N x ; B 9 -13 626 499 ;
-C 121 ; WX 600 ; N y ; B 60 -221 609 486 ;
-C 122 ; WX 520 ; N z ; B 38 -9 561 495 ;
-C 123 ; WX 360 ; N braceleft ; B 125 -155 439 750 ;
-C 124 ; WX 600 ; N bar ; B 294 0 372 722 ;
-C 125 ; WX 380 ; N braceright ; B 15 -155 330 750 ;
-C 126 ; WX 600 ; N asciitilde ; B 91 152 595 332 ;
-C 161 ; WX 320 ; N exclamdown ; B 73 -212 301 494 ;
-C 162 ; WX 620 ; N cent ; B 148 -29 596 715 ;
-C 163 ; WX 620 ; N sterling ; B 4 -13 702 694 ;
-C 164 ; WX 20 ; N fraction ; B -228 0 323 681 ;
-C 165 ; WX 620 ; N yen ; B 71 0 735 681 ;
-C 166 ; WX 620 ; N florin ; B -26 -206 692 728 ;
-C 167 ; WX 620 ; N section ; B 38 -181 638 694 ;
-C 168 ; WX 620 ; N currency ; B 100 101 605 602 ;
-C 169 ; WX 200 ; N quotesingle ; B 99 462 247 694 ;
-C 170 ; WX 440 ; N quotedblleft ; B 191 466 493 694 ;
-C 171 ; WX 300 ; N guillemotleft ; B 70 99 313 406 ;
-C 172 ; WX 180 ; N guilsinglleft ; B 75 99 208 400 ;
-C 173 ; WX 180 ; N guilsinglright ; B 70 97 203 403 ;
-C 174 ; WX 640 ; N fi ; B -159 -205 709 728 ;
-C 175 ; WX 660 ; N fl ; B -159 -205 713 728 ;
-C 177 ; WX 500 ; N endash ; B 33 232 561 285 ;
-C 178 ; WX 620 ; N dagger ; B 192 -166 570 694 ;
-C 179 ; WX 620 ; N daggerdbl ; B 144 -135 566 694 ;
-C 180 ; WX 300 ; N periodcentered ; B 137 229 272 364 ;
-C 182 ; WX 620 ; N paragraph ; B 112 0 718 675 ;
-C 183 ; WX 460 ; N bullet ; B 100 213 444 557 ;
-C 184 ; WX 320 ; N quotesinglbase ; B 87 -115 226 112 ;
-C 185 ; WX 480 ; N quotedblbase ; B 87 -116 390 112 ;
-C 186 ; WX 440 ; N quotedblright ; B 148 466 451 694 ;
-C 187 ; WX 300 ; N guillemotright ; B 60 97 303 403 ;
-C 188 ; WX 1000 ; N ellipsis ; B 99 -13 900 122 ;
-C 189 ; WX 1180 ; N perthousand ; B 56 -8 1199 689 ;
-C 191 ; WX 540 ; N questiondown ; B 18 -212 508 496 ;
-C 193 ; WX 340 ; N grave ; B 182 538 377 689 ;
-C 194 ; WX 320 ; N acute ; B 178 538 373 689 ;
-C 195 ; WX 440 ; N circumflex ; B 176 541 479 666 ;
-C 196 ; WX 440 ; N tilde ; B 180 569 488 652 ;
-C 197 ; WX 440 ; N macron ; B 178 581 484 638 ;
-C 198 ; WX 440 ; N breve ; B 191 553 500 661 ;
-C 199 ; WX 260 ; N dotaccent ; B 169 552 290 673 ;
-C 200 ; WX 420 ; N dieresis ; B 185 552 467 672 ;
-C 202 ; WX 300 ; N ring ; B 178 534 334 691 ;
-C 203 ; WX 320 ; N cedilla ; B 45 -182 240 0 ;
-C 205 ; WX 340 ; N hungarumlaut ; B 167 537 402 718 ;
-C 206 ; WX 260 ; N ogonek ; B 51 -169 184 0 ;
-C 207 ; WX 440 ; N caron ; B 178 541 481 666 ;
-C 208 ; WX 1000 ; N emdash ; B 33 232 1061 285 ;
-C 225 ; WX 1220 ; N AE ; B -45 0 1269 681 ;
-C 227 ; WX 440 ; N ordfeminine ; B 94 304 513 694 ;
-C 232 ; WX 580 ; N Lslash ; B 21 0 656 681 ;
-C 233 ; WX 760 ; N Oslash ; B 88 -95 799 778 ;
-C 234 ; WX 1180 ; N OE ; B 88 -13 1237 694 ;
-C 235 ; WX 400 ; N ordmasculine ; B 94 304 455 694 ;
-C 241 ; WX 880 ; N ae ; B 71 -9 918 495 ;
-C 245 ; WX 280 ; N dotlessi ; B 88 -9 351 486 ;
-C 248 ; WX 340 ; N lslash ; B 50 -9 398 715 ;
-C 249 ; WX 540 ; N oslash ; B 65 -49 571 533 ;
-C 250 ; WX 900 ; N oe ; B 65 -9 948 495 ;
-C 251 ; WX 620 ; N germandbls ; B -121 -110 653 700 ;
-C -1 ; WX 720 ; N Udieresis ; B 118 -13 842 859 ;
-C -1 ; WX 720 ; N Uacute ; B 118 -13 842 876 ;
-C -1 ; WX 640 ; N Scedilla ; B 61 -182 668 694 ;
-C -1 ; WX 600 ; N Tcaron ; B 50 0 725 853 ;
-C -1 ; WX 640 ; N Scaron ; B 61 -13 668 853 ;
-C -1 ; WX 700 ; N Rcaron ; B 21 0 736 853 ;
-C -1 ; WX 700 ; N Racute ; B 21 0 736 876 ;
-C -1 ; WX 640 ; N Sacute ; B 61 -13 668 876 ;
-C -1 ; WX 760 ; N Otilde ; B 88 -13 799 839 ;
-C -1 ; WX 620 ; N ucircumflex ; B 88 -9 686 666 ;
-C -1 ; WX 760 ; N Ohungarumlaut ; B 88 -13 799 905 ;
-C -1 ; WX 720 ; N Uhungarumlaut ; B 118 -13 842 905 ;
-C -1 ; WX 660 ; N Yacute ; B 87 0 809 876 ;
-C -1 ; WX 740 ; N Eth ; B 21 0 782 681 ;
-C -1 ; WX 740 ; N Dcroat ; B 21 0 782 681 ;
-C -1 ; WX 580 ; N Zacute ; B 8 0 695 876 ;
-C -1 ; WX 720 ; N Uring ; B 118 -13 842 878 ;
-C -1 ; WX 560 ; N gbreve ; B 4 -221 581 661 ;
-C -1 ; WX 540 ; N eogonek ; B 65 -169 575 495 ;
-C -1 ; WX 540 ; N edotaccent ; B 65 -9 575 673 ;
-C -1 ; WX 540 ; N ecaron ; B 65 -9 575 666 ;
-C -1 ; WX 720 ; N Ugrave ; B 118 -13 842 876 ;
-C -1 ; WX 600 ; N Thorn ; B 21 0 656 681 ;
-C -1 ; WX 540 ; N eacute ; B 65 -9 575 689 ;
-C -1 ; WX 540 ; N edieresis ; B 65 -9 575 672 ;
-C -1 ; WX 730 ; N dcaron ; B 65 -9 790 723 ;
-C -1 ; WX 480 ; N ccedilla ; B 65 -182 522 495 ;
-C -1 ; WX 480 ; N ccaron ; B 65 -9 541 666 ;
-C -1 ; WX 480 ; N cacute ; B 65 -9 533 689 ;
-C -1 ; WX 620 ; N aogonek ; B 71 -169 686 495 ;
-C -1 ; WX 620 ; N aring ; B 71 -9 686 691 ;
-C -1 ; WX 620 ; N atilde ; B 71 -9 686 652 ;
-C -1 ; WX 620 ; N abreve ; B 71 -9 686 661 ;
-C -1 ; WX 540 ; N egrave ; B 65 -9 575 689 ;
-C -1 ; WX 620 ; N agrave ; B 71 -9 686 689 ;
-C -1 ; WX 620 ; N aacute ; B 71 -9 686 689 ;
-C -1 ; WX 620 ; N adieresis ; B 71 -9 686 672 ;
-C -1 ; WX 720 ; N Uogonek ; B 118 -169 842 681 ;
-C -1 ; WX 620 ; N ugrave ; B 88 -9 686 689 ;
-C -1 ; WX 620 ; N uacute ; B 88 -9 686 689 ;
-C -1 ; WX 620 ; N udieresis ; B 88 -9 686 672 ;
-C -1 ; WX 340 ; N tcaron ; B 88 -9 460 723 ;
-C -1 ; WX 540 ; N scommaaccent ; B 65 -279 547 495 ;
-C -1 ; WX 580 ; N Zcaron ; B 8 0 695 853 ;
-C -1 ; WX 540 ; N ecircumflex ; B 65 -9 575 666 ;
-C -1 ; WX 720 ; N Ucircumflex ; B 118 -13 842 853 ;
-C -1 ; WX 620 ; N acircumflex ; B 71 -9 686 666 ;
-C -1 ; WX 580 ; N Zdotaccent ; B 8 0 695 859 ;
-C -1 ; WX 540 ; N scaron ; B 65 -9 547 666 ;
-C -1 ; WX 700 ; N Amacron ; B -25 0 720 825 ;
-C -1 ; WX 540 ; N sacute ; B 65 -9 547 689 ;
-C -1 ; WX 600 ; N Tcommaaccent ; B 50 -281 725 681 ;
-C -1 ; WX 660 ; N Ydieresis ; B 87 0 809 859 ;
-C -1 ; WX 600 ; N thorn ; B -24 -212 620 715 ;
-C -1 ; WX 680 ; N Emacron ; B 21 0 736 825 ;
-C -1 ; WX 760 ; N Ograve ; B 88 -13 799 876 ;
-C -1 ; WX 760 ; N Oacute ; B 88 -13 799 876 ;
-C -1 ; WX 760 ; N Odieresis ; B 88 -13 799 859 ;
-C -1 ; WX 720 ; N Ntilde ; B 18 0 823 839 ;
-C -1 ; WX 720 ; N Ncaron ; B 18 0 823 853 ;
-C -1 ; WX 720 ; N Nacute ; B 18 0 823 876 ;
-C -1 ; WX 580 ; N Lcaron ; B 21 0 680 694 ;
-C -1 ; WX 580 ; N Lacute ; B 21 0 656 876 ;
-C -1 ; WX 320 ; N Idotaccent ; B 21 0 412 859 ;
-C -1 ; WX 400 ; N racute ; B 88 0 481 689 ;
-C -1 ; WX 320 ; N Icircumflex ; B 21 0 419 853 ;
-C -1 ; WX 540 ; N ohungarumlaut ; B 65 -9 572 718 ;
-C -1 ; WX 540 ; N otilde ; B 65 -9 572 652 ;
-C -1 ; WX 620 ; N Euro ; B 61 -13 685 694 ;
-C -1 ; WX 540 ; N ocircumflex ; B 65 -9 572 666 ;
-C -1 ; WX 372 ; N onesuperior ; B 114 273 339 681 ;
-C -1 ; WX 372 ; N twosuperior ; B 68 273 439 689 ;
-C -1 ; WX 372 ; N threesuperior ; B 70 265 439 689 ;
-C -1 ; WX 320 ; N Igrave ; B 21 0 412 876 ;
-C -1 ; WX 320 ; N Iacute ; B 21 0 412 876 ;
-C -1 ; WX 320 ; N Imacron ; B 21 0 454 825 ;
-C -1 ; WX 320 ; N Iogonek ; B 21 -169 412 681 ;
-C -1 ; WX 320 ; N Idieresis ; B 21 0 417 859 ;
-C -1 ; WX 760 ; N Gbreve ; B 88 -13 813 848 ;
-C -1 ; WX 720 ; N Umacron ; B 118 -13 842 825 ;
-C -1 ; WX 720 ; N Kcommaaccent ; B 21 -281 804 681 ;
-C -1 ; WX 540 ; N ograve ; B 65 -9 572 689 ;
-C -1 ; WX 640 ; N Scommaaccent ; B 61 -281 668 694 ;
-C -1 ; WX 680 ; N Eogonek ; B 21 -169 736 681 ;
-C -1 ; WX 540 ; N oacute ; B 65 -9 572 689 ;
-C -1 ; WX 680 ; N Edotaccent ; B 21 0 736 859 ;
-C -1 ; WX 280 ; N iogonek ; B 88 -169 351 666 ;
-C -1 ; WX 560 ; N gcommaaccent ; B 4 -221 581 768 ;
-C -1 ; WX 540 ; N odieresis ; B 65 -9 572 672 ;
-C -1 ; WX 620 ; N ntilde ; B 88 -9 673 652 ;
-C -1 ; WX 620 ; N ncaron ; B 88 -9 673 666 ;
-C -1 ; WX 680 ; N Ecaron ; B 21 0 736 853 ;
-C -1 ; WX 680 ; N Ecircumflex ; B 21 0 736 853 ;
-C -1 ; WX 540 ; N scedilla ; B 65 -182 547 495 ;
-C -1 ; WX 400 ; N rcaron ; B 88 0 481 666 ;
-C -1 ; WX 680 ; N Egrave ; B 21 0 736 876 ;
-C -1 ; WX 680 ; N Eacute ; B 21 0 736 876 ;
-C -1 ; WX 760 ; N Gcommaaccent ; B 88 -281 813 694 ;
-C -1 ; WX 700 ; N Rcommaaccent ; B 21 -281 736 681 ;
-C -1 ; WX 680 ; N Edieresis ; B 21 0 736 859 ;
-C -1 ; WX 620 ; N nacute ; B 88 -9 673 689 ;
-C -1 ; WX 620 ; N uogonek ; B 88 -169 686 486 ;
-C -1 ; WX 620 ; N umacron ; B 88 -9 686 638 ;
-C -1 ; WX 740 ; N Dcaron ; B 21 0 782 853 ;
-C -1 ; WX 380 ; N lcaron ; B 100 -9 440 723 ;
-C -1 ; WX 720 ; N Ccaron ; B 88 -13 746 853 ;
-C -1 ; WX 720 ; N Cacute ; B 88 -13 746 876 ;
-C -1 ; WX 720 ; N Ccedilla ; B 88 -182 746 694 ;
-C -1 ; WX 400 ; N degree ; B 120 380 420 686 ;
-C -1 ; WX 700 ; N Aogonek ; B -25 -169 720 681 ;
-C -1 ; WX 600 ; N minus ; B 91 310 595 390 ;
-C -1 ; WX 600 ; N multiply ; B 91 100 595 604 ;
-C -1 ; WX 600 ; N divide ; B 91 88 595 612 ;
-C -1 ; WX 700 ; N Aring ; B -25 0 720 878 ;
-C -1 ; WX 980 ; N trademark ; B 69 273 965 681 ;
-C -1 ; WX 400 ; N rcommaaccent ; B 50 -279 481 495 ;
-C -1 ; WX 280 ; N lacute ; B 100 -9 353 876 ;
-C -1 ; WX 540 ; N omacron ; B 65 -9 572 638 ;
-C -1 ; WX 700 ; N Atilde ; B -25 0 720 839 ;
-C -1 ; WX 280 ; N icircumflex ; B 76 -9 379 666 ;
-C -1 ; WX 280 ; N igrave ; B 88 -9 351 689 ;
-C -1 ; WX 620 ; N ncommaaccent ; B 88 -279 673 495 ;
-C -1 ; WX 280 ; N lcommaaccent ; B 40 -279 342 715 ;
-C -1 ; WX 600 ; N plusminus ; B 91 0 595 594 ;
-C -1 ; WX 930 ; N onehalf ; B 91 0 925 681 ;
-C -1 ; WX 930 ; N onequarter ; B 91 0 913 681 ;
-C -1 ; WX 930 ; N threequarters ; B 99 0 913 689 ;
-C -1 ; WX 280 ; N iacute ; B 88 -9 351 689 ;
-C -1 ; WX 700 ; N Abreve ; B -25 0 720 848 ;
-C -1 ; WX 600 ; N kcommaaccent ; B 88 -279 657 715 ;
-C -1 ; WX 760 ; N Omacron ; B 88 -13 799 825 ;
-C -1 ; WX 280 ; N imacron ; B 88 -9 404 638 ;
-C -1 ; WX 540 ; N emacron ; B 65 -9 575 638 ;
-C -1 ; WX 620 ; N amacron ; B 71 -9 686 638 ;
-C -1 ; WX 340 ; N tcommaaccent ; B 70 -279 411 665 ;
-C -1 ; WX 600 ; N ydieresis ; B 60 -221 609 672 ;
-C -1 ; WX 520 ; N zdotaccent ; B 38 -9 561 673 ;
-C -1 ; WX 520 ; N zcaron ; B 38 -9 561 666 ;
-C -1 ; WX 520 ; N zacute ; B 38 -9 561 689 ;
-C -1 ; WX 600 ; N yacute ; B 60 -221 609 689 ;
-C -1 ; WX 620 ; N uhungarumlaut ; B 88 -9 686 718 ;
-C -1 ; WX 540 ; N eth ; B 65 -9 642 717 ;
-C -1 ; WX 620 ; N uring ; B 88 -9 686 691 ;
-C -1 ; WX 760 ; N Ocircumflex ; B 88 -13 799 853 ;
-C -1 ; WX 260 ; N commaaccent ; B 30 -279 170 -51 ;
-C -1 ; WX 740 ; N copyright ; B 84 0 784 700 ;
-C -1 ; WX 740 ; N registered ; B 84 0 784 700 ;
-C -1 ; WX 700 ; N Acircumflex ; B -25 0 720 853 ;
-C -1 ; WX 280 ; N idieresis ; B 88 -9 377 672 ;
-C -1 ; WX 494 ; N lozenge ; B 92 0 540 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 600 ; N notequal ; B 91 101 595 610 ;
-C -1 ; WX 549 ; N radical ; B 50 -83 591 930 ;
-C -1 ; WX 700 ; N Agrave ; B -25 0 720 876 ;
-C -1 ; WX 700 ; N Aacute ; B -25 0 720 876 ;
-C -1 ; WX 600 ; N lessequal ; B 85 0 589 649 ;
-C -1 ; WX 600 ; N greaterequal ; B 91 0 595 649 ;
-C -1 ; WX 600 ; N logicalnot ; B 91 80 595 369 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 720 ; N Ncommaaccent ; B 18 -281 823 681 ;
-C -1 ; WX 640 ; N dcroat ; B 65 -9 724 715 ;
-C -1 ; WX 600 ; N brokenbar ; B 294 0 372 722 ;
-C -1 ; WX 580 ; N Lcommaaccent ; B 21 -281 656 681 ;
-C -1 ; WX 700 ; N Adieresis ; B -25 0 720 859 ;
-C -1 ; WX 620 ; N mu ; B 53 -219 686 486 ;
-C -1 ; WX 300 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -52
-KPX A Ccedilla -51
-KPX A G -50
-KPX A O -52
-KPX A Odieresis -52
-KPX A Q -49
-KPX A T -37
-KPX A U -50
-KPX A Uacute -50
-KPX A Ucircumflex -50
-KPX A Udieresis -50
-KPX A Ugrave -50
-KPX A V -90
-KPX A W -82
-KPX A Y -47
-KPX A a -32
-KPX A b -15
-KPX A c -36
-KPX A ccedilla -36
-KPX A comma -11
-KPX A d -28
-KPX A e -37
-KPX A g -30
-KPX A guillemotleft -29
-KPX A guilsinglleft -31
-KPX A hyphen -19
-KPX A o -35
-KPX A period -7
-KPX A q -28
-KPX A quotedblright -83
-KPX A quoteright -83
-KPX A t -26
-KPX A u -31
-KPX A v -32
-KPX A w -32
-KPX A y -35
-KPX Aacute C -53
-KPX Aacute G -52
-KPX Aacute O -54
-KPX Aacute Q -51
-KPX Aacute T -37
-KPX Aacute U -50
-KPX Aacute V -90
-KPX Aacute W -82
-KPX Aacute Y -47
-KPX Aacute a -32
-KPX Aacute b -15
-KPX Aacute c -36
-KPX Aacute comma -11
-KPX Aacute d -28
-KPX Aacute e -37
-KPX Aacute g -30
-KPX Aacute guillemotleft -29
-KPX Aacute guilsinglleft -31
-KPX Aacute hyphen -19
-KPX Aacute o -35
-KPX Aacute period -7
-KPX Aacute q -28
-KPX Aacute quoteright -84
-KPX Aacute t -26
-KPX Aacute u -31
-KPX Aacute v -32
-KPX Aacute w -32
-KPX Aacute y -35
-KPX Acircumflex C -53
-KPX Acircumflex G -52
-KPX Acircumflex O -54
-KPX Acircumflex Q -51
-KPX Acircumflex T -37
-KPX Acircumflex U -50
-KPX Acircumflex V -90
-KPX Acircumflex W -82
-KPX Acircumflex Y -47
-KPX Acircumflex comma -11
-KPX Acircumflex period -7
-KPX Adieresis C -53
-KPX Adieresis G -52
-KPX Adieresis O -54
-KPX Adieresis Q -51
-KPX Adieresis T -37
-KPX Adieresis U -50
-KPX Adieresis V -90
-KPX Adieresis W -82
-KPX Adieresis Y -47
-KPX Adieresis a -32
-KPX Adieresis b -15
-KPX Adieresis c -36
-KPX Adieresis comma -11
-KPX Adieresis d -28
-KPX Adieresis g -30
-KPX Adieresis guillemotleft -29
-KPX Adieresis guilsinglleft -31
-KPX Adieresis hyphen -19
-KPX Adieresis o -35
-KPX Adieresis period -7
-KPX Adieresis q -28
-KPX Adieresis quotedblright -84
-KPX Adieresis quoteright -84
-KPX Adieresis t -26
-KPX Adieresis u -31
-KPX Adieresis v -32
-KPX Adieresis w -32
-KPX Adieresis y -35
-KPX Agrave C -53
-KPX Agrave G -52
-KPX Agrave O -54
-KPX Agrave Q -51
-KPX Agrave T -37
-KPX Agrave U -50
-KPX Agrave V -90
-KPX Agrave W -82
-KPX Agrave Y -47
-KPX Agrave comma -11
-KPX Agrave period -7
-KPX Aring C -53
-KPX Aring G -52
-KPX Aring O -54
-KPX Aring Q -51
-KPX Aring T -37
-KPX Aring U -50
-KPX Aring V -90
-KPX Aring W -82
-KPX Aring Y -47
-KPX Aring a -32
-KPX Aring b -15
-KPX Aring c -36
-KPX Aring comma -11
-KPX Aring d -28
-KPX Aring e -37
-KPX Aring g -30
-KPX Aring guillemotleft -29
-KPX Aring guilsinglleft -31
-KPX Aring hyphen -19
-KPX Aring o -35
-KPX Aring period -7
-KPX Aring q -28
-KPX Aring quotedblright -84
-KPX Aring quoteright -84
-KPX Aring t -26
-KPX Aring u -31
-KPX Aring v -32
-KPX Aring w -32
-KPX Aring y -35
-KPX Atilde C -53
-KPX Atilde G -52
-KPX Atilde O -54
-KPX Atilde Q -51
-KPX Atilde T -37
-KPX Atilde U -50
-KPX Atilde V -90
-KPX Atilde W -82
-KPX Atilde Y -47
-KPX Atilde comma -11
-KPX Atilde period -7
-KPX B A -20
-KPX B AE -10
-KPX B Aacute -20
-KPX B Acircumflex -20
-KPX B Adieresis -20
-KPX B Aring -20
-KPX B Atilde -20
-KPX B O -9
-KPX B OE -10
-KPX B Oacute -9
-KPX B Ocircumflex -9
-KPX B Odieresis -9
-KPX B Ograve -9
-KPX B Oslash -8
-KPX B V -28
-KPX B W -28
-KPX B Y -28
-KPX C A -25
-KPX C AE -14
-KPX C Aacute -25
-KPX C Adieresis -25
-KPX C Aring -25
-KPX C H -17
-KPX C K -17
-KPX C O -12
-KPX C Oacute -12
-KPX C Odieresis -12
-KPX Ccedilla A -22
-KPX D A -42
-KPX D Aacute -42
-KPX D Acircumflex -42
-KPX D Adieresis -42
-KPX D Agrave -42
-KPX D Aring -42
-KPX D Atilde -42
-KPX D J 21
-KPX D T 16
-KPX D V -41
-KPX D W -33
-KPX D X -42
-KPX D Y -45
-KPX F A -69
-KPX F Aacute -69
-KPX F Acircumflex -69
-KPX F Adieresis -69
-KPX F Agrave -69
-KPX F Aring -69
-KPX F Atilde -69
-KPX F J -36
-KPX F O 12
-KPX F Odieresis 12
-KPX F a -37
-KPX F aacute -37
-KPX F adieresis -37
-KPX F ae -33
-KPX F aring -37
-KPX F comma -110
-KPX F e -43
-KPX F eacute -43
-KPX F hyphen -30
-KPX F i 21
-KPX F j 30
-KPX F o -30
-KPX F oacute -30
-KPX F odieresis -30
-KPX F oe -27
-KPX F oslash -30
-KPX F period -107
-KPX F r 26
-KPX F u 26
-KPX G A -4
-KPX G AE 5
-KPX G Aacute -4
-KPX G Acircumflex -4
-KPX G Adieresis -4
-KPX G Agrave -4
-KPX G Aring -4
-KPX G Atilde -4
-KPX G T -13
-KPX G V -40
-KPX G W -40
-KPX G Y -40
-KPX J A -50
-KPX J AE -39
-KPX J Adieresis -50
-KPX J Aring -50
-KPX K C -52
-KPX K G -50
-KPX K O -52
-KPX K OE -52
-KPX K Oacute -52
-KPX K Odieresis -52
-KPX K S 2
-KPX K T 5
-KPX K a -25
-KPX K adieresis -25
-KPX K ae -7
-KPX K aring -25
-KPX K e -29
-KPX K hyphen -49
-KPX K o -29
-KPX K oacute -29
-KPX K odieresis -29
-KPX K u -23
-KPX K udieresis -23
-KPX K y -28
-KPX L A 32
-KPX L AE 42
-KPX L Aacute 32
-KPX L Adieresis 32
-KPX L Aring 32
-KPX L C 15
-KPX L Ccedilla 15
-KPX L G 15
-KPX L O 15
-KPX L Oacute 15
-KPX L Ocircumflex 15
-KPX L Odieresis 15
-KPX L Ograve 15
-KPX L Otilde 15
-KPX L S 30
-KPX L T -50
-KPX L U 1
-KPX L Udieresis 1
-KPX L V -61
-KPX L W -52
-KPX L Y -59
-KPX L hyphen 52
-KPX L quotedblright -83
-KPX L quoteright -83
-KPX L u 0
-KPX L udieresis -4
-KPX L y -1
-KPX N A -16
-KPX N AE -5
-KPX N Aacute -16
-KPX N Adieresis -16
-KPX N Aring -16
-KPX N C -21
-KPX N Ccedilla -20
-KPX N G -19
-KPX N O -21
-KPX N Oacute -21
-KPX N Odieresis -21
-KPX N a -27
-KPX N aacute -28
-KPX N adieresis -28
-KPX N ae -41
-KPX N aring -28
-KPX N comma -32
-KPX N e -29
-KPX N eacute -31
-KPX N o -24
-KPX N oacute -26
-KPX N odieresis -26
-KPX N oslash -24
-KPX N period -29
-KPX N u -33
-KPX N udieresis -35
-KPX O A -49
-KPX O AE -38
-KPX O Aacute -49
-KPX O Adieresis -49
-KPX O Aring -49
-KPX O T 14
-KPX O V -44
-KPX O W -36
-KPX O X -46
-KPX O Y -49
-KPX Oacute A -49
-KPX Oacute T 14
-KPX Oacute V -44
-KPX Oacute W -36
-KPX Oacute Y -49
-KPX Ocircumflex T 14
-KPX Ocircumflex V -44
-KPX Ocircumflex Y -49
-KPX Odieresis A -49
-KPX Odieresis T 14
-KPX Odieresis V -44
-KPX Odieresis W -36
-KPX Odieresis X -46
-KPX Odieresis Y -49
-KPX Ograve T 14
-KPX Ograve V -44
-KPX Ograve Y -49
-KPX Oslash A -49
-KPX Otilde T 14
-KPX Otilde V -44
-KPX Otilde Y -49
-KPX P A -68
-KPX P AE -97
-KPX P Aacute -68
-KPX P Adieresis -68
-KPX P Aring -68
-KPX P J -28
-KPX P a -25
-KPX P aacute -25
-KPX P adieresis -25
-KPX P ae -30
-KPX P aring -25
-KPX P comma -103
-KPX P e -28
-KPX P eacute -28
-KPX P hyphen -14
-KPX P o -20
-KPX P oacute -20
-KPX P odieresis -20
-KPX P oe -17
-KPX P oslash -20
-KPX P period -101
-KPX R C -20
-KPX R Ccedilla -20
-KPX R G -19
-KPX R O -21
-KPX R OE -21
-KPX R Oacute -21
-KPX R Odieresis -21
-KPX R T 14
-KPX R U -21
-KPX R Udieresis -21
-KPX R V -25
-KPX R W -25
-KPX R Y -25
-KPX R a -24
-KPX R aacute -24
-KPX R adieresis -24
-KPX R ae -6
-KPX R aring -24
-KPX R e -28
-KPX R eacute -29
-KPX R hyphen -35
-KPX R o -23
-KPX R oacute -24
-KPX R odieresis -24
-KPX R oe -22
-KPX R u -15
-KPX R uacute -15
-KPX R udieresis -15
-KPX R y -11
-KPX S A -13
-KPX S AE -2
-KPX S Aacute -13
-KPX S Adieresis -13
-KPX S Aring -13
-KPX S T 13
-KPX S V -17
-KPX S W -17
-KPX S Y -17
-KPX S t -8
-KPX T A -36
-KPX T AE -26
-KPX T Aacute -36
-KPX T Acircumflex -36
-KPX T Adieresis -36
-KPX T Agrave -36
-KPX T Aring -36
-KPX T Atilde -36
-KPX T C 14
-KPX T G 15
-KPX T J -51
-KPX T O 13
-KPX T OE 11
-KPX T Oacute 13
-KPX T Ocircumflex 13
-KPX T Odieresis 13
-KPX T Ograve 13
-KPX T Oslash 14
-KPX T Otilde 13
-KPX T S 18
-KPX T V 33
-KPX T W 33
-KPX T Y 33
-KPX T a -53
-KPX T ae -52
-KPX T c -54
-KPX T colon -7
-KPX T comma -95
-KPX T e -69
-KPX T g -33
-KPX T guillemotleft -86
-KPX T guilsinglleft -89
-KPX T hyphen -75
-KPX T i -21
-KPX T j 8
-KPX T o -48
-KPX T oslash -48
-KPX T period -92
-KPX T r -15
-KPX T s -37
-KPX T semicolon -7
-KPX T u -102
-KPX T v -15
-KPX T w -15
-KPX T y 12
-KPX U A -42
-KPX U AE -31
-KPX U Aacute -42
-KPX U Acircumflex -42
-KPX U Adieresis -42
-KPX U Aring -42
-KPX U Atilde -42
-KPX U comma -39
-KPX U m -26
-KPX U n -26
-KPX U p -31
-KPX U period -36
-KPX U r -26
-KPX Uacute A -42
-KPX Uacute comma -39
-KPX Uacute m -26
-KPX Uacute n -26
-KPX Uacute p -31
-KPX Uacute period -36
-KPX Uacute r -26
-KPX Ucircumflex A -42
-KPX Udieresis A -42
-KPX Udieresis b 22
-KPX Udieresis comma -39
-KPX Udieresis m -26
-KPX Udieresis n -26
-KPX Udieresis p -31
-KPX Udieresis period -36
-KPX Udieresis r -26
-KPX Ugrave A -42
-KPX V A -99
-KPX V AE -106
-KPX V Aacute -99
-KPX V Acircumflex -99
-KPX V Adieresis -99
-KPX V Agrave -99
-KPX V Aring -99
-KPX V Atilde -99
-KPX V C -54
-KPX V G -51
-KPX V O -56
-KPX V Oacute -56
-KPX V Ocircumflex -56
-KPX V Odieresis -56
-KPX V Ograve -56
-KPX V Oslash -55
-KPX V Otilde -56
-KPX V S -22
-KPX V T 30
-KPX V a -84
-KPX V ae -99
-KPX V colon -85
-KPX V comma -116
-KPX V e -87
-KPX V g -77
-KPX V guillemotleft -70
-KPX V guilsinglleft -73
-KPX V hyphen -58
-KPX V i -25
-KPX V o -81
-KPX V oslash -81
-KPX V period -114
-KPX V r -50
-KPX V semicolon -85
-KPX V u -50
-KPX V y -45
-KPX W A -89
-KPX W AE -86
-KPX W Aacute -89
-KPX W Acircumflex -89
-KPX W Adieresis -89
-KPX W Agrave -89
-KPX W Aring -89
-KPX W Atilde -89
-KPX W C -49
-KPX W G -47
-KPX W O -49
-KPX W Oacute -49
-KPX W Ocircumflex -49
-KPX W Odieresis -49
-KPX W Ograve -49
-KPX W Oslash -48
-KPX W Otilde -49
-KPX W S -22
-KPX W T 30
-KPX W a -71
-KPX W ae -86
-KPX W colon -78
-KPX W comma -99
-KPX W e -73
-KPX W g -64
-KPX W guillemotleft -57
-KPX W guilsinglleft -59
-KPX W hyphen -45
-KPX W i -25
-KPX W o -68
-KPX W oslash -68
-KPX W period -96
-KPX W r -43
-KPX W semicolon -78
-KPX W u -43
-KPX W y -39
-KPX X C -52
-KPX X O -53
-KPX X Odieresis -53
-KPX X Q -50
-KPX X a -28
-KPX X e -33
-KPX X hyphen -57
-KPX X o -32
-KPX X u -27
-KPX X y -31
-KPX Y A -57
-KPX Y AE -46
-KPX Y Aacute -57
-KPX Y Acircumflex -57
-KPX Y Adieresis -57
-KPX Y Agrave -57
-KPX Y Aring -57
-KPX Y Atilde -57
-KPX Y C -47
-KPX Y G -44
-KPX Y O -49
-KPX Y Oacute -49
-KPX Y Ocircumflex -49
-KPX Y Odieresis -49
-KPX Y Ograve -49
-KPX Y Oslash -48
-KPX Y Otilde -49
-KPX Y S -15
-KPX Y T 37
-KPX Y a -103
-KPX Y ae -116
-KPX Y colon -102
-KPX Y comma -116
-KPX Y e -105
-KPX Y g -95
-KPX Y guillemotleft -101
-KPX Y guilsinglleft -103
-KPX Y hyphen -94
-KPX Y i -18
-KPX Y o -100
-KPX Y oslash -99
-KPX Y p -73
-KPX Y period -113
-KPX Y semicolon -102
-KPX Y u -68
-KPX Y v -68
-KPX Z v -6
-KPX Z y -4
-KPX a j -2
-KPX a quoteright -32
-KPX a v -7
-KPX a w -6
-KPX a y -7
-KPX aacute v -7
-KPX aacute w -6
-KPX aacute y -7
-KPX adieresis v -7
-KPX adieresis w -6
-KPX adieresis y -7
-KPX ae v -11
-KPX ae w -14
-KPX ae y -15
-KPX agrave v -7
-KPX agrave w -6
-KPX agrave y -7
-KPX aring v -7
-KPX aring w -6
-KPX aring y -7
-KPX b v -22
-KPX b w -22
-KPX b y -21
-KPX c h -26
-KPX c k -27
-KPX comma one -90
-KPX comma quotedblright -51
-KPX comma quoteright -51
-KPX e quoteright -7
-KPX e t -22
-KPX e v -12
-KPX e w -14
-KPX e x -1
-KPX e y -16
-KPX eacute v -12
-KPX eacute w -14
-KPX eacute y -16
-KPX ecircumflex v -12
-KPX ecircumflex w -14
-KPX ecircumflex y -16
-KPX eight four -12
-KPX eight one -97
-KPX eight seven -30
-KPX f a -38
-KPX f aacute -39
-KPX f adieresis -21
-KPX f ae -52
-KPX f aring -39
-KPX f e -40
-KPX f eacute -42
-KPX f f 17
-KPX f i 10
-KPX f j 31
-KPX f l 69
-KPX f o -35
-KPX f oacute -37
-KPX f odieresis -9
-KPX f oe -35
-KPX f oslash -35
-KPX f quoteright 44
-KPX f s -48
-KPX f t 7
-KPX five four -17
-KPX five one -117
-KPX five seven -68
-KPX four four -3
-KPX four one -86
-KPX four seven -67
-KPX g a -16
-KPX g adieresis -18
-KPX g ae -31
-KPX g aring -18
-KPX g e -18
-KPX g eacute -19
-KPX g l -23
-KPX g oacute -15
-KPX g odieresis -15
-KPX g r -21
-KPX guillemotright A -35
-KPX guillemotright AE -82
-KPX guillemotright Aacute -35
-KPX guillemotright Adieresis -35
-KPX guillemotright Aring -35
-KPX guillemotright T -91
-KPX guillemotright V -66
-KPX guillemotright W -56
-KPX guillemotright Y -93
-KPX guilsinglright A -25
-KPX guilsinglright AE -72
-KPX guilsinglright Aacute -25
-KPX guilsinglright Adieresis -25
-KPX guilsinglright Aring -25
-KPX guilsinglright T -81
-KPX guilsinglright V -56
-KPX guilsinglright W -46
-KPX guilsinglright Y -83
-KPX h quoteright -41
-KPX h y -7
-KPX hyphen A -16
-KPX hyphen AE -64
-KPX hyphen Aacute -16
-KPX hyphen Adieresis -16
-KPX hyphen Aring -16
-KPX hyphen T -70
-KPX hyphen V -44
-KPX hyphen W -34
-KPX hyphen Y -77
-KPX i T -6
-KPX i j 0
-KPX k a -17
-KPX k aacute -17
-KPX k adieresis -17
-KPX k ae -3
-KPX k aring -17
-KPX k comma -9
-KPX k e -19
-KPX k eacute -19
-KPX k g -14
-KPX k hyphen -74
-KPX k o -19
-KPX k oacute -19
-KPX k odieresis -19
-KPX k period -7
-KPX k s -3
-KPX k u 1
-KPX k udieresis 1
-KPX l v -9
-KPX l y -8
-KPX m p -1
-KPX m v -6
-KPX m w -5
-KPX m y -7
-KPX n T -35
-KPX n p -11
-KPX n quoteright -37
-KPX n v -14
-KPX n w -13
-KPX n y -14
-KPX nine four -20
-KPX nine one -100
-KPX nine seven -33
-KPX o T -65
-KPX o quoteright -19
-KPX o t -16
-KPX o v -18
-KPX o w -17
-KPX o x -17
-KPX o y -16
-KPX oacute v -18
-KPX oacute w -17
-KPX oacute y -16
-KPX ocircumflex t -17
-KPX odieresis t -17
-KPX odieresis v -18
-KPX odieresis w -17
-KPX odieresis x -17
-KPX odieresis y -16
-KPX ograve v -18
-KPX ograve w -17
-KPX ograve y -16
-KPX one comma -85
-KPX one eight -87
-KPX one five -88
-KPX one four -113
-KPX one nine -86
-KPX one one -113
-KPX one period -83
-KPX one seven -120
-KPX one six -89
-KPX one three -81
-KPX one two -69
-KPX one zero -85
-KPX p t -21
-KPX p y -21
-KPX period one -92
-KPX period quotedblright -49
-KPX period quoteright -49
-KPX q c -12
-KPX q u -18
-KPX quotedblbase A -10
-KPX quotedblbase AE 0
-KPX quotedblbase T -93
-KPX quotedblbase V -108
-KPX quotedblbase W -94
-KPX quotedblbase Y -103
-KPX quotedblleft A -83
-KPX quotedblleft AE -204
-KPX quotedblleft Aacute -84
-KPX quotedblleft Adieresis -84
-KPX quotedblleft Aring -84
-KPX quotedblleft T 24
-KPX quotedblleft V 11
-KPX quotedblleft W 14
-KPX quotedblleft Y 6
-KPX quotedblright A -107
-KPX quotedblright AE -231
-KPX quotedblright Aacute -108
-KPX quotedblright Adieresis -108
-KPX quotedblright Aring -108
-KPX quotedblright T 0
-KPX quotedblright V -10
-KPX quotedblright W -7
-KPX quotedblright Y -13
-KPX quoteleft A -85
-KPX quoteleft AE -206
-KPX quoteleft Aacute -86
-KPX quoteleft Adieresis -86
-KPX quoteleft Aring -86
-KPX quoteleft T 23
-KPX quoteleft V 9
-KPX quoteleft W 13
-KPX quoteleft Y 5
-KPX quoteright A -109
-KPX quoteright AE -232
-KPX quoteright Aacute -110
-KPX quoteright Adieresis -110
-KPX quoteright Aring -110
-KPX quoteright comma -85
-KPX quoteright d -62
-KPX quoteright o -56
-KPX quoteright period -82
-KPX quoteright r -44
-KPX quoteright s -55
-KPX quoteright t -42
-KPX quoteright v -43
-KPX quoteright w -44
-KPX quoteright y -40
-KPX r a -27
-KPX r aacute -27
-KPX r acircumflex -27
-KPX r adieresis -27
-KPX r ae -28
-KPX r agrave -27
-KPX r aring -27
-KPX r c -25
-KPX r ccedilla -25
-KPX r colon -18
-KPX r comma -99
-KPX r d -24
-KPX r e -33
-KPX r eacute -33
-KPX r ecircumflex -33
-KPX r egrave -33
-KPX r f -6
-KPX r g -16
-KPX r h -26
-KPX r hyphen -71
-KPX r i 13
-KPX r j 11
-KPX r k -26
-KPX r l -22
-KPX r m 13
-KPX r n 13
-KPX r o -21
-KPX r oacute -21
-KPX r ocircumflex -21
-KPX r odieresis -21
-KPX r oe -19
-KPX r ograve -21
-KPX r oslash -22
-KPX r p 7
-KPX r period -97
-KPX r q -21
-KPX r quoteright -1
-KPX r r 13
-KPX r s -19
-KPX r semicolon -18
-KPX r t 13
-KPX r u 13
-KPX r v 13
-KPX r w 13
-KPX r x -6
-KPX r y 15
-KPX r z -1
-KPX s quoteright -31
-KPX s t -34
-KPX seven colon -103
-KPX seven comma -129
-KPX seven eight -63
-KPX seven five -48
-KPX seven four -117
-KPX seven one -83
-KPX seven period -126
-KPX seven seven -42
-KPX seven six -76
-KPX seven three -50
-KPX seven two -56
-KPX six four -10
-KPX six one -94
-KPX six seven -36
-KPX t S 1
-KPX t a -14
-KPX t aacute -14
-KPX t adieresis -14
-KPX t ae -2
-KPX t aring -14
-KPX t colon -8
-KPX t e -17
-KPX t eacute -17
-KPX t h -12
-KPX t o -16
-KPX t oacute -16
-KPX t odieresis -16
-KPX t quoteright -18
-KPX t semicolon -10
-KPX three four -20
-KPX three one -108
-KPX three seven -46
-KPX two four -22
-KPX two one -91
-KPX two seven -39
-KPX u quoteright -30
-KPX v a -11
-KPX v aacute -11
-KPX v acircumflex -11
-KPX v adieresis -11
-KPX v ae -30
-KPX v agrave -11
-KPX v aring -11
-KPX v atilde -11
-KPX v c -9
-KPX v colon -37
-KPX v comma -42
-KPX v e -13
-KPX v eacute -13
-KPX v ecircumflex -13
-KPX v egrave -13
-KPX v g -6
-KPX v hyphen 17
-KPX v l -20
-KPX v o -8
-KPX v oacute -8
-KPX v odieresis -8
-KPX v ograve -8
-KPX v oslash -7
-KPX v period -39
-KPX v s -25
-KPX v semicolon -39
-KPX w a -17
-KPX w aacute -17
-KPX w acircumflex -17
-KPX w adieresis -17
-KPX w ae -36
-KPX w agrave -17
-KPX w aring -17
-KPX w atilde -17
-KPX w c -15
-KPX w colon -42
-KPX w comma -48
-KPX w e -18
-KPX w eacute -18
-KPX w ecircumflex -18
-KPX w egrave -18
-KPX w g -11
-KPX w hyphen 11
-KPX w l -25
-KPX w o -14
-KPX w oacute -14
-KPX w odieresis -14
-KPX w ograve -14
-KPX w oslash -13
-KPX w period -45
-KPX w s -30
-KPX w semicolon -45
-KPX x a -12
-KPX x c -15
-KPX x e -15
-KPX x eacute -15
-KPX x o -14
-KPX x q -10
-KPX y a -22
-KPX y aacute -22
-KPX y acircumflex -22
-KPX y adieresis -22
-KPX y ae -37
-KPX y agrave -22
-KPX y aring -22
-KPX y atilde -22
-KPX y c -20
-KPX y colon -42
-KPX y comma -32
-KPX y e -23
-KPX y eacute -23
-KPX y ecircumflex -23
-KPX y egrave -23
-KPX y g -15
-KPX y hyphen -3
-KPX y l -28
-KPX y o -19
-KPX y oacute -19
-KPX y odieresis -19
-KPX y ograve -19
-KPX y oslash -18
-KPX y period -29
-KPX y s -32
-KPX y semicolon -45
-KPX zero four -14
-KPX zero one -99
-KPX zero seven -38
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/b018032l.pfb b/Master/xemtex/gsfonts/b018032l.pfb
deleted file mode 100644
index 49605979b2e..00000000000
--- a/Master/xemtex/gsfonts/b018032l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018032l.pfm b/Master/xemtex/gsfonts/b018032l.pfm
deleted file mode 100644
index 92d1cdf3749..00000000000
--- a/Master/xemtex/gsfonts/b018032l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018035l.afm b/Master/xemtex/gsfonts/b018035l.afm
deleted file mode 100644
index c6e0cc1ed14..00000000000
--- a/Master/xemtex/gsfonts/b018035l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWBookmanL-DemiBoldItal
-FullName URW Bookman L Demi Bold Italic
-FamilyName URW Bookman L
-Weight Bold
-ItalicAngle -10.0
-IsFixedPitch false
-UnderlinePosition -125
-UnderlineThickness 60
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -231 -332 1333 927
-CapHeight 681
-XHeight 511
-Descender -213
-Ascender 732
-StartCharMetrics 316
-C 32 ; WX 340 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 320 ; N exclam ; B 86 -13 366 694 ;
-C 34 ; WX 380 ; N quotedbl ; B 140 352 507 681 ;
-C 35 ; WX 680 ; N numbersign ; B 157 0 649 681 ;
-C 36 ; WX 680 ; N dollar ; B 45 -164 697 791 ;
-C 37 ; WX 880 ; N percent ; B 106 -8 899 689 ;
-C 38 ; WX 980 ; N ampersand ; B 48 -13 1016 694 ;
-C 39 ; WX 320 ; N quoteright ; B 171 416 349 694 ;
-C 40 ; WX 260 ; N parenleft ; B 31 -145 388 710 ;
-C 41 ; WX 260 ; N parenright ; B -35 -148 322 710 ;
-C 42 ; WX 460 ; N asterisk ; B 126 345 508 699 ;
-C 43 ; WX 600 ; N plus ; B 91 107 595 593 ;
-C 44 ; WX 340 ; N comma ; B 100 -130 298 179 ;
-C 45 ; WX 280 ; N hyphen ; B 59 224 319 314 ;
-C 46 ; WX 340 ; N period ; B 106 -13 296 172 ;
-C 47 ; WX 360 ; N slash ; B 9 -145 502 710 ;
-C 48 ; WX 680 ; N zero ; B 87 -13 703 694 ;
-C 49 ; WX 680 ; N one ; B 123 0 565 681 ;
-C 50 ; WX 680 ; N two ; B 67 0 674 694 ;
-C 51 ; WX 680 ; N three ; B 72 -13 683 694 ;
-C 52 ; WX 680 ; N four ; B 63 0 708 681 ;
-C 53 ; WX 680 ; N five ; B 78 -13 669 681 ;
-C 54 ; WX 680 ; N six ; B 88 -13 704 694 ;
-C 55 ; WX 680 ; N seven ; B 123 0 739 681 ;
-C 56 ; WX 680 ; N eight ; B 68 -13 686 694 ;
-C 57 ; WX 680 ; N nine ; B 71 -13 712 694 ;
-C 58 ; WX 340 ; N colon ; B 106 -13 356 520 ;
-C 59 ; WX 340 ; N semicolon ; B 100 -130 352 520 ;
-C 60 ; WX 620 ; N less ; B 79 56 588 643 ;
-C 61 ; WX 600 ; N equal ; B 91 198 595 502 ;
-C 62 ; WX 620 ; N greater ; B 89 56 598 643 ;
-C 63 ; WX 620 ; N question ; B 145 -13 668 694 ;
-C 64 ; WX 780 ; N at ; B 80 -13 790 700 ;
-C 65 ; WX 720 ; N A ; B -27 0 769 681 ;
-C 66 ; WX 720 ; N B ; B 14 0 762 681 ;
-C 67 ; WX 700 ; N C ; B 78 -13 754 694 ;
-C 68 ; WX 760 ; N D ; B 14 0 805 681 ;
-C 69 ; WX 720 ; N E ; B 14 0 777 681 ;
-C 70 ; WX 660 ; N F ; B 14 0 763 681 ;
-C 71 ; WX 760 ; N G ; B 77 -13 828 694 ;
-C 72 ; WX 800 ; N H ; B 14 0 910 681 ;
-C 73 ; WX 380 ; N I ; B 14 0 485 681 ;
-C 74 ; WX 620 ; N J ; B 8 -13 721 681 ;
-C 75 ; WX 780 ; N K ; B 14 0 879 681 ;
-C 76 ; WX 640 ; N L ; B 14 0 725 681 ;
-C 77 ; WX 860 ; N M ; B 14 0 970 681 ;
-C 78 ; WX 740 ; N N ; B 14 0 845 681 ;
-C 79 ; WX 760 ; N O ; B 78 -13 806 694 ;
-C 80 ; WX 640 ; N P ; B -6 0 724 681 ;
-C 81 ; WX 760 ; N Q ; B 37 -218 805 694 ;
-C 82 ; WX 740 ; N R ; B 14 0 765 681 ;
-C 83 ; WX 700 ; N S ; B 59 -13 731 694 ;
-C 84 ; WX 700 ; N T ; B 70 0 802 681 ;
-C 85 ; WX 740 ; N U ; B 112 -13 855 681 ;
-C 86 ; WX 660 ; N V ; B 72 0 819 681 ;
-C 87 ; WX 1000 ; N W ; B 72 0 1090 681 ;
-C 88 ; WX 740 ; N X ; B -7 0 835 681 ;
-C 89 ; WX 660 ; N Y ; B 72 0 817 681 ;
-C 90 ; WX 680 ; N Z ; B 23 0 740 681 ;
-C 91 ; WX 260 ; N bracketleft ; B 9 -145 374 710 ;
-C 92 ; WX 580 ; N backslash ; B 73 0 575 741 ;
-C 93 ; WX 260 ; N bracketright ; B -18 -145 347 710 ;
-C 94 ; WX 620 ; N asciicircum ; B 92 318 594 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -155 500 -95 ;
-C 96 ; WX 320 ; N quoteleft ; B 155 416 333 694 ;
-C 97 ; WX 680 ; N a ; B 84 -9 735 520 ;
-C 98 ; WX 600 ; N b ; B 57 -9 633 732 ;
-C 99 ; WX 560 ; N c ; B 58 -9 597 520 ;
-C 100 ; WX 680 ; N d ; B 60 -9 714 732 ;
-C 101 ; WX 560 ; N e ; B 59 -9 596 520 ;
-C 102 ; WX 420 ; N f ; B -192 -208 641 745 ;
-C 103 ; WX 620 ; N g ; B 21 -208 669 520 ;
-C 104 ; WX 700 ; N h ; B 93 -9 736 732 ;
-C 105 ; WX 380 ; N i ; B 83 -9 420 762 ;
-C 106 ; WX 320 ; N j ; B -160 -208 392 762 ;
-C 107 ; WX 700 ; N k ; B 97 -9 732 732 ;
-C 108 ; WX 380 ; N l ; B 109 -9 410 732 ;
-C 109 ; WX 960 ; N m ; B 83 -9 996 520 ;
-C 110 ; WX 680 ; N n ; B 83 -9 715 520 ;
-C 111 ; WX 600 ; N o ; B 59 -9 627 520 ;
-C 112 ; WX 660 ; N p ; B -24 -213 682 520 ;
-C 113 ; WX 620 ; N q ; B 60 -213 640 520 ;
-C 114 ; WX 500 ; N r ; B 84 0 582 520 ;
-C 115 ; WX 540 ; N s ; B 32 -9 573 520 ;
-C 116 ; WX 440 ; N t ; B 106 -9 488 659 ;
-C 117 ; WX 680 ; N u ; B 83 -9 720 511 ;
-C 118 ; WX 540 ; N v ; B 56 -9 572 520 ;
-C 119 ; WX 860 ; N w ; B 56 -9 891 520 ;
-C 120 ; WX 620 ; N x ; B 10 -9 654 520 ;
-C 121 ; WX 600 ; N y ; B 25 -204 642 511 ;
-C 122 ; WX 560 ; N z ; B 36 -9 586 520 ;
-C 123 ; WX 300 ; N braceleft ; B 53 -145 409 710 ;
-C 124 ; WX 620 ; N bar ; B 303 0 422 722 ;
-C 125 ; WX 300 ; N braceright ; B -4 -145 352 710 ;
-C 126 ; WX 620 ; N asciitilde ; B 101 251 605 443 ;
-C 161 ; WX 320 ; N exclamdown ; B 64 -187 344 520 ;
-C 162 ; WX 680 ; N cent ; B 161 25 616 718 ;
-C 163 ; WX 680 ; N sterling ; B 0 -13 787 694 ;
-C 164 ; WX 120 ; N fraction ; B -144 0 382 681 ;
-C 165 ; WX 680 ; N yen ; B 92 0 782 681 ;
-C 166 ; WX 680 ; N florin ; B -28 -208 743 745 ;
-C 167 ; WX 620 ; N section ; B 46 -147 638 694 ;
-C 168 ; WX 680 ; N currency ; B 148 109 637 595 ;
-C 169 ; WX 180 ; N quotesingle ; B 126 352 295 681 ;
-C 170 ; WX 520 ; N quotedblleft ; B 156 416 545 694 ;
-C 171 ; WX 380 ; N guillemotleft ; B 62 57 406 477 ;
-C 172 ; WX 220 ; N guilsinglleft ; B 62 57 249 477 ;
-C 173 ; WX 220 ; N guilsinglright ; B 62 57 249 477 ;
-C 174 ; WX 820 ; N fi ; B -191 -208 850 745 ;
-C 175 ; WX 820 ; N fl ; B -191 -208 850 745 ;
-C 177 ; WX 500 ; N endash ; B 40 224 573 314 ;
-C 178 ; WX 420 ; N dagger ; B 89 -134 466 694 ;
-C 179 ; WX 420 ; N daggerdbl ; B 79 -147 486 694 ;
-C 180 ; WX 340 ; N periodcentered ; B 126 173 316 358 ;
-C 182 ; WX 680 ; N paragraph ; B 70 -201 726 681 ;
-C 183 ; WX 360 ; N bullet ; B 60 213 404 557 ;
-C 184 ; WX 300 ; N quotesinglbase ; B 106 -117 284 161 ;
-C 185 ; WX 520 ; N quotedblbase ; B 106 -117 495 161 ;
-C 186 ; WX 520 ; N quotedblright ; B 171 416 560 694 ;
-C 187 ; WX 380 ; N guillemotright ; B 62 57 406 477 ;
-C 188 ; WX 1000 ; N ellipsis ; B 86 -13 942 172 ;
-C 189 ; WX 1360 ; N perthousand ; B 106 -8 1333 689 ;
-C 191 ; WX 620 ; N questiondown ; B 83 -183 606 524 ;
-C 193 ; WX 380 ; N grave ; B 193 561 424 748 ;
-C 194 ; WX 340 ; N acute ; B 176 561 407 748 ;
-C 195 ; WX 480 ; N circumflex ; B 183 564 523 734 ;
-C 196 ; WX 480 ; N tilde ; B 178 580 533 703 ;
-C 197 ; WX 480 ; N macron ; B 177 603 531 691 ;
-C 198 ; WX 460 ; N breve ; B 177 570 516 710 ;
-C 199 ; WX 380 ; N dotaccent ; B 180 566 345 732 ;
-C 200 ; WX 520 ; N dieresis ; B 180 569 569 729 ;
-C 202 ; WX 360 ; N ring ; B 185 553 406 769 ;
-C 203 ; WX 360 ; N cedilla ; B 68 -215 289 0 ;
-C 205 ; WX 560 ; N hungarumlaut ; B 181 560 616 751 ;
-C 206 ; WX 320 ; N ogonek ; B 68 -179 253 0 ;
-C 207 ; WX 480 ; N caron ; B 183 564 523 734 ;
-C 208 ; WX 1000 ; N emdash ; B 40 224 1073 314 ;
-C 225 ; WX 1140 ; N AE ; B -27 0 1207 681 ;
-C 227 ; WX 440 ; N ordfeminine ; B 55 300 495 698 ;
-C 232 ; WX 640 ; N Lslash ; B 14 0 724 681 ;
-C 233 ; WX 760 ; N Oslash ; B 21 -29 847 725 ;
-C 234 ; WX 1180 ; N OE ; B 94 -13 1245 694 ;
-C 235 ; WX 440 ; N ordmasculine ; B 47 300 467 698 ;
-C 241 ; WX 880 ; N ae ; B 39 -9 913 520 ;
-C 245 ; WX 380 ; N dotlessi ; B 83 -9 420 511 ;
-C 248 ; WX 380 ; N lslash ; B 63 -9 412 732 ;
-C 249 ; WX 600 ; N oslash ; B 17 -54 661 576 ;
-C 250 ; WX 920 ; N oe ; B 48 -9 961 520 ;
-C 251 ; WX 660 ; N germandbls ; B -231 -208 702 741 ;
-C -1 ; WX 740 ; N Udieresis ; B 112 -13 855 895 ;
-C -1 ; WX 740 ; N Uacute ; B 112 -13 855 914 ;
-C -1 ; WX 700 ; N Scedilla ; B 59 -215 731 694 ;
-C -1 ; WX 700 ; N Tcaron ; B 70 0 802 900 ;
-C -1 ; WX 700 ; N Scaron ; B 59 -13 731 900 ;
-C -1 ; WX 740 ; N Rcaron ; B 14 0 765 900 ;
-C -1 ; WX 740 ; N Racute ; B 14 0 765 914 ;
-C -1 ; WX 700 ; N Sacute ; B 59 -13 731 914 ;
-C -1 ; WX 760 ; N Otilde ; B 78 -13 806 863 ;
-C -1 ; WX 680 ; N ucircumflex ; B 83 -9 720 734 ;
-C -1 ; WX 760 ; N Ohungarumlaut ; B 78 -13 806 917 ;
-C -1 ; WX 740 ; N Uhungarumlaut ; B 112 -13 855 917 ;
-C -1 ; WX 660 ; N Yacute ; B 72 0 817 914 ;
-C -1 ; WX 760 ; N Eth ; B 14 0 805 681 ;
-C -1 ; WX 760 ; N Dcroat ; B 14 0 805 681 ;
-C -1 ; WX 680 ; N Zacute ; B 23 0 740 914 ;
-C -1 ; WX 740 ; N Uring ; B 112 -13 855 927 ;
-C -1 ; WX 620 ; N gbreve ; B 21 -208 669 710 ;
-C -1 ; WX 560 ; N eogonek ; B 59 -179 596 520 ;
-C -1 ; WX 560 ; N edotaccent ; B 59 -9 596 732 ;
-C -1 ; WX 560 ; N ecaron ; B 59 -9 596 734 ;
-C -1 ; WX 740 ; N Ugrave ; B 112 -13 855 914 ;
-C -1 ; WX 640 ; N Thorn ; B -6 0 701 681 ;
-C -1 ; WX 560 ; N eacute ; B 59 -9 596 748 ;
-C -1 ; WX 560 ; N edieresis ; B 59 -9 596 729 ;
-C -1 ; WX 810 ; N dcaron ; B 60 -9 870 740 ;
-C -1 ; WX 560 ; N ccedilla ; B 58 -215 597 520 ;
-C -1 ; WX 560 ; N ccaron ; B 58 -9 597 734 ;
-C -1 ; WX 560 ; N cacute ; B 58 -9 597 748 ;
-C -1 ; WX 680 ; N aogonek ; B 84 -179 735 520 ;
-C -1 ; WX 680 ; N aring ; B 84 -9 735 769 ;
-C -1 ; WX 680 ; N atilde ; B 84 -9 735 703 ;
-C -1 ; WX 680 ; N abreve ; B 84 -9 735 710 ;
-C -1 ; WX 560 ; N egrave ; B 59 -9 596 748 ;
-C -1 ; WX 680 ; N agrave ; B 84 -9 735 748 ;
-C -1 ; WX 680 ; N aacute ; B 84 -9 735 748 ;
-C -1 ; WX 680 ; N adieresis ; B 84 -9 735 729 ;
-C -1 ; WX 740 ; N Uogonek ; B 112 -179 855 681 ;
-C -1 ; WX 680 ; N ugrave ; B 83 -9 720 748 ;
-C -1 ; WX 680 ; N uacute ; B 83 -9 720 748 ;
-C -1 ; WX 680 ; N udieresis ; B 83 -9 720 729 ;
-C -1 ; WX 520 ; N tcaron ; B 106 -9 580 740 ;
-C -1 ; WX 540 ; N scommaaccent ; B 32 -328 573 520 ;
-C -1 ; WX 680 ; N Zcaron ; B 23 0 740 900 ;
-C -1 ; WX 560 ; N ecircumflex ; B 59 -9 596 734 ;
-C -1 ; WX 740 ; N Ucircumflex ; B 112 -13 855 900 ;
-C -1 ; WX 680 ; N acircumflex ; B 84 -9 735 734 ;
-C -1 ; WX 680 ; N Zdotaccent ; B 23 0 740 898 ;
-C -1 ; WX 540 ; N scaron ; B 32 -9 573 734 ;
-C -1 ; WX 720 ; N Amacron ; B -27 0 769 844 ;
-C -1 ; WX 540 ; N sacute ; B 32 -9 573 748 ;
-C -1 ; WX 700 ; N Tcommaaccent ; B 70 -332 802 681 ;
-C -1 ; WX 660 ; N Ydieresis ; B 72 0 817 895 ;
-C -1 ; WX 660 ; N thorn ; B -24 -213 682 732 ;
-C -1 ; WX 720 ; N Emacron ; B 14 0 777 844 ;
-C -1 ; WX 760 ; N Ograve ; B 78 -13 806 914 ;
-C -1 ; WX 760 ; N Oacute ; B 78 -13 806 914 ;
-C -1 ; WX 760 ; N Odieresis ; B 78 -13 806 895 ;
-C -1 ; WX 740 ; N Ntilde ; B 14 0 845 863 ;
-C -1 ; WX 740 ; N Ncaron ; B 14 0 845 900 ;
-C -1 ; WX 740 ; N Nacute ; B 14 0 845 914 ;
-C -1 ; WX 640 ; N Lcaron ; B 14 0 780 694 ;
-C -1 ; WX 640 ; N Lacute ; B 14 0 725 914 ;
-C -1 ; WX 380 ; N Idotaccent ; B 14 0 485 898 ;
-C -1 ; WX 500 ; N racute ; B 84 0 582 748 ;
-C -1 ; WX 380 ; N Icircumflex ; B 14 0 493 900 ;
-C -1 ; WX 600 ; N ohungarumlaut ; B 59 -9 636 751 ;
-C -1 ; WX 600 ; N otilde ; B 59 -9 627 703 ;
-C -1 ; WX 680 ; N Euro ; B 57 -13 736 694 ;
-C -1 ; WX 600 ; N ocircumflex ; B 59 -9 627 734 ;
-C -1 ; WX 408 ; N onesuperior ; B 118 273 406 681 ;
-C -1 ; WX 408 ; N twosuperior ; B 91 273 485 689 ;
-C -1 ; WX 408 ; N threesuperior ; B 86 265 483 689 ;
-C -1 ; WX 380 ; N Igrave ; B 14 0 485 914 ;
-C -1 ; WX 380 ; N Iacute ; B 14 0 485 914 ;
-C -1 ; WX 380 ; N Imacron ; B 14 0 511 844 ;
-C -1 ; WX 380 ; N Iogonek ; B 14 -179 485 681 ;
-C -1 ; WX 380 ; N Idieresis ; B 14 0 499 895 ;
-C -1 ; WX 760 ; N Gbreve ; B 77 -13 828 878 ;
-C -1 ; WX 740 ; N Umacron ; B 112 -13 855 844 ;
-C -1 ; WX 780 ; N Kcommaaccent ; B 14 -332 879 681 ;
-C -1 ; WX 600 ; N ograve ; B 59 -9 627 748 ;
-C -1 ; WX 700 ; N Scommaaccent ; B 59 -332 731 694 ;
-C -1 ; WX 720 ; N Eogonek ; B 14 -179 777 681 ;
-C -1 ; WX 600 ; N oacute ; B 59 -9 627 748 ;
-C -1 ; WX 720 ; N Edotaccent ; B 14 0 777 898 ;
-C -1 ; WX 380 ; N iogonek ; B 83 -179 420 762 ;
-C -1 ; WX 620 ; N gcommaaccent ; B 21 -208 669 843 ;
-C -1 ; WX 600 ; N odieresis ; B 59 -9 627 729 ;
-C -1 ; WX 680 ; N ntilde ; B 83 -9 715 703 ;
-C -1 ; WX 680 ; N ncaron ; B 83 -9 715 734 ;
-C -1 ; WX 720 ; N Ecaron ; B 14 0 777 900 ;
-C -1 ; WX 720 ; N Ecircumflex ; B 14 0 777 900 ;
-C -1 ; WX 540 ; N scedilla ; B 32 -215 573 520 ;
-C -1 ; WX 500 ; N rcaron ; B 84 0 582 734 ;
-C -1 ; WX 720 ; N Egrave ; B 14 0 777 914 ;
-C -1 ; WX 720 ; N Eacute ; B 14 0 777 914 ;
-C -1 ; WX 760 ; N Gcommaaccent ; B 77 -332 828 694 ;
-C -1 ; WX 740 ; N Rcommaaccent ; B 14 -332 765 681 ;
-C -1 ; WX 720 ; N Edieresis ; B 14 0 777 895 ;
-C -1 ; WX 680 ; N nacute ; B 83 -9 715 748 ;
-C -1 ; WX 680 ; N uogonek ; B 83 -179 720 511 ;
-C -1 ; WX 680 ; N umacron ; B 83 -9 720 691 ;
-C -1 ; WX 760 ; N Dcaron ; B 14 0 805 900 ;
-C -1 ; WX 509 ; N lcaron ; B 109 -9 569 740 ;
-C -1 ; WX 700 ; N Ccaron ; B 78 -13 754 900 ;
-C -1 ; WX 700 ; N Cacute ; B 78 -13 754 914 ;
-C -1 ; WX 700 ; N Ccedilla ; B 78 -215 754 694 ;
-C -1 ; WX 400 ; N degree ; B 130 380 430 686 ;
-C -1 ; WX 720 ; N Aogonek ; B -27 -179 797 681 ;
-C -1 ; WX 600 ; N minus ; B 91 293 595 407 ;
-C -1 ; WX 600 ; N multiply ; B 91 100 595 604 ;
-C -1 ; WX 600 ; N divide ; B 91 69 595 631 ;
-C -1 ; WX 720 ; N Aring ; B -27 0 769 927 ;
-C -1 ; WX 940 ; N trademark ; B 42 273 982 681 ;
-C -1 ; WX 500 ; N rcommaaccent ; B 66 -328 582 520 ;
-C -1 ; WX 380 ; N lacute ; B 109 -9 427 914 ;
-C -1 ; WX 600 ; N omacron ; B 59 -9 627 691 ;
-C -1 ; WX 720 ; N Atilde ; B -27 0 769 863 ;
-C -1 ; WX 380 ; N icircumflex ; B 83 -9 433 734 ;
-C -1 ; WX 380 ; N igrave ; B 83 -9 424 748 ;
-C -1 ; WX 680 ; N ncommaaccent ; B 83 -328 715 520 ;
-C -1 ; WX 380 ; N lcommaaccent ; B 86 -328 410 732 ;
-C -1 ; WX 600 ; N plusminus ; B 91 0 595 628 ;
-C -1 ; WX 1020 ; N onehalf ; B 118 0 1036 681 ;
-C -1 ; WX 1020 ; N onequarter ; B 118 0 1054 681 ;
-C -1 ; WX 1020 ; N threequarters ; B 86 0 1054 689 ;
-C -1 ; WX 380 ; N iacute ; B 83 -9 420 748 ;
-C -1 ; WX 720 ; N Abreve ; B -27 0 769 878 ;
-C -1 ; WX 700 ; N kcommaaccent ; B 97 -328 732 732 ;
-C -1 ; WX 760 ; N Omacron ; B 78 -13 806 844 ;
-C -1 ; WX 380 ; N imacron ; B 83 -9 481 691 ;
-C -1 ; WX 560 ; N emacron ; B 59 -9 596 691 ;
-C -1 ; WX 680 ; N amacron ; B 84 -9 735 691 ;
-C -1 ; WX 440 ; N tcommaaccent ; B 106 -328 488 659 ;
-C -1 ; WX 600 ; N ydieresis ; B 25 -204 642 729 ;
-C -1 ; WX 560 ; N zdotaccent ; B 36 -9 586 732 ;
-C -1 ; WX 560 ; N zcaron ; B 36 -9 586 734 ;
-C -1 ; WX 560 ; N zacute ; B 36 -9 586 748 ;
-C -1 ; WX 600 ; N yacute ; B 25 -204 642 748 ;
-C -1 ; WX 680 ; N uhungarumlaut ; B 83 -9 720 751 ;
-C -1 ; WX 600 ; N eth ; B 59 -9 662 735 ;
-C -1 ; WX 680 ; N uring ; B 83 -9 720 769 ;
-C -1 ; WX 760 ; N Ocircumflex ; B 78 -13 806 900 ;
-C -1 ; WX 360 ; N commaaccent ; B 76 -328 254 -50 ;
-C -1 ; WX 780 ; N copyright ; B 83 0 783 700 ;
-C -1 ; WX 780 ; N registered ; B 83 0 783 700 ;
-C -1 ; WX 720 ; N Acircumflex ; B -27 0 769 900 ;
-C -1 ; WX 380 ; N idieresis ; B 83 -9 479 729 ;
-C -1 ; WX 494 ; N lozenge ; B 83 0 531 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 600 ; N notequal ; B 91 63 595 646 ;
-C -1 ; WX 549 ; N radical ; B -4 -35 578 918 ;
-C -1 ; WX 720 ; N Agrave ; B -27 0 769 914 ;
-C -1 ; WX 720 ; N Aacute ; B -27 0 769 914 ;
-C -1 ; WX 600 ; N lessequal ; B 85 0 589 722 ;
-C -1 ; WX 600 ; N greaterequal ; B 91 0 595 722 ;
-C -1 ; WX 620 ; N logicalnot ; B 81 80 585 367 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 9 -10 478 755 ;
-C -1 ; WX 740 ; N Ncommaaccent ; B 14 -332 845 681 ;
-C -1 ; WX 680 ; N dcroat ; B 60 -9 742 732 ;
-C -1 ; WX 620 ; N brokenbar ; B 303 0 422 722 ;
-C -1 ; WX 640 ; N Lcommaaccent ; B 14 -332 725 681 ;
-C -1 ; WX 720 ; N Adieresis ; B -27 0 769 895 ;
-C -1 ; WX 680 ; N mu ; B 54 -195 720 511 ;
-C -1 ; WX 340 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -34
-KPX A Ccedilla -35
-KPX A G -30
-KPX A O -35
-KPX A Odieresis -35
-KPX A Q 6
-KPX A T -39
-KPX A U -28
-KPX A Uacute -28
-KPX A Ucircumflex -28
-KPX A Udieresis -28
-KPX A Ugrave -28
-KPX A V -67
-KPX A W -52
-KPX A Y -36
-KPX A a -16
-KPX A b 6
-KPX A c -6
-KPX A ccedilla -8
-KPX A comma 11
-KPX A d -4
-KPX A e -6
-KPX A g -17
-KPX A guillemotleft -21
-KPX A guilsinglleft -21
-KPX A hyphen -4
-KPX A o -4
-KPX A period 8
-KPX A q -5
-KPX A quotedblright -82
-KPX A quoteright -82
-KPX A t -18
-KPX A u -16
-KPX A v -3
-KPX A w -3
-KPX A y -8
-KPX Aacute C -34
-KPX Aacute G -30
-KPX Aacute O -36
-KPX Aacute Q 6
-KPX Aacute T -39
-KPX Aacute U -28
-KPX Aacute V -67
-KPX Aacute W -52
-KPX Aacute Y -36
-KPX Aacute a -16
-KPX Aacute b 6
-KPX Aacute c -6
-KPX Aacute comma 11
-KPX Aacute d -4
-KPX Aacute e -6
-KPX Aacute g -17
-KPX Aacute guillemotleft -21
-KPX Aacute guilsinglleft -21
-KPX Aacute hyphen -4
-KPX Aacute o -4
-KPX Aacute period 8
-KPX Aacute q -5
-KPX Aacute quoteright -83
-KPX Aacute t -18
-KPX Aacute u -16
-KPX Aacute v -3
-KPX Aacute w -3
-KPX Aacute y -8
-KPX Acircumflex C -34
-KPX Acircumflex G -30
-KPX Acircumflex O -36
-KPX Acircumflex Q 6
-KPX Acircumflex T -39
-KPX Acircumflex U -28
-KPX Acircumflex V -67
-KPX Acircumflex W -52
-KPX Acircumflex Y -36
-KPX Acircumflex comma 11
-KPX Acircumflex period 8
-KPX Adieresis C -34
-KPX Adieresis G -30
-KPX Adieresis O -36
-KPX Adieresis Q 6
-KPX Adieresis T -39
-KPX Adieresis U -28
-KPX Adieresis V -67
-KPX Adieresis W -52
-KPX Adieresis Y -36
-KPX Adieresis a -16
-KPX Adieresis b 6
-KPX Adieresis c -6
-KPX Adieresis comma 11
-KPX Adieresis d -4
-KPX Adieresis g -17
-KPX Adieresis guillemotleft -21
-KPX Adieresis guilsinglleft -21
-KPX Adieresis hyphen -4
-KPX Adieresis o -4
-KPX Adieresis period 8
-KPX Adieresis q -5
-KPX Adieresis quotedblright -83
-KPX Adieresis quoteright -83
-KPX Adieresis t -18
-KPX Adieresis u -16
-KPX Adieresis v -3
-KPX Adieresis w -3
-KPX Adieresis y -8
-KPX Agrave C -34
-KPX Agrave G -30
-KPX Agrave O -36
-KPX Agrave Q 6
-KPX Agrave T -39
-KPX Agrave U -28
-KPX Agrave V -67
-KPX Agrave W -52
-KPX Agrave Y -36
-KPX Agrave comma 11
-KPX Agrave period 8
-KPX Aring C -34
-KPX Aring G -30
-KPX Aring O -36
-KPX Aring Q 6
-KPX Aring T -39
-KPX Aring U -28
-KPX Aring V -67
-KPX Aring W -52
-KPX Aring Y -36
-KPX Aring a -16
-KPX Aring b 6
-KPX Aring c -6
-KPX Aring comma 11
-KPX Aring d -4
-KPX Aring e -6
-KPX Aring g -17
-KPX Aring guillemotleft -21
-KPX Aring guilsinglleft -21
-KPX Aring hyphen -4
-KPX Aring o -4
-KPX Aring period 8
-KPX Aring q -5
-KPX Aring quotedblright -83
-KPX Aring quoteright -83
-KPX Aring t -18
-KPX Aring u -16
-KPX Aring v -3
-KPX Aring w -3
-KPX Aring y -8
-KPX Atilde C -34
-KPX Atilde G -30
-KPX Atilde O -36
-KPX Atilde Q 6
-KPX Atilde T -39
-KPX Atilde U -28
-KPX Atilde V -67
-KPX Atilde W -52
-KPX Atilde Y -36
-KPX Atilde comma 11
-KPX Atilde period 8
-KPX B A 2
-KPX B AE 2
-KPX B Aacute 2
-KPX B Acircumflex 2
-KPX B Adieresis 2
-KPX B Aring 2
-KPX B Atilde 2
-KPX B O -2
-KPX B OE -10
-KPX B Oacute -2
-KPX B Ocircumflex -2
-KPX B Odieresis -2
-KPX B Ograve -2
-KPX B Oslash -2
-KPX B V -5
-KPX B W -5
-KPX B Y -5
-KPX C A 2
-KPX C AE 1
-KPX C Aacute 2
-KPX C Adieresis 2
-KPX C Aring 2
-KPX C H -6
-KPX C K -6
-KPX C O -3
-KPX C Oacute -3
-KPX C Odieresis -3
-KPX Ccedilla A -2
-KPX D A -25
-KPX D Aacute -25
-KPX D Acircumflex -25
-KPX D Adieresis -25
-KPX D Agrave -25
-KPX D Aring -25
-KPX D Atilde -25
-KPX D J 11
-KPX D T -1
-KPX D V -28
-KPX D W -21
-KPX D X -34
-KPX D Y -28
-KPX F A -65
-KPX F Aacute -65
-KPX F Acircumflex -65
-KPX F Adieresis -65
-KPX F Agrave -65
-KPX F Aring -65
-KPX F Atilde -65
-KPX F J -43
-KPX F O 15
-KPX F Odieresis 15
-KPX F a -23
-KPX F aacute -23
-KPX F adieresis -23
-KPX F ae 10
-KPX F aring -23
-KPX F comma -110
-KPX F e -18
-KPX F eacute -18
-KPX F hyphen -12
-KPX F i 22
-KPX F j 15
-KPX F o -11
-KPX F oacute -11
-KPX F odieresis -11
-KPX F oe -6
-KPX F oslash -10
-KPX F period -113
-KPX F r 21
-KPX F u 22
-KPX G A -5
-KPX G AE -5
-KPX G Aacute -5
-KPX G Acircumflex -5
-KPX G Adieresis -5
-KPX G Agrave -5
-KPX G Aring -5
-KPX G Atilde -5
-KPX G T -20
-KPX G V -30
-KPX G W -19
-KPX G Y -30
-KPX J A -40
-KPX J AE -40
-KPX J Adieresis -40
-KPX J Aring -40
-KPX K C -35
-KPX K G -34
-KPX K O -35
-KPX K OE -43
-KPX K Oacute -35
-KPX K Odieresis -35
-KPX K S -11
-KPX K T -6
-KPX K a -24
-KPX K adieresis -24
-KPX K ae 12
-KPX K aring -24
-KPX K e -14
-KPX K hyphen -39
-KPX K o -12
-KPX K oacute -12
-KPX K odieresis -12
-KPX K u -24
-KPX K udieresis -24
-KPX K y -16
-KPX L A 27
-KPX L AE 26
-KPX L Aacute 27
-KPX L Adieresis 27
-KPX L Aring 27
-KPX L C 18
-KPX L Ccedilla 17
-KPX L G 19
-KPX L O 17
-KPX L Oacute 17
-KPX L Ocircumflex 17
-KPX L Odieresis 17
-KPX L Ograve 17
-KPX L Otilde 17
-KPX L S 28
-KPX L T -59
-KPX L U -6
-KPX L Udieresis -6
-KPX L V -47
-KPX L W -32
-KPX L Y -51
-KPX L hyphen 55
-KPX L quotedblright -73
-KPX L quoteright -73
-KPX L u 1
-KPX L udieresis -2
-KPX L y 8
-KPX N A -22
-KPX N AE -22
-KPX N Aacute -22
-KPX N Adieresis -22
-KPX N Aring -22
-KPX N C -20
-KPX N Ccedilla -19
-KPX N G -19
-KPX N O -20
-KPX N Oacute -20
-KPX N Odieresis -20
-KPX N a -35
-KPX N aacute -37
-KPX N adieresis -37
-KPX N ae -21
-KPX N aring -37
-KPX N comma -37
-KPX N e -27
-KPX N eacute -29
-KPX N o -24
-KPX N oacute -26
-KPX N odieresis -26
-KPX N oslash -21
-KPX N period -40
-KPX N u -33
-KPX N udieresis -35
-KPX O A -27
-KPX O AE -27
-KPX O Aacute -27
-KPX O Adieresis -27
-KPX O Aring -27
-KPX O T -2
-KPX O V -33
-KPX O W -22
-KPX O X -35
-KPX O Y -33
-KPX Oacute A -27
-KPX Oacute T -2
-KPX Oacute V -33
-KPX Oacute W -22
-KPX Oacute Y -33
-KPX Ocircumflex T -2
-KPX Ocircumflex V -33
-KPX Ocircumflex Y -33
-KPX Odieresis A -27
-KPX Odieresis T -2
-KPX Odieresis V -33
-KPX Odieresis W -22
-KPX Odieresis X -35
-KPX Odieresis Y -33
-KPX Ograve T -2
-KPX Ograve V -33
-KPX Ograve Y -33
-KPX Oslash A -20
-KPX Otilde T -2
-KPX Otilde V -33
-KPX Otilde Y -33
-KPX P A -66
-KPX P AE -112
-KPX P Aacute -66
-KPX P Adieresis -66
-KPX P Aring -66
-KPX P J -43
-KPX P a -30
-KPX P aacute -30
-KPX P adieresis -30
-KPX P ae -3
-KPX P aring -30
-KPX P comma -108
-KPX P e -22
-KPX P eacute -22
-KPX P hyphen -8
-KPX P o -19
-KPX P oacute -19
-KPX P odieresis -19
-KPX P oe -13
-KPX P oslash -16
-KPX P period -111
-KPX R C -21
-KPX R Ccedilla -20
-KPX R G -20
-KPX R O -21
-KPX R OE -28
-KPX R Oacute -21
-KPX R Odieresis -21
-KPX R T -11
-KPX R U -26
-KPX R Udieresis -26
-KPX R V -17
-KPX R W -17
-KPX R Y -17
-KPX R a -28
-KPX R aacute -28
-KPX R adieresis -28
-KPX R ae 8
-KPX R aring -28
-KPX R e -18
-KPX R eacute -18
-KPX R hyphen -27
-KPX R o -16
-KPX R oacute -16
-KPX R odieresis -16
-KPX R oe -10
-KPX R u -23
-KPX R uacute -24
-KPX R udieresis -24
-KPX R y -16
-KPX S A 5
-KPX S AE 5
-KPX S Aacute 5
-KPX S Adieresis 5
-KPX S Aring 5
-KPX S T -10
-KPX S V -11
-KPX S W -11
-KPX S Y -11
-KPX S t -9
-KPX T A -51
-KPX T AE -52
-KPX T Aacute -51
-KPX T Acircumflex -51
-KPX T Adieresis -51
-KPX T Agrave -51
-KPX T Aring -51
-KPX T Atilde -51
-KPX T C 8
-KPX T G 8
-KPX T J -59
-KPX T O 10
-KPX T OE 2
-KPX T Oacute 10
-KPX T Ocircumflex 10
-KPX T Odieresis 10
-KPX T Ograve 10
-KPX T Oslash 7
-KPX T Otilde 10
-KPX T S 5
-KPX T V 16
-KPX T W 16
-KPX T Y 16
-KPX T a -35
-KPX T ae 1
-KPX T c -33
-KPX T colon -22
-KPX T comma -97
-KPX T e -34
-KPX T g -27
-KPX T guillemotleft -29
-KPX T guilsinglleft -29
-KPX T hyphen -84
-KPX T i 19
-KPX T j 12
-KPX T o -24
-KPX T oslash -22
-KPX T period -100
-KPX T r 18
-KPX T s -9
-KPX T semicolon -20
-KPX T u 19
-KPX T v 33
-KPX T w 33
-KPX T y 27
-KPX U A -35
-KPX U AE -35
-KPX U Aacute -35
-KPX U Acircumflex -35
-KPX U Adieresis -35
-KPX U Aring -35
-KPX U Atilde -35
-KPX U comma -49
-KPX U m -32
-KPX U n -32
-KPX U p -37
-KPX U period -52
-KPX U r -33
-KPX Uacute A -35
-KPX Uacute comma -49
-KPX Uacute m -32
-KPX Uacute n -32
-KPX Uacute p -37
-KPX Uacute period -52
-KPX Uacute r -33
-KPX Ucircumflex A -35
-KPX Udieresis A -35
-KPX Udieresis b 23
-KPX Udieresis comma -49
-KPX Udieresis m -32
-KPX Udieresis n -32
-KPX Udieresis p -37
-KPX Udieresis period -52
-KPX Udieresis r -33
-KPX Ugrave A -35
-KPX V A -70
-KPX V AE -86
-KPX V Aacute -70
-KPX V Acircumflex -70
-KPX V Adieresis -70
-KPX V Agrave -70
-KPX V Aring -70
-KPX V Atilde -70
-KPX V C -18
-KPX V G -20
-KPX V O -19
-KPX V Oacute -19
-KPX V Ocircumflex -19
-KPX V Odieresis -19
-KPX V Ograve -19
-KPX V Oslash -25
-KPX V Otilde -19
-KPX V S 4
-KPX V T 24
-KPX V a -66
-KPX V ae -49
-KPX V colon -76
-KPX V comma -94
-KPX V e -58
-KPX V g -63
-KPX V guillemotleft -52
-KPX V guilsinglleft -52
-KPX V hyphen -29
-KPX V i 3
-KPX V o -54
-KPX V oslash -51
-KPX V period -97
-KPX V r -31
-KPX V semicolon -74
-KPX V u -31
-KPX V y -23
-KPX W A -95
-KPX W AE -103
-KPX W Aacute -95
-KPX W Acircumflex -95
-KPX W Adieresis -95
-KPX W Agrave -95
-KPX W Aring -95
-KPX W Atilde -95
-KPX W C -52
-KPX W G -55
-KPX W O -53
-KPX W Oacute -53
-KPX W Ocircumflex -53
-KPX W Odieresis -53
-KPX W Ograve -53
-KPX W Oslash -58
-KPX W Otilde -53
-KPX W S -30
-KPX W T -10
-KPX W a -88
-KPX W ae -73
-KPX W colon -100
-KPX W comma -112
-KPX W e -80
-KPX W g -85
-KPX W guillemotleft -74
-KPX W guilsinglleft -74
-KPX W hyphen -52
-KPX W i -31
-KPX W o -77
-KPX W oslash -74
-KPX W period -115
-KPX W r -60
-KPX W semicolon -97
-KPX W u -60
-KPX W y -52
-KPX X C -42
-KPX X O -41
-KPX X Odieresis -41
-KPX X Q -5
-KPX X a -27
-KPX X e -18
-KPX X hyphen -55
-KPX X o -15
-KPX X u -28
-KPX X y -20
-KPX Y A -48
-KPX Y AE -48
-KPX Y Aacute -48
-KPX Y Acircumflex -48
-KPX Y Adieresis -48
-KPX Y Agrave -48
-KPX Y Aring -48
-KPX Y Atilde -48
-KPX Y C -19
-KPX Y G -21
-KPX Y O -20
-KPX Y Oacute -20
-KPX Y Ocircumflex -20
-KPX Y Odieresis -20
-KPX Y Ograve -20
-KPX Y Oslash -26
-KPX Y Otilde -20
-KPX Y S 3
-KPX Y T 23
-KPX Y a -84
-KPX Y ae -67
-KPX Y colon -90
-KPX Y comma -90
-KPX Y e -76
-KPX Y g -81
-KPX Y guillemotleft -78
-KPX Y guilsinglleft -78
-KPX Y hyphen -69
-KPX Y i 2
-KPX Y o -72
-KPX Y oslash -68
-KPX Y p -49
-KPX Y period -93
-KPX Y semicolon -88
-KPX Y u -46
-KPX Y v -32
-KPX Z v -6
-KPX Z y -10
-KPX a j -16
-KPX a quoteright -43
-KPX a v -2
-KPX a w -2
-KPX a y -7
-KPX aacute v -2
-KPX aacute w -2
-KPX aacute y -7
-KPX adieresis v -2
-KPX adieresis w -2
-KPX adieresis y -7
-KPX ae v 4
-KPX ae w 4
-KPX ae y -1
-KPX agrave v -2
-KPX agrave w -2
-KPX agrave y -7
-KPX aring v -2
-KPX aring w -2
-KPX aring y -7
-KPX b v -1
-KPX b w -1
-KPX b y -6
-KPX c h -26
-KPX c k -28
-KPX comma one -61
-KPX comma quotedblright -49
-KPX comma quoteright -49
-KPX e quoteright -18
-KPX e t -20
-KPX e v 6
-KPX e w 6
-KPX e x 5
-KPX e y 0
-KPX eacute v 6
-KPX eacute w 6
-KPX eacute y 0
-KPX ecircumflex v 6
-KPX ecircumflex w 6
-KPX ecircumflex y 0
-KPX eight four -19
-KPX eight one -84
-KPX eight seven -47
-KPX f a -48
-KPX f aacute -49
-KPX f adieresis -12
-KPX f ae -19
-KPX f aring -47
-KPX f e -40
-KPX f eacute -42
-KPX f f 6
-KPX f i 34
-KPX f j 26
-KPX f l 59
-KPX f o -36
-KPX f oacute -38
-KPX f odieresis 12
-KPX f oe -31
-KPX f oslash -33
-KPX f quoteright 31
-KPX f s -28
-KPX f t -17
-KPX five four -21
-KPX five one -94
-KPX five seven -69
-KPX four four -4
-KPX four one -82
-KPX four seven -66
-KPX g a -8
-KPX g adieresis -9
-KPX g ae 5
-KPX g aring -9
-KPX g e 0
-KPX g eacute -1
-KPX g l -14
-KPX g oacute 1
-KPX g odieresis 1
-KPX g r -4
-KPX guillemotright A -27
-KPX guillemotright AE -28
-KPX guillemotright Aacute -27
-KPX guillemotright Adieresis -27
-KPX guillemotright Aring -27
-KPX guillemotright T -52
-KPX guillemotright V -58
-KPX guillemotright W -41
-KPX guillemotright Y -75
-KPX guilsinglright A -26
-KPX guilsinglright AE -26
-KPX guilsinglright Aacute -26
-KPX guilsinglright Adieresis -26
-KPX guilsinglright Aring -26
-KPX guilsinglright T -50
-KPX guilsinglright V -57
-KPX guilsinglright W -40
-KPX guilsinglright Y -73
-KPX h quoteright -65
-KPX h y -16
-KPX hyphen A -12
-KPX hyphen AE -55
-KPX hyphen Aacute -12
-KPX hyphen Adieresis -12
-KPX hyphen Aring -12
-KPX hyphen T -77
-KPX hyphen V -33
-KPX hyphen W -15
-KPX hyphen Y -61
-KPX i T -41
-KPX i j -21
-KPX k a -28
-KPX k aacute -28
-KPX k adieresis -28
-KPX k ae 8
-KPX k aring -28
-KPX k comma -9
-KPX k e -18
-KPX k eacute -18
-KPX k g -29
-KPX k hyphen -35
-KPX k o -16
-KPX k oacute -16
-KPX k odieresis -16
-KPX k period -12
-KPX k s 11
-KPX k u -13
-KPX k udieresis -13
-KPX l v -15
-KPX l y -20
-KPX m p -19
-KPX m v -12
-KPX m w -12
-KPX m y -17
-KPX n T -47
-KPX n p -22
-KPX n quoteright -55
-KPX n v -13
-KPX n w -13
-KPX n y -18
-KPX nine four -16
-KPX nine one -80
-KPX nine seven -31
-KPX o T -39
-KPX o quoteright -34
-KPX o t -23
-KPX o v -4
-KPX o w -4
-KPX o x -16
-KPX o y -9
-KPX oacute v -4
-KPX oacute w -4
-KPX oacute y -9
-KPX ocircumflex t -24
-KPX odieresis t -24
-KPX odieresis v -4
-KPX odieresis w -4
-KPX odieresis x -16
-KPX odieresis y -9
-KPX ograve v -4
-KPX ograve w -4
-KPX ograve y -9
-KPX one comma -77
-KPX one eight -87
-KPX one five -87
-KPX one four -117
-KPX one nine -78
-KPX one one -108
-KPX one period -80
-KPX one seven -127
-KPX one six -93
-KPX one three -85
-KPX one two -75
-KPX one zero -93
-KPX p t -24
-KPX p y -10
-KPX period one -64
-KPX period quotedblright -50
-KPX period quoteright -50
-KPX q c -12
-KPX q u -18
-KPX quotedblbase A 29
-KPX quotedblbase AE 18
-KPX quotedblbase T -64
-KPX quotedblbase V -74
-KPX quotedblbase W -52
-KPX quotedblbase Y -57
-KPX quotedblleft A -89
-KPX quotedblleft AE -176
-KPX quotedblleft Aacute -90
-KPX quotedblleft Adieresis -90
-KPX quotedblleft Aring -90
-KPX quotedblleft T -3
-KPX quotedblleft V 6
-KPX quotedblleft W 12
-KPX quotedblleft Y 1
-KPX quotedblright A -91
-KPX quotedblright AE -183
-KPX quotedblright Aacute -92
-KPX quotedblright Adieresis -92
-KPX quotedblright Aring -92
-KPX quotedblright T -7
-KPX quotedblright V 5
-KPX quotedblright W 12
-KPX quotedblright Y 1
-KPX quoteleft A -95
-KPX quoteleft AE -182
-KPX quoteleft Aacute -96
-KPX quoteleft Adieresis -96
-KPX quoteleft Aring -96
-KPX quoteleft T -9
-KPX quoteleft V 0
-KPX quoteleft W 6
-KPX quoteleft Y -4
-KPX quoteright A -97
-KPX quoteright AE -189
-KPX quoteright Aacute -98
-KPX quoteright Adieresis -98
-KPX quoteright Aring -98
-KPX quoteright comma -76
-KPX quoteright d -46
-KPX quoteright o -43
-KPX quoteright period -79
-KPX quoteright r -26
-KPX quoteright s -33
-KPX quoteright t -31
-KPX quoteright v -12
-KPX quoteright w -12
-KPX quoteright y -15
-KPX r a -20
-KPX r aacute -20
-KPX r acircumflex -20
-KPX r adieresis -20
-KPX r ae 5
-KPX r agrave -20
-KPX r aring -20
-KPX r c -12
-KPX r ccedilla -9
-KPX r colon -27
-KPX r comma -115
-KPX r d -9
-KPX r e -13
-KPX r eacute -13
-KPX r ecircumflex -13
-KPX r egrave -13
-KPX r f -2
-KPX r g -15
-KPX r h -28
-KPX r hyphen -22
-KPX r i 13
-KPX r j 5
-KPX r k -30
-KPX r l -27
-KPX r m 12
-KPX r n 12
-KPX r o -9
-KPX r oacute -9
-KPX r ocircumflex -9
-KPX r odieresis -9
-KPX r oe -3
-KPX r ograve -9
-KPX r oslash -7
-KPX r p 8
-KPX r period -118
-KPX r q -10
-KPX r quoteright 2
-KPX r r 12
-KPX r s -1
-KPX r semicolon -25
-KPX r t 4
-KPX r u 12
-KPX r v 26
-KPX r w 27
-KPX r x 1
-KPX r y 20
-KPX r z 10
-KPX s quoteright -25
-KPX s t -19
-KPX seven colon -92
-KPX seven comma -102
-KPX seven eight -49
-KPX seven five -56
-KPX seven four -94
-KPX seven one -72
-KPX seven period -105
-KPX seven seven -36
-KPX seven six -55
-KPX seven three -45
-KPX seven two -39
-KPX six four -15
-KPX six one -80
-KPX six seven -46
-KPX t S -9
-KPX t a -28
-KPX t aacute -28
-KPX t adieresis -28
-KPX t ae 6
-KPX t aring -28
-KPX t colon -27
-KPX t e -18
-KPX t eacute -18
-KPX t h -26
-KPX t o -15
-KPX t oacute -15
-KPX t odieresis -15
-KPX t quoteright -30
-KPX t semicolon -24
-KPX three four -24
-KPX three one -87
-KPX three seven -47
-KPX two four -29
-KPX two one -87
-KPX two seven -50
-KPX u quoteright -43
-KPX v a -15
-KPX v aacute -15
-KPX v acircumflex -15
-KPX v adieresis -15
-KPX v ae -5
-KPX v agrave -15
-KPX v aring -15
-KPX v atilde -15
-KPX v c -6
-KPX v colon -36
-KPX v comma -40
-KPX v e -7
-KPX v eacute -7
-KPX v ecircumflex -7
-KPX v egrave -7
-KPX v g -14
-KPX v hyphen 24
-KPX v l -23
-KPX v o -4
-KPX v oacute -4
-KPX v odieresis -4
-KPX v ograve -4
-KPX v oslash -2
-KPX v period -43
-KPX v s -5
-KPX v semicolon -34
-KPX w a -14
-KPX w aacute -14
-KPX w acircumflex -14
-KPX w adieresis -14
-KPX w ae -4
-KPX w agrave -14
-KPX w aring -14
-KPX w atilde -14
-KPX w c -4
-KPX w colon -36
-KPX w comma -37
-KPX w e -5
-KPX w eacute -5
-KPX w ecircumflex -5
-KPX w egrave -5
-KPX w g -13
-KPX w hyphen 25
-KPX w l -22
-KPX w o -3
-KPX w oacute -3
-KPX w odieresis -3
-KPX w ograve -3
-KPX w oslash -1
-KPX w period -40
-KPX w s -4
-KPX w semicolon -33
-KPX x a -32
-KPX x c -22
-KPX x e -22
-KPX x eacute -22
-KPX x o -20
-KPX x q -21
-KPX y a -9
-KPX y aacute -9
-KPX y acircumflex -9
-KPX y adieresis -9
-KPX y ae 4
-KPX y agrave -9
-KPX y aring -9
-KPX y atilde -9
-KPX y c 0
-KPX y colon -27
-KPX y comma -16
-KPX y e 0
-KPX y eacute 0
-KPX y ecircumflex 0
-KPX y egrave 0
-KPX y g -7
-KPX y hyphen 18
-KPX y l -16
-KPX y o 2
-KPX y oacute 2
-KPX y odieresis 2
-KPX y ograve 2
-KPX y oslash 5
-KPX y period -19
-KPX y s 3
-KPX y semicolon -24
-KPX zero four -17
-KPX zero one -82
-KPX zero seven -36
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/b018035l.pfb b/Master/xemtex/gsfonts/b018035l.pfb
deleted file mode 100644
index 749b71ea362..00000000000
--- a/Master/xemtex/gsfonts/b018035l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/b018035l.pfm b/Master/xemtex/gsfonts/b018035l.pfm
deleted file mode 100644
index 899dff37611..00000000000
--- a/Master/xemtex/gsfonts/b018035l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059013l.afm b/Master/xemtex/gsfonts/c059013l.afm
deleted file mode 100644
index c3bf69d3ed9..00000000000
--- a/Master/xemtex/gsfonts/c059013l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName CenturySchL-Roma
-FullName Century Schoolbook L Roman
-FamilyName Century Schoolbook L
-Weight Roman
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -104
-UnderlineThickness 61
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -217 -302 1000 981
-CapHeight 722
-XHeight 466
-Descender -202
-Ascender 737
-StartCharMetrics 316
-C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 296 ; N exclam ; B 87 -14 212 736 ;
-C 34 ; WX 389 ; N quotedbl ; B 61 498 328 736 ;
-C 35 ; WX 556 ; N numbersign ; B 33 0 524 686 ;
-C 36 ; WX 556 ; N dollar ; B 45 -130 510 801 ;
-C 37 ; WX 833 ; N percent ; B 45 0 792 722 ;
-C 38 ; WX 815 ; N ampersand ; B 51 -15 775 737 ;
-C 39 ; WX 204 ; N quoteright ; B 24 450 178 741 ;
-C 40 ; WX 333 ; N parenleft ; B 36 -123 279 736 ;
-C 41 ; WX 333 ; N parenright ; B 54 -123 297 736 ;
-C 42 ; WX 500 ; N asterisk ; B 56 300 443 736 ;
-C 43 ; WX 606 ; N plus ; B 51 0 555 505 ;
-C 44 ; WX 278 ; N comma ; B 64 -183 218 108 ;
-C 45 ; WX 333 ; N hyphen ; B 42 195 291 278 ;
-C 46 ; WX 278 ; N period ; B 74 -14 199 111 ;
-C 47 ; WX 278 ; N slash ; B -23 -14 302 736 ;
-C 48 ; WX 556 ; N zero ; B 42 -15 514 704 ;
-C 49 ; WX 556 ; N one ; B 100 0 496 704 ;
-C 50 ; WX 556 ; N two ; B 35 0 505 704 ;
-C 51 ; WX 556 ; N three ; B 42 -15 498 704 ;
-C 52 ; WX 556 ; N four ; B 28 0 527 704 ;
-C 53 ; WX 556 ; N five ; B 45 -15 502 704 ;
-C 54 ; WX 556 ; N six ; B 42 -15 516 704 ;
-C 55 ; WX 556 ; N seven ; B 59 -14 508 704 ;
-C 56 ; WX 556 ; N eight ; B 41 -15 513 704 ;
-C 57 ; WX 556 ; N nine ; B 39 -15 513 704 ;
-C 58 ; WX 278 ; N colon ; B 86 -14 211 473 ;
-C 59 ; WX 278 ; N semicolon ; B 72 -183 226 472 ;
-C 60 ; WX 606 ; N less ; B 49 -17 558 523 ;
-C 61 ; WX 606 ; N equal ; B 51 112 555 394 ;
-C 62 ; WX 606 ; N greater ; B 48 -17 557 523 ;
-C 63 ; WX 444 ; N question ; B 25 -15 411 736 ;
-C 64 ; WX 737 ; N at ; B 43 -14 705 736 ;
-C 65 ; WX 722 ; N A ; B -8 0 731 736 ;
-C 66 ; WX 722 ; N B ; B 30 0 670 722 ;
-C 67 ; WX 722 ; N C ; B 45 -15 668 737 ;
-C 68 ; WX 778 ; N D ; B 29 0 732 722 ;
-C 69 ; WX 722 ; N E ; B 29 0 663 722 ;
-C 70 ; WX 667 ; N F ; B 29 0 638 722 ;
-C 71 ; WX 778 ; N G ; B 42 -15 772 737 ;
-C 72 ; WX 833 ; N H ; B 29 0 804 722 ;
-C 73 ; WX 407 ; N I ; B 38 0 369 722 ;
-C 74 ; WX 556 ; N J ; B 5 -15 537 722 ;
-C 75 ; WX 778 ; N K ; B 30 0 803 722 ;
-C 76 ; WX 667 ; N L ; B 35 0 646 722 ;
-C 77 ; WX 944 ; N M ; B 22 0 913 722 ;
-C 78 ; WX 815 ; N N ; B 19 -14 794 722 ;
-C 79 ; WX 778 ; N O ; B 45 -15 733 737 ;
-C 80 ; WX 667 ; N P ; B 28 0 649 722 ;
-C 81 ; WX 778 ; N Q ; B 45 -189 749 737 ;
-C 82 ; WX 722 ; N R ; B 26 -15 713 722 ;
-C 83 ; WX 630 ; N S ; B 51 -15 590 737 ;
-C 84 ; WX 667 ; N T ; B 19 0 648 722 ;
-C 85 ; WX 815 ; N U ; B 17 -15 799 722 ;
-C 86 ; WX 722 ; N V ; B -8 -15 731 722 ;
-C 87 ; WX 981 ; N W ; B 6 -15 976 722 ;
-C 88 ; WX 704 ; N X ; B -6 0 716 722 ;
-C 89 ; WX 704 ; N Y ; B -13 0 713 722 ;
-C 90 ; WX 611 ; N Z ; B 24 0 575 722 ;
-C 91 ; WX 333 ; N bracketleft ; B 66 -108 297 722 ;
-C 92 ; WX 606 ; N backslash ; B 74 0 532 737 ;
-C 93 ; WX 333 ; N bracketright ; B 36 -108 266 722 ;
-C 94 ; WX 606 ; N asciicircum ; B 52 318 554 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -134 500 -73 ;
-C 96 ; WX 204 ; N quoteleft ; B 26 444 181 736 ;
-C 97 ; WX 556 ; N a ; B 44 -15 543 481 ;
-C 98 ; WX 556 ; N b ; B 8 -15 520 737 ;
-C 99 ; WX 444 ; N c ; B 34 -15 426 481 ;
-C 100 ; WX 574 ; N d ; B 43 -15 554 737 ;
-C 101 ; WX 500 ; N e ; B 35 -15 466 481 ;
-C 102 ; WX 333 ; N f ; B 19 0 433 737 ;
-C 103 ; WX 537 ; N g ; B 23 -203 542 495 ;
-C 104 ; WX 611 ; N h ; B 15 0 593 737 ;
-C 105 ; WX 315 ; N i ; B 18 0 289 715 ;
-C 106 ; WX 296 ; N j ; B -82 -202 218 715 ;
-C 107 ; WX 593 ; N k ; B 14 0 587 737 ;
-C 108 ; WX 315 ; N l ; B 19 0 287 737 ;
-C 109 ; WX 889 ; N m ; B 23 0 868 481 ;
-C 110 ; WX 611 ; N n ; B 27 0 593 481 ;
-C 111 ; WX 500 ; N o ; B 34 -15 466 481 ;
-C 112 ; WX 574 ; N p ; B 28 -202 535 481 ;
-C 113 ; WX 556 ; N q ; B 36 -202 548 481 ;
-C 114 ; WX 444 ; N r ; B 21 0 435 481 ;
-C 115 ; WX 463 ; N s ; B 51 -15 421 481 ;
-C 116 ; WX 389 ; N t ; B 18 -15 374 664 ;
-C 117 ; WX 611 ; N u ; B 21 -15 594 466 ;
-C 118 ; WX 537 ; N v ; B 8 -15 528 466 ;
-C 119 ; WX 778 ; N w ; B 15 -15 763 466 ;
-C 120 ; WX 537 ; N x ; B 9 0 529 466 ;
-C 121 ; WX 537 ; N y ; B 3 -206 531 466 ;
-C 122 ; WX 481 ; N z ; B 39 0 435 466 ;
-C 123 ; WX 333 ; N braceleft ; B 66 -108 297 722 ;
-C 124 ; WX 606 ; N bar ; B 264 0 342 722 ;
-C 125 ; WX 333 ; N braceright ; B 36 -108 267 722 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 165 555 327 ;
-C 161 ; WX 296 ; N exclamdown ; B 86 -202 211 549 ;
-C 162 ; WX 556 ; N cent ; B 71 -141 479 585 ;
-C 163 ; WX 556 ; N sterling ; B 17 -15 537 704 ;
-C 164 ; WX 167 ; N fraction ; B -217 0 339 708 ;
-C 165 ; WX 556 ; N yen ; B -1 0 557 722 ;
-C 166 ; WX 556 ; N florin ; B 3 -205 541 737 ;
-C 167 ; WX 500 ; N section ; B 58 -148 448 736 ;
-C 168 ; WX 556 ; N currency ; B 26 93 530 597 ;
-C 169 ; WX 204 ; N quotesingle ; B 59 498 145 736 ;
-C 170 ; WX 389 ; N quotedblleft ; B 26 444 365 736 ;
-C 171 ; WX 426 ; N guillemotleft ; B 38 85 388 402 ;
-C 172 ; WX 259 ; N guilsinglleft ; B 38 85 221 402 ;
-C 173 ; WX 259 ; N guilsinglright ; B 39 85 221 402 ;
-C 174 ; WX 611 ; N fi ; B 16 0 588 736 ;
-C 175 ; WX 611 ; N fl ; B 16 0 590 737 ;
-C 177 ; WX 556 ; N endash ; B 0 206 556 267 ;
-C 178 ; WX 500 ; N dagger ; B 44 -144 460 737 ;
-C 179 ; WX 500 ; N daggerdbl ; B 47 -144 462 737 ;
-C 180 ; WX 278 ; N periodcentered ; B 76 184 201 309 ;
-C 182 ; WX 606 ; N paragraph ; B 49 -144 557 722 ;
-C 183 ; WX 606 ; N bullet ; B 134 217 471 554 ;
-C 184 ; WX 204 ; N quotesinglbase ; B 24 -183 178 108 ;
-C 185 ; WX 389 ; N quotedblbase ; B 24 -183 362 108 ;
-C 186 ; WX 389 ; N quotedblright ; B 24 444 362 736 ;
-C 187 ; WX 426 ; N guillemotright ; B 39 85 388 402 ;
-C 188 ; WX 1000 ; N ellipsis ; B 104 -14 895 111 ;
-C 189 ; WX 1000 ; N perthousand ; B 2 -2 991 700 ;
-C 191 ; WX 444 ; N questiondown ; B 30 -202 416 549 ;
-C 193 ; WX 333 ; N grave ; B 17 535 242 706 ;
-C 194 ; WX 333 ; N acute ; B 91 535 316 706 ;
-C 195 ; WX 333 ; N circumflex ; B 10 535 323 701 ;
-C 196 ; WX 333 ; N tilde ; B 1 553 332 659 ;
-C 197 ; WX 333 ; N macron ; B 10 568 323 622 ;
-C 198 ; WX 333 ; N breve ; B 25 535 308 692 ;
-C 199 ; WX 333 ; N dotaccent ; B 117 544 217 644 ;
-C 200 ; WX 333 ; N dieresis ; B 17 544 316 644 ;
-C 202 ; WX 333 ; N ring ; B 67 530 266 729 ;
-C 203 ; WX 333 ; N cedilla ; B 29 -215 237 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 45 535 288 701 ;
-C 206 ; WX 333 ; N ogonek ; B 68 -152 246 0 ;
-C 207 ; WX 333 ; N caron ; B 10 535 323 701 ;
-C 208 ; WX 1000 ; N emdash ; B 0 206 1000 267 ;
-C 225 ; WX 1000 ; N AE ; B 0 0 963 722 ;
-C 227 ; WX 334 ; N ordfeminine ; B 5 329 329 730 ;
-C 232 ; WX 667 ; N Lslash ; B 34 0 645 722 ;
-C 233 ; WX 778 ; N Oslash ; B 30 -76 733 762 ;
-C 234 ; WX 1000 ; N OE ; B 19 0 981 722 ;
-C 235 ; WX 300 ; N ordmasculine ; B 10 329 291 730 ;
-C 241 ; WX 796 ; N ae ; B 36 -15 759 481 ;
-C 245 ; WX 315 ; N dotlessi ; B 18 0 289 466 ;
-C 248 ; WX 315 ; N lslash ; B 19 0 287 737 ;
-C 249 ; WX 500 ; N oslash ; B 34 -91 466 555 ;
-C 250 ; WX 833 ; N oe ; B 34 -15 800 481 ;
-C 251 ; WX 574 ; N germandbls ; B 29 -15 535 737 ;
-C -1 ; WX 815 ; N Udieresis ; B 17 -15 799 902 ;
-C -1 ; WX 815 ; N Uacute ; B 17 -15 799 958 ;
-C -1 ; WX 630 ; N Scedilla ; B 51 -215 590 737 ;
-C -1 ; WX 667 ; N Tcaron ; B 19 0 648 953 ;
-C -1 ; WX 630 ; N Scaron ; B 51 -15 590 953 ;
-C -1 ; WX 722 ; N Rcaron ; B 26 -15 713 953 ;
-C -1 ; WX 722 ; N Racute ; B 26 -15 713 958 ;
-C -1 ; WX 630 ; N Sacute ; B 51 -15 590 958 ;
-C -1 ; WX 778 ; N Otilde ; B 45 -15 733 915 ;
-C -1 ; WX 611 ; N ucircumflex ; B 21 -15 594 701 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 45 -15 733 953 ;
-C -1 ; WX 815 ; N Uhungarumlaut ; B 17 -15 799 953 ;
-C -1 ; WX 704 ; N Yacute ; B -13 0 713 958 ;
-C -1 ; WX 778 ; N Eth ; B 29 0 732 722 ;
-C -1 ; WX 778 ; N Dcroat ; B 29 0 732 722 ;
-C -1 ; WX 611 ; N Zacute ; B 24 0 575 958 ;
-C -1 ; WX 815 ; N Uring ; B 17 -15 799 981 ;
-C -1 ; WX 537 ; N gbreve ; B 23 -203 542 692 ;
-C -1 ; WX 500 ; N eogonek ; B 35 -152 466 481 ;
-C -1 ; WX 500 ; N edotaccent ; B 35 -15 466 644 ;
-C -1 ; WX 500 ; N ecaron ; B 35 -15 466 701 ;
-C -1 ; WX 815 ; N Ugrave ; B 17 -15 799 958 ;
-C -1 ; WX 667 ; N Thorn ; B 28 0 649 722 ;
-C -1 ; WX 500 ; N eacute ; B 35 -15 466 706 ;
-C -1 ; WX 500 ; N edieresis ; B 35 -15 466 644 ;
-C -1 ; WX 606 ; N dcaron ; B 43 -15 627 740 ;
-C -1 ; WX 444 ; N ccedilla ; B 34 -215 426 481 ;
-C -1 ; WX 444 ; N ccaron ; B 34 -15 426 701 ;
-C -1 ; WX 444 ; N cacute ; B 34 -15 426 706 ;
-C -1 ; WX 556 ; N aogonek ; B 44 -152 564 481 ;
-C -1 ; WX 556 ; N aring ; B 44 -15 543 729 ;
-C -1 ; WX 556 ; N atilde ; B 44 -15 543 659 ;
-C -1 ; WX 556 ; N abreve ; B 44 -15 543 692 ;
-C -1 ; WX 500 ; N egrave ; B 35 -15 466 706 ;
-C -1 ; WX 556 ; N agrave ; B 44 -15 543 706 ;
-C -1 ; WX 556 ; N aacute ; B 44 -15 543 706 ;
-C -1 ; WX 556 ; N adieresis ; B 44 -15 543 644 ;
-C -1 ; WX 815 ; N Uogonek ; B 17 -152 799 722 ;
-C -1 ; WX 611 ; N ugrave ; B 21 -15 594 706 ;
-C -1 ; WX 611 ; N uacute ; B 21 -15 594 706 ;
-C -1 ; WX 611 ; N udieresis ; B 21 -15 594 644 ;
-C -1 ; WX 389 ; N tcaron ; B 18 -15 389 740 ;
-C -1 ; WX 463 ; N scommaaccent ; B 51 -302 421 481 ;
-C -1 ; WX 611 ; N Zcaron ; B 24 0 575 953 ;
-C -1 ; WX 500 ; N ecircumflex ; B 35 -15 466 701 ;
-C -1 ; WX 815 ; N Ucircumflex ; B 17 -15 799 953 ;
-C -1 ; WX 556 ; N acircumflex ; B 44 -15 543 701 ;
-C -1 ; WX 611 ; N Zdotaccent ; B 24 0 575 896 ;
-C -1 ; WX 463 ; N scaron ; B 51 -15 421 701 ;
-C -1 ; WX 722 ; N Amacron ; B -8 0 731 874 ;
-C -1 ; WX 463 ; N sacute ; B 51 -15 421 706 ;
-C -1 ; WX 667 ; N Tcommaaccent ; B 19 -302 648 722 ;
-C -1 ; WX 704 ; N Ydieresis ; B -13 0 713 902 ;
-C -1 ; WX 574 ; N thorn ; B 28 -202 535 737 ;
-C -1 ; WX 722 ; N Emacron ; B 29 0 663 874 ;
-C -1 ; WX 778 ; N Ograve ; B 45 -15 733 958 ;
-C -1 ; WX 778 ; N Oacute ; B 45 -15 733 958 ;
-C -1 ; WX 778 ; N Odieresis ; B 45 -15 733 902 ;
-C -1 ; WX 815 ; N Ntilde ; B 19 -14 794 915 ;
-C -1 ; WX 815 ; N Ncaron ; B 19 -14 794 953 ;
-C -1 ; WX 815 ; N Nacute ; B 19 -14 794 958 ;
-C -1 ; WX 667 ; N Lcaron ; B 35 0 646 740 ;
-C -1 ; WX 667 ; N Lacute ; B 35 0 646 958 ;
-C -1 ; WX 407 ; N Idotaccent ; B 38 0 369 896 ;
-C -1 ; WX 444 ; N racute ; B 21 0 435 706 ;
-C -1 ; WX 407 ; N Icircumflex ; B 38 0 369 953 ;
-C -1 ; WX 500 ; N ohungarumlaut ; B 34 -15 466 701 ;
-C -1 ; WX 500 ; N otilde ; B 34 -15 466 659 ;
-C -1 ; WX 556 ; N Euro ; B 0 -15 545 713 ;
-C -1 ; WX 500 ; N ocircumflex ; B 34 -15 466 701 ;
-C -1 ; WX 333 ; N onesuperior ; B 39 289 294 712 ;
-C -1 ; WX 333 ; N twosuperior ; B 13 289 319 712 ;
-C -1 ; WX 333 ; N threesuperior ; B 18 280 314 712 ;
-C -1 ; WX 407 ; N Igrave ; B 38 0 369 958 ;
-C -1 ; WX 407 ; N Iacute ; B 38 0 369 958 ;
-C -1 ; WX 407 ; N Imacron ; B 38 0 369 874 ;
-C -1 ; WX 407 ; N Iogonek ; B 38 -152 407 722 ;
-C -1 ; WX 407 ; N Idieresis ; B 38 0 369 902 ;
-C -1 ; WX 778 ; N Gbreve ; B 42 -15 772 944 ;
-C -1 ; WX 815 ; N Umacron ; B 17 -15 799 874 ;
-C -1 ; WX 778 ; N Kcommaaccent ; B 30 -302 803 722 ;
-C -1 ; WX 500 ; N ograve ; B 34 -15 466 706 ;
-C -1 ; WX 630 ; N Scommaaccent ; B 51 -302 590 737 ;
-C -1 ; WX 722 ; N Eogonek ; B 29 -152 680 722 ;
-C -1 ; WX 500 ; N oacute ; B 34 -15 466 706 ;
-C -1 ; WX 722 ; N Edotaccent ; B 29 0 663 896 ;
-C -1 ; WX 315 ; N iogonek ; B 18 -152 327 715 ;
-C -1 ; WX 537 ; N gcommaaccent ; B 23 -203 542 780 ;
-C -1 ; WX 500 ; N odieresis ; B 34 -15 466 644 ;
-C -1 ; WX 611 ; N ntilde ; B 27 0 593 659 ;
-C -1 ; WX 611 ; N ncaron ; B 27 0 593 701 ;
-C -1 ; WX 722 ; N Ecaron ; B 29 0 663 953 ;
-C -1 ; WX 722 ; N Ecircumflex ; B 29 0 663 953 ;
-C -1 ; WX 463 ; N scedilla ; B 51 -215 421 481 ;
-C -1 ; WX 444 ; N rcaron ; B 21 0 435 701 ;
-C -1 ; WX 722 ; N Egrave ; B 29 0 663 958 ;
-C -1 ; WX 722 ; N Eacute ; B 29 0 663 958 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 42 -302 772 737 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 26 -302 713 722 ;
-C -1 ; WX 722 ; N Edieresis ; B 29 0 663 902 ;
-C -1 ; WX 611 ; N nacute ; B 27 0 593 706 ;
-C -1 ; WX 611 ; N uogonek ; B 21 -152 632 466 ;
-C -1 ; WX 611 ; N umacron ; B 21 -15 594 622 ;
-C -1 ; WX 778 ; N Dcaron ; B 29 0 732 953 ;
-C -1 ; WX 339 ; N lcaron ; B 19 0 359 740 ;
-C -1 ; WX 722 ; N Ccaron ; B 45 -15 668 953 ;
-C -1 ; WX 722 ; N Cacute ; B 45 -15 668 958 ;
-C -1 ; WX 722 ; N Ccedilla ; B 45 -216 668 737 ;
-C -1 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C -1 ; WX 722 ; N Aogonek ; B -8 -152 769 736 ;
-C -1 ; WX 606 ; N minus ; B 51 213 555 293 ;
-C -1 ; WX 606 ; N multiply ; B 51 1 555 505 ;
-C -1 ; WX 606 ; N divide ; B 51 -9 555 515 ;
-C -1 ; WX 722 ; N Aring ; B -8 0 731 979 ;
-C -1 ; WX 1000 ; N trademark ; B 45 294 955 722 ;
-C -1 ; WX 444 ; N rcommaaccent ; B 21 -302 435 481 ;
-C -1 ; WX 315 ; N lacute ; B 19 0 307 958 ;
-C -1 ; WX 500 ; N omacron ; B 34 -15 466 622 ;
-C -1 ; WX 722 ; N Atilde ; B -8 0 731 915 ;
-C -1 ; WX 315 ; N icircumflex ; B 1 0 314 701 ;
-C -1 ; WX 315 ; N igrave ; B 8 0 289 706 ;
-C -1 ; WX 611 ; N ncommaaccent ; B 27 -302 593 481 ;
-C -1 ; WX 315 ; N lcommaaccent ; B 19 -302 287 737 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 555 581 ;
-C -1 ; WX 834 ; N onehalf ; B 39 0 821 712 ;
-C -1 ; WX 834 ; N onequarter ; B 39 0 795 712 ;
-C -1 ; WX 834 ; N threequarters ; B 28 0 795 712 ;
-C -1 ; WX 315 ; N iacute ; B 18 0 307 706 ;
-C -1 ; WX 722 ; N Abreve ; B -8 0 731 944 ;
-C -1 ; WX 593 ; N kcommaaccent ; B 14 -302 587 737 ;
-C -1 ; WX 778 ; N Omacron ; B 45 -15 733 874 ;
-C -1 ; WX 315 ; N imacron ; B 1 0 314 622 ;
-C -1 ; WX 500 ; N emacron ; B 35 -15 466 622 ;
-C -1 ; WX 556 ; N amacron ; B 44 -15 543 622 ;
-C -1 ; WX 389 ; N tcommaaccent ; B 18 -302 374 664 ;
-C -1 ; WX 537 ; N ydieresis ; B 3 -206 531 644 ;
-C -1 ; WX 481 ; N zdotaccent ; B 39 0 435 644 ;
-C -1 ; WX 481 ; N zcaron ; B 39 0 435 701 ;
-C -1 ; WX 481 ; N zacute ; B 39 0 436 706 ;
-C -1 ; WX 537 ; N yacute ; B 3 -206 531 706 ;
-C -1 ; WX 611 ; N uhungarumlaut ; B 21 -15 594 701 ;
-C -1 ; WX 500 ; N eth ; B 34 -15 466 731 ;
-C -1 ; WX 611 ; N uring ; B 21 -15 594 729 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 45 -15 733 953 ;
-C -1 ; WX 333 ; N commaaccent ; B 96 -302 235 -40 ;
-C -1 ; WX 737 ; N copyright ; B -8 -15 744 737 ;
-C -1 ; WX 737 ; N registered ; B -8 -15 744 737 ;
-C -1 ; WX 722 ; N Acircumflex ; B -8 0 731 953 ;
-C -1 ; WX 315 ; N idieresis ; B 8 0 307 644 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 51 -43 555 549 ;
-C -1 ; WX 549 ; N radical ; B -10 -35 531 916 ;
-C -1 ; WX 722 ; N Agrave ; B -8 0 731 958 ;
-C -1 ; WX 722 ; N Aacute ; B -8 0 731 958 ;
-C -1 ; WX 606 ; N lessequal ; B 49 0 558 643 ;
-C -1 ; WX 606 ; N greaterequal ; B 48 0 557 643 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 0 555 293 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 815 ; N Ncommaaccent ; B 19 -302 794 722 ;
-C -1 ; WX 574 ; N dcroat ; B 43 -15 554 737 ;
-C -1 ; WX 606 ; N brokenbar ; B 264 0 342 722 ;
-C -1 ; WX 667 ; N Lcommaaccent ; B 35 -302 646 722 ;
-C -1 ; WX 722 ; N Adieresis ; B -8 0 731 902 ;
-C -1 ; WX 611 ; N mu ; B 21 -219 594 466 ;
-C -1 ; WX 278 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -38
-KPX A Ccedilla -43
-KPX A G -37
-KPX A O -41
-KPX A Odieresis -41
-KPX A Q -39
-KPX A T -31
-KPX A U -41
-KPX A Uacute -41
-KPX A Ucircumflex -41
-KPX A Udieresis -41
-KPX A Ugrave -41
-KPX A V -101
-KPX A W -90
-KPX A Y -45
-KPX A a 15
-KPX A b 8
-KPX A c -2
-KPX A ccedilla -9
-KPX A comma 13
-KPX A d -6
-KPX A e -5
-KPX A g 18
-KPX A guillemotleft -36
-KPX A guilsinglleft -36
-KPX A hyphen -6
-KPX A o -9
-KPX A period 12
-KPX A q 0
-KPX A quotedblright -67
-KPX A quoteright -66
-KPX A t -12
-KPX A u -15
-KPX A v -66
-KPX A w -61
-KPX A y -70
-KPX Aacute C -38
-KPX Aacute G -37
-KPX Aacute O -41
-KPX Aacute Q -39
-KPX Aacute T -31
-KPX Aacute U -41
-KPX Aacute V -101
-KPX Aacute W -90
-KPX Aacute Y -45
-KPX Aacute a 15
-KPX Aacute b 8
-KPX Aacute c -2
-KPX Aacute comma 13
-KPX Aacute d -6
-KPX Aacute e -5
-KPX Aacute g 18
-KPX Aacute guillemotleft -36
-KPX Aacute guilsinglleft -36
-KPX Aacute hyphen -6
-KPX Aacute o -9
-KPX Aacute period 12
-KPX Aacute q 0
-KPX Aacute quoteright -66
-KPX Aacute t -12
-KPX Aacute u -15
-KPX Aacute v -66
-KPX Aacute w -61
-KPX Aacute y -70
-KPX Acircumflex C -38
-KPX Acircumflex G -37
-KPX Acircumflex O -41
-KPX Acircumflex Q -39
-KPX Acircumflex T -31
-KPX Acircumflex U -41
-KPX Acircumflex V -101
-KPX Acircumflex W -90
-KPX Acircumflex Y -45
-KPX Acircumflex comma 13
-KPX Acircumflex period 12
-KPX Adieresis C -38
-KPX Adieresis G -37
-KPX Adieresis O -41
-KPX Adieresis Q -39
-KPX Adieresis T -31
-KPX Adieresis U -41
-KPX Adieresis V -101
-KPX Adieresis W -90
-KPX Adieresis Y -45
-KPX Adieresis a 15
-KPX Adieresis b 8
-KPX Adieresis c -2
-KPX Adieresis comma 13
-KPX Adieresis d -6
-KPX Adieresis g 18
-KPX Adieresis guillemotleft -36
-KPX Adieresis guilsinglleft -36
-KPX Adieresis hyphen -6
-KPX Adieresis o -9
-KPX Adieresis period 12
-KPX Adieresis q 0
-KPX Adieresis quotedblright -67
-KPX Adieresis quoteright -66
-KPX Adieresis t -12
-KPX Adieresis u -15
-KPX Adieresis v -66
-KPX Adieresis w -61
-KPX Adieresis y -70
-KPX Agrave C -38
-KPX Agrave G -37
-KPX Agrave O -41
-KPX Agrave Q -39
-KPX Agrave T -31
-KPX Agrave U -41
-KPX Agrave V -101
-KPX Agrave W -90
-KPX Agrave Y -45
-KPX Agrave comma 13
-KPX Agrave period 12
-KPX Aring C -38
-KPX Aring G -37
-KPX Aring O -41
-KPX Aring Q -39
-KPX Aring T -31
-KPX Aring U -41
-KPX Aring V -101
-KPX Aring W -90
-KPX Aring Y -45
-KPX Aring a 15
-KPX Aring b 8
-KPX Aring c -2
-KPX Aring comma 13
-KPX Aring d -6
-KPX Aring e -5
-KPX Aring g 18
-KPX Aring guillemotleft -36
-KPX Aring guilsinglleft -36
-KPX Aring hyphen -6
-KPX Aring o -9
-KPX Aring period 12
-KPX Aring q 0
-KPX Aring quotedblright -67
-KPX Aring quoteright -66
-KPX Aring t -12
-KPX Aring u -15
-KPX Aring v -66
-KPX Aring w -61
-KPX Aring y -70
-KPX Atilde C -38
-KPX Atilde G -37
-KPX Atilde O -41
-KPX Atilde Q -39
-KPX Atilde T -31
-KPX Atilde U -41
-KPX Atilde V -101
-KPX Atilde W -90
-KPX Atilde Y -45
-KPX Atilde comma 13
-KPX Atilde period 12
-KPX B A -9
-KPX B AE -13
-KPX B Aacute -9
-KPX B Acircumflex -9
-KPX B Adieresis -9
-KPX B Aring -9
-KPX B Atilde -9
-KPX B O -11
-KPX B OE 0
-KPX B Oacute -11
-KPX B Ocircumflex -11
-KPX B Odieresis -11
-KPX B Ograve -11
-KPX B Oslash -9
-KPX B V -26
-KPX B W -33
-KPX B Y -19
-KPX C A -24
-KPX C AE -28
-KPX C Aacute -24
-KPX C Adieresis -24
-KPX C Aring -24
-KPX C H -9
-KPX C K -9
-KPX C O -6
-KPX C Oacute -6
-KPX C Odieresis -6
-KPX Ccedilla A -28
-KPX D A -38
-KPX D Aacute -38
-KPX D Acircumflex -38
-KPX D Adieresis -38
-KPX D Agrave -38
-KPX D Aring -38
-KPX D Atilde -38
-KPX D J 6
-KPX D T 10
-KPX D V -41
-KPX D W -47
-KPX D X -37
-KPX D Y -34
-KPX F A -77
-KPX F Aacute -77
-KPX F Acircumflex -77
-KPX F Adieresis -77
-KPX F Agrave -77
-KPX F Aring -77
-KPX F Atilde -77
-KPX F J -57
-KPX F O 2
-KPX F Odieresis 2
-KPX F a -36
-KPX F aacute -36
-KPX F adieresis -36
-KPX F ae -33
-KPX F aring -36
-KPX F comma -93
-KPX F e -42
-KPX F eacute -42
-KPX F hyphen -40
-KPX F i 11
-KPX F j 14
-KPX F o -41
-KPX F oacute -41
-KPX F odieresis -29
-KPX F oe -40
-KPX F oslash -45
-KPX F period -94
-KPX F r 10
-KPX F u 14
-KPX G A -6
-KPX G AE -10
-KPX G Aacute -6
-KPX G Acircumflex -6
-KPX G Adieresis -6
-KPX G Agrave -6
-KPX G Aring -6
-KPX G Atilde -6
-KPX G T -12
-KPX G V -13
-KPX G W -20
-KPX G Y -10
-KPX J A -42
-KPX J AE -46
-KPX J Adieresis -42
-KPX J Aring -42
-KPX K C -30
-KPX K G -29
-KPX K O -33
-KPX K OE -23
-KPX K Oacute -33
-KPX K Odieresis -33
-KPX K S 30
-KPX K T 21
-KPX K a 23
-KPX K adieresis 23
-KPX K ae 28
-KPX K aring 23
-KPX K e 2
-KPX K hyphen -30
-KPX K o -1
-KPX K oacute -1
-KPX K odieresis -1
-KPX K u -7
-KPX K udieresis -7
-KPX K y -67
-KPX L A 29
-KPX L AE 25
-KPX L Aacute 29
-KPX L Adieresis 29
-KPX L Aring 29
-KPX L C 7
-KPX L Ccedilla 6
-KPX L G 9
-KPX L O 6
-KPX L Oacute 6
-KPX L Ocircumflex 6
-KPX L Odieresis 6
-KPX L Ograve 6
-KPX L Otilde 6
-KPX L S 8
-KPX L T -51
-KPX L U -27
-KPX L Udieresis -27
-KPX L V -80
-KPX L W -69
-KPX L Y -69
-KPX L hyphen 49
-KPX L quotedblright -47
-KPX L quoteright -46
-KPX L u -8
-KPX L udieresis -8
-KPX L y -37
-KPX N A -19
-KPX N AE -23
-KPX N Aacute -19
-KPX N Adieresis -19
-KPX N Aring -19
-KPX N C -26
-KPX N Ccedilla -26
-KPX N G -24
-KPX N O -26
-KPX N Oacute -26
-KPX N Odieresis -26
-KPX N a -37
-KPX N aacute -37
-KPX N adieresis -37
-KPX N ae -32
-KPX N aring -37
-KPX N comma -24
-KPX N e -29
-KPX N eacute -29
-KPX N o -29
-KPX N oacute -29
-KPX N odieresis -29
-KPX N oslash -28
-KPX N period -25
-KPX N u -39
-KPX N udieresis -39
-KPX O A -41
-KPX O AE -45
-KPX O Aacute -41
-KPX O Adieresis -41
-KPX O Aring -41
-KPX O T 10
-KPX O V -38
-KPX O W -45
-KPX O X -34
-KPX O Y -31
-KPX Oacute A -41
-KPX Oacute T 10
-KPX Oacute V -38
-KPX Oacute W -45
-KPX Oacute Y -31
-KPX Ocircumflex T 10
-KPX Ocircumflex V -38
-KPX Ocircumflex Y -31
-KPX Odieresis A -41
-KPX Odieresis T 10
-KPX Odieresis V -38
-KPX Odieresis W -45
-KPX Odieresis X -34
-KPX Odieresis Y -31
-KPX Ograve T 10
-KPX Ograve V -38
-KPX Ograve Y -31
-KPX Oslash A -44
-KPX Otilde T 10
-KPX Otilde V -38
-KPX Otilde Y -31
-KPX P A -76
-KPX P AE -84
-KPX P Aacute -76
-KPX P Adieresis -76
-KPX P Aring -76
-KPX P J -56
-KPX P a -23
-KPX P aacute -23
-KPX P adieresis -23
-KPX P ae -20
-KPX P aring -23
-KPX P comma -100
-KPX P e -26
-KPX P eacute -26
-KPX P hyphen -35
-KPX P o -26
-KPX P oacute -26
-KPX P odieresis -25
-KPX P oe -25
-KPX P oslash -29
-KPX P period -101
-KPX R C -3
-KPX R Ccedilla -5
-KPX R G 0
-KPX R O -5
-KPX R OE 6
-KPX R Oacute -5
-KPX R Odieresis -5
-KPX R T -10
-KPX R U -22
-KPX R Udieresis -22
-KPX R V -21
-KPX R W -28
-KPX R Y -14
-KPX R a 11
-KPX R aacute 11
-KPX R adieresis 11
-KPX R ae 15
-KPX R aring 11
-KPX R e 15
-KPX R eacute 15
-KPX R hyphen 30
-KPX R o 13
-KPX R oacute 13
-KPX R odieresis 13
-KPX R oe 14
-KPX R u -15
-KPX R uacute -15
-KPX R udieresis -15
-KPX R y -19
-KPX S A -1
-KPX S AE -5
-KPX S Aacute -1
-KPX S Adieresis -1
-KPX S Aring -1
-KPX S T -1
-KPX S V 8
-KPX S W 1
-KPX S Y 10
-KPX S t -5
-KPX T A -32
-KPX T AE -36
-KPX T Aacute -32
-KPX T Acircumflex -32
-KPX T Adieresis -32
-KPX T Agrave -32
-KPX T Aring -32
-KPX T Atilde -32
-KPX T C 10
-KPX T G 12
-KPX T J -58
-KPX T O 10
-KPX T OE 23
-KPX T Oacute 10
-KPX T Ocircumflex 10
-KPX T Odieresis 10
-KPX T Ograve 10
-KPX T Oslash 10
-KPX T Otilde 10
-KPX T S 0
-KPX T V 33
-KPX T W 26
-KPX T Y 35
-KPX T a -19
-KPX T ae -15
-KPX T c -23
-KPX T colon -9
-KPX T comma -71
-KPX T e -24
-KPX T g -23
-KPX T guillemotleft -104
-KPX T guilsinglleft -104
-KPX T hyphen -74
-KPX T i 21
-KPX T j 23
-KPX T o -23
-KPX T oslash -27
-KPX T period -73
-KPX T r 19
-KPX T s -10
-KPX T semicolon -9
-KPX T u 19
-KPX T v 26
-KPX T w 22
-KPX T y 23
-KPX U A -54
-KPX U AE -58
-KPX U Aacute -54
-KPX U Acircumflex -54
-KPX U Adieresis -54
-KPX U Aring -54
-KPX U Atilde -54
-KPX U comma -43
-KPX U m -38
-KPX U n -40
-KPX U p -40
-KPX U period -44
-KPX U r -37
-KPX Uacute A -54
-KPX Uacute comma -43
-KPX Uacute m -38
-KPX Uacute n -40
-KPX Uacute p -40
-KPX Uacute period -44
-KPX Uacute r -37
-KPX Ucircumflex A -54
-KPX Udieresis A -54
-KPX Udieresis b 27
-KPX Udieresis comma -43
-KPX Udieresis m -38
-KPX Udieresis n -40
-KPX Udieresis p -40
-KPX Udieresis period -44
-KPX Udieresis r -37
-KPX Ugrave A -54
-KPX V A -100
-KPX V AE -70
-KPX V Aacute -100
-KPX V Acircumflex -100
-KPX V Adieresis -100
-KPX V Agrave -100
-KPX V Aring -100
-KPX V Atilde -100
-KPX V C -40
-KPX V G -39
-KPX V O -36
-KPX V Oacute -36
-KPX V Ocircumflex -36
-KPX V Odieresis -36
-KPX V Ograve -36
-KPX V Oslash -39
-KPX V Otilde -36
-KPX V S -7
-KPX V T 33
-KPX V a -87
-KPX V ae -84
-KPX V colon -81
-KPX V comma -101
-KPX V e -82
-KPX V g -86
-KPX V guillemotleft -85
-KPX V guilsinglleft -85
-KPX V hyphen -57
-KPX V i -7
-KPX V o -82
-KPX V oslash -82
-KPX V period -102
-KPX V r -49
-KPX V semicolon -81
-KPX V u -47
-KPX V y -43
-KPX W A -84
-KPX W AE -77
-KPX W Aacute -84
-KPX W Acircumflex -84
-KPX W Adieresis -84
-KPX W Agrave -84
-KPX W Aring -84
-KPX W Atilde -84
-KPX W C -47
-KPX W G -45
-KPX W O -43
-KPX W Oacute -43
-KPX W Ocircumflex -43
-KPX W Odieresis -43
-KPX W Ograve -43
-KPX W Oslash -43
-KPX W Otilde -43
-KPX W S -14
-KPX W T 26
-KPX W a -75
-KPX W ae -70
-KPX W colon -75
-KPX W comma -79
-KPX W e -66
-KPX W g -70
-KPX W guillemotleft -70
-KPX W guilsinglleft -70
-KPX W hyphen -41
-KPX W i -14
-KPX W o -67
-KPX W oslash -66
-KPX W period -81
-KPX W r -43
-KPX W semicolon -75
-KPX W u -42
-KPX W y -38
-KPX X C -36
-KPX X O -39
-KPX X Odieresis -39
-KPX X Q -37
-KPX X a 17
-KPX X e -3
-KPX X hyphen -37
-KPX X o -7
-KPX X u -14
-KPX X y -74
-KPX Y A -36
-KPX Y AE -40
-KPX Y Aacute -36
-KPX Y Acircumflex -36
-KPX Y Adieresis -36
-KPX Y Agrave -36
-KPX Y Aring -36
-KPX Y Atilde -36
-KPX Y C -36
-KPX Y G -34
-KPX Y O -32
-KPX Y Oacute -32
-KPX Y Ocircumflex -32
-KPX Y Odieresis -32
-KPX Y Ograve -32
-KPX Y Oslash -35
-KPX Y Otilde -32
-KPX Y S -3
-KPX Y T 33
-KPX Y a -74
-KPX Y ae -69
-KPX Y colon -83
-KPX Y comma -76
-KPX Y e -88
-KPX Y g -71
-KPX Y guillemotleft -104
-KPX Y guilsinglleft -104
-KPX Y hyphen -78
-KPX Y i -7
-KPX Y o -89
-KPX Y oslash -88
-KPX Y p -71
-KPX Y period -77
-KPX Y semicolon -80
-KPX Y u -64
-KPX Y v -58
-KPX Z v -38
-KPX Z y -42
-KPX a j -28
-KPX a quoteright -11
-KPX a v -33
-KPX a w -37
-KPX a y -39
-KPX aacute v -33
-KPX aacute w -37
-KPX aacute y -39
-KPX adieresis v -33
-KPX adieresis w -37
-KPX adieresis y -39
-KPX ae v -21
-KPX ae w -25
-KPX ae y -29
-KPX agrave v -33
-KPX agrave w -37
-KPX agrave y -39
-KPX aring v -33
-KPX aring w -37
-KPX aring y -39
-KPX b v -17
-KPX b w -21
-KPX b y -25
-KPX c h -14
-KPX c k -14
-KPX comma one -35
-KPX comma quotedblright -13
-KPX comma quoteright -12
-KPX e quoteright 10
-KPX e t -20
-KPX e v -19
-KPX e w -22
-KPX e x -18
-KPX e y -25
-KPX eacute v -19
-KPX eacute w -22
-KPX eacute y -25
-KPX ecircumflex v -19
-KPX ecircumflex w -22
-KPX ecircumflex y -25
-KPX eight four 9
-KPX eight one -44
-KPX eight seven -24
-KPX f a -15
-KPX f aacute -15
-KPX f adieresis 19
-KPX f ae -11
-KPX f aring -3
-KPX f e -23
-KPX f eacute -23
-KPX f f 21
-KPX f i 32
-KPX f j 32
-KPX f l 73
-KPX f o -21
-KPX f oacute -21
-KPX f odieresis 31
-KPX f oe -21
-KPX f oslash -25
-KPX f quoteright 72
-KPX f s -10
-KPX f t 13
-KPX five four 4
-KPX five one -63
-KPX five seven -36
-KPX four four 16
-KPX four one -33
-KPX four seven -45
-KPX g a -5
-KPX g adieresis -5
-KPX g ae -2
-KPX g aring -5
-KPX g e -6
-KPX g eacute -6
-KPX g l -10
-KPX g oacute -6
-KPX g odieresis -6
-KPX g r 25
-KPX guillemotright A -36
-KPX guillemotright AE -39
-KPX guillemotright Aacute -36
-KPX guillemotright Adieresis -36
-KPX guillemotright Aring -36
-KPX guillemotright T -104
-KPX guillemotright V -85
-KPX guillemotright W -73
-KPX guillemotright Y -112
-KPX guilsinglright A -36
-KPX guilsinglright AE -39
-KPX guilsinglright Aacute -36
-KPX guilsinglright Adieresis -36
-KPX guilsinglright Aring -36
-KPX guilsinglright T -104
-KPX guilsinglright V -85
-KPX guilsinglright W -73
-KPX guilsinglright Y -112
-KPX h quoteright -11
-KPX h y -43
-KPX hyphen A -5
-KPX hyphen AE -9
-KPX hyphen Aacute -5
-KPX hyphen Adieresis -5
-KPX hyphen Aring -5
-KPX hyphen T -74
-KPX hyphen V -56
-KPX hyphen W -44
-KPX hyphen Y -87
-KPX i T -24
-KPX i j -26
-KPX k a 1
-KPX k aacute 1
-KPX k adieresis 1
-KPX k ae 5
-KPX k aring 1
-KPX k comma 1
-KPX k e -23
-KPX k eacute -23
-KPX k g 4
-KPX k hyphen -63
-KPX k o -26
-KPX k oacute -26
-KPX k odieresis -26
-KPX k period -1
-KPX k s 5
-KPX k u -2
-KPX k udieresis -2
-KPX l v -25
-KPX l y -28
-KPX m p -30
-KPX m v -37
-KPX m w -40
-KPX m y -44
-KPX n T -36
-KPX n p -28
-KPX n quoteright -11
-KPX n v -36
-KPX n w -40
-KPX n y -43
-KPX nine four 0
-KPX nine one -49
-KPX nine seven -9
-KPX o T -22
-KPX o quoteright 8
-KPX o t -21
-KPX o v -22
-KPX o w -26
-KPX o x -22
-KPX o y -30
-KPX oacute v -22
-KPX oacute w -26
-KPX oacute y -30
-KPX ocircumflex t -21
-KPX odieresis t -21
-KPX odieresis v -22
-KPX odieresis w -26
-KPX odieresis x -22
-KPX odieresis y -30
-KPX ograve v -22
-KPX ograve w -26
-KPX ograve y -30
-KPX one comma -20
-KPX one eight -31
-KPX one five -29
-KPX one four -56
-KPX one nine -23
-KPX one one -35
-KPX one period -22
-KPX one seven -83
-KPX one six -50
-KPX one three -27
-KPX one two -2
-KPX one zero -50
-KPX p t -21
-KPX p y -33
-KPX period one -44
-KPX period quotedblright -20
-KPX period quoteright -19
-KPX q c -14
-KPX q u -11
-KPX quotedblbase A 36
-KPX quotedblbase AE 38
-KPX quotedblbase T -49
-KPX quotedblbase V -81
-KPX quotedblbase W -65
-KPX quotedblbase Y -63
-KPX quotedblleft A -65
-KPX quotedblleft AE -78
-KPX quotedblleft Aacute -65
-KPX quotedblleft Adieresis -65
-KPX quotedblleft Aring -65
-KPX quotedblleft T 47
-KPX quotedblleft V 36
-KPX quotedblleft W 29
-KPX quotedblleft Y 38
-KPX quotedblright A -68
-KPX quotedblright AE -81
-KPX quotedblright Aacute -68
-KPX quotedblright Adieresis -68
-KPX quotedblright Aring -68
-KPX quotedblright T 45
-KPX quotedblright V 33
-KPX quotedblright W 26
-KPX quotedblright Y 36
-KPX quoteleft A -65
-KPX quoteleft AE -78
-KPX quoteleft Aacute -65
-KPX quoteleft Adieresis -65
-KPX quoteleft Aring -65
-KPX quoteleft T 48
-KPX quoteleft V 36
-KPX quoteleft W 30
-KPX quoteleft Y 39
-KPX quoteright A -68
-KPX quoteright AE -81
-KPX quoteright Aacute -68
-KPX quoteright Adieresis -68
-KPX quoteright Aring -68
-KPX quoteright comma -30
-KPX quoteright d -9
-KPX quoteright o -7
-KPX quoteright period -31
-KPX quoteright r 0
-KPX quoteright s -4
-KPX quoteright t 4
-KPX quoteright v 8
-KPX quoteright w 4
-KPX quoteright y 5
-KPX r a -7
-KPX r aacute -7
-KPX r acircumflex -7
-KPX r adieresis -7
-KPX r ae -3
-KPX r agrave -7
-KPX r aring -7
-KPX r c -2
-KPX r ccedilla 0
-KPX r colon -8
-KPX r comma -72
-KPX r d -5
-KPX r e -2
-KPX r eacute -2
-KPX r ecircumflex -2
-KPX r egrave -2
-KPX r f 19
-KPX r g -5
-KPX r h -23
-KPX r hyphen -35
-KPX r i 20
-KPX r j 23
-KPX r k -23
-KPX r l -25
-KPX r m 18
-KPX r n 16
-KPX r o -1
-KPX r oacute -1
-KPX r ocircumflex -1
-KPX r odieresis -1
-KPX r oe -1
-KPX r ograve -1
-KPX r oslash -3
-KPX r p 15
-KPX r period -74
-KPX r q -6
-KPX r quoteright 30
-KPX r r 19
-KPX r s -1
-KPX r semicolon -8
-KPX r t 19
-KPX r u 18
-KPX r v 23
-KPX r w 19
-KPX r x 20
-KPX r y 18
-KPX r z -2
-KPX s quoteright 7
-KPX s t -11
-KPX seven colon -76
-KPX seven comma -68
-KPX seven eight -39
-KPX seven five -38
-KPX seven four -77
-KPX seven one -39
-KPX seven period -70
-KPX seven seven -21
-KPX seven six -39
-KPX seven three -31
-KPX seven two -31
-KPX six four 11
-KPX six one -36
-KPX six seven -20
-KPX t S 8
-KPX t a 3
-KPX t aacute 3
-KPX t adieresis 3
-KPX t ae 6
-KPX t aring 3
-KPX t colon -19
-KPX t e 7
-KPX t eacute 7
-KPX t h -4
-KPX t o 7
-KPX t oacute 7
-KPX t odieresis 7
-KPX t quoteright 3
-KPX t semicolon -17
-KPX three four 2
-KPX three one -47
-KPX three seven -26
-KPX two four 5
-KPX two one -37
-KPX two seven -13
-KPX u quoteright -6
-KPX v a -19
-KPX v aacute -19
-KPX v acircumflex -19
-KPX v adieresis -19
-KPX v ae -15
-KPX v agrave -19
-KPX v aring -19
-KPX v atilde -19
-KPX v c -24
-KPX v colon -9
-KPX v comma -78
-KPX v e -25
-KPX v eacute -25
-KPX v ecircumflex -25
-KPX v egrave -25
-KPX v g -23
-KPX v hyphen -29
-KPX v l -25
-KPX v o -23
-KPX v oacute -23
-KPX v odieresis -23
-KPX v ograve -23
-KPX v oslash -28
-KPX v period -79
-KPX v s -11
-KPX v semicolon -10
-KPX w a -22
-KPX w aacute -22
-KPX w acircumflex -22
-KPX w adieresis -22
-KPX w ae -18
-KPX w agrave -22
-KPX w aring -22
-KPX w atilde -22
-KPX w c -27
-KPX w colon -12
-KPX w comma -73
-KPX w e -28
-KPX w eacute -28
-KPX w ecircumflex -28
-KPX w egrave -28
-KPX w g -26
-KPX w hyphen -26
-KPX w l -28
-KPX w o -26
-KPX w oacute -26
-KPX w odieresis -26
-KPX w ograve -26
-KPX w oslash -31
-KPX w period -74
-KPX w s -14
-KPX w semicolon -13
-KPX x a -3
-KPX x c -24
-KPX x e -27
-KPX x eacute -27
-KPX x o -31
-KPX x q -20
-KPX y a -21
-KPX y aacute -21
-KPX y acircumflex -21
-KPX y adieresis -21
-KPX y ae -17
-KPX y agrave -21
-KPX y aring -21
-KPX y atilde -21
-KPX y c -25
-KPX y colon -10
-KPX y comma -76
-KPX y e -26
-KPX y eacute -26
-KPX y ecircumflex -26
-KPX y egrave -26
-KPX y g -25
-KPX y hyphen -28
-KPX y l -24
-KPX y o -25
-KPX y oacute -25
-KPX y odieresis -25
-KPX y ograve -25
-KPX y oslash -29
-KPX y period -78
-KPX y s -12
-KPX y semicolon -11
-KPX zero four 4
-KPX zero one -52
-KPX zero seven -11
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/c059013l.pfb b/Master/xemtex/gsfonts/c059013l.pfb
deleted file mode 100644
index 9cb80166eae..00000000000
--- a/Master/xemtex/gsfonts/c059013l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059013l.pfm b/Master/xemtex/gsfonts/c059013l.pfm
deleted file mode 100644
index 6062d2bc2cd..00000000000
--- a/Master/xemtex/gsfonts/c059013l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059016l.afm b/Master/xemtex/gsfonts/c059016l.afm
deleted file mode 100644
index a3bb7f0c110..00000000000
--- a/Master/xemtex/gsfonts/c059016l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName CenturySchL-Bold
-FullName Century Schoolbook L Bold
-FamilyName Century Schoolbook L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -103
-UnderlineThickness 90
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -166 -372 1000 1005
-CapHeight 722
-XHeight 473
-Descender -202
-Ascender 737
-StartCharMetrics 316
-C 32 ; WX 287 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 296 ; N exclam ; B 57 -15 244 737 ;
-C 34 ; WX 333 ; N quotedbl ; B -12 416 346 737 ;
-C 35 ; WX 574 ; N numbersign ; B 41 0 533 700 ;
-C 36 ; WX 574 ; N dollar ; B 25 -137 549 801 ;
-C 37 ; WX 833 ; N percent ; B 17 0 821 722 ;
-C 38 ; WX 852 ; N ampersand ; B 39 -16 822 737 ;
-C 39 ; WX 241 ; N quoteright ; B 22 379 219 737 ;
-C 40 ; WX 389 ; N parenleft ; B 72 -118 338 737 ;
-C 41 ; WX 389 ; N parenright ; B 50 -118 316 737 ;
-C 42 ; WX 500 ; N asterisk ; B 56 297 447 737 ;
-C 43 ; WX 606 ; N plus ; B 51 0 555 505 ;
-C 44 ; WX 278 ; N comma ; B 39 -186 236 173 ;
-C 45 ; WX 333 ; N hyphen ; B 42 180 291 310 ;
-C 46 ; WX 278 ; N period ; B 45 -15 233 173 ;
-C 47 ; WX 278 ; N slash ; B -23 -15 302 737 ;
-C 48 ; WX 574 ; N zero ; B 27 -14 546 708 ;
-C 49 ; WX 574 ; N one ; B 83 0 491 708 ;
-C 50 ; WX 574 ; N two ; B 19 -4 531 708 ;
-C 51 ; WX 574 ; N three ; B 24 -14 530 708 ;
-C 52 ; WX 574 ; N four ; B 19 0 546 708 ;
-C 53 ; WX 574 ; N five ; B 31 -14 535 708 ;
-C 54 ; WX 574 ; N six ; B 29 -14 549 708 ;
-C 55 ; WX 574 ; N seven ; B 45 -14 546 708 ;
-C 56 ; WX 574 ; N eight ; B 27 -14 546 708 ;
-C 57 ; WX 574 ; N nine ; B 25 -14 545 708 ;
-C 58 ; WX 278 ; N colon ; B 57 -15 244 481 ;
-C 59 ; WX 278 ; N semicolon ; B 47 -185 244 481 ;
-C 60 ; WX 606 ; N less ; B 49 -25 558 529 ;
-C 61 ; WX 606 ; N equal ; B 51 92 555 413 ;
-C 62 ; WX 606 ; N greater ; B 48 -25 557 529 ;
-C 63 ; WX 500 ; N question ; B 23 -15 476 737 ;
-C 64 ; WX 747 ; N at ; B 24 -15 722 737 ;
-C 65 ; WX 759 ; N A ; B -18 0 778 737 ;
-C 66 ; WX 778 ; N B ; B 17 0 736 722 ;
-C 67 ; WX 778 ; N C ; B 40 -15 723 737 ;
-C 68 ; WX 833 ; N D ; B 19 0 793 722 ;
-C 69 ; WX 759 ; N E ; B 16 0 707 722 ;
-C 70 ; WX 722 ; N F ; B 22 0 690 722 ;
-C 71 ; WX 833 ; N G ; B 39 -15 817 737 ;
-C 72 ; WX 870 ; N H ; B 20 0 850 722 ;
-C 73 ; WX 444 ; N I ; B 28 0 417 722 ;
-C 74 ; WX 648 ; N J ; B 4 -15 639 722 ;
-C 75 ; WX 815 ; N K ; B 15 0 818 722 ;
-C 76 ; WX 722 ; N L ; B 19 0 701 722 ;
-C 77 ; WX 981 ; N M ; B 9 0 965 722 ;
-C 78 ; WX 833 ; N N ; B 16 -7 833 722 ;
-C 79 ; WX 833 ; N O ; B 39 -15 794 737 ;
-C 80 ; WX 759 ; N P ; B 24 0 735 722 ;
-C 81 ; WX 833 ; N Q ; B 38 -188 808 737 ;
-C 82 ; WX 815 ; N R ; B 20 -15 817 722 ;
-C 83 ; WX 667 ; N S ; B 51 -15 633 737 ;
-C 84 ; WX 722 ; N T ; B 15 0 707 722 ;
-C 85 ; WX 833 ; N U ; B 15 -15 824 722 ;
-C 86 ; WX 759 ; N V ; B -18 -15 778 722 ;
-C 87 ; WX 981 ; N W ; B 6 -15 973 722 ;
-C 88 ; WX 722 ; N X ; B -12 0 735 722 ;
-C 89 ; WX 722 ; N Y ; B -12 0 735 722 ;
-C 90 ; WX 667 ; N Z ; B 24 0 634 722 ;
-C 91 ; WX 389 ; N bracketleft ; B 84 -108 339 722 ;
-C 92 ; WX 606 ; N backslash ; B 50 0 555 737 ;
-C 93 ; WX 389 ; N bracketright ; B 31 -108 286 722 ;
-C 94 ; WX 606 ; N asciicircum ; B 52 318 554 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -148 500 -58 ;
-C 96 ; WX 241 ; N quoteleft ; B 22 388 219 747 ;
-C 97 ; WX 611 ; N a ; B 36 -15 597 488 ;
-C 98 ; WX 648 ; N b ; B 0 -15 612 737 ;
-C 99 ; WX 556 ; N c ; B 31 -15 527 488 ;
-C 100 ; WX 667 ; N d ; B 37 -15 654 737 ;
-C 101 ; WX 574 ; N e ; B 32 -15 540 488 ;
-C 102 ; WX 389 ; N f ; B 14 0 464 733 ;
-C 103 ; WX 611 ; N g ; B 30 -202 623 538 ;
-C 104 ; WX 685 ; N h ; B 16 0 666 737 ;
-C 105 ; WX 370 ; N i ; B 28 0 341 737 ;
-C 106 ; WX 352 ; N j ; B -82 -202 272 737 ;
-C 107 ; WX 667 ; N k ; B 12 0 660 737 ;
-C 108 ; WX 352 ; N l ; B 16 0 331 737 ;
-C 109 ; WX 963 ; N m ; B 20 0 942 488 ;
-C 110 ; WX 685 ; N n ; B 20 0 668 488 ;
-C 111 ; WX 611 ; N o ; B 31 -15 579 488 ;
-C 112 ; WX 667 ; N p ; B 18 -202 632 488 ;
-C 113 ; WX 648 ; N q ; B 34 -202 640 488 ;
-C 114 ; WX 519 ; N r ; B 18 0 517 488 ;
-C 115 ; WX 500 ; N s ; B 38 -15 466 488 ;
-C 116 ; WX 426 ; N t ; B 23 -15 405 671 ;
-C 117 ; WX 685 ; N u ; B 13 -15 667 473 ;
-C 118 ; WX 611 ; N v ; B 12 -14 598 473 ;
-C 119 ; WX 889 ; N w ; B 19 -14 876 473 ;
-C 120 ; WX 611 ; N x ; B 13 0 598 473 ;
-C 121 ; WX 611 ; N y ; B 10 -206 598 473 ;
-C 122 ; WX 537 ; N z ; B 35 0 495 473 ;
-C 123 ; WX 389 ; N braceleft ; B 84 -108 343 722 ;
-C 124 ; WX 606 ; N bar ; B 243 0 362 722 ;
-C 125 ; WX 389 ; N braceright ; B 31 -108 290 722 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 160 555 335 ;
-C 161 ; WX 296 ; N exclamdown ; B 53 -203 241 549 ;
-C 162 ; WX 574 ; N cent ; B 36 -107 534 567 ;
-C 163 ; WX 574 ; N sterling ; B 19 -14 561 708 ;
-C 164 ; WX 167 ; N fraction ; B -166 0 333 705 ;
-C 165 ; WX 574 ; N yen ; B 3 0 571 722 ;
-C 166 ; WX 574 ; N florin ; B 14 -195 549 746 ;
-C 167 ; WX 500 ; N section ; B 63 -87 438 737 ;
-C 168 ; WX 574 ; N currency ; B 33 97 540 604 ;
-C 169 ; WX 241 ; N quotesingle ; B 52 416 188 737 ;
-C 170 ; WX 481 ; N quotedblleft ; B 22 388 457 747 ;
-C 171 ; WX 500 ; N guillemotleft ; B 49 100 442 419 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 72 100 266 419 ;
-C 173 ; WX 333 ; N guilsinglright ; B 74 100 269 419 ;
-C 174 ; WX 685 ; N fi ; B 15 0 667 733 ;
-C 175 ; WX 685 ; N fl ; B 15 0 666 737 ;
-C 177 ; WX 500 ; N endash ; B 0 191 500 296 ;
-C 178 ; WX 500 ; N dagger ; B 44 -87 451 737 ;
-C 179 ; WX 500 ; N daggerdbl ; B 47 -87 458 737 ;
-C 180 ; WX 278 ; N periodcentered ; B 46 160 234 348 ;
-C 182 ; WX 747 ; N paragraph ; B 35 -144 713 722 ;
-C 183 ; WX 606 ; N bullet ; B 131 180 475 524 ;
-C 184 ; WX 241 ; N quotesinglbase ; B 22 -186 219 173 ;
-C 185 ; WX 481 ; N quotedblbase ; B 23 -186 458 173 ;
-C 186 ; WX 481 ; N quotedblright ; B 23 379 458 737 ;
-C 187 ; WX 500 ; N guillemotright ; B 56 100 451 419 ;
-C 188 ; WX 1000 ; N ellipsis ; B 73 -15 927 173 ;
-C 189 ; WX 1000 ; N perthousand ; B 8 -1 994 701 ;
-C 191 ; WX 500 ; N questiondown ; B 23 -203 476 549 ;
-C 193 ; WX 333 ; N grave ; B 2 545 249 734 ;
-C 194 ; WX 333 ; N acute ; B 84 545 331 734 ;
-C 195 ; WX 333 ; N circumflex ; B -8 544 343 722 ;
-C 196 ; WX 333 ; N tilde ; B -23 566 358 705 ;
-C 197 ; WX 333 ; N macron ; B -5 583 339 663 ;
-C 198 ; WX 333 ; N breve ; B 9 545 324 712 ;
-C 199 ; WX 333 ; N dotaccent ; B 96 552 237 693 ;
-C 200 ; WX 333 ; N dieresis ; B -11 552 345 693 ;
-C 202 ; WX 333 ; N ring ; B 59 545 274 760 ;
-C 203 ; WX 333 ; N cedilla ; B 17 -222 251 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 68 545 365 733 ;
-C 206 ; WX 333 ; N ogonek ; B 68 -170 246 0 ;
-C 207 ; WX 333 ; N caron ; B -8 544 343 722 ;
-C 208 ; WX 1000 ; N emdash ; B 0 191 1000 296 ;
-C 225 ; WX 981 ; N AE ; B -29 0 963 722 ;
-C 227 ; WX 367 ; N ordfeminine ; B 1 293 365 737 ;
-C 232 ; WX 722 ; N Lslash ; B 19 0 701 722 ;
-C 233 ; WX 833 ; N Oslash ; B 39 -40 793 762 ;
-C 234 ; WX 1000 ; N OE ; B 5 0 987 722 ;
-C 235 ; WX 367 ; N ordmasculine ; B 1 293 357 737 ;
-C 241 ; WX 870 ; N ae ; B 29 -15 837 488 ;
-C 245 ; WX 370 ; N dotlessi ; B 28 0 341 473 ;
-C 248 ; WX 352 ; N lslash ; B 16 0 331 737 ;
-C 249 ; WX 611 ; N oslash ; B 31 -90 579 563 ;
-C 250 ; WX 907 ; N oe ; B 35 -15 872 488 ;
-C 251 ; WX 611 ; N germandbls ; B 6 -15 575 737 ;
-C -1 ; WX 833 ; N Udieresis ; B 15 -15 824 938 ;
-C -1 ; WX 833 ; N Uacute ; B 15 -15 824 979 ;
-C -1 ; WX 667 ; N Scedilla ; B 51 -222 633 737 ;
-C -1 ; WX 722 ; N Tcaron ; B 15 0 707 967 ;
-C -1 ; WX 667 ; N Scaron ; B 51 -15 633 968 ;
-C -1 ; WX 815 ; N Rcaron ; B 20 -15 817 967 ;
-C -1 ; WX 815 ; N Racute ; B 20 -15 817 979 ;
-C -1 ; WX 667 ; N Sacute ; B 51 -15 633 979 ;
-C -1 ; WX 833 ; N Otilde ; B 39 -15 794 936 ;
-C -1 ; WX 685 ; N ucircumflex ; B 13 -15 667 722 ;
-C -1 ; WX 833 ; N Ohungarumlaut ; B 39 -15 794 978 ;
-C -1 ; WX 833 ; N Uhungarumlaut ; B 15 -15 824 978 ;
-C -1 ; WX 722 ; N Yacute ; B -12 0 735 979 ;
-C -1 ; WX 833 ; N Eth ; B 19 0 793 722 ;
-C -1 ; WX 833 ; N Dcroat ; B 19 0 793 722 ;
-C -1 ; WX 667 ; N Zacute ; B 24 0 634 979 ;
-C -1 ; WX 833 ; N Uring ; B 15 -15 824 1005 ;
-C -1 ; WX 611 ; N gbreve ; B 30 -202 623 712 ;
-C -1 ; WX 574 ; N eogonek ; B 32 -170 540 488 ;
-C -1 ; WX 574 ; N edotaccent ; B 32 -15 540 693 ;
-C -1 ; WX 574 ; N ecaron ; B 32 -15 540 722 ;
-C -1 ; WX 833 ; N Ugrave ; B 15 -15 824 979 ;
-C -1 ; WX 759 ; N Thorn ; B 24 0 735 722 ;
-C -1 ; WX 574 ; N eacute ; B 32 -15 540 734 ;
-C -1 ; WX 574 ; N edieresis ; B 32 -15 540 693 ;
-C -1 ; WX 747 ; N dcaron ; B 37 -15 767 737 ;
-C -1 ; WX 556 ; N ccedilla ; B 31 -222 527 488 ;
-C -1 ; WX 556 ; N ccaron ; B 31 -15 527 722 ;
-C -1 ; WX 556 ; N cacute ; B 31 -15 527 734 ;
-C -1 ; WX 611 ; N aogonek ; B 36 -170 631 488 ;
-C -1 ; WX 611 ; N aring ; B 36 -15 597 760 ;
-C -1 ; WX 611 ; N atilde ; B 36 -15 597 705 ;
-C -1 ; WX 611 ; N abreve ; B 36 -15 597 712 ;
-C -1 ; WX 574 ; N egrave ; B 32 -15 540 734 ;
-C -1 ; WX 611 ; N agrave ; B 36 -15 597 734 ;
-C -1 ; WX 611 ; N aacute ; B 36 -15 597 734 ;
-C -1 ; WX 611 ; N adieresis ; B 36 -15 597 693 ;
-C -1 ; WX 833 ; N Uogonek ; B 15 -170 824 722 ;
-C -1 ; WX 685 ; N ugrave ; B 13 -15 667 734 ;
-C -1 ; WX 685 ; N uacute ; B 13 -15 667 734 ;
-C -1 ; WX 685 ; N udieresis ; B 13 -15 667 693 ;
-C -1 ; WX 446 ; N tcaron ; B 23 -15 466 737 ;
-C -1 ; WX 500 ; N scommaaccent ; B 38 -372 466 488 ;
-C -1 ; WX 667 ; N Zcaron ; B 24 0 634 968 ;
-C -1 ; WX 574 ; N ecircumflex ; B 32 -15 540 722 ;
-C -1 ; WX 833 ; N Ucircumflex ; B 15 -15 824 968 ;
-C -1 ; WX 611 ; N acircumflex ; B 36 -15 597 722 ;
-C -1 ; WX 667 ; N Zdotaccent ; B 24 0 634 938 ;
-C -1 ; WX 500 ; N scaron ; B 38 -15 466 722 ;
-C -1 ; WX 759 ; N Amacron ; B -18 0 778 908 ;
-C -1 ; WX 500 ; N sacute ; B 38 -15 466 734 ;
-C -1 ; WX 722 ; N Tcommaaccent ; B 15 -372 707 722 ;
-C -1 ; WX 722 ; N Ydieresis ; B -12 0 735 938 ;
-C -1 ; WX 667 ; N thorn ; B 18 -202 632 736 ;
-C -1 ; WX 759 ; N Emacron ; B 16 0 707 908 ;
-C -1 ; WX 833 ; N Ograve ; B 39 -15 794 979 ;
-C -1 ; WX 833 ; N Oacute ; B 39 -15 794 979 ;
-C -1 ; WX 833 ; N Odieresis ; B 39 -15 794 938 ;
-C -1 ; WX 833 ; N Ntilde ; B 16 -7 833 936 ;
-C -1 ; WX 833 ; N Ncaron ; B 16 -7 833 967 ;
-C -1 ; WX 833 ; N Nacute ; B 16 -7 833 979 ;
-C -1 ; WX 722 ; N Lcaron ; B 19 0 701 737 ;
-C -1 ; WX 722 ; N Lacute ; B 19 0 701 979 ;
-C -1 ; WX 444 ; N Idotaccent ; B 28 0 417 938 ;
-C -1 ; WX 519 ; N racute ; B 18 0 517 734 ;
-C -1 ; WX 444 ; N Icircumflex ; B 28 0 417 968 ;
-C -1 ; WX 611 ; N ohungarumlaut ; B 31 -15 579 733 ;
-C -1 ; WX 611 ; N otilde ; B 31 -15 579 705 ;
-C -1 ; WX 574 ; N Euro ; B 3 -15 563 717 ;
-C -1 ; WX 611 ; N ocircumflex ; B 31 -15 579 722 ;
-C -1 ; WX 344 ; N onesuperior ; B 39 284 304 708 ;
-C -1 ; WX 344 ; N twosuperior ; B 5 281 338 708 ;
-C -1 ; WX 344 ; N threesuperior ; B 8 275 336 708 ;
-C -1 ; WX 444 ; N Igrave ; B 28 0 417 979 ;
-C -1 ; WX 444 ; N Iacute ; B 28 0 417 979 ;
-C -1 ; WX 444 ; N Imacron ; B 28 0 417 908 ;
-C -1 ; WX 444 ; N Iogonek ; B 28 -170 485 722 ;
-C -1 ; WX 444 ; N Idieresis ; B 28 0 417 938 ;
-C -1 ; WX 833 ; N Gbreve ; B 39 -15 817 957 ;
-C -1 ; WX 833 ; N Umacron ; B 15 -15 824 908 ;
-C -1 ; WX 815 ; N Kcommaaccent ; B 15 -372 818 722 ;
-C -1 ; WX 611 ; N ograve ; B 31 -15 579 734 ;
-C -1 ; WX 667 ; N Scommaaccent ; B 51 -372 633 737 ;
-C -1 ; WX 759 ; N Eogonek ; B 16 -170 763 722 ;
-C -1 ; WX 611 ; N oacute ; B 31 -15 579 734 ;
-C -1 ; WX 759 ; N Edotaccent ; B 16 0 707 938 ;
-C -1 ; WX 370 ; N iogonek ; B 28 -170 409 737 ;
-C -1 ; WX 611 ; N gcommaaccent ; B 30 -202 623 837 ;
-C -1 ; WX 611 ; N odieresis ; B 31 -15 579 693 ;
-C -1 ; WX 685 ; N ntilde ; B 20 0 668 705 ;
-C -1 ; WX 685 ; N ncaron ; B 20 0 668 722 ;
-C -1 ; WX 759 ; N Ecaron ; B 16 0 707 967 ;
-C -1 ; WX 759 ; N Ecircumflex ; B 16 0 707 968 ;
-C -1 ; WX 500 ; N scedilla ; B 38 -222 466 488 ;
-C -1 ; WX 519 ; N rcaron ; B 18 0 517 722 ;
-C -1 ; WX 759 ; N Egrave ; B 16 0 707 979 ;
-C -1 ; WX 759 ; N Eacute ; B 16 0 707 979 ;
-C -1 ; WX 833 ; N Gcommaaccent ; B 39 -372 817 737 ;
-C -1 ; WX 815 ; N Rcommaaccent ; B 20 -372 817 722 ;
-C -1 ; WX 759 ; N Edieresis ; B 16 0 707 938 ;
-C -1 ; WX 685 ; N nacute ; B 20 0 668 734 ;
-C -1 ; WX 685 ; N uogonek ; B 13 -170 735 473 ;
-C -1 ; WX 685 ; N umacron ; B 13 -15 667 663 ;
-C -1 ; WX 833 ; N Dcaron ; B 19 0 793 967 ;
-C -1 ; WX 436 ; N lcaron ; B 16 0 456 737 ;
-C -1 ; WX 778 ; N Ccaron ; B 40 -15 723 967 ;
-C -1 ; WX 778 ; N Cacute ; B 40 -15 723 979 ;
-C -1 ; WX 778 ; N Ccedilla ; B 40 -224 723 737 ;
-C -1 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C -1 ; WX 759 ; N Aogonek ; B -18 -170 846 737 ;
-C -1 ; WX 606 ; N minus ; B 51 195 555 310 ;
-C -1 ; WX 606 ; N multiply ; B 51 1 555 505 ;
-C -1 ; WX 606 ; N divide ; B 51 -31 555 536 ;
-C -1 ; WX 759 ; N Aring ; B -18 0 778 990 ;
-C -1 ; WX 1000 ; N trademark ; B 30 302 970 722 ;
-C -1 ; WX 519 ; N rcommaaccent ; B 18 -372 517 488 ;
-C -1 ; WX 352 ; N lacute ; B 16 0 341 979 ;
-C -1 ; WX 611 ; N omacron ; B 31 -15 579 663 ;
-C -1 ; WX 759 ; N Atilde ; B -18 0 778 936 ;
-C -1 ; WX 370 ; N icircumflex ; B 11 0 362 722 ;
-C -1 ; WX 370 ; N igrave ; B 21 0 341 734 ;
-C -1 ; WX 685 ; N ncommaaccent ; B 20 -372 668 488 ;
-C -1 ; WX 352 ; N lcommaaccent ; B 16 -372 331 737 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 555 610 ;
-C -1 ; WX 861 ; N onehalf ; B 39 -2 832 722 ;
-C -1 ; WX 861 ; N onequarter ; B 39 0 822 722 ;
-C -1 ; WX 861 ; N threequarters ; B 8 0 822 722 ;
-C -1 ; WX 370 ; N iacute ; B 28 0 350 734 ;
-C -1 ; WX 759 ; N Abreve ; B -18 0 778 957 ;
-C -1 ; WX 667 ; N kcommaaccent ; B 12 -372 660 737 ;
-C -1 ; WX 833 ; N Omacron ; B 39 -15 794 908 ;
-C -1 ; WX 370 ; N imacron ; B 14 0 358 663 ;
-C -1 ; WX 574 ; N emacron ; B 32 -15 540 663 ;
-C -1 ; WX 611 ; N amacron ; B 36 -15 597 663 ;
-C -1 ; WX 426 ; N tcommaaccent ; B 23 -372 405 671 ;
-C -1 ; WX 611 ; N ydieresis ; B 10 -206 598 693 ;
-C -1 ; WX 537 ; N zdotaccent ; B 35 0 495 693 ;
-C -1 ; WX 537 ; N zcaron ; B 35 0 495 722 ;
-C -1 ; WX 537 ; N zacute ; B 35 0 495 734 ;
-C -1 ; WX 611 ; N yacute ; B 10 -206 598 734 ;
-C -1 ; WX 685 ; N uhungarumlaut ; B 13 -15 667 733 ;
-C -1 ; WX 611 ; N eth ; B 31 -15 579 793 ;
-C -1 ; WX 685 ; N uring ; B 13 -15 667 760 ;
-C -1 ; WX 833 ; N Ocircumflex ; B 39 -15 794 968 ;
-C -1 ; WX 333 ; N commaaccent ; B 78 -372 255 -50 ;
-C -1 ; WX 747 ; N copyright ; B 5 -15 741 721 ;
-C -1 ; WX 747 ; N registered ; B 5 -15 741 721 ;
-C -1 ; WX 759 ; N Acircumflex ; B -18 0 778 968 ;
-C -1 ; WX 370 ; N idieresis ; B 8 0 364 693 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 51 -51 555 557 ;
-C -1 ; WX 549 ; N radical ; B -34 -35 548 918 ;
-C -1 ; WX 759 ; N Agrave ; B -18 0 778 979 ;
-C -1 ; WX 759 ; N Aacute ; B -18 0 778 979 ;
-C -1 ; WX 606 ; N lessequal ; B 49 0 558 698 ;
-C -1 ; WX 606 ; N greaterequal ; B 48 0 557 698 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 0 555 310 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 13 -11 476 753 ;
-C -1 ; WX 833 ; N Ncommaaccent ; B 16 -372 833 722 ;
-C -1 ; WX 667 ; N dcroat ; B 37 -15 654 737 ;
-C -1 ; WX 606 ; N brokenbar ; B 243 0 362 722 ;
-C -1 ; WX 722 ; N Lcommaaccent ; B 19 -372 701 722 ;
-C -1 ; WX 759 ; N Adieresis ; B -18 0 778 938 ;
-C -1 ; WX 685 ; N mu ; B 13 -219 667 473 ;
-C -1 ; WX 287 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -34
-KPX A Ccedilla -37
-KPX A G -31
-KPX A O -35
-KPX A Odieresis -35
-KPX A Q -34
-KPX A T -31
-KPX A U -40
-KPX A Uacute -40
-KPX A Ucircumflex -40
-KPX A Udieresis -40
-KPX A Ugrave -40
-KPX A V -87
-KPX A W -82
-KPX A Y -31
-KPX A a 22
-KPX A b 9
-KPX A c -3
-KPX A ccedilla -6
-KPX A comma 35
-KPX A d -1
-KPX A e -5
-KPX A g 21
-KPX A guillemotleft -39
-KPX A guilsinglleft -51
-KPX A hyphen -2
-KPX A o -6
-KPX A period 31
-KPX A q 3
-KPX A quotedblright -53
-KPX A quoteright -53
-KPX A t -8
-KPX A u -11
-KPX A v -54
-KPX A w -54
-KPX A y -60
-KPX Aacute C -34
-KPX Aacute G -31
-KPX Aacute O -35
-KPX Aacute Q -34
-KPX Aacute T -31
-KPX Aacute U -40
-KPX Aacute V -87
-KPX Aacute W -82
-KPX Aacute Y -31
-KPX Aacute a 22
-KPX Aacute b 9
-KPX Aacute c -3
-KPX Aacute comma 35
-KPX Aacute d -1
-KPX Aacute e -5
-KPX Aacute g 21
-KPX Aacute guillemotleft -39
-KPX Aacute guilsinglleft -51
-KPX Aacute hyphen -2
-KPX Aacute o -6
-KPX Aacute period 31
-KPX Aacute q 3
-KPX Aacute quoteright -53
-KPX Aacute t -8
-KPX Aacute u -11
-KPX Aacute v -54
-KPX Aacute w -54
-KPX Aacute y -60
-KPX Acircumflex C -34
-KPX Acircumflex G -31
-KPX Acircumflex O -35
-KPX Acircumflex Q -34
-KPX Acircumflex T -31
-KPX Acircumflex U -40
-KPX Acircumflex V -87
-KPX Acircumflex W -82
-KPX Acircumflex Y -31
-KPX Acircumflex comma 35
-KPX Acircumflex period 31
-KPX Adieresis C -34
-KPX Adieresis G -31
-KPX Adieresis O -35
-KPX Adieresis Q -34
-KPX Adieresis T -31
-KPX Adieresis U -40
-KPX Adieresis V -87
-KPX Adieresis W -82
-KPX Adieresis Y -31
-KPX Adieresis a 22
-KPX Adieresis b 9
-KPX Adieresis c -3
-KPX Adieresis comma 35
-KPX Adieresis d -1
-KPX Adieresis g 21
-KPX Adieresis guillemotleft -39
-KPX Adieresis guilsinglleft -51
-KPX Adieresis hyphen -2
-KPX Adieresis o -6
-KPX Adieresis period 31
-KPX Adieresis q 3
-KPX Adieresis quotedblright -53
-KPX Adieresis quoteright -53
-KPX Adieresis t -8
-KPX Adieresis u -11
-KPX Adieresis v -54
-KPX Adieresis w -54
-KPX Adieresis y -60
-KPX Agrave C -34
-KPX Agrave G -31
-KPX Agrave O -35
-KPX Agrave Q -34
-KPX Agrave T -31
-KPX Agrave U -40
-KPX Agrave V -87
-KPX Agrave W -82
-KPX Agrave Y -31
-KPX Agrave comma 35
-KPX Agrave period 31
-KPX Aring C -34
-KPX Aring G -31
-KPX Aring O -35
-KPX Aring Q -34
-KPX Aring T -31
-KPX Aring U -40
-KPX Aring V -87
-KPX Aring W -82
-KPX Aring Y -31
-KPX Aring a 22
-KPX Aring b 9
-KPX Aring c -3
-KPX Aring comma 35
-KPX Aring d -1
-KPX Aring e -5
-KPX Aring g 21
-KPX Aring guillemotleft -39
-KPX Aring guilsinglleft -51
-KPX Aring hyphen -2
-KPX Aring o -6
-KPX Aring period 31
-KPX Aring q 3
-KPX Aring quotedblright -53
-KPX Aring quoteright -53
-KPX Aring t -8
-KPX Aring u -11
-KPX Aring v -54
-KPX Aring w -54
-KPX Aring y -60
-KPX Atilde C -34
-KPX Atilde G -31
-KPX Atilde O -35
-KPX Atilde Q -34
-KPX Atilde T -31
-KPX Atilde U -40
-KPX Atilde V -87
-KPX Atilde W -82
-KPX Atilde Y -31
-KPX Atilde comma 35
-KPX Atilde period 31
-KPX B A 1
-KPX B AE 3
-KPX B Aacute 1
-KPX B Acircumflex 1
-KPX B Adieresis 1
-KPX B Aring 1
-KPX B Atilde 1
-KPX B O -7
-KPX B OE 7
-KPX B Oacute -7
-KPX B Ocircumflex -7
-KPX B Odieresis -7
-KPX B Ograve -7
-KPX B Oslash -6
-KPX B V -14
-KPX B W -30
-KPX B Y -13
-KPX C A -27
-KPX C AE -26
-KPX C Aacute -27
-KPX C Adieresis -27
-KPX C Aring -27
-KPX C H -9
-KPX C K -7
-KPX C O -10
-KPX C Oacute -10
-KPX C Odieresis -10
-KPX Ccedilla A -28
-KPX D A -32
-KPX D Aacute -32
-KPX D Acircumflex -32
-KPX D Adieresis -32
-KPX D Agrave -32
-KPX D Aring -32
-KPX D Atilde -32
-KPX D J 7
-KPX D T 8
-KPX D V -33
-KPX D W -42
-KPX D X -30
-KPX D Y -32
-KPX F A -79
-KPX F Aacute -79
-KPX F Acircumflex -79
-KPX F Adieresis -79
-KPX F Agrave -79
-KPX F Aring -79
-KPX F Atilde -79
-KPX F J -55
-KPX F O -2
-KPX F Odieresis -2
-KPX F a -32
-KPX F aacute -32
-KPX F adieresis -32
-KPX F ae -30
-KPX F aring -32
-KPX F comma -80
-KPX F e -45
-KPX F eacute -45
-KPX F hyphen -40
-KPX F i 5
-KPX F j 11
-KPX F o -46
-KPX F oacute -46
-KPX F odieresis -46
-KPX F oe -48
-KPX F oslash -51
-KPX F period -82
-KPX F r 10
-KPX F u 12
-KPX G A -4
-KPX G AE 0
-KPX G Aacute -4
-KPX G Acircumflex -4
-KPX G Adieresis -4
-KPX G Agrave -4
-KPX G Aring -4
-KPX G Atilde -4
-KPX G T -21
-KPX G V -7
-KPX G W -20
-KPX G Y -10
-KPX J A -44
-KPX J AE -43
-KPX J Adieresis -44
-KPX J Aring -44
-KPX K C -45
-KPX K G -44
-KPX K O -45
-KPX K OE -31
-KPX K Oacute -45
-KPX K Odieresis -45
-KPX K S 12
-KPX K T 13
-KPX K a 12
-KPX K adieresis 12
-KPX K ae 15
-KPX K aring 12
-KPX K e -18
-KPX K hyphen -25
-KPX K o -20
-KPX K oacute -20
-KPX K odieresis -20
-KPX K u -23
-KPX K udieresis -23
-KPX K y -84
-KPX L A 32
-KPX L AE 37
-KPX L Aacute 32
-KPX L Adieresis 32
-KPX L Aring 32
-KPX L C 5
-KPX L Ccedilla 4
-KPX L G 5
-KPX L O 5
-KPX L Oacute 5
-KPX L Ocircumflex 5
-KPX L Odieresis 5
-KPX L Ograve 5
-KPX L Otilde 5
-KPX L S 3
-KPX L T -56
-KPX L U -31
-KPX L Udieresis -31
-KPX L V -74
-KPX L W -68
-KPX L Y -56
-KPX L hyphen 44
-KPX L quotedblright -22
-KPX L quoteright -21
-KPX L u -4
-KPX L udieresis -4
-KPX L y -34
-KPX N A -7
-KPX N AE -1
-KPX N Aacute -7
-KPX N Adieresis -7
-KPX N Aring -7
-KPX N C -14
-KPX N Ccedilla -15
-KPX N G -13
-KPX N O -15
-KPX N Oacute -15
-KPX N Odieresis -15
-KPX N a -19
-KPX N aacute -19
-KPX N adieresis -19
-KPX N ae -15
-KPX N aring -19
-KPX N comma 2
-KPX N e -18
-KPX N eacute -18
-KPX N o -18
-KPX N oacute -18
-KPX N odieresis -18
-KPX N oslash -18
-KPX N period 0
-KPX N u -26
-KPX N udieresis -26
-KPX O A -36
-KPX O AE -35
-KPX O Aacute -36
-KPX O Adieresis -36
-KPX O Aring -36
-KPX O T 7
-KPX O V -35
-KPX O W -45
-KPX O X -32
-KPX O Y -33
-KPX Oacute A -36
-KPX Oacute T 7
-KPX Oacute V -35
-KPX Oacute W -45
-KPX Oacute Y -33
-KPX Ocircumflex T 7
-KPX Ocircumflex V -35
-KPX Ocircumflex Y -33
-KPX Odieresis A -36
-KPX Odieresis T 7
-KPX Odieresis V -35
-KPX Odieresis W -45
-KPX Odieresis X -32
-KPX Odieresis Y -33
-KPX Ograve T 7
-KPX Ograve V -35
-KPX Ograve Y -33
-KPX Oslash A -37
-KPX Otilde T 7
-KPX Otilde V -35
-KPX Otilde Y -33
-KPX P A -81
-KPX P AE -69
-KPX P Aacute -81
-KPX P Adieresis -81
-KPX P Aring -81
-KPX P J -50
-KPX P a -22
-KPX P aacute -22
-KPX P adieresis -22
-KPX P ae -20
-KPX P aring -22
-KPX P comma -90
-KPX P e -32
-KPX P eacute -32
-KPX P hyphen -35
-KPX P o -32
-KPX P oacute -32
-KPX P odieresis -32
-KPX P oe -34
-KPX P oslash -37
-KPX P period -92
-KPX R C -1
-KPX R Ccedilla -3
-KPX R G 0
-KPX R O -1
-KPX R OE 14
-KPX R Oacute -1
-KPX R Odieresis -1
-KPX R T -16
-KPX R U -22
-KPX R Udieresis -22
-KPX R V -18
-KPX R W -34
-KPX R Y -16
-KPX R a 16
-KPX R aacute 16
-KPX R adieresis 16
-KPX R ae 20
-KPX R aring 16
-KPX R e 15
-KPX R eacute 15
-KPX R hyphen 31
-KPX R o 16
-KPX R oacute 16
-KPX R odieresis 16
-KPX R oe 13
-KPX R u -9
-KPX R uacute -9
-KPX R udieresis -9
-KPX R y -25
-KPX S A 0
-KPX S AE 0
-KPX S Aacute 0
-KPX S Adieresis 0
-KPX S Aring 0
-KPX S T -2
-KPX S V 10
-KPX S W -2
-KPX S Y 7
-KPX S t -5
-KPX T A -31
-KPX T AE -26
-KPX T Aacute -31
-KPX T Acircumflex -31
-KPX T Adieresis -31
-KPX T Agrave -31
-KPX T Aring -31
-KPX T Atilde -31
-KPX T C 8
-KPX T G 8
-KPX T J -52
-KPX T O 7
-KPX T OE 23
-KPX T Oacute 7
-KPX T Ocircumflex 7
-KPX T Odieresis 7
-KPX T Ograve 7
-KPX T Oslash 8
-KPX T Otilde 7
-KPX T S 4
-KPX T V 34
-KPX T W 22
-KPX T Y 31
-KPX T a -20
-KPX T ae -17
-KPX T c -38
-KPX T colon -4
-KPX T comma -60
-KPX T e -36
-KPX T g -32
-KPX T guillemotleft -109
-KPX T guilsinglleft -121
-KPX T hyphen -74
-KPX T i 13
-KPX T j 20
-KPX T o -37
-KPX T oslash -43
-KPX T period -64
-KPX T r 18
-KPX T s -14
-KPX T semicolon -4
-KPX T u 21
-KPX T v 21
-KPX T w 18
-KPX T y 20
-KPX U A -45
-KPX U AE -43
-KPX U Aacute -45
-KPX U Acircumflex -45
-KPX U Adieresis -45
-KPX U Aring -45
-KPX U Atilde -45
-KPX U comma -23
-KPX U m -34
-KPX U n -34
-KPX U p -33
-KPX U period -25
-KPX U r -33
-KPX Uacute A -45
-KPX Uacute comma -23
-KPX Uacute m -34
-KPX Uacute n -34
-KPX Uacute p -33
-KPX Uacute period -25
-KPX Uacute r -33
-KPX Ucircumflex A -45
-KPX Udieresis A -45
-KPX Udieresis b 30
-KPX Udieresis comma -23
-KPX Udieresis m -34
-KPX Udieresis n -34
-KPX Udieresis p -33
-KPX Udieresis period -25
-KPX Udieresis r -33
-KPX Ugrave A -45
-KPX V A -101
-KPX V AE -41
-KPX V Aacute -101
-KPX V Acircumflex -101
-KPX V Adieresis -101
-KPX V Agrave -101
-KPX V Aring -101
-KPX V Atilde -101
-KPX V C -34
-KPX V G -35
-KPX V O -34
-KPX V Oacute -34
-KPX V Ocircumflex -34
-KPX V Odieresis -34
-KPX V Ograve -34
-KPX V Oslash -39
-KPX V Otilde -34
-KPX V S -1
-KPX V T 34
-KPX V a -85
-KPX V ae -82
-KPX V colon -74
-KPX V comma -90
-KPX V e -85
-KPX V g -85
-KPX V guillemotleft -92
-KPX V guilsinglleft -103
-KPX V hyphen -60
-KPX V i -2
-KPX V o -85
-KPX V oslash -85
-KPX V period -93
-KPX V r -48
-KPX V semicolon -73
-KPX V u -45
-KPX V y -46
-KPX W A -85
-KPX W AE -55
-KPX W Aacute -85
-KPX W Acircumflex -85
-KPX W Adieresis -85
-KPX W Agrave -85
-KPX W Aring -85
-KPX W Atilde -85
-KPX W C -47
-KPX W G -46
-KPX W O -48
-KPX W Oacute -48
-KPX W Ocircumflex -48
-KPX W Odieresis -48
-KPX W Ograve -48
-KPX W Oslash -46
-KPX W Otilde -48
-KPX W S -19
-KPX W T 21
-KPX W a -70
-KPX W ae -66
-KPX W colon -62
-KPX W comma -67
-KPX W e -68
-KPX W g -69
-KPX W guillemotleft -76
-KPX W guilsinglleft -87
-KPX W hyphen -44
-KPX W i -17
-KPX W o -68
-KPX W oslash -68
-KPX W period -70
-KPX W r -42
-KPX W semicolon -59
-KPX W u -40
-KPX W y -40
-KPX X C -37
-KPX X O -38
-KPX X Odieresis -38
-KPX X Q -37
-KPX X a 19
-KPX X e -8
-KPX X hyphen -26
-KPX X o -9
-KPX X u -14
-KPX X y -80
-KPX Y A -31
-KPX Y AE -26
-KPX Y Aacute -31
-KPX Y Acircumflex -31
-KPX Y Adieresis -31
-KPX Y Agrave -31
-KPX Y Aring -31
-KPX Y Atilde -31
-KPX Y C -33
-KPX Y G -34
-KPX Y O -33
-KPX Y Oacute -33
-KPX Y Ocircumflex -33
-KPX Y Odieresis -33
-KPX Y Ograve -33
-KPX Y Oslash -37
-KPX Y Otilde -33
-KPX Y S 0
-KPX Y T 32
-KPX Y a -68
-KPX Y ae -65
-KPX Y colon -71
-KPX Y comma -61
-KPX Y e -85
-KPX Y g -68
-KPX Y guillemotleft -104
-KPX Y guilsinglleft -116
-KPX Y hyphen -73
-KPX Y i -4
-KPX Y o -85
-KPX Y oslash -85
-KPX Y p -62
-KPX Y period -65
-KPX Y semicolon -65
-KPX Y u -59
-KPX Y v -62
-KPX Z v -33
-KPX Z y -38
-KPX a j -28
-KPX a quoteright -3
-KPX a v -29
-KPX a w -32
-KPX a y -32
-KPX aacute v -29
-KPX aacute w -32
-KPX aacute y -32
-KPX adieresis v -29
-KPX adieresis w -32
-KPX adieresis y -32
-KPX ae v -15
-KPX ae w -18
-KPX ae y -20
-KPX agrave v -29
-KPX agrave w -32
-KPX agrave y -32
-KPX aring v -29
-KPX aring w -32
-KPX aring y -32
-KPX b v -17
-KPX b w -20
-KPX b y -22
-KPX c h -15
-KPX c k -13
-KPX comma one -28
-KPX comma quotedblright 5
-KPX comma quoteright 5
-KPX e quoteright 15
-KPX e t -15
-KPX e v -15
-KPX e w -19
-KPX e x -16
-KPX e y -20
-KPX eacute v -15
-KPX eacute w -19
-KPX eacute y -20
-KPX ecircumflex v -15
-KPX ecircumflex w -19
-KPX ecircumflex y -20
-KPX eight four 15
-KPX eight one -30
-KPX eight seven -12
-KPX f a -5
-KPX f aacute -5
-KPX f adieresis 12
-KPX f ae -3
-KPX f aring -5
-KPX f e -15
-KPX f eacute -15
-KPX f f 21
-KPX f i 21
-KPX f j 20
-KPX f l 55
-KPX f o -15
-KPX f oacute -15
-KPX f odieresis 4
-KPX f oe -16
-KPX f oslash -20
-KPX f quoteright 61
-KPX f s 0
-KPX f t 16
-KPX five four 10
-KPX five one -45
-KPX five seven -27
-KPX four four 15
-KPX four one -26
-KPX four seven -26
-KPX g a -6
-KPX g adieresis -6
-KPX g ae -4
-KPX g aring -6
-KPX g e -18
-KPX g eacute -18
-KPX g l -4
-KPX g oacute -20
-KPX g odieresis -20
-KPX g r 28
-KPX guillemotright A -45
-KPX guillemotright AE -34
-KPX guillemotright Aacute -45
-KPX guillemotright Adieresis -45
-KPX guillemotright Aring -45
-KPX guillemotright T -109
-KPX guillemotright V -81
-KPX guillemotright W -72
-KPX guillemotright Y -102
-KPX guilsinglright A -52
-KPX guilsinglright AE -41
-KPX guilsinglright Aacute -52
-KPX guilsinglright Adieresis -52
-KPX guilsinglright Aring -52
-KPX guilsinglright T -117
-KPX guilsinglright V -89
-KPX guilsinglright W -80
-KPX guilsinglright Y -110
-KPX h quoteright -6
-KPX h y -36
-KPX hyphen A -7
-KPX hyphen AE 3
-KPX hyphen Aacute -7
-KPX hyphen Adieresis -7
-KPX hyphen Aring -7
-KPX hyphen T -74
-KPX hyphen V -50
-KPX hyphen W -40
-KPX hyphen Y -72
-KPX i T -25
-KPX i j -29
-KPX k a 3
-KPX k aacute 3
-KPX k adieresis 3
-KPX k ae 7
-KPX k aring 3
-KPX k comma 11
-KPX k e -27
-KPX k eacute -27
-KPX k g 3
-KPX k hyphen -46
-KPX k o -29
-KPX k oacute -29
-KPX k odieresis -29
-KPX k period 7
-KPX k s 7
-KPX k u 3
-KPX k udieresis 3
-KPX l v -22
-KPX l y -23
-KPX m p -27
-KPX m v -33
-KPX m w -36
-KPX m y -37
-KPX n T -41
-KPX n p -25
-KPX n quoteright -5
-KPX n v -31
-KPX n w -35
-KPX n y -35
-KPX nine four 9
-KPX nine one -39
-KPX nine seven 1
-KPX o T -38
-KPX o quoteright 8
-KPX o t -17
-KPX o v -24
-KPX o w -28
-KPX o x -25
-KPX o y -29
-KPX oacute v -24
-KPX oacute w -28
-KPX oacute y -29
-KPX ocircumflex t -17
-KPX odieresis t -17
-KPX odieresis v -24
-KPX odieresis w -28
-KPX odieresis x -25
-KPX odieresis y -29
-KPX ograve v -24
-KPX ograve w -28
-KPX ograve y -29
-KPX one comma -23
-KPX one eight -38
-KPX one five -35
-KPX one four -69
-KPX one nine -34
-KPX one one -48
-KPX one period -26
-KPX one seven -73
-KPX one six -51
-KPX one three -35
-KPX one two -12
-KPX one zero -49
-KPX p t -15
-KPX p y -26
-KPX period one -31
-KPX period quotedblright 6
-KPX period quoteright 6
-KPX q c -13
-KPX q u -11
-KPX quotedblbase A 44
-KPX quotedblbase AE 52
-KPX quotedblbase T -52
-KPX quotedblbase V -71
-KPX quotedblbase W -57
-KPX quotedblbase Y -52
-KPX quotedblleft A -64
-KPX quotedblleft AE -48
-KPX quotedblleft Aacute -64
-KPX quotedblleft Adieresis -64
-KPX quotedblleft Aring -64
-KPX quotedblleft T 35
-KPX quotedblleft V 35
-KPX quotedblleft W 23
-KPX quotedblleft Y 32
-KPX quotedblright A -67
-KPX quotedblright AE -52
-KPX quotedblright Aacute -67
-KPX quotedblright Adieresis -67
-KPX quotedblright Aring -67
-KPX quotedblright T 30
-KPX quotedblright V 33
-KPX quotedblright W 20
-KPX quotedblright Y 31
-KPX quoteleft A -63
-KPX quoteleft AE -47
-KPX quoteleft Aacute -63
-KPX quoteleft Adieresis -63
-KPX quoteleft Aring -63
-KPX quoteleft T 36
-KPX quoteleft V 36
-KPX quoteleft W 24
-KPX quoteleft Y 33
-KPX quoteright A -67
-KPX quoteright AE -51
-KPX quoteright Aacute -67
-KPX quoteright Adieresis -67
-KPX quoteright Aring -67
-KPX quoteright comma -7
-KPX quoteright d -5
-KPX quoteright o -6
-KPX quoteright period -9
-KPX quoteright r 6
-KPX quoteright s 6
-KPX quoteright t 6
-KPX quoteright v 11
-KPX quoteright w 8
-KPX quoteright y 9
-KPX r a -1
-KPX r aacute -1
-KPX r acircumflex -1
-KPX r adieresis -1
-KPX r ae 2
-KPX r agrave -1
-KPX r aring -1
-KPX r c 0
-KPX r ccedilla 1
-KPX r colon 5
-KPX r comma -68
-KPX r d -1
-KPX r e 0
-KPX r eacute 0
-KPX r ecircumflex 0
-KPX r egrave 0
-KPX r f 23
-KPX r g 1
-KPX r h -19
-KPX r hyphen 5
-KPX r i 15
-KPX r j 21
-KPX r k -17
-KPX r l -19
-KPX r m 19
-KPX r n 19
-KPX r o 1
-KPX r oacute 1
-KPX r ocircumflex 1
-KPX r odieresis 1
-KPX r oe 0
-KPX r ograve 1
-KPX r oslash -1
-KPX r p 20
-KPX r period -72
-KPX r q -2
-KPX r quoteright 45
-KPX r r 20
-KPX r s 7
-KPX r semicolon 8
-KPX r t 18
-KPX r u 21
-KPX r v 23
-KPX r w 20
-KPX r x 23
-KPX r y 21
-KPX r z 2
-KPX s quoteright 20
-KPX s t -9
-KPX seven colon -45
-KPX seven comma -42
-KPX seven eight -21
-KPX seven five -24
-KPX seven four -62
-KPX seven one -20
-KPX seven period -45
-KPX seven seven -11
-KPX seven six -25
-KPX seven three -19
-KPX seven two -20
-KPX six four 17
-KPX six one -25
-KPX six seven -10
-KPX t S 8
-KPX t a 1
-KPX t aacute 1
-KPX t adieresis 1
-KPX t ae 4
-KPX t aring 1
-KPX t colon -6
-KPX t e 3
-KPX t eacute 3
-KPX t h -7
-KPX t o 3
-KPX t oacute 3
-KPX t odieresis 3
-KPX t quoteright 1
-KPX t semicolon -3
-KPX three four 7
-KPX three one -37
-KPX three seven -18
-KPX two four 8
-KPX two one -30
-KPX two seven -8
-KPX u quoteright 1
-KPX v a -11
-KPX v aacute -11
-KPX v acircumflex -11
-KPX v adieresis -11
-KPX v ae -9
-KPX v agrave -11
-KPX v aring -11
-KPX v atilde -11
-KPX v c -24
-KPX v colon 0
-KPX v comma -59
-KPX v e -22
-KPX v eacute -22
-KPX v ecircumflex -22
-KPX v egrave -22
-KPX v g -18
-KPX v hyphen -26
-KPX v l -24
-KPX v o -23
-KPX v oacute -23
-KPX v odieresis -23
-KPX v ograve -23
-KPX v oslash -28
-KPX v period -61
-KPX v s -6
-KPX v semicolon 0
-KPX w a -11
-KPX w aacute -11
-KPX w acircumflex -11
-KPX w adieresis -11
-KPX w ae -9
-KPX w agrave -11
-KPX w aring -11
-KPX w atilde -11
-KPX w c -24
-KPX w colon 0
-KPX w comma -60
-KPX w e -22
-KPX w eacute -22
-KPX w ecircumflex -22
-KPX w egrave -22
-KPX w g -18
-KPX w hyphen -26
-KPX w l -24
-KPX w o -23
-KPX w oacute -23
-KPX w odieresis -23
-KPX w ograve -23
-KPX w oslash -28
-KPX w period -62
-KPX w s -6
-KPX w semicolon 0
-KPX x a 0
-KPX x c -29
-KPX x e -27
-KPX x eacute -27
-KPX x o -28
-KPX x q -20
-KPX y a -14
-KPX y aacute -14
-KPX y acircumflex -14
-KPX y adieresis -14
-KPX y ae -12
-KPX y agrave -14
-KPX y aring -14
-KPX y atilde -14
-KPX y c -29
-KPX y colon -2
-KPX y comma -63
-KPX y e -27
-KPX y eacute -27
-KPX y ecircumflex -27
-KPX y egrave -27
-KPX y g -23
-KPX y hyphen -28
-KPX y l -24
-KPX y o -28
-KPX y oacute -28
-KPX y odieresis -28
-KPX y ograve -28
-KPX y oslash -33
-KPX y period -64
-KPX y s -9
-KPX y semicolon -1
-KPX zero four 12
-KPX zero one -38
-KPX zero seven 0
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/c059016l.pfb b/Master/xemtex/gsfonts/c059016l.pfb
deleted file mode 100644
index 0b38fd95e76..00000000000
--- a/Master/xemtex/gsfonts/c059016l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059016l.pfm b/Master/xemtex/gsfonts/c059016l.pfm
deleted file mode 100644
index 924583708f2..00000000000
--- a/Master/xemtex/gsfonts/c059016l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059033l.afm b/Master/xemtex/gsfonts/c059033l.afm
deleted file mode 100644
index b8b8411a278..00000000000
--- a/Master/xemtex/gsfonts/c059033l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName CenturySchL-Ital
-FullName Century Schoolbook L Italic
-FamilyName Century Schoolbook L
-Weight Regular
-ItalicAngle -15.0
-IsFixedPitch false
-UnderlinePosition -102
-UnderlineThickness 42
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -166 -329 1018 966
-CapHeight 722
-XHeight 455
-Descender -202
-Ascender 737
-StartCharMetrics 316
-C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 333 ; N exclam ; B 30 -15 316 737 ;
-C 34 ; WX 400 ; N quotedbl ; B 100 510 395 732 ;
-C 35 ; WX 556 ; N numbersign ; B 33 0 524 686 ;
-C 36 ; WX 556 ; N dollar ; B 3 -135 536 792 ;
-C 37 ; WX 833 ; N percent ; B 46 0 792 722 ;
-C 38 ; WX 852 ; N ampersand ; B 24 -15 773 737 ;
-C 39 ; WX 204 ; N quoteright ; B 39 433 230 709 ;
-C 40 ; WX 333 ; N parenleft ; B 40 -123 399 736 ;
-C 41 ; WX 333 ; N parenright ; B -93 -123 265 736 ;
-C 42 ; WX 500 ; N asterisk ; B 34 286 452 705 ;
-C 43 ; WX 606 ; N plus ; B 37 2 540 505 ;
-C 44 ; WX 278 ; N comma ; B -39 -167 151 109 ;
-C 45 ; WX 333 ; N hyphen ; B 32 195 259 278 ;
-C 46 ; WX 278 ; N period ; B 17 -15 141 109 ;
-C 47 ; WX 606 ; N slash ; B 140 -108 466 722 ;
-C 48 ; WX 556 ; N zero ; B 29 -15 527 704 ;
-C 49 ; WX 556 ; N one ; B 50 0 459 708 ;
-C 50 ; WX 556 ; N two ; B -35 0 508 704 ;
-C 51 ; WX 556 ; N three ; B -2 -15 506 704 ;
-C 52 ; WX 556 ; N four ; B -8 0 512 708 ;
-C 53 ; WX 556 ; N five ; B 4 -15 540 704 ;
-C 54 ; WX 556 ; N six ; B 36 -15 547 704 ;
-C 55 ; WX 556 ; N seven ; B 69 -15 561 704 ;
-C 56 ; WX 556 ; N eight ; B 8 -15 527 704 ;
-C 57 ; WX 556 ; N nine ; B 7 -15 519 704 ;
-C 58 ; WX 278 ; N colon ; B 42 -15 254 463 ;
-C 59 ; WX 278 ; N semicolon ; B -14 -167 261 463 ;
-C 60 ; WX 606 ; N less ; B 34 -17 543 523 ;
-C 61 ; WX 606 ; N equal ; B 36 112 540 394 ;
-C 62 ; WX 606 ; N greater ; B 53 -17 562 523 ;
-C 63 ; WX 444 ; N question ; B 102 -15 417 737 ;
-C 64 ; WX 747 ; N at ; B 28 -14 728 736 ;
-C 65 ; WX 704 ; N A ; B -82 0 668 737 ;
-C 66 ; WX 722 ; N B ; B -31 0 668 722 ;
-C 67 ; WX 722 ; N C ; B 40 -15 713 737 ;
-C 68 ; WX 778 ; N D ; B -38 0 735 722 ;
-C 69 ; WX 722 ; N E ; B -37 0 701 722 ;
-C 70 ; WX 667 ; N F ; B -34 0 698 722 ;
-C 71 ; WX 778 ; N G ; B 39 -15 763 737 ;
-C 72 ; WX 833 ; N H ; B -38 0 867 722 ;
-C 73 ; WX 407 ; N I ; B -33 0 431 722 ;
-C 74 ; WX 611 ; N J ; B -13 -15 646 722 ;
-C 75 ; WX 741 ; N K ; B -40 0 814 722 ;
-C 76 ; WX 667 ; N L ; B -37 0 630 722 ;
-C 77 ; WX 944 ; N M ; B -26 0 973 722 ;
-C 78 ; WX 815 ; N N ; B -48 -14 859 722 ;
-C 79 ; WX 778 ; N O ; B 40 -15 735 737 ;
-C 80 ; WX 667 ; N P ; B -33 0 663 722 ;
-C 81 ; WX 778 ; N Q ; B 40 -188 735 737 ;
-C 82 ; WX 741 ; N R ; B -41 -15 691 722 ;
-C 83 ; WX 667 ; N S ; B 0 -15 632 737 ;
-C 84 ; WX 685 ; N T ; B 40 0 726 722 ;
-C 85 ; WX 815 ; N U ; B 93 -15 860 722 ;
-C 86 ; WX 704 ; N V ; B 36 -15 772 722 ;
-C 87 ; WX 926 ; N W ; B 53 -15 973 722 ;
-C 88 ; WX 704 ; N X ; B -73 0 770 722 ;
-C 89 ; WX 685 ; N Y ; B 32 0 758 722 ;
-C 90 ; WX 667 ; N Z ; B -25 0 667 722 ;
-C 91 ; WX 333 ; N bracketleft ; B -33 -108 410 722 ;
-C 92 ; WX 606 ; N backslash ; B 89 0 522 708 ;
-C 93 ; WX 333 ; N bracketright ; B -83 -108 359 722 ;
-C 94 ; WX 606 ; N asciicircum ; B 52 318 554 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -123 500 -81 ;
-C 96 ; WX 204 ; N quoteleft ; B 61 461 252 737 ;
-C 97 ; WX 574 ; N a ; B 1 -15 523 470 ;
-C 98 ; WX 556 ; N b ; B 32 -15 488 737 ;
-C 99 ; WX 444 ; N c ; B 5 -15 401 470 ;
-C 100 ; WX 611 ; N d ; B 3 -15 586 737 ;
-C 101 ; WX 444 ; N e ; B -6 -15 391 470 ;
-C 102 ; WX 333 ; N f ; B -68 -202 470 736 ;
-C 103 ; WX 537 ; N g ; B -79 -202 523 505 ;
-C 104 ; WX 611 ; N h ; B 0 -15 555 737 ;
-C 105 ; WX 333 ; N i ; B 27 -14 282 714 ;
-C 106 ; WX 315 ; N j ; B -166 -202 317 714 ;
-C 107 ; WX 556 ; N k ; B -5 -15 492 737 ;
-C 108 ; WX 333 ; N l ; B 16 -15 294 737 ;
-C 109 ; WX 889 ; N m ; B 15 -15 837 470 ;
-C 110 ; WX 611 ; N n ; B 14 -15 562 470 ;
-C 111 ; WX 500 ; N o ; B 5 -15 450 470 ;
-C 112 ; WX 574 ; N p ; B -101 -202 506 470 ;
-C 113 ; WX 556 ; N q ; B 0 -202 499 470 ;
-C 114 ; WX 444 ; N r ; B 9 0 433 470 ;
-C 115 ; WX 444 ; N s ; B -1 -15 392 470 ;
-C 116 ; WX 352 ; N t ; B 25 -15 329 621 ;
-C 117 ; WX 611 ; N u ; B 41 -15 556 470 ;
-C 118 ; WX 519 ; N v ; B 34 -16 445 470 ;
-C 119 ; WX 778 ; N w ; B 32 -15 708 470 ;
-C 120 ; WX 500 ; N x ; B -33 -15 471 470 ;
-C 121 ; WX 500 ; N y ; B -79 -202 454 470 ;
-C 122 ; WX 463 ; N z ; B -33 -15 417 470 ;
-C 123 ; WX 333 ; N braceleft ; B 52 -108 381 722 ;
-C 124 ; WX 606 ; N bar ; B 269 0 337 722 ;
-C 125 ; WX 333 ; N braceright ; B -98 -108 231 722 ;
-C 126 ; WX 606 ; N asciitilde ; B 41 165 545 327 ;
-C 161 ; WX 333 ; N exclamdown ; B -7 -203 280 549 ;
-C 162 ; WX 556 ; N cent ; B 61 -135 486 581 ;
-C 163 ; WX 556 ; N sterling ; B -8 -15 545 704 ;
-C 164 ; WX 167 ; N fraction ; B -104 0 333 708 ;
-C 165 ; WX 556 ; N yen ; B 40 0 623 704 ;
-C 166 ; WX 556 ; N florin ; B -57 -202 563 736 ;
-C 167 ; WX 500 ; N section ; B -11 -150 480 737 ;
-C 168 ; WX 556 ; N currency ; B 25 93 530 598 ;
-C 169 ; WX 278 ; N quotesingle ; B 114 510 262 732 ;
-C 170 ; WX 389 ; N quotedblleft ; B 63 461 432 737 ;
-C 171 ; WX 426 ; N guillemotleft ; B -15 85 402 402 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 42 85 261 402 ;
-C 173 ; WX 333 ; N guilsinglright ; B 40 85 259 402 ;
-C 174 ; WX 611 ; N fi ; B -60 -202 564 736 ;
-C 175 ; WX 611 ; N fl ; B -60 -202 594 736 ;
-C 177 ; WX 500 ; N endash ; B -18 206 518 267 ;
-C 178 ; WX 500 ; N dagger ; B 64 -144 518 737 ;
-C 179 ; WX 500 ; N daggerdbl ; B -30 -144 528 737 ;
-C 180 ; WX 278 ; N periodcentered ; B 77 183 201 307 ;
-C 182 ; WX 650 ; N paragraph ; B 88 -144 645 722 ;
-C 183 ; WX 606 ; N bullet ; B 114 217 451 554 ;
-C 184 ; WX 204 ; N quotesinglbase ; B -79 -167 112 109 ;
-C 185 ; WX 389 ; N quotedblbase ; B -79 -167 289 109 ;
-C 186 ; WX 389 ; N quotedblright ; B 38 461 407 737 ;
-C 187 ; WX 426 ; N guillemotright ; B -17 85 400 402 ;
-C 188 ; WX 1000 ; N ellipsis ; B 55 -15 845 109 ;
-C 189 ; WX 1000 ; N perthousand ; B -6 -2 1003 700 ;
-C 191 ; WX 444 ; N questiondown ; B 7 -203 323 549 ;
-C 193 ; WX 333 ; N grave ; B 73 519 263 691 ;
-C 194 ; WX 333 ; N acute ; B 132 519 355 689 ;
-C 195 ; WX 333 ; N circumflex ; B 37 519 331 688 ;
-C 196 ; WX 333 ; N tilde ; B 52 544 380 650 ;
-C 197 ; WX 333 ; N macron ; B 51 559 363 610 ;
-C 198 ; WX 333 ; N breve ; B 69 518 370 677 ;
-C 199 ; WX 333 ; N dotaccent ; B 118 546 216 644 ;
-C 200 ; WX 333 ; N dieresis ; B 59 546 359 644 ;
-C 202 ; WX 333 ; N ring ; B 230 513 429 712 ;
-C 203 ; WX 333 ; N cedilla ; B 3 -216 215 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 134 519 520 688 ;
-C 206 ; WX 333 ; N ogonek ; B 68 -155 245 0 ;
-C 207 ; WX 333 ; N caron ; B 73 520 378 683 ;
-C 208 ; WX 1000 ; N emdash ; B -18 206 1018 267 ;
-C 225 ; WX 870 ; N AE ; B -92 0 870 722 ;
-C 227 ; WX 422 ; N ordfeminine ; B 83 330 422 731 ;
-C 232 ; WX 667 ; N Lslash ; B -37 0 630 722 ;
-C 233 ; WX 778 ; N Oslash ; B 1 -87 735 750 ;
-C 234 ; WX 981 ; N OE ; B 36 0 963 722 ;
-C 235 ; WX 372 ; N ordmasculine ; B 83 329 372 731 ;
-C 241 ; WX 722 ; N ae ; B -18 -15 667 470 ;
-C 245 ; WX 333 ; N dotlessi ; B 27 -14 282 470 ;
-C 248 ; WX 333 ; N lslash ; B 16 -10 342 742 ;
-C 249 ; WX 500 ; N oslash ; B -5 -120 440 548 ;
-C 250 ; WX 778 ; N oe ; B 0 -15 720 470 ;
-C 251 ; WX 556 ; N germandbls ; B -76 -202 525 736 ;
-C -1 ; WX 815 ; N Udieresis ; B 93 -15 860 910 ;
-C -1 ; WX 815 ; N Uacute ; B 93 -15 860 947 ;
-C -1 ; WX 667 ; N Scedilla ; B 0 -216 632 737 ;
-C -1 ; WX 685 ; N Tcaron ; B 40 0 726 940 ;
-C -1 ; WX 667 ; N Scaron ; B 0 -15 632 940 ;
-C -1 ; WX 741 ; N Rcaron ; B -41 -15 691 940 ;
-C -1 ; WX 741 ; N Racute ; B -41 -15 691 947 ;
-C -1 ; WX 667 ; N Sacute ; B 0 -15 632 947 ;
-C -1 ; WX 778 ; N Otilde ; B 40 -15 735 917 ;
-C -1 ; WX 611 ; N ucircumflex ; B 41 -15 556 688 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -15 758 947 ;
-C -1 ; WX 815 ; N Uhungarumlaut ; B 93 -15 860 947 ;
-C -1 ; WX 685 ; N Yacute ; B 32 0 758 947 ;
-C -1 ; WX 778 ; N Eth ; B -38 0 735 722 ;
-C -1 ; WX 778 ; N Dcroat ; B -38 0 735 722 ;
-C -1 ; WX 667 ; N Zacute ; B -25 0 667 947 ;
-C -1 ; WX 815 ; N Uring ; B 93 -15 860 966 ;
-C -1 ; WX 537 ; N gbreve ; B -79 -202 523 677 ;
-C -1 ; WX 444 ; N eogonek ; B -6 -155 391 470 ;
-C -1 ; WX 444 ; N edotaccent ; B -6 -15 391 644 ;
-C -1 ; WX 444 ; N ecaron ; B -6 -15 434 683 ;
-C -1 ; WX 815 ; N Ugrave ; B 93 -15 860 946 ;
-C -1 ; WX 667 ; N Thorn ; B -33 0 624 722 ;
-C -1 ; WX 444 ; N eacute ; B -6 -15 411 689 ;
-C -1 ; WX 444 ; N edieresis ; B -6 -15 405 644 ;
-C -1 ; WX 651 ; N dcaron ; B 3 -15 711 737 ;
-C -1 ; WX 444 ; N ccedilla ; B 5 -216 401 470 ;
-C -1 ; WX 444 ; N ccaron ; B 5 -15 474 683 ;
-C -1 ; WX 444 ; N cacute ; B 5 -15 444 689 ;
-C -1 ; WX 574 ; N aogonek ; B 1 -155 523 470 ;
-C -1 ; WX 574 ; N aring ; B 1 -15 523 712 ;
-C -1 ; WX 574 ; N atilde ; B 1 -15 523 650 ;
-C -1 ; WX 574 ; N abreve ; B 1 -15 523 677 ;
-C -1 ; WX 444 ; N egrave ; B -6 -15 391 691 ;
-C -1 ; WX 574 ; N agrave ; B 1 -15 523 691 ;
-C -1 ; WX 574 ; N aacute ; B 1 -15 523 689 ;
-C -1 ; WX 574 ; N adieresis ; B 1 -15 523 644 ;
-C -1 ; WX 815 ; N Uogonek ; B 93 -155 860 722 ;
-C -1 ; WX 611 ; N ugrave ; B 41 -15 556 691 ;
-C -1 ; WX 611 ; N uacute ; B 41 -15 556 689 ;
-C -1 ; WX 611 ; N udieresis ; B 41 -15 556 644 ;
-C -1 ; WX 368 ; N tcaron ; B 25 -15 428 709 ;
-C -1 ; WX 444 ; N scommaaccent ; B -1 -288 392 470 ;
-C -1 ; WX 667 ; N Zcaron ; B -25 0 667 940 ;
-C -1 ; WX 444 ; N ecircumflex ; B -6 -15 391 688 ;
-C -1 ; WX 815 ; N Ucircumflex ; B 93 -15 860 940 ;
-C -1 ; WX 574 ; N acircumflex ; B 1 -15 523 688 ;
-C -1 ; WX 667 ; N Zdotaccent ; B -25 0 667 910 ;
-C -1 ; WX 444 ; N scaron ; B -1 -15 434 683 ;
-C -1 ; WX 704 ; N Amacron ; B -82 0 668 877 ;
-C -1 ; WX 444 ; N sacute ; B -1 -15 424 689 ;
-C -1 ; WX 685 ; N Tcommaaccent ; B 40 -288 726 722 ;
-C -1 ; WX 685 ; N Ydieresis ; B 32 0 758 910 ;
-C -1 ; WX 574 ; N thorn ; B -101 -202 506 737 ;
-C -1 ; WX 722 ; N Emacron ; B -37 0 701 877 ;
-C -1 ; WX 778 ; N Ograve ; B 40 -15 735 946 ;
-C -1 ; WX 778 ; N Oacute ; B 40 -15 735 947 ;
-C -1 ; WX 778 ; N Odieresis ; B 40 -15 735 910 ;
-C -1 ; WX 815 ; N Ntilde ; B -48 -14 859 917 ;
-C -1 ; WX 815 ; N Ncaron ; B -48 -14 859 940 ;
-C -1 ; WX 815 ; N Nacute ; B -48 -14 859 947 ;
-C -1 ; WX 667 ; N Lcaron ; B -37 0 707 737 ;
-C -1 ; WX 667 ; N Lacute ; B -37 0 630 947 ;
-C -1 ; WX 407 ; N Idotaccent ; B -33 0 431 910 ;
-C -1 ; WX 444 ; N racute ; B 9 0 450 689 ;
-C -1 ; WX 407 ; N Icircumflex ; B -33 0 431 940 ;
-C -1 ; WX 500 ; N ohungarumlaut ; B 5 -15 560 688 ;
-C -1 ; WX 500 ; N otilde ; B 5 -15 454 650 ;
-C -1 ; WX 556 ; N Euro ; B -29 -15 629 713 ;
-C -1 ; WX 500 ; N ocircumflex ; B 5 -15 450 688 ;
-C -1 ; WX 333 ; N onesuperior ; B 43 288 309 712 ;
-C -1 ; WX 333 ; N twosuperior ; B 0 288 353 710 ;
-C -1 ; WX 333 ; N threesuperior ; B 1 279 331 710 ;
-C -1 ; WX 407 ; N Igrave ; B -33 0 431 946 ;
-C -1 ; WX 407 ; N Iacute ; B -33 0 431 947 ;
-C -1 ; WX 407 ; N Imacron ; B -33 0 465 877 ;
-C -1 ; WX 407 ; N Iogonek ; B -33 -155 431 722 ;
-C -1 ; WX 407 ; N Idieresis ; B -33 0 446 910 ;
-C -1 ; WX 778 ; N Gbreve ; B 39 -15 763 935 ;
-C -1 ; WX 815 ; N Umacron ; B 93 -15 860 877 ;
-C -1 ; WX 741 ; N Kcommaaccent ; B -40 -288 814 722 ;
-C -1 ; WX 500 ; N ograve ; B 5 -15 450 691 ;
-C -1 ; WX 667 ; N Scommaaccent ; B 0 -329 632 737 ;
-C -1 ; WX 722 ; N Eogonek ; B -37 -155 701 722 ;
-C -1 ; WX 500 ; N oacute ; B 5 -15 450 689 ;
-C -1 ; WX 722 ; N Edotaccent ; B -37 0 701 910 ;
-C -1 ; WX 333 ; N iogonek ; B 27 -155 282 714 ;
-C -1 ; WX 537 ; N gcommaaccent ; B -79 -202 523 759 ;
-C -1 ; WX 500 ; N odieresis ; B 5 -15 450 644 ;
-C -1 ; WX 611 ; N ntilde ; B 14 -15 562 650 ;
-C -1 ; WX 611 ; N ncaron ; B 14 -15 562 683 ;
-C -1 ; WX 722 ; N Ecaron ; B -37 0 701 940 ;
-C -1 ; WX 722 ; N Ecircumflex ; B -37 0 701 940 ;
-C -1 ; WX 444 ; N scedilla ; B -1 -216 392 470 ;
-C -1 ; WX 444 ; N rcaron ; B 9 0 434 683 ;
-C -1 ; WX 722 ; N Egrave ; B -37 0 701 946 ;
-C -1 ; WX 722 ; N Eacute ; B -37 0 701 947 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 39 -288 763 737 ;
-C -1 ; WX 741 ; N Rcommaaccent ; B -41 -288 691 722 ;
-C -1 ; WX 722 ; N Edieresis ; B -37 0 701 910 ;
-C -1 ; WX 611 ; N nacute ; B 14 -15 562 689 ;
-C -1 ; WX 611 ; N uogonek ; B 41 -155 556 470 ;
-C -1 ; WX 611 ; N umacron ; B 41 -15 556 610 ;
-C -1 ; WX 778 ; N Dcaron ; B -38 0 735 940 ;
-C -1 ; WX 359 ; N lcaron ; B 16 -15 419 737 ;
-C -1 ; WX 722 ; N Ccaron ; B 40 -15 713 940 ;
-C -1 ; WX 722 ; N Cacute ; B 40 -15 713 947 ;
-C -1 ; WX 722 ; N Ccedilla ; B 40 -216 713 737 ;
-C -1 ; WX 400 ; N degree ; B 70 380 370 686 ;
-C -1 ; WX 704 ; N Aogonek ; B -82 -155 753 737 ;
-C -1 ; WX 606 ; N minus ; B 41 213 545 293 ;
-C -1 ; WX 606 ; N multiply ; B 37 1 540 504 ;
-C -1 ; WX 606 ; N divide ; B 37 -9 540 515 ;
-C -1 ; WX 704 ; N Aring ; B -82 0 668 966 ;
-C -1 ; WX 950 ; N trademark ; B 48 288 971 722 ;
-C -1 ; WX 444 ; N rcommaaccent ; B 9 -288 433 470 ;
-C -1 ; WX 333 ; N lacute ; B 16 -15 371 944 ;
-C -1 ; WX 500 ; N omacron ; B 5 -15 450 610 ;
-C -1 ; WX 704 ; N Atilde ; B -82 0 668 917 ;
-C -1 ; WX 333 ; N icircumflex ; B -3 -14 291 688 ;
-C -1 ; WX 333 ; N igrave ; B 27 -14 282 691 ;
-C -1 ; WX 611 ; N ncommaaccent ; B 14 -288 562 470 ;
-C -1 ; WX 333 ; N lcommaaccent ; B -34 -288 294 737 ;
-C -1 ; WX 606 ; N plusminus ; B 37 0 540 581 ;
-C -1 ; WX 834 ; N onehalf ; B 33 0 844 712 ;
-C -1 ; WX 834 ; N onequarter ; B 33 0 833 712 ;
-C -1 ; WX 834 ; N threequarters ; B 1 0 833 710 ;
-C -1 ; WX 333 ; N iacute ; B 27 -14 355 689 ;
-C -1 ; WX 704 ; N Abreve ; B -82 0 668 935 ;
-C -1 ; WX 556 ; N kcommaaccent ; B -5 -288 492 737 ;
-C -1 ; WX 778 ; N Omacron ; B 40 -15 735 877 ;
-C -1 ; WX 333 ; N imacron ; B 27 -14 363 610 ;
-C -1 ; WX 444 ; N emacron ; B -6 -15 419 610 ;
-C -1 ; WX 574 ; N amacron ; B 1 -15 523 610 ;
-C -1 ; WX 352 ; N tcommaaccent ; B -5 -288 329 621 ;
-C -1 ; WX 500 ; N ydieresis ; B -79 -202 454 644 ;
-C -1 ; WX 463 ; N zdotaccent ; B -33 -15 417 644 ;
-C -1 ; WX 463 ; N zcaron ; B -33 -15 443 683 ;
-C -1 ; WX 463 ; N zacute ; B -33 -15 420 689 ;
-C -1 ; WX 500 ; N yacute ; B -79 -202 454 689 ;
-C -1 ; WX 611 ; N uhungarumlaut ; B 41 -15 611 688 ;
-C -1 ; WX 500 ; N eth ; B 5 -15 450 716 ;
-C -1 ; WX 611 ; N uring ; B 41 -15 556 712 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 40 -15 735 940 ;
-C -1 ; WX 333 ; N commaaccent ; B 46 -288 218 -40 ;
-C -1 ; WX 747 ; N copyright ; B 24 -15 724 685 ;
-C -1 ; WX 747 ; N registered ; B 23 -15 723 685 ;
-C -1 ; WX 704 ; N Acircumflex ; B -82 0 668 940 ;
-C -1 ; WX 333 ; N idieresis ; B 27 -14 349 644 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 36 -43 540 549 ;
-C -1 ; WX 549 ; N radical ; B -10 -35 531 916 ;
-C -1 ; WX 704 ; N Agrave ; B -82 0 668 946 ;
-C -1 ; WX 704 ; N Aacute ; B -82 0 668 947 ;
-C -1 ; WX 606 ; N lessequal ; B 34 0 543 643 ;
-C -1 ; WX 606 ; N greaterequal ; B 53 0 562 643 ;
-C -1 ; WX 606 ; N logicalnot ; B 41 0 545 293 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 815 ; N Ncommaaccent ; B -48 -288 859 722 ;
-C -1 ; WX 611 ; N dcroat ; B 3 -15 635 737 ;
-C -1 ; WX 606 ; N brokenbar ; B 269 0 337 722 ;
-C -1 ; WX 667 ; N Lcommaaccent ; B -37 -288 630 722 ;
-C -1 ; WX 704 ; N Adieresis ; B -82 0 668 910 ;
-C -1 ; WX 611 ; N mu ; B -70 -219 556 470 ;
-C -1 ; WX 278 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -37
-KPX A Ccedilla -41
-KPX A G -32
-KPX A O -34
-KPX A Odieresis -34
-KPX A Q -32
-KPX A T -18
-KPX A U -43
-KPX A Uacute -43
-KPX A Ucircumflex -43
-KPX A Udieresis -43
-KPX A Ugrave -43
-KPX A V -91
-KPX A W -85
-KPX A Y -21
-KPX A a 3
-KPX A b -11
-KPX A c -3
-KPX A ccedilla -7
-KPX A comma 16
-KPX A d 1
-KPX A e 3
-KPX A g 17
-KPX A guillemotleft -19
-KPX A guilsinglleft -47
-KPX A hyphen -16
-KPX A o -4
-KPX A period 17
-KPX A q 3
-KPX A quotedblright -59
-KPX A quoteright -58
-KPX A t 3
-KPX A u -8
-KPX A v -13
-KPX A w -1
-KPX A y -51
-KPX Aacute C -37
-KPX Aacute G -32
-KPX Aacute O -34
-KPX Aacute Q -32
-KPX Aacute T -18
-KPX Aacute U -43
-KPX Aacute V -91
-KPX Aacute W -85
-KPX Aacute Y -21
-KPX Aacute a 3
-KPX Aacute b -11
-KPX Aacute c -3
-KPX Aacute comma 16
-KPX Aacute d 1
-KPX Aacute e 3
-KPX Aacute g 17
-KPX Aacute guillemotleft -19
-KPX Aacute guilsinglleft -47
-KPX Aacute hyphen -16
-KPX Aacute o -4
-KPX Aacute period 17
-KPX Aacute q 3
-KPX Aacute quoteright -58
-KPX Aacute t 3
-KPX Aacute u -8
-KPX Aacute v -13
-KPX Aacute w -1
-KPX Aacute y -51
-KPX Acircumflex C -37
-KPX Acircumflex G -32
-KPX Acircumflex O -34
-KPX Acircumflex Q -32
-KPX Acircumflex T -18
-KPX Acircumflex U -43
-KPX Acircumflex V -91
-KPX Acircumflex W -85
-KPX Acircumflex Y -21
-KPX Acircumflex comma 16
-KPX Acircumflex period 17
-KPX Adieresis C -37
-KPX Adieresis G -32
-KPX Adieresis O -34
-KPX Adieresis Q -32
-KPX Adieresis T -18
-KPX Adieresis U -43
-KPX Adieresis V -91
-KPX Adieresis W -85
-KPX Adieresis Y -21
-KPX Adieresis a 3
-KPX Adieresis b -11
-KPX Adieresis c -3
-KPX Adieresis comma 16
-KPX Adieresis d 1
-KPX Adieresis g 17
-KPX Adieresis guillemotleft -19
-KPX Adieresis guilsinglleft -47
-KPX Adieresis hyphen -16
-KPX Adieresis o -4
-KPX Adieresis period 17
-KPX Adieresis q 3
-KPX Adieresis quotedblright -59
-KPX Adieresis quoteright -58
-KPX Adieresis t 3
-KPX Adieresis u -8
-KPX Adieresis v -13
-KPX Adieresis w -1
-KPX Adieresis y -51
-KPX Agrave C -37
-KPX Agrave G -32
-KPX Agrave O -34
-KPX Agrave Q -32
-KPX Agrave T -18
-KPX Agrave U -43
-KPX Agrave V -91
-KPX Agrave W -85
-KPX Agrave Y -21
-KPX Agrave comma 16
-KPX Agrave period 17
-KPX Aring C -37
-KPX Aring G -32
-KPX Aring O -34
-KPX Aring Q -32
-KPX Aring T -18
-KPX Aring U -43
-KPX Aring V -91
-KPX Aring W -85
-KPX Aring Y -21
-KPX Aring a 3
-KPX Aring b -11
-KPX Aring c -3
-KPX Aring comma 16
-KPX Aring d 1
-KPX Aring e 3
-KPX Aring g 17
-KPX Aring guillemotleft -19
-KPX Aring guilsinglleft -47
-KPX Aring hyphen -16
-KPX Aring o -4
-KPX Aring period 17
-KPX Aring q 3
-KPX Aring quotedblright -59
-KPX Aring quoteright -58
-KPX Aring t 3
-KPX Aring u -8
-KPX Aring v -13
-KPX Aring w -1
-KPX Aring y -51
-KPX Atilde C -37
-KPX Atilde G -32
-KPX Atilde O -34
-KPX Atilde Q -32
-KPX Atilde T -18
-KPX Atilde U -43
-KPX Atilde V -91
-KPX Atilde W -85
-KPX Atilde Y -21
-KPX Atilde comma 16
-KPX Atilde period 17
-KPX B A -3
-KPX B AE 1
-KPX B Aacute -3
-KPX B Acircumflex -3
-KPX B Adieresis -3
-KPX B Aring -3
-KPX B Atilde -3
-KPX B O -12
-KPX B OE -13
-KPX B Oacute -12
-KPX B Ocircumflex -12
-KPX B Odieresis -12
-KPX B Ograve -12
-KPX B Oslash -13
-KPX B V -26
-KPX B W -37
-KPX B Y -21
-KPX C A -18
-KPX C AE -13
-KPX C Aacute -18
-KPX C Adieresis -18
-KPX C Aring -18
-KPX C H -21
-KPX C K -20
-KPX C O -12
-KPX C Oacute -12
-KPX C Odieresis -12
-KPX Ccedilla A -23
-KPX D A -42
-KPX D Aacute -42
-KPX D Acircumflex -42
-KPX D Adieresis -42
-KPX D Agrave -42
-KPX D Aring -42
-KPX D Atilde -42
-KPX D J -7
-KPX D T 0
-KPX D V -41
-KPX D W -48
-KPX D X -47
-KPX D Y -36
-KPX F A -73
-KPX F Aacute -73
-KPX F Acircumflex -73
-KPX F Adieresis -73
-KPX F Agrave -73
-KPX F Aring -73
-KPX F Atilde -73
-KPX F J -72
-KPX F O -1
-KPX F Odieresis -1
-KPX F a -49
-KPX F aacute -49
-KPX F adieresis -48
-KPX F ae -35
-KPX F aring -49
-KPX F comma -92
-KPX F e -52
-KPX F eacute -52
-KPX F hyphen -50
-KPX F i 0
-KPX F j -18
-KPX F o -54
-KPX F oacute -54
-KPX F odieresis -33
-KPX F oe -51
-KPX F oslash -55
-KPX F period -93
-KPX F r -1
-KPX F u 3
-KPX G A -7
-KPX G AE -2
-KPX G Aacute -7
-KPX G Acircumflex -7
-KPX G Adieresis -7
-KPX G Agrave -7
-KPX G Aring -7
-KPX G Atilde -7
-KPX G T -22
-KPX G V 1
-KPX G W -7
-KPX G Y 2
-KPX J A -47
-KPX J AE -42
-KPX J Adieresis -47
-KPX J Aring -47
-KPX K C -34
-KPX K G -36
-KPX K O -36
-KPX K OE -39
-KPX K Oacute -36
-KPX K Odieresis -36
-KPX K S 17
-KPX K T 20
-KPX K a 0
-KPX K adieresis 0
-KPX K ae 18
-KPX K aring 0
-KPX K e 0
-KPX K hyphen -51
-KPX K o -8
-KPX K oacute -8
-KPX K odieresis -8
-KPX K u -12
-KPX K udieresis -12
-KPX K y -83
-KPX L A 31
-KPX L AE 36
-KPX L Aacute 31
-KPX L Adieresis 31
-KPX L Aring 31
-KPX L C 2
-KPX L Ccedilla 2
-KPX L G 3
-KPX L O 2
-KPX L Oacute 2
-KPX L Ocircumflex 2
-KPX L Odieresis 2
-KPX L Ograve 2
-KPX L Otilde 2
-KPX L S 0
-KPX L T -49
-KPX L U -26
-KPX L Udieresis -26
-KPX L V -72
-KPX L W -67
-KPX L Y -52
-KPX L hyphen 38
-KPX L quotedblright -48
-KPX L quoteright -41
-KPX L u -7
-KPX L udieresis -7
-KPX L y -1
-KPX N A -32
-KPX N AE -27
-KPX N Aacute -32
-KPX N Adieresis -32
-KPX N Aring -32
-KPX N C -28
-KPX N Ccedilla -27
-KPX N G -29
-KPX N O -28
-KPX N Oacute -28
-KPX N Odieresis -28
-KPX N a -34
-KPX N aacute -34
-KPX N adieresis -34
-KPX N ae -39
-KPX N aring -34
-KPX N comma -36
-KPX N e -32
-KPX N eacute -32
-KPX N o -37
-KPX N oacute -37
-KPX N odieresis -37
-KPX N oslash -33
-KPX N period -38
-KPX N u -42
-KPX N udieresis -42
-KPX O A -42
-KPX O AE -37
-KPX O Aacute -42
-KPX O Adieresis -42
-KPX O Aring -42
-KPX O T 0
-KPX O V -35
-KPX O W -47
-KPX O X -47
-KPX O Y -30
-KPX Oacute A -42
-KPX Oacute T 0
-KPX Oacute V -35
-KPX Oacute W -47
-KPX Oacute Y -30
-KPX Ocircumflex T 0
-KPX Ocircumflex V -35
-KPX Ocircumflex Y -30
-KPX Odieresis A -42
-KPX Odieresis T 0
-KPX Odieresis V -35
-KPX Odieresis W -47
-KPX Odieresis X -47
-KPX Odieresis Y -30
-KPX Ograve T 0
-KPX Ograve V -35
-KPX Ograve Y -30
-KPX Oslash A -41
-KPX Otilde T 0
-KPX Otilde V -35
-KPX Otilde Y -30
-KPX P A -80
-KPX P AE -69
-KPX P Aacute -80
-KPX P Adieresis -80
-KPX P Aring -80
-KPX P J -78
-KPX P a -32
-KPX P aacute -32
-KPX P adieresis -32
-KPX P ae -23
-KPX P aring -32
-KPX P comma -111
-KPX P e -33
-KPX P eacute -33
-KPX P hyphen -55
-KPX P o -36
-KPX P oacute -36
-KPX P odieresis -36
-KPX P oe -32
-KPX P oslash -35
-KPX P period -112
-KPX R C -15
-KPX R Ccedilla -14
-KPX R G -14
-KPX R O -14
-KPX R OE -14
-KPX R Oacute -14
-KPX R Odieresis -14
-KPX R T -14
-KPX R U -33
-KPX R Udieresis -33
-KPX R V -22
-KPX R W -33
-KPX R Y -17
-KPX R a -1
-KPX R aacute -1
-KPX R adieresis -1
-KPX R ae 5
-KPX R aring -1
-KPX R e 1
-KPX R eacute 1
-KPX R hyphen 0
-KPX R o -4
-KPX R oacute -4
-KPX R odieresis -4
-KPX R oe -2
-KPX R u -22
-KPX R uacute -22
-KPX R udieresis -22
-KPX R y -45
-KPX S A -5
-KPX S AE 0
-KPX S Aacute -5
-KPX S Adieresis -5
-KPX S Aring -5
-KPX S T -21
-KPX S V 3
-KPX S W -5
-KPX S Y 4
-KPX S t -19
-KPX T A -46
-KPX T AE -41
-KPX T Aacute -46
-KPX T Acircumflex -46
-KPX T Adieresis -46
-KPX T Agrave -46
-KPX T Aring -46
-KPX T Atilde -46
-KPX T C 8
-KPX T G 6
-KPX T J -80
-KPX T O 7
-KPX T OE 8
-KPX T Oacute 7
-KPX T Ocircumflex 7
-KPX T Odieresis 7
-KPX T Ograve 7
-KPX T Oslash 6
-KPX T Otilde 7
-KPX T S -10
-KPX T V 41
-KPX T W 34
-KPX T Y 43
-KPX T a -28
-KPX T ae -14
-KPX T c -35
-KPX T colon -26
-KPX T comma -92
-KPX T e -33
-KPX T g -35
-KPX T guillemotleft -102
-KPX T guilsinglleft -130
-KPX T hyphen -99
-KPX T i 15
-KPX T j -3
-KPX T o -35
-KPX T oslash -37
-KPX T period -93
-KPX T r 13
-KPX T s -21
-KPX T semicolon -30
-KPX T u 13
-KPX T v 17
-KPX T w 16
-KPX T y 2
-KPX U A -50
-KPX U AE -45
-KPX U Aacute -50
-KPX U Acircumflex -50
-KPX U Adieresis -50
-KPX U Aring -50
-KPX U Atilde -50
-KPX U comma -47
-KPX U m -44
-KPX U n -44
-KPX U p -47
-KPX U period -48
-KPX U r -43
-KPX Uacute A -50
-KPX Uacute comma -47
-KPX Uacute m -44
-KPX Uacute n -44
-KPX Uacute p -47
-KPX Uacute period -48
-KPX Uacute r -43
-KPX Ucircumflex A -50
-KPX Udieresis A -50
-KPX Udieresis b 8
-KPX Udieresis comma -47
-KPX Udieresis m -44
-KPX Udieresis n -44
-KPX Udieresis p -47
-KPX Udieresis period -48
-KPX Udieresis r -43
-KPX Ugrave A -50
-KPX V A -95
-KPX V AE -42
-KPX V Aacute -95
-KPX V Acircumflex -95
-KPX V Adieresis -95
-KPX V Agrave -95
-KPX V Aring -95
-KPX V Atilde -95
-KPX V C -41
-KPX V G -45
-KPX V O -43
-KPX V Oacute -43
-KPX V Ocircumflex -43
-KPX V Odieresis -43
-KPX V Ograve -43
-KPX V Oslash -46
-KPX V Otilde -43
-KPX V S -15
-KPX V T 17
-KPX V a -79
-KPX V ae -84
-KPX V colon -99
-KPX V comma -101
-KPX V e -78
-KPX V g -88
-KPX V guillemotleft -70
-KPX V guilsinglleft -98
-KPX V hyphen -68
-KPX V i -13
-KPX V o -83
-KPX V oslash -79
-KPX V period -102
-KPX V r -56
-KPX V semicolon -103
-KPX V u -55
-KPX V y -68
-KPX W A -71
-KPX W AE -53
-KPX W Aacute -71
-KPX W Acircumflex -71
-KPX W Adieresis -71
-KPX W Agrave -71
-KPX W Aring -71
-KPX W Atilde -71
-KPX W C -44
-KPX W G -44
-KPX W O -44
-KPX W Oacute -44
-KPX W Ocircumflex -44
-KPX W Odieresis -44
-KPX W Ograve -44
-KPX W Oslash -43
-KPX W Otilde -44
-KPX W S -26
-KPX W T 6
-KPX W a -58
-KPX W ae -64
-KPX W colon -92
-KPX W comma -71
-KPX W e -57
-KPX W g -66
-KPX W guillemotleft -49
-KPX W guilsinglleft -77
-KPX W hyphen -46
-KPX W i -24
-KPX W o -61
-KPX W oslash -57
-KPX W period -72
-KPX W r -49
-KPX W semicolon -93
-KPX W u -48
-KPX W y -56
-KPX X C -37
-KPX X O -39
-KPX X Odieresis -39
-KPX X Q -41
-KPX X a -5
-KPX X e -5
-KPX X hyphen -50
-KPX X o -13
-KPX X u -17
-KPX X y -88
-KPX Y A -43
-KPX Y AE -38
-KPX Y Aacute -43
-KPX Y Acircumflex -43
-KPX Y Adieresis -43
-KPX Y Agrave -43
-KPX Y Aring -43
-KPX Y Atilde -43
-KPX Y C -33
-KPX Y G -37
-KPX Y O -35
-KPX Y Oacute -35
-KPX Y Ocircumflex -35
-KPX Y Odieresis -35
-KPX Y Ograve -35
-KPX Y Oslash -38
-KPX Y Otilde -35
-KPX Y S -8
-KPX Y T 21
-KPX Y a -92
-KPX Y ae -83
-KPX Y colon -103
-KPX Y comma -89
-KPX Y e -91
-KPX Y g -87
-KPX Y guillemotleft -95
-KPX Y guilsinglleft -123
-KPX Y hyphen -95
-KPX Y i -10
-KPX Y o -95
-KPX Y oslash -91
-KPX Y p -80
-KPX Y period -90
-KPX Y semicolon -102
-KPX Y u -72
-KPX Y v -69
-KPX Z v -15
-KPX Z y -8
-KPX a j -45
-KPX a quoteright -7
-KPX a v -21
-KPX a w -18
-KPX a y -37
-KPX aacute v -21
-KPX aacute w -18
-KPX aacute y -37
-KPX adieresis v -21
-KPX adieresis w -18
-KPX adieresis y -37
-KPX ae v -21
-KPX ae w -22
-KPX ae y -6
-KPX agrave v -21
-KPX agrave w -18
-KPX agrave y -37
-KPX aring v -21
-KPX aring w -18
-KPX aring y -37
-KPX b v -27
-KPX b w -26
-KPX b y -4
-KPX c h -23
-KPX c k -21
-KPX comma one -48
-KPX comma quotedblright 4
-KPX comma quoteright 4
-KPX e quoteright 20
-KPX e t -13
-KPX e v -22
-KPX e w -22
-KPX e x -1
-KPX e y -4
-KPX eacute v -22
-KPX eacute w -23
-KPX eacute y -4
-KPX ecircumflex v -22
-KPX ecircumflex w -22
-KPX ecircumflex y -4
-KPX eight four 7
-KPX eight one -60
-KPX eight seven -11
-KPX f a -14
-KPX f aacute -14
-KPX f adieresis 3
-KPX f ae -7
-KPX f aring -14
-KPX f e -15
-KPX f eacute -15
-KPX f f 14
-KPX f i 16
-KPX f j -2
-KPX f l 42
-KPX f o -18
-KPX f oacute -18
-KPX f odieresis 18
-KPX f oe -15
-KPX f oslash -18
-KPX f quoteright 57
-KPX f s -12
-KPX f t 18
-KPX five four 4
-KPX five one -77
-KPX five seven -42
-KPX four four 17
-KPX four one -41
-KPX four seven -30
-KPX g a -32
-KPX g adieresis -32
-KPX g ae -22
-KPX g aring -32
-KPX g e -29
-KPX g eacute -29
-KPX g l -37
-KPX g oacute -32
-KPX g odieresis -32
-KPX g r 0
-KPX guillemotright A -14
-KPX guillemotright AE -1
-KPX guillemotright Aacute -14
-KPX guillemotright Adieresis -14
-KPX guillemotright Aring -14
-KPX guillemotright T -81
-KPX guillemotright V -61
-KPX guillemotright W -53
-KPX guillemotright Y -80
-KPX guilsinglright A -38
-KPX guilsinglright AE -25
-KPX guilsinglright Aacute -38
-KPX guilsinglright Adieresis -38
-KPX guilsinglright Aring -38
-KPX guilsinglright T -105
-KPX guilsinglright V -86
-KPX guilsinglright W -77
-KPX guilsinglright Y -104
-KPX h quoteright -22
-KPX h y -43
-KPX hyphen A -11
-KPX hyphen AE 2
-KPX hyphen Aacute -11
-KPX hyphen Adieresis -11
-KPX hyphen Aring -11
-KPX hyphen T -78
-KPX hyphen V -60
-KPX hyphen W -51
-KPX hyphen Y -81
-KPX i T -38
-KPX i j -44
-KPX k a -5
-KPX k aacute -5
-KPX k adieresis -5
-KPX k ae 0
-KPX k aring -5
-KPX k comma 0
-KPX k e -2
-KPX k eacute -2
-KPX k g -7
-KPX k hyphen -9
-KPX k o -8
-KPX k oacute -8
-KPX k odieresis -8
-KPX k period -1
-KPX k s -6
-KPX k u -27
-KPX k udieresis -27
-KPX l v -28
-KPX l y -52
-KPX m p -27
-KPX m v -22
-KPX m w -18
-KPX m y -42
-KPX n T -61
-KPX n p -26
-KPX n quoteright -19
-KPX n v -21
-KPX n w -17
-KPX n y -40
-KPX nine four -2
-KPX nine one -69
-KPX nine seven -12
-KPX o T -48
-KPX o quoteright 15
-KPX o t -15
-KPX o v -19
-KPX o w -17
-KPX o x -9
-KPX o y 3
-KPX oacute v -19
-KPX oacute w -17
-KPX oacute y 3
-KPX ocircumflex t -15
-KPX odieresis t -15
-KPX odieresis v -19
-KPX odieresis w -17
-KPX odieresis x -9
-KPX odieresis y 3
-KPX ograve v -19
-KPX ograve w -17
-KPX ograve y 3
-KPX one comma -30
-KPX one eight -41
-KPX one five -39
-KPX one four -60
-KPX one nine -33
-KPX one one -50
-KPX one period -31
-KPX one seven -67
-KPX one six -49
-KPX one three -36
-KPX one two -8
-KPX one zero -42
-KPX p t -21
-KPX p y -4
-KPX period one -54
-KPX period quotedblright -1
-KPX period quoteright -1
-KPX q c -26
-KPX q u -23
-KPX quotedblbase A 37
-KPX quotedblbase AE 50
-KPX quotedblbase T -50
-KPX quotedblbase V -76
-KPX quotedblbase W -64
-KPX quotedblbase Y -53
-KPX quotedblleft A -63
-KPX quotedblleft AE -51
-KPX quotedblleft Aacute -63
-KPX quotedblleft Adieresis -63
-KPX quotedblleft Aring -63
-KPX quotedblleft T 33
-KPX quotedblleft V 43
-KPX quotedblleft W 35
-KPX quotedblleft Y 44
-KPX quotedblright A -69
-KPX quotedblright AE -57
-KPX quotedblright Aacute -69
-KPX quotedblright Adieresis -69
-KPX quotedblright Aring -69
-KPX quotedblright T 29
-KPX quotedblright V 33
-KPX quotedblright W 25
-KPX quotedblright Y 35
-KPX quoteleft A -61
-KPX quoteleft AE -49
-KPX quoteleft Aacute -61
-KPX quoteleft Adieresis -61
-KPX quoteleft Aring -61
-KPX quoteleft T 35
-KPX quoteleft V 45
-KPX quoteleft W 38
-KPX quoteleft Y 47
-KPX quoteright A -62
-KPX quoteright AE -50
-KPX quoteright Aacute -62
-KPX quoteright Adieresis -62
-KPX quoteright Aring -62
-KPX quoteright comma -42
-KPX quoteright d -18
-KPX quoteright o -13
-KPX quoteright period -43
-KPX quoteright r -5
-KPX quoteright s -11
-KPX quoteright t -1
-KPX quoteright v -1
-KPX quoteright w -2
-KPX quoteright y 14
-KPX r a -10
-KPX r aacute -10
-KPX r acircumflex -10
-KPX r adieresis -10
-KPX r ae -11
-KPX r agrave -10
-KPX r aring -10
-KPX r c -11
-KPX r ccedilla -9
-KPX r colon -36
-KPX r comma -108
-KPX r d -15
-KPX r e -8
-KPX r eacute -8
-KPX r ecircumflex -8
-KPX r egrave -8
-KPX r f 5
-KPX r g -15
-KPX r h -33
-KPX r hyphen -75
-KPX r i 4
-KPX r j -14
-KPX r k -30
-KPX r l -28
-KPX r m -3
-KPX r n -3
-KPX r o -10
-KPX r oacute -10
-KPX r ocircumflex -10
-KPX r odieresis -10
-KPX r oe -6
-KPX r ograve -10
-KPX r oslash -8
-KPX r p -3
-KPX r period -109
-KPX r q -15
-KPX r quoteright 36
-KPX r r 1
-KPX r s -14
-KPX r semicolon -39
-KPX r t 9
-KPX r u -1
-KPX r v 2
-KPX r w 1
-KPX r x 2
-KPX r y 10
-KPX r z 2
-KPX s quoteright 19
-KPX s t -14
-KPX seven colon -95
-KPX seven comma -78
-KPX seven eight -47
-KPX seven five -49
-KPX seven four -82
-KPX seven one -67
-KPX seven period -79
-KPX seven seven -28
-KPX seven six -49
-KPX seven three -38
-KPX seven two -31
-KPX six four 11
-KPX six one -55
-KPX six seven -12
-KPX t S -11
-KPX t a -6
-KPX t aacute -6
-KPX t adieresis -6
-KPX t ae -1
-KPX t aring -6
-KPX t colon -40
-KPX t e -3
-KPX t eacute -3
-KPX t h -24
-KPX t o -9
-KPX t oacute -9
-KPX t odieresis -9
-KPX t quoteright 4
-KPX t semicolon -37
-KPX three four -3
-KPX three one -73
-KPX three seven -20
-KPX two four 2
-KPX two one -56
-KPX two seven -18
-KPX u quoteright -12
-KPX v a -20
-KPX v aacute -20
-KPX v acircumflex -20
-KPX v adieresis -20
-KPX v ae -28
-KPX v agrave -20
-KPX v aring -20
-KPX v atilde -20
-KPX v c -23
-KPX v colon -67
-KPX v comma -43
-KPX v e -19
-KPX v eacute -19
-KPX v ecircumflex -19
-KPX v egrave -19
-KPX v g -31
-KPX v hyphen -9
-KPX v l -33
-KPX v o -23
-KPX v oacute -23
-KPX v odieresis -23
-KPX v ograve -23
-KPX v oslash -19
-KPX v period -44
-KPX v s -31
-KPX v semicolon -65
-KPX w a -18
-KPX w aacute -18
-KPX w acircumflex -18
-KPX w adieresis -18
-KPX w ae -26
-KPX w agrave -18
-KPX w aring -18
-KPX w atilde -18
-KPX w c -21
-KPX w colon -65
-KPX w comma -40
-KPX w e -17
-KPX w eacute -17
-KPX w ecircumflex -17
-KPX w egrave -17
-KPX w g -29
-KPX w hyphen -8
-KPX w l -31
-KPX w o -21
-KPX w oacute -21
-KPX w odieresis -21
-KPX w ograve -21
-KPX w oslash -17
-KPX w period -41
-KPX w s -29
-KPX w semicolon -63
-KPX x a 3
-KPX x c 0
-KPX x e 5
-KPX x eacute 5
-KPX x o 0
-KPX x q 3
-KPX y a -21
-KPX y aacute -21
-KPX y acircumflex -21
-KPX y adieresis -21
-KPX y ae -28
-KPX y agrave -21
-KPX y aring -21
-KPX y atilde -21
-KPX y c -24
-KPX y colon -53
-KPX y comma -48
-KPX y e -20
-KPX y eacute -20
-KPX y ecircumflex -20
-KPX y egrave -20
-KPX y g -31
-KPX y hyphen -15
-KPX y l -33
-KPX y o -24
-KPX y oacute -24
-KPX y odieresis -24
-KPX y ograve -24
-KPX y oslash -20
-KPX y period -49
-KPX y s -31
-KPX y semicolon -57
-KPX zero four 6
-KPX zero one -62
-KPX zero seven -8
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/c059033l.pfb b/Master/xemtex/gsfonts/c059033l.pfb
deleted file mode 100644
index 0073b95a016..00000000000
--- a/Master/xemtex/gsfonts/c059033l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059033l.pfm b/Master/xemtex/gsfonts/c059033l.pfm
deleted file mode 100644
index 5860e2e7b13..00000000000
--- a/Master/xemtex/gsfonts/c059033l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059036l.afm b/Master/xemtex/gsfonts/c059036l.afm
deleted file mode 100644
index 9e83da145d5..00000000000
--- a/Master/xemtex/gsfonts/c059036l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName CenturySchL-BoldItal
-FullName Century Schoolbook L Bold Italic
-FamilyName Century Schoolbook L
-Weight Bold
-ItalicAngle -15.0
-IsFixedPitch false
-UnderlinePosition -102
-UnderlineThickness 54
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -170 -371 1151 998
-CapHeight 722
-XHeight 464
-Descender -202
-Ascender 736
-StartCharMetrics 316
-C 32 ; WX 287 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 333 ; N exclam ; B 3 -15 336 737 ;
-C 34 ; WX 400 ; N quotedbl ; B 100 397 507 734 ;
-C 35 ; WX 574 ; N numbersign ; B 41 0 533 700 ;
-C 36 ; WX 574 ; N dollar ; B 3 -145 559 794 ;
-C 37 ; WX 889 ; N percent ; B 51 0 836 722 ;
-C 38 ; WX 889 ; N ampersand ; B 31 -15 823 737 ;
-C 39 ; WX 259 ; N quoteright ; B 70 377 301 722 ;
-C 40 ; WX 407 ; N parenleft ; B 71 -118 452 737 ;
-C 41 ; WX 407 ; N parenright ; B -70 -118 308 737 ;
-C 42 ; WX 500 ; N asterisk ; B 32 297 472 737 ;
-C 43 ; WX 606 ; N plus ; B 41 0 545 505 ;
-C 44 ; WX 287 ; N comma ; B -48 -187 180 159 ;
-C 45 ; WX 333 ; N hyphen ; B 10 180 272 310 ;
-C 46 ; WX 287 ; N period ; B 12 -15 186 159 ;
-C 47 ; WX 278 ; N slash ; B -25 -15 311 737 ;
-C 48 ; WX 574 ; N zero ; B 21 -15 553 705 ;
-C 49 ; WX 574 ; N one ; B 25 0 489 707 ;
-C 50 ; WX 574 ; N two ; B -45 0 538 705 ;
-C 51 ; WX 574 ; N three ; B -5 -15 538 705 ;
-C 52 ; WX 574 ; N four ; B -13 0 544 707 ;
-C 53 ; WX 574 ; N five ; B 0 -15 573 705 ;
-C 54 ; WX 574 ; N six ; B 30 -15 573 705 ;
-C 55 ; WX 574 ; N seven ; B 64 -15 593 705 ;
-C 56 ; WX 574 ; N eight ; B 0 -15 551 705 ;
-C 57 ; WX 574 ; N nine ; B 1 -15 544 705 ;
-C 58 ; WX 287 ; N colon ; B -2 -15 257 481 ;
-C 59 ; WX 287 ; N semicolon ; B -39 -187 257 481 ;
-C 60 ; WX 606 ; N less ; B 14 -25 523 529 ;
-C 61 ; WX 606 ; N equal ; B 41 92 545 413 ;
-C 62 ; WX 606 ; N greater ; B 38 -25 547 529 ;
-C 63 ; WX 481 ; N question ; B 79 -15 452 737 ;
-C 64 ; WX 747 ; N at ; B 22 -15 722 737 ;
-C 65 ; WX 741 ; N A ; B -75 0 716 736 ;
-C 66 ; WX 759 ; N B ; B -50 0 720 722 ;
-C 67 ; WX 759 ; N C ; B 35 -15 759 737 ;
-C 68 ; WX 833 ; N D ; B -49 0 796 722 ;
-C 69 ; WX 741 ; N E ; B -41 0 728 722 ;
-C 70 ; WX 704 ; N F ; B -41 0 726 722 ;
-C 71 ; WX 815 ; N G ; B 34 -15 802 737 ;
-C 72 ; WX 870 ; N H ; B -41 0 912 722 ;
-C 73 ; WX 444 ; N I ; B -41 0 486 722 ;
-C 74 ; WX 667 ; N J ; B -9 -15 718 722 ;
-C 75 ; WX 778 ; N K ; B -41 0 832 722 ;
-C 76 ; WX 704 ; N L ; B -41 0 670 722 ;
-C 77 ; WX 944 ; N M ; B -24 0 988 722 ;
-C 78 ; WX 852 ; N N ; B -57 -14 912 722 ;
-C 79 ; WX 833 ; N O ; B 36 -15 797 737 ;
-C 80 ; WX 741 ; N P ; B -38 0 731 722 ;
-C 81 ; WX 833 ; N Q ; B 35 -186 796 737 ;
-C 82 ; WX 796 ; N R ; B -41 -15 751 722 ;
-C 83 ; WX 685 ; N S ; B 1 -15 666 737 ;
-C 84 ; WX 722 ; N T ; B 44 0 762 722 ;
-C 85 ; WX 833 ; N U ; B 88 -15 895 722 ;
-C 86 ; WX 741 ; N V ; B 32 -14 802 722 ;
-C 87 ; WX 944 ; N W ; B 40 -14 994 722 ;
-C 88 ; WX 741 ; N X ; B -72 0 811 722 ;
-C 89 ; WX 704 ; N Y ; B 15 0 777 722 ;
-C 90 ; WX 704 ; N Z ; B -29 0 715 722 ;
-C 91 ; WX 407 ; N bracketleft ; B -31 -108 432 722 ;
-C 92 ; WX 606 ; N backslash ; B 81 0 545 722 ;
-C 93 ; WX 407 ; N bracketright ; B -49 -108 414 722 ;
-C 94 ; WX 606 ; N asciicircum ; B 52 318 554 722 ;
-C 95 ; WX 500 ; N underscore ; B 0 -129 500 -75 ;
-C 96 ; WX 259 ; N quoteleft ; B 39 391 270 737 ;
-C 97 ; WX 667 ; N a ; B 15 -15 646 479 ;
-C 98 ; WX 611 ; N b ; B 28 -15 557 736 ;
-C 99 ; WX 537 ; N c ; B 3 -14 487 478 ;
-C 100 ; WX 667 ; N d ; B 0 -15 663 736 ;
-C 101 ; WX 519 ; N e ; B -2 -14 478 479 ;
-C 102 ; WX 389 ; N f ; B -48 -205 550 737 ;
-C 103 ; WX 611 ; N g ; B -66 -202 602 533 ;
-C 104 ; WX 685 ; N h ; B 0 -15 637 736 ;
-C 105 ; WX 389 ; N i ; B 28 -15 343 737 ;
-C 106 ; WX 370 ; N j ; B -170 -202 381 737 ;
-C 107 ; WX 648 ; N k ; B -5 -15 584 736 ;
-C 108 ; WX 389 ; N l ; B 26 -15 370 736 ;
-C 109 ; WX 944 ; N m ; B 9 -14 920 479 ;
-C 110 ; WX 685 ; N n ; B 3 -15 642 479 ;
-C 111 ; WX 574 ; N o ; B 10 -14 540 479 ;
-C 112 ; WX 648 ; N p ; B -118 -202 590 479 ;
-C 113 ; WX 630 ; N q ; B 0 -202 587 478 ;
-C 114 ; WX 519 ; N r ; B 3 0 524 479 ;
-C 115 ; WX 481 ; N s ; B 2 -15 437 479 ;
-C 116 ; WX 407 ; N t ; B 24 -14 404 650 ;
-C 117 ; WX 685 ; N u ; B 38 -14 639 478 ;
-C 118 ; WX 556 ; N v ; B 32 -15 500 479 ;
-C 119 ; WX 833 ; N w ; B 22 -15 788 479 ;
-C 120 ; WX 574 ; N x ; B -49 -15 571 479 ;
-C 121 ; WX 519 ; N y ; B -66 -202 492 479 ;
-C 122 ; WX 519 ; N z ; B -19 -15 471 479 ;
-C 123 ; WX 407 ; N braceleft ; B 52 -108 402 722 ;
-C 124 ; WX 606 ; N bar ; B 262 0 343 722 ;
-C 125 ; WX 407 ; N braceright ; B -30 -108 322 722 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 160 555 335 ;
-C 161 ; WX 333 ; N exclamdown ; B -39 -203 289 549 ;
-C 162 ; WX 574 ; N cent ; B 30 -137 514 586 ;
-C 163 ; WX 574 ; N sterling ; B -18 -15 566 705 ;
-C 164 ; WX 167 ; N fraction ; B -166 0 333 722 ;
-C 165 ; WX 574 ; N yen ; B 23 0 635 706 ;
-C 166 ; WX 574 ; N florin ; B -27 -204 588 737 ;
-C 167 ; WX 500 ; N section ; B -40 -144 505 737 ;
-C 168 ; WX 574 ; N currency ; B 40 97 546 603 ;
-C 169 ; WX 287 ; N quotesingle ; B 100 397 269 734 ;
-C 170 ; WX 481 ; N quotedblleft ; B 52 391 522 737 ;
-C 171 ; WX 481 ; N guillemotleft ; B -35 78 427 419 ;
-C 172 ; WX 278 ; N guilsinglleft ; B -35 78 224 419 ;
-C 173 ; WX 278 ; N guilsinglright ; B -6 78 253 419 ;
-C 174 ; WX 685 ; N fi ; B -70 -205 646 737 ;
-C 175 ; WX 685 ; N fl ; B -70 -205 681 736 ;
-C 177 ; WX 500 ; N endash ; B -18 193 518 298 ;
-C 178 ; WX 500 ; N dagger ; B 50 -144 510 737 ;
-C 179 ; WX 500 ; N daggerdbl ; B -48 -147 514 737 ;
-C 180 ; WX 287 ; N periodcentered ; B 41 171 215 345 ;
-C 182 ; WX 650 ; N paragraph ; B 67 -144 661 722 ;
-C 183 ; WX 606 ; N bullet ; B 109 180 446 517 ;
-C 184 ; WX 259 ; N quotesinglbase ; B -43 -187 188 159 ;
-C 185 ; WX 481 ; N quotedblbase ; B -70 -187 402 159 ;
-C 186 ; WX 481 ; N quotedblright ; B 61 391 533 737 ;
-C 187 ; WX 481 ; N guillemotright ; B -6 78 456 419 ;
-C 188 ; WX 1000 ; N ellipsis ; B 20 -15 860 159 ;
-C 189 ; WX 1167 ; N perthousand ; B 26 0 1151 722 ;
-C 191 ; WX 481 ; N questiondown ; B 1 -203 368 549 ;
-C 193 ; WX 333 ; N grave ; B 74 535 294 719 ;
-C 194 ; WX 333 ; N acute ; B 123 535 371 719 ;
-C 195 ; WX 333 ; N circumflex ; B 23 535 365 709 ;
-C 196 ; WX 333 ; N tilde ; B 34 557 404 683 ;
-C 197 ; WX 333 ; N macron ; B 32 566 387 642 ;
-C 198 ; WX 333 ; N breve ; B 67 537 390 701 ;
-C 199 ; WX 333 ; N dotaccent ; B 145 542 288 685 ;
-C 200 ; WX 333 ; N dieresis ; B 34 542 392 685 ;
-C 202 ; WX 333 ; N ring ; B 217 530 432 745 ;
-C 203 ; WX 333 ; N cedilla ; B -87 -220 157 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 23 542 472 709 ;
-C 206 ; WX 333 ; N ogonek ; B 68 -173 245 0 ;
-C 207 ; WX 333 ; N caron ; B 60 535 403 711 ;
-C 208 ; WX 1000 ; N emdash ; B -18 193 1018 298 ;
-C 225 ; WX 889 ; N AE ; B -81 0 903 722 ;
-C 227 ; WX 412 ; N ordfeminine ; B 29 293 449 737 ;
-C 232 ; WX 704 ; N Lslash ; B -41 0 670 722 ;
-C 233 ; WX 833 ; N Oslash ; B 17 -83 797 773 ;
-C 234 ; WX 963 ; N OE ; B 19 0 980 722 ;
-C 235 ; WX 356 ; N ordmasculine ; B 29 293 383 737 ;
-C 241 ; WX 815 ; N ae ; B -19 -15 774 479 ;
-C 245 ; WX 389 ; N dotlessi ; B 38 -15 353 478 ;
-C 248 ; WX 389 ; N lslash ; B 26 -15 397 736 ;
-C 249 ; WX 574 ; N oslash ; B 10 -126 540 578 ;
-C 250 ; WX 852 ; N oe ; B -5 -15 810 479 ;
-C 251 ; WX 574 ; N germandbls ; B -66 -205 523 737 ;
-C -1 ; WX 833 ; N Udieresis ; B 88 -15 895 933 ;
-C -1 ; WX 833 ; N Uacute ; B 88 -15 895 958 ;
-C -1 ; WX 685 ; N Scedilla ; B 1 -222 666 737 ;
-C -1 ; WX 722 ; N Tcaron ; B 44 0 762 950 ;
-C -1 ; WX 685 ; N Scaron ; B 1 -15 666 950 ;
-C -1 ; WX 796 ; N Rcaron ; B -41 -15 751 950 ;
-C -1 ; WX 796 ; N Racute ; B -41 -15 751 958 ;
-C -1 ; WX 685 ; N Sacute ; B 1 -15 666 958 ;
-C -1 ; WX 833 ; N Otilde ; B 36 -15 797 922 ;
-C -1 ; WX 685 ; N ucircumflex ; B 38 -14 639 709 ;
-C -1 ; WX 833 ; N Ohungarumlaut ; B 36 -15 797 958 ;
-C -1 ; WX 833 ; N Uhungarumlaut ; B 88 -15 895 958 ;
-C -1 ; WX 704 ; N Yacute ; B 15 0 777 958 ;
-C -1 ; WX 833 ; N Eth ; B -49 0 796 722 ;
-C -1 ; WX 833 ; N Dcroat ; B -49 0 796 722 ;
-C -1 ; WX 704 ; N Zacute ; B -29 0 715 958 ;
-C -1 ; WX 833 ; N Uring ; B 88 -15 895 998 ;
-C -1 ; WX 611 ; N gbreve ; B -66 -202 602 701 ;
-C -1 ; WX 519 ; N eogonek ; B -2 -173 478 479 ;
-C -1 ; WX 519 ; N edotaccent ; B -2 -14 478 685 ;
-C -1 ; WX 519 ; N ecaron ; B -2 -14 496 711 ;
-C -1 ; WX 833 ; N Ugrave ; B 88 -15 895 958 ;
-C -1 ; WX 741 ; N Thorn ; B -38 0 690 722 ;
-C -1 ; WX 519 ; N eacute ; B -2 -14 478 719 ;
-C -1 ; WX 519 ; N edieresis ; B -2 -14 495 685 ;
-C -1 ; WX 780 ; N dcaron ; B 0 -15 840 736 ;
-C -1 ; WX 537 ; N ccedilla ; B 3 -220 487 479 ;
-C -1 ; WX 537 ; N ccaron ; B 3 -14 515 711 ;
-C -1 ; WX 537 ; N cacute ; B 3 -14 487 719 ;
-C -1 ; WX 667 ; N aogonek ; B 15 -173 646 479 ;
-C -1 ; WX 667 ; N aring ; B 15 -15 646 745 ;
-C -1 ; WX 667 ; N atilde ; B 15 -15 646 683 ;
-C -1 ; WX 667 ; N abreve ; B 15 -15 646 701 ;
-C -1 ; WX 519 ; N egrave ; B -2 -14 478 719 ;
-C -1 ; WX 667 ; N agrave ; B 15 -15 646 719 ;
-C -1 ; WX 667 ; N aacute ; B 15 -15 646 719 ;
-C -1 ; WX 667 ; N adieresis ; B 15 -15 646 685 ;
-C -1 ; WX 833 ; N Uogonek ; B 88 -173 895 722 ;
-C -1 ; WX 685 ; N ugrave ; B 38 -14 639 719 ;
-C -1 ; WX 685 ; N uacute ; B 38 -14 639 719 ;
-C -1 ; WX 685 ; N udieresis ; B 38 -14 639 685 ;
-C -1 ; WX 483 ; N tcaron ; B 24 -14 543 722 ;
-C -1 ; WX 481 ; N scommaaccent ; B 0 -371 437 479 ;
-C -1 ; WX 704 ; N Zcaron ; B -29 0 715 950 ;
-C -1 ; WX 519 ; N ecircumflex ; B -2 -14 478 709 ;
-C -1 ; WX 833 ; N Ucircumflex ; B 88 -15 895 950 ;
-C -1 ; WX 667 ; N acircumflex ; B 15 -15 646 709 ;
-C -1 ; WX 704 ; N Zdotaccent ; B -29 0 715 933 ;
-C -1 ; WX 481 ; N scaron ; B 2 -15 477 711 ;
-C -1 ; WX 741 ; N Amacron ; B -75 0 716 894 ;
-C -1 ; WX 481 ; N sacute ; B 2 -15 445 719 ;
-C -1 ; WX 722 ; N Tcommaaccent ; B 44 -371 762 722 ;
-C -1 ; WX 704 ; N Ydieresis ; B 15 0 777 933 ;
-C -1 ; WX 648 ; N thorn ; B -118 -202 590 737 ;
-C -1 ; WX 741 ; N Emacron ; B -41 0 728 894 ;
-C -1 ; WX 833 ; N Ograve ; B 36 -15 797 958 ;
-C -1 ; WX 833 ; N Oacute ; B 36 -15 797 958 ;
-C -1 ; WX 833 ; N Odieresis ; B 36 -15 797 933 ;
-C -1 ; WX 852 ; N Ntilde ; B -57 -14 912 922 ;
-C -1 ; WX 852 ; N Ncaron ; B -57 -14 912 950 ;
-C -1 ; WX 852 ; N Nacute ; B -57 -14 912 958 ;
-C -1 ; WX 704 ; N Lcaron ; B -41 0 784 722 ;
-C -1 ; WX 704 ; N Lacute ; B -41 0 670 958 ;
-C -1 ; WX 444 ; N Idotaccent ; B -41 0 486 933 ;
-C -1 ; WX 519 ; N racute ; B 3 0 524 719 ;
-C -1 ; WX 444 ; N Icircumflex ; B -41 0 486 950 ;
-C -1 ; WX 574 ; N ohungarumlaut ; B 10 -14 593 709 ;
-C -1 ; WX 574 ; N otilde ; B 10 -14 540 683 ;
-C -1 ; WX 574 ; N Euro ; B -37 -15 640 717 ;
-C -1 ; WX 574 ; N ocircumflex ; B 10 -14 540 709 ;
-C -1 ; WX 344 ; N onesuperior ; B 21 282 323 706 ;
-C -1 ; WX 344 ; N twosuperior ; B -16 282 360 705 ;
-C -1 ; WX 344 ; N threesuperior ; B -4 274 348 705 ;
-C -1 ; WX 444 ; N Igrave ; B -41 0 486 958 ;
-C -1 ; WX 444 ; N Iacute ; B -41 0 486 958 ;
-C -1 ; WX 444 ; N Imacron ; B -41 0 504 894 ;
-C -1 ; WX 444 ; N Iogonek ; B -41 -173 486 722 ;
-C -1 ; WX 444 ; N Idieresis ; B -41 0 498 933 ;
-C -1 ; WX 815 ; N Gbreve ; B 34 -15 802 941 ;
-C -1 ; WX 833 ; N Umacron ; B 88 -15 895 894 ;
-C -1 ; WX 778 ; N Kcommaaccent ; B -41 -371 832 722 ;
-C -1 ; WX 574 ; N ograve ; B 10 -14 540 719 ;
-C -1 ; WX 685 ; N Scommaaccent ; B 1 -371 666 737 ;
-C -1 ; WX 741 ; N Eogonek ; B -41 -173 728 722 ;
-C -1 ; WX 574 ; N oacute ; B 10 -14 540 719 ;
-C -1 ; WX 741 ; N Edotaccent ; B -41 0 728 933 ;
-C -1 ; WX 389 ; N iogonek ; B 28 -173 343 737 ;
-C -1 ; WX 611 ; N gcommaaccent ; B -66 -202 602 842 ;
-C -1 ; WX 574 ; N odieresis ; B 10 -14 540 685 ;
-C -1 ; WX 685 ; N ntilde ; B 3 -15 642 683 ;
-C -1 ; WX 685 ; N ncaron ; B 3 -15 642 711 ;
-C -1 ; WX 741 ; N Ecaron ; B -41 0 728 950 ;
-C -1 ; WX 741 ; N Ecircumflex ; B -41 0 728 950 ;
-C -1 ; WX 481 ; N scedilla ; B 2 -220 437 479 ;
-C -1 ; WX 519 ; N rcaron ; B 3 0 524 711 ;
-C -1 ; WX 741 ; N Egrave ; B -41 0 728 958 ;
-C -1 ; WX 741 ; N Eacute ; B -41 0 728 958 ;
-C -1 ; WX 815 ; N Gcommaaccent ; B 34 -371 802 737 ;
-C -1 ; WX 796 ; N Rcommaaccent ; B -41 -371 751 722 ;
-C -1 ; WX 741 ; N Edieresis ; B -41 0 728 933 ;
-C -1 ; WX 685 ; N nacute ; B 3 -15 642 719 ;
-C -1 ; WX 685 ; N uogonek ; B 38 -173 639 478 ;
-C -1 ; WX 685 ; N umacron ; B 38 -14 639 642 ;
-C -1 ; WX 833 ; N Dcaron ; B -49 0 796 950 ;
-C -1 ; WX 486 ; N lcaron ; B 26 -15 546 736 ;
-C -1 ; WX 759 ; N Ccaron ; B 35 -15 759 950 ;
-C -1 ; WX 759 ; N Cacute ; B 35 -15 759 958 ;
-C -1 ; WX 759 ; N Ccedilla ; B 35 -222 759 737 ;
-C -1 ; WX 400 ; N degree ; B 70 380 370 686 ;
-C -1 ; WX 741 ; N Aogonek ; B -75 -173 775 736 ;
-C -1 ; WX 606 ; N minus ; B 41 195 545 310 ;
-C -1 ; WX 606 ; N multiply ; B 41 0 547 506 ;
-C -1 ; WX 606 ; N divide ; B 41 -31 545 536 ;
-C -1 ; WX 741 ; N Aring ; B -75 0 716 998 ;
-C -1 ; WX 950 ; N trademark ; B 42 302 982 722 ;
-C -1 ; WX 519 ; N rcommaaccent ; B -80 -371 524 479 ;
-C -1 ; WX 389 ; N lacute ; B 26 -15 399 958 ;
-C -1 ; WX 574 ; N omacron ; B 10 -14 540 642 ;
-C -1 ; WX 741 ; N Atilde ; B -75 0 716 922 ;
-C -1 ; WX 389 ; N icircumflex ; B 38 -15 383 709 ;
-C -1 ; WX 389 ; N igrave ; B 38 -15 353 719 ;
-C -1 ; WX 685 ; N ncommaaccent ; B 3 -371 642 479 ;
-C -1 ; WX 389 ; N lcommaaccent ; B -71 -371 370 736 ;
-C -1 ; WX 606 ; N plusminus ; B 41 0 545 610 ;
-C -1 ; WX 861 ; N onehalf ; B 21 0 857 722 ;
-C -1 ; WX 861 ; N onequarter ; B 21 0 826 722 ;
-C -1 ; WX 861 ; N threequarters ; B -4 0 826 722 ;
-C -1 ; WX 389 ; N iacute ; B 38 -15 399 719 ;
-C -1 ; WX 741 ; N Abreve ; B -75 0 716 941 ;
-C -1 ; WX 648 ; N kcommaaccent ; B -5 -371 584 736 ;
-C -1 ; WX 833 ; N Omacron ; B 36 -15 797 894 ;
-C -1 ; WX 389 ; N imacron ; B 38 -15 415 642 ;
-C -1 ; WX 519 ; N emacron ; B -2 -14 480 642 ;
-C -1 ; WX 667 ; N amacron ; B 15 -15 646 642 ;
-C -1 ; WX 407 ; N tcommaaccent ; B -62 -371 404 650 ;
-C -1 ; WX 519 ; N ydieresis ; B -66 -202 492 685 ;
-C -1 ; WX 519 ; N zdotaccent ; B -19 -15 471 685 ;
-C -1 ; WX 519 ; N zcaron ; B -19 -15 496 711 ;
-C -1 ; WX 519 ; N zacute ; B -19 -15 471 719 ;
-C -1 ; WX 519 ; N yacute ; B -66 -202 492 719 ;
-C -1 ; WX 685 ; N uhungarumlaut ; B 38 -14 648 709 ;
-C -1 ; WX 574 ; N eth ; B 10 -14 540 788 ;
-C -1 ; WX 685 ; N uring ; B 38 -14 639 745 ;
-C -1 ; WX 833 ; N Ocircumflex ; B 36 -15 797 950 ;
-C -1 ; WX 333 ; N commaaccent ; B -99 -371 109 -60 ;
-C -1 ; WX 747 ; N copyright ; B 23 -15 723 685 ;
-C -1 ; WX 747 ; N registered ; B 23 -15 723 685 ;
-C -1 ; WX 741 ; N Acircumflex ; B -75 0 716 950 ;
-C -1 ; WX 389 ; N idieresis ; B 38 -15 410 685 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 41 -51 545 557 ;
-C -1 ; WX 549 ; N radical ; B -34 -35 548 918 ;
-C -1 ; WX 741 ; N Agrave ; B -75 0 716 958 ;
-C -1 ; WX 741 ; N Aacute ; B -75 0 716 958 ;
-C -1 ; WX 606 ; N lessequal ; B 14 0 523 698 ;
-C -1 ; WX 606 ; N greaterequal ; B 38 0 547 698 ;
-C -1 ; WX 606 ; N logicalnot ; B 41 19 545 310 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 13 -11 476 753 ;
-C -1 ; WX 852 ; N Ncommaaccent ; B -57 -371 912 722 ;
-C -1 ; WX 667 ; N dcroat ; B 0 -15 695 736 ;
-C -1 ; WX 606 ; N brokenbar ; B 262 0 343 722 ;
-C -1 ; WX 704 ; N Lcommaaccent ; B -41 -371 670 722 ;
-C -1 ; WX 741 ; N Adieresis ; B -75 0 716 933 ;
-C -1 ; WX 685 ; N mu ; B -90 -219 639 478 ;
-C -1 ; WX 287 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -35
-KPX A Ccedilla -37
-KPX A G -32
-KPX A O -35
-KPX A Odieresis -35
-KPX A Q -34
-KPX A T -12
-KPX A U -46
-KPX A Uacute -46
-KPX A Ucircumflex -46
-KPX A Udieresis -46
-KPX A Ugrave -46
-KPX A V -87
-KPX A W -71
-KPX A Y -13
-KPX A a -9
-KPX A b -10
-KPX A c 0
-KPX A ccedilla -2
-KPX A comma 37
-KPX A d -1
-KPX A e 3
-KPX A g 14
-KPX A guillemotleft -10
-KPX A guilsinglleft -10
-KPX A hyphen -5
-KPX A o -7
-KPX A period 32
-KPX A q 5
-KPX A quotedblright -61
-KPX A quoteright -66
-KPX A t 4
-KPX A u -4
-KPX A v -20
-KPX A w 3
-KPX A y -48
-KPX Aacute C -35
-KPX Aacute G -32
-KPX Aacute O -35
-KPX Aacute Q -34
-KPX Aacute T -12
-KPX Aacute U -46
-KPX Aacute V -87
-KPX Aacute W -71
-KPX Aacute Y -13
-KPX Aacute a -9
-KPX Aacute b -10
-KPX Aacute c 0
-KPX Aacute comma 37
-KPX Aacute d -1
-KPX Aacute e 3
-KPX Aacute g 14
-KPX Aacute guillemotleft -10
-KPX Aacute guilsinglleft -10
-KPX Aacute hyphen -5
-KPX Aacute o -7
-KPX Aacute period 32
-KPX Aacute q 5
-KPX Aacute quoteright -66
-KPX Aacute t 4
-KPX Aacute u -4
-KPX Aacute v -20
-KPX Aacute w 3
-KPX Aacute y -48
-KPX Acircumflex C -35
-KPX Acircumflex G -32
-KPX Acircumflex O -35
-KPX Acircumflex Q -34
-KPX Acircumflex T -12
-KPX Acircumflex U -46
-KPX Acircumflex V -87
-KPX Acircumflex W -71
-KPX Acircumflex Y -13
-KPX Acircumflex comma 37
-KPX Acircumflex period 32
-KPX Adieresis C -35
-KPX Adieresis G -32
-KPX Adieresis O -35
-KPX Adieresis Q -34
-KPX Adieresis T -12
-KPX Adieresis U -46
-KPX Adieresis V -87
-KPX Adieresis W -71
-KPX Adieresis Y -13
-KPX Adieresis a -9
-KPX Adieresis b -10
-KPX Adieresis c 0
-KPX Adieresis comma 37
-KPX Adieresis d -1
-KPX Adieresis g 14
-KPX Adieresis guillemotleft -10
-KPX Adieresis guilsinglleft -10
-KPX Adieresis hyphen -5
-KPX Adieresis o -7
-KPX Adieresis period 32
-KPX Adieresis q 5
-KPX Adieresis quotedblright -61
-KPX Adieresis quoteright -66
-KPX Adieresis t 4
-KPX Adieresis u -4
-KPX Adieresis v -20
-KPX Adieresis w 3
-KPX Adieresis y -48
-KPX Agrave C -35
-KPX Agrave G -32
-KPX Agrave O -35
-KPX Agrave Q -34
-KPX Agrave T -12
-KPX Agrave U -46
-KPX Agrave V -87
-KPX Agrave W -71
-KPX Agrave Y -13
-KPX Agrave comma 37
-KPX Agrave period 32
-KPX Aring C -35
-KPX Aring G -32
-KPX Aring O -35
-KPX Aring Q -34
-KPX Aring T -12
-KPX Aring U -46
-KPX Aring V -87
-KPX Aring W -71
-KPX Aring Y -13
-KPX Aring a -9
-KPX Aring b -10
-KPX Aring c 0
-KPX Aring comma 37
-KPX Aring d -1
-KPX Aring e 3
-KPX Aring g 14
-KPX Aring guillemotleft -10
-KPX Aring guilsinglleft -10
-KPX Aring hyphen -5
-KPX Aring o -7
-KPX Aring period 32
-KPX Aring q 5
-KPX Aring quotedblright -61
-KPX Aring quoteright -66
-KPX Aring t 4
-KPX Aring u -4
-KPX Aring v -20
-KPX Aring w 3
-KPX Aring y -48
-KPX Atilde C -35
-KPX Atilde G -32
-KPX Atilde O -35
-KPX Atilde Q -34
-KPX Atilde T -12
-KPX Atilde U -46
-KPX Atilde V -87
-KPX Atilde W -71
-KPX Atilde Y -13
-KPX Atilde comma 37
-KPX Atilde period 32
-KPX B A 1
-KPX B AE 4
-KPX B Aacute 1
-KPX B Acircumflex 1
-KPX B Adieresis 1
-KPX B Aring 1
-KPX B Atilde 1
-KPX B O -6
-KPX B OE 0
-KPX B Oacute -6
-KPX B Ocircumflex -6
-KPX B Odieresis -6
-KPX B Ograve -6
-KPX B Oslash -5
-KPX B V -19
-KPX B W -23
-KPX B Y -8
-KPX C A -17
-KPX C AE -14
-KPX C Aacute -17
-KPX C Adieresis -17
-KPX C Aring -17
-KPX C H -15
-KPX C K -15
-KPX C O -7
-KPX C Oacute -7
-KPX C Odieresis -7
-KPX Ccedilla A -21
-KPX D A -44
-KPX D Aacute -44
-KPX D Acircumflex -44
-KPX D Adieresis -44
-KPX D Agrave -44
-KPX D Aring -44
-KPX D Atilde -44
-KPX D J -1
-KPX D T -5
-KPX D V -39
-KPX D W -32
-KPX D X -43
-KPX D Y -27
-KPX F A -79
-KPX F Aacute -79
-KPX F Acircumflex -79
-KPX F Adieresis -79
-KPX F Agrave -79
-KPX F Aring -79
-KPX F Atilde -79
-KPX F J -61
-KPX F O -7
-KPX F Odieresis -7
-KPX F a -66
-KPX F aacute -66
-KPX F adieresis -66
-KPX F ae -41
-KPX F aring -66
-KPX F comma -67
-KPX F e -60
-KPX F eacute -61
-KPX F hyphen -38
-KPX F i 3
-KPX F j -21
-KPX F o -65
-KPX F oacute -66
-KPX F odieresis -52
-KPX F oe -56
-KPX F oslash -69
-KPX F period -80
-KPX F r -2
-KPX F u -7
-KPX G A -14
-KPX G AE -11
-KPX G Aacute -14
-KPX G Acircumflex -14
-KPX G Adieresis -14
-KPX G Agrave -14
-KPX G Aring -14
-KPX G Atilde -14
-KPX G T -27
-KPX G V -3
-KPX G W -7
-KPX G Y 5
-KPX J A -48
-KPX J AE -43
-KPX J Adieresis -48
-KPX J Aring -48
-KPX K C -33
-KPX K G -30
-KPX K O -33
-KPX K OE -22
-KPX K Oacute -33
-KPX K Odieresis -33
-KPX K S 22
-KPX K T 9
-KPX K a -7
-KPX K adieresis -7
-KPX K ae 25
-KPX K aring -7
-KPX K e 5
-KPX K hyphen -24
-KPX K o -5
-KPX K oacute -5
-KPX K odieresis -5
-KPX K u -2
-KPX K udieresis -2
-KPX K y -69
-KPX L A 27
-KPX L AE 30
-KPX L Aacute 27
-KPX L Adieresis 27
-KPX L Aring 27
-KPX L C 0
-KPX L Ccedilla 0
-KPX L G 1
-KPX L O 0
-KPX L Oacute 0
-KPX L Ocircumflex 0
-KPX L Odieresis 0
-KPX L Ograve 0
-KPX L Otilde 0
-KPX L S -3
-KPX L T -43
-KPX L U -27
-KPX L Udieresis -27
-KPX L V -67
-KPX L W -50
-KPX L Y -43
-KPX L hyphen 44
-KPX L quotedblright -36
-KPX L quoteright -39
-KPX L u 2
-KPX L udieresis 0
-KPX L y 11
-KPX N A -33
-KPX N AE -30
-KPX N Aacute -33
-KPX N Adieresis -33
-KPX N Aring -33
-KPX N C -20
-KPX N Ccedilla -20
-KPX N G -20
-KPX N O -21
-KPX N Oacute -21
-KPX N Odieresis -21
-KPX N a -38
-KPX N aacute -38
-KPX N adieresis -38
-KPX N ae -32
-KPX N aring -38
-KPX N comma -11
-KPX N e -30
-KPX N eacute -32
-KPX N o -36
-KPX N oacute -37
-KPX N odieresis -35
-KPX N oslash -40
-KPX N period -24
-KPX N u -38
-KPX N udieresis -39
-KPX O A -49
-KPX O AE -32
-KPX O Aacute -49
-KPX O Adieresis -49
-KPX O Aring -49
-KPX O T -4
-KPX O V -38
-KPX O W -35
-KPX O X -45
-KPX O Y -26
-KPX Oacute A -49
-KPX Oacute T -4
-KPX Oacute V -38
-KPX Oacute W -35
-KPX Oacute Y -26
-KPX Ocircumflex T -4
-KPX Ocircumflex V -38
-KPX Ocircumflex Y -26
-KPX Odieresis A -49
-KPX Odieresis T -4
-KPX Odieresis V -38
-KPX Odieresis W -35
-KPX Odieresis X -45
-KPX Odieresis Y -26
-KPX Ograve T -4
-KPX Ograve V -38
-KPX Ograve Y -26
-KPX Oslash A -49
-KPX Otilde T -4
-KPX Otilde V -38
-KPX Otilde Y -26
-KPX P A -89
-KPX P AE -65
-KPX P Aacute -89
-KPX P Adieresis -89
-KPX P Aring -89
-KPX P J -60
-KPX P a -50
-KPX P aacute -50
-KPX P adieresis -50
-KPX P ae -30
-KPX P aring -50
-KPX P comma -96
-KPX P e -48
-KPX P eacute -48
-KPX P hyphen -45
-KPX P o -51
-KPX P oacute -51
-KPX P odieresis -51
-KPX P oe -38
-KPX P oslash -56
-KPX P period -109
-KPX R C -8
-KPX R Ccedilla -8
-KPX R G -8
-KPX R O -9
-KPX R OE -2
-KPX R Oacute -9
-KPX R Odieresis -9
-KPX R T -19
-KPX R U -25
-KPX R Udieresis -25
-KPX R V -18
-KPX R W -22
-KPX R Y -7
-KPX R a -6
-KPX R aacute -6
-KPX R adieresis -6
-KPX R ae 7
-KPX R aring -6
-KPX R e 2
-KPX R eacute 2
-KPX R hyphen 19
-KPX R o -4
-KPX R oacute -4
-KPX R odieresis -4
-KPX R oe 2
-KPX R u -11
-KPX R uacute -12
-KPX R udieresis -12
-KPX R y -32
-KPX S A -2
-KPX S AE 0
-KPX S Aacute -2
-KPX S Adieresis -2
-KPX S Aring -2
-KPX S T -17
-KPX S V 7
-KPX S W 3
-KPX S Y 16
-KPX S t -6
-KPX T A -55
-KPX T AE -50
-KPX T Aacute -55
-KPX T Acircumflex -55
-KPX T Adieresis -55
-KPX T Agrave -55
-KPX T Aring -55
-KPX T Atilde -55
-KPX T C 6
-KPX T G 5
-KPX T J -58
-KPX T O 5
-KPX T OE 10
-KPX T Oacute 5
-KPX T Ocircumflex 5
-KPX T Odieresis 5
-KPX T Ograve 5
-KPX T Oslash 5
-KPX T Otilde 5
-KPX T S -9
-KPX T V 37
-KPX T W 33
-KPX T Y 45
-KPX T a -45
-KPX T ae -18
-KPX T c -56
-KPX T colon -9
-KPX T comma -73
-KPX T e -48
-KPX T g -40
-KPX T guillemotleft -90
-KPX T guilsinglleft -90
-KPX T hyphen -86
-KPX T i 13
-KPX T j -12
-KPX T o -51
-KPX T oslash -59
-KPX T period -86
-KPX T r 12
-KPX T s -21
-KPX T semicolon -12
-KPX T u 6
-KPX T v 11
-KPX T w 16
-KPX T y -3
-KPX U A -51
-KPX U AE -40
-KPX U Aacute -51
-KPX U Acircumflex -51
-KPX U Adieresis -51
-KPX U Aring -51
-KPX U Atilde -51
-KPX U comma -23
-KPX U m -39
-KPX U n -35
-KPX U p -37
-KPX U period -36
-KPX U r -36
-KPX Uacute A -51
-KPX Uacute comma -23
-KPX Uacute m -39
-KPX Uacute n -35
-KPX Uacute p -37
-KPX Uacute period -36
-KPX Uacute r -36
-KPX Ucircumflex A -51
-KPX Udieresis A -51
-KPX Udieresis b 18
-KPX Udieresis comma -23
-KPX Udieresis m -39
-KPX Udieresis n -35
-KPX Udieresis p -37
-KPX Udieresis period -36
-KPX Udieresis r -36
-KPX Ugrave A -51
-KPX V A -101
-KPX V AE -40
-KPX V Aacute -101
-KPX V Acircumflex -101
-KPX V Adieresis -101
-KPX V Agrave -101
-KPX V Aring -101
-KPX V Atilde -101
-KPX V C -45
-KPX V G -49
-KPX V O -50
-KPX V Oacute -50
-KPX V Ocircumflex -50
-KPX V Odieresis -50
-KPX V Ograve -50
-KPX V Oslash -48
-KPX V Otilde -50
-KPX V S -19
-KPX V T 12
-KPX V a -91
-KPX V ae -85
-KPX V colon -81
-KPX V comma -86
-KPX V e -84
-KPX V g -94
-KPX V guillemotleft -64
-KPX V guilsinglleft -64
-KPX V hyphen -60
-KPX V i -25
-KPX V o -90
-KPX V oslash -94
-KPX V period -99
-KPX V r -55
-KPX V semicolon -80
-KPX V u -61
-KPX V y -74
-KPX W A -74
-KPX W AE -45
-KPX W Aacute -74
-KPX W Acircumflex -74
-KPX W Adieresis -74
-KPX W Agrave -74
-KPX W Aring -74
-KPX W Atilde -74
-KPX W C -38
-KPX W G -38
-KPX W O -39
-KPX W Oacute -39
-KPX W Ocircumflex -39
-KPX W Odieresis -39
-KPX W Ograve -39
-KPX W Oslash -37
-KPX W Otilde -39
-KPX W S -24
-KPX W T 7
-KPX W a -64
-KPX W ae -58
-KPX W colon -53
-KPX W comma -48
-KPX W e -57
-KPX W g -66
-KPX W guillemotleft -37
-KPX W guilsinglleft -37
-KPX W hyphen -33
-KPX W i -30
-KPX W o -62
-KPX W oslash -66
-KPX W period -61
-KPX W r -45
-KPX W semicolon -52
-KPX W u -51
-KPX W y -58
-KPX X C -35
-KPX X O -37
-KPX X Odieresis -37
-KPX X Q -35
-KPX X a -14
-KPX X e -2
-KPX X hyphen -35
-KPX X o -12
-KPX X u -9
-KPX X y -75
-KPX Y A -49
-KPX Y AE -33
-KPX Y Aacute -49
-KPX Y Acircumflex -49
-KPX Y Adieresis -49
-KPX Y Agrave -49
-KPX Y Aring -49
-KPX Y Atilde -49
-KPX Y C -33
-KPX Y G -37
-KPX Y O -38
-KPX Y Oacute -38
-KPX Y Ocircumflex -38
-KPX Y Odieresis -38
-KPX Y Ograve -38
-KPX Y Oslash -36
-KPX Y Otilde -38
-KPX Y S -8
-KPX Y T 20
-KPX Y a -95
-KPX Y ae -83
-KPX Y colon -82
-KPX Y comma -67
-KPX Y e -88
-KPX Y g -92
-KPX Y guillemotleft -80
-KPX Y guilsinglleft -80
-KPX Y hyphen -78
-KPX Y i -18
-KPX Y o -93
-KPX Y oslash -97
-KPX Y p -70
-KPX Y period -80
-KPX Y semicolon -80
-KPX Y u -75
-KPX Y v -68
-KPX Z v -16
-KPX Z y 2
-KPX a j -36
-KPX a quoteright -15
-KPX a v -16
-KPX a w 0
-KPX a y -18
-KPX aacute v -16
-KPX aacute w 0
-KPX aacute y -18
-KPX adieresis v -16
-KPX adieresis w 0
-KPX adieresis y -18
-KPX ae v -23
-KPX ae w -13
-KPX ae y -4
-KPX agrave v -16
-KPX agrave w 0
-KPX agrave y -18
-KPX aring v -16
-KPX aring w 0
-KPX aring y -18
-KPX b v -28
-KPX b w -13
-KPX b y -3
-KPX c h -26
-KPX c k -23
-KPX comma one -25
-KPX comma quotedblright 7
-KPX comma quoteright 1
-KPX e quoteright 8
-KPX e t -15
-KPX e v -27
-KPX e w -12
-KPX e x 0
-KPX e y -2
-KPX eacute v -27
-KPX eacute w -13
-KPX eacute y -2
-KPX ecircumflex v -27
-KPX ecircumflex w -13
-KPX ecircumflex y -2
-KPX eight four 7
-KPX eight one -46
-KPX eight seven -19
-KPX f a -25
-KPX f aacute -25
-KPX f adieresis 0
-KPX f ae -6
-KPX f aring -25
-KPX f e -25
-KPX f eacute -25
-KPX f f 15
-KPX f i 21
-KPX f j -3
-KPX f l 50
-KPX f o -27
-KPX f oacute -27
-KPX f odieresis 16
-KPX f oe -14
-KPX f oslash -33
-KPX f quoteright 58
-KPX f s -6
-KPX f t 17
-KPX five four 8
-KPX five one -56
-KPX five seven -30
-KPX four four 22
-KPX four one -28
-KPX four seven -21
-KPX g a -37
-KPX g adieresis -37
-KPX g ae -26
-KPX g aring -37
-KPX g e -30
-KPX g eacute -30
-KPX g l -41
-KPX g oacute -34
-KPX g odieresis -34
-KPX g r 1
-KPX guillemotright A -23
-KPX guillemotright AE -1
-KPX guillemotright Aacute -23
-KPX guillemotright Adieresis -23
-KPX guillemotright Aring -23
-KPX guillemotright T -77
-KPX guillemotright V -64
-KPX guillemotright W -43
-KPX guillemotright Y -68
-KPX guilsinglright A -23
-KPX guilsinglright AE -1
-KPX guilsinglright Aacute -23
-KPX guilsinglright Adieresis -23
-KPX guilsinglright Aring -23
-KPX guilsinglright T -77
-KPX guilsinglright V -64
-KPX guilsinglright W -43
-KPX guilsinglright Y -68
-KPX h quoteright -33
-KPX h y -33
-KPX hyphen A -14
-KPX hyphen AE 8
-KPX hyphen Aacute -14
-KPX hyphen Adieresis -14
-KPX hyphen Aring -14
-KPX hyphen T -68
-KPX hyphen V -56
-KPX hyphen W -35
-KPX hyphen Y -63
-KPX i T -40
-KPX i j -46
-KPX k a -15
-KPX k aacute -15
-KPX k adieresis -15
-KPX k ae -4
-KPX k aring -15
-KPX k comma 20
-KPX k e -7
-KPX k eacute -9
-KPX k g -15
-KPX k hyphen 8
-KPX k o -13
-KPX k oacute -15
-KPX k odieresis -15
-KPX k period 8
-KPX k s -12
-KPX k u -16
-KPX k udieresis -18
-KPX l v -30
-KPX l y -34
-KPX m p -12
-KPX m v -19
-KPX m w -2
-KPX m y -21
-KPX n T -59
-KPX n p -21
-KPX n quoteright -30
-KPX n v -29
-KPX n w -13
-KPX n y -31
-KPX nine four 0
-KPX nine one -54
-KPX nine seven -12
-KPX o T -53
-KPX o quoteright 0
-KPX o t -5
-KPX o v -16
-KPX o w -1
-KPX o x 1
-KPX o y 7
-KPX oacute v -18
-KPX oacute w -2
-KPX oacute y 7
-KPX ocircumflex t -7
-KPX odieresis t -7
-KPX odieresis v -18
-KPX odieresis w -2
-KPX odieresis x 0
-KPX odieresis y 7
-KPX ograve v -18
-KPX ograve w -2
-KPX ograve y 7
-KPX one comma -12
-KPX one eight -36
-KPX one five -35
-KPX one four -54
-KPX one nine -30
-KPX one one -39
-KPX one period -23
-KPX one seven -61
-KPX one six -40
-KPX one three -34
-KPX one two -5
-KPX one zero -34
-KPX p t -15
-KPX p y -4
-KPX period one -27
-KPX period quotedblright 8
-KPX period quoteright 3
-KPX q c -19
-KPX q u -22
-KPX quotedblbase A 46
-KPX quotedblbase AE 61
-KPX quotedblbase T -29
-KPX quotedblbase V -66
-KPX quotedblbase W -41
-KPX quotedblbase Y -28
-KPX quotedblleft A -57
-KPX quotedblleft AE -27
-KPX quotedblleft Aacute -57
-KPX quotedblleft Adieresis -57
-KPX quotedblleft Aring -57
-KPX quotedblleft T 34
-KPX quotedblleft V 36
-KPX quotedblleft W 35
-KPX quotedblleft Y 45
-KPX quotedblright A -53
-KPX quotedblright AE -22
-KPX quotedblright Aacute -53
-KPX quotedblright Adieresis -53
-KPX quotedblright Aring -53
-KPX quotedblright T 41
-KPX quotedblright V 48
-KPX quotedblright W 46
-KPX quotedblright Y 56
-KPX quoteleft A -72
-KPX quoteleft AE -42
-KPX quoteleft Aacute -72
-KPX quoteleft Adieresis -72
-KPX quoteleft Aring -72
-KPX quoteleft T 20
-KPX quoteleft V 22
-KPX quoteleft W 21
-KPX quoteleft Y 31
-KPX quoteright A -54
-KPX quoteright AE -24
-KPX quoteright Aacute -54
-KPX quoteright Adieresis -54
-KPX quoteright Aring -54
-KPX quoteright comma -2
-KPX quoteright d -5
-KPX quoteright o -8
-KPX quoteright period -15
-KPX quoteright r 12
-KPX quoteright s 9
-KPX quoteright t 16
-KPX quoteright v 10
-KPX quoteright w 21
-KPX quoteright y 30
-KPX r a -10
-KPX r aacute -10
-KPX r acircumflex -10
-KPX r adieresis -10
-KPX r ae -9
-KPX r agrave -10
-KPX r aring -10
-KPX r c -8
-KPX r ccedilla -4
-KPX r colon -10
-KPX r comma -92
-KPX r d -4
-KPX r e -5
-KPX r eacute -5
-KPX r ecircumflex -5
-KPX r egrave -5
-KPX r f 6
-KPX r g -15
-KPX r h -28
-KPX r hyphen -2
-KPX r i 7
-KPX r j -15
-KPX r k -26
-KPX r l -26
-KPX r m 5
-KPX r n 7
-KPX r o -8
-KPX r oacute -8
-KPX r ocircumflex -8
-KPX r odieresis -8
-KPX r oe 2
-KPX r ograve -8
-KPX r oslash -10
-KPX r p 8
-KPX r period -105
-KPX r q -8
-KPX r quoteright 32
-KPX r r 8
-KPX r s -6
-KPX r semicolon -10
-KPX r t 10
-KPX r u 4
-KPX r v 5
-KPX r w 10
-KPX r x 4
-KPX r y 14
-KPX r z 7
-KPX s quoteright 5
-KPX s t -11
-KPX seven colon -43
-KPX seven comma -33
-KPX seven eight -24
-KPX seven five -27
-KPX seven four -59
-KPX seven one -49
-KPX seven period -46
-KPX seven seven -29
-KPX seven six -27
-KPX seven three -25
-KPX seven two -21
-KPX six four 14
-KPX six one -44
-KPX six seven -16
-KPX t S -9
-KPX t a -21
-KPX t aacute -21
-KPX t adieresis -21
-KPX t ae -10
-KPX t aring -21
-KPX t colon -17
-KPX t e -12
-KPX t eacute -12
-KPX t h -26
-KPX t o -19
-KPX t oacute -19
-KPX t odieresis -19
-KPX t quoteright -2
-KPX t semicolon -16
-KPX three four 0
-KPX three one -56
-KPX three seven -27
-KPX two four 4
-KPX two one -47
-KPX two seven -20
-KPX u quoteright -21
-KPX v a -20
-KPX v aacute -20
-KPX v acircumflex -20
-KPX v adieresis -20
-KPX v ae -18
-KPX v agrave -20
-KPX v aring -20
-KPX v atilde -20
-KPX v c -15
-KPX v colon -18
-KPX v comma -9
-KPX v e -12
-KPX v eacute -14
-KPX v ecircumflex -14
-KPX v egrave -14
-KPX v g -26
-KPX v hyphen 11
-KPX v l -25
-KPX v o -17
-KPX v oacute -19
-KPX v odieresis -19
-KPX v ograve -19
-KPX v oslash -21
-KPX v period -22
-KPX v s -18
-KPX v semicolon -16
-KPX w a -14
-KPX w aacute -14
-KPX w acircumflex -14
-KPX w adieresis -14
-KPX w ae -12
-KPX w agrave -14
-KPX w aring -14
-KPX w atilde -14
-KPX w c -9
-KPX w colon -13
-KPX w comma -4
-KPX w e -7
-KPX w eacute -9
-KPX w ecircumflex -9
-KPX w egrave -9
-KPX w g -21
-KPX w hyphen 16
-KPX w l -20
-KPX w o -12
-KPX w oacute -14
-KPX w odieresis -14
-KPX w ograve -14
-KPX w oslash -16
-KPX w period -17
-KPX w s -13
-KPX w semicolon -11
-KPX x a -11
-KPX x c -7
-KPX x e -4
-KPX x eacute -5
-KPX x o -9
-KPX x q -3
-KPX y a -15
-KPX y aacute -15
-KPX y acircumflex -15
-KPX y adieresis -15
-KPX y ae -12
-KPX y agrave -15
-KPX y aring -15
-KPX y atilde -15
-KPX y c -12
-KPX y colon -13
-KPX y comma -9
-KPX y e -9
-KPX y eacute -9
-KPX y ecircumflex -9
-KPX y egrave -9
-KPX y g -20
-KPX y hyphen 12
-KPX y l -20
-KPX y o -14
-KPX y oacute -14
-KPX y odieresis -14
-KPX y ograve -14
-KPX y oslash -16
-KPX y period -22
-KPX y s -13
-KPX y semicolon -11
-KPX zero four 10
-KPX zero one -46
-KPX zero seven -7
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/c059036l.pfb b/Master/xemtex/gsfonts/c059036l.pfb
deleted file mode 100644
index ccad07b80ab..00000000000
--- a/Master/xemtex/gsfonts/c059036l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/c059036l.pfm b/Master/xemtex/gsfonts/c059036l.pfm
deleted file mode 100644
index 6a38f686de9..00000000000
--- a/Master/xemtex/gsfonts/c059036l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/d050000l.afm b/Master/xemtex/gsfonts/d050000l.afm
deleted file mode 100644
index f948a0e7171..00000000000
--- a/Master/xemtex/gsfonts/d050000l.afm
+++ /dev/null
@@ -1,226 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright URW Software, Copyright 1997 by URW
-Comment Creation Date: 10/19/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName Dingbats
-FullName Dingbats
-FamilyName Dingbats
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -72
-UnderlineThickness 36
-Version 001.005
-Notice URW Software, Copyright 1997 by URW
-EncodingScheme FontSpecific
-FontBBox -1 -143 981 819
-CapHeight 691
-XHeight 567
-Descender -143
-Ascender 691
-StartCharMetrics 203
-C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 974 ; N a1 ; B 35 71 939 617 ;
-C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ;
-C 35 ; WX 974 ; N a202 ; B 35 69 939 615 ;
-C 36 ; WX 980 ; N a3 ; B 35 0 945 691 ;
-C 37 ; WX 719 ; N a4 ; B 34 138 685 566 ;
-C 38 ; WX 789 ; N a5 ; B 35 -13 755 707 ;
-C 39 ; WX 790 ; N a119 ; B 35 -14 755 706 ;
-C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ;
-C 41 ; WX 690 ; N a117 ; B 35 137 655 556 ;
-C 42 ; WX 960 ; N a11 ; B 35 122 925 568 ;
-C 43 ; WX 939 ; N a12 ; B 35 133 904 559 ;
-C 44 ; WX 549 ; N a13 ; B 29 -10 516 706 ;
-C 45 ; WX 855 ; N a14 ; B 33 59 820 632 ;
-C 46 ; WX 911 ; N a15 ; B 35 51 876 641 ;
-C 47 ; WX 933 ; N a16 ; B 35 141 899 550 ;
-C 48 ; WX 911 ; N a105 ; B 35 49 876 636 ;
-C 49 ; WX 945 ; N a17 ; B 35 139 909 550 ;
-C 50 ; WX 974 ; N a18 ; B 35 103 938 588 ;
-C 51 ; WX 755 ; N a19 ; B 34 -14 721 706 ;
-C 52 ; WX 846 ; N a20 ; B 36 -14 811 706 ;
-C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ;
-C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ;
-C 55 ; WX 571 ; N a23 ; B -1 -69 572 660 ;
-C 56 ; WX 677 ; N a24 ; B 36 -14 642 705 ;
-C 57 ; WX 763 ; N a25 ; B 35 0 728 694 ;
-C 58 ; WX 760 ; N a26 ; B 35 0 726 691 ;
-C 59 ; WX 759 ; N a27 ; B 35 0 725 690 ;
-C 60 ; WX 754 ; N a28 ; B 35 0 720 685 ;
-C 61 ; WX 494 ; N a6 ; B 35 0 460 691 ;
-C 62 ; WX 552 ; N a7 ; B 35 0 517 691 ;
-C 63 ; WX 537 ; N a8 ; B 35 0 503 691 ;
-C 64 ; WX 577 ; N a9 ; B 35 96 542 595 ;
-C 65 ; WX 692 ; N a10 ; B 35 -14 657 702 ;
-C 66 ; WX 786 ; N a29 ; B 35 -13 751 705 ;
-C 67 ; WX 788 ; N a30 ; B 35 -14 752 703 ;
-C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ;
-C 69 ; WX 790 ; N a32 ; B 35 -14 756 707 ;
-C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ;
-C 71 ; WX 794 ; N a34 ; B 35 -14 759 705 ;
-C 72 ; WX 816 ; N a35 ; B 35 -13 782 707 ;
-C 73 ; WX 823 ; N a36 ; B 35 2 787 719 ;
-C 74 ; WX 789 ; N a37 ; B 35 -13 754 706 ;
-C 75 ; WX 841 ; N a38 ; B 35 -14 807 706 ;
-C 76 ; WX 823 ; N a39 ; B 35 -12 789 706 ;
-C 77 ; WX 833 ; N a40 ; B 35 -14 798 706 ;
-C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ;
-C 79 ; WX 831 ; N a42 ; B 35 -13 796 707 ;
-C 80 ; WX 923 ; N a43 ; B 35 -13 888 706 ;
-C 81 ; WX 744 ; N a44 ; B 35 0 710 691 ;
-C 82 ; WX 723 ; N a45 ; B 35 0 688 691 ;
-C 83 ; WX 749 ; N a46 ; B 35 0 714 691 ;
-C 84 ; WX 790 ; N a47 ; B 34 -15 756 706 ;
-C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ;
-C 86 ; WX 695 ; N a49 ; B 35 -16 661 706 ;
-C 87 ; WX 776 ; N a50 ; B 35 -7 741 698 ;
-C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ;
-C 89 ; WX 792 ; N a52 ; B 35 -1 757 720 ;
-C 90 ; WX 759 ; N a53 ; B 35 0 725 693 ;
-C 91 ; WX 707 ; N a54 ; B 35 -11 672 704 ;
-C 92 ; WX 708 ; N a55 ; B 35 -14 672 704 ;
-C 93 ; WX 682 ; N a56 ; B 35 -3 647 694 ;
-C 94 ; WX 701 ; N a57 ; B 35 -13 666 708 ;
-C 95 ; WX 826 ; N a58 ; B 35 -18 791 716 ;
-C 96 ; WX 815 ; N a59 ; B 35 -16 780 705 ;
-C 97 ; WX 789 ; N a60 ; B 35 -14 754 704 ;
-C 98 ; WX 789 ; N a61 ; B 35 -14 754 704 ;
-C 99 ; WX 707 ; N a62 ; B 33 0 674 717 ;
-C 100 ; WX 687 ; N a63 ; B 36 0 651 688 ;
-C 101 ; WX 696 ; N a64 ; B 35 0 661 693 ;
-C 102 ; WX 689 ; N a65 ; B 35 0 655 681 ;
-C 103 ; WX 786 ; N a66 ; B 34 -14 751 703 ;
-C 104 ; WX 787 ; N a67 ; B 35 -15 752 704 ;
-C 105 ; WX 713 ; N a68 ; B 35 -13 678 709 ;
-C 106 ; WX 791 ; N a69 ; B 35 -14 756 707 ;
-C 107 ; WX 785 ; N a70 ; B 36 -14 751 701 ;
-C 108 ; WX 791 ; N a71 ; B 35 -14 757 708 ;
-C 109 ; WX 873 ; N a72 ; B 35 -13 838 705 ;
-C 110 ; WX 761 ; N a73 ; B 35 0 726 691 ;
-C 111 ; WX 762 ; N a74 ; B 35 0 727 691 ;
-C 112 ; WX 762 ; N a203 ; B 35 0 727 691 ;
-C 113 ; WX 759 ; N a75 ; B 35 0 725 691 ;
-C 114 ; WX 759 ; N a204 ; B 35 0 725 691 ;
-C 115 ; WX 892 ; N a76 ; B 35 0 858 706 ;
-C 116 ; WX 892 ; N a77 ; B 35 -14 858 691 ;
-C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ;
-C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ;
-C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ;
-C 120 ; WX 138 ; N a82 ; B 35 0 104 691 ;
-C 121 ; WX 277 ; N a83 ; B 35 0 242 691 ;
-C 122 ; WX 415 ; N a84 ; B 35 0 380 691 ;
-C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ;
-C 124 ; WX 392 ; N a98 ; B 34 262 357 705 ;
-C 125 ; WX 668 ; N a99 ; B 35 263 633 707 ;
-C 126 ; WX 668 ; N a100 ; B 36 261 634 705 ;
-C 161 ; WX 732 ; N a101 ; B 35 -143 697 805 ;
-C 162 ; WX 544 ; N a102 ; B 56 -14 488 705 ;
-C 163 ; WX 544 ; N a103 ; B 34 -14 508 704 ;
-C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ;
-C 165 ; WX 667 ; N a106 ; B 35 -13 633 706 ;
-C 166 ; WX 760 ; N a107 ; B 35 -13 726 705 ;
-C 167 ; WX 760 ; N a108 ; B 0 121 758 570 ;
-C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ;
-C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ;
-C 170 ; WX 694 ; N a110 ; B 35 -14 659 704 ;
-C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ;
-C 172 ; WX 788 ; N a120 ; B 35 -13 754 706 ;
-C 173 ; WX 788 ; N a121 ; B 35 -13 754 706 ;
-C 174 ; WX 788 ; N a122 ; B 35 -13 754 706 ;
-C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ;
-C 176 ; WX 788 ; N a124 ; B 35 -13 754 706 ;
-C 177 ; WX 788 ; N a125 ; B 35 -13 754 706 ;
-C 178 ; WX 788 ; N a126 ; B 35 -13 754 706 ;
-C 179 ; WX 788 ; N a127 ; B 35 -13 754 706 ;
-C 180 ; WX 788 ; N a128 ; B 35 -13 754 706 ;
-C 181 ; WX 788 ; N a129 ; B 35 -13 754 706 ;
-C 182 ; WX 788 ; N a130 ; B 35 -13 754 706 ;
-C 183 ; WX 788 ; N a131 ; B 35 -13 754 706 ;
-C 184 ; WX 788 ; N a132 ; B 35 -13 754 706 ;
-C 185 ; WX 788 ; N a133 ; B 35 -13 754 706 ;
-C 186 ; WX 788 ; N a134 ; B 35 -13 754 706 ;
-C 187 ; WX 788 ; N a135 ; B 35 -13 754 706 ;
-C 188 ; WX 788 ; N a136 ; B 35 -13 754 706 ;
-C 189 ; WX 788 ; N a137 ; B 35 -13 754 706 ;
-C 190 ; WX 788 ; N a138 ; B 35 -13 754 706 ;
-C 191 ; WX 788 ; N a139 ; B 35 -13 754 706 ;
-C 192 ; WX 788 ; N a140 ; B 35 -13 754 706 ;
-C 193 ; WX 788 ; N a141 ; B 35 -13 754 706 ;
-C 194 ; WX 788 ; N a142 ; B 35 -13 754 706 ;
-C 195 ; WX 788 ; N a143 ; B 35 -13 754 706 ;
-C 196 ; WX 788 ; N a144 ; B 35 -13 754 706 ;
-C 197 ; WX 788 ; N a145 ; B 35 -13 754 706 ;
-C 198 ; WX 788 ; N a146 ; B 35 -13 754 706 ;
-C 199 ; WX 788 ; N a147 ; B 35 -13 754 706 ;
-C 200 ; WX 788 ; N a148 ; B 35 -13 754 706 ;
-C 201 ; WX 788 ; N a149 ; B 35 -13 754 706 ;
-C 202 ; WX 788 ; N a150 ; B 35 -13 755 706 ;
-C 203 ; WX 788 ; N a151 ; B 34 -13 754 706 ;
-C 204 ; WX 788 ; N a152 ; B 34 -13 754 706 ;
-C 205 ; WX 788 ; N a153 ; B 35 -13 754 706 ;
-C 206 ; WX 788 ; N a154 ; B 35 -13 754 706 ;
-C 207 ; WX 788 ; N a155 ; B 35 -13 754 706 ;
-C 208 ; WX 788 ; N a156 ; B 35 -13 754 706 ;
-C 209 ; WX 788 ; N a157 ; B 35 -13 754 706 ;
-C 210 ; WX 788 ; N a158 ; B 35 -13 754 706 ;
-C 211 ; WX 788 ; N a159 ; B 35 -13 754 706 ;
-C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ;
-C 213 ; WX 838 ; N a161 ; B 35 151 803 537 ;
-C 214 ; WX 1016 ; N a163 ; B 34 151 981 537 ;
-C 215 ; WX 458 ; N a164 ; B 35 -128 422 819 ;
-C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ;
-C 217 ; WX 924 ; N a165 ; B 35 140 890 551 ;
-C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ;
-C 219 ; WX 918 ; N a166 ; B 35 167 884 526 ;
-C 220 ; WX 927 ; N a167 ; B 35 28 892 664 ;
-C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ;
-C 222 ; WX 928 ; N a169 ; B 35 129 893 561 ;
-C 223 ; WX 834 ; N a170 ; B 35 154 799 537 ;
-C 224 ; WX 873 ; N a171 ; B 35 97 838 594 ;
-C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ;
-C 226 ; WX 924 ; N a173 ; B 35 82 889 610 ;
-C 227 ; WX 924 ; N a162 ; B 35 82 889 610 ;
-C 228 ; WX 917 ; N a174 ; B 35 4 882 688 ;
-C 229 ; WX 930 ; N a175 ; B 35 83 896 608 ;
-C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ;
-C 231 ; WX 463 ; N a177 ; B 35 -100 429 790 ;
-C 232 ; WX 883 ; N a178 ; B 35 70 848 621 ;
-C 233 ; WX 836 ; N a179 ; B 35 43 802 648 ;
-C 234 ; WX 836 ; N a193 ; B 35 43 802 648 ;
-C 235 ; WX 867 ; N a180 ; B 35 101 832 589 ;
-C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ;
-C 237 ; WX 696 ; N a181 ; B 35 44 661 651 ;
-C 238 ; WX 696 ; N a200 ; B 35 44 661 646 ;
-C 239 ; WX 874 ; N a182 ; B 35 75 840 613 ;
-C 241 ; WX 874 ; N a201 ; B 35 75 840 613 ;
-C 242 ; WX 760 ; N a183 ; B 35 1 725 690 ;
-C 243 ; WX 946 ; N a184 ; B 35 159 911 532 ;
-C 244 ; WX 771 ; N a197 ; B 34 36 736 655 ;
-C 245 ; WX 865 ; N a185 ; B 35 209 830 483 ;
-C 246 ; WX 771 ; N a194 ; B 34 36 736 655 ;
-C 247 ; WX 888 ; N a198 ; B 34 -18 853 711 ;
-C 248 ; WX 967 ; N a186 ; B 35 123 932 568 ;
-C 249 ; WX 888 ; N a195 ; B 34 -20 853 710 ;
-C 250 ; WX 831 ; N a187 ; B 35 113 796 578 ;
-C 251 ; WX 873 ; N a188 ; B 36 116 838 576 ;
-C 252 ; WX 927 ; N a189 ; B 35 149 891 542 ;
-C 253 ; WX 970 ; N a190 ; B 35 75 931 615 ;
-C 254 ; WX 918 ; N a191 ; B 34 99 884 592 ;
-C -1 ; WX 334 ; N a95 ; B 35 0 299 691 ;
-C -1 ; WX 234 ; N a88 ; B 35 -14 199 705 ;
-C -1 ; WX 234 ; N a87 ; B 35 -14 199 705 ;
-C -1 ; WX 410 ; N a86 ; B 35 0 375 691 ;
-C -1 ; WX 410 ; N a206 ; B 35 0 375 691 ;
-C -1 ; WX 509 ; N a85 ; B 35 0 475 691 ;
-C -1 ; WX 334 ; N a96 ; B 35 0 299 691 ;
-C -1 ; WX 276 ; N a91 ; B 35 0 242 691 ;
-C -1 ; WX 317 ; N a94 ; B 35 0 283 691 ;
-C -1 ; WX 317 ; N a93 ; B 35 0 283 691 ;
-C -1 ; WX 390 ; N a90 ; B 35 -14 355 705 ;
-C -1 ; WX 390 ; N a89 ; B 35 -14 356 705 ;
-C -1 ; WX 276 ; N a92 ; B 35 0 242 691 ;
-C -1 ; WX 509 ; N a205 ; B 35 0 475 691 ;
-C -1 ; WX 278 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/d050000l.pfb b/Master/xemtex/gsfonts/d050000l.pfb
deleted file mode 100644
index f8cd40ee6b2..00000000000
--- a/Master/xemtex/gsfonts/d050000l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/d050000l.pfm b/Master/xemtex/gsfonts/d050000l.pfm
deleted file mode 100644
index 272d9f71fc8..00000000000
--- a/Master/xemtex/gsfonts/d050000l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/fonts.dir b/Master/xemtex/gsfonts/fonts.dir
deleted file mode 100644
index 129652884ae..00000000000
--- a/Master/xemtex/gsfonts/fonts.dir
+++ /dev/null
@@ -1,44 +0,0 @@
-43
-a010013l.pfb -URW-Gothic L-book-r-normal--0-0-0-0-p-0-iso8859-1
-a010015l.pfb -URW-Gothic L-demi bold-r-normal--0-0-0-0-p-0-iso8859-1
-a010033l.pfb -URW-Gothic L-book-o-normal--0-0-0-0-p-0-iso8859-1
-a010035l.pfb -URW-Gothic L-demi bold-o-normal--0-0-0-0-p-0-iso8859-1
-b018012l.pfb -URW-Bookman L-light-r-normal--0-0-0-0-p-0-iso8859-1
-b018015l.pfb -URW-Bookman L-demi bold-r-normal--0-0-0-0-p-0-iso8859-1
-b018032l.pfb -URW-Bookman L-light-i-normal--0-0-0-0-p-0-iso8859-1
-b018035l.pfb -URW-Bookman L-demi bold-i-normal--0-0-0-0-p-0-iso8859-1
-bchb.pfa -bitstream-Charter-bold-r-normal--0-0-0-0-p-0-iso8859-1
-bchbi.pfa -bitstream-Charter-bold-i-normal--0-0-0-0-p-0-iso8859-1
-bchr.pfa -bitstream-Charter-medium-r-normal--0-0-0-0-p-0-iso8859-1
-bchri.pfa -bitstream-Charter-medium-i-normal--0-0-0-0-p-0-iso8859-1
-c059013l.pfb -URW-Century Schoolbook L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-c059016l.pfb -URW-Century Schoolbook L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-c059033l.pfb -URW-Century Schoolbook L-medium-i-normal--0-0-0-0-p-0-iso8859-1
-c059036l.pfb -URW-Century Schoolbook L-bold-i-normal--0-0-0-0-p-0-iso8859-1
-d050000l.pfb -URW-Dingbats-medium-r-normal--0-0-0-0-p-0-urw-fontspecific
-n019003l.pfb -URW-Nimbus Sans L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-n019004l.pfb -URW-Nimbus Sans L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-n019023l.pfb -URW-Nimbus Sans L-medium-o-normal--0-0-0-0-p-0-iso8859-1
-n019024l.pfb -URW-Nimbus Sans L-bold-o-normal--0-0-0-0-p-0-iso8859-1
-n019043l.pfb -URW-Nimbus Sans L-medium-r-condensed--0-0-0-0-p-0-iso8859-1
-n019044l.pfb -URW-Nimbus Sans L-bold-r-condensed--0-0-0-0-p-0-iso8859-1
-n019063l.pfb -URW-Nimbus Sans L-medium-o-condensed--0-0-0-0-p-0-iso8859-1
-n019064l.pfb -URW-Nimbus Sans L-bold-o-condensed--0-0-0-0-p-0-iso8859-1
-n021003l.pfb -URW-Nimbus Roman No9 L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-n021004l.pfb -URW-Nimbus Roman No9 L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-n021023l.pfb -URW-Nimbus Roman No9 L-medium-i-normal--0-0-0-0-p-0-iso8859-1
-n021024l.pfb -URW-Nimbus Roman No9 L-bold-i-normal--0-0-0-0-p-0-iso8859-1
-n022003l.pfb -URW-Nimbus Mono L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-n022004l.pfb -URW-Nimbus Mono L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-n022023l.pfb -URW-Nimbus Mono L-medium-o-normal--0-0-0-0-p-0-iso8859-1
-n022024l.pfb -URW-Nimbus Mono L-bold-o-normal--0-0-0-0-p-0-iso8859-1
-p052003l.pfb -URW-Palladio L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-p052004l.pfb -URW-Palladio L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-p052023l.pfb -URW-Palladio L-medium-i-normal--0-0-0-0-p-0-iso8859-1
-p052024l.pfb -URW-Palladio L-bold-i-normal--0-0-0-0-p-0-iso8859-1
-putb.pfa -adobe-utopia-bold-r-normal--0-0-0-0-p-0-iso8859-1
-putbi.pfa -adobe-utopia-bold-i-normal--0-0-0-0-p-0-iso8859-1
-putr.pfa -adobe-utopia-medium-r-normal--0-0-0-0-p-0-iso8859-1
-putri.pfa -adobe-utopia-medium-i-normal--0-0-0-0-p-0-iso8859-1
-s050000l.pfb -URW-Standard Symbols L-medium-r-normal--0-0-0-0-p-0-urw-fontspecific
-z003034l.pfb -URW-Chancery L-medium-i-normal--0-0-0-0-p-0-iso8859-1
diff --git a/Master/xemtex/gsfonts/fonts.scale b/Master/xemtex/gsfonts/fonts.scale
deleted file mode 100644
index bd924dde972..00000000000
--- a/Master/xemtex/gsfonts/fonts.scale
+++ /dev/null
@@ -1,44 +0,0 @@
-0
-a010013l.pfb -URW-Gothic L-book-r-normal--0-0-0-0-p-0-iso8859-1
-a010015l.pfb -URW-Gothic L-demi bold-r-normal--0-0-0-0-p-0-iso8859-1
-a010033l.pfb -URW-Gothic L-book-o-normal--0-0-0-0-p-0-iso8859-1
-a010035l.pfb -URW-Gothic L-demi bold-o-normal--0-0-0-0-p-0-iso8859-1
-b018012l.pfb -URW-Bookman L-light-r-normal--0-0-0-0-p-0-iso8859-1
-b018015l.pfb -URW-Bookman L-demi bold-r-normal--0-0-0-0-p-0-iso8859-1
-b018032l.pfb -URW-Bookman L-light-i-normal--0-0-0-0-p-0-iso8859-1
-b018035l.pfb -URW-Bookman L-demi bold-i-normal--0-0-0-0-p-0-iso8859-1
-bchb.pfa -bitstream-Charter-bold-r-normal--0-0-0-0-p-0-iso8859-1
-bchbi.pfa -bitstream-Charter-bold-i-normal--0-0-0-0-p-0-iso8859-1
-bchr.pfa -bitstream-Charter-medium-r-normal--0-0-0-0-p-0-iso8859-1
-bchri.pfa -bitstream-Charter-medium-i-normal--0-0-0-0-p-0-iso8859-1
-c059013l.pfb -URW-Century Schoolbook L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-c059016l.pfb -URW-Century Schoolbook L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-c059033l.pfb -URW-Century Schoolbook L-medium-i-normal--0-0-0-0-p-0-iso8859-1
-c059036l.pfb -URW-Century Schoolbook L-bold-i-normal--0-0-0-0-p-0-iso8859-1
-d050000l.pfb -URW-Dingbats-medium-r-normal--0-0-0-0-p-0-urw-fontspecific
-n019003l.pfb -URW-Nimbus Sans L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-n019004l.pfb -URW-Nimbus Sans L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-n019023l.pfb -URW-Nimbus Sans L-medium-o-normal--0-0-0-0-p-0-iso8859-1
-n019024l.pfb -URW-Nimbus Sans L-bold-o-normal--0-0-0-0-p-0-iso8859-1
-n019043l.pfb -URW-Nimbus Sans L-medium-r-condensed--0-0-0-0-p-0-iso8859-1
-n019044l.pfb -URW-Nimbus Sans L-bold-r-condensed--0-0-0-0-p-0-iso8859-1
-n019063l.pfb -URW-Nimbus Sans L-medium-o-condensed--0-0-0-0-p-0-iso8859-1
-n019064l.pfb -URW-Nimbus Sans L-bold-o-condensed--0-0-0-0-p-0-iso8859-1
-n021003l.pfb -URW-Nimbus Roman No9 L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-n021004l.pfb -URW-Nimbus Roman No9 L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-n021023l.pfb -URW-Nimbus Roman No9 L-medium-i-normal--0-0-0-0-p-0-iso8859-1
-n021024l.pfb -URW-Nimbus Roman No9 L-bold-i-normal--0-0-0-0-p-0-iso8859-1
-n022003l.pfb -URW-Nimbus Mono L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-n022004l.pfb -URW-Nimbus Mono L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-n022023l.pfb -URW-Nimbus Mono L-medium-o-normal--0-0-0-0-p-0-iso8859-1
-n022024l.pfb -URW-Nimbus Mono L-bold-o-normal--0-0-0-0-p-0-iso8859-1
-p052003l.pfb -URW-Palladio L-medium-r-normal--0-0-0-0-p-0-iso8859-1
-p052004l.pfb -URW-Palladio L-bold-r-normal--0-0-0-0-p-0-iso8859-1
-p052023l.pfb -URW-Palladio L-medium-i-normal--0-0-0-0-p-0-iso8859-1
-p052024l.pfb -URW-Palladio L-bold-i-normal--0-0-0-0-p-0-iso8859-1
-putb.pfa -adobe-utopia-bold-r-normal--0-0-0-0-p-0-iso8859-1
-putbi.pfa -adobe-utopia-bold-i-normal--0-0-0-0-p-0-iso8859-1
-putr.pfa -adobe-utopia-medium-r-normal--0-0-0-0-p-0-iso8859-1
-putri.pfa -adobe-utopia-medium-i-normal--0-0-0-0-p-0-iso8859-1
-s050000l.pfb -URW-Standard Symbols L-medium-r-normal--0-0-0-0-p-0-urw-fontspecific
-z003034l.pfb -URW-Chancery L-medium-i-normal--0-0-0-0-p-0-iso8859-1
diff --git a/Master/xemtex/gsfonts/n019003l.afm b/Master/xemtex/gsfonts/n019003l.afm
deleted file mode 100644
index dfa9bd80f16..00000000000
--- a/Master/xemtex/gsfonts/n019003l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-Regu
-FullName Nimbus Sans L Regular
-FamilyName Nimbus Sans L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -151
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -174 -285 1001 953
-CapHeight 729
-XHeight 524
-Descender -218
-Ascender 729
-StartCharMetrics 316
-C 32 ; WX 278 ; N space ; B 191 0 191 0 ;
-C 33 ; WX 278 ; N exclam ; B 124 0 208 729 ;
-C 34 ; WX 355 ; N quotedbl ; B 52 464 305 709 ;
-C 35 ; WX 556 ; N numbersign ; B 14 -20 542 697 ;
-C 36 ; WX 556 ; N dollar ; B 26 -126 518 770 ;
-C 37 ; WX 889 ; N percent ; B 29 -20 859 709 ;
-C 38 ; WX 667 ; N ampersand ; B 52 -23 637 709 ;
-C 39 ; WX 221 ; N quoteright ; B 64 497 157 729 ;
-C 40 ; WX 333 ; N parenleft ; B 73 -212 291 729 ;
-C 41 ; WX 333 ; N parenright ; B 38 -212 256 729 ;
-C 42 ; WX 389 ; N asterisk ; B 40 441 343 729 ;
-C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ;
-C 44 ; WX 278 ; N comma ; B 87 -147 192 104 ;
-C 45 ; WX 333 ; N hyphen ; B 46 240 284 312 ;
-C 46 ; WX 278 ; N period ; B 87 0 191 104 ;
-C 47 ; WX 278 ; N slash ; B -8 -20 284 729 ;
-C 48 ; WX 556 ; N zero ; B 43 -23 507 709 ;
-C 49 ; WX 556 ; N one ; B 102 0 347 709 ;
-C 50 ; WX 556 ; N two ; B 34 0 511 709 ;
-C 51 ; WX 556 ; N three ; B 32 -23 506 709 ;
-C 52 ; WX 556 ; N four ; B 28 0 520 709 ;
-C 53 ; WX 556 ; N five ; B 35 -23 513 709 ;
-C 54 ; WX 556 ; N six ; B 43 -23 513 709 ;
-C 55 ; WX 556 ; N seven ; B 46 0 520 709 ;
-C 56 ; WX 556 ; N eight ; B 37 -23 513 709 ;
-C 57 ; WX 556 ; N nine ; B 38 -23 509 709 ;
-C 58 ; WX 278 ; N colon ; B 110 0 214 524 ;
-C 59 ; WX 278 ; N semicolon ; B 110 -147 215 524 ;
-C 60 ; WX 584 ; N less ; B 45 -9 534 474 ;
-C 61 ; WX 584 ; N equal ; B 50 111 534 353 ;
-C 62 ; WX 584 ; N greater ; B 50 -9 539 474 ;
-C 63 ; WX 556 ; N question ; B 77 0 509 741 ;
-C 64 ; WX 1015 ; N at ; B 34 -142 951 741 ;
-C 65 ; WX 667 ; N A ; B 17 0 653 729 ;
-C 66 ; WX 667 ; N B ; B 79 0 623 729 ;
-C 67 ; WX 722 ; N C ; B 48 -23 677 741 ;
-C 68 ; WX 722 ; N D ; B 89 0 667 729 ;
-C 69 ; WX 667 ; N E ; B 90 0 613 729 ;
-C 70 ; WX 611 ; N F ; B 90 0 579 729 ;
-C 71 ; WX 778 ; N G ; B 44 -23 709 741 ;
-C 72 ; WX 722 ; N H ; B 83 0 644 729 ;
-C 73 ; WX 278 ; N I ; B 100 0 194 729 ;
-C 74 ; WX 500 ; N J ; B 17 -23 426 729 ;
-C 75 ; WX 667 ; N K ; B 79 0 658 729 ;
-C 76 ; WX 556 ; N L ; B 80 0 533 729 ;
-C 77 ; WX 833 ; N M ; B 75 0 761 729 ;
-C 78 ; WX 722 ; N N ; B 76 0 646 729 ;
-C 79 ; WX 778 ; N O ; B 38 -23 742 741 ;
-C 80 ; WX 667 ; N P ; B 91 0 617 729 ;
-C 81 ; WX 778 ; N Q ; B 38 -59 742 741 ;
-C 82 ; WX 722 ; N R ; B 93 0 679 729 ;
-C 83 ; WX 667 ; N S ; B 48 -23 621 741 ;
-C 84 ; WX 611 ; N T ; B 21 0 593 729 ;
-C 85 ; WX 722 ; N U ; B 85 -23 645 729 ;
-C 86 ; WX 667 ; N V ; B 30 0 645 729 ;
-C 87 ; WX 944 ; N W ; B 22 0 929 729 ;
-C 88 ; WX 667 ; N X ; B 22 0 649 729 ;
-C 89 ; WX 667 ; N Y ; B 13 0 661 729 ;
-C 90 ; WX 611 ; N Z ; B 28 0 583 729 ;
-C 91 ; WX 278 ; N bracketleft ; B 64 -212 250 729 ;
-C 92 ; WX 278 ; N backslash ; B -8 -20 284 729 ;
-C 93 ; WX 278 ; N bracketright ; B 23 -212 209 729 ;
-C 94 ; WX 469 ; N asciicircum ; B 44 329 425 709 ;
-C 95 ; WX 556 ; N underscore ; B -22 -176 578 -126 ;
-C 96 ; WX 222 ; N quoteleft ; B 65 477 158 709 ;
-C 97 ; WX 556 ; N a ; B 42 -23 535 539 ;
-C 98 ; WX 556 ; N b ; B 54 -23 523 729 ;
-C 99 ; WX 500 ; N c ; B 31 -23 477 539 ;
-C 100 ; WX 556 ; N d ; B 26 -23 495 729 ;
-C 101 ; WX 556 ; N e ; B 40 -23 513 539 ;
-C 102 ; WX 278 ; N f ; B 18 0 258 732 ;
-C 103 ; WX 556 ; N g ; B 29 -218 489 539 ;
-C 104 ; WX 556 ; N h ; B 70 0 486 729 ;
-C 105 ; WX 222 ; N i ; B 66 0 150 729 ;
-C 106 ; WX 222 ; N j ; B -18 -218 153 729 ;
-C 107 ; WX 500 ; N k ; B 58 0 502 729 ;
-C 108 ; WX 222 ; N l ; B 68 0 152 729 ;
-C 109 ; WX 833 ; N m ; B 70 0 762 539 ;
-C 110 ; WX 556 ; N n ; B 70 0 487 539 ;
-C 111 ; WX 556 ; N o ; B 36 -23 510 539 ;
-C 112 ; WX 556 ; N p ; B 54 -218 523 539 ;
-C 113 ; WX 556 ; N q ; B 26 -218 495 539 ;
-C 114 ; WX 333 ; N r ; B 69 0 321 539 ;
-C 115 ; WX 500 ; N s ; B 34 -23 459 539 ;
-C 116 ; WX 278 ; N t ; B 14 -23 254 668 ;
-C 117 ; WX 556 ; N u ; B 65 -23 482 524 ;
-C 118 ; WX 500 ; N v ; B 10 0 486 524 ;
-C 119 ; WX 722 ; N w ; B 6 0 708 524 ;
-C 120 ; WX 500 ; N x ; B 17 0 473 524 ;
-C 121 ; WX 500 ; N y ; B 20 -218 478 524 ;
-C 122 ; WX 500 ; N z ; B 31 0 457 524 ;
-C 123 ; WX 334 ; N braceleft ; B 43 -212 276 729 ;
-C 124 ; WX 260 ; N bar ; B 100 -212 160 729 ;
-C 125 ; WX 334 ; N braceright ; B 29 -212 262 729 ;
-C 126 ; WX 584 ; N asciitilde ; B 75 268 508 438 ;
-C 161 ; WX 333 ; N exclamdown ; B 121 -205 205 524 ;
-C 162 ; WX 556 ; N cent ; B 52 -120 510 628 ;
-C 163 ; WX 556 ; N sterling ; B 26 -23 535 729 ;
-C 164 ; WX 167 ; N fraction ; B -174 -20 336 709 ;
-C 165 ; WX 556 ; N yen ; B 11 0 545 709 ;
-C 166 ; WX 556 ; N florin ; B 11 -212 542 738 ;
-C 167 ; WX 556 ; N section ; B 43 -213 506 729 ;
-C 168 ; WX 556 ; N currency ; B 67 133 489 551 ;
-C 169 ; WX 191 ; N quotesingle ; B 48 464 142 709 ;
-C 170 ; WX 333 ; N quotedblleft ; B 48 477 299 709 ;
-C 171 ; WX 556 ; N guillemotleft ; B 98 106 455 438 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 91 106 243 438 ;
-C 173 ; WX 333 ; N guilsinglright ; B 85 106 239 438 ;
-C 174 ; WX 500 ; N fi ; B 12 0 436 732 ;
-C 175 ; WX 500 ; N fl ; B 17 0 430 732 ;
-C 177 ; WX 556 ; N endash ; B -5 240 561 312 ;
-C 178 ; WX 556 ; N dagger ; B 38 -177 513 709 ;
-C 179 ; WX 556 ; N daggerdbl ; B 38 -177 513 709 ;
-C 180 ; WX 278 ; N periodcentered ; B 87 302 211 427 ;
-C 182 ; WX 537 ; N paragraph ; B 48 -177 522 729 ;
-C 183 ; WX 350 ; N bullet ; B 50 220 300 470 ;
-C 184 ; WX 222 ; N quotesinglbase ; B 64 -128 158 104 ;
-C 185 ; WX 333 ; N quotedblbase ; B 47 -128 300 104 ;
-C 186 ; WX 333 ; N quotedblright ; B 49 477 302 709 ;
-C 187 ; WX 556 ; N guillemotright ; B 98 106 451 438 ;
-C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 104 ;
-C 189 ; WX 1000 ; N perthousand ; B 9 -22 993 738 ;
-C 191 ; WX 611 ; N questiondown ; B 95 -217 528 524 ;
-C 193 ; WX 333 ; N grave ; B 22 592 231 740 ;
-C 194 ; WX 333 ; N acute ; B 92 592 301 740 ;
-C 195 ; WX 333 ; N circumflex ; B 20 591 307 741 ;
-C 196 ; WX 333 ; N tilde ; B 5 613 319 717 ;
-C 197 ; WX 333 ; N macron ; B 28 631 302 701 ;
-C 198 ; WX 333 ; N breve ; B 15 597 316 732 ;
-C 199 ; WX 333 ; N dotaccent ; B 115 612 219 716 ;
-C 200 ; WX 333 ; N dieresis ; B 30 612 296 715 ;
-C 202 ; WX 333 ; N ring ; B 79 579 255 754 ;
-C 203 ; WX 333 ; N cedilla ; B 39 -214 287 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B -35 590 348 740 ;
-C 206 ; WX 333 ; N ogonek ; B 57 -205 265 0 ;
-C 207 ; WX 333 ; N caron ; B 19 591 306 741 ;
-C 208 ; WX 1000 ; N emdash ; B -9 240 1001 312 ;
-C 225 ; WX 1000 ; N AE ; B 11 0 950 729 ;
-C 227 ; WX 370 ; N ordfeminine ; B 37 303 333 742 ;
-C 232 ; WX 556 ; N Lslash ; B 0 0 552 729 ;
-C 233 ; WX 778 ; N Oslash ; B 30 -23 744 755 ;
-C 234 ; WX 1000 ; N OE ; B 43 -20 959 741 ;
-C 235 ; WX 365 ; N ordmasculine ; B 40 303 324 742 ;
-C 241 ; WX 889 ; N ae ; B 34 -23 845 539 ;
-C 245 ; WX 278 ; N dotlessi ; B 94 0 178 524 ;
-C 248 ; WX 222 ; N lslash ; B 0 0 212 729 ;
-C 249 ; WX 611 ; N oslash ; B 18 -30 529 539 ;
-C 250 ; WX 944 ; N oe ; B 40 -23 899 539 ;
-C 251 ; WX 611 ; N germandbls ; B 126 -20 566 729 ;
-C -1 ; WX 722 ; N Udieresis ; B 85 -23 645 914 ;
-C -1 ; WX 722 ; N Uacute ; B 85 -23 645 939 ;
-C -1 ; WX 667 ; N Scedilla ; B 45 -214 621 741 ;
-C -1 ; WX 611 ; N Tcaron ; B 21 0 593 940 ;
-C -1 ; WX 667 ; N Scaron ; B 48 -23 621 940 ;
-C -1 ; WX 722 ; N Rcaron ; B 93 0 679 940 ;
-C -1 ; WX 722 ; N Racute ; B 93 0 679 939 ;
-C -1 ; WX 667 ; N Sacute ; B 48 -23 621 939 ;
-C -1 ; WX 778 ; N Otilde ; B 38 -23 742 916 ;
-C -1 ; WX 556 ; N ucircumflex ; B 65 -23 482 741 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 38 -23 742 939 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 85 -23 645 939 ;
-C -1 ; WX 666 ; N Yacute ; B 13 0 661 939 ;
-C -1 ; WX 722 ; N Eth ; B 20 0 667 729 ;
-C -1 ; WX 722 ; N Dcroat ; B 20 0 667 729 ;
-C -1 ; WX 611 ; N Zacute ; B 28 0 583 939 ;
-C -1 ; WX 722 ; N Uring ; B 85 -23 645 953 ;
-C -1 ; WX 556 ; N gbreve ; B 29 -218 489 732 ;
-C -1 ; WX 556 ; N eogonek ; B 40 -204 514 539 ;
-C -1 ; WX 556 ; N edotaccent ; B 40 -23 513 716 ;
-C -1 ; WX 556 ; N ecaron ; B 40 -23 513 741 ;
-C -1 ; WX 722 ; N Ugrave ; B 85 -23 645 939 ;
-C -1 ; WX 666 ; N Thorn ; B 91 0 616 729 ;
-C -1 ; WX 556 ; N eacute ; B 40 -23 513 740 ;
-C -1 ; WX 556 ; N edieresis ; B 40 -23 513 715 ;
-C -1 ; WX 635 ; N dcaron ; B 26 -23 648 729 ;
-C -1 ; WX 500 ; N ccedilla ; B 31 -214 477 539 ;
-C -1 ; WX 500 ; N ccaron ; B 31 -23 477 741 ;
-C -1 ; WX 500 ; N cacute ; B 31 -23 477 740 ;
-C -1 ; WX 556 ; N aogonek ; B 43 -205 596 539 ;
-C -1 ; WX 556 ; N aring ; B 42 -23 535 754 ;
-C -1 ; WX 556 ; N atilde ; B 42 -23 535 717 ;
-C -1 ; WX 556 ; N abreve ; B 42 -23 535 732 ;
-C -1 ; WX 556 ; N egrave ; B 40 -23 513 740 ;
-C -1 ; WX 556 ; N agrave ; B 42 -23 535 740 ;
-C -1 ; WX 556 ; N aacute ; B 42 -23 535 740 ;
-C -1 ; WX 556 ; N adieresis ; B 42 -23 535 715 ;
-C -1 ; WX 722 ; N Uogonek ; B 85 -205 645 729 ;
-C -1 ; WX 556 ; N ugrave ; B 65 -23 482 740 ;
-C -1 ; WX 556 ; N uacute ; B 65 -23 482 740 ;
-C -1 ; WX 556 ; N udieresis ; B 65 -23 482 715 ;
-C -1 ; WX 308 ; N tcaron ; B 14 -23 321 800 ;
-C -1 ; WX 500 ; N scommaaccent ; B 34 -285 459 539 ;
-C -1 ; WX 611 ; N Zcaron ; B 28 0 583 940 ;
-C -1 ; WX 556 ; N ecircumflex ; B 40 -23 513 741 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 85 -23 645 940 ;
-C -1 ; WX 556 ; N acircumflex ; B 42 -23 535 741 ;
-C -1 ; WX 611 ; N Zdotaccent ; B 28 0 583 915 ;
-C -1 ; WX 500 ; N scaron ; B 34 -23 459 741 ;
-C -1 ; WX 667 ; N Amacron ; B 17 0 653 900 ;
-C -1 ; WX 500 ; N sacute ; B 34 -23 459 740 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 21 -285 593 729 ;
-C -1 ; WX 667 ; N Ydieresis ; B 13 0 661 914 ;
-C -1 ; WX 555 ; N thorn ; B 54 -218 522 714 ;
-C -1 ; WX 667 ; N Emacron ; B 90 0 613 900 ;
-C -1 ; WX 778 ; N Ograve ; B 38 -23 742 939 ;
-C -1 ; WX 778 ; N Oacute ; B 38 -23 742 939 ;
-C -1 ; WX 778 ; N Odieresis ; B 38 -23 742 914 ;
-C -1 ; WX 722 ; N Ntilde ; B 76 0 646 916 ;
-C -1 ; WX 722 ; N Ncaron ; B 76 0 646 940 ;
-C -1 ; WX 722 ; N Nacute ; B 76 0 646 939 ;
-C -1 ; WX 556 ; N Lcaron ; B 80 0 533 729 ;
-C -1 ; WX 556 ; N Lacute ; B 70 0 533 939 ;
-C -1 ; WX 278 ; N Idotaccent ; B 92 0 196 915 ;
-C -1 ; WX 333 ; N racute ; B 69 0 331 740 ;
-C -1 ; WX 278 ; N Icircumflex ; B -1 0 286 940 ;
-C -1 ; WX 556 ; N ohungarumlaut ; B 36 -23 526 740 ;
-C -1 ; WX 556 ; N otilde ; B 36 -23 510 717 ;
-C -1 ; WX 556 ; N Euro ; B 2 -23 543 709 ;
-C -1 ; WX 556 ; N ocircumflex ; B 36 -23 510 741 ;
-C -1 ; WX 351 ; N onesuperior ; B 61 284 222 709 ;
-C -1 ; WX 351 ; N twosuperior ; B 19 284 326 709 ;
-C -1 ; WX 351 ; N threesuperior ; B 16 270 322 709 ;
-C -1 ; WX 278 ; N Igrave ; B 1 0 210 939 ;
-C -1 ; WX 278 ; N Iacute ; B 71 0 280 939 ;
-C -1 ; WX 278 ; N Imacron ; B 20 0 274 900 ;
-C -1 ; WX 278 ; N Iogonek ; B 66 -204 234 729 ;
-C -1 ; WX 278 ; N Idieresis ; B 9 0 275 907 ;
-C -1 ; WX 778 ; N Gbreve ; B 44 -23 709 931 ;
-C -1 ; WX 722 ; N Umacron ; B 85 -23 645 900 ;
-C -1 ; WX 667 ; N Kcommaaccent ; B 79 -285 658 729 ;
-C -1 ; WX 556 ; N ograve ; B 36 -23 510 740 ;
-C -1 ; WX 667 ; N Scommaaccent ; B 48 -285 621 741 ;
-C -1 ; WX 667 ; N Eogonek ; B 90 -205 652 729 ;
-C -1 ; WX 556 ; N oacute ; B 36 -23 510 740 ;
-C -1 ; WX 667 ; N Edotaccent ; B 90 0 613 915 ;
-C -1 ; WX 222 ; N iogonek ; B 25 -204 190 729 ;
-C -1 ; WX 556 ; N gcommaaccent ; B 29 -218 489 817 ;
-C -1 ; WX 556 ; N odieresis ; B 36 -23 510 715 ;
-C -1 ; WX 556 ; N ntilde ; B 70 0 487 717 ;
-C -1 ; WX 556 ; N ncaron ; B 70 0 487 741 ;
-C -1 ; WX 667 ; N Ecaron ; B 90 0 613 940 ;
-C -1 ; WX 667 ; N Ecircumflex ; B 90 0 613 940 ;
-C -1 ; WX 500 ; N scedilla ; B 34 -214 459 539 ;
-C -1 ; WX 333 ; N rcaron ; B 48 0 335 741 ;
-C -1 ; WX 667 ; N Egrave ; B 90 0 613 939 ;
-C -1 ; WX 667 ; N Eacute ; B 90 0 613 939 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 44 -285 709 741 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 93 -285 679 729 ;
-C -1 ; WX 667 ; N Edieresis ; B 90 0 613 914 ;
-C -1 ; WX 556 ; N nacute ; B 70 0 487 740 ;
-C -1 ; WX 556 ; N uogonek ; B 65 -204 521 524 ;
-C -1 ; WX 556 ; N umacron ; B 65 -23 482 701 ;
-C -1 ; WX 722 ; N Dcaron ; B 89 0 667 940 ;
-C -1 ; WX 292 ; N lcaron ; B 68 0 305 729 ;
-C -1 ; WX 722 ; N Ccaron ; B 48 -23 677 940 ;
-C -1 ; WX 722 ; N Cacute ; B 48 -23 677 939 ;
-C -1 ; WX 722 ; N Ccedilla ; B 48 -214 677 741 ;
-C -1 ; WX 606 ; N degree ; B 151 383 454 686 ;
-C -1 ; WX 667 ; N Aogonek ; B 17 -205 692 729 ;
-C -1 ; WX 584 ; N minus ; B 40 197 544 267 ;
-C -1 ; WX 584 ; N multiply ; B 95 34 488 427 ;
-C -1 ; WX 584 ; N divide ; B 50 0 534 472 ;
-C -1 ; WX 667 ; N Aring ; B 17 0 653 953 ;
-C -1 ; WX 1000 ; N trademark ; B 63 292 938 729 ;
-C -1 ; WX 333 ; N rcommaaccent ; B 65 -285 321 539 ;
-C -1 ; WX 222 ; N lacute ; B 63 0 272 939 ;
-C -1 ; WX 556 ; N omacron ; B 36 -23 510 701 ;
-C -1 ; WX 667 ; N Atilde ; B 17 0 653 916 ;
-C -1 ; WX 278 ; N icircumflex ; B -7 0 280 741 ;
-C -1 ; WX 278 ; N igrave ; B -5 0 204 740 ;
-C -1 ; WX 556 ; N ncommaaccent ; B 70 -285 487 539 ;
-C -1 ; WX 222 ; N lcommaaccent ; B 63 -285 163 729 ;
-C -1 ; WX 584 ; N plusminus ; B 50 -11 534 623 ;
-C -1 ; WX 869 ; N onehalf ; B 61 -20 844 709 ;
-C -1 ; WX 869 ; N onequarter ; B 61 -20 849 709 ;
-C -1 ; WX 869 ; N threequarters ; B 16 -20 849 709 ;
-C -1 ; WX 278 ; N iacute ; B 65 0 274 740 ;
-C -1 ; WX 667 ; N Abreve ; B 17 0 653 931 ;
-C -1 ; WX 500 ; N kcommaaccent ; B 58 -285 502 729 ;
-C -1 ; WX 778 ; N Omacron ; B 38 -23 742 900 ;
-C -1 ; WX 222 ; N imacron ; B -16 0 231 701 ;
-C -1 ; WX 556 ; N emacron ; B 40 -23 513 701 ;
-C -1 ; WX 556 ; N amacron ; B 42 -23 535 701 ;
-C -1 ; WX 278 ; N tcommaaccent ; B 14 -285 254 668 ;
-C -1 ; WX 500 ; N ydieresis ; B 20 -218 478 715 ;
-C -1 ; WX 500 ; N zdotaccent ; B 31 0 457 716 ;
-C -1 ; WX 500 ; N zcaron ; B 31 0 457 741 ;
-C -1 ; WX 500 ; N zacute ; B 31 0 457 740 ;
-C -1 ; WX 500 ; N yacute ; B 20 -218 478 740 ;
-C -1 ; WX 556 ; N uhungarumlaut ; B 65 -23 530 740 ;
-C -1 ; WX 556 ; N eth ; B 36 -23 510 743 ;
-C -1 ; WX 556 ; N uring ; B 65 -23 482 754 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 38 -23 742 940 ;
-C -1 ; WX 333 ; N commaaccent ; B 116 -285 216 -60 ;
-C -1 ; WX 737 ; N copyright ; B -13 -22 751 742 ;
-C -1 ; WX 737 ; N registered ; B -13 -22 751 742 ;
-C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ;
-C -1 ; WX 278 ; N idieresis ; B 3 0 269 708 ;
-C -1 ; WX 489 ; N lozenge ; B 16 0 462 744 ;
-C -1 ; WX 711 ; N Delta ; B 10 0 701 729 ;
-C -1 ; WX 548 ; N notequal ; B 32 -25 516 486 ;
-C -1 ; WX 542 ; N radical ; B 7 -36 512 913 ;
-C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ;
-C -1 ; WX 667 ; N Aacute ; B 17 0 653 939 ;
-C -1 ; WX 584 ; N lessequal ; B 45 -11 534 639 ;
-C -1 ; WX 584 ; N greaterequal ; B 45 -11 534 639 ;
-C -1 ; WX 584 ; N logicalnot ; B 40 86 544 375 ;
-C -1 ; WX 711 ; N summation ; B 17 -97 694 760 ;
-C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B 76 -285 646 729 ;
-C -1 ; WX 556 ; N dcroat ; B 26 -23 557 729 ;
-C -1 ; WX 260 ; N brokenbar ; B 100 -212 160 729 ;
-C -1 ; WX 556 ; N Lcommaaccent ; B 80 -285 533 729 ;
-C -1 ; WX 667 ; N Adieresis ; B 17 0 653 914 ;
-C -1 ; WX 556 ; N mu ; B 65 -220 544 524 ;
-C -1 ; WX 278 ; N .notdef ; B 191 0 191 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -36
-KPX A Ccedilla -36
-KPX A G -35
-KPX A O -33
-KPX A Odieresis -33
-KPX A Q -32
-KPX A T -93
-KPX A U -37
-KPX A Uacute -37
-KPX A Ucircumflex -37
-KPX A Udieresis -37
-KPX A Ugrave -37
-KPX A V -75
-KPX A W -51
-KPX A Y -99
-KPX A a -4
-KPX A b 4
-KPX A c -11
-KPX A ccedilla -10
-KPX A comma 5
-KPX A d -8
-KPX A e -16
-KPX A g -10
-KPX A guillemotleft -44
-KPX A guilsinglleft -40
-KPX A hyphen -3
-KPX A o -13
-KPX A period 5
-KPX A q -8
-KPX A quotedblright -56
-KPX A quoteright -65
-KPX A t -16
-KPX A u -12
-KPX A v -31
-KPX A w -21
-KPX A y -34
-KPX Aacute C -36
-KPX Aacute G -35
-KPX Aacute O -33
-KPX Aacute Q -32
-KPX Aacute T -93
-KPX Aacute U -37
-KPX Aacute V -75
-KPX Aacute W -51
-KPX Aacute Y -99
-KPX Aacute a -4
-KPX Aacute b 4
-KPX Aacute c -11
-KPX Aacute comma 5
-KPX Aacute d -8
-KPX Aacute e -16
-KPX Aacute g -10
-KPX Aacute guillemotleft -44
-KPX Aacute guilsinglleft -40
-KPX Aacute hyphen -3
-KPX Aacute o -13
-KPX Aacute period 5
-KPX Aacute q -8
-KPX Aacute quoteright -65
-KPX Aacute t -16
-KPX Aacute u -12
-KPX Aacute v -31
-KPX Aacute w -21
-KPX Aacute y -34
-KPX Acircumflex C -36
-KPX Acircumflex G -35
-KPX Acircumflex O -33
-KPX Acircumflex Q -32
-KPX Acircumflex T -93
-KPX Acircumflex U -37
-KPX Acircumflex V -75
-KPX Acircumflex W -51
-KPX Acircumflex Y -99
-KPX Acircumflex comma 5
-KPX Acircumflex period 5
-KPX Adieresis C -36
-KPX Adieresis G -35
-KPX Adieresis O -33
-KPX Adieresis Q -32
-KPX Adieresis T -93
-KPX Adieresis U -37
-KPX Adieresis V -75
-KPX Adieresis W -51
-KPX Adieresis Y -99
-KPX Adieresis a -4
-KPX Adieresis b 4
-KPX Adieresis c -11
-KPX Adieresis comma 5
-KPX Adieresis d -8
-KPX Adieresis g -10
-KPX Adieresis guillemotleft -44
-KPX Adieresis guilsinglleft -40
-KPX Adieresis hyphen -3
-KPX Adieresis o -13
-KPX Adieresis period 5
-KPX Adieresis q -8
-KPX Adieresis quotedblright -56
-KPX Adieresis quoteright -65
-KPX Adieresis t -16
-KPX Adieresis u -12
-KPX Adieresis v -31
-KPX Adieresis w -21
-KPX Adieresis y -34
-KPX Agrave C -36
-KPX Agrave G -35
-KPX Agrave O -33
-KPX Agrave Q -32
-KPX Agrave T -93
-KPX Agrave U -37
-KPX Agrave V -75
-KPX Agrave W -51
-KPX Agrave Y -99
-KPX Agrave comma 5
-KPX Agrave period 5
-KPX Aring C -36
-KPX Aring G -35
-KPX Aring O -33
-KPX Aring Q -32
-KPX Aring T -93
-KPX Aring U -37
-KPX Aring V -75
-KPX Aring W -51
-KPX Aring Y -99
-KPX Aring a -4
-KPX Aring b 4
-KPX Aring c -11
-KPX Aring comma 5
-KPX Aring d -8
-KPX Aring e -16
-KPX Aring g -10
-KPX Aring guillemotleft -44
-KPX Aring guilsinglleft -40
-KPX Aring hyphen -3
-KPX Aring o -13
-KPX Aring period 5
-KPX Aring q -8
-KPX Aring quotedblright -56
-KPX Aring quoteright -65
-KPX Aring t -16
-KPX Aring u -12
-KPX Aring v -31
-KPX Aring w -21
-KPX Aring y -34
-KPX Atilde C -36
-KPX Atilde G -35
-KPX Atilde O -33
-KPX Atilde Q -32
-KPX Atilde T -93
-KPX Atilde U -37
-KPX Atilde V -75
-KPX Atilde W -51
-KPX Atilde Y -99
-KPX Atilde comma 5
-KPX Atilde period 5
-KPX B A -21
-KPX B AE -21
-KPX B Aacute -21
-KPX B Acircumflex -21
-KPX B Adieresis -21
-KPX B Aring -21
-KPX B Atilde -21
-KPX B O -7
-KPX B OE -5
-KPX B Oacute -7
-KPX B Ocircumflex -7
-KPX B Odieresis -7
-KPX B Ograve -7
-KPX B Oslash -1
-KPX B V -41
-KPX B W -25
-KPX B Y -44
-KPX C A -32
-KPX C AE -33
-KPX C Aacute -32
-KPX C Adieresis -32
-KPX C Aring -32
-KPX C H -12
-KPX C K -10
-KPX C O -8
-KPX C Oacute -8
-KPX C Odieresis -8
-KPX Ccedilla A -31
-KPX D A -42
-KPX D Aacute -42
-KPX D Acircumflex -42
-KPX D Adieresis -42
-KPX D Agrave -42
-KPX D Aring -42
-KPX D Atilde -42
-KPX D J -5
-KPX D T -45
-KPX D V -51
-KPX D W -29
-KPX D X -53
-KPX D Y -63
-KPX F A -69
-KPX F Aacute -69
-KPX F Acircumflex -69
-KPX F Adieresis -69
-KPX F Agrave -69
-KPX F Aring -69
-KPX F Atilde -69
-KPX F J -51
-KPX F O -22
-KPX F Odieresis -22
-KPX F a -33
-KPX F aacute -33
-KPX F adieresis -33
-KPX F ae -29
-KPX F aring -33
-KPX F comma -108
-KPX F e -24
-KPX F eacute -24
-KPX F hyphen -14
-KPX F i -10
-KPX F j -12
-KPX F o -21
-KPX F oacute -21
-KPX F odieresis -21
-KPX F oe -23
-KPX F oslash -21
-KPX F period -108
-KPX F r -35
-KPX F u -33
-KPX G A -6
-KPX G AE -3
-KPX G Aacute -6
-KPX G Acircumflex -6
-KPX G Adieresis -6
-KPX G Agrave -6
-KPX G Aring -6
-KPX G Atilde -6
-KPX G T -44
-KPX G V -50
-KPX G W -28
-KPX G Y -62
-KPX J A -32
-KPX J AE -31
-KPX J Adieresis -32
-KPX J Aring -32
-KPX K C -51
-KPX K G -51
-KPX K O -48
-KPX K OE -45
-KPX K Oacute -48
-KPX K Odieresis -48
-KPX K S -38
-KPX K T 20
-KPX K a -11
-KPX K adieresis -11
-KPX K ae -7
-KPX K aring -11
-KPX K e -32
-KPX K hyphen -47
-KPX K o -29
-KPX K oacute -29
-KPX K odieresis -29
-KPX K u -19
-KPX K udieresis -19
-KPX K y -62
-KPX L A 17
-KPX L AE 20
-KPX L Aacute 17
-KPX L Adieresis 17
-KPX L Aring 17
-KPX L C -41
-KPX L Ccedilla -37
-KPX L G -42
-KPX L O -41
-KPX L Oacute -41
-KPX L Ocircumflex -41
-KPX L Odieresis -41
-KPX L Ograve -41
-KPX L Otilde -41
-KPX L S -19
-KPX L T -105
-KPX L U -35
-KPX L Udieresis -35
-KPX L V -105
-KPX L W -68
-KPX L Y -121
-KPX L hyphen -125
-KPX L quotedblright -141
-KPX L quoteright -149
-KPX L u -7
-KPX L udieresis -7
-KPX L y -56
-KPX N A -9
-KPX N AE -6
-KPX N Aacute -9
-KPX N Adieresis -9
-KPX N Aring -9
-KPX N C -3
-KPX N Ccedilla -3
-KPX N G -2
-KPX N O 0
-KPX N Oacute 0
-KPX N Odieresis 0
-KPX N a -5
-KPX N aacute -5
-KPX N adieresis -5
-KPX N ae -2
-KPX N aring -5
-KPX N comma -7
-KPX N e 0
-KPX N eacute 0
-KPX N o 2
-KPX N oacute 2
-KPX N odieresis 2
-KPX N oslash 4
-KPX N period -7
-KPX N u 0
-KPX N udieresis 0
-KPX O A -35
-KPX O AE -39
-KPX O Aacute -35
-KPX O Adieresis -35
-KPX O Aring -35
-KPX O T -42
-KPX O V -45
-KPX O W -23
-KPX O X -46
-KPX O Y -59
-KPX Oacute A -35
-KPX Oacute T -42
-KPX Oacute V -45
-KPX Oacute W -23
-KPX Oacute Y -59
-KPX Ocircumflex T -42
-KPX Ocircumflex V -45
-KPX Ocircumflex Y -59
-KPX Odieresis A -35
-KPX Odieresis T -42
-KPX Odieresis V -45
-KPX Odieresis W -23
-KPX Odieresis X -46
-KPX Odieresis Y -59
-KPX Ograve T -42
-KPX Ograve V -45
-KPX Ograve Y -59
-KPX Oslash A -33
-KPX Otilde T -42
-KPX Otilde V -45
-KPX Otilde Y -59
-KPX P A -78
-KPX P AE -86
-KPX P Aacute -78
-KPX P Adieresis -78
-KPX P Aring -78
-KPX P J -78
-KPX P a -28
-KPX P aacute -28
-KPX P adieresis -28
-KPX P ae -24
-KPX P aring -28
-KPX P comma -135
-KPX P e -31
-KPX P eacute -31
-KPX P hyphen -40
-KPX P o -27
-KPX P oacute -27
-KPX P odieresis -27
-KPX P oe -28
-KPX P oslash -27
-KPX P period -135
-KPX R C -16
-KPX R Ccedilla -16
-KPX R G -15
-KPX R O -13
-KPX R OE -11
-KPX R Oacute -13
-KPX R Odieresis -13
-KPX R T -23
-KPX R U -17
-KPX R Udieresis -17
-KPX R V -39
-KPX R W -27
-KPX R Y -43
-KPX R a -15
-KPX R aacute -15
-KPX R adieresis -15
-KPX R ae -12
-KPX R aring -15
-KPX R e -12
-KPX R eacute -12
-KPX R hyphen -2
-KPX R o -9
-KPX R oacute -9
-KPX R odieresis -9
-KPX R oe -11
-KPX R u -9
-KPX R uacute -9
-KPX R udieresis -9
-KPX R y -8
-KPX S A -22
-KPX S AE -22
-KPX S Aacute -22
-KPX S Adieresis -22
-KPX S Aring -22
-KPX S T -28
-KPX S V -42
-KPX S W -28
-KPX S Y -48
-KPX S t -3
-KPX T A -95
-KPX T AE -97
-KPX T Aacute -95
-KPX T Acircumflex -95
-KPX T Adieresis -95
-KPX T Agrave -95
-KPX T Aring -95
-KPX T Atilde -95
-KPX T C -44
-KPX T G -45
-KPX T J -100
-KPX T O -42
-KPX T OE -35
-KPX T Oacute -42
-KPX T Ocircumflex -42
-KPX T Odieresis -42
-KPX T Ograve -42
-KPX T Oslash -41
-KPX T Otilde -42
-KPX T S -24
-KPX T V 12
-KPX T W 16
-KPX T Y 20
-KPX T a -100
-KPX T ae -97
-KPX T c -90
-KPX T colon -133
-KPX T comma -100
-KPX T e -95
-KPX T g -89
-KPX T guillemotleft -121
-KPX T guilsinglleft -117
-KPX T hyphen -77
-KPX T i -3
-KPX T j -5
-KPX T o -92
-KPX T oslash -87
-KPX T period -100
-KPX T r -92
-KPX T s -92
-KPX T semicolon -129
-KPX T u -91
-KPX T v -95
-KPX T w -93
-KPX T y -100
-KPX U A -36
-KPX U AE -39
-KPX U Aacute -36
-KPX U Acircumflex -36
-KPX U Adieresis -36
-KPX U Aring -36
-KPX U Atilde -36
-KPX U comma -27
-KPX U m -4
-KPX U n -4
-KPX U p 3
-KPX U period -25
-KPX U r -4
-KPX Uacute A -36
-KPX Uacute comma -27
-KPX Uacute m -4
-KPX Uacute n -4
-KPX Uacute p 3
-KPX Uacute period -25
-KPX Uacute r -4
-KPX Ucircumflex A -36
-KPX Udieresis A -36
-KPX Udieresis b 3
-KPX Udieresis comma -27
-KPX Udieresis m -4
-KPX Udieresis n -4
-KPX Udieresis p 3
-KPX Udieresis period -25
-KPX Udieresis r -4
-KPX Ugrave A -36
-KPX V A -71
-KPX V AE -78
-KPX V Aacute -71
-KPX V Acircumflex -71
-KPX V Adieresis -71
-KPX V Agrave -71
-KPX V Aring -71
-KPX V Atilde -71
-KPX V C -43
-KPX V G -42
-KPX V O -40
-KPX V Oacute -40
-KPX V Ocircumflex -40
-KPX V Odieresis -40
-KPX V Ograve -40
-KPX V Oslash -33
-KPX V Otilde -40
-KPX V S -35
-KPX V T 15
-KPX V a -59
-KPX V ae -55
-KPX V colon -66
-KPX V comma -89
-KPX V e -57
-KPX V g -50
-KPX V guillemotleft -83
-KPX V guilsinglleft -80
-KPX V hyphen -38
-KPX V i -5
-KPX V o -54
-KPX V oslash -50
-KPX V period -89
-KPX V r -42
-KPX V semicolon -66
-KPX V u -41
-KPX V y -20
-KPX W A -50
-KPX W AE -56
-KPX W Aacute -50
-KPX W Acircumflex -50
-KPX W Adieresis -50
-KPX W Agrave -50
-KPX W Aring -50
-KPX W Atilde -50
-KPX W C -23
-KPX W G -22
-KPX W O -20
-KPX W Oacute -20
-KPX W Ocircumflex -20
-KPX W Odieresis -20
-KPX W Ograve -20
-KPX W Oslash -13
-KPX W Otilde -20
-KPX W S -24
-KPX W T 19
-KPX W a -38
-KPX W ae -34
-KPX W colon -52
-KPX W comma -56
-KPX W e -32
-KPX W g -25
-KPX W guillemotleft -58
-KPX W guilsinglleft -54
-KPX W hyphen -13
-KPX W i -1
-KPX W o -29
-KPX W oslash -25
-KPX W period -56
-KPX W r -28
-KPX W semicolon -53
-KPX W u -28
-KPX W y -6
-KPX X C -48
-KPX X O -45
-KPX X Odieresis -45
-KPX X Q -44
-KPX X a -15
-KPX X e -36
-KPX X hyphen -51
-KPX X o -33
-KPX X u -24
-KPX X y -61
-KPX Y A -96
-KPX Y AE -103
-KPX Y Aacute -96
-KPX Y Acircumflex -96
-KPX Y Adieresis -96
-KPX Y Agrave -96
-KPX Y Aring -96
-KPX Y Atilde -96
-KPX Y C -58
-KPX Y G -58
-KPX Y O -56
-KPX Y Oacute -56
-KPX Y Ocircumflex -56
-KPX Y Odieresis -56
-KPX Y Ograve -56
-KPX Y Oslash -54
-KPX Y Otilde -56
-KPX Y S -41
-KPX Y T 23
-KPX Y a -88
-KPX Y ae -84
-KPX Y colon -87
-KPX Y comma -111
-KPX Y e -89
-KPX Y g -83
-KPX Y guillemotleft -123
-KPX Y guilsinglleft -119
-KPX Y hyphen -84
-KPX Y i 3
-KPX Y o -86
-KPX Y oslash -82
-KPX Y p -54
-KPX Y period -111
-KPX Y semicolon -88
-KPX Y u -63
-KPX Y v -36
-KPX Z v -33
-KPX Z y -38
-KPX a j -4
-KPX a quoteright -23
-KPX a v -21
-KPX a w -13
-KPX a y -26
-KPX aacute v -21
-KPX aacute w -13
-KPX aacute y -26
-KPX adieresis v -21
-KPX adieresis w -13
-KPX adieresis y -26
-KPX ae v -16
-KPX ae w -10
-KPX ae y -20
-KPX agrave v -21
-KPX agrave w -13
-KPX agrave y -26
-KPX aring v -21
-KPX aring w -13
-KPX aring y -26
-KPX b v -11
-KPX b w -3
-KPX b y -15
-KPX c h 1
-KPX c k 7
-KPX comma one -100
-KPX comma quotedblright -41
-KPX comma quoteright -50
-KPX e quoteright -18
-KPX e t -10
-KPX e v -15
-KPX e w -9
-KPX e x -27
-KPX e y -19
-KPX eacute v -15
-KPX eacute w -9
-KPX eacute y -19
-KPX ecircumflex v -15
-KPX ecircumflex w -9
-KPX ecircumflex y -19
-KPX eight four 1
-KPX eight one -48
-KPX eight seven -33
-KPX f a -9
-KPX f aacute -9
-KPX f adieresis -9
-KPX f ae -5
-KPX f aring -9
-KPX f e -15
-KPX f eacute -15
-KPX f f 22
-KPX f i -2
-KPX f j -4
-KPX f l -3
-KPX f o -10
-KPX f oacute -10
-KPX f odieresis -10
-KPX f oe -12
-KPX f oslash -9
-KPX f quoteright 0
-KPX f s 0
-KPX f t 24
-KPX five four 1
-KPX five one -76
-KPX five seven -26
-KPX four four 5
-KPX four one -84
-KPX four seven -56
-KPX g a -5
-KPX g adieresis -5
-KPX g ae -1
-KPX g aring -5
-KPX g e 0
-KPX g eacute 0
-KPX g l 0
-KPX g oacute 3
-KPX g odieresis 3
-KPX g r 0
-KPX guillemotright A -50
-KPX guillemotright AE -54
-KPX guillemotright Aacute -50
-KPX guillemotright Adieresis -50
-KPX guillemotright Aring -50
-KPX guillemotright T -126
-KPX guillemotright V -93
-KPX guillemotright W -66
-KPX guillemotright Y -133
-KPX guilsinglright A -44
-KPX guilsinglright AE -48
-KPX guilsinglright Aacute -44
-KPX guilsinglright Adieresis -44
-KPX guilsinglright Aring -44
-KPX guilsinglright T -121
-KPX guilsinglright V -88
-KPX guilsinglright W -60
-KPX guilsinglright Y -128
-KPX h quoteright -15
-KPX h y -18
-KPX hyphen A -7
-KPX hyphen AE -11
-KPX hyphen Aacute -7
-KPX hyphen Adieresis -7
-KPX hyphen Aring -7
-KPX hyphen T -80
-KPX hyphen V -46
-KPX hyphen W -19
-KPX hyphen Y -92
-KPX i T -7
-KPX i j -3
-KPX k a -2
-KPX k aacute -2
-KPX k adieresis -2
-KPX k ae 2
-KPX k aring -2
-KPX k comma 0
-KPX k e -21
-KPX k eacute -21
-KPX k g -16
-KPX k hyphen -41
-KPX k o -19
-KPX k oacute -19
-KPX k odieresis -19
-KPX k period 0
-KPX k s -3
-KPX k u -11
-KPX k udieresis -6
-KPX l v 0
-KPX l y -5
-KPX m p 5
-KPX m v -13
-KPX m w -7
-KPX m y -18
-KPX n T -96
-KPX n p 5
-KPX n quoteright -14
-KPX n v -13
-KPX n w -7
-KPX n y -18
-KPX nine four -3
-KPX nine one -43
-KPX nine seven -37
-KPX o T -99
-KPX o quoteright -21
-KPX o t -10
-KPX o v -18
-KPX o w -10
-KPX o x -27
-KPX o y -22
-KPX oacute v -18
-KPX oacute w -10
-KPX oacute y -22
-KPX ocircumflex t -10
-KPX odieresis t -10
-KPX odieresis v -18
-KPX odieresis w -10
-KPX odieresis x -27
-KPX odieresis y -22
-KPX ograve v -18
-KPX ograve w -10
-KPX ograve y -22
-KPX one comma -74
-KPX one eight -65
-KPX one five -67
-KPX one four -81
-KPX one nine -65
-KPX one one -118
-KPX one period -74
-KPX one seven -90
-KPX one six -62
-KPX one three -67
-KPX one two -69
-KPX one zero -62
-KPX p t -4
-KPX p y -16
-KPX period one -101
-KPX period quotedblright -41
-KPX period quoteright -51
-KPX q c 8
-KPX q u 4
-KPX quotedblbase A 30
-KPX quotedblbase AE 30
-KPX quotedblbase T -75
-KPX quotedblbase V -69
-KPX quotedblbase W -34
-KPX quotedblbase Y -91
-KPX quotedblleft A -52
-KPX quotedblleft AE -64
-KPX quotedblleft Aacute -52
-KPX quotedblleft Adieresis -52
-KPX quotedblleft Aring -52
-KPX quotedblleft T 9
-KPX quotedblleft V 15
-KPX quotedblleft W 27
-KPX quotedblleft Y 5
-KPX quotedblright A -53
-KPX quotedblright AE -66
-KPX quotedblright Aacute -53
-KPX quotedblright Adieresis -53
-KPX quotedblright Aring -53
-KPX quotedblright T 11
-KPX quotedblright V 15
-KPX quotedblright W 26
-KPX quotedblright Y 7
-KPX quoteleft A -67
-KPX quoteleft AE -79
-KPX quoteleft Aacute -67
-KPX quoteleft Adieresis -67
-KPX quoteleft Aring -67
-KPX quoteleft T -5
-KPX quoteleft V 0
-KPX quoteleft W 12
-KPX quoteleft Y -9
-KPX quoteright A -72
-KPX quoteright AE -85
-KPX quoteright Aacute -72
-KPX quoteright Adieresis -72
-KPX quoteright Aring -72
-KPX quoteright comma -60
-KPX quoteright d -20
-KPX quoteright o -26
-KPX quoteright period -60
-KPX quoteright r -18
-KPX quoteright s -18
-KPX quoteright t -7
-KPX quoteright v -2
-KPX quoteright w 2
-KPX quoteright y -6
-KPX r a -5
-KPX r aacute -5
-KPX r acircumflex -5
-KPX r adieresis -5
-KPX r ae -1
-KPX r agrave -5
-KPX r aring -5
-KPX r c -6
-KPX r ccedilla -9
-KPX r colon -22
-KPX r comma -69
-KPX r d -1
-KPX r e -11
-KPX r eacute -11
-KPX r ecircumflex -11
-KPX r egrave -11
-KPX r f 26
-KPX r g -4
-KPX r h 0
-KPX r hyphen -47
-KPX r i 1
-KPX r j 0
-KPX r k 6
-KPX r l 1
-KPX r m 0
-KPX r n 0
-KPX r o -6
-KPX r oacute -6
-KPX r ocircumflex -6
-KPX r odieresis -6
-KPX r oe -8
-KPX r ograve -6
-KPX r oslash -6
-KPX r p 8
-KPX r period -69
-KPX r q -3
-KPX r quoteright 1
-KPX r r 0
-KPX r s 4
-KPX r semicolon -22
-KPX r t 28
-KPX r u 2
-KPX r v 29
-KPX r w 31
-KPX r x 20
-KPX r y 24
-KPX r z 9
-KPX s quoteright -22
-KPX s t -3
-KPX seven colon -77
-KPX seven comma -119
-KPX seven eight -28
-KPX seven five -30
-KPX seven four -93
-KPX seven one -53
-KPX seven period -119
-KPX seven seven -4
-KPX seven six -40
-KPX seven three -23
-KPX seven two -28
-KPX six four 1
-KPX six one -43
-KPX six seven -30
-KPX t S -8
-KPX t a -1
-KPX t aacute -1
-KPX t adieresis -1
-KPX t ae 2
-KPX t aring -1
-KPX t colon -28
-KPX t e -14
-KPX t eacute -14
-KPX t h -3
-KPX t o -12
-KPX t oacute -12
-KPX t odieresis -12
-KPX t quoteright -1
-KPX t semicolon -28
-KPX three four -2
-KPX three one -49
-KPX three seven -33
-KPX two four -37
-KPX two one -36
-KPX two seven -25
-KPX u quoteright -8
-KPX v a -18
-KPX v aacute -18
-KPX v acircumflex -18
-KPX v adieresis -18
-KPX v ae -14
-KPX v agrave -18
-KPX v aring -18
-KPX v atilde -18
-KPX v c -16
-KPX v colon -23
-KPX v comma -69
-KPX v e -21
-KPX v eacute -21
-KPX v ecircumflex -21
-KPX v egrave -21
-KPX v g -14
-KPX v hyphen -12
-KPX v l 0
-KPX v o -17
-KPX v oacute -17
-KPX v odieresis -17
-KPX v ograve -17
-KPX v oslash -17
-KPX v period -69
-KPX v s -9
-KPX v semicolon -23
-KPX w a -15
-KPX w aacute -15
-KPX w acircumflex -15
-KPX w adieresis -15
-KPX w ae -11
-KPX w agrave -15
-KPX w aring -15
-KPX w atilde -15
-KPX w c -7
-KPX w colon -23
-KPX w comma -50
-KPX w e -12
-KPX w eacute -12
-KPX w ecircumflex -12
-KPX w egrave -12
-KPX w g -6
-KPX w hyphen -1
-KPX w l 0
-KPX w o -9
-KPX w oacute -9
-KPX w odieresis -9
-KPX w ograve -9
-KPX w oslash -6
-KPX w period -50
-KPX w s -5
-KPX w semicolon -23
-KPX x a -17
-KPX x c -23
-KPX x e -28
-KPX x eacute -28
-KPX x o -25
-KPX x q -20
-KPX y a -22
-KPX y aacute -22
-KPX y acircumflex -22
-KPX y adieresis -22
-KPX y ae -18
-KPX y agrave -22
-KPX y aring -22
-KPX y atilde -22
-KPX y c -19
-KPX y colon -27
-KPX y comma -70
-KPX y e -24
-KPX y eacute -24
-KPX y ecircumflex -24
-KPX y egrave -24
-KPX y g -17
-KPX y hyphen -14
-KPX y l -4
-KPX y o -20
-KPX y oacute -20
-KPX y odieresis -20
-KPX y ograve -20
-KPX y oslash -19
-KPX y period -70
-KPX y s -12
-KPX y semicolon -27
-KPX zero four -2
-KPX zero one -46
-KPX zero seven -39
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019003l.pfb b/Master/xemtex/gsfonts/n019003l.pfb
deleted file mode 100644
index ba9ea607e65..00000000000
--- a/Master/xemtex/gsfonts/n019003l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019003l.pfm b/Master/xemtex/gsfonts/n019003l.pfm
deleted file mode 100644
index 299aa873a6d..00000000000
--- a/Master/xemtex/gsfonts/n019003l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019004l.afm b/Master/xemtex/gsfonts/n019004l.afm
deleted file mode 100644
index 06adbcbfa1c..00000000000
--- a/Master/xemtex/gsfonts/n019004l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-Bold
-FullName Nimbus Sans L Bold
-FamilyName Nimbus Sans L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -155
-UnderlineThickness 69
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -173 -307 1003 949
-CapHeight 729
-XHeight 540
-Descender -217
-Ascender 729
-StartCharMetrics 316
-C 32 ; WX 278 ; N space ; B 214 0 214 0 ;
-C 33 ; WX 333 ; N exclam ; B 112 0 262 726 ;
-C 34 ; WX 474 ; N quotedbl ; B 50 470 424 729 ;
-C 35 ; WX 556 ; N numbersign ; B 3 -32 553 697 ;
-C 36 ; WX 556 ; N dollar ; B 22 -126 527 763 ;
-C 37 ; WX 889 ; N percent ; B 22 -20 863 709 ;
-C 38 ; WX 722 ; N ampersand ; B 55 -23 694 723 ;
-C 39 ; WX 278 ; N quoteright ; B 66 469 201 729 ;
-C 40 ; WX 333 ; N parenleft ; B 40 -200 303 729 ;
-C 41 ; WX 333 ; N parenright ; B 22 -200 285 729 ;
-C 42 ; WX 389 ; N asterisk ; B 23 407 357 729 ;
-C 43 ; WX 584 ; N plus ; B 50 -10 533 473 ;
-C 44 ; WX 278 ; N comma ; B 64 -174 214 146 ;
-C 45 ; WX 333 ; N hyphen ; B 26 207 298 342 ;
-C 46 ; WX 278 ; N period ; B 64 0 214 146 ;
-C 47 ; WX 278 ; N slash ; B 2 -14 275 714 ;
-C 48 ; WX 556 ; N zero ; B 29 -23 517 724 ;
-C 49 ; WX 556 ; N one ; B 68 0 378 709 ;
-C 50 ; WX 556 ; N two ; B 30 0 515 724 ;
-C 51 ; WX 556 ; N three ; B 29 -23 516 724 ;
-C 52 ; WX 556 ; N four ; B 24 0 522 709 ;
-C 53 ; WX 556 ; N five ; B 27 -23 517 709 ;
-C 54 ; WX 556 ; N six ; B 32 -23 519 724 ;
-C 55 ; WX 556 ; N seven ; B 29 0 528 709 ;
-C 56 ; WX 556 ; N eight ; B 22 -23 525 724 ;
-C 57 ; WX 556 ; N nine ; B 28 -24 516 724 ;
-C 58 ; WX 333 ; N colon ; B 113 0 263 520 ;
-C 59 ; WX 333 ; N semicolon ; B 113 -174 263 520 ;
-C 60 ; WX 584 ; N less ; B 40 -10 529 474 ;
-C 61 ; WX 584 ; N equal ; B 50 52 534 411 ;
-C 62 ; WX 584 ; N greater ; B 40 -10 529 474 ;
-C 63 ; WX 611 ; N question ; B 64 0 556 744 ;
-C 64 ; WX 975 ; N at ; B 27 -138 947 745 ;
-C 65 ; WX 722 ; N A ; B 26 0 703 729 ;
-C 66 ; WX 722 ; N B ; B 82 0 666 729 ;
-C 67 ; WX 722 ; N C ; B 44 -23 685 741 ;
-C 68 ; WX 722 ; N D ; B 77 0 681 729 ;
-C 69 ; WX 667 ; N E ; B 79 0 624 729 ;
-C 70 ; WX 611 ; N F ; B 74 0 586 729 ;
-C 71 ; WX 778 ; N G ; B 42 -23 711 741 ;
-C 72 ; WX 722 ; N H ; B 68 0 657 729 ;
-C 73 ; WX 278 ; N I ; B 63 0 213 729 ;
-C 74 ; WX 556 ; N J ; B 24 -23 486 729 ;
-C 75 ; WX 722 ; N K ; B 74 0 717 729 ;
-C 76 ; WX 611 ; N L ; B 80 0 579 729 ;
-C 77 ; WX 833 ; N M ; B 66 0 776 729 ;
-C 78 ; WX 722 ; N N ; B 68 0 661 729 ;
-C 79 ; WX 778 ; N O ; B 40 -23 742 741 ;
-C 80 ; WX 667 ; N P ; B 76 0 633 729 ;
-C 81 ; WX 778 ; N Q ; B 43 -54 745 741 ;
-C 82 ; WX 722 ; N R ; B 80 0 677 729 ;
-C 83 ; WX 667 ; N S ; B 32 -23 633 741 ;
-C 84 ; WX 611 ; N T ; B 14 0 598 729 ;
-C 85 ; WX 722 ; N U ; B 76 -23 654 729 ;
-C 86 ; WX 667 ; N V ; B 24 0 647 729 ;
-C 87 ; WX 944 ; N W ; B 13 0 932 729 ;
-C 88 ; WX 667 ; N X ; B 22 0 653 729 ;
-C 89 ; WX 667 ; N Y ; B 27 0 650 729 ;
-C 90 ; WX 611 ; N Z ; B 30 0 578 729 ;
-C 91 ; WX 333 ; N bracketleft ; B 66 -200 308 729 ;
-C 92 ; WX 278 ; N backslash ; B -12 -14 289 714 ;
-C 93 ; WX 333 ; N bracketright ; B 18 -200 260 729 ;
-C 94 ; WX 584 ; N asciicircum ; B 61 270 522 695 ;
-C 95 ; WX 556 ; N underscore ; B -22 -189 578 -120 ;
-C 96 ; WX 278 ; N quoteleft ; B 67 469 202 729 ;
-C 97 ; WX 556 ; N a ; B 28 -23 524 549 ;
-C 98 ; WX 611 ; N b ; B 59 -23 575 729 ;
-C 99 ; WX 556 ; N c ; B 34 -23 522 549 ;
-C 100 ; WX 611 ; N d ; B 29 -23 545 729 ;
-C 101 ; WX 556 ; N e ; B 22 -23 525 549 ;
-C 102 ; WX 333 ; N f ; B 14 0 313 729 ;
-C 103 ; WX 611 ; N g ; B 34 -218 541 549 ;
-C 104 ; WX 611 ; N h ; B 67 0 541 729 ;
-C 105 ; WX 278 ; N i ; B 67 0 207 729 ;
-C 106 ; WX 278 ; N j ; B 4 -218 210 729 ;
-C 107 ; WX 556 ; N k ; B 59 0 548 729 ;
-C 108 ; WX 278 ; N l ; B 67 0 207 729 ;
-C 109 ; WX 889 ; N m ; B 60 0 824 549 ;
-C 110 ; WX 611 ; N n ; B 63 0 546 549 ;
-C 111 ; WX 611 ; N o ; B 35 -23 569 549 ;
-C 112 ; WX 611 ; N p ; B 58 -218 574 549 ;
-C 113 ; WX 611 ; N q ; B 28 -218 544 549 ;
-C 114 ; WX 389 ; N r ; B 63 0 370 549 ;
-C 115 ; WX 556 ; N s ; B 29 -23 520 549 ;
-C 116 ; WX 333 ; N t ; B 14 -23 301 674 ;
-C 117 ; WX 611 ; N u ; B 58 -23 541 540 ;
-C 118 ; WX 556 ; N v ; B 14 0 536 540 ;
-C 119 ; WX 778 ; N w ; B 5 0 766 540 ;
-C 120 ; WX 556 ; N x ; B 16 0 535 540 ;
-C 121 ; WX 556 ; N y ; B 9 -219 538 540 ;
-C 122 ; WX 500 ; N z ; B 21 0 468 540 ;
-C 123 ; WX 389 ; N braceleft ; B 37 -200 317 729 ;
-C 124 ; WX 280 ; N bar ; B 100 -200 180 729 ;
-C 125 ; WX 389 ; N braceright ; B 72 -200 352 729 ;
-C 126 ; WX 584 ; N asciitilde ; B 60 142 519 314 ;
-C 161 ; WX 333 ; N exclamdown ; B 66 -186 216 540 ;
-C 162 ; WX 556 ; N cent ; B 36 -124 522 634 ;
-C 163 ; WX 556 ; N sterling ; B 31 -23 537 715 ;
-C 164 ; WX 167 ; N fraction ; B -173 -20 337 715 ;
-C 165 ; WX 556 ; N yen ; B 5 0 552 704 ;
-C 166 ; WX 556 ; N florin ; B 21 -220 535 744 ;
-C 167 ; WX 556 ; N section ; B 33 -201 518 723 ;
-C 168 ; WX 556 ; N currency ; B 26 100 530 604 ;
-C 169 ; WX 238 ; N quotesingle ; B 50 470 188 729 ;
-C 170 ; WX 500 ; N quotedblleft ; B 71 469 433 729 ;
-C 171 ; WX 556 ; N guillemotleft ; B 88 72 468 481 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 83 72 250 481 ;
-C 173 ; WX 333 ; N guilsinglright ; B 80 72 247 481 ;
-C 174 ; WX 611 ; N fi ; B 9 0 548 729 ;
-C 175 ; WX 611 ; N fl ; B 12 0 546 729 ;
-C 177 ; WX 556 ; N endash ; B -9 207 557 311 ;
-C 178 ; WX 556 ; N dagger ; B 31 -194 523 709 ;
-C 179 ; WX 556 ; N daggerdbl ; B 28 -194 520 709 ;
-C 180 ; WX 278 ; N periodcentered ; B 64 169 188 292 ;
-C 182 ; WX 556 ; N paragraph ; B 19 -191 529 729 ;
-C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ;
-C 184 ; WX 278 ; N quotesinglbase ; B 66 -135 201 125 ;
-C 185 ; WX 500 ; N quotedblbase ; B 72 -135 432 125 ;
-C 186 ; WX 500 ; N quotedblright ; B 73 469 440 729 ;
-C 187 ; WX 556 ; N guillemotright ; B 88 72 462 481 ;
-C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ;
-C 189 ; WX 1000 ; N perthousand ; B 11 -22 990 739 ;
-C 191 ; WX 611 ; N questiondown ; B 51 -204 544 540 ;
-C 193 ; WX 333 ; N grave ; B 17 607 213 757 ;
-C 194 ; WX 333 ; N acute ; B 121 607 317 757 ;
-C 195 ; WX 333 ; N circumflex ; B 8 607 326 757 ;
-C 196 ; WX 333 ; N tilde ; B -9 621 345 749 ;
-C 197 ; WX 333 ; N macron ; B 16 640 315 719 ;
-C 198 ; WX 333 ; N breve ; B 35 605 299 748 ;
-C 199 ; WX 333 ; N dotaccent ; B 112 621 222 743 ;
-C 200 ; WX 333 ; N dieresis ; B 18 621 314 743 ;
-C 202 ; WX 333 ; N ring ; B 77 590 257 770 ;
-C 203 ; WX 333 ; N cedilla ; B 27 -220 294 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B -44 610 340 757 ;
-C 206 ; WX 333 ; N ogonek ; B 45 -234 268 0 ;
-C 207 ; WX 333 ; N caron ; B 9 607 327 757 ;
-C 208 ; WX 1000 ; N emdash ; B -7 207 1003 311 ;
-C 225 ; WX 1000 ; N AE ; B 1 0 966 729 ;
-C 227 ; WX 370 ; N ordfeminine ; B 31 262 329 729 ;
-C 232 ; WX 611 ; N Lslash ; B 0 0 597 729 ;
-C 233 ; WX 778 ; N Oslash ; B 31 -39 755 749 ;
-C 234 ; WX 1000 ; N OE ; B 28 -23 970 741 ;
-C 235 ; WX 365 ; N ordmasculine ; B 23 262 343 729 ;
-C 241 ; WX 889 ; N ae ; B 27 -24 857 549 ;
-C 245 ; WX 278 ; N dotlessi ; B 67 0 207 540 ;
-C 248 ; WX 278 ; N lslash ; B 0 0 252 729 ;
-C 249 ; WX 611 ; N oslash ; B 11 -38 598 557 ;
-C 250 ; WX 944 ; N oe ; B 23 -23 920 549 ;
-C 251 ; WX 611 ; N germandbls ; B 67 -17 575 729 ;
-C -1 ; WX 722 ; N Udieresis ; B 76 -23 654 922 ;
-C -1 ; WX 722 ; N Uacute ; B 76 -23 654 936 ;
-C -1 ; WX 667 ; N Scedilla ; B 32 -220 633 741 ;
-C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ;
-C -1 ; WX 667 ; N Scaron ; B 32 -23 633 936 ;
-C -1 ; WX 722 ; N Rcaron ; B 80 0 677 936 ;
-C -1 ; WX 722 ; N Racute ; B 80 0 677 936 ;
-C -1 ; WX 667 ; N Sacute ; B 32 -23 633 936 ;
-C -1 ; WX 778 ; N Otilde ; B 40 -23 742 928 ;
-C -1 ; WX 611 ; N ucircumflex ; B 58 -23 541 757 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -23 742 936 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 76 -23 654 936 ;
-C -1 ; WX 667 ; N Yacute ; B 27 0 650 936 ;
-C -1 ; WX 722 ; N Eth ; B 0 0 681 729 ;
-C -1 ; WX 722 ; N Dcroat ; B 0 0 681 729 ;
-C -1 ; WX 611 ; N Zacute ; B 30 0 578 936 ;
-C -1 ; WX 722 ; N Uring ; B 76 -23 654 949 ;
-C -1 ; WX 611 ; N gbreve ; B 34 -218 541 748 ;
-C -1 ; WX 556 ; N eogonek ; B 21 -234 525 549 ;
-C -1 ; WX 556 ; N edotaccent ; B 22 -23 525 743 ;
-C -1 ; WX 556 ; N ecaron ; B 22 -23 525 757 ;
-C -1 ; WX 722 ; N Ugrave ; B 76 -23 654 936 ;
-C -1 ; WX 667 ; N Thorn ; B 76 0 633 729 ;
-C -1 ; WX 556 ; N eacute ; B 22 -23 525 757 ;
-C -1 ; WX 556 ; N edieresis ; B 22 -23 525 743 ;
-C -1 ; WX 707 ; N dcaron ; B 29 -23 720 729 ;
-C -1 ; WX 556 ; N ccedilla ; B 34 -220 522 549 ;
-C -1 ; WX 556 ; N ccaron ; B 34 -23 522 757 ;
-C -1 ; WX 556 ; N cacute ; B 34 -23 522 757 ;
-C -1 ; WX 556 ; N aogonek ; B 28 -233 548 549 ;
-C -1 ; WX 556 ; N aring ; B 28 -23 524 770 ;
-C -1 ; WX 556 ; N atilde ; B 28 -23 524 749 ;
-C -1 ; WX 556 ; N abreve ; B 28 -23 524 748 ;
-C -1 ; WX 556 ; N egrave ; B 22 -23 525 757 ;
-C -1 ; WX 556 ; N agrave ; B 28 -23 524 757 ;
-C -1 ; WX 556 ; N aacute ; B 28 -23 524 757 ;
-C -1 ; WX 556 ; N adieresis ; B 28 -23 524 743 ;
-C -1 ; WX 722 ; N Uogonek ; B 76 -234 654 729 ;
-C -1 ; WX 611 ; N ugrave ; B 58 -23 541 757 ;
-C -1 ; WX 611 ; N uacute ; B 58 -23 541 757 ;
-C -1 ; WX 611 ; N udieresis ; B 58 -23 541 743 ;
-C -1 ; WX 385 ; N tcaron ; B 14 -23 398 829 ;
-C -1 ; WX 556 ; N scommaaccent ; B 29 -307 520 549 ;
-C -1 ; WX 611 ; N Zcaron ; B 30 0 578 936 ;
-C -1 ; WX 556 ; N ecircumflex ; B 22 -23 525 757 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 76 -23 654 936 ;
-C -1 ; WX 556 ; N acircumflex ; B 28 -23 524 757 ;
-C -1 ; WX 611 ; N Zdotaccent ; B 30 0 578 922 ;
-C -1 ; WX 556 ; N scaron ; B 29 -23 520 757 ;
-C -1 ; WX 722 ; N Amacron ; B 26 0 703 898 ;
-C -1 ; WX 556 ; N sacute ; B 29 -23 520 757 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 14 -307 598 729 ;
-C -1 ; WX 667 ; N Ydieresis ; B 27 0 650 922 ;
-C -1 ; WX 611 ; N thorn ; B 58 -218 574 729 ;
-C -1 ; WX 667 ; N Emacron ; B 79 0 624 898 ;
-C -1 ; WX 778 ; N Ograve ; B 40 -23 742 936 ;
-C -1 ; WX 778 ; N Oacute ; B 40 -23 742 936 ;
-C -1 ; WX 778 ; N Odieresis ; B 40 -23 742 922 ;
-C -1 ; WX 722 ; N Ntilde ; B 68 0 661 928 ;
-C -1 ; WX 722 ; N Ncaron ; B 68 0 661 936 ;
-C -1 ; WX 722 ; N Nacute ; B 68 0 661 936 ;
-C -1 ; WX 611 ; N Lcaron ; B 80 0 579 729 ;
-C -1 ; WX 611 ; N Lacute ; B 80 0 579 936 ;
-C -1 ; WX 278 ; N Idotaccent ; B 63 0 213 922 ;
-C -1 ; WX 389 ; N racute ; B 63 0 370 757 ;
-C -1 ; WX 278 ; N Icircumflex ; B -19 0 299 936 ;
-C -1 ; WX 611 ; N ohungarumlaut ; B 35 -23 569 757 ;
-C -1 ; WX 611 ; N otilde ; B 35 -23 569 749 ;
-C -1 ; WX 556 ; N Euro ; B 6 -23 546 724 ;
-C -1 ; WX 611 ; N ocircumflex ; B 35 -23 569 757 ;
-C -1 ; WX 351 ; N onesuperior ; B 40 284 242 709 ;
-C -1 ; WX 351 ; N twosuperior ; B 16 284 328 718 ;
-C -1 ; WX 351 ; N threesuperior ; B 15 271 329 718 ;
-C -1 ; WX 278 ; N Igrave ; B -10 0 213 936 ;
-C -1 ; WX 278 ; N Iacute ; B 63 0 290 936 ;
-C -1 ; WX 278 ; N Imacron ; B 2 0 274 898 ;
-C -1 ; WX 278 ; N Iogonek ; B 34 -233 237 729 ;
-C -1 ; WX 278 ; N Idieresis ; B -9 0 287 922 ;
-C -1 ; WX 778 ; N Gbreve ; B 42 -23 711 927 ;
-C -1 ; WX 722 ; N Umacron ; B 76 -23 654 898 ;
-C -1 ; WX 722 ; N Kcommaaccent ; B 74 -307 717 729 ;
-C -1 ; WX 611 ; N ograve ; B 35 -23 569 757 ;
-C -1 ; WX 667 ; N Scommaaccent ; B 32 -307 633 741 ;
-C -1 ; WX 667 ; N Eogonek ; B 79 -233 648 729 ;
-C -1 ; WX 611 ; N oacute ; B 35 -23 569 757 ;
-C -1 ; WX 667 ; N Edotaccent ; B 79 0 624 922 ;
-C -1 ; WX 278 ; N iogonek ; B 34 -233 231 729 ;
-C -1 ; WX 611 ; N gcommaaccent ; B 34 -218 541 853 ;
-C -1 ; WX 611 ; N odieresis ; B 35 -23 569 743 ;
-C -1 ; WX 611 ; N ntilde ; B 63 0 546 749 ;
-C -1 ; WX 611 ; N ncaron ; B 63 0 546 757 ;
-C -1 ; WX 667 ; N Ecaron ; B 79 0 624 936 ;
-C -1 ; WX 667 ; N Ecircumflex ; B 79 0 624 936 ;
-C -1 ; WX 556 ; N scedilla ; B 29 -220 520 549 ;
-C -1 ; WX 389 ; N rcaron ; B 54 0 372 757 ;
-C -1 ; WX 667 ; N Egrave ; B 79 0 624 936 ;
-C -1 ; WX 667 ; N Eacute ; B 79 0 624 936 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 42 -307 711 741 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 80 -307 677 729 ;
-C -1 ; WX 667 ; N Edieresis ; B 79 0 624 922 ;
-C -1 ; WX 611 ; N nacute ; B 63 0 546 757 ;
-C -1 ; WX 611 ; N uogonek ; B 58 -233 564 540 ;
-C -1 ; WX 611 ; N umacron ; B 58 -23 541 719 ;
-C -1 ; WX 722 ; N Dcaron ; B 77 0 681 936 ;
-C -1 ; WX 369 ; N lcaron ; B 67 0 382 729 ;
-C -1 ; WX 722 ; N Ccaron ; B 44 -23 685 936 ;
-C -1 ; WX 722 ; N Cacute ; B 44 -23 685 936 ;
-C -1 ; WX 722 ; N Ccedilla ; B 44 -220 685 741 ;
-C -1 ; WX 606 ; N degree ; B 151 383 454 686 ;
-C -1 ; WX 722 ; N Aogonek ; B 26 -233 723 729 ;
-C -1 ; WX 584 ; N minus ; B 40 172 544 291 ;
-C -1 ; WX 584 ; N multiply ; B 79 18 505 444 ;
-C -1 ; WX 584 ; N divide ; B 50 -11 534 474 ;
-C -1 ; WX 722 ; N Aring ; B 26 0 703 949 ;
-C -1 ; WX 1000 ; N trademark ; B 71 273 929 729 ;
-C -1 ; WX 389 ; N rcommaaccent ; B 63 -307 370 549 ;
-C -1 ; WX 278 ; N lacute ; B 67 0 278 936 ;
-C -1 ; WX 611 ; N omacron ; B 35 -23 569 719 ;
-C -1 ; WX 722 ; N Atilde ; B 26 0 703 928 ;
-C -1 ; WX 278 ; N icircumflex ; B -19 0 299 757 ;
-C -1 ; WX 278 ; N igrave ; B -10 0 207 757 ;
-C -1 ; WX 611 ; N ncommaaccent ; B 63 -307 546 549 ;
-C -1 ; WX 278 ; N lcommaaccent ; B 67 -307 207 729 ;
-C -1 ; WX 584 ; N plusminus ; B 56 -16 527 608 ;
-C -1 ; WX 869 ; N onehalf ; B 40 -20 846 715 ;
-C -1 ; WX 869 ; N onequarter ; B 40 -20 850 715 ;
-C -1 ; WX 869 ; N threequarters ; B 15 -20 850 718 ;
-C -1 ; WX 278 ; N iacute ; B 67 0 290 757 ;
-C -1 ; WX 722 ; N Abreve ; B 26 0 703 927 ;
-C -1 ; WX 556 ; N kcommaaccent ; B 59 -307 548 729 ;
-C -1 ; WX 778 ; N Omacron ; B 40 -23 742 898 ;
-C -1 ; WX 278 ; N imacron ; B 7 0 266 719 ;
-C -1 ; WX 556 ; N emacron ; B 22 -23 525 719 ;
-C -1 ; WX 556 ; N amacron ; B 28 -23 524 719 ;
-C -1 ; WX 333 ; N tcommaaccent ; B 14 -307 301 674 ;
-C -1 ; WX 556 ; N ydieresis ; B 9 -219 538 743 ;
-C -1 ; WX 500 ; N zdotaccent ; B 21 0 468 743 ;
-C -1 ; WX 500 ; N zcaron ; B 21 0 468 757 ;
-C -1 ; WX 500 ; N zacute ; B 21 0 468 757 ;
-C -1 ; WX 556 ; N yacute ; B 9 -219 538 757 ;
-C -1 ; WX 611 ; N uhungarumlaut ; B 58 -23 559 757 ;
-C -1 ; WX 611 ; N eth ; B 35 -23 569 744 ;
-C -1 ; WX 611 ; N uring ; B 58 -23 541 770 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 40 -23 742 936 ;
-C -1 ; WX 333 ; N commaaccent ; B 112 -307 234 -60 ;
-C -1 ; WX 737 ; N copyright ; B -14 -22 751 743 ;
-C -1 ; WX 737 ; N registered ; B -14 -22 751 743 ;
-C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ;
-C -1 ; WX 278 ; N idieresis ; B -9 0 287 743 ;
-C -1 ; WX 489 ; N lozenge ; B 16 0 462 744 ;
-C -1 ; WX 729 ; N Delta ; B 8 0 721 729 ;
-C -1 ; WX 548 ; N notequal ; B 50 -69 534 528 ;
-C -1 ; WX 542 ; N radical ; B 7 -36 512 913 ;
-C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ;
-C -1 ; WX 722 ; N Aacute ; B 26 0 703 936 ;
-C -1 ; WX 584 ; N lessequal ; B 45 -10 534 639 ;
-C -1 ; WX 584 ; N greaterequal ; B 45 -10 534 639 ;
-C -1 ; WX 584 ; N logicalnot ; B 40 86 544 375 ;
-C -1 ; WX 711 ; N summation ; B 17 -96 694 760 ;
-C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B 68 -307 661 729 ;
-C -1 ; WX 611 ; N dcroat ; B 29 -23 605 729 ;
-C -1 ; WX 280 ; N brokenbar ; B 100 -200 180 729 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B 80 -307 579 729 ;
-C -1 ; WX 722 ; N Adieresis ; B 26 0 703 922 ;
-C -1 ; WX 611 ; N mu ; B 58 -220 573 540 ;
-C -1 ; WX 278 ; N .notdef ; B 214 0 214 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -33
-KPX A Ccedilla -33
-KPX A G -35
-KPX A O -34
-KPX A Odieresis -34
-KPX A Q -35
-KPX A T -81
-KPX A U -32
-KPX A Uacute -32
-KPX A Ucircumflex -32
-KPX A Udieresis -32
-KPX A Ugrave -32
-KPX A V -66
-KPX A W -51
-KPX A Y -90
-KPX A a -1
-KPX A b -1
-KPX A c -14
-KPX A ccedilla -14
-KPX A comma 19
-KPX A d -13
-KPX A e -9
-KPX A g -14
-KPX A guillemotleft -43
-KPX A guilsinglleft -40
-KPX A hyphen 7
-KPX A o -16
-KPX A period 19
-KPX A q -12
-KPX A quotedblright -65
-KPX A quoteright -61
-KPX A t -18
-KPX A u -12
-KPX A v -37
-KPX A w -23
-KPX A y -35
-KPX Aacute C -33
-KPX Aacute G -35
-KPX Aacute O -34
-KPX Aacute Q -35
-KPX Aacute T -81
-KPX Aacute U -32
-KPX Aacute V -66
-KPX Aacute W -51
-KPX Aacute Y -90
-KPX Aacute a -1
-KPX Aacute b -1
-KPX Aacute c -14
-KPX Aacute comma 19
-KPX Aacute d -13
-KPX Aacute e -9
-KPX Aacute g -14
-KPX Aacute guillemotleft -43
-KPX Aacute guilsinglleft -40
-KPX Aacute hyphen 7
-KPX Aacute o -16
-KPX Aacute period 19
-KPX Aacute q -12
-KPX Aacute quoteright -61
-KPX Aacute t -18
-KPX Aacute u -12
-KPX Aacute v -37
-KPX Aacute w -23
-KPX Aacute y -35
-KPX Acircumflex C -33
-KPX Acircumflex G -35
-KPX Acircumflex O -34
-KPX Acircumflex Q -35
-KPX Acircumflex T -81
-KPX Acircumflex U -32
-KPX Acircumflex V -66
-KPX Acircumflex W -51
-KPX Acircumflex Y -90
-KPX Acircumflex comma 19
-KPX Acircumflex period 19
-KPX Adieresis C -33
-KPX Adieresis G -35
-KPX Adieresis O -34
-KPX Adieresis Q -35
-KPX Adieresis T -81
-KPX Adieresis U -32
-KPX Adieresis V -66
-KPX Adieresis W -51
-KPX Adieresis Y -90
-KPX Adieresis a -1
-KPX Adieresis b -1
-KPX Adieresis c -14
-KPX Adieresis comma 19
-KPX Adieresis d -13
-KPX Adieresis g -14
-KPX Adieresis guillemotleft -43
-KPX Adieresis guilsinglleft -40
-KPX Adieresis hyphen 7
-KPX Adieresis o -16
-KPX Adieresis period 19
-KPX Adieresis q -12
-KPX Adieresis quotedblright -65
-KPX Adieresis quoteright -61
-KPX Adieresis t -18
-KPX Adieresis u -12
-KPX Adieresis v -37
-KPX Adieresis w -23
-KPX Adieresis y -35
-KPX Agrave C -33
-KPX Agrave G -35
-KPX Agrave O -34
-KPX Agrave Q -35
-KPX Agrave T -81
-KPX Agrave U -32
-KPX Agrave V -66
-KPX Agrave W -51
-KPX Agrave Y -90
-KPX Agrave comma 19
-KPX Agrave period 19
-KPX Aring C -33
-KPX Aring G -35
-KPX Aring O -34
-KPX Aring Q -35
-KPX Aring T -81
-KPX Aring U -32
-KPX Aring V -66
-KPX Aring W -51
-KPX Aring Y -90
-KPX Aring a -1
-KPX Aring b -1
-KPX Aring c -14
-KPX Aring comma 19
-KPX Aring d -13
-KPX Aring e -9
-KPX Aring g -14
-KPX Aring guillemotleft -43
-KPX Aring guilsinglleft -40
-KPX Aring hyphen 7
-KPX Aring o -16
-KPX Aring period 19
-KPX Aring q -12
-KPX Aring quotedblright -65
-KPX Aring quoteright -61
-KPX Aring t -18
-KPX Aring u -12
-KPX Aring v -37
-KPX Aring w -23
-KPX Aring y -35
-KPX Atilde C -33
-KPX Atilde G -35
-KPX Atilde O -34
-KPX Atilde Q -35
-KPX Atilde T -81
-KPX Atilde U -32
-KPX Atilde V -66
-KPX Atilde W -51
-KPX Atilde Y -90
-KPX Atilde comma 19
-KPX Atilde period 19
-KPX B A -32
-KPX B AE -20
-KPX B Aacute -32
-KPX B Acircumflex -32
-KPX B Adieresis -32
-KPX B Aring -32
-KPX B Atilde -32
-KPX B O -11
-KPX B OE -2
-KPX B Oacute -11
-KPX B Ocircumflex -11
-KPX B Odieresis -11
-KPX B Ograve -11
-KPX B Oslash -5
-KPX B V -39
-KPX B W -27
-KPX B Y -51
-KPX C A -29
-KPX C AE -17
-KPX C Aacute -29
-KPX C Adieresis -29
-KPX C Aring -29
-KPX C H 5
-KPX C K 2
-KPX C O -6
-KPX C Oacute -6
-KPX C Odieresis -6
-KPX Ccedilla A -28
-KPX D A -37
-KPX D Aacute -37
-KPX D Acircumflex -37
-KPX D Adieresis -37
-KPX D Agrave -37
-KPX D Aring -37
-KPX D Atilde -37
-KPX D J 2
-KPX D T -17
-KPX D V -35
-KPX D W -20
-KPX D X -35
-KPX D Y -56
-KPX F A -63
-KPX F Aacute -63
-KPX F Acircumflex -63
-KPX F Adieresis -63
-KPX F Agrave -63
-KPX F Aring -63
-KPX F Atilde -63
-KPX F J -25
-KPX F O -16
-KPX F Odieresis -16
-KPX F a -15
-KPX F aacute -15
-KPX F adieresis -15
-KPX F ae -17
-KPX F aring -15
-KPX F comma -76
-KPX F e -7
-KPX F eacute -7
-KPX F hyphen 11
-KPX F i -7
-KPX F j -9
-KPX F o -14
-KPX F oacute -14
-KPX F odieresis -14
-KPX F oe -8
-KPX F oslash -15
-KPX F period -75
-KPX F r -27
-KPX F u -24
-KPX G A -8
-KPX G AE 4
-KPX G Aacute -8
-KPX G Acircumflex -8
-KPX G Adieresis -8
-KPX G Agrave -8
-KPX G Aring -8
-KPX G Atilde -8
-KPX G T -17
-KPX G V -36
-KPX G W -20
-KPX G Y -56
-KPX J A -32
-KPX J AE -20
-KPX J Adieresis -32
-KPX J Aring -32
-KPX K C -53
-KPX K G -55
-KPX K O -54
-KPX K OE -44
-KPX K Oacute -54
-KPX K Odieresis -54
-KPX K S -30
-KPX K T 13
-KPX K a -3
-KPX K adieresis -3
-KPX K ae 0
-KPX K aring -3
-KPX K e -25
-KPX K hyphen -44
-KPX K o -33
-KPX K oacute -33
-KPX K odieresis -33
-KPX K u -23
-KPX K udieresis -23
-KPX K y -65
-KPX L A 9
-KPX L AE 21
-KPX L Aacute 9
-KPX L Adieresis 9
-KPX L Aring 9
-KPX L C -26
-KPX L Ccedilla -26
-KPX L G -30
-KPX L O -29
-KPX L Oacute -29
-KPX L Ocircumflex -29
-KPX L Odieresis -29
-KPX L Ograve -29
-KPX L Otilde -29
-KPX L S -2
-KPX L T -95
-KPX L U -24
-KPX L Udieresis -24
-KPX L V -90
-KPX L W -68
-KPX L Y -112
-KPX L hyphen -12
-KPX L quotedblright -141
-KPX L quoteright -138
-KPX L u -7
-KPX L udieresis -7
-KPX L y -55
-KPX N A -5
-KPX N AE 7
-KPX N Aacute -5
-KPX N Adieresis -5
-KPX N Aring -5
-KPX N C 9
-KPX N Ccedilla 9
-KPX N G 8
-KPX N O 8
-KPX N Oacute 8
-KPX N Odieresis 8
-KPX N a 13
-KPX N aacute 13
-KPX N adieresis 13
-KPX N ae 13
-KPX N aring 13
-KPX N comma 15
-KPX N e 18
-KPX N eacute 18
-KPX N o 11
-KPX N oacute 11
-KPX N odieresis 11
-KPX N oslash 11
-KPX N period 16
-KPX N u 12
-KPX N udieresis 12
-KPX O A -37
-KPX O AE -26
-KPX O Aacute -37
-KPX O Adieresis -37
-KPX O Aring -37
-KPX O T -20
-KPX O V -36
-KPX O W -21
-KPX O X -36
-KPX O Y -59
-KPX Oacute A -37
-KPX Oacute T -20
-KPX Oacute V -36
-KPX Oacute W -21
-KPX Oacute Y -59
-KPX Ocircumflex T -20
-KPX Ocircumflex V -36
-KPX Ocircumflex Y -59
-KPX Odieresis A -37
-KPX Odieresis T -20
-KPX Odieresis V -36
-KPX Odieresis W -21
-KPX Odieresis X -36
-KPX Odieresis Y -59
-KPX Ograve T -20
-KPX Ograve V -36
-KPX Ograve Y -59
-KPX Oslash A -32
-KPX Otilde T -20
-KPX Otilde V -36
-KPX Otilde Y -59
-KPX P A -65
-KPX P AE -54
-KPX P Aacute -65
-KPX P Adieresis -65
-KPX P Aring -65
-KPX P J -44
-KPX P a -7
-KPX P aacute -7
-KPX P adieresis -7
-KPX P ae -8
-KPX P aring -7
-KPX P comma -94
-KPX P e -8
-KPX P eacute -8
-KPX P hyphen 0
-KPX P o -14
-KPX P oacute -14
-KPX P odieresis -14
-KPX P oe -8
-KPX P oslash -17
-KPX P period -94
-KPX R C -5
-KPX R Ccedilla -5
-KPX R G -6
-KPX R O -6
-KPX R OE 3
-KPX R Oacute -6
-KPX R Odieresis -6
-KPX R T 0
-KPX R U -4
-KPX R Udieresis -4
-KPX R V -26
-KPX R W -17
-KPX R Y -37
-KPX R a 0
-KPX R aacute 0
-KPX R adieresis 0
-KPX R ae 0
-KPX R aring 0
-KPX R e 2
-KPX R eacute 2
-KPX R hyphen 15
-KPX R o -4
-KPX R oacute -4
-KPX R odieresis -4
-KPX R oe 1
-KPX R u 0
-KPX R uacute 0
-KPX R udieresis 0
-KPX R y 5
-KPX S A -20
-KPX S AE -8
-KPX S Aacute -20
-KPX S Adieresis -20
-KPX S Aring -20
-KPX S T -5
-KPX S V -31
-KPX S W -17
-KPX S Y -43
-KPX S t 1
-KPX T A -87
-KPX T AE -75
-KPX T Aacute -87
-KPX T Acircumflex -87
-KPX T Adieresis -87
-KPX T Agrave -87
-KPX T Aring -87
-KPX T Atilde -87
-KPX T C -20
-KPX T G -22
-KPX T J -87
-KPX T O -22
-KPX T OE -11
-KPX T Oacute -22
-KPX T Ocircumflex -22
-KPX T Odieresis -22
-KPX T Ograve -22
-KPX T Oslash -23
-KPX T Otilde -22
-KPX T S 3
-KPX T V 18
-KPX T W 24
-KPX T Y 16
-KPX T a -73
-KPX T ae -73
-KPX T c -74
-KPX T colon -97
-KPX T comma -67
-KPX T e -69
-KPX T g -75
-KPX T guillemotleft -101
-KPX T guilsinglleft -98
-KPX T hyphen -48
-KPX T i -1
-KPX T j -3
-KPX T o -76
-KPX T oslash -73
-KPX T period -67
-KPX T r -71
-KPX T s -74
-KPX T semicolon -98
-KPX T u -72
-KPX T v -82
-KPX T w -77
-KPX T y -80
-KPX U A -34
-KPX U AE -22
-KPX U Aacute -34
-KPX U Acircumflex -34
-KPX U Adieresis -34
-KPX U Aring -34
-KPX U Atilde -34
-KPX U comma -7
-KPX U m 6
-KPX U n 5
-KPX U p 7
-KPX U period -4
-KPX U r 5
-KPX Uacute A -34
-KPX Uacute comma -7
-KPX Uacute m 6
-KPX Uacute n 5
-KPX Uacute p 7
-KPX Uacute period -4
-KPX Uacute r 5
-KPX Ucircumflex A -34
-KPX Udieresis A -34
-KPX Udieresis b 6
-KPX Udieresis comma -7
-KPX Udieresis m 6
-KPX Udieresis n 5
-KPX Udieresis p 7
-KPX Udieresis period -4
-KPX Udieresis r 5
-KPX Ugrave A -34
-KPX V A -71
-KPX V AE -59
-KPX V Aacute -71
-KPX V Acircumflex -71
-KPX V Adieresis -71
-KPX V Agrave -71
-KPX V Aring -71
-KPX V Atilde -71
-KPX V C -36
-KPX V G -38
-KPX V O -37
-KPX V Oacute -37
-KPX V Ocircumflex -37
-KPX V Odieresis -37
-KPX V Ograve -37
-KPX V Oslash -31
-KPX V Otilde -37
-KPX V S -21
-KPX V T 21
-KPX V a -47
-KPX V ae -48
-KPX V colon -65
-KPX V comma -69
-KPX V e -43
-KPX V g -49
-KPX V guillemotleft -74
-KPX V guilsinglleft -72
-KPX V hyphen -21
-KPX V i -5
-KPX V o -50
-KPX V oslash -48
-KPX V period -69
-KPX V r -34
-KPX V semicolon -67
-KPX V u -34
-KPX V y -10
-KPX W A -54
-KPX W AE -43
-KPX W Aacute -54
-KPX W Acircumflex -54
-KPX W Adieresis -54
-KPX W Agrave -54
-KPX W Aring -54
-KPX W Atilde -54
-KPX W C -20
-KPX W G -22
-KPX W O -21
-KPX W Oacute -21
-KPX W Ocircumflex -21
-KPX W Odieresis -21
-KPX W Ograve -21
-KPX W Oslash -15
-KPX W Otilde -21
-KPX W S -12
-KPX W T 25
-KPX W a -29
-KPX W ae -29
-KPX W colon -53
-KPX W comma -45
-KPX W e -24
-KPX W g -30
-KPX W guillemotleft -55
-KPX W guilsinglleft -53
-KPX W hyphen -3
-KPX W i -1
-KPX W o -31
-KPX W oslash -29
-KPX W period -45
-KPX W r -24
-KPX W semicolon -54
-KPX W u -23
-KPX W y 0
-KPX X C -34
-KPX X O -35
-KPX X Odieresis -35
-KPX X Q -37
-KPX X a -5
-KPX X e -25
-KPX X hyphen -27
-KPX X o -32
-KPX X u -25
-KPX X y -40
-KPX Y A -86
-KPX Y AE -74
-KPX Y Aacute -86
-KPX Y Acircumflex -86
-KPX Y Adieresis -86
-KPX Y Agrave -86
-KPX Y Aring -86
-KPX Y Atilde -86
-KPX Y C -52
-KPX Y G -54
-KPX Y O -54
-KPX Y Oacute -54
-KPX Y Ocircumflex -54
-KPX Y Odieresis -54
-KPX Y Ograve -54
-KPX Y Oslash -47
-KPX Y Otilde -54
-KPX Y S -29
-KPX Y T 22
-KPX Y a -66
-KPX Y ae -67
-KPX Y colon -81
-KPX Y comma -78
-KPX Y e -63
-KPX Y g -68
-KPX Y guillemotleft -98
-KPX Y guilsinglleft -96
-KPX Y hyphen -50
-KPX Y i -3
-KPX Y o -70
-KPX Y oslash -67
-KPX Y p -45
-KPX Y period -78
-KPX Y semicolon -83
-KPX Y u -48
-KPX Y v -27
-KPX Z v -11
-KPX Z y -9
-KPX a j -1
-KPX a quoteright -11
-KPX a v -19
-KPX a w -5
-KPX a y -17
-KPX aacute v -19
-KPX aacute w -5
-KPX aacute y -17
-KPX adieresis v -19
-KPX adieresis w -5
-KPX adieresis y -17
-KPX ae v -21
-KPX ae w -7
-KPX ae y -19
-KPX agrave v -19
-KPX agrave w -5
-KPX agrave y -17
-KPX aring v -19
-KPX aring w -5
-KPX aring y -17
-KPX b v -20
-KPX b w -7
-KPX b y -20
-KPX c h 0
-KPX c k 3
-KPX comma one -73
-KPX comma quotedblright -33
-KPX comma quoteright -30
-KPX e quoteright -12
-KPX e t -4
-KPX e v -19
-KPX e w -6
-KPX e x -21
-KPX e y -17
-KPX eacute v -19
-KPX eacute w -6
-KPX eacute y -17
-KPX ecircumflex v -19
-KPX ecircumflex w -6
-KPX ecircumflex y -17
-KPX eight four 10
-KPX eight one -23
-KPX eight seven -6
-KPX f a 1
-KPX f aacute 1
-KPX f adieresis 1
-KPX f ae 0
-KPX f aring 1
-KPX f e -3
-KPX f eacute -3
-KPX f f 21
-KPX f i -3
-KPX f j -6
-KPX f l -3
-KPX f o -9
-KPX f oacute -9
-KPX f odieresis -9
-KPX f oe -3
-KPX f oslash -9
-KPX f quoteright 10
-KPX f s -1
-KPX f t 21
-KPX five four 6
-KPX five one -29
-KPX five seven -10
-KPX four four 9
-KPX four one -50
-KPX four seven -28
-KPX g a 3
-KPX g adieresis 3
-KPX g ae 3
-KPX g aring 3
-KPX g e 8
-KPX g eacute 8
-KPX g l 0
-KPX g oacute 1
-KPX g odieresis 1
-KPX g r 1
-KPX guillemotright A -51
-KPX guillemotright AE -39
-KPX guillemotright Aacute -51
-KPX guillemotright Adieresis -51
-KPX guillemotright Aring -51
-KPX guillemotright T -108
-KPX guillemotright V -78
-KPX guillemotright W -60
-KPX guillemotright Y -111
-KPX guilsinglright A -46
-KPX guilsinglright AE -35
-KPX guilsinglright Aacute -46
-KPX guilsinglright Adieresis -46
-KPX guilsinglright Aring -46
-KPX guilsinglright T -104
-KPX guilsinglright V -74
-KPX guilsinglright W -56
-KPX guilsinglright Y -107
-KPX h quoteright -14
-KPX h y -21
-KPX hyphen A -1
-KPX hyphen AE 10
-KPX hyphen Aacute -1
-KPX hyphen Adieresis -1
-KPX hyphen Aring -1
-KPX hyphen T -57
-KPX hyphen V -27
-KPX hyphen W -9
-KPX hyphen Y -64
-KPX i T -4
-KPX i j -2
-KPX k a -2
-KPX k aacute -2
-KPX k adieresis -2
-KPX k ae 1
-KPX k aring -2
-KPX k comma 7
-KPX k e -15
-KPX k eacute -15
-KPX k g -21
-KPX k hyphen -25
-KPX k o -22
-KPX k oacute -22
-KPX k odieresis -22
-KPX k period 6
-KPX k s -10
-KPX k u -1
-KPX k udieresis -1
-KPX l v -5
-KPX l y -2
-KPX m p 6
-KPX m v -19
-KPX m w -6
-KPX m y -18
-KPX n T -80
-KPX n p 5
-KPX n quoteright -12
-KPX n v -20
-KPX n w -7
-KPX n y -19
-KPX nine four 4
-KPX nine one -21
-KPX nine seven -17
-KPX o T -84
-KPX o quoteright -17
-KPX o t -8
-KPX o v -23
-KPX o w -10
-KPX o x -25
-KPX o y -22
-KPX oacute v -23
-KPX oacute w -10
-KPX oacute y -22
-KPX ocircumflex t -8
-KPX odieresis t -8
-KPX odieresis v -23
-KPX odieresis w -10
-KPX odieresis x -25
-KPX odieresis y -22
-KPX ograve v -23
-KPX ograve w -10
-KPX ograve y -22
-KPX one comma -42
-KPX one eight -37
-KPX one five -43
-KPX one four -56
-KPX one nine -39
-KPX one one -85
-KPX one period -42
-KPX one seven -65
-KPX one six -37
-KPX one three -44
-KPX one two -47
-KPX one zero -34
-KPX p t -5
-KPX p y -20
-KPX period one -73
-KPX period quotedblright -32
-KPX period quoteright -29
-KPX q c 4
-KPX q u 4
-KPX quotedblbase A 12
-KPX quotedblbase AE 24
-KPX quotedblbase T -75
-KPX quotedblbase V -73
-KPX quotedblbase W -51
-KPX quotedblbase Y -92
-KPX quotedblleft A -68
-KPX quotedblleft AE -57
-KPX quotedblleft Aacute -68
-KPX quotedblleft Adieresis -68
-KPX quotedblleft Aring -68
-KPX quotedblleft T -2
-KPX quotedblleft V 6
-KPX quotedblleft W 16
-KPX quotedblleft Y -9
-KPX quotedblright A -69
-KPX quotedblright AE -57
-KPX quotedblright Aacute -69
-KPX quotedblright Adieresis -69
-KPX quotedblright Aring -69
-KPX quotedblright T 1
-KPX quotedblright V 7
-KPX quotedblright W 17
-KPX quotedblright Y -7
-KPX quoteleft A -73
-KPX quoteleft AE -62
-KPX quoteleft Aacute -73
-KPX quoteleft Adieresis -73
-KPX quoteleft Aring -73
-KPX quoteleft T -7
-KPX quoteleft V 2
-KPX quoteleft W 11
-KPX quoteleft Y -13
-KPX quoteright A -77
-KPX quoteright AE -66
-KPX quoteright Aacute -77
-KPX quoteright Adieresis -77
-KPX quoteright Aring -77
-KPX quoteright comma -46
-KPX quoteright d -27
-KPX quoteright o -30
-KPX quoteright period -45
-KPX quoteright r -15
-KPX quoteright s -22
-KPX quoteright t -4
-KPX quoteright v -5
-KPX quoteright w 1
-KPX quoteright y -3
-KPX r a 6
-KPX r aacute 6
-KPX r acircumflex 6
-KPX r adieresis 6
-KPX r ae 4
-KPX r agrave 6
-KPX r aring 6
-KPX r c 0
-KPX r ccedilla 0
-KPX r colon -27
-KPX r comma -57
-KPX r d 0
-KPX r e 4
-KPX r eacute 4
-KPX r ecircumflex 4
-KPX r egrave 4
-KPX r f 22
-KPX r g -2
-KPX r h -4
-KPX r hyphen -35
-KPX r i -4
-KPX r j -6
-KPX r k 0
-KPX r l -4
-KPX r m -1
-KPX r n -2
-KPX r o -1
-KPX r oacute -1
-KPX r ocircumflex -1
-KPX r odieresis -1
-KPX r oe 5
-KPX r ograve -1
-KPX r oslash -4
-KPX r p 0
-KPX r period -57
-KPX r q 1
-KPX r quoteright 14
-KPX r r -2
-KPX r s 3
-KPX r semicolon -27
-KPX r t 22
-KPX r u 0
-KPX r v 21
-KPX r w 26
-KPX r x 17
-KPX r y 23
-KPX r z 9
-KPX s quoteright -12
-KPX s t -1
-KPX seven colon -63
-KPX seven comma -88
-KPX seven eight -3
-KPX seven five -21
-KPX seven four -62
-KPX seven one -14
-KPX seven period -87
-KPX seven seven 9
-KPX seven six -13
-KPX seven three 0
-KPX seven two -4
-KPX six four 7
-KPX six one -21
-KPX six seven -3
-KPX t S 0
-KPX t a 6
-KPX t aacute 6
-KPX t adieresis 6
-KPX t ae 7
-KPX t aring 6
-KPX t colon -25
-KPX t e -3
-KPX t eacute -3
-KPX t h 2
-KPX t o -10
-KPX t oacute -10
-KPX t odieresis -10
-KPX t quoteright 4
-KPX t semicolon -25
-KPX three four 6
-KPX three one -27
-KPX three seven -10
-KPX two four -9
-KPX two one -16
-KPX two seven -3
-KPX u quoteright -2
-KPX v a -15
-KPX v aacute -15
-KPX v acircumflex -15
-KPX v adieresis -15
-KPX v ae -16
-KPX v agrave -15
-KPX v aring -15
-KPX v atilde -15
-KPX v c -20
-KPX v colon -32
-KPX v comma -51
-KPX v e -15
-KPX v eacute -15
-KPX v ecircumflex -15
-KPX v egrave -15
-KPX v g -21
-KPX v hyphen 0
-KPX v l -5
-KPX v o -22
-KPX v oacute -22
-KPX v odieresis -22
-KPX v ograve -22
-KPX v oslash -20
-KPX v period -50
-KPX v s -17
-KPX v semicolon -34
-KPX w a -7
-KPX w aacute -7
-KPX w acircumflex -7
-KPX w adieresis -7
-KPX w ae -8
-KPX w agrave -7
-KPX w aring -7
-KPX w atilde -7
-KPX w c -8
-KPX w colon -27
-KPX w comma -33
-KPX w e -3
-KPX w eacute -3
-KPX w ecircumflex -3
-KPX w egrave -3
-KPX w g -9
-KPX w hyphen 11
-KPX w l -1
-KPX w o -10
-KPX w oacute -10
-KPX w odieresis -10
-KPX w ograve -10
-KPX w oslash -8
-KPX w period -32
-KPX w s -9
-KPX w semicolon -29
-KPX x a -9
-KPX x c -22
-KPX x e -17
-KPX x eacute -17
-KPX x o -24
-KPX x q -20
-KPX y a -14
-KPX y aacute -14
-KPX y acircumflex -14
-KPX y adieresis -14
-KPX y ae -15
-KPX y agrave -14
-KPX y aring -14
-KPX y atilde -14
-KPX y c -21
-KPX y colon -31
-KPX y comma -51
-KPX y e -16
-KPX y eacute -16
-KPX y ecircumflex -16
-KPX y egrave -16
-KPX y g -21
-KPX y hyphen 0
-KPX y l -4
-KPX y o -22
-KPX y oacute -22
-KPX y odieresis -22
-KPX y ograve -22
-KPX y oslash -20
-KPX y period -50
-KPX y s -16
-KPX y semicolon -33
-KPX zero four 5
-KPX zero one -19
-KPX zero seven -10
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019004l.pfb b/Master/xemtex/gsfonts/n019004l.pfb
deleted file mode 100644
index d86ba79ca94..00000000000
--- a/Master/xemtex/gsfonts/n019004l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019004l.pfm b/Master/xemtex/gsfonts/n019004l.pfm
deleted file mode 100644
index 53d42aab610..00000000000
--- a/Master/xemtex/gsfonts/n019004l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019023l.afm b/Master/xemtex/gsfonts/n019023l.afm
deleted file mode 100644
index 00eb42f6dcf..00000000000
--- a/Master/xemtex/gsfonts/n019023l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-ReguItal
-FullName Nimbus Sans L Regular Italic
-FamilyName Nimbus Sans L
-Weight Regular
-ItalicAngle -12.0
-IsFixedPitch false
-UnderlinePosition -151
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -178 -284 1108 953
-CapHeight 729
-XHeight 524
-Descender -213
-Ascender 729
-StartCharMetrics 316
-C 32 ; WX 278 ; N space ; B 213 0 213 0 ;
-C 33 ; WX 278 ; N exclam ; B 124 0 363 729 ;
-C 34 ; WX 355 ; N quotedbl ; B 177 464 455 709 ;
-C 35 ; WX 556 ; N numbersign ; B 54 -20 649 697 ;
-C 36 ; WX 556 ; N dollar ; B 69 -126 613 770 ;
-C 37 ; WX 889 ; N percent ; B 134 -20 895 709 ;
-C 38 ; WX 667 ; N ampersand ; B 83 -23 644 709 ;
-C 39 ; WX 222 ; N quoteright ; B 166 477 309 708 ;
-C 40 ; WX 333 ; N parenleft ; B 113 -213 446 729 ;
-C 41 ; WX 333 ; N parenright ; B -7 -213 325 729 ;
-C 42 ; WX 389 ; N asterisk ; B 169 438 471 729 ;
-C 43 ; WX 584 ; N plus ; B 92 -11 591 473 ;
-C 44 ; WX 278 ; N comma ; B 55 -150 214 103 ;
-C 45 ; WX 333 ; N hyphen ; B 97 240 351 312 ;
-C 46 ; WX 278 ; N period ; B 87 0 213 103 ;
-C 47 ; WX 278 ; N slash ; B -12 -20 434 729 ;
-C 48 ; WX 556 ; N zero ; B 98 -23 598 709 ;
-C 49 ; WX 556 ; N one ; B 208 0 498 709 ;
-C 50 ; WX 556 ; N two ; B 34 0 620 709 ;
-C 51 ; WX 556 ; N three ; B 71 -23 599 709 ;
-C 52 ; WX 556 ; N four ; B 63 0 573 709 ;
-C 53 ; WX 556 ; N five ; B 70 -23 629 709 ;
-C 54 ; WX 556 ; N six ; B 93 -23 611 709 ;
-C 55 ; WX 556 ; N seven ; B 137 0 671 709 ;
-C 56 ; WX 556 ; N eight ; B 74 -23 604 709 ;
-C 57 ; WX 556 ; N nine ; B 83 -23 599 709 ;
-C 58 ; WX 278 ; N colon ; B 110 0 326 524 ;
-C 59 ; WX 278 ; N semicolon ; B 78 -150 325 524 ;
-C 60 ; WX 584 ; N less ; B 87 -9 635 474 ;
-C 61 ; WX 584 ; N equal ; B 74 111 609 355 ;
-C 62 ; WX 584 ; N greater ; B 48 -9 596 474 ;
-C 63 ; WX 556 ; N question ; B 184 0 630 741 ;
-C 64 ; WX 1015 ; N at ; B 80 -142 1036 741 ;
-C 65 ; WX 667 ; N A ; B 17 0 653 729 ;
-C 66 ; WX 667 ; N B ; B 79 0 711 729 ;
-C 67 ; WX 722 ; N C ; B 112 -23 770 741 ;
-C 68 ; WX 722 ; N D ; B 89 0 759 729 ;
-C 69 ; WX 667 ; N E ; B 90 0 751 729 ;
-C 70 ; WX 611 ; N F ; B 90 0 734 729 ;
-C 71 ; WX 778 ; N G ; B 109 -23 809 741 ;
-C 72 ; WX 722 ; N H ; B 83 0 799 729 ;
-C 73 ; WX 278 ; N I ; B 100 0 349 729 ;
-C 74 ; WX 500 ; N J ; B 47 -23 581 729 ;
-C 75 ; WX 667 ; N K ; B 79 0 813 729 ;
-C 76 ; WX 556 ; N L ; B 80 0 551 729 ;
-C 77 ; WX 833 ; N M ; B 75 0 916 729 ;
-C 78 ; WX 722 ; N N ; B 76 0 801 729 ;
-C 79 ; WX 778 ; N O ; B 104 -23 828 741 ;
-C 80 ; WX 667 ; N P ; B 91 0 733 729 ;
-C 81 ; WX 778 ; N Q ; B 104 -59 828 741 ;
-C 82 ; WX 722 ; N R ; B 93 0 770 729 ;
-C 83 ; WX 667 ; N S ; B 89 -23 714 741 ;
-C 84 ; WX 611 ; N T ; B 158 0 748 729 ;
-C 85 ; WX 722 ; N U ; B 124 -23 800 729 ;
-C 86 ; WX 667 ; N V ; B 185 0 800 729 ;
-C 87 ; WX 944 ; N W ; B 177 0 1084 729 ;
-C 88 ; WX 667 ; N X ; B 22 0 794 729 ;
-C 89 ; WX 667 ; N Y ; B 168 0 816 729 ;
-C 90 ; WX 611 ; N Z ; B 28 0 737 729 ;
-C 91 ; WX 278 ; N bracketleft ; B 19 -213 405 729 ;
-C 92 ; WX 278 ; N backslash ; B 147 -20 280 729 ;
-C 93 ; WX 278 ; N bracketright ; B -23 -213 364 729 ;
-C 94 ; WX 469 ; N asciicircum ; B 115 329 496 709 ;
-C 95 ; WX 556 ; N underscore ; B -59 -176 551 -126 ;
-C 96 ; WX 222 ; N quoteleft ; B 163 477 308 709 ;
-C 97 ; WX 556 ; N a ; B 65 -23 568 539 ;
-C 98 ; WX 556 ; N b ; B 54 -23 588 729 ;
-C 99 ; WX 500 ; N c ; B 76 -23 554 539 ;
-C 100 ; WX 556 ; N d ; B 73 -23 650 729 ;
-C 101 ; WX 556 ; N e ; B 84 -23 580 539 ;
-C 102 ; WX 278 ; N f ; B 89 0 413 732 ;
-C 103 ; WX 556 ; N g ; B 32 -218 601 539 ;
-C 104 ; WX 556 ; N h ; B 70 0 574 729 ;
-C 105 ; WX 222 ; N i ; B 66 0 305 729 ;
-C 106 ; WX 222 ; N j ; B -65 -218 308 729 ;
-C 107 ; WX 500 ; N k ; B 58 0 584 729 ;
-C 108 ; WX 222 ; N l ; B 68 0 307 729 ;
-C 109 ; WX 833 ; N m ; B 71 0 852 539 ;
-C 110 ; WX 556 ; N n ; B 70 0 574 539 ;
-C 111 ; WX 556 ; N o ; B 80 -23 576 539 ;
-C 112 ; WX 556 ; N p ; B 7 -213 586 539 ;
-C 113 ; WX 556 ; N q ; B 71 -213 607 539 ;
-C 114 ; WX 333 ; N r ; B 69 0 436 539 ;
-C 115 ; WX 500 ; N s ; B 61 -23 520 539 ;
-C 116 ; WX 278 ; N t ; B 97 -23 366 668 ;
-C 117 ; WX 556 ; N u ; B 88 -23 594 524 ;
-C 118 ; WX 500 ; N v ; B 122 0 598 524 ;
-C 119 ; WX 722 ; N w ; B 118 0 820 524 ;
-C 120 ; WX 500 ; N x ; B 17 0 583 524 ;
-C 121 ; WX 500 ; N y ; B 8 -218 590 524 ;
-C 122 ; WX 500 ; N z ; B 31 0 557 524 ;
-C 123 ; WX 334 ; N braceleft ; B 91 -213 431 729 ;
-C 124 ; WX 260 ; N bar ; B 54 -212 315 729 ;
-C 125 ; WX 334 ; N braceright ; B -16 -213 324 729 ;
-C 126 ; WX 584 ; N asciitilde ; B 137 268 594 438 ;
-C 161 ; WX 333 ; N exclamdown ; B 76 -205 317 524 ;
-C 162 ; WX 556 ; N cent ; B 96 -120 585 628 ;
-C 163 ; WX 556 ; N sterling ; B 44 -23 628 729 ;
-C 164 ; WX 167 ; N fraction ; B -178 -20 486 709 ;
-C 165 ; WX 556 ; N yen ; B 100 0 696 709 ;
-C 166 ; WX 556 ; N florin ; B -32 -212 696 738 ;
-C 167 ; WX 556 ; N section ; B 63 -213 589 729 ;
-C 168 ; WX 556 ; N currency ; B 110 133 593 556 ;
-C 169 ; WX 191 ; N quotesingle ; B 173 464 292 709 ;
-C 170 ; WX 333 ; N quotedblleft ; B 146 477 449 709 ;
-C 171 ; WX 556 ; N guillemotleft ; B 147 106 548 438 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 140 106 336 438 ;
-C 173 ; WX 333 ; N guilsinglright ; B 109 106 307 438 ;
-C 174 ; WX 500 ; N fi ; B 83 0 591 732 ;
-C 175 ; WX 500 ; N fl ; B 88 0 585 732 ;
-C 177 ; WX 556 ; N endash ; B 46 240 628 312 ;
-C 178 ; WX 556 ; N dagger ; B 127 -177 620 709 ;
-C 179 ; WX 556 ; N daggerdbl ; B 51 -177 620 709 ;
-C 180 ; WX 278 ; N periodcentered ; B 166 192 293 295 ;
-C 182 ; WX 537 ; N paragraph ; B 145 -178 677 729 ;
-C 183 ; WX 350 ; N bullet ; B 120 220 376 470 ;
-C 184 ; WX 222 ; N quotesinglbase ; B 37 -128 180 103 ;
-C 185 ; WX 333 ; N quotedblbase ; B 20 -128 322 103 ;
-C 186 ; WX 333 ; N quotedblright ; B 150 477 452 708 ;
-C 187 ; WX 556 ; N guillemotright ; B 121 106 518 438 ;
-C 188 ; WX 1000 ; N ellipsis ; B 115 0 907 103 ;
-C 189 ; WX 1000 ; N perthousand ; B 93 -20 1024 738 ;
-C 191 ; WX 611 ; N questiondown ; B 86 -217 531 524 ;
-C 193 ; WX 333 ; N grave ; B 179 592 357 740 ;
-C 194 ; WX 333 ; N acute ; B 218 592 458 740 ;
-C 195 ; WX 333 ; N circumflex ; B 146 591 433 741 ;
-C 196 ; WX 333 ; N tilde ; B 130 611 471 719 ;
-C 197 ; WX 333 ; N macron ; B 160 627 450 696 ;
-C 198 ; WX 333 ; N breve ; B 165 594 471 729 ;
-C 199 ; WX 333 ; N dotaccent ; B 244 612 370 715 ;
-C 200 ; WX 333 ; N dieresis ; B 159 612 446 715 ;
-C 202 ; WX 333 ; N ring ; B 216 579 396 754 ;
-C 203 ; WX 333 ; N cedilla ; B 1 -214 264 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 91 590 505 740 ;
-C 206 ; WX 333 ; N ogonek ; B 35 -205 246 0 ;
-C 207 ; WX 333 ; N caron ; B 176 592 463 740 ;
-C 208 ; WX 1000 ; N emdash ; B 42 240 1068 312 ;
-C 225 ; WX 1000 ; N AE ; B 11 0 1087 729 ;
-C 227 ; WX 370 ; N ordfeminine ; B 107 303 441 742 ;
-C 232 ; WX 556 ; N Lslash ; B 75 0 570 729 ;
-C 233 ; WX 778 ; N Oslash ; B 32 -24 867 741 ;
-C 234 ; WX 1000 ; N OE ; B 101 -23 1108 741 ;
-C 235 ; WX 365 ; N ordmasculine ; B 114 303 452 742 ;
-C 241 ; WX 889 ; N ae ; B 59 -23 915 539 ;
-C 245 ; WX 278 ; N dotlessi ; B 94 0 290 527 ;
-C 248 ; WX 222 ; N lslash ; B 62 0 312 729 ;
-C 249 ; WX 611 ; N oslash ; B 19 -30 639 541 ;
-C 250 ; WX 944 ; N oe ; B 85 -23 966 539 ;
-C 251 ; WX 611 ; N germandbls ; B 126 -23 655 729 ;
-C -1 ; WX 722 ; N Udieresis ; B 124 -23 800 914 ;
-C -1 ; WX 722 ; N Uacute ; B 124 -23 800 939 ;
-C -1 ; WX 667 ; N Scedilla ; B 89 -214 714 741 ;
-C -1 ; WX 611 ; N Tcaron ; B 158 0 748 939 ;
-C -1 ; WX 667 ; N Scaron ; B 89 -23 714 939 ;
-C -1 ; WX 722 ; N Rcaron ; B 93 0 770 939 ;
-C -1 ; WX 722 ; N Racute ; B 93 0 770 939 ;
-C -1 ; WX 667 ; N Sacute ; B 89 -23 714 939 ;
-C -1 ; WX 778 ; N Otilde ; B 104 -23 828 918 ;
-C -1 ; WX 556 ; N ucircumflex ; B 88 -23 594 741 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 104 -23 841 939 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 124 -23 806 939 ;
-C -1 ; WX 667 ; N Yacute ; B 168 0 816 939 ;
-C -1 ; WX 722 ; N Eth ; B 89 0 759 729 ;
-C -1 ; WX 722 ; N Dcroat ; B 89 0 759 729 ;
-C -1 ; WX 611 ; N Zacute ; B 28 0 737 939 ;
-C -1 ; WX 722 ; N Uring ; B 124 -23 800 953 ;
-C -1 ; WX 556 ; N gbreve ; B 32 -218 601 729 ;
-C -1 ; WX 556 ; N eogonek ; B 84 -205 580 539 ;
-C -1 ; WX 556 ; N edotaccent ; B 84 -23 580 715 ;
-C -1 ; WX 556 ; N ecaron ; B 84 -23 580 740 ;
-C -1 ; WX 722 ; N Ugrave ; B 124 -23 800 939 ;
-C -1 ; WX 667 ; N Thorn ; B 91 0 708 729 ;
-C -1 ; WX 556 ; N eacute ; B 84 -23 580 740 ;
-C -1 ; WX 556 ; N edieresis ; B 84 -23 580 715 ;
-C -1 ; WX 650 ; N dcaron ; B 73 -23 810 729 ;
-C -1 ; WX 500 ; N ccedilla ; B 76 -214 554 539 ;
-C -1 ; WX 500 ; N ccaron ; B 76 -23 563 740 ;
-C -1 ; WX 500 ; N cacute ; B 76 -23 575 740 ;
-C -1 ; WX 556 ; N aogonek ; B 65 -205 571 539 ;
-C -1 ; WX 556 ; N aring ; B 65 -23 568 754 ;
-C -1 ; WX 556 ; N atilde ; B 65 -23 583 719 ;
-C -1 ; WX 556 ; N abreve ; B 65 -23 582 729 ;
-C -1 ; WX 556 ; N egrave ; B 84 -23 580 740 ;
-C -1 ; WX 556 ; N agrave ; B 65 -23 568 740 ;
-C -1 ; WX 556 ; N aacute ; B 65 -23 570 740 ;
-C -1 ; WX 556 ; N adieresis ; B 65 -23 568 715 ;
-C -1 ; WX 722 ; N Uogonek ; B 124 -205 800 729 ;
-C -1 ; WX 556 ; N ugrave ; B 88 -23 594 740 ;
-C -1 ; WX 556 ; N uacute ; B 88 -23 594 740 ;
-C -1 ; WX 556 ; N udieresis ; B 88 -23 594 715 ;
-C -1 ; WX 319 ; N tcaron ; B 97 -23 492 801 ;
-C -1 ; WX 500 ; N scommaaccent ; B 61 -284 520 539 ;
-C -1 ; WX 611 ; N Zcaron ; B 28 0 737 939 ;
-C -1 ; WX 556 ; N ecircumflex ; B 84 -23 580 741 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 124 -23 800 940 ;
-C -1 ; WX 556 ; N acircumflex ; B 65 -23 568 741 ;
-C -1 ; WX 611 ; N Zdotaccent ; B 28 0 737 914 ;
-C -1 ; WX 500 ; N scaron ; B 61 -23 547 740 ;
-C -1 ; WX 667 ; N Amacron ; B 17 0 663 895 ;
-C -1 ; WX 500 ; N sacute ; B 61 -23 545 740 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 158 -284 748 729 ;
-C -1 ; WX 667 ; N Ydieresis ; B 168 0 816 914 ;
-C -1 ; WX 556 ; N thorn ; B 7 -213 586 729 ;
-C -1 ; WX 667 ; N Emacron ; B 90 0 751 895 ;
-C -1 ; WX 778 ; N Ograve ; B 104 -23 828 939 ;
-C -1 ; WX 778 ; N Oacute ; B 104 -23 828 939 ;
-C -1 ; WX 778 ; N Odieresis ; B 104 -23 828 914 ;
-C -1 ; WX 722 ; N Ntilde ; B 76 0 801 918 ;
-C -1 ; WX 722 ; N Ncaron ; B 76 0 801 939 ;
-C -1 ; WX 722 ; N Nacute ; B 76 0 801 939 ;
-C -1 ; WX 556 ; N Lcaron ; B 80 0 551 729 ;
-C -1 ; WX 556 ; N Lacute ; B 80 0 551 939 ;
-C -1 ; WX 278 ; N Idotaccent ; B 100 0 389 914 ;
-C -1 ; WX 333 ; N racute ; B 69 0 498 740 ;
-C -1 ; WX 278 ; N Icircumflex ; B 100 0 454 940 ;
-C -1 ; WX 556 ; N ohungarumlaut ; B 80 -23 683 740 ;
-C -1 ; WX 556 ; N otilde ; B 80 -23 583 719 ;
-C -1 ; WX 556 ; N Euro ; B 12 -22 636 709 ;
-C -1 ; WX 556 ; N ocircumflex ; B 80 -23 576 741 ;
-C -1 ; WX 390 ; N onesuperior ; B 205 284 393 709 ;
-C -1 ; WX 390 ; N twosuperior ; B 100 284 468 709 ;
-C -1 ; WX 390 ; N threesuperior ; B 123 270 455 709 ;
-C -1 ; WX 278 ; N Igrave ; B 100 0 378 939 ;
-C -1 ; WX 278 ; N Iacute ; B 100 0 479 939 ;
-C -1 ; WX 278 ; N Imacron ; B 100 0 458 895 ;
-C -1 ; WX 278 ; N Iogonek ; B 28 -205 349 729 ;
-C -1 ; WX 278 ; N Idieresis ; B 100 0 467 907 ;
-C -1 ; WX 778 ; N Gbreve ; B 109 -23 809 928 ;
-C -1 ; WX 722 ; N Umacron ; B 124 -23 800 895 ;
-C -1 ; WX 667 ; N Kcommaaccent ; B 79 -284 813 729 ;
-C -1 ; WX 556 ; N ograve ; B 80 -23 576 740 ;
-C -1 ; WX 667 ; N Scommaaccent ; B 89 -284 714 741 ;
-C -1 ; WX 667 ; N Eogonek ; B 90 -205 751 729 ;
-C -1 ; WX 556 ; N oacute ; B 80 -23 576 740 ;
-C -1 ; WX 667 ; N Edotaccent ; B 90 0 751 914 ;
-C -1 ; WX 222 ; N iogonek ; B 0 -205 305 729 ;
-C -1 ; WX 527 ; N gcommaaccent ; B 3 -218 572 813 ;
-C -1 ; WX 556 ; N odieresis ; B 80 -23 576 715 ;
-C -1 ; WX 556 ; N ntilde ; B 70 0 589 719 ;
-C -1 ; WX 556 ; N ncaron ; B 70 0 578 740 ;
-C -1 ; WX 667 ; N Ecaron ; B 90 0 751 939 ;
-C -1 ; WX 667 ; N Ecircumflex ; B 90 0 751 940 ;
-C -1 ; WX 500 ; N scedilla ; B 61 -214 521 539 ;
-C -1 ; WX 333 ; N rcaron ; B 69 0 486 740 ;
-C -1 ; WX 667 ; N Egrave ; B 90 0 751 939 ;
-C -1 ; WX 667 ; N Eacute ; B 90 0 751 939 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 109 -284 809 741 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 93 -284 770 729 ;
-C -1 ; WX 667 ; N Edieresis ; B 90 0 751 914 ;
-C -1 ; WX 556 ; N nacute ; B 70 0 580 740 ;
-C -1 ; WX 556 ; N uogonek ; B 88 -205 594 524 ;
-C -1 ; WX 556 ; N umacron ; B 88 -23 594 696 ;
-C -1 ; WX 722 ; N Dcaron ; B 89 0 759 939 ;
-C -1 ; WX 307 ; N lcaron ; B 68 0 467 729 ;
-C -1 ; WX 722 ; N Ccaron ; B 112 -23 770 939 ;
-C -1 ; WX 722 ; N Cacute ; B 112 -23 770 939 ;
-C -1 ; WX 722 ; N Ccedilla ; B 112 -214 770 741 ;
-C -1 ; WX 606 ; N degree ; B 291 383 594 686 ;
-C -1 ; WX 667 ; N Aogonek ; B 17 -205 663 729 ;
-C -1 ; WX 584 ; N minus ; B 81 197 601 269 ;
-C -1 ; WX 584 ; N multiply ; B 113 34 568 427 ;
-C -1 ; WX 584 ; N divide ; B 92 0 591 462 ;
-C -1 ; WX 667 ; N Aring ; B 17 0 653 953 ;
-C -1 ; WX 1000 ; N trademark ; B 208 292 1096 729 ;
-C -1 ; WX 333 ; N rcommaaccent ; B 5 -284 436 539 ;
-C -1 ; WX 222 ; N lacute ; B 68 0 463 939 ;
-C -1 ; WX 556 ; N omacron ; B 80 -23 576 696 ;
-C -1 ; WX 667 ; N Atilde ; B 17 0 680 918 ;
-C -1 ; WX 278 ; N icircumflex ; B 94 0 406 741 ;
-C -1 ; WX 278 ; N igrave ; B 94 0 330 740 ;
-C -1 ; WX 556 ; N ncommaaccent ; B 70 -284 574 539 ;
-C -1 ; WX 222 ; N lcommaaccent ; B -1 -284 307 729 ;
-C -1 ; WX 584 ; N plusminus ; B 50 0 625 633 ;
-C -1 ; WX 947 ; N onehalf ; B 202 -20 965 709 ;
-C -1 ; WX 947 ; N onequarter ; B 205 -20 938 709 ;
-C -1 ; WX 947 ; N threequarters ; B 123 -20 938 709 ;
-C -1 ; WX 278 ; N iacute ; B 94 0 431 740 ;
-C -1 ; WX 667 ; N Abreve ; B 17 0 683 928 ;
-C -1 ; WX 500 ; N kcommaaccent ; B 58 -284 584 729 ;
-C -1 ; WX 778 ; N Omacron ; B 104 -23 828 895 ;
-C -1 ; WX 222 ; N imacron ; B 66 0 373 696 ;
-C -1 ; WX 556 ; N emacron ; B 84 -23 580 696 ;
-C -1 ; WX 556 ; N amacron ; B 65 -23 568 696 ;
-C -1 ; WX 278 ; N tcommaaccent ; B 55 -284 366 668 ;
-C -1 ; WX 500 ; N ydieresis ; B 8 -218 590 715 ;
-C -1 ; WX 500 ; N zdotaccent ; B 31 0 557 715 ;
-C -1 ; WX 500 ; N zcaron ; B 31 0 557 740 ;
-C -1 ; WX 500 ; N zacute ; B 31 0 557 740 ;
-C -1 ; WX 500 ; N yacute ; B 8 -218 590 740 ;
-C -1 ; WX 556 ; N uhungarumlaut ; B 88 -23 683 740 ;
-C -1 ; WX 556 ; N eth ; B 80 -23 576 743 ;
-C -1 ; WX 556 ; N uring ; B 88 -23 594 754 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 104 -23 828 940 ;
-C -1 ; WX 333 ; N commaaccent ; B 57 -284 205 -60 ;
-C -1 ; WX 737 ; N copyright ; B 55 -22 836 742 ;
-C -1 ; WX 737 ; N registered ; B 55 -22 836 742 ;
-C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ;
-C -1 ; WX 278 ; N idieresis ; B 94 0 419 708 ;
-C -1 ; WX 489 ; N lozenge ; B 16 0 462 744 ;
-C -1 ; WX 712 ; N Delta ; B 10 0 701 729 ;
-C -1 ; WX 584 ; N notequal ; B 74 2 609 480 ;
-C -1 ; WX 542 ; N radical ; B 102 -36 705 913 ;
-C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ;
-C -1 ; WX 667 ; N Aacute ; B 17 0 667 939 ;
-C -1 ; WX 584 ; N lessequal ; B 45 0 659 584 ;
-C -1 ; WX 584 ; N greaterequal ; B 56 0 626 584 ;
-C -1 ; WX 584 ; N logicalnot ; B 99 86 619 377 ;
-C -1 ; WX 711 ; N summation ; B -18 -97 760 762 ;
-C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B 76 -284 801 729 ;
-C -1 ; WX 556 ; N dcroat ; B 73 -23 695 729 ;
-C -1 ; WX 260 ; N brokenbar ; B 54 -212 315 729 ;
-C -1 ; WX 556 ; N Lcommaaccent ; B 80 -284 551 729 ;
-C -1 ; WX 667 ; N Adieresis ; B 17 0 662 914 ;
-C -1 ; WX 556 ; N mu ; B 18 -220 593 524 ;
-C -1 ; WX 278 ; N .notdef ; B 213 0 213 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -41
-KPX A Ccedilla -41
-KPX A G -41
-KPX A O -37
-KPX A Odieresis -37
-KPX A Q -38
-KPX A T -103
-KPX A U -42
-KPX A Uacute -42
-KPX A Ucircumflex -42
-KPX A Udieresis -42
-KPX A Ugrave -42
-KPX A V -81
-KPX A W -57
-KPX A Y -104
-KPX A a -16
-KPX A b -5
-KPX A c -16
-KPX A ccedilla -16
-KPX A comma -4
-KPX A d -14
-KPX A e -22
-KPX A g -17
-KPX A guillemotleft -51
-KPX A guilsinglleft -47
-KPX A hyphen -8
-KPX A o -19
-KPX A period -2
-KPX A q -15
-KPX A quotedblright -60
-KPX A quoteright -68
-KPX A t -22
-KPX A u -18
-KPX A v -40
-KPX A w -29
-KPX A y -44
-KPX Aacute C -42
-KPX Aacute G -42
-KPX Aacute O -38
-KPX Aacute Q -39
-KPX Aacute T -103
-KPX Aacute U -43
-KPX Aacute V -81
-KPX Aacute W -57
-KPX Aacute Y -104
-KPX Aacute a -16
-KPX Aacute b -6
-KPX Aacute c -17
-KPX Aacute comma -4
-KPX Aacute d -15
-KPX Aacute e -23
-KPX Aacute g -17
-KPX Aacute guillemotleft -51
-KPX Aacute guilsinglleft -48
-KPX Aacute hyphen -9
-KPX Aacute o -20
-KPX Aacute period -3
-KPX Aacute q -16
-KPX Aacute quoteright -68
-KPX Aacute t -23
-KPX Aacute u -20
-KPX Aacute v -40
-KPX Aacute w -29
-KPX Aacute y -44
-KPX Acircumflex C -41
-KPX Acircumflex G -41
-KPX Acircumflex O -37
-KPX Acircumflex Q -38
-KPX Acircumflex T -103
-KPX Acircumflex U -42
-KPX Acircumflex V -81
-KPX Acircumflex W -57
-KPX Acircumflex Y -104
-KPX Acircumflex comma -4
-KPX Acircumflex period -2
-KPX Adieresis C -42
-KPX Adieresis G -41
-KPX Adieresis O -38
-KPX Adieresis Q -39
-KPX Adieresis T -103
-KPX Adieresis U -43
-KPX Adieresis V -81
-KPX Adieresis W -57
-KPX Adieresis Y -104
-KPX Adieresis a -16
-KPX Adieresis b -5
-KPX Adieresis c -17
-KPX Adieresis comma -4
-KPX Adieresis d -14
-KPX Adieresis g -17
-KPX Adieresis guillemotleft -51
-KPX Adieresis guilsinglleft -48
-KPX Adieresis hyphen -8
-KPX Adieresis o -19
-KPX Adieresis period -3
-KPX Adieresis q -15
-KPX Adieresis quotedblright -60
-KPX Adieresis quoteright -68
-KPX Adieresis t -22
-KPX Adieresis u -19
-KPX Adieresis v -40
-KPX Adieresis w -29
-KPX Adieresis y -44
-KPX Agrave C -41
-KPX Agrave G -41
-KPX Agrave O -37
-KPX Agrave Q -38
-KPX Agrave T -103
-KPX Agrave U -42
-KPX Agrave V -81
-KPX Agrave W -57
-KPX Agrave Y -104
-KPX Agrave comma -4
-KPX Agrave period -2
-KPX Aring C -41
-KPX Aring G -41
-KPX Aring O -37
-KPX Aring Q -38
-KPX Aring T -103
-KPX Aring U -42
-KPX Aring V -81
-KPX Aring W -57
-KPX Aring Y -104
-KPX Aring a -16
-KPX Aring b -5
-KPX Aring c -16
-KPX Aring comma -4
-KPX Aring d -14
-KPX Aring e -22
-KPX Aring g -17
-KPX Aring guillemotleft -51
-KPX Aring guilsinglleft -47
-KPX Aring hyphen -8
-KPX Aring o -19
-KPX Aring period -2
-KPX Aring q -15
-KPX Aring quotedblright -60
-KPX Aring quoteright -68
-KPX Aring t -22
-KPX Aring u -18
-KPX Aring v -40
-KPX Aring w -29
-KPX Aring y -44
-KPX Atilde C -43
-KPX Atilde G -42
-KPX Atilde O -39
-KPX Atilde Q -40
-KPX Atilde T -103
-KPX Atilde U -44
-KPX Atilde V -81
-KPX Atilde W -57
-KPX Atilde Y -104
-KPX Atilde comma -4
-KPX Atilde period -4
-KPX B A -28
-KPX B AE -29
-KPX B Aacute -28
-KPX B Acircumflex -28
-KPX B Adieresis -28
-KPX B Aring -28
-KPX B Atilde -28
-KPX B O -14
-KPX B OE -11
-KPX B Oacute -14
-KPX B Ocircumflex -14
-KPX B Odieresis -14
-KPX B Ograve -14
-KPX B Oslash -2
-KPX B V -49
-KPX B W -27
-KPX B Y -56
-KPX C A -43
-KPX C AE -44
-KPX C Aacute -43
-KPX C Adieresis -43
-KPX C Aring -43
-KPX C H -22
-KPX C K -20
-KPX C O -18
-KPX C Oacute -18
-KPX C Odieresis -18
-KPX Ccedilla A -44
-KPX D A -50
-KPX D Aacute -50
-KPX D Acircumflex -50
-KPX D Adieresis -50
-KPX D Agrave -50
-KPX D Aring -50
-KPX D Atilde -50
-KPX D J -13
-KPX D T -56
-KPX D V -54
-KPX D W -31
-KPX D X -58
-KPX D Y -74
-KPX F A -78
-KPX F Aacute -78
-KPX F Acircumflex -78
-KPX F Adieresis -78
-KPX F Agrave -78
-KPX F Aring -78
-KPX F Atilde -78
-KPX F J -59
-KPX F O -30
-KPX F Odieresis -30
-KPX F a -45
-KPX F aacute -45
-KPX F adieresis -45
-KPX F ae -41
-KPX F aring -45
-KPX F comma -113
-KPX F e -33
-KPX F eacute -33
-KPX F hyphen -20
-KPX F i -19
-KPX F j -19
-KPX F o -30
-KPX F oacute -30
-KPX F odieresis -30
-KPX F oe -33
-KPX F oslash -30
-KPX F period -113
-KPX F r -44
-KPX F u -42
-KPX G A -14
-KPX G AE -11
-KPX G Aacute -14
-KPX G Acircumflex -14
-KPX G Adieresis -14
-KPX G Agrave -14
-KPX G Aring -14
-KPX G Atilde -14
-KPX G T -53
-KPX G V -53
-KPX G W -31
-KPX G Y -72
-KPX J A -39
-KPX J AE -39
-KPX J Adieresis -39
-KPX J Aring -39
-KPX K C -56
-KPX K G -57
-KPX K O -53
-KPX K OE -49
-KPX K Oacute -53
-KPX K Odieresis -53
-KPX K S -48
-KPX K T 14
-KPX K a -23
-KPX K adieresis -23
-KPX K ae -20
-KPX K aring -23
-KPX K e -46
-KPX K hyphen -53
-KPX K o -42
-KPX K oacute -42
-KPX K odieresis -42
-KPX K u -32
-KPX K udieresis -32
-KPX K y -76
-KPX L A 8
-KPX L AE 11
-KPX L Aacute 8
-KPX L Adieresis 8
-KPX L Aring 8
-KPX L C -52
-KPX L Ccedilla -51
-KPX L G -53
-KPX L O -51
-KPX L Oacute -51
-KPX L Ocircumflex -51
-KPX L Odieresis -51
-KPX L Ograve -51
-KPX L Otilde -51
-KPX L S -28
-KPX L T -112
-KPX L U -46
-KPX L Udieresis -46
-KPX L V -115
-KPX L W -77
-KPX L Y -128
-KPX L hyphen -140
-KPX L quotedblright -145
-KPX L quoteright -153
-KPX L u -17
-KPX L udieresis -17
-KPX L y -68
-KPX N A -19
-KPX N AE -16
-KPX N Aacute -19
-KPX N Adieresis -19
-KPX N Aring -19
-KPX N C -15
-KPX N Ccedilla -14
-KPX N G -14
-KPX N O -11
-KPX N Oacute -11
-KPX N Odieresis -11
-KPX N a -17
-KPX N aacute -17
-KPX N adieresis -17
-KPX N ae -13
-KPX N aring -17
-KPX N comma -15
-KPX N e -11
-KPX N eacute -11
-KPX N o -8
-KPX N oacute -8
-KPX N odieresis -8
-KPX N oslash -4
-KPX N period -15
-KPX N u -8
-KPX N udieresis -9
-KPX O A -43
-KPX O AE -47
-KPX O Aacute -43
-KPX O Adieresis -43
-KPX O Aring -43
-KPX O T -54
-KPX O V -48
-KPX O W -25
-KPX O X -52
-KPX O Y -71
-KPX Oacute A -43
-KPX Oacute T -54
-KPX Oacute V -48
-KPX Oacute W -25
-KPX Oacute Y -71
-KPX Ocircumflex T -54
-KPX Ocircumflex V -48
-KPX Ocircumflex Y -71
-KPX Odieresis A -43
-KPX Odieresis T -54
-KPX Odieresis V -48
-KPX Odieresis W -25
-KPX Odieresis X -52
-KPX Odieresis Y -71
-KPX Ograve T -54
-KPX Ograve V -48
-KPX Ograve Y -71
-KPX Oslash A -47
-KPX Otilde T -54
-KPX Otilde V -48
-KPX Otilde Y -71
-KPX P A -86
-KPX P AE -93
-KPX P Aacute -86
-KPX P Adieresis -86
-KPX P Aring -86
-KPX P J -85
-KPX P a -39
-KPX P aacute -39
-KPX P adieresis -39
-KPX P ae -35
-KPX P aring -39
-KPX P comma -138
-KPX P e -38
-KPX P eacute -38
-KPX P hyphen -45
-KPX P o -34
-KPX P oacute -34
-KPX P odieresis -34
-KPX P oe -38
-KPX P oslash -35
-KPX P period -138
-KPX R C -21
-KPX R Ccedilla -21
-KPX R G -21
-KPX R O -17
-KPX R OE -14
-KPX R Oacute -17
-KPX R Odieresis -17
-KPX R T -33
-KPX R U -21
-KPX R Udieresis -21
-KPX R V -49
-KPX R W -27
-KPX R Y -54
-KPX R a -21
-KPX R aacute -21
-KPX R adieresis -21
-KPX R ae -17
-KPX R aring -21
-KPX R e -16
-KPX R eacute -16
-KPX R hyphen -4
-KPX R o -13
-KPX R oacute -13
-KPX R odieresis -13
-KPX R oe -16
-KPX R u -13
-KPX R uacute -14
-KPX R udieresis -14
-KPX R y -16
-KPX S A -31
-KPX S AE -31
-KPX S Aacute -31
-KPX S Adieresis -31
-KPX S Aring -31
-KPX S T -38
-KPX S V -52
-KPX S W -31
-KPX S Y -58
-KPX S t -11
-KPX T A -104
-KPX T AE -106
-KPX T Aacute -104
-KPX T Acircumflex -104
-KPX T Adieresis -104
-KPX T Agrave -104
-KPX T Aring -104
-KPX T Atilde -104
-KPX T C -53
-KPX T G -55
-KPX T J -108
-KPX T O -50
-KPX T OE -44
-KPX T Oacute -50
-KPX T Ocircumflex -50
-KPX T Odieresis -50
-KPX T Ograve -50
-KPX T Oslash -42
-KPX T Otilde -50
-KPX T S -32
-KPX T V 2
-KPX T W 7
-KPX T Y 10
-KPX T a -107
-KPX T ae -104
-KPX T c -96
-KPX T colon -152
-KPX T comma -105
-KPX T e -102
-KPX T g -94
-KPX T guillemotleft -126
-KPX T guilsinglleft -123
-KPX T hyphen -82
-KPX T i -12
-KPX T j -12
-KPX T o -99
-KPX T oslash -94
-KPX T period -105
-KPX T r -98
-KPX T s -98
-KPX T semicolon -140
-KPX T u -98
-KPX T v -106
-KPX T w -103
-KPX T y -110
-KPX U A -45
-KPX U AE -48
-KPX U Aacute -45
-KPX U Acircumflex -45
-KPX U Adieresis -45
-KPX U Aring -45
-KPX U Atilde -45
-KPX U comma -35
-KPX U m -17
-KPX U n -16
-KPX U p -8
-KPX U period -32
-KPX U r -16
-KPX Uacute A -45
-KPX Uacute comma -35
-KPX Uacute m -17
-KPX Uacute n -16
-KPX Uacute p -8
-KPX Uacute period -32
-KPX Uacute r -16
-KPX Ucircumflex A -45
-KPX Udieresis A -44
-KPX Udieresis b -8
-KPX Udieresis comma -35
-KPX Udieresis m -17
-KPX Udieresis n -16
-KPX Udieresis p -8
-KPX Udieresis period -32
-KPX Udieresis r -16
-KPX Ugrave A -45
-KPX V A -77
-KPX V AE -84
-KPX V Aacute -77
-KPX V Acircumflex -77
-KPX V Adieresis -77
-KPX V Agrave -77
-KPX V Aring -77
-KPX V Atilde -77
-KPX V C -50
-KPX V G -50
-KPX V O -46
-KPX V Oacute -46
-KPX V Ocircumflex -46
-KPX V Odieresis -46
-KPX V Ograve -46
-KPX V Oslash -34
-KPX V Otilde -46
-KPX V S -44
-KPX V T 7
-KPX V a -71
-KPX V ae -66
-KPX V colon -76
-KPX V comma -94
-KPX V e -64
-KPX V g -57
-KPX V guillemotleft -88
-KPX V guilsinglleft -84
-KPX V hyphen -44
-KPX V i -14
-KPX V o -61
-KPX V oslash -57
-KPX V period -94
-KPX V r -51
-KPX V semicolon -75
-KPX V u -52
-KPX V y -28
-KPX W A -56
-KPX W AE -62
-KPX W Aacute -56
-KPX W Acircumflex -56
-KPX W Adieresis -56
-KPX W Agrave -56
-KPX W Aring -56
-KPX W Atilde -56
-KPX W C -30
-KPX W G -30
-KPX W O -26
-KPX W Oacute -26
-KPX W Ocircumflex -26
-KPX W Odieresis -26
-KPX W Ograve -26
-KPX W Oslash -14
-KPX W Otilde -26
-KPX W S -31
-KPX W T 11
-KPX W a -46
-KPX W ae -42
-KPX W colon -62
-KPX W comma -62
-KPX W e -39
-KPX W g -32
-KPX W guillemotleft -63
-KPX W guilsinglleft -60
-KPX W hyphen -19
-KPX W i -10
-KPX W o -36
-KPX W oslash -32
-KPX W period -62
-KPX W r -36
-KPX W semicolon -62
-KPX W u -36
-KPX W y -15
-KPX X C -53
-KPX X O -50
-KPX X Odieresis -50
-KPX X Q -51
-KPX X a -27
-KPX X e -51
-KPX X hyphen -57
-KPX X o -46
-KPX X u -36
-KPX X y -67
-KPX Y A -102
-KPX Y AE -108
-KPX Y Aacute -102
-KPX Y Acircumflex -102
-KPX Y Adieresis -102
-KPX Y Agrave -102
-KPX Y Aring -102
-KPX Y Atilde -102
-KPX Y C -68
-KPX Y G -69
-KPX Y O -64
-KPX Y Oacute -64
-KPX Y Ocircumflex -64
-KPX Y Odieresis -64
-KPX Y Ograve -64
-KPX Y Oslash -55
-KPX Y Otilde -64
-KPX Y S -49
-KPX Y T 15
-KPX Y a -100
-KPX Y ae -95
-KPX Y colon -97
-KPX Y comma -117
-KPX Y e -97
-KPX Y g -89
-KPX Y guillemotleft -128
-KPX Y guilsinglleft -124
-KPX Y hyphen -89
-KPX Y i -6
-KPX Y o -93
-KPX Y oslash -89
-KPX Y p -63
-KPX Y period -117
-KPX Y semicolon -97
-KPX Y u -73
-KPX Y v -48
-KPX Z v -44
-KPX Z y -44
-KPX a j -10
-KPX a quoteright -23
-KPX a v -26
-KPX a w -16
-KPX a y -33
-KPX aacute v -26
-KPX aacute w -16
-KPX aacute y -33
-KPX adieresis v -26
-KPX adieresis w -16
-KPX adieresis y -33
-KPX ae v -26
-KPX ae w -15
-KPX ae y -32
-KPX agrave v -26
-KPX agrave w -16
-KPX agrave y -33
-KPX aring v -26
-KPX aring w -16
-KPX aring y -33
-KPX b v -21
-KPX b w -10
-KPX b y -28
-KPX c h -7
-KPX c k -1
-KPX comma one -105
-KPX comma quotedblright -47
-KPX comma quoteright -55
-KPX e quoteright -20
-KPX e t -16
-KPX e v -26
-KPX e w -16
-KPX e x -35
-KPX e y -33
-KPX eacute v -26
-KPX eacute w -16
-KPX eacute y -33
-KPX ecircumflex v -26
-KPX ecircumflex w -16
-KPX ecircumflex y -33
-KPX eight four -6
-KPX eight one -55
-KPX eight seven -43
-KPX f a -20
-KPX f aacute -20
-KPX f adieresis -20
-KPX f ae -15
-KPX f aring -20
-KPX f e -21
-KPX f eacute -21
-KPX f f 12
-KPX f i -10
-KPX f j -11
-KPX f l -12
-KPX f o -18
-KPX f oacute -18
-KPX f odieresis -18
-KPX f oe -20
-KPX f oslash -16
-KPX f quoteright -8
-KPX f s -8
-KPX f t 16
-KPX five four -7
-KPX five one -83
-KPX five seven -32
-KPX four four -3
-KPX four one -88
-KPX four seven -65
-KPX g a -17
-KPX g adieresis -17
-KPX g ae -13
-KPX g aring -17
-KPX g e -11
-KPX g eacute -11
-KPX g l -8
-KPX g oacute -8
-KPX g odieresis -8
-KPX g r -9
-KPX guillemotright A -58
-KPX guillemotright AE -62
-KPX guillemotright Aacute -58
-KPX guillemotright Adieresis -58
-KPX guillemotright Aring -58
-KPX guillemotright T -132
-KPX guillemotright V -96
-KPX guillemotright W -68
-KPX guillemotright Y -137
-KPX guilsinglright A -52
-KPX guilsinglright AE -56
-KPX guilsinglright Aacute -52
-KPX guilsinglright Adieresis -52
-KPX guilsinglright Aring -52
-KPX guilsinglright T -126
-KPX guilsinglright V -90
-KPX guilsinglright W -62
-KPX guilsinglright Y -131
-KPX h quoteright -19
-KPX h y -31
-KPX hyphen A -12
-KPX hyphen AE -17
-KPX hyphen Aacute -12
-KPX hyphen Adieresis -12
-KPX hyphen Aring -12
-KPX hyphen T -86
-KPX hyphen V -51
-KPX hyphen W -24
-KPX hyphen Y -97
-KPX i T -16
-KPX i j -10
-KPX k a -14
-KPX k aacute -14
-KPX k adieresis -14
-KPX k ae -12
-KPX k aring -14
-KPX k comma -13
-KPX k e -33
-KPX k eacute -33
-KPX k g -26
-KPX k hyphen -49
-KPX k o -30
-KPX k oacute -30
-KPX k odieresis -30
-KPX k period -13
-KPX k s -14
-KPX k u -22
-KPX k udieresis -16
-KPX l v -11
-KPX l y -15
-KPX m p -3
-KPX m v -24
-KPX m w -14
-KPX m y -30
-KPX n T -103
-KPX n p -3
-KPX n quoteright -19
-KPX n v -24
-KPX n w -14
-KPX n y -31
-KPX nine four -12
-KPX nine one -55
-KPX nine seven -50
-KPX o T -106
-KPX o quoteright -23
-KPX o t -17
-KPX o v -27
-KPX o w -16
-KPX o x -35
-KPX o y -34
-KPX oacute v -27
-KPX oacute w -16
-KPX oacute y -34
-KPX ocircumflex t -17
-KPX odieresis t -17
-KPX odieresis v -27
-KPX odieresis w -16
-KPX odieresis x -35
-KPX odieresis y -34
-KPX ograve v -27
-KPX ograve w -16
-KPX ograve y -34
-KPX one comma -82
-KPX one eight -73
-KPX one five -72
-KPX one four -88
-KPX one nine -71
-KPX one one -125
-KPX one period -82
-KPX one seven -98
-KPX one six -71
-KPX one three -75
-KPX one two -78
-KPX one zero -71
-KPX p t -10
-KPX p y -28
-KPX period one -106
-KPX period quotedblright -48
-KPX period quoteright -56
-KPX q c -2
-KPX q u -5
-KPX quotedblbase A 21
-KPX quotedblbase AE 21
-KPX quotedblbase T -80
-KPX quotedblbase V -74
-KPX quotedblbase W -39
-KPX quotedblbase Y -96
-KPX quotedblleft A -58
-KPX quotedblleft AE -70
-KPX quotedblleft Aacute -58
-KPX quotedblleft Adieresis -58
-KPX quotedblleft Aring -58
-KPX quotedblleft T 1
-KPX quotedblleft V 10
-KPX quotedblleft W 22
-KPX quotedblleft Y -1
-KPX quotedblright A -60
-KPX quotedblright AE -72
-KPX quotedblright Aacute -60
-KPX quotedblright Adieresis -60
-KPX quotedblright Aring -60
-KPX quotedblright T 2
-KPX quotedblright V 9
-KPX quotedblright W 21
-KPX quotedblright Y -2
-KPX quoteleft A -74
-KPX quoteleft AE -86
-KPX quoteleft Aacute -74
-KPX quoteleft Adieresis -74
-KPX quoteleft Aring -74
-KPX quoteleft T -14
-KPX quoteleft V -5
-KPX quoteleft W 6
-KPX quoteleft Y -17
-KPX quoteright A -76
-KPX quoteright AE -88
-KPX quoteright Aacute -76
-KPX quoteright Adieresis -76
-KPX quoteright Aring -76
-KPX quoteright comma -68
-KPX quoteright d -25
-KPX quoteright o -31
-KPX quoteright period -68
-KPX quoteright r -24
-KPX quoteright s -23
-KPX quoteright t -14
-KPX quoteright v -10
-KPX quoteright w -5
-KPX quoteright y -14
-KPX r a -16
-KPX r aacute -16
-KPX r acircumflex -16
-KPX r adieresis -16
-KPX r ae -11
-KPX r agrave -16
-KPX r aring -16
-KPX r c -11
-KPX r ccedilla -11
-KPX r colon -31
-KPX r comma -77
-KPX r d -8
-KPX r e -17
-KPX r eacute -17
-KPX r ecircumflex -17
-KPX r egrave -17
-KPX r f 17
-KPX r g -8
-KPX r h -8
-KPX r hyphen -54
-KPX r i -6
-KPX r j -6
-KPX r k -2
-KPX r l -7
-KPX r m -9
-KPX r n -8
-KPX r o -14
-KPX r oacute -14
-KPX r ocircumflex -14
-KPX r odieresis -14
-KPX r oe -16
-KPX r ograve -14
-KPX r oslash -14
-KPX r p 0
-KPX r period -77
-KPX r q -10
-KPX r quoteright -6
-KPX r r -8
-KPX r s -4
-KPX r semicolon -30
-KPX r t 21
-KPX r u -7
-KPX r v 18
-KPX r w 21
-KPX r x 9
-KPX r y 15
-KPX r z 0
-KPX s quoteright -24
-KPX s t -15
-KPX seven colon -84
-KPX seven comma -123
-KPX seven eight -34
-KPX seven five -37
-KPX seven four -95
-KPX seven one -58
-KPX seven period -123
-KPX seven seven -11
-KPX seven six -44
-KPX seven three -29
-KPX seven two -31
-KPX six four -7
-KPX six one -52
-KPX six seven -40
-KPX t S -17
-KPX t a -10
-KPX t aacute -10
-KPX t adieresis -10
-KPX t ae -7
-KPX t aring -10
-KPX t colon -37
-KPX t e -22
-KPX t eacute -22
-KPX t h -14
-KPX t o -19
-KPX t oacute -19
-KPX t odieresis -19
-KPX t quoteright -7
-KPX t semicolon -36
-KPX three four -9
-KPX three one -57
-KPX three seven -45
-KPX two four -43
-KPX two one -45
-KPX two seven -38
-KPX u quoteright -14
-KPX v a -30
-KPX v aacute -30
-KPX v acircumflex -30
-KPX v adieresis -30
-KPX v ae -25
-KPX v agrave -30
-KPX v aring -30
-KPX v atilde -30
-KPX v c -22
-KPX v colon -32
-KPX v comma -76
-KPX v e -29
-KPX v eacute -29
-KPX v ecircumflex -29
-KPX v egrave -29
-KPX v g -20
-KPX v hyphen -19
-KPX v l -8
-KPX v o -25
-KPX v oacute -25
-KPX v odieresis -25
-KPX v ograve -25
-KPX v oslash -25
-KPX v period -76
-KPX v s -17
-KPX v semicolon -31
-KPX w a -26
-KPX w aacute -26
-KPX w acircumflex -26
-KPX w adieresis -26
-KPX w ae -22
-KPX w agrave -26
-KPX w aring -26
-KPX w atilde -26
-KPX w c -14
-KPX w colon -32
-KPX w comma -57
-KPX w e -20
-KPX w eacute -20
-KPX w ecircumflex -20
-KPX w egrave -20
-KPX w g -13
-KPX w hyphen -8
-KPX w l -8
-KPX w o -17
-KPX w oacute -17
-KPX w odieresis -17
-KPX w ograve -17
-KPX w oslash -14
-KPX w period -57
-KPX w s -14
-KPX w semicolon -31
-KPX x a -30
-KPX x c -30
-KPX x e -36
-KPX x eacute -36
-KPX x o -33
-KPX x q -28
-KPX y a -36
-KPX y aacute -36
-KPX y acircumflex -36
-KPX y adieresis -36
-KPX y ae -31
-KPX y agrave -36
-KPX y aring -36
-KPX y atilde -36
-KPX y c -28
-KPX y colon -40
-KPX y comma -80
-KPX y e -35
-KPX y eacute -35
-KPX y ecircumflex -35
-KPX y egrave -35
-KPX y g -26
-KPX y hyphen -24
-KPX y l -14
-KPX y o -31
-KPX y oacute -31
-KPX y odieresis -31
-KPX y ograve -31
-KPX y oslash -30
-KPX y period -80
-KPX y s -23
-KPX y semicolon -40
-KPX zero four -11
-KPX zero one -56
-KPX zero seven -50
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019023l.pfb b/Master/xemtex/gsfonts/n019023l.pfb
deleted file mode 100644
index 5839dab44f4..00000000000
--- a/Master/xemtex/gsfonts/n019023l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019023l.pfm b/Master/xemtex/gsfonts/n019023l.pfm
deleted file mode 100644
index 9a37bd0c8dd..00000000000
--- a/Master/xemtex/gsfonts/n019023l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019024l.afm b/Master/xemtex/gsfonts/n019024l.afm
deleted file mode 100644
index d44cf45651e..00000000000
--- a/Master/xemtex/gsfonts/n019024l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-BoldItal
-FullName Nimbus Sans L Bold Italic
-FamilyName Nimbus Sans L
-Weight Bold
-ItalicAngle -12.0
-IsFixedPitch false
-UnderlinePosition -111
-UnderlineThickness 69
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -177 -309 1107 953
-CapHeight 729
-XHeight 540
-Descender -217
-Ascender 729
-StartCharMetrics 316
-C 32 ; WX 278 ; N space ; B 245 0 245 0 ;
-C 33 ; WX 333 ; N exclam ; B 112 0 417 726 ;
-C 34 ; WX 474 ; N quotedbl ; B 177 470 579 729 ;
-C 35 ; WX 556 ; N numbersign ; B 33 -32 660 697 ;
-C 36 ; WX 556 ; N dollar ; B 59 -126 628 763 ;
-C 37 ; WX 889 ; N percent ; B 129 -20 903 709 ;
-C 38 ; WX 722 ; N ampersand ; B 89 -23 720 723 ;
-C 39 ; WX 278 ; N quoteright ; B 165 469 356 729 ;
-C 40 ; WX 333 ; N parenleft ; B 84 -200 458 729 ;
-C 41 ; WX 333 ; N parenright ; B -21 -200 356 729 ;
-C 42 ; WX 389 ; N asterisk ; B 145 407 478 729 ;
-C 43 ; WX 584 ; N plus ; B 87 -10 596 473 ;
-C 44 ; WX 278 ; N comma ; B 27 -174 245 146 ;
-C 45 ; WX 333 ; N hyphen ; B 70 207 371 342 ;
-C 46 ; WX 278 ; N period ; B 64 0 245 146 ;
-C 47 ; WX 278 ; N slash ; B -1 -14 427 714 ;
-C 48 ; WX 556 ; N zero ; B 81 -23 614 724 ;
-C 49 ; WX 556 ; N one ; B 172 0 529 709 ;
-C 50 ; WX 556 ; N two ; B 30 0 628 724 ;
-C 51 ; WX 556 ; N three ; B 67 -23 613 724 ;
-C 52 ; WX 556 ; N four ; B 57 0 599 709 ;
-C 53 ; WX 556 ; N five ; B 59 -23 641 709 ;
-C 54 ; WX 556 ; N six ; B 85 -23 625 724 ;
-C 55 ; WX 556 ; N seven ; B 131 0 679 709 ;
-C 56 ; WX 556 ; N eight ; B 60 -23 620 724 ;
-C 57 ; WX 556 ; N nine ; B 68 -23 611 724 ;
-C 58 ; WX 333 ; N colon ; B 113 0 374 520 ;
-C 59 ; WX 333 ; N semicolon ; B 76 -174 374 520 ;
-C 60 ; WX 584 ; N less ; B 77 -10 630 474 ;
-C 61 ; WX 584 ; N equal ; B 61 52 622 412 ;
-C 62 ; WX 584 ; N greater ; B 38 -10 591 474 ;
-C 63 ; WX 611 ; N question ; B 168 0 672 744 ;
-C 64 ; WX 975 ; N at ; B 73 -137 1032 745 ;
-C 65 ; WX 722 ; N A ; B 26 0 703 729 ;
-C 66 ; WX 722 ; N B ; B 82 0 762 729 ;
-C 67 ; WX 722 ; N C ; B 107 -23 793 741 ;
-C 68 ; WX 722 ; N D ; B 77 0 776 729 ;
-C 69 ; WX 667 ; N E ; B 79 0 762 729 ;
-C 70 ; WX 611 ; N F ; B 74 0 741 729 ;
-C 71 ; WX 778 ; N G ; B 107 -23 819 741 ;
-C 72 ; WX 722 ; N H ; B 68 0 812 729 ;
-C 73 ; WX 278 ; N I ; B 63 0 368 729 ;
-C 74 ; WX 556 ; N J ; B 59 -23 641 729 ;
-C 75 ; WX 722 ; N K ; B 74 0 843 729 ;
-C 76 ; WX 611 ; N L ; B 80 0 606 729 ;
-C 77 ; WX 833 ; N M ; B 66 0 931 729 ;
-C 78 ; WX 722 ; N N ; B 68 0 816 729 ;
-C 79 ; WX 778 ; N O ; B 106 -23 828 741 ;
-C 80 ; WX 667 ; N P ; B 76 0 747 729 ;
-C 81 ; WX 778 ; N Q ; B 109 -54 831 741 ;
-C 82 ; WX 722 ; N R ; B 80 0 785 729 ;
-C 83 ; WX 667 ; N S ; B 76 -23 725 741 ;
-C 84 ; WX 611 ; N T ; B 142 0 753 729 ;
-C 85 ; WX 722 ; N U ; B 119 -23 809 729 ;
-C 86 ; WX 667 ; N V ; B 179 0 802 729 ;
-C 87 ; WX 944 ; N W ; B 168 0 1087 729 ;
-C 88 ; WX 667 ; N X ; B 22 0 802 729 ;
-C 89 ; WX 667 ; N Y ; B 182 0 805 729 ;
-C 90 ; WX 611 ; N Z ; B 30 0 733 729 ;
-C 91 ; WX 333 ; N bracketleft ; B 23 -200 463 729 ;
-C 92 ; WX 278 ; N backslash ; B 138 -23 285 709 ;
-C 93 ; WX 333 ; N bracketright ; B -25 -200 415 729 ;
-C 94 ; WX 584 ; N asciicircum ; B 119 270 580 695 ;
-C 95 ; WX 556 ; N underscore ; B -65 -145 550 -76 ;
-C 96 ; WX 278 ; N quoteleft ; B 167 469 357 729 ;
-C 97 ; WX 556 ; N a ; B 50 -23 578 549 ;
-C 98 ; WX 611 ; N b ; B 59 -23 640 729 ;
-C 99 ; WX 556 ; N c ; B 77 -23 597 549 ;
-C 100 ; WX 611 ; N d ; B 79 -23 700 729 ;
-C 101 ; WX 556 ; N e ; B 64 -23 591 549 ;
-C 102 ; WX 333 ; N f ; B 90 0 464 729 ;
-C 103 ; WX 611 ; N g ; B 26 -218 656 549 ;
-C 104 ; WX 611 ; N h ; B 67 0 629 729 ;
-C 105 ; WX 278 ; N i ; B 67 0 362 729 ;
-C 106 ; WX 278 ; N j ; B -43 -218 365 729 ;
-C 107 ; WX 556 ; N k ; B 59 0 651 729 ;
-C 108 ; WX 278 ; N l ; B 67 0 362 729 ;
-C 109 ; WX 889 ; N m ; B 60 0 911 549 ;
-C 110 ; WX 611 ; N n ; B 63 0 629 549 ;
-C 111 ; WX 611 ; N o ; B 82 -23 634 549 ;
-C 112 ; WX 611 ; N p ; B 11 -218 637 549 ;
-C 113 ; WX 611 ; N q ; B 72 -218 659 549 ;
-C 114 ; WX 389 ; N r ; B 63 0 487 549 ;
-C 115 ; WX 556 ; N s ; B 60 -23 589 549 ;
-C 116 ; WX 333 ; N t ; B 101 -23 414 674 ;
-C 117 ; WX 611 ; N u ; B 88 -23 656 540 ;
-C 118 ; WX 556 ; N v ; B 129 0 651 540 ;
-C 119 ; WX 778 ; N w ; B 120 0 881 540 ;
-C 120 ; WX 556 ; N x ; B 16 0 648 540 ;
-C 121 ; WX 556 ; N y ; B 37 -219 653 540 ;
-C 122 ; WX 500 ; N z ; B 21 0 575 540 ;
-C 123 ; WX 389 ; N braceleft ; B 84 -200 472 729 ;
-C 124 ; WX 280 ; N bar ; B 57 -200 335 729 ;
-C 125 ; WX 389 ; N braceright ; B 29 -200 419 729 ;
-C 126 ; WX 584 ; N asciitilde ; B 97 142 581 314 ;
-C 161 ; WX 333 ; N exclamdown ; B 26 -186 331 540 ;
-C 162 ; WX 556 ; N cent ; B 79 -124 598 634 ;
-C 163 ; WX 556 ; N sterling ; B 49 -23 629 715 ;
-C 164 ; WX 167 ; N fraction ; B -177 -20 489 715 ;
-C 165 ; WX 556 ; N yen ; B 107 0 702 704 ;
-C 166 ; WX 556 ; N florin ; B -21 -220 690 744 ;
-C 167 ; WX 556 ; N section ; B 56 -201 596 723 ;
-C 168 ; WX 556 ; N currency ; B 66 100 644 604 ;
-C 169 ; WX 238 ; N quotesingle ; B 177 470 343 729 ;
-C 170 ; WX 500 ; N quotedblleft ; B 171 469 588 729 ;
-C 171 ; WX 556 ; N guillemotleft ; B 135 72 571 481 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 128 72 351 481 ;
-C 173 ; WX 333 ; N guilsinglright ; B 96 72 319 481 ;
-C 174 ; WX 611 ; N fi ; B 85 0 703 729 ;
-C 175 ; WX 611 ; N fl ; B 88 0 701 729 ;
-C 177 ; WX 556 ; N endash ; B 35 207 624 311 ;
-C 178 ; WX 556 ; N dagger ; B 109 -194 626 709 ;
-C 179 ; WX 556 ; N daggerdbl ; B 35 -194 623 709 ;
-C 180 ; WX 278 ; N periodcentered ; B 143 182 270 282 ;
-C 182 ; WX 556 ; N paragraph ; B 121 -191 684 729 ;
-C 183 ; WX 350 ; N bullet ; B 111 175 367 425 ;
-C 184 ; WX 278 ; N quotesinglbase ; B 37 -135 228 125 ;
-C 185 ; WX 500 ; N quotedblbase ; B 37 -135 462 125 ;
-C 186 ; WX 500 ; N quotedblright ; B 173 469 595 729 ;
-C 187 ; WX 556 ; N guillemotright ; B 103 72 533 481 ;
-C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ;
-C 189 ; WX 1000 ; N perthousand ; B 72 -21 1021 739 ;
-C 191 ; WX 611 ; N questiondown ; B 52 -204 556 540 ;
-C 193 ; WX 333 ; N grave ; B 175 607 339 757 ;
-C 194 ; WX 333 ; N acute ; B 247 607 475 757 ;
-C 195 ; WX 333 ; N circumflex ; B 135 610 453 757 ;
-C 196 ; WX 333 ; N tilde ; B 117 622 500 744 ;
-C 197 ; WX 333 ; N macron ; B 150 642 467 722 ;
-C 198 ; WX 333 ; N breve ; B 188 611 455 754 ;
-C 199 ; WX 333 ; N dotaccent ; B 241 621 377 741 ;
-C 200 ; WX 333 ; N dieresis ; B 147 621 469 741 ;
-C 202 ; WX 333 ; N ring ; B 214 593 398 773 ;
-C 203 ; WX 333 ; N cedilla ; B -13 -220 270 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 82 610 498 757 ;
-C 206 ; WX 333 ; N ogonek ; B 23 -233 248 0 ;
-C 207 ; WX 333 ; N caron ; B 167 610 485 757 ;
-C 208 ; WX 1000 ; N emdash ; B 37 207 1070 311 ;
-C 225 ; WX 1000 ; N AE ; B 1 0 1104 729 ;
-C 227 ; WX 370 ; N ordfeminine ; B 96 262 451 729 ;
-C 232 ; WX 611 ; N Lslash ; B 54 0 624 729 ;
-C 233 ; WX 778 ; N Oslash ; B 34 -39 906 749 ;
-C 234 ; WX 1000 ; N OE ; B 90 -23 1107 741 ;
-C 235 ; WX 365 ; N ordmasculine ; B 92 262 471 729 ;
-C 241 ; WX 889 ; N ae ; B 54 -23 927 549 ;
-C 245 ; WX 278 ; N dotlessi ; B 67 0 322 540 ;
-C 248 ; WX 278 ; N lslash ; B 50 0 372 729 ;
-C 249 ; WX 611 ; N oslash ; B 12 -38 709 557 ;
-C 250 ; WX 944 ; N oe ; B 71 -23 986 549 ;
-C 251 ; WX 611 ; N germandbls ; B 67 -23 654 729 ;
-C -1 ; WX 722 ; N Udieresis ; B 119 -23 809 920 ;
-C -1 ; WX 722 ; N Uacute ; B 119 -23 809 936 ;
-C -1 ; WX 667 ; N Scedilla ; B 76 -220 725 741 ;
-C -1 ; WX 611 ; N Tcaron ; B 142 0 753 936 ;
-C -1 ; WX 667 ; N Scaron ; B 76 -23 725 936 ;
-C -1 ; WX 722 ; N Rcaron ; B 80 0 785 936 ;
-C -1 ; WX 722 ; N Racute ; B 80 0 785 936 ;
-C -1 ; WX 667 ; N Sacute ; B 76 -23 725 936 ;
-C -1 ; WX 778 ; N Otilde ; B 106 -23 828 923 ;
-C -1 ; WX 611 ; N ucircumflex ; B 88 -23 656 757 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 106 -23 841 936 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 119 -23 809 936 ;
-C -1 ; WX 667 ; N Yacute ; B 182 0 805 936 ;
-C -1 ; WX 722 ; N Eth ; B 73 0 776 729 ;
-C -1 ; WX 722 ; N Dcroat ; B 73 0 776 729 ;
-C -1 ; WX 611 ; N Zacute ; B 30 0 733 936 ;
-C -1 ; WX 722 ; N Uring ; B 119 -23 809 953 ;
-C -1 ; WX 611 ; N gbreve ; B 26 -218 656 754 ;
-C -1 ; WX 556 ; N eogonek ; B 64 -233 591 549 ;
-C -1 ; WX 556 ; N edotaccent ; B 64 -23 591 741 ;
-C -1 ; WX 556 ; N ecaron ; B 64 -23 593 757 ;
-C -1 ; WX 722 ; N Ugrave ; B 119 -23 809 936 ;
-C -1 ; WX 667 ; N Thorn ; B 76 0 721 729 ;
-C -1 ; WX 556 ; N eacute ; B 64 -23 591 757 ;
-C -1 ; WX 556 ; N edieresis ; B 64 -23 591 741 ;
-C -1 ; WX 722 ; N dcaron ; B 79 -23 882 729 ;
-C -1 ; WX 556 ; N ccedilla ; B 77 -220 597 549 ;
-C -1 ; WX 556 ; N ccaron ; B 77 -23 607 757 ;
-C -1 ; WX 556 ; N cacute ; B 77 -23 597 757 ;
-C -1 ; WX 556 ; N aogonek ; B 50 -233 578 549 ;
-C -1 ; WX 556 ; N aring ; B 50 -23 578 773 ;
-C -1 ; WX 556 ; N atilde ; B 50 -23 612 744 ;
-C -1 ; WX 556 ; N abreve ; B 50 -23 578 754 ;
-C -1 ; WX 556 ; N egrave ; B 64 -23 591 757 ;
-C -1 ; WX 556 ; N agrave ; B 50 -23 578 757 ;
-C -1 ; WX 556 ; N aacute ; B 50 -23 587 757 ;
-C -1 ; WX 556 ; N adieresis ; B 50 -23 581 741 ;
-C -1 ; WX 722 ; N Uogonek ; B 119 -233 809 729 ;
-C -1 ; WX 611 ; N ugrave ; B 88 -23 656 757 ;
-C -1 ; WX 611 ; N uacute ; B 88 -23 656 757 ;
-C -1 ; WX 611 ; N udieresis ; B 88 -23 656 741 ;
-C -1 ; WX 404 ; N tcaron ; B 101 -23 578 829 ;
-C -1 ; WX 556 ; N scommaaccent ; B 60 -307 589 549 ;
-C -1 ; WX 611 ; N Zcaron ; B 30 0 733 936 ;
-C -1 ; WX 556 ; N ecircumflex ; B 64 -23 591 757 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 119 -23 809 936 ;
-C -1 ; WX 556 ; N acircumflex ; B 50 -23 578 757 ;
-C -1 ; WX 611 ; N Zdotaccent ; B 30 0 733 918 ;
-C -1 ; WX 556 ; N scaron ; B 60 -23 597 757 ;
-C -1 ; WX 722 ; N Amacron ; B 26 0 706 901 ;
-C -1 ; WX 556 ; N sacute ; B 60 -23 589 757 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 142 -307 753 729 ;
-C -1 ; WX 667 ; N Ydieresis ; B 182 0 805 920 ;
-C -1 ; WX 611 ; N thorn ; B 11 -218 637 729 ;
-C -1 ; WX 667 ; N Emacron ; B 79 0 762 901 ;
-C -1 ; WX 778 ; N Ograve ; B 106 -23 828 936 ;
-C -1 ; WX 778 ; N Oacute ; B 106 -23 828 936 ;
-C -1 ; WX 778 ; N Odieresis ; B 106 -23 828 920 ;
-C -1 ; WX 722 ; N Ntilde ; B 68 0 816 923 ;
-C -1 ; WX 722 ; N Ncaron ; B 68 0 816 936 ;
-C -1 ; WX 722 ; N Nacute ; B 68 0 816 936 ;
-C -1 ; WX 611 ; N Lcaron ; B 80 0 607 729 ;
-C -1 ; WX 611 ; N Lacute ; B 80 0 606 936 ;
-C -1 ; WX 278 ; N Idotaccent ; B 63 0 388 918 ;
-C -1 ; WX 389 ; N racute ; B 63 0 500 757 ;
-C -1 ; WX 278 ; N Icircumflex ; B 63 0 467 936 ;
-C -1 ; WX 611 ; N ohungarumlaut ; B 82 -23 710 757 ;
-C -1 ; WX 611 ; N otilde ; B 82 -23 639 744 ;
-C -1 ; WX 556 ; N Euro ; B 21 -23 648 724 ;
-C -1 ; WX 611 ; N ocircumflex ; B 82 -23 634 757 ;
-C -1 ; WX 444 ; N onesuperior ; B 210 284 438 709 ;
-C -1 ; WX 444 ; N twosuperior ; B 124 284 499 718 ;
-C -1 ; WX 444 ; N threesuperior ; B 147 271 490 718 ;
-C -1 ; WX 278 ; N Igrave ; B 63 0 368 936 ;
-C -1 ; WX 278 ; N Iacute ; B 63 0 489 936 ;
-C -1 ; WX 278 ; N Imacron ; B 63 0 466 901 ;
-C -1 ; WX 278 ; N Iogonek ; B 7 -233 368 729 ;
-C -1 ; WX 278 ; N Idieresis ; B 63 0 483 920 ;
-C -1 ; WX 778 ; N Gbreve ; B 107 -23 819 934 ;
-C -1 ; WX 722 ; N Umacron ; B 119 -23 809 901 ;
-C -1 ; WX 722 ; N Kcommaaccent ; B 74 -307 843 729 ;
-C -1 ; WX 611 ; N ograve ; B 82 -23 634 757 ;
-C -1 ; WX 667 ; N Scommaaccent ; B 76 -307 725 741 ;
-C -1 ; WX 667 ; N Eogonek ; B 79 -233 762 729 ;
-C -1 ; WX 611 ; N oacute ; B 82 -23 634 757 ;
-C -1 ; WX 667 ; N Edotaccent ; B 79 0 762 918 ;
-C -1 ; WX 268 ; N iogonek ; B 0 -233 351 729 ;
-C -1 ; WX 611 ; N gcommaaccent ; B 26 -218 656 854 ;
-C -1 ; WX 611 ; N odieresis ; B 82 -23 634 741 ;
-C -1 ; WX 611 ; N ntilde ; B 63 0 646 744 ;
-C -1 ; WX 611 ; N ncaron ; B 63 0 629 757 ;
-C -1 ; WX 667 ; N Ecaron ; B 79 0 762 936 ;
-C -1 ; WX 667 ; N Ecircumflex ; B 79 0 762 936 ;
-C -1 ; WX 556 ; N scedilla ; B 60 -220 589 549 ;
-C -1 ; WX 389 ; N rcaron ; B 63 0 533 757 ;
-C -1 ; WX 667 ; N Egrave ; B 79 0 762 936 ;
-C -1 ; WX 667 ; N Eacute ; B 79 0 762 936 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 107 -307 819 741 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 80 -307 785 729 ;
-C -1 ; WX 667 ; N Edieresis ; B 79 0 762 920 ;
-C -1 ; WX 611 ; N nacute ; B 63 0 629 757 ;
-C -1 ; WX 611 ; N uogonek ; B 88 -233 656 540 ;
-C -1 ; WX 611 ; N umacron ; B 88 -23 656 722 ;
-C -1 ; WX 722 ; N Dcaron ; B 77 0 776 936 ;
-C -1 ; WX 384 ; N lcaron ; B 67 0 544 729 ;
-C -1 ; WX 722 ; N Ccaron ; B 107 -23 793 936 ;
-C -1 ; WX 722 ; N Cacute ; B 107 -23 793 936 ;
-C -1 ; WX 722 ; N Ccedilla ; B 107 -220 793 741 ;
-C -1 ; WX 606 ; N degree ; B 240 383 543 686 ;
-C -1 ; WX 722 ; N Aogonek ; B 26 -233 703 729 ;
-C -1 ; WX 584 ; N minus ; B 77 172 606 292 ;
-C -1 ; WX 584 ; N multiply ; B 102 18 582 444 ;
-C -1 ; WX 584 ; N divide ; B 77 0 606 462 ;
-C -1 ; WX 722 ; N Aring ; B 26 0 703 953 ;
-C -1 ; WX 1000 ; N trademark ; B 213 273 1087 729 ;
-C -1 ; WX 389 ; N rcommaaccent ; B 8 -307 487 549 ;
-C -1 ; WX 278 ; N lacute ; B 67 0 474 936 ;
-C -1 ; WX 611 ; N omacron ; B 82 -23 634 722 ;
-C -1 ; WX 722 ; N Atilde ; B 26 0 739 923 ;
-C -1 ; WX 278 ; N icircumflex ; B 67 0 426 757 ;
-C -1 ; WX 278 ; N igrave ; B 67 0 322 757 ;
-C -1 ; WX 611 ; N ncommaaccent ; B 63 -307 629 549 ;
-C -1 ; WX 278 ; N lcommaaccent ; B 11 -307 362 729 ;
-C -1 ; WX 584 ; N plusminus ; B 50 0 630 633 ;
-C -1 ; WX 1055 ; N onehalf ; B 210 -20 1050 715 ;
-C -1 ; WX 1055 ; N onequarter ; B 210 -20 1032 715 ;
-C -1 ; WX 1055 ; N threequarters ; B 147 -20 1032 718 ;
-C -1 ; WX 278 ; N iacute ; B 67 0 448 757 ;
-C -1 ; WX 722 ; N Abreve ; B 26 0 703 934 ;
-C -1 ; WX 556 ; N kcommaaccent ; B 59 -307 651 729 ;
-C -1 ; WX 778 ; N Omacron ; B 106 -23 828 901 ;
-C -1 ; WX 278 ; N imacron ; B 67 0 424 722 ;
-C -1 ; WX 556 ; N emacron ; B 64 -23 591 722 ;
-C -1 ; WX 556 ; N amacron ; B 50 -23 579 722 ;
-C -1 ; WX 333 ; N tcommaaccent ; B 62 -307 414 674 ;
-C -1 ; WX 556 ; N ydieresis ; B 37 -219 653 741 ;
-C -1 ; WX 500 ; N zdotaccent ; B 21 0 575 741 ;
-C -1 ; WX 500 ; N zcaron ; B 21 0 575 757 ;
-C -1 ; WX 500 ; N zacute ; B 21 0 575 757 ;
-C -1 ; WX 556 ; N yacute ; B 37 -219 653 757 ;
-C -1 ; WX 611 ; N uhungarumlaut ; B 88 -23 697 757 ;
-C -1 ; WX 611 ; N eth ; B 83 -23 633 744 ;
-C -1 ; WX 611 ; N uring ; B 88 -23 656 773 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 106 -23 828 936 ;
-C -1 ; WX 333 ; N commaaccent ; B 43 -307 217 -60 ;
-C -1 ; WX 737 ; N copyright ; B 54 -22 837 743 ;
-C -1 ; WX 737 ; N registered ; B 55 -22 837 743 ;
-C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ;
-C -1 ; WX 278 ; N idieresis ; B 67 0 442 741 ;
-C -1 ; WX 489 ; N lozenge ; B 95 0 541 744 ;
-C -1 ; WX 729 ; N Delta ; B 8 0 721 729 ;
-C -1 ; WX 584 ; N notequal ; B 61 -74 622 544 ;
-C -1 ; WX 542 ; N radical ; B 102 -36 705 913 ;
-C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ;
-C -1 ; WX 722 ; N Aacute ; B 26 0 714 936 ;
-C -1 ; WX 584 ; N lessequal ; B 35 0 657 624 ;
-C -1 ; WX 584 ; N greaterequal ; B 44 0 627 624 ;
-C -1 ; WX 584 ; N logicalnot ; B 103 86 632 376 ;
-C -1 ; WX 711 ; N summation ; B -18 -97 760 760 ;
-C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B 68 -307 816 729 ;
-C -1 ; WX 611 ; N dcroat ; B 79 -23 746 729 ;
-C -1 ; WX 280 ; N brokenbar ; B 57 -200 335 729 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B 80 -309 606 729 ;
-C -1 ; WX 722 ; N Adieresis ; B 26 0 708 920 ;
-C -1 ; WX 611 ; N mu ; B 11 -220 655 540 ;
-C -1 ; WX 278 ; N .notdef ; B 245 0 245 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -36
-KPX A Ccedilla -36
-KPX A G -38
-KPX A O -37
-KPX A Odieresis -37
-KPX A Q -39
-KPX A T -91
-KPX A U -37
-KPX A Uacute -37
-KPX A Ucircumflex -37
-KPX A Udieresis -37
-KPX A Ugrave -37
-KPX A V -74
-KPX A W -57
-KPX A Y -96
-KPX A a -11
-KPX A b -10
-KPX A c -17
-KPX A ccedilla -17
-KPX A comma 9
-KPX A d -17
-KPX A e -10
-KPX A g -20
-KPX A guillemotleft -48
-KPX A guilsinglleft -44
-KPX A hyphen 2
-KPX A o -19
-KPX A period 13
-KPX A q -13
-KPX A quotedblright -71
-KPX A quoteright -67
-KPX A t -21
-KPX A u -17
-KPX A v -42
-KPX A w -28
-KPX A y -41
-KPX Aacute C -37
-KPX Aacute G -38
-KPX Aacute O -38
-KPX Aacute Q -40
-KPX Aacute T -91
-KPX Aacute U -38
-KPX Aacute V -74
-KPX Aacute W -57
-KPX Aacute Y -96
-KPX Aacute a -11
-KPX Aacute b -10
-KPX Aacute c -17
-KPX Aacute comma 9
-KPX Aacute d -17
-KPX Aacute e -11
-KPX Aacute g -20
-KPX Aacute guillemotleft -48
-KPX Aacute guilsinglleft -45
-KPX Aacute hyphen 2
-KPX Aacute o -20
-KPX Aacute period 12
-KPX Aacute q -14
-KPX Aacute quoteright -67
-KPX Aacute t -22
-KPX Aacute u -18
-KPX Aacute v -42
-KPX Aacute w -29
-KPX Aacute y -41
-KPX Acircumflex C -36
-KPX Acircumflex G -38
-KPX Acircumflex O -37
-KPX Acircumflex Q -39
-KPX Acircumflex T -91
-KPX Acircumflex U -37
-KPX Acircumflex V -74
-KPX Acircumflex W -57
-KPX Acircumflex Y -96
-KPX Acircumflex comma 9
-KPX Acircumflex period 13
-KPX Adieresis C -37
-KPX Adieresis G -38
-KPX Adieresis O -38
-KPX Adieresis Q -39
-KPX Adieresis T -91
-KPX Adieresis U -38
-KPX Adieresis V -74
-KPX Adieresis W -57
-KPX Adieresis Y -96
-KPX Adieresis a -11
-KPX Adieresis b -10
-KPX Adieresis c -17
-KPX Adieresis comma 9
-KPX Adieresis d -17
-KPX Adieresis g -20
-KPX Adieresis guillemotleft -48
-KPX Adieresis guilsinglleft -44
-KPX Adieresis hyphen 2
-KPX Adieresis o -20
-KPX Adieresis period 12
-KPX Adieresis q -13
-KPX Adieresis quotedblright -71
-KPX Adieresis quoteright -67
-KPX Adieresis t -22
-KPX Adieresis u -17
-KPX Adieresis v -42
-KPX Adieresis w -28
-KPX Adieresis y -41
-KPX Agrave C -36
-KPX Agrave G -38
-KPX Agrave O -37
-KPX Agrave Q -39
-KPX Agrave T -91
-KPX Agrave U -37
-KPX Agrave V -74
-KPX Agrave W -57
-KPX Agrave Y -96
-KPX Agrave comma 9
-KPX Agrave period 13
-KPX Aring C -36
-KPX Aring G -38
-KPX Aring O -37
-KPX Aring Q -39
-KPX Aring T -91
-KPX Aring U -37
-KPX Aring V -74
-KPX Aring W -57
-KPX Aring Y -96
-KPX Aring a -11
-KPX Aring b -10
-KPX Aring c -17
-KPX Aring comma 9
-KPX Aring d -17
-KPX Aring e -10
-KPX Aring g -20
-KPX Aring guillemotleft -48
-KPX Aring guilsinglleft -44
-KPX Aring hyphen 2
-KPX Aring o -19
-KPX Aring period 13
-KPX Aring q -13
-KPX Aring quotedblright -71
-KPX Aring quoteright -67
-KPX Aring t -21
-KPX Aring u -17
-KPX Aring v -42
-KPX Aring w -28
-KPX Aring y -41
-KPX Atilde C -38
-KPX Atilde G -40
-KPX Atilde O -39
-KPX Atilde Q -41
-KPX Atilde T -92
-KPX Atilde U -39
-KPX Atilde V -74
-KPX Atilde W -57
-KPX Atilde Y -96
-KPX Atilde comma 9
-KPX Atilde period 11
-KPX B A -41
-KPX B AE -30
-KPX B Aacute -41
-KPX B Acircumflex -41
-KPX B Adieresis -41
-KPX B Aring -41
-KPX B Atilde -41
-KPX B O -18
-KPX B OE -9
-KPX B Oacute -18
-KPX B Ocircumflex -18
-KPX B Odieresis -18
-KPX B Ograve -18
-KPX B Oslash -17
-KPX B V -46
-KPX B W -30
-KPX B Y -63
-KPX C A -34
-KPX C AE -23
-KPX C Aacute -34
-KPX C Adieresis -34
-KPX C Aring -34
-KPX C H -1
-KPX C K -4
-KPX C O -12
-KPX C Oacute -12
-KPX C Odieresis -12
-KPX Ccedilla A -34
-KPX D A -40
-KPX D Aacute -40
-KPX D Acircumflex -40
-KPX D Adieresis -40
-KPX D Agrave -40
-KPX D Aring -40
-KPX D Atilde -40
-KPX D J -4
-KPX D T -24
-KPX D V -37
-KPX D W -20
-KPX D X -40
-KPX D Y -62
-KPX F A -68
-KPX F Aacute -68
-KPX F Acircumflex -68
-KPX F Adieresis -68
-KPX F Agrave -68
-KPX F Aring -68
-KPX F Atilde -68
-KPX F J -33
-KPX F O -24
-KPX F Odieresis -24
-KPX F a -23
-KPX F aacute -23
-KPX F adieresis -23
-KPX F ae -26
-KPX F aring -23
-KPX F comma -84
-KPX F e -12
-KPX F eacute -12
-KPX F hyphen 4
-KPX F i -15
-KPX F j -17
-KPX F o -21
-KPX F oacute -21
-KPX F odieresis -21
-KPX F oe -16
-KPX F oslash -24
-KPX F period -82
-KPX F r -35
-KPX F u -32
-KPX G A -17
-KPX G AE -5
-KPX G Aacute -17
-KPX G Acircumflex -17
-KPX G Adieresis -17
-KPX G Agrave -17
-KPX G Aring -17
-KPX G Atilde -17
-KPX G T -28
-KPX G V -41
-KPX G W -25
-KPX G Y -65
-KPX J A -38
-KPX J AE -29
-KPX J Adieresis -38
-KPX J Aring -38
-KPX K C -59
-KPX K G -61
-KPX K O -60
-KPX K OE -51
-KPX K Oacute -60
-KPX K Odieresis -60
-KPX K S -45
-KPX K T 5
-KPX K a -17
-KPX K adieresis -17
-KPX K ae -17
-KPX K aring -17
-KPX K e -38
-KPX K hyphen -52
-KPX K o -45
-KPX K oacute -45
-KPX K odieresis -45
-KPX K u -35
-KPX K udieresis -35
-KPX K y -74
-KPX L A 0
-KPX L AE 12
-KPX L Aacute 0
-KPX L Adieresis 0
-KPX L Aring 0
-KPX L C -35
-KPX L Ccedilla -36
-KPX L G -40
-KPX L O -39
-KPX L Oacute -39
-KPX L Ocircumflex -39
-KPX L Odieresis -39
-KPX L Ograve -39
-KPX L Otilde -39
-KPX L S -14
-KPX L T -104
-KPX L U -35
-KPX L Udieresis -35
-KPX L V -102
-KPX L W -79
-KPX L Y -121
-KPX L hyphen -20
-KPX L quotedblright -147
-KPX L quoteright -143
-KPX L u -17
-KPX L udieresis -17
-KPX L y -64
-KPX N A -15
-KPX N AE -2
-KPX N Aacute -15
-KPX N Adieresis -15
-KPX N Aring -15
-KPX N C -1
-KPX N Ccedilla -1
-KPX N G -2
-KPX N O -2
-KPX N Oacute -2
-KPX N Odieresis -2
-KPX N a 5
-KPX N aacute 5
-KPX N adieresis 5
-KPX N ae 4
-KPX N aring 5
-KPX N comma 7
-KPX N e 10
-KPX N eacute 10
-KPX N o 1
-KPX N oacute 1
-KPX N odieresis 1
-KPX N oslash 2
-KPX N period 8
-KPX N u 4
-KPX N udieresis 4
-KPX O A -42
-KPX O AE -33
-KPX O Aacute -42
-KPX O Adieresis -42
-KPX O Aring -42
-KPX O T -32
-KPX O V -40
-KPX O W -24
-KPX O X -43
-KPX O Y -65
-KPX Oacute A -42
-KPX Oacute T -32
-KPX Oacute V -40
-KPX Oacute W -24
-KPX Oacute Y -65
-KPX Ocircumflex T -32
-KPX Ocircumflex V -40
-KPX Ocircumflex Y -65
-KPX Odieresis A -42
-KPX Odieresis T -32
-KPX Odieresis V -40
-KPX Odieresis W -24
-KPX Odieresis X -43
-KPX Odieresis Y -65
-KPX Ograve T -32
-KPX Ograve V -40
-KPX Ograve Y -65
-KPX Oslash A -34
-KPX Otilde T -32
-KPX Otilde V -40
-KPX Otilde Y -65
-KPX P A -71
-KPX P AE -62
-KPX P Aacute -71
-KPX P Adieresis -71
-KPX P Aring -71
-KPX P J -52
-KPX P a -14
-KPX P aacute -14
-KPX P adieresis -14
-KPX P ae -15
-KPX P aring -14
-KPX P comma -103
-KPX P e -13
-KPX P eacute -13
-KPX P hyphen -7
-KPX P o -22
-KPX P oacute -22
-KPX P odieresis -22
-KPX P oe -17
-KPX P oslash -26
-KPX P period -101
-KPX R C -12
-KPX R Ccedilla -12
-KPX R G -13
-KPX R O -13
-KPX R OE -3
-KPX R Oacute -13
-KPX R Odieresis -13
-KPX R T -12
-KPX R U -12
-KPX R Udieresis -12
-KPX R V -38
-KPX R W -22
-KPX R Y -50
-KPX R a -4
-KPX R aacute -4
-KPX R adieresis -4
-KPX R ae -5
-KPX R aring -4
-KPX R e 0
-KPX R eacute 0
-KPX R hyphen 10
-KPX R o -9
-KPX R oacute -9
-KPX R odieresis -9
-KPX R oe -4
-KPX R u -6
-KPX R uacute -6
-KPX R udieresis -6
-KPX R y -4
-KPX S A -26
-KPX S AE -14
-KPX S Aacute -26
-KPX S Adieresis -26
-KPX S Aring -26
-KPX S T -15
-KPX S V -36
-KPX S W -20
-KPX S Y -54
-KPX S t -4
-KPX T A -93
-KPX T AE -85
-KPX T Aacute -93
-KPX T Acircumflex -93
-KPX T Adieresis -93
-KPX T Agrave -93
-KPX T Aring -93
-KPX T Atilde -93
-KPX T C -29
-KPX T G -30
-KPX T J -95
-KPX T O -30
-KPX T OE -20
-KPX T Oacute -30
-KPX T Ocircumflex -30
-KPX T Odieresis -30
-KPX T Ograve -30
-KPX T Oslash -36
-KPX T Otilde -30
-KPX T S -7
-KPX T V 9
-KPX T W 15
-KPX T Y 7
-KPX T a -77
-KPX T ae -78
-KPX T c -79
-KPX T colon -104
-KPX T comma -75
-KPX T e -72
-KPX T g -79
-KPX T guillemotleft -107
-KPX T guilsinglleft -103
-KPX T hyphen -53
-KPX T i -9
-KPX T j -11
-KPX T o -81
-KPX T oslash -80
-KPX T period -73
-KPX T r -76
-KPX T s -81
-KPX T semicolon -105
-KPX T u -78
-KPX T v -91
-KPX T w -85
-KPX T y -89
-KPX U A -40
-KPX U AE -30
-KPX U Aacute -40
-KPX U Acircumflex -40
-KPX U Adieresis -40
-KPX U Aring -40
-KPX U Atilde -40
-KPX U comma -17
-KPX U m -3
-KPX U n -5
-KPX U p -3
-KPX U period -12
-KPX U r -5
-KPX Uacute A -40
-KPX Uacute comma -17
-KPX Uacute m -3
-KPX Uacute n -5
-KPX Uacute p -3
-KPX Uacute period -12
-KPX Uacute r -5
-KPX Ucircumflex A -40
-KPX Udieresis A -40
-KPX Udieresis b -4
-KPX Udieresis comma -17
-KPX Udieresis m -3
-KPX Udieresis n -5
-KPX Udieresis p -3
-KPX Udieresis period -12
-KPX Udieresis r -5
-KPX Ugrave A -40
-KPX V A -75
-KPX V AE -65
-KPX V Aacute -75
-KPX V Acircumflex -75
-KPX V Adieresis -75
-KPX V Agrave -75
-KPX V Aring -75
-KPX V Atilde -75
-KPX V C -43
-KPX V G -44
-KPX V O -44
-KPX V Oacute -44
-KPX V Ocircumflex -44
-KPX V Odieresis -44
-KPX V Ograve -44
-KPX V Oslash -42
-KPX V Otilde -44
-KPX V S -31
-KPX V T 12
-KPX V a -51
-KPX V ae -52
-KPX V colon -74
-KPX V comma -76
-KPX V e -46
-KPX V g -54
-KPX V guillemotleft -81
-KPX V guilsinglleft -77
-KPX V hyphen -26
-KPX V i -13
-KPX V o -56
-KPX V oslash -55
-KPX V period -74
-KPX V r -43
-KPX V semicolon -77
-KPX V u -42
-KPX V y -19
-KPX W A -59
-KPX W AE -50
-KPX W Aacute -59
-KPX W Acircumflex -59
-KPX W Adieresis -59
-KPX W Agrave -59
-KPX W Aring -59
-KPX W Atilde -59
-KPX W C -28
-KPX W G -29
-KPX W O -29
-KPX W Oacute -29
-KPX W Ocircumflex -29
-KPX W Odieresis -29
-KPX W Ograve -29
-KPX W Oslash -27
-KPX W Otilde -29
-KPX W S -22
-KPX W T 16
-KPX W a -34
-KPX W ae -34
-KPX W colon -61
-KPX W comma -53
-KPX W e -28
-KPX W g -36
-KPX W guillemotleft -63
-KPX W guilsinglleft -59
-KPX W hyphen -9
-KPX W i -9
-KPX W o -38
-KPX W oslash -37
-KPX W period -51
-KPX W r -33
-KPX W semicolon -63
-KPX W u -32
-KPX W y -9
-KPX X C -39
-KPX X O -40
-KPX X Odieresis -40
-KPX X Q -43
-KPX X a -17
-KPX X e -33
-KPX X hyphen -33
-KPX X o -43
-KPX X u -35
-KPX X y -48
-KPX Y A -91
-KPX Y AE -81
-KPX Y Aacute -91
-KPX Y Acircumflex -91
-KPX Y Adieresis -91
-KPX Y Agrave -91
-KPX Y Aring -91
-KPX Y Atilde -91
-KPX Y C -60
-KPX Y G -61
-KPX Y O -61
-KPX Y Oacute -61
-KPX Y Ocircumflex -61
-KPX Y Odieresis -61
-KPX Y Ograve -61
-KPX Y Oslash -58
-KPX Y Otilde -61
-KPX Y S -39
-KPX Y T 14
-KPX Y a -71
-KPX Y ae -71
-KPX Y colon -90
-KPX Y comma -85
-KPX Y e -66
-KPX Y g -73
-KPX Y guillemotleft -105
-KPX Y guilsinglleft -101
-KPX Y hyphen -55
-KPX Y i -11
-KPX Y o -76
-KPX Y oslash -74
-KPX Y p -53
-KPX Y period -84
-KPX Y semicolon -93
-KPX Y u -57
-KPX Y v -36
-KPX Z v -21
-KPX Z y -19
-KPX a j -7
-KPX a quoteright -14
-KPX a v -23
-KPX a w -10
-KPX a y -24
-KPX aacute v -23
-KPX aacute w -10
-KPX aacute y -24
-KPX adieresis v -23
-KPX adieresis w -10
-KPX adieresis y -24
-KPX ae v -21
-KPX ae w -7
-KPX ae y -23
-KPX agrave v -23
-KPX agrave w -10
-KPX agrave y -24
-KPX aring v -23
-KPX aring w -10
-KPX aring y -24
-KPX b v -23
-KPX b w -9
-KPX b y -25
-KPX c h -9
-KPX c k -5
-KPX comma one -79
-KPX comma quotedblright -39
-KPX comma quoteright -35
-KPX e quoteright -13
-KPX e t -9
-KPX e v -22
-KPX e w -9
-KPX e x -25
-KPX e y -25
-KPX eacute v -22
-KPX eacute w -9
-KPX eacute y -25
-KPX ecircumflex v -22
-KPX ecircumflex w -9
-KPX ecircumflex y -25
-KPX eight four 2
-KPX eight one -32
-KPX eight seven -15
-KPX f a -6
-KPX f aacute -6
-KPX f adieresis -6
-KPX f ae -6
-KPX f aring -6
-KPX f e -6
-KPX f eacute -6
-KPX f f 14
-KPX f i -13
-KPX f j -15
-KPX f l -13
-KPX f o -16
-KPX f oacute -16
-KPX f odieresis -16
-KPX f oe -11
-KPX f oslash -16
-KPX f quoteright 0
-KPX f s -10
-KPX f t 14
-KPX five four -3
-KPX five one -37
-KPX five seven -17
-KPX four four 0
-KPX four one -55
-KPX four seven -33
-KPX g a -3
-KPX g adieresis -3
-KPX g ae -4
-KPX g aring -3
-KPX g e 1
-KPX g eacute 1
-KPX g l -5
-KPX g oacute -8
-KPX g odieresis -8
-KPX g r -3
-KPX guillemotright A -56
-KPX guillemotright AE -46
-KPX guillemotright Aacute -56
-KPX guillemotright Adieresis -56
-KPX guillemotright Aring -56
-KPX guillemotright T -115
-KPX guillemotright V -84
-KPX guillemotright W -65
-KPX guillemotright Y -117
-KPX guilsinglright A -52
-KPX guilsinglright AE -42
-KPX guilsinglright Aacute -52
-KPX guilsinglright Adieresis -52
-KPX guilsinglright Aring -52
-KPX guilsinglright T -110
-KPX guilsinglright V -79
-KPX guilsinglright W -60
-KPX guilsinglright Y -113
-KPX h quoteright -15
-KPX h y -25
-KPX hyphen A -7
-KPX hyphen AE 2
-KPX hyphen Aacute -7
-KPX hyphen Adieresis -7
-KPX hyphen Aring -7
-KPX hyphen T -64
-KPX hyphen V -34
-KPX hyphen W -15
-KPX hyphen Y -71
-KPX i T -12
-KPX i j -7
-KPX k a -13
-KPX k aacute -13
-KPX k adieresis -13
-KPX k ae -15
-KPX k aring -13
-KPX k comma -3
-KPX k e -19
-KPX k eacute -19
-KPX k g -26
-KPX k hyphen -31
-KPX k o -28
-KPX k oacute -28
-KPX k odieresis -28
-KPX k period -3
-KPX k s -23
-KPX k u -8
-KPX k udieresis -8
-KPX l v -14
-KPX l y -11
-KPX m p -1
-KPX m v -23
-KPX m w -9
-KPX m y -23
-KPX n T -87
-KPX n p -2
-KPX n quoteright -15
-KPX n v -24
-KPX n w -11
-KPX n y -25
-KPX nine four -6
-KPX nine one -30
-KPX nine seven -23
-KPX o T -90
-KPX o quoteright -19
-KPX o t -13
-KPX o v -27
-KPX o w -13
-KPX o x -30
-KPX o y -29
-KPX oacute v -27
-KPX oacute w -13
-KPX oacute y -29
-KPX ocircumflex t -13
-KPX odieresis t -13
-KPX odieresis v -27
-KPX odieresis w -13
-KPX odieresis x -30
-KPX odieresis y -29
-KPX ograve v -27
-KPX ograve w -13
-KPX ograve y -29
-KPX one comma -51
-KPX one eight -47
-KPX one five -50
-KPX one four -70
-KPX one nine -47
-KPX one one -92
-KPX one period -49
-KPX one seven -72
-KPX one six -48
-KPX one three -53
-KPX one two -56
-KPX one zero -44
-KPX p t -10
-KPX p y -25
-KPX period one -80
-KPX period quotedblright -39
-KPX period quoteright -35
-KPX q c -3
-KPX q u -3
-KPX quotedblbase A 7
-KPX quotedblbase AE 19
-KPX quotedblbase T -79
-KPX quotedblbase V -77
-KPX quotedblbase W -54
-KPX quotedblbase Y -96
-KPX quotedblleft A -72
-KPX quotedblleft AE -64
-KPX quotedblleft Aacute -72
-KPX quotedblleft Adieresis -72
-KPX quotedblleft Aring -72
-KPX quotedblleft T -11
-KPX quotedblleft V 0
-KPX quotedblleft W 9
-KPX quotedblleft Y -15
-KPX quotedblright A -72
-KPX quotedblright AE -64
-KPX quotedblright Aacute -72
-KPX quotedblright Adieresis -72
-KPX quotedblright Aring -72
-KPX quotedblright T -7
-KPX quotedblright V 1
-KPX quotedblright W 11
-KPX quotedblright Y -14
-KPX quoteleft A -76
-KPX quoteleft AE -69
-KPX quoteleft Aacute -76
-KPX quoteleft Adieresis -76
-KPX quoteleft Aring -76
-KPX quoteleft T -15
-KPX quoteleft V -4
-KPX quoteleft W 5
-KPX quoteleft Y -20
-KPX quoteright A -80
-KPX quoteright AE -72
-KPX quoteright Aacute -80
-KPX quoteright Adieresis -80
-KPX quoteright Aring -80
-KPX quoteright comma -53
-KPX quoteright d -30
-KPX quoteright o -34
-KPX quoteright period -51
-KPX quoteright r -20
-KPX quoteright s -27
-KPX quoteright t -11
-KPX quoteright v -11
-KPX quoteright w -4
-KPX quoteright y -9
-KPX r a -1
-KPX r aacute -1
-KPX r acircumflex -1
-KPX r adieresis -1
-KPX r ae -2
-KPX r agrave -1
-KPX r aring -1
-KPX r c -6
-KPX r ccedilla -6
-KPX r colon -36
-KPX r comma -64
-KPX r d -5
-KPX r e 2
-KPX r eacute 2
-KPX r ecircumflex 2
-KPX r egrave 2
-KPX r f 15
-KPX r g -7
-KPX r h -12
-KPX r hyphen -40
-KPX r i -12
-KPX r j -13
-KPX r k -8
-KPX r l -12
-KPX r m -8
-KPX r n -10
-KPX r o -7
-KPX r oacute -7
-KPX r ocircumflex -7
-KPX r odieresis -7
-KPX r oe -2
-KPX r ograve -7
-KPX r oslash -12
-KPX r p -7
-KPX r period -63
-KPX r q -2
-KPX r quoteright 4
-KPX r r -10
-KPX r s -4
-KPX r semicolon -37
-KPX r t 15
-KPX r u -8
-KPX r v 12
-KPX r w 17
-KPX r x 7
-KPX r y 14
-KPX r z 2
-KPX s quoteright -12
-KPX s t -9
-KPX seven colon -71
-KPX seven comma -95
-KPX seven eight -10
-KPX seven five -28
-KPX seven four -70
-KPX seven one -21
-KPX seven period -94
-KPX seven seven 2
-KPX seven six -21
-KPX seven three -7
-KPX seven two -11
-KPX six four -1
-KPX six one -29
-KPX six seven -13
-KPX t S -9
-KPX t a -3
-KPX t aacute -3
-KPX t adieresis -3
-KPX t ae -5
-KPX t aring -3
-KPX t colon -41
-KPX t e -5
-KPX t eacute -5
-KPX t h -9
-KPX t o -15
-KPX t oacute -15
-KPX t odieresis -15
-KPX t quoteright -3
-KPX t semicolon -42
-KPX three four -2
-KPX three one -34
-KPX three seven -19
-KPX two four -16
-KPX two one -24
-KPX two seven -12
-KPX u quoteright -8
-KPX v a -21
-KPX v aacute -21
-KPX v acircumflex -21
-KPX v adieresis -21
-KPX v ae -21
-KPX v agrave -21
-KPX v aring -21
-KPX v atilde -21
-KPX v c -25
-KPX v colon -41
-KPX v comma -57
-KPX v e -18
-KPX v eacute -18
-KPX v ecircumflex -18
-KPX v egrave -18
-KPX v g -26
-KPX v hyphen -5
-KPX v l -12
-KPX v o -28
-KPX v oacute -28
-KPX v odieresis -28
-KPX v ograve -28
-KPX v oslash -28
-KPX v period -55
-KPX v s -25
-KPX v semicolon -43
-KPX w a -11
-KPX w aacute -11
-KPX w acircumflex -11
-KPX w adieresis -11
-KPX w ae -12
-KPX w agrave -11
-KPX w aring -11
-KPX w atilde -11
-KPX w c -12
-KPX w colon -36
-KPX w comma -38
-KPX w e -5
-KPX w eacute -5
-KPX w ecircumflex -5
-KPX w egrave -5
-KPX w g -13
-KPX w hyphen 7
-KPX w l -8
-KPX w o -15
-KPX w oacute -15
-KPX w odieresis -15
-KPX w ograve -15
-KPX w oslash -14
-KPX w period -36
-KPX w s -15
-KPX w semicolon -38
-KPX x a -22
-KPX x c -27
-KPX x e -20
-KPX x eacute -20
-KPX x o -30
-KPX x q -23
-KPX y a -20
-KPX y aacute -20
-KPX y acircumflex -20
-KPX y adieresis -20
-KPX y ae -20
-KPX y agrave -20
-KPX y aring -20
-KPX y atilde -20
-KPX y c -26
-KPX y colon -40
-KPX y comma -58
-KPX y e -19
-KPX y eacute -19
-KPX y ecircumflex -19
-KPX y egrave -19
-KPX y g -27
-KPX y hyphen -4
-KPX y l -11
-KPX y o -28
-KPX y oacute -28
-KPX y odieresis -28
-KPX y ograve -28
-KPX y oslash -27
-KPX y period -55
-KPX y s -24
-KPX y semicolon -43
-KPX zero four -3
-KPX zero one -29
-KPX zero seven -21
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019024l.pfb b/Master/xemtex/gsfonts/n019024l.pfb
deleted file mode 100644
index 9274c31d942..00000000000
--- a/Master/xemtex/gsfonts/n019024l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019024l.pfm b/Master/xemtex/gsfonts/n019024l.pfm
deleted file mode 100644
index 40aa6e1ea06..00000000000
--- a/Master/xemtex/gsfonts/n019024l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019043l.afm b/Master/xemtex/gsfonts/n019043l.afm
deleted file mode 100644
index 3974ed1f8d0..00000000000
--- a/Master/xemtex/gsfonts/n019043l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-ReguCond
-FullName Nimbus Sans L Regular Condensed
-FamilyName Nimbus Sans L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -136 -282 820 951
-CapHeight 718
-XHeight 523
-Descender -207
-Ascender 718
-StartCharMetrics 316
-C 32 ; WX 228 ; N space ; B 21 0 21 0 ;
-C 33 ; WX 228 ; N exclam ; B 74 0 153 718 ;
-C 34 ; WX 291 ; N quotedbl ; B 57 463 234 718 ;
-C 35 ; WX 456 ; N numbersign ; B 23 0 434 688 ;
-C 36 ; WX 456 ; N dollar ; B 26 -115 427 775 ;
-C 37 ; WX 729 ; N percent ; B 32 -19 697 703 ;
-C 38 ; WX 547 ; N ampersand ; B 36 -15 529 718 ;
-C 39 ; WX 182 ; N quoteright ; B 43 462 129 718 ;
-C 40 ; WX 273 ; N parenleft ; B 56 -207 245 733 ;
-C 41 ; WX 273 ; N parenright ; B 28 -207 217 733 ;
-C 42 ; WX 319 ; N asterisk ; B 32 431 286 718 ;
-C 43 ; WX 479 ; N plus ; B 32 0 447 505 ;
-C 44 ; WX 228 ; N comma ; B 71 -147 157 107 ;
-C 45 ; WX 273 ; N hyphen ; B 36 232 237 322 ;
-C 46 ; WX 228 ; N period ; B 71 0 157 107 ;
-C 47 ; WX 228 ; N slash ; B -14 -19 242 737 ;
-C 48 ; WX 456 ; N zero ; B 30 -19 426 703 ;
-C 49 ; WX 456 ; N one ; B 83 0 294 703 ;
-C 50 ; WX 456 ; N two ; B 21 0 416 703 ;
-C 51 ; WX 456 ; N three ; B 28 -19 428 703 ;
-C 52 ; WX 456 ; N four ; B 20 0 429 703 ;
-C 53 ; WX 456 ; N five ; B 26 -19 421 688 ;
-C 54 ; WX 456 ; N six ; B 31 -19 425 703 ;
-C 55 ; WX 456 ; N seven ; B 30 0 429 688 ;
-C 56 ; WX 456 ; N eight ; B 31 -19 424 703 ;
-C 57 ; WX 456 ; N nine ; B 34 -19 421 703 ;
-C 58 ; WX 228 ; N colon ; B 71 0 157 516 ;
-C 59 ; WX 228 ; N semicolon ; B 71 -147 157 516 ;
-C 60 ; WX 479 ; N less ; B 39 10 440 496 ;
-C 61 ; WX 479 ; N equal ; B 32 115 447 390 ;
-C 62 ; WX 479 ; N greater ; B 39 10 440 496 ;
-C 63 ; WX 456 ; N question ; B 46 0 403 727 ;
-C 64 ; WX 832 ; N at ; B 121 -19 712 737 ;
-C 65 ; WX 547 ; N A ; B 11 0 536 718 ;
-C 66 ; WX 547 ; N B ; B 61 0 514 718 ;
-C 67 ; WX 592 ; N C ; B 36 -19 558 737 ;
-C 68 ; WX 592 ; N D ; B 66 0 553 718 ;
-C 69 ; WX 547 ; N E ; B 71 0 505 718 ;
-C 70 ; WX 501 ; N F ; B 71 0 478 718 ;
-C 71 ; WX 638 ; N G ; B 39 -19 577 737 ;
-C 72 ; WX 592 ; N H ; B 63 0 530 718 ;
-C 73 ; WX 228 ; N I ; B 75 0 154 718 ;
-C 74 ; WX 410 ; N J ; B 14 -19 351 718 ;
-C 75 ; WX 547 ; N K ; B 62 0 544 718 ;
-C 76 ; WX 456 ; N L ; B 62 0 440 718 ;
-C 77 ; WX 683 ; N M ; B 60 0 624 718 ;
-C 78 ; WX 592 ; N N ; B 62 0 530 718 ;
-C 79 ; WX 638 ; N O ; B 32 -19 606 737 ;
-C 80 ; WX 547 ; N P ; B 71 0 510 718 ;
-C 81 ; WX 638 ; N Q ; B 32 -56 606 737 ;
-C 82 ; WX 592 ; N R ; B 72 0 561 718 ;
-C 83 ; WX 547 ; N S ; B 40 -19 508 737 ;
-C 84 ; WX 501 ; N T ; B 11 0 490 718 ;
-C 85 ; WX 592 ; N U ; B 65 -19 528 718 ;
-C 86 ; WX 547 ; N V ; B 16 0 531 718 ;
-C 87 ; WX 774 ; N W ; B 13 0 761 718 ;
-C 88 ; WX 547 ; N X ; B 16 0 531 718 ;
-C 89 ; WX 547 ; N Y ; B 11 0 535 718 ;
-C 90 ; WX 501 ; N Z ; B 19 0 482 718 ;
-C 91 ; WX 228 ; N bracketleft ; B 52 -196 205 722 ;
-C 92 ; WX 228 ; N backslash ; B -14 -19 242 737 ;
-C 93 ; WX 228 ; N bracketright ; B 23 -196 176 722 ;
-C 94 ; WX 385 ; N asciicircum ; B -11 264 396 688 ;
-C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ;
-C 96 ; WX 182 ; N quoteleft ; B 53 469 139 725 ;
-C 97 ; WX 456 ; N a ; B 30 -15 435 538 ;
-C 98 ; WX 456 ; N b ; B 48 -15 424 718 ;
-C 99 ; WX 410 ; N c ; B 25 -15 391 538 ;
-C 100 ; WX 456 ; N d ; B 29 -15 409 718 ;
-C 101 ; WX 456 ; N e ; B 33 -15 423 538 ;
-C 102 ; WX 228 ; N f ; B 11 0 215 728 ;
-C 103 ; WX 456 ; N g ; B 33 -220 409 538 ;
-C 104 ; WX 456 ; N h ; B 53 0 403 718 ;
-C 105 ; WX 182 ; N i ; B 55 0 127 718 ;
-C 106 ; WX 182 ; N j ; B -13 -210 127 718 ;
-C 107 ; WX 410 ; N k ; B 55 0 411 718 ;
-C 108 ; WX 182 ; N l ; B 55 0 127 718 ;
-C 109 ; WX 683 ; N m ; B 53 0 631 538 ;
-C 110 ; WX 456 ; N n ; B 53 0 403 538 ;
-C 111 ; WX 456 ; N o ; B 29 -14 427 538 ;
-C 112 ; WX 456 ; N p ; B 48 -207 424 538 ;
-C 113 ; WX 456 ; N q ; B 29 -207 405 538 ;
-C 114 ; WX 273 ; N r ; B 63 0 272 538 ;
-C 115 ; WX 410 ; N s ; B 26 -15 380 538 ;
-C 116 ; WX 228 ; N t ; B 11 -7 211 669 ;
-C 117 ; WX 456 ; N u ; B 56 -15 401 523 ;
-C 118 ; WX 410 ; N v ; B 7 0 403 523 ;
-C 119 ; WX 592 ; N w ; B 11 0 581 523 ;
-C 120 ; WX 410 ; N x ; B 9 0 402 523 ;
-C 121 ; WX 410 ; N y ; B 9 -214 401 523 ;
-C 122 ; WX 410 ; N z ; B 25 0 385 523 ;
-C 123 ; WX 274 ; N braceleft ; B 34 -196 239 722 ;
-C 124 ; WX 213 ; N bar ; B 77 -19 137 737 ;
-C 125 ; WX 274 ; N braceright ; B 34 -196 239 722 ;
-C 126 ; WX 479 ; N asciitilde ; B 50 181 429 322 ;
-C 161 ; WX 273 ; N exclamdown ; B 97 -195 176 523 ;
-C 162 ; WX 456 ; N cent ; B 42 -115 421 623 ;
-C 163 ; WX 456 ; N sterling ; B 27 -16 442 718 ;
-C 164 ; WX 137 ; N fraction ; B -136 -19 273 703 ;
-C 165 ; WX 456 ; N yen ; B 2 0 453 688 ;
-C 166 ; WX 456 ; N florin ; B -9 -207 411 737 ;
-C 167 ; WX 456 ; N section ; B 35 -191 420 737 ;
-C 168 ; WX 456 ; N currency ; B 23 99 433 603 ;
-C 169 ; WX 157 ; N quotesingle ; B 48 463 108 718 ;
-C 170 ; WX 273 ; N quotedblleft ; B 31 469 252 725 ;
-C 171 ; WX 456 ; N guillemotleft ; B 80 108 376 446 ;
-C 172 ; WX 273 ; N guilsinglleft ; B 72 108 201 446 ;
-C 173 ; WX 273 ; N guilsinglright ; B 72 108 201 446 ;
-C 174 ; WX 410 ; N fi ; B 11 0 356 728 ;
-C 175 ; WX 410 ; N fl ; B 11 0 354 728 ;
-C 177 ; WX 456 ; N endash ; B 0 240 456 313 ;
-C 178 ; WX 456 ; N dagger ; B 35 -159 421 718 ;
-C 179 ; WX 456 ; N daggerdbl ; B 35 -159 421 718 ;
-C 180 ; WX 228 ; N periodcentered ; B 63 190 166 315 ;
-C 182 ; WX 440 ; N paragraph ; B 15 -173 408 718 ;
-C 183 ; WX 287 ; N bullet ; B 15 202 273 517 ;
-C 184 ; WX 182 ; N quotesinglbase ; B 43 -149 129 107 ;
-C 185 ; WX 273 ; N quotedblbase ; B 21 -149 242 107 ;
-C 186 ; WX 273 ; N quotedblright ; B 21 462 242 718 ;
-C 187 ; WX 456 ; N guillemotright ; B 80 108 376 446 ;
-C 188 ; WX 820 ; N ellipsis ; B 94 0 726 107 ;
-C 189 ; WX 820 ; N perthousand ; B 6 -19 815 703 ;
-C 191 ; WX 501 ; N questiondown ; B 75 -201 432 525 ;
-C 193 ; WX 273 ; N grave ; B 11 593 173 734 ;
-C 194 ; WX 273 ; N acute ; B 100 593 262 734 ;
-C 195 ; WX 273 ; N circumflex ; B 17 593 256 734 ;
-C 196 ; WX 273 ; N tilde ; B -3 606 276 722 ;
-C 197 ; WX 273 ; N macron ; B 8 627 265 684 ;
-C 198 ; WX 273 ; N breve ; B 11 595 263 731 ;
-C 199 ; WX 273 ; N dotaccent ; B 99 604 174 706 ;
-C 200 ; WX 273 ; N dieresis ; B 33 604 240 706 ;
-C 202 ; WX 273 ; N ring ; B 61 572 212 756 ;
-C 203 ; WX 273 ; N cedilla ; B 37 -225 212 0 ;
-C 205 ; WX 273 ; N hungarumlaut ; B 25 593 335 734 ;
-C 206 ; WX 273 ; N ogonek ; B 60 -225 235 0 ;
-C 207 ; WX 273 ; N caron ; B 17 593 256 734 ;
-C 208 ; WX 820 ; N emdash ; B 0 240 820 313 ;
-C 225 ; WX 820 ; N AE ; B 7 0 780 718 ;
-C 227 ; WX 303 ; N ordfeminine ; B 20 304 284 737 ;
-C 232 ; WX 456 ; N Lslash ; B -16 0 440 718 ;
-C 233 ; WX 638 ; N Oslash ; B 32 -19 607 737 ;
-C 234 ; WX 820 ; N OE ; B 30 -19 791 737 ;
-C 235 ; WX 299 ; N ordmasculine ; B 20 304 280 737 ;
-C 241 ; WX 729 ; N ae ; B 30 -15 695 538 ;
-C 245 ; WX 228 ; N dotlessi ; B 78 0 150 523 ;
-C 248 ; WX 182 ; N lslash ; B -16 0 198 718 ;
-C 249 ; WX 501 ; N oslash ; B 23 -22 440 545 ;
-C 250 ; WX 774 ; N oe ; B 29 -15 740 538 ;
-C 251 ; WX 501 ; N germandbls ; B 55 -15 468 728 ;
-C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ;
-C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ;
-C -1 ; WX 547 ; N Scedilla ; B 35 -225 508 737 ;
-C -1 ; WX 501 ; N Tcaron ; B 11 0 490 929 ;
-C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ;
-C -1 ; WX 592 ; N Rcaron ; B 72 0 561 929 ;
-C -1 ; WX 592 ; N Racute ; B 72 0 561 903 ;
-C -1 ; WX 547 ; N Sacute ; B 40 -19 508 903 ;
-C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ;
-C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ;
-C -1 ; WX 638 ; N Ohungarumlaut ; B 32 -19 606 929 ;
-C -1 ; WX 592 ; N Uhungarumlaut ; B 65 -19 528 929 ;
-C -1 ; WX 547 ; N Yacute ; B 11 0 535 929 ;
-C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ;
-C -1 ; WX 592 ; N Dcroat ; B 0 0 553 718 ;
-C -1 ; WX 501 ; N Zacute ; B 19 0 482 903 ;
-C -1 ; WX 592 ; N Uring ; B 65 -19 528 951 ;
-C -1 ; WX 456 ; N gbreve ; B 33 -220 409 731 ;
-C -1 ; WX 456 ; N eogonek ; B 33 -225 423 538 ;
-C -1 ; WX 456 ; N edotaccent ; B 33 -15 423 706 ;
-C -1 ; WX 456 ; N ecaron ; B 33 -15 423 734 ;
-C -1 ; WX 592 ; N Ugrave ; B 65 -19 528 929 ;
-C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ;
-C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ;
-C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ;
-C -1 ; WX 496 ; N dcaron ; B 29 -15 516 718 ;
-C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ;
-C -1 ; WX 410 ; N ccaron ; B 25 -15 391 734 ;
-C -1 ; WX 410 ; N cacute ; B 25 -15 391 734 ;
-C -1 ; WX 456 ; N aogonek ; B 30 -225 466 538 ;
-C -1 ; WX 456 ; N aring ; B 30 -15 435 769 ;
-C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ;
-C -1 ; WX 456 ; N abreve ; B 30 -15 435 731 ;
-C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ;
-C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ;
-C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ;
-C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ;
-C -1 ; WX 592 ; N Uogonek ; B 65 -225 528 718 ;
-C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ;
-C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ;
-C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ;
-C -1 ; WX 248 ; N tcaron ; B 11 -7 268 718 ;
-C -1 ; WX 410 ; N scommaaccent ; B 26 -282 380 538 ;
-C -1 ; WX 501 ; N Zcaron ; B 19 0 482 929 ;
-C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ;
-C -1 ; WX 592 ; N Ucircumflex ; B 65 -19 528 929 ;
-C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ;
-C -1 ; WX 501 ; N Zdotaccent ; B 19 0 482 901 ;
-C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ;
-C -1 ; WX 547 ; N Amacron ; B 11 0 536 879 ;
-C -1 ; WX 410 ; N sacute ; B 26 -15 380 734 ;
-C -1 ; WX 501 ; N Tcommaaccent ; B 11 -282 490 718 ;
-C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ;
-C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ;
-C -1 ; WX 547 ; N Emacron ; B 71 0 505 879 ;
-C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ;
-C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ;
-C -1 ; WX 638 ; N Odieresis ; B 32 -19 606 901 ;
-C -1 ; WX 592 ; N Ntilde ; B 62 0 530 917 ;
-C -1 ; WX 592 ; N Ncaron ; B 62 0 530 929 ;
-C -1 ; WX 592 ; N Nacute ; B 62 0 530 903 ;
-C -1 ; WX 456 ; N Lcaron ; B 62 0 440 718 ;
-C -1 ; WX 456 ; N Lacute ; B 62 0 440 903 ;
-C -1 ; WX 228 ; N Idotaccent ; B 75 0 154 901 ;
-C -1 ; WX 273 ; N racute ; B 63 0 272 734 ;
-C -1 ; WX 228 ; N Icircumflex ; B -5 0 234 929 ;
-C -1 ; WX 456 ; N ohungarumlaut ; B 29 -14 427 734 ;
-C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ;
-C -1 ; WX 510 ; N Euro ; B 0 -12 495 730 ;
-C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ;
-C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ;
-C -1 ; WX 273 ; N twosuperior ; B 3 280 265 714 ;
-C -1 ; WX 273 ; N threesuperior ; B 4 270 266 714 ;
-C -1 ; WX 228 ; N Igrave ; B -11 0 154 929 ;
-C -1 ; WX 228 ; N Iacute ; B 75 0 240 903 ;
-C -1 ; WX 228 ; N Imacron ; B -15 0 242 879 ;
-C -1 ; WX 228 ; N Iogonek ; B 10 -225 185 718 ;
-C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ;
-C -1 ; WX 638 ; N Gbreve ; B 39 -19 577 926 ;
-C -1 ; WX 592 ; N Umacron ; B 65 -19 528 879 ;
-C -1 ; WX 547 ; N Kcommaaccent ; B 62 -282 544 718 ;
-C -1 ; WX 456 ; N ograve ; B 29 -14 427 734 ;
-C -1 ; WX 547 ; N Scommaaccent ; B 40 -282 508 737 ;
-C -1 ; WX 547 ; N Eogonek ; B 71 -225 536 718 ;
-C -1 ; WX 456 ; N oacute ; B 29 -14 427 734 ;
-C -1 ; WX 547 ; N Edotaccent ; B 71 0 505 901 ;
-C -1 ; WX 182 ; N iogonek ; B -17 -225 158 718 ;
-C -1 ; WX 456 ; N gcommaaccent ; B 33 -220 409 813 ;
-C -1 ; WX 456 ; N odieresis ; B 29 -14 427 706 ;
-C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ;
-C -1 ; WX 456 ; N ncaron ; B 53 0 403 734 ;
-C -1 ; WX 547 ; N Ecaron ; B 71 0 505 929 ;
-C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ;
-C -1 ; WX 410 ; N scedilla ; B 26 -225 380 538 ;
-C -1 ; WX 273 ; N rcaron ; B 44 0 283 734 ;
-C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ;
-C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ;
-C -1 ; WX 638 ; N Gcommaaccent ; B 39 -282 577 737 ;
-C -1 ; WX 592 ; N Rcommaaccent ; B 72 -282 561 718 ;
-C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ;
-C -1 ; WX 456 ; N nacute ; B 53 0 403 734 ;
-C -1 ; WX 456 ; N uogonek ; B 56 -225 432 523 ;
-C -1 ; WX 456 ; N umacron ; B 56 -15 401 684 ;
-C -1 ; WX 592 ; N Dcaron ; B 66 0 553 929 ;
-C -1 ; WX 212 ; N lcaron ; B 55 0 232 718 ;
-C -1 ; WX 592 ; N Ccaron ; B 36 -19 558 929 ;
-C -1 ; WX 592 ; N Cacute ; B 36 -19 558 903 ;
-C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ;
-C -1 ; WX 328 ; N degree ; B 44 411 284 703 ;
-C -1 ; WX 547 ; N Aogonek ; B 11 -225 567 718 ;
-C -1 ; WX 479 ; N minus ; B 32 216 447 289 ;
-C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ;
-C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ;
-C -1 ; WX 547 ; N Aring ; B 11 0 536 944 ;
-C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ;
-C -1 ; WX 273 ; N rcommaaccent ; B 57 -282 272 538 ;
-C -1 ; WX 182 ; N lacute ; B 55 0 217 903 ;
-C -1 ; WX 456 ; N omacron ; B 29 -14 427 684 ;
-C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ;
-C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ;
-C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ;
-C -1 ; WX 456 ; N ncommaaccent ; B 53 -282 403 538 ;
-C -1 ; WX 182 ; N lcommaaccent ; B 50 -282 133 718 ;
-C -1 ; WX 479 ; N plusminus ; B 32 0 447 561 ;
-C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ;
-C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ;
-C -1 ; WX 684 ; N threequarters ; B 37 -19 664 714 ;
-C -1 ; WX 228 ; N iacute ; B 78 0 240 734 ;
-C -1 ; WX 547 ; N Abreve ; B 11 0 536 926 ;
-C -1 ; WX 410 ; N kcommaaccent ; B 55 -282 411 718 ;
-C -1 ; WX 638 ; N Omacron ; B 32 -19 606 879 ;
-C -1 ; WX 228 ; N imacron ; B -15 0 242 684 ;
-C -1 ; WX 456 ; N emacron ; B 33 -15 423 684 ;
-C -1 ; WX 456 ; N amacron ; B 30 -15 435 684 ;
-C -1 ; WX 228 ; N tcommaaccent ; B 11 -282 211 669 ;
-C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ;
-C -1 ; WX 410 ; N zdotaccent ; B 25 0 385 706 ;
-C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ;
-C -1 ; WX 410 ; N zacute ; B 25 0 385 734 ;
-C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ;
-C -1 ; WX 456 ; N uhungarumlaut ; B 56 -15 427 734 ;
-C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ;
-C -1 ; WX 456 ; N uring ; B 56 -15 401 756 ;
-C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ;
-C -1 ; WX 273 ; N commaaccent ; B 95 -282 178 -60 ;
-C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ;
-C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ;
-C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ;
-C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ;
-C -1 ; WX 405 ; N lozenge ; B 15 0 382 740 ;
-C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ;
-C -1 ; WX 479 ; N notequal ; B 32 10 447 495 ;
-C -1 ; WX 450 ; N radical ; B -5 -74 433 927 ;
-C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ;
-C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ;
-C -1 ; WX 479 ; N lessequal ; B 39 0 439 594 ;
-C -1 ; WX 479 ; N greaterequal ; B 39 0 439 594 ;
-C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ;
-C -1 ; WX 585 ; N summation ; B 12 -123 570 752 ;
-C -1 ; WX 405 ; N partialdiff ; B 21 -10 379 753 ;
-C -1 ; WX 592 ; N Ncommaaccent ; B 62 -282 530 718 ;
-C -1 ; WX 456 ; N dcroat ; B 29 -15 456 718 ;
-C -1 ; WX 213 ; N brokenbar ; B 77 -19 137 737 ;
-C -1 ; WX 456 ; N Lcommaaccent ; B 62 -282 440 718 ;
-C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ;
-C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ;
-C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -28
-KPX A Ccedilla -29
-KPX A G -30
-KPX A O -27
-KPX A Odieresis -27
-KPX A Q -28
-KPX A T -74
-KPX A U -29
-KPX A Uacute -29
-KPX A Ucircumflex -29
-KPX A Udieresis -29
-KPX A Ugrave -29
-KPX A V -56
-KPX A W -39
-KPX A Y -78
-KPX A a -3
-KPX A b 0
-KPX A c -10
-KPX A ccedilla -10
-KPX A comma 5
-KPX A d -11
-KPX A e -14
-KPX A g -14
-KPX A guillemotleft -40
-KPX A guilsinglleft -36
-KPX A hyphen -2
-KPX A o -13
-KPX A period 5
-KPX A q -11
-KPX A quotedblright -37
-KPX A quoteright -48
-KPX A t -15
-KPX A u -12
-KPX A v -27
-KPX A w -21
-KPX A y -27
-KPX Aacute C -28
-KPX Aacute G -30
-KPX Aacute O -27
-KPX Aacute Q -28
-KPX Aacute T -74
-KPX Aacute U -29
-KPX Aacute V -56
-KPX Aacute W -39
-KPX Aacute Y -78
-KPX Aacute a -3
-KPX Aacute b 0
-KPX Aacute c -10
-KPX Aacute comma 5
-KPX Aacute d -11
-KPX Aacute e -14
-KPX Aacute g -14
-KPX Aacute guillemotleft -40
-KPX Aacute guilsinglleft -36
-KPX Aacute hyphen -2
-KPX Aacute o -13
-KPX Aacute period 5
-KPX Aacute q -11
-KPX Aacute quoteright -48
-KPX Aacute t -15
-KPX Aacute u -12
-KPX Aacute v -27
-KPX Aacute w -21
-KPX Aacute y -27
-KPX Acircumflex C -28
-KPX Acircumflex G -30
-KPX Acircumflex O -27
-KPX Acircumflex Q -28
-KPX Acircumflex T -74
-KPX Acircumflex U -29
-KPX Acircumflex V -56
-KPX Acircumflex W -39
-KPX Acircumflex Y -78
-KPX Acircumflex comma 5
-KPX Acircumflex period 5
-KPX Adieresis C -28
-KPX Adieresis G -30
-KPX Adieresis O -27
-KPX Adieresis Q -28
-KPX Adieresis T -74
-KPX Adieresis U -29
-KPX Adieresis V -56
-KPX Adieresis W -39
-KPX Adieresis Y -78
-KPX Adieresis a -3
-KPX Adieresis b 0
-KPX Adieresis c -10
-KPX Adieresis comma 5
-KPX Adieresis d -11
-KPX Adieresis g -14
-KPX Adieresis guillemotleft -40
-KPX Adieresis guilsinglleft -36
-KPX Adieresis hyphen -2
-KPX Adieresis o -13
-KPX Adieresis period 5
-KPX Adieresis q -11
-KPX Adieresis quotedblright -37
-KPX Adieresis quoteright -48
-KPX Adieresis t -15
-KPX Adieresis u -12
-KPX Adieresis v -27
-KPX Adieresis w -21
-KPX Adieresis y -27
-KPX Agrave C -28
-KPX Agrave G -30
-KPX Agrave O -27
-KPX Agrave Q -28
-KPX Agrave T -74
-KPX Agrave U -29
-KPX Agrave V -56
-KPX Agrave W -39
-KPX Agrave Y -78
-KPX Agrave comma 5
-KPX Agrave period 5
-KPX Aring C -28
-KPX Aring G -30
-KPX Aring O -27
-KPX Aring Q -28
-KPX Aring T -74
-KPX Aring U -29
-KPX Aring V -56
-KPX Aring W -39
-KPX Aring Y -78
-KPX Aring a -3
-KPX Aring b 0
-KPX Aring c -10
-KPX Aring comma 5
-KPX Aring d -11
-KPX Aring e -14
-KPX Aring g -14
-KPX Aring guillemotleft -40
-KPX Aring guilsinglleft -36
-KPX Aring hyphen -2
-KPX Aring o -13
-KPX Aring period 5
-KPX Aring q -11
-KPX Aring quotedblright -37
-KPX Aring quoteright -48
-KPX Aring t -15
-KPX Aring u -12
-KPX Aring v -27
-KPX Aring w -21
-KPX Aring y -27
-KPX Atilde C -28
-KPX Atilde G -30
-KPX Atilde O -27
-KPX Atilde Q -28
-KPX Atilde T -74
-KPX Atilde U -29
-KPX Atilde V -56
-KPX Atilde W -39
-KPX Atilde Y -78
-KPX Atilde comma 5
-KPX Atilde period 5
-KPX B A -15
-KPX B AE -14
-KPX B Aacute -15
-KPX B Acircumflex -15
-KPX B Adieresis -15
-KPX B Aring -15
-KPX B Atilde -15
-KPX B O -3
-KPX B OE 0
-KPX B Oacute -3
-KPX B Ocircumflex -3
-KPX B Odieresis -3
-KPX B Ograve -3
-KPX B Oslash 0
-KPX B V -25
-KPX B W -14
-KPX B Y -31
-KPX C A -25
-KPX C AE -24
-KPX C Aacute -25
-KPX C Adieresis -25
-KPX C Aring -25
-KPX C H -6
-KPX C K -5
-KPX C O -4
-KPX C Oacute -4
-KPX C Odieresis -4
-KPX Ccedilla A -28
-KPX D A -33
-KPX D Aacute -33
-KPX D Acircumflex -33
-KPX D Adieresis -33
-KPX D Agrave -33
-KPX D Aring -33
-KPX D Atilde -33
-KPX D J -1
-KPX D T -30
-KPX D V -32
-KPX D W -18
-KPX D X -38
-KPX D Y -44
-KPX F A -55
-KPX F Aacute -55
-KPX F Acircumflex -55
-KPX F Adieresis -55
-KPX F Agrave -55
-KPX F Aring -55
-KPX F Atilde -55
-KPX F J -50
-KPX F O -15
-KPX F Odieresis -15
-KPX F a -26
-KPX F aacute -26
-KPX F adieresis -26
-KPX F ae -26
-KPX F aring -26
-KPX F comma -102
-KPX F e -19
-KPX F eacute -19
-KPX F hyphen -12
-KPX F i -8
-KPX F j -8
-KPX F o -17
-KPX F oacute -17
-KPX F odieresis -17
-KPX F oe -17
-KPX F oslash -17
-KPX F period -102
-KPX F r -32
-KPX F u -28
-KPX G A -4
-KPX G AE -2
-KPX G Aacute -4
-KPX G Acircumflex -4
-KPX G Adieresis -4
-KPX G Agrave -4
-KPX G Aring -4
-KPX G Atilde -4
-KPX G T -30
-KPX G V -36
-KPX G W -20
-KPX G Y -47
-KPX J A -22
-KPX J AE -21
-KPX J Adieresis -22
-KPX J Aring -22
-KPX K C -37
-KPX K G -40
-KPX K O -37
-KPX K OE -33
-KPX K Oacute -37
-KPX K Odieresis -37
-KPX K S -27
-KPX K T 22
-KPX K a -6
-KPX K adieresis -6
-KPX K ae -7
-KPX K aring -6
-KPX K e -26
-KPX K hyphen -38
-KPX K o -26
-KPX K oacute -26
-KPX K odieresis -26
-KPX K u -21
-KPX K udieresis -21
-KPX K y -52
-KPX L A 18
-KPX L AE 20
-KPX L Aacute 18
-KPX L Adieresis 18
-KPX L Aring 18
-KPX L C -28
-KPX L Ccedilla -32
-KPX L G -31
-KPX L O -29
-KPX L Oacute -29
-KPX L Ocircumflex -29
-KPX L Odieresis -29
-KPX L Ograve -29
-KPX L Otilde -29
-KPX L S -11
-KPX L T -81
-KPX L U -25
-KPX L Udieresis -25
-KPX L V -78
-KPX L W -50
-KPX L Y -92
-KPX L hyphen -110
-KPX L quotedblright -105
-KPX L quoteright -116
-KPX L u -9
-KPX L udieresis -9
-KPX L y -47
-KPX N A -4
-KPX N AE -2
-KPX N Aacute -4
-KPX N Adieresis -4
-KPX N Aring -4
-KPX N C 0
-KPX N Ccedilla 0
-KPX N G -1
-KPX N O 1
-KPX N Oacute 1
-KPX N Odieresis 1
-KPX N a -1
-KPX N aacute -1
-KPX N adieresis -1
-KPX N ae -1
-KPX N aring -1
-KPX N comma -4
-KPX N e 1
-KPX N eacute 1
-KPX N o 1
-KPX N oacute 1
-KPX N odieresis 1
-KPX N oslash 4
-KPX N period -4
-KPX N u 0
-KPX N udieresis 0
-KPX O A -29
-KPX O AE -29
-KPX O Aacute -29
-KPX O Adieresis -29
-KPX O Aring -29
-KPX O T -27
-KPX O V -30
-KPX O W -14
-KPX O X -35
-KPX O Y -42
-KPX Oacute A -29
-KPX Oacute T -27
-KPX Oacute V -30
-KPX Oacute W -14
-KPX Oacute Y -42
-KPX Ocircumflex T -27
-KPX Ocircumflex V -30
-KPX Ocircumflex Y -42
-KPX Odieresis A -29
-KPX Odieresis T -27
-KPX Odieresis V -30
-KPX Odieresis W -14
-KPX Odieresis X -35
-KPX Odieresis Y -42
-KPX Ograve T -27
-KPX Ograve V -30
-KPX Ograve Y -42
-KPX Oslash A -27
-KPX Otilde T -27
-KPX Otilde V -30
-KPX Otilde Y -42
-KPX P A -62
-KPX P AE -64
-KPX P Aacute -62
-KPX P Adieresis -62
-KPX P Aring -62
-KPX P J -70
-KPX P a -21
-KPX P aacute -21
-KPX P adieresis -21
-KPX P ae -21
-KPX P aring -21
-KPX P comma -123
-KPX P e -24
-KPX P eacute -24
-KPX P hyphen -28
-KPX P o -24
-KPX P oacute -24
-KPX P odieresis -24
-KPX P oe -22
-KPX P oslash -22
-KPX P period -123
-KPX R C -7
-KPX R Ccedilla -7
-KPX R G -9
-KPX R O -6
-KPX R OE -3
-KPX R Oacute -6
-KPX R Odieresis -6
-KPX R T -12
-KPX R U -8
-KPX R Udieresis -8
-KPX R V -22
-KPX R W -15
-KPX R Y -29
-KPX R a -6
-KPX R aacute -6
-KPX R adieresis -6
-KPX R ae -6
-KPX R aring -6
-KPX R e -5
-KPX R eacute -5
-KPX R hyphen 4
-KPX R o -5
-KPX R oacute -5
-KPX R odieresis -5
-KPX R oe -5
-KPX R u -4
-KPX R uacute -5
-KPX R udieresis -5
-KPX R y -1
-KPX S A -15
-KPX S AE -14
-KPX S Aacute -15
-KPX S Adieresis -15
-KPX S Aring -15
-KPX S T -14
-KPX S V -25
-KPX S W -17
-KPX S Y -31
-KPX S t -2
-KPX T A -78
-KPX T AE -76
-KPX T Aacute -78
-KPX T Acircumflex -78
-KPX T Adieresis -78
-KPX T Agrave -78
-KPX T Aring -78
-KPX T Atilde -78
-KPX T C -27
-KPX T G -31
-KPX T J -80
-KPX T O -26
-KPX T OE -22
-KPX T Oacute -26
-KPX T Ocircumflex -26
-KPX T Odieresis -26
-KPX T Ograve -26
-KPX T Oslash -27
-KPX T Otilde -26
-KPX T S -15
-KPX T V 17
-KPX T W 19
-KPX T Y 19
-KPX T a -79
-KPX T ae -79
-KPX T c -73
-KPX T colon -95
-KPX T comma -80
-KPX T e -77
-KPX T g -76
-KPX T guillemotleft -100
-KPX T guilsinglleft -96
-KPX T hyphen -60
-KPX T i -2
-KPX T j -2
-KPX T o -76
-KPX T oslash -72
-KPX T period -80
-KPX T r -77
-KPX T s -74
-KPX T semicolon -93
-KPX T u -75
-KPX T v -79
-KPX T w -80
-KPX T y -79
-KPX U A -32
-KPX U AE -32
-KPX U Aacute -32
-KPX U Acircumflex -32
-KPX U Adieresis -32
-KPX U Aring -32
-KPX U Atilde -32
-KPX U comma -24
-KPX U m -1
-KPX U n -1
-KPX U p 0
-KPX U period -22
-KPX U r -6
-KPX Uacute A -32
-KPX Uacute comma -24
-KPX Uacute m -1
-KPX Uacute n -1
-KPX Uacute p 0
-KPX Uacute period -22
-KPX Uacute r -6
-KPX Ucircumflex A -32
-KPX Udieresis A -32
-KPX Udieresis b 0
-KPX Udieresis comma -24
-KPX Udieresis m -1
-KPX Udieresis n -1
-KPX Udieresis p 0
-KPX Udieresis period -22
-KPX Udieresis r -6
-KPX Ugrave A -32
-KPX V A -58
-KPX V AE -60
-KPX V Aacute -58
-KPX V Acircumflex -58
-KPX V Adieresis -58
-KPX V Agrave -58
-KPX V Aring -58
-KPX V Atilde -58
-KPX V C -31
-KPX V G -34
-KPX V O -30
-KPX V Oacute -30
-KPX V Ocircumflex -30
-KPX V Odieresis -30
-KPX V Ograve -30
-KPX V Oslash -27
-KPX V Otilde -30
-KPX V S -26
-KPX V T 18
-KPX V a -47
-KPX V ae -47
-KPX V colon -41
-KPX V comma -73
-KPX V e -46
-KPX V g -44
-KPX V guillemotleft -68
-KPX V guilsinglleft -64
-KPX V hyphen -29
-KPX V i -5
-KPX V o -46
-KPX V oslash -41
-KPX V period -73
-KPX V r -37
-KPX V semicolon -41
-KPX V u -35
-KPX V y -12
-KPX W A -42
-KPX W AE -43
-KPX W Aacute -42
-KPX W Acircumflex -42
-KPX W Adieresis -42
-KPX W Agrave -42
-KPX W Aring -42
-KPX W Atilde -42
-KPX W C -15
-KPX W G -18
-KPX W O -14
-KPX W Oacute -14
-KPX W Ocircumflex -14
-KPX W Odieresis -14
-KPX W Ograve -14
-KPX W Oslash -12
-KPX W Otilde -14
-KPX W S -19
-KPX W T 20
-KPX W a -29
-KPX W ae -29
-KPX W colon -31
-KPX W comma -46
-KPX W e -26
-KPX W g -24
-KPX W guillemotleft -48
-KPX W guilsinglleft -44
-KPX W hyphen -9
-KPX W i -3
-KPX W o -26
-KPX W oslash -21
-KPX W period -46
-KPX W r -26
-KPX W semicolon -31
-KPX W u -24
-KPX W y -2
-KPX X C -33
-KPX X O -33
-KPX X Odieresis -33
-KPX X Q -33
-KPX X a -12
-KPX X e -31
-KPX X hyphen -40
-KPX X o -31
-KPX X u -27
-KPX X y -42
-KPX Y A -80
-KPX Y AE -82
-KPX Y Aacute -80
-KPX Y Acircumflex -80
-KPX Y Adieresis -80
-KPX Y Agrave -80
-KPX Y Aring -80
-KPX Y Atilde -80
-KPX Y C -43
-KPX Y G -47
-KPX Y O -43
-KPX Y Oacute -43
-KPX Y Ocircumflex -43
-KPX Y Odieresis -43
-KPX Y Ograve -43
-KPX Y Oslash -44
-KPX Y Otilde -43
-KPX Y S -33
-KPX Y T 20
-KPX Y a -73
-KPX Y ae -73
-KPX Y colon -60
-KPX Y comma -92
-KPX Y e -74
-KPX Y g -73
-KPX Y guillemotleft -103
-KPX Y guilsinglleft -99
-KPX Y hyphen -68
-KPX Y i -3
-KPX Y o -74
-KPX Y oslash -69
-KPX Y p -48
-KPX Y period -92
-KPX Y semicolon -60
-KPX Y u -54
-KPX Y v -31
-KPX Z v -24
-KPX Z y -25
-KPX a j -5
-KPX a quoteright -10
-KPX a v -19
-KPX a w -14
-KPX a y -20
-KPX aacute v -19
-KPX aacute w -14
-KPX aacute y -20
-KPX adieresis v -19
-KPX adieresis w -14
-KPX adieresis y -20
-KPX ae v -17
-KPX ae w -11
-KPX ae y -19
-KPX agrave v -19
-KPX agrave w -14
-KPX agrave y -20
-KPX aring v -19
-KPX aring w -14
-KPX aring y -20
-KPX b v -13
-KPX b w -8
-KPX b y -15
-KPX c h 2
-KPX c k 1
-KPX comma one -83
-KPX comma quotedblright -22
-KPX comma quoteright -33
-KPX e quoteright -5
-KPX e t -8
-KPX e v -16
-KPX e w -11
-KPX e x -19
-KPX e y -18
-KPX eacute v -16
-KPX eacute w -11
-KPX eacute y -18
-KPX ecircumflex v -16
-KPX ecircumflex w -11
-KPX ecircumflex y -18
-KPX eight four 6
-KPX eight one -36
-KPX eight seven -16
-KPX f a -9
-KPX f aacute -9
-KPX f adieresis -9
-KPX f ae -9
-KPX f aring -9
-KPX f e -12
-KPX f eacute -12
-KPX f f 17
-KPX f i -5
-KPX f j -5
-KPX f l -5
-KPX f o -12
-KPX f oacute -12
-KPX f odieresis -12
-KPX f oe -12
-KPX f oslash -8
-KPX f quoteright 12
-KPX f s -4
-KPX f t 17
-KPX five four 4
-KPX five one -56
-KPX five seven -16
-KPX four four 8
-KPX four one -65
-KPX four seven -39
-KPX g a 1
-KPX g adieresis 1
-KPX g ae 1
-KPX g aring 1
-KPX g e 4
-KPX g eacute 4
-KPX g l 4
-KPX g oacute 4
-KPX g odieresis 4
-KPX g r 0
-KPX guillemotright A -42
-KPX guillemotright AE -43
-KPX guillemotright Aacute -42
-KPX guillemotright Adieresis -42
-KPX guillemotright Aring -42
-KPX guillemotright T -101
-KPX guillemotright V -68
-KPX guillemotright W -48
-KPX guillemotright Y -102
-KPX guilsinglright A -38
-KPX guilsinglright AE -39
-KPX guilsinglright Aacute -38
-KPX guilsinglright Adieresis -38
-KPX guilsinglright Aring -38
-KPX guilsinglright T -96
-KPX guilsinglright V -64
-KPX guilsinglright W -43
-KPX guilsinglright Y -98
-KPX h quoteright -3
-KPX h y -14
-KPX hyphen A -3
-KPX hyphen AE -4
-KPX hyphen Aacute -3
-KPX hyphen Adieresis -3
-KPX hyphen Aring -3
-KPX hyphen T -61
-KPX hyphen V -29
-KPX hyphen W -9
-KPX hyphen Y -67
-KPX i T -2
-KPX i j 0
-KPX k a -5
-KPX k aacute -5
-KPX k adieresis -5
-KPX k ae -5
-KPX k aring -5
-KPX k comma 1
-KPX k e -19
-KPX k eacute -19
-KPX k g -18
-KPX k hyphen -31
-KPX k o -19
-KPX k oacute -19
-KPX k odieresis -19
-KPX k period 1
-KPX k s -9
-KPX k u -3
-KPX k udieresis -3
-KPX l v -3
-KPX l y -3
-KPX m p 4
-KPX m v -13
-KPX m w -7
-KPX m y -13
-KPX n T -75
-KPX n p 4
-KPX n quoteright -3
-KPX n v -14
-KPX n w -8
-KPX n y -14
-KPX nine four 1
-KPX nine one -31
-KPX nine seven -19
-KPX o T -77
-KPX o quoteright -8
-KPX o t -7
-KPX o v -15
-KPX o w -9
-KPX o x -18
-KPX o y -17
-KPX oacute v -15
-KPX oacute w -9
-KPX oacute y -17
-KPX ocircumflex t -7
-KPX odieresis t -7
-KPX odieresis v -15
-KPX odieresis w -9
-KPX odieresis x -18
-KPX odieresis y -17
-KPX ograve v -15
-KPX ograve w -9
-KPX ograve y -17
-KPX one comma -54
-KPX one eight -46
-KPX one five -49
-KPX one four -59
-KPX one nine -47
-KPX one one -90
-KPX one period -54
-KPX one seven -64
-KPX one six -44
-KPX one three -51
-KPX one two -50
-KPX one zero -43
-KPX p t -6
-KPX p y -15
-KPX period one -83
-KPX period quotedblright -22
-KPX period quoteright -33
-KPX q c 6
-KPX q u 1
-KPX quotedblbase A 24
-KPX quotedblbase AE 25
-KPX quotedblbase T -60
-KPX quotedblbase V -53
-KPX quotedblbase W -25
-KPX quotedblbase Y -71
-KPX quotedblleft A -41
-KPX quotedblleft AE -44
-KPX quotedblleft Aacute -41
-KPX quotedblleft Adieresis -41
-KPX quotedblleft Aring -41
-KPX quotedblleft T 16
-KPX quotedblleft V 24
-KPX quotedblleft W 31
-KPX quotedblleft Y 14
-KPX quotedblright A -49
-KPX quotedblright AE -52
-KPX quotedblright Aacute -49
-KPX quotedblright Adieresis -49
-KPX quotedblright Aring -49
-KPX quotedblright T 11
-KPX quotedblright V 16
-KPX quotedblright W 23
-KPX quotedblright Y 9
-KPX quoteleft A -52
-KPX quoteleft AE -55
-KPX quoteleft Aacute -52
-KPX quoteleft Adieresis -52
-KPX quoteleft Aring -52
-KPX quoteleft T 5
-KPX quoteleft V 13
-KPX quoteleft W 20
-KPX quoteleft Y 3
-KPX quoteright A -60
-KPX quoteright AE -63
-KPX quoteright Aacute -60
-KPX quoteright Adieresis -60
-KPX quoteright Aring -60
-KPX quoteright comma -48
-KPX quoteright d -16
-KPX quoteright o -24
-KPX quoteright period -48
-KPX quoteright r -15
-KPX quoteright s -13
-KPX quoteright t -3
-KPX quoteright v 0
-KPX quoteright w 1
-KPX quoteright y 0
-KPX r a -3
-KPX r aacute -3
-KPX r acircumflex -3
-KPX r adieresis -3
-KPX r ae -3
-KPX r agrave -3
-KPX r aring -3
-KPX r c -6
-KPX r ccedilla -3
-KPX r colon -5
-KPX r comma -48
-KPX r d -4
-KPX r e -10
-KPX r eacute -10
-KPX r ecircumflex -10
-KPX r egrave -10
-KPX r f 23
-KPX r g -4
-KPX r h 2
-KPX r hyphen -30
-KPX r i 1
-KPX r j 0
-KPX r k 1
-KPX r l 1
-KPX r m 2
-KPX r n 2
-KPX r o -11
-KPX r oacute -11
-KPX r ocircumflex -11
-KPX r odieresis -11
-KPX r oe -7
-KPX r ograve -11
-KPX r oslash -7
-KPX r p 4
-KPX r period -48
-KPX r q -4
-KPX r quoteright 14
-KPX r r -3
-KPX r s 2
-KPX r semicolon -5
-KPX r t 23
-KPX r u 0
-KPX r v 24
-KPX r w 22
-KPX r x 19
-KPX r y 23
-KPX r z 6
-KPX s quoteright -5
-KPX s t -5
-KPX seven colon -47
-KPX seven comma -95
-KPX seven eight -15
-KPX seven five -22
-KPX seven four -72
-KPX seven one -34
-KPX seven period -95
-KPX seven seven 3
-KPX seven six -24
-KPX seven three -14
-KPX seven two -14
-KPX six four 6
-KPX six one -31
-KPX six seven -13
-KPX t S -8
-KPX t a 1
-KPX t aacute 1
-KPX t adieresis 1
-KPX t ae 1
-KPX t aring 1
-KPX t colon -13
-KPX t e -10
-KPX t eacute -10
-KPX t h 1
-KPX t o -10
-KPX t oacute -10
-KPX t odieresis -10
-KPX t quoteright 10
-KPX t semicolon -13
-KPX three four 8
-KPX three one -34
-KPX three seven -15
-KPX two four -38
-KPX two one -29
-KPX two seven -14
-KPX u quoteright 5
-KPX v a -16
-KPX v aacute -16
-KPX v acircumflex -16
-KPX v adieresis -16
-KPX v ae -16
-KPX v agrave -16
-KPX v aring -16
-KPX v atilde -16
-KPX v c -12
-KPX v colon -8
-KPX v comma -50
-KPX v e -16
-KPX v eacute -16
-KPX v ecircumflex -16
-KPX v egrave -16
-KPX v g -15
-KPX v hyphen -3
-KPX v l -2
-KPX v o -16
-KPX v oacute -16
-KPX v odieresis -16
-KPX v ograve -16
-KPX v oslash -12
-KPX v period -50
-KPX v s -10
-KPX v semicolon -8
-KPX w a -13
-KPX w aacute -13
-KPX w acircumflex -13
-KPX w adieresis -13
-KPX w ae -13
-KPX w agrave -13
-KPX w aring -13
-KPX w atilde -13
-KPX w c -5
-KPX w colon -10
-KPX w comma -37
-KPX w e -9
-KPX w eacute -9
-KPX w ecircumflex -9
-KPX w egrave -9
-KPX w g -8
-KPX w hyphen 3
-KPX w l -4
-KPX w o -9
-KPX w oacute -9
-KPX w odieresis -9
-KPX w ograve -9
-KPX w oslash -5
-KPX w period -37
-KPX w s -7
-KPX w semicolon -10
-KPX x a -10
-KPX x c -13
-KPX x e -17
-KPX x eacute -17
-KPX x o -17
-KPX x q -14
-KPX y a -16
-KPX y aacute -16
-KPX y acircumflex -16
-KPX y adieresis -16
-KPX y ae -16
-KPX y agrave -16
-KPX y aring -16
-KPX y atilde -16
-KPX y c -13
-KPX y colon -9
-KPX y comma -49
-KPX y e -17
-KPX y eacute -17
-KPX y ecircumflex -17
-KPX y egrave -17
-KPX y g -15
-KPX y hyphen -2
-KPX y l -3
-KPX y o -16
-KPX y oacute -16
-KPX y odieresis -16
-KPX y ograve -16
-KPX y oslash -12
-KPX y period -49
-KPX y s -11
-KPX y semicolon -9
-KPX zero four 5
-KPX zero one -31
-KPX zero seven -21
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019043l.pfb b/Master/xemtex/gsfonts/n019043l.pfb
deleted file mode 100644
index 86f564b66b7..00000000000
--- a/Master/xemtex/gsfonts/n019043l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019043l.pfm b/Master/xemtex/gsfonts/n019043l.pfm
deleted file mode 100644
index 62582b5489e..00000000000
--- a/Master/xemtex/gsfonts/n019043l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019044l.afm b/Master/xemtex/gsfonts/n019044l.afm
deleted file mode 100644
index 80aef675ee9..00000000000
--- a/Master/xemtex/gsfonts/n019044l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-BoldCond
-FullName Nimbus Sans L Bold Condensed
-FamilyName Nimbus Sans L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -139 -307 822 975
-CapHeight 718
-XHeight 532
-Descender -207
-Ascender 718
-StartCharMetrics 316
-C 32 ; WX 228 ; N space ; B 21 0 21 0 ;
-C 33 ; WX 273 ; N exclam ; B 74 0 200 718 ;
-C 34 ; WX 389 ; N quotedbl ; B 80 447 308 718 ;
-C 35 ; WX 456 ; N numbersign ; B 15 0 441 698 ;
-C 36 ; WX 456 ; N dollar ; B 24 -115 429 775 ;
-C 37 ; WX 729 ; N percent ; B 23 -19 706 710 ;
-C 38 ; WX 592 ; N ampersand ; B 44 -19 575 718 ;
-C 39 ; WX 228 ; N quoteright ; B 57 445 171 718 ;
-C 40 ; WX 273 ; N parenleft ; B 29 -207 257 734 ;
-C 41 ; WX 273 ; N parenright ; B 16 -207 244 734 ;
-C 42 ; WX 319 ; N asterisk ; B 22 387 297 718 ;
-C 43 ; WX 479 ; N plus ; B 33 0 446 506 ;
-C 44 ; WX 228 ; N comma ; B 52 -168 175 147 ;
-C 45 ; WX 273 ; N hyphen ; B 22 215 251 345 ;
-C 46 ; WX 228 ; N period ; B 52 0 175 147 ;
-C 47 ; WX 228 ; N slash ; B -27 -19 255 737 ;
-C 48 ; WX 456 ; N zero ; B 26 -19 430 710 ;
-C 49 ; WX 456 ; N one ; B 57 0 310 710 ;
-C 50 ; WX 456 ; N two ; B 21 0 419 710 ;
-C 51 ; WX 456 ; N three ; B 22 -19 423 710 ;
-C 52 ; WX 456 ; N four ; B 22 0 431 710 ;
-C 53 ; WX 456 ; N five ; B 22 -19 423 698 ;
-C 54 ; WX 456 ; N six ; B 25 -19 426 710 ;
-C 55 ; WX 456 ; N seven ; B 20 0 433 698 ;
-C 56 ; WX 456 ; N eight ; B 26 -19 430 710 ;
-C 57 ; WX 456 ; N nine ; B 25 -19 428 710 ;
-C 58 ; WX 273 ; N colon ; B 75 0 198 512 ;
-C 59 ; WX 273 ; N semicolon ; B 75 -168 198 512 ;
-C 60 ; WX 479 ; N less ; B 31 -15 448 521 ;
-C 61 ; WX 479 ; N equal ; B 33 87 446 419 ;
-C 62 ; WX 479 ; N greater ; B 31 -15 448 521 ;
-C 63 ; WX 501 ; N question ; B 49 0 456 727 ;
-C 64 ; WX 800 ; N at ; B 97 -19 702 737 ;
-C 65 ; WX 592 ; N A ; B 16 0 576 718 ;
-C 66 ; WX 592 ; N B ; B 62 0 549 718 ;
-C 67 ; WX 592 ; N C ; B 36 -19 561 737 ;
-C 68 ; WX 592 ; N D ; B 62 0 562 718 ;
-C 69 ; WX 547 ; N E ; B 62 0 509 718 ;
-C 70 ; WX 501 ; N F ; B 62 0 481 718 ;
-C 71 ; WX 638 ; N G ; B 36 -19 585 737 ;
-C 72 ; WX 592 ; N H ; B 58 0 534 718 ;
-C 73 ; WX 228 ; N I ; B 52 0 175 718 ;
-C 74 ; WX 456 ; N J ; B 18 -18 397 718 ;
-C 75 ; WX 592 ; N K ; B 71 0 592 718 ;
-C 76 ; WX 501 ; N L ; B 62 0 478 718 ;
-C 77 ; WX 683 ; N M ; B 57 0 627 718 ;
-C 78 ; WX 592 ; N N ; B 57 0 536 718 ;
-C 79 ; WX 638 ; N O ; B 36 -19 602 737 ;
-C 80 ; WX 547 ; N P ; B 62 0 514 718 ;
-C 81 ; WX 638 ; N Q ; B 36 -52 604 737 ;
-C 82 ; WX 592 ; N R ; B 62 0 555 718 ;
-C 83 ; WX 547 ; N S ; B 32 -19 516 737 ;
-C 84 ; WX 501 ; N T ; B 11 0 490 718 ;
-C 85 ; WX 592 ; N U ; B 59 -19 534 718 ;
-C 86 ; WX 547 ; N V ; B 16 0 531 718 ;
-C 87 ; WX 774 ; N W ; B 13 0 762 718 ;
-C 88 ; WX 547 ; N X ; B 11 0 535 718 ;
-C 89 ; WX 547 ; N Y ; B 12 0 535 718 ;
-C 90 ; WX 501 ; N Z ; B 20 0 481 718 ;
-C 91 ; WX 273 ; N bracketleft ; B 52 -196 253 722 ;
-C 92 ; WX 228 ; N backslash ; B -27 -19 255 737 ;
-C 93 ; WX 273 ; N bracketright ; B 20 -196 221 722 ;
-C 94 ; WX 479 ; N asciicircum ; B 51 323 428 698 ;
-C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ;
-C 96 ; WX 228 ; N quoteleft ; B 57 454 171 727 ;
-C 97 ; WX 456 ; N a ; B 24 -14 432 546 ;
-C 98 ; WX 501 ; N b ; B 50 -14 474 718 ;
-C 99 ; WX 456 ; N c ; B 28 -14 430 546 ;
-C 100 ; WX 501 ; N d ; B 28 -14 452 718 ;
-C 101 ; WX 456 ; N e ; B 19 -14 433 546 ;
-C 102 ; WX 273 ; N f ; B 8 0 261 727 ;
-C 103 ; WX 501 ; N g ; B 33 -217 453 546 ;
-C 104 ; WX 501 ; N h ; B 53 0 448 718 ;
-C 105 ; WX 228 ; N i ; B 57 0 171 725 ;
-C 106 ; WX 228 ; N j ; B 2 -214 171 725 ;
-C 107 ; WX 456 ; N k ; B 57 0 461 718 ;
-C 108 ; WX 228 ; N l ; B 57 0 171 718 ;
-C 109 ; WX 729 ; N m ; B 52 0 677 546 ;
-C 110 ; WX 501 ; N n ; B 53 0 448 546 ;
-C 111 ; WX 501 ; N o ; B 28 -14 474 546 ;
-C 112 ; WX 501 ; N p ; B 51 -207 474 546 ;
-C 113 ; WX 501 ; N q ; B 28 -207 453 546 ;
-C 114 ; WX 319 ; N r ; B 52 0 306 546 ;
-C 115 ; WX 456 ; N s ; B 25 -14 426 546 ;
-C 116 ; WX 273 ; N t ; B 8 -6 253 676 ;
-C 117 ; WX 501 ; N u ; B 54 -14 447 532 ;
-C 118 ; WX 456 ; N v ; B 11 0 445 532 ;
-C 119 ; WX 638 ; N w ; B 8 0 631 532 ;
-C 120 ; WX 456 ; N x ; B 12 0 444 532 ;
-C 121 ; WX 456 ; N y ; B 8 -214 442 532 ;
-C 122 ; WX 410 ; N z ; B 16 0 394 532 ;
-C 123 ; WX 319 ; N braceleft ; B 39 -196 299 722 ;
-C 124 ; WX 230 ; N bar ; B 69 -19 161 737 ;
-C 125 ; WX 319 ; N braceright ; B 20 -196 280 722 ;
-C 126 ; WX 479 ; N asciitilde ; B 50 173 429 336 ;
-C 161 ; WX 273 ; N exclamdown ; B 74 -186 200 532 ;
-C 162 ; WX 456 ; N cent ; B 28 -118 430 628 ;
-C 163 ; WX 456 ; N sterling ; B 23 -16 444 718 ;
-C 164 ; WX 137 ; N fraction ; B -139 -19 276 710 ;
-C 165 ; WX 456 ; N yen ; B -7 0 463 698 ;
-C 166 ; WX 456 ; N florin ; B -8 -210 423 737 ;
-C 167 ; WX 456 ; N section ; B 28 -184 428 727 ;
-C 168 ; WX 456 ; N currency ; B -2 76 458 636 ;
-C 169 ; WX 195 ; N quotesingle ; B 57 447 138 718 ;
-C 170 ; WX 410 ; N quotedblleft ; B 52 454 358 727 ;
-C 171 ; WX 456 ; N guillemotleft ; B 72 76 384 484 ;
-C 172 ; WX 273 ; N guilsinglleft ; B 68 76 205 484 ;
-C 173 ; WX 273 ; N guilsinglright ; B 68 76 205 484 ;
-C 174 ; WX 501 ; N fi ; B 8 0 444 727 ;
-C 175 ; WX 501 ; N fl ; B 8 0 444 727 ;
-C 177 ; WX 456 ; N endash ; B 0 226 456 333 ;
-C 178 ; WX 456 ; N dagger ; B 30 -171 426 718 ;
-C 179 ; WX 456 ; N daggerdbl ; B 30 -171 426 718 ;
-C 180 ; WX 228 ; N periodcentered ; B 48 172 180 334 ;
-C 182 ; WX 456 ; N paragraph ; B -7 -191 442 700 ;
-C 183 ; WX 287 ; N bullet ; B 8 194 279 524 ;
-C 184 ; WX 228 ; N quotesinglbase ; B 57 -146 171 127 ;
-C 185 ; WX 410 ; N quotedblbase ; B 52 -146 358 127 ;
-C 186 ; WX 410 ; N quotedblright ; B 52 445 358 718 ;
-C 187 ; WX 456 ; N guillemotright ; B 72 76 384 484 ;
-C 188 ; WX 820 ; N ellipsis ; B 75 0 745 147 ;
-C 189 ; WX 820 ; N perthousand ; B -2 -19 822 710 ;
-C 191 ; WX 501 ; N questiondown ; B 45 -195 452 532 ;
-C 193 ; WX 273 ; N grave ; B -19 604 184 750 ;
-C 194 ; WX 273 ; N acute ; B 89 604 292 750 ;
-C 195 ; WX 273 ; N circumflex ; B -8 604 281 750 ;
-C 196 ; WX 273 ; N tilde ; B -14 610 287 737 ;
-C 197 ; WX 273 ; N macron ; B -5 605 278 678 ;
-C 198 ; WX 273 ; N breve ; B -2 604 275 750 ;
-C 199 ; WX 273 ; N dotaccent ; B 85 614 189 729 ;
-C 200 ; WX 273 ; N dieresis ; B 5 614 268 729 ;
-C 202 ; WX 273 ; N ring ; B 48 568 225 776 ;
-C 203 ; WX 273 ; N cedilla ; B 5 -228 201 0 ;
-C 205 ; WX 273 ; N hungarumlaut ; B 7 604 399 750 ;
-C 206 ; WX 273 ; N ogonek ; B 58 -228 249 0 ;
-C 207 ; WX 273 ; N caron ; B -8 604 281 750 ;
-C 208 ; WX 820 ; N emdash ; B 0 226 820 333 ;
-C 225 ; WX 820 ; N AE ; B 4 0 782 718 ;
-C 227 ; WX 303 ; N ordfeminine ; B 18 276 285 737 ;
-C 232 ; WX 501 ; N Lslash ; B -16 0 478 718 ;
-C 233 ; WX 638 ; N Oslash ; B 27 -27 610 745 ;
-C 234 ; WX 820 ; N OE ; B 30 -19 788 737 ;
-C 235 ; WX 299 ; N ordmasculine ; B 5 276 295 737 ;
-C 241 ; WX 729 ; N ae ; B 24 -14 704 546 ;
-C 245 ; WX 228 ; N dotlessi ; B 57 0 171 532 ;
-C 248 ; WX 228 ; N lslash ; B -15 0 243 718 ;
-C 249 ; WX 501 ; N oslash ; B 18 -29 483 560 ;
-C 250 ; WX 774 ; N oe ; B 28 -14 748 546 ;
-C 251 ; WX 501 ; N germandbls ; B 57 -14 475 731 ;
-C -1 ; WX 592 ; N Udieresis ; B 59 -19 534 915 ;
-C -1 ; WX 592 ; N Uacute ; B 59 -19 534 936 ;
-C -1 ; WX 547 ; N Scedilla ; B 32 -228 516 737 ;
-C -1 ; WX 501 ; N Tcaron ; B 11 0 490 936 ;
-C -1 ; WX 547 ; N Scaron ; B 32 -19 516 936 ;
-C -1 ; WX 592 ; N Rcaron ; B 62 0 555 936 ;
-C -1 ; WX 592 ; N Racute ; B 62 0 555 936 ;
-C -1 ; WX 547 ; N Sacute ; B 32 -19 516 936 ;
-C -1 ; WX 638 ; N Otilde ; B 36 -19 602 923 ;
-C -1 ; WX 501 ; N ucircumflex ; B 54 -14 447 750 ;
-C -1 ; WX 638 ; N Ohungarumlaut ; B 36 -19 602 936 ;
-C -1 ; WX 592 ; N Uhungarumlaut ; B 59 -19 559 936 ;
-C -1 ; WX 547 ; N Yacute ; B 12 0 535 936 ;
-C -1 ; WX 592 ; N Eth ; B -4 0 562 718 ;
-C -1 ; WX 592 ; N Dcroat ; B -4 0 562 718 ;
-C -1 ; WX 501 ; N Zacute ; B 20 0 481 936 ;
-C -1 ; WX 592 ; N Uring ; B 59 -19 534 962 ;
-C -1 ; WX 501 ; N gbreve ; B 33 -217 453 750 ;
-C -1 ; WX 456 ; N eogonek ; B 19 -228 433 546 ;
-C -1 ; WX 456 ; N edotaccent ; B 19 -14 433 729 ;
-C -1 ; WX 456 ; N ecaron ; B 19 -14 433 750 ;
-C -1 ; WX 592 ; N Ugrave ; B 59 -19 534 936 ;
-C -1 ; WX 547 ; N Thorn ; B 62 0 514 718 ;
-C -1 ; WX 456 ; N eacute ; B 19 -14 433 750 ;
-C -1 ; WX 456 ; N edieresis ; B 19 -14 433 729 ;
-C -1 ; WX 561 ; N dcaron ; B 28 -14 581 718 ;
-C -1 ; WX 456 ; N ccedilla ; B 28 -228 430 546 ;
-C -1 ; WX 456 ; N ccaron ; B 28 -14 430 750 ;
-C -1 ; WX 456 ; N cacute ; B 28 -14 430 750 ;
-C -1 ; WX 456 ; N aogonek ; B 24 -228 465 546 ;
-C -1 ; WX 456 ; N aring ; B 24 -14 432 803 ;
-C -1 ; WX 456 ; N atilde ; B 24 -14 432 737 ;
-C -1 ; WX 456 ; N abreve ; B 24 -14 432 750 ;
-C -1 ; WX 456 ; N egrave ; B 19 -14 433 750 ;
-C -1 ; WX 456 ; N agrave ; B 24 -14 432 750 ;
-C -1 ; WX 456 ; N aacute ; B 24 -14 432 750 ;
-C -1 ; WX 456 ; N adieresis ; B 24 -14 432 729 ;
-C -1 ; WX 592 ; N Uogonek ; B 59 -228 534 718 ;
-C -1 ; WX 501 ; N ugrave ; B 54 -14 447 750 ;
-C -1 ; WX 501 ; N uacute ; B 54 -14 447 750 ;
-C -1 ; WX 501 ; N udieresis ; B 54 -14 447 729 ;
-C -1 ; WX 338 ; N tcaron ; B 8 -6 358 718 ;
-C -1 ; WX 456 ; N scommaaccent ; B 25 -307 426 546 ;
-C -1 ; WX 501 ; N Zcaron ; B 20 0 481 936 ;
-C -1 ; WX 456 ; N ecircumflex ; B 19 -14 433 750 ;
-C -1 ; WX 592 ; N Ucircumflex ; B 59 -19 534 936 ;
-C -1 ; WX 456 ; N acircumflex ; B 24 -14 432 750 ;
-C -1 ; WX 501 ; N Zdotaccent ; B 20 0 481 915 ;
-C -1 ; WX 456 ; N scaron ; B 25 -14 426 750 ;
-C -1 ; WX 592 ; N Amacron ; B 16 0 576 864 ;
-C -1 ; WX 456 ; N sacute ; B 25 -14 426 750 ;
-C -1 ; WX 501 ; N Tcommaaccent ; B 11 -307 490 718 ;
-C -1 ; WX 547 ; N Ydieresis ; B 12 0 535 915 ;
-C -1 ; WX 501 ; N thorn ; B 51 -207 474 718 ;
-C -1 ; WX 547 ; N Emacron ; B 62 0 509 864 ;
-C -1 ; WX 638 ; N Ograve ; B 36 -19 602 936 ;
-C -1 ; WX 638 ; N Oacute ; B 36 -19 602 936 ;
-C -1 ; WX 638 ; N Odieresis ; B 36 -19 602 915 ;
-C -1 ; WX 592 ; N Ntilde ; B 57 0 536 923 ;
-C -1 ; WX 592 ; N Ncaron ; B 57 0 536 936 ;
-C -1 ; WX 592 ; N Nacute ; B 57 0 536 936 ;
-C -1 ; WX 501 ; N Lcaron ; B 62 0 478 718 ;
-C -1 ; WX 501 ; N Lacute ; B 62 0 478 936 ;
-C -1 ; WX 228 ; N Idotaccent ; B 52 0 175 915 ;
-C -1 ; WX 319 ; N racute ; B 52 0 315 750 ;
-C -1 ; WX 228 ; N Icircumflex ; B -30 0 259 936 ;
-C -1 ; WX 501 ; N ohungarumlaut ; B 28 -14 513 750 ;
-C -1 ; WX 501 ; N otilde ; B 28 -14 474 737 ;
-C -1 ; WX 440 ; N Euro ; B 0 -12 433 678 ;
-C -1 ; WX 501 ; N ocircumflex ; B 28 -14 474 750 ;
-C -1 ; WX 273 ; N onesuperior ; B 21 283 194 710 ;
-C -1 ; WX 273 ; N twosuperior ; B 7 283 266 722 ;
-C -1 ; WX 273 ; N threesuperior ; B 7 271 267 722 ;
-C -1 ; WX 228 ; N Igrave ; B -41 0 175 936 ;
-C -1 ; WX 228 ; N Iacute ; B 52 0 270 936 ;
-C -1 ; WX 228 ; N Imacron ; B -28 0 255 864 ;
-C -1 ; WX 228 ; N Iogonek ; B 17 -228 208 718 ;
-C -1 ; WX 228 ; N Idieresis ; B -17 0 246 915 ;
-C -1 ; WX 638 ; N Gbreve ; B 36 -19 585 936 ;
-C -1 ; WX 592 ; N Umacron ; B 59 -19 534 864 ;
-C -1 ; WX 592 ; N Kcommaaccent ; B 71 -307 592 718 ;
-C -1 ; WX 501 ; N ograve ; B 28 -14 474 750 ;
-C -1 ; WX 547 ; N Scommaaccent ; B 32 -307 516 737 ;
-C -1 ; WX 547 ; N Eogonek ; B 62 -228 542 718 ;
-C -1 ; WX 501 ; N oacute ; B 28 -14 474 750 ;
-C -1 ; WX 547 ; N Edotaccent ; B 62 0 509 915 ;
-C -1 ; WX 228 ; N iogonek ; B 13 -228 204 725 ;
-C -1 ; WX 501 ; N gcommaaccent ; B 33 -217 453 853 ;
-C -1 ; WX 501 ; N odieresis ; B 28 -14 474 729 ;
-C -1 ; WX 501 ; N ntilde ; B 53 0 448 737 ;
-C -1 ; WX 501 ; N ncaron ; B 53 0 448 750 ;
-C -1 ; WX 547 ; N Ecaron ; B 62 0 509 936 ;
-C -1 ; WX 547 ; N Ecircumflex ; B 62 0 509 936 ;
-C -1 ; WX 456 ; N scedilla ; B 25 -228 426 546 ;
-C -1 ; WX 319 ; N rcaron ; B 30 0 319 750 ;
-C -1 ; WX 547 ; N Egrave ; B 62 0 509 936 ;
-C -1 ; WX 547 ; N Eacute ; B 62 0 509 936 ;
-C -1 ; WX 638 ; N Gcommaaccent ; B 36 -307 585 737 ;
-C -1 ; WX 592 ; N Rcommaaccent ; B 62 -307 555 718 ;
-C -1 ; WX 547 ; N Edieresis ; B 62 0 509 915 ;
-C -1 ; WX 501 ; N nacute ; B 53 0 448 750 ;
-C -1 ; WX 501 ; N uogonek ; B 54 -228 480 532 ;
-C -1 ; WX 501 ; N umacron ; B 54 -14 447 678 ;
-C -1 ; WX 592 ; N Dcaron ; B 62 0 562 936 ;
-C -1 ; WX 280 ; N lcaron ; B 57 0 300 718 ;
-C -1 ; WX 592 ; N Ccaron ; B 36 -19 561 936 ;
-C -1 ; WX 592 ; N Cacute ; B 36 -19 561 936 ;
-C -1 ; WX 592 ; N Ccedilla ; B 36 -228 561 737 ;
-C -1 ; WX 328 ; N degree ; B 47 426 281 712 ;
-C -1 ; WX 592 ; N Aogonek ; B 16 -228 609 718 ;
-C -1 ; WX 479 ; N minus ; B 33 197 446 309 ;
-C -1 ; WX 479 ; N multiply ; B 33 1 447 505 ;
-C -1 ; WX 479 ; N divide ; B 33 -42 446 548 ;
-C -1 ; WX 592 ; N Aring ; B 16 0 576 975 ;
-C -1 ; WX 820 ; N trademark ; B 36 306 784 718 ;
-C -1 ; WX 319 ; N rcommaaccent ; B 52 -307 306 546 ;
-C -1 ; WX 228 ; N lacute ; B 57 0 270 936 ;
-C -1 ; WX 501 ; N omacron ; B 28 -14 474 678 ;
-C -1 ; WX 592 ; N Atilde ; B 16 0 576 923 ;
-C -1 ; WX 228 ; N icircumflex ; B -30 0 259 750 ;
-C -1 ; WX 228 ; N igrave ; B -41 0 171 750 ;
-C -1 ; WX 501 ; N ncommaaccent ; B 53 -307 448 546 ;
-C -1 ; WX 228 ; N lcommaaccent ; B 57 -307 171 718 ;
-C -1 ; WX 479 ; N plusminus ; B 33 0 446 578 ;
-C -1 ; WX 684 ; N onehalf ; B 21 -19 651 710 ;
-C -1 ; WX 684 ; N onequarter ; B 21 -19 628 710 ;
-C -1 ; WX 684 ; N threequarters ; B 13 -19 655 722 ;
-C -1 ; WX 228 ; N iacute ; B 57 0 270 750 ;
-C -1 ; WX 592 ; N Abreve ; B 16 0 576 936 ;
-C -1 ; WX 456 ; N kcommaaccent ; B 57 -307 461 718 ;
-C -1 ; WX 638 ; N Omacron ; B 36 -19 602 864 ;
-C -1 ; WX 228 ; N imacron ; B -28 0 255 678 ;
-C -1 ; WX 456 ; N emacron ; B 19 -14 433 678 ;
-C -1 ; WX 456 ; N amacron ; B 24 -14 432 678 ;
-C -1 ; WX 273 ; N tcommaaccent ; B 8 -307 253 676 ;
-C -1 ; WX 456 ; N ydieresis ; B 8 -214 442 729 ;
-C -1 ; WX 410 ; N zdotaccent ; B 16 0 394 729 ;
-C -1 ; WX 410 ; N zcaron ; B 16 0 394 750 ;
-C -1 ; WX 410 ; N zacute ; B 16 0 394 750 ;
-C -1 ; WX 456 ; N yacute ; B 8 -214 442 750 ;
-C -1 ; WX 501 ; N uhungarumlaut ; B 54 -14 513 750 ;
-C -1 ; WX 501 ; N eth ; B 28 -14 474 737 ;
-C -1 ; WX 501 ; N uring ; B 54 -14 447 776 ;
-C -1 ; WX 638 ; N Ocircumflex ; B 36 -19 602 936 ;
-C -1 ; WX 273 ; N commaaccent ; B 83 -307 191 -60 ;
-C -1 ; WX 604 ; N copyright ; B -9 -19 614 737 ;
-C -1 ; WX 604 ; N registered ; B -9 -19 613 737 ;
-C -1 ; WX 592 ; N Acircumflex ; B 16 0 576 936 ;
-C -1 ; WX 228 ; N idieresis ; B -17 0 246 729 ;
-C -1 ; WX 405 ; N lozenge ; B 15 0 382 740 ;
-C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ;
-C -1 ; WX 479 ; N notequal ; B 33 -16 446 522 ;
-C -1 ; WX 450 ; N radical ; B -27 -35 448 918 ;
-C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ;
-C -1 ; WX 592 ; N Aacute ; B 16 0 576 936 ;
-C -1 ; WX 479 ; N lessequal ; B 31 0 448 672 ;
-C -1 ; WX 479 ; N greaterequal ; B 31 0 448 672 ;
-C -1 ; WX 479 ; N logicalnot ; B 33 108 446 419 ;
-C -1 ; WX 585 ; N summation ; B 12 -123 570 752 ;
-C -1 ; WX 405 ; N partialdiff ; B 12 -21 388 743 ;
-C -1 ; WX 592 ; N Ncommaaccent ; B 57 -307 536 718 ;
-C -1 ; WX 501 ; N dcroat ; B 28 -14 501 718 ;
-C -1 ; WX 230 ; N brokenbar ; B 69 -19 161 737 ;
-C -1 ; WX 501 ; N Lcommaaccent ; B 62 -307 478 718 ;
-C -1 ; WX 592 ; N Adieresis ; B 16 0 576 915 ;
-C -1 ; WX 501 ; N mu ; B 54 -207 447 532 ;
-C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -26
-KPX A Ccedilla -26
-KPX A G -27
-KPX A O -27
-KPX A Odieresis -27
-KPX A Q -27
-KPX A T -62
-KPX A U -24
-KPX A Uacute -24
-KPX A Ucircumflex -24
-KPX A Udieresis -24
-KPX A Ugrave -24
-KPX A V -50
-KPX A W -41
-KPX A Y -69
-KPX A a -1
-KPX A b -1
-KPX A c -11
-KPX A ccedilla -11
-KPX A comma 17
-KPX A d -11
-KPX A e -7
-KPX A g -16
-KPX A guillemotleft -35
-KPX A guilsinglleft -33
-KPX A hyphen 7
-KPX A o -14
-KPX A period 17
-KPX A q -12
-KPX A quotedblright -47
-KPX A quoteright -50
-KPX A t -12
-KPX A u -12
-KPX A v -29
-KPX A w -19
-KPX A y -27
-KPX Aacute C -26
-KPX Aacute G -27
-KPX Aacute O -27
-KPX Aacute Q -27
-KPX Aacute T -62
-KPX Aacute U -24
-KPX Aacute V -50
-KPX Aacute W -41
-KPX Aacute Y -69
-KPX Aacute a -1
-KPX Aacute b -1
-KPX Aacute c -11
-KPX Aacute comma 17
-KPX Aacute d -11
-KPX Aacute e -7
-KPX Aacute g -16
-KPX Aacute guillemotleft -35
-KPX Aacute guilsinglleft -33
-KPX Aacute hyphen 7
-KPX Aacute o -14
-KPX Aacute period 17
-KPX Aacute q -12
-KPX Aacute quoteright -50
-KPX Aacute t -12
-KPX Aacute u -12
-KPX Aacute v -29
-KPX Aacute w -19
-KPX Aacute y -27
-KPX Acircumflex C -26
-KPX Acircumflex G -27
-KPX Acircumflex O -27
-KPX Acircumflex Q -27
-KPX Acircumflex T -62
-KPX Acircumflex U -24
-KPX Acircumflex V -50
-KPX Acircumflex W -41
-KPX Acircumflex Y -69
-KPX Acircumflex comma 17
-KPX Acircumflex period 17
-KPX Adieresis C -26
-KPX Adieresis G -27
-KPX Adieresis O -27
-KPX Adieresis Q -27
-KPX Adieresis T -62
-KPX Adieresis U -24
-KPX Adieresis V -50
-KPX Adieresis W -41
-KPX Adieresis Y -69
-KPX Adieresis a -1
-KPX Adieresis b -1
-KPX Adieresis c -11
-KPX Adieresis comma 17
-KPX Adieresis d -11
-KPX Adieresis g -16
-KPX Adieresis guillemotleft -35
-KPX Adieresis guilsinglleft -33
-KPX Adieresis hyphen 7
-KPX Adieresis o -14
-KPX Adieresis period 17
-KPX Adieresis q -12
-KPX Adieresis quotedblright -47
-KPX Adieresis quoteright -50
-KPX Adieresis t -12
-KPX Adieresis u -12
-KPX Adieresis v -29
-KPX Adieresis w -19
-KPX Adieresis y -27
-KPX Agrave C -26
-KPX Agrave G -27
-KPX Agrave O -27
-KPX Agrave Q -27
-KPX Agrave T -62
-KPX Agrave U -24
-KPX Agrave V -50
-KPX Agrave W -41
-KPX Agrave Y -69
-KPX Agrave comma 17
-KPX Agrave period 17
-KPX Aring C -26
-KPX Aring G -27
-KPX Aring O -27
-KPX Aring Q -27
-KPX Aring T -62
-KPX Aring U -24
-KPX Aring V -50
-KPX Aring W -41
-KPX Aring Y -69
-KPX Aring a -1
-KPX Aring b -1
-KPX Aring c -11
-KPX Aring comma 17
-KPX Aring d -11
-KPX Aring e -7
-KPX Aring g -16
-KPX Aring guillemotleft -35
-KPX Aring guilsinglleft -33
-KPX Aring hyphen 7
-KPX Aring o -14
-KPX Aring period 17
-KPX Aring q -12
-KPX Aring quotedblright -47
-KPX Aring quoteright -50
-KPX Aring t -12
-KPX Aring u -12
-KPX Aring v -29
-KPX Aring w -19
-KPX Aring y -27
-KPX Atilde C -26
-KPX Atilde G -27
-KPX Atilde O -27
-KPX Atilde Q -27
-KPX Atilde T -62
-KPX Atilde U -24
-KPX Atilde V -50
-KPX Atilde W -41
-KPX Atilde Y -69
-KPX Atilde comma 17
-KPX Atilde period 17
-KPX B A -17
-KPX B AE -11
-KPX B Aacute -17
-KPX B Acircumflex -17
-KPX B Adieresis -17
-KPX B Aring -17
-KPX B Atilde -17
-KPX B O -4
-KPX B OE 1
-KPX B Oacute -4
-KPX B Ocircumflex -4
-KPX B Odieresis -4
-KPX B Ograve -4
-KPX B Oslash -1
-KPX B V -22
-KPX B W -17
-KPX B Y -29
-KPX C A -19
-KPX C AE -14
-KPX C Aacute -19
-KPX C Adieresis -19
-KPX C Aring -19
-KPX C H 1
-KPX C K -5
-KPX C O -2
-KPX C Oacute -2
-KPX C Odieresis -2
-KPX Ccedilla A -21
-KPX D A -24
-KPX D Aacute -24
-KPX D Acircumflex -24
-KPX D Adieresis -24
-KPX D Agrave -24
-KPX D Aring -24
-KPX D Atilde -24
-KPX D J 8
-KPX D T -3
-KPX D V -20
-KPX D W -13
-KPX D X -22
-KPX D Y -31
-KPX F A -43
-KPX F Aacute -43
-KPX F Acircumflex -43
-KPX F Adieresis -43
-KPX F Agrave -43
-KPX F Aring -43
-KPX F Atilde -43
-KPX F J -14
-KPX F O -10
-KPX F Odieresis -10
-KPX F a -15
-KPX F aacute -15
-KPX F adieresis -15
-KPX F ae -16
-KPX F aring -15
-KPX F comma -71
-KPX F e -6
-KPX F eacute -6
-KPX F hyphen 8
-KPX F i -6
-KPX F j -6
-KPX F o -11
-KPX F oacute -11
-KPX F odieresis -11
-KPX F oe -11
-KPX F oslash -11
-KPX F period -71
-KPX F r -22
-KPX F u -23
-KPX G A 1
-KPX G AE 7
-KPX G Aacute 1
-KPX G Acircumflex 1
-KPX G Adieresis 1
-KPX G Agrave 1
-KPX G Aring 1
-KPX G Atilde 1
-KPX G T -6
-KPX G V -24
-KPX G W -15
-KPX G Y -35
-KPX J A -21
-KPX J AE -15
-KPX J Adieresis -21
-KPX J Aring -21
-KPX K C -35
-KPX K G -36
-KPX K O -36
-KPX K OE -30
-KPX K Oacute -36
-KPX K Odieresis -36
-KPX K S -18
-KPX K T 23
-KPX K a 0
-KPX K adieresis 0
-KPX K ae -1
-KPX K aring 0
-KPX K e -17
-KPX K hyphen -26
-KPX K o -25
-KPX K oacute -25
-KPX K odieresis -25
-KPX K u -19
-KPX K udieresis -19
-KPX K y -48
-KPX L A 16
-KPX L AE 22
-KPX L Aacute 16
-KPX L Adieresis 16
-KPX L Aring 16
-KPX L C -13
-KPX L Ccedilla -16
-KPX L G -15
-KPX L O -15
-KPX L Oacute -15
-KPX L Ocircumflex -15
-KPX L Odieresis -15
-KPX L Ograve -15
-KPX L Otilde -15
-KPX L S 3
-KPX L T -70
-KPX L U -12
-KPX L Udieresis -12
-KPX L V -64
-KPX L W -50
-KPX L Y -83
-KPX L hyphen -8
-KPX L quotedblright -115
-KPX L quoteright -118
-KPX L u -7
-KPX L udieresis -7
-KPX L y -41
-KPX N A 0
-KPX N AE 6
-KPX N Aacute 0
-KPX N Adieresis 0
-KPX N Aring 0
-KPX N C 7
-KPX N Ccedilla 7
-KPX N G 6
-KPX N O 6
-KPX N Oacute 6
-KPX N Odieresis 6
-KPX N a 7
-KPX N aacute 7
-KPX N adieresis 7
-KPX N ae 6
-KPX N aring 7
-KPX N comma 12
-KPX N e 12
-KPX N eacute 12
-KPX N o 6
-KPX N oacute 6
-KPX N odieresis 6
-KPX N oslash 7
-KPX N period 12
-KPX N u 5
-KPX N udieresis 5
-KPX O A -28
-KPX O AE -22
-KPX O Aacute -28
-KPX O Adieresis -28
-KPX O Aring -28
-KPX O T -9
-KPX O V -26
-KPX O W -17
-KPX O X -26
-KPX O Y -38
-KPX Oacute A -28
-KPX Oacute T -9
-KPX Oacute V -26
-KPX Oacute W -17
-KPX Oacute Y -38
-KPX Ocircumflex T -9
-KPX Ocircumflex V -26
-KPX Ocircumflex Y -38
-KPX Odieresis A -28
-KPX Odieresis T -9
-KPX Odieresis V -26
-KPX Odieresis W -17
-KPX Odieresis X -26
-KPX Odieresis Y -38
-KPX Ograve T -9
-KPX Ograve V -26
-KPX Ograve Y -38
-KPX Oslash A -24
-KPX Otilde T -9
-KPX Otilde V -26
-KPX Otilde Y -38
-KPX P A -51
-KPX P AE -47
-KPX P Aacute -51
-KPX P Adieresis -51
-KPX P Aring -51
-KPX P J -36
-KPX P a -12
-KPX P aacute -12
-KPX P adieresis -12
-KPX P ae -13
-KPX P aring -12
-KPX P comma -92
-KPX P e -10
-KPX P eacute -10
-KPX P hyphen -3
-KPX P o -16
-KPX P oacute -16
-KPX P odieresis -16
-KPX P oe -16
-KPX P oslash -16
-KPX P period -92
-KPX R C -2
-KPX R Ccedilla -2
-KPX R G -3
-KPX R O -3
-KPX R OE 1
-KPX R Oacute -3
-KPX R Odieresis -3
-KPX R T 3
-KPX R U -1
-KPX R Udieresis -1
-KPX R V -16
-KPX R W -12
-KPX R Y -24
-KPX R a 0
-KPX R aacute 0
-KPX R adieresis 0
-KPX R ae -1
-KPX R aring 0
-KPX R e 2
-KPX R eacute 2
-KPX R hyphen 14
-KPX R o -4
-KPX R oacute -4
-KPX R odieresis -4
-KPX R oe -4
-KPX R u -1
-KPX R uacute -2
-KPX R udieresis -2
-KPX R y 3
-KPX S A -10
-KPX S AE -5
-KPX S Aacute -10
-KPX S Adieresis -10
-KPX S Aring -10
-KPX S T 0
-KPX S V -20
-KPX S W -15
-KPX S Y -27
-KPX S t 2
-KPX T A -63
-KPX T AE -59
-KPX T Aacute -63
-KPX T Acircumflex -63
-KPX T Adieresis -63
-KPX T Agrave -63
-KPX T Aring -63
-KPX T Atilde -63
-KPX T C -8
-KPX T G -10
-KPX T J -67
-KPX T O -9
-KPX T OE -3
-KPX T Oacute -9
-KPX T Ocircumflex -9
-KPX T Odieresis -9
-KPX T Ograve -9
-KPX T Oslash -9
-KPX T Otilde -9
-KPX T S 6
-KPX T V 22
-KPX T W 23
-KPX T Y 23
-KPX T a -62
-KPX T ae -63
-KPX T c -62
-KPX T colon -73
-KPX T comma -55
-KPX T e -58
-KPX T g -65
-KPX T guillemotleft -84
-KPX T guilsinglleft -82
-KPX T hyphen -39
-KPX T i -2
-KPX T j -2
-KPX T o -65
-KPX T oslash -61
-KPX T period -55
-KPX T r -59
-KPX T s -63
-KPX T semicolon -73
-KPX T u -63
-KPX T v -68
-KPX T w -67
-KPX T y -67
-KPX U A -24
-KPX U AE -20
-KPX U Aacute -24
-KPX U Acircumflex -24
-KPX U Adieresis -24
-KPX U Aring -24
-KPX U Atilde -24
-KPX U comma -6
-KPX U m 4
-KPX U n 3
-KPX U p 4
-KPX U period -3
-KPX U r 4
-KPX Uacute A -24
-KPX Uacute comma -6
-KPX Uacute m 4
-KPX Uacute n 3
-KPX Uacute p 4
-KPX Uacute period -3
-KPX Uacute r 4
-KPX Ucircumflex A -24
-KPX Udieresis A -24
-KPX Udieresis b 4
-KPX Udieresis comma -6
-KPX Udieresis m 4
-KPX Udieresis n 3
-KPX Udieresis p 4
-KPX Udieresis period -3
-KPX Udieresis r 4
-KPX Ugrave A -24
-KPX V A -51
-KPX V AE -46
-KPX V Aacute -51
-KPX V Acircumflex -51
-KPX V Adieresis -51
-KPX V Agrave -51
-KPX V Aring -51
-KPX V Atilde -51
-KPX V C -25
-KPX V G -26
-KPX V O -26
-KPX V Oacute -26
-KPX V Ocircumflex -26
-KPX V Odieresis -26
-KPX V Ograve -26
-KPX V Oslash -22
-KPX V Otilde -26
-KPX V S -13
-KPX V T 22
-KPX V a -38
-KPX V ae -39
-KPX V colon -38
-KPX V comma -52
-KPX V e -34
-KPX V g -40
-KPX V guillemotleft -59
-KPX V guilsinglleft -57
-KPX V hyphen -14
-KPX V i -4
-KPX V o -40
-KPX V oslash -37
-KPX V period -52
-KPX V r -27
-KPX V semicolon -38
-KPX V u -31
-KPX V y -7
-KPX W A -40
-KPX W AE -36
-KPX W Aacute -40
-KPX W Acircumflex -40
-KPX W Adieresis -40
-KPX W Agrave -40
-KPX W Aring -40
-KPX W Atilde -40
-KPX W C -15
-KPX W G -16
-KPX W O -16
-KPX W Oacute -16
-KPX W Ocircumflex -16
-KPX W Odieresis -16
-KPX W Ograve -16
-KPX W Oslash -12
-KPX W Otilde -16
-KPX W S -8
-KPX W T 24
-KPX W a -26
-KPX W ae -27
-KPX W colon -31
-KPX W comma -36
-KPX W e -21
-KPX W g -27
-KPX W guillemotleft -47
-KPX W guilsinglleft -45
-KPX W hyphen -2
-KPX W i -2
-KPX W o -28
-KPX W oslash -25
-KPX W period -36
-KPX W r -21
-KPX W semicolon -31
-KPX W u -24
-KPX W y -1
-KPX X C -26
-KPX X O -27
-KPX X Odieresis -27
-KPX X Q -27
-KPX X a -5
-KPX X e -20
-KPX X hyphen -21
-KPX X o -27
-KPX X u -24
-KPX X y -35
-KPX Y A -67
-KPX Y AE -62
-KPX Y Aacute -67
-KPX Y Acircumflex -67
-KPX Y Adieresis -67
-KPX Y Agrave -67
-KPX Y Aring -67
-KPX Y Atilde -67
-KPX Y C -36
-KPX Y G -38
-KPX Y O -37
-KPX Y Oacute -37
-KPX Y Ocircumflex -37
-KPX Y Odieresis -37
-KPX Y Ograve -37
-KPX Y Oslash -37
-KPX Y Otilde -37
-KPX Y S -19
-KPX Y T 24
-KPX Y a -58
-KPX Y ae -59
-KPX Y colon -52
-KPX Y comma -65
-KPX Y e -54
-KPX Y g -61
-KPX Y guillemotleft -83
-KPX Y guilsinglleft -81
-KPX Y hyphen -42
-KPX Y i -2
-KPX Y o -61
-KPX Y oslash -57
-KPX Y p -39
-KPX Y period -65
-KPX Y semicolon -52
-KPX Y u -45
-KPX Y v -22
-KPX Z v -9
-KPX Z y -8
-KPX a j 0
-KPX a quoteright -7
-KPX a v -15
-KPX a w -6
-KPX a y -13
-KPX aacute v -15
-KPX aacute w -6
-KPX aacute y -13
-KPX adieresis v -15
-KPX adieresis w -6
-KPX adieresis y -13
-KPX ae v -16
-KPX ae w -6
-KPX ae y -15
-KPX agrave v -15
-KPX agrave w -6
-KPX agrave y -13
-KPX aring v -15
-KPX aring w -6
-KPX aring y -13
-KPX b v -15
-KPX b w -5
-KPX b y -14
-KPX c h 0
-KPX c k -2
-KPX comma one -59
-KPX comma quotedblright -18
-KPX comma quoteright -20
-KPX e quoteright -8
-KPX e t -2
-KPX e v -15
-KPX e w -6
-KPX e x -16
-KPX e y -14
-KPX eacute v -15
-KPX eacute w -6
-KPX eacute y -14
-KPX ecircumflex v -15
-KPX ecircumflex w -6
-KPX ecircumflex y -14
-KPX eight four 12
-KPX eight one -15
-KPX eight seven 0
-KPX f a -5
-KPX f aacute -5
-KPX f adieresis -5
-KPX f ae -6
-KPX f aring -5
-KPX f e -5
-KPX f eacute -5
-KPX f f 17
-KPX f i -3
-KPX f j -7
-KPX f l -3
-KPX f o -12
-KPX f oacute -12
-KPX f odieresis -12
-KPX f oe -12
-KPX f oslash -9
-KPX f quoteright 11
-KPX f s -5
-KPX f t 17
-KPX five four 8
-KPX five one -20
-KPX five seven -2
-KPX four four 12
-KPX four one -37
-KPX four seven -19
-KPX g a 5
-KPX g adieresis 5
-KPX g ae 5
-KPX g aring 5
-KPX g e 10
-KPX g eacute 10
-KPX g l 3
-KPX g oacute 4
-KPX g odieresis 4
-KPX g r 6
-KPX guillemotright A -36
-KPX guillemotright AE -30
-KPX guillemotright Aacute -36
-KPX guillemotright Adieresis -36
-KPX guillemotright Aring -36
-KPX guillemotright T -84
-KPX guillemotright V -59
-KPX guillemotright W -48
-KPX guillemotright Y -86
-KPX guilsinglright A -33
-KPX guilsinglright AE -28
-KPX guilsinglright Aacute -33
-KPX guilsinglright Adieresis -33
-KPX guilsinglright Aring -33
-KPX guilsinglright T -82
-KPX guilsinglright V -56
-KPX guilsinglright W -45
-KPX guilsinglright Y -84
-KPX h quoteright -7
-KPX h y -14
-KPX hyphen A 7
-KPX hyphen AE 12
-KPX hyphen Aacute 7
-KPX hyphen Adieresis 7
-KPX hyphen Aring 7
-KPX hyphen T -39
-KPX hyphen V -14
-KPX hyphen W -3
-KPX hyphen Y -45
-KPX i T -2
-KPX i j -1
-KPX k a 0
-KPX k aacute 0
-KPX k adieresis 0
-KPX k ae 0
-KPX k aring 0
-KPX k comma 15
-KPX k e -6
-KPX k eacute -6
-KPX k g -14
-KPX k hyphen -10
-KPX k o -13
-KPX k oacute -13
-KPX k odieresis -13
-KPX k period 15
-KPX k s -8
-KPX k u -4
-KPX k udieresis 0
-KPX l v -7
-KPX l y -5
-KPX m p 3
-KPX m v -16
-KPX m w -7
-KPX m y -14
-KPX n T -63
-KPX n p 3
-KPX n quoteright -7
-KPX n v -16
-KPX n w -7
-KPX n y -14
-KPX nine four 10
-KPX nine one -11
-KPX nine seven -4
-KPX o T -64
-KPX o quoteright -13
-KPX o t -5
-KPX o v -18
-KPX o w -8
-KPX o x -20
-KPX o y -17
-KPX oacute v -18
-KPX oacute w -8
-KPX oacute y -17
-KPX ocircumflex t -5
-KPX odieresis t -5
-KPX odieresis v -18
-KPX odieresis w -8
-KPX odieresis x -20
-KPX odieresis y -17
-KPX ograve v -18
-KPX ograve w -8
-KPX ograve y -17
-KPX one comma -32
-KPX one eight -32
-KPX one five -33
-KPX one four -46
-KPX one nine -32
-KPX one one -65
-KPX one period -32
-KPX one seven -47
-KPX one six -29
-KPX one three -36
-KPX one two -37
-KPX one zero -28
-KPX p t -1
-KPX p y -14
-KPX period one -59
-KPX period quotedblright -18
-KPX period quoteright -20
-KPX q c 6
-KPX q u 4
-KPX quotedblbase A 16
-KPX quotedblbase AE 22
-KPX quotedblbase T -56
-KPX quotedblbase V -53
-KPX quotedblbase W -38
-KPX quotedblbase Y -69
-KPX quotedblleft A -49
-KPX quotedblleft AE -45
-KPX quotedblleft Aacute -49
-KPX quotedblleft Adieresis -49
-KPX quotedblleft Aring -49
-KPX quotedblleft T 3
-KPX quotedblleft V 10
-KPX quotedblleft W 15
-KPX quotedblleft Y 2
-KPX quotedblright A -52
-KPX quotedblright AE -48
-KPX quotedblright Aacute -52
-KPX quotedblright Adieresis -52
-KPX quotedblright Aring -52
-KPX quotedblright T 4
-KPX quotedblright V 7
-KPX quotedblright W 12
-KPX quotedblright Y 0
-KPX quoteleft A -51
-KPX quoteleft AE -47
-KPX quoteleft Aacute -51
-KPX quoteleft Adieresis -51
-KPX quoteleft Aring -51
-KPX quoteleft T 1
-KPX quoteleft V 7
-KPX quoteleft W 12
-KPX quoteleft Y 0
-KPX quoteright A -55
-KPX quoteright AE -51
-KPX quoteright Aacute -55
-KPX quoteright Adieresis -55
-KPX quoteright Aring -55
-KPX quoteright comma -31
-KPX quoteright d -18
-KPX quoteright o -24
-KPX quoteright period -31
-KPX quoteright r -7
-KPX quoteright s -16
-KPX quoteright t 4
-KPX quoteright v 0
-KPX quoteright w 5
-KPX quoteright y 2
-KPX r a -1
-KPX r aacute -1
-KPX r acircumflex -1
-KPX r adieresis -1
-KPX r ae -2
-KPX r agrave -1
-KPX r aring -1
-KPX r c -4
-KPX r ccedilla -1
-KPX r colon -12
-KPX r comma -42
-KPX r d -3
-KPX r e 0
-KPX r eacute 0
-KPX r ecircumflex 0
-KPX r egrave 0
-KPX r f 17
-KPX r g -2
-KPX r h -5
-KPX r hyphen -24
-KPX r i -7
-KPX r j -7
-KPX r k -7
-KPX r l -7
-KPX r m -5
-KPX r n -5
-KPX r o -6
-KPX r oacute -6
-KPX r ocircumflex -6
-KPX r odieresis -6
-KPX r oe -6
-KPX r ograve -6
-KPX r oslash -6
-KPX r p -4
-KPX r period -42
-KPX r q -3
-KPX r quoteright 13
-KPX r r -5
-KPX r s -1
-KPX r semicolon -12
-KPX r t 17
-KPX r u -6
-KPX r v 15
-KPX r w 16
-KPX r x 10
-KPX r y 16
-KPX r z 5
-KPX s quoteright -11
-KPX s t -5
-KPX seven colon -40
-KPX seven comma -71
-KPX seven eight -2
-KPX seven five -9
-KPX seven four -53
-KPX seven one -4
-KPX seven period -71
-KPX seven seven 14
-KPX seven six -6
-KPX seven three 1
-KPX seven two 1
-KPX six four 10
-KPX six one -13
-KPX six seven 1
-KPX t S 1
-KPX t a 4
-KPX t aacute 4
-KPX t adieresis 4
-KPX t ae 4
-KPX t aring 4
-KPX t colon -5
-KPX t e -2
-KPX t eacute -2
-KPX t h 5
-KPX t o -8
-KPX t oacute -8
-KPX t odieresis -8
-KPX t quoteright 7
-KPX t semicolon -4
-KPX three four 8
-KPX three one -18
-KPX three seven -3
-KPX two four -11
-KPX two one -11
-KPX two seven 0
-KPX u quoteright 1
-KPX v a -17
-KPX v aacute -17
-KPX v acircumflex -17
-KPX v adieresis -17
-KPX v ae -18
-KPX v agrave -17
-KPX v aring -17
-KPX v atilde -17
-KPX v c -16
-KPX v colon -13
-KPX v comma -35
-KPX v e -12
-KPX v eacute -12
-KPX v ecircumflex -12
-KPX v egrave -12
-KPX v g -18
-KPX v hyphen 5
-KPX v l -7
-KPX v o -19
-KPX v oacute -19
-KPX v odieresis -19
-KPX v ograve -19
-KPX v oslash -16
-KPX v period -35
-KPX v s -17
-KPX v semicolon -13
-KPX w a -7
-KPX w aacute -7
-KPX w acircumflex -7
-KPX w adieresis -7
-KPX w ae -8
-KPX w agrave -7
-KPX w aring -7
-KPX w atilde -7
-KPX w c -7
-KPX w colon -10
-KPX w comma -20
-KPX w e -2
-KPX w eacute -2
-KPX w ecircumflex -2
-KPX w egrave -2
-KPX w g -8
-KPX w hyphen 14
-KPX w l -3
-KPX w o -9
-KPX w oacute -9
-KPX w odieresis -9
-KPX w ograve -9
-KPX w oslash -6
-KPX w period -20
-KPX w s -8
-KPX w semicolon -10
-KPX x a -10
-KPX x c -17
-KPX x e -13
-KPX x eacute -13
-KPX x o -20
-KPX x q -17
-KPX y a -18
-KPX y aacute -18
-KPX y acircumflex -18
-KPX y adieresis -18
-KPX y ae -19
-KPX y agrave -18
-KPX y aring -18
-KPX y atilde -18
-KPX y c -18
-KPX y colon -14
-KPX y comma -36
-KPX y e -14
-KPX y eacute -14
-KPX y ecircumflex -14
-KPX y egrave -14
-KPX y g -20
-KPX y hyphen 4
-KPX y l -8
-KPX y o -20
-KPX y oacute -20
-KPX y odieresis -20
-KPX y ograve -20
-KPX y oslash -17
-KPX y period -35
-KPX y s -19
-KPX y semicolon -14
-KPX zero four 11
-KPX zero one -10
-KPX zero seven -1
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019044l.pfb b/Master/xemtex/gsfonts/n019044l.pfb
deleted file mode 100644
index 34ee042b4c7..00000000000
--- a/Master/xemtex/gsfonts/n019044l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019044l.pfm b/Master/xemtex/gsfonts/n019044l.pfm
deleted file mode 100644
index af20fad314e..00000000000
--- a/Master/xemtex/gsfonts/n019044l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019063l.afm b/Master/xemtex/gsfonts/n019063l.afm
deleted file mode 100644
index d5265da173b..00000000000
--- a/Master/xemtex/gsfonts/n019063l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-ReguCondItal
-FullName Nimbus Sans L Regular Condensed Italic
-FamilyName Nimbus Sans L
-Weight Regular
-ItalicAngle -9.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -139 -286 915 951
-CapHeight 718
-XHeight 523
-Descender -207
-Ascender 718
-StartCharMetrics 316
-C 32 ; WX 228 ; N space ; B 21 0 21 0 ;
-C 33 ; WX 228 ; N exclam ; B 74 0 278 718 ;
-C 34 ; WX 291 ; N quotedbl ; B 138 463 359 718 ;
-C 35 ; WX 456 ; N numbersign ; B 60 0 517 688 ;
-C 36 ; WX 456 ; N dollar ; B 57 -115 506 775 ;
-C 37 ; WX 729 ; N percent ; B 120 -19 729 703 ;
-C 38 ; WX 547 ; N ampersand ; B 63 -15 530 718 ;
-C 39 ; WX 182 ; N quoteright ; B 124 463 254 718 ;
-C 40 ; WX 273 ; N parenleft ; B 89 -207 372 733 ;
-C 41 ; WX 273 ; N parenright ; B -7 -207 276 733 ;
-C 42 ; WX 319 ; N asterisk ; B 135 431 389 718 ;
-C 43 ; WX 479 ; N plus ; B 70 0 497 505 ;
-C 44 ; WX 228 ; N comma ; B 46 -147 175 106 ;
-C 45 ; WX 273 ; N hyphen ; B 77 232 293 322 ;
-C 46 ; WX 228 ; N period ; B 71 0 175 106 ;
-C 47 ; WX 228 ; N slash ; B -17 -19 370 737 ;
-C 48 ; WX 456 ; N zero ; B 77 -19 499 703 ;
-C 49 ; WX 456 ; N one ; B 170 0 417 703 ;
-C 50 ; WX 456 ; N two ; B 21 0 506 703 ;
-C 51 ; WX 456 ; N three ; B 61 -19 500 703 ;
-C 52 ; WX 456 ; N four ; B 50 0 472 703 ;
-C 53 ; WX 456 ; N five ; B 55 -19 509 688 ;
-C 54 ; WX 456 ; N six ; B 74 -19 504 703 ;
-C 55 ; WX 456 ; N seven ; B 112 0 549 688 ;
-C 56 ; WX 456 ; N eight ; B 60 -19 497 703 ;
-C 57 ; WX 456 ; N nine ; B 67 -19 499 703 ;
-C 58 ; WX 228 ; N colon ; B 71 0 247 516 ;
-C 59 ; WX 228 ; N semicolon ; B 46 -147 247 516 ;
-C 60 ; WX 479 ; N less ; B 77 10 526 496 ;
-C 61 ; WX 479 ; N equal ; B 52 115 515 390 ;
-C 62 ; WX 479 ; N greater ; B 41 10 490 496 ;
-C 63 ; WX 456 ; N question ; B 132 0 500 727 ;
-C 64 ; WX 832 ; N at ; B 176 -19 791 737 ;
-C 65 ; WX 547 ; N A ; B 11 0 536 718 ;
-C 66 ; WX 547 ; N B ; B 61 0 583 718 ;
-C 67 ; WX 592 ; N C ; B 88 -19 640 737 ;
-C 68 ; WX 592 ; N D ; B 66 0 626 718 ;
-C 69 ; WX 547 ; N E ; B 71 0 625 718 ;
-C 70 ; WX 501 ; N F ; B 71 0 603 718 ;
-C 71 ; WX 638 ; N G ; B 91 -19 655 737 ;
-C 72 ; WX 592 ; N H ; B 63 0 655 718 ;
-C 73 ; WX 228 ; N I ; B 75 0 279 718 ;
-C 74 ; WX 410 ; N J ; B 39 -19 476 718 ;
-C 75 ; WX 547 ; N K ; B 62 0 662 718 ;
-C 76 ; WX 456 ; N L ; B 62 0 455 718 ;
-C 77 ; WX 683 ; N M ; B 60 0 749 718 ;
-C 78 ; WX 592 ; N N ; B 62 0 655 718 ;
-C 79 ; WX 638 ; N O ; B 86 -19 677 737 ;
-C 80 ; WX 547 ; N P ; B 71 0 604 718 ;
-C 81 ; WX 638 ; N Q ; B 86 -56 677 737 ;
-C 82 ; WX 592 ; N R ; B 72 0 634 718 ;
-C 83 ; WX 547 ; N S ; B 74 -19 584 737 ;
-C 84 ; WX 501 ; N T ; B 122 0 615 718 ;
-C 85 ; WX 592 ; N U ; B 101 -19 653 718 ;
-C 86 ; WX 547 ; N V ; B 142 0 656 718 ;
-C 87 ; WX 774 ; N W ; B 138 0 886 718 ;
-C 88 ; WX 547 ; N X ; B 16 0 647 718 ;
-C 89 ; WX 547 ; N Y ; B 137 0 661 718 ;
-C 90 ; WX 501 ; N Z ; B 19 0 607 718 ;
-C 91 ; WX 228 ; N bracketleft ; B 17 -196 331 722 ;
-C 92 ; WX 228 ; N backslash ; B 115 -19 239 737 ;
-C 93 ; WX 228 ; N bracketright ; B -11 -196 302 722 ;
-C 94 ; WX 385 ; N asciicircum ; B 35 264 442 688 ;
-C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ;
-C 96 ; WX 182 ; N quoteleft ; B 135 470 265 725 ;
-C 97 ; WX 456 ; N a ; B 50 -15 458 538 ;
-C 98 ; WX 456 ; N b ; B 48 -15 479 718 ;
-C 99 ; WX 410 ; N c ; B 61 -15 454 538 ;
-C 100 ; WX 456 ; N d ; B 69 -15 534 718 ;
-C 101 ; WX 456 ; N e ; B 69 -15 474 538 ;
-C 102 ; WX 228 ; N f ; B 71 0 341 728 ;
-C 103 ; WX 456 ; N g ; B 34 -220 500 538 ;
-C 104 ; WX 456 ; N h ; B 53 0 470 718 ;
-C 105 ; WX 182 ; N i ; B 55 0 252 718 ;
-C 106 ; WX 182 ; N j ; B -49 -210 252 718 ;
-C 107 ; WX 410 ; N k ; B 55 0 492 718 ;
-C 108 ; WX 182 ; N l ; B 55 0 252 718 ;
-C 109 ; WX 683 ; N m ; B 53 0 699 538 ;
-C 110 ; WX 456 ; N n ; B 53 0 470 538 ;
-C 111 ; WX 456 ; N o ; B 68 -14 479 538 ;
-C 112 ; WX 456 ; N p ; B 11 -207 479 538 ;
-C 113 ; WX 456 ; N q ; B 69 -207 496 538 ;
-C 114 ; WX 273 ; N r ; B 63 0 365 538 ;
-C 115 ; WX 410 ; N s ; B 52 -15 434 538 ;
-C 116 ; WX 228 ; N t ; B 84 -7 302 669 ;
-C 117 ; WX 456 ; N u ; B 77 -15 492 523 ;
-C 118 ; WX 410 ; N v ; B 98 0 495 523 ;
-C 119 ; WX 592 ; N w ; B 103 0 673 523 ;
-C 120 ; WX 410 ; N x ; B 9 0 487 523 ;
-C 121 ; WX 410 ; N y ; B 12 -214 492 523 ;
-C 122 ; WX 410 ; N z ; B 25 0 468 523 ;
-C 123 ; WX 274 ; N braceleft ; B 75 -196 365 722 ;
-C 124 ; WX 213 ; N bar ; B 74 -19 265 737 ;
-C 125 ; WX 274 ; N braceright ; B 0 -196 291 722 ;
-C 126 ; WX 479 ; N asciitilde ; B 91 181 476 322 ;
-C 161 ; WX 273 ; N exclamdown ; B 63 -195 267 523 ;
-C 162 ; WX 456 ; N cent ; B 78 -115 479 623 ;
-C 163 ; WX 456 ; N sterling ; B 40 -16 520 718 ;
-C 164 ; WX 137 ; N fraction ; B -139 -19 396 703 ;
-C 165 ; WX 456 ; N yen ; B 67 0 573 688 ;
-C 166 ; WX 456 ; N florin ; B -43 -207 537 737 ;
-C 167 ; WX 456 ; N section ; B 63 -191 479 737 ;
-C 168 ; WX 456 ; N currency ; B 49 99 530 603 ;
-C 169 ; WX 157 ; N quotesingle ; B 129 463 233 718 ;
-C 170 ; WX 273 ; N quotedblleft ; B 113 470 378 725 ;
-C 171 ; WX 456 ; N guillemotleft ; B 120 108 454 446 ;
-C 172 ; WX 273 ; N guilsinglleft ; B 112 108 279 446 ;
-C 173 ; WX 273 ; N guilsinglright ; B 91 108 257 446 ;
-C 174 ; WX 410 ; N fi ; B 71 0 481 728 ;
-C 175 ; WX 410 ; N fl ; B 71 0 479 728 ;
-C 177 ; WX 456 ; N endash ; B 42 240 510 313 ;
-C 178 ; WX 456 ; N dagger ; B 110 -159 510 718 ;
-C 179 ; WX 456 ; N daggerdbl ; B 43 -159 511 718 ;
-C 180 ; WX 228 ; N periodcentered ; B 106 190 211 315 ;
-C 182 ; WX 440 ; N paragraph ; B 103 -173 533 718 ;
-C 183 ; WX 287 ; N bullet ; B 74 202 339 517 ;
-C 184 ; WX 182 ; N quotesinglbase ; B 17 -149 147 106 ;
-C 185 ; WX 273 ; N quotedblbase ; B -5 -149 260 106 ;
-C 186 ; WX 273 ; N quotedblright ; B 102 463 367 718 ;
-C 187 ; WX 456 ; N guillemotright ; B 98 108 433 446 ;
-C 188 ; WX 820 ; N ellipsis ; B 94 0 744 106 ;
-C 189 ; WX 820 ; N perthousand ; B 72 -19 844 703 ;
-C 191 ; WX 501 ; N questiondown ; B 70 -201 438 525 ;
-C 193 ; WX 273 ; N grave ; B 139 593 276 734 ;
-C 194 ; WX 273 ; N acute ; B 203 593 390 734 ;
-C 195 ; WX 273 ; N circumflex ; B 121 593 359 734 ;
-C 196 ; WX 273 ; N tilde ; B 102 606 402 722 ;
-C 197 ; WX 273 ; N macron ; B 117 627 384 684 ;
-C 198 ; WX 273 ; N breve ; B 137 595 391 731 ;
-C 199 ; WX 273 ; N dotaccent ; B 204 604 297 706 ;
-C 200 ; WX 273 ; N dieresis ; B 138 604 363 706 ;
-C 202 ; WX 273 ; N ring ; B 175 572 330 756 ;
-C 203 ; WX 273 ; N cedilla ; B 2 -225 191 0 ;
-C 205 ; WX 273 ; N hungarumlaut ; B 129 593 463 734 ;
-C 206 ; WX 273 ; N ogonek ; B 35 -225 204 0 ;
-C 207 ; WX 273 ; N caron ; B 145 593 384 734 ;
-C 208 ; WX 820 ; N emdash ; B 42 240 875 313 ;
-C 225 ; WX 820 ; N AE ; B 7 0 899 718 ;
-C 227 ; WX 303 ; N ordfeminine ; B 82 304 368 737 ;
-C 232 ; WX 456 ; N Lslash ; B 34 0 455 718 ;
-C 233 ; WX 638 ; N Oslash ; B 35 -19 730 737 ;
-C 234 ; WX 820 ; N OE ; B 80 -19 915 737 ;
-C 235 ; WX 299 ; N ordmasculine ; B 82 304 384 737 ;
-C 241 ; WX 729 ; N ae ; B 50 -15 746 538 ;
-C 245 ; WX 228 ; N dotlessi ; B 78 0 241 523 ;
-C 248 ; WX 182 ; N lslash ; B 34 0 284 718 ;
-C 249 ; WX 501 ; N oslash ; B 24 -22 531 545 ;
-C 250 ; WX 774 ; N oe ; B 68 -15 791 538 ;
-C 251 ; WX 501 ; N germandbls ; B 55 -15 539 728 ;
-C -1 ; WX 592 ; N Udieresis ; B 101 -19 653 901 ;
-C -1 ; WX 592 ; N Uacute ; B 101 -19 653 929 ;
-C -1 ; WX 547 ; N Scedilla ; B 74 -225 584 737 ;
-C -1 ; WX 501 ; N Tcaron ; B 122 0 615 929 ;
-C -1 ; WX 547 ; N Scaron ; B 74 -19 584 929 ;
-C -1 ; WX 592 ; N Rcaron ; B 72 0 634 929 ;
-C -1 ; WX 592 ; N Racute ; B 72 0 634 929 ;
-C -1 ; WX 547 ; N Sacute ; B 74 -19 584 929 ;
-C -1 ; WX 638 ; N Otilde ; B 86 -19 677 917 ;
-C -1 ; WX 456 ; N ucircumflex ; B 77 -15 492 734 ;
-C -1 ; WX 638 ; N Ohungarumlaut ; B 86 -19 679 929 ;
-C -1 ; WX 592 ; N Uhungarumlaut ; B 101 -19 656 929 ;
-C -1 ; WX 547 ; N Yacute ; B 137 0 661 929 ;
-C -1 ; WX 592 ; N Eth ; B 57 0 626 718 ;
-C -1 ; WX 592 ; N Dcroat ; B 57 0 626 718 ;
-C -1 ; WX 501 ; N Zacute ; B 19 0 607 929 ;
-C -1 ; WX 592 ; N Uring ; B 101 -19 653 951 ;
-C -1 ; WX 456 ; N gbreve ; B 34 -220 500 731 ;
-C -1 ; WX 456 ; N eogonek ; B 69 -225 474 538 ;
-C -1 ; WX 456 ; N edotaccent ; B 69 -15 474 706 ;
-C -1 ; WX 456 ; N ecaron ; B 69 -15 476 734 ;
-C -1 ; WX 592 ; N Ugrave ; B 101 -19 653 929 ;
-C -1 ; WX 547 ; N Thorn ; B 71 0 584 718 ;
-C -1 ; WX 456 ; N eacute ; B 69 -15 482 734 ;
-C -1 ; WX 456 ; N edieresis ; B 69 -15 474 706 ;
-C -1 ; WX 503 ; N dcaron ; B 69 -15 643 718 ;
-C -1 ; WX 410 ; N ccedilla ; B 61 -225 454 538 ;
-C -1 ; WX 410 ; N ccaron ; B 61 -15 484 734 ;
-C -1 ; WX 410 ; N cacute ; B 61 -15 480 734 ;
-C -1 ; WX 456 ; N aogonek ; B 50 -225 458 538 ;
-C -1 ; WX 456 ; N aring ; B 50 -15 458 769 ;
-C -1 ; WX 456 ; N atilde ; B 50 -15 486 722 ;
-C -1 ; WX 456 ; N abreve ; B 50 -15 482 731 ;
-C -1 ; WX 456 ; N egrave ; B 69 -15 474 734 ;
-C -1 ; WX 456 ; N agrave ; B 50 -15 458 734 ;
-C -1 ; WX 456 ; N aacute ; B 50 -15 482 734 ;
-C -1 ; WX 456 ; N adieresis ; B 50 -15 458 706 ;
-C -1 ; WX 592 ; N Uogonek ; B 101 -225 653 718 ;
-C -1 ; WX 456 ; N ugrave ; B 77 -15 492 734 ;
-C -1 ; WX 456 ; N uacute ; B 77 -15 492 734 ;
-C -1 ; WX 456 ; N udieresis ; B 77 -15 492 706 ;
-C -1 ; WX 254 ; N tcaron ; B 84 -7 394 718 ;
-C -1 ; WX 410 ; N scommaaccent ; B 52 -286 434 538 ;
-C -1 ; WX 501 ; N Zcaron ; B 19 0 607 929 ;
-C -1 ; WX 456 ; N ecircumflex ; B 69 -15 474 734 ;
-C -1 ; WX 592 ; N Ucircumflex ; B 101 -19 653 929 ;
-C -1 ; WX 456 ; N acircumflex ; B 50 -15 458 734 ;
-C -1 ; WX 501 ; N Zdotaccent ; B 19 0 607 901 ;
-C -1 ; WX 410 ; N scaron ; B 52 -15 453 734 ;
-C -1 ; WX 547 ; N Amacron ; B 11 0 555 879 ;
-C -1 ; WX 410 ; N sacute ; B 52 -15 459 734 ;
-C -1 ; WX 501 ; N Tcommaaccent ; B 122 -286 615 718 ;
-C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 901 ;
-C -1 ; WX 456 ; N thorn ; B 11 -207 479 718 ;
-C -1 ; WX 547 ; N Emacron ; B 71 0 625 879 ;
-C -1 ; WX 638 ; N Ograve ; B 86 -19 677 929 ;
-C -1 ; WX 638 ; N Oacute ; B 86 -19 677 929 ;
-C -1 ; WX 638 ; N Odieresis ; B 86 -19 677 901 ;
-C -1 ; WX 592 ; N Ntilde ; B 62 0 655 917 ;
-C -1 ; WX 592 ; N Ncaron ; B 62 0 655 929 ;
-C -1 ; WX 592 ; N Nacute ; B 62 0 655 929 ;
-C -1 ; WX 456 ; N Lcaron ; B 62 0 536 718 ;
-C -1 ; WX 456 ; N Lacute ; B 62 0 455 929 ;
-C -1 ; WX 228 ; N Idotaccent ; B 75 0 308 901 ;
-C -1 ; WX 273 ; N racute ; B 63 0 390 734 ;
-C -1 ; WX 228 ; N Icircumflex ; B 75 0 370 929 ;
-C -1 ; WX 456 ; N ohungarumlaut ; B 68 -14 555 734 ;
-C -1 ; WX 456 ; N otilde ; B 68 -14 494 722 ;
-C -1 ; WX 481 ; N Euro ; B 0 -13 535 670 ;
-C -1 ; WX 456 ; N ocircumflex ; B 68 -14 479 734 ;
-C -1 ; WX 273 ; N onesuperior ; B 136 281 305 703 ;
-C -1 ; WX 273 ; N twosuperior ; B 52 281 368 714 ;
-C -1 ; WX 273 ; N threesuperior ; B 74 270 358 714 ;
-C -1 ; WX 228 ; N Igrave ; B 75 0 288 929 ;
-C -1 ; WX 228 ; N Iacute ; B 75 0 401 929 ;
-C -1 ; WX 228 ; N Imacron ; B 75 0 395 879 ;
-C -1 ; WX 228 ; N Iogonek ; B -15 -225 279 718 ;
-C -1 ; WX 228 ; N Idieresis ; B 75 0 375 901 ;
-C -1 ; WX 638 ; N Gbreve ; B 91 -19 655 926 ;
-C -1 ; WX 592 ; N Umacron ; B 101 -19 653 879 ;
-C -1 ; WX 547 ; N Kcommaaccent ; B 62 -286 662 718 ;
-C -1 ; WX 456 ; N ograve ; B 68 -14 479 734 ;
-C -1 ; WX 547 ; N Scommaaccent ; B 74 -286 584 737 ;
-C -1 ; WX 547 ; N Eogonek ; B 71 -225 625 718 ;
-C -1 ; WX 456 ; N oacute ; B 68 -14 482 734 ;
-C -1 ; WX 547 ; N Edotaccent ; B 71 0 625 901 ;
-C -1 ; WX 182 ; N iogonek ; B -42 -225 252 718 ;
-C -1 ; WX 456 ; N gcommaaccent ; B 34 -220 500 818 ;
-C -1 ; WX 456 ; N odieresis ; B 68 -14 479 706 ;
-C -1 ; WX 456 ; N ntilde ; B 53 0 486 722 ;
-C -1 ; WX 456 ; N ncaron ; B 53 0 476 734 ;
-C -1 ; WX 547 ; N Ecaron ; B 71 0 625 929 ;
-C -1 ; WX 547 ; N Ecircumflex ; B 71 0 625 929 ;
-C -1 ; WX 410 ; N scedilla ; B 52 -225 434 538 ;
-C -1 ; WX 273 ; N rcaron ; B 63 0 384 734 ;
-C -1 ; WX 547 ; N Egrave ; B 71 0 625 929 ;
-C -1 ; WX 547 ; N Eacute ; B 71 0 625 929 ;
-C -1 ; WX 638 ; N Gcommaaccent ; B 91 -286 655 737 ;
-C -1 ; WX 592 ; N Rcommaaccent ; B 72 -286 634 718 ;
-C -1 ; WX 547 ; N Edieresis ; B 71 0 625 901 ;
-C -1 ; WX 456 ; N nacute ; B 53 0 482 734 ;
-C -1 ; WX 456 ; N uogonek ; B 77 -225 492 523 ;
-C -1 ; WX 456 ; N umacron ; B 77 -15 492 684 ;
-C -1 ; WX 592 ; N Dcaron ; B 66 0 626 929 ;
-C -1 ; WX 217 ; N lcaron ; B 55 0 357 718 ;
-C -1 ; WX 592 ; N Ccaron ; B 88 -19 640 929 ;
-C -1 ; WX 592 ; N Cacute ; B 88 -19 640 929 ;
-C -1 ; WX 592 ; N Ccedilla ; B 88 -225 640 737 ;
-C -1 ; WX 328 ; N degree ; B 138 411 384 703 ;
-C -1 ; WX 547 ; N Aogonek ; B 11 -225 536 718 ;
-C -1 ; WX 479 ; N minus ; B 70 216 497 289 ;
-C -1 ; WX 479 ; N multiply ; B 41 0 526 506 ;
-C -1 ; WX 479 ; N divide ; B 70 -19 497 524 ;
-C -1 ; WX 547 ; N Aring ; B 11 0 536 944 ;
-C -1 ; WX 820 ; N trademark ; B 152 306 866 718 ;
-C -1 ; WX 273 ; N rcommaaccent ; B 8 -286 365 538 ;
-C -1 ; WX 182 ; N lacute ; B 55 0 378 929 ;
-C -1 ; WX 456 ; N omacron ; B 68 -14 479 684 ;
-C -1 ; WX 547 ; N Atilde ; B 11 0 573 917 ;
-C -1 ; WX 228 ; N icircumflex ; B 78 0 336 734 ;
-C -1 ; WX 228 ; N igrave ; B 78 0 254 734 ;
-C -1 ; WX 456 ; N ncommaaccent ; B 53 -286 470 538 ;
-C -1 ; WX 182 ; N lcommaaccent ; B 2 -286 252 718 ;
-C -1 ; WX 479 ; N plusminus ; B 32 0 507 561 ;
-C -1 ; WX 684 ; N onehalf ; B 93 -19 688 703 ;
-C -1 ; WX 684 ; N onequarter ; B 123 -19 658 703 ;
-C -1 ; WX 684 ; N threequarters ; B 106 -19 706 714 ;
-C -1 ; WX 228 ; N iacute ; B 78 0 368 734 ;
-C -1 ; WX 547 ; N Abreve ; B 11 0 562 926 ;
-C -1 ; WX 410 ; N kcommaaccent ; B 55 -286 492 718 ;
-C -1 ; WX 638 ; N Omacron ; B 86 -19 677 879 ;
-C -1 ; WX 228 ; N imacron ; B 78 0 362 684 ;
-C -1 ; WX 456 ; N emacron ; B 69 -15 476 684 ;
-C -1 ; WX 456 ; N amacron ; B 50 -15 476 684 ;
-C -1 ; WX 228 ; N tcommaaccent ; B 25 -286 302 669 ;
-C -1 ; WX 410 ; N ydieresis ; B 12 -214 492 706 ;
-C -1 ; WX 410 ; N zdotaccent ; B 25 0 468 706 ;
-C -1 ; WX 410 ; N zcaron ; B 25 0 468 734 ;
-C -1 ; WX 410 ; N zacute ; B 25 0 468 734 ;
-C -1 ; WX 410 ; N yacute ; B 12 -214 492 734 ;
-C -1 ; WX 456 ; N uhungarumlaut ; B 77 -15 555 734 ;
-C -1 ; WX 456 ; N eth ; B 67 -15 506 737 ;
-C -1 ; WX 456 ; N uring ; B 77 -15 492 756 ;
-C -1 ; WX 638 ; N Ocircumflex ; B 86 -19 677 929 ;
-C -1 ; WX 273 ; N commaaccent ; B 47 -286 163 -60 ;
-C -1 ; WX 604 ; N copyright ; B 44 -19 687 737 ;
-C -1 ; WX 604 ; N registered ; B 44 -19 687 737 ;
-C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ;
-C -1 ; WX 228 ; N idieresis ; B 78 0 341 706 ;
-C -1 ; WX 405 ; N lozenge ; B 80 0 447 740 ;
-C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ;
-C -1 ; WX 479 ; N notequal ; B 52 10 515 495 ;
-C -1 ; WX 450 ; N radical ; B 74 -74 593 927 ;
-C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ;
-C -1 ; WX 547 ; N Aacute ; B 11 0 561 929 ;
-C -1 ; WX 479 ; N lessequal ; B 39 0 543 594 ;
-C -1 ; WX 479 ; N greaterequal ; B 39 0 507 594 ;
-C -1 ; WX 479 ; N logicalnot ; B 87 108 515 390 ;
-C -1 ; WX 585 ; N summation ; B 12 -123 570 752 ;
-C -1 ; WX 405 ; N partialdiff ; B 21 -10 379 753 ;
-C -1 ; WX 592 ; N Ncommaaccent ; B 62 -286 655 718 ;
-C -1 ; WX 456 ; N dcroat ; B 69 -15 573 718 ;
-C -1 ; WX 213 ; N brokenbar ; B 74 -19 265 737 ;
-C -1 ; WX 456 ; N Lcommaaccent ; B 62 -286 455 718 ;
-C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ;
-C -1 ; WX 456 ; N mu ; B 20 -207 492 523 ;
-C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -29
-KPX A Ccedilla -29
-KPX A G -33
-KPX A O -30
-KPX A Odieresis -30
-KPX A Q -30
-KPX A T -81
-KPX A U -32
-KPX A Uacute -32
-KPX A Ucircumflex -32
-KPX A Udieresis -32
-KPX A Ugrave -32
-KPX A V -61
-KPX A W -43
-KPX A Y -82
-KPX A a -11
-KPX A b -6
-KPX A c -11
-KPX A ccedilla -11
-KPX A comma 0
-KPX A d -13
-KPX A e -15
-KPX A g -16
-KPX A guillemotleft -43
-KPX A guilsinglleft -39
-KPX A hyphen -6
-KPX A o -16
-KPX A period 1
-KPX A q -13
-KPX A quotedblright -40
-KPX A quoteright -51
-KPX A t -17
-KPX A u -15
-KPX A v -30
-KPX A w -25
-KPX A y -31
-KPX Aacute C -31
-KPX Aacute G -34
-KPX Aacute O -31
-KPX Aacute Q -31
-KPX Aacute T -81
-KPX Aacute U -33
-KPX Aacute V -61
-KPX Aacute W -43
-KPX Aacute Y -82
-KPX Aacute a -12
-KPX Aacute b -6
-KPX Aacute c -12
-KPX Aacute comma 0
-KPX Aacute d -14
-KPX Aacute e -16
-KPX Aacute g -16
-KPX Aacute guillemotleft -44
-KPX Aacute guilsinglleft -40
-KPX Aacute hyphen -6
-KPX Aacute o -17
-KPX Aacute period 0
-KPX Aacute q -14
-KPX Aacute quoteright -51
-KPX Aacute t -18
-KPX Aacute u -16
-KPX Aacute v -30
-KPX Aacute w -25
-KPX Aacute y -31
-KPX Acircumflex C -29
-KPX Acircumflex G -33
-KPX Acircumflex O -30
-KPX Acircumflex Q -30
-KPX Acircumflex T -81
-KPX Acircumflex U -32
-KPX Acircumflex V -61
-KPX Acircumflex W -43
-KPX Acircumflex Y -82
-KPX Acircumflex comma 0
-KPX Acircumflex period 1
-KPX Adieresis C -29
-KPX Adieresis G -33
-KPX Adieresis O -30
-KPX Adieresis Q -30
-KPX Adieresis T -81
-KPX Adieresis U -32
-KPX Adieresis V -61
-KPX Adieresis W -43
-KPX Adieresis Y -82
-KPX Adieresis a -11
-KPX Adieresis b -6
-KPX Adieresis c -11
-KPX Adieresis comma 0
-KPX Adieresis d -13
-KPX Adieresis g -16
-KPX Adieresis guillemotleft -43
-KPX Adieresis guilsinglleft -39
-KPX Adieresis hyphen -6
-KPX Adieresis o -16
-KPX Adieresis period 1
-KPX Adieresis q -13
-KPX Adieresis quotedblright -40
-KPX Adieresis quoteright -51
-KPX Adieresis t -17
-KPX Adieresis u -15
-KPX Adieresis v -30
-KPX Adieresis w -25
-KPX Adieresis y -31
-KPX Agrave C -29
-KPX Agrave G -33
-KPX Agrave O -30
-KPX Agrave Q -30
-KPX Agrave T -81
-KPX Agrave U -32
-KPX Agrave V -61
-KPX Agrave W -43
-KPX Agrave Y -82
-KPX Agrave comma 0
-KPX Agrave period 1
-KPX Aring C -29
-KPX Aring G -33
-KPX Aring O -30
-KPX Aring Q -30
-KPX Aring T -81
-KPX Aring U -32
-KPX Aring V -61
-KPX Aring W -43
-KPX Aring Y -82
-KPX Aring a -11
-KPX Aring b -6
-KPX Aring c -11
-KPX Aring comma 0
-KPX Aring d -13
-KPX Aring e -15
-KPX Aring g -16
-KPX Aring guillemotleft -43
-KPX Aring guilsinglleft -39
-KPX Aring hyphen -6
-KPX Aring o -16
-KPX Aring period 1
-KPX Aring q -13
-KPX Aring quotedblright -40
-KPX Aring quoteright -51
-KPX Aring t -17
-KPX Aring u -15
-KPX Aring v -30
-KPX Aring w -25
-KPX Aring y -31
-KPX Atilde C -31
-KPX Atilde G -35
-KPX Atilde O -31
-KPX Atilde Q -31
-KPX Atilde T -81
-KPX Atilde U -34
-KPX Atilde V -61
-KPX Atilde W -43
-KPX Atilde Y -82
-KPX Atilde comma 0
-KPX Atilde period 0
-KPX B A -22
-KPX B AE -21
-KPX B Aacute -22
-KPX B Acircumflex -22
-KPX B Adieresis -22
-KPX B Aring -22
-KPX B Atilde -22
-KPX B O -9
-KPX B OE -5
-KPX B Oacute -9
-KPX B Ocircumflex -9
-KPX B Odieresis -9
-KPX B Ograve -9
-KPX B Oslash -7
-KPX B V -34
-KPX B W -17
-KPX B Y -42
-KPX C A -32
-KPX C AE -31
-KPX C Aacute -32
-KPX C Adieresis -32
-KPX C Aring -32
-KPX C H -13
-KPX C K -13
-KPX C O -13
-KPX C Oacute -13
-KPX C Odieresis -13
-KPX Ccedilla A -37
-KPX D A -39
-KPX D Aacute -39
-KPX D Acircumflex -39
-KPX D Adieresis -39
-KPX D Agrave -39
-KPX D Aring -39
-KPX D Atilde -39
-KPX D J -9
-KPX D T -36
-KPX D V -37
-KPX D W -19
-KPX D X -42
-KPX D Y -55
-KPX F A -64
-KPX F Aacute -64
-KPX F Acircumflex -64
-KPX F Adieresis -64
-KPX F Agrave -64
-KPX F Aring -64
-KPX F Atilde -64
-KPX F J -59
-KPX F O -22
-KPX F Odieresis -22
-KPX F a -32
-KPX F aacute -32
-KPX F adieresis -32
-KPX F ae -32
-KPX F aring -32
-KPX F comma -107
-KPX F e -26
-KPX F eacute -26
-KPX F hyphen -18
-KPX F i -15
-KPX F j -15
-KPX F o -26
-KPX F oacute -26
-KPX F odieresis -26
-KPX F oe -24
-KPX F oslash -24
-KPX F period -107
-KPX F r -38
-KPX F u -34
-KPX G A -11
-KPX G AE -9
-KPX G Aacute -11
-KPX G Acircumflex -11
-KPX G Adieresis -11
-KPX G Agrave -11
-KPX G Aring -11
-KPX G Atilde -11
-KPX G T -38
-KPX G V -40
-KPX G W -23
-KPX G Y -58
-KPX J A -30
-KPX J AE -29
-KPX J Adieresis -30
-KPX J Aring -30
-KPX K C -41
-KPX K G -45
-KPX K O -42
-KPX K OE -37
-KPX K Oacute -42
-KPX K Odieresis -42
-KPX K S -38
-KPX K T 15
-KPX K a -15
-KPX K adieresis -15
-KPX K ae -15
-KPX K aring -15
-KPX K e -35
-KPX K hyphen -43
-KPX K o -36
-KPX K oacute -36
-KPX K odieresis -36
-KPX K u -29
-KPX K udieresis -29
-KPX K y -59
-KPX L A 10
-KPX L AE 12
-KPX L Aacute 10
-KPX L Adieresis 10
-KPX L Aring 10
-KPX L C -36
-KPX L Ccedilla -39
-KPX L G -40
-KPX L O -38
-KPX L Oacute -38
-KPX L Ocircumflex -38
-KPX L Odieresis -38
-KPX L Ograve -38
-KPX L Otilde -38
-KPX L S -20
-KPX L T -87
-KPX L U -34
-KPX L Udieresis -34
-KPX L V -87
-KPX L W -58
-KPX L Y -99
-KPX L hyphen -114
-KPX L quotedblright -108
-KPX L quoteright -120
-KPX L u -16
-KPX L udieresis -16
-KPX L y -53
-KPX N A -12
-KPX N AE -10
-KPX N Aacute -12
-KPX N Adieresis -12
-KPX N Aring -12
-KPX N C -6
-KPX N Ccedilla -5
-KPX N G -10
-KPX N O -6
-KPX N Oacute -6
-KPX N Odieresis -6
-KPX N a -8
-KPX N aacute -8
-KPX N adieresis -8
-KPX N ae -8
-KPX N aring -8
-KPX N comma -10
-KPX N e -5
-KPX N eacute -5
-KPX N o -6
-KPX N oacute -6
-KPX N odieresis -6
-KPX N oslash -1
-KPX N period -9
-KPX N u -4
-KPX N udieresis -5
-KPX O A -36
-KPX O AE -37
-KPX O Aacute -36
-KPX O Adieresis -36
-KPX O Aring -36
-KPX O T -34
-KPX O V -34
-KPX O W -16
-KPX O X -39
-KPX O Y -53
-KPX Oacute A -36
-KPX Oacute T -34
-KPX Oacute V -34
-KPX Oacute W -16
-KPX Oacute Y -53
-KPX Ocircumflex T -34
-KPX Ocircumflex V -34
-KPX Ocircumflex Y -53
-KPX Odieresis A -36
-KPX Odieresis T -34
-KPX Odieresis V -34
-KPX Odieresis W -16
-KPX Odieresis X -39
-KPX Odieresis Y -53
-KPX Ograve T -34
-KPX Ograve V -34
-KPX Ograve Y -53
-KPX Oslash A -33
-KPX Otilde T -34
-KPX Otilde V -34
-KPX Otilde Y -53
-KPX P A -71
-KPX P AE -72
-KPX P Aacute -71
-KPX P Adieresis -71
-KPX P Aring -71
-KPX P J -78
-KPX P a -27
-KPX P aacute -27
-KPX P adieresis -27
-KPX P ae -27
-KPX P aring -27
-KPX P comma -126
-KPX P e -31
-KPX P eacute -31
-KPX P hyphen -36
-KPX P o -31
-KPX P oacute -31
-KPX P odieresis -31
-KPX P oe -28
-KPX P oslash -29
-KPX P period -126
-KPX R C -11
-KPX R Ccedilla -10
-KPX R G -14
-KPX R O -11
-KPX R OE -7
-KPX R Oacute -11
-KPX R Odieresis -11
-KPX R T -19
-KPX R U -13
-KPX R Udieresis -13
-KPX R V -33
-KPX R W -17
-KPX R Y -39
-KPX R a -11
-KPX R aacute -11
-KPX R adieresis -11
-KPX R ae -11
-KPX R aring -11
-KPX R e -9
-KPX R eacute -9
-KPX R hyphen 0
-KPX R o -10
-KPX R oacute -10
-KPX R odieresis -10
-KPX R oe -9
-KPX R u -8
-KPX R uacute -8
-KPX R udieresis -8
-KPX R y -10
-KPX S A -22
-KPX S AE -21
-KPX S Aacute -22
-KPX S Adieresis -22
-KPX S Aring -22
-KPX S T -22
-KPX S V -36
-KPX S W -20
-KPX S Y -42
-KPX S t -10
-KPX T A -86
-KPX T AE -84
-KPX T Aacute -86
-KPX T Acircumflex -86
-KPX T Adieresis -86
-KPX T Agrave -86
-KPX T Aring -86
-KPX T Atilde -86
-KPX T C -34
-KPX T G -39
-KPX T J -88
-KPX T O -34
-KPX T OE -28
-KPX T Oacute -34
-KPX T Ocircumflex -34
-KPX T Odieresis -34
-KPX T Ograve -34
-KPX T Oslash -36
-KPX T Otilde -34
-KPX T S -23
-KPX T V 7
-KPX T W 10
-KPX T Y 9
-KPX T a -83
-KPX T ae -83
-KPX T c -76
-KPX T colon -106
-KPX T comma -84
-KPX T e -80
-KPX T g -78
-KPX T guillemotleft -104
-KPX T guilsinglleft -100
-KPX T hyphen -65
-KPX T i -9
-KPX T j -9
-KPX T o -81
-KPX T oslash -76
-KPX T period -84
-KPX T r -81
-KPX T s -78
-KPX T semicolon -102
-KPX T u -79
-KPX T v -87
-KPX T w -85
-KPX T y -88
-KPX U A -37
-KPX U AE -38
-KPX U Aacute -37
-KPX U Acircumflex -37
-KPX U Adieresis -37
-KPX U Aring -37
-KPX U Atilde -37
-KPX U comma -30
-KPX U m -9
-KPX U n -9
-KPX U p -7
-KPX U period -27
-KPX U r -14
-KPX Uacute A -37
-KPX Uacute comma -30
-KPX Uacute m -9
-KPX Uacute n -9
-KPX Uacute p -7
-KPX Uacute period -27
-KPX Uacute r -14
-KPX Ucircumflex A -37
-KPX Udieresis A -37
-KPX Udieresis b -7
-KPX Udieresis comma -30
-KPX Udieresis m -9
-KPX Udieresis n -9
-KPX Udieresis p -7
-KPX Udieresis period -27
-KPX Udieresis r -14
-KPX Ugrave A -37
-KPX V A -63
-KPX V AE -64
-KPX V Aacute -63
-KPX V Acircumflex -63
-KPX V Adieresis -63
-KPX V Agrave -63
-KPX V Aring -63
-KPX V Atilde -63
-KPX V C -36
-KPX V G -39
-KPX V O -36
-KPX V Oacute -36
-KPX V Ocircumflex -36
-KPX V Odieresis -36
-KPX V Ograve -36
-KPX V Oslash -33
-KPX V Otilde -36
-KPX V S -33
-KPX V T 12
-KPX V a -52
-KPX V ae -52
-KPX V colon -48
-KPX V comma -77
-KPX V e -50
-KPX V g -47
-KPX V guillemotleft -72
-KPX V guilsinglleft -68
-KPX V hyphen -33
-KPX V i -10
-KPX V o -51
-KPX V oslash -45
-KPX V period -77
-KPX V r -43
-KPX V semicolon -48
-KPX V u -40
-KPX V y -19
-KPX W A -46
-KPX W AE -47
-KPX W Aacute -46
-KPX W Acircumflex -46
-KPX W Adieresis -46
-KPX W Agrave -46
-KPX W Aring -46
-KPX W Atilde -46
-KPX W C -20
-KPX W G -23
-KPX W O -20
-KPX W Oacute -20
-KPX W Ocircumflex -20
-KPX W Odieresis -20
-KPX W Ograve -20
-KPX W Oslash -17
-KPX W Otilde -20
-KPX W S -25
-KPX W T 13
-KPX W a -32
-KPX W ae -32
-KPX W colon -38
-KPX W comma -50
-KPX W e -29
-KPX W g -27
-KPX W guillemotleft -52
-KPX W guilsinglleft -48
-KPX W hyphen -14
-KPX W i -9
-KPX W o -30
-KPX W oslash -25
-KPX W period -50
-KPX W r -30
-KPX W semicolon -38
-KPX W u -28
-KPX W y -10
-KPX X C -37
-KPX X O -37
-KPX X Odieresis -37
-KPX X Q -37
-KPX X a -20
-KPX X e -40
-KPX X hyphen -45
-KPX X o -41
-KPX X u -35
-KPX X y -50
-KPX Y A -84
-KPX Y AE -85
-KPX Y Aacute -84
-KPX Y Acircumflex -84
-KPX Y Adieresis -84
-KPX Y Agrave -84
-KPX Y Aring -84
-KPX Y Atilde -84
-KPX Y C -48
-KPX Y G -53
-KPX Y O -49
-KPX Y Oacute -49
-KPX Y Ocircumflex -49
-KPX Y Odieresis -49
-KPX Y Ograve -49
-KPX Y Oslash -50
-KPX Y Otilde -49
-KPX Y S -39
-KPX Y T 14
-KPX Y a -79
-KPX Y ae -79
-KPX Y colon -67
-KPX Y comma -95
-KPX Y e -77
-KPX Y g -75
-KPX Y guillemotleft -106
-KPX Y guilsinglleft -102
-KPX Y hyphen -72
-KPX Y i -8
-KPX Y o -78
-KPX Y oslash -72
-KPX Y p -53
-KPX Y period -95
-KPX Y semicolon -67
-KPX Y u -60
-KPX Y v -38
-KPX Z v -32
-KPX Z y -33
-KPX a j -9
-KPX a quoteright -13
-KPX a v -21
-KPX a w -16
-KPX a y -24
-KPX aacute v -22
-KPX aacute w -17
-KPX aacute y -24
-KPX adieresis v -21
-KPX adieresis w -16
-KPX adieresis y -24
-KPX ae v -18
-KPX ae w -13
-KPX ae y -23
-KPX agrave v -21
-KPX agrave w -16
-KPX agrave y -24
-KPX aring v -21
-KPX aring w -16
-KPX aring y -24
-KPX b v -15
-KPX b w -9
-KPX b y -19
-KPX c h -3
-KPX c k -4
-KPX comma one -88
-KPX comma quotedblright -27
-KPX comma quoteright -38
-KPX e quoteright -8
-KPX e t -12
-KPX e v -18
-KPX e w -12
-KPX e x -22
-KPX e y -22
-KPX eacute v -18
-KPX eacute w -13
-KPX eacute y -22
-KPX ecircumflex v -18
-KPX ecircumflex w -12
-KPX ecircumflex y -22
-KPX eight four -1
-KPX eight one -43
-KPX eight seven -24
-KPX f a -14
-KPX f aacute -14
-KPX f adieresis -14
-KPX f ae -14
-KPX f aring -14
-KPX f e -16
-KPX f eacute -16
-KPX f f 11
-KPX f i -10
-KPX f j -10
-KPX f l -10
-KPX f o -17
-KPX f oacute -17
-KPX f odieresis -17
-KPX f oe -16
-KPX f oslash -11
-KPX f quoteright 1
-KPX f s -10
-KPX f t 11
-KPX five four -3
-KPX five one -63
-KPX five seven -23
-KPX four four 1
-KPX four one -72
-KPX four seven -47
-KPX g a -5
-KPX g adieresis -5
-KPX g ae -5
-KPX g aring -5
-KPX g e -3
-KPX g eacute -3
-KPX g l 0
-KPX g oacute -3
-KPX g odieresis -3
-KPX g r -3
-KPX guillemotright A -47
-KPX guillemotright AE -47
-KPX guillemotright Aacute -47
-KPX guillemotright Adieresis -47
-KPX guillemotright Aring -47
-KPX guillemotright T -104
-KPX guillemotright V -72
-KPX guillemotright W -50
-KPX guillemotright Y -106
-KPX guilsinglright A -43
-KPX guilsinglright AE -44
-KPX guilsinglright Aacute -43
-KPX guilsinglright Adieresis -43
-KPX guilsinglright Aring -43
-KPX guilsinglright T -100
-KPX guilsinglright V -68
-KPX guilsinglright W -46
-KPX guilsinglright Y -103
-KPX h quoteright -6
-KPX h y -18
-KPX hyphen A -8
-KPX hyphen AE -8
-KPX hyphen Aacute -8
-KPX hyphen Adieresis -8
-KPX hyphen Aring -8
-KPX hyphen T -65
-KPX hyphen V -34
-KPX hyphen W -13
-KPX hyphen Y -72
-KPX i T -9
-KPX i j -3
-KPX k a -12
-KPX k aacute -12
-KPX k adieresis -12
-KPX k ae -13
-KPX k aring -12
-KPX k comma -5
-KPX k e -22
-KPX k eacute -22
-KPX k g -20
-KPX k hyphen -35
-KPX k o -23
-KPX k oacute -23
-KPX k odieresis -23
-KPX k period -4
-KPX k s -16
-KPX k u -8
-KPX k udieresis -8
-KPX l v -9
-KPX l y -10
-KPX m p 0
-KPX m v -15
-KPX m w -10
-KPX m y -18
-KPX n T -79
-KPX n p -1
-KPX n quoteright -6
-KPX n v -16
-KPX n w -11
-KPX n y -18
-KPX nine four -6
-KPX nine one -40
-KPX nine seven -27
-KPX o T -80
-KPX o quoteright -10
-KPX o t -10
-KPX o v -16
-KPX o w -10
-KPX o x -20
-KPX o y -20
-KPX oacute v -16
-KPX oacute w -10
-KPX oacute y -20
-KPX ocircumflex t -10
-KPX odieresis t -10
-KPX odieresis v -16
-KPX odieresis w -10
-KPX odieresis x -20
-KPX odieresis y -20
-KPX ograve v -16
-KPX ograve w -10
-KPX ograve y -20
-KPX one comma -59
-KPX one eight -53
-KPX one five -53
-KPX one four -65
-KPX one nine -53
-KPX one one -96
-KPX one period -59
-KPX one seven -71
-KPX one six -51
-KPX one three -57
-KPX one two -57
-KPX one zero -50
-KPX p t -9
-KPX p y -19
-KPX period one -88
-KPX period quotedblright -28
-KPX period quoteright -39
-KPX q c 0
-KPX q u -3
-KPX quotedblbase A 18
-KPX quotedblbase AE 19
-KPX quotedblbase T -64
-KPX quotedblbase V -57
-KPX quotedblbase W -30
-KPX quotedblbase Y -76
-KPX quotedblleft A -46
-KPX quotedblleft AE -49
-KPX quotedblleft Aacute -46
-KPX quotedblleft Adieresis -46
-KPX quotedblleft Aring -46
-KPX quotedblleft T 9
-KPX quotedblleft V 19
-KPX quotedblleft W 26
-KPX quotedblleft Y 7
-KPX quotedblright A -54
-KPX quotedblright AE -56
-KPX quotedblright Aacute -54
-KPX quotedblright Adieresis -54
-KPX quotedblright Aring -54
-KPX quotedblright T 3
-KPX quotedblright V 11
-KPX quotedblright W 19
-KPX quotedblright Y 0
-KPX quoteleft A -57
-KPX quoteleft AE -60
-KPX quoteleft Aacute -57
-KPX quoteleft Adieresis -57
-KPX quoteleft Aring -57
-KPX quoteleft T -2
-KPX quoteleft V 7
-KPX quoteleft W 15
-KPX quoteleft Y -4
-KPX quoteright A -65
-KPX quoteright AE -67
-KPX quoteright Aacute -65
-KPX quoteright Adieresis -65
-KPX quoteright Aring -65
-KPX quoteright comma -52
-KPX quoteright d -20
-KPX quoteright o -29
-KPX quoteright period -52
-KPX quoteright r -19
-KPX quoteright s -17
-KPX quoteright t -9
-KPX quoteright v -3
-KPX quoteright w -3
-KPX quoteright y -4
-KPX r a -9
-KPX r aacute -9
-KPX r acircumflex -9
-KPX r adieresis -9
-KPX r ae -9
-KPX r agrave -9
-KPX r aring -9
-KPX r c -11
-KPX r ccedilla -8
-KPX r colon -12
-KPX r comma -52
-KPX r d -9
-KPX r e -16
-KPX r eacute -16
-KPX r ecircumflex -16
-KPX r egrave -16
-KPX r f 17
-KPX r g -8
-KPX r h -4
-KPX r hyphen -34
-KPX r i -5
-KPX r j -5
-KPX r k -5
-KPX r l -5
-KPX r m -4
-KPX r n -4
-KPX r o -18
-KPX r oacute -18
-KPX r ocircumflex -18
-KPX r odieresis -18
-KPX r oe -15
-KPX r ograve -18
-KPX r oslash -15
-KPX r p -1
-KPX r period -52
-KPX r q -9
-KPX r quoteright 3
-KPX r r -9
-KPX r s -4
-KPX r semicolon -12
-KPX r t 17
-KPX r u -5
-KPX r v 17
-KPX r w 15
-KPX r x 12
-KPX r y 16
-KPX r z 0
-KPX s quoteright -6
-KPX s t -11
-KPX seven colon -55
-KPX seven comma -99
-KPX seven eight -24
-KPX seven five -30
-KPX seven four -76
-KPX seven one -42
-KPX seven period -99
-KPX seven seven -3
-KPX seven six -32
-KPX seven three -22
-KPX seven two -22
-KPX six four -1
-KPX six one -39
-KPX six seven -21
-KPX t S -14
-KPX t a -5
-KPX t aacute -5
-KPX t adieresis -5
-KPX t ae -5
-KPX t aring -5
-KPX t colon -19
-KPX t e -12
-KPX t eacute -12
-KPX t h -6
-KPX t o -13
-KPX t oacute -13
-KPX t odieresis -13
-KPX t quoteright 2
-KPX t semicolon -19
-KPX three four 0
-KPX three one -41
-KPX three seven -23
-KPX two four -46
-KPX two one -37
-KPX two seven -21
-KPX u quoteright 0
-KPX v a -20
-KPX v aacute -20
-KPX v acircumflex -20
-KPX v adieresis -20
-KPX v ae -20
-KPX v agrave -20
-KPX v aring -20
-KPX v atilde -20
-KPX v c -15
-KPX v colon -14
-KPX v comma -54
-KPX v e -19
-KPX v eacute -19
-KPX v ecircumflex -19
-KPX v egrave -19
-KPX v g -17
-KPX v hyphen -7
-KPX v l -7
-KPX v o -20
-KPX v oacute -20
-KPX v odieresis -20
-KPX v ograve -20
-KPX v oslash -16
-KPX v period -54
-KPX v s -15
-KPX v semicolon -14
-KPX w a -16
-KPX w aacute -16
-KPX w acircumflex -16
-KPX w adieresis -16
-KPX w ae -16
-KPX w agrave -16
-KPX w aring -16
-KPX w atilde -16
-KPX w c -8
-KPX w colon -16
-KPX w comma -40
-KPX w e -12
-KPX w eacute -12
-KPX w ecircumflex -12
-KPX w egrave -12
-KPX w g -11
-KPX w hyphen 0
-KPX w l -9
-KPX w o -13
-KPX w oacute -13
-KPX w odieresis -13
-KPX w ograve -13
-KPX w oslash -8
-KPX w period -40
-KPX w s -11
-KPX w semicolon -16
-KPX x a -17
-KPX x c -16
-KPX x e -20
-KPX x eacute -20
-KPX x o -21
-KPX x q -17
-KPX y a -21
-KPX y aacute -21
-KPX y acircumflex -21
-KPX y adieresis -21
-KPX y ae -21
-KPX y agrave -21
-KPX y aring -21
-KPX y atilde -21
-KPX y c -16
-KPX y colon -15
-KPX y comma -54
-KPX y e -20
-KPX y eacute -20
-KPX y ecircumflex -20
-KPX y egrave -20
-KPX y g -19
-KPX y hyphen -6
-KPX y l -8
-KPX y o -21
-KPX y oacute -21
-KPX y odieresis -21
-KPX y ograve -21
-KPX y oslash -16
-KPX y period -53
-KPX y s -16
-KPX y semicolon -15
-KPX zero four -2
-KPX zero one -40
-KPX zero seven -28
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019063l.pfb b/Master/xemtex/gsfonts/n019063l.pfb
deleted file mode 100644
index 9bec5ab2ad9..00000000000
--- a/Master/xemtex/gsfonts/n019063l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019063l.pfm b/Master/xemtex/gsfonts/n019063l.pfm
deleted file mode 100644
index 9134e134c97..00000000000
--- a/Master/xemtex/gsfonts/n019063l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019064l.afm b/Master/xemtex/gsfonts/n019064l.afm
deleted file mode 100644
index 9e305ea3559..00000000000
--- a/Master/xemtex/gsfonts/n019064l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusSanL-BoldCondItal
-FullName Nimbus Sans L Bold Condensed Italic
-FamilyName Nimbus Sans L
-Weight Bold
-ItalicAngle -9.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -143 -298 913 989
-CapHeight 718
-XHeight 532
-Descender -207
-Ascender 718
-StartCharMetrics 316
-C 32 ; WX 228 ; N space ; B 21 0 21 0 ;
-C 33 ; WX 273 ; N exclam ; B 77 0 325 718 ;
-C 34 ; WX 389 ; N quotedbl ; B 158 447 433 718 ;
-C 35 ; WX 456 ; N numbersign ; B 49 0 528 698 ;
-C 36 ; WX 456 ; N dollar ; B 55 -115 510 775 ;
-C 37 ; WX 729 ; N percent ; B 112 -19 739 710 ;
-C 38 ; WX 592 ; N ampersand ; B 73 -19 600 718 ;
-C 39 ; WX 228 ; N quoteright ; B 137 445 297 718 ;
-C 40 ; WX 273 ; N parenleft ; B 62 -207 385 734 ;
-C 41 ; WX 273 ; N parenright ; B -21 -207 302 734 ;
-C 42 ; WX 319 ; N asterisk ; B 120 387 394 718 ;
-C 43 ; WX 479 ; N plus ; B 67 0 500 506 ;
-C 44 ; WX 228 ; N comma ; B 23 -168 201 146 ;
-C 45 ; WX 273 ; N hyphen ; B 60 215 311 345 ;
-C 46 ; WX 228 ; N period ; B 52 0 201 146 ;
-C 47 ; WX 228 ; N slash ; B -30 -19 383 737 ;
-C 48 ; WX 456 ; N zero ; B 71 -19 506 710 ;
-C 49 ; WX 456 ; N one ; B 142 0 434 710 ;
-C 50 ; WX 456 ; N two ; B 21 0 508 710 ;
-C 51 ; WX 456 ; N three ; B 54 -19 499 710 ;
-C 52 ; WX 456 ; N four ; B 50 0 490 710 ;
-C 53 ; WX 456 ; N five ; B 53 -19 522 698 ;
-C 54 ; WX 456 ; N six ; B 70 -19 507 710 ;
-C 55 ; WX 456 ; N seven ; B 102 0 555 698 ;
-C 56 ; WX 456 ; N eight ; B 57 -19 505 710 ;
-C 57 ; WX 456 ; N nine ; B 64 -19 504 710 ;
-C 58 ; WX 273 ; N colon ; B 75 0 288 512 ;
-C 59 ; WX 273 ; N semicolon ; B 46 -168 288 512 ;
-C 60 ; WX 479 ; N less ; B 67 -15 537 521 ;
-C 61 ; WX 479 ; N equal ; B 48 87 519 419 ;
-C 62 ; WX 479 ; N greater ; B 30 -15 500 521 ;
-C 63 ; WX 501 ; N question ; B 135 0 550 727 ;
-C 64 ; WX 800 ; N at ; B 152 -19 782 737 ;
-C 65 ; WX 592 ; N A ; B 16 0 576 718 ;
-C 66 ; WX 592 ; N B ; B 62 0 626 718 ;
-C 67 ; WX 592 ; N C ; B 88 -19 647 737 ;
-C 68 ; WX 592 ; N D ; B 62 0 637 718 ;
-C 69 ; WX 547 ; N E ; B 62 0 620 718 ;
-C 70 ; WX 501 ; N F ; B 62 0 606 718 ;
-C 71 ; WX 638 ; N G ; B 89 -19 670 737 ;
-C 72 ; WX 592 ; N H ; B 58 0 659 718 ;
-C 73 ; WX 228 ; N I ; B 52 0 301 718 ;
-C 74 ; WX 456 ; N J ; B 49 -18 522 718 ;
-C 75 ; WX 592 ; N K ; B 71 0 703 718 ;
-C 76 ; WX 501 ; N L ; B 62 0 501 718 ;
-C 77 ; WX 683 ; N M ; B 57 0 752 718 ;
-C 78 ; WX 592 ; N N ; B 57 0 661 718 ;
-C 79 ; WX 638 ; N O ; B 88 -19 675 737 ;
-C 80 ; WX 547 ; N P ; B 62 0 605 718 ;
-C 81 ; WX 638 ; N Q ; B 88 -52 675 737 ;
-C 82 ; WX 592 ; N R ; B 62 0 638 718 ;
-C 83 ; WX 547 ; N S ; B 66 -19 588 737 ;
-C 84 ; WX 501 ; N T ; B 114 0 615 718 ;
-C 85 ; WX 592 ; N U ; B 96 -19 659 718 ;
-C 86 ; WX 547 ; N V ; B 141 0 656 718 ;
-C 87 ; WX 774 ; N W ; B 138 0 887 718 ;
-C 88 ; WX 547 ; N X ; B 11 0 648 718 ;
-C 89 ; WX 547 ; N Y ; B 137 0 661 718 ;
-C 90 ; WX 501 ; N Z ; B 20 0 604 718 ;
-C 91 ; WX 273 ; N bracketleft ; B 17 -196 379 722 ;
-C 92 ; WX 228 ; N backslash ; B 101 -19 252 737 ;
-C 93 ; WX 273 ; N bracketright ; B -14 -196 347 722 ;
-C 94 ; WX 479 ; N asciicircum ; B 107 323 484 698 ;
-C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ;
-C 96 ; WX 228 ; N quoteleft ; B 136 454 296 727 ;
-C 97 ; WX 456 ; N a ; B 45 -14 478 546 ;
-C 98 ; WX 501 ; N b ; B 50 -14 529 718 ;
-C 99 ; WX 456 ; N c ; B 65 -14 491 546 ;
-C 100 ; WX 501 ; N d ; B 67 -14 577 718 ;
-C 101 ; WX 456 ; N e ; B 58 -14 486 546 ;
-C 102 ; WX 273 ; N f ; B 71 0 385 727 ;
-C 103 ; WX 501 ; N g ; B 31 -217 546 546 ;
-C 104 ; WX 501 ; N h ; B 53 0 516 718 ;
-C 105 ; WX 228 ; N i ; B 57 0 298 725 ;
-C 106 ; WX 228 ; N j ; B -35 -214 298 725 ;
-C 107 ; WX 456 ; N k ; B 57 0 549 718 ;
-C 108 ; WX 228 ; N l ; B 57 0 297 718 ;
-C 109 ; WX 729 ; N m ; B 52 0 746 546 ;
-C 110 ; WX 501 ; N n ; B 53 0 516 546 ;
-C 111 ; WX 501 ; N o ; B 67 -14 527 546 ;
-C 112 ; WX 501 ; N p ; B 15 -207 529 546 ;
-C 113 ; WX 501 ; N q ; B 66 -207 545 546 ;
-C 114 ; WX 319 ; N r ; B 52 0 401 546 ;
-C 115 ; WX 456 ; N s ; B 52 -14 479 546 ;
-C 116 ; WX 273 ; N t ; B 82 -6 346 676 ;
-C 117 ; WX 501 ; N u ; B 80 -14 540 532 ;
-C 118 ; WX 456 ; N v ; B 103 0 538 532 ;
-C 119 ; WX 638 ; N w ; B 101 0 723 532 ;
-C 120 ; WX 456 ; N x ; B 12 0 531 532 ;
-C 121 ; WX 456 ; N y ; B 34 -214 535 532 ;
-C 122 ; WX 410 ; N z ; B 16 0 478 532 ;
-C 123 ; WX 319 ; N braceleft ; B 77 -196 425 722 ;
-C 124 ; WX 230 ; N bar ; B 66 -19 289 737 ;
-C 125 ; WX 319 ; N braceright ; B -14 -196 333 722 ;
-C 126 ; WX 479 ; N asciitilde ; B 94 173 473 336 ;
-C 161 ; WX 273 ; N exclamdown ; B 41 -186 290 532 ;
-C 162 ; WX 456 ; N cent ; B 65 -118 491 628 ;
-C 163 ; WX 456 ; N sterling ; B 41 -16 520 718 ;
-C 164 ; WX 137 ; N fraction ; B -143 -19 399 710 ;
-C 165 ; WX 456 ; N yen ; B 49 0 585 698 ;
-C 166 ; WX 456 ; N florin ; B -41 -210 548 737 ;
-C 167 ; WX 456 ; N section ; B 50 -184 491 727 ;
-C 168 ; WX 456 ; N currency ; B 22 76 558 636 ;
-C 169 ; WX 195 ; N quotesingle ; B 135 447 263 718 ;
-C 170 ; WX 410 ; N quotedblleft ; B 132 454 482 727 ;
-C 171 ; WX 456 ; N guillemotleft ; B 111 76 468 484 ;
-C 172 ; WX 273 ; N guilsinglleft ; B 106 76 289 484 ;
-C 173 ; WX 273 ; N guilsinglright ; B 81 76 264 484 ;
-C 174 ; WX 501 ; N fi ; B 71 0 571 727 ;
-C 175 ; WX 501 ; N fl ; B 71 0 570 727 ;
-C 177 ; WX 456 ; N endash ; B 40 227 514 333 ;
-C 178 ; WX 456 ; N dagger ; B 97 -171 513 718 ;
-C 179 ; WX 456 ; N daggerdbl ; B 38 -171 515 718 ;
-C 180 ; WX 228 ; N periodcentered ; B 90 172 226 334 ;
-C 182 ; WX 456 ; N paragraph ; B 80 -191 564 700 ;
-C 183 ; WX 287 ; N bullet ; B 68 194 345 524 ;
-C 184 ; WX 228 ; N quotesinglbase ; B 34 -146 194 127 ;
-C 185 ; WX 410 ; N quotedblbase ; B 29 -146 380 127 ;
-C 186 ; WX 410 ; N quotedblright ; B 132 445 483 718 ;
-C 187 ; WX 456 ; N guillemotright ; B 85 76 443 484 ;
-C 188 ; WX 820 ; N ellipsis ; B 75 0 770 146 ;
-C 189 ; WX 820 ; N perthousand ; B 62 -19 851 710 ;
-C 191 ; WX 501 ; N questiondown ; B 44 -195 459 532 ;
-C 193 ; WX 273 ; N grave ; B 112 604 290 750 ;
-C 194 ; WX 273 ; N acute ; B 194 604 423 750 ;
-C 195 ; WX 273 ; N circumflex ; B 97 604 387 750 ;
-C 196 ; WX 273 ; N tilde ; B 92 610 415 737 ;
-C 197 ; WX 273 ; N macron ; B 100 604 396 678 ;
-C 198 ; WX 273 ; N breve ; B 128 604 405 750 ;
-C 199 ; WX 273 ; N dotaccent ; B 192 614 316 729 ;
-C 200 ; WX 273 ; N dieresis ; B 112 614 395 729 ;
-C 202 ; WX 273 ; N ring ; B 164 568 344 776 ;
-C 203 ; WX 273 ; N cedilla ; B -30 -228 180 0 ;
-C 205 ; WX 273 ; N hungarumlaut ; B 113 604 529 750 ;
-C 206 ; WX 273 ; N ogonek ; B 33 -228 216 0 ;
-C 207 ; WX 273 ; N caron ; B 123 604 412 750 ;
-C 208 ; WX 820 ; N emdash ; B 40 227 878 333 ;
-C 225 ; WX 820 ; N AE ; B 4 0 902 718 ;
-C 227 ; WX 303 ; N ordfeminine ; B 75 276 381 737 ;
-C 232 ; WX 501 ; N Lslash ; B 28 0 501 718 ;
-C 233 ; WX 638 ; N Oslash ; B 29 -27 733 745 ;
-C 234 ; WX 820 ; N OE ; B 81 -19 913 737 ;
-C 235 ; WX 299 ; N ordmasculine ; B 75 276 398 737 ;
-C 241 ; WX 729 ; N ae ; B 46 -14 757 546 ;
-C 245 ; WX 228 ; N dotlessi ; B 57 0 264 532 ;
-C 248 ; WX 228 ; N lslash ; B 33 0 334 718 ;
-C 249 ; WX 501 ; N oslash ; B 18 -29 575 560 ;
-C 250 ; WX 774 ; N oe ; B 67 -14 801 546 ;
-C 251 ; WX 501 ; N germandbls ; B 57 -14 539 731 ;
-C -1 ; WX 592 ; N Udieresis ; B 96 -19 659 915 ;
-C -1 ; WX 592 ; N Uacute ; B 96 -19 659 936 ;
-C -1 ; WX 547 ; N Scedilla ; B 66 -228 588 737 ;
-C -1 ; WX 501 ; N Tcaron ; B 114 0 615 936 ;
-C -1 ; WX 547 ; N Scaron ; B 66 -19 588 936 ;
-C -1 ; WX 592 ; N Rcaron ; B 62 0 638 936 ;
-C -1 ; WX 592 ; N Racute ; B 62 0 638 936 ;
-C -1 ; WX 547 ; N Sacute ; B 66 -19 592 936 ;
-C -1 ; WX 638 ; N Otilde ; B 88 -19 675 923 ;
-C -1 ; WX 501 ; N ucircumflex ; B 80 -14 540 750 ;
-C -1 ; WX 638 ; N Ohungarumlaut ; B 88 -19 744 936 ;
-C -1 ; WX 592 ; N Uhungarumlaut ; B 96 -19 721 936 ;
-C -1 ; WX 547 ; N Yacute ; B 137 0 661 936 ;
-C -1 ; WX 592 ; N Eth ; B 51 0 637 718 ;
-C -1 ; WX 592 ; N Dcroat ; B 51 0 637 718 ;
-C -1 ; WX 501 ; N Zacute ; B 20 0 604 936 ;
-C -1 ; WX 592 ; N Uring ; B 96 -19 659 962 ;
-C -1 ; WX 501 ; N gbreve ; B 31 -217 546 750 ;
-C -1 ; WX 456 ; N eogonek ; B 58 -228 486 546 ;
-C -1 ; WX 456 ; N edotaccent ; B 58 -14 486 729 ;
-C -1 ; WX 456 ; N ecaron ; B 58 -14 504 750 ;
-C -1 ; WX 592 ; N Ugrave ; B 96 -19 659 936 ;
-C -1 ; WX 547 ; N Thorn ; B 62 0 588 718 ;
-C -1 ; WX 456 ; N eacute ; B 58 -14 515 750 ;
-C -1 ; WX 456 ; N edieresis ; B 58 -14 488 729 ;
-C -1 ; WX 561 ; N dcaron ; B 67 -14 701 718 ;
-C -1 ; WX 456 ; N ccedilla ; B 65 -228 491 546 ;
-C -1 ; WX 456 ; N ccaron ; B 65 -14 504 750 ;
-C -1 ; WX 456 ; N cacute ; B 65 -14 515 750 ;
-C -1 ; WX 456 ; N aogonek ; B 45 -228 478 546 ;
-C -1 ; WX 456 ; N aring ; B 45 -14 478 803 ;
-C -1 ; WX 456 ; N atilde ; B 45 -14 507 737 ;
-C -1 ; WX 456 ; N abreve ; B 45 -14 496 750 ;
-C -1 ; WX 456 ; N egrave ; B 58 -14 486 750 ;
-C -1 ; WX 456 ; N agrave ; B 45 -14 478 750 ;
-C -1 ; WX 456 ; N aacute ; B 45 -14 514 750 ;
-C -1 ; WX 456 ; N adieresis ; B 45 -14 487 729 ;
-C -1 ; WX 592 ; N Uogonek ; B 96 -228 659 718 ;
-C -1 ; WX 501 ; N ugrave ; B 80 -14 540 750 ;
-C -1 ; WX 501 ; N uacute ; B 80 -14 540 750 ;
-C -1 ; WX 501 ; N udieresis ; B 80 -14 540 729 ;
-C -1 ; WX 312 ; N tcaron ; B 82 -6 452 718 ;
-C -1 ; WX 456 ; N scommaaccent ; B 52 -298 479 546 ;
-C -1 ; WX 501 ; N Zcaron ; B 20 0 604 936 ;
-C -1 ; WX 456 ; N ecircumflex ; B 58 -14 486 750 ;
-C -1 ; WX 592 ; N Ucircumflex ; B 96 -19 659 936 ;
-C -1 ; WX 456 ; N acircumflex ; B 45 -14 478 750 ;
-C -1 ; WX 501 ; N Zdotaccent ; B 20 0 604 915 ;
-C -1 ; WX 456 ; N scaron ; B 52 -14 503 750 ;
-C -1 ; WX 592 ; N Amacron ; B 16 0 588 864 ;
-C -1 ; WX 456 ; N sacute ; B 52 -14 515 750 ;
-C -1 ; WX 501 ; N Tcommaaccent ; B 114 -298 615 718 ;
-C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 915 ;
-C -1 ; WX 501 ; N thorn ; B 15 -207 529 718 ;
-C -1 ; WX 547 ; N Emacron ; B 62 0 620 864 ;
-C -1 ; WX 638 ; N Ograve ; B 88 -19 675 936 ;
-C -1 ; WX 638 ; N Oacute ; B 88 -19 675 936 ;
-C -1 ; WX 638 ; N Odieresis ; B 88 -19 675 915 ;
-C -1 ; WX 592 ; N Ntilde ; B 57 0 661 923 ;
-C -1 ; WX 592 ; N Ncaron ; B 57 0 661 936 ;
-C -1 ; WX 592 ; N Nacute ; B 57 0 661 936 ;
-C -1 ; WX 501 ; N Lcaron ; B 62 0 573 718 ;
-C -1 ; WX 501 ; N Lacute ; B 62 0 501 936 ;
-C -1 ; WX 228 ; N Idotaccent ; B 52 0 326 915 ;
-C -1 ; WX 319 ; N racute ; B 52 0 446 750 ;
-C -1 ; WX 228 ; N Icircumflex ; B 52 0 397 936 ;
-C -1 ; WX 501 ; N ohungarumlaut ; B 67 -14 643 750 ;
-C -1 ; WX 501 ; N otilde ; B 67 -14 529 737 ;
-C -1 ; WX 467 ; N Euro ; B 0 -15 507 670 ;
-C -1 ; WX 501 ; N ocircumflex ; B 67 -14 527 750 ;
-C -1 ; WX 273 ; N onesuperior ; B 121 283 318 710 ;
-C -1 ; WX 273 ; N twosuperior ; B 57 283 368 722 ;
-C -1 ; WX 273 ; N threesuperior ; B 75 271 361 722 ;
-C -1 ; WX 228 ; N Igrave ; B 52 0 301 936 ;
-C -1 ; WX 228 ; N Iacute ; B 52 0 433 936 ;
-C -1 ; WX 228 ; N Imacron ; B 52 0 406 864 ;
-C -1 ; WX 228 ; N Iogonek ; B -8 -228 301 718 ;
-C -1 ; WX 228 ; N Idieresis ; B 52 0 405 915 ;
-C -1 ; WX 638 ; N Gbreve ; B 89 -19 670 936 ;
-C -1 ; WX 592 ; N Umacron ; B 96 -19 659 864 ;
-C -1 ; WX 592 ; N Kcommaaccent ; B 71 -298 703 718 ;
-C -1 ; WX 501 ; N ograve ; B 67 -14 527 750 ;
-C -1 ; WX 547 ; N Scommaaccent ; B 66 -298 588 737 ;
-C -1 ; WX 547 ; N Eogonek ; B 62 -228 620 718 ;
-C -1 ; WX 501 ; N oacute ; B 67 -14 537 750 ;
-C -1 ; WX 547 ; N Edotaccent ; B 62 0 620 915 ;
-C -1 ; WX 228 ; N iogonek ; B -11 -228 298 725 ;
-C -1 ; WX 501 ; N gcommaaccent ; B 31 -217 546 844 ;
-C -1 ; WX 501 ; N odieresis ; B 67 -14 527 729 ;
-C -1 ; WX 501 ; N ntilde ; B 53 0 529 737 ;
-C -1 ; WX 501 ; N ncaron ; B 53 0 526 750 ;
-C -1 ; WX 547 ; N Ecaron ; B 62 0 620 936 ;
-C -1 ; WX 547 ; N Ecircumflex ; B 62 0 620 936 ;
-C -1 ; WX 456 ; N scedilla ; B 52 -228 479 546 ;
-C -1 ; WX 319 ; N rcaron ; B 52 0 435 750 ;
-C -1 ; WX 547 ; N Egrave ; B 62 0 620 936 ;
-C -1 ; WX 547 ; N Eacute ; B 62 0 620 936 ;
-C -1 ; WX 638 ; N Gcommaaccent ; B 89 -298 670 737 ;
-C -1 ; WX 592 ; N Rcommaaccent ; B 62 -298 638 718 ;
-C -1 ; WX 547 ; N Edieresis ; B 62 0 620 915 ;
-C -1 ; WX 501 ; N nacute ; B 53 0 537 750 ;
-C -1 ; WX 501 ; N uogonek ; B 80 -228 540 532 ;
-C -1 ; WX 501 ; N umacron ; B 80 -14 540 678 ;
-C -1 ; WX 592 ; N Dcaron ; B 62 0 637 936 ;
-C -1 ; WX 283 ; N lcaron ; B 57 0 422 718 ;
-C -1 ; WX 592 ; N Ccaron ; B 88 -19 647 936 ;
-C -1 ; WX 592 ; N Cacute ; B 88 -19 647 936 ;
-C -1 ; WX 592 ; N Ccedilla ; B 88 -228 647 737 ;
-C -1 ; WX 328 ; N degree ; B 143 426 383 712 ;
-C -1 ; WX 592 ; N Aogonek ; B 16 -228 576 718 ;
-C -1 ; WX 479 ; N minus ; B 67 197 500 309 ;
-C -1 ; WX 479 ; N multiply ; B 47 1 520 505 ;
-C -1 ; WX 479 ; N divide ; B 67 -42 500 548 ;
-C -1 ; WX 592 ; N Aring ; B 16 0 576 989 ;
-C -1 ; WX 820 ; N trademark ; B 146 306 909 718 ;
-C -1 ; WX 319 ; N rcommaaccent ; B 5 -298 401 546 ;
-C -1 ; WX 228 ; N lacute ; B 57 0 433 936 ;
-C -1 ; WX 501 ; N omacron ; B 67 -14 527 678 ;
-C -1 ; WX 592 ; N Atilde ; B 16 0 607 923 ;
-C -1 ; WX 228 ; N icircumflex ; B 57 0 365 750 ;
-C -1 ; WX 228 ; N igrave ; B 57 0 268 750 ;
-C -1 ; WX 501 ; N ncommaaccent ; B 53 -298 516 546 ;
-C -1 ; WX 228 ; N lcommaaccent ; B 12 -298 297 718 ;
-C -1 ; WX 479 ; N plusminus ; B 33 0 512 578 ;
-C -1 ; WX 684 ; N onehalf ; B 108 -19 704 710 ;
-C -1 ; WX 684 ; N onequarter ; B 108 -19 661 710 ;
-C -1 ; WX 684 ; N threequarters ; B 82 -19 688 722 ;
-C -1 ; WX 228 ; N iacute ; B 57 0 401 750 ;
-C -1 ; WX 592 ; N Abreve ; B 16 0 597 936 ;
-C -1 ; WX 456 ; N kcommaaccent ; B 57 -298 549 718 ;
-C -1 ; WX 638 ; N Omacron ; B 88 -19 675 864 ;
-C -1 ; WX 228 ; N imacron ; B 57 0 374 678 ;
-C -1 ; WX 456 ; N emacron ; B 58 -14 488 678 ;
-C -1 ; WX 456 ; N amacron ; B 45 -14 488 678 ;
-C -1 ; WX 273 ; N tcommaaccent ; B 35 -298 346 676 ;
-C -1 ; WX 456 ; N ydieresis ; B 34 -214 535 729 ;
-C -1 ; WX 410 ; N zdotaccent ; B 16 0 478 729 ;
-C -1 ; WX 410 ; N zcaron ; B 16 0 480 750 ;
-C -1 ; WX 410 ; N zacute ; B 16 0 492 750 ;
-C -1 ; WX 456 ; N yacute ; B 34 -214 535 750 ;
-C -1 ; WX 501 ; N uhungarumlaut ; B 80 -14 643 750 ;
-C -1 ; WX 501 ; N eth ; B 67 -14 549 737 ;
-C -1 ; WX 501 ; N uring ; B 80 -14 540 776 ;
-C -1 ; WX 638 ; N Ocircumflex ; B 88 -19 675 936 ;
-C -1 ; WX 273 ; N commaaccent ; B 35 -298 175 -60 ;
-C -1 ; WX 604 ; N copyright ; B 46 -19 685 737 ;
-C -1 ; WX 604 ; N registered ; B 45 -19 684 737 ;
-C -1 ; WX 592 ; N Acircumflex ; B 16 0 579 936 ;
-C -1 ; WX 228 ; N idieresis ; B 57 0 373 729 ;
-C -1 ; WX 405 ; N lozenge ; B 80 0 447 740 ;
-C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ;
-C -1 ; WX 479 ; N notequal ; B 48 -16 519 522 ;
-C -1 ; WX 450 ; N radical ; B 54 -35 605 918 ;
-C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ;
-C -1 ; WX 592 ; N Aacute ; B 16 0 615 936 ;
-C -1 ; WX 479 ; N lessequal ; B 34 0 565 672 ;
-C -1 ; WX 479 ; N greaterequal ; B 34 0 527 671 ;
-C -1 ; WX 479 ; N logicalnot ; B 86 108 519 419 ;
-C -1 ; WX 585 ; N summation ; B 12 -123 570 752 ;
-C -1 ; WX 405 ; N partialdiff ; B 39 -21 465 743 ;
-C -1 ; WX 592 ; N Ncommaaccent ; B 57 -298 661 718 ;
-C -1 ; WX 501 ; N dcroat ; B 67 -14 617 718 ;
-C -1 ; WX 230 ; N brokenbar ; B 66 -19 289 737 ;
-C -1 ; WX 501 ; N Lcommaaccent ; B 62 -298 501 718 ;
-C -1 ; WX 592 ; N Adieresis ; B 16 0 587 915 ;
-C -1 ; WX 501 ; N mu ; B 18 -207 540 532 ;
-C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -30
-KPX A Ccedilla -30
-KPX A G -31
-KPX A O -31
-KPX A Odieresis -31
-KPX A Q -30
-KPX A T -72
-KPX A U -29
-KPX A Uacute -29
-KPX A Ucircumflex -29
-KPX A Udieresis -29
-KPX A Ugrave -29
-KPX A V -56
-KPX A W -46
-KPX A Y -75
-KPX A a -11
-KPX A b -11
-KPX A c -15
-KPX A ccedilla -14
-KPX A comma 9
-KPX A d -14
-KPX A e -11
-KPX A g -19
-KPX A guillemotleft -41
-KPX A guilsinglleft -39
-KPX A hyphen 1
-KPX A o -17
-KPX A period 11
-KPX A q -14
-KPX A quotedblright -54
-KPX A quoteright -56
-KPX A t -16
-KPX A u -16
-KPX A v -34
-KPX A w -24
-KPX A y -32
-KPX Aacute C -31
-KPX Aacute G -32
-KPX Aacute O -32
-KPX Aacute Q -32
-KPX Aacute T -72
-KPX Aacute U -30
-KPX Aacute V -56
-KPX Aacute W -46
-KPX Aacute Y -74
-KPX Aacute a -11
-KPX Aacute b -11
-KPX Aacute c -16
-KPX Aacute comma 9
-KPX Aacute d -16
-KPX Aacute e -12
-KPX Aacute g -19
-KPX Aacute guillemotleft -42
-KPX Aacute guilsinglleft -40
-KPX Aacute hyphen 1
-KPX Aacute o -18
-KPX Aacute period 9
-KPX Aacute q -15
-KPX Aacute quoteright -56
-KPX Aacute t -17
-KPX Aacute u -17
-KPX Aacute v -33
-KPX Aacute w -24
-KPX Aacute y -32
-KPX Acircumflex C -30
-KPX Acircumflex G -31
-KPX Acircumflex O -31
-KPX Acircumflex Q -30
-KPX Acircumflex T -72
-KPX Acircumflex U -29
-KPX Acircumflex V -56
-KPX Acircumflex W -46
-KPX Acircumflex Y -74
-KPX Acircumflex comma 10
-KPX Acircumflex period 11
-KPX Adieresis C -31
-KPX Adieresis G -32
-KPX Adieresis O -32
-KPX Adieresis Q -31
-KPX Adieresis T -72
-KPX Adieresis U -30
-KPX Adieresis V -56
-KPX Adieresis W -46
-KPX Adieresis Y -75
-KPX Adieresis a -11
-KPX Adieresis b -11
-KPX Adieresis c -15
-KPX Adieresis comma 9
-KPX Adieresis d -15
-KPX Adieresis g -19
-KPX Adieresis guillemotleft -42
-KPX Adieresis guilsinglleft -39
-KPX Adieresis hyphen 0
-KPX Adieresis o -18
-KPX Adieresis period 10
-KPX Adieresis q -15
-KPX Adieresis quotedblright -54
-KPX Adieresis quoteright -57
-KPX Adieresis t -16
-KPX Adieresis u -16
-KPX Adieresis v -34
-KPX Adieresis w -24
-KPX Adieresis y -32
-KPX Agrave C -30
-KPX Agrave G -31
-KPX Agrave O -31
-KPX Agrave Q -30
-KPX Agrave T -72
-KPX Agrave U -29
-KPX Agrave V -56
-KPX Agrave W -46
-KPX Agrave Y -75
-KPX Agrave comma 9
-KPX Agrave period 11
-KPX Aring C -30
-KPX Aring G -31
-KPX Aring O -31
-KPX Aring Q -30
-KPX Aring T -72
-KPX Aring U -29
-KPX Aring V -56
-KPX Aring W -46
-KPX Aring Y -75
-KPX Aring a -11
-KPX Aring b -11
-KPX Aring c -15
-KPX Aring comma 9
-KPX Aring d -14
-KPX Aring e -11
-KPX Aring g -19
-KPX Aring guillemotleft -41
-KPX Aring guilsinglleft -39
-KPX Aring hyphen 1
-KPX Aring o -17
-KPX Aring period 11
-KPX Aring q -14
-KPX Aring quotedblright -54
-KPX Aring quoteright -56
-KPX Aring t -16
-KPX Aring u -16
-KPX Aring v -34
-KPX Aring w -24
-KPX Aring y -32
-KPX Atilde C -32
-KPX Atilde G -33
-KPX Atilde O -33
-KPX Atilde Q -32
-KPX Atilde T -73
-KPX Atilde U -31
-KPX Atilde V -56
-KPX Atilde W -47
-KPX Atilde Y -75
-KPX Atilde comma 9
-KPX Atilde period 9
-KPX B A -27
-KPX B AE -21
-KPX B Aacute -27
-KPX B Acircumflex -27
-KPX B Adieresis -27
-KPX B Aring -27
-KPX B Atilde -27
-KPX B O -12
-KPX B OE -6
-KPX B Oacute -12
-KPX B Ocircumflex -12
-KPX B Odieresis -12
-KPX B Ograve -12
-KPX B Oslash -9
-KPX B V -31
-KPX B W -21
-KPX B Y -40
-KPX C A -29
-KPX C AE -23
-KPX C Aacute -29
-KPX C Adieresis -29
-KPX C Aring -29
-KPX C H -7
-KPX C K -13
-KPX C O -12
-KPX C Oacute -12
-KPX C Odieresis -12
-KPX Ccedilla A -31
-KPX D A -31
-KPX D Aacute -31
-KPX D Acircumflex -31
-KPX D Adieresis -31
-KPX D Agrave -31
-KPX D Aring -31
-KPX D Atilde -31
-KPX D J -1
-KPX D T -14
-KPX D V -25
-KPX D W -16
-KPX D X -28
-KPX D Y -43
-KPX F A -53
-KPX F Aacute -53
-KPX F Acircumflex -53
-KPX F Adieresis -53
-KPX F Agrave -53
-KPX F Aring -53
-KPX F Atilde -53
-KPX F J -24
-KPX F O -19
-KPX F Odieresis -19
-KPX F a -24
-KPX F aacute -24
-KPX F adieresis -24
-KPX F ae -24
-KPX F aring -24
-KPX F comma -78
-KPX F e -15
-KPX F eacute -15
-KPX F hyphen 0
-KPX F i -14
-KPX F j -13
-KPX F o -19
-KPX F oacute -19
-KPX F odieresis -19
-KPX F oe -19
-KPX F oslash -20
-KPX F period -77
-KPX F r -30
-KPX F u -31
-KPX G A -8
-KPX G AE -2
-KPX G Aacute -8
-KPX G Acircumflex -8
-KPX G Adieresis -8
-KPX G Agrave -8
-KPX G Aring -8
-KPX G Atilde -8
-KPX G T -18
-KPX G V -29
-KPX G W -20
-KPX G Y -47
-KPX J A -30
-KPX J AE -25
-KPX J Adieresis -30
-KPX J Aring -30
-KPX K C -42
-KPX K G -43
-KPX K O -43
-KPX K OE -37
-KPX K Oacute -43
-KPX K Odieresis -43
-KPX K S -30
-KPX K T 14
-KPX K a -10
-KPX K adieresis -10
-KPX K ae -11
-KPX K aring -10
-KPX K e -27
-KPX K hyphen -34
-KPX K o -35
-KPX K oacute -35
-KPX K odieresis -35
-KPX K u -30
-KPX K udieresis -30
-KPX K y -57
-KPX L A 6
-KPX L AE 12
-KPX L Aacute 6
-KPX L Adieresis 6
-KPX L Aring 6
-KPX L C -25
-KPX L Ccedilla -26
-KPX L G -27
-KPX L O -26
-KPX L Oacute -26
-KPX L Ocircumflex -26
-KPX L Odieresis -26
-KPX L Ograve -26
-KPX L Otilde -26
-KPX L S -8
-KPX L T -79
-KPX L U -23
-KPX L Udieresis -23
-KPX L V -75
-KPX L W -60
-KPX L Y -92
-KPX L hyphen -19
-KPX L quotedblright -123
-KPX L quoteright -125
-KPX L u -17
-KPX L udieresis -17
-KPX L y -50
-KPX N A -10
-KPX N AE -4
-KPX N Aacute -10
-KPX N Adieresis -10
-KPX N Aring -10
-KPX N C -3
-KPX N Ccedilla -2
-KPX N G -4
-KPX N O -4
-KPX N Oacute -4
-KPX N Odieresis -4
-KPX N a -1
-KPX N aacute -1
-KPX N adieresis -1
-KPX N ae -2
-KPX N aring -1
-KPX N comma 5
-KPX N e 2
-KPX N eacute 2
-KPX N o -3
-KPX N oacute -3
-KPX N odieresis -3
-KPX N oslash 0
-KPX N period 5
-KPX N u -1
-KPX N udieresis -2
-KPX O A -35
-KPX O AE -30
-KPX O Aacute -35
-KPX O Adieresis -35
-KPX O Aring -35
-KPX O T -21
-KPX O V -29
-KPX O W -20
-KPX O X -32
-KPX O Y -50
-KPX Oacute A -35
-KPX Oacute T -21
-KPX Oacute V -29
-KPX Oacute W -20
-KPX Oacute Y -50
-KPX Ocircumflex T -21
-KPX Ocircumflex V -29
-KPX Ocircumflex Y -50
-KPX Odieresis A -35
-KPX Odieresis T -21
-KPX Odieresis V -29
-KPX Odieresis W -20
-KPX Odieresis X -32
-KPX Odieresis Y -50
-KPX Ograve T -21
-KPX Ograve V -29
-KPX Ograve Y -50
-KPX Oslash A -32
-KPX Otilde T -21
-KPX Otilde V -29
-KPX Otilde Y -50
-KPX P A -61
-KPX P AE -56
-KPX P Aacute -61
-KPX P Adieresis -61
-KPX P Aring -61
-KPX P J -45
-KPX P a -22
-KPX P aacute -22
-KPX P adieresis -22
-KPX P ae -22
-KPX P aring -22
-KPX P comma -98
-KPX P e -20
-KPX P eacute -20
-KPX P hyphen -13
-KPX P o -24
-KPX P oacute -24
-KPX P odieresis -24
-KPX P oe -25
-KPX P oslash -25
-KPX P period -98
-KPX R C -10
-KPX R Ccedilla -9
-KPX R G -11
-KPX R O -11
-KPX R OE -5
-KPX R Oacute -11
-KPX R Odieresis -11
-KPX R T -9
-KPX R U -9
-KPX R Udieresis -9
-KPX R V -27
-KPX R W -18
-KPX R Y -36
-KPX R a -7
-KPX R aacute -7
-KPX R adieresis -7
-KPX R ae -7
-KPX R aring -7
-KPX R e -4
-KPX R eacute -4
-KPX R hyphen 7
-KPX R o -10
-KPX R oacute -10
-KPX R odieresis -10
-KPX R oe -10
-KPX R u -7
-KPX R uacute -8
-KPX R udieresis -8
-KPX R y -6
-KPX S A -20
-KPX S AE -14
-KPX S Aacute -20
-KPX S Adieresis -20
-KPX S Aring -20
-KPX S T -12
-KPX S V -29
-KPX S W -20
-KPX S Y -39
-KPX S t -5
-KPX T A -72
-KPX T AE -68
-KPX T Aacute -72
-KPX T Acircumflex -72
-KPX T Adieresis -72
-KPX T Agrave -72
-KPX T Aring -72
-KPX T Atilde -72
-KPX T C -18
-KPX T G -19
-KPX T J -77
-KPX T O -18
-KPX T OE -12
-KPX T Oacute -18
-KPX T Ocircumflex -18
-KPX T Odieresis -18
-KPX T Ograve -18
-KPX T Oslash -18
-KPX T Otilde -18
-KPX T S -3
-KPX T V 11
-KPX T W 13
-KPX T Y 13
-KPX T a -68
-KPX T ae -69
-KPX T c -68
-KPX T colon -79
-KPX T comma -61
-KPX T e -64
-KPX T g -69
-KPX T guillemotleft -92
-KPX T guilsinglleft -89
-KPX T hyphen -46
-KPX T i -9
-KPX T j -9
-KPX T o -70
-KPX T oslash -67
-KPX T period -61
-KPX T r -64
-KPX T s -69
-KPX T semicolon -79
-KPX T u -68
-KPX T v -77
-KPX T w -72
-KPX T y -76
-KPX U A -32
-KPX U AE -27
-KPX U Aacute -32
-KPX U Acircumflex -32
-KPX U Adieresis -32
-KPX U Aring -32
-KPX U Atilde -32
-KPX U comma -14
-KPX U m -5
-KPX U n -5
-KPX U p -5
-KPX U period -11
-KPX U r -5
-KPX Uacute A -32
-KPX Uacute comma -14
-KPX Uacute m -5
-KPX Uacute n -5
-KPX Uacute p -5
-KPX Uacute period -11
-KPX Uacute r -5
-KPX Ucircumflex A -32
-KPX Udieresis A -32
-KPX Udieresis b -5
-KPX Udieresis comma -14
-KPX Udieresis m -5
-KPX Udieresis n -5
-KPX Udieresis p -5
-KPX Udieresis period -11
-KPX Udieresis r -5
-KPX Ugrave A -32
-KPX V A -58
-KPX V AE -53
-KPX V Aacute -58
-KPX V Acircumflex -58
-KPX V Adieresis -58
-KPX V Agrave -58
-KPX V Aring -58
-KPX V Atilde -58
-KPX V C -33
-KPX V G -34
-KPX V O -34
-KPX V Oacute -34
-KPX V Ocircumflex -34
-KPX V Odieresis -34
-KPX V Ograve -34
-KPX V Oslash -29
-KPX V Otilde -34
-KPX V S -23
-KPX V T 13
-KPX V a -45
-KPX V ae -46
-KPX V colon -47
-KPX V comma -58
-KPX V e -41
-KPX V g -45
-KPX V guillemotleft -68
-KPX V guilsinglleft -65
-KPX V hyphen -22
-KPX V i -12
-KPX V o -47
-KPX V oslash -44
-KPX V period -58
-KPX V r -36
-KPX V semicolon -47
-KPX V u -40
-KPX V y -17
-KPX W A -47
-KPX W AE -42
-KPX W Aacute -47
-KPX W Acircumflex -47
-KPX W Adieresis -47
-KPX W Agrave -47
-KPX W Aring -47
-KPX W Atilde -47
-KPX W C -23
-KPX W G -24
-KPX W O -23
-KPX W Oacute -23
-KPX W Ocircumflex -23
-KPX W Odieresis -23
-KPX W Ograve -23
-KPX W Oslash -19
-KPX W Otilde -23
-KPX W S -18
-KPX W T 15
-KPX W a -32
-KPX W ae -33
-KPX W colon -40
-KPX W comma -42
-KPX W e -28
-KPX W g -32
-KPX W guillemotleft -55
-KPX W guilsinglleft -52
-KPX W hyphen -9
-KPX W i -10
-KPX W o -34
-KPX W oslash -31
-KPX W period -42
-KPX W r -27
-KPX W semicolon -41
-KPX W u -32
-KPX W y -11
-KPX X C -32
-KPX X O -33
-KPX X Odieresis -33
-KPX X Q -33
-KPX X a -15
-KPX X e -31
-KPX X hyphen -28
-KPX X o -37
-KPX X u -34
-KPX X y -44
-KPX Y A -73
-KPX Y AE -68
-KPX Y Aacute -73
-KPX Y Acircumflex -73
-KPX Y Adieresis -73
-KPX Y Agrave -73
-KPX Y Aring -73
-KPX Y Atilde -73
-KPX Y C -45
-KPX Y G -46
-KPX Y O -46
-KPX Y Oacute -46
-KPX Y Ocircumflex -46
-KPX Y Odieresis -46
-KPX Y Ograve -46
-KPX Y Oslash -45
-KPX Y Otilde -46
-KPX Y S -28
-KPX Y T 16
-KPX Y a -64
-KPX Y ae -65
-KPX Y colon -61
-KPX Y comma -71
-KPX Y e -60
-KPX Y g -64
-KPX Y guillemotleft -91
-KPX Y guilsinglleft -88
-KPX Y hyphen -49
-KPX Y i -9
-KPX Y o -66
-KPX Y oslash -63
-KPX Y p -48
-KPX Y period -71
-KPX Y semicolon -61
-KPX Y u -54
-KPX Y v -31
-KPX Z v -19
-KPX Z y -18
-KPX a j -2
-KPX a quoteright -11
-KPX a v -16
-KPX a w -7
-KPX a y -16
-KPX aacute v -17
-KPX aacute w -8
-KPX aacute y -17
-KPX adieresis v -16
-KPX adieresis w -7
-KPX adieresis y -16
-KPX ae v -17
-KPX ae w -7
-KPX ae y -18
-KPX agrave v -16
-KPX agrave w -7
-KPX agrave y -16
-KPX aring v -16
-KPX aring w -7
-KPX aring y -16
-KPX b v -15
-KPX b w -6
-KPX b y -17
-KPX c h -6
-KPX c k -8
-KPX comma one -65
-KPX comma quotedblright -27
-KPX comma quoteright -29
-KPX e quoteright -11
-KPX e t -4
-KPX e v -16
-KPX e w -6
-KPX e x -19
-KPX e y -17
-KPX eacute v -17
-KPX eacute w -7
-KPX eacute y -18
-KPX ecircumflex v -16
-KPX ecircumflex w -6
-KPX ecircumflex y -17
-KPX eight four 2
-KPX eight one -24
-KPX eight seven -10
-KPX f a -12
-KPX f aacute -12
-KPX f adieresis -12
-KPX f ae -13
-KPX f aring -12
-KPX f e -10
-KPX f eacute -10
-KPX f f 12
-KPX f i -11
-KPX f j -11
-KPX f l -11
-KPX f o -16
-KPX f oacute -16
-KPX f odieresis -16
-KPX f oe -16
-KPX f oslash -13
-KPX f quoteright 0
-KPX f s -13
-KPX f t 12
-KPX five four 0
-KPX five one -30
-KPX five seven -10
-KPX four four 3
-KPX four one -46
-KPX four seven -27
-KPX g a -2
-KPX g adieresis -2
-KPX g ae -3
-KPX g aring -2
-KPX g e 1
-KPX g eacute 1
-KPX g l 0
-KPX g oacute -4
-KPX g odieresis -4
-KPX g r 1
-KPX guillemotright A -42
-KPX guillemotright AE -36
-KPX guillemotright Aacute -42
-KPX guillemotright Adieresis -42
-KPX guillemotright Aring -42
-KPX guillemotright T -89
-KPX guillemotright V -63
-KPX guillemotright W -51
-KPX guillemotright Y -92
-KPX guilsinglright A -40
-KPX guilsinglright AE -35
-KPX guilsinglright Aacute -40
-KPX guilsinglright Adieresis -40
-KPX guilsinglright Aring -40
-KPX guilsinglright T -88
-KPX guilsinglright V -61
-KPX guilsinglright W -49
-KPX guilsinglright Y -90
-KPX h quoteright -13
-KPX h y -18
-KPX hyphen A 0
-KPX hyphen AE 6
-KPX hyphen Aacute 0
-KPX hyphen Adieresis 0
-KPX hyphen Aring 0
-KPX hyphen T -46
-KPX hyphen V -19
-KPX hyphen W -8
-KPX hyphen Y -52
-KPX i T -9
-KPX i j -3
-KPX k a -9
-KPX k aacute -9
-KPX k adieresis -9
-KPX k ae -9
-KPX k aring -9
-KPX k comma 7
-KPX k e -11
-KPX k eacute -11
-KPX k g -16
-KPX k hyphen -16
-KPX k o -18
-KPX k oacute -18
-KPX k odieresis -18
-KPX k period 7
-KPX k s -15
-KPX k u -12
-KPX k udieresis -6
-KPX l v -14
-KPX l y -13
-KPX m p -1
-KPX m v -17
-KPX m w -8
-KPX m y -17
-KPX n T -67
-KPX n p -2
-KPX n quoteright -12
-KPX n v -18
-KPX n w -9
-KPX n y -18
-KPX nine four 0
-KPX nine one -21
-KPX nine seven -14
-KPX o T -68
-KPX o quoteright -16
-KPX o t -7
-KPX o v -19
-KPX o w -9
-KPX o x -22
-KPX o y -21
-KPX oacute v -19
-KPX oacute w -9
-KPX oacute y -21
-KPX ocircumflex t -7
-KPX odieresis t -7
-KPX odieresis v -19
-KPX odieresis w -9
-KPX odieresis x -22
-KPX odieresis y -21
-KPX ograve v -19
-KPX ograve w -9
-KPX ograve y -21
-KPX one comma -39
-KPX one eight -41
-KPX one five -41
-KPX one four -57
-KPX one nine -42
-KPX one one -74
-KPX one period -39
-KPX one seven -55
-KPX one six -39
-KPX one three -46
-KPX one two -47
-KPX one zero -39
-KPX p t -4
-KPX p y -18
-KPX period one -65
-KPX period quotedblright -27
-KPX period quoteright -29
-KPX q c -1
-KPX q u -2
-KPX quotedblbase A 9
-KPX quotedblbase AE 15
-KPX quotedblbase T -61
-KPX quotedblbase V -58
-KPX quotedblbase W -43
-KPX quotedblbase Y -75
-KPX quotedblleft A -55
-KPX quotedblleft AE -51
-KPX quotedblleft Aacute -55
-KPX quotedblleft Adieresis -55
-KPX quotedblleft Aring -55
-KPX quotedblleft T -6
-KPX quotedblleft V 4
-KPX quotedblleft W 9
-KPX quotedblleft Y -6
-KPX quotedblright A -57
-KPX quotedblright AE -53
-KPX quotedblright Aacute -57
-KPX quotedblright Adieresis -57
-KPX quotedblright Aring -57
-KPX quotedblright T -4
-KPX quotedblright V 2
-KPX quotedblright W 7
-KPX quotedblright Y -8
-KPX quoteleft A -57
-KPX quoteleft AE -53
-KPX quoteleft Aacute -57
-KPX quoteleft Adieresis -57
-KPX quoteleft Aring -57
-KPX quoteleft T -8
-KPX quoteleft V 2
-KPX quoteleft W 7
-KPX quoteleft Y -8
-KPX quoteright A -59
-KPX quoteright AE -55
-KPX quoteright Aacute -59
-KPX quoteright Adieresis -59
-KPX quoteright Aring -59
-KPX quoteright comma -35
-KPX quoteright d -23
-KPX quoteright o -28
-KPX quoteright period -35
-KPX quoteright r -11
-KPX quoteright s -21
-KPX quoteright t 0
-KPX quoteright v -3
-KPX quoteright w 0
-KPX quoteright y -2
-KPX r a -9
-KPX r aacute -9
-KPX r acircumflex -9
-KPX r adieresis -9
-KPX r ae -9
-KPX r agrave -9
-KPX r aring -9
-KPX r c -11
-KPX r ccedilla -7
-KPX r colon -19
-KPX r comma -47
-KPX r d -9
-KPX r e -8
-KPX r eacute -8
-KPX r ecircumflex -8
-KPX r egrave -8
-KPX r f 12
-KPX r g -6
-KPX r h -10
-KPX r hyphen -30
-KPX r i -13
-KPX r j -12
-KPX r k -12
-KPX r l -12
-KPX r m -10
-KPX r n -11
-KPX r o -12
-KPX r oacute -12
-KPX r ocircumflex -12
-KPX r odieresis -12
-KPX r oe -12
-KPX r ograve -12
-KPX r oslash -13
-KPX r p -10
-KPX r period -47
-KPX r q -9
-KPX r quoteright 4
-KPX r r -10
-KPX r s -8
-KPX r semicolon -19
-KPX r t 12
-KPX r u -12
-KPX r v 8
-KPX r w 10
-KPX r x 4
-KPX r y 9
-KPX r z 0
-KPX s quoteright -12
-KPX s t -7
-KPX seven colon -48
-KPX seven comma -77
-KPX seven eight -11
-KPX seven five -20
-KPX seven four -59
-KPX seven one -14
-KPX seven period -77
-KPX seven seven 5
-KPX seven six -16
-KPX seven three -9
-KPX seven two -8
-KPX six four 0
-KPX six one -23
-KPX six seven -9
-KPX t S -5
-KPX t a -3
-KPX t aacute -3
-KPX t adieresis -3
-KPX t ae -3
-KPX t aring -3
-KPX t colon -19
-KPX t e -6
-KPX t eacute -6
-KPX t h -4
-KPX t o -12
-KPX t oacute -12
-KPX t odieresis -12
-KPX t quoteright -1
-KPX t semicolon -19
-KPX three four -1
-KPX three one -27
-KPX three seven -13
-KPX two four -21
-KPX two one -21
-KPX two seven -10
-KPX u quoteright -4
-KPX v a -21
-KPX v aacute -21
-KPX v acircumflex -21
-KPX v adieresis -21
-KPX v ae -22
-KPX v agrave -21
-KPX v aring -21
-KPX v atilde -21
-KPX v c -20
-KPX v colon -20
-KPX v comma -40
-KPX v e -17
-KPX v eacute -17
-KPX v ecircumflex -17
-KPX v egrave -17
-KPX v g -20
-KPX v hyphen 0
-KPX v l -12
-KPX v o -23
-KPX v oacute -23
-KPX v odieresis -23
-KPX v ograve -23
-KPX v oslash -20
-KPX v period -39
-KPX v s -21
-KPX v semicolon -20
-KPX w a -12
-KPX w aacute -12
-KPX w acircumflex -12
-KPX w adieresis -12
-KPX w ae -13
-KPX w agrave -12
-KPX w aring -12
-KPX w atilde -12
-KPX w c -11
-KPX w colon -18
-KPX w comma -25
-KPX w e -7
-KPX w eacute -7
-KPX w ecircumflex -7
-KPX w egrave -7
-KPX w g -11
-KPX w hyphen 9
-KPX w l -9
-KPX w o -13
-KPX w oacute -13
-KPX w odieresis -13
-KPX w ograve -13
-KPX w oslash -11
-KPX w period -25
-KPX w s -12
-KPX w semicolon -18
-KPX x a -19
-KPX x c -22
-KPX x e -18
-KPX x eacute -18
-KPX x o -24
-KPX x q -20
-KPX y a -23
-KPX y aacute -23
-KPX y acircumflex -23
-KPX y adieresis -23
-KPX y ae -23
-KPX y agrave -23
-KPX y aring -23
-KPX y atilde -23
-KPX y c -22
-KPX y colon -21
-KPX y comma -40
-KPX y e -19
-KPX y eacute -19
-KPX y ecircumflex -19
-KPX y egrave -19
-KPX y g -23
-KPX y hyphen 0
-KPX y l -14
-KPX y o -25
-KPX y oacute -25
-KPX y odieresis -25
-KPX y ograve -25
-KPX y oslash -21
-KPX y period -40
-KPX y s -23
-KPX y semicolon -22
-KPX zero four 2
-KPX zero one -20
-KPX zero seven -11
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n019064l.pfb b/Master/xemtex/gsfonts/n019064l.pfb
deleted file mode 100644
index 624082e85b3..00000000000
--- a/Master/xemtex/gsfonts/n019064l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n019064l.pfm b/Master/xemtex/gsfonts/n019064l.pfm
deleted file mode 100644
index 5c9d79a92cb..00000000000
--- a/Master/xemtex/gsfonts/n019064l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021003l.afm b/Master/xemtex/gsfonts/n021003l.afm
deleted file mode 100644
index ebddf46dc7e..00000000000
--- a/Master/xemtex/gsfonts/n021003l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusRomNo9L-Regu
-FullName Nimbus Roman No9 L Regular
-FamilyName Nimbus Roman No9 L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -168 -281 1000 924
-CapHeight 662
-XHeight 450
-Descender -217
-Ascender 683
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 333 ; N exclam ; B 130 -9 237 676 ;
-C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ;
-C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ;
-C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ;
-C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ;
-C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ;
-C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ;
-C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ;
-C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ;
-C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ;
-C 43 ; WX 564 ; N plus ; B 30 0 534 506 ;
-C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ;
-C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ;
-C 46 ; WX 250 ; N period ; B 70 -11 181 100 ;
-C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ;
-C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ;
-C 49 ; WX 500 ; N one ; B 111 0 394 676 ;
-C 50 ; WX 500 ; N two ; B 30 0 475 676 ;
-C 51 ; WX 500 ; N three ; B 43 -14 432 676 ;
-C 52 ; WX 500 ; N four ; B 12 0 472 676 ;
-C 53 ; WX 500 ; N five ; B 32 -14 438 688 ;
-C 54 ; WX 500 ; N six ; B 34 -14 468 684 ;
-C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ;
-C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ;
-C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ;
-C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ;
-C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ;
-C 60 ; WX 564 ; N less ; B 28 -10 536 516 ;
-C 61 ; WX 564 ; N equal ; B 30 120 534 386 ;
-C 62 ; WX 564 ; N greater ; B 28 -10 536 516 ;
-C 63 ; WX 444 ; N question ; B 68 -8 414 676 ;
-C 64 ; WX 921 ; N at ; B 116 -14 809 676 ;
-C 65 ; WX 722 ; N A ; B 15 0 706 674 ;
-C 66 ; WX 667 ; N B ; B 17 0 593 662 ;
-C 67 ; WX 667 ; N C ; B 28 -14 633 676 ;
-C 68 ; WX 722 ; N D ; B 16 0 685 662 ;
-C 69 ; WX 611 ; N E ; B 12 0 597 662 ;
-C 70 ; WX 556 ; N F ; B 12 0 546 662 ;
-C 71 ; WX 722 ; N G ; B 32 -14 709 676 ;
-C 72 ; WX 722 ; N H ; B 19 0 702 662 ;
-C 73 ; WX 333 ; N I ; B 18 0 315 662 ;
-C 74 ; WX 389 ; N J ; B 10 -14 370 662 ;
-C 75 ; WX 722 ; N K ; B 34 0 723 662 ;
-C 76 ; WX 611 ; N L ; B 12 0 598 662 ;
-C 77 ; WX 889 ; N M ; B 12 0 863 662 ;
-C 78 ; WX 722 ; N N ; B 12 -11 707 662 ;
-C 79 ; WX 722 ; N O ; B 34 -14 688 676 ;
-C 80 ; WX 556 ; N P ; B 16 0 542 662 ;
-C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ;
-C 82 ; WX 667 ; N R ; B 17 0 659 662 ;
-C 83 ; WX 556 ; N S ; B 42 -14 491 676 ;
-C 84 ; WX 611 ; N T ; B 17 0 593 662 ;
-C 85 ; WX 722 ; N U ; B 14 -14 705 662 ;
-C 86 ; WX 722 ; N V ; B 16 -11 697 662 ;
-C 87 ; WX 944 ; N W ; B 5 -11 932 662 ;
-C 88 ; WX 722 ; N X ; B 10 0 704 662 ;
-C 89 ; WX 722 ; N Y ; B 22 0 703 662 ;
-C 90 ; WX 611 ; N Z ; B 9 0 597 662 ;
-C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ;
-C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ;
-C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ;
-C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ;
-C 97 ; WX 444 ; N a ; B 37 -10 442 460 ;
-C 98 ; WX 500 ; N b ; B 3 -10 468 683 ;
-C 99 ; WX 444 ; N c ; B 25 -10 412 460 ;
-C 100 ; WX 500 ; N d ; B 27 -10 491 683 ;
-C 101 ; WX 444 ; N e ; B 25 -10 424 460 ;
-C 102 ; WX 333 ; N f ; B 20 0 383 683 ;
-C 103 ; WX 500 ; N g ; B 28 -218 470 460 ;
-C 104 ; WX 500 ; N h ; B 9 0 487 683 ;
-C 105 ; WX 278 ; N i ; B 16 0 253 683 ;
-C 106 ; WX 278 ; N j ; B -70 -218 194 683 ;
-C 107 ; WX 500 ; N k ; B 7 0 505 683 ;
-C 108 ; WX 278 ; N l ; B 19 0 257 683 ;
-C 109 ; WX 778 ; N m ; B 16 0 775 460 ;
-C 110 ; WX 500 ; N n ; B 16 0 485 460 ;
-C 111 ; WX 500 ; N o ; B 29 -10 470 460 ;
-C 112 ; WX 500 ; N p ; B 5 -217 470 460 ;
-C 113 ; WX 500 ; N q ; B 24 -217 488 461 ;
-C 114 ; WX 333 ; N r ; B 5 0 335 460 ;
-C 115 ; WX 389 ; N s ; B 51 -10 348 459 ;
-C 116 ; WX 278 ; N t ; B 13 -10 279 579 ;
-C 117 ; WX 500 ; N u ; B 9 -10 479 450 ;
-C 118 ; WX 500 ; N v ; B 19 -14 477 450 ;
-C 119 ; WX 722 ; N w ; B 21 -14 694 450 ;
-C 120 ; WX 500 ; N x ; B 17 0 479 450 ;
-C 121 ; WX 500 ; N y ; B 14 -218 475 450 ;
-C 122 ; WX 444 ; N z ; B 27 0 418 450 ;
-C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ;
-C 124 ; WX 200 ; N bar ; B 67 -14 133 676 ;
-C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ;
-C 126 ; WX 541 ; N asciitilde ; B 40 186 502 320 ;
-C 161 ; WX 333 ; N exclamdown ; B 97 -218 204 469 ;
-C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ;
-C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ;
-C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ;
-C 165 ; WX 500 ; N yen ; B -53 0 512 662 ;
-C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ;
-C 167 ; WX 500 ; N section ; B 70 -148 426 676 ;
-C 168 ; WX 500 ; N currency ; B -22 58 522 602 ;
-C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ;
-C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ;
-C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ;
-C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ;
-C 174 ; WX 556 ; N fi ; B 31 0 521 683 ;
-C 175 ; WX 556 ; N fl ; B 32 0 521 683 ;
-C 177 ; WX 500 ; N endash ; B 0 201 500 250 ;
-C 178 ; WX 500 ; N dagger ; B 59 -149 443 676 ;
-C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ;
-C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ;
-C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ;
-C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ;
-C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ;
-C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ;
-C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ;
-C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ;
-C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ;
-C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ;
-C 191 ; WX 444 ; N questiondown ; B 30 -218 376 468 ;
-C 193 ; WX 333 ; N grave ; B 19 507 242 678 ;
-C 194 ; WX 333 ; N acute ; B 93 507 317 678 ;
-C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ;
-C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ;
-C 197 ; WX 333 ; N macron ; B 11 547 322 601 ;
-C 198 ; WX 333 ; N breve ; B 26 507 307 664 ;
-C 199 ; WX 333 ; N dotaccent ; B 118 523 217 622 ;
-C 200 ; WX 333 ; N dieresis ; B 18 523 316 622 ;
-C 202 ; WX 333 ; N ring ; B 67 512 266 711 ;
-C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ;
-C 206 ; WX 333 ; N ogonek ; B 64 -165 249 0 ;
-C 207 ; WX 333 ; N caron ; B 11 507 322 674 ;
-C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ;
-C 225 ; WX 889 ; N AE ; B 0 0 863 662 ;
-C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ;
-C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ;
-C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ;
-C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ;
-C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ;
-C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ;
-C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ;
-C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ;
-C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ;
-C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ;
-C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ;
-C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 834 ;
-C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ;
-C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ;
-C -1 ; WX 611 ; N Tcaron ; B 17 0 593 886 ;
-C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ;
-C -1 ; WX 667 ; N Rcaron ; B 17 0 659 886 ;
-C -1 ; WX 667 ; N Racute ; B 17 0 659 890 ;
-C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ;
-C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ;
-C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ;
-C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 890 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 890 ;
-C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ;
-C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ;
-C -1 ; WX 722 ; N Dcroat ; B 16 0 685 662 ;
-C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ;
-C -1 ; WX 722 ; N Uring ; B 14 -14 705 923 ;
-C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ;
-C -1 ; WX 444 ; N eogonek ; B 25 -165 424 460 ;
-C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 622 ;
-C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ;
-C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ;
-C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ;
-C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ;
-C -1 ; WX 444 ; N edieresis ; B 25 -10 424 622 ;
-C -1 ; WX 600 ; N dcaron ; B 27 -10 599 683 ;
-C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ;
-C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ;
-C -1 ; WX 444 ; N cacute ; B 25 -10 412 678 ;
-C -1 ; WX 444 ; N aogonek ; B 37 -165 444 460 ;
-C -1 ; WX 444 ; N aring ; B 37 -10 442 721 ;
-C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ;
-C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ;
-C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ;
-C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ;
-C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ;
-C -1 ; WX 444 ; N adieresis ; B 37 -10 442 622 ;
-C -1 ; WX 722 ; N Uogonek ; B 14 -165 705 662 ;
-C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ;
-C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ;
-C -1 ; WX 500 ; N udieresis ; B 9 -10 479 622 ;
-C -1 ; WX 278 ; N tcaron ; B 13 -10 300 676 ;
-C -1 ; WX 389 ; N scommaaccent ; B 51 -281 348 459 ;
-C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ;
-C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ;
-C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ;
-C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 834 ;
-C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ;
-C -1 ; WX 722 ; N Amacron ; B 15 0 706 813 ;
-C -1 ; WX 389 ; N sacute ; B 51 -10 365 678 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 17 -281 593 662 ;
-C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 834 ;
-C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ;
-C -1 ; WX 611 ; N Emacron ; B 12 0 597 813 ;
-C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ;
-C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ;
-C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 834 ;
-C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ;
-C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 886 ;
-C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ;
-C -1 ; WX 611 ; N Lcaron ; B 12 0 598 676 ;
-C -1 ; WX 611 ; N Lacute ; B 12 0 598 890 ;
-C -1 ; WX 333 ; N Idotaccent ; B 18 0 315 834 ;
-C -1 ; WX 333 ; N racute ; B 5 0 335 678 ;
-C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ;
-C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 470 678 ;
-C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ;
-C -1 ; WX 500 ; N Euro ; B -16 -14 477 674 ;
-C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ;
-C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ;
-C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ;
-C -1 ; WX 300 ; N threesuperior ; B 14 262 291 676 ;
-C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ;
-C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ;
-C -1 ; WX 333 ; N Imacron ; B 11 0 322 813 ;
-C -1 ; WX 333 ; N Iogonek ; B 18 -165 397 662 ;
-C -1 ; WX 333 ; N Idieresis ; B 18 0 316 834 ;
-C -1 ; WX 722 ; N Gbreve ; B 32 -14 709 876 ;
-C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ;
-C -1 ; WX 722 ; N Kcommaaccent ; B 34 -281 723 662 ;
-C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ;
-C -1 ; WX 556 ; N Scommaaccent ; B 42 -281 491 676 ;
-C -1 ; WX 611 ; N Eogonek ; B 12 -165 611 662 ;
-C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ;
-C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 834 ;
-C -1 ; WX 278 ; N iogonek ; B 16 -165 278 683 ;
-C -1 ; WX 500 ; N gcommaaccent ; B 28 -218 470 736 ;
-C -1 ; WX 500 ; N odieresis ; B 29 -10 470 622 ;
-C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ;
-C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ;
-C -1 ; WX 611 ; N Ecaron ; B 12 0 597 886 ;
-C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ;
-C -1 ; WX 389 ; N scedilla ; B 51 -215 348 459 ;
-C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ;
-C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ;
-C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ;
-C -1 ; WX 722 ; N Gcommaaccent ; B 32 -281 709 676 ;
-C -1 ; WX 667 ; N Rcommaaccent ; B 17 -281 659 662 ;
-C -1 ; WX 611 ; N Edieresis ; B 12 0 597 834 ;
-C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ;
-C -1 ; WX 500 ; N uogonek ; B 9 -165 500 450 ;
-C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ;
-C -1 ; WX 722 ; N Dcaron ; B 16 0 685 886 ;
-C -1 ; WX 348 ; N lcaron ; B 19 0 348 683 ;
-C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ;
-C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ;
-C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ;
-C -1 ; WX 400 ; N degree ; B 57 390 343 676 ;
-C -1 ; WX 722 ; N Aogonek ; B 15 -165 786 674 ;
-C -1 ; WX 564 ; N minus ; B 30 220 534 286 ;
-C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ;
-C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ;
-C -1 ; WX 722 ; N Aring ; B 15 0 706 915 ;
-C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ;
-C -1 ; WX 333 ; N rcommaaccent ; B 5 -281 335 460 ;
-C -1 ; WX 278 ; N lacute ; B 19 0 290 890 ;
-C -1 ; WX 500 ; N omacron ; B 29 -10 470 601 ;
-C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ;
-C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ;
-C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ;
-C -1 ; WX 500 ; N ncommaaccent ; B 16 -281 485 460 ;
-C -1 ; WX 278 ; N lcommaaccent ; B 19 -281 257 683 ;
-C -1 ; WX 564 ; N plusminus ; B 30 0 534 568 ;
-C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ;
-C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ;
-C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ;
-C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ;
-C -1 ; WX 722 ; N Abreve ; B 15 0 706 876 ;
-C -1 ; WX 500 ; N kcommaaccent ; B 7 -281 505 683 ;
-C -1 ; WX 722 ; N Omacron ; B 34 -14 688 813 ;
-C -1 ; WX 278 ; N imacron ; B -16 0 292 601 ;
-C -1 ; WX 444 ; N emacron ; B 25 -10 424 601 ;
-C -1 ; WX 444 ; N amacron ; B 37 -10 442 601 ;
-C -1 ; WX 278 ; N tcommaaccent ; B 13 -281 279 579 ;
-C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 622 ;
-C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 622 ;
-C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ;
-C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ;
-C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ;
-C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 479 678 ;
-C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ;
-C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ;
-C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ;
-C -1 ; WX 333 ; N commaaccent ; B 97 -281 236 -38 ;
-C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ;
-C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ;
-C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ;
-C -1 ; WX 278 ; N idieresis ; B 11 0 269 622 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 564 ; N notequal ; B 30 -3 534 509 ;
-C -1 ; WX 549 ; N radical ; B -2 -65 526 924 ;
-C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ;
-C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ;
-C -1 ; WX 564 ; N lessequal ; B 28 0 536 628 ;
-C -1 ; WX 564 ; N greaterequal ; B 28 0 536 628 ;
-C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B 12 -281 707 662 ;
-C -1 ; WX 500 ; N dcroat ; B 27 -10 500 683 ;
-C -1 ; WX 200 ; N brokenbar ; B 67 -14 133 676 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B 12 -281 598 662 ;
-C -1 ; WX 722 ; N Adieresis ; B 15 0 706 834 ;
-C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -51
-KPX A Ccedilla -57
-KPX A G -57
-KPX A O -60
-KPX A Odieresis -60
-KPX A Q -60
-KPX A T -54
-KPX A U -62
-KPX A Uacute -62
-KPX A Ucircumflex -62
-KPX A Udieresis -62
-KPX A Ugrave -62
-KPX A V -131
-KPX A W -113
-KPX A Y -81
-KPX A a -6
-KPX A b -20
-KPX A c -29
-KPX A ccedilla -29
-KPX A comma -3
-KPX A d -28
-KPX A e -27
-KPX A g -20
-KPX A guillemotleft -64
-KPX A guilsinglleft -74
-KPX A hyphen -23
-KPX A o -40
-KPX A period -10
-KPX A q -21
-KPX A quotedblright -91
-KPX A quoteright -116
-KPX A t -20
-KPX A u -28
-KPX A v -81
-KPX A w -73
-KPX A y -83
-KPX Aacute C -51
-KPX Aacute G -57
-KPX Aacute O -60
-KPX Aacute Q -60
-KPX Aacute T -54
-KPX Aacute U -62
-KPX Aacute V -131
-KPX Aacute W -113
-KPX Aacute Y -81
-KPX Aacute a -6
-KPX Aacute b -20
-KPX Aacute c -29
-KPX Aacute comma -3
-KPX Aacute d -28
-KPX Aacute e -27
-KPX Aacute g -20
-KPX Aacute guillemotleft -64
-KPX Aacute guilsinglleft -74
-KPX Aacute hyphen -23
-KPX Aacute o -40
-KPX Aacute period -10
-KPX Aacute q -21
-KPX Aacute quoteright -116
-KPX Aacute t -20
-KPX Aacute u -28
-KPX Aacute v -81
-KPX Aacute w -73
-KPX Aacute y -83
-KPX Acircumflex C -51
-KPX Acircumflex G -57
-KPX Acircumflex O -60
-KPX Acircumflex Q -60
-KPX Acircumflex T -54
-KPX Acircumflex U -62
-KPX Acircumflex V -131
-KPX Acircumflex W -113
-KPX Acircumflex Y -81
-KPX Acircumflex comma -3
-KPX Acircumflex period -10
-KPX Adieresis C -51
-KPX Adieresis G -57
-KPX Adieresis O -60
-KPX Adieresis Q -60
-KPX Adieresis T -54
-KPX Adieresis U -62
-KPX Adieresis V -131
-KPX Adieresis W -113
-KPX Adieresis Y -81
-KPX Adieresis a -6
-KPX Adieresis b -20
-KPX Adieresis c -29
-KPX Adieresis comma -3
-KPX Adieresis d -28
-KPX Adieresis g -20
-KPX Adieresis guillemotleft -64
-KPX Adieresis guilsinglleft -74
-KPX Adieresis hyphen -23
-KPX Adieresis o -40
-KPX Adieresis period -10
-KPX Adieresis q -21
-KPX Adieresis quotedblright -91
-KPX Adieresis quoteright -116
-KPX Adieresis t -20
-KPX Adieresis u -28
-KPX Adieresis v -81
-KPX Adieresis w -73
-KPX Adieresis y -83
-KPX Agrave C -51
-KPX Agrave G -57
-KPX Agrave O -60
-KPX Agrave Q -60
-KPX Agrave T -54
-KPX Agrave U -62
-KPX Agrave V -131
-KPX Agrave W -113
-KPX Agrave Y -81
-KPX Agrave comma -3
-KPX Agrave period -10
-KPX Aring C -51
-KPX Aring G -57
-KPX Aring O -60
-KPX Aring Q -60
-KPX Aring T -54
-KPX Aring U -62
-KPX Aring V -131
-KPX Aring W -113
-KPX Aring Y -81
-KPX Aring a -6
-KPX Aring b -20
-KPX Aring c -29
-KPX Aring comma -3
-KPX Aring d -28
-KPX Aring e -27
-KPX Aring g -20
-KPX Aring guillemotleft -64
-KPX Aring guilsinglleft -74
-KPX Aring hyphen -23
-KPX Aring o -40
-KPX Aring period -10
-KPX Aring q -21
-KPX Aring quotedblright -91
-KPX Aring quoteright -116
-KPX Aring t -20
-KPX Aring u -28
-KPX Aring v -81
-KPX Aring w -73
-KPX Aring y -83
-KPX Atilde C -51
-KPX Atilde G -57
-KPX Atilde O -60
-KPX Atilde Q -60
-KPX Atilde T -54
-KPX Atilde U -62
-KPX Atilde V -131
-KPX Atilde W -113
-KPX Atilde Y -81
-KPX Atilde comma -3
-KPX Atilde period -10
-KPX B A -51
-KPX B AE -44
-KPX B Aacute -51
-KPX B Acircumflex -51
-KPX B Adieresis -51
-KPX B Aring -51
-KPX B Atilde -51
-KPX B O -24
-KPX B OE -18
-KPX B Oacute -24
-KPX B Ocircumflex -24
-KPX B Odieresis -24
-KPX B Ograve -24
-KPX B Oslash -23
-KPX B V -65
-KPX B W -59
-KPX B Y -68
-KPX C A -23
-KPX C AE -15
-KPX C Aacute -23
-KPX C Adieresis -23
-KPX C Aring -23
-KPX C H -2
-KPX C K -10
-KPX C O -12
-KPX C Oacute -12
-KPX C Odieresis -12
-KPX Ccedilla A -27
-KPX D A -67
-KPX D Aacute -67
-KPX D Acircumflex -67
-KPX D Adieresis -67
-KPX D Agrave -67
-KPX D Aring -67
-KPX D Atilde -67
-KPX D J -41
-KPX D T -10
-KPX D V -71
-KPX D W -57
-KPX D X -64
-KPX D Y -74
-KPX F A -71
-KPX F Aacute -71
-KPX F Acircumflex -71
-KPX F Adieresis -71
-KPX F Agrave -71
-KPX F Aring -71
-KPX F Atilde -71
-KPX F J -13
-KPX F O -10
-KPX F Odieresis -10
-KPX F a -34
-KPX F aacute -34
-KPX F adieresis -10
-KPX F ae -36
-KPX F aring -34
-KPX F comma -51
-KPX F e -19
-KPX F eacute -19
-KPX F hyphen 3
-KPX F i -13
-KPX F j -20
-KPX F o -21
-KPX F oacute -21
-KPX F odieresis -21
-KPX F oe -21
-KPX F oslash -21
-KPX F period -58
-KPX F r -10
-KPX F u -11
-KPX G A -26
-KPX G AE -19
-KPX G Aacute -26
-KPX G Acircumflex -26
-KPX G Adieresis -26
-KPX G Agrave -26
-KPX G Aring -26
-KPX G Atilde -26
-KPX G T -21
-KPX G V -23
-KPX G W -18
-KPX G Y -26
-KPX J A -53
-KPX J AE -46
-KPX J Adieresis -53
-KPX J Aring -53
-KPX K C -43
-KPX K G -49
-KPX K O -51
-KPX K OE -44
-KPX K Oacute -51
-KPX K Odieresis -51
-KPX K S 1
-KPX K T 0
-KPX K a 2
-KPX K adieresis 2
-KPX K ae 0
-KPX K aring 2
-KPX K e -19
-KPX K hyphen -63
-KPX K o -31
-KPX K oacute -31
-KPX K odieresis -31
-KPX K u -19
-KPX K udieresis -19
-KPX K y -86
-KPX L A 0
-KPX L AE 6
-KPX L Aacute 0
-KPX L Adieresis 0
-KPX L Aring 0
-KPX L C 2
-KPX L Ccedilla 0
-KPX L G 0
-KPX L O -3
-KPX L Oacute -3
-KPX L Ocircumflex -3
-KPX L Odieresis -3
-KPX L Ograve -3
-KPX L Otilde -3
-KPX L S 5
-KPX L T -73
-KPX L U -26
-KPX L Udieresis -26
-KPX L V -115
-KPX L W -89
-KPX L Y -100
-KPX L hyphen 25
-KPX L quotedblright -100
-KPX L quoteright -125
-KPX L u -10
-KPX L udieresis -10
-KPX L y -56
-KPX N A -28
-KPX N AE -21
-KPX N Aacute -28
-KPX N Adieresis -28
-KPX N Aring -28
-KPX N C -16
-KPX N Ccedilla -16
-KPX N G -19
-KPX N O -20
-KPX N Oacute -20
-KPX N Odieresis -20
-KPX N a -27
-KPX N aacute -27
-KPX N adieresis -27
-KPX N ae -27
-KPX N aring -27
-KPX N comma -14
-KPX N e -17
-KPX N eacute -17
-KPX N o -21
-KPX N oacute -21
-KPX N odieresis -21
-KPX N oslash -20
-KPX N period -21
-KPX N u -25
-KPX N udieresis -25
-KPX O A -58
-KPX O AE -50
-KPX O Aacute -58
-KPX O Adieresis -58
-KPX O Aring -58
-KPX O T -9
-KPX O V -69
-KPX O W -54
-KPX O X -55
-KPX O Y -72
-KPX Oacute A -58
-KPX Oacute T -9
-KPX Oacute V -69
-KPX Oacute W -54
-KPX Oacute Y -72
-KPX Ocircumflex T -9
-KPX Ocircumflex V -69
-KPX Ocircumflex Y -72
-KPX Odieresis A -58
-KPX Odieresis T -9
-KPX Odieresis V -69
-KPX Odieresis W -54
-KPX Odieresis X -55
-KPX Odieresis Y -72
-KPX Ograve T -9
-KPX Ograve V -69
-KPX Ograve Y -72
-KPX Oslash A -58
-KPX Otilde T -9
-KPX Otilde V -69
-KPX Otilde Y -72
-KPX P A -90
-KPX P AE -91
-KPX P Aacute -90
-KPX P Adieresis -90
-KPX P Aring -90
-KPX P J -52
-KPX P a -17
-KPX P aacute -17
-KPX P adieresis -17
-KPX P ae -18
-KPX P aring -17
-KPX P comma -94
-KPX P e -23
-KPX P eacute -23
-KPX P hyphen -37
-KPX P o -25
-KPX P oacute -25
-KPX P odieresis -25
-KPX P oe -25
-KPX P oslash -25
-KPX P period -101
-KPX R C -41
-KPX R Ccedilla -41
-KPX R G -44
-KPX R O -45
-KPX R OE -39
-KPX R Oacute -45
-KPX R Odieresis -45
-KPX R T -34
-KPX R U -56
-KPX R Udieresis -55
-KPX R V -73
-KPX R W -67
-KPX R Y -76
-KPX R a -2
-KPX R aacute -2
-KPX R adieresis -2
-KPX R ae -5
-KPX R aring -2
-KPX R e -23
-KPX R eacute -23
-KPX R hyphen -52
-KPX R o -36
-KPX R oacute -36
-KPX R odieresis -36
-KPX R oe -31
-KPX R u -24
-KPX R uacute -24
-KPX R udieresis -24
-KPX R y -37
-KPX S A -37
-KPX S AE -30
-KPX S Aacute -37
-KPX S Adieresis -37
-KPX S Aring -37
-KPX S T -19
-KPX S V -27
-KPX S W -21
-KPX S Y -30
-KPX S t -20
-KPX T A -53
-KPX T AE -45
-KPX T Aacute -53
-KPX T Acircumflex -53
-KPX T Adieresis -53
-KPX T Agrave -53
-KPX T Aring -53
-KPX T Atilde -53
-KPX T C -8
-KPX T G -11
-KPX T J -18
-KPX T O -10
-KPX T OE -4
-KPX T Oacute -10
-KPX T Ocircumflex -10
-KPX T Odieresis -10
-KPX T Ograve -10
-KPX T Oslash -10
-KPX T Otilde -10
-KPX T S -10
-KPX T V 14
-KPX T W 20
-KPX T Y 11
-KPX T a -77
-KPX T ae -80
-KPX T c -87
-KPX T colon -87
-KPX T comma -74
-KPX T e -86
-KPX T g -91
-KPX T guillemotleft -114
-KPX T guilsinglleft -125
-KPX T hyphen -73
-KPX T i -18
-KPX T j -25
-KPX T o -90
-KPX T oslash -89
-KPX T period -82
-KPX T r -50
-KPX T s -73
-KPX T semicolon -87
-KPX T u -93
-KPX T v -105
-KPX T w -106
-KPX T y -102
-KPX U A -65
-KPX U AE -58
-KPX U Aacute -65
-KPX U Acircumflex -65
-KPX U Adieresis -65
-KPX U Aring -65
-KPX U Atilde -65
-KPX U comma -31
-KPX U m -33
-KPX U n -31
-KPX U p -28
-KPX U period -37
-KPX U r -27
-KPX Uacute A -65
-KPX Uacute comma -31
-KPX Uacute m -33
-KPX Uacute n -31
-KPX Uacute p -28
-KPX Uacute period -37
-KPX Uacute r -27
-KPX Ucircumflex A -65
-KPX Udieresis A -65
-KPX Udieresis b 21
-KPX Udieresis comma -31
-KPX Udieresis m -33
-KPX Udieresis n -31
-KPX Udieresis p -28
-KPX Udieresis period -37
-KPX Udieresis r -27
-KPX Ugrave A -65
-KPX V A -124
-KPX V AE -104
-KPX V Aacute -124
-KPX V Acircumflex -124
-KPX V Adieresis -124
-KPX V Agrave -124
-KPX V Aring -124
-KPX V Atilde -124
-KPX V C -63
-KPX V G -66
-KPX V O -67
-KPX V Oacute -67
-KPX V Ocircumflex -67
-KPX V Odieresis -67
-KPX V Ograve -67
-KPX V Oslash -65
-KPX V Otilde -67
-KPX V S -47
-KPX V T 10
-KPX V a -88
-KPX V ae -89
-KPX V colon -90
-KPX V comma -105
-KPX V e -85
-KPX V g -101
-KPX V guillemotleft -109
-KPX V guilsinglleft -119
-KPX V hyphen -69
-KPX V i -20
-KPX V o -89
-KPX V oslash -88
-KPX V period -112
-KPX V r -56
-KPX V semicolon -89
-KPX V u -51
-KPX V y -54
-KPX W A -113
-KPX W AE -98
-KPX W Aacute -113
-KPX W Acircumflex -113
-KPX W Adieresis -113
-KPX W Agrave -113
-KPX W Aring -113
-KPX W Atilde -113
-KPX W C -53
-KPX W G -56
-KPX W O -56
-KPX W Oacute -56
-KPX W Ocircumflex -56
-KPX W Odieresis -56
-KPX W Ograve -56
-KPX W Oslash -55
-KPX W Otilde -56
-KPX W S -41
-KPX W T 17
-KPX W a -80
-KPX W ae -81
-KPX W colon -81
-KPX W comma -89
-KPX W e -72
-KPX W g -91
-KPX W guillemotleft -97
-KPX W guilsinglleft -107
-KPX W hyphen -56
-KPX W i -13
-KPX W o -76
-KPX W oslash -75
-KPX W period -96
-KPX W r -47
-KPX W semicolon -81
-KPX W u -43
-KPX W y -45
-KPX X C -52
-KPX X O -61
-KPX X Odieresis -61
-KPX X Q -61
-KPX X a -7
-KPX X e -28
-KPX X hyphen -54
-KPX X o -41
-KPX X u -29
-KPX X y -96
-KPX Y A -74
-KPX Y AE -67
-KPX Y Aacute -74
-KPX Y Acircumflex -74
-KPX Y Adieresis -74
-KPX Y Agrave -74
-KPX Y Aring -74
-KPX Y Atilde -74
-KPX Y C -68
-KPX Y G -71
-KPX Y O -69
-KPX Y Oacute -69
-KPX Y Ocircumflex -69
-KPX Y Odieresis -69
-KPX Y Ograve -69
-KPX Y Oslash -69
-KPX Y Otilde -69
-KPX Y S -44
-KPX Y T 13
-KPX Y a -99
-KPX Y ae -102
-KPX Y colon -109
-KPX Y comma -96
-KPX Y e -103
-KPX Y g -113
-KPX Y guillemotleft -135
-KPX Y guilsinglleft -145
-KPX Y hyphen -98
-KPX Y i -17
-KPX Y o -107
-KPX Y oslash -106
-KPX Y p -88
-KPX Y period -103
-KPX Y semicolon -108
-KPX Y u -78
-KPX Y v -86
-KPX Z v -48
-KPX Z y -50
-KPX a j -26
-KPX a quoteright -40
-KPX a v -30
-KPX a w -31
-KPX a y -32
-KPX aacute v -30
-KPX aacute w -31
-KPX aacute y -32
-KPX adieresis v -30
-KPX adieresis w -31
-KPX adieresis y -32
-KPX ae v -27
-KPX ae w -28
-KPX ae y -30
-KPX agrave v -30
-KPX agrave w -31
-KPX agrave y -32
-KPX aring v -30
-KPX aring w -31
-KPX aring y -32
-KPX b v -29
-KPX b w -30
-KPX b y -32
-KPX c h -15
-KPX c k -19
-KPX comma one -52
-KPX comma quotedblright -29
-KPX comma quoteright -53
-KPX e quoteright -30
-KPX e t -10
-KPX e v -27
-KPX e w -28
-KPX e x -35
-KPX e y -30
-KPX eacute v -27
-KPX eacute w -28
-KPX eacute y -30
-KPX ecircumflex v -27
-KPX ecircumflex w -28
-KPX ecircumflex y -30
-KPX eight four 0
-KPX eight one -64
-KPX eight seven -15
-KPX f a -25
-KPX f aacute -25
-KPX f adieresis 12
-KPX f ae -25
-KPX f aring -6
-KPX f e -34
-KPX f eacute -34
-KPX f f 6
-KPX f i 15
-KPX f j 8
-KPX f l 44
-KPX f o -38
-KPX f oacute -38
-KPX f odieresis -1
-KPX f oe -36
-KPX f oslash -37
-KPX f quoteright 17
-KPX f s -21
-KPX f t 10
-KPX five four -8
-KPX five one -70
-KPX five seven -36
-KPX four four 14
-KPX four one -75
-KPX four seven -42
-KPX g a -17
-KPX g adieresis -17
-KPX g ae -18
-KPX g aring -17
-KPX g e -25
-KPX g eacute -25
-KPX g l -7
-KPX g oacute -26
-KPX g odieresis -26
-KPX g r 11
-KPX guillemotright A -62
-KPX guillemotright AE -61
-KPX guillemotright Aacute -62
-KPX guillemotright Adieresis -62
-KPX guillemotright Aring -62
-KPX guillemotright T -114
-KPX guillemotright V -117
-KPX guillemotright W -95
-KPX guillemotright Y -138
-KPX guilsinglright A -72
-KPX guilsinglright AE -71
-KPX guilsinglright Aacute -72
-KPX guilsinglright Adieresis -72
-KPX guilsinglright Aring -72
-KPX guilsinglright T -124
-KPX guilsinglright V -128
-KPX guilsinglright W -105
-KPX guilsinglright Y -149
-KPX h quoteright -38
-KPX h y -30
-KPX hyphen A -26
-KPX hyphen AE -25
-KPX hyphen Aacute -26
-KPX hyphen Adieresis -26
-KPX hyphen Aring -26
-KPX hyphen T -77
-KPX hyphen V -82
-KPX hyphen W -59
-KPX hyphen Y -108
-KPX i T -28
-KPX i j -36
-KPX k a 1
-KPX k aacute 1
-KPX k adieresis 1
-KPX k ae -1
-KPX k aring 1
-KPX k comma 4
-KPX k e -19
-KPX k eacute -19
-KPX k g -12
-KPX k hyphen -65
-KPX k o -32
-KPX k oacute -32
-KPX k odieresis -32
-KPX k period -2
-KPX k s 5
-KPX k u 14
-KPX k udieresis 14
-KPX l v -28
-KPX l y -25
-KPX m p -9
-KPX m v -30
-KPX m w -31
-KPX m y -31
-KPX n T -55
-KPX n p -13
-KPX n quoteright -39
-KPX n v -30
-KPX n w -31
-KPX n y -31
-KPX nine four -7
-KPX nine one -63
-KPX nine seven -6
-KPX o T -91
-KPX o quoteright -34
-KPX o t -9
-KPX o v -36
-KPX o w -36
-KPX o x -36
-KPX o y -41
-KPX oacute v -36
-KPX oacute w -36
-KPX oacute y -41
-KPX ocircumflex t -9
-KPX odieresis t -9
-KPX odieresis v -36
-KPX odieresis w -36
-KPX odieresis x -36
-KPX odieresis y -41
-KPX ograve v -36
-KPX ograve w -36
-KPX ograve y -41
-KPX one comma -48
-KPX one eight -68
-KPX one five -37
-KPX one four -72
-KPX one nine -61
-KPX one one -78
-KPX one period -55
-KPX one seven -78
-KPX one six -66
-KPX one three -41
-KPX one two -34
-KPX one zero -54
-KPX p t -6
-KPX p y -28
-KPX period one -61
-KPX period quotedblright -33
-KPX period quoteright -58
-KPX q c -7
-KPX q u -12
-KPX quotedblbase A 12
-KPX quotedblbase AE 19
-KPX quotedblbase T -60
-KPX quotedblbase V -104
-KPX quotedblbase W -76
-KPX quotedblbase Y -87
-KPX quotedblleft A -86
-KPX quotedblleft AE -91
-KPX quotedblleft Aacute -86
-KPX quotedblleft Adieresis -86
-KPX quotedblleft Aring -86
-KPX quotedblleft T 14
-KPX quotedblleft V 1
-KPX quotedblleft W 7
-KPX quotedblleft Y -1
-KPX quotedblright A -94
-KPX quotedblright AE -99
-KPX quotedblright Aacute -94
-KPX quotedblright Adieresis -94
-KPX quotedblright Aring -94
-KPX quotedblright T 11
-KPX quotedblright V 0
-KPX quotedblright W 6
-KPX quotedblright Y -2
-KPX quoteleft A -110
-KPX quoteleft AE -115
-KPX quoteleft Aacute -110
-KPX quoteleft Adieresis -110
-KPX quoteleft Aring -110
-KPX quoteleft T -9
-KPX quoteleft V -23
-KPX quoteleft W -17
-KPX quoteleft Y -26
-KPX quoteright A -130
-KPX quoteright AE -135
-KPX quoteright Aacute -130
-KPX quoteright Adieresis -130
-KPX quoteright Aring -130
-KPX quoteright comma -71
-KPX quoteright d -56
-KPX quoteright o -54
-KPX quoteright period -78
-KPX quoteright r -44
-KPX quoteright s -47
-KPX quoteright t -43
-KPX quoteright v -47
-KPX quoteright w -47
-KPX quoteright y -45
-KPX r a -1
-KPX r aacute -1
-KPX r acircumflex -1
-KPX r adieresis -1
-KPX r ae -3
-KPX r agrave -1
-KPX r aring -1
-KPX r c -8
-KPX r ccedilla -8
-KPX r colon -7
-KPX r comma -41
-KPX r d -10
-KPX r e -6
-KPX r eacute -6
-KPX r ecircumflex -6
-KPX r egrave -6
-KPX r f 19
-KPX r g -15
-KPX r h -6
-KPX r hyphen -46
-KPX r i 20
-KPX r j 14
-KPX r k -10
-KPX r l -18
-KPX r m 20
-KPX r n 22
-KPX r o -8
-KPX r oacute -8
-KPX r ocircumflex -8
-KPX r odieresis -8
-KPX r oe -7
-KPX r ograve -8
-KPX r oslash -7
-KPX r p 25
-KPX r period -48
-KPX r q -10
-KPX r quoteright -19
-KPX r r 26
-KPX r s 0
-KPX r semicolon -7
-KPX r t 23
-KPX r u 19
-KPX r v 20
-KPX r w 19
-KPX r x 17
-KPX r y 22
-KPX r z 2
-KPX s quoteright -38
-KPX s t -15
-KPX seven colon -68
-KPX seven comma -72
-KPX seven eight -40
-KPX seven five -59
-KPX seven four -63
-KPX seven one -56
-KPX seven period -79
-KPX seven seven -20
-KPX seven six -46
-KPX seven three -35
-KPX seven two -31
-KPX six four 12
-KPX six one -74
-KPX six seven -29
-KPX t S 2
-KPX t a 10
-KPX t aacute 10
-KPX t adieresis 10
-KPX t ae 9
-KPX t aring 10
-KPX t colon -8
-KPX t e 0
-KPX t eacute 0
-KPX t h 10
-KPX t o -8
-KPX t oacute -8
-KPX t odieresis -8
-KPX t quoteright -29
-KPX t semicolon -8
-KPX three four -6
-KPX three one -75
-KPX three seven -28
-KPX two four 0
-KPX two one -60
-KPX two seven -16
-KPX u quoteright -36
-KPX v a -24
-KPX v aacute -24
-KPX v acircumflex -24
-KPX v adieresis -24
-KPX v ae -24
-KPX v agrave -24
-KPX v aring -24
-KPX v atilde -24
-KPX v c -37
-KPX v colon -20
-KPX v comma -69
-KPX v e -36
-KPX v eacute -36
-KPX v ecircumflex -36
-KPX v egrave -36
-KPX v g -41
-KPX v hyphen -28
-KPX v l -31
-KPX v o -38
-KPX v oacute -38
-KPX v odieresis -38
-KPX v ograve -38
-KPX v oslash -38
-KPX v period -76
-KPX v s -21
-KPX v semicolon -20
-KPX w a -27
-KPX w aacute -27
-KPX w acircumflex -27
-KPX w adieresis -27
-KPX w ae -27
-KPX w agrave -27
-KPX w aring -27
-KPX w atilde -27
-KPX w c -33
-KPX w colon -23
-KPX w comma -64
-KPX w e -31
-KPX w eacute -31
-KPX w ecircumflex -31
-KPX w egrave -31
-KPX w g -43
-KPX w hyphen -24
-KPX w l -33
-KPX w o -35
-KPX w oacute -35
-KPX w odieresis -35
-KPX w ograve -35
-KPX w oslash -34
-KPX w period -71
-KPX w s -23
-KPX w semicolon -23
-KPX x a -11
-KPX x c -34
-KPX x e -32
-KPX x eacute -32
-KPX x o -45
-KPX x q -26
-KPX y a -32
-KPX y aacute -32
-KPX y acircumflex -32
-KPX y adieresis -32
-KPX y ae -31
-KPX y agrave -32
-KPX y aring -32
-KPX y atilde -32
-KPX y c -37
-KPX y colon -23
-KPX y comma -66
-KPX y e -35
-KPX y eacute -35
-KPX y ecircumflex -35
-KPX y egrave -35
-KPX y g -48
-KPX y hyphen -27
-KPX y l -32
-KPX y o -39
-KPX y oacute -39
-KPX y odieresis -39
-KPX y ograve -39
-KPX y oslash -38
-KPX y period -73
-KPX y s -26
-KPX y semicolon -23
-KPX zero four 12
-KPX zero one -55
-KPX zero seven -5
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n021003l.pfb b/Master/xemtex/gsfonts/n021003l.pfb
deleted file mode 100644
index 68f0d5e134c..00000000000
--- a/Master/xemtex/gsfonts/n021003l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021003l.pfm b/Master/xemtex/gsfonts/n021003l.pfm
deleted file mode 100644
index c5f29ee5fb1..00000000000
--- a/Master/xemtex/gsfonts/n021003l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021004l.afm b/Master/xemtex/gsfonts/n021004l.afm
deleted file mode 100644
index 9a1037594bb..00000000000
--- a/Master/xemtex/gsfonts/n021004l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusRomNo9L-Medi
-FullName Nimbus Roman No9 L Medium
-FamilyName Nimbus Roman No9 L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -168 -341 1000 960
-CapHeight 676
-XHeight 461
-Descender -205
-Ascender 676
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ;
-C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ;
-C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ;
-C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ;
-C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ;
-C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ;
-C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ;
-C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ;
-C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ;
-C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ;
-C 43 ; WX 570 ; N plus ; B 33 0 537 506 ;
-C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ;
-C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ;
-C 46 ; WX 250 ; N period ; B 41 -13 210 156 ;
-C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ;
-C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ;
-C 49 ; WX 500 ; N one ; B 65 0 442 688 ;
-C 50 ; WX 500 ; N two ; B 17 0 478 688 ;
-C 51 ; WX 500 ; N three ; B 16 -14 468 688 ;
-C 52 ; WX 500 ; N four ; B 19 0 475 688 ;
-C 53 ; WX 500 ; N five ; B 22 -8 470 676 ;
-C 54 ; WX 500 ; N six ; B 28 -13 475 688 ;
-C 55 ; WX 500 ; N seven ; B 17 0 477 676 ;
-C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ;
-C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ;
-C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ;
-C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ;
-C 60 ; WX 570 ; N less ; B 31 -12 539 518 ;
-C 61 ; WX 570 ; N equal ; B 33 107 537 399 ;
-C 62 ; WX 570 ; N greater ; B 31 -12 539 518 ;
-C 63 ; WX 500 ; N question ; B 57 -13 445 689 ;
-C 64 ; WX 930 ; N at ; B 108 -19 822 691 ;
-C 65 ; WX 722 ; N A ; B 9 0 689 690 ;
-C 66 ; WX 667 ; N B ; B 16 0 619 676 ;
-C 67 ; WX 722 ; N C ; B 49 -19 687 691 ;
-C 68 ; WX 722 ; N D ; B 14 0 690 676 ;
-C 69 ; WX 667 ; N E ; B 16 0 641 676 ;
-C 70 ; WX 611 ; N F ; B 16 0 583 676 ;
-C 71 ; WX 778 ; N G ; B 37 -19 755 691 ;
-C 72 ; WX 778 ; N H ; B 21 0 759 676 ;
-C 73 ; WX 389 ; N I ; B 20 0 370 676 ;
-C 74 ; WX 500 ; N J ; B 3 -96 479 676 ;
-C 75 ; WX 778 ; N K ; B 30 0 769 676 ;
-C 76 ; WX 667 ; N L ; B 19 0 638 676 ;
-C 77 ; WX 944 ; N M ; B 14 0 921 676 ;
-C 78 ; WX 722 ; N N ; B 16 -18 701 676 ;
-C 79 ; WX 778 ; N O ; B 35 -19 743 691 ;
-C 80 ; WX 611 ; N P ; B 16 0 600 676 ;
-C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ;
-C 82 ; WX 722 ; N R ; B 26 0 715 676 ;
-C 83 ; WX 556 ; N S ; B 35 -19 513 692 ;
-C 84 ; WX 667 ; N T ; B 31 0 636 676 ;
-C 85 ; WX 722 ; N U ; B 16 -19 701 676 ;
-C 86 ; WX 722 ; N V ; B 16 -18 701 676 ;
-C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ;
-C 88 ; WX 722 ; N X ; B 16 0 699 676 ;
-C 89 ; WX 722 ; N Y ; B 15 0 699 676 ;
-C 90 ; WX 667 ; N Z ; B 28 0 634 676 ;
-C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ;
-C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ;
-C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ;
-C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ;
-C 97 ; WX 500 ; N a ; B 25 -14 488 473 ;
-C 98 ; WX 556 ; N b ; B 17 -14 521 676 ;
-C 99 ; WX 444 ; N c ; B 25 -14 430 473 ;
-C 100 ; WX 556 ; N d ; B 25 -14 534 676 ;
-C 101 ; WX 444 ; N e ; B 25 -14 426 473 ;
-C 102 ; WX 333 ; N f ; B 14 0 389 691 ;
-C 103 ; WX 500 ; N g ; B 28 -206 483 473 ;
-C 104 ; WX 556 ; N h ; B 16 0 534 676 ;
-C 105 ; WX 278 ; N i ; B 16 0 255 691 ;
-C 106 ; WX 333 ; N j ; B -57 -203 263 691 ;
-C 107 ; WX 556 ; N k ; B 22 0 543 676 ;
-C 108 ; WX 278 ; N l ; B 16 0 255 676 ;
-C 109 ; WX 833 ; N m ; B 16 0 814 473 ;
-C 110 ; WX 556 ; N n ; B 21 0 539 473 ;
-C 111 ; WX 500 ; N o ; B 25 -14 476 473 ;
-C 112 ; WX 556 ; N p ; B 19 -205 524 473 ;
-C 113 ; WX 556 ; N q ; B 34 -205 536 473 ;
-C 114 ; WX 444 ; N r ; B 29 0 434 473 ;
-C 115 ; WX 389 ; N s ; B 25 -14 361 473 ;
-C 116 ; WX 333 ; N t ; B 20 -12 332 630 ;
-C 117 ; WX 556 ; N u ; B 16 -14 537 461 ;
-C 118 ; WX 500 ; N v ; B 21 -14 485 461 ;
-C 119 ; WX 722 ; N w ; B 23 -14 707 461 ;
-C 120 ; WX 500 ; N x ; B 12 0 484 461 ;
-C 121 ; WX 500 ; N y ; B 16 -205 480 461 ;
-C 122 ; WX 444 ; N z ; B 21 0 420 461 ;
-C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ;
-C 124 ; WX 220 ; N bar ; B 66 -19 154 691 ;
-C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ;
-C 126 ; WX 520 ; N asciitilde ; B 29 175 491 331 ;
-C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ;
-C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ;
-C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ;
-C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ;
-C 165 ; WX 500 ; N yen ; B -64 0 547 676 ;
-C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ;
-C 167 ; WX 500 ; N section ; B 57 -132 443 691 ;
-C 168 ; WX 500 ; N currency ; B -26 61 526 613 ;
-C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ;
-C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ;
-C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ;
-C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ;
-C 174 ; WX 556 ; N fi ; B 14 0 536 691 ;
-C 175 ; WX 556 ; N fl ; B 14 0 536 691 ;
-C 177 ; WX 500 ; N endash ; B 0 181 500 271 ;
-C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ;
-C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ;
-C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ;
-C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ;
-C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ;
-C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ;
-C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ;
-C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ;
-C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ;
-C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ;
-C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ;
-C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ;
-C 193 ; WX 333 ; N grave ; B 8 528 246 713 ;
-C 194 ; WX 333 ; N acute ; B 86 528 324 713 ;
-C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ;
-C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ;
-C 197 ; WX 333 ; N macron ; B 1 565 331 637 ;
-C 198 ; WX 333 ; N breve ; B 15 528 318 691 ;
-C 199 ; WX 333 ; N dotaccent ; B 103 537 232 666 ;
-C 200 ; WX 333 ; N dieresis ; B -2 537 337 666 ;
-C 202 ; WX 333 ; N ring ; B 60 537 273 750 ;
-C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ;
-C 206 ; WX 333 ; N ogonek ; B 90 -173 319 44 ;
-C 207 ; WX 333 ; N caron ; B -2 528 335 704 ;
-C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ;
-C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ;
-C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ;
-C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ;
-C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ;
-C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ;
-C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ;
-C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ;
-C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ;
-C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ;
-C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ;
-C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ;
-C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ;
-C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 876 ;
-C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ;
-C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ;
-C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ;
-C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ;
-C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ;
-C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ;
-C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ;
-C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ;
-C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ;
-C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ;
-C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ;
-C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ;
-C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ;
-C -1 ; WX 722 ; N Uring ; B 16 -19 701 960 ;
-C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ;
-C -1 ; WX 444 ; N eogonek ; B 25 -173 444 473 ;
-C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 666 ;
-C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ;
-C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ;
-C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ;
-C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ;
-C -1 ; WX 444 ; N edieresis ; B 25 -14 426 666 ;
-C -1 ; WX 665 ; N dcaron ; B 25 -14 665 691 ;
-C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ;
-C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ;
-C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ;
-C -1 ; WX 500 ; N aogonek ; B 25 -173 500 473 ;
-C -1 ; WX 500 ; N aring ; B 25 -14 488 750 ;
-C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ;
-C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ;
-C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ;
-C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ;
-C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ;
-C -1 ; WX 500 ; N adieresis ; B 25 -14 488 666 ;
-C -1 ; WX 722 ; N Uogonek ; B 16 -173 701 676 ;
-C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ;
-C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ;
-C -1 ; WX 556 ; N udieresis ; B 16 -14 537 666 ;
-C -1 ; WX 400 ; N tcaron ; B 20 -12 400 691 ;
-C -1 ; WX 389 ; N scommaaccent ; B 25 -341 361 473 ;
-C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ;
-C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ;
-C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ;
-C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 876 ;
-C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ;
-C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ;
-C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ;
-C -1 ; WX 667 ; N Tcommaaccent ; B 31 -341 636 676 ;
-C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 876 ;
-C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ;
-C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ;
-C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ;
-C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ;
-C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 876 ;
-C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ;
-C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ;
-C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ;
-C -1 ; WX 667 ; N Lcaron ; B 19 0 638 691 ;
-C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ;
-C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 876 ;
-C -1 ; WX 444 ; N racute ; B 29 0 434 713 ;
-C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ;
-C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 509 713 ;
-C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ;
-C -1 ; WX 500 ; N Euro ; B -36 -24 478 671 ;
-C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ;
-C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ;
-C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ;
-C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ;
-C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ;
-C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ;
-C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ;
-C -1 ; WX 389 ; N Iogonek ; B 20 -173 505 676 ;
-C -1 ; WX 389 ; N Idieresis ; B 20 0 370 876 ;
-C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ;
-C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ;
-C -1 ; WX 778 ; N Kcommaaccent ; B 30 -341 769 676 ;
-C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ;
-C -1 ; WX 556 ; N Scommaaccent ; B 35 -341 513 692 ;
-C -1 ; WX 667 ; N Eogonek ; B 16 -173 737 676 ;
-C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ;
-C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 876 ;
-C -1 ; WX 278 ; N iogonek ; B 16 -173 388 691 ;
-C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 811 ;
-C -1 ; WX 500 ; N odieresis ; B 25 -14 476 666 ;
-C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ;
-C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ;
-C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ;
-C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ;
-C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ;
-C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ;
-C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ;
-C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 37 -341 755 691 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 26 -341 715 676 ;
-C -1 ; WX 667 ; N Edieresis ; B 16 0 641 876 ;
-C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ;
-C -1 ; WX 556 ; N uogonek ; B 16 -173 556 461 ;
-C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ;
-C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ;
-C -1 ; WX 396 ; N lcaron ; B 16 0 396 691 ;
-C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ;
-C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ;
-C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ;
-C -1 ; WX 400 ; N degree ; B 57 402 343 688 ;
-C -1 ; WX 722 ; N Aogonek ; B 9 -173 822 690 ;
-C -1 ; WX 570 ; N minus ; B 33 209 537 297 ;
-C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ;
-C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ;
-C -1 ; WX 722 ; N Aring ; B 9 0 689 948 ;
-C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ;
-C -1 ; WX 444 ; N rcommaaccent ; B 29 -341 434 473 ;
-C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ;
-C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ;
-C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ;
-C -1 ; WX 278 ; N icircumflex ; B -36 0 301 704 ;
-C -1 ; WX 278 ; N igrave ; B -26 0 255 713 ;
-C -1 ; WX 556 ; N ncommaaccent ; B 21 -341 539 473 ;
-C -1 ; WX 278 ; N lcommaaccent ; B 16 -341 255 676 ;
-C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ;
-C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ;
-C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ;
-C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ;
-C -1 ; WX 278 ; N iacute ; B 16 0 290 713 ;
-C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ;
-C -1 ; WX 556 ; N kcommaaccent ; B 22 -341 543 676 ;
-C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ;
-C -1 ; WX 278 ; N imacron ; B -27 0 303 637 ;
-C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ;
-C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ;
-C -1 ; WX 333 ; N tcommaaccent ; B 20 -341 332 630 ;
-C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 666 ;
-C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 666 ;
-C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ;
-C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ;
-C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ;
-C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 537 713 ;
-C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ;
-C -1 ; WX 556 ; N uring ; B 16 -14 537 750 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ;
-C -1 ; WX 333 ; N commaaccent ; B 84 -341 249 -40 ;
-C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ;
-C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ;
-C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ;
-C -1 ; WX 278 ; N idieresis ; B -36 0 303 666 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 570 ; N notequal ; B 33 -13 537 519 ;
-C -1 ; WX 549 ; N radical ; B -17 -35 535 916 ;
-C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ;
-C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ;
-C -1 ; WX 570 ; N lessequal ; B 31 0 539 642 ;
-C -1 ; WX 570 ; N greaterequal ; B 31 0 539 642 ;
-C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 16 -20 472 743 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B 16 -341 701 676 ;
-C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ;
-C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ;
-C -1 ; WX 667 ; N Lcommaaccent ; B 19 -341 638 676 ;
-C -1 ; WX 722 ; N Adieresis ; B 9 0 689 876 ;
-C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -73
-KPX A Ccedilla -77
-KPX A G -68
-KPX A O -68
-KPX A Odieresis -68
-KPX A Q -68
-KPX A T -59
-KPX A U -66
-KPX A Uacute -66
-KPX A Ucircumflex -66
-KPX A Udieresis -66
-KPX A Ugrave -66
-KPX A V -130
-KPX A W -116
-KPX A Y -74
-KPX A a -5
-KPX A b -22
-KPX A c -35
-KPX A ccedilla -43
-KPX A comma 1
-KPX A d -28
-KPX A e -32
-KPX A g -7
-KPX A guillemotleft -53
-KPX A guilsinglleft -67
-KPX A hyphen -30
-KPX A o -37
-KPX A period 0
-KPX A q -38
-KPX A quotedblright -76
-KPX A quoteright -108
-KPX A t -27
-KPX A u -30
-KPX A v -84
-KPX A w -79
-KPX A y -83
-KPX Aacute C -73
-KPX Aacute G -68
-KPX Aacute O -68
-KPX Aacute Q -68
-KPX Aacute T -59
-KPX Aacute U -66
-KPX Aacute V -130
-KPX Aacute W -116
-KPX Aacute Y -74
-KPX Aacute a -5
-KPX Aacute b -22
-KPX Aacute c -35
-KPX Aacute comma 1
-KPX Aacute d -28
-KPX Aacute e -32
-KPX Aacute g -7
-KPX Aacute guillemotleft -53
-KPX Aacute guilsinglleft -67
-KPX Aacute hyphen -30
-KPX Aacute o -37
-KPX Aacute period 0
-KPX Aacute q -38
-KPX Aacute quoteright -108
-KPX Aacute t -27
-KPX Aacute u -30
-KPX Aacute v -84
-KPX Aacute w -79
-KPX Aacute y -83
-KPX Acircumflex C -73
-KPX Acircumflex G -68
-KPX Acircumflex O -68
-KPX Acircumflex Q -68
-KPX Acircumflex T -59
-KPX Acircumflex U -66
-KPX Acircumflex V -130
-KPX Acircumflex W -116
-KPX Acircumflex Y -74
-KPX Acircumflex comma 1
-KPX Acircumflex period 0
-KPX Adieresis C -73
-KPX Adieresis G -68
-KPX Adieresis O -68
-KPX Adieresis Q -68
-KPX Adieresis T -59
-KPX Adieresis U -66
-KPX Adieresis V -130
-KPX Adieresis W -116
-KPX Adieresis Y -74
-KPX Adieresis a -5
-KPX Adieresis b -22
-KPX Adieresis c -35
-KPX Adieresis comma 1
-KPX Adieresis d -28
-KPX Adieresis g -7
-KPX Adieresis guillemotleft -53
-KPX Adieresis guilsinglleft -67
-KPX Adieresis hyphen -30
-KPX Adieresis o -37
-KPX Adieresis period 0
-KPX Adieresis q -38
-KPX Adieresis quotedblright -76
-KPX Adieresis quoteright -108
-KPX Adieresis t -27
-KPX Adieresis u -30
-KPX Adieresis v -84
-KPX Adieresis w -79
-KPX Adieresis y -83
-KPX Agrave C -73
-KPX Agrave G -68
-KPX Agrave O -68
-KPX Agrave Q -68
-KPX Agrave T -59
-KPX Agrave U -66
-KPX Agrave V -130
-KPX Agrave W -116
-KPX Agrave Y -74
-KPX Agrave comma 1
-KPX Agrave period 0
-KPX Aring C -73
-KPX Aring G -68
-KPX Aring O -68
-KPX Aring Q -68
-KPX Aring T -59
-KPX Aring U -66
-KPX Aring V -130
-KPX Aring W -116
-KPX Aring Y -74
-KPX Aring a -5
-KPX Aring b -22
-KPX Aring c -35
-KPX Aring comma 1
-KPX Aring d -28
-KPX Aring e -32
-KPX Aring g -7
-KPX Aring guillemotleft -53
-KPX Aring guilsinglleft -67
-KPX Aring hyphen -30
-KPX Aring o -37
-KPX Aring period 0
-KPX Aring q -38
-KPX Aring quotedblright -76
-KPX Aring quoteright -108
-KPX Aring t -27
-KPX Aring u -30
-KPX Aring v -84
-KPX Aring w -79
-KPX Aring y -83
-KPX Atilde C -73
-KPX Atilde G -68
-KPX Atilde O -68
-KPX Atilde Q -68
-KPX Atilde T -59
-KPX Atilde U -66
-KPX Atilde V -130
-KPX Atilde W -116
-KPX Atilde Y -74
-KPX Atilde comma 1
-KPX Atilde period 0
-KPX B A -34
-KPX B AE -32
-KPX B Aacute -34
-KPX B Acircumflex -34
-KPX B Adieresis -34
-KPX B Aring -34
-KPX B Atilde -34
-KPX B O -12
-KPX B OE -4
-KPX B Oacute -12
-KPX B Ocircumflex -12
-KPX B Odieresis -12
-KPX B Ograve -12
-KPX B Oslash -11
-KPX B V -45
-KPX B W -46
-KPX B Y -44
-KPX C A -25
-KPX C AE -22
-KPX C Aacute -25
-KPX C Adieresis -25
-KPX C Aring -25
-KPX C H -2
-KPX C K -6
-KPX C O -14
-KPX C Oacute -14
-KPX C Odieresis -14
-KPX Ccedilla A -33
-KPX D A -55
-KPX D Aacute -55
-KPX D Acircumflex -55
-KPX D Adieresis -55
-KPX D Agrave -55
-KPX D Aring -55
-KPX D Atilde -55
-KPX D J -40
-KPX D T -7
-KPX D V -60
-KPX D W -50
-KPX D X -51
-KPX D Y -59
-KPX F A -79
-KPX F Aacute -79
-KPX F Acircumflex -79
-KPX F Adieresis -79
-KPX F Agrave -79
-KPX F Aring -79
-KPX F Atilde -79
-KPX F J -42
-KPX F O -7
-KPX F Odieresis -7
-KPX F a -50
-KPX F aacute -50
-KPX F adieresis -22
-KPX F ae -53
-KPX F aring -50
-KPX F comma -59
-KPX F e -51
-KPX F eacute -51
-KPX F hyphen -34
-KPX F i -1
-KPX F j -26
-KPX F o -54
-KPX F oacute -54
-KPX F odieresis -24
-KPX F oe -51
-KPX F oslash -53
-KPX F period -60
-KPX F r -7
-KPX F u -10
-KPX G A -27
-KPX G AE -24
-KPX G Aacute -27
-KPX G Acircumflex -27
-KPX G Adieresis -27
-KPX G Agrave -27
-KPX G Aring -27
-KPX G Atilde -27
-KPX G T -41
-KPX G V -33
-KPX G W -35
-KPX G Y -33
-KPX J A -30
-KPX J AE -27
-KPX J Adieresis -30
-KPX J Aring -30
-KPX K C -61
-KPX K G -56
-KPX K O -56
-KPX K OE -46
-KPX K Oacute -56
-KPX K Odieresis -56
-KPX K S 13
-KPX K T -2
-KPX K a 6
-KPX K adieresis 6
-KPX K ae 3
-KPX K aring 6
-KPX K e -20
-KPX K hyphen -47
-KPX K o -25
-KPX K oacute -25
-KPX K odieresis -25
-KPX K u -18
-KPX K udieresis -18
-KPX K y -83
-KPX L A -1
-KPX L AE 1
-KPX L Aacute -1
-KPX L Adieresis -1
-KPX L Aring -1
-KPX L C -11
-KPX L Ccedilla -14
-KPX L G -5
-KPX L O -5
-KPX L Oacute -5
-KPX L Ocircumflex -5
-KPX L Odieresis -5
-KPX L Ograve -5
-KPX L Otilde -5
-KPX L S 2
-KPX L T -74
-KPX L U -29
-KPX L Udieresis -29
-KPX L V -106
-KPX L W -87
-KPX L Y -89
-KPX L hyphen 24
-KPX L quotedblright -37
-KPX L quoteright -69
-KPX L u -11
-KPX L udieresis -12
-KPX L y -49
-KPX N A -19
-KPX N AE -16
-KPX N Aacute -19
-KPX N Adieresis -19
-KPX N Aring -19
-KPX N C -22
-KPX N Ccedilla -22
-KPX N G -16
-KPX N O -15
-KPX N Oacute -15
-KPX N Odieresis -15
-KPX N a -16
-KPX N aacute -16
-KPX N adieresis -16
-KPX N ae -18
-KPX N aring -16
-KPX N comma 1
-KPX N e -13
-KPX N eacute -13
-KPX N o -16
-KPX N oacute -16
-KPX N odieresis -16
-KPX N oslash -15
-KPX N period 0
-KPX N u -17
-KPX N udieresis -17
-KPX O A -55
-KPX O AE -54
-KPX O Aacute -55
-KPX O Adieresis -55
-KPX O Aring -55
-KPX O T -9
-KPX O V -60
-KPX O W -54
-KPX O X -51
-KPX O Y -59
-KPX Oacute A -55
-KPX Oacute T -9
-KPX Oacute V -60
-KPX Oacute W -54
-KPX Oacute Y -59
-KPX Ocircumflex T -9
-KPX Ocircumflex V -60
-KPX Ocircumflex Y -59
-KPX Odieresis A -55
-KPX Odieresis T -9
-KPX Odieresis V -60
-KPX Odieresis W -54
-KPX Odieresis X -51
-KPX Odieresis Y -59
-KPX Ograve T -9
-KPX Ograve V -60
-KPX Ograve Y -59
-KPX Oslash A -52
-KPX Otilde T -9
-KPX Otilde V -60
-KPX Otilde Y -59
-KPX P A -81
-KPX P AE -94
-KPX P Aacute -81
-KPX P Adieresis -81
-KPX P Aring -81
-KPX P J -68
-KPX P a -19
-KPX P aacute -19
-KPX P adieresis -19
-KPX P ae -22
-KPX P aring -19
-KPX P comma -85
-KPX P e -29
-KPX P eacute -29
-KPX P hyphen -39
-KPX P o -33
-KPX P oacute -33
-KPX P odieresis -22
-KPX P oe -30
-KPX P oslash -33
-KPX P period -86
-KPX R C -36
-KPX R Ccedilla -37
-KPX R G -30
-KPX R O -29
-KPX R OE -22
-KPX R Oacute -29
-KPX R Odieresis -29
-KPX R T -26
-KPX R U -37
-KPX R Udieresis -37
-KPX R V -53
-KPX R W -55
-KPX R Y -53
-KPX R a 7
-KPX R aacute 7
-KPX R adieresis 7
-KPX R ae 4
-KPX R aring 7
-KPX R e -19
-KPX R eacute -19
-KPX R hyphen -30
-KPX R o -24
-KPX R oacute -24
-KPX R odieresis -24
-KPX R oe -21
-KPX R u -17
-KPX R uacute -17
-KPX R udieresis -17
-KPX R y -27
-KPX S A -24
-KPX S AE -21
-KPX S Aacute -24
-KPX S Adieresis -24
-KPX S Aring -24
-KPX S T -16
-KPX S V -9
-KPX S W -10
-KPX S Y -8
-KPX S t -10
-KPX T A -46
-KPX T AE -44
-KPX T Aacute -46
-KPX T Acircumflex -46
-KPX T Adieresis -46
-KPX T Agrave -46
-KPX T Aring -46
-KPX T Atilde -46
-KPX T C -17
-KPX T G -11
-KPX T J -43
-KPX T O -9
-KPX T OE -3
-KPX T Oacute -9
-KPX T Ocircumflex -9
-KPX T Odieresis -9
-KPX T Ograve -9
-KPX T Oslash -11
-KPX T Otilde -9
-KPX T S -2
-KPX T V 11
-KPX T W 9
-KPX T Y 11
-KPX T a -65
-KPX T ae -69
-KPX T c -88
-KPX T colon -85
-KPX T comma -63
-KPX T e -85
-KPX T g -68
-KPX T guillemotleft -99
-KPX T guilsinglleft -113
-KPX T hyphen -73
-KPX T i -16
-KPX T j -40
-KPX T o -88
-KPX T oslash -87
-KPX T period -64
-KPX T r -61
-KPX T s -59
-KPX T semicolon -85
-KPX T u -89
-KPX T v -106
-KPX T w -107
-KPX T y -104
-KPX U A -54
-KPX U AE -52
-KPX U Aacute -54
-KPX U Acircumflex -54
-KPX U Adieresis -54
-KPX U Aring -54
-KPX U Atilde -54
-KPX U comma -17
-KPX U m -23
-KPX U n -25
-KPX U p -28
-KPX U period -18
-KPX U r -29
-KPX Uacute A -54
-KPX Uacute comma -17
-KPX Uacute m -23
-KPX Uacute n -25
-KPX Uacute p -28
-KPX Uacute period -18
-KPX Uacute r -29
-KPX Ucircumflex A -54
-KPX Udieresis A -54
-KPX Udieresis b 10
-KPX Udieresis comma -17
-KPX Udieresis m -23
-KPX Udieresis n -25
-KPX Udieresis p -28
-KPX Udieresis period -18
-KPX Udieresis r -29
-KPX Ugrave A -54
-KPX V A -113
-KPX V AE -113
-KPX V Aacute -113
-KPX V Acircumflex -113
-KPX V Adieresis -113
-KPX V Agrave -113
-KPX V Aring -113
-KPX V Atilde -113
-KPX V C -70
-KPX V G -64
-KPX V O -63
-KPX V Oacute -63
-KPX V Ocircumflex -63
-KPX V Odieresis -63
-KPX V Ograve -63
-KPX V Oslash -65
-KPX V Otilde -63
-KPX V S -25
-KPX V T 8
-KPX V a -87
-KPX V ae -90
-KPX V colon -94
-KPX V comma -94
-KPX V e -86
-KPX V g -86
-KPX V guillemotleft -98
-KPX V guilsinglleft -112
-KPX V hyphen -68
-KPX V i -13
-KPX V o -89
-KPX V oslash -87
-KPX V period -95
-KPX V r -60
-KPX V semicolon -94
-KPX V u -58
-KPX V y -56
-KPX W A -98
-KPX W AE -102
-KPX W Aacute -98
-KPX W Acircumflex -98
-KPX W Adieresis -98
-KPX W Agrave -98
-KPX W Aring -98
-KPX W Atilde -98
-KPX W C -58
-KPX W G -52
-KPX W O -51
-KPX W Oacute -51
-KPX W Ocircumflex -51
-KPX W Odieresis -51
-KPX W Ograve -51
-KPX W Oslash -50
-KPX W Otilde -51
-KPX W S -24
-KPX W T 9
-KPX W a -70
-KPX W ae -73
-KPX W colon -81
-KPX W comma -72
-KPX W e -67
-KPX W g -70
-KPX W guillemotleft -79
-KPX W guilsinglleft -93
-KPX W hyphen -49
-KPX W i -12
-KPX W o -70
-KPX W oslash -69
-KPX W period -73
-KPX W r -49
-KPX W semicolon -80
-KPX W u -45
-KPX W y -44
-KPX X C -63
-KPX X O -56
-KPX X Odieresis -56
-KPX X Q -57
-KPX X a 0
-KPX X e -27
-KPX X hyphen -43
-KPX X o -32
-KPX X u -25
-KPX X y -90
-KPX Y A -64
-KPX Y AE -62
-KPX Y Aacute -64
-KPX Y Acircumflex -64
-KPX Y Adieresis -64
-KPX Y Agrave -64
-KPX Y Aring -64
-KPX Y Atilde -64
-KPX Y C -71
-KPX Y G -65
-KPX Y O -64
-KPX Y Oacute -64
-KPX Y Ocircumflex -64
-KPX Y Odieresis -64
-KPX Y Ograve -64
-KPX Y Oslash -68
-KPX Y Otilde -64
-KPX Y S -26
-KPX Y T 7
-KPX Y a -83
-KPX Y ae -87
-KPX Y colon -103
-KPX Y comma -80
-KPX Y e -93
-KPX Y g -86
-KPX Y guillemotleft -111
-KPX Y guilsinglleft -125
-KPX Y hyphen -87
-KPX Y i -14
-KPX Y o -96
-KPX Y oslash -95
-KPX Y p -72
-KPX Y period -81
-KPX Y semicolon -103
-KPX Y u -76
-KPX Y v -78
-KPX Z v -45
-KPX Z y -44
-KPX a j -39
-KPX a quoteright -34
-KPX a v -39
-KPX a w -40
-KPX a y -44
-KPX aacute v -39
-KPX aacute w -40
-KPX aacute y -44
-KPX adieresis v -39
-KPX adieresis w -40
-KPX adieresis y -44
-KPX ae v -34
-KPX ae w -35
-KPX ae y -37
-KPX agrave v -39
-KPX agrave w -40
-KPX agrave y -44
-KPX aring v -39
-KPX aring w -40
-KPX aring y -44
-KPX b v -39
-KPX b w -40
-KPX b y -42
-KPX c h -17
-KPX c k -18
-KPX comma one -12
-KPX comma quotedblright 9
-KPX comma quoteright -23
-KPX e quoteright -19
-KPX e t -10
-KPX e v -29
-KPX e w -30
-KPX e x -19
-KPX e y -31
-KPX eacute v -29
-KPX eacute w -30
-KPX eacute y -31
-KPX ecircumflex v -29
-KPX ecircumflex w -30
-KPX ecircumflex y -31
-KPX eight four 11
-KPX eight one -19
-KPX eight seven 0
-KPX f a -17
-KPX f aacute -17
-KPX f adieresis 14
-KPX f ae -21
-KPX f aring -15
-KPX f e -29
-KPX f eacute -29
-KPX f f 12
-KPX f i 22
-KPX f j -1
-KPX f l 33
-KPX f o -32
-KPX f oacute -32
-KPX f odieresis 11
-KPX f oe -29
-KPX f oslash -31
-KPX f quoteright 18
-KPX f s -8
-KPX f t -3
-KPX five four 1
-KPX five one -28
-KPX five seven -9
-KPX four four 13
-KPX four one -35
-KPX four seven -16
-KPX g a -15
-KPX g adieresis -15
-KPX g ae -18
-KPX g aring -15
-KPX g e -20
-KPX g eacute -20
-KPX g l 0
-KPX g oacute -20
-KPX g odieresis -20
-KPX g r 1
-KPX guillemotright A -40
-KPX guillemotright AE -46
-KPX guillemotright Aacute -40
-KPX guillemotright Adieresis -40
-KPX guillemotright Aring -40
-KPX guillemotright T -100
-KPX guillemotright V -102
-KPX guillemotright W -84
-KPX guillemotright Y -106
-KPX guilsinglright A -54
-KPX guilsinglright AE -60
-KPX guilsinglright Aacute -54
-KPX guilsinglright Adieresis -54
-KPX guilsinglright Aring -54
-KPX guilsinglright T -114
-KPX guilsinglright V -116
-KPX guilsinglright W -98
-KPX guilsinglright Y -120
-KPX h quoteright -30
-KPX h y -34
-KPX hyphen A -18
-KPX hyphen AE -24
-KPX hyphen Aacute -18
-KPX hyphen Adieresis -18
-KPX hyphen Aring -18
-KPX hyphen T -74
-KPX hyphen V -72
-KPX hyphen W -54
-KPX hyphen Y -83
-KPX i T -18
-KPX i j -36
-KPX k a -3
-KPX k aacute -3
-KPX k adieresis -3
-KPX k ae -7
-KPX k aring -3
-KPX k comma 0
-KPX k e -33
-KPX k eacute -33
-KPX k g -4
-KPX k hyphen -47
-KPX k o -38
-KPX k oacute -38
-KPX k odieresis -38
-KPX k period 0
-KPX k s 5
-KPX k u -5
-KPX k udieresis -5
-KPX l v -22
-KPX l y -19
-KPX m p -16
-KPX m v -32
-KPX m w -33
-KPX m y -33
-KPX n T -56
-KPX n p -14
-KPX n quoteright -28
-KPX n v -31
-KPX n w -32
-KPX n y -32
-KPX nine four 2
-KPX nine one -26
-KPX nine seven 10
-KPX o T -88
-KPX o quoteright -27
-KPX o t -10
-KPX o v -42
-KPX o w -38
-KPX o x -29
-KPX o y -42
-KPX oacute v -42
-KPX oacute w -38
-KPX oacute y -42
-KPX ocircumflex t -10
-KPX odieresis t -10
-KPX odieresis v -42
-KPX odieresis w -38
-KPX odieresis x -29
-KPX odieresis y -42
-KPX ograve v -42
-KPX ograve w -38
-KPX ograve y -42
-KPX one comma -16
-KPX one eight -34
-KPX one five -16
-KPX one four -56
-KPX one nine -9
-KPX one one -27
-KPX one period -17
-KPX one seven -56
-KPX one six -47
-KPX one three -10
-KPX one two -2
-KPX one zero -35
-KPX p t -11
-KPX p y -34
-KPX period one -21
-KPX period quotedblright 5
-KPX period quoteright -27
-KPX q c -13
-KPX q u -15
-KPX quotedblbase A 19
-KPX quotedblbase AE 20
-KPX quotedblbase T -59
-KPX quotedblbase V -98
-KPX quotedblbase W -75
-KPX quotedblbase Y -73
-KPX quotedblleft A -59
-KPX quotedblleft AE -78
-KPX quotedblleft Aacute -59
-KPX quotedblleft Adieresis -59
-KPX quotedblleft Aring -59
-KPX quotedblleft T 9
-KPX quotedblleft V 15
-KPX quotedblleft W 13
-KPX quotedblleft Y 15
-KPX quotedblright A -72
-KPX quotedblright AE -91
-KPX quotedblright Aacute -72
-KPX quotedblright Adieresis -72
-KPX quotedblright Aring -72
-KPX quotedblright T 4
-KPX quotedblright V 5
-KPX quotedblright W 4
-KPX quotedblright Y 6
-KPX quoteleft A -92
-KPX quoteleft AE -111
-KPX quoteleft Aacute -92
-KPX quoteleft Adieresis -92
-KPX quoteleft Aring -92
-KPX quoteleft T -22
-KPX quoteleft V -17
-KPX quoteleft W -19
-KPX quoteleft Y -17
-KPX quoteright A -91
-KPX quoteright AE -110
-KPX quoteright Aacute -91
-KPX quoteright Adieresis -91
-KPX quoteright Aring -91
-KPX quoteright comma -34
-KPX quoteright d -31
-KPX quoteright o -34
-KPX quoteright period -35
-KPX quoteright r -26
-KPX quoteright s -17
-KPX quoteright t -19
-KPX quoteright v -25
-KPX quoteright w -23
-KPX quoteright y -22
-KPX r a -6
-KPX r aacute -6
-KPX r acircumflex -6
-KPX r adieresis -6
-KPX r ae -8
-KPX r agrave -6
-KPX r aring -6
-KPX r c -15
-KPX r ccedilla -10
-KPX r colon -16
-KPX r comma -67
-KPX r d -13
-KPX r e -11
-KPX r eacute -11
-KPX r ecircumflex -11
-KPX r egrave -11
-KPX r f 11
-KPX r g -5
-KPX r h -15
-KPX r hyphen -18
-KPX r i 6
-KPX r j -12
-KPX r k -15
-KPX r l -14
-KPX r m 6
-KPX r n 4
-KPX r o -14
-KPX r oacute -14
-KPX r ocircumflex -14
-KPX r odieresis -14
-KPX r oe -12
-KPX r ograve -14
-KPX r oslash -14
-KPX r p 4
-KPX r period -68
-KPX r q -15
-KPX r quoteright -8
-KPX r r 0
-KPX r s 0
-KPX r semicolon -16
-KPX r t 9
-KPX r u 9
-KPX r v 8
-KPX r w 7
-KPX r x 11
-KPX r y 9
-KPX r z -1
-KPX s quoteright -17
-KPX s t -7
-KPX seven colon -64
-KPX seven comma -57
-KPX seven eight -18
-KPX seven five -34
-KPX seven four -54
-KPX seven one -25
-KPX seven period -58
-KPX seven seven -6
-KPX seven six -37
-KPX seven three -20
-KPX seven two -21
-KPX six four 13
-KPX six one -43
-KPX six seven -7
-KPX t S 11
-KPX t a 11
-KPX t aacute 11
-KPX t adieresis 11
-KPX t ae 7
-KPX t aring 11
-KPX t colon -12
-KPX t e -1
-KPX t eacute -1
-KPX t h -4
-KPX t o -4
-KPX t oacute -4
-KPX t odieresis -4
-KPX t quoteright -31
-KPX t semicolon -12
-KPX three four 9
-KPX three one -33
-KPX three seven -15
-KPX two four 14
-KPX two one -29
-KPX two seven -7
-KPX u quoteright -25
-KPX v a -23
-KPX v aacute -23
-KPX v acircumflex -23
-KPX v adieresis -23
-KPX v ae -25
-KPX v agrave -23
-KPX v aring -23
-KPX v atilde -23
-KPX v c -40
-KPX v colon -23
-KPX v comma -56
-KPX v e -35
-KPX v eacute -35
-KPX v ecircumflex -35
-KPX v egrave -35
-KPX v g -22
-KPX v hyphen -27
-KPX v l -16
-KPX v o -40
-KPX v oacute -40
-KPX v odieresis -40
-KPX v ograve -40
-KPX v oslash -39
-KPX v period -57
-KPX v s -16
-KPX v semicolon -23
-KPX w a -23
-KPX w aacute -23
-KPX w acircumflex -23
-KPX w adieresis -23
-KPX w ae -25
-KPX w agrave -23
-KPX w aring -23
-KPX w atilde -23
-KPX w c -36
-KPX w colon -23
-KPX w comma -50
-KPX w e -33
-KPX w eacute -33
-KPX w ecircumflex -33
-KPX w egrave -33
-KPX w g -22
-KPX w hyphen -23
-KPX w l -16
-KPX w o -36
-KPX w oacute -36
-KPX w odieresis -36
-KPX w ograve -36
-KPX w oslash -35
-KPX w period -51
-KPX w s -16
-KPX w semicolon -23
-KPX x a -2
-KPX x c -30
-KPX x e -27
-KPX x eacute -27
-KPX x o -30
-KPX x q -32
-KPX y a -32
-KPX y aacute -32
-KPX y acircumflex -32
-KPX y adieresis -32
-KPX y ae -34
-KPX y agrave -32
-KPX y aring -32
-KPX y atilde -32
-KPX y c -42
-KPX y colon -28
-KPX y comma -56
-KPX y e -40
-KPX y eacute -40
-KPX y ecircumflex -40
-KPX y egrave -40
-KPX y g -31
-KPX y hyphen -29
-KPX y l -19
-KPX y o -42
-KPX y oacute -42
-KPX y odieresis -42
-KPX y ograve -42
-KPX y oslash -41
-KPX y period -57
-KPX y s -24
-KPX y semicolon -28
-KPX zero four 11
-KPX zero one -31
-KPX zero seven 7
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n021004l.pfb b/Master/xemtex/gsfonts/n021004l.pfb
deleted file mode 100644
index 0418d76e60f..00000000000
--- a/Master/xemtex/gsfonts/n021004l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021004l.pfm b/Master/xemtex/gsfonts/n021004l.pfm
deleted file mode 100644
index e73d5ee536e..00000000000
--- a/Master/xemtex/gsfonts/n021004l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021023l.afm b/Master/xemtex/gsfonts/n021023l.afm
deleted file mode 100644
index 40ad38b8a22..00000000000
--- a/Master/xemtex/gsfonts/n021023l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusRomNo9L-ReguItal
-FullName Nimbus Roman No9 L Regular Italic
-FamilyName Nimbus Roman No9 L
-Weight Regular
-ItalicAngle -15.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -169 -270 1010 924
-CapHeight 653
-XHeight 432
-Descender -205
-Ascender 683
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ;
-C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ;
-C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ;
-C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ;
-C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ;
-C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ;
-C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ;
-C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ;
-C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ;
-C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ;
-C 43 ; WX 675 ; N plus ; B 86 0 590 506 ;
-C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ;
-C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ;
-C 46 ; WX 250 ; N period ; B 27 -11 138 100 ;
-C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ;
-C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ;
-C 49 ; WX 500 ; N one ; B 49 0 409 676 ;
-C 50 ; WX 500 ; N two ; B 12 0 452 676 ;
-C 51 ; WX 500 ; N three ; B 15 -7 466 676 ;
-C 52 ; WX 500 ; N four ; B 1 0 479 676 ;
-C 53 ; WX 500 ; N five ; B 15 -7 491 666 ;
-C 54 ; WX 500 ; N six ; B 30 -7 521 686 ;
-C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ;
-C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ;
-C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ;
-C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ;
-C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ;
-C 60 ; WX 675 ; N less ; B 84 -10 592 516 ;
-C 61 ; WX 675 ; N equal ; B 86 120 590 386 ;
-C 62 ; WX 675 ; N greater ; B 84 -10 592 516 ;
-C 63 ; WX 500 ; N question ; B 132 -12 472 664 ;
-C 64 ; WX 920 ; N at ; B 118 -18 806 666 ;
-C 65 ; WX 611 ; N A ; B -51 0 564 668 ;
-C 66 ; WX 611 ; N B ; B -8 0 588 653 ;
-C 67 ; WX 667 ; N C ; B 66 -18 689 666 ;
-C 68 ; WX 722 ; N D ; B -8 0 700 653 ;
-C 69 ; WX 611 ; N E ; B -1 0 634 653 ;
-C 70 ; WX 611 ; N F ; B 8 0 645 653 ;
-C 71 ; WX 722 ; N G ; B 52 -18 722 666 ;
-C 72 ; WX 722 ; N H ; B -8 0 767 653 ;
-C 73 ; WX 333 ; N I ; B -8 0 384 653 ;
-C 74 ; WX 444 ; N J ; B -6 -18 491 653 ;
-C 75 ; WX 667 ; N K ; B 7 0 722 653 ;
-C 76 ; WX 556 ; N L ; B -8 0 559 653 ;
-C 77 ; WX 833 ; N M ; B -18 0 873 653 ;
-C 78 ; WX 667 ; N N ; B -20 -15 727 653 ;
-C 79 ; WX 722 ; N O ; B 60 -18 706 666 ;
-C 80 ; WX 611 ; N P ; B 0 0 605 653 ;
-C 81 ; WX 722 ; N Q ; B 59 -183 699 666 ;
-C 82 ; WX 611 ; N R ; B -13 0 588 653 ;
-C 83 ; WX 500 ; N S ; B 17 -18 508 667 ;
-C 84 ; WX 556 ; N T ; B 59 0 633 653 ;
-C 85 ; WX 722 ; N U ; B 102 -18 765 653 ;
-C 86 ; WX 611 ; N V ; B 76 -18 688 653 ;
-C 87 ; WX 833 ; N W ; B 71 -18 906 653 ;
-C 88 ; WX 611 ; N X ; B -29 0 655 653 ;
-C 89 ; WX 556 ; N Y ; B 78 0 633 653 ;
-C 90 ; WX 556 ; N Z ; B -6 0 606 653 ;
-C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ;
-C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ;
-C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ;
-C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ;
-C 97 ; WX 500 ; N a ; B 17 -11 476 441 ;
-C 98 ; WX 500 ; N b ; B 23 -11 473 683 ;
-C 99 ; WX 444 ; N c ; B 30 -11 425 441 ;
-C 100 ; WX 500 ; N d ; B 15 -13 527 683 ;
-C 101 ; WX 444 ; N e ; B 31 -11 412 441 ;
-C 102 ; WX 278 ; N f ; B -147 -207 424 678 ;
-C 103 ; WX 500 ; N g ; B 8 -206 472 441 ;
-C 104 ; WX 500 ; N h ; B 19 -9 478 683 ;
-C 105 ; WX 278 ; N i ; B 49 -11 264 654 ;
-C 106 ; WX 278 ; N j ; B -124 -207 276 654 ;
-C 107 ; WX 444 ; N k ; B 14 -11 461 683 ;
-C 108 ; WX 278 ; N l ; B 40 -11 279 683 ;
-C 109 ; WX 722 ; N m ; B 12 -9 704 441 ;
-C 110 ; WX 500 ; N n ; B 14 -9 474 441 ;
-C 111 ; WX 500 ; N o ; B 27 -11 468 441 ;
-C 112 ; WX 500 ; N p ; B -75 -205 469 442 ;
-C 113 ; WX 500 ; N q ; B 25 -209 483 441 ;
-C 114 ; WX 389 ; N r ; B 45 0 412 441 ;
-C 115 ; WX 389 ; N s ; B 16 -13 366 442 ;
-C 116 ; WX 278 ; N t ; B 37 -11 296 546 ;
-C 117 ; WX 500 ; N u ; B 42 -11 475 441 ;
-C 118 ; WX 444 ; N v ; B 21 -18 426 441 ;
-C 119 ; WX 667 ; N w ; B 16 -18 648 441 ;
-C 120 ; WX 444 ; N x ; B -27 -11 447 441 ;
-C 121 ; WX 444 ; N y ; B -24 -206 426 441 ;
-C 122 ; WX 389 ; N z ; B -2 -81 380 428 ;
-C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ;
-C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ;
-C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ;
-C 126 ; WX 541 ; N asciitilde ; B 40 186 502 320 ;
-C 161 ; WX 389 ; N exclamdown ; B 59 -205 321 474 ;
-C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ;
-C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ;
-C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ;
-C 165 ; WX 500 ; N yen ; B 27 0 603 653 ;
-C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ;
-C 167 ; WX 500 ; N section ; B 53 -162 461 666 ;
-C 168 ; WX 500 ; N currency ; B -22 53 522 597 ;
-C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ;
-C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ;
-C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ;
-C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ;
-C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ;
-C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ;
-C 177 ; WX 500 ; N endash ; B -6 197 505 243 ;
-C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ;
-C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ;
-C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ;
-C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ;
-C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ;
-C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ;
-C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ;
-C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ;
-C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ;
-C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ;
-C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ;
-C 191 ; WX 500 ; N questiondown ; B 28 -205 367 473 ;
-C 193 ; WX 333 ; N grave ; B 121 492 311 664 ;
-C 194 ; WX 333 ; N acute ; B 180 494 403 664 ;
-C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ;
-C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ;
-C 197 ; WX 333 ; N macron ; B 99 532 411 583 ;
-C 198 ; WX 333 ; N breve ; B 117 492 418 650 ;
-C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ;
-C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ;
-C 202 ; WX 333 ; N ring ; B 155 508 355 707 ;
-C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ;
-C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ;
-C 207 ; WX 333 ; N caron ; B 121 492 426 661 ;
-C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ;
-C 225 ; WX 889 ; N AE ; B -27 0 911 653 ;
-C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ;
-C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ;
-C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ;
-C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ;
-C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ;
-C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ;
-C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ;
-C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ;
-C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ;
-C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ;
-C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ;
-C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ;
-C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ;
-C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ;
-C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ;
-C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ;
-C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ;
-C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ;
-C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ;
-C -1 ; WX 722 ; N Otilde ; B 60 -18 706 836 ;
-C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ;
-C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 706 876 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ;
-C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ;
-C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ;
-C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ;
-C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ;
-C -1 ; WX 722 ; N Uring ; B 102 -18 765 919 ;
-C -1 ; WX 500 ; N gbreve ; B 8 -206 502 650 ;
-C -1 ; WX 444 ; N eogonek ; B 31 -169 444 441 ;
-C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ;
-C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ;
-C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ;
-C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ;
-C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ;
-C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ;
-C -1 ; WX 521 ; N dcaron ; B 15 -13 641 683 ;
-C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ;
-C -1 ; WX 444 ; N ccaron ; B 30 -11 484 661 ;
-C -1 ; WX 444 ; N cacute ; B 30 -11 458 664 ;
-C -1 ; WX 500 ; N aogonek ; B 17 -169 500 441 ;
-C -1 ; WX 500 ; N aring ; B 17 -11 476 707 ;
-C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ;
-C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ;
-C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ;
-C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ;
-C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ;
-C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ;
-C -1 ; WX 722 ; N Uogonek ; B 102 -169 765 653 ;
-C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ;
-C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ;
-C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ;
-C -1 ; WX 278 ; N tcaron ; B 37 -11 378 666 ;
-C -1 ; WX 389 ; N scommaaccent ; B 16 -270 366 442 ;
-C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ;
-C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ;
-C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ;
-C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ;
-C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ;
-C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ;
-C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ;
-C -1 ; WX 556 ; N Tcommaaccent ; B 59 -270 633 653 ;
-C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ;
-C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ;
-C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ;
-C -1 ; WX 722 ; N Ograve ; B 60 -18 706 876 ;
-C -1 ; WX 722 ; N Oacute ; B 60 -18 706 876 ;
-C -1 ; WX 722 ; N Odieresis ; B 60 -18 706 818 ;
-C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ;
-C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ;
-C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ;
-C -1 ; WX 556 ; N Lcaron ; B -8 0 596 666 ;
-C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ;
-C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ;
-C -1 ; WX 389 ; N racute ; B 45 0 431 664 ;
-C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ;
-C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 570 664 ;
-C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ;
-C -1 ; WX 500 ; N Euro ; B 57 0 668 693 ;
-C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ;
-C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ;
-C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ;
-C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ;
-C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ;
-C -1 ; WX 333 ; N Iacute ; B -8 0 403 876 ;
-C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ;
-C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ;
-C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ;
-C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ;
-C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ;
-C -1 ; WX 667 ; N Kcommaaccent ; B 7 -270 722 653 ;
-C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ;
-C -1 ; WX 500 ; N Scommaaccent ; B 17 -270 508 667 ;
-C -1 ; WX 611 ; N Eogonek ; B -1 -169 651 653 ;
-C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ;
-C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ;
-C -1 ; WX 278 ; N iogonek ; B 49 -169 278 654 ;
-C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ;
-C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ;
-C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ;
-C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ;
-C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ;
-C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ;
-C -1 ; WX 389 ; N scedilla ; B -2 -217 366 442 ;
-C -1 ; WX 389 ; N rcaron ; B 45 0 454 661 ;
-C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ;
-C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ;
-C -1 ; WX 722 ; N Gcommaaccent ; B 52 -270 722 666 ;
-C -1 ; WX 611 ; N Rcommaaccent ; B -13 -270 588 653 ;
-C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ;
-C -1 ; WX 500 ; N nacute ; B 14 -9 487 664 ;
-C -1 ; WX 500 ; N uogonek ; B 42 -169 500 441 ;
-C -1 ; WX 500 ; N umacron ; B 42 -11 495 583 ;
-C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ;
-C -1 ; WX 278 ; N lcaron ; B 40 -11 395 683 ;
-C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ;
-C -1 ; WX 667 ; N Cacute ; B 66 -18 689 876 ;
-C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ;
-C -1 ; WX 400 ; N degree ; B 101 390 387 676 ;
-C -1 ; WX 611 ; N Aogonek ; B -51 -169 707 668 ;
-C -1 ; WX 675 ; N minus ; B 86 220 590 286 ;
-C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ;
-C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ;
-C -1 ; WX 611 ; N Aring ; B -51 0 564 904 ;
-C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ;
-C -1 ; WX 389 ; N rcommaaccent ; B 35 -270 412 441 ;
-C -1 ; WX 278 ; N lacute ; B 40 -11 376 876 ;
-C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ;
-C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ;
-C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ;
-C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ;
-C -1 ; WX 500 ; N ncommaaccent ; B 14 -270 474 441 ;
-C -1 ; WX 278 ; N lcommaaccent ; B -21 -270 279 683 ;
-C -1 ; WX 675 ; N plusminus ; B 86 0 590 568 ;
-C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ;
-C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ;
-C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ;
-C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ;
-C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ;
-C -1 ; WX 444 ; N kcommaaccent ; B 14 -270 461 683 ;
-C -1 ; WX 722 ; N Omacron ; B 60 -18 706 795 ;
-C -1 ; WX 278 ; N imacron ; B 49 -11 384 583 ;
-C -1 ; WX 444 ; N emacron ; B 31 -11 467 583 ;
-C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ;
-C -1 ; WX 278 ; N tcommaaccent ; B -21 -270 296 546 ;
-C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ;
-C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ;
-C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ;
-C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ;
-C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ;
-C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 570 664 ;
-C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ;
-C -1 ; WX 500 ; N uring ; B 42 -11 475 707 ;
-C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 706 873 ;
-C -1 ; WX 333 ; N commaaccent ; B 7 -270 146 -40 ;
-C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ;
-C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ;
-C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ;
-C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 564 ; N notequal ; B 30 -3 534 509 ;
-C -1 ; WX 549 ; N radical ; B -2 -65 526 924 ;
-C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ;
-C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ;
-C -1 ; WX 675 ; N lessequal ; B 84 0 592 628 ;
-C -1 ; WX 675 ; N greaterequal ; B 84 0 592 628 ;
-C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 667 ; N Ncommaaccent ; B -20 -270 727 653 ;
-C -1 ; WX 500 ; N dcroat ; B 15 -13 558 683 ;
-C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ;
-C -1 ; WX 556 ; N Lcommaaccent ; B -8 -270 559 653 ;
-C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ;
-C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -50
-KPX A Ccedilla -50
-KPX A G -44
-KPX A O -45
-KPX A Odieresis -45
-KPX A Q -44
-KPX A T -14
-KPX A U -57
-KPX A Uacute -57
-KPX A Ucircumflex -57
-KPX A Udieresis -57
-KPX A Ugrave -57
-KPX A V -81
-KPX A W -75
-KPX A Y -21
-KPX A a -4
-KPX A b 0
-KPX A c -18
-KPX A ccedilla -28
-KPX A comma 8
-KPX A d -4
-KPX A e -17
-KPX A g -25
-KPX A guillemotleft -44
-KPX A guilsinglleft -43
-KPX A hyphen -13
-KPX A o -17
-KPX A period 8
-KPX A q -12
-KPX A quotedblright -92
-KPX A quoteright -92
-KPX A t -6
-KPX A u -9
-KPX A v -50
-KPX A w -44
-KPX A y -57
-KPX Aacute C -50
-KPX Aacute G -44
-KPX Aacute O -45
-KPX Aacute Q -44
-KPX Aacute T -14
-KPX Aacute U -57
-KPX Aacute V -81
-KPX Aacute W -75
-KPX Aacute Y -21
-KPX Aacute a -4
-KPX Aacute b 0
-KPX Aacute c -18
-KPX Aacute comma 8
-KPX Aacute d -4
-KPX Aacute e -17
-KPX Aacute g -25
-KPX Aacute guillemotleft -44
-KPX Aacute guilsinglleft -43
-KPX Aacute hyphen -13
-KPX Aacute o -17
-KPX Aacute period 8
-KPX Aacute q -12
-KPX Aacute quoteright -92
-KPX Aacute t -6
-KPX Aacute u -9
-KPX Aacute v -50
-KPX Aacute w -44
-KPX Aacute y -57
-KPX Acircumflex C -50
-KPX Acircumflex G -44
-KPX Acircumflex O -45
-KPX Acircumflex Q -44
-KPX Acircumflex T -14
-KPX Acircumflex U -57
-KPX Acircumflex V -81
-KPX Acircumflex W -75
-KPX Acircumflex Y -21
-KPX Acircumflex comma 8
-KPX Acircumflex period 8
-KPX Adieresis C -50
-KPX Adieresis G -44
-KPX Adieresis O -45
-KPX Adieresis Q -44
-KPX Adieresis T -14
-KPX Adieresis U -57
-KPX Adieresis V -81
-KPX Adieresis W -75
-KPX Adieresis Y -21
-KPX Adieresis a -4
-KPX Adieresis b 0
-KPX Adieresis c -18
-KPX Adieresis comma 8
-KPX Adieresis d -4
-KPX Adieresis g -25
-KPX Adieresis guillemotleft -44
-KPX Adieresis guilsinglleft -43
-KPX Adieresis hyphen -13
-KPX Adieresis o -17
-KPX Adieresis period 8
-KPX Adieresis q -12
-KPX Adieresis quotedblright -92
-KPX Adieresis quoteright -92
-KPX Adieresis t -6
-KPX Adieresis u -9
-KPX Adieresis v -50
-KPX Adieresis w -44
-KPX Adieresis y -57
-KPX Agrave C -50
-KPX Agrave G -44
-KPX Agrave O -45
-KPX Agrave Q -44
-KPX Agrave T -14
-KPX Agrave U -57
-KPX Agrave V -81
-KPX Agrave W -75
-KPX Agrave Y -21
-KPX Agrave comma 8
-KPX Agrave period 8
-KPX Aring C -50
-KPX Aring G -44
-KPX Aring O -45
-KPX Aring Q -44
-KPX Aring T -14
-KPX Aring U -57
-KPX Aring V -81
-KPX Aring W -75
-KPX Aring Y -21
-KPX Aring a -4
-KPX Aring b 0
-KPX Aring c -18
-KPX Aring comma 8
-KPX Aring d -4
-KPX Aring e -17
-KPX Aring g -25
-KPX Aring guillemotleft -44
-KPX Aring guilsinglleft -43
-KPX Aring hyphen -13
-KPX Aring o -17
-KPX Aring period 8
-KPX Aring q -12
-KPX Aring quotedblright -92
-KPX Aring quoteright -92
-KPX Aring t -6
-KPX Aring u -9
-KPX Aring v -50
-KPX Aring w -44
-KPX Aring y -57
-KPX Atilde C -50
-KPX Atilde G -44
-KPX Atilde O -45
-KPX Atilde Q -44
-KPX Atilde T -14
-KPX Atilde U -57
-KPX Atilde V -81
-KPX Atilde W -75
-KPX Atilde Y -21
-KPX Atilde comma 7
-KPX Atilde period 7
-KPX B A -23
-KPX B AE -35
-KPX B Aacute -23
-KPX B Acircumflex -23
-KPX B Adieresis -23
-KPX B Aring -23
-KPX B Atilde -23
-KPX B O -14
-KPX B OE -6
-KPX B Oacute -14
-KPX B Ocircumflex -14
-KPX B Odieresis -14
-KPX B Ograve -14
-KPX B Oslash -14
-KPX B V -32
-KPX B W -29
-KPX B Y -39
-KPX C A -14
-KPX C AE -30
-KPX C Aacute -14
-KPX C Adieresis -14
-KPX C Aring -14
-KPX C H -13
-KPX C K -21
-KPX C O -19
-KPX C Oacute -19
-KPX C Odieresis -19
-KPX Ccedilla A -18
-KPX D A -36
-KPX D Aacute -36
-KPX D Acircumflex -36
-KPX D Adieresis -36
-KPX D Agrave -36
-KPX D Aring -36
-KPX D Atilde -36
-KPX D J -32
-KPX D T -9
-KPX D V -42
-KPX D W -36
-KPX D X -40
-KPX D Y -50
-KPX F A -72
-KPX F Aacute -72
-KPX F Acircumflex -72
-KPX F Adieresis -72
-KPX F Agrave -72
-KPX F Aring -72
-KPX F Atilde -72
-KPX F J -60
-KPX F O -40
-KPX F Odieresis -40
-KPX F a -77
-KPX F aacute -78
-KPX F adieresis -52
-KPX F ae -82
-KPX F aring -70
-KPX F comma -95
-KPX F e -83
-KPX F eacute -83
-KPX F hyphen -45
-KPX F i -36
-KPX F j -41
-KPX F o -79
-KPX F oacute -79
-KPX F odieresis -52
-KPX F oe -75
-KPX F oslash -80
-KPX F period -99
-KPX F r -52
-KPX F u -50
-KPX G A -17
-KPX G AE -29
-KPX G Aacute -17
-KPX G Acircumflex -17
-KPX G Adieresis -17
-KPX G Agrave -17
-KPX G Aring -17
-KPX G Atilde -17
-KPX G T -13
-KPX G V -5
-KPX G W -2
-KPX G Y -12
-KPX J A -40
-KPX J AE -52
-KPX J Adieresis -40
-KPX J Aring -40
-KPX K C -55
-KPX K G -53
-KPX K O -46
-KPX K OE -45
-KPX K Oacute -46
-KPX K Odieresis -46
-KPX K S 6
-KPX K T 21
-KPX K a -5
-KPX K adieresis -5
-KPX K ae -5
-KPX K aring -5
-KPX K e -18
-KPX K hyphen -57
-KPX K o -18
-KPX K oacute -18
-KPX K odieresis -18
-KPX K u -10
-KPX K udieresis -10
-KPX K y -89
-KPX L A 44
-KPX L AE 32
-KPX L Aacute 44
-KPX L Adieresis 44
-KPX L Aring 44
-KPX L C 6
-KPX L Ccedilla 4
-KPX L G 11
-KPX L O 10
-KPX L Oacute 10
-KPX L Ocircumflex 10
-KPX L Odieresis 10
-KPX L Ograve 10
-KPX L Otilde 10
-KPX L S 20
-KPX L T -13
-KPX L U -8
-KPX L Udieresis -8
-KPX L V -55
-KPX L W -48
-KPX L Y -20
-KPX L hyphen 47
-KPX L quotedblright -92
-KPX L quoteright -92
-KPX L u 12
-KPX L udieresis 10
-KPX L y -26
-KPX N A -20
-KPX N AE -32
-KPX N Aacute -20
-KPX N Adieresis -20
-KPX N Aring -20
-KPX N C -21
-KPX N Ccedilla -20
-KPX N G -14
-KPX N O -20
-KPX N Oacute -20
-KPX N Odieresis -20
-KPX N a -22
-KPX N aacute -23
-KPX N adieresis -23
-KPX N ae -27
-KPX N aring -23
-KPX N comma -13
-KPX N e -28
-KPX N eacute -30
-KPX N o -25
-KPX N oacute -27
-KPX N odieresis -27
-KPX N oslash -27
-KPX N period -16
-KPX N u -24
-KPX N udieresis -25
-KPX O A -38
-KPX O AE -70
-KPX O Aacute -38
-KPX O Adieresis -38
-KPX O Aring -38
-KPX O T -3
-KPX O V -45
-KPX O W -39
-KPX O X -41
-KPX O Y -51
-KPX Oacute A -38
-KPX Oacute T -3
-KPX Oacute V -45
-KPX Oacute W -39
-KPX Oacute Y -51
-KPX Ocircumflex T -3
-KPX Ocircumflex V -45
-KPX Ocircumflex Y -51
-KPX Odieresis A -38
-KPX Odieresis T -3
-KPX Odieresis V -45
-KPX Odieresis W -39
-KPX Odieresis X -41
-KPX Odieresis Y -51
-KPX Ograve T -3
-KPX Ograve V -45
-KPX Ograve Y -51
-KPX Oslash A -38
-KPX Otilde T -3
-KPX Otilde V -45
-KPX Otilde Y -51
-KPX P A -79
-KPX P AE -116
-KPX P Aacute -79
-KPX P Adieresis -79
-KPX P Aring -79
-KPX P J -89
-KPX P a -74
-KPX P aacute -74
-KPX P adieresis -64
-KPX P ae -80
-KPX P aring -74
-KPX P comma -118
-KPX P e -79
-KPX P eacute -79
-KPX P hyphen -64
-KPX P o -73
-KPX P oacute -73
-KPX P odieresis -64
-KPX P oe -67
-KPX P oslash -74
-KPX P period -121
-KPX R C -26
-KPX R Ccedilla -25
-KPX R G -20
-KPX R O -26
-KPX R OE -18
-KPX R Oacute -26
-KPX R Odieresis -26
-KPX R T 0
-KPX R U -36
-KPX R Udieresis -36
-KPX R V -31
-KPX R W -28
-KPX R Y -19
-KPX R a -3
-KPX R aacute -3
-KPX R adieresis -3
-KPX R ae -3
-KPX R aring -3
-KPX R e -15
-KPX R eacute -15
-KPX R hyphen -29
-KPX R o -15
-KPX R oacute -15
-KPX R odieresis -15
-KPX R oe -15
-KPX R u -7
-KPX R uacute -7
-KPX R udieresis -7
-KPX R y 0
-KPX S A -2
-KPX S AE -14
-KPX S Aacute -2
-KPX S Adieresis -2
-KPX S Aring -2
-KPX S T 1
-KPX S V 5
-KPX S W 8
-KPX S Y -1
-KPX S t -13
-KPX T A -33
-KPX T AE -45
-KPX T Aacute -33
-KPX T Acircumflex -33
-KPX T Adieresis -33
-KPX T Agrave -33
-KPX T Aring -33
-KPX T Atilde -33
-KPX T C -15
-KPX T G -7
-KPX T J -39
-KPX T O -20
-KPX T OE -8
-KPX T Oacute -20
-KPX T Ocircumflex -20
-KPX T Odieresis -20
-KPX T Ograve -20
-KPX T Oslash -20
-KPX T Otilde -20
-KPX T S -2
-KPX T V 41
-KPX T W 43
-KPX T Y 33
-KPX T a -81
-KPX T ae -81
-KPX T c -86
-KPX T colon -84
-KPX T comma -70
-KPX T e -90
-KPX T g -102
-KPX T guillemotleft -102
-KPX T guilsinglleft -101
-KPX T hyphen -68
-KPX T i -16
-KPX T j -20
-KPX T o -87
-KPX T oslash -89
-KPX T period -71
-KPX T r -87
-KPX T s -74
-KPX T semicolon -92
-KPX T u -86
-KPX T v -72
-KPX T w -69
-KPX T y -70
-KPX U A -50
-KPX U AE -69
-KPX U Aacute -50
-KPX U Acircumflex -50
-KPX U Adieresis -50
-KPX U Aring -50
-KPX U Atilde -50
-KPX U comma -35
-KPX U m -28
-KPX U n -29
-KPX U p -32
-KPX U period -39
-KPX U r -41
-KPX Uacute A -50
-KPX Uacute comma -35
-KPX Uacute m -28
-KPX Uacute n -29
-KPX Uacute p -32
-KPX Uacute period -39
-KPX Uacute r -41
-KPX Ucircumflex A -50
-KPX Udieresis A -50
-KPX Udieresis b 1
-KPX Udieresis comma -35
-KPX Udieresis m -28
-KPX Udieresis n -29
-KPX Udieresis p -32
-KPX Udieresis period -39
-KPX Udieresis r -41
-KPX Ugrave A -50
-KPX V A -66
-KPX V AE -102
-KPX V Aacute -66
-KPX V Acircumflex -66
-KPX V Adieresis -66
-KPX V Agrave -66
-KPX V Aring -66
-KPX V Atilde -66
-KPX V C -48
-KPX V G -42
-KPX V O -48
-KPX V Oacute -48
-KPX V Ocircumflex -48
-KPX V Odieresis -48
-KPX V Ograve -48
-KPX V Oslash -48
-KPX V Otilde -48
-KPX V S -15
-KPX V T 32
-KPX V a -67
-KPX V ae -72
-KPX V colon -82
-KPX V comma -76
-KPX V e -74
-KPX V g -84
-KPX V guillemotleft -82
-KPX V guilsinglleft -81
-KPX V hyphen -45
-KPX V i -16
-KPX V o -70
-KPX V oslash -72
-KPX V period -80
-KPX V r -45
-KPX V semicolon -79
-KPX V u -40
-KPX V y -16
-KPX W A -57
-KPX W AE -85
-KPX W Aacute -57
-KPX W Acircumflex -57
-KPX W Adieresis -57
-KPX W Agrave -57
-KPX W Aring -57
-KPX W Atilde -57
-KPX W C -39
-KPX W G -33
-KPX W O -39
-KPX W Oacute -39
-KPX W Ocircumflex -39
-KPX W Odieresis -39
-KPX W Ograve -39
-KPX W Oslash -39
-KPX W Otilde -39
-KPX W S -17
-KPX W T 30
-KPX W a -53
-KPX W ae -58
-KPX W colon -77
-KPX W comma -58
-KPX W e -60
-KPX W g -75
-KPX W guillemotleft -68
-KPX W guilsinglleft -67
-KPX W hyphen -32
-KPX W i -18
-KPX W o -56
-KPX W oslash -58
-KPX W period -62
-KPX W r -40
-KPX W semicolon -74
-KPX W u -35
-KPX W y -11
-KPX X C -50
-KPX X O -44
-KPX X Odieresis -44
-KPX X Q -42
-KPX X a -3
-KPX X e -15
-KPX X hyphen -41
-KPX X o -15
-KPX X u -7
-KPX X y -67
-KPX Y A -27
-KPX Y AE -39
-KPX Y Aacute -27
-KPX Y Acircumflex -27
-KPX Y Adieresis -27
-KPX Y Agrave -27
-KPX Y Aring -27
-KPX Y Atilde -27
-KPX Y C -52
-KPX Y G -45
-KPX Y O -52
-KPX Y Oacute -52
-KPX Y Ocircumflex -52
-KPX Y Odieresis -52
-KPX Y Ograve -52
-KPX Y Oslash -52
-KPX Y Otilde -52
-KPX Y S -15
-KPX Y T 32
-KPX Y a -72
-KPX Y ae -75
-KPX Y colon -78
-KPX Y comma -64
-KPX Y e -78
-KPX Y g -94
-KPX Y guillemotleft -93
-KPX Y guilsinglleft -92
-KPX Y hyphen -60
-KPX Y i -16
-KPX Y o -75
-KPX Y oslash -77
-KPX Y p -52
-KPX Y period -65
-KPX Y semicolon -86
-KPX Y u -58
-KPX Y v -32
-KPX Z v -12
-KPX Z y -28
-KPX a j -22
-KPX a quoteright -28
-KPX a v 1
-KPX a w 4
-KPX a y 2
-KPX aacute v 1
-KPX aacute w 4
-KPX aacute y 2
-KPX adieresis v 1
-KPX adieresis w 4
-KPX adieresis y 2
-KPX ae v 2
-KPX ae w 5
-KPX ae y 6
-KPX agrave v 1
-KPX agrave w 4
-KPX agrave y 2
-KPX aring v 1
-KPX aring w 4
-KPX aring y 2
-KPX b v -10
-KPX b w -7
-KPX b y -3
-KPX c h -30
-KPX c k -29
-KPX comma one -40
-KPX comma quotedblright -39
-KPX comma quoteright -39
-KPX e quoteright -21
-KPX e t -16
-KPX e v 0
-KPX e w 2
-KPX e x -10
-KPX e y 4
-KPX eacute v 0
-KPX eacute w 2
-KPX eacute y 4
-KPX ecircumflex v 0
-KPX ecircumflex w 2
-KPX ecircumflex y 4
-KPX eight four 13
-KPX eight one -50
-KPX eight seven -1
-KPX f a -26
-KPX f aacute -27
-KPX f adieresis -2
-KPX f ae -30
-KPX f aring -17
-KPX f e -32
-KPX f eacute -34
-KPX f f 30
-KPX f i 17
-KPX f j 13
-KPX f l 42
-KPX f o -29
-KPX f oacute -30
-KPX f odieresis -2
-KPX f oe -24
-KPX f oslash -31
-KPX f quoteright 18
-KPX f s -20
-KPX f t 18
-KPX five four -5
-KPX five one -71
-KPX five seven -28
-KPX four four 12
-KPX four one -69
-KPX four seven -27
-KPX g a -41
-KPX g adieresis -42
-KPX g ae -46
-KPX g aring -42
-KPX g e -45
-KPX g eacute -45
-KPX g l -46
-KPX g oacute -41
-KPX g odieresis -41
-KPX g r -21
-KPX guillemotright A -25
-KPX guillemotright AE -51
-KPX guillemotright Aacute -25
-KPX guillemotright Adieresis -25
-KPX guillemotright Aring -25
-KPX guillemotright T -77
-KPX guillemotright V -76
-KPX guillemotright W -67
-KPX guillemotright Y -81
-KPX guilsinglright A -24
-KPX guilsinglright AE -50
-KPX guilsinglright Aacute -24
-KPX guilsinglright Adieresis -24
-KPX guilsinglright Aring -24
-KPX guilsinglright T -76
-KPX guilsinglright V -75
-KPX guilsinglright W -66
-KPX guilsinglright Y -80
-KPX h quoteright -31
-KPX h y -4
-KPX hyphen A 3
-KPX hyphen AE -23
-KPX hyphen Aacute 3
-KPX hyphen Adieresis 3
-KPX hyphen Aring 3
-KPX hyphen T -46
-KPX hyphen V -43
-KPX hyphen W -34
-KPX hyphen Y -53
-KPX i T -10
-KPX i j -31
-KPX k a 12
-KPX k aacute 12
-KPX k adieresis 12
-KPX k ae 9
-KPX k aring 12
-KPX k comma 27
-KPX k e 5
-KPX k eacute 5
-KPX k g -27
-KPX k hyphen -27
-KPX k o 6
-KPX k oacute 6
-KPX k odieresis 6
-KPX k period 26
-KPX k s 7
-KPX k u 8
-KPX k udieresis 8
-KPX l v -12
-KPX l y -11
-KPX m p -4
-KPX m v -6
-KPX m w -4
-KPX m y -3
-KPX n T -41
-KPX n p -7
-KPX n quoteright -34
-KPX n v -10
-KPX n w -7
-KPX n y -6
-KPX nine four 2
-KPX nine one -64
-KPX nine seven -5
-KPX o T -63
-KPX o quoteright -24
-KPX o t -15
-KPX o v -18
-KPX o w -15
-KPX o x -33
-KPX o y -10
-KPX oacute v -18
-KPX oacute w -15
-KPX oacute y -10
-KPX ocircumflex t -16
-KPX odieresis t -16
-KPX odieresis v -18
-KPX odieresis w -15
-KPX odieresis x -33
-KPX odieresis y -10
-KPX ograve v -18
-KPX ograve w -15
-KPX ograve y -10
-KPX one comma -52
-KPX one eight -57
-KPX one five -55
-KPX one four -69
-KPX one nine -61
-KPX one one -69
-KPX one period -56
-KPX one seven -60
-KPX one six -50
-KPX one three -55
-KPX one two -50
-KPX one zero -41
-KPX p t -14
-KPX p y -4
-KPX period one -39
-KPX period quotedblright -38
-KPX period quoteright -38
-KPX q c -13
-KPX q u -11
-KPX quotedblbase A 1
-KPX quotedblbase AE -13
-KPX quotedblbase T -64
-KPX quotedblbase V -96
-KPX quotedblbase W -84
-KPX quotedblbase Y -69
-KPX quotedblleft A -88
-KPX quotedblleft AE -141
-KPX quotedblleft Aacute -88
-KPX quotedblleft Adieresis -88
-KPX quotedblleft Aring -88
-KPX quotedblleft T -19
-KPX quotedblleft V -17
-KPX quotedblleft W -15
-KPX quotedblleft Y -25
-KPX quotedblright A -94
-KPX quotedblright AE -147
-KPX quotedblright Aacute -94
-KPX quotedblright Adieresis -94
-KPX quotedblright Aring -94
-KPX quotedblright T -21
-KPX quotedblright V -22
-KPX quotedblright W -19
-KPX quotedblright Y -30
-KPX quoteleft A -78
-KPX quoteleft AE -131
-KPX quoteleft Aacute -78
-KPX quoteleft Adieresis -78
-KPX quoteleft Aring -78
-KPX quoteleft T -9
-KPX quoteleft V -8
-KPX quoteleft W -5
-KPX quoteleft Y -15
-KPX quoteright A -87
-KPX quoteright AE -140
-KPX quoteright Aacute -87
-KPX quoteright Adieresis -87
-KPX quoteright Aring -87
-KPX quoteright comma -73
-KPX quoteright d -79
-KPX quoteright o -78
-KPX quoteright period -78
-KPX quoteright r -57
-KPX quoteright s -63
-KPX quoteright t -49
-KPX quoteright v -28
-KPX quoteright w -26
-KPX quoteright y -28
-KPX r a -29
-KPX r aacute -29
-KPX r acircumflex -29
-KPX r adieresis -29
-KPX r ae -36
-KPX r agrave -29
-KPX r aring -29
-KPX r c -26
-KPX r ccedilla -17
-KPX r colon -28
-KPX r comma -68
-KPX r d -31
-KPX r e -35
-KPX r eacute -35
-KPX r ecircumflex -35
-KPX r egrave -35
-KPX r f 23
-KPX r g -21
-KPX r h -17
-KPX r hyphen -52
-KPX r i 8
-KPX r j 4
-KPX r k -15
-KPX r l -21
-KPX r m 17
-KPX r n 16
-KPX r o -28
-KPX r oacute -28
-KPX r ocircumflex -28
-KPX r odieresis -28
-KPX r oe -23
-KPX r ograve -28
-KPX r oslash -29
-KPX r p 13
-KPX r period -72
-KPX r q -31
-KPX r quoteright -4
-KPX r r 4
-KPX r s -17
-KPX r semicolon -28
-KPX r t 12
-KPX r u 11
-KPX r v 30
-KPX r w 32
-KPX r x 7
-KPX r y 33
-KPX r z 0
-KPX s quoteright -20
-KPX s t -12
-KPX seven colon -88
-KPX seven comma -79
-KPX seven eight -32
-KPX seven five -53
-KPX seven four -65
-KPX seven one -47
-KPX seven period -83
-KPX seven seven -11
-KPX seven six -37
-KPX seven three -42
-KPX seven two -13
-KPX six four 17
-KPX six one -64
-KPX six seven -37
-KPX t S -9
-KPX t a -6
-KPX t aacute -6
-KPX t adieresis -6
-KPX t ae -10
-KPX t aring -6
-KPX t colon -29
-KPX t e -13
-KPX t eacute -13
-KPX t h -11
-KPX t o -11
-KPX t oacute -11
-KPX t odieresis -11
-KPX t quoteright -19
-KPX t semicolon -26
-KPX three four -9
-KPX three one -76
-KPX three seven -15
-KPX two four -12
-KPX two one -45
-KPX two seven -22
-KPX u quoteright -31
-KPX v a -24
-KPX v aacute -26
-KPX v acircumflex -26
-KPX v adieresis -26
-KPX v ae -29
-KPX v agrave -26
-KPX v aring -26
-KPX v atilde -26
-KPX v c -26
-KPX v colon -48
-KPX v comma -46
-KPX v e -30
-KPX v eacute -32
-KPX v ecircumflex -32
-KPX v egrave -32
-KPX v g -36
-KPX v hyphen 0
-KPX v l -29
-KPX v o -26
-KPX v oacute -28
-KPX v odieresis -28
-KPX v ograve -28
-KPX v oslash -29
-KPX v period -51
-KPX v s -30
-KPX v semicolon -48
-KPX w a -26
-KPX w aacute -28
-KPX w acircumflex -28
-KPX w adieresis -28
-KPX w ae -31
-KPX w agrave -28
-KPX w aring -28
-KPX w atilde -28
-KPX w c -28
-KPX w colon -49
-KPX w comma -47
-KPX w e -32
-KPX w eacute -34
-KPX w ecircumflex -34
-KPX w egrave -34
-KPX w g -38
-KPX w hyphen -4
-KPX w l -30
-KPX w o -28
-KPX w oacute -30
-KPX w odieresis -30
-KPX w ograve -30
-KPX w oslash -31
-KPX w period -51
-KPX w s -32
-KPX w semicolon -49
-KPX x a 6
-KPX x c 0
-KPX x e 0
-KPX x eacute 0
-KPX x o 1
-KPX x q 2
-KPX y a -12
-KPX y aacute -12
-KPX y acircumflex -12
-KPX y adieresis -12
-KPX y ae -17
-KPX y agrave -12
-KPX y aring -12
-KPX y atilde -12
-KPX y c -15
-KPX y colon -48
-KPX y comma -21
-KPX y e -19
-KPX y eacute -19
-KPX y ecircumflex -19
-KPX y egrave -19
-KPX y g -34
-KPX y hyphen 7
-KPX y l -18
-KPX y o -15
-KPX y oacute -15
-KPX y odieresis -15
-KPX y ograve -15
-KPX y oslash -16
-KPX y period -25
-KPX y s -19
-KPX y semicolon -45
-KPX zero four 14
-KPX zero one -50
-KPX zero seven -3
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n021023l.pfb b/Master/xemtex/gsfonts/n021023l.pfb
deleted file mode 100644
index 35a514c0ee0..00000000000
--- a/Master/xemtex/gsfonts/n021023l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021023l.pfm b/Master/xemtex/gsfonts/n021023l.pfm
deleted file mode 100644
index e357bd8a9d3..00000000000
--- a/Master/xemtex/gsfonts/n021023l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021024l.afm b/Master/xemtex/gsfonts/n021024l.afm
deleted file mode 100644
index 6652f8eed88..00000000000
--- a/Master/xemtex/gsfonts/n021024l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusRomNo9L-MediItal
-FullName Nimbus Roman No9 L Medium Italic
-FamilyName Nimbus Roman No9 L
-Weight Bold
-ItalicAngle -15.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -200 -324 996 964
-CapHeight 669
-XHeight 449
-Descender -205
-Ascender 699
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ;
-C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ;
-C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ;
-C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ;
-C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ;
-C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ;
-C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ;
-C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ;
-C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ;
-C 42 ; WX 500 ; N asterisk ; B 65 252 456 685 ;
-C 43 ; WX 570 ; N plus ; B 33 0 537 506 ;
-C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ;
-C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ;
-C 46 ; WX 250 ; N period ; B -9 -13 139 135 ;
-C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ;
-C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ;
-C 49 ; WX 500 ; N one ; B 5 0 419 683 ;
-C 50 ; WX 500 ; N two ; B -27 0 446 683 ;
-C 51 ; WX 500 ; N three ; B -15 -13 450 683 ;
-C 52 ; WX 500 ; N four ; B -15 0 503 683 ;
-C 53 ; WX 500 ; N five ; B -11 -13 487 669 ;
-C 54 ; WX 500 ; N six ; B 23 -15 509 679 ;
-C 55 ; WX 500 ; N seven ; B 52 0 525 669 ;
-C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ;
-C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ;
-C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ;
-C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ;
-C 60 ; WX 570 ; N less ; B 31 -12 539 518 ;
-C 61 ; WX 570 ; N equal ; B 33 107 537 399 ;
-C 62 ; WX 570 ; N greater ; B 31 -12 539 518 ;
-C 63 ; WX 500 ; N question ; B 79 -13 470 684 ;
-C 64 ; WX 832 ; N at ; B 63 -18 770 685 ;
-C 65 ; WX 667 ; N A ; B -67 0 593 683 ;
-C 66 ; WX 667 ; N B ; B -24 0 624 669 ;
-C 67 ; WX 667 ; N C ; B 32 -18 677 685 ;
-C 68 ; WX 722 ; N D ; B -46 0 685 669 ;
-C 69 ; WX 667 ; N E ; B -27 0 653 669 ;
-C 70 ; WX 667 ; N F ; B -13 0 660 669 ;
-C 71 ; WX 722 ; N G ; B 21 -18 706 685 ;
-C 72 ; WX 778 ; N H ; B -24 0 799 669 ;
-C 73 ; WX 389 ; N I ; B -32 0 406 669 ;
-C 74 ; WX 500 ; N J ; B -46 -99 524 669 ;
-C 75 ; WX 667 ; N K ; B -21 0 702 669 ;
-C 76 ; WX 611 ; N L ; B -22 0 590 669 ;
-C 77 ; WX 889 ; N M ; B -29 -12 917 669 ;
-C 78 ; WX 722 ; N N ; B -27 -15 748 669 ;
-C 79 ; WX 722 ; N O ; B 27 -18 691 685 ;
-C 80 ; WX 611 ; N P ; B -27 0 613 669 ;
-C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ;
-C 82 ; WX 667 ; N R ; B -29 0 623 669 ;
-C 83 ; WX 556 ; N S ; B 2 -18 526 685 ;
-C 84 ; WX 611 ; N T ; B 50 0 650 669 ;
-C 85 ; WX 722 ; N U ; B 67 -18 744 669 ;
-C 86 ; WX 667 ; N V ; B 65 -18 715 669 ;
-C 87 ; WX 889 ; N W ; B 65 -18 940 669 ;
-C 88 ; WX 667 ; N X ; B -24 0 694 669 ;
-C 89 ; WX 611 ; N Y ; B 73 0 659 669 ;
-C 90 ; WX 611 ; N Z ; B -11 0 590 669 ;
-C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ;
-C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ;
-C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ;
-C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ;
-C 97 ; WX 500 ; N a ; B -21 -14 455 462 ;
-C 98 ; WX 500 ; N b ; B -14 -13 444 699 ;
-C 99 ; WX 444 ; N c ; B -5 -13 392 462 ;
-C 100 ; WX 500 ; N d ; B -21 -13 517 699 ;
-C 101 ; WX 444 ; N e ; B 5 -13 398 462 ;
-C 102 ; WX 333 ; N f ; B -169 -205 446 698 ;
-C 103 ; WX 500 ; N g ; B -52 -203 478 462 ;
-C 104 ; WX 556 ; N h ; B -13 -9 498 699 ;
-C 105 ; WX 278 ; N i ; B 2 -9 263 685 ;
-C 106 ; WX 278 ; N j ; B -189 -207 279 685 ;
-C 107 ; WX 500 ; N k ; B -23 -8 483 699 ;
-C 108 ; WX 278 ; N l ; B 2 -9 290 699 ;
-C 109 ; WX 778 ; N m ; B -14 -9 722 462 ;
-C 110 ; WX 556 ; N n ; B -6 -9 493 462 ;
-C 111 ; WX 500 ; N o ; B -3 -13 441 462 ;
-C 112 ; WX 500 ; N p ; B -120 -205 446 462 ;
-C 113 ; WX 500 ; N q ; B 1 -205 471 462 ;
-C 114 ; WX 389 ; N r ; B -21 0 389 462 ;
-C 115 ; WX 389 ; N s ; B -19 -13 333 462 ;
-C 116 ; WX 278 ; N t ; B -11 -9 281 594 ;
-C 117 ; WX 556 ; N u ; B 15 -9 492 462 ;
-C 118 ; WX 444 ; N v ; B 16 -13 401 462 ;
-C 119 ; WX 667 ; N w ; B 16 -13 614 462 ;
-C 120 ; WX 500 ; N x ; B -46 -13 469 462 ;
-C 121 ; WX 444 ; N y ; B -94 -205 392 462 ;
-C 122 ; WX 389 ; N z ; B -43 -78 368 449 ;
-C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ;
-C 124 ; WX 220 ; N bar ; B 66 -18 154 685 ;
-C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ;
-C 126 ; WX 570 ; N asciitilde ; B 54 175 516 331 ;
-C 161 ; WX 389 ; N exclamdown ; B 19 -205 320 494 ;
-C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ;
-C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ;
-C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ;
-C 165 ; WX 500 ; N yen ; B 33 0 628 669 ;
-C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ;
-C 167 ; WX 500 ; N section ; B 36 -143 459 685 ;
-C 168 ; WX 500 ; N currency ; B -26 34 526 586 ;
-C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ;
-C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ;
-C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ;
-C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ;
-C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ;
-C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ;
-C 177 ; WX 500 ; N endash ; B -40 178 477 269 ;
-C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ;
-C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ;
-C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ;
-C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ;
-C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ;
-C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ;
-C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ;
-C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ;
-C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ;
-C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ;
-C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ;
-C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ;
-C 193 ; WX 333 ; N grave ; B 85 516 297 697 ;
-C 194 ; WX 333 ; N acute ; B 139 516 379 697 ;
-C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ;
-C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ;
-C 197 ; WX 333 ; N macron ; B 51 553 393 623 ;
-C 198 ; WX 333 ; N breve ; B 71 516 387 678 ;
-C 199 ; WX 333 ; N dotaccent ; B 163 525 293 655 ;
-C 200 ; WX 333 ; N dieresis ; B 55 525 397 655 ;
-C 202 ; WX 333 ; N ring ; B 127 540 340 754 ;
-C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ;
-C 206 ; WX 333 ; N ogonek ; B -40 -173 189 44 ;
-C 207 ; WX 333 ; N caron ; B 79 516 411 690 ;
-C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ;
-C 225 ; WX 944 ; N AE ; B -64 0 918 669 ;
-C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ;
-C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ;
-C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ;
-C 234 ; WX 944 ; N OE ; B 23 -9 946 677 ;
-C 235 ; WX 300 ; N ordmasculine ; B 56 400 350 685 ;
-C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ;
-C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ;
-C 248 ; WX 278 ; N lslash ; B -13 -9 301 699 ;
-C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ;
-C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ;
-C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ;
-C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ;
-C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ;
-C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ;
-C -1 ; WX 611 ; N Tcaron ; B 50 0 650 900 ;
-C -1 ; WX 556 ; N Scaron ; B 2 -18 526 897 ;
-C -1 ; WX 667 ; N Rcaron ; B -29 0 623 900 ;
-C -1 ; WX 667 ; N Racute ; B -29 0 623 907 ;
-C -1 ; WX 556 ; N Sacute ; B 2 -18 526 907 ;
-C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ;
-C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ;
-C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 693 907 ;
-C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 907 ;
-C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ;
-C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ;
-C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ;
-C -1 ; WX 611 ; N Zacute ; B -11 0 590 907 ;
-C -1 ; WX 722 ; N Uring ; B 67 -18 744 964 ;
-C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ;
-C -1 ; WX 444 ; N eogonek ; B 5 -173 404 462 ;
-C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ;
-C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ;
-C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ;
-C -1 ; WX 611 ; N Thorn ; B -27 0 574 669 ;
-C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ;
-C -1 ; WX 444 ; N edieresis ; B 5 -13 443 655 ;
-C -1 ; WX 600 ; N dcaron ; B -21 -13 664 699 ;
-C -1 ; WX 444 ; N ccedilla ; B -24 -218 392 462 ;
-C -1 ; WX 444 ; N ccaron ; B -5 -13 468 690 ;
-C -1 ; WX 444 ; N cacute ; B -5 -13 444 697 ;
-C -1 ; WX 500 ; N aogonek ; B -21 -173 500 462 ;
-C -1 ; WX 500 ; N aring ; B -21 -14 455 754 ;
-C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ;
-C -1 ; WX 500 ; N abreve ; B -21 -14 470 678 ;
-C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ;
-C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ;
-C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ;
-C -1 ; WX 500 ; N adieresis ; B -21 -14 471 655 ;
-C -1 ; WX 722 ; N Uogonek ; B 67 -173 744 669 ;
-C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ;
-C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ;
-C -1 ; WX 556 ; N udieresis ; B 15 -9 494 655 ;
-C -1 ; WX 345 ; N tcaron ; B -11 -9 409 685 ;
-C -1 ; WX 389 ; N scommaaccent ; B -26 -324 333 462 ;
-C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ;
-C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ;
-C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ;
-C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ;
-C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 865 ;
-C -1 ; WX 389 ; N scaron ; B -19 -13 439 690 ;
-C -1 ; WX 667 ; N Amacron ; B -67 0 593 833 ;
-C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 50 -324 650 669 ;
-C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ;
-C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ;
-C -1 ; WX 667 ; N Emacron ; B -27 0 653 833 ;
-C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ;
-C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ;
-C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ;
-C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ;
-C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 900 ;
-C -1 ; WX 722 ; N Nacute ; B -27 -15 748 907 ;
-C -1 ; WX 611 ; N Lcaron ; B -22 0 651 685 ;
-C -1 ; WX 611 ; N Lacute ; B -22 0 590 907 ;
-C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 865 ;
-C -1 ; WX 389 ; N racute ; B -21 0 407 697 ;
-C -1 ; WX 389 ; N Icircumflex ; B -32 0 420 897 ;
-C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ;
-C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ;
-C -1 ; WX 500 ; N Euro ; B 53 -5 666 689 ;
-C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ;
-C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ;
-C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ;
-C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ;
-C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ;
-C -1 ; WX 389 ; N Iacute ; B -32 0 407 907 ;
-C -1 ; WX 389 ; N Imacron ; B -32 0 461 833 ;
-C -1 ; WX 389 ; N Iogonek ; B -32 -173 406 669 ;
-C -1 ; WX 389 ; N Idieresis ; B -32 0 445 862 ;
-C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 888 ;
-C -1 ; WX 722 ; N Umacron ; B 67 -18 744 833 ;
-C -1 ; WX 667 ; N Kcommaaccent ; B -21 -324 702 669 ;
-C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ;
-C -1 ; WX 556 ; N Scommaaccent ; B 2 -324 526 685 ;
-C -1 ; WX 667 ; N Eogonek ; B -27 -173 667 669 ;
-C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ;
-C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 865 ;
-C -1 ; WX 278 ; N iogonek ; B 2 -173 278 685 ;
-C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 765 ;
-C -1 ; WX 500 ; N odieresis ; B -3 -13 466 655 ;
-C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ;
-C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ;
-C -1 ; WX 667 ; N Ecaron ; B -27 0 653 900 ;
-C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ;
-C -1 ; WX 389 ; N scedilla ; B -40 -218 333 462 ;
-C -1 ; WX 389 ; N rcaron ; B -21 0 439 690 ;
-C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ;
-C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ;
-C -1 ; WX 722 ; N Gcommaaccent ; B 21 -324 706 685 ;
-C -1 ; WX 667 ; N Rcommaaccent ; B -29 -324 623 669 ;
-C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ;
-C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ;
-C -1 ; WX 556 ; N uogonek ; B 15 -173 556 462 ;
-C -1 ; WX 556 ; N umacron ; B 15 -9 505 623 ;
-C -1 ; WX 722 ; N Dcaron ; B -46 0 685 900 ;
-C -1 ; WX 382 ; N lcaron ; B 2 -9 446 699 ;
-C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 900 ;
-C -1 ; WX 667 ; N Cacute ; B 32 -18 677 907 ;
-C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ;
-C -1 ; WX 400 ; N degree ; B 83 397 369 683 ;
-C -1 ; WX 667 ; N Aogonek ; B -67 -173 729 683 ;
-C -1 ; WX 606 ; N minus ; B 51 209 555 297 ;
-C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ;
-C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ;
-C -1 ; WX 667 ; N Aring ; B -67 0 593 950 ;
-C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ;
-C -1 ; WX 389 ; N rcommaaccent ; B -80 -324 389 462 ;
-C -1 ; WX 278 ; N lacute ; B 2 -9 392 907 ;
-C -1 ; WX 500 ; N omacron ; B -3 -13 477 623 ;
-C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ;
-C -1 ; WX 278 ; N icircumflex ; B -2 -9 325 690 ;
-C -1 ; WX 278 ; N igrave ; B 2 -9 260 697 ;
-C -1 ; WX 556 ; N ncommaaccent ; B -6 -324 493 462 ;
-C -1 ; WX 278 ; N lcommaaccent ; B -81 -324 290 699 ;
-C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ;
-C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ;
-C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ;
-C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ;
-C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ;
-C -1 ; WX 667 ; N Abreve ; B -67 0 593 888 ;
-C -1 ; WX 500 ; N kcommaaccent ; B -23 -324 483 699 ;
-C -1 ; WX 722 ; N Omacron ; B 27 -18 691 833 ;
-C -1 ; WX 278 ; N imacron ; B 2 -9 366 623 ;
-C -1 ; WX 444 ; N emacron ; B 5 -13 449 623 ;
-C -1 ; WX 500 ; N amacron ; B -21 -14 477 623 ;
-C -1 ; WX 278 ; N tcommaaccent ; B -81 -324 281 594 ;
-C -1 ; WX 444 ; N ydieresis ; B -94 -205 438 655 ;
-C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ;
-C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ;
-C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ;
-C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ;
-C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ;
-C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ;
-C -1 ; WX 556 ; N uring ; B 15 -9 492 754 ;
-C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ;
-C -1 ; WX 333 ; N commaaccent ; B -54 -324 130 -40 ;
-C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ;
-C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ;
-C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ;
-C -1 ; WX 278 ; N idieresis ; B 2 -9 360 655 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 570 ; N notequal ; B 33 -13 537 519 ;
-C -1 ; WX 549 ; N radical ; B -17 -35 535 916 ;
-C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ;
-C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ;
-C -1 ; WX 570 ; N lessequal ; B 31 0 539 642 ;
-C -1 ; WX 570 ; N greaterequal ; B 31 0 539 642 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 16 -20 472 743 ;
-C -1 ; WX 722 ; N Ncommaaccent ; B -27 -324 748 669 ;
-C -1 ; WX 500 ; N dcroat ; B -21 -13 540 699 ;
-C -1 ; WX 220 ; N brokenbar ; B 66 -18 154 685 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B -22 -324 590 669 ;
-C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ;
-C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -61
-KPX A Ccedilla -63
-KPX A G -59
-KPX A O -53
-KPX A Odieresis -53
-KPX A Q -54
-KPX A T -33
-KPX A U -61
-KPX A Uacute -61
-KPX A Ucircumflex -61
-KPX A Udieresis -61
-KPX A Ugrave -61
-KPX A V -110
-KPX A W -107
-KPX A Y -44
-KPX A a -5
-KPX A b -1
-KPX A c -20
-KPX A ccedilla -29
-KPX A comma 0
-KPX A d -5
-KPX A e -25
-KPX A g -20
-KPX A guillemotleft -58
-KPX A guilsinglleft -68
-KPX A hyphen -23
-KPX A o -23
-KPX A period 1
-KPX A q -18
-KPX A quotedblright -78
-KPX A quoteright -101
-KPX A t -4
-KPX A u -18
-KPX A v -51
-KPX A w -56
-KPX A y -67
-KPX Aacute C -61
-KPX Aacute G -59
-KPX Aacute O -53
-KPX Aacute Q -54
-KPX Aacute T -33
-KPX Aacute U -61
-KPX Aacute V -110
-KPX Aacute W -107
-KPX Aacute Y -44
-KPX Aacute a -5
-KPX Aacute b -1
-KPX Aacute c -20
-KPX Aacute comma 0
-KPX Aacute d -5
-KPX Aacute e -25
-KPX Aacute g -20
-KPX Aacute guillemotleft -58
-KPX Aacute guilsinglleft -68
-KPX Aacute hyphen -23
-KPX Aacute o -23
-KPX Aacute period 1
-KPX Aacute q -18
-KPX Aacute quoteright -101
-KPX Aacute t -4
-KPX Aacute u -18
-KPX Aacute v -51
-KPX Aacute w -56
-KPX Aacute y -67
-KPX Acircumflex C -61
-KPX Acircumflex G -59
-KPX Acircumflex O -53
-KPX Acircumflex Q -54
-KPX Acircumflex T -33
-KPX Acircumflex U -61
-KPX Acircumflex V -110
-KPX Acircumflex W -107
-KPX Acircumflex Y -44
-KPX Acircumflex comma 0
-KPX Acircumflex period 1
-KPX Adieresis C -61
-KPX Adieresis G -59
-KPX Adieresis O -53
-KPX Adieresis Q -54
-KPX Adieresis T -33
-KPX Adieresis U -61
-KPX Adieresis V -110
-KPX Adieresis W -107
-KPX Adieresis Y -44
-KPX Adieresis a -5
-KPX Adieresis b -1
-KPX Adieresis c -20
-KPX Adieresis comma 0
-KPX Adieresis d -5
-KPX Adieresis g -20
-KPX Adieresis guillemotleft -58
-KPX Adieresis guilsinglleft -68
-KPX Adieresis hyphen -23
-KPX Adieresis o -23
-KPX Adieresis period 1
-KPX Adieresis q -18
-KPX Adieresis quotedblright -78
-KPX Adieresis quoteright -101
-KPX Adieresis t -4
-KPX Adieresis u -18
-KPX Adieresis v -51
-KPX Adieresis w -56
-KPX Adieresis y -67
-KPX Agrave C -61
-KPX Agrave G -59
-KPX Agrave O -53
-KPX Agrave Q -54
-KPX Agrave T -33
-KPX Agrave U -61
-KPX Agrave V -110
-KPX Agrave W -107
-KPX Agrave Y -44
-KPX Agrave comma 0
-KPX Agrave period 1
-KPX Aring C -61
-KPX Aring G -59
-KPX Aring O -53
-KPX Aring Q -54
-KPX Aring T -33
-KPX Aring U -61
-KPX Aring V -110
-KPX Aring W -107
-KPX Aring Y -44
-KPX Aring a -5
-KPX Aring b -1
-KPX Aring c -20
-KPX Aring comma 0
-KPX Aring d -5
-KPX Aring e -25
-KPX Aring g -20
-KPX Aring guillemotleft -58
-KPX Aring guilsinglleft -68
-KPX Aring hyphen -23
-KPX Aring o -23
-KPX Aring period 1
-KPX Aring q -18
-KPX Aring quotedblright -78
-KPX Aring quoteright -101
-KPX Aring t -4
-KPX Aring u -18
-KPX Aring v -51
-KPX Aring w -56
-KPX Aring y -67
-KPX Atilde C -61
-KPX Atilde G -59
-KPX Atilde O -53
-KPX Atilde Q -54
-KPX Atilde T -33
-KPX Atilde U -61
-KPX Atilde V -110
-KPX Atilde W -107
-KPX Atilde Y -44
-KPX Atilde comma 0
-KPX Atilde period 1
-KPX B A -34
-KPX B AE -40
-KPX B Aacute -34
-KPX B Acircumflex -34
-KPX B Adieresis -34
-KPX B Aring -34
-KPX B Atilde -34
-KPX B O -22
-KPX B OE -20
-KPX B Oacute -22
-KPX B Ocircumflex -22
-KPX B Odieresis -22
-KPX B Ograve -22
-KPX B Oslash -23
-KPX B V -46
-KPX B W -46
-KPX B Y -50
-KPX C A -24
-KPX C AE -31
-KPX C Aacute -24
-KPX C Adieresis -24
-KPX C Aring -24
-KPX C H -26
-KPX C K -28
-KPX C O -25
-KPX C Oacute -25
-KPX C Odieresis -25
-KPX Ccedilla A -30
-KPX D A -54
-KPX D Aacute -54
-KPX D Acircumflex -54
-KPX D Adieresis -54
-KPX D Agrave -54
-KPX D Aring -54
-KPX D Atilde -54
-KPX D J -67
-KPX D T -27
-KPX D V -60
-KPX D W -58
-KPX D X -64
-KPX D Y -64
-KPX F A -101
-KPX F Aacute -101
-KPX F Acircumflex -101
-KPX F Adieresis -101
-KPX F Agrave -101
-KPX F Aring -101
-KPX F Atilde -101
-KPX F J -88
-KPX F O -48
-KPX F Odieresis -48
-KPX F a -75
-KPX F aacute -75
-KPX F adieresis -48
-KPX F ae -83
-KPX F aring -75
-KPX F comma -96
-KPX F e -86
-KPX F eacute -86
-KPX F hyphen -54
-KPX F i -29
-KPX F j -34
-KPX F o -81
-KPX F oacute -82
-KPX F odieresis -45
-KPX F oe -86
-KPX F oslash -79
-KPX F period -98
-KPX F r -38
-KPX F u -42
-KPX G A -14
-KPX G AE -20
-KPX G Aacute -14
-KPX G Acircumflex -14
-KPX G Adieresis -14
-KPX G Agrave -14
-KPX G Aring -14
-KPX G Atilde -14
-KPX G T -42
-KPX G V -27
-KPX G W -27
-KPX G Y -31
-KPX J A -39
-KPX J AE -42
-KPX J Adieresis -39
-KPX J Aring -39
-KPX K C -51
-KPX K G -46
-KPX K O -43
-KPX K OE -42
-KPX K Oacute -43
-KPX K Odieresis -43
-KPX K S -1
-KPX K T 0
-KPX K a 3
-KPX K adieresis 3
-KPX K ae -4
-KPX K aring 3
-KPX K e -16
-KPX K hyphen -30
-KPX K o -13
-KPX K oacute -13
-KPX K odieresis -13
-KPX K u -8
-KPX K udieresis -8
-KPX K y -68
-KPX L A 28
-KPX L AE 25
-KPX L Aacute 28
-KPX L Adieresis 28
-KPX L Aring 28
-KPX L C 0
-KPX L Ccedilla 0
-KPX L G 4
-KPX L O 4
-KPX L Oacute 4
-KPX L Ocircumflex 4
-KPX L Odieresis 4
-KPX L Ograve 4
-KPX L Otilde 4
-KPX L S 1
-KPX L T -30
-KPX L U -17
-KPX L Udieresis -17
-KPX L V -77
-KPX L W -74
-KPX L Y -41
-KPX L hyphen 41
-KPX L quotedblright -45
-KPX L quoteright -67
-KPX L u 5
-KPX L udieresis 5
-KPX L y -23
-KPX N A -39
-KPX N AE -42
-KPX N Aacute -39
-KPX N Adieresis -39
-KPX N Aring -39
-KPX N C -32
-KPX N Ccedilla -30
-KPX N G -26
-KPX N O -32
-KPX N Oacute -32
-KPX N Odieresis -32
-KPX N a -25
-KPX N aacute -27
-KPX N adieresis -27
-KPX N ae -34
-KPX N aring -27
-KPX N comma -24
-KPX N e -37
-KPX N eacute -38
-KPX N o -32
-KPX N oacute -34
-KPX N odieresis -34
-KPX N oslash -32
-KPX N period -26
-KPX N u -33
-KPX N udieresis -33
-KPX O A -57
-KPX O AE -67
-KPX O Aacute -57
-KPX O Adieresis -57
-KPX O Aring -57
-KPX O T -18
-KPX O V -52
-KPX O W -52
-KPX O X -63
-KPX O Y -56
-KPX Oacute A -57
-KPX Oacute T -18
-KPX Oacute V -52
-KPX Oacute W -52
-KPX Oacute Y -56
-KPX Ocircumflex T -18
-KPX Ocircumflex V -52
-KPX Ocircumflex Y -56
-KPX Odieresis A -57
-KPX Odieresis T -18
-KPX Odieresis V -52
-KPX Odieresis W -52
-KPX Odieresis X -63
-KPX Odieresis Y -56
-KPX Ograve T -18
-KPX Ograve V -52
-KPX Ograve Y -56
-KPX Oslash A -57
-KPX Otilde T -18
-KPX Otilde V -52
-KPX Otilde Y -56
-KPX P A -89
-KPX P AE -104
-KPX P Aacute -89
-KPX P Adieresis -89
-KPX P Aring -89
-KPX P J -105
-KPX P a -50
-KPX P aacute -50
-KPX P adieresis -38
-KPX P ae -58
-KPX P aring -50
-KPX P comma -107
-KPX P e -57
-KPX P eacute -57
-KPX P hyphen -54
-KPX P o -52
-KPX P oacute -52
-KPX P odieresis -35
-KPX P oe -57
-KPX P oslash -47
-KPX P period -109
-KPX R C -33
-KPX R Ccedilla -32
-KPX R G -28
-KPX R O -34
-KPX R OE -32
-KPX R Oacute -34
-KPX R Odieresis -34
-KPX R T -24
-KPX R U -44
-KPX R Udieresis -44
-KPX R V -46
-KPX R W -46
-KPX R Y -40
-KPX R a -1
-KPX R aacute -1
-KPX R adieresis -1
-KPX R ae -9
-KPX R aring -1
-KPX R e -21
-KPX R eacute -21
-KPX R hyphen -30
-KPX R o -18
-KPX R oacute -18
-KPX R odieresis -18
-KPX R oe -23
-KPX R u -13
-KPX R uacute -13
-KPX R udieresis -13
-KPX R y -12
-KPX S A -11
-KPX S AE -17
-KPX S Aacute -11
-KPX S Adieresis -11
-KPX S Aring -11
-KPX S T -34
-KPX S V -20
-KPX S W -20
-KPX S Y -24
-KPX S t -6
-KPX T A -52
-KPX T AE -54
-KPX T Aacute -52
-KPX T Acircumflex -52
-KPX T Adieresis -52
-KPX T Agrave -52
-KPX T Aring -52
-KPX T Atilde -52
-KPX T C -15
-KPX T G -9
-KPX T J -63
-KPX T O -22
-KPX T OE -18
-KPX T Oacute -22
-KPX T Ocircumflex -22
-KPX T Odieresis -22
-KPX T Ograve -22
-KPX T Oslash -22
-KPX T Otilde -22
-KPX T S -16
-KPX T V 15
-KPX T W 15
-KPX T Y 11
-KPX T a -83
-KPX T ae -91
-KPX T c -89
-KPX T colon -98
-KPX T comma -77
-KPX T e -94
-KPX T g -95
-KPX T guillemotleft -110
-KPX T guilsinglleft -120
-KPX T hyphen -74
-KPX T i -19
-KPX T j -27
-KPX T o -90
-KPX T oslash -90
-KPX T period -79
-KPX T r -76
-KPX T s -78
-KPX T semicolon -98
-KPX T u -91
-KPX T v -89
-KPX T w -89
-KPX T y -86
-KPX U A -65
-KPX U AE -71
-KPX U Aacute -65
-KPX U Acircumflex -65
-KPX U Adieresis -65
-KPX U Aring -65
-KPX U Atilde -65
-KPX U comma -40
-KPX U m -35
-KPX U n -39
-KPX U p -30
-KPX U period -41
-KPX U r -32
-KPX Uacute A -65
-KPX Uacute comma -40
-KPX Uacute m -35
-KPX Uacute n -39
-KPX Uacute p -30
-KPX Uacute period -41
-KPX Uacute r -32
-KPX Ucircumflex A -65
-KPX Udieresis A -65
-KPX Udieresis b 1
-KPX Udieresis comma -40
-KPX Udieresis m -35
-KPX Udieresis n -39
-KPX Udieresis p -30
-KPX Udieresis period -41
-KPX Udieresis r -32
-KPX Ugrave A -65
-KPX V A -100
-KPX V AE -111
-KPX V Aacute -100
-KPX V Acircumflex -100
-KPX V Adieresis -100
-KPX V Agrave -100
-KPX V Aring -100
-KPX V Atilde -100
-KPX V C -60
-KPX V G -53
-KPX V O -64
-KPX V Oacute -64
-KPX V Ocircumflex -64
-KPX V Odieresis -64
-KPX V Ograve -64
-KPX V Oslash -64
-KPX V Otilde -64
-KPX V S -25
-KPX V T 7
-KPX V a -76
-KPX V ae -84
-KPX V colon -96
-KPX V comma -96
-KPX V e -87
-KPX V g -83
-KPX V guillemotleft -99
-KPX V guilsinglleft -109
-KPX V hyphen -62
-KPX V i -12
-KPX V o -83
-KPX V oslash -81
-KPX V period -97
-KPX V r -44
-KPX V semicolon -96
-KPX V u -47
-KPX V y -34
-KPX W A -83
-KPX W AE -87
-KPX W Aacute -83
-KPX W Acircumflex -83
-KPX W Adieresis -83
-KPX W Agrave -83
-KPX W Aring -83
-KPX W Atilde -83
-KPX W C -46
-KPX W G -41
-KPX W O -47
-KPX W Oacute -47
-KPX W Ocircumflex -47
-KPX W Odieresis -47
-KPX W Ograve -47
-KPX W Oslash -48
-KPX W Otilde -47
-KPX W S -24
-KPX W T 8
-KPX W a -51
-KPX W ae -60
-KPX W colon -78
-KPX W comma -62
-KPX W e -62
-KPX W g -63
-KPX W guillemotleft -74
-KPX W guilsinglleft -84
-KPX W hyphen -37
-KPX W i -11
-KPX W o -58
-KPX W oslash -57
-KPX W period -64
-KPX W r -34
-KPX W semicolon -79
-KPX W u -38
-KPX W y -25
-KPX X C -58
-KPX X O -56
-KPX X Odieresis -56
-KPX X Q -58
-KPX X a -9
-KPX X e -29
-KPX X hyphen -46
-KPX X o -26
-KPX X u -21
-KPX X y -81
-KPX Y A -45
-KPX Y AE -47
-KPX Y Aacute -45
-KPX Y Acircumflex -45
-KPX Y Adieresis -45
-KPX Y Agrave -45
-KPX Y Aring -45
-KPX Y Atilde -45
-KPX Y C -59
-KPX Y G -54
-KPX Y O -61
-KPX Y Oacute -61
-KPX Y Ocircumflex -61
-KPX Y Odieresis -61
-KPX Y Ograve -61
-KPX Y Oslash -61
-KPX Y Otilde -61
-KPX Y S -25
-KPX Y T 7
-KPX Y a -69
-KPX Y ae -77
-KPX Y colon -91
-KPX Y comma -67
-KPX Y e -80
-KPX Y g -81
-KPX Y guillemotleft -97
-KPX Y guilsinglleft -107
-KPX Y hyphen -63
-KPX Y i -12
-KPX Y o -76
-KPX Y oslash -75
-KPX Y p -54
-KPX Y period -69
-KPX Y semicolon -91
-KPX Y u -59
-KPX Y v -54
-KPX Z v -29
-KPX Z y -39
-KPX a j -2
-KPX a quoteright -22
-KPX a v -5
-KPX a w -5
-KPX a y -3
-KPX aacute v -5
-KPX aacute w -5
-KPX aacute y -3
-KPX adieresis v -5
-KPX adieresis w -5
-KPX adieresis y -3
-KPX ae v -5
-KPX ae w -5
-KPX ae y -8
-KPX agrave v -5
-KPX agrave w -5
-KPX agrave y -3
-KPX aring v -5
-KPX aring w -5
-KPX aring y -3
-KPX b v -12
-KPX b w -12
-KPX b y -17
-KPX c h -20
-KPX c k -16
-KPX comma one -26
-KPX comma quotedblright -1
-KPX comma quoteright -23
-KPX e quoteright -12
-KPX e t -3
-KPX e v -3
-KPX e w -3
-KPX e x -15
-KPX e y -6
-KPX eacute v -3
-KPX eacute w -3
-KPX eacute y -6
-KPX ecircumflex v -3
-KPX ecircumflex w -3
-KPX ecircumflex y -6
-KPX eight four -4
-KPX eight one -52
-KPX eight seven -13
-KPX f a -23
-KPX f aacute -24
-KPX f adieresis 17
-KPX f ae -32
-KPX f aring -20
-KPX f e -35
-KPX f eacute -36
-KPX f f 2
-KPX f i 20
-KPX f j 12
-KPX f l 43
-KPX f o -30
-KPX f oacute -31
-KPX f odieresis 20
-KPX f oe -35
-KPX f oslash -29
-KPX f quoteright 12
-KPX f s -14
-KPX f t 9
-KPX five four -13
-KPX five one -56
-KPX five seven -37
-KPX four four 1
-KPX four one -50
-KPX four seven -21
-KPX g a -25
-KPX g adieresis -25
-KPX g ae -34
-KPX g aring -25
-KPX g e -32
-KPX g eacute -32
-KPX g l -21
-KPX g oacute -27
-KPX g odieresis -27
-KPX g r 3
-KPX guillemotright A -30
-KPX guillemotright AE -39
-KPX guillemotright Aacute -30
-KPX guillemotright Adieresis -30
-KPX guillemotright Aring -30
-KPX guillemotright T -76
-KPX guillemotright V -79
-KPX guillemotright W -75
-KPX guillemotright Y -83
-KPX guilsinglright A -40
-KPX guilsinglright AE -49
-KPX guilsinglright Aacute -40
-KPX guilsinglright Adieresis -40
-KPX guilsinglright Aring -40
-KPX guilsinglright T -86
-KPX guilsinglright V -89
-KPX guilsinglright W -85
-KPX guilsinglright Y -93
-KPX h quoteright -32
-KPX h y -20
-KPX hyphen A -13
-KPX hyphen AE -22
-KPX hyphen Aacute -13
-KPX hyphen Adieresis -13
-KPX hyphen Aring -13
-KPX hyphen T -59
-KPX hyphen V -62
-KPX hyphen W -59
-KPX hyphen Y -69
-KPX i T -20
-KPX i j -5
-KPX k a 10
-KPX k aacute 10
-KPX k adieresis 10
-KPX k ae 2
-KPX k aring 10
-KPX k comma 19
-KPX k e -2
-KPX k eacute -2
-KPX k g -14
-KPX k hyphen 1
-KPX k o 1
-KPX k oacute 1
-KPX k odieresis 1
-KPX k period 17
-KPX k s 1
-KPX k u 2
-KPX k udieresis 2
-KPX l v -12
-KPX l y -8
-KPX m p -1
-KPX m v -16
-KPX m w -16
-KPX m y -16
-KPX n T -59
-KPX n p -4
-KPX n quoteright -32
-KPX n v -20
-KPX n w -20
-KPX n y -20
-KPX nine four -18
-KPX nine one -67
-KPX nine seven -12
-KPX o T -75
-KPX o quoteright -22
-KPX o t -2
-KPX o v -21
-KPX o w -21
-KPX o x -26
-KPX o y -29
-KPX oacute v -21
-KPX oacute w -21
-KPX oacute y -29
-KPX ocircumflex t -4
-KPX odieresis t -4
-KPX odieresis v -21
-KPX odieresis w -21
-KPX odieresis x -26
-KPX odieresis y -29
-KPX ograve v -21
-KPX ograve w -21
-KPX ograve y -29
-KPX one comma -38
-KPX one eight -56
-KPX one five -45
-KPX one four -75
-KPX one nine -40
-KPX one one -48
-KPX one period -39
-KPX one seven -65
-KPX one six -62
-KPX one three -43
-KPX one two -32
-KPX one zero -48
-KPX p t -2
-KPX p y -13
-KPX period one -32
-KPX period quotedblright -5
-KPX period quoteright -27
-KPX q c -6
-KPX q u -5
-KPX quotedblbase A 24
-KPX quotedblbase AE 19
-KPX quotedblbase T -37
-KPX quotedblbase V -79
-KPX quotedblbase W -74
-KPX quotedblbase Y -48
-KPX quotedblleft A -76
-KPX quotedblleft AE -98
-KPX quotedblleft Aacute -76
-KPX quotedblleft Adieresis -76
-KPX quotedblleft Aring -76
-KPX quotedblleft T -11
-KPX quotedblleft V 3
-KPX quotedblleft W 3
-KPX quotedblleft Y 0
-KPX quotedblright A -72
-KPX quotedblright AE -94
-KPX quotedblright Aacute -72
-KPX quotedblright Adieresis -72
-KPX quotedblright Aring -72
-KPX quotedblright T -1
-KPX quotedblright V 6
-KPX quotedblright W 6
-KPX quotedblright Y 2
-KPX quoteleft A -83
-KPX quoteleft AE -105
-KPX quoteleft Aacute -83
-KPX quoteleft Adieresis -83
-KPX quoteleft Aring -83
-KPX quoteleft T -18
-KPX quoteleft V -3
-KPX quoteleft W -3
-KPX quoteleft Y -7
-KPX quoteright A -94
-KPX quoteright AE -116
-KPX quoteright Aacute -94
-KPX quoteright Adieresis -94
-KPX quoteright Aring -94
-KPX quoteright comma -57
-KPX quoteright d -50
-KPX quoteright o -50
-KPX quoteright period -59
-KPX quoteright r -26
-KPX quoteright s -26
-KPX quoteright t -19
-KPX quoteright v -23
-KPX quoteright w -23
-KPX quoteright y -18
-KPX r a -13
-KPX r aacute -13
-KPX r acircumflex -13
-KPX r adieresis -13
-KPX r ae -22
-KPX r agrave -13
-KPX r aring -13
-KPX r c -15
-KPX r ccedilla -8
-KPX r colon -30
-KPX r comma -67
-KPX r d -14
-KPX r e -20
-KPX r eacute -20
-KPX r ecircumflex -20
-KPX r egrave -20
-KPX r f 8
-KPX r g -4
-KPX r h -16
-KPX r hyphen -13
-KPX r i 17
-KPX r j 12
-KPX r k -11
-KPX r l -12
-KPX r m 10
-KPX r n 6
-KPX r o -15
-KPX r oacute -15
-KPX r ocircumflex -15
-KPX r odieresis -15
-KPX r oe -19
-KPX r ograve -15
-KPX r oslash -12
-KPX r p 16
-KPX r period -69
-KPX r q -19
-KPX r quoteright 0
-KPX r r 14
-KPX r s 1
-KPX r semicolon -30
-KPX r t 12
-KPX r u 11
-KPX r v 20
-KPX r w 20
-KPX r x 7
-KPX r y 20
-KPX r z 10
-KPX s quoteright -22
-KPX s t -6
-KPX seven colon -90
-KPX seven comma -80
-KPX seven eight -46
-KPX seven five -60
-KPX seven four -79
-KPX seven one -43
-KPX seven period -81
-KPX seven seven -27
-KPX seven six -60
-KPX seven three -42
-KPX seven two -30
-KPX six four 2
-KPX six one -52
-KPX six seven -32
-KPX t S -11
-KPX t a 10
-KPX t aacute 10
-KPX t adieresis 10
-KPX t ae 2
-KPX t aring 10
-KPX t colon -22
-KPX t e -2
-KPX t eacute -2
-KPX t h -5
-KPX t o 1
-KPX t oacute 1
-KPX t odieresis 1
-KPX t quoteright -19
-KPX t semicolon -23
-KPX three four -15
-KPX three one -67
-KPX three seven -27
-KPX two four -8
-KPX two one -48
-KPX two seven -27
-KPX u quoteright -33
-KPX v a -20
-KPX v aacute -20
-KPX v acircumflex -20
-KPX v adieresis -20
-KPX v ae -28
-KPX v agrave -20
-KPX v aring -20
-KPX v atilde -20
-KPX v c -24
-KPX v colon -51
-KPX v comma -51
-KPX v e -28
-KPX v eacute -28
-KPX v ecircumflex -28
-KPX v egrave -28
-KPX v g -20
-KPX v hyphen -1
-KPX v l -24
-KPX v o -24
-KPX v oacute -24
-KPX v odieresis -24
-KPX v ograve -24
-KPX v oslash -22
-KPX v period -51
-KPX v s -19
-KPX v semicolon -51
-KPX w a -24
-KPX w aacute -24
-KPX w acircumflex -24
-KPX w adieresis -24
-KPX w ae -32
-KPX w agrave -24
-KPX w aring -24
-KPX w atilde -24
-KPX w c -30
-KPX w colon -56
-KPX w comma -53
-KPX w e -34
-KPX w eacute -34
-KPX w ecircumflex -34
-KPX w egrave -34
-KPX w g -26
-KPX w hyphen -7
-KPX w l -28
-KPX w o -30
-KPX w oacute -30
-KPX w odieresis -30
-KPX w ograve -30
-KPX w oslash -28
-KPX w period -53
-KPX w s -24
-KPX w semicolon -56
-KPX x a -1
-KPX x c -10
-KPX x e -14
-KPX x eacute -14
-KPX x o -11
-KPX x q -12
-KPX y a -11
-KPX y aacute -12
-KPX y acircumflex -12
-KPX y adieresis -12
-KPX y ae -19
-KPX y agrave -12
-KPX y aring -12
-KPX y atilde -12
-KPX y c -17
-KPX y colon -43
-KPX y comma -25
-KPX y e -22
-KPX y eacute -23
-KPX y ecircumflex -23
-KPX y egrave -23
-KPX y g -23
-KPX y hyphen 2
-KPX y l -16
-KPX y o -17
-KPX y oacute -19
-KPX y odieresis -19
-KPX y ograve -19
-KPX y oslash -17
-KPX y period -26
-KPX y s -13
-KPX y semicolon -44
-KPX zero four -1
-KPX zero one -50
-KPX zero seven -12
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n021024l.pfb b/Master/xemtex/gsfonts/n021024l.pfb
deleted file mode 100644
index cf7585990ac..00000000000
--- a/Master/xemtex/gsfonts/n021024l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n021024l.pfm b/Master/xemtex/gsfonts/n021024l.pfm
deleted file mode 100644
index ff4e7bf9650..00000000000
--- a/Master/xemtex/gsfonts/n021024l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022003l.afm b/Master/xemtex/gsfonts/n022003l.afm
deleted file mode 100644
index 8cd66bd068a..00000000000
--- a/Master/xemtex/gsfonts/n022003l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusMonL-Regu
-FullName Nimbus Mono L Regular
-FamilyName Nimbus Mono L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -12 -237 650 811
-CapHeight 563
-XHeight 417
-Descender -186
-Ascender 604
-StartCharMetrics 316
-C 32 ; WX 600 ; N space ; B 295 0 295 0 ;
-C 33 ; WX 600 ; N exclam ; B 240 -15 360 618 ;
-C 34 ; WX 600 ; N quotedbl ; B 146 315 454 604 ;
-C 35 ; WX 600 ; N numbersign ; B 92 -62 508 647 ;
-C 36 ; WX 600 ; N dollar ; B 113 -92 487 655 ;
-C 37 ; WX 600 ; N percent ; B 87 -12 513 611 ;
-C 38 ; WX 600 ; N ampersand ; B 105 -16 478 519 ;
-C 39 ; WX 600 ; N quoteright ; B 135 314 340 604 ;
-C 40 ; WX 600 ; N parenleft ; B 294 -124 458 604 ;
-C 41 ; WX 600 ; N parenright ; B 147 -124 311 604 ;
-C 42 ; WX 600 ; N asterisk ; B 113 250 487 604 ;
-C 43 ; WX 600 ; N plus ; B 72 32 528 530 ;
-C 44 ; WX 600 ; N comma ; B 135 -145 340 145 ;
-C 45 ; WX 600 ; N hyphen ; B 72 258 528 299 ;
-C 46 ; WX 600 ; N period ; B 226 -15 374 116 ;
-C 47 ; WX 600 ; N slash ; B 113 -81 487 668 ;
-C 48 ; WX 600 ; N zero ; B 113 -15 487 618 ;
-C 49 ; WX 600 ; N one ; B 113 0 487 612 ;
-C 50 ; WX 600 ; N two ; B 84 0 478 618 ;
-C 51 ; WX 600 ; N three ; B 96 -15 499 618 ;
-C 52 ; WX 600 ; N four ; B 105 0 478 604 ;
-C 53 ; WX 600 ; N five ; B 96 -15 499 604 ;
-C 54 ; WX 600 ; N six ; B 136 -15 510 618 ;
-C 55 ; WX 600 ; N seven ; B 105 -1 478 604 ;
-C 56 ; WX 600 ; N eight ; B 113 -15 487 618 ;
-C 57 ; WX 600 ; N nine ; B 136 -15 510 618 ;
-C 58 ; WX 600 ; N colon ; B 226 -15 374 417 ;
-C 59 ; WX 600 ; N semicolon ; B 139 -145 350 417 ;
-C 60 ; WX 600 ; N less ; B 72 44 522 518 ;
-C 61 ; WX 600 ; N equal ; B 51 190 549 375 ;
-C 62 ; WX 600 ; N greater ; B 78 44 528 518 ;
-C 63 ; WX 600 ; N question ; B 134 -15 487 577 ;
-C 64 ; WX 600 ; N at ; B 105 -62 478 624 ;
-C 65 ; WX 600 ; N A ; B 9 0 591 563 ;
-C 66 ; WX 600 ; N B ; B 43 0 541 563 ;
-C 67 ; WX 600 ; N C ; B 63 -16 534 576 ;
-C 68 ; WX 600 ; N D ; B 43 0 520 563 ;
-C 69 ; WX 600 ; N E ; B 43 0 520 563 ;
-C 70 ; WX 600 ; N F ; B 43 0 520 563 ;
-C 71 ; WX 600 ; N G ; B 63 -16 562 576 ;
-C 72 ; WX 600 ; N H ; B 53 0 551 563 ;
-C 73 ; WX 600 ; N I ; B 113 0 487 563 ;
-C 74 ; WX 600 ; N J ; B 84 -16 583 563 ;
-C 75 ; WX 600 ; N K ; B 43 0 572 563 ;
-C 76 ; WX 600 ; N L ; B 63 0 541 563 ;
-C 77 ; WX 600 ; N M ; B 11 0 593 563 ;
-C 78 ; WX 600 ; N N ; B 22 0 562 563 ;
-C 79 ; WX 600 ; N O ; B 51 -16 549 576 ;
-C 80 ; WX 600 ; N P ; B 43 0 499 563 ;
-C 81 ; WX 600 ; N Q ; B 51 -115 549 576 ;
-C 82 ; WX 600 ; N R ; B 43 0 589 563 ;
-C 83 ; WX 600 ; N S ; B 92 -16 508 576 ;
-C 84 ; WX 600 ; N T ; B 72 0 528 563 ;
-C 85 ; WX 600 ; N U ; B 40 -16 560 563 ;
-C 86 ; WX 600 ; N V ; B 9 0 591 563 ;
-C 87 ; WX 600 ; N W ; B 20 0 580 563 ;
-C 88 ; WX 600 ; N X ; B 40 0 560 563 ;
-C 89 ; WX 600 ; N Y ; B 51 0 549 563 ;
-C 90 ; WX 600 ; N Z ; B 103 0 497 563 ;
-C 91 ; WX 600 ; N bracketleft ; B 280 -124 445 604 ;
-C 92 ; WX 600 ; N backslash ; B 113 -81 487 668 ;
-C 93 ; WX 600 ; N bracketright ; B 155 -124 320 604 ;
-C 94 ; WX 600 ; N asciicircum ; B 113 354 487 615 ;
-C 95 ; WX 600 ; N underscore ; B -12 -125 612 -75 ;
-C 96 ; WX 600 ; N quoteleft ; B 260 343 465 604 ;
-C 97 ; WX 600 ; N a ; B 72 -16 541 431 ;
-C 98 ; WX 600 ; N b ; B 22 -16 541 604 ;
-C 99 ; WX 600 ; N c ; B 84 -16 535 431 ;
-C 100 ; WX 600 ; N d ; B 63 -16 583 604 ;
-C 101 ; WX 600 ; N e ; B 63 -16 520 431 ;
-C 102 ; WX 600 ; N f ; B 105 0 541 604 ;
-C 103 ; WX 600 ; N g ; B 63 -186 562 431 ;
-C 104 ; WX 600 ; N h ; B 43 0 551 604 ;
-C 105 ; WX 600 ; N i ; B 92 0 508 624 ;
-C 106 ; WX 600 ; N j ; B 147 -186 458 624 ;
-C 107 ; WX 600 ; N k ; B 63 0 541 604 ;
-C 108 ; WX 600 ; N l ; B 92 0 508 604 ;
-C 109 ; WX 600 ; N m ; B 11 0 593 431 ;
-C 110 ; WX 600 ; N n ; B 53 0 541 431 ;
-C 111 ; WX 600 ; N o ; B 72 -16 528 431 ;
-C 112 ; WX 600 ; N p ; B 22 -186 541 431 ;
-C 113 ; WX 600 ; N q ; B 63 -186 583 431 ;
-C 114 ; WX 600 ; N r ; B 84 0 541 427 ;
-C 115 ; WX 600 ; N s ; B 103 -16 497 431 ;
-C 116 ; WX 600 ; N t ; B 43 -16 499 563 ;
-C 117 ; WX 600 ; N u ; B 43 -16 541 417 ;
-C 118 ; WX 600 ; N v ; B 30 0 570 417 ;
-C 119 ; WX 600 ; N w ; B 30 0 570 417 ;
-C 120 ; WX 600 ; N x ; B 51 0 549 417 ;
-C 121 ; WX 600 ; N y ; B 51 -186 549 417 ;
-C 122 ; WX 600 ; N z ; B 115 0 489 417 ;
-C 123 ; WX 600 ; N braceleft ; B 197 -124 403 604 ;
-C 124 ; WX 600 ; N bar ; B 280 -124 320 604 ;
-C 125 ; WX 600 ; N braceright ; B 197 -124 403 604 ;
-C 126 ; WX 600 ; N asciitilde ; B 92 212 508 348 ;
-C 161 ; WX 600 ; N exclamdown ; B 240 -216 360 417 ;
-C 162 ; WX 600 ; N cent ; B 113 -13 469 630 ;
-C 163 ; WX 600 ; N sterling ; B 63 0 520 578 ;
-C 164 ; WX 600 ; N fraction ; B 50 138 549 470 ;
-C 165 ; WX 600 ; N yen ; B 51 0 549 563 ;
-C 166 ; WX 600 ; N florin ; B 87 -93 518 618 ;
-C 167 ; WX 600 ; N section ; B 66 -62 534 603 ;
-C 168 ; WX 600 ; N currency ; B 103 95 497 489 ;
-C 169 ; WX 600 ; N quotesingle ; B 236 315 364 604 ;
-C 170 ; WX 600 ; N quotedblleft ; B 93 343 507 604 ;
-C 171 ; WX 600 ; N guillemotleft ; B 63 0 541 417 ;
-C 172 ; WX 600 ; N guilsinglleft ; B 63 0 312 417 ;
-C 173 ; WX 600 ; N guilsinglright ; B 293 0 541 417 ;
-C 174 ; WX 600 ; N fi ; B 10 0 585 624 ;
-C 175 ; WX 600 ; N fl ; B 10 0 587 604 ;
-C 177 ; WX 600 ; N endash ; B 72 261 528 302 ;
-C 178 ; WX 600 ; N dagger ; B 124 -63 476 604 ;
-C 179 ; WX 600 ; N daggerdbl ; B 124 -62 476 604 ;
-C 180 ; WX 600 ; N periodcentered ; B 226 217 374 348 ;
-C 182 ; WX 600 ; N paragraph ; B 79 -62 525 604 ;
-C 183 ; WX 600 ; N bullet ; B 202 141 398 337 ;
-C 184 ; WX 600 ; N quotesinglbase ; B 135 -145 340 145 ;
-C 185 ; WX 600 ; N quotedblbase ; B 93 -116 507 145 ;
-C 186 ; WX 600 ; N quotedblright ; B 93 343 507 604 ;
-C 187 ; WX 600 ; N guillemotright ; B 63 0 541 417 ;
-C 188 ; WX 600 ; N ellipsis ; B 51 -15 549 84 ;
-C 189 ; WX 600 ; N perthousand ; B 34 -9 564 614 ;
-C 191 ; WX 600 ; N questiondown ; B 113 -175 466 417 ;
-C 193 ; WX 600 ; N grave ; B 155 490 320 639 ;
-C 194 ; WX 600 ; N acute ; B 280 490 445 639 ;
-C 195 ; WX 600 ; N circumflex ; B 155 490 445 639 ;
-C 196 ; WX 600 ; N tilde ; B 145 516 455 605 ;
-C 197 ; WX 600 ; N macron ; B 155 536 445 576 ;
-C 198 ; WX 600 ; N breve ; B 155 490 445 620 ;
-C 199 ; WX 600 ; N dotaccent ; B 250 511 350 611 ;
-C 200 ; WX 600 ; N dieresis ; B 140 511 461 611 ;
-C 202 ; WX 600 ; N ring ; B 207 480 393 661 ;
-C 203 ; WX 600 ; N cedilla ; B 210 -173 377 0 ;
-C 205 ; WX 600 ; N hungarumlaut ; B 155 490 445 633 ;
-C 206 ; WX 600 ; N ogonek ; B 280 -155 433 0 ;
-C 207 ; WX 600 ; N caron ; B 155 490 445 639 ;
-C 208 ; WX 600 ; N emdash ; B 1 261 599 302 ;
-C 225 ; WX 600 ; N AE ; B 10 0 590 563 ;
-C 227 ; WX 600 ; N ordfeminine ; B 155 279 447 574 ;
-C 232 ; WX 600 ; N Lslash ; B 43 0 541 563 ;
-C 233 ; WX 600 ; N Oslash ; B 40 -43 560 605 ;
-C 234 ; WX 600 ; N OE ; B 10 0 590 563 ;
-C 235 ; WX 600 ; N ordmasculine ; B 154 284 448 577 ;
-C 241 ; WX 600 ; N ae ; B 12 -16 578 431 ;
-C 245 ; WX 600 ; N dotlessi ; B 92 0 508 417 ;
-C 248 ; WX 600 ; N lslash ; B 92 0 508 604 ;
-C 249 ; WX 600 ; N oslash ; B 53 -43 543 458 ;
-C 250 ; WX 600 ; N oe ; B 12 -16 578 431 ;
-C 251 ; WX 600 ; N germandbls ; B 43 -16 499 604 ;
-C -1 ; WX 600 ; N Udieresis ; B 40 -16 560 761 ;
-C -1 ; WX 600 ; N Uacute ; B 40 -16 560 789 ;
-C -1 ; WX 600 ; N Scedilla ; B 92 -173 508 576 ;
-C -1 ; WX 600 ; N Tcaron ; B 72 0 528 789 ;
-C -1 ; WX 600 ; N Scaron ; B 92 -16 508 789 ;
-C -1 ; WX 600 ; N Rcaron ; B 43 0 589 789 ;
-C -1 ; WX 600 ; N Racute ; B 43 0 589 789 ;
-C -1 ; WX 600 ; N Sacute ; B 92 -16 508 789 ;
-C -1 ; WX 600 ; N Otilde ; B 51 -16 549 755 ;
-C -1 ; WX 600 ; N ucircumflex ; B 43 -16 541 639 ;
-C -1 ; WX 600 ; N Ohungarumlaut ; B 51 -16 549 783 ;
-C -1 ; WX 600 ; N Uhungarumlaut ; B 40 -16 560 783 ;
-C -1 ; WX 600 ; N Yacute ; B 51 0 549 789 ;
-C -1 ; WX 600 ; N Eth ; B 0 0 520 563 ;
-C -1 ; WX 600 ; N Dcroat ; B 0 0 520 563 ;
-C -1 ; WX 600 ; N Zacute ; B 103 0 497 789 ;
-C -1 ; WX 600 ; N Uring ; B 40 -16 560 811 ;
-C -1 ; WX 600 ; N gbreve ; B 63 -186 562 620 ;
-C -1 ; WX 600 ; N eogonek ; B 63 -155 520 431 ;
-C -1 ; WX 600 ; N edotaccent ; B 63 -16 520 611 ;
-C -1 ; WX 600 ; N ecaron ; B 63 -16 520 639 ;
-C -1 ; WX 600 ; N Ugrave ; B 40 -16 560 789 ;
-C -1 ; WX 600 ; N Thorn ; B 43 0 499 563 ;
-C -1 ; WX 600 ; N eacute ; B 63 -16 520 639 ;
-C -1 ; WX 600 ; N edieresis ; B 63 -16 520 611 ;
-C -1 ; WX 600 ; N dcaron ; B 63 -16 650 616 ;
-C -1 ; WX 600 ; N ccedilla ; B 84 -173 535 431 ;
-C -1 ; WX 600 ; N ccaron ; B 84 -16 535 639 ;
-C -1 ; WX 600 ; N cacute ; B 84 -16 535 639 ;
-C -1 ; WX 600 ; N aogonek ; B 72 -155 556 431 ;
-C -1 ; WX 600 ; N aring ; B 72 -16 541 661 ;
-C -1 ; WX 600 ; N atilde ; B 72 -16 541 605 ;
-C -1 ; WX 600 ; N abreve ; B 72 -16 541 620 ;
-C -1 ; WX 600 ; N egrave ; B 63 -16 520 639 ;
-C -1 ; WX 600 ; N agrave ; B 72 -16 541 639 ;
-C -1 ; WX 600 ; N aacute ; B 72 -16 541 639 ;
-C -1 ; WX 600 ; N adieresis ; B 72 -16 541 611 ;
-C -1 ; WX 600 ; N Uogonek ; B 40 -155 560 563 ;
-C -1 ; WX 600 ; N ugrave ; B 43 -16 541 639 ;
-C -1 ; WX 600 ; N uacute ; B 43 -16 541 639 ;
-C -1 ; WX 600 ; N udieresis ; B 43 -16 541 611 ;
-C -1 ; WX 600 ; N tcaron ; B 43 -16 508 616 ;
-C -1 ; WX 600 ; N scommaaccent ; B 103 -237 497 431 ;
-C -1 ; WX 600 ; N Zcaron ; B 103 0 497 789 ;
-C -1 ; WX 600 ; N ecircumflex ; B 63 -16 520 639 ;
-C -1 ; WX 600 ; N Ucircumflex ; B 40 -16 560 789 ;
-C -1 ; WX 600 ; N acircumflex ; B 72 -16 541 639 ;
-C -1 ; WX 600 ; N Zdotaccent ; B 103 0 497 761 ;
-C -1 ; WX 600 ; N scaron ; B 103 -16 497 639 ;
-C -1 ; WX 600 ; N Amacron ; B 9 0 591 726 ;
-C -1 ; WX 600 ; N sacute ; B 103 -16 497 639 ;
-C -1 ; WX 600 ; N Tcommaaccent ; B 72 -237 528 563 ;
-C -1 ; WX 600 ; N Ydieresis ; B 51 0 549 761 ;
-C -1 ; WX 600 ; N thorn ; B 22 -186 541 590 ;
-C -1 ; WX 600 ; N Emacron ; B 43 0 520 726 ;
-C -1 ; WX 600 ; N Ograve ; B 51 -16 549 789 ;
-C -1 ; WX 600 ; N Oacute ; B 51 -16 549 789 ;
-C -1 ; WX 600 ; N Odieresis ; B 51 -16 549 761 ;
-C -1 ; WX 600 ; N Ntilde ; B 22 0 562 755 ;
-C -1 ; WX 600 ; N Ncaron ; B 22 0 562 789 ;
-C -1 ; WX 600 ; N Nacute ; B 22 0 562 789 ;
-C -1 ; WX 600 ; N Lcaron ; B 63 0 541 566 ;
-C -1 ; WX 600 ; N Lacute ; B 63 0 541 789 ;
-C -1 ; WX 600 ; N Idotaccent ; B 113 0 487 761 ;
-C -1 ; WX 600 ; N racute ; B 84 0 541 639 ;
-C -1 ; WX 600 ; N Icircumflex ; B 113 0 487 789 ;
-C -1 ; WX 600 ; N ohungarumlaut ; B 72 -16 528 633 ;
-C -1 ; WX 600 ; N otilde ; B 72 -16 528 605 ;
-C -1 ; WX 600 ; N Euro ; B 11 -16 534 576 ;
-C -1 ; WX 600 ; N ocircumflex ; B 72 -16 528 639 ;
-C -1 ; WX 600 ; N onesuperior ; B 191 259 410 612 ;
-C -1 ; WX 600 ; N twosuperior ; B 175 259 405 612 ;
-C -1 ; WX 600 ; N threesuperior ; B 181 251 416 612 ;
-C -1 ; WX 600 ; N Igrave ; B 113 0 487 789 ;
-C -1 ; WX 600 ; N Iacute ; B 113 0 487 789 ;
-C -1 ; WX 600 ; N Imacron ; B 113 0 487 726 ;
-C -1 ; WX 600 ; N Iogonek ; B 113 -155 500 563 ;
-C -1 ; WX 600 ; N Idieresis ; B 113 0 487 761 ;
-C -1 ; WX 600 ; N Gbreve ; B 63 -16 562 770 ;
-C -1 ; WX 600 ; N Umacron ; B 40 -16 560 726 ;
-C -1 ; WX 600 ; N Kcommaaccent ; B 43 -237 572 563 ;
-C -1 ; WX 600 ; N ograve ; B 72 -16 528 639 ;
-C -1 ; WX 600 ; N Scommaaccent ; B 92 -237 508 576 ;
-C -1 ; WX 600 ; N Eogonek ; B 43 -155 549 563 ;
-C -1 ; WX 600 ; N oacute ; B 72 -16 528 639 ;
-C -1 ; WX 600 ; N Edotaccent ; B 43 0 520 761 ;
-C -1 ; WX 600 ; N iogonek ; B 92 -155 520 624 ;
-C -1 ; WX 600 ; N gcommaaccent ; B 63 -186 562 666 ;
-C -1 ; WX 600 ; N odieresis ; B 72 -16 528 611 ;
-C -1 ; WX 600 ; N ntilde ; B 53 0 541 605 ;
-C -1 ; WX 600 ; N ncaron ; B 53 0 541 639 ;
-C -1 ; WX 600 ; N Ecaron ; B 43 0 520 789 ;
-C -1 ; WX 600 ; N Ecircumflex ; B 43 0 520 789 ;
-C -1 ; WX 600 ; N scedilla ; B 103 -173 497 431 ;
-C -1 ; WX 600 ; N rcaron ; B 84 0 541 639 ;
-C -1 ; WX 600 ; N Egrave ; B 43 0 520 789 ;
-C -1 ; WX 600 ; N Eacute ; B 43 0 520 789 ;
-C -1 ; WX 600 ; N Gcommaaccent ; B 63 -237 562 576 ;
-C -1 ; WX 600 ; N Rcommaaccent ; B 43 -237 589 563 ;
-C -1 ; WX 600 ; N Edieresis ; B 43 0 520 761 ;
-C -1 ; WX 600 ; N nacute ; B 53 0 541 639 ;
-C -1 ; WX 600 ; N uogonek ; B 43 -155 556 417 ;
-C -1 ; WX 600 ; N umacron ; B 43 -16 541 576 ;
-C -1 ; WX 600 ; N Dcaron ; B 43 0 520 789 ;
-C -1 ; WX 600 ; N lcaron ; B 92 0 508 616 ;
-C -1 ; WX 600 ; N Ccaron ; B 63 -16 534 789 ;
-C -1 ; WX 600 ; N Cacute ; B 63 -16 534 789 ;
-C -1 ; WX 600 ; N Ccedilla ; B 63 -173 534 576 ;
-C -1 ; WX 600 ; N degree ; B 155 346 445 636 ;
-C -1 ; WX 600 ; N Aogonek ; B 9 -155 600 563 ;
-C -1 ; WX 600 ; N minus ; B 72 261 528 302 ;
-C -1 ; WX 600 ; N multiply ; B 118 100 482 464 ;
-C -1 ; WX 600 ; N divide ; B 72 25 528 540 ;
-C -1 ; WX 600 ; N Aring ; B 9 0 591 811 ;
-C -1 ; WX 600 ; N trademark ; B 4 243 598 563 ;
-C -1 ; WX 600 ; N rcommaaccent ; B 84 -237 541 427 ;
-C -1 ; WX 600 ; N lacute ; B 92 0 508 789 ;
-C -1 ; WX 600 ; N omacron ; B 72 -16 528 576 ;
-C -1 ; WX 600 ; N Atilde ; B 9 0 591 755 ;
-C -1 ; WX 600 ; N icircumflex ; B 92 0 508 639 ;
-C -1 ; WX 600 ; N igrave ; B 92 0 508 639 ;
-C -1 ; WX 600 ; N ncommaaccent ; B 53 -237 541 431 ;
-C -1 ; WX 600 ; N lcommaaccent ; B 92 -237 508 604 ;
-C -1 ; WX 600 ; N plusminus ; B 72 0 528 529 ;
-C -1 ; WX 600 ; N onehalf ; B 23 0 573 612 ;
-C -1 ; WX 600 ; N onequarter ; B 16 0 580 612 ;
-C -1 ; WX 600 ; N threequarters ; B 6 0 580 612 ;
-C -1 ; WX 600 ; N iacute ; B 92 0 508 639 ;
-C -1 ; WX 600 ; N Abreve ; B 9 0 591 770 ;
-C -1 ; WX 600 ; N kcommaaccent ; B 63 -237 541 604 ;
-C -1 ; WX 600 ; N Omacron ; B 51 -16 549 726 ;
-C -1 ; WX 600 ; N imacron ; B 92 0 508 576 ;
-C -1 ; WX 600 ; N emacron ; B 63 -16 520 576 ;
-C -1 ; WX 600 ; N amacron ; B 72 -16 541 576 ;
-C -1 ; WX 600 ; N tcommaaccent ; B 43 -237 499 563 ;
-C -1 ; WX 600 ; N ydieresis ; B 51 -186 549 611 ;
-C -1 ; WX 600 ; N zdotaccent ; B 115 0 489 611 ;
-C -1 ; WX 600 ; N zcaron ; B 115 0 489 639 ;
-C -1 ; WX 600 ; N zacute ; B 115 0 489 639 ;
-C -1 ; WX 600 ; N yacute ; B 51 -186 549 639 ;
-C -1 ; WX 600 ; N uhungarumlaut ; B 43 -16 541 633 ;
-C -1 ; WX 600 ; N eth ; B 72 -17 528 620 ;
-C -1 ; WX 600 ; N uring ; B 43 -16 541 661 ;
-C -1 ; WX 600 ; N Ocircumflex ; B 51 -16 549 789 ;
-C -1 ; WX 600 ; N commaaccent ; B 234 -237 367 -60 ;
-C -1 ; WX 600 ; N copyright ; B 3 -15 596 578 ;
-C -1 ; WX 600 ; N registered ; B 3 -15 596 578 ;
-C -1 ; WX 600 ; N Acircumflex ; B 9 0 591 789 ;
-C -1 ; WX 600 ; N idieresis ; B 92 0 508 611 ;
-C -1 ; WX 600 ; N lozenge ; B 89 -11 511 575 ;
-C -1 ; WX 600 ; N Delta ; B 43 0 557 563 ;
-C -1 ; WX 600 ; N notequal ; B 51 94 549 464 ;
-C -1 ; WX 600 ; N radical ; B 27 0 628 699 ;
-C -1 ; WX 600 ; N Agrave ; B 9 0 591 789 ;
-C -1 ; WX 600 ; N Aacute ; B 9 0 591 789 ;
-C -1 ; WX 600 ; N lessequal ; B 53 0 525 535 ;
-C -1 ; WX 600 ; N greaterequal ; B 59 0 531 535 ;
-C -1 ; WX 600 ; N logicalnot ; B 72 168 528 438 ;
-C -1 ; WX 600 ; N summation ; B 113 -127 507 563 ;
-C -1 ; WX 600 ; N partialdiff ; B 71 -17 529 582 ;
-C -1 ; WX 600 ; N Ncommaaccent ; B 22 -237 562 563 ;
-C -1 ; WX 600 ; N dcroat ; B 63 -16 583 604 ;
-C -1 ; WX 600 ; N brokenbar ; B 280 -124 320 604 ;
-C -1 ; WX 600 ; N Lcommaaccent ; B 63 -237 541 563 ;
-C -1 ; WX 600 ; N Adieresis ; B 9 0 591 761 ;
-C -1 ; WX 600 ; N mu ; B 43 -200 541 417 ;
-C -1 ; WX 600 ; N .notdef ; B 295 0 295 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -33
-KPX A Ccedilla -30
-KPX A G -27
-KPX A O -27
-KPX A Odieresis -27
-KPX A Q -28
-KPX A T -27
-KPX A U -32
-KPX A Uacute -32
-KPX A Ucircumflex -32
-KPX A Udieresis -32
-KPX A Ugrave -32
-KPX A V -74
-KPX A W -12
-KPX A Y -28
-KPX A a 8
-KPX A b 46
-KPX A c -19
-KPX A ccedilla -15
-KPX A comma -39
-KPX A d -10
-KPX A e -14
-KPX A g -23
-KPX A guillemotleft -49
-KPX A guilsinglleft -49
-KPX A hyphen -30
-KPX A o -16
-KPX A period -67
-KPX A q -24
-KPX A quotedblright -78
-KPX A quoteright -98
-KPX A t -26
-KPX A u -15
-KPX A v -55
-KPX A w -19
-KPX A y -60
-KPX Aacute C -33
-KPX Aacute G -27
-KPX Aacute O -27
-KPX Aacute Q -28
-KPX Aacute T -27
-KPX Aacute U -32
-KPX Aacute V -74
-KPX Aacute W -12
-KPX Aacute Y -28
-KPX Aacute a 8
-KPX Aacute b 46
-KPX Aacute c -19
-KPX Aacute comma -39
-KPX Aacute d -10
-KPX Aacute e -14
-KPX Aacute g -23
-KPX Aacute guillemotleft -49
-KPX Aacute guilsinglleft -49
-KPX Aacute hyphen -30
-KPX Aacute o -16
-KPX Aacute period -67
-KPX Aacute q -24
-KPX Aacute quoteright -98
-KPX Aacute t -26
-KPX Aacute u -15
-KPX Aacute v -55
-KPX Aacute w -19
-KPX Aacute y -60
-KPX Acircumflex C -33
-KPX Acircumflex G -27
-KPX Acircumflex O -27
-KPX Acircumflex Q -28
-KPX Acircumflex T -27
-KPX Acircumflex U -32
-KPX Acircumflex V -74
-KPX Acircumflex W -12
-KPX Acircumflex Y -28
-KPX Acircumflex comma -39
-KPX Acircumflex period -67
-KPX Adieresis C -33
-KPX Adieresis G -27
-KPX Adieresis O -27
-KPX Adieresis Q -28
-KPX Adieresis T -27
-KPX Adieresis U -32
-KPX Adieresis V -74
-KPX Adieresis W -12
-KPX Adieresis Y -28
-KPX Adieresis a 8
-KPX Adieresis b 46
-KPX Adieresis c -19
-KPX Adieresis comma -39
-KPX Adieresis d -10
-KPX Adieresis g -23
-KPX Adieresis guillemotleft -49
-KPX Adieresis guilsinglleft -49
-KPX Adieresis hyphen -30
-KPX Adieresis o -16
-KPX Adieresis period -67
-KPX Adieresis q -24
-KPX Adieresis quotedblright -78
-KPX Adieresis quoteright -98
-KPX Adieresis t -26
-KPX Adieresis u -15
-KPX Adieresis v -55
-KPX Adieresis w -19
-KPX Adieresis y -60
-KPX Agrave C -33
-KPX Agrave G -27
-KPX Agrave O -27
-KPX Agrave Q -28
-KPX Agrave T -27
-KPX Agrave U -32
-KPX Agrave V -74
-KPX Agrave W -12
-KPX Agrave Y -28
-KPX Agrave comma -39
-KPX Agrave period -67
-KPX Aring C -33
-KPX Aring G -27
-KPX Aring O -27
-KPX Aring Q -28
-KPX Aring T -27
-KPX Aring U -32
-KPX Aring V -74
-KPX Aring W -12
-KPX Aring Y -28
-KPX Aring a 8
-KPX Aring b 46
-KPX Aring c -19
-KPX Aring comma -39
-KPX Aring d -10
-KPX Aring e -14
-KPX Aring g -23
-KPX Aring guillemotleft -49
-KPX Aring guilsinglleft -49
-KPX Aring hyphen -30
-KPX Aring o -16
-KPX Aring period -67
-KPX Aring q -24
-KPX Aring quotedblright -78
-KPX Aring quoteright -98
-KPX Aring t -26
-KPX Aring u -15
-KPX Aring v -55
-KPX Aring w -19
-KPX Aring y -60
-KPX Atilde C -33
-KPX Atilde G -27
-KPX Atilde O -27
-KPX Atilde Q -28
-KPX Atilde T -27
-KPX Atilde U -32
-KPX Atilde V -74
-KPX Atilde W -12
-KPX Atilde Y -28
-KPX Atilde comma -39
-KPX Atilde period -67
-KPX B A -9
-KPX B AE -9
-KPX B Aacute -9
-KPX B Acircumflex -9
-KPX B Adieresis -9
-KPX B Aring -9
-KPX B Atilde -9
-KPX B O -10
-KPX B OE 10
-KPX B Oacute -10
-KPX B Ocircumflex -10
-KPX B Odieresis -10
-KPX B Ograve -10
-KPX B Oslash -8
-KPX B V -29
-KPX B W -12
-KPX B Y -50
-KPX C A -9
-KPX C AE -9
-KPX C Aacute -9
-KPX C Adieresis -9
-KPX C Aring -9
-KPX C H -26
-KPX C K -11
-KPX C O -21
-KPX C Oacute -21
-KPX C Odieresis -21
-KPX Ccedilla A -5
-KPX D A -42
-KPX D Aacute -42
-KPX D Acircumflex -42
-KPX D Adieresis -42
-KPX D Agrave -42
-KPX D Aring -42
-KPX D Atilde -42
-KPX D J -31
-KPX D T -40
-KPX D V -42
-KPX D W -17
-KPX D X -55
-KPX D Y -63
-KPX F A -38
-KPX F Aacute -38
-KPX F Acircumflex -38
-KPX F Adieresis -38
-KPX F Agrave -38
-KPX F Aring -38
-KPX F Atilde -38
-KPX F J -95
-KPX F O -27
-KPX F Odieresis -27
-KPX F a -47
-KPX F aacute -47
-KPX F adieresis -43
-KPX F ae -20
-KPX F aring -47
-KPX F comma -168
-KPX F e -56
-KPX F eacute -56
-KPX F hyphen -67
-KPX F i -47
-KPX F j -54
-KPX F o -63
-KPX F oacute -63
-KPX F odieresis -48
-KPX F oe -21
-KPX F oslash -63
-KPX F period -193
-KPX F r -32
-KPX F u -1
-KPX G A 6
-KPX G AE 5
-KPX G Aacute 6
-KPX G Acircumflex 6
-KPX G Adieresis 6
-KPX G Agrave 6
-KPX G Aring 6
-KPX G Atilde 6
-KPX G T -25
-KPX G V 6
-KPX G W 1
-KPX G Y -14
-KPX J A -7
-KPX J AE -16
-KPX J Adieresis -7
-KPX J Aring -7
-KPX K C -42
-KPX K G -36
-KPX K O -37
-KPX K OE -19
-KPX K Oacute -37
-KPX K Odieresis -37
-KPX K S -9
-KPX K T -12
-KPX K a -1
-KPX K adieresis -1
-KPX K ae 26
-KPX K aring -1
-KPX K e -24
-KPX K hyphen -61
-KPX K o -25
-KPX K oacute -25
-KPX K odieresis -25
-KPX K u -25
-KPX K udieresis -25
-KPX K y -67
-KPX L A 17
-KPX L AE 16
-KPX L Aacute 17
-KPX L Adieresis 17
-KPX L Aring 17
-KPX L C -11
-KPX L Ccedilla -10
-KPX L G -10
-KPX L O -6
-KPX L Oacute -6
-KPX L Ocircumflex -6
-KPX L Odieresis -6
-KPX L Ograve -6
-KPX L Otilde -6
-KPX L S -24
-KPX L T -52
-KPX L U -29
-KPX L Udieresis -29
-KPX L V -66
-KPX L W -27
-KPX L Y -53
-KPX L hyphen 3
-KPX L quotedblright -66
-KPX L quoteright -73
-KPX L u -16
-KPX L udieresis -16
-KPX L y -45
-KPX N A -3
-KPX N AE -3
-KPX N Aacute -3
-KPX N Adieresis -3
-KPX N Aring -3
-KPX N C -12
-KPX N Ccedilla -12
-KPX N G -11
-KPX N O -9
-KPX N Oacute -9
-KPX N Odieresis -9
-KPX N a -19
-KPX N aacute -19
-KPX N adieresis -19
-KPX N ae 11
-KPX N aring -19
-KPX N comma -58
-KPX N e -6
-KPX N eacute -6
-KPX N o -10
-KPX N oacute -10
-KPX N odieresis -10
-KPX N oslash -7
-KPX N period -83
-KPX N u -9
-KPX N udieresis -9
-KPX O A -27
-KPX O AE -26
-KPX O Aacute -27
-KPX O Adieresis -27
-KPX O Aring -27
-KPX O T -30
-KPX O V -31
-KPX O W -5
-KPX O X -43
-KPX O Y -52
-KPX Oacute A -27
-KPX Oacute T -30
-KPX Oacute V -31
-KPX Oacute W -5
-KPX Oacute Y -52
-KPX Ocircumflex T -30
-KPX Ocircumflex V -31
-KPX Ocircumflex Y -52
-KPX Odieresis A -27
-KPX Odieresis T -30
-KPX Odieresis V -31
-KPX Odieresis W -5
-KPX Odieresis X -43
-KPX Odieresis Y -52
-KPX Ograve T -30
-KPX Ograve V -31
-KPX Ograve Y -52
-KPX Oslash A -26
-KPX Otilde T -30
-KPX Otilde V -31
-KPX Otilde Y -52
-KPX P A -79
-KPX P AE -76
-KPX P Aacute -79
-KPX P Adieresis -79
-KPX P Aring -79
-KPX P J -82
-KPX P a -52
-KPX P aacute -52
-KPX P adieresis -52
-KPX P ae -25
-KPX P aring -52
-KPX P comma -156
-KPX P e -42
-KPX P eacute -42
-KPX P hyphen -46
-KPX P o -48
-KPX P oacute -48
-KPX P odieresis -48
-KPX P oe -13
-KPX P oslash -48
-KPX P period -181
-KPX R C -27
-KPX R Ccedilla -28
-KPX R G -26
-KPX R O -25
-KPX R OE -4
-KPX R Oacute -25
-KPX R Odieresis -25
-KPX R T -28
-KPX R U -32
-KPX R Udieresis -32
-KPX R V -33
-KPX R W -13
-KPX R Y -29
-KPX R a 7
-KPX R aacute 7
-KPX R adieresis 7
-KPX R ae 35
-KPX R aring 7
-KPX R e -15
-KPX R eacute -15
-KPX R hyphen -48
-KPX R o -17
-KPX R oacute -17
-KPX R odieresis -17
-KPX R oe 22
-KPX R u -11
-KPX R uacute -11
-KPX R udieresis -11
-KPX R y -15
-KPX S A -22
-KPX S AE -22
-KPX S Aacute -22
-KPX S Adieresis -22
-KPX S Aring -22
-KPX S T -42
-KPX S V -10
-KPX S W -16
-KPX S Y -31
-KPX S t -18
-KPX T A -27
-KPX T AE -27
-KPX T Aacute -27
-KPX T Acircumflex -27
-KPX T Adieresis -27
-KPX T Agrave -27
-KPX T Aring -27
-KPX T Atilde -27
-KPX T C -29
-KPX T G -30
-KPX T J -79
-KPX T O -29
-KPX T OE -7
-KPX T Oacute -29
-KPX T Ocircumflex -29
-KPX T Odieresis -29
-KPX T Ograve -29
-KPX T Oslash -29
-KPX T Otilde -29
-KPX T S -43
-KPX T V 10
-KPX T W 5
-KPX T Y -10
-KPX T a -60
-KPX T ae -33
-KPX T c -88
-KPX T colon -136
-KPX T comma -108
-KPX T e -83
-KPX T g -92
-KPX T guillemotleft -122
-KPX T guilsinglleft -122
-KPX T hyphen -94
-KPX T i -58
-KPX T j -80
-KPX T o -85
-KPX T oslash -54
-KPX T period -136
-KPX T r -54
-KPX T s -63
-KPX T semicolon -111
-KPX T u -84
-KPX T v -93
-KPX T w -88
-KPX T y -103
-KPX U A -18
-KPX U AE -27
-KPX U Aacute -18
-KPX U Acircumflex -18
-KPX U Adieresis -18
-KPX U Aring -18
-KPX U Atilde -18
-KPX U comma -76
-KPX U m 6
-KPX U n -19
-KPX U p 0
-KPX U period -101
-KPX U r -41
-KPX Uacute A -18
-KPX Uacute comma -76
-KPX Uacute m 6
-KPX Uacute n -19
-KPX Uacute p 0
-KPX Uacute period -101
-KPX Uacute r -41
-KPX Ucircumflex A -18
-KPX Udieresis A -18
-KPX Udieresis b 25
-KPX Udieresis comma -76
-KPX Udieresis m 6
-KPX Udieresis n -19
-KPX Udieresis p 0
-KPX Udieresis period -101
-KPX Udieresis r -41
-KPX Ugrave A -18
-KPX V A -3
-KPX V AE -12
-KPX V Aacute -3
-KPX V Acircumflex -3
-KPX V Adieresis -3
-KPX V Agrave -3
-KPX V Aring -3
-KPX V Atilde -3
-KPX V C -29
-KPX V G -31
-KPX V O -31
-KPX V Oacute -31
-KPX V Ocircumflex -31
-KPX V Odieresis -31
-KPX V Ograve -31
-KPX V Oslash -31
-KPX V Otilde -31
-KPX V S -34
-KPX V T 10
-KPX V a -60
-KPX V ae -33
-KPX V colon -124
-KPX V comma -129
-KPX V e -52
-KPX V g -53
-KPX V guillemotleft -75
-KPX V guilsinglleft -75
-KPX V hyphen -43
-KPX V i -60
-KPX V o -56
-KPX V oslash -53
-KPX V period -154
-KPX V r -46
-KPX V semicolon -114
-KPX V u -15
-KPX V y -19
-KPX W A -8
-KPX W AE -14
-KPX W Aacute -8
-KPX W Acircumflex -8
-KPX W Adieresis -8
-KPX W Agrave -8
-KPX W Aring -8
-KPX W Atilde -8
-KPX W C -8
-KPX W G -7
-KPX W O -5
-KPX W Oacute -5
-KPX W Ocircumflex -5
-KPX W Odieresis -5
-KPX W Ograve -5
-KPX W Oslash -2
-KPX W Otilde -5
-KPX W S -24
-KPX W T 5
-KPX W a -20
-KPX W ae 10
-KPX W colon -88
-KPX W comma -66
-KPX W e -6
-KPX W g -7
-KPX W guillemotleft -31
-KPX W guilsinglleft -31
-KPX W hyphen -2
-KPX W i -43
-KPX W o -10
-KPX W oslash -7
-KPX W period -90
-KPX W r -29
-KPX W semicolon -69
-KPX W u 2
-KPX W y -2
-KPX X C -46
-KPX X O -43
-KPX X Odieresis -43
-KPX X Q -44
-KPX X a -7
-KPX X e -30
-KPX X hyphen -75
-KPX X o -31
-KPX X u -31
-KPX X y -53
-KPX Y A -24
-KPX Y AE -27
-KPX Y Aacute -24
-KPX Y Acircumflex -24
-KPX Y Adieresis -24
-KPX Y Agrave -24
-KPX Y Aring -24
-KPX Y Atilde -24
-KPX Y C -51
-KPX Y G -52
-KPX Y O -53
-KPX Y Oacute -53
-KPX Y Ocircumflex -53
-KPX Y Odieresis -53
-KPX Y Ograve -53
-KPX Y Oslash -53
-KPX Y Otilde -53
-KPX Y S -55
-KPX Y T -10
-KPX Y a -60
-KPX Y ae -32
-KPX Y colon -135
-KPX Y comma -107
-KPX Y e -78
-KPX Y g -81
-KPX Y guillemotleft -115
-KPX Y guilsinglleft -115
-KPX Y hyphen -91
-KPX Y i -57
-KPX Y o -83
-KPX Y oslash -54
-KPX Y p -35
-KPX Y period -135
-KPX Y semicolon -110
-KPX Y u -46
-KPX Y v -39
-KPX Z v -50
-KPX Z y -61
-KPX a j -87
-KPX a quoteright -56
-KPX a v -28
-KPX a w -21
-KPX a y -38
-KPX aacute v -28
-KPX aacute w -21
-KPX aacute y -38
-KPX adieresis v -28
-KPX adieresis w -21
-KPX adieresis y -38
-KPX ae v 21
-KPX ae w 21
-KPX ae y 10
-KPX agrave v -28
-KPX agrave w -21
-KPX agrave y -38
-KPX aring v -28
-KPX aring w -21
-KPX aring y -38
-KPX b v -12
-KPX b w 1
-KPX b y -22
-KPX c h -3
-KPX c k -9
-KPX comma one -144
-KPX comma quotedblright -119
-KPX comma quoteright -136
-KPX e quoteright -41
-KPX e t -29
-KPX e v -22
-KPX e w -19
-KPX e x -2
-KPX e y -33
-KPX eacute v -22
-KPX eacute w -19
-KPX eacute y -33
-KPX ecircumflex v -22
-KPX ecircumflex w -19
-KPX ecircumflex y -33
-KPX eight four -58
-KPX eight one -75
-KPX eight seven -68
-KPX f a -38
-KPX f aacute -38
-KPX f adieresis -22
-KPX f ae -11
-KPX f aring -38
-KPX f e -55
-KPX f eacute -55
-KPX f f -42
-KPX f i -36
-KPX f j -59
-KPX f l -25
-KPX f o -62
-KPX f oacute -62
-KPX f odieresis -27
-KPX f oe -20
-KPX f oslash -32
-KPX f quoteright -56
-KPX f s -41
-KPX f t -6
-KPX five four -52
-KPX five one -86
-KPX five seven -72
-KPX four four -62
-KPX four one -66
-KPX four seven -93
-KPX g a -10
-KPX g adieresis -10
-KPX g ae 16
-KPX g aring -10
-KPX g e -4
-KPX g eacute -4
-KPX g l -33
-KPX g oacute -8
-KPX g odieresis -8
-KPX g r 0
-KPX guillemotright A -43
-KPX guillemotright AE -39
-KPX guillemotright Aacute -43
-KPX guillemotright Adieresis -43
-KPX guillemotright Aring -43
-KPX guillemotright T -121
-KPX guillemotright V -71
-KPX guillemotright W -29
-KPX guillemotright Y -114
-KPX guilsinglright A -43
-KPX guilsinglright AE -39
-KPX guilsinglright Aacute -43
-KPX guilsinglright Adieresis -43
-KPX guilsinglright Aring -43
-KPX guilsinglright T -121
-KPX guilsinglright V -71
-KPX guilsinglright W -29
-KPX guilsinglright Y -114
-KPX h quoteright -49
-KPX h y -32
-KPX hyphen A -26
-KPX hyphen AE -20
-KPX hyphen Aacute -26
-KPX hyphen Adieresis -26
-KPX hyphen Aring -26
-KPX hyphen T -95
-KPX hyphen V -41
-KPX hyphen W -1
-KPX hyphen Y -92
-KPX i T -58
-KPX i j -142
-KPX k a -6
-KPX k aacute -6
-KPX k adieresis -6
-KPX k ae 21
-KPX k aring -6
-KPX k comma -53
-KPX k e -29
-KPX k eacute -29
-KPX k g -38
-KPX k hyphen -99
-KPX k o -30
-KPX k oacute -30
-KPX k odieresis -30
-KPX k period -81
-KPX k s -9
-KPX k u -3
-KPX k udieresis -3
-KPX l v -83
-KPX l y -93
-KPX m p 22
-KPX m v 14
-KPX m w 15
-KPX m y 3
-KPX n T -42
-KPX n p -5
-KPX n quoteright -47
-KPX n v -21
-KPX n w -12
-KPX n y -31
-KPX nine four -51
-KPX nine one -75
-KPX nine seven -66
-KPX o T -85
-KPX o quoteright -39
-KPX o t -22
-KPX o v -21
-KPX o w -6
-KPX o x -26
-KPX o y -31
-KPX oacute v -21
-KPX oacute w -6
-KPX oacute y -31
-KPX ocircumflex t -22
-KPX odieresis t -22
-KPX odieresis v -21
-KPX odieresis w -6
-KPX odieresis x -26
-KPX odieresis y -31
-KPX ograve v -21
-KPX ograve w -6
-KPX ograve y -31
-KPX one comma -91
-KPX one eight -86
-KPX one five -67
-KPX one four -119
-KPX one nine -75
-KPX one one -62
-KPX one period -119
-KPX one seven -141
-KPX one six -111
-KPX one three -61
-KPX one two -47
-KPX one zero -94
-KPX p t -15
-KPX p y -19
-KPX period one -119
-KPX period quotedblright -108
-KPX period quoteright -125
-KPX q c -2
-KPX q u 42
-KPX quotedblbase A -3
-KPX quotedblbase AE -3
-KPX quotedblbase T -78
-KPX quotedblbase V -83
-KPX quotedblbase W -23
-KPX quotedblbase Y -79
-KPX quotedblleft A -59
-KPX quotedblleft AE -52
-KPX quotedblleft Aacute -59
-KPX quotedblleft Adieresis -59
-KPX quotedblleft Aring -59
-KPX quotedblleft T -37
-KPX quotedblleft V -14
-KPX quotedblleft W -3
-KPX quotedblleft Y -35
-KPX quotedblright A -59
-KPX quotedblright AE -68
-KPX quotedblright Aacute -59
-KPX quotedblright Adieresis -59
-KPX quotedblright Aring -59
-KPX quotedblright T -45
-KPX quotedblright V -14
-KPX quotedblright W -20
-KPX quotedblright Y -35
-KPX quoteleft A -80
-KPX quoteleft AE -73
-KPX quoteleft Aacute -80
-KPX quoteleft Adieresis -80
-KPX quoteleft Aring -80
-KPX quoteleft T -59
-KPX quoteleft V -36
-KPX quoteleft W -24
-KPX quoteleft Y -56
-KPX quoteright A -140
-KPX quoteright AE -149
-KPX quoteright Aacute -140
-KPX quoteright Adieresis -140
-KPX quoteright Aring -140
-KPX quoteright comma -196
-KPX quoteright d -126
-KPX quoteright o -131
-KPX quoteright period -220
-KPX quoteright r -145
-KPX quoteright s -140
-KPX quoteright t -114
-KPX quoteright v -108
-KPX quoteright w -105
-KPX quoteright y -118
-KPX r a -20
-KPX r aacute -20
-KPX r acircumflex -20
-KPX r adieresis -20
-KPX r ae 7
-KPX r agrave -20
-KPX r aring -20
-KPX r c -24
-KPX r ccedilla -28
-KPX r colon -81
-KPX r comma -97
-KPX r d -14
-KPX r e -12
-KPX r eacute -12
-KPX r ecircumflex -12
-KPX r egrave -12
-KPX r f -18
-KPX r g -11
-KPX r h -19
-KPX r hyphen -120
-KPX r i -28
-KPX r j -35
-KPX r k -29
-KPX r l -47
-KPX r m 33
-KPX r n 6
-KPX r o -19
-KPX r oacute -19
-KPX r ocircumflex -19
-KPX r odieresis -19
-KPX r oe 18
-KPX r ograve -19
-KPX r oslash -19
-KPX r p 28
-KPX r period -125
-KPX r q -11
-KPX r quoteright -37
-KPX r r -13
-KPX r s -24
-KPX r semicolon -69
-KPX r t 17
-KPX r u 17
-KPX r v 24
-KPX r w 24
-KPX r x 2
-KPX r y 13
-KPX r z -19
-KPX s quoteright -48
-KPX s t -13
-KPX seven colon -148
-KPX seven comma -140
-KPX seven eight -79
-KPX seven five -84
-KPX seven four -111
-KPX seven one -67
-KPX seven period -165
-KPX seven seven -62
-KPX seven six -99
-KPX seven three -72
-KPX seven two -69
-KPX six four -46
-KPX six one -61
-KPX six seven -48
-KPX t S -35
-KPX t a -20
-KPX t aacute -20
-KPX t adieresis -20
-KPX t ae 8
-KPX t aring -20
-KPX t colon -102
-KPX t e -37
-KPX t eacute -37
-KPX t h -7
-KPX t o -39
-KPX t oacute -39
-KPX t odieresis -39
-KPX t quoteright -94
-KPX t semicolon -80
-KPX three four -52
-KPX three one -74
-KPX three seven -67
-KPX two four -92
-KPX two one -66
-KPX two seven -71
-KPX u quoteright -38
-KPX v a -6
-KPX v aacute -6
-KPX v acircumflex -6
-KPX v adieresis -6
-KPX v ae 20
-KPX v agrave -6
-KPX v aring -6
-KPX v atilde -6
-KPX v c -25
-KPX v colon -71
-KPX v comma -113
-KPX v e -13
-KPX v eacute -13
-KPX v ecircumflex -13
-KPX v egrave -13
-KPX v g -11
-KPX v hyphen -24
-KPX v l -82
-KPX v o -21
-KPX v oacute -21
-KPX v odieresis -21
-KPX v ograve -21
-KPX v oslash -21
-KPX v period -139
-KPX v s -19
-KPX v semicolon -62
-KPX w a -6
-KPX w aacute -6
-KPX w acircumflex -6
-KPX w adieresis -6
-KPX w ae 20
-KPX w agrave -6
-KPX w aring -6
-KPX w atilde -6
-KPX w c -10
-KPX w colon -71
-KPX w comma -70
-KPX w e -1
-KPX w eacute -1
-KPX w ecircumflex -1
-KPX w egrave -1
-KPX w g -3
-KPX w hyphen 1
-KPX w l -50
-KPX w o -6
-KPX w oacute -6
-KPX w odieresis -6
-KPX w ograve -6
-KPX w oslash -3
-KPX w period -95
-KPX w s -18
-KPX w semicolon -62
-KPX x a -2
-KPX x c -29
-KPX x e -25
-KPX x eacute -25
-KPX x o -26
-KPX x q -30
-KPX y a -17
-KPX y aacute -17
-KPX y acircumflex -17
-KPX y adieresis -17
-KPX y ae 10
-KPX y agrave -17
-KPX y aring -17
-KPX y atilde -17
-KPX y c -35
-KPX y colon -81
-KPX y comma -117
-KPX y e -24
-KPX y eacute -24
-KPX y ecircumflex -24
-KPX y egrave -24
-KPX y g -21
-KPX y hyphen -24
-KPX y l -93
-KPX y o -31
-KPX y oacute -31
-KPX y odieresis -31
-KPX y ograve -31
-KPX y oslash -31
-KPX y period -144
-KPX y s -30
-KPX y semicolon -72
-KPX zero four -58
-KPX zero one -81
-KPX zero seven -73
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n022003l.pfb b/Master/xemtex/gsfonts/n022003l.pfb
deleted file mode 100644
index deedada4833..00000000000
--- a/Master/xemtex/gsfonts/n022003l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022003l.pfm b/Master/xemtex/gsfonts/n022003l.pfm
deleted file mode 100644
index 966b64ac46a..00000000000
--- a/Master/xemtex/gsfonts/n022003l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022004l.afm b/Master/xemtex/gsfonts/n022004l.afm
deleted file mode 100644
index 0e875070fcc..00000000000
--- a/Master/xemtex/gsfonts/n022004l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusMonL-Bold
-FullName Nimbus Mono L Bold
-FamilyName Nimbus Mono L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -43 -278 681 871
-CapHeight 583
-XHeight 437
-Descender -205
-Ascender 624
-StartCharMetrics 316
-C 32 ; WX 600 ; N space ; B 375 0 375 0 ;
-C 33 ; WX 600 ; N exclam ; B 220 -15 381 638 ;
-C 34 ; WX 600 ; N quotedbl ; B 136 312 464 602 ;
-C 35 ; WX 600 ; N numbersign ; B 62 -92 538 675 ;
-C 36 ; WX 600 ; N dollar ; B 83 -123 517 684 ;
-C 37 ; WX 600 ; N percent ; B 80 -15 521 617 ;
-C 38 ; WX 600 ; N ampersand ; B 75 -14 508 550 ;
-C 39 ; WX 600 ; N quoteright ; B 147 331 351 623 ;
-C 40 ; WX 600 ; N parenleft ; B 264 -153 488 632 ;
-C 41 ; WX 600 ; N parenright ; B 117 -153 341 632 ;
-C 42 ; WX 600 ; N asterisk ; B 83 208 517 622 ;
-C 43 ; WX 600 ; N plus ; B 42 0 558 560 ;
-C 44 ; WX 600 ; N comma ; B 147 -158 351 134 ;
-C 45 ; WX 600 ; N hyphen ; B 42 229 558 329 ;
-C 46 ; WX 600 ; N period ; B 225 -15 375 117 ;
-C 47 ; WX 600 ; N slash ; B 83 -113 517 695 ;
-C 48 ; WX 600 ; N zero ; B 83 -15 517 638 ;
-C 49 ; WX 600 ; N one ; B 83 0 517 638 ;
-C 50 ; WX 600 ; N two ; B 54 0 508 638 ;
-C 51 ; WX 600 ; N three ; B 66 -15 529 638 ;
-C 52 ; WX 600 ; N four ; B 75 0 508 622 ;
-C 53 ; WX 600 ; N five ; B 66 -15 529 622 ;
-C 54 ; WX 600 ; N six ; B 105 -15 540 638 ;
-C 55 ; WX 600 ; N seven ; B 75 -1 508 622 ;
-C 56 ; WX 600 ; N eight ; B 83 -15 517 638 ;
-C 57 ; WX 600 ; N nine ; B 106 -15 541 638 ;
-C 58 ; WX 600 ; N colon ; B 225 -15 375 437 ;
-C 59 ; WX 600 ; N semicolon ; B 147 -158 351 437 ;
-C 60 ; WX 600 ; N less ; B 42 54 544 501 ;
-C 61 ; WX 600 ; N equal ; B 42 138 558 422 ;
-C 62 ; WX 600 ; N greater ; B 56 53 558 500 ;
-C 63 ; WX 600 ; N question ; B 104 -15 517 598 ;
-C 64 ; WX 600 ; N at ; B 76 -152 509 620 ;
-C 65 ; WX 600 ; N A ; B -21 0 621 583 ;
-C 66 ; WX 600 ; N B ; B 13 0 571 583 ;
-C 67 ; WX 600 ; N C ; B 33 -14 564 597 ;
-C 68 ; WX 600 ; N D ; B 13 0 550 583 ;
-C 69 ; WX 600 ; N E ; B 13 0 550 583 ;
-C 70 ; WX 600 ; N F ; B 13 0 550 583 ;
-C 71 ; WX 600 ; N G ; B 33 -14 592 597 ;
-C 72 ; WX 600 ; N H ; B 23 0 581 583 ;
-C 73 ; WX 600 ; N I ; B 83 0 517 583 ;
-C 74 ; WX 600 ; N J ; B 54 -14 613 583 ;
-C 75 ; WX 600 ; N K ; B 13 0 602 583 ;
-C 76 ; WX 600 ; N L ; B 33 0 571 583 ;
-C 77 ; WX 600 ; N M ; B -19 0 623 584 ;
-C 78 ; WX 600 ; N N ; B -8 0 592 583 ;
-C 79 ; WX 600 ; N O ; B 21 -14 579 597 ;
-C 80 ; WX 600 ; N P ; B 13 0 529 583 ;
-C 81 ; WX 600 ; N Q ; B 21 -145 579 597 ;
-C 82 ; WX 600 ; N R ; B 13 0 619 583 ;
-C 83 ; WX 600 ; N S ; B 62 -14 538 597 ;
-C 84 ; WX 600 ; N T ; B 42 0 558 583 ;
-C 85 ; WX 600 ; N U ; B 10 -14 590 583 ;
-C 86 ; WX 600 ; N V ; B -21 0 621 583 ;
-C 87 ; WX 600 ; N W ; B -10 0 610 583 ;
-C 88 ; WX 600 ; N X ; B 10 0 590 583 ;
-C 89 ; WX 600 ; N Y ; B 21 0 579 583 ;
-C 90 ; WX 600 ; N Z ; B 73 0 527 583 ;
-C 91 ; WX 600 ; N bracketleft ; B 250 -148 475 627 ;
-C 92 ; WX 600 ; N backslash ; B 83 -113 517 695 ;
-C 93 ; WX 600 ; N bracketright ; B 125 -148 350 627 ;
-C 94 ; WX 600 ; N asciicircum ; B 83 325 517 652 ;
-C 95 ; WX 600 ; N underscore ; B -12 -125 612 -75 ;
-C 96 ; WX 600 ; N quoteleft ; B 249 348 453 602 ;
-C 97 ; WX 600 ; N a ; B 42 -16 571 450 ;
-C 98 ; WX 600 ; N b ; B -8 -14 571 624 ;
-C 99 ; WX 600 ; N c ; B 54 -16 565 450 ;
-C 100 ; WX 600 ; N d ; B 33 -14 613 624 ;
-C 101 ; WX 600 ; N e ; B 33 -16 550 450 ;
-C 102 ; WX 600 ; N f ; B 75 0 571 623 ;
-C 103 ; WX 600 ; N g ; B 33 -205 592 451 ;
-C 104 ; WX 600 ; N h ; B 13 0 581 624 ;
-C 105 ; WX 600 ; N i ; B 62 0 538 623 ;
-C 106 ; WX 600 ; N j ; B 117 -205 488 623 ;
-C 107 ; WX 600 ; N k ; B 33 0 571 624 ;
-C 108 ; WX 600 ; N l ; B 62 0 538 624 ;
-C 109 ; WX 600 ; N m ; B -19 0 623 450 ;
-C 110 ; WX 600 ; N n ; B 23 0 571 450 ;
-C 111 ; WX 600 ; N o ; B 42 -16 558 450 ;
-C 112 ; WX 600 ; N p ; B -8 -205 571 450 ;
-C 113 ; WX 600 ; N q ; B 33 -205 613 450 ;
-C 114 ; WX 600 ; N r ; B 54 0 571 449 ;
-C 115 ; WX 600 ; N s ; B 73 -16 527 450 ;
-C 116 ; WX 600 ; N t ; B 13 -16 529 591 ;
-C 117 ; WX 600 ; N u ; B 13 -13 571 437 ;
-C 118 ; WX 600 ; N v ; B 0 0 600 437 ;
-C 119 ; WX 600 ; N w ; B 0 0 600 437 ;
-C 120 ; WX 600 ; N x ; B 21 0 579 437 ;
-C 121 ; WX 600 ; N y ; B 21 -205 579 437 ;
-C 122 ; WX 600 ; N z ; B 85 0 519 437 ;
-C 123 ; WX 600 ; N braceleft ; B 167 -153 433 623 ;
-C 124 ; WX 600 ; N bar ; B 250 -153 350 622 ;
-C 125 ; WX 600 ; N braceright ; B 167 -153 433 623 ;
-C 126 ; WX 600 ; N asciitilde ; B 62 179 538 385 ;
-C 161 ; WX 600 ; N exclamdown ; B 220 -227 381 426 ;
-C 162 ; WX 600 ; N cent ; B 83 -44 499 661 ;
-C 163 ; WX 600 ; N sterling ; B 33 0 550 598 ;
-C 164 ; WX 600 ; N fraction ; B 21 102 580 500 ;
-C 165 ; WX 600 ; N yen ; B 21 0 579 580 ;
-C 166 ; WX 600 ; N florin ; B 57 -123 548 638 ;
-C 167 ; WX 600 ; N section ; B 36 -170 564 583 ;
-C 168 ; WX 600 ; N currency ; B 73 64 527 519 ;
-C 169 ; WX 600 ; N quotesingle ; B 236 312 364 602 ;
-C 170 ; WX 600 ; N quotedblleft ; B 98 348 502 602 ;
-C 171 ; WX 600 ; N guillemotleft ; B 33 20 571 415 ;
-C 172 ; WX 600 ; N guilsinglleft ; B 33 20 342 415 ;
-C 173 ; WX 600 ; N guilsinglright ; B 263 20 571 415 ;
-C 174 ; WX 600 ; N fi ; B -14 0 619 624 ;
-C 175 ; WX 600 ; N fl ; B -17 0 617 623 ;
-C 177 ; WX 600 ; N endash ; B 42 229 558 329 ;
-C 178 ; WX 600 ; N dagger ; B 94 -92 506 622 ;
-C 179 ; WX 600 ; N daggerdbl ; B 94 -92 506 622 ;
-C 180 ; WX 600 ; N periodcentered ; B 225 214 375 346 ;
-C 182 ; WX 600 ; N paragraph ; B 49 -174 558 583 ;
-C 183 ; WX 600 ; N bullet ; B 150 154 449 453 ;
-C 184 ; WX 600 ; N quotesinglbase ; B 147 -158 351 134 ;
-C 185 ; WX 600 ; N quotedblbase ; B 87 -120 491 134 ;
-C 186 ; WX 600 ; N quotedblright ; B 87 348 491 602 ;
-C 187 ; WX 600 ; N guillemotright ; B 33 20 571 415 ;
-C 188 ; WX 600 ; N ellipsis ; B 25 -15 575 117 ;
-C 189 ; WX 600 ; N perthousand ; B 0 0 600 618 ;
-C 191 ; WX 600 ; N questiondown ; B 83 -227 496 386 ;
-C 193 ; WX 600 ; N grave ; B 125 496 350 696 ;
-C 194 ; WX 600 ; N acute ; B 250 496 475 696 ;
-C 195 ; WX 600 ; N circumflex ; B 125 497 476 696 ;
-C 196 ; WX 600 ; N tilde ; B 115 523 485 656 ;
-C 197 ; WX 600 ; N macron ; B 125 546 475 626 ;
-C 198 ; WX 600 ; N breve ; B 125 503 475 687 ;
-C 199 ; WX 600 ; N dotaccent ; B 240 534 360 654 ;
-C 200 ; WX 600 ; N dieresis ; B 136 534 464 654 ;
-C 202 ; WX 600 ; N ring ; B 177 486 423 727 ;
-C 203 ; WX 600 ; N cedilla ; B 180 -229 407 0 ;
-C 205 ; WX 600 ; N hungarumlaut ; B 125 496 475 694 ;
-C 206 ; WX 600 ; N ogonek ; B 250 -208 463 0 ;
-C 207 ; WX 600 ; N caron ; B 125 497 476 696 ;
-C 208 ; WX 600 ; N emdash ; B -29 229 629 329 ;
-C 225 ; WX 600 ; N AE ; B -20 0 614 583 ;
-C 227 ; WX 600 ; N ordfeminine ; B 118 182 489 595 ;
-C 232 ; WX 600 ; N Lslash ; B 12 0 571 583 ;
-C 233 ; WX 600 ; N Oslash ; B 9 -70 590 638 ;
-C 234 ; WX 600 ; N OE ; B -20 0 612 583 ;
-C 235 ; WX 600 ; N ordmasculine ; B 122 182 480 595 ;
-C 241 ; WX 600 ; N ae ; B -13 -16 612 450 ;
-C 245 ; WX 600 ; N dotlessi ; B 62 0 538 437 ;
-C 248 ; WX 600 ; N lslash ; B 62 0 538 624 ;
-C 249 ; WX 600 ; N oslash ; B 23 -70 573 494 ;
-C 250 ; WX 600 ; N oe ; B -11 -16 613 450 ;
-C 251 ; WX 600 ; N germandbls ; B 13 -16 529 623 ;
-C -1 ; WX 600 ; N Udieresis ; B 10 -14 590 798 ;
-C -1 ; WX 600 ; N Uacute ; B 10 -14 590 839 ;
-C -1 ; WX 600 ; N Scedilla ; B 62 -229 538 597 ;
-C -1 ; WX 600 ; N Tcaron ; B 42 0 558 839 ;
-C -1 ; WX 600 ; N Scaron ; B 62 -14 538 839 ;
-C -1 ; WX 600 ; N Rcaron ; B 13 0 619 839 ;
-C -1 ; WX 600 ; N Racute ; B 13 0 619 839 ;
-C -1 ; WX 600 ; N Sacute ; B 62 -14 538 839 ;
-C -1 ; WX 600 ; N Otilde ; B 21 -14 579 799 ;
-C -1 ; WX 600 ; N ucircumflex ; B 13 -13 571 696 ;
-C -1 ; WX 600 ; N Ohungarumlaut ; B 21 -14 579 838 ;
-C -1 ; WX 600 ; N Uhungarumlaut ; B 10 -14 590 838 ;
-C -1 ; WX 600 ; N Yacute ; B 21 0 579 839 ;
-C -1 ; WX 600 ; N Eth ; B 0 0 550 583 ;
-C -1 ; WX 600 ; N Dcroat ; B 0 0 550 583 ;
-C -1 ; WX 600 ; N Zacute ; B 73 0 527 839 ;
-C -1 ; WX 600 ; N Uring ; B 10 -14 590 871 ;
-C -1 ; WX 600 ; N gbreve ; B 33 -205 592 687 ;
-C -1 ; WX 600 ; N eogonek ; B 33 -208 550 450 ;
-C -1 ; WX 600 ; N edotaccent ; B 33 -16 550 654 ;
-C -1 ; WX 600 ; N ecaron ; B 33 -16 550 696 ;
-C -1 ; WX 600 ; N Ugrave ; B 10 -14 590 839 ;
-C -1 ; WX 600 ; N Thorn ; B 14 0 523 583 ;
-C -1 ; WX 600 ; N eacute ; B 33 -16 550 696 ;
-C -1 ; WX 600 ; N edieresis ; B 33 -16 550 654 ;
-C -1 ; WX 600 ; N dcaron ; B 33 -14 681 637 ;
-C -1 ; WX 600 ; N ccedilla ; B 54 -229 565 450 ;
-C -1 ; WX 600 ; N ccaron ; B 54 -16 565 696 ;
-C -1 ; WX 600 ; N cacute ; B 54 -16 565 696 ;
-C -1 ; WX 600 ; N aogonek ; B 42 -208 580 450 ;
-C -1 ; WX 600 ; N aring ; B 42 -16 571 727 ;
-C -1 ; WX 600 ; N atilde ; B 42 -16 571 656 ;
-C -1 ; WX 600 ; N abreve ; B 42 -16 571 687 ;
-C -1 ; WX 600 ; N egrave ; B 33 -16 550 696 ;
-C -1 ; WX 600 ; N agrave ; B 42 -16 571 696 ;
-C -1 ; WX 600 ; N aacute ; B 42 -16 571 696 ;
-C -1 ; WX 600 ; N adieresis ; B 42 -16 571 654 ;
-C -1 ; WX 600 ; N Uogonek ; B 10 -208 590 583 ;
-C -1 ; WX 600 ; N ugrave ; B 13 -13 571 696 ;
-C -1 ; WX 600 ; N uacute ; B 13 -13 571 696 ;
-C -1 ; WX 600 ; N udieresis ; B 13 -13 571 654 ;
-C -1 ; WX 600 ; N tcaron ; B 13 -16 530 637 ;
-C -1 ; WX 600 ; N scommaaccent ; B 73 -278 527 450 ;
-C -1 ; WX 600 ; N Zcaron ; B 73 0 527 839 ;
-C -1 ; WX 600 ; N ecircumflex ; B 33 -16 550 696 ;
-C -1 ; WX 600 ; N Ucircumflex ; B 10 -14 590 839 ;
-C -1 ; WX 600 ; N acircumflex ; B 42 -16 571 696 ;
-C -1 ; WX 600 ; N Zdotaccent ; B 73 0 527 798 ;
-C -1 ; WX 600 ; N scaron ; B 73 -16 527 696 ;
-C -1 ; WX 600 ; N Amacron ; B -21 0 621 769 ;
-C -1 ; WX 600 ; N sacute ; B 73 -16 527 696 ;
-C -1 ; WX 600 ; N Tcommaaccent ; B 42 -278 558 583 ;
-C -1 ; WX 600 ; N Ydieresis ; B 21 0 579 798 ;
-C -1 ; WX 600 ; N thorn ; B -8 -205 571 624 ;
-C -1 ; WX 600 ; N Emacron ; B 13 0 550 769 ;
-C -1 ; WX 600 ; N Ograve ; B 21 -14 579 839 ;
-C -1 ; WX 600 ; N Oacute ; B 21 -14 579 839 ;
-C -1 ; WX 600 ; N Odieresis ; B 21 -14 579 798 ;
-C -1 ; WX 600 ; N Ntilde ; B -8 0 592 799 ;
-C -1 ; WX 600 ; N Ncaron ; B -8 0 592 839 ;
-C -1 ; WX 600 ; N Nacute ; B -8 0 592 839 ;
-C -1 ; WX 600 ; N Lcaron ; B 33 0 571 598 ;
-C -1 ; WX 600 ; N Lacute ; B 33 0 571 839 ;
-C -1 ; WX 600 ; N Idotaccent ; B 83 0 517 798 ;
-C -1 ; WX 600 ; N racute ; B 54 0 571 696 ;
-C -1 ; WX 600 ; N Icircumflex ; B 83 0 517 839 ;
-C -1 ; WX 600 ; N ohungarumlaut ; B 42 -16 558 694 ;
-C -1 ; WX 600 ; N otilde ; B 42 -16 558 656 ;
-C -1 ; WX 600 ; N Euro ; B 4 -14 538 597 ;
-C -1 ; WX 600 ; N ocircumflex ; B 42 -16 558 696 ;
-C -1 ; WX 600 ; N onesuperior ; B 166 247 434 638 ;
-C -1 ; WX 600 ; N twosuperior ; B 149 247 429 637 ;
-C -1 ; WX 600 ; N threesuperior ; B 157 238 442 637 ;
-C -1 ; WX 600 ; N Igrave ; B 83 0 517 839 ;
-C -1 ; WX 600 ; N Iacute ; B 83 0 517 839 ;
-C -1 ; WX 600 ; N Imacron ; B 83 0 517 769 ;
-C -1 ; WX 600 ; N Iogonek ; B 83 -208 517 583 ;
-C -1 ; WX 600 ; N Idieresis ; B 83 0 517 798 ;
-C -1 ; WX 600 ; N Gbreve ; B 33 -14 592 831 ;
-C -1 ; WX 600 ; N Umacron ; B 10 -14 590 769 ;
-C -1 ; WX 600 ; N Kcommaaccent ; B 13 -278 602 583 ;
-C -1 ; WX 600 ; N ograve ; B 42 -16 558 696 ;
-C -1 ; WX 600 ; N Scommaaccent ; B 62 -278 538 597 ;
-C -1 ; WX 600 ; N Eogonek ; B 13 -208 587 583 ;
-C -1 ; WX 600 ; N oacute ; B 42 -16 558 696 ;
-C -1 ; WX 600 ; N Edotaccent ; B 13 0 550 798 ;
-C -1 ; WX 600 ; N iogonek ; B 62 -208 540 623 ;
-C -1 ; WX 600 ; N gcommaaccent ; B 33 -205 592 721 ;
-C -1 ; WX 600 ; N odieresis ; B 42 -16 558 654 ;
-C -1 ; WX 600 ; N ntilde ; B 23 0 571 656 ;
-C -1 ; WX 600 ; N ncaron ; B 23 0 571 696 ;
-C -1 ; WX 600 ; N Ecaron ; B 13 0 550 839 ;
-C -1 ; WX 600 ; N Ecircumflex ; B 13 0 550 839 ;
-C -1 ; WX 600 ; N scedilla ; B 73 -229 527 450 ;
-C -1 ; WX 600 ; N rcaron ; B 54 0 571 696 ;
-C -1 ; WX 600 ; N Egrave ; B 13 0 550 839 ;
-C -1 ; WX 600 ; N Eacute ; B 13 0 550 839 ;
-C -1 ; WX 600 ; N Gcommaaccent ; B 33 -278 592 597 ;
-C -1 ; WX 600 ; N Rcommaaccent ; B 13 -278 619 583 ;
-C -1 ; WX 600 ; N Edieresis ; B 13 0 550 798 ;
-C -1 ; WX 600 ; N nacute ; B 23 0 571 696 ;
-C -1 ; WX 600 ; N uogonek ; B 13 -208 571 437 ;
-C -1 ; WX 600 ; N umacron ; B 13 -13 571 626 ;
-C -1 ; WX 600 ; N Dcaron ; B 13 0 550 839 ;
-C -1 ; WX 600 ; N lcaron ; B 62 0 538 637 ;
-C -1 ; WX 600 ; N Ccaron ; B 33 -14 564 839 ;
-C -1 ; WX 600 ; N Cacute ; B 33 -14 564 839 ;
-C -1 ; WX 600 ; N Ccedilla ; B 33 -229 564 597 ;
-C -1 ; WX 600 ; N degree ; B 125 243 475 596 ;
-C -1 ; WX 600 ; N Aogonek ; B -21 -208 621 583 ;
-C -1 ; WX 600 ; N minus ; B 42 230 558 330 ;
-C -1 ; WX 600 ; N multiply ; B 100 80 500 480 ;
-C -1 ; WX 600 ; N divide ; B 42 28 558 532 ;
-C -1 ; WX 600 ; N Aring ; B -21 0 621 871 ;
-C -1 ; WX 600 ; N trademark ; B -33 220 620 583 ;
-C -1 ; WX 600 ; N rcommaaccent ; B 54 -278 571 449 ;
-C -1 ; WX 600 ; N lacute ; B 62 0 538 840 ;
-C -1 ; WX 600 ; N omacron ; B 42 -16 558 626 ;
-C -1 ; WX 600 ; N Atilde ; B -21 0 621 799 ;
-C -1 ; WX 600 ; N icircumflex ; B 62 0 538 696 ;
-C -1 ; WX 600 ; N igrave ; B 62 0 538 696 ;
-C -1 ; WX 600 ; N ncommaaccent ; B 23 -278 571 450 ;
-C -1 ; WX 600 ; N lcommaaccent ; B 62 -278 538 624 ;
-C -1 ; WX 600 ; N plusminus ; B 42 0 558 624 ;
-C -1 ; WX 600 ; N onehalf ; B -34 0 629 638 ;
-C -1 ; WX 600 ; N onequarter ; B -34 0 629 638 ;
-C -1 ; WX 600 ; N threequarters ; B -43 0 630 637 ;
-C -1 ; WX 600 ; N iacute ; B 62 0 538 696 ;
-C -1 ; WX 600 ; N Abreve ; B -21 0 621 831 ;
-C -1 ; WX 600 ; N kcommaaccent ; B 33 -278 571 624 ;
-C -1 ; WX 600 ; N Omacron ; B 21 -14 579 769 ;
-C -1 ; WX 600 ; N imacron ; B 62 0 538 626 ;
-C -1 ; WX 600 ; N emacron ; B 33 -16 550 626 ;
-C -1 ; WX 600 ; N amacron ; B 42 -16 571 626 ;
-C -1 ; WX 600 ; N tcommaaccent ; B 13 -278 529 591 ;
-C -1 ; WX 600 ; N ydieresis ; B 21 -205 579 654 ;
-C -1 ; WX 600 ; N zdotaccent ; B 85 0 519 654 ;
-C -1 ; WX 600 ; N zcaron ; B 85 0 519 696 ;
-C -1 ; WX 600 ; N zacute ; B 85 0 519 696 ;
-C -1 ; WX 600 ; N yacute ; B 21 -205 579 696 ;
-C -1 ; WX 600 ; N uhungarumlaut ; B 13 -13 571 694 ;
-C -1 ; WX 600 ; N eth ; B 42 -16 558 646 ;
-C -1 ; WX 600 ; N uring ; B 13 -13 571 727 ;
-C -1 ; WX 600 ; N Ocircumflex ; B 21 -14 579 839 ;
-C -1 ; WX 600 ; N commaaccent ; B 183 -278 351 -59 ;
-C -1 ; WX 600 ; N copyright ; B -7 -15 606 598 ;
-C -1 ; WX 600 ; N registered ; B -7 -15 606 598 ;
-C -1 ; WX 600 ; N Acircumflex ; B -21 0 621 839 ;
-C -1 ; WX 600 ; N idieresis ; B 62 0 538 654 ;
-C -1 ; WX 600 ; N lozenge ; B 72 -19 529 593 ;
-C -1 ; WX 600 ; N Delta ; B 15 0 585 583 ;
-C -1 ; WX 600 ; N notequal ; B 42 22 558 525 ;
-C -1 ; WX 600 ; N radical ; B 12 -60 642 697 ;
-C -1 ; WX 600 ; N Agrave ; B -21 0 621 839 ;
-C -1 ; WX 600 ; N Aacute ; B -21 0 621 839 ;
-C -1 ; WX 600 ; N lessequal ; B 3 0 549 591 ;
-C -1 ; WX 600 ; N greaterequal ; B 35 0 582 591 ;
-C -1 ; WX 600 ; N logicalnot ; B 42 115 465 445 ;
-C -1 ; WX 600 ; N summation ; B 45 -97 538 671 ;
-C -1 ; WX 600 ; N partialdiff ; B 102 -16 524 590 ;
-C -1 ; WX 600 ; N Ncommaaccent ; B -8 -278 592 583 ;
-C -1 ; WX 600 ; N dcroat ; B 33 -16 613 624 ;
-C -1 ; WX 600 ; N brokenbar ; B 250 -153 350 622 ;
-C -1 ; WX 600 ; N Lcommaaccent ; B 33 -278 571 583 ;
-C -1 ; WX 600 ; N Adieresis ; B -21 0 621 798 ;
-C -1 ; WX 600 ; N mu ; B 13 -153 571 437 ;
-C -1 ; WX 600 ; N .notdef ; B 375 0 375 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -14
-KPX A Ccedilla -22
-KPX A G -10
-KPX A O -15
-KPX A Odieresis -15
-KPX A Q -16
-KPX A T -27
-KPX A U -23
-KPX A Uacute -23
-KPX A Ucircumflex -23
-KPX A Udieresis -23
-KPX A Ugrave -23
-KPX A V -59
-KPX A W -13
-KPX A Y -27
-KPX A a 15
-KPX A b 45
-KPX A c -4
-KPX A ccedilla -8
-KPX A comma -47
-KPX A d 4
-KPX A e 2
-KPX A g 0
-KPX A guillemotleft -40
-KPX A guilsinglleft -40
-KPX A hyphen -19
-KPX A o -3
-KPX A period -62
-KPX A q -4
-KPX A quotedblright -84
-KPX A quoteright -113
-KPX A t -20
-KPX A u -12
-KPX A v -39
-KPX A w -13
-KPX A y -39
-KPX Aacute C -14
-KPX Aacute G -10
-KPX Aacute O -15
-KPX Aacute Q -16
-KPX Aacute T -27
-KPX Aacute U -23
-KPX Aacute V -59
-KPX Aacute W -13
-KPX Aacute Y -27
-KPX Aacute a 15
-KPX Aacute b 45
-KPX Aacute c -4
-KPX Aacute comma -47
-KPX Aacute d 4
-KPX Aacute e 2
-KPX Aacute g 0
-KPX Aacute guillemotleft -40
-KPX Aacute guilsinglleft -40
-KPX Aacute hyphen -19
-KPX Aacute o -3
-KPX Aacute period -62
-KPX Aacute q -4
-KPX Aacute quoteright -113
-KPX Aacute t -20
-KPX Aacute u -12
-KPX Aacute v -39
-KPX Aacute w -13
-KPX Aacute y -39
-KPX Acircumflex C -14
-KPX Acircumflex G -10
-KPX Acircumflex O -15
-KPX Acircumflex Q -16
-KPX Acircumflex T -27
-KPX Acircumflex U -23
-KPX Acircumflex V -59
-KPX Acircumflex W -13
-KPX Acircumflex Y -27
-KPX Acircumflex comma -47
-KPX Acircumflex period -62
-KPX Adieresis C -14
-KPX Adieresis G -10
-KPX Adieresis O -15
-KPX Adieresis Q -16
-KPX Adieresis T -27
-KPX Adieresis U -23
-KPX Adieresis V -59
-KPX Adieresis W -13
-KPX Adieresis Y -27
-KPX Adieresis a 15
-KPX Adieresis b 45
-KPX Adieresis c -4
-KPX Adieresis comma -47
-KPX Adieresis d 4
-KPX Adieresis g 0
-KPX Adieresis guillemotleft -40
-KPX Adieresis guilsinglleft -40
-KPX Adieresis hyphen -19
-KPX Adieresis o -3
-KPX Adieresis period -62
-KPX Adieresis q -4
-KPX Adieresis quotedblright -84
-KPX Adieresis quoteright -113
-KPX Adieresis t -20
-KPX Adieresis u -12
-KPX Adieresis v -39
-KPX Adieresis w -13
-KPX Adieresis y -39
-KPX Agrave C -14
-KPX Agrave G -10
-KPX Agrave O -15
-KPX Agrave Q -16
-KPX Agrave T -27
-KPX Agrave U -23
-KPX Agrave V -59
-KPX Agrave W -13
-KPX Agrave Y -27
-KPX Agrave comma -47
-KPX Agrave period -62
-KPX Aring C -14
-KPX Aring G -10
-KPX Aring O -15
-KPX Aring Q -16
-KPX Aring T -27
-KPX Aring U -23
-KPX Aring V -59
-KPX Aring W -13
-KPX Aring Y -27
-KPX Aring a 15
-KPX Aring b 45
-KPX Aring c -4
-KPX Aring comma -47
-KPX Aring d 4
-KPX Aring e 2
-KPX Aring g 0
-KPX Aring guillemotleft -40
-KPX Aring guilsinglleft -40
-KPX Aring hyphen -19
-KPX Aring o -3
-KPX Aring period -62
-KPX Aring q -4
-KPX Aring quotedblright -84
-KPX Aring quoteright -113
-KPX Aring t -20
-KPX Aring u -12
-KPX Aring v -39
-KPX Aring w -13
-KPX Aring y -39
-KPX Atilde C -14
-KPX Atilde G -10
-KPX Atilde O -15
-KPX Atilde Q -16
-KPX Atilde T -27
-KPX Atilde U -23
-KPX Atilde V -59
-KPX Atilde W -13
-KPX Atilde Y -27
-KPX Atilde comma -47
-KPX Atilde period -62
-KPX B A 4
-KPX B AE 3
-KPX B Aacute 4
-KPX B Acircumflex 4
-KPX B Adieresis 4
-KPX B Aring 4
-KPX B Atilde 4
-KPX B O -9
-KPX B OE 11
-KPX B Oacute -9
-KPX B Ocircumflex -9
-KPX B Odieresis -9
-KPX B Ograve -9
-KPX B Oslash -5
-KPX B V -18
-KPX B W -6
-KPX B Y -39
-KPX C A 8
-KPX C AE 7
-KPX C Aacute 8
-KPX C Adieresis 8
-KPX C Aring 8
-KPX C H -13
-KPX C K -8
-KPX C O -14
-KPX C Oacute -14
-KPX C Odieresis -14
-KPX Ccedilla A 3
-KPX D A -25
-KPX D Aacute -25
-KPX D Acircumflex -25
-KPX D Adieresis -25
-KPX D Agrave -25
-KPX D Aring -25
-KPX D Atilde -25
-KPX D J -32
-KPX D T -27
-KPX D V -30
-KPX D W -13
-KPX D X -37
-KPX D Y -51
-KPX F A -39
-KPX F Aacute -39
-KPX F Acircumflex -39
-KPX F Adieresis -39
-KPX F Agrave -39
-KPX F Aring -39
-KPX F Atilde -39
-KPX F J -78
-KPX F O -24
-KPX F Odieresis -24
-KPX F a -40
-KPX F aacute -40
-KPX F adieresis -40
-KPX F ae -18
-KPX F aring -40
-KPX F comma -168
-KPX F e -47
-KPX F eacute -47
-KPX F hyphen -55
-KPX F i -46
-KPX F j -54
-KPX F o -51
-KPX F oacute -51
-KPX F odieresis -51
-KPX F oe -16
-KPX F oslash -51
-KPX F period -187
-KPX F r -32
-KPX F u -1
-KPX G A 6
-KPX G AE 5
-KPX G Aacute 6
-KPX G Acircumflex 6
-KPX G Adieresis 6
-KPX G Agrave 6
-KPX G Aring 6
-KPX G Atilde 6
-KPX G T -25
-KPX G V 6
-KPX G W 6
-KPX G Y -14
-KPX J A -8
-KPX J AE -16
-KPX J Adieresis -8
-KPX J Aring -8
-KPX K C -24
-KPX K G -19
-KPX K O -25
-KPX K OE -4
-KPX K Oacute -25
-KPX K Odieresis -25
-KPX K S -9
-KPX K T -13
-KPX K a 6
-KPX K adieresis 6
-KPX K ae 31
-KPX K aring 6
-KPX K e -6
-KPX K hyphen -44
-KPX K o -12
-KPX K oacute -12
-KPX K odieresis -12
-KPX K u -22
-KPX K udieresis -22
-KPX K y -50
-KPX L A 16
-KPX L AE 16
-KPX L Aacute 16
-KPX L Adieresis 16
-KPX L Aring 16
-KPX L C -10
-KPX L Ccedilla -11
-KPX L G -10
-KPX L O -7
-KPX L Oacute -7
-KPX L Ocircumflex -7
-KPX L Odieresis -7
-KPX L Ograve -7
-KPX L Otilde -7
-KPX L S -24
-KPX L T -52
-KPX L U -29
-KPX L Udieresis -29
-KPX L V -57
-KPX L W -22
-KPX L Y -52
-KPX L hyphen 9
-KPX L quotedblright -72
-KPX L quoteright -99
-KPX L u -10
-KPX L udieresis -11
-KPX L y -33
-KPX N A -3
-KPX N AE -3
-KPX N Aacute -3
-KPX N Adieresis -3
-KPX N Aring -3
-KPX N C -7
-KPX N Ccedilla -6
-KPX N G -6
-KPX N O -5
-KPX N Oacute -5
-KPX N Odieresis -5
-KPX N a -11
-KPX N aacute -11
-KPX N adieresis -11
-KPX N ae 18
-KPX N aring -11
-KPX N comma -75
-KPX N e -3
-KPX N eacute -3
-KPX N o -8
-KPX N oacute -8
-KPX N odieresis -8
-KPX N oslash -3
-KPX N period -93
-KPX N u -8
-KPX N udieresis -8
-KPX O A -14
-KPX O AE -14
-KPX O Aacute -14
-KPX O Adieresis -14
-KPX O Aring -14
-KPX O T -15
-KPX O V -23
-KPX O W -2
-KPX O X -26
-KPX O Y -43
-KPX Oacute A -14
-KPX Oacute T -15
-KPX Oacute V -23
-KPX Oacute W -2
-KPX Oacute Y -43
-KPX Ocircumflex T -15
-KPX Ocircumflex V -23
-KPX Ocircumflex Y -43
-KPX Odieresis A -14
-KPX Odieresis T -15
-KPX Odieresis V -23
-KPX Odieresis W -2
-KPX Odieresis X -26
-KPX Odieresis Y -43
-KPX Ograve T -15
-KPX Ograve V -23
-KPX Ograve Y -43
-KPX Oslash A -10
-KPX Otilde T -15
-KPX Otilde V -23
-KPX Otilde Y -43
-KPX P A -61
-KPX P AE -59
-KPX P Aacute -61
-KPX P Adieresis -61
-KPX P Aring -61
-KPX P J -73
-KPX P a -49
-KPX P aacute -49
-KPX P adieresis -49
-KPX P ae -27
-KPX P aring -49
-KPX P comma -160
-KPX P e -38
-KPX P eacute -38
-KPX P hyphen -33
-KPX P o -42
-KPX P oacute -42
-KPX P odieresis -42
-KPX P oe -13
-KPX P oslash -42
-KPX P period -178
-KPX R C -14
-KPX R Ccedilla -17
-KPX R G -10
-KPX R O -14
-KPX R OE 5
-KPX R Oacute -14
-KPX R Odieresis -14
-KPX R T -28
-KPX R U -16
-KPX R Udieresis -17
-KPX R V -24
-KPX R W -8
-KPX R Y -28
-KPX R a 14
-KPX R aacute 14
-KPX R adieresis 14
-KPX R ae 40
-KPX R aring 14
-KPX R e 2
-KPX R eacute 2
-KPX R hyphen -25
-KPX R o -3
-KPX R oacute -3
-KPX R odieresis -3
-KPX R oe 29
-KPX R u -7
-KPX R uacute -8
-KPX R udieresis -8
-KPX R y -18
-KPX S A -10
-KPX S AE -10
-KPX S Aacute -10
-KPX S Adieresis -10
-KPX S Aring -10
-KPX S T -41
-KPX S V -10
-KPX S W -12
-KPX S Y -31
-KPX S t -17
-KPX T A -28
-KPX T AE -28
-KPX T Aacute -28
-KPX T Acircumflex -28
-KPX T Adieresis -28
-KPX T Agrave -28
-KPX T Aring -28
-KPX T Atilde -28
-KPX T C -19
-KPX T G -19
-KPX T J -65
-KPX T O -14
-KPX T OE 6
-KPX T Oacute -14
-KPX T Ocircumflex -14
-KPX T Odieresis -14
-KPX T Ograve -14
-KPX T Oslash -14
-KPX T Otilde -14
-KPX T S -41
-KPX T V 10
-KPX T W 4
-KPX T Y -10
-KPX T a -34
-KPX T ae -12
-KPX T c -37
-KPX T colon -112
-KPX T comma -130
-KPX T e -26
-KPX T g -24
-KPX T guillemotleft -73
-KPX T guilsinglleft -73
-KPX T hyphen -91
-KPX T i -42
-KPX T j -49
-KPX T o -31
-KPX T oslash -31
-KPX T period -148
-KPX T r -28
-KPX T s -39
-KPX T semicolon -100
-KPX T u 4
-KPX T v 10
-KPX T w 10
-KPX T y 0
-KPX U A -19
-KPX U AE -18
-KPX U Aacute -19
-KPX U Acircumflex -19
-KPX U Adieresis -19
-KPX U Aring -19
-KPX U Atilde -19
-KPX U comma -95
-KPX U m 16
-KPX U n -8
-KPX U p 0
-KPX U period -114
-KPX U r -34
-KPX Uacute A -19
-KPX Uacute comma -95
-KPX Uacute m 16
-KPX Uacute n -8
-KPX Uacute p 0
-KPX Uacute period -114
-KPX Uacute r -34
-KPX Ucircumflex A -19
-KPX Udieresis A -19
-KPX Udieresis b 27
-KPX Udieresis comma -95
-KPX Udieresis m 16
-KPX Udieresis n -8
-KPX Udieresis p 0
-KPX Udieresis period -114
-KPX Udieresis r -34
-KPX Ugrave A -19
-KPX V A -4
-KPX V AE -12
-KPX V Aacute -4
-KPX V Acircumflex -4
-KPX V Adieresis -4
-KPX V Agrave -4
-KPX V Aring -4
-KPX V Atilde -4
-KPX V C -24
-KPX V G -24
-KPX V O -23
-KPX V Oacute -23
-KPX V Ocircumflex -23
-KPX V Odieresis -23
-KPX V Ograve -23
-KPX V Oslash -23
-KPX V Otilde -23
-KPX V S -27
-KPX V T 10
-KPX V a -54
-KPX V ae -27
-KPX V colon -132
-KPX V comma -146
-KPX V e -47
-KPX V g -46
-KPX V guillemotleft -75
-KPX V guilsinglleft -75
-KPX V hyphen -39
-KPX V i -59
-KPX V o -52
-KPX V oslash -48
-KPX V period -164
-KPX V r -45
-KPX V semicolon -120
-KPX V u -15
-KPX V y -17
-KPX W A -9
-KPX W AE -9
-KPX W Aacute -9
-KPX W Acircumflex -9
-KPX W Adieresis -9
-KPX W Agrave -9
-KPX W Aring -9
-KPX W Atilde -9
-KPX W C -4
-KPX W G -3
-KPX W O -2
-KPX W Oacute -2
-KPX W Ocircumflex -2
-KPX W Odieresis -2
-KPX W Ograve -2
-KPX W Oslash 2
-KPX W Otilde -2
-KPX W S -17
-KPX W T 4
-KPX W a -11
-KPX W ae 17
-KPX W colon -99
-KPX W comma -83
-KPX W e -3
-KPX W g -3
-KPX W guillemotleft -31
-KPX W guilsinglleft -31
-KPX W hyphen 1
-KPX W i -38
-KPX W o -8
-KPX W oslash -4
-KPX W period -101
-KPX W r -25
-KPX W semicolon -82
-KPX W u 1
-KPX W y -2
-KPX X C -28
-KPX X O -26
-KPX X Odieresis -26
-KPX X Q -26
-KPX X a 0
-KPX X e -12
-KPX X hyphen -50
-KPX X o -18
-KPX X u -28
-KPX X y -43
-KPX Y A -25
-KPX Y AE -28
-KPX Y Aacute -25
-KPX Y Acircumflex -25
-KPX Y Adieresis -25
-KPX Y Agrave -25
-KPX Y Aring -25
-KPX Y Atilde -25
-KPX Y C -45
-KPX Y G -45
-KPX Y O -44
-KPX Y Oacute -44
-KPX Y Ocircumflex -44
-KPX Y Odieresis -44
-KPX Y Ograve -44
-KPX Y Oslash -43
-KPX Y Otilde -44
-KPX Y S -48
-KPX Y T -10
-KPX Y a -53
-KPX Y ae -28
-KPX Y colon -150
-KPX Y comma -118
-KPX Y e -59
-KPX Y g -59
-KPX Y guillemotleft -94
-KPX Y guilsinglleft -94
-KPX Y hyphen -81
-KPX Y i -58
-KPX Y o -64
-KPX Y oslash -51
-KPX Y p -30
-KPX Y period -136
-KPX Y semicolon -133
-KPX Y u -43
-KPX Y v -33
-KPX Z v -41
-KPX Z y -52
-KPX a j -81
-KPX a quoteright -78
-KPX a v -21
-KPX a w -12
-KPX a y -31
-KPX aacute v -21
-KPX aacute w -12
-KPX aacute y -31
-KPX adieresis v -21
-KPX adieresis w -12
-KPX adieresis y -31
-KPX ae v 28
-KPX ae w 32
-KPX ae y 18
-KPX agrave v -21
-KPX agrave w -12
-KPX agrave y -31
-KPX aring v -21
-KPX aring w -12
-KPX aring y -31
-KPX b v 0
-KPX b w 4
-KPX b y -10
-KPX c h 11
-KPX c k 6
-KPX comma one -128
-KPX comma quotedblright -137
-KPX comma quoteright -166
-KPX e quoteright -65
-KPX e t -16
-KPX e v -9
-KPX e w -3
-KPX e x 6
-KPX e y -20
-KPX eacute v -9
-KPX eacute w -3
-KPX eacute y -20
-KPX ecircumflex v -9
-KPX ecircumflex w -3
-KPX ecircumflex y -20
-KPX eight four -58
-KPX eight one -72
-KPX eight seven -65
-KPX f a -32
-KPX f aacute -32
-KPX f adieresis -32
-KPX f ae -7
-KPX f aring -32
-KPX f e -43
-KPX f eacute -43
-KPX f f -43
-KPX f i -37
-KPX f j -60
-KPX f l -25
-KPX f o -47
-KPX f oacute -47
-KPX f odieresis -42
-KPX f oe -15
-KPX f oslash -29
-KPX f quoteright -73
-KPX f s -42
-KPX f t -6
-KPX five four -52
-KPX five one -73
-KPX five seven -73
-KPX four four -62
-KPX four one -66
-KPX four seven -93
-KPX g a -4
-KPX g adieresis -4
-KPX g ae 23
-KPX g aring -4
-KPX g e 1
-KPX g eacute 1
-KPX g l -34
-KPX g oacute -3
-KPX g odieresis -3
-KPX g r 0
-KPX guillemotright A -37
-KPX guillemotright AE -34
-KPX guillemotright Aacute -37
-KPX guillemotright Adieresis -37
-KPX guillemotright Aring -37
-KPX guillemotright T -71
-KPX guillemotright V -72
-KPX guillemotright W -29
-KPX guillemotright Y -92
-KPX guilsinglright A -37
-KPX guilsinglright AE -34
-KPX guilsinglright Aacute -37
-KPX guilsinglright Adieresis -37
-KPX guilsinglright Aring -37
-KPX guilsinglright T -71
-KPX guilsinglright V -72
-KPX guilsinglright W -29
-KPX guilsinglright Y -92
-KPX h quoteright -69
-KPX h y -23
-KPX hyphen A -18
-KPX hyphen AE -14
-KPX hyphen Aacute -18
-KPX hyphen Adieresis -18
-KPX hyphen Aring -18
-KPX hyphen T -90
-KPX hyphen V -38
-KPX hyphen W 1
-KPX hyphen Y -81
-KPX i T -58
-KPX i j -143
-KPX k a 1
-KPX k aacute 1
-KPX k adieresis 1
-KPX k ae 26
-KPX k aring 1
-KPX k comma -63
-KPX k e -11
-KPX k eacute -11
-KPX k g -14
-KPX k hyphen -50
-KPX k o -17
-KPX k oacute -17
-KPX k odieresis -17
-KPX k period -75
-KPX k s -9
-KPX k u -3
-KPX k udieresis -3
-KPX l v -77
-KPX l y -77
-KPX m p 32
-KPX m v 18
-KPX m w 22
-KPX m y 8
-KPX n T -40
-KPX n p 4
-KPX n quoteright -68
-KPX n v -12
-KPX n w -5
-KPX n y -22
-KPX nine four -53
-KPX nine one -66
-KPX nine seven -57
-KPX o T -31
-KPX o quoteright -62
-KPX o t -13
-KPX o v -6
-KPX o w -3
-KPX o x -10
-KPX o y -17
-KPX oacute v -6
-KPX oacute w -3
-KPX oacute y -17
-KPX ocircumflex t -13
-KPX odieresis t -13
-KPX odieresis v -6
-KPX odieresis w -3
-KPX odieresis x -10
-KPX odieresis y -17
-KPX ograve v -6
-KPX ograve w -3
-KPX ograve y -17
-KPX one comma -99
-KPX one eight -74
-KPX one five -55
-KPX one four -87
-KPX one nine -73
-KPX one one -62
-KPX one period -114
-KPX one seven -141
-KPX one six -98
-KPX one three -53
-KPX one two -47
-KPX one zero -86
-KPX p t -3
-KPX p y -6
-KPX period one -113
-KPX period quotedblright -131
-KPX period quoteright -161
-KPX q c 2
-KPX q u 41
-KPX quotedblbase A -6
-KPX quotedblbase AE -7
-KPX quotedblbase T -90
-KPX quotedblbase V -104
-KPX quotedblbase W -43
-KPX quotedblbase Y -78
-KPX quotedblleft A -62
-KPX quotedblleft AE -60
-KPX quotedblleft Aacute -62
-KPX quotedblleft Adieresis -62
-KPX quotedblleft Aring -62
-KPX quotedblleft T -24
-KPX quotedblleft V -22
-KPX quotedblleft W -13
-KPX quotedblleft Y -49
-KPX quotedblright A -76
-KPX quotedblright AE -75
-KPX quotedblright Aacute -76
-KPX quotedblright Adieresis -76
-KPX quotedblright Aring -76
-KPX quotedblright T -39
-KPX quotedblright V -30
-KPX quotedblright W -26
-KPX quotedblright Y -51
-KPX quoteleft A -87
-KPX quoteleft AE -85
-KPX quoteleft Aacute -87
-KPX quoteleft Adieresis -87
-KPX quoteleft Aring -87
-KPX quoteleft T -49
-KPX quoteleft V -46
-KPX quoteleft W -38
-KPX quoteleft Y -73
-KPX quoteright A -154
-KPX quoteright AE -153
-KPX quoteright Aacute -154
-KPX quoteright Adieresis -154
-KPX quoteright Aring -154
-KPX quoteright comma -227
-KPX quoteright d -140
-KPX quoteright o -143
-KPX quoteright period -244
-KPX quoteright r -149
-KPX quoteright s -150
-KPX quoteright t -117
-KPX quoteright v -110
-KPX quoteright w -105
-KPX quoteright y -116
-KPX r a -17
-KPX r aacute -17
-KPX r acircumflex -17
-KPX r adieresis -17
-KPX r ae 4
-KPX r agrave -17
-KPX r aring -17
-KPX r c -18
-KPX r ccedilla -15
-KPX r colon -95
-KPX r comma -108
-KPX r d -8
-KPX r e -7
-KPX r eacute -7
-KPX r ecircumflex -7
-KPX r egrave -7
-KPX r f -16
-KPX r g -5
-KPX r h -20
-KPX r hyphen -41
-KPX r i -25
-KPX r j -33
-KPX r k -30
-KPX r l -47
-KPX r m 36
-KPX r n 10
-KPX r o -12
-KPX r oacute -12
-KPX r ocircumflex -12
-KPX r odieresis -12
-KPX r oe 18
-KPX r ograve -12
-KPX r oslash -12
-KPX r p 30
-KPX r period -122
-KPX r q -4
-KPX r quoteright -41
-KPX r r -11
-KPX r s -21
-KPX r semicolon -83
-KPX r t 20
-KPX r u 20
-KPX r v 26
-KPX r w 26
-KPX r x 7
-KPX r y 16
-KPX r z -21
-KPX s quoteright -60
-KPX s t -11
-KPX seven colon -156
-KPX seven comma -157
-KPX seven eight -74
-KPX seven five -82
-KPX seven four -101
-KPX seven one -67
-KPX seven period -176
-KPX seven seven -62
-KPX seven six -93
-KPX seven three -72
-KPX seven two -64
-KPX six four -49
-KPX six one -54
-KPX six seven -46
-KPX t S -35
-KPX t a -16
-KPX t aacute -16
-KPX t adieresis -16
-KPX t ae 9
-KPX t aring -16
-KPX t colon -117
-KPX t e -24
-KPX t eacute -24
-KPX t h -5
-KPX t o -30
-KPX t oacute -30
-KPX t odieresis -30
-KPX t quoteright -102
-KPX t semicolon -103
-KPX three four -52
-KPX three one -71
-KPX three seven -64
-KPX two four -67
-KPX two one -66
-KPX two seven -68
-KPX u quoteright -56
-KPX v a -3
-KPX v aacute -3
-KPX v acircumflex -3
-KPX v adieresis -3
-KPX v ae 18
-KPX v agrave -3
-KPX v aring -3
-KPX v atilde -3
-KPX v c -11
-KPX v colon -81
-KPX v comma -136
-KPX v e 0
-KPX v eacute 0
-KPX v ecircumflex 0
-KPX v egrave 0
-KPX v g 1
-KPX v hyphen -23
-KPX v l -77
-KPX v o -5
-KPX v oacute -5
-KPX v odieresis -5
-KPX v ograve -5
-KPX v oslash -5
-KPX v period -156
-KPX v s -11
-KPX v semicolon -69
-KPX w a -3
-KPX w aacute -3
-KPX w acircumflex -3
-KPX w adieresis -3
-KPX w ae 23
-KPX w agrave -3
-KPX w aring -3
-KPX w atilde -3
-KPX w c -6
-KPX w colon -81
-KPX w comma -90
-KPX w e 2
-KPX w eacute 2
-KPX w ecircumflex 2
-KPX w egrave 2
-KPX w g 3
-KPX w hyphen 3
-KPX w l -48
-KPX w o -2
-KPX w oacute -2
-KPX w odieresis -2
-KPX w ograve -2
-KPX w oslash 2
-KPX w period -109
-KPX w s -11
-KPX w semicolon -69
-KPX x a 5
-KPX x c -14
-KPX x e -5
-KPX x eacute -5
-KPX x o -10
-KPX x q -8
-KPX y a -13
-KPX y aacute -13
-KPX y acircumflex -13
-KPX y adieresis -13
-KPX y ae 8
-KPX y agrave -13
-KPX y aring -13
-KPX y atilde -13
-KPX y c -21
-KPX y colon -91
-KPX y comma -134
-KPX y e -11
-KPX y eacute -11
-KPX y ecircumflex -11
-KPX y egrave -11
-KPX y g -9
-KPX y hyphen -19
-KPX y l -78
-KPX y o -15
-KPX y oacute -15
-KPX y odieresis -15
-KPX y ograve -15
-KPX y oslash -15
-KPX y period -155
-KPX y s -21
-KPX y semicolon -79
-KPX zero four -59
-KPX zero one -76
-KPX zero seven -68
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n022004l.pfb b/Master/xemtex/gsfonts/n022004l.pfb
deleted file mode 100644
index 1b981043fc6..00000000000
--- a/Master/xemtex/gsfonts/n022004l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022004l.pfm b/Master/xemtex/gsfonts/n022004l.pfm
deleted file mode 100644
index fd2eb8f2fbe..00000000000
--- a/Master/xemtex/gsfonts/n022004l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022023l.afm b/Master/xemtex/gsfonts/n022023l.afm
deleted file mode 100644
index 6dccc7ed56a..00000000000
--- a/Master/xemtex/gsfonts/n022023l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusMonL-ReguObli
-FullName Nimbus Mono L Regular Oblique
-FamilyName Nimbus Mono L
-Weight Regular
-ItalicAngle -12.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -61 -237 774 811
-CapHeight 563
-XHeight 417
-Descender -186
-Ascender 604
-StartCharMetrics 316
-C 32 ; WX 600 ; N space ; B 319 0 319 0 ;
-C 33 ; WX 600 ; N exclam ; B 246 -15 463 618 ;
-C 34 ; WX 600 ; N quotedbl ; B 254 315 582 604 ;
-C 35 ; WX 600 ; N numbersign ; B 137 -62 589 647 ;
-C 36 ; WX 600 ; N dollar ; B 131 -92 582 655 ;
-C 37 ; WX 600 ; N percent ; B 137 -12 591 611 ;
-C 38 ; WX 600 ; N ampersand ; B 132 -16 527 519 ;
-C 39 ; WX 600 ; N quoteright ; B 207 314 468 604 ;
-C 40 ; WX 600 ; N parenleft ; B 335 -124 583 604 ;
-C 41 ; WX 600 ; N parenright ; B 124 -124 372 604 ;
-C 42 ; WX 600 ; N asterisk ; B 211 250 586 604 ;
-C 43 ; WX 600 ; N plus ; B 131 32 588 530 ;
-C 44 ; WX 600 ; N comma ; B 110 -145 371 145 ;
-C 45 ; WX 600 ; N hyphen ; B 131 258 588 299 ;
-C 46 ; WX 600 ; N period ; B 235 -15 386 116 ;
-C 47 ; WX 600 ; N slash ; B 99 -81 625 668 ;
-C 48 ; WX 600 ; N zero ; B 156 -15 571 618 ;
-C 49 ; WX 600 ; N one ; B 117 0 492 612 ;
-C 50 ; WX 600 ; N two ; B 84 0 572 618 ;
-C 51 ; WX 600 ; N three ; B 110 -15 579 618 ;
-C 52 ; WX 600 ; N four ; B 141 0 545 604 ;
-C 53 ; WX 600 ; N five ; B 113 -15 584 604 ;
-C 54 ; WX 600 ; N six ; B 184 -15 631 618 ;
-C 55 ; WX 600 ; N seven ; B 215 -1 606 604 ;
-C 56 ; WX 600 ; N eight ; B 143 -15 576 618 ;
-C 57 ; WX 600 ; N nine ; B 142 -15 589 618 ;
-C 58 ; WX 600 ; N colon ; B 235 -15 450 417 ;
-C 59 ; WX 600 ; N semicolon ; B 114 -145 426 417 ;
-C 60 ; WX 600 ; N less ; B 131 44 627 518 ;
-C 61 ; WX 600 ; N equal ; B 95 190 625 375 ;
-C 62 ; WX 600 ; N greater ; B 92 44 588 518 ;
-C 63 ; WX 600 ; N question ; B 231 -15 581 577 ;
-C 64 ; WX 600 ; N at ; B 139 -62 561 624 ;
-C 65 ; WX 600 ; N A ; B 13 0 596 563 ;
-C 66 ; WX 600 ; N B ; B 47 0 591 563 ;
-C 67 ; WX 600 ; N C ; B 110 -16 635 576 ;
-C 68 ; WX 600 ; N D ; B 47 0 592 563 ;
-C 69 ; WX 600 ; N E ; B 47 0 619 563 ;
-C 70 ; WX 600 ; N F ; B 47 0 640 563 ;
-C 71 ; WX 600 ; N G ; B 108 -16 636 576 ;
-C 72 ; WX 600 ; N H ; B 57 0 646 563 ;
-C 73 ; WX 600 ; N I ; B 117 0 603 563 ;
-C 74 ; WX 600 ; N J ; B 100 -16 699 563 ;
-C 75 ; WX 600 ; N K ; B 47 0 662 563 ;
-C 76 ; WX 600 ; N L ; B 67 0 585 563 ;
-C 77 ; WX 600 ; N M ; B 15 0 700 563 ;
-C 78 ; WX 600 ; N N ; B 46 0 678 563 ;
-C 79 ; WX 600 ; N O ; B 102 -16 616 576 ;
-C 80 ; WX 600 ; N P ; B 47 0 587 563 ;
-C 81 ; WX 600 ; N Q ; B 102 -115 616 576 ;
-C 82 ; WX 600 ; N R ; B 47 0 594 563 ;
-C 83 ; WX 600 ; N S ; B 96 -17 602 577 ;
-C 84 ; WX 600 ; N T ; B 152 0 648 563 ;
-C 85 ; WX 600 ; N U ; B 136 -16 676 563 ;
-C 86 ; WX 600 ; N V ; B 124 0 707 563 ;
-C 87 ; WX 600 ; N W ; B 122 0 696 563 ;
-C 88 ; WX 600 ; N X ; B 44 0 662 563 ;
-C 89 ; WX 600 ; N Y ; B 153 0 665 563 ;
-C 90 ; WX 600 ; N Z ; B 103 0 590 563 ;
-C 91 ; WX 600 ; N bracketleft ; B 254 -124 570 604 ;
-C 92 ; WX 600 ; N backslash ; B 250 -81 474 668 ;
-C 93 ; WX 600 ; N bracketright ; B 132 -124 448 604 ;
-C 94 ; WX 600 ; N asciicircum ; B 192 354 567 615 ;
-C 95 ; WX 600 ; N underscore ; B -61 -125 564 -75 ;
-C 96 ; WX 600 ; N quoteleft ; B 388 343 544 604 ;
-C 97 ; WX 600 ; N a ; B 93 -16 546 431 ;
-C 98 ; WX 600 ; N b ; B 26 -16 591 604 ;
-C 99 ; WX 600 ; N c ; B 121 -17 596 432 ;
-C 100 ; WX 600 ; N d ; B 102 -16 630 604 ;
-C 101 ; WX 600 ; N e ; B 104 -16 570 431 ;
-C 102 ; WX 600 ; N f ; B 109 0 663 604 ;
-C 103 ; WX 600 ; N g ; B 105 -186 647 431 ;
-C 104 ; WX 600 ; N h ; B 55 0 556 604 ;
-C 105 ; WX 600 ; N i ; B 96 0 513 624 ;
-C 106 ; WX 600 ; N j ; B 112 -186 547 624 ;
-C 107 ; WX 600 ; N k ; B 67 0 578 604 ;
-C 108 ; WX 600 ; N l ; B 96 0 513 604 ;
-C 109 ; WX 600 ; N m ; B 15 0 603 431 ;
-C 110 ; WX 600 ; N n ; B 57 0 546 431 ;
-C 111 ; WX 600 ; N o ; B 111 -16 577 431 ;
-C 112 ; WX 600 ; N p ; B -13 -186 593 431 ;
-C 113 ; WX 600 ; N q ; B 105 -186 668 431 ;
-C 114 ; WX 600 ; N r ; B 88 0 619 427 ;
-C 115 ; WX 600 ; N s ; B 108 -17 558 431 ;
-C 116 ; WX 600 ; N t ; B 127 -16 518 563 ;
-C 117 ; WX 600 ; N u ; B 127 -16 569 417 ;
-C 118 ; WX 600 ; N v ; B 114 0 655 417 ;
-C 119 ; WX 600 ; N w ; B 114 0 655 417 ;
-C 120 ; WX 600 ; N x ; B 55 0 611 417 ;
-C 121 ; WX 600 ; N y ; B 22 -186 634 417 ;
-C 122 ; WX 600 ; N z ; B 115 0 563 417 ;
-C 123 ; WX 600 ; N braceleft ; B 248 -124 528 604 ;
-C 124 ; WX 600 ; N bar ; B 257 -124 444 604 ;
-C 125 ; WX 600 ; N braceright ; B 175 -124 455 604 ;
-C 126 ; WX 600 ; N asciitilde ; B 145 212 575 348 ;
-C 161 ; WX 600 ; N exclamdown ; B 222 -216 439 417 ;
-C 162 ; WX 600 ; N cent ; B 175 -13 563 630 ;
-C 163 ; WX 600 ; N sterling ; B 90 0 541 578 ;
-C 164 ; WX 600 ; N fraction ; B 84 138 645 470 ;
-C 165 ; WX 600 ; N yen ; B 161 0 665 563 ;
-C 166 ; WX 600 ; N florin ; B 74 -93 643 618 ;
-C 167 ; WX 600 ; N section ; B 91 -62 624 603 ;
-C 168 ; WX 600 ; N currency ; B 127 95 597 489 ;
-C 169 ; WX 600 ; N quotesingle ; B 344 315 492 604 ;
-C 170 ; WX 600 ; N quotedblleft ; B 221 343 586 604 ;
-C 171 ; WX 600 ; N guillemotleft ; B 108 0 626 417 ;
-C 172 ; WX 600 ; N guilsinglleft ; B 108 0 397 417 ;
-C 173 ; WX 600 ; N guilsinglright ; B 297 0 585 417 ;
-C 174 ; WX 600 ; N fi ; B 14 0 615 624 ;
-C 175 ; WX 600 ; N fl ; B 14 0 611 604 ;
-C 177 ; WX 600 ; N endash ; B 131 261 588 302 ;
-C 178 ; WX 600 ; N dagger ; B 208 -63 561 604 ;
-C 179 ; WX 600 ; N daggerdbl ; B 154 -62 561 604 ;
-C 180 ; WX 600 ; N periodcentered ; B 285 217 436 348 ;
-C 182 ; WX 600 ; N paragraph ; B 152 -62 648 604 ;
-C 183 ; WX 600 ; N bullet ; B 253 141 449 337 ;
-C 184 ; WX 600 ; N quotesinglbase ; B 110 -145 371 145 ;
-C 185 ; WX 600 ; N quotedblbase ; B 73 -116 538 145 ;
-C 186 ; WX 600 ; N quotedblright ; B 170 343 635 604 ;
-C 187 ; WX 600 ; N guillemotright ; B 67 0 585 417 ;
-C 188 ; WX 600 ; N ellipsis ; B 57 -15 557 84 ;
-C 189 ; WX 600 ; N perthousand ; B 91 -9 598 614 ;
-C 191 ; WX 600 ; N questiondown ; B 105 -175 455 417 ;
-C 193 ; WX 600 ; N grave ; B 286 490 429 639 ;
-C 194 ; WX 600 ; N acute ; B 388 490 577 639 ;
-C 195 ; WX 600 ; N circumflex ; B 263 490 554 639 ;
-C 196 ; WX 600 ; N tilde ; B 258 516 579 605 ;
-C 197 ; WX 600 ; N macron ; B 273 536 564 576 ;
-C 198 ; WX 600 ; N breve ; B 280 489 574 621 ;
-C 199 ; WX 600 ; N dotaccent ; B 368 511 470 611 ;
-C 200 ; WX 600 ; N dieresis ; B 258 511 581 611 ;
-C 202 ; WX 600 ; N ring ; B 326 480 516 661 ;
-C 203 ; WX 600 ; N cedilla ; B 181 -173 356 0 ;
-C 205 ; WX 600 ; N hungarumlaut ; B 263 490 576 633 ;
-C 206 ; WX 600 ; N ogonek ; B 258 -155 408 0 ;
-C 207 ; WX 600 ; N caron ; B 286 490 577 639 ;
-C 208 ; WX 600 ; N emdash ; B 60 261 659 302 ;
-C 225 ; WX 600 ; N AE ; B 14 0 690 563 ;
-C 227 ; WX 600 ; N ordfeminine ; B 229 279 511 574 ;
-C 232 ; WX 600 ; N Lslash ; B 66 0 586 563 ;
-C 233 ; WX 600 ; N Oslash ; B 34 -43 685 605 ;
-C 234 ; WX 600 ; N OE ; B 62 0 690 563 ;
-C 235 ; WX 600 ; N ordmasculine ; B 243 284 543 577 ;
-C 241 ; WX 600 ; N ae ; B 36 -16 630 431 ;
-C 245 ; WX 600 ; N dotlessi ; B 96 0 513 417 ;
-C 248 ; WX 600 ; N lslash ; B 96 0 524 604 ;
-C 249 ; WX 600 ; N oslash ; B 47 -43 637 458 ;
-C 250 ; WX 600 ; N oe ; B 50 -16 630 431 ;
-C 251 ; WX 600 ; N germandbls ; B 47 -16 539 604 ;
-C -1 ; WX 600 ; N Udieresis ; B 136 -16 676 762 ;
-C -1 ; WX 600 ; N Uacute ; B 136 -16 676 789 ;
-C -1 ; WX 600 ; N Scedilla ; B 96 -179 602 577 ;
-C -1 ; WX 600 ; N Tcaron ; B 152 0 648 789 ;
-C -1 ; WX 600 ; N Scaron ; B 96 -17 618 789 ;
-C -1 ; WX 600 ; N Rcaron ; B 47 0 594 789 ;
-C -1 ; WX 600 ; N Racute ; B 47 0 594 789 ;
-C -1 ; WX 600 ; N Sacute ; B 96 -17 602 789 ;
-C -1 ; WX 600 ; N Otilde ; B 103 -16 618 755 ;
-C -1 ; WX 600 ; N ucircumflex ; B 127 -16 569 639 ;
-C -1 ; WX 600 ; N Ohungarumlaut ; B 102 -16 672 787 ;
-C -1 ; WX 600 ; N Uhungarumlaut ; B 136 -16 676 787 ;
-C -1 ; WX 600 ; N Yacute ; B 153 0 665 789 ;
-C -1 ; WX 600 ; N Eth ; B 47 0 592 563 ;
-C -1 ; WX 600 ; N Dcroat ; B 47 0 592 563 ;
-C -1 ; WX 600 ; N Zacute ; B 103 0 590 789 ;
-C -1 ; WX 600 ; N Uring ; B 136 -16 676 807 ;
-C -1 ; WX 600 ; N gbreve ; B 105 -186 647 621 ;
-C -1 ; WX 600 ; N eogonek ; B 104 -155 570 431 ;
-C -1 ; WX 600 ; N edotaccent ; B 104 -16 570 611 ;
-C -1 ; WX 600 ; N ecaron ; B 104 -16 577 639 ;
-C -1 ; WX 600 ; N Ugrave ; B 136 -16 676 789 ;
-C -1 ; WX 600 ; N Thorn ; B 47 0 566 563 ;
-C -1 ; WX 600 ; N eacute ; B 104 -16 570 639 ;
-C -1 ; WX 600 ; N edieresis ; B 104 -16 586 611 ;
-C -1 ; WX 600 ; N dcaron ; B 102 -16 774 618 ;
-C -1 ; WX 600 ; N ccedilla ; B 122 -173 596 431 ;
-C -1 ; WX 600 ; N ccaron ; B 121 -17 596 639 ;
-C -1 ; WX 600 ; N cacute ; B 121 -17 596 639 ;
-C -1 ; WX 600 ; N aogonek ; B 93 -155 546 431 ;
-C -1 ; WX 600 ; N aring ; B 93 -16 546 661 ;
-C -1 ; WX 600 ; N atilde ; B 93 -16 570 605 ;
-C -1 ; WX 600 ; N abreve ; B 93 -16 574 621 ;
-C -1 ; WX 600 ; N egrave ; B 104 -16 570 639 ;
-C -1 ; WX 600 ; N agrave ; B 93 -16 546 639 ;
-C -1 ; WX 600 ; N aacute ; B 93 -16 546 639 ;
-C -1 ; WX 600 ; N adieresis ; B 93 -16 571 611 ;
-C -1 ; WX 600 ; N Uogonek ; B 136 -155 676 563 ;
-C -1 ; WX 600 ; N ugrave ; B 127 -16 569 639 ;
-C -1 ; WX 600 ; N uacute ; B 127 -16 569 639 ;
-C -1 ; WX 600 ; N udieresis ; B 127 -16 573 611 ;
-C -1 ; WX 600 ; N tcaron ; B 127 -16 593 618 ;
-C -1 ; WX 600 ; N scommaaccent ; B 108 -237 558 431 ;
-C -1 ; WX 600 ; N Zcaron ; B 103 0 604 789 ;
-C -1 ; WX 600 ; N ecircumflex ; B 104 -16 570 639 ;
-C -1 ; WX 600 ; N Ucircumflex ; B 136 -16 676 789 ;
-C -1 ; WX 600 ; N acircumflex ; B 93 -16 546 639 ;
-C -1 ; WX 600 ; N Zdotaccent ; B 103 0 590 762 ;
-C -1 ; WX 600 ; N scaron ; B 107 -17 584 639 ;
-C -1 ; WX 600 ; N Amacron ; B 13 0 596 723 ;
-C -1 ; WX 600 ; N sacute ; B 108 -17 577 639 ;
-C -1 ; WX 600 ; N Tcommaaccent ; B 152 -237 648 563 ;
-C -1 ; WX 600 ; N Ydieresis ; B 153 0 665 762 ;
-C -1 ; WX 600 ; N thorn ; B -13 -186 593 590 ;
-C -1 ; WX 600 ; N Emacron ; B 47 0 619 723 ;
-C -1 ; WX 600 ; N Ograve ; B 102 -16 616 789 ;
-C -1 ; WX 600 ; N Oacute ; B 102 -16 616 789 ;
-C -1 ; WX 600 ; N Odieresis ; B 102 -16 616 762 ;
-C -1 ; WX 600 ; N Ntilde ; B 46 0 678 755 ;
-C -1 ; WX 600 ; N Ncaron ; B 46 0 678 789 ;
-C -1 ; WX 600 ; N Nacute ; B 46 0 678 789 ;
-C -1 ; WX 600 ; N Lcaron ; B 67 0 638 576 ;
-C -1 ; WX 600 ; N Lacute ; B 67 0 585 789 ;
-C -1 ; WX 600 ; N Idotaccent ; B 117 0 603 762 ;
-C -1 ; WX 600 ; N racute ; B 88 0 619 639 ;
-C -1 ; WX 600 ; N Icircumflex ; B 117 0 603 789 ;
-C -1 ; WX 600 ; N ohungarumlaut ; B 111 -16 616 633 ;
-C -1 ; WX 600 ; N otilde ; B 111 -16 586 605 ;
-C -1 ; WX 600 ; N Euro ; B 60 -16 634 576 ;
-C -1 ; WX 600 ; N ocircumflex ; B 111 -16 577 639 ;
-C -1 ; WX 600 ; N onesuperior ; B 249 259 469 612 ;
-C -1 ; WX 600 ; N twosuperior ; B 230 259 514 612 ;
-C -1 ; WX 600 ; N threesuperior ; B 245 251 516 612 ;
-C -1 ; WX 600 ; N Igrave ; B 117 0 603 789 ;
-C -1 ; WX 600 ; N Iacute ; B 117 0 603 789 ;
-C -1 ; WX 600 ; N Imacron ; B 117 0 603 723 ;
-C -1 ; WX 600 ; N Iogonek ; B 117 -155 603 563 ;
-C -1 ; WX 600 ; N Idieresis ; B 117 0 611 762 ;
-C -1 ; WX 600 ; N Gbreve ; B 108 -16 656 777 ;
-C -1 ; WX 600 ; N Umacron ; B 136 -16 676 723 ;
-C -1 ; WX 600 ; N Kcommaaccent ; B 47 -237 662 563 ;
-C -1 ; WX 600 ; N ograve ; B 111 -16 577 639 ;
-C -1 ; WX 600 ; N Scommaaccent ; B 96 -237 602 577 ;
-C -1 ; WX 600 ; N Eogonek ; B 47 -155 619 563 ;
-C -1 ; WX 600 ; N oacute ; B 111 -16 577 639 ;
-C -1 ; WX 600 ; N Edotaccent ; B 47 0 619 762 ;
-C -1 ; WX 600 ; N iogonek ; B 96 -155 513 624 ;
-C -1 ; WX 600 ; N gcommaaccent ; B 105 -186 647 668 ;
-C -1 ; WX 600 ; N odieresis ; B 111 -16 581 611 ;
-C -1 ; WX 600 ; N ntilde ; B 57 0 570 605 ;
-C -1 ; WX 600 ; N ncaron ; B 57 0 577 639 ;
-C -1 ; WX 600 ; N Ecaron ; B 47 0 619 789 ;
-C -1 ; WX 600 ; N Ecircumflex ; B 47 0 619 789 ;
-C -1 ; WX 600 ; N scedilla ; B 108 -173 558 431 ;
-C -1 ; WX 600 ; N rcaron ; B 88 0 619 639 ;
-C -1 ; WX 600 ; N Egrave ; B 47 0 619 789 ;
-C -1 ; WX 600 ; N Eacute ; B 47 0 619 789 ;
-C -1 ; WX 600 ; N Gcommaaccent ; B 108 -237 636 576 ;
-C -1 ; WX 600 ; N Rcommaaccent ; B 47 -237 594 563 ;
-C -1 ; WX 600 ; N Edieresis ; B 47 0 619 762 ;
-C -1 ; WX 600 ; N nacute ; B 57 0 577 639 ;
-C -1 ; WX 600 ; N uogonek ; B 127 -155 569 417 ;
-C -1 ; WX 600 ; N umacron ; B 127 -16 569 576 ;
-C -1 ; WX 600 ; N Dcaron ; B 47 0 592 789 ;
-C -1 ; WX 600 ; N lcaron ; B 96 0 593 618 ;
-C -1 ; WX 600 ; N Ccaron ; B 110 -16 635 789 ;
-C -1 ; WX 600 ; N Cacute ; B 110 -16 635 789 ;
-C -1 ; WX 600 ; N Ccedilla ; B 110 -173 635 576 ;
-C -1 ; WX 600 ; N degree ; B 257 346 553 636 ;
-C -1 ; WX 600 ; N Aogonek ; B 13 -155 596 563 ;
-C -1 ; WX 600 ; N minus ; B 131 261 588 302 ;
-C -1 ; WX 600 ; N multiply ; B 143 100 577 464 ;
-C -1 ; WX 600 ; N divide ; B 131 25 588 540 ;
-C -1 ; WX 600 ; N Aring ; B 13 0 596 811 ;
-C -1 ; WX 600 ; N trademark ; B 90 243 710 563 ;
-C -1 ; WX 600 ; N rcommaaccent ; B 88 -237 619 427 ;
-C -1 ; WX 600 ; N lacute ; B 96 0 572 789 ;
-C -1 ; WX 600 ; N omacron ; B 111 -16 577 576 ;
-C -1 ; WX 600 ; N Atilde ; B 13 0 596 755 ;
-C -1 ; WX 600 ; N icircumflex ; B 95 0 536 639 ;
-C -1 ; WX 600 ; N igrave ; B 96 0 513 639 ;
-C -1 ; WX 600 ; N ncommaaccent ; B 57 -237 546 431 ;
-C -1 ; WX 600 ; N lcommaaccent ; B 96 -237 513 604 ;
-C -1 ; WX 600 ; N plusminus ; B 76 0 597 529 ;
-C -1 ; WX 600 ; N onehalf ; B 82 0 627 612 ;
-C -1 ; WX 600 ; N onequarter ; B 74 0 619 612 ;
-C -1 ; WX 600 ; N threequarters ; B 70 0 619 612 ;
-C -1 ; WX 600 ; N iacute ; B 96 0 535 639 ;
-C -1 ; WX 600 ; N Abreve ; B 13 0 596 777 ;
-C -1 ; WX 600 ; N kcommaaccent ; B 67 -237 578 604 ;
-C -1 ; WX 600 ; N Omacron ; B 102 -16 616 723 ;
-C -1 ; WX 600 ; N imacron ; B 96 0 564 576 ;
-C -1 ; WX 600 ; N emacron ; B 104 -16 570 576 ;
-C -1 ; WX 600 ; N amacron ; B 93 -16 564 576 ;
-C -1 ; WX 600 ; N tcommaaccent ; B 127 -237 518 563 ;
-C -1 ; WX 600 ; N ydieresis ; B 22 -186 634 611 ;
-C -1 ; WX 600 ; N zdotaccent ; B 115 0 563 611 ;
-C -1 ; WX 600 ; N zcaron ; B 115 0 576 639 ;
-C -1 ; WX 600 ; N zacute ; B 115 0 577 639 ;
-C -1 ; WX 600 ; N yacute ; B 22 -186 634 639 ;
-C -1 ; WX 600 ; N uhungarumlaut ; B 127 -16 576 633 ;
-C -1 ; WX 600 ; N eth ; B 111 -17 582 620 ;
-C -1 ; WX 600 ; N uring ; B 127 -16 569 661 ;
-C -1 ; WX 600 ; N Ocircumflex ; B 102 -16 616 789 ;
-C -1 ; WX 600 ; N commaaccent ; B 159 -237 322 -60 ;
-C -1 ; WX 600 ; N copyright ; B 57 -15 663 578 ;
-C -1 ; WX 600 ; N registered ; B 57 -15 663 578 ;
-C -1 ; WX 600 ; N Acircumflex ; B 13 0 596 789 ;
-C -1 ; WX 600 ; N idieresis ; B 96 0 568 611 ;
-C -1 ; WX 600 ; N lozenge ; B 149 -11 571 575 ;
-C -1 ; WX 600 ; N Delta ; B 43 0 557 563 ;
-C -1 ; WX 600 ; N notequal ; B 96 94 625 464 ;
-C -1 ; WX 600 ; N radical ; B 88 0 773 699 ;
-C -1 ; WX 600 ; N Agrave ; B 13 0 596 789 ;
-C -1 ; WX 600 ; N Aacute ; B 13 0 596 789 ;
-C -1 ; WX 600 ; N lessequal ; B 56 0 635 535 ;
-C -1 ; WX 600 ; N greaterequal ; B 71 0 600 535 ;
-C -1 ; WX 600 ; N logicalnot ; B 160 168 621 438 ;
-C -1 ; WX 600 ; N summation ; B 90 -127 616 563 ;
-C -1 ; WX 600 ; N partialdiff ; B 111 -16 580 581 ;
-C -1 ; WX 600 ; N Ncommaaccent ; B 46 -237 678 563 ;
-C -1 ; WX 600 ; N dcroat ; B 102 -16 690 604 ;
-C -1 ; WX 600 ; N brokenbar ; B 257 -124 444 604 ;
-C -1 ; WX 600 ; N Lcommaaccent ; B 67 -237 585 563 ;
-C -1 ; WX 600 ; N Adieresis ; B 13 0 596 762 ;
-C -1 ; WX 600 ; N mu ; B 86 -200 569 417 ;
-C -1 ; WX 600 ; N .notdef ; B 319 0 319 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -41
-KPX A Ccedilla -39
-KPX A G -36
-KPX A O -35
-KPX A Odieresis -35
-KPX A Q -37
-KPX A T -34
-KPX A U -41
-KPX A Uacute -41
-KPX A Ucircumflex -41
-KPX A Udieresis -41
-KPX A Ugrave -41
-KPX A V -78
-KPX A W -20
-KPX A Y -35
-KPX A a 1
-KPX A b 40
-KPX A c -26
-KPX A ccedilla -23
-KPX A comma -47
-KPX A d -17
-KPX A e -21
-KPX A g -27
-KPX A guillemotleft -57
-KPX A guilsinglleft -57
-KPX A hyphen -35
-KPX A o -22
-KPX A period -70
-KPX A q -27
-KPX A quotedblright -82
-KPX A quoteright -102
-KPX A t -33
-KPX A u -23
-KPX A v -59
-KPX A w -27
-KPX A y -63
-KPX Aacute C -41
-KPX Aacute G -36
-KPX Aacute O -35
-KPX Aacute Q -37
-KPX Aacute T -34
-KPX Aacute U -41
-KPX Aacute V -78
-KPX Aacute W -20
-KPX Aacute Y -35
-KPX Aacute a 1
-KPX Aacute b 40
-KPX Aacute c -26
-KPX Aacute comma -47
-KPX Aacute d -17
-KPX Aacute e -21
-KPX Aacute g -27
-KPX Aacute guillemotleft -57
-KPX Aacute guilsinglleft -57
-KPX Aacute hyphen -35
-KPX Aacute o -22
-KPX Aacute period -70
-KPX Aacute q -27
-KPX Aacute quoteright -102
-KPX Aacute t -33
-KPX Aacute u -23
-KPX Aacute v -59
-KPX Aacute w -27
-KPX Aacute y -63
-KPX Acircumflex C -41
-KPX Acircumflex G -36
-KPX Acircumflex O -35
-KPX Acircumflex Q -37
-KPX Acircumflex T -34
-KPX Acircumflex U -41
-KPX Acircumflex V -78
-KPX Acircumflex W -20
-KPX Acircumflex Y -35
-KPX Acircumflex comma -47
-KPX Acircumflex period -70
-KPX Adieresis C -41
-KPX Adieresis G -36
-KPX Adieresis O -35
-KPX Adieresis Q -37
-KPX Adieresis T -34
-KPX Adieresis U -41
-KPX Adieresis V -78
-KPX Adieresis W -20
-KPX Adieresis Y -35
-KPX Adieresis a 1
-KPX Adieresis b 40
-KPX Adieresis c -26
-KPX Adieresis comma -47
-KPX Adieresis d -17
-KPX Adieresis g -27
-KPX Adieresis guillemotleft -57
-KPX Adieresis guilsinglleft -57
-KPX Adieresis hyphen -35
-KPX Adieresis o -22
-KPX Adieresis period -70
-KPX Adieresis q -27
-KPX Adieresis quotedblright -82
-KPX Adieresis quoteright -102
-KPX Adieresis t -33
-KPX Adieresis u -23
-KPX Adieresis v -59
-KPX Adieresis w -27
-KPX Adieresis y -63
-KPX Agrave C -41
-KPX Agrave G -36
-KPX Agrave O -35
-KPX Agrave Q -37
-KPX Agrave T -34
-KPX Agrave U -41
-KPX Agrave V -78
-KPX Agrave W -20
-KPX Agrave Y -35
-KPX Agrave comma -47
-KPX Agrave period -70
-KPX Aring C -41
-KPX Aring G -36
-KPX Aring O -35
-KPX Aring Q -37
-KPX Aring T -34
-KPX Aring U -41
-KPX Aring V -78
-KPX Aring W -20
-KPX Aring Y -35
-KPX Aring a 1
-KPX Aring b 40
-KPX Aring c -26
-KPX Aring comma -47
-KPX Aring d -17
-KPX Aring e -21
-KPX Aring g -27
-KPX Aring guillemotleft -57
-KPX Aring guilsinglleft -57
-KPX Aring hyphen -35
-KPX Aring o -22
-KPX Aring period -70
-KPX Aring q -27
-KPX Aring quotedblright -82
-KPX Aring quoteright -102
-KPX Aring t -33
-KPX Aring u -23
-KPX Aring v -59
-KPX Aring w -27
-KPX Aring y -63
-KPX Atilde C -41
-KPX Atilde G -36
-KPX Atilde O -35
-KPX Atilde Q -37
-KPX Atilde T -34
-KPX Atilde U -41
-KPX Atilde V -78
-KPX Atilde W -20
-KPX Atilde Y -35
-KPX Atilde comma -47
-KPX Atilde period -70
-KPX B A -15
-KPX B AE -16
-KPX B Aacute -15
-KPX B Acircumflex -15
-KPX B Adieresis -15
-KPX B Aring -15
-KPX B Atilde -15
-KPX B O -15
-KPX B OE 5
-KPX B Oacute -15
-KPX B Ocircumflex -15
-KPX B Odieresis -15
-KPX B Ograve -15
-KPX B Oslash -14
-KPX B V -37
-KPX B W -15
-KPX B Y -58
-KPX C A -14
-KPX C AE -14
-KPX C Aacute -14
-KPX C Adieresis -14
-KPX C Aring -14
-KPX C H -34
-KPX C K -19
-KPX C O -24
-KPX C Oacute -24
-KPX C Odieresis -24
-KPX Ccedilla A -8
-KPX D A -47
-KPX D Aacute -47
-KPX D Acircumflex -47
-KPX D Adieresis -47
-KPX D Agrave -47
-KPX D Aring -47
-KPX D Atilde -47
-KPX D J -38
-KPX D T -47
-KPX D V -50
-KPX D W -20
-KPX D X -60
-KPX D Y -71
-KPX F A -45
-KPX F Aacute -45
-KPX F Acircumflex -45
-KPX F Adieresis -45
-KPX F Agrave -45
-KPX F Aring -45
-KPX F Atilde -45
-KPX F J -100
-KPX F O -34
-KPX F Odieresis -34
-KPX F a -52
-KPX F aacute -52
-KPX F adieresis -49
-KPX F ae -25
-KPX F aring -52
-KPX F comma -172
-KPX F e -61
-KPX F eacute -61
-KPX F hyphen -72
-KPX F i -51
-KPX F j -59
-KPX F o -68
-KPX F oacute -68
-KPX F odieresis -54
-KPX F oe -26
-KPX F oslash -68
-KPX F period -196
-KPX F r -37
-KPX F u -6
-KPX G A 0
-KPX G AE 0
-KPX G Aacute 0
-KPX G Acircumflex 0
-KPX G Adieresis 0
-KPX G Agrave 0
-KPX G Aring 0
-KPX G Atilde 0
-KPX G T -31
-KPX G V -1
-KPX G W -4
-KPX G Y -22
-KPX J A -14
-KPX J AE -23
-KPX J Adieresis -14
-KPX J Aring -14
-KPX K C -50
-KPX K G -46
-KPX K O -45
-KPX K OE -28
-KPX K Oacute -45
-KPX K Odieresis -45
-KPX K S -16
-KPX K T -18
-KPX K a -8
-KPX K adieresis -8
-KPX K ae 19
-KPX K aring -8
-KPX K e -30
-KPX K hyphen -66
-KPX K o -32
-KPX K oacute -32
-KPX K odieresis -32
-KPX K u -33
-KPX K udieresis -33
-KPX K y -72
-KPX L A 9
-KPX L AE 9
-KPX L Aacute 9
-KPX L Adieresis 9
-KPX L Aring 9
-KPX L C -19
-KPX L Ccedilla -19
-KPX L G -18
-KPX L O -15
-KPX L Oacute -15
-KPX L Ocircumflex -15
-KPX L Odieresis -15
-KPX L Ograve -15
-KPX L Otilde -15
-KPX L S -31
-KPX L T -59
-KPX L U -36
-KPX L Udieresis -36
-KPX L V -71
-KPX L W -31
-KPX L Y -60
-KPX L hyphen -1
-KPX L quotedblright -76
-KPX L quoteright -84
-KPX L u -20
-KPX L udieresis -20
-KPX L y -50
-KPX N A -10
-KPX N AE -10
-KPX N Aacute -10
-KPX N Adieresis -10
-KPX N Aring -10
-KPX N C -18
-KPX N Ccedilla -18
-KPX N G -16
-KPX N O -14
-KPX N Oacute -14
-KPX N Odieresis -14
-KPX N a -23
-KPX N aacute -23
-KPX N adieresis -23
-KPX N ae 7
-KPX N aring -23
-KPX N comma -64
-KPX N e -10
-KPX N eacute -10
-KPX N o -14
-KPX N oacute -14
-KPX N odieresis -14
-KPX N oslash -11
-KPX N period -87
-KPX N u -14
-KPX N udieresis -14
-KPX O A -33
-KPX O AE -30
-KPX O Aacute -33
-KPX O Adieresis -33
-KPX O Aring -33
-KPX O T -37
-KPX O V -40
-KPX O W -8
-KPX O X -47
-KPX O Y -61
-KPX Oacute A -33
-KPX Oacute T -37
-KPX Oacute V -40
-KPX Oacute W -8
-KPX Oacute Y -61
-KPX Ocircumflex T -37
-KPX Ocircumflex V -40
-KPX Ocircumflex Y -61
-KPX Odieresis A -33
-KPX Odieresis T -37
-KPX Odieresis V -40
-KPX Odieresis W -8
-KPX Odieresis X -47
-KPX Odieresis Y -61
-KPX Ograve T -37
-KPX Ograve V -40
-KPX Ograve Y -61
-KPX Oslash A -31
-KPX Otilde T -36
-KPX Otilde V -39
-KPX Otilde Y -60
-KPX P A -87
-KPX P AE -81
-KPX P Aacute -87
-KPX P Adieresis -87
-KPX P Aring -87
-KPX P J -90
-KPX P a -57
-KPX P aacute -57
-KPX P adieresis -57
-KPX P ae -29
-KPX P aring -57
-KPX P comma -161
-KPX P e -47
-KPX P eacute -47
-KPX P hyphen -52
-KPX P o -53
-KPX P oacute -53
-KPX P odieresis -53
-KPX P oe -18
-KPX P oslash -53
-KPX P period -185
-KPX R C -32
-KPX R Ccedilla -33
-KPX R G -31
-KPX R O -29
-KPX R OE -8
-KPX R Oacute -29
-KPX R Odieresis -29
-KPX R T -35
-KPX R U -36
-KPX R Udieresis -36
-KPX R V -42
-KPX R W -21
-KPX R Y -36
-KPX R a 0
-KPX R aacute 0
-KPX R adieresis 0
-KPX R ae 27
-KPX R aring 0
-KPX R e -22
-KPX R eacute -22
-KPX R hyphen -53
-KPX R o -23
-KPX R oacute -23
-KPX R odieresis -23
-KPX R oe 15
-KPX R u -16
-KPX R uacute -16
-KPX R udieresis -16
-KPX R y -20
-KPX S A -28
-KPX S AE -28
-KPX S Aacute -28
-KPX S Adieresis -28
-KPX S Aring -28
-KPX S T -48
-KPX S V -18
-KPX S W -23
-KPX S Y -39
-KPX S t -25
-KPX T A -34
-KPX T AE -35
-KPX T Aacute -34
-KPX T Acircumflex -34
-KPX T Adieresis -34
-KPX T Agrave -34
-KPX T Aring -34
-KPX T Atilde -34
-KPX T C -36
-KPX T G -35
-KPX T J -88
-KPX T O -34
-KPX T OE -12
-KPX T Oacute -34
-KPX T Ocircumflex -34
-KPX T Odieresis -34
-KPX T Ograve -34
-KPX T Oslash -34
-KPX T Otilde -34
-KPX T S -50
-KPX T V 4
-KPX T W -1
-KPX T Y -17
-KPX T a -68
-KPX T ae -38
-KPX T c -83
-KPX T colon -145
-KPX T comma -116
-KPX T e -83
-KPX T g -76
-KPX T guillemotleft -129
-KPX T guilsinglleft -129
-KPX T hyphen -99
-KPX T i -51
-KPX T j -59
-KPX T o -87
-KPX T oslash -60
-KPX T period -145
-KPX T r -37
-KPX T s -70
-KPX T semicolon -119
-KPX T u -92
-KPX T v -98
-KPX T w -96
-KPX T y -108
-KPX U A -26
-KPX U AE -35
-KPX U Aacute -26
-KPX U Acircumflex -26
-KPX U Adieresis -26
-KPX U Aring -26
-KPX U Atilde -26
-KPX U comma -80
-KPX U m 3
-KPX U n -22
-KPX U p -5
-KPX U period -105
-KPX U r -47
-KPX Uacute A -26
-KPX Uacute comma -80
-KPX Uacute m 3
-KPX Uacute n -22
-KPX Uacute p -5
-KPX Uacute period -105
-KPX Uacute r -47
-KPX Ucircumflex A -26
-KPX Udieresis A -26
-KPX Udieresis b 17
-KPX Udieresis comma -80
-KPX Udieresis m 3
-KPX Udieresis n -22
-KPX Udieresis p -5
-KPX Udieresis period -105
-KPX Udieresis r -47
-KPX Ugrave A -26
-KPX V A -10
-KPX V AE -19
-KPX V Aacute -10
-KPX V Acircumflex -10
-KPX V Adieresis -10
-KPX V Agrave -10
-KPX V Aring -10
-KPX V Atilde -10
-KPX V C -39
-KPX V G -38
-KPX V O -37
-KPX V Oacute -37
-KPX V Ocircumflex -37
-KPX V Odieresis -37
-KPX V Ograve -37
-KPX V Oslash -38
-KPX V Otilde -38
-KPX V S -41
-KPX V T 4
-KPX V a -65
-KPX V ae -37
-KPX V colon -130
-KPX V comma -134
-KPX V e -56
-KPX V g -57
-KPX V guillemotleft -83
-KPX V guilsinglleft -83
-KPX V hyphen -49
-KPX V i -65
-KPX V o -60
-KPX V oslash -57
-KPX V period -158
-KPX V r -51
-KPX V semicolon -121
-KPX V u -20
-KPX V y -24
-KPX W A -16
-KPX W AE -21
-KPX W Aacute -16
-KPX W Acircumflex -16
-KPX W Adieresis -16
-KPX W Agrave -16
-KPX W Aring -16
-KPX W Atilde -16
-KPX W C -14
-KPX W G -12
-KPX W O -10
-KPX W Oacute -10
-KPX W Ocircumflex -10
-KPX W Odieresis -10
-KPX W Ograve -10
-KPX W Oslash -7
-KPX W Otilde -10
-KPX W S -29
-KPX W T -2
-KPX W a -24
-KPX W ae 6
-KPX W colon -93
-KPX W comma -71
-KPX W e -10
-KPX W g -11
-KPX W guillemotleft -38
-KPX W guilsinglleft -38
-KPX W hyphen -7
-KPX W i -48
-KPX W o -14
-KPX W oslash -11
-KPX W period -95
-KPX W r -34
-KPX W semicolon -74
-KPX W u -2
-KPX W y -6
-KPX X C -52
-KPX X O -48
-KPX X Odieresis -48
-KPX X Q -48
-KPX X a -14
-KPX X e -36
-KPX X hyphen -81
-KPX X o -38
-KPX X u -39
-KPX X y -57
-KPX Y A -31
-KPX Y AE -34
-KPX Y Aacute -31
-KPX Y Acircumflex -31
-KPX Y Adieresis -31
-KPX Y Agrave -31
-KPX Y Aring -31
-KPX Y Atilde -31
-KPX Y C -60
-KPX Y G -60
-KPX Y O -59
-KPX Y Oacute -59
-KPX Y Ocircumflex -59
-KPX Y Odieresis -59
-KPX Y Ograve -59
-KPX Y Oslash -59
-KPX Y Otilde -59
-KPX Y S -62
-KPX Y T -17
-KPX Y a -67
-KPX Y ae -40
-KPX Y colon -145
-KPX Y comma -116
-KPX Y e -81
-KPX Y g -84
-KPX Y guillemotleft -119
-KPX Y guilsinglleft -119
-KPX Y hyphen -96
-KPX Y i -63
-KPX Y o -86
-KPX Y oslash -59
-KPX Y p -39
-KPX Y period -144
-KPX Y semicolon -119
-KPX Y u -50
-KPX Y v -44
-KPX Z v -54
-KPX Z y -64
-KPX a j -93
-KPX a quoteright -60
-KPX a v -33
-KPX a w -23
-KPX a y -44
-KPX aacute v -33
-KPX aacute w -23
-KPX aacute y -44
-KPX adieresis v -33
-KPX adieresis w -23
-KPX adieresis y -44
-KPX ae v 16
-KPX ae w 16
-KPX ae y 5
-KPX agrave v -33
-KPX agrave w -23
-KPX agrave y -44
-KPX aring v -33
-KPX aring w -23
-KPX aring y -44
-KPX b v -17
-KPX b w 0
-KPX b y -28
-KPX c h -6
-KPX c k -12
-KPX comma one -148
-KPX comma quotedblright -123
-KPX comma quoteright -142
-KPX e quoteright -43
-KPX e t -34
-KPX e v -28
-KPX e w -20
-KPX e x -5
-KPX e y -39
-KPX eacute v -28
-KPX eacute w -20
-KPX eacute y -39
-KPX ecircumflex v -28
-KPX ecircumflex w -20
-KPX ecircumflex y -39
-KPX eight four -65
-KPX eight one -85
-KPX eight seven -77
-KPX f a -44
-KPX f aacute -44
-KPX f adieresis -26
-KPX f ae -17
-KPX f aring -44
-KPX f e -58
-KPX f eacute -58
-KPX f f -46
-KPX f i -40
-KPX f j -63
-KPX f l -31
-KPX f o -65
-KPX f oacute -65
-KPX f odieresis -31
-KPX f oe -23
-KPX f oslash -36
-KPX f quoteright -62
-KPX f s -46
-KPX f t -10
-KPX five four -56
-KPX five one -90
-KPX five seven -78
-KPX four four -68
-KPX four one -73
-KPX four seven -99
-KPX g a -14
-KPX g adieresis -14
-KPX g ae 13
-KPX g aring -14
-KPX g e -7
-KPX g eacute -7
-KPX g l -37
-KPX g oacute -12
-KPX g odieresis -12
-KPX g r -4
-KPX guillemotright A -50
-KPX guillemotright AE -46
-KPX guillemotright Aacute -50
-KPX guillemotright Adieresis -50
-KPX guillemotright Aring -50
-KPX guillemotright T -128
-KPX guillemotright V -80
-KPX guillemotright W -37
-KPX guillemotright Y -119
-KPX guilsinglright A -50
-KPX guilsinglright AE -46
-KPX guilsinglright Aacute -50
-KPX guilsinglright Adieresis -50
-KPX guilsinglright Aring -50
-KPX guilsinglright T -128
-KPX guilsinglright V -80
-KPX guilsinglright W -37
-KPX guilsinglright Y -119
-KPX h quoteright -52
-KPX h y -37
-KPX hyphen A -29
-KPX hyphen AE -23
-KPX hyphen Aacute -29
-KPX hyphen Adieresis -29
-KPX hyphen Aring -29
-KPX hyphen T -98
-KPX hyphen V -44
-KPX hyphen W -4
-KPX hyphen Y -95
-KPX i T -64
-KPX i j -146
-KPX k a -12
-KPX k aacute -12
-KPX k adieresis -12
-KPX k ae 15
-KPX k aring -12
-KPX k comma -60
-KPX k e -34
-KPX k eacute -34
-KPX k g -43
-KPX k hyphen -104
-KPX k o -35
-KPX k oacute -35
-KPX k odieresis -35
-KPX k period -89
-KPX k s -14
-KPX k u -7
-KPX k udieresis -7
-KPX l v -86
-KPX l y -96
-KPX m p 19
-KPX m v 7
-KPX m w 13
-KPX m y -3
-KPX n T -48
-KPX n p -8
-KPX n quoteright -50
-KPX n v -25
-KPX n w -14
-KPX n y -36
-KPX nine four -58
-KPX nine one -84
-KPX nine seven -75
-KPX o T -89
-KPX o quoteright -41
-KPX o t -24
-KPX o v -25
-KPX o w -7
-KPX o x -28
-KPX o y -36
-KPX oacute v -25
-KPX oacute w -7
-KPX oacute y -36
-KPX ocircumflex t -24
-KPX odieresis t -24
-KPX odieresis v -25
-KPX odieresis w -7
-KPX odieresis x -28
-KPX odieresis y -36
-KPX ograve v -25
-KPX ograve w -7
-KPX ograve y -36
-KPX one comma -99
-KPX one eight -94
-KPX one five -76
-KPX one four -127
-KPX one nine -81
-KPX one one -69
-KPX one period -128
-KPX one seven -147
-KPX one six -119
-KPX one three -69
-KPX one two -54
-KPX one zero -102
-KPX p t -20
-KPX p y -25
-KPX period one -125
-KPX period quotedblright -114
-KPX period quoteright -133
-KPX q c -4
-KPX q u 37
-KPX quotedblbase A -6
-KPX quotedblbase AE -6
-KPX quotedblbase T -82
-KPX quotedblbase V -85
-KPX quotedblbase W -24
-KPX quotedblbase Y -83
-KPX quotedblleft A -66
-KPX quotedblleft AE -57
-KPX quotedblleft Aacute -66
-KPX quotedblleft Adieresis -66
-KPX quotedblleft Aring -66
-KPX quotedblleft T -46
-KPX quotedblleft V -18
-KPX quotedblleft W -8
-KPX quotedblleft Y -46
-KPX quotedblright A -67
-KPX quotedblright AE -76
-KPX quotedblright Aacute -66
-KPX quotedblright Adieresis -66
-KPX quotedblright Aring -66
-KPX quotedblright T -53
-KPX quotedblright V -22
-KPX quotedblright W -26
-KPX quotedblright Y -43
-KPX quoteleft A -87
-KPX quoteleft AE -78
-KPX quoteleft Aacute -87
-KPX quoteleft Adieresis -87
-KPX quoteleft Aring -87
-KPX quoteleft T -67
-KPX quoteleft V -39
-KPX quoteleft W -29
-KPX quoteleft Y -67
-KPX quoteright A -145
-KPX quoteright AE -154
-KPX quoteright Aacute -145
-KPX quoteright Adieresis -145
-KPX quoteright Aring -145
-KPX quoteright comma -201
-KPX quoteright d -129
-KPX quoteright o -135
-KPX quoteright period -224
-KPX quoteright r -150
-KPX quoteright s -144
-KPX quoteright t -118
-KPX quoteright v -112
-KPX quoteright w -108
-KPX quoteright y -122
-KPX r a -26
-KPX r aacute -26
-KPX r acircumflex -26
-KPX r adieresis -26
-KPX r ae 1
-KPX r agrave -26
-KPX r aring -26
-KPX r c -26
-KPX r ccedilla -34
-KPX r colon -86
-KPX r comma -104
-KPX r d -18
-KPX r e -17
-KPX r eacute -17
-KPX r ecircumflex -17
-KPX r egrave -17
-KPX r f -24
-KPX r g -15
-KPX r h -24
-KPX r hyphen -125
-KPX r i -34
-KPX r j -42
-KPX r k -34
-KPX r l -51
-KPX r m 27
-KPX r n 0
-KPX r o -24
-KPX r oacute -24
-KPX r ocircumflex -24
-KPX r odieresis -24
-KPX r oe 13
-KPX r ograve -24
-KPX r oslash -24
-KPX r p 21
-KPX r period -133
-KPX r q -16
-KPX r quoteright -44
-KPX r r -20
-KPX r s -29
-KPX r semicolon -75
-KPX r t 11
-KPX r u 11
-KPX r v 17
-KPX r w 17
-KPX r x -4
-KPX r y 6
-KPX r z -23
-KPX s quoteright -51
-KPX s t -17
-KPX seven colon -154
-KPX seven comma -146
-KPX seven eight -86
-KPX seven five -91
-KPX seven four -116
-KPX seven one -74
-KPX seven period -169
-KPX seven seven -69
-KPX seven six -104
-KPX seven three -79
-KPX seven two -76
-KPX six four -52
-KPX six one -68
-KPX six seven -55
-KPX t S -40
-KPX t a -25
-KPX t aacute -25
-KPX t adieresis -25
-KPX t ae 2
-KPX t aring -25
-KPX t colon -107
-KPX t e -43
-KPX t eacute -43
-KPX t h -8
-KPX t o -45
-KPX t oacute -45
-KPX t odieresis -45
-KPX t quoteright -100
-KPX t semicolon -86
-KPX three four -58
-KPX three one -82
-KPX three seven -75
-KPX two four -97
-KPX two one -73
-KPX two seven -79
-KPX u quoteright -43
-KPX v a -9
-KPX v aacute -9
-KPX v acircumflex -9
-KPX v adieresis -9
-KPX v ae 17
-KPX v agrave -9
-KPX v aring -9
-KPX v atilde -9
-KPX v c -22
-KPX v colon -75
-KPX v comma -118
-KPX v e -17
-KPX v eacute -17
-KPX v ecircumflex -17
-KPX v egrave -17
-KPX v g -14
-KPX v hyphen -30
-KPX v l -87
-KPX v o -23
-KPX v oacute -23
-KPX v odieresis -23
-KPX v ograve -23
-KPX v oslash -23
-KPX v period -143
-KPX v s -22
-KPX v semicolon -66
-KPX w a -9
-KPX w aacute -9
-KPX w acircumflex -9
-KPX w adieresis -9
-KPX w ae 17
-KPX w agrave -9
-KPX w aring -9
-KPX w atilde -9
-KPX w c -12
-KPX w colon -75
-KPX w comma -75
-KPX w e -4
-KPX w eacute -4
-KPX w ecircumflex -4
-KPX w egrave -4
-KPX w g -6
-KPX w hyphen -4
-KPX w l -53
-KPX w o -9
-KPX w oacute -9
-KPX w odieresis -9
-KPX w ograve -9
-KPX w oslash -6
-KPX w period -99
-KPX w s -22
-KPX w semicolon -66
-KPX x a -8
-KPX x c -35
-KPX x e -30
-KPX x eacute -30
-KPX x o -31
-KPX x q -33
-KPX y a -20
-KPX y aacute -20
-KPX y acircumflex -20
-KPX y adieresis -20
-KPX y ae 6
-KPX y agrave -20
-KPX y aring -20
-KPX y atilde -20
-KPX y c -33
-KPX y colon -86
-KPX y comma -122
-KPX y e -28
-KPX y eacute -28
-KPX y ecircumflex -28
-KPX y egrave -28
-KPX y g -25
-KPX y hyphen -29
-KPX y l -98
-KPX y o -34
-KPX y oacute -34
-KPX y odieresis -34
-KPX y ograve -34
-KPX y oslash -34
-KPX y period -148
-KPX y s -33
-KPX y semicolon -77
-KPX zero four -64
-KPX zero one -91
-KPX zero seven -82
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n022023l.pfb b/Master/xemtex/gsfonts/n022023l.pfb
deleted file mode 100644
index c167c4bcc00..00000000000
--- a/Master/xemtex/gsfonts/n022023l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022023l.pfm b/Master/xemtex/gsfonts/n022023l.pfm
deleted file mode 100644
index 1ff2fc5fe21..00000000000
--- a/Master/xemtex/gsfonts/n022023l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022024l.afm b/Master/xemtex/gsfonts/n022024l.afm
deleted file mode 100644
index 6957af0ad47..00000000000
--- a/Master/xemtex/gsfonts/n022024l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName NimbusMonL-BoldObli
-FullName Nimbus Mono L Bold Oblique
-FamilyName Nimbus Mono L
-Weight Bold
-ItalicAngle -12.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -61 -278 840 871
-CapHeight 583
-XHeight 437
-Descender -205
-Ascender 624
-StartCharMetrics 316
-C 32 ; WX 600 ; N space ; B 386 0 386 0 ;
-C 33 ; WX 600 ; N exclam ; B 234 -15 501 638 ;
-C 34 ; WX 600 ; N quotedbl ; B 243 312 592 602 ;
-C 35 ; WX 600 ; N numbersign ; B 101 -92 623 675 ;
-C 36 ; WX 600 ; N dollar ; B 100 -123 610 684 ;
-C 37 ; WX 600 ; N percent ; B 131 -15 599 617 ;
-C 38 ; WX 600 ; N ampersand ; B 102 -14 557 550 ;
-C 39 ; WX 600 ; N quoteright ; B 222 331 483 623 ;
-C 40 ; WX 600 ; N parenleft ; B 304 -153 613 632 ;
-C 41 ; WX 600 ; N parenright ; B 94 -153 403 632 ;
-C 42 ; WX 600 ; N asterisk ; B 178 208 614 622 ;
-C 43 ; WX 600 ; N plus ; B 101 0 619 560 ;
-C 44 ; WX 600 ; N comma ; B 118 -158 379 134 ;
-C 45 ; WX 600 ; N hyphen ; B 101 229 619 329 ;
-C 46 ; WX 600 ; N period ; B 234 -15 387 117 ;
-C 47 ; WX 600 ; N slash ; B 69 -113 656 695 ;
-C 48 ; WX 600 ; N zero ; B 130 -15 602 638 ;
-C 49 ; WX 600 ; N one ; B 93 0 529 638 ;
-C 50 ; WX 600 ; N two ; B 54 0 602 638 ;
-C 51 ; WX 600 ; N three ; B 80 -15 609 638 ;
-C 52 ; WX 600 ; N four ; B 104 0 579 622 ;
-C 53 ; WX 600 ; N five ; B 83 -15 610 622 ;
-C 54 ; WX 600 ; N six ; B 154 -15 663 638 ;
-C 55 ; WX 600 ; N seven ; B 184 -1 640 622 ;
-C 56 ; WX 600 ; N eight ; B 114 -15 608 638 ;
-C 57 ; WX 600 ; N nine ; B 115 -15 624 638 ;
-C 58 ; WX 600 ; N colon ; B 234 -15 455 437 ;
-C 59 ; WX 600 ; N semicolon ; B 118 -158 431 437 ;
-C 60 ; WX 600 ; N less ; B 102 54 642 501 ;
-C 61 ; WX 600 ; N equal ; B 81 138 638 422 ;
-C 62 ; WX 600 ; N greater ; B 76 53 616 500 ;
-C 63 ; WX 600 ; N question ; B 197 -15 608 598 ;
-C 64 ; WX 600 ; N at ; B 98 -152 582 620 ;
-C 65 ; WX 600 ; N A ; B -11 0 633 583 ;
-C 66 ; WX 600 ; N B ; B 22 0 620 583 ;
-C 67 ; WX 600 ; N C ; B 80 -14 663 597 ;
-C 68 ; WX 600 ; N D ; B 23 0 622 583 ;
-C 69 ; WX 600 ; N E ; B 23 0 652 583 ;
-C 70 ; WX 600 ; N F ; B 23 0 674 583 ;
-C 71 ; WX 600 ; N G ; B 79 -14 667 597 ;
-C 72 ; WX 600 ; N H ; B 32 0 675 583 ;
-C 73 ; WX 600 ; N I ; B 93 0 632 583 ;
-C 74 ; WX 600 ; N J ; B 64 -14 727 583 ;
-C 75 ; WX 600 ; N K ; B 22 0 687 583 ;
-C 76 ; WX 600 ; N L ; B 42 0 616 583 ;
-C 77 ; WX 600 ; N M ; B -10 0 728 583 ;
-C 78 ; WX 600 ; N N ; B 21 0 706 583 ;
-C 79 ; WX 600 ; N O ; B 75 -14 649 597 ;
-C 80 ; WX 600 ; N P ; B 23 0 617 583 ;
-C 81 ; WX 600 ; N Q ; B 75 -145 649 597 ;
-C 82 ; WX 600 ; N R ; B 23 0 631 583 ;
-C 83 ; WX 600 ; N S ; B 72 -14 634 597 ;
-C 84 ; WX 600 ; N T ; B 121 0 682 583 ;
-C 85 ; WX 600 ; N U ; B 110 -14 705 583 ;
-C 86 ; WX 600 ; N V ; B 91 0 735 583 ;
-C 87 ; WX 600 ; N W ; B 98 0 725 583 ;
-C 88 ; WX 600 ; N X ; B 19 0 692 583 ;
-C 89 ; WX 600 ; N Y ; B 128 0 694 583 ;
-C 90 ; WX 600 ; N Z ; B 73 0 628 583 ;
-C 91 ; WX 600 ; N bracketleft ; B 219 -148 598 627 ;
-C 92 ; WX 600 ; N backslash ; B 219 -113 504 695 ;
-C 93 ; WX 600 ; N bracketright ; B 104 -148 483 627 ;
-C 94 ; WX 600 ; N asciicircum ; B 161 325 598 652 ;
-C 95 ; WX 600 ; N underscore ; B -61 -125 564 -75 ;
-C 96 ; WX 600 ; N quoteleft ; B 377 348 534 602 ;
-C 97 ; WX 600 ; N a ; B 65 -16 583 450 ;
-C 98 ; WX 600 ; N b ; B 2 -14 623 624 ;
-C 99 ; WX 600 ; N c ; B 93 -16 626 450 ;
-C 100 ; WX 600 ; N d ; B 74 -14 664 624 ;
-C 101 ; WX 600 ; N e ; B 74 -16 600 450 ;
-C 102 ; WX 600 ; N f ; B 84 0 691 623 ;
-C 103 ; WX 600 ; N g ; B 73 -205 675 451 ;
-C 104 ; WX 600 ; N h ; B 33 0 593 624 ;
-C 105 ; WX 600 ; N i ; B 72 0 550 623 ;
-C 106 ; WX 600 ; N j ; B 83 -205 581 623 ;
-C 107 ; WX 600 ; N k ; B 42 0 606 624 ;
-C 108 ; WX 600 ; N l ; B 72 0 550 624 ;
-C 109 ; WX 600 ; N m ; B -9 0 635 450 ;
-C 110 ; WX 600 ; N n ; B 33 0 583 450 ;
-C 111 ; WX 600 ; N o ; B 84 -16 609 450 ;
-C 112 ; WX 600 ; N p ; B -42 -205 623 450 ;
-C 113 ; WX 600 ; N q ; B 75 -205 696 450 ;
-C 114 ; WX 600 ; N r ; B 64 0 650 449 ;
-C 115 ; WX 600 ; N s ; B 83 -16 592 450 ;
-C 116 ; WX 600 ; N t ; B 94 -16 547 591 ;
-C 117 ; WX 600 ; N u ; B 94 -13 603 437 ;
-C 118 ; WX 600 ; N v ; B 81 0 683 437 ;
-C 119 ; WX 600 ; N w ; B 82 0 684 437 ;
-C 120 ; WX 600 ; N x ; B 30 0 641 437 ;
-C 121 ; WX 600 ; N y ; B -13 -205 662 437 ;
-C 122 ; WX 600 ; N z ; B 85 0 599 437 ;
-C 123 ; WX 600 ; N braceleft ; B 217 -153 556 623 ;
-C 124 ; WX 600 ; N bar ; B 227 -153 472 622 ;
-C 125 ; WX 600 ; N braceright ; B 144 -153 483 623 ;
-C 126 ; WX 600 ; N asciitilde ; B 114 179 606 385 ;
-C 161 ; WX 600 ; N exclamdown ; B 186 -227 453 426 ;
-C 162 ; WX 600 ; N cent ; B 144 -44 593 661 ;
-C 163 ; WX 600 ; N sterling ; B 64 0 571 598 ;
-C 164 ; WX 600 ; N fraction ; B 52 102 676 500 ;
-C 165 ; WX 600 ; N yen ; B 133 0 693 580 ;
-C 166 ; WX 600 ; N florin ; B 43 -123 672 638 ;
-C 167 ; WX 600 ; N section ; B 45 -170 643 583 ;
-C 168 ; WX 600 ; N currency ; B 96 64 626 519 ;
-C 169 ; WX 600 ; N quotesingle ; B 343 312 492 602 ;
-C 170 ; WX 600 ; N quotedblleft ; B 226 348 583 602 ;
-C 171 ; WX 600 ; N guillemotleft ; B 80 20 654 415 ;
-C 172 ; WX 600 ; N guilsinglleft ; B 80 20 425 415 ;
-C 173 ; WX 600 ; N guilsinglright ; B 273 20 617 415 ;
-C 174 ; WX 600 ; N fi ; B -4 0 633 624 ;
-C 175 ; WX 600 ; N fl ; B -8 0 645 623 ;
-C 177 ; WX 600 ; N endash ; B 101 229 619 329 ;
-C 178 ; WX 600 ; N dagger ; B 175 -92 589 622 ;
-C 179 ; WX 600 ; N daggerdbl ; B 123 -92 589 622 ;
-C 180 ; WX 600 ; N periodcentered ; B 283 214 436 346 ;
-C 182 ; WX 600 ; N paragraph ; B 108 -174 672 583 ;
-C 183 ; WX 600 ; N bullet ; B 211 154 517 453 ;
-C 184 ; WX 600 ; N quotesinglbase ; B 118 -158 379 134 ;
-C 185 ; WX 600 ; N quotedblbase ; B 66 -120 519 134 ;
-C 186 ; WX 600 ; N quotedblright ; B 166 348 619 602 ;
-C 187 ; WX 600 ; N guillemotright ; B 43 20 617 415 ;
-C 188 ; WX 600 ; N ellipsis ; B 34 -15 587 117 ;
-C 189 ; WX 600 ; N perthousand ; B 104 0 627 618 ;
-C 191 ; WX 600 ; N questiondown ; B 70 -227 481 386 ;
-C 193 ; WX 600 ; N grave ; B 264 496 464 696 ;
-C 194 ; WX 600 ; N acute ; B 362 496 616 696 ;
-C 195 ; WX 600 ; N circumflex ; B 237 497 590 696 ;
-C 196 ; WX 600 ; N tilde ; B 233 523 619 656 ;
-C 197 ; WX 600 ; N macron ; B 249 546 600 626 ;
-C 198 ; WX 600 ; N breve ; B 261 503 614 687 ;
-C 199 ; WX 600 ; N dotaccent ; B 365 534 488 654 ;
-C 200 ; WX 600 ; N dieresis ; B 261 534 592 654 ;
-C 202 ; WX 600 ; N ring ; B 303 486 554 727 ;
-C 203 ; WX 600 ; N cedilla ; B 143 -229 381 0 ;
-C 205 ; WX 600 ; N hungarumlaut ; B 237 496 616 694 ;
-C 206 ; WX 600 ; N ogonek ; B 222 -208 433 0 ;
-C 207 ; WX 600 ; N caron ; B 264 497 617 696 ;
-C 208 ; WX 600 ; N emdash ; B 30 229 690 329 ;
-C 225 ; WX 600 ; N AE ; B -10 0 717 583 ;
-C 227 ; WX 600 ; N ordfeminine ; B 170 182 559 595 ;
-C 232 ; WX 600 ; N Lslash ; B 43 0 616 583 ;
-C 233 ; WX 600 ; N Oslash ; B 4 -70 717 638 ;
-C 234 ; WX 600 ; N OE ; B 34 0 717 583 ;
-C 235 ; WX 600 ; N ordmasculine ; B 168 182 566 595 ;
-C 241 ; WX 600 ; N ae ; B 14 -16 665 450 ;
-C 245 ; WX 600 ; N dotlessi ; B 72 0 550 437 ;
-C 248 ; WX 600 ; N lslash ; B 72 0 557 624 ;
-C 249 ; WX 600 ; N oslash ; B 17 -70 669 494 ;
-C 250 ; WX 600 ; N oe ; B 28 -16 666 450 ;
-C 251 ; WX 600 ; N germandbls ; B 22 -16 569 623 ;
-C -1 ; WX 600 ; N Udieresis ; B 110 -14 705 800 ;
-C -1 ; WX 600 ; N Uacute ; B 110 -14 705 839 ;
-C -1 ; WX 600 ; N Scedilla ; B 72 -229 634 597 ;
-C -1 ; WX 600 ; N Tcaron ; B 121 0 682 839 ;
-C -1 ; WX 600 ; N Scaron ; B 72 -14 657 839 ;
-C -1 ; WX 600 ; N Rcaron ; B 23 0 631 839 ;
-C -1 ; WX 600 ; N Racute ; B 23 0 631 839 ;
-C -1 ; WX 600 ; N Sacute ; B 72 -14 634 839 ;
-C -1 ; WX 600 ; N Otilde ; B 75 -14 656 799 ;
-C -1 ; WX 600 ; N ucircumflex ; B 94 -13 603 696 ;
-C -1 ; WX 600 ; N Ohungarumlaut ; B 75 -14 680 837 ;
-C -1 ; WX 600 ; N Uhungarumlaut ; B 110 -14 705 837 ;
-C -1 ; WX 600 ; N Yacute ; B 128 0 694 839 ;
-C -1 ; WX 600 ; N Eth ; B 23 0 622 583 ;
-C -1 ; WX 600 ; N Dcroat ; B 23 0 622 583 ;
-C -1 ; WX 600 ; N Zacute ; B 73 0 628 839 ;
-C -1 ; WX 600 ; N Uring ; B 110 -14 705 871 ;
-C -1 ; WX 600 ; N gbreve ; B 73 -205 675 687 ;
-C -1 ; WX 600 ; N eogonek ; B 74 -208 600 450 ;
-C -1 ; WX 600 ; N edotaccent ; B 74 -16 600 654 ;
-C -1 ; WX 600 ; N ecaron ; B 74 -16 617 696 ;
-C -1 ; WX 600 ; N Ugrave ; B 110 -14 705 839 ;
-C -1 ; WX 600 ; N Thorn ; B 23 0 588 583 ;
-C -1 ; WX 600 ; N eacute ; B 74 -16 600 696 ;
-C -1 ; WX 600 ; N edieresis ; B 74 -16 600 654 ;
-C -1 ; WX 740 ; N dcaron ; B 74 -14 840 639 ;
-C -1 ; WX 600 ; N ccedilla ; B 92 -229 626 450 ;
-C -1 ; WX 600 ; N ccaron ; B 93 -16 627 696 ;
-C -1 ; WX 600 ; N cacute ; B 93 -16 626 696 ;
-C -1 ; WX 600 ; N aogonek ; B 65 -208 583 450 ;
-C -1 ; WX 600 ; N aring ; B 65 -16 583 727 ;
-C -1 ; WX 600 ; N atilde ; B 65 -16 612 656 ;
-C -1 ; WX 600 ; N abreve ; B 65 -16 614 687 ;
-C -1 ; WX 600 ; N egrave ; B 74 -16 600 696 ;
-C -1 ; WX 600 ; N agrave ; B 65 -16 583 696 ;
-C -1 ; WX 600 ; N aacute ; B 66 -16 584 696 ;
-C -1 ; WX 600 ; N adieresis ; B 65 -16 583 654 ;
-C -1 ; WX 600 ; N Uogonek ; B 110 -208 705 583 ;
-C -1 ; WX 600 ; N ugrave ; B 94 -13 603 696 ;
-C -1 ; WX 600 ; N uacute ; B 94 -13 603 696 ;
-C -1 ; WX 600 ; N udieresis ; B 94 -13 603 654 ;
-C -1 ; WX 600 ; N tcaron ; B 94 -16 700 639 ;
-C -1 ; WX 600 ; N scommaaccent ; B 83 -278 592 450 ;
-C -1 ; WX 600 ; N Zcaron ; B 73 0 644 839 ;
-C -1 ; WX 600 ; N ecircumflex ; B 74 -16 600 696 ;
-C -1 ; WX 600 ; N Ucircumflex ; B 110 -14 705 839 ;
-C -1 ; WX 600 ; N acircumflex ; B 65 -16 583 696 ;
-C -1 ; WX 600 ; N Zdotaccent ; B 73 0 628 793 ;
-C -1 ; WX 600 ; N scaron ; B 83 -16 627 696 ;
-C -1 ; WX 600 ; N Amacron ; B -11 0 633 776 ;
-C -1 ; WX 600 ; N sacute ; B 83 -16 616 696 ;
-C -1 ; WX 600 ; N Tcommaaccent ; B 121 -278 682 583 ;
-C -1 ; WX 600 ; N Ydieresis ; B 128 0 694 800 ;
-C -1 ; WX 600 ; N thorn ; B -42 -205 623 624 ;
-C -1 ; WX 600 ; N Emacron ; B 23 0 652 776 ;
-C -1 ; WX 600 ; N Ograve ; B 75 -14 649 839 ;
-C -1 ; WX 600 ; N Oacute ; B 75 -14 649 839 ;
-C -1 ; WX 600 ; N Odieresis ; B 75 -14 649 800 ;
-C -1 ; WX 600 ; N Ntilde ; B 21 0 706 799 ;
-C -1 ; WX 600 ; N Ncaron ; B 21 0 706 839 ;
-C -1 ; WX 600 ; N Nacute ; B 21 0 706 839 ;
-C -1 ; WX 600 ; N Lcaron ; B 42 0 680 598 ;
-C -1 ; WX 600 ; N Lacute ; B 42 0 616 839 ;
-C -1 ; WX 600 ; N Idotaccent ; B 93 0 632 793 ;
-C -1 ; WX 600 ; N racute ; B 64 0 650 696 ;
-C -1 ; WX 600 ; N Icircumflex ; B 93 0 632 839 ;
-C -1 ; WX 600 ; N ohungarumlaut ; B 84 -16 616 694 ;
-C -1 ; WX 600 ; N otilde ; B 84 -16 626 656 ;
-C -1 ; WX 600 ; N Euro ; B 54 -14 639 597 ;
-C -1 ; WX 600 ; N ocircumflex ; B 84 -16 609 696 ;
-C -1 ; WX 600 ; N onesuperior ; B 224 247 494 638 ;
-C -1 ; WX 600 ; N twosuperior ; B 202 247 538 637 ;
-C -1 ; WX 600 ; N threesuperior ; B 218 238 543 637 ;
-C -1 ; WX 600 ; N Igrave ; B 93 0 632 839 ;
-C -1 ; WX 600 ; N Iacute ; B 93 0 632 839 ;
-C -1 ; WX 600 ; N Imacron ; B 93 0 632 776 ;
-C -1 ; WX 600 ; N Iogonek ; B 93 -208 632 583 ;
-C -1 ; WX 600 ; N Idieresis ; B 93 0 632 800 ;
-C -1 ; WX 600 ; N Gbreve ; B 79 -14 667 831 ;
-C -1 ; WX 600 ; N Umacron ; B 110 -14 705 776 ;
-C -1 ; WX 600 ; N Kcommaaccent ; B 22 -278 687 583 ;
-C -1 ; WX 600 ; N ograve ; B 84 -16 609 696 ;
-C -1 ; WX 600 ; N Scommaaccent ; B 72 -278 634 597 ;
-C -1 ; WX 600 ; N Eogonek ; B 23 -208 652 583 ;
-C -1 ; WX 600 ; N oacute ; B 84 -16 609 696 ;
-C -1 ; WX 600 ; N Edotaccent ; B 23 0 652 793 ;
-C -1 ; WX 600 ; N iogonek ; B 72 -208 550 623 ;
-C -1 ; WX 600 ; N gcommaaccent ; B 73 -205 675 722 ;
-C -1 ; WX 600 ; N odieresis ; B 84 -16 609 654 ;
-C -1 ; WX 600 ; N ntilde ; B 33 0 613 656 ;
-C -1 ; WX 600 ; N ncaron ; B 33 0 617 696 ;
-C -1 ; WX 600 ; N Ecaron ; B 23 0 652 839 ;
-C -1 ; WX 600 ; N Ecircumflex ; B 23 0 652 839 ;
-C -1 ; WX 600 ; N scedilla ; B 83 -229 592 450 ;
-C -1 ; WX 600 ; N rcaron ; B 64 0 650 696 ;
-C -1 ; WX 600 ; N Egrave ; B 23 0 652 839 ;
-C -1 ; WX 600 ; N Eacute ; B 23 0 652 839 ;
-C -1 ; WX 600 ; N Gcommaaccent ; B 79 -278 667 597 ;
-C -1 ; WX 600 ; N Rcommaaccent ; B 23 -278 631 583 ;
-C -1 ; WX 600 ; N Edieresis ; B 23 0 652 800 ;
-C -1 ; WX 600 ; N nacute ; B 33 0 616 696 ;
-C -1 ; WX 600 ; N uogonek ; B 94 -208 603 437 ;
-C -1 ; WX 600 ; N umacron ; B 94 -13 603 626 ;
-C -1 ; WX 600 ; N Dcaron ; B 23 0 622 839 ;
-C -1 ; WX 600 ; N lcaron ; B 72 0 700 639 ;
-C -1 ; WX 600 ; N Ccaron ; B 80 -14 663 839 ;
-C -1 ; WX 600 ; N Cacute ; B 80 -14 663 839 ;
-C -1 ; WX 600 ; N Ccedilla ; B 80 -229 663 597 ;
-C -1 ; WX 600 ; N degree ; B 210 243 568 596 ;
-C -1 ; WX 600 ; N Aogonek ; B -11 -208 633 583 ;
-C -1 ; WX 600 ; N minus ; B 101 230 619 330 ;
-C -1 ; WX 600 ; N multiply ; B 126 80 592 480 ;
-C -1 ; WX 600 ; N divide ; B 101 28 619 532 ;
-C -1 ; WX 600 ; N Aring ; B -11 0 633 871 ;
-C -1 ; WX 600 ; N trademark ; B 60 220 732 583 ;
-C -1 ; WX 600 ; N rcommaaccent ; B 64 -278 650 449 ;
-C -1 ; WX 600 ; N lacute ; B 72 0 600 839 ;
-C -1 ; WX 600 ; N omacron ; B 84 -16 609 626 ;
-C -1 ; WX 600 ; N Atilde ; B -11 0 633 799 ;
-C -1 ; WX 600 ; N icircumflex ; B 72 0 573 696 ;
-C -1 ; WX 600 ; N igrave ; B 72 0 550 696 ;
-C -1 ; WX 600 ; N ncommaaccent ; B 33 -278 583 450 ;
-C -1 ; WX 600 ; N lcommaaccent ; B 72 -278 550 624 ;
-C -1 ; WX 600 ; N plusminus ; B 52 0 640 624 ;
-C -1 ; WX 600 ; N onehalf ; B 25 0 685 638 ;
-C -1 ; WX 600 ; N onequarter ; B 25 0 673 638 ;
-C -1 ; WX 600 ; N threequarters ; B 18 0 673 637 ;
-C -1 ; WX 600 ; N iacute ; B 71 0 574 696 ;
-C -1 ; WX 600 ; N Abreve ; B -11 0 633 831 ;
-C -1 ; WX 600 ; N kcommaaccent ; B 42 -278 606 624 ;
-C -1 ; WX 600 ; N Omacron ; B 75 -14 649 776 ;
-C -1 ; WX 600 ; N imacron ; B 72 0 600 626 ;
-C -1 ; WX 600 ; N emacron ; B 74 -16 600 626 ;
-C -1 ; WX 600 ; N amacron ; B 65 -16 600 626 ;
-C -1 ; WX 600 ; N tcommaaccent ; B 94 -278 547 591 ;
-C -1 ; WX 600 ; N ydieresis ; B -13 -205 662 654 ;
-C -1 ; WX 600 ; N zdotaccent ; B 85 0 599 654 ;
-C -1 ; WX 600 ; N zcaron ; B 85 0 619 696 ;
-C -1 ; WX 600 ; N zacute ; B 85 0 616 696 ;
-C -1 ; WX 600 ; N yacute ; B -13 -205 662 696 ;
-C -1 ; WX 600 ; N uhungarumlaut ; B 94 -13 616 694 ;
-C -1 ; WX 600 ; N eth ; B 83 -16 617 646 ;
-C -1 ; WX 600 ; N uring ; B 94 -13 603 727 ;
-C -1 ; WX 600 ; N Ocircumflex ; B 75 -14 649 839 ;
-C -1 ; WX 600 ; N commaaccent ; B 147 -278 342 -59 ;
-C -1 ; WX 600 ; N copyright ; B 48 -15 675 598 ;
-C -1 ; WX 600 ; N registered ; B 48 -15 675 598 ;
-C -1 ; WX 600 ; N Acircumflex ; B -11 0 633 839 ;
-C -1 ; WX 600 ; N idieresis ; B 72 0 575 656 ;
-C -1 ; WX 600 ; N lozenge ; B 133 -19 590 593 ;
-C -1 ; WX 600 ; N Delta ; B 15 0 585 583 ;
-C -1 ; WX 600 ; N notequal ; B 81 22 638 525 ;
-C -1 ; WX 600 ; N radical ; B 74 -60 782 697 ;
-C -1 ; WX 600 ; N Agrave ; B -11 0 633 839 ;
-C -1 ; WX 600 ; N Aacute ; B -11 0 633 839 ;
-C -1 ; WX 600 ; N lessequal ; B 50 0 666 591 ;
-C -1 ; WX 600 ; N greaterequal ; B 52 0 660 591 ;
-C -1 ; WX 600 ; N logicalnot ; B 125 115 560 445 ;
-C -1 ; WX 600 ; N summation ; B 32 -97 668 671 ;
-C -1 ; WX 600 ; N partialdiff ; B 138 -16 579 590 ;
-C -1 ; WX 600 ; N Ncommaaccent ; B 21 -278 706 583 ;
-C -1 ; WX 600 ; N dcroat ; B 74 -14 712 624 ;
-C -1 ; WX 600 ; N brokenbar ; B 227 -153 472 622 ;
-C -1 ; WX 600 ; N Lcommaaccent ; B 42 -278 616 583 ;
-C -1 ; WX 600 ; N Adieresis ; B -11 0 633 800 ;
-C -1 ; WX 600 ; N mu ; B 72 -153 603 440 ;
-C -1 ; WX 600 ; N .notdef ; B 386 0 386 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -24
-KPX A Ccedilla -30
-KPX A G -20
-KPX A O -26
-KPX A Odieresis -26
-KPX A Q -25
-KPX A T -35
-KPX A U -33
-KPX A Uacute -33
-KPX A Ucircumflex -33
-KPX A Udieresis -33
-KPX A Ugrave -33
-KPX A V -63
-KPX A W -21
-KPX A Y -34
-KPX A a 8
-KPX A b 39
-KPX A c -12
-KPX A ccedilla -15
-KPX A comma -52
-KPX A d -4
-KPX A e -5
-KPX A g -5
-KPX A guillemotleft -44
-KPX A guilsinglleft -44
-KPX A hyphen -23
-KPX A o -11
-KPX A period -67
-KPX A q -10
-KPX A quotedblright -89
-KPX A quoteright -116
-KPX A t -25
-KPX A u -18
-KPX A v -41
-KPX A w -15
-KPX A y -41
-KPX Aacute C -24
-KPX Aacute G -20
-KPX Aacute O -26
-KPX Aacute Q -25
-KPX Aacute T -35
-KPX Aacute U -33
-KPX Aacute V -63
-KPX Aacute W -21
-KPX Aacute Y -34
-KPX Aacute a 8
-KPX Aacute b 39
-KPX Aacute c -12
-KPX Aacute comma -52
-KPX Aacute d -4
-KPX Aacute e -5
-KPX Aacute g -5
-KPX Aacute guillemotleft -44
-KPX Aacute guilsinglleft -44
-KPX Aacute hyphen -23
-KPX Aacute o -11
-KPX Aacute period -67
-KPX Aacute q -10
-KPX Aacute quoteright -116
-KPX Aacute t -25
-KPX Aacute u -18
-KPX Aacute v -41
-KPX Aacute w -15
-KPX Aacute y -41
-KPX Acircumflex C -24
-KPX Acircumflex G -20
-KPX Acircumflex O -26
-KPX Acircumflex Q -25
-KPX Acircumflex T -35
-KPX Acircumflex U -33
-KPX Acircumflex V -63
-KPX Acircumflex W -21
-KPX Acircumflex Y -34
-KPX Acircumflex comma -52
-KPX Acircumflex period -67
-KPX Adieresis C -24
-KPX Adieresis G -20
-KPX Adieresis O -26
-KPX Adieresis Q -25
-KPX Adieresis T -35
-KPX Adieresis U -33
-KPX Adieresis V -63
-KPX Adieresis W -21
-KPX Adieresis Y -34
-KPX Adieresis a 8
-KPX Adieresis b 39
-KPX Adieresis c -12
-KPX Adieresis comma -52
-KPX Adieresis d -4
-KPX Adieresis g -5
-KPX Adieresis guillemotleft -44
-KPX Adieresis guilsinglleft -44
-KPX Adieresis hyphen -23
-KPX Adieresis o -11
-KPX Adieresis period -67
-KPX Adieresis q -10
-KPX Adieresis quotedblright -89
-KPX Adieresis quoteright -116
-KPX Adieresis t -25
-KPX Adieresis u -18
-KPX Adieresis v -41
-KPX Adieresis w -15
-KPX Adieresis y -41
-KPX Agrave C -24
-KPX Agrave G -20
-KPX Agrave O -26
-KPX Agrave Q -25
-KPX Agrave T -35
-KPX Agrave U -33
-KPX Agrave V -63
-KPX Agrave W -21
-KPX Agrave Y -34
-KPX Agrave comma -52
-KPX Agrave period -67
-KPX Aring C -24
-KPX Aring G -20
-KPX Aring O -26
-KPX Aring Q -25
-KPX Aring T -35
-KPX Aring U -33
-KPX Aring V -63
-KPX Aring W -21
-KPX Aring Y -34
-KPX Aring a 8
-KPX Aring b 39
-KPX Aring c -12
-KPX Aring comma -52
-KPX Aring d -4
-KPX Aring e -5
-KPX Aring g -5
-KPX Aring guillemotleft -44
-KPX Aring guilsinglleft -44
-KPX Aring hyphen -23
-KPX Aring o -11
-KPX Aring period -67
-KPX Aring q -10
-KPX Aring quotedblright -89
-KPX Aring quoteright -116
-KPX Aring t -25
-KPX Aring u -18
-KPX Aring v -41
-KPX Aring w -15
-KPX Aring y -41
-KPX Atilde C -24
-KPX Atilde G -20
-KPX Atilde O -26
-KPX Atilde Q -25
-KPX Atilde T -35
-KPX Atilde U -33
-KPX Atilde V -63
-KPX Atilde W -21
-KPX Atilde Y -34
-KPX Atilde comma -52
-KPX Atilde period -67
-KPX B A -2
-KPX B AE -3
-KPX B Aacute -2
-KPX B Acircumflex -2
-KPX B Adieresis -2
-KPX B Aring -2
-KPX B Atilde -2
-KPX B O -14
-KPX B OE 7
-KPX B Oacute -14
-KPX B Ocircumflex -14
-KPX B Odieresis -14
-KPX B Ograve -14
-KPX B Oslash -12
-KPX B V -29
-KPX B W -10
-KPX B Y -50
-KPX C A 2
-KPX C AE 2
-KPX C Aacute 2
-KPX C Adieresis 2
-KPX C Aring 2
-KPX C H -18
-KPX C K -13
-KPX C O -19
-KPX C Oacute -19
-KPX C Odieresis -19
-KPX Ccedilla A -5
-KPX D A -32
-KPX D Aacute -32
-KPX D Acircumflex -32
-KPX D Adieresis -32
-KPX D Agrave -32
-KPX D Aring -32
-KPX D Atilde -32
-KPX D J -38
-KPX D T -36
-KPX D V -40
-KPX D W -16
-KPX D X -40
-KPX D Y -61
-KPX F A -47
-KPX F Aacute -47
-KPX F Acircumflex -47
-KPX F Adieresis -47
-KPX F Agrave -47
-KPX F Aring -47
-KPX F Atilde -47
-KPX F J -83
-KPX F O -32
-KPX F Odieresis -32
-KPX F a -44
-KPX F aacute -45
-KPX F adieresis -44
-KPX F ae -22
-KPX F aring -44
-KPX F comma -172
-KPX F e -51
-KPX F eacute -51
-KPX F hyphen -61
-KPX F i -50
-KPX F j -58
-KPX F o -55
-KPX F oacute -55
-KPX F odieresis -55
-KPX F oe -20
-KPX F oslash -55
-KPX F period -191
-KPX F r -37
-KPX F u -6
-KPX G A 0
-KPX G AE 0
-KPX G Aacute 0
-KPX G Acircumflex 0
-KPX G Adieresis 0
-KPX G Agrave 0
-KPX G Aring 0
-KPX G Atilde 0
-KPX G T -30
-KPX G V 1
-KPX G W 5
-KPX G Y -20
-KPX J A -15
-KPX J AE -24
-KPX J Adieresis -15
-KPX J Aring -15
-KPX K C -32
-KPX K G -30
-KPX K O -31
-KPX K OE -9
-KPX K Oacute -31
-KPX K Odieresis -31
-KPX K S -17
-KPX K T -20
-KPX K a -1
-KPX K adieresis -1
-KPX K ae 23
-KPX K aring -1
-KPX K e -14
-KPX K hyphen -50
-KPX K o -20
-KPX K oacute -20
-KPX K odieresis -20
-KPX K u -30
-KPX K udieresis -30
-KPX K y -56
-KPX L A 9
-KPX L AE 9
-KPX L Aacute 9
-KPX L Adieresis 9
-KPX L Aring 9
-KPX L C -19
-KPX L Ccedilla -19
-KPX L G -19
-KPX L O -16
-KPX L Oacute -16
-KPX L Ocircumflex -16
-KPX L Odieresis -16
-KPX L Ograve -16
-KPX L Otilde -16
-KPX L S -32
-KPX L T -60
-KPX L U -31
-KPX L Udieresis -31
-KPX L V -61
-KPX L W -23
-KPX L Y -59
-KPX L hyphen 5
-KPX L quotedblright -82
-KPX L quoteright -107
-KPX L u -13
-KPX L udieresis -14
-KPX L y -36
-KPX N A -10
-KPX N AE -11
-KPX N Aacute -10
-KPX N Adieresis -10
-KPX N Aring -10
-KPX N C -13
-KPX N Ccedilla -10
-KPX N G -12
-KPX N O -10
-KPX N Oacute -10
-KPX N Odieresis -10
-KPX N a -14
-KPX N aacute -15
-KPX N adieresis -14
-KPX N ae 14
-KPX N aring -14
-KPX N comma -79
-KPX N e -7
-KPX N eacute -7
-KPX N o -12
-KPX N oacute -12
-KPX N odieresis -12
-KPX N oslash -6
-KPX N period -98
-KPX N u -12
-KPX N udieresis -12
-KPX O A -21
-KPX O AE -20
-KPX O Aacute -21
-KPX O Adieresis -21
-KPX O Aring -21
-KPX O T -23
-KPX O V -32
-KPX O W -4
-KPX O X -28
-KPX O Y -51
-KPX Oacute A -21
-KPX Oacute T -23
-KPX Oacute V -32
-KPX Oacute W -4
-KPX Oacute Y -51
-KPX Ocircumflex T -23
-KPX Ocircumflex V -32
-KPX Ocircumflex Y -51
-KPX Odieresis A -21
-KPX Odieresis T -23
-KPX Odieresis V -32
-KPX Odieresis W -4
-KPX Odieresis X -28
-KPX Odieresis Y -51
-KPX Ograve T -23
-KPX Ograve V -32
-KPX Ograve Y -51
-KPX Oslash A -13
-KPX Otilde T -23
-KPX Otilde V -32
-KPX Otilde Y -51
-KPX P A -65
-KPX P AE -63
-KPX P Aacute -65
-KPX P Adieresis -65
-KPX P Aring -65
-KPX P J -80
-KPX P a -54
-KPX P aacute -54
-KPX P adieresis -54
-KPX P ae -31
-KPX P aring -54
-KPX P comma -164
-KPX P e -43
-KPX P eacute -43
-KPX P hyphen -39
-KPX P o -47
-KPX P oacute -47
-KPX P odieresis -47
-KPX P oe -18
-KPX P oslash -46
-KPX P period -183
-KPX R C -19
-KPX R Ccedilla -18
-KPX R G -18
-KPX R O -18
-KPX R OE 3
-KPX R Oacute -18
-KPX R Odieresis -18
-KPX R T -36
-KPX R U -20
-KPX R Udieresis -21
-KPX R V -34
-KPX R W -10
-KPX R Y -35
-KPX R a 7
-KPX R aacute 6
-KPX R adieresis 7
-KPX R ae 32
-KPX R aring 7
-KPX R e -4
-KPX R eacute -4
-KPX R hyphen -30
-KPX R o -9
-KPX R oacute -9
-KPX R odieresis -9
-KPX R oe 24
-KPX R u -9
-KPX R uacute -9
-KPX R udieresis -9
-KPX R y -22
-KPX S A -16
-KPX S AE -16
-KPX S Aacute -16
-KPX S Adieresis -16
-KPX S Aring -16
-KPX S T -47
-KPX S V -16
-KPX S W -15
-KPX S Y -37
-KPX S t -20
-KPX T A -35
-KPX T AE -35
-KPX T Aacute -35
-KPX T Acircumflex -35
-KPX T Adieresis -35
-KPX T Agrave -35
-KPX T Aring -35
-KPX T Atilde -35
-KPX T C -27
-KPX T G -27
-KPX T J -72
-KPX T O -22
-KPX T OE 0
-KPX T Oacute -22
-KPX T Ocircumflex -22
-KPX T Odieresis -22
-KPX T Ograve -22
-KPX T Oslash -23
-KPX T Otilde -22
-KPX T S -49
-KPX T V 4
-KPX T W -2
-KPX T Y -17
-KPX T a -39
-KPX T ae -17
-KPX T c -42
-KPX T colon -119
-KPX T comma -136
-KPX T e -31
-KPX T g -28
-KPX T guillemotleft -81
-KPX T guilsinglleft -81
-KPX T hyphen -96
-KPX T i -46
-KPX T j -53
-KPX T o -36
-KPX T oslash -36
-KPX T period -154
-KPX T r -33
-KPX T s -43
-KPX T semicolon -106
-KPX T u -1
-KPX T v 6
-KPX T w 5
-KPX T y -4
-KPX U A -23
-KPX U AE -22
-KPX U Aacute -23
-KPX U Acircumflex -23
-KPX U Adieresis -23
-KPX U Aring -23
-KPX U Atilde -23
-KPX U comma -98
-KPX U m 14
-KPX U n -10
-KPX U p -3
-KPX U period -118
-KPX U r -36
-KPX Uacute A -23
-KPX Uacute comma -98
-KPX Uacute m 14
-KPX Uacute n -10
-KPX Uacute p -3
-KPX Uacute period -118
-KPX Uacute r -36
-KPX Ucircumflex A -23
-KPX Udieresis A -23
-KPX Udieresis b 20
-KPX Udieresis comma -98
-KPX Udieresis m 14
-KPX Udieresis n -10
-KPX Udieresis p -3
-KPX Udieresis period -118
-KPX Udieresis r -36
-KPX Ugrave A -23
-KPX V A -12
-KPX V AE -21
-KPX V Aacute -12
-KPX V Acircumflex -12
-KPX V Adieresis -12
-KPX V Agrave -12
-KPX V Aring -12
-KPX V Atilde -12
-KPX V C -34
-KPX V G -34
-KPX V O -32
-KPX V Oacute -32
-KPX V Ocircumflex -32
-KPX V Odieresis -32
-KPX V Ograve -32
-KPX V Oslash -32
-KPX V Otilde -32
-KPX V S -35
-KPX V T 3
-KPX V a -59
-KPX V ae -30
-KPX V colon -139
-KPX V comma -150
-KPX V e -51
-KPX V g -50
-KPX V guillemotleft -83
-KPX V guilsinglleft -83
-KPX V hyphen -45
-KPX V i -64
-KPX V o -56
-KPX V oslash -51
-KPX V period -169
-KPX V r -51
-KPX V semicolon -127
-KPX V u -21
-KPX V y -22
-KPX W A -15
-KPX W AE -14
-KPX W Aacute -15
-KPX W Acircumflex -15
-KPX W Adieresis -15
-KPX W Agrave -15
-KPX W Aring -15
-KPX W Atilde -15
-KPX W C -9
-KPX W G -8
-KPX W O -7
-KPX W Oacute -7
-KPX W Ocircumflex -7
-KPX W Odieresis -7
-KPX W Ograve -7
-KPX W Oslash -3
-KPX W Otilde -7
-KPX W S -21
-KPX W T -1
-KPX W a -14
-KPX W ae 15
-KPX W colon -103
-KPX W comma -86
-KPX W e -6
-KPX W g -5
-KPX W guillemotleft -38
-KPX W guilsinglleft -38
-KPX W hyphen -3
-KPX W i -40
-KPX W o -11
-KPX W oslash -6
-KPX W period -105
-KPX W r -28
-KPX W semicolon -86
-KPX W u -3
-KPX W y -6
-KPX X C -33
-KPX X O -31
-KPX X Odieresis -31
-KPX X Q -30
-KPX X a -7
-KPX X e -20
-KPX X hyphen -55
-KPX X o -26
-KPX X u -36
-KPX X y -49
-KPX Y A -32
-KPX Y AE -35
-KPX Y Aacute -32
-KPX Y Acircumflex -32
-KPX Y Adieresis -32
-KPX Y Agrave -32
-KPX Y Aring -32
-KPX Y Atilde -32
-KPX Y C -54
-KPX Y G -54
-KPX Y O -52
-KPX Y Oacute -52
-KPX Y Ocircumflex -52
-KPX Y Odieresis -52
-KPX Y Ograve -52
-KPX Y Oslash -50
-KPX Y Otilde -52
-KPX Y S -55
-KPX Y T -17
-KPX Y a -61
-KPX Y ae -36
-KPX Y colon -157
-KPX Y comma -123
-KPX Y e -63
-KPX Y g -62
-KPX Y guillemotleft -99
-KPX Y guilsinglleft -99
-KPX Y hyphen -87
-KPX Y i -63
-KPX Y o -68
-KPX Y oslash -56
-KPX Y p -34
-KPX Y period -141
-KPX Y semicolon -139
-KPX Y u -48
-KPX Y v -38
-KPX Z v -47
-KPX Z y -55
-KPX a j -85
-KPX a quoteright -79
-KPX a v -25
-KPX a w -13
-KPX a y -36
-KPX aacute v -25
-KPX aacute w -13
-KPX aacute y -36
-KPX adieresis v -25
-KPX adieresis w -13
-KPX adieresis y -36
-KPX ae v 24
-KPX ae w 31
-KPX ae y 13
-KPX agrave v -25
-KPX agrave w -13
-KPX agrave y -36
-KPX aring v -25
-KPX aring w -13
-KPX aring y -36
-KPX b v -4
-KPX b w 3
-KPX b y -15
-KPX c h 8
-KPX c k 3
-KPX comma one -133
-KPX comma quotedblright -142
-KPX comma quoteright -170
-KPX e quoteright -64
-KPX e t -16
-KPX e v -14
-KPX e w -4
-KPX e x 3
-KPX e y -25
-KPX eacute v -14
-KPX eacute w -4
-KPX eacute y -25
-KPX ecircumflex v -14
-KPX ecircumflex w -4
-KPX ecircumflex y -25
-KPX eight four -63
-KPX eight one -80
-KPX eight seven -75
-KPX f a -38
-KPX f aacute -38
-KPX f adieresis -38
-KPX f ae -13
-KPX f aring -38
-KPX f e -46
-KPX f eacute -46
-KPX f f -46
-KPX f i -40
-KPX f j -63
-KPX f l -30
-KPX f o -51
-KPX f oacute -51
-KPX f odieresis -48
-KPX f oe -17
-KPX f oslash -34
-KPX f quoteright -78
-KPX f s -46
-KPX f t -10
-KPX five four -58
-KPX five one -80
-KPX five seven -80
-KPX four four -68
-KPX four one -72
-KPX four seven -100
-KPX g a -7
-KPX g adieresis -7
-KPX g ae 21
-KPX g aring -7
-KPX g e -1
-KPX g eacute -1
-KPX g l -38
-KPX g oacute -6
-KPX g odieresis -6
-KPX g r -5
-KPX guillemotright A -42
-KPX guillemotright AE -39
-KPX guillemotright Aacute -42
-KPX guillemotright Adieresis -42
-KPX guillemotright Aring -42
-KPX guillemotright T -81
-KPX guillemotright V -80
-KPX guillemotright W -35
-KPX guillemotright Y -96
-KPX guilsinglright A -42
-KPX guilsinglright AE -39
-KPX guilsinglright Aacute -42
-KPX guilsinglright Adieresis -42
-KPX guilsinglright Aring -42
-KPX guilsinglright T -81
-KPX guilsinglright V -80
-KPX guilsinglright W -35
-KPX guilsinglright Y -96
-KPX h quoteright -71
-KPX h y -29
-KPX hyphen A -21
-KPX hyphen AE -17
-KPX hyphen Aacute -21
-KPX hyphen Adieresis -21
-KPX hyphen Aring -21
-KPX hyphen T -93
-KPX hyphen V -41
-KPX hyphen W -1
-KPX hyphen Y -84
-KPX i T -64
-KPX i j -145
-KPX k a -5
-KPX k aacute -5
-KPX k adieresis -5
-KPX k ae 20
-KPX k aring -5
-KPX k comma -67
-KPX k e -17
-KPX k eacute -17
-KPX k g -16
-KPX k hyphen -53
-KPX k o -22
-KPX k oacute -22
-KPX k odieresis -22
-KPX k period -80
-KPX k s -13
-KPX k u -7
-KPX k udieresis -7
-KPX l v -77
-KPX l y -78
-KPX m p 31
-KPX m v 13
-KPX m w 22
-KPX m y 2
-KPX n T -47
-KPX n p 2
-KPX n quoteright -69
-KPX n v -17
-KPX n w -6
-KPX n y -28
-KPX nine four -59
-KPX nine one -76
-KPX nine seven -68
-KPX o T -39
-KPX o quoteright -61
-KPX o t -16
-KPX o v -10
-KPX o w -3
-KPX o x -10
-KPX o y -21
-KPX oacute v -10
-KPX oacute w -3
-KPX oacute y -21
-KPX ocircumflex t -16
-KPX odieresis t -16
-KPX odieresis v -10
-KPX odieresis w -3
-KPX odieresis x -10
-KPX odieresis y -21
-KPX ograve v -10
-KPX ograve w -3
-KPX ograve y -21
-KPX one comma -104
-KPX one eight -83
-KPX one five -63
-KPX one four -95
-KPX one nine -80
-KPX one one -68
-KPX one period -119
-KPX one seven -146
-KPX one six -107
-KPX one three -62
-KPX one two -53
-KPX one zero -95
-KPX p t -7
-KPX p y -12
-KPX period one -118
-KPX period quotedblright -137
-KPX period quoteright -165
-KPX q c 0
-KPX q u 37
-KPX quotedblbase A -10
-KPX quotedblbase AE -11
-KPX quotedblbase T -92
-KPX quotedblbase V -108
-KPX quotedblbase W -46
-KPX quotedblbase Y -80
-KPX quotedblleft A -66
-KPX quotedblleft AE -64
-KPX quotedblleft Aacute -66
-KPX quotedblleft Adieresis -66
-KPX quotedblleft Aring -66
-KPX quotedblleft T -28
-KPX quotedblleft V -20
-KPX quotedblleft W -15
-KPX quotedblleft Y -50
-KPX quotedblright A -81
-KPX quotedblright AE -79
-KPX quotedblright Aacute -81
-KPX quotedblright Adieresis -81
-KPX quotedblright Aring -81
-KPX quotedblright T -45
-KPX quotedblright V -35
-KPX quotedblright W -30
-KPX quotedblright Y -57
-KPX quoteleft A -90
-KPX quoteleft AE -88
-KPX quoteleft Aacute -90
-KPX quoteleft Adieresis -90
-KPX quoteleft Aring -90
-KPX quoteleft T -52
-KPX quoteleft V -45
-KPX quoteleft W -40
-KPX quoteleft Y -74
-KPX quoteright A -160
-KPX quoteright AE -158
-KPX quoteright Aacute -160
-KPX quoteright Adieresis -160
-KPX quoteright Aring -160
-KPX quoteright comma -234
-KPX quoteright d -146
-KPX quoteright o -148
-KPX quoteright period -251
-KPX quoteright r -155
-KPX quoteright s -154
-KPX quoteright t -121
-KPX quoteright v -114
-KPX quoteright w -109
-KPX quoteright y -120
-KPX r a -22
-KPX r aacute -22
-KPX r acircumflex -22
-KPX r adieresis -22
-KPX r ae 0
-KPX r agrave -22
-KPX r aring -22
-KPX r c -23
-KPX r ccedilla -18
-KPX r colon -100
-KPX r comma -112
-KPX r d -13
-KPX r e -11
-KPX r eacute -11
-KPX r ecircumflex -11
-KPX r egrave -11
-KPX r f -20
-KPX r g -9
-KPX r h -23
-KPX r hyphen -48
-KPX r i -30
-KPX r j -38
-KPX r k -33
-KPX r l -50
-KPX r m 31
-KPX r n 5
-KPX r o -16
-KPX r oacute -16
-KPX r ocircumflex -16
-KPX r odieresis -16
-KPX r oe 15
-KPX r ograve -16
-KPX r oslash -16
-KPX r p 25
-KPX r period -126
-KPX r q -8
-KPX r quoteright -45
-KPX r r -17
-KPX r s -25
-KPX r semicolon -88
-KPX r t 15
-KPX r u 15
-KPX r v 22
-KPX r w 21
-KPX r x 2
-KPX r y 10
-KPX r z -24
-KPX s quoteright -62
-KPX s t -14
-KPX seven colon -162
-KPX seven comma -160
-KPX seven eight -79
-KPX seven five -87
-KPX seven four -105
-KPX seven one -72
-KPX seven period -179
-KPX seven seven -69
-KPX seven six -98
-KPX seven three -78
-KPX seven two -70
-KPX six four -54
-KPX six one -60
-KPX six seven -55
-KPX t S -40
-KPX t a -21
-KPX t aacute -21
-KPX t adieresis -21
-KPX t ae 4
-KPX t aring -21
-KPX t colon -121
-KPX t e -30
-KPX t eacute -30
-KPX t h -8
-KPX t o -36
-KPX t oacute -36
-KPX t odieresis -36
-KPX t quoteright -102
-KPX t semicolon -107
-KPX three four -58
-KPX three one -79
-KPX three seven -74
-KPX two four -75
-KPX two one -73
-KPX two seven -78
-KPX u quoteright -58
-KPX v a -7
-KPX v aacute -7
-KPX v acircumflex -7
-KPX v adieresis -7
-KPX v ae 15
-KPX v agrave -7
-KPX v aring -7
-KPX v atilde -7
-KPX v c -17
-KPX v colon -86
-KPX v comma -139
-KPX v e -6
-KPX v eacute -6
-KPX v ecircumflex -6
-KPX v egrave -6
-KPX v g -2
-KPX v hyphen -28
-KPX v l -79
-KPX v o -11
-KPX v oacute -11
-KPX v odieresis -11
-KPX v ograve -11
-KPX v oslash -10
-KPX v period -159
-KPX v s -15
-KPX v semicolon -74
-KPX w a -6
-KPX w aacute -7
-KPX w acircumflex -6
-KPX w adieresis -6
-KPX w ae 22
-KPX w agrave -6
-KPX w aring -6
-KPX w atilde -6
-KPX w c -8
-KPX w colon -86
-KPX w comma -93
-KPX w e 0
-KPX w eacute 0
-KPX w ecircumflex 0
-KPX w egrave 0
-KPX w g 2
-KPX w hyphen -1
-KPX w l -51
-KPX w o -4
-KPX w oacute -4
-KPX w odieresis -4
-KPX w ograve -4
-KPX w oslash 0
-KPX w period -112
-KPX w s -13
-KPX w semicolon -74
-KPX x a -1
-KPX x c -16
-KPX x e -7
-KPX x eacute -7
-KPX x o -12
-KPX x q -9
-KPX y a -17
-KPX y aacute -18
-KPX y acircumflex -17
-KPX y adieresis -17
-KPX y ae 4
-KPX y agrave -17
-KPX y aring -17
-KPX y atilde -17
-KPX y c -25
-KPX y colon -96
-KPX y comma -137
-KPX y e -14
-KPX y eacute -14
-KPX y ecircumflex -14
-KPX y egrave -14
-KPX y g -11
-KPX y hyphen -23
-KPX y l -79
-KPX y o -20
-KPX y oacute -20
-KPX y odieresis -20
-KPX y ograve -20
-KPX y oslash -19
-KPX y period -158
-KPX y s -24
-KPX y semicolon -84
-KPX zero four -65
-KPX zero one -81
-KPX zero seven -79
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/n022024l.pfb b/Master/xemtex/gsfonts/n022024l.pfb
deleted file mode 100644
index 45318af7251..00000000000
--- a/Master/xemtex/gsfonts/n022024l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/n022024l.pfm b/Master/xemtex/gsfonts/n022024l.pfm
deleted file mode 100644
index 0ab6fa91ceb..00000000000
--- a/Master/xemtex/gsfonts/n022024l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052003l.afm b/Master/xemtex/gsfonts/p052003l.afm
deleted file mode 100644
index 4958d750df7..00000000000
--- a/Master/xemtex/gsfonts/p052003l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWPalladioL-Roma
-FullName URW Palladio L Roman
-FamilyName URW Palladio L
-Weight Roman
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -166 -283 1021 943
-CapHeight 692
-XHeight 469
-Descender -281
-Ascender 726
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 278 ; N exclam ; B 81 -5 197 694 ;
-C 34 ; WX 371 ; N quotedbl ; B 52 469 319 709 ;
-C 35 ; WX 500 ; N numbersign ; B 4 0 495 684 ;
-C 36 ; WX 500 ; N dollar ; B 30 -116 471 731 ;
-C 37 ; WX 840 ; N percent ; B 39 -20 802 709 ;
-C 38 ; WX 778 ; N ampersand ; B 43 -20 753 689 ;
-C 39 ; WX 278 ; N quoteright ; B 45 446 233 709 ;
-C 40 ; WX 333 ; N parenleft ; B 60 -215 301 726 ;
-C 41 ; WX 333 ; N parenright ; B 32 -215 273 726 ;
-C 42 ; WX 389 ; N asterisk ; B 32 342 359 689 ;
-C 43 ; WX 606 ; N plus ; B 51 7 555 512 ;
-C 44 ; WX 250 ; N comma ; B 16 -155 218 123 ;
-C 45 ; WX 333 ; N hyphen ; B 17 215 312 287 ;
-C 46 ; WX 250 ; N period ; B 67 -5 183 111 ;
-C 47 ; WX 606 ; N slash ; B 87 -119 519 726 ;
-C 48 ; WX 500 ; N zero ; B 29 -20 465 689 ;
-C 49 ; WX 500 ; N one ; B 60 -3 418 694 ;
-C 50 ; WX 500 ; N two ; B 16 -3 468 689 ;
-C 51 ; WX 500 ; N three ; B 15 -20 462 689 ;
-C 52 ; WX 500 ; N four ; B 2 -3 472 694 ;
-C 53 ; WX 500 ; N five ; B 13 -20 459 689 ;
-C 54 ; WX 500 ; N six ; B 32 -20 468 689 ;
-C 55 ; WX 500 ; N seven ; B 44 -3 497 689 ;
-C 56 ; WX 500 ; N eight ; B 30 -20 464 689 ;
-C 57 ; WX 500 ; N nine ; B 20 -20 457 689 ;
-C 58 ; WX 250 ; N colon ; B 66 -5 182 456 ;
-C 59 ; WX 250 ; N semicolon ; B 16 -153 218 456 ;
-C 60 ; WX 606 ; N less ; B 57 -2 558 524 ;
-C 61 ; WX 606 ; N equal ; B 51 136 555 386 ;
-C 62 ; WX 606 ; N greater ; B 48 -2 549 524 ;
-C 63 ; WX 444 ; N question ; B 43 -5 395 694 ;
-C 64 ; WX 747 ; N at ; B 24 -20 724 694 ;
-C 65 ; WX 778 ; N A ; B 15 -3 756 700 ;
-C 66 ; WX 611 ; N B ; B 26 -3 576 692 ;
-C 67 ; WX 709 ; N C ; B 22 -20 670 709 ;
-C 68 ; WX 774 ; N D ; B 22 -3 751 692 ;
-C 69 ; WX 611 ; N E ; B 22 -3 572 692 ;
-C 70 ; WX 556 ; N F ; B 22 -3 536 692 ;
-C 71 ; WX 763 ; N G ; B 22 -20 728 709 ;
-C 72 ; WX 832 ; N H ; B 22 -3 810 692 ;
-C 73 ; WX 337 ; N I ; B 22 -3 315 692 ;
-C 74 ; WX 333 ; N J ; B -15 -200 311 692 ;
-C 75 ; WX 726 ; N K ; B 22 -3 719 692 ;
-C 76 ; WX 611 ; N L ; B 22 -3 586 692 ;
-C 77 ; WX 946 ; N M ; B 16 -13 926 692 ;
-C 78 ; WX 831 ; N N ; B 17 -20 813 692 ;
-C 79 ; WX 786 ; N O ; B 22 -20 764 709 ;
-C 80 ; WX 604 ; N P ; B 22 -3 580 692 ;
-C 81 ; WX 786 ; N Q ; B 22 -176 764 709 ;
-C 82 ; WX 668 ; N R ; B 22 -3 669 692 ;
-C 83 ; WX 525 ; N S ; B 24 -20 503 709 ;
-C 84 ; WX 613 ; N T ; B 18 -3 595 692 ;
-C 85 ; WX 778 ; N U ; B 12 -20 759 692 ;
-C 86 ; WX 722 ; N V ; B 8 -9 706 692 ;
-C 87 ; WX 1000 ; N W ; B 8 -9 984 700 ;
-C 88 ; WX 667 ; N X ; B 14 -3 648 700 ;
-C 89 ; WX 667 ; N Y ; B 9 -3 654 706 ;
-C 90 ; WX 667 ; N Z ; B 15 -3 638 692 ;
-C 91 ; WX 333 ; N bracketleft ; B 79 -184 288 726 ;
-C 92 ; WX 606 ; N backslash ; B 81 0 512 726 ;
-C 93 ; WX 333 ; N bracketright ; B 45 -184 254 726 ;
-C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 278 ; N quoteleft ; B 45 446 233 709 ;
-C 97 ; WX 500 ; N a ; B 32 -12 471 469 ;
-C 98 ; WX 553 ; N b ; B -15 -12 508 726 ;
-C 99 ; WX 444 ; N c ; B 26 -20 413 469 ;
-C 100 ; WX 611 ; N d ; B 35 -12 579 726 ;
-C 101 ; WX 479 ; N e ; B 26 -20 448 469 ;
-C 102 ; WX 333 ; N f ; B 23 -3 341 728 ;
-C 103 ; WX 556 ; N g ; B 32 -283 544 469 ;
-C 104 ; WX 582 ; N h ; B 6 -3 572 726 ;
-C 105 ; WX 291 ; N i ; B 21 -3 271 687 ;
-C 106 ; WX 234 ; N j ; B -40 -283 167 688 ;
-C 107 ; WX 556 ; N k ; B 21 -12 549 726 ;
-C 108 ; WX 291 ; N l ; B 21 -3 271 726 ;
-C 109 ; WX 883 ; N m ; B 16 -3 869 469 ;
-C 110 ; WX 582 ; N n ; B 6 -3 572 469 ;
-C 111 ; WX 546 ; N o ; B 32 -20 514 469 ;
-C 112 ; WX 601 ; N p ; B 8 -281 554 469 ;
-C 113 ; WX 560 ; N q ; B 35 -281 560 469 ;
-C 114 ; WX 395 ; N r ; B 21 -3 374 469 ;
-C 115 ; WX 424 ; N s ; B 30 -20 391 469 ;
-C 116 ; WX 326 ; N t ; B 22 -12 319 621 ;
-C 117 ; WX 603 ; N u ; B 18 -12 581 469 ;
-C 118 ; WX 565 ; N v ; B 6 -7 539 459 ;
-C 119 ; WX 834 ; N w ; B 6 -7 808 469 ;
-C 120 ; WX 516 ; N x ; B 20 -3 496 469 ;
-C 121 ; WX 556 ; N y ; B 12 -283 544 459 ;
-C 122 ; WX 500 ; N z ; B 16 -3 466 462 ;
-C 123 ; WX 333 ; N braceleft ; B 58 -175 289 726 ;
-C 124 ; WX 606 ; N bar ; B 275 0 331 726 ;
-C 125 ; WX 333 ; N braceright ; B 44 -175 275 726 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 182 555 341 ;
-C 161 ; WX 278 ; N exclamdown ; B 81 -225 197 469 ;
-C 162 ; WX 500 ; N cent ; B 61 -101 448 562 ;
-C 163 ; WX 500 ; N sterling ; B 12 -13 478 694 ;
-C 164 ; WX 167 ; N fraction ; B -166 0 337 689 ;
-C 165 ; WX 500 ; N yen ; B 5 -3 496 701 ;
-C 166 ; WX 500 ; N florin ; B 0 -262 473 706 ;
-C 167 ; WX 500 ; N section ; B 26 -219 465 709 ;
-C 168 ; WX 500 ; N currency ; B 30 96 470 531 ;
-C 169 ; WX 208 ; N quotesingle ; B 61 469 147 709 ;
-C 170 ; WX 500 ; N quotedblleft ; B 51 446 449 709 ;
-C 171 ; WX 500 ; N guillemotleft ; B 50 71 450 428 ;
-C 172 ; WX 331 ; N guilsinglleft ; B 66 71 265 428 ;
-C 173 ; WX 331 ; N guilsinglright ; B 66 71 265 428 ;
-C 174 ; WX 605 ; N fi ; B 23 -3 587 728 ;
-C 175 ; WX 608 ; N fl ; B 23 -3 590 728 ;
-C 177 ; WX 500 ; N endash ; B 0 219 500 277 ;
-C 178 ; WX 500 ; N dagger ; B 34 -5 466 694 ;
-C 179 ; WX 500 ; N daggerdbl ; B 34 -249 466 694 ;
-C 180 ; WX 250 ; N periodcentered ; B 67 203 183 319 ;
-C 182 ; WX 628 ; N paragraph ; B 39 -150 589 695 ;
-C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ;
-C 184 ; WX 278 ; N quotesinglbase ; B 22 -153 210 110 ;
-C 185 ; WX 500 ; N quotedblbase ; B 51 -153 449 110 ;
-C 186 ; WX 500 ; N quotedblright ; B 51 446 449 709 ;
-C 187 ; WX 500 ; N guillemotright ; B 50 71 450 428 ;
-C 188 ; WX 1000 ; N ellipsis ; B 109 -5 891 111 ;
-C 189 ; WX 1144 ; N perthousand ; B 123 -20 1021 709 ;
-C 191 ; WX 444 ; N questiondown ; B 43 -231 395 469 ;
-C 193 ; WX 333 ; N grave ; B 31 506 255 677 ;
-C 194 ; WX 333 ; N acute ; B 78 506 302 677 ;
-C 195 ; WX 333 ; N circumflex ; B 11 510 323 677 ;
-C 196 ; WX 333 ; N tilde ; B 2 535 332 640 ;
-C 197 ; WX 333 ; N macron ; B 11 538 323 591 ;
-C 198 ; WX 333 ; N breve ; B 26 506 308 664 ;
-C 199 ; WX 250 ; N dotaccent ; B 75 537 175 637 ;
-C 200 ; WX 333 ; N dieresis ; B 17 537 316 637 ;
-C 202 ; WX 333 ; N ring ; B 67 512 267 712 ;
-C 203 ; WX 333 ; N cedilla ; B 96 -225 304 -10 ;
-C 205 ; WX 380 ; N hungarumlaut ; B 3 506 377 687 ;
-C 206 ; WX 313 ; N ogonek ; B 68 -145 245 0 ;
-C 207 ; WX 333 ; N caron ; B 11 510 323 677 ;
-C 208 ; WX 1000 ; N emdash ; B 0 219 1000 277 ;
-C 225 ; WX 944 ; N AE ; B -10 -3 908 692 ;
-C 227 ; WX 333 ; N ordfeminine ; B 24 422 310 709 ;
-C 232 ; WX 611 ; N Lslash ; B 6 -3 586 692 ;
-C 233 ; WX 833 ; N Oslash ; B 30 -20 797 709 ;
-C 234 ; WX 998 ; N OE ; B 22 -20 962 709 ;
-C 235 ; WX 333 ; N ordmasculine ; B 10 416 323 709 ;
-C 241 ; WX 758 ; N ae ; B 30 -20 732 469 ;
-C 245 ; WX 287 ; N dotlessi ; B 21 -3 271 469 ;
-C 248 ; WX 291 ; N lslash ; B -14 -3 306 726 ;
-C 249 ; WX 556 ; N oslash ; B 16 -23 530 474 ;
-C 250 ; WX 827 ; N oe ; B 32 -20 800 469 ;
-C 251 ; WX 556 ; N germandbls ; B 23 -9 519 731 ;
-C -1 ; WX 778 ; N Udieresis ; B 12 -20 759 868 ;
-C -1 ; WX 778 ; N Uacute ; B 12 -20 759 908 ;
-C -1 ; WX 525 ; N Scedilla ; B 24 -225 503 709 ;
-C -1 ; WX 613 ; N Tcaron ; B 18 -3 595 908 ;
-C -1 ; WX 525 ; N Scaron ; B 24 -20 503 908 ;
-C -1 ; WX 668 ; N Rcaron ; B 22 -3 669 908 ;
-C -1 ; WX 668 ; N Racute ; B 22 -3 669 908 ;
-C -1 ; WX 525 ; N Sacute ; B 24 -20 503 908 ;
-C -1 ; WX 786 ; N Otilde ; B 22 -20 764 871 ;
-C -1 ; WX 603 ; N ucircumflex ; B 18 -12 581 677 ;
-C -1 ; WX 786 ; N Ohungarumlaut ; B 22 -20 764 918 ;
-C -1 ; WX 778 ; N Uhungarumlaut ; B 12 -20 759 918 ;
-C -1 ; WX 667 ; N Yacute ; B 9 -3 654 908 ;
-C -1 ; WX 774 ; N Eth ; B 14 -3 751 692 ;
-C -1 ; WX 774 ; N Dcroat ; B 14 -3 751 692 ;
-C -1 ; WX 667 ; N Zacute ; B 15 -3 638 908 ;
-C -1 ; WX 778 ; N Uring ; B 12 -20 759 943 ;
-C -1 ; WX 556 ; N gbreve ; B 32 -283 544 664 ;
-C -1 ; WX 479 ; N eogonek ; B 26 -145 461 469 ;
-C -1 ; WX 479 ; N edotaccent ; B 26 -20 448 637 ;
-C -1 ; WX 479 ; N ecaron ; B 26 -20 448 677 ;
-C -1 ; WX 778 ; N Ugrave ; B 12 -20 759 908 ;
-C -1 ; WX 604 ; N Thorn ; B 32 -3 574 692 ;
-C -1 ; WX 479 ; N eacute ; B 26 -20 448 677 ;
-C -1 ; WX 479 ; N edieresis ; B 26 -20 448 637 ;
-C -1 ; WX 671 ; N dcaron ; B 35 -12 677 729 ;
-C -1 ; WX 444 ; N ccedilla ; B 26 -225 413 469 ;
-C -1 ; WX 444 ; N ccaron ; B 26 -20 418 677 ;
-C -1 ; WX 444 ; N cacute ; B 26 -20 444 677 ;
-C -1 ; WX 500 ; N aogonek ; B 32 -145 540 469 ;
-C -1 ; WX 500 ; N aring ; B 32 -12 471 712 ;
-C -1 ; WX 500 ; N atilde ; B 32 -12 471 640 ;
-C -1 ; WX 500 ; N abreve ; B 32 -12 471 664 ;
-C -1 ; WX 479 ; N egrave ; B 26 -20 448 677 ;
-C -1 ; WX 500 ; N agrave ; B 32 -12 471 677 ;
-C -1 ; WX 500 ; N aacute ; B 32 -12 471 677 ;
-C -1 ; WX 500 ; N adieresis ; B 32 -12 471 637 ;
-C -1 ; WX 778 ; N Uogonek ; B 12 -145 759 692 ;
-C -1 ; WX 603 ; N ugrave ; B 18 -12 581 677 ;
-C -1 ; WX 603 ; N uacute ; B 18 -12 581 677 ;
-C -1 ; WX 603 ; N udieresis ; B 18 -12 581 637 ;
-C -1 ; WX 375 ; N tcaron ; B 22 -12 381 696 ;
-C -1 ; WX 424 ; N scommaaccent ; B 30 -274 391 469 ;
-C -1 ; WX 667 ; N Zcaron ; B 15 -3 638 908 ;
-C -1 ; WX 479 ; N ecircumflex ; B 26 -20 448 677 ;
-C -1 ; WX 778 ; N Ucircumflex ; B 12 -20 759 908 ;
-C -1 ; WX 500 ; N acircumflex ; B 32 -12 471 677 ;
-C -1 ; WX 667 ; N Zdotaccent ; B 15 -3 638 868 ;
-C -1 ; WX 424 ; N scaron ; B 30 -20 391 677 ;
-C -1 ; WX 778 ; N Amacron ; B 15 -3 756 822 ;
-C -1 ; WX 424 ; N sacute ; B 30 -20 391 677 ;
-C -1 ; WX 613 ; N Tcommaaccent ; B 18 -274 595 692 ;
-C -1 ; WX 667 ; N Ydieresis ; B 9 -3 654 868 ;
-C -1 ; WX 601 ; N thorn ; B -2 -281 544 726 ;
-C -1 ; WX 611 ; N Emacron ; B 22 -3 572 822 ;
-C -1 ; WX 786 ; N Ograve ; B 22 -20 764 908 ;
-C -1 ; WX 786 ; N Oacute ; B 22 -20 764 908 ;
-C -1 ; WX 786 ; N Odieresis ; B 22 -20 764 868 ;
-C -1 ; WX 831 ; N Ntilde ; B 17 -20 813 871 ;
-C -1 ; WX 831 ; N Ncaron ; B 17 -20 813 908 ;
-C -1 ; WX 831 ; N Nacute ; B 17 -20 813 908 ;
-C -1 ; WX 611 ; N Lcaron ; B 22 -3 586 696 ;
-C -1 ; WX 611 ; N Lacute ; B 22 -3 586 908 ;
-C -1 ; WX 337 ; N Idotaccent ; B 22 -3 315 868 ;
-C -1 ; WX 395 ; N racute ; B 21 -3 374 677 ;
-C -1 ; WX 337 ; N Icircumflex ; B 13 -3 325 908 ;
-C -1 ; WX 546 ; N ohungarumlaut ; B 32 -20 514 687 ;
-C -1 ; WX 546 ; N otilde ; B 32 -20 514 640 ;
-C -1 ; WX 500 ; N Euro ; B -38 -20 465 709 ;
-C -1 ; WX 546 ; N ocircumflex ; B 32 -20 514 677 ;
-C -1 ; WX 300 ; N onesuperior ; B 32 271 254 689 ;
-C -1 ; WX 300 ; N twosuperior ; B 6 271 284 686 ;
-C -1 ; WX 300 ; N threesuperior ; B 5 261 281 686 ;
-C -1 ; WX 337 ; N Igrave ; B 22 -3 315 908 ;
-C -1 ; WX 337 ; N Iacute ; B 22 -3 315 908 ;
-C -1 ; WX 337 ; N Imacron ; B 13 -3 325 822 ;
-C -1 ; WX 337 ; N Iogonek ; B 22 -145 337 692 ;
-C -1 ; WX 337 ; N Idieresis ; B 19 -3 318 868 ;
-C -1 ; WX 763 ; N Gbreve ; B 22 -20 728 895 ;
-C -1 ; WX 778 ; N Umacron ; B 12 -20 759 822 ;
-C -1 ; WX 726 ; N Kcommaaccent ; B 22 -274 719 692 ;
-C -1 ; WX 546 ; N ograve ; B 32 -20 514 677 ;
-C -1 ; WX 525 ; N Scommaaccent ; B 24 -274 503 709 ;
-C -1 ; WX 611 ; N Eogonek ; B 22 -145 611 692 ;
-C -1 ; WX 546 ; N oacute ; B 32 -20 514 677 ;
-C -1 ; WX 611 ; N Edotaccent ; B 22 -3 572 868 ;
-C -1 ; WX 291 ; N iogonek ; B 21 -145 331 687 ;
-C -1 ; WX 556 ; N gcommaaccent ; B 32 -283 544 736 ;
-C -1 ; WX 546 ; N odieresis ; B 32 -20 514 637 ;
-C -1 ; WX 582 ; N ntilde ; B 6 -3 572 640 ;
-C -1 ; WX 582 ; N ncaron ; B 6 -3 572 677 ;
-C -1 ; WX 611 ; N Ecaron ; B 22 -3 572 908 ;
-C -1 ; WX 611 ; N Ecircumflex ; B 22 -3 572 908 ;
-C -1 ; WX 424 ; N scedilla ; B 30 -225 391 469 ;
-C -1 ; WX 395 ; N rcaron ; B 21 -3 374 677 ;
-C -1 ; WX 611 ; N Egrave ; B 22 -3 572 908 ;
-C -1 ; WX 611 ; N Eacute ; B 22 -3 572 908 ;
-C -1 ; WX 763 ; N Gcommaaccent ; B 22 -274 728 709 ;
-C -1 ; WX 668 ; N Rcommaaccent ; B 22 -274 669 692 ;
-C -1 ; WX 611 ; N Edieresis ; B 22 -3 572 868 ;
-C -1 ; WX 582 ; N nacute ; B 6 -3 572 677 ;
-C -1 ; WX 603 ; N uogonek ; B 18 -145 643 469 ;
-C -1 ; WX 603 ; N umacron ; B 18 -12 581 591 ;
-C -1 ; WX 774 ; N Dcaron ; B 22 -3 751 908 ;
-C -1 ; WX 375 ; N lcaron ; B 21 -3 381 729 ;
-C -1 ; WX 709 ; N Ccaron ; B 22 -20 670 908 ;
-C -1 ; WX 709 ; N Cacute ; B 22 -20 670 908 ;
-C -1 ; WX 709 ; N Ccedilla ; B 22 -225 670 709 ;
-C -1 ; WX 400 ; N degree ; B 50 389 350 689 ;
-C -1 ; WX 778 ; N Aogonek ; B 15 -145 778 700 ;
-C -1 ; WX 606 ; N minus ; B 51 233 555 289 ;
-C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ;
-C -1 ; WX 606 ; N divide ; B 51 10 555 512 ;
-C -1 ; WX 778 ; N Aring ; B 15 -3 756 943 ;
-C -1 ; WX 979 ; N trademark ; B 40 285 939 689 ;
-C -1 ; WX 395 ; N rcommaaccent ; B 21 -274 374 469 ;
-C -1 ; WX 291 ; N lacute ; B 21 -3 281 908 ;
-C -1 ; WX 546 ; N omacron ; B 32 -20 514 591 ;
-C -1 ; WX 778 ; N Atilde ; B 15 -3 756 871 ;
-C -1 ; WX 287 ; N icircumflex ; B -12 -3 300 677 ;
-C -1 ; WX 287 ; N igrave ; B 8 -3 271 677 ;
-C -1 ; WX 582 ; N ncommaaccent ; B 6 -274 572 469 ;
-C -1 ; WX 291 ; N lcommaaccent ; B 21 -274 271 726 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ;
-C -1 ; WX 750 ; N onehalf ; B 15 -3 735 692 ;
-C -1 ; WX 750 ; N onequarter ; B 30 -3 727 692 ;
-C -1 ; WX 750 ; N threequarters ; B 15 -3 735 689 ;
-C -1 ; WX 287 ; N iacute ; B 21 -3 279 677 ;
-C -1 ; WX 778 ; N Abreve ; B 15 -3 756 895 ;
-C -1 ; WX 556 ; N kcommaaccent ; B 21 -274 549 726 ;
-C -1 ; WX 786 ; N Omacron ; B 22 -20 764 822 ;
-C -1 ; WX 287 ; N imacron ; B -12 -3 300 591 ;
-C -1 ; WX 479 ; N emacron ; B 26 -20 448 591 ;
-C -1 ; WX 500 ; N amacron ; B 32 -12 471 591 ;
-C -1 ; WX 326 ; N tcommaaccent ; B 22 -274 319 621 ;
-C -1 ; WX 556 ; N ydieresis ; B 12 -283 544 637 ;
-C -1 ; WX 500 ; N zdotaccent ; B 16 -3 466 637 ;
-C -1 ; WX 500 ; N zcaron ; B 16 -3 466 677 ;
-C -1 ; WX 500 ; N zacute ; B 16 -3 466 677 ;
-C -1 ; WX 556 ; N yacute ; B 12 -283 544 677 ;
-C -1 ; WX 603 ; N uhungarumlaut ; B 18 -12 581 687 ;
-C -1 ; WX 546 ; N eth ; B 32 -20 504 728 ;
-C -1 ; WX 603 ; N uring ; B 18 -12 581 712 ;
-C -1 ; WX 786 ; N Ocircumflex ; B 22 -20 764 908 ;
-C -1 ; WX 333 ; N commaaccent ; B 54 -274 223 -37 ;
-C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ;
-C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ;
-C -1 ; WX 778 ; N Acircumflex ; B 15 -3 756 908 ;
-C -1 ; WX 287 ; N idieresis ; B -6 -3 293 657 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 51 -25 555 549 ;
-C -1 ; WX 549 ; N radical ; B 5 -48 520 918 ;
-C -1 ; WX 778 ; N Agrave ; B 15 -3 756 908 ;
-C -1 ; WX 778 ; N Aacute ; B 15 -3 756 908 ;
-C -1 ; WX 606 ; N lessequal ; B 57 0 558 613 ;
-C -1 ; WX 606 ; N greaterequal ; B 48 0 549 613 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 120 551 386 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 831 ; N Ncommaaccent ; B 17 -274 813 692 ;
-C -1 ; WX 611 ; N dcroat ; B 35 -12 579 726 ;
-C -1 ; WX 606 ; N brokenbar ; B 275 0 331 726 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B 22 -274 586 692 ;
-C -1 ; WX 778 ; N Adieresis ; B 15 -3 756 868 ;
-C -1 ; WX 603 ; N mu ; B 18 -236 581 469 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -72
-KPX A Ccedilla -75
-KPX A G -70
-KPX A O -69
-KPX A Odieresis -69
-KPX A Q -67
-KPX A T -69
-KPX A U -74
-KPX A Uacute -74
-KPX A Ucircumflex -74
-KPX A Udieresis -74
-KPX A Ugrave -74
-KPX A V -140
-KPX A W -98
-KPX A Y -89
-KPX A a -11
-KPX A b -13
-KPX A c -33
-KPX A ccedilla -39
-KPX A comma -33
-KPX A d -34
-KPX A e -30
-KPX A g -26
-KPX A guillemotleft -84
-KPX A guilsinglleft -92
-KPX A hyphen -37
-KPX A o -36
-KPX A period -24
-KPX A q -34
-KPX A quotedblright -123
-KPX A quoteright -120
-KPX A t -38
-KPX A u -45
-KPX A v -87
-KPX A w -78
-KPX A y -88
-KPX Aacute C -72
-KPX Aacute G -70
-KPX Aacute O -69
-KPX Aacute Q -67
-KPX Aacute T -69
-KPX Aacute U -74
-KPX Aacute V -140
-KPX Aacute W -98
-KPX Aacute Y -89
-KPX Aacute a -11
-KPX Aacute b -13
-KPX Aacute c -33
-KPX Aacute comma -33
-KPX Aacute d -34
-KPX Aacute e -30
-KPX Aacute g -26
-KPX Aacute guillemotleft -84
-KPX Aacute guilsinglleft -92
-KPX Aacute hyphen -37
-KPX Aacute o -36
-KPX Aacute period -24
-KPX Aacute q -34
-KPX Aacute quoteright -120
-KPX Aacute t -38
-KPX Aacute u -45
-KPX Aacute v -87
-KPX Aacute w -78
-KPX Aacute y -88
-KPX Acircumflex C -72
-KPX Acircumflex G -70
-KPX Acircumflex O -69
-KPX Acircumflex Q -67
-KPX Acircumflex T -69
-KPX Acircumflex U -74
-KPX Acircumflex V -140
-KPX Acircumflex W -98
-KPX Acircumflex Y -89
-KPX Acircumflex comma -33
-KPX Acircumflex period -24
-KPX Adieresis C -72
-KPX Adieresis G -70
-KPX Adieresis O -69
-KPX Adieresis Q -67
-KPX Adieresis T -69
-KPX Adieresis U -74
-KPX Adieresis V -140
-KPX Adieresis W -98
-KPX Adieresis Y -89
-KPX Adieresis a -11
-KPX Adieresis b -13
-KPX Adieresis c -33
-KPX Adieresis comma -33
-KPX Adieresis d -34
-KPX Adieresis g -26
-KPX Adieresis guillemotleft -84
-KPX Adieresis guilsinglleft -92
-KPX Adieresis hyphen -37
-KPX Adieresis o -36
-KPX Adieresis period -24
-KPX Adieresis q -34
-KPX Adieresis quotedblright -123
-KPX Adieresis quoteright -120
-KPX Adieresis t -38
-KPX Adieresis u -45
-KPX Adieresis v -87
-KPX Adieresis w -78
-KPX Adieresis y -88
-KPX Agrave C -72
-KPX Agrave G -70
-KPX Agrave O -69
-KPX Agrave Q -67
-KPX Agrave T -69
-KPX Agrave U -74
-KPX Agrave V -140
-KPX Agrave W -98
-KPX Agrave Y -89
-KPX Agrave comma -33
-KPX Agrave period -24
-KPX Aring C -72
-KPX Aring G -70
-KPX Aring O -69
-KPX Aring Q -67
-KPX Aring T -69
-KPX Aring U -74
-KPX Aring V -140
-KPX Aring W -98
-KPX Aring Y -89
-KPX Aring a -11
-KPX Aring b -13
-KPX Aring c -33
-KPX Aring comma -33
-KPX Aring d -34
-KPX Aring e -30
-KPX Aring g -26
-KPX Aring guillemotleft -84
-KPX Aring guilsinglleft -92
-KPX Aring hyphen -37
-KPX Aring o -36
-KPX Aring period -24
-KPX Aring q -34
-KPX Aring quotedblright -123
-KPX Aring quoteright -120
-KPX Aring t -38
-KPX Aring u -45
-KPX Aring v -87
-KPX Aring w -78
-KPX Aring y -88
-KPX Atilde C -72
-KPX Atilde G -70
-KPX Atilde O -69
-KPX Atilde Q -67
-KPX Atilde T -69
-KPX Atilde U -74
-KPX Atilde V -140
-KPX Atilde W -98
-KPX Atilde Y -89
-KPX Atilde comma -33
-KPX Atilde period -24
-KPX B A -51
-KPX B AE -38
-KPX B Aacute -51
-KPX B Acircumflex -51
-KPX B Adieresis -51
-KPX B Aring -51
-KPX B Atilde -51
-KPX B O -8
-KPX B OE -8
-KPX B Oacute -8
-KPX B Ocircumflex -8
-KPX B Odieresis -8
-KPX B Ograve -8
-KPX B Oslash -15
-KPX B V -37
-KPX B W -37
-KPX B Y -33
-KPX C A -17
-KPX C AE -5
-KPX C Aacute -17
-KPX C Adieresis -17
-KPX C Aring -17
-KPX C H -11
-KPX C K -11
-KPX C O -39
-KPX C Oacute -39
-KPX C Odieresis -39
-KPX Ccedilla A -22
-KPX D A -82
-KPX D Aacute -82
-KPX D Acircumflex -82
-KPX D Adieresis -82
-KPX D Agrave -82
-KPX D Aring -82
-KPX D Atilde -82
-KPX D J -31
-KPX D T -18
-KPX D V -60
-KPX D W -46
-KPX D X -63
-KPX D Y -56
-KPX F A -95
-KPX F Aacute -95
-KPX F Acircumflex -95
-KPX F Adieresis -95
-KPX F Agrave -95
-KPX F Aring -95
-KPX F Atilde -95
-KPX F J 2
-KPX F O -18
-KPX F Odieresis -18
-KPX F a -40
-KPX F aacute -42
-KPX F adieresis -36
-KPX F ae -41
-KPX F aring -42
-KPX F comma -80
-KPX F e -23
-KPX F eacute -23
-KPX F hyphen 6
-KPX F i -22
-KPX F j -8
-KPX F o -26
-KPX F oacute -26
-KPX F odieresis -26
-KPX F oe -26
-KPX F oslash -29
-KPX F period -65
-KPX F r -22
-KPX F u -20
-KPX G A -23
-KPX G AE -10
-KPX G Aacute -23
-KPX G Acircumflex -23
-KPX G Adieresis -23
-KPX G Agrave -23
-KPX G Aring -23
-KPX G Atilde -23
-KPX G T -23
-KPX G V -17
-KPX G W -17
-KPX G Y -18
-KPX J A -47
-KPX J AE -35
-KPX J Adieresis -47
-KPX J Aring -47
-KPX K C -64
-KPX K G -63
-KPX K O -61
-KPX K OE -61
-KPX K Oacute -61
-KPX K Odieresis -61
-KPX K S 3
-KPX K T -4
-KPX K a -4
-KPX K adieresis -4
-KPX K ae 0
-KPX K aring -4
-KPX K e -23
-KPX K hyphen -77
-KPX K o -29
-KPX K oacute -29
-KPX K odieresis -29
-KPX K u -37
-KPX K udieresis -37
-KPX K y -89
-KPX L A -6
-KPX L AE 6
-KPX L Aacute -6
-KPX L Adieresis -6
-KPX L Aring -6
-KPX L C -19
-KPX L Ccedilla -21
-KPX L G -19
-KPX L O -18
-KPX L Oacute -18
-KPX L Ocircumflex -18
-KPX L Odieresis -18
-KPX L Ograve -18
-KPX L Otilde -18
-KPX L S -9
-KPX L T -78
-KPX L U -47
-KPX L Udieresis -47
-KPX L V -124
-KPX L W -83
-KPX L Y -98
-KPX L hyphen 2
-KPX L quotedblright -128
-KPX L quoteright -125
-KPX L u -35
-KPX L udieresis -35
-KPX L y -62
-KPX N A -41
-KPX N AE -29
-KPX N Aacute -41
-KPX N Adieresis -41
-KPX N Aring -41
-KPX N C -29
-KPX N Ccedilla -28
-KPX N G -29
-KPX N O -27
-KPX N Oacute -27
-KPX N Odieresis -27
-KPX N a -32
-KPX N aacute -33
-KPX N adieresis -33
-KPX N ae -33
-KPX N aring -33
-KPX N comma -45
-KPX N e -24
-KPX N eacute -24
-KPX N o -28
-KPX N oacute -28
-KPX N odieresis -28
-KPX N oslash -27
-KPX N period -32
-KPX N u -38
-KPX N udieresis -38
-KPX O A -76
-KPX O AE -63
-KPX O Aacute -76
-KPX O Adieresis -76
-KPX O Aring -76
-KPX O T -17
-KPX O V -56
-KPX O W -44
-KPX O X -59
-KPX O Y -52
-KPX Oacute A -76
-KPX Oacute T -17
-KPX Oacute V -56
-KPX Oacute W -44
-KPX Oacute Y -52
-KPX Ocircumflex T -17
-KPX Ocircumflex V -56
-KPX Ocircumflex Y -52
-KPX Odieresis A -76
-KPX Odieresis T -17
-KPX Odieresis V -56
-KPX Odieresis W -44
-KPX Odieresis X -59
-KPX Odieresis Y -52
-KPX Ograve T -17
-KPX Ograve V -56
-KPX Ograve Y -52
-KPX Oslash A -88
-KPX Otilde T -17
-KPX Otilde V -56
-KPX Otilde Y -52
-KPX P A -124
-KPX P AE -117
-KPX P Aacute -124
-KPX P Adieresis -124
-KPX P Aring -124
-KPX P J -27
-KPX P a -41
-KPX P aacute -41
-KPX P adieresis -33
-KPX P ae -42
-KPX P aring -41
-KPX P comma -142
-KPX P e -51
-KPX P eacute -51
-KPX P hyphen -50
-KPX P o -54
-KPX P oacute -54
-KPX P odieresis -45
-KPX P oe -51
-KPX P oslash -58
-KPX P period -128
-KPX R C -41
-KPX R Ccedilla -41
-KPX R G -41
-KPX R O -40
-KPX R OE -40
-KPX R Oacute -40
-KPX R Odieresis -40
-KPX R T -36
-KPX R U -55
-KPX R Udieresis -55
-KPX R V -53
-KPX R W -53
-KPX R Y -49
-KPX R a 0
-KPX R aacute 0
-KPX R adieresis 0
-KPX R ae 3
-KPX R aring 0
-KPX R e -19
-KPX R eacute -19
-KPX R hyphen -51
-KPX R o -25
-KPX R oacute -25
-KPX R odieresis -25
-KPX R oe -27
-KPX R u -33
-KPX R uacute -33
-KPX R udieresis -33
-KPX R y -36
-KPX S A -42
-KPX S AE -30
-KPX S Aacute -42
-KPX S Adieresis -42
-KPX S Aring -42
-KPX S T -19
-KPX S V -14
-KPX S W -14
-KPX S Y -14
-KPX S t -18
-KPX T A -65
-KPX T AE -53
-KPX T Aacute -65
-KPX T Acircumflex -65
-KPX T Adieresis -65
-KPX T Agrave -65
-KPX T Aring -65
-KPX T Atilde -65
-KPX T C -24
-KPX T G -24
-KPX T J 3
-KPX T O -22
-KPX T OE -23
-KPX T Oacute -22
-KPX T Ocircumflex -22
-KPX T Odieresis -22
-KPX T Ograve -22
-KPX T Oslash -33
-KPX T Otilde -22
-KPX T S -4
-KPX T V 9
-KPX T W 9
-KPX T Y 8
-KPX T a -80
-KPX T ae -77
-KPX T c -97
-KPX T colon -94
-KPX T comma -102
-KPX T e -94
-KPX T g -95
-KPX T guillemotleft -126
-KPX T guilsinglleft -134
-KPX T hyphen -77
-KPX T i -26
-KPX T j -11
-KPX T o -98
-KPX T oslash -63
-KPX T period -92
-KPX T r -63
-KPX T s -68
-KPX T semicolon -101
-KPX T u -110
-KPX T v -105
-KPX T w -105
-KPX T y -108
-KPX U A -80
-KPX U AE -68
-KPX U Aacute -80
-KPX U Acircumflex -80
-KPX U Adieresis -80
-KPX U Aring -80
-KPX U Atilde -80
-KPX U comma -66
-KPX U m -39
-KPX U n -33
-KPX U p -35
-KPX U period -49
-KPX U r -41
-KPX Uacute A -80
-KPX Uacute comma -66
-KPX Uacute m -39
-KPX Uacute n -33
-KPX Uacute p -35
-KPX Uacute period -49
-KPX Uacute r -41
-KPX Ucircumflex A -80
-KPX Udieresis A -80
-KPX Udieresis b 24
-KPX Udieresis comma -66
-KPX Udieresis m -39
-KPX Udieresis n -33
-KPX Udieresis p -35
-KPX Udieresis period -49
-KPX Udieresis r -41
-KPX Ugrave A -80
-KPX V A -142
-KPX V AE -129
-KPX V Aacute -142
-KPX V Acircumflex -142
-KPX V Adieresis -142
-KPX V Agrave -142
-KPX V Aring -142
-KPX V Atilde -142
-KPX V C -70
-KPX V G -70
-KPX V O -68
-KPX V Oacute -68
-KPX V Ocircumflex -68
-KPX V Odieresis -68
-KPX V Ograve -68
-KPX V Oslash -74
-KPX V Otilde -68
-KPX V S -35
-KPX V T 5
-KPX V a -94
-KPX V ae -95
-KPX V colon -93
-KPX V comma -136
-KPX V e -89
-KPX V g -101
-KPX V guillemotleft -115
-KPX V guilsinglleft -123
-KPX V hyphen -66
-KPX V i -26
-KPX V o -92
-KPX V oslash -92
-KPX V period -121
-KPX V r -65
-KPX V semicolon -108
-KPX V u -63
-KPX V y -56
-KPX W A -113
-KPX W AE -100
-KPX W Aacute -113
-KPX W Acircumflex -113
-KPX W Adieresis -113
-KPX W Agrave -113
-KPX W Aring -113
-KPX W Atilde -113
-KPX W C -55
-KPX W G -55
-KPX W O -54
-KPX W Oacute -54
-KPX W Ocircumflex -54
-KPX W Odieresis -54
-KPX W Ograve -54
-KPX W Oslash -58
-KPX W Otilde -54
-KPX W S -35
-KPX W T 5
-KPX W a -75
-KPX W ae -76
-KPX W colon -82
-KPX W comma -105
-KPX W e -66
-KPX W g -82
-KPX W guillemotleft -93
-KPX W guilsinglleft -101
-KPX W hyphen -44
-KPX W i -26
-KPX W o -70
-KPX W oslash -69
-KPX W period -90
-KPX W r -55
-KPX W semicolon -97
-KPX W u -52
-KPX W y -47
-KPX X C -59
-KPX X O -57
-KPX X Odieresis -57
-KPX X Q -56
-KPX X a -10
-KPX X e -29
-KPX X hyphen -53
-KPX X o -35
-KPX X u -43
-KPX X y -95
-KPX Y A -72
-KPX Y AE -60
-KPX Y Aacute -72
-KPX Y Acircumflex -72
-KPX Y Adieresis -72
-KPX Y Agrave -72
-KPX Y Aring -72
-KPX Y Atilde -72
-KPX Y C -70
-KPX Y G -70
-KPX Y O -68
-KPX Y Oacute -68
-KPX Y Ocircumflex -68
-KPX Y Odieresis -68
-KPX Y Ograve -68
-KPX Y Oslash -74
-KPX Y Otilde -68
-KPX Y S -37
-KPX Y T 6
-KPX Y a -87
-KPX Y ae -84
-KPX Y colon -101
-KPX Y comma -109
-KPX Y e -92
-KPX Y g -102
-KPX Y guillemotleft -127
-KPX Y guilsinglleft -135
-KPX Y hyphen -83
-KPX Y i -27
-KPX Y o -95
-KPX Y oslash -70
-KPX Y p -75
-KPX Y period -99
-KPX Y semicolon -108
-KPX Y u -79
-KPX Y v -69
-KPX Z v -59
-KPX Z y -60
-KPX a j -20
-KPX a quoteright -33
-KPX a v -36
-KPX a w -36
-KPX a y -39
-KPX aacute v -36
-KPX aacute w -36
-KPX aacute y -39
-KPX adieresis v -36
-KPX adieresis w -36
-KPX adieresis y -39
-KPX ae v -10
-KPX ae w -10
-KPX ae y -13
-KPX agrave v -36
-KPX agrave w -36
-KPX agrave y -39
-KPX aring v -36
-KPX aring w -36
-KPX aring y -39
-KPX b v -28
-KPX b w -28
-KPX b y -31
-KPX c h 10
-KPX c k 3
-KPX comma one -49
-KPX comma quotedblright -25
-KPX comma quoteright -22
-KPX e quoteright -6
-KPX e t -3
-KPX e v -12
-KPX e w -12
-KPX e x -8
-KPX e y -15
-KPX eacute v -12
-KPX eacute w -12
-KPX eacute y -15
-KPX ecircumflex v -12
-KPX ecircumflex w -12
-KPX ecircumflex y -15
-KPX eight four 2
-KPX eight one -42
-KPX eight seven -27
-KPX f a -11
-KPX f aacute -11
-KPX f adieresis -11
-KPX f ae -10
-KPX f aring -11
-KPX f e -15
-KPX f eacute -15
-KPX f f 5
-KPX f i 14
-KPX f j 28
-KPX f l 24
-KPX f o -18
-KPX f oacute -18
-KPX f odieresis -18
-KPX f oe -15
-KPX f oslash -8
-KPX f quoteright -4
-KPX f s 0
-KPX f t 12
-KPX five four -2
-KPX five one -44
-KPX five seven -32
-KPX four four 6
-KPX four one -40
-KPX four seven -21
-KPX g a -13
-KPX g adieresis -13
-KPX g ae -14
-KPX g aring -13
-KPX g e -19
-KPX g eacute -19
-KPX g l -5
-KPX g oacute -23
-KPX g odieresis -23
-KPX g r 14
-KPX guillemotright A -86
-KPX guillemotright AE -79
-KPX guillemotright Aacute -86
-KPX guillemotright Adieresis -86
-KPX guillemotright Aring -86
-KPX guillemotright T -126
-KPX guillemotright V -115
-KPX guillemotright W -81
-KPX guillemotright Y -139
-KPX guilsinglright A -94
-KPX guilsinglright AE -87
-KPX guilsinglright Aacute -94
-KPX guilsinglright Adieresis -94
-KPX guilsinglright Aring -94
-KPX guilsinglright T -134
-KPX guilsinglright V -123
-KPX guilsinglright W -89
-KPX guilsinglright Y -147
-KPX h quoteright -33
-KPX h y -37
-KPX hyphen A -41
-KPX hyphen AE -35
-KPX hyphen Aacute -41
-KPX hyphen Adieresis -41
-KPX hyphen Aring -41
-KPX hyphen T -79
-KPX hyphen V -67
-KPX hyphen W -34
-KPX hyphen Y -97
-KPX i T -30
-KPX i j -15
-KPX k a 4
-KPX k aacute 4
-KPX k adieresis 4
-KPX k ae 7
-KPX k aring 4
-KPX k comma -21
-KPX k e -12
-KPX k eacute -12
-KPX k g -12
-KPX k hyphen -67
-KPX k o -19
-KPX k oacute -19
-KPX k odieresis -19
-KPX k period -10
-KPX k s 12
-KPX k u 0
-KPX k udieresis 0
-KPX l v -22
-KPX l y -25
-KPX m p -20
-KPX m v -39
-KPX m w -39
-KPX m y -42
-KPX n T -58
-KPX n p -18
-KPX n quoteright -30
-KPX n v -34
-KPX n w -34
-KPX n y -37
-KPX nine four -25
-KPX nine one -42
-KPX nine seven -23
-KPX o T -99
-KPX o quoteright -18
-KPX o t -13
-KPX o v -27
-KPX o w -27
-KPX o x -31
-KPX o y -30
-KPX oacute v -27
-KPX oacute w -27
-KPX oacute y -30
-KPX ocircumflex t -13
-KPX odieresis t -13
-KPX odieresis v -27
-KPX odieresis w -27
-KPX odieresis x -31
-KPX odieresis y -30
-KPX ograve v -27
-KPX ograve w -27
-KPX ograve y -30
-KPX one comma -63
-KPX one eight -60
-KPX one five -44
-KPX one four -79
-KPX one nine -50
-KPX one one -67
-KPX one period -54
-KPX one seven -48
-KPX one six -70
-KPX one three -42
-KPX one two -27
-KPX one zero -61
-KPX p t -19
-KPX p y -40
-KPX period one -61
-KPX period quotedblright -46
-KPX period quoteright -43
-KPX q c -10
-KPX q u -10
-KPX quotedblbase A -17
-KPX quotedblbase AE -4
-KPX quotedblbase T -88
-KPX quotedblbase V -112
-KPX quotedblbase W -67
-KPX quotedblbase Y -108
-KPX quotedblleft A -131
-KPX quotedblleft AE -135
-KPX quotedblleft Aacute -131
-KPX quotedblleft Adieresis -131
-KPX quotedblleft Aring -131
-KPX quotedblleft T -14
-KPX quotedblleft V -9
-KPX quotedblleft W -8
-KPX quotedblleft Y -9
-KPX quotedblright A -130
-KPX quotedblright AE -134
-KPX quotedblright Aacute -130
-KPX quotedblright Adieresis -130
-KPX quotedblright Aring -130
-KPX quotedblright T -13
-KPX quotedblright V -8
-KPX quotedblright W -7
-KPX quotedblright Y -9
-KPX quoteleft A -128
-KPX quoteleft AE -132
-KPX quoteleft Aacute -128
-KPX quoteleft Adieresis -128
-KPX quoteleft Aring -128
-KPX quoteleft T -11
-KPX quoteleft V -6
-KPX quoteleft W -5
-KPX quoteleft Y -6
-KPX quoteright A -127
-KPX quoteright AE -131
-KPX quoteright Aacute -127
-KPX quoteright Adieresis -127
-KPX quoteright Aring -127
-KPX quoteright comma -78
-KPX quoteright d -61
-KPX quoteright o -43
-KPX quoteright period -63
-KPX quoteright r -31
-KPX quoteright s -25
-KPX quoteright t -32
-KPX quoteright v -21
-KPX quoteright w -20
-KPX quoteright y -23
-KPX r a -16
-KPX r aacute -16
-KPX r acircumflex -16
-KPX r adieresis -16
-KPX r ae -15
-KPX r agrave -16
-KPX r aring -16
-KPX r c -10
-KPX r ccedilla -8
-KPX r colon -18
-KPX r comma -71
-KPX r d -14
-KPX r e -5
-KPX r eacute -5
-KPX r ecircumflex -5
-KPX r egrave -5
-KPX r f 1
-KPX r g -12
-KPX r h -22
-KPX r hyphen -30
-KPX r i 9
-KPX r j 23
-KPX r k -30
-KPX r l -30
-KPX r m 11
-KPX r n 17
-KPX r o -9
-KPX r oacute -9
-KPX r ocircumflex -9
-KPX r odieresis -9
-KPX r oe -8
-KPX r ograve -9
-KPX r oslash -12
-KPX r p 15
-KPX r period -62
-KPX r q -17
-KPX r quoteright 9
-KPX r r 9
-KPX r s -1
-KPX r semicolon -32
-KPX r t 8
-KPX r u 11
-KPX r v 18
-KPX r w 18
-KPX r x 11
-KPX r y 15
-KPX r z -12
-KPX s quoteright -16
-KPX s t -15
-KPX seven colon -74
-KPX seven comma -135
-KPX seven eight -29
-KPX seven five -19
-KPX seven four -86
-KPX seven one -23
-KPX seven period -121
-KPX seven seven -1
-KPX seven six -66
-KPX seven three -23
-KPX seven two -16
-KPX six four 4
-KPX six one -75
-KPX six seven -42
-KPX t S 8
-KPX t a 3
-KPX t aacute 3
-KPX t adieresis 3
-KPX t ae 5
-KPX t aring 3
-KPX t colon -10
-KPX t e -9
-KPX t eacute -9
-KPX t h 13
-KPX t o -13
-KPX t oacute -13
-KPX t odieresis -13
-KPX t quoteright -3
-KPX t semicolon -24
-KPX three four 1
-KPX three one -52
-KPX three seven -33
-KPX two four -39
-KPX two one -42
-KPX two seven -23
-KPX u quoteright -22
-KPX v a -32
-KPX v aacute -32
-KPX v acircumflex -32
-KPX v adieresis -32
-KPX v ae -36
-KPX v agrave -32
-KPX v aring -32
-KPX v atilde -32
-KPX v c -52
-KPX v colon -20
-KPX v comma -111
-KPX v e -42
-KPX v eacute -42
-KPX v ecircumflex -42
-KPX v egrave -42
-KPX v g -41
-KPX v hyphen -35
-KPX v l -33
-KPX v o -40
-KPX v oacute -40
-KPX v odieresis -40
-KPX v ograve -40
-KPX v oslash -45
-KPX v period -97
-KPX v s -17
-KPX v semicolon -35
-KPX w a -32
-KPX w aacute -32
-KPX w acircumflex -32
-KPX w adieresis -32
-KPX w ae -36
-KPX w agrave -32
-KPX w aring -32
-KPX w atilde -32
-KPX w c -49
-KPX w colon -20
-KPX w comma -103
-KPX w e -42
-KPX w eacute -42
-KPX w ecircumflex -42
-KPX w egrave -42
-KPX w g -41
-KPX w hyphen -31
-KPX w l -33
-KPX w o -40
-KPX w oacute -40
-KPX w odieresis -40
-KPX w ograve -40
-KPX w oslash -45
-KPX w period -89
-KPX w s -17
-KPX w semicolon -35
-KPX x a -5
-KPX x c -27
-KPX x e -24
-KPX x eacute -24
-KPX x o -30
-KPX x q -28
-KPX y a -25
-KPX y aacute -25
-KPX y acircumflex -25
-KPX y adieresis -25
-KPX y ae -29
-KPX y agrave -25
-KPX y aring -25
-KPX y atilde -25
-KPX y c -45
-KPX y colon -13
-KPX y comma -104
-KPX y e -35
-KPX y eacute -35
-KPX y ecircumflex -35
-KPX y egrave -35
-KPX y g -34
-KPX y hyphen -28
-KPX y l -26
-KPX y o -33
-KPX y oacute -33
-KPX y odieresis -33
-KPX y ograve -33
-KPX y oslash -38
-KPX y period -90
-KPX y s -10
-KPX y semicolon -28
-KPX zero four -3
-KPX zero one -40
-KPX zero seven -18
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/p052003l.pfb b/Master/xemtex/gsfonts/p052003l.pfb
deleted file mode 100644
index 7ce50ae34e8..00000000000
--- a/Master/xemtex/gsfonts/p052003l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052003l.pfm b/Master/xemtex/gsfonts/p052003l.pfm
deleted file mode 100644
index 862ae96f8df..00000000000
--- a/Master/xemtex/gsfonts/p052003l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052004l.afm b/Master/xemtex/gsfonts/p052004l.afm
deleted file mode 100644
index 3ca1361ff5b..00000000000
--- a/Master/xemtex/gsfonts/p052004l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWPalladioL-Bold
-FullName URW Palladio L Bold
-FamilyName URW Palladio L
-Weight Bold
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -152 -301 1000 935
-CapHeight 681
-XHeight 471
-Descender -258
-Ascender 720
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 278 ; N exclam ; B 63 -12 219 688 ;
-C 34 ; WX 402 ; N quotedbl ; B 22 376 380 695 ;
-C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ;
-C 36 ; WX 500 ; N dollar ; B 28 -114 472 721 ;
-C 37 ; WX 889 ; N percent ; B 61 -9 828 714 ;
-C 38 ; WX 833 ; N ampersand ; B 52 -17 813 684 ;
-C 39 ; WX 278 ; N quoteright ; B 29 405 249 695 ;
-C 40 ; WX 333 ; N parenleft ; B 65 -104 305 723 ;
-C 41 ; WX 333 ; N parenright ; B 28 -104 268 723 ;
-C 42 ; WX 444 ; N asterisk ; B 44 332 399 695 ;
-C 43 ; WX 606 ; N plus ; B 51 0 555 505 ;
-C 44 ; WX 250 ; N comma ; B -6 -166 227 141 ;
-C 45 ; WX 333 ; N hyphen ; B 16 195 317 305 ;
-C 46 ; WX 250 ; N period ; B 47 -12 203 144 ;
-C 47 ; WX 296 ; N slash ; B -9 -17 305 720 ;
-C 48 ; WX 500 ; N zero ; B 33 -17 468 660 ;
-C 49 ; WX 500 ; N one ; B 35 -3 455 670 ;
-C 50 ; WX 500 ; N two ; B 25 -3 472 660 ;
-C 51 ; WX 500 ; N three ; B 22 -17 458 660 ;
-C 52 ; WX 500 ; N four ; B 12 -3 473 672 ;
-C 53 ; WX 500 ; N five ; B 42 -17 472 656 ;
-C 54 ; WX 500 ; N six ; B 37 -17 469 660 ;
-C 55 ; WX 500 ; N seven ; B 46 -3 493 656 ;
-C 56 ; WX 500 ; N eight ; B 34 -17 467 660 ;
-C 57 ; WX 500 ; N nine ; B 31 -17 463 660 ;
-C 58 ; WX 250 ; N colon ; B 47 -12 203 454 ;
-C 59 ; WX 250 ; N semicolon ; B -6 -166 227 454 ;
-C 60 ; WX 606 ; N less ; B 49 -19 558 523 ;
-C 61 ; WX 606 ; N equal ; B 51 114 555 396 ;
-C 62 ; WX 606 ; N greater ; B 49 -19 558 523 ;
-C 63 ; WX 444 ; N question ; B 43 -12 411 687 ;
-C 64 ; WX 747 ; N at ; B 42 -12 704 681 ;
-C 65 ; WX 778 ; N A ; B 24 -3 757 686 ;
-C 66 ; WX 667 ; N B ; B 39 -3 611 681 ;
-C 67 ; WX 722 ; N C ; B 44 -17 695 695 ;
-C 68 ; WX 833 ; N D ; B 35 -3 786 681 ;
-C 69 ; WX 611 ; N E ; B 39 -4 577 682 ;
-C 70 ; WX 556 ; N F ; B 28 -3 539 682 ;
-C 71 ; WX 833 ; N G ; B 47 -17 776 695 ;
-C 72 ; WX 833 ; N H ; B 36 -3 796 681 ;
-C 73 ; WX 389 ; N I ; B 39 -3 350 681 ;
-C 74 ; WX 389 ; N J ; B -11 -213 350 681 ;
-C 75 ; WX 778 ; N K ; B 39 -3 763 681 ;
-C 76 ; WX 611 ; N L ; B 39 -4 577 681 ;
-C 77 ; WX 1000 ; N M ; B 32 -10 968 681 ;
-C 78 ; WX 833 ; N N ; B 35 -16 798 681 ;
-C 79 ; WX 833 ; N O ; B 47 -17 787 695 ;
-C 80 ; WX 611 ; N P ; B 39 -3 594 681 ;
-C 81 ; WX 833 ; N Q ; B 47 -184 787 695 ;
-C 82 ; WX 722 ; N R ; B 39 -3 708 681 ;
-C 83 ; WX 611 ; N S ; B 57 -17 559 695 ;
-C 84 ; WX 667 ; N T ; B 17 -3 650 681 ;
-C 85 ; WX 778 ; N U ; B 26 -17 760 681 ;
-C 86 ; WX 778 ; N V ; B 20 -3 763 681 ;
-C 87 ; WX 1000 ; N W ; B 17 -3 988 686 ;
-C 88 ; WX 667 ; N X ; B 17 -3 650 695 ;
-C 89 ; WX 667 ; N Y ; B 15 -3 660 695 ;
-C 90 ; WX 667 ; N Z ; B 24 -3 627 681 ;
-C 91 ; WX 333 ; N bracketleft ; B 73 -104 291 720 ;
-C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ;
-C 93 ; WX 333 ; N bracketright ; B 42 -104 260 720 ;
-C 94 ; WX 606 ; N asciicircum ; B 52 275 554 678 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 278 ; N quoteleft ; B 29 405 249 695 ;
-C 97 ; WX 500 ; N a ; B 40 -17 478 471 ;
-C 98 ; WX 611 ; N b ; B 10 -17 556 720 ;
-C 99 ; WX 444 ; N c ; B 37 -17 414 471 ;
-C 100 ; WX 611 ; N d ; B 42 -17 577 720 ;
-C 101 ; WX 500 ; N e ; B 42 -17 461 471 ;
-C 102 ; WX 389 ; N f ; B 34 -3 381 720 ;
-C 103 ; WX 556 ; N g ; B 26 -266 535 471 ;
-C 104 ; WX 611 ; N h ; B 24 -3 587 720 ;
-C 105 ; WX 333 ; N i ; B 34 -3 298 706 ;
-C 106 ; WX 333 ; N j ; B 3 -266 241 706 ;
-C 107 ; WX 611 ; N k ; B 21 -3 597 720 ;
-C 108 ; WX 333 ; N l ; B 24 -3 296 720 ;
-C 109 ; WX 889 ; N m ; B 24 -3 864 471 ;
-C 110 ; WX 611 ; N n ; B 24 -3 587 471 ;
-C 111 ; WX 556 ; N o ; B 40 -17 517 471 ;
-C 112 ; WX 611 ; N p ; B 29 -258 567 471 ;
-C 113 ; WX 611 ; N q ; B 52 -258 589 471 ;
-C 114 ; WX 389 ; N r ; B 30 -3 389 471 ;
-C 115 ; WX 444 ; N s ; B 39 -17 405 471 ;
-C 116 ; WX 333 ; N t ; B 22 -17 324 632 ;
-C 117 ; WX 611 ; N u ; B 25 -17 583 471 ;
-C 118 ; WX 556 ; N v ; B 11 -3 545 459 ;
-C 119 ; WX 833 ; N w ; B 13 -3 820 471 ;
-C 120 ; WX 500 ; N x ; B 20 -3 483 471 ;
-C 121 ; WX 556 ; N y ; B 10 -266 546 459 ;
-C 122 ; WX 500 ; N z ; B 16 -3 464 459 ;
-C 123 ; WX 310 ; N braceleft ; B 5 -117 288 725 ;
-C 124 ; WX 606 ; N bar ; B 260 0 346 720 ;
-C 125 ; WX 310 ; N braceright ; B 22 -117 305 725 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 174 555 329 ;
-C 161 ; WX 278 ; N exclamdown ; B 59 -227 215 471 ;
-C 162 ; WX 500 ; N cent ; B 73 -106 450 554 ;
-C 163 ; WX 500 ; N sterling ; B -2 -19 501 676 ;
-C 164 ; WX 167 ; N fraction ; B -152 0 320 660 ;
-C 165 ; WX 500 ; N yen ; B 17 -3 483 695 ;
-C 166 ; WX 500 ; N florin ; B 11 -242 490 703 ;
-C 167 ; WX 500 ; N section ; B 30 -217 471 695 ;
-C 168 ; WX 500 ; N currency ; B 32 96 468 533 ;
-C 169 ; WX 227 ; N quotesingle ; B 45 376 181 695 ;
-C 170 ; WX 500 ; N quotedblleft ; B 34 405 466 695 ;
-C 171 ; WX 500 ; N guillemotleft ; B 36 44 463 438 ;
-C 172 ; WX 389 ; N guilsinglleft ; B 82 44 307 438 ;
-C 173 ; WX 389 ; N guilsinglright ; B 82 44 307 438 ;
-C 174 ; WX 611 ; N fi ; B 10 -3 595 720 ;
-C 175 ; WX 611 ; N fl ; B 17 -3 593 720 ;
-C 177 ; WX 500 ; N endash ; B 0 208 500 291 ;
-C 178 ; WX 500 ; N dagger ; B 29 -6 472 682 ;
-C 179 ; WX 500 ; N daggerdbl ; B 32 -245 468 682 ;
-C 180 ; WX 250 ; N periodcentered ; B 47 179 203 335 ;
-C 182 ; WX 641 ; N paragraph ; B 19 -161 599 683 ;
-C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ;
-C 184 ; WX 333 ; N quotesinglbase ; B 56 -160 276 130 ;
-C 185 ; WX 500 ; N quotedblbase ; B 34 -160 466 130 ;
-C 186 ; WX 500 ; N quotedblright ; B 34 405 466 695 ;
-C 187 ; WX 500 ; N guillemotright ; B 37 44 464 438 ;
-C 188 ; WX 1000 ; N ellipsis ; B 89 -12 911 144 ;
-C 189 ; WX 1000 ; N perthousand ; B 33 -9 982 724 ;
-C 191 ; WX 444 ; N questiondown ; B 33 -231 401 471 ;
-C 193 ; WX 333 ; N grave ; B 18 506 256 691 ;
-C 194 ; WX 333 ; N acute ; B 78 506 316 691 ;
-C 195 ; WX 333 ; N circumflex ; B -2 506 335 681 ;
-C 196 ; WX 333 ; N tilde ; B -16 535 349 661 ;
-C 197 ; WX 333 ; N macron ; B 1 538 332 609 ;
-C 198 ; WX 333 ; N breve ; B 15 506 318 669 ;
-C 199 ; WX 333 ; N dotaccent ; B 100 537 234 671 ;
-C 200 ; WX 333 ; N dieresis ; B -8 537 341 671 ;
-C 202 ; WX 333 ; N ring ; B 67 500 267 700 ;
-C 203 ; WX 333 ; N cedilla ; B 73 -225 300 -7 ;
-C 205 ; WX 333 ; N hungarumlaut ; B -56 506 390 691 ;
-C 206 ; WX 333 ; N ogonek ; B 60 -229 274 0 ;
-C 207 ; WX 333 ; N caron ; B -2 510 335 685 ;
-C 208 ; WX 1000 ; N emdash ; B 0 208 1000 291 ;
-C 225 ; WX 1000 ; N AE ; B 12 -4 954 682 ;
-C 227 ; WX 438 ; N ordfeminine ; B 77 367 361 660 ;
-C 232 ; WX 611 ; N Lslash ; B 16 -4 577 681 ;
-C 233 ; WX 833 ; N Oslash ; B 32 -20 808 698 ;
-C 234 ; WX 1000 ; N OE ; B 43 -17 985 695 ;
-C 235 ; WX 488 ; N ordmasculine ; B 89 367 399 660 ;
-C 241 ; WX 778 ; N ae ; B 46 -17 731 471 ;
-C 245 ; WX 333 ; N dotlessi ; B 34 -3 298 471 ;
-C 248 ; WX 333 ; N lslash ; B -4 -3 334 720 ;
-C 249 ; WX 556 ; N oslash ; B 23 -18 534 471 ;
-C 250 ; WX 833 ; N oe ; B 48 -17 799 471 ;
-C 251 ; WX 611 ; N germandbls ; B 30 -17 565 720 ;
-C -1 ; WX 778 ; N Udieresis ; B 26 -17 760 895 ;
-C -1 ; WX 778 ; N Uacute ; B 26 -17 760 915 ;
-C -1 ; WX 611 ; N Scedilla ; B 57 -225 559 695 ;
-C -1 ; WX 667 ; N Tcaron ; B 17 -3 650 909 ;
-C -1 ; WX 611 ; N Scaron ; B 57 -17 559 909 ;
-C -1 ; WX 722 ; N Rcaron ; B 39 -3 708 909 ;
-C -1 ; WX 722 ; N Racute ; B 39 -3 708 915 ;
-C -1 ; WX 611 ; N Sacute ; B 57 -17 559 915 ;
-C -1 ; WX 833 ; N Otilde ; B 47 -17 787 885 ;
-C -1 ; WX 611 ; N ucircumflex ; B 25 -17 583 681 ;
-C -1 ; WX 833 ; N Ohungarumlaut ; B 47 -17 787 915 ;
-C -1 ; WX 778 ; N Uhungarumlaut ; B 26 -17 760 915 ;
-C -1 ; WX 667 ; N Yacute ; B 15 -3 660 915 ;
-C -1 ; WX 833 ; N Eth ; B 10 -3 786 681 ;
-C -1 ; WX 833 ; N Dcroat ; B 10 -3 786 681 ;
-C -1 ; WX 667 ; N Zacute ; B 24 -3 627 915 ;
-C -1 ; WX 778 ; N Uring ; B 26 -17 760 924 ;
-C -1 ; WX 556 ; N gbreve ; B 26 -266 535 669 ;
-C -1 ; WX 500 ; N eogonek ; B 42 -229 480 471 ;
-C -1 ; WX 500 ; N edotaccent ; B 42 -17 461 671 ;
-C -1 ; WX 500 ; N ecaron ; B 42 -17 461 685 ;
-C -1 ; WX 778 ; N Ugrave ; B 26 -17 760 915 ;
-C -1 ; WX 611 ; N Thorn ; B 39 -3 574 681 ;
-C -1 ; WX 500 ; N eacute ; B 42 -17 461 691 ;
-C -1 ; WX 500 ; N edieresis ; B 42 -17 461 671 ;
-C -1 ; WX 711 ; N dcaron ; B 42 -17 731 723 ;
-C -1 ; WX 444 ; N ccedilla ; B 37 -225 414 471 ;
-C -1 ; WX 444 ; N ccaron ; B 37 -17 431 685 ;
-C -1 ; WX 444 ; N cacute ; B 37 -17 444 691 ;
-C -1 ; WX 500 ; N aogonek ; B 40 -229 544 471 ;
-C -1 ; WX 500 ; N aring ; B 40 -17 478 700 ;
-C -1 ; WX 500 ; N atilde ; B 40 -17 478 661 ;
-C -1 ; WX 500 ; N abreve ; B 40 -17 478 669 ;
-C -1 ; WX 500 ; N egrave ; B 42 -17 461 691 ;
-C -1 ; WX 500 ; N agrave ; B 40 -17 478 691 ;
-C -1 ; WX 500 ; N aacute ; B 40 -17 478 691 ;
-C -1 ; WX 500 ; N adieresis ; B 40 -17 478 671 ;
-C -1 ; WX 778 ; N Uogonek ; B 26 -229 760 681 ;
-C -1 ; WX 611 ; N ugrave ; B 25 -17 583 691 ;
-C -1 ; WX 611 ; N uacute ; B 25 -17 583 691 ;
-C -1 ; WX 611 ; N udieresis ; B 25 -17 583 671 ;
-C -1 ; WX 402 ; N tcaron ; B 22 -17 422 695 ;
-C -1 ; WX 444 ; N scommaaccent ; B 39 -301 405 471 ;
-C -1 ; WX 667 ; N Zcaron ; B 24 -3 627 909 ;
-C -1 ; WX 500 ; N ecircumflex ; B 42 -17 461 681 ;
-C -1 ; WX 778 ; N Ucircumflex ; B 26 -17 760 905 ;
-C -1 ; WX 500 ; N acircumflex ; B 40 -17 478 681 ;
-C -1 ; WX 667 ; N Zdotaccent ; B 24 -3 627 895 ;
-C -1 ; WX 444 ; N scaron ; B 39 -17 405 685 ;
-C -1 ; WX 778 ; N Amacron ; B 24 -3 757 833 ;
-C -1 ; WX 444 ; N sacute ; B 39 -17 412 691 ;
-C -1 ; WX 667 ; N Tcommaaccent ; B 17 -301 650 681 ;
-C -1 ; WX 667 ; N Ydieresis ; B 15 -3 660 895 ;
-C -1 ; WX 611 ; N thorn ; B 17 -258 563 720 ;
-C -1 ; WX 611 ; N Emacron ; B 39 -4 577 833 ;
-C -1 ; WX 833 ; N Ograve ; B 47 -17 787 915 ;
-C -1 ; WX 833 ; N Oacute ; B 47 -17 787 915 ;
-C -1 ; WX 833 ; N Odieresis ; B 47 -17 787 895 ;
-C -1 ; WX 833 ; N Ntilde ; B 35 -16 798 885 ;
-C -1 ; WX 833 ; N Ncaron ; B 35 -16 798 909 ;
-C -1 ; WX 833 ; N Nacute ; B 35 -16 798 915 ;
-C -1 ; WX 611 ; N Lcaron ; B 39 -4 605 695 ;
-C -1 ; WX 611 ; N Lacute ; B 39 -4 577 915 ;
-C -1 ; WX 389 ; N Idotaccent ; B 39 -3 350 895 ;
-C -1 ; WX 389 ; N racute ; B 30 -3 409 691 ;
-C -1 ; WX 389 ; N Icircumflex ; B 26 -3 363 905 ;
-C -1 ; WX 556 ; N ohungarumlaut ; B 40 -17 556 691 ;
-C -1 ; WX 556 ; N otilde ; B 40 -17 517 661 ;
-C -1 ; WX 500 ; N Euro ; B 1 -17 470 695 ;
-C -1 ; WX 556 ; N ocircumflex ; B 40 -17 517 681 ;
-C -1 ; WX 300 ; N onesuperior ; B 18 259 277 663 ;
-C -1 ; WX 300 ; N twosuperior ; B 12 259 287 657 ;
-C -1 ; WX 300 ; N threesuperior ; B 9 251 278 657 ;
-C -1 ; WX 389 ; N Igrave ; B 39 -3 350 915 ;
-C -1 ; WX 389 ; N Iacute ; B 39 -3 350 915 ;
-C -1 ; WX 389 ; N Imacron ; B 29 -3 360 833 ;
-C -1 ; WX 389 ; N Iogonek ; B 39 -229 409 681 ;
-C -1 ; WX 389 ; N Idieresis ; B 20 -3 369 895 ;
-C -1 ; WX 833 ; N Gbreve ; B 47 -17 776 893 ;
-C -1 ; WX 778 ; N Umacron ; B 26 -17 760 833 ;
-C -1 ; WX 778 ; N Kcommaaccent ; B 39 -301 763 681 ;
-C -1 ; WX 556 ; N ograve ; B 40 -17 517 691 ;
-C -1 ; WX 611 ; N Scommaaccent ; B 57 -301 559 695 ;
-C -1 ; WX 611 ; N Eogonek ; B 39 -229 613 682 ;
-C -1 ; WX 556 ; N oacute ; B 40 -17 517 691 ;
-C -1 ; WX 611 ; N Edotaccent ; B 39 -4 577 895 ;
-C -1 ; WX 333 ; N iogonek ; B 34 -229 363 706 ;
-C -1 ; WX 556 ; N gcommaaccent ; B 26 -266 535 755 ;
-C -1 ; WX 556 ; N odieresis ; B 40 -17 517 671 ;
-C -1 ; WX 611 ; N ntilde ; B 24 -3 587 661 ;
-C -1 ; WX 611 ; N ncaron ; B 24 -3 587 685 ;
-C -1 ; WX 611 ; N Ecaron ; B 39 -4 577 909 ;
-C -1 ; WX 611 ; N Ecircumflex ; B 39 -4 577 905 ;
-C -1 ; WX 444 ; N scedilla ; B 39 -225 405 471 ;
-C -1 ; WX 389 ; N rcaron ; B 26 -3 389 685 ;
-C -1 ; WX 611 ; N Egrave ; B 39 -4 577 915 ;
-C -1 ; WX 611 ; N Eacute ; B 39 -4 577 915 ;
-C -1 ; WX 833 ; N Gcommaaccent ; B 47 -301 776 695 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 39 -301 708 681 ;
-C -1 ; WX 611 ; N Edieresis ; B 39 -4 577 895 ;
-C -1 ; WX 611 ; N nacute ; B 24 -3 587 691 ;
-C -1 ; WX 611 ; N uogonek ; B 25 -229 641 471 ;
-C -1 ; WX 611 ; N umacron ; B 25 -17 583 609 ;
-C -1 ; WX 833 ; N Dcaron ; B 35 -3 786 909 ;
-C -1 ; WX 433 ; N lcaron ; B 24 -3 453 723 ;
-C -1 ; WX 722 ; N Ccaron ; B 44 -17 695 909 ;
-C -1 ; WX 722 ; N Cacute ; B 44 -17 695 915 ;
-C -1 ; WX 722 ; N Ccedilla ; B 44 -225 695 695 ;
-C -1 ; WX 400 ; N degree ; B 50 360 350 660 ;
-C -1 ; WX 778 ; N Aogonek ; B 24 -229 818 686 ;
-C -1 ; WX 606 ; N minus ; B 51 212 555 298 ;
-C -1 ; WX 606 ; N multiply ; B 72 21 534 483 ;
-C -1 ; WX 606 ; N divide ; B 51 0 555 510 ;
-C -1 ; WX 778 ; N Aring ; B 24 -3 757 934 ;
-C -1 ; WX 998 ; N trademark ; B 38 274 961 678 ;
-C -1 ; WX 389 ; N rcommaaccent ; B 30 -301 389 471 ;
-C -1 ; WX 333 ; N lacute ; B 24 -3 316 915 ;
-C -1 ; WX 556 ; N omacron ; B 40 -17 517 609 ;
-C -1 ; WX 778 ; N Atilde ; B 24 -3 757 885 ;
-C -1 ; WX 333 ; N icircumflex ; B -2 -3 335 681 ;
-C -1 ; WX 333 ; N igrave ; B 18 -3 298 691 ;
-C -1 ; WX 611 ; N ncommaaccent ; B 24 -301 587 471 ;
-C -1 ; WX 333 ; N lcommaaccent ; B 24 -301 296 720 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 555 568 ;
-C -1 ; WX 750 ; N onehalf ; B 9 -2 745 665 ;
-C -1 ; WX 750 ; N onequarter ; B 19 -2 735 665 ;
-C -1 ; WX 750 ; N threequarters ; B 15 -2 735 667 ;
-C -1 ; WX 333 ; N iacute ; B 34 -3 316 691 ;
-C -1 ; WX 778 ; N Abreve ; B 24 -3 757 893 ;
-C -1 ; WX 611 ; N kcommaaccent ; B 21 -301 597 720 ;
-C -1 ; WX 833 ; N Omacron ; B 47 -17 787 833 ;
-C -1 ; WX 333 ; N imacron ; B 1 -3 332 609 ;
-C -1 ; WX 500 ; N emacron ; B 42 -17 461 609 ;
-C -1 ; WX 500 ; N amacron ; B 40 -17 478 609 ;
-C -1 ; WX 333 ; N tcommaaccent ; B 22 -301 324 632 ;
-C -1 ; WX 556 ; N ydieresis ; B 10 -266 546 671 ;
-C -1 ; WX 500 ; N zdotaccent ; B 16 -3 464 671 ;
-C -1 ; WX 500 ; N zcaron ; B 16 -3 464 685 ;
-C -1 ; WX 500 ; N zacute ; B 16 -3 464 691 ;
-C -1 ; WX 556 ; N yacute ; B 10 -266 546 691 ;
-C -1 ; WX 611 ; N uhungarumlaut ; B 25 -17 583 691 ;
-C -1 ; WX 556 ; N eth ; B 40 -17 517 720 ;
-C -1 ; WX 611 ; N uring ; B 25 -17 583 700 ;
-C -1 ; WX 833 ; N Ocircumflex ; B 47 -17 787 905 ;
-C -1 ; WX 333 ; N commaaccent ; B 48 -301 246 -40 ;
-C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ;
-C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ;
-C -1 ; WX 778 ; N Acircumflex ; B 24 -3 757 905 ;
-C -1 ; WX 333 ; N idieresis ; B -8 -3 341 691 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 51 -32 555 556 ;
-C -1 ; WX 549 ; N radical ; B -15 -96 536 935 ;
-C -1 ; WX 778 ; N Agrave ; B 24 -3 757 915 ;
-C -1 ; WX 778 ; N Aacute ; B 24 -3 757 915 ;
-C -1 ; WX 606 ; N lessequal ; B 49 0 558 662 ;
-C -1 ; WX 606 ; N greaterequal ; B 49 0 558 662 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 114 555 396 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 23 -13 466 750 ;
-C -1 ; WX 833 ; N Ncommaaccent ; B 35 -301 798 681 ;
-C -1 ; WX 611 ; N dcroat ; B 42 -17 591 720 ;
-C -1 ; WX 606 ; N brokenbar ; B 260 0 346 720 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B 39 -301 577 681 ;
-C -1 ; WX 778 ; N Adieresis ; B 24 -3 757 895 ;
-C -1 ; WX 611 ; N mu ; B 25 -225 583 471 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -51
-KPX A Ccedilla -51
-KPX A G -54
-KPX A O -45
-KPX A Odieresis -45
-KPX A Q -41
-KPX A T -53
-KPX A U -46
-KPX A Uacute -46
-KPX A Ucircumflex -46
-KPX A Udieresis -46
-KPX A Ugrave -46
-KPX A V -124
-KPX A W -71
-KPX A Y -66
-KPX A a 7
-KPX A b -8
-KPX A c -13
-KPX A ccedilla -15
-KPX A comma 7
-KPX A d -14
-KPX A e -15
-KPX A g 0
-KPX A guillemotleft -49
-KPX A guilsinglleft -72
-KPX A hyphen -12
-KPX A o -16
-KPX A period 12
-KPX A q -18
-KPX A quotedblright -83
-KPX A quoteright -81
-KPX A t -14
-KPX A u -26
-KPX A v -68
-KPX A w -58
-KPX A y -72
-KPX Aacute C -51
-KPX Aacute G -54
-KPX Aacute O -45
-KPX Aacute Q -41
-KPX Aacute T -53
-KPX Aacute U -46
-KPX Aacute V -124
-KPX Aacute W -71
-KPX Aacute Y -66
-KPX Aacute a 7
-KPX Aacute b -8
-KPX Aacute c -13
-KPX Aacute comma 7
-KPX Aacute d -14
-KPX Aacute e -15
-KPX Aacute g 0
-KPX Aacute guillemotleft -49
-KPX Aacute guilsinglleft -72
-KPX Aacute hyphen -12
-KPX Aacute o -16
-KPX Aacute period 12
-KPX Aacute q -18
-KPX Aacute quoteright -81
-KPX Aacute t -14
-KPX Aacute u -26
-KPX Aacute v -68
-KPX Aacute w -58
-KPX Aacute y -72
-KPX Acircumflex C -51
-KPX Acircumflex G -54
-KPX Acircumflex O -45
-KPX Acircumflex Q -41
-KPX Acircumflex T -53
-KPX Acircumflex U -46
-KPX Acircumflex V -124
-KPX Acircumflex W -71
-KPX Acircumflex Y -66
-KPX Acircumflex comma 7
-KPX Acircumflex period 12
-KPX Adieresis C -51
-KPX Adieresis G -54
-KPX Adieresis O -45
-KPX Adieresis Q -41
-KPX Adieresis T -53
-KPX Adieresis U -46
-KPX Adieresis V -124
-KPX Adieresis W -71
-KPX Adieresis Y -66
-KPX Adieresis a 7
-KPX Adieresis b -8
-KPX Adieresis c -13
-KPX Adieresis comma 7
-KPX Adieresis d -14
-KPX Adieresis g 0
-KPX Adieresis guillemotleft -49
-KPX Adieresis guilsinglleft -72
-KPX Adieresis hyphen -12
-KPX Adieresis o -16
-KPX Adieresis period 12
-KPX Adieresis q -18
-KPX Adieresis quotedblright -83
-KPX Adieresis quoteright -81
-KPX Adieresis t -14
-KPX Adieresis u -26
-KPX Adieresis v -68
-KPX Adieresis w -58
-KPX Adieresis y -72
-KPX Agrave C -51
-KPX Agrave G -54
-KPX Agrave O -45
-KPX Agrave Q -41
-KPX Agrave T -53
-KPX Agrave U -46
-KPX Agrave V -124
-KPX Agrave W -71
-KPX Agrave Y -66
-KPX Agrave comma 7
-KPX Agrave period 12
-KPX Aring C -51
-KPX Aring G -54
-KPX Aring O -45
-KPX Aring Q -41
-KPX Aring T -53
-KPX Aring U -46
-KPX Aring V -124
-KPX Aring W -71
-KPX Aring Y -66
-KPX Aring a 7
-KPX Aring b -8
-KPX Aring c -13
-KPX Aring comma 7
-KPX Aring d -14
-KPX Aring e -15
-KPX Aring g 0
-KPX Aring guillemotleft -49
-KPX Aring guilsinglleft -72
-KPX Aring hyphen -12
-KPX Aring o -16
-KPX Aring period 12
-KPX Aring q -18
-KPX Aring quotedblright -83
-KPX Aring quoteright -81
-KPX Aring t -14
-KPX Aring u -26
-KPX Aring v -68
-KPX Aring w -58
-KPX Aring y -72
-KPX Atilde C -51
-KPX Atilde G -54
-KPX Atilde O -45
-KPX Atilde Q -41
-KPX Atilde T -53
-KPX Atilde U -46
-KPX Atilde V -124
-KPX Atilde W -71
-KPX Atilde Y -66
-KPX Atilde comma 7
-KPX Atilde period 12
-KPX B A -36
-KPX B AE -39
-KPX B Aacute -36
-KPX B Acircumflex -36
-KPX B Adieresis -36
-KPX B Aring -36
-KPX B Atilde -36
-KPX B O -7
-KPX B OE -4
-KPX B Oacute -7
-KPX B Ocircumflex -7
-KPX B Odieresis -7
-KPX B Ograve -7
-KPX B Oslash -3
-KPX B V -20
-KPX B W -18
-KPX B Y -9
-KPX C A 11
-KPX C AE 10
-KPX C Aacute 11
-KPX C Adieresis 11
-KPX C Aring 11
-KPX C H 13
-KPX C K 12
-KPX C O -13
-KPX C Oacute -13
-KPX C Odieresis -13
-KPX Ccedilla A 11
-KPX D A -67
-KPX D Aacute -67
-KPX D Acircumflex -67
-KPX D Adieresis -67
-KPX D Agrave -67
-KPX D Aring -67
-KPX D Atilde -67
-KPX D J -25
-KPX D T -3
-KPX D V -41
-KPX D W -34
-KPX D X -35
-KPX D Y -29
-KPX F A -67
-KPX F Aacute -67
-KPX F Acircumflex -67
-KPX F Adieresis -67
-KPX F Agrave -67
-KPX F Aring -67
-KPX F Atilde -67
-KPX F J 18
-KPX F O -9
-KPX F Odieresis -9
-KPX F a -35
-KPX F aacute -35
-KPX F adieresis -5
-KPX F ae -38
-KPX F aring -35
-KPX F comma -46
-KPX F e -18
-KPX F eacute -18
-KPX F hyphen 19
-KPX F i -10
-KPX F j -11
-KPX F o -17
-KPX F oacute -17
-KPX F odieresis -17
-KPX F oe -21
-KPX F oslash -17
-KPX F period -36
-KPX F r -13
-KPX F u -10
-KPX G A -14
-KPX G AE -17
-KPX G Aacute -14
-KPX G Acircumflex -14
-KPX G Adieresis -14
-KPX G Agrave -14
-KPX G Aring -14
-KPX G Atilde -14
-KPX G T -17
-KPX G V -18
-KPX G W -16
-KPX G Y -14
-KPX J A -29
-KPX J AE -24
-KPX J Adieresis -29
-KPX J Aring -29
-KPX K C -48
-KPX K G -51
-KPX K O -42
-KPX K OE -42
-KPX K Oacute -42
-KPX K Odieresis -42
-KPX K S 10
-KPX K T 18
-KPX K a 10
-KPX K adieresis 10
-KPX K ae 6
-KPX K aring 10
-KPX K e -12
-KPX K hyphen -43
-KPX K o -13
-KPX K oacute -13
-KPX K odieresis -13
-KPX K u -23
-KPX K udieresis -23
-KPX K y -72
-KPX L A 13
-KPX L AE 19
-KPX L Aacute 13
-KPX L Adieresis 13
-KPX L Aring 13
-KPX L C -11
-KPX L Ccedilla -11
-KPX L G -14
-KPX L O -9
-KPX L Oacute -9
-KPX L Ocircumflex -9
-KPX L Odieresis -9
-KPX L Ograve -9
-KPX L Otilde -9
-KPX L S -3
-KPX L T -63
-KPX L U -26
-KPX L Udieresis -26
-KPX L V -94
-KPX L W -64
-KPX L Y -77
-KPX L hyphen 19
-KPX L quotedblright -82
-KPX L quoteright -79
-KPX L u -22
-KPX L udieresis -22
-KPX L y -57
-KPX N A -24
-KPX N AE -18
-KPX N Aacute -24
-KPX N Adieresis -24
-KPX N Aring -24
-KPX N C -21
-KPX N Ccedilla -21
-KPX N G -23
-KPX N O -20
-KPX N Oacute -20
-KPX N Odieresis -20
-KPX N a -28
-KPX N aacute -28
-KPX N adieresis -15
-KPX N ae -31
-KPX N aring -28
-KPX N comma -11
-KPX N e -23
-KPX N eacute -23
-KPX N o -22
-KPX N oacute -22
-KPX N odieresis -22
-KPX N oslash -17
-KPX N period -3
-KPX N u -29
-KPX N udieresis -29
-KPX O A -51
-KPX O AE -54
-KPX O Aacute -51
-KPX O Adieresis -51
-KPX O Aring -51
-KPX O T -9
-KPX O V -49
-KPX O W -31
-KPX O X -42
-KPX O Y -37
-KPX Oacute A -51
-KPX Oacute T -9
-KPX Oacute V -49
-KPX Oacute W -31
-KPX Oacute Y -37
-KPX Ocircumflex T -9
-KPX Ocircumflex V -49
-KPX Ocircumflex Y -37
-KPX Odieresis A -51
-KPX Odieresis T -9
-KPX Odieresis V -49
-KPX Odieresis W -31
-KPX Odieresis X -42
-KPX Odieresis Y -37
-KPX Ograve T -9
-KPX Ograve V -49
-KPX Ograve Y -37
-KPX Oslash A -52
-KPX Otilde T -9
-KPX Otilde V -49
-KPX Otilde Y -37
-KPX P A -88
-KPX P AE -85
-KPX P Aacute -88
-KPX P Adieresis -88
-KPX P Aring -88
-KPX P J 0
-KPX P a -28
-KPX P aacute -28
-KPX P adieresis -7
-KPX P ae -29
-KPX P aring -28
-KPX P comma -96
-KPX P e -35
-KPX P eacute -35
-KPX P hyphen -27
-KPX P o -33
-KPX P oacute -33
-KPX P odieresis -21
-KPX P oe -37
-KPX P oslash -33
-KPX P period -86
-KPX R C -35
-KPX R Ccedilla -35
-KPX R G -37
-KPX R O -34
-KPX R OE -31
-KPX R Oacute -34
-KPX R Odieresis -34
-KPX R T -25
-KPX R U -41
-KPX R Udieresis -41
-KPX R V -40
-KPX R W -38
-KPX R Y -30
-KPX R a 11
-KPX R aacute 11
-KPX R adieresis 11
-KPX R ae 6
-KPX R aring 11
-KPX R e -12
-KPX R eacute -12
-KPX R hyphen -22
-KPX R o -12
-KPX R oacute -12
-KPX R odieresis -12
-KPX R oe -16
-KPX R u -22
-KPX R uacute -22
-KPX R udieresis -22
-KPX R y -27
-KPX S A -27
-KPX S AE -30
-KPX S Aacute -27
-KPX S Adieresis -27
-KPX S Aring -27
-KPX S T -9
-KPX S V -9
-KPX S W -8
-KPX S Y -7
-KPX S t -14
-KPX T A -54
-KPX T AE -48
-KPX T Aacute -54
-KPX T Acircumflex -54
-KPX T Adieresis -54
-KPX T Agrave -54
-KPX T Aring -54
-KPX T Atilde -54
-KPX T C -12
-KPX T G -13
-KPX T J 18
-KPX T O -12
-KPX T OE -6
-KPX T Oacute -12
-KPX T Ocircumflex -12
-KPX T Odieresis -12
-KPX T Ograve -12
-KPX T Oslash -12
-KPX T Otilde -12
-KPX T S -1
-KPX T V 28
-KPX T W 29
-KPX T Y 29
-KPX T a -71
-KPX T ae -75
-KPX T c -92
-KPX T colon -67
-KPX T comma -71
-KPX T e -90
-KPX T g -79
-KPX T guillemotleft -101
-KPX T guilsinglleft -124
-KPX T hyphen -60
-KPX T i -11
-KPX T j -12
-KPX T o -89
-KPX T oslash -59
-KPX T period -65
-KPX T r -61
-KPX T s -65
-KPX T semicolon -71
-KPX T u -100
-KPX T v -94
-KPX T w -95
-KPX T y -93
-KPX U A -51
-KPX U AE -54
-KPX U Aacute -51
-KPX U Acircumflex -51
-KPX U Adieresis -51
-KPX U Aring -51
-KPX U Atilde -51
-KPX U comma -24
-KPX U m -20
-KPX U n -20
-KPX U p -23
-KPX U period -13
-KPX U r -23
-KPX Uacute A -51
-KPX Uacute comma -24
-KPX Uacute m -20
-KPX Uacute n -20
-KPX Uacute p -23
-KPX Uacute period -13
-KPX Uacute r -23
-KPX Ucircumflex A -51
-KPX Udieresis A -51
-KPX Udieresis b 29
-KPX Udieresis comma -24
-KPX Udieresis m -20
-KPX Udieresis n -20
-KPX Udieresis p -23
-KPX Udieresis period -13
-KPX Udieresis r -23
-KPX Ugrave A -51
-KPX V A -115
-KPX V AE -119
-KPX V Aacute -115
-KPX V Acircumflex -115
-KPX V Adieresis -115
-KPX V Agrave -115
-KPX V Aring -115
-KPX V Atilde -115
-KPX V C -53
-KPX V G -55
-KPX V O -52
-KPX V Oacute -52
-KPX V Ocircumflex -52
-KPX V Odieresis -52
-KPX V Ograve -52
-KPX V Oslash -51
-KPX V Otilde -52
-KPX V S -26
-KPX V T 30
-KPX V a -87
-KPX V ae -87
-KPX V colon -63
-KPX V comma -101
-KPX V e -84
-KPX V g -78
-KPX V guillemotleft -89
-KPX V guilsinglleft -112
-KPX V hyphen -48
-KPX V i -8
-KPX V o -83
-KPX V oslash -79
-KPX V period -91
-KPX V r -52
-KPX V semicolon -77
-KPX V u -49
-KPX V y -36
-KPX W A -82
-KPX W AE -78
-KPX W Aacute -82
-KPX W Acircumflex -82
-KPX W Adieresis -82
-KPX W Agrave -82
-KPX W Aring -82
-KPX W Atilde -82
-KPX W C -36
-KPX W G -38
-KPX W O -36
-KPX W Oacute -36
-KPX W Ocircumflex -36
-KPX W Odieresis -36
-KPX W Ograve -36
-KPX W Oslash -31
-KPX W Otilde -36
-KPX W S -24
-KPX W T 32
-KPX W a -60
-KPX W ae -64
-KPX W colon -42
-KPX W comma -61
-KPX W e -53
-KPX W g -55
-KPX W guillemotleft -60
-KPX W guilsinglleft -83
-KPX W hyphen -19
-KPX W i -6
-KPX W o -52
-KPX W oslash -49
-KPX W period -51
-KPX W r -35
-KPX W semicolon -55
-KPX W u -33
-KPX W y -21
-KPX X C -38
-KPX X O -36
-KPX X Odieresis -36
-KPX X Q -36
-KPX X a 9
-KPX X e -13
-KPX X hyphen -20
-KPX X o -14
-KPX X u -24
-KPX X y -61
-KPX Y A -41
-KPX Y AE -35
-KPX Y Aacute -41
-KPX Y Acircumflex -41
-KPX Y Adieresis -41
-KPX Y Agrave -41
-KPX Y Aring -41
-KPX Y Atilde -41
-KPX Y C -46
-KPX Y G -47
-KPX Y O -45
-KPX Y Oacute -45
-KPX Y Ocircumflex -45
-KPX Y Odieresis -45
-KPX Y Ograve -45
-KPX Y Oslash -39
-KPX Y Otilde -45
-KPX Y S -24
-KPX Y T 34
-KPX Y a -57
-KPX Y ae -62
-KPX Y colon -54
-KPX Y comma -57
-KPX Y e -69
-KPX Y g -65
-KPX Y guillemotleft -82
-KPX Y guilsinglleft -105
-KPX Y hyphen -45
-KPX Y i -5
-KPX Y o -68
-KPX Y oslash -45
-KPX Y p -51
-KPX Y period -51
-KPX Y semicolon -58
-KPX Y u -49
-KPX Y v -35
-KPX Z v -46
-KPX Z y -49
-KPX a j -23
-KPX a quoteright 0
-KPX a v -18
-KPX a w -19
-KPX a y -22
-KPX aacute v -18
-KPX aacute w -19
-KPX aacute y -22
-KPX adieresis v -18
-KPX adieresis w -19
-KPX adieresis y -22
-KPX ae v -8
-KPX ae w -9
-KPX ae y -12
-KPX agrave v -18
-KPX agrave w -19
-KPX agrave y -22
-KPX aring v -18
-KPX aring w -19
-KPX aring y -22
-KPX b v -18
-KPX b w -19
-KPX b y -22
-KPX c h 9
-KPX c k 7
-KPX comma one -9
-KPX comma quotedblright 14
-KPX comma quoteright 17
-KPX e quoteright 17
-KPX e t 5
-KPX e v -4
-KPX e w -5
-KPX e x -1
-KPX e y -8
-KPX eacute v -4
-KPX eacute w -5
-KPX eacute y -8
-KPX ecircumflex v -4
-KPX ecircumflex w -5
-KPX ecircumflex y -8
-KPX eight four 24
-KPX eight one -4
-KPX eight seven -4
-KPX f a -13
-KPX f aacute -13
-KPX f adieresis -2
-KPX f ae -16
-KPX f aring -13
-KPX f e -14
-KPX f eacute -14
-KPX f f 10
-KPX f i 15
-KPX f j 15
-KPX f l 23
-KPX f o -12
-KPX f oacute -12
-KPX f odieresis -12
-KPX f oe -16
-KPX f oslash -1
-KPX f quoteright 19
-KPX f s 2
-KPX f t 16
-KPX five four 26
-KPX five one 0
-KPX five seven -3
-KPX four four 25
-KPX four one -4
-KPX four seven -12
-KPX g a -4
-KPX g adieresis -4
-KPX g ae -9
-KPX g aring -4
-KPX g e -14
-KPX g eacute -14
-KPX g l 10
-KPX g oacute -12
-KPX g odieresis -12
-KPX g r 13
-KPX guillemotright A -50
-KPX guillemotright AE -63
-KPX guillemotright Aacute -50
-KPX guillemotright Adieresis -50
-KPX guillemotright Aring -50
-KPX guillemotright T -101
-KPX guillemotright V -99
-KPX guillemotright W -54
-KPX guillemotright Y -106
-KPX guilsinglright A -73
-KPX guilsinglright AE -86
-KPX guilsinglright Aacute -73
-KPX guilsinglright Adieresis -73
-KPX guilsinglright Aring -73
-KPX guilsinglright T -124
-KPX guilsinglright V -122
-KPX guilsinglright W -77
-KPX guilsinglright Y -129
-KPX h quoteright -6
-KPX h y -27
-KPX hyphen A -13
-KPX hyphen AE -28
-KPX hyphen Aacute -13
-KPX hyphen Adieresis -13
-KPX hyphen Aring -13
-KPX hyphen T -60
-KPX hyphen V -57
-KPX hyphen W -12
-KPX hyphen Y -70
-KPX i T -15
-KPX i j -30
-KPX k a 7
-KPX k aacute 7
-KPX k adieresis 7
-KPX k ae 3
-KPX k aring 7
-KPX k comma 7
-KPX k e -15
-KPX k eacute -15
-KPX k g 0
-KPX k hyphen -37
-KPX k o -16
-KPX k oacute -16
-KPX k odieresis -16
-KPX k period 11
-KPX k s 13
-KPX k u 4
-KPX k udieresis 4
-KPX l v -20
-KPX l y -19
-KPX m p -23
-KPX m v -24
-KPX m w -25
-KPX m y -26
-KPX n T -58
-KPX n p -22
-KPX n quoteright -6
-KPX n v -24
-KPX n w -25
-KPX n y -27
-KPX nine four 7
-KPX nine one -1
-KPX nine seven 3
-KPX o T -89
-KPX o quoteright 6
-KPX o t -2
-KPX o v -18
-KPX o w -19
-KPX o x -16
-KPX o y -22
-KPX oacute v -18
-KPX oacute w -19
-KPX oacute y -22
-KPX ocircumflex t -2
-KPX odieresis t -2
-KPX odieresis v -18
-KPX odieresis w -19
-KPX odieresis x -16
-KPX odieresis y -22
-KPX ograve v -18
-KPX ograve w -19
-KPX ograve y -22
-KPX one comma -4
-KPX one eight -12
-KPX one five -8
-KPX one four -41
-KPX one nine -11
-KPX one one -13
-KPX one period -1
-KPX one seven -21
-KPX one six -25
-KPX one three 3
-KPX one two 11
-KPX one zero -21
-KPX p t 0
-KPX p y -17
-KPX period one -16
-KPX period quotedblright 0
-KPX period quoteright 1
-KPX q c -18
-KPX q u -13
-KPX quotedblbase A 14
-KPX quotedblbase AE 14
-KPX quotedblbase T -59
-KPX quotedblbase V -94
-KPX quotedblbase W -36
-KPX quotedblbase Y -72
-KPX quotedblleft A -87
-KPX quotedblleft AE -117
-KPX quotedblleft Aacute -87
-KPX quotedblleft Adieresis -87
-KPX quotedblleft Aring -87
-KPX quotedblleft T 20
-KPX quotedblleft V 19
-KPX quotedblleft W 20
-KPX quotedblleft Y 20
-KPX quotedblright A -87
-KPX quotedblright AE -117
-KPX quotedblright Aacute -87
-KPX quotedblright Adieresis -87
-KPX quotedblright Aring -87
-KPX quotedblright T 20
-KPX quotedblright V 19
-KPX quotedblright W 20
-KPX quotedblright Y 20
-KPX quoteleft A -84
-KPX quoteleft AE -114
-KPX quoteleft Aacute -84
-KPX quoteleft Adieresis -84
-KPX quoteleft Aring -84
-KPX quoteleft T 23
-KPX quoteleft V 21
-KPX quoteleft W 23
-KPX quoteleft Y 23
-KPX quoteright A -84
-KPX quoteright AE -114
-KPX quoteright Aacute -84
-KPX quoteright Adieresis -84
-KPX quoteright Aring -84
-KPX quoteright comma -33
-KPX quoteright d -31
-KPX quoteright o -21
-KPX quoteright period -21
-KPX quoteright r -9
-KPX quoteright s -6
-KPX quoteright t -6
-KPX quoteright v 1
-KPX quoteright w 1
-KPX quoteright y 3
-KPX r a -5
-KPX r aacute -5
-KPX r acircumflex -5
-KPX r adieresis -5
-KPX r ae -7
-KPX r agrave -5
-KPX r aring -5
-KPX r c 7
-KPX r ccedilla 7
-KPX r colon 17
-KPX r comma -25
-KPX r d 6
-KPX r e 8
-KPX r eacute 8
-KPX r ecircumflex 8
-KPX r egrave 8
-KPX r f 19
-KPX r g 12
-KPX r h -8
-KPX r hyphen 20
-KPX r i 21
-KPX r j 21
-KPX r k -10
-KPX r l -12
-KPX r m 26
-KPX r n 26
-KPX r o 9
-KPX r oacute 9
-KPX r ocircumflex 9
-KPX r odieresis 9
-KPX r oe 5
-KPX r ograve 9
-KPX r oslash 9
-KPX r p 24
-KPX r period -21
-KPX r q 0
-KPX r quoteright 45
-KPX r r 23
-KPX r s 17
-KPX r semicolon 6
-KPX r t 26
-KPX r u 26
-KPX r v 33
-KPX r w 32
-KPX r x 28
-KPX r y 34
-KPX r z 10
-KPX s quoteright 7
-KPX s t -10
-KPX seven colon -34
-KPX seven comma -80
-KPX seven eight -3
-KPX seven five -2
-KPX seven four -44
-KPX seven one 17
-KPX seven period -70
-KPX seven seven 20
-KPX seven six -31
-KPX seven three 2
-KPX seven two 7
-KPX six four 25
-KPX six one -21
-KPX six seven -9
-KPX t S 8
-KPX t a 12
-KPX t aacute 12
-KPX t adieresis 12
-KPX t ae 9
-KPX t aring 12
-KPX t colon 15
-KPX t e -4
-KPX t eacute -4
-KPX t h 18
-KPX t o -4
-KPX t oacute -4
-KPX t odieresis -4
-KPX t quoteright 22
-KPX t semicolon 4
-KPX three four 19
-KPX three one -14
-KPX three seven -13
-KPX two four 0
-KPX two one -5
-KPX two seven -5
-KPX u quoteright 1
-KPX v a -19
-KPX v aacute -19
-KPX v acircumflex -19
-KPX v adieresis -19
-KPX v ae -20
-KPX v agrave -19
-KPX v aring -19
-KPX v atilde -19
-KPX v c -39
-KPX v colon 10
-KPX v comma -70
-KPX v e -27
-KPX v eacute -27
-KPX v ecircumflex -27
-KPX v egrave -27
-KPX v g -10
-KPX v hyphen -13
-KPX v l -17
-KPX v o -22
-KPX v oacute -22
-KPX v odieresis -22
-KPX v ograve -22
-KPX v oslash -22
-KPX v period -59
-KPX v s -3
-KPX v semicolon -4
-KPX w a -20
-KPX w aacute -20
-KPX w acircumflex -20
-KPX w adieresis -20
-KPX w ae -21
-KPX w agrave -20
-KPX w aring -20
-KPX w atilde -20
-KPX w c -36
-KPX w colon 9
-KPX w comma -57
-KPX w e -28
-KPX w eacute -28
-KPX w ecircumflex -28
-KPX w egrave -28
-KPX w g -11
-KPX w hyphen -8
-KPX w l -18
-KPX w o -23
-KPX w oacute -23
-KPX w odieresis -23
-KPX w ograve -23
-KPX w oslash -23
-KPX w period -47
-KPX w s -4
-KPX w semicolon -5
-KPX x a 6
-KPX x c -15
-KPX x e -17
-KPX x eacute -17
-KPX x o -17
-KPX x q -19
-KPX y a -27
-KPX y aacute -27
-KPX y acircumflex -27
-KPX y adieresis -27
-KPX y ae -28
-KPX y agrave -27
-KPX y aring -27
-KPX y atilde -27
-KPX y c -37
-KPX y colon 7
-KPX y comma -67
-KPX y e -34
-KPX y eacute -34
-KPX y ecircumflex -34
-KPX y egrave -34
-KPX y g -15
-KPX y hyphen -11
-KPX y l -17
-KPX y o -28
-KPX y oacute -28
-KPX y odieresis -28
-KPX y ograve -28
-KPX y oslash -28
-KPX y period -57
-KPX y s -8
-KPX y semicolon -7
-KPX zero four 20
-KPX zero one 1
-KPX zero seven 6
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/p052004l.pfb b/Master/xemtex/gsfonts/p052004l.pfb
deleted file mode 100644
index fc19c9ecdd9..00000000000
--- a/Master/xemtex/gsfonts/p052004l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052004l.pfm b/Master/xemtex/gsfonts/p052004l.pfm
deleted file mode 100644
index 429fdc48909..00000000000
--- a/Master/xemtex/gsfonts/p052004l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052023l.afm b/Master/xemtex/gsfonts/p052023l.afm
deleted file mode 100644
index 504655b8632..00000000000
--- a/Master/xemtex/gsfonts/p052023l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWPalladioL-Ital
-FullName URW Palladio L Italic
-FamilyName URW Palladio L
-Weight Regular
-ItalicAngle -9.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -170 -305 1010 941
-CapHeight 692
-XHeight 471
-Descender -276
-Ascender 733
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 333 ; N exclam ; B 76 -8 292 733 ;
-C 34 ; WX 500 ; N quotedbl ; B 140 508 455 733 ;
-C 35 ; WX 500 ; N numbersign ; B 4 0 495 692 ;
-C 36 ; WX 500 ; N dollar ; B 15 -113 452 733 ;
-C 37 ; WX 889 ; N percent ; B 74 -7 809 710 ;
-C 38 ; WX 778 ; N ampersand ; B 47 -18 766 692 ;
-C 39 ; WX 278 ; N quoteright ; B 78 488 258 733 ;
-C 40 ; WX 333 ; N parenleft ; B 54 -106 331 733 ;
-C 41 ; WX 333 ; N parenright ; B 2 -106 279 733 ;
-C 42 ; WX 389 ; N asterisk ; B 76 368 400 706 ;
-C 43 ; WX 606 ; N plus ; B 51 0 555 504 ;
-C 44 ; WX 250 ; N comma ; B 8 -143 203 123 ;
-C 45 ; WX 333 ; N hyphen ; B 19 223 304 281 ;
-C 46 ; WX 250 ; N period ; B 53 -5 158 112 ;
-C 47 ; WX 296 ; N slash ; B -40 -119 392 733 ;
-C 48 ; WX 500 ; N zero ; B 36 -11 480 699 ;
-C 49 ; WX 500 ; N one ; B 54 -3 398 699 ;
-C 50 ; WX 500 ; N two ; B 12 -3 437 699 ;
-C 51 ; WX 500 ; N three ; B 22 -11 447 699 ;
-C 52 ; WX 500 ; N four ; B 15 -3 478 699 ;
-C 53 ; WX 500 ; N five ; B 14 -11 491 693 ;
-C 54 ; WX 500 ; N six ; B 49 -11 469 699 ;
-C 55 ; WX 500 ; N seven ; B 53 -3 502 692 ;
-C 56 ; WX 500 ; N eight ; B 36 -11 469 699 ;
-C 57 ; WX 500 ; N nine ; B 32 -11 468 699 ;
-C 58 ; WX 250 ; N colon ; B 44 -5 207 458 ;
-C 59 ; WX 250 ; N semicolon ; B -9 -146 219 456 ;
-C 60 ; WX 606 ; N less ; B 53 -2 554 524 ;
-C 61 ; WX 606 ; N equal ; B 51 126 555 378 ;
-C 62 ; WX 606 ; N greater ; B 53 -2 554 524 ;
-C 63 ; WX 500 ; N question ; B 114 -8 427 706 ;
-C 64 ; WX 747 ; N at ; B 27 -18 718 706 ;
-C 65 ; WX 722 ; N A ; B -19 -3 677 705 ;
-C 66 ; WX 611 ; N B ; B 26 -6 559 692 ;
-C 67 ; WX 667 ; N C ; B 45 -18 651 706 ;
-C 68 ; WX 778 ; N D ; B 28 -3 741 693 ;
-C 69 ; WX 611 ; N E ; B 30 -3 570 692 ;
-C 70 ; WX 556 ; N F ; B 0 -3 548 692 ;
-C 71 ; WX 722 ; N G ; B 50 -18 694 706 ;
-C 72 ; WX 778 ; N H ; B -3 -3 800 692 ;
-C 73 ; WX 333 ; N I ; B 7 -3 354 692 ;
-C 74 ; WX 333 ; N J ; B -35 -206 358 692 ;
-C 75 ; WX 667 ; N K ; B 13 -3 683 692 ;
-C 76 ; WX 556 ; N L ; B 16 -3 523 692 ;
-C 77 ; WX 944 ; N M ; B -19 -18 940 692 ;
-C 78 ; WX 778 ; N N ; B 2 -11 804 692 ;
-C 79 ; WX 778 ; N O ; B 53 -18 748 706 ;
-C 80 ; WX 611 ; N P ; B 9 -3 594 695 ;
-C 81 ; WX 778 ; N Q ; B 53 -201 748 706 ;
-C 82 ; WX 667 ; N R ; B 9 -3 639 694 ;
-C 83 ; WX 556 ; N S ; B 42 -18 506 706 ;
-C 84 ; WX 611 ; N T ; B 53 -3 635 692 ;
-C 85 ; WX 778 ; N U ; B 88 -19 798 692 ;
-C 86 ; WX 722 ; N V ; B 75 -8 754 692 ;
-C 87 ; WX 944 ; N W ; B 71 -8 980 700 ;
-C 88 ; WX 722 ; N X ; B 20 -3 734 692 ;
-C 89 ; WX 667 ; N Y ; B 52 -3 675 705 ;
-C 90 ; WX 667 ; N Z ; B 20 -3 637 692 ;
-C 91 ; WX 333 ; N bracketleft ; B 18 -100 326 733 ;
-C 92 ; WX 606 ; N backslash ; B 81 0 513 733 ;
-C 93 ; WX 333 ; N bracketright ; B 7 -100 315 733 ;
-C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 278 ; N quoteleft ; B 78 488 258 733 ;
-C 97 ; WX 444 ; N a ; B 4 -11 406 482 ;
-C 98 ; WX 463 ; N b ; B 37 -11 433 733 ;
-C 99 ; WX 407 ; N c ; B 25 -11 389 482 ;
-C 100 ; WX 500 ; N d ; B 17 -11 483 733 ;
-C 101 ; WX 389 ; N e ; B 15 -11 374 482 ;
-C 102 ; WX 278 ; N f ; B -162 -276 413 733 ;
-C 103 ; WX 500 ; N g ; B -37 -276 498 482 ;
-C 104 ; WX 500 ; N h ; B 10 -9 471 733 ;
-C 105 ; WX 278 ; N i ; B 34 -9 264 712 ;
-C 106 ; WX 278 ; N j ; B -70 -276 265 712 ;
-C 107 ; WX 444 ; N k ; B 8 -9 449 733 ;
-C 108 ; WX 278 ; N l ; B 36 -9 251 733 ;
-C 109 ; WX 778 ; N m ; B 24 -9 740 482 ;
-C 110 ; WX 556 ; N n ; B 24 -9 514 482 ;
-C 111 ; WX 444 ; N o ; B 17 -11 411 482 ;
-C 112 ; WX 500 ; N p ; B -7 -276 465 482 ;
-C 113 ; WX 463 ; N q ; B 24 -276 432 482 ;
-C 114 ; WX 389 ; N r ; B 26 -9 384 482 ;
-C 115 ; WX 389 ; N s ; B 9 -11 345 482 ;
-C 116 ; WX 333 ; N t ; B 41 -9 310 646 ;
-C 117 ; WX 556 ; N u ; B 32 -11 512 482 ;
-C 118 ; WX 500 ; N v ; B 21 -11 477 482 ;
-C 119 ; WX 722 ; N w ; B 21 -11 699 482 ;
-C 120 ; WX 500 ; N x ; B 9 -11 484 482 ;
-C 121 ; WX 500 ; N y ; B -8 -276 490 482 ;
-C 122 ; WX 444 ; N z ; B -1 -11 416 482 ;
-C 123 ; WX 333 ; N braceleft ; B 15 -100 319 733 ;
-C 124 ; WX 606 ; N bar ; B 275 0 331 733 ;
-C 125 ; WX 333 ; N braceright ; B 14 -100 318 733 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 169 555 328 ;
-C 161 ; WX 333 ; N exclamdown ; B 15 -276 233 467 ;
-C 162 ; WX 500 ; N cent ; B 56 -96 418 551 ;
-C 163 ; WX 500 ; N sterling ; B 2 -18 479 708 ;
-C 164 ; WX 167 ; N fraction ; B -170 0 337 699 ;
-C 165 ; WX 500 ; N yen ; B 35 -3 512 701 ;
-C 166 ; WX 500 ; N florin ; B 5 -276 470 711 ;
-C 167 ; WX 500 ; N section ; B 14 -220 463 706 ;
-C 168 ; WX 500 ; N currency ; B 14 115 486 577 ;
-C 169 ; WX 333 ; N quotesingle ; B 140 508 288 733 ;
-C 170 ; WX 500 ; N quotedblleft ; B 98 488 475 733 ;
-C 171 ; WX 500 ; N guillemotleft ; B 57 70 437 440 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 57 70 270 440 ;
-C 173 ; WX 333 ; N guilsinglright ; B 63 70 276 440 ;
-C 174 ; WX 528 ; N fi ; B -162 -276 502 733 ;
-C 175 ; WX 545 ; N fl ; B -162 -276 520 734 ;
-C 177 ; WX 500 ; N endash ; B -10 228 510 278 ;
-C 178 ; WX 500 ; N dagger ; B 48 0 469 692 ;
-C 179 ; WX 500 ; N daggerdbl ; B 10 -162 494 692 ;
-C 180 ; WX 250 ; N periodcentered ; B 53 195 158 312 ;
-C 182 ; WX 500 ; N paragraph ; B 33 -224 611 692 ;
-C 183 ; WX 500 ; N bullet ; B 86 182 430 526 ;
-C 184 ; WX 278 ; N quotesinglbase ; B 27 -122 211 120 ;
-C 185 ; WX 500 ; N quotedblbase ; B 43 -122 424 120 ;
-C 186 ; WX 500 ; N quotedblright ; B 98 488 475 733 ;
-C 187 ; WX 500 ; N guillemotright ; B 63 70 443 440 ;
-C 188 ; WX 1000 ; N ellipsis ; B 102 -5 873 112 ;
-C 189 ; WX 1000 ; N perthousand ; B 72 -6 929 717 ;
-C 191 ; WX 500 ; N questiondown ; B 57 -246 370 467 ;
-C 193 ; WX 333 ; N grave ; B 86 518 310 687 ;
-C 194 ; WX 333 ; N acute ; B 122 518 346 687 ;
-C 195 ; WX 333 ; N circumflex ; B 56 510 350 679 ;
-C 196 ; WX 333 ; N tilde ; B 63 535 390 638 ;
-C 197 ; WX 333 ; N macron ; B 74 538 386 589 ;
-C 198 ; WX 333 ; N breve ; B 92 518 393 677 ;
-C 199 ; WX 333 ; N dotaccent ; B 175 537 283 645 ;
-C 200 ; WX 333 ; N dieresis ; B 78 537 378 637 ;
-C 202 ; WX 333 ; N ring ; B 159 518 359 718 ;
-C 203 ; WX 333 ; N cedilla ; B -9 -216 202 0 ;
-C 205 ; WX 333 ; N hungarumlaut ; B 46 518 385 731 ;
-C 206 ; WX 333 ; N ogonek ; B 38 -207 196 -18 ;
-C 207 ; WX 333 ; N caron ; B 104 510 409 679 ;
-C 208 ; WX 1000 ; N emdash ; B -10 228 1010 278 ;
-C 225 ; WX 941 ; N AE ; B -4 -3 902 692 ;
-C 227 ; WX 333 ; N ordfeminine ; B 60 404 321 699 ;
-C 232 ; WX 556 ; N Lslash ; B -16 -3 523 692 ;
-C 233 ; WX 778 ; N Oslash ; B 32 -39 762 721 ;
-C 234 ; WX 1028 ; N OE ; B 56 -18 989 707 ;
-C 235 ; WX 333 ; N ordmasculine ; B 66 404 322 699 ;
-C 241 ; WX 638 ; N ae ; B 1 -11 623 482 ;
-C 245 ; WX 278 ; N dotlessi ; B 34 -9 241 482 ;
-C 248 ; WX 278 ; N lslash ; B -10 -9 302 733 ;
-C 249 ; WX 444 ; N oslash ; B -18 -24 460 510 ;
-C 250 ; WX 669 ; N oe ; B 17 -11 654 482 ;
-C 251 ; WX 500 ; N germandbls ; B -160 -276 488 733 ;
-C -1 ; WX 778 ; N Udieresis ; B 88 -19 798 847 ;
-C -1 ; WX 778 ; N Uacute ; B 88 -19 798 897 ;
-C -1 ; WX 556 ; N Scedilla ; B 42 -216 506 706 ;
-C -1 ; WX 611 ; N Tcaron ; B 53 -3 635 889 ;
-C -1 ; WX 556 ; N Scaron ; B 42 -18 559 907 ;
-C -1 ; WX 667 ; N Rcaron ; B 9 -3 639 889 ;
-C -1 ; WX 667 ; N Racute ; B 9 -3 639 897 ;
-C -1 ; WX 556 ; N Sacute ; B 42 -18 556 897 ;
-C -1 ; WX 778 ; N Otilde ; B 53 -18 748 866 ;
-C -1 ; WX 556 ; N ucircumflex ; B 32 -11 512 679 ;
-C -1 ; WX 778 ; N Ohungarumlaut ; B 53 -18 748 941 ;
-C -1 ; WX 778 ; N Uhungarumlaut ; B 88 -19 798 941 ;
-C -1 ; WX 667 ; N Yacute ; B 52 -3 675 897 ;
-C -1 ; WX 778 ; N Eth ; B 19 -3 741 693 ;
-C -1 ; WX 778 ; N Dcroat ; B 19 -3 741 693 ;
-C -1 ; WX 667 ; N Zacute ; B 20 -3 637 897 ;
-C -1 ; WX 778 ; N Uring ; B 88 -19 798 928 ;
-C -1 ; WX 500 ; N gbreve ; B -37 -276 498 677 ;
-C -1 ; WX 389 ; N eogonek ; B 15 -187 374 482 ;
-C -1 ; WX 389 ; N edotaccent ; B 15 -11 374 645 ;
-C -1 ; WX 389 ; N ecaron ; B 15 -11 437 679 ;
-C -1 ; WX 778 ; N Ugrave ; B 88 -19 798 897 ;
-C -1 ; WX 611 ; N Thorn ; B 9 -3 570 692 ;
-C -1 ; WX 389 ; N eacute ; B 15 -11 394 687 ;
-C -1 ; WX 389 ; N edieresis ; B 15 -11 406 637 ;
-C -1 ; WX 577 ; N dcaron ; B 17 -11 637 733 ;
-C -1 ; WX 407 ; N ccedilla ; B 25 -216 389 482 ;
-C -1 ; WX 407 ; N ccaron ; B 25 -11 466 679 ;
-C -1 ; WX 407 ; N cacute ; B 25 -11 423 687 ;
-C -1 ; WX 444 ; N aogonek ; B 4 -187 406 482 ;
-C -1 ; WX 444 ; N aring ; B 4 -11 406 718 ;
-C -1 ; WX 444 ; N atilde ; B 4 -11 446 638 ;
-C -1 ; WX 444 ; N abreve ; B 4 -11 449 677 ;
-C -1 ; WX 389 ; N egrave ; B 15 -11 374 687 ;
-C -1 ; WX 444 ; N agrave ; B 4 -11 406 687 ;
-C -1 ; WX 444 ; N aacute ; B 4 -11 448 687 ;
-C -1 ; WX 444 ; N adieresis ; B 4 -11 434 637 ;
-C -1 ; WX 778 ; N Uogonek ; B 88 -188 798 692 ;
-C -1 ; WX 556 ; N ugrave ; B 32 -11 512 687 ;
-C -1 ; WX 556 ; N uacute ; B 32 -11 526 687 ;
-C -1 ; WX 556 ; N udieresis ; B 32 -11 512 637 ;
-C -1 ; WX 361 ; N tcaron ; B 41 -9 421 733 ;
-C -1 ; WX 389 ; N scommaaccent ; B 9 -305 345 482 ;
-C -1 ; WX 667 ; N Zcaron ; B 20 -3 637 907 ;
-C -1 ; WX 389 ; N ecircumflex ; B 15 -11 398 679 ;
-C -1 ; WX 778 ; N Ucircumflex ; B 88 -19 798 889 ;
-C -1 ; WX 444 ; N acircumflex ; B 4 -11 406 679 ;
-C -1 ; WX 667 ; N Zdotaccent ; B 20 -3 637 855 ;
-C -1 ; WX 389 ; N scaron ; B 9 -11 419 679 ;
-C -1 ; WX 722 ; N Amacron ; B -19 -3 677 799 ;
-C -1 ; WX 389 ; N sacute ; B 9 -11 419 687 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 53 -305 635 692 ;
-C -1 ; WX 667 ; N Ydieresis ; B 52 -3 675 847 ;
-C -1 ; WX 500 ; N thorn ; B -39 -276 433 733 ;
-C -1 ; WX 611 ; N Emacron ; B 30 -3 570 799 ;
-C -1 ; WX 778 ; N Ograve ; B 53 -18 748 897 ;
-C -1 ; WX 778 ; N Oacute ; B 53 -18 748 897 ;
-C -1 ; WX 778 ; N Odieresis ; B 53 -18 748 847 ;
-C -1 ; WX 778 ; N Ntilde ; B 2 -11 804 866 ;
-C -1 ; WX 778 ; N Ncaron ; B 2 -11 804 889 ;
-C -1 ; WX 778 ; N Nacute ; B 2 -11 804 897 ;
-C -1 ; WX 556 ; N Lcaron ; B 16 -3 536 713 ;
-C -1 ; WX 556 ; N Lacute ; B 16 -3 523 897 ;
-C -1 ; WX 333 ; N Idotaccent ; B 7 -3 354 855 ;
-C -1 ; WX 389 ; N racute ; B 26 -9 419 687 ;
-C -1 ; WX 333 ; N Icircumflex ; B 7 -3 390 889 ;
-C -1 ; WX 444 ; N ohungarumlaut ; B 17 -11 484 731 ;
-C -1 ; WX 444 ; N otilde ; B 17 -11 446 638 ;
-C -1 ; WX 500 ; N Euro ; B 42 -21 615 709 ;
-C -1 ; WX 444 ; N ocircumflex ; B 17 -11 411 679 ;
-C -1 ; WX 300 ; N onesuperior ; B 61 278 285 699 ;
-C -1 ; WX 300 ; N twosuperior ; B 13 278 290 699 ;
-C -1 ; WX 300 ; N threesuperior ; B 28 273 304 699 ;
-C -1 ; WX 333 ; N Igrave ; B 7 -3 354 897 ;
-C -1 ; WX 333 ; N Iacute ; B 7 -3 406 897 ;
-C -1 ; WX 333 ; N Imacron ; B 7 -3 399 799 ;
-C -1 ; WX 333 ; N Iogonek ; B 7 -188 354 692 ;
-C -1 ; WX 333 ; N Idieresis ; B 7 -3 398 847 ;
-C -1 ; WX 722 ; N Gbreve ; B 50 -18 694 887 ;
-C -1 ; WX 778 ; N Umacron ; B 88 -19 798 799 ;
-C -1 ; WX 667 ; N Kcommaaccent ; B 13 -305 683 692 ;
-C -1 ; WX 444 ; N ograve ; B 17 -11 411 687 ;
-C -1 ; WX 556 ; N Scommaaccent ; B 42 -305 506 706 ;
-C -1 ; WX 611 ; N Eogonek ; B 30 -187 570 692 ;
-C -1 ; WX 444 ; N oacute ; B 17 -11 414 687 ;
-C -1 ; WX 611 ; N Edotaccent ; B 30 -3 570 855 ;
-C -1 ; WX 278 ; N iogonek ; B 34 -187 264 712 ;
-C -1 ; WX 500 ; N gcommaaccent ; B -37 -276 498 753 ;
-C -1 ; WX 444 ; N odieresis ; B 17 -11 434 637 ;
-C -1 ; WX 556 ; N ntilde ; B 24 -9 514 638 ;
-C -1 ; WX 556 ; N ncaron ; B 24 -9 521 679 ;
-C -1 ; WX 611 ; N Ecaron ; B 30 -3 570 889 ;
-C -1 ; WX 611 ; N Ecircumflex ; B 30 -3 570 889 ;
-C -1 ; WX 389 ; N scedilla ; B 9 -216 345 482 ;
-C -1 ; WX 389 ; N rcaron ; B 26 -9 437 679 ;
-C -1 ; WX 611 ; N Egrave ; B 30 -3 570 897 ;
-C -1 ; WX 611 ; N Eacute ; B 30 -3 570 897 ;
-C -1 ; WX 722 ; N Gcommaaccent ; B 50 -305 694 706 ;
-C -1 ; WX 667 ; N Rcommaaccent ; B 9 -305 639 694 ;
-C -1 ; WX 611 ; N Edieresis ; B 30 -3 570 847 ;
-C -1 ; WX 556 ; N nacute ; B 24 -9 514 687 ;
-C -1 ; WX 556 ; N uogonek ; B 32 -187 512 482 ;
-C -1 ; WX 556 ; N umacron ; B 32 -11 512 589 ;
-C -1 ; WX 778 ; N Dcaron ; B 28 -3 741 889 ;
-C -1 ; WX 346 ; N lcaron ; B 36 -9 406 733 ;
-C -1 ; WX 667 ; N Ccaron ; B 45 -18 651 889 ;
-C -1 ; WX 667 ; N Cacute ; B 45 -18 651 897 ;
-C -1 ; WX 667 ; N Ccedilla ; B 45 -216 651 706 ;
-C -1 ; WX 400 ; N degree ; B 90 389 390 689 ;
-C -1 ; WX 722 ; N Aogonek ; B -19 -187 728 705 ;
-C -1 ; WX 606 ; N minus ; B 51 224 555 280 ;
-C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ;
-C -1 ; WX 606 ; N divide ; B 51 0 555 504 ;
-C -1 ; WX 722 ; N Aring ; B -19 -3 677 937 ;
-C -1 ; WX 1000 ; N trademark ; B 52 285 951 689 ;
-C -1 ; WX 389 ; N rcommaaccent ; B -5 -305 384 482 ;
-C -1 ; WX 278 ; N lacute ; B 36 -9 379 897 ;
-C -1 ; WX 444 ; N omacron ; B 17 -11 442 589 ;
-C -1 ; WX 722 ; N Atilde ; B -19 -3 677 866 ;
-C -1 ; WX 278 ; N icircumflex ; B 29 -9 323 679 ;
-C -1 ; WX 278 ; N igrave ; B 34 -9 271 687 ;
-C -1 ; WX 556 ; N ncommaaccent ; B 24 -305 514 482 ;
-C -1 ; WX 278 ; N lcommaaccent ; B -28 -305 251 733 ;
-C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ;
-C -1 ; WX 750 ; N onehalf ; B 31 -2 721 699 ;
-C -1 ; WX 750 ; N onequarter ; B 31 -2 715 699 ;
-C -1 ; WX 750 ; N threequarters ; B 35 -2 715 699 ;
-C -1 ; WX 278 ; N iacute ; B 34 -9 331 687 ;
-C -1 ; WX 722 ; N Abreve ; B -19 -3 677 887 ;
-C -1 ; WX 444 ; N kcommaaccent ; B 8 -305 449 733 ;
-C -1 ; WX 778 ; N Omacron ; B 53 -18 748 799 ;
-C -1 ; WX 278 ; N imacron ; B 34 -9 359 589 ;
-C -1 ; WX 389 ; N emacron ; B 15 -11 414 589 ;
-C -1 ; WX 444 ; N amacron ; B 4 -11 442 589 ;
-C -1 ; WX 333 ; N tcommaaccent ; B 20 -305 310 646 ;
-C -1 ; WX 500 ; N ydieresis ; B -8 -276 490 637 ;
-C -1 ; WX 444 ; N zdotaccent ; B -1 -11 416 645 ;
-C -1 ; WX 444 ; N zcaron ; B -1 -11 447 679 ;
-C -1 ; WX 444 ; N zacute ; B -1 -11 416 687 ;
-C -1 ; WX 500 ; N yacute ; B -8 -276 490 687 ;
-C -1 ; WX 556 ; N uhungarumlaut ; B 32 -11 536 731 ;
-C -1 ; WX 444 ; N eth ; B 17 -11 478 733 ;
-C -1 ; WX 556 ; N uring ; B 32 -11 512 718 ;
-C -1 ; WX 778 ; N Ocircumflex ; B 53 -18 748 889 ;
-C -1 ; WX 333 ; N commaaccent ; B 20 -305 200 -60 ;
-C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ;
-C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ;
-C -1 ; WX 722 ; N Acircumflex ; B -19 -3 677 889 ;
-C -1 ; WX 278 ; N idieresis ; B 34 -9 351 657 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 51 -33 555 541 ;
-C -1 ; WX 549 ; N radical ; B 5 -48 520 918 ;
-C -1 ; WX 722 ; N Agrave ; B -19 -3 677 897 ;
-C -1 ; WX 722 ; N Aacute ; B -19 -3 677 897 ;
-C -1 ; WX 606 ; N lessequal ; B 53 0 554 613 ;
-C -1 ; WX 606 ; N greaterequal ; B 53 0 554 613 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 118 555 378 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 778 ; N Ncommaaccent ; B 2 -305 804 692 ;
-C -1 ; WX 500 ; N dcroat ; B 17 -11 540 733 ;
-C -1 ; WX 606 ; N brokenbar ; B 275 0 331 733 ;
-C -1 ; WX 556 ; N Lcommaaccent ; B 16 -305 523 692 ;
-C -1 ; WX 722 ; N Adieresis ; B -19 -3 677 847 ;
-C -1 ; WX 556 ; N mu ; B 15 -226 512 482 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -44
-KPX A Ccedilla -44
-KPX A G -47
-KPX A O -47
-KPX A Odieresis -47
-KPX A Q -47
-KPX A T -35
-KPX A U -51
-KPX A Uacute -51
-KPX A Ucircumflex -51
-KPX A Udieresis -51
-KPX A Ugrave -51
-KPX A V -93
-KPX A W -71
-KPX A Y -58
-KPX A a 6
-KPX A b -15
-KPX A c -17
-KPX A ccedilla -17
-KPX A comma -20
-KPX A d -1
-KPX A e -11
-KPX A g -34
-KPX A guillemotleft -56
-KPX A guilsinglleft -56
-KPX A hyphen -7
-KPX A o -16
-KPX A period -7
-KPX A q -3
-KPX A quotedblright -76
-KPX A quoteright -66
-KPX A t -17
-KPX A u -23
-KPX A v -42
-KPX A w -38
-KPX A y -37
-KPX Aacute C -44
-KPX Aacute G -47
-KPX Aacute O -47
-KPX Aacute Q -47
-KPX Aacute T -35
-KPX Aacute U -51
-KPX Aacute V -93
-KPX Aacute W -71
-KPX Aacute Y -58
-KPX Aacute a 6
-KPX Aacute b -15
-KPX Aacute c -17
-KPX Aacute comma -20
-KPX Aacute d -1
-KPX Aacute e -11
-KPX Aacute g -34
-KPX Aacute guillemotleft -56
-KPX Aacute guilsinglleft -56
-KPX Aacute hyphen -7
-KPX Aacute o -16
-KPX Aacute period -7
-KPX Aacute q -3
-KPX Aacute quoteright -66
-KPX Aacute t -17
-KPX Aacute u -23
-KPX Aacute v -42
-KPX Aacute w -38
-KPX Aacute y -37
-KPX Acircumflex C -44
-KPX Acircumflex G -47
-KPX Acircumflex O -47
-KPX Acircumflex Q -47
-KPX Acircumflex T -35
-KPX Acircumflex U -51
-KPX Acircumflex V -93
-KPX Acircumflex W -71
-KPX Acircumflex Y -58
-KPX Acircumflex comma -20
-KPX Acircumflex period -7
-KPX Adieresis C -44
-KPX Adieresis G -47
-KPX Adieresis O -47
-KPX Adieresis Q -47
-KPX Adieresis T -35
-KPX Adieresis U -51
-KPX Adieresis V -93
-KPX Adieresis W -71
-KPX Adieresis Y -58
-KPX Adieresis a 6
-KPX Adieresis b -15
-KPX Adieresis c -17
-KPX Adieresis comma -20
-KPX Adieresis d -1
-KPX Adieresis g -34
-KPX Adieresis guillemotleft -56
-KPX Adieresis guilsinglleft -56
-KPX Adieresis hyphen -7
-KPX Adieresis o -16
-KPX Adieresis period -7
-KPX Adieresis q -3
-KPX Adieresis quotedblright -76
-KPX Adieresis quoteright -66
-KPX Adieresis t -17
-KPX Adieresis u -23
-KPX Adieresis v -42
-KPX Adieresis w -38
-KPX Adieresis y -37
-KPX Agrave C -44
-KPX Agrave G -47
-KPX Agrave O -47
-KPX Agrave Q -47
-KPX Agrave T -35
-KPX Agrave U -51
-KPX Agrave V -93
-KPX Agrave W -71
-KPX Agrave Y -58
-KPX Agrave comma -20
-KPX Agrave period -7
-KPX Aring C -44
-KPX Aring G -47
-KPX Aring O -47
-KPX Aring Q -47
-KPX Aring T -35
-KPX Aring U -51
-KPX Aring V -93
-KPX Aring W -71
-KPX Aring Y -58
-KPX Aring a 6
-KPX Aring b -15
-KPX Aring c -17
-KPX Aring comma -20
-KPX Aring d -1
-KPX Aring e -11
-KPX Aring g -34
-KPX Aring guillemotleft -56
-KPX Aring guilsinglleft -56
-KPX Aring hyphen -7
-KPX Aring o -16
-KPX Aring period -7
-KPX Aring q -3
-KPX Aring quotedblright -76
-KPX Aring quoteright -66
-KPX Aring t -17
-KPX Aring u -23
-KPX Aring v -42
-KPX Aring w -38
-KPX Aring y -37
-KPX Atilde C -44
-KPX Atilde G -47
-KPX Atilde O -47
-KPX Atilde Q -47
-KPX Atilde T -35
-KPX Atilde U -51
-KPX Atilde V -93
-KPX Atilde W -71
-KPX Atilde Y -58
-KPX Atilde comma -20
-KPX Atilde period -7
-KPX B A -42
-KPX B AE -49
-KPX B Aacute -42
-KPX B Acircumflex -42
-KPX B Adieresis -42
-KPX B Aring -42
-KPX B Atilde -42
-KPX B O -14
-KPX B OE -14
-KPX B Oacute -14
-KPX B Ocircumflex -14
-KPX B Odieresis -14
-KPX B Ograve -14
-KPX B Oslash -13
-KPX B V -40
-KPX B W -38
-KPX B Y -17
-KPX C A -1
-KPX C AE -9
-KPX C Aacute -1
-KPX C Adieresis -1
-KPX C Aring -1
-KPX C H -11
-KPX C K -19
-KPX C O -29
-KPX C Oacute -29
-KPX C Odieresis -29
-KPX Ccedilla A -4
-KPX D A -80
-KPX D Aacute -80
-KPX D Acircumflex -80
-KPX D Adieresis -80
-KPX D Agrave -80
-KPX D Aring -80
-KPX D Atilde -80
-KPX D J -35
-KPX D T -9
-KPX D V -61
-KPX D W -43
-KPX D X -67
-KPX D Y -36
-KPX F A -93
-KPX F Aacute -93
-KPX F Acircumflex -93
-KPX F Adieresis -93
-KPX F Agrave -93
-KPX F Aring -93
-KPX F Atilde -93
-KPX F J -12
-KPX F O -27
-KPX F Odieresis -27
-KPX F a -38
-KPX F aacute -38
-KPX F adieresis -38
-KPX F ae -54
-KPX F aring -38
-KPX F comma -110
-KPX F e -36
-KPX F eacute -36
-KPX F hyphen -4
-KPX F i -41
-KPX F j -44
-KPX F o -32
-KPX F oacute -32
-KPX F odieresis -32
-KPX F oe -33
-KPX F oslash -35
-KPX F period -91
-KPX F r -34
-KPX F u -40
-KPX G A -15
-KPX G AE -22
-KPX G Aacute -15
-KPX G Acircumflex -15
-KPX G Adieresis -15
-KPX G Agrave -15
-KPX G Aring -15
-KPX G Atilde -15
-KPX G T -16
-KPX G V -20
-KPX G W -18
-KPX G Y -11
-KPX J A -29
-KPX J AE -37
-KPX J Adieresis -29
-KPX J Aring -29
-KPX K C -39
-KPX K G -43
-KPX K O -39
-KPX K OE -40
-KPX K Oacute -39
-KPX K Odieresis -39
-KPX K S 9
-KPX K T 15
-KPX K a 18
-KPX K adieresis 18
-KPX K ae 13
-KPX K aring 18
-KPX K e 0
-KPX K hyphen -56
-KPX K o -4
-KPX K oacute -4
-KPX K odieresis -4
-KPX K u -11
-KPX K udieresis -11
-KPX K y -25
-KPX L A 23
-KPX L AE 16
-KPX L Aacute 23
-KPX L Adieresis 23
-KPX L Aring 23
-KPX L C -6
-KPX L Ccedilla -7
-KPX L G -9
-KPX L O -8
-KPX L Oacute -8
-KPX L Ocircumflex -8
-KPX L Odieresis -8
-KPX L Ograve -8
-KPX L Otilde -8
-KPX L S -6
-KPX L T -41
-KPX L U -23
-KPX L Udieresis -23
-KPX L V -87
-KPX L W -62
-KPX L Y -63
-KPX L hyphen 15
-KPX L quotedblright -117
-KPX L quoteright -107
-KPX L u -24
-KPX L udieresis -24
-KPX L y -30
-KPX N A -31
-KPX N AE -38
-KPX N Aacute -31
-KPX N Adieresis -31
-KPX N Aring -31
-KPX N C -19
-KPX N Ccedilla -19
-KPX N G -23
-KPX N O -23
-KPX N Oacute -23
-KPX N Odieresis -23
-KPX N a -22
-KPX N aacute -22
-KPX N adieresis -22
-KPX N ae -26
-KPX N aring -22
-KPX N comma -47
-KPX N e -26
-KPX N eacute -26
-KPX N o -24
-KPX N oacute -24
-KPX N odieresis -24
-KPX N oslash -23
-KPX N period -29
-KPX N u -33
-KPX N udieresis -33
-KPX O A -65
-KPX O AE -73
-KPX O Aacute -65
-KPX O Adieresis -65
-KPX O Aring -65
-KPX O T -5
-KPX O V -54
-KPX O W -36
-KPX O X -62
-KPX O Y -30
-KPX Oacute A -65
-KPX Oacute T -5
-KPX Oacute V -54
-KPX Oacute W -36
-KPX Oacute Y -30
-KPX Ocircumflex T -5
-KPX Ocircumflex V -54
-KPX Ocircumflex Y -30
-KPX Odieresis A -65
-KPX Odieresis T -5
-KPX Odieresis V -54
-KPX Odieresis W -36
-KPX Odieresis X -62
-KPX Odieresis Y -30
-KPX Ograve T -5
-KPX Ograve V -54
-KPX Ograve Y -30
-KPX Oslash A -66
-KPX Otilde T -5
-KPX Otilde V -54
-KPX Otilde Y -30
-KPX P A -111
-KPX P AE -119
-KPX P Aacute -111
-KPX P Adieresis -111
-KPX P Aring -111
-KPX P J -41
-KPX P a -44
-KPX P aacute -44
-KPX P adieresis -44
-KPX P ae -22
-KPX P aring -44
-KPX P comma -135
-KPX P e -44
-KPX P eacute -44
-KPX P hyphen -30
-KPX P o -41
-KPX P oacute -41
-KPX P odieresis -41
-KPX P oe -42
-KPX P oslash -45
-KPX P period -116
-KPX R C -35
-KPX R Ccedilla -35
-KPX R G -39
-KPX R O -39
-KPX R OE -39
-KPX R Oacute -39
-KPX R Odieresis -39
-KPX R T -27
-KPX R U -42
-KPX R Udieresis -42
-KPX R V -59
-KPX R W -57
-KPX R Y -35
-KPX R a 14
-KPX R aacute 14
-KPX R adieresis 14
-KPX R ae 10
-KPX R aring 14
-KPX R e -2
-KPX R eacute -2
-KPX R hyphen -43
-KPX R o -7
-KPX R oacute -7
-KPX R odieresis -7
-KPX R oe -7
-KPX R u -14
-KPX R uacute -14
-KPX R udieresis -14
-KPX R y -29
-KPX S A -42
-KPX S AE -50
-KPX S Aacute -42
-KPX S Adieresis -42
-KPX S Aring -42
-KPX S T -17
-KPX S V -21
-KPX S W -19
-KPX S Y -13
-KPX S t -34
-KPX T A -61
-KPX T AE -68
-KPX T Aacute -61
-KPX T Acircumflex -61
-KPX T Adieresis -61
-KPX T Agrave -61
-KPX T Aring -61
-KPX T Atilde -61
-KPX T C -13
-KPX T G -18
-KPX T J 3
-KPX T O -19
-KPX T OE -19
-KPX T Oacute -19
-KPX T Ocircumflex -19
-KPX T Odieresis -19
-KPX T Ograve -19
-KPX T Oslash -20
-KPX T Otilde -19
-KPX T S -16
-KPX T V 15
-KPX T W 17
-KPX T Y 23
-KPX T a -83
-KPX T ae -87
-KPX T c -106
-KPX T colon -93
-KPX T comma -111
-KPX T e -100
-KPX T g -125
-KPX T guillemotleft -124
-KPX T guilsinglleft -124
-KPX T hyphen -75
-KPX T i -41
-KPX T j -42
-KPX T o -102
-KPX T oslash -74
-KPX T period -97
-KPX T r -103
-KPX T s -84
-KPX T semicolon -103
-KPX T u -112
-KPX T v -109
-KPX T w -109
-KPX T y -99
-KPX U A 16
-KPX U AE 8
-KPX U Aacute 16
-KPX U Acircumflex 16
-KPX U Adieresis 16
-KPX U Aring 16
-KPX U Atilde 16
-KPX U comma -34
-KPX U m -25
-KPX U n -25
-KPX U p -24
-KPX U period -19
-KPX U r -27
-KPX Uacute A 16
-KPX Uacute comma -34
-KPX Uacute m -25
-KPX Uacute n -25
-KPX Uacute p -24
-KPX Uacute period -19
-KPX Uacute r -27
-KPX Ucircumflex A 16
-KPX Udieresis A 16
-KPX Udieresis b 13
-KPX Udieresis comma -34
-KPX Udieresis m -25
-KPX Udieresis n -25
-KPX Udieresis p -24
-KPX Udieresis period -19
-KPX Udieresis r -27
-KPX Ugrave A 16
-KPX V A -139
-KPX V AE -114
-KPX V Aacute -139
-KPX V Acircumflex -139
-KPX V Adieresis -139
-KPX V Agrave -139
-KPX V Aring -139
-KPX V Atilde -139
-KPX V C -61
-KPX V G -66
-KPX V O -66
-KPX V Oacute -66
-KPX V Ocircumflex -66
-KPX V Odieresis -66
-KPX V Ograve -66
-KPX V Oslash -66
-KPX V Otilde -66
-KPX V S -49
-KPX V T 23
-KPX V a -96
-KPX V ae -81
-KPX V colon -92
-KPX V comma -149
-KPX V e -100
-KPX V g -104
-KPX V guillemotleft -112
-KPX V guilsinglleft -112
-KPX V hyphen -65
-KPX V i -36
-KPX V o -98
-KPX V oslash -98
-KPX V period -130
-KPX V r -69
-KPX V semicolon -101
-KPX V u -72
-KPX V y -57
-KPX W A -62
-KPX W AE -69
-KPX W Aacute -62
-KPX W Acircumflex -62
-KPX W Adieresis -62
-KPX W Agrave -62
-KPX W Aring -62
-KPX W Atilde -62
-KPX W C -26
-KPX W G -30
-KPX W O -30
-KPX W Oacute -30
-KPX W Ocircumflex -30
-KPX W Odieresis -30
-KPX W Ograve -30
-KPX W Oslash -27
-KPX W Otilde -30
-KPX W S -36
-KPX W T 25
-KPX W a -38
-KPX W ae -42
-KPX W colon -53
-KPX W comma -73
-KPX W e -42
-KPX W g -62
-KPX W guillemotleft -57
-KPX W guilsinglleft -57
-KPX W hyphen -9
-KPX W i -34
-KPX W o -40
-KPX W oslash -39
-KPX W period -54
-KPX W r -32
-KPX W semicolon -63
-KPX W u -35
-KPX W y -21
-KPX X C -48
-KPX X O -47
-KPX X Odieresis -47
-KPX X Q -47
-KPX X a 9
-KPX X e -7
-KPX X hyphen -52
-KPX X o -12
-KPX X u -19
-KPX X y -34
-KPX Y A -73
-KPX Y AE -80
-KPX Y Aacute -73
-KPX Y Acircumflex -73
-KPX Y Adieresis -73
-KPX Y Agrave -73
-KPX Y Aring -73
-KPX Y Atilde -73
-KPX Y C -50
-KPX Y G -55
-KPX Y O -55
-KPX Y Oacute -55
-KPX Y Ocircumflex -55
-KPX Y Odieresis -55
-KPX Y Ograve -55
-KPX Y Oslash -55
-KPX Y Otilde -55
-KPX Y S -39
-KPX Y T 10
-KPX Y a -95
-KPX Y ae -99
-KPX Y colon -105
-KPX Y comma -123
-KPX Y e -103
-KPX Y g -126
-KPX Y guillemotleft -124
-KPX Y guilsinglleft -124
-KPX Y hyphen -81
-KPX Y i -48
-KPX Y o -101
-KPX Y oslash -86
-KPX Y p -86
-KPX Y period -109
-KPX Y semicolon -115
-KPX Y u -98
-KPX Y v -82
-KPX Z v -35
-KPX Z y -42
-KPX a j -26
-KPX a quoteright -8
-KPX a v -18
-KPX a w -18
-KPX a y -6
-KPX aacute v -18
-KPX aacute w -18
-KPX aacute y -6
-KPX adieresis v -18
-KPX adieresis w -18
-KPX adieresis y -6
-KPX ae v 5
-KPX ae w 5
-KPX ae y 15
-KPX agrave v -18
-KPX agrave w -18
-KPX agrave y -6
-KPX aring v -18
-KPX aring w -18
-KPX aring y -6
-KPX b v 0
-KPX b w 0
-KPX b y 8
-KPX c h -18
-KPX c k -15
-KPX comma one -24
-KPX comma quotedblright -9
-KPX comma quoteright 0
-KPX e quoteright 8
-KPX e t -3
-KPX e v 5
-KPX e w 5
-KPX e x -12
-KPX e y 15
-KPX eacute v 5
-KPX eacute w 5
-KPX eacute y 15
-KPX ecircumflex v 5
-KPX ecircumflex w 5
-KPX ecircumflex y 15
-KPX eight four -1
-KPX eight one -16
-KPX eight seven -17
-KPX f a -16
-KPX f aacute -16
-KPX f adieresis 4
-KPX f ae 0
-KPX f aring -16
-KPX f e -17
-KPX f eacute -17
-KPX f f 16
-KPX f i 13
-KPX f j 9
-KPX f l 50
-KPX f o -13
-KPX f oacute -13
-KPX f odieresis 4
-KPX f oe -14
-KPX f oslash -18
-KPX f quoteright 25
-KPX f s -2
-KPX f t 11
-KPX five four 3
-KPX five one -38
-KPX five seven -15
-KPX four four 21
-KPX four one -16
-KPX four seven -16
-KPX g a -25
-KPX g adieresis -25
-KPX g ae -12
-KPX g aring -25
-KPX g e -26
-KPX g eacute -26
-KPX g l -34
-KPX g oacute -22
-KPX g odieresis -22
-KPX g r 8
-KPX guillemotright A -72
-KPX guillemotright AE -80
-KPX guillemotright Aacute -72
-KPX guillemotright Adieresis -72
-KPX guillemotright Aring -72
-KPX guillemotright T -103
-KPX guillemotright V -85
-KPX guillemotright W -63
-KPX guillemotright Y -114
-KPX guilsinglright A -72
-KPX guilsinglright AE -80
-KPX guilsinglright Aacute -72
-KPX guilsinglright Adieresis -72
-KPX guilsinglright Aring -72
-KPX guilsinglright T -103
-KPX guilsinglright V -84
-KPX guilsinglright W -63
-KPX guilsinglright Y -114
-KPX h quoteright -11
-KPX h y -8
-KPX hyphen A -27
-KPX hyphen AE -35
-KPX hyphen Aacute -27
-KPX hyphen Adieresis -27
-KPX hyphen Aring -27
-KPX hyphen T -58
-KPX hyphen V -41
-KPX hyphen W -19
-KPX hyphen Y -75
-KPX i T -7
-KPX i j -30
-KPX k a 12
-KPX k aacute 12
-KPX k adieresis 12
-KPX k ae 14
-KPX k aring 12
-KPX k comma -24
-KPX k e 5
-KPX k eacute 5
-KPX k g -44
-KPX k hyphen -50
-KPX k o 2
-KPX k oacute 2
-KPX k odieresis 2
-KPX k period -4
-KPX k s 6
-KPX k u -16
-KPX k udieresis -16
-KPX l v -35
-KPX l y -24
-KPX m p -14
-KPX m v -23
-KPX m w -23
-KPX m y -11
-KPX n T -83
-KPX n p -18
-KPX n quoteright -19
-KPX n v -27
-KPX n w -27
-KPX n y -15
-KPX nine four -10
-KPX nine one -18
-KPX nine seven -25
-KPX o T -88
-KPX o quoteright -3
-KPX o t -15
-KPX o v -3
-KPX o w -3
-KPX o x -23
-KPX o y 4
-KPX oacute v -3
-KPX oacute w -3
-KPX oacute y 4
-KPX ocircumflex t -15
-KPX odieresis t -15
-KPX odieresis v -3
-KPX odieresis w -3
-KPX odieresis x -23
-KPX odieresis y 4
-KPX ograve v -3
-KPX ograve w -3
-KPX ograve y 4
-KPX one comma -50
-KPX one eight -47
-KPX one five -23
-KPX one four -63
-KPX one nine -39
-KPX one one -38
-KPX one period -36
-KPX one seven -38
-KPX one six -60
-KPX one three -27
-KPX one two -15
-KPX one zero -44
-KPX p t -13
-KPX p y 5
-KPX period one -37
-KPX period quotedblright -31
-KPX period quoteright -21
-KPX q c -18
-KPX q u -15
-KPX quotedblbase A 2
-KPX quotedblbase AE -5
-KPX quotedblbase T -62
-KPX quotedblbase V -74
-KPX quotedblbase W -47
-KPX quotedblbase Y -83
-KPX quotedblleft A -149
-KPX quotedblleft AE -153
-KPX quotedblleft Aacute -149
-KPX quotedblleft Adieresis -149
-KPX quotedblleft Aring -149
-KPX quotedblleft T -16
-KPX quotedblleft V -17
-KPX quotedblleft W -12
-KPX quotedblleft Y -13
-KPX quotedblright A -146
-KPX quotedblright AE -150
-KPX quotedblright Aacute -146
-KPX quotedblright Adieresis -146
-KPX quotedblright Aring -146
-KPX quotedblright T -13
-KPX quotedblright V -14
-KPX quotedblright W -9
-KPX quotedblright Y -10
-KPX quoteleft A -146
-KPX quoteleft AE -150
-KPX quoteleft Aacute -146
-KPX quoteleft Adieresis -146
-KPX quoteleft Aring -146
-KPX quoteleft T -13
-KPX quoteleft V -15
-KPX quoteleft W -10
-KPX quoteleft Y -11
-KPX quoteright A -143
-KPX quoteright AE -147
-KPX quoteright Aacute -143
-KPX quoteright Adieresis -143
-KPX quoteright Aring -143
-KPX quoteright comma -100
-KPX quoteright d -68
-KPX quoteright o -60
-KPX quoteright period -81
-KPX quoteright r -47
-KPX quoteright s -49
-KPX quoteright t -56
-KPX quoteright v -33
-KPX quoteright w -33
-KPX quoteright y -40
-KPX r a -25
-KPX r aacute -25
-KPX r acircumflex -25
-KPX r adieresis -25
-KPX r ae -18
-KPX r agrave -25
-KPX r aring -25
-KPX r c -28
-KPX r ccedilla -28
-KPX r colon -26
-KPX r comma -113
-KPX r d -30
-KPX r e -24
-KPX r eacute -24
-KPX r ecircumflex -24
-KPX r egrave -24
-KPX r f 1
-KPX r g -24
-KPX r h -31
-KPX r hyphen -48
-KPX r i -1
-KPX r j -5
-KPX r k -30
-KPX r l -39
-KPX r m 4
-KPX r n 4
-KPX r o -21
-KPX r oacute -21
-KPX r ocircumflex -21
-KPX r odieresis -21
-KPX r oe -22
-KPX r ograve -21
-KPX r oslash -25
-KPX r p 11
-KPX r period -95
-KPX r q -30
-KPX r quoteright 4
-KPX r r 3
-KPX r s -12
-KPX r semicolon -33
-KPX r t -3
-KPX r u 0
-KPX r v 4
-KPX r w 4
-KPX r x -14
-KPX r y 14
-KPX r z -7
-KPX s quoteright -10
-KPX s t -22
-KPX seven colon -78
-KPX seven comma -124
-KPX seven eight -43
-KPX seven five -31
-KPX seven four -79
-KPX seven one -14
-KPX seven period -105
-KPX seven seven -3
-KPX seven six -58
-KPX seven three -30
-KPX seven two -20
-KPX six four 6
-KPX six one -44
-KPX six seven -25
-KPX t S -29
-KPX t a -13
-KPX t aacute -13
-KPX t adieresis -13
-KPX t ae -11
-KPX t aring -13
-KPX t colon -32
-KPX t e -18
-KPX t eacute -18
-KPX t h -27
-KPX t o -20
-KPX t oacute -20
-KPX t odieresis -20
-KPX t quoteright -19
-KPX t semicolon -40
-KPX three four 7
-KPX three one -31
-KPX three seven -32
-KPX two four -42
-KPX two one -26
-KPX two seven -27
-KPX u quoteright -19
-KPX v a -14
-KPX v aacute -14
-KPX v acircumflex -14
-KPX v adieresis -14
-KPX v ae -19
-KPX v agrave -14
-KPX v aring -14
-KPX v atilde -14
-KPX v c -20
-KPX v colon -29
-KPX v comma -71
-KPX v e -17
-KPX v eacute -17
-KPX v ecircumflex -17
-KPX v egrave -17
-KPX v g -21
-KPX v hyphen 19
-KPX v l -27
-KPX v o -13
-KPX v oacute -13
-KPX v odieresis -13
-KPX v ograve -13
-KPX v oslash -15
-KPX v period -53
-KPX v s -13
-KPX v semicolon -35
-KPX w a -13
-KPX w aacute -13
-KPX w acircumflex -13
-KPX w adieresis -13
-KPX w ae -19
-KPX w agrave -13
-KPX w aring -13
-KPX w atilde -13
-KPX w c -20
-KPX w colon -29
-KPX w comma -71
-KPX w e -17
-KPX w eacute -17
-KPX w ecircumflex -17
-KPX w egrave -17
-KPX w g -21
-KPX w hyphen 19
-KPX w l -27
-KPX w o -13
-KPX w oacute -13
-KPX w odieresis -13
-KPX w ograve -13
-KPX w oslash -15
-KPX w period -52
-KPX w s -13
-KPX w semicolon -35
-KPX x a -2
-KPX x c -15
-KPX x e -9
-KPX x eacute -9
-KPX x o -13
-KPX x q -12
-KPX y a -14
-KPX y aacute -14
-KPX y acircumflex -14
-KPX y adieresis -14
-KPX y ae -19
-KPX y agrave -14
-KPX y aring -14
-KPX y atilde -14
-KPX y c -22
-KPX y colon -32
-KPX y comma -56
-KPX y e -18
-KPX y eacute -18
-KPX y ecircumflex -18
-KPX y egrave -18
-KPX y g -34
-KPX y hyphen 7
-KPX y l -27
-KPX y o -16
-KPX y oacute -16
-KPX y odieresis -16
-KPX y ograve -16
-KPX y oslash -16
-KPX y period -37
-KPX y s -18
-KPX y semicolon -39
-KPX zero four 3
-KPX zero one -13
-KPX zero seven -22
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/p052023l.pfb b/Master/xemtex/gsfonts/p052023l.pfb
deleted file mode 100644
index 3cc866146a4..00000000000
--- a/Master/xemtex/gsfonts/p052023l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052023l.pfm b/Master/xemtex/gsfonts/p052023l.pfm
deleted file mode 100644
index 84e72843dc2..00000000000
--- a/Master/xemtex/gsfonts/p052023l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052024l.afm b/Master/xemtex/gsfonts/p052024l.afm
deleted file mode 100644
index ebcb2393329..00000000000
--- a/Master/xemtex/gsfonts/p052024l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWPalladioL-BoldItal
-FullName URW Palladio L Bold Italic
-FamilyName URW Palladio L
-Weight Bold
-ItalicAngle -9.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -170 -300 1073 935
-CapHeight 681
-XHeight 452
-Descender -271
-Ascender 726
-StartCharMetrics 316
-C 32 ; WX 250 ; N space ; B 125 0 125 0 ;
-C 33 ; WX 333 ; N exclam ; B 58 -17 322 695 ;
-C 34 ; WX 500 ; N quotedbl ; B 137 467 493 720 ;
-C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ;
-C 36 ; WX 500 ; N dollar ; B 20 -108 477 737 ;
-C 37 ; WX 889 ; N percent ; B 56 -17 790 697 ;
-C 38 ; WX 833 ; N ampersand ; B 74 -17 811 695 ;
-C 39 ; WX 278 ; N quoteright ; B 76 431 302 720 ;
-C 40 ; WX 333 ; N parenleft ; B 58 -129 368 723 ;
-C 41 ; WX 333 ; N parenright ; B -12 -129 298 723 ;
-C 42 ; WX 444 ; N asterisk ; B 84 332 439 695 ;
-C 43 ; WX 606 ; N plus ; B 50 -5 556 501 ;
-C 44 ; WX 250 ; N comma ; B -33 -164 208 147 ;
-C 45 ; WX 389 ; N hyphen ; B 37 198 362 300 ;
-C 46 ; WX 250 ; N period ; B 48 -17 187 135 ;
-C 47 ; WX 315 ; N slash ; B 1 -17 315 720 ;
-C 48 ; WX 500 ; N zero ; B 42 -17 490 683 ;
-C 49 ; WX 500 ; N one ; B 41 -3 434 678 ;
-C 50 ; WX 500 ; N two ; B 1 -3 454 683 ;
-C 51 ; WX 500 ; N three ; B 8 -17 450 683 ;
-C 52 ; WX 500 ; N four ; B 3 -3 487 683 ;
-C 53 ; WX 500 ; N five ; B 14 -17 481 675 ;
-C 54 ; WX 500 ; N six ; B 39 -17 488 683 ;
-C 55 ; WX 500 ; N seven ; B 69 -3 544 674 ;
-C 56 ; WX 500 ; N eight ; B 26 -17 484 683 ;
-C 57 ; WX 500 ; N nine ; B 27 -17 491 683 ;
-C 58 ; WX 250 ; N colon ; B 38 -17 236 452 ;
-C 59 ; WX 250 ; N semicolon ; B -33 -164 247 452 ;
-C 60 ; WX 606 ; N less ; B 49 -20 558 524 ;
-C 61 ; WX 606 ; N equal ; B 51 106 555 390 ;
-C 62 ; WX 606 ; N greater ; B 48 -20 557 524 ;
-C 63 ; WX 444 ; N question ; B 91 -17 450 695 ;
-C 64 ; WX 833 ; N at ; B 82 -12 744 681 ;
-C 65 ; WX 722 ; N A ; B -35 -3 685 683 ;
-C 66 ; WX 667 ; N B ; B 8 -3 629 682 ;
-C 67 ; WX 685 ; N C ; B 69 -17 695 695 ;
-C 68 ; WX 778 ; N D ; B 0 -3 747 682 ;
-C 69 ; WX 611 ; N E ; B 11 -3 606 681 ;
-C 70 ; WX 556 ; N F ; B -6 -3 593 681 ;
-C 71 ; WX 778 ; N G ; B 72 -17 750 695 ;
-C 72 ; WX 778 ; N H ; B -12 -3 826 681 ;
-C 73 ; WX 389 ; N I ; B -1 -3 412 681 ;
-C 74 ; WX 389 ; N J ; B -29 -207 417 681 ;
-C 75 ; WX 722 ; N K ; B -10 -3 746 681 ;
-C 76 ; WX 611 ; N L ; B 26 -3 578 681 ;
-C 77 ; WX 944 ; N M ; B -23 -17 985 681 ;
-C 78 ; WX 778 ; N N ; B -2 -3 829 681 ;
-C 79 ; WX 833 ; N O ; B 76 -17 794 695 ;
-C 80 ; WX 667 ; N P ; B 11 -3 673 681 ;
-C 81 ; WX 833 ; N Q ; B 76 -222 794 695 ;
-C 82 ; WX 722 ; N R ; B 4 -3 697 681 ;
-C 83 ; WX 556 ; N S ; B 50 -17 517 695 ;
-C 84 ; WX 611 ; N T ; B 56 -3 674 681 ;
-C 85 ; WX 778 ; N U ; B 83 -17 825 681 ;
-C 86 ; WX 667 ; N V ; B 67 -3 745 681 ;
-C 87 ; WX 1000 ; N W ; B 67 -3 1073 689 ;
-C 88 ; WX 722 ; N X ; B -9 -3 772 681 ;
-C 89 ; WX 611 ; N Y ; B 54 -3 675 695 ;
-C 90 ; WX 667 ; N Z ; B 1 -3 676 681 ;
-C 91 ; WX 333 ; N bracketleft ; B 45 -102 381 723 ;
-C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ;
-C 93 ; WX 333 ; N bracketright ; B -21 -102 315 723 ;
-C 94 ; WX 606 ; N asciicircum ; B 63 275 543 678 ;
-C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
-C 96 ; WX 278 ; N quoteleft ; B 65 431 291 720 ;
-C 97 ; WX 556 ; N a ; B 44 -17 519 470 ;
-C 98 ; WX 537 ; N b ; B 44 -17 494 726 ;
-C 99 ; WX 444 ; N c ; B 32 -17 436 469 ;
-C 100 ; WX 556 ; N d ; B 38 -17 550 726 ;
-C 101 ; WX 444 ; N e ; B 28 -17 418 469 ;
-C 102 ; WX 333 ; N f ; B -130 -271 449 726 ;
-C 103 ; WX 500 ; N g ; B -50 -271 529 469 ;
-C 104 ; WX 556 ; N h ; B 22 -17 522 726 ;
-C 105 ; WX 333 ; N i ; B 26 -17 312 695 ;
-C 106 ; WX 333 ; N j ; B -64 -271 323 695 ;
-C 107 ; WX 556 ; N k ; B 34 -17 528 726 ;
-C 108 ; WX 333 ; N l ; B 64 -17 318 726 ;
-C 109 ; WX 833 ; N m ; B 19 -17 803 469 ;
-C 110 ; WX 556 ; N n ; B 17 -17 521 469 ;
-C 111 ; WX 556 ; N o ; B 48 -17 502 469 ;
-C 112 ; WX 556 ; N p ; B -21 -271 516 469 ;
-C 113 ; WX 537 ; N q ; B 32 -271 513 469 ;
-C 114 ; WX 389 ; N r ; B 20 -17 411 469 ;
-C 115 ; WX 444 ; N s ; B 25 -17 406 469 ;
-C 116 ; WX 389 ; N t ; B 42 -17 409 636 ;
-C 117 ; WX 556 ; N u ; B 22 -17 521 469 ;
-C 118 ; WX 556 ; N v ; B 19 -17 513 469 ;
-C 119 ; WX 833 ; N w ; B 27 -17 802 469 ;
-C 120 ; WX 500 ; N x ; B -8 -17 500 469 ;
-C 121 ; WX 556 ; N y ; B 13 -271 541 469 ;
-C 122 ; WX 500 ; N z ; B 31 -17 470 469 ;
-C 123 ; WX 333 ; N braceleft ; B 18 -105 334 720 ;
-C 124 ; WX 606 ; N bar ; B 259 0 347 720 ;
-C 125 ; WX 333 ; N braceright ; B -1 -105 315 720 ;
-C 126 ; WX 606 ; N asciitilde ; B 51 174 555 329 ;
-C 161 ; WX 333 ; N exclamdown ; B 2 -225 259 479 ;
-C 162 ; WX 500 ; N cent ; B 52 -105 456 547 ;
-C 163 ; WX 500 ; N sterling ; B 21 -5 501 683 ;
-C 164 ; WX 167 ; N fraction ; B -170 0 338 683 ;
-C 165 ; WX 500 ; N yen ; B 11 -3 538 695 ;
-C 166 ; WX 500 ; N florin ; B 8 -242 479 690 ;
-C 167 ; WX 556 ; N section ; B 47 -151 497 695 ;
-C 168 ; WX 500 ; N currency ; B 32 96 468 533 ;
-C 169 ; WX 250 ; N quotesingle ; B 127 467 293 720 ;
-C 170 ; WX 500 ; N quotedblleft ; B 65 431 511 720 ;
-C 171 ; WX 500 ; N guillemotleft ; B 35 43 458 446 ;
-C 172 ; WX 333 ; N guilsinglleft ; B 60 43 292 446 ;
-C 173 ; WX 333 ; N guilsinglright ; B 35 40 267 443 ;
-C 174 ; WX 611 ; N fi ; B -130 -271 588 726 ;
-C 175 ; WX 611 ; N fl ; B -130 -271 631 726 ;
-C 177 ; WX 500 ; N endash ; B -12 214 512 282 ;
-C 178 ; WX 556 ; N dagger ; B 67 -3 499 685 ;
-C 179 ; WX 556 ; N daggerdbl ; B 33 -153 537 693 ;
-C 180 ; WX 250 ; N periodcentered ; B 67 172 206 324 ;
-C 182 ; WX 556 ; N paragraph ; B 14 -204 629 681 ;
-C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ;
-C 184 ; WX 250 ; N quotesinglbase ; B -3 -144 220 145 ;
-C 185 ; WX 500 ; N quotedblbase ; B -18 -144 424 145 ;
-C 186 ; WX 500 ; N quotedblright ; B 73 431 519 720 ;
-C 187 ; WX 500 ; N guillemotright ; B 35 40 458 443 ;
-C 188 ; WX 1000 ; N ellipsis ; B 91 -17 896 135 ;
-C 189 ; WX 1000 ; N perthousand ; B 65 -17 912 691 ;
-C 191 ; WX 444 ; N questiondown ; B -12 -226 347 479 ;
-C 193 ; WX 333 ; N grave ; B 110 518 322 699 ;
-C 194 ; WX 333 ; N acute ; B 153 518 392 699 ;
-C 195 ; WX 333 ; N circumflex ; B 88 510 415 684 ;
-C 196 ; WX 333 ; N tilde ; B 82 535 441 654 ;
-C 197 ; WX 333 ; N macron ; B 76 538 418 608 ;
-C 198 ; WX 333 ; N breve ; B 96 519 412 681 ;
-C 199 ; WX 333 ; N dotaccent ; B 202 537 325 668 ;
-C 200 ; WX 333 ; N dieresis ; B 90 537 426 668 ;
-C 202 ; WX 556 ; N ring ; B 277 514 477 714 ;
-C 203 ; WX 333 ; N cedilla ; B 12 -218 248 5 ;
-C 205 ; WX 333 ; N hungarumlaut ; B -28 518 409 699 ;
-C 206 ; WX 333 ; N ogonek ; B 32 -206 238 -17 ;
-C 207 ; WX 333 ; N caron ; B 113 510 445 684 ;
-C 208 ; WX 1000 ; N emdash ; B -12 214 1012 282 ;
-C 225 ; WX 944 ; N AE ; B -29 -4 927 681 ;
-C 227 ; WX 333 ; N ordfeminine ; B 47 391 355 684 ;
-C 232 ; WX 611 ; N Lslash ; B 6 -3 578 681 ;
-C 233 ; WX 833 ; N Oslash ; B 57 -54 797 730 ;
-C 234 ; WX 944 ; N OE ; B 39 -17 961 695 ;
-C 235 ; WX 333 ; N ordmasculine ; B 51 391 346 683 ;
-C 241 ; WX 738 ; N ae ; B 44 -17 711 469 ;
-C 245 ; WX 333 ; N dotlessi ; B 26 -17 293 469 ;
-C 248 ; WX 333 ; N lslash ; B 13 -17 365 726 ;
-C 249 ; WX 556 ; N oslash ; B 14 -50 522 506 ;
-C 250 ; WX 778 ; N oe ; B 48 -17 755 469 ;
-C 251 ; WX 556 ; N germandbls ; B -131 -271 549 726 ;
-C -1 ; WX 778 ; N Udieresis ; B 83 -17 825 880 ;
-C -1 ; WX 778 ; N Uacute ; B 83 -17 825 911 ;
-C -1 ; WX 556 ; N Scedilla ; B 50 -218 517 695 ;
-C -1 ; WX 611 ; N Tcaron ; B 56 -3 674 896 ;
-C -1 ; WX 556 ; N Scaron ; B 50 -17 562 896 ;
-C -1 ; WX 722 ; N Rcaron ; B 4 -3 697 896 ;
-C -1 ; WX 722 ; N Racute ; B 4 -3 697 911 ;
-C -1 ; WX 556 ; N Sacute ; B 50 -17 544 911 ;
-C -1 ; WX 833 ; N Otilde ; B 76 -17 794 866 ;
-C -1 ; WX 556 ; N ucircumflex ; B 22 -17 521 684 ;
-C -1 ; WX 833 ; N Ohungarumlaut ; B 76 -17 794 911 ;
-C -1 ; WX 778 ; N Uhungarumlaut ; B 83 -17 825 911 ;
-C -1 ; WX 611 ; N Yacute ; B 54 -3 675 911 ;
-C -1 ; WX 778 ; N Eth ; B 0 -3 747 682 ;
-C -1 ; WX 778 ; N Dcroat ; B 0 -3 747 682 ;
-C -1 ; WX 667 ; N Zacute ; B 1 -3 676 911 ;
-C -1 ; WX 778 ; N Uring ; B 83 -17 825 926 ;
-C -1 ; WX 500 ; N gbreve ; B -50 -271 529 681 ;
-C -1 ; WX 444 ; N eogonek ; B 28 -189 418 469 ;
-C -1 ; WX 444 ; N edotaccent ; B 28 -17 418 668 ;
-C -1 ; WX 444 ; N ecaron ; B 28 -17 501 684 ;
-C -1 ; WX 778 ; N Ugrave ; B 83 -17 825 911 ;
-C -1 ; WX 667 ; N Thorn ; B 11 -3 644 681 ;
-C -1 ; WX 444 ; N eacute ; B 28 -17 448 699 ;
-C -1 ; WX 444 ; N edieresis ; B 28 -17 482 668 ;
-C -1 ; WX 667 ; N dcaron ; B 38 -17 727 726 ;
-C -1 ; WX 444 ; N ccedilla ; B 32 -218 436 469 ;
-C -1 ; WX 444 ; N ccaron ; B 32 -17 504 684 ;
-C -1 ; WX 444 ; N cacute ; B 32 -17 468 699 ;
-C -1 ; WX 556 ; N aogonek ; B 44 -189 519 470 ;
-C -1 ; WX 556 ; N aring ; B 44 -17 519 714 ;
-C -1 ; WX 556 ; N atilde ; B 44 -17 553 654 ;
-C -1 ; WX 556 ; N abreve ; B 44 -17 524 681 ;
-C -1 ; WX 444 ; N egrave ; B 28 -17 418 699 ;
-C -1 ; WX 556 ; N agrave ; B 44 -17 519 699 ;
-C -1 ; WX 556 ; N aacute ; B 44 -17 519 699 ;
-C -1 ; WX 556 ; N adieresis ; B 44 -17 538 668 ;
-C -1 ; WX 778 ; N Uogonek ; B 83 -189 825 681 ;
-C -1 ; WX 556 ; N ugrave ; B 22 -17 521 699 ;
-C -1 ; WX 556 ; N uacute ; B 22 -17 521 699 ;
-C -1 ; WX 556 ; N udieresis ; B 22 -17 538 668 ;
-C -1 ; WX 389 ; N tcaron ; B 42 -17 502 720 ;
-C -1 ; WX 444 ; N scommaaccent ; B 25 -300 406 469 ;
-C -1 ; WX 667 ; N Zcaron ; B 1 -3 676 896 ;
-C -1 ; WX 444 ; N ecircumflex ; B 28 -17 471 684 ;
-C -1 ; WX 778 ; N Ucircumflex ; B 83 -17 825 896 ;
-C -1 ; WX 556 ; N acircumflex ; B 44 -17 527 684 ;
-C -1 ; WX 667 ; N Zdotaccent ; B 1 -3 676 880 ;
-C -1 ; WX 444 ; N scaron ; B 25 -17 489 684 ;
-C -1 ; WX 722 ; N Amacron ; B -35 -3 685 820 ;
-C -1 ; WX 444 ; N sacute ; B 25 -17 448 699 ;
-C -1 ; WX 611 ; N Tcommaaccent ; B 56 -300 674 681 ;
-C -1 ; WX 611 ; N Ydieresis ; B 54 -3 675 880 ;
-C -1 ; WX 556 ; N thorn ; B -21 -271 516 726 ;
-C -1 ; WX 611 ; N Emacron ; B 11 -3 606 820 ;
-C -1 ; WX 833 ; N Ograve ; B 76 -17 794 911 ;
-C -1 ; WX 833 ; N Oacute ; B 76 -17 794 911 ;
-C -1 ; WX 833 ; N Odieresis ; B 76 -17 794 880 ;
-C -1 ; WX 778 ; N Ntilde ; B -2 -3 829 866 ;
-C -1 ; WX 778 ; N Ncaron ; B -2 -3 829 896 ;
-C -1 ; WX 778 ; N Nacute ; B -2 -3 829 911 ;
-C -1 ; WX 611 ; N Lcaron ; B 26 -3 621 720 ;
-C -1 ; WX 611 ; N Lacute ; B 26 -3 578 911 ;
-C -1 ; WX 389 ; N Idotaccent ; B -1 -3 412 880 ;
-C -1 ; WX 389 ; N racute ; B 20 -17 460 699 ;
-C -1 ; WX 389 ; N Icircumflex ; B -1 -3 443 896 ;
-C -1 ; WX 556 ; N ohungarumlaut ; B 48 -17 608 699 ;
-C -1 ; WX 556 ; N otilde ; B 48 -17 553 654 ;
-C -1 ; WX 500 ; N Euro ; B 46 -17 577 695 ;
-C -1 ; WX 556 ; N ocircumflex ; B 48 -17 515 684 ;
-C -1 ; WX 300 ; N onesuperior ; B 41 271 298 680 ;
-C -1 ; WX 300 ; N twosuperior ; B 26 271 321 683 ;
-C -1 ; WX 300 ; N threesuperior ; B 23 263 310 683 ;
-C -1 ; WX 389 ; N Igrave ; B -1 -3 412 911 ;
-C -1 ; WX 389 ; N Iacute ; B -1 -3 420 911 ;
-C -1 ; WX 389 ; N Imacron ; B -1 -3 446 820 ;
-C -1 ; WX 389 ; N Iogonek ; B -1 -189 412 681 ;
-C -1 ; WX 389 ; N Idieresis ; B -1 -3 454 880 ;
-C -1 ; WX 778 ; N Gbreve ; B 72 -17 750 892 ;
-C -1 ; WX 778 ; N Umacron ; B 83 -17 825 820 ;
-C -1 ; WX 722 ; N Kcommaaccent ; B -10 -300 746 681 ;
-C -1 ; WX 556 ; N ograve ; B 48 -17 502 699 ;
-C -1 ; WX 556 ; N Scommaaccent ; B 50 -300 517 695 ;
-C -1 ; WX 611 ; N Eogonek ; B 11 -189 606 681 ;
-C -1 ; WX 556 ; N oacute ; B 48 -17 504 699 ;
-C -1 ; WX 611 ; N Edotaccent ; B 11 -3 606 880 ;
-C -1 ; WX 333 ; N iogonek ; B 26 -189 312 695 ;
-C -1 ; WX 500 ; N gcommaaccent ; B -50 -271 529 760 ;
-C -1 ; WX 556 ; N odieresis ; B 48 -17 538 668 ;
-C -1 ; WX 556 ; N ntilde ; B 17 -17 553 654 ;
-C -1 ; WX 556 ; N ncaron ; B 17 -17 557 684 ;
-C -1 ; WX 611 ; N Ecaron ; B 11 -3 606 896 ;
-C -1 ; WX 611 ; N Ecircumflex ; B 11 -3 606 896 ;
-C -1 ; WX 444 ; N scedilla ; B 25 -218 406 469 ;
-C -1 ; WX 389 ; N rcaron ; B 20 -17 473 684 ;
-C -1 ; WX 611 ; N Egrave ; B 11 -3 606 911 ;
-C -1 ; WX 611 ; N Eacute ; B 11 -3 606 911 ;
-C -1 ; WX 778 ; N Gcommaaccent ; B 72 -300 750 695 ;
-C -1 ; WX 722 ; N Rcommaaccent ; B 4 -300 697 681 ;
-C -1 ; WX 611 ; N Edieresis ; B 11 -3 606 880 ;
-C -1 ; WX 556 ; N nacute ; B 17 -17 521 699 ;
-C -1 ; WX 556 ; N uogonek ; B 22 -189 521 469 ;
-C -1 ; WX 556 ; N umacron ; B 22 -17 530 608 ;
-C -1 ; WX 778 ; N Dcaron ; B 0 -3 747 896 ;
-C -1 ; WX 429 ; N lcaron ; B 64 -17 488 726 ;
-C -1 ; WX 685 ; N Ccaron ; B 69 -17 711 896 ;
-C -1 ; WX 685 ; N Cacute ; B 69 -17 695 911 ;
-C -1 ; WX 685 ; N Ccedilla ; B 69 -218 695 695 ;
-C -1 ; WX 400 ; N degree ; B 50 383 350 683 ;
-C -1 ; WX 722 ; N Aogonek ; B -35 -189 745 683 ;
-C -1 ; WX 606 ; N minus ; B 51 204 555 292 ;
-C -1 ; WX 606 ; N multiply ; B 72 17 534 479 ;
-C -1 ; WX 606 ; N divide ; B 50 -5 556 501 ;
-C -1 ; WX 722 ; N Aring ; B -35 -3 685 935 ;
-C -1 ; WX 1000 ; N trademark ; B 38 274 961 678 ;
-C -1 ; WX 389 ; N rcommaaccent ; B -14 -300 411 469 ;
-C -1 ; WX 333 ; N lacute ; B 64 -17 432 911 ;
-C -1 ; WX 556 ; N omacron ; B 48 -17 530 608 ;
-C -1 ; WX 722 ; N Atilde ; B -35 -3 685 866 ;
-C -1 ; WX 333 ; N icircumflex ; B 26 -17 403 684 ;
-C -1 ; WX 333 ; N igrave ; B 26 -17 322 699 ;
-C -1 ; WX 556 ; N ncommaaccent ; B 17 -300 521 469 ;
-C -1 ; WX 333 ; N lcommaaccent ; B -1 -300 318 726 ;
-C -1 ; WX 606 ; N plusminus ; B 50 0 556 568 ;
-C -1 ; WX 750 ; N onehalf ; B 14 -2 736 683 ;
-C -1 ; WX 750 ; N onequarter ; B 18 -2 732 683 ;
-C -1 ; WX 750 ; N threequarters ; B 18 -2 732 683 ;
-C -1 ; WX 333 ; N iacute ; B 26 -17 392 699 ;
-C -1 ; WX 722 ; N Abreve ; B -35 -3 685 892 ;
-C -1 ; WX 556 ; N kcommaaccent ; B 34 -300 528 726 ;
-C -1 ; WX 833 ; N Omacron ; B 76 -17 794 820 ;
-C -1 ; WX 333 ; N imacron ; B 26 -17 418 608 ;
-C -1 ; WX 444 ; N emacron ; B 28 -17 474 608 ;
-C -1 ; WX 556 ; N amacron ; B 44 -17 530 608 ;
-C -1 ; WX 389 ; N tcommaaccent ; B 27 -300 409 636 ;
-C -1 ; WX 556 ; N ydieresis ; B 13 -271 541 668 ;
-C -1 ; WX 500 ; N zdotaccent ; B 31 -17 470 668 ;
-C -1 ; WX 500 ; N zcaron ; B 31 -17 517 684 ;
-C -1 ; WX 500 ; N zacute ; B 31 -17 476 699 ;
-C -1 ; WX 556 ; N yacute ; B 13 -271 541 699 ;
-C -1 ; WX 556 ; N uhungarumlaut ; B 22 -17 600 699 ;
-C -1 ; WX 556 ; N eth ; B 48 -17 546 726 ;
-C -1 ; WX 556 ; N uring ; B 22 -17 521 714 ;
-C -1 ; WX 833 ; N Ocircumflex ; B 76 -17 794 896 ;
-C -1 ; WX 333 ; N commaaccent ; B 39 -300 242 -40 ;
-C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ;
-C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ;
-C -1 ; WX 722 ; N Acircumflex ; B -35 -3 685 896 ;
-C -1 ; WX 333 ; N idieresis ; B 26 -17 426 688 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 606 ; N notequal ; B 51 -32 555 556 ;
-C -1 ; WX 549 ; N radical ; B -15 -96 536 935 ;
-C -1 ; WX 722 ; N Agrave ; B -35 -3 685 911 ;
-C -1 ; WX 722 ; N Aacute ; B -35 -3 685 911 ;
-C -1 ; WX 606 ; N lessequal ; B 49 0 558 663 ;
-C -1 ; WX 606 ; N greaterequal ; B 48 0 557 663 ;
-C -1 ; WX 606 ; N logicalnot ; B 51 107 555 390 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 23 -13 466 750 ;
-C -1 ; WX 778 ; N Ncommaaccent ; B -2 -300 829 681 ;
-C -1 ; WX 556 ; N dcroat ; B 38 -17 596 726 ;
-C -1 ; WX 606 ; N brokenbar ; B 259 0 347 720 ;
-C -1 ; WX 611 ; N Lcommaaccent ; B 26 -300 578 681 ;
-C -1 ; WX 722 ; N Adieresis ; B -35 -3 685 880 ;
-C -1 ; WX 556 ; N mu ; B -15 -232 521 469 ;
-C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C -30
-KPX A Ccedilla -29
-KPX A G -31
-KPX A O -37
-KPX A Odieresis -37
-KPX A Q -37
-KPX A T -12
-KPX A U -24
-KPX A Uacute -24
-KPX A Ucircumflex -24
-KPX A Udieresis -24
-KPX A Ugrave -24
-KPX A V -72
-KPX A W -63
-KPX A Y -30
-KPX A a 13
-KPX A b 10
-KPX A c 12
-KPX A ccedilla 12
-KPX A comma 19
-KPX A d 15
-KPX A e 17
-KPX A g -23
-KPX A guillemotleft -27
-KPX A guilsinglleft -40
-KPX A hyphen 0
-KPX A o 3
-KPX A period 17
-KPX A q 19
-KPX A quotedblright -47
-KPX A quoteright -49
-KPX A t -3
-KPX A u 9
-KPX A v -14
-KPX A w -15
-KPX A y -14
-KPX Aacute C -30
-KPX Aacute G -31
-KPX Aacute O -37
-KPX Aacute Q -37
-KPX Aacute T -12
-KPX Aacute U -24
-KPX Aacute V -72
-KPX Aacute W -63
-KPX Aacute Y -30
-KPX Aacute a 13
-KPX Aacute b 10
-KPX Aacute c 12
-KPX Aacute comma 19
-KPX Aacute d 15
-KPX Aacute e 17
-KPX Aacute g -23
-KPX Aacute guillemotleft -27
-KPX Aacute guilsinglleft -40
-KPX Aacute hyphen 0
-KPX Aacute o 3
-KPX Aacute period 17
-KPX Aacute q 19
-KPX Aacute quoteright -49
-KPX Aacute t -3
-KPX Aacute u 9
-KPX Aacute v -14
-KPX Aacute w -15
-KPX Aacute y -14
-KPX Acircumflex C -30
-KPX Acircumflex G -31
-KPX Acircumflex O -37
-KPX Acircumflex Q -37
-KPX Acircumflex T -12
-KPX Acircumflex U -24
-KPX Acircumflex V -72
-KPX Acircumflex W -62
-KPX Acircumflex Y -30
-KPX Acircumflex comma 19
-KPX Acircumflex period 17
-KPX Adieresis C -30
-KPX Adieresis G -31
-KPX Adieresis O -37
-KPX Adieresis Q -37
-KPX Adieresis T -12
-KPX Adieresis U -24
-KPX Adieresis V -72
-KPX Adieresis W -63
-KPX Adieresis Y -30
-KPX Adieresis a 13
-KPX Adieresis b 10
-KPX Adieresis c 12
-KPX Adieresis comma 19
-KPX Adieresis d 15
-KPX Adieresis g -23
-KPX Adieresis guillemotleft -27
-KPX Adieresis guilsinglleft -40
-KPX Adieresis hyphen 0
-KPX Adieresis o 3
-KPX Adieresis period 17
-KPX Adieresis q 19
-KPX Adieresis quotedblright -47
-KPX Adieresis quoteright -49
-KPX Adieresis t -3
-KPX Adieresis u 9
-KPX Adieresis v -14
-KPX Adieresis w -15
-KPX Adieresis y -14
-KPX Agrave C -30
-KPX Agrave G -31
-KPX Agrave O -37
-KPX Agrave Q -37
-KPX Agrave T -12
-KPX Agrave U -24
-KPX Agrave V -72
-KPX Agrave W -63
-KPX Agrave Y -30
-KPX Agrave comma 19
-KPX Agrave period 17
-KPX Aring C -30
-KPX Aring G -31
-KPX Aring O -37
-KPX Aring Q -37
-KPX Aring T -12
-KPX Aring U -24
-KPX Aring V -72
-KPX Aring W -63
-KPX Aring Y -30
-KPX Aring a 13
-KPX Aring b 10
-KPX Aring c 12
-KPX Aring comma 19
-KPX Aring d 15
-KPX Aring e 17
-KPX Aring g -23
-KPX Aring guillemotleft -27
-KPX Aring guilsinglleft -40
-KPX Aring hyphen 0
-KPX Aring o 3
-KPX Aring period 17
-KPX Aring q 19
-KPX Aring quotedblright -47
-KPX Aring quoteright -49
-KPX Aring t -3
-KPX Aring u 9
-KPX Aring v -14
-KPX Aring w -15
-KPX Aring y -14
-KPX Atilde C -30
-KPX Atilde G -31
-KPX Atilde O -37
-KPX Atilde Q -37
-KPX Atilde T -12
-KPX Atilde U -24
-KPX Atilde V -72
-KPX Atilde W -63
-KPX Atilde Y -30
-KPX Atilde comma 19
-KPX Atilde period 17
-KPX B A -6
-KPX B AE -14
-KPX B Aacute -6
-KPX B Acircumflex -6
-KPX B Adieresis -6
-KPX B Aring -6
-KPX B Atilde -6
-KPX B O -5
-KPX B OE 15
-KPX B Oacute -5
-KPX B Ocircumflex -5
-KPX B Odieresis -5
-KPX B Ograve -5
-KPX B Oslash -2
-KPX B V -12
-KPX B W -12
-KPX B Y 8
-KPX C A 20
-KPX C AE 12
-KPX C Aacute 20
-KPX C Adieresis 20
-KPX C Aring 20
-KPX C H 18
-KPX C K 18
-KPX C O -9
-KPX C Oacute -9
-KPX C Odieresis -9
-KPX Ccedilla A 20
-KPX D A -41
-KPX D Aacute -41
-KPX D Acircumflex -41
-KPX D Adieresis -41
-KPX D Agrave -41
-KPX D Aring -41
-KPX D Atilde -41
-KPX D J -15
-KPX D T 8
-KPX D V -33
-KPX D W -27
-KPX D X -41
-KPX D Y -7
-KPX F A -45
-KPX F Aacute -45
-KPX F Acircumflex -45
-KPX F Adieresis -45
-KPX F Agrave -45
-KPX F Aring -45
-KPX F Atilde -45
-KPX F J 23
-KPX F O -9
-KPX F Odieresis -9
-KPX F a -29
-KPX F aacute -29
-KPX F adieresis -29
-KPX F ae -36
-KPX F aring -29
-KPX F comma -57
-KPX F e -15
-KPX F eacute -15
-KPX F hyphen 7
-KPX F i 11
-KPX F j 6
-KPX F o -20
-KPX F oacute -20
-KPX F odieresis -20
-KPX F oe -18
-KPX F oslash -20
-KPX F period -56
-KPX F r 13
-KPX F u 12
-KPX G A 8
-KPX G AE 3
-KPX G Aacute 8
-KPX G Acircumflex 8
-KPX G Adieresis 8
-KPX G Agrave 8
-KPX G Aring 8
-KPX G Atilde 8
-KPX G T -8
-KPX G V -4
-KPX G W -4
-KPX G Y -1
-KPX J A -10
-KPX J AE -14
-KPX J Adieresis -10
-KPX J Aring -10
-KPX K C -33
-KPX K G -34
-KPX K O -40
-KPX K OE -19
-KPX K Oacute -40
-KPX K Odieresis -40
-KPX K S 13
-KPX K T 30
-KPX K a 13
-KPX K adieresis 13
-KPX K ae 10
-KPX K aring 13
-KPX K e 15
-KPX K hyphen -46
-KPX K o 0
-KPX K oacute 0
-KPX K odieresis 0
-KPX K u 9
-KPX K udieresis 9
-KPX K y -15
-KPX L A 42
-KPX L AE 39
-KPX L Aacute 42
-KPX L Adieresis 42
-KPX L Aring 42
-KPX L C 3
-KPX L Ccedilla 3
-KPX L G 2
-KPX L O -1
-KPX L Oacute -1
-KPX L Ocircumflex -1
-KPX L Odieresis -1
-KPX L Ograve -1
-KPX L Otilde -1
-KPX L S 7
-KPX L T -26
-KPX L U -6
-KPX L Udieresis -6
-KPX L V -69
-KPX L W -54
-KPX L Y -43
-KPX L hyphen 35
-KPX L quotedblright -74
-KPX L quoteright -75
-KPX L u 0
-KPX L udieresis 0
-KPX L y -10
-KPX N A -3
-KPX N AE -6
-KPX N Aacute -3
-KPX N Adieresis -3
-KPX N Aring -3
-KPX N C -8
-KPX N Ccedilla -8
-KPX N G -10
-KPX N O -9
-KPX N Oacute -9
-KPX N Odieresis -9
-KPX N a -17
-KPX N aacute -19
-KPX N adieresis -19
-KPX N ae -22
-KPX N aring -19
-KPX N comma -4
-KPX N e -7
-KPX N eacute -8
-KPX N o -13
-KPX N oacute -15
-KPX N odieresis -15
-KPX N oslash -15
-KPX N period -3
-KPX N u -2
-KPX N udieresis -2
-KPX O A -39
-KPX O AE -46
-KPX O Aacute -39
-KPX O Adieresis -39
-KPX O Aring -39
-KPX O T 4
-KPX O V -38
-KPX O W -29
-KPX O X -45
-KPX O Y -12
-KPX Oacute A -39
-KPX Oacute T 4
-KPX Oacute V -38
-KPX Oacute W -29
-KPX Oacute Y -12
-KPX Ocircumflex T 4
-KPX Ocircumflex V -38
-KPX Ocircumflex Y -12
-KPX Odieresis A -39
-KPX Odieresis T 4
-KPX Odieresis V -38
-KPX Odieresis W -29
-KPX Odieresis X -45
-KPX Odieresis Y -12
-KPX Ograve T 4
-KPX Ograve V -38
-KPX Ograve Y -12
-KPX Oslash A -44
-KPX Otilde T 4
-KPX Otilde V -38
-KPX Otilde Y -12
-KPX P A -68
-KPX P AE -77
-KPX P Aacute -68
-KPX P Adieresis -68
-KPX P Aring -68
-KPX P J -10
-KPX P a -38
-KPX P aacute -38
-KPX P adieresis -38
-KPX P ae -10
-KPX P aring -38
-KPX P comma -85
-KPX P e -24
-KPX P eacute -24
-KPX P hyphen -13
-KPX P o -26
-KPX P oacute -26
-KPX P odieresis -26
-KPX P oe -24
-KPX P oslash -27
-KPX P period -84
-KPX R C -25
-KPX R Ccedilla -25
-KPX R G -27
-KPX R O -26
-KPX R OE -5
-KPX R Oacute -26
-KPX R Odieresis -26
-KPX R T -2
-KPX R U -21
-KPX R Udieresis -21
-KPX R V -24
-KPX R W -24
-KPX R Y -4
-KPX R a 18
-KPX R aacute 18
-KPX R adieresis 18
-KPX R ae 15
-KPX R aring 18
-KPX R e 21
-KPX R eacute 21
-KPX R hyphen -23
-KPX R o 6
-KPX R oacute 6
-KPX R odieresis 6
-KPX R oe 6
-KPX R u 15
-KPX R uacute 15
-KPX R udieresis 15
-KPX R y -9
-KPX S A -1
-KPX S AE -9
-KPX S Aacute -1
-KPX S Adieresis -1
-KPX S Aring -1
-KPX S T 0
-KPX S V 4
-KPX S W 4
-KPX S Y 8
-KPX S t -13
-KPX T A -16
-KPX T AE -19
-KPX T Aacute -16
-KPX T Acircumflex -16
-KPX T Adieresis -16
-KPX T Agrave -16
-KPX T Aring -16
-KPX T Atilde -16
-KPX T C 0
-KPX T G -1
-KPX T J 36
-KPX T O 3
-KPX T OE 26
-KPX T Oacute 3
-KPX T Ocircumflex 3
-KPX T Odieresis 3
-KPX T Ograve 3
-KPX T Oslash 7
-KPX T Otilde 3
-KPX T S 18
-KPX T V 55
-KPX T W 53
-KPX T Y 57
-KPX T a -57
-KPX T ae -59
-KPX T c -58
-KPX T colon -51
-KPX T comma -53
-KPX T e -53
-KPX T g -81
-KPX T guillemotleft -77
-KPX T guilsinglleft -89
-KPX T hyphen -48
-KPX T i -12
-KPX T j -17
-KPX T o -67
-KPX T oslash -61
-KPX T period -56
-KPX T r -60
-KPX T s -49
-KPX T semicolon -53
-KPX T u -61
-KPX T v -69
-KPX T w -72
-KPX T y -64
-KPX U A 47
-KPX U AE 43
-KPX U Aacute 47
-KPX U Acircumflex 47
-KPX U Adieresis 47
-KPX U Aring 47
-KPX U Atilde 47
-KPX U comma 11
-KPX U m 5
-KPX U n 11
-KPX U p 4
-KPX U period 10
-KPX U r 4
-KPX Uacute A 47
-KPX Uacute comma 11
-KPX Uacute m 5
-KPX Uacute n 11
-KPX Uacute p 4
-KPX Uacute period 10
-KPX Uacute r 4
-KPX Ucircumflex A 47
-KPX Udieresis A 47
-KPX Udieresis b 51
-KPX Udieresis comma 11
-KPX Udieresis m 5
-KPX Udieresis n 11
-KPX Udieresis p 4
-KPX Udieresis period 10
-KPX Udieresis r 4
-KPX Ugrave A 47
-KPX V A -73
-KPX V AE -59
-KPX V Aacute -73
-KPX V Acircumflex -73
-KPX V Adieresis -73
-KPX V Agrave -73
-KPX V Aring -73
-KPX V Atilde -73
-KPX V C -33
-KPX V G -34
-KPX V O -33
-KPX V Oacute -33
-KPX V Ocircumflex -33
-KPX V Odieresis -33
-KPX V Ograve -33
-KPX V Oslash -28
-KPX V Otilde -33
-KPX V S -4
-KPX V T 57
-KPX V a -62
-KPX V ae -52
-KPX V colon -46
-KPX V comma -70
-KPX V e -51
-KPX V g -48
-KPX V guillemotleft -53
-KPX V guilsinglleft -66
-KPX V hyphen -24
-KPX V i -3
-KPX V o -58
-KPX V oslash -58
-KPX V period -69
-KPX V r -22
-KPX V semicolon -52
-KPX V u -22
-KPX V y -18
-KPX W A -42
-KPX W AE -46
-KPX W Aacute -42
-KPX W Acircumflex -42
-KPX W Adieresis -42
-KPX W Agrave -42
-KPX W Aring -42
-KPX W Atilde -42
-KPX W C -16
-KPX W G -18
-KPX W O -16
-KPX W Oacute -16
-KPX W Ocircumflex -16
-KPX W Odieresis -16
-KPX W Ograve -16
-KPX W Oslash -12
-KPX W Otilde -16
-KPX W S -7
-KPX W T 53
-KPX W a -37
-KPX W ae -41
-KPX W colon -24
-KPX W comma -35
-KPX W e -26
-KPX W g -32
-KPX W guillemotleft -29
-KPX W guilsinglleft -42
-KPX W hyphen 0
-KPX W i -7
-KPX W o -32
-KPX W oslash -33
-KPX W period -34
-KPX W r -6
-KPX W semicolon -30
-KPX W u -7
-KPX W y -2
-KPX X C -28
-KPX X O -35
-KPX X Odieresis -35
-KPX X Q -35
-KPX X a 15
-KPX X e 19
-KPX X hyphen -30
-KPX X o 5
-KPX X u 11
-KPX X y -12
-KPX Y A 0
-KPX Y AE -4
-KPX Y Aacute 0
-KPX Y Acircumflex 0
-KPX Y Adieresis 0
-KPX Y Agrave 0
-KPX Y Aring 0
-KPX Y Atilde 0
-KPX Y C -23
-KPX Y G -26
-KPX Y O -16
-KPX Y Oacute -16
-KPX Y Ocircumflex -16
-KPX Y Odieresis -16
-KPX Y Ograve -16
-KPX Y Oslash -11
-KPX Y Otilde -16
-KPX Y S 11
-KPX Y T 52
-KPX Y a -42
-KPX Y ae -43
-KPX Y colon -35
-KPX Y comma -37
-KPX Y e -38
-KPX Y g -57
-KPX Y guillemotleft -55
-KPX Y guilsinglleft -68
-KPX Y hyphen -30
-KPX Y i -10
-KPX Y o -52
-KPX Y oslash -45
-KPX Y p -34
-KPX Y period -40
-KPX Y semicolon -37
-KPX Y u -37
-KPX Y v -25
-KPX Z v 0
-KPX Z y -6
-KPX a j -8
-KPX a quoteright 9
-KPX a v -2
-KPX a w -5
-KPX a y 4
-KPX aacute v -2
-KPX aacute w -5
-KPX aacute y 4
-KPX adieresis v -2
-KPX adieresis w -6
-KPX adieresis y 4
-KPX ae v 23
-KPX ae w 19
-KPX ae y 30
-KPX agrave v -2
-KPX agrave w -5
-KPX agrave y 4
-KPX aring v -2
-KPX aring w -5
-KPX aring y 4
-KPX b v 19
-KPX b w 15
-KPX b y 22
-KPX c h 4
-KPX c k 0
-KPX comma one -3
-KPX comma quotedblright 26
-KPX comma quoteright 25
-KPX e quoteright 27
-KPX e t 16
-KPX e v 24
-KPX e w 20
-KPX e x 18
-KPX e y 30
-KPX eacute v 24
-KPX eacute w 20
-KPX eacute y 30
-KPX ecircumflex v 24
-KPX ecircumflex w 20
-KPX ecircumflex y 30
-KPX eight four 32
-KPX eight one 10
-KPX eight seven 12
-KPX f a -23
-KPX f aacute -23
-KPX f adieresis -4
-KPX f ae 10
-KPX f aring -23
-KPX f e -7
-KPX f eacute -7
-KPX f f 50
-KPX f i 20
-KPX f j 16
-KPX f l 50
-KPX f o -7
-KPX f oacute -7
-KPX f odieresis -4
-KPX f oe -8
-KPX f oslash -7
-KPX f quoteright 37
-KPX f s 10
-KPX f t 46
-KPX five four 31
-KPX five one -14
-KPX five seven 2
-KPX four four 43
-KPX four one 15
-KPX four seven 2
-KPX g a -25
-KPX g adieresis -25
-KPX g ae 5
-KPX g aring -25
-KPX g e -12
-KPX g eacute -12
-KPX g l -6
-KPX g oacute -12
-KPX g odieresis -12
-KPX g r 24
-KPX guillemotright A -33
-KPX guillemotright AE -42
-KPX guillemotright Aacute -33
-KPX guillemotright Adieresis -33
-KPX guillemotright Aring -33
-KPX guillemotright T -76
-KPX guillemotright V -63
-KPX guillemotright W -50
-KPX guillemotright Y -81
-KPX guilsinglright A -45
-KPX guilsinglright AE -54
-KPX guilsinglright Aacute -45
-KPX guilsinglright Adieresis -45
-KPX guilsinglright Aring -45
-KPX guilsinglright T -88
-KPX guilsinglright V -75
-KPX guilsinglright W -62
-KPX guilsinglright Y -93
-KPX h quoteright 12
-KPX h y 12
-KPX hyphen A 2
-KPX hyphen AE -8
-KPX hyphen Aacute 2
-KPX hyphen Adieresis 2
-KPX hyphen Aring 2
-KPX hyphen T -40
-KPX hyphen V -25
-KPX hyphen W -13
-KPX hyphen Y -50
-KPX i T 7
-KPX i j -7
-KPX k a 10
-KPX k aacute 10
-KPX k adieresis 10
-KPX k ae 10
-KPX k aring 10
-KPX k comma 7
-KPX k e 17
-KPX k eacute 17
-KPX k g -19
-KPX k hyphen -47
-KPX k o 6
-KPX k oacute 6
-KPX k odieresis 6
-KPX k period 10
-KPX k s 13
-KPX k u 4
-KPX k udieresis 4
-KPX l v -10
-KPX l y -3
-KPX m p 9
-KPX m v 5
-KPX m w 1
-KPX m y 12
-KPX n T -38
-KPX n p 9
-KPX n quoteright 13
-KPX n v 4
-KPX n w 0
-KPX n y 11
-KPX nine four 23
-KPX nine one 14
-KPX nine seven 9
-KPX o T -70
-KPX o quoteright 9
-KPX o t -4
-KPX o v 14
-KPX o w 10
-KPX o x 3
-KPX o y 16
-KPX oacute v 14
-KPX oacute w 10
-KPX oacute y 16
-KPX ocircumflex t -4
-KPX odieresis t -4
-KPX odieresis v 14
-KPX odieresis w 10
-KPX odieresis x 3
-KPX odieresis y 16
-KPX ograve v 14
-KPX ograve w 10
-KPX ograve y 16
-KPX one comma 3
-KPX one eight -2
-KPX one five 17
-KPX one four -25
-KPX one nine 3
-KPX one one 3
-KPX one period 0
-KPX one seven -10
-KPX one six -17
-KPX one three 20
-KPX one two 24
-KPX one zero -14
-KPX p t 9
-KPX p y 24
-KPX period one 1
-KPX period quotedblright 16
-KPX period quoteright 15
-KPX q c 0
-KPX q u 11
-KPX quotedblbase A 23
-KPX quotedblbase AE 17
-KPX quotedblbase T -42
-KPX quotedblbase V -60
-KPX quotedblbase W -43
-KPX quotedblbase Y -57
-KPX quotedblleft A -90
-KPX quotedblleft AE -99
-KPX quotedblleft Aacute -90
-KPX quotedblleft Adieresis -90
-KPX quotedblleft Aring -90
-KPX quotedblleft T 14
-KPX quotedblleft V 21
-KPX quotedblleft W 20
-KPX quotedblleft Y 18
-KPX quotedblright A -85
-KPX quotedblright AE -94
-KPX quotedblright Aacute -85
-KPX quotedblright Adieresis -85
-KPX quotedblright Aring -85
-KPX quotedblright T 20
-KPX quotedblright V 26
-KPX quotedblright W 25
-KPX quotedblright Y 23
-KPX quoteleft A -89
-KPX quoteleft AE -98
-KPX quoteleft Aacute -89
-KPX quoteleft Adieresis -89
-KPX quoteleft Aring -89
-KPX quoteleft T 15
-KPX quoteleft V 22
-KPX quoteleft W 21
-KPX quoteleft Y 19
-KPX quoteright A -83
-KPX quoteright AE -91
-KPX quoteright Aacute -83
-KPX quoteright Adieresis -83
-KPX quoteright Aring -83
-KPX quoteright comma -45
-KPX quoteright d -49
-KPX quoteright o -42
-KPX quoteright period -44
-KPX quoteright r -5
-KPX quoteright s -24
-KPX quoteright t -9
-KPX quoteright v 13
-KPX quoteright w 9
-KPX quoteright y 0
-KPX r a -1
-KPX r aacute -1
-KPX r acircumflex -1
-KPX r adieresis -1
-KPX r ae 0
-KPX r agrave -1
-KPX r aring -1
-KPX r c 14
-KPX r ccedilla 14
-KPX r colon 8
-KPX r comma -52
-KPX r d 5
-KPX r e 11
-KPX r eacute 11
-KPX r ecircumflex 11
-KPX r egrave 11
-KPX r f 39
-KPX r g 22
-KPX r h 2
-KPX r hyphen 17
-KPX r i 39
-KPX r j 33
-KPX r k -2
-KPX r l -7
-KPX r m 41
-KPX r n 43
-KPX r o 7
-KPX r oacute 7
-KPX r ocircumflex 7
-KPX r odieresis 7
-KPX r oe 9
-KPX r ograve 7
-KPX r oslash 7
-KPX r p 43
-KPX r period -51
-KPX r q 4
-KPX r quoteright 49
-KPX r r 41
-KPX r s 17
-KPX r semicolon 3
-KPX r t 35
-KPX r u 40
-KPX r v 41
-KPX r w 37
-KPX r x 32
-KPX r y 45
-KPX r z 14
-KPX s quoteright 17
-KPX s t 8
-KPX seven colon -43
-KPX seven comma -63
-KPX seven eight -2
-KPX seven five 9
-KPX seven four -29
-KPX seven one 17
-KPX seven period -62
-KPX seven seven 35
-KPX seven six -13
-KPX seven three 13
-KPX seven two 20
-KPX six four 41
-KPX six one -14
-KPX six seven 5
-KPX t S 11
-KPX t a 3
-KPX t aacute 3
-KPX t adieresis 3
-KPX t ae 3
-KPX t aring 3
-KPX t colon 7
-KPX t e 12
-KPX t eacute 12
-KPX t h 1
-KPX t o 1
-KPX t oacute 1
-KPX t odieresis 1
-KPX t quoteright 25
-KPX t semicolon 1
-KPX three four 29
-KPX three one -6
-KPX three seven -4
-KPX two four 6
-KPX two one 0
-KPX two seven -7
-KPX u quoteright 15
-KPX v a -18
-KPX v aacute -18
-KPX v acircumflex -18
-KPX v adieresis -18
-KPX v ae -24
-KPX v agrave -18
-KPX v aring -18
-KPX v atilde -18
-KPX v c -6
-KPX v colon -13
-KPX v comma -28
-KPX v e -6
-KPX v eacute -6
-KPX v ecircumflex -6
-KPX v egrave -6
-KPX v g -2
-KPX v hyphen 20
-KPX v l -19
-KPX v o -12
-KPX v oacute -12
-KPX v odieresis -12
-KPX v ograve -12
-KPX v oslash -13
-KPX v period -28
-KPX v s -7
-KPX v semicolon -20
-KPX w a -12
-KPX w aacute -12
-KPX w acircumflex -12
-KPX w adieresis -12
-KPX w ae -19
-KPX w agrave -12
-KPX w aring -12
-KPX w atilde -12
-KPX w c 0
-KPX w colon -8
-KPX w comma -23
-KPX w e -1
-KPX w eacute -1
-KPX w ecircumflex -1
-KPX w egrave -1
-KPX w g 3
-KPX w hyphen 26
-KPX w l -13
-KPX w o -7
-KPX w oacute -7
-KPX w odieresis -7
-KPX w ograve -7
-KPX w oslash -7
-KPX w period -24
-KPX w s -1
-KPX w semicolon -14
-KPX x a 9
-KPX x c 14
-KPX x e 17
-KPX x eacute 17
-KPX x o 6
-KPX x q 15
-KPX y a -10
-KPX y aacute -10
-KPX y acircumflex -10
-KPX y adieresis -10
-KPX y ae -15
-KPX y agrave -10
-KPX y aring -10
-KPX y atilde -10
-KPX y c 0
-KPX y colon -5
-KPX y comma -9
-KPX y e 0
-KPX y eacute 0
-KPX y ecircumflex 0
-KPX y egrave 0
-KPX y g -6
-KPX y hyphen 17
-KPX y l -11
-KPX y o -6
-KPX y oacute -6
-KPX y odieresis -6
-KPX y ograve -6
-KPX y oslash -6
-KPX y period -8
-KPX y s -1
-KPX y semicolon -11
-KPX zero four 32
-KPX zero one 12
-KPX zero seven 7
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/p052024l.pfb b/Master/xemtex/gsfonts/p052024l.pfb
deleted file mode 100644
index 9374ec89a46..00000000000
--- a/Master/xemtex/gsfonts/p052024l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/p052024l.pfm b/Master/xemtex/gsfonts/p052024l.pfm
deleted file mode 100644
index 0094579652b..00000000000
--- a/Master/xemtex/gsfonts/p052024l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/s050000l.afm b/Master/xemtex/gsfonts/s050000l.afm
deleted file mode 100644
index 897e56b54e2..00000000000
--- a/Master/xemtex/gsfonts/s050000l.afm
+++ /dev/null
@@ -1,213 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright URW Software, Copyright 1997 by URW
-Comment Creation Date: 10/21/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName StandardSymL
-FullName Standard Symbols L
-FamilyName Standard Symbols L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -229
-UnderlineThickness 46
-Version 001.005
-Notice URW Software, Copyright 1997 by URW
-EncodingScheme FontSpecific
-FontBBox -180 -293 1090 1010
-CapHeight 673
-XHeight 500
-Descender -222
-Ascender 673
-StartCharMetrics 190
-C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 333 ; N exclam ; B 128 -13 240 686 ;
-C 34 ; WX 713 ; N universal ; B 31 0 681 673 ;
-C 35 ; WX 500 ; N numbersign ; B 20 0 481 631 ;
-C 36 ; WX 549 ; N existential ; B 25 0 478 673 ;
-C 37 ; WX 833 ; N percent ; B 63 -7 771 673 ;
-C 38 ; WX 778 ; N ampersand ; B 41 -13 750 675 ;
-C 39 ; WX 439 ; N suchthat ; B 48 -13 414 503 ;
-C 40 ; WX 333 ; N parenleft ; B 53 -172 300 680 ;
-C 41 ; WX 333 ; N parenright ; B 30 -172 277 680 ;
-C 42 ; WX 500 ; N asteriskmath ; B 65 127 427 546 ;
-C 43 ; WX 549 ; N plus ; B 10 0 539 533 ;
-C 44 ; WX 250 ; N comma ; B 56 -120 194 102 ;
-C 45 ; WX 549 ; N minus ; B 11 239 535 294 ;
-C 46 ; WX 250 ; N period ; B 69 -13 181 100 ;
-C 47 ; WX 278 ; N slash ; B 0 0 254 673 ;
-C 48 ; WX 500 ; N zero ; B 23 -13 471 686 ;
-C 49 ; WX 500 ; N one ; B 117 0 390 673 ;
-C 50 ; WX 500 ; N two ; B 25 0 475 686 ;
-C 51 ; WX 500 ; N three ; B 39 -13 435 686 ;
-C 52 ; WX 500 ; N four ; B 16 0 469 680 ;
-C 53 ; WX 500 ; N five ; B 29 -13 443 699 ;
-C 54 ; WX 500 ; N six ; B 36 -13 468 685 ;
-C 55 ; WX 500 ; N seven ; B 24 -7 448 673 ;
-C 56 ; WX 500 ; N eight ; B 54 -13 440 686 ;
-C 57 ; WX 500 ; N nine ; B 31 -13 460 686 ;
-C 58 ; WX 278 ; N colon ; B 81 -13 193 463 ;
-C 59 ; WX 278 ; N semicolon ; B 83 -120 221 463 ;
-C 60 ; WX 549 ; N less ; B 26 0 523 522 ;
-C 61 ; WX 549 ; N equal ; B 11 142 537 391 ;
-C 62 ; WX 549 ; N greater ; B 26 0 523 522 ;
-C 63 ; WX 444 ; N question ; B 70 -13 412 686 ;
-C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ;
-C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ;
-C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ;
-C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ;
-C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ;
-C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ;
-C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ;
-C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ;
-C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ;
-C 74 ; WX 631 ; N theta1 ; B 18 -13 623 686 ;
-C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ;
-C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ;
-C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ;
-C 78 ; WX 722 ; N Nu ; B 29 0 720 673 ;
-C 79 ; WX 722 ; N Omicron ; B 41 -13 715 686 ;
-C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ;
-C 81 ; WX 741 ; N Theta ; B 41 -13 715 686 ;
-C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ;
-C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ;
-C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ;
-C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ;
-C 86 ; WX 439 ; N sigma1 ; B 40 -222 436 513 ;
-C 87 ; WX 768 ; N Omega ; B 34 0 736 686 ;
-C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ;
-C 89 ; WX 795 ; N Psi ; B 15 0 781 686 ;
-C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ;
-C 91 ; WX 333 ; N bracketleft ; B 86 -165 299 673 ;
-C 92 ; WX 863 ; N therefore ; B 163 -13 701 433 ;
-C 93 ; WX 333 ; N bracketright ; B 33 -165 246 673 ;
-C 94 ; WX 658 ; N perpendicular ; B 15 0 652 673 ;
-C 95 ; WX 500 ; N underscore ; B -2 -252 502 -206 ;
-C 96 ; WX 500 ; N radicalex ; B 480 857 1090 913 ;
-C 97 ; WX 631 ; N alpha ; B 41 -13 622 513 ;
-C 98 ; WX 549 ; N beta ; B 61 -222 515 740 ;
-C 99 ; WX 549 ; N chi ; B 12 -210 522 513 ;
-C 100 ; WX 494 ; N delta ; B 40 -13 481 740 ;
-C 101 ; WX 439 ; N epsilon ; B 22 -13 427 513 ;
-C 102 ; WX 521 ; N phi ; B 27 -222 490 686 ;
-C 103 ; WX 411 ; N gamma ; B 5 -219 484 513 ;
-C 104 ; WX 603 ; N eta ; B 0 -222 527 513 ;
-C 105 ; WX 329 ; N iota ; B 0 -13 301 513 ;
-C 106 ; WX 603 ; N phi1 ; B 36 -222 587 513 ;
-C 107 ; WX 549 ; N kappa ; B 33 0 558 513 ;
-C 108 ; WX 549 ; N lambda ; B 24 -13 548 740 ;
-C 109 ; WX 576 ; N mu ; B 33 -219 567 500 ;
-C 110 ; WX 521 ; N nu ; B -9 -13 475 513 ;
-C 111 ; WX 549 ; N omicron ; B 35 -13 501 513 ;
-C 112 ; WX 549 ; N pi ; B 10 -13 530 500 ;
-C 113 ; WX 521 ; N theta ; B 43 -13 485 686 ;
-C 114 ; WX 549 ; N rho ; B 50 -220 490 513 ;
-C 115 ; WX 603 ; N sigma ; B 30 -13 588 500 ;
-C 116 ; WX 439 ; N tau ; B 10 -13 418 500 ;
-C 117 ; WX 576 ; N upsilon ; B 7 -13 535 513 ;
-C 118 ; WX 713 ; N omega1 ; B 12 -13 671 583 ;
-C 119 ; WX 686 ; N omega ; B 42 -13 684 513 ;
-C 120 ; WX 493 ; N xi ; B 27 -222 469 766 ;
-C 121 ; WX 686 ; N psi ; B 12 -222 701 513 ;
-C 122 ; WX 494 ; N zeta ; B 60 -222 467 756 ;
-C 123 ; WX 480 ; N braceleft ; B 58 -165 397 673 ;
-C 124 ; WX 200 ; N bar ; B 65 -177 135 673 ;
-C 125 ; WX 480 ; N braceright ; B 79 -165 418 673 ;
-C 126 ; WX 549 ; N similar ; B 17 196 529 325 ;
-C 160 ; WX 762 ; N Euro ; B 53 -4 722 671 ;
-C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 687 ;
-C 162 ; WX 247 ; N minute ; B 27 476 228 735 ;
-C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
-C 164 ; WX 167 ; N fraction ; B -180 0 340 673 ;
-C 165 ; WX 713 ; N infinity ; B 26 115 688 414 ;
-C 166 ; WX 500 ; N florin ; B 2 -174 494 687 ;
-C 167 ; WX 753 ; N club ; B 86 -26 660 544 ;
-C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ;
-C 169 ; WX 753 ; N heart ; B 117 -33 631 528 ;
-C 170 ; WX 753 ; N spade ; B 113 -36 629 591 ;
-C 171 ; WX 1042 ; N arrowboth ; B 24 -16 1024 512 ;
-C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ;
-C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ;
-C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ;
-C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ;
-C 176 ; WX 400 ; N degree ; B 50 380 350 686 ;
-C 177 ; WX 549 ; N plusminus ; B 10 0 539 662 ;
-C 178 ; WX 411 ; N second ; B 20 476 413 735 ;
-C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
-C 180 ; WX 549 ; N multiply ; B 17 9 533 525 ;
-C 181 ; WX 713 ; N proportional ; B 27 114 639 416 ;
-C 182 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C 183 ; WX 460 ; N bullet ; B 50 155 410 518 ;
-C 184 ; WX 549 ; N divide ; B 10 2 536 525 ;
-C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ;
-C 186 ; WX 549 ; N equivalence ; B 14 87 538 446 ;
-C 187 ; WX 549 ; N approxequal ; B 14 121 527 408 ;
-C 188 ; WX 1000 ; N ellipsis ; B 111 -13 889 100 ;
-C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ;
-C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ;
-C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ;
-C 192 ; WX 823 ; N aleph ; B 175 0 662 689 ;
-C 193 ; WX 686 ; N Ifraktur ; B 10 -54 578 736 ;
-C 194 ; WX 795 ; N Rfraktur ; B 26 -16 759 730 ;
-C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 574 ;
-C 196 ; WX 768 ; N circlemultiply ; B 43 0 733 691 ;
-C 197 ; WX 768 ; N circleplus ; B 43 0 733 689 ;
-C 198 ; WX 823 ; N emptyset ; B 39 -24 781 718 ;
-C 199 ; WX 768 ; N intersection ; B 40 0 732 507 ;
-C 200 ; WX 768 ; N union ; B 40 -18 732 489 ;
-C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ;
-C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ;
-C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ;
-C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ;
-C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ;
-C 206 ; WX 713 ; N element ; B 45 0 505 470 ;
-C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ;
-C 208 ; WX 768 ; N angle ; B 26 -1 738 672 ;
-C 209 ; WX 713 ; N gradient ; B 36 0 681 687 ;
-C 210 ; WX 790 ; N registerserif ; B 50 -13 740 690 ;
-C 211 ; WX 790 ; N copyrightserif ; B 51 -13 741 690 ;
-C 212 ; WX 890 ; N trademarkserif ; B 18 269 855 673 ;
-C 213 ; WX 823 ; N product ; B 25 -124 803 751 ;
-C 214 ; WX 549 ; N radical ; B 10 -35 515 913 ;
-C 215 ; WX 250 ; N dotmath ; B 69 209 169 311 ;
-C 216 ; WX 713 ; N logicalnot ; B 15 40 680 367 ;
-C 217 ; WX 603 ; N logicaland ; B 23 -1 583 476 ;
-C 218 ; WX 603 ; N logicalor ; B 30 -1 578 476 ;
-C 219 ; WX 1042 ; N arrowdblboth ; B 27 -19 1023 506 ;
-C 220 ; WX 987 ; N arrowdblleft ; B 30 -19 939 506 ;
-C 221 ; WX 603 ; N arrowdblup ; B 39 0 567 909 ;
-C 222 ; WX 987 ; N arrowdblright ; B 45 -19 954 506 ;
-C 223 ; WX 603 ; N arrowdbldown ; B 44 0 572 909 ;
-C 224 ; WX 494 ; N lozenge ; B 18 -1 466 740 ;
-C 225 ; WX 329 ; N angleleft ; B 25 -152 306 757 ;
-C 226 ; WX 790 ; N registersans ; B 50 -12 740 679 ;
-C 227 ; WX 790 ; N copyrightsans ; B 49 -12 739 679 ;
-C 228 ; WX 786 ; N trademarksans ; B 5 277 725 673 ;
-C 229 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C 230 ; WX 384 ; N parenlefttp ; B 40 -293 436 926 ;
-C 231 ; WX 384 ; N parenleftex ; B 40 -79 92 925 ;
-C 232 ; WX 384 ; N parenleftbt ; B 40 -293 436 926 ;
-C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 341 926 ;
-C 234 ; WX 384 ; N bracketleftex ; B 0 -85 55 925 ;
-C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 340 926 ;
-C 236 ; WX 494 ; N bracelefttp ; B 201 -75 439 926 ;
-C 237 ; WX 494 ; N braceleftmid ; B 14 -85 255 935 ;
-C 238 ; WX 494 ; N braceleftbt ; B 201 -70 439 926 ;
-C 239 ; WX 494 ; N braceex ; B 201 -79 255 925 ;
-C 241 ; WX 329 ; N angleright ; B 21 -152 302 757 ;
-C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ;
-C 243 ; WX 686 ; N integraltp ; B 332 -83 715 922 ;
-C 244 ; WX 686 ; N integralex ; B 332 -88 415 975 ;
-C 245 ; WX 686 ; N integralbt ; B 39 -81 415 921 ;
-C 246 ; WX 384 ; N parenrighttp ; B 54 -293 450 926 ;
-C 247 ; WX 384 ; N parenrightex ; B 398 -70 450 935 ;
-C 248 ; WX 384 ; N parenrightbt ; B 54 -293 450 926 ;
-C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 360 926 ;
-C 250 ; WX 384 ; N bracketrightex ; B 305 -85 360 925 ;
-C 251 ; WX 384 ; N bracketrightbt ; B 20 -80 360 926 ;
-C 252 ; WX 494 ; N bracerighttp ; B 17 -75 255 926 ;
-C 253 ; WX 494 ; N bracerightmid ; B 201 -85 442 935 ;
-C 254 ; WX 494 ; N bracerightbt ; B 17 -70 255 926 ;
-C -1 ; WX 250 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/s050000l.pfb b/Master/xemtex/gsfonts/s050000l.pfb
deleted file mode 100644
index 84774010701..00000000000
--- a/Master/xemtex/gsfonts/s050000l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/s050000l.pfm b/Master/xemtex/gsfonts/s050000l.pfm
deleted file mode 100644
index 71f4d27eb85..00000000000
--- a/Master/xemtex/gsfonts/s050000l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/z003034l.afm b/Master/xemtex/gsfonts/z003034l.afm
deleted file mode 100644
index 44df48f26bb..00000000000
--- a/Master/xemtex/gsfonts/z003034l.afm
+++ /dev/null
@@ -1,1341 +0,0 @@
-StartFontMetrics 3.0
-Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-Comment Creation Date: 12/22/1999
-Comment See the file PUBLIC (Aladdin Free Public License) for license conditions.
-FontName URWChanceryL-MediItal
-FullName URW Chancery L Medium Italic
-FamilyName URW Chancery L
-Weight Medium
-ItalicAngle -14.0
-IsFixedPitch false
-UnderlinePosition -120
-UnderlineThickness 50
-Version 1.05
-Notice (URW)++,Copyright 1999 by (URW)++ Design & Development
-EncodingScheme AdobeStandardEncoding
-FontBBox -133 -290 1078 913
-CapHeight 573
-XHeight 391
-Descender -248
-Ascender 677
-StartCharMetrics 316
-C 32 ; WX 220 ; N space ; B 0 0 0 0 ;
-C 33 ; WX 280 ; N exclam ; B 109 -9 347 587 ;
-C 34 ; WX 220 ; N quotedbl ; B 170 405 333 591 ;
-C 35 ; WX 440 ; N numbersign ; B 63 -1 596 575 ;
-C 36 ; WX 440 ; N dollar ; B 60 -144 461 675 ;
-C 37 ; WX 680 ; N percent ; B 162 -7 701 584 ;
-C 38 ; WX 780 ; N ampersand ; B 121 -17 855 557 ;
-C 39 ; WX 240 ; N quoteright ; B 228 358 358 578 ;
-C 40 ; WX 260 ; N parenleft ; B 116 -165 412 668 ;
-C 41 ; WX 220 ; N parenright ; B 17 -166 313 667 ;
-C 42 ; WX 420 ; N asterisk ; B 220 377 512 677 ;
-C 43 ; WX 520 ; N plus ; B 103 14 513 424 ;
-C 44 ; WX 220 ; N comma ; B 30 -98 215 173 ;
-C 45 ; WX 280 ; N hyphen ; B 115 173 300 237 ;
-C 46 ; WX 220 ; N period ; B 107 -9 228 128 ;
-C 47 ; WX 340 ; N slash ; B -6 -170 535 679 ;
-C 48 ; WX 440 ; N zero ; B 94 -7 489 576 ;
-C 49 ; WX 440 ; N one ; B 82 0 434 582 ;
-C 50 ; WX 440 ; N two ; B 47 -17 469 572 ;
-C 51 ; WX 440 ; N three ; B 36 -6 458 575 ;
-C 52 ; WX 440 ; N four ; B 69 -25 455 585 ;
-C 53 ; WX 440 ; N five ; B 67 -8 565 640 ;
-C 54 ; WX 440 ; N six ; B 95 -8 532 585 ;
-C 55 ; WX 440 ; N seven ; B 165 -18 541 611 ;
-C 56 ; WX 440 ; N eight ; B 75 -10 494 572 ;
-C 57 ; WX 440 ; N nine ; B 42 -8 480 576 ;
-C 58 ; WX 260 ; N colon ; B 98 -9 289 408 ;
-C 59 ; WX 240 ; N semicolon ; B 29 -98 277 408 ;
-C 60 ; WX 520 ; N less ; B 120 2 557 449 ;
-C 61 ; WX 520 ; N equal ; B 108 108 518 330 ;
-C 62 ; WX 520 ; N greater ; B 119 2 556 449 ;
-C 63 ; WX 380 ; N question ; B 130 -9 497 582 ;
-C 64 ; WX 700 ; N at ; B 102 -31 765 592 ;
-C 65 ; WX 620 ; N A ; B 23 -13 687 594 ;
-C 66 ; WX 600 ; N B ; B 75 -2 642 616 ;
-C 67 ; WX 520 ; N C ; B 88 -73 635 591 ;
-C 68 ; WX 700 ; N D ; B 86 0 759 614 ;
-C 69 ; WX 620 ; N E ; B 76 -8 668 586 ;
-C 70 ; WX 580 ; N F ; B 60 -114 733 620 ;
-C 71 ; WX 620 ; N G ; B 118 -236 670 591 ;
-C 72 ; WX 680 ; N H ; B 33 -11 908 678 ;
-C 73 ; WX 380 ; N I ; B 81 0 481 573 ;
-C 74 ; WX 400 ; N J ; B 1 -122 491 572 ;
-C 75 ; WX 660 ; N K ; B 88 -147 851 577 ;
-C 76 ; WX 580 ; N L ; B 33 -6 631 577 ;
-C 77 ; WX 840 ; N M ; B 58 -13 1009 670 ;
-C 78 ; WX 700 ; N N ; B 40 -163 915 677 ;
-C 79 ; WX 600 ; N O ; B 104 -13 652 591 ;
-C 80 ; WX 540 ; N P ; B 37 1 645 601 ;
-C 81 ; WX 600 ; N Q ; B 104 -191 851 591 ;
-C 82 ; WX 600 ; N R ; B 38 -156 826 611 ;
-C 83 ; WX 460 ; N S ; B 0 -71 517 586 ;
-C 84 ; WX 500 ; N T ; B 58 0 718 649 ;
-C 85 ; WX 740 ; N U ; B 116 -14 778 578 ;
-C 86 ; WX 640 ; N V ; B 104 -12 809 685 ;
-C 87 ; WX 880 ; N W ; B 104 -17 1035 677 ;
-C 88 ; WX 560 ; N X ; B 0 -13 671 580 ;
-C 89 ; WX 560 ; N Y ; B 31 -152 763 608 ;
-C 90 ; WX 620 ; N Z ; B 62 -18 676 597 ;
-C 91 ; WX 240 ; N bracketleft ; B 47 -165 404 665 ;
-C 92 ; WX 480 ; N backslash ; B 185 0 484 579 ;
-C 93 ; WX 320 ; N bracketright ; B 23 -165 381 665 ;
-C 94 ; WX 520 ; N asciicircum ; B 212 447 472 681 ;
-C 95 ; WX 500 ; N underscore ; B 0 -145 500 -95 ;
-C 96 ; WX 240 ; N quoteleft ; B 229 435 384 676 ;
-C 97 ; WX 420 ; N a ; B 87 -13 492 411 ;
-C 98 ; WX 420 ; N b ; B 87 -17 466 677 ;
-C 99 ; WX 340 ; N c ; B 87 -13 383 411 ;
-C 100 ; WX 440 ; N d ; B 87 -13 629 677 ;
-C 101 ; WX 340 ; N e ; B 87 -13 380 411 ;
-C 102 ; WX 320 ; N f ; B -99 -246 541 680 ;
-C 103 ; WX 400 ; N g ; B -78 -247 481 410 ;
-C 104 ; WX 440 ; N h ; B 75 -15 506 678 ;
-C 105 ; WX 240 ; N i ; B 81 -13 311 616 ;
-C 106 ; WX 220 ; N j ; B -133 -247 303 616 ;
-C 107 ; WX 440 ; N k ; B 87 -153 655 675 ;
-C 108 ; WX 240 ; N l ; B 87 -13 434 678 ;
-C 109 ; WX 620 ; N m ; B 81 -10 693 411 ;
-C 110 ; WX 460 ; N n ; B 81 -16 520 411 ;
-C 111 ; WX 400 ; N o ; B 87 -13 449 411 ;
-C 112 ; WX 440 ; N p ; B -8 -248 482 411 ;
-C 113 ; WX 400 ; N q ; B 87 -249 485 479 ;
-C 114 ; WX 300 ; N r ; B 81 -10 409 411 ;
-C 115 ; WX 320 ; N s ; B 41 -13 377 411 ;
-C 116 ; WX 320 ; N t ; B 96 -13 392 503 ;
-C 117 ; WX 460 ; N u ; B 82 -13 518 415 ;
-C 118 ; WX 440 ; N v ; B 87 -13 510 437 ;
-C 119 ; WX 680 ; N w ; B 87 -13 757 444 ;
-C 120 ; WX 420 ; N x ; B 70 -160 583 411 ;
-C 121 ; WX 400 ; N y ; B 11 -248 473 415 ;
-C 122 ; WX 440 ; N z ; B 46 -13 475 426 ;
-C 123 ; WX 240 ; N braceleft ; B 105 -165 405 661 ;
-C 124 ; WX 520 ; N bar ; B 314 0 363 722 ;
-C 125 ; WX 240 ; N braceright ; B 10 -166 308 661 ;
-C 126 ; WX 520 ; N asciitilde ; B 86 165 526 278 ;
-C 161 ; WX 280 ; N exclamdown ; B 57 -186 295 409 ;
-C 162 ; WX 440 ; N cent ; B 127 -76 453 651 ;
-C 163 ; WX 440 ; N sterling ; B 4 -53 436 578 ;
-C 164 ; WX 60 ; N fraction ; B -115 -5 280 585 ;
-C 165 ; WX 440 ; N yen ; B -11 -152 623 608 ;
-C 166 ; WX 440 ; N florin ; B -49 -246 587 682 ;
-C 167 ; WX 420 ; N section ; B 63 -164 464 576 ;
-C 168 ; WX 440 ; N currency ; B 50 72 480 500 ;
-C 169 ; WX 160 ; N quotesingle ; B 170 405 259 591 ;
-C 170 ; WX 340 ; N quotedblleft ; B 229 435 500 676 ;
-C 171 ; WX 340 ; N guillemotleft ; B 98 -9 404 413 ;
-C 172 ; WX 240 ; N guilsinglleft ; B 98 -9 285 413 ;
-C 173 ; WX 260 ; N guilsinglright ; B 86 -3 284 423 ;
-C 174 ; WX 520 ; N fi ; B -104 -247 606 681 ;
-C 175 ; WX 520 ; N fl ; B -105 -246 710 688 ;
-C 177 ; WX 500 ; N endash ; B 31 173 578 237 ;
-C 178 ; WX 460 ; N dagger ; B 98 -138 529 606 ;
-C 179 ; WX 480 ; N daggerdbl ; B 98 -137 529 607 ;
-C 180 ; WX 220 ; N periodcentered ; B 108 156 229 277 ;
-C 182 ; WX 500 ; N paragraph ; B 29 -247 650 586 ;
-C 183 ; WX 600 ; N bullet ; B 228 217 568 557 ;
-C 184 ; WX 180 ; N quotesinglbase ; B 40 -109 170 111 ;
-C 185 ; WX 280 ; N quotedblbase ; B 41 -109 286 111 ;
-C 186 ; WX 360 ; N quotedblright ; B 228 454 473 673 ;
-C 187 ; WX 380 ; N guillemotright ; B 87 -3 407 423 ;
-C 188 ; WX 1000 ; N ellipsis ; B 106 -9 893 128 ;
-C 189 ; WX 960 ; N perthousand ; B 162 -7 975 584 ;
-C 191 ; WX 400 ; N questiondown ; B 57 -181 425 409 ;
-C 193 ; WX 220 ; N grave ; B 173 460 281 655 ;
-C 194 ; WX 300 ; N acute ; B 205 460 388 655 ;
-C 195 ; WX 340 ; N circumflex ; B 183 460 397 656 ;
-C 196 ; WX 440 ; N tilde ; B 183 494 513 604 ;
-C 197 ; WX 440 ; N macron ; B 183 520 515 568 ;
-C 198 ; WX 440 ; N breve ; B 183 488 516 623 ;
-C 199 ; WX 220 ; N dotaccent ; B 206 489 309 612 ;
-C 200 ; WX 360 ; N dieresis ; B 183 489 419 612 ;
-C 202 ; WX 300 ; N ring ; B 228 461 409 640 ;
-C 203 ; WX 300 ; N cedilla ; B 41 -212 216 0 ;
-C 205 ; WX 400 ; N hungarumlaut ; B 183 460 463 655 ;
-C 206 ; WX 280 ; N ogonek ; B 58 -153 216 0 ;
-C 207 ; WX 340 ; N caron ; B 234 458 447 655 ;
-C 208 ; WX 1000 ; N emdash ; B 31 172 1078 236 ;
-C 225 ; WX 740 ; N AE ; B 32 -4 798 571 ;
-C 227 ; WX 260 ; N ordfeminine ; B 81 253 324 576 ;
-C 232 ; WX 580 ; N Lslash ; B 33 -6 631 577 ;
-C 233 ; WX 660 ; N Oslash ; B 110 -132 707 690 ;
-C 234 ; WX 820 ; N OE ; B 104 -13 870 588 ;
-C 235 ; WX 260 ; N ordmasculine ; B 98 253 323 578 ;
-C 241 ; WX 540 ; N ae ; B 87 -13 588 440 ;
-C 245 ; WX 240 ; N dotlessi ; B 81 -13 311 411 ;
-C 248 ; WX 300 ; N lslash ; B 87 -13 491 678 ;
-C 249 ; WX 440 ; N oslash ; B 92 -148 467 547 ;
-C 250 ; WX 560 ; N oe ; B 88 -13 602 411 ;
-C 251 ; WX 420 ; N germandbls ; B -127 -248 506 680 ;
-C -1 ; WX 740 ; N Udieresis ; B 116 -14 778 773 ;
-C -1 ; WX 740 ; N Uacute ; B 116 -14 778 820 ;
-C -1 ; WX 460 ; N Scedilla ; B 0 -266 517 586 ;
-C -1 ; WX 500 ; N Tcaron ; B 58 0 718 821 ;
-C -1 ; WX 460 ; N Scaron ; B 0 -71 607 821 ;
-C -1 ; WX 600 ; N Rcaron ; B 38 -156 826 821 ;
-C -1 ; WX 600 ; N Racute ; B 38 -156 826 820 ;
-C -1 ; WX 460 ; N Sacute ; B 0 -71 517 820 ;
-C -1 ; WX 600 ; N Otilde ; B 104 -13 678 765 ;
-C -1 ; WX 460 ; N ucircumflex ; B 82 -13 518 656 ;
-C -1 ; WX 600 ; N Ohungarumlaut ; B 104 -13 652 820 ;
-C -1 ; WX 740 ; N Uhungarumlaut ; B 116 -14 816 820 ;
-C -1 ; WX 560 ; N Yacute ; B 31 -152 763 820 ;
-C -1 ; WX 700 ; N Eth ; B 86 0 759 615 ;
-C -1 ; WX 700 ; N Dcroat ; B 86 0 759 615 ;
-C -1 ; WX 620 ; N Zacute ; B 62 -18 676 820 ;
-C -1 ; WX 740 ; N Uring ; B 116 -14 778 802 ;
-C -1 ; WX 400 ; N gbreve ; B -78 -247 496 623 ;
-C -1 ; WX 340 ; N eogonek ; B 87 -153 380 411 ;
-C -1 ; WX 340 ; N edotaccent ; B 87 -13 380 612 ;
-C -1 ; WX 340 ; N ecaron ; B 87 -13 487 655 ;
-C -1 ; WX 740 ; N Ugrave ; B 116 -14 778 820 ;
-C -1 ; WX 540 ; N Thorn ; B 37 1 619 585 ;
-C -1 ; WX 340 ; N eacute ; B 87 -13 408 655 ;
-C -1 ; WX 340 ; N edieresis ; B 87 -13 409 612 ;
-C -1 ; WX 497 ; N dcaron ; B 87 -13 697 678 ;
-C -1 ; WX 340 ; N ccedilla ; B 61 -212 383 411 ;
-C -1 ; WX 340 ; N ccaron ; B 87 -13 467 655 ;
-C -1 ; WX 340 ; N cacute ; B 87 -13 441 655 ;
-C -1 ; WX 420 ; N aogonek ; B 87 -153 492 411 ;
-C -1 ; WX 420 ; N aring ; B 87 -13 492 640 ;
-C -1 ; WX 420 ; N atilde ; B 87 -13 513 604 ;
-C -1 ; WX 420 ; N abreve ; B 87 -13 526 623 ;
-C -1 ; WX 340 ; N egrave ; B 87 -13 380 655 ;
-C -1 ; WX 420 ; N agrave ; B 87 -13 492 655 ;
-C -1 ; WX 420 ; N aacute ; B 87 -13 492 655 ;
-C -1 ; WX 420 ; N adieresis ; B 87 -13 492 612 ;
-C -1 ; WX 740 ; N Uogonek ; B 116 -153 778 578 ;
-C -1 ; WX 460 ; N ugrave ; B 82 -13 518 655 ;
-C -1 ; WX 460 ; N uacute ; B 82 -13 518 655 ;
-C -1 ; WX 460 ; N udieresis ; B 82 -13 518 612 ;
-C -1 ; WX 320 ; N tcaron ; B 96 -13 480 678 ;
-C -1 ; WX 320 ; N scommaaccent ; B 41 -270 377 411 ;
-C -1 ; WX 620 ; N Zcaron ; B 62 -18 676 821 ;
-C -1 ; WX 340 ; N ecircumflex ; B 87 -13 397 656 ;
-C -1 ; WX 740 ; N Ucircumflex ; B 116 -14 778 821 ;
-C -1 ; WX 420 ; N acircumflex ; B 87 -13 492 656 ;
-C -1 ; WX 620 ; N Zdotaccent ; B 62 -18 676 773 ;
-C -1 ; WX 320 ; N scaron ; B 41 -13 477 655 ;
-C -1 ; WX 620 ; N Amacron ; B 23 -13 760 729 ;
-C -1 ; WX 320 ; N sacute ; B 41 -13 440 655 ;
-C -1 ; WX 500 ; N Tcommaaccent ; B 58 -270 718 649 ;
-C -1 ; WX 560 ; N Ydieresis ; B 31 -152 763 773 ;
-C -1 ; WX 440 ; N thorn ; B -8 -248 482 680 ;
-C -1 ; WX 620 ; N Emacron ; B 76 -8 668 729 ;
-C -1 ; WX 600 ; N Ograve ; B 104 -13 652 820 ;
-C -1 ; WX 600 ; N Oacute ; B 104 -13 652 820 ;
-C -1 ; WX 600 ; N Odieresis ; B 104 -13 652 773 ;
-C -1 ; WX 700 ; N Ntilde ; B 40 -163 915 765 ;
-C -1 ; WX 700 ; N Ncaron ; B 40 -163 915 821 ;
-C -1 ; WX 700 ; N Nacute ; B 40 -163 915 820 ;
-C -1 ; WX 580 ; N Lcaron ; B 33 -6 700 591 ;
-C -1 ; WX 580 ; N Lacute ; B 33 -6 631 820 ;
-C -1 ; WX 380 ; N Idotaccent ; B 81 0 481 773 ;
-C -1 ; WX 300 ; N racute ; B 81 -10 428 655 ;
-C -1 ; WX 380 ; N Icircumflex ; B 81 0 487 821 ;
-C -1 ; WX 400 ; N ohungarumlaut ; B 87 -13 543 655 ;
-C -1 ; WX 400 ; N otilde ; B 87 -13 493 604 ;
-C -1 ; WX 440 ; N Euro ; B -28 -73 528 591 ;
-C -1 ; WX 400 ; N ocircumflex ; B 87 -13 449 656 ;
-C -1 ; WX 264 ; N onesuperior ; B 86 217 314 568 ;
-C -1 ; WX 264 ; N twosuperior ; B 80 206 354 562 ;
-C -1 ; WX 264 ; N threesuperior ; B 69 212 343 561 ;
-C -1 ; WX 380 ; N Igrave ; B 81 0 481 820 ;
-C -1 ; WX 380 ; N Iacute ; B 81 0 481 820 ;
-C -1 ; WX 380 ; N Imacron ; B 81 0 548 729 ;
-C -1 ; WX 380 ; N Iogonek ; B 81 -153 481 573 ;
-C -1 ; WX 380 ; N Idieresis ; B 81 0 481 773 ;
-C -1 ; WX 620 ; N Gbreve ; B 118 -236 670 784 ;
-C -1 ; WX 740 ; N Umacron ; B 116 -14 788 729 ;
-C -1 ; WX 660 ; N Kcommaaccent ; B 88 -270 851 577 ;
-C -1 ; WX 400 ; N ograve ; B 87 -13 449 655 ;
-C -1 ; WX 460 ; N Scommaaccent ; B 0 -290 517 586 ;
-C -1 ; WX 620 ; N Eogonek ; B 76 -153 668 586 ;
-C -1 ; WX 400 ; N oacute ; B 87 -13 449 655 ;
-C -1 ; WX 620 ; N Edotaccent ; B 76 -8 668 773 ;
-C -1 ; WX 240 ; N iogonek ; B 65 -153 311 616 ;
-C -1 ; WX 400 ; N gcommaaccent ; B -78 -247 481 668 ;
-C -1 ; WX 400 ; N odieresis ; B 87 -13 449 612 ;
-C -1 ; WX 460 ; N ntilde ; B 81 -16 523 604 ;
-C -1 ; WX 460 ; N ncaron ; B 81 -16 520 655 ;
-C -1 ; WX 620 ; N Ecaron ; B 76 -8 668 821 ;
-C -1 ; WX 620 ; N Ecircumflex ; B 76 -8 668 821 ;
-C -1 ; WX 320 ; N scedilla ; B -9 -213 377 411 ;
-C -1 ; WX 300 ; N rcaron ; B 81 -10 467 655 ;
-C -1 ; WX 620 ; N Egrave ; B 76 -8 668 820 ;
-C -1 ; WX 620 ; N Eacute ; B 76 -8 668 820 ;
-C -1 ; WX 620 ; N Gcommaaccent ; B 120 -270 672 590 ;
-C -1 ; WX 600 ; N Rcommaaccent ; B 38 -270 826 611 ;
-C -1 ; WX 620 ; N Edieresis ; B 76 -8 668 773 ;
-C -1 ; WX 460 ; N nacute ; B 81 -16 520 655 ;
-C -1 ; WX 460 ; N uogonek ; B 82 -153 518 415 ;
-C -1 ; WX 460 ; N umacron ; B 82 -13 525 568 ;
-C -1 ; WX 700 ; N Dcaron ; B 86 0 759 821 ;
-C -1 ; WX 293 ; N lcaron ; B 87 -13 493 678 ;
-C -1 ; WX 520 ; N Ccaron ; B 88 -73 680 821 ;
-C -1 ; WX 520 ; N Cacute ; B 88 -73 635 820 ;
-C -1 ; WX 520 ; N Ccedilla ; B 88 -266 635 591 ;
-C -1 ; WX 400 ; N degree ; B 190 330 430 576 ;
-C -1 ; WX 620 ; N Aogonek ; B 23 -153 687 594 ;
-C -1 ; WX 520 ; N minus ; B 55 192 559 246 ;
-C -1 ; WX 520 ; N multiply ; B 103 14 513 424 ;
-C -1 ; WX 520 ; N divide ; B 103 -4 513 443 ;
-C -1 ; WX 620 ; N Aring ; B 23 -13 687 802 ;
-C -1 ; WX 1000 ; N trademark ; B 165 210 1050 580 ;
-C -1 ; WX 300 ; N rcommaaccent ; B 38 -270 409 411 ;
-C -1 ; WX 240 ; N lacute ; B 87 -13 454 860 ;
-C -1 ; WX 400 ; N omacron ; B 87 -13 495 568 ;
-C -1 ; WX 620 ; N Atilde ; B 23 -13 753 765 ;
-C -1 ; WX 240 ; N icircumflex ; B 81 -13 347 656 ;
-C -1 ; WX 240 ; N igrave ; B 81 -13 311 655 ;
-C -1 ; WX 460 ; N ncommaaccent ; B 81 -270 520 411 ;
-C -1 ; WX 240 ; N lcommaaccent ; B 8 -270 434 678 ;
-C -1 ; WX 520 ; N plusminus ; B 103 0 513 508 ;
-C -1 ; WX 660 ; N onehalf ; B 96 -10 659 585 ;
-C -1 ; WX 660 ; N onequarter ; B 96 -15 653 585 ;
-C -1 ; WX 660 ; N threequarters ; B 79 -15 663 585 ;
-C -1 ; WX 240 ; N iacute ; B 81 -13 358 655 ;
-C -1 ; WX 620 ; N Abreve ; B 23 -13 740 784 ;
-C -1 ; WX 440 ; N kcommaaccent ; B 87 -270 655 675 ;
-C -1 ; WX 600 ; N Omacron ; B 104 -13 652 729 ;
-C -1 ; WX 240 ; N imacron ; B 81 -13 415 568 ;
-C -1 ; WX 340 ; N emacron ; B 87 -13 465 568 ;
-C -1 ; WX 420 ; N amacron ; B 87 -13 505 568 ;
-C -1 ; WX 320 ; N tcommaaccent ; B 48 -270 392 503 ;
-C -1 ; WX 400 ; N ydieresis ; B 11 -248 473 612 ;
-C -1 ; WX 440 ; N zdotaccent ; B 46 -13 475 612 ;
-C -1 ; WX 440 ; N zcaron ; B 46 -13 527 655 ;
-C -1 ; WX 440 ; N zacute ; B 46 -13 498 655 ;
-C -1 ; WX 400 ; N yacute ; B 11 -248 478 655 ;
-C -1 ; WX 460 ; N uhungarumlaut ; B 82 -13 533 655 ;
-C -1 ; WX 400 ; N eth ; B 87 -13 557 689 ;
-C -1 ; WX 460 ; N uring ; B 82 -13 518 640 ;
-C -1 ; WX 600 ; N Ocircumflex ; B 104 -13 652 821 ;
-C -1 ; WX 300 ; N commaaccent ; B 38 -270 165 -60 ;
-C -1 ; WX 740 ; N copyright ; B 136 -26 830 668 ;
-C -1 ; WX 740 ; N registered ; B 135 -26 828 668 ;
-C -1 ; WX 620 ; N Acircumflex ; B 23 -13 687 821 ;
-C -1 ; WX 240 ; N idieresis ; B 81 -13 359 612 ;
-C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ;
-C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
-C -1 ; WX 520 ; N notequal ; B 108 5 518 433 ;
-C -1 ; WX 549 ; N radical ; B 10 -35 515 913 ;
-C -1 ; WX 620 ; N Agrave ; B 23 -13 687 820 ;
-C -1 ; WX 620 ; N Aacute ; B 23 -13 687 820 ;
-C -1 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
-C -1 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
-C -1 ; WX 520 ; N logicalnot ; B 55 25 559 314 ;
-C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ;
-C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ;
-C -1 ; WX 700 ; N Ncommaaccent ; B 40 -270 915 677 ;
-C -1 ; WX 440 ; N dcroat ; B 87 -13 629 677 ;
-C -1 ; WX 520 ; N brokenbar ; B 314 0 363 722 ;
-C -1 ; WX 580 ; N Lcommaaccent ; B 33 -270 631 577 ;
-C -1 ; WX 620 ; N Adieresis ; B 23 -13 699 773 ;
-C -1 ; WX 460 ; N mu ; B 15 -218 518 415 ;
-C -1 ; WX 220 ; N .notdef ; B 0 0 0 0 ;
-EndCharMetrics
-StartKernData
-StartKernPairs 998
-KPX A C 13
-KPX A Ccedilla 12
-KPX A G -12
-KPX A O -10
-KPX A Odieresis -10
-KPX A Q -11
-KPX A T -14
-KPX A U -22
-KPX A Uacute -24
-KPX A Ucircumflex -24
-KPX A Udieresis -24
-KPX A Ugrave -24
-KPX A V -19
-KPX A W -19
-KPX A Y -1
-KPX A a 11
-KPX A b 7
-KPX A c 10
-KPX A ccedilla 10
-KPX A comma 2
-KPX A d 11
-KPX A e 9
-KPX A g 9
-KPX A guillemotleft -10
-KPX A guilsinglleft -9
-KPX A hyphen -10
-KPX A o 8
-KPX A period 6
-KPX A q 11
-KPX A quotedblright -47
-KPX A quoteright -58
-KPX A t -12
-KPX A u 1
-KPX A v -13
-KPX A w -18
-KPX A y 5
-KPX Aacute C 13
-KPX Aacute G -12
-KPX Aacute O -10
-KPX Aacute Q -11
-KPX Aacute T -14
-KPX Aacute U -22
-KPX Aacute V -27
-KPX Aacute W -26
-KPX Aacute Y -3
-KPX Aacute a 11
-KPX Aacute b 7
-KPX Aacute c 10
-KPX Aacute comma 2
-KPX Aacute d 11
-KPX Aacute e 9
-KPX Aacute g 9
-KPX Aacute guillemotleft -10
-KPX Aacute guilsinglleft -9
-KPX Aacute hyphen -10
-KPX Aacute o 8
-KPX Aacute period 6
-KPX Aacute q 11
-KPX Aacute quoteright -58
-KPX Aacute t -12
-KPX Aacute u 1
-KPX Aacute v -13
-KPX Aacute w -18
-KPX Aacute y 5
-KPX Acircumflex C 13
-KPX Acircumflex G -12
-KPX Acircumflex O -10
-KPX Acircumflex Q -11
-KPX Acircumflex T -14
-KPX Acircumflex U -22
-KPX Acircumflex V -25
-KPX Acircumflex W -24
-KPX Acircumflex Y -3
-KPX Acircumflex comma 2
-KPX Acircumflex period 6
-KPX Adieresis C 13
-KPX Adieresis G -12
-KPX Adieresis O -11
-KPX Adieresis Q -11
-KPX Adieresis T -14
-KPX Adieresis U -23
-KPX Adieresis V -26
-KPX Adieresis W -26
-KPX Adieresis Y -3
-KPX Adieresis a 11
-KPX Adieresis b 7
-KPX Adieresis c 10
-KPX Adieresis comma 2
-KPX Adieresis d 11
-KPX Adieresis g 9
-KPX Adieresis guillemotleft -10
-KPX Adieresis guilsinglleft -9
-KPX Adieresis hyphen -10
-KPX Adieresis o 8
-KPX Adieresis period 6
-KPX Adieresis q 11
-KPX Adieresis quotedblright -53
-KPX Adieresis quoteright -58
-KPX Adieresis t -12
-KPX Adieresis u 1
-KPX Adieresis v -13
-KPX Adieresis w -18
-KPX Adieresis y 5
-KPX Agrave C 13
-KPX Agrave G -12
-KPX Agrave O -10
-KPX Agrave Q -11
-KPX Agrave T -14
-KPX Agrave U -22
-KPX Agrave V -27
-KPX Agrave W -26
-KPX Agrave Y -3
-KPX Agrave comma 2
-KPX Agrave period 6
-KPX Aring C 13
-KPX Aring G -12
-KPX Aring O -10
-KPX Aring Q -11
-KPX Aring T -14
-KPX Aring U -22
-KPX Aring V -25
-KPX Aring W -25
-KPX Aring Y -3
-KPX Aring a 11
-KPX Aring b 7
-KPX Aring c 10
-KPX Aring comma 2
-KPX Aring d 11
-KPX Aring e 9
-KPX Aring g 9
-KPX Aring guillemotleft -10
-KPX Aring guilsinglleft -9
-KPX Aring hyphen -10
-KPX Aring o 8
-KPX Aring period 6
-KPX Aring q 11
-KPX Aring quotedblright -52
-KPX Aring quoteright -58
-KPX Aring t -12
-KPX Aring u 1
-KPX Aring v -13
-KPX Aring w -18
-KPX Aring y 5
-KPX Atilde C 13
-KPX Atilde G -12
-KPX Atilde O -10
-KPX Atilde Q -10
-KPX Atilde T -13
-KPX Atilde U -22
-KPX Atilde V -26
-KPX Atilde W -26
-KPX Atilde Y -2
-KPX Atilde comma 3
-KPX Atilde period 7
-KPX B A -26
-KPX B AE -31
-KPX B Aacute -26
-KPX B Acircumflex -26
-KPX B Adieresis -26
-KPX B Aring -26
-KPX B Atilde -26
-KPX B O 0
-KPX B OE -3
-KPX B Oacute -2
-KPX B Ocircumflex -2
-KPX B Odieresis -2
-KPX B Ograve -2
-KPX B Oslash -18
-KPX B V -8
-KPX B W -8
-KPX B Y 8
-KPX C A 12
-KPX C AE 10
-KPX C Aacute 12
-KPX C Adieresis 12
-KPX C Aring 12
-KPX C H 2
-KPX C K -6
-KPX C O -25
-KPX C Oacute -25
-KPX C Odieresis -25
-KPX Ccedilla A 9
-KPX D A -29
-KPX D Aacute -32
-KPX D Acircumflex -32
-KPX D Adieresis -32
-KPX D Agrave -32
-KPX D Aring -32
-KPX D Atilde -32
-KPX D J -31
-KPX D T 26
-KPX D V 3
-KPX D W 3
-KPX D X -23
-KPX D Y 19
-KPX F A -55
-KPX F Aacute -54
-KPX F Acircumflex -54
-KPX F Adieresis -54
-KPX F Agrave -54
-KPX F Aring -54
-KPX F Atilde -54
-KPX F J -55
-KPX F O -25
-KPX F Odieresis -25
-KPX F a -41
-KPX F aacute -41
-KPX F adieresis -39
-KPX F ae -40
-KPX F aring -41
-KPX F comma -82
-KPX F e -37
-KPX F eacute -37
-KPX F hyphen -24
-KPX F i -11
-KPX F j -9
-KPX F o -41
-KPX F oacute -41
-KPX F odieresis -19
-KPX F oe -40
-KPX F oslash -47
-KPX F period -70
-KPX F r -24
-KPX F u -21
-KPX G A -33
-KPX G AE -36
-KPX G Aacute -33
-KPX G Acircumflex -33
-KPX G Adieresis -33
-KPX G Agrave -33
-KPX G Aring -33
-KPX G Atilde -33
-KPX G T 2
-KPX G V -18
-KPX G W -19
-KPX G Y 3
-KPX J A -28
-KPX J AE -35
-KPX J Adieresis -28
-KPX J Aring -28
-KPX K C 48
-KPX K G 16
-KPX K O -6
-KPX K OE -10
-KPX K Oacute -6
-KPX K Odieresis -6
-KPX K S 102
-KPX K T 42
-KPX K a -38
-KPX K adieresis -18
-KPX K ae -38
-KPX K aring -32
-KPX K e -36
-KPX K hyphen -40
-KPX K o -41
-KPX K oacute -41
-KPX K odieresis 2
-KPX K u -38
-KPX K udieresis -13
-KPX K y -16
-KPX L A 6
-KPX L AE 4
-KPX L Aacute 6
-KPX L Adieresis 6
-KPX L Aring 6
-KPX L C 5
-KPX L Ccedilla 6
-KPX L G -7
-KPX L O 0
-KPX L Oacute 0
-KPX L Ocircumflex 0
-KPX L Odieresis 0
-KPX L Ograve 0
-KPX L Otilde 0
-KPX L S 18
-KPX L T -17
-KPX L U -28
-KPX L Udieresis -28
-KPX L V -24
-KPX L W -25
-KPX L Y -4
-KPX L hyphen 30
-KPX L quotedblright -93
-KPX L quoteright -94
-KPX L u -7
-KPX L udieresis -7
-KPX L y -4
-KPX N A -24
-KPX N AE -30
-KPX N Aacute -24
-KPX N Adieresis -24
-KPX N Aring -24
-KPX N C 55
-KPX N Ccedilla 53
-KPX N G 23
-KPX N O -11
-KPX N Oacute -13
-KPX N Odieresis -12
-KPX N a -26
-KPX N aacute -26
-KPX N adieresis -26
-KPX N ae -26
-KPX N aring -26
-KPX N comma 111
-KPX N e -24
-KPX N eacute -24
-KPX N o -29
-KPX N oacute -29
-KPX N odieresis -29
-KPX N oslash 80
-KPX N period -20
-KPX N u -27
-KPX N udieresis -27
-KPX O A -28
-KPX O AE -41
-KPX O Aacute -28
-KPX O Adieresis -28
-KPX O Aring -28
-KPX O T 23
-KPX O V 2
-KPX O W 2
-KPX O X -21
-KPX O Y 16
-KPX Oacute A -28
-KPX Oacute T 23
-KPX Oacute V 0
-KPX Oacute W 0
-KPX Oacute Y 16
-KPX Ocircumflex T 23
-KPX Ocircumflex V 0
-KPX Ocircumflex Y 16
-KPX Odieresis A -28
-KPX Odieresis T 23
-KPX Odieresis V 0
-KPX Odieresis W 0
-KPX Odieresis X -21
-KPX Odieresis Y 16
-KPX Ograve T 23
-KPX Ograve V 0
-KPX Ograve Y 16
-KPX Oslash A -42
-KPX Otilde T 23
-KPX Otilde V 0
-KPX Otilde Y 17
-KPX P A -28
-KPX P AE -32
-KPX P Aacute -28
-KPX P Adieresis -28
-KPX P Aring -28
-KPX P J -13
-KPX P a -36
-KPX P aacute -36
-KPX P adieresis -36
-KPX P ae -37
-KPX P aring -36
-KPX P comma -63
-KPX P e -32
-KPX P eacute -32
-KPX P hyphen -36
-KPX P o -40
-KPX P oacute -40
-KPX P odieresis -40
-KPX P oe -39
-KPX P oslash -45
-KPX P period -59
-KPX R C 51
-KPX R Ccedilla 52
-KPX R G 22
-KPX R O -27
-KPX R OE -31
-KPX R Oacute -29
-KPX R Odieresis -29
-KPX R T 2
-KPX R U -30
-KPX R Udieresis -30
-KPX R V -20
-KPX R W -18
-KPX R Y 115
-KPX R a -44
-KPX R aacute -44
-KPX R adieresis -44
-KPX R ae -44
-KPX R aring -44
-KPX R e -42
-KPX R eacute -42
-KPX R hyphen -44
-KPX R o -47
-KPX R oacute -47
-KPX R odieresis -47
-KPX R oe -46
-KPX R u -44
-KPX R uacute -44
-KPX R udieresis -44
-KPX R y -3
-KPX S A -22
-KPX S AE -27
-KPX S Aacute -22
-KPX S Adieresis -22
-KPX S Aring -22
-KPX S T 0
-KPX S V -19
-KPX S W -19
-KPX S Y -13
-KPX S t -41
-KPX T A 7
-KPX T AE 4
-KPX T Aacute 7
-KPX T Acircumflex 7
-KPX T Adieresis 7
-KPX T Agrave 7
-KPX T Aring 7
-KPX T Atilde 7
-KPX T C -20
-KPX T G -38
-KPX T J -7
-KPX T O -16
-KPX T OE -23
-KPX T Oacute -16
-KPX T Ocircumflex -16
-KPX T Odieresis -16
-KPX T Ograve -16
-KPX T Oslash -31
-KPX T Otilde -16
-KPX T S 17
-KPX T V 24
-KPX T W 24
-KPX T Y 25
-KPX T a -22
-KPX T ae -22
-KPX T c -23
-KPX T colon -26
-KPX T comma -33
-KPX T e -23
-KPX T g -23
-KPX T guillemotleft -43
-KPX T guilsinglleft -42
-KPX T hyphen -36
-KPX T i 21
-KPX T j 22
-KPX T o -23
-KPX T oslash -27
-KPX T period -27
-KPX T r -29
-KPX T s 1
-KPX T semicolon -34
-KPX T u -33
-KPX T v -47
-KPX T w -52
-KPX T y -28
-KPX U A 26
-KPX U AE 23
-KPX U Aacute 26
-KPX U Acircumflex 26
-KPX U Adieresis 26
-KPX U Aring 26
-KPX U Atilde 26
-KPX U comma -13
-KPX U m -13
-KPX U n -12
-KPX U p -23
-KPX U period -10
-KPX U r -12
-KPX Uacute A 26
-KPX Uacute comma -13
-KPX Uacute m -13
-KPX Uacute n -12
-KPX Uacute p -23
-KPX Uacute period -10
-KPX Uacute r -12
-KPX Ucircumflex A 26
-KPX Udieresis A 26
-KPX Udieresis b -11
-KPX Udieresis comma -13
-KPX Udieresis m -13
-KPX Udieresis n -12
-KPX Udieresis p -23
-KPX Udieresis period -10
-KPX Udieresis r -12
-KPX Ugrave A 26
-KPX V A -31
-KPX V AE -68
-KPX V Aacute -31
-KPX V Acircumflex -31
-KPX V Adieresis -31
-KPX V Agrave -31
-KPX V Aring -31
-KPX V Atilde -31
-KPX V C -28
-KPX V G -33
-KPX V O -14
-KPX V Oacute -14
-KPX V Ocircumflex -14
-KPX V Odieresis -14
-KPX V Ograve -14
-KPX V Oslash -30
-KPX V Otilde -14
-KPX V S -32
-KPX V T 38
-KPX V a -57
-KPX V ae -58
-KPX V colon -43
-KPX V comma -93
-KPX V e -53
-KPX V g -59
-KPX V guillemotleft -55
-KPX V guilsinglleft -55
-KPX V hyphen -45
-KPX V i 1
-KPX V o -63
-KPX V oslash -68
-KPX V period -90
-KPX V r -12
-KPX V semicolon -38
-KPX V u -17
-KPX V y -12
-KPX W A -26
-KPX W AE -46
-KPX W Aacute -26
-KPX W Acircumflex -26
-KPX W Adieresis -26
-KPX W Agrave -26
-KPX W Aring -26
-KPX W Atilde -26
-KPX W C -9
-KPX W G -15
-KPX W O 0
-KPX W Oacute -4
-KPX W Ocircumflex -2
-KPX W Odieresis -3
-KPX W Ograve -4
-KPX W Oslash -20
-KPX W Otilde -3
-KPX W S -12
-KPX W T 44
-KPX W a -33
-KPX W ae -33
-KPX W colon -29
-KPX W comma -57
-KPX W e -31
-KPX W g -35
-KPX W guillemotleft -27
-KPX W guilsinglleft -27
-KPX W hyphen -16
-KPX W i 1
-KPX W o -36
-KPX W oslash -41
-KPX W period -53
-KPX W r 3
-KPX W semicolon -24
-KPX W u 0
-KPX W y 4
-KPX X C 2
-KPX X O -21
-KPX X Odieresis -21
-KPX X Q -21
-KPX X a 1
-KPX X e -1
-KPX X hyphen -51
-KPX X o -2
-KPX X u -9
-KPX X y -5
-KPX Y A -24
-KPX Y AE -60
-KPX Y Aacute -24
-KPX Y Acircumflex -24
-KPX Y Adieresis -24
-KPX Y Agrave -24
-KPX Y Aring -24
-KPX Y Atilde -24
-KPX Y C -28
-KPX Y G -35
-KPX Y O -13
-KPX Y Oacute -12
-KPX Y Ocircumflex -12
-KPX Y Odieresis -12
-KPX Y Ograve -12
-KPX Y Oslash -29
-KPX Y Otilde -12
-KPX Y S -25
-KPX Y T 44
-KPX Y a -53
-KPX Y ae -53
-KPX Y colon -58
-KPX Y comma -68
-KPX Y e -51
-KPX Y g -55
-KPX Y guillemotleft -48
-KPX Y guilsinglleft -47
-KPX Y hyphen -37
-KPX Y i 17
-KPX Y o -56
-KPX Y oslash -61
-KPX Y p -43
-KPX Y period -62
-KPX Y semicolon -55
-KPX Y u -39
-KPX Y v -42
-KPX Z v 4
-KPX Z y 5
-KPX a j -2
-KPX a quoteright -55
-KPX a v -13
-KPX a w -14
-KPX a y 0
-KPX aacute v -13
-KPX aacute w -14
-KPX aacute y 0
-KPX adieresis v -13
-KPX adieresis w -14
-KPX adieresis y 0
-KPX ae v -15
-KPX ae w -17
-KPX ae y -1
-KPX agrave v -13
-KPX agrave w -14
-KPX agrave y 0
-KPX aring v -13
-KPX aring w -14
-KPX aring y 0
-KPX b v -11
-KPX b w -12
-KPX b y -1
-KPX c h -10
-KPX c k -15
-KPX comma one -40
-KPX comma quotedblright -53
-KPX comma quoteright -58
-KPX e quoteright -54
-KPX e t -16
-KPX e v -21
-KPX e w -22
-KPX e x -15
-KPX e y -7
-KPX eacute v -21
-KPX eacute w -23
-KPX eacute y -7
-KPX ecircumflex v -21
-KPX ecircumflex w -23
-KPX ecircumflex y -7
-KPX eight four -12
-KPX eight one -41
-KPX eight seven -38
-KPX f a -20
-KPX f aacute -20
-KPX f adieresis -20
-KPX f ae -21
-KPX f aring -20
-KPX f e -16
-KPX f eacute -16
-KPX f f 16
-KPX f i 21
-KPX f j 21
-KPX f l -9
-KPX f o -26
-KPX f oacute -26
-KPX f odieresis -26
-KPX f oe -24
-KPX f oslash -32
-KPX f quoteright -47
-KPX f s -20
-KPX f t 7
-KPX five four -18
-KPX five one -56
-KPX five seven -30
-KPX four four -11
-KPX four one -57
-KPX four seven -50
-KPX g a -18
-KPX g adieresis -18
-KPX g ae -18
-KPX g aring -18
-KPX g e -16
-KPX g eacute -16
-KPX g l -13
-KPX g oacute -21
-KPX g odieresis -21
-KPX g r -9
-KPX guillemotright A -33
-KPX guillemotright AE -33
-KPX guillemotright Aacute -33
-KPX guillemotright Adieresis -33
-KPX guillemotright Aring -33
-KPX guillemotright T -6
-KPX guillemotright V -19
-KPX guillemotright W -20
-KPX guillemotright Y 4
-KPX guilsinglright A -34
-KPX guilsinglright AE -34
-KPX guilsinglright Aacute -34
-KPX guilsinglright Adieresis -34
-KPX guilsinglright Aring -34
-KPX guilsinglright T -6
-KPX guilsinglright V -20
-KPX guilsinglright W -21
-KPX guilsinglright Y 3
-KPX h quoteright -65
-KPX h y -3
-KPX hyphen A -44
-KPX hyphen AE -10
-KPX hyphen Aacute -44
-KPX hyphen Adieresis -44
-KPX hyphen Aring -44
-KPX hyphen T -1
-KPX hyphen V -5
-KPX hyphen W -7
-KPX hyphen Y 25
-KPX i T -1
-KPX i j -2
-KPX k a -50
-KPX k aacute -50
-KPX k adieresis -50
-KPX k ae -50
-KPX k aring -50
-KPX k comma 111
-KPX k e -49
-KPX k eacute -49
-KPX k g 148
-KPX k hyphen -78
-KPX k o -56
-KPX k oacute -56
-KPX k odieresis -56
-KPX k period -48
-KPX k s -29
-KPX k u -13
-KPX k udieresis -13
-KPX l v -18
-KPX l y -2
-KPX m p -12
-KPX m v -13
-KPX m w -14
-KPX m y 1
-KPX n T -5
-KPX n p -20
-KPX n quoteright -68
-KPX n v -22
-KPX n w -24
-KPX n y -6
-KPX nine four -24
-KPX nine one -46
-KPX nine seven -41
-KPX o T 17
-KPX o quoteright -41
-KPX o t -4
-KPX o v -4
-KPX o w -5
-KPX o x -11
-KPX o y 4
-KPX oacute v -4
-KPX oacute w -5
-KPX oacute y 4
-KPX ocircumflex t -4
-KPX odieresis t -4
-KPX odieresis v -4
-KPX odieresis w -5
-KPX odieresis x -11
-KPX odieresis y 4
-KPX ograve v -4
-KPX ograve w -5
-KPX ograve y 4
-KPX one comma -31
-KPX one eight -20
-KPX one five -12
-KPX one four -46
-KPX one nine 1
-KPX one one -25
-KPX one period -29
-KPX one seven -59
-KPX one six -37
-KPX one three 5
-KPX one two -1
-KPX one zero -30
-KPX p t -8
-KPX p y 1
-KPX period one -25
-KPX period quotedblright -43
-KPX period quoteright -48
-KPX q c -15
-KPX q u -9
-KPX quotedblbase A 15
-KPX quotedblbase AE 34
-KPX quotedblbase T -57
-KPX quotedblbase V -32
-KPX quotedblbase W -35
-KPX quotedblbase Y -11
-KPX quotedblleft A -10
-KPX quotedblleft AE -72
-KPX quotedblleft Aacute -20
-KPX quotedblleft Adieresis -20
-KPX quotedblleft Aring -20
-KPX quotedblleft T 22
-KPX quotedblleft V 30
-KPX quotedblleft W 31
-KPX quotedblleft Y 41
-KPX quotedblright A -20
-KPX quotedblright AE -81
-KPX quotedblright Aacute -32
-KPX quotedblright Adieresis -32
-KPX quotedblright Aring -32
-KPX quotedblright T 12
-KPX quotedblright V 18
-KPX quotedblright W 19
-KPX quotedblright Y 30
-KPX quoteleft A -18
-KPX quoteleft AE -80
-KPX quoteleft Aacute -28
-KPX quoteleft Adieresis -28
-KPX quoteleft Aring -28
-KPX quoteleft T 14
-KPX quoteleft V 22
-KPX quoteleft W 23
-KPX quoteleft Y 33
-KPX quoteright A 0
-KPX quoteright AE -60
-KPX quoteright Aacute 0
-KPX quoteright Adieresis 0
-KPX quoteright Aring 0
-KPX quoteright comma -38
-KPX quoteright d -27
-KPX quoteright o -29
-KPX quoteright period -38
-KPX quoteright r 1
-KPX quoteright s -21
-KPX quoteright t -9
-KPX quoteright v -1
-KPX quoteright w 0
-KPX quoteright y 4
-KPX r a -17
-KPX r aacute -17
-KPX r acircumflex -17
-KPX r adieresis -17
-KPX r ae -18
-KPX r agrave -17
-KPX r aring -17
-KPX r c -14
-KPX r ccedilla -16
-KPX r colon -14
-KPX r comma -73
-KPX r d -21
-KPX r e -13
-KPX r eacute -13
-KPX r ecircumflex -13
-KPX r egrave -13
-KPX r f 22
-KPX r g -19
-KPX r h -10
-KPX r hyphen -55
-KPX r i 20
-KPX r j 19
-KPX r k -15
-KPX r l -7
-KPX r m 18
-KPX r n 19
-KPX r o -21
-KPX r oacute -21
-KPX r ocircumflex -21
-KPX r odieresis -21
-KPX r oe -20
-KPX r ograve -21
-KPX r oslash -27
-KPX r p 15
-KPX r period -69
-KPX r q -19
-KPX r quoteright -31
-KPX r r 21
-KPX r s -19
-KPX r semicolon -9
-KPX r t 13
-KPX r u 18
-KPX r v 5
-KPX r w 3
-KPX r x 9
-KPX r y 22
-KPX r z -23
-KPX s quoteright -61
-KPX s t -22
-KPX seven colon -73
-KPX seven comma -78
-KPX seven eight -44
-KPX seven five -54
-KPX seven four -62
-KPX seven one -44
-KPX seven period -75
-KPX seven seven -27
-KPX seven six -40
-KPX seven three -53
-KPX seven two -36
-KPX six four -2
-KPX six one -47
-KPX six seven -36
-KPX t S 22
-KPX t a -5
-KPX t aacute -5
-KPX t adieresis -5
-KPX t ae -4
-KPX t aring -5
-KPX t colon -22
-KPX t e -3
-KPX t eacute -3
-KPX t h -10
-KPX t o -3
-KPX t oacute -3
-KPX t odieresis -3
-KPX t quoteright -56
-KPX t semicolon -20
-KPX three four -19
-KPX three one -54
-KPX three seven -47
-KPX two four 6
-KPX two one -42
-KPX two seven -34
-KPX u quoteright -69
-KPX v a -21
-KPX v aacute -21
-KPX v acircumflex -21
-KPX v adieresis -21
-KPX v ae -21
-KPX v agrave -21
-KPX v aring -21
-KPX v atilde -21
-KPX v c -20
-KPX v colon -27
-KPX v comma -49
-KPX v e -18
-KPX v eacute -18
-KPX v ecircumflex -18
-KPX v egrave -18
-KPX v g -24
-KPX v hyphen -8
-KPX v l -15
-KPX v o -23
-KPX v oacute -23
-KPX v odieresis -23
-KPX v ograve -23
-KPX v oslash -29
-KPX v period -50
-KPX v s -22
-KPX v semicolon -22
-KPX w a -20
-KPX w aacute -20
-KPX w acircumflex -20
-KPX w adieresis -20
-KPX w ae -20
-KPX w agrave -20
-KPX w aring -20
-KPX w atilde -20
-KPX w c -19
-KPX w colon -24
-KPX w comma -50
-KPX w e -18
-KPX w eacute -18
-KPX w ecircumflex -18
-KPX w egrave -18
-KPX w g -23
-KPX w hyphen -8
-KPX w l -14
-KPX w o -23
-KPX w oacute -23
-KPX w odieresis -23
-KPX w ograve -23
-KPX w oslash -28
-KPX w period -51
-KPX w s -22
-KPX w semicolon -19
-KPX x a -25
-KPX x c -24
-KPX x e -21
-KPX x eacute -21
-KPX x o -31
-KPX x q -27
-KPX y a -8
-KPX y aacute -8
-KPX y acircumflex -8
-KPX y adieresis -8
-KPX y ae -8
-KPX y agrave -8
-KPX y aring -8
-KPX y atilde -8
-KPX y c -7
-KPX y colon -26
-KPX y comma -18
-KPX y e -6
-KPX y eacute -6
-KPX y ecircumflex -6
-KPX y egrave -6
-KPX y g 7
-KPX y hyphen -4
-KPX y l -3
-KPX y o -10
-KPX y oacute -10
-KPX y odieresis -10
-KPX y ograve -10
-KPX y oslash -15
-KPX y period -14
-KPX y s -8
-KPX y semicolon -18
-KPX zero four -12
-KPX zero one -36
-KPX zero seven -31
-EndKernPairs
-EndKernData
-EndFontMetrics
diff --git a/Master/xemtex/gsfonts/z003034l.pfb b/Master/xemtex/gsfonts/z003034l.pfb
deleted file mode 100644
index 772fbfee6fa..00000000000
--- a/Master/xemtex/gsfonts/z003034l.pfb
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gsfonts/z003034l.pfm b/Master/xemtex/gsfonts/z003034l.pfm
deleted file mode 100644
index da9b3f5b495..00000000000
--- a/Master/xemtex/gsfonts/z003034l.pfm
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/gslib/CIDFnmap b/Master/xemtex/gslib/CIDFnmap
deleted file mode 100644
index 7fe74aba3bb..00000000000
--- a/Master/xemtex/gslib/CIDFnmap
+++ /dev/null
@@ -1,157 +0,0 @@
-%!
-% Copyright (C) 2001 Masatake YAMATO, Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CIDFnmap - sample CID-keyed font catalog for Ghostscript.
-
-% ----------------------------------------------------------------
-
-% This file is a catalog of CID-keyed fonts, TrueType fonts (TTF), and also
-% TrueType Collection fonts (TTC) known to Ghostscript.
-%
-% There are two ways to make a CID-keyed font loaded automatically when named:
-% C1. Put the CID-keyed font as a resource file to /Resource/CIDFont(*1).
-% (*1) A path concatenated with GenericResourceDir defined in
-% gs_res.ps and "CIDFont". The default value of GenericResourceDir
-% is "/Resource/".
-% C2. Put the CID-keyed font file to Ghostscript's font path(*2)
-% and write an entry for the CID-keyed font to this catalog.
-% (*2) Somewhere in Ghostscript font search path, which is generally
-% /usr/local/share/ghostscript/fonts. See output of `gs -h` or Use.htm,
-% Ghostscript's document.
-%
-% There are two ways to make a TrueType font loaded automatically when named:
-% T1. Write a wrapper script file for the TrueType font and put the
-% wrapper file to /Resource/CIDFont. The wrapper has to translate a
-% TrueType font file to Type 2 CID-keyed on demand. Some examples of the
-% wrapper file named "CIDFontName" as follows:
-%
-% (e1) TTF translated to Type 2 CID-keyed font
-% %!PS-Adobe-3.0 Resource-CIDFont
-% %%BeginResource: CIDFont (CIDFontName)
-% /CIDFontName (filename.ttf) .openttcidfont
-% dup length dict begin {def} forall currentdict end
-% /CIDFont defineresource pop
-% %%EndResource
-% %%EOF
-%
-% (e2) TTC with an index translated to Type 2 CID-keyed font
-% %!PS-Adobe-3.0 Resource-CIDFont
-% %%BeginResource: CIDFont (CIDFontName)
-% /CIDFontName (filename.ttc) 2 .openttcidfont
-% dup length dict begin {def} forall currentdict end
-% /CIDFont defineresource pop
-% %%EndResource
-% %%EOF
-%
-% (e3) TTC with an index and a name of RO(Registry-Ordering)-Code
-% %!PS-Adobe-3.0 Resource-CIDFont
-% %%BeginResource: CIDFont (CIDFontName)
-% /CIDFontName (filename.ttc) 2 /Adobe-GB1-Unicode .openttcidfont
-% dup length dict begin {def} forall currentdict end
-% /CIDFont defineresource pop
-% %%EndResource
-% %%EOF
-%
-% for details about the names of RO-Code written in (e3), see below.
-%
-% T2. Put the CID-keyed font file to Ghostscript's font path(*2)
-% and write an entry for the TrueType font to this catalog.
-
-% The Syntax of CIDFnmap is very similar to Fontmap.
-% Each CID-keyed font has an entry consisting of three items:
-%
-% i1. The name by which the CID-keyed font is known inside Ghostscript
-% (a Ghostscript name preceded by a `/', or a string enclosed
-% in parentheses). This is used to find the file from which
-% a font of a given name should be loaded.
-%
-% i2. Information depending on whether this is a real CID-keyed font or a
-% CID-keyed font alias:
-%
-% - For real CID-keyed fonts, the name of the CID-keyed font
-% file (a Ghostscript string, enclosed in parentheses).
-% The filename should include the extension if the CID-keyed font
-% name has.
-%
-% - For CID-keyed font aliases, the name of the CID font
-% which should be used when this one is requested,
-% preceded by a `/'. Note that an alias name cannot be enclosed
-% in parentheses.
-%
-% i3. At least one space or tab, and a terminating semicolon.
-%
-% Each CID-keyed font has an entry consisting of three essential items and
-% two optional items. The three essential items are the same to the items of
-% CID-keyed Font. Two optional items are put between i2 and i3.
-% Two optional items are:
-%
-% i4. the number that specifies TTC font index
-%
-% i5. the name of CIDs mapping to Codes
-% ``The kind of CIDs mapping to Codes'' is listed as follows:
-%
-% <RO-Code> <Comment>
-% /Adobe-CNS1-Big5 Traditional Chinese, for Big5 TrueType fonts
-% /Adobe-CNS1-Unicode Traditional Chinese, for Unicode TrueType fonts
-% /Adobe-CNS1 Traditional Chinese, for TrueType fonts (*3)
-% /Adobe-GB1-PRC Simplified Chinese, for PRC TrueType fonts
-% /Adobe-GB1-Unicode Simplified Chinese, for Unicode TrueType fonts
-% /Adobe-GB1 Simplified Chinese, for TrueType fonts (*3)
-% /Adobe-Japan1-ShiftJIS Japanese, for ShiftJIS TrueType fonts
-% /Adobe-Japan1-Unicode Japanese, for Unicode TrueType fonts
-% /Adobe-Japan1 Japanese, for TrueType fonts (*3)
-% /Adobe-Japan2-Unicode JIS Supplement, for Unicode TrueType fonts
-% /Adobe-Japan2 JIS Supplement, for TrueType fonts (*3)
-% /Adobe-Korea1-Johab Korean, for Johab TrueType fonts
-% /Adobe-Korea1-Unicode Korean, for Unicode TrueType fonts
-% /Adobe-Korea1-Wansung Korean, for Wansung TrueType fonts
-% /Adobe-Korea1 Korean, for TrueType fonts (*3)
-% (*3) Code is automatically detected by cmap table of a TrueType file.
-% If an optional item for the kind of mapping is omitted, then
-% Code of TTF and RO(Registry-Ordering) of CIDFont are automatically
-% detected by OS/2 table and cmap table of TTF, respectively.
-
-% Like Fontmap, .runlibfile is used in CIDFnmap to include other CIDFnmaps.
-
-% The following table is actually a Ghostscript data structure.
-% If you add new entries, be sure to copy the punctuation accurately;
-% in particular, you must leave at least one space or tab between each
-% field in the entry.
-
-%(CIDFnmap.Ore) .runlibfile
-%(CIDFnmap.ARP) .runlibfile
-%(CIDFnmap.Bae) .runlibfile
-%(CIDFnmap.Koc) .runlibfile
-%(CIDFnmap.Sol) .runlibfile
-%(CIDFnmap.Win) .runlibfile
-
-%(CIDFnmap.CJK) .runlibfile
-
-% native CIDFontName (BIG5) in traditional Chinese
-%(CIDFnmap.b5) .runlibfile
-
-% native CIDFontName (GB2312) in simplified Chinese
-%(CIDFnmap.gb) .runlibfile
-
-% native CIDFontName (Shift_JIS) in Japanese
-%(CIDFnmap.sj) .runlibfile
-
-% native CIDFontName (euc-kr) in Korean
-%(CIDFnmap.ksx) .runlibfile
diff --git a/Master/xemtex/gslib/CIDFnmap.ARP b/Master/xemtex/gslib/CIDFnmap.ARP
deleted file mode 100644
index adf8664a97f..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.ARP
+++ /dev/null
@@ -1,34 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.ARP,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CID fontmap for the Arphic trutype fonts
-
-% See ftp://ftp.gnu.org/pub/non-gnu/chinese-fonts-truetype/LICENSE
-% for license information regarding these fonts.
-
-% Adobe-CNS1
-
-/ZenKai-Medium (bkai00mp.ttf) ;
-/ShanHeiSun-Light (bsmi00lp.ttf) ;
-
-% Adobe-GB1
-
-/BousungEG-Light-GB (gbsn00lp.ttf) ;
-/GBZenKai-Medium (gkai00mp.ttf) ;
diff --git a/Master/xemtex/gslib/CIDFnmap.Bae b/Master/xemtex/gslib/CIDFnmap.Bae
deleted file mode 100644
index 54a64b45bd5..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.Bae
+++ /dev/null
@@ -1,31 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.Bae,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CID fontmap for the Baekmuk truetype fonts
-
-% See ftp://ftp.mizi.com/pub/baekmuk/COPYRIGHT
-% for license information regarding these fonts.
-
-% Adobe-Korea1
-
-/Baekmuk-Batang (batang.ttf) ;
-/Baekmuk-Dotum (dotum.ttf) ;
-/Baekmuk-Gulim (gulim.ttf) ;
-/Baekmuk-Headline (hline.ttf) ;
diff --git a/Master/xemtex/gslib/CIDFnmap.CJK b/Master/xemtex/gslib/CIDFnmap.CJK
deleted file mode 100644
index 0ce91d45f5a..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.CJK
+++ /dev/null
@@ -1,289 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.CJK,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CIDFontName aliases for CJK PDF/PS files
-
-%
-% Fallback aliases for CJK PDF files
-%
-%/Adobe-CNS1 /MOESung-Regular ; % CIDFnmap.Ore
-%/Adobe-CNS1 /ShanHeiSun-Light ; % CIDFnmap.ARP
-%/Adobe-CNS1 /ming ; % CIDFnmap.Sol
-%/Adobe-CNS1 /MingLiU ; % CIDFnmap.Win
-%/Adobe-CNS1 /SimSun-18030-Adobe-CNS1 ; % CIDFnmap.Win
-
-%/Adobe-GB1 /BousungEG-Light-GB ; % CIDFnmap.ARP
-%/Adobe-GB1 /zycjksun ; % CIDFnmap.Sol
-%/Adobe-GB1 /SimSun ; % CIDFnmap.Win
-
-%/Adobe-Japan1 /WadaMin-Regular ; % CIDFnmap.Ore
-%/Adobe-Japan1 /HG-MinchoL ; % CIDFnmap.Sol
-%/Adobe-Japan1 /Kochi-Mincho ; % CIDFnmap.Koc
-%/Adobe-Japan1 /MS-Mincho ; % CIDFnmap.Win
-
-%/Adobe-Japan2 /WadaMin-RegularH ; % CIDFnmap.Ore
-%/Adobe-Japan2 /HeiseiMin-W3H ; % CIDFnmap.Sol
-%/Adobe-Japan2 /MS-Mincho-Adobe-Japan2 ; % CIDFnmap.Win
-
-%/Adobe-Korea1 /Munhwa-Regular ; % CIDFnmap.Ore
-%/Adobe-Korea1 /Baekmuk-Batang ; % CIDFnmap.Bae
-%/Adobe-Korea1 /Myeongjo ; % CIDFnmap.Sol
-%/Adobe-Korea1 /Batang ; % CIDFnmap.Win
-
-%
-% Convenient aliases for PS files on Traditional Chinese PostScript printer
-%
-%/MSung-Light /MOESung-Regular ; % CIDFnmap.Ore
-%/MSung-Light /SimSun-18030-Adobe-CNS1 ; % CIDFnmap.Win
-%/MSung-Medium /ShanHeiSun-Light ; % CIDFnmap.ARP
-%/MHei-Medium /ShanHeiSun-Light ; % CIDFnmap.ARP
-%/MHei-Medium /hei ; % CIDFnmap.Sol
-%/MKai-Medium /ZenKai-Medium ; % CIDFnmap.ARP
-%/MKai-Medium /kai ; % CIDFnmap.Sol
-
-%
-% Convenient aliases for PS files on Simplified Chinese PostScript printer
-%
-%/STSong-Light /BousungEG-Light-GB ; % CIDFnmap.ARP
-%/STSong-Light /zycjksun ; % CIDFnmap.Sol
-%/STSong-Light /SimSun ; % CIDFnmap.Win
-%/STFangsong-Light /zycjkfangs ; % CIDFnmap.Sol
-%/STFangsong-Light /SimSun ; % CIDFnmap.Win
-%/STHeiti-Regular /zycjkhei ; % CIDFnmap.Sol
-%/STHeiti-Regular /SimHei ; % CIDFnmap.Win
-%/STKaiti-Regular /GBZenKai-Medium ; % CIDFnmap.ARP
-%/STKaiti-Regular /zycjkkai ; % CIDFnmap.Sol
-
-%
-% Convenient aliases for PS files on Japanese PostScript printer
-%
-%/Ryumin-Light /WadaMin-Regular ; % CIDFnmap.Ore
-%/Ryumin-Light /HG-MinchoL ; % CIDFnmap.Sol
-%/Ryumin-Light /Kochi-Mincho ; % CIDFnmap.Koc
-%/Ryumin-Light /MS-Mincho ; % CIDFnmap.Win
-%/GothicBBB-Medium /WadaGo-Bold ; % CIDFnmap.Ore
-%/GothicBBB-Medium /HG-GothicB ; % CIDFnmap.Sol
-%/GothicBBB-Medium /Kochi-Gothic ; % CIDFnmap.Koc
-%/GothicBBB-Medium /MS-Gothic ; % CIDFnmap.Win
-%/HeiseiMin-W3 /MS-Mincho ; % CIDFnmap.Win
-%/HeiseiKakuGo-W5 /MS-Gothic ; % CIDFnmap.Win
-
-%/HeiseiMin-W3H /WadaMin-RegularH ; % CIDFnmap.Ore
-%/HeiseiMin-W3H /MS-Mincho-Adobe-Japan2 ; % CIDFnmap.Win
-%/HeiseiKakuGo-W5H /WadaMaruGo-RegularH ; % CIDFnmap.Ore
-%/HeiseiKakuGo-W5H /MS-Gothic-Adobe-Japan2 ; % CIDFnmap.Win
-
-%/KozMin-Regular /MS-Mincho ; % CIDFnmap.Win
-%/KozMinPro-Regular /MS-PMincho ; % CIDFnmap.Win
-
-%
-% Convenient aliases for PS files on Korean PostScript printer
-%
-%/HYGoThic-Medium /MunhwaGothic-Regular ; % CIDFnmap.Ore
-%/HYGoThic-Medium /Baekmuk-Dotum ; % CIDFnmap.Bae
-%/HYGoThic-Medium /Gothic ; % CIDFnmap.Sol
-%/HYGoThic-Medium /Dotum ; % CIDFnmap.Win
-%/HYGungSo-Bold /Gungsuh ; % CIDFnmap.Win
-%/HYKHeadLine-Bold /Baekmuk-Headline ; % CIDFnmap.Bae
-%/HYKHeadLine-Medium /Baekmuk-Headline ; % CIDFnmap.Bae
-%/HYSMyeongJo-Medium /Munhwa-Regular ; % CIDFnmap.Ore
-%/HYSMyeongJo-Medium /Baekmuk-Batang ; % CIDFnmap.Bae
-%/HYSMyeongJo-Medium /Myeongjo ; % CIDFnmap.Sol
-%/HYSMyeongJo-Medium /Batang ; % CIDFnmap.Win
-%/HYRGoThic-Medium /Baekmuk-Gulim ; % CIDFnmap.Bae
-%/HYRGoThic-Medium /RoundedGothic ; % CIDFnmap.Sol
-%/HYRGoThic-Medium /Gulim ; % CIDFnmap.Win
-
-%
-% Convenient aliases for PS files on Traditional Chinese Acrobat Distiller
-%
-%/DFKaiShu-SB-Estd-BF /MKai-Medium ;
-%/LiGothicMed /MKai-Medium ;
-%/LiSungLight /MSung-Light ;
-%/Taipei /Adobe-CNS1 ;
-
-%
-% Convenient aliases for PS files on Simplified Chinese Acrobat Distiller
-%
-%/Beijing /Adobe-GB1 ;
-%/SIL-FangSong- /STFangsong-Light ;
-%/SIL-FangSong-Reg-Jian /STFangsong-Light ;
-%/SIL-Hei-Med-Jian /STHeiti-Regular ;
-%/SIL-Kai- /STKaiti-Regular ;
-%/SIL-Kai-Reg-Jian /STKaiti-Regular ;
-%/SIL-Song-Reg-Jian /STSong-Light ;
-
-%
-% Convenient aliases for PS files on Japanese Acrobat Distiller
-%
-%/ChuGothicBBB-Medium /GothicBBB-Medium ;
-%/ChuGothicBBB-Medium-Mono /MS-Gothic ; % CIDFnmap.Win
-%/FutoGoB101-Bold /GothicBBB-Medium ;
-%/FutoMinA101-Bold /Ryumin-Light ;
-%/GothicMB101-Bold /GothicBBB-Medium ;
-%/GothicMB101-hea /GothicBBB-Medium ;
-%/GothicMB101-Ult /GothicBBB-Medium ;
-%/HeiseiKakuGo-W3 /HeiseiKakuGo-W5 ;
-%/HeiseiKakuGo-W7 /HeiseiKakuGo-W5 ;
-%/HeiseiKakuGo-W9 /HeiseiKakuGo-W5 ;
-%/HeiseiKakuGothic-W5 /HeiseiKakuGo-W5 ;
-%/HeiseiMaruGo-W4 /HeiseiKakuGo-W5 ;
-%/HeiseiMin-W5 /HeiseiMin-W3 ;
-%/HeiseiMin-W7 /HeiseiMin-W3 ;
-%/HeiseiMin-W9 /HeiseiMin-W3 ;
-%/HeiseiMincho-W3 /HeiseiMin-W3 ;
-%/HonMincho-M /Ryumin-Light ;
-%/Jun34-Medium /Ryumin-Light ;
-%/Jun101-Light /Ryumin-Light ;
-%/Jun501-Bold /Ryumin-Light ;
-%/KozMin-Bold /GothicBBB-Medium ;
-%/KozMin-ExtraLight /Ryumin-Light ;
-%/KozMin-Heavy /GothicBBB-Medium ;
-%/KozMin-Light /Ryumin-Light ;
-%/KozMin-Medium /Ryumin-Light ;
-%/KyokaICA-Light /Adobe-Japan1 ;
-%/KyokaICA-Medium /Adobe-Japan1 ;
-%/KyokaICA-regular /Adobe-Japan1 ;
-%/LogoArl-Bold /Adobe-Japan1 ;
-%/LogoArl-Light /Adobe-Japan1 ;
-%/LogoArl-Medium /Adobe-Japan1 ;
-%/LogoArl-Ultra /Adobe-Japan1 ;
-%/LogoCut-Bold /Adobe-Japan1 ;
-%/LogoCut-Light /Adobe-Japan1 ;
-%/LogoCut-Medium /Adobe-Japan1 ;
-%/LogoCut-Ultra /Adobe-Japan1 ;
-%/LogoLine-Bold /Adobe-Japan1 ;
-%/LogoLine-Light /Adobe-Japan1 ;
-%/LogoLine-Medium /Adobe-Japan1 ;
-%/LogoLine-Ultra /Adobe-Japan1 ;
-%/MaruGothic-M /GothicBBB-Medium ;
-%/MidashiGo-MB31 /GothicBBB-Medium ;
-%/MidashiMin-MA31 /Ryumin-Light ;
-%/Osaka /Ryumin-Light ;
-%/Osaka-Mono /MS-Mincho ; % CIDFnmap.Win
-%/Ryumin-Bold /Ryumin-Light ;
-%/Ryumin-heavy /Ryumin-Light ;
-%/Ryumin-Light-KL /Ryumin-Light ;
-%/Ryumin-Light-KL-Mono /MS-Mincho ; % CIDFnmap.Win
-%/Ryumin-Medium /Ryumin-Light ;
-%/Ryumin-regular /Ryumin-Light ;
-%/Ryumin-Ultra /Ryumin-Light ;
-%/ShinGo-Bold /GothicBBB-Medium ;
-%/ShinGo-Light /GothicBBB-Medium ;
-%/ShinGo-Medium /GothicBBB-Medium ;
-%/ShinGo-regular /GothicBBB-Medium ;
-%/ShinGo-Ultra /GothicBBB-Medium ;
-%/ShinseiKai-CBSK1 /Ryumin-Light ;
-%/TBKomachiG-B /Adobe-Japan1 ;
-%/TBKomachiG-DB /Adobe-Japan1 ;
-%/TBKomachiG-E /Adobe-Japan1 ;
-%/TBKomachiG-hv /Adobe-Japan1 ;
-%/TBKomachiG-M /Adobe-Japan1 ;
-%/TBKomachiG-R /Adobe-Japan1 ;
-%/TBKomachiM-DE /Adobe-Japan1 ;
-%/TBKomachiM-E /Adobe-Japan1 ;
-%/TBKomachiM-hv /Adobe-Japan1 ;
-%/TBKomachiM-M /Adobe-Japan1 ;
-%/TBKoudoukenG-B /Adobe-Japan1 ;
-%/TBKoudoukenG-DB /Adobe-Japan1 ;
-%/TBKoudoukenG-E /Adobe-Japan1 ;
-%/TBKoudoukenG-hv /Adobe-Japan1 ;
-%/TBKoudoukenG-M /Adobe-Japan1 ;
-%/TBKoudoukenG-R /Adobe-Japan1 ;
-%/TBKoudoukenM-DE /Adobe-Japan1 ;
-%/TBKoudoukenM-E /Adobe-Japan1 ;
-%/TBKoudoukenM-hv /Adobe-Japan1 ;
-%/TBKoudoukenM-M /Adobe-Japan1 ;
-%/TBRyokanG-B /Adobe-Japan1 ;
-%/TBRyokanG-DB /Adobe-Japan1 ;
-%/TBRyokanG-E /Adobe-Japan1 ;
-%/TBRyokanG-hv /Adobe-Japan1 ;
-%/TBRyokanG-M /Adobe-Japan1 ;
-%/TBRyokanG-R /Adobe-Japan1 ;
-%/TBRyokanM-DE /Adobe-Japan1 ;
-%/TBRyokanM-E /Adobe-Japan1 ;
-%/TBRyokanM-hv /Adobe-Japan1 ;
-%/TBRyokanM-M /Adobe-Japan1 ;
-%/TBTsukijiG-B /Adobe-Japan1 ;
-%/TBTsukijiG-DB /Adobe-Japan1 ;
-%/TBTsukijiG-E /Adobe-Japan1 ;
-%/TBTsukijiG-hv /Adobe-Japan1 ;
-%/TBTsukijiG-M /Adobe-Japan1 ;
-%/TBTsukijiG-R /Adobe-Japan1 ;
-%/TBTsukijiM-DE /Adobe-Japan1 ;
-%/TBTsukijiM-E /Adobe-Japan1 ;
-%/TBTsukijiM-hv /Adobe-Japan1 ;
-%/TBTsukijiM-M /Adobe-Japan1 ;
-%/TBYukinariG-B /Adobe-Japan1 ;
-%/TBYukinariG-DB /Adobe-Japan1 ;
-%/TBYukinariG-E /Adobe-Japan1 ;
-%/TBYukinariG-hv /Adobe-Japan1 ;
-%/TBYukinariG-M /Adobe-Japan1 ;
-%/TBYukinariG-R /Adobe-Japan1 ;
-%/TBYukinariM-DE /Adobe-Japan1 ;
-%/TBYukinariM-E /Adobe-Japan1 ;
-%/TBYukinariM-hv /Adobe-Japan1 ;
-%/TBYukinariM-M /Adobe-Japan1 ;
-%/TypeBankG-B /Adobe-Japan1 ;
-%/TypeBankG-DB /Adobe-Japan1 ;
-%/TypeBankG-E /Adobe-Japan1 ;
-%/TypeBankG-hv /Adobe-Japan1 ;
-%/TypeBankG-M /Adobe-Japan1 ;
-%/TypeBankG-R /Adobe-Japan1 ;
-%/TypeBankM-DE /Adobe-Japan1 ;
-%/TypeBankM-E /Adobe-Japan1 ;
-%/TypeBankM-hv /Adobe-Japan1 ;
-%/TypeBankM-M /Adobe-Japan1 ;
-
-%
-% Convenient aliases for PS files on Korean Acrobat Distiller
-%
-%/AppleGothic /HYGoThic-Medium ;
-%/AppleMyungjo /HYSMyeongJo-Medium ;
-%/HYSinMyeongJo-Medium /HYSMyeongJo-Medium ;
-%/JCfg /Adobe-Korea1 ;
-%/JCkg /Adobe-Korea1 ;
-%/Munhwa-Regular /HYSMyeongJo-Medium ;
-%/MunhwaGothic-Regular /HYGoThic-Medium ;
-%/SMAgoJ /HYGoThic-Medium ;
-%/SMAgoK /HYGoThic-Medium ;
-%/SMAgoSE /HYGoThic-Medium ;
-%/SMAgoT /HYGoThic-Medium ;
-%/SMAmu /HYSMyeongJo-Medium ;
-%/SMAmuK /HYSMyeongJo-Medium ;
-%/SMAmuSE /HYSMyeongJo-Medium ;
-%/SMAmuT /HYSMyeongJo-Medium ;
-%/SMGothic-Bold /HYGoThic-Medium ;
-%/SMGothic-DemiBold /HYGoThic-Medium ;
-%/SMGothic-Light /HYGoThic-Medium ;
-%/SMGothic-Medium /HYGoThic-Medium ;
-%/SMMyungjo-Bold /HYSMyeongJo-Medium ;
-%/SMMyungjo-DemiBold /HYSMyeongJo-Medium ;
-%/SMMyungjo-Light /HYSMyeongJo-Medium ;
-%/SMMyungjo-Medium /HYSMyeongJo-Medium ;
-%/SMgoJ /HYGoThic-Medium ;
-%/SMgoK /HYGoThic-Medium ;
-%/SMgoSE /HYGoThic-Medium ;
-%/SMgoT /HYGoThic-Medium ;
-%/SMmu /HYSMyeongJo-Medium ;
-%/SMmuK /HYSMyeongJo-Medium ;
-%/SMmuSE /HYSMyeongJo-Medium ;
-%/SMmuT /HYSMyeongJo-Medium ;
-%/Seoul /Adobe-Korea1 ;
diff --git a/Master/xemtex/gslib/CIDFnmap.Koc b/Master/xemtex/gslib/CIDFnmap.Koc
deleted file mode 100644
index 8c1e5b95044..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.Koc
+++ /dev/null
@@ -1,50 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.Koc,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CID fontmap for Kochi truetype fonts
-
-% Kochi Mincho (aka Watanabe-Light) font series and
-% Kochi Gothic (aka Kochi-WadaLabGothic) font series for Adobe-Japan1
-
-% Kochi Mincho and Gothic - TrueType
-% Editor: Yasuyuki Furukawa <Furukawa.Yasuyuki@fujixerox.co.jp>
-% URL: http://www.on.cs.keio.ac.jp/~yasu/linux/fonts/
-%
-% Kochi-Mincho: Public domain, except for NAGA10 bitmap data
-% Kochi-Gothic: Wada Lab's font license, except for NAGA10 bitmap data
-%
-%/Kochi-Mincho (kochi-mincho.ttf) ;
-%/Kochi-Gothic (kochi-gothic.ttf) ;
-%
-% Notice: In CID-keyed space of Kochi-Mincho, although you may find that
-% CIDs 7611,7613-7625,7629,7630,11847,12041-12043 are incorrectly
-% assigned from glyph IDs, it is because that these are for WORKING AREA
-% to develop "kochi-mincho.ttf" font for the time being.
-
-% Kochi Mincho and Gothic - CIDFontType 0
-% Author: KANOU Hiroki <kanou@mil.allnet.ne.jp>
-% URL: http://kappa.allnet.ne.jp/Kochi-CID/index-e.html
-%
-% Kochi-Mincho: Public domain. Designed by Yasuyuki Furukawa.
-% Kochi-Gothic: Wada Lab's font license.
-%
-/Kochi-Mincho (Kochi-Mincho) ;
-/Kochi-Gothic (Kochi-Gothic) ;
-
diff --git a/Master/xemtex/gslib/CIDFnmap.Ore b/Master/xemtex/gslib/CIDFnmap.Ore
deleted file mode 100644
index b81f1a709cd..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.Ore
+++ /dev/null
@@ -1,53 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.Ore,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CID fontmap for O'Reilly cjkv font samples
-
-% See ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/samples/
-
-% Adobe-CNS1
-
-/MOEKai-Regular (MOEKai-Regular) ;
-/MOESung-Regular (MOESung-Regular) ;
-
-% Adobe-GB1
-
-% Adobe-Japan1
-
-/WadaGo-Bold (WadaGo-Bold) ;
-/WadaMaruGo-Regular (WadaMaruGo-Regular) ;
-/WadaMin-Bold (WadaMin-Bold) ;
-/WadaMin-Regular (WadaMin-Regular) ;
-
-% Adobe-Japan2
-
-/WadaMaruGo-RegularH (WadaMaruGo-RegularH) ;
-/WadaMin-RegularH (WadaMin-RegularH) ;
-
-% Adobe-Korea1
-
-/Munhwa-Regular (Munhwa-Regular) ;
-/MunhwaGothic-Bold (MunhwaGothic-Bold) ;
-/MunhwaGothic-Regular (MunhwaGothic-Regular) ;
-/MunhwaGungSeo-Bold (MunhwaGungSeo-Bold) ;
-/MunhwaGungSeo-Light (MunhwaGungSeo-Light) ;
-/MunhwaGungSeoHeulim-Bold (MunhwaGungSeoHeulim-Bold) ;
-/MunhwaGungSeoHeulim-Light (MunhwaGungSeoHeulim-Light) ;
-/MunhwaHoonMin-Regular (MunhwaHoonMin-Regular) ;
diff --git a/Master/xemtex/gslib/CIDFnmap.Sol b/Master/xemtex/gslib/CIDFnmap.Sol
deleted file mode 100644
index c14db768a3f..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.Sol
+++ /dev/null
@@ -1,54 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.Sol,v 1.1.4.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CID fontmap for Solaris
-
-% Adobe-CNS1
-
-/hei (/usr/openwin/lib/locale/zh_TW.BIG5/X11/fonts/TT/hei.ttf) /Adobe-CNS1-Unicode ;
-/kai (/usr/openwin/lib/locale/zh_TW.BIG5/X11/fonts/TT/kai.ttf) /Adobe-CNS1-Unicode ;
-/ming (/usr/openwin/lib/locale/zh_TW.BIG5/X11/fonts/TT/ming.ttf) /Adobe-CNS1-Unicode ;
-
-% Adobe-GB1
-
-/zycjkfangs (/usr/openwin/lib/locale/zh.GBK/X11/fonts/TrueType/fangsongti.ttf) ;
-/zycjkhei (/usr/openwin/lib/locale/zh.GBK/X11/fonts/TrueType/heiti.ttf) ;
-/zycjkkai (/usr/openwin/lib/locale/zh.GBK/X11/fonts/TrueType/kaiti.ttf) ;
-/zycjksun (/usr/openwin/lib/locale/zh.GBK/X11/fonts/TrueType/songti.ttf) ;
-/CFangSongGB-Light (/usr/openwin/lib/locale/zh/X11/fonts/TrueType/cfsgbl.ttf) /Adobe-GB1-PRC ;
-/MHeiGB-Bold (/usr/openwin/lib/locale/zh/X11/fonts/TrueType/mhgbb.ttf) /Adobe-GB1-PRC ;
-/MKaiGB-Medium (/usr/openwin/lib/locale/zh/X11/fonts/TrueType/mkgbm.ttf) /Adobe-GB1-PRC ;
-/MSungGB-Light (/usr/openwin/lib/locale/zh/X11/fonts/TrueType/msgbl.ttf) /Adobe-GB1-PRC ;
-
-% Adobe-Japan1
-
-/HG-GothicB (/usr/openwin/lib/locale/ja/X11/fonts/TT/HG-GothicB.ttf) ;
-/HG-MinchoL (/usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf) ;
-
-% Adobe-Japan2
-
-/HeiseiMin-W3H (/usr/openwin/lib/locale/ja/X11/fonts/TT/HeiseiMin-W3H.ttf) /Adobe-Japan2-Unicode ;
-
-% Adobe-Korea1
-
-/Gothic (/usr/openwin/lib/locale/ko/X11/fonts/TrueType/h2gtrm.ttf) ;
-/RoundedGothic (/usr/openwin/lib/locale/ko/X11/fonts/TrueType/h2drrm.ttf) ;
-/Haeseo (/usr/openwin/lib/locale/ko/X11/fonts/TrueType/h2hsrm.ttf) ;
-/Myeongjo (/usr/openwin/lib/locale/ko/X11/fonts/TrueType/h2mjsm.ttf) ;
diff --git a/Master/xemtex/gslib/CIDFnmap.Win b/Master/xemtex/gslib/CIDFnmap.Win
deleted file mode 100644
index 2b263a7d152..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.Win
+++ /dev/null
@@ -1,79 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.Win,v 1.1.2.1 2002/04/02 14:47:42 mpsuzuki Exp $
-% CID fontmap for MS Windows
-
-% Adobe-CNS1
-
-/MingLiU (mingliu.ttc) ;
-/PMingLiU (mingliu.ttc) 2 ;
-
-/SimSun-18030-Adobe-CNS1 (SimSun18030.ttc) /Adobe-CNS1 ;
-/NSimSun-18030-Adobe-CNS1 (SimSun18030.ttc) 2 /Adobe-CNS1 ;
-
-% Adobe-GB1
-
-/SimHei (simhei.ttf) ;
-
-/SimSun (simsun.ttc) ;
-/NSimSun (simsun.ttc) 2 ;
-
-/SimSun-18030 (SimSun18030.ttc) /Adobe-GB1 ;
-/NSimSun-18030 (SimSun18030.ttc) 2 /Adobe-GB1 ;
-
-% Adobe-Japan1
-
-/MS-Gothic (msgothic.ttc) ;
-/MS-PGothic (msgothic.ttc) 2 ;
-/MS-UI-Gothic (msgothic.ttc) 3 ;
-(MS Gothic) (msgothic.ttc) ;
-(MS PGothic) (msgothic.ttc) 2 ;
-(MS UI Gothic) (msgothic.ttc) 3 ;
-/MSGothic (msgothic.ttc) ;
-/MSPGothic (msgothic.ttc) 2 ;
-/MSUIGothic (msgothic.ttc) 3 ;
-
-/MS-Mincho (msmincho.ttc) ;
-/MS-PMincho (msmincho.ttc) 2 ;
-(MS Mincho) (msmincho.ttc) ;
-(MS PMincho) (msmincho.ttc) 2 ;
-/MSMincho (msmincho.ttc) ;
-/MSPMincho (msmincho.ttc) 2 ;
-
-% Adobe-Japan2
-
-/MS-Gothic-Adobe-Japan2 (msgothic.ttc) /Adobe-Japan2 ;
-/MS-PGothic-Adobe-Japan2 (msgothic.ttc) 2 /Adobe-Japan2 ;
-/MS-UI-Gothic-Adobe-Japan2 (msgothic.ttc) 3 /Adobe-Japan2 ;
-
-/MS-Mincho-Adobe-Japan2 (msmincho.ttc) /Adobe-Japan2 ;
-/MS-PMincho-Adobe-Japan2 (msmincho.ttc) 2 /Adobe-Japan2 ;
-
-% Adobe-Korea1
-
-/Batang (batang.ttc) ;
-/BatangChe (batang.ttc) 2 ;
-/Gungsuh (batang.ttc) 3 ;
-/GungsuhChe (batang.ttc) 4 ;
-
-/Gulim (gulim.ttc) ;
-/GulimChe (gulim.ttc) 2 ;
-/Dotum (gulim.ttc) 3 ;
-/DotumChe (gulim.ttc) 4 ;
diff --git a/Master/xemtex/gslib/CIDFnmap.b5 b/Master/xemtex/gslib/CIDFnmap.b5
deleted file mode 100644
index 5ce66a9c632..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.b5
+++ /dev/null
@@ -1,26 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.b5,v 1.1.2.2 2002/02/11 20:36:45 giles Exp $
-% CID fontmap for chinese-big5 encoding CIDFontName
-
-(§ºÅé Light) /MSung-Light ;
-(§ºÅé) /MSung-Light ;
-(¤¤¶ÂÅé Medium) /MHei-Medium ;
-(¤¤¶ÂÅé) /MHei-Medium ;
diff --git a/Master/xemtex/gslib/CIDFnmap.gb b/Master/xemtex/gslib/CIDFnmap.gb
deleted file mode 100644
index 0db66013d4e..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.gb
+++ /dev/null
@@ -1,24 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.gb,v 1.1.2.2 2002/02/11 20:36:45 giles Exp $
-% CID fontmap for chinese-gb2312 encoding CIDFontName
-
-(»ªÎÄËÎÌå Light) /STSong-Light ;
-(»ªÎÄËÎÌå) /STSong-Light ;
diff --git a/Master/xemtex/gslib/CIDFnmap.ksx b/Master/xemtex/gslib/CIDFnmap.ksx
deleted file mode 100644
index 198d68501ca..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.ksx
+++ /dev/null
@@ -1,31 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.ksx,v 1.1.2.2 2002/02/11 20:36:45 giles Exp $
-% CID fontmap for euc-korea encoding CIDFontName
-
-(HY½Å¸íÁ¶ Medium) /HYSMyeongJo-Medium ;
-(HY½Å¸íÁ¶) /HYSMyeongJo-Medium ;
-(HYÁß°íµñ Medium) /HYGoThic-Medium ;
-(HYÁß°íµñ) /HYGoThic-Medium ;
-(HY±Ã¼­B) /HYGungSo-Bold ;
-(HY°¢Çìµå¶óÀÎ) /HYKHeadLine-Bold ;
-(HY°¢Çìµå¶óÀÎ Medium) /HYKHeadLine-Medium ;
-(HYµÕ±Ù°íµñ Medium) /HYRGoThic-Medium ;
-(HYµÕ±Ù°íµñ) /HYRGoThic-Medium ;
diff --git a/Master/xemtex/gslib/CIDFnmap.sj b/Master/xemtex/gslib/CIDFnmap.sj
deleted file mode 100644
index 70a8732a648..00000000000
--- a/Master/xemtex/gslib/CIDFnmap.sj
+++ /dev/null
@@ -1,81 +0,0 @@
-%!
-% Copyright (C) 2001 Taiji Yamada and gs-cjk project
-%
-% This file is part of GNU Ghostscript.
-%
-% GNU Ghostscript is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
-% to anyone for the consequences of using it or for whether it serves any
-% particular purpose or works at all, unless he says so in writing. Refer
-% to the GNU General Public License for full details.
-%
-% Everyone is granted permission to copy, modify and redistribute GNU
-% Ghostscript, but only under the conditions described in the GNU General
-% Public License. A copy of this license is supposed to have been given
-% to you along with GNU Ghostscript so you can know your rights and
-% responsibilities. It should be in a file named COPYING. Among other
-% things, the copyright notice and this notice must be preserved on all
-% copies.
-
-% $Id: CIDFnmap.sj,v 1.1.2.2 2002/02/11 20:36:45 giles Exp $
-% CID fontmap for japanese-shift-jis encoding CIDFontName
-
-(‚l‚r–¾’©) /MS-Mincho ;
-/#82l#82r#96#BE#92#A9 /MS-Mincho ;
-(‚l‚r‚o–¾’©) /MS-PMincho ;
-/#82l#82r#82o#96#BE#92#A9 /MS-PMincho ;
-(‚l‚r –¾’©) /MS-Mincho ;
-/#82l#82r#20#96#BE#92#A9 /MS-Mincho ;
-(‚l‚r ‚o–¾’©) /MS-PMincho ;
-/#82l#82r#20#82o#96#BE#92#A9 /MS-PMincho ;
-
-(@‚l‚r–¾’©) /MS-Mincho ;
-/@#82l#82r#96#BE#92#A9 /MS-Mincho ;
-(@‚l‚r‚o–¾’©) /MS-PMincho ;
-/@#82l#82r#82o#96#BE#92#A9 /MS-PMincho ;
-(@‚l‚r –¾’©) /MS-Mincho ;
-/@#82l#82r#20#96#BE#92#A9 /MS-Mincho ;
-(@‚l‚r ‚o–¾’©) /MS-PMincho ;
-/@#82l#82r#20#82o#96#BE#92#A9 /MS-PMincho ;
-
-(‚l‚rƒSƒVƒbƒN) /MS-Gothic ;
-/#82l#82r#83S#83V#83b#83N /MS-Gothic ;
-(‚l‚r‚oƒSƒVƒbƒN) /MS-PGothic ;
-/#82l#82r#82o#83S#83V#83b#83N /MS-PGothic ;
-(‚l‚r ƒSƒVƒbƒN) /MS-Gothic ;
-/#82l#82r#20#83S#83V#83b#83N /MS-Gothic ;
-(‚l‚r ‚oƒSƒVƒbƒN) /MS-PGothic ;
-/#82l#82r#20#82o#83S#83V#83b#83N /MS-PGothic ;
-
-(@‚l‚rƒSƒVƒbƒN) /MS-Gothic ;
-/@#82l#82r#83S#83V#83b#83N /MS-Gothic ;
-(@‚l‚r‚oƒSƒVƒbƒN) /MS-PGothic ;
-/@#82l#82r#82o#83S#83V#83b#83N /MS-PGothic ;
-(@‚l‚r ƒSƒVƒbƒN) /MS-Gothic ;
-/@#82l#82r#20#83S#83V#83b#83N /MS-Gothic ;
-(@‚l‚r ‚oƒSƒVƒbƒN) /MS-PGothic ;
-/@#82l#82r#20#82o#83S#83V#83b#83N /MS-PGothic ;
-
-(•½¬–¾’© W3) /HeiseiMin-W3 ;
-(•½¬–¾’©W3) /HeiseiMin-W3 ;
-(•½¬ŠpƒSƒVƒbƒN W5) /HeiseiKakuGo-W5 ;
-(•½¬ŠpƒSƒVƒbƒNW5) /HeiseiKakuGo-W5 ;
-(¬’Ë–¾’© R) /KozMin-Regular ;
-(¬’Ë–¾’©R) /KozMin-Regular ;
-
-%
-% If you found an error at substituting /Adobe-Identity for a fontname
-% in reading a PDF file, and if you are the owner of the actual font
-% named as the fontname then you can use such locale-specific fonts by
-% adding entry as follows:
-%
-% But, recent PDF files do not require /Adobe-Identity, locale-specific
-% fonts. Thus, you may get worse for adding such entry.
-%
-%(HGŠÛºÞ¼¯¸M-PRO) (hgrsmp.ttf) /Identity ;
-%(HG³ž²‘‘Ì-PRO) (hgrskp.ttf) /Identity ;
-%
-% As another choise, following one line acts "a fallback font" for such
-% as locale-specific fonts:
-%
-%/Adobe-Identity (hgrskp.ttf) /Identity ;
diff --git a/Master/xemtex/gslib/Fontmap b/Master/xemtex/gslib/Fontmap
deleted file mode 100644
index a12c08fa81b..00000000000
--- a/Master/xemtex/gslib/Fontmap
+++ /dev/null
@@ -1,3 +0,0 @@
-%!
-% See Fontmap.GS for the syntax of real Fontmap files.
-(Fontmap.GS) .runlibfile
diff --git a/Master/xemtex/gslib/Fontmap.ATB b/Master/xemtex/gslib/Fontmap.ATB
deleted file mode 100644
index 517f45240a1..00000000000
--- a/Master/xemtex/gslib/Fontmap.ATB
+++ /dev/null
@@ -1,169 +0,0 @@
-% Copyright (C) 1994 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.ATB,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Fontmap.ATB - an alternative Fontmap for Ghostscript,
-% suitable for use with the 65 Adobe Type Manager fonts
-% supplied with Adobe Type Basics.
-
-% Before you use ATM fonts with Ghostscript, please read carefully
-% the license that accompanies the ATM fonts; neither Aladdin Enterprises
-% nor any other distributor of Ghostscript takes any responsibility for
-% any possible violations of such licenses.
-
-% The 65 Adobe Type Basics ATM fonts
-
-%disk 1
-/Bookman-Light (bkl_____.pfb) ;
-/Bookman-Demi (bkd_____.pfb) ;
-/Bookman-DemiItalic (bkdi____.pfb) ;
-/Bookman-LightItalic (bkli____.pfb) ;
-/Courier (com_____.pfb) ;
-/Courier-Bold (cob_____.pfb) ;
-/Courier-BoldOblique (cobo____.pfb) ;
-/Courier-Oblique (coo_____.pfb) ;
-/Helvetica (hv______.pfb) ;
-/Helvetica-Bold (hvb_____.pfb) ;
-/Helvetica-BoldOblique (hvbo____.pfb) ;
-/Helvetica-Oblique (hvo_____.pfb) ;
-/Helvetica-Narrow (hvn_____.pfb) ;
-/Helvetica-Narrow-Bold (hvnb____.pfb) ;
-/Helvetica-Narrow-BoldOblique (hvnbo___.pfb) ;
-/Helvetica-Narrow-Oblique (hvno____.pfb) ;
-/Palatino-Roman (por_____.pfb) ;
-/Palatino-Bold (pob_____.pfb) ;
-/Palatino-BoldItalic (pobi____.pfb) ;
-/Palatino-Italic (poi_____.pfb) ;
-/Symbol (sy______.pfb) ;
-/Times-Roman (tir_____.pfb) ;
-/Times-Bold (tib_____.pfb) ;
-/Times-BoldItalic (tibi____.pfb) ;
-/Times-Italic (tii_____.pfb) ;
-
-% disk2
-/AGaramond-Regular (gdrg____.pfb) ;
-/AGaramond-Italic (gdi_____.pfb) ;
-/AGaramond-Bold (gdb_____.pfb) ;
-/AGaramond-BoldItalic (gdbi____.pfb) ;
-/Americana (am______.pfb) ;
-/Americana-ExtraBold (ameb____.pfb) ;
-/AvantGarde-Book (agw_____.pfb) ;
-/AvantGarde-Demi (agd_____.pfb) ;
-/AvantGarde-DemiOblique (agdo____.pfb) ;
-/AvantGarde-BookOblique (agwo____.pfb) ;
-/Carta (cr______.pfb) ;
-/Kaufmann (kf______.pfb) ;
-/Lithos-Regular (lorg____.pfb) ;
-/Lithos-Black (lobl____.pfb) ;
-/NewCenturySchlbk-Roman (ncr_____.pfb) ;
-/NewCenturySchlbk-Bold (ncb_____.pfb) ;
-/NewCenturySchlbk-BoldItalic (ncbi____.pfb) ;
-/NewCenturySchlbk-Italic (nci_____.pfb) ;
-/Parisian (pn______.pfb) ;
-/ParkAvenue (pa______.pfb) ;
-/Tekton (tkrg____.pfb) ;
-/Tekton-Bold (tkb_____.pfb) ;
-/Trajan-Bold (tjb_____.pfb) ;
-/ZapfChancery-MediumItalic (zcmi____.pfb) ;
-/ZapfDingbats (zd______.pfb) ;
-
-%disk 3
-/ACaslon-Regular (awrg____.pfb) ;
-/ACaslon-Semibold (awsb____.pfb) ;
-/ACaslon-SemiboldItalic (awsbi___.pfb) ;
-/ACaslon-Italic (awi_____.pfb) ;
-/Barmeno-Regular (bfrg____.pfb) ;
-/Barmeno-Medium (bfm_____.pfb) ;
-/Barmeno-Bold (bfb_____.pfb) ;
-/Barmeno-ExtraBold (bfeb____.pfb) ;
-/Blackoak (bo______.pfb) ;
-/Formata-Regular (fmrg____.pfb) ;
-/Formata-Medium (fmm_____.pfb) ;
-/Formata-MediumItalic (fmmi____.pfb) ;
-/Formata-Italic (fmi_____.pfb) ;
-/Poetica-SuppOrnaments (pvor____.pfb) ;
-/WoodtypeOrnaments-Two (woor2___.pfb) ;
-
-
-% Fonts converted from bitmaps.
-
-/Charter-Roman (bchr.gsf) ;
-/Charter-Italic (bchri.gsf) ;
-/Charter-Bold (bchb.gsf) ;
-/Charter-BoldItalic (bchbi.gsf) ;
-
-/ZapfChancery (zcr.gsf) ;
-/ZapfChancery-Oblique (zcro.gsf) ;
-/ZapfChancery-Bold (zcb.gsf) ;
-
-% Fonts from the X11R5 distribution.
-
-/Utopia-Regular (putr.gsf) ;
-/Utopia-Italic (putri.gsf) ;
-/Utopia-Bold (putb.gsf) ;
-/Utopia-BoldItalic (putbi.gsf) ;
-
-% Shareware fonts. See FONTMAP.GS for the copyright statements.
-
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-% Aliases
-/Cyrillic /Cyrillic-Regular ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-
-% Fonts converted from Hershey outlines.
-
-/Hershey-Gothic-English (hrge_r.gsf) 4290000 ;
-/Hershey-Gothic-English-Bold (hrge_rb.gsf) 4290030 ;
-/Hershey-Gothic-English-Oblique (hrge_ro.gsf) 4290010 ;
-
-/Hershey-Gothic-German (hrgr_r.gsf) 4291000 ;
-/Hershey-Gothic-German-Bold (hrgr_rb.gsf) 4291030 ;
-/Hershey-Gothic-German-Oblique (hrgr_ro.gsf) 4291010 ;
-
-/Hershey-Gothic-Italian (hrit_r.gsf) 4292000 ;
-/Hershey-Gothic-Italian-Bold (hrit_rb.gsf) 4292030 ;
-/Hershey-Gothic-Italian-Oblique (hrit_ro.gsf) 4292010 ;
-
-/Hershey-Greek-Complex (hrgk_c.gsf) 4293200 ;
-/Hershey-Greek-Simplex (hrgk_s.gsf) 4293100 ;
-
-/Hershey-Plain (hrpl_r.gsf) 4294000 ;
-/Hershey-Plain-Bold (hrpl_rb.gsf) 4294030 ;
-/Hershey-Plain-Oblique (hrpl_ro.gsf) 4294010 ;
-/Hershey-Plain-Simplex (hrpl_s.gsf) 4294100 ;
-/Hershey-Plain-Simplex-Bold (hrpl_sb.gsf) 4294130 ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrpl_sbo.gsf) 4294140 ;
-/Hershey-Plain-Simplex-Oblique (hrpl_so.gsf) 4294110 ;
-/Hershey-Plain-Triplex (hrpl_t.gsf) 4294300 ;
-/Hershey-Plain-Triplex-Italic (hrpl_ti.gsf) 4294320 ;
-/Hershey-Plain-Triplex-Bold (hrpl_tb.gsf) 4294330 ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpl_tbi.gsf) 4294350 ;
-
-/Hershey-Script-Complex (hrsc_c.gsf) 4295200 ;
-/Hershey-Script-Complex-Bold (hrsc_cb.gsf) 4295230 ;
-/Hershey-Script-Complex-Oblique (hrsc_co.gsf) 4295210 ;
-/Hershey-Script-Simplex (hrsc_s.gsf) 4295100 ;
-/Hershey-Script-Simplex-Bold (hrsc_sb.gsf) 4295130 ;
-/Hershey-Script-Simplex-Oblique (hrsc_so.gsf) 4295110 ;
-
-% This font, and only this font among the Hershey fonts, uses
-% the SymbolEncoding.
-/Hershey-Symbol (hrsy_r.gsf) 4296000 ;
diff --git a/Master/xemtex/gslib/Fontmap.ATM b/Master/xemtex/gslib/Fontmap.ATM
deleted file mode 100644
index 5ddf9973040..00000000000
--- a/Master/xemtex/gslib/Fontmap.ATM
+++ /dev/null
@@ -1,186 +0,0 @@
-% Copyright (C) 1990, 1992, 1994, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.ATM,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Fontmap.ATM - an alternative Fontmap for Ghostscript,
-% suitable for use with Adobe Type Manager fonts.
-
-% Before you use ATM fonts with Ghostscript, please read carefully
-% the license that accompanies the ATM fonts; neither Aladdin Enterprises
-% nor any other distributor of Ghostscript takes any responsibility for
-% any possible violations of such licenses.
-
-%
-%
-% Fonts contributed by:
-% URW++ Design and Development Incorporated
-% Poppenbuetteler Bogen 29A
-% D-22399 Hamburg
-% Germany
-% tel. +49 (40) 60 60 50
-% fax +49 (40) 60 60 51 11
-% http://www.urwpp.de
-% for distribution under the GNU License and Aladdin Free Public License.
-% See the notice at the head of this Fontmap file for licensing terms.
-% Each of these fonts is individually covered by the license:
-% for licensing purposes, they are not "part of" any larger entity.
-% The following notice applies to these fonts:
-%
-% Copyright URW Software, Copyright 1994 by URW.
-%
-
-% Actual fonts
-
-/URWBookmanL-DemiBold (b018015l.pfb) ;
-/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
-/URWBookmanL-Ligh (b018012l.pfb) ;
-/URWBookmanL-LighItal (b018032l.pfb) ;
-
-/NimbusMonL-Regu (n022003l.pfb) ;
-/NimbusMonL-ReguObli (n022023l.pfb) ;
-/NimbusMonL-Bold (n022004l.pfb) ;
-/NimbusMonL-BoldObli (n022024l.pfb) ;
-
-/URWGothicL-Book (a010013l.pfb) ;
-/URWGothicL-BookObli (a010033l.pfb) ;
-/URWGothicL-Demi (a010015l.pfb) ;
-/URWGothicL-DemiObli (a010035l.pfb) ;
-
-/NimbusSanL-Regu (n019003l.pfb) ;
-/NimbusSanL-ReguItal (n019023l.pfb) ;
-/NimbusSanL-Bold (n019004l.pfb) ;
-/NimbusSanL-BoldItal (n019024l.pfb) ;
-
-/NimbusSanL-ReguCond (n019043l.pfb) ;
-/NimbusSanL-ReguCondItal (n019063l.pfb) ;
-/NimbusSanL-BoldCond (n019044l.pfb) ;
-/NimbusSanL-BoldCondItal (n019064l.pfb) ;
-
-/URWPalladioL-Roma (p052003l.pfb) ;
-/URWPalladioL-Ital (p052023l.pfb) ;
-/URWPalladioL-Bold (p052004l.pfb) ;
-/URWPalladioL-BoldItal (p052024l.pfb) ;
-
-/CenturySchL-Roma (c059013l.pfb) ;
-/CenturySchL-Ital (c059033l.pfb) ;
-/CenturySchL-Bold (c059016l.pfb) ;
-/CenturySchL-BoldItal (c059036l.pfb) ;
-
-/NimbusRomNo9L-Regu (n021003l.pfb) ;
-/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
-/NimbusRomNo9L-Medi (n021004l.pfb) ;
-/NimbusRomNo9L-MediItal (n021024l.pfb) ;
-
-/StandardSymL (s050000l.pfb) ;
-
-/URWChanceryL-MediItal (z003034l.pfb) ;
-
-/Dingbats (d050000l.pfb) ;
-
-% Aliases
-
-/Bookman-Demi /URWBookmanL-DemiBold ;
-/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
-/Bookman-Light /URWBookmanL-Ligh ;
-/Bookman-LightItalic /URWBookmanL-LighItal ;
-
-/Courier /NimbusMonL-Regu ;
-/Courier-Oblique /NimbusMonL-ReguObli ;
-/Courier-Bold /NimbusMonL-Bold ;
-/Courier-BoldOblique /NimbusMonL-BoldObli ;
-
-/AvantGarde-Book /URWGothicL-Book ;
-/AvantGarde-BookOblique /URWGothicL-BookObli ;
-/AvantGarde-Demi /URWGothicL-Demi ;
-/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
-
-/Helvetica /NimbusSanL-Regu ;
-/Helvetica-Oblique /NimbusSanL-ReguItal ;
-/Helvetica-Bold /NimbusSanL-Bold ;
-/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
-
-/Helvetica-Narrow /NimbusSanL-ReguCond ;
-/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
-/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
-/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
-
-/Palatino-Roman /URWPalladioL-Roma ;
-/Palatino-Italic /URWPalladioL-Ital ;
-/Palatino-Bold /URWPalladioL-Bold ;
-/Palatino-BoldItalic /URWPalladioL-BoldItal ;
-
-/NewCenturySchlbk-Roman /CenturySchL-Roma ;
-/NewCenturySchlbk-Italic /CenturySchL-Ital ;
-/NewCenturySchlbk-Bold /CenturySchL-Bold ;
-/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
-
-/Times-Roman /NimbusRomNo9L-Regu ;
-/Times-Italic /NimbusRomNo9L-ReguItal ;
-/Times-Bold /NimbusRomNo9L-Medi ;
-/Times-BoldItalic /NimbusRomNo9L-MediItal ;
-
-/Symbol /StandardSymL ;
-
-/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
-
-/ZapfDingbats /Dingbats ;
-
-
-% ATM fonts.
-
-/Courier (com_____.pfb) ;
-/Courier-Oblique (coo_____.pfb) ;
-/Courier-Bold (cob_____.pfb) ;
-/Courier-BoldOblique (cobo____.pfb) ;
-
-/Helvetica (hv______.pfb) ;
-/Helvetica-Oblique (hvo_____.pfb) ;
-/Helvetica-Bold (hvb_____.pfb) ;
-/Helvetica-BoldOblique (hvbo____.pfb) ;
-
-/Symbol (sy______.pfb) ;
-
-/Times-Roman (tir_____.pfb) ;
-/Times-Italic (tii_____.pfb) ;
-/Times-Bold (tib_____.pfb) ;
-/Times-BoldItalic (tibi____.pfb) ;
-
-
-% More fonts from Adobe Type Manager for MS Windows.
-
-/TektonMM (zjrg____.pfb) ;
-
-/Boulevard (qtrg____.pfb) ;
-/Anna (iarg____.pfb) ;
-
-/PopplLaudatio-Regular (pyrg____.pfb) ;
-/PopplLaudatio-Medium (pym_____.pfb) ;
-/PopplLaudatio-Italic (pyi_____.pfb) ;
-/PopplLaudatio-MediumItalic (pymi____.pfb) ;
-
-/Boton-Regular (tnr_____.pfb) ;
-/Boton-Medium (tnm_____.pfb) ;
-/Boton-Italic (tni_____.pfb) ;
-/Boton-MediumItalic (tnmi____.pfb) ;
-
-/BaskervilleBE-Regular (virg____.pfb) ;
-/BaskervilleBE-Medium (vim_____.pfb) ;
-/BaskervilleBE-Italic (vii_____.pfb) ;
-/BaskervilleBE-MediumItalic (vimi____.pfb) ;
-
-/Giddyup (wg______.pfb) ;
-/Giddyup-Thangs (wgtha___.pfb) ;
-
diff --git a/Master/xemtex/gslib/Fontmap.GS b/Master/xemtex/gslib/Fontmap.GS
deleted file mode 100644
index eaebd9adc83..00000000000
--- a/Master/xemtex/gslib/Fontmap.GS
+++ /dev/null
@@ -1,404 +0,0 @@
-% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.GS,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Fontmap - standard font catalog for Ghostscript.
-
-% ----------------------------------------------------------------
-
-% This file is a catalog of fonts known to Ghostscript. Any font
-% that is to be loaded automatically when named must be in this catalog,
-% except for fonts that Ghostscript finds automatically in directories
-% named in the GS_FONTPATH environment variable.
-
-% Each font has an entry consisting of three items:
-%
-% - The name by which the font is known inside Ghostscript
-% (a Ghostscript name preceded by a `/', or a string enclosed
-% in parentheses). This is used to find the file from which
-% a font of a given name should be loaded.
-%
-% - Information depending on whether this is a real font or a
-% font alias:
-%
-% - For real fonts, the name of the Ghostscript font
-% file (a Ghostscript string, enclosed in parentheses).
-% The filename should include the extension, which (by
-% convention) is `.gsf'. `.pfa' and `.pfb' files are
-% also usable as fonts for Ghostscript.
-%
-% - For font aliases, the name of the font which should
-% be used when this one is requested, preceded by a
-% `/'. See the entry for Charter below for an example.
-% Note that an alias name cannot be enclosed in parentheses.
-%
-% - At least one space or tab, and a terminating semicolon.
-
-% Because of limitations in the MS-DOS environment, Ghostscript font
-% file names must be no more than 8 characters long, must consist only
-% of LOWER CASE letters, digits, and underscores, and must start with a
-% letter. Font names, on the other hand, need only obey the syntax of
-% names in the Ghostscript language, which is much more liberal.
-
-% The following table is actually a Ghostscript data structure.
-% If you add new entries, be sure to copy the punctuation accurately;
-% in particular, you must leave at least one space or tab between each
-% field in the entry. Also, please read fonts.doc for important information
-% about font names.
-
-% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
-% and other programs that don't include full PostScript interpreters,
-% as well as with PostScript interpreters; .gsf fonts are compatible with
-% PostScript interpreters, but not with ATM or similar programs.
-
-%
-%
-% Fonts contributed by:
-% URW++ Design and Development Incorporated
-% Poppenbuetteler Bogen 29A
-% D-22399 Hamburg
-% Germany
-% tel. +49 (40) 60 60 50
-% fax +49 (40) 60 60 51 11
-% http://www.urwpp.de
-% for distribution under the GNU License and Aladdin Free Public License.
-% See the notice at the head of this Fontmap file for licensing terms.
-% Each of these fonts is individually covered by the license:
-% for licensing purposes, they are not "part of" any larger entity.
-% The following notice applies to these fonts:
-%
-% Copyright URW Software, Copyright 1994 by URW.
-%
-
-% Actual fonts
-
-/URWBookmanL-DemiBold (b018015l.pfb) ;
-/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
-/URWBookmanL-Ligh (b018012l.pfb) ;
-/URWBookmanL-LighItal (b018032l.pfb) ;
-
-/NimbusMonL-Regu (n022003l.pfb) ;
-/NimbusMonL-ReguObli (n022023l.pfb) ;
-/NimbusMonL-Bold (n022004l.pfb) ;
-/NimbusMonL-BoldObli (n022024l.pfb) ;
-
-/URWGothicL-Book (a010013l.pfb) ;
-/URWGothicL-BookObli (a010033l.pfb) ;
-/URWGothicL-Demi (a010015l.pfb) ;
-/URWGothicL-DemiObli (a010035l.pfb) ;
-
-/NimbusSanL-Regu (n019003l.pfb) ;
-/NimbusSanL-ReguItal (n019023l.pfb) ;
-/NimbusSanL-Bold (n019004l.pfb) ;
-/NimbusSanL-BoldItal (n019024l.pfb) ;
-
-/NimbusSanL-ReguCond (n019043l.pfb) ;
-/NimbusSanL-ReguCondItal (n019063l.pfb) ;
-/NimbusSanL-BoldCond (n019044l.pfb) ;
-/NimbusSanL-BoldCondItal (n019064l.pfb) ;
-
-/URWPalladioL-Roma (p052003l.pfb) ;
-/URWPalladioL-Ital (p052023l.pfb) ;
-/URWPalladioL-Bold (p052004l.pfb) ;
-/URWPalladioL-BoldItal (p052024l.pfb) ;
-
-/CenturySchL-Roma (c059013l.pfb) ;
-/CenturySchL-Ital (c059033l.pfb) ;
-/CenturySchL-Bold (c059016l.pfb) ;
-/CenturySchL-BoldItal (c059036l.pfb) ;
-
-/NimbusRomNo9L-Regu (n021003l.pfb) ;
-/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
-/NimbusRomNo9L-Medi (n021004l.pfb) ;
-/NimbusRomNo9L-MediItal (n021024l.pfb) ;
-
-/StandardSymL (s050000l.pfb) ;
-
-/URWChanceryL-MediItal (z003034l.pfb) ;
-
-/Dingbats (d050000l.pfb) ;
-
-% Aliases
-
-/Bookman-Demi /URWBookmanL-DemiBold ;
-/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
-/Bookman-Light /URWBookmanL-Ligh ;
-/Bookman-LightItalic /URWBookmanL-LighItal ;
-
-/Courier /NimbusMonL-Regu ;
-/Courier-Oblique /NimbusMonL-ReguObli ;
-/Courier-Bold /NimbusMonL-Bold ;
-/Courier-BoldOblique /NimbusMonL-BoldObli ;
-
-/AvantGarde-Book /URWGothicL-Book ;
-/AvantGarde-BookOblique /URWGothicL-BookObli ;
-/AvantGarde-Demi /URWGothicL-Demi ;
-/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
-
-/Helvetica /NimbusSanL-Regu ;
-/Helvetica-Oblique /NimbusSanL-ReguItal ;
-/Helvetica-Bold /NimbusSanL-Bold ;
-/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
-
-/Helvetica-Narrow /NimbusSanL-ReguCond ;
-/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
-/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
-/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
-
-/Palatino-Roman /URWPalladioL-Roma ;
-/Palatino-Italic /URWPalladioL-Ital ;
-/Palatino-Bold /URWPalladioL-Bold ;
-/Palatino-BoldItalic /URWPalladioL-BoldItal ;
-
-/NewCenturySchlbk-Roman /CenturySchL-Roma ;
-/NewCenturySchlbk-Italic /CenturySchL-Ital ;
-/NewCenturySchlbk-Bold /CenturySchL-Bold ;
-/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
-
-/Times-Roman /NimbusRomNo9L-Regu ;
-/Times-Italic /NimbusRomNo9L-ReguItal ;
-/Times-Bold /NimbusRomNo9L-Medi ;
-/Times-BoldItalic /NimbusRomNo9L-MediItal ;
-
-/Symbol /StandardSymL ;
-
-/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
-
-/ZapfDingbats /Dingbats ;
-
-%
-%
-% Type 1 fonts contributed to the X11R5 distribution.
-%
-
-% The following notice accompanied the Charter fonts.
-%
-% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
-%
-% You are hereby granted permission under all Bitstream propriety rights
-% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
-% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
-% for any purpose and without restriction; provided, that this notice is
-% left intact on all copies of such fonts and that Bitstream's trademark
-% is acknowledged as shown below on all unmodified copies of the 4 Charter
-% Type 1 fonts.
-%
-% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
-
-/CharterBT-Roman (bchr.pfa) ;
-/CharterBT-Italic (bchri.pfa) ;
-/CharterBT-Bold (bchb.pfa) ;
-/CharterBT-BoldItalic (bchbi.pfa) ;
-
-% Aliases
-
-/Charter-Roman /CharterBT-Roman ;
-/Charter-Italic /CharterBT-Italic ;
-/Charter-Bold /CharterBT-Bold ;
-/Charter-BoldItalic /CharterBT-BoldItalic ;
-
-% The following notice accompanied the Utopia font:
-%
-% Permission to use, reproduce, display and distribute the listed
-% typefaces is hereby granted, provided that the Adobe Copyright notice
-% appears in all whole and partial copies of the software and that the
-% following trademark symbol and attribution appear in all unmodified
-% copies of the software:
-%
-% Copyright (c) 1989 Adobe Systems Incorporated
-% Utopia (R)
-% Utopia is a registered trademark of Adobe Systems Incorporated
-%
-% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
-% Metric files) donated are:
-%
-% Utopia Regular
-% Utopia Italic
-% Utopia Bold
-% Utopia Bold Italic
-
-/Utopia-Regular (putr.pfa) ;
-/Utopia-Italic (putri.pfa) ;
-/Utopia-Bold (putb.pfa) ;
-/Utopia-BoldItalic (putbi.pfa) ;
-
-%
-%
-% Fonts contributed by URW GmbH for distribution under the GNU License.
-% The following notice accompanied these fonts:
-%
-% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
-% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
-%
-% Copyright (c) 1992 URW GmbH, Hamburg, Germany
-%
-% This program is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2 of the License, or
-% (at your option) later version.
-%
-% This program is distributed in the hope that it will be useful,
-% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-% See the GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
-%
-% Address:
-% URW GmbH
-% PC Support
-% Harksheider Strasse 102
-% 2000 Hamburg 65
-% Germany
-% Phone: +49 40 60 60 50 (Reception)
-% Phone: +49 40 60 60 52 30 (PC Support)
-% Fax : +49 40 60 60 52 52
-%
-
-/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
-/URWGroteskT-Bold (u004006t.gsf) ;
-
-%
-%
-% Shareware Kana fonts. These are subject to the following notice:
-%
-% These copyrighted fonts were developed by Kevin Hartig. Permission is
-% granted to freely distribute them in entirety along with this statement.
-% This is shareware. If you decide to use these fonts please contribute
-% $10 US to help support further freeware and shareware software development.
-% Questions and comments may be sent to:
-%
-% hartig@fsl.noaa.gov
-% khartig@nyx.cs.du.edu
-%
-% Kevin Hartig
-% 1126 Collyer Street
-% Longmont, CO 80501 USA
-%
-% copyright 1993.
-
-% Hiragana and Katakana fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-
-%
-%
-% Public-domain fonts. These have no copyright, and are of unknown quality.
-
-% Cyrillic fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-
-% Aliases
-/Cyrillic /Cyrillic-Regular ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-
-%
-%
-% Fonts converted from Hershey outlines. These are constructed and
-% maintained manually. These are also in the public domain.
-%
-% The suggested UniqueID's and filenames are constructed differently for
-% these than for the ones above, because of the strange way that the Hershey
-% fonts were constructed. The scheme for these looks like:
-%
-% 42TTXY0
-%
-% TT = typeface, X = ``class'', Y = variation
-%
-% The typeface names and numbers are listed in fonts.mak.
-%
-% class:
-% 0 = normal = r
-% 1 = simplex = s
-% 2 = complex = c
-% 3 = triplex = t
-% 4 = duplex = d
-%
-% variation:
-% 0 = normal (omitted)
-% 1 = oblique = o
-% 2 = italic = i
-% 3 = bold = b
-% 4 = bold oblique = bo
-% 5 = bold italic = bi
-%
-
-% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
-% accents, accented characters, and various other non-alphabetics
-% to the original Hershey fonts. These are "freeware", not to be sold.
-
-/Hershey-Gothic-English (hrger.pfa) ; % 5066533
-/Hershey-Gothic-German (hrgrr.pfa) ;
-/Hershey-Gothic-Italian (hritr.pfa) ;
-
-/Hershey-Plain-Duplex (hrpld.pfa) ;
-/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
-/Hershey-Plain-Triplex (hrplt.pfa) ;
-/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
-
-/Hershey-Script-Complex (hrscc.pfa) ;
-/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
-/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
-/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
-/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
-/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
-/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
-/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
-
-/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
-/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
-/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
-
-/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
-/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
-/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
-/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
-
-% Fonts consisting only of characters from the original Hershey
-% distribution. These are Type 3 fonts.
-
-/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
-/Hershey-Greek-Simplex (hrgks.gsf) ;
-
-/Hershey-Plain (hrplr.gsf) ;
-/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
-/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
-/Hershey-Plain-Oblique (hrplro.gsf) ;
-/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
-/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
-
-% This font, and only this font among the Hershey fonts, uses
-% the SymbolEncoding.
-
-/Hershey-Symbol (hrsyr.gsf) ; % 5066567
diff --git a/Master/xemtex/gslib/Fontmap.OS2 b/Master/xemtex/gslib/Fontmap.OS2
deleted file mode 100644
index bab846c7408..00000000000
--- a/Master/xemtex/gslib/Fontmap.OS2
+++ /dev/null
@@ -1,215 +0,0 @@
-% Copyright (C) 1990, 1992, 1993, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.OS2,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% fontmap.os2 aka Fontmap.OS2 - OS/2 font catalog for Ghostscript.
-
-% ----------------------------------------------------------------
-
-% This file is a catalog of fonts known to Ghostscript. Any font
-% that is to be loaded automatically when named must be in this catalog,
-% except for fonts that Ghostscript finds automatically in directories
-% named in the GS_FONTPATH environment variable.
-
-% Each font has an entry consisting of three items:
-%
-% - The name by which the font is known inside Ghostscript
-% (a Ghostscript name preceded by a `/', or a string enclosed
-% in parentheses). This is used to find the file from which
-% a font of a given name should be loaded.
-%
-% - Information depending on whether this is a real font or a
-% font alias:
-%
-% - For real fonts, the name of the Ghostscript font
-% file (a Ghostscript string, enclosed in parentheses).
-% The filename should include the extension, which (by
-% convention) is `.gsf'. `.pfa' and `.pfb' files are
-% also usable as fonts for Ghostscript.
-%
-% - For font aliases, the name of the font which should
-% be used when this one is requested, preceded by a
-% `/'. See the entry for Charter below for an example.
-%
-% - A terminating semicolon.
-
-% Because of limitations in the MS-DOS environment, Ghostscript font
-% file names must be no more than 8 characters long, must consist only
-% of LOWER CASE letters, digits, and underscores, and must start with a
-% letter. Font names, on the other hand, need only obey the syntax of
-% names in the Ghostscript language, which is much more liberal.
-
-% Most of the Ghostscript fonts were created automatically from freely
-% available bitmaps. There is a makefile (fonts.mak) that specifies
-% how this conversion was done. fonts.mak also specifies, for each such
-% converted font, its uniqueID (an integer used to identify distinct fonts
-% within the Ghostscript font machinery), and its encoding (the mapping
-% from character codes in a string to character names). For more detailed
-% information, read fonts.mak.
-
-% The following table is actually a Ghostscript data structure.
-% If you add new entries, be sure to copy the punctuation accurately;
-% in particular, you must leave at least one space or tab between each
-% field in the entry. Also, please read fonts.doc for important information
-% about font names.
-
-
-%
-%
-% Fonts contributed by:
-% URW++ Design and Development Incorporated
-% Poppenbuetteler Bogen 29A
-% D-22399 Hamburg
-% Germany
-% tel. +49 (40) 60 60 50
-% fax +49 (40) 60 60 51 11
-% http://www.urwpp.de
-% for distribution under the GNU License and Aladdin Free Public License.
-% See the notice at the head of this Fontmap file for licensing terms.
-% Each of these fonts is individually covered by the license:
-% for licensing purposes, they are not "part of" any larger entity.
-% The following notice applies to these fonts:
-%
-% Copyright URW Software, Copyright 1994 by URW.
-%
-
-% Actual fonts
-
-/URWBookmanL-DemiBold (b018015l.pfb) ;
-/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
-/URWBookmanL-Ligh (b018012l.pfb) ;
-/URWBookmanL-LighItal (b018032l.pfb) ;
-
-/NimbusMonL-Regu (n022003l.pfb) ;
-/NimbusMonL-ReguObli (n022023l.pfb) ;
-/NimbusMonL-Bold (n022004l.pfb) ;
-/NimbusMonL-BoldObli (n022024l.pfb) ;
-
-/URWGothicL-Book (a010013l.pfb) ;
-/URWGothicL-BookObli (a010033l.pfb) ;
-/URWGothicL-Demi (a010015l.pfb) ;
-/URWGothicL-DemiObli (a010035l.pfb) ;
-
-/NimbusSanL-Regu (n019003l.pfb) ;
-/NimbusSanL-ReguItal (n019023l.pfb) ;
-/NimbusSanL-Bold (n019004l.pfb) ;
-/NimbusSanL-BoldItal (n019024l.pfb) ;
-
-/NimbusSanL-ReguCond (n019043l.pfb) ;
-/NimbusSanL-ReguCondItal (n019063l.pfb) ;
-/NimbusSanL-BoldCond (n019044l.pfb) ;
-/NimbusSanL-BoldCondItal (n019064l.pfb) ;
-
-/URWPalladioL-Roma (p052003l.pfb) ;
-/URWPalladioL-Ital (p052023l.pfb) ;
-/URWPalladioL-Bold (p052004l.pfb) ;
-/URWPalladioL-BoldItal (p052024l.pfb) ;
-
-/CenturySchL-Roma (c059013l.pfb) ;
-/CenturySchL-Ital (c059033l.pfb) ;
-/CenturySchL-Bold (c059016l.pfb) ;
-/CenturySchL-BoldItal (c059036l.pfb) ;
-
-/NimbusRomNo9L-Regu (n021003l.pfb) ;
-/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
-/NimbusRomNo9L-Medi (n021004l.pfb) ;
-/NimbusRomNo9L-MediItal (n021024l.pfb) ;
-
-/StandardSymL (s050000l.pfb) ;
-
-/URWChanceryL-MediItal (z003034l.pfb) ;
-
-/Dingbats (d050000l.pfb) ;
-
-% Aliases
-
-/Bookman-Demi /URWBookmanL-DemiBold ;
-/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
-/Bookman-Light /URWBookmanL-Ligh ;
-/Bookman-LightItalic /URWBookmanL-LighItal ;
-
-/Courier /NimbusMonL-Regu ;
-/Courier-Oblique /NimbusMonL-ReguObli ;
-/Courier-Bold /NimbusMonL-Bold ;
-/Courier-BoldOblique /NimbusMonL-BoldObli ;
-
-/AvantGarde-Book /URWGothicL-Book ;
-/AvantGarde-BookOblique /URWGothicL-BookObli ;
-/AvantGarde-Demi /URWGothicL-Demi ;
-/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
-
-/Helvetica /NimbusSanL-Regu ;
-/Helvetica-Oblique /NimbusSanL-ReguItal ;
-/Helvetica-Bold /NimbusSanL-Bold ;
-/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
-
-/Helvetica-Narrow /NimbusSanL-ReguCond ;
-/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
-/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
-/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
-
-/Palatino-Roman /URWPalladioL-Roma ;
-/Palatino-Italic /URWPalladioL-Ital ;
-/Palatino-Bold /URWPalladioL-Bold ;
-/Palatino-BoldItalic /URWPalladioL-BoldItal ;
-
-/NewCenturySchlbk-Roman /CenturySchL-Roma ;
-/NewCenturySchlbk-Italic /CenturySchL-Ital ;
-/NewCenturySchlbk-Bold /CenturySchL-Bold ;
-/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
-
-/Times-Roman /NimbusRomNo9L-Regu ;
-/Times-Italic /NimbusRomNo9L-ReguItal ;
-/Times-Bold /NimbusRomNo9L-Medi ;
-/Times-BoldItalic /NimbusRomNo9L-MediItal ;
-
-/Symbol /StandardSymL ;
-
-/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
-
-/ZapfDingbats /Dingbats ;
-
-
-%
-% ATM fonts that come with OS/2.
-
-/Courier (cour.pfb) ;
-/Courier-Oblique /Courier-Italic ;
-/Courier-Italic (couri.pfb) ;
-/Courier-Bold (courb.pfb) ;
-/Courier-BoldOblique /Courier-BoldItalic ;
-/Courier-BoldItalic (courbi.pfb) ;
-
-/Helvetica (helv.pfb) ;
-/Helvetica-Oblique /Helvetica-Italic ;
-/Helvetica-Italic (helvi.pfb) ;
-/Helvetica-Bold (helvb.pfb) ;
-/Helvetica-BoldOblique /Helvetica-BoldItalic ;
-/Helvetica-BoldItalic (helvbi.pfb) ;
-
-/Symbol /SymbolSet ;
-/SymbolSet (symb.pfb) ;
-
-/Times-Roman /TimesNewRoman ;
-/TimesNewRoman (tnr.pfb) ;
-/Times-Italic /TimesNewRoman-Italic ;
-/TimesNewRoman-Italic (tnri.pfb) ;
-/Times-Bold /TimesNewRoman-Bold ;
-/TimesNewRoman-Bold (tnrb.pfb) ;
-/Times-BoldItalic /TimesNewRoman-BoldItalic ;
-/TimesNewRoman-BoldItalic (tnrbi.pfb) ;
-
-
diff --git a/Master/xemtex/gslib/Fontmap.OSF b/Master/xemtex/gslib/Fontmap.OSF
deleted file mode 100644
index 563f14a995f..00000000000
--- a/Master/xemtex/gslib/Fontmap.OSF
+++ /dev/null
@@ -1,163 +0,0 @@
-% fontmap.osf aka Fontmap.OSF1 - Ghostscript fontmap for DEC OSF/1 systems.
-%
-% UNIX systems from Digital Equipment Corporation are bundled with a license
-% for Display PostScript, including certain fonts. Using their font outlines
-% (which on OSF/1 systems are found in /usr/lib/X11/fonts/Type1Adobe)
-% improves the visual quality of documents displayed on screen. To do that,
-% use this file as your Fontmap file and add /usr/lib/X11/fonts/Type1Adobe
-% as the second argument to GS_LIB_DEFAULT in your makefile
-% in your makefile.
-%
-% This file is Pete Kaiser's original Ultrix file as modified by
-% Bjorn S. Nilsson (nilsson@nbi.dk) first for Ultrix 4.3 and then
-% for OSF/1 version 1.3.
-%
-
-%/AvantGarde-Book (AvantGarde-Book) ;
-%/AvantGarde-BookOblique (AvantGarde-BookOblique);
-%/AvantGarde-Demi (AvantGarde-Demi) ;
-%/AvantGarde-DemiOblique (AvantGarde-DemiOblique);
-
-%/Courier-BoldItalic /Courier-BoldOblique ;
-%/Courier-Italic /Courier-Oblique ;
-
-%/Courier (Courier) ;
-%/Courier-Bold (Courier-Bold) ;
-%/Courier-BoldOblique (Courier-BoldOblique) ;
-%/Courier-Oblique (Courier-Oblique) ;
-
-%/Helvetica (Helvetica) ;
-%/Helvetica-Bold (Helvetica-Bold) ;
-%/Helvetica-BoldOblique (Helvetica-BoldOblique) ;
-%/Helvetica-Oblique (Helvetica-Oblique) ;
-
-%/LubalinGraph-Book (LubalinGraph-Book) ;
-%/LubalinGraph-BookOblique (LubalinGraph-BookOblique);
-%/LubalinGraph-Demi (LubalinGraph-Demi) ;
-%/LubalinGraph-DemiOblique (LubalinGraph-DemiOblique);
-
-%/NewCenturySchlbk-Bold (NewCenturySchlbk-Bold) ;
-%/NewCenturySchlbk-BoldItalic (NewCenturySchlbk-BoldItalic);
-%/NewCenturySchlbk-Italic (NewCenturySchlbk-Italic);
-%/NewCenturySchlbk-Roman (NewCenturySchlbk-Roman);
-
-%/Souvenir-Demi (Souvenir-Demi) ;
-%/Souvenir-DemiItalic (Souvenir-DemiItalic) ;
-%/Souvenir-Light (Souvenir-Light) ;
-%/Souvenir-LightItalic (Souvenir-LightItalic) ;
-
-%/Symbol (Symbol) ;
-
-%/Times-Bold (Times-Bold) ;
-%/Times-BoldItalic (Times-BoldItalic) ;
-%/Times-Italic (Times-Italic) ;
-%/Times-Roman (Times-Roman) ;
-
-%/ZapfDingbats (ZapfDingbats) ;
-
-/AvantGarde-Book (AvantGarde-Book.pfa) ;
-/AvantGarde-BookOblique (AvantGarde-BookOblique.pfa) ;
-/AvantGarde-Demi (AvantGarde-Demi.pfa) ;
-/AvantGarde-DemiOblique (AvantGarde-DemiOblique.pfa) ;
-/Bookman-Demi (pbkd.gsf) ;
-/Bookman-DemiItalic (pbkdi.gsf) ;
-/Bookman-Light (pbkl.gsf) ;
-/Bookman-LightItalic (pbkli.gsf) ;
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-/CharterBT-Bold (bchb.gsf) ;
-/CharterBT-BoldItalic (bchbi.gsf) ;
-/CharterBT-Italic (bchri.gsf) ;
-/CharterBT-Roman (bchr.gsf) ;
-/Courier (Courier.pfa) ;
-/Courier-Bold (Courier-Bold.pfa) ;
-/Courier-BoldOblique (Courier-BoldOblique.pfa) ;
-/Courier-Oblique (Courier-Oblique.pfa) ;
-/Helvetica (Helvetica.pfa) ;
-/Helvetica-Bold (Helvetica-Bold.pfa) ;
-/Helvetica-BoldOblique (Helvetica-BoldOblique.pfa) ;
-/Helvetica-Oblique (Helvetica-Oblique.pfa) ;
-/Hershey-Gothic-English (hrger.gsf) ;
-/Hershey-Gothic-German (hrgrr.gsf) ;
-/Hershey-Gothic-Italian (hritr.gsf) ;
-/Hershey-Plain-Duplex (hrpld.gsf) ;
-/Hershey-Plain-Duplex-Italic (hrpldi.gsf) ;
-/Hershey-Plain-Triplex (hrplt.gsf) ;
-/Hershey-Plain-Triplex-Italic (hrplti.gsf) ;
-/Hershey-Script-Complex (hrscc.gsf) ;
-/Hershey-Script-Simplex (hrscs.gsf) ;
-/Hershey-Gothic-English-Bold (hrgerb.gsf) ;
-/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
-/Hershey-Gothic-English-Semibold (hrgerd.gsf) ;
-/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
-/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
-/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
-/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
-/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
-/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
-/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
-/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
-/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
-/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
-/Hershey-Script-Simplex-Oblique (hrscso.gsf) ;
-/Hershey-Greek-Complex (hrgkc.gsf) ;
-/Hershey-Greek-Simplex (hrgks.gsf) ;
-/Hershey-Plain (hrplr.gsf) ;
-/Hershey-Plain-Simplex (hrpls.gsf) ;
-/Hershey-Plain-Bold (hrplrb.gsf) ;
-/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
-/Hershey-Plain-Oblique (hrplro.gsf) ;
-/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
-/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ;
-/Hershey-Symbol (hrsy_r.gsf) ;
-/LubalinGraph-Book (LubalinGraph-Book.pfa) ;
-/LubalinGraph-BookOblique (LubalinGraph-BookOblique.pfa) ;
-/LubalinGraph-Demi (LubalinGraph-Demi.pfa) ;
-/LubalinGraph-DemiOblique (LubalinGraph-DemiOblique.pfa) ;
-/NewCenturySchlbk-Bold (NewCenturySchlbk-Bold.pfa) ;
-/NewCenturySchlbk-BoldItalic (NewCenturySchlbk-BoldItalic.pfa) ;
-/NewCenturySchlbk-Italic (NewCenturySchlbk-Italic.pfa) ;
-/NewCenturySchlbk-Roman (NewCenturySchlbk-Roman.pfa) ;
-/NimbusRomanNo9L-Regular (n021003l.gsf) ;
-/NimbusSansL-Regular (n019003l.gsf) ;
-/Palatino-Bold (pplb.gsf) ;
-/Palatino-BoldItalic (pplbi.gsf) ;
-/Palatino-Italic (pplri.gsf) ;
-/Palatino-Roman (pplr.gsf) ;
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-/Souvenir-Demi (Souvenir-Demi.pfa) ;
-/Souvenir-DemiItalic (Souvenir-DemiItalic.pfa) ;
-/Souvenir-Light (Souvenir-Light.pfa) ;
-/Souvenir-LightItalic (Souvenir-LightItalic.pfa) ;
-/Symbol (Symbol.pfa) ;
-/Times-Bold (Times-Bold.pfa) ;
-/Times-BoldItalic (Times-BoldItalic.pfa) ;
-/Times-Italic (Times-Italic.pfa) ;
-/Times-Roman (Times-Roman.pfa) ;
-/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
-/URWGroteskT-Bold (u004006t.gsf) ;
-/Utopia-Bold (putb.gsf) ;
-/Utopia-BoldItalic (putbi.gsf) ;
-/Utopia-Italic (putri.gsf) ;
-/Utopia-Regular (putr.gsf) ;
-/ZapfChancery (zcr.gsf) ;
-/ZapfChancery-Bold (zcb.gsf) ;
-/ZapfChancery-Oblique (zcro.gsf) ;
-/ZapfDingbats (ZapfDingbats.pfa) ;
-/Cyrillic /Cyrillic-Regular ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-
-% BSN additions from original Fontmap file and some more aliases
-
-/Helvetica-Narrow-Bold /Helvetica-Narrow ;
-/ZapfChancery-MediumItalic /ZapfChancery-Oblique ;
-/Charter-Roman /CharterBT-Roman ;
-/Charter-Italic /CharterBT-Italic ;
-/Charter-Bold /CharterBT-Bold ;
-/Charter-BoldItalic /CharterBT-BoldItalic ;
-/Courier-Italic /Courier-Oblique ;
-/Courier-BoldItalic /Courier-BoldOblique ;
diff --git a/Master/xemtex/gslib/Fontmap.SGI b/Master/xemtex/gslib/Fontmap.SGI
deleted file mode 100644
index 22fa0b2073b..00000000000
--- a/Master/xemtex/gslib/Fontmap.SGI
+++ /dev/null
@@ -1,406 +0,0 @@
-% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.SGI,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-%
-% Fontmap.SGI - standard font catalog for Ghostscript, modified for IRIX 5.3
-% with the DPS fonts installed (dps_eoe.sw.dpsfonts).
-% by H. Gohel, gohel@acm.org. 1999-09-10
-
-% ----------------------------------------------------------------
-
-% This file is a catalog of fonts known to Ghostscript. Any font
-% that is to be loaded automatically when named must be in this catalog,
-% except for fonts that Ghostscript finds automatically in directories
-% named in the GS_FONTPATH environment variable.
-
-% Each font has an entry consisting of three items:
-%
-% - The name by which the font is known inside Ghostscript
-% (a Ghostscript name preceded by a `/', or a string enclosed
-% in parentheses). This is used to find the file from which
-% a font of a given name should be loaded.
-%
-% - Information depending on whether this is a real font or a
-% font alias:
-%
-% - For real fonts, the name of the Ghostscript font
-% file (a Ghostscript string, enclosed in parentheses).
-% The filename should include the extension, which (by
-% convention) is `.gsf'. `.pfa' and `.pfb' files are
-% also usable as fonts for Ghostscript.
-%
-% - For font aliases, the name of the font which should
-% be used when this one is requested, preceded by a
-% `/'. See the entry for Charter below for an example.
-% Note that an alias name cannot be enclosed in parentheses.
-%
-% - At least one space or tab, and a terminating semicolon.
-
-% Because of limitations in the MS-DOS environment, Ghostscript font
-% file names must be no more than 8 characters long, must consist only
-% of LOWER CASE letters, digits, and underscores, and must start with a
-% letter. Font names, on the other hand, need only obey the syntax of
-% names in the Ghostscript language, which is much more liberal.
-
-% The following table is actually a Ghostscript data structure.
-% If you add new entries, be sure to copy the punctuation accurately;
-% in particular, you must leave at least one space or tab between each
-% field in the entry. Also, please read fonts.doc for important information
-% about font names.
-
-% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
-% and other programs that don't include full PostScript interpreters,
-% as well as with PostScript interpreters; .gsf fonts are compatible with
-% PostScript interpreters, but not with ATM or similar programs.
-
-%
-%
-% Fonts contributed by:
-% URW++ Design and Development Incorporated
-% Poppenbuetteler Bogen 29A
-% D-22399 Hamburg
-% Germany
-% tel. +49 (40) 60 60 50
-% fax +49 (40) 60 60 51 11
-% http://www.urwpp.de
-% for distribution under the GNU License and Aladdin Free Public License.
-% See the notice at the head of this Fontmap file for licensing terms.
-% Each of these fonts is individually covered by the license:
-% for licensing purposes, they are not "part of" any larger entity.
-% The following notice applies to these fonts:
-%
-% Copyright URW Software, Copyright 1994 by URW.
-%
-
-% Actual fonts
-
-/URWBookmanL-DemiBold (b018015l.pfb) ;
-/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
-/URWBookmanL-Ligh (b018012l.pfb) ;
-/URWBookmanL-LighItal (b018032l.pfb) ;
-
-/NimbusMonL-Regu (n022003l.pfb) ;
-/NimbusMonL-ReguObli (n022023l.pfb) ;
-/NimbusMonL-Bold (n022004l.pfb) ;
-/NimbusMonL-BoldObli (n022024l.pfb) ;
-
-/URWGothicL-Book (a010013l.pfb) ;
-/URWGothicL-BookObli (a010033l.pfb) ;
-/URWGothicL-Demi (a010015l.pfb) ;
-/URWGothicL-DemiObli (a010035l.pfb) ;
-
-/NimbusSanL-Regu (n019003l.pfb) ;
-/NimbusSanL-ReguItal (n019023l.pfb) ;
-/NimbusSanL-Bold (n019004l.pfb) ;
-/NimbusSanL-BoldItal (n019024l.pfb) ;
-
-/NimbusSanL-ReguCond (n019043l.pfb) ;
-/NimbusSanL-ReguCondItal (n019063l.pfb) ;
-/NimbusSanL-BoldCond (n019044l.pfb) ;
-/NimbusSanL-BoldCondItal (n019064l.pfb) ;
-
-/URWPalladioL-Roma (p052003l.pfb) ;
-/URWPalladioL-Ital (p052023l.pfb) ;
-/URWPalladioL-Bold (p052004l.pfb) ;
-/URWPalladioL-BoldItal (p052024l.pfb) ;
-
-/CenturySchL-Roma (c059013l.pfb) ;
-/CenturySchL-Ital (c059033l.pfb) ;
-/CenturySchL-Bold (c059016l.pfb) ;
-/CenturySchL-BoldItal (c059036l.pfb) ;
-
-/NimbusRomNo9L-Regu (n021003l.pfb) ;
-/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
-/NimbusRomNo9L-Medi (n021004l.pfb) ;
-/NimbusRomNo9L-MediItal (n021024l.pfb) ;
-
-/StandardSymL (s050000l.pfb) ;
-
-/URWChanceryL-MediItal (z003034l.pfb) ;
-
-/Dingbats (d050000l.pfb) ;
-
-% Aliases
-% These Adobe fonts are available with DPS on IRIX, so they commented out:
-
-%/Bookman-Demi /URWBookmanL-DemiBold ;
-%/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
-%/Bookman-Light /URWBookmanL-Ligh ;
-%/Bookman-LightItalic /URWBookmanL-LighItal ;
-
-%/Courier /NimbusMonL-Regu ;
-%/Courier-Oblique /NimbusMonL-ReguObli ;
-%/Courier-Bold /NimbusMonL-Bold ;
-%/Courier-BoldOblique /NimbusMonL-BoldObli ;
-
-%/AvantGarde-Book /URWGothicL-Book ;
-%/AvantGarde-BookOblique /URWGothicL-BookObli ;
-%/AvantGarde-Demi /URWGothicL-Demi ;
-%/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
-
-%/Helvetica /NimbusSanL-Regu ;
-%/Helvetica-Oblique /NimbusSanL-ReguItal ;
-%/Helvetica-Bold /NimbusSanL-Bold ;
-%/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
-
-%/Helvetica-Narrow /NimbusSanL-ReguCond ;
-%/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
-%/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
-%/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
-
-%/Palatino-Roman /URWPalladioL-Roma ;
-%/Palatino-Italic /URWPalladioL-Ital ;
-%/Palatino-Bold /URWPalladioL-Bold ;
-%/Palatino-BoldItalic /URWPalladioL-BoldItal ;
-
-%/NewCenturySchlbk-Roman /CenturySchL-Roma ;
-%/NewCenturySchlbk-Italic /CenturySchL-Ital ;
-%/NewCenturySchlbk-Bold /CenturySchL-Bold ;
-%/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
-
-%/Times-Roman /NimbusRomNo9L-Regu ;
-%/Times-Italic /NimbusRomNo9L-ReguItal ;
-%/Times-Bold /NimbusRomNo9L-Medi ;
-%/Times-BoldItalic /NimbusRomNo9L-MediItal ;
-
-%/Symbol /StandardSymL ;
-
-%/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
-
-%/ZapfDingbats /Dingbats ;
-
-%
-%
-% Type 1 fonts contributed to the X11R5 distribution.
-%
-
-% The following notice accompanied the Charter fonts.
-%
-% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
-%
-% You are hereby granted permission under all Bitstream propriety rights
-% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
-% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
-% for any purpose and without restriction; provided, that this notice is
-% left intact on all copies of such fonts and that Bitstream's trademark
-% is acknowledged as shown below on all unmodified copies of the 4 Charter
-% Type 1 fonts.
-%
-% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
-
-% The Bitstream Charter fonts have different names (CharterBT-
-% instead of Charter-), but Ghostscript doesn't care.
-/Charter-Roman (bchr.pfa) ;
-/Charter-Italic (bchri.pfa) ;
-/Charter-Bold (bchb.pfa) ;
-/Charter-BoldItalic (bchbi.pfa) ;
-
-% The following notice accompanied the Utopia font:
-%
-% Permission to use, reproduce, display and distribute the listed
-% typefaces is hereby granted, provided that the Adobe Copyright notice
-% appears in all whole and partial copies of the software and that the
-% following trademark symbol and attribution appear in all unmodified
-% copies of the software:
-%
-% Copyright (c) 1989 Adobe Systems Incorporated
-% Utopia (R)
-% Utopia is a registered trademark of Adobe Systems Incorporated
-%
-% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
-% Metric files) donated are:
-%
-% Utopia Regular
-% Utopia Italic
-% Utopia Bold
-% Utopia Bold Italic
-
-% The original Utopia files are available with IRIX and DPS so need
-% for aliases, HJG.
-
-%/Utopia-Regular (putr.pfa) ;
-%/Utopia-Italic (putri.pfa) ;
-%/Utopia-Bold (putb.pfa) ;
-%/Utopia-BoldItalic (putbi.pfa) ;
-
-%
-%
-% Fonts contributed by URW GmbH for distribution under the GNU License.
-% The following notice accompanied these fonts:
-%
-% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
-% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
-%
-% Copyright (c) 1992 URW GmbH, Hamburg, Germany
-%
-% This program is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2 of the License, or
-% (at your option) later version.
-%
-% This program is distributed in the hope that it will be useful,
-% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-% See the GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-%
-% Address:
-% URW GmbH
-% PC Support
-% Harksheider Strasse 102
-% 2000 Hamburg 65
-% Germany
-% Phone: +49 40 60 60 50 (Reception)
-% Phone: +49 40 60 60 52 30 (PC Support)
-% Fax : +49 40 60 60 52 52
-%
-
-/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
-/URWGroteskT-Bold (u004006t.gsf) ;
-
-%
-%
-% Shareware Kana fonts. These are subject to the following notice:
-%
-% These copyrighted fonts were developed by Kevin Hartig. Permission is
-% granted to freely distribute them in entirety along with this statement.
-% This is shareware. If you decide to use these fonts please contribute
-% $10 US to help support further freeware and shareware software development.
-% Questions and comments may be sent to:
-%
-% hartig@fsl.noaa.gov
-% khartig@nyx.cs.du.edu
-%
-% Kevin Hartig
-% 1126 Collyer Street
-% Longmont, CO 80501 USA
-%
-% copyright 1993.
-
-% Hiragana and Katakana fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-
-%
-%
-% Public-domain fonts. These have no copyright, and are of unknown quality.
-
-% Cyrillic fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-
-% Aliases
-/Cyrillic /Cyrillic-Regular ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-
-%
-%
-% Fonts converted from Hershey outlines. These are constructed and
-% maintained manually. These are also in the public domain.
-%
-% The suggested UniqueID's and filenames are constructed differently for
-% these than for the ones above, because of the strange way that the Hershey
-% fonts were constructed. The scheme for these looks like:
-%
-% 42TTXY0
-%
-% TT = typeface, X = ``class'', Y = variation
-%
-% The typeface names and numbers are listed in fonts.mak.
-%
-% class:
-% 0 = normal = r
-% 1 = simplex = s
-% 2 = complex = c
-% 3 = triplex = t
-% 4 = duplex = d
-%
-% variation:
-% 0 = normal (omitted)
-% 1 = oblique = o
-% 2 = italic = i
-% 3 = bold = b
-% 4 = bold oblique = bo
-% 5 = bold italic = bi
-%
-
-% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
-% accents, accented characters, and various other non-alphabetics
-% to the original Hershey fonts. These are "freeware", not to be sold.
-
-/Hershey-Gothic-English (hrger.pfa) ; % 5066533
-/Hershey-Gothic-German (hrgrr.pfa) ;
-/Hershey-Gothic-Italian (hritr.pfa) ;
-
-/Hershey-Plain-Duplex (hrpld.pfa) ;
-/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
-/Hershey-Plain-Triplex (hrplt.pfa) ;
-/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
-
-/Hershey-Script-Complex (hrscc.pfa) ;
-/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
-/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
-/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
-/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
-/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
-/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
-/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
-
-/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
-/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
-/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
-
-/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
-/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
-/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
-/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
-
-% Fonts consisting only of characters from the original Hershey
-% distribution. These are Type 3 fonts.
-
-/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
-/Hershey-Greek-Simplex (hrgks.gsf) ;
-
-/Hershey-Plain (hrplr.gsf) ;
-/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
-/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
-/Hershey-Plain-Oblique (hrplro.gsf) ;
-/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
-/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
-
-% This font, and only this font among the Hershey fonts, uses
-% the SymbolEncoding.
-
-/Hershey-Symbol (hrsyr.gsf) ; % 5066567
diff --git a/Master/xemtex/gslib/Fontmap.Sol b/Master/xemtex/gslib/Fontmap.Sol
deleted file mode 100644
index a8c6fe25765..00000000000
--- a/Master/xemtex/gslib/Fontmap.Sol
+++ /dev/null
@@ -1,487 +0,0 @@
-% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.Sol,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Fontmap.Solaris - Ghostscript Fontmap for Solaris 2.3 and above
-% ===============================================================
-%
-% The Solaris 2.3 (and above) operating system from Sun Microsystems comes with
-% Display Postscript (DPS), including certain Type1 and Type3 PostScript fonts.
-% Using these fonts instead of the default Ghostscript fonts greatly improves
-% the visual quality of Ghostscript rendered documents, especially at larger
-% font sizes. You should definately use these fonts if you have Solaris 2.3 or
-% above.
-%
-% To use the Solaris 2 DPS fonts, simply copy this file (Fontmap.Solaris) to
-%
-% /usr/local/lib/Ghostscript/VERSION/Fontmap
-% (where VERSION is the version number of Ghostscript, eg: 3.33)
-%
-% and set the environment variable GS_LIB as follows:
-%
-% GS_LIB=/usr/openwin/lib/X11/fonts/Type1:/usr/openwin/lib/X11/fonts/Type3
-% export GS_LIB
-%
-% You can use /usr/openwin/lib/fonts/Type1/outline instead if you like, it
-% makes no difference (the files in /usr/openwin/lib/fonts/Type1 are symlinks
-% into /usr/openwin/lib/fonts/Type1/outline).
-%
-% Instead of setting GS_LIB, you could add the above directories to
-% GS_LIB_DEFAULT in your makefile before building Ghostscript.
-%
-%
-% IMPORTANT NOTE
-% ==============
-%
-% Note that simply setting GS_FONTPATH may not work, because for some reason
-% some versions of gs can't seem to find any fonts in
-% /usr/openwin/lib/X11/fonts/Type1/outline.
-% It says: "15 files, 15 scanned, 0 new fonts".
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ----------------------------------------------------------------
-
-% This file is a catalog of fonts known to Ghostscript. Any font
-% that is to be loaded automatically when named must be in this catalog,
-% except for fonts that Ghostscript finds automatically in directories
-% named in the GS_FONTPATH environment variable.
-
-% Each font has an entry consisting of three items:
-%
-% - The name by which the font is known inside Ghostscript
-% (a Ghostscript name preceded by a `/', or a string enclosed
-% in parentheses). This is used to find the file from which
-% a font of a given name should be loaded.
-%
-% - Information depending on whether this is a real font or a
-% font alias:
-%
-% - For real fonts, the name of the Ghostscript font
-% file (a Ghostscript string, enclosed in parentheses).
-% The filename should include the extension, which (by
-% convention) is `.gsf'. `.pfa' and `.pfb' files are
-% also usable as fonts for Ghostscript.
-%
-% - For font aliases, the name of the font which should
-% be used when this one is requested, preceded by a
-% `/'. See the entry for Charter below for an example.
-% Note that an alias name cannot be enclosed in parentheses.
-%
-% - At least one space or tab, and a terminating semicolon.
-
-% Because of limitations in the MS-DOS environment, Ghostscript font
-% file names must be no more than 8 characters long, must consist only
-% of LOWER CASE letters, digits, and underscores, and must start with a
-% letter. Font names, on the other hand, need only obey the syntax of
-% names in the Ghostscript language, which is much more liberal.
-
-% The following table is actually a Ghostscript data structure.
-% If you add new entries, be sure to copy the punctuation accurately;
-% in particular, you must leave at least one space or tab between each
-% field in the entry. Also, please read fonts.doc for important information
-% about font names.
-
-% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
-% and other programs that don't include full PostScript interpreters,
-% as well as with PostScript interpreters; .gsf fonts are compatible with
-% PostScript interpreters, but not with ATM or similar programs.
-
-%
-%
-% Fonts contributed by:
-% URW++ Design and Development Incorporated
-% Poppenbuetteler Bogen 29A
-% D-22399 Hamburg
-% Germany
-% tel. +49 (40) 60 60 50
-% fax +49 (40) 60 60 51 11
-% http://www.urwpp.de
-% for distribution under the GNU License and Aladdin Free Public License.
-% See the notice at the head of this Fontmap file for licensing terms.
-% Each of these fonts is individually covered by the license:
-% for licensing purposes, they are not "part of" any larger entity.
-% The following notice applies to these fonts:
-%
-% Copyright URW Software, Copyright 1994 by URW.
-%
-
-% Actual fonts
-
-/URWBookmanL-DemiBold (b018015l.pfb) ;
-/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
-/URWBookmanL-Ligh (b018012l.pfb) ;
-/URWBookmanL-LighItal (b018032l.pfb) ;
-
-/NimbusMonL-Regu (n022003l.pfb) ;
-/NimbusMonL-ReguObli (n022023l.pfb) ;
-/NimbusMonL-Bold (n022004l.pfb) ;
-/NimbusMonL-BoldObli (n022024l.pfb) ;
-
-/URWGothicL-Book (a010013l.pfb) ;
-/URWGothicL-BookObli (a010033l.pfb) ;
-/URWGothicL-Demi (a010015l.pfb) ;
-/URWGothicL-DemiObli (a010035l.pfb) ;
-
-/NimbusSanL-Regu (n019003l.pfb) ;
-/NimbusSanL-ReguItal (n019023l.pfb) ;
-/NimbusSanL-Bold (n019004l.pfb) ;
-/NimbusSanL-BoldItal (n019024l.pfb) ;
-
-/NimbusSanL-ReguCond (n019043l.pfb) ;
-/NimbusSanL-ReguCondItal (n019063l.pfb) ;
-/NimbusSanL-BoldCond (n019044l.pfb) ;
-/NimbusSanL-BoldCondItal (n019064l.pfb) ;
-
-/URWPalladioL-Roma (p052003l.pfb) ;
-/URWPalladioL-Ital (p052023l.pfb) ;
-/URWPalladioL-Bold (p052004l.pfb) ;
-/URWPalladioL-BoldItal (p052024l.pfb) ;
-
-/CenturySchL-Roma (c059013l.pfb) ;
-/CenturySchL-Ital (c059033l.pfb) ;
-/CenturySchL-Bold (c059016l.pfb) ;
-/CenturySchL-BoldItal (c059036l.pfb) ;
-
-/NimbusRomNo9L-Regu (n021003l.pfb) ;
-/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
-/NimbusRomNo9L-Medi (n021004l.pfb) ;
-/NimbusRomNo9L-MediItal (n021024l.pfb) ;
-
-/StandardSymL (s050000l.pfb) ;
-
-/URWChanceryL-MediItal (z003034l.pfb) ;
-
-/Dingbats (d050000l.pfb) ;
-
-% Aliases
-
-/Bookman-Demi /URWBookmanL-DemiBold ;
-/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
-/Bookman-Light /URWBookmanL-Ligh ;
-/Bookman-LightItalic /URWBookmanL-LighItal ;
-
-/Courier /NimbusMonL-Regu ;
-/Courier-Oblique /NimbusMonL-ReguObli ;
-/Courier-Bold /NimbusMonL-Bold ;
-/Courier-BoldOblique /NimbusMonL-BoldObli ;
-
-/AvantGarde-Book /URWGothicL-Book ;
-/AvantGarde-BookOblique /URWGothicL-BookObli ;
-/AvantGarde-Demi /URWGothicL-Demi ;
-/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
-
-% Solaris 2 DPS has Helvetica as a Type1 font.
-%/Helvetica /NimbusSanL-Regu ;
-%/Helvetica-Oblique /NimbusSanL-ReguItal ;
-%/Helvetica-Bold /NimbusSanL-Bold ;
-%/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
-
-/Helvetica-Narrow /NimbusSanL-ReguCond ;
-/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
-/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
-/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
-
-/Palatino-Roman /URWPalladioL-Roma ;
-/Palatino-Italic /URWPalladioL-Ital ;
-/Palatino-Bold /URWPalladioL-Bold ;
-/Palatino-BoldItalic /URWPalladioL-BoldItal ;
-
-/NewCenturySchlbk-Roman /CenturySchL-Roma ;
-/NewCenturySchlbk-Italic /CenturySchL-Ital ;
-/NewCenturySchlbk-Bold /CenturySchL-Bold ;
-/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
-
-% Solaris 2 DPS has Times as a Type1 font.
-%/Times-Roman /NimbusRomNo9L-Regu ;
-%/Times-Italic /NimbusRomNo9L-ReguItal ;
-%/Times-Bold /NimbusRomNo9L-Medi ;
-%/Times-BoldItalic /NimbusRomNo9L-MediItal ;
-
-% Solaris 2 DPS has Symbol as a Type1 font.
-%/Symbol /StandardSymL ;
-
-/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
-
-/ZapfDingbats /Dingbats ;
-
-%
-%
-% Type 1 fonts contributed to the X11R5 distribution.
-%
-
-% The following notice accompanied the Charter fonts.
-%
-% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
-%
-% You are hereby granted permission under all Bitstream propriety rights
-% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
-% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
-% for any purpose and without restriction; provided, that this notice is
-% left intact on all copies of such fonts and that Bitstream's trademark
-% is acknowledged as shown below on all unmodified copies of the 4 Charter
-% Type 1 fonts.
-%
-% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
-
-/CharterBT-Roman (bchr.pfa) ;
-/CharterBT-Italic (bchri.pfa) ;
-/CharterBT-Bold (bchb.pfa) ;
-/CharterBT-BoldItalic (bchbi.pfa) ;
-
-% Aliases
-
-/Charter-Roman /CharterBT-Roman ;
-/Charter-Italic /CharterBT-Italic ;
-/Charter-Bold /CharterBT-Bold ;
-/Charter-BoldItalic /CharterBT-BoldItalic ;
-
-% The following notice accompanied the Utopia font:
-%
-% Permission to use, reproduce, display and distribute the listed
-% typefaces is hereby granted, provided that the Adobe Copyright notice
-% appears in all whole and partial copies of the software and that the
-% following trademark symbol and attribution appear in all unmodified
-% copies of the software:
-%
-% Copyright (c) 1989 Adobe Systems Incorporated
-% Utopia (R)
-% Utopia is a registered trademark of Adobe Systems Incorporated
-%
-% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
-% Metric files) donated are:
-%
-% Utopia Regular
-% Utopia Italic
-% Utopia Bold
-% Utopia Bold Italic
-
-/Utopia-Regular (putr.pfa) ;
-/Utopia-Italic (putri.pfa) ;
-/Utopia-Bold (putb.pfa) ;
-/Utopia-BoldItalic (putbi.pfa) ;
-
-%
-%
-% Fonts contributed by URW GmbH for distribution under the GNU License.
-% The following notice accompanied these fonts:
-%
-% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
-% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
-%
-% Copyright (c) 1992 URW GmbH, Hamburg, Germany
-%
-% This program is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2 of the License, or
-% (at your option) later version.
-%
-% This program is distributed in the hope that it will be useful,
-% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-% See the GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
-%
-% Address:
-% URW GmbH
-% PC Support
-% Harksheider Strasse 102
-% 2000 Hamburg 65
-% Germany
-% Phone: +49 40 60 60 50 (Reception)
-% Phone: +49 40 60 60 52 30 (PC Support)
-% Fax : +49 40 60 60 52 52
-%
-
-/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
-/URWGroteskT-Bold (u004006t.gsf) ;
-
-%
-%
-% Shareware Kana fonts. These are subject to the following notice:
-%
-% These copyrighted fonts were developed by Kevin Hartig. Permission is
-% granted to freely distribute them in entirety along with this statement.
-% This is shareware. If you decide to use these fonts please contribute
-% $10 US to help support further freeware and shareware software development.
-% Questions and comments may be sent to:
-%
-% hartig@fsl.noaa.gov
-% khartig@nyx.cs.du.edu
-%
-% Kevin Hartig
-% 1126 Collyer Street
-% Longmont, CO 80501 USA
-%
-% copyright 1993.
-
-% Hiragana and Katakana fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-
-%
-%
-% Public-domain fonts. These have no copyright, and are of unknown quality.
-
-% Cyrillic fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-
-% Aliases
-/Cyrillic /Cyrillic-Regular ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-
-%
-%
-% Fonts converted from Hershey outlines. These are constructed and
-% maintained manually. These are also in the public domain.
-%
-% The suggested UniqueID's and filenames are constructed differently for
-% these than for the ones above, because of the strange way that the Hershey
-% fonts were constructed. The scheme for these looks like:
-%
-% 42TTXY0
-%
-% TT = typeface, X = ``class'', Y = variation
-%
-% The typeface names and numbers are listed in fonts.mak.
-%
-% class:
-% 0 = normal = r
-% 1 = simplex = s
-% 2 = complex = c
-% 3 = triplex = t
-% 4 = duplex = d
-%
-% variation:
-% 0 = normal (omitted)
-% 1 = oblique = o
-% 2 = italic = i
-% 3 = bold = b
-% 4 = bold oblique = bo
-% 5 = bold italic = bi
-%
-
-% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
-% accents, accented characters, and various other non-alphabetics
-% to the original Hershey fonts. These are "freeware", not to be sold.
-
-/Hershey-Gothic-English (hrger.pfa) ; % 5066533
-/Hershey-Gothic-German (hrgrr.pfa) ;
-/Hershey-Gothic-Italian (hritr.pfa) ;
-
-/Hershey-Plain-Duplex (hrpld.pfa) ;
-/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
-/Hershey-Plain-Triplex (hrplt.pfa) ;
-/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
-
-/Hershey-Script-Complex (hrscc.pfa) ;
-/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
-/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
-/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
-/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
-/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
-/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
-/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
-
-/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
-/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
-/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
-
-/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
-/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
-/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
-/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
-
-% Fonts consisting only of characters from the original Hershey
-% distribution. These are Type 3 fonts.
-
-/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
-/Hershey-Greek-Simplex (hrgks.gsf) ;
-
-/Hershey-Plain (hrplr.gsf) ;
-/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
-/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
-/Hershey-Plain-Oblique (hrplro.gsf) ;
-/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
-/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
-
-% This font, and only this font among the Hershey fonts, uses
-% the SymbolEncoding.
-
-/Hershey-Symbol (hrsyr.gsf) ; % 5066567
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Solaris 2 Display PostScript Type1 and Type3 fonts...
-%
-
-/Helvetica (Helvetica.pfa) ;
-/Helvetica-Bold (Helvetica-Bold.pfa) ;
-/Helvetica-BoldOblique (Helvetica-BoldOblique.pfa) ;
-/Helvetica-Oblique (Helvetica-Oblique.pfa) ;
-
-/Symbol (Symbol.pfa) ;
-/SymbolSet /Symbol ;
-
-/Times-Bold (Times-Bold.pfa) ;
-/Times-BoldItalic (Times-BoldItalic.pfa) ;
-/Times-Italic (Times-Italic.pfa) ;
-/Times-Roman (Times-Roman.pfa) ;
-/TimesNewRoman /Times-Roman ;
-/TimesNewRoman-Bold /Times-Bold ;
-/TimesNewRoman-BoldItalic /Times-BoldItalic ;
-/TimesNewRoman-Italic /Times-Italic ;
-
-/Dijkstra (Dijkstra.ps) ;
-
-/Hershey-Cyrillic (HrshCyr.ps) ;
-
-/Hershey-Gothic (HrshGoth.ps) ;
-
-/Hershey-Greek (HrshGrk.ps) ;
-/Hershey-Greek-Narrow (HrshGrkN.ps) ;
-/Hershey-Greekp (HrshGrkp.ps) ;
-
-/Hershey-Italic (HrshI.ps) ;
-/Hershey-Italic-Narrow (HrshIN.ps) ;
-/Hershey-Italic-Wide (HrshIW.ps) ;
-/Hershey-Roman (HrshRom.ps) ;
-/Hershey-Roman-Narrow (HrshRomN.ps) ;
-/Hershey-Roman-Wide (HrshRomW.ps) ;
-/Hershey-Romand (HrshRomd.ps) ;
-/Hershey-Romanp (HrshRomp.ps) ;
-
-/Hershey-Script (HrshScr.ps) ;
-/Hershey-Script-Narrow (HrshScrN.ps) ;
diff --git a/Master/xemtex/gslib/Fontmap.Ult b/Master/xemtex/gslib/Fontmap.Ult
deleted file mode 100644
index d68d95a7c79..00000000000
--- a/Master/xemtex/gslib/Fontmap.Ult
+++ /dev/null
@@ -1,147 +0,0 @@
-% Copyright (C) 1990, 1995, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: Fontmap.Ult,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Fontmap.Ult is derived from the standard Fontmap file distributed with
-% ghostscript; for credits and sources see that file. The modifications here
-% are valid for ULTRIX 4.3, and consist of defining some fonts and font
-% aliases as the licensed fontfiles included in ULTRIX for use on ULTRIX
-% workstations, which give better quality than the free fontfiles available
-% for ghostscript. Under ULTRIX 4.3 the licensed fontfiles are found in
-%
-% /usr/lib/DPS/outline/decwin
-%
-% so that directory must either be built into ghostscript by redefining
-% GS_LIB_DEFAULT when ghostscript is compiled, or else by defining an
-% environmental variable GS_LIB_DEFAULT, which contains it as an element of
-% the path, when running ghostscript. For instance, under the KornShell
-%
-% GS_LIB_DEFAULT=/usr/gs:/usr/lib/DPS/outline/decwin:/usr/gs/fonts
-% export GS_LIB_DEFAULT
-%
-% Peter Kaiser (kaiser@acm.org) 27 January 1995
-% Updated by L. Peter Deutsch (ghost@aladdin.com) 5 January 1999
-% to include correct aliasing for the Bitstream Charter fonts
-
-/AvantGarde-Book (AvantGarde-Book) ;
-/AvantGarde-BookOblique (AvantGarde-BookOblique) ;
-/AvantGarde-Demi (AvantGarde-Demi) ;
-/AvantGarde-DemiOblique (AvantGarde-DemiOblique) ;
-/Courier (Courier) ;
-/Courier-Bold (Courier-Bold) ;
-/Courier-BoldOblique (Courier-BoldOblique) ;
-/Courier-Oblique (Courier-Oblique) ;
-/Helvetica (Helvetica) ;
-/Helvetica-Bold (Helvetica-Bold) ;
-/Helvetica-BoldOblique (Helvetica-BoldOblique) ;
-/Helvetica-Oblique (Helvetica-Oblique) ;
-/LubalinGraph-Book (LubalinGraph-Book) ;
-/LubalinGraph-BookOblique (LubalinGraph-BookOblique) ;
-/LubalinGraph-Demi (LubalinGraph-Demi) ;
-/LubalinGraph-DemiOblique (LubalinGraph-DemiOblique) ;
-/NewCenturySchlbk-Bold (NewCenturySchlbk-Bold) ;
-/NewCenturySchlbk-BoldItalic (NewCenturySchlbk-BoldItalic) ;
-/NewCenturySchlbk-Italic (NewCenturySchlbk-Italic) ;
-/NewCenturySchlbk-Roman (NewCenturySchlbk-Roman) ;
-/Souvenir-Demi (Souvenir-Demi) ;
-/Souvenir-DemiItalic (Souvenir-DemiItalic) ;
-/Souvenir-Light (Souvenir-Light) ;
-/Souvenir-LightItalic (Souvenir-LightItalic) ;
-/Symbol (Symbol) ;
-/Times-Bold (Times-Bold) ;
-/Times-BoldItalic (Times-BoldItalic) ;
-/Times-Italic (Times-Italic) ;
-/Times-Roman (Times-Roman) ;
-
-% Fonts distributed as part of ghostscript
-
-/Bookman-Demi (pbkd.gsf) ;
-/Bookman-DemiItalic (pbkdi.gsf) ;
-/Bookman-Light (pbkl.gsf) ;
-/Bookman-LightItalic (pbkli.gsf) ;
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-/CharterBT-Bold (bchb.pfa) ;
-/CharterBT-BoldItalic (bchbi.pfa) ;
-/CharterBT-Italic (bchri.pfa) ;
-/CharterBT-Roman (bchr.pfa) ;
-/Hershey-Gothic-English (hrger.pfa) ;
-/Hershey-Gothic-English-Bold (hrgerb.gsf) ;
-/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
-/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
-/Hershey-Gothic-German (hrgrr.pfa) ;
-/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
-/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
-/Hershey-Gothic-Italian (hritr.pfa) ;
-/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
-/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
-/Hershey-Greek-Complex (hrgkc.gsf) ;
-/Hershey-Greek-Simplex (hrgks.gsf) ;
-/Hershey-Plain (hrplr.gsf) ;
-/Hershey-Plain-Bold (hrplrb.gsf) ;
-/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
-/Hershey-Plain-Duplex (hrpld.pfa) ;
-/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
-/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
-/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
-/Hershey-Plain-Oblique (hrplro.gsf) ;
-/Hershey-Plain-Simplex (hrpls.gsf) ;
-/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
-/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ;
-/Hershey-Plain-Triplex (hrplt.pfa) ;
-/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
-/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
-/Hershey-Script-Complex (hrscc.pfa) ;
-/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
-/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
-/Hershey-Script-Simplex (hrscs.pfa) ;
-/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
-/Hershey-Script-Simplex-Oblique (hrscso.gsf) ;
-/Hershey-Symbol (hrsyr.gsf) ;
-/NimbusRomanNo9L-Regular (n021003l.gsf) ;
-/NimbusSansL-Regular (n019003l.gsf) ;
-/Palatino-Bold (pplb.gsf) ;
-/Palatino-BoldItalic (pplbi.gsf) ;
-/Palatino-Italic (pplri.gsf) ;
-/Palatino-Roman (pplr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
-/URWGroteskT-Bold (u004006t.gsf) ;
-/Utopia-Bold (putb.pfa) ;
-/Utopia-BoldItalic (putbi.pfa) ;
-/Utopia-Italic (putri.pfa) ;
-/Utopia-Regular (putr.pfa) ;
-/ZapfChancery (zcr.gsf) ;
-/ZapfChancery-Bold (zcb.gsf) ;
-/ZapfChancery-Oblique (zcro.gsf) ;
-/ZapfDingbats (pzdr.gsf) ;
-
-% Font aliases
-
-/Charter-Roman /CharterBT-Roman ;
-/Charter-Italic /CharterBT-Italic ;
-/Charter-Bold /CharterBT-Bold ;
-/Charter-BoldItalic /CharterBT-BoldItalic ;
-/Courier-BoldItalic /Courier-BoldOblique ;
-/Courier-Italic /Courier-Oblique ;
-/Cyrillic /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Helvetica-Narrow-Bold /Helvetica-Narrow ;
-/ZapfChancery-MediumItalic /ZapfChancery-Oblique ;
diff --git a/Master/xemtex/gslib/Fontmap.VMS b/Master/xemtex/gslib/Fontmap.VMS
deleted file mode 100644
index e58ce48c61d..00000000000
--- a/Master/xemtex/gslib/Fontmap.VMS
+++ /dev/null
@@ -1,424 +0,0 @@
-% fontmap.vms - Ghostscript fontmap for VAX/VMS systems with DECwindows/Motif.
-%
-% Mathog, 14-SEP-2000. Modified slightly from that provided by 6.01.
-% Changed to use Courier font from Decwindows instead of Ghostscript
-% The hershey fonts are listed, but they are not constructed during a regular
-% build of the package.
-%
-% **************************
-%Uses all the XDPS Outline fonts (Type 1 fonts) provided with Motif.
-%
-%XDPS on VAX/VMS does not have Bookman, Palatino and ZapfChancery fonts, so
-%we still have to use the Ghostscript fonts for those. Helvetica-Narrow is also
-%missing. But then you get the LubalinGraph and Souvenir fonts which are just
-%beautiful!
-
-/AvantGarde-Book
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-BOOK.XDPS$OUTLINE) ;
-/AvantGarde-BookOblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-BOOKOBLIQUE.XDPS$OUTLINE) ;
-/AvantGarde-Demi
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-DEMI.XDPS$OUTLINE) ;
-/AvantGarde-DemiOblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-DEMIOBLIQUE.XDPS$OUTLINE) ;
-/Courier-Bold
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-BOLD.XDPS$OUTLINE) ;
-/Courier-BoldOblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-BOLDOBLIQUE.XDPS$OUTLINE) ;
-/Courier-Oblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-OBLIQUE.XDPS$OUTLINE) ;
-/Courier
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER.XDPS$OUTLINE) ;
-/Helvetica-Bold
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-BOLD.XDPS$OUTLINE) ;
-/Helvetica-BoldOblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-BOLDOBLIQUE.XDPS$OUTLINE) ;
-/Helvetica-Oblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-OBLIQUE.XDPS$OUTLINE) ;
-/Helvetica
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA.XDPS$OUTLINE) ;
-/LubalinGraph-Book
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-BOOK.XDPS$OUTLINE) ;
-/LubalinGraph-BookOblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-BOOKOBLIQUE.XDPS$OUTLINE) ;
-/LubalinGraph-Demi
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-DEMI.XDPS$OUTLINE) ;
-/LubalinGraph-DemiOblique
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-DEMIOBLIQUE.XDPS$OUTLINE) ;
-/NewCenturySchlbk-Roman
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-ROMAN.XDPS$OUTLINE) ;
-/NewCenturySchlbk-Italic
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-ITALIC.XDPS$OUTLINE) ;
-/NewCenturySchlbk-Bold
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-BOLD.XDPS$OUTLINE) ;
-/NewCenturySchlbk-BoldItalic
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-BOLDITALIC.XDPS$OUTLINE) ;
-/Souvenir-Light
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-LIGHT.XDPS$OUTLINE) ;
-/Souvenir-LightItalic
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-LIGHTITALIC.XDPS$OUTLINE) ;
-/Souvenir-Demi
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-DEMI.XDPS$OUTLINE) ;
-/Souvenir-DemiItalic
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-DEMIITALIC.XDPS$OUTLINE) ;
-%If you want the Apple symbol (SIC!) then remove the comment (%)
-%in front of character 240 in the following file (he he he)
-/Symbol
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SYMBOL.XDPS$OUTLINE) ;
-/Times-Roman
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-ROMAN.XDPS$OUTLINE) ;
-/Times-Italic
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-ITALIC.XDPS$OUTLINE) ;
-/Times-Bold
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-BOLD.XDPS$OUTLINE) ;
-/Times-BoldItalic
- (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-BOLDITALIC.XDPS$OUTLINE) ;
-
-%
-%
-% Fonts contributed by:
-% URW++ Design and Development Incorporated
-% Poppenbuetteler Bogen 29A
-% D-22399 Hamburg
-% Germany
-% tel. +49 (40) 60 60 50
-% fax +49 (40) 60 60 51 11
-% http://www.urwpp.de
-% for distribution under the GNU License and Aladdin Free Public License.
-% See the notice at the head of this Fontmap file for licensing terms.
-% Each of these fonts is individually covered by the license:
-% for licensing purposes, they are not "part of" any larger entity.
-% The following notice applies to these fonts:
-%
-% Copyright URW Software, Copyright 1994 by URW.
-%
-
-% Actual fonts
-
-/URWBookmanL-DemiBold (b018015l.pfb) ;
-/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
-/URWBookmanL-Ligh (b018012l.pfb) ;
-/URWBookmanL-LighItal (b018032l.pfb) ;
-
-/NimbusMonL-Regu (n022003l.pfb) ;
-/NimbusMonL-ReguObli (n022023l.pfb) ;
-/NimbusMonL-Bold (n022004l.pfb) ;
-/NimbusMonL-BoldObli (n022024l.pfb) ;
-
-/URWGothicL-Book (a010013l.pfb) ;
-/URWGothicL-BookObli (a010033l.pfb) ;
-/URWGothicL-Demi (a010015l.pfb) ;
-/URWGothicL-DemiObli (a010035l.pfb) ;
-
-/NimbusSanL-Regu (n019003l.pfb) ;
-/NimbusSanL-ReguItal (n019023l.pfb) ;
-/NimbusSanL-Bold (n019004l.pfb) ;
-/NimbusSanL-BoldItal (n019024l.pfb) ;
-
-/NimbusSanL-ReguCond (n019043l.pfb) ;
-/NimbusSanL-ReguCondItal (n019063l.pfb) ;
-/NimbusSanL-BoldCond (n019044l.pfb) ;
-/NimbusSanL-BoldCondItal (n019064l.pfb) ;
-
-/URWPalladioL-Roma (p052003l.pfb) ;
-/URWPalladioL-Ital (p052023l.pfb) ;
-/URWPalladioL-Bold (p052004l.pfb) ;
-/URWPalladioL-BoldItal (p052024l.pfb) ;
-
-/CenturySchL-Roma (c059013l.pfb) ;
-/CenturySchL-Ital (c059033l.pfb) ;
-/CenturySchL-Bold (c059016l.pfb) ;
-/CenturySchL-BoldItal (c059036l.pfb) ;
-
-/NimbusRomNo9L-Regu (n021003l.pfb) ;
-/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
-/NimbusRomNo9L-Medi (n021004l.pfb) ;
-/NimbusRomNo9L-MediItal (n021024l.pfb) ;
-
-/StandardSymL (s050000l.pfb) ;
-
-/URWChanceryL-MediItal (z003034l.pfb) ;
-
-/Dingbats (d050000l.pfb) ;
-
-
-% Aliases
-
-/Bookman-Demi /URWBookmanL-DemiBold ;
-/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
-/Bookman-Light /URWBookmanL-Ligh ;
-/Bookman-LightItalic /URWBookmanL-LighItal ;
-
-%/Courier /NimbusMonL-Regu ;
-%/Courier-Oblique /NimbusMonL-ReguObli ;
-%/Courier-Bold /NimbusMonL-Bold ;
-%/Courier-BoldOblique /NimbusMonL-BoldObli ;
-
-%/AvantGarde-Book /URWGothicL-Book ;
-%/AvantGarde-BookOblique /URWGothicL-BookObli ;
-%/AvantGarde-Demi /URWGothicL-Demi ;
-%/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
-
-%/Helvetica /NimbusSanL-Regu ;
-%/Helvetica-Oblique /NimbusSanL-ReguItal ;
-%/Helvetica-Bold /NimbusSanL-Bold ;
-%/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
-
-/Helvetica-Narrow /NimbusSanL-ReguCond ;
-/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
-/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
-/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
-
-/Palatino-Roman /URWPalladioL-Roma ;
-/Palatino-Italic /URWPalladioL-Ital ;
-/Palatino-Bold /URWPalladioL-Bold ;
-/Palatino-BoldItalic /URWPalladioL-BoldItal ;
-
-%/NewCenturySchlbk-Roman /CenturySchL-Roma ;
-%/NewCenturySchlbk-Italic /CenturySchL-Ital ;
-%/NewCenturySchlbk-Bold /CenturySchL-Bold ;
-%/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
-
-%/Times-Roman /NimbusRomNo9L-Regu ;
-%/Times-Italic /NimbusRomNo9L-ReguItal ;
-%/Times-Bold /NimbusRomNo9L-Medi ;
-%/Times-BoldItalic /NimbusRomNo9L-MediItal ;
-
-%/Symbol /StandardSymL ;
-
-/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
-
-/ZapfDingbats /Dingbats ;
-
-
-%
-%
-% Type 1 fonts contributed to the X11R5 distribution.
-%
-
-% The following notice accompanied the Charter fonts.
-%
-% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
-%
-% You are hereby granted permission under all Bitstream propriety rights
-% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
-% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
-% for any purpose and without restriction; provided, that this notice is
-% left intact on all copies of such fonts and that Bitstream's trademark
-% is acknowledged as shown below on all unmodified copies of the 4 Charter
-% Type 1 fonts.
-%
-% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
-/CharterBT-Roman (bchr.pfa) ;
-/CharterBT-Italic (bchri.pfa) ;
-/CharterBT-Bold (bchb.pfa) ;
-/CharterBT-BoldItalic (bchbi.pfa) ;
-%Charter to CharterBT aliasing
-/Charter-Roman /CharterBT-Roman ;
-/Charter-Italic /CharterBT-Italic ;
-/Charter-Bold /CharterBT-Bold ;
-/Charter-BoldItalic /CharterBT-BoldItalic ;
-
-% IBM Courier - Copyright (c) IBM Corporation 1990, 1991
-%/Courier (ncrr.pfa) ;
-%/Courier-Italic (ncrri.pfa) ;
-%/Courier-Bold (ncrb.pfa) ;
-%/Courier-BoldItalic (ncrbi.pfa) ;
-%Oblique to Italic aliasing
-%/Courier-Oblique /Courier-Italic ;
-%/Courier-BoldOblique /Courier-BoldItalic ;
-/Courier-Italic /Courier-Oblique ;
-/Courier-BoldItalic /Courier-BoldOblique ;
-
-% The following notice accompanied the Utopia font:
-%
-% Permission to use, reproduce, display and distribute the listed
-% typefaces is hereby granted, provided that the Adobe Copyright notice
-% appears in all whole and partial copies of the software and that the
-% following trademark symbol and attribution appear in all unmodified
-% copies of the software:
-%
-% Copyright (c) 1989 Adobe Systems Incorporated
-% Utopia (R)
-% Utopia is a registered trademark of Adobe Systems Incorporated
-%
-% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
-% Metric files) donated are:
-%
-% Utopia Regular
-% Utopia Italic
-% Utopia Bold
-% Utopia Bold Italic
-
-/Utopia-Regular (putr.gsf) ;
-/Utopia-Italic (putri.gsf) ;
-/Utopia-Bold (putb.gsf) ;
-/Utopia-BoldItalic (putbi.gsf) ;
-
-%
-%
-% Fonts contributed by URW GmbH for distribution under the GNU License.
-% The following notice accompanied these fonts:
-%
-% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
-% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
-%
-% Copyright (c) 1992 URW GmbH, Hamburg, Germany
-%
-% This program is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2 of the License, or
-% (at your option) later version.
-%
-% This program is distributed in the hope that it will be useful,
-% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-% See the GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
-%
-% Address:
-% URW GmbH
-% PC Support
-% Harksheider Strasse 102
-% 2000 Hamburg 65
-% Germany
-% Phone: +49 40 60 60 50 (Reception)
-% Phone: +49 40 60 60 52 30 (PC Support)
-% Fax : +49 40 60 60 52 52
-%
-
-/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
-/URWGroteskT-Bold (u004006t.gsf) ;
-
-%
-%
-% Shareware Kana fonts. These are subject to the following notice:
-%
-% These copyrighted fonts were developed by Kevin Hartig. Permission is
-% granted to freely distribute them in entirety along with this statement.
-% This is shareware. If you decide to use these fonts please contribute
-% $10 US to help support further freeware and shareware software development.
-% Questions and comments may be sent to:
-%
-% hartig@fsl.noaa.gov
-% khartig@nyx.cs.du.edu
-%
-% Kevin Hartig
-% 1126 Collyer Street
-% Longmont, CO 80501 USA
-%
-% copyright 1993.
-
-% Hiragana and Katakana fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Calligraphic-Hiragana (fhirw.gsf) ;
-/Calligraphic-Katakana (fkarw.gsf) ;
-
-%
-%
-% Public-domain fonts. These have no copyright, and are of unknown quality.
-
-% Cyrillic fonts. The character names are inappropriate,
-% and the encoding is probably not related to any known standard.
-
-/Shareware-Cyrillic-Regular (fcyr.gsf) ;
-/Shareware-Cyrillic-Italic (fcyri.gsf) ;
-
-% Aliases
-/Cyrillic /Cyrillic-Regular ;
-/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
-/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
-
-%
-%
-% Fonts converted from Hershey outlines. These are constructed and
-% maintained manually. These are also in the public domain.
-%
-% The suggested UniqueID's and filenames are constructed differently for
-% these than for the ones above, because of the strange way that the Hershey
-% fonts were constructed. The scheme for these looks like:
-%
-% 42TTXY0
-%
-% TT = typeface, X = ``class'', Y = variation
-%
-% The typeface names and numbers are listed in fonts.mak.
-%
-% class:
-% 0 = normal = r
-% 1 = simplex = s
-% 2 = complex = c
-% 3 = triplex = t
-% 4 = duplex = d
-%
-% variation:
-% 0 = normal (omitted)
-% 1 = oblique = o
-% 2 = italic = i
-% 3 = bold = b
-% 4 = bold oblique = bo
-% 5 = bold italic = bi
-%
-
-% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
-% accents, accented characters, and various other non-alphabetics
-% to the original Hershey fonts. These are "freeware", not to be sold.
-
-/Hershey-Gothic-English (hrger.pfa) ; % 5066533
-/Hershey-Gothic-German (hrgrr.pfa) ;
-/Hershey-Gothic-Italian (hritr.pfa) ;
-
-/Hershey-Plain-Duplex (hrpld.pfa) ;
-/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
-/Hershey-Plain-Triplex (hrplt.pfa) ;
-/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
-
-/Hershey-Script-Complex (hrscc.pfa) ;
-/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
-/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
-/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
-/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
-/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
-/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
-/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
-
-/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
-/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
-/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
-/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
-
-/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
-/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
-/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
-/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
-
-% Fonts consisting only of characters from the original Hershey
-% distribution. These are Type 3 fonts.
-
-/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
-/Hershey-Greek-Simplex (hrgks.gsf) ;
-
-/Hershey-Plain (hrplr.gsf) ;
-/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
-
-% Fonts created algorithmically from the above.
-
-/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
-/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
-/Hershey-Plain-Oblique (hrplro.gsf) ;
-/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
-/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
-/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
-
-% This font, and only this font among the Hershey fonts, uses
-% the SymbolEncoding.
-
-/Hershey-Symbol (hrsyr.gsf) ; % 5066567
diff --git a/Master/xemtex/gslib/Info-macos.plist b/Master/xemtex/gslib/Info-macos.plist
deleted file mode 100644
index 9ece6edc4fa..00000000000
--- a/Master/xemtex/gslib/Info-macos.plist
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
-<plist version="0.9">
-<dict>
- <key>CFBundleIdentifier</key>
- <string>com.ghostscript.Ghostscript</string>
- <key>CFBundleName</key>
- <string>Ghostscript</string>
- <key>CFBundleShortVersionString</key>
- <string>703</string>
- <key>NSExecutable</key>
- <string>Ghostscript</string>
-</dict>
-</plist>
diff --git a/Master/xemtex/gslib/acctest.ps b/Master/xemtex/gslib/acctest.ps
deleted file mode 100644
index f32c25a7887..00000000000
--- a/Master/xemtex/gslib/acctest.ps
+++ /dev/null
@@ -1,100 +0,0 @@
-%!
-% Check that operators do their access tests correctly.
-% $Id: acctest.ps,v 1.1.6.1 2002/04/10 09:22:58 giles Exp $
-
-% proc dotest => .
-/dotest
- {
- dup
- mark
- exch
- stopped not % False if error, true if no error.
- { (Allowed access: ) print cleartomark == }
- if
- clear
- }
-def
-
-0 0 moveto % So the show commands don't bomb because of nocurrentpoint.
-
-{ [1 2] executeonly aload } dotest
-{ (string) executeonly (seek) anchorsearch } dotest
-{ (string) (seek) executeonly anchorsearch } dotest
-{ 100 101 (string) noaccess ashow} dotest
-{ 100 1 array readonly astore } dotest
-{ 100 101 102 103 104 (string) noaccess awidthshow } dotest
-{ 1 dict noacess begin } dotest
-{ 1 array executeonly 1 array copy } dotest
-{ 1 array 1 array readonly copy } dotest
-{ 1 dict noaccess 1 dict copy } dotest
-{ 1 dict 1 dict readonly copy } dotest
-{ 1 string executeonly 1 string copy } dotest
-{ 1 string 1 string readonly copy } dotest
-{ (100) executeonly cvi } dotest
-{ (string) executeonly cvn } dotest
-{ (100.001) executeonly cvr } dotest
-{ 1 10 1 string readonly cvrs } dotest
-{ true 5 string readonly cvs } dotest
-{ 1 dict readonly begin /foo true def } dotest
-{ 10 array readonly dictstack } dotest
-{ 1 string executeonly 1 string eq } dotest
-{ 1 string 1 string executeonly eq } dotest
-{ 10 array readonly execstack } dotest
-{ 1 string noaccess executeonly } dotest
-{ 1 array noaccess executeonly } dotest
-{ 1 array executeonly { pop } forall } dotest
-{ 1 dict noaccess { pop pop } forall } dotest
-{ 1 string executeonly { pop } forall } dotest
-{ (string1) executeonly (string2) ge } dotest
-{ (string1) (string2) executeonly ge } dotest
-{ 1 array executeonly 0 get } dotest
-{ 1 dict noaccess /key get } dotest
-{ 1 string executeonly 0 get } dotest
-{ 1 array executeonly 0 1 getinterval } dotest
-{ 1 string executeonly 0 1 getinterval } dotest
-{ (string1) executeonly (string2) gt } dotest
-{ (string1) (string2) executeonly gt } dotest
-{ 1 dict noaccess /key known } dotest
-{ {} (string) executeonly kshow } dotest
-{ (string1) executeonly (string2) le } dotest
-{ (string1) (string2) executeonly le } dotest
-{ 1 array executeonly length } dotest
-{ 1 dict noaccess length } dotest
-{ 1 string executeonly length } dotest
-%%{ /foo 1 dict def foo begin /bar foo def bar noaccess pop /key load } dotest
-{ (string1) executeonly (string2) lt } dotest
-{ (string1) (string2) executeonly lt } dotest
-{ 1 dict noaccess maxlength } dotest
-{ 1 string executeonly 1 string ne } dotest
-{ 1 string 1 string executeonly ne } dotest
-%{ newpath 0 0 moveto (a) false charpath
-% {} {} {} {} pathforall closepath } dotest
-{ 1 array executeonly 0 put } dotest
-{ 1 dict noaccess /key put } dotest
-{ 1 string executeonly 0 put } dotest
-{ 1 array executeonly 0 1 putinterval } dotest
-{ 1 string executeonly 0 1 putinterval } dotest
-{ (access.ps) (r) file executeonly read } dotest
-{ (access.ps) (r) file executeonly 10 string readhexstring } dotest
-{ (access.ps) (r) file 10 string readonly readhexstring } dotest
-{ (access.ps) (r) file executeonly 100 string readline } dotest
-{ (access.ps) (r) file 100 string readonly readline } dotest
-{ (access.ps) (r) file executeonly 10 string readstring } dotest
-{ (access.ps) (r) file 10 string readonly readstring } dotest
-% run does not check for no read access?
-{ (string) executeonly (seek) search } dotest
-{ (string) (seek) executeonly search } dotest
-{ (string) executeonly show }
-%% some test for store.
-{ (string) executeonly stringwidth } dotest
-{ (access.ps) (r) file executeonly token } dotest
-{ (10) executeonly token } dotest
-{ /foo 1 dict def foo begin /bar foo def bar noaccess pop /key where } dotest
-{ 100 101 102 (string) noaccess widthshow } dotest
-{ (/tmp/_.ps) noaccess (w) file closefile } dotest
-{ (/tmp/_.ps) (w) noaccess file closefile } dotest
-{ (/tmp/_.ps) (w) file executeonly 100 write } dotest
-{ (/tmp/_.ps) (w) file executeonly 10 string writehexstring } dotest
-{ (/tmp/_.ps) (w) file 10 string executeonly writehexstring } dotest
-{ (/tmp/_.ps) (w) file executeonly 10 string writestring } dotest
-{ (/tmp/_.ps) (w) file 10 string executeonly writestring } dotest
diff --git a/Master/xemtex/gslib/addxchar.ps b/Master/xemtex/gslib/addxchar.ps
deleted file mode 100644
index e85ddb659f3..00000000000
--- a/Master/xemtex/gslib/addxchar.ps
+++ /dev/null
@@ -1,358 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: addxchar.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Add the Central European and other Adobe extended Latin characters to a
-% Type 1 font.
-% Requires -dWRITESYSTEMDICT to disable access protection.
-
-(type1ops.ps) runlibfile
-
-% ---------------- Utilities ---------------- %
-
-/addce_dict 50 dict def
-addce_dict begin
-
-% Define the added copyright notice.
-/addednotice (. Portions Copyright (C) 1999 Aladdin Enterprises.) def
-
-% Open a font for modification by removing the FID and changing the
-% FontName. Removing UniqueID and XUID is not necessary, since we
-% will only be adding characters.
-/openfont { % <name> <font> openfont <name> <font'>
- dup length dict copy
- dup /FID undef
- dup /FontName 3 index put
-} def
-
-% Do the equivalent of false charpath for a glyph.
-% This should really be an operator!
-/glyphpath { % <glyph> glyphpath -
- currentfont /Encoding get 0 3 -1 roll put
- <00> false charpath
-} def
-
-% Do the equivalent of charpath + pathbbox for a glyph.
-/glyphbbox { % <glyph> glyphbbox <llx> <lly> <urx> <ury>
- % We cache this value, because it's expensive to compute.
- BBoxes 1 index .knownget {
- exch pop
- } {
- gsave newpath 0 0 moveto dup glyphpath [pathbbox] grestore
- BBoxes 3 -1 roll 2 index put
- } ifelse aload pop
-} def
-
-% Get the side bearing and width for a glyph.
-/glyphsbw { % <glyph> glyphsbw <lsbx> <wx>
- % We cache this value, because it's expensive to compute.
- SBW 1 index .knownget {
- exch pop
- } {
- dup glyphcs { dup /hsbw eq { pop exit } if } forall
- 2 array astore
- SBW 3 -1 roll 2 index put
- } ifelse aload pop
-} def
-
-% Get the CharString for a glyph, as an array.
-/glyphcs { % <glyph> glyphcs <array>
- CharStrings exch get
- 4330 exch dup length string .type1decrypt exch pop
- dup length lenIV sub lenIV exch getinterval
- 0 () /SubFileDecode filter [ exch charstack_read ]
-} def
-
-% Find an occurrence of a value in an array.
-/asearch { % <array> <value> asearch <index> true
- % <array> <value> asearch false
- false 0 4 2 roll exch {
- % Stack: false index value element
- 2 copy eq { pop pop exch not exch dup exit } if
- exch 1 add exch
- } forall pop pop
-} def
-
-% Convert an array back to a CharString.
-/csdef { % <glyph> <array> csdef -
- charproc_string
- 4330 exch dup .type1encrypt exch pop readonly
- CharStrings 3 1 roll put
-} def
-
-% Split an accented character name.
-/splitaccented { % <Baccent> splitaccented <Baccent> <B> <accent>
- dup =string cvs
- dup 0 1 getinterval cvn
- exch dup length 1 sub 1 exch getinterval cvn
-} def
-
-% Begin the definition of a 'seac' character.
-% Defines accent, base, abox, bbox.
-% The initial dx lines up the origins of the base and the accent.
-/beginseac { % <bchar> <achar> beginseac
- % -mark- <lsbx> <wx> /hsbw <asb> <dx>
- /accent exch def /base exch def
- /abox [accent glyphbbox] def
- /bbox [base glyphbbox] def
- [ base glyphsbw /hsbw accent glyphsbw pop
- dup 4 index sub
-} def
-
-% Center the accent over the base of a 'seac' character.
-/centeraccent { % <dx> centeraccent <adx>
- bbox 2 get bbox 0 get add 2 div
- abox 2 get abox 0 get add 2 div
- sub add
-} def
-
-% Finish the definition of a 'seac' character.
-/finishseac { % <charname> -mark- ... <adx> <ady> finishseac -
- exch cvi exch cvi
- charindex base get charindex accent get /seac ] csdef
-} def
-
-% ---------------- Main program ---------------- %
-
-% Define accented characters that can be made with seac,
-% with the accent centered over the character.
-/seacchars [
- /Abreve /Amacron
- /Cacute /Ccaron /Dcaron
- /Ecaron /Edotaccent /Emacron
- /Gbreve
- /Idotaccent /Imacron
- /Lacute
- /Nacute /Ncaron
- /Ohungarumlaut /Omacron
- /Racute /Rcaron
- /Sacute /Scedilla
- /Tcaron
- /Uhungarumlaut /Umacron /Uogonek /Uring
- /Zacute /Zdotaccent
- /abreve /amacron
- /cacute /ccaron
- /ecaron /edotaccent /emacron
- /gbreve
- /lacute
- /nacute /ncaron
- /ohungarumlaut /omacron
- /racute /rcaron
- /sacute /scedilla
- /uhungarumlaut /umacron /uring
- /zacute /zdotaccent
-] def
-
-% Define seac characters where the accent lines up with the right
-% edge of the character.
-/seacrightchars [
- /Aogonek /Eogonek /Iogonek /aogonek /eogonek /iogonek /uogonek
-] def
-
-% Define seac characters where the caron becomes an appended quoteright.
-/seaccaronchars [
- /dcaron /lcaron /tcaron
-] def
-
-% Define seac characters using commaaccent.
-/seaccommachars [
- /Gcommaaccent /Kcommaaccent /Lcommaaccent /Ncommaaccent /Rcommaaccent
- /Scommaaccent /Tcommaaccent
- /gcommaaccent /kcommaaccent /lcommaaccent /ncommaaccent /rcommaaccent
- /scommaaccent /tcommaaccent
-] def
-
-% Define the characters copied from the Symbol font.
-/symbolchars [
- /Delta /greaterequal /lessequal /lozenge /notequal /partialdiff
- /summation
-] def
-
-% Define the procedures for editing the commaaccent character.
-% Delete all the hints, since it's too hard to adjust them.
-/caedit mark
- /rmoveto { exch commatop sub cvi exch }
- /hstem { pop pop pop }
- /vstem 1 index
- /callothersubr {
- dup 3 eq { 4 { pop } repeat /skip true def } if
- }
- /pop { skip { pop /skip false def } if }
-.dicttomark def
-
-/addce { % <name> <font> addce <font'>
- 20 dict begin
- /origfont 1 index def
- openfont
- dup /CharStrings 2 copy get dup length dict copy put
- dup /Encoding 2 copy get dup length array copy put
- dup /FontInfo 2 copy get dup length dict copy put
- definefont /font exch def
- currentdict font end begin begin
- font 1000 scalefont setfont
- /symbolfont /Symbol findfont def
- /BBoxes CharStrings length dict def
- /SBW CharStrings length dict def
-
- /italfactor FontInfo /ItalicAngle .knownget {
- neg dup sin exch cos div
- } {
- 0
- } ifelse def
-
- % Invert the Encoding (needed for seac).
-
- /charindex 256 dict def
- 0 1 255 {
- charindex exch Encoding 1 index get exch put
- } for
-
- % Add the commaaccent character, by moving the comma downward.
-
- /comma glyphbbox /commatop exch def pop pop pop
- /comma glyphcs
- /skip false def
- [ exch { caedit 1 index .knownget { exec } if } forall ]
- /commaaccent exch csdef
-
- % Add the accented characters that can be made with seac.
-
- seacchars {
- splitaccented beginseac
- centeraccent
- % If the accent would collide with the base character,
- % raise it a little.
- abox 1 get bbox 3 get sub dup 0 le {
- % ... but not if the accent is in the low position.
- abox 1 get 0 gt {
- neg 60 add
- % Adjust the X position if italic.
- dup italfactor mul 3 -1 roll add exch
- } {
- pop 0
- } ifelse
- } {
- pop 0
- } ifelse
- finishseac
- } forall
-
- seacrightchars {
- splitaccented beginseac
- bbox 2 get abox 2 get sub add % line up right edges
- 0 finishseac
- } forall
-
- /dcroat /d /hyphen beginseac
- bbox 2 get abox 2 get sub add % line up right edges
- 0 finishseac
-
- /imacron /dotlessi /macron beginseac
- centeraccent
- 0 finishseac
-
- /Lcaron /L /quoteright beginseac
- bbox 2 get abox 2 get sub add % line up right edges
- 0 finishseac
-
- seaccaronchars {
- dup =string cvs 0 1 getinterval cvn /quoteright beginseac
- % Move the quote to the right of the character.
- bbox 2 get abox 0 get sub 50 add add
- % Adjust the character width as well.
- 4 -1 roll abox 2 get abox 0 get sub 50 add add cvi 4 1 roll
- 0 finishseac
- } forall
-
- seaccommachars {
- dup =string cvs 0 1 getinterval cvn /comma beginseac
- centeraccent
- commatop neg
- % Lower the accent if the character extends below
- % the baseline
- bbox 1 get 0 .min add
- finishseac
- } forall
-
- % Add the characters from the Symbol font.
- % We should scale them to match the FontBBox, but we don't.
-
- symbolchars {
- symbolfont /CharStrings get 1 index get
- CharStrings 3 1 roll put
- } forall
-
- % Add the one remaining character.
-
- CharStrings /Dcroat CharStrings /Eth get put
-
- % Recompute the FontBBox, since some of the accented characters
- % may have enlarged it.
-
- /llx 1000 def /lly 1000 def /urx 0 def /ury 0 def
- CharStrings {
- pop glyphbbox
- ury .max /ury exch def urx .max /urx exch def
- lly .min /lly exch def llx .min /llx exch def
- } forall
- /FontBBox llx cvi lly cvi urx ceiling cvi ury ceiling cvi 4 packedarray def
-
- % Restore the Encoding and wrap up.
-
- [/Copyright /Notice] {
- FontInfo 1 index .knownget {
- addednotice concatstrings FontInfo 3 1 roll put
- } {
- pop
- } ifelse
- } forall
- FontName font openfont
- dup /Encoding origfont /Encoding get put
- definefont
-
- end end
-} def
-
-currentdict end readonly pop % addce_dict
-
-/addce { addce_dict begin addce end } def
-
-% ---------------- Integration ---------------- %
-
-% We would like to patch the font loader so that it adds the extended
-% Latin characters automatically. We haven't done this yet.
-
-% ---------------- Test program ---------------- %
-
-/TEST where { pop TEST } { false } ifelse {
- /FONT where { pop } { /FONT /Palatino-Italic def } ifelse
- (unprot.ps) runlibfile
- unprot
- (wrfont.ps) runlibfile
- wrfont_dict begin
- /eexec_encrypt true def
- /binary_CharStrings true def
- end
- save
- FONT findfont
- /Latin-CE exch addce setfont
- (t.ce.pfb) (w) file dup writefont closefile
- restore
- (prfont.ps) runlibfile
- (t.ce.pfb) (r) file .loadfont
- /Latin-CE DoFont
- quit
-} if
diff --git a/Master/xemtex/gslib/afmdiff.awk b/Master/xemtex/gslib/afmdiff.awk
deleted file mode 100644
index 7e5339ceb75..00000000000
--- a/Master/xemtex/gslib/afmdiff.awk
+++ /dev/null
@@ -1,150 +0,0 @@
-###=====================================================================
-### Read two Adobe Font Metric files, and compute tables of the
-### differences in character repertoire, declared widths (WX), and
-### bounding boxes.
-###
-### Usage:
-### awk -f afmdiff.awk file1.afm file2.afm
-###
-### Author:
-### Nelson H. F. Beebe
-### Center for Scientific Computing
-### University of Utah
-### Department of Mathematics, 322 INSCC
-### 155 S 1400 E RM 233
-### Salt Lake City, UT 84112-0090
-### USA
-### Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org,
-### beebe@ieee.org (Internet)
-### WWW URL: http://www.math.utah.edu/~beebe
-### Telephone: +1 801 581 5254
-### FAX: +1 801 585 1640, +1 801 581 4148
-###
-########################################################################
-########################################################################
-########################################################################
-### ###
-### awkdiff.awk: compare two Adobe Font Metric files ###
-### ###
-### Copyright (C) 2000 Nelson H. F. Beebe ###
-### ###
-### This program is covered by the GNU General Public License (GPL), ###
-### version 2 or later, available as the file COPYING in the program ###
-### source distribution, and on the Internet at ###
-### ###
-### ftp://ftp.gnu.org/gnu/GPL ###
-### ###
-### http://www.gnu.org/copyleft/gpl.html ###
-### ###
-### This program is free software; you can redistribute it and/or ###
-### modify it under the terms of the GNU General Public License as ###
-### published by the Free Software Foundation; either version 2 of ###
-### the License, or (at your option) any later version. ###
-### ###
-### This program is distributed in the hope that it will be useful, ###
-### but WITHOUT ANY WARRANTY; without even the implied warranty of ###
-### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ###
-### GNU General Public License for more details. ###
-### ###
-### You should have received a copy of the GNU General Public ###
-### License along with this program; if not, write to the Free ###
-### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, ###
-### MA 02111-1307 USA ###
-### ###
-### This program may also be distributed as part of AFPL ###
-### Ghostscript, under the terms of the Aladdin Free Public License ###
-### (the "License"). ###
-### ###
-### Every copy of AFPL Ghostscript must include a copy of the ###
-### License, normally in a plain ASCII text file named PUBLIC. The ###
-### License grants you the right to copy, modify and redistribute ###
-### AFPL Ghostscript, but only under certain conditions ###
-### described in the License. Among other things, the License ###
-### requires that the copyright notice and this notice be preserved ###
-### on all copies. ###
-### ###
-########################################################################
-########################################################################
-########################################################################
-#
-# [29-Apr-2000]
-#=======================================================================
-
-/^FontName/ { FontName[++NFontName] = $2 }
-
-
-/^C / {
- if (NFontName == 1)
- CharName1[$8]++
- if (NFontName == 2)
- CharName2[$8]++
- }
-
-
-/^C / {
- name = $8
- if (name in WX)
- {
- if (WX[name] != $5)
- WXDIFF[name] = WX[name] - $5
- }
- else
- WX[name] = $5
- }
-
-
-/^C / {
- name = $8
- bx = $13 - $11
- if (name in BX)
- {
- if (BX[name] != bx)
- BXDIFF[name] = BX[name] - bx
- }
- else
- BX[name] = bx
- }
-
-
-/^C / {
- name = $8
- by = $14 - $12
- if (name in BY)
- {
- if (BY[name] != by)
- BYDIFF[name] = BY[name] - by
- }
- else
- BY[name] = by
- }
-
-
-END {
- Sortpipe = "sort -f | pr -c3 -w80 -l1 -t"
- print "Comparison of AFM metrics in files:", ARGV[1], ARGV[2]
- print "Font names:", FontName[1], FontName[2]
- show_name_diffs(FontName[2],CharName2, FontName[1],CharName1)
- show_name_diffs(FontName[1],CharName1, FontName[2],CharName2)
- show_num_diffs("WX width differences", WXDIFF)
- show_num_diffs("Bounding box width differences", BXDIFF)
- show_num_diffs("Bounding box height differences",BYDIFF)
- }
-
-function show_name_diffs(font1,array1,font2,array2, name)
-{
- print "\nChars from", font2, "missing from", font1 ":"
- for (name in array2)
- {
- if (!(name in array1))
- printf("%s\n", name) | Sortpipe
- }
- close(Sortpipe)
-}
-
-function show_num_diffs(title,array, name)
-{
- printf("\n%s:\n", title)
- for (name in array)
- printf("%-15s\t%4d\n", name, array[name]) | Sortpipe
- close(Sortpipe)
-}
diff --git a/Master/xemtex/gslib/align.ps b/Master/xemtex/gslib/align.ps
deleted file mode 100644
index ee1ba89fa3f..00000000000
--- a/Master/xemtex/gslib/align.ps
+++ /dev/null
@@ -1,74 +0,0 @@
-% Copyright (C) 1989, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: align.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Print a page that indicates the proper settings of Margins and HWMargins
-% for a given device. Requires a Level 2 system.
-
-% Reset the offset and margins.
-
-<<
- /PageOffset [0 0]
- /Margins [0 0]
- /.HWMargins [0 0 0 0]
->>
-setpagedevice
-<<
- /ImagingBBox null
->>
-setpagedevice
-
-% Determine the actual page size.
-
-clippath pathbbox newpath
-/y1 exch def /x1 exch def pop pop
-
-% Draw lines that should be exactly 1" in from each edge,
-% and should extend precisely to the edge of the paper.
-
-1 setlinewidth
-0 setgray
-72 0 moveto 0 y1 rlineto stroke
-0 72 moveto x1 0 rlineto stroke
-
-% Print the text in the middle of the page.
-
-/S 80 string def
-108 480 moveto
-/Helvetica 12 selectfont
- { currentfile S readline pop dup (%END) eq { pop exit } if
- gsave show grestore 0 -15 rmoveto
- } loop
-Let the distance in inches from the left edge of the page to
-the vertical line be H, and from the bottom edge to the
-horizontal line be V; let the lengths of the gaps at the top
-and bottom of the vertical line be T and B respectively, and
-the gaps at the left and right of the horizontal line be L
-and R. For correct alignment of pages, put the following line
-in a file named (for example) margins.ps, and then mention
-margins.ps on the gs command line when printing any of your
-own files:
-
- << /.HWMargins [ml mb mr mt] /Margins [x y] >> setpagedevice
-
-where
- ml = L * 72, mb = B * 72, mr = R * 72, mt = T * 72,
-%END
-/res currentpagedevice /.MarginsHWResolution get def
-( x = (1 - H) * ) show res 0 get =string cvs show
-(, y = (V - 1) * ) show res 1 get =string cvs show
-
-showpage
diff --git a/Master/xemtex/gslib/bdftops b/Master/xemtex/gslib/bdftops
deleted file mode 100644
index 2726410c1a5..00000000000
--- a/Master/xemtex/gslib/bdftops
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: bdftops,v 1.2 2001/03/27 21:15:55 alexcher Exp $
-exec gs -q -dBATCH -dNODISPLAY -- bdftops.ps "$@"
diff --git a/Master/xemtex/gslib/bdftops.bat b/Master/xemtex/gslib/bdftops.bat
deleted file mode 100644
index 43686b714bb..00000000000
--- a/Master/xemtex/gslib/bdftops.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: bdftops.bat,v 1.3 2001/03/27 21:15:55 alexcher Exp $
-
-call gssetgs.bat
-%GSC% -q -dBATCH -dNODISPLAY -- bdftops.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/bdftops.cmd b/Master/xemtex/gslib/bdftops.cmd
deleted file mode 100755
index a6292b9cd45..00000000000
--- a/Master/xemtex/gslib/bdftops.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-/* $Id: bdftops.cmd,v 1.2 2001/03/27 21:15:55 alexcher Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-@gsos2 -q -dBATCH -dNODISPLAY -- bdftops.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/bdftops.ps b/Master/xemtex/gslib/bdftops.ps
deleted file mode 100644
index af7b183487c..00000000000
--- a/Master/xemtex/gslib/bdftops.ps
+++ /dev/null
@@ -1,796 +0,0 @@
-% Copyright (C) 1990, 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: bdftops.ps,v 1.3.2.2.2.1 2003/04/12 14:02:38 giles Exp $
-% bdftops.ps
-% Convert a BDF file (possibly with (an) associated AFM file(s))
-% to a PostScript Type 1 font (without eexec encryption).
-% The resulting font will work with any PostScript language interpreter,
-% but not with ATM or other font rasterizers lacking a complete interpreter.
-
-/envBDF 120 dict def
-envBDF begin
-
-% "Import" the image-to-path package.
-% This also brings in the Type 1 opcodes (type1ops.ps).
- (impath.ps) runlibfile
-
-% "Import" the font-writing package.
- (wrfont.ps) runlibfile
- wrfont_dict begin
- /binary_CharStrings false def
- /binary_tokens false def
- /encrypt_CharStrings true def
- /standard_only true def
- end
- /lenIV 0 def
-
-% Invert the StandardEncoding vector.
- 256 dict dup begin
- 0 1 255 { dup StandardEncoding exch get exch def } for
- end /StandardDecoding exch def
-
-% Define the properties copied to FontInfo.
- mark
- (COPYRIGHT) /Notice
- (FAMILY_NAME) /FamilyName
- (FULL_NAME) /FullName
- (WEIGHT_NAME) /Weight
- .dicttomark /properties exch def
-
-% Define the character sequences for synthesizing missing composite
-% characters in the standard encoding.
- mark
- /AE [/A /E]
- /OE [/O /E]
- /ae [/a /e]
- /ellipsis [/period /period /period]
- /emdash [/hyphen /hyphen /hyphen]
- /endash [/hyphen /hyphen]
- /fi [/f /i]
- /fl [/f /l]
- /germandbls [/s /s]
- /guillemotleft [/less /less]
- /guillemotright [/greater /greater]
- /oe [/o /e]
- /quotedblbase [/comma /comma]
- .dicttomark /composites exch def
-
-% Define the procedure for synthesizing composites.
-% This must not be bound.
- /compose
- { exch pop
- FontMatrix Private /composematrix get invertmatrix concat
- 0 0 moveto
- dup gsave false charpath pathbbox currentpoint grestore
- 6 2 roll setcachedevice show
- } def
-% Define the CharString procedure that calls compose, with the string
-% on the stack. This too must remain unbound.
- /compose_proc
- { Private /compose get exec
- } def
-
-% Define aliases for missing characters similarly.
- mark
- /acute /quoteright
- /bullet /asterisk
- /cedilla /comma
- /circumflex /asciicircum
- /dieresis /quotedbl
- /dotlessi /i
- /exclamdown /exclam
- /florin /f
- /fraction /slash
- /grave /quoteleft
- /guilsinglleft /less
- /guilsinglright /greater
- /hungarumlaut /quotedbl
- /periodcentered /asterisk
- /questiondown /question
- /quotedblleft /quotedbl
- /quotedblright /quotedbl
- /quotesinglbase /comma
- /quotesingle /quoteright
- /tilde /asciitilde
- .dicttomark /aliases exch def
-
-% Define overstruck characters that can be synthesized with seac.
- mark
- [ /Aacute /Acircumflex /Adieresis /Agrave /Aring /Atilde
- /Ccedilla
- /Eacute /Ecircumflex /Edieresis /Egrave
- /Iacute /Icircumflex /Idieresis /Igrave
- /Lslash
- /Ntilde
- /Oacute /Ocircumflex /Odieresis /Ograve /Otilde
- /Scaron
- /Uacute /Ucircumflex /Udieresis /Ugrave
- /Yacute /Ydieresis
- /Zcaron
- /aacute /acircumflex /adieresis /agrave /aring /atilde
- /ccedilla
- /eacute /ecircumflex /edieresis /egrave
- /iacute /icircumflex /idieresis /igrave
- /lslash
- /ntilde
- /oacute /ocircumflex /odieresis /ograve /otilde
- /scaron
- /uacute /ucircumflex /udieresis /ugrave
- /yacute /ydieresis
- /zcaron
- ]
- { dup =string cvs
- [ exch dup 0 1 getinterval cvn
- exch dup length 1 sub 1 exch getinterval cvn
- ]
- } forall
- /cent [/c /slash]
- /daggerdbl [/bar /equal]
- /divide [/colon /hyphen]
- /sterling [/L /hyphen]
- /yen [/Y /equal]
- .dicttomark /accentedchars exch def
-
-% ------ Output utilities ------ %
-
- /ws {psfile exch writestring} bind def
- /wl {ws (\n) ws} bind def
- /wt {=string cvs ws ( ) ws} bind def
-
-% ------ BDF file parsing utilities ------ %
-
-% Define a buffer for reading the BDF file.
- /buffer 400 string def
-
-% Read a line from the BDF file into the buffer.
-% Ignore empty (zero-length) lines.
-% Define /keyword as the first word on the line.
-% Define /args as the remainder of the line.
-% If the keyword is equal to commentword, skip the line.
-% (If commentword is equal to a space, never skip.)
- /nextline
- { { bdfile buffer readline not
- { (Premature EOF\n) print stop } if
- dup length 0 ne { exit } if pop
- }
- loop
- ( ) search
- { /keyword exch def pop }
- { /keyword exch def () }
- ifelse
- /args exch def
- keyword commentword eq { nextline } if
- } bind def
-
-% Get a word argument from args. We do *not* copy the string.
- /warg % warg -> string
- { args ( ) search
- { exch pop exch }
- { () }
- ifelse /args exch def
- } bind def
-
-% Get an integer argument from args.
- /iarg % iarg -> int
- { warg cvi
- } bind def
-
-% Get a numeric argument from args.
- /narg % narg -> int|real
- { warg cvr
- dup dup cvi eq { cvi } if
- } bind def
-
-% Convert the remainder of args into a string.
- /remarg % remarg -> string
- { args copystring
- } bind def
-
-% Get a string argument that occupies the remainder of args.
- /sarg % sarg -> string
- { args (") anchorsearch
- { pop /args exch def } { pop } ifelse
- args args length 1 sub get (") 0 get eq
- { args 0 args length 1 sub getinterval /args exch def } if
- args copystring
- } bind def
-
-% Check that the keyword is the expected one.
- /checkline % (EXPECTED-KEYWORD) checkline ->
- { dup keyword ne
- { (Expected ) print =
- (Line=) print keyword print ( ) print args print (\n) print stop
- } if
- pop
- } bind def
-
-% Read a line and check its keyword.
- /getline % (EXPECTED-KEYWORD) getline ->
- { nextline checkline
- } bind def
-
-% Find the first/last non-zero bit of a non-zero byte.
- /fnzb
- { 0 { exch dup 128 ge { pop exit } { dup add exch 1 add } ifelse }
- loop
- } bind def
- /lnzb
- { 7 { exch dup 1 and 0 ne { pop exit } { -1 bitshift exch 1 sub } ifelse }
- loop
- } bind def
-
-% ------ Type 1 encoding utilities ------ %
-
-% Parse the side bearing and width information that begins a CharString.
-% Arguments: charstring. Result: sbx sby wx wy substring.
- /parsesbw
- { mark exch lenIV
- { % stack: mark ... string dropcount
- dup 2 index length exch sub getinterval
- dup 0 get dup 32 lt { pop exit } if
- dup 246 le
- { 139 sub exch 1 }
- { dup 250 le
- { 247 sub 8 bitshift 108 add 1 index 1 get add exch 2 }
- { dup 254 le
- { 251 sub 8 bitshift 108 add 1 index 1 get add neg exch 2 }
- { pop dup 1 get 128 xor 128 sub
- 8 bitshift 1 index 2 get add
- 8 bitshift 1 index 3 get add
- 8 bitshift 1 index 4 get add exch 5
- } ifelse
- } ifelse
- } ifelse
- } loop
- counttomark 3 eq { 0 3 1 roll 0 exch } if
- 6 -1 roll pop
- } bind def
-
-% Find the side bearing and width information that begins a CharString.
-% Arguments: charstring. Result: charstring sizethroughsbw.
- /findsbw
- { dup parsesbw 4 { exch pop } repeat skipsbw
- } bind def
- /skipsbw % charstring sbwprefix -> sizethroughsbw
- { length 1 index length exch sub
- 2 copy get 12 eq { 2 } { 1 } ifelse add
- } bind def
-
-% Encode a number, and append it to a string.
-% Arguments: str num. Result: newstr.
- /concatnum
- { dup dup -107 ge exch 107 le and
- { 139 add 1 string dup 0 3 index put }
- { dup dup -1131 ge exch 1131 le and
- { dup 0 ge { 16#f694 } { neg 16#fa94 } ifelse add
- 2 string dup 0 3 index -8 bitshift put
- dup 1 3 index 255 and put
- }
- { 5 string dup 0 255 put exch
- 2 copy 1 exch -24 bitshift 255 and put
- 2 copy 2 exch -16 bitshift 255 and put
- 2 copy 3 exch -8 bitshift 255 and put
- 2 copy 4 exch 255 and put
- exch
- }
- ifelse
- }
- ifelse exch pop concatstrings
- } bind def
-
-% ------ Point arithmetic utilities ------ %
-
- /ptadd { exch 4 -1 roll add 3 1 roll add } bind def
- /ptexch { 4 2 roll } bind def
- /ptneg { neg exch neg exch } bind def
- /ptpop { pop pop } bind def
- /ptsub { ptneg ptadd } bind def
-
-% ------ The main program ------ %
-
- /readBDF % <infilename> <outfilename> <fontname>
- % <encodingname> <uniqueID> <xuid> readBDF -> <font>
- { /xuid exch def % may be null
- /uniqueID exch def % may be -1
- /encodingname exch def
- /encoding encodingname cvx exec def
- /fontname exch def
- /psname exch def
- /bdfname exch def
- gsave % so we can set the CTM to the font matrix
-
-% Open the input files. We don't open the output file until
-% we've done a minimal validity check on the input.
- bdfname (r) file /bdfile exch def
- /commentword ( ) def
-
-% Check for the STARTFONT.
- (STARTFONT) getline
- args (2.1) ne { (Not version 2.1\n) print stop } if
-
-% Initialize the font.
- /Font 20 dict def
- Font begin
- /FontName fontname def
- /PaintType 0 def
- /FontType 1 def
- uniqueID 0 gt { /UniqueID uniqueID def } if
- xuid null ne { /XUID xuid def } if
- /Encoding encoding def
- /FontInfo 20 dict def
- /Private 20 dict def
- currentdict end currentdict end
- exch begin begin % insert font above environment
-
-% Initialize the Private dictionary in the font.
- Private begin
- /-! {string currentfile exch readhexstring pop} readonly def
- /-| {string currentfile exch readstring pop} readonly def
- /|- {readonly def} readonly def
- /| {readonly put} readonly def
- /BlueValues [] def
- /lenIV lenIV def
- /MinFeature {16 16} def
- /password 5839 def
- /UniqueID uniqueID def
- end % Private
-
-% Invert the Encoding, for synthesizing composite characters.
- /decoding encoding length dict def
- 0 1 encoding length 1 sub
- { dup encoding exch get exch decoding 3 1 roll put }
- for
-
-% Now open the output file.
- psname (w) file /psfile exch def
-
-% Put out a header compatible with the Adobe "standard".
- (%!FontType1-1.0: ) ws fontname wt (000.000) wl
- (% This is a font description converted from ) ws
- bdfname wl
- (% by bdftops running on ) ws
- statusdict /product get ws ( revision ) ws
- revision =string cvs ws (.) wl
-
-% Copy the initial comments, up to FONT.
- true
- { nextline
- keyword (COMMENT) ne {exit} if
- { (% Here are the initial comments from the BDF file:\n%) wl
- } if false
- (%) ws remarg wl
- } loop pop
- () wl
- /commentword (COMMENT) def % do skip comments from now on
-
-% Read and process the FONT, SIZE, and FONTBOUNDINGBOX.
- % If we cared about FONT, we'd use it here. If the BDF files
- % from MIT had PostScript names rather than X names, we would
- % care; but what's there is unusable, so we discard FONT.
- % The FONTBOUNDINGBOX may not be reliable, so we discard it too.
- (FONT) checkline
- (SIZE) getline
- /pointsize iarg def /xres iarg def /yres iarg def
- (FONTBOUNDINGBOX) getline
- nextline
-
-% Initialize the font bounding box bookeeping.
- /fbbxo 1000 def
- /fbbyo 1000 def
- /fbbxe -1000 def
- /fbbye -1000 def
-
-% Read and process the properties. We only care about a few of them.
- keyword (STARTPROPERTIES) eq
- { iarg
- { nextline
- properties keyword known
- { FontInfo properties keyword get sarg readonly put
- } if
- } repeat
- (ENDPROPERTIES) getline
- nextline
- } if
-
-% Compute and set the FontMatrix.
- Font /FontMatrix
- [ 0.001 0 0 0.001 xres mul yres div 0 0 ] readonly
- dup setmatrix put
-
-% Read and process the header for the bitmaps.
- (CHARS) checkline
- /ccount iarg def
-
-% Initialize the CharStrings dictionary.
- /charstrings ccount
- composites length add
- aliases length add
- accentedchars length add
- 1 add dict def % 1 add for .notdef
- /isfixedwidth true def
- /fixedwidth null def
- /subrcount 0 def
- /subrs [] def
-
-% Read the bitmap data. This reads the remainder of the file.
-% We do this before processing the bitmaps so that we can compute
-% the correct FontBBox first.
- /chardata ccount dict def
- ccount -1 1
- { (STARTCHAR) getline
- /charname remarg def
- (ENCODING) getline
- /eindex iarg def
- eindex dup 0 ge exch 255 le and
- { charname /charname StandardEncoding eindex get def
- charname /.notdef eq eindex 0 gt and
- { /charname (A) eindex =string cvs concatstrings cvn def
- }
- if
- (/) print charname =string cvs print (,) print print
- }
- { (/) print charname print
- }
- ifelse
- 10 mod 1 eq { (\n) print flush } if
- (SWIDTH) getline
- /swx iarg pointsize mul 1000 div xres mul 72 div def
- /swy iarg pointsize mul 1000 div xres mul 72 div def
- (DWIDTH) getline % Ignore, use SWIDTH instead
- (BBX) getline
- /bbw iarg def /bbh iarg def /bbox iarg def /bboy iarg def
- nextline
- keyword (ATTRIBUTES) eq
- { nextline
- } if
- (BITMAP) checkline
-
-% Update the font bounding box.
- /fbbxo fbbxo bbox .min def
- /fbbyo fbbyo bboy .min def
- /fbbxe fbbxe bbox bbw add .max def
- /fbbye fbbye bboy bbh add .max def
-
-% Read the bits for this character.
- /raster bbw 7 add 8 idiv def
- /cbits raster bbh mul string def
- cbits length 0 gt
- { 0 raster cbits length raster sub
- { cbits exch raster getinterval
- bdfile buffer readline not
- { (EOF in bitmap\n) print stop } if
- % stack has <cbits.interval> <buffer.interval>
- 0 () /SubFileDecode filter
- exch 2 copy readhexstring pop pop pop closefile
- } for
- } if
-
- (ENDCHAR) getline
-
-% Save the character data.
- chardata charname [swx swy bbw bbh bbox bboy cbits] put
- } for
-
- (ENDFONT) getline
-
-% Allocate the buffers for the bitmap and the outline,
-% according to the font bounding box.
- /fbbw fbbxe fbbxo sub def
- /fbbh fbbye fbbyo sub def
- /fraster fbbw 7 add 8 idiv def
- /bits fraster fbbh mul 200 .max 65535 .min string def
- /outline bits length 6 mul 65535 .min string def
-
-% Process the characters.
- chardata
- { exch /charname exch def aload pop
- /cbits exch def
- /bboy exch def /bbox exch def
- /bbh exch def /bbw exch def
- /swy exch def /swx exch def
-
-% The bitmap handed to type1imagepath must have the correct height,
-% because type1imagepath uses this to compute the scale factor,
-% so we have to clear the unused parts of it.
- /raster bbw 7 add 8 idiv def
- bits dup 0 1 raster fbbh mul 1 sub
- { 0 put dup } for
- pop pop
- bits raster fbbh bbh sub mul cbits putinterval
-
-% Compute the font entry, converting the bitmap to an outline.
- bits 0 raster fbbh mul getinterval % the bitmap image
- bbw fbbh % bitmap width & height
- swx swy % width x & y
- bbox neg bboy neg % origin x & y
- % Account for lenIV when converting the outline.
- outline lenIV outline length lenIV sub getinterval
- type1imagepath
- length lenIV add
- outline exch 0 exch getinterval
-
-% Check for a fixed width font.
- isfixedwidth
- { fixedwidth null eq
- { /fixedwidth swx def }
- { fixedwidth swx ne { /isfixedwidth false def } if }
- ifelse
- } if
-
-% Finish up the character.
- copystring
- charname exch charstrings 3 1 roll put
- } forall
-
-% Add CharStrings entries for aliases.
- aliases
- { charstrings 2 index known not charstrings 2 index known and
- { charstrings exch get charstrings 3 1 roll put
- }
- { pop pop
- }
- ifelse
- }
- forall
-
-% If this is not a fixed-width font, synthesize missing characters
-% out of available ones.
- isfixedwidth not
- { false composites
- { 1 index charstrings exch known not
- 1 index { decoding exch known and } forall
- { ( /) print 1 index bits cvs print
- /combine exch def
- 0 1 combine length 1 sub
- { dup combine exch get decoding exch get
- bits 3 1 roll put
- } for
- bits 0 combine length getinterval copystring
- [ exch /compose_proc load aload pop ] cvx
- charstrings 3 1 roll put
- pop true
- }
- { pop pop }
- ifelse
- }
- forall flush
- { Private /composematrix matrix put
- Private /compose /compose load put
- }
- if
- }
- if
-
-% Synthesize accented characters with seac if needed and possible.
- accentedchars
- { aload pop /accent exch def /base exch def
- buffer cvs /accented exch def
- charstrings accented known not
- charstrings base known and
- charstrings accent known and
- StandardDecoding base known and
- StandardDecoding accent known and
- encoding StandardDecoding base get get base eq and
- encoding StandardDecoding accent get get accent eq and
- { ( /) print accented print
- charstrings base get findsbw 0 exch getinterval
- /acstring exch def % start with sbw of base
- charstrings accent get parsesbw
- 4 { pop } repeat % just leave sbx
- acstring exch concatnum
- 0 concatnum 0 concatnum % adx ady
- decoding base get concatnum % bchar
- decoding accent get concatnum % achar
- s_seac concatstrings
- charstrings exch accented copystring exch put
- } if
- } forall
-
-% Make a CharStrings entry for .notdef.
- outline lenIV <8b8b0d0e> putinterval % 0 0 hsbw endchar
- charstrings /.notdef outline 0 lenIV 4 add getinterval copystring put
-
-% Encrypt the CharStrings and Subrs (in place).
- charstrings
- { % Be careful not to encrypt aliased characters twice,
- % since they share their CharString.
- aliases 2 index known
- { charstrings aliases 3 index get .knownget
- { 1 index ne }
- { true }
- ifelse
- }
- { true
- }
- ifelse
- 1 index type /stringtype eq and
- { 4330 exch dup .type1encrypt exch pop
- readonly charstrings 3 1 roll put
- }
- { pop pop
- }
- ifelse
- }
- forall
- 0 1 subrcount 1 sub
- { dup subrs exch get
- 4330 exch dup .type1encrypt exch pop
- subrs 3 1 roll put
- }
- for
-
-% Make most of the remaining entries in the font dictionaries.
-
-% The Type 1 font machinery really only works with a 1000 unit
-% character coordinate system. Set this up here, by computing the factor
-% to make the X entry in the FontMatrix come out at exactly 0.001.
- /fontscale 1000 fbbh div yres mul xres div def
- Font /FontBBox
- [ fbbxo fontscale mul
- fbbyo fontscale mul
- fbbxe fontscale mul
- fbbye fontscale mul
- ] cvx readonly put
- Font /CharStrings charstrings readonly put
- FontInfo /FullName known not
- { % Some programs insist on FullName being present.
- FontInfo /FullName FontName dup length string cvs put
- }
- if
- FontInfo /isFixedPitch isfixedwidth put
- subrcount 0 gt
- { Private /Subrs subrs 0 subrcount getinterval readonly put
- } if
-
-% Determine the italic angle and underline position
-% by actually installing the font.
- save
- /_temp_ Font definefont setfont
- [1000 0 0 1000 0 0] setmatrix % mitigate rounding problems
-% The italic angle is the multiple of -5 degrees
-% that minimizes the width of the 'I'.
- 0 9999 0 5 85
- { dup rotate
- newpath 0 0 moveto (I) false charpath
- dup neg rotate
- pathbbox pop exch pop exch sub
- dup 3 index lt { 4 -2 roll } if
- pop pop
- }
- for pop
-% The underline position is halfway between the bottom of the 'A'
-% and the bottom of the FontBBox.
- newpath 0 0 moveto (A) false charpath
- FontMatrix concat
- pathbbox pop pop exch pop
-% Put the values in FontInfo.
- 3 -1 roll
- restore
- Font /FontBBox get 1 get add 2 div cvi
- dup FontInfo /UnderlinePosition 3 -1 roll put
- 2 div abs FontInfo /UnderlineThickness 3 -1 roll put
- FontInfo /ItalicAngle 3 -1 roll put
-
-% Clean up and finish.
- grestore
- bdfile closefile
- Font currentdict end end begin % remove font from dict stack
- (\n) print flush
-
- } bind def
-
-% ------ Reader for AFM files ------ %
-
-% Dictionary for looking up character keywords
- /cmdict 6 dict dup begin
- /C { /c iarg def } def
- /N { /n warg copystring def } def
- /WX { /w narg def } def
- /W0X /WX load def
- /W /WX load def
- /W0 /WX load def
- end def
-
- /readAFM % fontdict afmfilename readAFM -> fontdict
- { (r) file /bdfile exch def
- /Font exch def
- /commentword (Comment) def
-
-% Check for the StartFontMetrics.
- (StartFontMetrics) getline
- args cvr 2.0 lt { (Not version 2.0 or greater\n) print stop } if
-
-% Look for StartCharMetrics, then parse the character metrics.
-% The only information we care about is the X width.
- /metrics 0 dict def
- { nextline
- keyword (EndFontMetrics) eq { exit } if
- keyword (StartCharMetrics) eq
- { iarg dup dict /metrics exch def
- { /c -1 def /n null def /w null def
- nextline buffer
- { token not { exit } if
- dup cmdict exch known
- { exch /args exch def cmdict exch get exec args }
- { pop }
- ifelse
- } loop
- c 0 ge n null ne or w null ne and
- { n null eq { /n Font /Encoding get c get def } if
- metrics n w put
- }
- if
- }
- repeat
- (EndCharMetrics) getline
- } if
- } loop
-
-% Insert the metrics in the font.
- metrics length 0 ne
- { Font /Metrics metrics readonly put
- } if
- Font
- } bind def
-
-end % envBDF
-
-% Enter the main program in the current dictionary.
-/bdfafmtops % infilename afmfilename* outfilename fontname
- % encodingname uniqueID xuid
- { envBDF begin
- 7 -2 roll exch 7 2 roll % afm* in out fontname encodingname uniqueID xuid
- readBDF % afm* font
- exch { readAFM } forall
- save exch
- dup /FontName get exch definefont
- setfont
- psfile writefont
- restore
- psfile closefile
- end
- } bind def
-
-% If the program was invoked from the command line, run it now.
-[ shellarguments
- { counttomark 4 ge
- { dup 0 get
- dup 48 ge exch 57 le and % last arg starts with a digit?
- { /StandardEncoding } % no encodingname
- { cvn } % have encodingname
- ifelse
- exch (.) search % next-to-last arg has . in it?
- { mark 4 1 roll % have xuid
- { cvi exch pop exch (.) search not { exit } if }
- loop cvi ]
- 3 -1 roll cvi exch
- }
- { cvi null % no xuid
- }
- ifelse
- counttomark 5 roll
- counttomark 6 sub array astore
- 7 -2 roll cvn 7 -3 roll % make sure fontname is a name
- bdfafmtops
- }
- { cleartomark
- (Usage:\n bdftops xx.bdf [yy1.afm ...] zz.gsf fontname uniqueID [xuid] [encodingname]\n) print flush
- mark
- }
- ifelse
- }
-if pop
diff --git a/Master/xemtex/gslib/bj8.rpd b/Master/xemtex/gslib/bj8.rpd
deleted file mode 100644
index fce6c2d4b7d..00000000000
--- a/Master/xemtex/gslib/bj8.rpd
+++ /dev/null
@@ -1,17 +0,0 @@
-
-StartEntry: U_CanonBJC8200
-GSDriver: uniprint
-Description: {Canon BJC-8200 (UP)}
-About: { \
- Canon BJC-8200 uniprint driver settings.\
- }
-Resolution: {NA} {NA} {}
- BitsPerPixel: {bj8pp12f} {1200x1200DpI, photo paper pro, color, rendered}
- BitsPerPixel: {bj8hg12f} {1200x1200DpI, high gloss photo film, color, rendered}
- BitsPerPixel: {bj8gc12f} {1200x1200DpI, glossy photo cards, color, rendered}
- BitsPerPixel: {bj8oh06n} {600x600DpI, transparencies, color, rendered}
- BitsPerPixel: {bj8ts06n} {600x600DpI, t-shirt transfer, color, rendered}
- BitsPerPixel: {bj8pa06n} {600x600DpI, plain paper, color, rendered}
-
-EndEntry
-#
diff --git a/Master/xemtex/gslib/bj8gc12f.upp b/Master/xemtex/gslib/bj8gc12f.upp
deleted file mode 100644
index fc65a23f9f2..00000000000
--- a/Master/xemtex/gslib/bj8gc12f.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 8200, (1200DpI)^2, glossy photo card, high quality"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/Canon
--r1200x1200
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b 4b 0200 000f
- 1b28 62 0100 01
- 1b28 71 0100 01
- 1b28 64 0400 04b0 04b0
- 1b28 63 0300 3005 04
- 1b28 6c 0200 340d
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bj8hg12f.upp b/Master/xemtex/gslib/bj8hg12f.upp
deleted file mode 100644
index 94f72352ee0..00000000000
--- a/Master/xemtex/gslib/bj8hg12f.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 8200, (1200DpI)^2, high gloss photo, high quality"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/Canon
--r1200x1200
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b 4b 0200 000f
- 1b28 62 0100 01
- 1b28 71 0100 01
- 1b28 64 0400 04b0 04b0
- 1b28 63 0300 3006 04
- 1b28 6c 0200 3406
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bj8oh06n.upp b/Master/xemtex/gslib/bj8oh06n.upp
deleted file mode 100644
index 1ce812d24fa..00000000000
--- a/Master/xemtex/gslib/bj8oh06n.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 8200, (600DpI)^2, OHP, normal quality"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/Canon
--r600x600
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b 4b 0200 000f
- 1b28 62 0100 01
- 1b28 71 0100 01
- 1b28 64 0400 0258 0258
- 1b28 63 0300 3002 03
- 1b28 6c 0200 3402
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bj8pa06n.upp b/Master/xemtex/gslib/bj8pa06n.upp
deleted file mode 100644
index 295cc065fe6..00000000000
--- a/Master/xemtex/gslib/bj8pa06n.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 8200, (600DpI)^2, plain paper, normal quality"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/Canon
--r600x600
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b 4b 0200 000f
- 1b28 62 0100 01
- 1b28 71 0100 01
- 1b28 64 0400 0258 0258
- 1b28 63 0300 3000 03
- 1b28 6c 0200 3400
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bj8pp12f.upp b/Master/xemtex/gslib/bj8pp12f.upp
deleted file mode 100644
index 46ee43d5867..00000000000
--- a/Master/xemtex/gslib/bj8pp12f.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 8200, (1200DpI)^2, professional photo paper, highest quality"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/Canon
--r1200x1200
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b 4b 0200 000f
- 1b28 62 0100 01
- 1b28 71 0100 01
- 1b28 64 0400 04b0 04b0
- 1b28 63 0300 3009 04
- 1b28 6c 0200 340d
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bj8ts06n.upp b/Master/xemtex/gslib/bj8ts06n.upp
deleted file mode 100644
index 01135066ec6..00000000000
--- a/Master/xemtex/gslib/bj8ts06n.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 8200, (600DpI)^2, t-shirt transfer, normal quality"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/Canon
--r600x600
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b 4b 0200 000f
- 1b28 62 0100 01
- 1b28 71 0100 01
- 1b28 64 0400 0258 0258
- 1b28 63 0300 3003 03
- 1b28 6c 0200 3403
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a0.upp b/Master/xemtex/gslib/bjc610a0.upp
deleted file mode 100644
index 05f389dc6bd..00000000000
--- a/Master/xemtex/gslib/bjc610a0.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, plain paper high speed, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 100200
- 1b28 64 0200 0168
- 1b28 6c 0200 1400
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a1.upp b/Master/xemtex/gslib/bjc610a1.upp
deleted file mode 100644
index fcd0afe8b11..00000000000
--- a/Master/xemtex/gslib/bjc610a1.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, plain paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 100110
- 1b28 64 0200 0168
- 1b28 6c 0200 1400
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a2.upp b/Master/xemtex/gslib/bjc610a2.upp
deleted file mode 100644
index 6c1fb6ad3fd..00000000000
--- a/Master/xemtex/gslib/bjc610a2.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, coated paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 101110
- 1b28 64 0200 0168
- 1b28 6c 0200 1410
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a3.upp b/Master/xemtex/gslib/bjc610a3.upp
deleted file mode 100644
index 8345ed68731..00000000000
--- a/Master/xemtex/gslib/bjc610a3.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, transparency film, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 102110
- 1b28 64 0200 0168
- 1b28 6c 0200 1420
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a4.upp b/Master/xemtex/gslib/bjc610a4.upp
deleted file mode 100644
index d53b879865b..00000000000
--- a/Master/xemtex/gslib/bjc610a4.upp
+++ /dev/null
@@ -1,45 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, back print film, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupYFlip
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 103110
- 1b28 64 0200 0168
- 1b28 6c 0200 1430
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a5.upp b/Master/xemtex/gslib/bjc610a5.upp
deleted file mode 100644
index fb6b5b668fd..00000000000
--- a/Master/xemtex/gslib/bjc610a5.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, fabric sheet, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 104110
- 1b28 64 0200 0168
- 1b28 6c 0200 1850
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a6.upp b/Master/xemtex/gslib/bjc610a6.upp
deleted file mode 100644
index 438e08453b0..00000000000
--- a/Master/xemtex/gslib/bjc610a6.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, glossy paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 105110
- 1b28 64 0200 0168
- 1b28 6c 0200 1460
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a7.upp b/Master/xemtex/gslib/bjc610a7.upp
deleted file mode 100644
index d8333f42c06..00000000000
--- a/Master/xemtex/gslib/bjc610a7.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, high gloss film, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 106110
- 1b28 64 0200 0168
- 1b28 6c 0200 1470
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610a8.upp b/Master/xemtex/gslib/bjc610a8.upp
deleted file mode 100644
index 6ec6804e7b6..00000000000
--- a/Master/xemtex/gslib/bjc610a8.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 360x360DpI, high resolution paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r360x360
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073
-0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366
-0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391
-0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000
-}"
--dupCyanTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupMagentaTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupYellowTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 107110
- 1b28 64 0200 0168
- 1b28 6c 0200 14a0
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b1.upp b/Master/xemtex/gslib/bjc610b1.upp
deleted file mode 100644
index 06d1a296b96..00000000000
--- a/Master/xemtex/gslib/bjc610b1.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, plain paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0029 0.0082 0.0151 0.0232 0.0324 0.0426 0.0537
-0.0655 0.0782 0.0916 0.1057 0.1204 0.1358 0.1517 0.1683
-0.1854 0.2030 0.2212 0.2399 0.2591 0.2788 0.2989 0.3195
-0.3406 0.3621 0.3840 0.4064 0.4292 0.4524 0.4760 0.5000
-}"
--dupCyanTransfer="{
-0.0000 0.0004 0.0017 0.0037 0.0067 0.0104 0.0150 0.0204
-0.0266 0.0337 0.0416 0.0504 0.0599 0.0703 0.0816 0.0937
-0.1066 0.1203 0.1349 0.1503 0.1665 0.1836 0.2015 0.2202
-0.2398 0.2601 0.2814 0.3034 0.3263 0.3501 0.3746 0.4000
-}"
--dupMagentaTransfer="{
-0.0000 0.0004 0.0017 0.0037 0.0067 0.0104 0.0150 0.0204
-0.0266 0.0337 0.0416 0.0504 0.0599 0.0703 0.0816 0.0937
-0.1066 0.1203 0.1349 0.1503 0.1665 0.1836 0.2015 0.2202
-0.2398 0.2601 0.2814 0.3034 0.3263 0.3501 0.3746 0.4000
-}"
--dupYellowTransfer="{
-0.0000 0.0004 0.0017 0.0037 0.0067 0.0104 0.0150 0.0204
-0.0266 0.0337 0.0416 0.0504 0.0599 0.0703 0.0816 0.0937
-0.1066 0.1203 0.1349 0.1503 0.1665 0.1836 0.2015 0.2202
-0.2398 0.2601 0.2814 0.3034 0.3263 0.3501 0.3746 0.4000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 101110
- 1b28 64 0200 02d0
- 1b28 6c 0200 1410
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b2.upp b/Master/xemtex/gslib/bjc610b2.upp
deleted file mode 100644
index d8364600153..00000000000
--- a/Master/xemtex/gslib/bjc610b2.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, coated paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0029 0.0082 0.0151 0.0232 0.0324 0.0426 0.0537
-0.0655 0.0782 0.0916 0.1057 0.1204 0.1358 0.1517 0.1683
-0.1854 0.2030 0.2212 0.2399 0.2591 0.2788 0.2989 0.3195
-0.3406 0.3621 0.3840 0.4064 0.4292 0.4524 0.4760 0.5000
-}"
--dupCyanTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupMagentaTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupYellowTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 101110
- 1b28 64 0200 02d0
- 1b28 6c 0200 1410
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b3.upp b/Master/xemtex/gslib/bjc610b3.upp
deleted file mode 100644
index 79c948ca6fb..00000000000
--- a/Master/xemtex/gslib/bjc610b3.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, transparency film, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupMagentaTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupYellowTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 102110
- 1b28 64 0200 02d0
- 1b28 6c 0200 1420
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b4.upp b/Master/xemtex/gslib/bjc610b4.upp
deleted file mode 100644
index 68b2460b615..00000000000
--- a/Master/xemtex/gslib/bjc610b4.upp
+++ /dev/null
@@ -1,45 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, back print film, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupYFlip
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0005 0.0019 0.0042 0.0075 0.0117 0.0169 0.0229
-0.0300 0.0379 0.0468 0.0567 0.0674 0.0791 0.0918 0.1054
-0.1199 0.1353 0.1517 0.1690 0.1873 0.2065 0.2266 0.2477
-0.2697 0.2927 0.3165 0.3414 0.3671 0.3938 0.4214 0.4500
-}"
--dupMagentaTransfer="{
-0.0000 0.0005 0.0019 0.0042 0.0075 0.0117 0.0169 0.0229
-0.0300 0.0379 0.0468 0.0567 0.0674 0.0791 0.0918 0.1054
-0.1199 0.1353 0.1517 0.1690 0.1873 0.2065 0.2266 0.2477
-0.2697 0.2927 0.3165 0.3414 0.3671 0.3938 0.4214 0.4500
-}"
--dupYellowTransfer="{
-0.0000 0.0005 0.0019 0.0042 0.0075 0.0117 0.0169 0.0229
-0.0300 0.0379 0.0468 0.0567 0.0674 0.0791 0.0918 0.1054
-0.1199 0.1353 0.1517 0.1690 0.1873 0.2065 0.2266 0.2477
-0.2697 0.2927 0.3165 0.3414 0.3671 0.3938 0.4214 0.4500
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 103110
- 1b28 64 0200 02d0
- 1b28 6c 0200 1430
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b6.upp b/Master/xemtex/gslib/bjc610b6.upp
deleted file mode 100644
index ef46be5e81d..00000000000
--- a/Master/xemtex/gslib/bjc610b6.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, glossy paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0029 0.0082 0.0151 0.0232 0.0324 0.0426 0.0537
-0.0655 0.0782 0.0916 0.1057 0.1204 0.1358 0.1517 0.1683
-0.1854 0.2030 0.2212 0.2399 0.2591 0.2788 0.2989 0.3195
-0.3406 0.3621 0.3840 0.4064 0.4292 0.4524 0.4760 0.5000
-}"
--dupCyanTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupMagentaTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupYellowTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 105110
- 1b28 64 0200 02d0
- 1b28 6c 0200 1460
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b7.upp b/Master/xemtex/gslib/bjc610b7.upp
deleted file mode 100644
index a12bd827911..00000000000
--- a/Master/xemtex/gslib/bjc610b7.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, high gloss paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupMagentaTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupYellowTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 106110
- 1b28 64 0200 02d0
- 1b28 6c 0200 1470
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/bjc610b8.upp b/Master/xemtex/gslib/bjc610b8.upp
deleted file mode 100644
index c0f036602eb..00000000000
--- a/Master/xemtex/gslib/bjc610b8.upp
+++ /dev/null
@@ -1,44 +0,0 @@
--supModel="Canon BJC 610, 720x720DpI, high resolution paper, color, rendered"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Canon
--r720x720
--dupMargins="{ 8.23 20.44 11.05 7.9 }"
--dupOutputComponentOrder="{ 3 2 1 0 }"
--dupBlackTransfer="{
-0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408
-0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873
-0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404
-0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000
-}"
--dupCyanTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupMagentaTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupYellowTransfer="{
-0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255
-0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171
-0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752
-0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000
-}"
--dupBeginPageCommand="<
- 1b5b4b 0200 000f
- 1b28 62 0100 01
- 1b28 63 0300 107110
- 1b28 64 0200 02d0
- 1b28 6c 0200 14a0
- 1b28 67 0100 E5
->"
--dupEndJobCommand="(\033\050b\001\000\000\033@)"
--dupEndPageCommand="(\014)"
diff --git a/Master/xemtex/gslib/caption.ps b/Master/xemtex/gslib/caption.ps
deleted file mode 100644
index 81a11c01a01..00000000000
--- a/Master/xemtex/gslib/caption.ps
+++ /dev/null
@@ -1,57 +0,0 @@
-%!
-% Copyright (C) 1995 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: caption.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Add a "caption" to the bottom of each page.
-/captionsize 20 def
-/caption
- { /Helvetica //captionsize selectfont
- (Printed by Aladdin's XXYYZZ) show
- /Symbol //captionsize selectfont
- (\324) show % trademarkserif
- /Helvetica //captionsize selectfont
- ( product) show
- } bind def
-
-10 dict begin
-gsave
- initgraphics
- clippath pathbbox
- pop exch 36 add /by exch def
- % We can't use stringwidth, so we have to show and measure.
- gsave
- 0 0 0 0 rectclip
- 0 0 moveto caption currentpoint pop /bw exch def
- grestore
- add bw sub 2 div /bx exch def
- % We don't have the font bbox available, so we guess.
- /bh captionsize 1.05 mul def
-grestore
-/showcaption
- { gsave
- initgraphics
- //bx 9 sub //by 9 sub //bw 18 add //bh 18 add
- 1 setgray 4 copy rectfill 0 setgray 1.5 setlinewidth rectstroke
- //bx //by moveto //caption exec
- grestore
- } bind def
-<< /EndPage [
- /showcaption load /exec load
- currentpagedevice /EndPage get /exec load
- ] cvx
->> setpagedevice
-end
diff --git a/Master/xemtex/gslib/cbjc600.ppd b/Master/xemtex/gslib/cbjc600.ppd
deleted file mode 100644
index fcd0a4d3469..00000000000
--- a/Master/xemtex/gslib/cbjc600.ppd
+++ /dev/null
@@ -1,404 +0,0 @@
-*PPD-Adobe: "4.1"
-*% Adobe Systems PostScript(R) Printer Description File
-*% Copyright 1995 Yves Arrouye for AFPL Ghostscript with Level 2 PS.
-*% All Rights Reserved.
-*% This file may be distributed as part of GNU Ghostscript and/or AFPL
-*% Ghostscript, under the same terms and conditions as Ghostscript.
-*% End of Copyright statement
-*FormatVersion: "4.1"
-*FileVersion: "1.0"
-*LanguageVersion: English
-*PCFileName: "CBJC600.PPD"
-*Product: "(Canon Bubble Jet Color 600)"
-*PSVersion: "(2010.351) 0"
-*ModelName: "Canon Bubble Jet Color 600"
-*NickName: "BJC-600"
-
-*% This file is not complete, and may lack some useful information...
-
-*% Note: the default transfer function should be set to Null if Ghostscript
-*% exhibit a bug making magenta appear while printing in gray levels...
-*% Note: if you print on A4 paper by default, change *Default values (the
-*% default is Letter here).
-
-*% ==============Constraints =================
-
-*UIConstraints: *BitsPerPixel None *ColorModel DeviceCMYK
-*UIConstraints: *BitsPerPixel None *ColorModel DeviceRGB
-*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceRGB
-*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceGray
-*UIConstraints: *BitsPerPixel 24 *ColorModel DeviceGray
-*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceRGB
-*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceGray
-
-*UIConstraints: *ColorModel DeviceCMYK *BitsPerPixel None
-*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel None
-*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 16
-*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 32
-*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 16
-*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 24
-*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 32
-
-*% =========== Device Capabilities ===============
-
-*LanguageLevel: "2"
-*Protocols: TBCP
-*FreeVM: "2124600"
-*ColorDevice: True
-*DefaultColorSpace: CMYK
-*FileSystem: True
-*Throughput: "1"
-
-*Password: "()"
-
-*% ============Paper Size Information ==============
-
-*OpenUI *PageSize: PickOne
-*OrderDependency: 30 AnySetup *PageSize
-*DefaultPageSize: Letter
-*PageSize A4: "1 dict dup /PageSize [595 842] put setpagedevice"
-*PageSize A5: "1 dict dup /PageSize [421 595] put setpagedevice"
-*PageSize A6: "1 dict dup /PageSize [297 421] put setpagedevice"
-*PageSize A7: "1 dict dup /PageSize [210 297] put setpagedevice"
-*PageSize A8: "1 dict dup /PageSize [148 210] put setpagedevice"
-*PageSize A9: "1 dict dup /PageSize [105 148] put setpagedevice"
-*PageSize A10: "1 dict dup /PageSize [74 105] put setpagedevice"
-*PageSize B5: "1 dict dup /PageSize [501 709] put setpagedevice"
-*PageSize Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
-*CloseUI: *PageSize
-
-*OpenUI *PageRegion: PickOne
-*OrderDependency: 40 AnySetup *PageRegion
-*DefaultPageRegion: Letter
-*PageRegion A4: "1 dict dup /PageSize [595 842] put setpagedevice"
-*PageRegion A5: "1 dict dup /PageSize [421 595] put setpagedevice"
-*PageRegion A6: "1 dict dup /PageSize [297 421] put setpagedevice"
-*PageRegion A7: "1 dict dup /PageSize [210 297] put setpagedevice"
-*PageRegion A8: "1 dict dup /PageSize [148 210] put setpagedevice"
-*PageRegion A9: "1 dict dup /PageSize [105 148] put setpagedevice"
-*PageRegion A10: "1 dict dup /PageSize [74 105] put setpagedevice"
-*PageRegion B5: "1 dict dup /PageSize [501 709] put setpagedevice"
-*PageRegion Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
-*CloseUI: *PageRegion
-
-*DefaultImageableArea: Letter
-*ImageableArea A4: "18.425196 27.096094 576.625183 833.496094"
-*ImageableArea A5: "18.425196 27.096045 402.625183 586.496033"
-*ImageableArea A6: "18.425196 27.096045 278.625183 412.496033"
-*ImageableArea A7: "18.425196 27.096045 191.625198 288.496033"
-*ImageableArea A8: "18.425196 27.096045 129.625198 201.496048"
-*ImageableArea A9: "18.425196 27.096045 86.625198 139.496048"
-*ImageableArea A10: "18.425196 27.096045 55.625195 96.496048"
-*ImageableArea B5: "18.425196 27.096045 482.625183 700.496033"
-*ImageableArea Letter/US Letter: "18.425196 27.096045 593.625183 783.496033"
-
-*?ImageableArea: "
-save
- /cvp {( ) cvs print ( ) print } bind def
- /upperright {10000 mul floor 10000 div} bind def
- /lowerleft {10000 mul ceiling 10000 div} bind def
- newpath clippath pathbbox
- 4 -2 roll exch 2 {lowerleft cvp} repeat
- exch 2 {upperright cvp} repeat flush
- restore
-"
-*End
-
-*PaperDimension A4: "595 842"
-*PaperDimension A5: "421 595"
-*PaperDimension A6: "297 421"
-*PaperDimension A7: "210 297"
-*PaperDimension A8: "148 210"
-*PaperDimension A9: "105 148"
-*PaperDimension A10: "74 105"
-*PaperDimension B5: "501 709"
-*PaperDimension Letter/US Letter: "612 792"
-
-*HWMargins: "9.637794495 27.042521 9.637794495 8.503937"
-
-*% =============Halftone Information ===============
-
-*ScreenFreq: "60.0"
-*ScreenAngle: "45.0"
-
-*DefaultScreenProc: Dot
-*ScreenProc Dot: "
-{dup mul exch dup mul add 1.0 exch sub }
-"
-*End
-*ScreenProc Line: "{ pop }"
-*ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"
-
-*DefaultTransfer: Normalized
-*Transfer Normalized: "{mark
-1.0 1.000 0.955 0.915 0.847 0.765 0.683 0.602 0.500 0.311 0.030 0.0
-counttomark dup 3 add -1 roll exch
-2 sub mul dup floor cvi dup 3 1 roll sub exch dup
-3 add index exch 2 add index dup 4 1 roll sub mul add
-counttomark 1 add 1 roll cleartomark
-} bind"
-*End
-*Transfer Null: "{ }"
-*Transfer Null.Inverse: "{ 1 exch sub }"
-*End
-
-*%==================Input Slot====================
-
-*OpenUI *InputSlot/Media Source: PickOne
-*OrderDependency: 20 AnySetup *InputSlot
-*DefaultInputSlot: Feeder
-*InputSlot Feeder/Paper Tray: ""
-*CloseUI: *InputSlot
-
-*%=================Manual Feed====================
-
-*OpenUI *ManualFeed/Manual Feed: Boolean
-*OrderDependency: 20 AnySetup *ManualFeed
-*DefaultManualFeed: False
-*ManualFeed True/True: "1 dict dup /ManualFeed true put setpagedevice"
-*ManualFeed False/False: "1 dict dup /ManualFeed false put setpagedevice"
-*?ManualFeed: "
- save
- currentpagedevice /ManualFeed get
- {(True)}{(False)}ifelse = flush
- restore"
-*End
-
-*CloseUI: *ManualFeed
-
-*%===================Resolution====================
-
-*OpenUI *Resolution/Resolution: PickOne
-*OrderDependency: 10 AnySetup *Resolution
-*DefaultResolution: 360x360dpi
-*Resolution 90x90dpi/90dpi: "
- 1 dict dup /HWResolution [ 90 90 ]
- put setpagedevice"
-*End
-
-*Resolution 180x180dpi/180dpi: "
- 1 dict dup /HWResolution [ 180 180 ]
- put setpagedevice"
-*End
-
-*Resolution 360x360dpi/360dpi: "
- 1 dict dup /HWResolution [ 360 360 ]
- put setpagedevice"
-*End
-
-*?Resolution: "
- save
- currentpagedevice /HWResolution get dup
- 0 get cvi 10 string cvs print
- (x) print
- 0 get cvi 10 string print
- (dpi) = flush
- restore"
-*End
-
-*CloseUI: *Resolution
-
-*%===================Output Depth====================
-
-*OpenUI *BitsPerPixel/Print Depth: PickOne
-*OrderDependency: 30 AnySetup *BitsPerPixel
-*DefaultBitsPerPixel: 24
-*BitsPerPixel None/1bpp: "
- 1 dict dup /BitsPerPixel 1 put
- setpagedevice"
-*End
-
-*BitsPerPixel 8/8bpp: "
- 1 dict dup /BitsPerPixel 8 put
- setpagedevice"
-*End
-
-*BitsPerPixel 16/16bpp: "
- 1 dict dup /BitsPerPixel 16 put
- setpagedevice"
-*End
-
-*BitsPerPixel 24/24bpp: "
- 1 dict dup /BitsPerPixel 24 put
- setpagedevice"
-*End
-
-*BitsPerPixel 32/32bpp: "
- 1 dict dup /BitsPerPixel 32 put
- setpagedevice"
-*End
-
-*?BitsPerPixel: "
- save
- currentpagedevice /BitsPerPixel get dup 1 eq { pop (None) } if = flush
- restore"
-*End
-
-*CloseUI: *BitsPerPixel
-
-*%=================Media Type============================
-
-*OpenUI *MediaType/Media Type: PickOne
-*OrderDependency: 50 AnySetup *MediaType
-*DefaultMediaType: PlainPaper
-*MediaType PlainPaper/Plain Paper: "
- 1 dict dup /MediaType (PlainPaper) put setpagedevice"
-*End
-
-*MediaType CoatedPaper/Coated Paper: "
- 1 dict dup /MediaType (CoatedPaper) put setpagedevice"
-*End
-
-*MediaType TransparencyFilm/Transparency Film: "
- 1 dict dup /MediaType (TransparencyFilm) put setpagedevice"
-*End
-
-*MediaType Envelope/Envelope: "
- 1 dict dup /MediaType (Envelope) put setpagedevice"
-*End
-
-*MediaType Card/Card: "
- 1 dict dup /MediaType (Card) put setpagedevice"
-*End
-
-*MediaType Other/Other: "
- 1 dict dup /MediaType (Other) put setpagedevice"
-*End
-
-*?MediaType: "
- save
- currentpagedevice /MediaType get
- dup null eq {pop (Unknown)} if = flush
- restore "
-*End
-
-*CloseUI: *MediaType
-
-*%===================Printing Quality====================
-
-*OpenUI *OutputMode/Print Quality: PickOne
-*OrderDependency: 50 AnySetup *OuputMode
-*DefaultOutputMode: Normal
-*OutputMode Draft/Draft: "
- 1 dict dup /PrintQuality (Draft) put setpagedevice"
-*End
-
-*OutputMode Normal/Normal: "
- 1 dict dup /PrintQuality (Normal) put setpagedevice"
-*End
-
-*OutputMode High/High: "
- 1 dict dup /PrintQuality (High) put setpagedevice"
-*End
-
-*?OutputMode: "
- save
- currentpagedevice /PrintQuality get
- dup null eq {pop (Unknown)} if = flush
- restore "
-*End
-
-*CloseUI: *OutputMode
-
-*%===================Color/Gray Printing====================
-
-*OpenUI *ColorModel/Color Processing: PickOne
-*OrderDependency: 20 AnySetup *ColorModel
-*DefaultColorModel: DeviceCMYK
-*ColorModel DeviceGray/Gray: "
- 1 dict dup /ProcessColorModel /DeviceGray
- put setpagedevice"
-*End
-
-*ColorModel DeviceRGB/RGB: "
- 1 dict dup /ProcessColorModel /DeviceRGB
- put setpagedevice"
-*End
-
-*ColorModel DeviceCMYK/CMYK: "
- 1 dict dup /ProcessColorModel /DeviceCMYK
- put setpagedevice"
-*End
-
-*?ColorModel: "
- save
- currentpagedevice /ProcessColorModel get = flush
- restore "
-*End
-
-*CloseUI: *ColorModel
-
-*%===================Media Weight/Thick Media====================
-
-*OpenUI *ThickMedia/Thick Media: PickOne
-*OrderDependency: 30 AnySetup *ThickMedia
-*Default ThickMedia: Thin
-*ThickMedia Thin/No: "
- 1 dict dup /MediaWeight 80
- put setpagedevice"
-*End
-
-*ThickMedia Thick/Yes: "
- 1 dict dup /ThickMedia 120
- put setpagedevice"
-*End
-
-*?ThickMedia: "
- save
- currentpagedevice /MediaWeight get 105 gt { (Thick) } { (Thin) } ifelse
- = flush
- restore "
-*End
-
-*CloseUI: *ThickMedia
-
-*%===================PrintColors====================
-
-*OpenUI *PrintColors/Print Colors: PickOne
-*OrderDependency: 20 AnySetup *PrintColors
-*DefaultPrintColors: "15"
-*PrintColors 0/None: "1 dict dup /PrintColors 0 put setpagedevice"
-*End
-
-*PrintColors 1/Cyan: "1 dict dup /PrintColors 1 put setpagedevice"
-*End
-
-*PrintColors 2/Magenta: "1 dict dup /PrintColors 2 put setpagedevice"
-*End
-
-*PrintColors 4/Yellow: "1 dict dup /PrintColors 4 put setpagedevice"
-*End
-
-*PrintColors 8/Black: "1 dict dup /PrintColors 8 put setpagedevice"
-*End
-
-*PrintColors 15/All: "1 dict dup /PrintColors 15 put setpagedevice"
-*End
-
-
-*CloseUI *PrintColors
-
-*%===================Monochrome Printing====================
-
-*OpenUI *MonochromePrint/Monochrome Print: Boolean
-*OrderDependency: 50 AnySetup *MonochromePrint
-*DefaultMonochromePrint: False
-*MonochromePrint True/Yes: "
- 1 dict dup /MonochromePrint true
- put setpagedevice"
-*End
-
-*MonochromePrint False/No: "
- 1 dict dup /MonochromePrint false
- put setpagedevice"
-*End
-
-*?MonochromePrint: "
- save
- currentpagedevice /MonochromePrint get
- {(True)}{(False)}ifelse = flush
- restore"
-*End
-
-*CloseUI: *MonochromePrint
-
diff --git a/Master/xemtex/gslib/cbjc800.ppd b/Master/xemtex/gslib/cbjc800.ppd
deleted file mode 100644
index d919bd9ed37..00000000000
--- a/Master/xemtex/gslib/cbjc800.ppd
+++ /dev/null
@@ -1,389 +0,0 @@
-*PPD-Adobe: "4.1"
-*% Adobe Systems PostScript(R) Printer Description File
-*% Copyright 1995 Yves Arrouye for AFPL Ghostscript with Level 2 PS.
-*% All Rights Reserved.
-*% This file may be distributed as part of GNU Ghostscript and/or AFPL
-*% Ghostscript, under the same terms and conditions as Ghostscript.
-*% End of Copyright statement
-*FormatVersion: "4.1"
-*FileVersion: "1.0"
-*LanguageVersion: English
-*PCFileName: "CBJC800.PPD"
-*Product: "(Canon Bubble Jet Color 800)"
-*PSVersion: "(2010.351) 0"
-*ModelName: "Canon Bubble Jet Color 800"
-*NickName: "BJC-800"
-
-*% This file is not complete, and may lack some useful information...
-
-*% Note: the default transfer function should be set to Null if Ghostscript
-*% exhibit a bug making magenta appear while printing in gray levels...
-*% Note: if you print on A4 paper by default, change *Default values (the
-*% default is Letter here).
-
-*% ==============Constraints =================
-
-*UIConstraints: *BitsPerPixel None *ColorModel DeviceCMYK
-*UIConstraints: *BitsPerPixel None *ColorModel DeviceRGB
-*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceRGB
-*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceGray
-*UIConstraints: *BitsPerPixel 24 *ColorModel DeviceGray
-*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceRGB
-*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceGray
-
-*UIConstraints: *ColorModel DeviceCMYK *BitsPerPixel None
-*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel None
-*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 16
-*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 32
-*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 16
-*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 24
-*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 32
-
-*% =========== Device Capabilities ===============
-
-*LanguageLevel: "2"
-*Protocols: TBCP
-*FreeVM: "2124600"
-*ColorDevice: True
-*DefaultColorSpace: CMYK
-*FileSystem: True
-*Throughput: "1"
-
-*Password: "()"
-
-*% ============Paper Size Information ==============
-
-*OpenUI *PageSize: PickOne
-*OrderDependency: 30 AnySetup *PageSize
-*DefaultPageSize: Letter
-*PageSize A4: "1 dict dup /PageSize [595 842] put setpagedevice"
-*PageSize A5: "1 dict dup /PageSize [421 595] put setpagedevice"
-*PageSize A6: "1 dict dup /PageSize [297 421] put setpagedevice"
-*PageSize A7: "1 dict dup /PageSize [210 297] put setpagedevice"
-*PageSize A8: "1 dict dup /PageSize [148 210] put setpagedevice"
-*PageSize A9: "1 dict dup /PageSize [105 148] put setpagedevice"
-*PageSize A10: "1 dict dup /PageSize [74 105] put setpagedevice"
-*PageSize B5: "1 dict dup /PageSize [501 709] put setpagedevice"
-*PageSize Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
-*PageSize 11x17/US 11x17: "1 dict dup /PageSize [792 1224] put setpagedevice"
-*PageSize Ledger/US Ledger: "1 dict dup /PageSize [1224 792] put setpagedevice"
-*PageSize Legal/US Legal: "1 dict dup /PageSize [612 1008] put setpagedevice"
-*CloseUI: *PageSize
-
-*OpenUI *PageRegion: PickOne
-*OrderDependency: 40 AnySetup *PageRegion
-*DefaultPageRegion: Letter
-*PageRegion A4: "1 dict dup /PageSize [595 842] put setpagedevice"
-*PageRegion A5: "1 dict dup /PageSize [421 595] put setpagedevice"
-*PageRegion A6: "1 dict dup /PageSize [297 421] put setpagedevice"
-*PageRegion A7: "1 dict dup /PageSize [210 297] put setpagedevice"
-*PageRegion A8: "1 dict dup /PageSize [148 210] put setpagedevice"
-*PageRegion A9: "1 dict dup /PageSize [105 148] put setpagedevice"
-*PageRegion A10: "1 dict dup /PageSize [74 105] put setpagedevice"
-*PageRegion B5: "1 dict dup /PageSize [501 709] put setpagedevice"
-*PageRegion Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
-*PageRegion 11x17/US 11x17: "1 dict dup /PageSize [792 1224] put setpagedevice"
-*PageRegion Ledger/US Ledger: "1 dict dup /PageSize [1224 792] put setpagedevice"
-*PageRegion Legal/US Legal: "1 dict dup /PageSize [612 1008] put setpagedevice"
-*CloseUI: *PageRegion
-
-*DefaultImageableArea: Letter
-*ImageableArea A3: "9.637793 27.096094 832.437805 1181.496094"
-*ImageableArea A4: "18.425196 27.096094 576.625183 833.496094"
-*ImageableArea A5: "18.425196 27.096045 402.625183 586.496033"
-*ImageableArea A6: "18.425196 27.096045 278.625183 412.496033"
-*ImageableArea A7: "18.425196 27.096045 191.625198 288.496033"
-*ImageableArea A8: "18.425196 27.096045 129.625198 201.496048"
-*ImageableArea A9: "18.425196 27.096045 86.625198 139.496048"
-*ImageableArea A10: "18.425196 27.096045 55.625195 96.496048"
-*ImageableArea B5: "18.425196 27.096045 482.625183 700.496033"
-*ImageableArea Letter/US Letter: "18.425196 27.096045 593.625183 783.496033"
-*ImageableArea 11x17/US 11x17: "9.637793 27.096094 782.437805 1215.496094"
-*ImageableArea Ledger/US Ledger: "9.637793 27.096045 1214.437744 783.496033"
-*ImageableArea Legal/US Legal: "9.637793 27.096094 602.437805 999.496094"
-
-*?ImageableArea: "
-save
- /cvp {( ) cvs print ( ) print } bind def
- /upperright {10000 mul floor 10000 div} bind def
- /lowerleft {10000 mul ceiling 10000 div} bind def
- newpath clippath pathbbox
- 4 -2 roll exch 2 {lowerleft cvp} repeat
- exch 2 {upperright cvp} repeat flush
- restore
-"
-*End
-
-*PaperDimension A4: "595 842"
-*PaperDimension A5: "421 595"
-*PaperDimension A6: "297 421"
-*PaperDimension A7: "210 297"
-*PaperDimension A8: "148 210"
-*PaperDimension A9: "105 148"
-*PaperDimension A10: "74 105"
-*PaperDimension B5: "501 709"
-*PaperDimension Letter/US Letter: "612 792"
-*PaperDimension 11x17/US 11x17: "792 1224"
-*PaperDimension Ledger/US Ledger: "1224 792"
-*PaperDimension Legal/US Legal: "612 1008"
-
-*HWMargins: "9.637794495 19.842518 9.637794495 8.503937"
-
-*% =============Halftone Information ===============
-
-*ScreenFreq: "60.0"
-*ScreenAngle: "45.0"
-
-*DefaultScreenProc: Dot
-*ScreenProc Dot: "
-{dup mul exch dup mul add 1.0 exch sub }
-"
-*End
-*ScreenProc Line: "{ pop }"
-*ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"
-
-*DefaultTransfer: Normalized
-*Transfer Normalized: "{mark
-1.0 1.000 0.955 0.915 0.847 0.765 0.683 0.602 0.500 0.311 0.030 0.0
-counttomark dup 3 add -1 roll exch
-2 sub mul dup floor cvi dup 3 1 roll sub exch dup
-3 add index exch 2 add index dup 4 1 roll sub mul add
-counttomark 1 add 1 roll cleartomark
-} bind"
-*End
-*Transfer Null: "{ }"
-*Transfer Null.Inverse: "{ 1 exch sub }"
-*End
-
-*%==================Input Slot====================
-
-*OpenUI *InputSlot/Media Source: PickOne
-*OrderDependency: 20 AnySetup *InputSlot
-*DefaultInputSlot: Feeder
-*InputSlot Feeder/Paper Tray: ""
-*CloseUI: *InputSlot
-
-*%=================Manual Feed====================
-
-*OpenUI *ManualFeed/Manual Feed: Boolean
-*OrderDependency: 20 AnySetup *ManualFeed
-*DefaultManualFeed: False
-*ManualFeed True/True: "1 dict dup /ManualFeed true put setpagedevice"
-*ManualFeed False/False: "1 dict dup /ManualFeed false put setpagedevice"
-*?ManualFeed: "
- save
- currentpagedevice /ManualFeed get
- {(True)}{(False)}ifelse = flush
- restore"
-*End
-
-*CloseUI: *ManualFeed
-
-*%===================Resolution====================
-
-*OpenUI *Resolution/Resolution: PickOne
-*OrderDependency: 10 AnySetup *Resolution
-*DefaultResolution: 360x360dpi
-*Resolution 90x90dpi/90dpi: "
- 1 dict dup /HWResolution [ 90 90 ]
- put setpagedevice"
-*End
-
-*Resolution 180x180dpi/180dpi: "
- 1 dict dup /HWResolution [ 180 180 ]
- put setpagedevice"
-*End
-
-*Resolution 360x360dpi/360dpi: "
- 1 dict dup /HWResolution [ 360 360 ]
- put setpagedevice"
-*End
-
-*?Resolution: "
- save
- currentpagedevice /HWResolution get dup
- 0 get cvi 10 string cvs print
- (x) print
- 0 get cvi 10 string print
- (dpi) = flush
- restore"
-*End
-
-*CloseUI: *Resolution
-
-*%===================Output Depth====================
-
-*OpenUI *BitsPerPixel/Print Depth: PickOne
-*OrderDependency: 30 AnySetup *BitsPerPixel
-*DefaultBitsPerPixel: 24
-*BitsPerPixel None/1bpp: "
- 1 dict dup /BitsPerPixel 1 put
- setpagedevice"
-*End
-
-*BitsPerPixel 8/8bpp: "
- 1 dict dup /BitsPerPixel 8 put
- setpagedevice"
-*End
-
-*BitsPerPixel 16/16bpp: "
- 1 dict dup /BitsPerPixel 16 put
- setpagedevice"
-*End
-
-*BitsPerPixel 24/24bpp: "
- 1 dict dup /BitsPerPixel 24 put
- setpagedevice"
-*End
-
-*BitsPerPixel 32/32bpp: "
- 1 dict dup /BitsPerPixel 32 put
- setpagedevice"
-*End
-
-*?BitsPerPixel: "
- save
- currentpagedevice /BitsPerPixel get dup 1 eq { pop (None) } if = flush
- restore"
-*End
-
-*CloseUI: *BitsPerPixel
-
-*%=================Media Type============================
-
-*OpenUI *MediaType/Media Type: PickOne
-*OrderDependency: 50 AnySetup *MediaType
-*DefaultMediaType: PlainPaper
-*MediaType PlainPaper/Plain Paper: "
- 1 dict dup /MediaType (PlainPaper) put setpagedevice"
-*End
-
-*MediaType CoatedPaper/Coated Paper: "
- 1 dict dup /MediaType (CoatedPaper) put setpagedevice"
-*End
-
-*MediaType TransparencyFilm/Transparency Film: "
- 1 dict dup /MediaType (TransparencyFilm) put setpagedevice"
-*End
-
-*MediaType Envelope/Envelope: "
- 1 dict dup /MediaType (Envelope) put setpagedevice"
-*End
-
-*MediaType Card/Card: "
- 1 dict dup /MediaType (Card) put setpagedevice"
-*End
-
-*MediaType Other/Other: "
- 1 dict dup /MediaType (Other) put setpagedevice"
-*End
-
-*?MediaType: "
- save
- currentpagedevice /MediaType get
- dup null eq {pop (Unknown)} if = flush
- restore "
-*End
-
-*CloseUI: *MediaType
-
-*%===================Printing Quality====================
-
-*OpenUI *OutputMode/Print Quality: PickOne
-*OrderDependency: 10 AnySetup *OuputMode
-*DefaultOutputMode: Normal
-*OutputMode Draft/Draft: "
- 1 dict dup /PrintQuality (Draft) put setpagedevice"
-*End
-
-*OutputMode Low/Low: "
- 1 dict dup /PrintQuality (Low) put setpagedevice"
-*End
-
-*OutputMode Normal/Normal: "
- 1 dict dup /PrintQuality (Normal) put setpagedevice"
-*End
-
-*OutputMode High/High: "
- 1 dict dup /PrintQuality (High) put setpagedevice"
-*End
-
-*CloseUI: *OutputMode
-
-*%===================Color/Gray Printing====================
-
-*OpenUI *ColorModel/Color Processing: PickOne
-*OrderDependency: 20 AnySetup *ColorModel
-*DefaultColorModel: DeviceCMYK
-*ColorModel DeviceGray/Gray: "
- 1 dict dup /ProcessColorModel /DeviceGray
- put setpagedevice"
-*End
-
-*ColorModel DeviceRGB/RGB: "
- 1 dict dup /ProcessColorModel /DeviceRGB
- put setpagedevice"
-*End
-
-*ColorModel DeviceCMYK/CMYK: "
- 1 dict dup /ProcessColorModel /DeviceCMYK
- put setpagedevice"
-*End
-
-*?ColorModel: "
- save
- currentpagedevice /ProcessColorModel get = flush
- restore "
-*End
-
-*CloseUI: *ColorModel
-
-*%===================Media Weight/Thick Media====================
-
-*OpenUI *ThickMedia/Thick Media: PickOne
-*OrderDependency: 30 AnySetup *ThickMedia
-*Default ThickMedia: Thin
-*ThickMedia Thin/No: "
- 1 dict dup /MediaWeight 80
- put setpagedevice"
-*End
-
-*ThickMedia Thick/Yes: "
- 1 dict dup /ThickMedia 120
- put setpagedevice"
-*End
-
-*?ThickMedia: "
- save
- currentpagedevice /MediaWeight get 105 gt { (Thick) } { (Thin) } ifelse
- = flush
- restore "
-*End
-
-*CloseUI: *ThickMedia
-
-*%===================PrintColors====================
-
-*OpenUI *PrintColors/Print Colors: PickOne
-*OrderDependency: 20 AnySetup *PrintColors
-*DefaultPrintColors: "15"
-*PrintColors 0/None: "1 dict dup /PrintColors 0 put setpagedevice"
-*End
-
-*PrintColors 1/Cyan: "1 dict dup /PrintColors 1 put setpagedevice"
-*End
-
-*PrintColors 2/Magenta: "1 dict dup /PrintColors 2 put setpagedevice"
-*End
-
-*PrintColors 4/Yellow: "1 dict dup /PrintColors 4 put setpagedevice"
-*End
-
-*PrintColors 8/Black: "1 dict dup /PrintColors 8 put setpagedevice"
-*End
-
-*PrintColors 15/All: "1 dict dup /PrintColors 15 put setpagedevice"
-*End
-
-
-*CloseUI *PrintColors
diff --git a/Master/xemtex/gslib/cdj550.upp b/Master/xemtex/gslib/cdj550.upp
deleted file mode 100644
index 51aa264f65e..00000000000
--- a/Master/xemtex/gslib/cdj550.upp
+++ /dev/null
@@ -1,48 +0,0 @@
--supModel="HP Deskjet 550c, 300x300DpI, Gamma=2"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Pcl
--r300x300
--dupMargins="{ 12.0 36.0 12.0 12.0}"
--dupBlackTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupBeginPageCommand="<
- 1b2a726243
- 1b2a7433303052
- 1b266c33616f6c45
- 1b2a6f31643251
- 1b2a703059
- 1b2a72732d34753041
- 1b2a62326d
->"
--dupAdjustPageWidthCommand
--dupEndPageCommand="(0M\033*rbC\033E\033&l0H)"
--dupAbortCommand="(0M\033*rbC\033E\15\12\12\12\12 Printout-Aborted\15\033&l0H)"
--dupYMoveCommand="(%dy\0)"
--dupWriteComponentCommands="{ (%dv\0) (%dv\0) (%dv\0) (%dw\0) }"
-
diff --git a/Master/xemtex/gslib/cdj690.upp b/Master/xemtex/gslib/cdj690.upp
deleted file mode 100644
index 0ec8ea70893..00000000000
--- a/Master/xemtex/gslib/cdj690.upp
+++ /dev/null
@@ -1,52 +0,0 @@
--supModel="HP Deskjet 690 Normal Gamma 2.0"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Pcl
--r600x300
--dupMargins="{ 12.0 36.0 12.0 12.0}"
--dupBlackTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupBeginPageCommand="<
-1b25 2d31 3233 3435 5840
-504a 4c20 454e 5445 5220 4c41 4e47 5541
-4745 3d50 434c 534c 4545 4b0a 1b45 1b2a
-6232 421b 2a6f 3557 040c 0000 001b 2a6f
-3144 1b26 6c31 481b 266c 3236 6130 4c1b
-2a6f 3557 0103 0000 011b 266c 304d 1b26
-6c30 6f30 451b 2a6f 304d 1b26 7533 3030
-441b 2a70 3058 1b2a 7030 591b 2a67 3857
-0201 0258 012c 0002 1b2a 7234 3830 3053
-1b2a 7231 411b 2a62 324d 1b2a 6233 3034
-591b 2a62 326d
->"
--dupAdjustPageWidthCommand
--dupEndPageCommand="(0M\033*rbC\033E\033&l0H)"
--dupAbortCommand="(0M\033*rbC\033E\15\12\12\12\12 Printout-Aborted\15\033&l0H)"
--dupYMoveCommand="(%dy\0)"
--dupWriteComponentCommands="{ (%dv\0) (%dv\0) (%dv\0) (%dw\0) }"
--dupOutputYOffset=10000
diff --git a/Master/xemtex/gslib/cdj690ec.upp b/Master/xemtex/gslib/cdj690ec.upp
deleted file mode 100644
index 13e03964956..00000000000
--- a/Master/xemtex/gslib/cdj690ec.upp
+++ /dev/null
@@ -1,54 +0,0 @@
--supModel="HP Deskjet 690 Econo-Fast Gamma 2.0"
--sDEVICE=uniprint
--sPAPERSIZE=a4
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Pcl
--r300x300
-
--dupOutputYOffset=300
--dupMargins="{ 0.0 36.0 12.0 12.0}"
--dupBlackTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510
- 0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
- 0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
- 0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
-}"
--dupBeginPageCommand="<
-1b25 2d31 3233 3435 5840
-504a 4c20 454e 5445 5220 4c41 4e47 5541
-4745 3d50 434c 534c 4545 4b0a 1b45 1b2a
-6232 421b 2a6f 3557 040c 0000 001b 2a6f
-3144 1b26 6c31 481b 266c 3236 6130 4c1b
-2a6f 3557 0103 0000 011b 266c 304d 1b26
-6c30 6f30 451b 2a6f 2d31 4d1b 2675 3330
-3044 1b2a 7030 581b 2a70 3059 1b2a 6732
-3657 0204 012c 012c 0002 012c 012c 0002
-012c 012c 0002 012c 012c 0002 1b2a 7232
-3430 3053 1b2a 7231 411b 2a62 324d 1b2a
-6231 591b 2a62 326d>"
--dupAdjustPageWidthCommand
--dupEndPageCommand="(0M\033*rbC\033E\033&l0H)"
--dupAbortCommand="(0M\033*rbC\033E\15\12\12\12\12 Printout-Aborted\15\033&l0H)"
--dupYMoveCommand="(%dy\0)"
--dupWriteComponentCommands="{ (%dv\0) (%dv\0) (%dv\0) (%dw\0) }"
diff --git a/Master/xemtex/gslib/cid2code.ps b/Master/xemtex/gslib/cid2code.ps
deleted file mode 100644
index 48a4c28bef4..00000000000
--- a/Master/xemtex/gslib/cid2code.ps
+++ /dev/null
@@ -1,161 +0,0 @@
-% Copyright (C) 1998, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: cid2code.ps,v 1.3.4.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Construct an inverse map from CIDs to codes.
-
-% Create an inverse map from CIDs to code values.
-% We only use this for 16-bit Unicode, so it has some limitations.
-% After invoking .cmap2code, loading a CMap file prints out the map
-% instead of doing what it usually does. For example:
-%
-% gs -dNODISPLAY -dBATCH lib/cid2code.ps -c .cmap2code\
-% -f Resource/CMap/UniJIS-UCS2-H > mapfile
-
-/.cmap2codedict 10 dict begin
-
-/begincmap {
- mark
-} def
-/endcmap {
- % Stack: mark code_lo1 code_hi1 cid1 ...
- 20 dict begin
- /depth counttomark 3 sub def
- % Do a first pass to determine the maximum CID.
- 0 0 3 depth {
- 1 add /d exch def
- d index d 2 add index 1 get add d 3 add index 1 get sub .max
- } for
- 1 add /ncid exch def
- /map ncid 2 mul string def
- % Now fill in the map.
- 0 3 depth {
- /d exch def
- d index 2 mul /cid2 exch def
- d 1 add index /hi exch def
- d 2 add index 2 string copy /lo exch def
- lo 1 get 1 hi 1 get {
- map cid2 lo 0 get put
- map cid2 1 add 3 -1 roll put
- /cid2 cid2 2 add def
- } for
- } for
- % Print the map.
- (%stdout) (w) file
- dup (<) print
- dup /ASCIIHexEncode filter
- dup map writestring
- closefile
- () = flush
- closefile
- end
-} def
-%/begincodespacerange
-/endcodespacerange {cleartomark} def
-%/usecmap
-
-%/beginbfchar
-/endbfchar {cleartomark} def
-%/beginbfrange
-/endbfrange {cleartomark} def
-
-%/begincidchar
-/endcidchar {
- counttomark 2 idiv { dup counttomark 1 add 3 roll } repeat pop
-} def
-%/begincidrange
-/endcidrange {
- counttomark 1 add -1 roll pop
-} def
-
-%/beginnotdefchar
-/endnotdefchar {cleartomark} def
-%/beginnotdefrange
-/endnotdefrange {cleartomark} def
-
-currentdict end readonly def
-
-/.cmap2code { % - .cmap2code -
- /CIDInit /ProcSet findresource dup length dict copy
- .cmap2codedict { 3 copy put pop pop } forall
- /CIDInit exch /ProcSet defineresource pop
-} def
-
-% Extract and print reverse mapping information from a cid2code.txt file.
-/.printhex2 { % <int16> .printhex2 -
- (<) print
- 16#10000 add 16 =string cvrs 1 4 getinterval print
- (>) print
-} def
-/.cid2code { % <cmaptemplate> <file> <column> .cid2code -
- 30 dict begin
- /column exch def
- (r) file /f exch def
- (%!) =
- (/CIDInit /ProcSet findresource begin 12 dict begin begincmap) =
- % Print the information from the template.
- {
- exch ==only ( ) print
- dup type /dicttype eq {
- dup length =only ( dict dup begin) = {
- ( ) print exch ===only ( ) print ===only ( def) =
- } forall (end def) =
- } {
- ===only
- } ifelse ( def) =
- } forall
- % Read the data from the cid2code.txt file.
- {
- f =string readline pop (CID\t) anchorsearch { pop pop exit } if pop
- } loop
- /map [ {
- f =string readline not { pop exit } if
- column { (\t) search pop pop pop } repeat
- (\t) search { exch pop exch pop } if
- (,) search { exch pop exch pop } if
- dup length 4 ne { pop (*) } if
- dup (*) eq { pop (0000) } if
- (16#) exch concatstrings cvi
- } loop ] def
- % Print the code space range(s).
- /maxcid map length 1 sub def
- mark maxcid
- dup 255 and 255 eq {
- 0 exch
- } {
- dup 16#ff00 and exch 0 2 index 1 sub
- } ifelse
- counttomark 2 idiv dup =only ( begincodespacerange) = {
- exch .printhex2 .printhex2 () =
- } repeat (endcodespacerange) =
- % Print the map data.
- 0 1 100 maxcid {
- /lo exch def
- /hi lo 99 add maxcid .min def
- 0 lo 1 hi { map exch get 0 ne { 1 add } if } for
- dup 0 eq {
- pop
- } {
- =only ( begincidchar) = lo 1 hi {
- map 1 index get dup 0 eq { pop pop } { exch .printhex2 = } ifelse
- } for (endcidchar) =
- } ifelse
- } for
- % Wrap up.
- (endcmap CMapName currentdict /CMap defineresource pop end end) =
- f closefile
- end
-} bind def
diff --git a/Master/xemtex/gslib/decrypt.ps b/Master/xemtex/gslib/decrypt.ps
deleted file mode 100644
index 51343a422e8..00000000000
--- a/Master/xemtex/gslib/decrypt.ps
+++ /dev/null
@@ -1,14 +0,0 @@
-% Decrypt an eexec-encoded file.
-% $Id: decrypt.ps,v 1.1.6.1 2002/04/10 09:22:58 giles Exp $
-
-(t.in) (r) file /in exch def
-(t.out) (w) file /out exch def
-256 string /buf exch def
-55665 % eexec encryption seed
- { in buf readhexstring /more exch def
- dup .type1decrypt out exch writestring
- more not { exit } if
- } loop
-in closefile
-out closefile
-quit
diff --git a/Master/xemtex/gslib/dnj750c.upp b/Master/xemtex/gslib/dnj750c.upp
deleted file mode 100644
index d97bb89cd82..00000000000
--- a/Master/xemtex/gslib/dnj750c.upp
+++ /dev/null
@@ -1,47 +0,0 @@
--supModel="HP Designjet 750c, 300x300DpI, Gamma=2.5, CMY"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceRGB
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Pcl
--r300x300
--dupMargins="{0.0 0.0 0.0 0.0}"
--dupRedTransfer="{1.0 0.921295345 0.846429467 0.775337517 0.707954228
-0.644212425 0.584044278 0.527380228 0.474149585 0.424279869 0.377697408
-0.334326446 0.294089675 0.256907612 0.222698912 0.191379622 0.162863538
-0.137061611 0.113881744 0.0932285339 0.0750028 0.0591011234 0.0454152822
-0.0338314585 0.0242292974 0.0164806321 0.0104477014 0.00598061318 0.00291339168
-0.00105723308 0.000186894162 0.0}"
--dupGreenTransfer="{1.0 0.921295345 0.846429467 0.775337517 0.707954228
-0.644212425 0.584044278 0.527380228 0.474149585 0.424279869 0.377697408
-0.334326446 0.294089675 0.256907612 0.222698912 0.191379622 0.162863538
-0.137061611 0.113881744 0.0932285339 0.0750028 0.0591011234 0.0454152822
-0.0338314585 0.0242292974 0.0164806321 0.0104477014 0.00598061318 0.00291339168
-0.00105723308 0.000186894162 0.0}"
--dupBlueTransfer="{1.0 0.921295345 0.846429467 0.775337517 0.707954228
-0.644212425 0.584044278 0.527380228 0.474149585 0.424279869 0.377697408
-0.334326446 0.294089675 0.256907612 0.222698912 0.191379622 0.162863538
-0.137061611 0.113881744 0.0932285339 0.0750028 0.0591011234 0.0454152822
-0.0338314585 0.0242292974 0.0164806321 0.0104477014 0.00598061318 0.00291339168
-0.00105723308 0.000186894162 0.0}"
--dupBeginPageCommand="<1b252d31323334355840504a4c204a4f42204e414d45203d20226773
-220d0a40504a4c20534554204d4952524f52203d204f4646200a40504a4c205345542050414c4554
-5445534f55524345203d20534f465457415245200a40504a4c205345542052454e4445524d4f4445
-203d20434f4c4f52200a40504a4c20534554205245534f4c5554494f4e203d2030200a40504a4c20
-534554205052494e5441524541203d2046554c4c53495a45200a40504a4c20534554205041504552
-4c454e475448203d2030200a40504a4c205345542050415045525749445448203d2030200a40504a
-4c20534554204f5249454e544154494f4e203d20504f525452414954200a40504a4c20534554204d
-415247494e53203d204e4f524d414c200a40504a4c20454e544552204c414e4755414745203d2048
-50474c32200d0a1b2531424250352c31494e5755304e50384543514c3130301b2531411b2661314e
-1b2a7631385700000308080800ff00ff00ff0000000000001b2a7632353561323535623235356330
-491b2a763061323535623235356331491b2a763235356130623235356332491b2a76306130623235
-356333491b2a763235356132353562306334491b2a76306132353562306335491b2a763235356130
-62306336491b2a7630613062306337491b2a74521b2a72531b2a72541b2a7231411b2a62324d>"
--dupAdjustPageWidthCommand
--dupAdjustPageLengthCommand
--dupAdjustResolutionCommand
--dupEndPageCommand="<1b2a72431b451b25314250473b1b252d313233343558>"
--dupAbortCommand="
-(\033*rC\033E\15\12\12\12\12 Printout-Aborted\033%1BPG;\033%-12345X)"
--dupWriteComponentCommands="{(\033*b%dV\0) (\033*b%dV\0) (\033*b%dW\0)}"
diff --git a/Master/xemtex/gslib/dnj750m.upp b/Master/xemtex/gslib/dnj750m.upp
deleted file mode 100644
index 2f55525cac7..00000000000
--- a/Master/xemtex/gslib/dnj750m.upp
+++ /dev/null
@@ -1,59 +0,0 @@
--supModel="HP Designjet 750m, 600x600DpI, Gamma=2.5, CMY"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Pcl
--r600x600
--dupMargins="{0.0 0.0 0.0 0.0}"
--dupWhiteTransfer="{
-1.0 0.921295345 0.846429467 0.775337517 0.707954228
-0.644212425 0.584044278 0.527380228 0.474149585 0.424279869
-0.377697408 0.334326446 0.294089675 0.256907612 0.222698912
-0.191379622 0.162863538 0.137061611 0.113881744 0.0932285339
-0.0750028 0.0591011234 0.0454152822 0.0338314585 0.0242292974
-0.0164806321 0.0104477014 0.00598061318 0.00291339168 0.00105723308
-0.000186894162 0.0
-}"
--dupBeginPageCommand="<
- 1b252d313233343558
- 40504a4c204a4f42204e414d45203d20226773220d0a
- 40504a4c20534554204d4952524f52203d204f4646200a
- 40504a4c205345542050414c45545445534f55524345203d20534f465457415245200a
- 40504a4c205345542052454e4445524d4f4445203d20475241595343414c45200a
- 40504a4c20534554205245534f4c5554494f4e203d2030200a
- 40504a4c20534554205052494e5441524541203d2046554c4c53495a45200a
- 40504a4c205345542050415045524c454e475448203d2030200a
- 40504a4c205345542050415045525749445448203d2030200a
- 40504a4c20534554204f5249454e544154494f4e203d20504f525452414954200a
- 40504a4c20534554204d415247494e53203d204e4f524d414c200a
- 40504a4c20454e544552204c414e4755414745203d204850474c32200d0a
- 1b253142
- 4250352c31
- 494e
- 575530
- 4e5032
- 4543
- 514c313030
- 1b253141
- 1b2661314e
- 1b2a763657
- 00
- 00
- 01
- 080808
- 1b2a76 32353561 32353562 32353563 3049
- 1b2a76 3061 3062 3063 3149
- 1b2a74 33323152
- 1b2a72 33323153
- 1b2a72 54
- 1b2a72 3141
- 1b2a62 324d
->"
--dupAdjustPageWidthCommand
--dupAdjustPageLengthCommand
--dupAdjustResolutionCommand
--dupEndPageCommand="(\033*rC\033E\033%1BPG;\033%-12345X)"
--dupAbortCommand="(\033*rC\033E\15\12\12\12\12 Printout-Aborted\033%1BPG;\033%-12345X)"
--dupWriteComponentCommands="{ (\033*b%dW\0) }"
diff --git a/Master/xemtex/gslib/docie.ps b/Master/xemtex/gslib/docie.ps
deleted file mode 100644
index 010f48d8cd6..00000000000
--- a/Master/xemtex/gslib/docie.ps
+++ /dev/null
@@ -1,219 +0,0 @@
-% Copyright (C) 1995 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: docie.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% docie.ps
-% Emulate CIE algorithms in PostScript.
-
-% ---------------- Auxiliary procedures ---------------- %
-
-/r1default [0 1] def
-/r3default [0 1 0 1 0 1] def
-
-/apply3 % <u> <v> <w> [<pu> <pv> <pw>] apply3 <u'> <v'> <w'>
- { { 4 -1 roll exch exec } forall
- } bind def
-
-/restrict % <u> <min> <max> restrict <u'>
- { 3 1 roll .max .min
- } bind def
-
-/restrict3 % <u> <v> <w> [<minu> ... <maxw>] restrict3 <u'> <v'> <w'>
- { aload pop
- 7 -1 roll 3 1 roll restrict 7 1 roll
- 5 -1 roll 3 1 roll restrict 5 1 roll
- restrict 3 1 roll
- } bind def
-
-/rescale % <u> <min> <max> rescale <u'>
- { 1 index sub 3 1 roll sub exch div 0 .max 1 .min
- } bind def
-
-/rescale3 % <u> <v> <w> [<minu> ... <maxw>] rescale3 <u'> <v'> <w'>
- { aload pop
- 7 -1 roll 3 1 roll rescale 7 1 roll
- 5 -1 roll 3 1 roll rescale 5 1 roll
- rescale 3 1 roll
- } bind def
-
-/mmult3 % <u> <v> <w> [<uu> <uv> ... <wv> <ww>] mmult3
- % <u'> <v'> <w'>
- { 4 -1 roll dup dup 6 -1 roll dup dup 8 -1 roll dup dup
- 10 -1 roll { 10 -1 roll mul } forall
- % Stack: u1 v1 w1 u2 v2 w2 u3 v3 w3
- 4 -1 roll add 6 -1 roll add
- % Stack: u1 v1 u2 v2 u3 v3 w'
- 7 1 roll 3 -1 roll add 4 -1 roll add
- % Stack: w' u1 u2 u3 v'
- 5 1 roll add add 3 1 roll
- } bind def
-
-/minvert3 % [<uu> <uv> ... <wv> <ww>] minvert3
- % [<uu'> <uv'> ... <wv'> <ww'>]
- { 16 dict begin
- aload pop { I H G F E D C B A } { exch def } forall
- /coa E I mul F H mul sub def
- /cob F G mul D I mul sub def
- /coc D H mul E G mul sub def
- /det A coa mul B cob mul add C coc mul add def
- [ coa det div
- C H mul B I mul sub det div
- B F mul C E mul sub det div
- cob det div
- A I mul C G mul sub det div
- C D mul A F mul sub det div
- coc det div
- B G mul A H mul sub det div
- A E mul B D mul sub det div
- ]
- end
- } bind def
-
-/print1
- { print dup ==
- } bind def
-
-/print3
- { print 3 array astore dup == aload pop
- } bind def
-
-% ---------------- Mapping to XYZ ---------------- %
-
-/csmap % <csdict> <l> <m> <n> csmap <csdict> <x> <y> <z>
- { 3 index /RangeLMN .knownget not { r3default } if restrict3
-DEBUG { (After RangeLMN Decode: ) print3 } if
- 3 index /DecodeLMN .knownget { apply3 } if
-DEBUG { (After DecodeLMN Decode: ) print3 } if
- 3 index /MatrixLMN .knownget { mmult3 } if
-DEBUG { (After MatrixLMN Decode: ) print3 } if
- } bind def
-
-/csciea % <csdict> <a> csciea <csdict> <x> <y> <z>
- { 1 index /RangeA .knownget not { r1default } if restrict
-DEBUG { (After RangeA Decode: ) print1 } if
- 1 index /DecodeA .knownget { exec } if
-DEBUG { (After DecodeA Decode: ) print1 } if
- 1 index /MatrixA .knownget
- { { 1 index mul exch } forall pop }
- { dup dup }
- ifelse
-DEBUG { (After MatrixA Decode: ) print3 } if
- csmap
- } bind def
-
-/cscieabc % <csdict> <a> <b> <c> cscieabc <csdict> <x> <y> <z>
- { 3 index /RangeABC .knownget not { r3default } if restrict3
-DEBUG { (After RangeABC Decode: ) print3 } if
- 3 index /DecodeABC .knownget { apply3 } if
-DEBUG { (After DecodeABC Decode: ) print3 } if
- 3 index /MatrixABC .knownget { mmult3 } if
-DEBUG { (After MatrixABC Decode: ) print3 } if
- csmap
- } bind def
-
-% ---------------- Rendering from XYZ ---------------- %
-
-/lookup3 % <rtable> <a[0..1]> <b[0..1]> <c[0..1]> lookup3
- % <rtable> <bytes>
- { 3 -1 roll 3 index 0 get 1 sub mul
- 3 -1 roll 3 index 1 get 1 sub mul
- 3 -1 roll 3 index 2 get 1 sub mul
- % Stack: rtable ia ib ic
-DEBUG { (RenderTable indices: ) print3 mark 5 1 roll } if
- 3 -1 roll round cvi 3 index 3 get exch get
- % Stack: rtable ib ic string
- 3 -1 roll round cvi 3 index 2 get mul
- % Stack: rtable ic string ib*nc
- 3 -1 roll round cvi add 2 index 4 get mul
- % Stack: rtable string index
- 2 index 4 get getinterval
- % Stack: rtable bytes
-DEBUG { (RenderTable values: ) print (<) print (%stdout) (w) file 1 index writehexstring (>) = } if
- } bind def
-
-/bpdefault [0 0 0] def
-
-/crmap % <csdict> <crdict> <x> <y> <z> crmap <v1> ...
- {
-DEBUG { (CIE XYZ = ) print3 } if
- 3 index /MatrixPQR .knownget { mmult3 } if
-DEBUG { (After MatrixPQR: ) print3 } if
- 4 index /WhitePoint get
- 5 index /BlackPoint .knownget not { bpdefault } if
- 5 index /WhitePoint get
- 6 index /BlackPoint .knownget not { bpdefault } if
- 4
- { 4 -1 roll aload pop
- % Stack: csdict crdict x y z pt pt pt px py pz
- 3 copy 12 index /MatrixPQR .knownget { mmult3 } if 6 array astore
- }
- repeat
- % Stack: csdict crdict x y z wps+ bps+ wpd+ bpd+
- 9 -1 roll pop % get rid of csdict
- 7 4 roll
- 7 index /TransformPQR get
- { % Stack: crdict wps+ bps+ wpd+ bpd+ u v w proc
- 8 copy exch pop exch pop
- exec exch pop 4 -1 roll pop
- }
- forall
- 7 3 roll pop pop pop pop % get rid of White/BlackPoints
-DEBUG { (After TransformPQR: ) print3 } if
- 3 index /MatrixPQR .knownget { minvert3 mmult3 } if
-DEBUG { (After MatrixPQR': ) print3 } if
- 3 index /MatrixLMN .knownget { mmult3 } if
-DEBUG { (After MatrixLMN Encode: ) print3 } if
- 3 index /EncodeLMN .knownget { apply3 } if
-DEBUG { (After EncodeLMN Encode: ) print3 } if
- 3 index /RangeLMN .knownget not { r3default } if restrict3
-DEBUG { (After RangeLMN Encode: ) print3 } if
- 3 index /MatrixABC .knownget { mmult3 } if
-DEBUG { (After MatrixABC Encode: ) print3 } if
- 3 index /EncodeABC .knownget { apply3 } if
-DEBUG { (After EncodeABC Encode: ) print3 } if
- 3 index /RangeABC .knownget not { r3default } if
- 5 -1 roll /RenderTable .knownget
- { % Stack: u v w ranges rtable
- 5 1 roll rescale3
-DEBUG { (Rescaled ABC: ) print3 } if
- % Stack: rtable a b c
- lookup3
- % Stack: rtable bytes
- 0 1 3 index 4 get 1 sub
- { % Stack: values rtable bytes c
- 2 copy get 255 div
- % Stack: values rtable bytes c v
- 3 index 3 -1 roll 5 add get exec 3 1 roll
- }
- for pop pop
-DEBUG { (After RenderTableT: ) print ] dup == aload pop } if
- }
- { restrict3
-DEBUG { (After RangeABC Encode: ) print3 } if
- }
- ifelse
- } bind def
-
-% ---------------- Top level control ---------------- %
-
-/mapdict mark
- /CIEBasedA { 1 get exch csciea currentcolorrendering 4 1 roll crmap } bind
- /CIEBasedABC { 1 get 4 1 roll cscieabc currentcolorrendering 4 1 roll crmap } bind
-.dicttomark def
-/mapcie % <a> mapcie <v1> ...
- % <a> <b> <c> mapcie <v1> ...
- { currentcolorspace dup 0 get //mapdict exch get exec
- } bind def
diff --git a/Master/xemtex/gslib/dvipdf b/Master/xemtex/gslib/dvipdf
deleted file mode 100644
index 6f73174abaa..00000000000
--- a/Master/xemtex/gslib/dvipdf
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-# $Id: dvipdf,v 1.2 2001/06/22 16:09:22 lpd Exp $
-# Convert DVI to PDF.
-#
-# Please contact Andrew Ford <A.Ford@ford-mason.co.uk> with any questions
-# about this file.
-#
-# Based on ps2pdf
-
-OPTIONS=""
-while true
-do
- case "$1" in
- -*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -lt 1 -o $# -gt 2 ]; then
- echo "Usage: `basename $0` [options...] input.dvi [output.pdf]" 1>&2
- exit 1
-fi
-
-infile=$1;
-
-if [ $# -eq 1 ]
-then
- case "${infile}" in
- *.dvi) base=`basename "${infile}" .dvi` ;;
- *) base=`basename "${infile}"` ;;
- esac
- outfile="${base}".pdf
-else
- outfile=$2
-fi
-
-# We have to include the options twice because -I only takes effect if it
-# appears before other options.
-exec dvips -q -f "$infile" | gs $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -
diff --git a/Master/xemtex/gslib/eps2eps b/Master/xemtex/gslib/eps2eps
deleted file mode 100644
index 14f5d679b44..00000000000
--- a/Master/xemtex/gslib/eps2eps
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-# $Id: eps2eps,v 1.3 2001/06/22 16:09:22 lpd Exp $
-# "Distill" Encapsulated PostScript.
-
-OPTIONS="-dDEVICEWIDTH=250000 -dDEVICEHEIGHT=250000"
-while true
-do
- case "$1" in
- -*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -ne 2 ]; then
- echo "Usage: `basename $0` ...switches... input.eps output.eps" 1>&2
- exit 1
-fi
-
-exec gs -q -sDEVICE=epswrite "-sOutputFile=$2" -dNOPAUSE -dBATCH -dSAFER $OPTIONS "$1"
diff --git a/Master/xemtex/gslib/eps2eps.bat b/Master/xemtex/gslib/eps2eps.bat
deleted file mode 100644
index 6be9375698c..00000000000
--- a/Master/xemtex/gslib/eps2eps.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-@echo off
-@rem $Id: eps2eps.bat,v 1.5 2001/06/22 16:09:22 lpd Exp $
-@rem "Distill" Encapsulated PostScript.
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-call gssetgs.bat
-echo -dNOPAUSE -dBATCH -dSAFER >_.at
-rem Watcom C deletes = signs, so use # instead.
-echo -dDEVICEWIDTH#250000 -dDEVICEHEIGHT#250000 >>_.at
-:cp
-if %3/==/ goto doit
-echo %1 >>_.at
-shift
-goto cp
-
-:doit
-rem Watcom C deletes = signs, so use # instead.
-%GSC% -q -sDEVICE#epswrite -sOutputFile#%2 @_.at %1
-if exist _.at erase _.at
-goto end
-
-:usage
-echo "Usage: eps2eps ...switches... input.eps output.eps"
-
-:end
diff --git a/Master/xemtex/gslib/eps2eps.cmd b/Master/xemtex/gslib/eps2eps.cmd
deleted file mode 100755
index 0fedb254beb..00000000000
--- a/Master/xemtex/gslib/eps2eps.cmd
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id: eps2eps.cmd,v 1.2 2000/12/30 18:45:37 alexcher Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* "Distill" Encapsulated PostScript. */
-
-parse arg params
-
-gs='@gsos2'
-
-if params='' then call usage
-
-options='-dNOPAUSE -dBATCH -dSAFER'
-
-/* extract options from command line */
-i=1
-param=word(params,i)
-do while substr(param,1,1)='-'
- options=options param
- i=i+1
- param=word(params,i)
-end
-
-infile=param
-if infile='' then call usage
-outfile=word(params,i+1)
-if outfile='' then call usage
-
-gs '-q -sDEVICE=epswrite -sOutputFile='outfile options infile
-exit
-
-usage:
-say 'Usage: eps2eps ...switches... input.eps output.eps'
-exit
diff --git a/Master/xemtex/gslib/errpage.ps b/Master/xemtex/gslib/errpage.ps
deleted file mode 100644
index 7619205168c..00000000000
--- a/Master/xemtex/gslib/errpage.ps
+++ /dev/null
@@ -1,363 +0,0 @@
-%!
-% Copyright (C) 1992, 1996, 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: errpage.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Print an informative error page if an error occurs.
-% Inspired by Adobe's `ehandler.ps' and David Holzgang's PinPoint.
-
-/EPdict 80 dict def
-EPdict begin
-
-/escale 12 def
-/efont /Helvetica findfont escale scalefont def
-/eheight escale 1.2 mul def
-
-% Miscellaneous utilities
-/xdef
- { exch def
- } bind def
-
-% Define `show' equivalents of = and ==
-
-/show=
- { =string { cvs } stopped { pop pop (==unprintable==) } if show
- } bind def
-
-/.dict 18 dict def
-.dict begin
- /.buf =string def
- /.cvp {.buf cvs show} bind def
- /.nop {(-) .p type .cvp (-) .p} bind def
- /.p {show} bind def
- /.p1 {( ) dup 0 4 -1 roll put show} bind def
- /.print
- {dup type .dict exch known
- {dup type exec} {.nop} ifelse
- } bind def
- /integertype /.cvp load def
- /nulltype { pop (null) .p } bind def
- /realtype /.cvp load def
- /booleantype /.cvp load def
- /nametype
- {dup xcheck not {(/) .p} if
- dup length .buf length gt
- {dup length string}
- {.buf}
- ifelse cvs .p} bind def
- /arraytype
- {dup rcheck
- {dup xcheck {(})({)} {(])([)} ifelse .p
- exch () exch
- {exch .p .print ( )} forall pop .p}
- {.nop}
- ifelse} bind def
- /operatortype
- {(--) .p .cvp (--) .p} bind def
- /packedarraytype /arraytype load def
- /stringtype
- {dup rcheck
- {(\() .p
- {/.ch exch def
- .ch 32 lt .ch 127 ge or
- {(\\) .p .ch 8#1000 add 8 .buf cvrs 1 3 getinterval .p}
- {.ch 40 eq .ch 41 eq or .ch 92 eq or
- {(\\) .p} if
- .ch .p1}
- ifelse}
- forall (\)) .p}
- {.nop}
- ifelse} bind def
-end
-/show==
- { .dict begin .print end
- } bind def
-
-% Printing utilities
-
-/eol
- { /ey ey eheight sub def
- ex ey moveto
- } bind def
-/setx
- { /ex xdef ex ey moveto
- } bind def
-/setxy
- { /ey xdef /ex xdef
- ex ey moveto
- } bind def
-/indent
- { /lx ex def
- ( ) show currentpoint setxy
- } bind def
-/unindent
- { lx setx
- } bind def
-
-% Get the name of the n'th dictionary on the (saved) dictionary stack.
-/nthdictname % n -> name true | false
- { dup dstack exch get
- exch -1 0
- { dstack exch get
- { 2 index eq { exch pop exit } { pop } ifelse
- }
- forall
- dup type /nametype eq { exit } if
- }
- for
- dup type /nametype eq { true } { pop false } ifelse
- } bind def
-
-% Find the name of a currently executing procedure.
-/findprocname % <proctail> findprocname <dstackindex> <procname> true
- % <proctail> findprocname false
- { dup length /proclength xdef
- dup type cvlit /proctype xdef
- dstack length 1 sub -1 0
- { dup dstack exch get
- { dup type proctype eq
- { dup rcheck { dup length } { -1 } ifelse proclength gt
- { dup length proclength sub proclength getinterval 3 index eq
- { 3 -1 roll pop exit }
- { pop }
- ifelse
- }
- { pop pop
- }
- ifelse
- }
- { pop pop
- }
- ifelse
- }
- forall
- dup type /nametype eq { exit } if
- pop
- }
- for
- dup type /nametype eq { true } { pop false } ifelse
- } bind def
-
-% Error printing routine.
-% The top 2 elements of the o-stack are systemdict and EPdict.
-% For the moment, we ignore the possibility of stack overflow or VMerror.
-/showerror % <command> <countexecstack> <errorname> showerror -
- {
- % Restore the error handlers.
-
- saveerrordict { errordict 3 1 roll put } forall
- $error /recordstacks false put
-
- % Save information from the stacks.
-
- /saveerror xdef
- countexecstack array execstack
- 0 3 -1 roll 1 sub getinterval
- /estack xdef
- /savecommand xdef
-
- countdictstack array dictstack
- dup length 2 sub 0 exch getinterval
- /dstack xdef
-
- % Save state variables that will be reset.
- % (We could save and print a lot more of the graphics state.)
-
- /savefont currentfont def
- mark { savefont /FontName get =string cvs cvn } stopped
- { cleartomark null }
- { exch pop dup length 0 eq { pop null } if }
- ifelse /savefontname xdef
- efont setfont
-
- { currentpoint } stopped { null null } if
- /savey xdef /savex xdef
- 0 0
- { pop pop }
- { pop pop 1 add }
- { pop pop pop pop pop pop exch 1 add exch }
- { }
- pathforall
- /savelines xdef /savecurves xdef
- /savepathbbox { [ pathbbox ] } stopped { pop null } if def
-
- initmatrix
-
- clippath pathbbox
- /savecliptop xdef /saveclipright xdef
- /saveclipbottom xdef /saveclipleft xdef
- initclip
-
- initgraphics
-
- % Eject the current page.
-
- showpage
-
- % Print the page heading.
-
- 18 clippath pathbbox newpath
- 4 1 roll pop pop pop eheight sub 12 sub setxy
- product (Product: )
- statusdict /printername known
- { 100 string statusdict begin printername end
- dup length 0 gt
- { exch pop exch pop (Printer name: ) }
- { pop }
- ifelse
- }
- if show show eol
- (Interpreter version ) show version show eol
- (Error: ) show saveerror show= eol
- (Command being executed: ) show /savecommand load show= eol
- currentfile { fileposition } stopped
- { pop }
- { (Position in input file: ) show show= eol }
- ifelse eol
-
- % Print the current graphics state.
-
- (Page parameters:) show eol indent
- (page size: ) show
- gsave clippath pathbbox grestore
- exch 3 index sub show= (pt x ) show
- exch sub show= (pt) show pop eol
- (current position: ) show
- savex null eq
- { (none) show }
- { (x = ) show savex show= (, y = ) show savey show= }
- ifelse eol
- savelines savecurves add 0 eq
- { (current path is empty) show
- }
- { (current path: ) show savelines show= ( line(s), ) show
- savecurves show= ( curve(s)) show eol
- (path bounding box: ) show savepathbbox show==
- }
- ifelse eol
- (current font: ) show
- savefontname dup null eq
- { pop (--no name--) show }
- { show= ( ) show
- gsave
- savefontname findfont /FontMatrix get matrix invertmatrix
- grestore
- savefont /FontMatrix get matrix concatmatrix
- dup 1 get 0 eq 1 index 2 get 0 eq and
- 1 index 4 get 0 eq and 1 index 5 get 0 eq and
- 1 index 0 get 2 index 3 get eq and
- { 0 get show= (pt) show }
- { (scaled by ) show show= }
- ifelse
- }
- ifelse eol
- eol unindent
-
- % Print the operand stack.
-
- /stky ey def
- (Operand stack:) show eol indent
- count { show== eol } repeat
- eol unindent
-
- % Print the dictionary stack.
-
- (Dictionary stack:) show eol indent
- dstack length 1 sub -1 0
- { nthdictname { show= } { (<unknown>) show } ifelse eol
- } for
- eol unindent
-
- % Print the execution stack.
-
- 280 stky setxy
- (Execution stack:) show eol indent
- estack length 1 sub -1 1
- { estack exch get
- dup type /operatortype eq
- { show= eol
- }
- { dup type dup /arraytype eq exch /packedarraytype eq or
- { dup xcheck
- { dup rcheck
- { findprocname
- { show= nthdictname { ( in ) show show= } if eol
- }
- if
- }
- { pop
- }
- ifelse
- }
- { pop
- }
- ifelse
- }
- { pop
- }
- ifelse
- }
- ifelse
- } for eol unindent
-
- % Print the next few lines of input.
- % Unfortunately, this crashes on an Adobe printer.
-
-(
- (Next few lines of input:) show eol indent
- /input currentfile def
- mark { 4
- { input ( ) readstring not { pop exit } if
- dup 0 get dup 10 eq
- { pop pop eol 1 sub dup 0 eq { pop exit } if }
- { dup 13 eq { pop pop } { pop show } ifelse }
- ifelse
- }
- loop } stopped cleartomark eol unindent
-) pop
-
- % Wrap up.
-
- showpage
- quit
-
- } def
-
-% Define the common procedure for handling errors.
-/doerror
- { systemdict begin EPdict begin showerror
- } bind def
-
-end
-
-% Install our own error handlers.
-
-/EPinstall
- { EPdict begin
- /saveerrordict errordict length dict def
- errordict saveerrordict copy pop
- errordict
- { pop [ /countexecstack load 2 index cvlit /doerror load /exec load ] cvx
- errordict 3 1 roll put
- } forall
- errordict /handleerror
- [ /countexecstack load /handleerror /doerror load /exec load
- ] cvx
- put
- end
- } bind def
-
-EPinstall
diff --git a/Master/xemtex/gslib/fixmswrd.pl b/Master/xemtex/gslib/fixmswrd.pl
deleted file mode 100644
index be35465790b..00000000000
--- a/Master/xemtex/gslib/fixmswrd.pl
+++ /dev/null
@@ -1,208 +0,0 @@
-#!/usr/bin/perl
-# $Id: fixmswrd.pl,v 1.1 2000/03/09 08:40:39 lpd Exp $
-
-# $Id: fixmswrd.pl,v 1.1 2000/03/09 08:40:39 lpd Exp $
-
-# (C) 1997 Anthony Shipman
-#
-# This software is provided 'as-is', without any express or implied
-# warranty. In no event will the authors be held liable for any damages
-# arising from the use of this software.
-#
-# Permission is granted to anyone to use this software for any purpose,
-# including commercial applications, and to alter it and redistribute it
-# freely, subject to the following restrictions:
-#
-# 1. The origin of this software must not be misrepresented; you must not
-# claim that you wrote the original software. If you use this software
-# in a product, an acknowledgment in the product documentation would be
-# appreciated but is not required.
-# 2. Altered source versions must be plainly marked as such, and must not be
-# misrepresented as being the original software.
-# 3. This notice may not be removed or altered from any source distribution.
-#
-# Anthony Shipman shipmana@acm.org
-
-# This program patches the postscript generated by MS Word printer drivers
-# so that they work with ghostview 1.5. The problem is that the document
-# structuring conventions are not followed by Word. The pages are supposed
-# to be independent but they depend on a dictionary being opened outside
-# of the pages. The erroneous structure is
-#
-# %%EndSetup
-# NTPSOct95 begin
-# %%Page: 1 1
-# <text>
-# showpage
-# %%Page: 2 2
-# <text>
-# showpage
-# ......
-# %%Trailer
-# ...
-# end
-# %%EOF
-#
-# This only works if the all of the structure around the pages is preserved.
-# The opening of NTPSOct95 happens outside of any structured section so
-# it is never seen by ghostview. We change the structure to
-#
-# %%EndSetup
-# %%Page: 1 1
-# NTPSOct95 begin
-# <text>
-# showpage
-# end
-# %%Page: 2 2
-# NTPSOct95 begin
-# <text>
-# showpage
-# end
-# ......
-# %%Trailer
-# ...
-# %%EOF
-#
-# That is the dictionary opening is repeated inside each page.
-#
-# We add a comment to the document to mark that it has been converted.
-# This has the form
-# %LOCALGhostviewPatched
-#
-# Usage:
-# fixmswrd [-v] [file [output-file]]
-
-require 'getopts.pl';
-
-#=================================================================
-
-$program = "fixmswrd";
-
-sub usage {
- die "Usage: $program [-v] [file [output-file]]\n";
-}
-
-#=================================================================
-
-&Getopts("v") || &usage;
-
-$verbose = $opt_v;
-
-
-$infile = shift(@ARGV);
-if ($infile)
-{
- open(INFILE, $infile) || die "$program: Cannot read from $infile\n";
- $handle = "INFILE";
-}
-else
-{
- $handle = "STDIN";
-}
-
-
-$outfile = shift(@ARGV);
-if ($outfile)
-{
- open(OUTFILE, ">$outfile") || die "$program: Cannot write to $outfile\n";
- select(OUTFILE);
-}
-
-# This reads the header comments and detects the presence of the marker.
-$have_marker = 0;
-
-undef $dict_name;
-undef $dict_line;
-
-&read_comments;
-&put_comments;
-
-if ($have_marker)
-{
- $verbose && print STDERR "$program: Warning - already converted\n";
-
- while(<$handle>) # pass the file through unchanged.
- {
- print;
- }
-}
-else
-{
- $seen_trailer = 0;
-
- while(<$handle>) # massage the file
- {
- if ($dict_line)
- {
- next if (/$dict_line/o); # drop the old begin line
- $seen_trailer = 1 if (/^%%Trailer/);
- next if ($seen_trailer and /^end/); # drop the old end line
- }
-
- print;
-
- if (/^%%Page:/)
- {
- print "$dict_name begin\n"; # add at the start of the page
- }
- elsif (/^showpage/)
- {
- print "end\n"; # add at the end of the page
- }
- elsif (/^%%BeginResource: procset (\S+)/)
- {
- $dict_name = $1;
- $dict_line = "^$dict_name begin";
- }
- elsif (/^%%BeginProcSet: (\S+)/) # for older document versions
- {
- $dict_name = $1;
- $dict_line = "^$dict_name begin";
- }
- elsif (/^%%EndProlog:/)
- {
- unless ($dict_line)
- {
- $verbose &&
- print STDERR "$program: Warning - unrecognised document structure\n";
- }
- }
- }
-}
-
-exit 0;
-
-#=================================================================
-
-
-# This reads all of the header comments into an array which we can write
-# out again later. In addition we detect the presence of the marker comment.
-
-sub read_comments
-{
- @headers = ();
-
- while (<$handle>)
- { # without chopping
- push(@headers, $_);
- if (/^%LOCALGhostviewPatched/)
- {
- $have_marker = 1;
- }
- last if /^%%EndComments/;
- }
-}
-
-
-
-sub put_comments
-{
- foreach $h (@headers)
- {
- if (!$have_marker and ($h =~ /^%%EndComments/))
- {
- print "%LOCALGhostviewPatched\n";
- }
- print $h; # contains the newline
- }
-}
diff --git a/Master/xemtex/gslib/font2c b/Master/xemtex/gslib/font2c
deleted file mode 100644
index 5404ba5bb1d..00000000000
--- a/Master/xemtex/gslib/font2c
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: font2c,v 1.1 2000/03/09 08:40:39 lpd Exp $
-exec gs -q -dNODISPLAY -dWRITESYSTEMDICT -- font2c.ps "$@"
diff --git a/Master/xemtex/gslib/font2c.bat b/Master/xemtex/gslib/font2c.bat
deleted file mode 100644
index f3fd69a7d8c..00000000000
--- a/Master/xemtex/gslib/font2c.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: font2c.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- font2c.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/font2c.cmd b/Master/xemtex/gslib/font2c.cmd
deleted file mode 100755
index a1b7894eff7..00000000000
--- a/Master/xemtex/gslib/font2c.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-/* $Id: font2c.cmd,v 1.1 2000/07/05 16:21:13 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-@gsos2 -q -dNODISPLAY -dWRITESYSTEMDICT -- font2c.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/font2c.ps b/Master/xemtex/gslib/font2c.ps
deleted file mode 100644
index fecd5713e29..00000000000
--- a/Master/xemtex/gslib/font2c.ps
+++ /dev/null
@@ -1,676 +0,0 @@
-% Copyright (C) 1992, 1993, 1994, 1995, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: font2c.ps,v 1.3.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% font2c.ps
-% Write out a PostScript Type 0 or Type 1 font as C code
-% that can be linked with the interpreter.
-% This even works on protected fonts, if you use the -dWRITESYSTEMDICT
-% switch in the command line. The code is reentrant and location-
-% independent and has no external references, so it can be put into
-% a sharable library even on VMS.
-
-/font2cdict 100 dict dup begin
-
-% Define the maximum string length that all compilers will accept.
-% This must be approximately
-% min(max line length, max string literal length) / 4 - 5.
-
-/max_wcs 50 def
-
-% Define a temporary file for writing out procedures.
-/wtempname (_.tmp) def
-
-% ------ Protection utilities ------ %
-
-% Protection values are represented by a mask:
-/a_noaccess 0 def
-/a_executeonly 1 def
-/a_readonly 3 def
-/a_all 7 def
-/prot_names
- [ (0) (a_execute) null (a_readonly) null null null (a_all)
- ] def
-/prot_opers
- [ {noaccess} {executeonly} {} {readonly} {} {} {} {}
- ] def
-
-% Get the protection of an object.
- /getpa
- { dup wcheck
- { pop a_all }
- { % Check for executeonly or noaccess objects in protected.
- dup protected exch known
- { protected exch get }
- { pop a_readonly }
- ifelse
- }
- ifelse
- } bind def
-
-% Get the protection appropriate for (all the) values in a dictionary.
- /getva
- { a_noaccess exch
- { exch pop
- dup type dup /stringtype eq 1 index /arraytype eq or
- exch /packedarraytype eq or
- { getpa a_readonly and or }
- { pop pop a_all exit }
- ifelse
- }
- forall
- } bind def
-
-% Keep track of executeonly and noaccess objects,
-% but don't let the protection actually take effect.
-.currentglobal
-false .setglobal % so protected can reference local objs
-/protected % do first so // will work
- systemdict wcheck { 1500 dict } { 1 dict } ifelse
-def
-systemdict wcheck not
- { (Warning: you will not be able to convert protected fonts.\n) print
- (If you need to convert a protected font, please\n) print
- (restart the program and specify the -dWRITESYSTEMDICT switch.\n) print
- flush
- (%end) .skipeof
- }
-if
-userdict begin
- /executeonly
- { dup //protected exch //a_executeonly put readonly
- } bind def
- /noaccess
- { dup //protected exch //a_noaccess put readonly
- } bind def
-end
-true .setglobal
-systemdict begin
- /executeonly
- { userdict /executeonly get exec
- } bind odef
- /noaccess
- { userdict /noaccess get exec
- } bind odef
-end
-%end
-.setglobal
-
-% ------ Output utilities ------ %
-
-% By convention, the output file is named cfile.
-
-% Define some utilities for writing the output file.
- /wtstring 100 string def
- /wb {cfile exch write} bind def
- /ws {cfile exch writestring} bind def
- /wl {ws (\n) ws} bind def
- /wt {wtstring cvs ws} bind def
-
-% Write a C string. Some compilers have unreasonably small limits on
-% the length of a string literal or the length of a line, so every place
-% that uses wcs must either know that the string is short,
-% or be prepared to use wcca instead.
- /wbx
- { 8#1000 add 8 (0000) cvrs dup 0 (\\) 0 get put ws
- } bind def
- /wcst
- [
- 32 { /wbx load } repeat
- 95 { /wb load } repeat
- 129 { /wbx load } repeat
- ] def
- ("\\) { wcst exch { (\\) ws wb } put } forall
- /wcs
- { (") ws { dup wcst exch get exec } forall (") ws
- } bind def
- /can_wcs % Test if can use wcs
- { length max_wcs le
- } bind def
- /wncs % name -> C string
- { wtstring cvs wcs
- } bind def
-% Write a C string as an array of character values.
-% We only need this because of line and literal length limitations.
- /wca % <string> <prefix> <suffix> wca -
- { 0 4 -2 roll exch
- { % Stack: suffix n prefix char
- exch ws
- exch dup 19 ge { () wl pop 0 } if 1 add
- exch dup 32 ge 1 index 126 le and
- { 39 wb dup 39 eq 1 index 92 eq or { 92 wb } if wb 39 wb }
- { wt }
- ifelse (,)
- } forall
- pop pop ws
- } bind def
- /wcca % <string> wcca -
- { ({\n) (}) wca
- } bind def
-
-% Write object protection attributes. Note that dictionaries and arrays are
-% the only objects that can be writable.
- /wpa
- { dup xcheck { (a_executable|) ws } if
- dup type dup /dicttype eq exch /arraytype eq or
- { getpa }
- { getpa a_readonly and }
- ifelse prot_names exch get ws
- } bind def
- /wva
- { getva prot_names exch get ws
- } bind def
-
-% ------ Object writing ------ %
-
- /wnstring 128 string def
-
-% Convert an object to a string to be scanned at a later time.
- /cvos % <obj> cvos <string>
- { % We'd like to use == and write directly to a string,
- % but we can't do the former because of operators,
- % and we can't do the latter because we can't predict
- % how long the string would have to be....
- wtempname (w) file dup 3 -1 roll wproc closefile
- wtempname status pop pop pop exch pop string
- wtempname (r) file dup 3 -1 roll readstring pop exch closefile
- } bind def
-
-% Write a string/name or null as an element of a string/name/null array.
-% Convert any other kind of value to a token to be read back in.
- /wsn
- { dup null eq
- { pop (\t255,255,) wl
- }
- { dup type /nametype eq { wnstring cvs } if
- dup type /stringtype ne { cvos (255,) ws } if
- dup length 256 idiv wt (,) ws
- dup length 256 mod wt
- (,) (,\n) wca
- }
- ifelse
- } bind def
-% Write a packed string/name/null array.
- /wsna % <name> <(string|name|null)*> wsna -
- { (\tstatic const char ) ws exch wt ([] = {) wl
- { wsn } forall
- (\t0\n};) wl
- } bind def
-
-% Write a number or an array of numbers, as refs.
-/isnumber
- { type dup /integertype eq exch /realtype eq or
- } bind def
-/wnums
- { dup isnumber
- { (real_v\() ws wt (\),) ws }
- { { wnums } forall }
- ifelse
- } bind def
-
-% Test whether a procedure or unusual array can be written (printed).
-/iswx 4 dict dup begin
- /arraytype { { iswproc } isall } def
- /nametype { pop true } def
- /operatortype { pop true } def % assume it has been bound in
- /packedarraytype /arraytype load def
-end def
-/iswnx 6 dict dup begin
- /arraytype { { iswproc } isall } def
- /integertype { pop true } def
- /nametype { pop true } def
- /realtype { pop true } def
- /stringtype { pop true } def
- /packedarraytype /arraytype load def
-end def
-/iswproc % <obj> iswproc <bool>
- { dup xcheck { iswx } { iswnx } ifelse
- 1 index type .knownget { exec } { pop false } ifelse
- } bind def
-
-% Write a printable procedure (one for which iswproc returns true).
-/wproca 3 dict dup begin
- /arraytype
- { 1 index ({) writestring
- { 1 index ( ) writestring 1 index exch wproc } forall
- (}) writestring
- } bind def
- /packedarraytype /arraytype load def
- /operatortype { .writecvs } bind def % assume binding would work
-end def
-/wproc % <file> <proc> wproc -
- { dup type wproca exch .knownget { exec } { write==only } ifelse
- } bind def
-
-% Write a named object. Return true if this was possible.
-% Legal types are: boolean, integer, name, real, string,
-% array of (integer, integer+real, name, null+string),
-% and certain procedures and other arrays (see iswproc above).
-% All other objects are either handled specially or ignored.
- /isall % <array> <proc> isall <bool>
- { true 3 -1 roll
- { 2 index exec not { pop false exit } if }
- forall exch pop
- } bind def
- /wott 8 dict dup begin
- /arraytype
- { woatt
- { aload pop 2 index 2 index exec
- { exch pop exec exit }
- { pop pop }
- ifelse
- }
- forall
- } bind def
- /booleantype
- { { (\tmake_true\(&) } { (\tmake_false\(&) } ifelse ws
- wt (\);) wl true
- } bind def
- /integertype
- { (\tmake_int\(&) ws exch wt (, ) ws
- wt (\);) wl true
- } bind def
- /nametype
- { (\tcode = (*pprocs->name_create)\(i_ctx_p, &) ws exch wt
- (, ) ws wnstring cvs wcs % OK, names are short
- (\);) wl
- (\tif ( code < 0 ) return code;) wl
- true
- } bind def
- /packedarraytype
- /arraytype load def
- /realtype
- { (\tmake_real\(&) ws exch wt (, ) ws
- wt (\);) wl true
- } bind def
- /stringtype
- { ({\tstatic const char s_[] = ) ws
- dup dup can_wcs { wcs } { wcca } ifelse
- (;) wl
- (\tmake_const_string\(&) ws exch wt
- (, a_readonly, ) ws length wt (, (const byte *)s_\);) wl
- (}) wl true
- } bind def
- end def
-% Write some other kind of object, if known.
- /wother
- { dup otherobjs exch known
- { otherobjs exch get (\t) ws exch wt ( = ) ws wt (;) wl true }
- { pop pop false }
- ifelse
- } bind def
-% Top-level procedure.
- /wo % name obj -> OK
- { dup type wott exch .knownget { exec } { wother } ifelse
- } bind def
-
-% Write an array (called by wo).
- /wap % <name> <array> wap -
- { dup xcheck not 1 index wcheck not and 1 index rcheck and
- { pop pop }
- { (\tr_set_attrs\(&) ws exch wt (, ) ws wpa (\);) wl }
- ifelse
- } bind def
- /wnuma { % <name> <array> <element_C_type> <<type>_v> wnuma -
- ({\tstatic const ref_\() ws exch ws (\) a_[] = {) wl exch
- % Stack: name type_v array
- dup length 0 eq {
- (\t) ws 1 index ws (\(0\)) wl
- } {
- dup {
- (\t) ws 2 index ws (\() ws wt (\),) wl
- } forall
- } ifelse exch pop
- % Stack: name array
- (\t};) wl
- dup wcheck {
- (\tcode = (*pprocs->scalar_array_create)\(i_ctx_p, &) ws exch wt
- (, (const ref *)a_, ) ws dup length wt
- (, ) ws wpa (\);) wl
- (\tif ( code < 0 ) return code;) wl
- } {
- (\tmake_const_array\(&) ws exch wt
- (, avm_foreign|) ws dup wpa (, ) ws length wt
- (, (const ref *)a_\);) wl
- } ifelse
- (}) wl
- } bind def
- /woatt [
- % Integers
- { { { type /integertype eq } isall }
- { (long) (integer_v) wnuma true }
- }
- % Integers + reals
- { { { type dup /integertype eq exch /realtype eq or } isall }
- { (float) (real_v) wnuma true }
- }
- % Strings + nulls
- { { { type dup /nulltype eq exch /stringtype eq or } isall }
- { ({) ws dup (sa_) exch wsna
- (\tcode = (*pprocs->string_array_create)\(i_ctx_p, &) ws exch wt
- (, sa_, ) ws dup length wt (, ) ws wpa (\);) wl
- (\tif ( code < 0 ) return code;) wl
- (}) wl true
- }
- }
- % Names
- { { { type /nametype eq } isall }
- { ({) ws dup (na_) exch wsna
- (\tcode = (*pprocs->name_array_create)\(i_ctx_p, &) ws 1 index wt
- (, na_, ) ws dup length wt (\);) wl
- (\tif ( code < 0 ) return code;) wl
- wap (}) wl true
- }
- }
- % Procedure
- { { iswproc }
- { dup cvos
- % Stack: name proc string
- ({\tstatic const char s_[] = ) ws
- dup dup can_wcs { wcs } { wcca } ifelse
- (;) wl
- (\tcode = (*pprocs->ref_from_string)\(i_ctx_p, &) ws 2 index wt
- (, s_, ) ws length wt (\);) wl
- (\tif ( code < 0 ) return code;) wl
- wap (}) wl true
- wtempname deletefile
- }
- }
- % Default
- { { pop true }
- { wother }
- }
- ] def
-
-% Write a named dictionary. We assume the ref is already declared.
- /wd % <name> <dict> <extra> wd -
- { 3 1 roll
- ({) ws
- (\tref v_[) ws dup length wt (];) wl
- dup [ exch
- { counttomark 2 sub wtstring cvs
- (v_[) exch concatstrings (]) concatstrings exch wo not
- { (Skipping ) print ==only (....\n) print }
- if
- } forall
- ]
- % Stack: array of keys (names)
- ({) ws dup (str_keys_) exch wsna
- (\tstatic const cfont_dict_keys keys_ =) wl
- (\t { 0, 0, ) ws length wt (, ) ws 3 -1 roll wt (, ) ws
- dup wpa (, ) ws dup wva ( };) wl pop
- (\tcode = \(*pprocs->ref_dict_create\)\(i_ctx_p, &) ws wt
- (, &keys_, str_keys_, v_\);) wl
- (\tif ( code < 0 ) return code;) wl
- (}) wl
- (}) wl
- } bind def
-
-% Write character dictionary keys.
-% We save a lot of space by abbreviating keys which appear in
-% StandardEncoding or ISOLatin1Encoding.
-% Writes code to declare and initialize enc_keys_, str_keys, and keys_.
-/wcdkeys % <dict> wcdkeys -
- { % Write keys present in StandardEncoding or ISOLatin1Encoding,
- % pushing other keys on the o-stack.
- (static const charindex enc_keys_[] = {) wl
- dup [ exch 0 exch
- { pop decoding 1 index known
- { decoding exch get ({) ws dup -8 bitshift wt
- (,) ws 255 and wt (}, ) ws
- 1 add dup 5 mod 0 eq { (\n) ws } if
- }
- { exch }
- ifelse
- }
- forall pop
- ]
- ({0,0}\n};) wl
- % Write other keys.
- (str_keys_) exch wsna
- % Write the declaration for keys_.
- (static const cfont_dict_keys keys_ = {) wl
- (\tenc_keys_, countof\(enc_keys_\) - 1,) wl
- (\t) ws dup length wt ( - \(countof\(enc_keys_\) - 1\), 0, ) ws
- dup wpa (, ) ws wva () wl
- (};) wl
- } bind def
-
-% Enumerate character dictionary values in the same order that
-% the keys appear in enc_keys_ and str_keys_.
-% <proc> is called with each value in turn.
-/cdforall % <dict> <proc> cdforall -
- { 2 copy
- { decoding 3 index known
- { 3 -1 roll pop exec }
- { pop pop pop }
- ifelse
- }
- /exec cvx 3 packedarray cvx
- /forall cvx
- 5 -2 roll
- { decoding 3 index known
- { pop pop pop }
- { 3 -1 roll pop exec }
- ifelse
- }
- /exec cvx 3 packedarray cvx
- /forall cvx
- 6 packedarray cvx exec
- } bind def
-
-% ------ Writers for special objects ------ %
-
-/writespecial 10 dict dup begin
-
- /FontInfo { 0 wd } def
-
- /Private { 0 wd } def
-
- /CharStrings
- { ({) wl
- dup wcdkeys
- (static const char values_[] = {) wl
- { wsn } cdforall
- (\t0\n};) wl
- (\tcode = \(*pprocs->string_dict_create\)\(i_ctx_p, &) ws wt
- (, &keys_, str_keys_, values_\);) wl
- (\tif ( code < 0 ) return code;) wl
- (}) wl
- } bind def
-
- /Metrics
- { ({) wl
- dup wcdkeys
- (static const ref_(float) values_[] = {) wl
- dup { (\t) ws wnums () wl } cdforall
- (\t0\n};) wl
- (static const char lengths_[] = {) wl
- { (\t) ws dup isnumber
- { pop 0 }
- { length 1 add }
- ifelse wt (,) wl
- } cdforall
- (\t0\n};) wl
- (\tcode = \(*pprocs->num_dict_create\)\(i_ctx_p, &) ws wt
- (, &keys_, str_keys_, (const ref *)values_, lengths_\);) wl
- (\tif ( code < 0 ) return code;) wl
- (}) wl
- } bind def
-
- /Metrics2 /Metrics load def
-
- /FDepVector pop % (converted to a list of font names)
-
-end def
-
-% ------ The main program ------ %
-
-% Construct an inverse dictionary of encodings.
-[ /StandardEncoding /ISOLatin1Encoding
- /SymbolEncoding /DingbatsEncoding
- /KanjiSubEncoding
-]
-dup length dict begin
- { mark exch dup { .findencoding exch def } stopped cleartomark
- } forall
-currentdict end /encodingnames exch def
-
-% Invert the StandardEncoding and ISOLatin1Encoding vectors.
-512 dict begin
- 0 1 255 { dup ISOLatin1Encoding exch get exch 256 add def } for
- 0 1 255 { dup StandardEncoding exch get exch def } for
-currentdict end /decoding exch def
-
-/writefont % cfilename procname -> [writes the current font]
- { (gsf_) exch concatstrings
- /fontprocname exch def
- /cfname exch def
- /cfile cfname (w) file def
-
-% Remove unwanted keys from the font.
- currentfont dup length dict begin { def } forall
- { /FID /MIDVector /CurMID } { currentdict exch undef } forall
- /Font currentdict end def
-
-% Replace the FDepVector with a list of font names.
- Font /FDepVector .knownget
- { [ exch { /FontName get } forall ]
- Font /FDepVector 3 -1 roll put
- }
- if
-
-% Find all the special objects we know about.
-% wo uses this to write out references to otherwise intractable objects.
- /otherobjs writespecial length dict dup begin
- writespecial
- { pop Font 1 index .knownget { exch def } { pop } ifelse
- }
- forall
- end def
-
-% Define a dummy FontInfo, in case the font doesn't have one.
- /FontInfo 0 dict def
-
-% Write out the boilerplate.
- Font begin
- (/****************************************************************) wl
- ( Portions of this file are subject to the following notice(s):) wl
- systemdict /copyright get wl
- FontInfo /Notice .knownget
- { (----------------------------------------------------------------) wl wl
- } if
- (****************************************************************/) wl
- () wl
- (/* ) ws cfname ws ( */) wl
- (/* This file was created by the ) ws product ws ( font2c utility. */) wl
- () wl
- (#undef DEBUG) wl
- (#include "ccfont.h") wl
- () wl
-
-% Write the procedure prologue.
- (#ifdef __PROTOTYPES__) wl
- (ccfont_proc\() ws fontprocname ws (\);) wl
- (int) wl
- fontprocname ws ((i_ctx_t *i_ctx_p, const cfont_procs *pprocs, ref *pfont)) wl
- (#else) wl
- (int) wl
- fontprocname ws ((i_ctx_p, pprocs, pfont) i_ctx_t *i_ctx_p; const cfont_procs *pprocs; ref *pfont;) wl
- (#endif) wl
- ({\tint code;) wl
- (\tref Font;) wl
- otherobjs
- { exch pop (\tref ) ws wt (;) wl }
- forall
-
-% Write out the special objects.
- otherobjs
- { exch writespecial 2 index get exec
- }
- forall
-
-% Write out the main font dictionary.
-% If possible, substitute the encoding name for the encoding;
-% PostScript code will fix this up.
- { /Encoding /PrefEnc }
- { Font 1 index .knownget
- { encodingnames exch .knownget { def } { pop } ifelse }
- { pop }
- ifelse
- }
- forall
- (Font) Font FontType 0 eq { 5 } { 1 } ifelse wd
-
-% Finish the procedural initialization code.
- (\t*pfont = Font;) wl
- (\treturn 0;) wl
- (}) wl
- end % Font
-
- cfile closefile
-
- } bind def
-
-end def % font2cdict
-
-% Compute the procedure name from the font name.
-% Replace all non-alphanumeric characters with '_'.
-/makefontprocnamemap 256 string
- 0 1 255 { 2 copy 95 put pop } for
- (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)
- { 2 copy dup put pop } forall
-readonly def
-/makefontprocname % <fontname> makefontprocname <procnamestring>
- { dup length string cvs
- dup length 1 sub -1 0
- { % Stack: string index
- 2 copy 2 copy get //makefontprocnamemap exch get put pop
- }
- for
- } def
-
-/writefont { font2cdict begin writefont end } def
-
-% If the program was invoked from the command line, run it now.
-[ shellarguments
- { counttomark dup 2 eq exch 3 eq or
- { counttomark -1 roll cvn
- (Converting ) print dup =only ( font.\n) print flush
- % Ensure that we get a clean copy of the font from the
- % file system.
- 2 { % do both local and global
- currentglobal not setglobal
- dup undefinefont
- } repeat
- findfont setfont
- (FontName is ) print currentfont /FontName get ==only (.\n) print flush
- counttomark 1 eq
- { % Construct the procedure name from the file name.
- currentfont /FontName get makefontprocname
- }
- if
- writefont
- (Done.\n) print flush
- }
- { cleartomark
- (Usage: font2c fontname cfilename.c [shortname]\n) print
- ( e.g.: font2c Courier cour.c\n) print flush
- mark
- }
- ifelse
- }
-if pop
diff --git a/Master/xemtex/gslib/font2pcl.ps b/Master/xemtex/gslib/font2pcl.ps
deleted file mode 100644
index 1c777b1bdac..00000000000
--- a/Master/xemtex/gslib/font2pcl.ps
+++ /dev/null
@@ -1,604 +0,0 @@
-% Copyright (C) 1993, 1994, 1995, 1997 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: font2pcl.ps,v 1.2.6.2.2.1 2003/04/12 14:02:38 giles Exp $
-% font2pcl.ps
-% Write out a font as a PCL bitmap font.
-
-/pcldict 60 dict def
-
-% Write out the current font as a PCL bitmap font.
-% The current transformation matrix defines the font size and orientation.
-
-/WriteResolution? false def % true=use "resolution bound font" format,
- % false=use older format
-
-/LJ4 false def % true=use LJ4 Typeface code
- % false=use LJIIP/IID/IIIx Typeface code
-
-pcldict begin % internal procedures
-
-/findstring % <string> <substring> findstring <bool>
- { search { pop pop pop true } { pop false } ifelse
- } def
-
- % Determine which set of keywords is present in a string.
- % The last keyword set must be empty.
-
-/keysearch % <string> <array of arrays of keywords> keysearch <index>
- { 0 1 2 index length 1 sub
- { 2 copy get true exch
- { % Stack: <string> <a.a.k.> <index> <bool> <keyword>
- 4 index exch findstring and
- }
- forall
- { 0 exch getinterval exit
- }
- if pop
- }
- for
- exch pop length % invalid index if missing
- } def
-
- % Determine the device height of a string in quarter-dots.
-
-/charheight % <string> charheight <int>
- { gsave newpath 0 0 moveto false charpath
- pathbbox exch pop exch sub exch pop 0 exch grestore
- dtransform add abs 4 mul cvi
- } def
-
- % Compute an integer version of the transformed FontBBox.
-
-/inflate % <num> inflate <num>
- { dup 0 gt { ceiling } { floor } ifelse
- } def
-/ixbbox % - ixbbox <llx> <lly> <urx> <ury>
- { /FontBBox load aload pop % might be executable or literal
- 4 2 roll transform exch truncate cvi exch truncate cvi
- 4 2 roll transform exch inflate cvi exch inflate cvi
- } def
-
- % Determine the original font of a possibly transformed font.
- % Since some badly behaved PostScript files construct transformed
- % fonts "by hand", we can't just rely on the OrigFont pointers.
- % Instead, if a font with the given name exists, and if its
- % entries for FontType and UniqueID match those of the font we
- % obtain by following the OrigFont chain, we use that font.
-
-/origfont
- { { dup /OrigFont known not { exit } if /OrigFont get } loop
- FontDirectory 1 index /FontName get .knownget
- { % Stack: origfont namedfont
- 1 index /FontType get 1 index /FontType get eq
- { 1 index /UniqueID .knownget
- { 1 index /UniqueID .knownget
- { eq { exch } if }
- { pop }
- ifelse
- }
- if
- }
- if pop
- }
- if
- } def
-
-
- % Determine the bounding box of the current device's image.
- % Free variables: row, zerow.
-
-/devbbox % <rw> <rh> devbbox <ymin> <ymax1> <xmin> <xmax1>
- { % Find top and bottom whitespace.
- dup
- { dup 0 eq { exit } if 1 sub
- dup currentdevice exch row copyscanlines
- zerow ne { 1 add exit } if
- }
- loop % ymax1
- 0
- { 2 copy eq { exit } if
- dup currentdevice exch row copyscanlines
- zerow ne { exit } if
- 1 add
- }
- loop % ymin
- exch
- % Find left and right whitespace.
- 3 index 0
- % Stack: rw rh ymin ymax1 xmin xmax1
- 3 index 1 4 index 1 sub
- { currentdevice exch row copyscanlines .findzeros
- exch 4 1 roll .max 3 1 roll .min exch
- }
- for % xmin xmax1
- % Special check: xmin > xmax1 if height = 0
- 2 copy gt { exch pop dup } if
- 6 -2 roll pop pop
-
- } def
-
- % Write values on outfile.
-
- /w1 { 255 and outfile exch write } def
- /w2 { dup -8 bitshift w1 w1 } def
- /wbyte % <byte> <label> wbyte
- { VDEBUG { print ( =byte= ) print dup == flush } { pop } ifelse w1
- } def
- /wword % <word16> <label> wword
- { VDEBUG { print ( =word= ) print dup == flush } { pop } ifelse w2
- } def
- /wdword % <word32> <label> wdword
- { VDEBUG { print ( =dword= ) print dup == flush } { pop } ifelse
- dup -16 bitshift w2 w2
- } def
-
-/style.posture.keys
- [ { (Italic) } { (Oblique) }
- { }
- ] def
-/style.posture.values <010100> def
-
-/style.appearance.width.keys
- [ { (Ultra) (Compressed) }
- { (Extra) (Compressed) }
- { (Extra) (Condensed) }
- { (Extra) (Extended) }
- { (Extra) (Expanded) }
- { (Compressed) }
- { (Condensed) }
- { (Extended) }
- { (Expanded) }
- { }
- ] def
-/style.appearance.width.values <04030207070201060600> def
-
-/width.type.keys
- [ { (Ultra) (Compressed) }
- { (Extra) (Compressed) }
- { (Extra) (Condensed) }
- { (Extra) (Expanded) }
- { (Compressed) }
- { (Condensed) }
- { (Expanded) }
- { }
- ] def
-/width.type.values <fbfcfd03fdfe0200> def
-
-/stroke.weight.keys
- [ { (Ultra) (Thin) }
- { (Ultra) (Black) }
- { (Extra) (Thin) }
- { (Extra) (Light) }
- { (Extra) (Bold) }
- { (Extra) (Black) }
- { (Demi) (Light) }
- { (Demi) (Bold) }
- { (Semi) (Light) }
- { (Semi) (Bold) }
- { (Thin) }
- { (Light) }
- { (Bold) }
- { (Black) }
- { }
- ] def
-/stroke.weight.values <f907fafc0406fe02ff01fbfd030500> def
-
-/vendor.keys
- [ { (Agfa) }
- { (Bitstream) }
- { (Linotype) }
- { (Monotype) }
- { (Adobe) }
- { }
- ] def
-/vendor.default.index 4 def % might as well be Adobe
-/old.vendor.values <020406080a00> def
-/new.vendor.values <010203040500> def
-/vendor.initials (CBLMA\000) def
-
-currentdict readonly end pop % pcldict
-
-
-% Convert and write a PCL font for the current font and transformation.
-
-% Write the font header. We split this off only to avoid overflowing
-% the limit on the maximum size of a procedure.
-% Free variables: outfile uury u0y rw rh orientation uh ully
-/writefontheader
- { outfile (\033\)s) writestring
- outfile 64 WriteResolution? { 4 add } if
- Copyright length add write==only
- outfile (W) writestring
- WriteResolution? { 20 68 } { 0 64 } ifelse
- (Font Descriptor Size) wword
- (Header Format) wbyte
- 1 (Font Type) wbyte
- FullName style.posture.keys keysearch style.posture.values exch get
- FullName style.appearance.width.keys keysearch
- style.appearance.width.values exch get 4 mul add
- PaintType 2 eq { 32 add } if
- /style exch def
- style -8 bitshift (Style MSB) wbyte
- 0 (Reserved) wbyte
- /baseline uury 1 sub u0y sub def
- baseline (Baseline Position) wword
- rw (Cell Width) wword
- rh (Cell Height) wword
- orientation (Orientation) wbyte
- FontInfo /isFixedPitch .knownget not { false } if
- { 0 } { 1 } ifelse (Spacing) wbyte
- % Use loop/exit to fake a multiple-exit block.
- { Encoding StandardEncoding eq { 10 (J) exit } if
- Encoding ISOLatin1Encoding eq { 11 (J) exit } if
- Encoding SymbolEncoding eq { 19 (M) exit } if
- Encoding DingbatsEncoding eq { 10 (L) exit } if
-% (Warning: unknown Encoding, using ISOLatin1.\n) print flush
- 11 (J) exit
- }
- loop
- 0 get 64 sub exch 32 mul add (Symbol Set) wword
- ( ) stringwidth pop 0 dtransform add abs 4 mul
- /pitch exch def
- pitch cvi (Pitch) wword
- uh 4 mul (Height) wword % Height
- (x) charheight (x-Height) wword
- FullName width.type.keys keysearch
- width.type.values exch get (Width Type) wbyte
- style 255 and (Style LSB) wbyte
- FullName stroke.weight.keys keysearch
- stroke.weight.values exch get (Stroke Weight) wbyte
- FullName vendor.keys keysearch
- dup vendor.initials exch get 0 eq
- { % No vendor in FullName, try Notice
- pop Copyright vendor.keys keysearch
- dup vendor.initials exch get 0 eq { pop vendor.default.index } if
- }
- if
- /vendor.index exch def
- 0 (Typeface LSB) wbyte % punt
- 0 (Typeface MSB) wbyte % punt
- 0 (Serif Style) wbyte % punt
- 2 (Quality) wbyte
- 0 (Placement) wbyte
- gsave FontMatrix concat rot neg rotate
- /ulwidth
- FontInfo /UnderlineThickness .knownget
- { 0 exch dtransform exch pop abs }
- { resolution 100 div }
- ifelse def
- FontInfo /UnderlinePosition .knownget
- { 0 exch transform exch pop negY ulwidth 2 div add }
- { ully ulwidth add }
- ifelse u0y sub
- round cvi 1 .max 255 .min (Underline Position) wbyte
- ulwidth round cvi 1 .max 255 .min (Underline Thickness) wbyte
- grestore
- uh 1.2 mul 4 mul cvi (Text Height) wword
- (average lowercase character) dup stringwidth
- pop 0 dtransform add abs
- exch length div 4 mul cvi (Text Width) wword
- 0
- { dup Encoding exch get /.notdef ne { exit } if
- 1 add
- }
- loop (First Code) wword
- 255
- { dup Encoding exch get /.notdef ne { exit } if
- 1 sub
- }
- loop (Last Code) wword
- pitch dup cvi sub 256 mul cvi (Pitch Extended) wbyte
- 0 (Height Extended) wbyte
- 0 (Cap Height) wword % (default)
- currentfont /UniqueID known { UniqueID } { 0 } ifelse
- 16#c1000000 add (Font Number (Adobe UniqueID)) wdword
- FontName length 16 .max string
- dup FontName exch cvs pop
- outfile exch 0 16 getinterval writestring % Font Name
- WriteResolution?
- { resolution dup (X Resolution) wword (Y Resolution) wword
- }
- if
- outfile Copyright writestring % Copyright
- } def
-
-/writePCL % <fontfile> <resolution> writePCL -
- {
- save
- currentfont begin
- pcldict begin
- 80 dict begin % allow for recursion
- /saved exch def
- /resolution exch def
- /outfile exch def
- matrix currentmatrix dup 4 0 put dup 5 0 put setmatrix
-
- % Supply some default values so we don't have to check later.
-
- currentfont /FontInfo known not { /FontInfo 1 dict def } if
- currentfont /FontName known not { /FontName () def } if
- /Copyright FontInfo /Notice .knownget not { () } if def
- /FullName
- FontInfo /FullName .knownget not
- { FontName dup length string cvs }
- if def
-
- % Determine the original font, and its relationship to this one.
-
- /OrigFont currentfont origfont def
- /OrigMatrix OrigFont /FontMatrix get def
- /OrigMatrixInverse OrigMatrix matrix invertmatrix def
- /ScaleMatrix matrix currentfont OrigFont ne
- { FontMatrix exch OrigMatrixInverse exch concatmatrix
- } if
- def
- /CurrentScaleMatrix
- matrix currentmatrix
- matrix defaultmatrix
- dup 0 get 1 index 3 get mul 0 lt
- 1 index dup 1 get exch 2 get mul 0 gt or
- /flipY exch def
- dup invertmatrix
- dup concatmatrix
- def
- /negY flipY { {neg} } { {} } ifelse def
-
- % Print debugging information.
-
- /CDEBUG where { pop } { /CDEBUG false def } ifelse
- /VDEBUG where { pop } { /VDEBUG false def } ifelse
- CDEBUG { /VDEBUG true def } if
- DEBUG
- { (currentmatrix: ) print matrix currentmatrix ==
- (defaultmatrix: ) print matrix defaultmatrix ==
- (flipY: ) print flipY ==
- (scaling matrix: ) print CurrentScaleMatrix ==
- (FontMatrix: ) print FontMatrix ==
- (FontBBox: ) print /FontBBox load ==
- currentfont OrigFont ne
- { OrigFont /FontName .knownget { (orig FontName: ) print == } if
- (orig FontMatrix: ) print OrigMatrix ==
- } if
- currentfont /ScaleMatrix .knownget { (ScaleMatrix: ) print == } if
- gsave
- FontMatrix concat
- (combined matrix: ) print matrix currentmatrix ==
- grestore
- flush
- } if
-
- % Determine the orientation.
-
- ScaleMatrix matrix currentmatrix dup concatmatrix
- 0 1 3
- { 1 index 1 get 0 eq 2 index 2 get 0 eq and 2 index 0 get 0 gt and
- { exit } if
- pop -90 matrix rotate exch dup concatmatrix
- }
- for
- dup type /integertype ne
- { (Only rotations by multiples of 90 degrees are supported:\n) print
- == flush
- saved end end end restore stop
- }
- if
- /orientation exch def
- /rot orientation 90 mul def
- DEBUG { (orientation: ) print orientation == flush } if
-
- dup dup 0 get exch 3 get negY sub abs 0.5 ge
- { (Only identical scaling in X and Y is supported:\n) print
- exch flipY 3 array astore ==
- currentdevice .devicename ==
- matrix defaultmatrix == flush
- saved end end end restore stop
- }
- if pop
-
- % Determine the font metrics, in the PCL character coordinate system,
- % which has +Y going towards the top of the page.
-
- gsave
- FontMatrix concat
- 0 0 transform
- negY round cvi /r0y exch def
- round cvi /r0x exch def
- ixbbox
- negY /rury exch def /rurx exch def
- negY /rlly exch def /rllx exch def
- /rminx rllx rurx .min def
- /rminy rlly negY rury negY .min def
- /rw rurx rllx sub abs def
- /rh rury rlly sub abs def
- gsave rot neg rotate
- 0 0 transform
- negY round cvi /u0y exch def
- round cvi /u0x exch def
- ixbbox
- negY /uury exch def /uurx exch def
- negY /ully exch def /ullx exch def
- /uw uurx ullx sub def
- /uh uury ully sub def
- grestore
- DEBUG
- { (rmatrix: ) print matrix currentmatrix ==
- (rFontBBox: ) print [rllx rlly rurx rury] ==
- (uFontBBox: ) print [ullx ully uurx uury] ==
- flush
- } if
- grestore
-
- % Disable the character cache, to avoid excessive allocation
- % and memory sandbars.
-
- mark cachestatus /upper exch def
- cleartomark 0 setcachelimit
-
- % Write the font header.
-
- writefontheader
-
- % Establish an image device for rasterizing characters.
-
- matrix currentmatrix
- dup 4 rminx neg put
- dup 5 rminy neg put
- % Round the width up to a multiple of 8
- % so we don't get garbage bits in the last byte of each row.
- rw 7 add -8 and rh <ff 00> makeimagedevice
- /cdevice exch def
- nulldevice % prevent page device switching
- cdevice setdevice
-
- % Rasterize each character in turn.
-
- /raster rw 7 add 8 idiv def
- /row raster string def
- /zerow row length string def
- 0 1 Encoding length 1 sub
- { /cindex exch def
- Encoding cindex get /.notdef ne
- { VDEBUG { Encoding cindex get == flush } if
- erasepage initgraphics
- 0 0 moveto currentpoint transform add
- ( ) dup 0 cindex put show
- currentpoint transform add exch sub round cvi
- /cwidth exch abs def
- rw rh devbbox
- VDEBUG
- { (image bbox: ) print 4 copy 4 2 roll 4 array astore == flush
- } if
- % Save the device bounding box.
- % Note that this is in current device coordinates,
- % not PCL (right-handed) coordinates.
- /bqx exch def /bpx exch def /bqy exch def /bpy exch def
- % Re-render with the character justified to (0,0).
- % This may be either the lower left or the upper left corner.
- bpx neg bpy neg idtransform moveto
- erasepage
- VDEBUG { (show point: ) print [ currentpoint transform ] == flush } if
- ( ) dup 0 cindex put show
- % Find the bounding box. Note that xmin and ymin are now 0,
- % xmax1 = xw, and ymax1 = yh.
- rw rh devbbox
- /xw exch def
- % xmin or ymin can be non-zero only if the character is blank.
- xw 0 eq
- { pop }
- { dup 0 ne { (Non-zero xmin! ) print = } { pop } ifelse }
- ifelse
- /yh exch def
- yh 0 eq
- { pop }
- { dup 0 ne { (Non-zero ymin! ) print = } { pop } ifelse }
- ifelse
-
- /xbw xw 7 add 8 idiv def
- /xright raster 8 mul xw sub def
- % Write the Character Code command.
- outfile (\033*c) writestring
- outfile cindex write==only
- outfile (E) writestring
- % Write the Character Definition command.
- outfile (\033\(s) writestring
- yh xbw mul 16 add
- outfile exch write=only
- % Record the character position for the .PCM file.
- /cfpos outfile fileposition 1 add def
- outfile (W\004\000\016\001) writestring
- orientation (Orientation) wbyte 0 (Reserved) wbyte
- rminx bpx add r0x sub (Left Offset) wword
- flipY { rminy bpy add neg } { rminy bqy add } ifelse r0y sub
- (Top Offset) wword
- xw (Character Width) wword
- yh (Character Height) wword
- cwidth orientation 2 ge { neg } if 4 mul (Delta X) wword
- % Write the character data.
- flipY { 0 1 yh 1 sub } { yh 1 sub -1 0 } ifelse
- { cdevice exch row copyscanlines
- 0 xbw getinterval
- CDEBUG
- { dup
- { 8
- { dup 128 ge { (+) } { (.) } ifelse print
- 127 and 1 bitshift
- }
- repeat pop
- }
- forall (\n) print
- }
- if
- outfile exch writestring
- }
- for
- }
- { /bpx 0 def /bpy 0 def /bqx 0 def /bqy 0 def
- /cwidth 0 def
- /cfpos 0 def
- }
- ifelse
-
- }
- for
-
- % Wrap up.
-
- upper setcachelimit
- outfile closefile
-
- nulldevice % prevent page device switching
- saved end end end restore
-
- } def
-
-% Provide definitions for testing with older or non-custom interpreters.
-
-/.findzeros where { pop (%END) .skipeof } if
-/.findzeros
- { userdict begin /zs exch def /zl zs length def
- 0 { dup zl ge { exit } if dup zs exch get 0 ne { exit } if 1 add } loop
- zl { dup 0 eq { exit } if dup 1 sub zs exch get 0 ne { exit } if 1 sub } loop
- exch 3 bitshift exch 3 bitshift
- 2 copy lt
- { exch zs 1 index -3 bitshift get
- { dup 16#80 and 0 ne { exit } if exch 1 add exch 1 bitshift } loop pop
- exch zs 1 index -3 bitshift 1 sub get
- { dup 1 and 0 ne { exit } if exch 1 sub exch -1 bitshift } loop pop
- }
- if end
- } bind def
-%END
-
-/write=only where { pop (%END) .skipeof } if
-/w=s 128 string def
-/write=only
- { w=s cvs writestring
- } bind def
-%END
-
-%**************** Test
-/PCLTEST where {
- pop
- /DEBUG true def
- /CDEBUG true def
- /VDEBUG true def
- /Times-Roman findfont 10 scalefont setfont
- (t.pcf) (w) file
- 300 72 div dup scale
- 300 writePCL
- flush quit
-} if
diff --git a/Master/xemtex/gslib/gs_agl.ps b/Master/xemtex/gslib/gs_agl.ps
deleted file mode 100644
index 40ac08e1e76..00000000000
--- a/Master/xemtex/gslib/gs_agl.ps
+++ /dev/null
@@ -1,1070 +0,0 @@
-% Copyright (C) 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_agl.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-
-% This file was derived from the Adobe Glyph List, version 1.2, dated
-% 22 Oct 1998, at
-% http://partners.adobe.com/asn/developer/typeforum/glyphlist.txt
-% That file does not contain any copyright notice.
-
-% The AdobeGlyphList dictionary maps glyph names to Unicode values.
-% Nearly all names map to a single value; however, a few names map to
-% multiple values. See the above file, and also
-% http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
-% for more details.
-
-/AdobeGlyphList 1500 dict
-dup /A 16#0041 put
-dup /AE 16#00C6 put
-dup /AEacute 16#01FC put
-dup /AEsmall 16#F7E6 put
-dup /Aacute 16#00C1 put
-dup /Aacutesmall 16#F7E1 put
-dup /Abreve 16#0102 put
-dup /Acircumflex 16#00C2 put
-dup /Acircumflexsmall 16#F7E2 put
-dup /Acute 16#F6C9 put
-dup /Acutesmall 16#F7B4 put
-dup /Adieresis 16#00C4 put
-dup /Adieresissmall 16#F7E4 put
-dup /Agrave 16#00C0 put
-dup /Agravesmall 16#F7E0 put
-dup /Alpha 16#0391 put
-dup /Alphatonos 16#0386 put
-dup /Amacron 16#0100 put
-dup /Aogonek 16#0104 put
-dup /Aring 16#00C5 put
-dup /Aringacute 16#01FA put
-dup /Aringsmall 16#F7E5 put
-dup /Asmall 16#F761 put
-dup /Atilde 16#00C3 put
-dup /Atildesmall 16#F7E3 put
-dup /B 16#0042 put
-dup /Beta 16#0392 put
-dup /Brevesmall 16#F6F4 put
-dup /Bsmall 16#F762 put
-dup /C 16#0043 put
-dup /Cacute 16#0106 put
-dup /Caron 16#F6CA put
-dup /Caronsmall 16#F6F5 put
-dup /Ccaron 16#010C put
-dup /Ccedilla 16#00C7 put
-dup /Ccedillasmall 16#F7E7 put
-dup /Ccircumflex 16#0108 put
-dup /Cdotaccent 16#010A put
-dup /Cedillasmall 16#F7B8 put
-dup /Chi 16#03A7 put
-dup /Circumflexsmall 16#F6F6 put
-dup /Csmall 16#F763 put
-dup /D 16#0044 put
-dup /Dcaron 16#010E put
-dup /Dcroat 16#0110 put
-dup /Delta [16#2206 16#0394] put
-dup /Dieresis 16#F6CB put
-dup /DieresisAcute 16#F6CC put
-dup /DieresisGrave 16#F6CD put
-dup /Dieresissmall 16#F7A8 put
-dup /Dotaccentsmall 16#F6F7 put
-dup /Dsmall 16#F764 put
-dup /E 16#0045 put
-dup /Eacute 16#00C9 put
-dup /Eacutesmall 16#F7E9 put
-dup /Ebreve 16#0114 put
-dup /Ecaron 16#011A put
-dup /Ecircumflex 16#00CA put
-dup /Ecircumflexsmall 16#F7EA put
-dup /Edieresis 16#00CB put
-dup /Edieresissmall 16#F7EB put
-dup /Edotaccent 16#0116 put
-dup /Egrave 16#00C8 put
-dup /Egravesmall 16#F7E8 put
-dup /Emacron 16#0112 put
-dup /Eng 16#014A put
-dup /Eogonek 16#0118 put
-dup /Epsilon 16#0395 put
-dup /Epsilontonos 16#0388 put
-dup /Esmall 16#F765 put
-dup /Eta 16#0397 put
-dup /Etatonos 16#0389 put
-dup /Eth 16#00D0 put
-dup /Ethsmall 16#F7F0 put
-dup /Euro 16#20AC put
-dup /F 16#0046 put
-dup /Fsmall 16#F766 put
-dup /G 16#0047 put
-dup /Gamma 16#0393 put
-dup /Gbreve 16#011E put
-dup /Gcaron 16#01E6 put
-dup /Gcircumflex 16#011C put
-dup /Gcommaaccent 16#0122 put
-dup /Gdotaccent 16#0120 put
-dup /Grave 16#F6CE put
-dup /Gravesmall 16#F760 put
-dup /Gsmall 16#F767 put
-dup /H 16#0048 put
-dup /H18533 16#25CF put
-dup /H18543 16#25AA put
-dup /H18551 16#25AB put
-dup /H22073 16#25A1 put
-dup /Hbar 16#0126 put
-dup /Hcircumflex 16#0124 put
-dup /Hsmall 16#F768 put
-dup /Hungarumlaut 16#F6CF put
-dup /Hungarumlautsmall 16#F6F8 put
-dup /I 16#0049 put
-dup /IJ 16#0132 put
-dup /Iacute 16#00CD put
-dup /Iacutesmall 16#F7ED put
-dup /Ibreve 16#012C put
-dup /Icircumflex 16#00CE put
-dup /Icircumflexsmall 16#F7EE put
-dup /Idieresis 16#00CF put
-dup /Idieresissmall 16#F7EF put
-dup /Idotaccent 16#0130 put
-dup /Ifraktur 16#2111 put
-dup /Igrave 16#00CC put
-dup /Igravesmall 16#F7EC put
-dup /Imacron 16#012A put
-dup /Iogonek 16#012E put
-dup /Iota 16#0399 put
-dup /Iotadieresis 16#03AA put
-dup /Iotatonos 16#038A put
-dup /Ismall 16#F769 put
-dup /Itilde 16#0128 put
-dup /J 16#004A put
-dup /Jcircumflex 16#0134 put
-dup /Jsmall 16#F76A put
-dup /K 16#004B put
-dup /Kappa 16#039A put
-dup /Kcommaaccent 16#0136 put
-dup /Ksmall 16#F76B put
-dup /L 16#004C put
-dup /LL 16#F6BF put
-dup /Lacute 16#0139 put
-dup /Lambda 16#039B put
-dup /Lcaron 16#013D put
-dup /Lcommaaccent 16#013B put
-dup /Ldot 16#013F put
-dup /Lslash 16#0141 put
-dup /Lslashsmall 16#F6F9 put
-dup /Lsmall 16#F76C put
-dup /M 16#004D put
-dup /Macron 16#F6D0 put
-dup /Macronsmall 16#F7AF put
-dup /Msmall 16#F76D put
-dup /Mu 16#039C put
-dup /N 16#004E put
-dup /Nacute 16#0143 put
-dup /Ncaron 16#0147 put
-dup /Ncommaaccent 16#0145 put
-dup /Nsmall 16#F76E put
-dup /Ntilde 16#00D1 put
-dup /Ntildesmall 16#F7F1 put
-dup /Nu 16#039D put
-dup /O 16#004F put
-dup /OE 16#0152 put
-dup /OEsmall 16#F6FA put
-dup /Oacute 16#00D3 put
-dup /Oacutesmall 16#F7F3 put
-dup /Obreve 16#014E put
-dup /Ocircumflex 16#00D4 put
-dup /Ocircumflexsmall 16#F7F4 put
-dup /Odieresis 16#00D6 put
-dup /Odieresissmall 16#F7F6 put
-dup /Ogoneksmall 16#F6FB put
-dup /Ograve 16#00D2 put
-dup /Ogravesmall 16#F7F2 put
-dup /Ohorn 16#01A0 put
-dup /Ohungarumlaut 16#0150 put
-dup /Omacron 16#014C put
-dup /Omega [16#2126 16#03A9] put
-dup /Omegatonos 16#038F put
-dup /Omicron 16#039F put
-dup /Omicrontonos 16#038C put
-dup /Oslash 16#00D8 put
-dup /Oslashacute 16#01FE put
-dup /Oslashsmall 16#F7F8 put
-dup /Osmall 16#F76F put
-dup /Otilde 16#00D5 put
-dup /Otildesmall 16#F7F5 put
-dup /P 16#0050 put
-dup /Phi 16#03A6 put
-dup /Pi 16#03A0 put
-dup /Psi 16#03A8 put
-dup /Psmall 16#F770 put
-dup /Q 16#0051 put
-dup /Qsmall 16#F771 put
-dup /R 16#0052 put
-dup /Racute 16#0154 put
-dup /Rcaron 16#0158 put
-dup /Rcommaaccent 16#0156 put
-dup /Rfraktur 16#211C put
-dup /Rho 16#03A1 put
-dup /Ringsmall 16#F6FC put
-dup /Rsmall 16#F772 put
-dup /S 16#0053 put
-dup /SF010000 16#250C put
-dup /SF020000 16#2514 put
-dup /SF030000 16#2510 put
-dup /SF040000 16#2518 put
-dup /SF050000 16#253C put
-dup /SF060000 16#252C put
-dup /SF070000 16#2534 put
-dup /SF080000 16#251C put
-dup /SF090000 16#2524 put
-dup /SF100000 16#2500 put
-dup /SF110000 16#2502 put
-dup /SF190000 16#2561 put
-dup /SF200000 16#2562 put
-dup /SF210000 16#2556 put
-dup /SF220000 16#2555 put
-dup /SF230000 16#2563 put
-dup /SF240000 16#2551 put
-dup /SF250000 16#2557 put
-dup /SF260000 16#255D put
-dup /SF270000 16#255C put
-dup /SF280000 16#255B put
-dup /SF360000 16#255E put
-dup /SF370000 16#255F put
-dup /SF380000 16#255A put
-dup /SF390000 16#2554 put
-dup /SF400000 16#2569 put
-dup /SF410000 16#2566 put
-dup /SF420000 16#2560 put
-dup /SF430000 16#2550 put
-dup /SF440000 16#256C put
-dup /SF450000 16#2567 put
-dup /SF460000 16#2568 put
-dup /SF470000 16#2564 put
-dup /SF480000 16#2565 put
-dup /SF490000 16#2559 put
-dup /SF500000 16#2558 put
-dup /SF510000 16#2552 put
-dup /SF520000 16#2553 put
-dup /SF530000 16#256B put
-dup /SF540000 16#256A put
-dup /Sacute 16#015A put
-dup /Scaron 16#0160 put
-dup /Scaronsmall 16#F6FD put
-dup /Scedilla [16#015E 16#F6C1] put
-dup /Scircumflex 16#015C put
-dup /Scommaaccent 16#0218 put
-dup /Sigma 16#03A3 put
-dup /Ssmall 16#F773 put
-dup /T 16#0054 put
-dup /Tau 16#03A4 put
-dup /Tbar 16#0166 put
-dup /Tcaron 16#0164 put
-dup /Tcommaaccent [16#0162 16#021A] put
-dup /Theta 16#0398 put
-dup /Thorn 16#00DE put
-dup /Thornsmall 16#F7FE put
-dup /Tildesmall 16#F6FE put
-dup /Tsmall 16#F774 put
-dup /U 16#0055 put
-dup /Uacute 16#00DA put
-dup /Uacutesmall 16#F7FA put
-dup /Ubreve 16#016C put
-dup /Ucircumflex 16#00DB put
-dup /Ucircumflexsmall 16#F7FB put
-dup /Udieresis 16#00DC put
-dup /Udieresissmall 16#F7FC put
-dup /Ugrave 16#00D9 put
-dup /Ugravesmall 16#F7F9 put
-dup /Uhorn 16#01AF put
-dup /Uhungarumlaut 16#0170 put
-dup /Umacron 16#016A put
-dup /Uogonek 16#0172 put
-dup /Upsilon 16#03A5 put
-dup /Upsilon1 16#03D2 put
-dup /Upsilondieresis 16#03AB put
-dup /Upsilontonos 16#038E put
-dup /Uring 16#016E put
-dup /Usmall 16#F775 put
-dup /Utilde 16#0168 put
-dup /V 16#0056 put
-dup /Vsmall 16#F776 put
-dup /W 16#0057 put
-dup /Wacute 16#1E82 put
-dup /Wcircumflex 16#0174 put
-dup /Wdieresis 16#1E84 put
-dup /Wgrave 16#1E80 put
-dup /Wsmall 16#F777 put
-dup /X 16#0058 put
-dup /Xi 16#039E put
-dup /Xsmall 16#F778 put
-dup /Y 16#0059 put
-dup /Yacute 16#00DD put
-dup /Yacutesmall 16#F7FD put
-dup /Ycircumflex 16#0176 put
-dup /Ydieresis 16#0178 put
-dup /Ydieresissmall 16#F7FF put
-dup /Ygrave 16#1EF2 put
-dup /Ysmall 16#F779 put
-dup /Z 16#005A put
-dup /Zacute 16#0179 put
-dup /Zcaron 16#017D put
-dup /Zcaronsmall 16#F6FF put
-dup /Zdotaccent 16#017B put
-dup /Zeta 16#0396 put
-dup /Zsmall 16#F77A put
-dup /a 16#0061 put
-dup /aacute 16#00E1 put
-dup /abreve 16#0103 put
-dup /acircumflex 16#00E2 put
-dup /acute 16#00B4 put
-dup /acutecomb 16#0301 put
-dup /adieresis 16#00E4 put
-dup /ae 16#00E6 put
-dup /aeacute 16#01FD put
-dup /afii00208 16#2015 put
-dup /afii10017 16#0410 put
-dup /afii10018 16#0411 put
-dup /afii10019 16#0412 put
-dup /afii10020 16#0413 put
-dup /afii10021 16#0414 put
-dup /afii10022 16#0415 put
-dup /afii10023 16#0401 put
-dup /afii10024 16#0416 put
-dup /afii10025 16#0417 put
-dup /afii10026 16#0418 put
-dup /afii10027 16#0419 put
-dup /afii10028 16#041A put
-dup /afii10029 16#041B put
-dup /afii10030 16#041C put
-dup /afii10031 16#041D put
-dup /afii10032 16#041E put
-dup /afii10033 16#041F put
-dup /afii10034 16#0420 put
-dup /afii10035 16#0421 put
-dup /afii10036 16#0422 put
-dup /afii10037 16#0423 put
-dup /afii10038 16#0424 put
-dup /afii10039 16#0425 put
-dup /afii10040 16#0426 put
-dup /afii10041 16#0427 put
-dup /afii10042 16#0428 put
-dup /afii10043 16#0429 put
-dup /afii10044 16#042A put
-dup /afii10045 16#042B put
-dup /afii10046 16#042C put
-dup /afii10047 16#042D put
-dup /afii10048 16#042E put
-dup /afii10049 16#042F put
-dup /afii10050 16#0490 put
-dup /afii10051 16#0402 put
-dup /afii10052 16#0403 put
-dup /afii10053 16#0404 put
-dup /afii10054 16#0405 put
-dup /afii10055 16#0406 put
-dup /afii10056 16#0407 put
-dup /afii10057 16#0408 put
-dup /afii10058 16#0409 put
-dup /afii10059 16#040A put
-dup /afii10060 16#040B put
-dup /afii10061 16#040C put
-dup /afii10062 16#040E put
-dup /afii10063 16#F6C4 put
-dup /afii10064 16#F6C5 put
-dup /afii10065 16#0430 put
-dup /afii10066 16#0431 put
-dup /afii10067 16#0432 put
-dup /afii10068 16#0433 put
-dup /afii10069 16#0434 put
-dup /afii10070 16#0435 put
-dup /afii10071 16#0451 put
-dup /afii10072 16#0436 put
-dup /afii10073 16#0437 put
-dup /afii10074 16#0438 put
-dup /afii10075 16#0439 put
-dup /afii10076 16#043A put
-dup /afii10077 16#043B put
-dup /afii10078 16#043C put
-dup /afii10079 16#043D put
-dup /afii10080 16#043E put
-dup /afii10081 16#043F put
-dup /afii10082 16#0440 put
-dup /afii10083 16#0441 put
-dup /afii10084 16#0442 put
-dup /afii10085 16#0443 put
-dup /afii10086 16#0444 put
-dup /afii10087 16#0445 put
-dup /afii10088 16#0446 put
-dup /afii10089 16#0447 put
-dup /afii10090 16#0448 put
-dup /afii10091 16#0449 put
-dup /afii10092 16#044A put
-dup /afii10093 16#044B put
-dup /afii10094 16#044C put
-dup /afii10095 16#044D put
-dup /afii10096 16#044E put
-dup /afii10097 16#044F put
-dup /afii10098 16#0491 put
-dup /afii10099 16#0452 put
-dup /afii10100 16#0453 put
-dup /afii10101 16#0454 put
-dup /afii10102 16#0455 put
-dup /afii10103 16#0456 put
-dup /afii10104 16#0457 put
-dup /afii10105 16#0458 put
-dup /afii10106 16#0459 put
-dup /afii10107 16#045A put
-dup /afii10108 16#045B put
-dup /afii10109 16#045C put
-dup /afii10110 16#045E put
-dup /afii10145 16#040F put
-dup /afii10146 16#0462 put
-dup /afii10147 16#0472 put
-dup /afii10148 16#0474 put
-dup /afii10192 16#F6C6 put
-dup /afii10193 16#045F put
-dup /afii10194 16#0463 put
-dup /afii10195 16#0473 put
-dup /afii10196 16#0475 put
-dup /afii10831 16#F6C7 put
-dup /afii10832 16#F6C8 put
-dup /afii10846 16#04D9 put
-dup /afii299 16#200E put
-dup /afii300 16#200F put
-dup /afii301 16#200D put
-dup /afii57381 16#066A put
-dup /afii57388 16#060C put
-dup /afii57392 16#0660 put
-dup /afii57393 16#0661 put
-dup /afii57394 16#0662 put
-dup /afii57395 16#0663 put
-dup /afii57396 16#0664 put
-dup /afii57397 16#0665 put
-dup /afii57398 16#0666 put
-dup /afii57399 16#0667 put
-dup /afii57400 16#0668 put
-dup /afii57401 16#0669 put
-dup /afii57403 16#061B put
-dup /afii57407 16#061F put
-dup /afii57409 16#0621 put
-dup /afii57410 16#0622 put
-dup /afii57411 16#0623 put
-dup /afii57412 16#0624 put
-dup /afii57413 16#0625 put
-dup /afii57414 16#0626 put
-dup /afii57415 16#0627 put
-dup /afii57416 16#0628 put
-dup /afii57417 16#0629 put
-dup /afii57418 16#062A put
-dup /afii57419 16#062B put
-dup /afii57420 16#062C put
-dup /afii57421 16#062D put
-dup /afii57422 16#062E put
-dup /afii57423 16#062F put
-dup /afii57424 16#0630 put
-dup /afii57425 16#0631 put
-dup /afii57426 16#0632 put
-dup /afii57427 16#0633 put
-dup /afii57428 16#0634 put
-dup /afii57429 16#0635 put
-dup /afii57430 16#0636 put
-dup /afii57431 16#0637 put
-dup /afii57432 16#0638 put
-dup /afii57433 16#0639 put
-dup /afii57434 16#063A put
-dup /afii57440 16#0640 put
-dup /afii57441 16#0641 put
-dup /afii57442 16#0642 put
-dup /afii57443 16#0643 put
-dup /afii57444 16#0644 put
-dup /afii57445 16#0645 put
-dup /afii57446 16#0646 put
-dup /afii57448 16#0648 put
-dup /afii57449 16#0649 put
-dup /afii57450 16#064A put
-dup /afii57451 16#064B put
-dup /afii57452 16#064C put
-dup /afii57453 16#064D put
-dup /afii57454 16#064E put
-dup /afii57455 16#064F put
-dup /afii57456 16#0650 put
-dup /afii57457 16#0651 put
-dup /afii57458 16#0652 put
-dup /afii57470 16#0647 put
-dup /afii57505 16#06A4 put
-dup /afii57506 16#067E put
-dup /afii57507 16#0686 put
-dup /afii57508 16#0698 put
-dup /afii57509 16#06AF put
-dup /afii57511 16#0679 put
-dup /afii57512 16#0688 put
-dup /afii57513 16#0691 put
-dup /afii57514 16#06BA put
-dup /afii57519 16#06D2 put
-dup /afii57534 16#06D5 put
-dup /afii57636 16#20AA put
-dup /afii57645 16#05BE put
-dup /afii57658 16#05C3 put
-dup /afii57664 16#05D0 put
-dup /afii57665 16#05D1 put
-dup /afii57666 16#05D2 put
-dup /afii57667 16#05D3 put
-dup /afii57668 16#05D4 put
-dup /afii57669 16#05D5 put
-dup /afii57670 16#05D6 put
-dup /afii57671 16#05D7 put
-dup /afii57672 16#05D8 put
-dup /afii57673 16#05D9 put
-dup /afii57674 16#05DA put
-dup /afii57675 16#05DB put
-dup /afii57676 16#05DC put
-dup /afii57677 16#05DD put
-dup /afii57678 16#05DE put
-dup /afii57679 16#05DF put
-dup /afii57680 16#05E0 put
-dup /afii57681 16#05E1 put
-dup /afii57682 16#05E2 put
-dup /afii57683 16#05E3 put
-dup /afii57684 16#05E4 put
-dup /afii57685 16#05E5 put
-dup /afii57686 16#05E6 put
-dup /afii57687 16#05E7 put
-dup /afii57688 16#05E8 put
-dup /afii57689 16#05E9 put
-dup /afii57690 16#05EA put
-dup /afii57694 16#FB2A put
-dup /afii57695 16#FB2B put
-dup /afii57700 16#FB4B put
-dup /afii57705 16#FB1F put
-dup /afii57716 16#05F0 put
-dup /afii57717 16#05F1 put
-dup /afii57718 16#05F2 put
-dup /afii57723 16#FB35 put
-dup /afii57793 16#05B4 put
-dup /afii57794 16#05B5 put
-dup /afii57795 16#05B6 put
-dup /afii57796 16#05BB put
-dup /afii57797 16#05B8 put
-dup /afii57798 16#05B7 put
-dup /afii57799 16#05B0 put
-dup /afii57800 16#05B2 put
-dup /afii57801 16#05B1 put
-dup /afii57802 16#05B3 put
-dup /afii57803 16#05C2 put
-dup /afii57804 16#05C1 put
-dup /afii57806 16#05B9 put
-dup /afii57807 16#05BC put
-dup /afii57839 16#05BD put
-dup /afii57841 16#05BF put
-dup /afii57842 16#05C0 put
-dup /afii57929 16#02BC put
-dup /afii61248 16#2105 put
-dup /afii61289 16#2113 put
-dup /afii61352 16#2116 put
-dup /afii61573 16#202C put
-dup /afii61574 16#202D put
-dup /afii61575 16#202E put
-dup /afii61664 16#200C put
-dup /afii63167 16#066D put
-dup /afii64937 16#02BD put
-dup /agrave 16#00E0 put
-dup /aleph 16#2135 put
-dup /alpha 16#03B1 put
-dup /alphatonos 16#03AC put
-dup /amacron 16#0101 put
-dup /ampersand 16#0026 put
-dup /ampersandsmall 16#F726 put
-dup /angle 16#2220 put
-dup /angleleft 16#2329 put
-dup /angleright 16#232A put
-dup /anoteleia 16#0387 put
-dup /aogonek 16#0105 put
-dup /approxequal 16#2248 put
-dup /aring 16#00E5 put
-dup /aringacute 16#01FB put
-dup /arrowboth 16#2194 put
-dup /arrowdblboth 16#21D4 put
-dup /arrowdbldown 16#21D3 put
-dup /arrowdblleft 16#21D0 put
-dup /arrowdblright 16#21D2 put
-dup /arrowdblup 16#21D1 put
-dup /arrowdown 16#2193 put
-dup /arrowhorizex 16#F8E7 put
-dup /arrowleft 16#2190 put
-dup /arrowright 16#2192 put
-dup /arrowup 16#2191 put
-dup /arrowupdn 16#2195 put
-dup /arrowupdnbse 16#21A8 put
-dup /arrowvertex 16#F8E6 put
-dup /asciicircum 16#005E put
-dup /asciitilde 16#007E put
-dup /asterisk 16#002A put
-dup /asteriskmath 16#2217 put
-dup /asuperior 16#F6E9 put
-dup /at 16#0040 put
-dup /atilde 16#00E3 put
-dup /b 16#0062 put
-dup /backslash 16#005C put
-dup /bar 16#007C put
-dup /beta 16#03B2 put
-dup /block 16#2588 put
-dup /braceex 16#F8F4 put
-dup /braceleft 16#007B put
-dup /braceleftbt 16#F8F3 put
-dup /braceleftmid 16#F8F2 put
-dup /bracelefttp 16#F8F1 put
-dup /braceright 16#007D put
-dup /bracerightbt 16#F8FE put
-dup /bracerightmid 16#F8FD put
-dup /bracerighttp 16#F8FC put
-dup /bracketleft 16#005B put
-dup /bracketleftbt 16#F8F0 put
-dup /bracketleftex 16#F8EF put
-dup /bracketlefttp 16#F8EE put
-dup /bracketright 16#005D put
-dup /bracketrightbt 16#F8FB put
-dup /bracketrightex 16#F8FA put
-dup /bracketrighttp 16#F8F9 put
-dup /breve 16#02D8 put
-dup /brokenbar 16#00A6 put
-dup /bsuperior 16#F6EA put
-dup /bullet 16#2022 put
-dup /c 16#0063 put
-dup /cacute 16#0107 put
-dup /caron 16#02C7 put
-dup /carriagereturn 16#21B5 put
-dup /ccaron 16#010D put
-dup /ccedilla 16#00E7 put
-dup /ccircumflex 16#0109 put
-dup /cdotaccent 16#010B put
-dup /cedilla 16#00B8 put
-dup /cent 16#00A2 put
-dup /centinferior 16#F6DF put
-dup /centoldstyle 16#F7A2 put
-dup /centsuperior 16#F6E0 put
-dup /chi 16#03C7 put
-dup /circle 16#25CB put
-dup /circlemultiply 16#2297 put
-dup /circleplus 16#2295 put
-dup /circumflex 16#02C6 put
-dup /club 16#2663 put
-dup /colon 16#003A put
-dup /colonmonetary 16#20A1 put
-dup /comma 16#002C put
-dup /commaaccent 16#F6C3 put
-dup /commainferior 16#F6E1 put
-dup /commasuperior 16#F6E2 put
-dup /congruent 16#2245 put
-dup /copyright 16#00A9 put
-dup /copyrightsans 16#F8E9 put
-dup /copyrightserif 16#F6D9 put
-dup /currency 16#00A4 put
-dup /cyrBreve 16#F6D1 put
-dup /cyrFlex 16#F6D2 put
-dup /cyrbreve 16#F6D4 put
-dup /cyrflex 16#F6D5 put
-dup /d 16#0064 put
-dup /dagger 16#2020 put
-dup /daggerdbl 16#2021 put
-dup /dblGrave 16#F6D3 put
-dup /dblgrave 16#F6D6 put
-dup /dcaron 16#010F put
-dup /dcroat 16#0111 put
-dup /degree 16#00B0 put
-dup /delta 16#03B4 put
-dup /diamond 16#2666 put
-dup /dieresis 16#00A8 put
-dup /dieresisacute 16#F6D7 put
-dup /dieresisgrave 16#F6D8 put
-dup /dieresistonos 16#0385 put
-dup /divide 16#00F7 put
-dup /dkshade 16#2593 put
-dup /dnblock 16#2584 put
-dup /dollar 16#0024 put
-dup /dollarinferior 16#F6E3 put
-dup /dollaroldstyle 16#F724 put
-dup /dollarsuperior 16#F6E4 put
-dup /dong 16#20AB put
-dup /dotaccent 16#02D9 put
-dup /dotbelowcomb 16#0323 put
-dup /dotlessi 16#0131 put
-dup /dotlessj 16#F6BE put
-dup /dotmath 16#22C5 put
-dup /dsuperior 16#F6EB put
-dup /e 16#0065 put
-dup /eacute 16#00E9 put
-dup /ebreve 16#0115 put
-dup /ecaron 16#011B put
-dup /ecircumflex 16#00EA put
-dup /edieresis 16#00EB put
-dup /edotaccent 16#0117 put
-dup /egrave 16#00E8 put
-dup /eight 16#0038 put
-dup /eightinferior 16#2088 put
-dup /eightoldstyle 16#F738 put
-dup /eightsuperior 16#2078 put
-dup /element 16#2208 put
-dup /ellipsis 16#2026 put
-dup /emacron 16#0113 put
-dup /emdash 16#2014 put
-dup /emptyset 16#2205 put
-dup /endash 16#2013 put
-dup /eng 16#014B put
-dup /eogonek 16#0119 put
-dup /epsilon 16#03B5 put
-dup /epsilontonos 16#03AD put
-dup /equal 16#003D put
-dup /equivalence 16#2261 put
-dup /estimated 16#212E put
-dup /esuperior 16#F6EC put
-dup /eta 16#03B7 put
-dup /etatonos 16#03AE put
-dup /eth 16#00F0 put
-dup /exclam 16#0021 put
-dup /exclamdbl 16#203C put
-dup /exclamdown 16#00A1 put
-dup /exclamdownsmall 16#F7A1 put
-dup /exclamsmall 16#F721 put
-dup /existential 16#2203 put
-dup /f 16#0066 put
-dup /female 16#2640 put
-dup /ff 16#FB00 put
-dup /ffi 16#FB03 put
-dup /ffl 16#FB04 put
-dup /fi 16#FB01 put
-dup /figuredash 16#2012 put
-dup /filledbox 16#25A0 put
-dup /filledrect 16#25AC put
-dup /five 16#0035 put
-dup /fiveeighths 16#215D put
-dup /fiveinferior 16#2085 put
-dup /fiveoldstyle 16#F735 put
-dup /fivesuperior 16#2075 put
-dup /fl 16#FB02 put
-dup /florin 16#0192 put
-dup /four 16#0034 put
-dup /fourinferior 16#2084 put
-dup /fouroldstyle 16#F734 put
-dup /foursuperior 16#2074 put
-dup /fraction [16#2044 16#2215] put
-dup /franc 16#20A3 put
-dup /g 16#0067 put
-dup /gamma 16#03B3 put
-dup /gbreve 16#011F put
-dup /gcaron 16#01E7 put
-dup /gcircumflex 16#011D put
-dup /gcommaaccent 16#0123 put
-dup /gdotaccent 16#0121 put
-dup /germandbls 16#00DF put
-dup /gradient 16#2207 put
-dup /grave 16#0060 put
-dup /gravecomb 16#0300 put
-dup /greater 16#003E put
-dup /greaterequal 16#2265 put
-dup /guillemotleft 16#00AB put
-dup /guillemotright 16#00BB put
-dup /guilsinglleft 16#2039 put
-dup /guilsinglright 16#203A put
-dup /h 16#0068 put
-dup /hbar 16#0127 put
-dup /hcircumflex 16#0125 put
-dup /heart 16#2665 put
-dup /hookabovecomb 16#0309 put
-dup /house 16#2302 put
-dup /hungarumlaut 16#02DD put
-dup /hyphen [16#002D 16#00AD] put
-dup /hypheninferior 16#F6E5 put
-dup /hyphensuperior 16#F6E6 put
-dup /i 16#0069 put
-dup /iacute 16#00ED put
-dup /ibreve 16#012D put
-dup /icircumflex 16#00EE put
-dup /idieresis 16#00EF put
-dup /igrave 16#00EC put
-dup /ij 16#0133 put
-dup /imacron 16#012B put
-dup /infinity 16#221E put
-dup /integral 16#222B put
-dup /integralbt 16#2321 put
-dup /integralex 16#F8F5 put
-dup /integraltp 16#2320 put
-dup /intersection 16#2229 put
-dup /invbullet 16#25D8 put
-dup /invcircle 16#25D9 put
-dup /invsmileface 16#263B put
-dup /iogonek 16#012F put
-dup /iota 16#03B9 put
-dup /iotadieresis 16#03CA put
-dup /iotadieresistonos 16#0390 put
-dup /iotatonos 16#03AF put
-dup /isuperior 16#F6ED put
-dup /itilde 16#0129 put
-dup /j 16#006A put
-dup /jcircumflex 16#0135 put
-dup /k 16#006B put
-dup /kappa 16#03BA put
-dup /kcommaaccent 16#0137 put
-dup /kgreenlandic 16#0138 put
-dup /l 16#006C put
-dup /lacute 16#013A put
-dup /lambda 16#03BB put
-dup /lcaron 16#013E put
-dup /lcommaaccent 16#013C put
-dup /ldot 16#0140 put
-dup /less 16#003C put
-dup /lessequal 16#2264 put
-dup /lfblock 16#258C put
-dup /lira 16#20A4 put
-dup /ll 16#F6C0 put
-dup /logicaland 16#2227 put
-dup /logicalnot 16#00AC put
-dup /logicalor 16#2228 put
-dup /longs 16#017F put
-dup /lozenge 16#25CA put
-dup /lslash 16#0142 put
-dup /lsuperior 16#F6EE put
-dup /ltshade 16#2591 put
-dup /m 16#006D put
-dup /macron [16#00AF 16#02C9] put
-dup /male 16#2642 put
-dup /minus 16#2212 put
-dup /minute 16#2032 put
-dup /msuperior 16#F6EF put
-dup /mu [16#00B5 16#03BC] put
-dup /multiply 16#00D7 put
-dup /musicalnote 16#266A put
-dup /musicalnotedbl 16#266B put
-dup /n 16#006E put
-dup /nacute 16#0144 put
-dup /napostrophe 16#0149 put
-dup /ncaron 16#0148 put
-dup /ncommaaccent 16#0146 put
-dup /nine 16#0039 put
-dup /nineinferior 16#2089 put
-dup /nineoldstyle 16#F739 put
-dup /ninesuperior 16#2079 put
-dup /notelement 16#2209 put
-dup /notequal 16#2260 put
-dup /notsubset 16#2284 put
-dup /nsuperior 16#207F put
-dup /ntilde 16#00F1 put
-dup /nu 16#03BD put
-dup /numbersign 16#0023 put
-dup /o 16#006F put
-dup /oacute 16#00F3 put
-dup /obreve 16#014F put
-dup /ocircumflex 16#00F4 put
-dup /odieresis 16#00F6 put
-dup /oe 16#0153 put
-dup /ogonek 16#02DB put
-dup /ograve 16#00F2 put
-dup /ohorn 16#01A1 put
-dup /ohungarumlaut 16#0151 put
-dup /omacron 16#014D put
-dup /omega 16#03C9 put
-dup /omega1 16#03D6 put
-dup /omegatonos 16#03CE put
-dup /omicron 16#03BF put
-dup /omicrontonos 16#03CC put
-dup /one 16#0031 put
-dup /onedotenleader 16#2024 put
-dup /oneeighth 16#215B put
-dup /onefitted 16#F6DC put
-dup /onehalf 16#00BD put
-dup /oneinferior 16#2081 put
-dup /oneoldstyle 16#F731 put
-dup /onequarter 16#00BC put
-dup /onesuperior 16#00B9 put
-dup /onethird 16#2153 put
-dup /openbullet 16#25E6 put
-dup /ordfeminine 16#00AA put
-dup /ordmasculine 16#00BA put
-dup /orthogonal 16#221F put
-dup /oslash 16#00F8 put
-dup /oslashacute 16#01FF put
-dup /osuperior 16#F6F0 put
-dup /otilde 16#00F5 put
-dup /p 16#0070 put
-dup /paragraph 16#00B6 put
-dup /parenleft 16#0028 put
-dup /parenleftbt 16#F8ED put
-dup /parenleftex 16#F8EC put
-dup /parenleftinferior 16#208D put
-dup /parenleftsuperior 16#207D put
-dup /parenlefttp 16#F8EB put
-dup /parenright 16#0029 put
-dup /parenrightbt 16#F8F8 put
-dup /parenrightex 16#F8F7 put
-dup /parenrightinferior 16#208E put
-dup /parenrightsuperior 16#207E put
-dup /parenrighttp 16#F8F6 put
-dup /partialdiff 16#2202 put
-dup /percent 16#0025 put
-dup /period 16#002E put
-dup /periodcentered [16#00B7 16#2219] put
-dup /periodinferior 16#F6E7 put
-dup /periodsuperior 16#F6E8 put
-dup /perpendicular 16#22A5 put
-dup /perthousand 16#2030 put
-dup /peseta 16#20A7 put
-dup /phi 16#03C6 put
-dup /phi1 16#03D5 put
-dup /pi 16#03C0 put
-dup /plus 16#002B put
-dup /plusminus 16#00B1 put
-dup /prescription 16#211E put
-dup /product 16#220F put
-dup /propersubset 16#2282 put
-dup /propersuperset 16#2283 put
-dup /proportional 16#221D put
-dup /psi 16#03C8 put
-dup /q 16#0071 put
-dup /question 16#003F put
-dup /questiondown 16#00BF put
-dup /questiondownsmall 16#F7BF put
-dup /questionsmall 16#F73F put
-dup /quotedbl 16#0022 put
-dup /quotedblbase 16#201E put
-dup /quotedblleft 16#201C put
-dup /quotedblright 16#201D put
-dup /quoteleft 16#2018 put
-dup /quotereversed 16#201B put
-dup /quoteright 16#2019 put
-dup /quotesinglbase 16#201A put
-dup /quotesingle 16#0027 put
-dup /r 16#0072 put
-dup /racute 16#0155 put
-dup /radical 16#221A put
-dup /radicalex 16#F8E5 put
-dup /rcaron 16#0159 put
-dup /rcommaaccent 16#0157 put
-dup /reflexsubset 16#2286 put
-dup /reflexsuperset 16#2287 put
-dup /registered 16#00AE put
-dup /registersans 16#F8E8 put
-dup /registerserif 16#F6DA put
-dup /revlogicalnot 16#2310 put
-dup /rho 16#03C1 put
-dup /ring 16#02DA put
-dup /rsuperior 16#F6F1 put
-dup /rtblock 16#2590 put
-dup /rupiah 16#F6DD put
-dup /s 16#0073 put
-dup /sacute 16#015B put
-dup /scaron 16#0161 put
-dup /scedilla [16#015F 16#F6C2] put
-dup /scircumflex 16#015D put
-dup /scommaaccent 16#0219 put
-dup /second 16#2033 put
-dup /section 16#00A7 put
-dup /semicolon 16#003B put
-dup /seven 16#0037 put
-dup /seveneighths 16#215E put
-dup /seveninferior 16#2087 put
-dup /sevenoldstyle 16#F737 put
-dup /sevensuperior 16#2077 put
-dup /shade 16#2592 put
-dup /sigma 16#03C3 put
-dup /sigma1 16#03C2 put
-dup /similar 16#223C put
-dup /six 16#0036 put
-dup /sixinferior 16#2086 put
-dup /sixoldstyle 16#F736 put
-dup /sixsuperior 16#2076 put
-dup /slash 16#002F put
-dup /smileface 16#263A put
-dup /space [16#0020 16#00A0] put
-dup /spade 16#2660 put
-dup /ssuperior 16#F6F2 put
-dup /sterling 16#00A3 put
-dup /suchthat 16#220B put
-dup /summation 16#2211 put
-dup /sun 16#263C put
-dup /t 16#0074 put
-dup /tau 16#03C4 put
-dup /tbar 16#0167 put
-dup /tcaron 16#0165 put
-dup /tcommaaccent [16#0163 16#021B] put
-dup /therefore 16#2234 put
-dup /theta 16#03B8 put
-dup /theta1 16#03D1 put
-dup /thorn 16#00FE put
-dup /three 16#0033 put
-dup /threeeighths 16#215C put
-dup /threeinferior 16#2083 put
-dup /threeoldstyle 16#F733 put
-dup /threequarters 16#00BE put
-dup /threequartersemdash 16#F6DE put
-dup /threesuperior 16#00B3 put
-dup /tilde 16#02DC put
-dup /tildecomb 16#0303 put
-dup /tonos 16#0384 put
-dup /trademark 16#2122 put
-dup /trademarksans 16#F8EA put
-dup /trademarkserif 16#F6DB put
-dup /triagdn 16#25BC put
-dup /triaglf 16#25C4 put
-dup /triagrt 16#25BA put
-dup /triagup 16#25B2 put
-dup /tsuperior 16#F6F3 put
-dup /two 16#0032 put
-dup /twodotenleader 16#2025 put
-dup /twoinferior 16#2082 put
-dup /twooldstyle 16#F732 put
-dup /twosuperior 16#00B2 put
-dup /twothirds 16#2154 put
-dup /u 16#0075 put
-dup /uacute 16#00FA put
-dup /ubreve 16#016D put
-dup /ucircumflex 16#00FB put
-dup /udieresis 16#00FC put
-dup /ugrave 16#00F9 put
-dup /uhorn 16#01B0 put
-dup /uhungarumlaut 16#0171 put
-dup /umacron 16#016B put
-dup /underscore 16#005F put
-dup /underscoredbl 16#2017 put
-dup /union 16#222A put
-dup /universal 16#2200 put
-dup /uogonek 16#0173 put
-dup /upblock 16#2580 put
-dup /upsilon 16#03C5 put
-dup /upsilondieresis 16#03CB put
-dup /upsilondieresistonos 16#03B0 put
-dup /upsilontonos 16#03CD put
-dup /uring 16#016F put
-dup /utilde 16#0169 put
-dup /v 16#0076 put
-dup /w 16#0077 put
-dup /wacute 16#1E83 put
-dup /wcircumflex 16#0175 put
-dup /wdieresis 16#1E85 put
-dup /weierstrass 16#2118 put
-dup /wgrave 16#1E81 put
-dup /x 16#0078 put
-dup /xi 16#03BE put
-dup /y 16#0079 put
-dup /yacute 16#00FD put
-dup /ycircumflex 16#0177 put
-dup /ydieresis 16#00FF put
-dup /yen 16#00A5 put
-dup /ygrave 16#1EF3 put
-dup /z 16#007A put
-dup /zacute 16#017A put
-dup /zcaron 16#017E put
-dup /zdotaccent 16#017C put
-dup /zero 16#0030 put
-dup /zeroinferior 16#2080 put
-dup /zerooldstyle 16#F730 put
-dup /zerosuperior 16#2070 put
-dup /zeta 16#03B6 put
-def
diff --git a/Master/xemtex/gslib/gs_btokn.ps b/Master/xemtex/gslib/gs_btokn.ps
deleted file mode 100644
index 21ef12bb286..00000000000
--- a/Master/xemtex/gslib/gs_btokn.ps
+++ /dev/null
@@ -1,321 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_btokn.ps,v 1.5.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for binary tokens.
-% When this is run, systemdict is still writable,
-% but everything defined here goes into level2dict.
-
-% Define whether or not to allow writing dictionaries.
-% This is a non-standard feature!
-/WRITEDICTS false def
-
-languagelevel 1 .setlanguagelevel
-level2dict begin
-
-% Initialization for the system name table.
-
-mark
-% 0
- /abs /add /aload /anchorsearch /and
- /arc /arcn /arct /arcto /array
- /ashow /astore /awidthshow /begin /bind
- /bitshift /ceiling /charpath /clear /cleartomark
-% 20
- /clip /clippath /closepath /concat /concatmatrix
- /copy /count /counttomark /currentcmykcolor /currentdash
- /currentdict /currentfile /currentfont /currentgray /currentgstate
- /currenthsbcolor /currentlinecap /currentlinejoin /currentlinewidth /currentmatrix
-% 40
- /currentpoint /currentrgbcolor /currentshared /curveto /cvi
- /cvlit /cvn /cvr /cvrs /cvs
- /cvx /def /defineusername /dict /div
- /dtransform /dup /end /eoclip /eofill
-% 60
- /eoviewclip /eq /exch /exec /exit
- /file /fill /findfont /flattenpath /floor
- /flush /flushfile /for /forall /ge
- /get /getinterval /grestore /gsave /gstate
-% 80
- /gt /identmatrix /idiv /idtransform /if
- /ifelse /image /imagemask /index /ineofill
- /infill /initviewclip /inueofill /inufill /invertmatrix
- /itransform /known /le /length /lineto
-% 100
- /load /loop /lt /makefont /matrix
- /maxlength /mod /moveto /mul /ne
- /neg /newpath /not /null /or
- /pathbbox /pathforall /pop /print /printobject
-% 120
- /put /putinterval /rcurveto /read /readhexstring
- /readline /readstring /rectclip /rectfill /rectstroke
- /rectviewclip /repeat /restore /rlineto /rmoveto
- /roll /rotate /round /save /scale
-% 140
- /scalefont /search /selectfont /setbbox /setcachedevice
- /setcachedevice2 /setcharwidth /setcmykcolor /setdash /setfont
- /setgray /setgstate /sethsbcolor /setlinecap /setlinejoin
- /setlinewidth /setmatrix /setrgbcolor /setshared /shareddict
-% 160
- /show /showpage /stop /stopped /store
- /string /stringwidth /stroke /strokepath /sub
- /systemdict /token /transform /translate /truncate
- /type /uappend /ucache /ueofill /ufill
-% 180
- /undef /upath /userdict /ustroke /viewclip
- /viewclippath /where /widthshow /write /writehexstring
- /writeobject /writestring /wtranslation /xor /xshow
- /xyshow /yshow /FontDirectory /SharedFontDirectory /Courier
-% 200
- /Courier-Bold /Courier-BoldOblique /Courier-Oblique /Helvetica /Helvetica-Bold
- /Helvetica-BoldOblique /Helvetica-Oblique /Symbol /Times-Bold /Times-BoldItalic
- /Times-Italic /Times-Roman /execuserobject /currentcolor /currentcolorspace
- /currentglobal /execform /filter /findresource /globaldict
-% 220
- /makepattern /setcolor /setcolorspace /setglobal /setpagedevice
- /setpattern
-% pad to 256
- counttomark 256 exch sub { 0 } repeat
-% 256
- /= /== /ISOLatin1Encoding /StandardEncoding
-% 260
- ([) cvn (]) cvn /atan /banddevice /bytesavailable
- /cachestatus /closefile /colorimage /condition /copypage
- /cos /countdictstack /countexecstack /cshow /currentblackgeneration
- /currentcacheparams /currentcolorscreen /currentcolortransfer /currentcontext /currentflat
-% 280
- /currenthalftone /currenthalftonephase /currentmiterlimit /currentobjectformat /currentpacking
- /currentscreen /currentstrokeadjust /currenttransfer /currentundercolorremoval /defaultmatrix
- /definefont /deletefile /detach /deviceinfo /dictstack
- /echo /erasepage /errordict /execstack /executeonly
-% 300
- /exp /false /filenameforall /fileposition /fork
- /framedevice /grestoreall /handleerror /initclip /initgraphics
- /initmatrix /instroke /inustroke /join /kshow
- /ln /lock /log /mark /monitor
-% 320
- /noaccess /notify /nulldevice /packedarray /quit
- /rand /rcheck /readonly /realtime /renamefile
- /renderbands /resetfile /reversepath /rootfont /rrand
- /run /scheck /setblackgeneration /setcachelimit /setcacheparams
-% 340
- /setcolorscreen /setcolortransfer /setfileposition /setflat /sethalftone
- /sethalftonephase /setmiterlimit /setobjectformat /setpacking /setscreen
- /setstrokeadjust /settransfer /setucacheparams /setundercolorremoval /sin
- /sqrt /srand /stack /status /statusdict
-% 360
- /true /ucachestatus /undefinefont /usertime /ustrokepath
- /version /vmreclaim /vmstatus /wait /wcheck
- /xcheck /yield /defineuserobject /undefineuserobject /UserObjects
- /cleardictstack
-% 376
- /A /B /C /D /E /F /G /H /I /J /K /L /M
- /N /O /P /Q /R /S /T /U /V /W /X /Y /Z
- /a /b /c /d /e /f /g /h /i /j /k /l /m
- /n /o /p /q /r /s /t /u /v /w /x /y /z
-% 428
- /setvmthreshold (<<) cvn
- (>>) cvn /currentcolorrendering /currentdevparams /currentoverprint /currentpagedevice
- /currentsystemparams /currentuserparams /defineresource /findencoding /gcheck
-% 440
- /glyphshow /languagelevel /product /pstack /resourceforall
- /resourcestatus /revision /serialnumber /setcolorrendering /setdevparams
- /setoverprint /setsystemparams /setuserparams /startjob /undefineresource
- /GlobalFontDirectory /ASCII85Decode /ASCII85Encode /ASCIIHexDecode /ASCIIHexEncode
-% 460
- /CCITTFaxDecode /CCITTFaxEncode /DCTDecode /DCTEncode /LZWDecode
- /LZWEncode /NullEncode /RunLengthDecode /RunLengthEncode /SubFileDecode
- /CIEBasedA /CIEBasedABC /DeviceCMYK /DeviceGray /DeviceRGB
- /Indexed /Pattern /Separation /CIEBasedDEF /CIEBasedDEFG
-% 480
- /DeviceN
-% 481 -- end
-.packtomark
-dup /SystemNames exch def .installsystemnames
-
-% Define printobject and writeobject.
-% These are mostly implemented in PostScript, so that we don't have to
-% worry about interrupts or callbacks when writing to the output file.
-
-% Define procedures for accumulating the space required to represent
-% an object in binary form.
-/cntdict mark % <#refs> <#chars> <obj> -proc- <#refs> <#chars>
- /integertype /pop load
- /realtype 1 index
- /marktype 1 index
- /nulltype 1 index
- /booleantype 1 index
- /nametype { length add } bind
- /stringtype 1 index
- /arraytype null
- /dicttype null
-.dicttomark def
-cntdict /arraytype {
- dup length 4 -1 roll add 3 1 roll {
- dup type //cntdict exch get exec
- } forall
-} bind put
-cntdict /dicttype {
- WRITEDICTS {
- dup dup length 2 mul 5 -1 roll add 4 2 roll {
- 4 1 roll dup type //cntdict exch get exec
- 3 -1 roll dup type //cntdict exch get exec
- } forall
- } {
- /writeobject load /typecheck signalerror
- } ifelse
-} bind put
-
-/w2dict mark
- /nametype { 2 copy .writecvs pop } bind
- /stringtype 1 index
-.dicttomark def
-
-/.bosheader { % <top_length> <total_length> <string8> .bosheader
- % <string4|8>
- dup 0 currentobjectformat 127 add put % object format => BOS tag
- 2 index 255 le 2 index 65531 le and {
- % Use the short header format: tag toplen(1) totlen(2)
- exch 4 add exch
- 0 4 getinterval
- dup 1 5 -1 roll put
- } {
- % Use the long header format: tag 0(1) toplen(2) totlen(4)
- exch 8 add exch
- 0 0 4 2 roll .bosobject exch pop exch pop % store with byte swapping
- } ifelse % Stack: shortlen str
- exch dup -8 bitshift exch 255 and % str hibyte lobyte
- currentobjectformat 1 and 0 eq { % lsb first
- exch
- } if
- 2 index 3 3 -1 roll put
- 1 index 2 3 -1 roll put
-} .bind def
-
-/.writeobjects { % <file> <tag> <array> .writeobjects -
- mark exch
-
- % Count the space required for refs and strings.
-
- dup length 0 3 -1 roll
- % Stack: file tag -mark- #refs #chars array
- dup 4 1 roll {
- dup type /arraytype eq {
- % Nested array. An element of the array is also
- % an array(sub array). Push the sub array to the stack.
- dup 4 1 roll
- } if
- dup type //cntdict exch get exec
- } forall
-
- % Write the header.
-
- % Stack: file tag -mark- array1 ... array|dictN #refs #chars
- counttomark 3 add -2 roll 4 1 roll
- % Stack: -mark- array1 ... array|dictN tag #refs #chars file
- dup counttomark 1 sub index length
- 4 index 3 bitshift 4 index add
- (xxxxxxxx) .bosheader writestring
-
- % Write the objects per se.
-
- 3 1 roll pop
- counttomark 1 sub index length 3 bitshift exch
- 3 bitshift
- % Stack: -mark- array1 ... array|dictN tag file ref# char#
- counttomark 4 sub {
- counttomark -1 roll dup 6 1 roll
- dup type /dicttype eq { % can't be first object
- { 5 1 roll (xxxxxxxx) .bosobject
- 3 index exch writestring
- 4 -1 roll (xxxxxxxx) .bosobject
- 3 index exch writestring
- } forall
- } {
- { (xxxxxxxx) .bosobject
- dup 1 6 index put
- 3 index exch writestring
- 4 -1 roll pop 0 4 1 roll % clear tag
- } forall
- } ifelse
- } repeat
-
- % Write the strings and names.
-
- pop pop exch pop
- % Stack: -mark- array1 ... array|dictN file
- counttomark 1 sub {
- counttomark -1 roll {
- % The counting pass ensured that the keys and values
- % of any dictionary must be writable objects.
- % Hence, we are processing a dictionary iff
- % the next-to-top stack element is not a file.
- 1 index type /filetype ne {
- exch 2 index exch dup type //w2dict exch .knownget
- { exec } { pop } ifelse pop
- } if
- dup type //w2dict exch .knownget { exec } { pop } ifelse
- } forall
- } repeat
-
- % Clean up.
-
- % Stack: -mark- file
- pop pop
-
-} odef
-
-/printobject { % <obj> <tag> printobject -
- (%stdout) (w) file 2 index 2 index writeobject pop pop
-} odef
-/writeobject { % <file> <obj> <tag> writeobject -
- 3 copy exch
- % We must allocate the array in local VM
- % to avoid a possible invalidaccess.
- .currentglobal false .setglobal exch 1 array astore exch .setglobal
- .writeobjects pop pop pop
-} odef
-
-% Implement binary error message output.
-/.objectprinttest { % <obj> .objectprinttest -
- % This is a pseudo-operator so it will restore the stack
- % if it gets an error.
- 0 0 2 index roll dup type //cntdict exch get exec pop pop pop
-} bind odef
-/.printerror {
- $error /binary get .languagelevel 2 ge and {
- currentobjectformat 0 ne {
- [ /Error $error /errorname get $error /command get
- % Convert the object with cvs if it isn't printable.
- dup { .objectprinttest } .internalstopped {
- pop 100 string cvs
- } if
- false ] 250 printobject
- }
- //.printerror % known to be a procedure
- ifelse
- }
- //.printerror % known to be a procedure
- ifelse
-} bind def
-
-currentdict /cntdict .undef
-currentdict /w2dict .undef
-
-% End of level2dict
-
-end
-.setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_ccfnt.ps b/Master/xemtex/gslib/gs_ccfnt.ps
deleted file mode 100644
index ad92b3c7033..00000000000
--- a/Master/xemtex/gslib/gs_ccfnt.ps
+++ /dev/null
@@ -1,76 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_ccfnt.ps,v 1.5.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Find and register all the precompiled font operators in systemdict.
-
-/registerfont % <fontname> <fontdict> registerfont <font>
- { DEBUG { (Registering ) print 1 index = } if
- dup begin
- Encoding type /nametype eq
- { Encoding .findencoding /Encoding exch def
- }
- if
- dup /PrefEnc known
- { PrefEnc type /nametype eq
- { PrefEnc .findencoding /PrefEnc exch def
- }
- if
- }
- if
- dup /FDepVector known
- { /FDepVector [ FDepVector
- { .FontDirectory 1 index .knownget
- { exch pop }
- { ccfonts 1 index .knownget
- { registerfont
- }
- { Fontmap 1 index known
- { findfont }
- { pop NullFont }
- ifelse
- }
- ifelse
- }
- ifelse
- }
- forall ] readonly def
- }
- if
- end
- % Use the value of definefont appropriate at run-time, not bind-time
- /definefont load exec
- } bind odef
-% Bind recursive call (bind descends into oparrays: feature!)
-/registerfont dup load bind def
-
-/.loadinitialfonts {
- //.loadinitialfonts exec
- NOCCFONTS not {
- /ccfonts mark
- 0 1 null .getccfont 1 sub { .getccfont dup /FontName get exch } for
- .dicttomark def
- % Make sure these fonts are registered as "resources".
- currentfile {
- pop ccfonts {
- .FontDirectory 2 index known { pop pop } { registerfont pop } ifelse
- } forall
- } .execasresource
- currentdict /ccfonts .undef
- } if
-} bind def
-
-currentdict /registerfont .undef
diff --git a/Master/xemtex/gslib/gs_ce_e.ps b/Master/xemtex/gslib/gs_ce_e.ps
deleted file mode 100644
index 0708f1e68e2..00000000000
--- a/Master/xemtex/gslib/gs_ce_e.ps
+++ /dev/null
@@ -1,48 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_ce_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Adobe CE (Central European) encoding vector.
-% We define it by differences from the ISOLatin1Encoding vector.
-/CEEncoding
-ISOLatin1Encoding 0 39 getinterval aload pop
-% 047
- /quotesingle
-ISOLatin1Encoding 40 56 getinterval aload pop
-% 140
- /grave
-ISOLatin1Encoding 97 31 getinterval aload pop
-% 20x
- /.notdef /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
- /.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute
- /.notdef /grave /acute /circumflex /tilde /bullet /endash /emdash
- /.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute
-% 24x
- /space /caron /breve /Lslash /currency /Aogonek /brokenbar /section
- /dieresis /copyright /Scommaaccent /guillemotleft /logicalnot /hyphen /registered /Zdotaccent
- /degree /plusminus /ogonek /lslash /acute /mu /paragraph /periodcentered
- /cedilla /aogonek /scommaaccent /guillemotright /Lcaron /hungarumlaut /lcaron /zdotaccent
-% 30x
- /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
- /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
- /Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
- /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcommaaccent /germandbls
-% 34x
- /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
- /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
- /dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
- /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcommaaccent /dotaccent
-256 packedarray .defineencoding
diff --git a/Master/xemtex/gslib/gs_cff.ps b/Master/xemtex/gslib/gs_cff.ps
deleted file mode 100644
index 2b9b510e7c7..00000000000
--- a/Master/xemtex/gslib/gs_cff.ps
+++ /dev/null
@@ -1,758 +0,0 @@
-% Copyright (C) 1997, 1998, 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_cff.ps,v 1.10.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Loader for CFF (compressed) fonts, including OpenType CFFs.
-% The following are not implemented yet:
-% Deleted entries in the Name Index
-% Embedded PostScript
-% Multiple Master fonts
-% Chameleon fonts
-% Synthetic fonts
-
-% ---------------- Font loading machinery ---------------- %
-
-% Augment the FONTPATH machinery so it recognizes OpenType CFF font sets.
-
-/.scanfontheaders where {
- pop /.scanfontheaders [
- .scanfontheaders aload pop (OTTO*)
- ] def
-} if
-
-% Load a font file that might be an OpenType CFF font set.
-
-% <file> .loadfontfile -
-/.loadnonottofontfile /.loadfontfile load def
-/.loadfontfile {
- dup 4 string .peekstring pop (OTTO) eq {
- % If this is a font at all, it's an OpenType CFF font set.
- .loadottofontfile
- } {
- % Not a TrueType font.
- .loadnonottofontfile
- } ifelse
-} bind def
-
-% <file> .loadottofontfile -
-/.loadottofontfile {
- /FontSetInit /ProcSet findresource begin
- 2 dict begin
- /f exch def /cff null def
- card32 pop card16 6 { next pop } repeat dup {
- % Stack: numtables tablesleft
- dup 0 eq {
- pop pop /.loadottofontfile cvx /invalidfont signalerror
- } if
- f 4 string readstring pop (CFF ) eq { sub exit } if
- 1 sub
- } loop
- % Stack: tablesread
- card32 pop card32 card32
- % Stack: tablesread start length
- exch 3 -1 roll 1 add 16 mul 12 add sub
- f exch subfilefilter flushfile % skip to start
- f exch subfilefilter end
- % Use a random FontSet resource name. ****** WRONG ******
- realtime rand xor =string cvs exch false
- ReadData
-} bind def
-
-30 dict begin
-
-% ---------------- Standard strings (actually names) ---------------- %
-
-/StandardStrings mark
- % The initial StandardStrings that that denote characters are
- % defined as a pseudo-Encoding.
-% 0
- /CFFStandardStrings .findencoding aload pop
-% 379
- (001.000)
-% 380
- (001.001) (001.002) (001.003) /Black /Bold
- /Book /Light /Medium /Regular /Roman
- /Semibold
-.packtomark def
-
-% ---------------- Standard encodings ---------------- %
-
-/StandardEncodings [
-
-% StandardEncoding
-mark
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
- 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
- 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
- 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
- 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
- 0 111 112 113 114 0 115 116 117 118 119 120 121 122 0 123
- 0 124 125 126 127 128 129 130 131 0 132 133 0 134 135 136
- 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 138 0 139 0 0 0 0 140 141 142 143 0 0 0 0
- 0 144 0 0 0 145 0 0 146 147 148 149 0 0 0 0
-.packtomark
-
-% ExpertEncoding
-mark
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 1 229 230 0 231 232 233 234 235 236 237 238 13 14 15 99
- 239 240 241 242 243 244 245 246 247 248 27 28 249 250 251 252
- 0 253 254 255 256 257 0 0 0 258 0 0 259 260 261 262
- 0 0 263 264 265 0 266 109 110 267 268 269 0 270 271 272
- 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
- 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 304 305 306 0 0 307 308 309 310 311 0 312 0 0 313
- 0 0 314 315 0 0 316 317 318 0 0 0 158 155 163 319
- 320 321 322 323 324 325 0 0 326 150 164 169 327 328 329 330
- 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
- 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362
- 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
-.packtomark
-
-] readonly def
-
-% ---------------- Standard Charsets ---------------- %
-
-% We include an explicit 0 at the beginning of each charset.
-
-/StandardCharsets [
-
-% ISOAdobe
-mark
- 0
- 1 1 228 { } for
-.packtomark
-
-% Expert
-mark
- 0
- 1 229 230 231 232 233 234 235 236 237 238 13 14 15 99 239
- 240 241 242 243 244 245 246 247 248 27 28 249 250 251 252 253
- 254 255 256 257 258 259 260 261 262 263 264 265 266 109 110 267
- 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
- 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299
- 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315
- 316 317 318 158 155 163 319 320 321 322 323 324 325 326 150 164
- 169 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
- 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
- 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
- 374 375 376 377 378
-.packtomark
-
-% ExpertSubset
-mark
- 0
- 1 231 232 235 236 237 238 13 14 15 99 239 240 241 242 243
- 244 245 246 247 248 27 28 249 250 251 253 254 255 256 257 258
- 259 260 261 262 263 264 265 266 109 110 267 268 269 270 272 300
- 301 302 305 314 315 158 155 163 320 321 322 323 324 325 326 150
- 164 169 327 328 329 330 331 332 333 334 335 336 337 338 339 340
- 341 342 343 344 345 346
-.packtomark
-
-] readonly def
-
-% ---------------- Font loading ---------------- %
-
-% ------ Utilities ------ %
-
-/advance { % <n> advance -
- f cff eq { pos add /pos exch store } { pop } ifelse
-} bind def
-/next { % - next <byte>
- f read {
- 1 advance
- DEBUG { ( ) print dup = } if
- } if
-} bind def
-/next2 { % - next2 <byte1> <byte2>
- f read {
- f read {
- 2 advance
- DEBUG { ( ) print 1 index =only (,) print dup = } if
- } {
- 1 advance
- DEBUG { ( ) print dup = } if
- } ifelse
- } if
-} bind def
-/nextstring { % <length> nextstring <string>
- dup 0 eq {
- pop ()
- } {
- string f exch readstring pop dup length advance
- DEBUG { ( ) print dup == } if
- } ifelse
-} bind def
-/card8 % - card8 <card8>
- /next load
-def
-/card16 { % - card16 <card16>
- next2 exch 8 bitshift add
-} bind def
-/card32 { % - card32 <card32>
- card16 16 bitshift card16 add
-} bind def
-/offsetprocs [
- /card8 load
- /card16 load
- { card8 16 bitshift card16 add } bind
- /card32 load
-] readonly def
-/offsetproc { % <offsize> offsetproc <proc>
- 1 sub //offsetprocs exch get
-} bind def
-/offset { % <offsize> offset <offset>
- offsetproc exec
-} bind def
-/sid % - <sid> sid
- /card16 load
-def
-/Index { % - Index <array>
- mark card16 dup 0 ne {
- 1 exch next offsetproc dup exec pop exch {
- dup exec dup 4 -1 roll sub 3 1 roll exch
- } repeat pop
- } if pop .packtomark
- [ exch { nextstring } forall ] readonly
-} bind def
-/tokens { % - tokens <num1> ... <op#> (op# = 12 means EOF)
- {
- f read not { 12 exit } if
- DEBUG { (..) print dup = } if
- 1 advance
- dup 12 eq { pop next 32 add exit } if
- dup 28 lt { exit } if
- dup 32 lt {
- 28 sub {
- { card16 32768 xor 32768 sub }
- { 4 offset dup 16#7fffffff gt { -1 32 bitshift add } if }
- { tokenreal }
- { 31 exit }
- } exch get exec
- } {
- dup 247 lt {
- 139 sub
- } {
- 247 sub {
- { next 108 add }
- { next 364 add }
- { next 620 add }
- { next 876 add }
- { next 108 add neg }
- { next 364 add neg }
- { next 620 add neg }
- { next 876 add neg }
- % 255 is deliberately omitted and will cause a rangecheck
- } exch get exec
- } ifelse
- } ifelse
- } loop
-} bind def
-/tokenbuf 100 string def
-/tokenput { % <index> <char> tokenput <index+1>
- tokenbuf 2 index 3 -1 roll put 1 add
-} bind def
-/tokenrealarray [
- (0123456789.E) { } forall
- [(E) 0 get /tokenput cvx (-) 0 get] cvx
- null % will give an error
- (-) 0 get
- { exit }
-] readonly def
-/tokenreal { % - tokenreal <float>
- 0 {
- next exch 1 index -4 bitshift tokenrealarray exch get exec tokenput
- % We must leave the byte on the stack temporarily so that
- % the exit will see a consistent stack state.
- 1 index 15 and tokenrealarray exch get exec tokenput exch pop
- } loop
- tokenbuf 0 3 -1 roll getinterval cvr exch pop
-} bind def
-/Dict { % <opsdict> Dict -
- /opdict exch store {
- mark tokens
- DEBUG { (tokens: ) print ] dup === mark exch aload pop } if
- opdict exch .knownget { exec } if cleartomark
- } loop cleartomark
-} bind def
-/idstring { % <sid> idstring <string|name>
- dup 391 lt { //StandardStrings } { 391 sub strings } ifelse exch get
-} bind def
-/idname { % <sid> idname <name>
- idstring dup type /nametype ne { cvn } if
-} bind def
-/subfilefilter { % <file> <length> subfilefilter <filter>
- % SubFileDecode interprets a length of 0 as infinite.
- dup 0 le { pop pop () 0 } if () /SubFileDecode filter
-} bind def
-
-% ------ Top dictionary ------ %
-
-/offput { % <offset> <proc> offput -
- DEBUG { (queued: ) print 1 index =only ( ) print dup === } if
- currentdict exch aload length 1 add packedarray cvx
- offsets 3 1 roll put
-} bind def
-/queueput { % <font> <proc> queueput -
- 16#7fffffff offsets { pop .min } forall
- pos sub nextstring
- 3 1 roll aload length 2 add packedarray cvx
- [ queued aload pop counttomark 2 add -1 roll ]
- /queued exch store
-} bind def
-/xxput { % <value> <key> <dict> xxput -
- 3 1 roll exch put
-} bind def
-/putfi { % <value> <key> putfi -
- FontInfo xxput
-} bind def
-/xdef { % <value> <key> xdef -
- exch def
-} bind def
-/topdictops mark
- 12 { exit }
- 0 { idstring /version putfi }
- 1 { idstring /Notice putfi }
- 32 { idstring /Copyright putfi }
- 2 { idstring /FullName putfi }
- 3 { idstring /FamilyName putfi }
- 4 { idstring /Weight putfi }
- 33 { 0 ne /isFixedPitch putfi }
- 34 { /ItalicAngle putfi }
- 35 { /UnderlinePosition putfi }
- 36 { /UnderlineThickness putfi }
- 37 { /PaintType xdef }
- 38 { /FontType xdef } % actually CharstringType
- 39 { counttomark array astore /FontMatrix xdef }
- 13 { /UniqueID xdef }
- 5 { counttomark array astore /FontBBox xdef }
- 40 { /StrokeWidth xdef }
- 14 { counttomark array astore /XUID xdef }
- 15 {
- dup StandardCharsets length lt {
- StandardCharsets exch get /charset xdef
- } {
- { queuecharset } offput
- } ifelse
- }
- 16 {
- dup StandardEncodings length lt {
- /Encoding xdef
- } {
- { queueEncoding } offput
- } ifelse
- }
- 17 { { readCharStrings } offput }
- 18 { exch /readPrivate cvx 2 packedarray offput }
- % CIDFont operators
- 62 { % ROS, must be first in a CIDFont
- currentdict /FontType undef
- currentdict /Encoding undef
- currentdict /FontMatrix undef
- /CIDFontVersion 0 def
- /CIDFontRevision 0 def
- /CIDFontType 0 def
- /CIDCount 8720 def % Default value defined in CFF spec.
- 3 dict begin
- /Supplement xdef
- idstring /Ordering xdef
- idstring /Registry xdef
- /CIDSystemInfo currentdict end def
- }
- 63 { /CIDFontVersion xdef }
- 64 { /CIDFontRevision xdef }
- 65 { /CIDFontType xdef }
- 66 { /CIDCount xdef }
- 67 { /UIDBase xdef }
- 68 { { readFDArray } offput }
- 69 { { readFDSelect } offput }
- % This operator only appears in a FDArray element.
- 70 { idstring /FontName exch def }
-.dicttomark readonly def
-
-% readcharset and readFDSelect may require the length of CharStringArray,
-% but these structures may occur in the file before the CharStrings.
-% If that happens, use a hack: assume that all the data up to the next
-% queued read should be read.
-
-/charstringcount { % <font> charstringcount <count> true
- % <font> charstringcount <length> false
- /CharStringArray .knownget {
- length true
- } {
- % Hack: look for the next queued read.
- 16#7fffffff offsets { pop .min } forall
- pos sub false
- } ifelse
-} bind def
-
-/readCharStrings { % <font> readCharStrings -
- /CharStringArray Index put
-} bind def
-
-% ------ Charsets and encodings ------ %
-
-% Note: formats 1 and 2 can overflow the operand stack.
-% We'll fix this if it ever becomes necessary.
-/charsetcount {
- charstringcount { 1 sub } { 2 idiv } ifelse
-} bind def
-/charsetformats [
-{ [ 0 3 -1 roll charsetcount { sid } repeat ]
-} bind
-{ [ 0 3 -1 roll charsetcount {
- dup 0 eq { pop exit } if
- sid card8 1 add 2 index .min { exch 1 sub 1 index 1 add } repeat pop
- } loop ]
-} bind
-{ [ 0 3 -1 roll charsetcount {
- dup 0 eq { pop exit } if
- sid card16 1 add 2 index .min { exch 1 sub 1 index 1 add } repeat pop
- } loop ]
-} bind
-] readonly def
-/queuecharset { % <font> queuecharset -
- { readcharset } queueput
-} bind def
-/readcharset { % <data> <font> readcharset -
- begin 0 () /SubFileDecode filter /f exch store
- charsetformats next get currentdict exch exec /charset exch def end
-} bind def
-
-/encodingformats [
-{ 1 1 next { next exch Encoding 3 1 roll put } for
-} bind
-{ 1 next {
- next next 1 add {
- % Stack: gid code
- Encoding 1 index 3 index put
- exch 1 add exch 1 add
- } repeat pop
- } repeat pop
-} bind
-] readonly def
-/queueEncoding { % <font> queueEncoding -
- { readEncoding } queueput
-} bind def
-/readEncoding { % <data> <font> readEncoding -
- begin 0 () /SubFileDecode filter /f exch store
- /Encoding [ 256 { /.notdef } repeat ] def
- next encodingformats 1 index 127 and get exec
- 128 ge {
- % Read supplementary encodings.
- next {
- Encoding next sid idname put
- } repeat
- } if end
-} bind def
-
-% ------ FDArray and FDSelect ------ %
-
-/readFDArray { % <font> readFDArray -
- Index exch
- 2 dict begin /f null def begin
- [ exch {
- dup length subfilefilter /f exch store
- 10 dict begin
- /FontType 2 def
- /PaintType 0 def
- /FontMatrix [0.001 0 0 0.001 0 0] def
- /Private 20 dict def
- //topdictops Dict currentdict end
- } forall ] /FDArray xdef end end
-} bind def
-
-% Note: this implementation can overflow the operand stack.
-% We'll fix this if it ever becomes necessary.
-/fdselectformats [
-{ [ exch charstringcount pop { card8 } repeat ] } bind
-{ /FDSelect cvx /invalidfont signalerror } bind
-dup
-{ pop [ card16 card16 exch {
- % Stack: previndex
- card8 card16 dup 4 1 roll 3 -1 roll sub 1 sub {
- exch 1 index
- } repeat exch
- } repeat pop ]
-} bind
-] readonly def
-
-/readFDSelect { % <font> readFDSelect -
- begin fdselectformats next get currentdict exch exec /FDSelect exch def end
-} bind def
-
-
-% ------ Private dictionary ------ %
-
-/deltarray { % -mark- <num1> ... deltarray <num1'> ...
- 0 counttomark 1 sub { counttomark -1 roll add dup } repeat pop
- counttomark array astore
-} bind def
-
-/privatedictops mark
- 12 { exit }
- 6 { deltarray /BlueValues xdef }
- 7 { deltarray /OtherBlues xdef }
- 8 { deltarray /FamilyBlues xdef }
- 9 { deltarray /FamilyOtherBlues xdef }
- 41 { /BlueScale xdef }
- 42 { /BlueShift xdef }
- 43 { /BlueFuzz xdef }
- 10 { 1 array astore /StdHW xdef }
- 11 { 1 array astore /StdVW xdef }
- 44 { deltarray /StemSnapH xdef }
- 45 { deltarray /StemSnapV xdef }
- 46 { 0 ne /ForceBold xdef }
- 47 { /ForceBoldThreshold xdef }
- 48 { /lenIV xdef }
- 49 { /LanguageGroup xdef }
- 50 { /ExpansionFactor xdef }
- 51 { /initialRandomSeed xdef }
- 19 { PrivateStart add { readSubrs } offput }
- 20 { /defaultWidthX xdef }
- 21 { /nominalWidthX xdef }
- % Multiple Master fonts only
- 59 { /NDV xdef }
- 60 { /CDV xdef }
- 61 { /lenBuildCharArray xdef }
-.dicttomark readonly def
-
-/readPrivate { % <font> <size> readPrivate -
- 2 dict begin
- /PrivateStart pos def
- f 3 1 roll exch 1 index f exch subfilefilter /f exch store
- dup /FontType get exch
- /Private get begin
- % Default lenIV to -1 even for Type 1 CharStrings.
- 2 ne { /lenIV -1 def } if
- //privatedictops Dict end
- exch /f exch store advance
- end
-} bind def
-
-/readSubrs { % <font> readSubrs -
- /Subrs Index put
-} bind def
-
-% ------ Main program ------ %
-
-% Clean up after finishing a font.
-/cleanupFont { % (currentdict) cleanupFont -
- % Remove unwanted entries.
- currentdict /charset undef
- currentdict /CharStringArray undef
-} bind def
-
-% Update the Encoding and CharStrings for a real font.
-/finishFont { % (currentdict) finishFont -
- % Construct the real Encoding.
- % The value of Encoding is either a number, for predefined
- % encodings, or an array of mixed GIDs and names.
- /Encoding mark Encoding
- DEBUG { (Encoding: ) print dup === flush } if
- dup type /integertype eq {
- StandardEncodings exch get { idname } forall
- } {
- {
- dup type /integertype eq { charset exch get idname } if
- } forall
- } ifelse .packtomark def
- % Construct the CharStrings.
- % Note that they may only correspond to an initial
- % subset of the charset.
- /CharStrings charset length CharStringArray length .min dict def
- DEBUG {
- charset length =only ( charset ) print
- CharStringArray length =only ( CharStringArray) =
- charset == flush
- } if
- 0 1 CharStrings maxlength 1 sub {
- dup CharStringArray exch get
- exch charset exch get idstring CharStrings xxput
- } for
- cleanupFont
-} bind def
-
-% Replace CharStrings with GlyphDirectory for a CIDFont;
-% Move GlobalSubrs to descendent fonts.
-/finishCIDFont { % (currentdict) finishCIDFont -
- % Construct the GlyphDirectory, similar to CharStrings.
- /FDBytes FDArray length 1 gt { 1 } { 0 } ifelse def
- /GlyphDirectory charset length CharStringArray length .min dict def
- DEBUG {
- charset length =only ( charset ) print
- CharStringArray length =only ( CharStringArray) =
- charset == flush
- } if
- 0 1 GlyphDirectory maxlength 1 sub {
- dup CharStringArray exch get
- % If there is more than one FDArray entry, add the font
- % index to the beginning of each charstring.
- FDBytes 1 eq {
- FDSelect 2 index get
- 1 string dup 0 4 -1 roll put exch concatstrings
- } if
- exch charset exch get GlyphDirectory xxput
- } for
-
- Private /GlobalSubrs .knownget {
- FDArray {
- /Private get /GlobalSubrs 2 index put
- } forall
- pop
- Private /GlobalSubrs undef
- } if
-
- % Clean up.
- currentdict /FDSelect undef
- cleanupFont
-} bind def
-% We need to pass the file as a parameter for the sake of the PDF
-% interpreter. Also for the sake of PDF, a flag forces the font
-% to be defined as <resname> instead of the name embedded in the data.
-% This is needed for subsetted fonts; it is valid if the CFF
-% contains only a single font.
-/StartData { % <resname> <nbytes> StartData -
- currentfile exch subfilefilter false ReadData
-} bind def
-/ReadData { % <resname> <file> <forceresname> ReadData -
-
- % Initialize.
-
- 30 dict begin
- /forceresname exch def
- /cff exch def
- /pos 0 def
- /resname exch cvlit def
- /DEBUG DEBUG def % bring the binding closer
-
- % Read the header.
-
- /f cff def
- /vmajor next def
- /vminor next def
- /hdrsize next def
- /aoffsize next def
-
- % Read the Indexes.
-
- /names Index def
- /topdicts Index def
- /strings Index def
- /gsubrs Index def
-
- % Read the top Dicts.
-
- /offsets 50 dict def
- /queued [] def
- /opdict null def % reserve a slot
- /fonts [ topdicts {
- 0 () /SubFileDecode filter /f exch def
- 40 dict begin
- % Preload defaults that differ from PostScript defaults,
- % or that are required.
- /FontType 2 def
- /PaintType 0 def
- /FontMatrix [0.001 0 0 0.001 0 0] def
- /charset StandardCharsets 0 get def
- /Encoding 0 def
- /FontInfo 10 dict
- dup /UnderlinePosition -100 put
- dup /UnderlineThickness 50 put
- def
- /Private 20 dict
- gsubrs length 0 ne { dup /GlobalSubrs gsubrs put } if
- def
- //topdictops Dict
- currentdict end
- } forall ] def
-
- % Read other tables with queued offsets.
-
- DEBUG { (offsets: ) print [ offsets { pop } forall ] == } if
- { /f cff def
- DEBUG { (pos=) print pos = } if
- offsets pos 2 copy .knownget not { pop pop exit } if
- 3 1 roll undef
- DEBUG { (exec queued: ) print dup == } if
- exec
- } loop
- offsets length 0 ne {
- (Error: missing tables at ) print [ offsets { pop } forall ] ==
- (Current position is ) print pos ==
- flush stop
- } if
-
- % Process out-of-order tables.
-
- DEBUG { queued length =only ( queued) = flush } if
- queued { exec } forall
-
- % Update Encoding and CharStrings.
-
- fonts {
- begin
- currentdict /CIDFontType known { finishCIDFont } { finishFont } ifelse
- end
- } forall
-
- % Wrap up.
-
- resname mark 0 1 fonts length 1 sub {
- DEBUG { dup =only ( ) print flush } if
- dup names exch get
- forceresname { pop resname } if
- DEBUG { dup == flush } if
- exch fonts exch get
- dup /CIDFontType known {
- % This is a CIDFont.
- dup /CIDFontName 3 index put
- 1 index exch /CIDFont defineresource
- } {
- % This is a font.
- dup /FontName 3 index put
- 1 index exch definefont
- } ifelse
- } for .dicttomark
- end % temporary dict
- end % FontSetInit ProcSet
- /FontSet defineresource pop
-
-} bind def
-
-% ---------------- Resource category definition ---------------- %
-
-currentdict end readonly
-
-languagelevel exch 2 .setlanguagelevel
-
-/FontSet /Generic /Category findresource dup length dict .copydict
-/Category defineresource pop
-
-/FontSetInit exch /ProcSet defineresource pop
-
-.setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_cidcm.ps b/Master/xemtex/gslib/gs_cidcm.ps
deleted file mode 100644
index b965e5cbe33..00000000000
--- a/Master/xemtex/gslib/gs_cidcm.ps
+++ /dev/null
@@ -1,511 +0,0 @@
-% Copyright (C) 2000 artofcode LLC. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_cidcm.ps,v 1.5.2.2.2.1 2003/04/12 14:02:38 giles Exp $
-% Extending Font resource category with CIDFont-CMap fonts.
-
-languagelevel 2 .setlanguagelevel currentglobal true setglobal
-
-
-% In the comments below, 'CSI' is an abbreviation/acronym for CIDSystemInfo.
-% We pre-scan resource files to retrieve the CSI from them.
-% First we define a hidden procset .prs_dict containing
-% necessary variables and procedures.
-% Then we redefine the old /Font category using this procset.
-
-% We maintain internal caches for the CSI values retrieved from
-% resource files. This supposes that document doesn't uninstall
-% resource files. To disable caching, set enable_cache to false.
-
-% We suppose that names starting with '.prs' do not appear in resource files.
-% If this causes any problem, this prefix should be systematically changed
-% in this file. ('prs' is an abbreviation for 'prescan'.)
-
-25 dict begin
-
-% Define local variables :
-
-/.prs_dict currentdict def % self-reference (constant)
-/.prs_empty 0 dict readonly def
-/path_buffer 255 string def
-/name_buffer 255 string def
-/minus (-) 0 get def % character code constant for '-'
-/period (.) 0 get def % character code constant for '.'
-/CMap 10 dict def % CSI cache for CMaps
-/CIDFont 10 dict def % CSI cache for CIDFonts
-/enable_cache true def % set false to disable cache
-
-% The folloving variables are just placeholders for ones to be set
-% dynamically :
-/.prsFile 0 def % file to prescan
-/.prsResult 0 def % result of prescan
-/.prsDictCount 0 def % save the dictionary stack depth
-
-% Define a dummy CIDInit procset to use while pre-scanning :
-
-/DummyCIDInit 15 dict
-begin
-
- /begincmap {} def
- /usecmap {pop} bind def
-
- {stop} bind
- [ /begincodespacerange /endcodespacerange /beginnotdefchar /endnotdefchar
- /beginnotdefrange /endnotdefrange /begincidchar /endcidchar /begincidrange
- /endcidrange /endcmap /usefont /StartData
- ] {
- 1 index def
- } bind forall
- pop
-
-currentdict end def
-
-% Define a local 'findresource' for pre-scanning :
-% (it returns the dummy CIDInit instead of the regular CIDInit ProcSet)
-
-/findresource { % <InstName> <CatName> findresource <inst>
- 2 copy /ProcSet eq exch % /InstName /CatName bool /InstName
- /CIDInit eq and {
- pop pop //DummyCIDInit
- } {
- //findresource exec
- } ifelse
-} bind def
-
-% Define procedures for pre-scanning :
-
-/StopIfCSIDefined { % - StopIfCSIDefined -
-
- % Check if the dictionary stack contains a dictionary containing /CIDSystemInfo.
- % The search is limited to the top .prsDictCount dictionaries in the stack.
- % If so, retrieve the CSI, and execute stop to terminate the pre-scanning of the file.
- % Otherwise, do nothing, so the pre-scanning continues.
-
- countdictstack //.prs_dict /.prsDictCount get sub dup {
- currentdict /CIDSystemInfo .knownget {
- //.prs_dict exch /.prsResult exch put
- stop
- } if
- currentdict exch end
- } repeat {
- begin
- } repeat
-} bind def
-
-/PrescanFile { % - PrescanFile -
- { //.prs_dict /.prsFile get token {
- dup type % token type
- dup /nametype eq exch /operatortype eq or {
- dup xcheck {
- exec
- //StopIfCSIDefined exec
- } if
- } if
- } {
- stop
- } ifelse
- } loop
-} bind odef
-
-/GetCIDSystemInfoFromFile { % <file> GetCIDSystemInfoFromFile <CSI>
-
- % This procedure reads resource files with 'token',
- % executing the tokens untill /CIDSystemInfo appears to be defined.
- % Normally the resource file creates a new dictionary on
- % dictionary stack and defines /CIDSystemInfo in it.
- %
- % Returns an empty dictionary if no CIDSystemInfo is found.
-
- //.prs_dict begin
- /.prsFile exch def
- /.prsResult //.prs_empty def
- /.prsDictCount countdictstack def
- { //PrescanFile } stopped pop
- //.prs_dict /.prsResult get
- end
-} bind def
-
-/GetCIDSystemInfo { % <InstName> <CatName> GetCIDSystemInfo <CSI>
-
- % Retrieve CSI, using caches.
-
- 2 copy resourcestatus {
- pop 2 lt {
- findresource /CIDSystemInfo .knownget not {
- //.prs_empty
- } if
- } {
- dup //.prs_dict exch get % /InstName /CatName CSIs
- dup 3 index known
- //enable_cache and {
- exch pop exch get % CSI
- } {
- 3 1 roll % CSIs /InstName /CatName
- /Category findresource begin % CSIs /InstName
- dup //path_buffer ResourceFileName % CSIs /InstName (path)
- end
- currentglobal exch true setglobal % CSIs /InstName g
- mark exch % CSIs /InstName g [ (path)
- { (r) file % CSIs /InstName g [ file
- //GetCIDSystemInfoFromFile exec % CSIs /InstName g [ CSI
- } stopped {
- % Cannot find file from Resource directory
- cleartomark
- % Try to find file from CIDFontmap
- % Stack: CSIs /InstName g
- 1 index dup .CIDFontmapKnownget {
- % Stack: CSIs /InstName g /InstName ValueInCIDFontmap
- % We do look at CIDFontmap in global space.
- % (When stopped, the space is set to local.)
- true setglobal
- 1 index 3 1 roll
- .CIDFontmapRunHandler
- /CIDFont findresource /CIDSystemInfo get
- } {
- pop //.prs_empty
- } ifelse
- } {
- exch pop
- } ifelse % CSIs /InstName g CSI
- exch setglobal % CSIs /InstName CSI
- dup 4 1 roll % CSI CSIs /InstName CSI
- put % CSI
- } ifelse
- } ifelse
- } {
- pop pop //.prs_empty
- } ifelse
-} bind def
-
-/IsCompatibleCSI { % <CSI-M> <CSI-F> IsCompatibleCSI <bool>
-
- % The CSI in a CIDFont may be an array, a dict, or null.
- % If it is an array, it must be of 1 element, which is a dict.
- % In this case the dict is used for testing the compatibility.
- % Two dicts are compatible iff they contain same /Ordering and /Registry.
-
- exch % CSI-F CSI-M
- { dup type /arraytype eq {
- dup length 1 ne {
- pop pop false exit
- } if
- 0 get
- } if % CSI-F CSI-M
- dup type /dicttype ne {
- pop pop false exit
- } if % CSI-F <<CSI-M>>
- exch % <<CSI-M>> CSI-F
- dup type /dicttype ne {
- pop pop false exit
- } if % <<CSI-M>> <<CSI-F>>
- true % <<CSI-M>> <<CSI-F>> bEQ
- [/Registry /Ordering] {
- 2 index 1 index .knownget not {
- 1234567
- } if % <<CSI-M>> <<CSI-F>> bEQ /key vF
- exch % <<CSI-M>> <<CSI-F>> bEQ vF /key
- 4 index exch .knownget not {
- 7654321
- } if % <<CSI-M>> <<CSI-F>> bEQ vF vM
- eq and % <<CSI-M>> <<CSI-F>> bEQ
- } forall
- exch pop exch pop % bEQ
- exit
- } loop
-} bind def
-
-/IsComposedOK { % <CIDFontName> <CMapName> IsComposedOK <bool>
-
- % Check if the given CIDFont and CMap have compatible CSIs.
-
- exch % /CMapName /CIDFontName
- /CIDFont //GetCIDSystemInfo exec % /CMapName CSI-F
- dup type /dicttype eq {
- dup length 0 ne {
- exch % CSI-F /CMapName
- /CMap //GetCIDSystemInfo exec % CSI-F CSI-M
- //IsCompatibleCSI exec % bool
- } {
- pop pop false
- } ifelse
- } {
- pop pop false
- } ifelse
-} bind def
-
-/IsComposedFont { % <FontName> IsComposedFont <CIDFontName> <CMapName> true
- % <FontName> IsComposedFont false
-
- % Check if the given font name may be decomposed into CIDFont.CMap, CIDFont-CMap
- % or into CIDFont--CMap, such that CIDFont and CMap have compatible CSIs.
- % FontName
- dup type /stringtype ne {
- //name_buffer cvs
- } if % (FontName)
- { dup length 2 sub -1 1 {
- % (FontName) i
- 2 copy get dup //minus eq exch //period eq or {
- 2 copy 2 copy % (FontName) i (FontName) i (FontName) i
- 2 copy get //minus eq {
- 2 copy 1 sub get //minus eq {
- 1 sub
- } if
- } if % (FontName) i (FontName) i (FontName) i0
- 0 exch getinterval cvn % (FontName) i (FontName) i /CIDFontName
- 3 1 roll % (FontName) i /CIDFontName (FontName) i
- 1 add dup % (FontName) i /CIDFontName (FontName) i1 i1
- 5 index length % (FontName) i /CIDFontName (FontName) i1 i1 l
- exch sub getinterval cvn % (FontName) i /CIDFontName /CMapName
- 2 copy //IsComposedOK exec { % (FontName) i /CIDFontName /CMapName
- 4 2 roll pop pop % /CIDFontName /CMapName
- stop
- } if
- pop pop pop
- } {
- pop
- } ifelse % (FontName)
- } for
- pop
- } stopped
-} bind def
-
-/ComposeName { % <CIDFont> <CMap> <scr> ComposeName <CIDFont-CMap>
- dup dup 5 2 roll % (scr) (scr) /CIDFont /CMap (scr)
- 3 2 roll exch cvs length dup % (scr) (scr) /CMap l0 l0
- 4 -1 roll exch //minus put % (scr) /CMap l0
- 1 add dup % (scr) /CMap l1 l1
- 3 index dup length % (scr) /CMap l1 l1 (scr) L
- 2 index sub % (scr) /CMap l1 l1 (scr) LT
- 3 2 roll % (scr) /CMap l1 (scr) LT l1
- exch getinterval % (scr) /CMap l1 (scrT)
- 3 2 roll exch cvs length % (scr) l1 l2
- add 0 exch getinterval % (CIDFont-CMap)
-} bind def
-
-
-% Define a few procedure templates to be modified dynamically :
-
-currentpacking false setpacking
-
-/BindAux { % <proc> BindAux <proc>
- 0 exec
-} bind def
-
-/EnumerateFontNames { % - EnumerateFontNames ...
-
- % This is a pattern for enumeration procedure to be built dynamically,
- % using Bind with a temporary dictionary.
- % The following names will be replaced with specific objects
- % during Bind : en_local_dict, scr, proc, Fonts, Category .
-
- end % Category
- {
- 0 1 2 {
- en_local_dict exch /status exch put
- Fonts {
- en_local_dict /status get eq {
- scr cvs % ... (Font)
- proc exec %
- } {
- pop
- } ifelse % ...
- } forall
- } for % ...
- } stopped
- Category begin
- { stop } if
-} bind def
-
-setpacking
-
-/Bind { % <proc> Bind <proc>
-
- % Make a copy of the given procedure, binding in the values of all names
- % defined in currentdict.
- % Caution : this code cannot handle procedures that were already
- % bound recursively.
-
- dup length array copy
- dup length 1 sub -1 0 {
- 2 copy get % {precopy} i {elem}
- dup dup type /arraytype eq exch xcheck and {
- % {precopy} i {elem}
- //BindAux exec % {precopy} i {elem_copy}
- 2 index 3 1 roll put % {precopy}
- } {
- dup dup type /nametype eq exch xcheck and {
- % {precopy} i {elem}
- currentdict exch .knownget {
- 2 index 3 1 roll put % {precopy}
- } {
- pop
- } ifelse
- } {
- pop pop
- } ifelse
- } ifelse % {precopy}
- } for % {copy}
- cvx
-} bind def
-
-//BindAux 0 //Bind put % bind the recursive call in 'Bind'.
-
-
-
-% Redefine the /Font category with CIDFont-CMap construction :
-
-% The following code supposes that the following names are not
-% defined in the old /Font category dictionary :
-% /IsComposedFont, /Bind, /IsComposedOK, /EnumerateFontNames .
-
-
-/Font /Category findresource dup length dict copy begin
-
-/FindResource { % <InstName> FindResource <inst>
- dup //ResourceStatus exec {
- pop pop //FindResource exec
- } {
- dup //IsComposedFont exec { % /FontName /CIDFontName /CMapName
- exch [ exch ] composefont % inst
- } {
- //FindResource exec
- } ifelse
- } ifelse
-} bind def
-
-/ResourceStatus { % <InstName> ResourceStatus <nStatus> <nSize> true
- % <InstName> ResourceStatus false
- dup //ResourceStatus exec {
- 3 2 roll pop true % nStatus nSize true
- } {
- //IsComposedFont exec { % /CIDFontName /CMapName
- /CMap resourcestatus { % /CIDFontName nStatusM nSizeM
- exch pop exch % nSizeM /CIDFontName
- /CIDFont resourcestatus { % nSizeM nStatusF nSizeF
- exch pop % nSizeF nSizeM
- dup 0 ge {
- exch dup 0 ge {
- add
- } {
- exch pop
- } ifelse
- } {
- pop
- } ifelse % nSize
- 2 exch true % nStatus nSize true
- } {
- pop pop pop false % work around buggy resource file
- } ifelse
- } {
- pop pop pop false % work around buggy resource file
- } ifelse
- } {
- false
- } ifelse
- } ifelse
-} bind def
-
-/ResourceForAll { % <template> <proc> <scratch> ResourceForAll -
-
- % We suppose that the resourceforall procedure does not
- % define or install new fonts, CMaps, and/or CIDFonts.
-
- % First we create 3 temporary dictionaries to store temporary data
- % about fonts, CMaps and CIDFonts.
- % These dictionaries must be created dynamically, to allow for a possible
- % recursive call to resourceforall from the resourceforall procedure.
-
- currentglobal false setglobal
- 20 dict 20 dict 20 dict
- 4 -1 roll setglobal % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
-
- % Store resource names into local dictionaries :
-
- 5 index [ 2 index {exch cvn dup put} aload pop ] cvx 5 index //ResourceForAll exec
- (*) [ 3 index {exch cvn dup put} aload pop ] cvx 5 index /CMap resourceforall
- (*) [ 4 index {exch cvn dup put} aload pop ] cvx 5 index /CIDFont resourceforall
-
- %% Make the list of fonts in the form (/Name status) :
-
- % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
- dup {
- //ResourceStatus exec {
- pop 2 index % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>> /Name nStatus <<Font>>
- 3 1 roll put % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
- } {
- pop
- } ifelse
- } forall % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
-
- %% Add CIDFont-CMap to it (filtering duplicates) :
-
- 3 2 roll {
- 3 index {
- 3 1 roll % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /CIDFont /CMap
- 6 index //ComposeName exec % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap (Font)
- dup 8 index .stringmatch {
- cvn % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /Font
- dup 4 index exch known {
- pop pop
- } {
- 2 index % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /Font /CIDFont
- 4 2 roll % (templ) proc (scr) <<CMap>> <<Font>> /Font /CIDFont /CIDFont /CMap
- //IsComposedOK exec {
- exch 2 index exch 2 put % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont
- } {
- exch pop
- } ifelse
- } ifelse
- } {
- pop pop
- } ifelse
- dup % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CIDFont
- } forall
- pop pop % (templ) proc (scr) <<CMap>> <<Font>>
- } forall % (templ) proc (scr) <<CMap>> <<Font>>
- exch pop % (templ) proc (scr) <<Font>>
-
- % Build the enumeration procedure :
-
- % Since the resourceforall procedure may leave values on the operand stack,
- % we cannot simply store the enumerator's local data on the stack.
- % We also cannot use a static dictionary to store local variables,
- % because of possible recursion in the resourceforall procedure.
- % To work around this, we create a copy of the enumeration procedure and
- % bind it dynamically with a temporary dictionary, which contains
- % local variables for the currently executing instance of resourceforall.
-
- currentdict
- 6 dict begin % the temporary dictionary
- /Category exch def
- /Fonts exch def
- /scr exch def
- /proc exch def
- /en_local_dict currentdict def
- //EnumerateFontNames //Bind exec % (templ) Enumerator
- /status 0 def % variable for the current status to enumerate - do not Bind with it !
- end
- exch pop % Enumerator
-
- % Do the enumeration :
-
- exec
-} bind def
-
-
-currentdict end /Font exch /Category defineresource pop
-end
-setglobal .setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_cidfn.ps b/Master/xemtex/gslib/gs_cidfn.ps
deleted file mode 100644
index e4b0ed2dc16..00000000000
--- a/Master/xemtex/gslib/gs_cidfn.ps
+++ /dev/null
@@ -1,702 +0,0 @@
-% Copyright (C) 1995, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_cidfn.ps,v 1.18.4.5.2.1 2003/04/12 14:02:38 giles Exp $
-% ProcSet for implementing CIDFont and CIDMap resources.
-% When this is run, systemdict is still writable.
-
-% ---------------- Defining CIDFont resources ---------------- %
-
-% Define a CIDFont resource. This is the defineresource implementation for
-% the CIDFont resource category.
-
-/.checkfonttype { % <cidfont> <fonttype> .checkfonttype <cidfont> <new?>
- 1 index /FID known {
- 1 index /FontType get ne {
- /definefont cvx /invalidfont signalerror
- } if false
- } {
- 1 index /FontType 3 -1 roll put true
- } ifelse
-} bind def
-
-/.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse
-.cidfonttypes
-
-30 dict begin
-
-% The key in .cidfonttypes is the CIDFontType value;
-% the value is a procedure that takes a font name and the CIDFont dictionary
-% and replaces the latter with a real font.
-
-% ------ CIDFontType 0 (FontType 9) ------ %
-
-% We add the following entries to the CIDFont dictionary, in addition to
-% the ones documented by Adobe:
-% SubrCache - dictionary for caching Subr arrays
-% For CIDFonts where we read the data from disk incrementally:
-% GlyphData is 0 (arbitrary)
-% DataSource - a ReusableStreamDecode filter for the data
-% We also add a FID entry, and possibly a Subrs entry, to each element of
-% FDArray.
-
-dup 0 {
- 9 .checkfonttype {
- /CIDInit /ProcSet findresource begin
- .completefont9
- end
- } if
- 1 index exch .buildfont9 exch pop
-} bind put
-
-% Add entries to a new CIDFontType 0 font per documentation (FontMatrix)
-% or for .buildfont9 (FDArray.Private.Subrs).
-/.completefont9 { % <cidfont0> .completefont9 <cidfont0>
- currentglobal 3 1 roll dup gcheck setglobal
- dup /FontMatrix known not {
- dup /FontMatrix [0.001 0 0 0.001 0 0] put
- dup /FDArray get {
- /FontMatrix get [1000 0 0 1000 0 0] 1 index concatmatrix pop
- } forall
- } if
- dup /FDArray get {
- % Read the Subrs if necessary.
- dup /Private get dup /Subrs known not {
- dup /SubrCount .knownget {
- % Stack: font Private SubrCount
- currentglobal 3 1 roll 1 index gcheck setglobal
- array 1 index /Subrs 3 -1 roll put
- % Stack: font global Private
- 2 index begin begin .loadsubrs end end
- setglobal
- } {
- pop
- } ifelse readonly pop
- } {
- pop pop
- } ifelse
- } forall
- 3 -1 roll setglobal
-} bind def
-
-% Read some Subrs for the current Type 1 subfont.
-% The subfont's Private dict is currentdict; the CIDFont itself is the
-% next dictionary on the stack.
-/.readsubrs { % <Subrs> <start> .readsubrs <Subrs>
- 1 SubrCount 1 sub {
- dup SDBytes mul SubrMapOffset add
- dup SDBytes .readint exch SDBytes add SDBytes .readint
- 1 index sub string ReadString 2 index 3 1 roll put
- } for
-} bind def
-
-% Ensure that all the Subrs for the current Type 1 subfont are loaded.
-% The subfont's Private dict is currentdict; the CIDFont itself is the
-% next dictionary on the stack.
-/.loadsubrs {
- Subrs length 0 ne {
- SubrCache SubrMapOffset .knownget {
- % We've already loaded some Subrs at this offset.
- % Make sure we've got as many as we need.
- dup length SubrCount lt {
- % We need to load more.
- SubrCount array exch 1 index copy length .readsubrs
- SubrCache SubrMapOffset 2 index put
- } if
- } {
- % We haven't loaded any Subrs at this offset yet.
- SubrCount array 0 .readsubrs
- SubrCache SubrMapOffset 2 index put
- } ifelse
- Subrs copy pop
- } if
-} bind def
-
-% ------ CIDFontType 1 (FontType 10) ------ %
-
-dup 1 {
- 10 .checkfonttype pop
- 1 index exch .buildfont10 exch pop
-} bind put
-
-% ------ CIDFontType 2 (FontType 11) ------ %
-
-dup 2 {
- 11 .checkfonttype pop
- 1 index exch .buildfont11 exch pop
-} bind put
-
-pop % .cidfonttypes
-
-% ---------------- Reading CIDFontType 0 files ---------------- %
-
-/StartData { % <(Binary)|(Hex)> <datalength> StartData -
- % (currentdict is CID font dict)
- % If we're loading a resource file and the data format is
- % binary, we can just save a pointer to the data and load it
- % incrementally.
- mark {
- % Previous versions of this code made provisions for
- % reading hex-encoded data incrementally. Since hex data
- % doesn't seem to be used in practice, we no longer bother.
- 2 index (Binary) ne { stop } if
- currentfile .currentresourcefile ne { stop } if
- % Hack: the pdfwrite driver relies on finalization to write
- % out fonts. However, the font may be finalized after the
- % resource file, in which case the resource file will be
- % closed. So if the current output device is pdfwrite,
- % don't use incremental loading.
- currentdevice .devicename /pdfwrite eq { stop } if
- currentfile fileposition
- } .internalstopped {
- % File is not positionable, or uses hex data.
- % Load the data now.
- cleartomark exch (Hex) eq
- { { currentfile exch readhexstring pop } }
- { { currentfile exch readstring pop } }
- ifelse exch
- % Stack: readproc length
- dup 65400 le {
- % readstring with a 0-length string causes a rangecheck,
- % but a data length of 0 is allowed.
- string dup () ne { 1 index exec } if
- } {
- mark 3 1 roll {
- % Stack: mark str ... readproc length
- dup 0 eq { pop exit } if
- dup 65400 .min dup string 3 index exec
- % Stack: mark str ... readproc length newstrlen newstr
- 4 1 roll sub
- } loop
- counttomark 1 add 1 roll ]
- } ifelse
- /GlyphData exch def
- % If we were reading hex data, skip past the >.
- 2 get { readhexstring } 0 get eq {
- currentfile 0 (>) .subfiledecode dup flushfile closefile
- } if
- } {
- % File is positionable and binary, just save a pointer.
- % Stack: (Binary) length -mark- pos
- /GlyphData 0 def
- exch pop 3 -1 roll pop exch
- % Stack: pos length
- /DataSource currentfile 2 index () .subfiledecode true .reusablestream def
- currentfile 3 1 roll add setfileposition
- } ifelse
- /SubrCache 10 dict def
- CIDFontName currentdict /CIDFont defineresource pop
- end % CID font dict
- end % resource category dict
-} bind def
-
-% Some Adobe fonts include the line
-% /Setup /cid_Setup load def
-% This is apparently included only to prevent proper, conforming PostScript
-% interpreters (as opposed to ATM or a special Adobe font loader) from
-% loading the font, since Setup is not referenced anywhere else in the file.
-/cid_Setup { } def
-
-currentdict end
-
-% ---------------- Rendering ---------------- %
-
-% ------ Generic ------ %
-
-% Read a string at a given offset in a "file" (binary file or
-% GlyphData in RAM).
-/ReadString { % <pos> <string> ReadString <string>
- GlyphData 0 eq {
- % Read from the file.
- DataSource 3 -1 roll setfileposition
- DataSource exch readstring pop
- } {
- % Read from a string or an array of strings.
- GlyphData .stringsreadstring
- } ifelse
-} bind def
-/.stringsreadstring % <pos> <string> <strings> .stringsreadstring
- % <vmstring>
-{ dup type /stringtype eq
- { 3 1 roll length getinterval
- }
- { { % Stack: pos string glyphdata
- dup 0 get length dup 4 index gt { exit } if
- 4 -1 roll exch sub 3 1 roll
- dup length 1 sub 1 exch getinterval
- }
- loop
- % Stack: pos string glyphdata glyphdata[0]length
- % We know no request can span more than 2 strings.
- 3 index 3 index length add 1 index le
- { % Request fits in a single string: just return a substring.
- pop 0 get 3 1 roll length getinterval
- }
- { % Request spans 2 strings. Copy the first part.
- 1 index 0 get 4 index 3 -1 roll 1 index sub getinterval
- 2 index copy
- % Copy the second part.
- % Stack: pos str glyphdata str1
- length exch 1 get 0 3 index length
- 3 index sub getinterval 2 index 3 1 roll putinterval
- exch pop
- }
- ifelse
- }
- ifelse
-} bind def
-
-% Interpret a byte string as a (big-endian) integer.
-/.cvbsi % <bytes> .cvbsi <int>
-{ 0 exch { exch 8 bitshift add } forall
-} bind def
-
-% Read an integer from binary data.
-/.readint % <pos> <nbytes> .readint <int>
-{ string ReadString .cvbsi
-} bind def
-
-% ------ CIDFontType 0 ------ %
-
-/.readglyphdata {
- currentfont exch .type9mapcid
- FDArray exch get exch
-} bind def
-
-% BuildGlyph procedure for CIDFontType 0.
-% The name %Type9BuildGlyph is known to the interpreter.
-/.cid0buildstring 10 string def
-(%Type9BuildGlyph) cvn { % <cidfont> <cid> %Type9BuildGlyph -
- .currentglobal 3 1 roll 1 index gcheck .setglobal
- 1 index begin
- dup .readglyphdata dup null eq {
- % Substitute CID 0. **** WRONG ****
- pop pop 0 .readglyphdata
- } if
- % Stack: cidfont cid subfont charstring
- dup null eq { pop pop pop pop } { %**** WRONG ****
- 4 -1 roll pop
- 3 1 roll exch dup 4 -1 roll 0 0 moveto
- 3 index /FontType get 2 eq { .type2execchar } { .type1execchar } ifelse
- } ifelse %**** WRONG ****
- end
- .setglobal
-} bind def
-
-% ------ CIDFontType 2 ------ %
-
-% BuildGlyph procedure for CIDFontType 2.
-% The name %Type11BuildGlyph is known to the interpreter.
-(%Type11BuildGlyph) cvn { % <cidfont> <cid> %Type11BuildGlyph -
- % We must be prepared for out-of-range CIDs.
- 2 copy { .type11mapcid } .internalstopped {
- pop /CharStrings get /.notdef get
- } if
- % Stack: cidfont cid glyphindex
- 1 index exch .type42execchar
-} bind def
-
-% ---------------- Define resources ---------------- %
-
-languagelevel exch 2 .setlanguagelevel
-
-% Define the CIDInit ProcSet resource.
-% The ProcSet dictionary is still on the stack.
-
-% We might have loaded CMap support already. However, Adobe's
-% protected font downloader defines a CIDInit ProcSet that will be
-% loaded from the filesystem later, so we must check specifically
-% for the ProcSet being defined in VM.
-/CIDInit /ProcSet 2 copy resourcestatus { pop 0 eq } { false } ifelse {
- pop pop findresource dup length 4 index length add dict .copydict
- 4 -1 roll exch .copydict
-} {
- 3 -1 roll
-} ifelse exch defineresource pop
-
-% Define the CIDFont resource category.
-% We break out .buildcidfont because it appears that at least for
-% Type 32 (CIDFontType 4) fonts, the font can be registered in the Font
-% category with only a CIDFontType and no FontType.
-/.buildcidfont { % <name> <fontdict> .buildcidfont
- % <name> <cidfont>
- dup /CIDFontType get //.cidfonttypes exch get exec
-} odef
-
-/.loadcidfontwithoutpop {
- dup 4 string .peekstring pop dup (ttcf) eq exch (\000\001\000\000) eq or {
- .loadcjkvttcidfont
- } {
- /CIDFont /Category findresource /.Instances get
- dup length 2 div cvi dict .copydict exch
- .loadfont
- % Stack: <<original-.Instances>>
- /CIDFont /Category findresource /.Instances get {% forall
- % <<original-.Instances>> key value
- 2 index 2 index known {
- pop pop
- } {
- pop exch pop /CIDFont findresource exit
- } ifelse
- } forall
- dup /CIDFontName known not {
- {Internal Error in .loadcidfontwithoutpop} stop
- } if
- } ifelse
-} bind def
-
-/.loadcidfont {
- .loadcidfontwithoutpop pop
-} bind def
-
-% Define the name of the CID font map file.
-/defaultcidfontmap (CIDFnmap) def
-userdict /CIDFontmap 10 dict put
-
-% <dict> <file> .readCIDFontmap <dict>
-% Code from gs_fonts.ps::.readFontmap
-/.readCIDFontmap {
- { dup token not { closefile exit } if
- % This is a hack to get around the absurd habit of MS-DOS editors
- % of adding an EOF character at the end of the file.
- dup (\032) eq { pop closefile exit } if
- 1 index token not
- { (CIDFontmap entry for ) print dup =only
- ( has no associated file or alias name! Giving up.) = flush
- {.readCIDFontmap} 0 get 1 .quit
- } if
- dup type dup /stringtype eq exch /nametype eq or not
- { (CIDFontmap entry for ) print 1 index =only
- ( has an invalid file or alias name! Giving up.) = flush
- {.readCIDFontmap} 0 get 1 .quit
- } if
- % stack: dict file cidfontname filename|aliasname
- 1 index type /stringtype eq
- 1 index type /nametype eq and 1 index xcheck and
- 1 index /run eq 2 index /.runlibfile eq or and {
- % This is an inclusion entry.
- pop findlibfile { exch pop } { file } ifelse
- 2 index exch .readCIDFontmap pop
- } {
- % This is a real entry.
- % stack: dict file cidfontname filename|aliasname
-
- % Before staring a game, we need a hack.
- % Some CJK pdf file contains a cidfontname that cannot
- % be represented as a nametype literal. Instead, the
- % cidfontname is represented as a string literal.
- % If a cidfontname is represented as a stringtype object,
- % it must be converted to a nametype object.
- % We handle such a case here.
- exch dup type /stringtype eq {cvn} if exch
-
- % stack: dict file cidfontname filename|aliasname
- % Read and pop tokens until a semicolon.
- { 2 index token not
- { (CIDFontmap entry for ) print 1 index =only
- ( ends prematurely! Giving up.) = flush
- {.readCIDFontmap} 0 get 1 .quit
- } if
- dup /; eq { pop 3 index 3 1 roll .growput exit } if
- % Format:
- % /CIDFontname (file) ttc-index ;
- % /CIDFontname (file) /Code->CID-dict ;
- % /CIDFontname (file) ttc-index /Code->CID-dict ;
- %
- % e.g.
- % /HG-MinchoL (hgminchol.ttc) 1 /Adobe-Japan1-Unicode ;
- % /HG-PMinchoL (hgminchol.ttc) 2 /Adobe-Japan1-Unicode ;
- % /HG-MinchoL-J2 (hgminchol.ttc) 1 /Adobe-Japan2-Unicode ;
- % /HG-PGothicB (hggothicb.ttc) 2 ;
- % /HG-GothicB-J2 (hggothicb.ttc) /Adobe-Japan2-Unicode ;
- %
- % CID Fontmap entry is stored into CIDFontmap dict as an array.
- % Array format:
- % [filename ttc-index]
- % [filename /Code->CID-dict]
- % [filename ttc-index /Code->CID-dict]
- %
- % Type:
- % filename: string
- % ttc-index: integer
- % /Code->CID-dict: name
- %
- % stack: dict file cidfontname filename something
- 1 index type /nametype eq {
- (CIDFontmap entry for ) print 2 index =only
- (defines an alias! Giving up.) = flush
- {.readCIDFontmap} 0 get 1 .quit
- } if
- % stack: dict file cidfontname filename something
- exch [ exch 3 -1 roll
- % stack: dict file cidfontname [ filename something
- dup type /integertype eq {
- % stack: dict file cidfontname [ filename int
- % Read next token
- 4 index token not
- { (CIDFontmap entry for ) print 3 index =only
- ( ends prematurely! Giving up.) = flush
- {.readCIDFontmap} 0 get 1 .quit
- } if
- } if
- % stack: dict file cidfontname [ filename int something
- % or dict file cidfontname [ filename something
- dup /; eq not 1 index type /nametype eq and {
- % stack: dict file cidfontname [ filename /Code->CID
- % or dict file cidfontname [ filename int /Code->CID
- % Read next token
- counttomark 2 eq {4} {5} ifelse index token not
- { (CIDFontmap entry for ) print
- counttomark 2 eq {3} {4} ifelse index =only
- ( ends prematurely! Giving up.) = flush
- {.readCIDFontmap} 0 get 1 .quit
- } if
- } if
- % stack: dict file cidfontname [ filename int /Code->CID something
- % or dict file cidfontname [ filename /Code->CID something
- dup /; eq {
- pop ]
- 3 index 3 1 roll .growput exit
- } if
- pop
- } loop
- } ifelse
- } loop
-} bind def
-
-% <file> .loadCIDFontmap -
-/.loadCIDFontmap {
- userdict /CIDFontmap get exch
- .readCIDFontmap pop
-} bind def
-
-% Code from .loadinitialfonts
-/.loadinitialcidfonts
- { NOCIDFONTMAP not
- { /CIDFONTMAP where
- { pop [ CIDFONTMAP .pathlist ]
- {
- dup VMDEBUG findlibfile
- { exch pop .loadCIDFontmap }
- { /undefinedfilename signalerror }
- ifelse
- }
- }
- { LIBPATH
- {
- defaultcidfontmap 1 index .filenamedirseparator
- exch concatstrings concatstrings dup VMDEBUG
- (r) { file } .internalstopped
- { pop pop } { .loadCIDFontmap } ifelse
- }
- }
- ifelse forall
- }
- if
- %%% Do nothing
- } bind def
-
-.loadinitialcidfonts
-
-/CIDFontmapHandler <<
- /nametype {
- /CIDFont findresource
- /CIDFont defineresource pop
- } bind
- /stringtype {
- findlibfile {
- exch pop
- % Define CIDFont with a name defined in the font file
- .loadcidfontwithoutpop
- % Define CIDFont with a name define in CIDFontmap
- dup length 0 ne {
- dup /CIDFontName get 2 index eq {
- % Avoid duplicated defineresource for the same CIDFont
- pop pop
- } {
- % Give a name different from the name defined in the file
- /CIDFont defineresource pop
- } ifelse
- } {
- pop pop
- } ifelse
- } {
- /undefinedresource signalerror
- } ifelse
- } bind
- /arraytype {
- % Replace filename in the array with file
- dup 0 get
- findlibfile {
- 3 1 roll pop
- copyarray dup 3 1 roll 0
- 3 -1 roll put
- % Expand array
- aload pop .loadcjkvttcidfont
- /CIDFont defineresource pop
- } {
- /undefinedresource signalerror
- } ifelse
- } bind
->> def
-
-%%% CIDFontmap Public Interface
-% /CIDFontName .CIDFontmapKnown true|false
-/.CIDFontmapKnown {
- userdict /CIDFontmap get exch known
-} bind def
-
-% /CIDFontName .CIDFontmapKnownget value true
-% /CIDFontName .CIDFontmapKnownget false
-/.CIDFontmapKnownget {
- userdict /CIDFontmap get exch .knownget
-} bind def
-
-% /CIDFontName value .CIDFontmapRunHandler -
-/.CIDFontmapRunHandler {
- dup CIDFontmapHandler exch type get .execasresource
-} bind def
-
-% proc .CIDFontmapForAll -
-/.CIDFontmapForAll {
- CIDFontmap exch forall
-} bind def
-
-% proc .CIDFontmapForAllKey -
-/.CIDFontmapForAllKey {
- [ /pop cvx 3 -1 roll /exec cvx ] cvx .CIDFontmapForAll
-} bind def
-
-/CIDFont /Generic /Category findresource dup length dict .copydict
-dup /InstanceType /dicttype put
-dup /DefineResource {
- .buildcidfont
- /Generic /Category findresource /DefineResource get exec
-} put
-/.originalresourceforall 1 index /ResourceForAll get def
-dup /ResourceForAll {
- currentglobal false setglobal
- % (template) (proc) (scratch) g
- [ % (template) (proc) (scratch) g [
- %
- % 1. Gather CIDFont name in /Resource/CIDFont
- %
- 4 index % (template) (proc) (scratch) g [ (template)
- {cvn} % (template) (proc) (scratch) g [ (template) {cvn}
- 4 index % (template) (proc) (scratch) g [ (template) {cvn} (scratch)
- .originalresourceforall
- % (template) (proc) (scratch) g [ ...
- %
- % 2. Gather CIDFont name in CIDFontmap
- %
- {
- dup length string cvs
- dup % (template) (proc) (scratch) g [ ... (Key) (Key)
- counttomark 4 add index
- % (template) (proc) (scratch) g [ ... (Key) (Key) (template)
- .stringmatch {
- cvn
- % (template) (proc) (scratch) g [ ... /Key
- % 3. Remove duplicated /Key
- counttomark -1 1 {
- index 1 index eq {
- pop exit % Duplicated
- } if
- } for
- } {
- pop
- } ifelse
- } .CIDFontmapForAllKey
- ]
- exch setglobal
- %
- % 4. Build extended procedure
- %
- % (template) (proc) (scratch) [CIDFontmapKeys]
- 4 -1 roll pop
- % (proc) (scratch) [CIDFontmapKeys]
- 3 1 roll
- % [CIDFontmapKeys] (proc) (scratch)
- [ exch {cvs} aload pop
- % [CIDFontmapKeys] (proc) [ (scratch) -cvs-
- 4 -1 roll aload pop ] cvx
- % [CIDFontmapKeys] proc++
- %
- % 5. Exec
- %
- forall
-} put
-
-% CIDFonts may be defined in CFF OpenType files.
-% Check for this here.
-/.loadcidfontresource {
- dup .ResourceFile {
- {.loadcidfont} .execasresource
- } {
- pop dup
- .CIDFontmapKnownget {
- .CIDFontmapRunHandler
- } {
- dup /undefinedresource signalerror
- } ifelse
- } ifelse
-} bind def
-dup /.LoadResource {
- currentglobal {
- .loadcidfontresource
- } {
- true setglobal {.loadcidfontresource} stopped false setglobal {stop} if
- } ifelse
-} bind put
-dup /.ResourceFileStatus {
- dup .CIDFontmapKnown {
- pop 2 -1 true
- } {
- .ResourceFile { closefile 2 -1 true } { pop false } ifelse
- } ifelse
-} bind put
-
-/Category defineresource pop
-
-% Add the new FontType resources.
-
-9 1 11 { dup /FontType defineresource pop } for
-
-% Add the new FMapType resource.
-
-9 dup /FMapType defineresource pop
-
-% Define the CIDMap resource category.
-% These aren't documented, but it's clear what they are for:
-% to give names to CIDMaps for CIDFontType 2 fonts.
-
-/CIDMap /Generic /Category findresource dup length dict .copydict
-dup /.CheckResource {
- % Allow a string, an array of strings, or (as of Adobe release 3011)
- % a dictionary.
- dup type dup dup /stringtype eq exch /dicttype eq or {
- pop true
- } {
- dup /arraytype eq exch /packedarraytype eq or {
- true exch { type /stringtype eq and } forall
- } {
- false
- } ifelse
- } ifelse
-} bind put
-/Category defineresource pop
-
-.setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_cmap.ps b/Master/xemtex/gslib/gs_cmap.ps
deleted file mode 100644
index 5830a6a7c4f..00000000000
--- a/Master/xemtex/gslib/gs_cmap.ps
+++ /dev/null
@@ -1,524 +0,0 @@
-% Copyright (C) 1995, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_cmap.ps,v 1.11.2.4.2.1 2003/04/12 14:02:38 giles Exp $
-% ProcSet for implementing CMap resources.
-% When this is run, systemdict is still writable.
-
-% NOTE: Rearranged fonts are not implemented yet.
-
-[
- /CMERGE_DEBUG
- /USE_CIDCHAR_AS_RANGE
-] {dup where {pop pop} { currentdict exch false def pop } ifelse} forall
-
-% ---------------- Public operators ---------------- %
-
-/.rewriteTempMapsNotDef {
- %
- % Before building .CodeMapData from .TempMaps,
- % we need to replace dst type codes in the notdef map with the value 3,
- % which corresponds to CODE_VALUE_NOTDEF, see gxfcmap.h .
- %
- DEBUG { (rewriting TempMapsNotDef\n) print flush } if
- .TempMaps 2 get
- dup length 0 gt {
- 0 get
- DEBUG { (...original...\n) print flush } if
- 1 5 2 index length 1 sub {
- { 1 index exch get 2 3 put } stopped
- { DEBUG { (cannot rewrite\n) print flush } if }
- { DEBUG { (rewrite\n) print flush } if } ifelse
- } for
- } if
- pop
- DEBUG { (...FINISHED...\n) print } if
-} bind def
-
-% composefont doesn't appear in CMap files -- it's documented in
-% the "PostScript Language Reference Manual Supplement".
-/composefont { % <name> <cmap|cmapname> <fonts> composefont <font>
- 10 dict begin
- /CMap 2 index dup type /dicttype ne { /CMap findresource } if def
- /FDepVector 1 index cvlit def % temporarily
- /Encoding [ 0 1 FDepVector length 1 sub { } for ] def
- /FDepVector [ 0 1 FDepVector length 1 sub {
- % Stack: name cmap[name] fonts /FDepVector [ fonts... i
- FDepVector 1 index get
- dup type /dicttype ne {
- dup /CIDFont resourcestatus {
- pop pop /CIDFont
- } {
- /Font
- } ifelse findresource
- } if
- exch CMap /FontMatrices get dup length 2 index gt {
- exch get dup null eq { pop } { makefont } ifelse
- } {
- pop pop
- } ifelse
- } for ] readonly def
- /FMapType 9 def
- /FontMatrix matrix def
- /FontName 3 index def
- CMap /WMode .knownget { /WMode exch def } if
- /FontType 0 def
- pop pop currentdict end /Font defineresource
-} bind odef
-
-% ---------------- CMap operators ---------------- %
-
-40 dict begin
-
-% Our internal .CodeMapData structure closely mirrors the structures
-% defined in gxfcmap.h (q.v.). () indicate a string, [] indicate an array,
-% ? indicates a Boolean, # indicates an integer, {} for grouping.
-% [[(first) (last) ...] % code space ranges
-% [(prefix) (key_size,?is_range,value_type,value_size) (keys...)
-% {(values...) | [value ...]} #font_index % code mappings
-% ...]
-% <<same>> % notdef mappings
-% ]
-% FontMatrices is the array of matrices defined by begin/endusematrix.
-% All of the arrays and strings are read-only after they have been built.
-%
-% Note that the code in zfcmap.c that constructs the C structures from
-% the PostScript structures has intimate knowledge of the above format.
-
-% ****** NOTE: The code currently only handles "well-behaved" CMaps:
-% - CID values only (no bfchars), 16-bit
-% - Entries (both code space and map) must be sorted
-% - Only the last byte must vary in each map range, except for
-% the identity mapping
-
-% ------ Font-level operators ------ %
-
-/begincmap { % - begincmap -
- /.CodeMapData [[] [] []] def
- /FontMatrices [] def
- /.FontIndex 0 def
- /.TempMaps [20 dict 50 dict 50 dict] def
- /CodeMap null def % for .buildcmap
-} bind def
-/endcmap { % - endcmap -
- .rewriteTempMapsNotDef
- DEBUG {
- (*** defined charmap ***\n) print
- .TempMaps 1 get {exch == (\t) print ==} forall
- (*** undefined charmap ***\n) print
- .TempMaps 2 get {exch == (\t) print ==} forall
- } if
- 10 dict begin 0 1 2 {
- /i exch def
- % Append data from .TempMaps to .CodeMapData.
- /t .TempMaps i get def
- .CodeMapData i get length t { exch pop length add } forall
- DEBUG { (requested array size ) print dup == } if
- array /a exch def
- a 0 .CodeMapData i get .putmore
- 0 1 t length 1 sub {
- t exch get .putmore
- } for pop pop
- .CodeMapData i a put
- } for end
- currentdict /.TempMaps undef
- /.CodeMapData .CodeMapData .endmap def
- /FontMatrices FontMatrices .endmap def
-} bind def
-
-/.putmore { % <array> <i> <array2> .putmore <array> <i+len(array2)>
- 3 copy putinterval length add
-} bind def
-
-/.endmap { % <map> .endmap <map>
- dup type /arraytype eq {
- % This might be a shared read-only array inherited via usecmap.
- % Don't try to update its elements if this is the case.
- dup wcheck {
- 0 1 2 index length 1 sub {
- 2 copy 2 copy get .endmap put pop
- } for readonly
- } if
- } {
- dup type /stringtype eq { readonly } if
- } ifelse
-} bind def
-
-/.appendmap { % -mark- <elt> ... <array#> .appendmap -
- .TempMaps exch get counttomark 1 add 1 roll
- ] 1 index length exch put
-} bind def
-
-/begincodespacerange { % <count> begincodespacerange -
- pop mark
-} bind def
-/endcodespacerange { % <code_lo> <code_hi> ... endcodespacerange -
- 0 .appendmap
-} bind def
-
-/usecmap { % <CMap_name> usecmap -
- /CMap findresource dup
- % Copy the top level of .CodeMapData
- /.CodeMapData exch /.CodeMapData get copyarray def
- /FontMatrices exch /FontMatrices get copyarray def
-} bind def
-
-/usefont { % <fontID> usefont -
- /.FontIndex exch def
-} bind def
-
-/beginusematrix { % <fontID> beginusematrix -
- FontMatrices wcheck not FontMatrices length 2 index le or {
- FontMatrices length 1 index 1 add .max array
- dup 0 FontMatrices putinterval
- /FontMatrices exch def
- } if
-} bind def
-/endusematrix { % <matrix> endusematrix -
- FontMatrices 3 1 roll put
-} bind def
-
-% ------ Rearranged font operators ------ %
-
-/beginrearrangedfont { % <font_name> <font*> beginrearrangedfont -
- 10 dict begin
- /.FontNames exch def
- /.FontName exch def
- begincmap
-} bind def
-/endrearrangedfont { % - endrearrangedfont -
- (REARRANGED FONTS NOT IMPLEMENTED YET.) = flush
- FontName .FontNames 0 get findfont end definefont pop
-} bind def
-
-% ------ Character name/code selector operators ------ %
-
-/beginbfchar { % <count> beginbfchar -
- pop mark
-} bind def
-/endbfchar { % <code> <to_code|charname> ... endbfchar
- counttomark 2 idiv {
- counttomark -2 roll % process in correct order
- .addbfchar
- } repeat 1 .appendmap
-} bind def
-
-/beginbfrange { % <count> beginbfrange -
- pop mark
-} bind def
-/endbfrange { % <code_lo> <code_hi> <to_code|(charname*)> ...
- % endbfrange -
- counttomark 3 idiv {
- counttomark -3 roll % process in correct order
- dup type dup /arraytype eq exch /packedarraytype eq or {
- % Array value, split up.
- exch pop {
- % Stack: code to_code|charname
- 1 index exch .addbfchar
- % Increment the code. As noted above, we require
- % that only the last byte vary, but we still must
- % mask it after incrementing, in case the last
- % value was 0xff.
- % Stack: code prefix params key value fontindex
- 6 -1 roll dup length string copy
- dup dup length 1 sub 2 copy get 1 add 255 and put
- } forall pop
- } {
- % Single value, handle directly.
- .addbfrange
- } ifelse
- } repeat 1 .appendmap
-} bind def
-
-/.addbfchar { % <code> <to_code|charname> .addbfchar
- % <prefix> <params> <key> <value> <font_index>
- 1 index exch .addbfrange
-} bind def
-/.addbfrange { % <code_lo> <code_hi> <to_code|charname>
- % .addbfrange <<same as .addbfchar>>
- 4 string dup 3
- 3 index type /nametype eq {
- 2 index 2 1 put % dst = CODE_VALUE_GLYPH, see gxfcmap.h .
- 4 -1 roll 1 array astore 4 1 roll 4
- } {
- 2 index 2 2 put % dst = CODE_VALUE_CHARS, see gxfcmap.h .
- 3 index length
- } ifelse put
- % Stack: code_lo code_hi value params
- 3 index 3 index eq {
- % Single value.
- 3 -1 roll pop exch () exch
- } {
- % Range.
- dup 0 1 put dup 1 1 put
- 4 2 roll
- dup dup length 1 sub 0 exch getinterval 5 1 roll % prefix
- % Stack: prefix value params code_lo code_hi
- 2 { exch dup length 1 sub 1 getinterval } repeat concatstrings
- 3 -1 roll
- } ifelse
- .FontIndex
-} bind def
-
-% ------ CID selector operators ------ %
-
-/begincidchar { % <count> begincidchar -
- pop mark
-} bind def
-/endcidchar { % <code> <cid> ... endcidchar -
- 1 .endmapchars
-} bind def
-
-/begincidrange { % <count> begincidrange -
- pop mark
-} bind def
-/endcidrange { % <code_lo> <code_hi> <cid_base> ... endcidrange -
- 1 .endmapranges
-} bind def
-
-/.endmapchars { % -mark- <code> <cid> ... <map#> .endmapchars -
- counttomark 1 add 1 roll
- counttomark 2 idiv {
- counttomark -2 roll % process in correct order
- exch % <cid> <code>
- % Construct prefix, params, key, value, font_index
- dup length 1 eq { % 1-byte
- <00 00 00 02> () % <prefix> <param> <null_key>
- } { % N-byte
- dup 0 1 getinterval exch % make 1-byte prefix
- 4 string dup 0
- USE_CIDCHAR_AS_RANGE {
- <00 01 00 02> % skelton for param
- } {
- <00 00 00 02> % skelton for param
- } ifelse
- putinterval
- exch % <prefix> <param> <code>
- dup length % <prefix> <param> <code> N
- 1 sub % <prefix> <param> <code> N-1
- dup % <prefix> <param> <code> N-1 N-1
- 3 index % <prefix> <param> <code> N-1 N-1 <param>
- exch % <prefix> <param> <code> N-1 <param> N-1
- 0 exch % <prefix> <param> <code> N-1 <param> 0 N-1
- put % <prefix> <param'> <code> N-1
- 1 exch % <prefix> <param'> <code> 1 N-1
- getinterval % <prefix> <param'> <key>
-
- USE_CIDCHAR_AS_RANGE {
- dup length 2 mul string % <key> <dkey>
- dup % <key> <dkey> <dkey>
- 2 index % <key> <dkey> <dkey> <key>
- 0 exch putinterval % <key> <dkey'>
- dup % <key> <dkey'> <dkey'>
- 3 -1 roll % <dkey'> <dkey'> <key>
- dup length % <dkey'> <dkey'> <key> N-1
- exch putinterval % <dkey''>
- } if
-
- } ifelse
-
- 4 -1 roll % <prefix> <param'> <key> <cid>
- .endmapvalue % <prefix> <param'> <key> <hex_cid> <font_idx>
- % prefix params keys value fontindex
- counttomark 5 gt { % 2 (or more) ranges (1 range = 5 item)
- 4 index 10 index eq % compare prefix
- 4 index 10 index eq and % compare params
- 1 index 7 index eq and % compare fontindex
- {
- DEBUG { (merge! char\n) print } if
- pop 4 2 roll pop pop
- % prefix params keys value fontindex keys2 value2
- 5 -1 roll 3 -1 roll concatstrings
- % prefix params value fontindex value2 keys'
- 4 -1 roll 3 -1 roll concatstrings
- % prefix params fontindex keys' values'
- 3 -1 roll
- } if
- } if % end of 2 (or more) ranges
- CMERGE_DEBUG {
- ( prefix:) print 4 index =only
- ( param:) print 3 index =only
- ( key:) print 2 index =only
- ( hex_cid:) print 1 index =only
- ( font_idx:) print 0 index == flush
- } if
- } repeat
- counttomark 2 add -1 roll .appendmap
-} bind def
-
-/.endmapranges { % -mark- <code_lo> <code_hi> <cid_base> ... <map#>
- % .endmapranges -
- counttomark 1 add 1 roll
- counttomark 3 idiv {
- counttomark -3 roll % process in correct order
- % Construct prefix, params, key_lo, key_hi, value, font_index
- 3 1 roll % <cid_base> <code_lo> <code_hi>
- % prefix key
- % 1-byte code: () .
- % 1-byte range: () .
- % N-byte code: . (*)
- % N-byte range: (*) (*)
- dup 2 index eq { % <code_lo> == <code_hi>
- % 0: prefix_len for 1-byte code
- % 1: prefix_len for N-byte code
- dup length 1 eq { 0 } { 1 } ifelse
- } { % <code_lo> != <code_hi>
- % calculate prefix_len for *-byte range
- dup length 1 sub % <cid_base> <code_lo> <code_hi> <code_len-1>
- 0 % initial value for N
- { % <cid_base> <code_lo> <code_hi> (code_len-1) N
- dup 2 index ge { exit } if % if (N >= len - 1) exit
- 3 index 1 index get % N-th byte of code_lo
- 3 index 2 index get % N-th byte of code_hi
- eq { 1 add } { exit } ifelse
- } loop
- exch pop % discard <code_len-1>
- } ifelse
- % cid_base code_lo code_hi prefix_len
-
- % Althogh Adobe CPSI with native CID/CMap support accept
- % multi-dimensional range specification in notdef & cidrange
- % (and CID is calculated as relative position in multi-dimensional
- % range), but older CPSI & ATM cannot handle it.
- %
- % GS accepts such specification, but it's recommended to keep
- % from using this feature for notdef & cidrange.
- % Following is a disabler of this feature.
- % -------------------------------------------------------------
- % counttomark 1 add index % get map#
- % 0 ne { % if not codespacerange
- % 1 index length % get code length
- % 1 index % get prefix length
- % sub % calculate key length
- % 1 gt { % if (key_len > 1),
- % (.endmapranges error) = flush
- % (multi-dimensional range specification is used out of codespacerange)
- % = flush
- % (/) =only
- % CMapName CMapName length string cvs =only
- % (: <) =only
- % 2 index (%stdout) (w) file exch writehexstring
- % (> <) =only
- % 1 index (%stdout) (w) file exch writehexstring
- % (>\n) =only flush
- % quit
- % } if
- % } if
- % -------------------------------------------------------------
-
- 1 index exch 0 exch getinterval
- % cid_base code_lo code_hi prefix
- dup length 3 index length exch sub
- % cid_base code_lo code_hi prefix range_len
- dup 255 gt {
- (too long coderange specification for current GS\n) print
- signalerror
- } if
- <00 01 00 02> 4 string copy % create initialized param
- dup 0 4 -1 roll put % put range_len into param
-
- % get key_hi
- 3 -1 roll dup length 3 index length dup 3 1 roll sub getinterval
-
- % get key_lo
- 4 -1 roll dup length 4 index length dup 3 1 roll sub getinterval
-
- % make "keys" (concatenated key_lo + key_hi)
- exch concatstrings
-
- %
- 4 -1 roll
- .endmapvalue
-
- % See if we can merge with the previous value.
- % The prefix, params, and font index must match.
- % prefix params keys value fontindex
- counttomark 5 gt { % 2 (or more) ranges (1 range = 5 item)
- 4 index 10 index eq % compare prefix
- 4 index 10 index eq and % compare params
- 1 index 7 index eq and % compare fontindex
- {
- DEBUG { (merge!\n) print } if
- pop 4 2 roll pop pop
- % prefix params keys value fontindex keys2 value2
- 5 -1 roll 3 -1 roll concatstrings
- % prefix params value fontindex value2 keys'
- 4 -1 roll 3 -1 roll concatstrings
- % prefix params fontindex keys' values'
- 3 -1 roll
- } if
- } if % end of 2 (or more) ranges
- } repeat
- counttomark 2 add -1 roll .appendmap
-} bind def
-
-/.endmapvalue { % <cid> .endmapvalue (hi,lo) .FontIndex
- 2 string dup 0 3 index -8 bitshift put % value
- dup 1 4 -1 roll 255 and put
- .FontIndex % font_index
-} bind def
-
-% ------ notdef operators ------ %
-
-/beginnotdefchar { % <count> beginnotdefchar -
- pop mark
-} bind def
-/endnotdefchar { % <code> <cid> ... endnotdefchar -
- 2 .endmapchars
-} bind def
-
-/beginnotdefrange { % <count> beginnotdefrange -
- pop mark
-} bind def
-/endnotdefrange { % <code_lo> <code_hi> <cid> ... endnotdefrange -
- 2 .endmapranges
-} bind def
-
-% ---------------- Resource category definition ---------------- %
-
-currentdict end
-
-languagelevel exch 2 .setlanguagelevel
-
-/CMap /Generic /Category findresource dup length dict .copydict
-dup /InstanceType /dicttype put
-dup /DefineResource {
- % The AdobePS5 Windows driver emits code that attempts to
- % create CMaps without the required CMapName entry.
- % Work around this here.
- dup /CMapName known not {
- dup wcheck not {
- .currentglobal exch dup wcheck .setglobal
- dup length dict .copydict exch .setglobal
- } if
- dup gcheck 2 index gcheck not and {
- exch .currentglobal exch true .setglobal
- dup length string copy exch .setglobal exch
- } if dup /CMapName 3 index put
- } if
- dup /CodeMap get null eq { .buildcmap } if
- /Generic /Category findresource /DefineResource get exec
-} put
-/Category defineresource pop
- % We might have loaded CID font support already.
-/CIDInit /ProcSet 2 copy { findresource } .internalstopped
- % An interior `stopped' might have reset VM allocation to local.
-true .setglobal
- { pop pop 3 -1 roll }
- { dup length 4 index length add dict .copydict 4 -1 roll exch .copydict }
-ifelse exch defineresource pop
-
-.setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_cmdl.ps b/Master/xemtex/gslib/gs_cmdl.ps
deleted file mode 100644
index e893bafb49d..00000000000
--- a/Master/xemtex/gslib/gs_cmdl.ps
+++ /dev/null
@@ -1,181 +0,0 @@
-% Copyright (C) 1994, 1996, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_cmdl.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Parse and execute the command line.
-% C code handles the following switches: -h/-? -I -M -v
-
-/cmddict 50 dict def
-cmddict begin
-
-% ---------------- Utility procedures ---------------- %
-
-% Get the next argument from the parsed argument list.
-/nextarg % - nextarg <arg> true
- % - nextarg false
- { argv length 0 eq
- { false }
- { argv dup 0 get exch dup length 1 sub 1 exch getinterval /argv exch def }
- ifelse
- } bind def
-
-% Run a file, under job control if implemented.
-/runjob % <file> runjob -
- { end % cmddict
- /startjob where { pop false () startjob pop }
- run
- //cmddict begin
- } bind def
-/runfilejob % <filename> runfilejob -
- { findlibfile { exch pop } { (r) file } runjob
- } bind def
-
-% Expand arguments. Free variables: expand@.
-/expandarg % <string> expandarg <args...>
- { dup () eq
- { pop
- }
- { dup dup (--) eq exch (-+) eq or
- { pop /expand@ false def
- }
- { expand@ { (@) anchorsearch } { false } ifelse
- { pop findlibfile
- { exch pop }
- { (r) file } % let the error happen
- expandargfile
- }
- if
- }
- ifelse
- }
- } bind def
-/expandargfile % <file> expandargfile <args...>
- { [ exch cvlit
- { token not { exit } if
- dup type /stringtype ne { =string cvs dup length string copy } if
- expandarg
- }
- /exec cvx
- ] cvx loop
- } bind def
-
-% ---------------- Recognized switches ---------------- %
-
-% Switches with arguments are defined as <x>;
-% switches without arguments are defined as -<x>.
-
-% Switches without arguments
-/--
- { nextarg not
- { (-- and -+ require a file name.) = flush }
- { //systemdict /ARGUMENTS argv put /argv [] def runjob }
- ifelse
- } bind def
-/-+ /-- load def
-/-@ /-- load def
-/-A { (@) Z } bind def
-/-c
- { { argv length 0 eq { exit } if
- argv 0 get (-) anchorsearch { pop pop exit } if
- pop nextarg token
- { exch pop % Probably should check for empty.
- end exec //cmddict begin
- }
- if
- }
- loop
- } bind def
-/-e { (#) Z } bind def
-/-E /-e load def
-/-f { } def
-/-q { //systemdict /QUIET true put } bind def
-
-% Switches with arguments
-/d
- { (=) search not { (#) search not { () exch dup } if } if
- exch pop cvn dup where
- { pop (Redefining ) print print ( is not allowed.) = flush pop }
- { exch token
- { exch pop } % Probably should check for empty.
- { true }
- ifelse
- //systemdict 3 1 roll put
- }
- ifelse
- } bind def
-/D /d load def
-/f { dup length 0 ne { runfilejob } if } bind def
-/g
- { (x) search { cvi pop exch cvi } { cvi dup } ifelse
- //systemdict begin /DEVICEHEIGHT exch def /DEVICEWIDTH exch def end
- } bind def
-/r
- { (x) search { cvr pop exch cvr } { cvr dup } ifelse
- //systemdict begin /DEVICEYRESOLUTION exch def /DEVICEXRESOLUTION exch def end
- } bind def
-/s
- { (=) search not { (#) search not { () exch dup } if } if
- exch pop cvn dup where { pop dup load } { () } ifelse
- type /stringtype ne
- { (Redefining ) print print ( is not allowed.) = flush pop }
- { exch //systemdict 3 1 roll put }
- ifelse
- } bind def
-/S /s load def
-/Z { true .setdebug } bind def
-
-% ---------------- Main program ---------------- %
-
-% We process the command line in two passes. In the first pass,
-% we read and expand any @-files as necessary. The second pass
-% does the real work.
-
-/cmdstart
- { //cmddict begin
- /expand@ true def
- [
- % Process the GS_OPTIONS environment variable.
- (GS_OPTIONS) getenv { 0 () /SubFileDecode filter expandargfile } if
- % Process the actual command line.
- .getargv { expandarg } forall
- ] readonly /argv exch def
- % Now interpret the commands.
- { nextarg not { exit } if
- dup 0 get (-) 0 get eq
- { dup length 1 eq
- { pop (%stdin) (r) file runjob
- }
- { dup length 2 gt
- { dup dup length 2 sub 2 exch getinterval exch 1 1 getinterval }
- if currentdict .knownget
- { exec
- }
- { (Ignoring unknown switch ) print
- dup length 1 eq { (-) print print } if print
- () = flush
- }
- ifelse
- }
- ifelse
- }
- { runfilejob
- }
- ifelse
- }
- loop end
- } bind def
-
-end % cmddict
diff --git a/Master/xemtex/gslib/gs_css_e.ps b/Master/xemtex/gslib/gs_css_e.ps
deleted file mode 100644
index 78daaeb9ab8..00000000000
--- a/Master/xemtex/gslib/gs_css_e.ps
+++ /dev/null
@@ -1,115 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_css_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the CFF StandardStrings that represent characters.
-% This is a pseudo-encoding.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/CFFStandardStrings mark
-
-% 0
- /.notdef /space /exclam /quotedbl /numbersign
- /dollar /percent /ampersand /quoteright /parenleft
- /parenright /asterisk /plus /comma /hyphen
- /period /slash /zero /one /two
- /three /four /five /six /seven
- /eight /nine /colon /semicolon /less
- /equal /greater /question /at /A
- /B /C /D /E /F
- /G /H /I /J /K
- /L /M /N /O /P
-% 50
- /Q /R /S /T /U
- /V /W /X /Y /Z
- /bracketleft /backslash /bracketright /asciicircum /underscore
- /quoteleft /a /b /c /d
- /e /f /g /h /i
- /j /k /l /m /n
- /o /p /q /r /s
- /t /u /v /w /x
- /y /z /braceleft /bar /braceright
- /asciitilde /exclamdown /cent /sterling /fraction
-% 100
- /yen /florin /section /currency /quotesingle
- /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi
- /fl /endash /dagger /daggerdbl /periodcentered
- /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright
- /guillemotright /ellipsis /perthousand /questiondown /grave
- /acute /circumflex /tilde /macron /breve
- /dotaccent /dieresis /ring /cedilla /hungarumlaut
- /ogonek /caron /emdash /AE /ordfeminine
- /Lslash /Oslash /OE /ordmasculine /ae
- /dotlessi /lslash /oslash /oe /germandbls
-% 150
- /onesuperior /logicalnot /mu /trademark /Eth
- /onehalf /plusminus /Thorn /onequarter /divide
- /brokenbar /degree /thorn /threequarters /twosuperior
- /registered /minus /eth /multiply /threesuperior
- /copyright /Aacute /Acircumflex /Adieresis /Agrave
- /Aring /Atilde /Ccedilla /Eacute /Ecircumflex
- /Edieresis /Egrave /Iacute /Icircumflex /Idieresis
- /Igrave /Ntilde /Oacute /Ocircumflex /Odieresis
- /Ograve /Otilde /Scaron /Uacute /Ucircumflex
- /Udieresis /Ugrave /Yacute /Ydieresis /Zcaron
-% 200
- /aacute /acircumflex /adieresis /agrave /aring
- /atilde /ccedilla /eacute /ecircumflex /edieresis
- /egrave /iacute /icircumflex /idieresis /igrave
- /ntilde /oacute /ocircumflex /odieresis /ograve
- /otilde /scaron /uacute /ucircumflex /udieresis
- /ugrave /yacute /ydieresis /zcaron /exclamsmall
- /Hungarumlautsmall /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall
- /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader /zerooldstyle
- /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle
- /sixoldstyle /sevenoldstyle /eightoldstyle /nineoldstyle /commasuperior
-% 250
- /threequartersemdash /periodsuperior /questionsmall /asuperior /bsuperior
- /centsuperior /dsuperior /esuperior /isuperior /lsuperior
- /msuperior /nsuperior /osuperior /rsuperior /ssuperior
- /tsuperior /ff /ffi /ffl /parenleftinferior
- /parenrightinferior /Circumflexsmall /hyphensuperior /Gravesmall /Asmall
- /Bsmall /Csmall /Dsmall /Esmall /Fsmall
- /Gsmall /Hsmall /Ismall /Jsmall /Ksmall
- /Lsmall /Msmall /Nsmall /Osmall /Psmall
- /Qsmall /Rsmall /Ssmall /Tsmall /Usmall
- /Vsmall /Wsmall /Xsmall /Ysmall /Zsmall
-% 300
- /colonmonetary /onefitted /rupiah /Tildesmall /exclamdownsmall
- /centoldstyle /Lslashsmall /Scaronsmall /Zcaronsmall /Dieresissmall
- /Brevesmall /Caronsmall /Dotaccentsmall /Macronsmall /figuredash
- /hypheninferior /Ogoneksmall /Ringsmall /Cedillasmall /questiondownsmall
- /oneeighth /threeeighths /fiveeighths /seveneighths /onethird
- /twothirds /zerosuperior /foursuperior /fivesuperior /sixsuperior
- /sevensuperior /eightsuperior /ninesuperior /zeroinferior /oneinferior
- /twoinferior /threeinferior /fourinferior /fiveinferior /sixinferior
- /seveninferior /eightinferior /nineinferior /centinferior /dollarinferior
- /periodinferior /commainferior /Agravesmall /Aacutesmall /Acircumflexsmall
-% 350
- /Atildesmall /Adieresissmall /Aringsmall /AEsmall /Ccedillasmall
- /Egravesmall /Eacutesmall /Ecircumflexsmall /Edieresissmall /Igravesmall
- /Iacutesmall /Icircumflexsmall /Idieresissmall /Ethsmall /Ntildesmall
- /Ogravesmall /Oacutesmall /Ocircumflexsmall /Otildesmall /Odieresissmall
- /OEsmall /Oslashsmall /Ugravesmall /Uacutesmall /Ucircumflexsmall
- /Udieresissmall /Yacutesmall /Thornsmall /Ydieresissmall
-% 379 = end
-
-counttomark packedarray exch pop
-10 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_dbt_e.ps b/Master/xemtex/gslib/gs_dbt_e.ps
deleted file mode 100644
index 1057f6d96df..00000000000
--- a/Master/xemtex/gslib/gs_dbt_e.ps
+++ /dev/null
@@ -1,60 +0,0 @@
-% Copyright (C) 1993, 1994 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_dbt_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Dingbats encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/DingbatsEncoding
-% \000
- StandardEncoding 0 32 getinterval aload pop % /.notdef
-% \040
- /space /a1 /a2 /a202 /a3 /a4 /a5 /a119
- /a118 /a117 /a11 /a12 /a13 /a14 /a15 /a16
- /a105 /a17 /a18 /a19 /a20 /a21 /a22 /a23
- /a24 /a25 /a26 /a27 /a28 /a6 /a7 /a8
-% \100
- /a9 /a10 /a29 /a30 /a31 /a32 /a33 /a34
- /a35 /a36 /a37 /a38 /a39 /a40 /a41 /a42
- /a43 /a44 /a45 /a46 /a47 /a48 /a49 /a50
- /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58
-% \140
- /a59 /a60 /a61 /a62 /a63 /a64 /a65 /a66
- /a67 /a68 /a69 /a70 /a71 /a72 /a73 /a74
- /a203 /a75 /a204 /a76 /a77 /a78 /a79 /a81
- /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
-% \200
- StandardEncoding 0 32 getinterval aload pop % /.notdef
-% \240
- /.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
- /a112 /a111 /a110 /a109 /a120 /a121 /a122 /a123
- /a124 /a125 /a126 /a127 /a128 /a129 /a130 /a131
- /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
-% \300
- /a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147
- /a148 /a149 /a150 /a151 /a152 /a153 /a154 /a155
- /a156 /a157 /a158 /a159 /a160 /a161 /a163 /a164
- /a196 /a165 /a192 /a166 /a167 /a168 /a169 /a170
-% \340
- /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
- /a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182
- /.notdef /a201 /a183 /a184 /a197 /a185 /a194 /a198
- /a186 /a195 /a187 /a188 /a189 /a190 /a191 /.notdef
-256 packedarray .defineencoding
-3 DingbatsEncoding .registerencoding
-exec
diff --git a/Master/xemtex/gslib/gs_diskf.ps b/Master/xemtex/gslib/gs_diskf.ps
deleted file mode 100644
index 5d1b4e84d3a..00000000000
--- a/Master/xemtex/gslib/gs_diskf.ps
+++ /dev/null
@@ -1,225 +0,0 @@
-% Copyright (C) 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_diskf.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Support for converting Type 1 fonts without eexec encryption to
-% Type 4 fonts that load individual character outlines on demand.
-
-% If DISKFONTS is true, we load individual CharStrings as they are needed.
-% (This is intended primarily for machines with very small memories.)
-% Initially, the character definition is the file position of the definition;
-% this gets replaced with the actual CharString.
-% Note that if we are loading characters lazily, CharStrings is writable.
-
-% _Cstring must be long enough to hold the longest CharString for
-% a character defined using seac. This is lenIV + 4 * 5 (for the operands
-% of sbw, assuming div is not used) + 2 (for sbw) + 3 * 5 (for the operands
-% of seac other than the character codes) + 2 * 2 (for the character codes)
-% + 2 (for seac), i.e., lenIV + 43.
-
-/_Cstring 60 string def
-
-% When we initially load the font, we call
-% <index|charname> <length> <readproc> cskip_C
-% to skip over each character definition and return the file position instead.
-% This substitutes for the procedure
-% <index|charname> <length> string currentfile exch read[hex]string pop
-% [encrypt]
-% What we actually store in the CharString is fileposition * 1000 + length,
-% negated if the string is stored in binary form.
-
-/cskip_C
- { exch dup 1000 ge 3 index type /nametype ne or
- { % This is a Subrs string, or the string is so long we can't represent
- % its length. Load it now.
- exch exec
- }
- { % Record the position and length, and skip the string.
- dup currentfile fileposition 1000 mul add
- 2 index 3 get /readstring cvx eq { neg } if
- 3 1 roll
- dup _Cstring length idiv
- { currentfile _Cstring 3 index 3 get exec pop pop
- } repeat
- _Cstring length mod _Cstring exch 0 exch getinterval
- currentfile exch 3 -1 roll 3 get exec pop pop
- }
- ifelse
- } bind def
-
-% Load a CharString from the file. The font is the top entry
-% on the dictionary stack.
-/load_C % <charname> <fileposandlength> load_C -
- { dup abs 1000 idiv FontFile exch setfileposition
- CharStrings 3 1 roll
- .currentglobal CharStrings .gcheck .setglobal exch
- dup 0 lt
- { neg 1000 mod string FontFile exch readstring }
- { 1000 mod string FontFile exch readhexstring }
- ifelse pop
- exch .setglobal
-% If the CharStrings aren't encrypted on the file, encrypt now.
- Private /-| get 0 get
- dup type /nametype ne
- { dup length 5 sub 5 exch getinterval exec }
- { pop }
- ifelse dup 4 1 roll put
-% If the character is defined with seac, load its components now.
- mark exch seac_C
- counttomark
- { StandardEncoding exch get dup CharStrings exch get
- dup type /integertype eq { load_C } { pop pop } ifelse
- } repeat
- pop % the mark
- } bind def
-
-/seac_C % <charstring> seac_C <achar> <bchar> ..or nothing..
- { dup length _Cstring length le
- { 4330 exch _Cstring .type1decrypt exch pop
- dup dup length 2 sub 2 getinterval <0c06> eq % seac
- { dup length
- Private /lenIV known { Private /lenIV get } { 4 } ifelse
- exch 1 index sub getinterval
-% Parse the string just enough to extract the seac information.
-% We assume that the only possible operators are hsbw, sbw, and seac,
-% and that there are no 5-byte numbers.
- mark 0 3 -1 roll
- { exch
- { { dup 32 lt
- { pop 0 }
- { dup 247 lt
- { 139 sub 0 }
- { dup 251 lt
- { 247 sub 256 mul 108 add 1 1 }
- { 251 sub -256 mul -108 add -1 1 }
- ifelse
- }
- ifelse
- }
- ifelse
- } % 0
- { mul add 0 } % 1
- }
- exch get exec
- }
- forall pop
- counttomark 1 add 2 roll cleartomark % pop all but achar bchar
- }
- { pop % not seac
- }
- ifelse
- }
- { pop % punt
- }
- ifelse
- } bind def
-
-% Define replacement procedures for loading fonts.
-% If DISKFONTS is true and the body of the font is not encrypted with eexec:
-% - Prevent the CharStrings from being made read-only.
-% - Substitute a different CharString-reading procedure.
-% (eexec disables this because the implicit 'systemdict begin' hides
-% the redefinitions that make the scheme work.)
-% We assume that:
-% - The magic procedures (-|, -!, |-, and |) are defined with
-% executeonly or readonly;
-% - The contents of the reading procedures are as defined in bdftops.ps;
-% - The font includes the code
-% <font> /CharStrings <CharStrings> readonly put
-/.loadfontdict 6 dict def mark
- /begin % push this dict after systemdict
- { dup begin
- //systemdict eq { //.loadfontdict begin } if
- } bind
- /end % match begin
- { currentdict end
- //.loadfontdict eq currentdict //systemdict eq and { end } if
- } bind
- /dict % leave room for FontFile, BuildChar, BuildGlyph
- { 3 add dict
- } bind
- /executeonly % for reading procedures
- { readonly
- }
- /noaccess % for Subrs strings and Private dictionary
- { readonly
- }
- /readonly % for procedures and CharStrings dictionary
- { % We want to take the following non-standard actions here:
- % - If the operand is the CharStrings dictionary, do nothing;
- % - If the operand is a number (a file position replacing the
- % actual CharString), do nothing;
- % - If the operand is either of the reading procedures (-| or -!),
- % substitute a different one.
- dup type /dicttype eq % CharStrings or Private
- count 2 gt and
- { 1 index /CharStrings ne { readonly } if }
- { dup type /arraytype eq % procedure or data array
- { dup length 5 ge 1 index xcheck and
- { dup 0 get /string eq
- 1 index 1 get /currentfile eq and
- 1 index 2 get /exch eq and
- 1 index 3 get dup /readstring eq exch /readhexstring eq or and
- 1 index 4 get /pop eq and
- { /cskip_C cvx 2 packedarray cvx
- }
- { readonly
- }
- ifelse
- }
- { readonly
- }
- ifelse
- }
- { dup type /stringtype eq % must be a Subr string
- { readonly }
- if
- }
- ifelse
- }
- ifelse
- } bind
- /definefont % to insert BuildChar/Glyph and change FontType
- { dup /FontType get 1 eq
- { dup /FontType 4 put
- dup /BuildChar /build_C load put
- dup /BuildGlyph /build_C load put
- }
- if definefont
- } bind
-counttomark 2 idiv { .loadfontdict 3 1 roll put } repeat pop
-.loadfontdict readonly pop
-
-% Define the BuildChar and BuildGlyph procedures for modified fonts.
-% A single procedure serves for both.
-/build_C % <font> <code|name> build_C -
- { 1 index begin
- dup dup type /integertype eq { Encoding exch get } if
- % Stack: font code|name name
- dup CharStrings exch .knownget not
- { 2 copy eq { exch pop /.notdef exch } if
- QUIET not
- { (Substituting .notdef for ) print = flush }
- { pop }
- ifelse
- /.notdef CharStrings /.notdef get
- } if
- % Stack: font code|name name charstring
- dup type /integertype eq
- { load_C end build_C }
- { end .type1execchar }
- ifelse
- } bind def
diff --git a/Master/xemtex/gslib/gs_dpnxt.ps b/Master/xemtex/gslib/gs_dpnxt.ps
deleted file mode 100644
index e38e6965074..00000000000
--- a/Master/xemtex/gslib/gs_dpnxt.ps
+++ /dev/null
@@ -1,113 +0,0 @@
-% Copyright (C) 1997, 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_dpnxt.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% gs_dpnxt.ps
-% NeXT Display PostScript extensions
-
-% Define the operation values for compositing. These must match the values
-% in gsdpnext.h, which also are the ones from the NeXT documentation.
-% We put them in systemdict, which seems like as good a place as any.
-mark
- /Clear /Copy /Sover /Sin /Sout /Satop /Dover /Din /Dout /Datop /Xor
- /PlusD /PlusL /Highlight % not sure about Highlight
-counttomark { counttomark 1 sub def } repeat pop
-
-% We implement readimage and sizeimage using the following 3 otherwise
-% undocumented lower-level operators:
-%
-% <x> <y> <width> <height> <matrix> .sizeimagebox
-% <dev_x> <dev_y> <dev_width> <dev_height> <matrix>
-%
-% - .sizeimageparams <bits/sample> <multiproc> <ncolors>
-%
-% <device> <x> <y> <width> <max_height> <alpha?> <std_depth|null>
-% <string> .getbitsrect <height> <substring>
-%
-% NOTE: These operators are subject to change without notice!
-
-% Implement readimage using .getbitsrect. Experimentation on a NeXT system
-% shows that the data is always returned in order of increasing device Y,
-% regardless of the CTM.
-%
-% Note that we can't make stack protection work for this operator,
-% because it must remove its operands from the stack before calling
-% the supplied procedure(s).
-
-/readimage { % <x> <y> <width> <height> <proc> [... <procN-1>]
- % <string> <alpha?> readimage -
- .sizeimageparams exch {
- % multiproc = true. If N > 1, store the procedures in an array.
- exch pop 1 index { 1 add } if
- % Stack: ... string alpha? nprocs
- dup 1 eq {
- pop false % only 1 procedure, multiproc is irrelevant
- } {
- dup array 4 1 roll 3 add 2 roll astore 3 1 roll true
- } ifelse
- } {
- % multiproc = false.
- pop pop false
- } ifelse
- % Map the rectangle to device coordinates.
- % Stack: x y w h proc(s) str alpha? multi?
- 8 -4 roll matrix .sizeimagebox pop 8 4 roll
- % Make sure we allocate the operand array in local VM
- % to avoid a possible invalidaccess.
- .currentglobal false .setglobal 9 1 roll
- exch { 1 } { 0 } ifelse exch % alpha is last, if present
- exch 4 1 roll 8 array astore exch .setglobal
- { % Read out a block of scan lines and pass them to the procedure.
- % Stack: [x y w h alpha? proc(s) str multi?] -- we must consume this.
- dup 3 get 0 eq { pop exit } if
- aload 9 1 roll pop exch pop currentdevice 7 1 roll
- % Always read out the data as standard (not native) pixels.
- .sizeimageparams pop pop exch .getbitsrect
- % Stack: [x y w h alpha? proc(s) str multi?] hread substr
- 3 -1 roll
- % Stack: hread substr [x y w h alpha? proc(s) str multi?]
- dup 1 2 copy get 5 index add put
- % Stack: hread substr [x y' w h alpha? proc(s) str multi?]
- dup 3 2 copy get 6 -1 roll sub put
- % Stack: substr [x y' w h' alpha? proc(s) str multi?]
- dup 5 get exch 7 get {
- % multiproc = true, pass each plane to a different procedure.
- % Stack: substr procs
- 0 1 2 index length 1 sub {
- % Push 1 plane and its procedure under the top 2 elements.
- % Stack: ... substr procs plane#
- 2 index length 2 index length idiv % bytes per plane
- dup 2 index mul exch
- % Stack: ... substr procs plane# start length
- 4 index 3 1 roll getinterval 4 1 roll
- 2 copy get 4 1 roll pop
- } for
- exch pop length 2 mul .execn
- } {
- % multiproc = false, just call the procedure.
- exec
- } ifelse
- } //systemdict /exec get 3 packedarray cvx loop
-} bind odef
-
-% Implement sizeimage using lower-level operators.
-
-/sizeimage { % <x> <y> <width> <height> <matrix> sizeimage
- % <devwidth> <devheight> <bits/sample> <matrix>
- % <multiproc> <ncolors>
- .sizeimagebox 5 -2 roll pop pop
- .sizeimageparams 3 -1 roll 4 1 roll
-} bind odef
diff --git a/Master/xemtex/gslib/gs_dps.ps b/Master/xemtex/gslib/gs_dps.ps
deleted file mode 100644
index 10c7577e1cd..00000000000
--- a/Master/xemtex/gslib/gs_dps.ps
+++ /dev/null
@@ -1,203 +0,0 @@
-% Copyright (C) 1997, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_dps.ps,v 1.4.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for Display PostScript functions.
-
-% ------ Contexts ------ %
-
-% To create a context with private local VM, we use the .localfork
-% operator to actually create the context, the new VM, and an empty
-% userdict, and then we call the .initlocaldicts procedure to make
-% local copies of the initial contents of the dictionaries in local VM.
-% savedlocaldicts in systemdict is a global read-only dictionary whose
-% elements are global read-only copies of these initial contents;
-% we just copy its elements into local VM and install them in systemdict.
-% userdict and internaldict require special handling.
-
-% Switching between contexts with different local VMs requires
-% changing the bindings in systemdict that reference local objects.
-% For this purpose, each userdict has an entry called localdicts
-% which holds the local copies of the elements of savedlocaldicts,
-% plus internaldict. The context switching code in the interpreter
-% effectively copies this dictionary into systemdict.
-% NOTE: the name localdicts is known to the interpreter.
-
-% Switching between contexts also requires resetting the user parameters.
-% The interpreter records the value of userparams (a local dictionary
-% referenced from systemdict) for each context, and uses it for this.
-% See gs_lev2.ps for more details.
-% NOTE: the name userparams is known to the interpreter.
-
-% Save copies of local dictionaries at the end of system initialization.
-% Also save the initial gstate.
-/.savelocalstate {
- .currentglobal true .setglobal
- //systemdict /savedlocaldicts mark //systemdict {
- dup gcheck {
- pop pop
- } {
- dup type /dicttype eq {
- % Save a copy of this dictionary in global VM.
- dup maxlength dict .copydict readonly
- } {
- pop pop
- } ifelse
- } ifelse
- } forall .dicttomark readonly put
- % Create localdicts for the current context.
- false .setglobal
- userdict /localdicts mark savedlocaldicts {
- pop dup load
- } forall /internaldict dup load
- .dicttomark readonly put
- % Save a copy of the initial gstate.
- true .setglobal
- //systemdict /savedinitialgstate gstate readonly put
- .setglobal
-} .bind def
-
-% Initialize local dictionaries and gstate when creating a new context.
-% Note that until this completes, we are in the anomalous situation of
-% having systemdict point to dictionaries that are in a non-current
-% local VM. Because of this, we turn off garbage collection temporarily.
-/.copylocal { % <name> <dict> .copylocal <name> <dict'>
- % Copy a dictionary to the current (local) VM,
- % and make it read-only if its current definition is.
- dup maxlength dict .copydict
- 1 index load wcheck not { readonly } if
-} .bind def
-% When this is called, the dictionary stack is in its initial state,
-% and there is (anomalously) only one gstate on the gstate stack.
-/.initlocaldicts { % - .initlocaldicts -
- -2 vmreclaim
- .currentglobal //systemdict begin
- false .setglobal
- % Since localdicts doesn't exist yet, references from
- % systemdict to local objects won't get restored if
- % a context switch happens in this code. Therefore,
- % until localdicts is defined, we have to keep all our
- % state on the operand stack.
-
- % Acquire userdict.
- %****** WRONG IF NON-STANDARD INITIAL DSTACK ******
- countdictstack array dictstack
- { dup gcheck not { exit } if pop } forall
- % Create localdicts with a local copy of each dictionary,
- % except for userdict and userparams, which just need
- % to be filled in.
- mark savedlocaldicts {
- 1 index /userdict eq {
- % Stack: userdict mark ... /userdict inituserdict
- counttomark 1 add index .copydict
- } {
- 1 index /userparams eq {
- % Stack: userdict mark ... /userparams inituserparams
- userparams .copydict
- } {
- .copylocal
- } ifelse
- } ifelse
- } forall /internaldict dup .makeinternaldict .makeoperator
- .dicttomark readonly /localdicts exch put
- % localdicts is now defined in userdict.
- % Copy the definitions into systemdict.
- localdicts { .forcedef } forall
- % Set the user parameters.
- userparams readonly .setuserparams
- % Establish the initial gstate(s).
- /savedinitialgstate .systemvar setgstate gsave
- % Wrap up.
- end .setglobal
-} odef
-
-% Check whether an object is a procedure.
-/.proccheck { % <obj> .proccheck <bool>
- dup xcheck
- exch type dup /arraytype eq exch /packedarraytype eq or and
-} bind def
-
-% Create a context with private local VM.
-% The .localfork operator does all the work, but we must ensure that
-% .initlocaldicts gets called when the new context starts up.
-/localfork { % <mark> <obj1> ... <objN> <proc>
- % <stdin|null> <stdout|null>
- % localfork <context>
- .currentglobal true .setglobal 3 index
- dup .proccheck not {
- pop .setglobal /localfork cvx /typecheck signalerror
- } if
- {exec .initlocaldicts} aload pop
- 3 1 roll 3 packedarray cvx
- 4 1 roll 5 -1 roll pop .setglobal .localfork
-} odef
-
-% Fork a context that shares VM. The .fork operator creates an empty
-% userparams dictionary for the context, but we still need to initialize
-% this dictionary when the new context starts up.
-/.postfork { % - .postfork -
- % Initialize the user parameters.
- savedlocaldicts /userparams get userparams .copydict readonly pop
-} odef
-/fork { % <mark> <obj1> ... <objN> <proc> fork <context>
- .currentglobal false .setglobal 1 index
- dup .proccheck not {
- pop .setglobal /fork cvx /typecheck signalerror
- } if
- {exec .postfork} aload pop
- 3 1 roll 3 packedarray cvx
- 3 1 roll exch pop .setglobal .fork
-} odef
-
-% ------ Halftone phase ------ %
-
-/sethalftonephase { % <x> <y> sethalftonephase -
- -1 2 index 2 index .setscreenphase pop pop
-} odef
-/currenthalftonephase { % - currenthalftonephase <x> <y>
- 0 .currentscreenphase
-} odef
-
-% ------ Device-source images ------ */
-
-.imagetypes 2 /.image2 load put
-
-% ------ Device information ------ %
-
-/.deviceinfodict mark
- /Colors null /GrayValues null /RedValues null /GreenValues null
- /BlueValues null /ColorValues null
-.dicttomark readonly def
-/deviceinfo { % - deviceinfo <dict>
- currentdevice //.deviceinfodict .getdeviceparams .dicttomark readonly
-} odef
-
-% The current implementation allocates a 2-element array each time.
-% Perhaps we should change this to 2 separate parameters for X and Y?
-/.wtdict mark
- /wtranslation null
-.dicttomark readonly def
-/wtranslation { % - wtranslation <x> <y>
- currentdevice //.wtdict .getdeviceparams exch pop exch pop aload pop
-} odef
-currentdict /.wtdict .undef
-
-% ------ View clipping ------ %
-
-/rectviewclip { % <x> <y> <width> <height> rectviewclip -
- % <numarray|numstring> rectviewclip -
- newpath .rectappend viewclip
-} odef
diff --git a/Master/xemtex/gslib/gs_dps1.ps b/Master/xemtex/gslib/gs_dps1.ps
deleted file mode 100644
index 177fb68ba11..00000000000
--- a/Master/xemtex/gslib/gs_dps1.ps
+++ /dev/null
@@ -1,142 +0,0 @@
-% Copyright (C) 1997, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_dps1.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for most of the Display PostScript functions
-% that are also included in Level 2.
-
-level2dict begin
-
-% ------ Virtual memory ------ %
-
-/currentshared /.currentglobal load def
-/scheck /.gcheck load def
-%****** FOLLOWING IS WRONG ******
-/shareddict currentdict /globaldict .knownget not { 20 dict } if def
-
-% Global and LocalFontDirectory must remain in systemdict
-% even if we temporarily exit Level 2 mode.
-
-end % level2dict
-systemdict begin
-
-/SharedFontDirectory .FontDirectory .gcheck
- { .currentglobal false .setglobal
- /LocalFontDirectory .FontDirectory dup maxlength dict copy
- .forcedef % LocalFontDirectory is local, systemdict is global
- .setglobal .FontDirectory
- }
- { /LocalFontDirectory .FontDirectory
- .forcedef % LocalFontDirectory is local, systemdict is global
- 50 dict
- }
-ifelse def
-
-end % systemdict
-level2dict begin
-
-% setshared must rebind FontDirectory to the appropriate one of
-% Local or SharedFontDirectory.
-
-/.setglobal % <bool> .setglobal -
- { dup .setglobal
- //systemdict /FontDirectory .currentglobal
- { //SharedFontDirectory }
- { /LocalFontDirectory .systemvar } % can't embed ref to local VM
- ifelse .forceput pop % LocalFontDirectory is local, systemdict is global
- } .bind odef % must bind .forceput and .setglobal
- % even if NOBIND in effect
-% Don't just copy (load) the definition of .setglobal:
-% it gets redefined for LL3.
-/setshared { /.setglobal .systemvar exec } odef
-.currentglobal setshared
-
-% See below for changes in save and restore.
-
-% ------ Fonts ------ %
-
-/selectfont % <fontname> <size> selectfont -
- { 1 index findfont
- 1 index dup type /arraytype eq { makefont } { scalefont } ifelse
- setfont pop pop
- } odef
-% undefinefont has to take local/global VM into account.
-/undefinefont % <fontname> undefinefont -
- { .FontDirectory 1 index .undef
- .currentglobal
- { % Current mode is global; delete from local directory too.
- //systemdict /LocalFontDirectory .knownget
- { 1 index .undef }
- if
- }
- { % Current mode is local; if there was a shadowed global
- % definition, copy it into the local directory.
- //systemdict /SharedFontDirectory .knownget
- { 1 index .knownget
- { .FontDirectory 2 index 3 -1 roll put }
- if
- }
- if
- }
- ifelse pop
- } odef
-
-% If we load a font into global VM within an inner save, the restore
-% will delete it from FontDirectory but not from SharedFontDirectory.
-% We have to handle this by making restore copy missing entries from
-% SharedFontDirectory to FontDirectory. Since this could slow down restore
-% considerably, we define a new operator .dictcopynew for this purpose.
-% Furthermore, if FAKEFONTS is in effect, we want global real fonts to
-% override fake local ones. We handle this by brute force.
-/restore % <save> restore -
- { dup //restore % bind even if NOBIND
- /LocalFontDirectory .systemvar
- FAKEFONTS
- { mark
- % We want to delete a fake font from the local directory
- % iff the global directory now has no definition for it,
- % or a non-fake definition.
- 1 index dup
- { % Stack: lfd mark lfd key ... lfd key value
- length 1 gt
- { % This is a real local definition; don't do anything.
- pop
- }
- { % This is a fake local definition, check for global.
- //SharedFontDirectory 1 index .knownget
- { % A global definition exists, check for fake.
- length 1 eq { pop } { 1 index } ifelse
- }
- { % No global definition, delete the local one.
- 1 index
- }
- ifelse
- }
- ifelse
- } forall
- pop counttomark 2 idiv { .undef } repeat pop
- }
- if
- //SharedFontDirectory exch .dictcopynew pop
- .currentglobal .setglobal % Rebind FontDirectory according to current VM.
- pop
- } bind odef
-
-% ------ Miscellaneous ------ %
-
-/undef /.undef load def
-
-end % level2dict
diff --git a/Master/xemtex/gslib/gs_dps2.ps b/Master/xemtex/gslib/gs_dps2.ps
deleted file mode 100644
index c84b5be9b65..00000000000
--- a/Master/xemtex/gslib/gs_dps2.ps
+++ /dev/null
@@ -1,217 +0,0 @@
-% Copyright (C) 1990, 1996, 1997, 1998, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_dps2.ps,v 1.3.4.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for basic Display PostScript functions
-% that are also included in Level 2.
-
-level2dict begin
-
-% ------ Halftones ------ %
-
-/.makestackdict
- { { counttomark -1 roll } forall .dicttomark
- } bind def
-/currenthalftone % - currenthalftone <dict>
- { mark .currenthalftone
- { { exch pop } % halftone
- { /HalftoneType 1 % screen
- { /Frequency /Angle /SpotFunction }
- .makestackdict
- }
- { /HalftoneType 2 % colorscreen
- { /RedFrequency /RedAngle /RedSpotFunction
- /GreenFrequency /GreenAngle /GreenSpotFunction
- /BlueFrequency /BlueAngle /BlueSpotFunction
- /GrayFrequency /GrayAngle /GraySpotFunction
- }
- .makestackdict
- }
- }
- exch get exec
- } odef
-% Define sethalftone so it converts types 1-4 to type 5.
-/.makehalftoneRGBV { % <dict> <type> <keys> <keysRGBV>
- 4 -1 roll exch { 1 index exch get exch } forall 15 1 roll
- 14 -2 roll mark 15 1 roll { /Gray /Blue /Green /Red } {
- % stack: v0 v1 v2 type keys comp
- mark
- 2 index 0 get 8 -1 roll
- 4 index 1 get 9 -1 roll
- 6 index 2 get 10 -1 roll
- % stack: type keys comp mark k0 v0 k1 v1 k2 v2
- /HalftoneType 10 index .dicttomark
- counttomark 2 roll
- } forall pop pop
- /Default 1 index .dicttomark exch pop { .sethalftone5 }
-} bind def
-
-% The value of each entry in .halftonetypes is a procedure:
-% <setdict> <htdict> <<proc>> <setdict'> <htdict'> <sethalftoneproc>
-% This allows us to use these procedures both for actually implementing
-% sethalftone and for converting subsidiary dictionaries of HalftoneType 5
-% halftones.
-systemdict begin
-15 dict /.halftonetypes 1 index def begin
- 1 {
- mark exch /Default exch .dicttomark { .sethalftone5 }
- } bind def
- 2 {
- 1 { /Frequency /Angle /SpotFunction } {
- /RedFrequency /RedAngle /RedSpotFunction
- /GreenFrequency /GreenAngle /GreenSpotFunction
- /BlueFrequency /BlueAngle /BlueSpotFunction
- /GrayFrequency /GrayAngle /GraySpotFunction
- } .makehalftoneRGBV
- } bind def
- 3 {
- mark exch /Default exch .dicttomark { .sethalftone5 }
- } bind def
- 4 {
- 3 { /Width /Height /Thresholds } {
- /RedWidth /RedHeight /RedThresholds
- /GreenWidth /GreenHeight /GreenThresholds
- /BlueWidth /BlueHeight /BlueThresholds
- /GrayWidth /GrayHeight /GrayThresholds
- } .makehalftoneRGBV
- } bind def
- 5 {
- pop dup length dict copy
- mark 1 index {
- % Even HalftoneType 5 dictionaries have entries other than
- % subsidiary halftone dictionaries.
- dup type /dicttype ne {
- 0
- } {
- dup /HalftoneType .knownget not { 0 } if
- } ifelse dup 5 gt {
- % Stack: dict mark ... keyN dictN httypeN
- % Assume that all HalftoneTypes > 5 convert to 5.
- 1 index 3 1 roll
- //.halftonetypes exch get exec pop /Default get
- % Stack: dict mark ... keyN setdict'N htdict'N
- counttomark 1 add index 3 index 4 -1 roll put
- } {
- pop
- } ifelse
- } forall .dicttomark { .sethalftone5 }
- } bind def
-end
-end
-/sethalftone { % <dict> sethalftone -
- % We must create the new dictionary in the same VM as the
- % operand; otherwise, invalidaccess errors may occur.
- .currentglobal 1 index dup gcheck .setglobal
- dup //.halftonetypes 1 index /HalftoneType get get exec exec
- .setglobal pop
-} odef
-% Redefine setscreen and setcolorscreen to recognize halftone dictionaries,
-% and to insert the Frequency and Angle into Type 1 halftones, per
-% Adobe TN 5085.
-/.fixsethalftonescreen % <freq> <angle> <dict> .fix...screen
- % <freq> <angle> <dict> <dict'>
- { dup dup /HalftoneType get 1 eq
- { dup wcheck not { dup length .copydict } if
- dup /Frequency 5 index put
- dup /Angle 4 index put
- }
- if
- } bind def
-/setscreen % <ignore*2> <dict> setscreen -
- { dup type /dicttype eq
- { .fixsethalftonescreen sethalftone pop pop pop }
- { //setscreen }
- ifelse
- } odef
-/setcolorscreen % <ignore*11> <dict> setcolorscreen -
- { dup type /dicttype eq
- { .fixsethalftonescreen sethalftone 12 { pop } repeat }
- { //setcolorscreen }
- ifelse
- } odef
-% Redefine currentscreen and currentcolorscreen to extract the Frequency
-% and Angle from Type 1 halftones, per Adobe TN 5085.
-/.fixcurrenthalftonescreen % <dict> .fix... <freq> <angle> <proc>
- { dup /HalftoneType get 1 eq
- { dup /Frequency get 1 index /Angle get }
- { 60 0 }
- ifelse 3 2 roll
- } bind def
-/currentscreen % - currentscreen 60 0 <dict>
- { .currenthalftone
- { { .fixcurrenthalftonescreen } % halftone
- { } % screen
- { 12 3 roll 9 { pop } repeat % colorscreen
- dup type /dicttype eq { .fixcurrenthalftonescreen } if
- }
- }
- exch get exec
- } odef
-/currentcolorscreen % - currentcolorscreen (60 0 <dict>)*4
- { .currenthalftone
- { { .fixcurrenthalftonescreen 3 copy 6 copy } % halftone
- { 3 copy 6 copy } % screen
- { } % colorscreen
- }
- exch get exec
- } odef
-
-% ------ User objects ------ %
-
-/.UserObjects {
- .userdict /UserObjects
-} odef
-% In order to get proper error recovery behavior, we need to be careful
-% not to pop any operands from the stack until we're done.
-% The code below faithfully duplicates the apparent array-growing
-% behavior of Adobe interpreters.
-/defineuserobject { % <index> <value> defineuserobject -
- .UserObjects .knownget {
- length dup 3 index le {
- % Stack: index value len
- 2 index eq { 1 index 2 mul } { 1 index 1 add } ifelse
- .localvmarray .UserObjects get
- 1 index copy pop
- .UserObjects 3 -1 roll put
- } {
- pop
- } ifelse
- } {
- .UserObjects 3 index 1 add 10 .max .localvmarray put
- } ifelse
- .UserObjects get 2 index 2 index put pop pop
-} odef
-/execuserobject { % <index> execuserobject -
- .UserObjects get 1 index get exch pop exec
-} odef
-/undefineuserobject { % <index> undefineuserobject -
- .UserObjects get 1 index null put pop
-} odef
-
-% ------ Cache control ------ %
-
-% Dummy definitions for cache control operators
-
-/ucachestatus { % - ucachestatus -mark- ? ? ? ? <size>
- mark 0 0 0 0 .userdict /.ucachesize .knownget not { 0 } if
-} odef
-/setucacheparams { % -mark- ... <size> setucacheparams -
- % Provoke an appropriate error if needed.
- counttomark 1 lt { () 0 get } if
- 0 or .userdict /.ucachesize 2 index 0 .max put cleartomark
-} odef
-
-end % level2dict
diff --git a/Master/xemtex/gslib/gs_dscp.ps b/Master/xemtex/gslib/gs_dscp.ps
deleted file mode 100644
index 355e9d9e0f5..00000000000
--- a/Master/xemtex/gslib/gs_dscp.ps
+++ /dev/null
@@ -1,119 +0,0 @@
-% Copyright (C) 2000 Artifex Software Inc. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_dscp.ps,v 1.4.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Postscript interface routines to DSC parser
-
-/send_orientation { % <orientation> send_orientation -
- % .parse_dsc_comments returns -1 for an Orientation key with an
- % unrecognized value.
- dup 0 ge {
- << /Orientation 2 index >> setpagedevice
- } if pop
-} bind def
-
-% This dictionary contains local handlers for DSC comments.
-% See header in zdscpars.c for more information.
-% <dsc_dict> handler <dsc_dict>
-/DSCparseprocs mark
- /Orientation { dup /Orientation get send_orientation } bind
- /PageOrientation { dup /PageOrientation .knownget { send_orientation }
- { dup /Orientation .knownget { send_orientation } if }
- ifelse } bind
- /Page { dup /Orientation .knownget { send_orientation } if } bind
- /NOP { } bind
-.dicttomark readonly def
-
-% This procedure is called whenever a DSC comment is found by the interpreter
-/do_parse_dsc false def
-/parse_dsc { % <file> <DSC string> [<prev proc>]
- % parse_dsc -
- % Run any previously installed parser.
- 0 get dup null eq { pop } { 3 copy exec pop } ifelse
-
- do_parse_dsc { % Check if this parser is enabled
- currentglobal true setglobal % Go to global VM, save old state
- 3 1 roll % Put old VM state under <file> <string>
- dsc_dict exch % <VM state> <file> <dict> <string>
- .parse_dsc_comments % <VM state> <file> <dict> <DSC name>
- 4 -1 roll % Get old VM state from under <file> <dict> <DSC name>
- setglobal % restore previous VM state
- //DSCparseprocs exch .knownget { % Check DSC name against local handler list
- exec % execute any local handler
- } if
- } if
- pop pop % remove file, dict
-} bind def
-
-
-% Check whether the currently installed parser is the one defined in this file.
-/.using_parse_dsc { % - .using_parse_dsc <proc> <using?>
- currentuserparams /ProcessDSCComment get
- dup null eq { pop {{//null} //parse_dsc exec} } if
- dup length 3 eq {
- dup dup length 1 sub get /parse_dsc load eq
- } {
- false
- } ifelse
-} bind def
-
-% Establish a binding for dsc_dict.
-userdict /dsc_dict null put
-
-% - dsc_init -
-/dsc_init { % Initialize DSC parser
- currentglobal true setglobal
- /dsc_dict 50 dict store % Size must be large enough for all DSC values
- dsc_dict .initialize_dsc_parser
- .using_parse_dsc {
- % Already using this parser.
- pop
- } {
- % Encapsulate the previous parser. We know it is in global VM:
- % allocate the new one in global VM as well.
- 1 array astore
- /parse_dsc load /exec load 3 array astore cvx readonly
- << /ProcessDSCComment 3 -1 roll >>
- setuserparams
- } ifelse
- setglobal
- /do_parse_dsc true def
-} bind def
-
-
-% Enable the DSC parser defined in this file.
-% - enable_dsc -
-/enable_dsc {
- dsc_init
-} bind def
-
-% Disable the DSC parser defined in this file.
-% - disable_dsc -
-/disable_dsc {
- % There might be another parser installed: if so, restore it.
- % (If it has encapsulated our parser, we can't.)
- .using_parse_dsc {
- % Restore the parser we encapsulated.
- 0 get 0 get
- currentglobal true setglobal exch
- << /ProcessDSCComment 3 -1 roll >>
- exch setglobal setuserparams
- } {
- pop
- } ifelse
- % If we couldn't restore the old parser, at least disable ours.
- /do_parse_dsc false def
-} bind def
diff --git a/Master/xemtex/gslib/gs_epsf.ps b/Master/xemtex/gslib/gs_epsf.ps
deleted file mode 100644
index 97d93b58622..00000000000
--- a/Master/xemtex/gslib/gs_epsf.ps
+++ /dev/null
@@ -1,243 +0,0 @@
-% Copyright (C) 1989, 1996, 2002 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_epsf.ps,v 1.2.6.11.2.3 2003/04/12 14:02:38 giles Exp $
-% Allow the interpreter to encapsulate EPS files, to recognize MS-DOS
-% EPSF file headers, and skip to the PostScript section of the file.
-
-% Encapsulate EPS files and optionally resize page or rescale image.
-% To display an EPS file cropped to the bounding box:
-% gs -dEPSCrop file.eps
-% To display an EPS file scaled to fit the page:
-% gs -dEPSFitPage file.eps
-% To display a file without EPS encapsulation:
-% gs -dNOEPS file.ps
-
-% When starting to process an EPS file, state is 0.
-% After %%BoundingBox processed, state is 1.
-% After %%HiResBoundingBox processed, state is 2.
-% After %%EndComments processed, state is 3.
-/EPSBoundingBoxState 3 def
-/EPSBoundingBoxSetState {
- //systemdict /EPSBoundingBoxState 3 -1 roll .forceput
-} .bind odef % .forceput must be bound and hidden
-
-% Parse 4 numbers for a bounding box
-/EPSBoundingBoxParse { % (llx lly urx ury) -- llx lly urx ury true OR false
- mark exch
- token {exch token {exch token {exch token {exch pop} if} if} if} if
- counttomark
- 4 eq {
- 5 -1 roll pop % remove mark
- true
- } {
- cleartomark false
- } ifelse
-} bind def
-
-% Rescale and translate to fit the BoundingBox on the page
-/EPSBoundingBoxFitPage { % llx lly urx ury --
- DEBUG { (gs_epsf.ps: Rescaling EPS to fit page\n) print flush } if
- clippath pathbbox newpath
- % translate to new origin at lower left of clippath
- 3 index 3 index translate
- % calculate scale to fit smaller of width or height
- exch 4 -1 roll sub 3 1 roll exch sub
- 4 2 roll 5 index 5 index 4 2 roll
- exch 4 -1 roll sub 3 1 roll exch sub
- 4 2 roll
- exch 4 -1 roll div 3 1 roll exch div
- 1 index 1 index lt {pop}{exch pop} ifelse
- dup scale
- % translate to EPS -llx,-lly
- exch neg exch neg translate
-} bind def
-
-% Crop the page to the BoundingBox
-/EPSBoundingBoxCrop { % llx lly urx ury --
- DEBUG {
- (gs_epsf.ps: Setting pagesize from EPS bounding box\n) print flush
- } if
- exch 3 index sub exch 2 index sub % stack: llx lly urx-llx ury-lly
- << /PageSize [ 5 -2 roll ] >> setpagedevice
- neg exch neg exch translate
-} bind def
-
-
-/EPSBoundingBoxProcess { % (llx lly urx ury) state --
- //systemdict /EPSBoundingBoxState get 1 index lt {
- exch EPSBoundingBoxParse
- {
- //systemdict /EPSCrop known {
- EPSBoundingBoxCrop
- } {
- //systemdict /EPSFitPage known {
- EPSBoundingBoxFitPage
- } {
- % Warn if some of the EPS file will be clipped
- clippath pathbbox newpath
- { % context for exit
- 5 -1 roll lt { 6 { pop } repeat true exit } if
- 4 -1 roll lt { 4 { pop } repeat true exit } if
- 3 -1 roll gt { 2 { pop } repeat true exit } if
- exch gt { true exit } if
- false exit
- } loop
- QUIET not and {
- (\n **** Warning: Some of the BoundingBox for the EPS file will be clipped.) =
- ( Use -dEPSCrop or -dEPSFitPage to avoid clipping.\n) =
- flush
- } if
- } ifelse
- } ifelse
- EPSBoundingBoxSetState
- } {
- pop % state
- } ifelse
- } {
- pop pop
- } ifelse
-} bind def
-
-/ProcessEPSComment { % file comment -- file comment
- //systemdict /EPSBoundingBoxState get 3 lt {
- dup
- (%%EndComments) anchorsearch {
- pop pop
- % ignore any following bounding boxes
- 3 EPSBoundingBoxSetState
- } {
- (%%BoundingBox:) anchorsearch {
- pop
- DEBUG { (gs_epsf.ps: found %%BoundingBox\n) print flush } if
- 1 EPSBoundingBoxProcess
- } {
- (%%HiResBoundingBox:) anchorsearch {
- pop
- DEBUG { (gs_epsf.ps: found %%HiResBoundingBox\n) print flush } if
- 2 EPSBoundingBoxProcess
- } {
- pop % Not interested in this DSC comment
- } ifelse
- } ifelse
- } ifelse
- } if
-} bind def
-
-% Install EPS handler for DSC comments, which we do later
-/EPSBoundingBoxInit {
- systemdict /NOEPS known not {
- % Merge ProcessEPSComment with existing handler
- /ProcessEPSComment load /exec load
- currentuserparams /ProcessDSCComment get
- dup null eq {pop {pop pop}} if /exec load
- 4 array astore cvx readonly
- << /ProcessDSCComment 3 -1 roll >> setuserparams
- } if
-} bind def
-
-/.runNoEPS /run load def
-
-/.runEPS { % file OR string --
- /runEPS_save save def
- /runEPS_dict_count countdictstack def
- /runEPS_op_count count 2 sub def
- /runEPS_page_count currentpagedevice /PageCount get def
- 0 EPSBoundingBoxSetState
- .runNoEPS
- currentpagedevice /PageCount get runEPS_page_count sub 0 eq
- { /showpage load exec } if
- count runEPS_op_count sub {pop} repeat
- countdictstack runEPS_dict_count sub {end} repeat
- runEPS_save restore
-} bind def
-
-/run { % file OR string --
- dup type /filetype ne { (r) file } if
- dup (%!PS-Adobe-) .peekstring {
- (%!PS-Adobe-) eq {
- dup (%!PS-Adobe-X.X EPSF-X.X) .peekstring {
- (EPSF) search {
- pop pop pop
- DEBUG {(runEPS: Found EPS\n) print flush} if
- systemdict /NOEPS known {
- cvx .runNoEPS
- } {
- cvx .runEPS
- } ifelse
- } {
- DEBUG {(runEPS: Normal DSC\n) print flush} if
- pop
- cvx .runNoEPS
-
- } ifelse
- } {
- DEBUG {(runEPS: Short DSC\n) print flush} if
- pop
- cvx .runNoEPS
- } ifelse
- } {
- DEBUG {(runEPS: Not DSC\n) print flush} if
- cvx .runNoEPS
- } ifelse
- } {
- DEBUG {(runEPS: Short non-DSC\n) print flush} if
- pop
- cvx .runNoEPS
- } ifelse
-} bind odef
-
-
-% Handle DOS EPS files.
-
-/.runnoepsf /run load def
-/.epsfheader <C5D0D3C6> def
-/run
- { dup type /filetype ne { (r) file } if
- % Check for MS-DOS EPSF file (see Red Book p. 729).
- dup ( ) .peekstring
- { .epsfheader eq { dup ( ) readstring exch pop } { false } ifelse }
- { pop false }
- ifelse
- % Stack: file true/false
- { % This block is executed if the file is MS-DOS EPSF.
- % Build up the little-endian byte offset and length.
- 2
- { 1 0 4
- { 2 index read not { pop exit } if % if EOF, let error happen
- 2 index mul add exch 256 mul exch
- }
- repeat exch pop exch
- }
- repeat
- % Stack: offset length file
- % Use flushfile to skip quickly to the start of the
- % PostScript section.
- dup 4 -1 roll 12 sub () /SubFileDecode filter flushfile
- % Now interpret the PostScript.
- exch () /SubFileDecode filter cvx run
- }
- { .runnoepsf
- }
- ifelse
- } odef
-
-% rebind .runstdin to use redefined run
-userdict begin
-/.runstdin {
- { (%stdin) run } execute0
-} bind def
-end
diff --git a/Master/xemtex/gslib/gs_fform.ps b/Master/xemtex/gslib/gs_fform.ps
deleted file mode 100644
index 1042b014514..00000000000
--- a/Master/xemtex/gslib/gs_fform.ps
+++ /dev/null
@@ -1,93 +0,0 @@
-% Copyright (C) 1995, 1996, 1998, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_fform.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Form caching implemented in PostScript.
-
-% This implementation doesn't do the right thing about halftone or
-% Pattern phase, but the Pattern cache doesn't either....
-
-% The Form cache key is the Form dictionary; the value is an array
-% of 2 elements [CTM pattern_instance].
-%
-% In order to prevent restore from clearing the cache, we explicitly
-% push the cache entries on the stack before a restore and reinstall them.
-currentglobal false setglobal
-/.formcachedict 20 dict def % must be local
-true setglobal
-/restore {
- mark .formcachedict { } forall
- counttomark 1 add index { //restore } .internalstopped
- { cleartomark //restore }
- { counttomark 2 idiv { .formcachedict 3 1 roll put } repeat pop pop }
- ifelse
-} bind odef
-
-/.execform1 {
- dup /Implementation known not {
- dup /FormType get 1 ne { /rangecheck signalerror } if
- % The Implementation is a Pattern that will draw the form.
- currentglobal 1 index gcheck setglobal
- % Stack: form global
- 10 dict begin
- /PatternType 1 def
- /PaintType 1 def % colored
- /TilingType 1 def % irrelevant
- % Copy the BBox to the correct VM.
- /BBox 2 index /BBox get 4 array copy exch 1 index def
- % Set XStep and YStep to very large numbers,
- % so we won't get multiple copies of the form.
- /XStep 1 index dup 2 get exch 0 get sub 100 mul def
- /YStep exch dup 3 get exch 1 get sub 100 mul def
- /PaintProc 2 index /PaintProc get def
- currentdict end readonly
- % Stack: form global impl
- exch setglobal
- 1 index /Implementation 3 -1 roll .forceput
- } if
- .formcachedict 1 index .knownget {
- % Check whether we can use the cached value.
- % Stack: form cachevalue
- matrix currentmatrix true 0 1 3 {
- % Stack: form cachevalue curmat true index
- 3 index 0 get 1 index get exch 3 index exch get ne {
- pop pop false exit
- } if
- } for exch pop
- } {
- false
- } ifelse not
- { % Make a new cache entry.
- gsave
- matrix currentmatrix dup 4 0 put dup 5 0 put dup setmatrix
- % Stack: form mat
- 1 index /Implementation get
- 2 index /Matrix get
- makepattern 2 array astore
- .formcachedict 2 index 2 index put
- grestore
- } if
- % Stack: form cachevalue
- -1 0 0 transform
- 2 { exch round cvi } repeat .setscreenphase
- 1 get setpattern
- /BBox get aload pop
- exch 3 index sub exch 2 index sub rectfill
-} .bind odef % must bind .forceput
-
-.formtypes 1 /.execform1 load put
-
-setglobal
diff --git a/Master/xemtex/gslib/gs_fonts.ps b/Master/xemtex/gslib/gs_fonts.ps
deleted file mode 100644
index 3b0e3d08735..00000000000
--- a/Master/xemtex/gslib/gs_fonts.ps
+++ /dev/null
@@ -1,1041 +0,0 @@
-% Copyright (C) 1990, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_fonts.ps,v 1.13.2.3.2.1 2003/04/12 14:02:38 giles Exp $
-% Font initialization and management code.
-
-% Define the default font.
-/defaultfontname /Courier def
-
-% Define the name of the font map file.
-/defaultfontmap (Fontmap) def
-
-% ------ End of editable parameters ------ %
-
-% Define the UniqueIDs and organization XUID assigned to Aladdin.
-% UniqueIDs 5,066,501 - 5,066,580 are assigned as follows:
-% 01 and 02 for shareware Cyrillic
-% 33 through 67 for Type 1 versions of the Hershey fonts
-% UniqueIDs 5,115,501 - 5,115,600 are currently unassigned.
-/AladdinEnterprisesXUID 107 def
-
-% If SUBSTFONT is defined, make it the default font.
-/SUBSTFONT where { pop /defaultfontname /SUBSTFONT load def } if
-
-% Define a reliable way of accessing FontDirectory in systemdict.
-/.FontDirectory
-{ /FontDirectory .systemvar
-} .bind odef
-
-% If DISKFONTS is true, we load individual CharStrings as they are needed.
-% (This is intended primarily for machines with very small memories.)
-% In this case, we define another dictionary, parallel to FontDirectory,
-% that retains an open file for every font loaded.
-/FontFileDirectory 10 dict def
-
-% Define a temporary string for local use, since using =string
-% interferes with some PostScript programs.
-/.fonttempstring 128 string def
-
-% Split up a search path into individual directories or files.
-/.pathlist % <path> .pathlist <dir1|file1> ...
- { { dup length 0 eq { pop exit } if
- .filenamelistseparator search not { exit } if
- exch pop exch
- }
- loop
- } bind def
-
-% Load a font name -> font file name map.
-userdict /Fontmap .FontDirectory maxlength dict put
-/.loadFontmap { % <file> .loadFontmap -
- % We would like to simply execute .definefontmap as we read,
- % but we have to maintain backward compatibility with an older
- % specification that makes later entries override earlier
- % ones within the same file.
- 50 dict exch .readFontmap
- { .definefontmap } forall
-} bind def
-/.readFontmap { % <dict> <file> .readFontmap <dict>
- { dup token not { closefile exit } if
- % stack: dict file fontname
- % This is a hack to get around the absurd habit of MS-DOS editors
- % of adding an EOF character at the end of the file.
- dup (\032) eq { pop closefile exit } if
- 1 index token not
- { (Fontmap entry for ) print dup =only
- ( has no associated file or alias name! Giving up.) = flush
- {.readFontmap} 0 get 1 .quit
- } if
- dup type dup /stringtype eq exch /nametype eq or not
- { (Fontmap entry for ) print 1 index =only
- ( has an invalid file or alias name! Giving up.) = flush
- {.readFontmap} 0 get 1 .quit
- } if
- % stack: dict file fontname filename|aliasname
- 1 index type /stringtype eq
- 1 index type /nametype eq and 1 index xcheck and
- 1 index /run eq 2 index /.runlibfile eq or and {
- % This is an inclusion entry.
- pop findlibfile { exch pop } { file } ifelse
- 2 index exch .readFontmap pop
- } {
- % This is a real entry.
- % Read and pop tokens until a semicolon.
- { 2 index token not
- { (Fontmap entry for ) print 1 index =only
- ( ends prematurely! Giving up.) = flush
- {.loadFontmap} 0 get 1 .quit
- } if
- dup /; eq { pop 3 index 3 1 roll .growput exit } if
- pop
- } loop
- } ifelse
- } loop
-} bind def
-% Add an entry in Fontmap. We redefine this if the Level 2
-% resource machinery is loaded.
-/.definefontmap % <fontname> <file|alias> .definefontmap -
- { % Since Fontmap is global, make sure the values are storable.
- .currentglobal 3 1 roll true .setglobal
- dup type /stringtype eq
- { dup .gcheck not { dup length string copy } if
- }
- if
- Fontmap 3 -1 roll 2 copy .knownget
- { % Add an element to the end of the existing value,
- % unless it's the same as the current last element.
- mark exch aload pop counttomark 4 add -1 roll
- 2 copy eq { cleartomark pop pop } { ] readonly .growput } ifelse
- }
- { % Make a new entry.
- mark 4 -1 roll ] readonly .growput
- }
- ifelse .setglobal
- } bind def
-
-% Parse a font file just enough to find the FontName or FontType.
-/.findfontvalue { % <file> <key> .findfontvalue <value> true
- % <file> <key> .findfontvalue false
- % Closes the file in either case.
- exch dup read not { -1 } if
- 2 copy unread 16#80 eq {
- dup (xxxxxx) readstring pop pop % skip .PFB header
- } if
- { % Stack: key file
- % Protect ourselves against syntax errors here.
- dup { token } stopped { pop false exit } if
- not { false exit } if % end of file
- dup /eexec eq { pop false exit } if % reached eexec section
- dup /Subrs eq { pop false exit } if % Subrs without eexec
- dup /CharStrings eq { pop false exit } if % CharStrings without eexec
- dup 3 index eq
- { xcheck not { dup token exit } if } % found key
- { pop }
- ifelse
- } loop
- % Stack: key file value true (or)
- % Stack: key file false
- dup { 4 } { 3 } ifelse -2 roll closefile pop
-} bind def
-/.findfontname
- { /FontName .findfontvalue
- } bind def
-
-% If there is no FONTPATH, try to get one from the environment.
-NOFONTPATH { /FONTPATH () def } if
-/FONTPATH where
- { pop }
- { /FONTPATH (GS_FONTPATH) getenv not { () } if def }
-ifelse
-FONTPATH length 0 eq { (%END FONTPATH) .skipeof } if
-/FONTPATH [ FONTPATH .pathlist ] def
-
-% Scan directories looking for plausible fonts. "Plausible" means that
-% the file begins with %!PS-AdobeFont or %!FontType1, or with \200\001
-% followed by four arbitrary bytes and then either of these strings.
-% To speed up the search, we skip any file whose name appears in
-% the Fontmap (with any extension and upper/lower case variation) already,
-% and any file whose extension definitely indicates it is not a font.
-%
-% NOTE: The current implementation of this procedure is somewhat Unix/DOS-
-% specific. It assumes that '/' and '\' are directory separators, and that
-% the part of a file name following the last '.' is the extension.
-%
-/.lowerstring % <string> .lowerstring <lowerstring>
- { 0 1 2 index length 1 sub
- { 2 copy get dup 65 ge exch 90 le and
- { 2 copy 2 copy get 32 add put }
- if pop
- }
- for
- } bind def
-/.splitfilename { % <dir.../base.extn> .basename <base> <extn>
- % Make the file name read-only to detect aliasing bugs.
- % We really don't like doing this, but we've had one
- % such bug already.
- readonly {
- (/) search { true } { (\\) search } ifelse { pop pop } { exit } ifelse
- } loop
- dup { (.) search { pop pop } { exit } ifelse } loop
- 2 copy eq {
- pop ()
- } {
- exch dup length 2 index length 1 add sub 0 exch getinterval exch
- } ifelse
-} bind def
-/.scanfontdict 1 dict def % establish a binding
-/.scanfontbegin
- { % Construct the table of all file names already in Fontmap.
- currentglobal true setglobal
- .scanfontdict dup maxlength Fontmap length 2 add .max .setmaxlength
- Fontmap
- { exch pop
- { dup type /stringtype eq
- { .splitfilename pop .fonttempstring copy .lowerstring cvn
- .scanfontdict exch true put
- }
- { pop
- }
- ifelse
- }
- forall
- }
- forall
- setglobal
- } bind def
-/.scanfontskip mark
- % Strings are converted to names anyway, so....
- /afm true
- /bat true
- /c true
- /cmd true
- /com true
- /dir true
- /dll true
- /doc true
- /drv true
- /exe true
- /fon true
- /fot true
- /h true
- /o true
- /obj true
- /pfm true
- /pss true % Adobe Multiple Master font instances
- /txt true
-.dicttomark def
-/.scan1fontstring 128 string def
-% %%BeginFont: is not per Adobe documentation, but a few fonts have it.
-/.scanfontheaders [(%!PS-Adobe*) (%!FontType*) (%%BeginFont:*)] def
-0 .scanfontheaders { length .max } forall 6 add % extra for PFB header
-/.scan1fontfirst exch string def
-/.scanfontdir % <dirname> .scanfontdir -
- { currentglobal exch true setglobal
- QUIET not { (Scanning ) print dup print ( for fonts...) print flush } if
- (*) 1 index .filenamedirseparator
- dup (\\) eq { pop (\\\\) } if % double \ for pattern match
- exch concatstrings concatstrings
- 0 0 0 4 -1 roll % found scanned files
- { % stack: <fontcount> <scancount> <filecount> <filename>
- exch 1 add exch % increment filecount
- dup .splitfilename .fonttempstring copy .lowerstring
- % stack: <fontcount> <scancount> <filecount+1> <filename>
- % <BASE> <ext>
- .scanfontskip exch known exch .scanfontdict exch known or
- { pop
- % stack: <fontcount> <scancount> <filecount+1>
- }
- { 3 -1 roll 1 add 3 1 roll
- % stack: <fontcount> <scancount+1> <filecount+1> <filename>
- dup (r) { file } .internalstopped
- { pop pop null ()
- % stack: <fontcount> <scancount+1> <filecount+1> <filename>
- % null ()
- }
- {
- % On some platforms, the file operator will open directories,
- % but an error will occur if we try to read from one.
- % Handle this possibility here.
- dup .scan1fontfirst { readstring } .internalstopped
- { pop pop () }
- { pop }
- ifelse
- % stack: <fontcount> <scancount+1> <filecount+1>
- % <filename> <file> <header>
- }
- ifelse
- % Check for PFB file header.
- dup (\200\001????*) .stringmatch
- { dup length 6 sub 6 exch getinterval }
- if
- % Check for font file headers.
- false .scanfontheaders
- { 2 index exch .stringmatch or
- }
- forall exch pop
- { % stack: <fontcount> <scancount+1> <filecount+1> <filename>
- % <file>
- dup 0 setfileposition .findfontname
- { dup Fontmap exch known
- { pop pop
- }
- { exch copystring exch
- DEBUG { ( ) print dup =only flush } if
- 1 index .definefontmap
- .splitfilename pop true .scanfontdict 3 1 roll .growput
- % Increment fontcount.
- 3 -1 roll 1 add 3 1 roll
- }
- ifelse
- }
- { pop
- }
- ifelse
- }
- % .findfontname will have done a closefile in the above case.
- { dup null eq { pop } { closefile } ifelse pop
- }
- ifelse
- }
- ifelse
- }
- .scan1fontstring filenameforall
- QUIET
- { pop pop pop }
- { ( ) print =only ( files, ) print =only ( scanned, ) print
- =only ( new fonts.) = flush
- }
- ifelse
- setglobal
- } bind def
-
-%END FONTPATH
-
-% Create the dictionary that registers the .buildfont procedure (called by
-% definefont) for each FontType.
-/buildfontdict 20 dict def
-
-% Register Type 3 fonts, which are always supported, for definefont.
-buildfontdict 3 /.buildfont3 cvx put
-
-% Register Type 0 fonts if they are supported. Strictly speaking,
-% we should do this in its own file (gs_type0.ps), but since this is
-% the only thing that would be in that file, it's simpler to put it here.
-/.buildfont0 where { pop buildfontdict 0 /.buildfont0 cvx put } if
-
-% Define definefont. This is a procedure built on a set of operators
-% that do all the error checking and key insertion.
-/.growfontdict
- { % Grow the font dictionary, if necessary, to ensure room for an
- % added entry, making sure there is at least one slot left for FID.
- dup maxlength 1 index length sub 2 lt
- { dup dup wcheck
- { .growdict }
- { .growdictlength dict .copydict }
- ifelse
- }
- { dup wcheck not { dup maxlength dict .copydict } if
- }
- ifelse
- } bind def
-/.completefont {
- { % Check for disabled platform fonts.
- NOPLATFONTS
- { % Make sure we leave room for FID.
- .growfontdict dup /ExactSize 0 put
- }
- { % Hack: if the Encoding looks like it might be the
- % Symbol or Dingbats encoding, load those now (for the
- % benefit of platform font matching) just in case
- % the font didn't actually reference them.
- % Note that some types of font don't have an Encoding.
- dup /Encoding .knownget {
- dup length 65 ge {
- 64 get
- dup /congruent eq { SymbolEncoding pop } if
- /a9 eq { DingbatsEncoding pop } if
- } {
- pop
- } ifelse
- } if
- }
- ifelse
- true exch
- % If this is a CIDFont, CIDFontType takes precedence
- % over FontType.
- dup /CIDFontType known {
- /.buildcidfont where {
- pop exch not exch % true => false
- } if
- } if
- exch {
- dup /FontType get //buildfontdict exch get exec
- } {
- .buildcidfont
- } ifelse
-
- DISKFONTS
- { FontFileDirectory 2 index known
- { dup /FontFile FontFileDirectory 4 index get .growput
- }
- if
- }
- if
- readonly % stack: name fontdict
- } stopped { /invalidfont signalerror } if
-} bind odef
-/definefont
- { .completefont
- % If the current allocation mode is global, also enter
- % the font in LocalFontDirectory.
- .currentglobal
- { //systemdict /LocalFontDirectory .knownget
- { 2 index 2 index .growput }
- if
- }
- if
- dup .FontDirectory 4 -2 roll .growput
- % If the font originated as a resource, register it.
- currentfile .currentresourcefile eq { dup .registerfont } if
- } odef
-
-% Define a procedure for defining aliased fonts.
-% We use this only for explicitly aliased fonts, not substituted fonts:
-% we think this matches the observed behavior of Adobe interpreters.
-/.aliasfont % <name> <font> .aliasfont <newFont>
- { .currentglobal 3 1 roll dup .gcheck .setglobal
- dup length 2 add dict
- dup 3 -1 roll { 1 index /FID eq { pop pop } { put dup } ifelse } forall
- % Stack: global fontname newfont newfont.
- % We might be defining a global font whose FontName
- % is a local string. This is weird, but legal,
- % and doesn't cause problems anywhere else:
- % to avoid any possible problems in this case, do a cvn.
- % We might also be defining (as an alias) a global font
- % whose FontName is a local non-string, if someone passed a
- % garbage value to findfont. In this case, just don't
- % call definefont at all.
- 2 index dup type /stringtype eq exch .gcheck or 1 index .gcheck not or
- { /FontName 3 index dup type /stringtype eq { cvn } if put
- % Don't bind in definefont, since Level 2 redefines it.
- /definefont .systemvar exec
- }
- { .completefont pop exch pop
- }
- ifelse exch .setglobal
- } odef % so findfont will bind it
-
-% Define .loadfontfile for loading a font. If we recognize Type 1 and/or
-% TrueType fonts, gs_type1.ps and/or gs_ttf.ps will redefine this.
-/.loadfontfile {
- % According to Ed Taft, Adobe interpreters push userdict
- % before loading a font, and pop it afterwards.
- userdict begin
- cvx exec
- end
-} bind def
-/.loadfont
- { % Some buggy fonts leave extra junk on the stack,
- % so we have to make a closure that records the stack depth
- % in a fail-safe way.
- {{.loadfontfile} .execasresource} count 1 sub 2 .execn
- count exch sub { pop } repeat
- } bind def
-
-% Find an alternate font to substitute for an unknown one.
-% We go to some trouble to parse the font name and extract
-% properties from it. Later entries take priority over earlier.
-/.substitutefaces [
- % Guess at suitable substitutions for random unknown fonts.
- [(Book) /NewCenturySchlbk 0]
- [(Grot) /Helvetica 0]
- [(Roman) /Times 0]
- [(Chancery) /ZapfChancery-MediumItalic 0]
- % If the family name appears in the font name,
- % use a font from that family.
- [(Arial) /Helvetica 0]
- [(Avant) /AvantGarde 0]
- [(Bookman) /Bookman 0]
- [(Century) /NewCenturySchlbk 0]
- [(Cour) /Courier 0]
- [(Frut) /Helvetica 0]
- [(Garamond) /Palatino 0]
- [(Geneva) /Helvetica 0]
- [(Helv) /Helvetica 0]
- [(NewYork) /Bookman 0]
- [(Pala) /Palatino 0]
- [(Schlbk) /NewCenturySchlbk 0]
- [(Swiss) /Helvetica 0]
- [(Symbol) /Symbol 0]
- [(Times) /Times 0]
- % Substitute for Adobe Multiple Master fonts.
- [(Minion) /Times 0]
- [(Myriad) /Helvetica 0]
- % If the font wants to be monospace, use Courier.
- [(Monospace) /Courier 0]
- [(Typewriter) /Courier 0]
- % Define substitutes for the other Adobe PostScript 3 fonts.
- % For some of them, the substitution is pretty bad!
- [(Albertus) /Palatino 0]
- [(AntiqueOlive) /Helvetica 0]
- [(Bodoni) /NewCenturySchlbk 0]
- [(Chicago) /Helvetica 2]
- [(Clarendon) /Bookman 0]
- [(Cooper) /NewCenturySchlbk 0]
- [(Copperplate) /AvantGarde 0] % inappropriate, small-cap font
- [(Coronet) /ZapfChancery-MediumItalic 0]
- [(Eurostile) /Helvetica 0]
- [(Geneva) /Courier 2] % should be fixed-pitch sans demi
- [(GillSans) /Helvetica 2]
- [(GillSans-Light) /Helvetica 0]
- [(Goudy) /Palatino 0]
- [(Hoefler) /NewCenturySchlbk 0]
- [(Joanna) /Times 0]
- [(LetterGothic) /Courier 0] % should be fixed-pitch sans
- [(LubalinGraph-Book) /Bookman 2]
- [(LubalinGraph-Demi) /Bookman 0]
- [(Marigold) /ZapfChancery-MediumItalic 0]
- [(MonaLisa-Recut) /Palatino 0] % inappropriate
- [(Monaco) /Courier 2] % should be fixed-pitch sans demi
- [(Optima) /Helvetica 0]
- [(Oxford) /ZapfChancery-MediumItalic 0]
- [(Tekton) /Helvetica 0]
- [(Univers) /Helvetica 0]
-] readonly def
-/.substituteproperties [
- [(It) 9] [(Oblique) 1]
- [(Black) 2] [(Bd) 2] [(Bold) 2] [(bold) 2] [(Demi) 2] [(Heavy) 2] [(Sb) 2]
- [(Cn) 4] [(Cond) 4] [(Narrow) 4] [(Pkg) 4] [(Compr) 4]
- [(Serif) 8] [(Sans) -8]
-] readonly def
-/.fontnameproperties { % <int> <string|name> .fontnameproperties
- % <int'>
- .fontnamestring
- .substituteproperties {
- 2 copy 0 get search {
- pop pop pop dup length 1 sub 1 exch getinterval 3 -1 roll exch {
- dup 0 ge { or } { neg not and } ifelse
- } forall exch
- } {
- pop pop
- } ifelse
- } forall pop
-} bind def
-/.substitutefamilies mark
- /AvantGarde
- {/AvantGarde-Book /AvantGarde-BookOblique
- /AvantGarde-Demi /AvantGarde-DemiOblique}
- /Bookman
- {/Bookman-Demi /Bookman-DemiItalic /Bookman-Light /Bookman-LightItalic}
- /Courier
- {/Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique}
- /Helvetica
- {/Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique
- /Helvetica-Narrow /Helvetica-Narrow-Oblique
- /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique}
- /NewCenturySchlbk
- {/NewCenturySchlbk-Roman /NewCenturySchlbk-Italic
- /NewCenturySchlbk-Bold /NewCenturySchlbk-BoldItalic}
- /Palatino
- {/Palatino-Roman /Palatino-Italic /Palatino-Bold /Palatino-BoldItalic}
- /Symbol
- {/Symbol /Symbol /Symbol /Symbol}
- /Times
- {/Times-Roman /Times-Italic /Times-Bold /Times-BoldItalic}
- /ZapfChancery-MediumItalic
- {/ZapfChancery-MediumItalic}
-.dicttomark readonly def
-/.nametostring { % <name> .nametostring <string>
- % <other> .nametostring <other>
- dup type /nametype eq { .namestring } if
-} bind def
-/.fontnamestring { % <fontname> .fontnamestring <string|name>
- dup type dup /nametype eq {
- pop .namestring
- } {
- /stringtype ne { pop () } if
- } ifelse
-} bind def
-/.substitutefontname { % <fontname> <properties> .substitutefontname
- % <altname|null>
- % Look for properties and/or a face name in the font name.
- % If we find any, use Times (serif) or Helvetica (sans) as the
- % base font; otherwise, use the default font.
- % Note that the "substituted" font name may be the same as
- % the requested one; the caller must check this.
- exch .fontnamestring {
- defaultfontname /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique
- /Helvetica-Narrow /Helvetica-Narrow-Oblique
- /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique
- /Times-Roman /Times-Italic /Times-Bold /Times-BoldItalic
- /Helvetica-Narrow /Helvetica-Narrow-Oblique
- /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique
- } 3 1 roll
- % Stack: facelist properties fontname
- % Look for a face name.
- .substitutefaces {
- 2 copy 0 get search {
- pop pop pop
- % Stack: facelist properties fontname [(pattern) family properties]
- dup 2 get 4 -1 roll or 3 1 roll
- 1 get .substitutefamilies exch get
- 4 -1 roll pop 3 1 roll
- } {
- pop pop
- } ifelse
- } forall pop
- 1 index length mod get exec
-} bind def
-/.substitutefont { % <fontname> .substitutefont <altname>
- dup 0 exch .fontnameproperties .substitutefontname
- % Only accept fonts known in the Fontmap.
- Fontmap 1 index known not { pop defaultfontname } if
-} bind def
-
-% If requested, make (and recognize) fake entries in FontDirectory for fonts
-% present in Fontmap but not actually loaded. Thanks to Ray Johnston for
-% the idea behind this code.
-FAKEFONTS not { (%END FAKEFONTS) .skipeof } if
-
-% We use the presence or absence of the FontMatrix key to indicate whether
-% a font is real or fake. We must pop the arguments at the very end,
-% so that stack protection will be effective.
-
-/definefont { % <name> <font> definefont <font>
- dup /FontMatrix known {
- //definefont
- } {
- 2 copy /FontName get findfont //definefont exch pop exch pop
- } ifelse
-} bind odef
-
-/scalefont { % <font> <scale> scalefont <font>
- 1 index /FontMatrix known {
- //scalefont
- } {
- 1 index /FontName get findfont 1 index //scalefont
- exch pop exch pop
- } ifelse
-} bind odef
-
-/makefont { % <font> <matrix> makefont <font>
- 1 index /FontMatrix known {
- //makefont
- } {
- 1 index /FontName get findfont 1 index //makefont
- exch pop exch pop
- } ifelse
-} bind odef
-
-/setfont { % <font> setfont -
- dup /FontMatrix known {
- //setfont
- } {
- dup /FontName get findfont //setfont pop
- } ifelse
-} bind odef
-
-%END FAKEFONTS
-
-% Define findfont so it tries to load a font if it's not found.
-% The Red Book requires that findfont be a procedure, not an operator,
-% but it still needs to restore the stacks reliably if it fails,
-% so we do all the work in an operator.
-/.findfont {
- mark 1 index
- //systemdict begin .dofindfont
- % Define any needed aliases.
- counttomark 1 sub { .aliasfont } repeat end
- exch pop exch pop
-} odef
-/findfont {
- .findfont
-} bind def
-% Check whether the font name we are about to look for is already on the list
-% of aliases we're accumulating; if so, cause an error.
-/.checkalias % -mark- <alias1> ... <name> .checkalias <<same>>
- { counttomark 1 sub -1 1
- { index 1 index eq
- { pop QUIET not
- { (Unable to substitute for font.) = flush
- } if
- /findfont cvx /invalidfont signalerror
- }
- if
- }
- for
- } bind def
-% Get a (non-fake) font if present in a FontDirectory.
-/.fontknownget % <fontdir> <fontname> .fontknownget <font> true
- % <fontdir> <fontname> .fontknownget false
- { .knownget
- { FAKEFONTS
- { dup /FontMatrix known { true } { pop false } ifelse }
- { true }
- ifelse
- }
- { false
- }
- ifelse
- } bind def
-% This is the standard procedure for handling font substitution.
-% Its location is per an Adobe newsgroup posting.
-% It is called with the font name on the stack, standing in for findfont.
-/.stdsubstfont { % mark <alias1> ... <fontname> .stdsubstfont <font>
- /SUBSTFONT where {
- pop QUIET not {
- (Substituting for font ) print dup =only
- (.) = flush
- } if
- % No aliasing.
- cleartomark mark defaultfontname
- } {
- dup .substitutefont
- 2 copy eq { pop defaultfontname } if
- .checkalias
- QUIET not {
- SHORTERRORS {
- (%%[) print 1 index =only
- ( not found, substituting ) print dup =only (]%%)
- } {
- (Substituting font ) print dup =only
- ( for ) print 1 index =only (.)
- } ifelse = flush
- } if
- % Remove all the accumulated aliases.
- counttomark 1 add 1 roll cleartomark mark exch
- } ifelse
- .dofindfont
-} bind def
-$error /SubstituteFont { .stdsubstfont } put
-% Scan the next directory on FONTPATH.
-/.scannextfontdir { % - .scannextfontdir <bool>
- % If we haven't scanned all the directories in
- % FONTPATH, scan the next one.
- null 0 1 FONTPATH length 1 sub {
- FONTPATH 1 index get null ne { exch pop exit } if pop
- } for dup null ne {
- dup 0 eq { .scanfontbegin } if
- FONTPATH 1 index get .scanfontdir
- FONTPATH exch null put true
- } {
- pop false
- } ifelse
-} bind def
-% Do the work of findfont, including substitution, defaulting, and
-% scanning of FONTPATH.
-/.dofindfont { % <fontname> .dofindfont <font>
- .tryfindfont not {
- % We didn't find the font. If we haven't scanned
- % all the directories in FONTPATH, scan the next one
- % now and look for the font again.
- .scannextfontdir {
- % Start over with an empty alias list.
- counttomark 1 sub { pop } repeat
- .dofindfont
- } {
- % No luck. Make sure we're not already
- % looking for the default font.
- dup defaultfontname eq {
- QUIET not {
- (Unable to load default font ) print
- dup =only (! Giving up.) = flush
- } if
- /findfont cvx /invalidfont signalerror
- } if
- % Substitute for the font. Don't alias.
- $error /SubstituteFont get exec
- } ifelse
- } if
-} bind def
-% Try to find a font using only the present contents of Fontmap.
-/.tryfindfont { % <fontname> .tryfindfont <font> true
- % <fontname> .tryfindfont false
- .FontDirectory 1 index .fontknownget
- { % Already loaded
- exch pop true
- }
- { dup Fontmap exch .knownget not
- { % Unknown font name. Look for a file with the
- % same name as the requested font.
- .tryloadfont
- }
- { % Try each element of the Fontmap in turn.
- false exch % (in case we exhaust the list)
- % Stack: fontname false fontmaplist
- { exch pop
- dup type /nametype eq
- { % Font alias
- .checkalias .tryfindfont exit
- }
- { dup dup type dup /arraytype eq exch /packedarraytype eq or exch xcheck and
- { % Font with a procedural definition
- exec % The procedure will load the font.
- % Check to make sure this really happened.
- .FontDirectory 1 index .knownget
- { exch pop true exit }
- if
- }
- { % Font file name
- .loadfontloop { true exit } if
- }
- ifelse
- }
- ifelse false
- }
- forall
- % Stack: font true -or- fontname false
- { true
- }
- { % None of the Fontmap entries worked.
- % Try loading a file with the same name
- % as the requested font.
- .tryloadfont
- }
- ifelse
- }
- ifelse
- }
- ifelse
- } bind def
-
-% Attempt to load a font from a file.
-/.tryloadfont { % <fontname> .tryloadfont <font> true
- % <fontname> .tryloadfont false
- dup .nametostring
- % Hack: check for the presence of the resource machinery.
- /.genericrfn where {
- pop
- 2 copy .fonttempstring /FontResourceDir getsystemparam .genericrfn
- .loadfontloop {
- exch pop exch pop true
- } {
- dup .nametostring .loadfontloop
- } ifelse
- } {
- .loadfontloop
- } ifelse
-} bind def
-/.loadfontloop { % <fontname> <filename> .loadfontloop
- % <font> true
- % -or-
- % <fontname> false
- % See above regarding the use of 'loop'.
- { % Is the font name a string?
- dup type /stringtype ne
- { QUIET not
- { (Can't find font with non-string name: ) print dup =only (.) = flush
- }
- if pop false exit
- }
- if
- % Can we open the file?
- findlibfile not
- { QUIET not
- { (Can't find \(or can't open\) font file ) print dup print
- (.) = flush
- }
- if pop false exit
- }
- if
-
- % Stack: fontname fontfilename fontfile
- DISKFONTS
- { .currentglobal true .setglobal
- 2 index (r) file
- FontFileDirectory exch 5 index exch .growput
- .setglobal
- }
- if
- QUIET not
- { (Loading ) print 2 index =only
- ( font from ) print 1 index print (... ) print flush
- }
- if
- % If LOCALFONTS isn't set, load the font into local or global
- % VM according to FontType; if LOCALFONTS is set, load the font
- % into the current VM, which is what Adobe printers (but not
- % DPS or CPSI) do.
- LOCALFONTS { false } { /setglobal where } ifelse
- { pop /FontType .findfontvalue { 1 eq } { false } ifelse
- % .setglobal, like setglobal, aliases FontDirectory to
- % GlobalFontDirectory if appropriate. However, we mustn't
- % allow the current version of .setglobal to be bound in,
- % because it's different depending on language level.
- .currentglobal exch /.setglobal .systemvar exec
- % Remove the fake definition, if any.
- .FontDirectory 3 index .undef
- 1 index (r) file .loadfont .FontDirectory exch
- /.setglobal .systemvar exec
- }
- { .loadfont .FontDirectory
- }
- ifelse
- % Stack: fontname fontfilename fontdirectory
- QUIET not
- { //systemdict /level2dict known
- { .currentglobal false .setglobal vmstatus
- true .setglobal vmstatus 3 -1 roll pop
- 6 -1 roll .setglobal 5
- }
- { vmstatus 3
- }
- ifelse { =only ( ) print } repeat
- (done.) = flush
- } if
-
- % Check to make sure the font was actually loaded.
- dup 3 index .fontknownget
- { 4 1 roll pop pop pop true exit } if
-
- % Maybe the file had a different FontName.
- % See if we can get a FontName from the file, and if so,
- % whether a font by that name exists now.
- exch (r) file .findfontname
- { 2 copy .fontknownget
- { % Yes. Stack: origfontname fontdirectory filefontname fontdict
- 3 -1 roll pop exch
- QUIET
- { pop
- }
- { (Using ) print =only
- ( font for ) print 1 index =only
- (.) = flush
- }
- ifelse true exit
- }
- if pop
- }
- if pop
-
- % The font definitely did not load correctly.
- QUIET not
- { (Loading ) print dup =only
- ( font failed.) = flush
- } if
- false exit
-
- } loop % end of loop
-
- } bind def
-
-% Define a procedure to load all known fonts.
-% This isn't likely to be very useful.
-/loadallfonts
- { Fontmap { pop findfont pop } forall
- } bind def
-
-% If requested, load all the fonts defined in the Fontmap into FontDirectory
-% as "fake" fonts i.e., font dicts with only FontName and FontType defined.
-% (We define FontType only for the sake of some questionable code in the
-% Apple Printer Utility 2.0 font inquiry code.)
-%
-% Note that this procedure only creates fake fonts in the FontDirectory
-% associated with the current VM. This is because in multi-context systems,
-% creating the fake fonts in local VM leads to undesirable complications.
-/.definefakefonts
- {
- }
- {
- (gs_fonts FAKEFONTS) VMDEBUG
- Fontmap {
- pop dup type /stringtype eq { cvn } if
- .FontDirectory 1 index known not {
- 2 dict dup /FontName 3 index put
- dup /FontType 1 put
- .FontDirectory 3 1 roll put
- } {
- pop
- } ifelse
- } forall
- }
-FAKEFONTS { exch } if pop def % don't bind, .current/setglobal get redefined
-
-% Install initial fonts from Fontmap.
-/.loadinitialfonts
- { NOFONTMAP not
- { /FONTMAP where
- { pop [ FONTMAP .pathlist ]
- { dup VMDEBUG findlibfile
- { exch pop .loadFontmap }
- { /undefinedfilename signalerror }
- ifelse
- }
- }
- { LIBPATH
- { defaultfontmap 1 index .filenamedirseparator
- exch concatstrings concatstrings dup VMDEBUG
- (r) { file } .internalstopped
- { pop pop } { .loadFontmap } ifelse
- }
- }
- ifelse forall
- }
- if
- .definefakefonts % current VM is global
- } def % don't bind, .current/setglobal get redefined
-
-% ---------------- Synthetic font support ---------------- %
-
-% Create a new font by modifying an existing one. paramdict contains
-% entries with the same keys as the ones found in a Type 1 font;
-% it should also contain enough empty entries to allow adding the
-% corresponding non-overridden entries from the original font dictionary,
-% including FID. If paramdict includes a FontInfo entry, this will
-% also override the original font's FontInfo, entry by entry;
-% again, it must contain enough empty entries.
-
-% Note that this procedure does not perform a definefont.
-
-/.makemodifiedfont % <fontdict> <paramdict> .makemodifiedfont <fontdict'>
- { exch
- { % Stack: destdict key value
- 1 index /FID ne
- { 2 index 2 index known
- { % Skip fontdict entry supplied in paramdict, but
- % handle FontInfo specially.
- 1 index /FontInfo eq
- { 2 index 2 index get % new FontInfo
- 1 index % old FontInfo
- { % Stack: destdict key value destinfo key value
- 2 index 2 index known
- { pop pop }
- { 2 index 3 1 roll put }
- ifelse
- }
- forall pop
- }
- if
- }
- { % No override, copy the fontdict entry.
- 2 index 3 1 roll put
- dup dup % to match pop pop below
- }
- ifelse
- }
- if
- pop pop
- } forall
- } bind def
-
-% Make a modified font and define it. Note that unlike definefont,
-% this does not leave the font on the operand stack.
-
-/.definemodifiedfont % <fontdict> <paramdict> .definemodifiedfont -
- { .makemodifiedfont
- dup /FontName get exch definefont pop
- } bind def
diff --git a/Master/xemtex/gslib/gs_frsd.ps b/Master/xemtex/gslib/gs_frsd.ps
deleted file mode 100644
index 10593579bf3..00000000000
--- a/Master/xemtex/gslib/gs_frsd.ps
+++ /dev/null
@@ -1,83 +0,0 @@
-% Copyright (C) 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_frsd.ps,v 1.4.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Implementation of ReusableStreamDecode filter.
-% This file must be loaded after gs_lev2.ps and gs_res.ps.
-
-level2dict begin
-
-% ------ ReusableStreamDecode filter ------ %
-
-/.reusablestreamdecode { % <source> <dict> .reusablestreamdecode <file>
- % <source> .reusablestreamdecode <file>
- % Collect the filter parameters.
- dup type /dicttype eq { 2 copy } { dup 0 dict } ifelse
- dup .rsdparams
- % Construct the filter pipeline.
- % The very first filter should use the value of CloseSource
- % from the RSD dictionary; all the others should have
- % CloseSource = true.
- % Stack: source dict filters parms
- 2 index /CloseSource .knownget not { false } if 5 -1 roll
- % Stack: dict filters parms CloseSource source
- 0 1 5 index length 1 sub {
- 4 index 1 index get
- % Stack: dict filters parms CloseSource source index filtname
- 4 index null eq {
- 0 dict
- } {
- 4 index 2 index get dup null eq { pop } if
- } ifelse
- 3 -1 roll pop exch filter
- exch pop true exch % set CloseSource for further filters
- } for
- % If AsyncRead is true, try to create the filter directly.
- % Stack: dict filters parms CloseSource source
- 4 index /AsyncRead .knownget not { false } if {
- 1 index { .reusablestream } .internalstopped
- } {
- null true
- } ifelse {
- pop
- % No luck. Read the entire contents of the stream now.
- dup type /filetype ne {
- % Make a stream from a procedure or string data source.
- 0 () .subfiledecode
- } if
- 10 dict exch {
- % Stack: dict filters parms CloseSource contdict file
- dup 1000 string readstring
- 3 index dup length 4 -1 roll put not { exit } if
- } loop pop
- % Concatenate the contents into one big string.
- % Stack: dict filters parms CloseSource contdict
- 0 1 index { length exch pop add } forall
- .bigstring exch {
- % Stack: dict filters parms CloseSource string index substring
- exch 1000 mul exch 2 index 3 1 roll putinterval
- } forall
- % Now create the stream on the string.
- 1 index .reusablestream
- } if
- % We created the stream successfully: clean up.
- 4 { exch pop } repeat
- 1 index type /dicttype eq { exch pop } if exch pop
-} odef
-
-filterdict /ReusableStreamDecode /.reusablestreamdecode load put
-
-end % level2dict
diff --git a/Master/xemtex/gslib/gs_icc.ps b/Master/xemtex/gslib/gs_icc.ps
deleted file mode 100644
index 323462342f1..00000000000
--- a/Master/xemtex/gslib/gs_icc.ps
+++ /dev/null
@@ -1,115 +0,0 @@
-% Copyright (C) 2001 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_icc.ps,v 1.2.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% PostScript portion of ICCBased color space support
-
-//userdict /.icc_comp_map_dict
- << 1 /DeviceGray 3 /DeviceRGB 4 /DeviceCMYK >>
-put
-
-colorspacedict /ICCBased
- {
- % Verify that the source object is an array, that it is at least of length
- % two, and that the second entry is a readable dictionary. If we got this
- % far, we know the top-level object exists and is readable, but it might
- % be a dictionary.
- dup type dup /arraytype ne exch /packedarraytype ne and
- { /setcolorspace /typecheck signalerror }
- if
- dup length 2 lt
- { /setcolorspace /rangecheck signalerror }
- if
- dup 1 get type /dicttype ne
- { /setcolorspace /typecheck signalerror }
- if
- dup 1 get rcheck not
- { /setcolorspace /invalidaccess signalerror }
- if
-
- % Verify that the dictionary defines the key N (number of components) and
- % entry is provided and has a legitimate value
- dup 1 get /N .knownget
- {
- //.icc_comp_map_dict exch known not
- {
- % generate the appropriate error
- /setcolorspace
- 1 index 1 get /N type type /integertype ne
- { /typecheck }
- { /rangecheck }
- ifelse
- signalerror
- }
- if
- }
- { /setcolorspace /undefined signalerror }
- ifelse
-
- % Verify DataSrouce and, if it is a string, convert it to a file
- dup 1 get /DataSource .knownget
- {
- dup rcheck not
- { pop /setcolorspace /invalidaccess signalerror }
- if
- type dup /stringtype eq
- {
- pop
- 2 array copy
- dup 1
- 2 copy get dup length dict copy
- dup /DataSource
- 2 copy get /ReusableStreamDecode filter
- put
- put
- }
- {
- /filetype ne
- { /setcolorspace /typecheck signalerror }
- if
- }
- ifelse
- }
- { /setcolorspace /undefined signalerror }
- ifelse
-
- % set the alternate color space to be the current color space
- dup 1 get /Alternate .knownget not
- { dup 1 get /N get //.icc_comp_map_dict exch get }
- if
- setcolorspace
-
- % if CIE spaces are not use, just take the alternate space
- NOCIE
- { pop //null }
- { % check for native support
- /.seticcspace where
- { pop dup 1 get
- % Acrobat Reader silently ignores errors with ICC profiles
- % and uses the alternate color space -- do the same.
- mark exch { .seticcspace } stopped
- { cleartomark pop //null }
- { pop }
- ifelse
- }
- { pop //null }
- ifelse
- }
- ifelse
- }
-bind put
-
-//userdict /.icc_comp_map_dict undef
diff --git a/Master/xemtex/gslib/gs_il1_e.ps b/Master/xemtex/gslib/gs_il1_e.ps
deleted file mode 100644
index 5557cc5bdef..00000000000
--- a/Master/xemtex/gslib/gs_il1_e.ps
+++ /dev/null
@@ -1,67 +0,0 @@
-% Copyright (C) 1993, 1994, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_il1_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the ISO Latin-1 encoding vector.
-% The first half is the same as the standard encoding,
-% except for minus instead of hyphen at code 055.
-/ISOLatin1Encoding
-StandardEncoding 0 45 getinterval aload pop
- /minus
-StandardEncoding 46 82 getinterval aload pop
-% NOTE: the following are missing in the Adobe documentation,
-% but appear in the displayed table:
-% macron at 0225, dieresis at 0230, cedilla at 0233, space at 0240.
-% This is an error in the Red Book, corrected in Adobe TN 5085.
-% \20x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
- /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
-% \24x
- /space /exclamdown /cent /sterling
- /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft
- /logicalnot /hyphen /registered /macron
- /degree /plusminus /twosuperior /threesuperior
- /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright
- /onequarter /onehalf /threequarters /questiondown
-% \30x
- /Agrave /Aacute /Acircumflex /Atilde
- /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis
- /Igrave /Iacute /Icircumflex /Idieresis
- /Eth /Ntilde /Ograve /Oacute
- /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls
-% \34x
- /agrave /aacute /acircumflex /atilde
- /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis
- /igrave /iacute /icircumflex /idieresis
- /eth /ntilde /ograve /oacute
- /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis
-% Make an array on large systems, a packed array on small ones.
-256
-vmstatus exch pop exch pop
-100000 ge { array astore readonly } { packedarray } ifelse
-def
-1 ISOLatin1Encoding .registerencoding
-/ISOLatin1Encoding ISOLatin1Encoding .defineencoding
diff --git a/Master/xemtex/gslib/gs_il2_e.ps b/Master/xemtex/gslib/gs_il2_e.ps
deleted file mode 100644
index bbfcfbb1496..00000000000
--- a/Master/xemtex/gslib/gs_il2_e.ps
+++ /dev/null
@@ -1,64 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_il2_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the ISO Latin-2 (8859-2) encoding vector.
-
-% The original version of this encoding vector used Unicode names, rather
-% than Adobe names, for many characters. Here are the names that appeared
-% in the original version:
-% \047 /quoteright /apostrophe
-% \056 /period /fullstop
-% \137 /underscore /lowline
-% \140 /quoteleft /grave
-% \055 is /hyphen in StandardEncoding, but /minus in 8859-1; we follow
-% 8859-1 here. In addition, the following substitutions were made:
-% /Lstroke => /Lslash
-% /Dstroke => /Dcroat
-% /*diaeresis => /*dieresis
-% /softhyphen => /hyphen
-% /*abovedot => /*dotaccent
-% /*doubleacute => /*hungarumlaut
-% /division => /divide
-% /ssharp => /germandbls
-
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/ISOLatin2Encoding
-% The first 144 entries are the same as the ISO Latin-1 encoding.
-ISOLatin1Encoding 0 144 getinterval aload pop
-% \22x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-% \24x
- /nbspace /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section
- /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent
- /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron
- /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent
-% \30x
- /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
- /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
- /Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
- /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls
-% \34x
- /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
- /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
- /dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
- /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent
-256 packedarray .defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_init.ps b/Master/xemtex/gslib/gs_init.ps
deleted file mode 100644
index b8938dd0750..00000000000
--- a/Master/xemtex/gslib/gs_init.ps
+++ /dev/null
@@ -1,1885 +0,0 @@
-% (C) 1989, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_init.ps,v 1.40.2.12.2.3 2003/04/12 14:02:38 giles Exp $
-% Initialization file for the interpreter.
-% When this is run, systemdict is still writable.
-
-% Comment lines of the form
-% %% Replace <n> <file(s)>
-% indicate places where the next <n> lines should be replaced by
-% the contents of <file(s)>, when creating a single merged init file.
-
-% The interpreter can call out to PostScript code. All procedures
-% called in this way, and no other procedures defined in these
-% initialization files, have names that begin with %, e.g.,
-% (%Type1BuildChar) cvn.
-
-% Check the interpreter revision. NOTE: the interpreter code requires
-% that the first non-comment token in this file be an integer.
-707
-dup revision ne
- { (gs: Interpreter revision \() print revision 10 string cvs print
- (\) does not match gs_init.ps revision \() print 10 string cvs print
- (\).\n) print flush null 1 .quit
- }
-if pop
-
-% Acquire userdict, and set its length if necessary.
-/userdict where
- { pop userdict maxlength 0 eq }
- { true }
-ifelse
-systemdict exch
- { % userdict wasn't already set up by iinit.c.
- dup /userdict
- currentdict dup 200 .setmaxlength % userdict
- .forceput % userdict is local, systemdict is global
- }
-if begin
-
-% Define dummy local/global operators if needed.
-systemdict /.setglobal known
- { true .setglobal
- }
- { /.setglobal { pop } bind def
- /.currentglobal { false } bind def
- /.gcheck { pop false } bind def
- }
-ifelse
-
-% Define .languagelevel if needed.
-systemdict /.languagelevel known not { /.languagelevel 1 def } if
-
-% Optionally choose a default paper size other than U.S. letter.
-% (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse
-
-% Turn on array packing for the rest of initialization.
-true setpacking
-
-% Define the old MS-DOS EOF character as a no-op.
-% This is a hack to get around the absurd habit of MS-DOS editors
-% of adding an EOF character at the end of the file.
-<1a> cvn { } def
-
-% Acquire the debugging flags.
-currentdict /DEBUG known /DEBUG exch def
- /VMDEBUG
- DEBUG {{print mark
- systemdict /level2dict known
- { .currentglobal dup false .setglobal vmstatus
- true .setglobal vmstatus 3 -1 roll pop
- 6 -2 roll pop .setglobal
- }
- { vmstatus 3 -1 roll pop
- }
- ifelse usertime 16#fffff and counttomark
- { ( ) print ( ) cvs print }
- repeat pop
- ( ) print systemdict length ( ) cvs print
- ( ) print countdictstack ( ) cvs print
- ( <) print count ( ) cvs print (>\n) print flush
- }}
- {{pop
- }}
- ifelse
- def
-
-currentdict /BATCH known /BATCH exch def
-currentdict /DELAYBIND known /DELAYBIND exch def
-currentdict /DISKFONTS known /DISKFONTS exch def
-currentdict /DOINTERPOLATE .knownget { /INTERPOLATE exch def } if
-currentdict /ESTACKPRINT known /ESTACKPRINT exch def
-currentdict /FAKEFONTS known /FAKEFONTS exch def
-currentdict /FIXEDMEDIA known /FIXEDMEDIA exch def
-currentdict /FIXEDRESOLUTION known /FIXEDRESOLUTION exch def
-currentdict /LOCALFONTS known /LOCALFONTS exch def
-currentdict /NOBIND known /NOBIND exch def
-/.bind /bind load def
-NOBIND { /bind { } def } if
-currentdict /NOCACHE known /NOCACHE exch def
-currentdict /NOCCFONTS known /NOCCFONTS exch def
-currentdict /NOCIE known /NOCIE exch def
-currentdict /NODISPLAY known not /DISPLAYING exch def
-currentdict /NOFONTMAP known /NOFONTMAP exch def
-currentdict /NOCIDFONTMAP known /NOCIDFONTMAP exch def
-currentdict /NOFONTPATH known /NOFONTPATH exch def
-currentdict /NOGC known /NOGC exch def
-currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
-currentdict /NOPAGEPROMPT known /NOPAGEPROMPT exch def
-currentdict /NOPAUSE known /NOPAUSE exch def
-currentdict /NOPLATFONTS known /NOPLATFONTS exch def
-currentdict /NOPROMPT known /NOPROMPT exch def
-% The default value of ORIENT1 is true, not false.
-currentdict /ORIENT1 known not { /ORIENT1 true def } if
-currentdict /OSTACKPRINT known /OSTACKPRINT exch def
-currentdict /OUTPUTFILE known % obsolete
- { /OutputFile /OUTPUTFILE load def
- currentdict /OUTPUTFILE .undef
- } if
-currentdict /QUIET known /QUIET exch def
-% DELAYSAFER is effectively the same as newer NOSAFER
-currentdict /DELAYSAFER known { /DELAYSAFER true def /NOSAFER true def } if
-currentdict /PARANOIDSAFER known /PARANOIDSAFER exch def
-/SAFER currentdict /NOSAFER known {
- false
-} {
- currentdict /SAFER known PARANOIDSAFER or
-}
-ifelse def
-currentdict /SHORTERRORS known /SHORTERRORS exch def
-currentdict /STRICT known /STRICT exch def
-currentdict /TTYPAUSE known /TTYPAUSE exch def
-currentdict /WRITESYSTEMDICT known /WRITESYSTEMDICT exch def
-
-% Acquire environment variables.
-currentdict /DEVICE known not
- { (GS_DEVICE) getenv { /DEVICE exch def } if } if
-
-(START) VMDEBUG
-
-% Open the standard files, so they will be open at the outermost save level.
-(%stdin) (r) file pop
-(%stdout) (w) file pop
-(%stderr) (w) file pop
-
-/.currentuserparams where {
- pop mark
- % The Adobe implementations appear to have very large maximum
- % stack sizes. This turns out to actually make a difference,
- % since some badly-behaved files include extremely long procedures,
- % or construct huge arrays on the operand stack.
- % We reset the stack sizes now so that we don't have to worry
- % about overflowing the (rather small) built-in stack sizes
- % during initialization.
- /MaxDictStack 500
- /MaxExecStack 5000
- /MaxOpStack 50000
- .dicttomark .setuserparams
-} if
-
-% Define a procedure for skipping over an unneeded section of code.
-% This avoids allocating space for the skipped procedures.
-% We can't use readline, because that imposes a line length limit.
-/.skipeof % <string> .skipeof -
- { currentfile exch 1 exch .subfiledecode flushfile
- } .bind def
-
-% Define procedures to assist users who don't read the documentation.
-userdict begin
-/help
- { (Enter PostScript commands. '(filename) run' runs a file, 'quit' exits.\n)
- print flush
- } .bind def
-end
-
-% Define =string, which is used by some PostScript programs even though
-% it isn't documented anywhere.
-% Put it in userdict so that each context can have its own copy.
-userdict /=string 256 string put
-
-% Print the greeting.
-
-/printgreeting
- { mark
- product (Ghostscript) search
- { pop pop pop
- (This software comes with NO WARRANTY: see the file PUBLIC for details.\n)
- }
- { pop
- }
- ifelse
- (\n) copyright
- (\)\n) revisiondate 10 mod revisiondate 10 idiv 10 mod (-)
- revisiondate 100 idiv 10 mod revisiondate 1000 idiv 10 mod (-)
- revisiondate 10000 idiv ( \()
- revision 10 mod
- revision 100 mod 10 idiv (.)
- revision 100 idiv ( )
- product
- counttomark
- { (%stdout) (w) file exch 0 .writecvp
- } repeat pop
- } .bind def
-
-QUIET not { printgreeting flush } if
-
-% Define a special version of def for making operator procedures.
-/obind { % <name> <proc> obind <name> <oper>
- 1 index exch .makeoperator
-} .bind def
-/odef { % <name> <proc> odef -
- 1 index exch .makeoperator def
-} .bind def
-
-% Define a special version of def for storing local objects into global
-% dictionaries. Like .forceput, this exists only during initialization.
-/.forcedef { % <key> <value> .forcedef -
- currentdict 3 1 roll .forceput
-} .bind odef
-
-% Define procedures for accessing variables in systemdict and userdict
-% regardless of the contents of the dictionary stack.
-/.systemvar { % <name> .systemvar <value>
- //systemdict exch get
-} .bind odef
-/.userdict { % - .userdict <dict>
- /userdict .systemvar
-} .bind odef
-/.uservar { % <name> .uservar <value>
- .userdict exch get
-} .bind odef
-
-% If we're delaying binding, remember everything that needs to be bound later.
-DELAYBIND NOBIND not and
- { .currentglobal false .setglobal
- systemdict /.delaybind 1500 array .forceput
- .setglobal
- userdict /.delaycount 0 put
- % When we've done the delayed bind, we want to stop saving.
- % Detect this by the disappearance of .delaybind.
- /bind
- { /.delaybind .systemvar dup length 0 ne
- { .delaycount 2 index put
- .userdict /.delaycount .delaycount 1 add put
- }
- { pop .bind
- }
- ifelse
- } .bind def
- } if
-
-%**************** BACKWARD COMPATIBILITY ****************
-/hwsizedict mark /HWSize null .dicttomark readonly def
-/copyscanlines { % <device> <y> <string> copyscanlines <substr>
- 0 3 1 roll 3 index //hwsizedict .getdeviceparams
- exch pop exch pop aload pop 3 2 roll
- 0 exch null exch .getbitsrect exch pop
-} bind odef
-currentdict /hwsizedict .undef
-/getdeviceprops
- { null .getdeviceparams
- } bind odef
-/.putdeviceprops
- { null true counttomark 1 add 3 roll .putdeviceparams
- dup type /booleantype ne
- { dup mark eq { /unknown /rangecheck } if
- counttomark 4 add 1 roll cleartomark pop pop pop
- /.putdeviceprops load exch signalerror
- }
- if
- } bind odef
-/.currentfilladjust { .currentfilladjust2 pop } bind odef
-/.setfilladjust { dup .setfilladjust2 } bind odef
-/.writecvs { 0 .writecvp } bind odef
-%**************** DEPRECATED PROCEDURES ****************
-%**************** DO NOT USE THESE IN NEW CODE ****************
-/max { .max } bind def % use .max instead
-/min { .min } bind def % use .min instead
-/unread /.unread load def % use .peekstring instead
-%**************** END OF BACKWARD COMPATIBILITY SECTION ****************
-
-% Define predefined procedures substituting for operators,
-% in alphabetical order.
-
-userdict /#copies 1 put
-% Adobe implementations don't accept /[ or /], so we don't either.
-([) cvn
- /mark load def
-(]) cvn
- {counttomark array astore exch pop} odef
-% .beginpage is redefined if setpagedevice is present.
-/.beginpage { } odef
-% In LanguageLevel 3, copypage erases the page.
-/copypage {
- .languagelevel 3 ge
- dup { 0 } { 1 } ifelse .endpage {
- .currentnumcopies 1 index .outputpage
- (>>copypage, press <return> to continue<<\n) .confirm
- dup { erasepage } if
- } if pop .beginpage
-} odef
-/currentmatrix {
- .currentmatrix 6 index astore pop
-} odef
-% .currentnumcopies is redefined in Level 2.
-/.currentnumcopies { #copies } odef
-/setcolorscreen where { pop % not in all Level 1 configurations
- /currentcolorscreen
- { .currenthalftone
- { { 60 exch 0 exch 3 copy 6 copy } % halftone - not possible
- { 3 copy 6 copy } % screen
- { } % colorscreen
- }
- exch get exec
- } odef
-} if
-/currentscreen
- { .currenthalftone
- { { 60 exch 0 exch } % halftone - not possible
- { } % screen
- { 12 3 roll 9 { pop } repeat } % colorscreen
- }
- exch get exec
- } odef
-/.echo /echo load def
-userdict /.echo.mode true put
-/echo {dup /.echo.mode exch store .echo} odef
-/eexec {
- % Rebind .currentresourcefile if it is the source for the eexec.
- dup 55665 //filterdict /eexecDecode get exec
- cvx exch .currentresourcefile eq
- //systemdict begin { {exec} .execasresource } { exec } ifelse
- % Only pop systemdict if it is still the top element,
- % because this is apparently what Adobe interpreters do.
- currentdict //systemdict eq { end } if
-} odef
-% .endpage is redefined if setpagedevice is present.
-/.endpage { 2 ne } odef
-% erasepage mustn't use gsave/grestore, because we call it before
-% the graphics state stack has been fully initialized.
-/erasepage
- { /currentcolor where
- { pop currentcolor currentcolorspace { setcolorspace setcolor } }
- { /currentcmykcolor where
- { pop currentcmykcolor { setcmykcolor } }
- { currentrgbcolor { setrgbcolor } }
- ifelse
- }
- ifelse 1 setgray .fillpage exec
- } odef
-% To satisfy the Genoa FTS, executive must be a procedure, not an operator.
-/executive
- { { prompt
- { (%statementedit) (r) file } stopped
- { pop pop $error /errorname get /undefinedfilename eq
- { .clearerror exit } if % EOF
- handleerror null % ioerror??
- }
- if
- cvx { .runexec } execute
- } loop
- } bind def
-/filter
- { //filterdict 1 index .knownget
- { exch pop exec }
- { /filter load /undefined signalerror }
- ifelse
- } odef
-/handleerror
- { /errordict .systemvar /handleerror get exec } bind def
-/identmatrix [1.0 0.0 0.0 1.0 0.0 0.0] readonly def
-/identmatrix
- { dup 0 //identmatrix putinterval } odef
-/languagelevel 1 def % gs_lev2.ps may change this
-/makeimagedevice { false makewordimagedevice } odef
-/matrix { 6 array identmatrix } odef
-/pathbbox
- { false .pathbbox
- } odef
-% .promptmsg is redefined if the interpreter includes readline support.
-/.promptmsg {
- (GS) print
- count 0 ne { (<) print count =only } if
- (>) print flush
-} bind def
-/prompt { flush flushpage NOPROMPT not { .promptmsg } if } bind def
-/pstack { 0 1 count 3 sub { index == } for } bind def
-/putdeviceprops
- { .putdeviceprops { erasepage } if } odef
-/quit { /quit load 0 .quit } odef
-/run { dup type /filetype ne { (r) file } if
- % We must close the file when execution terminates,
- % regardless of the state of the stack,
- % and then propagate an error, if any.
- cvx .runexec
- } odef
-% Execute a file.
-% Level 2 uses 2 .stop to clear the e-stack for a successful startjob:
-% we detect that here, since we need to handle this even if we start out
-% without job control in effect.
-%
-% What we push on the e-stack is the following to be executed in this order:
-% <lit-file|fileproc> .runexec1 <lit-file|fileproc> .runexec2
-/.runexec1 { % <file|fileproc> .runexec1 -
- dup type /filetype ne { cvx exec } if
- cvx null 2 .stopped
- % If we got back here from a startjob, just keep going.
- % startjob replaces the null on the o-stack with a procedure
- % to be executed when we get back here.
- dup null ne { exec true } { pop false } ifelse
-} bind def
-/.runexec2 { % <continue> <file|fileproc> .runexec2 -
- exch {
- .runexec
- } {
- dup type /filetype ne { cvx exec } if
- closefile
- } ifelse
-} bind def
-/.runexec { % <file|fileproc> .runexec -
- cvlit /.runexec1 cvx 1 index /.runexec2 cvx 4 .execn
-} bind def
-% The following is only for compatibility with Adobe interpreters.
-/setdash {
- 1 index length 11 gt { /setdash load /limitcheck signalerror } if
- //setdash
-} odef
-/setdevice
- { .setdevice { erasepage } if } odef
-/setlinecap {
- dup 2 gt { /setlinecap load /rangecheck signalerror } if
- .setlinecap
-} odef
-/setlinejoin {
- dup 2 gt { /setlinejoin load /rangecheck signalerror } if
- .setlinejoin
-} odef
-/setmatrix {
- dup aload pop .setmatrix pop
-} odef
-/showpage {
- 0 .endpage .doneshowpage {
- .currentnumcopies true .outputpage
- (>>showpage, press <return> to continue<<\n) .confirm
- erasepage
- } if initgraphics .beginpage
-} odef
-% Code output by Adobe Illustrator relies on the fact that
-% `stack' is a procedure, not an operator!!!
-/stack { 0 1 count 3 sub { index = } for } bind def
-/start { BATCH { null 0 .quit } { executive } ifelse } def
-% Internal uses of stopped that aren't going to do a stop if an error occurs
-% should use .internalstopped to avoid setting newerror et al.
-/.internalstopped { null 1 .stopped null ne } bind def
-/store { % Don't alter operands before completing.
- 1 index where { 2 index 2 index put pop pop } { def } ifelse
-} odef
-/.typenames mark .typenames counttomark packedarray exch pop def
-/type {
- //.typenames .type
-} odef
-currentdict /.typenames .undef
-% When running in Level 1 mode, this interpreter is supposed to be
-% compatible with PostScript "version" 54.0 (I think).
-/version (54.0) readonly def
-/.wheredict 10 dict def
-/.where /where load def
-/where {
- //.wheredict 1 index .knownget { exec } { .where } ifelse
-} odef
-
-% internaldict is defined in systemdict, but the dictionary is allocated
-% in local VM. However, the procedure must be global, since it is an
-% "operator" and must be bind-able into global procedures.
-% We make a procedure for creating it, since we must create a new one
-% for each context with private local VM.
-/.makeinternaldict {
- .currentglobal true .setglobal
- [ /dup .systemvar 1183615869 /eq .systemvar
- [ /pop .systemvar null ] cvx
- false .setglobal
- dup 1 10 dict .forceput % proc is global, dict is local
- true .setglobal
- [ /internaldict /cvx .systemvar /invalidaccess /signalerror cvx ] cvx
- /ifelse .systemvar
- ] cvx executeonly
- exch .setglobal
-} odef
-systemdict /internaldict dup .makeinternaldict .makeoperator
-.forceput % proc is local, systemdict is global
-% Move superexec to internaldict if superexec is defined.
-currentdict /superexec .knownget {
- 1183615869 internaldict /superexec 3 -1 roll put
- currentdict /superexec .undef
-} if
-
-% Define some additional built-in procedures (beyond the ones defined by
-% the PostScript Language Reference Manual).
-% Warning: these are not guaranteed to stay the same from one release
-% to the next!
-/concatstrings % (str1) (str2) concatstrings (str1str2)
- { exch dup length 2 index length add string % str2 str1 new
- dup dup 4 2 roll copy % str2 new new new1
- length 4 -1 roll putinterval
- } bind def
-/copyarray
- { dup length array copy } bind def
-% Copy a dictionary per the Level 2 spec even in Level 1.
-/.copydict % <fromdict> <todict> .copydict <todict>
- { dup 3 -1 roll { put dup } forall pop } bind def
-/copystring
- { dup length string copy } bind def
-/findlibfile {
- .libfile { dup .filename pop exch true } { false } ifelse
-} odef
-/.growdictlength % get size for growing a dictionary
- { length 3 mul 2 idiv 1 add
- } bind def
-/.growdict % grow a dictionary
- { dup .growdictlength .setmaxlength
- } bind def
-/.growput % put, grow the dictionary if needed
- { 2 index length 3 index maxlength eq
- { 3 copy pop known not { 2 index .growdict } if
- } if
- put
- } bind def
-% .localvmarray may be an operator: see zsysvm.c.
-/.localvmarray where {
- pop
-} {
- /.localvmarray {
- .currentglobal false .setglobal
- exch array exch .setglobal
- } bind def
-} ifelse
-/.localvmdict where {
- pop
-} {
- /.localvmdict {
- .currentglobal false .setglobal
- exch dict exch .setglobal
- } bind def
-} ifelse
-/.packtomark
- { counttomark packedarray exch pop } bind def
-/ppstack
- { 0 1 count 3 sub { index === } for } bind def
-/runlibfile
- { % We don't want to bind 'run' into this procedure,
- % since run may get redefined.
- findlibfile
- { exch pop /run .systemvar exec }
- { /undefinedfilename signalerror }
- ifelse
- } bind def
-/selectdevice
- { finddevice setdevice .setdefaultscreen } bind def
-/signalerror % <object> <errorname> signalerror -
- { /errordict .systemvar exch get exec } bind def
-
-% Define the =[only] procedures. Also define =print,
-% which is used by some PostScript programs even though
-% it isn't documented anywhere.
-/write=only {
- .writecvs
-} bind def
-/write= {
- 1 index exch write=only (\n) writestring
-} bind def
-/=only { (%stdout) (w) file exch write=only } bind def
-/= { =only (\n) print } bind def
-/=print /=only load def
-% Temporarily define == as = for the sake of runlibfile0.
-/== /= load def
-
-% The following procedures are documented.
-/copydevice { % <device> copydevice <newdevice>
- false .copydevice2
-} odef
-/finddevice { % <devicename> finddevice <device>
- /devicedict .systemvar exch get
- dup 1 get null eq {
- % This is the first request for this type of device.
- % Create a default instance now.
- % Stack: [proto null]
- .currentglobal true .setglobal exch
- dup dup 0 get copydevice 1 exch put
- exch .setglobal
- } if 1 get
-} bind def
-/findprotodevice { % <devicename> findprotodevice <protodevice>
- /devicedict .systemvar exch get 0 get
-} bind def
-
-% Run a resource file. This allows us to distinguish resource objects
-% from objects coming from input files.
-userdict /.currentresourcefile null put
-/.execasresource { % <file> <proc|runfile> .execasresource -
- /stopped .systemvar
- /.currentresourcefile .uservar
- % Stack: file proc -stopped- currfile
- .userdict /.currentresourcefile 5 index cvlit put
- 2 .execn % stopped <file>
- .userdict /.currentresourcefile 3 -1 roll put
- { stop } if
-} bind def
-/.runresource { % <file> .runresource -
- { /run .systemvar exec } .execasresource
-} bind def
-
-% Define procedures for getting and setting the current device resolution.
-
-/gsgetdeviceprop % <device> <propname> gsgetdeviceprop <value>
- { 2 copy mark exch null .dicttomark .getdeviceparams
- dup mark eq % if true, not found
- { pop dup /undefined signalerror }
- { 5 1 roll pop pop pop pop }
- ifelse
- } bind def
-/gscurrentresolution % - gscurrentresolution <[xres yres]>
- { currentdevice /HWResolution gsgetdeviceprop
- } bind def
-/gssetresolution % <[xres yres]> gssetresolution -
- { 2 array astore mark exch /HWResolution exch
- currentdevice copydevice putdeviceprops setdevice
- } bind def
-
-% Define auxiliary procedures needed for the above.
-/shellarguments % -> shell_arguments true (or) false
- { /ARGUMENTS where
- { /ARGUMENTS get dup type /arraytype eq
- { aload pop /ARGUMENTS null store true }
- { pop false }
- ifelse }
- { false } ifelse
- } bind def
-/.confirm {
- DISPLAYING NOPAUSE not TTYPAUSE or and {
- % Print a message (unless NOPAGEPROMPT or NOPROMPT is true)
- % and wait for the user to type something.
- % If the user just types a newline, flush it.
- NOPAGEPROMPT NOPROMPT or { pop } { print flush } ifelse
- .confirmread
- } {
- pop
- } ifelse
-} bind def
-/.confirmread {
- TTYPAUSE {
- (/dev/tty) (r) file dup read pop pop closefile
- } {
- .echo.mode false echo
- (%stdin) (r) file dup read {
- dup (\n) 0 get eq { pop pop } { unread } ifelse
- } {
- pop
- } ifelse echo
- } ifelse
-} bind def
-
-% Define the procedure used by .runfile, .runstdin and .runstring
-% for executing user input.
-% This is called with a procedure or executable file on the operand stack.
-/.execute { % <obj> .execute <stopped>
- stopped $error /newerror get and
- { handleerror flush true } { false } ifelse
-} bind def
-/execute { % <obj> execute -
- .execute pop
-} odef
-% Define an execute analogue of runlibfile0.
-/execute0 { % <obj> execute0 -
- .execute { /execute0 cvx 1 .quit } if
-} bind def
-% Define the procedure that the C code uses for running files
-% named on the command line.
-/.runfile {
- { runlibfile } execute0
-} def
-% Define the procedure that the C code uses for running piped input.
-% We don't use the obvious { (%stdin) run }, because we want the file to be
-% reopened if a startjob does a restore.
-/.runstdin {
- { { (%stdin) (r) file cvx } .runexec } execute0
-} bind def
-% Define the procedure that the C code uses for running commands
-% given on the command line with -c. We turn the string into a file so that
-% .runexec can do the right thing with a startjob.
-/.runstring {
- .currentglobal exch true .setglobal
- 0 () .subfiledecode
- exch .setglobal cvx { .runexec } execute0
-} bind def
-% Define the procedure that the C code uses to set up for executing
-% a string that may be received in pieces.
-/.runstringbegin {
- .currentglobal true .setglobal
- { .needinput } bind 0 () .subfiledecode
- exch .setglobal cvx .runexec
-} bind def
-
-% Define a special version of runlibfile that aborts on errors.
-/runlibfile0
- { cvlit dup /.currentfilename exch def
- { findlibfile not { stop } if }
- stopped
- { (Can't find \(or open\) initialization file ) print
- .currentfilename == flush /runlibfile0 cvx 1 .quit
- } if
- exch pop cvx stopped
- { (While reading ) print .currentfilename print (:\n) print flush
- handleerror /runlibfile0 1 .quit
- } if
- } bind def
-% Temporarily substitute it for the real runlibfile.
-/.runlibfile /runlibfile load def
-/runlibfile /runlibfile0 load def
-
-% Create the error handling machinery.
-% Define the standard error handlers.
-% The interpreter has created the ErrorNames array.
-/.unstoppederrorhandler % <command> <errorname> .unstoppederrorhandler -
- { % This is the handler that gets used for recursive errors,
- % or errors outside the scope of a 'stopped'.
- 2 copy SHORTERRORS
- { (%%[ Error: ) print =only flush
- (; OffendingCommand: ) print =only ( ]%%) =
- }
- { (Unrecoverable error: ) print =only flush
- ( in ) print = flush
- count 2 gt
- { (Operand stack:\n ) print
- count 1 sub -1 2 { ( ) print index =only flush } for
- () = flush
- } if
- }
- ifelse
- -1 0 1 //ErrorNames length 1 sub
- { dup //ErrorNames exch get 3 index eq
- { not exch pop exit } { pop } ifelse
- }
- for exch pop .quit
- } bind def
-/.errorhandler % <command> <errorname> .errorhandler -
- { % Detect an internal 'stopped'.
- 1 .instopped { null eq { pop pop stop } if } if
- $error /.inerror get 1 .instopped { pop } { pop true } ifelse
- { .unstoppederrorhandler
- } if % detect error recursion
- $error /globalmode .currentglobal false .setglobal put
- $error /.inerror true put
- $error /newerror true put
- $error exch /errorname exch put
- $error exch /command exch put
- $error /recordstacks get $error /errorname get /VMerror ne and
- { % Attempt to store the stack contents atomically.
- count array astore dup $error /ostack 4 -1 roll
- countexecstack array execstack $error /estack 3 -1 roll
- countdictstack array dictstack $error /dstack 3 -1 roll
- put put put aload pop
- }
- { $error /dstack .undef
- $error /estack .undef
- $error /ostack .undef
- }
- ifelse
- $error /position currentfile status
- { currentfile { fileposition } .internalstopped { pop null } if
- }
- { % If this was a scanner error, the file is no longer current,
- % but the command holds the file, which may still be open.
- $error /command get dup type /filetype eq
- { { fileposition } .internalstopped { pop null } if }
- { pop null }
- ifelse
- }
- ifelse put
- % During initialization, we don't reset the allocation
- % mode on errors.
- $error /globalmode get $error /.nosetlocal get and .setglobal
- $error /.inerror false put
- stop
- } bind def
-% Define the standard handleerror. We break out the printing procedure
-% (.printerror) so that it can be extended for binary output
-% if the Level 2 facilities are present.
- /.printerror
- { $error begin
- /command load errorname SHORTERRORS
- { (%%[ Error: ) print =only flush
- (; OffendingCommand: ) print =only
- errorinfo dup null eq {
- pop
- } {
- (;\nErrorInfo:) print
- dup type /arraytype eq
- { { ( ) print =only } forall }
- { ( ) print =only }
- ifelse
- } ifelse
- ( ]%%) = flush
- }
- { (Error: ) print ==only flush
- ( in ) print ==only flush
- errorinfo dup null eq {
- pop
- } {
- (\nAdditional information: ) print ==only flush
- } ifelse
- .printerror_long
- }
- ifelse
- .clearerror
- end
- flush
- } bind def
- /.printerror_long % long error printout,
- % $error is on the dict stack
- { % Push the (anonymous) stack printing procedure.
- % <heading> <==flag> <override-name> <stackname> proc
- {
- currentdict exch .knownget % stackname defined in $error?
- {
- 4 1 roll % stack: <stack> <head> <==flag> <over>
- errordict exch .knownget % overridename defined?
- {
- exch pop exch pop exec % call override with <stack>
- }
- {
- exch print exch % print heading. stack <==flag> <stack>
- 1 index not { () = } if
- { 1 index { (\n ) } { ( ) } ifelse print
- dup type /dicttype eq
- {
- (--dict:) print
- dup rcheck {
- dup length =only (/) print dup maxlength =only
- dup wcheck not { ((ro)) print } if
- } if
- /gcheck where {
- pop gcheck { ((G)) } { ((L)) } ifelse print
- } {
- pop
- } ifelse (--) print
- }
- {
- dup type /stringtype eq 2 index or
- { ==only } { =only } ifelse
- } ifelse
- } forall
- pop
- }
- ifelse % overridden
- }
- { pop pop pop
- }
- ifelse % stack known
- }
-
- (\nOperand stack:) OSTACKPRINT /.printostack /ostack 4 index exec
- (\nExecution stack:) ESTACKPRINT /.printestack /estack 4 index exec
- (\nBacktrace:) true /.printbacktrace /backtrace 4 index exec
- (\nDictionary stack:) false /.printdstack /dstack 4 index exec
- () =
- pop % printing procedure
-
- errorname /VMerror eq
- { (VM status:) print mark vmstatus
- counttomark { ( ) print counttomark -1 roll dup =only } repeat
- cleartomark () =
- } if
-
- .languagelevel 2 ge
- { (Current allocation mode is ) print
- globalmode { (global\n) } { (local\n) } ifelse print
- } if
-
- .oserrno dup 0 ne
- { (Last OS error: ) print
- errorname /VMerror ne
- { dup .oserrorstring { = pop } { = } ifelse }
- { = }
- ifelse
- }
- { pop
- }
- ifelse
-
- position null ne
- { (Current file position is ) print position = }
- if
-
- } bind def
-% Define a procedure for clearing the error indication.
-/.clearerror
- { $error /newerror false put
- $error /errorname null put
- $error /errorinfo null put
- 0 .setoserrno
- } bind def
-
-% Define $error. This must be in local VM.
-.currentglobal false .setglobal
-/$error 40 dict .forcedef % $error is local, systemdict is global
- % newerror, errorname, command, errorinfo,
- % ostack, estack, dstack, recordstacks,
- % binary, globalmode,
- % .inerror, .nosetlocal, position,
- % plus extra space for badly designed error handers.
-$error begin
- /newerror false def
- /recordstacks true def
- /binary false def
- /globalmode .currentglobal def
- /.inerror false def
- /.nosetlocal true def
- /position null def
-end
-% Define errordict similarly. It has one entry per error name,
-% plus handleerror. However, some astonishingly badly written PostScript
-% files require it to have at least one empty slot.
-/errordict ErrorNames length 2 add dict
-.forcedef % errordict is local, systemdict is global
-.setglobal % contents of errordict are global
-errordict begin
- ErrorNames
- { mark 1 index systemdict /.errorhandler get /exec load .packtomark cvx def
- } forall
-% The handlers for interrupt and timeout are special; there is no
-% 'current object', so they push their own name.
- { /interrupt /timeout }
- { mark 1 index dup systemdict /.errorhandler get /exec load .packtomark cvx def
- } forall
-/handleerror
- { /.printerror .systemvar exec
- } bind def
-end
-
-% Define the [write]==[only] procedures.
-/.dict 8 dict dup
-begin def
- /.cvp {1 index exch 1 .writecvp} bind def
- /.p {1 index exch writestring} bind def
- /.p1 {2 index exch writestring} bind def
- /.p2 {3 index exch writestring} bind def
- /.print
- { dup type .dict exch .knownget { exec } { .cvp } ifelse
- } bind def
- /arraytype
- {dup rcheck
- {() exch dup xcheck
- {({) .p2
- {exch .p1
- 1 index exch .print pop ( )} forall
- (})}
- {([) .p2
- {exch .p1
- 1 index exch .print pop ( )} forall
- (])}
- ifelse exch pop .p}
- {.cvp}
- ifelse} bind def
- /packedarraytype /arraytype load def
-{//.dict begin .print pop end}
- bind
-end
-
-/write==only exch def
-/write== {1 index exch write==only (\n) writestring} bind def
-/==only { (%stdout) (w) file exch write==only } bind def
-/== {==only (\n) print} bind def
-
-% Define [write]===[only], an extension that prints dictionaries
-% in readable form and doesn't truncate strings.
-/.dict /write==only load 0 get dup length 2 add dict .copydict dup
-begin def
- /dicttype
- { dup rcheck
- { (<< ) .p1
- { 2 index 3 -1 roll .print pop ( ) .p1
- 1 index exch .print pop ( ) .p
- }
- forall (>>) .p
- }
- { .cvp
- }
- ifelse
- } bind def
- /stringtype
- { 1 index exch 2 .writecvp
- } bind def
-
-{//.dict begin .print pop end}
- bind
-end
-
-/write===only exch def
-/write=== {1 index exch write===only (\n) writestring} bind def
-/===only { (%stdout) (w) file exch write===only } bind def
-/=== { ===only (\n) print } bind def
-
-(END PROCS) VMDEBUG
-
-% Define the font directory.
-/FontDirectory false .setglobal 100 dict true .setglobal
-.forcedef % FontDirectory is local, systemdict is global
-
-% Define the encoding dictionary.
-/EncodingDirectory 16 dict def % enough for Level 2 + PDF standard encodings
-
-% Define .findencoding. (This is redefined in Level 2.)
-/.findencoding
- { //EncodingDirectory exch get exec
- } bind def
-/.defineencoding
- { //EncodingDirectory 3 1 roll put
- } bind def
-% If we've got the composite font extensions, define findencoding.
-% To satisfy the Genoa FTS, findencoding must be a procedure, not an operator.
-/rootfont where { pop /findencoding { .findencoding } def } if
-
-% Define .registerencoding.
-% NOTE: the name registeredencodings is known to (initialized by and shared
-% with) the interpreter.
-/.registerencoding { % <index> <array> .registerencoding -
- % Check that the array is indexable.
- % (It might still be a string, but then the .namestring will fail.)
- dup 0 0 getinterval pop
- % Check that all the elements of the array are names.
- dup { .namestring pop } forall
- % Do the store.
- //registeredencodings 2 index 2 index readonly put pop pop
-} bind odef
-systemdict /registeredencodings .undef
-
-% Load StandardEncoding.
-%% Replace 1 (gs_std_e.ps)
-(gs_std_e.ps) dup runlibfile VMDEBUG
-
-% Load ISOLatin1Encoding.
-%% Replace 1 (gs_il1_e.ps)
-(gs_il1_e.ps) dup runlibfile VMDEBUG
-
-% Define stubs for the Symbol and Dingbats encodings.
-% Note that the first element of the procedure must be the file name,
-% since gs_lev2.ps extracts it to set up the Encoding resource category.
-
- /SymbolEncoding { /SymbolEncoding .findencoding } bind def
-%% Replace 3 (gs_sym_e.ps)
- EncodingDirectory /SymbolEncoding
- { (gs_sym_e.ps) //systemdict begin runlibfile SymbolEncoding end }
- bind put
-
- /DingbatsEncoding { /DingbatsEncoding .findencoding } bind def
-%% Replace 3 (gs_dbt_e.ps)
- EncodingDirectory /DingbatsEncoding
- { (gs_dbt_e.ps) //systemdict begin runlibfile DingbatsEncoding end }
- bind put
-
-(END FONTDIR/ENCS) VMDEBUG
-
-% Construct a dictionary of all available devices.
-% These are (read-only) device prototypes that can't be
-% installed or have their parameters changed. For this reason,
-% the value in the dictionary is actually a 2-element writable array,
-% to allow us to create a default instance of the prototype on demand.
-
- % Loop until the .getdevice gets a rangecheck.
-errordict /rangecheck 2 copy get
-errordict /rangecheck { pop stop } put % pop the command
- 0 { {dup .getdevice exch 1 add} loop} .internalstopped pop
- 1 add dict /devicedict 1 index def
- begin % 2nd copy of count is on stack
- { dup .devicename exch
- dup wcheck { dup } { null } ifelse 2 array astore def
- } repeat
- end
-put % errordict /rangecheck
-.clearerror
-/devicenames devicedict { pop } forall devicedict length packedarray def
-
-% Determine the default device.
-/defaultdevice DISPLAYING
- { systemdict /DEVICE .knownget
- { devicedict 1 index known not
- { (Unknown device: ) print =
- flush /defaultdevice cvx 1 .quit
- }
- if
- }
- { 0 .getdevice .devicename
- }
- ifelse
- }
- { /nullpage
- }
-ifelse
-/.defaultdevicename 1 index def
-finddevice % make a copy
-def
-devicedict /Default devicedict .defaultdevicename get put
-
-(END DEVS) VMDEBUG
-
-% Define statusdict, for the benefit of programs
-% that think they are running on a LaserWriter or similar printer.
-%% Replace 1 (gs_statd.ps)
-(gs_statd.ps) runlibfile
-
-(END STATD) VMDEBUG
-
-% Load the standard font environment.
-%% Replace 1 (gs_fonts.ps)
-(gs_fonts.ps) runlibfile
-
-(END GS_FONTS) VMDEBUG
-
-% Define the default halftone screen and BG/UCR functions now, so that
-% it will bind in the original definitions of set[color]screen.
-% We make this a procedure so we can call it again when switching devices.
-
-% Use an ordered dither for low-resolution devices.
-/.setloreshalftone { % <dpi> .setloreshalftone -
- % The following 'ordered dither' spot function was contributed by
- % Gregg Townsend. Thanks, Gregg!
- 16.001 div 0 % not 16: avoids rounding problems
- { 1 add 7.9999 mul cvi exch 1 add 7.9999 mul cvi 16 mul add <
- 0E 8E 2E AE 06 86 26 A6 0C 8C 2C AC 04 84 24 A4
- CE 4E EE 6E C6 46 E6 66 CC 4C EC 6C C4 44 E4 64
- 3E BE 1E 9E 36 B6 16 96 3C BC 1C 9C 34 B4 14 94
- FE 7E DE 5E F6 76 D6 56 FC 7C DC 5C F4 74 D4 54
- 01 81 21 A1 09 89 29 A9 03 83 23 A3 0B 8B 2B AB
- C1 41 E1 61 C9 49 E9 69 C3 43 E3 63 CB 4B EB 6B
- 31 B1 11 91 39 B9 19 99 33 B3 13 93 3B BB 1B 9B
- F1 71 D1 51 F9 79 D9 59 F3 73 D3 53 FB 7B DB 5B
- 0D 8D 2D AD 05 85 25 A5 0F 8F 2F AF 07 87 27 A7
- CD 4D ED 6D C5 45 E5 65 CF 4F EF 6F C7 47 E7 67
- 3D BD 1D 9D 35 B5 15 95 3F BF 1F 9F 37 B7 17 97
- FD 7D DD 5D F5 75 D5 55 FF 7F DF 5F F7 77 D7 57
- 02 82 22 A2 0A 8A 2A AA 00 80 20 A0 08 88 28 A8
- C2 42 E2 62 CA 4A EA 6A C0 40 E0 60 C8 48 E8 68
- 32 B2 12 92 3A BA 1A 9A 30 B0 10 90 38 B8 18 98
- F2 72 D2 52 FA 7A DA 5A F0 70 D0 50 F8 78 D8 58
- > exch get 256 div
- }
- bind
- % Use correct, per-plane screens for CMYK devices only.
- //systemdict /setcolorscreen known processcolors 4 eq and
- { 3 copy 6 copy //setcolorscreen }
- { //setscreen }
- ifelse
-} bind def
-/.setloresscreen { % <dpi> .setloresscreen -
- .setloreshalftone
- 0 array cvx settransfer % Genoa CET won't accept a packed array!
- /setstrokeadjust where { pop true setstrokeadjust } if
-} bind def
-% Use a 45-degree spot screen for high-resolution devices.
-/.sethireshalftone { % <dpi> .sethireshalftone <doscreen>
- % According to information published by Hewlett-Packard,
- % they use a 60 line screen on 300 DPI printers and
- % an 85 line screen on 600 DPI printers.
- % However, we use a 106 line screen, which produces smoother-
- % looking shades but fewer of them (32 vs. 50).
- % 46 was suggested as a good frequency value for printers
- % between 200 and 400 DPI, so we use it for lower resolutions.
- % Imagesetters need even higher frequency screens.
- //systemdict /DITHERPPI known
- { DITHERPPI
- }
- { dup cvi 100 idiv 15 .min
- {null 46 46 60 60 60 106 106 106 106 133 133 133 133 133 150}
- exch get
- }
- ifelse
- 1 index 4.01 div .min % at least a 4x4 cell
- 45
- % The following screen algorithm is used by permission of the author.
- { 1 add 180 mul cos 1 0.08 add mul exch 2 add 180 mul cos
- 1 0.08 sub mul add 2 div % (C) 1989 Berthold K.P. Horn
- }
- bind
- % Determine whether we have lots of process colors.
- % If so, don't bother with color screening or gamma correction.
- % Also don't do gamma correction on very high-resolution devices.
- % (This should depend on dot gain, not resolution, but we don't
- % currently have a way to determine this.)
- currentdevice mark
- /RedValues 0 /GreenValues 0 /BlueValues 0 /GrayValues 0
- .dicttomark .getdeviceparams
- counttomark 2 idiv 1 sub { exch pop .min } repeat
- exch pop exch pop 32 lt 4 index 800 lt and 5 1 roll
- % Stack: doscreen dpi freq angle proc
- % Ghostscript currently doesn't use correct, per-plane halftones
- % unless setcolorscreen has been executed. Since these are
- % computationally much more expensive than binary halftones,
- % we check to make sure they are really warranted, i.e., we have
- % a high-resolution CMYK device (i.e., not a display) with
- % fewer than 5 bits per plane (i.e., not a true-color device).
- 4 -1 roll 150 ge
- { /setcolorscreen where
- { pop //systemdict /COLORSCREEN known
- { COLORSCREEN }
- { 3 index }
- ifelse
- dup false ne
- { 4 1 roll 3 copy 6 copy 13 -1 roll
- % For really high-quality screening on printers, we need to
- % give each plane its own screen angle. Unfortunately,
- % this currently has very large space and time costs.
- true eq % true => different angles,
- % 0 => same angles
- { { 45 90 15 75 } { 3 1 roll exch pop 12 3 roll } forall
- }
- if //setcolorscreen
- }
- { pop //setscreen % false => single binary screen
- }
- ifelse
- }
- { //setscreen % setcolorscreen not known
- }
- ifelse
- }
- { //setscreen % not high resolution
- }
- ifelse
-} bind def
-/.sethiresscreen { % <dpi> .sethiresscreen -
- .sethireshalftone
- % Stack: doscreen
- { % Set the transfer function to lighten up the grays.
- % We correct at the high end so that very light grays
- % don't disappear completely if they darken <1 screen pixel.
- % Parameter values closer to 1 are better for devices with
- % less dot spreading; lower values are better with more spreading.
- % The value 0.8 is a compromise that will probably please no one!
- %
- % Because of a bug in FrameMaker, we have to accept operands
- % outside the valid range of [0..1].
- { dup dup 0.0 gt exch 1.0 lt and
- { 0.8 exp dup dup 0.9375 gt exch 0.999 lt and % > 15/16
- { .currentscreenlevels 1 sub % tweak to avoid boundary
- 1 exch div 1 exch sub .min
- }
- if
- }
- if
- }
- }
- { % Set the transfer function to the identity.
- 0 array cvx % Genoa CET won't accept a packed array!
- }
- ifelse settransfer
- /setstrokeadjust where { pop false setstrokeadjust } if
- % Increase fill adjustment so that we effectively use Adobe's
- % any-part-of-pixel rule.
- 0.5 .setfilladjust
-} bind def
-% Set the default screen and BG/UCR.
-/.setdefaultbgucr {
- systemdict /setblackgeneration known {
- { pop 0 } dup setblackgeneration setundercolorremoval
- } if
-} bind def
-/.useloresscreen { % - .useloresscreen <bool>
- % Compute min(|dpi x|,|dpi y|) as the definition of the resolution.
- 72 72 matrix defaultmatrix dtransform abs exch abs .min
- dup 150 lt //systemdict /DITHERPPI known not and
-} bind def
-
-% The following implementation uses LL2 extensions, but only in stopped
-% contexts so that with LL1, the .set??reshalftone will be used.
-%
-% - .getdefaulthalftone <halftonedict> true if default found
-% false
-/.getdefaulthalftone {
- % try the device to see if it has a default halftone
- { currentdevice /HalftoneDefault gsgetdeviceprop } stopped
- { pop pop false } % no device property
- { dup type /dicttype eq { true } { pop false } ifelse }
- ifelse
- % stack: <halftonedict> true if default found
- % false not found
- dup not
- { % device did not provide a default, try Resource
- pop { /Default /Halftone /findresource .systemvar exec } stopped
- { pop pop false } { true } ifelse
- }
- if
-} bind def
-
-/.setdefaulthalftone {
- .getdefaulthalftone
- { sethalftone }
- { % default not found
- .useloresscreen { .setloreshalftone } { .sethireshalftone pop } ifelse
- }
- ifelse
-} bind def
-
-/.setdefaultscreen {
- .useloresscreen { .setloresscreen } { .sethiresscreen } ifelse
- .setdefaultbgucr
-} bind def
-
-% Load the initialization files for optional features.
-%% Replace 4 INITFILES
-systemdict /INITFILES known
- { INITFILES { dup runlibfile VMDEBUG } forall
- }
-if
-
-% If Level 2 (or higher) functionality is implemented, enable it now.
-/.setlanguagelevel where {
- pop 2 .setlanguagelevel
- % If the resource machinery is loaded, fix up some things now.
- /.fixresources where { pop .fixresources } if
-} if
-/ll3dict where {
- pop 3 .setlanguagelevel
-} if
-
-(END INITFILES) VMDEBUG
-
-% Create a null font. This is the initial font.
-8 dict dup begin
- /FontMatrix [ 1 0 0 1 0 0 ] readonly def
- /FontType 3 def
- /FontName () def
- /Encoding StandardEncoding def
- /FontBBox { 0 0 0 0 } readonly def % executable is bogus, but customary ...
- /BuildChar { pop pop 0 0 setcharwidth } bind def
- /PaintType 0 def % shouldn't be needed!
-end
-/NullFont exch definefont setfont
-
-% Define NullFont as the font.
-/NullFont currentfont def
-
-% Load initial fonts from FONTPATH directories, Fontmap file,
-% and/or .getccfont as appropriate.
-.loadinitialfonts
-
-% Remove NullFont from FontDirectory, so it can't be accessed by mistake.
-/undefinefont where {
- pop /NullFont undefinefont
-} {
- FontDirectory /NullFont .undef
-} ifelse
-
-(END FONTS) VMDEBUG
-
-% Restore the real definition of runlibfile.
-/runlibfile /.runlibfile load def
-currentdict /.runlibfile .undef
-
-% Bind all the operators defined as procedures.
-/.bindoperators % binds operators in currentdict
- { % Temporarily disable the typecheck error.
- errordict /typecheck 2 copy get
- errordict /typecheck { pop } put % pop the command
- currentdict
- { dup type /operatortype eq
- { % This might be a real operator, so bind might cause a typecheck,
- % but we've made the error a no-op temporarily.
- .bind % do a real bind even if NOBIND is set
- }
- if pop pop
- } forall
- put
- } def
-NOBIND DELAYBIND or not { .bindoperators } if
-
-% Establish a default environment.
-
-defaultdevice
-% The following line used to skip setting of page size and resolution if
-% NODISPLAY was selected. We think this was only to save time and memory,
-% and it is a bad idea because it prevents setting the resolution in this
-% situation, which pstoedit (among other programs) relies on.
-%DISPLAYING not { setdevice (%END DISPLAYING) .skipeof } if
-systemdict /DEVICEWIDTH known
-systemdict /DEVICEHEIGHT known or
-systemdict /DEVICEWIDTHPOINTS known or
-systemdict /DEVICEHEIGHTPOINTS known or
-systemdict /DEVICEXRESOLUTION known or
-systemdict /DEVICEYRESOLUTION known or
-systemdict /PAPERSIZE known or
-not { (%END DEVICE) .skipeof } if
-% Let DEVICE{WIDTH,HEIGHT}[POINTS] override PAPERSIZE.
-systemdict /PAPERSIZE known
-systemdict /DEVICEWIDTH known not and
-systemdict /DEVICEHEIGHT known not and
-systemdict /DEVICEWIDTHPOINTS known not and
-systemdict /DEVICEHEIGHTPOINTS known not and
- { % Convert the paper size to device dimensions.
- true statusdict /.pagetypenames get
- { PAPERSIZE eq
- { PAPERSIZE load
- dup 0 get /DEVICEWIDTHPOINTS exch def
- 1 get /DEVICEHEIGHTPOINTS exch def
- pop false exit
- }
- if
- }
- forall
- { (Unknown paper size: ) print PAPERSIZE ==only (.) =
- }
- if
- }
-if
-% Adjust the device parameters per the command line.
-% It is possible to specify resolution, pixel size, and page size;
-% since any two of these determine the third, conflicts are possible.
-% We simply pass them to .setdeviceparams and let it sort things out.
- mark /HWResolution null /HWSize null /PageSize null .dicttomark
- .getdeviceparams .dicttomark begin
- mark
- % Check for resolution.
- /DEVICEXRESOLUTION where dup
- { exch pop HWResolution 0 DEVICEXRESOLUTION put }
- if
- /DEVICEYRESOLUTION where dup
- { exch pop HWResolution 1 DEVICEYRESOLUTION put }
- if
- or { /HWResolution HWResolution } if
- % Check for device sizes specified in pixels.
- /DEVICEWIDTH where dup
- { exch pop HWSize 0 DEVICEWIDTH put }
- if
- /DEVICEHEIGHT where dup
- { exch pop HWSize 1 DEVICEHEIGHT put }
- if
- or { /HWSize HWSize } if
- % Check for device sizes specified in points.
- /DEVICEWIDTHPOINTS where dup
- { exch pop PageSize 0 DEVICEWIDTHPOINTS put }
- if
- /DEVICEHEIGHTPOINTS where dup
- { exch pop PageSize 1 DEVICEHEIGHTPOINTS put }
- if
- or { /PageSize PageSize } if
- % Check whether any parameters were set.
- dup mark eq { pop } { defaultdevice putdeviceprops } ifelse
- end
-%END DEVICE
-% Set any device properties defined on the command line.
-% If BufferSpace is defined but not MaxBitmap, set MaxBitmap to BufferSpace.
-systemdict /BufferSpace known
-systemdict /MaxBitmap known not and
- { systemdict /MaxBitmap BufferSpace put
- } if
-dup getdeviceprops
-counttomark 2 idiv
- { systemdict 2 index known
- { pop dup load counttomark 2 roll }
- { pop pop }
- ifelse
- } repeat
-counttomark dup 0 ne
- { 2 add -1 roll putdeviceprops }
- { pop pop }
-ifelse
-% If the initial device parameters are invalid, the setdevice may fail.
-% Trap this and produce a reasonable error message.
-{ setdevice } % does an erasepage
-DEBUG { exec false } { .internalstopped } ifelse {
- (**** Unable to open the initial device, quitting.) = flush 1 .quit
-} if
-
-% If the media size is fixed, update the current page device dictionary.
-FIXEDMEDIA
-dup { pop systemdict /.currentpagedevice known } if
-dup { pop .currentpagedevice exch pop } if
-not { (%END MEDIA) .skipeof } if
-currentpagedevice dup length dict .copydict
-dup /Policies
- % Stack: <pagedevice> <pagedevice> /Policies
-1 index /InputAttributes
-2 copy get dup length dict .copydict
- % Stack: <pagedevice> <pagedevice> /Policies <pagedevice>
- % /InputAttributes <inputattrs'>
-dup 0 2 copy get dup length dict .copydict
- % Stack: <pagedevice> <pagedevice> /Policies <pagedevice>
- % /InputAttributes <inputattrs'> <inputattrs'> 0 <attrs0'>
-dup /PageSize 7 index /PageSize get
-put % PageSize in 0
-put % 0 in InputAttributes
-put % InputAttributes in pagedevice
-% Also change the page size policy so we don't get an error.
- % Stack: <pagedevice> <pagedevice> /Policies
-2 copy get dup length dict .copydict
- % Stack: <pagedevice> <pagedevice> /Policies <policies'>
-dup /PageSize 7 put % PageSize in Policies
-put % Policies in pagedevice
-.setpagedevice
-%END MEDIA
-%END DISPLAYING
-
-(END DEVICE) VMDEBUG
-
-% Establish a default upper limit in the character cache,
-% namely, enough room for a 18-point character at the resolution
-% of the default device, or for a character consuming 1% of the
-% maximum cache size, whichever is larger.
-mark
- % Compute limit based on character size.
- 18 dup dtransform
- exch abs cvi 31 add 32 idiv 4 mul % X raster
- exch abs cvi mul % Y
- % Compute limit based on allocated space.
- cachestatus pop pop pop pop pop exch pop 0.01 mul cvi
- .max dup 10 idiv exch
-setcacheparams
-% Conditionally disable the character cache.
-NOCACHE { 0 setcachelimit } if
-
-(END CONFIG) VMDEBUG
-
-% Initialize graphics.
-
-.setdefaultscreen
-initgraphics
-
-% The interpreter relies on there being at least 2 entries
-% on the graphics stack. Establish the second one now.
-gsave
-
-% Define some control sequences as no-ops.
-% This is a hack to get around problems
-% in some common PostScript-generating applications.
-<04> cvn { } def % Apple job separator
-<0404> cvn { } def % two of the same
-<1b> cvn { } def % MS Windows LaserJet 4 prologue
- % (UEL = ESC %-12345X)
-<1b45> cvn { } def % PJL reset prologue (ESC E)
-<1b451b> cvn { } def % PJL reset epilogue (ESC E + UEL)
-<041b> cvn { } def % MS Windows LaserJet 4 epilogue (^D + UEL)
-(\001M) cvn % TBCP initiator
- { currentfile /TBCPDecode filter cvx exec
- } bind def
-/@PJL % H-P job control
- { currentfile //=string readline { pop } if
- } bind def
-
-% Install the EPS handler if needed
-systemdict /EPSBoundingBoxInit known { EPSBoundingBoxInit } if
-
-% If we want a "safer" system, disable some obvious ways to cause havoc.
-.currentglobal true .setglobal
-/SAFETY 2 dict
- dup /safe false put
- dup /tempfiles 10 dict readonly put
-readonly def
-.setglobal
-
-% Convert a path name into a string suitable for filenameforall
-% For example: (a\\b*?c) to (a\\\\b\\*\\?c)
-/.makepathtemplate { % str1 -- str2
- dup length dup add string 0 % result string up to twice the size
- 0 1 4 index length 1 sub {
- 3 index exch get
- dup 92 eq { % \ -> \\
- 2 index 2 index 92
- put
- exch 1 add exch
- }
- if
- dup 42 eq { % * -> \*
- 2 index 2 index 92
- put
- exch 1 add exch
- }
- if
- dup 63 eq { % ? -> \?
- 2 index 2 index 92
- put
- exch 1 add exch
- }
- if
- 2 index 2 index 3 -1 roll put 1 add
- } for
- 0 exch getinterval exch pop
-} bind def
-
-/.locksafe {
- SAFETY /safe get not {
- <<
- /PermitFileReading [
- currentuserparams /PermitFileReading get aload pop
- { .makepathtemplate
- dup .filenamedirseparator concatstrings (*) concatstrings
- exch % put string below this procedure
- }
- /LIBPATH .systemvar { 1 index exec } forall
- /FONTPATH .systemvar { 1 index exec } forall
- currentsystemparams /GenericResourceDir get 1 index exec
- currentsystemparams /FontResourceDir get exch exec
- ]
- /LockFilePermissions true
- >> setuserparams
- }
- if
- % setpagedevice has the side effect of clearing the page, but
- % we will just document that. Using setpagedevice keeps the device
- % properties and pagedevice .LockSafetyParams in agreement even
- % after a restore that changes the value to false.
- currentglobal currentpagedevice gcheck setglobal % use correct VM space
- << /.LockSafetyParams true >> setpagedevice
- setglobal
- //SAFETY /safe //true .forceput % overrides readonly
-} .bind executeonly odef
-
-/.setsafe
-{
- SAFETY /safe get not {
- <<
- PARANOIDSAFER { % only PARANOIDSAFER locks down reading files
- /PermitFileReading [ ]
- } if
- /PermitFileWriting [ ]
- /PermitFileControl [ ]
- >> setuserparams
- }
- if
- .locksafe
-} .bind executeonly odef
-
-/deletefile {
- count 1 lt {
- //deletefile /stackunderflow signalerror
- }
- if
- dup { deletefile } stopped {
- pop //deletefile $error /errorname get signalerror
- } {
- % deletefile succeeded. Remove from tempfile list if present
- //SAFETY /tempfiles get exch cvn 2 copy known {
- .forceundef
- } {
- pop pop
- }
- ifelse
- }
- ifelse
-} .bind executeonly odef
-
-% If a file is opened with .tempfile with SAFER not (yet) set,
-% the file can be deleted later, even if SAFER is set.
-/.tempfile {
- .tempfile % filename file
- //SAFETY /tempfiles get 2 index true .forceput
-} .bind executeonly odef
-
-% If we are running in SAFER mode, lock things down
-SAFER { .setsafe } if
-
-% If we delayed binding, make it possible to do it later.
-/.bindnow {
- //systemdict begin .bindoperators end
- % Temporarily disable the typecheck error.
- errordict /typecheck 2 copy get
- errordict /typecheck { pop } put % pop the command
- 0 1 .delaycount 1 sub { .delaybind exch get .bind pop } for
- //systemdict /.delaybind {} .forceput % reclaim the space
- //systemdict /.bindnow .forceundef % ditto
- put
- //systemdict /.forcedef .forceundef % remove temptation
- //systemdict /.forceput .forceundef % ditto
- //systemdict /.forceundef .forceundef % ditto
-} .bind odef
-
-% Turn off array packing, since some PostScript code assumes that
-% procedures are writable.
-false setpacking
-
-(END INIT) VMDEBUG
-
-/.currentuserparams where {
- pop
- % Remove real user params from psuserparams.
- mark .currentuserparams counttomark 2 idiv {
- pop psuserparams exch undef
- } repeat pop
- % Update the copy of the user parameters.
- mark .currentuserparams counttomark 2 idiv {
- userparams 3 1 roll .forceput % userparams is read-only
- } repeat pop
- % Turn on idiom recognition, if available.
- currentuserparams /IdiomRecognition known {
- /IdiomRecognition true .definepsuserparam
- } if
- psuserparams readonly pop
- systemdict /.definepsuserparam undef
- % Save a copy of userparams for use with save/restore
- % (and, if implemented, context switching).
- .currentglobal false .setglobal
- mark userparams { } forall .dicttomark readonly
- /userparams exch .forcedef % systemdict is read-only
- .setglobal
-} if
-/.currentsystemparams where {
- pop
- % Remove real system params from pssystemparams.
- mark .currentsystemparams counttomark 2 idiv {
- pop pssystemparams exch .forceundef
- } repeat pop
-} if
-
-% Conditionally turn image interpolation on or off.
-currentdict /INTERPOLATE known not { (%END INTERPOLATE) .skipeof } if
-
-/.interpolate {
- dup /Interpolate .knownget not { //false } if
- /INTERPOLATE .systemvar ne {
- dup gcheck .currentglobal exch .setglobal
- exch dup length dict copy
- dup /Interpolate /INTERPOLATE .systemvar put
- exch .setglobal
- } if
-} bind odef
-
-/colorimage
- { /INTERPOLATE .systemvar
- { .currentglobal % w h bit [] {}...{} multi ncomp glob
- //false .setglobal
- 9 dict begin % w h bit [] {}...{} multi ncomp glob
- 2 index { 1 index 7 add } { 8 } ifelse
- copy gsave pop % preserve the arguments
- { 0 /DeviceGray 0 /DeviceRGB /DeviceCMYK }
- 1 index get setcolorspace % ... glob w h bit [] {}...{} multi ncomp
- {0 1 0 1 0 1 0 1}
- 1 index 2 mul 0 exch % ... glob w h bit [] {}...{} multi ncomp {0 1 ...} 0 2*ncomp
- getinterval /Decode exch def % ... glob w h bit [] {}...{} multi ncomp
- exch dup % ... glob w h bit [] {}...{} ncomp multi multi
- /MultipleDataSources exch def % ... glob w h bit [] {}...{} ncomp multi
- { array astore} { pop } ifelse % ... glob w h bit [] [{}...{}]
- /DataSource exch def % ... glob w h bit []
- /ImageMatrix exch def % ... glob w h bit
- /BitsPerComponent exch def % ... glob w h
- /Height exch def % ... glob w
- /Width exch def % ... glob
- /ImageType 1 def
- /Interpolate //true def
- .setglobal currentdict end % ... <<>>
- image grestore
- exch { 4 add } { 6 } ifelse
- { pop } repeat % -
- }
- { colorimage
- }
- ifelse
- } bind odef
-
-/image
- { dup type /dicttype eq
- { dup /ImageType get 3 eq
- { .currentglobal //false .setglobal exch
- dup length dict copy begin .setglobal
- /DataDict DataDict .interpolate def
- /MaskDict MaskDict .interpolate def
- currentdict end
- }
- { .interpolate
- }
- ifelse
- image
- }
- { /INTERPOLATE .systemvar
- { .currentglobal //false .setglobal
- 8 dict begin .setglobal
- /ImageType 1 def
- /DataSource 1 index def
- /ImageMatrix 2 index def
- /BitsPerComponent 3 index def
- /Decode {0 1} def
- /Height 4 index def
- /Width 5 index def
- /Interpolate //true def
- currentdict end
- gsave /DeviceGray setcolorspace image grestore
- 5 { pop } repeat
- }
- { image
- }
- ifelse
- }
- ifelse
- } bind odef
-
-/imagemask {
- dup type /dicttype eq {
- .interpolate imagemask
- } {
- /INTERPOLATE .systemvar {
- .currentglobal //false .setglobal
- 8 dict begin .setglobal
- /ImageType 1 def
- /DataSource 1 index def
- /ImageMatrix 2 index def
- /BitsPerComponent 1 def
- 2 index { {1 0} } { {0 1} } ifelse /Decode exch def
- /Height 4 index def
- /Width 5 index def
- /Interpolate //true def
- currentdict end imagemask 5 { pop } repeat
- } {
- imagemask
- } ifelse
- } ifelse
-} bind odef
-
-currentdict /.interpolate undef
-
-%END INTERPOLATE
-
-% Establish local VM as the default.
-false /setglobal where { pop setglobal } { .setglobal } ifelse
-$error /.nosetlocal false put
-
-(END GLOBAL) VMDEBUG
-
-/.savelocalstate where {
- % If we might create new contexts, save away copies of all dictionaries
- % referenced from systemdict that are stored in local VM,
- % and also save a copy of the initial gstate.
- pop .savelocalstate
-} {
- % If we're *not* running in a multi-context system and FAKEFONTS is
- % defined, add the fake fonts to LocalFontDirectory.
- .definefakefonts % current VM is local
-} ifelse
-
-% Remove systemdict entries for things that have been bound in where used
-% and that shouldn't be accessible by name, and close up systemdict.
-currentdict /filterdict .undef
-currentdict /.cidfonttypes .undef
-currentdict /.colorrenderingtypes .undef
-currentdict /.formtypes .undef
-currentdict /.halftonetypes .undef
-currentdict /.imagetypes .undef
-currentdict /.imagemasktypes .undef
-currentdict /.patterntypes .undef
-currentdict /.shadingtypes .undef
-currentdict /.wheredict .undef
-end
-
-% Clean up VM, and enable GC.
-/vmreclaim where
- { pop NOGC not { 2 vmreclaim 0 vmreclaim } if
- } if
-DELAYBIND not {
- systemdict /.forcedef .undef % remove temptation
- systemdict /.forceput .undef % ditto
- systemdict /.forceundef .undef % ditto
-} if
-WRITESYSTEMDICT not { systemdict readonly pop } if
-
-(END GC) VMDEBUG
-
-% The Adobe AGM_Core used by Illustrator 9 has some code that breaks
-% if the 'product' is not (Adobe PostScript Parser). A bug has been
-% submitted to Adobe since this also fails with Acrobat Distiller.
-% As a temporary work around, the following HACK will work for
-% devices without spot color support. Once Ghostscript can
-% support DeviceN and spot color separations this will need to
-% be 'true' in some cases.
-userdict /AGM_preserve_spots false put
-
-% The interpreter will run the initial procedure (start).
diff --git a/Master/xemtex/gslib/gs_kanji.ps b/Master/xemtex/gslib/gs_kanji.ps
deleted file mode 100644
index 73514205904..00000000000
--- a/Master/xemtex/gslib/gs_kanji.ps
+++ /dev/null
@@ -1,159 +0,0 @@
-% Copyright (C) 1994, 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_kanji.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Scaffolding for Kanji fonts. This is based on the Wadalab free font
-% from the University of Tokyo; it may not be appropriate for other
-% Kanji fonts.
-
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-
-% Define the encoding for the root font.
-
-/KanjiEncoding
-% \x00
- 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0
-% \x20
- 0 1 2 3 4 5 6 7
- 8 0 0 0 0 0 0 0
- 9 10 11 12 13 14 15 16
- 17 18 19 20 21 22 23 24
-% \x40
- 25 26 27 28 29 30 31 32
- 33 34 35 36 37 38 39 40
- 41 42 43 44 45 46 47 48
- 49 50 51 52 53 54 55 56
-% \x60
- 57 58 59 60 61 62 63 64
- 65 66 67 68 69 70 71 72
- 73 74 75 76 77 0 0 0
- 0 0 0 0 0 0 0 0
-% \x80
- 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0
-% \xA0
- 0 1 2 3 4 5 6 7
- 8 0 0 0 0 0 0 0
- 9 10 11 12 13 14 15 16
- 17 18 19 20 21 22 23 24
-% \xC0
- 25 26 27 28 29 30 31 32
- 33 34 35 36 37 38 39 40
- 41 42 43 44 45 46 47 48
- 49 50 51 52 53 54 55 56
-% \xE0
- 57 58 59 60 61 62 63 64
- 65 66 67 68 69 70 71 72
- 73 74 75 76 77 0 0 0
- 0 0 0 0 0 0 0 0
-256 packedarray def
-
-% Define a stub for the base font encoding.
-
- /KanjiSubEncoding { /KanjiSubEncoding .findencoding } bind def
-%% Replace 3 (gs_ksb_e.ps)
- EncodingDirectory /KanjiSubEncoding
- { (gs_ksb_e.ps) //systemdict begin runlibfile KanjiSubEncoding end }
- bind put
-
-% Support procedures and data.
-
-/T1FontInfo 8 dict begin
- /version (001.001) readonly def
- /FullName (KanjiBase) readonly def
- /FamilyName (KanjiBase) readonly def
- /Weight (Medium) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition 0 def
- /UnderlineThickness 0 def
-currentdict end readonly def
-
-/T1NF % <fontname> T1NF <font>
-{
-20 dict begin
- /FontName exch def
- /FontType 1 def
- /FontInfo T1FontInfo def
- /FontMatrix [.001 0 0 .001 0 0] def
- /FontBBox [0 0 1000 1000] def
- /Encoding KanjiSubEncoding def
- /CharStrings 150 dict def
- /PaintType 0 def
- /Private 2 dict def
- Private begin
- /BlueValues [] def
- /password 5839 def
- end
-FontName currentdict end definefont
-} def
-
-/T0NF % <fontname> T0NF <font>
-{
-20 dict begin
- /FontName exch def
- /FDepVector exch def
- /FontType 0 def
- /FontMatrix [1 0 0 1 0 0] def
- /FMapType 2 def
- /Encoding KanjiEncoding def
-FontName currentdict end definefont
-} def
-
-% Define the composite font and all the base fonts.
-
-/CompNF % <fontname> CompNF <font>
-{
-/newname1 exch def
-newname1 dup length string cvs /str exch def
-str length /len exch def
-/fdepvector 78 array def
-/j 1 def
-16#21 1 16#74 {
-/i exch def
-KanjiEncoding i get 0 gt {
-len 4 add string /newstr exch def
-newstr 0 str putinterval
-newstr len (.r) putinterval
-newstr len 2 add i 16 2 string cvrs putinterval
-newstr cvn /newlit exch def
-newlit T1NF /newfont exch def
-fdepvector j newfont put
-/j j 1 add def
-} if
-} for
-fdepvector 0 fdepvector 1 get put
-/j 0 def
-fdepvector newname1 T0NF
-} def
-
-% Define an individual character in a composite font.
-/CompD % <charstring> <(HL)> CompD -
- { currentfont /Encoding get 1 index 0 get get % FDepVector index
- currentfont /FDepVector get exch get % base font
- dup /Encoding get 3 -1 roll 1 get get % base font character name
- exch /CharStrings get exch 3 -1 roll put
- } bind def
-
-exec
diff --git a/Master/xemtex/gslib/gs_ksb_e.ps b/Master/xemtex/gslib/gs_ksb_e.ps
deleted file mode 100644
index 58993feaf12..00000000000
--- a/Master/xemtex/gslib/gs_ksb_e.ps
+++ /dev/null
@@ -1,65 +0,0 @@
-% Copyright (C) 1994 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_ksb_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the KanjiSub encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/KanjiSubEncoding
-%\x00
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%\x20
- /.notdef /c21 /c22 /c23 /c24 /c25 /c26 /c27
- /c28 /c29 /c2A /c2B /c2C /c2D /c2E /c2F
- /c30 /c31 /c32 /c33 /c34 /c35 /c36 /c37
- /c38 /c39 /c3A /c3B /c3C /c3D /c3E /c3F
-%\x40
- /c40 /c41 /c42 /c43 /c44 /c45 /c46 /c47
- /c48 /c49 /c4A /c4B /c4C /c4D /c4E /c4F
- /c50 /c51 /c52 /c53 /c54 /c55 /c56 /c57
- /c58 /c59 /c5A /c5B /c5C /c5D /c5E /c5F
-%\x60
- /c60 /c61 /c62 /c63 /c64 /c65 /c66 /c67
- /c68 /c69 /c6A /c6B /c6C /c6D /c6E /c6F
- /c70 /c71 /c72 /c73 /c74 /c75 /c76 /c77
- /c78 /c79 /c7A /c7B /c7C /c7D /c7E /.notdef
-%\x80
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%\xA0
- /.notdef /c21 /c22 /c23 /c24 /c25 /c26 /c27
- /c28 /c29 /c2A /c2B /c2C /c2D /c2E /c2F
- /c30 /c31 /c32 /c33 /c34 /c35 /c36 /c37
- /c38 /c39 /c3A /c3B /c3C /c3D /c3E /c3F
-%\xC0
- /c40 /c41 /c42 /c43 /c44 /c45 /c46 /c47
- /c48 /c49 /c4A /c4B /c4C /c4D /c4E /c4F
- /c50 /c51 /c52 /c53 /c54 /c55 /c56 /c57
- /c58 /c59 /c5A /c5B /c5C /c5D /c5E /c5F
-%\xE0
- /c60 /c61 /c62 /c63 /c64 /c65 /c66 /c67
- /c68 /c69 /c6A /c6B /c6C /c6D /c6E /c6F
- /c70 /c71 /c72 /c73 /c74 /c75 /c76 /c77
- /c78 /c79 /c7A /c7B /c7C /c7D /c7E /.notdef
-256 packedarray .defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_l.xbm b/Master/xemtex/gslib/gs_l.xbm
deleted file mode 100644
index 4f9de445487..00000000000
--- a/Master/xemtex/gslib/gs_l.xbm
+++ /dev/null
@@ -1,29 +0,0 @@
-#define gs_l.xbm_width 48
-#define gs_l.xbm_height 48
-#define gs_l.xbm_x_hot 0
-#define gs_l.xbm_y_hot 0
-static unsigned char gs_l.xbm_bits[] = {
- 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x3e, 0x03, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x07, 0x00,
- 0x00, 0xe0, 0xff, 0x0f, 0x07, 0x00, 0x00, 0xf8, 0xff, 0x81, 0x07, 0x00,
- 0x00, 0xfc, 0x1f, 0xc0, 0x0f, 0x00, 0x00, 0xfe, 0x07, 0xf0, 0x1f, 0x00,
- 0x00, 0xff, 0x01, 0xf8, 0x1f, 0x00, 0x00, 0xff, 0x41, 0xfc, 0x3f, 0x00,
- 0x80, 0xff, 0xc8, 0xfc, 0x3f, 0x00, 0x80, 0xff, 0xd8, 0xf8, 0x3f, 0x00,
- 0x80, 0xff, 0x98, 0xf0, 0x3f, 0x00, 0x80, 0xff, 0x10, 0xe0, 0x3f, 0x00,
- 0x00, 0xff, 0x01, 0xc0, 0x3f, 0x00, 0x00, 0xff, 0x81, 0x81, 0x1f, 0x00,
- 0x00, 0xfe, 0x83, 0x83, 0x1f, 0x00, 0x00, 0xfc, 0x0f, 0x83, 0x0f, 0x00,
- 0x00, 0xf8, 0x1f, 0xc3, 0x03, 0x00, 0x00, 0xe0, 0x1f, 0xe0, 0x01, 0x00,
- 0x00, 0xf0, 0x1f, 0x38, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00,
- 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00,
- 0x80, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00,
- 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
- 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03,
- 0xc0, 0x3f, 0x00, 0x00, 0xff, 0x03, 0xe0, 0x0f, 0x00, 0x00, 0xfe, 0x03,
- 0xf0, 0x07, 0xfc, 0x00, 0xfc, 0x01, 0xf0, 0x07, 0x0e, 0x00, 0xff, 0x04,
- 0xf0, 0x07, 0x7e, 0xe0, 0x7f, 0x02, 0xf0, 0x0f, 0xfc, 0xff, 0x1f, 0x01,
- 0xe0, 0x1f, 0xf0, 0xff, 0xc3, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x78, 0x00,
- 0x80, 0xff, 0x0f, 0xf8, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00,
- 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/gslib/gs_l.xpm b/Master/xemtex/gslib/gs_l.xpm
deleted file mode 100644
index ef898c29c8c..00000000000
--- a/Master/xemtex/gslib/gs_l.xpm
+++ /dev/null
@@ -1,58 +0,0 @@
-/* XPM */
-static char * gs_l_xpm[] = {
-/* width height ncolors cpp [x_hot y_hot] */
-"48 48 4 1 0 0",
-/* colors */
-" s none m none c none",
-". s iconColor1 m black c black",
-"X s iconColor2 m white c white",
-"o s iconColor5 m black c blue",
-/* pixels */
-" . ",
-" .X.. ",
-" .X.. ",
-" .XX.. ",
-" .....XX.. ",
-" .............XXX... ",
-" ...............XXXX... ",
-" ..............XXXXXX.... ",
-" ...........XXXXXXXXX...... ",
-" ..........XXXXXXXXX......... ",
-" .........XXXXXXXXXX.......... ",
-" .........XXXXXoXXX............ ",
-" .........XXXoXXooXX............ ",
-" .........XXXooXooXXX........... ",
-" .........XXXooXXoXXXX.......... ",
-" .........XXXXoXXXXXXXX......... ",
-" .........XXXXXXXXXXXXX........ ",
-" .........XXXXXXooXXXXXX...... ",
-" .........XXXXXoooXXXXX...... ",
-" ..........XXXXooXXXXX..... ",
-" ..........XXXooXXXX.... ",
-" ........XXXXXXXX.... ",
-" .........XXXXXX... ",
-" ..........XXXXXXX ",
-" ........XXXXXXXXXXXX ",
-" ........XXXXXXXXXXXXXX ",
-" ..........XXXXXXXXXXXXXXX ",
-" ..................XXXXXXXXX ",
-" ...........................X ",
-" .............................. ",
-" ................................ ",
-" ................................. ",
-" ................................. ",
-" ................................ ",
-" ............................ ",
-" XXXXXXXXXXXXX.............. ",
-" ........XXXXXXXXXXXXXXXXXX.......... ",
-" .......XXXXXXXXXXXXXXXXXXXXX......... ",
-" .......XXXXXXX......XXXXXXXXXX.......X ",
-" .......XXXXXX...XXXXXXXXXXXX........XX. ",
-" .......XXXXXX......XXXXXX..........XX. ",
-" ........XXXXXX...................XXX. ",
-" ........XXXXXXX..............XXXX.. ",
-" ..........XXXXXXXXXXXXXXXXXXX.... ",
-" .............XXXXXXX........... ",
-" .......................... ",
-" ................... ",
-" "};
diff --git a/Master/xemtex/gslib/gs_l2img.ps b/Master/xemtex/gslib/gs_l2img.ps
deleted file mode 100644
index 39188c68ade..00000000000
--- a/Master/xemtex/gslib/gs_l2img.ps
+++ /dev/null
@@ -1,185 +0,0 @@
-% Copyright (C) 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_l2img.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Emulate the Level 2 dictionary-based image operator in Level 1,
-% except for Interpolate (ignored) and MultipleDataSources = true;
-% also, we require that the data source be either a procedure of a
-% particular form or a stream, not a string or a general procedure.
-
-% pdf2ps copies the portion of this file from %BEGIN to %END if Level 1
-% compatible output is requested.
-
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-
-/packedarray where
- { pop }
- { /packedarray { array astore readonly } bind def }
-ifelse
-
-%BEGIN
-
-11 dict /.csncompdict 1 index def begin
- /DeviceGray { 1 /setgray load } bind def
- /DeviceRGB { 3 /setrgbcolor load } bind def
- /DeviceCMYK { 4 /setcmykcolor load } bind def
- /Indexed
- { dup 1 index 1 get //.csncompdict exch get exec
- % Stack: [/Indexed base hival map] ncomp basesetcolor
- 3 -1 roll 3 get mark 3 1 roll
- % Stack: ncomp -mark- basesetcolor map
- dup type /stringtype eq
- { { -
- { exch round cvi get 255 div
- }
- -
- { exch round cvi 3 mul 2 copy 2 copy get 255 div
- 3 1 roll 1 add get 255 div
- 4 2 roll 2 add get 255 div
- }
- { exch round cvi 4 mul 2 copy 2 copy 2 copy get 255 div
- 3 1 roll 1 add get 255 div
- 4 2 roll 2 add get 255 div
- 5 3 roll 3 add get 255 div
- }
- }
- 4 index get aload pop counttomark -1 roll
- }
- { /exec load 3 -1 roll
- % Stack: -mark- mapproc --exec-- basesetcolor
- }
- ifelse .packtomark cvx
- exch pop 1 exch
- } bind def
- /Separation
- { dup 2 index //.csncompdict exch get exec
- % Stack: [/Separation name alt xform] ncomp altsetcolor
- 3 -1 roll 3 get /exec load 3 -1 roll 3 array astore readonly cvx
- exch pop 1 exch
- } bind def
- % Substitute device spaces for CIE spaces.
- /CIEBasedA /DeviceGray load def
- /CIEBasedABC /DeviceRGB load def
- /CIEBasedDEF /DeviceRGB load def
- /CIEBasedDEFG /DeviceCMYK load def
-end
-
-/.packtomark { counttomark packedarray exch pop } bind def
-
-/.csinextbits % - .csinextbits <bits>
- % Uses b, nnb, i, row, mask, BitsPerComponent;
- % sets b, nnb, i.
- { /nnb nnb BitsPerComponent add
- { dup 0 le { exit } if
- /b b 8 bitshift row i get add def
- /i i 1 add def 8 sub
- }
- loop def
- b nnb bitshift mask and
- } bind def
-
-% Note that the ColorSpace key must be present in the image dictionary.
-/.colorspaceimage % <imagedict> .colorspaceimage -
- { save exch
- dup length 15 add dict begin { cvlit def } forall
- ColorSpace dup dup type /nametype ne { 0 get } if
- .csncompdict exch get exec
- /setpixelcolor exch def /ncomp exch def pop
- /row ncomp BitsPerComponent mul Width mul 7 add 8 idiv string def
- /mask 1 BitsPerComponent bitshift 1 sub def
- /nextbits BitsPerComponent 8 eq
- { { row i get /i i 1 add def } }
- { /.csinextbits load }
- ifelse def
- /nextpixel mark 0 2 ncomp 1 sub 2 mul
- { /nextbits cvx exch
- Decode exch 2 getinterval
- dup aload pop exch sub
- dup mask eq { pop } { mask div /mul load 3 -1 roll } ifelse
- 0 get dup 0 eq { pop } { /sub load 3 -1 roll } ifelse
- }
- for
- /setpixelcolor load dup type /operatortype ne { /exec load } if
- .packtomark cvx def
- /readrow
- /DataSource load dup type
- dup /arraytype eq exch /packedarraytype eq or
- { % Must be { <file> <string> ... }
- aload length 1 add array /pop load exch astore
- dup 1 row put cvx
- }
- { pop
- % Adobe requires readstring to signal an error if given
- % an empty string. Work around this nonsense here.
- row length 0 eq
- { { } }
- { { DataSource row readstring pop pop } }
- ifelse
- }
- ifelse def
- ImageMatrix matrix invertmatrix concat
- /imat matrix def
- 0 1 Height 1 sub
- { imat 5 3 -1 roll neg put
- readrow
- /b 0 def /nnb 0 def /i 0 def
- 0 1 Width 1 sub
- { imat 4 3 -1 roll neg put nextpixel
- 1 1 true imat {<80>} imagemask
- }
- for
- }
- for
- end restore
- } bind def
-
-%END
-exec
-currentfile closefile
-
-% Patch for testing.
-/.cincompdict 3 dict begin
- 1 { {0 1} {/DeviceGray} } def
- 3 { {0 1 0 1 0 1} {/DeviceRGB} } def
- 4 { {0 1 0 1 0 1 0 1} {/DeviceCMYK} } def
-currentdict end def
-/.imagekeys [
- /Decode /DataSource /ImageMatrix /BitsPerComponent /Height /Width
-] def
-/colorimage % <width> <height> <bits/comp> <matrix>
- % <datasrc> false <ncomp> colorimage -
- { 1 index { /colorimage load /rangecheck signalerror } if exch pop
- //.cincompdict exch get exec
- 7 dict begin /ColorSpace exch cvlit def
- .imagekeys { exch cvlit def } forall
- currentdict end .colorspaceimage
- } bind odef
-/image
- { dup type /dicttype ne
- { 7 dict begin /ColorSpace /DeviceGray def [0 1]
- .imagekeys { exch cvlit def } forall
- currentdict end
- }
- { dup length 1 add dict .copydict dup /ColorSpace currentcolorspace put
- }
- ifelse
- .colorspaceimage
- } bind odef
-
-exec
diff --git a/Master/xemtex/gslib/gs_l_m.xbm b/Master/xemtex/gslib/gs_l_m.xbm
deleted file mode 100644
index 0253814e7b0..00000000000
--- a/Master/xemtex/gslib/gs_l_m.xbm
+++ /dev/null
@@ -1,29 +0,0 @@
-#define gs_l_m.xbm_width 48
-#define gs_l_m.xbm_height 48
-#define gs_l_m.xbm_x_hot 0
-#define gs_l_m.xbm_y_hot 0
-static unsigned char gs_l_m.xbm_bits[] = {
- 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00,
- 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x07, 0x00,
- 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00,
- 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3f, 0x00,
- 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00,
- 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00,
- 0x00, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00,
- 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00,
- 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x01, 0x00,
- 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x1f, 0x00, 0x00,
- 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00,
- 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00,
- 0x80, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00,
- 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
- 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x80, 0xff, 0xff, 0xff, 0x03,
- 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03,
- 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07,
- 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01,
- 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00,
- 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00,
- 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/gslib/gs_lev2.ps b/Master/xemtex/gslib/gs_lev2.ps
deleted file mode 100644
index 70b62018752..00000000000
--- a/Master/xemtex/gslib/gs_lev2.ps
+++ /dev/null
@@ -1,935 +0,0 @@
-% Copyright (C) 1990, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_lev2.ps,v 1.7.2.4.2.3 2003/04/12 14:02:38 giles Exp $
-% Initialization file for Level 2 functions.
-% When this is run, systemdict is still writable,
-% but (almost) everything defined here goes into level2dict.
-
-level2dict begin
-
-% ------ System and user parameters ------ %
-
-% User parameters must obey save/restore, and must also be maintained
-% per-context. We implement the former, and some of the latter, here
-% with PostScript code. NOTE: our implementation assumes that user
-% parameters change only as a result of setuserparams -- that there are
-% no user parameters that are ever changed dynamically by the interpreter
-% (although the interpreter may adjust the value presented to setuserparams)
-%
-% There are two types of user parameters: those which are actually
-% maintained in the interpreter, and those which exist only at the
-% PostScript level. We maintain the current state of both types in
-% a read-only local dictionary named userparams, defined in systemdict.
-% In a multi-context system, each context has its own copy of this
-% dictionary. In addition, there is a constant dictionary named
-% psuserparams where each key is the name of a user parameter that exists
-% only in PostScript and the value is a procedure to check that the value
-% is legal: setuserparams uses this for checking the values.
-% setuserparams updates userparams explicitly, in addition to setting
-% any user parameters in the interpreter; thus we can use userparams
-% to reset those parameters after a restore or a context switch.
-% NOTE: the name userparams is known to the interpreter, and in fact
-% the interpreter creates the userparams dictionary.
-
-% Check parameters that are managed at the PostScript level.
-/.checkparamtype { % <newvalue> <type> .checkparamtype <bool>
- exch type eq
-} .bind def
-/.checksetparams { % <newdict> <opname> <checkdict>
- % .checksetparams <newdict>
- 2 index {
- % Stack: newdict opname checkdict key newvalue
- 3 copy 3 1 roll .knownget {
- exec not {
- pop pop pop load /typecheck signalerror
- } if
- dup type /stringtype eq {
- dup rcheck not {
- pop pop pop load /invalidaccess signalerror
- } if
- } if
- } {
- pop
- } ifelse pop pop
- } forall pop pop
-} .bind def % not odef, shouldn't reset stacks
-
-% currentuser/systemparams creates and returns a dictionary in the
-% current VM. The easiest way to make this work is to copy any composite
-% PostScript-level parameters to global VM. Currently we have strings
-% as well as arrays. For arrays, we also need to copy any contents that
-% are in VM. Also copying string parameters insures the contents won't
-% be changed. Also be careful to preserve 'executable' state.
-/.copyparam { % <value> .copyparam <value'>
- dup type /arraytype eq {
- .currentglobal true .setglobal exch
- dup xcheck exch % original executable state
- [ exch {
- dup type dup /arraytype eq exch /stringtype eq or {
- .copyparam % recurse to handle composite array elements
- } if
- } forall ]
- exch { cvx } if % set executable state
- exch .setglobal
- } if
- dup type /stringtype eq {
- .currentglobal true .setglobal
- 1 index length string exch .setglobal
- copy readonly
- } if
-} .bind def
-
-% Some user parameters are managed entirely at the PostScript level.
-% We take care of that here.
-systemdict begin
-/psuserparams 48 dict def
-/getuserparam { % <name> getuserparam <value>
- /userparams .systemvar 1 index get exch pop
-} odef
-% Fill in userparams (created by the interpreter) with current values.
-mark .currentuserparams
-counttomark 2 idiv {
- userparams 3 1 roll put
-} repeat pop
-/.definepsuserparam { % <name> <value> .definepsuserparam -
- psuserparams 3 copy pop
- type cvlit /.checkparamtype cvx 2 packedarray cvx put
- userparams 3 1 roll put
-} .bind def
-end
-/currentuserparams { % - currentuserparams <dict>
- /userparams .systemvar dup length dict .copydict
-} odef
-/setuserparams { % <dict> setuserparams -
- % Check that we will be able to set the PostScript-level
- % user parameters.
- /setuserparams /psuserparams .systemvar .checksetparams
- % Set the C-level user params. If this succeeds, we know that
- % the password check succeeded.
- dup .setuserparams
- % Now set the PostScript-level params.
- % The interpreter may have adjusted the values of some of the
- % parameters, so we have to read them back.
- dup {
- /userparams .systemvar 2 index known {
- psuserparams 2 index known not {
- pop dup .getuserparam
- } if
- .copyparam
- /userparams .systemvar 3 1 roll .forceput % userparams is read-only
- } {
- pop pop
- } ifelse
- } forall
- % A context switch might have occurred during the above loop,
- % causing the interpreter-level parameters to be reset.
- % Set them again to the new values. From here on, we are safe,
- % since a context switch will consult userparams.
- .setuserparams
-} .bind odef
-% Initialize user parameters managed here.
-/JobName () .definepsuserparam
-
-% Restore must restore the user parameters.
-% (Since userparams is in local VM, save takes care of saving them.)
-/restore { % <save> restore -
- //restore /userparams .systemvar .setuserparams
-} .bind odef
-
-% The pssystemparams dictionary holds some system parameters that
-% are managed entirely at the PostScript level.
-systemdict begin
-currentdict /pssystemparams known not {
- /pssystemparams 40 dict readonly def
-} if
-/getsystemparam { % <name> getsystemparam <value>
- //pssystemparams 1 index .knownget { exch pop } { .getsystemparam } ifelse
-} odef
-end
-/currentsystemparams { % - currentsystemparams <dict>
- mark .currentsystemparams //pssystemparams { } forall .dicttomark
-} odef
-/setsystemparams { % <dict> setsystemparams -
- % Check that we will be able to set the PostScript-level
- % system parameters.
- /SAFETY .systemvar /safe get {
- % SAFER mode disallows some changes
- [ /GenericResourceDir /FontResourceDir /GenericResourcePathSep ] {
- 2 copy .knownget {
- exch //pssystemparams exch .knownget {
- ne { /setsystemparams /invalidaccess signalerror } if
- } {
- pop
- } ifelse
- } {
- pop
- } ifelse
- } forall
- } if
- /setsystemparams //pssystemparams mark exch {
- type cvlit /.checkparamtype cvx 2 packedarray cvx
- } forall .dicttomark .checksetparams
- % Set the C-level system params. If this succeeds, we know that
- % the password check succeeded.
- dup .setsystemparams
- % Now set the PostScript-level params. We must copy local strings
- % into global VM.
- dup
- { //pssystemparams 2 index known
- { % Stack: key newvalue
- .copyparam
- //pssystemparams 3 1 roll .forceput % pssystemparams is read-only
- }
- { pop pop
- }
- ifelse
- }
- forall pop
-} .bind odef
-
-% Initialize the passwords.
-% NOTE: the names StartJobPassword and SystemParamsPassword are known to
-% the interpreter, and must be bound to noaccess strings.
-% The length of these strings must be max_password (iutil2.h) + 1.
-/StartJobPassword 65 string noaccess def
-/SystemParamsPassword 65 string noaccess def
-
-% Redefine cache parameter setting to interact properly with userparams.
-/setcachelimit {
- mark /MaxFontItem 2 index .dicttomark setuserparams pop
-} .bind odef
-/setcacheparams {
- % The MaxFontCache parameter is a system parameter, which we might
- % not be able to set. Fortunately, this doesn't matter, because
- % system parameters don't have to be synchronized between this code
- % and the VM.
- counttomark 1 add copy setcacheparams
- currentcacheparams % mark size lower upper
- 3 -1 roll pop
- /MinFontCompress 3 1 roll
- /MaxFontItem exch
- .dicttomark setuserparams
- cleartomark
-} .bind odef
-
-% Add bogus user and system parameters to satisfy badly written PostScript
-% programs that incorrectly assume the existence of all the parameters
-% listed in Appendix C of the Red Book. Note that some of these may become
-% real parameters later: code near the end of gs_init.ps takes care of
-% removing any such parameters from ps{user,system}params.
-
-% psuserparams
- /MaxFormItem 100000 .definepsuserparam
- /MaxPatternItem 20000 .definepsuserparam
- /MaxScreenItem 48000 .definepsuserparam
- /MaxUPathItem 5000 .definepsuserparam
-
-% File Access Permission parameters
- .currentglobal true .setglobal
- /.checkFilePermitparams {
- type /arraytype eq {
- currentuserparams /LockFilePermissions get {
- 5 { pop } repeat /setuserparams /invalidaccess signalerror
- }
- if
- } {
- 5 { pop } repeat /setuserparams /typecheck signalerror
- }
- ifelse
- true
- } .bind def
-% Initialize the File Permission access control to wide open
-% These will only be accessed via current/set userparams.
-% Values are a string containing multiple nul terminated path strings
- /PermitFileReading dup [ (*) ] .definepsuserparam
- psuserparams exch /.checkFilePermitparams load put
- /PermitFileWriting dup [ (*) ] .definepsuserparam
- psuserparams exch /.checkFilePermitparams load put
- /PermitFileControl dup [ (*) ] .definepsuserparam
- psuserparams exch /.checkFilePermitparams load put
- .setglobal
-
-pssystemparams begin
- /CurDisplayList 0 .forcedef
- /CurFormCache 0 .forcedef
- /CurOutlineCache 0 .forcedef
- /CurPatternCache 0 .forcedef
- /CurUPathCache 0 .forcedef
- /CurScreenStorage 0 .forcedef
- /CurSourceList 0 .forcedef
- /DoPrintErrors false .forcedef
- /MaxDisplayList 140000 .forcedef
- /MaxFormCache 100000 .forcedef
- /MaxOutlineCache 65000 .forcedef
- /MaxPatternCache 100000 .forcedef
- /MaxUPathCache 300000 .forcedef
- /MaxScreenStorage 84000 .forcedef
- /MaxSourceList 25000 .forcedef
- /RamSize 4194304 .forcedef
-end
-
-% Define the procedures for handling comment scanning. The names
-% %ProcessComment and %ProcessDSCComment are known to the interpreter.
-% These procedures take the file and comment string and file as operands.
-/.checkprocesscomment {
- dup null eq {
- pop true
- } {
- dup xcheck {
- type dup /arraytype eq exch /packedarraytype eq or
- } {
- pop false
- } ifelse
- } ifelse
-} .bind def
-/ProcessComment null .definepsuserparam
-psuserparams /ProcessComment {.checkprocesscomment} put
-(%ProcessComment) cvn {
- /ProcessComment getuserparam
- dup null eq { pop pop pop } { exec } ifelse
-} bind def
-/ProcessDSCComment null .definepsuserparam
-psuserparams /ProcessDSCComment {.checkprocesscomment} put
-(%ProcessDSCComment) cvn {
- /ProcessDSCComment getuserparam
- dup null eq { pop pop pop } { exec } ifelse
-} bind def
-
-% ------ Miscellaneous ------ %
-
-(<<) cvn % - << -mark-
- /mark load def
-(>>) cvn % -mark- <key1> <value1> ... >> <dict>
- /.dicttomark load def
-/languagelevel 2 def
-% When running in Level 2 mode, this interpreter is supposed to be
-% compatible with Adobe version 2017.
-/version (2017) readonly def
-
-% If binary tokens are supported by this interpreter,
-% set an appropriate default binary object format.
-/setobjectformat where
- { pop
- /RealFormat getsystemparam (IEEE) eq { 1 } { 3 } ifelse
- /ByteOrder getsystemparam { 1 add } if
- setobjectformat
- } if
-
-% Aldus Freehand versions 2.x check for the presence of the
-% setcolor operator, and if it is missing, substitute a procedure.
-% Unfortunately, the procedure takes different parameters from
-% the operator. As a result, files produced by this application
-% cause an error if the setcolor operator is actually defined
-% and 'bind' is ever used. Aldus fixed this bug in Freehand 3.0,
-% but there are a lot of files created by the older versions
-% still floating around. Therefore, at Adobe's suggestion,
-% we implement the following dreadful hack in the 'where' operator:
-% If the key is /setcolor, and
-% there is a dictionary named FreeHandDict, and
-% currentdict is that dictionary,
-% then "where" consults only that dictionary and not any other
-% dictionaries on the dictionary stack.
-.wheredict /setcolor {
- /FreeHandDict .where {
- /FreeHandDict get currentdict eq {
- pop currentdict /setcolor known { currentdict true } { false } ifelse
- } {
- .where
- } ifelse
- } {
- .where
- } ifelse
-} bind put
-
-% ------ Virtual memory ------ %
-
-/currentglobal % - currentglobal <bool>
- /currentshared load def
-/gcheck % <obj> gcheck <bool>
- /scheck load def
-/setglobal % <bool> setglobal -
- /setshared load def
-% We can make the global dictionaries very small, because they auto-expand.
-/globaldict currentdict /shareddict .knownget not { 4 dict } if def
-/GlobalFontDirectory SharedFontDirectory def
-
-% VMReclaim and VMThreshold are user parameters.
-/setvmthreshold { % <int> setvmthreshold -
- mark /VMThreshold 2 index .dicttomark setuserparams pop
-} odef
-/vmreclaim { % <int> vmreclaim -
- dup 0 gt {
- .vmreclaim
- } {
- mark /VMReclaim 2 index .dicttomark setuserparams pop
- } ifelse
-} odef
--1 setvmthreshold
-
-% ------ IODevices ------ %
-
-/.getdevparams where {
- pop /currentdevparams { % <iodevice> currentdevparams <dict>
- .getdevparams .dicttomark
- } odef
-} if
-/.putdevparams where {
- pop /setdevparams { % <iodevice> <dict> setdevparams -
- mark 1 index { } forall counttomark 2 add index
- .putdevparams pop pop
- } odef
-} if
-
-% ------ Job control ------ %
-
-serverdict begin
-
-% We could protect the job information better, but we aren't attempting
-% (currently) to protect ourselves against maliciousness.
-
-/.jobsave null def % top-level save object
-/.jobsavelevel 0 def % save depth of job (0 if .jobsave is null,
- % 1 otherwise)
-/.adminjob true def % status of current unencapsulated job
-
-end % serverdict
-
-% Because there may be objects on the e-stack created since the job save,
-% we have to clear the e-stack before doing the end-of-job restore.
-% We do this by executing a 2 .stop, which is caught by the 2 .stopped
-% in .runexec; we leave on the o-stack a procedure to execute aftewards.
-%
-%**************** The definition of startjob is not complete yet, since
-% it doesn't reset stdin/stdout.
-/.startnewjob { % <exit_bool> <password_level>
- % .startnewjob -
- serverdict /.jobsave get dup null eq { pop } { restore } ifelse
- exch {
- % Unencapsulated job
- serverdict /.jobsave null put
- serverdict /.jobsavelevel 0 put
- serverdict /.adminjob 3 -1 roll 1 gt put
- % The Adobe documentation doesn't say what happens to the
- % graphics state stack in this case, but an experiment
- % produced results suggesting that a grestoreall occurs.
- grestoreall
- } {
- % Encapsulated job
- pop
- serverdict /.jobsave save put
- serverdict /.jobsavelevel 1 put
- } ifelse
- % Reset the interpreter state.
- clear cleardictstack
- initgraphics
- false setglobal
-} bind def
-/.startjob { % <exit_bool> <password> <finish_proc>
- % .startjob <ok_bool>
- vmstatus pop pop serverdict /.jobsavelevel get eq
- 2 index .checkpassword 0 gt and {
- exch .checkpassword exch count 3 roll count 3 sub { pop } repeat
- cleardictstack
- % Reset the e-stack back to the 2 .stopped in .runexec,
- % passing the finish_proc to be executed afterwards.
- 2 .stop
- } { % Password check failed
- pop pop pop false
- } ifelse
-} odef
-/startjob { % <exit_bool> <password> startjob <ok_bool>
- % This is a hack. We really need some way to indicate explicitly
- % to the interpreter that we are under control of a job server.
- .userdict /quit /stop load put
- { .startnewjob true } .startjob
-} odef
-
-systemdict begin
-/quit { % - quit -
- //systemdict begin serverdict /.jobsave get null eq
- { end //quit }
- { /quit load /invalidaccess /signalerror load end exec }
- ifelse
-} bind odef
-end
-
-% We would like to define exitserver as a procedure, using the code
-% that the Red Book says is equivalent to it. However, since startjob
-% resets the exec stack, we can't do this, because control would never
-% proceed past the call on startjob if the exitserver is successful.
-% Instead, we need to construct exitserver out of pieces of startjob.
-
-serverdict begin
-
-/exitserver { % <password> exitserver -
- true exch { .startnewjob } .startjob not {
- /exitserver /invalidaccess signalerror
- } if
-} bind def
-
-end % serverdict
-
-% ------ Compatibility ------ %
-
-% In Level 2 mode, the following replace the definitions that gs_statd.ps
-% installs in statusdict and serverdict.
-% Note that statusdict must be allocated in local VM.
-% We don't bother with many of these yet.
-
-/.dict1 { exch mark 3 1 roll .dicttomark } bind def
-
-currentglobal false setglobal 25 dict exch setglobal begin
-currentsystemparams
-
-% The following do not depend on the presence of setpagedevice.
-/buildtime 1 index /BuildTime get def
-/byteorder 1 index /ByteOrder get def
-/checkpassword { .checkpassword 0 gt } bind def
-dup /DoStartPage known
- { /dostartpage { /DoStartPage getsystemparam } bind def
- /setdostartpage { /DoStartPage .dict1 setsystemparams } bind def
- } if
-dup /StartupMode known
- { /dosysstart { /StartupMode getsystemparam 0 ne } bind def
- /setdosysstart { { 1 } { 0 } ifelse /StartupMode .dict1 setsystemparams } bind def
- } if
-%****** Setting jobname is supposed to set userparams.JobName, too.
-/jobname { /JobName getuserparam } bind def
-/jobtimeout { /JobTimeout getuserparam } bind def
-/ramsize { /RamSize getsystemparam } bind def
-/realformat 1 index /RealFormat get def
-dup /PrinterName known
- { /setprintername { /PrinterName .dict1 setsystemparams } bind def
- } if
-/printername
- { currentsystemparams /PrinterName .knownget not { () } if exch copy
- } bind def
-currentuserparams /WaitTimeout known
- { /waittimeout { /WaitTimeout getuserparam } bind def
- } if
-
-% The following do require setpagedevice.
-/.setpagedevice where { pop } { (%END PAGEDEVICE) .skipeof } ifelse
-/defaulttimeouts
- { currentsystemparams dup
- /JobTimeout .knownget not { 0 } if
- exch /WaitTimeout .knownget not { 0 } if
- currentpagedevice /ManualFeedTimeout .knownget not { 0 } if
- } bind def
-/margins
- { currentpagedevice /Margins .knownget { exch } { [0 0] } ifelse
- } bind def
-/pagemargin
- { currentpagedevice /PageOffset .knownget { 0 get } { 0 } ifelse
- } bind def
-/pageparams
- { currentpagedevice
- dup /Orientation .knownget { 1 and ORIENT1 { 1 xor } if } { 0 } ifelse exch
- dup /PageSize get aload pop 3 index 0 ne { exch } if 3 2 roll
- /PageOffset .knownget { 0 get } { 0 } ifelse 4 -1 roll
- } bind def
-/setdefaulttimeouts
- { exch mark /ManualFeedTimeout 3 -1 roll
- /Policies mark /ManualFeedTimeout 1 .dicttomark
- .dicttomark setpagedevice
- /WaitTimeout exch mark /JobTimeout 5 2 roll .dicttomark setsystemparams
- } bind def
-/.setpagesize { 2 array astore /PageSize .dict1 setpagedevice } bind def
-/setduplexmode { /Duplex .dict1 setpagedevice } bind def
-/setmargins
- { exch 2 array astore /Margins .dict1 setpagedevice
- } bind def
-/setpagemargin { 0 2 array astore /PageOffset .dict1 setpagedevice } bind def
-/setpageparams
- { mark /PageSize 6 -2 roll
- 4 index 1 and ORIENT1 { 1 } { 0 } ifelse ne { exch } if 2 array astore
- /Orientation 5 -1 roll ORIENT1 { 1 xor } if
- /PageOffset counttomark 2 add -1 roll 0 2 array astore
- .dicttomark setpagedevice
- } bind def
-/setresolution
- { dup 2 array astore /HWResolution .dict1 setpagedevice
- } bind def
-%END PAGEDEVICE
-
-% The following are not implemented yet.
-%manualfeed
-%manualfeedtimeout
-%pagecount
-%pagestackorder
-%setpagestackorder
-
-pop % currentsystemparams
-
-% Flag the current dictionary so it will be swapped when we
-% change language levels. (See zmisc2.c for more information.)
-/statusdict currentdict def
-
-currentdict end
-/statusdict exch .forcedef % statusdict is local, systemdict is global
-
-% The following compatibility operators are in systemdict. They are
-% defined here, rather than in gs_init.ps, because they require the
-% resource machinery.
-
-/devforall { % <pattern> <proc> <scratch> devforall -
- exch {
- 1 index currentdevparams
- /Type .knownget { /FileSystem eq } { false } ifelse
- { exec } { pop pop } ifelse
- } /exec load 3 packedarray cvx exch
- (*) 3 1 roll ppstack flush /IODevice resourceforall
-} odef
-/devstatus { % <(%disk*%)> devstatus <searchable> <writable>
- % <hasNames> <mounted> <removable> <searchOrder>
- % <freePages> <size> true
- % <string> devstatus false
- dup length 5 ge {
- dup 0 5 getinterval (%disk) eq {
- dup /IODevice resourcestatus {
- pop pop dup currentdevparams
- dup /Searchable get
- exch dup /Writable get
- exch dup /HasNames get
- exch dup /Mounted get
- exch dup /Removable get
- exch dup /SearchOrder get
- exch dup /Free get
- exch /LogicalSize get
- 9 -1 roll pop true
- } {
- pop false
- } ifelse
- } {
- pop false
- } ifelse
- } {
- pop false
- } ifelse
-} odef
-
-% ------ Color spaces ------ %
-
-% Attempt to convert a tint transformation procedure to a type 4 Function.
-% The value <m> is the number of function inputs
-% The current color space defines the number of function output values.
-% The current color space will be the alternate color space for the function.
-% If the conversion fails then build a color cube function.
-
-/.converttinttransform { % [.. .. .. proc ] <m>
- % .converttinttransform [.. .. .. proc']
- .currentglobal % Save current global memory state
- 2 index gcheck .setglobal % Set gobal mode to match the array's mode
- 4 dict % Build a dictionary for our type 4 function
- dup /FunctionType 4 put % Set FunctionType
- dup /Function 5 index 3 get put % Set function expression
- % Stack: orig m global func
- dup /Domain
- [ 5 index {0 1} repeat ] put % set Domain values
- dup /Range
- [ mark currentcolor counttomark
- dup 2 add 1 roll cleartomark % # of components in alternate space
- {0 1} repeat ] put % Set Range values
- { .buildfunction } .internalstopped % Try to build a type 4 function
- dup
- { % type 4 function failed - Collect data for a color cube
- pop % Remove duplicate copy of stopped status
- pop % Remove invalid type 4 function
- 1 index % Get number of inputs
- mark currentcolor counttomark % Count number of output colors
- dup 2 add 1 roll cleartomark % # of components in alternate space
- 4 index 3 get % Get tint transform function
- { .buildcolorcube } .internalstopped
- } if
- { % Color cube build failed
- pop pop pop exch pop exch pop % Remove unused parameters
- .setglobal % Restore global state
- } { % Function build succeeded - install function
- % Stack: orig m global func
- 3 -1 roll pop % Stack: orig global func
- 2 index 4 array copy dup 3 4 -1 roll put
- exch .setglobal exch pop
- } ifelse
-} bind def
-
-% Define the setcolorspace procedures:
-% <colorspace> proc <colorspace'|null>
-% We have to define the dictionary first, so it can be bound into the
-% implementation procedure, but we can't populate it until the procedure
-% has been defined, so that the procedure can get bound into recursive calls.
-/colorspacedict 20 dict def
-
-/.devcs [
- /DeviceGray /DeviceRGB /DeviceCMYK /DevicePixel
-] readonly def
-/currentcolorspace { % - currentcolorspace <array>
- .currentcolorspace dup type /integertype eq {
- //.devcs exch 1 getinterval
- } if
-} odef
-currentdict /.devcs .undef
-
-/setcolorspace { % <name|array> setcolorspace -
- dup dup dup type /nametype ne { 0 get } if
- //colorspacedict exch get exec
- dup null eq { pop } { .setcolorspace } ifelse pop
-} odef
-
-colorspacedict
- dup /DeviceGray { pop 0 setgray null } bind put
- dup /DeviceRGB { pop 0 0 0 setrgbcolor null } bind put
- /setcmykcolor where
- { pop dup /DeviceCMYK { pop 0 0 0 1 setcmykcolor null } bind put
- } if
- /.setcieaspace where
- { pop dup /CIEBasedA { NOCIE { pop 0 setgray null } { dup 1 get .setcieaspace } ifelse } bind put
- } if
- /.setcieabcspace where
- { pop dup /CIEBasedABC { NOCIE { pop 0 0 0 setrgbcolor null } { dup 1 get .setcieabcspace } ifelse } bind put
- } if
- /.setciedefspace where
- { pop dup /CIEBasedDEF { NOCIE { pop 0 0 0 setrgbcolor null } { dup 1 get .setciedefspace } ifelse } bind put
- } if
- /.setciedefgspace where
- { pop dup /CIEBasedDEFG { NOCIE { pop 0 0 0 1 setcmykcolor null } { dup 1 get .setciedefgspace } ifelse } bind put
- } if
- /.setseparationspace where
- { pop dup /Separation { dup 2 get setcolorspace dup 1 .converttinttransform .setseparationspace } bind put
- } if
- /.setindexedspace where
- { pop dup /Indexed { dup 1 get setcolorspace dup .setindexedspace } bind put
- } if
- /.nullpatternspace [/Pattern] readonly def
- /.setpatternspace where
- { pop dup /Pattern
- { dup type /nametype eq { pop //.nullpatternspace } if
- dup length 1 gt { dup 1 get setcolorspace } if
- dup .setpatternspace
- } bind put
- } if
- % If DeviceN space is included, gs_ll3.ps registers it.
- /.setdevicepixelspace where
- { pop dup /DevicePixel { dup .setdevicepixelspace } bind put
- } if
- currentdict /.nullpatternspace .undef
-pop
-
-% ------ CIE color rendering ------ %
-
-% Define findcolorrendering and a default ColorRendering ProcSet.
-
-/findcolorrendering { % <intentname> findcolorrendering
- % <crdname> <found>
- /ColorRendering /ProcSet findresource
- 1 index .namestring (.) concatstrings
- 1 index /GetPageDeviceName get exec .namestring (.) concatstrings
- 2 index /GetHalftoneName get exec .namestring
- concatstrings concatstrings
- dup /ColorRendering resourcestatus {
- pop pop exch pop exch pop true
- } {
- pop /GetSubstituteCRD get exec false
- } ifelse
-} odef
-
-5 dict dup begin
-
-/GetPageDeviceName { % - GetPageDeviceName <name>
- currentpagedevice dup /PageDeviceName .knownget {
- exch pop dup null eq { pop /none } if
- } {
- pop /none
- } ifelse
-} bind def
-
-/GetHalftoneName { % - GetHalftoneName <name>
- currenthalftone /HalftoneName .knownget not { /none } if
-} bind def
-
-/GetSubstituteCRD { % <intentname> GetSubstituteCRD <crdname>
- pop /DefaultColorRendering
-} bind def
-
-end
-% The resource machinery hasn't been activated, so just save the ProcSet
-% and let .fixresources finish the installation process.
-/ColorRendering exch def
-
-% Define setcolorrendering.
-
-/.colorrenderingtypes 5 dict def
-
-/setcolorrendering { % <crd> setcolorrendering -
- dup /ColorRenderingType get //.colorrenderingtypes exch get exec
-} odef
-
-/.setcolorrendering1 where { pop } { (%END CRD) .skipeof } ifelse
-
-.colorrenderingtypes 1 {
- dup .buildcolorrendering1 .setcolorrendering1
-} .bind put
-
-% Note: the value 101 in the next line must be the same as the value of
-% GX_DEVICE_CRD1_TYPE in gscrdp.h.
-.colorrenderingtypes 101 {
- dup .builddevicecolorrendering1 .setdevicecolorrendering1
-} .bind put
-
-% Initialize the default CIE rendering dictionary.
-% The most common CIE files seem to assume the "calibrated RGB color space"
-% described on p. 189 of the PostScript Language Reference Manual,
-% 2nd Edition; we simply invert this transformation back to RGB.
-mark
- /ColorRenderingType 1
-% We must make RangePQR and RangeLMN large enough so that values computed by
-% the assumed encoding MatrixLMN don't get clamped.
- /RangePQR [0 0.9505 0 1 0 1.0890] readonly
-% This TransformPQR implements a relative colorimetric intent by scaling
-% the XYZ values relative to the white and black points.
- /TransformPQR
- [ { 5 1 roll % p Ws Bs Wd Bd
- 4 {3 get 5 1 roll} repeat % ws bs wd bd p
- 3 index sub % ws bs wd bd p-bs
- 1 index % ws bs wd bd p-bs bd
- 6 2 roll % p-bs bd ws bs wd bd
- sub % p-bs bd ws bs wd-bd
- 5 1 roll % wd-bd p-bs bd ws bs
- sub % wd-bd p-bs bd ws-bs
- 4 2 roll % bd ws-bs wd-bd p-bs
- mul % bd ws-bs (wd-bd)*(p-bs)
- exch div add % bd + (wd-bd)*(p-bs)/(ws-bs)
- } bind
- { 5 1 roll
- 4 {4 get 5 1 roll} repeat
- 3 index sub 1 index 6 2 roll sub 5 1 roll
- sub 4 2 roll mul exch div add
- } bind
- { 5 1 roll
- 4 {5 get 5 1 roll} repeat
- 3 index sub 1 index 6 2 roll sub 5 1 roll
- sub 4 2 roll mul exch div add
- } bind
- ] readonly
- /RangeLMN [0 0.9505 0 1 0 1.0890] readonly
- /MatrixABC
- [ 3.24063 -0.96893 0.05571
- -1.53721 1.87576 -0.20402
- -0.49863 0.04152 1.05700
- ] readonly
- /EncodeABC [ {0 .max 0.45 exp} bind dup dup] readonly
- /WhitePoint [0.9505 1 1.0890] readonly
- % Some Genoa tests seem to require the presence of BlackPoint.
- /BlackPoint [0 0 0] readonly
-.dicttomark setcolorrendering
-
-%END CRD
-
-% Initialize a CIEBased color space for sRGB.
-/CIEsRGB [ /CIEBasedABC
- mark
- /DecodeLMN [ {
- dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse
- } bind dup dup ] readonly
- /MatrixLMN [
- 0.412457 0.212673 0.019334
- 0.357576 0.715152 0.119192
- 0.180437 0.072175 0.950301
- ] readonly
- /WhitePoint [0.9505 1.0 1.0890] readonly
- .dicttomark readonly
-] readonly def
-
-% ------ Painting ------ %
-
-% A straightforward definition of execform that doesn't actually
-% do any caching.
-/.execform1 {
- % This is a separate operator so that the stacks will be restored
- % properly if an error occurs.
- dup /Matrix get concat
- dup /BBox get aload pop
- exch 3 index sub exch 2 index sub rectclip
- dup /PaintProc get
- 1 index /Implementation known not {
- 1 index dup /Implementation null .forceput readonly pop
- } if
- exec
-} .bind odef % must bind .forceput
-
-/.formtypes 5 dict
- dup 1 /.execform1 load put
-def
-
-/execform { % <form> execform -
- gsave {
- dup /FormType get //.formtypes exch get exec
- } stopped grestore { stop } if
-} odef
-
-/.patterntypes 5 dict
- dup 1 /.buildpattern1 load put
-def
-
-/makepattern { % <proto_dict> <matrix> makepattern <pattern>
- //.patterntypes 2 index /PatternType get get
- .currentglobal false .setglobal exch
- % Stack: proto matrix global buildproc
- 3 index dup length 1 add dict .copydict
- 3 index 3 -1 roll exec 3 -1 roll .setglobal
- 1 index /Implementation 3 -1 roll put
- readonly exch pop exch pop
-} odef
-
-/setpattern { % [<comp1> ...] <pattern> setpattern -
- currentcolorspace 0 get /Pattern ne {
- [ /Pattern currentcolorspace ] setcolorspace
- } if setcolor
-} odef
-
-% Extend image and imagemask to accept dictionaries.
-% We must create .imagetypes and .imagemasktypes outside level2dict,
-% and leave some extra space because we're still in Level 1 mode.
-systemdict begin
-/.imagetypes 5 dict
- dup 1 /.image1 load put
-def
-/.imagemasktypes 5 dict
- dup 1 /.imagemask1 load put
-def
-end
-
-/.image /image load def
-/image {
- dup type /dicttype eq {
- dup /ImageType get //.imagetypes exch get exec
- } {
- //.image
- } ifelse
-} odef
-currentdict /.image undef
-
-/.imagemask /imagemask load def
-/imagemask {
- dup type /dicttype eq {
- dup /ImageType get //.imagemasktypes exch get exec
- } {
- //.imagemask
- } ifelse
-} odef
-currentdict /.imagemask undef
-
-end % level2dict
diff --git a/Master/xemtex/gslib/gs_lgo_e.ps b/Master/xemtex/gslib/gs_lgo_e.ps
deleted file mode 100644
index 3b692eaa468..00000000000
--- a/Master/xemtex/gslib/gs_lgo_e.ps
+++ /dev/null
@@ -1,92 +0,0 @@
-% Copyright (C) 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_lgo_e.ps,v 1.3.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Adobe "original" Latin glyph set.
-% This is not an Encoding strictly speaking, but we treat it like one.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/AdobeLatinOriginalGlyphEncoding mark
-
-/.notdef
-/A /AE /Aacute /Acircumflex /Adieresis /Agrave /Aring /Atilde
-/B
-/C /Ccedilla
-/D
-/E /Eacute /Ecircumflex /Edieresis /Egrave /Eth
-/F
-/G
-/H
-/I /Iacute /Icircumflex /Idieresis /Igrave
-/J
-/K
-/L /Lslash
-/M
-/N /Ntilde
-/O /OE /Oacute /Ocircumflex /Odieresis /Ograve /Oslash /Otilde
-/P
-/Q
-/R
-/S /Scaron
-/T /Thorn
-/U /Uacute /Ucircumflex /Udieresis /Ugrave
-/V
-/W
-/X
-/Y /Yacute /Ydieresis
-/Z /Zcaron
-/a /aacute /acircumflex /acute /adieresis /ae /agrave /ampersand /aring
- /asciicircum /asciitilde /asterisk /at /atilde
-/b /backslash /bar /braceleft /braceright /bracketleft /bracketright /breve
- /brokenbar /bullet
-/c /caron /ccedilla /cedilla /cent /circumflex /colon /comma /copyright
- /currency
-/d /dagger /daggerdbl /degree /dieresis /divide /dollar /dotaccent /dotlessi
-/e /eacute /ecircumflex /edieresis /egrave /eight /ellipsis /emdash /endash
- /equal /eth /exclam /exclamdown
-/f /fi /five /fl /florin /four /fraction
-/g /germandbls /grave /greater /guillemotleft /guillemotright /guilsinglleft
- /guilsinglright
-/h /hungarumlaut /hyphen
-/i /iacute /icircumflex /idieresis /igrave
-/j
-/k
-/l /less /logicalnot /lslash
-/m /macron /minus /mu /multiply
-/n /nine /ntilde /numbersign
-/o /oacute /ocircumflex /odieresis /oe /ogonek /ograve /one /onehalf
- /onequarter /onesuperior /ordfeminine /ordmasculine /oslash /otilde
-/p /paragraph /parenleft /parenright /percent /period /periodcentered
- /perthousand /plus /plusminus
-/q /question /questiondown /quotedbl /quotedblbase /quotedblleft
- /quotedblright /quoteleft /quoteright /quotesinglbase /quotesingle
-/r /registered /ring
-/s /scaron /section /semicolon /seven /six /slash /space /sterling
-/t /thorn /three /threequarters /threesuperior /tilde /trademark /two
- /twosuperior
-/u /uacute /ucircumflex /udieresis /ugrave /underscore
-/v
-/w
-/x
-/y /yacute /ydieresis /yen
-/z /zcaron /zero
-
-counttomark packedarray exch pop
-8 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_lgx_e.ps b/Master/xemtex/gslib/gs_lgx_e.ps
deleted file mode 100644
index 45ec80400f9..00000000000
--- a/Master/xemtex/gslib/gs_lgx_e.ps
+++ /dev/null
@@ -1,61 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_lgx_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Adobe "extension" Latin glyph set.
-% This is not an Encoding strictly speaking, but we treat it like one.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/AdobeLatinExtensionGlyphEncoding mark
-
-/Abreve /Amacron /Aogonek
-/Cacute /Ccaron /Dcaron
-/Dcroat /Delta
-/Ecaron /Edotaccent /Emacron /Eogonek
-/Gbreve /Gcommaaccent
-/Idotaccent /Imacron /Iogonek
-/Kcommaaccent
-/Lacute /Lcaron /Lcommaaccent
-/Nacute /Ncaron /Ncommaaccent
-/Ohungarumlaut /Omacron
-/Racute /Rcaron /Rcommaaccent
-/Sacute /Scedilla /Scommaaccent
-/Tcaron /Tcommaaccent
-/Uhungarumlaut /Umacron /Uogonek /Uring
-/Zacute /Zdotaccent
-/abreve /amacron /aogonek
-/cacute /ccaron /commaaccent
-/dcaron /dcroat
-/ecaron /edotaccent /emacron /eogonek
-/gbreve /gcommaaccent /greaterequal
-/imacron /iogonek
-/kcommaaccent
-/lacute /lcaron /lcommaaccent /lessequal /lozenge
-/nacute /ncaron /ncommaaccent /notequal
-/ohungarumlaut /omacron
-/partialdiff
-/racute /radical /rcaron /rcommaaccent
-/sacute /scedilla /scommaaccent /summation
-/tcaron /tcommaaccent
-/uhungarumlaut /umacron /uogonek /uring
-/zacute /zdotaccent
-
-counttomark packedarray exch pop
-9 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_ll3.ps b/Master/xemtex/gslib/gs_ll3.ps
deleted file mode 100644
index dfcd3a09445..00000000000
--- a/Master/xemtex/gslib/gs_ll3.ps
+++ /dev/null
@@ -1,469 +0,0 @@
-% Copyright (C) 1997, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_ll3.ps,v 1.10.2.2.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for PostScript LanguageLevel 3 functions.
-% This file must be loaded after gs_lev2.ps and gs_res.ps.
-% These definitions go into ll3dict or various ProcSets.
-% NOTE: the interpreter creates ll3dict.
-
-ll3dict begin
-
-% We need LanguageLevel 2 or higher in order to have setuserparams and
-% defineresource.
-languagelevel dup 2 .max .setlanguagelevel
-
-% ------ Idiom recognition ------ %
-
-/IdiomRecognition false .definepsuserparam
-
-% Modify `bind' to apply idiom recognition afterwards.
-/.bindscratch 128 string def
-% Do the right thing if NOBIND or DELAYBIND is in effect.
-% Note also that since this definition of `bind' may get bound in,
-% it has to function properly even at lower language levels,
-% where IdiomRecognition may not be defined.
-/bind load /.bind load ne
-/bind { % <proc> bind <proc'>
- //.bind currentuserparams /IdiomRecognition
- .knownget not { false } if {
- (*) {
- /IdiomSet findresource
- false exch {
- % Stack: proc false dummykey [template substitute]
- exch pop dup 1 get exch 0 get
- % Stack: proc false substitute template
- 3 index .eqproc {
- 2 index gcheck 1 index gcheck not and {
- pop
- } {
- 3 -1 roll pop exch not exit
- } ifelse
- } {
- pop
- } ifelse
- } forall { exit } if
- } //.bindscratch /IdiomSet resourceforall
- } if
-} odef
-{ /.bind /bind load def
- /bind { } def
-} if
-currentdict /.bindscratch .undef
-
-% ------ HalftoneTypes 6, 10, 16 and HalftoneMode ------ %
-
-% This code depends on an internal HalftoneType 7 with the following keys:
-% Width, Height, Width2, Height2, TransferFunction:
-% as for HalftoneType 16.
-% Thresholds: a string or bytestring holding the thresholds,
-% (Width x Height + Width2 x Height2) x BitsPerSample / 8 bytes,
-% as for HalftoneType 16 except that the samples may be either
-% 8 or 16 bits wide.
-% BitsPerSample: 8 or 16.
-
-% Note that this HalftoneType never appears in halftone dictionaries given
-% to sethalftone, only as a component in those given to .sethalftone5,
-% so its numeric value can be chosen ad lib as long as it differs from the
-% other values that are legal in component dictionaries for .sethalftone5
-% (currently only 1 and 3).
-
-/.makehalftone7 { % <dict> <dict> <source> <Width> <Height>
- % (<Width2> <Height2> | null) <BPS> .makehalftone7
- % <setdict> <dict5> { .sethalftone5 }
- 8 dict begin
- /HalftoneType 7 def
- /BitsPerSample exch def
- dup null eq {
- pop 0
- } {
- /Height2 1 index def /Width2 2 index def mul
- } ifelse 3 1 roll
- /Height 1 index def
- /Width 2 index def
- mul add BitsPerSample 8 idiv mul .bigstring
- % Stack: dict dict source str
- dup type /stringtype eq { readstring } { .readbytestring } ifelse
- not { /sethalftone load /rangecheck signalerror exit } if
- readonly /Thresholds exch def
- /TransferFunction .knownget { /TransferFunction exch def } if
- % If the original Thresholds was a file, replace it with
- % a new one.
- dup /Thresholds get type /filetype eq {
- dup /Thresholds [ Thresholds ] cvx 0 () .subfiledecode put
- } if
- mark /HalftoneType 5 /Default currentdict end .dicttomark
- { .sethalftone5 }
-} bind def
-
-/.bigstring { % <size> .bigstring <string|bytestring>
- dup 65400 gt { .bytestring } { string } ifelse
-} bind def
-
-/.readbytestring { % <source> <bytestring> .readbytestring
- % <bytestring> <filled>
- % Note that since bytestrings don't implement getinterval,
- % if filled is false, there is no way to tell how much
- % was read.
- true exch 0 1 2 index length 1 sub {
- % Stack: source true str index
- 3 index read not { pop exch not exch exit } if
- 3 copy put pop pop
- } for 3 -1 roll pop exch
-} bind def
-
-/.sethalftone6 { % <dict> <dict> .sethalftone6 <setdict> <dict5>
- % { .sethalftone5 }
- % Keys: Width, Height, Thresholds, T'Function
- dup /Thresholds get
- 1 index /Width get 2 index /Height get
- null 8 .makehalftone7
-} bind def
-
-/.sethalftone10 { % <dict> <dict> .sethalftone10 <setdict> <dict5>
- % { .sethalftone5 }
- % Keys: Xsquare, Ysquare, Thresholds, T'Function
- % Note that this is the only one of these three HalftoneTypes
- % that allows either a file or a string for Thresholds.
- dup /Thresholds get dup type /stringtype eq { 0 () .subfiledecode } if
- 1 index /Xsquare get dup 3 index /Ysquare get dup
- 8 .makehalftone7
-} bind def
-
-/.sethalftone16 { % <dict> <dict> .sethalftone16 <setdict> <dict5>
- % { .sethalftone5 }
- % Keys: Width, Height, Width2, Height2,
- % Thresholds, T'Function
- dup /Thresholds get
- 1 index /Width get 2 index /Height get
- 3 index /Width2 .knownget { % 2-rectangle case
- 4 index /Height2 get
- } { % 1-rectangle case
- null
- } ifelse 16 .makehalftone7
-} bind def
-
-.halftonetypes begin
- 6 /.sethalftone6 load def
- 10 /.sethalftone10 load def
- 16 /.sethalftone16 load def
-end
-
-% Redefine the halftone-setting operators to honor HalftoneMode.
-/setcolorscreen {
- /HalftoneMode getuserparam 0 eq {
- //setcolorscreen
- } {
- 12 { pop } repeat .getdefaulthalftone
- { //sethalftone }
- { .setdefaulthalftone }
- ifelse
- } ifelse
-} odef
-/setscreen {
- /HalftoneMode getuserparam 0 eq {
- //setscreen
- } {
- pop pop pop .getdefaulthalftone
- { //sethalftone }
- { .setdefaulthalftone }
- ifelse
- } ifelse
-} odef
-/sethalftone {
- /HalftoneMode getuserparam 0 eq {
- //sethalftone
- } {
- pop .getdefaulthalftone
- { //sethalftone }
- { .setdefaulthalftone }
- ifelse
- } ifelse
-} odef
-
-% ------ ImageTypes 3 and 4 (masked images) ------ %
-
-.imagetypes
- dup 3 /.image3 load put
- dup 4 /.image4 load put
-% We also detect ImageType 103 here: it isn't worth making a separate file
-% just for this.
- /.image3x where { pop dup 103 /.image3x load put } if
-pop
-
-% ------ Functions ------ %
-
-% Define the FunctionType resource category.
-/Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /integertype def
-/FunctionType currentdict end /Category defineresource pop
-
-{0 2 3} { dup /FunctionType defineresource pop } forall
-
-% ------ Smooth shading ------ %
-
-% Define the ShadingType resource category.
-/Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /integertype def
-/ShadingType currentdict end /Category defineresource pop
-
-systemdict /.shadingtypes mark % not ll3dict
- 1 /.buildshading1 load
- 2 /.buildshading2 load
- 3 /.buildshading3 load
- 4 /.buildshading4 load
- 5 /.buildshading5 load
- 6 /.buildshading6 load
- 7 /.buildshading7 load
-.dicttomark put
-
-systemdict /.reuseparamdict mark
- /Intent 2
- /AsyncRead false
- /CloseSource true
-.dicttomark readonly put
-/.buildshading { % <shadingdict> .buildshading <shading>
- % Unfortunately, we always need to make the DataSource reusable,
- % because if clipping is involved, even shfill may need to read
- % the source data multiple times. If it weren't for this,
- % we would only need to create a reusable stream if the ultimate
- % source of the data is a procedure (since the library can't
- % suspend shading to do a procedure callout).
- dup /DataSource .knownget {
- dup type /filetype eq {
- //.reuseparamdict /ReusableStreamDecode filter
- .currentglobal 1 index gcheck .setglobal
- % Stack: shdict rsdfile saveglobal
- 2 index dup length dict copy exch .setglobal
- dup /DataSource 4 -1 roll put exch pop
- } {
- pop
- } ifelse
- } if
- % The .buildshading operators use the current color space
- % for ColorSpace.
- dup /ShadingType get //.shadingtypes exch get
- 1 index /ColorSpace get setcolorspace exec
-} bind def
-systemdict /.reuseparamdict undef
-
-/.buildpattern2 { % <template> <matrix> .buildpattern2
- % <template> <pattern>
- % We want to build the pattern without doing gsave/grestore,
- % since we want it to load the CIE caches.
- 1 index /Shading get
- mark currentcolor currentcolorspace
- counttomark 4 add -3 roll mark 4 1 roll
- % Stack: -mark- ..color.. cspace -mark- template matrix shadingdict
- { .buildshading } stopped {
- cleartomark setcolorspace setcolor pop stop
- } if
- .buildshadingpattern
- 3 -1 roll pop counttomark 1 add 2 roll setcolorspace setcolor pop
-} bind def
-
-.patterntypes
- 2 /.buildpattern2 load put
-
-/shfill { % <shadingdict> shfill -
- % Currently, .shfill requires that the color space
- % in the pattern be the current color space.
- dup gsave { .buildshading .shfill } stopped grestore { stop } if
- pop
-} odef
-
-% Establish an initial smoothness value that matches Adobe RIPs.
-0.02 setsmoothness
-
-% ------ UseCIEColor ------ %
-
-% The library maintains and detects the UseCIEColor device parameter,
-% but it doesn't have access to the resource dictionaries. We also
-% want color space substitution to work in systems without a PostScript
-% interpreter. Therefore, we eagerly inform the library of changes in
-% the (effective) ColorSpace category that might affect the operation of
-% UseCIEColor. We must notice the following events:
-% 1) defineresource and undefineresource of the Default ColorSpaces.
-% 2) restore.
-% 3) Changes in current VM, which cause a different set of resources
-% to become visible.
-% #1 is rare. #2 is handled in C code. If checking the ColorSpace
-% category on #3 turns out to be expensive, we can cache more information
-% about whether these operations actually affect UseCIEColor.
-
-% This operator implements color space substitution in the library:
-% <index> <bool> .setsubstitutecolorspace -
-% <bool> = true means substitute the current color space for the one given
-% by <index>; <bool> = false means stop substituting. Substitution is not
-% affected by grestore/setgstate, but it is affected by restore.
-
-% ColorSpace defineresource and undefineresource for the Default keys
-% call .definedefaultcs and .undefinedefaultcs. See gs_res.ps.
-
-/.useciecolorkeydict mark
- /UseCIEColor null
-.dicttomark readonly def
-/.definedefaultcs { % <index> <value> .definedefaultcs -
- currentcolorspace
- % Temporarily disable color substitution, in case the substitute
- % color space is or mentions a color space that is currently
- % being substituted.
- currentdevice //.useciecolorkeydict .getdeviceparams exch pop exch pop
- mark 5 -2 roll
- % Stack: cspace UseCIEColor mark index value
- { setcolorspace true .setsubstitutecolorspace }
- stopped counttomark 1 add 1 roll cleartomark
- % Stack: cspace UseCIEColor stopped?
- 3 1 roll
- currentdevice null true mark /UseCIEColor 6 -1 roll .putdeviceparams pop pop
- setcolorspace { stop } if
-} bind def
-currentdict /.useciecolorkeydict undef
-
-/.undefinedefaultcs { % <index> .undefinedefaultcs -
- false .setsubstitutecolorspace
-} bind def
-
-/.setdefaultcs { % <index> <value|null> .setdefaultcs -
- dup null eq { pop .undefinedefaultcs } { .definedefaultcs } ifelse
-} bind def
-
-/.getdefaultcs { % <key> .getdefaultcs <value|null>
- .GetInstance { 0 get } { null } ifelse
-} bind def
-
-/.setglobal { % <bool> .setglobal -
- dup .currentglobal ne {
- % If there are no local definitions of the Default keys,
- % changing VM can't affect the definition of any resource.
- /.localcsdefaults .uservar {
- % We only want to change substitutions for color spaces
- % whose definitions are actually changing.
- /ColorSpace /Category findresource begin
- /DefaultGray .getdefaultcs
- /DefaultRGB .getdefaultcs
- /DefaultCMYK .getdefaultcs
- end
- 3 index .setglobal
- /ColorSpace /Category findresource begin
- /DefaultGray .getdefaultcs
- /DefaultRGB .getdefaultcs
- /DefaultCMYK .getdefaultcs
- end
- % Stack: bool oldgray oldrgb oldcmyk
- % newgray newrgb newcmyk
- dup 4 index ne { 2 exch .setdefaultcs } { pop } ifelse
- dup 4 index ne { 1 exch .setdefaultcs } { pop } ifelse
- dup 4 index ne { 0 exch .setdefaultcs } { pop } ifelse
- pop pop pop pop
- } {
- .setglobal
- } ifelse
- } {
- .setglobal
- } ifelse
-} .bind odef % bind in .setglobal
-
-
-% Define default device color spaces to allow substitution
-% on UseCIEColor == true :
-
-/DefaultGray
-[ /CIEBasedA
- 3 dict begin
- /WhitePoint [ 0.9505 1.0 1.089 ] def
- /DecodeLMN [ { 1.8 exp } { 1.8 exp } { 1.8 exp } ] def
- /MatrixLMN [ 0.4439 0.2522 0.0436 0.3341 0.6371 0.1387 0.1725 0.1107 0.9067 ] def
- currentdict end
-]
-/ColorSpace defineresource pop
-
-/DefaultRGB
-[ /CIEBasedABC
- 3 dict begin
- /WhitePoint [ 0.9505 1.0 1.089 ] def
- /DecodeLMN [ { 1.8 exp } { 1.8 exp } { 1.8 exp } ] def
- /MatrixLMN [ 0.4439 0.2522 0.0436 0.3341 0.6371 0.1387 0.1725 0.1107 0.9067 ] def
- currentdict end
-]
-/ColorSpace defineresource pop
-
-/DefaultCMYK
-[ /CIEBasedDEFG
- 4 dict begin
- /WhitePoint [ 0.9505 1.0 1.089 ] def
- /Table [ 2 2 2 2
- % Trivial table :
- % [
- % [ < FFFFFF 000000 FFFF00 000000>
- % < FF00FF 000000 FF0000 000000> ]
- % [ < 00FFFF 000000 00FF00 000000>
- % < 0000FF 000000 000000 000000> ]
- % ]
-
- % AcrobatReader-compatible table :
- [
- [ < FFFFFF 000000 FFFF00 000000>
- < EA007F 000000 FC000F 000000> ]
-
- [ < 00A0C8 000000 008436 000000>
- < 00007C 000000 000000 000000> ]
- ]
- ] def
- /DecodeLMN [ { 1.8 exp } { 1.8 exp } { 1.8 exp } ] def
- /MatrixLMN [ 0.4439 0.2522 0.0436 0.3341 0.6371 0.1387 0.1725 0.1107 0.9067 ] def
- currentdict end
-]
-/ColorSpace defineresource pop
-
-
-% ------ DeviceN color space ------ %
-
-% This isn't quite right, because the ColorSpaceFamily resource will exist
-% even with languagelevel < 3, but it's close enough.
-
-/.setdevicenspace where {
- pop colorspacedict /DeviceN {
- dup 2 get setcolorspace dup
- dup 1 get length % # of components
- .converttinttransform .setdevicenspace
- } bind put
-} if
-
-% ------ Miscellaneous ------ %
-
-% Define additional user and system parameters.
-/HalftoneMode 0 .definepsuserparam
-/MaxSuperScreen 1016 .definepsuserparam
-pssystemparams begin % read-only, so use .forcedef
- /MaxDisplayAndSourceList 160000 .forcedef
-end
-
-% Define the IdiomSet resource category.
-{ /IdiomSet } {
- /Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /dicttype def
- currentdict end /Category defineresource pop
-} forall
-
-/languagelevel 3 def
-% When running in LanguageLevel 3 mode, this interpreter is supposed to be
-% compatible with Adobe version 3010.
-/version (3010) readonly def
-
-.setlanguagelevel
-
-end % ll3dict
diff --git a/Master/xemtex/gslib/gs_m.xbm b/Master/xemtex/gslib/gs_m.xbm
deleted file mode 100644
index a94e079e257..00000000000
--- a/Master/xemtex/gslib/gs_m.xbm
+++ /dev/null
@@ -1,16 +0,0 @@
-#define gs_m.xbm_width 32
-#define gs_m.xbm_height 32
-#define gs_m.xbm_x_hot 0
-#define gs_m.xbm_y_hot 0
-static unsigned char gs.m.bm_bits[] = {
- 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x48, 0x00,
- 0x00, 0xf8, 0xc7, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x80, 0x3f, 0xf0, 0x00,
- 0xc0, 0x0f, 0xf8, 0x01, 0xc0, 0x87, 0xfc, 0x03, 0xe0, 0xa7, 0xfc, 0x03,
- 0xe0, 0x27, 0xf8, 0x03, 0xe0, 0x07, 0xf0, 0x03, 0xc0, 0x0f, 0xe3, 0x01,
- 0x80, 0x1f, 0xe3, 0x00, 0x00, 0x3f, 0x60, 0x00, 0x00, 0x7c, 0x10, 0x00,
- 0xc0, 0x3f, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00,
- 0xf0, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
- 0xc0, 0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0x1f,
- 0xf0, 0x00, 0x80, 0x0f, 0x78, 0x10, 0x80, 0x07, 0x78, 0x10, 0xc0, 0x13,
- 0x70, 0xe0, 0xff, 0x08, 0xf0, 0x00, 0x00, 0x06, 0xc0, 0x03, 0xe0, 0x01,
- 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/gslib/gs_m.xpm b/Master/xemtex/gslib/gs_m.xpm
deleted file mode 100644
index d99770097a9..00000000000
--- a/Master/xemtex/gslib/gs_m.xpm
+++ /dev/null
@@ -1,44 +0,0 @@
-/* XPM */
-static char * gs_m_xpm[] = {
-/* width height ncolors cpp [x_hot y_hot] */
-"32 32 6 1 0 0",
-/* colors */
-" s none m none c none",
-". s iconColor1 m black c black",
-"X s iconColor2 m white c white",
-"o c #C0C0C0C0C0C0",
-"O c #808080808080",
-"+ c #00000000FFFF",
-/* pixels */
-" .X ",
-" .X. ",
-" .XX. ",
-" ........XXX.. ",
-" .........oXXXo.. ",
-" .......XXXXXXO... ",
-" ......XXXXXXX...... ",
-" .....XXXX+XX........ ",
-" ......XX+X+XX........ ",
-" ......XX+XXXXX....... ",
-" ......XXXXXXXXX...... ",
-" ......XXXX++XXX.... ",
-" .....OXXX++XXX... ",
-" ......XXXXXXX.. ",
-" .....XXXXX. ",
-" ........XXXXXXX ",
-" .....XXXXXXXXXXXX ",
-" .......XXXXXXXXXXXX ",
-" ...................X ",
-" ...................... ",
-" ...................... ",
-" ...................... ",
-" ..................... ",
-" XXXXXXXXXXXX........ ",
-" ....XXXXXXXXXXXXXXX.....X ",
-" ....XXXXX.XXXXXXXXXX....XX ",
-" ....XXXXX.XXXXXXXXX....XX. ",
-" ...XXXXXX...........XXX. ",
-" ....XXXXXXXXXXXXXXXXX.. ",
-" ....XXXXXXXXXXX.... ",
-" ............. ",
-" "};
diff --git a/Master/xemtex/gslib/gs_m_m.xbm b/Master/xemtex/gslib/gs_m_m.xbm
deleted file mode 100644
index c792a4f5239..00000000000
--- a/Master/xemtex/gslib/gs_m_m.xbm
+++ /dev/null
@@ -1,16 +0,0 @@
-#define gs_m_m.xbm_width 32
-#define gs_m_m.xbm_height 32
-#define gs_m_m.xbm_x_hot 0
-#define gs_m_m.xbm_y_hot 0
-static unsigned char gs.m_m.bm_bits[] = {
- 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x78, 0x00,
- 0x00, 0xf8, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x00,
- 0xc0, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03,
- 0xe0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0x01,
- 0x80, 0xff, 0xff, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0x1f, 0x00,
- 0xc0, 0xff, 0x1f, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0x7f, 0x00,
- 0xf0, 0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
- 0xc0, 0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x1f, 0x00, 0xfe, 0xff, 0x1f,
- 0xf0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f,
- 0xf0, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x01,
- 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/gslib/gs_mex_e.ps b/Master/xemtex/gslib/gs_mex_e.ps
deleted file mode 100644
index 227329a1e2a..00000000000
--- a/Master/xemtex/gslib/gs_mex_e.ps
+++ /dev/null
@@ -1,67 +0,0 @@
-% Copyright (C) 1994, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_mex_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the MacExpert encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/MacExpertEncoding
-% \00x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-% \04x
- /space /exclamsmall /Hungarumlautsmall /centoldstyle /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall
- /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader /comma /hyphen /period /fraction
- /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle
- /eightoldstyle /nineoldstyle /colon /semicolon /.notdef /threequartersemdash /.notdef /questionsmall
-% \10x
- /.notdef /.notdef /.notdef /.notdef /Ethsmall /.notdef /.notdef /onequarter
- /onehalf /threequarters /oneeighth /threeeighths /fiveeighths /seveneighths /onethird /twothirds
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ff /fi
- /fl /ffi /ffl /parenleftinferior /.notdef /parenrightinferior /Circumflexsmall /hypheninferior
-% \14x
- /Gravesmall /Asmall /Bsmall /Csmall /Dsmall /Esmall /Fsmall /Gsmall
- /Hsmall /Ismall /Jsmall /Ksmall /Lsmall /Msmall /Nsmall /Osmall
- /Psmall /Qsmall /Rsmall /Ssmall /Tsmall /Usmall /Vsmall /Wsmall
- /Xsmall /Ysmall /Zsmall /colonmonetary /onefitted /rupiah /Tildesmall /.notdef
-% \20x
- /.notdef /asuperior /centsuperior /.notdef /.notdef /.notdef /.notdef /Aacutesmall
- /Agravesmall /Acircumflexsmall /Adieresissmall /Atildesmall /Aringsmall /Ccedillasmall /Eacutesmall /Egravesmall
- /Ecircumflexsmall /Edieresissmall /Iacutesmall /Igravesmall /Icircumflexsmall /Idieresissmall /Ntildesmall /Oacutesmall
- /Ogravesmall /Ocircumflexsmall /Odieresissmall /Otildesmall /Uacutesmall /Ugravesmall /Ucircumflexsmall /Udieresissmall
-% \24x
- /.notdef /eightsuperior /fourinferior /threeinferior /sixinferior /eightinferior /seveninferior /Scaronsmall
- /.notdef /centinferior /twoinferior /.notdef /Dieresissmall /.notdef /Caronsmall /osuperior
- /fiveinferior /.notdef /commainferior /periodinferior /Yacutesmall /.notdef /dollarinferior /.notdef
- /.notdef /Thornsmall /.notdef /nineinferior /zeroinferior /Zcaronsmall /AEsmall /Oslashsmall
-% \30x
- /questiondownsmall /oneinferior /Lslashsmall /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /Cedillasmall /.notdef /.notdef /.notdef /.notdef /.notdef /OEsmall
- /figuredash /hyphensuperior /.notdef /.notdef /.notdef /.notdef /exclamdownsmall /.notdef
- /Ydieresissmall /.notdef /onesuperior /twosuperior /threesuperior /foursuperior /fivesuperior /sixsuperior
-% \34x
- /sevensuperior /ninesuperior /zerosuperior /.notdef /esuperior /rsuperior /tsuperior /.notdef
- /.notdef /isuperior /ssuperior /dsuperior /.notdef /.notdef /.notdef /.notdef
- /.notdef /lsuperior /Ogoneksmall /Brevesmall /Macronsmall /bsuperior /nsuperior /msuperior
- /commasuperior /periodsuperior /Dotaccentsmall /Ringsmall /.notdef /.notdef /.notdef /.notdef
-256 packedarray
-6 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_mgl_e.ps b/Master/xemtex/gslib/gs_mgl_e.ps
deleted file mode 100644
index b3560b844ad..00000000000
--- a/Master/xemtex/gslib/gs_mgl_e.ps
+++ /dev/null
@@ -1,65 +0,0 @@
-% Copyright (C) 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_mgl_e.ps,v 1.3.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Macintosh standard glyph encoding vector.
-% This is not an Encoding strictly speaking, but we treat it like one.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/MacRomanEncoding .findencoding
-/MacGlyphEncoding
- /.notdef /.null /CR
-% 3
-4 index 32 95 getinterval aload pop
-% 98
-99 index 128 45 getinterval aload pop
-% 143
- /notequal /AE
- /Oslash /infinity /plusminus /lessequal /greaterequal
- /yen /mu1 /partialdiff /summation /product
- /pi /integral /ordfeminine /ordmasculine /Ohm
- /ae /oslash /questiondown /exclamdown /logicalnot
- /radical /florin /approxequal /increment /guillemotleft
- /guillemotright /ellipsis /nbspace
-% 173
-174 index 203 12 getinterval aload pop
- /lozenge
-% 186
-187 index 216 24 getinterval aload pop
- /applelogo
-% 211
-212 index 241 7 getinterval aload pop
- /overscore
-% 219
-220 index 249 7 getinterval aload pop
-% 226
- /Lslash /lslash /Scaron /scaron
- /Zcaron /zcaron /brokenbar /Eth /eth
- /Yacute /yacute /Thorn /thorn /minus
- /multiply /onesuperior /twosuperior /threesuperior /onehalf
- /onequarter /threequarters /franc /Gbreve /gbreve
- % The TrueType documentation says the next glyph is named
- % Idot, but the Adobe standard name for this glyph is
- % Idotaccent.
- /Idotaccent /Scedilla /scedilla /Cacute /cacute
- /Ccaron /ccaron /dmacron
-260 -1 roll pop % delete MacRomanEncoding
-258 packedarray
-7 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_mro_e.ps b/Master/xemtex/gslib/gs_mro_e.ps
deleted file mode 100644
index b9a06a45517..00000000000
--- a/Master/xemtex/gslib/gs_mro_e.ps
+++ /dev/null
@@ -1,62 +0,0 @@
-% Copyright (C) 1994, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_mro_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the MacRoman encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/MacRomanEncoding
-StandardEncoding 0 39 getinterval aload pop
- /quotesingle
-StandardEncoding 40 56 getinterval aload pop
- /grave
-StandardEncoding 97 31 getinterval aload pop
-% \20x
- /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute
- /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave
- /ecircumflex /edieresis /iacute /igrave
- /icircumflex /idieresis /ntilde /oacute
- /ograve /ocircumflex /odieresis /otilde
- /uacute /ugrave /ucircumflex /udieresis
-% \24x
- /dagger /degree /cent /sterling /section /bullet /paragraph /germandbls
- /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash
- /.notdef /plusminus /.notdef /.notdef /yen /mu /.notdef /.notdef
- /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash
-% \30x
- /questiondown /exclamdown /logicalnot /.notdef
- /florin /.notdef /.notdef /guillemotleft
- /guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe
- /endash /emdash /quotedblleft /quotedblright
- /quoteleft /quoteright /divide /.notdef
- % NOTE: Euro should replace currency, but the PDF 1.3 documentation
- % explicitly says it does not.
- /ydieresis /Ydieresis /fraction /currency
- /guilsinglleft /guilsinglright /fi /fl
-% \34x
- /daggerdbl /periodcentered /quotesinglbase /quotedblbase
- /perthousand /Acircumflex /Ecircumflex /Aacute
- /Edieresis /Egrave /Iacute /Icircumflex
- /Idieresis /Igrave /Oacute /Ocircumflex
- /.notdef /Ograve /Uacute /Ucircumflex
- /Ugrave /dotlessi /circumflex /tilde
- /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
-256 packedarray
-5 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_pdf_e.ps b/Master/xemtex/gslib/gs_pdf_e.ps
deleted file mode 100644
index dc36d89c72d..00000000000
--- a/Master/xemtex/gslib/gs_pdf_e.ps
+++ /dev/null
@@ -1,45 +0,0 @@
-% Copyright (C) 1994, 1997, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_pdf_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the PDFDoc encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/PDFDocEncoding
-ISOLatin1Encoding 0 24 getinterval aload pop
- /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde
-ISOLatin1Encoding 32 7 getinterval aload pop
- /quotesingle
-ISOLatin1Encoding 40 5 getinterval aload pop
- /hyphen
-ISOLatin1Encoding 46 50 getinterval aload pop
- /grave
-ISOLatin1Encoding 97 31 getinterval aload pop
-% \20x
- /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction
- /guilsinglleft /guilsinglright /minus /perthousand
- /quotedblbase /quotedblleft /quotedblright /quoteleft
- /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron
- /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron /.notdef
-% \24x
- /Euro
-ISOLatin1Encoding 161 12 getinterval aload pop
- /.notdef
-ISOLatin1Encoding 174 82 getinterval aload pop
-256 packedarray .defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_pdfwr.ps b/Master/xemtex/gslib/gs_pdfwr.ps
deleted file mode 100644
index 7d960cdd135..00000000000
--- a/Master/xemtex/gslib/gs_pdfwr.ps
+++ /dev/null
@@ -1,495 +0,0 @@
-% Copyright (C) 1996, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_pdfwr.ps,v 1.11.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% PDF writer additions to systemdict.
-
-% This file should be included iff the pdfwrite "device" is included
-% in the executable.
-
-% ---------------- Predefined configurations ---------------- %
-
-% These correspond to the 3 predefined settings in Acrobat Distiller 4,
-% plus a "default" setting.
-
-% Parameters common to all configurations.
-% Note that we don't set AlwaysEmbed or NeverEmbed, since the default values
-% depend on the CompatibilityLevel and are initialized internally.
-/.defaultImageDict mark
- /QFactor 0.9 /Blend 1
- /HSamples [2 1 1 2] /VSamples [2 1 1 2]
-.dicttomark readonly def
-/.distillercommon mark
- /ASCII85EncodePages false
- /AntiAliasColorImages false
- /AntiAliasGrayImages false
- /AntiAliasMonoImages false
- /AutoFilterColorImages true
- /AutoFilterGrayImages true
- /AutoFilterMonoImages true
- /AutoPositionEPSFiles true
- /Binding /Left
- % What to do about the CalxxxProfiles?
- /ColorACSImageDict .defaultImageDict
- /ColorImageDepth -1
- /ColorImageDict .defaultImageDict
- /ColorImageDownsampleThreshold 1.5
- /ColorImageFilter /DCTEncode
- /CompressPages true
- /ConvertImagesToIndexed true
- /DefaultRenderingIntent /Default
- /DetectBlends true
- /DownsampleColorImages true
- /DownsampleGrayImages true
- /DownsampleMonoImages true
- /EmitDSCWarnings false
- /EncodeColorImages true
- /EncodeGrayImages true
- /EncodeMonoImages true
- /EndPage -1
- /GrayACSImageDict .defaultImageDict
- /GrayImageDepth -1
- /GrayImageDict .defaultImageDict
- /GrayImageDownsampleThreshold 1.5
- /GrayImageFilter /DCTEncode
- /ImageMemory 500000
- /LockDistillerParams false
- /MaxSubsetPct 100
- /MonoImageDepth -1
- /MonoImageDict mark
- /K -1
- .dicttomark readonly
- /MonoImageDownsampleThreshold 1.5
- /MonoImageFilter /CCITTFaxEncode
- /OPM 1
- /Optimize true
- /ParseDSCComments true
- /ParseDSCCommentsForDocInfo true
- /PreserveCopyPage true
- /PreserveEPSInfo true
- /PreserveHalftoneInfo false
- /StartPage 1
- /SubsetFonts true
- /TransferFunctionInfo /Preserve
- /UseFlateCompression true
- /UsePrologue false
-.dicttomark readonly def
-
-/.distillersettings mark
-
-/default mark
- /AutoRotatePages /PageByPage
- /CannotEmbedFontPolicy /Warning
- /DownsampleColorImages false
- /DownsampleGrayImages false
- /DownsampleMonoImages false
- /Optimize false
-.dicttomark readonly
-
-/screen mark
- /AutoRotatePages /PageByPage
- /CannotEmbedFontPolicy /Warning
- /ColorConversionStrategy /sRGB
- /ColorImageDownsampleType /Average
- /ColorImageResolution 72
- /CompatibilityLevel 1.2
- /CreateJobTicket false
- /DoThumbnails false
- /DownsampleColorImages true
- /DownsampleGrayImages true
- /DownsampleMonoImages true
- /EmbedAllFonts false
- /GrayImageDownsampleType /Average
- /GrayImageResolution 72
- /MonoImageDownsampleType /Average
- /MonoImageResolution 300
- /ParseDSCCommentsForDocInfo false
- /PreserveOPIComments false
- /PreserveOverprintSettings false
- /UCRandBGInfo /Remove
-.dicttomark readonly
-
-/.printerACSImageDict mark
- /QFactor 0.55 /Blend 1
- /HSamples [2 1 1 2] /VSamples [2 1 1 2]
-.dicttomark readonly def
-/printer mark
- /AutoRotatePages /None
- /CannotEmbedFontPolicy /Warning
- /ColorACSImageDict .printerACSImageDict
- /ColorConversionStrategy /UseDeviceIndependentColor
- /ColorImageDownsampleType /Bicubic
- /ColorImageResolution 300
- /CompatibilityLevel 1.3
- /CreateJobTicket true
- /DoThumbnails false
- /EmbedAllFonts true
- /GrayACSImageDict .printerACSImageDict
- /GrayImageDownsampleType /Bicubic
- /GrayImageResolution 300
- /MonoImageDownsampleType /Bicubic
- /MonoImageResolution 1200
- /ParseDSCCommentsForDocInfo true
- /PreserveOPIComments true
- /PreserveOverprintSettings true
- /UCRandBGInfo /Preserve
-.dicttomark readonly
-
-/.prepressACSImageDict mark
- /QFactor 0.25
- /HSamples [1 1 1 1] /VSamples [1 1 1 1]
-.dicttomark readonly def
-/prepress mark
- /AutoRotatePages /None
- /CannotEmbedFontPolicy /Error
- /ColorACSImageDict .prepressACSImageDict
- /ColorConversionStrategy /LeaveColorUnchanged
- /ColorImageDownsampleType /Bicubic
- /ColorImageResolution 300
- /CompatibilityLevel 1.3
- /CreateJobTicket true
- /DoThumbnails true
- /EmbedAllFonts true
- /GrayACSImageDict .prepressACSImageDict
- /GrayImageDownsampleType /Bicubic
- /GrayImageResolution 300
- /MonoImageDownsampleType /Bicubic
- /MonoImageResolution 1200
- /ParseDSCCommentsForDocInfo true
- /PreserveOPIComments true
- /PreserveOverprintSettings true
- /UCRandBGInfo /Preserve
-.dicttomark readonly
-
-.dicttomark readonly def
-
-% ---------------- End of predefined configurations ---------------- %
-
-% Set optimizations for converting PostScript to PDF.
-% The ps2pdf* scripts invoke this.
-/.setpdfwrite { % - .setpdfwrite -
- % Set a large VM threshold to reduce garbage collection.
- currentuserparams /VMThreshold get 3000000 .max setvmthreshold
- % Install a level of 'save' to reduce font loading.
- save pop
-} bind def
-
-% ---------------- pdfmark and DSC processing ---------------- %
-
-% Encode values to pass for the /pdfmark or /DSC pseudo-parameter.
-/.pdf===dict mark
- /arraytype
- { dup xcheck { ({) (}) } { ([) (]) } ifelse
- % Stack: file obj left right
- 4 1 roll 2 index exch writestring () exch
- { exch 2 index exch writestring
- 1 index exch pdf===only ( )
- }
- forall pop exch writestring
- } bind
- /packedarraytype 1 index
- /dicttype
- { 1 index (<<\n) writestring
- { 2 index 3 -1 roll pdf===only 1 index ( ) writestring
- 1 index exch pdf===only dup (\n) writestring
- }
- forall (>>) writestring
- } bind
-.dicttomark readonly def
-/pdf===only { % <file> <obj> pdf===only -
- .pdf===dict 1 index type .knownget { exec } { write===only } ifelse
-} bind def
-/.pdfcvbuf 10 string def % enough for most arguments
-userdict /.pdfcvstring () put
-/.pdfcvs { % <obj> .pdfcvs <string>
- currentglobal exch false .setglobal
- /.pdfcvstring () store
- % We can't handle long values yet.
- { pop dup length 0 eq { pop } {
- /.pdfcvstring .pdfcvstring 3 -1 roll concatstrings store
- } ifelse //.pdfcvbuf
- } /NullEncode filter dup 3 -1 roll pdf===only
- closefile
- .setglobal .pdfcvstring
-} bind def
-
-% Redefine pdfmark to pass the data to the driver.
-% We use a pseudo-parameter named /pdfmark whose value is an array:
-% /key1 (value1) ... (CTM) /type
-/.pdfputparams { % -mark- <key1> <value1> ... .pdfputparams <result...>
- currentdevice null false counttomark 1 add 3 roll
- % Don't allow the page device to get cleared....
- {.putdeviceparams} .currentpagedevice pop {.setpagedevice} 3 .execn
-} bind def
-% Convert relevant operands to strings in an array.
-/.pdfcvsloop { % -mark- values ... markname start step .pdfcvsloop
- % [values ... ctm markname]
- matrix currentmatrix .pdfcvs 4 1 roll
- counttomark 1 add 2 roll
- counttomark .localvmarray astore exch pop
- 3 1 roll
- % Stack: values start step
- 2 index length 3 sub { 2 copy 2 copy get .pdfcvs put pop } for
-} bind def
-/.pdfcvsall { % -mark- values ... markname .pdfcvsall <<same>>
- 0 1 .pdfcvsloop
-} bind def
-/.pdfcvseven { % -mark- key value ... markname .pdfcvseven <<same>>
- 1 2 .pdfcvsloop
-} bind def
-/.pdfcvsnone { % -mark- values ... markname .pdfcvsnone <<same>>
- 100000 1 .pdfcvsloop
-} bind def
-/.pdfcvsfirst { % -mark- first values ... markname .pdfcvsfirst<<same>>
- .pdfcvsnone
- dup 0 2 copy get .pdfcvs put
-} bind def
-% The procedures in the following dictionary are called with the entire
-% pdfmark operand list (including the pdfmark name) on the stack;
-% they may modify this ad lib. They must call .pdfcvsxxx.
-/.pdfmarkparams mark
- % Unpack a dictionary for PUT, and don't convert stream data.
- /PUT {
- counttomark 3 eq {
- 1 index type /dicttype eq {
- pop { } forall /.PUTDICT .pdfcvsall
- } {
- pop dup type /filetype eq {
- % Read the file into a sequence of strings.
- % This isn't great, but it's simple.
- {
- dup 1000 string readstring not { exch exit } if
- exch
- } loop closefile
- } if
- /.PUTSTREAM .pdfcvsfirst
- } ifelse
- } {
- .pdfcvsall
- } ifelse
- } bind
- % Unpack the array for PUTINTERVAL.
- /PUTINTERVAL {
- pop aload pop /.PUTINTERVAL .pdfcvsall
- } bind
-.dicttomark readonly def
-/.pdfparamerror { % ? ? ? -mark- ... <errname> <opname> .pdfparamerror -
- counttomark 4 add 2 roll cleartomark pop pop pop
- .systemvar exch signalerror
-} bind def
-/pdfmark { % -mark- <key> <value> ... <markname> pdfmark -
- counttomark 1 add copy
- //.pdfmarkparams 1 index .knownget { exec } { .pdfcvsall } ifelse
- mark /pdfmark 3 -1 roll .pdfputparams
- dup type /booleantype ne {
- /pdfmark .pdfparamerror
- } if cleartomark
-} odef
-userdict /pdfmark .undef
-currentdict /.pdfmarkparams .undef
-
-% Use the DSC processing hook to pass DSC comments to the driver.
-% We use a pseudo-parameter named DSC whose value is an array:
-% /key1 (value1) ... /type
-/.pdfdsc_dict 2 dict def
-/.pdfdsc { % <file> <DSC string> <dsc dict> [<prev proc>] .pdfdsc -
- 0 get dup null ne { 4 copy exch pop exec } { pop } ifelse 3 -1 roll pop
- % Stack: <dsc string> <dsc dict>
- 20 .localvmdict 1 index { 3 copy put pop pop } forall
- 3 -1 roll .parse_dsc_comments % <dsc dict> <dict> <type>
- dup /NOP ne 2 index length 1 gt or { % Skip unparsed comments
- DEBUG { (**** DSC comment: ) print dup == 1 index === flush } if
- exch mark 4 1 roll {
- % mark <key1> <value1> ... <dsc dict> <type> <key> <value>
- 3 index 2 index known { % Skip the DSC_struct entry
- pop pop
- } {
- .pdfcvs 4 -2 roll
- } ifelse
- } forall exch pop counttomark .localvmarray astore
- mark /DSC 3 -1 roll .pdfputparams
- dup type /booleantype ne {
- /DSC .pdfparamerror
- } {
- cleartomark
- } ifelse
- } {
- pop pop pop
- } ifelse
-} bind def
-/.initialize_dsc_parser where {
- pop 2 dict dup .initialize_dsc_parser readonly
- currentuserparams /ProcessDSCComment get
- 1 array astore % in case the value is executable
- //.pdfdsc /exec load 4 array astore cvx readonly
- << /ProcessDSCComment 3 -1 roll >> setuserparams
-} if
-
-% ---------------- {set,current}distillerparams ---------------- %
-
-% Define setdistillerparams / currentdistillerparams.
-% Distiller parameters are currently treated as device parameters.
-/.distillerparamkeys mark
- % General parameters -- all distillers
- /ASCII85EncodePages { }
- /AutoRotatePages { }
- /Binding { }
- /CompressPages { }
- /DefaultRenderingIntent { }
- /DetectBlends { }
- /DoThumbnails { }
- /ImageMemory { }
- /LockDistillerParams { }
- /LZWEncodePages { }
- /OPM { }
- /PreserveHalftoneInfo { }
- /PreserveOPIComments { }
- /PreserveOverprintSettings { }
- /TransferFunctionInfo { }
- /UCRandBGInfo { }
- /UseFlateCompression { }
- % General parameters -- PDF writer
- % StartPage and EndPage are renamed because EndPage
- % clashes with a page device parameter.
- /CoreDistVersion { }
- /CompatibilityLevel { }
- % ****** NOTE: StartPage and EndPage are disabled because
- % ****** EndPage clashes with a page device parameter.
-% /EndPage { exch pop /PDFEndPage exch }
- /PDFEndPage { pop pop }
-% /StartPage { exch pop /PDFStartPage exch }
- /PDFStartPage { pop pop }
- /Optimize { }
- /ParseDSCCommentsForDocInfo { }
- /ParseDSCComments { }
- /EmitDSCWarnings { }
- /CreateJobTicket { }
- /PreserveEPSInfo { }
- /AutoPositionEPSFiles { }
- /PreserveCopyPage { }
- /UsePrologue { }
- % Color sampled image parameters
- /ColorACSImageDict { }
- /AntiAliasColorImages { }
- /AutoFilterColorImages { }
- /ColorImageDepth { }
- /ColorImageDict { }
- /DownsampleColorImages { }
- /ColorImageDownsampleThreshold { }
- /ColorImageDownsampleType { }
- /EncodeColorImages { }
- /ColorImageFilter { }
- /ColorImageResolution { }
- % Color processing parameters
- /CalCMYKProfile { }
- /CalGrayProfile { }
- /CalRGBProfile { }
- /sRGBProfile { }
- /ColorConversionStrategy { }
- /ConvertCMYKImagesToRGB { }
- /ConvertImagesToIndexed { }
- % Grayscale sampled image parameters
- /GrayACSImageDict { }
- /AntiAliasGrayImages { }
- /AutoFilterGrayImages { }
- /GrayImageDepth { }
- /GrayImageDict { }
- /DownsampleGrayImages { }
- /GrayImageDownsampleThreshold { }
- /GrayImageDownsampleType { }
- /EncodeGrayImages { }
- /GrayImageFilter { }
- /GrayImageResolution { }
- % Monochrome sampled image parameters
- /AntiAliasMonoImages { }
- /MonoImageDepth { }
- /MonoImageDict { }
- /DownsampleMonoImages { }
- /MonoImageDownsampleThreshold { }
- /MonoImageDownsampleType { }
- /EncodeMonoImages { }
- /MonoImageFilter { }
- /MonoImageResolution { }
- % Font embedding parameters
- /AlwaysEmbed
- { dup length 0 gt
- { dup 0 get false eq
- { dup length 1 sub 1 exch getinterval exch pop /~AlwaysEmbed exch
- } if
- } if
- }
- /NeverEmbed
- { dup length 0 gt
- { dup 0 get false eq
- { dup length 1 sub 1 exch getinterval exch pop /~NeverEmbed exch
- } if
- } if
- }
- /CannotEmbedFontPolicy { }
- /EmbedAllFonts { }
- /MaxSubsetPct { }
- /SubsetFonts { }
-.dicttomark readonly def
-/.distillerdevice
- { currentdevice .devicename /pdfwrite eq
- { currentdevice }
- { /pdfwrite finddevice }
- ifelse
- } bind def
-/setdistillerparams { % <dict> setdistillerparams -
- .distillerdevice null false mark 4 index {
- //.distillerparamkeys 2 index .knownget { exec } { pop pop } ifelse
- } forall .putdeviceparams
- dup type /booleantype ne {
- /setdistillerparams .pdfparamerror
- } {
- pop pop pop
- } ifelse
-} odef
-/currentdistillerparams { % - currentdistillerparams <dict>
- .distillerdevice //.distillerparamkeys .getdeviceparams .dicttomark
- % Patch StartPage and EndPage
- % ****** NOTE: StartPage and EndPage are disabled because
- % ****** EndPage clashes with a page device parameter.
-% begin /StartPage PDFStartPage /EndPage PDFEndPage
-% currentdict dup /PDFStartPage undef /PDFEndPage undef
-% def def currentdict end
-} odef
-
-% Patch 'where' so that the distillerparams operators are only visible
-% if the pdfwrite device is the current one, for the benefit of badly
-% designed PostScript files that "know" they have to do something different
-% if a distiller is processing them.
-.wheredict /currentdistillerparams {
- currentdevice .devicename /pdfwrite eq {
- .where
- } {
- .where pop dup //systemdict eq { pop false } { true } ifelse
- } ifelse
-} bind put
-.wheredict /setdistillerparams .wheredict /currentdistillerparams get put
-
-% Set a predefined configuration if PDFSETTINGS is defined.
-/PDFSETTINGS where { pop /PDFSETTINGS load } { /default } ifelse
-.distillersettings exch get
-% Don't override parameters defined on the command line.
-dup length .distillercommon length add dict begin
-.distillercommon 2 {
- {
- systemdict 2 index known { pop pop } { def } ifelse
- } forall
-} repeat
-currentdict end setdistillerparams
diff --git a/Master/xemtex/gslib/gs_pfile.ps b/Master/xemtex/gslib/gs_pfile.ps
deleted file mode 100644
index 34a8e48b0ce..00000000000
--- a/Master/xemtex/gslib/gs_pfile.ps
+++ /dev/null
@@ -1,128 +0,0 @@
-% Copyright (C) 1994, 1995 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_pfile.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Runtime support for minimum-space fonts and packed files.
-
-% ****** NOTE: This file must be kept consistent with
-% ****** packfile.ps and wrfont.ps.
-
-% ---------------- Packed file support ---------------- %
-
-% A packed file is the concatenation of several file groups, each of which
-% is the result of compressing several files concatenated together.
-% The packed file begins with a procedure that creates an appropriate
-% decoding filter for each file group, as follows:
-% <group-subfile-filter> -proc- <group-decode-filter>
-% Thus, accessing an individual file requires 4 parameters:
-% the starting address and length of the outer compressed file,
-% and the starting address and length of the inner file.
-/.packedfilefilter % <file> <ostart> <olength> <istart> <ilength>
- % .packedfilefilter <filter>
- { 4 index systemdict begin token pop end 6 1 roll
- % Stack: fproc file ostart olength istart ilength
- 4 index 5 -1 roll setfileposition
- % Stack: fproc file olength istart ilength
- 4 -2 roll () /SubFileDecode filter
- % Stack: fproc istart ilength ofilter
- 4 -1 roll exec
- % Filters don't support setfileposition, so we must skip data
- % by reading it into a buffer. We rely on the fact that
- % save/restore don't affect file positions.
- % Stack: istart ilength dfilter
- save exch 1000 string
- % Stack: istart ilength save dfilter scratch
- 4 index 1 index length idiv { 2 copy readstring pop pop } repeat
- 2 copy 0 8 -1 roll 2 index length mod getinterval readstring pop pop pop
- % Stack: ilength save dfilter
- exch restore exch () /SubFileDecode filter
- } bind def
-
-% Run a packed library file.
-/.runpackedlibfile % <filename> <ostart> <olength> <istart> <ilength>
- % .runpackedlibfile
- { 5 -1 roll findlibfile
- { exch pop dup 6 2 roll .packedfilefilter
- currentobjectformat exch 1 setobjectformat run
- setobjectformat closefile
- }
- { 5 1 roll /findlibfile load /undefinedfilename signalerror
- }
- ifelse
- } bind def
-
-% ---------------- Compacted font support ---------------- %
-
-% Compacted fonts written by wrfont.ps depend on the existence and
-% specifications of the procedures and data in this section.
-
-/.compactfontdefault mark
- /PaintType 0
- /FontMatrix [0.001 0 0 0.001 0 0] readonly
- /FontType 1
- /Encoding StandardEncoding
-.dicttomark readonly def
-
-/.checkexistingfont % <fontname> <uid> <privatesize> <fontsize>
- % .checkexistingfont
- % {} (<font> on d-stack)
- % <fontname> <uid> <privatesize> <fontsize>
- % .checkexistingfont
- % -save- --restore-- (<font> on d-stack)
- { FontDirectory 4 index .knownget
- { dup /UniqueID .knownget
- { 4 index eq exch /FontType get 1 eq and }
- { pop false }
- ifelse
- }
- { false
- }
- ifelse
- { save /restore load 6 2 roll }
- { {} 5 1 roll }
- ifelse
- dict //.compactfontdefault exch .copydict begin
- dict /Private exch def
- Private begin
- /MinFeature {16 16} def
- /Password 5839 def
- /UniqueID 1 index def
- end
- /UniqueID exch def
- /FontName exch def
- } bind def
-
-/.knownEncodings [
- ISOLatin1Encoding
- StandardEncoding
- SymbolEncoding
-] readonly def
-
-/.readCharStrings % <count> <encrypt> .readCharStrings <dict>
- { exch dup dict dup 3 -1 roll
- { currentfile token pop dup type /integertype eq
- { dup -8 bitshift //.knownEncodings exch get exch 255 and get } if
- currentfile token pop dup type /nametype eq
- { 2 index exch get
- }
- { % Stack: encrypt dict dict key value
- 4 index { 4330 exch dup .type1encrypt exch pop } if
- readonly
- }
- ifelse put dup
- }
- repeat pop exch pop
- } bind def
diff --git a/Master/xemtex/gslib/gs_rdlin.ps b/Master/xemtex/gslib/gs_rdlin.ps
deleted file mode 100644
index 026e3edf6c4..00000000000
--- a/Master/xemtex/gslib/gs_rdlin.ps
+++ /dev/null
@@ -1,21 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_rdlin.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Patch for systems with readline support in the interpreter.
-
-% Disable the prompt message, since readline will generate it.
-/.promptmsg { } def
diff --git a/Master/xemtex/gslib/gs_res.ps b/Master/xemtex/gslib/gs_res.ps
deleted file mode 100644
index 67099d29102..00000000000
--- a/Master/xemtex/gslib/gs_res.ps
+++ /dev/null
@@ -1,928 +0,0 @@
-% Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_res.ps,v 1.16.2.2.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for Level 2 resource machinery.
-% When this is run, systemdict is still writable,
-% but (almost) everything defined here goes into level2dict.
-
-level2dict begin
-
-(BEGIN RESOURCES) VMDEBUG
-
-% We keep track of (global) instances with another entry in the resource
-% dictionary, an .Instances dictionary. For categories with implicit
-% instances, the values in .Instances are the same as the keys;
-% for other categories, the values are [instance status size].
-
-% Note that the dictionary that defines a resource category is stored
-% in global VM. The PostScript manual says that each category must
-% manage global and local instances separately. However, objects in
-% global VM other than systemdict can't reference objects in local VM.
-% This means that the resource category dictionary, which would otherwise be
-% the obvious place to keep track of the instances, can't be used to keep
-% track of local instances. Instead, we define a dictionary in local VM
-% called localinstancedict, in which the key is the category name and
-% the value is the analogue of .Instances for local instances.
-
-% We don't currently implement automatic resource unloading.
-% When and if we do, it should be hooked to the garbage collector.
-% However, Ed Taft of Adobe says their interpreters don't implement this
-% either, so we aren't going to worry about it for a while.
-
-currentglobal false setglobal systemdict begin
- /localinstancedict 5 dict
- .forcedef % localinstancedict is local, systemdict is global
-end true setglobal
-/.emptydict 0 dict readonly def
-setglobal
-
-% Resource category dictionaries have the following keys (those marked with
-% * are optional):
-% Standard, defined in the Red Book:
-% Category (name)
-% *InstanceType (name)
-% DefineResource
-% <key> <instance> DefineResource <instance>
-% UndefineResource
-% <key> UndefineResource -
-% FindResource
-% <key> FindResource <instance>
-% ResourceStatus
-% <key> ResourceStatus <status> <size> true
-% <key> ResourceStatus false
-% ResourceForAll
-% <template> <proc> <scratch> ResourceForAll -
-% *ResourceFileName
-% <key> <scratch> ResourceFileName <filename>
-% Additional, specific to our implementation:
-% .Instances (dictionary)
-% .LocalInstances
-% - .LocalInstances <dict>
-% .GetInstance
-% <key> .GetInstance <instance> -true-
-% <key> .GetInstance -false-
-% .CheckResource
-% <key> <value> .CheckResource <key> <value> <ok>
-% (or may give an error if not OK)
-% .DoLoadResource
-% <key> .DoLoadResource <key> (may give an error)
-% .LoadResource
-% <key> .LoadResource - (may give an error)
-% .ResourceFile
-% <key> .ResourceFile <file> -true-
-% <key> .ResourceFile <key> -false-
-% .ResourceFileStatus
-% <key> .ResourceFileStatus 2 <vmusage> -true-
-% <key> .ResourceFileStatus -false-
-% All the above procedures expect that the top dictionary on the d-stack
-% is the resource dictionary.
-
-% Define enough of the Category category so we can define other categories.
-% The dictionary we're about to create will become the Category
-% category definition dictionary.
-
-% .findcategory and .resourceexec are only called from within the
-% implementation of the resource 'operators', so they doesn't have to worry
-% about cleaning up the stack if they fail (the interpreter's stack
-% protection machinery for pseudo-operators takes care of this).
-/.findcategory { % <name> .findcategory -
- % (pushes the category on the dstack)
- /Category findresource begin
-} bind def
-
-/.resourceexec { % <key> /xxxResource .resourceexec -
- % (also pops the category from the dstack)
- load exec end
-} bind def
-
-% .getvminstance treats instances on disk as undefined.
-/.getvminstance { % <key> .getvminstance <instance> -true-
- % <key> .getvminstance -false-
- .GetInstance {
- dup 1 get 2 ne { true } { pop false } ifelse
- } {
- false
- } ifelse
-} bind def
-
-20 dict begin
-
- % Standard entries
-
-/Category /Category def
-/InstanceType /dicttype def
-
-/DefineResource {
- .CheckResource {
- dup /Category 3 index cvlit .growput
- dup [ exch 0 -1 ] exch
- .Instances 4 2 roll put
- % Make the Category dictionary read-only. We will have to
- % use .forceput / .forcedef later to replace the dummy,
- % empty .Instances dictionary with the real one later.
- readonly
- } {
- /defineresource load /typecheck signalerror
- } ifelse
-} bind def
-/FindResource % (redefined below)
- { .Instances exch get 0 get
- } bind def
-
- % Additional entries
-
-/.Instances 30 dict def
-.Instances /Category [currentdict 0 -1] put
-
-/.LocalInstances 0 dict def
-/.GetInstance
- { .Instances exch .knownget
- } bind def
-/.CheckResource
- { dup gcheck currentglobal and
- { /DefineResource /FindResource /ResourceForAll /ResourceStatus
- /UndefineResource }
- { 2 index exch known and }
- forall
- not { /defineresource load /invalidaccess signalerror } if
- true
- } bind def
-
-.Instances end begin % for the base case of findresource
-
-(END CATEGORY) VMDEBUG
-
-% Define the resource operators. We use the "stack protection" feature of
-% odef to make sure the stacks are restored properly on an error.
-% This requires that the operators not pop anything from the stack until
-% they have executed their logic successfully. We can't make this
-% work for resourceforall, because the procedure it executes mustn't see
-% the operands of resourceforall on the stack, but we can make it work for
-% the others.
-
-% findresource is the only operator that needs to bind //Category.
-/findresource { % <key> <category> findresource <instance>
- 2 copy dup /Category eq
- { pop //Category 0 get begin } { .findcategory } ifelse
- /FindResource .resourceexec exch pop exch pop
-} bind
-end % .Instances of Category
-odef
-
-/defineresource { % <key> <instance> <category> defineresource <instance>
- 3 copy .findcategory
- currentdict /InstanceType known {
- dup type InstanceType ne {
- dup type /packedarraytype eq InstanceType /arraytype eq and
- not { /defineresource load /typecheck signalerror } if
- } if
- } if
- /DefineResource .resourceexec
- 4 1 roll pop pop pop
-} bind odef
-% We must prevent resourceforall from automatically restoring the stacks,
-% because we don't want the stacks restored if proc causes an error.
-% On the other hand, resourceforall is defined in the PLRM as an operator,
-% so it must have type /operatortype. We hack this by taking advantage of
-% the fact that the interpreter optimizes tail calls, so stack protection
-% doesn't apply to the very last token of an operator procedure.
-/resourceforall1 { % <template> <proc> <scratch> <category> resourceforall1 -
- dup /Category findresource begin
- /ResourceForAll load
- % Make sure we can recover the original operands.
- % We must create the array in local VM, in case any of the
- % operands are local.
- % Stack: ...operands... proc
- 5 copy pop .currentglobal false .setglobal 5 1 roll
- 4 packedarray exch .setglobal count
- % Stack: ...operands... proc saved count
- 4 -1 roll pop % pop the category
- /stopped load 3 1 roll
- 3 .execn
- % Stack: ... stopped saved count
- 3 -1 roll {
- .currentstackprotect {
- % The count is the original stack depth + 2.
- count exch 4 sub sub { exch pop } repeat
- aload pop end
- } {
- % Don't restore the stacks.
- pop pop
- } ifelse stop
- } {
- pop pop end
- } ifelse
-} bind def
-/resourceforall { % <template> <proc> <scratch> <category> resourceforall1 -
- //resourceforall1 exec % see above
-} bind odef
-/resourcestatus { % <key> <category> resourcestatus <status> <size> true
- % <key> <category> resourcestatus false
- 2 copy .findcategory /ResourceStatus .resourceexec
- { 4 2 roll pop pop true } { pop pop false } ifelse
-} bind odef
-/undefineresource { % <key> <category> undefineresource -
- 2 copy .findcategory /UndefineResource .resourceexec pop pop
-} bind odef
-
-% Define the system parameters used for the Generic implementation of
-% ResourceFileName.
-systemdict begin
-currentdict /pssystemparams known not {
- /pssystemparams 10 dict readonly def
-} if
-pssystemparams begin
- /FontResourceDir (/Resource/Font/) readonly .forcedef % pssys'params is r-o
- /GenericResourceDir (/Resource/) readonly .forcedef % pssys'params is r-o
- /GenericResourcePathSep (/) readonly .forcedef % pssys'params is r-o
-end
-end
-
-% Define the generic algorithm for computing resource file names.
-/.rfnstring 100 string def
-/.genericrfn % <key> <scratch> <prefix> .genericrfn <filename>
- { 3 -1 roll //.rfnstring cvs concatstrings exch copy
- } bind def
-
-% Define a procedure for making a packed array in local VM.
-/.localpackedarray { % <obj1> ... <objn> <n> .localpackedarray <packedarray>
- .currentglobal false .setglobal 1 index 2 add 1 roll
- packedarray exch .setglobal
-} bind def
-
-% Define the Generic category.
-
-/Generic mark
-
- % Standard entries
-
-% We're still running in Level 1 mode, so dictionaries won't expand.
-% Leave room for the /Category entry.
-/Category null
-
-% Implement the body of Generic resourceforall for local, global, and
-% external cases. 'args' is [template proc scratch resdict].
-/.enumerateresource { % <key> [- <proc> <scratch>] .enumerateresource -
- 1 index type dup /stringtype eq exch /nametype eq or {
- exch 1 index 2 get cvs exch
- } if
- % Use .setstackprotect to prevent the stacks from being restored if
- % an error occurs during execution of proc.
- 1 get false .setstackprotect exec true .setstackprotect
-} bind def
-/.localresourceforall { % <key> <value> <args> .localr'forall -
- exch pop
- 2 copy 0 get .stringmatch { .enumerateresource } { pop pop } ifelse
-} bind def
-/.globalresourceforall { % <key> <value> <args> .globalr'forall -
- exch pop
- 2 copy 0 get .stringmatch {
- dup 3 get begin .LocalInstances end 2 index known not {
- .enumerateresource
- } if
- } {
- pop pop
- } ifelse
-} bind def
-/.externalresourceforall { % <filename> <len> <args> .externalr'forall -
- 3 1 roll 1 index length 1 index sub getinterval exch
- dup 3 get begin .Instances .LocalInstances end
- % Stack: key args insts localinsts
- 3 index known {
- pop pop pop
- } {
- 2 index known { pop pop } { .enumerateresource } ifelse
- } ifelse
-} bind def
-
-/DefineResource {
- .CheckResource
- { dup [ exch 0 -1 ]
- % Stack: key value instance
- currentglobal
- { false setglobal 2 index UndefineResource % remove local def if any
- true setglobal
- .Instances dup //.emptydict eq {
- pop 3 dict
- % As noted above, Category dictionaries are read-only,
- % so we have to use .forcedef here.
- /.Instances 1 index .forcedef % Category dict is read-only
- } if
- }
- { .LocalInstances dup //.emptydict eq
- { pop 3 dict localinstancedict Category 2 index put
- }
- if
- }
- ifelse
- % Stack: key value instance instancedict
- 3 index 2 index .growput
- % Now make the resource value read-only.
- 0 2 copy get { readonly } .internalstopped pop
- dup 4 1 roll put exch pop exch pop
- }
- { /defineresource load /typecheck signalerror
- }
- ifelse
-} .bind executeonly % executeonly to prevent access to .forcedef
-/UndefineResource
- { { dup 2 index .knownget
- { dup 1 get 1 ge
- { dup 0 null put 1 2 put pop pop }
- { pop exch .undef }
- ifelse
- }
- { pop pop
- }
- ifelse
- }
- currentglobal
- { 2 copy .Instances exch exec
- }
- if .LocalInstances exch exec
- } bind
-% Because of some badly designed code in Adobe's CID font downloader that
-% makes findresource and resourcestatus deliberately inconsistent with each
-% other, the default FindResource must not call ResourceStatus if there is
-% an instance of the desired name already defined in VM.
-/FindResource {
- dup .getvminstance {
- exch pop 0 get
- } {
- dup ResourceStatus {
- pop 1 gt {
- .DoLoadResource .getvminstance not {
- /findresource load /undefinedresource signalerror
- } if 0 get
- } {
- .GetInstance pop 0 get
- } ifelse
- } {
- /findresource load /undefinedresource signalerror
- } ifelse
- } ifelse
-} bind
-% Because of some badly designed code in Adobe's CID font downloader, the
-% definition of ResourceStatus for Generic and Font must be the same (!).
-% We patch around this by using an intermediate .ResourceFileStatus procedure.
-/ResourceStatus {
- dup .GetInstance {
- exch pop dup 1 get exch 2 get true
- } {
- .ResourceFileStatus
- } ifelse
-} bind
-/.ResourceFileStatus {
- .ResourceFile { closefile 2 -1 true } { pop false } ifelse
-} bind
-/ResourceForAll {
- % **************** Doesn't present instance groups in
- % **************** the correct order yet.
- % Construct a new procedure to hold the arguments.
- % All objects constructed here must be in local VM to avoid
- % a possible invalidaccess.
- currentdict 4 .localpackedarray % [template proc scratch resdict]
- % We must pop the resource dictionary off the dict stack
- % when doing the actual iteration, and restore it afterwards.
- .currentglobal not {
- .LocalInstances length 0 ne {
- % We must do local instances, and do them first.
- //.localresourceforall {exec} 0 get 3 .localpackedarray cvx
- .LocalInstances exch {forall} 0 get 1 index 0 get
- currentdict end 3 .execn begin
- } if
- } if
- % Do global instances next.
- //.globalresourceforall {exec} 0 get 3 .localpackedarray cvx
- .Instances exch cvx {forall} 0 get 1 index 0 get
- currentdict end 3 .execn begin
- currentdict /ResourceFileName known {
- % Finally, do instances stored on files.
- dup 0 get 100 string ResourceFileName
- dup length 2 index 0 get length sub 3 -1 roll
- //.externalresourceforall {exec} 0 get 4 .localpackedarray cvx
- 100 string {filenameforall} 0 get
- currentdict end 2 .execn begin null % for pop
- } if pop
-} bind
-/ResourceFileName
- { /GenericResourceDir getsystemparam
- Category .namestring concatstrings
- /GenericResourcePathSep getsystemparam concatstrings
- .genericrfn
- } bind
-
- % Additional entries
-
-% Unfortunately, we can't create the real .Instances dictionary now,
-% because if someone copies the Generic category (which pp. 95-96 of the
-% 2nd Edition Red Book says is legitimate), they'll wind up sharing
-% the .Instances. Instead, we have to create .Instances on demand,
-% just like the entry in localinstancedict.
-% We also have to prevent anyone from creating instances of Generic itself.
-/.Instances //.emptydict
-
-/.LocalInstances
- { localinstancedict Category .knownget not { //.emptydict } if
- } bind
-/.GetInstance
- { currentglobal
- { .Instances exch .knownget }
- { .LocalInstances 1 index .knownget
- { exch pop true }
- { .Instances exch .knownget }
- ifelse
- }
- ifelse
- } bind
-/.CheckResource
- { true
- } bind
-/.vmused {
- % - .vmused <usedvalue>
- % usedvalue = vmstatus in global + vmstatus in local.
- 0 2 {
- .currentglobal not .setglobal
- vmstatus pop exch pop add
- } repeat
-} bind def
-/.DoLoadResource {
- % .LoadResource may push entries on the operand stack.
- % It is an undocumented feature of Adobe implementations,
- % which we must match for the sake of some badly written
- % font downloading code, that such entries are popped
- % automatically.
- count 1 index cvlit .vmused
- % Stack: key count litkey memused
- {.LoadResource} 4 1 roll 4 .execn
- % Stack: ... count key memused
- .vmused exch sub
- 1 index .getvminstance not {
- pop dup /undefinedresource signalerror % didn't load
- } if
- dup 1 1 put
- 2 3 -1 roll put
- % Stack: ... count key
- exch count 1 sub exch sub {exch pop} repeat
-} bind
-/.LoadResource
- { dup .ResourceFile
- { exch pop currentglobal
- { .runresource }
- { true setglobal { .runresource } stopped false setglobal { stop } if }
- ifelse
- }
- { dup /undefinedresource signalerror
- }
- ifelse
- } bind
-/.ResourceFile
- { currentdict /ResourceFileName known
- { mark 1 index 100 string { ResourceFileName }
- .internalstopped
- { cleartomark false }
- { exch pop findlibfile
- { exch pop exch pop true }
- { pop false }
- ifelse
- }
- ifelse
- }
- { false }
- ifelse
- } bind
-
-.dicttomark
-/Category defineresource pop
-
-% Fill in the rest of the Category category.
-/Category /Category findresource dup
-/Generic /Category findresource begin {
- /FindResource /ResourceForAll /ResourceStatus /.ResourceFileStatus
- /UndefineResource /ResourceFileName
- /.ResourceFile /.LoadResource /.DoLoadResource
-} { dup load put dup } forall
-pop readonly pop end
-
-(END GENERIC) VMDEBUG
-
-% Define the fixed categories.
-
-mark
- % Non-Type categories with existing entries.
- /ColorSpaceFamily
- { } % These must be deferred, because optional features may add some.
- /Emulator
- mark EMULATORS { cvn } forall .packtomark
- /Filter
- { } % These must be deferred, because optional features may add some.
- /IODevice
- % Loop until the .getiodevice gets a rangecheck.
- errordict /rangecheck 2 copy get
- errordict /rangecheck { pop stop } put % pop the command
- mark 0 { {
- dup .getiodevice dup null eq { pop } { exch } ifelse 1 add
- } loop} .internalstopped
- pop pop pop .packtomark
- 4 1 roll put
- .clearerror
- % Type categories listed in the Red Book.
- /ColorRenderingType
- { } % These must be deferred, because optional features may add some.
- /FMapType
- { } % These must be deferred, because optional features may add some.
- /FontType
- { } % These must be deferred, because optional features may add some.
- /FormType
- { } % These must be deferred, because optional features may add some.
- /HalftoneType
- { } % These must be deferred, because optional features may add some.
- /ImageType
- { } % Deferred, optional features may add some.
- /PatternType
- { } % Deferred, optional features may add some.
- % Type categories added since the Red Book.
- /setsmoothness where {
- pop /ShadingType { } % Deferred, optional features may add some.
- } if
-counttomark 2 idiv
- { mark
-
- % Standard entries
-
- % We'd like to prohibit defineresource,
- % but because optional features may add entries, we can't.
- % We can at least require that the key and value match.
- /DefineResource
- { currentglobal not
- { /defineresource load /invalidaccess signalerror }
- { 2 copy ne
- { /defineresource load /rangecheck signalerror }
- { dup .Instances 4 -2 roll .growput }
- ifelse
- }
- ifelse
- } bind
- /UndefineResource
- { /undefineresource load /invalidaccess signalerror } bind
- /FindResource
- { .Instances 1 index .knownget
- { exch pop }
- { /findresource load /undefinedresource signalerror }
- ifelse
- } bind
- /ResourceStatus
- { .Instances exch known { 0 0 true } { false } ifelse } bind
- /ResourceForAll
- /Generic /Category findresource /ResourceForAll get
-
- % Additional entries
-
- counttomark 2 add -1 roll
- dup length dict dup begin exch { dup def } forall end
- % We'd like to make the .Instances readonly here,
- % but because optional features may add entries, we can't.
- /.Instances exch
- /.LocalInstances % used by ResourceForAll
- 0 dict def
-
- .dicttomark /Category defineresource pop
- } repeat pop
-
-(END FIXED) VMDEBUG
-
-% Define the other built-in categories.
-
-/.definecategory % <name> -mark- <key1> ... <valuen> .definecategory -
- { counttomark 2 idiv 2 add % .Instances, Category
- /Generic /Category findresource dup maxlength 3 -1 roll add
- dict .copydict begin
- counttomark 2 idiv { def } repeat pop % pop the mark
- currentdict end /Category defineresource pop
- } bind def
-
-/ColorRendering mark /InstanceType /dicttype .definecategory
-% ColorSpace is defined below
-% Encoding is defined below
-% Font is defined below
-/Form mark /InstanceType /dicttype .definecategory
-/Halftone mark /InstanceType /dicttype .definecategory
-/Pattern mark /InstanceType /dicttype .definecategory
-/ProcSet mark /InstanceType /dicttype .definecategory
-% Added since the Red Book:
-/ControlLanguage mark /InstanceType /dicttype .definecategory
-/HWOptions mark /InstanceType /dicttype .definecategory
-/Localization mark /InstanceType /dicttype .definecategory
-/OutputDevice mark /InstanceType /dicttype .definecategory
-/PDL mark /InstanceType /dicttype .definecategory
-% CIDFont, CIDMap, and CMap are defined in gs_cidfn.ps
-% FontSet is defined in gs_cff.ps
-% IdiomSet is defined in gs_ll3.ps
-% InkParams and TrapParams are defined in gs_trap.ps
-
-(END MISC) VMDEBUG
-
-% Define the ColorSpace category.
-
-/.defaultcsnames mark
- /DefaultGray 0
- /DefaultRGB 1
- /DefaultCMYK 2
-.dicttomark readonly def
-
-% The "hooks" are no-ops here, redefined in LL3.
-/.definedefaultcs { % <index> <value> .definedefaultcs -
- pop pop
-} bind def
-/.undefinedefaultcs { % <index> .undefinedefaultcs -
- pop
-} bind def
-
-/ColorSpace mark
-
-/InstanceType /arraytype
-
-% We keep track of whether there are any local definitions for any of
-% the Default keys. This information must get saved and restored in
-% parallel with the local instance dictionary, so it must be stored in
-% local VM.
-userdict /.localcsdefaults false put
-
-/DefineResource {
- 2 copy /Generic /Category findresource /DefineResource get exec
- exch pop
- exch //.defaultcsnames exch .knownget {
- 1 index .definedefaultcs
- currentglobal not { .userdict /.localcsdefaults true put } if
- } if
-} bind
-
-/UndefineResource {
- dup /Generic /Category findresource /UndefineResource get exec
- //.defaultcsnames 1 index .knownget {
- % Stack: resname index
- currentglobal {
- .undefinedefaultcs pop
- } {
- % We removed the local definition, but there might be a global one.
- exch .GetInstance {
- 0 get .definedefaultcs
- } {
- .undefinedefaultcs
- } ifelse
- % Recompute .localcsdefaults by scanning. This is rarely needed.
- .userdict /.localcsdefaults false //.defaultcsnames {
- pop .LocalInstances exch known { pop true exit } if
- } forall put
- } ifelse
- } {
- pop
- } ifelse
-} bind
-
-.definecategory % ColorSpace
-
-% Define the Encoding category.
-
-/Encoding mark
-
-/InstanceType /arraytype
-
-% Handle already-registered encodings, including lazily loaded encodings
-% that aren't loaded yet.
-
-/.Instances mark
- EncodingDirectory
- { dup length 256 eq { [ exch readonly 0 -1 ] } { pop [null 2 -1] } ifelse
- } forall
-.dicttomark
-
-/.ResourceFileDict mark
- EncodingDirectory
- { dup length 256 eq { pop pop } { 0 get } ifelse
- } forall
-.dicttomark
-
-/ResourceFileName
- { .ResourceFileDict 2 index .knownget
- { exch copy exch pop }
- { /Generic /Category findresource /ResourceFileName get exec }
- ifelse
- } bind
-
-.definecategory % Encoding
-
-% Make placeholders in level2dict for the redefined Encoding operators,
-% so that they will be swapped properly when we switch language levels.
-
-/.findencoding /.findencoding load def
-/findencoding /findencoding load def
-/.defineencoding /.defineencoding load def
-
-(END ENCODING) VMDEBUG
-
-% Define the Font category.
-
-/.fontstatus { % <fontname> .fontstatus <fontname> <found>
- { % Create a loop context just so we can exit it early.
- % Check Fontmap.
- Fontmap 1 index .knownget {
- {
- dup type /nametype eq {
- .fontstatus { pop null exit } if
- } {
- dup type /stringtype eq {
- findlibfile { closefile pop null exit } if pop
- } {
- % Procedure, assume success.
- pop null exit
- } ifelse
- } ifelse
- } forall dup null eq { pop true exit } if
- } if
- % Convert names to strings; give up on other types.
- dup type /nametype eq { .namestring } if
- dup type /stringtype ne { false exit } if
- % Check the resource directory.
- dup .fonttempstring /FontResourceDir getsystemparam .genericrfn
- status {
- pop pop pop pop true exit
- } if
- % Check for a file on the search path with the same name
- % as the font.
- findlibfile { closefile true exit } if
- % Scan a FONTPATH directory and try again.
- .scannextfontdir not { false exit } if
- } loop
-} bind def
-
-/Font mark
-
-/InstanceType /dicttype
-
-/DefineResource
- { 2 copy //definefont exch pop
- /Generic /Category findresource /DefineResource get exec
- } bind
-/UndefineResource
- { dup //undefinefont
- /Generic /Category findresource /UndefineResource get exec
- } bind
-/FindResource {
- dup .getvminstance {
- exch pop 0 get
- } {
- dup ResourceStatus {
- pop 1 gt { .loadfontresource } { .GetInstance pop 0 get } ifelse
- } {
- .loadfontresource
- } ifelse
- } ifelse
-} bind
-/ResourceForAll {
- { .scannextfontdir not { exit } if } loop
- /Generic /Category findresource /ResourceForAll get exec
-} bind
-/.ResourceFileStatus {
- .fontstatus { pop 2 -1 true } { pop false } ifelse
-} bind
-
-/.loadfontresource {
- dup vmstatus pop exch pop exch
- % Hack: rebind .currentresourcefile so that all calls of
- % definefont will know these are built-in fonts.
- currentfile {pop //findfont exec} .execasresource % (findfont is a procedure)
- exch vmstatus pop exch pop exch sub
- % stack: name font vmused
- % findfont has the prerogative of not calling definefont
- % in certain obscure cases of font substitution.
- 2 index .getvminstance {
- dup 1 1 put
- 2 3 -1 roll put
- } {
- pop
- } ifelse exch pop
-} bind
-
-/.Instances FontDirectory length 2 mul dict
-
-.definecategory % Font
-
-% Redefine font "operators".
-/.definefontmap
- { /Font /Category findresource /.Instances get
- dup 3 index known
- { pop
- }
- { 2 index
- % Make sure we create the array in global VM.
- .currentglobal true .setglobal
- [null 2 -1] exch .setglobal
- .growput
- }
- ifelse
- //.definefontmap exec
- } bind def
-
-% Make sure the old definitions are still in systemdict so that
-% they will get bound properly.
-systemdict begin
- /.origdefinefont /definefont load def
- /.origundefinefont /undefinefont load def
- /.origfindfont /findfont load def
-end
-/definefont {
- /Font defineresource
-} bind odef
-/undefinefont {
- /Font undefineresource
-} bind odef
-% The Red Book requires that findfont be a procedure, not an operator,
-% but it still needs to restore the stacks reliably if it fails.
-/.findfontop {
- /Font findresource
-} bind odef
-/findfont {
- .findfontop
-} bind def % Must be a procedure, not an operator
-
-% Remove initialization utilities.
-currentdict /.definecategory .undef
-currentdict /.emptydict .undef
-
-end % level2dict
-
-% Convert deferred resources after we finally switch to Level 2.
-
-/.fixresources {
- % Encoding resources
- EncodingDirectory
- { dup length 256 eq
- { /Encoding defineresource pop }
- { pop pop }
- ifelse
- } forall
- /.findencoding { /Encoding findresource } bind def
- /findencoding /.findencoding load def % must be a procedure
- /.defineencoding { /Encoding defineresource pop } bind def
- % ColorRendering resources and ProcSet
- systemdict /ColorRendering .knownget {
- /ColorRendering exch /ProcSet defineresource pop
- systemdict /ColorRendering undef
- /Default currentcolorrendering /ColorRendering defineresource pop
- } if
- % ColorSpace resources
- systemdict /CIEsRGB .knownget {
- /sRGB exch /ColorSpace defineresource pop
- systemdict /CIEsRGB undef
- } if
- % ColorSpaceFamily resources
- colorspacedict { pop dup /ColorSpaceFamily defineresource pop } forall
- % Filter resources
- filterdict { pop dup /Filter defineresource pop } forall
- % FontType and FMapType resources
- buildfontdict { pop dup /FontType defineresource pop } forall
- mark
- buildfontdict 0 known { 2 3 4 5 6 7 8 } if
- buildfontdict 9 known { 9 } if
- counttomark { dup /FMapType defineresource pop } repeat pop
- % FormType resources
- .formtypes { pop dup /FormType defineresource pop } forall
- % HalftoneType resources
- .halftonetypes { pop dup /HalftoneType defineresource pop } forall
- % ColorRenderingType resources
- .colorrenderingtypes {pop dup /ColorRenderingType defineresource pop} forall
- % ImageType resources
- .imagetypes { pop dup /ImageType defineresource pop } forall
- % PatternType resources
- .patterntypes { pop dup /PatternType defineresource pop } forall
- % Make the fixed resource categories immutable.
- /.shadingtypes where {
- pop .shadingtypes { pop dup /ShadingType defineresource pop } forall
- } if
- [ /ColorSpaceFamily /Emulator /Filter /IODevice /ColorRenderingType
- /FMapType /FontType /FormType /HalftoneType /ImageType /PatternType
- /.shadingtypes where { pop /ShadingType } if
- ] {
- /Category findresource
- dup /.Instances get readonly pop
- .LocalInstances readonly pop
- readonly pop
- } forall
- % clean up
- systemdict /.fixresources undef
-} bind def
diff --git a/Master/xemtex/gslib/gs_s.xbm b/Master/xemtex/gslib/gs_s.xbm
deleted file mode 100644
index 4d5234f63e1..00000000000
--- a/Master/xemtex/gslib/gs_s.xbm
+++ /dev/null
@@ -1,11 +0,0 @@
-#define gs_s.xbm_width 24
-#define gs_s.xbm_height 24
-#define gs_s.xbm_x_hot 0
-#define gs_s.xbm_y_hot 0
-static unsigned char gs.s.bm_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x08, 0x00, 0x00, 0x13,
- 0x00, 0x00, 0x33, 0x00, 0xfe, 0x31, 0xe0, 0xff, 0x38, 0xf0, 0x3f, 0x38,
- 0xf8, 0x07, 0x7e, 0xfc, 0x01, 0x7f, 0xfe, 0x90, 0x7f, 0x7e, 0x94, 0x7f,
- 0x7e, 0x84, 0x7f, 0x7e, 0x00, 0x7f, 0x7e, 0x00, 0x7e, 0xfc, 0x60, 0x7c,
- 0xfc, 0x61, 0x38, 0xf8, 0x03, 0x38, 0xf8, 0x03, 0x18, 0xf0, 0x07, 0x0c,
- 0xc0, 0x0f, 0x06, 0xc0, 0x07, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/gslib/gs_s.xpm b/Master/xemtex/gslib/gs_s.xpm
deleted file mode 100644
index 765d9d79dd5..00000000000
--- a/Master/xemtex/gslib/gs_s.xpm
+++ /dev/null
@@ -1,36 +0,0 @@
-/* XPM */
-static char * gs_s_xpm[] = {
-/* width height ncolors cpp [x_hot y_hot] */
-"24 24 6 1 0 0",
-/* colors */
-" s none m none c none",
-". c #808080808080",
-"X s iconColor1 m black c black",
-"o c #C0C0C0C0C0C0",
-"O s iconColor2 m white c white",
-"+ c #00000000FFFF",
-/* pixels */
-" ",
-" .. ",
-" XoOo. ",
-" X.OoX ",
-" X.OoX. ",
-" .XXXXXX.oOoXX ",
-" ..XXXXXXXX.oOO.XX ",
-" XXXXXXXX..oOOOo.XX ",
-" XXXXXXX.OOOOOo.XXXX. ",
-" XXXXXX.OOOOOOOXXXXXXX ",
-" .XXXXX.OOOO+OOXXXXXXXX ",
-" XXXXXXOOO+O+OOXXXXXXXX ",
-" XXXXXXOOO+OOOOXXXXXXXX ",
-" XXXXXXOOOOOOOOOXXXXXXX ",
-" .XXXXXOOOOOOOOOO.XXXXX ",
-" XXXXXXOOOOO++OOO.XXXX ",
-" .XXXXX.OOOO++OOOoXXX ",
-" XXXXXX.OOOOOOOOOXXX ",
-" .XXXXXXoOOOOOOOoXX ",
-" .XXXXXXoOOOOOo.X ",
-" .XXXXXOOOOO.X ",
-" .XXXXOOOOO.. ",
-" XXXXXOOOOOOOO ",
-" "};
diff --git a/Master/xemtex/gslib/gs_s_m.xbm b/Master/xemtex/gslib/gs_s_m.xbm
deleted file mode 100644
index 941e9c48475..00000000000
--- a/Master/xemtex/gslib/gs_s_m.xbm
+++ /dev/null
@@ -1,11 +0,0 @@
-#define gs_s_m.xbm_width 24
-#define gs_s_m.xbm_height 24
-#define gs_s_m.xbm_x_hot 0
-#define gs_s_m.xbm_y_hot 0
-static unsigned char gs.s_m.bm_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f,
- 0x00, 0x00, 0x3f, 0x00, 0xfe, 0x3f, 0xe0, 0xff, 0x3f, 0xf0, 0xff, 0x3f,
- 0xf8, 0xff, 0x7f, 0xfc, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f,
- 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfc, 0xff, 0x7f,
- 0xfc, 0xff, 0x3f, 0xf8, 0xff, 0x3f, 0xf8, 0xff, 0x1f, 0xf0, 0xff, 0x0f,
- 0xc0, 0xff, 0x07, 0xc0, 0xff, 0x03, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/gslib/gs_setpd.ps b/Master/xemtex/gslib/gs_setpd.ps
deleted file mode 100644
index edfa072c85d..00000000000
--- a/Master/xemtex/gslib/gs_setpd.ps
+++ /dev/null
@@ -1,777 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_setpd.ps,v 1.8.2.2.2.2 2003/04/12 14:02:38 giles Exp $
-% The current implementation of setpagedevice has the following limitations:
-% - It doesn't attempt to "interact with the user" for Policy = 2.
-
-languagelevel 1 .setlanguagelevel
-level2dict begin
-
-% ---------------- Redefinitions ---------------- %
-
-% Redefine .beginpage and .endpage so that they call BeginPage and
-% EndPage respectively if appropriate.
-
-% We have to guard against the BeginPage procedure not popping its operand.
-% This is really stupid, but the Genoa CET does it.
-/.beginpage { % - .beginpage -
- .currentshowpagecount {
- .currentpagedevice pop
- dup null ne { /BeginPage .knownget } { pop false } ifelse {
- % Stack: ... pagecount proc
- count 2 .execn
- % Stack: ... ..???.. oldcount
- count 1 add exch sub { pop } repeat
- } {
- pop
- } ifelse
- } if
-} bind odef
-
-% Guard similarly against EndPage not popping its operand.
-/.endpage { % <reason> .endpage <print_bool>
- .currentshowpagecount {
- 1 index .currentpagedevice pop
- dup null ne { /EndPage .knownget } { pop false } ifelse {
- % Stack: ... reason pagecount reason proc
- count 2 .execn
- % Stack: ... ..???.. print oldcount
- count 2 add exch sub { exch pop } repeat
- } {
- pop pop 2 ne
- } ifelse
- } {
- 2 ne
- } ifelse
-} bind odef
-
-% Define interpreter callouts for handling gstate-saving operators,
-% to make sure that they create a page device dictionary for use by
-% the corresponding gstate-restoring operator.
-% We'd really like to avoid the cost of doing this, but we don't see how.
-% The names %gsavepagedevice, %savepagedevice, %gstatepagedevice,
-% %copygstatepagedevice, and %currentgstatepagedevice are known to the
-% interpreter.
-
-(%gsavepagedevice) cvn
- { currentpagedevice pop gsave
- } bind def
-
-(%savepagedevice) cvn
- { currentpagedevice pop save
- } bind def
-
-(%gstatepagedevice) cvn
- { currentpagedevice pop gstate
- } bind def
-
-(%copygstatepagedevice) cvn
- { currentpagedevice pop copy
- } bind def
-
-(%currentgstatepagedevice) cvn
- { currentpagedevice pop currentgstate
- } bind def
-
-% Define interpreter callouts for handling gstate-restoring operators
-% when the current page device needs to be changed.
-% The names %grestorepagedevice, %grestoreallpagedevice,
-% %restorepagedevice, %restore1pagedevice, and %setgstatepagedevice
-% are known to the interpreter.
-
-/.installpagedevice
- { % Since setpagedevice doesn't create new device objects,
- % we must (carefully) reinstall the old parameters in
- % the same device.
- .currentpagedevice pop null currentdevice null .trysetparams
- dup type /booleantype eq
- { pop pop }
- { % This should never happen!
- DEBUG { (Error in .trysetparams!) = pstack flush } if
- cleartomark pop pop pop
- /.installpagedevice cvx /rangecheck signalerror
- }
- ifelse pop pop
- % A careful reading of the Red Book reveals that an erasepage
- % should occur, but *not* an initgraphics.
- erasepage .beginpage
- } bind def
-
-/.uninstallpagedevice
- { 2 .endpage { .currentnumcopies false .outputpage } if
- nulldevice
- } bind def
-
-(%grestorepagedevice) cvn
- { .uninstallpagedevice grestore .installpagedevice
- } bind def
-
-(%grestoreallpagedevice) cvn
- { .uninstallpagedevice grestore .installpagedevice grestoreall
- } bind def
-
-(%restore1pagedevice) cvn
- { .uninstallpagedevice grestore .installpagedevice restore
- } bind def
-
-(%restorepagedevice) cvn
- { .uninstallpagedevice restore .installpagedevice
- } bind def
-
-(%setgstatepagedevice) cvn
- { .uninstallpagedevice setgstate .installpagedevice
- } bind def
-
-% Redefine .currentnumcopies so it consults the NumCopies device parameter.
-/.numcopiesdict mark
- /NumCopies dup
-.dicttomark readonly def
-
-/.currentnumcopies
- { currentdevice //.numcopiesdict .getdeviceparams
- dup type /integertype eq
- { exch pop exch pop }
- { cleartomark #copies }
- ifelse
- } bind odef
-
-% Redefine .currentpagedevice and .setpagedevice so they convert between
-% null and a fixed empty directionary.
-/.nullpagedevice 0 dict readonly def
-/.currentpagedevice {
- //.currentpagedevice exch dup null eq { pop //.nullpagedevice } if exch
-} bind odef
-/.setpagedevice {
- dup //.nullpagedevice eq { pop null } if //.setpagedevice
-} bind odef
-
-% ---------------- Auxiliary definitions ---------------- %
-
-% Define the required attributes of all page devices, and their default values.
-% We don't include attributes such as .MediaSize, which all devices
-% are guaranteed to supply on their own.
-/.defaultpolicies mark
- /PolicyNotFound 1
- /PageSize 0
- /PolicyReport {
- dup /.LockSafetyParams known {
- % Only possible error is invalidaccess
- /setpagedevice .systemvar /invalidaccess signalerror
- }
- if
- pop
- } bind
-.dicttomark readonly def
-% Note that the values of .requiredattrs are executed, not just fetched.
-/.requiredattrs mark
- /PageDeviceName null
- /PageOffset [0 0] readonly
-% We define InputAttributes and OutputAttributes with a single
-% dummy media type that handles pages of any size.
-% Devices that care will override this.
- /InputAttributes {
- mark 0
- % Since sizes match within 5 user units, we need to set the smallest
- % PageSize to 6 units so that [0 0] will fail.
- mark /PageSize [6 dup 16#7ffff dup] .dicttomark
- .dicttomark
- }
- (%MediaSource) 0
- /OutputAttributes {
- mark 0 mark .dicttomark readonly .dicttomark
- }
- (%MediaDestination) 0
- /Install {{.callinstall}} bind
- /BeginPage {{.callbeginpage}} bind
- /EndPage {{.callendpage}} bind
- /Policies .defaultpolicies
-.dicttomark readonly def
-
-% Define currentpagedevice so it creates the dictionary on demand if needed,
-% adding all the required entries defined just above.
-% We have to deal specially with entries that the driver may change
-% on its own.
-/.dynamicppkeys mark
- /.MediaSize dup % because it changes when PageSize is set
- /PageCount dup
-.dicttomark readonly def
-/.makecurrentpagedevice { % - .makecurrentpagedevice <dict>
- currentdevice null .getdeviceparams
- % Make the dictionary large enough to add defaulted entries.
- counttomark 2 idiv .requiredattrs length add dict
- counttomark 2 idiv { dup 4 2 roll put } repeat exch pop
- % Add any missing required attributes.
- % Make a writable and (if possible) local copy of any default
- % dictionaries, to work around a bug in the output of WordPerfect,
- % which assumes that these dictionaries are writable and local.
- .currentglobal exch dup gcheck .setglobal
- .requiredattrs {
- 2 index 2 index known {
- pop pop
- } {
- exec 2 index 3 1 roll put
- } ifelse
- } forall exch .setglobal
- dup .setpagedevice
-} bind def
-/currentpagedevice {
- .currentpagedevice {
- dup length 0 eq {
- pop .makecurrentpagedevice
- } {
- % If any of the dynamic keys have changed,
- % we must update the page device dictionary.
- currentdevice //.dynamicppkeys .getdeviceparams .dicttomark {
- % Stack: current key value
- 2 index 2 index .knownget { 1 index ne } { true } ifelse
- { 2 index wcheck not
- { % This is the first entry being updated.
- % Copy the dictionary to make it writable.
- 3 -1 roll
- currentglobal 1 index dup gcheck currentglobal and setglobal
- length dict exch setglobal .copydict
- 3 1 roll
- }
- if
- 2 index 3 1 roll put
- }
- { pop pop
- }
- ifelse
- } forall
- % If the dictionary was global and is now local, copy
- % any global subsidiary dictionaries to local VM. This
- % too is to work around the Word Perfect bug (see above).
- dup gcheck not {
- dup {
- dup type /dicttype eq { dup gcheck } { false } ifelse {
- % Copy-on-write, see above.
- 2 index wcheck not {
- 3 -1 roll dup length dict .copydict
- 3 1 roll
- } if
- .copytree 2 index 3 1 roll put
- } {
- pop pop
- } ifelse
- } forall
- } if
- % We would like to do a .setpagedevice so we don't keep
- % re-creating the dictionary. Unfortunately, the effect
- % of this is that if any dynamic key changes (PageCount
- % in particular), we will do the equivalent of a
- % setpagedevice at the next restore or grestore.
- % Therefore, we make the dictionary read-only, but
- % we don't store it away. I.e., NOT:
- % dup wcheck { .setpagedevice .currentpagedevice pop } if
- readonly
- } ifelse
- } if
-} bind odef
-
-% Copy a dictionary recursively.
-/.copytree { % <dict> .copytree <dict'>
- dup length dict exch {
- dup type /dicttype eq { .copytree } if 2 index 3 1 roll put
- } forall
-} bind def
-
-% The implementation of setpagedevice is quite complex. Currently,
-% everything but the media matching algorithm is implemented here.
-
-% By default, we only present the requested changes to the device,
-% but there are some parameters that require special merging action.
-% Define those parameters here, with the procedures that do the merging.
-% The procedures are called as follows:
-% <merged> <key> <new_value> -proc- <merged> <key> <new_value'>
-/.mergespecial mark
- /InputAttributes
- { dup null eq
- { pop null
- }
- { 3 copy pop .knownget
- { dup null eq
- { pop dup length dict }
- { dup length 2 index length add dict .copydict }
- ifelse
- }
- { dup length dict
- }
- ifelse .copydict readonly
- }
- ifelse
- } bind
- /OutputAttributes 1 index
- /Policies
- { 3 copy pop .knownget
- { dup length 2 index length add dict .copydict }
- { dup length dict }
- ifelse copy readonly
- } bind
-.dicttomark readonly def
-
-% Define the keys used in input attribute matching.
-/.inputattrkeys [
- /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
- % The following are documented in Adobe's supplement for v2017.
- /LeadingEdge /MediaClass
-] readonly def
-% Define other keys used in media selection.
-/.inputselectionkeys [
- /MediaPosition /Orientation
-] readonly def
-
-% Define the keys used in output attribute matching.
-/.outputattrkeys [
- /OutputType
-] readonly def
-
-% Define all the parameters that should always be copied to the merged
-% dictionary.
-/.copiedkeys [
- /OutputDevice
- .mergespecial { pop } forall
- .inputattrkeys aload pop
- .inputselectionkeys aload pop
- .outputattrkeys aload pop
-] readonly def
-
-% Define the parameters that should not be presented to the device.
-% The procedures are called as follows:
-% <merged> <key> <value> -proc-
-% The procedure leaves all its operands on the stack and returns
-% true iff the key/value pair should be presented to .putdeviceparams.
-/.presentspecial mark
- .dynamicppkeys { pop false } forall
- % We must ignore an explicit request for .MediaSize,
- % because media matching always handles this.
- /.MediaSize false
- /Name false
- /OutputDevice false
- /PageDeviceName false
- /PageOffset false
- /PageSize false % obsolete alias for .MediaSize
- /InputAttributes false
- .inputattrkeys
- { dup /PageSize eq
- { pop }
- { { 2 index /InputAttributes .knownget { null eq } { true } ifelse } }
- ifelse
- }
- forall
- .inputselectionkeys { false } forall
- /OutputAttributes false
- .outputattrkeys
- { { 2 index /OutputAttributes .knownget { null eq } { true } ifelse } }
- forall
- /Install false
- /BeginPage false
- /EndPage false
- /Policies false
- % Our extensions:
- /HWColorMap
- { % HACK: don't transmit the color map, because
- % window systems can change the color map on their own
- % incrementally. Someday we'll have a better
- % solution for this....
- false
- }
- /ViewerPreProcess false
-.dicttomark readonly def
-
-% Define access to device defaults.
-/.defaultdeviceparams
- { finddevice null .getdeviceparams
- } bind def
-
-% Select media (input or output). The hard work is done in an operator:
-% <pagedict> <attrdict> <policydict> <keys> .matchmedia <key> true
-% <pagedict> <attrdict> <policydict> <keys> .matchmedia false
-% <pagedict> null <policydict> <keys> .matchmedia null true
-/.selectmedia % <orig> <request> <merged> <failed> <-- retained
- % <attrdict> <policydict> <attrkeys> <mediakey>
- % .selectmedia
- { 5 index 5 -2 roll 4 index .matchmedia
- % Stack: orig request merged failed attrkeys mediakey
- % (key true | false)
- { 4 index 3 1 roll put pop
- }
- { % Adobe's implementations have a "big hairy heuristic"
- % to choose the set of keys to report as having failed the match.
- % For the moment, we report any keys that are in the request
- % and don't have the same value as in the original dictionary.
- 5 index 1 index .knownget
- { 4 index 3 1 roll put }
- { 3 index exch .undef }
- ifelse
- { % Stack: <orig> <request> <merged> <failed> <attrkey>
- 3 index 1 index .knownget
- { 5 index 2 index .knownget { ne } { pop true } ifelse }
- { true }
- ifelse % Stack: ... <failed> <attrkey> <report>
- { 2 copy /rangecheck put }
- if pop
- }
- forall
- }
- ifelse
- } bind def
-
-% Apply Policies to any unprocessed failed requests.
-% As we process each request entry, we replace the error name
-% in the <failed> dictionary with the policy value,
-% and we replace the key in the <merged> dictionary with its prior value
-% (or remove it if it had no prior value).
-/.policyprocs mark
-% These procedures are called with the following on the stack:
-% <orig> <merged> <failed> <Policies> <key> <policy>
-% They are expected to consume the top 2 operands.
-% NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
-% the same as 0, i.e., we signal an error.
- 0 { % Set errorinfo and signal a configurationerror.
- pop dup 4 index exch get 2 array astore
- $error /errorinfo 3 -1 roll put
- cleartomark
- /setpagedevice load /configurationerror signalerror
- } bind
- 1 { % Roll back the failed request to its previous status.
-DEBUG { (Rolling back.) = pstack flush } if
- 3 index 2 index 3 -1 roll put
- 4 index 1 index .knownget
- { 4 index 3 1 roll put }
- { 3 index exch .undef }
- ifelse
- } bind
- 7 { % For PageSize only, just impose the request.
- 1 index /PageSize eq
- { pop pop 1 index /PageSize 7 put }
- { .policyprocs 0 get exec }
- ifelse
- } bind
-.dicttomark readonly def
-/.applypolicies % <orig> <merged> <failed> .applypolicies
- % <orig> <merged'> <failed'>
- { 1 index /Policies get 1 index
- { type /integertype eq
- { pop % already processed
- }
- { 2 copy .knownget not { 1 index /PolicyNotFound get } if
- % Stack: <orig> <merged> <failed> <Policies> <key>
- % <policy>
- .policyprocs 1 index .knownget not { .policyprocs 0 get } if exec
- }
- ifelse
- }
- forall pop
- } bind def
-
-% Prepare to present parameters to the device, by spreading them onto the
-% operand stack and removing any that shouldn't be presented.
-/.prepareparams % <params> .prepareparams -mark- <key1> <value1> ...
- { mark exch dup
- { % Stack: -mark- key1 value1 ... merged key value
- .presentspecial 2 index .knownget
- { exec { 3 -1 roll } { pop pop } ifelse }
- { 3 -1 roll }
- ifelse
- }
- forall pop
- } bind def
-
-% Put device parameters without resetting currentpagedevice.
-% (.putdeviceparams clears the current page device.)
-/.putdeviceparamsonly % <device> <Policies|null> <require_all> -mark-
- % <key1> <value1> ... .putdeviceparamsonly
- % On success: <device> <eraseflag>
- % On failure: <device> <Policies|null> <req_all> -mark-
- % <key1> <error1> ...
- { .currentpagedevice
- { counttomark 4 add 1 roll .putdeviceparams
- dup type /booleantype eq { 3 } { counttomark 5 add } ifelse -1 roll
- .setpagedevice
- }
- { pop .putdeviceparams
- }
- ifelse
- } bind def
-
-% Try setting the device parameters from the merged request.
-/.trysetparams % <merged> <(ignored)> <device> <Policies>
- % .trysetparams
- { true 4 index .prepareparams
- % Add the computed .MediaSize.
- % Stack: merged (ignored) device Policies -true-
- % -mark- key1 value1 ...
- counttomark 5 add index .computemediasize
- exch pop exch pop /.MediaSize exch
-DEBUG { (Putting.) = pstack flush } if
- .putdeviceparamsonly
-DEBUG { (Result of putting.) = pstack flush } if
- } bind def
-
-% Compute the media size and initial matrix from a merged request (after
-% media selection).
-/.computemediasize % <request> .computemediasize
- % <request> <matrix> <[width height]>
- { dup /PageSize get % requested page size
- 1 index /InputAttributes get
- 2 index (%MediaSource) get get /PageSize get % media size
- % (may be a range)
- 2 index /Policies get
- dup /PageSize .knownget
- { exch pop } { /PolicyNotFound get } ifelse % PageSize policy,
- % affects scaling
- 3 index /Orientation .knownget not { null } if
- 4 index /RollFedMedia .knownget not { false } if
- matrix .matchpagesize not {
- % This is a "can't happen" condition!
- /setpagedevice load /rangecheck signalerror
- } if
- 2 array astore
- } bind def
-
-% ---------------- setpagedevice itself ---------------- %
-
-/setpagedevice
- { % We mustn't pop the argument until the very end,
- % so that the pseudo-operator machinery can restore the stack
- % if an error occurs.
- mark 1 index currentpagedevice
-
- % Check whether we are changing OutputDevice;
- % also handle the case where the current device
- % is not a page device.
- % Stack: mark <request> <current>
-DEBUG { (Checking.) = pstack flush } if
-
- dup /OutputDevice .knownget
- { % Current device is a page device.
- 2 index /OutputDevice .knownget
- { % A specific OutputDevice was requested.
- 2 copy eq
- { pop pop null }
- { exch pop }
- ifelse
- }
- { pop null
- }
- ifelse
- }
- { % Current device is not a page device.
- % Use the default device.
- 1 index /OutputDevice .knownget not { .defaultdevicename } if
- }
- ifelse
- dup null eq
- { pop
- }
- { exch pop .defaultdeviceparams
- % In case of duplicate keys, .dicttomark takes the entry
- % lower on the stack, so we can just append the defaults here.
- .requiredattrs { exec } forall .dicttomark
- }
- ifelse
-
- % Check whether a viewer wants to intervene.
- % We must check both the request (which takes precedence)
- % and the current dictionary.
- % Stack: mark <request> <orig>
- exch dup /ViewerPreProcess .knownget
- { exec }
- { 1 index /ViewerPreProcess .knownget { exec } if }
- ifelse exch
-
- % Construct a merged request from the actual request plus
- % any keys that should always be propagated.
- % Stack: mark <request> <orig>
-DEBUG { (Merging.) = pstack flush } if
-
- exch 1 index length 1 index length add dict
- .copiedkeys
- { % Stack: <orig> <request> <merged> <key>
- 3 index 1 index .knownget { 3 copy put pop } if pop
- }
- forall
- % Stack: <orig> <request> <merged>
- dup 2 index
- { % stack: <orig> <request> <merged> <merged> <rkey> <rvalue>
- .mergespecial 2 index .knownget { exec } if
- put dup
- }
- forall pop
- % Hack: if FIXEDRESOLUTION is true, discard any attempt to
- % change HWResolution.
- FIXEDRESOLUTION { dup /HWResolution .undef } if
- % Hack: if FIXEDMEDIA is true, discard any attempt to change
- % PageSize or HWSize.
- FIXEDMEDIA
- { dup /PageSize 4 index /PageSize get put
- dup /HWSize 4 index /HWSize get put
- } if
- % Hack: to work around some files that take a PageSize
- % from InputAttributes and impose it, discard any attempt
- % to set PageSize to a 4-element value.
- % Stack: mark <orig> <request> <merged>
- dup /PageSize .knownget {
- length 2 ne {
- dup /PageSize 4 index /PageSize get put
- } if
- } if
-
- % Select input and output media.
- % Stack: mark <orig> <request> <merged>
-DEBUG { (Selecting.) = pstack flush } if
-
- 0 dict % <failed>
- 1 index /InputAttributes .knownget
- { 2 index /Policies get
- .inputattrkeys (%MediaSource) cvn .selectmedia
- } if
- 1 index /OutputAttributes .knownget
- { 2 index /Policies get
- .outputattrkeys (%MediaDestination) cvn .selectmedia
- } if
- 3 -1 roll 4 1 roll % temporarily swap orig & request
- .applypolicies
- 3 -1 roll 4 1 roll % swap back
-
- % Construct the new device, and attempt to set its attributes.
- % Stack: mark <orig> <request> <merged> <failed>
-DEBUG { (Constructing.) = pstack flush } if
-
- currentdevice .devicename 2 index /OutputDevice get eq
- { currentdevice }
- { 1 index /OutputDevice get finddevice }
- ifelse
- %**************** We should copy the device here,
- %**************** but since we can't close the old device,
- %**************** we don't. This is WRONG.
- %****************copydevice
- 2 index /Policies get
- .trysetparams
- dup type /booleantype ne
- { % The request failed.
- % Stack: ... <orig> <request> <merged> <failed> <device>
- % <Policies> true mark <name> <errorname> ...
-DEBUG { (Recovering.) = pstack flush } if
- counttomark 4 add index
- counttomark 2 idiv { dup 4 -2 roll put } repeat
- pop pop pop
- % Stack: mark ... <orig> <request> <merged> <failed> <device>
- % <Policies>
- 6 2 roll 3 -1 roll 4 1 roll
- .applypolicies
- 3 -1 roll 4 1 roll 6 -2 roll
- .trysetparams % shouldn't fail!
- dup type /booleantype ne
- { 2 { counttomark 1 add 1 roll cleartomark } repeat
- /setpagedevice load exch signalerror
- }
- if
- }
- if
-
- % The attempt succeeded. Install the new device.
- % Stack: mark ... <merged> <failed> <device> <eraseflag>
-DEBUG { (Installing.) = pstack flush } if
-
- pop 2 .endpage
- { 1 true .outputpage
- (>>setpagedevice, press <return> to continue<<\n) .confirm
- }
- if
- % .setdevice clears the current page device!
- .currentpagedevice pop exch
- .setdevice pop
- .setpagedevice
-
- % Merge the request into the current page device,
- % unless we're changing the OutputDevice.
- % Stack: mark ... <merged> <failed>
- exch currentpagedevice dup length 2 index length add dict
- % Stack: mark ... <failed> <merged> <current> <newdict>
- 2 index /OutputDevice .knownget {
- 2 index /OutputDevice .knownget not { null } if eq
- } {
- true
- } ifelse {
- % Same OutputDevice, merge the dictionaries.
- .copydict
- } {
- % Different OutputDevice, discard the old dictionary.
- exch pop
- } ifelse .copydict
- % Initialize the default matrix, taking media matching
- % into account.
- .computemediasize pop initmatrix concat
- dup /PageOffset .knownget
- { % Translate by the given number of 1/72" units in device X/Y.
- dup 0 get exch 1 get
- 2 index /HWResolution get dup 1 get exch 0 get
- 4 -1 roll mul 72 div 3 1 roll mul 72 div
- idtransform translate
- }
- if
- % We must install the new page device dictionary
- % before calling the Install procedure.
- dup .setpagedevice
- .setdefaultscreen % Set the default screen before calling Install.
- dup /Install .knownget {
- { .execinstall } stopped { .postinstall stop } { .postinstall } ifelse
- } {
- .postinstall
- } ifelse
-} odef
-
-% We break out the code after calling the Install procedure into a
-% separate procedure, since it is executed even if Install causes an error.
-% By making .execinstall a separate operator procedure, we get the stacks
-% restored if it fails.
-
-/.execinstall { % <proc> .execinstall -
- % Because the interpreter optimizes tail calls, we can't just let
- % the body of this procedure be 'exec', because that would lose
- % the stack protection that is the whole reason for having the
- % procedure in the first place. We hack this by adding a couple
- % of extra tokens to ensure that the operator procedure is still
- % on the stack during the exec.
- exec
- 0 pop % See above.
-} odef
-/.postinstall { % mark ... <failed> <merged> .postinstall -
- matrix currentmatrix .setdefaultmatrix
- % Erase and initialize the page.
- erasepage initgraphics
- .beginpage
-
- % Clean up, calling PolicyReport if needed.
- % Stack: mark ... <failed> <merged>
-DEBUG { (Finishing.) = pstack flush } if
-
- exch dup length 0 ne
- { 1 index /Policies get /PolicyReport get
- counttomark 1 add 2 roll cleartomark
- exec
- }
- { cleartomark
- }
- ifelse pop
-
-} odef
-
-end % level2dict
-.setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_statd.ps b/Master/xemtex/gslib/gs_statd.ps
deleted file mode 100644
index 824f480d239..00000000000
--- a/Master/xemtex/gslib/gs_statd.ps
+++ /dev/null
@@ -1,366 +0,0 @@
-% Copyright (C) 1989, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_statd.ps,v 1.5.2.2.2.1 2003/04/12 14:02:38 giles Exp $
-% This file provides statusdict, serverdict, and assorted LaserWriter
-% operators, mostly for the benefit of poorly designed PostScript programs
-% that 'know' they are running on a LaserWriter.
-
-systemdict begin
- % We make statusdict a little larger for Level 2 stuff.
- % Note that it must be allocated in local VM.
- .currentglobal false .setglobal
- /statusdict 89 dict .forcedef % statusdict is local, sys'dict global
- % To support the Level 2 job control features,
- % serverdict must also be in local VM.
- /serverdict 10 dict .forcedef % serverdict is local, sys'dict global
- .setglobal
-end
-
-% Define various paper formats. The Adobe documentation defines only these:
-% 11x17, a3, a4, a4small, b5, ledger, legal, letter, lettersmall, note.
-% These procedures are also accessed as data structures during initialization,
-% so the page dimensions must be the first two elements of the procedure.
-
-/.setpagesize { /statusdict .systemvar begin .setpagesize end } bind def
-userdict begin
- % Page sizes defined by Adobe documentation
- /11x17 {792 1224 //.setpagesize exec} bind def % 11x17 portrait
- /a3 {842 1191 //.setpagesize exec} bind def
- /a4 {595 842 //.setpagesize exec} bind def
-% a4small should be a4 with an ImagingBBox of [25 25 570 817].
- /a4small /a4 load def
-% b5 see below.
- /ledger {1224 792 //.setpagesize exec} bind def % 11x17 landscape
- /legal {612 1008 //.setpagesize exec} bind def
- /letter {612 792 //.setpagesize exec} bind def
-% lettersmall should be letter with an ImagingBBox of [25 25 587 767].
- /lettersmall /letter load def
-% note should be letter (or some other size) with the ImagingBBox
-% shrunk by 25 units on all 4 sides.
- /note /letter load def
- % End of Adobe-defined page sizes
-STRICT { (%END SIZES) .skipeof } if
- % Other page sizes
- % ISO standard paper sizes
- /a0 {2384 3370 //.setpagesize exec} bind def
- /a1 {1684 2384 //.setpagesize exec} bind def
- /a2 {1191 1684 //.setpagesize exec} bind def
-% /a3 {842 1191 //.setpagesize exec} bind def % defined by Adobe
-% /a4 {595 842 //.setpagesize exec} bind def % defined by Adobe
- /a5 {420 595 //.setpagesize exec} bind def
- /a6 {297 420 //.setpagesize exec} bind def
- /a7 {210 297 //.setpagesize exec} bind def
- /a8 {148 210 //.setpagesize exec} bind def
- /a9 {105 148 //.setpagesize exec} bind def
- /a10 {73 105 //.setpagesize exec} bind def
-% ISO and JIS B sizes are different....
- /isob0 {2835 4008 //.setpagesize exec} bind def
- /b0 /isob0 load def
- /isob1 {2004 2835 //.setpagesize exec} bind def
- /b1 /isob1 load def
- /isob2 {1417 2004 //.setpagesize exec} bind def
- /b2 /isob2 load def
- /isob3 {1001 1417 //.setpagesize exec} bind def
- /b3 /isob3 load def
- /isob4 {709 1001 //.setpagesize exec} bind def
- /b4 /isob4 load def
- /isob5 {499 709 //.setpagesize exec} bind def
- /b5 /isob5 load def
- /isob6 {354 499 //.setpagesize exec} bind def
- /b6 /isob6 load def
- /jisb0 {2920 4127 //.setpagesize exec} bind def
- /jisb1 {2064 2920 //.setpagesize exec} bind def
- /jisb2 {1460 2064 //.setpagesize exec} bind def
- /jisb3 {1032 1460 //.setpagesize exec} bind def
- /jisb4 {729 1032 //.setpagesize exec} bind def
- /jisb5 {516 729 //.setpagesize exec} bind def
- /jisb6 {363 516 //.setpagesize exec} bind def
- /c0 {2599 3677 //.setpagesize exec} bind def
- /c1 {1837 2599 //.setpagesize exec} bind def
- /c2 {1298 1837 //.setpagesize exec} bind def
- /c3 {918 1298 //.setpagesize exec} bind def
- /c4 {649 918 //.setpagesize exec} bind def
- /c5 {459 649 //.setpagesize exec} bind def
- /c6 {323 459 //.setpagesize exec} bind def
- % U.S. CAD standard paper sizes
- /archE {2592 3456 //.setpagesize exec} bind def
- /archD {1728 2592 //.setpagesize exec} bind def
- /archC {1296 1728 //.setpagesize exec} bind def
- /archB {864 1296 //.setpagesize exec} bind def
- /archA {648 864 //.setpagesize exec} bind def
- % Other paper sizes
- /flsa {612 936 //.setpagesize exec} bind def % U.S. foolscap
- /flse {612 936 //.setpagesize exec} bind def % European foolscap
- /halfletter {396 612 //.setpagesize exec} bind def
-% /tabloid {792 1224 //.setpagesize exec} bind def % 11x17 portrait
-% /csheet {1224 1584 //.setpagesize exec} bind def % ANSI C 17x22
-% /dsheet {1584 2448 //.setpagesize exec} bind def % ANSI D 22x34
-% /esheet {2448 3168 //.setpagesize exec} bind def % ANSI E 34x44
-%END SIZES
-end
-currentdict /.setpagesize .undef
-
-statusdict begin
-
-% Define the pagetype values for the known page formats.
-% The values for all but letter and note are arbitrary.
-/.pagetypenames
- { /letter /note %do not change this line, needed by 'setpagetype'
- /legal /lettersmall
- /11x17 /ledger
- /a4small /a3 /a4
-STRICT { (%END SIZES) .skipeof } if
- /a0 /a1 /a2 /a5 /a6 /a7 /a8 /a9 /a10
- /archA /archB /archC /archD /archE
- /b0 /b1 /b2 /b3 /b4 /b5 /b6
- /c0 /c1 /c2 /c3 /c4 /c5 /c6
- /flsa /flse /halfletter
- /isob0 /isob1 /isob2 /isob3 /isob4 /isob5 /isob6
- /jisb0 /jisb1 /jisb2 /jisb3 /jisb4 /jisb5 /jisb6
-%END SIZES
- } cvlit readonly def
-
-%%%%%% The following items were suggested by a user as useful.
-
-% Permanent definitions
-
-/ramsize 4194304 def
-/hardwareiomode 0 def
- /sethardwareiomode {pop} bind def
-/softwareiomode 0 def
- /setsoftwareiomode {pop} bind def
-/dosysstart false def
- /setdosysstart {pop} bind def
-/allowjobreset true def
- /setallowjobreset {pop} bind def
-/defaultpaperfamily 0 def
- /setdefaultpaperfamily {pop} bind def
-/defaultpapertray 0 def
- /setdefaultpapertray {pop} bind def
-/defaulttrayswitch false def
- /setdefaulttrayswitch {pop} bind def
-
-% Tray and format selection
-
- /11x17tray {/11x17 .uservar exec} bind def
- /a3tray {/a3 .uservar exec} bind def
- /a4tray {/a4 .uservar exec} bind def
- /a5tray {/a5 .uservar exec} bind def
- /a6tray {/a6 .uservar exec} bind def
- /b4tray {/b4 .uservar exec} bind def
- /b5tray {/b5 .uservar exec} bind def
- /flsatray {/flsa .uservar exec} bind def
- /flsetray {/flse .uservar exec} bind def
- /halflettertray {/halfletter .uservar exec} bind def
- /ledgertray {/ledger .uservar exec} bind def
- /legaltray {/legal .uservar exec} bind def
- /lettertray {/letter .uservar exec} bind def
-
-% Per-job parameters
-
-/paperfamily 0 def % 0 is US, 1 is European
-/papertray 1 def
- /setpapertray {statusdict exch /papertray exch put} bind def
-/trayswitch false def % paperout feeds from another tray
-% We don't implement the (undocumented by Adobe) papersize 'operator',
-% because it's very awkward to make it interact properly with all the
-% different ways of setting the paper size.
-%/papersize {/letter true} bind def % <name of paper size>, <short-edge-first-p>
-/appletalktype (LaserWriter) def
-
-%%%%%% The following items are defined in the PostScript Language
-%%%%%% Reference Manual, First Edition, and subsequent 'compatibility'
-%%%%%% documentation from Adobe.
-
- /checkpassword {statusdict begin .password eq end} bind def
- /defaulttimeouts {statusdict begin .timeouts aload pop end} bind def
- /diskonline {
- false (%disk*%) { pop not exit } 100 string /IODevice resourceforall
- } bind def
-%/dostartpage
- /eescratch {pop 0} bind def
- /idlefonts {statusdict begin mark .idlefonts aload pop end} bind def
- /jobname () def
-%/jobtimeout
- /manualfeed false def
- /manualfeedtimeout 60 def
- /margins {statusdict begin .topmargin .leftmargin end} bind def
- /pagecount {4711} bind def
- /pagestackorder {false} bind def
- /pagetype 0 def
- /prefeed false def
- /printererror {pop pop} bind def
- /printername {statusdict /.printername get exch copy} bind def
- /processcolors /processcolors load def % defined in systemdict
- /product product def % product is defined in systemdict
- /revision revision def % revision is defined in systemdict
- /sccbatch {pop 9600 0} bind def
- /sccinteractive {pop 9600 0} bind def
- /setdefaulttimeouts {statusdict begin .timeouts astore pop end} bind def
- /setdostartpage {statusdict exch /dostartpage exch put} bind def
- /setduplexmode {mark /Duplex 3 -1 roll currentdevice putdeviceprops} bind def
- /seteescratch {pop pop} bind def
- /setidlefonts {] statusdict exch /.idlefonts exch put} bind def
- /setjobtimeout {statusdict exch /jobtimeout exch put} bind def
- /setmargins
- { statusdict begin
- /.leftmargin exch def /.topmargin exch def
- end
- } bind def
-
-% The following compatibility operators are only documented by Adobe in a
-% supplement to the Red Book.
-%
-% - pagemargin <offset>
-% - pageparams <width> <height> <offset> <orientation>
-% <width> <height> <orientation> setpage -
-% <offset> setpagemargin -
-% <width> <height> <offset> <orientation> setpageparams -
-%
-% width and height are in default units (and if orientation is odd, are
-% exchanged!). offset is the x margin, also in default units.
-% Unfortunately, because orientation is relative to the device paper feed,
-% it does not have a consistent meaning in terms of image orientation.
-% We follow the convention that ORIENT1 determines the orientation value
-% that means portait: false means 0, true means 1.
-
- /pagemargin { 0 } bind def
- /pageparams
- { currentdevice 1 dict dup /.MediaSize dup put .getdeviceparams
- exch pop exch pop aload pop 0 ORIENT1 { 1 } { 0 } ifelse
- } bind def
- /setpage
- { ORIENT1 { 1 } { 0 } ifelse ne {exch} if
- statusdict /.setpagesize get exec
- } bind def
- /setpagemargin {pop} bind def % can't do better without setpagedevice
- /setpageparams
- { exch pop ORIENT1 { 1 } { 0 } ifelse ne {exch} if
- statusdict /.setpagesize get exec
- } bind def
- /setpagetype
- { statusdict begin
- % The Adobe documentation only defines setpagetype
- % (a Level 1 operator) as accepting the values 0 and 1,
- % so we do too.
- dup .pagetypenames 0 2 getinterval exch get //systemdict exch get exec
- /pagetype exch def
- end
- } bind def
- /setpassword
- {exch checkpassword
- {statusdict exch /.password exch put true}
- {pop false}
- ifelse} bind def
- /setprintername
- {dup length string copy statusdict exch /.printername exch put} bind def
-
-% setresolution is not documented by Adobe, but some applications
-% use it anyway, without testing whether or not it is present.
-%
-% <pixels_per_inch> setresolution -
-%
-% sets the resolution of the device.
-
- /setresolution
- { mark /HWResolution [ 4 -1 roll dup ] currentdevice putdeviceprops pop
- initmatrix erasepage
- } bind def
- /setsccbatch {pop pop pop} bind def
- /setsccinteractive {pop pop pop} bind def
- /settumble {pop} bind def
- /waittimeout 300 def
-
-%%%%%% End of documented items.
-
-/.setpagesize
- { mark /HWSize [
- 4 index 4 index matrix defaultmatrix dtransform
- abs ceiling cvi exch abs ceiling cvi exch
- ] currentdevice putdeviceprops pop pop pop
- initmatrix initclip erasepage
- } bind def
-/.password 0 def
-/.timeouts [0 60 30] def
-true setdostartpage
-mark setidlefonts
-0 setjobtimeout
-0 0 setmargins
-product setprintername
-
-end % statusdict
-
-%%%%%% The following documented compatibility "operators" are in systemdict,
-%%%%%% not in statusdict.
-
-systemdict begin
-.currentglobal true .setglobal
-
-/devforall { % <pattern> <proc> <scratch> devforall -
- exch {
- 1 index currentdevparams
- /Type .knownget { /FileSystem eq } { false } ifelse
- { exec } { pop pop } ifelse
- } /exec load 3 packedarray cvx exch
- (*) 3 1 roll /IODevice resourceforall
-} odef
-
-/devstatus { % <(%disk*%)> devstatus <searchable> <writable>
- % <hasNames> <mounted> <removable> <searchOrder>
- % <freePages> <size> true
- % <string> devstatus false
- dup length 5 ge {
- dup 0 5 getinterval (%disk) eq {
- dup /IODevice resourcestatus {
- pop pop dup currentdevparams
- dup /Searchable get
- exch dup /Writeable get
- exch dup /HasNames get
- exch dup /Mounted get
- exch dup /Removable get
- exch dup /SearchOrder get
- exch dup /Free get
- exch /LogicalSize get
- 9 -1 roll pop true
- } {
- pop false
- } ifelse
- } {
- pop false
- } ifelse
- } {
- pop false
- } ifelse
-} odef
-
-.setglobal end % systemdict
-
-% The following contents of serverdict are a complete guess,
-% based on some observed LaserWriter boilerplate.
-
-serverdict begin
-
- /execjob { } bind def
-% The Red Book implies that something like the following is
-% an appropriate definition of exitserver.
- /exitserver { clear stop } bind def
-% However, this interacts badly with our standard error handler,
-% so we override it with the following less appropriate definition.
- /exitserver { 0 ne { clear cleardictstack } if } bind def
- /setrealdevice { } bind def
-
-end % serverdict
diff --git a/Master/xemtex/gslib/gs_std_e.ps b/Master/xemtex/gslib/gs_std_e.ps
deleted file mode 100644
index 6dec0db3a65..00000000000
--- a/Master/xemtex/gslib/gs_std_e.ps
+++ /dev/null
@@ -1,74 +0,0 @@
-% Copyright (C) 1993, 1994 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_std_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the standard encoding vector.
-/StandardEncoding
-% \00x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-% \04x
- /space /exclam /quotedbl /numbersign
- /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus
- /comma /hyphen /period /slash
- /zero /one /two /three
- /four /five /six /seven
- /eight /nine /colon /semicolon
- /less /equal /greater /question
-% \10x
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
-% \14x
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
-% \20x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-% \24x
- /.notdef /exclamdown /cent /sterling
- /fraction /yen /florin /section
- /currency /quotesingle /quotedblleft /guillemotleft
- /guilsinglleft /guilsinglright /fi /fl
- /.notdef /endash /dagger /daggerdbl
- /periodcentered /.notdef /paragraph /bullet
- /quotesinglbase /quotedblbase /quotedblright /guillemotright
- /ellipsis /perthousand /.notdef /questiondown
-% \30x
- /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
- /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
- /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-% \34x
- /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef
- /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef
- /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef
- /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef
-% Make an array on large systems, a packed array on small ones.
-256
-vmstatus exch pop exch pop
-100000 ge { array astore readonly } { packedarray } ifelse
-def
-0 StandardEncoding .registerencoding
-/StandardEncoding StandardEncoding .defineencoding
diff --git a/Master/xemtex/gslib/gs_sym_e.ps b/Master/xemtex/gslib/gs_sym_e.ps
deleted file mode 100644
index 75581831f5a..00000000000
--- a/Master/xemtex/gslib/gs_sym_e.ps
+++ /dev/null
@@ -1,84 +0,0 @@
-% Copyright (C) 1991, 1994, 1998, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_sym_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Symbol encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/SymbolEncoding
-% \000
- StandardEncoding 0 32 getinterval aload pop % /.notdef
-% \040
- /space /exclam /universal /numbersign
- /existential /percent /ampersand /suchthat
- /parenleft /parenright /asteriskmath /plus
- /comma /minus /period /slash
- /zero /one /two /three
- /four /five /six /seven
- /eight /nine /colon /semicolon
- /less /equal /greater /question
-% \100
- /congruent /Alpha /Beta /Chi
- /Delta /Epsilon /Phi /Gamma
- /Eta /Iota /theta1 /Kappa
- /Lambda /Mu /Nu /Omicron
- /Pi /Theta /Rho /Sigma
- /Tau /Upsilon /sigma1 /Omega
- /Xi /Psi /Zeta /bracketleft
- /therefore /bracketright /perpendicular /underscore
-% \140
- /radicalex /alpha /beta /chi
- /delta /epsilon /phi /gamma
- /eta /iota /phi1 /kappa
- /lambda /mu /nu /omicron
- /pi /theta /rho /sigma
- /tau /upsilon /omega1 /omega
- /xi /psi /zeta /braceleft
- /bar /braceright /similar /.notdef
-% \200
- StandardEncoding 0 32 getinterval aload pop % /.notdef
-% \240
- /Euro /Upsilon1 /minute /lessequal
- /fraction /infinity /florin /club
- /diamond /heart /spade /arrowboth
- /arrowleft /arrowup /arrowright /arrowdown
- /degree /plusminus /second /greaterequal
- /multiply /proportional /partialdiff /bullet
- /divide /notequal /equivalence /approxequal
- /ellipsis /arrowvertex /arrowhorizex /carriagereturn
-% \300
- /aleph /Ifraktur /Rfraktur /weierstrass
- /circlemultiply /circleplus /emptyset /intersection
- /union /propersuperset /reflexsuperset /notsubset
- /propersubset /reflexsubset /element /notelement
- /angle /gradient /registerserif /copyrightserif
- /trademarkserif /product /radical /dotmath
- /logicalnot /logicaland /logicalor /arrowdblboth
- /arrowdblleft /arrowdblup /arrowdblright /arrowdbldown
-% \340
- /lozenge /angleleft /registersans /copyrightsans
- /trademarksans /summation /parenlefttp /parenleftex
- /parenleftbt /bracketlefttp /bracketleftex /bracketleftbt
- /bracelefttp /braceleftmid /braceleftbt /braceex
- /.notdef /angleright /integral /integraltp
- /integralex /integralbt /parenrighttp /parenrightex
- /parenrightbt /bracketrighttp /bracketrightex /bracketrightbt
- /bracerighttp /bracerightmid /bracerightbt /.notdef
-256 packedarray .defineencoding
-2 SymbolEncoding .registerencoding
-exec
diff --git a/Master/xemtex/gslib/gs_t.xbm b/Master/xemtex/gslib/gs_t.xbm
deleted file mode 100644
index e35c2b7acb8..00000000000
--- a/Master/xemtex/gslib/gs_t.xbm
+++ /dev/null
@@ -1,8 +0,0 @@
-#define gs_t.xbm_width 16
-#define gs_t.xbm_height 16
-#define gs_t.xbm_x_hot 0
-#define gs_t.xbm_y_hot 0
-static unsigned char gs.t.bm_bits[] = {
- 0x00, 0x10, 0x00, 0x20, 0x00, 0x68, 0xf0, 0x67, 0xfc, 0x61, 0x7e, 0x70,
- 0x1f, 0xf9, 0x4f, 0xfd, 0x4f, 0xfc, 0x0f, 0xf8, 0x1f, 0xf3, 0x1e, 0xe3,
- 0x3e, 0x60, 0x7c, 0x30, 0x70, 0x0c, 0x1e, 0x00};
diff --git a/Master/xemtex/gslib/gs_t.xpm b/Master/xemtex/gslib/gs_t.xpm
deleted file mode 100644
index 8b587ecd69d..00000000000
--- a/Master/xemtex/gslib/gs_t.xpm
+++ /dev/null
@@ -1,28 +0,0 @@
-/* XPM */
-static char * gs_t_xpm[] = {
-/* width height ncolors cpp [x_hot y_hot] */
-"16 16 6 1 0 0",
-/* colors */
-" s none m none c none",
-". s iconColor1 m black c black",
-"X s iconColor2 m white c white",
-"o c #808080808080",
-"O c #C0C0C0C0C0C0",
-"+ c #00000000FFFF",
-/* pixels */
-" . ",
-" X. ",
-" .X.o ",
-" o......XX.. ",
-" .......OXXX.. ",
-" ......XXXXXo.. ",
-"o....XXX+XX.....",
-"....XX+X+Xo.....",
-"....XX+XXXo.....",
-"....XXXXXXX.....",
-"o...oXXX++XX....",
-" ....XXX++XXX..o",
-" ....oXXXXXXX.. ",
-" .....XXXXX.. ",
-" ...XXXoo ",
-" o...XXXXXXX "};
diff --git a/Master/xemtex/gslib/gs_t_m.xbm b/Master/xemtex/gslib/gs_t_m.xbm
deleted file mode 100644
index 3cfe6237bc5..00000000000
--- a/Master/xemtex/gslib/gs_t_m.xbm
+++ /dev/null
@@ -1,8 +0,0 @@
-#define gs_t_m.xbm_width 16
-#define gs_t_m.xbm_height 16
-#define gs_t_m.xbm_x_hot 0
-#define gs_t_m.xbm_y_hot 0
-static unsigned char gs.t_m.bm_bits[] = {
- 0x00, 0x10, 0x00, 0x30, 0x00, 0x78, 0xf0, 0x7f, 0xfc, 0x7f, 0xfe, 0x7f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff,
- 0xfe, 0x7f, 0xfc, 0x3f, 0xf0, 0x0f, 0xfe, 0x0f};
diff --git a/Master/xemtex/gslib/gs_trap.ps b/Master/xemtex/gslib/gs_trap.ps
deleted file mode 100644
index a3d37d3bd3f..00000000000
--- a/Master/xemtex/gslib/gs_trap.ps
+++ /dev/null
@@ -1,104 +0,0 @@
-% Copyright (C) 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_trap.ps,v 1.3.6.2.2.1 2003/04/12 14:02:38 giles Exp $
-% PostScript LanguageLevel 3 in-RIP trapping support.
-
-ll3dict begin
-
-% We need LanguageLevel 2 or higher in order to have setuserparams and
-% defineresource.
-languagelevel dup 2 .max .setlanguagelevel
-
-% ------ Trapping ------ %
-
-% The PostScript-level trapping parameters are maintained in userdict,
-% and explicitly reinstalled upon restore.
-
-/Trapping mark
-
-/settrapparams dup { % <paramdict> settrapparams -
- /.trapparams .uservar dup length dict .copydict
- dup 2 index {
- % Stack: paramdict olddict olddict key value
- 2 index 2 index known { put dup } { pop pop } ifelse
- } forall pop
- dup .settrapparams % Let the operator check parameter validity.
- .userdict /.trapparams 3 -1 roll put pop
-} bind .makeoperator
-
-/.copyparams { % <obj> .copyparams <obj'>
- dup type /dicttype eq {
- dup length dict .copydict
- dup {
- .copyparams 3 copy put pop pop
- } forall
- } {
- dup type /arraytype eq {
- [ exch { .copyparams } forall ]
- } if
- } ifelse
-} odef
-
-/currenttrapparams dup { % - currenttrapparams <paramdict>
- /.trapparams .uservar .copyparams
-} bind .makeoperator
-
-/settrapzone dup { % - settrapzone -
- % ****** DUMMY ******
- newpath
-} bind .makeoperator
-
-% Define initial (dummy) trapping parameters.
-% These values are mostly complete guesses.
-userdict /.trapparams mark
- /BlackColorLimit 1.0
- /BlackDensityLimit 1.0
- /BlackWidth 1.0
- /ColorantZoneDetails 0 dict
- /Enabled true
- /HalftoneName null
- /ImageInternalTrapping false
- /ImagemaskTrapping true
- /ImageResolution 1
- /ImageToObjectTrapping true
- /ImageTrapPlacement /Center
- /SlidingTrapLimit 1.0
- /StepLimit 1.0
- /TrapColorScaling 0.0
- /TrapSetName null
- /TrapWidth 1.0
-.dicttomark readonly put
-
-.dicttomark /ProcSet defineresource pop
-
-% Define the InkParams and TrapParams resource categories.
-{ /InkParams /TrapParams } {
- /Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /dicttype def
- currentdict end /Category defineresource pop
-} forall
-
-% Define the TrappingType resource category.
-/Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /integertype def
-/TrappingType currentdict end /Category defineresource pop
-
-{1001} { dup /TrappingType defineresource pop } forall
-
-.setlanguagelevel
-
-end % ll3dict
diff --git a/Master/xemtex/gslib/gs_ttf.ps b/Master/xemtex/gslib/gs_ttf.ps
deleted file mode 100644
index 3d3a6ba1f1b..00000000000
--- a/Master/xemtex/gslib/gs_ttf.ps
+++ /dev/null
@@ -1,1789 +0,0 @@
-% Copyright (C) 1996, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_ttf.ps,v 1.9.2.4.2.1 2003/04/12 14:02:38 giles Exp $
-% Support code for direct use of TrueType fonts.
-% (Not needed for Type 42 fonts.)
-
-% Note that if you want to use this file without including the ttfont.dev
-% option when you built Ghostscript, you will need to load the following
-% files before this one:
-% lib/gs_mgl_e.ps
-% lib/gs_mro_e.ps
-% lib/gs_wan_e.ps
-
-% Thanks to B. Jackowski and GUST (the Polish TeX Users' Group) for
-% the glyf-splitting code.
-
-[
- /TTCMAP_DEBUG
- /TTCMAP2_DEBUG
-] {dup where {pop pop} { currentdict exch false def pop } ifelse} forall
-
-
-% ---------------- Font loading machinery ---------------- %
-
-% Augment the FONTPATH machinery so it recognizes TrueType fonts.
-
-/.scanfontheaders where {
- pop /.scanfontheaders [
- .scanfontheaders aload pop (\000\001\000\000*) (true*)
- ] def
-} if
-
-% <file> <key> .findfontvalue <value> true
-% <file> <key> .findfontvalue false
-% Closes the file in either case.
-/.findnonttfontvalue /.findfontvalue load def
-/.findfontvalue {
- 1 index read pop 2 index 1 index unread
- dup 0 eq exch (t) 0 get eq or {
- % If this is a font at all, it's a TrueType font.
- dup /FontType eq {
- pop closefile 42 true
- } {
- dup /FontName eq { pop .findttfontname } { pop closefile false } ifelse
- } ifelse
- } {
- % Not a TrueType font.
- .findnonttfontvalue
- } ifelse
-} bind def
-
-% <file> .findttfontname <fname> true
-% <file> .findttfontname false
-% Closes the file in either case.
-/.findttfontname {
- .loadttfonttables
- tabdict /name .knownget {
- dup 8 getu32 f exch setfileposition
- 12 getu32 string f exch readstring pop
- 6 findname
- } {
- false
- } ifelse
- f closefile end end
-} bind def
-
-% Load a font file that might be a TrueType font.
-
-% <file> .loadfontfile -
-/.loadnonttfontfile /.loadfontfile load def
-/.loadfontfile {
- dup read pop 2 copy unread 0 eq {
- % If this is a font at all, it's a TrueType font.
- .loadttfont pop
- } {
- % Not a TrueType font.
- .loadnonttfontfile
- } ifelse
-} bind def
-
-% ---------------- Automatic Type 42 generation ---------------- %
-
-% Load a TrueType font from a file as a Type 42 PostScript font.
-% The thing that makes this really messy is the handling of encodings.
-% There are 2 interacting tables that affect the encoding:
-% 'cmap' provides multiple maps from character codes to glyph indices
-% 'post' maps glyph indices to glyph names (if present)
-% What we need to get out of this is:
-% Encoding mapping character codes to glyph names
-% (the composition of cmap and post)
-% CharStrings mapping glyph names to glyph indices
-% (the inverse of post)
-% If the post table is missing, we have to take a guess based on the cmap
-% table.
-
-/.loadttfontdict 50 dict dup begin
-
-/orgXUID AladdinEnterprisesXUID def
-/maxstring 32000 def % half the maximum length of a PostScript string,
- % must be a multiple of 4 (for hmtx / loca / vmtx)
-
-% Define the Macintosh standard mapping from characters to glyph indices.
-/MacRomanEncoding dup .findencoding def
-/MacGlyphEncoding dup .findencoding def
-
-% Invert the MacRomanEncoding.
-/.romanmacdict 300 dict
-0 1 MacRomanEncoding length 1 sub {
- MacRomanEncoding 1 index get
- % Stack: dict index charname
- dup /.notdef ne {
- exch 2 index 2 index .knownget {
- dup type /arraytype eq {
- [ exch aload pop counttomark 2 add -1 roll ]
- } {
- exch 2 array astore
- } ifelse
- } if 2 index 3 1 roll put
- } {
- pop pop
- } ifelse
-} for def
-
-% Define remapping for misnamed glyphs in TrueType 'post' tables.
-% There are probably a lot more than this!
-/postremap mark
- /Cdot /Cdotaccent
- /Edot /Edotaccent
- /Eoverdot /Edotaccent
- /Gdot /Gdotaccent
- /Ldot /Ldotaccent
- /Zdot /Zdotaccent
- /cdot /cdotaccent
- /edot /edotaccent
- /eoverdot /edotaccent
- /gdot /gdotaccent
- /ldot /ldotaccent
- /zdot /zdotaccent
-.dicttomark readonly def
-
-% ---- Utilities ---- %
-
-% Define a serial number for creating unique XUIDs for TrueType fonts.
-% We used to use the checkSumAdjustment value from the font, but this is
-% not reliable, since some fonts don't set it correctly.
-% Note that we must do this in a string to make it immune to save/restore.
-/xuidstring <80000000> def
-/curxuid { % - curxuid <int>
- 0 xuidstring { exch 8 bitshift exch add } forall
-} bind def
-/nextxuid { % - nextxuid -
- 3 -1 0 {
- xuidstring 1 index 2 copy get dup 255 ne {
- 1 add put pop exit
- } if pop 0 put pop
- } for
-} bind def
-
-% <string> <index> getu16 <integer>
-/getu16 {
- 2 copy get 8 bitshift 3 1 roll 1 add get add
-} bind def
-
-% <string> <index> gets16 <integer>
-/gets16 {
- getu16 16#8000 xor 16#8000 sub
-} bind def
-
-% <string> <index> getu32 <integer>
-/getu32 {
- 2 copy getu16 16 bitshift 3 1 roll 2 add getu16 add
-} bind def
-
-% <string> <index> gets32 <integer>
-/gets32 {
- 2 copy gets16 16 bitshift 3 1 roll 2 add getu16 add
-} bind def
-
-% <string> <index> <integer> putu16 -
-/putu16 {
- 3 copy -8 bitshift put
- exch 1 add exch 16#ff and put
-} bind def
-
-% <string> <index> <integer> putu32 -
-/putu32 {
- 3 copy -16 bitshift putu16
- exch 2 add exch 16#ffff and putu16
-} bind def
-
-% <string> .strtoint <integer>
-/.strtoint {
- 0 exch { exch 8 bitshift add } forall
-} bind def
-
-% <nametable> <nameid> findname <string> true
-% <nametable> <nameid> findname false
-/findname {
- DEBUG { (findname: ) print dup =only } if
- false 3 1 roll 0 1 3 index 2 getu16 1 sub {
- % Stack: false table id index
- 12 mul 6 add 2 index exch 12 getinterval
- dup 6 getu16 2 index eq {
- % We found the name we want.
- exch pop
- % Stack: false table record
- dup 10 getu16 2 index 4 getu16 add
- 1 index 8 getu16 4 -1 roll 3 1 roll getinterval exch
- % Stack: false string record
- % Check for 8- vs. 16-bit characters.
- is2byte { string2to1 } if true null 4 -1 roll exit
- } if pop
- } for pop pop
- DEBUG {
- dup { ( = ) print 1 index == } { ( not found) = } ifelse
- } if
-} bind def
-
-% <namerecord> is2byte <bool>
-/is2byte {
- dup 0 getu16 {
- { pop true } % Apple Unicode
- { pop false } % Macintosh Script manager
- { 1 getu16 1 eq } % ISO
- { 1 getu16 1 eq } % Microsoft
- } exch get exec
-} bind def
-
-% <string2> string2to1 <string>
-/string2to1 {
- dup length 2 idiv string dup
- 0 1 3 index length 1 sub {
- 3 index 1 index 2 mul 1 add get put dup
- } for pop exch pop
-} bind def
-
-% <array> <lt-proc> sort <array>
-/sort {
- 1 index length 1 sub -1 1 {
- 2 index exch 2 copy get 3 copy % arr proc arr i arr[i] arr i arr[i]
- 0 1 3 index 1 sub {
- 3 index 1 index get % arr proc arr i arr[i] arr imax amax j arr[j]
- 2 index 1 index 10 index exec { % ... amax < arr[j]
- 4 2 roll
- } if pop pop
- } for % arr proc arr i arr[i] arr imax amax
- 4 -1 roll exch 4 1 roll put put
- } for pop
-} def
-
-% <array|string> <index> <count> .safegetinterval <subarray|substring>
-/.safegetinterval {
- exch 2 index length .min exch
- 2 index length 2 index sub .min
- getinterval
-} bind def
-
-% <array> <index> <obj> .safeput -
-/.safeput {
- 2 index length 2 index gt { put } { pop pop pop } ifelse
-} bind def
-
-% Each procedure in this dictionary is called as follows:
-% <encodingtable> proc <glypharray>
-/cmapformats mark
- 0 { % Apple standard 1-to-1 mapping.
- 6 256 getinterval { } forall 256 packedarray
- } bind
- 2 { % Apple 16bit CJK (ShiftJIS etc)
-
- % /sHK_sz subHeaderKey_size % 1 * uint16
- % /sH_sz subHeader_size % 4 * uint16
- % /sH_len subHeader_length
- % /cmapf2_tblen total table length
- % /cmapf2_lang language code (not used)
- % /sHKs subHeaderKeys
-
- /sHK_sz 2 def
- /sH_sz 8 def
- dup 2 getu16 /cmapf2_tblen exch def
-
- TTCMAP2_DEBUG {
- (format2 table length: 0x) print
- cmapf2_tblen 16 10 string cvrs print
- (=) print
- cmapf2_tblen == flush
- } if
- dup 4 getu16 /cmapf2_lang exch def
-
- TTCMAP2_DEBUG {
- (format2 lang code: 0x) print
- cmapf2_lang 16 10 string cvrs == flush
- } if
- dup 6 256 sHK_sz mul getinterval /sHKs exch def
- TTCMAP2_DEBUG {
- (format2 subHeaderKeys: ) print
- sHKs == flush
- (scan subHeaderKeys\n) print flush
- } if
-
- 0 % initialization value for /sH_len
- 0 1 255 {
- TTCMAP2_DEBUG {
- (hi byte ) =only
- dup 16 10 string cvrs =only
- (-> subHeader #) print
- flush
- } if
- sHKs exch
- 2 mul getu16
- TTCMAP2_DEBUG {
- dup 16 10 string cvrs =only
- ( ) print dup == flush
- } if
- 1 index % get current max
- 1 index % get current subHeaderKey
- lt {exch} if pop
- } for
- /sH_len exch def
-
- TTCMAP2_DEBUG {
- (format2 subHeader length: ) print
- sH_len ==
- flush
- } if
- dup 6 256 sHK_sz mul add
- cmapf2_tblen 1 index sub getinterval
- /sH_gIA exch def
- TTCMAP2_DEBUG {
- (format2 subHeaders + GID array: ) print
- sH_gIA ==
- } if
-
- /cmapf2_glyph_array 65535 array def
-
- /.cmapf2_putGID {
- /cmapf2_ch cmapf2_ch_hi 8 bitshift cmapf2_ch_lo add def
- TTCMAP2_DEBUG {
- (code: ) =only cmapf2_ch 16 4 string cvrs =only
- ( -> ) =only
- } if
- firstCode cmapf2_ch_lo le
- cmapf2_ch_lo firstCode entryCount add lt
- and { % true: j is inside
- sH_offset idRangeOffset add % offset to gI
- cmapf2_ch_lo firstCode sub 2 mul % rel. pos. in range
- add 6 add % offset in sH_gIA
- sH_gIA exch getu16
- dup 0 gt { %
- TTCMAP2_DEBUG {
- dup 16 8 string cvrs =only
- (+) =only idDelta 16 8 string cvrs =only
- } if
- idDelta add
- TTCMAP2_DEBUG {
- (=) =only dup 16 8 string cvrs == flush
- } if
- cmapf2_glyph_array exch cmapf2_ch exch put
- } {
- TTCMAP2_DEBUG {(specified 0: 0\n) print flush} if
- pop
- % cmapf2_glyph_array cmapf2_ch 0 put
- } ifelse
- } { % false: j is outside
- TTCMAP2_DEBUG {(outside of range: 0\n) print flush} if
- % cmapf2_glyph_array cmapf2_ch 0 put
- } ifelse
- } def
-
- 16#00 1 16#ff { % hi_byte scan
- /cmapf2_ch_hi exch def
- sHKs cmapf2_ch_hi sHK_sz mul getu16
- TTCMAP2_DEBUG {
- (subHeader_offset = idx * 8 = ) print
- dup ==
- } if
- /sH_offset exch def
- sH_gIA sH_offset sH_sz getinterval
- dup 0 getu16 /firstCode exch def
- dup 2 getu16 /entryCount exch def
- dup 4 gets16 /idDelta exch def
- dup 6 getu16 /idRangeOffset exch def
- pop
- TTCMAP2_DEBUG {
- (idRangeOffset: ) print idRangeOffset 16 8 string cvrs ==
- } if
- sH_offset 0 eq {
- /cmapf2_ch_lo cmapf2_ch_hi def
- /cmapf2_ch_hi 0 def
- .cmapf2_putGID
- } {
- 16#00 1 16#ff { % lo_byte scan
- /cmapf2_ch_lo exch def
- .cmapf2_putGID
- } for
- } ifelse
- } for
- pop
- 0 1 cmapf2_glyph_array length 1 sub { % rewrite null -> 0.
- % TTCMAP2_DEBUG { (rewriting null: ) print dup == flush } if
- dup cmapf2_glyph_array exch get
- null eq { cmapf2_glyph_array exch 0 put } {pop} ifelse
- } for
- TTCMAP2_DEBUG { (rewriting finished\n) print flush } if
- cmapf2_glyph_array
- TTCMAP2_DEBUG {
- 16#0000 16#0010 16#fff0 {
- 16#0000 16#0001 16#000f {
- 1 index add dup 16#ffff lt {
- 2 index exch get =only
- ( ) =only
- } { pop } ifelse
- } for
- pop
- (\n) print flush
- } for
- } if
- } bind
- 4 { % Microsoft/Adobe segmented mapping.
- /etab exch def
- /nseg2 etab 6 getu16 def
- 14 /endc etab 2 index nseg2 getinterval def
- % The Apple TrueType documentation omits the 2-byte
- % 'reserved pad' that follows the endCount vector!
- 2 add
- nseg2 add /startc etab 2 index nseg2 getinterval def
- nseg2 add /iddelta etab 2 index nseg2 getinterval def
- nseg2 add /idroff etab 2 index nseg2 getinterval def
- % The following hack allows us to properly handle
- % idiosyncratic fonts that start at 0xf000:
- pop
- /firstcode startc 0 getu16 16#ff00 and dup 16#f000 ne { pop 0 } if def
- /putglyph {
- glyphs code 3 -1 roll put /code code 1 add def
- } bind def
- % Do a first pass to compute the size of the glyphs array.
- /numcodes 0 def /glyphs 0 0 2 nseg2 3 sub {
- % Stack: /glyphs numglyphs i2
- /i2 exch def
- /scode startc i2 getu16 def
- /ecode endc i2 getu16 def
- numcodes scode firstcode sub
- % Hack for fonts that have only 0x0000 and 0xf000 ranges
- %dup 16#e000 ge { 255 and } if
- % the previous line is obstructive to CJK fonts, so it was removed
- exch sub 0 .max ecode scode sub 1 add add
- exch 1 index add exch
- numcodes add /numcodes exch def
- } for array def
- % Now fill in the array.
- /numcodes 0 def /code 0 def
- 0 2 nseg2 3 sub {
- /i2 exch def
- /scode startc i2 getu16 def
- /ecode endc i2 getu16 def
- numcodes scode firstcode sub
- % Hack for fonts that have only 0x0000 and 0xf000 ranges
- %dup 16#e000 ge { 255 and } if
- % the previous line is obstructive to CJK fonts, so it was removed
- exch sub 0 .max dup { 0 putglyph } repeat
- ecode scode sub 1 add add numcodes add /numcodes exch def
- /delta iddelta i2 gets16 def
- DEBUG {
- (scode=) print scode =only
- ( ecode=) print ecode =only
- ( delta=) print delta =only
- ( droff=) print idroff i2 getu16 =
- } if
- idroff i2 getu16 dup 0 eq {
- pop scode delta add 65535 and 1 ecode delta add 65535 and
- { putglyph } for
- } { % The +2 is for the 'reserved pad'.
- /gloff exch 14 nseg2 3 mul add 2 add i2 add add def
- 0 1 ecode scode sub {
- 2 mul gloff add etab exch getu16
- dup 0 ne { delta add 65535 and } if putglyph
- } for
- } ifelse
- } for glyphs /glyphs null def % for GC
- } bind
- 6 { % Single interval lookup.
- dup 6 getu16 /firstcode exch def dup 8 getu16 /ng exch def
- firstcode ng add array
- % Stack: tab array
- % Fill elements 0 .. firstcode-1 with 0
- 0 1 firstcode 1 sub { 2 copy 0 put pop } for
- dup firstcode ng getinterval
- % Stack: tab array subarray
- % Fill elements firstcode .. firstcode+nvalue-1 with glyph values
- 0 1 ng 1 sub {
- dup 2 mul 10 add 4 index exch getu16 3 copy put pop pop
- } for pop exch pop
- } bind
-.dicttomark readonly def % cmapformats
-
-% <cmaptab> cmaparray <glypharray>
-/cmaparray {
- dup 0 getu16
-
- cmapformats exch .knownget {
- DEBUG {
- (cmap: format ) print 1 index 0 getu16 = flush
- } if exec
- } {
- (Can't handle format ) print 0 getu16 = flush
- 0 1 255 { } for 256 packedarray
- } ifelse
- DEBUG {
- (cmap: length=) print dup length = dup ==
- } if
-} bind def
-
-% Each procedure in this dictionary is called as follows:
-% posttable <<proc>> glyphencoding
-/postformats mark
- 16#00010000 { % 258 standard Macintosh glyphs.
- pop MacGlyphEncoding
- }
- 16#00020000 { % Detailed map, required by Microsoft fonts.
- /postglyphs exch def
- postglyphs 32 getu16 /numglyphs exch def
- /glyphnames numglyphs 2 mul 34 add def
- [ 0 1 numglyphs 1 sub {
- 2 mul 34 add postglyphs exch getu16
- dup 258 lt {
- MacGlyphEncoding exch get
- } {
- dup 32768 ge {
- % According to the published TrueType spec, such values are
- % "reserved for future use", but at least some PDF files
- % produced by the Adobe PDF library contain entries with a
- % value of 16#ffff.
- pop /.notdef
- } {
- 258 sub glyphnames exch {
- postglyphs 1 index get 1 add add
- } repeat
- 1 add postglyphs exch 2 copy 1 sub get getinterval cvn
- % At least some of Microsoft's TrueType fonts use incorrect
- % (Adobe-incompatible) names for some glyphs.
- % Correct for this here.
- postremap 1 index .knownget { exch pop } if
- } ifelse
- } ifelse
- } for ]
- } bind
- 16#00030000 { % No map.
- pop [ ]
- } bind
-.dicttomark readonly def % postformats
-
-% Each procedure in this dictionary is called as follows:
-% <file> <length> -proc- <string|array_of_strings>
-% Note that each table must have an even length, because of a strange
-% Adobe requirement that each sfnts entry have even length.
-/readtables mark
- % Ordinary tables
- (cmap) { .readtable }
- (head) 1 index
- (hhea) 1 index
- (maxp) 1 index
- (name) 1 index
- (OS/2) 1 index
- (post) 1 index
- (vhea) 1 index
- % Big tables
- (glyf) { .readbigtable }
- (loca) 1 index
- (hmtx) 1 index
- (vmtx) 1 index
- % Tables only needed for embedding in PDF files
- (cvt ) { .readtable }
- (fpgm) 1 index
- (prep) 1 index
- (GSUB) 1 index
-.dicttomark
-% Normally there would be a 'readonly' here, but the ttf2pf utility wants
-% to include the 'kern' table as well, so we leave the readtables dictionary
-% writable.
-def % readtables
-
-% Read a table as a single string.
-% <file> <length> .readtable <string>
-/.readtable {
- dup dup 1 and add string
- % Stack: f len str
- dup 0 4 -1 roll getinterval
- % Stack: f str str1
- % Because of the absurd PostScript specification that gives an
- % error for reading into an empty string, we have to check for
- % this explicitly here.
- 3 -1 roll exch
- dup () ne { readstring } if pop pop
-} bind def
-
-% Read a big table (one that may exceed 64K).
-% <file> <length> .readbigtable <string[s]>
-/.readbigtable {
- dup 65400 lt {
- .readtable
- } {
- currentuserparams /VMReclaim get -2 vmreclaim
- [ 4 2 roll {
- % Stack: mark ... f left
- dup maxstring le { exit } if
- 1 index maxstring string readstring pop 3 1 roll maxstring sub
- } loop .readtable ]
- exch vmreclaim
- } ifelse
-} bind def
-
-end readonly def % .loadttfontdict
-
-% <tab> .printtab -
-/.printtab {
- dup 0 4 getinterval print ( ) print
- dup 8 getu32 =only ( ) print
- 12 getu32 =
-} bind def
-
-% <file> .loadttfonttables -
-% <file> <fontindex> .loadttfonttables - % extention by hideyuki
-% Pushes .loadttfontdict & scratch dict on d-stack.
-% Defines f, offsets, tables, tabdict, tabs.
-/.loadttfonttables {
- .loadttfontdict begin
- 40 dict begin
- dup type /integertype eq % extention by hideyuki
- { 1 sub } { 0 } ifelse /findex exch def
- /f exch def
- /offsets f 12 string readstring pop def
-
- % TrueType Collection File support
- % Jan 11 2000: Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
- % Feb 10 2001: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- offsets 0 4 getinterval (ttcf) eq {
- [ 1 1 offsets 8 getu32 { pop f 4 string readstring pop 0 getu32} for ]
- dup findex get dup /ttcheader exch def exch length 4 mul 12 add sub
- %dup 0 gt { string f exch readstring pop } if pop
- f fileposition add f exch setfileposition
- % the previous line is for very large ttcf, hacked by suzuki toshiya
- /offsets f 12 string readstring pop def
- } { /ttcheader 0 def } ifelse
-
- /tables f offsets 4 getu16 16 mul string readstring pop def
- /tabdict tables length 16 idiv dict def
- % tabs = tables we want to keep, sorted by file position.
- /tabs [ 0 16 tables length 1 sub {
- tables exch 16 getinterval
- DEBUG { dup .printtab } if
- dup 0 4 getinterval readtables 1 index known {
- tabdict exch 2 index put
- } {
- pop pop
- } ifelse
- } for ] {
- exch 8 getu32 exch 8 getu32 lt
- } sort def
- % In certain malformed TrueType fonts, tables overlap.
- % Truncate tables if necessary.
- 0 1 tabs length 2 sub {
- dup tabs exch get exch 1 add tabs exch get
- 1 index 8 getu32 2 index 12 getu32 add
- 1 index 8 getu32 gt {
- (**** Warning: ) print 1 index 0 4 getinterval print
- ( overlaps ) print dup 0 4 getinterval print
- (, truncating.) = flush
- dup 8 getu32 2 index 8 getu32 sub
- 2 index 12 3 -1 roll putu32
- } if pop pop
- } for
-} bind def
-
-% - .readttdata -
-% Read data. Updates offsets, tabs; stores data in tabdict.
-/.readttdata {
-
- % TrueType Collection File support
- % Jan 11 2000: Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
- % /fpos offsets length tables length add def
- /fpos ttcheader offsets length tables length add add def
- /sfpos offsets length tabs length 16 mul add def
- offsets 4 tabs length putu16
- tabs {
- dup 0 4 getinterval /tname exch def
- dup 8 getu32 /tpos exch def
- dup 12 getu32 /tlen exch def
- 8 sfpos putu32
- % Skip data between the end of the previous table and
- % the beginning of this one, if any.
- tpos fpos gt {
- f tpos fpos sub () /SubFileDecode filter dup flushfile closefile
- /fpos tpos def
- } if
- f tlen readtables tname get exec
- tabdict tname 3 -1 roll put
- /fpos fpos tlen add def
- % Round up the table length to an even value.
- /sfpos sfpos tlen dup 1 and add add def
- } forall
-} bind def
-
-% Find the string in a list of strings that includes a given index.
-% <strings> <index> .findseg <string> <index'>
-/.findseg {
- exch {
- dup length 2 index gt { exch exit } if
- length sub
- } forall
-} bind def
-
-% - .makesfnts -
-% Defines checksum, getloca, head, locatable, numloca, post, sfnts, upem
-/.makesfnts {
- .readttdata
- /head tabdict /head get def
- /locatable tabdict /loca get def
- /post tabdict /post .knownget not { null } if def
- /numloca
- locatable dup type /stringtype eq
- { length }
- { 0 exch { length add } forall }
- ifelse % no def yet
- locatable type /stringtype eq {
- /.indexloca {} def
- } {
- /.indexloca /.findseg load def
- } ifelse
- head 50 getu16 0 ne {
- /getloca {
- 2 bitshift locatable exch .indexloca getu32
- } def
- 4 idiv 1 sub
- } {
- /getloca {
- dup add locatable exch .indexloca getu16 dup add
- } def
- 2 idiv 1 sub
- } ifelse def % numloca
- % If necessary, re-partition the glyfs.
- tabdict /glyf get dup type /stringtype ne {
- .dividesfnts tabdict /glyf 3 -1 roll put
- } {
- pop
- } ifelse
- /sfnts [
- offsets tabs { concatstrings } forall
- tabs {
- 0 4 getinterval tabdict exch get
- dup type /stringtype ne { aload pop } if
- } forall
- ] def
-} bind def
-
-% <glyfs> .dividesfnts <glyfs'>
-/.dividesfnts {
- /glyfs exch def
- /len1 0 glyfs { length add } forall def
- % Determine where to split the glyfs by scanning loca.
- % The very last entry in loca may be bogus.
- % Note that some loca entries may be odd, but we can only
- % split at even positions.
- %
- % Construct splitarray, the array of final lengths of
- % the sfnts entries covering the glyfs (i.e., all but
- % the first and last sfnts entries).
- /prevsplit 0 def
- /prevboundary 0 def
- /prevoddboundary 0 def % see TYPE42_NO_ODDSIZE_STR in zfont42.c
- /splitarray [
- 0 1 numloca 1 sub {
- getloca dup prevsplit maxstring add gt {
- prevboundary prevsplit eq { % see TYPE42_NO_ODDSIZE_STR in zfont42.c
- /ferr (%stderr) (w) file def
- ferr (glyf table ) writestring
- ferr prevsplit 10 string cvs writestring
- ferr ( - ) writestring
- dup 10 string cvs ferr exch writestring
- ferr ( too long segment without suitable boundary.\n)
- writestring
- ferr closefile
- /prevboundary prevoddboundary def
- } if
- DEBUG {
- dup 10 string cvs print
- ( segment is longer than maxstring, split now ) print
- prevboundary 10 string cvs print
- ( - ) print
- prevsplit 10 string cvs print
- (\n) print
- } if
- prevboundary prevsplit sub exch
- /prevsplit prevboundary def
- % /prevoddboundary 0 def
- } if
- dup 1 and 0 eq { % see TYPE42_NO_ODDSIZE_STR in zfont42.c
- DEBUG {
- dup 10 string cvs print
- ( \() print
- dup prevsplit sub 10 string cvs print
- (\) ) print
- ( even length OK\n) print
- } if
- /prevboundary exch def
- % /prevoddboundary 0 def
- } {
- DEBUG {
- dup 10 string cvs print
- ( \() print
- dup prevsplit sub 10 string cvs print
- (\) ) print
- ( odd length!\n) print
- } if
- % prevoddboundary 0 eq {
- /prevoddboundary exch def
- % } { pop } ifelse
- } ifelse
- % dup 0 eq { (why ZERO?\n) print } if
- % dup ==
- } for
- len1 prevsplit sub
- ] def
- currentuserparams /VMReclaim get -2 vmreclaim
- [
- % Re-split the sfnts glyfs strings according to splitarray.
- % We do this by iterating over the final segments defined
- % by splitarray, and constructing them from pieces of the
- % current glyfs strings. We recycle the current strings
- % when possible, to avoid stressing the allocator.
- /sfnt_idx 0 def
- /strpos 0 def
- /avail () def
- splitarray {
- /seglen exch def
- /segpos 0 def
- avail length seglen ge
- { avail 0 seglen getinterval /avail () def } { seglen string }
- ifelse
- {
- /str glyfs sfnt_idx get def
- /strlen str length def
- /strleft strlen strpos sub def
- seglen segpos sub strleft lt { exit } if
- % Copy the (rest of the) string into the new segment.
- % We know strleft <= segleft.
- dup segpos str strpos strleft getinterval putinterval
- /segpos segpos strleft add def
- /avail str def
- /sfnt_idx sfnt_idx 1 add def
- /strpos 0 def
- segpos seglen eq { exit } if
- } loop
- % Fill up the segment with an initial piece of the next
- % existing glyfs string. We know strleft > segleft.
- /segleft seglen segpos sub def
- dup segpos str strpos segleft getinterval putinterval
- /strpos strpos segleft add def
- } forall
- ]
- exch vmreclaim
-} bind def
-
-% - .getpost -
-% Uses post, defines glyphencoding
-/.getpost {
- /glyphencoding post null eq {
- DEBUG { (post missing) = flush } if [ ]
- } {
- postformats post 0 getu32 .knownget {
- DEBUG {
- (post: format ) print
- post 0 getu16 =only (,) print post 2 getu16 = flush
- } if
- post exch exec
- } {
- DEBUG { (post: unknown format ) print post 0 getu32 = flush } if [ ]
- } ifelse
- } ifelse def
-} bind def
-
-% - .ttkeys <key> <value> ...
-/.ttkeys {
- count /ttkeycount exch def
- /upem head 18 getu16 def
- /FontMatrix matrix
- /FontBBox [ 36 2 42 { head exch gets16 upem div } for ]
- nextxuid
- tabdict /name .knownget {
- % Find the names from the 'name' table.
- /names exch def
- /FontName names 6 findname not { curxuid 16 8 string cvrs } if
- /fontname 1 index def
- /FontInfo mark
- names 0 findname { /Notice exch } if
- names 1 findname { /FamilyName exch } if
- names 4 findname { /FullName exch } if
- names 5 findname { /Version exch } if
- } {
- % No name table, fabricate a FontName.
- /FontName curxuid 16 8 string cvrs
- /fontname 1 index def
- /FontInfo mark
- } ifelse
- DEBUG { (fontname ) print fontname = } if
- % Stack: ... /FontInfo mark key1 value1 ...
- post null ne {
- /ItalicAngle post 4 gets32 65536.0 div
- /isFixedPitch post 12 getu32 0 ne
- /UnderlinePosition post 8 gets16 upem div
- /UnderlineThickness post 10 gets16 upem div
- } if
- counttomark 0 ne { .dicttomark } { pop pop } ifelse
- /XUID [orgXUID 42 curxuid]
- DEBUG {
- tabs { .printtab } forall
- [ sfnts { length } forall ] ==
- count ttkeycount sub array astore dup { == } forall aload pop
- } if
- /sfnts sfnts
-} bind def
-
-% ---------------- Standard TrueType font loading ---------------- %
-
-% - .pickcmap -
-% Defines cmapsub, cmaptab
-/.pickcmap {
- tabdict /cmap get
- % The Apple cmap format is no help in determining the encoding.
- % Look for a Microsoft table. If we can't find one,
- % just use the first table, whatever it is.
- dup 4 8 getinterval exch % the default
- 0 1 2 index 2 getu16 1 sub {
- 8 mul 4 add 1 index exch 8 getinterval
- dup 0 getu16 /cmap_platform exch def
- dup 2 getu16 /cmap_encoding exch def
- DEBUG {
- (cmap: platform ) print cmap_platform =only
- ( encoding ) print cmap_encoding = flush
- } if
- cmap_platform 3 eq { exch 3 -1 roll pop exit } if pop
- } for
- % Stack: subentry table
- /cmapsub 2 index def
- exch 4 getu32 1 index length 1 index sub getinterval
- /cmaptab exch def
-} bind def
-
-% <glyph> .nname <_name>
-/.nname {
- =string cvs (_) exch concatstrings cvn
-} bind def
-
-% - .charkeys /CharStrings <charstrings> /Encoding <encoding>
-% Resets glyphencoding
-/.charkeys {
- DEBUG {
- (glyphencoding: length=) print glyphencoding dup length = === flush
- } if
- % Hack: if there is no usable post table but the cmap uses
- % the Microsoft Unicode encoding, use ISOLatin1Encoding.
- glyphencoding length 0 eq cmapsub 0 4 getinterval <00030001> eq and {
- /glyphencoding ISOLatin1Encoding dup length array copy def
- } if
- % If necessary, fabricate additional glyphencoding entries
- % to cover all of loca, or truncate glyphencoding.
- glyphencoding length numloca lt {
- /glyphencoding [ glyphencoding aload pop
- counttomark 1 numloca 1 sub { .nname } for ] def
- } {
- /glyphencoding glyphencoding 0 numloca getinterval def
- } ifelse
- % Some badly designed Chinese fonts have a post table
- % in which all glyphs other than 0 are named .null.
- % Use CharStrings to keep track of the reverse map from
- % names to glyphs, and don't let any name be used for
- % more than one glyph.
- /CharStrings glyphencoding dup length 1 add dict % +1 for .notdef
- 0 1 3 index length 1 sub {
- % Stack: glyphencoding dict index
- 2 index 1 index get 2 index 1 index known {
- % The same name maps to more than one glyph.
- % Change the name.
- pop dup .nname 3 index 2 index 2 index put
- } if
- 2 index exch 3 -1 roll put
- } for exch pop
- % If there is no .notdef entry, map it to glyph 0.
- dup /.notdef known not { dup /.notdef 0 put } if
- readonly
- /Encoding
- [ cmaptab cmaparray dup length 256 gt { 0 256 getinterval } if
- { glyphencoding exch get } forall
- counttomark 256 exch sub { /.notdef } repeat ]
- DEBUG { (Encoding: ) print dup === flush } if
-} bind def
-
-% -mark- <key> <value> ... .definettfont <font>
-/.definettfont {
- /FontType 42
- /PaintType 0
- DEBUG {
- (numloca=) print numloca =
- } if
- .dicttomark
- end end dup /FontName get exch definefont
-} bind def
-
-% <file> .loadttfont <type42font>
-/.loadttfont {
- .loadttfonttables
- .makesfnts
- .getpost
- .pickcmap
- mark
- .charkeys
- .ttkeys
- .definettfont
-} bind def
-
-% ---------------- CIDFontType 2 font loading ---------------- %
-
-% Create a string with array of CIDs
-% [ <cid1> ... <cidN> ] .makecidmapstring <string>
-/.makecidmapstring {
- mark exch cvx exec counttomark % mark 1..N len
- dup 2 mul string % mark 1..N len s
- dup 3 -1 roll 1 sub 2 mul -2 0 { % mark 1..N s s
- 2 copy 5 index -8 bitshift put % mark 1..N s s j2
- 1 add 4 -1 roll 16#ff and put dup % mark 1..N-1 s s
- } for pop % mark s
- exch pop % s
-} bind def
-
-% Create a string or an array of strings with array of CIDs
-% [ <cid1> ... <cidN> ] .makecidmap <string>|[<string> ...]
-% written by Taiji Yamada <taiji@aihara.co.jp>
-/.makecidmap {
- dup length maxstring le {
- .makecidmapstring
- } {
- dup length dup maxstring idiv exch
- maxstring mod 0 ne { 1 add } if array exch
- 0 1 3 index length 1 sub {
- dup maxstring mul 1 index 1 add maxstring mul
- 3 index length .min 1 index sub
- 3 index 3 1 roll getinterval
- .makecidmapstring
- 3 index 3 1 roll put
- } for pop
- } ifelse
-} bind def
-
-% <file> .loadttcidfont <cidtype2font>
-/.loadttcidfont {
- .loadttfonttables
- .makesfnts
- % CIDFontType2 fonts don't have a cmap: they are indexed by CID.
- /.ttencmapproc false def
- mark
- .ttkeys
- .definettcidfont
-} bind def
-
-% - .getgsub -
-% Defines gsubh, gsubv, gsubh2v and also defines gsubver, gsubfmt
-% in the case that GSUB table has 'Single Substitution Format 2'
-% which is formally used for vertically oriented glyphs such as CJK fonts.
-% Written by Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
-% Modified by Taiji Yamada <taiji@aihara.co.jp>
-%
-% [GSUB - The Glyph Substitution Table]
-% Index Size Type Name of Entry
-% -----------------------------------
-% 0 4 Fixed Version
-% 4 2 Offset ScriptList
-% 6 2 Offset FeatureList
-% 8 2 Offset LookupList
-%
-% [Single Substitution Format 2, Subtable at LookupList]
-% Index Size Type Name of Entry
-% -----------------------------------
-% 0 2 uint16 SubstFormat
-% 4 2 Offset Coverage(--)
-% 6 2 uint16 GlyphCount
-% 8 2 GlyphID Substitute(vertically oriented glyphs)
-% -- 2 uint16 SubstFormat
-% +2 2 uint16 GlyphCount(same as above GlyphCount)
-% +4 2 GlyphID GlyphArray(horizontally oriented glyphs)
-% -----------------------------------
-% References
-% 1. http://www.microsoft.com/typography/OTSPEC/gsub.htm
-%
-/.getgsub {
- /gsubhog null def
- /gsubvog null def
- /gsubh2v null def
- tabdict /GSUB .knownget { % if
- dup /gsubver exch 0 getu32 def
- %dup /gsubosl exch 4 getu16 12 add def
- %dup /gsubofl exch 6 getu16 12 add def
- dup /gsuboll exch 8 getu16 12 add def
- DEBUG {
- (gsubver: ) print gsubver =
- %(gsubosl: ) print gsubosl =
- %(gsubofl: ) print gsubofl =
- (gsuboll: ) print gsuboll =
- } if
- dup /gsubfmt exch gsuboll 0 add getu16 def
- DEBUG {
- (gsubfmt: ) print gsubfmt =
- } if
-% gsubver 16#00010000 eq { % ifelse
- gsubfmt 2 eq { % ifelse
- dup /gsubocv exch gsuboll 2 add getu16 def
- dup /gsubglc exch gsuboll 4 add getu16 def
- % hacked by suzuki toshiya at 2001/3/6
- %dup /gsubvog exch gsuboll 6 add gsubglc getinterval def
- %dup /gsubhog exch gsuboll gsubocv add 4 add gsubglc getinterval def
- dup /gsubvog exch gsuboll 6 add gsubglc 2 mul getinterval def
- dup /gsubhog exch gsuboll gsubocv add 4 add gsubglc 2 mul getinterval def
- DEBUG {
- (gsubocv: ) print gsubocv =
- (gsubglc: ) print gsubglc =
-
- (gsubhog->gsubvog ) =
- 0 2 gsubhog length 2 sub { % for
- dup
- gsubhog exch getu16 =only
- (->) =only
- gsubvog exch getu16 =
- } for
- } if
- /gsubh2v << 0 2 gsubhog length 2 sub {
- dup gsubhog exch getu16
- exch gsubvog exch getu16
- } for >> def
- } {
- %(UNKNOWN GSUB FORMAT.) = flush
- } ifelse
-% } {
-% (ILLEGAL GSUB VERSION.) = flush
-% } ifelse
- pop
- } if
-} bind def
-
-% glyphid .gsublookup glyphid
-% Lookup substitute table. return the origin if not found.
-% modified by Taiji Yamada <taiji@aihara.co.jp> and Hideyuki Suzuki
-/.gsublookup {
- dup gsubh2v exch .knownget { exch pop } if
-} bind def
-
-% - .getos2 -
-% Defines os2ver, os2cp1, os2cp2
-% to detect the kind of CID with the OS/2 table of a TrueType font.
-% Written by Taiji Yamada <taiji@aihara.co.jp>
-%
-% [OS/2 - OS/2 and Windows Metrics]
-% Index Size Type Name of Entry
-% -----------------------------------
-% 0 2 USHORT version
-% 2 2 SHORT xAvgCharWidth
-% 4 2 USHORT usWeightClass
-% 6 2 USHORT usWidthClass
-% 8 2 SHORT fsType
-% 10 2 SHORT ySubscriptXSize
-% 12 2 SHORT ySubscriptYSize
-% 14 2 SHORT ySubscriptXOffset
-% 16 2 SHORT ySubscriptYOffset
-% 18 2 SHORT ySuperscriptXSize
-% 20 2 SHORT ySuperscriptYSize
-% 22 2 SHORT ySuperscriptXOffset
-% 24 2 SHORT ySuperscriptYOffset
-% 26 2 SHORT yStrikeoutSize
-% 28 2 SHORT yStrikeoutPosition
-% 30 2 SHORT sFamilyClass
-% 32 10 BYTE panose[10]
-% 42 4 ULONG ulUnicodeRange1
-% 46 4 ULONG ulUnicodeRange2
-% 50 4 ULONG ulUnicodeRange3
-% 54 4 ULONG ulUnicodeRange4
-% 58 4 CHAR achVendID[4]
-% 62 2 USHORT fsSelection
-% 64 2 USHORT usFirstCharIndex
-% 66 2 USHORT usLastCharIndex
-% 68 2 SHORT sTypoAscender
-% 70 2 SHORT sTypoDescender
-% 72 2 SHORT sTypoLineGap
-% 74 2 USHORT usWinAscent
-% 76 2 USHORT usWinDescent
-% 78 4 ULONG ulCodePageRange1
-% 82 4 ULONG ulCodePageRange2
-% 86 2 SHORT sxHeight
-% 88 2 SHORT sCapHeight
-% 90 2 USHORT usDefaultChar
-% 92 2 USHORT usBreakChar
-% 94 2 USHORT usMaxContext
-% -----------------------------------
-% References
-% 1. http://www.microsoft.com/typography/OTSPEC/os2.htm
-%
-/.getos2 {
- /os2ver 0 def
- tabdict (OS/2) cvn .knownget { % if
- dup /os2ver exch 0 getu16 def
- os2ver 0 gt { % if
- %dup /os2typ exch 8 gets16 def
- %dup /os2fam exch 30 gets16 def
- dup /os2ur1 exch 42 getu32 def
- dup /os2ur2 exch 46 getu32 def
- dup /os2ur3 exch 50 getu32 def
- dup /os2ur4 exch 54 getu32 def
- %dup /os2sel exch 62 getu16 def
- %dup /os2fci exch 64 getu16 def
- %dup /os2lci exch 64 getu16 def
- dup /os2cp1 exch 78 getu32 def
- dup /os2cp2 exch 82 getu32 def
- DEBUG {
- /tmp 64 string def
- (os2ver: ) print os2ver 2 tmp cvrs =
- %(os2typ: ) print os2typ 2 tmp cvrs =
- %(os2fam: ) print os2fam 2 tmp cvrs =
- (os2ur1: ) print os2ur1 2 tmp cvrs =
- (os2ur2: ) print os2ur2 2 tmp cvrs =
- (os2ur3: ) print os2ur3 2 tmp cvrs =
- (os2ur4: ) print os2ur4 2 tmp cvrs =
- %(os2sel: ) print os2sel 2 tmp cvrs =
- %(os2fci: ) print os2fci 2 tmp cvrs =
- %(os2lci: ) print os2lci 2 tmp cvrs =
- (os2cp1: ) print os2cp1 2 tmp cvrs =
- (os2cp2: ) print os2cp2 2 tmp cvrs =
- [
- [ 1 0 bitshift (Latin 1) ]
- [ 1 1 bitshift (Latin 2) ]
- [ 1 2 bitshift (Cyrillic) ]
- [ 1 3 bitshift (Greek) ]
- [ 1 4 bitshift (Turkish) ]
- [ 1 5 bitshift (Hebrew) ]
- [ 1 6 bitshift (Arabic) ]
- [ 1 7 bitshift (Baltic) ]
- [ 1 8 bitshift (Vietnamese) ]
- [ 1 16 bitshift (Thai) ]
- [ 1 17 bitshift (Japanese) ]
- [ 1 18 bitshift (Simplified Chinese) ]
- [ 1 19 bitshift (Korean Wansung) ]
- [ 1 20 bitshift (Traditional Chinese) ]
- [ 1 21 bitshift (Korean Johab) ]
- [ 1 31 bitshift (Symbol) ]
- ] { % forall
- dup 0 get os2cp1 and 0 gt { % if
- (CodePage: ) print 1 get =
- } {
- pop
- } ifelse
- } forall
- } if
- } if
- pop
- } if
-} bind def
-
-% ---------------- PDF TrueType font loading ---------------- %
-
-% Strictly speaking, this code should be loaded only if we have a PDF
-% interpreter, but it's so closely tied to the rest of the code in this
-% file that we always include it.
-
-% <plat+enc> .findcmap <subtable> true
-% <plat+enc> .findcmap false
-/.findcmap {
- false exch tabdict /cmap get
- % Some fonts have multiple cmaps with the same platform and
- % encoding. Use the first one we find.
- 0 1 2 index 2 getu16 1 sub {
- % Stack: false plat+enc cmap index
- 8 mul 4 add 1 index exch 8 getinterval
- dup 0 4 getinterval 3 index eq {
- 4 getu32 1 index exch 1 index length 1 index sub getinterval
- 4 -1 roll not 4 2 roll exit
- } if pop
- } for
- % Stack: false plat+enc cmap || subtable true plat+enc cmap
- pop pop
-} bind def
-
-% <subcmap> <chartoglyphmap> .pdfmapchars
-% /CharStrings <charstrings> /Encoding <encoding>
-% Uses encoding
-/.pdfmapchars {
- exch cmaparray /cmapencoding exch def
- % Invert glyphencoding (post).
- /inversepost glyphencoding length dict def
- 0 1 glyphencoding length 1 sub {
- glyphencoding 1 index get exch inversepost 3 1 roll put
- } for
- /CharStrings mark 3 -1 roll {
- dup type /arraytype eq {
- exch /ch exch def { ch exch .pdfaddchar } forall
- } {
- .pdfaddchar
- } ifelse
- } forall
- % Add a .notdef => 0 entry if needed. Per Adobe's spec,
- % .dicttomark (>>) adds pairs in top-to-bottom order.
- /.notdef 0
- .dicttomark
- /Encoding encoding
-} bind def
-% <charname> <charcode> .pdfaddchar <charname> <glyph#>
-% <charname> <charcode> .pdfaddchar -
-/.pdfaddchar {
- dup cmapencoding length lt {
- cmapencoding exch get dup 0 eq {
- pop .pdfaddpost
- } if
- } {
- pop .pdfaddpost
- } ifelse
-} bind def
-% <charname> .pdfaddpost <charname> <glyph#>
-% <charname> .pdfaddpost -
-/.pdfaddpost {
- inversepost 1 index .knownget not { pop } if
-} bind def
-
-% - .pdfcharkeys /CharStrings <charstrings> /Encoding <encoding>
-/.pdfcharkeys {
- % The following algorithms are per the PDF Reference, Second Edition
- % (PDF 1.3 reference manual).
- encoding null eq {
- .charkeys % use default algorithm
- } {
- <00030001> .findcmap {
- AdobeGlyphList .pdfmapchars
- } {
- <00010000> .findcmap {
- .romanmacdict .pdfmapchars
- } {
- .charkeys % use default algorithm
- } ifelse
- } ifelse
- } ifelse
-} bind def
-
-% <file> <encoding|null> .loadpdfttfont <type42font>
-/.loadpdfttfont {
- exch .loadttfonttables
- /encoding exch def
- .makesfnts
- .getpost
- .pickcmap
- mark
- .pdfcharkeys
- .ttkeys
- .definettfont
-} bind def
-
-% ---------------- CJK TrueType font loading ---------------- %
-
-% Written by the gs-cjk project
-
-% .parsecmap
-% push an array as a result of reading a CMap file.
-% the array is of the following form.
-% [ [ [ dst src num ] [ dst src num ] ... [ dst src num ] ]
-% [ [ dst src num ] [ dst src num ] ... [ dst src num ] ]
-% ...
-% [ [ dst src num ] [ dst src num ] ... [ dst src num ] ] ]
-% each array [dst src num] corresponds to each line within
-% /begin{bf,cid}{char,range}/end{bf,cid}{char,range} pairs.
-
-/.parsecmapdict mark
-
- % override system operators
- /findresource { pop } bind
- /defineresource { pop pop } bind
- /dict {}
- /def { pop pop } bind
- /dup null
- /begin { pop } bind
- /end {}
- /currentdict null
-
- % override CMap operators
- /usecmap { pop } bind
- /CMapName null
- /begincmap { [ } bind
- /endcmap { ] } bind
- /begincodespacerange { pop mark } bind
- /endcodespacerange { cleartomark } bind
- /beginnotdefrange { pop mark } bind
- /endnotdefrange { cleartomark } bind
- /beginbfchar { /parsecmapcounter exch def } bind % for FromCID CMaps
- /endbfchar {
- parsecmapcounter dup array exch 1 sub -1 0 {
- [ 5 3 roll exch .strtoint 1 ]
- 2 index 3 1 roll put
- } for
- } bind
- /beginbfrange { begincidrange } % for FromCID CMaps
- /endbfrange { endcidrange }
- /begincidchar { beginbfchar } % for ToCID CMaps
- /endcidchar { endbfchar }
- /begincidrange { /parsecmapcounter exch def } bind % for ToCID CMaps
- /endcidrange {
- parsecmapcounter dup array exch 1 sub -1 0 {
- [ 6 3 roll 3 1 roll .strtoint exch .strtoint exch 1 index sub 1 add ]
- 2 index 3 1 roll put
- } for
- } bind
-
- % misc
- /parsecmapcounter 0
-
-.dicttomark def % .parsecmapdict
-
-
-/.parsecmapfname 100 string def
-
-% <CMapName> .parsecmap <array>
-% Return the contents of the CMap. If the CMap is not found, empty array
-% is returned. Note that usecmap is ignored because of efficiency.
-/.parsecmap {
- /CMap /Category findresource begin
- //.parsecmapfname ResourceFileName end % filename
- dup status {
- pop pop pop pop
- .parsecmapdict begin run end
- } {
- pop []
- } ifelse
-} bind def
-
-% .buildcmaptab
-% construct a cmap table using information obtained from horizontal/vertical
-% CMaps, ToUnicode CMap, and substition data.
-
-% cmap /CMap proc .applyCMap cmap
-/.applyCMap {
- exch .parsecmap % {} [[[].].]
- dup length 1 sub -1 0 { % {} [[[].].] len-1 -1 0 {} for
- 1 index exch get % {} [[[].].] [[].]
- dup length 1 sub -1 0 { % {} [[[].].] [[].] len-1 -1 0 for {}
- 1 index exch get % {} [[[].].] [[].] [ cid gid num ]
- cvx exec cmapglyphs % {} [[[].].] [[].] cid gid num gmap
- 3 1 roll .safegetinterval { % {} [[[].].] [[].] cid [gid'..]
- 4 index exec dup cmapglyphs 0 get eq {
- % found no glyph
- pop
- } {
- % found a glyph
- 5 index exch 2 index exch .safeput
- } ifelse
- 1 add % {} [[[].].] [[].] cid++
- } forall pop
- } for % {} [[[].].] [[].]
- pop % {} [[[].].]
- } for % {} [[[].].]
- pop pop %
-} bind def
-
-% cmap /CMap-V .applyvCMap cmap
-/.applyvCMap {
- gsubh2v null ne {
- { .gsublookup } .applyCMap
- } {
- { } .applyCMap
- } ifelse
-} bind def
-
-% cmap /CMap-H .applyhCMap cmap
-/.applyhCMap {
- { } .applyCMap
-} bind def
-
-% cmap /CMap-V .applyvCMapUnicode cmap
-/.applyvCMapUnicode {
- gsubh2v null ne {
- {
- dup 16#f900 ge
- 1 index 16#ff00 ge 2 index 16#ff9f le and not
- and not {
- .gsublookup
- } if
- } bind .applyCMap
- } {
- { } .applyCMap
- } ifelse
-} bind def
-
-% cmap /Adobe-*-* .applyCIDToCode cmap
-/.applyCIDToCode {
- .parsecmap
- {
- { % cmap [ dist cid num ]
- dup 0 get length 2 gt { % multi-byte dist is not supported yet.
- pop
- } {
- cvx exec exch % cmap dist num cid
- cmapglyphs 4 2 roll % cmap cid cmapglyphs dist num
- exch .strtoint exch
- .safegetinterval % cmap cid subcmapglyphs
- { % cmap cid gid
- 2 index 2 index % cmap cid gid cmap cid
- 3 2 roll % cmap cid cmap cid gid
- .safeput % cmap cid
- 1 add % cmap nextcid
- } forall pop
- } ifelse
- } forall
- } forall
-} bind def
-
-% cmap /Adobe-*-UCS2 .applyCIDToUnicode cmap
-/.applyCIDToUnicode {
- .parsecmap
- {
- { % cmap [ distuni cid num ]
- dup 0 get length 2 gt % multi-byte dist is not supported yet.
- 1 index 0 get <fffd> eq % the value <fffd> is regard as undefined code.
- or {
- pop
- } {
- cvx exec exch % cmap distuni num cid
- cmapglyphs 4 2 roll % cmap cid cmapglyphs distuni num
- exch .strtoint exch % cmap cid cmapglyphs distuni num
- .safegetinterval % cmap cid subcmapglyphs
- { % cmap cid gid
- 2 index 2 index % cmap cid gid cmap cid
- 3 2 roll % cmap cid cmap cid gid
- .safeput % cmap cid
- 1 add % cmap nextcid
- } forall pop
- } ifelse
- } forall
- } forall
-} bind def
-
-/.buildcmapdict mark
- /Adobe-CNS1 <<
- /Registry (Adobe)
- /Ordering (CNS1)
- /CIDCounts [ 14099 17408 17601 18846 18962 ]
- /Big5 { 0 {
- /Adobe-CNS1-ETen-B5 .applyCIDToCode
- /ETen-B5-V .applyvCMap
- /ETen-B5-H .applyhCMap
- } }
- /Unicode { 3 {
- /Adobe-CNS1-UCS2 .applyCIDToUnicode
- /UniCNS-UCS2-V .applyvCMapUnicode
- /UniCNS-UCS2-H .applyhCMap
- } }
- >>
- /Adobe-GB1 <<
- /Registry (Adobe)
- /Ordering (GB1)
- /CIDCounts [ 7717 9897 22127 22353 29064 ]
- /PRC { 2 {
- /Adobe-GB1-GBK-EUC .applyCIDToCode
- /GBK-EUC-V .applyvCMap
- /GBK-EUC-H .applyhCMap
- } }
- /Unicode { 4 {
- /Adobe-GB1-UCS2 .applyCIDToUnicode
- /UniGB-UCS2-V .applyvCMapUnicode
- /UniGB-UCS2-H .applyhCMap
- } }
- >>
- /Adobe-Japan1 <<
- /Registry (Adobe)
- /Ordering (Japan1)
- /CIDCounts [ 8284 8359 8720 9354 15444 ]
- /ShiftJIS { 2 {
- /Adobe-Japan1-90ms-RKSJ .applyCIDToCode
- /90ms-RKSJ-V .applyvCMap
- /90ms-RKSJ-H .applyhCMap
- } }
- /Unicode { 4 {
- /Adobe-Japan1-UCS2 .applyCIDToUnicode
- /UniJIS-UCS2-V .applyvCMapUnicode
- /UniJIS-UCS2-H .applyhCMap
- } }
- >>
- /Adobe-Japan2 <<
- /Registry (Adobe)
- /Ordering (Japan2)
- /CIDCounts [ 6068 ]
- /Unicode { 0 {
- /UniHojo-UCS2-V .applyvCMapUnicode
- /UniHojo-UCS2-H .applyhCMap
- } }
- >>
- /Adobe-Korea1 <<
- /Registry (Adobe)
- /Ordering (Korea1)
- /CIDCounts [ 9333 18155 18352 ]
- /Johab { 1 {
- /KSC-Johab-V .applyvCMap
- /KSC-Johab-H .applyhCMap
- } }
- /Unicode { 2 {
- /Adobe-Korea1-UCS2 .applyCIDToUnicode
- /UniKS-UCS2-V .applyvCMapUnicode
- /UniKS-UCS2-H .applyhCMap
- } }
- /Wansung { 1 {
- /Adobe-Korea1-KSCms-UHC .applyCIDToCode
- /KSCms-UHC-V .applyvCMap
- /KSCms-UHC-H .applyhCMap
- } }
- >>
- /Identity << % ttcmap ordering CIDMap only for specific and rare CJK TTF
- /Registry (Unregistered) % Thus Registry value is unpredictable. This
- /Ordering (Identity) % CIDFont can be used with Identity-H|V CMap
- /CIDCounts [ 65535 ]
- /H { 0 {
- /Identity-H .applyhCMap % for ttcmap-order CIDMap
- } }
- /V { 0 {
- /Identity-H .applyvCMap % for ttcmap-order and vertically-used CIDMap
- } }
- >>
-.dicttomark def
-
-/.ttencmap <<
- /Identity false
- /Auto { .ttencoding {
- dup .ttcharset exch get exec exch true
- } { false } ifelse
- } bind
- /Adobe-CNS1 { /Adobe-CNS1 .ttencoding }
- /Adobe-GB1 { /Adobe-GB1 .ttencoding }
- /Adobe-Japan1 { /Adobe-Japan1 .ttencoding }
- /Adobe-Japan2 { /Adobe-Japan2 .ttencoding }
- /Adobe-Korea1 { /Adobe-Korea1 .ttencoding }
- /Adobe-CNS1-Big5 { /Adobe-CNS1 /Big5 true }
- /Adobe-CNS1-Unicode { /Adobe-CNS1 /Unicode true }
- /Adobe-GB1-PRC { /Adobe-GB1 /PRC true }
- /Adobe-GB1-Unicode { /Adobe-GB1 /Unicode true }
- /Adobe-Japan1-ShiftJIS { /Adobe-Japan1 /ShiftJIS true }
- /Adobe-Japan1-Unicode { /Adobe-Japan1 /Unicode true }
- /Adobe-Japan2-Unicode { /Adobe-Japan2 /Unicode true }
- /Adobe-Korea1-Johab { /Adobe-Korea1 /Johab true }
- /Adobe-Korea1-Unicode { /Adobe-Korea1 /Unicode true }
- /Adobe-Korea1-Wansung { /Adobe-Korea1 /Wansung true }
- /Identity-H { /Identity /H true }
- /Identity-V { /Identity /V true }
->> def
-
-/.ttcharset <<
- /Unicode { .detectos2 }
- /ShiftJIS /Adobe-Japan1
- /Big5 /Adobe-CNS1
- /PRC /Adobe-GB1
- /Wansung /Adobe-Korea1
- /Johab /Adobe-Korea1
->> def
-
-/.ttencdict <<
- <00030001> /Unicode
- <00030002> /ShiftJIS
- <00030003> /Big5
- <00030004> /PRC
- <00030005> /Wansung
- <00030006> /Johab
->> def
-
-/.ttencoding {
- .ttencdict cmapsub 0 4 getinterval .knownget
-} bind def
-
-/.ttos2tab [
- [ 1 20 bitshift /Adobe-CNS1 ]
- [ 1 18 bitshift /Adobe-GB1 ]
- [ 1 17 bitshift /Adobe-Japan1 ]
- [ 1 19 bitshift /Adobe-Korea1 ]
- [ 1 21 bitshift /Adobe-Korea1 ]
-] def
-
-/.detectos2 {
- /Identity % default linear ordering to GID, Adobe Identity CIDs
- os2ver 0 gt {
- .ttos2tab {
- dup 0 get os2cp1 and 0 ne {
- 1 get exch
- } if pop
- } forall
- } if
-} bind def
-
-% /Charset /TTEncoding .buildcmaptab cmap
-/.buildcmaptab {
- .buildcmapdict 3 2 roll get begin
- cvx exec exch CIDCounts end exch get array
- dup length 1 sub 0 1 3 -1 roll { 1 index exch cmapglyphs 0 get put } for
- exch exec
-} bind def
-
-% -mark- <key> <value> ... .definettcidfont <font>
-% rapid version of .definecjkvttcidfont
-% Proposed by Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
-% Modified by Taiji Yamada <taiji@aihara.co.jp>
-/.definettcidfont {
- /CIDFontName fontname
- /CIDFontType 2
- /CIDSystemInfo
- mark .ttencmapproc {
- .buildcmapdict 3 2 roll get begin
- cvx exec pop
- /Supplement exch
- /Registry Registry
- /Ordering Ordering
- end
- } {
- /Registry (Adobe)
- /Ordering (Identity) % pursuant to makeIdentityCMap in pdf_font.ps
- /Supplement 0
- } ifelse
- .dicttomark
- /CharStrings mark /.notdef 0 .dicttomark
- .ttencmapproc {
- /cmapglyphs cmaptab cmaparray def
- exec .buildcmaptab
- dup length /CIDCount exch
- 3 -1 roll .makecidmap % it has not supported a dictionary yet
- /CIDMap exch % it should be a string or an array of strings
- } {
- /CIDCount numloca
- /CIDMap 0 % an integer interpreted as an offset from GI (see #5012 p.16)
- } ifelse
- /GDBytes 2
- .dicttomark
- end end dup /CIDFontName get exch /CIDFont defineresource
-} bind def
-
-% Load a TrueType font from a file as a CIDFontType 2 font.
-% rapid version of .loadcjkvttcidfont
-% Proposed by Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
-% Modified by Taiji Yamada <taiji@aihara.co.jp>
-%
-% <file> .loadttcidfont <cidtype2font>
-% <file> <fontindex> .loadttcidfont <cidtype2font>
-% detect a kind of CID and encode a TrueType font to a CID-Keyed font.
-%
-% <file> <ttcidcode> .loadttcidfont <cidtype2font>
-% <file> <fontindex> <ttcidcode> .loadttcidfont <cidtype2font>
-% load a TrueType font and encode it with the kind of CID described
-% in <ttcidcode> which is one of entry in .ttencmap.
-/.loadcjkvttcidfont {
- dup type /nametype ne { /Auto } if
- 1 index type /integertype eq { 3 1 roll } { exch } ifelse
- .loadttfonttables
- .makesfnts
- .pickcmap % when we can't pick a Microsoft cmap table, do what to do
- .getgsub
- .getos2 % we need an OS/2 table for CJKV TrueType fonts (by taiji)
- .ttencmap exch get /.ttencmapproc exch def
- mark
- .ttkeys
- .definettcidfont
-} bind def
-
-% Open and load a TrueType font from a file as a CIDFontType 2 font.
-% <filename> .openttcidfont <cidtype2font>
-% <filename> <fontindex> .openttcidfont <cidtype2font>
-% <filename> <ttcidcode> .openttcidfont <cidtype2font>
-% <filename> <fontindex> <ttcidcode> .openttcidfont <cidtype2font>
-/.openttcidfont {
- 1 dup index type /nametype eq { 1 add } if
- dup index type /integertype eq { 1 add } if
- dup 1 add -1 roll (r) file exch 1 roll
- .loadcjkvttcidfont % rapid version, since 20010316
-} bind def
diff --git a/Master/xemtex/gslib/gs_typ32.ps b/Master/xemtex/gslib/gs_typ32.ps
deleted file mode 100644
index b6cba9f5583..00000000000
--- a/Master/xemtex/gslib/gs_typ32.ps
+++ /dev/null
@@ -1,128 +0,0 @@
-% Copyright (C) 1997 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_typ32.ps,v 1.3.2.2.2.1 2003/04/12 14:02:38 giles Exp $
-% Initialization file for Type 32 fonts.
-
-% ------ Type 32 fonts ------ %
-
-% We need LanguageLevel 2 or higher in order to have defineresource.
-languagelevel dup 2 .max .setlanguagelevel
-
-/BitmapFontInit mark
-
-/.makeglyph32 systemdict /.makeglyph32 get
-systemdict /.makeglyph32 .undef
-
-/addglyph { % ([wx wy llx lly urx ury] |
- % [w0x w0y llx lly urx ury w1x w1y vx vy])
- % <bitmap> <cid> <type32font> addglyph -
- 1 index dup 2 index .removeglyphs
- 22 string .makeglyph32
- % Stack: metrics bitmap cid font metstr
- 3 index () ne {
- % Use G4 encoding to compress the bitmap.
- % Define a string large enough to hold the metrics,
- % an uncompressed bitmap (worst case = 5x expansion),
- % and the 2 RTC codes (3 bytes).
- dup length 4 index length 5 mul add 10 add string
- % Stack: metrics bitmap cid font metstr buffer
- dup 0 3 index putinterval
- dup 2 index length 1 index length 1 index sub getinterval
- % Stack: metrics bitmap cid font metstr buffer bitbuf
- mark /Columns 8 index dup 4 get exch 2 get sub
- /Rows 10 index dup 5 get exch 3 get sub
- /K -1 /EndOfBlock true /BlackIs1 true
- .dicttomark /CCITTFaxEncode filter
- % Stack: metrics bitmap cid font metstr buffer filter
- dup 6 index writestring closefile
- % Find the end of the data by scanning backwards for the RTC.
- % There are 2 RTCs x 12 bits = 3 bytes to remove.
- {
- dup dup length 1 sub get 0 ne { exit } if
- 0 1 index length 1 sub getinterval
- } loop
- 0 1 index length 3 sub getinterval
- exch pop % metstr
- } if
- 1 index /CharStrings get 3 index 3 -1 roll put
- pop pop pop pop
-} obind
-
-/removeall { % <type32font> removeall -
- 0 65535 2 index removeglyphs pop
-} obind
-
-/.removeglyphs systemdict /.removeglyphs get
-systemdict /.removeglyphs .undef
-
-/removeglyphs { % <cid_min> <cid_max> <type32font> .removeglyphs -
- 3 copy .removeglyphs
- dup /CharStrings get dup {
- % Stack: cidmin cidmax font CharStrings cid bitmap
- pop dup 5 index ge { dup 4 index le { 2 copy undef } if } if pop
- } forall pop pop pop pop
-} obind
-
-.dicttomark /ProcSet defineresource pop
-
-/.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse
-.cidfonttypes begin
-
-4 % CIDFontType 4 = FontType 32
-{ dup /FontType 32 put
- dup /CharStrings 20 dict put
- 1 index exch .buildfont32 exch pop
-} bind def
-
-end % .cidfonttypes
-
-% Define the BuildGlyph procedure.
-% Since Type 32 fonts are indexed by CID, there is no BuildChar procedure.
-% The name %Type32BuildGlyph is known to the interpreter.
-(%Type32BuildGlyph) cvn { % <font> <cid> %Type32BuildGlyph -
- 1 index /CharStrings get
- % Stack: font cid CharStrings
- dup 2 index .knownget
- { exch pop } { 0 get } ifelse
- % Stack: font cid cstr
- dup //.getmetrics32 % use // because of .undef below
- dup 14 gt {
- 8 index 8 index 13 3 roll setcachedevice2
- } {
- 4 index 4 index 9 3 roll setcachedevice
- } ifelse
- % Stack: font cid cstr w h nmetrics llx lly
- 6 -1 roll 4 -1 roll 1 index length 1 index sub getinterval
- % Stack: font cid w h llx lly bitstr
- dup () eq {
- pop pop pop
- } {
- mark /Columns 6 index /Rows 7 index /K -1 /EndOfBlock false /BlackIs1 true
- .dicttomark /CCITTFaxDecode filter 4 index 4 index true
- % Stack: font cid w h llx lly filter w h true
- [ 1 0 0 1 11 -2 roll exch neg exch neg ] 5 -1 roll imagemask
- } ifelse
- pop pop pop pop
-} bind def
-
-systemdict /.getmetrics32 .undef
-
-buildfontdict 32 /.buildfont32 cvx put
-
-32 dup /FontType defineresource pop
-
-.setlanguagelevel
diff --git a/Master/xemtex/gslib/gs_typ42.ps b/Master/xemtex/gslib/gs_typ42.ps
deleted file mode 100644
index 4f48b1e58cf..00000000000
--- a/Master/xemtex/gslib/gs_typ42.ps
+++ /dev/null
@@ -1,45 +0,0 @@
-% Copyright (C) 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_typ42.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Type 42 font support code.
-
-% Here are the BuildChar and BuildGlyph implementation for Type 42 fonts.
-% The names %Type42BuildChar and %Type42BuildGlyph are known to the
-% interpreter. The real work is done in an operator:
-% <font> <code|name> <name> <glyphindex> .type42execchar -
-
-(%Type42BuildChar) cvn % <font> <code> %Type42BuildChar -
- { 1 index /Encoding get 1 index get .type42build
- } bind def
-(%Type42BuildGlyph) cvn % <font> <name> %Type42BuildGlyph -
- { dup .type42build
- } bind def
-/.type42build % <font> <code|name> <name> .type42build -
- { 2 index begin
- dup CharStrings exch .knownget not
- { 2 copy eq { exch pop /.notdef exch } if
- QUIET not
- { (Substituting .notdef for ) print = flush }
- { pop }
- ifelse
- /.notdef CharStrings /.notdef get
- } if
- end .type42execchar
- } bind def
-
-% Register the font type for definefont.
-buildfontdict 42 /.buildfont42 cvx put
diff --git a/Master/xemtex/gslib/gs_type1.ps b/Master/xemtex/gslib/gs_type1.ps
deleted file mode 100644
index ab355e111f0..00000000000
--- a/Master/xemtex/gslib/gs_type1.ps
+++ /dev/null
@@ -1,183 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_type1.ps,v 1.5.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Type 1 font support code.
-
-% The standard representation for PostScript compatible fonts is described
-% in the book "Adobe Type 1 Font Format", published by Adobe Systems Inc.
-
-% Define an augmented version of .buildfont1 that inserts UnderlinePosition
-% and UnderlineThickness entries in FontInfo if they aren't there already,
-% and FontBBox isn't degenerate.
-% (This works around the incorrect assumption, made by many word processors,
-% that these entries are present in the built-in fonts.)
-/.buildfont1
- {
- false 1 index /FontBBox .knownget {
- { 0 ne { not exit } if } forall
- } if
- { dup /FontInfo known not
- { .growfontdict dup /FontInfo 2 dict put }
- if
- dup dup /FontInfo get dup dup
- /UnderlinePosition known exch /UnderlineThickness known and
- { pop pop % entries already present
- }
- { dup length 2 add dict .copydict
- dup /UnderlinePosition known not
- { dup /UnderlinePosition 3 index /FontBBox .knownget
- { 1 get 2 div } % 1/2 the font descent
- { -100 } ifelse put
- }
- if
- dup /UnderlineThickness known not
- { dup /UnderlineThickness 3 index /FontBBox .knownget
- { dup 3 get exch 1 get sub 20 div } % 1/20 the font height
- { 50 } ifelse put
- }
- if
- 1 index /FontInfo get wcheck not { readonly } if
- /FontInfo exch put
- }
- ifelse
- } if
- //.buildfont1
- } bind def
-% If the diskfont feature isn't included, define a dummy .loadfontdict.
-/.loadfontdict where
- { pop }
- { /.loadfontdict 0 dict readonly def }
-ifelse
-/.loadfontfile % <file> .loadfontfile -
- { mark exch
- DISKFONTS { .loadfontdict begin } if
- % In order to load fonts reliably, we should push systemdict
- % here. However, Ed Taft says that Adobe implementations
- % push userdict and nothing else!
- % We really would just like systemdict on the stack,
- % but fonts produced by Fontographer require a writable dictionary.
- % However, we can't use any of the other well-known dictionaries
- % (such as userdict), since the whole point of pushing systemdict
- % is to make sure that nothing important has been redefined.
- userdict begin
- % We can't just use `run', because we want to check for .PFB files.
- currentpacking
- { false setpacking .loadfont1 true setpacking }
- { .loadfont1 }
- ifelse end
- { stop } if
- DISKFONTS { end } if
- cleartomark
- } bind def
-/.loadfont1 { % <file> .loadfont1 <errorflag>
- { % We would like to use `false /PFBDecode filter',
- % but this occasionally produces a whitespace character as
- % the first of an eexec section, so we can't do it.
- % Also, since the real input file never reaches EOF if we are using
- % a PFBDecode filter (the filter stops just after reading the last
- % character), we must explicitly close the real file in this case.
- % Since the file might leave garbage on the operand stack,
- % we have to create a procedure to close the file reliably.
- dup read not { -1 } if
- 2 copy unread 16#80 eq {
- dup true /PFBDecode filter cvx
- exch .currentresourcefile eq {
- dup /.execasresource .systemvar
- } {
- {exec}
- } ifelse
- 2 index cvlit
- /closefile .systemvar 3 .execn
- } {
- cvx exec
- } ifelse
- } stopped
-} bind def
-
-% Here are the BuildChar and BuildGlyph implementation for Type 1 fonts.
-% The names %Type1BuildChar and %Type1BuildGlyph are known to the interpreter.
-% The real work is done in an operator:
-% <font> <code|name> <name> <charstring> .type1execchar -
-
-(%Type1BuildChar) cvn { % <font> <code> %Type1BuildChar -
- 1 index /Encoding get 1 index get .type1build .type1execchar
-} bind def
-(%Type1BuildGlyph) cvn { % <font> <name> %Type1BuildGlyph -
- dup .type1build .type1execchar
-} bind def
-% Note: this procedure is used for both Type 1 and Type 2 fonts.
-/.type1build { % <font> <code|name> <name> .type1build
- % <font> <code|name> <name> <charstring>
- 2 index begin
- dup CharStrings exch .knownget not {
- 2 copy eq { exch pop /.notdef exch } if
- QUIET not
- { (Substituting .notdef for ) print = flush }
- { pop }
- ifelse
- /.notdef CharStrings /.notdef get
- } if
- end
-} bind def
-% CCRun is an undocumented procedure provided for Type 4 and Type 0 fonts.
-1183615869 internaldict begin
-% Apparently there are two different argument lists for CCRun.
-% Handling the one with the extra Private dictionary requires fabricating
-% a Type 1 font on the fly, since we aren't currently prepared to parse the
-% dictionary any other way.
-/CCRun { % <font> <code|name> <charstring> CCRun -
- % <font> <code|name> <charstring> <Private> CCRun -
- dup type /dicttype eq {
- dup 4 index /Private .knownget { ne } { pop true } ifelse {
- % The Private dictionary was supplied, and is different
- % from the Private dictionary of the font. Fabricate a
- % Type 1 font with this Private dictionary. Most of the
- % font entries are arbitrary or not needed.
- .currentglobal false .setglobal 10 dict exch .setglobal begin
- /Private exch def
- /FontType 1 def
- /FontMatrix 3 index /FontMatrix get def
- /Encoding 3 index /Encoding .knownget not { StandardEncoding } if def
- /FontBBox 3 index /FontBBox .knownget not { {0 0 0 0} } if def
- /PaintType 0 def
- /CharStrings 1 dict dup /.notdef () put def
- 3 -1 roll pop () currentdict end .buildfont1 exch pop 3 1 roll
- } {
- pop
- } ifelse
- } if
- 1 index dup type /integertype eq {
- 3 index /Encoding get exch get
- } if exch .type1execchar
-} bind def
-end
-
-% Register the font types for definefont.
-buildfontdict 1 /.buildfont1 cvx put
-buildfontdict 4 /.buildfont4 cvx put
-
-% Add Type 2 support if applicable.
-/.buildfont2 where not { (%END2) .skipeof } if
-pop
-(%Type2BuildChar) cvn { % <font> <code> %Type2BuildChar -
- 1 index /Encoding get 1 index get .type1build .type2execchar
-} bind def
-(%Type2BuildGlyph) cvn { % <font> <name> %Type2BuildGlyph -
- dup .type1build .type2execchar
-} bind def
-buildfontdict 2 /.buildfont2 cvx put
-%END2
diff --git a/Master/xemtex/gslib/gs_wan_e.ps b/Master/xemtex/gslib/gs_wan_e.ps
deleted file mode 100644
index 9fe2ff2227b..00000000000
--- a/Master/xemtex/gslib/gs_wan_e.ps
+++ /dev/null
@@ -1,47 +0,0 @@
-% Copyright (C) 1994, 1996, 1997, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_wan_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the WinAnsi encoding vector.
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/WinAnsiEncoding
-ISOLatin1Encoding 0 39 getinterval aload pop
- /quotesingle
-ISOLatin1Encoding 40 5 getinterval aload pop
- /hyphen
-ISOLatin1Encoding 46 50 getinterval aload pop
- /grave
-ISOLatin1Encoding 97 30 getinterval aload pop
- /bullet
-% \20x
- % NOTE: /Euro, /Zcaron, and /zcaron are new for PDF 1.3.
- % We may have to take them out for backward compatibility.
- /Euro /bullet /quotesinglbase /florin
- /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft
- /OE /bullet /Zcaron /bullet
- /bullet /quoteleft /quoteright /quotedblleft
- /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron /guilsinglright
- /oe /bullet /zcaron /Ydieresis
-ISOLatin1Encoding 160 96 getinterval aload pop
-256 packedarray
-4 1 index .registerencoding
-.defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_wl1_e.ps b/Master/xemtex/gslib/gs_wl1_e.ps
deleted file mode 100644
index 10f95141ee9..00000000000
--- a/Master/xemtex/gslib/gs_wl1_e.ps
+++ /dev/null
@@ -1,67 +0,0 @@
-% Copyright (C) 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_wl1_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Windows 3.1 Latin 1 encoding vector (H-P Symbol set 19U).
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/Win31Latin1Encoding
-ISOLatin1Encoding 0 39 getinterval aload pop
- /quotesingle
-ISOLatin1Encoding 40 5 getinterval aload pop
- /hyphen
-ISOLatin1Encoding 46 50 getinterval aload pop
- /grave
-ISOLatin1Encoding 97 30 getinterval aload pop
- /graybox
-% \20x
- /.notdef /.notdef /quotesinglbase /florin
- /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft
- /OE /.notdef /.notdef /.notdef
- /.notdef /quoteleft /quoteright /quotedblleft
- /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron /guilsinglright
- /oe /.notdef /.notdef /Ydieresis
- /.notdef /exclamdown /cent /sterling
- /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft
- /logicalnot /softhyphen /registered /overscore
- /degree /plusminus /twosuperior /threesuperior
- /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright
- /onequarter /onehalf /threequarters /questiondown
-% \30x
- /Agrave /Aacute /Acircumflex /Atilde
- /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis
- /Igrave /Iacute /Icircumflex /Idieresis
- /Eth /Ntilde /Ograve /Oacute
- /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls
- /agrave /aacute /acircumflex /atilde
- /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis
- /igrave /iacute /icircumflex /idieresis
- /eth /ntilde /ograve /oacute
- /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis
-256 packedarray .defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_wl2_e.ps b/Master/xemtex/gslib/gs_wl2_e.ps
deleted file mode 100644
index 0d168e8422d..00000000000
--- a/Master/xemtex/gslib/gs_wl2_e.ps
+++ /dev/null
@@ -1,67 +0,0 @@
-% Copyright (C) 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_wl2_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Windows 3.1 Latin 2 encoding vector (H-P Symbol set 9E).
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/Win32Latin2Encoding
-ISOLatin1Encoding 0 39 getinterval aload pop
- /quotesingle
-ISOLatin1Encoding 40 5 getinterval aload pop
- /hyphen
-ISOLatin1Encoding 46 50 getinterval aload pop
- /grave
-ISOLatin1Encoding 97 30 getinterval aload pop
- /graybox
-% \20x
- /.notdef /.notdef /quotesinglbase /.notdef
- /quotedblbase /ellipsis /dagger /daggerdbl
- /.notdef /perthousand /Scaron /guilsinglleft
- /Sacute /Tcaron /Zcaron /Zacute
- /.notdef /quoteleft /quoteright /quotedblleft
- /quotedblright /bullet /endash /emdash
- /.notdef /trademark /scaron /guilsinglright
- /sacute /tcaron /zcaron /zacute
- /.notdef /caron /breve /Lslash
- /currency /Aogonek /brokenbar /section
- /dieresis /copyright /Scedilla /guillemotleft
- /logicalnot /softhyphen /registered /Zdotaccent
- /degree /plusminus /ogonek /lslash
- /acute /mu /paragraph /periodcentered
- /cedilla /aogonek /scedilla /guillemotright
- /Lcaron /hungarumlaut /lcaron /zdotaccent
-% \30x
- /Racute /Aacute /Acircumflex /Abreve
- /Adieresis /Lacute /Cacute /Ccedilla
- /Ccaron /Eacute /Eogonek /Edieresis
- /Ecaron /Iacute /Icircumflex /Dcaron
- /Dcroat /Nacute /Ncaron /Oacute
- /Ocircumflex /Ohungarumlaut /Odieresis /multiply
- /Rcaron /Uring /Uacute /Uhungarumlaut
- /Udieresis /Yacute /Tcommaaccent /germandbls
- /racute /aacute /acircumflex /abreve
- /adieresis /lacute /cacute /ccedilla
- /ccaron /eacute /eogonek /edieresis
- /ecaron /iacute /icircumflex /dcaron
- /dcroat /nacute /ncaron /oacute
- /ocircumflex /ohungarumlaut /odieresis /divide
- /rcaron /uring /uacute /uhungarumlaut
- /udieresis /yacute /tcommaaccent /dotaccent
-256 packedarray .defineencoding
-exec
diff --git a/Master/xemtex/gslib/gs_wl5_e.ps b/Master/xemtex/gslib/gs_wl5_e.ps
deleted file mode 100644
index 98bdd470238..00000000000
--- a/Master/xemtex/gslib/gs_wl5_e.ps
+++ /dev/null
@@ -1,67 +0,0 @@
-% Copyright (C) 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gs_wl5_e.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Define the Windows 3.1 Latin 5 encoding vector (H-P Symbol set 5T).
-/currentglobal where
- { pop currentglobal { setglobal } true setglobal }
- { { } }
-ifelse
-/Win32Latin5Encoding
-ISOLatin1Encoding 0 39 getinterval aload pop
- /quotesingle
-ISOLatin1Encoding 40 5 getinterval aload pop
- /hyphen
-ISOLatin1Encoding 46 50 getinterval aload pop
- /grave
-ISOLatin1Encoding 97 30 getinterval aload pop
- /graybox
-% \20x
- /.notdef /.notdef /quotesinglbase /florin
- /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft
- /OE /.notdef /.notdef /.notdef
- /.notdef /quoteleft /quoteright /quotedblleft
- /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron /guilsinglright
- /oe /.notdef /.notdef /Ydieresis
- /.notdef /exclamdown /cent /sterling
- /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft
- /logicalnot /softhyphen /registered /overscore
- /degree /plusminus /twosuperior /threesuperior
- /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright
- /onequarter /onehalf /threequarters /questiondown
-% \30x
- /Agrave /Aacute /Acircumflex /Atilde
- /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis
- /Igrave /Iacute /Icircumflex /Idieresis
- /Gbreve /Ntilde /Ograve /Oacute
- /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Idotaccent /Scedilla /germandbls
- /agrave /aacute /acircumflex /atilde
- /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis
- /igrave /iacute /icircumflex /idieresis
- /gbreve /ntilde /ograve /oacute
- /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex
- /udieresis /dotlessi /scedilla /ydieresis
-256 packedarray .defineencoding
-exec
diff --git a/Master/xemtex/gslib/gsbj b/Master/xemtex/gslib/gsbj
deleted file mode 100644
index 3146b555dff..00000000000
--- a/Master/xemtex/gslib/gsbj
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: gsbj,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -q -sDEVICE=bj10e -r180 -dNOPAUSE -sPROGNAME=$0 -- gslp.ps --heading-center "`date`" "$@"
diff --git a/Master/xemtex/gslib/gsbj.bat b/Master/xemtex/gslib/gsbj.bat
deleted file mode 100644
index 6769ea304d8..00000000000
--- a/Master/xemtex/gslib/gsbj.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gsbj.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -q -sDEVICE=bj10e -r180 -dNOPAUSE -sPROGNAME=gsbj -- gslp.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/gsdj b/Master/xemtex/gslib/gsdj
deleted file mode 100644
index 9f3e200f622..00000000000
--- a/Master/xemtex/gslib/gsdj
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: gsdj,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -q -sDEVICE=deskjet -r300 -dNOPAUSE -sPROGNAME=$0 -- gslp.ps --heading-center "`date`" "$@"
diff --git a/Master/xemtex/gslib/gsdj.bat b/Master/xemtex/gslib/gsdj.bat
deleted file mode 100644
index c281323246b..00000000000
--- a/Master/xemtex/gslib/gsdj.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gsdj.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -q -sDEVICE=deskjet -r300 -dNOPAUSE -sPROGNAME=gsdj -- gslp.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/gsdj500 b/Master/xemtex/gslib/gsdj500
deleted file mode 100644
index 01f546a1139..00000000000
--- a/Master/xemtex/gslib/gsdj500
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: gsdj500,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -q -sDEVICE=djet500 -r300 -dNOPAUSE -sPROGNAME=$0 -- gslp.ps --heading-center "`date`" "$@"
diff --git a/Master/xemtex/gslib/gsdj500.bat b/Master/xemtex/gslib/gsdj500.bat
deleted file mode 100644
index 830717b090c..00000000000
--- a/Master/xemtex/gslib/gsdj500.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gsdj500.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -q -sDEVICE#djet500 -r300 -dNOPAUSE -sPROGNAME=gsdj500 -- gslp.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/gslj b/Master/xemtex/gslib/gslj
deleted file mode 100644
index 21a9f22f63a..00000000000
--- a/Master/xemtex/gslib/gslj
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: gslj,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -q -sDEVICE=laserjet -r300 -dNOPAUSE -sPROGNAME=$0 -- gslp.ps --heading-center "`date`" "$@"
diff --git a/Master/xemtex/gslib/gslj.bat b/Master/xemtex/gslib/gslj.bat
deleted file mode 100644
index 1009da8f9d2..00000000000
--- a/Master/xemtex/gslib/gslj.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gslj.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -q -sDEVICE=laserjet -r300 -dNOPAUSE -sPROGNAME=gslj -- gslp.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/gslp b/Master/xemtex/gslib/gslp
deleted file mode 100644
index cb01cbf5054..00000000000
--- a/Master/xemtex/gslib/gslp
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: gslp,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -q -sDEVICE=epson -r180 -dNOPAUSE -sPROGNAME=$0 -- gslp.ps --heading-center "`date`" "$@"
diff --git a/Master/xemtex/gslib/gslp.bat b/Master/xemtex/gslib/gslp.bat
deleted file mode 100644
index 3a9a415020b..00000000000
--- a/Master/xemtex/gslib/gslp.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gslp.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -q -sDEVICE=epson -r180 -dNOPAUSE -sPROGNAME=gslp -- gslp.ps %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/gslp.ps b/Master/xemtex/gslib/gslp.ps
deleted file mode 100644
index 64147ab6828..00000000000
--- a/Master/xemtex/gslib/gslp.ps
+++ /dev/null
@@ -1,695 +0,0 @@
-% Copyright (C) 1991, 1995, 1996, 1997, 1998, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gslp.ps,v 1.2.6.2.2.1 2003/04/12 14:02:38 giles Exp $
-% gslp.ps - format and print text
-
-% This utility provides functionality approximately equivalent to the Unix
-% `enscript' program. It prints plain text files using a single font.
-% It currently handles tabs and formfeeds, but not backspaces.
-% It will line-wrap when using fixed-pitch fonts.
-% It will also do kerning and width adjustment.
-% Standard switches implemented:
-% -12BclqRr -b<header> -f<font> -F<hfont> -L<lines> -p<outfile>
-% Sun switches implemented:
-% -T<n> set tab width
-% Switches ignored:
-% -GghKkmow -# -C -d -J -n -P -S -s -t -v
-% Switches added:
-% --add-to-space <units>
-% add the given number of 1/72" units to the width of each
-% space (may be negative)
-% --add-to-width <units>
-% add the given number of 1/72" units to the width of each
-% character (may be negative)
-% --columns <n>
-% print in <n> columns
-% --detect
-% treat the file as PostScript if it starts with %!
-% --first-page <n>
-% start printing at page <n>
-% --kern <file.afm>
-% kern using information from the given .AFM file
-% --last-page <n>
-% stop printing after page <n>
-% --(heading|footing)-(left|center|right) <string>
-% set the heading/footing fields; use -B first to clear
-% --margin-(top|bottom|left|right) <inches>
-% set a margin
-% --no-eject-(file|formfeed)
-% end-of-file/FF only starts a new column, not a new sheet
-% --spacing <n>
-% use double (n=2), triple (n=3), etc. spacing
-% Also, the string %# in a heading or footing is replaced with the page #.
-/PageNumberString (%#) def
-
-/lpdict 150 dict def
-lpdict begin
-
-% build iso-latin-1 version of a font
-/font-to-iso-latin-1 { % <font> font-to-iso-latin-1 <font>
- %% reencode for iso latin1; from the 2nd edition red book, sec 5.6.1
- dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall
- /Encoding ISOLatin1Encoding def currentdict end
- dup /FontName get 80 string cvs (-ISOLatin1) concatstrings cvn
- exch definefont
-} def
-
-/find-latin-font { % <name> find-latin-font <font>
- findfont font-to-iso-latin-1
-} def
-
-% Define the initial values of the printing parameters.
-
-/AddToSpace 0 def
-/AddToWidth 0 def
-/BodyFont null def % use default
- /defaultBodyFontPortrait
- /Courier find-latin-font 10 scalefont def
- /defaultBodyFontLandscape
- /Courier find-latin-font 7 scalefont def
- /defaultBodyFont
- { Landscape { defaultBodyFontLandscape } { defaultBodyFontPortrait } ifelse } def
-/Columns 1 def
-/DetectFileType false def
-/EjectEOF true def
-/EjectFF true def
-/Footers false def
-/FootingLeft () def
-/FootingCenter () def
-/FootingRight () def
-/Headers true def
-/HeadingLeft () def
-/HeadingCenter () def
-/HeadingRight (page ) PageNumberString concatstrings def
-/HeadingFont null def % use default
- /defaultHeadingFont
- /Courier-Bold find-latin-font 10 scalefont def
-/Kern 0 dict def % no kerning
-/Landscape false def
-/MarginBottom 36 def % 1/2"
-/MarginLeft 36 def % 1/2"
-/MarginRight 36 def % 1/2"
-/MarginTop 36 def % 1/2"
-/MaxLines 9999 def % max lines per page
-/Noisy true def % i.e., not quiet
-/OutFile null def % null = write directly to device
-/PageFirst 1 def
-/PageLast 99999 def
-/Spacing 1 def
-/Tab 8 def
-/Truncate false def % wrap long lines, don't truncate
-
-% When writing to a file, we want to write out PostScript;
-% when writing to the printer, we want to execute it;
-% some commands should be executed regardless.
-% lpexec provides for all this.
-
-/lpdef { % <name> <value> lpdef -
- /def 2 true lpexec
-} def
-
-/lpexec { % <arg1> ... <argn> </op> <n> <do_always> lpexec -
- OutFile null eq {
- pop 1 add true
- } {
- /t exch def 1 add /n exch def cvx
- n -1 roll dup wo
- n 1 sub { n -1 roll dup wosp } repeat
- (\n) ws n t
- } ifelse
- { pop load exec }
- { { pop } repeat }
- ifelse
-} def
-
-/lpmoveto { % <x> <y> lpmoveto -
- % Round the coordinates for smaller output.
- 2 {
- exch 100 mul round 100 div
- dup dup cvi eq { cvi } if
- } repeat
- 1 index X eq { neg exch pop /V 1 } { neg /M 2 } ifelse true lpexec
-} def
-/lpshow { % <string> lpshow -
- dup length 0 ne {
- addspace 0 ne {
- addspace 0 32
- addwidth 0 ne {
- addwidth 0 6 -1 roll /awidthshow 6 true lpexec
- } {
- 4 -1 roll /widthshow 4 true lpexec
- } ifelse
- } {
- addwidth 0 ne {
- addwidth 0 3 -1 roll /ashow 3 true lpexec
- } {
- OutFile null ne {
- dup dup length =string length gt {
- /show 1 false lpexec
- } {
- (S ) ws ws (\n) ws
- } ifelse
- } if show
- } ifelse
- } ifelse
- } {
- pop
- } ifelse
-} def
-/lpsetmyfont {
- dup load setfont
- OutFile null ne { cvx /setfont 1 false lpexec } { pop } ifelse
-} def
-
-% Define some utility procedures.
-
-/banner % ypos left center right
- { /HFont lpsetmyfont
- /addspace 0 def /addwidth 0 def
- /pairkern 0 dict def
- 3 -1 roll bannerstring pop 0 4 index pwidth showline2 pop
- exch bannerstring pwidth exch sub 2 div 3 index pwidth showline2 pop
- bannerstring
- % Prevent the last character of the heading from grazing
- % the right margin.
- % ****** WHY DOES IT REQUIRE SO MUCH PADDING? ******
- ( ) stringwidth pop 2 mul add
- pwidth exch sub
- 3 -1 roll pwidth showline2 pop
- } def
-
-/bannerstring % string -> string width
- { PageNumberString search
- { exch pop pindex 4 string cvs concatstrings exch concatstrings
- }
- if dup stringwidth pop
- } def
-
-/beginpage
- { /lindex 0 def
- /skipping pindex PageFirst ge pindex PageLast le and not def
- pagex pagey Landscape {/BL} {/B} ifelse 2 true lpexec
- /pagesave exch def
- skipping { nulldevice /OutFile null def } if
- Headers
- { lheight hdescent add
- HeadingLeft HeadingCenter HeadingRight banner
- } if
- /BFont lpsetmyfont
- /pairkern Kern def
- /addspace AddToSpace def /addwidth AddToWidth def
- pairkern length 0 ne {
- /addspace AddToSpace lpdef /addwidth AddToWidth lpdef
- } if
- } def
-
-/endpage {
- lindex 0 ne {
- Footers {
- topskip plength sub hdescent add
- FootingLeft FootingCenter FootingRight banner
- } if
- /E
- } {
- /restore
- } ifelse
- pagesave exch 0 true lpexec
- /pindex pindex 1 add def
-} def
-
-/endcolumn
- { lindex colines 1 sub add colines idiv colines mul
- dup llength ge { pop endpage beginpage } { /lindex exch def } ifelse
- } def
-
-/fontheight % <font> fontheight <ascent> <height>
- { gsave setfont
- newpath 0 0 moveto
- (|^_j) false charpath
- pathbbox exch pop dup 2 index sub 4 -2 roll pop pop
- grestore exch 1.25 mul exch 1.25 mul
- } def
-
-/wdict {
- dup length wosp ( dict\n) ws
- { (dup) ws exch wosp wosp ( put\n) ws } forall
-} def
-/wosp { ( ) ws wo } def
-/wo {
- dup type /dicttype eq { wdict } { OutFile exch write==only } ifelse
-} def
-/ws {
- OutFile exch writestring
-} def
-
-/outfont { % <name> <font> outfont -
- OutFile null ne {
- exch wo
- dup /FontName get
- dup wosp (-ISOLatin1) ws wosp ( RE) ws
- /FontMatrix get 0 get 1000 mul round cvi wosp
- ( scalefont def\n) ws
- } {
- pop pop
- }ifelse
-} def
-
-/StringFF (\f) def
-/CharFF StringFF 0 get def
-/StringTAB (\t) def
-/CharTAB StringTAB 0 get def
-
-/showline % line -> leftover_line (handles \f)
- { { showline1 dup length 0 eq { exit } if
- dup 0 get CharFF ne { exit } if
- EjectFF { endpage beginpage } { endcolumn } ifelse
- skip1
- }
- loop
- } def
-
-/showline1 % line -> leftover_line (handles page break)
- { lindex llength eq { endpage beginpage } if
- lindex colines idiv cowidth mul % x
- lindex colines mod 1 add lheight mul neg fascent sub % y
- 1 index cowidth add
- showline2
- /lindex lindex 1 add def
- } def
-
-/setxy {
- /ty exch def /tx exch def
-} def
-
-/showline2 { % string x y xlimit -> leftover_string (handles tabs)
- 2 index exch 5 2 roll setxy {
- % Stack: xinit xlimit string
- showline3 dup length 0 eq { exit } if
- dup 0 get CharTAB ne { exit } if
- tx 3 index sub tabwx div
- 0.05 add ceiling tabwx mul 3 index add ty setxy
- skip1
- tx 2 index ge { exit } if
- } loop exch pop exch pop
-} def
-
-/showline3 { % xlimit string -> xlimit leftover_string
- % (finds line break / tab / formfeed)
- 1 index tx sub
- cwx div 0.1 add cvi 0 .max 1 index length .min
- 1 index 0 3 -1 roll getinterval
- % look for \f or \t
- StringFF search { exch pop exch pop } if
- StringTAB search { exch pop exch pop } if
- dup length 0 ne {
- tx ty lpmoveto
- dup pairkern length 0 eq {
- lpshow
- } {
- { kproc } exch /kshow 2 true lpexec
- } ifelse
- currentpoint setxy
- } if
- length dup 2 index length exch sub getinterval
-} def
-
-/kproc { % <char1> <char2> kproc -
- pairkern currentfont /Encoding get 3 index get
- 2 copy known {
- get currentfont /Encoding get 2 index get
- 2 copy known {
- get currentfont /FontMatrix get 0 get mul
- } {
- pop pop 0
- } ifelse
- } {
- pop pop 0
- } ifelse
- addwidth add 2 index 32 eq { addspace add } if
- dup 0 eq { pop } { 0 rmoveto } ifelse
- pop pop
-} def
-
-/skip1
- { dup length 1 sub 1 exch getinterval
- } def
-
-/e== { % <object> e== - -- print an object to stderr
- (%stderr) (w) file dup 3 -1 roll write==only flushfile
-} def
-
-/eprint { % <string> eprint - -- print a string to stderr
- (%stderr) (w) file dup 3 -1 roll writestring flushfile
-} def
-
-% Read kerning information from a .AFM file.
-
-/readkern { % <afmfile> readkern <pairkerndict>
- /mfilename 1 index def
- (r) file /mfile exch def
- mfile =string readline pop
- (StartFontMetrics ) anchorsearch {
- pop pop
- /kdict 256 dict def
- { mfile =string readline pop
- (EndFontMetrics) anchorsearch { pop pop exit } if
- (KPX ) anchorsearch {
- pop token pop cvlit /char1 exch def
- token pop cvlit /char2 exch def
- token pop /kern exch def pop
- kdict char1 .knownget not {
- 5 dict kdict char1 2 index .growput
- } if
- char2 kern .growput
- } {
- pop
- } ifelse
- } loop kdict
- } {
- pop
- mfilename eprint ( does not begin with StartFontMetrics.\n) eprint
- 0 dict
- } ifelse
- mfile closefile
-} def
-
-% The main printing procedure
-
-/doFirst true def
-/prevBFont null def
-/prevHFont null def
-
-/lpfirst { % - lpfirst -
-% Define some abbreviating procedures.
- /B {save 3 1 roll translate /X 0 def} lpdef
- /BL {save 3 1 roll 90 rotate translate /X 0 def} lpdef
- /E {showpage restore} lpdef
- /V {neg X exch moveto} lpdef
- /M {/X 2 index def neg moveto} lpdef
- /S {currentfile =string readline pop show} lpdef
- /RE { % <isoname> <fontname> RE <font>
- findfont
- %% reencode for iso latin1; from the 2nd edition red book, sec 5.6.1
- dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall
- /Encoding ISOLatin1Encoding def currentdict end
- definefont
- } lpdef
-} def
-
-/lp { % file initial_chars ->
- /lpline exch def
- /lpfile exch def
-
- doFirst { lpfirst /doFirst false def } if
-
-% Initialize the device and fonts.
- /BFont
- BodyFont null eq { defaultBodyFont } { BodyFont } ifelse def
- BFont prevBFont ne {
- /BFont BFont outfont
- /prevBFont BFont def
- } if
- Headers Footers or {
- /HFont
- HeadingFont null eq { defaultHeadingFont } { HeadingFont } ifelse def
- HFont prevHFont ne {
- /HFont HFont outfont
- /prevHFont HFont def
- } if
- } if
- save
-
-% Get the layout parameters.
- clippath
- gsave % for possible rotation
- Landscape { 90 rotate } if
- BFont setfont ( ) stringwidth pop /cwx exch def
- cwx Tab mul /tabwx exch def
- BFont fontheight /fheight exch def /fascent exch def
- Headers Footers or { HFont fontheight } { 0 0 } ifelse
- /hheight exch def /hascent exch def
- /hdescent hheight hascent sub def
- fheight Spacing mul /lheight exch def
- Headers { hheight lheight add } { 0 } ifelse
- /topskip exch def
- Footers { hheight lheight add } { 0 } ifelse
- /botskip exch def
- /pskip topskip botskip add def
- % Translate the page so that (0,0) corresponds to
- % the top of the topmost body line.
- pathbbox
- 2 index sub MarginBottom MarginTop add sub /plength exch def
- 2 index sub MarginLeft MarginRight add sub /pwidth exch def
- pwidth Columns div /cowidth exch def
- exch MarginLeft add
- exch MarginBottom add plength add topskip sub
- /pagey exch def /pagex exch def
- plength pskip sub lheight div cvi MaxLines .min
- dup /colines exch def
- Columns mul /llength exch def
- grestore
- OutFile null ne { nulldevice } if
-
-% Print layout
- Noisy
- { (Page height = ) eprint llength e==
- (.\n) eprint flush
- } if
-
-% Write the kerning table, if relevant.
- OutFile null ne Kern length 0 ne and {
- (/kproc) ws /kproc load wosp ( def\n) ws
- (/pairkern) ws Kern wosp ( def\n) ws
- } if
-
-% Disable stack recording so we can use stopped with readline.
- $error /recordstacks false put
-
-% Initialize for the first page.
- /lbuf 1000 string def
- /pindex 1 def
- beginpage
-
-% Iterate through the file.
- lpline
- { dup length /pos exch def
- lbuf exch 0 exch putinterval
- { lpfile lbuf pos lbuf length pos sub getinterval readline } stopped
- { % Filled the line before a CR or EOF.
- exch pop showline
- }
- { % Reached CR and/or EOF first.
- exch length pos add lbuf exch 0 exch getinterval
- 1 index { showline } if % omit final empty line
- { dup length 0 eq Truncate or { pop () exit } if
- showline
- }
- loop
- exch not { exit } if
- }
- ifelse
- } loop
- pop
-
-% Wrap up.
-%**************** WHY IS THIS COMMENTED OUT? ****************
-% EjectEOF { endpage } { endcolumn } ifelse
- endpage
- restore
-
-} def
-
-end
-
-% Usage: <file> lp
-% prints <file> using the current parameter settings.
-% Usage: [ <arg1> ... <argn> ] lpcommand
-% interprets args like a command line.
-
-/lp { save lpdict begin () lp end restore } def
-
-lpdict begin
-
-/splitfn % (FontNNN) -> <font>
- { dup /arg exch def length
- { dup 0 le { exit } if
- dup 1 sub arg exch get dup 48 ge exch 59 le and not { exit } if
- 1 sub
- } loop
- arg exch 0 exch getinterval dup cvn find-latin-font
- exch arg exch anchorsearch pop pop cvr scalefont
- } def
-
-% Parse the command line switches.
-
-/doswitch % argn ... arg1 (-?) restofswitch ->
- { exch dup cvn lpdict exch known
- { cvn load exec }
- { exch pop (Unknown switch: ) eprint eprint (\n) eprint }
- ifelse
- } def
-
-/more % argn ... arg1 restofswitch ->
- { dup length 0 ne
- { (- ) dup 1 3 index 0 get put
- exch dup length 1 sub 1 exch getinterval
- doswitch
- }
- { pop
- }
- ifelse
- } def
-
-/-- { (--) exch concatstrings
- dup cvn lpdict exch known
- { cvn load exec }
- { (Unknown switch: ) eprint eprint (\n) eprint }
- ifelse
- } def
-/--add-to-space { cvr /AddToSpace exch def } def
-/--add-to-width { cvr /AddToWidth exch def } def
-/--columns { cvi 1 .max /Columns exch def } def
-/--detect { /DetectFileType true def } def
-/--first-page { cvi /PageFirst exch def } def
-/--footing-center { /FootingCenter exch def /Footers true def } def
-/--footing-left { /FootingLeft exch def /Footers true def } def
-/--footing-right { /FootingRight exch def /Footers true def} def
-/--heading-center { /HeadingCenter exch def /Headers true def } def
-/--heading-left { /HeadingLeft exch def /Headers true def } def
-/--heading-right { /HeadingRight exch def /Headers true def } def
-/--kern { readkern /Kern exch def } def
-/--last-page { cvi /PageLast exch def } def
-/--margin-bottom { cvr 72.0 mul /MarginBottom exch def } def
-/--margin-left { cvr 72.0 mul /MarginLeft exch def } def
-/--margin-right { cvr 72.0 mul /MarginRight exch def } def
-/--margin-top { cvr 72.0 mul /MarginTop exch def } def
-/--no-eject-file { /EjectEOF false def } def
-/--no-eject-formfeed { /EjectFF false def } def
-/--spacing { cvr /Spacing exch def } def
-
-/-# { pop } def % ignore
-/-+ { -- } def
-(-1)cvn { /Columns 1 def more } def
-(-2)cvn { /Columns 2 def more } def
-/-b { /HeadingLeft exch def /HeadingCenter () def /HeadingRight PageNumberString def
- /Headers true def
- /break true def
- } def
-/-B { /HeadingLeft () def /HeadingCenter () def /HeadingRight () def
- /Headers false def
- /FootingLeft () def /FootingCenter () def /FootingRight () def
- /Footers false def
- /break true def
- more
- } def
-/-C { pop } def % ignore
-/-c { /Truncate true def more } def
-/-d { pop } def % ignore
-/-f { splitfn /BodyFont exch def } def
-/-F { splitfn /HeadingFont exch def } def
-/-G { more } def % ignore
-/-g { more } def % ignore
-/-h { more } def % ignore
-/-J { pop } def % ignore
-/-K { more } def % ignore
-/-k { more } def % ignore
-/-l { 66 -L -B } def
-/-L { cvi /MaxLines exch def } def
-/-m { more } def % ignore
-/-n { pop } def % ignore
-/-o { more } def % ignore
-/-p { (w) file /OutFile exch def OutFile (%!\n) writestring } def
-/-P { pop } def % ignore
-/-q { /Noisy false def more } def
-/-r { /Landscape true def more } def
-/-R { /Landscape false def more } def
-/-S { pop } def % ignore
-/-s { pop } def % ignore
-/-T { cvi /Tab exch def } def
-/-v { pop } def % ignore
-/-w { more } def % ignore
-
-/lp1 % filename ->
- { break not { dup /HeadingLeft exch def } if
- Noisy
- { (Printing ) eprint dup eprint (\n) eprint
- } if
- (r) file
- % If requested, check for a PostScript file.
- DetectFileType
- { dup 2 string readstring pop dup (%!) eq
- { % Yes, it's a PostScript file.
- pop dup 80 string readline pop pop cvx exec
- }
- { lp
- }
- ifelse
- }
- { () lp
- }
- ifelse
- } bind def
-
-/lpcstring 100 string def
-
-end
-
-/lpcommand % <[arg1 ... argn]> lpcommand <any_printed>
- { % Push the commands on the stack in reverse order
- mark exch
- dup length 1 sub -1 0 { 1 index exch get exch } for pop
- lpdict begin
- /any false def
- /break false def
- { dup mark eq { pop exit } if
- dup length 2 ge { dup 0 get (-) 0 get eq } { false } ifelse
- { dup 0 2 getinterval
- exch dup length 2 sub 2 exch getinterval
- doswitch
- }
- { dup /matched false def
- { /matched true def /any true def lp1 } lpcstring filenameforall
- matched { pop } { lp1 } ifelse % let the error happen
- }
- ifelse
- } loop
- OutFile null ne
- { OutFile (%stdout) (w) file ne { OutFile closefile } if
- /OutFile null def
- } if
- any
- end
- } def
-
-[ shellarguments
- { ] dup length 0 ne { lpcommand } { false } ifelse not
- { (%stderr) (w) file
- [ (Usage: )
- /PROGNAME where { pop PROGNAME } { (gslp) } ifelse
- ( [-12BclqRr] [-b<header>] [-f<font>] [-F<hfont>]\n)
- ( [-L<lines>] [-p<outfile>] [-T<tabwidth>]\n)
- ( [--add-to-(space|width) <units>] [--columns <n>]\n)
- ( [--detect] [--first-page <page#>] [--last-page <page#>]\n)
- ( [--(heading|footing)-(left|right|center) <string>]\n)
- ( [--kern <afmfile>] [--margin-(top|bottom|left|right) <inches>]\n)
- ( [--no-eject-(file|formfeed)] [--spacing <n>] file1 ... filen\n)
- ] { 2 copy writestring pop } forall dup flushfile closefile
- }
- if
- }
- { pop }
-ifelse
diff --git a/Master/xemtex/gslib/gsnd b/Master/xemtex/gslib/gsnd
deleted file mode 100644
index 32257d07d96..00000000000
--- a/Master/xemtex/gslib/gsnd
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: gsnd,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -DNODISPLAY "$@"
diff --git a/Master/xemtex/gslib/gsnd.bat b/Master/xemtex/gslib/gsnd.bat
deleted file mode 100644
index fc536e046b5..00000000000
--- a/Master/xemtex/gslib/gsnd.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gsnd.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -DNODISPLAY %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/gsndt.bat b/Master/xemtex/gslib/gsndt.bat
deleted file mode 100644
index 1fefbee8512..00000000000
--- a/Master/xemtex/gslib/gsndt.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gsndt.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -DNODISPLAY %1 %2 %3 %4 %5 %6 %7 %8 %9 >t
diff --git a/Master/xemtex/gslib/gsnup.ps b/Master/xemtex/gslib/gsnup.ps
deleted file mode 100644
index bec6f72539e..00000000000
--- a/Master/xemtex/gslib/gsnup.ps
+++ /dev/null
@@ -1,89 +0,0 @@
-%!
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: gsnup.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Prefix this to very well-behaved PostScript files for n-up printing.
-
-/cdef { 1 index where { pop pop } { def } ifelse } def
-
-%%%%%%%%%%%%%%%% Begin parameters %%%%%%%%%%%%%%%%
-
-% All parameters are also settable from the command line with -d, e.g.,
-% -d.Nx=3
-
-/.Nx 2 cdef % # of pages across the physical page
-/.Ny 2 cdef % # of pages down the physical page
-/.Landscape false cdef % if true, rotate page by 90 degrees
-
-%%%%%%%%%%%%%%%% End parameters %%%%%%%%%%%%%%%%
-
-vmstatus pop pop 0 eq { save pop } if
-.Landscape {
- currentpagedevice /PageSize get aload pop
- exch 2 array astore
- 1 dict dup /PageSize 4 -1 roll put
- setpagedevice
-} if
-/.BP currentpagedevice /BeginPage get def
-/.EP currentpagedevice /EndPage get def
-/.Ps 1 string def % survive save/restore
-/.Pn { .Ps 0 get } def
-true setglobal % protect from restore
-/.ELevel [0] def
-/.Rmat matrix def
-false setglobal
-/.max { 2 copy lt { exch } if pop } cdef
-% Work around the common save ... showpage ... restore locution.
-/restore {
- .Rmat currentmatrix pop restore
- vmstatus pop pop .ELevel 0 get lt { .Rmat setmatrix } if
-} bind def
-<<
- /BeginPage {
- .BP .Nx .Ny .max
- gsave
- initclip clippath pathbbox exch 4 -1 roll sub 3 1 roll exch sub
- grestore
- 2 copy exch .Nx div exch .Ny div
- .Pn dup .Nx mod exch .Nx idiv .Ny 1 sub exch sub
- % Stack: nmax pw ph pw/nx ph/ny ix iy
- exch 3 index mul exch 2 index mul
- translate
- % Stack: nmax pw ph pw/nx ph/ny
- 4 -1 roll 4 index div 4 -1 roll 4 index div
- % Stack: nmax pw/nx ph/ny pw/nmax ph/nmax
- exch 4 -1 roll exch sub 2 div
- 3 1 roll sub 2 div
- translate
- % Stack: nmax
- 1 exch div dup scale
- }
- /EndPage {
- .ELevel 0 vmstatus pop pop put
- .Ps 0 .Pn 1 add .Nx .Ny mul mod put
- .Pn 0 eq {
- .EP
- } {
- pop pop false
- } ifelse
- }
->> setpagedevice
-/.EOJ {
- { .Pn 0 eq { exit } if showpage } loop
-} def
-
-{ currentfile cvx exec .EOJ } exec
diff --git a/Master/xemtex/gslib/gssetgs.bat b/Master/xemtex/gslib/gssetgs.bat
deleted file mode 100644
index 2de966321cb..00000000000
--- a/Master/xemtex/gslib/gssetgs.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@echo off
-@rem $Id: gssetgs.bat,v 1.3 2001/06/22 16:09:22 lpd Exp $
-
-rem Set default values for GS (gs with graphics window) and GSC
-rem (console mode gs) if the user hasn't set them.
-
-if %GS%/==/ set GS=gswin32
-if %GSC%/==/ set GSC=gswin32c
diff --git a/Master/xemtex/gslib/gst.bat b/Master/xemtex/gslib/gst.bat
deleted file mode 100644
index 80381f7fb13..00000000000
--- a/Master/xemtex/gslib/gst.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gst.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GS% %1 %2 %3 %4 %5 %6 %7 %8 %9 >t
diff --git a/Master/xemtex/gslib/gstt.bat b/Master/xemtex/gslib/gstt.bat
deleted file mode 100644
index fdb5d7d4e14..00000000000
--- a/Master/xemtex/gslib/gstt.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: gstt.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GS% %1 %2 %3 %4 %5 %6 %7 %8 %9 >>t
diff --git a/Master/xemtex/gslib/ht_ccsto.ps b/Master/xemtex/gslib/ht_ccsto.ps
deleted file mode 100644
index f0825d74dcc..00000000000
--- a/Master/xemtex/gslib/ht_ccsto.ps
+++ /dev/null
@@ -1,3171 +0,0 @@
-%!
-% This file is a reformatting of data placed in the public domain by its
-% author, CalComp Technology, Inc. The original file bore this comment:
-%
-% convert 167.pat 167a360h.dat 167a360h.lin
-%
-% Aladdin Enterprises, Menlo Park, CA reformatted the original data as
-% PostScript halftone dictionaries, and hereby places this file in the
-% public domain as well.
-
-% $Id: ht_ccsto.ps,v 1.1 2000/03/09 08:40:40 lpd Exp $
-% This file defines a /StochasticDefault Type 5 Halftone.
-
-% Note that the Black array is used for Default, Black, and Gray
-% (not too surprisingly), as well as for Red, Green, and Blue.
-
-% The reason for using the single Black array for the
-% RGB additive primaries is to make stochastic dither to displays
-% look better since there is no misalignment between primaries to
-% a screen (as there often is printing to paper).
-
-% The CMY components are decorrelated (90 degree rotations of the
-% Black data) so that misalignment doesn't cause color shifts. This
-% is the same reason that conventional ordered screening uses
-% varying angles for C, M, Y, and K inks.
-
-/StochasticDefault <<
- /HalftoneType 5
-
- /Black <<
- /HalftoneType 3
- /Width 167
- /Height 167
- /Thresholds <
-ff51ef01d993ec6bd87ae0b102f24fff9f52da29e9bbff389add8cd834f3a5cf26f879fb
-6afe32d2f8adfe79f7c760d0ea6ad87ae561f804ff53ed2dd95ec5ea52c1ff25f787ff94
-c7b3ff6cf7a7cb86f24388fecc5ce1be6bf356ffaef137cb4fd8b966c1ff43f9cb2fe4bc
-0bee36f554d969e91fed4ebffb79ff37b4f88affa501ed94e5bf0ac6fc8ef57cface63de
-7abfee7bb8fe4694ff2eed86f1a5ff70eeafd694c0f61a9cd883b6ff52affe8ef62bfec4
-93e578edc193f28609d9aee556f179ffc112fe87b9d618c89cf1b8875ac0dd49a8ff36b6
-f60affc1a1b9eda7cc93f679ff1ea7fb08a3ec5dd005e035e44ad9c00bed32d0afdd963d
-f6b215e085dcc5019ffe8dfb7ad9fa2b9fec9459ee79f8cf80d886ffa5cc95fe84ffa561
-ea89f2ca27da4fcbfb5ad83093f79a53d824dda53ef0adff29a7e0169ef2cf77d8b64ac7
-32b7db933bfb0de086cef223fdc932e0c20edd56d465ef33afd80bfe41afffcd7afa6dfe
-07c7b565e595ed39ffa5e64fd909ffe21d99f2d880e086c3dd8946fe24c84cfb0fbfe086
-edd165e5cb89db83f2b8fb87f2a15aff9af561ff0ff0acd875ffa9f92693fabe54e510f1
-45a5e6cc03d8fbacdc4cafff62e0b329f95cc0da2de0c015d453a4fe86f270aae289fec5
-48bee483ff56c4ff9013d893f868ffd834bafa19f6a5fe87f703fbc59ef176fe5b7ae4a7
-5aed79fb9ebff296e282c0ff59f296c5e12fa5ec22becfa2ed2dfaaf44d8bf64f286ff7a
-afc56bd0fe8c05f964fe52a5f9d17ae091e488d9aa38f84993ffb94ffa30fea5467bd213
-fab0d868afd990e083fc2dedc2449be7c249edd793db84d0ff875efeb98612c5fd25c0ed
-11c6eb7be00db0f35afa86ffafdd07d83cc6ff13d676eaacff1aeebf9ae669bde46eed42
-cbb57ce75ba4e081d85be09fd961e845acd833d9ff45bffa95d12ae57b3cff17b5f97bd8
-ad61fb79d3fc67b4f43bff79d98acbff79f7b025e03dcef62ffba53fe5c3aaed1abfed2a
-adf260ff2ef357ffc395bfde289fed7dd868e5b6fe93db77e22ac9fe1df347c858d0b669
-fed879ffb28628ff61f8af1ac2f0933eddff9a6ae05f9ffe934affa2fb6dcb9bd8b633ed
-64fb9df6b67aed58fb25d963d8a635fb08d7f83afd9dbefb02f48efec24bff0eedbd41b7
-ff7ec1fe67f598c7a4df14d963ffa5f9d886c9e946dc24e7bf1aed9944c2df83d893e252
-fb1da5e303ddc297fbb58ade81edbe72ff4fce9bd97cffc913daafcf84e56cdd01fe6df4
-d516feadef0ed82eec55ff8ffbaa51e078b6fa94ff1ae0a50bef3ad3fbc0a5ca35ed9ce0
-2fd5f6b64ebef388facf52f1d7af37c3ee3eff1cf7ce92e4ae48d01ef993cfa1f18cf57c
-fec293f2b250afcd1eea79e04fd91fed93ccb378fe87f21db1e417ecaf0870f486fe89ec
-b60bc361eea56bf49cfc83ffb66ef7acff15f952ef0bd26bf2bf56fd78ff6cd80de951d6
-15fab22df27afe5ee24395fb9e42fab91afe9ef1adcc4dafe29342c4ff97f679cb20d85c
-eac582ffd509e45ff27af7c766e09818ed5afeb669fa77febe6193f2d836e206a5dd8b18
-f4db7cb6d793e0874dfe24c9ff86de6bd932e04cca07da44e061ce7afed979ff57d398fe
-aad067fb2cf3d323e197c4fa7ada86cffbe026d851cc36f592feb325ffd208cb51d931cb
-e403da62ed93cba6fe87eb82de9bcab82fee5ffa7cff9fda5adfc0a0e533f4a5beea6ff0
-c667e0a5cd4bc631fb9bff5bc6f975bb45b5dd9fef94f701a5ed299feec2a5bfdc41aeff
-80f5b873d904e5cc3dd9af09fbd81d97ff7ac3fb34ffc8965afe02f550abedc681dc79ba
-f250fda6ff80fa9dff86fa96f32ae6bf0af1c2a5f22bc75ef99cc0e56193faac5eed55d4
-33ff4bbdafff80f194df5dd839e0c055affe89f793f05ea0fe86d8af2bfb46afdc37ff23
-f447f8a9cc9cc6b636ed84fe73f817c7afcc0dff52dd05a5ff28f779fb8eed86e50bb7ec
-1cc0ed93fb07ff60d981c7fa61ccfb874efe3189fbce21d94bceff90f7a279ff87f2a4c5
-85fec14ab8e66cedb64ff9d98fe479bfff0ca1fb60ee1094e8c40bc1dd22d85bd2b814b6
-ff5c9edf9337d988ff86ee0ddd40a6ffcb3cddbe06fe8bf09dea633ab8e510ff6dfb9bf2
-7efba4ed79df20d87afbc74ae038ffc09bc3f37bcda0d889d980ec1ffe45f4d493cc02d8
-87eb67fe81f193d686fecb7cd993e012d85bd877cffa6aaffe33e36fd086e638fd4bb4df
-9b3fc0dd7bd3ed9e5ff193faa02edf55c5eb15d849e058e575dda5f826afd07be09f21ce
-45fbd866cdf136e5a5fed83d9af35aaff06be539eda5dd85cbf94affaffa11acdc76b6ff
-88d808afea82ffcd6cdbad1fcafaed78d09fbfdc03d54fcd14d931d060ffa6e511b7f699
-ec79dd60e41bfe61f766fb14ff5ad890d9a51bff62f352ffa6d23ce04dd922edb65af240
-d160ffb6f526ffac39c1df81d9a5f94af4bfadd094ff0ff2afff1df6b905fec586d80ced
-c686fe3ba8f691fb7dff39f518ed80d8ff0bfa41ffaff288b424fabb7ad8b64abf6aedbe
-79fe86bdff98f679fe52ee1ab6e980d75ac1ed43f8d859b9f481fc50f227a5f442ffbf6c
-b2c3fe30fa4bb0f779ff93f687ff96edb13ec0ff5ad120aff707fd80d194ea0db6c99ec1
-e479f16afbbc7adc93e0bf22fb9fc2ff7dfabf32e7affe84eda94498dd86f19eff4cf217
-cc64d8a413fe2deb6cd879d886e59752e0a52af357ff62b3e871f2ca61de29cfacc79dcd
-62fb4688dfadcc79e85bfec6e59848f81bff93f7cc29ffd019e047cb02afd82ed876fc8f
-c622f69efe6acbaf1cfbc837e29fd96ac7e787d87fd8fb1554a5e491ed7cc5e027dc5be4
-4ad806c9fa6295ef86febf53d6a5ed32dd56d3f14ae838affe07e03fcaf22afc4086ee89
-d811afe4639cfb9308c0db24f7b8fe62d81de07bd18fff94fb27f1c97ce09cf63cfe26f9
-61d8ff79fad170e3c0a5fb10daaf24ffb99fe60ef05cfeb8a0c1f3982cedbe11dc9e3b82
-efd388de6fe004b1d958aaedb6fb6dd9fe65f286e5af3ffebe8ce42fb9ff7bed9962ffb4
-25b8fe9a3dfe0cf8459ce0ffcb66d81cfe43adefbfa2c2fb86f56da2eacc31d865f294ff
-3bbffa86ffa579ff8efa82bbd0a0fe6eb0d89dc2e5af5af897fc39c2e05dd3f29e69e47c
-d507e8b1fd5fd903eb57e07ddb6cbdfb53d686ca8ee19fc513b6ca3aafff9430dd51d87a
-ed99d154fa88ff93dc38e501e052cbfe67fdaf78f7c1ff09affe32c8a1fe79fb96f98739
-93efad43c7a5ff0fc1e07dec52cda5ed01df50d0f186db93f612e4b879e08bbaf374a90b
-f386e5c19cff883efe1eb5e037d2fb1aa8fe92e20ccf60e570b4cb2ce5c101d950e028ec
-59b7db13ff57f50affbd2bde68b5f518ffa943fbcc38ff92f39c46c2ed87f6a8c73cf4ac
-ff39b1ed08ff5deeaf45f5d96af29aec16ccfe80f498ff46fb08edc130d863bff77bff92
-f782b9dd3dd4ec1e8cd99dec52b7f35ed8b840e312d3ffbf1de597f926cba1fb5ed406ff
-6bfb84d88ffea50de546ed70d886fbcb4ceed02cd8f7bf50ffb161df09d0f480e679c5ff
-885bc0e450f577b5eda1c3f510feaf6dfb9db9f4a6ff94f631fa88bdd093dd75d2f286cd
-ed55d87bcbe578b3eb72d859c9ff9330fbbc70fe9fc50bcf9ae07bd9a4d819ffbe72b0ff
-4fdc83f8a545e0ad27c9b683e2af68f7a5fe21afd04ed92ae016a5f25fb7ffc55afb79d0
-ff85e822f1cb83f4a44ed8fb73d656ed64dc35f394f1aedc20e54ef532c0fa7bc6afff51
-f12e9fffa56afe865cec9ecf2ffb93f861abd959f20e96eeadff78d925c1ff4cfb289bd9
-80d0ed50de62c71bcd74bfd697ed4cfb33abfe41a4ff0ca0fe93f721baff0ec2fb29f8a6
-13e2afcc4ae527ee66fc5ff321fe62fa87e879d1fb03c2e923d861c6ef6ad8fa6ef3cc59
-ff94d351c4ea6beda6bffb6fffc986fb9538e0b12be4a913cb4cff64afdd6dc9f78835bf
-ff92b8fe93e579d9874dc4f87bcebc9ae03ad8fc219fde7bbedb19c6e901ddd13cfb78f1
-b949b5eacb2dffa5bfde44d801f2c499e085d87ccaff5fe51ebdf836ff7afb5af30dfe49
-aed97df1ca65e6c77ae0bc3bdc61ed519bf25ba5dd81edcf75f268ff95dd81d8a1d992d5
-a5c72ecf53fd31a3e05ea6fb92ff09b6fe1ebdd915acdd33e006f286b8ff0cf93d93eda1
-47e305beef86f4be67fa97e5abc59dfc30fe06bce7abed08e23ed114bfff2afae09544b1
-ff16f279ffaa67bff906ccfe6bf859b5fa98ff8ec2e022d997ff148aedc36af87afdb5e9
-8652fb3ef819f3af45ef87ff6ca5d894e493da85e068c1fd06e0af1cf9b726ef5ffbcb81
-fe88c4d981e1bf4eff3bb8fe1cdbaf06c1ff1ef541ff59f788ee9edd82baf286fec042ed
-76e589d0af64ff93fb79f5a4fe79e32d9fd987e5c71dd6f37dd0fe4cd817ffcc3cf251fb
-0fec53d87ee09661fe79cd9ffe7ff8a958ceb90affc1ea6dd85addc44ff4d286e4af43ed
-88e47dcb28b7e50ea4ff5eed81d8fc9f46e225d89f3b94feafd6a5bfe169dd93d0b841c4
-ed10f245d72dffc3a3e677f35aff96d078fe9ed817ade504b1fa2ff71bfc97c4e062a4ea
-7dd6f7ad5acb86ed7ae011db51ff09f7cb40d818e19ebfd951f235f7c24cea42d0ba6ac2
-da5ffcc976fe61aaff5ab8fc64a5e180ed76afd881dd92d881f9b6f258ffd01fb6f569c3
-ea44ef9efb71afd9882dfe97f6b00febb527ff60f295c9b733fe64ee4d7bfbcc79ddb636
-c552befa84fe63f1b8da29e510fe489eff31fb05f39ffd87cd7efeb6ee8742f927cea6c7
-86e952deaf4af595ff67f3d070e0a5d386ee098cf5d04ffe3487ec9bfab92ecaaffe7fd2
-93e0a969ff97f661f32eabfe83de77e19ec7a5ff0dee3a95f3ae4cf115cdf480da952ee8
-c421faa1d902fdb625ff60dea61b9cd839a1f9d849de27b4d162e01ed8f55ffbd5b73dc8
-89febd82e095d938fb11ffd693d9a2b3f2ad43f403fea5f186e007dba6cc14ff72f481ce
-93eed979cba5e077d82ce04ddca8049be1afd893ff3bed20acfb0fedc188d843c7b735fe
-c060ff48afd8ff30bee48dc9fb46dd12e5a5fb43bff023fb4bb7ed27d77bcd8fffc110cb
-a1ff02fb29ed5bd885ffcb19e9d18bddaf42e508edbf52ff95cb39feb96bebc67aef31ff
-b8fb85f3c25186ffadfa6fff93c1ff9731cba918ed86fa64d92efe5af779d0acdf844af6
-15ffd828e98ad8bf88d71fff9af6b84aecbf8fdf4eb6fc5fc007b8f566bfff5af7afff68
-fab8f64ffe15ed61d893fed781d86dff2cf9a5fd7aed9f11f195c1fb619eed930ff164b7
-d377ff6ad885e66aa5d87febc886f993fe07dc4be598f940afd990de7afa9be54ba9fb93
-28ff57fb99c2ff77f9b062ed7ae069c9f2439fe391cf6de444dc14e0afed9411bee603f3
-3a87dfb1f14fffafdf03edafd074ed0abeff569cecc1a5e586fe83bcff52f73afba8c73e
-cf79ff6afb37aefac930d8ff87e64bfe1396eac1189eed28d585dd79ca9fbdf269c037f2
-50e4aecb86e01dd852deafce38eb22e3c043fec3a5ff22ed99bdf24afe01c1ff3bfaa014
-d947df5bed6dfb79d865edca5cf23cbece11c1f8d550e0c0a5ec84d933add825dfc10dfb
-a5f62593ffd20af34ef795cd78ff61fa2fc4f280caa0cfaef954fe7de5c05f93ff9b52fb
-a5c79fe130caf31ffb51c639c1e212c99adab26ee580fe92de21d893cbed1a8ff69d42f2
-a2d485e5c54888f2cf79d95dff21b6fa46ff04b3e59fc3fa9b01ed57bff293ff87f76cfe
-86d97bf2af79e052d8b459fa19c796d0abf28ee362baf379ffc09bb8d0a5ee36ffa81cfe
-86b5ff7bf1a03187ff7bf649c511f388e469fe7af79ecf45d7aedd5ab6fe83d8af05fba8
-c890d1a3fe60e135fe5be576d80cdb9f24f8c545c0e21ddd42fe87f9b688dd7ab6ed954a
-a5fd76f11cccef47d815eb5ff27be45ba4ffd469e0afc720edb632fbafffa53afe94e888
-bfec7adf8bd1f74cff1890d3fe7affa23dd907d547e0a5ca51fe02cefb28f477fccd86e0
-66ec32de51d80dcaff30e5a81bf739ff24b6d987c5e56dd1ec18d964feb1e4b904b4d8fe
-9fbcff45efb2d93feb86ff60f114e579c1ed2cffbf5aed31e30de94cd7aff279db17eeb0
-fc78c9ed6cdda7f285ff93f1af1ad55dfe6cceff06fad1ed5add93ff65b9ff6bf5bf9dc3
-fe04f7c12fafed0efe5bfa73ffcd7ad809dfbd54f20fcbfc5bd830ef5797dd7abbef3eb8
-e026d0fb6af47efcbf17edb89de85bb6d395ed069fff3cf8a4fb81fe79f7b083d987d0ed
-6fddc38afd0ef5499ffa2da5fb91e525d851eda0fd8627f05acea0c80793feaf1ad9bd93
-fca7f73eafd97ce09ec3f86dffbf93fb1c9bd88dffc23f96e72eadfb13fe34ce60d86ecb
-ee78d90ce73ba0d96aaf30f9be3fafe60a9ae0ae35ff42a5d86ee687fb55d095e086d952
-a0e562ee70fac780ddaf36f1affe82c7ff2acffb75d9a465f787b6c6a5ea3098ff61f635
-beff86f83cc7afe56db6d60dbccb25e6c240ef65fd519ffeab58e495d67dedcd7be0c041
-cb5ef782ff6bd83bc0dd93e51cfe60f3d178dfc38cfa4bc72ed0a0fe5df21ffe4a93daaf
-42f062c0ff2dec5086fad467ffcf79d895d97df706fb4ca5ff93f481bbed7ce4ff95cb6a
-fed37dfad829fb86d1b1ed87ff4fd89fbef22bb0f414baf822fb99cb1da4ff6af99ec60a
-a1e51eb7eba542e413f3cd4ce50fff4dccb2dd83d893df70d913abe588ff4dc6f387ff79
-f493b75afb9ecc28e7c505bff93df25effaa04ff51f396ffa9c0df13affa94f578fb69d8
-81dda52efa4dff33afed86ff64e00cce95dd7abded22fb86d8a5e473f6a5bfdda408f09d
-3af286e453eca5d083eac324e04cd0ff5af72387e90de0ad2cf24ebb7fc3ee11fa53de24
-b7f409ff86cbfe63c9ed80daae45ffafed2bd84be06dffd066fb9461fec188ff82bffe79
-d893f186fb0bf341ff1ffaa0c1fe6cd81df7a124d950dd39d8ff88d80affb660fa88e07b
-cf85d82cddbd86db6bd808eb468cf2cc5ce00cd03feda7f639ffbf98ed6cbfe104d89af0
-85f962fb3bd0ff6dd39fcb08f33adac405f149ffc87ae0bf59ff0efdbf2bffb53bfa97bf
-fcae16c7a9cf60c1ff79f697caa6d9ff569fdd8bd67afbc779d958dd3993e4ab3dff4fc1
-e179d984e596fe86f32fafd943f4cd0af0b44adb25afed44de25d864e1afcd7be8c451dd
-2fee5be07ad2fe7df089feae18edabec79dbc198f030ff16fb9ff66dfbc822feb5f76dd4
-febe2bfe9dbcff8ec601b6d971e111cda9f779fe5bdd25cba5d888e5a501b4f437ffb681
-feaf5dfe97e066b7fb1df7a0ccb68d5df371e5bf85d93586ea9bfb43f0fb3db0d81feb53
-fe0293f2cf48ff1deda542fe99ee6beabc02fb9fd093fe07f73af351cf05dcc09aed6de2
-be87dd79cbf88afb7cbcfea5f97bff9f5bfdbe4696fe81f59cc7a7f154b5cb0fcfb868f9
-be3695f71cfe47afd893dfaf59b9e83e9ae3a54993dda23986edc478ec59b3fb86fe5bf8
-86f152e01fd989ed81ff54f419ff51f7c6e55bd969eccb51e993d833aef428d0af61ed3d
-d8fac59edb16f252ffc5f65ddc70e0a3d893ed67fc82dd87e3c12eafe595cb86e0afcf27
-c0f97effcb61f22ded66d8b79dc2ff7cf1a547fa11ffa525ff51fa31a8ed5ce51bcb62c0
-e831caed1ad9aced09b6d042ea04bffa2cff9ef23be1c581e5bf6bde86d0fb60ed43cff2
-0bcaafff79f2b8ff20f0b6deae4df91ac2e128eaafd420c79eff6cfba5ce34c6b2df72e3
-c086bd4493fe86fa15aadd1afb61ffcd7ce083ffd993fe8022ed45affe8ad8ac02b3d220
-ffb0065dfe15cdabc632f563faa4fe6ff25efe0af66cff9f17d149addd81e0bf90f160fb
-17afd85afeca91d87ecaed84d895e7b907d898ff8cf30d9adc51a8f886ff65d8f97bff92
-fb5cd8af6ee563fcaf23ff56fbcb3be9a611c97afe83befe61ed34d70fe088cf79fb05ff
-93d9a4fe7dd89644f2a5fe32d1aec54fffa2fa0f9efb932dd9feaded21b7c997ff79efc1
-87ba12f957ed38c101b2e2c094fbd465e02ced9dfe89f27dc7f5e2bf9ff943ff9eceb94b
-e008d832d876da93e550d9affc96f722feb00fff40bed093eb36e3b879e560f243aff619
-fe79c9ff68dc3bd95ad0fb79ffc660e02bcbaf48e027cf76e485edc242bcd18eee7bd807
-acff53f492ffb61ee54aa5dd86f966feac5afbbe51ce67f130d44aed60ffcb79e077e959
-ee0af367e56bf2d846c7f19810e080d6f643e557d8af40f7d993d3a7c98ffba5f550ff69
-c40ff7a4ff61d83bd950e5309a8427e071dc7aed1affb37cf797ff88f9bf3baff183e832
-e063d9c177eac5a5e427fe77f9a21bff33fbc29ee06ccf5ae03ca4f284faadfeb139edb6
-05f476b6f26fffc29dedb534ff12f5a5fe02e548b6f696ef77d7afe04ed8f79cc3ed21d0
-9ed981cbf41ce49be8a5c88dffba9df516bdfa04c599fb7fde92dc25ccb77dffab53facb
-6bff5a9ed984f224fe9cc632fb4dff0de060d884dd17b7ed87ca41b7dd7bee77ff86d6fb
-c4ffb7f108d393d985e4c241cd51ed229affc30ffe5dc97cf2a44cfb995afc7def95d95e
-cbee8fd8ae01ff32fb9cf293fdbb14e5c11e86e49fc77cdf93cefe12eaba1efb4cfec993
-d886db79d886ffce61e033b9fc2487ef7fbf32fb65ff54f115e642b8d886ff22fa54f30d
-e538d0af66d8a4ff2acbb638ffbfa5fe3bea07d0e67cb5ee39c1fb0afea5e06add7aeda2
-e56df1b6ff2def6bcefd34aff193f80afeafc80ef4bc45e58c4ca5fe5afb3df924f48efb
-bea5c5e04bdd87cfa5edb605ffd81fd3f331dc4dd409ffbd40da51eb88d2b579dd0cd667
-ebcc5396f7cf4aff29f951fb349bdca560e588da9f67f35efb37f860f2a51dfec19fdd67
-ccfeab04ffd88ad47fe195ff6dfd8eed5bc0d971e0afce79fe86d9fc43f36ce57bd8f487
-57f179d89bf78840ff1bd4a4eb78bace37bdf903ffb81bb2d9933e9fdd8dfaac52c1ff59
-d87ee0a334e697d967af16f8b6d979e0a8c96cd0acde16ea63fe78f4a2fb3af629fec76a
-baed86b6cc9cff84e0a86afb85febbf75ceec14eff85f72ea5ffd861bee992d8a5d887ed
-be50fdd279f20ac1e31cddb1c99adf32c6ed884cf213f9be43e5ce9351f309f9b629c6af
-c501b4fe39aafc9334ecb64fed1fb7e793da52fe169cd3e413c5fa5bb1e0a8c3f261fe27
-afe467ed80ccaf63e788fe49fbc7f554d01de59bdc80e524ff4bd0fb86fe2bccfedd6bec
-2ef2c012ef9ffe5a86ff93dc01d8b720b4d87fdd5994e59e52ff62f814aff12df6c30fe0
-a52495d912faa5bfe35fb7f08924fea208fb55f310ff45d7f39329ffbfa8fa83fea44bff
-0faffe5a94cbff83e09f71f59762ecafc0df6adaa5ef4afaa1f37ccfed15c6ff86f9c96d
-ff88c70fb6ed86c1fb42acfe932ac0fe1efb5495df84c8ff4cf696ff2ef4c241f2bd81bf
-13afe07bff64f605fb61c6abf289c143b5ef7a9c52c893feb24fff61e537f2b6c644b1f1
-57ff88f272ff90ccf81afbc20ade92e7ca6dd888e5b371f3b7ff72e658dd2893fbd04be0
-c16deed379e084ca9ae58601c4e69751e033d852cfed7abfee80d6fb08b7d83affc427d9
-ff19fb3e9ffe35fa86e06fdc2de54e93f6a54ddd06a1e2c03efba5ff3bb0e062c9ec70d9
-a9ed60da7ae2bf04f8b66ed910d05bd875de99d12cf9d895fe39edafd293b9cda0eb69d5
-10eaa6e058d5fab3ff21cf74dd87d994bed80ded9dfb79e89ee03fd709ed44afdb82f2b3
-79fe51a5fb5aff40facd39e14acc9ffe81efc4039cfe7af5b334b7fa3bbaec5eb0ffabf7
-41c0f08eff99f7bb30facd53e02ab5f26aedaf79eab359b7d893c2e473cd58d618ff97cb
-85ffd862caef7bd7ff2f9bf27ee564bffa22f19e02f54dff8bceaff536ffa0d834ed87fe
-93f29ffa14ff6deda54ee46ed89847fb29f342fe1ef596ff5ff71cffbe05d87ae8a8f702
-fbc41dff79fb60e32ccfbb1cc3fe6bfac0a4fe61d83de3c434bfed19d094dd679ffe7fb4
-fb1bafd96affafdf41d914d8fe7ccba4ff20f9c72ed966b4fe16d65ae00593e7a022ff95
-f77bd0a725fbd10dfbc887f64cff11f583ff93edae3febbf0eaffe27b7fb4487edd260d9
-27cfed6bda79ffd086e0c10af2439ad881e868fb9ee04ed824e579cbade10bceff90f807
-ffc0a5e17adc86b6cb51d9b684d99f67f33ff9be469ae556a0ed4eafd495c9a5ff70f95a
-addf9350e528f09dff6ef5a5ff7ad961f01fc1df06d4ee7dcaf243d837ea86f4afff964e
-ed18e07fd9a563f17bfbcb55dd81f47ac2fe47b8e085d861e53effc15e99e06ded28acdb
-7dd8a5e022d961c9f769fb9df155e56cccadf7be16fab6fe9508ffa5c73eaffe30a4fb82
-befe0ff746becb18aff77bff51b9fe5a89fb84be26afdd84eb68c5fe50d7ff75fa27cefe
-48f2ca94abd065ffd87ad2fa6ec2f632fe17f34be5c594ec2bceff7bd3be1eafdd0cd849
-e593fbbe9dff85f7a530e55299fe8bf9bf21cb5486e5bfa9ff5bef44cefd93de0e8cedaf
-ff25b4f26ccbfe69f303fdacd877edaafa41ff96c3fe68f2bb47b0f8befe0ab6d426e074
-d987ff09dd5393e9a74386e0afcc2cf797ed66bbdd52d2ed6ab4caa5ff7df2d23fb6c893
-df20ecc3d946eec7f35ad830fb119eeda507e0aded6eafe28726fde011edaf2ef2af27b4
-ea7bdd8bec7dd7ac06ff86f5b711aff779fcd061fe86fab603c64bf236eb53c7ff79dbc0
-0fe04ea8ff8efad106f267d09ec1fe861eeb58d0fec23f95d0eb3bd99e18d1afde952ff4
-c614dc81d9bf54e707d12cfe86eb8c44a2f27cff93bbfb1ec5b1f17dfdd051ffc4f65afb
-73ea7bd915cbf97bffaf27c2e950e029d95aa4fedc09fb64f5b4369ffe93499ffe7af186
-d9bf35c6f2933dc5fb0bc2ffd86082fec179fcb969ffd814ff53d041befe67dbbf41d861
-edc83cdd5193ed98ce2feea7fe8fd8b67ada8abaf424fbb476f1d061dc39b6fb93d92cf7
-0c95e0afc0ffa0317ef9d962a5ff86f6b0fb578dffbe5dafff52ef1aa5f387dd80e59bd9
-05ffb5e461dd37ed4bd0a0f94197e023a5e08e0ea1d834e0aefc59ffa548e41bf096fe7a
-fa8cf695ffc63286f0c0a5cf7affd102dcb7e716cda8e04dff90fa5fbfff6a9ceb9037a5
-edcbb638e6c609edbf81de86b6fa9ef224b0f079fa9afeb686ff95f3c514da5ae179d862
-e427cafb14fe43aae05fceff960df79eed7fc843fe87ddafed4dfa3a82e5b6eda614fbc7
-0be24fdd31c5e81cd8f986ccb688fec133ff4cfbb438b9f16dd82efcafcc96ff7aed64ce
-ff69c8fe38f4c6f267fec01a95d882f1c789d871db3fd816d055eb0188edd89644ff1aee
-56bef77dff6bb2f73ac1f477e824afe117ddbf45f7bafb1bf56efb5793db9f4afe3af7cb
-07e184d9fb33afd418cb4ce103d836a9ff80f7a5ff3df3b3ff5aaae569f1c686ed9e2ac7
-ea74d71cff64edafc560ff77d4a7f3d908ff5ccbe7945af07ad588ffa979ee9e42e505f7
-d449e093ceb76defa4fe4ad086ed9e4fe802c0db14e0af2ceeb884d9ab4a93dcaf52c6ed
-44e50baffe37faadf486ff94dc7cccfba75cfdd681d98de09a4bec33c1e486ff9405d298
-c2fb7bf688fea7cf5dd8984fdda0c3ff2ffac1a5e65b93ffc148b888c1ed68ff94f27cfb
-84f9cb52e0b118c3de9d0d88edd081d89f02ff3dd8fa81bafe52e092d89c16f8d831c6fb
-178ab7cc9bdb2887ffc0aafc1fed62cffb4dc7fe79d99d6bfa79ed0ff2c71ed866de93fb
-12c7ff81f8a75bfe86fba3d610f85efbb7ff21f39fff6cfbc19cf35ce7a006becd4be524
-feb52be1bf11aff463fa25fdafcba2fb20d94de6b8fd4bdd39d864d253ef03ff79e7ffb8
-0cf17ce460f20eccafed639bfed812ff4ae6a926d8b546ecbc74fb2cd2fe6188fbb8f5a2
-21fa48fed06ae8b85be534a5f371fa35ffbf5793e7b15ac2e545f867febef245d92db6de
-93f509a5e081b6f138ffc221d8affe61a5ff85f619ea59dc77bedf3ed3f273cb46f388e6
-76d706ec6bd87ae201d0b52edf85d87bc5ff65eeb66ff2c167ef74ff99ed2ccaa5db73e5
-0def60d079f2c55fa5ef7effa5ed29db94e086c72dce7ae067d897d092e073ff20d5f435
-a4e493d883cef772ffdb9f20e59af15895e5c13ae04dd9bf9bedb77bf6a715ff93ddc204
-cba8de79e2acfe03f49ffe74ee93d83b7fd19af986ff41d858c9f835ff13d0af5ae5a1fb
-5999d1eb4be0afcb7dff99f625a5fe9429bde69cc735affe8ade94d03efec293f679ff52
-f920fd42d9ae31fcd89b43faa2de41d95cb5ff50c0ff5ad882ff93faa52effd61de3be0c
-c2fe6bf53bb3eda320f6afff1ffa47fe32f394dab950c3ef52f704fe59b6c70e8bcffe65
-d988c9f905ffaf7af980fe37c912de4dd9c279ef55fc9fee4cc1f529f081dc86d724d9b0
-1cfbaeef02e553ce9ff27dffbb68dc94ed76f6bf89f23ebfe42b93fb9c39feb72ed95eed
-c66cefafff07f75dffdb26f056ff83f1af31ec5bdd87cfade08bd185ecc18d10ffafd00b
-c2fb82f7d479eb1794f3b8e240d808dec06293fb9e67f25bacd880cbfb56feddc040a5ec
-88dd86d8ae58fb79afff87d17cde9ff038fdacf43bbeee0cff43a8db72efcb1cdd5ef28f
-ff93fb83feb024d86de17bff0fafd86bcf3aff53f36bffc761e087ffa5bcec12c0e02a92
-f0b249b8de30ff09cba9ff7ef7bf03c4da79edc986feab0de14dd863de91d8bb79cda5c8
-1ce163da9bbeff13baf23ca0ef58ff1bf8b8e679df61ec932fccb704fb9fc5df8728afed
-80fe76eeace052cbfe8ccff818ffbc0ed88e5f95fdc352cb14f165e9c005c5e51ad92ffb
-bf71c4e06cd962e07cb3d878bfeb86d82dbbff95d784e063cc2ce040d0f888fe1db4cf99
-fb50ffb7ed79e0a2cd3f94f5af4dc925fb6afe78a3fad31bfea5fd68d297e06fed17d952
-e5a9ff51f80cafe039cdfb86ff93f9ac43fb15b1ff6df79fbff912fb4dcca5fa68c0fe0d
-d87ddd9646c4f534fa7bffaaf255ddac47f936fe9efa5bc79fcd3cff10f4b62ddf3d96ed
-9f61f27de9f9d206ef93ffa9bfff26f69afe66f281e0a541ff19b1f729ff9bfa4efea0f6
-1dfe56f3a34ae909fe3cbaf3a4c0f06db6ec4dbff761ed86df9f1a93fac00bfbaeec0ed0
-fc8df081d848cbed5dbee681d90cec7bf255fb94d088fe73d883ddc07bff54f176b9dc35
-d01fedc198c4e546d932ed49a8d888e079ed34afd974e5affb5cceff69acd887da4fe088
-fe7aedc16dd3b0e814b7f125f8b96db2d87bed88ffbf48c4e293ff266bafe079d835e24b
-9ed978df3dd0a4ff5cedc896ed7fd1a3cb18beed2ac762d0afe579fbc86ef7c3a6e55aff
-0e97ff08c8a5e085d922d73df2c3d933afdd7ad882fe9c2fe160db96e8ab06ff933cf95c
-c6a0fb22daaf3cf9b628ed44ec22a5e792d89ff71a9fed7ed970ff66f378faa5fd93c3ff
-61f425fe95c4ff1df5c1369cf123b5ed03fec617eec01cafe522ff93f55c85d8fe71dd55
-ecc7fb4afe01d969e5a8fb32d94fc99fff5afb99f483fdc951fbc187ec23cbb20dfa61c1
-fe51f17ae66dcca9e492ff3997d90fabdb9350ed1ad886d2e467dc7afb2eff5afa76feb9
-6cff87f755ff2be44ad9bfa5f711ff37f4b870e0c498ddff4aaed861fec67ae0c1a3fd97
-fad242fc1fe55fc8fb4cfeb7e53ad81ddfc004d058e80ce59bd2bf56e786deaa52ffc67f
-e26dd2bf63afff7799fbd061d852e00bcbff973ed0a9ff961c87e097cfa5fa1fd875ed87
-bee5f237d9b828b6d90b93edaf15ff93f372fcbf92e62aafe403fb94f459ff0bf153c2ed
-67ceff27f2bf9dfb79f7af43fa99f252d8a5cb93e0a510ea4bd3a9ed96c6b4fa79ff52c8
-b785dd7bccfb4df31fb987c1ea86e39c14f24fff0cc85aba87f36acf94ff7cbfde8a089f
-f186fcaf80ef8dfe7ab6ca4aff87f204d86cfa93d108f9a1fe51f79ee539cef34c94fe86
-f99cd9b629e5aff6058ae4b6f3af37f251bfef92ff09b0fe1a86cd7feda5fe77f9ce2ee0
-a0d843abd835e04bc6fb79d8b75fdd37d87adfbfa5fa18fdb186df5cfe32ceb630eda1cb
-28bfe689f301ee42d1f9c49ee505c94feb199ee51eee74fdd04ffe27a5eb7affd833f101
-ff37f5ce86d879e092d8ff08afe084ed06d92eacf5b4ff48b6ca31ff51dd27c6fb84edb3
-3bb7fe5ced29d978e0b138b9dc25d85bfaa526e7c406edaa3bf167fb53d886c1fb45d95d
-ffc87cfe9c35dd5db9eb69dcf74dfe01d857e0a55ef26cfa7abefe69f5a1ff68b5f24fff
-c285fe93f89e31d96addc42feb78d286e069ffc862fc82ffa916fe5fda79ffb8862eff61
-fb86fe7cf4cc69d888e028a3e592d9bf15ceaf6bfc9ecb79d8ba45ffa5f933f149a3edc0
-36ff5abefa87ec5ad86bcfed7ae093d89cf4ab3fdd15f8a5e388cd9dffb7f34cfc94f373
-ff85ed89d9bf7af2b56ed9ff91cebea0ff2feb77d782e522a8e113c2f484cdfa51d6ad9b
-df86e56df21dc4ffafdc31d0ea02ddc420c0e80bcfa925e2b015ea49c1f288ff9c5af7b8
-ff04fab3ed12a5e506dd5fe4cc7fd89fec961ef5bf92d0a6e039d9af44fba5f959b8f102
-f669ff87f244e6c362f9a5fe65afdc1eb2d882fbca6efe9ad6a9e83fcd96fd28f7a110fe
-56f519ed61ceff73d560d920fb43e07d169fe568cc12d5a3c90afe52ffac58fbc51cbc4d
-fa13ee61d0a5fe10f893d0fc61b4ff78e6a12bbffe0eff38d198ffb993e9860fc2ff9356
-f9b486ed799cfe84d9f769ffd771b6fe01e63fbde29345a5d99f4194d8f96fd0aff146bc
-f634fd4ac2e16ddd45f218bff865ff89d808bfdaff61d5ade040dd99fab60ee047ed28c0
-fb6dc7f268e6a926d951f017fb64b8ff0cc1df79e9c689d9a5cb88fb0abcea96fe80ed79
-d893f6befe2db5ff8cef3fe5bb79dd11e0c033e59ff2d578e091bff25ac2dc6aed3986e9
-d850cd1effaaf179c564bef124c649fb3bc0fb9a5eedacca49ff3bf9d15de030b6cb4096
-facd5bd880ccf612feb5f16df5baff8647b7ff3793fe9d69e086b6f15afea5fc9bec77b2
-d011edaffe823d87c6fe5793fbc12acf80ff88b5ca96e105ed994efe11bfff80e5c293cb
-a4e47af2ae4bffb75cf938ff4ada78e0a24df22ccba8ff09eb52dd85c4de47e0b6fb6af8
-94c4f472ffb062fe3793ffb33dfe20e79744ffa2bff7a508ed95d95be045afecacf979b3
-e68bd8a5ed4be4ba1bfe80e595daa619f1adff77f5a9ef1fa5ed8ffd5fa5d87dda25d650
-e323d9c1f27ceabf1ec4fa0fceff26b0ca0ad35ec3fe33ed9fc85194eecbf5972cc1ed12
-a7fe6eef3ad3f769ff86d87bffafcd94e35ff5a131f84cff20d861dd9bcc1fe196d07eed
-b8ff33f9c391bbe54bc7b673feae39f28bfa831ea5d927e944afd82aebd187cae609dc9c
-cbb66dfeb0cb18dd59c8ff6cfb88f781d0fb21e43ecffb5ff306ff72d982f3ce61d810f2
-7bc2fe9343c4dc0fe487c1ff47dd26c6ff39f460fc8df979affb8f19dc52fba5da80e4a3
-62dbf872ed86e525b6d86cff7ffbd832b117ebaff871b9dd5bd894e4a415d836ec4ce525
-d940fb89d003bfe088d87fecaffe31f687fe61f205fba41c93d86de010ff6cf486fad61b
-cffba805cbaffed060ffc09dfe86f99a16ed79baf765f379f9d803e079fa8dfe2ab5df40
-d304edb269bf86fe9e14bfd296b7cb29ff42afee91ffb129e54dbeeb935bfbb939df6bd2
-9ffa86b6e795cfafdf09cbee33c7fe95d66be62aff48f4c7934ad898fa52ff7cf6af3be0
-15a5f7c4ff62d946cfff7af608ff52c6fe86f4afd09ffa80eeb233f1acff50fb0ff3c255
-93e0bb45b6d886d96adfb1f644fca5f095d921e041a4ed934ed8ed6bdd5498f18f4fed02
-d84cc7fb5aff40a5d82fe44794edadf140d261ec7ac2f479fec134ffd8ed5cddaeff7af6
-54faa5c7a0fb25de72cbfd86d2f809feafce7afe98f207e76df251c90eff4286febd82e0
-aa4ded08f47bcd93d8af05fbbeff19c0de99d904ccf078bcea85539fe287fc9c26eda5c7
-90f1b76ddaa81cff61c1e058c6fd6beb7bda95d4a53cfbd001f0a8fa17ffaff452eb7add
-c15bd03cc2fe7dcbff62bbff7bbeff24f4c714dfc5aff679f0a96bdd88ccfb7dfec1afff
-8634c79ff3bb93fb1b9adda75ae6a01074f62de54cdb1de562de0be269d755f838a3f05e
-9cdd7fed2ae5c255b1fc93d91ee078ed9bc2f29f56ff62f5cf83ddaffe5df275ff88d932
-ade49339f362fe5abffdd23efec7fa38d20be0adcb4ee540d623fa48feca8bed0ba5ff1b
-9fdd42c92cee79ffbd78b8ff72db82e99f38bed22bfeb60dff80f7a661ee9630d8f30fe5
-3d99e47aaaff6dfb2f87e034ffbf0af5b624e09e07dd57d4fb6fff0ce447d8afff3bc7fa
-86debbc993d86cfbafd086fe94f28cfe9ded85bbdc12c9ff3ad854ffa518f9d633ce62ff
-9ffbba61e01dcde513d8a222ff9c2fc0e012d83cedc284f15efbc782d894e090229ae493
-05b5e979f288fe66fbaff381e292ed9b5bf67abdd979f3ce86fea5f959df19d8f72996ec
-3ad367c5fb79ff9bca51ed9fe02edabf01c3fbaf58cda7fdd85dfbd24be295bffe9dd380
-e2a5d86af15ec9fb87f6b81de093cfa5ff68f081e5960dee4afc19ff88f19e3bfeb635d8
-4fcd30d805c7ff68fa79b8ed88d973cbed79a3ff87edaf47d62efa93feb67bf889febf5c
-c4eb54b4fb9ff5b555fe9bd228b0ff16f445fab2ff4bd8f37ac0ff4ad72fe0c10f98fb62
-cc02bfdf3acefe2ee5bc47e10dd88ecb9efa5cabe4c765fe93f726d8b313e582faad67c0
-fb5aff9cf272e58ef12886b6ca0b93f8c11fd955dc1cee4bfa37ff86d9ab51ea2999eec1
-52f228cab612d960fecd79d9a5b857d90acbed80c6f577ff84f77afbaf44eca5e431affc
-02fa9642bfe058d90ecbf17de9c151d337ed4edd3befa8fa86ff8ac965d024e0af0ceea5
-dc6ae09fcf68dd7aedb961fe2baed96cf9b67cffc535b9ffa5f785ffaf54f26197ff7ff5
-6bff24e881cbed42a5f20fd85ee051edbf60f226c4fe0893eb86e04bd314feb9d9f742ff
-afed35a5ea88f27bffc193d09ac0e517ffcf7cbeff45a4fe8ae57cfcbfa3f330b4ff38f2
-cef76bffbc5ce003aadd18e5b1dd5ae096ce22c1f362c4e566f1affe1ff694fb79b5ff02
-9df682ffa5c77ae588d803d63ded1df996ff62f7cd7dff3df8af2dedb60cf7a41fe0c59a
-e580edc01ddd50eda7e55ad944d819e09dc7afea22caa9e051d861fe0987ffd07ae5b0fc
-95ff6dfaa5cf88e456f2d8b21db8ff88dda24880bfec6fde65cdff4efb06ccb15df70ffe
-51a5f29036fad867cbe907d95af535eb4dc6ace085d87d2298eda72ff978ffca88f1a53e
-bffe1af579fe8eb6ff46add814d986debf46c3e537c8aedd2bd9af07fbb61fff59f280e5
-79b6d841c0dd9347e96ed888cafb79ffc96ed0ff864cfa10ff419ffe93f786d917ee78fb
-95f265fa07fc79b7ed3bbffb86f2afbfdd9822fe9f46c81dafd902dd43ff97ccb746eda5
-d930ed64fab3ff039ed82efeb979ddbfa5e53ceda2e07eedc64abfe0ac13fdb56cfa83d0
-9edb93ff6dfb1ff652fee1bf42c3de8cd8a044fb53d1ff9361d9a4d856ef0cd09efb7aff
-6cf35c9dffa666fe8cf366fe71f2d561edcb73e0b5fe50cbff7ae8a513fec1a7fb01e556
-b8d73ea7e854bff2aad493cbb0f277d826d262fe9ed0be28afdc88d851cffe83f79c06d9
-a132fd4af1c268d9f978f4d081fe8ff0af1ff984ff7af76cfc9fcb20ed87c3fb79f2a411
-ed9739ff61fec46cd7b822fb96fe72f492dc2cd8afef1cff49cb02ed9cd991c8a04dff94
-f360fe21eebe7ceb9a0fc2f286ff2de07cdb86e524dfa4cb32c1e409d0ed20d840e1a1ca
-4e93ff9a4afba52795dba909f15afbce82e02cbdf279ff1df387fb2cfe9416e669ed5eda
-06e55eff7ee0af37f458fecd38ff79f8a617dd5dccfe6ae5c591e66efbb50bbee2ab4ced
-35d85ac9e969d813d03de0c251e5a5cf39e952d18ae0c366f8d583d99c28f946ffaf6de2
-0bd83fedc386ff4ba5d879e586df7bd05ef007fbd478d813e3aec967fdd62afab0e738cb
-6dea8afa3aff5bf6c03ff9a9fe87f581b9f883ffaf1afabfdb16c0da7bf0b9fa34f5c693
-deb938f05bff68c79fd9b45fe1afd976e0afc2ff22f8a5fd97c7b0f20afbc986e0a462ed
-b5de30e6c593ff2dbaef4dfa13add834ccff912cff9cc1f67bffa341fe8cf386feaf0af6
-88ff6dd999ff19f641ffb026b6f217e5b988e77bf1c153f89effb659f296c1fe3bf5aff9
-51fd28ffa5e88828f9b6ff8743eab80daedf79db85ff9ff705d0abc59cceb583e36fd823
-d560dd51a5dd6dd0ec873af7a7f237e610d383e08c4cfa239fff93d986e026f64cd0fe96
-09c3f73afe4788dcbf38ce4efa2a9edd934cff08c1fa94118ff39f56ed7adb71b4d59ac0
-ff85ed9450efce6adf0ab5e41adfc09add53e2c55dde7ad82ab5fb5daee069d97dccfb5f
-c3fb7affcd01d830dda6d079c724e4af04ec85e0bf1293d895dc83cb62ddef933ba3d1fa
-6fff93f74cfe3dd01fda5bb6fe4bf217fd48f210ff95f079ff2afbcb0efa4596fdb979d8
-65fec188ff4aafffd86bcbea4dd107eea5fe7ae69334bfed6ca4dd80cff59559ff7bde85
-ecd067f0c0d97ae841bdfed868fed201faaff61cff3df25ae163fbd8af3ff786fe78c3fb
-61f60eadff2798fbb6fe56f4c811f2cb86fe97f10893e89e4cd834a5fa85fe60ff11f35a
-f977fcd06afa5e9dd9ff34f255f719fe9e51dab9ed04bfd934e063caa5ed77fb93f1c678
-d992e079dd87d8b947b6d988e45c9bedc0ade00dcdff2cdea544f398c3ed0da1fe86bcf7
-7cfbb641bbd814f2c6f943ffcb24f0b501e1c1a0ed10feb63cffb520a5f38cd0f15eb6c9
-3cb0e29333c4e57cdd94cf26c7b716ff99beec4fd93aaad87dedcf6dbeea8636a5e6bd64
-e0af3ee829d455d8ff3cc0ed87e2bf4eecabc994e086d888dd39a5db26cdfe44b6c6a2ce
-abe279d0ff6afb7af55aaaf1c198f209afe04fd8149ff92fff51caaffe38f6a5fe03f3a5
-bfff8a61ff7bf3a05aed7bfbafcb20fb5db8db40f218a4d86add98ed80ffa55090d89d5c
-fbbe78ff61fb2cd7a8c77ae5c15ffacf4aff1d9de427ffa3f277cfff8a5bfbaf06fea5f2
-79ea61e421cba5ff8af225ffb93bd9f902c3f2d71693fa7fffa0bff76ffdbb79b1f60efe
-62f29ecc16f646afed1fff9fc0ff7bf6b087ee68fb0aff3cbff40f86e01eb3ce9bfe861a
-ff5bd8ff7bf386ffdd65eda2beed079ee57ceb67b0c83fe016d0e52fd84de9c793d702e3
-6ddf84d0fc77e562c4ff30f454ff1fe061d9b7fe1cedadd051eaafd393f279fb56f71394
-ed9c75e586c6fb79da6ed818fd48a5e0bf43c2e484dd4cfaa0d091fb79ee05cf93d7af5a
-fba779afff4a95ffd031d84ded0593dcae17c6e06adb97d01eff79e585befb64b6cb4aed
-16e052d91bc0e088d87ced5bafd8f79fc3ff47dd2ce0afcd87be42cc26c7b83bb3cc21fb
-61f7c74cd91ccdfa7efe86f553b7f795feb51cff60f299ff53edad30f3be9bd96fe0a5c9
-94ccaffb05f185e567ff10f69e1ee447bfe021d986d5ff32cafe04ddaf42f3b0ed53e698
-bfee0ef7a0ff5cf52eb6d70afe43adda62b6f54bfc86eebf2dedd868caed60b6fc9df378
-c3fe44f49efa2cfeac42fbbc93db3affd02bd8fe79f495c980fe93f2a92ef347fac296fe
-33be57e670ee93fb60f738d9fd93f8a5fc5ad8ff79e493d6b574fb99ffb64fda25d893ed
-74c605c072e08ed8b628b8d911ffa1ca04fe43f9c00efd3af64a93e4b343b9d891d97cc8
-fe80f9a560ffaff34ab0dd51a5ef6bff9fcb0e93fec360fa7bd886d923d86dcbff7af193
-c1f830ffc87ae0c10bdb6bfec01bfbaf23d986df0ec9a8e26bd987e55bd87ec9e579ed5a
-aeed6ba0f89607e2ae33fbb60ae64dffcb91dfa61ee980e58efb27d8b60cb8d87eebb104
-e04dd586e7920cf2bd40ff19eec230d683e59bef6cfe1fb0ff92d9fb3cf549fea7fa8acd
-79e07fe686edb07ded86df7ad9c468ff9ffa31f353fd32b6ed0dc4ec9335cca1fc6bf9c5
-87d82ce761fbd934a5dc22eb43fe60f387fba551e5c55fe077edaf1bfa399fffaad34a98
-dd75f4a1fe44bff859ff25f9bf1cc1ff92f106b5f82dc4fd03c0de4becc756ffd665ead0
-83db9f61fe6dc8ffb643c801aef281fe9ff349fec46af2c19fed16aff3a7d069ec83dfae
-5cf965f40bff49d09fc2e440ed5aafcf85ea78dd39f156f636ff50d3b82aff4cd0a8fe17
-f4b02bdf88cd84e096dd58cf9bfe43c0fe72ee0ae2a81dfe5af694d6b676bef886ff82c9
-a9cf9ee502edbf20acff12b4d088de82d2ed8724f9b0f288e538ce8ff16296d889de5eab
-ed953bdd54ff70d09fdf68b0fe87f373a5db7ebaf026aafb2bc5ed05d94b87efa5fee5cd
-60de36e06dd7a424ff972dfb77ffca4bfe2dfa99cf55fe93d8a4cabc93c0f837fb86cb9a
-f928febe0dcf96e57fd888dbc094ed6ce2c58bfb2fc1e35bd5f9c213ffb507f579ff8bdc
-6db2e31bd993d884cbed7dd8af12f248ffd108e450b6f413fb3bafdb71fe95f252bdfd3f
-f462feb84df3c778e00cff57b6ea05c1dcfd29ed79d0ff4efbce83ec9dd847ff1af4cc3c
-d820b9fb0ff7408bffcb79e051adf593fbd013d965a13dffafd093ff15f6ba78e2c558e5
-bf66df7edbac11f4be2fed05ff3fe15ceb7aafd60fe961d8b56beea5ff23affe15fbaf26
-f71bfeaf0be79ff2659bff9248a5e679edc0a5cb22ea3afad167f17bfb5bff2fb7f743ff
-c97de3ae67f498c2de6ae093c1ff85d038d976e5ca6bd99de32695dda55dff95d87cc6f7
-7fffa53cb6cba3fa1393dca50af5ae24fbbf93edb66ffa81ffd05ce4a1c3e09959f886ff
-ce7ae030a5ff86f7c2ed9518f94ea9d883edcf50feb68825f898ed46c8ff6be5a5ceb88c
-f2a8fb13bff168ffa2f518ffcb3ad861edc866de70eb9bd8a5ce69fabd57d6afdd03edb3
-fe61d93cff4afbbc62f2b704ff9cc727eb88e579c1e0893afabe25ddb03dfd26ffaf4ee9
-2bf261f7a2fb2c99f60ffe58bfff01fbcd31ee43faab2ad95bd0f67aff51c6aff235caff
-68d9b87ae45bce32e599eb4488febf63fe1ef4bf16edb710fe5ebae44ddc2bfc52beeb7b
-c1ed63fb31adf30bd8feacd201b0fb73b9dc43ff70fb61d82acb9ffe32ddb244bde0799c
-fa86f7ba4cf29fd051fb3fff4bf2c480ff1dfb50f56ad025ed93d686d86fdda5c887e6ac
-3ff8bca1d54dfe02afeaa6cf79fe85f9cd7ad988c7fb79d88fe0c006ccafed81d886cbf0
-6de7ba8ad984e367ccfe87ed1d99e10adb6dfe85e479bce646f3c90bfe81fbae12c8afee
-a52edc86d86cdd9fd168e897c2f16ffabe936bcfff44b2fe08ddc093dc7be9943af160ff
-cb86e2279fed92d81be697ff79dc62d879ee93fc4eb8de06e43c94ffaf02ffbd93ca89d8
-af2cdd79e086b8c796e2b77efb19f39ef70fff2efc79cced59dd13fbaad897f25cff19f1
-53e805abf242ed0da5f01afe46afff7fd954ff39faaf2bd8a246f710fea6d8159fe06fff
-c768f1aeea23d854fc2da4fb9361edb5dd4cd3ff78e006cbf951f2a7ff4cfa36feaf41fb
-1ab0cc23e1f30e86e3d56ef4ad5aff1efa51bfd986e0a438f059fec108fa58f6c44ac1ed
-21f7b7ff03e586c6f265fea5c0d927e0c286f12ff408e560ffabef41cffa29ff52fac65a
-dfbf32afed84d956e01eb7fe95ee67c63dfc31d984e09fd8b987ff5ed07dfeda59bacb97
-e75cef18e3a3ceb979f886fecb7aecc053ffb8ef3dd8af30fbbe3994f89cef86c1e01ad1
-ff982591f59f5ef28bfd6a9ae2c502beeb93da72c8e579d8f67affaad8aff8992ae5c237
-edc69dd0a5ff69fb2abffe93d57bebb581e0a67af286afe38a419ed9ad2fff20b0ce6ffb
-88f86cfd41d8a5b9fe95edc5118ffeb169d87ae90a9bffab63fecc6bd89ef986ff61d02d
-cba5ff91cfb56efbc04cfb36d9c09ce5b647c289ff67fa2fd787febf60f208e950df17af
-dd389cf29249c3fe7bf3a4cd7cffd14bdd02b6ff68f0af3dc2f9d838e9c62bd946d8ff38
-8dfb80cb24b5f806a0ff9351df9d3b75de4acafd8f61ffb463e445ed11e6c29ad962e017
-d851fecb34ffba09fe3bc5fbb5f451fbc39ac0ea4bdd1ae147cc9fed79e45bcc45b786f9
-bed915ed9fdb92caf236d0ee934ce418ed40c6a6f192fa5af20bde62f8c30f96ecc493ef
-2efb1afa86f6d636dfb6ed79ddaf3efb7dda8affc296ff67fbcf22d7fb9407e04cd910e3
-61bffe80c8f442d879fea5eb70bbfe7ab7ffa0f7b577baedae43fe9fe063edd432c6ef0b
-c8fbf193ffb61cf2b9d804fb8afe81ccaf5ef20ff9acff88f324a1d96aecd06bde9911e0
-85d387ed68f681fe99f383b6e913bfff23f87bd9fe35d24d9cf45aff23f84aa5e08b01c1
-fb98ff7fb6e507d947afda7ee59fed26ddacff801ffe66b7d493d8be0dacec93089fff25
-f79bc2ed5ad6ac37f24ae5b77be9a664ecc0a5fa81ff8af51dafe15c9feb93cf10dd51ff
-08a8e01ad052c610f4d31fddc088f046ffb786eaaf65ffb758af02d879ecc6439eed79da
-20b8f732ff84ecc5439dde79bef186fb51a5fa80ffbc6efe1ddd3cd90cd731d853c7ff77
-fa5fabdc93ed17a6f288ffc972e086cc6bbfff79fbaff22ada52cafd66f795c2ff19fbbf
-44affe7bee5ab8e2c6a5f658ff3bf39ffe4cfbc8e552d062e521a7fe1aee84d8a5c904ff
-5ff7c933ff5abded41b9d486fa36ffcd19fe5df788d893cbf35bfb84ee93e4a552ff65f2
-11c6a9cd1efc5af798d92ce5ccfb87f65e97ffd252f5c1a1e373dd52d0af69bffb34ceff
-5de617c8e527d84fedca56f27dfb89ffa6f87afea52ed993e0c23bfb64c0e654dd05b6fb
-39b9fca5ef1ed93ee571d191eaaf33d7be6ded86d86994ffd250d938cbf48d46ed11df77
-cb64e079d9bf6db2f384dc8affc968e0b1ff27fa6ee086da19b0df75dd16cb9fe555edab
-db69b9e586da78ed37e64e9fdd93d929ff61f9ca84e09bff7cfa79da80e014cf88fe649a
-49e434ddc11591e0a62eff4bfb99bef628ffd87fe4ad0dc79fd9b35af0acf71ca5e7afc6
-60ecbf47c5e007d3f257f60eff86cda2ff7ed896ec82d8a5e40fd85fe7b1ca94ff57f90b
-f397ff22fa37e14aecc40c86f5b6fc8705ffc093feba9bedb02bf5951aff3ac4fe03ec51
-9ef6944dbed093ed51fec493fb86f59afe6df924ffc60693f3a54cfb32c8afff7cfabf2f
-fe6cd482dc31affb27d056d838f24bffa4bffa40acedffc0a5fe70fbadf841fec594bcd3
-09e06ee59504f161f796fe48f98fffbf6188d2fe8e07ffd82b96f286b0ed6bb1cb77d69c
-ea08d93ef525fe4bf72dfe7cf488fe974cfe12bfe080d865e07ab5d898c0ff79f7afe99f
-1c95e5d171e05ccf43f801ffd06ae5c2a4f078add87bf9d10dd8f474fb11b5d8ad3bed4d
-d625cf4fe0b7d99661c1fc29ecc397bef91fa2d903e186c2f00dfbc1a4e079d993ed86e6
-9ad2ba2add61edca1978d920cfb92fe06cd787ed18f379ffa7fa48ccfcb4d930e088edba
-32d001dafa9e42dfc15aa4e5c313fe5dc1ff1dfbbef14abffe7ce3abcb6de0aec561ce46
-de26ceed7cdda041fea6fb3ec3f15cfe14acd82ad95cfeb8f346a5f228fbaed983dd7bbe
-fe25f959dab831fbbf42aefd8d35e4c499ff29f59fbfff7cf28efba73e88edafe07bd988
-ff0cdf6fe8ca65ffa8f741afe4954bff04f64cfd15feaf08fb61f593ffb582e0f393fa7f
-ef93c4f20ed961dd50b0d8388dd9b8864fa0ffaf21cb5df586fdaf2fc0f181fdaff76bfb
-b677e5349fda94378ffba561f3bf58eda4c71ff099ffba9ff26db5fa37f6b2c720ce9ffe
-06afd187f455fb92e32fd861c9fe7fd8a114ffb632fb4aa5de86d810ffce6ae093ed62c0
-ffa548f179e069da0eaae061d803ecb4fe13fa33ff56d56af2a2fe3e94edc11fd5a5ff5a
-bded7be59ec7b3db6acbe484dec24ed00afb5d3add57e009ff4bafff7df888fece67eec4
-fe26e4c4ed6bd4fb7be79cd86ded96ff6fd021ed32dc4cd2f092cef748ffb6e41cddc42b
-94ff12fa51ff79dd0de55bc2ff07c1d986ed79f285e873bbe43ced9fe07ad06df983ffaf
-34e564efc961f2c793eacc5cff98ed7eaff308ff2eb4db1fde86d3bb40fe80f7ce33fea5
-f96dd884dd79cdaded16dcb94ab6d8fb4c90f279de7ccef936b6cf5ff22da5ed3eb6ff20
-aded7be8a3d1b889fea8cb9ae567bee835cab520fca50f7dafff8c07f445a6d80eff3ce5
-4cd80ee152d995cc92fea526ff7ebae065d87aee51ffafdb86d580e99ed052f593fb3aa3
-e09353ff17d951ff2ccbf669fec524bfff03ebb5dc10e099beff3e94e69c53f50ab8ed28
-d950fa38cbbb9ec5e95bf0affe05f9a4c2e04b93edc558bfe539f24dbde75f98fb7cff89
-f608aae0bc55fc33ee1699d9ff1dfa93c0ff88fb79c99ff836fec127ffec11c351f939b3
-fb24d093fb79eb84e0b6f2d842bddf83c6ff79ef85ccaefe79f5affb7cff75f20addbe55
-ed03a5f315feaed070e55ced41d9af01fba9c970d5afee61feaec3e588d493dfae46d8b4
-79fb50a8f29343a4f66afa1eccaffe23d1ff8dd978aaf78cd285e668fe6ff57eff9a55c1
-e76bed2196fbb80990f126a4ffc19dff21f8cb45e226b1d07ff12affcd88d893fec75289
-eaaf63dd55d819f24be567d9b078de62be9eefd278d8f173d9a8ed02dc55f73ffe5393cf
-fb5ffe9f1fe249b8f31b9eddc235a3e016d859e87afbd06bfbcb84d9992ff9b707fcaaf8
-6afec086ee2fff1af886d921ed449cf402fc5ff887ff0eed9ac2de61cdffc34cd088ed79
-df81dba538e34cffc95fe014feafd71ce045d815d6fa9249d97dffca5bd8ffbb68fad981
-0de063d878b5f59ec2ed37feb5da9911f263e56baef5d844cbfe0bf775e286d888ffc404
-fb93f44afb2790ff9f0cbffe5c86ffa1bcc998d1adf81ba5eb37d1f686d9fe68c1fb2793
-edbe69f787fe9fc9399bdfaf3fff4df5c979edd09a25c2de33e347afdc8ae0bf42c5fb7e
-b9ff6edca9ca1de5be9fcf5cf32ffea520f086feb948fb06f361fbc37ef2a61efd93f2a1
-4bf995c2fc93e1b929c5ffb4e43ba8f38840ead29646c6fbaff393fd07d058fe86dda248
-85ebc1acff2cbfe00da4fb9369ed96ceaafe12ee4395e1b632c787d8b0e531f3aeed3bb8
-e2c34af116ff30dd62edc779dcaf50cbb40aace081cff858ffd040b7c629f9afff21f593
-c3ec68b5ff4689d8ff79b2f693ffd379f35c9affa565e2d014ebc16aed99d54dfb39ff93
-d586e8c095e218e7a7c79ecebc0fedb830c0eb66d93acbe374ed29b661fe78acf386139d
-fad819cffb9f1bffafee864bc435bfed92e019d56df2befe3efa59c9a5fa50ffc537e5d4
-af2dff41b8cfa4bff151f7a7ffea5bfe7ade65d886c8fe1d93fa88d978e97bff9f4dfe13
-fa98ff65c2f140ff60b6e5028bd9f270e062d888d670e50aa6e01eceadf32ebeed17cb53
-b909fe35cbec0dd8f13093fa9f30ff4bfa82f18ad873e00cd952fb3aaed87cff5bf740ff
-b06cfa9ffe7ad387ffae0cffbe9ff7c402c6e543d0efc05092e8af7ac1e06fd82bdea9d8
-fea05bff7af75aff0be591d878df01ec81dc965ef8b71decc39de760fa28fe83d86fd91e
-9dd005cb95ff21f94f9cf2d832e55afbafcc07c0e585ed88e023d8fa74d296ed38c9a8fe
-b01bffa5ef10e451fe9fc1fa7afe61dc75fb599ffe81d8fa99c3e57ab6f955afffc84ee0
-bb85ddb429b7db18eeaffe79f281befe61f227dd92d885e5d51cd950dd08ed52e589d03b
-e050db96f068ffaf31feaff664fe32f752f494fe62fa0186eac51fceafe886d8b322b8f3
-96fe61d626f2aecd86ff7efb6dbdf396dc62e50cfe93f267f8abfb43afda6ee6cf6cb6ff
-a5d68626f28bfa2bd7b93eb6ed932ebdfe12afff83dd52e398cb4abffc7ef2af36ed56d9
-87ee11e797c4e166f2a626ed4a96ff28cf8ce761a5f379fdce0cfea0f665ffc2449fdd1d
-c7ed01d988d172ed16f94ba5ff92f385fbc398bafb5af480ff79fa2fb8d884e578dd10cc
-9bd887ddbf15b0ec87e4bf42fba5f23b9dde52fba5ff30cf87f19fff77e907df51d83be0
-03cc4fc0ed87d2b53dc5bc38ed5ac1f583fea507ec4dc80cedbfffade05bda6dffa4f84d
-ffadeb5ae1c763eb1ef66dfb87ed79b6d122c0da90ff26c6a1feb83cff04d83fdfc091fb
-d869f0a8fe04bedf19d845a6ee6dd83ae0ad70facf7effa760e4b8ff3bfbafca79edc055
-d035e0a546fa2dd7a5c8b410e9c29ffb0af25ad894ff58f104ff42a0fcce3bd85dffb271
-dd83c7ff26ed82dd6ce652d919cb4cdabefe6df5a5f286ff91fca91cff53f8a5ffe092d6
-a3e518d137c0ff81fb7af69552cd399afeafe805d86acf7bdc86f79f48fb93d1a5d936dd
-07ff45f68eff6be174b6f74fcc86da7deda4fb79ff61be0eb8db4386d8fb7bfe8af7c65a
-dd86fec004eab726e250ccf4934ba5e09643feb32afb86f6b66bffbe7aed86fe23f2d193
-50dd80cba5fe23eb86d77ee4a5c2f26093ff9df125d0f50ffe4eafd262f815ccaffe7dfb
-8bf7a73d94d8b916b4d94dd82df6c993e07fdc156afe26fb62b6ed97e147d0a5df3eb8fb
-76d8f38646c2fb80f218e537d809cff0ae2fff5dc0fe7bd886e09fcd4ced01d7ed79e41a
-fb51f4be6cc3eb1bd1f59fff75bff2af3bcd5ae62497ff19f2b07cfbc659f085fa9a2efe
-b5f20acef17edcc499de03eccb1ff1cc14dc6dd99949fbbcff3eed69c6b661f42efbb34c
-df23e6c70bd96ce552b7cb95ed77fac09dbbed3a98e05fd822edb3fd2efa9ffe7aef87e5
-bc4af225d85bf1c7afe080c8ff50f787bbf323c2ffd219e1a50ec5ef9655dfb2fe9ff96b
-feb975ddc19af10faff343faaf13fbbc9dfeaf36ff95d3a6e09116fe35a5dc9357eb39d1
-fd1ee493eda5c9afed79b7d143e73395ffafd811c0ec7cd96afdbf64e50efe49b9ff5a9f
-df935effaef737ffafd71e87d8aff937fbcd9fdc78cbff93f979a9fa90fe82da89fb31d8
-b604ee4bff79f9c70af0a1ff67d086ed5be03dd00efe599ed97bfbaaff98eb419ff20e93
-dcaf15ff5fe5934b9ff580ffaffb30bbff933ac650b6e9983fff1bfa64cca2e688dd79c7
-ec60de2dcf65bbca61fa2bc1ffd886cef84effc986e0ad5cc767ff07fa4dff38ccfb69f9
-a3c4e0883cfda5f75dd521e99f2cffadcb93e778ceabfe3df8afd854a1e082ed69f7c2f1
-1693e09907ff51f1147fd939bdee49d72ec6f91cabe061ffc689d893e060a5feb649bae1
-0fdd76cd93eba5dd91c6ff09e6c039cc017dffd179fbcc42fdc497db74fab5ea31d861d9
-7bcfeb1dd9afed90db14cbf37fd891e033ff51cf25ff3da7fe86f292d9fb0de5afed8046
-b3e85f99e3ae31f711fb88ed9ed8b67ee090da9e0fedbe74ff08f5ca62d837dd87ff79bd
-df934cf230c1fa20ef71d980eb0bc1ed61cd06dda54b8fffd053edba7ad992c5f389fecb
-67e087eda560c2ff7af09e44fe2ef40ebed939dd93f679ffa5fb19ff75f966f235b7f45d
-a0ee8afadab521e752a6ed78e52ec1ed03d86dfe87f121e45aa0f67afa09ff6efb86bee3
-59ee7af4c293fbb583f1cb1cd953ff3aa5f2934ac5fba5f223fec105fc84d8be9fd625fe
-48f7c51ef461feafca28de5cd9bb85ed7bfeafed45d0fa5bf5d885ffa561e093d617ff62
-b6fe29f693ff7afdb6df39befe80c7f728feac44e41d9eff0ff551ffbae640d816cfe57b
-d985caff73fa7eed31d7b446b8d95ac926d89ce07ac8affe62de47bf60f49cbfff07d985
-fb4fb0fe57e0afcb50fa86ffc043cd5ce5a3d048ed23b1fd03d2b219ed61e4c04a94ea9d
-d27be7c55cd8ff8906dd6dd67bdd93b9ee4bff3cf6b780dd6ba5ec82d830e078f393fbad
-4aff1ae09f0cc1fb9704c9b716eb51d0f2af43fbbe9dc4e586d875e442cb24ed61faa20b
-e843a5e069d5fb6db7de79d9c094d8089af386fbb959f1a5fc479ae228cba3fe63f396f2
-84f488fe52fb1aff4ce415d87bf193fec334e068d059ee9fd979c6f49613eca2c6b601ed
-93feabc62de7a6c2ff51cba1ff6cf99edb06feaff567fe09f6a020feac27e0afc0ff51f4
-34fa62d0b181de78edcc14ffd05affa6f893fe52d21fe498d6be6af3cb8e5fe5a8ff71f8
-9bda8a06ffc387ed33dd3ef24efbc09ff9b384d97ae5cd6dfed186ef0fa0cfff4bf7af2e
-fd6df7c95ddbae3affbf1fd0aff367b7e806c2df1fd839d502deabed83d093d886f7b0fe
-2de50fadfb86f397feaf11ffbf2388d0fb62ff35f2d078d91be086fe7ef76094de7dec3c
-bed834c3ed5dd727dc84e06dc7ed66cbf371fd3194e1afcd9ce51ef3c102fe4d9af3bd30
-e5b60ac641b7da8bf16cfa32feb247ffb8f232dc4ce0af28febbd96de55aaafa7afe99d1
-b002e05dd5ff12f14db8f2af1dff5abfe93390edc561eca5d345afff27f4a1cb7aec5bdf
-15c7ff79f96dafff81fa9affb93ab6dc60fa32ed993fcbaa80ceed4dd81ed83be5bb6ae0
-aaed47bedf89d8994bffa8f861f042dd0ecef42bfa5bafe586fe75a5fa80ff52c8b3fc3c
-a9f79350e59dd9f9860eff4abfff58e4a5caafe08952f179d998e8aaef02ff4eceabdf75
-d0e68616c5fb7bd887fcc78342f6b223fdcf08b4c91eef86ff93ed2cafca9dff8b30e096
-caa5f97cfbc10193feb71dfb93e080d075e409f894ff87fbaa40d3afed52c0e061cb79ec
-a3f60be8afc779ffd96dfade599fff90f984f062caf841fc6bffa528f67afaafd82fc89a
-d2b99fff74b6d895c5ff1ff148b9d90fe0bfa5f91896e4d010d8ffc215ba50c2ec89ef76
-a1d87aff41f82dfcc3a3fe3af75dff85e47ab6f61293ed239ff8d869b3eb1cee3ea6fad8
-79eacb6794f6e060ffb752c534c1f563fa3ed8bffb5cf749df29d863daade53add84c3eb
-13ef61fe86d954d72cdc61ed93e5249efb10a5f01cfc58d37eff9f27feb706b4ea2089f7
-c503dd5ccb94ff1eafd093da0ae5b859dc11e864fd54f307fe66bfed47fb12ed88d96acc
-ff7bf3963ae585cfff498afba33f86ddf57ffe43de13d4f926f292d894d879dd10c0e077
-d025d844caea7bc8fb5fffc138adfe39c2ff7ccde7129dff2ea1ffd951a4d87de496d9fe
-6fb7d893e78118da86c1ed71ffb5f244ff5cf39dff497bfeb7d923eaaffe71f5afcf03fa
-5bffd87acdfe4dd894e024d950cbf36ad6ef61c0ffd93ba7f297fe2bdc6fe079ec30c2f4
-7dfecb6fffc493bfe080d88ee024d5af84e0b84cb4fb9b29e058caff6af25ba2edbf61ed
-b5fbae37d8a4cbadfeaf5fcb6de60bef5bff96fa55a9fb91f395fea42cff4aafd881de94
-ed79d955abe05c93f3b860d4f08718c1fb31f314fb499eee0dff27acfbc2a5ff04afd894
-119ee0c0a5cc0cd8afdc9351a6fb9a36c3e89b4bffa1c8b98842f5b668e57df96cfe88e5
-86bee24696fba54d7afdd672d07aedb9f64dffb6fa9e55d738aee09c45f218a5ff38f65a
-fa79ffc339fea2f20be8c0a9fb13b0d822e0b902ffd82adb62e997ff23f15185ed9afebe
-4ffb73c920e486d9bf18e166d861edbcd89de509f24eff07bff189f703febd4bd8f9bf3d
-e4b6ed6bdd90d0a7bfe07bd886c8ed5fe142d09ffe35f6b8fe8421fa69f686fd29fac8f1
-43beff8e19bfed6de43bd9f1add02ceda4c736cba9f23cfe12a1ffc728d8f3cab612ff36
-daa70a9cd8931686dfafff87fa20eeb97ffbc366eda9cb97e505f0af6bd886dd7afe62d6
-a0f57dfe88f9cd79aff794fe08c66de588fbc83ad91bddabc79eebb563f535ff86c2ff0e
-f8c1841bfd5af9af88d2a5fa28d09add69d2ff880e85fec55893ffaf4cfe24f73cfe4cf7
-a538ff93f86ae07cd488e346cfed88e0bf4cc3e2a30285d6e563e0cbfb31d893fe8215fb
-6effc007feafee0cc2dc79b9f25290e69418f96deda2e552feb6fa32f2c8fe40ef05ea96
-d26dffc852e69ad111fe44acd963ccf92bff52ce39f087ea40d050dd359cee1dc54aca84
-f6d358db06b7ff86f67afd26ff48f3ce7be0a5ed3eb0dc943fc7ecb5dc71cbed3be560b4
-ff45affb2699edb1f29e23fad601e0c195ec88ceafe479ddb2cf0bafed26f356d96ffbaf
-5bff38aeed9257f4b6ff9410f7b04886b6fd0eb1eaa7c1e05194f279dd7fff9354fbd080
-d8fa3ffeac45e0c264aff287d679e4b06cb7d393bdcb52e5ac0ae1b227fe60e493bfff7b
-f31cb5e698bbfa91c419b6fb94ed7ac8fe6cb7ff92f2b73ba5fb93f579d4af5ae093d786
-d8a502fec024d0a0f156fbaef38932a3ff17b7fb96c0dd6cebc685f0cb37da4ed0e57db9
-f564fa38ca53f2049cff1bf262fbcb88dc85ff17f2c308bbd299f811ffcc72df46edacce
-79ffc5f15ec9f84cdc349bf8d549d828ec47bfe0a533ed09b2ce61dfff9b28fbcf1bdd46
-fec259f623ff5ff779fe3bf3c179f8be82f2c24fec27d79dfb77c144ee05dcfe9fd965e0
-0bffb554e5d65fdd22d8ffc21bd04ee72bedba08f252f73bffc45e95f879fe88d424e05b
-feb9f253e47ac951ff0ef8a51ee077b6ff70fbbc62ff42a1d97ee6acff9fc1d957d68ae0
-bb50ff60cda5e9b486d9fb2bde6dd8af30fe97c75cfe35edb50593e09e76f28affc81bac
-ff86fac49ff718ff88beff72f6b78308bef1935bff80eda507e07bdb9fe218ddb7d96afb
-af4dedd834a5fb88dc5be940d8ff92d0b47f4af229ffc189d42ff5a50cf8affb8052ea86
-febba0ff6df9cf6be0afdd69ecb7d94de50ada63ff96cd04da80d893fe2aee87d883cdfe
-5dfa15c1ec930af095c3ed1effbe11d35efb87f574fd2d98e41bb6fc40c652fe6496ef7d
-fd47f3a5d020e784d599d957fed82effcf1fe15687eecc6ad9a561e66ed9afe95cd8ae2e
-edd2f3d850c9ea94d830cbff88fbbf4bc3fc8f2fa0ec26cfff0594ffce1ff46eff86c9af
-13f257fdd8adc1e0aa38fa9ee774caed86439ae0bf9ef134e360c4dc369fffc5189bfa8f
-13ffc680fb72eb86d977ed60ff27f46bd89edf62ed36abd98de2a03fc4e0af2efe5bd8a5
-50f993e526dd3aeda5c3fe6df6c87eee8ef423e6bf3dcb9ee168dd79fba7f317fb6df2c0
-62e752a4fbafd8faa03de501ffb823fe953bc1f922fec35a9e388dfeaf0dfb61f79d50ed
-2a93f3a562edb1ff7dd85ba7ddc15186e3afd201beed73dd93e09e1cff5287f780d85bbb
-fb3e99ffb8f312fc45afd87efd1795fbbf4893fec132f1bfa53eddadcb45f616feb1d1a4
-c6b0e14cf514fe9fbff128ff56f3afff6dfbd07ce086f1cb6dd87aff68b6cc06e74bd3af
-38de0ed89fd783f9a8ff1bb6ff07edc041d887cbbb2a9afa86beed7e48bc0dc0fe86f158
-d2f279c5fb669ce27cefaaffb9e52bdd86c3e077d9bfa9c5e703fed047d910b6fe92f572
-faaff29c3ffca2f837fe50f732beed84eecd04ebafff1ad0ace028d861ddc593ff03f3a5
-c1f074e5afed74e4b45adafb87f529fea5bfe09938fb49f10a9aff7cb7c752ff80cc97d6
-6bd820dc48a5f608fb36aafe17f19fc0f879ff94bcf07bff9afa72ff5ee404d85ef1c782
-d99460ff9ff844ffaced1ed0ff0ac4dbff84e95ed095dd9342b4e305f1cd43d80edc67d3
-55f999ff3ca4fe15fa43ff6dd886bcfa77f6cc3be41ae03fd80cffbe5ae081d98dd77dca
-fb61d83abcfe9443c4ef6bfe7cf290fea765ed79b6cd5be04bd80efe2dd952f4d0841ed8
-9fc889ed3086f9c193e57dfbcc39d7ed6ddc01e54ef70cfd86f881beed78cd9dc0ed87e0
-af43eb20d8ac42fb14e05acf88ec26c8a3fe7addaf4df63efbb7c60ab5e07dd874e4af68
-b3f6923fd59df436fe17fac5ff69d979afff86f791fb84e8c160abf2bf53ed7ad597e33f
-f1209ee0935ff2c096c5fe86e97ad0efb017b6f024fea50ee599ff915ad8fa7ab3dd14d8
-4fcb09e0bc2ff9d93dfa93ff85cb8cd897ff059fffaff050e60eafffcf56ed1bafdd5ca9
-f29321fba5f688d379e0b6de3acbff19b5ff5adf20d360ffc493fe5af3c392d0a8fa30db
-51b7f244b0ed27fb93d0a7cb26eb93dc5ef011fec440f9d32ae0aafb22afd97ee0be871d
-f3abfd29bbeb4ac81df59502eed724de8fcaa5ea1caffa82cbff33c7fea56bff51a9d860
-f92693fa86ff5de270deb766f11ed0f5bf23e04bc0f994ff83f75afecf9f6aedb125b7f2
-42f564e87abfed45e36cff7ffad9499ddb84ffd032fec774ffb1d05fc0ed31fea74695eb
-ac5dc2e53bf386fe7bdb06e051bfdc84e529fe62bff279fed06cffc688d86ee812fe88f3
-79fc37ffa3cd5593edbd6bfe88f164bfff6df6ae46ceec9644c6ed76d09effaf3ecfffbc
-78fb65ff0df559feca5dddaf53edb602e6d824baee15dd82cae54edbc695c2f443ffc687
-e0a5479cff88f3a558e024d69eec931be5bf11fe9fea7adaa5fc1dcafa68ce95c634d3b6
-68bff208e54e95ea9e15dd4be687fa1a9dd87ef1b9ff05f493fb6bd999cf4bf29ff783fb
-af0fff6fd99be00294e7a40be59c1ff74dffa5e068d85ae29dd2bd70e6affb17a1e24dd8
-03cbe54ad80fed9efe63b8e58f50fe12e556d9fab5874bed94cca8e06ed9ba79ff0df29f
-d286f04c9df3ce79fba3ff33bffea53bfb06a8d89c2ffd79f9b6e764d801fec88af172da
-3ac7fa79ffcc5fdd3fff0ad05fe0af28b8fe0cf9a1f321fcde79fea2c0fb65bdf089f7aa
-37d8afff4ee513d964d854dd2eedad0ffba5c837b0d82df29cc1ee53f67fffd840bdfc7d
-cdec7fd9b936b6f031ffaf19f54cfa07f286c3ff88f47afbb179ee99fe86dd25c9ff08f7
-c1a5dd86f079dc10fed8af18f84ac4fe9226edaacd79fb27ff68cafc8954e2b646b3ed93
-0df2c46cbfff78f8d05cd90bd736f27ee4af2cfb54e686ff69b2d84396f6aad56ee586f1
-7dffa5ee79d862e079ccac3ab1cb5eed28d8f942ce05c2fe7bf269caa2fe88f683fe9ed1
-75ffc462ed6ad9ff77e65dde36b5d519c94faff8ca57df37b8fb0df496fb86cf80ddc193
-e082d9bf50e03bd91eb7dd34febb2ec54fb5f8569fd978e035b7fb23bf6aadc537f5d284
-e49538c1fc9a4fe1be57e380daa52fc0f809ff97f463b9e079d99fed52e516aaf4b6ff71
-fb9fce4aed9bd3b80af4a4e320edacdf8728fbbf9dfe31cf53d83ae59bfe42b6ff6cd8f7
-1eff93cbb371afff86e057dd26b6fb36c7b52de0af0dfabc40e9b728fe941bc7a5fe93f5
-61ff8efba0ed1f93edadff76afd06ae057da01fa4bfe26b0ff349ffe97ef7ecbff67add0
-69fad993e279edd55fff93fa5ecda0ffd8f27de09d56ff21f1afde6bd4f818ff95c2f713
-ffafdf5cd97ee01fd3ff59f721fb33db86cbea893f94daae15ffbc86fb60ffa8d036c1fb
-5ef307ffc45aee15afdd91f785fdc417c0f2d704efbe81e0a846f60efeda5fee94fba5c0
-ed7be379facf61edca86e0b179f9d27cf2adfb49cc0bd886beed27e060d3ff8614c3ee3c
-febe2bff9fedb1e376d0ef6acaf321d260fba543c1f212e0a53eff06fbaf28e7c01bc4ed
-81e04fb527ff62fbc2a5d888fb04ed3cb5eb62d835afdd7ded79fe9fd067fcaf3cc8ace1
-80d56afea253fec9ed2ee5c18df31dd9bf39e56dfe7fb6cb93d16ce6b893c6fb4bea01dd
-4aaeec8a4c93dda734fe62d1ea7ae0bf27b6cf18c84bff09d951ed19a3ff9350f125fec1
-02a9e542d888ef6cffb6f847ceaf79faa748d8fa9c65d988f2a5cc79c63895f8a453dd86
-b8e883d906dfafeb86ff7bf5c29ebed051fe6aa4f29432fe03f778e599d009ed40fe4aca
-b682ff86c8a1fe93f24ad81ccb41e419edc07cd9fb884cffb8ed27f3c10385befe62f73b
-cbb175ec93c5f24fe010fe48f8af32fe4df386d5a3ffbe94f862ffc6f660ff94c3ed09b6
-ff508bd8fe7df999f087d298ff86c0dd3cc6fe80d969e498ff64b8eb15b1e0902ca4e57b
-ffc409c0edba50d7fe05e551dd16f95bffd80ec7fe13fb4aa8ff6df75cfc24d35ad828e9
-60f282db92cbfc47e4b1d19dc7fec051ebb893cf9fe569f2d051dd2bed09d260fe85fa9b
-f590ffa52dec9805c2f29510a5d871deaefa479fd87de055d9ff51f817a5d886edaddc79
-edbe7bd9ac26fe66cb5ce122d99e2cb9e315d9529ffa86c9adeda53ce352d82bde5bec38
-b5fc7af5b010ce97f34dd932ccf979ffd03ff4c7fc12d83bf297fe3193f27bb2ca7cff86
-eb88d8a266eeac7ae593edc21ce086ce93dc9fed92fe84cd16ff40f60bb6d786ff58f43b
-a51cfd81fa60f216bfff2facf97bfeba8ce5bda2e038d867d97accf950ffafe638dab6fa
-86ff5af193c3e410ffb6fa9606ce9cc0ff32f99f29c3ff1ecef205e5c197ed1bf5b6fe70
-d1fb79affa80f4d04be52dfc13f5c275ff86f6b0fd93bfe021d857eaa5fa34aeff8dedaf
-22c65295dea65486eda0e371da81d1fb1be341edbd30cdabfe23f6bb41facc5bd93af69f
-bff232ff51fa06ca4eb7fb9abaed6de17aed26afe98ddeefcb68d927dda4fa79d789e513
-b1cf65fb45f70ec2ff86f103fb5abadd74d37afe5fed45e018bacc2cff60f1a52786eeaf
-fe61ed7adf60d0fb945ce066a5ff7ef938afdb933da5ee0ebfed3fc1e023b5ff79d896d6
-83dfb301eaa549cc11fa6df395ff7edb62e6c81dd851fc9ef5affe03fab2ffbb4db7fe20
-ee53b7cc98ff6bfb9ff448c1e06de8d18927ff85d775ff45a6d88ae07cbeffa5dd35e15c
-d2a7c1ff54fbc609d84c72acf492ffb945b4e054fe9bc3ed35e1abcd95ec6db5d64fc7af
-e813a3f625f19cce7ffec39efb51e58fcf83dcbee258d879dc26d793efbf4eb7f687fbb9
-33dd62d2ff79fabbd986ff9966ffa36bfe87c0f13ff75bff31f2bf5dc3ff7bedaece4ee1
-03d046febe6cfb86e57adb39e286d968e032d993f665cba5ff86f65bd4b00ce175d97eb5
-ff09aafec0afed04e593c5fe0ff539b4e623f16df482fe20f83a98dba565f985ffc5e510
-d85be987fe07eeb929f65bff941dff5abffb21f39fff6292fdcb6ad855e008d9a62aed84
-d879fc0bf94dff8efb37f3a3ff5bfb0291ffd80ed845e9c992eaae4eca12ed53e63ac5d9
-09f2cd47e803a6e092cc95d87afb9de51dd9a429ff9cc1fb86f0af16f2a5ca09ff93d66b
-f22acb81f26de807b3e546d90fabeb2af7c493ff19fa3bc999f252e26096fbaf57ec80d9
-9bccf261d994cf0cc7afdf76eccb14f1d08bdb29a34dfe96f71eb0d497ca70df86d86ec8
-f083e53ad0af60de33d8f2bf42ff87fa83ff6bf5bc63ff1ff0a5dd74d7b21cc5afc70fb6
-e583c4e13ca5f18bff9e51fe0df49efeb586fc7aaff578e55bafdc7cfbc875fe19f04de5
-22d48af860fec96bec38afd869de9bd643eab65aee0ffec39effbe1dfb9fc1ff6dfb97c5
-fe79df58db43bfed93e586de6cd815f3ce2fddc21df968ff5493fbae4bffa6fa53a1fe95
-5effaf36fe59f5ecc96add7abef15df73cffa5fb06e6a444d8adff72d9fe8df7b62086ec
-aee433c6afdd3ee5cd94d9b53db8e92fed9ff549fe95f730affe79f4bc5ae417c0f288d0
-5ed831e0c527c1e41cfebf98ff29f3be32dd5ad8a5fe85b7ff40afd89345f6bd90ff25f8
-3dff87fd78f6d073e0b55ee43fdda5cd45f029d8ad33f24acf9ffe81f9a263d85dfe2df8
-9effb67aff6df0a3bbd62ce5c413c0e374da39edc405bfde7ce393c1d97a01a8fb36cfff
-2ee07ed9bb4bb6f17bfeaffb0297ed2fbe10ca5ec5fe950acba5ed1e9afb9307f74cfe9c
-f77bfe85e066d879e06abedd4bd520ccfe7cb3d92ede73fb84f26af8a0ff80d89337f786
-d7b168ff8bfa80dc35c6ed6acaf409edacd010e079d293ebb31fbfdd2b9afbc14bf193f8
-73fe83d993dd7eeac291bee622b9ec06c1ff27f2a5cfba4eca37ed9ad340fe5df4af7afe
-9ff729fe84d88eff86f330fb4af81cafffb9ee86e6af61c7a5fb12ed93dd5fd035dc62c6
-f77accf493ffa5e046d7f979ff67f8d04bedc888d86de013ca52d009ffa5f021cdff7df2
-9dfb943ec2fa66ffafed15db98d202dd44ed51c4e0ad4fed17e8a4cf08ec6df3a00ffab6
-7adb84ff6ff99ff158d973ccf2a253ffc41693ffae1ab8d20af362ff59f802ff61fa79f3
-68cba7e07dd9af02fc77ef87ddac0dfab779e005cbed3ddd63d09ded1bdd46b6d89ec6ac
-d299e06dcd5ad80cf29bfe51ccb163fa25ff83f98af2a553e09f4dd83aed88f26cbadf3a
-dab279ffb461ff31f3c096ffa6fab7c63ab3fc9343e519d86ae0afdc25e09f4bc0feaa47
-ffb779fab8a5ff0cf1c29efeba48f6b788ff54e0aad93bfe4fe629ddc03ac4fb0bfe4988
-fac679edabe039d0fe66ed9fc0e523b6c993d9b717dd94ff31fb4ff73aedc194e51efa51
-fec269ebc796fd74b6fa90bce95aaffb6bf7cc61ff0cf252ff42fb2df979ff89de1aec85
-ffc19fd4afe016d82dd0fc0cffaefa86c517b2fe1d9bf2c110e6c22ae07edba957ee26e5
-4691ec86de5edac0a5fe84f708ff5af279d1f48739e1be64ed99cd1edf87d96cfb3bcc68
-da7ae5c922d887ff64bfd79cbbfb5d93fea57add9be1c007e5af35fa6ded86bede4fff3b
-88d1fc6aed3fd0feaf46b6d88ed894d086ff42afd891d880f2af1aff3aace01ece50ff02
-f5c980e4a52bed93e085da88eda2e093ddbf47c2f978da09e03ff5519aeeb6ff61bcd981
-e424b8ff9ee552d5fb4b8ffd9453f1acf903fed189d97fd6f41cffa0f804f15fb9cf52ec
-93c7a3fd0694d8f76dfbca2bfe58f373fb30d093e085fa11ff40affb60ed30aff206ff66
-cdaee51eedbc30f755ffaf68fed885d55af7219bebc5affaa735d8aff75a85ed9ee469f0
-16fe58dc76c9f561ff2be548dabf64c3f65aff93ef81d6ae42ff10c1fe7ed85bfe33ca17
-bf51fe21abf09e37d893f288ea7dc7fe874899eb933df26bd0ed5ad97aefbf7bceec61d8
-fa9e5dcbb78437ff61f6be5ab5d03fc1e97bff2deda6ca67e636cbb0ff24b6ce12acd980
-e2abcb4ee779ff1fef97e4be9ded8ad37ff9ce70e093ef15f352d861ffce92d87ceeb925
-beff01dd78cdfb8710e260f196ff0c9de0c22af907ff83e5a9f21dfba512e098cca6fe79
-f79dee86d76edf27b8fe6dd9be97dd5ae61ff4c09be6aaf3d97acbfe70d1ff63fb4ac91f
-fbb804e5c8fb1cdfc1a5fe4694f601fbaf28ffaf06feb623d0ff44d9f0abc3df1293fed9
-6bfb964ccc9fd886fb14ffaff986ee5ae579f196ff3ff7c00affa0c1f45dd8b652c82ffe
-51d904e7b525fbab43d8b99bff85e7a245f017e041cef559a3f08cffb045c1fe7dd81cdf
-86c6fb3aff89cebf52cbba6dc4e064d4ffbf4cfb08bee02ed812dd35fac19ae537b4f260
-fb32f7a3ceb278f166ff8404f7a542e911b6e49bbdff9fd86af7b470bef264fb0fc9afe0
-79b7cb64de77e198c96be575beed931bfa4c99fcc53195ed0ed9bbf510fa4bb6e09647d8
-1ad0a5c3fb42e588ebb46cdd60ed14a9d981fea5f98fc4f26ffec279df86cafe61fa34cb
-b602fbc67efa99fe6f96eaca4ad828e5a5dc31edb9feab48e860d9b3ed5dfda5f520ff3f
-9eeb8d52a1ed88ec5ca5fb7bffa5e9870cff79f8cd18e08dd8bc69ff3afb12dd47d1db81
-e0c097f35dcb1ced53e538aed943ff31a5d88bdb86fa20ffd839fea8f538f24ff69ffe0e
-87fbc4a3bfe778efaefa79b0ff8761e4c2a2f161c1ed91ff6ef83186dcbf55d025fe9ef9
-93befe3cf202e64ad918ace09f38ff4cf71bbee98ae279f2d76fb5db50d22bd9fb14abfe
-93f381ff79f99d4a7bf5c493f38618a0d832d978e386beef04fdc2f826d96dffce44edbf
-51caf2aac5dc4e93ffad47fe04ed93bdd89ebffc884dff28fb52afff81fc7adb86fed079
-ed95c4e64dff2ded61cdab73edc1119cd88bd9ae36d8afe03bda54ff06d94ae021bee033
-d3fe9341ff23affe2edb4ddf9bbeffa40cfe91eec147d22edd65e0a5d093bff184ff45bf
-ea83d19bed8640d414fe4b97ed1dff87f491b85ec3e073dd5bc709cd63e5b1d905ed29af
-ffb7fb62f297fe47cffa68d0b038d884c4e52091d9af79fc932afb429ff2c062ecc59cb8
-d150e57aec2faceee1b0d093f1d931e6a7c60bf3b624fac015fe7ff393e07cb6f351fbb2
-6fd9fa4dff1afbc386f85dff7af286cd66ff82cffe5bf3a41fc6dd7ed0e579d886f2c403
-e15ad3ed79d960a8f380ff7af7c350ff2cfb54b8d293fa11b5f35bc3ffa7fb9ec7affd68
-d8a5ca0dc1f186ff43f61bb5fb9cf4b621ff88fba0c0e451de7bd9b908b6de952bb8ff79
-f496ff44aff1bff501e53fc1e07ebffe0ae4b023f558fb7ff709ff60f6c76da013ed3dc2
-87b9d045eda4cb6ceb59a5df71d906cd58fed50ee1c42bff87b8cb7bed88e514bfd399ea
-21b8fb9db9f2409ed872e8b6fb66f7b850fa0afeb36afb94f62bb2f920ffcc04e0afd61a
-95ed7cb2d787fe1ff062ccfe2adbaf09e563ed5add2cb7f33bfba6ff36e59fd591bfe062
-d93cd8eec156d038fe65cf0ced3fff8af76ffeaedd3ee0c10ddba5fb804d86ffc6a0fe61
-b2eb6fd97dfdd079d92cdd9ecb89d8a521ffd8fa7cb6fe06fa70ff84f72fff85ccff48f9
-bf9eedb54095fba466e65aed21e4b03edd61ff8df129cba5e439ed17c9aced01ffc33c90
-ed0b9aeabfa5cd3cecc176c6e962c0e0a576fb9843f0bcfe38c0e50dec98de7ad9a457e4
-79ed93cdb725ff84f7c881da78e37bd9af06fa57ff2ff87eff934ca5f27edd79f294ff83
-d0adeb4ed512ea7df2ab57fb66d416c2fed89749f214d0fa1fd795ed51a1ff87f26cff5a
-f23efecc5e934ccdf479d893dd23d860e0afd90e95e59133ff66f6c2dd27bff593da82fe
-66f3bf7febaa47affb7af470db93fe68f886d95995febf54c4ff8734ef60ffa123fe499c
-ff8c4df5d85bc7ff8f60d9a3f259fdac3ec3f82fffc095fa4cff3cf8d86be0a908ff57ee
-28d051edbf93eaa6cb97ed12b8fbc517ffabe723d84ac6f91c9be085f260cb18fe93cdac
-f288e09d25edba80e2a24cf05dff27bee70cc7a7ce17e095de79a5f2c7fe9d28e447ee5a
-f388fb9c3ffebdd862f4c6ade01588ff7fd844ff04c69fd20cffcf2afdc7e352d90cffbe
-48afdd2ee579fad017dea8e05ed4fb8de080d0e585d9be0fc4ed9616e4ad2aecc207fb70
-dd81d0ff6bb1e58aed0fd0bb9de075afcf41ed87d3b79ffe88f76bfe3bd21cf24bafd2e5
-72dd98cc42befe86e5af5abffc3bffc49efbb886ec1fe44cff3cf7c168fed85fffcb86d9
-88cefb69b2f938feb664fa1dc1e40bb638eabfa9ff9fc6aacc14edc55d87f8b31ae14ba0
-fad74db6ee9ec9abf941fbbc59abf2940284ffc19fce63fbd77dffb1c944aff574fe37f3
-af12cb47f216b8fa39f3a5fc39cafe7ef9cf79fe93b8d819f85fbbed03d64aaafc77f521
-c4fe0df395c3fb4af514c0e021d8aeda79fe6cc2fe8745ff31f96df6a256f10ffe9fef77
-d9b222da46e061baff9fc894da75e9b30babf328affb05f5ad42c2e27bed86e5c38fbaff
-69f97bdd88fb63cf1cf83bffba70fbabdd27cffb86fec35a93f2cb19fd5ce67add6eec99
-e04adab6eb9343ed28e0a212f0961ffd9dee2fd891d87ddd9ffeba99fd71afdf79d86add
-af52ed1e9edd3ae54eff9fc1e826a1fb7ffecb34d986df66b6e887ff1eafe27edd6ea8ff
-955bfba5c89de403f3bfa8d093e004d9c398df65d82fe6c06afa79ffa5f033d05ded05af
-fe31d3fb52c5e56cc1e067dd97fe12d850d324ff51ed40afd8
- >
- >>
- /Gray 1 index
- /Default 1 index
-% See the beginning of this file regarding the following.
- /Red 1 index
- /Green 1 index
- /Blue 1 index
-
- /Cyan <<
- /HalftoneType 3
- /Width 167
- /Height 167
- /Thresholds <
-7bb6c793d8a0e14ddb04d951e02dcdb901eca3c572efa5fe78b5d86adcfa3ef584d3b938
-f308ff45f9ca7ad989de80e593bfda7debc76ae0bc679dea874abeecb83af378ff9accaf
-f175d8f36bfcc2a1e5018ebef786ff51ef28d44de122ceb819c974ed86e4ac64ff9bf786
-f29f6bf95fdd20ceff4ff5cb82e0ab3fd8b352dd16e5c484e25dd8fb6087ffafd14ac1fe
-d8b34db7ffd15cf7a9ff54c3ed3aafe070c7ff7af29cffdd38fe4cfa13b0ff81f77afe93
-f95aeea8c94de5accb1cc0e527f2ad10b5cf95e855e58dd8be9be06db6fd3bf759ce0ffe
-60b5ff41affe9238f8d05bd8fb9e1189dd93d9c049fb0293deaf0ecf52ed3dcdaefb579f
-e06ada93f978ffbf98f757ff93f65cfe3ef9be38df4dcd37ffafd295c0f67ab8dd6eb6fe
-11d0f97affc86bf88cff27bffe933dc1e99530eda5e28328f27be58e3cecbf0bcba5fe78
-b8ff26f4a445e423d85188ea9dcd7cedd028e0a5cb21dd79d886fb6afe10f468fd5199ff
-7dc5fe87ff02c1f92bfe50f128c2ed12d6a7c59fedadc3f421d19fe026d6edab05feb027
-efc3fe57fa20a5e487d8ff4af886ffbe95ff60f227e6c31efbb93bb6d89442ed6bd988d8
-2ddd9ecf79f1d186fe7fd95ae006fd40afe00ca0fb38c1ed65bee82193ecb64cb7e09f15
-edb0ff0dcbf95afd12bce9adfb0ec2fb9e50f366e430d0e580d886dfbfa7fd83effbbf28
-f4b63d93fbc042feabbfff0ce636dd96d892d981ebd062e037d84bbcee6099ddafc993fb
-64a2ff72f203ff4dfb349ce779f280fba35afbcb7ae590d251a8e07fcffe34f679b6ca99
-e344eb18afde81d870ffb37aeda3ff13f3c3a7ff0af16ce5ae14fbb32498e501edb8fb79
-efc3a5ff67f1c357e679afff46a8cffe2ed9a5f171f9cd67d879e06abedd76c9ff8a43cc
-a4e078cfff86d891fa9f10f151fe14fa5ac9b60163a9e479fec2f15297e970f04789f2af
-cf7af75bff27fab809fb9df5afed78d7abff860dea5bcfafe536d097dd90d886e0bf52fb
-0ec862e5c14395de31ff78f9cb09efb970dd5eec1cfd2ad5b27bf9d036feb6ee47cef504
-d187e360de2fbccb9efb4cffbf5fe6c6ff6dd8a52899d89352ec1fd87cff93c6fc2ed89a
-f774b2f279fe08dc43abfc1ff6adfe3f93f19a52d8f479ff22f12fb1e51ced4bbfff94cc
-89d995ed32ffd9cfff47d80687d9aff311d19ec2de9b61ffbe1ee9b9dd6093edc256d218
-94fb24f23cc3fb94ff1bf252da7afe5cf91ef368ffa6cc93ffb618f5afff65f39fd8399a
-ff932ffbc197c6f28fe56efec14e93e09f0c93dd9b5abffa43aefe8cf95ced3bafdb7ad2
-f38b49b9f257feb6f435ffcb88fa97e42fdb09b9f27ae502dd4fc0e05ad37affc682eb97
-2cd3afff1cdaf7bf03dd5ed9b9fb61c1fe7cb0dc6ddf36ec63d179e052931c9fee93fab9
-31ff5db6ff37f91afec72ef1b08745a4f2cf40a5ff84f8cc65debfa4e061d880dd87fea7
-ed2bcb84d897d007ed42dc50edd183da21d8ae0cf1b3e54bc4e0ad15ff43b961c2f408ed
-a9ff6df3b8fb2cfeaad96feac921d878e080fed01df69606d8fb931de077d983e2a914dd
-47d060fa9fed69afd256fb87ff12a8fb93ed9e32dd53caf27de665ccb23a88feb6ed9749
-93df9c43c5f703fb5df5b6ff2afbc2afecf8c65add70d0e681cbe463d878ec51a5e05dd4
-feb4fa169ffed821e44aa8ff8f53fe77f730ed46d6b60ab9dc94f03bfe59d978fdaff797
-37fe6ef986edbf73fb67aff26cf891d29ed8ff37addd63d815d749d860e086f134ffb867
-eea0ff03c6b686e554b7ffa53be9c4a5f90bfd4bbff186fe92f2c14abfff27faa0c4d961
-efc93dd91acef587fea64efa0ab9ef6efbd7a53681ffb5f809ffade079d59bd8920ba5e5
-9e0efe6b3baaf323ff45a7fc1c9bfb93da85ccfb7ef79707e079bfe54a88f195c4e00dca
-ed15d99dcba5fe79fa9cf66fff62e5afee85e5c41587e1c0a5e64fc83bfed924beff0ed7
-41e052ed04b4ed5ac0fb83f6a4fe7ef7af1ac1e0930dfdbe44caaaf535fe62facb72edc0
-86ff5ece93c99eff65d832e00ea5fe81d8b46eed1d94e59f6cf985ffb963e302d9bbd89a
-ff47e5a81ff1c5d814ea61d088ef27ff4ff239fec3f97bbfdd8ed8ffcc88d884edc67aed
-bd4af209ffb112d93ccaee54d7ff69cafbaf38fe6ef5a57afabf50ff07c2e432d84de01e
-cabb119ffb2e97ffbb47ff07cf9cfeb85ca8d0e87dd987fea6f579fb63c6ff9331edba24
-c4eb38cdff9863f7aed67cfb88dd77d894dea529d94bfb0faff22eed51d926e9aef373cc
-e63ade14eac24effbe37fed024e4b34bfac193ff7f29e06bd880c7ff8652fc8acbabf43e
-bfdc93cd7ee0b361d83cf256f67aba14fb60f7a40bdb53ffc988e0c163edbbff70b9fe89
-2ff2b604dec192d959ead543a9ed88e059b0f293ff79aff86affd94fc1db5ff3d081ec6c
-f21de286ed9335f861edc52ec1da8ae49d1edcadcf78ff6ab1d9875bf2ca4cdf2aeb53f1
-18ff4ff20bc7ff82e49ac2dc6ce0affb78f6c05894ffaf5bf786ff7bf6af79d8f25aacf4
-c27ce0a42ef256c3fbaef515fe3e9ae0be9fed2dd980fea25bf614fbc025ee86ff96d42b
-e070ed9ce02fcbf386e59f1fea3f9ffa934ba5df299be5acd082ed6bfc26bafe1c97ffc5
-2afb7bf66cc816b6ecd041e0bf79b0ed74e523a5fb4db6d893c3ff02fbca88dd1894ffa1
-20fe45d0fa7bf350e297f204fdbed809a5fe79fa9ad1a5e584cd8ce2a042f3ba5eff31fa
-a015c1df9a05fbda20ed93cbb653dd32d4fb0db686de8e41f708feafcf9fee8635bfeb92
-cff607fa46c3ff59e61ec2e487d9a455ffa5c917e265feb1fbc53fafff6cb6fe38d8fb7d
-f5d425ddb6fb86f6c313f951ff3cd49aed79caafe36de793bfdb23b7fe86fa3093fcaa23
-c6fe03fa93c2df7ac8ff32fa4aa1dc79b5fe50f3bc4be3b881eda551e90bfec52dc1e093
-42ffafed3ddbb00fff3eb1f730fe69fbafce1bed93d07ad8ff873dfec579b9d563ff07fa
-d08bfe9560edc6ff16fbcd97d86fe548dd11d1ff9d5fde79b8db84e26aa5f279b5fb4aff
-31edafd26be9b582efc402ab5dfed985eb24d0ae6ab8c751afff5ff106d85bedb17bdd86
-b5f84faaff5dfa3fd803f34b9fffd340df9ec2da6bed88f457d8b54bff3ef60ca5e588f1
-bc55eb20ceb079d3fb73f7cc11ffbf94d8b658fb9f4df8cc7be077d085e7c293bfdd7ad8
-9dd725ee61feac56eabe4393ecd066e5af50f49bc1e19e41ec17c9e39d4493eabe51ff32
-f295ff8bfab142c3f221ff4aa6fe25f8bf0ec5e086d896d079fe08f446f9c03393f2dd87
-bd0ecc59fa79d9f704fe9ae083d07be66eff35cffe2bc8eb18e1cd0ddd82f186fea5c3e2
-5f93efaf55f40aff47d096e06dea9fd2b895edd65ad916c9f784fc67d8ff0999dd32afe6
-69d93afe88e577edd5a526f34ffb1fff38f261fe5afb05ed55de91d880caf902feabf323
-a4f21affc335fe4884f2be7df3a52cfbb1dc63a5ed88d85ecb1dd653eda5fe7bd86aeccc
-63d87ade96ff37f506ed60df89cb9cdc7bffafe54f27f8d895ffa5c0ed43b4e587ee16f9
-35fea4c894e165baeda162ffbe79f2afcb20bcd062fc18f7bd05ffd77de5a5befb13affe
-31f519fb52bf86fb78ff983fe0a5ee38a7e0be52ff5ec2fb86f1ac25bfff1686fcc786d8
-93da9fcb86d91ae0afc785f872ff10e549b4dd69d872cbff81d987efa4d8b8d924fed74b
-ffcf79f101fec522f976fe86ed7ade87d804e493fbbf14f19ffd44ee88d26dc9b1ff20f7
-51fc24d859d878ffcfb362e548df1595ff70c848b6d88adcaf44f01dabfb8c09fed89557
-fb9f53ff9efa47ed8fdd79cbea8738feb828df62eccb87d880e176cdff26afe930d1feb6
-0fc48dfa6ef6d084f29a2ae060d2f866caafe75ab8ff14f15bf76dffa4f59644ffbb38cb
-b1f295ff86c4f535fcb25ce02fd152e41288fbb067ace570bbe857d878e09abfda0ae0a5
-fb24ff6ef75bcb378fffb83bb5d8ad5bfba2fa3ea6d893d983e7adf20bed9ffb1af491f9
-71fec431befb99ff2df262fbd883ffcd45e5d29335c2e327d2ed33e077d9b12fb7fe5296
-faaecb59f689ffa250f161ffa5d839adf2cc7bddad53f27dfed948e528afec0fd9bfa4ff
-0198df4bf392d83bdd9fc6b605ea2dd879ceec68dca3fd297bda3bed20a1e0bf0deda5fb
-7cf793ffc133f0db06c5f91c9effb7f44bff3b93f6af42c7b74fe6c1a4edaedf72da94e9
-01ffc01aea62c0e57af031ffbf6196fec15286e1c633bfd97fe6a5f21ceb61d0a5c602ad
-e55a95f7bd60f2aff780ff86b6c793f610ffa0d93be5d220e06fdc7ad835c6fa21d9af0e
-f39ae08b07ff62f893d8af26b8cc95ff69c5f962fe38cbb0ed7efea70cffb365f978fed0
-8ae056fe22a5fa12f086e5c2a6f979c0ff4b92fac841bfde04d84aedaf79bfff945ac3e0
-8820a2ddc3afe56ccffe79f4d8872fff1afa4ef429fe86f278e4a8cc95ff11fb5ecbb61a
-fbc54193dafe4badff9e06f34dd864df93bcfc53f797ff3abfec0ea2fe4add13da68f002
-fe5fccb67dec6af3ac6dee9cff11fa99f2b686e47bfbc586fe5bfac09fed1bcf42ffe486
-fc04d8bf43ace093f086fb46db2dd0f279cced2fd94babfa7cef8ec1e479c95ed24dfe19
-d19ce868c6e66196ff719ffe83e668d4fa4186ecadfe3ff2b4fb870ff150ff2799d9099f
-fbafd48fc9b681e5af52c4d950fe31ef5ab7c7a0e46eed79e1aff229c3a0e066edcd93ff
-8bfbc13dd90ce07aed72d0fb6dc2e085d87dffa5ca4ce6a5f23bfed826fbc10affb945c4
-e8af4bd001ff5acf30ef46afda2be54dc7a5fbbd8cc44fb4f17ffb9dff17d559e273c8ac
-fa69bde421a2ff92f2c53adb0cb6f331b8ff9cf8be93f15dfe0bb5fb2ac1ed19c4f059ce
-a9ff189ad8f52bdf6bd772d83acffe83d99fc0ee58ffbe55ed69f630fcce10d6fb9925f5
-92d886d1f64afe03f799d32fff86e95afa15f6b558e02ddb0fa5f281ff9fcc2fd9af21b5
-ff38fa1cedaf2ffc9dd86bc0e4925bcfaf79e1c87ff29364d8ff78edc0a0ebbb96c2e86d
-d785fe79eb5fdf07eda0d961e434de88d87bfe27b9ff1199ec4093fbbe51e0179cff86d0
-ff62afed3add09eb43ade084cff279affe7fb1e038b6f72694cbfe61b7ce93fa09ff7ff6
-a55de8af17f96bdd86f2d00ee09dd85f93fea53ee0c177e265fe2099e086daac44fca5cd
-09bb93d788c240fe7ced86c9fe6be4ae4df4befe60f3d686d89bcb79dfc089f324ff961a
-f5a7ff4df8b252fb18bffd2fa8d99343f61dff55fb05ffb9ed13dc37fe83f46bff30f7ad
-ce79f351ebc19fdc6bf4cf83ffd661edca79fdce5be59e46c4fc88d87ffe93c4ff30d9a9
-4fd8e451d1f76cfdc772d8f24cb6ed11ff50c0ed90dd29edc932fcd17eea39cb2b95feaf
-42ffc0ee48bff885ffb50cf2bfafec38d862ffc267ec7ad9fff24dffdd95d5b661faaf46
-d024fad893108dde9f4ff167f541fe5cf854ceba51c5e072dd05edbe27e6c3a5e054c8f8
-1bfecd7ad993df80d8a43e88faafd19fc645d4afe0960dffbe24feb508ed43e5be55df19
-b5f707afdd48b5f624fbade502d954edaf5bdc77b6f725ffb703f1a329d9ac0effb57ce1
-86c8af7be5a444cc59feb67ce09649ffbc93feb0e05bc7f28707d99ee119d84cedcf9453
-f779ffafed15dfb422faae38cbb67f27fb0ef3cd20e094edb8863affcaf733ffc703d990
-e49fd909e279eea9fe3ffac194d882fe9a66ff80f39a61e0ab5cfaaf3ab2f26af8b6e098
-50f61fffa6fb2188fec75df1a1cb81fa92ffa52ffeaeee74c79efe87f283c0df7ad866fa
-73ff2acefb0ff5cb69e2c25ffb7acbff62f48bdb46fb03ff3cf7d328feaff894c705f263
-f7adcb02e463f486fa20a2e6b879ff69f37cfba160ffd607ddc02b93f983f4be6de59a19
-eed8bfa4e151abff79f65affc5eda55eb6d862affb7aff19d07effb6fb15d886d8af51ff
-34f260d1ed38d807d2f086c6e509edc6fe18cf4ded23ffcb86e279d87bcbed489fe686d9
-34e058d870ceed935cc2fb4ce538d810e33fa4ff14f196cba5e57ab9e4a940ffb085dd94
-e6189be03bcf9fec84d895dd79bef061db1ae56affa4d922dd61fbabc914d973edd44bf5
-cb31ddafca28c3e53ba5fd609bfbcb52d83bcffe56ddfd9e44f566c4fb73d8b701d99e17
-88e0c520f292e85acca5ed67e09746a3dd60e90cf286cea5c2e411a9f68efeb942fe2da3
-ff90509fe57bff93d865b4d949ef0ee75dbaf9d917fb6affa6f61bfbb805d8f93099d97c
-f6b9ff6ff9cb6cd9af42ed18c2fe3987ef96d715fe37f46dbefa7cbefe20bcf936f351fc
-1e9dd882fb9ebad84cc1fe81f29f3dedba52ffb685fe66a5fb9345ff9bf570bfed80e4c3
-46a6ef93ffa207f18c5cc9ff93e62bb2ed39cbfb7ae5b2f246fe86bffd13baf92dc0fc1f
-f4b3ff82f97aff9ce31ffb4f93fecb5ae0669fdd7ee7d06edbb6f937dcad2efac20afeb8
-85ff9cf5328fb3c851ecba7ac4e6618cffa465d6ff1ceba54795d8a932f386febf79f955
-98dfc11ffa71ea93d859cced4eb3ee65e574cba9c593d0afff3df2c252ed1ffb77b0e02d
-d0ff80f8a0cd32e513bfe005d0ef5fd910b4fa32d11bf3affe0be279edc779d8e6ab04da
-5aff6fc1fe64afef52fe6cd795ec42cba3dd50ec7cafd363ed33ca26d0be3faff488ecbf
-4497fa24bfff0ef7a648fb14e96bd886ebbd74f1ac68f3cc3cd886d0ff5ae5a5d009f24a
-97d8f23fcaf483b6cd67feb6f023fec15cde1fe0a3d6b1f26bffa5cdb649f87affa92afe
-d80cd99afb52ff14ed61dd6ee3b30aff86d399ea0fbfed934fda22e57afbc596ff77f3b8
-87e580fecb86dd94fe7bdc87d252d92db5ff347af9c682ed87d911a8de28bfd51dbaf90a
-aeff6af674ff98d93cffb993bfe593ef5afcd26edc27fface579d5ed74ce60c2ed86cb98
-fe09f75afed240e0c11baee56dfd01bff027fa6bfe86c1ff2aa8e1bc0be54ffab003d979
-d587e49dbff658ff33fc07d247ed5bfec19edf0be4c7a078ff88f12ce080da98fe0cf5c4
-79de62b6f35ac5ff9066fec1aefb62d8af48ea5ad89f41ff1ed0af2cff56ea61cd37eb6b
-fb8afa65c1f3dd419ffe21b8fa9cf577ff7bfb9bdf79cbe487d825d3af05fbc859e00dfe
-4efab0e0a201ff5bd77bd905ffaf47b6f494ff23bef33fb9cf9fe11296ff81fb9efe4ced
-afda61acd880de3bafed79cbfb5c93ff9bda7ec8f388ff60f509ff4694d987ce93e79fdd
-8fd801f231bff19262f6bf43c958d2b1f75ace86d8a534fe92f8cc31fca540f1d807e145
-99ee09ff88c1f72cfdc46cbded6de5a5d30df7a0ff82f21dcbafe512a56efbd266e4cb4d
-d838e1afce4bf23affa533fa55f17ae6c288acf779f2a5db861781f8be86e99df363f0c3
-84fbd82bde51b1e37fff75f048c7afed60cf27dd79d8962ffa88f74fff99c5e321dc9f13
-ebc049ef25fe3fa5e42add81d0a6c3fb0eed62d96dfa26fd80e688d9a553ffd01deba8f9
-95fe18a5e12ffa49ffbf51e7149cdc7de4be60b7f779ffcb70dfa5f218afe087eda5f850
-fbc179f1b666d823debfa5ff4495fecfecbc0cf3b07bff8bf29806ec8fc1da67edc683e0
-9cfe38f24ce121d9c43bc6ffb6d937edc940fb1cccaf39e01295fa7dcbfd59d81bddaefb
-63ff38b6f893c2f50effc09ed21cedbc11fb8af762febf7af8d06cd886e0bf5cfb51b9ed
-66e579cbafff1ef286c65fcc3fff6afac239affe86db05e561c3ff79eeb6e57aeda5caaf
-ff4def27d0fb9d3ad9af1dfabd3acf9eff4dcd10d836de9d01ff4ac9fb89f49b56e379d8
-ed87269959ffbf3eed1ad94fc9fe61fd10b2f81eafff08ce5fda95ff80fb9f6cfb955df0
-8dfe73afd877b5f96bfeb8edc55beca103ee91fac12f93eb83c9e558ed35afe16ff142fe
-a5ca6ee0b541b7d832f1af379ffe93f516ff9bcba5f820fe37b5f1479fe051b6ffa5f6bd
-9cdd18ed97e556d872ffc188de3dd8a70393d919fb6df184d495fe9317c2f384eda4c754
-fe79ed68dc7ef294ff62b9d98ee89e14d947cafd03f7bf39b9f8e0abcf7fdd88fbaef66b
-b6d894e679d09add6bd97fedb610b8d533edbf06c2e224d750dd13ffc1e62bd8a24c88ff
-af3cffd27ae0649affd11edda802ffbea3fb52d081df8ee756fe85f49eff79dd68d6fbc2
-1fed53d08aed0edd83d88cc8ff7dd6fb78c9e739d812e25ac4fd67d979f32defaf3afb9d
-f362fec6fb61d05ad82de009d977ebafff51e52bff80f294d928faa8fe45e47ac7f450fa
-38c1ff80f8b878ddb064ffd6794af22aeb61e5c3369fe523fa53c2ff4bfb3ef5a6fe45fa
-a5ed6adb52ffa8f470fe7df793f2924498ff86f2b4d91fe5be6cb2f433ccf15da5f652fe
-8bd069e07cd921fdc107aff21dd351d903eeb2ff0f86e4b074b7e561c0fa6dff40f3ae02
-e92ebaed0e95f47dfe93f72fb1ce0ffba3bbcb7ae0b80db3e48f4bbef094ff88f6a8ff5e
-f936d87ccf96d86add0fe85dd5b804b6d793fb1ba6e082afe45aeca92fffc225f2a518fb
-da94fdaaff1486d8fe75d09ef12ab4ed93e5bc2ac3e086d827fe86e578d843dea5ca32e0
-57d0eebb52dd0bfb6af186d8f919c2ffa20fc0d96de3b0d940f716ff95edaf5affc67ddd
-87fbade59344a2e9cb40ffc6f72fffad45d0afe166dd9dc1fa619bffcf60dab545b8eb86
-ffabc84aff1cf94df588ff27d8f29d1fdd40e5c36abdcba2e35af105fe4bf9afcb88ff85
-f69bee2dda5acdff28bbfe79d81fccee6c97e086e6c86ab602c7478dbff8af0ebeff5dac
-e061c807cd63ed9e18ff71f3a2cb16f89cffb70efbbe9efdb405face7ae89bcc48fe349e
-ed9351e6affe36fb981bf2b787d875cc32f7a4d860fb3cedc32f86fcbdf5619aed920595
-d87be096ec1aa1fe2bf65193e0c242affc25f1a5ff78df27db6ee995dd80d9a2ed5acab6
-36ffc167fab30ffb40ee1bb8fea5dc86e09e36fcbf21dd4fe187ff85f37494ecd007f190
-fe9c5fd8fb3dff4f9cfeeb84e3aff1d35de087ed44cbf97eff88f794ff84fbba5adec153
-eaaad02fc666e561ed1cd87fdc9139fec029ffb975c3db61fbcf88f37bdd87cbff70c6fe
-59f292dc6be52bec89d9689affc64ee018d8f95ad9c0fe4df30dfd87faca71d982d3fe1d
-f286df8dd66dd904d25cf293f709d75efebf21d0aafb7aeb85df9fcd71e085da8fff79ca
-47c0f36dc6f15becb679feaf42c3e00dbff659a0e06ad945c6fa0db5ce7ad9f13293ff52
-fb2999ff3bfb93d9b703db31d84cd91fd851ccf1ae03fe89f45cfd87f199d884ffad4afe
-c4f062a9e07bd9a5ed06e4b525dd43d807ed4aa5e0299fe80afe4cfbc396bfff0cf6c020
-f2b879ffb528affb72b5e9a0cdb93abf4ef2afff37b6cd9ffe09f950f59ffa86febf50c3
-fe84f2379bfa81e514da53f706fe39f3a5fe51d833e591fa9a2fff0aafd87afaca15d8f9
-a368fed631b7fe3ffba5f4b67ce98af6af09b8d243c1d97acbea7adac41bf084fea9f36d
-feb5f079e52c93fa85c93fb6d979e01eff3aee52c1f29f1987d6fb58f30ffa5dfec083ff
-79fa86ff79bfef62f9c97adda5d2b613f247a6d781eab065de9ccb6bfecf3ce01cc75aff
-79f7db93d507a5ed7be556bdcb79e3ba41b3e0329deda63ce08fc9ed48d869fe8ac7a5d4
-7fe1b724bbebaefb60d811edafd0a1fe30df469fed9327e6c14997fadb6ecabc1bd436ff
-51de2fc5ff87f8ed9f0cf4a521f254a3faab37d157c0e09c3da5fc8fffc347beed94ff0b
-f9a5d091bccd87e029d9b6eaa013ca96e080d7af4af13dc7afe045b6fc10d8af39fbbe26
-f077fe86c5f831fe4bcefe06fa3aeebe85f58eff93ed2cd8a716ff61fbc74ef813ff82ee
-af23ff94ed69cefb1ae5ba63ff12b7fe9ff143baff30eeb44aff95f78801c2f27eff6dd9
-66e582ef8bffbd61ffce77fdaeed8813b0f27aff93ed9fd681fb6be25aad28ceff70e4b8
-86ffbf4cc3ff89ee9613f7b8dd0bcf60e49ffe2eda71d7b647f55afe04f7aaff65fb40f5
-b0ff3abfff27f594cba7ec139ff6d17ee488ff9bd055ff92e55db0e07ad899dd6fa5e486
-d8a50dea49d860d77bde65f2c09aedb67add89d862e033fbd986d812ffb679d85af3cc93
-de7bd002c6aaf479e57dfbcc72d95cd2ff9e43caa5e243fb1ec757d104f2d83ba6f306d9
-4cbdffd82adc62cc84da15eda5d01dc0fee063bedb39fbcd06e799df61d926ffca7be974
-f983f110d862e5aefb36e79cbfd894eb8038c1e094d07dd86ae5a552dc67ea1cfe60fbcd
-8e22f251d621df6bed7ece34c1ed07fe53f31afbc03cf761ffcf78feb6f202fba5fe37da
-4acb1fe53bfea2f5aac78fc147f9a5c830f786ffa42cfb4df66aff86e024db52ca1b9fe6
-12eeb532e0afed25bef494b7ff97f7b36993edc75ae07dfbd0579dfc93f302fe5afabe3f
-fe99dd79a2fb4893ed9d66d978fc12f67fe5a652fe2fd74ddca5ff7df7c1159ff264ff23
-fa43afd8fa890bed50fe22f285f9c884fe9dd986debc4cffc0affe70f5affb03baf79fff
-6bd3a5c783e188d994baed2396dda72899e3af44c1e67bfb73ff88efbf22cf4dfe19f2b7
-6fe562edafd20ec0e083d9a7e83ded5ffbc099f2affe58fac179fb6cf684ff87cd61eb2a
-dd4ce5c0fe2086ffaff13393f5c240e052d873dfb272e58cf249f712d7affe17b9ff4aef
-c593bed646fad085edb2ffbe27b6e03b8dffce7ed888e07ac4ff5b9ed4ff7add88e05bcf
-18b3e009d253f22d9ded6bda369fe5933fcba5e048da1db1f22effb647f827ff4cc8afe5
-39fab8ff6dcbf38810f0a5e059d8a85cff83ed95dc7cffd006fca143e497f040fec215b8
-d89eceb40ffe43d981dda54edd9ccf19d851dd0afea5cf7aff9f37d7ace9961ccaabdd0a
-e586bfff87f8c02dffc305d8a8c7f07ddd68c9f282e0ae31fe5af491b709e09f1c8ee286
-fa55cbf3bc4ae401f34bb3ef1abbe72fb5c835f9b9a2ff96fc6df67bff92cffe01e190ed
-c10ac3ff84f365ff94fbcb57d977e9cc6ce0aff266fe7ff18ad953df2098ffd3b927b5f2
-03fac49cdd08d652ea37afdd82cbfa67ff6dd0b079ff5bfa2aff76e08bd86aef28bfff0c
-f25afe95fa79f0c142fbbb18c3f281fb52d0f965fe75ffafee22a6eb17a0f24faaf980ff
-6096ff2ef8ac40cf21fa95d9b51cecc6ff66f5c5fb58ee96d9b11d86edaffea5c0dd6bd0
-fb74f554fe9ccd02ed49e43cc7a0e73ad965afd774ff56faa6ec4dd915d8b637be77f693
-fa139ffdc2029fde15d856cd11ed84fbc34a83fa95fe80d686eb2faff46bfbbf93f15fff
-2899dc08b6f824ef93e581c796f14ef937ffc493e385d693e079e731cbb488e475ef90fa
-50d80fde78b7e641d2bd5a89fbd267c7e57aceed64e036d01fb1e586ed9efebe79ed6bd0
-ff863aa5d849af37d8af06ff75d9fb9b2cc858f914feac3ecaa5e56cee79ffbf8ad0a9ed
-20c5a5fbbb36edb626d97ae068f599fe7ae48ff1d60ee05fbfed4186ffd070fb88f679ff
-add05dedafe034db50e53dff54c0fe7be6a51efe46e4a9bff27ac8ec88d855dd34baea0d
-d0a8bfeaaf03fb5ff767fd3cc9b9a8f84aff13d93ed39be46dedaffe26c7a4f22bf8d89f
-3cfeaf33fe9b1afe86b6eafdc979d901d85be0b00efb3fa0deb3f079fec7f379fece51ec
-bf60d3fb8ae094d87ce099ed0cd6b71dafd861fb10f766fe5cf20dcaff79f7c687fe1eb5
-c92faeee1cfb4a9cffc2abff79d8f1bd51ebafdb36e0a130fcb80dff8cf5a9cb79ed8ab4
-e05dcd2adac49dbccc16e652fba54dfe6dfcc2a5fe74f761ff2186df9cd0b72eebbba4ff
-07ed8adb82f3a4b8fe01aeffc14a9eef7aff86de9711c2e081ccf45ed9bf52c3f66a9d44
-fa59ff72f333ffd996c1f85efc21e0950fa3dc619cf89339ffb854f124ff4ff228ff86f8
-5fffc5f72aeda3d893cbacd893e56195e44fa1ee61ceff79f9d051dda5bfea863bdc23e4
-a52f93fb9b26c0ff7fcaf377dba1d84cc609ffb61dc9fb12f293ff80fa69f67ffe89d82e
-e0bf1de19f04f352d79edc8ecbf441fe4bf0a5cc14f268d85cfb25bfcd65e07aedcb2c88
-f5d85fe00ccd68fcafff4df10da5e27ceda5dd0ad8eeafd095c3e8a4d387bb4ce904da93
-cd6af7b6ff26edc017c5e5a80ae672d683cb90d8b843afdd924a94dbb53fff50f327ff4a
-affad31accfe11dcad46edb770ffc461fe08cdfb93f85bb9f4ca3fd8f79450e604bee540
-fe6bfa93f17ad8f9659fd875d848e40fe034d85ff3a5ff85f7b47beecb71e01ced39fa54
-afd97ae089ff53e584dc98e57caffe4cf726ff5786f9d89517fbbca0edb539e47dd993ff
-be43ff2af989ff7a2ff517fe3cb61ffe61f5cc7bf1c043ffbe30e55bd77affa5f26dd0f4
-86da9ef709fe61f39afb22f2cafe62fb86c2e571e089c5ed2ba6fb86b8e775f389d007e5
-af2bf37cd9a264ed7bccfe0889ffa51bedd386fe9b62f286cb23de5ae84196d0f53cffaf
-f4a3ce86fd9fda01cb5ad961cfff4ca8fa92ff7fb6d186ff14f5c124d896c1fa3bff1bbc
-ed79e587d0a2bfe0a543ffadcb3bfe55f5c263fa22d652ea95c9add146c1e5d874debf90
-fbc693e4109fff5fa5e57dddaf83fb93df32d84ffe36a4ff3aec5ae0a7dd12e080d8b784
-08e9aedd159dfdaf06fb80c1e051da3c97fb2ed89afc5cdb94bfe33effc017d94595e5d8
-4bcefe6cb8ed43d9c418bcea9fb9fba5c0ff24b5ed8805c762ffb64aec79ee93fa22ed99
-0fc1de35d864c8fb06e596d8b36dfe61f71eadd98ccbfe44d80fb6fb3df21dfdc767e581
-dc93d818e09cbfed86dd6ffb13f27afea16191fea854ed66dd41c2fad82db9fe19f24bfe
-c402ef60f986e07fc1e369c793febc65c5fcbf52ff3bf6c69737f5bad931c0dda546ff91
-f47dffc459beff25aaed86ff58abf57ee6a6feb7ed60aff269afe22ab0f96fffa4f74dff
-38ce13dd62e055c2d9fb93db26f1c296ff42e076d786fbaff579ff9ced4393f2bf4efe34
-eea2becf86fe5af362a5de93ffc66ad993d87ab7f304fe61f77bff5dfb32b6fe05f09eda
-60e024b9f8d837e0c40bf77effa24b86edcf84d89dd579e191bfd09fed10b6fb20b2fa1b
-cf2fed93459eeac2a5d36dffd87f50f994ff6df2b3d816beed04e19fed79c2f841d512ed
-cb25d854f23586c5ff2cc4fa0bc5ff7dc0e030d87cd193f082fe93f7affe8432be4af8b0
-5ae11eb8d1a5fe3ddf50d829e2bf16affed967a9ed7cb7d308e94ae4b1d00dc0f925f14d
-a5f407ff52ed35d0b188ed21cba9d393e75acba5c642afff91c8ed047df35eff9ab8d023
-f1b6fba652f76afb20f43cff4efb29adfecb5eedd879e59ff979ffaff1861bfb58e523a4
-fec286e151d623e886fe6ca4d866fe17b2de6ad980faa46dfe96dd88d2f911abdd80bde7
-8b4ced0ea5f46afb07d95be0c147cd0c9bf1adffd872cafe6df586f910b9f29fff6bf0ac
-57f8c5872cd0ff18cbfa79fb92ff9f39fb9ae87bd886ccea7ed587de9ffe70fac451bae5
-43f208aff27cff67facf2ee44ca7ffddafd487ea50e5af61e014caec08e094ccbca5d8b7
-94c3dc4893f3ac43ffbf6ad9b603d834fed093db88f1cb43ec0eaff47bfe5fce35c3fb3f
-f281cbf633feafe951c7e04bec05ff4dbe8fef79ff579ffbd086fdc954ddb6ee86ff2ca7
-e97deed25ee41998ed0aa5ddbf2ec4ea6cc31ab7cf81fe93d860ddf79e5be0a43be055d8
-29c7ed79dc31ff64fbb230fc47f7af11c0e02fd99bff78fb9ec0fe40d928e0b984f388fb
-cc539f12fb34bffa79fec196ff6793ffaf3efe5af10ef65cff79f8d107df96cc11ed3dcd
-f37ee3bb4ef506fb51adde89ffcd34ddc199f8a5eb79dfa6d85393e3c0019eff1faef782
-b6c99cd9fe41e01dd6f22fa8df3a94ff9841a5e068bdfb6effa528fb93c0fa86d3fc4592
-ff9e4bffd993ed3adc03e731ffaf0cc1ef7fffba84f3a5f97cb6ff51ca9fe10bdd98bfe0
-6ccef160a5f781f20eb3cc69db84d193f7a51ae557d90f93edfecb8defa50ad82eed47af
-e6c75adcc27ce48bd887e01eedaf6cff87f65ffeb1fa5ba5fd60a0e779b7c885fe13ef4a
-9cfa9305e34edc1bffc026fab9ff4786fbd079f0c52dd8fb72f415b1cf86fbaf65c1fe7a
-f6cc1fedbbfe26c7f201d83ddcb0c739de52e55e9bf2d061e5d38733fa79ff86f4b1c677
-ed95fe44d920ecca10d851df05c6a8ed5baff383ff17a5fe3895ffd31be15bc2eb38e424
-ed60e079cdfe6cffaabff62dba47e060cdfe86db91d8f936a3f225fab317ff45fb66cebe
-32e6c428aadd9f2593e0c117c4ff2bd4ff3aedafd476bfe562b9fcaeff93d16191ed9909
-d3afeea952dd9961fea539e05aed69fab850dd9be317d94aafe080d87af69f79e588f86a
-ff82f399ff25c3ec18a6fb05a9f7afc0e053d79f5afbd44de086cea5f95e9aff87fb93f4
-60f81afdcd41d861edca86ebc14886fcbfa5fb72ff7cf7a9ff12fb4b9eddc338e079d999
-f280ff3cb3f24dff1a86cbfd79e066d9c09ee9b9a5f27bfeb85afbd53feab7ff4bf095dc
-6dedaf86d99a5ff9a1ff1ed0ee8431c957f5befb4ac3fe79dc2fc9f50dffce7ce4b986ff
-9fd829c7f503ff5bf4c493fb61ff14e64cd9ff56caafe016d862d97cb6fe77bfe086c9ed
-55dd0ba2f324fec217a7faaf1efd63c7b0e545ed34ce76e086d9be7bff93f6b851d922fb
-afee974edd29d892d5b844b6d88ec6f10195f886ff5efd16d0a1ec6ac4df6ed0eeb006d1
-9fff2ef251c933ff05d94d93eebf6eff7af285d874fb36f9ba5af61bfecb26d858f3b14b
-d8f786eb9f0ed896e535f38aff7093e5ba46f40ffccc23db7aff966aed92d5b068e405d9
-a5f293d0b41db8fb2d9ff494fe04f6d833b2f839fe4f96ff7afbcd6bd974e58af33ac0eb
-93f12eff86d7be9bfeb62bffac46e81fdf359dfe7be361d809c4ff81f859f307fe98f55b
-ed31adfebf49ed1ec571b8e523c1fb039bf8a55aff94f44bafde88fe92dd7ee5acf3c615
-9de50ada42cb0ee5bf9fcf08e07addbe6df27ae4c181ffbe11e039ffb869ff7acb5ce01a
-d5fb5b9fde88d8a56bf892e952e2d0b348f92bffb3f1b750c634fe5ff3d779edcf45e05a
-ccaf6cedd065d97cebc62bd8ae3fffb0ee45b7d982ff58de7bd9ab01f350dc12f2cb65ed
-96c4fa70bee802f2c09eff8ce03beda6c99ce862dd26d886fbcc6dde93d1a7eaaffa85fe
-7694e1be31c3e524d887c0ed73d00dea62f9c12686fbaffe86d0a5f58cfeaf48ff6bf293
-fdab4fe692ffa502de3c9ffbadd175dbf028b6ec9abff8af3ac2f226fe5fefbf4aca0afa
-b725fea5c2df9f4385fe90f9bf96e1873effb668fa90bff03bff9f11ffaff419b4e482ec
-94c71c93f8cc08e5a0d00efb66f7c493fda5ea6fafd809fe51a0d9ff5bceaf43ed30f562
-b8cf13ff46b1d886ff77e59b4df428ff65fb52df39d949c6f65aff86fb79b6f739fe15fb
-5ef4aed23897fed54bdd31f15ffc64d82ded93c5e052d726c7fb0bd841cafe78f6d6885c
-fdbf43a8cff90dff4286eea3ff6dce97e71effa5f29bc67eed61e61388fab9e51cd843ed
-09affba7c90cddb222fd78e07fc8ed8944cc9efa4afe0ef561fbd8679bffb631fe8ccbb4
-41e629d260baff48f9b681ddc11386b6fb79fe93bed0a4fe75e293c2fd1df1accf0bffaf
-d59fb9e508c179f3be9ce92bd3a4dc42f1ce6de1aadb84d89e4effafed66a3ea91cf7de0
-1de897d974fe18aff786ff9e73ef94f8af4dedb725edc71ef286fe8c55d8a5c5d961e007
-b5ed4cb1d979e036ff5afb93d979ffcd31d867ed9dff6cc3d92ce86ef77aff9ad2bc15fb
-51afd8fb69e579d99cd0afe0ae3bfedb5ced7ec2ed55fec097ff79e51ec2e07bd0f52ffe
-abf8d328e0c30fe44fea1cf2af30ed5fe09e39fab75be216ed4fcba3ffd8a50fff62b2ed
-0cbfe59612fbbe4798f231feca79db1bcbff01f753ffafca7aff52e4c19bdd3bd848ebc9
-5bd82de09acc80fe9e67e4afd804e7aff165fb21fe93c1fa7cfeca3efb8bd0abdf19d63c
-edb584f391ffad5ccba4f776fe54d0a4ed4be43eeaa5d894fe08a5d81effbf2ffc4d87ef
-7fbe28cba6f93fafdd16f051bff288fb9d27ff429cee6ce53c95f452a5f18dfe7ddb68cc
-fb87d97bffc16aecc693fe7dfa89ec256afcc48cc0f979fe5588ffacca64ffd26ae0b512
-fa93f55cbedd85d8a528fabf05f4b432fa69ffa5f3b520ff79fc89f314dd48d8ff933bfb
-be61ff30e27eedae53d937dd1294e5af01ee63bff386ffc007e053d910d0fb24dd3ae094
-bfff1fb9d893fe85f732ee82bff988ee52a5e18dc9ff02d1f287e714d995ff81d68ee0a8
-0ada4cedcf92eac75bd888c7ed77d8ff64c934d6afff4abcf603d14cdfaf1cf942add830
-db5df7dd39ed4de020d991d0eb3fd92bedb702f8c586edbb3db6e1944afd3aeeb868ed9f
-d05af18fecc402ce63e496ddc352bdff6bf7b607edcd7bdfa5c893d0b944c3ff86f6a0bf
-ff71f2c193fe329ed84aa5f596fd7cf651bef080feaf16f286e061f305c753c4b1cb3dda
-59e074c8f760f025a5e59a45ff94fb62d025f45aff33fac19ffeb576fb04a7e01dffaf06
-fcb422b7fb87f70695e570a8eb8ff281fec075c4ef68fe83d087afca96f5a5ff60ee25b4
-f780fe9979dda027fc53d9a5fe22f8aec4e579fece45ff84dabf13b75efe7bf586fa10a3
-f130d0a5c57efaa55afe19f34efa14ff9ce517edb241e057d12afb4cccaff76ffbcb79dd
-32c89eea78b5cf47c2e6aa4cc5fe7ab5fa9fff17f587ffb828fdb711db81fbbc53f9d9c0
-5ac7a5ebb47ae099d883e367c934e45cbff17af74de59fcd59edd346ecadc1dd27fec757
-ff17d933edbbff0ee5a5f205ff52fe16d876cca8c1fe6cc0e258cdfa44ffc17ae686ee70
-d962ec179bd80c95e3af1efba5ffd995c0e035d955c0fe79e55aec1ee04dc9e68ad879e0
-9feb6ef488d979c7fe80f991da98e46bed0fddbc22ff58b6fe1eafff01f588ff69d4fa9a
-2bc0e938e262eb97c661f1a3d085ff96d86aecce862daaf00bff3bf2c205f752fe1cf393
-ff85d8fa54d2a1c66dff86fa9977dd9b5aff81ee9f3ce094cca5e3934597d8b646b8e094
-ed7ee45bfb04f3479edd0aabf31eb8ed80e4af3aff0ed19eff8ac0fe62f9c66cf0d8873e
-c64df824a5ffbfa9e03ad9b6ff82f490ffaf24f745fdbb30c1dc02d451f220a6d80bea52
-ff18d884ffa562ea8bcfed80e4d361e195dc22ed9310e5aeff79d287d9af2cfed502e54f
-dd37e848fe129fffb6fc7ae286d96cfe93bbcfa4dd5ed812edaf2cb5fe24f3b63ce019bd
-ff12facb1ed866c5f47dfb64f96ffbb5f62efe7bfb35c71ef9adc798e080d2f960ffcb73
-dfa551d81cf5c599bffb2cc64cf242e0a134ff509ff5dd80e579d0ed8618fb77f7980aa6
-d861da38ed97c6a6ce85ff6aa9fc93ff85cefb65f3afca7fed9ed92ec8f23adc9b0df947
-93fbc159bff85ecbff80d94af20bfc46f8c157adf692fe7bf4abcb78c0f241de1fd54ff6
-9ecb47e730ed4bb1fb86f5c26effcb7dd987d6f866c7f26ae5b986f5a1fc0bacdb27d84a
-d007dd79ec93d287e4b39ecf2aff43afff2e93eda04efb87ffc493fe78d966ed79b9f693
-d7b679f3d37fe6c829adfb0afea03ec2e191d05de8c6f830fe9ecc79ff5aee0cdd4bedca
-5fdf2ce89f3ee09733fdb640f956fc87b7fa6dfec4a5bff22ca0ff38a5dab041ed6cd788
-e09ccf71ed93e069d927ccb806eda3e07dd893ed88ddb018feb8a0fa7affc937dba542e5
-9e0ff050ff0da4ec964ad8a52eed41d95fcfff6cf1a4f486ff9fcb55db13f24affdd79ec
-8ff0d67addbe14c1e730d90ce037bfe509ff3fafe360dd04ffcc21b6fa0e89fecb72da88
-f1b0ff66f325ffaa4193e0af0ffbb719dd6dfeb4fa991df8aecb73fec37affd766e5c686
-e079e604d1b243ec60e079d7ed7bcefd06f29fc0f92ffead26ffb912fb40ffbfa5fb70ff
-5dfa2aff58f562ff31fbd169e022cdbf0f9af879febc63f2cf89dd79bcfb32d0fe85fbca
-7aff92f39a39bdc913bfe660ef20ff77faa1d96c3afec260bc1af765fea9f479d06cf1ad
-f7985bf2a3c1fa15ffa7ef6cacfc68d9afeda545eb63d456dc0ed895d885efb7fe78caed
-69d1f286d8a02982d5e58746f6bb06f1b522bef707a6ff1eccacff67e3c093ff21fba810
-de4e97e577fe1db6e066cbed7adda7c1dd8715eb4de093bed392bbc909cfa9c557aff385
-ff53eeafdf60d802d1fc3bb8fe39f4cb81deab01e643afe059d521e0b1fb7cfead38d994
-d88fe2b05ac0f7e59307d9fe95c3e03cd95dff93fbc24f86ffafcd6be080d99434bed83a
-debf49ff30bff686ff24fb94f861fe44e402da52f328bef943b0fe3af6b7f14dbeffd869
-e4af5cd8fa6d95d9f161b7ed3f9cf11bfe35afd956c7fe85fac75ed893dd7cc1fb4ea5f6
-5bfe2a99f2ce7af3c43ce61bf068f8a5fb79e88dde03d895e080fe32f286e58eafe168ae
-d89325fe51f2c16abffe11f7a5fe7bed53e02dd0fd81f75cfb2ad8ff0ba74eb8fba338ed
-50a5f281d81fe03b9eedd729dc47fe23f452c3fe81f7b179f29dcf86e016d996e0ae3fc1
-eda4ca7aff8bd293de74a3e77cc0e065db8afb9f0eb4fe3cd1fe9837edc24792d0fe59f8
-c77bd972ccf386f77ab6ec2ab0ff26f750ff0fafe5c708d86ecffa44afff1f98f981feb2
-dc35e04dee1cff95fd61f72ad65ac6a5ff48ee23c5f918ffb7e679d88effa5f07fdb88c7
-62d908d69ceb944bc701eaaac9689aedcbffd870f2c07cffd002feb6ef85ccfe17b1f37c
-e887b5d09fed62e01ecbfe08db56f999fe77cd5bf3c784bc2ceab64ef11ffb5cffc433fb
-04adff18d839cfed79c5ed8714c0e186ffaffa2d95ddbc27fb93eea14ad513e53cd09ef2
-7ed286edc598f34090ff94ef80b6e66bd8b9dd5cd9a54994ff81c79ed8be2face57bb5fb
-94ed1dceb67bff81beed885ac2f70de33bd823d251ee2efaa4ff86f66cffb4faa5c551fe
-aff532869f19dd59e5b22c93e6a55297fa68bae868befb03c0ff4bfa09d1a8ff5ea2e584
-edc138b1ed04fe89ec1bd8ff7bf6ce6ce4add908e095c6ea70c2ee73ff5c9afb249ff4ac
-ff4ad819da5acbee13a1eb5bd80afcb0ff94c1ff67dd0ae062d9a735fb81d6f152e43aff
-0ec3fc3387ffc60cfdb8ed13b6fe42f95df4d83ed0f208cb88fe61f6d856e536abd8fb40
-b0ca62fa7ffb93ff9ecf87d85dca3cd80fdf61ed82e01dd961d0f2c1f881fd0dd7fbbf4a
-f9c8e411da48a4ff32c8a6f179e586b6ea4693edc04eff1b93fbd160dab932b5fd9d4ac8
-12abfa984abbf588ff59b7fa44afe093f3c250bfe055d879ec69fb7ef2a567fbd588ff84
-e26bdd32ed5fb5f093fbaffe17e5b962e223b7c6a4d388e0629ef1c14aa0ec68de76d0f1
-79e586afc677ffa76ab7ff4cc1e09607fbbf95ec0a9eef83ffbaa0eb4be009dd53e819ee
-8efe79f29bcc29ff78f390ffaf43e85fd0acec8754f1d98f2fbeff7af6cf8bdd75e03fd8
-2dc9ff7af6cb28fb95d0afe549a4ff80f2a3dc5ae5affb93df32d6ff85ca3caff026cf9f
-fe0cd52fdea8ff7afb2af7c494bfe50bffc6aa4de52fcba8f951ca9cfa20c04cc9379eee
-5affcc92fa6dfe15f7b547f9cb01eaaefb7bd230f6af38d905ccff14edc125edd883f29f
-33efaccb6bf779ffcc65d930f314c8b7a9f782fd79ffafe126d8af3ffb9fd5b647e00fdd
-8826bbff3e98feb88418c4fe9d40e5b708fa5afe92f796fcad50e00eb3d865ea32dd7df1
-c627d853ff71f909d85fed75febe1aed62fdd885e27edd79d986fe61f203d092d9af0cff
-449fde913dd8fe79b7ed1dc5a5fe75cfa5d9ff86f4d078d9a502ed48da86d869caeda579
-ff86d822f297ffbf5aff9df7b652dcaa5efbaf3ae013ddb977ff3bde1cdbb628fd87e579
-d986ed69cbba31d1be459ff986ffc087ee09fac883f096fea1ed6bc3de1fd2ffacf251ed
-afc988ec80d819cc5bd613ed8bbffe71f9bd9efe5cfb0ab0f493e417cbaff281ff23d0b2
-6ae07bd8a511fa50ff1df252e8a5cd93eb6de35ce986d2afed62cffc9702c1f77dfe87ef
-04e54af37a08e058befb44f7bf9bfea8f436ff9628fed837e361da55e00989e5c26bd488
-ef81fa99d179ff9ff967fcd753e986fec160e751d0a8ff47f927ff40f2a3fb72f5c561e5
-1ddd4ec2e49458fcac3dccfb03b1f87af09345e06fd98afb22ff6ddca5f095ff83f5a5d8
-27daaf42f015c7a9cc9ae16bfe7ab7ed884edec19fe647f39ffe37f7c09acca7c781fbc0
-20ff43b5f92ffe9ff550fe26f8b531f2afe043d85ad86bdd86ff8ce8c1a4fe2895d885df
-5bca1cafec86e1c065baf59cfeaffb6fcbf2a121fa49fe1ad941e00deac471becc24aff4
-a6d04798fac59fed1bc0df93d797d886e003b0d913d897f67bfea55fffd02dd8f65c7fd6
-e52fd962fabf9ffe04d360d854f335fe4dd831dfc23cfeb65fffce89dd74f239ff4cd82a
-c9fb3bd2ff9438f886ffcb0cafdd5dec2ef460edbe3a95f0c3a4dc83d8b81cb6d97bddc3
-6ed95cea89ffaff62cffafc61dd041fa62cdaff219ff3af68bffd04cd805fbaf45ce14c6
-3c94eda93efbd879e0c1a5bfff6dfbb327f543fe87e09211fbaff08805fe6ff79b5bfe7b
-f618fe5ec2ff6ab6ff52b9d331bff21ab6ed75b2e1fe4a8affa4cc11ea38c2e77fed87e0
-a0c685e57af2b375e37dcfee8605f74bff93d77cf59eee5196e5a507edadd816b88ec1ed
-87d57cfe93e401feaee2864cf610ff61f395fc38eeac0ffb84ffa63ac91294e79f42fb9d
-f1bd94ed38dc65e0afce7aed619fe57bed6ddcff86f27af9d017ffbf59afed9333f35496
-edc859d997e5abef4effc960d830e0bfabdd39b8ed07cd61e1c0a6e94ff2ca79e005ed89
-dc7ae069c2ff15becbaaedc057feb583ff79b5f930ffaa0fedb722fbbf01ff52f91894e0
-c2aae6b121edb714df87ffc060fabf79fe69c5f25ffb45ff21d9b54bb8d961d818fed06a
-e0afc946e587cb5aff96c0e019cffa7df2d661cbf379e45efe11b5ff88fa9d54febd0bc1
-fa25ff99c71ea5d84fe0b688d97ee499fe0fceff87e7c32887b7ff62ce047fd8b67aed93
-ff7bf958c3ffd06ddc8ff39e42fb23dc9a3afaa5fe9efb41f7a5fe44a9e06b34fc0f95e4
-2af3d14cdf25ceaf64d9fa6affd49d5dea86d899c8fb57fe3787d0fb6dc7fe62d80eddb4
-28f1d939b3fb32e597d079e96af2a5ff88f27ce7b988fa9934fea5d105f4b880ec4c9ff1
-79bee348b6fb0eb0da27b6d88fde79d807c7f22ed9a5e080d9af4ef2b2f979ffc128fe52
-f72bd161f2b74cdd07feacf6d819ec93ffbff71efe43df16cf3de48a24a5fb4bff2ebfed
-92d883ecafd12ac55fceaec70bd89bf985f3d977d0fa79db5b9bf786fb70f2bf3bb6ca40
-8ae5c3a5f62bf04ba5dd7bd8fa5fa5dc529fed83f86cffd08955c2eb7bdca804fabd9ffd
-0ae03bd127ffa748ed1ebee57ff271ff8de21fc4fbd853fe25aeff76d993ed6effc968f3
-30f851fcaf61e579ff58ee40cdfe68d833e00ca3ed73e5bf93eba5c76dfb80d168db4c93
-fbaf51d8329ce583cfaffb85f295fdb6ee79e5c1abd976ff61f816ff70f386f121ff66ef
-79e726dc5686f5bb4cedafc3ed1bcaabe006d7fe7af4aff81dff49b0de87ffc026f2af1a
-c0f601ffbf36cda5eb459af7abff1cd84cffc95bdf2cbfce96fb72dd5bc7fb79ccff64d8
-28e0c046c6fe9336b9e885dd67d1be34fe53d8a33cfe9fe6a6cf79ea97bcf31bc6b2fb94
-11e682f192c8fd44d8a903fb4bff1eefb4e52cf27dffc23ec0f38afbc34abef2599fd85e
-d60ed936d89810fe51e509c6a5cc94e357d893d980e03affc293c5ffdf219dff9309ff86
-befe4393ff9c4fdb09d860d97bccfd5bd209edb669ff9ded88e580f1abfe1ec6afdd03e0
-7cee87e071b7f593ff64f143afed92f79e06dfaf3eefa1fb5c93eda566efd98705f9b0f4
-08f8a5c3e618f2b0d256c517feb722ff47ce9ffd3389e3bfa9fb49d85a97ec83ffc49ce0
-85d8a4389bfebbd811e49fdf09d465eda5fe0bb9f62cff7df587ff65f9cb83f289b6ef45
-fe30c0ff0cfa4bf598d3b249fa01ae66c4e03ccde5a740e961d8ef66bbe684ed93fea4ed
-1193ec98d97bfbca4ed831d34ecc28d95de085fb69fe5ccd3efcaff816d84cade57efeca
-16d840cef381fe94c914aecffe11f6b72ec0ffabcd3d98e486dc6098fd77e201ed93dd83
-edca7fe186dd6bf1d05fff26caa3ffbafa22dd51da39aff666feb9d98647a5f573fe6af9
-7fff21dd61cae86dddaaed49c5a8ed40a1de35d0fe6ae080dda562eda0ceb818fb86edbe
-9ff1b6fe75f8b763fbd48afab915cdfb29ffac45c929aefabf38ff51e336a2e57efe79f7
-97ff8dfa77f026d2bd93e7a6c7289beb85f2cb0edcb379f985ffbc61db23e661ffd943ba
-df58d4fb9c5ef27afdc250ff22fabf48cf93fa7aff5df73ba9f50dfe42ebac03f580d96e
-ed0887d2a5c0f879fecb19de4af105ebb0e083cd35dab6e154d086edaf3efbbd04cd9fe5
-1ccaafff77f7af1ed8adf451fbb3c62eff73edc028d754fe37e80dafd825ed9e14e2349b
-f3ae5ddd6fd0f66bffce6de0b586ed79c7fe13f1a7e00cd656e215b6cb99ff4bf312fa83
-feda51ff3093fec42aed4be5b00ffba5d19cf2b683f89b77ff931ae5d042d926deb682eb
-7beea5ff33afdb2dcc9cbfe06bd8a5c97bffbfa1e551fec0aff342e77b0cedb77dea93d0
-6dff8cf822ff58faa52995f19ef934ff9ac886ff7bfa6dfe5cd902e1c264bdfa2798d810
-e886df90d95aa5ff93e58dcb87f3cf6bff5ac7fe79cbff52e593c0f910bdec9c4ef321fc
-c019fab588d9b946b6fd6bf3a0c1ff37ed88d8b89dd842bb8ad0a5c1e74999fbc0a5d56c
-edc338ff53c732dd01edcb3bd8fab67ded88ff6af4c943d80ee08ac4f671bafe06fb51ff
-8ef92cda50e031c2f09a36e06afc92ffafc92eff59fb86d8b544bed993d686efc6ff15d9
-66d779e322db51e02dd186f290fb9e4cffd96ec9ff7ada71fe55f704feca61db10fb4fff
-9541e084ddaf4bf2b685d81efe3a9fe09038c1e195d87adda3cf2df664ff95de86d8af3f
-ec70dab10ef960ff79f6d906f261fa78b9de8655ff1cfab87ee38df593fb7bffb064f3be
-8647fe0dc7afe013a9fe86f7bf5be51cb4ef6ad986d824cb59ee95fb88f89317d6ff84cf
-1fd854e086d999dc12ed2ee4a2fe61ed18e04aaf6de681fe0ff2a5fe6bf3c0a5ecb53cde
-29c7ea9315f3b646edaff23bc5a2e5b635f884f17ad81ec3eda9f72cfd97d702e761eda5
-c4f179ffaffb03ff57f53cff61e083d805eb3af820ffc493fb4ef285bfd42eeab26dffaf
-e020ceff03f6d092d99f30f24cd90aea4abed02be09f0df6c2daa5fb4e93fbcf60d9a043
-fb7cffd54de5a1f261e89edf79d40fd84ccbfba95aed94e59ff139fe5ef677c79efc61f2
-0ac9aeff6ffac5fd42cbace0b849b5d89641fb18ffbe7aeda542fbaccc83fb9924caa8eb
-79cc69edafd045d9b9affb8708c8b768ed6ffba2ffbc7afb58d225d886d07eeab0c693ed
-affe54f4accb81dc6de00abcd09efe3df0a1cb23e5c34393efab5aecb635f350fec0a6ff
-78b8cca5fe6af579feacd68959f079e9c13b9ef323ffc2afdd3d9afac532affe81fa19ff
-a5f37fffa464e8be06ff5ff776cdabed25beff4fafdd7cb6f73f97dca1018eb8f45a88ff
-93f708ffcb91d97bcefa5bffd079dd59e208d1ff61f615ff3dfa9c1affa5fa66e24ad3ff
-81f3d81db5c645ce30dd0bd993f869f046dba510fe50ca0d9edd935dffbe48fbaff062e5
-23c5e487ff67fd5a87fbd671fe9fcb6be085dd7aeb1ec9aaed5cde25e595d94cec36ffba
-1ad82bffafe587d85ce40694f2c01391fdbf09cb5cd8bd3cc2ec20e4b83ffad97cc81ab9
-fb0dc6a5df81e8cc37ffd469ebcb2df3b4edd81cfbcf20dd6deba95ee564f1119bd80dba
-f533ffafed54b9de91d887d977e0c287e62bc17ef5b757da3ba5ffdb7ef092f79bfe73eb
-3ddeaffe62face80f186fad12efbc219eda5d02e95ff7dfa58b618d994cfaaedbe17d93d
-df1fffa5fb08d366fd5ff728ff86f9c21abffb93df67cbfe8ff285db02fb6df584fecf5a
-ffade64add87edabf778fb55afd87affcd872ebffb9fdc86e16cfe3ef80296ed9326fbbf
-85e57cfe5b86e4be79f0a2d446c0f725fea0c1e585ee6aa4e09468c1fa9f29fb49f2affe
-2ff05ecc9fffdd149fee78fbca8750fa17d855e149ccb3ff9b16bee63497d925e0bc75ed
-6be5b578f67cfec342b9d693edc151f608fa339dff80f893f1be46c3ed87d993e08cd998
-d859a4ff6dc808b6fa9746e061d071eda5cb2edda526e185d86ef198ff42e429b8d093fe
-61f20c96ecacde4ced35ff4def94d3a7c0ff4bbbe09d0eff4ecf39c0ff9b51fbb639fe8c
-df82d8b131f84bff3ac2fe06d3f73088e6cf7de0a409bed593fe03ec436ec0fe28e3a60d
-f4d299e07cffc088f21f87d6f26cc8aef369feb140ffadd93bffcd08e05beda1f501ff6b
-fba4e0b47addc462ebaf5ecc7afa9852ff3af214d250ed10daf03ab2e59fed2fe7afc0f7
-38febf51ffb64cf2c763ed34fbc222d0a5c796ff01e031ddaec1fd5af58afe7ed093d8af
-29f25bdb7ad0fb74f1afd893edaad922e8ce05de86bef213ff51e487d5a9cb95da79f251
-a5d8ff0eacff58c5fb61f63eb9d894f9a8e088d07bffc1912bfe41eeaf07faa2bffd43a5
-fb1dff4de4c179e9c40f99f35a9dfb86d81ed964e0afdd31d860c9fe3ee5b60bd8ff14ed
-2dbae5aecba1fe85fa7effb878c4f352ff79d75cff06a2d99520e57ad7fa79b7fb94ccb5
-68fe7af265ec72f0bbf69b4bdf28d8b408b7d91ff963ffbd73fe14eda01ed955fe62f615
-fc71faa567ffaeed2bccaf6bedb9ff50fb19f35fe386c4fe6393f0c739e585d893b6dd86
-fb59cbff21f751d936f1b8d96fceb968e5c653dd78eaca86d88dd99802f9b762fbcf86df
-c036f1a5ff7efac14c90f37dff1e99f286fec154aedc86d7fb890ce34bafe638afce31ad
-fe84d025dd87ef7fccfb76f2acc5f10aa0ea16d850ff0bd99fe50ffe3adba84587ccff79
-f76bff9fe570edacde07e6cb86e064f9c587e527caa5c693e054c8f1934dc4fe5cfad8a0
-047be093e9aefc2db8ea21bfdc5c9df575fe1df24eff12acee2f95d86bedafe5865efb96
-f525feaf79ff2bf6b609e551ed32ffa9d228eda54bfe20edaacb50bee63895fed014e4b7
-efd14ed829eda1f76dfea55ad0ff74f9d768cbf36afbd803dc62f7affe18d9af2ce552ff
-5f93fed061ffafef91bef946b0d893d382fab6fe1fb7e9a1cf48f13affc14391f79c46fb
-afce41b1ff6cb7ef4dff34aff38d30d9f9789de0943bfdb4f6c028d14cc99fff6baff738
-fecd18ddc197d8be9ac5dc79e45baefebf069fffc314ea59bed835edc49ad05aff7afcaf
-cc64e57cfe6ac8f27bd387fe6df911accaec24a7fb965286b0fb75f661e037d923c8f43b
-beed951cfebb08e0bf7bec8ae59b3ebfe354ed99cabd12e0c14391e4993fce2ce278c8fc
-5ef767e917d861e15cc610edb686d86698fbd85dc7f3a32cff97f109ccfb7bdd86ecce0d
-ffd4a41aecbc0cf5c086d849a5ff8bf176d90cedd07be5b862eda54aff36f36afd4cf8bc
-fbda3b93fad543e0abcaa3ff85faab16fb73ee93db9e22f9b842f294d9379fdb60e017d8
-93d3ff5388f7bf49d9c5ff02c0e493cd82ff99f2b480e09f29c2e06f9eff9342f951ff21
-c2fb60a3ff81f66bfdb477f8adfb21bef76affabf41d95e026c59fff86f296f989fe7aca
-fc1df3c415bbff3588d6ee69e07dddad44d706f9b679e5ba4afec259ffd078dd27fec5ec
-57dd15fe87f9a64eff01a0fb80f8b87ae288e025afcf0ba579d2ea5791f673fe4af001d5
-6de093c1e00fd639f5c679ebd8ad1bffb0f706ffaff17ae55e9ff2ce3ce09efe3493e09f
-42ff06edaf49d110ff50f7b6fc45f5c52eedaed19ec9a7ed7df2ce39d80fd93fd0ed30da
-79cbec86df9c4cd0afff51d8fb38afd905d038d956e031afdf78e5b179dbafe610b8c823
-fd53f787ffa1c94ffe389ded7de1b38e3ffb93f09f1184fbafcd61e53dbfd992e0c146d8
-26e6c306fa5fc0ff80eec8fe1ca6ffbf1bdd93d88cdd5aed39ff4bb5fe6be2af52ff1588
-fbc777d883e0c4439fff26fbc104affe7bee6fc1ed5df9cb7add69d7fb93e979dbc46193
-d87ee9b462fd0df668fe5ada08b9fa86fe9df488afff62eea54ffe0ac1ed81d96dedb379
-bef46afb7effa5f593ff80c0fa46ffcd26fe76f884fea5d093beed2fe26ded86d0f560d8
-28fbc6ed69e55abcf3d99942f4aac793fb2af752f388ffaf6cfba5cf9fed62d8369d6cf2
-cb2fe0b55bf328ff78f786d0aef15ec3f286fe95d0b1ef49a5e62dfb5193ebc068dd87d9
-9ce44cd80db7f52cd5b324fda5f71ebc50c2fa9602fee115ff5bdbc08dd894e01ad68ae9
-79afcb58e362de1bc8b605ffd978b5f635fe02fabf13ffd252dfa4ed4acb19d851ef04a5
-d96da5f08ad75ed938e051e916d29bc0ff1fd9af16ff96ea8601a7d81cceff8833c2e580
-ff1ded6fe082cb98df0bd0ed34dd52fe11e086f5e4c24b97f862fbc781e5b0cd21befe1a
-93e49e2ad903de3fe06cccfe5df2afbffe20f8b63af557ff79f786ffd863afff84edb64b
-c287ffdd9f2ff0c678b9d69af01fff35f44db1eeacff50f82bf0bf26fe82fa7af5cf8a3a
-c3e47bd88fdda560e59b2bebb11cb8da88ed9cdd8dd0fd32f7c856de06fbabf48effa7fa
-60f23e88b7fc66bdcb44affeb6f681fea045e4adff08da5ad6a1ff16b9fe2cadfa7bb6ff
-8bf193c6b3ff5403feafed7ed99c09ffa545fb9bde66b8f83fffcb68faa6f490ff0b93de
-9c0fdc5ad879cced74d61bdda5c82793faca12d961df8ff1d83e80fbb868e5ac29fa55af
-dea5e474beff8437c2df86d86dff95b8d239e04b93f2aafb1aff5af043cff282cafe7af6
-93ff78fb61f427fe5893ed9f1cff94ecb74ac60ec443b6d97efbc7e743d8fa79f2d45bd9
-39dd60c8ef69d877ed95b8f347c9a5dd67edcc41e04fc818d74aeb29a5d9f387d212ff3c
-f4cd79dcc187eb4fedd273ddbe81e0b254c72cb6d8f536c1ff84f3acff06a5fd8af2b238
-edace73e9df17afa39ff16afedcb0ad8ff43f3c592c1fe8648c4fbd027d8f29617fea2e7
-01dd4ded9fc1fcd725d861dfa3c9afff8826fa51b6dd44d833e00aceabc67ae8c349bfe1
-83d06bff93f2a1f686fe27e5a50f93f3a404e0a520f871ffa5f307b2fe25f9bf2efc7de3
-86f23dfdbe79ff9ff996f4afff7bf9cc69bf45e5b893d8b663f931fe10c5ff9f0afea51d
-f232ff86fca4f88661b5ee6fe5c34294e7c32de062cfff5ffb81d8ff4de5a2bed093f969
-a5f284afd086ff49e705d3f1991193faa54affafcb46bafba5f387ff0b86afff7df6c041
-e91f97e4c4aded0dc1fc6df9a2bcff3ffbb60cffa8f963f13ed821dc67d85ae095cf64ff
-b6da6cffc577fec786e1bf2ed193d97adfb052e864d005fb5fd4af11e8af21d95adb37a2
-e05c95e9a8ff72fb4cee21e59ded7de2af3bc0f383cdfb6dd9bbed12e547beffd553d929
-92fbbc4bfe98bbfb0b93e1c218bf8bb8cd0bfe53e037c6fe5ae531ef13b4d96bf9bb79ff
-b5ed6ec9e567dd7af78acd5dc724aadbee5ab9ed0e9afe69f9cc56fe679fff5ba5e0c34d
-ea73dd84cae561d812daaffe7af3affe34fbaf08edbf3bed52e52a99e9329ef11198fa78
-fe3ff7c162ffc4a5febe95b7ec78dc5bf2ce8ffe7cc3fb0dc0fe1fd031ddc5a5c1ffb14a
-b9d860fa88e562d9459fe8934da0d87bceed8e19f69bfed014f0d36de450cbaff842a5da
-fb30f26de880ed99fbb623d878fec09de47deda440e029d851e004b7fb38ec10d931ff78
-f9d36bbffb3bcfaddd8cd884b7f208c0e080d0f01091f296d515ed4a9bf488fb9b31c2e2
-9f52c0e073ccff6bfab086fe7bcbfb59d1ff52cded4ddfafeb9e0ded9521e14cef38ff1e
-f79efe8845e402b6ee6db0da84ed93f99817f25688d97bfe1cf1a7d123ff93f0c107f6b7
-e33bffaf27fbc97fe062a8e07baff61bff88ed6ad0ff865ce0affe43c7ba07cd61eb94dd
-af50fa3bff21c2fe69f5adfe86ff7bcf9cc0fe84ee95e0b04afe2da7d96dff53f313ff46
-d893fb2ef73c95ffbb2cfe60f8b3ffd225e04dbeec9301ffc61aaeea2ca5da22e0c116d8
-b67feeae6ce0a96cffc31a86cffb7acbfa80d886e0c58cc13bc6b4fb79f5d73ecbf32dff
-4ee06dccff7ed0fb05f5abdf9635fcb659dd29ffb365fe71f2c479e0a04fff02bffa5aff
-38c8b660dc26e09f04c1f7961dd1a5f77aff9ff486ff10f692d8a8ca96e080da9f3bc4da
-5fe922f253a6e343d80cf298c0ed79f9be27e286d07aedb2eb5adaa6c2d96ce5cb80d9a5
-3b87bffe79ccff5bf6d06ced95fc7bf7c779f162fb9cf438de0ac5fb1ff7bf338cd9ff45
-a5e039a1ed17f4b15ad9ff82e524d8bf5093ff9b5ae0a5bf04f642abdd38a0edc44886ff
-d86ac9f87ed86de5cb20da9709fa60edafd894f230cf9ade7efccd85f37cfeafed49caff
-86e028d951dc2ed758cc64e819f35bfb4bf70ebfed9319f7a6d792ffd867fa7cff88dd1b
-d8af02ea98c5fe3df7a51d86ffbf61fe21f44ba8ed20e3b7f25695eda513dd79b5fb44d8
-59d9973eff9ec942d387ff92f34fa5d979e1affabd60d7f669fed976ffbe2bfb9d09ef98
-fa66ffabe01cd8fac061fbd9a2bee779fec02993e8c60cafed9302eaadfb46a5ee81fec0
-a7d31ff840e779db88fa0eee40a5ff56d435d871dfa55aef69fe92f178fb7ef19bfeafcf
-88d8b893ceaaff4dfbb0c964fb49b815ccabc657e575fb68ffc386fb5dafe06cd9b8e09c
-01ee7de086c7ff79fb88fe04e7c434faba87ff2ec1e582ff15edafd002ecace457bfdc67
-ffce89fe04ed4b93f1ae25c9b902afcc67e479ecafd348bbcd0ced87f7b68615ea79c356
-fe23f265e4aff360fb9df73fd9ffc23397d9ff53d131ed48ff93cabda4fe51ec72d88ec6
-e917d988f694ff29f9bf0fd5acc514cbb3e404d8327afb40ff09ed33e07cd686df33ec94
-c3ef9ffe2af7b638f4afca4af236b6de0ac2fc30ff4bf2c396cb41fab609d843cd5cd886
-ffaf68f2cf52df9c0bf1a5cb66fe86f570fe13f1a525e5a234ed5bd886c7fc14dd93f26b
-fdd83cfaa9d052fe88f87af1a1c64dce33ffd489ff98f186d894cf51ff86d93ae05ad0b7
-6191f2c50f86b7fb93bad886ed57fc0bd0b726ff9ff452b4f26fe3b811b5d87ce9a0fb44
-f37fff4ca5ff87f7c19feabb90c5fe61f225f575ffc007fe3de087d97feacea123ed95d7
-a5fe7af6519fed88d372fb30ffa4d673eb93e09ded6cde1dd9c03cadf985f3afc748f9bb
-30e04dd993c579fecc6bfac681dd9aff2ea7e55aff43ebb681f29713ffb732de1bd836fb
-81fe92edaf53f237df0fe54aff0cdeb718b3ffc285fe17fabe4afeabf6cc1bf250fa14ad
-df7de56cf2c85ed723fe86c3fb46fe9ef263fb33cf6de489d993dfc242dd52e01bd268f1
-58a5d88ecf9add5aa5e07bd86fed5bff058ffed960ff16e656d888e5cb64dd14e5afd862
-ed1bfe52f67dff29faaaf574fea0e020d85cfe89e47bdda4c1ffa92afad83bb7f20fb2ff
-25f064d0f779b6d29fc625dd51e5cb85f3c86fffb6e560dc24e464dda4cab465feafc683
-ed7bfba0ed892aedafdd79e6cf79eb5b98e37bd79cc3ff37cd9cff44a3e483e664d908af
-cf84e044dac190ffb71dfe39f923f2a0bff46fff96fa26bff903fb4ffe16bdfa4cf3afff
-1dd0a5c1f14486b6d093bdf42affa520faa2fe8e58f3bb93cfaeddbe16b7d99352c1e50d
-ef8bfd7be737d81bff52fb0a8bedc05b9bea7dd89edf54cb85e0a03ec1fe0ae37aff92fb
-ab4ce85ea1e0934aa5ee79c9aefb07fe27f8d89f5af9d03fd962d85dcef99e4694f3229f
-df2ad4ff41b2fe65ee76b8ec1fc6b0fe04f9bf96fbbb5bed21c0ffad01ed4bde9ecbbd79
-e660fc1594d8af46d9a4e56deca7e06dcbed81d9a430c799f63cdc62bfdffc31fa64c8b5
-6dcfedb348b9f1cd0fff4efb3985fe9ff378d1ff36afd858d142c5a0fa71f0afd282f2ce
-60feb1f707ff46fb72f4a5f90cfeafed83f391ef60d80fc5ff22d8fe04f7bffe10baff48
-9dd886da8a2fefbf1cadffb9f232fdbf07e4b6ff68b9fe58f7b06bedca05d93caffb7ff7
-88ed7ad8a83def2bd2ff88faa55ce593c5f779ff67eea9c793ceb0fe2beec681ff39d8b4
-3eb7f99f41ff10cdfb68e17ab6fd96f80e9dd87fe011fbd93987ff80d928a7e57bd8a8f2
-c42de54ce008c69cfb7dff85d9ff06addb9627edbe43afda1ee088d0abc793e319d862ce
-5dd92cd84ecf31de81ec9d64f1b879b1cc6ad894f286d0f63cf24fffe677fc9beb8a0897
-d9a552ff69d831cbec81dbc40cfbbd7ce588fed00dd94dd827dd5effcb7dde9938e069cc
-f33afe61afd90fe049fa0bff3bec62de86fb0dc1f284fe88d924e5b98ae37cbef10affcb
-29d859c9f34dffaff25d99e9c303bff786fd3dbeed058bdeb568fcb1f97ff15cdd1becae
-65bef43ffec26afe9af57afba840e653f12dc0ff88fb95f27cffaff76dffa6f953fcafcb
-40fbd929ed3de850de1eb6c670cba5c0d93be04ef7b6fe78f5cb83f08efba706f94393e1
-9f30ff51f2be6af4b9ff6efbaff11b9efd6df8aebff60c9dddb7ec2ec0f587d790d99dd8
-87faa94bafe09d4ddd13ed96ff55d4f561ff39aedb51a3ed89ffa878eda03ecbaeff52fb
-9eec42b6d899ff6bcbfa47ffcc9438a1e223ce96f8c131eecd86d87ae9b40fd836e254c3
-ff7cfa98d98651e53bdd1fe0bf0595e4b81bb6d830dd83e39658ffbe9ac4fd6bf97affaa
-fb016ab2ff85d56fde47e320bae516d84fe0c1a2bfff75f4cd86dda52be09636a5e8934d
-c7b6e147d811ed4c86d8ff841da5fd9451ed2efe6cf15de401d8c4f363ffbd79faaf61c6
-ed861dbfd194ea6dc6fa79de25e2c305bfe886e019d179d86fffca5de424ddaf83e08c12
-f3b9fe6db5ff46b88dfcb64bff16fa50caf781ffbf95f21bb5cb10febdf7a5d07afe9e5a
-fbcd44fb9cf27efe6df412f9aad079f30ba6d993ed13e25aedfa22c4f212fe95cf86ff6d
-a9fe94f77dff63ed19d948abeb16ccff57fbb6e012d0f682ff68f3afff92c3fdaf49c3fb
-d36dd8ffa5c682e525ffbf86fe3593d821e7cd33e0c106abfaaffe4bf823feaf13d05ef9
-6bfe93f729fe69f68af22edeaf0bfb7af454fe1eb6efd573dc51d2ed69c4e610d86fe594
-d08ce0a546e8a004df61d4ee6be0ad44c601ffbd4ac3eda878dc85d858e006c9a4d387ed
-19fe5ac1ff32cf58d689d89479da9e60eaae2bfabe3fc4f258d03ad927d893fa7ec1fe88
-f9799fda86f068fea73ed907dda530cc57e229dc7beb9345f708ba60f9da52d0b242eaa0
-bffd78f85fadff7bfc93db36e180dd9cd885f293ffabbfd944dc6fd497d941e0a4fe65ed
-93d2aac798d0a5fb3fa3ff25f7bf03acf579ff9bf224dc55f629ffbe68d8f884fea439ff
-80ed93e5b46ded93f831c8ff14f339ff96bcf74eff39b6e086afdd80e0a1fb76fe30e5ff
-46fbcb7dddb868ef9ee01ddc86edaff25de53bb5e023d85bc6ed01cf31d888cbfb94ed79
-d0fe72f4a3fa93fe13e0afc99ae6c21c89b7f571fbc55bed07b5cb98ed56d929f369ff5c
-c802ef54e435dc4eed1c87f4aefd55f17dffc311b9cd35f84bff14f160d96ae5c985d89e
-63fed834dfaf43c1fe7ceb95d97dcbfb34b6c827ebc15ad621fe5bf4d322da6de39061e0
-c2a1d061e788d8bf93fb47bdf022fa4cf125eac593bfa5e0b818f23effd004eb64fb76ff
-c102a5fe86c9ff6df6a2ff38b1fa80ff5af326b760c0fb2097dfb602c851b7ef80ff5df3
-40ffabfbcb0fdda51fff92d0f545fb16d588eca5b9cd9ff4b686fc79caa5fb95c1e59e17
-bbd808ccb066ed79ffa5c1e26ddf8fff27f8bb0aed5be5afc687fa61d0fa67b5cc01ff5a
-f2189eed6effaf78fb9ef6b786d9379ffbafff0dd1faaf51f91ffeab35fb1def6dcbff6b
-d89dca8cd9ac48f70af06186feabe079b0fd8dd4a5c94294fccf2dde9909e8bb66d895e3
-4bddafe279ebc6ff41a7e7c746ff85f1a6d961d027db86d87ae03195fe83f2ce7ae0589e
-e27cdc6affc34ce519eb42ffc12dbcff0ace3bff5bfac679ff93fb26f897dd4eea1f95fb
-c54fc0e99479fe89fa39ff17da7bec0ba2ef2bfb88c6a4d2afe087d94ce4ba0ad943c9fa
-69ffcb8642bfe9a32fed86d8b679edbf73e5add90298e55bff07f563ffbe9ac633baec93
-57c1f438c252ff12f5afe577baf86cf2aad141ee0ef876fec1199dfc930a9fd8f3845ced
-94d643fb23fe75f4aefb16f061d8ed4ec73baff719fec226ffb9f20c97fb86fe93d868e0
-a4e668f583dd92d82ce0b13ce85fb6d539bffb88d9bf2fafed9d44c4dd52d9a5ce77ee4f
-ff93c2de74e1a7ed32fe3ff74efe10f667cefe84e59715ecb608d8f0934cfec494ff49f5
-cd08ffd69743feaff639d286da7cd81ae453fcd0ff1fcdfb0d96d8f8a1bfe061d81eef4e
-9ed852fe89faacc7a4d02693f5d237dcb5f88717d5feac10e5be9aea86e4a13ab9cf9eff
-b677afff9de85ad586edb1894aa2dfbe32da5dcf79f01afb46d9aeec54f17efe6af6c09e
-c3f283ffa506f255fe87f602feaff411ffbf26f399c0e0aa2ffb41ffbf5cd886dcb67bd8
-93d096ed37a5f257ffaacb81f3a562fbd760f211adde699fe29256f9c765d879edb8fa44
-fea6ee83d88e5d9fe4ac66dbff8426ed4c98ff91fa87caff15e2c027cc7afe53efb0e04c
-bdff5ee044cbfb9935cef763ff36afd909cbff59e544c604fad226de86ff6ddd37d0f6b6
-fe6ff9c878f710feafd193f3b8249dff06c9acdb0eed4cfb17d961e5cc7bdc9de079d886
-d872e0ac7ae74cfb1c88f2cc82d99911fd96f009c8ff24f25bff80bde024d879dd51fe3a
-e4c01cafe180befa27c3fe3eb8ed26a5f22efea51496e0c235bfff24f5edc84cf2d4a544
-c4d988fbcc2bd851dd37b6f360afff5be513dd6aff82fa70a3f07dffbb6dd9ed79b0e08e
-c3fe54f87abff17bfe89eec062ed52d80bf2a2fe7f08d83ee81fafed88dda53dff61c97a
-fbd870b5e54297fe87d87ae59cfe3cb1ff1cd334f04cf92affc058f2c494d0affe55b7f7
-5cedafd644c0fb9351e59fd82eccf96afeafef1ae9afda73ff9bf235cae66fb4ea7fd1fe
-64cbff86d852ddb6f36193fb9a56dd7c0594ff8816fbafe56dec08a6e580feaced7ace96
-ed85d993fb86ca34d907e6cd11d8ac2af257b5ff48cb19e871d794ec1fa5d92ed84b9df8
-82fbb3e5be48b5f1aafb94caa2ff37d851ebc298ed0be4bf47d0f879fbd062e234ffb928
-c4ed5dc1ee80ffa9c79aebb033fbb506fe61e57add04d4b52cf481ffa564dfb979fa75f4
-af03dd9c40c1fb935dc4f62dd879fea003ffd144f81493dca10fe576ee85ff2acef208e6
-c4a5faafda3ce0c280f120ff5cbefe48f2c20d9aff2ffb04d73aed4ab8f39fbff2af55fe
-74ed9ac0fe05c586fbbf9bf52cff5bd0fc85f493ffbb15dda52291fe85da2ae04ced65d9
-7ce693ff70f925b5fe5b93ff9f2dedbc1ef2bfa5cd88f96ca2f7934be2bf6bfb16d162e5
-c56eed86d822edacfb79ffca63d91acff520fecb14dec263ff7ac6f78761d8fe05a5ec8d
-db5bcff39362efa9bfe535fbc1affc1acb5ce67ab2d769ff3ecefe75f79dfe4dbf91cea5
-e079daaf69fad36dddafe575f6c2a8e821fe5086fb93c4e41efa62d893f1b631ed4bafdc
-87dfaf47ca0ee079edcc6cffb8d83eeb99ffbc90c1ff03fa4ecb08bbd891dd81ceed1adf
-c45a93ff9e4efa01e746d7e00fd0faa50add5aed87fe9f1cd9aaf952ffc1479feb50a5fa
-8dee7ab4ec5aadff9941e7b8ed32d9baff3397f1bf50ff17e5ae3ac1e09e58ff79f35ee0
-3f8fb6f99ebffe50f8bd90f06331e9c125d886f5d944fb2ef7bf1aebb740f0c25793ff9f
-1cff83d297e0c317ed40afd086e72ee05efdd86dffcf61fb15f39affbe60f93aafe630f3
-78fac111cd55f21fa8e1bf9ff3a8fe38f54cfb32b6f468fdaedb79ccec85d87bffb87efe
-9a37d8f588ff79ca37f2bcff3b9ce0936df9c517c0db25e056ff36c389e16dd1f2881ba2
-fb9312cdaee049dd86c2ee76f987ff1efbce2ad994d47dfec6e94adf0ad9af3ae413adde
-d3b368ed97ff01afed7bd89d64ffc779fea31decc545bfe06dd960ef3bffa1bdf968ffbe
-52ff9ec90e93e4a103edaac767e273d9a5c798fe52cf96df59acf288fc79d5f7862fdd5b
-e07ae99fd3aee56fccb003ed3ae516abfe30f1af22ed51c0ff6ab6cc40bae693d54d91f1
-d90bf5d336df94ff73fd9abed19fd9fb0bed2cbdfeb2e54dd3f97cf466ffa4fa3fb0d854
-df97d871b9fa87f106ecbe2280ff93f179cdfd6ed8ff7afb0bfeba49c6e579bfff12eec3
-3a96e05dbbf980fea6f286f706fb7ed988e26bd3b30aeda4cf76f8b1fe3bc8fa9340ffb7
-28fa39fe0ae07dd987fe01c9ff63d833dea541c2fe93fb1ab7c65eff1299fa3cfec06bff
-85f6c960ddc16dfbc6a5e586f124fba5f709ff78face67b6cb5cb0fe87f35ae5af4bf702
-fe4684cea5f98149d96dffa757e028b7c808d496fc0cfeb131f5af0ae04daeff528cf6d7
-af37c2ff1e9ded9329bf52abd880f2a03ffc51a5dd86f6acfd05f4d668d90fd832ce5cdf
-a5cb1ef44dfe2af6c47efb1ff24cea82d9b95be5d379e8cb7eddb6f05ffb19f161eca52c
-e593ee7cffaff06cd984d0ff2bf278c8eb81d887dea0d0be4694ffa653e2964af217d95e
-e07dd865dcb3e013befb29ff85e89e28b8d80dcbec7ddc93eebeff4ed8bffb93f10dc9ed
-83d0fb7af067e778db7df1cb5fd9ff95c4dc6bcde49e5afad9a557eabe42f8a7eec5f35f
-e214fec193cae935d75ae074cbaf2cff9bf58aff93fcaf43ffb77ad888e092db48afe18a
-dca715f188ff24aff906a3ed9349a1d88bcb9fd681fabf6bfe16ce5ae40dd429ee52a0d9
-8be0af44ff20f34bf82bfbafe011d0f80bfebf90ffabc99efe2ff39c3d91eea053e597d8
-14faafe282efa233ffb749c72690e49513c73eb6e08f38ffaf1de09dff2ec99fe54fa9fb
-88c144f820fba52ffec11188f2d379fbcb68e07be528ffa2d061e02af287fa6eff1eb6ed
-7ae554cc39e051dc24ebc167ddfb03f1aa3fffbcd856ff34c1fbad42d89eed6dc2fe31f6
-baff22f74cff26dc50e0aec799f9bd95fb82ff93c6f746fd06ee88d0b973ec96d864ed86
-f3799ed872e036cf51fb07c1e479cbfebf61ffd8af3efeb75bed40ff60fbc16be79ff3af
-f86efeaff59fff60fbc1d961f7bf3acfaded24c0ff18d52deab17be584edb96aedacff2b
-98e002b5ff16b86cafcb4cfab27efbaa0cc1df93cefa3dfec493f2b47cfa9fd386f2ad34
-b1cb64fbd5840dfa87c89be06ed0f57afb52afdf63d779e167eda7da77f296ff0df552d9
-36ed4bc1dc61e410b5d86acba5fe5cfba5c707feb61fd85ac7ff3ff4acfa7cea87ddaf47
-f9b620f2d02f86f6d071f1c780d893d020e4b216fe5add07d839e054dd2dd8a50193eda0
-59f279fb6cf85fafedb7fe6dffce4ed801ffcb43dc86c7fe4ff47cd89efec1fb86f01feb
-bf42c5ff9a27ef5090dd9f13fb61e6be06ed5aff12d0fe79e5bf229de9c0a0ee1bf851ff
-2cb6cd10c0ff1ff3b4ff0fd0b33dbee9ae5ec5a4d889ffb67bffa431f9a5f477ff9af92e
-bfe40fdb56e279cbff88f924b6ed9213d8be29f657ff94d86de75aa5ebc105a9dd259ffe
-08fa79d986f7cd7ad884ff98ed7bd08def84f5b2fe3dccff86d813ddc593df863d97d816
-bcf58fdf7baff876ee5eaad98ee734f246e005d95dd76ffe9fdc79e5b881ffbc63f7c0ae
-d923ffca92d87be069bbee4affaff45efe3dccacd594c0ed68fea5e081d89646a5dd86fd
-94fe07cdf837fb44ea1dcfe504e0afca52d3ba38e251dc63a1f77effaef44a9fdd77e459
-c3dcfd67ff99b8d486ed03fe97c2fe77fb8aff55f8cd76dea5f24dff3aa8f130ebc047af
-ff1dfa6bdd50e280d8b60ee495fea745ff03fac8f65af29a32fe50ed1cd8b60df9d01ffe
-5bbacf9467f588ff95d90af24ef837fed602e9d029e34b94f1a54efe28f5a5fa2e99d86d
-d936d086e56aff49f207a4e54df061fa39f2b8fb76ed2ed86ddf86b7e593cbaffa5f9ef6
-79fb84ff1fed8dc5f286fec340bad63395edc039fcaff2862cb5cb45ee1dfb34ade0b044
-dc10d745e496ecb93ceec02ec5e694c1e086fb68a5fbd264e5acce17ffc022fa8dfd53d9
-34f2c09bed6489b0dd79e0c0a5d099fb59ffdd9c67edc2a4fa77ffddadce27ed7de4c093
-cdb46daef55a9dfe74ffcf6dddb784e9c23ed9c5fe0ff67efe95f101d986d879fec77dd8
-1ccb9ad584d919cd5bfab9f551ff1dd469fe6393f2c74cd927e065ddaefb02a7d81ee08b
-f065fbc916ffa5d00496ffd86ce9a4c1e06fc7f179cbff6af882d9b61cc76dffac62ff5f
-b805f44dd911c5e12993f69b52fdb76994edc55dbfec7dce85e252afd9fe0fc4ff3afa0d
-f162c8b98840c0fb934be019d82e9742fbbe51fdb062ff18f2d942c9afed84daa60cf435
-fbcd609eff934f86edaee017dd58ffa5fa28ddaf36f994fc79ff02f45aff93e09f16a5d8
-7eecafed0bddc02db3fd93d09bf2c04380beff6cf499ff26eab680e07bdb6aecc14baffa
-07fe5293ff9f40fa18a2ed93e55df387fbb210e093d6a5fdd277ffbf9efe7af3b905dcc1
-34edc4fb459ef32ba5f760ff1dfbd02ebdeb4faad87be586ff37f4d8a6e52cccff81f6b6
-edfec269e7a1d023ecade060beff80fb1bd839fac782e19a16f2be06e2b5dd9e46befa93
-d2b861c4ec7feecb6ce058ecb9de88c975eb3dfeb4f23bfbc32d96f755ffa5db15ed56ff
-1188fecbeb4cddbf59cbaad00afe52f626fa85fea5ef83d98af2cf0cf3d28dddbf39d022
-ffafe04ad8f452fb1def4b98e89035ed50dc42cdfb80ffaf870fd4afdb71ffd006d893dd
-a574fe82b5f467fcc646dbb4e28108ff61f3b30ed8a54a8612e2b20cff79f5c5478dfb97
-10e46bdd8eed53affe5cbaff82d0fb79f825fece87c542f223e69f47ff0ca9fe24d3a33a
-abfe26f9a5d07ad986e06d9dffce75d888ed6afe86d87cc6f09f2493fa9f16f879fb83e6
-93d9b0cd5ee03bd81cd05ae528a5e4bb61fe59f786fca8c83797fe7bb6cb9ee37eddc224
-fac6a5d786fea061e559f1caf765fe16e5b583fb6ef142c7ed5ae027d2bf21afed93259f
-fcafcb93d378ed5bfec7f1d87bf9c787d9589cfed832ddc1a5f746ffc4a1df20d2ed40db
-51afed56c963ec1dffb479fe6ef7bf93c2f288d97ef6b6ed52d866dd0eef4dff03bde741
-aae219fb3ecbafe638faa946e0b5da36d1ed86e02bdb4df21b87fe9dbff579ff9ef57cca
-ff4793ec2ac8a5e961e17cf2cf01ed2dfe67beff39fbaf5ff207ffb61eebc624d89341a4
-e08af2bf3bea4ccbaffe9f0af795ff86f99fff70f6b8d950ea3cfa23febde08732a550ed
-38a7f22cfbb804bcf75afe2bccb68605fe76f8a76df692fe28d59fffb896f369e3c595d9
-18e054dc3ce550ff0bdc83fb9cf291fe87d891ccf360b8fe86f279b6e4089af279cdff63
-f872fe68b7ff51c59fffa9c0ee44d912afe549db35fcb668d8fb7ab5ff08d8b413fe51a5
-d988df8cf20ca5d87be1bf93e075cbf569abff7ef8b7ff2cd85285fac3a5ee1a87e1be79
-d960e406de51d812fe6af282ddace187419ff7b7ffd386fece6cdd7fd1ed69a3e67eed61
-d8f3bf95ec3ac1e10bcb6ae75fd908e544abd905fb3bafffa5fb79fe86cb9fe860d01ae0
-35c659e52dfc4f96facf12d84bc9ff84fbd24bda1eb7ed06c8afe810ceaded61cb2ee068
-b6ff93f986cb93ebbf12f0af1bc2df6ced50ffc29cbffa69ff3dcf5bc2ed64f617ff3dad
-fa5196d5f24be00add61edacffd99724ff78d5f930ffd038f2afcc7bf186e49ac727ffbe
-5e97f2b7d903db7024e5b617ff9ef75093ffce1fd893ff9e30de5ecb98ff7ab6fca4c0ff
-78f78fc6fd79f166c1e98833d0b912bef327affa93ff7ab7ff9ebcf6a9c0dc28a4ee88e5
-9f20de61baff80fc86d4a0e54197fe7af505fe91f388fbc634d851df02ff4da3d981ff9a
-f440fb95cd78f435ef1fe5bf96f8acfe29d288dd6ac5ed27d9ff1089d0a3fe7bd89d02c5
-35bfe093d95db6ca56acfb9543febe2efbb83de7a5cd06edc41dff61fb93eeffc364e05a
-cb09e5bd3ab2f45be00cc6fb7cff14db54edd747f21b93e0c150ed29afcd9cf95cbeed80
-f2a1e26afec732d84cc8f409d94ac91ced62febf43ff67f8adc2f52aa4e05aea32ff79fb
-c25ee093d96ddf47d80aa2f295fd7bed6dc6f360e53bdd79d388d91ee684dd92d8a848ed
-18d86bdb53febf9cfb6eceb65feac1fb34afee3bfeb3f686fc4cf40cfe88f39cdf11c9ed
-6bdb9fcb79fe87f46cfe55fab17ee8c53baf518ffa95f289ff7ad8fb78c0fe85f2ac4ae3
-aff1a5fb2686e494c4fa35a5fe76bbff43e222d8ff09d852ff46d6b779ed86e4af5de67b
-f293ff87e583f195c4d936ed4e93ddbf14f7afc693d81af1ba30fb4bc8a6fa7cffce55dc
-28d09cfbac30fe96c7a7fe04f75bffa1cd5dff75fbc49fff80f594efa745eb0baffe84f7
-a64386e6c877d989d25deaaed081e76cdd1fec84ffb788f819ff4ce00cd842db8bd47ae4
-c1459efbd6edba1dde3ed860ec9e12f19b33da52d2f89336d065c6afffb132ed5eb7dd12
-d0eb86d87cfeae72b2fa90c796ef06ff99f715fea0c0fb25e053d20cd851e104b0fe7bd0
-ff61facf9865ef51f6b06fe4a5d087ff1ec2ed3cabf783ff5ed91fe0b4cd0dfa5ac1ed81
-e0aa2bfab909ed32e261bccb3be003cff790c2e248d91ce0b5fe970eff50f220dc9b16ff
-bb3bce7afbc14ad633e459c6a5ee8bf87fffadf033da17feacf10d9440ffc179fea5f62f
-bfdd66e6ca88ff991cc1fe8bf909e958d1fe81cdfb86e59e4af70eefc32ef6ce3fe628fb
-61b4d93fb0d862ee39aad87ff8b5fe6ff7b6fb78c1e80ab5ed4088d9ff0bdf7accfa4dff
-13efb6e9965bbfe219cba5f091f685ff79ee86e634b2d045f1bf51ebb087d993f20efbb3
-86ff5dba37ff87f29fff58ef2bd9f486e57dff70fbc75aeda0ffb651a5f693fe7db5e96a
-d0ba45d8bf1f9dff86ec67d876e0c0af69e4a5cc21c7acfc47ffaa17ed42e0afd959db85
-d88df49d03e0a023f056ffc891dcaa5aedb761fe94d8a5c0ea6dcbfe7bde8accff5bdca5
-3d93d9a73293de27a3fb82caacfe2cb7c89dff23bedc86d9a54380feaff479fe62e807c8
-52d838d94adea0ff69fbaf79fed669febe4fff7dd856edc779d8fba5d826ca67bed57acc
-67bcd630c7b0e043a9f77cd906edc6e515d964cbfa01fe2cf39cfb6ccaea4bcfaff533fe
-86f6d8f90bf25eff6dee88d184f3bfa2fb6dff7af529ff4cde3bc7f74fffbf79d9af1dfb
-67ff9ed283dfac18f34dff20faaa2df147fa0198f115ffc5f21effc7f462ffd15de019ed
-64e558fb3baae1932bf765fec8e533d80fd09edd88fba0fe7df2a5fcbb10d8bf21ecc50e
-addc1ae5c926e98efea32de7981bed60fd94f305fa9cfeaf45fb9af506a3f0cf23e46afa
-953986ffa2ee2898dd86d874e015b2fa63bdfb0898d95bce1a
- >
- >>
-
- /Magenta <<
- /HalftoneType 3
- /Width 167
- /Height 167
- /Thresholds <
-d8af40ed51ff24d350d812fe97dd67e0c16ce5c552fbd331feaf05ed5dd033f0a5ff79fa
-6ac0e62fd865df98c3d904e093d0a8bff303e49dc8a5fb5b95ffa86edd7ee2af1eff87e8
-b666df86d934cbfe7ffba126e8c19fff4ee53add9e1eed52afdd6ad879dfaf71fd99bafe
-9fdd7dd891d82fee9dfd1f96f012a2e028ed4393ebb6da4ae099ec6edd7ae65cfd19cbf2
-935ac3fe86fbcf27ddabfb70baff3bf81ccf63fb88dd7bf969ffba8fc3e586ed7be2c242
-adf505fbaf28f3ab0bb3e975da94c89fffba61e046da22b2d977ef9ffe0ff156a2f66df9
-31ff4587fec26cfe79daaed821e0c014f54afbc395f30dfec421f577fcaa4ad603edbb5f
-f819d8b893fe79cff97efeca39fca5f339fab816f247cb12aff337fe74f5af44c9b1ff7d
-d7fb63ce9fc1ff840294f2ab59bcfb41f9abc99eeeb64dd7faa04be11ab3f8875dc5ed14
-ccaac69fffa9bfea38b60be4c11dfa64b6fe38f9b269fbce88d986cbff5fd8fe68c1f73c
-ff4ce41fec86b8fb9ec4ff3bfcbf5aafe586febe42cc98dd72e5d2af4bf21cd23bfe6bf7
-88fe9fb7d387ed41cfaf75e09dbbd00fed8ae5b16bffd081dd70fb07c2ec2aade41696ed
-c40fbed985e5d080e08dfbd45ee0a8de17d0fa79e52eddaf48beff0cd952e3c7fd2acfff
-0cd29fc604ff44d87fff8815e0adc6f462d8bdfe3f9cfb88f35aee47e4289dfec7f2a579
-de95e017cea7c70ce7be27ff5df04ca2e280baed259de088f2accd93fe18cb60f285e09b
-1cf9c64ad823e7abff17c5fbb812ed97cba6ea93bfed51d028ee57ff08a9e06bd8f83cff
-4cfa95c0ff2ff8c33eacfd59f2a3d9608fffc75bd8f54d8cff9c49fe23a1ff60ef3487ff
-c454bffe9559d986f868fe93db70f47afbaf47aaeb7fbff366fe82da93f5bf27ddc2f666
-ff3391e5950ed9afe060d823dd93d879f4cd4c935eccfe3ef25aff6cf287ffa151ed95d7
-1ffad014f24997d8fec216d466fb57abf27dea12d54eebadd083ff94f279dd7ef2a54c93
-ff7ef82fff57fa06afd97be378da81c8f784ff25b7cd93ed79e457a4d97ade98ec0de5c0
-38febcf04398fb76a5e0c062e9c676c1ec3ccda5bfea9a0bed903cc3ff01edacc917ed39
-e4a5cb29f18dff61dd3eb0e421ed5ae666a4fb9540b5ed9ebff948ffcc85ff2ff784ff70
-fa06feb67cfad8ff21a5d889cb9edd2cd979d0fd7dd96febb261fea0c6ff864d80fba5db
-0dc1e03eddaefe6ff78aff3fed0ccf65fe38d056c1eed83cd962e0bf91d59fe536ffa6fb
-3bf3b72cdd5aed63e509afdb2afecc62f01ffe87d7b27ced951ad6afe004ccff20f9b22b
-f694fb6ab3fe0afa50b8f766fbb6e872d89e40f2b99dfbb821ea99d3bf14e588ed7bcbb8
-87ff2bc4e10ed5fe58cd06d971dfa559eb6ccba4ed45d0b987c23ded13a06dc7f660ff09
-f77ffb58f523b0e40afebf7ee0c13fe501f5bff1af44ff96f479ffb82b95deb608b9d97b
-de51e4c0a0fb88ff21b6f49cfbb51bf643ff86f1c10dcaa5d868fdafc79efba7ffc35bf3
-b511fa93d2b854fb2cff50c3f77aff80f3a860d979edd35ae103c4f286d879e5d07eddc6
-1fa4f35bfecf82ff66cd86f27aff5df886c3fb1aff4dfad96fb2fb51f3b67ce093f37ffe
-15c0fa24b6f30bc6a7e631d9f193d0b0e1eeac2fec7ae550d1b89cc5ec62c0f29f42fb2a
-93fc79afd99120e5c484d838b0d068facf47fe97f262fbb7ffaf29ed05d9b1e563cd09c7
-5bdd73e0c35eb891f487ff1ded974bfe14d44086ed9bd183eabf45ff84f1bf93d0a5e065
-dd2ed247c1ee91fe0ca4ffbe9bdf4ddb2efeaf23ff4193fed333e0be21e04ad906ff54da
-3be0afd836aed98bd89c11c1ed73abcd61ed2dff4de6c495ed79d0fe86db7afc81ffaf52
-fb28ff4d88fcbf9ed8bd93ed04fe47adff934edcc5aaf2ca51bfed44ceff6dd926f8c2fd
-04efbe86e378d932d8a01886f393c4f57b4a9df979ff81f393feab14fbd92bd250dbb56f
-d7f279e28ae9be1bf74cff389fe0ac18d94ae602f23cfebe93f99efe25d055bfdc8631f8
-6eff91edc161f1a2c2e46187ffb079faaeef78e7bfa3c4fb870efe9ff64ff238f5a8fe39
-d8ff20fa86db8bd8a531ff43d9ae38e553ed1ccb5df397c0e081dbd147dd12fb3aff69bc
-d88de018cdf879ff0c87e9a5ff7bfba55cec88eda1528deb9e3fff20f5a5fd5dedb3d960
-e848abfeb9ed31dca5e528d84acaea966ffe99fa7ec6fb02b6cb34fa61feca86df79c2fe
-6ff2c48ff9a5fe81d9a914ed60dd6cb4eb88e542fbc3a5d01ad84796e0b64bfa10f5bbd9
-0eed9531c5fc994cfa1b93edbe75e56bc998e177de64cbb779e0afc90ffb64f2be70b4f7
-6ad89fffbd9be4b611e942a5f70484ff66f178b2cea3f732fb60f2b437e59ac1fa35dd12
-d82ee0be08fb4cbfffd464e0c46dbacb52bfce89ff3afbc686df1cd87dfec145b0ff8cf0
-a359f5ce41e017f045a2e785ff9bb9d843abfb25b5e704d951fe2fc852b6d85df4c1a0ff
-0ac0f73fff96f179e55aee86f9afff14fb86d89fcc4c96fb6bd9fe9312dfc3abf0d944ff
-d023b6fe06afff28affb01f69446fea5c1df1cfbc8e504b8fb1fc94afb63ffd170fecb7a
-d9f3aae69bc0f41fe65add97bed96dfeb827df6ed786ee9df779fea6cc98e012a5fb1df2
-a9e583ff07f92ac2e09d0cff96f160e21087fbcd78dd01ffbe25b9ee7cd892ceff61d852
-f315ef93e070cef97fd38aed9dbee497ef1fff79e74ecbabe280d9ac12ceb624ffb0cb36
-e667caa6ed2dff7be9c13fd0b55abef661ff3784b7cb5d9efad861ecce7bbfef7ad95aed
-d06bf23d93eb994887fec77dea88f293d8379ef0ab21fe51bf17ca33fe5bd87efec110ff
-42aed681ef93ff5af6c364bfda48e52bff61f5c976dc58fe16f069e49eed855af7afd835
-a7faafc5eb9b21f75ad585d8fe68afff55f730bced1ee5aecd66ff06f2af30ed60fbaf40
-ff11fa85e093d030fb73f358fe2bcafb6df7d89406fda3c793ec52cfb95ff104f8a0ff1c
-f4d67fd989d1fe03f9acf15394fd8f4bfbd552e59effb824e481d9bc61ffb6ee9a51f53f
-e009da78f9c247bfdd93e0a2ed88da85e093ed2ba5e480c9f502ff50ce1ee0ac3aff1aaf
-f280d891d8af42ff86d094d88ed8b646affed03fed6afcd1883bff4fdebe86ed6dfa35af
-e507c0e19bdd7aa5fe935dfbbb9cd7bf64ff87d822c9e57ada68cc3bfb6cd987df1ecd99
-ed64bee13987f4d179f25aff08f784fea5c0da5ede86ec9146e526ee57a9db7ee02ac2e6
-10c1f29b1dfeb217c586faaeff0cfcd02dd816e0afd49fc1ff85ec1ade89ff79f92dfb42
-ff52f20cff61ccf76bfbaf5ae9bc90fab674fd96c7eb69c2fe51fa1ee594c1ed3af74ffb
-31ff94dd17b7d993c9b623e5c09fed66fed039e0abed79c6fa8849fe0bfbc43ac0dd29e6
-4ffe3bd9aae054ff88b7f648bafe9ec2f10cffa5b8fa79b7ff47aafec04b9fe025dcafe0
-6ad819e54393fcb33ac6b7faa6ff96c0f331ff61b4ff79b2da3adfba6cf288ed3ad84d9f
-e053a5f28af983ff25fa63b1cc51fe9bf20cd85acd6de099d2acc69ed8b646dd1bed9dd0
-63dd3dedcb05e079b7fa0dacdd87ef77fc02afd97de0a7cb68f379fa61ff02f859ff62f3
-0ad2b81aaeff9316c4ff53a2f2cc73d958f19ff96fff84db7ab6fa0fa0f36dec08cfa4e8
-17ed4fade0c451ed44dd02d298db15edafff66fac23e94fb9df27dffcd21f0a5ff09d052
-ca13e06dd888c8ed4bd0f867ff79f9d746e0a5ff93f4cc7af7c662dc35d05fdd93ed12fb
-a5c761afe686eeb9ffaf1cf84afb30f386ff8ed884fe29f79ffe7aaff45dfe40d39aed37
-ca4ebacfa5f227ffc106ecb922e6be91c2ea7edd93d983fe73f893f14bc1fb9a2bddbf1f
-b3eb93d279e010d0aced09f4ca6aedc635dc80fa8bff68b1d786f73793d880ffa0f86af2
-84fb73de2ed9b37cfecc20d54bddbe6ae079d866e085fe7bf79cfe4cf70793fb9a1eeda5
-cb0a95fec55eca10be2fed9702fbaffe7bf1b64bbbd97ee02effcf36fba8017ad9c193e3
-7cdebf05c4ed39da74e3c013c4e52cd6bba3f06dff7ab6ff9ef82dfe5dd863a2f981fe9f
-cf4af233add829f045cda5dd3fe45eb5e073d0f678fd87ff3df825ff90bdf64593d8af40
-ffb785fea5d85add32bef329ff98bffe1ce4c127c5e031d85ed088f2c017e45abcf479fe
-af30f795fe49f59fed2fe9b83db5d994cde53eddafc633e4aeec8620b6f78dfed972ffad
-d844a4e606fba5ff3cf75df1be7add6ac9ecf559fe36afff5e95fea153faa6ff4baefb93
-54ff68f91dc2dd2fcef315d86cde86e593edbf43db58df79fec597fb6dffc19ffb1dbeff
-9ec3fe0fee5ab6ea43d69bde69d8af38ec6bc9fe60f88ad422e54df019fe75c8fb7cdcaf
-5be578f5af7afc86b5fe9ef40dfe519eff8bf1a53ce1c483e5b60fc7afc51cb2d774dda5
-f01fff63bcf56bff83fa87ff42bff2d833de60afd03ae583f0c86ed886df70ca97d4b01e
-f796fe4da329db8bd0f114cbec76dfafc70ccf94d961f2cc9bd980ec57affb9660e252f2
-99c93bfa19ff93c4f72aebab0fd946e5b307e86df281cb2af26bd693ff09caa5f216aff0
-86fbc19cff29a4d91de59dfb7ad895cc92e0a603e847cdf209d9c53ae653ed12ca4eaeea
-92c9e945d80ed8ff9102fb5bffa3f337fb8eff4df90bfc79d884ed2aa6d908e055d86acb
-fd9262ff9ff321fbbf5aff1d94ff5bf629b9ee07fe87e95bd810e5c5ff85f965a5db983a
-f820fe82f46df123e6b439f50ffec593e504edafc0feaa09ffb57ed975e10cb0d45bf686
-ffa5cb65f693d932e068d986e239db7ae586fb6cbefe46d003e14eceaeed7bffc35dbff2
-31ff5bf73ff1c087fe6ba3ff6699ff86d9bbfa79ffd262dd33b9fb87f6b74ebfef93d726
-dc79d858e2bedc83cf8fe551fb9ec3fe7fce9cf125f6a313e8afc74fd6b56dec95cdabe1
-35edc39bfe54e0b445b9ff92f4ac724cd809c6fb54ffc1a7d25ce135dda5ffbe7ce08ad8
-a645ff75d785ff2789d1e86de0c148f49ffb6bff98ccb753ee20feb74dbbffb2fa03feaf
-f59efc51d81dc8e662db7eff95f36dfa11cc49a5ea01b3df83d696d879ffb523e0c13fed
-bf0eeea53d93dbaf38f97effa566e05c94fbd060df7aed61feafee8627a5f160ff2cccba
-18e045ed5ffe7ad374ddba5afb03f186ffc20ef745fb65cfb113e589d779faa4dd27d968
-cbefde8de9af26ed7ae16dedba9afbb74eca06fa51ff32f2bf9ff63ad95bccfa41bbf623
-feabcd30bded41e31bfbd181da71e3a0ed8654a6de9552c622afed8dffae34faa5ea57d8
-21e0bf93fdb0f686ff75c2f513fc2de54bd0f480faaf79fbd170feb6f51bed97c1e505f2
-ce1effc3299ff932ffc09cce0696fab6ff10e4c393f15aff86fab6da38e6afff50f9cc7a
-d967d838e0a2bde58cbafe7bf9ac2fffbf16f260fa81fd1ca53bf458ff86d7b60bf640ff
-16cd84fe92ed9fdc93ce86e01cc2ed93e57aacee66a2d888eb86ff7ccab27bf29331fe97
-f23bd812fcc7f43fd0ff79f9cc32d94df397ce10b0f57afcb538ec5bde2bd852e33ca5ed
-adc986fa9f52d915e3b92c9ed922e15ccb66fe26acd97bbeed79dcaded86d8a517f851ff
-d955e07dd89f47faaede71d8a51095f2c20598ec2da5ff90f59bfa85fe60d209ed2bdd51
-d0f269e59fcf93b8eb51c0fec79dd1b1e447fccb92db82f260e928d85ad324fc5cf76dff
-a84afb13fec70ed8ff5bf916dd51e505fed750baedc009c4ff7be5a42c90e0b115ebb864
-ff98e469d980fec63cddc086ff98d287f099f97dfed88b50ffb609edc394ff60f6c6ff62
-f894beffa3d586f34dfe32aff848fe10e04ff2c593ec75b1cb3bf762febe8503c1f327ed
-b8ff4c88fbd97cc0ed19e441cb1cd84af293fea1c886ff82b6ca4afe40ed09d099e578f7
-03fe3294f2a46afe51d0be9ec2f57bff86ebafdf06d983e8b886dd53a4f89538c679cca5
-f288d9659cfad848a7fa79afce47f8b6ff6cef88d842e5a902c1fe25f15093ffa319ed51
-d909ff4bc818cfb627bfe07aead162fe34a7dd934c8aecae4add01ea4bfbc693b8e66cd1
-93cbb67ffe6de539bfd91df38dc1e52eedc9fe53a2fe6ad580e1acc83caffc67d09ffe79
-ed7dddaf35d862ebb53ced04fb88d8a5c2fb62ff27b54fe081edc41bc0e728affb06ff3e
-a5e012f2c143a5fb60d221f3ca6aefd076e3b1ed9fff2bbefe3ceec31486ffd360e027ed
-be86d80bcc49fbadf27cd2f979b1e086caed61cffa79e37bedc0a5fb94ee5fdafe0ef646
-a8e081beef04d7f2c017c4fd85f791ddaf15ee5ac4ff07f35efbc136d0a8ff60fb86bcff
-15aeda943f89eacb86db33fb21f759ffd31fe07ed95cdfafff13f7c295ff18f8d46bdeaf
-f121ff569de07df2d8ffa0cd5efa93ff5fd5ed79e293d9fa69d0ad67ffcb7eef97fe9f34
-ffb026fe4bfa01da57e06ad0af76ffaded931feda0fb8eff61f593fea5c71b94fe28b7e9
-40bcfa0dafe02db5c736fbb626dd57e086ffaf71b3cb93ff1ef7d86cffb642fe9be53ad8
-53cf31fe9dbffb2887dfaced20e3a4f40ab8d39bed4ace9ffb71ffb6f4aa16e552ed9fd9
-79e0b963f497ff09f8c02fa5da80e357bee14f9afcc13895e484d2f537c5ad6abf23fbb7
-35e078d99f56f8b54fc52ebbfe34ddb71ed93be050bfd982e093c1dd80cf86fb96f40dfb
-b837df57caf8af4fc919d5b536de5de677ffd96aed62c4ff75d19efe83f688fea2ca69f2
-7bfec205ce42f9d828ed5ecbb13aaccc79e062d879eea5ff7df186e56ed5aaf69643d8b2
-69ff86e654fb2cafe47ef236d70bd95cd0f878ffbf6cc4f20d93edb346b6e25489fcca68
-ff27fb79cdaaed2692fec44af818afd8fe10dc79f086dda5c1f708ffc925dd86fe99ee79
-b1fb7af488ffc386f207fa4cf519afff31f0b636b9d97feccd7dfcbd40d8ff7ff653eec1
-9cf22dd8b037c8a5fb0faded2edd54d864d913e54effafd837aaf789f0bd65fbc0a2fe79
-defc21f3a1f90cfeb828afe05fd00aff3fdd5fccff79fac73ada72f18ac8fe01d864e7b6
-f979fd2f9cd8a806fb3ba5febf33ffa3fb79cef39d4cf086d29ff20dff79bad96ee0a8cc
-94ed4b87b5fad956e512fe508fe5b863fe9eed0fd84ae5cb03d84de2a117fbafe670bdd2
-9de25ad868e0a5ff4df71f9ce50ba4e79402e09bd96fff0faffb83f79ff24bcf99d96bfb
-93f405ffb9f17ed89d1afa87e64bdd159eea954ee508f2bf68b6d334c695ce68faca1dfc
-a5da7aea9ffe11bfe51b93ec9ed624e058a5f388ff9c47a5e087c6ff43f4c295c6db4ee5
-ca82dd15eeba24d8e602b6ed53afdd5dcafe59f50dff65fb78bcffcf3eafff9ed076edc6
-4496ecce46aef66dffbf64f188fe6bbded9355cda3ff37fc79f388fe12e86ed888c6ff6c
-d0fe79f2bf62fe29e584dcbf51e006db7bfe86f33be5c25daceb9546a7fe31edc05fd0b1
-ff74c7fe32d0ff84db9d49d9fa7fff6ce345edbf7ae864f542f2b725b1ed6a9fcffe5af7
-83ff94f9c04be023bff5d01ef166b7de70e25dff86fa9326f960d8a951ff6ba5fec733ff
-cb82faaf1ceaa5ca8fde24d7ee0295f51dc84aebbb29fdabf31d87bee07ed9af22fbaae0
-2ad3f940c4fe11f05edc93eb26cba7d093fb27edb044f2b751db30faa8d092c3f35afe93
-c4ff60d320df5affb519ffcb3adeb6e079d388f6a5fb2193f2a95cddaf1bed56cfffaf0e
-e650f0afff9f05ff97d88ccb85ff93fa3dd9f92fbce009cb4fd814ddb37afad85a91ff99
-e50ea5fe24f0b617b0efd07ae986fec596c0f25f93e09e20f13fe397d57aed53bff2ab60
-c1e884fb91f786ffaf79d969ffc5fa17fe36f49dd53f92f6b368afe474d87de0b50ac6b7
-fb3ef64dafdd7afea3c826ec88cf5ae014fb42acd820eb43afe087edc09dcd78edbe81f8
-86fd0cf74ee501dc6dedd739ccfb7de593c1f98630ed89c89fd81e84d0f452d92dfe0ed8
-4be05bcdb679ed65a7fe90f27cfe6befc44394febc3ad861fbca7dd78dd981e05abeff0c
-d83fe01ae43bccf677fabc86d86dff43fa15fea43cff99f955d367dc0ed843cdf105e3b4
-4293dd95d05ee984ffdbc40affd01eedacff44f89fff6094d982c7f15ed804e45eff72fa
-9aff7bf0bc94ff79f8c09ff117feaa36fb08f6a548dc20d86bd697cc80ff52c7b77cff9a
-0af149fb3899e0bfa5fe29f587fbda5ab4e474edafe574f0c1a5f303ff93c5dd61d828e0
-acd01affafeb04cdee84edbe32f750fe37f8a2fc3f9cf2affa72f592feb610d947d0fe03
-e7c5a9bfd977e0c386dd2be5b9ffaaef7ce29c66fbc579f2d258f186fec00dbc487eedbe
-86fa9a2abbcb87d841c0ed07ffb61bffa8f983d79fd80ede38afd34be706ccb668ff7ad8
-6dcbf186e07cd0fb6dffaff356ff28f1bf9ffe14f54ce1b0c6a4d1b1fe16f645cbaddd3e
-a5bff132c1fe9348bffb9517fd7ed8af45fc12f3b8ff993efbbb5bd880f78752ff1c9ee0
-93dd73edbe01d2afe38651c1dda75bd87dffb1ed62a5f3932aed509df761fb0daffe8d38
-9e5ac3fe22f9c13b95fe23b8ff01e53da0fad8affba452e762c0f26dfb17f3a7fb79dd68
-e19ecb3dbfe623f48eee7ec8f66dfec3a5ed3add26e593f950a5d85bfe2eafe0c43fa0e2
-8dd9ab36ed62df9ed86bf427ff60ed77d986eb72fb80c6ff138ffa9b18c5ff9f36dcc460
-e334f19ebfe09a4386edca74e79efa38aae0c1add8fd57f213afc986ff6ef41fceff9405
-ffcf26eca02f8ffcc34bbffb88ffcb30d894eac950d8f3d2ed2eaed85ce9afd96ee661a5
-d96accee8756e11fcfff2ed8fe57d999d584e720d0a5f347fd7def9664fe52c640fcb61b
-e4982dfd74f587fb5ed311beff1eedc395f00a93ecc115fa5dfecd83d887ee2afe93d880
-da04cd96ff63da0ae54dd9b7ec69ddafe06bcff96dffa0bbfe86ea5280fbaff80ca5f52f
-d489c1ff29f24a7fb4d092ffd840e95bdc88fba534d8ed4daffb6ad9b7dd18e29fdb7be0
-07a5ed80ff5b93f1be0883b7f672ffbe88ff18f79fc4fa86ffac1bc8ff8af2769ee09305
-b5ed35fe5cc797fe30afd86dde2bfbd986b4e9a5cd60ff50bbe08ad657d9c19ffface67e
-d9a142ff62bcfb70ffb677e01ea5f80eff51c97ae453f2b9fe5be024d488fe79f8955ec4
-ff3bf752f208baed2be74ed01bc2ffd822dd5fd6e554b5ff0be065d99ffedc05ee44c177
-fb9dd727ec4fc2f282bef879c1f33bfe79f75fff23f659c2fe46dd1bcffb289bffdf61ce
-b209ed33a5e0bf47ec28d849d5f89b34dc4cf8c95ef1c5ff79ceaced46df72ccff11f899
-d2bb08c3f217ff85dc88cbfb62f21bff9c04f253ca38fa64f5b97de5d04eda37cbf085c6
-eb6cddc096fbb717ffa33289f3aefb56f1a0d024c0fe02a5d886d793e05aafd479f593fb
-a53bb7f292ffb76cfec87aed94fbb619c491fabb98e6b51cf37bffbf93e460fe27b2e10a
-ace552cbbd93d3b76cb0e479d687f2af64c2e045acfe3ffad880d0fb5493ff7fdd79f294
-51e0c1a7eab10efdb68648b0f71094ffb6f45792edae38ff5baffb6fd956f326edaf0bcf
-b2dd79e4afce88ec95c1e001d6fa239ef2b1ed9926fbaf45ffb460e53bedcb71dcb5ecc7
-3f94dcb03eeda5e07bcef348ff26fd7af686ffb706db58d3f684ca4ac51dee9c35dd50d0
-40ea87f039ce52ff2bf9cc63d9ac44fe11d19ae652c8ff6dd296ea05ef40fec8f232fab6
-fe52e5a2ed6df91894e69052f2b979dcc20ceeaffe07c0ff6efb1582fe93d831fbcbe063
-e5d68502a3e2c34cbfe088edcf46e388d47ce06af893ff38a5f74cfe3cf724fe4cafff93
-58c5fe850e88ffd269dd9ad028faa5d288aff95afd1b84c1f80effc286ff35f563b5eb9e
-c7abdd1bd93ac8fb88e56dc608fe94f7af79cdf988fe7df5a0d662fe7add86d86baff005
-e597cba9ed66c3fb7fb9ee20fa87ffafdf861693d89c0aa7da36ff12b6caf3d828c7ffa1
-12fe3cf2a9cb36c7a4ed2cd0adf1d93be46dedbf198effbe43f1c8fa29fd86f669fa2184
-feb8f635fe9fd042e15fedc886d87be0bfa7d090dd6bedb6e43dbff9d84bbdfe03f789f1
-bf07ff4ef209e59dd8bced61d866e118bfd986e420c973fb4fbefe9aed8551f123ff97e9
-62db2ad8ff02b9e022d8b013fba9c0e80bf2a2fe39c3ff79fa5af638ffa518f2459ce0ae
-38d7559efab6ff4df6b9ed7ad072d6fd7a4da5fb9646e2be86e588fe6cf97de568b6f542
-88b9c8a1ff4b9be8c3369afba65193dcafd80ccca5c0e09e1194d8af04ffa5c2fbac27ff
-0dee9e49fb14f331fbc11887f0d460b8f3935ce0ab55d979ed94de81d8af4aff2ca4fe95
-f391fba955fa96ff5bef0be66dcb5faffeadcba4d837aefbb5ed61bfeda25bf26affca58
-e0299bfbb44cb8e084afd524e08ed880e0bf93c4ff6fcbfe7df4c230ec79e06fdc2bfe97
-f2a73bd9ffc061efd66af3cb50d924e094d84dfecd7ad8ff5bfa03cfaff571feafea23d9
-b7fe7b49ff9df35cff44f2b5ff71edc186da1881e793d8b76ffed996e47dd8a451d9ffa1
-2eff9d12e7cd7cffc239fead38c1ff5ffbc87beaca44d825d077e0c010dd79d894d892f2
-26f9d413de43fe7ff5dd863fa3fb8a49ffcf85e53a96f37bffcc6ad988ed12fb47edbf66
-fe07f354fd64e811dc59b8e50ada93d0af1eff94cb5cdd03c5f78920eab406b7fe279fff
-7ed358fc1cf0a510fb9e24e593ed61dc2cd754d986fe61ef13ebc384dd3ae5adda63d829
-df49f75cfbbfd83efa63f5c134c552b7ff60e0f69467cbea79d8faa63eee1cebb369d8f8
-9f23ed9312f6b67ae485ff5df73afea3c3fc2df841ff7ad8a176ef89ecc250ba15c2ffd8
-10d0e49618f9a5bfe00fd9b948f11fffc595d8b674ff9fb9d29ac82fd8affa7af628a5ff
-6bfc41f8ca62f084f990ff9f59defa6dd9ff79c7afe80bf6a3ec79cb61e0c052edafd340
-aafb87ff94f809e475d080e093fb1db7fe9301c1fb7cf9a5ca96e0308bff9dcaaf2ced93
-ff86ef1ec9b408cffd23b2f64283c7fc87d87bfbc51686e6d075dfabce4eff02efaae898
-d979f15289e0afcaa5e458ffbf4aff0e86f9d99de55093f7a93cfcb3c852ff80faa575fe
-86e5af5bfa2bf4ce0edd42f061f8a8ff4b99d889dfbe47edaae06abbe53bd81ed84dedce
-80aacb3f99ed32fa60dcb63ab9ff9afa81ffaf6df979ffc715df5bec7acba1f427ffaf45
-d3a5ec61c5ed9033e9bf5aff1daff2b84df112ffd55de002b0d199fe7afaaa5ae56dd9bb
-fe28afe04cdc32f2b8ff47b2fe32fa6cf18bdab741c60ab6e530bdf39a4dfe02c1f31ee5
-9ccdafe19431fd71f3cb66edc76de084dc27d75dedc334d8be3cec7dde9460f77efe86e0
-1bd978d0f235ff62fbd08823bfff11affe97f386fbad0fe52dfeb0f786d893d083edabde
-02d539d81fdfc206e8b767f3afd01fbfff3aaedb5dc9f76dfd2eaff74bffcfa00fef86d1
-fe6dcde57ad984b3f99fc0fb4ef23edd33ed87c3ff068ada9bf871ffa8e55f8ecbf36abe
-d698e41fd252fe93f8a6ff5ad0ff14cced78de81b1d062fa34f451ffc0afe027acfe20a0
-f609fe67f5affe06db9ef96cffa1cb51ffc2a6e72dc6abfe93ed01b6c6a2ec1396f4c679
-d99fee59d068e034c3fe93f17bd815e44cff1afb52fe88f484f296f363fea3cb28e29a47
-fca5f159b9fb86f39a08d894c0d979deb76dfbd569e0a543e80ba2fa61ed24cb42e475d8
-86e5c49dbefb43aff2d051eb16b7c90497fbc10c9fe01aff4aadfb93f378e030d882eca5
-6bdd80b7f63cff4beeb993dd7bd66ddd0689ffd85cc5e77bd29dea944ac0e461ed19b2d2
-03fdb123ed48d0a3e55ccd43c0ff86fa50cbafe057feb04ffb85d907ffbf9cf460bf47de
-62feafc87ae09cd826c95ad9b846b4d731ed7efa73ffca85d97be5cf16d840e6baff51f5
-0fff9e1de444acfe28f7c780febe39dfb6fd7aff93f629feb662ff17d693e061a5ff85d8
-f55bfad045edaffe7bed85bbd95cde28caaffe61f41ec5f748fe25d69fbed884fc05c1fe
-23f2a5fbc54a93f2a53aff53d91ccbf183b5fb93c2f47aee59e3be86fb6eff09fa7af6a0
-5ae421f187fe6dd803edc12ee578eda652e721b5dafa8aeea05df4b735f266f975ff19fb
-a5ff79f693dd39d9be0ef42efe449ef07affc260a5ed87e067cbfe89f3c592d97abaed53
-d0ff8f4ba5dd06cd61edc10beb80d971ef20fac130f24c93dfbd79ff87dd37d862caf508
-ff74beed0f9eda90e07eb6d89eed88fb11f731aee3995fe8b34680edafe50dfbd992f286
-fea73dff25cf51ff33e091d87ff3cb14db90edafd91debcf7bd961d831eab5fa74db97c4
-fd42ccfb79d1ff7d01cc39c0e609ffc691dda5eb93cd76dd0fe1ba49b6fea560e093d889
-c6ff61e0ab1cf9c62ed749eebd39d97f14f151ff0799e09316f1c2f769ed82e0a154d8af
-f83dfeabce78e793cbadff2c9fe921d55df7a5fd3c88e0c4a3f969fbcc38ff4dfa07ff67
-c75cade086c9ff4ef8ce86d8ffc12bfa61cabb65cf2dde60ecc779dd88e6a2cc64fa1bff
-3f98e9b650c63a93ffbb30fbafff80f59f4b93e55fff15afdc930ef29f41eb98ffaafb7b
-d99e59fe0ed03de05bed86d067ffa1f00ac7f979ff4bee04b6d831fb89da82fe90faa979
-f993ffcb78dc9fcdfb37f9afd8871ed7afff37f7aeff5e93df9f5affb949fe0ee564bffd
-6ad97cecc011d8afff9533e743d1b779edafc9a5ed93e41efdd139eb5793dca535fe1691
-e0a6d395ff36affe9dbcfb13affa43f3af0ff19ac1dd75b9fe6bf99ffeb2df5596efc50e
-a5e119d2ffc223f3bb87f750ffc880e0afc7f15bd825f24abce587ef7afe9ffa2efdb3ed
-22d85fe0983aedbb9dc0fa77ed95cbb752e56cd90bc7e623df4cb3fb2ef461b6c669ed3e
-ffbcfb4999d96ddc14ccf11fcbec03de99c4dc7ef1ce0af2b5fe2e9afa85f059c6fb7cb0
-f219ff9724e65acd3baff2bf75ff9ff5d11bebc36cbef451fb1ae479edd701ed4ccd9fe0
-86d87bfec05dff2faef0cf09d837e518f280fbc24686f3d876fbb83edfa5d047e197edb6
-62fb26fe6a15dc7fe093c9f62dd84dd9b416b9d8943da7f78bfb7dfeafcc15f862d2af4e
-fe0ff5d025f19dff9360f2c2a5e47ed786eb23fea5cb80dd5093d1f223fe86ed7abeff6b
-b6f686fb2ab3fe4396e0a54b93f4cc50e226b7ea04c0fe86dd5ac6f78afe7bfbd88643db
-b80ebe61ff79fba4ed7dda86cc4ff7b674e16bff8ef645ff07dd36d9a5d193fb489ff786
-dc7bcf6ad805e8affe9a39cd5295f67afb81ffc037d118e5a3d692e0ffa5f853ff1ca9fc
-91ff86f2a5f56dfebeda4ccb19d952e66cdd82ed26ffc783dd71b2ff5dd83bcefca042ff
-04f158ff94d85af20afb9fc2e910b4c8a5d72dfa46a5e035d055c0ed79caaffb3bffb8e4
-60a7ff7ecffa70ade03ad86deea645d819dfbe04fea8f069d8fb91c0df3fd804ff3cb8fe
-a1c626ff90dac022d1b679ed87fb6df61eeb63c7e15aebadff4df8a4ff6dda5be0adffbf
-ed0cc84dec07a5fe83f5c15aed38bcc53db5d287edc04fcc03e03bd851df07e977ff9ff1
-87cf30ffa5fb52de9d3bf2a5fb42bfe487ecb015bfdd87d89bcc10dd78e584d8b82ffa79
-ff80f45afbba98c3fb85f392ffa54bf916ed72d188d901edc71ddd9f44c2ff65f6a0fe0c
-cefd79f3a561e78ccf28ff964aed26a6f266e1c497e711ee87d956ed36aff27efcbf4acb
-98e352dd83ffaf12febd2e93edb63eb9d72bfa8bf22686d6a5ffb66ccfe66edaaf43fbab
-f867f293fe0ce562dc96f3bd6dfb7eff86cdaef226d661fe96f3b822b3d886e8afce1fc5
-ea8601fa62fe94f452f732fe64f6affe31afff68f096db50e03bd089e552ed08dd50d91c
-d5e585d892dd27f261febe81f279feafee18dbb729b4dd85bbe04ec8ffaf55f9b67ae5c3
-99fad881fe9f59fb75dc61fe7afac19ffe51e410efa5ff1bb0fea8c938ed96d274fad823
-e088ed85e5c007ccaffb5ae532d8f29c4ff921ff95cb05d09d1ed96fd883fe28fa60e79d
-c3ec1db7f85e96dc81ec01df78d891e50bff5af77aff5ba0fed8a9de2bd86fe0c17aafe8
-9250c0efd043e5c602c4f79fbeff0caeff87d37afe9ffa6cb0ff40f75bff7cd8ae3afb52
-d90ce073d88af182fa4bff309ffa9330f1d80deccb35fe09b953cb17edbe2ef3adce1ee0
-a60ae570d688d862e070f2d98b02e5b660ff40f1c265ff98fa13fe4d9fff7be978d988fa
-931dfec886d865de7afe5beaffa7f751f1bfa4cfb841ff2dafd4e537c5ff50faa5c959fa
-3efebef26dd519e092edbf35c44b86eeafff1b9ffbcf19d8fa9d1386f3ac78fe61b629ed
-74e3cb3ad966ebc030b8ed0fbcce9ec7a7e718e295c0e886d593ff39fb4dd599ed6ac1eb
-14d0e265a5ff9a5cf379d3ff93f6b279ffd88946ffb568ecc393f521ffaff929c6b740d0
-ff58f8cf81e0ac0ab4cb50afdc79c7ed62dd30ff16f14ac3e2b83bedaef331e5b0d887c7
-32b6e19543ee12feaace96ed6993fba40de0bf2cffacc1eb8548a2dd86fe58d007fd93f3
-affbc64696d2ea4088f3a83be4b4ffc529b9e193fcc295f94ba1f293fd1ea6f27ec3fb61
-f306fb48b9fe86f020a5fe2ff35ccf9fbee51dcaa9dc6effb97efbc542bfe08adcaf47e3
-33dec2259ad0ed79c9f54dff3fafdf9b39c99ffe87f769beed9327fbc168fed986f6d137
-eba51bf8add198c9bca1ff865cfebf0c9fff9027fb4af493fb04c4ff88d886e275f70bfe
-cb44d8f5ae6be563f21199dab5fe37edc29ef5b578d863e00d81d9fa68bbffd85bcaff7d
-d94992fad615d845e01cd7affe14e05fc9ff4ce338a5db81df79ed88d04cc3ffcd61dec2
-9aed0eff87f85ffc02f49c44ed21d986f81aff2fee86c0fe6af8aafc07b7f92f99d984cb
-fb6bd0fb7ae859d816e0a335c2dd9e1bf3b849e21f9ffe5ffbcf9353fe3ff755dc02eda8
-d973f1d878d2ef9ebe62de78b0d967e54bf219d855dd63afea8952c7fe93d888cdff2af1
-7fd0b126e245cbf821ff9dc1ffa426f19009b8fb9621ed6be7c1559aff7ef56ffe68e685
-d28cf7aa78d98dffd123feafcc1efa6af6a44393f2a850fb79b4d846aedf93d488e5c3ae
-fe61eeafd570c9a9fb01afd941ed5ce570d0aefe15f3a503ed55bedd0af275ff7cfbaff5
-79feaecc85ef79ffc683dfbd42d8f2b6e084eb79fb93d024fbb339f951c311ecff27c1fe
-36f89fc979fb88ffc093fa1dffd99916ee33fc55bce0aa08f689ff7cfb985fe7bd4df239
-e5bf58c5ed934be0c2a4f905feaff05be9c59ebbcb38fa50d928edb80af5539ce6943eff
-be99e010dcb5eb03ffbf24c5fe69f6cb2cff51d917ff5393e0a33afb93f552d09ee980d5
-86dbafff51ee7ad865e0ba7eff26a5fe92cc95d952e10ed84ce53cff0ed8a645f4078cff
-af7d0fa5fc20b5ca35e8be67e59acba8fe89b8d1a3e87bedad20ffb63eeda52df25fcfb6
-36f9ce7cde79f2904cfbd8b64ab9dc16edadcd79dd84d86df9a5fe33cef780fe40bbd386
-de1fdbb42eff08f3af7eed98ff5cccea93c7f261c9ef64e534afff83f96dd07ae09fed3c
-e4bb73e885f279ed86d9c107ffc25be50ddd79ff51fa12ff942bc4dd1ce4b6ff48f7ce92
-f0d24cdc32ed21d06fff96ed6dd89ce77bfbd46bedc4e426fec4ee67cefe88f87dffaf4b
-ff09e057dd3a5dfb0ad04ec2de84e4cb6adbb3c79ee57bedbd5affa5d51fc1ed943efea2
-f26ad556ff33fa13feb4ec03d861e0aa0eda69e079f148a5ffc062ed93e06aceff10d886
-dea54afb32b6ff14a1d87ffec961d82fe392fb55f487d1af06fe9fce20c7b2f637fab56d
-f29fbaff99f01fc7a4ed58bff361a5fb8f3794da9f34e577b6fb6bf7affd81f1c02faffd
-86f55dcb21afffa04f86b8d98d38d8b050dd61d90ef2c493ef7ffa93f3e082b5ff93f561
-fb08affe15fd4cf604ff4b95e4af41f7a8ff65cae86fdf0cff88d97be0afed883ea7fb8e
-f27cffbf9ff529ff99c4e4358dfdae42bffb31b8da59f925febe7bdd83d9aefb28f2a546
-f3b8fe5cd92ad8ac14fe5cf1c33efba6fe41a0dd7cedce26de46ce61c5aee06dcbabe37c
-febf4af1befb1dffc15dfe13c3e5a45ac1df429efada01d032baed88e030d9b4fccc48fa
-a7ff79f318ed87d76ce02fb9cf20d97819caed61dd2abad29ae686ed93d979e0a4c1fb0d
-f0c286e103d9a21ff9be97c3ec29fcc16196d9b7e04fcf25d64ded3badd8b511fb74f4d8
-0dd1f97bd8ad78f0a4c2e56ad0ff01f843cf5ce071d1e5951c9fe9aff779ffc098d8b57a
-e065d880e0bf12fe4c97fe88f47cfe2df74bfe25f53ed908ea9cd677cbb16bedb086f296
-2bd8ff078efed28861bfff8ff948fe96f761f10495e56ee009d3bc94c5fe41f8adfb70fe
-a5c0ffedac40fabfa4ff4bf238d856d027fbaf31dc82d46cfe2fbffa7cffafc832fb4ca5
-f39306c6ff24f96dfe9af586fb93c4fe51ed93d0be4d94f69e51ec03fec43aff1a95f52b
-b0ed9bbafe93c0ff0587fcb6f5860cc4ec4ae137fa22ff97f30bf957ff94cab1e75fd80f
-e4a5d882ec96d87effa2cd86ff0ef657f2d307e0c547bfec60c6afe7a51cf7acf05ab3d9
-9fc70dade47fd8ff28f6be99fb4bff2ea6e09115c1dd34e4499a64fe88cf14e080da79fa
-7cff9be084caf961ff29d993dd9f4ee637ed78da86e5b969dbabed55e59fcb16dd75dfb0
-19da86e06efa27ffb1e068c9ff8adc84f3b26dbfd979e064cb77df11ed468df4cb38d950
-d2ff9469d886ed6dbed733afea91d171e53ed91eefa5fcb939fbb605dd54e6c064fb3bc2
-e093d92ea5fe7af8a6ff89fb7df256caed4fd827e5c817e65dffce34fbbf69afd052dd73
-e3a1c1f552d2ff975ef687fbcce52cd998f75afc1ecda9c611f265ff52a5e493ee84fb5b
-f3cb93d888f75dfe19cdff36fa86d4b941edbd5aff33c9f75fff04c9a5d884ee1afea721
-e562d052e5c8fb4cfe9ff33bff58f6a5c6e2b85aee7bfeaf44bffb19ffc295f766fdca52
-da2af2affb79ffbf6bcc86e072c9ff88f2a617ed93dcab5ffa77ffc753d831d70cd93cdd
-1dfe6ebcff80faa551fb86f1be79de9d43c5ec84ff32f7b820da79ed9e43c6ec79d802af
-58b7ff65afea86b7ff46f088c0dd1fd3f410c652d01ae0a808ff51dd10cf93eb9f5ce1af
-1df58aff81faa5c0ec64a6e97bb7e54af237acd65aedc29bf725ff9f0893ecac0dbed893
-d4b766fe1f80ffacdd26ed9fe57edaaf47d907e5b67fff98fbc1018be0a54af823ff5af4
-9c4dd235fed97bf823ffbf13e9b683f399fe81f668ed87d385e01199de6bd0ec6ad9a124
-f388ffacf90ff25eafcc81fe8afb04d8b9f21cb6ff93f1fbc80befc632d4ed63e09ffe43
-aeedba77b5f7a0ffb77afebb70eba5fe79d842f4c880febf61e310d94ce00794fbd722cf
-fb67ff96c2ff8ada7dfb3eafdd79edb6df36d6f686fa1afb2eef93c4ec960fc3f862de0b
-f25afa92f1a6c640ed18e44c93eed036f2ca92db9fed15d9bef986b745cc5be479ed9fcc
-47e11add4beac09ac3fb51f4b5fbc53bfe09baff34cbfe51d817e062d99ac2e611ed45e4
-63b4ff618ffdca4ade753b9ddf5193ffa006f8b524cb80fb8d38ffd846d92bc6e938d8f9
-c23daff068ffb602dd4bd1ff7ccda4f37bfec34992f29c38ddaf17df50e908f260bffe87
-d72ffa67ff89c247b6e59cc0d936fb4cc0fb6eb5cf91ffa5cb2dd061ff86f99ed86bccfe
-63abff9b0ae97ad869b1fe8f11c5ed95feb9a5d841fd6cf888fb6fceb020ff2fadd99e41
-8ae3af86f27aa6e081b5eb7bd593febf2afb69ffa5d09dc6ed37c2e52a99f8afd8aaff7a
-f6d879e5c872da93ebbe02c5e29a6afd8bf25e9ff5912598ffd11ae0c186ef9cf89439be
-fb30afd83defb8ff53c0ec7acbfe86f879b9cea3e318ef5ce797cbba59dafe7dd05eff87
-b9d89fe084d931fc3dc667ee95feb71ee056d984edaf32bfdf5ac6fa52ff29facf41efab
-ff60e508f42ff186c2e027d9c0a5fe65f2c686e503ffb7f721edc14ac4f658fa08c1fe59
-f038a4e086d9bf51fa1eff5aadf46ed5e3860ef3e123ccb01afb41affe36fa4cffa7f251
-f9cb06e078ffd34cddb5ed6193fba42dfc54d823eaaef168c7ff6fe09f15d8a6fe10f746
-a2d82baffa39ff54d97fffaf46fe1af0a50ded42f2ab05e853f119ff5cf297d8aafb13dd
-59edcc79fc2eff0ff79ef319fb7eb7e296c7b886e079dd2cafd889ca93bdff02afff943c
-e406deb84efc93ee79d862dc79ff97e61bd892ed9f27e286cbff60f13a94e97bdc93c0dd
-08feb244ffcf6b93befa6ff1c297e868d19fdd6cd886dc2ea5eeafc812aefb81fe0bc9f3
-46e6bc79e485fe6ddb0ae1991ded87fecc67e384d98abae76df0cb86d881edafcc06c0e0
-8fd879fbc788d97acdf985fe79cfa6eaaf02fe4dd5a1bcf83face687c8a5dd6fd886d693
-ed25d06af550fb1dff80c4f24bff3ffb51d09ff24cbaf786fa9c79e0bd44b2dd32fe9fcb
-2ad861fb70ff43dcb973fbb001d2acfed80bf3ad31fb63edc17bebbe52fc2bdc4de4ba5e
-fe10b7ed16bff41efe63bffe8844eb99e532ce5be47ab8d968ffca35f2afc651ff7af6d0
-5bd92aabfa43ee31cdfb01ffbf58fe0ff6992cfba2f761f22be94eafff26fd3db0dd25be
-fa3a89e0c179e588eb27c79cff04b7f262bcfb4aff3cd961feb3ed03ddafd657bdfa69ce
-a5d89beb70de66c8ed61d83acbff18f5a2ff68f1bf13fba8f28cb8cea5e56bffc846ed98
-f82588b6fe50cfed83d8a94ef91895edc2f786ffa530e07aceff86f85999e0c3a1e45cd0
-ff81fa6fb6ed93bffb24aef50aa5dc9313faa3cbb63ca5ff7ff7c67cd895ff5da5dd9526
-e39dd96bcae576d938d085ffc193e06adec298f467aee37dc9ff43f7b72fff5bfb7bf167
-d1fa3aea22cba5c0ed79e6a54892ff9b65f29fe70baffe1bf726affb15feaf23ffa5ee6b
-b5d861e90fd6af7aeb5ce13fff05ed2fbef411acdb7edf66bfe558c5e278baf615ff93d0
-afff3da165d913d0fb93f5ad51e079cbff8b40f70ffbb920d83cccf41aff47d89dec83ce
-fb4effd079ed29fddcc105eab657ff0ce078c7f34db8fe62f43ffdbd52f295fe71dbaf3b
-fb13f4b650e408d1ff48f212afd87dedcb84d893d91be3b26ddc8bff79f507b5ff13c2f9
-d55be3c12ffb8bc5e26ced94c0db88d87fe596cf0dbefe28f99acb86fb37f8c093bccaa4
-d893fe55cf99fa2dfe4bcaff77fb2d97ff24a4d76de036de60cde5fea5ef874bd905edc5
-2bfbaa26f0ba7edba573f387feb068df9fd070ff54dd3b95edab5ede89d89662f18fce38
-e588f2b0f92487edd282de88d0b412ffac20bfed02e59ecfa9c982ff86f8be76b6d694f6
-5afe1da8e20aee72fec043fe9bcf58dd96e084cd88df2bb0f417fea8d04cff2ab8d350ff
-36f656f139dd78ea85cfaf5aed40e4c29fd049ff0bf465f95caedf83ec69d0a7f3af16ed
-9fc1f26ac4fe49f39ffe81f2ae01c843b6ffc86dfe619fdb83d0ea65d6ff56c7ec4bdec0
-03fdc42df8b506f192ffc11cbff925ff59f8bf44fea1f475dd984ad3aaff9f39fa1bafed
-77e05fc5e551a5fb87f360fe43eb22dca534d9fb61e72cd887c5f96bfca1cc3593ecc40d
-edb632fd53f331fa9fff68c4d97adf86ed7db0ed86e67fe079cd8afaa7fe49f53cfbd992
-ffb01ffe6cef9be583d630c2ee19ff40bdf20c92e786d54de004b1eb7ed8b80cb6d827fb
-8ee580e91ea6df91cbff4de60ab6fb33aee20796f8a06bedae5aed79e5c97ed85be587d9
-6be2a8c90edf86d923affb1bc0fe6bdb0bc1e07ac8ff30f8c193f17affcb6dd823d986d8
-7bfa60c3fe930ecb9fff6befa551ddb04af3afff60a5f980fec87cd991d8b943b3e4934a
-f63afd0ec0f943fe04caa1ff11d9b828b6d88ee072c005c674ed93d825da4fb6ff99fb74
-b5d693e479ffd85afca5f893fdd938f760fb93ee70e657be33fe96c2fa47f32ea9f293fe
-80c995f479fed82bd0ff3adb93bcfb42acfe2cfa9ef444fec378f39dfcb660edca68d8ed
-2dbfee86fc4bf5b662daad43fe0ad7b62ef55cffa0f70eeebf98e653edb0f342afdd04fe
-ca32ffd586d921e0bf47e41e9ef610ff67e585f105fbafcc94c9a5e06fd99bbef330aded
-53ff99f260ff1cb5fe95f7b753f586fe7efacd1cd94cc7f761fb21ccb33bb8c726cc42be
-87cdafe02cdd47ffc39ff7d8af5bed7cd888e0c01bd952e016ed4acbb664fbbe85e579ff
-1ed097db6ae0c617aedc9305ed4dd831d0ff954affaf79a7fb5aafd793cf05ee79fb91d0
-a0fa4cdd84e4c243bfe0a548fd18d86eda79fbc686e5759ced9413f756fb79f293d3afea
-51d0aded1cfeb7d961e01fff54f430ffc462e577fcd084df6de302d793c7e94dd82fe5d0
-16e03fc8b067eb7ce59e07edbea2ed65ddff86f37bffd85bff1a86fe9bceb31ee0860ff4
-bf3cff0afb68ee87b0f67bffc09fff1fedaf46f616cc9ef262fe0ef6b179bbfd6ff7bfa0
-ff7ffa9316d7f2c302f9d93bb9ff25f28affa5cb21e461ea79f2a5fe06affb5b8affcf77
-f2a3ff27e49d1dff4acffa5fc1e57ac7a8d72cfb61ff78befb5c9dd89050a5ff80ed98dd
-6ad8a418f240dbb85dfb20cbaffb7bed5aa0f37bff618affbfa5f303fea5f638feafca51
-ff2ff99f14d84fe0af09f298c1f1aa5af57afb6affd079e2abcea2c6b644fecd26dba539
-dd88d886e094c9abec4ebfe287edc03cffd855d429e83eafe064bde6a53686eabe6dcfed
-7dd8aa3ad94fecbe99ff16b7c726cf94dd7ce5c43393e2b03cc9b65ef1d08cf3a520b5ff
-3cb6fe10eda0c1e101b5f024cbff43f9c6f214d8bb41b6fb7cf7bc86fea10dedc398f344
-a5de2cffcd0de0adc0ed9b5ce488d9b647b9d887dd79e092d978c6f193fb77eda5ca63e0
-34d9bf04edb9da519efe19f755f234ffd99d5efa6ad0fc77f95af311ff60fe85faa534d8
-4c9ee89308f197fe86cbf211c8f456feb6fb9827ffad0ef661fbc378fe86f73fafd8fb63
-e15af23dff1cf6affa01d2fe68d8febd41e87ad9c0f067d0ec85de7bff5995f5cf80dda4
-6cedbf3493e67afea5ee07d14deacb6bd8ffaf4aff88c1fe65d879b9fd9645fa0ecbfb2a
-ff79f095ff10f248fd17f24bfeb65bda1fd03dfe4cf793ff6ffad1a33b93efdd62cb83dc
-95d89312bfe085ec04afe424c779d0a6dd30d801cdff7afbc35ffbcc7dd969e0ae5dfbb5
-2ad87ade5dc5e253dd9ac0df1ae4b50adf6aceef5094ed85ffc09ad5b471db7aed569ff3
-8f1194fac108ff4c93dd9e2afa4ece38bfdc8847fe3af7c30996fed04cf626e086d993ff
-9f23fa4c8ce083d310e637f2a7f73a87ecd06ddda551dd60d523d86fe383b5ce9cc5abd0
-05f79fff85db79dfae0db8ea4387ffb6f92888e8a5ff28fd51f9aff53bfec196f259b6ff
-9ef853c1f17be788b9e517f2b626b0ff41f619ff99d96dff88f60aaffe86f38cfe41a3ff
-7bf6c19cff2c91ffcc34d8ad13fa4defba2dff93c5e630deb5ed62a4e086c9fb0af2b0c7
-97fda5f822ffc2afe076d9afe15fb4d99fc768ff5bf038b9de93c6f534fab9f07bdac016
-dbbffa1aafff83f8b981f587fea9f93fc0f65bff3afa8aea6dcb38e7b0fa2ad6fd67c9ae
-e313d878d4fb07f05ed07bdf86e579d8a54bff86c3ed3fd80be26dafff46f9289cd983d5
-f866c3e08ad152e939cfa5e551c2e03dd013d869e9c95ad835ed4cabe2be0bb5fb6ee691
-c5e56afecc5ddd17a6f879ff38cdfe58f437afe07eff5ee506da5eed69e61694fe2cfb87
-f31dff79f2bd2ce082cefb5af109a9db9527a5fb4a9aff934ecaa1e140d820edd009e4c1
-32cba4df24e586db7ce02dff86f2c20f9aeb7cbeee21fe60f394ff4da0c891d99ced02cb
-49ff1cefafd82cdc92f472fe96fb22b8d76cc4fe61ff3997ed11a4f279fbc387ed20cb9f
-fc6cf77aff84f91faff08ffe81d0f478f9d968c2f14afd32a1d9069cf783fecf51d888dc
-af28bed09efe62d226d877f2b0cb93d4aaf2bf54e8a73ed7b856e501fba7c1fe13a5e87a
-ffcb50feb5e073cbed61d5f271fe66f38cfe66a6ff9d5cf36cff7afb9ed00cef56d8a4d9
-6193ffd153fb44a0d88cdec342bfe1fe52f61ffb6dff93db9ed083fa6cb5fd13ace0bf4a
-c6ed7ee0a2ed3ce5a5bfdd79b9fe2ed89e03ffb3fa64ed30d9a5ed46b7cc97ff43dd02d9
-af1dc8469ffe2298ddbfaff286fbbf3bedb779fc07fa65f295fb78ee17d986f793fe9f41
-ff10fa4c86ffd06ec9ff79fbca88d86ee94793ddc041d8b679e580f259ff1fb6fb07afd9
-2bddaec837e5c346bfde86d914d8ad46ffb68efe79f51afebf3ea5f188caff78f92fa7ed
-98227dd885e0acc64deb35f55ad907e9cb67d8fa3690f2a551fe0ff75db1cc06fb4effcd
-65de6fecbf8048a2dd88ffb81db2d8f256e488cfa5fa6dff95fcb0e57ad0ff8709fe61d8
-51e0a9ca22eaafc79de019d844d95ae5a7ed50dd1dc0ed80e59ac5e01fa4f70cb6ed2daf
-f83dff7dcdf762ff96f91ded3dd603d888e57ac7a5ff82f69d02ffb579fb94f61ffeaff1
-66e5c462f3c122ce96e05addb1e518ddaa03e05cbcff6bf7cef238ffb430f3a3bffc7ce5
-8afea445ffbe7ccfff17e5c09ad093c1ff7bf288eaa535edafff42f7d9b9fe14d34be086
-eb9308fec426f260bfed51e05ed80ff2a542edcb81e824ff6bf57fff9761f254afff85f7
-a5ffb935c5ff7cb6f96cd9ae2bfe61b9ed7add68cf9fe06adca5ee0cafe024d065c98aff
-86faa8ef3bdd4eed37d351c1e97df1cb0ed958e0bf4296fa02fcaf31e4a5ec44affb7af7
-84ff77f5c680edcb0ad957b8a5d979cdfe60d912b6ca28f252c1ee9929ea51abd986ff37
-fa4bee1cdc55d91fc1f8930bcab68628f18ee572f29cff5afbc067adfa82e513b3d826f7
-93fe65c7e4ab5cfa9ecb8ed80de147bce52efece3adfbf02cc62fb980fc1e02fd74affc0
-7af3d84bffb2fa45f416ffb028d29bfe55b5f59ffbb454ebc45cbffe89f87bb6fe93fa2e
-d647afed87ffa379edcb73d988edb879fa68ffc705d830cd4fd835b6fe3b9ef188ff19fc
-4aee0d96e581f068ffa5cf93e01db8f687fbc95ef16ad8a5e280d39dfebf95e24bd2fb5d
-d8fda7cd58affbc301bfda2ee09fed51ca9bff79fbc567d33aec9629f7d819df59f9a5fe
-86cef379d9bd7af65b9bed92e281f3affb66fe88f279e9b50593e49a2290e094d882c7fb
-5ef184c2ed3cd812e0c02f9cff22a2d813e5cd1de061bafb9fff62ce33d6f918a5ff54d8
-3affc912dcbb85ed9dfe8cf294fe86d0affb6cd893c9bbde86fac73bffafd847e40cff6f
-fbd457dd079ee024b6f50abfff34e0872ffb6dffaa7ae4993de50ff3d83096ee61a6f780
-ff0db6fe2bd2be389fe982db72ffb878bdff79ee2cc942dd9f1bffa50bed8bcafe48fa23
-d640e54ecbade00bd238fac7fe3ed2fdbf5afe62f33993e4ad32d988ff75f25dfeafdd83
-cff562ff569ff2c29bed78e01ed993fcb155c2e52aed7fdd9c5ef0a338f855d769e20bde
-62e51ddb4ce52df67410a0e65aa7dd9a1bfb93bbf39fc73486ffafc1fe7dfbcc88dd6ba9
-f079f6afc5df14c7f424ffbe7bffbb62ffcb7dfec23cd05bc1dd7aeb52f4afff17faa8f0
-01d0fb3ca5d495da7beb6bfdc658e0c161ff1ca8da6db7f190c7a5ed269cfc87e29f5385
-eabc78f0cc04d999dec019ffbefb05afd893cd7bf408ed4daae082bdfe8642ff0ec951f2
-6de707f298fe7aceaffe09f8d286fdcb72de25fba0c7a5fa54f67affaedd5cedd8ff34c1
-fe79f4c27aec61d240f1aded9447e42fd8a540ff5afbc74cd802ed4f8ff19854dd6bedd8
-4e93eda441e021d995f0a5fc44f6b1df6ad986d8b645bbe09355c2f30ffb50ffacf133b2
-ee80fa9fd0aff486fec652ff08f67affcf46d962ffc4f7a515e03baff67cff52fa98d84a
-93c7f448ff2ae66bd695fec733eecb09dfafcf95e7b686fa9fd26bdf39b9fb5b93ebbe4d
-e529b1ff91eeaf42ff29cbb796d2bf149efe86bf69b2ed04d340dfb52afe8dfa79e003d8
-f979f365f7ba79ed169af986fe9dc0ff60d0feafcb05a8fbcf1bd6fa86f46cff10e06dd8
-931ca4fb05f261fe87f631feafec7fd888e0bf03d089fb40d925e54cec36d815a4e494d8
-5bddb971f8afeb17b132d8fb7fff6cd8b625e586ed72f8db62a3e480daa5fb52dc198ffb
-af79f98dfc60f439ffc626dd47ffc187e40fdcc44393fec27bf210d861cef382d972ff06
-f35ffbcf3ee421fbd081f788fb6cffc859dd18cbb0fe6db6cb9cdc09e6ca87d1eb2ad8af
-44e927d9a51e83fa8bf239aefe73b6c74be5bb91c3f933ffb8ed7ed096e11fcc9bdd61d8
-20ff4cf831a1f55fe394cdafff7bd886ff69f7d33aef6efea712edc12c97f5cbee9451c8
-9fed33fec35ed30acab026ffce0ffac41ebfea7cf2c1d923e350d625da7dd8a55ffd8fed
-a51fefa9f577ffadf119a6da95e580fe1bbae44beda5d88be6b379f9acecaf45e05bd995
-ed08a5f7bfa2ff4497e720fe3db3ff9337fe62b0ff72f4c494f86afbb6e047dec485dd52
-eb09ffa8cb2cf24da2e078da4aff38f95cb7ff4baef27ae4a4cb93c2e580ffbf11fe4e99
-ed05e196cab588ff80cf2ac1fb9357fec6873d82feafed11d0b277ec9bfca5fe5af1b686
-e0699dfe9337ffb74786ffbaf56df1b5fe12f6cc80d85bcdfa9640cbb630e05dd1f93bff
-49caaced5e9afbc03bfb49c624f1be64c579f1aaff1ecd50d8e98639ed6adcc25af2bf91
-e078d5f29fe533c0e011dd79bbe53fef8cffb52dfebef693d879ed80fe96eabc0afb88cb
-a5d989c6e979dfc10cffb864fb17f051d926a9e668f2c76dfbc028ed47e00eb6fa99dd40
-e0add561ffdabf08d889ff65f8bf18f245dd6de1c24afd34f6bc46f1afd06ff9d894419f
-d9a54593e2bd3fe601feb671d7ff69f7d984fe9c79ed86b4f95693ffc20f86e993b9ff98
-d138ff0efebf2ba1e678ffb461fcd093f810fea5d061ee13fa4dbc1cc5fb58acff52fe0a
-c9a3d512cc68e59f167de043fb20d960d573ffce61ed19f556fe10a1f728fd96cd3fe8a9
-d69afe6ecafb82d8b21edcaf65fea5f962c3e644f287ff69f602f1b859f9a5fb44afd939
-e0a6d092bff51e96ec9fd87fcce45fdd06e5a512edb3fa04ffb8f75a9cff88f2c149ea15
-b0e225a9cf0be8c020c4dd02ead031dcafffc41df26de586df9badd651facd84f4c213e1
-a822e582d777eb2fffa0bece91ffd96eb5f27abfd989ed85ff73f394fc4cf3b7ff9dcd88
-e3a5f815dd3fabf49cd893e07aedcf6bd85aec87fabe5aff36c0eda349f133f9a5ff45ba
-d879cb9efc6bafce15bfd992e5a328e088d869ccf47cfe86fb61ff2e86b8ff79da5ffe16
-a9ff82fc62c8ff69e086d278eb2fc4dd6ad9319ef893fe85c2ff4ff2b568ffa1f569febe
-7afa6cf25ea5e057d801fe4df7dc69ebb95ddd359cfe7cc8ff5dd945fbc186d853fb67f1
-3baaed06c4e726a5fa5bd825dcb938b1e078d929ed5cfeb73bb3ed84fbc627dd51ff31ca
-b648ffb4f5ac2ed906ed84e0af08ffd892e079d886cef537ff01f133d8ff7aeba527fe4f
-d0fd74ee1ee59e19eb4fc905e59ec4f9d142ee01f389e6bf28cba1ed30b6ce32fe5cdf86
-b1fd18faa5bfdf7ad837dd5fb7d879fbc64be035d8ab43d8a0e02ecef977fea5ed7fcd86
-1afeb009ff92efbf51f237aff3b6e48a05f6afe529b6d99cf986fe944cf3ce39e59ef751
-fea1f908d193fa6cd804f287ff4acab67afe8def80affc86f19f088adebf7cff94cf6af3
-87ba5ac80cff4ff2149ce386eac187b91ff34dfbcc7bdd85b7c852ff79fab4c696eda9d3
-4bea10a5e093cba5d852f299fa43aff779fb9dbff227ffce67edc253f10bff59f494fb03
-e4af2ae692bffc72f393ff15afed930bd9b628b8d937f2e5be87ed75d81ffaa5cf97e087
-1c96ffa9d03e97ffcb0be052d861d0fb9977ffaf63bfd26de27fc6ff52aade86e756bfd2
-9be50ce858d004c0df1dd83ae5b7fe4cfbc85fe51ffc42d2fa97fda3c1e07ac6fe61d8ae
-4affdd98c4e070b8f437ff11f7a5bfd94ae42bff55f787ff6cb9fe76fa5aff2efb7adc67
-e4d286d81aed5093dbab0fd99739ff92e4a9cc6de67af151fec161fa0db2cb23ec87c1fb
-51c9fd83f499fb5aff9fc94fd932fba8e569d901fe4afbc7ec55dd71fed8855cf593ff22
-e5af1cc0ee17c6fe03edb523f19c36c1f51dffc495fe25f461ffc393fda5fa78f366ff70
-d97eed9f1af79fd892e7a522ec44ed28b6f93cafda22fba0c65cf93c93ff06abe896db60
-e12f9cfe82d87addaf33d9c3f23dd722d985e0a5c808ff970eff5ae5a6c3f76ec8fb79e5
-afd062c72aedbe18cba3d17fed96c8ed5cffa4d03ddf78d99e4be235d879e0af6b26ff93
-e2c448bfff88ed7bd8b26db9f825f1b714e8b0d36dc1ed7afe88e04fda87d8ac69ffce5c
-fbafe574d9af34ed79e088d8a849ed32d946e5c498c1ed1fd035dcb976f154ff7bc0dd83
-d873fe88d094fb55f27bec0cd981e6be5dedcb48d881f08dfcd00eecaefb0bc0fa931a9f
-df86ed61f7bf4decb66df0c0a4f3ba3cfe09e94aa3f356fe1df6a0fe4efa9bff29f7b119
-ff41a5e081f266fe9af626ffbfa9ff93ef06d2f9e97df2619fed963ddf2db6f410ff3ccd
-9fc75bfa9efe36f947acdd55f2aaff7bfa34f5c44696dd7dd80dfec068faa5cc4dfb12f9
-bf9ff76dffb115fb43acf993ff86fbcd39e0af0cf851ffa9e552d917ed6fe097d268fda5
-fe1bd3faa378fe6afb25c94daff5943fcda2e079edb7ff50fb99cfb41dfe88f8d040e02c
-cc63e084d795ffbb2dd886ebbf78d8b37ce062d96ce0c471bffb2fd91ae5c505c0e965f1
-14cb52c3fd955f8ed80ebcff18f8cf8cfecb52e0acee76fe80edaf2887dfc59ffb04b7cc
-2f93ec61df79e6b8f81bff58efa03cf2ba13ffbe9bda63e11cc8a5cd79bbd891de63d84d
-e10dabfe86c9ed79dac403bff77effa9cb09ff30deb849b2f0922ae0c012ecbca5ff87e0
-61c7ff6bf353ff3acf6bd8af0fff7be16dd824b0fe83fb93ff8ff25edd1ccbef72dba843
-ff0ceebe3bf4acfd38f09fde7cd187ffaf79fb58aed886dd88eca540c0ddfe56fbcb80d8
-ac5bf2679efb9362c0de08d840e2b8f39417eb79d4f782fbc20bd0afff108dc1ec85d18b
-e0adcf87dd5bec31aff183ff56f026dbff5df707ffafef6cc6ed5ed92eb7fe399cfb932b
-e4bf3ef289bff676ed94dc68bbff7df29fce53e502efaefb1cb0d924d786dc81f029f5c1
-4cee9ffc55ef79c2d94dde12c937fe80f97aafff05f9c988d965fecf8b0ec7b659fe04f7
-52efc350b9da94f332fe47fa1fffaff620a3edb33bf56bfec20cbee31dd6ff2ea5fa93ff
-82d85affc050ffb55cd941dea2fa439bd8fc31aed942fd20f952ff79f693c2fe3ed094de
-8afeaf35c79ce6bd2994fea525f699ff7dcbafe04bebd19959fba1e55aafd013ff35f8c9
-58d841ff86f99ad17f3bd893ee74fe9ff403feace279dea8cb04c2dd93ff15a7f67bb7ed
-9bbfd94de03ac1e59558f19ae5209fdbff72f7ce83d893e4a435f4d520ff73e092d097d8
-67e07ace2dc786e094db29eda5ff7eefa55fc5f279d060ef0de573dba5ca2ced99ff74ef
-67c1f26fb6ee65ffc57bd885df2eb5d001e27ad86bec06d776e688f346cb73f2d33edfbe
-77dc59ea19f685ffa561feafd821c2ff38f1b681e0a509f593deb62dd945f2befe67f845
-e5c25ab1e79357bfff35fa71f3a534e55bb8e86ad0fe48fa21a2f5b8fb8861fed22cfb74
-bcec46b5d826a9e64aff12d8fe9b63edafcc0ef260e47cf10cb8ffe779ff03ef53d264d8
-39dd4bfdb8e64dd920fba2cbaffd25fa63f4af11bfe12bb5fe24e54bcdbe06a0e75cf39c
-c1fb6cff9ff321ffb7fb5ef810d6a3fb86fe5ba7f881ffc712fb93de66d81ec7f20fed79
-fa6b9dd979fec74dfbcf62ed1ffcaac0ff8728db9bccb78a17fbc631d8f8169cd892e052
-feba81fad83dff029fd881d0ed880d9ddec318b1e052cbf984fb7cf294ff68edc188b848
-c1ff935be6a5c1fa2fffc3a0dd4f98d85dcfa7fe88f67bfbc298d20594ff86e4c133ec4b
-9ae08dd981d6fd5ca7fbcc7cdc94ff86f4adfa37feaf0be544edc652afdc934aabd984b8
-ee2cafe014dbc002e84f9eed86d04afea4ef6db7ce93e049d4f705e5429eee79a9ff88d5
-7af05a94e7cb5cff08d9f3a7d477ff60c5afed64ff1cd774eac72a9eed86c6f169e5aa5a
-ffb3f33dffa5f780ffa936d803e14ccb18d4af33fbd984e107cbf73afe4a9fdb9357fb6e
-f51bfbbaf745bfdd17e1af24e877f4c13af7b26bff7df7be56ee1aff4496d8ed8801eb55
-d016d83fdb71d889c7f182d8951ac0fe67f2c6f438fec869ffce64ed7aff96ccaffc2ed8
-6df1b938b4fb4cff33c1fe88b6cc86f9d81ce8c531dd4fe20bc7fb14a6edb6e5823afa4d
-edafdd87fe43c87fed9ef70d96ffce5fe0aa43fe14fbca27e462d879e15ada14c5f395ff
-86b6fe9afa79f0b024f29efab686de81bfed09c6e638b6cbeda53790eb9c6affbf5ffa90
-ff4de0a8cd16e7b7dc02d1ff7acfa5c0f08632c6ff95f68cfa7afe96f01be448a5ff59fc
-aee034d8a10e8ee0a523e09741f9a0d04bed37dd61e4b5ff05d99be580dd87f3a51aef52
-ffaf5dbeff8d57fbb0f686ffa562d9f97e31a0ffc0afe0950cf72cd993fbb639dc61d0f1
-76b4fb24f4ba8ada7ab6d88ffea7ee2fce98ed9351dd3cc8ed61d841bfdb67febe41d053
-ff14d8ff69b9fc79c1fe8260d8ffc20bfbc53d93f2c635bfd986f17afe9f4993fe9f36b4
-f564fb09dcfea45ad929e050e9c227afff7bf9cb15d97bea73fb5af6c4ff51d0fd7df1b1
-c51efbbb93ff7cf2a2448ceb86fe2cd107e754bfd981dc14c6f42f95deafd1189ed93beb
-d0953fc2fed058eb1e86fec19ed067f206d1fa8effa84ee00fc0db79ffc753eb36f24bc6
-03b6fa86fe61d0fc79f7af11b7f586ff06acd77dec8bdd7beab427aff22eafed11e0fd26
-87e2af6eedade007a5ed9e11fb30d85af3c7ee46d9c3ec20df93c8b63fd2f27dffa5cab4
-6aedd252ddbb66ed97f72cccafe08643a7e99353dd09ff87d974e026d4b60afebef8b047
-bbf268fec396ff41faaaed77d8acfd03f369fecb6cf2b425ffafed8c0ede93fdce44ef5b
-ffa9bfe58654cb21bff98bfe9952e530a5f785ff9dbefb93e549d80cddaf1ebed37bffce
-2bec94c5e54bf317fe32f6c26efad27ad8ff65d0ab94caf248fece27fa75ffd750fec568
-eb84ddaf26be84fb895afeb951ff7bf7af18cbbe46f70ffebe82fba430feaf3ec7a5ff08
-95feb6fa16bef7adcc6ce555f19dfb69f7c961d922e0a5d87ddbac28ed6de0995ec1ff3e
-e561d885e0b847fec27af481dd55cbfb7bf163a5d97fe018ed4e96ffaff486ea37d843f2
-ca7deed406dfc11ff061d97affa5f56eff9df028e55093dfad5af970ffa5c995d4af4eed
-a056e59a46bef93ff3679fd984b6d951cbb686dc7ae1a5c0ff07f890ffce0be1adcb79e5
-24d84ee09efb68e881d89a43f20ac1e086d0ff79da6bedcf27d960d2ed8744fbb727feaf
-0ebfeb3faeed93ff83f511ff4cf687c8fb0dd1fb25a7d07bf795ff22a0e79305e05ad616
-feb466d92ec7f920ffa4cb7cfed814d941dfafff6ad9af1bfbb47ffe9f67dd94d019edbf
-34c4e33dd861fea4c0fa6bfec31cbbcf2ce360fb79ff1dc4fb02f7a8e87ad805beff1cf7
-5fff96f51efe42f329fb4798d86ee44ea5ed6dff14fa9ff293fe87ed34d8a0ff36f5afce
-8bff4df5029ef122fabf64e57ef29b2fffd77befca62d8ff85cb97ff18d658cd73e4c293
-d8b759b3ea79afed6af2b52ae053cdfa30bbf799ff8ef0c041f7abffb05eecba3bfab734
-b3f57afe9c03c4ef81fe9fcc4ae139cdfa40ff5afba551fe79b3f282dbaf44ed09d73fe0
-9ee879fb9ded0dd8be94d987dd74cf21ffb3fad558e0a6ea10d569eba0cdb993d2afed39
-fe95d8f92cd199de75d85bd010d96eb6f804bfe27ada60eda9d970ecc962e0b03bffa5fb
-3ec0e2a106dd4da5f6934ee52ddc6fe086fa35fe9f3efb19ffd927c4ff3ad8b708fbd680
-eebf7aedcf52d833e05197e6c40186e59aca84e079d3ee6dc1e04bd0fb9328dd58e672ff
-b7f371b3e588d86dcae792de0ac2fb1af8cc90ff72f288ff57f1b144c6b6f237e561ff4f
-b2fe93c8529c7aefb543c189f2abc661fb05f664ff7be0af13bf81bdf241c2f42eff96f6
-4cffc884df9554fb1efec02a93feac42fbc186edb60fc788ff6dc9f986ffc615edcf7cf3
-a1fa4aefa5da6adfc0afec6297f5719fe083ffcb945afeaf0fff4ba4fe83faa8bfff2993
-f3d745ff10f355fb08a2fe2489f0b75fe3bfa5fa12d99524a5e00fc3f62df1af14f862ff
-529ee59459dd7fd8b420b7d801dc93ff865afe9fef12c0f22eec6bddfecc2bfe86fbd04b
-ff24e580dc9be51dd054f5c7fb49fe88e763afcc80ed67e4af27fe61f2c3a8e0b15bfac5
-13e4d39c16fe52da93e7b71fed4fb6ec3493fcaa39feb401c5afc629b6f909f35193cee5
-43bef913f24c88edc632df9ac9b1dd1ce3c10af279d2fd50beed87d8a5d892e9be61d8ff
-a52ef785ff4ec1ee5cf7bbfe85fb6aa8e084ff9cccb686edba6ac7fe29f63afba2f478fe
-63ea16deacd06cc9a8e079d9b6f816af67d997e634a3e07ed859ffc152acfa8ddd9f3e93
-d9b21bb8ff03f9bd37ceba78eba4d41bff4088f79bd879f15787f4d87be56cf343fcd986
-fe79ceafe071d9c05bed8efd6dff95e17fd48ad8ff04abfecc67dd9fc1fe1da5f260f837
-fb5ef3679fda88e560a5dc9b34fb51f929ff4acff79653cceb67d60cdd79b5d288eb51da
-40bdff09d44ddc31f3d31fd8ff05b6eda5cf87dd4be0c5a5befb8ef424f93dfb5afea54c
-8ce545bcf40ec8affe0af893f1af34fdce6bef2dffb6f16de5a2ed7add6ae0a5fe0afbc1
-39eeb57ce6d007ea3bfea5bfff38b6cb2affa4d866afd038e50df354fa22ff86d8b842e6
-15f154ff65fb32bf7fef8724fcb933e061ceff86d879db86d893c9fe4cfb1ebaea12fece
-93df7cc79fe4861ec1e514bbfd93f29cfb32ff01aed88feecb5ed995ef7dfc5a99fb4ca4
-f27cc95dfe0fc3ff9a22ed51cd41c2e485d993d308f1b7ffc4fbd686ff77ee7bddb741ca
-87edb717dd84d860e00dff4dfb32c69cfe24f284d99e5aff6bcbfa53abff7db7cc25dc92
-de7ffb99c504fabd16f59dbaff8dc8a5e89be41cf4cb81d99ed021edc39cf7d84ee0afd7
-77ef96f6b648e502fea5f512ff34b5ed9dc2ff6ff2b676f405b6ed39b1feadfa84f2a43c
-e05acf6ce09ec2fb33ff1ba2f977fe27e4a5c5ea77c1d963e032e883f1af3bbff988ff97
-f77cb3ff1aed7adc71e027849a30e550d93bd861ffa4f70fc469ff50f5a5fb8fc9a7d393
-d9f740afd857e543f6d680e01098f1c746d8f26be567f30aee59e977e079cbff60ed4ad4
-30f167ce51befb5aacfe66f986dda54ae51eb6ff92f453ffac07d87bee8ed1bc42c2ed85
-e476cf27e048afcb2be060c6ff79fbd05ad93bdc68ffc979fe19f6af43f260e579b8e336
-eb93d0be40ff0fb0fe22f796fcafd950e593da76d832d808e04bb9ce9eff43f99fbfe2f5
-c77df289fe9ded2ce065d4fb94c0e2b201c138ed57f912ba87c1ef79ff97c9b721edadfe
-d92d93fb9e0ffaa2ff4fc5aed132fea5f24496d87dfea4d993ff05fb79cf88e00fd734ed
-61febe83fe7ac911a6e93bcbfb56ff23affc63e56eafd85cfb92ff7bf9d865ff86f8a851
-dc9a0df38cff98d807b9e795d884edca7ed891cafe5ad8af17fb60f190bfe081ddad49d1
-179fff6cf60afe5ef26ffea4fa63f532c6abcd15fe5d06b0ff20d2b302acd88afeaf45ed
-2280fe93d9ff83e07ccdff61fb1addaa15fa86fe9344bd86c0e372dfb2c634cea5fb6cff
-9ec720d4afea28e1c21af94daedeb6f020ffb8f279ffafca0bf2cf43ed60fbd086de6bbf
-e581c5e13bf29eff2cfabf04ea42d0b609edacd91aedca31e8c062cb1be55ceda831fa51
-ff25a5ff11fa47a5f17cffc29db7d866ed2df261cbff7ef9c027cfafe086cb95e5af2ec1
-e387dd82fc67ed93d8a3e070dc5df6c5ff52f216db9ec5fad83ded61afd028f4ae33d893
-e951cbec69d95be5c6f751ff19f454ff81ed89d91fe052f186f85bfe86fbb359ec78c4ed
-8639a2dd9349a5e39a3ee8b959afdf93d8af47fe1cf79536bef968b8cf0fcbb554f1a7c7
-9cf581fe9646befd5b9fff7bf9a5febc7cfb8af8cb79dd87bee26ded9ac0dc05cf51f33a
-f707fe93d09ffb02bcea6bee99fe42a5ed1dff48cff29302fe53eb1fd8b03dfbf043fb9b
-ea8635d985bfe571f35d8db6cca0f71dfbb766e097fe5daffe81b6ff37f4b401a5e588d8
-a5cb25dd5bfe79f7a9cd11e171d9b601c68effbc9dfe2bbefed46df7b5fe22c8fb6df69f
-fb16ff30f098c1db79ecabed18aefe89f07dfed27ae05bee2fdd51c4e87bcdafe164d825
-de44edaf25db4ab4f00acdf443d9af2ff386fe96e584d979e1c14fff3dabe49339dd58d9
-79c7fb7ad68bdd9f56ffd9a6ca97f679ffc160cfa9c716aefcbf97fa3bb5ff2bbffd0eff
-59bfe07ac8ff49f105c4da3af308cb9fd36dffd03bfb62f985f09ad804e1bf6ced98bfff
-39f6a7ed3fd00ce05cccf28c46eb08d86bdb86bddd2cd885cf7be088fa60b6ff0ad888ff
-d839dd50d924a1f71dd86cfec1a0fa1fff41f30bfb86f193d879febf82ff88c1fe6194fb
-66d0ff6de04bd82bedafff45aeda80edc963fecb86ff09f4b724de53fa11eec37fbb4ef2
-2cade00de98723f75affd04ce024c3ea83d0a5ec53e486f23a9df008a4ddbfa5f673e4a5
-d886fb22edbd7add95ce0ce064ff86edaf33ff4dfa2ea5dd81d869fb78f594faaf13dfc0
-a9ff96f351ff04aaff5ef23df9bf05c5e728cc9efb5ab793f479ff87f3c64dff88e5ab13
-d970df93d883ddb2cc4dff0fe54ccdf313e442a5ebb71ee5a10ac69ef96affa41dcb99fb
-22f8ba14f4b02bf2be9fd84fff87edb1d186fb29d8fa7dd3fe6acb95ffe47cedbb81f493
-ffa54cfb06f77dd995d879cfff67d4fa8650ec2dffc062f042afda934afe1ff25dfea0d0
-2ec74bfa8cc3df78d1f360fe1ce593ddc03bd86bff82f75ecb41c0e07bcded7dd695e458
-abfe9f51fd65ef40c2e625cbbc0dd6b66de5afc73cf886ffbe35f661ff9830eaa5c6b687
-f765a4d975fbcf2affc782feaff136afdd80c7fa70ee62e5a052d986e095d055fb87e66e
-d8a542ff35aee09a0ae6af3fbef930af6ad9a03be70cd978eecb6ed860ce34fe13fbad2e
-e7963fc2ff8dd89b1cfb93bfff6df8c39ee07cd9af3ef7a7fc93bdd91aaffe9307c8a0ce
-5af02786fda0ed51d825e591fba52dfa9f49f50efd8ac3dd6fedd087d983b0f779fe81fb
-a4f83cff9f06ed95d3b65be89db8ed17bffc7ef46afbd026e0b83eefbb7add9757ef30d8
-5bfccb0ff254bddf09d87acdff73fa5bfe0eedaf2fc1f704fec39dbff56bffb965ff93dd
-5aedd1fa06ffce6cfe5dd51aaff193ff85f2a7dd6cedc978fcb0ee17db79f2afd74ce90d
-e331ed5abfff2cedc179e514f160ff86eb3fd9b2ef45ffbc9ffed8b404b9e4b1fe64d918
-ecd16de5c587d9b624ff39f71ba8e530ffca0dd851de32ec66e086cdfc77f428fbce02fe
-51caa5e047d507d93da2ff7afed39018ff4cf7d18bdf7aecbf88e894fe3aa5ffaffb32b6
-ed20c7afe069d4ffa45be47bf25feb15d847efcc1cf176fda54a95edb67add88b6f987fe
-42dd1de2c045c5f8249fdb0cd876e55bfe35e160fea3d190c8a8fb05afd883feb65addae
-d745cf9ef77afe69e488f311c549f67bff8731a0f17bffb586fe1ca8ff36eea5d0b89bc0
-ff79f3ba62e38ef2abd096c719fa59b4d852e079aff27bd986fe6cf787ff93f2bf57ed01
-9bfac39fe5b304ff46fab621ff5dd979cff28848c5e585d4a2f2429df68f1aedcb93d821
-de92fe80e56eb2da9ac912e2c139c651fb1ff3ca30e19fc7a5fb529bff935fc0e57dfe54
-f9aecfa0ca80f2c42ffa61ff78cd95f74ef30ad2ff9325f6a5fb0dc1df25d8ad33d984ec
-a5c0e050d5f8c111cebe3cf25ccaed65d879fb6ded5bdf47d914a0fa3bffc101fe4af2bd
-99ed22ffa5c3fe43c0e322eb38ceafde52d81de086cbaee450f237c069f2bd9fca79dd85
-d528ed9e18c1ea9613fe4be687ffd830c9faae37fb6aff79cf3ec7a8fb3af752ffbc83fe
-86e5a5c1ec9c56ffbe0aed74d0afed03dfafff4ff1b1df873af303e6be1194edafe014dc
-44e46dcf91e39f43f2c969e07aed62b0f977ffc299fb57ff2893fba94be59bfa7ade90d9
-af40f998e54bdc07fe93f986c8eb7fd8a56ae685d86aff77d3b764f10f93ed9e61fbc195
-f1119fed7afda5f92cff6dd881d7fe93d861ed15fe4ff6b8fa68ffaff75affbf66f5b807
-c05ffcb64edf8fbfec4ab8f69aff1fd788bfd88ae928d8ff15f64a84dfacd079f75afe2e
-d964fa86ed18a9cb3197ffc193ff6ffaadff8651c2f385fbb8ff31ef7ac6eb6bb9fe39cb
-95ff52bfed08e542afdd8bd1e919cbff85d85bed29fb02ffa1cb10c1ff8fcd7bd727edb7
-4bfb23f0bf43fba5e512dd46fbc98de4be30ffd8af48ff60c0fe35b7c743d888c1ed0ffb
-ac20ed3bff93d8afe19b04a8dc4de02cd877e0a5cb79d9ee93ce81f472ff14cca6db07e0
-86f1a5fe03f443adf2b3a2d993d6ff11fb38d995e082bdfe89c83db7d5fb5ff5d81ee062
-d1b427de49d8f9a139d89c1ba6de60ff25b6fd02d9a1fa21c4e82e95da80f4cd15f14cae
-f3953aee0dffa5c79ee177de83feab2ef361f697ff69a9e093d27ffeafca2eb9fa9bec87
-34fe4fd0f58c09ee86d3a5e070d0f367ff95f54aafde52e986c7a6ce27f94287eeb6fe7e
-cd87fd9ff305fb31ff9e48fe10e529dab8f163fe84fabe52c536b6dd79ccfb7b4dee64fe
-33b7c995f260ff27b5eb0fb0f697fe2d88d9af71fb9eef44eac369f5b61fd0ff58f2b6f9
-81d892dd81d8af76ed80e1a564fcb85affaa61fe76c9fc5fdac26abad042ea4cc2f735f2
-51d9bf9ee118d840cbf709ff51db11e07aed86cb5aadf7d67deaa462e0c497fc1bf72ffa
-b104e5ad17d89efe78d096ff5af377e6a3c3ff2dd745f210edc441b8d093dd69e1bfa5d6
-affe943b9fd825e2469ffcd881ed5effa40ee5b728cb7de488ed43afe486d2f44fc4dd5a
-d86deac1ff0ab9ce58a9f87ffe9fcd79fe6196e07ed853ec0ffb51f23cccff17d84cfed0
-7df3d61dc7e587d99f2de379fea4f579fb93ff64afd089e576ed42c0fe86f2ba82dd9eee
-88f759ff41f51effc106afdb1cfeb83bff4ebfe181d9c488fe81cbfb5fef26b7f91cafe0
-06fdc168e085da93e494d8a56cff87ef45aff319f83efb5286e9b5fd7af86ac3ed8a14ff
-97d922e0c28eff98fab559f86bfecc06f9bf67aaff79f216ffb14495e0fa2affbf14d13e
-e208edabe7bc06fe30fc9dc5abe597fa67bef486efbe05e347a1ed933df90cffb886f206
-e033ddac15d9bd1efeb609ff92fba65ee0a331fd53cf2ec7a5d592d9a1d881dd95ff68f2
-75cfed81dda55bf29b51ed61dc3bbce07ac7e665caf17dd9ae49fe0df35afb7aff36f8bd
-1ee55fffca7cd885e099c4f201d844debfa5ff2dcbeab549b9f178fb3cd1dd01e9c619db
-be7bde9f21fcd83ae09abcce7bf8c44d87d979e593feb892ffbf3588f7c96dddaf64ff4c
-cb13a9e42bb1e03895fb86c9ff6ffbbfa6ed6beac451d394ff59ccf36efad86aefc661d8
-23e9c203fbd179e887fa62fe21f35ffc66ee27e54accafe213a6f829fbc20effba21f793
-fea00cffa441feab33fb4ced97d6bf74cd1bc762de50edd080d99b28fb4cffc125d978ff
-adee960ef259d9ab61f893fb2fcf9eec5c86fe6aa5ff9f2ef151ffafc67bfac032f54ee5
-20dcaef194f335dc64ed56d673fbd84ea4f483cbf122e885ffd079fb5ac5ffb75ff2a516
-e02ad94ed0af21fea5f768afe283b6c927ade045a5f883dc4fffb072beff19d8a4d97be0
-9acf0bc59ffe70bcfb3093ffc959d872ebb378e5cb7bd855edcd86f2d275dd93d0bd88fa
-31f694ffa6f4b99dfb6daffe10f5c3a1edb577f550e4c05b88ffc579e680f4d009df61b1
-ff50bff7d82cd0ee4ccbfb86d870ed46e50da5fe8fd884fb6bff06d45efba1cb26f997e5
-1dbfffd312e340b8d85ef3b752ec9dd98c1eecd43dddb982f792ff7bf7bf63d830c1ed08
-fb46ff98f480fecc16ec9af26ad9f545afee5dff08edb139ffacf43cc7a8f687edc2469c
-f392ff38ccfb43a9ff18f5b568de2bbdff0af557ff13dbb759ec28e050d901c1e52ccbb4
-70e560cf0ce292fea81afbd237e0b51efe3e88ff9cc1e586f30ba974f3ba8be079b8e412
-f693db86f1d050df01eda5cd52ec7de0c10fffa5c743adef933987f996fb79fea1c832fe
-af09ffc1f778affd67fecb52e001e538dc93ff88fa54d199ed7ad851dd3094ffaf3acab6
-13c59fe18eca86d653fbbd6cdb7de057eb03d95ffdb1e807d57ce4699ef2d35de0c239fc
-97f85aafe5c29dd8b06efea0d0bb82fa8eff79a5ff86fabf3bff94f265d831cceaa26df5
-86fbc2a2bfefad43fe1cd866cbffe09c45f80cfe3d9afeb825b4ff6299ed7bffb92fe48c
-befe3fafe586f265fed96dfbb6edaa58d9b104e06fde88d3ef823b9edc11beed2c98f3c1
-a0b8fe5cf00ee69fb9ff24afda10fba5c0e370d1fa79ffd861f926fe3cf69ce07cc9f127
-fb94ff8fd17be01dd862feb8f724dbc00893fb9c63e4af11d889ee8640fc2af2ca3fe007
-feaf38e84af1d356dd32eda5d653bffe86ef9562fac906d84ae45bdc27e0c57ced91e4a5
-5415fbd87fd887e7c76ad99fe237c8fb1cafcb6afe9ef622c68ffc76d82ed8af02cb47e0
-19d0ff29ccf793ff1bf84898e5c6fe5be879ccaddf8846fb62cd9dc7accf29de61caf271
-e8b362ff57f32aa5e05297e586d879d86ceb2dfe13a4d864cc17f24cff9ef186dd9844a9
-ed84feafe732bffa7dffc29ffb22bfe093dc7abcfb6af179e4c19ec9b60dea94d180fd07
-f7af20d15affc03eb1ed96ff87f693ff79f7b04bfa30fec3b26cbfff42f4a527f250fc81
-f4b959d8f843edc15ad780e9b61aee52fe79f698ffbd86fe79beed6abf4ab6d87abbfa24
-b488f2afff41fa0bffd880ed18f539ff7dfb91f6a83bfe86c6ed0cd886c5fe05b9f61dff
-aff20fff94d0adbff44af9a5d981dfc139acff26f5b6ff60d140f25ab6ed22d94de03cd2
-a6ff52f362ff1ba5d990d85aff14fb66f761fe1be460dd79ec99f6b711e5a6ff60d031d9
-14cd4fd503dcbf9fd078edfaca1faddb6ccdff82eaaf08d888ffb676dcac11faafff4af9
-cb85dda5ed39e56bf0af5af39a3dd8fea5e536f1cd66d8fb45ce219fe07bd0af26f8a5dd
-75e558e049d815ebc555df2ea0fa93f15f9eedd37bddc03f9bdfb44bfd38e686d06fe333
-feaf6afacf77d85bd812e093d97ccbfe86d693f181fe67eb87d802cc93d4f445fe1fec80
-d989d8a0cd7bf3c39bc0ff38e04ac7fb7ad820df79eda4fb7ef29bfb6dff10e5b83a63ea
-9df08bfe06bedd3ccbffa640dd0dee86ff88d93793df9e5cffb614b8d25bd822ddc10bc4
-e89410ee60fba10cffbf79e48fd9f94fb6ed6ce6b84ac1fe85c5a4f287ff79a2f790ffce
-4bd921cefb8931fe4e87fbcc61fac781d960ff07fb93edc01cecb70be586ed8efb79f728
-ffa505dd52ff0dccafc717f873fe84ed36b6c69ccca9f847f423ff37dcaf46fb2bafd886
-fea05ef093f789feaf55c0e039d85ddf94f180ffafbd4bff33d455ed5eacfa9361e5c09c
-f95ec72bf2a5c2f10abfe62af396fa86ff9dfa80ffa6fd50f2ba79dc81c6edab50f502fe
-5a96c8ff34fbc37aff971dd8fb09afd93dcce504d973b8f580ffae41dcbfa5c2ee9f29ed
-a501f794ef9fddb545bb75f9c65bff9bfb31c64bcda5e067c6f06feabea5f433e5a0c0df
-5ada9fff7cfa5fee2fb8ca9bde82eb87fea6cb93ed62da03e4cb31d951cb08d2ff25b3fe
-92f536cc51d826e0fbcf86da7afac497e123d3f32cfb67d0aafe98d357ff79d9fe7ace61
-e044da07ca4ce032d96bde86ffc924fe4d87e093d7b67cdbf4188bdda506e236d8f29361
-befe77fa69b6fe5aed1898e066c7f77af25fe409d5ff82c5ea5cd820cb79f697ffc44293
-e2af4dccadf19efe1ab9fa429efb9543e25efe7af22db2fa15d651e90dd86cff78fd56bf
-f26bd20bef52f915ffacf76eb6ff83fc9cf46ba5ee61c30bb6ec89fe86f47008afec17e4
-b11df287fe78b3cc93ed1fd94fe079ea1ecdaf50b2f293c2fe7cf58cf1a1cf93f91ed048
-aee492cef71cff3eeec337afd7f152cffa88f3be4eb6f6d52fe09ced35caa5c0fbd33aef
-0ba5e01aff94fab678e051aafb8fff55ec2ed80eefadfe16d5f46dfe01dd6ce584cfafda
-13c9ff7cd99bce4fff72beed81de8ab5fb97c2dd03e3a51dfb52e293d883dfc24499ed1a
-bfe724dc46e9c986d8f9a5ff63d914dfa4c798f567fec17effb741bded0eff4bc2fe8ef4
-02fbbe9dfd3af8d708fb35a6d863d925fb58ed7ab6f69dfb64ed33b6d89bcb6dfba2ff4a
-93fe9f5fe06a9affdd3e93f0c21aaff861ff2886b2ff79d8fe69b6d058c847f31dfec92a
-e277db93feb6e568d87ded9f28debf95c3ff57f32eff60f2ad2aedbf1aedaac3e53fa5fb
-2ff6ce3de025b0f779ffcb8ad979ff3bf4b467fcd379fb61add87bf9b517ff3c7be52ad1
-95fabf45ffd933d8ac45e861d99fe05bd881e0a45be77cb5cb42ed6ee4bd69e69abfee1a
-ffacea76d613ffc63cd807ddafff86fa5af3b00de07bebc611edc025fdc51286b9fe5e87
-ffd084db93d7ed49c2e79b44c2ed2dfc83e090d9af68d8b0fa13d27b46a5fe30fa4fb9ff
-9349f838aad988e491e07ad1f9a552fe64f9058cfed06bc5af7aff86f264bfd844affa2d
-eda2cfbe22eca52fe1c596f259ffc082e296f2bf9efb79ed5aa7e47a5bfe76f19ec5fb03
-f787fea5f619faba34d8ff68f893d81390ffc456ff83e4be48c5fe89e2aa70f286fea453
-d415c0e02ddac05cf929b3e062ffaf4cdcacfbd803cce6a545f110e554befa9326f9a9ff
-75d8acf00fff61f59aff5aa1f287fbb8f283db89cbe565d1ed86e0bf0ffb4cc824fe4689
-ddc386e080d8f2991de2ff09d94fe6a5ff39ed95e565b5c707fe6dfa7acdffaf41fe0bd8
-af33ef65d456dd0ec2e032c9fd23f2ce86e00dfb3b93dbb732c74ab6d877cff29e16e0a7
-29ffadf03ea5dd24d8539af79330d85afbcb4fda27caf289ea61a5ff84fe95cca5ff86d8
-80cff879ee5994ec9f2bfad97afb8dfe9f01c5dc85e015b2f63d96ddafd032ed0bc0d94a
-e435e005d05deca308fba71eff79f693cca7edb9a1c1ff0af6b636ffa849ddc05a87b8f1
-9cc818d6b987fe12c1ff79f156e5aed90986f293c1ed78e593c4fe2bf68efeaf52ffb683
-d89c1af6c094d6afee70ffa5f186ed2eff9446feb87beebf7ade63cefa7cf58efcc60abf
-e594ed01a5ff8af8b437ff79fbbf4eed1fe969d954f536ee0bbce42fcbf943ffc166b9d8
-4fcb37f1aeff56f36bbee15cccfe8843f286cba7f76cffb3c794ff87f725ffc152eac55e
-d92ded53ff04f861e57ad86aead060c7f779feadf8d232fe6afb79f826cfa5f334d88cdd
-9a38ffbbe929da529fff4ff202b1e07ad86bec93d901ef51ff
- >
- >>
-
- /Yellow <<
- /HalftoneType 3
- /Width 167
- /Height 167
- /Thresholds <
-1ace5bd99808fbbd63fab215e074d886dd9828eea2ff863995fa6ae423cff0a306f59afb
-45affe9cfa05f394fd60ed1b98e72da3fe8ee926c9e51adcad0ec5ec21bfd810bbfca5f2
-7dfea0fb88dd9ed00fd833e5c8fe65f72b93e1aa3bfb58e564ed19e05dd1ff62f4c7ff1e
-f2c5ff15f19801fa47f12daafa20ff4df318acdf83d29eff67fb1dafd979bfff4ff7c73b
-de4cff29f57aff6dfba2bff384d188ee6dff5ef20bf9d8f686fe33f5afcf4beaca6cfb9c
-f32cfe01facb64d915e5c6ed06d97cf7a943e0b0c730d6bc67cc7ad5be67ca26d8a5fbd8
-79c7ed56d87dff4fbefe69d6fe79affb69ffa0de4ad938d852c807e862fe79f4affe8043
-a5d986dcbe23ff9dc8b72cfeacca82fba327de9332a7d9933da5dc5bffcc8ade7bfecb6d
-eac0a5d894fe61b7ed5aaadc91c8ff56f023a0e0039df48dd885db59d9afe042ed17aaff
-47fcacc721cca5e469afc0e076d867ec86ff9d1fbfd845bad06ae9b57dfe93f6a551b6ff
-a0ed5ac7fb70ff7de586f4d92bef58ff9ff287ff37ba5dff86b3fb0ef293d987b0eb51bf
-f145d0b234e686ee79ff85f691f0a5cb19e2bf5b96e9b6ef13ff4dfacc7adf0bffd98840
-edb50ae8c178fbb6f76ffeb5f87fd8aa39ee62d8b03fd9b461fb28e63fcef62ec3ef0ef7
-4a9ee586fbcd81fed158e909f98bfec11c99ff88cae666ddbf2ff6a5fe79c1ff40940df1
-acfe17da33f0adff7ff88beea5c659e433d64ac1fb7ace3bbbff169bdc20f250ff0e97fe
-b5e01cd948e2c290f7cf03e03bcbbc61e232ed09b9fa2baae081edc15afa0dcdb4e01fd9
-5eff83f7ab3cedc21eff87d0a5e46fb0f651ef6598cffa61ffd07bfeb004e151d80cd253
-e025fbc0a0fe15f799ff06ef96c790fab272aefe7cd886ebd012ddb75eed32b1ffafc665
-d03693f8d252da339bf1129eec60d83ede1dbaedd6fb9e45c1e47ad48bdb42d80ce04cff
-19f888b7ff84ec1fdd6ce781d0aeea5dd289d977c8e68643a6f784feaf0beb45a7ef94f5
-80ff9fc4fb75ff5dcda1ff5bf704fea7c796fe30acfb9cd028dc55ceff7cfaa6c84bfb30
-baf11ad893c6aff714bfdd934eed36d9c495f183e587ff93f27be65dafe486ed79b7d646
-ff52d809ffd822e243ffbb76fea535fac494e48626fba5f1afe34aacf285fec078fbd87a
-ff89f295fa8f51af3bc5e87eb1fa55fe6cf487fe79cb9fdb6bedc911df9cf388fe0cf44c
-fc86f6b3fe3beeaf34fbc1ea5fb6ce6efb9cbffe53db6bd818ed48a8d892dd84e61ed988
-d379dd3be560f3c66ded7bfd95f2a20ad847df6dd993e05ec2fb79ff32ea5ae0a42af5c2
-adf867ff43bffe62ed1cc94ad909f4c84cd832c7fe6ae2a1f280edbe5cf99ccdaf29ed50
-c1e0931bf247d7ed54db14ff7cfbc60ce05bf4b23abde509cb5ae064c3ffee93fb61ff1d
-c4ed06cda5e73db8fb2ebefe4395fbac56cab65dd993e0bf35c5029dd87bfea3d08910ff
-d927edc56add88d229feacf896bfe51fef35f478cd95fb40f49aff81d9a34dff02df51d8
-34c6fb88f391fe05f57afe9741e5a0d486fc80ffba61de209fe588eea428dcc0a9f6bc9e
-ffb77aff93faaf27f3be12b9d03388e9c166f179fdc68ff778ffc0a4fcb67aff98cb5ede
-309eff93d81fceff9350f79eff17b6e52470db03d9b7f2975ebeff27c79ae486f17bccaf
-f238d0ff30f9d578ff2497d9ffaced61dd0ae04bf2d59651faad3dff17f664edc25bcf3d
-ff69fabf9cc2ff50ed6cdfc21baff012bfeb93cb86f993ffb668e02ecb61edadce10e8af
-c806edb71eda4bd2fb84ffc94bd812cffa964ffc2de559c635e01ad060e89fcb86fe79fb
-a5ffaf3bfb05d9ab44e508d95fe76acb0be1c13aec95bff3d861ed7ee6a369edd17fdd6c
-cefe86d3ffb7f79f4187e1acdd82f26afe12d851de06e460d979bee1871aeea5c3fa8552
-d82cffb7f87effab69f5cb75e093bfe17bd8a50cf28cdf88d9a551fe13b4d808ffb57afb
-d868b6fc35db49e5af12d944eec0a9ff9fc551ffb768fe72f863ffcd79f29a08e4b679f2
-86feb860f3cc91d887fe91f29cfb83dc0bff50e53cdc54e018d995c5e369f396b8ff9fd5
-28fe92f66da7f876fe0586b6cc2bfe5af7bc04b8fb2cf2a738ed50a53287e0bdfe23fa3c
-ea50d9b8f670ff9ff986ff95f70a9ffeafcb4cea3bbff28ae0a44193d824c6eb1eb6ff07
-f25faffb39ffbe67fe2ded01cff27ce161e9a5c82aec9347ffca7cf59eff79f5bf9dfe87
-1bf24ddb2be086edd136dab5e046a9fa38e6afcb3efb19e2aa41e7bd03ff4def0edd66d8
-52edb6f67ed988f2c293bff76efe79b4ff1dec63c956edaf51db40edd220dfa1c4ff46f7
-a5c1dd32d8fe9c58d987c7f97bd8f1c7fe5bed78d393cbaffc9f2593edaf21bfd227e05a
-edc742f16efb83b5e516fe65f7caf159e561a0fe86d7a5c6fa24c2dd7ee39ecbb67bfe97
-37c8a8fc86f759fe61bbe4a528e55ad01cd83be05ecdb0d993e683fb79f8169ffa93249f
-f0c67cd886fe6aed88d875ceff9d6de086d97ad0a5f926feab3aa3d324fea90cff479fe6
-23f242c587cefe25f879fbd082ffba5cfeaf53ed8edd6be41097fb8d47c5f579ff0cb2e2
-12864aa5d80eb3f361ff0881e2b4db46c6fc67f4b582fe74a5dd93d806d0ff71dbafd40f
-87afff80fbcd42dc50ed3590e8984bef1dfb52f4d84ae0afff22d039bfdd8dd2f30ccff2
-8ad983efa5fe85fa26f652fe0ad0aacb59bfdd4cebcbfe8811ff56ed15dba5ff55f7962d
-c3fb3bf2b4fe3deb75c988deb9ec58e06ccbee7fecc461b8d293fabe469eddb5e206bef2
-169ae182c7fa39d81bfb80ffbe60e0adec23d0a1e769c2feedb6f681ffcc2ce5a6d8f437
-ff86e57bd8aa4febbd2ed0fb1dff60f7a52bf39e45fbc4ed34c1dc05b9f37afe9ebfff77
-d2fda5d693e010b2fb87f35de593eda218fa409fff9352fe07faaf4bc1ec6adb7be080b6
-ea26ff99f46cffbe8043c0f29bd093fdb32dc0dd0bedafec7ed8a5169fe093ff5af402ff
-79fc94f936afdd28faa5ff58dd17e0aeed864f93ff9e60cdfb35f40ca6da84edafc942d9
-f218ff62b0fd51befb42972ed819e04b93fbc04088b9c862f10dfa3affc40ffed9af52e2
-85ce7decbf5dc5ed9469b7fd529bf69329e1c511d94df405b85fff62acff6dc71cb6d982
-f86affcb79f1c76fe0c1a4e96cd8ff9604d0a5ff16c9fb65f08be01ed8a702fbaedd65e0
-27d94cc7f29363fe69d41dff51f5b9fa5bcd19d984d59acb1cd87dc7fe79d886d901f195
-fe7ef60ffec5d93ec2e984b7dd6dcfff74fe9d5af5ae6db4cd93c0e47ded27ceadddff77
-faa4c2ed679cddff59fb99d0a5c0e079ddb08964ed9bc0f234d953fd8dfa22c0ff17ceac
-e564d2fba568fb86e0c194e6c52ec0ee3cb9ec96e445d710dc44b0e0ad34fb1dee45cbb5
-2c86f2affc39c0ed9533d6ba40c3fe86f2c58ded1fff84fb79f69e5ffaafcb93e5b786df
-6dd82eed76fbb8f239fa61f04de5a407f249ff6ae586d036d96dd8992efaa5f528fe4ea5
-f1944be329d0e902d6fe37f84ef20ad995ff88f56794cfba5bfe1fd0f90db6d81ced50fe
-329af25af6c8fa03ff45a7fe95e40eb6d880e250dd6bfa1dffaf47c0eb30f1a83aff4df2
-a5de76cdf855ff8afb77fec297fe03ed86d4b899ff67fddcc359e477dd9f4af4aeff7ef7
-a163dc51e238bad352caafe004e5cf1dea44fb37f8cd07fe94fd86dda54696d881e0a5fe
-68edc094d5accc3dfe5ef4afff4aeebb69e07bd892caff23d9aec0f763bcff81b8e579dc
-9ffe6fd75dd905e046f234e78ed9aa5eee76f8af7bdf8ff5bc16d8973d86df93c5dd13d8
-86ffcc3dfeb2f584ef8dd07bed98ff84d87acdf786d979fa08fe9f25dda905c1eba55ae7
-6dd894ff57f629bed81392edb624f988ffcb79e256db0fe4bf2ef99aff77f4a5f931a4ff
-7bb6ff89d8a4c55eaee9be3db3d00fffb4f31fffc010cdb62cff51f81beea0c0e99d22bf
-e579fed012ff5aed06bee661fb139fdd9050ef279affc542bfeb1ff086fbc1fe9ed87cf4
-4ffec786dc43cbff01d84eceff6dfeb7edaf5ff86cfb79f259a0ed9301a5d82ddd54e039
-d807dd5afe16b2e420d093d880c7f171d0f6862fd0f220b6f947afdd87ea7cfaacf43fff
-c75ad81fb6fe07c7a5fb5cfea5cb6ad8b510e461dcc14bed36d952f50dff96f277daa7ed
-67e179d763dfaf52fb7af5d06ee09bc887fa0d84d5fb64cbb134adf286d39ffa7cb4f293
-c4fe3dface93dfc10caafb7eb2fa4ccbaf6cb816ffb502e0982bffaced6ab9ed84e57bb1
-ea2dd518ffc024edadcf3abff761d9c1fb60ff9ff5affe6ef8aff39fe76bc1fb60ff40ed
-5bb7fe3eafd8ff61bffecb79e4c107fb51cf36e072d89e79f386ed64d896ec73b9d088ee
-06fd46f7c693ff82fb95bdf999c7aee050dc26ff4cf722ffbaf631fec26ded9ed842adfb
-c134ff56d8bcff3faaf103fbdd67c1eb24dc51e039cc54e57aedb61eff6efa87f22ae061
-d0a2ff28e57be068cbfb79d3f28811c1fe2fa5fb20f844c188fba94fe59fc92eff9de01d
-afff388fe0b63ec71395e49026c749b7ff33a2ef82e2affa14d897e553a0ee913d9cf32f
-fe9ec9abff90bffe0bf8d011e0affb2bf84bf320ff44afe08bd9a052ee29d40de45ace16
-fe6bbffa81d69fcb8bd8a14993eda306f9af24ff88f115a7dc8ae1af48db92e088d87ab7
-ff43affc93ff8af59bff2cafcb74e05ad735e9ca93c1fe14e25ff3c5eea7f842beea57a5
-d9fa5a9ee4cd6bdcc495ffd95fcbf17ddb78e767f07afbd083edc90df193fbbfd84effbe
-ee93dc7deccb0dd8b8289ee885ff29fbbe13e0b3dc65d87de05ed917f24a96e253a6ff94
-46bed0a0de87d881ebc878f22bffd084d96cf0afff7cee93e52ca5ec61f119fb5ff0b6dd
-7ecbe879d3e55bb9d982ea4cf21ffb7ec4f62afe4df41ecba5df5cce32d80fd968d6f405
-fdacf686dda551fc3fa0f280d8ab52bf2993ed9d1effc237afd7f68c52ffae4de00aaff5
-31b1fe0cfc96d408c8b728e057a7ff6dd94981f9a5ce8446fe02f74bafe55af387feb05c
-cbb667cefa78ff09f7a5fb24f186e5a5c6fb6dc1dd60c9f685ff6bc0fe3cfa9912ff5ec6
-b71afb93fec241a5de33d863ffc901fe87d97de00afe39fa28b7ff4093fac83bfeb1f876
-cfa4ed0ab3d36be288d97efb06f786f2a6fe80f9bb5de0963ac3ee12ffbf79e5c649bafe
-0bfb7affd86efdcd79f193ff8022beec06f187fab971d897df54d8b03ffaa4ff66f47cf9
-d34de5b2febd2ced0bfbd99fd1be9afd73ff94df36d3f50bd9f1914dd593e6ba40ccb66a
-ffc051ed22aff130feab16e53aed03b0cc6fe5aed39fe97ae05bdd2f86f7d579fc88f2ac
-59df96cf52fe98c7a5d973e267c7aaed03a1e4930ec99eff52beff68f9bda1ff3bef60d9
-6de0bf45c5ec1da3fe79c7ff649dd87bedaf01ff97ed68b3d3dead13e43aafd90adf4ae9
-c6fe7dd494d92acefb1eff87f976eec286dd49e0aecd1293fba21b88f2d16de189c336ff
-56e025dbc017c5f96d93e09c3bffbcf237ca79ff88f5d8379afe7eb8ff7bd885eccc79db
-aefd68f4b632fb4cf538fea8f39fbfe1a81ff255cd11c1fa78f330e6af3af960beff9af3
-15fb61cfff6dd8fd5ee02ee786d0af40ed17c3e097d283ff1c9fff9357c2f040b7eb1abf
-f72efb44d9f586d825c1e93163f090bdf850febf9ef9b68f3fe05ef379ff589ee0c13aae
-e517ff50bff19733ffbad932edb8e74199ffad5aecb47aee8dfaa550eb9f47c1ff52f9aa
-d91c9ffe87ed5add0aa5fad00fe0d746e701fa4e9eff935ac4df1aedce81dd91d8bb08cb
-4efa03ffc190bcff99eb3ed8b8ff6ccced79e00eca47afdf87dcaf4bed31b6f193d862fa
-1ee4c493fb8650fe21e8a8c2f675e5afdd6dd3fa69afda79e0a5ce91bf4dfe9df775fece
-3eff69d7b27ae65ccb1afcafc1fb35e5bfa9ef6293f3cf5bdb8deca505fed86187f7c67a
-ff63c2de14cbfe20f5cf1ad963caff79fbaced22d886ed6ec5e562d116fb6bbfe24b93f7
-a26cf988cda5bff21ebced2d9fff935bfeb525f970ff93e67cd965ed4ce02ada85fe9122
-a5dd15bbff93f485fcd05bff2cf59bbffb86c505fec09aed74fe55aff2bf9ff3b84aed3a
-d704fb2fff9a0dc2f248febe5cff20f180c2e03cdaaffaa5c4e608f2ce2aff85ee76e50f
-a1dc9314f844d1ff03a0fe79d82df6c45d93fbc1409cdd03aff475fa79b9df64a5ff81f4
-2cb5d404dd7ae561fe06b5fb33b0eb9ac7a9ff80eec15dedc428b9ff34e262d0fb79f8d0
-47bfe40bed98c2eb51d837ffa2ca94fbaaf1b548bee5b3fb82f89d4bd82ed9a51fec94d7
-71e819cb48ffb557f22aacd811cde607d934ca86fb93d985ed96ce7aedacfe80e5a608ec
-6de5affb1688ff94057cdd569afb9361f3b6dd52d886ffcb64fed17feab46fe6ca35f29b
-ff73daafe91aefaffe6af9cc2ed89fe55193fbc044d6afed5cf7b755feafd094c4f258c0
-ff2af94cf034d31cffb13cfe9ce57ad887fe9742e5b570d8fb7ac961ff3da5dd88edaf1f
-e83ed8087ffea2f20bd852ed62c0ee89fe7bf1bf7af854fec38ee0b079edd96dbbff7df0
-a370fa82ff6add13e55bffaf60f3b637dd51d82bccfb88d9c444a5d4f24cc8edf524ffbf
-35c2e09614a5fe2ef2a526edb83efec327fabe80e1af1cc0e43afe51dd79d824e0bd80ff
-5bf224ffc809f096fd1199d982ccf2881cfb4ce77aace072d886d879e09ddc7bcce561d9
-17fb4ced0edbacc906ff9d24b8f393d1affe10f778c8f96ffeb6f6d037dd6dff86de26d2
-fa04c644e559ffcb09d9af36ff63f7ce3599fbcb44e05effbd4ce0b0ef53fe7acc27c0e2
-15ffca87fa91ff984ced2684ffdb66ace49f5d8ed883eea6fe44fab8ed79d865c7f95692
-e29f69dead11f260d7fb62a5f381cbaaff57f2a537ed96d093d87bb6dc86d85cbfff41fb
-2faae0c099f326bfff11f4affe02f687fe55f206a5ff83f2c39ec0f66afe7ef154ecaed9
-46fb1af079cf5dda32bedfa24a89b1ed86d55ae89dffaf77b6ff9ecfb93aa1e486ea9abe
-e510acfed51787f8b5dc37d2f59326d0a4c7acfa89fe52d89e4eef1ed861e0bfa1f8d896
-0dfbcd1fffd0fc53e41ad87cda86d239f6affe4397d6ff08cdf549ff94c4fe4c93f0d808
-b6ec1597e584fece67f610fe4ef73ffe32eda7e174dec293ff4fee77cea5d952ddc4449d
-edaf2fbfd988fbbf39d5b65fe83cb1e02cd892dd83f568e6a4e068d893fe86fb970cf2b9
-ff26c2fe19f7af3bc74eedd861f016fbaef475fe23fb43d694ed5c84f3d89f0a93fc9d19
-c1fe76f80eee41d1aaf26cf8ba77e5aff512ff52c238f4c15793ecba33c69abeff63f507
-ff5be59802d9ade573bfed79b6d886ed2fa3e9bf4286cbff69fac943d90abae44cd987e0
-afd2a4c688fb2befa20bec7bda17ff39fa89fe7994e9c04fc5fb951fea4edd97f826fb93
-ff79c6fa5bff3bce0affbc2dc1ff42eb19e54cc3ff6adc7ce29e58e07acef283fe9531e0
-7ad886db27d061d9a6f185ff46c7e7a741ffc6eb79e2afdd4be395d866bbe80999de2dcf
-fc9442c9a5d48dfdb079e0abfe8661f00af748acd98cca9dd86bffcb6def1dfb35abfe1f
-f951affad10dffaffb9f37d986b7f69efb78afff6eed9e18f25aff01ccb567fad061fa87
-c6afe55bed0abbf827ff8fdf6de2c1a5ff79ed66b0cc08d8bb179ee5c195fba5ca79fc86
-b6f49fcdb9a5ec88d516fb45f5d092ff1fa5dd0fcbfbabff40f35dff80efb751c802b6df
-9720fbc060b726f35aff80fab138ffa2f66dffc986fea502c1ff76fb64eb04d0ff3ef218
-b8e0a5bf93c5ea25f14cfa22f0bd47fb93bfd888e761d0a1c2e06190e36dda22d3f45bfe
-21d65ac1eb27c8b634fbcb7dd995eb7cfec143afdf34d8fe639ed885c9e56ad960f114ff
-4bf835cdb911c3ff7df155fdaef4871ced4edc35e454ef02c85cff69f329d956ed98cbb5
-07ed5bc5fb71f5b7891cc2e69ac9afe013fe93faa3f472fed079ed94fbcb88d831cf01ed
-c65bd823e0b53be55df2afed86dc1de09eef68b8dd7dcbfb46ffe530fe76fba1e080ddaf
-86e0b639ff4ef7bc96ff39f314ffc831f893ed6db4e593ed80ff39a4fe84f8d868beff29
-f655dc24f29bff79f5ac03bff725ffa33ffba5d098c7aad293ed65fea4e041d997d46fdc
-44d9bfabff93f285d89cdd80e136db93fc7bffad5ff878fdbfa0ea42b2d052daf960ba08
-f74593eb7bdc29e257cc30a5dd07d93ea7fe68f086da9f79f988fec17efa93d827d93ad0
-58f2c43fbefa2baeea609eda7994d889d658cf32ffc15afe19ed87d3a4c906e058d885dc
-78a8edc34abdff01c644ade06beed461df04a0e846a5e08cd094e56fd810e6c469edd251
-dc73d5efb61efe54f47afb0bafde2ef28af669fe29f793fe6bf95ed013affe23f84bfeaf
-faab06c1e033cde721d89335fe86bfff25e582c6a5ffd86dd3fbc349affdc392ffaff368
-ff82f6d012e0b6fb57ffcc16ebab48d919ed63ff7df794fea96dff86cf95fe12f2c422fa
-ed5ae213ed93d9a60bf379d0aaf912f46dfe7ef29cfb44cdfb5a9efe7ad0a5f7bdfe10cb
-b51bf295bfff81f7ca50fa16ff4bb6fc8db846ffb56dfeb9f3128ce083afdd24e45dcaff
-6fd879d119e086e8bf05c3e225de79fac66dea94d1bf1d86edc661affa79bdff63f3c4d8
-01e45df16cfe2eed5194fda51d84ffd8864ced11d847e1b6c74d93e8a53696e02ba5dd86
-cdf475ffbfa2c1e04fd816e5ba20e347de6fd585ffb26a01fbaaff7af96bfdc49abeff58
-96e383dd30d8b61bb8e49505bfe01fdd3be55186d998fa7cffc354e236d80fb4e97ad886
-cdee31c1f896ce23e2a13894ccff47facb6bff99d8b642ec9efb52ffaecb3ea0ed78a8ff
-89eda351dbae39ff61f5d455ff96ed13dd4d9de0af4ba9fa87d89dd990d787f5c02eecb7
-dd9d0cf6bfaef86dfd9e1bf1affb6effb9f46abef251ff309fe19343f906a7fb8ef083cb
-f578feb6f74ee03bd9c0a5cb70c6b61ede50e83ded29d9fb40cbaffc53f9a6ff6df7afff
-7cf295fb88ffc02df153e640a8fb7af59afe6ac2fe3ff4be65aeec1bdd5cf17ff9b1fc68
-b5de8b05edbe3dfd86f7bf03c3e9995df2afff4df3c959d829cbff0af1be7ce38ab9e524
-d988fe84f2c10dfb86de62ec3bff0bfa49e00fd9af61fe3af3cc69e03899de7dcbff5edd
-27d84dd90dd0fe88e57cbdfb0cc4db81eccb31d869ff52a5d997088aeb9bfc77e6ff4ff2
-3cf6d086f294d86accb179b8f1649dec81de31cf4ed82cd95dce62d819e393c7abd088e0
-1edaaf43beed2796dbad06ffd985ff7dfb9cc608e04ce52dc4f2a8d87be5a728d980ff87
-39d9fb11e07fd89d0ef896fdb67ae168fbcd10ff419ff9b73eb4d839ff81c6ee2bfeb0ce
-93c7a9ee67ff79f7c593e55ca5fa88ffd22bef3da8d87aed88f77ffbaf3cd905caed6bb0
-f758feb968ffb6e407bffd32f2b9ffad1cbfef2f8ada86d89d48ffba10febff704fed822
-ffc50fd860ef91f383edaffe0cf9a5f472fb46ff07f7b1fe60cef282d2aff071faa0c542
-d158d8af36ffd178f39ffe8539fb4eff0fcdf1b948b3edcf6db5c864fa31fcdfbf62dc3c
-f699c730a4d981edcb6de0a7ec6de5a4d946afd89415fc60e679bdcb9ede4bed01adffc0
-21ed5bbbfb96bff904feb0c61fecb876ee65feb241ffd42adf9f22f394469ef9ce5dd862
-d93fd0f95a9fd8f827fe07fbaec979eea54a93e0a15ee84cabfb92ff7ae30afec13ea0e0
-85cb54df9ed87dea9b5bc0ed8b0afb52ff1bd837e77bfd8bef0de5c15293d9b716beddae
-cf93bbf3588efea2fa20a5ff2af4bd93d0b68644f1c1a5d01dffaff34cfabd16fe4ffb03
-f9bf26fa96ff6ff4bfa0f223f939fe1db7ff90c1da44e084cfaf08d964e683e4a344ff9c
-cd37ffc39cd77be3985beb79cfe679ddafed2a89eda0fb7bed83c6affe65b4caa4dd64e4
-24dc60e5b6ff6fc8f385cbe551dd25c69fd2b679f7d064f025ffb20ff2b73bd8fa2aa9ff
-c1a4dd7be489fe5cd820e0a0fe74f5aafa29ff7df652fe1bed62d8afe514dd64cbe588d8
-56e616ff60d9fe8f05ff5bed6fd87be0a55add9acf8ed8a558f168d21be052dd42c2df93
-d989e46dcf33fb63f29efe46fbc386fe23d75ec8f26ce57ddfad14fa50f21bccf6abfe4a
-befa17fe85c2ffb318b7de0cff4ae50fdf37f253afed92fe81fb36d81bde32b7ff1397f2
-81b6eb43ff5ae5a72eff9add81c6fa6bccfe79c593d94de030bbf948c7aff385f9ad3cc0
-d91dde6ced9de093eb73d6a4ff30fb72d388ed9f51f67afea5d795ed23a1ceea7fd987e0
-3dfe07c0ff75f525f261fec590bbea9fc1f787ffa54cff7ff344fba0e97cd8b511b8e36f
-f2b452f49fff26b7d00bfc57ed86d8ba93fbb7860fc5f29161b7d05ae03ad986ff51cf94
-d886f198ff89d4ff33ce4dc6a1f17af888fe52d0a9fa3cd8fd6bf293dd14fcc786d85bed
-34a2e525a5f113fe70f586fe66cba5f10b9cdf52cff268afff86d85ccd43d809b6fa41cb
-96c3f24bff30fcc20adeb636f24acaaff438b6f72afe9fefc394ec33df86d67ce033ed09
-ff40fb7a32d804e4b3cb14c5acd50fbff929ff94f688d917e9c68ed872ec51fea4bdca93
-ff48ed31d153ffd99733c2ffd93ff79dfb60f3afe465f223fe56c379ea1586b6f787ed0c
-cdbb48d3afec79e467ccaf02b9c925aef1934bed04fe89ceff67dcbf57e4acec02d0afed
-15ff82e5c12eff87bafa34c4e704fe88fb79ffc786e07dee019ce0b8d96ce0af5dfb86c3
-ff68fb75e557c6abcc15b849fb64c9b0fb4dffaace93b8d888cfaffe9bf17efb78f192fe
-69ef5aa5df71d835d456ffa540ee0efa88db79e740f81fd3a7c0fe81eea546fbadea0293
-edaf0cc6e89329c0fe79e7bea2d9fb61c0fad81ce0abff66fa98ef099dfb2bbeff76d9fe
-69f6d760bdfaafe179d9a54ff392ff87d342c99eff3e97d959d844fbb579dd13a5ed9556
-f2b7e320eda84bf421fe61bfff861da5f73dfec598ea02afd81bdd88ff7cfa67d8ff92d7
-a6f71993edbf0ef74bfb5bf319e864cc58d72edc51d928e086ffca49edaffe7cf385cdfc
-7ede9acf30f294d8afed60fa0997da20cbe56dd87ef8c96ad8ff8648c4eda038ddab42f6
-04bfa5e05a9bff9350bfd824e582ffd95ab1f417eda139e0a545ffd98c33bff71ffbc50a
-de38f49cfb62f179c7f77bfc95ed6cd0f65bffcc79febf873ba5d980cbe56cd9c2a6da5a
-ebb2ed7ad086e227bef979edc098f20cd843e3a653f222e95fdac43b9fda80e096caa8d8
-92f610ff86f49fff7af7a5d11d96f7c1049fe026dc60b6c838ff5afabf02ff4fa0e079c4
-f271fe65b3ff29dd59b6fc3596dfabf505fbd07effcc6de04eff2df3cb3ed7f579fbb4c6
-3bc18cc5e086d880facb7afbcf861ac3ff6ca9e06caeee7fb6d816c1e022daa52ceaae1a
-c6ff0193ecbe4de025d2ffb3f860fe2cbbff953cf72efb93d846ff13f353ff6dd9a72dfe
-4ab0e095ee84fec09ccf7bff86feadf569fec221ff3bfa50afdd94eb61cd07bac743feaf
-e05c86ffd06aed88ff1bf6af7be0a862e07fc9fb27afff3be3b7f607c1f093ff23d1a7f1
-1cfe7bd98856f21798f993ed84dab06deeb602e44588fe9ef71eff38ef4ce12195ed0d9e
-ebafdf4dedcd52ffd159fbcb7bfe86b0fa6bffcc73e0c0529fe2c2319bfb88f49b4aed15
-d596f29110f0d080e0c008f2b784d88cddadcf3bfbbf6bd3f978ff31d910ec38fbb704e0
-51d829e040a4ed7de49dc0fe78d823b6fb99ed80e86df230fbdaa542f8afcb50e46dd3f0
-14d0fe9bf6198eedce7bd8a04d93e89f45d962e588fa60d8b94ab1ffc1a5c5dd31d01ffe
-c00dfbc37cfe8fcef25bdc78ecb795befea5c4ff62c1f73ffe78fa9811f19e32e9992ae5
-52ed3bbfed08affb34feaff37afeafda12d861e5ca84dd73ea4dc3e0a55bff9f67fe56cc
-f969fe9a0eedb95aeedbaa24c75dcd8af77add67e5c96eedb5ff79bbf96bd9b413ef31e5
-5afec637e053fe0bcdb88bbf18c2e1930bfbbb98fe4bbcfb9229d953d5ffbe47e512edbb
-d96dfbcd83f3c03bafe27ded9de521ee4cfb72ffa8e9955ce0a237db5ad921afe811afd4
-5ffb05d064e852b0df7ad993d12ebfe186c7fe77c5ff6cdab6ff64cf95e05ad867dc21d8
-3ef163f9a8ff0cb6fb3fffbca2f96dfcc10dedadc4e4971fe941c0f67dffaf860bff87f3
-a5fbba46cbafff4aa5fa931199f1d305e749ff86d0af84f2a569f993d0bea2e54dffd881
-fb5fffcf62e02dc3e79442c3e56feeb56186f8a4fc86ff32f21da5fe0a9fffc510fe31f9
-63b6d893b8e545bf69ccf97bffaff496f99fff79befd3df286e37dfc2ebff925feb207f3
-a5ff71f820a5e004a4f3930fa5e527fe86f6a1f293ff6bd083e1bf49c3e87ac6abce0ae0
-33d844ddb651fa2688ffafc9a3df61d825d7fcc19fed4ddd01e7a2fe1796f2d827d0fbc4
-4886fec192c5f343ffd80acbedaf16ff39fa7af19d3ee7aced38b2f28afda506ffacf384
-ffc136f5d8b62cc754b2e081bedd73d2ed4feb87c1dc79cdf43cff12d287f3d9a529eb4a
-d718c84fe041cced67dda5c947f3b895ed77d869efc860dd39d95bd4f279fad843e7c7fb
-7ed9b643c40ec64ab7ec94ff1c9fed9358fe27f461fb78ff93f67afeca82f2cf43f05aff
-1afbaaf2934be039d2b895ff6dd886dfc23784ffbe74e4a5deaf55fa29ace568b8fb803e
-d8f18fdf61d912cafa9327c8a5dd1bd674edcc79d85adc0f9cde930bff90f4a6fa68cbff
-3ff8b866de9bfb45a5ff099cd97eedaffe0354ffb3c693f18bffb67bfaad2cfeb916ffa1
-d65ada08ffade445a0fe81f6b6feaf44cbbd66fcb7883ef260faa7ff8ef4abfb06de56c8
-f732fdd08ddd9ced88dab81cb1eb2b9be560a5dd8fd87be4c33a8acff57afa82fe26bff0
-2bf850ffaceeb14df435ff1ff09ad6b978c6f02f9fddff87c24bb6ed84ffaf63d8ff86f7
-79ff57f53ab6f820febfaff25dfecc6ce03fde03d92a9ee4931afebe21cdb0e581c7fb62
-f8974bc2e4f586e011fe52dd34edd00bdf98cb82e06fed1dff80e5c23388ffce1cd8a701
-86ea96ff16afd91fffc09bd216e951e038d95ed78af0a56dd9a504ef51d819cb4aeda4df
-52d2ff13bffa02fe35f6b578d9ff05b6c81bde62e358cbaf79e98ad61ae094d88dc0db5b
-ff15e1fe0296fac250bc1ef7a5fd24b3d52cf5b70dd84ce49cd987dd68c0eb9351fb2de6
-a549efb1d095fe86f2c35ef1aed086f778ff28f35bb5e02fcbf26c9d36d862ed9fcfa5fb
-6cafff88f352f72afb93c7aaf44299d9f3bc5ae569edc6fb28d860f5d086ed6de22fedbe
-93d0a5fe84f876fe26cdff46fac080ff93f5a5ff7efb6af4be79b3ed6dd981edc10afe4f
-a5ee62ffaf88f49dfe86fab908da5afe68f60dfd62b4e97ed89361c4db79e993fbd769dd
-7acbf95dedc16fee7bfeaf04c1fb26ff9f43c4e083d877c7fb8815ff52afe26bfeb54bff
-39ed5add8cd893dd1bbfffa61cfec8ee80ffc05ffa06c3e626d846c1e092d9bf3de561cd
-affb84119ff093fb3f8eb3e17ded9d38fe4fc9a1ff87f753fd23c8b810e6afdb79b1e578
-dfaf31e056d938d005d9af38fbd851ffafd04c9cdf86eccb79da30edd03fd90fd839cef2
-7deda7c99ed1aeed2ec5f545fcb6f750ff10d149afed06ff429fe09334fe9ee03ccef29f
-5ee57af1afff06f7b0ff1badd8eb79c6f539d60fe0c193e06dd501f04afe73f69157ead2
-79a50bcfaf25e088e27ab8f880fba001ff4ea6f987fe15dd57ecc5fe27dd78d0ff59c2fe
-4abae579b6f906d744addd7de069eed68835ffbb15c4f31dfcca7afe89f996f286ff9fc5
-26e0951df4abff6af7be21fbadf877b4fd6bf681ffa360fbc221ff51f94293ff9e6fe0c2
-299fe080b4f299ff82cd93e4c002ffc5d949bff78853ffd393d817e060db9f37d994f242
-b8f9229edb93ee73fb16abfa85ffa3caabe043d5fa933bdafbbcf84cfd6af336ff4aa5ed
-62b8e57bd0ed0cd976f18bffa549d886c0f50cbcec1aa4d4ff0dceec86dd7bfbcc09f197
-ff2ca3f3c75dd8fb9866d886b6ed10c65ce161d817e967f75efcc878e22cce3f99e49143
-c1e012bdca99ed54e3bf3e9be58aec7bbfe008bbfe1c95edbe3bf4c823d937e061f675fb
-b0865296fba724eccaac11f96dfe87d37bf2c86afe7ce564ccaffc7aff5ad09ac4ed35d8
-be59ea14c3ff9f06bffeae5be479dcc59abed897c1dd18cdfe38f7af6bff9fc94cd128c0
-f6b4fd3b94e09d78f9d9308df3af34ff4defb76cffb141ceaffb469cf79143c1ff3af148
-cfa1e9b71ffeb6fa82d393d8b046f9be91efafff61d0fe935fff52e52cafd918feaff762
-dc03d8fb6af3cb68d7f974ffd05aa5fe6df7a1ed29d84ed1efb7e414d0fe9538e6be50cb
-aaed20fe4ba5ed28d2a9ff32ed51e509b6f62bff79affe25f596fb5e86e5afed6bd8952f
-eeac12ff4ef21dfe75f59d5cdcbf21eab82dfcaee993e07b04a0d8fa5cfec44d93f1c854
-e093c6a5ca27e587c5f964e086cbe607deaced70e59fff6bf779ffcc8745a8db3afe0fe5
-9fd90bff50d816eaa00af1c5acf276fbcc7fef87dd25d084fead31ceaf38e6af4be30c89
-fbd786dcae54c1fe86f2991eff7df3904cc1fa7effa5f136c0df86cffb62b7f90298d98d
-d886caea78dd53c6e568b9ce6fd9b8f136d951f721ffcb59fb86ddb693d885e539c7f093
-63fec486e35ff319fb50ffb9ed6bafcc2bedaeff67a5fa71fc15f662fe55d91ea0ed14fe
-73bdff63f91fd9b708b4d828df4b9bf6bbf072ec65f27afe68b5cc94fbb779fad77ae520
-95d9a206ff5cd779ff52f3c478b8ff7efa85fea1cbaee5ba2ded14ffd80bb6e53efec960
-d831ddafe064d91ed886fb9d5af3990fc4e979c1e44dff1dfba543fdbfa2fa07afee41fe
-2b91c1ff7bd088e0a8f994d8b93ef661fbc558ffac0effd8a551f279da95cba9d587e451
-ff13f2be86de05cee822d9aaed93d8aff174fbd07adb5bf229afd893d07efe8af55afdc1
-aedd31e001ff96c7a5d022c2fb34ed63c7f24cb6ff51bffe38f7c0afe72fed9fe5b23af0
-da10ed50d214f23aff5298fa7acc5eafeb62c4dd7ab4e0a4fb6bff01f5a1ed5be008cdff
-3bd9adff40b1fe69f3aec86cf2d6871ff288c0ff7ce099d2f40da6e328fec06e43ec03fe
-93d5be09a4e07dcfe68830f7d306fec23aff4bf831b1d882df8cfe39b6fb519bffc039cf
-4eff0e9de0bb4bffc0a7d394ef4dff35ed4cdeacec960cf261fe93d0b829e442ff98f16e
-d885e126a5dd2ecba5ed71d061e04697fab608c86dffa459d898d98ce093d987edc346be
-f193f880ff9d33fa08f651c1ed93d6b942c3fe7cf678b5e56bed75bce025d99734e6be16
-9bffb3cc49e155d817fa5087cafb78ee9f14ddff9fcc5ef02ffeaff249fb299ffac16894
-e0a46aee85e5c1a0fe25f7c046d4a2f079bee4865bfe7ce585bffb2693ed9602f83efe6c
-e186dc9ffbbf2e87cdff7ad8af55fb78f7abed87dd4ae6adff5acffe84f56dfb02db85f2
-8ffecb67df93fbbf1ac2f986ff28f75ffd66d308fba5ff1fdf3dd917beedaacf94d918b6
-58fa7dff952ed0a5ed19c2fb2ed1fa86f180cefa62feafde3deb73fe9bf792f07edbffa5
-3bda57b7f57ec12be687c2e077d987d891deb954edafff33f5ba0dd89b11f164e55ea9eb
-6ddd20cffb1cd8edb4f32dcbeb69d4ff37cce881dfa5c60dfbb91ac87cd9fa3fb8e420ec
-c23cbdd85ccb09bffd9113c0f29406e45cd887e5afff2bd81abaff36ec4cd995e525de5c
-edaac91eeb7add85e06bcb9ffe71d6fb875afd67ff87e4c523e562f0affb48beff5d93dd
-9e0dca50fe10a5db46f069f893d90bdd30ce45c6b51dd8f381ffd34ae266faa5ff1a9cfa
-3dff15f661ffd108e259dd79d0ff5bface7bd991cbff08f793ff885af4b88e01a1dc973f
-f7b67cddaf4fffbe25edabcd76f75fff06bee864a4ff7ff3a5ff19fa81feaf32c5fa9a3d
-ddafc2ff23f39e3bc1e979f05989d6acfe79f56afea5ccb878ffa6c0fe50f335b6ec5aab
-ef9343c3e523cba1f03dfe9ed0bc0ae06ddc81cbacf454feafed93c6b0ea7ed086d825d2
-58fb7abcffa2fb6fed68b7c80887fbafb9d945d0afed69cc79eba8ca2499fb83ccacfb42
-a5ed7abeff18fb4196d8b549b8e0accb42fdc5fa6fffaec90af261fc9ec777f65efe39f1
-9fe594ed5aa9fbcb4cd80fd479df9ee861f2a1e54dd5ff7cfb43a0d960cffb934efba5da
-c2f60d9fe02bd0be4aea0ad94cf2309fd992d0f603ffce20e0afff6db2ea2ed4bf85f24e
-fb93c4ff20f83aeb05d883e061ff3cf557ff03fbafff79f1c4a5ed61e702d797fd2cf7a9
-edc31ed87af184f835b6e5a2c53bf2afed46b6f31593eac729de3cb5eca5c0f36bfea5f2
-0ffe81e66daf4ae018ed61fea2e42eed12dc99d986e054d81fcf84ffd61793f888fb95ee
-59cb24d886d96aefb41ce55bbff786fea913e0afc70dfe4786bef364b0ff7bfb93f58de3
-7eb8fa1cff5586deb978fa61f206d9f679ff60f90eb1da70ec3fafd886de95ff64f62dcf
-a3dd7ad895e1c13890e09f3afe1ed885b6f24bafdd84e04195ff4ffb10db61cafe04f755
-fe71da7affc96ed9ff4c9efb90f286d12de051db22e379d766d915ffc6ef86d693d9be44
-b5d886fb59ff2ec9afff92fc6ae0369af0c231e050da2cf98eff51fb06feba71f6c48ae0
-0ed843c9f46aff88ed7db6fad83bcbed01dd32c753ff38c3ed6cd5a5c0fb9949e7c1a5d0
-8abb42d89db8d888ed37ffc1a0f36bfdb646b9d988b5fa19c0fc21f34e9cecbd10f9c093
-e552ffcb79fec75aff6bcff387cb8de593ffa55ad990df86e810d89827fabd64c2e102d9
-5cfe6dfa7bff86c89aff34f99ef19529a5fa58ff22f88cff6dd093ea7db7ed0c7be742f3
-afc0fe51e5a1bfff7bc9a5d86be0bf9ccc2ddbaf33ffa5ee7beb82b6de26d942d0e51a93
-ff779bf883b6f29cd1a5fb0fb0e54bed2ac4fe9330ff51dafe83fa12f34bff99cbb615e2
-56d60ce0a7f113fec779ed86b5e06dceff6bf6d06fdd5daef39b34e2149eed25d8af0de8
-37fe54d728c0ed73ff2ec6b3fb51f4add81eaff777ffafca1ce59fcd04bdfb3eafed86d0
-54e1b6da35cd83e0b0eb05f14ade19cbfe79f8c0a5d28708ed6ed980f503aceb42fe0df5
-a93bf75dff7afa93cf48bffa22ff50c2fd7af25e9cfbd458dfba43d9ff61e623db61bcff
-85f979b3dc0ecbf285eb9b28c7a6e793bdd226f077fa8dff97f779fe7ee5a236e351ff38
-bffaae29c945acff29fbcd15b9fa8ad4fb63b7f875feb6f19fbeed86fb18b8cea0ed62a5
-dd80e06afed035dea140eda8c549edaadd6de8ca61dd21ff7ff96afe73f5a54786d9b9fe
-66f6af39da51dd22fabaffa3ca26ff5fd0f16bdd86e17fcaed83dd93ed01e277fd9860dc
-86e4983dcdabffc02eb7f611fecfae14c994fe81f3ce40d816cafe7ee5ad4cd816f8affc
-3ecd5cfe69fb85e05dd928cc4ed331d84ecafb7bd998ec9311eda4fe93ed84e6bb66efd8
-61e940a7e5cd3ce0c466ae01fa49b2d398f54bfa0cffc030fe45efb689f283cbf965ff87
-f57dff2cf6b90bfea5ed65d409df9fe411d8bbfe9b38a4d885e09cc4ff83ec975ad849fb
-a9bfe38933fd9fce47ff22b7fe17c556d2b0f218e6c3a5f808f4b0f90587d9ef66a5ed93
-5cfba1ef3eafdf069ef792edaf43f164ff93f5b771e087ee7ce003ddafc61efeabf180e5
-88ed9dff69b6ed09d25bfdcc7bd960d809db4f9cff9343febe86ff0993ff9d21dfffc593
-c2ff3ae080d993d857e394cca5c609e551fe1098d836d90ed65ed89f59f2be4ac3fb8af3
-c03ec2ff7df22ce5b4ef1eff4bfb03a9d844fdc892f182e61194fbb2c61bf3bc97ea79cf
-a6e69ffe3ca3d853fe34bed167dd85e8b93693fec646c0e028d864ffcc79fbc75bdd72fb
-96cebf2cdf5bc9ff4cd81cffabf79a45eba5cd36bfff01f6c01aaff226c0ff87deb049ff
-1df8aff47afed706e0abca1bedc3afed4cbbf58656dc26e779ef66ff21f186f370ff16f8
-61ff76d9abc1e579eeb6fd95f285fbafcf83e59c32d851affb934cdb68d180fb6dc7a5eb
-93bfe573eda30ce033d868fecd40ee58ff79e561affc51f830f368c9ff6eed93d976ffae
-25fe53d8fbc41fe28dff71f27fe5be1eed48a7ff27d13be00afd9fbdfa04a8dc7bebc255
-89d0ff6cf883ed9f52dca55ffad87bdda54bf02bf6a5c3e58a40cab63bbff270fb86f79b
-5bdb79fad077d9f385f99bd80bc7aece5fc52ad1afec83d892edbf2eff4bfba5248ae43d
-cf16df43fe1ef7bfff93ec19d8f6acfe07dd4cb7f261d12bf752fe28c1ff79f9b2f24eaf
-d980e0a5d92ef2c707d879de8fd8b627dab00efbb648e3be79f19f4cec80b8f405d1a5fe
-3499fa88b9e77cf288ffa5f26ae979d097e532fbb339d9f128b4dd0ed862fec76dfbd087
-37fe57fbc899d886ea5d9dd4ff6afad964afce25df4cd1f32ae4950ffc346be0a944fea5
-f741fb9efea5fa3a9adc23fb429ef38fdc6dd0ffc358f97bff93ed7ab6d87f04ce62ffb7
-8728c3e787ffce0ffe99e47ed988b6e04fd8a51ec799ff25fac10bbdfe549dfa88ffb511
-fe5ee479f3cb61d6f27dfacf19e0c096ff5acb87e546c9afe06ad0fe18d861d9b84bb5d9
-21ff45fb5ff2c569fe79bffa60c0ff87df14b7ed21b1e6aac2e09418f952ff01bffb22b7
-ed0faaff30f9b579ff83b5fe57c0edaacbbe15ffc269e07adc89ed05e079caf24fe9a6c0
-e161cd07edb839ddabbfe030d860c9ff4eefabe597d959c8ed9654f33393edaf59bfff17
-d0f97af286ffdc6ded7be59f61ed7aceafe065dc38ed94bdf19dfb429fe79412c93aa6ff
-84fb0facee38fc95f361ff10f64c86e2aefe01e493fe7cd587edc18eb816d8aded07a5e5
-9651ee9ef57cd793ff4bf70586eecf7de375b3f27ae585c6a0e087ed7fe7c238ea11cca4
-ff8a4afee1b275edb61af2bf31d3b952ffb66affc25efe18f67bfe5b9bf76ffe0588f0af
-fb1192e087fe43f527b3fb6dffbfa5c1e079d8fb3ea9ed943cc614ce45affb05d84cd0ff
-8bf63aff19f2afcd62fa41d01dc6afff2cf6afff89ea5cd96ec3dd7bd9b61cb8d883dca4
-c3f0953abeed60f42eec5dddaf0ccbff86f83894ffd23bfbc92ad84cff39f274dd89ceff
-5fb6fe3cc2df31d84dfe35f354d860d304fe9fbffa62d92fe5d67f5cf6d82dd0ff5fa5fe
-7bf697d813d9b003e086d897d793dfc01bed9fc5fa9847d0a6f4af24ccbe71c4ea0de041
-d91afe49fa21a1f2cb6ffbaffe9cf5ba65c0e186ecaf1cca5bdf85d89528fea4c1e88cff
-86dd6bd85ad843e0aff231b5f826fe50f59ffe2ff9b543ff20c0fb81c7a7cc9ac0f737fe
-9ff347e69fc1de4e88edb77afe6be19acca9c715f042afda27d8a5f583ff95f0a5dc6dff
-22fb8ad96fe04593f07af8b103fbcc3dacfc5894e4c24edd1de561c5f572fba3f240ff27
-f947ffa8d051e760c1fe86e953d7fc67f99fff79d199fa81ef88d46bc2e58909e055da61
-e337d8fe2896ff36f4a8fe9bbff744fbbe58e0087af34ae504ef87fe7df7c10297fccf62
-edafd286e95ce36deb93cda5e852f21dff50fa11a5d87be06ab2d023ff81f2afcb17e493
-f4b00afb5cfe9ebdf971febf8bed13d65bcc19d880ec88c9afed51f2acffd21fdec36bed
-a1fe96f083c8fa09ee87c0ff86f99f45bed131bacb69ed86d979e587fd28b6db1cde3bff
-77b9dd13e03aaffb5eaadc52b6f79dff5abfff97f222d886ff79a5edca69d886da48ed02
-a5d978d0f486ffd9a5cf75fea5c51dedb779fed83d91de9f44ff0cafd992d003f261fe86
-d979dd7ee285d8fd62ed1abefe75ed5fd809f971ff53d827c6f17ddd32ea65d8b30ee050
-adfc96f792fe5afa08b7e5409dfec41884b8fe983effbb2688dd0fe047b6d59ffb3fafd8
-26e1afff79fd82f7a9b7c814f330d965ccff79f76bcbacef339ff283d8ed25c1ed14ffcc
-05d938aff630d27bfbaeea01cbf947b5f715fe6dfa92ccff5aee9e37c94cc020fa9cca51
-f9a8cb2fe54daac6ff0be5bf94c4f72afb7affa8de2fd50cfe9fcf26f0af3cca85ffd632
-df93fbafe55adca3f280ffa449e5afd095fb28cbf67affc92dd83fe075dd8bcff67affbe
-2f8fd9f15487ecacd05fe843afff90f378ff29cc9bf279fe8eee19e853dd09e04beba0ba
-ff83ef9e0aec95bffb0796e0c14cffb76aa7ff77c6af86e579f1d076de68eca04ac1f19e
-62e088d3a4c6b723e262b9e517feaffb93f0b55fed32dd6be284ff88d5fb67a5f27efb69
-ec79d855e0bf50c2f393e0af44fab759ff88f5bb4a98faab12c84a9dfdb532b9da60d1fb
-931bff4ec0ed9346eab686e579f1a6c832ffa448da11e4c8f94abffbd70dfd81f8c1f2d0
-61d91de082ed61df0fd83cca5dd887cf9eff93fb7ffa62cab040fbd8ab36e556d8f661fe
-88cb08f2d03ed8f45df942feb613edb8fd0cc6ff8733fcc30eff3ae452f1d681fb35a7d9
-62e00add67ffc194ffb0fc0ad85beba113eecb5ada19d84affacf49f24fb9a5cff73eec2
-70eac695e008d9ade46ccef67bffd81bec89fe04edb138c1ed84e5a25effa8d109fa4bff
-c003fbbe68e8ba68fa9752a5e6932cb2e559dd199f8632f5affe51c5a5fab4ff6cf686ff
-a4fa2eee51d223d83be30df7c25a88edbe81ff7bb6ce1ded94fbb57be5ac2fbed89ec781
-ff9449a5d95cddb9d86be6b680ef94ff9040f398c5ed86d27ef29ed03ce513d54aa1ee93
-fb27bcdd952dfaafff86e1c01487edc579edcf39d818ffad04fb33c4ff5cfb1ff14eb6ea
-2cbc84c7f35bcd77fe99f956db08fecb1ee062ed9fd0b587e87cf3b117fecc85efb6fe02
-d0ff7cc0f270d8ffcbed9a68c9aaea01c74b94eb9cd608d962c788db7ff0a5ff8ed879e6
-b7ff18f9c523ee48ffa5c65ad62af761fd95ff1cee4de035dcb2fe81f9981fffaf44facf
-6ed808c7e5af0fff50f726ffb02aecb67af786f3cc72d97bc7f859fed09247c2ed3798fe
-d13cfeb40e9ffb8adb65e0c07ce7a374de93d28bff7acaa4edc13faee096d916e086cf9d
-f279b1f781fec352f423fe47dc29d7ed9e3be01fd881f2a550ed38a3fbb84ea70bffd82a
-fb5cf781fdd02de053ed7bfea5f711febf6ac1f251fe2593d8ae68e1af8ee586f232fe80
-e095d803de8de879fba5f868f01be63cc4f37acef2992afe5bf6a54efbc17cdd93d85ec7
-fa85fec756d9af35fe1bf19c3fedb761f1d9956dfad85cafe469d8ffbe4df1b7f63afeb0
-43f9be28f352da02e444fe61f894fb24ff86f6bf30ff49bfde3ad8be3494d980e06bcdaf
-ff864fc2fb93ff5dd93ce0c395fed90793e5f7c05ab0e28fd894d938adfe7cfbb1e021d5
-59e0af43e601abde81cbf439feb83bfcd102d860dfafee53ff85f3af57c5a9cf09c9bb92
-d3be93e04deb1587ddc1a7dd7aedcb66e0b61dfe77e5974ede10a8fb21ff93c0e367ffac
-cc1effa607f7be22b5f106bbf64687e5d58229a0d886f2d169edca78feb7ef85d895d80e
-dc56d463eb45a5edafd968fcac6cefa7ff15fac1a3f25b98f7adf16cd079f4a9fe65f71a
-bc60c2fe3a6cd9a1fa77ff20ef60e6bf13c9bd399af392ff7acafb85fed032fbbc79dd89
-cff263bcfe79f89a0fbfcd22e069d1fb31ff62f558ff2afa5dff70fba5bfff40fb12b9ff
-26adfe2ff9c09ff206fdce7bedd779e060ec43b2d104e679e086c6e566d7ff7ac3fe73cb
-aef81d99fab4fe6ddd19b7fb0fafe09341aaff25f366ffb0f188da72cbfe890efab621cc
-ff04dd60e3af3fff09e5bf37e00cd930e7c114bedd7ad6f08fec79ddff4af213db55cb9f
-ff86f4a4f16cffcf5fd941ed2ea5d84a96eca40dff50f00f9ee542a5db37c9ff7afaa0b8
-fe18b0dd88ed93d87de0a3ed06b8cc27d969e093ed71cf9ce088d76ced41b0daa538ffa0
-2cf2bfa5c4fe6dfab787fc56f940b6fd3397e03e9fe82cdf5fcaed4bdd0cee5aff79cc9e
-fe30f8c6e85dd091e1c23ea0fe0afbad29c8e67fd3f379b6d793f6b979ed66d978fe93c4
-ff87fb4ea0ed932effaf43ff2acf9eb3e487d293ec79dd07d04ad827dbac0bfca1f586b9
-e56af2c766f8d687d97dcbff6ec2f586fbb14bed30e747cb9ef64fd51fde41f2c078cbab
-f47bfe92f6ad57c1f846fc0bf24ad980ffcb5ef8bf59c1fb9347f90d9bdc3af2c82ed99e
-ed7fcaaff365fbce85ff93fca96aff85cea6c697ed38da61d8a60a98f777fb1886edd079
-e580ddf59f50ff34a1e042f24cc62cfbbf99c5f51cd851a5df73cbff60f9d280e098c7ad
-f91ec735fb7bfe2ef6b5fb6ff964fb7df4c566d81ecbfa12ffbd19e03cb6f324feb52caf
-ed12d85edda4cfbb93fe6cd986e27afcb6ff9f12fe48e837dd4fe502d5fe2cafd987d279
-ffaee51093ed22dc95e161d3e480edcf8bea62a5ff84d818ff52ea0bd8a620f251d402dc
-c130bbfd45f724afff90f482ffb6d93ae0a9bfffa524f84dc63e87d8f06cc6f962fec08a
-ff9ed10eff3aafe480edb81ef3ab0add9e47f304fb5be47eed94e0b846b6d8974593e3a5
-cc94e03c9fee81ff5a9bdd7799fa86ff6dc6a1d254fad885ff93f31cfe52f705c2f23bff
-0bf0aa2d86ceec6ad896ff85d0a3f161c697eb62e238e9c02b9afad469ff88f501ffaf1e
-feb658ff22bcdd0fed6be498da91f980fec779d988f46eeb9fe079d88ae6c94de01eec5a
-e579fec055d935e0c095d9ffa5fb1eafe3950cd89b17ec62d970ee86e67ac1ff44facd58
-e2c06cfec1a8cc76d816fe52ff05f2a5e50effbbed33d917ff57c7fe27ddc1adec46d3ed
-59cd9fe54df77af1bf5ce434c967e383d899e07ab4eba5c75ac0d9f953bcfb81db11b7fd
-28b8ff87f517ff9ffab57afec54caae6c247cfb578ea9ec832dd79cbfb6ff7afcc4cfb2a
-d157e041b2ed17e59cff14fa4ef319fe5aa5fa7ec5a5d030f1a310fa86f57bfe5eb713bf
-da84ff45cefe79e5c4aef822fea5d953fc27a0dd7999fe80f7b425ee60ffa5f596caaf87
-d083fe68efc475c0fe81f28feba870e59506f787fbb722b4fc06afff1de0a704fb76b5fe
-9fc1fa33ff5af425d062fb94ff459ae5a525f060f7c874e059da3dcbb1c453c705f361e0
-86f216affe80f0be51f67cfd96f5a54ad89e32fe93c1f271ffbfa0f686ffc344b9d093c8
-a5df7bcded07b6f76bffbd52c3dd96e463ce02c4ec8ff15ad09fed68b8ee3afd4a94e1b6
-3dbbed86c5f802b7ed2bd93febd091d920e04ded39ddf75ddb30d8ad42f91cafdf4cd103
-f6bc4affafd634c964ffd877edc788d85bc7ea92cfed4cda0aa8e08ed681ff95d914e787
-f2d102ffc98de1a552ee88f9bf82ee32f785fe93d8b91fffbf94e03add24fbd010d953e0
-07c0ff86f3bf63ee01afe59412dd37d953aeed7ee230ff61befb3b93ffd848dd14f389fc
-79ff20b5f3a5ff69fa32b4f405bffa28a5d885ddbe5cf593fa12b5e06ad2ff64caacff88
-55fe79f9c08cc4fc6a25ec89fa7dfe93c6ec6ac1ff7bd987fbcc68db7dfe8df1a552f495
-3ce56cee9c42ff279dfb88f2bf51f016ddaf3ff9a6cb28be7fef874dfc2fbfff1ed8a508
-fe94d8a5ea3ee44beda4d054fe76f7a4cb5cadff91f384b5ed3cd619dfabd08bfb3ecafe
-7cfac193fe21fb65f1afe704d8afe4679efe80cc9ae02dd85bc9eb48d83bdd9bc1e452ff
-7acaafff53f701ffcb1bdb79cafe31f29847befb1296e5bf0cedb262ff0fa5d8ffa3cb4f
-ed16e25bb7fa399ee05fed30aff21cea4fe40fc3e028d3f8abfe2ff5d07be0c21ee579ff
-97c0fe55edc27eed5cdbfe3baee0afd09cd979e569fbd8af51fb15bcd29aff7af76ee82c
-d9c36cff9ded67d831cdff79d993fb5aff36e079d9b14cedb507e061d9c5a5d8558cfe86
-f21ec7ed25b7ed4daff894ef739eff86f7af18fe74d997e81de07dcf91eaa366edafff4e
-9ed884dbaae16dcef142dca4d32be99cbef379c108e5b99fd5afff0bcfacf11dfdc293e2
-75fea4d0be93fe79fbb68613c1dd81b6f948ffba60d229e641b4cb8cfe31b6ff9b67d8fb
-61f50efe4afa9ecc4489edc87fe078fd22b2dd0cc9a7fbaf09ed43d81ce5b9fa8813e661
-ed7ec69bf2a5ff1ee797ce6dffa3ee8642ff0df9cfa843bffd5c88d6f678feca41d80bfb
-c726d752e0c593ed2dd864fc5ff131dd4bd5fe9738d2aef45efb15fe39f7b679fb86ff5a
-f6c649d939df52fb65ff28f44d9be577ff86d8b146ff13cfb862f530ed43afce5bffd9a0
-51fe09d8af6feaa5fd93c4f766fb0ed0a0e508ccf8931cc794ec82e4b419f4afff119fff
-3bf0bf90fa68b6ff3e87e196bff990fe85439fdfc2a5fe25b7fa0aca4abfef5ffe26f2c2
-3aaff8bf9aecb628f0db75d1adfb9f3cde02a5ff92e64fabfd93f26bff48affe8cf5a5d0
-86feaffb8626c1f962ea0dd073edc087d824e5c331bee19476fe85faafeaa7d193de6dcc
-fb86d826dd62e89cc9a6ed3be08cff9ec0f202e8be70fac496ed65cbf212dc50f301abd9
-7bde58ff82d9b745eeb0ff3faed82bc6eb7cd965d0ed6cafcc5ae045cfed79d7f35ffe34
-c650b7f1b3ff2bf948b3d0e252e992f86ba5d888de9f5bfbd51ae05ccb7aff69b8ff39e0
-11beff81c1e47af26dbedd7ae008cf9fbfe50ecb42da0ae59d15c6f3ace57edd92fe88de
-af4bf494ff5aa5f89b03fbc123e5b871c51eed49bffead31ed5bf598fe07f359f881ffc4
-09d861e37bfe9d35df1fe846acff2bb6fe9bbed786ff2ef193ebc03af38ae574d96bcdfb
-7aff964ffe39f8b233d8f604fe94f49f2dfbb81db4d093f2a5d905e468b0d592ed6a96ff
-7adb23ccfc0ff446bae59370ff8af335e596d80e9feb86f7d84bb1f358d826cbfe1bf65a
-baf936fb74d885f27aff6ebfee934dd905ff33c951f22eff9fd106b0eed06edfc46aeca1
-d016fd5eff86f89501f1c68ed8b644b8d592d829dd4e97eeaffb22d951b8f693ff7bbed9
-86e076ce34ed45e5b0c763fd1eaffaa717c2fe24f3a20bdd55edc986e0bf77feb67cd962
-d816e0afca56ffd94ce614ff61fb93c4f45bff03f5c729d89fff86b9e47cceff0df5c92f
-dc79fec34afbbef557c93184eed01effa1f95f9ad986afed6ddc95f04bffb7ea3fd5fb5a
-b8fe7bf2a5b9e99ec0d966e079fdcb861aff4df2b33cff80f299d979e038c3dd9e4bfb12
-ffa9f77cff72fba5bffc8648c1eb86caed61d841cdfd1af860f493fb87ff9a5ef9a5ce86
-e04dd4fb5a9fd753e0c0aff7a905fba618ecc325ff99f382ff6af888e5799ff67ad880e0
-af4ad917e39bdd50b8fa69ed5ae039a5fe6199dd52a9eeafd30999ed9161d193ffaefcb9
-62e5bf76d4afed3affd42bffc417c1e093259fddaa28c4e632bece66fb45ff17b3fa25f2
-a336f9d891db86fecd60e047ba2df6bfaaff6cfecd79e060ed24e438ebc25be11bd3ff95
-38fea517ff83f3af5beda8c605df51d810caec20d944fe95ed77c6b1f486ff79fa3387d3
-e561d0f29b5ee552de39c7b0dc3dd801f2c726febbed1fccf67afec165affb86cfb115f4
-72fbd82dc5f079d0fb8647ffb9fa26c0ff1bdc4ee30593fa9c4aef13fe85c8b779e7a060
-fda55bfab1fe5ff687ff6cafed1ee087d88be47cc2dc5ac7e6af47ed2ed80aa5ef8dcbfe
-ed930fd957e51aa5f793d184db69ccb30ef281f7a560f1ce6ce0bf98dd0be19fca51ffb6
-7cf9a5f384baff7fefc10cafff31e703dc3aed93d9ff4b9eff9245fcd386fac093fb28a5
-ff6efbbd68e0a54198ff943adfa82ff2d61de041fed99cc9b682f7ae1fff9e01c0e39353
-d8a6df79eba5f899c1dd34cdff89dead51fb06f54ebbe37ef3cd3ded11cc96df07d1f879
-ff5cf60ef15afe3eafff9367ff96c1fe79fabf34fb129f53ccfb88f384b9e028d940fec0
-9efb78ff9bd92fe0c011aff747fc30b2fb64ff31dc79edc729d855e03ba4e05b9ef7dd60
-d893fe81cfb71ac36ceac42ebfdda50aed9819e45ed2ee7de9a72cff86eeb6dd54c9fd86
-d0fb9f57ff79ef8fbe4dff05ec4be0c751e9affe33f6cb81f23ffbc335ce5ffe7bf4af0e
-ec43cbf188db93d0fe34d803b6d96abfff43acf39348dcc394b7d8a5bccc94e008ecca14
-e061afe550ea87d4afddffa74ce42ecffa67ff7cf2af08f243e5ba51c4fa70fe9fde87d5
-7eeacc86d87be89afb399fff92fb79facb18ffd02c87c5f857acf06bff9ff2b910f986f5
-6dfeca72d8ffadf19b0ccd47c1e05bd907fb6af4a50eed4c8be7bd80ddab11f9d288dd96
-fe6da4fa80d96adeb217fe66d8a46cfe86e823d651e186c2fea423e558fb1b86f1afff79
-f99fe579d8ed5ecbfead29fb4eff3cf420fb6af752a6fbb6f123d0b89aff5ef37d04edc8
-91ffaf42c6a5cb5ae793d3a9cb21ed88b1d035ed52ff07f4a54df125f9c00dd0b1e44ae9
-08d3b77ceda967d9feaf16bfe229d850df3dfea5d1b81ee15ab0f84abe3284feaff793fe
-82f093d17cd830e0c07dffc50bfac42cffc58635f254d825cbed12d541f8c279ed9fe104
-edbe16d8b3f26dff94f9507fd8ff6dd3a5c2ea9e4593ed2fcf1bfab220fbb610ed9fd0bf
-91e179d59dd884cfed864ba2ff7ef70bc4e037d8f8b924e060da9ef005feb632fb5dff7b
-f761fe04f3b77ad893d96ac6ff93dea562f35afe86cfbea2ee34fe4ebff29343ed9cff79
-f5affb86d776e042ff96c2f126db93fbd9c255e062dd13ce38ff4df7a4ff6ff9b02ae2af
-69f2af60edb7fea6e67ef5ab58ff86edaa25ffbe59c4ff7df491ff46a5ddc031d9baf537
-97c6f63bff52bffcc565bcfe93c769e3c17fe086f960ef02c4fe4bf219feb92dd8fac241
-dd66ed54a8fe9161a1fe7af213fb6fdd86edbf9ce018d893dc81e567c7fd1df23dfbb60f
-d844fecb8cd9ad1ef761fe6db3d896e506fbc864d835dec10f99ed22fa93ee79ec4ab6ff
-62c70588edb524ffc0a5fbb99feabc18c4d943edb86cfece4bd8e59545d917c0ff3ee3bf
-94db5cfc9ad82efb973cda51e0c180fb06affd9d15ddaee90884b7d880e012dda7e05aec
-3affa436fe4fd832df93fb83afdd7de5a55fff9f10e493c6fb90bfde74d8e5c146d1adc9
-95ea52d622fa63c2f555fe3bcbadff43a5e0bfa2d087e579edbc1bff3bfac196d824c1f5
-14ff86d1b67fff92faa84cffcf61d95acb01da9ffd86cea3f4afff3cf5d09641e85ade23
-cb86f2629bfe86d3ed1ba5ff8908fecc7bed64a2d97cf32bafe507d089f375e7b886fba6
-2bedc589e071e5c286fb62fecaf222fb9af361fe09f79eda86f4d06df2a5ff7ad75be530
-beff43c0f17bccf561fe1fb63cfe17f52f7aff89f92aff43beff93d97de439b5eda0bcfb
-1795d8f98657ff26f74cfeaf7ce598dc84e553ff89e07ad9af54fa39ed1ce071cbee7bb4
-f785ffa5f35fd834e00fe448d875d89f65f9d87af193fa6bfe40e5be04e65094f7d83fca
-f4b95bf893fbcd08fe61c4ff70b7ed46addc11fecc1ad3faaf4aff27f350ff3fb5db944a
-92ddaf43b8d890cb83d672e60aa8e5c517c0ed26ffb6f76acd93da04e94cbb87d3a4e8c3
-95d0afeed80adda5ed7ce2a50df14dffaffc68cd0ce05fd8f5882ccbed7ae065cdbf25fb
-5cd868f214cca5f04bfe41f4cb8edc9ed752f3049fe11dbfe02ed889fe7ff669fa80ff93
-f212fbc91db6ff09c64cd8a1db77f3ca7fffc0269bfb932fa5e423dc3b86eabfa5dd51d0
-f979ffce61eea14fe49561e593d8accb93d8a3ed2af7c5ff5ff886ff28f24fff24f154b8
-ff3993f89c61dca30f95e021fc5ef8c196d9ff33f372ff59fa449d6af6c352bfd95ef4cc
-81e0c21197de86ff7aef9e4ac1ffae01feb8a4f382db8aed07ffa4bbeb2eb7d09cdf8621
-ff61f774fea5c2fc6dfe4da5fb52e616ccbc9dc4da2acd5de0b48aed79cba9f58cff0db8
-fc30a1e036dbafeb51bdf1d879ffabc2ff9c4afb1ceeae2fc9b51efe87c6f779ffca0df2
-5cfe66f710fb61d8af1db7d60ced99e07cd894e08afbd360bfec51cefe79f3c7fe79f0b3
-dea03ffb0eb0e05bd801d979c9fdeab686fe1a9bfe33affe3c9fd8f82bf2a4c726feafed
-6de49bd33ed913ff4af8a8b9c93cfd67f75ffb03afeabfa8d00deaba34dd55d888ecc87a
-f2bfa9e446fe1ea5e67bfec054ff3de550db34e0afed5dd0adff79f688fb70d0ff8641ed
-bf5fe00ed6f18fe47afe99f568e07ad926b6ed36bbfba5c520eda9d08abfff79ee6ce5a5
-ca3eacfe14f958c82c9bfbd975ff06afd837af49d8a53a86ffd06bed79befe9eed86e5b1
-1fd036e064edce7ae5c767d2fb895abdd241e6b778de0fd850fa90ef75e488b4cb31e779
-e093d685e393c4ff37f94ef196c781e593ef24f8b608dc9928ff5ff193bffb6bf4af2feb
-86d680fe95fa834ac3fb84ed11cd56d815de9f02c2fd9f13fa93f677be37b6d815d94dec
-a6fa56ff74d7af65d93ae7a0c73ce449ed02cd9cfe54f574fbd06bddc0a5feafed861db1
-d996ee58fbc5f566ffc6ec1cb5d995fa21cf40acf82eff9660ff80f9aa4ff2a017eba622
-eeafff75fe65f9d052fb81f2c318bbfb42c1f079fa95fe5af20cffbf28ef6ad88be076ff
-2afa5bff79b0d06dff67facb82ddaf37ea52d608dd9cc4fa03f2b527b9d3ff9820df53d9
-8af17ffe66f2afe06ccce977d957cbfb94ff65f384ffc30ac1ed90e101fecf92ff7bf66d
-fc96ffa2b9f935c8b52fe7bb1aefb34bf301e44abcf3cb55fa86e28e1c9fe009b791f45a
-fe31aee082f2c968dd7df0c7a8d805c3ff2dc0f887ffbf86e50addabca1c96e9acd7379f
-ff7acfa5fe0add51d819cf9cdd4ea5dd81d943fe0fb4ce9ed8b815c2fe40f097e443a1fc
-06d0ff7cdc95ed83ff5ca8d859e0a5f01088f3cb6dffb8fa39e5afc84cff27f847b6ff2e
-f2b11dda48e0a5cb3f93e59f36da6bed9d2df253d209e0b318cf5be088dd7affd49e5bff
-c47ae088d87eceff8d3be0b627beffb2ed85d0fa46d6be93c5ef4affb917feafd712f749
-f28ce572b2df73d852e040c2f59333f1afff8620fec0e54cdd2aeb61cd87ff84f66cfb79
-c1fa58feaff299c0fb5fed3de8a7d983e0c00ed2afed62e56fb7f219fe4dcf22bfef88ff
-73fb7be6c144afe39928a7dd9623edba94d988e183c7a5d36bff9ff7ba03fbaff570feaf
-c0ff4cbcde86d99dfe84c8f985f222fe50ed0b89fad8af43fa23ff64f29f15c1f77dffa5
-dc4dd72ffe52a6e57ff612fc78d9669ded9348fba279dd99fe3fbefa5afe02f393fc9d57
-d0fb7de05ac7ed9369b3f797ffb794f4be25edafe032b5ee12e69f1bca52db24e086ff6a
-f64dfb2ca4ff86f730c8a5f947c18fc7aaf5a2fe3be51fcb4ada37fea5fb02f2b6fe78cf
-ff61f73cc0fb1af353fe07edc134ce7eed6bdf21d651f2228ecdfb60fe1cea67dc52a5e5
-6ad87dd094e0c13880eb94d8bf9ce736fbaee562d810f183f974e97bcaff26d961df99e7
-06cdfb39dbbe63e0fec01dd0a5ed15da84cc62dc2ad8ffbd4cd906f3a63bd8f204d157c7
-1efb43e2a5ca439effd25cd972ccfb7de579f4aac602d07bde93ccf35ad879b6ff12d886
-d9fb33e062d889dd7ab6ed9ac0f265de7bd760d849ea0da5d886e4a56fdd99d87ae0b05d
-e592ff55d09bff88e47ed1f69f13eca7cb94f527ffbf3affb0f540fb65ffaaf704fe5af5
-47b6d771da2efe9fe460cf0bddb8f71396ee89ffc34cbfff86b8e470ffce28ad5ae26bfb
-81d69fed93ff7af2b01388edaefd77ceff61bdff8bef82e566d96dff7ef2c20188f795ff
-4ab4ee30ffba43f19ffeb712ff63bae51afbce69ed94ff23afee82ff13f84ec7fb61ff16
-a7d82ced93ff8ef585beee3afa06fece4bfe31f8c586fe77f026befb39afd810fcb645e0
-afc73df14aafd780e096ca13a0eab6d929e087cdbc91d0a5f90bff94edbe47c3ff8ffca5
-3d9ce0c057d137abfaa354f221a5f40c9fedf887ffc52fde51ff36d41bbcca6edbfa9749
-c1e62793ed9f46df30fea1d0afed11d860fbaeebbb24b7e17fd4a5c78afe69d848edc98f
-e03ca6ed9d32e0b341bae379cbbd56e57beda507d593dbf779ff5ac71ce03ccffe6bcb9c
-de65b0ea81d7a647f213b6d2a5dd7ac9f962efbf79ff86fa79ff83c0fe5dfa0ff358fbd6
-87199ff2c152ee3aff1ee079d9b63fc985fa932ce579f0b5fe6df3a9fe84f01bc4da7aea
-cb7ad9c143d2b809aff68ae97cb6f4a5fb3ffeb731d6fe68a3f9d815cafa7ad8af0aff2f
-9afa91e533d851fea5f339fe06f753da14e581fa9b37f284fec350bffe86fa9ff550f909
-fe9fcdb637ffaff24ebf3ab9cda0e9b572fbaf28b5ff79b8f220c0f60cffbf96c3fb4cfe
-0ae89f29e0a54aed07d843dd25b5e406eda5d97be0a962f0c4fe4aadff84d899f187fd5c
-f489fe03aef1cc51d81fd94cd831db03b7d993fb3bff9929fb52ff9332f1d97aceb50dfa
-c645d96ae0a059f6bf0de0c342affe79b6ec5bf1c66df3c047ca79ff8fda85e071cd9fdf
-85eb7afbaad021bffe5ed709f793f25cd204d96dd68ddf86f21dfed382d971cafa87fd0d
-f34dfec0d95af9d818e04ec6ff9a68d989ec2be56bdc92f259fec670ffcb87dd7bf388cf
-fb61dbc375b9ff29c0fe3991dc7fd81ced61e566c62fd0aaea53c1de5abafb84ff94f788
-ff7ef9cb44ed87e05dd3f1afe384ebfe9c4fff3dfbd85f9cfe90f107d0ec9474f385ff87
-e14fdd21bffc369ee086dca5feb81bee40fb0fb3fa67c1ff36b6ca5aeda2d980dd95e96e
-db27df78ffa5f125fcaf42c2e09351f62bfea11aec96e07bd8950592ed9a61f5bdfc862f
-c3ed3cfb60d8a4f732cc75d887b7f21b98fb36feafe65193ed9e34fe48cc9be87acefa05
-b4fd9ebefb0eb7ff9cf816cba2f371ff189eed63cd07c861e0ac5dffbe0eaff8bf8d47c7
-02b66ac8e686e0976ceecc1fd879febb28ffcd5ada2dee9bf685ff88cbaff94bfe05f15a
-e3a2cbbd6ac3e540dd1f9df2d827ff88f54df91cff4ac8abff86ebb845b5da60cfff9b61
-fac19ddd66e1afd045adff2ff7c6ff40cbe9a24493e5adfb87dd7dc6ff5aafed95ff16f7
-40d9b0e36dd9c00fa2ffc219f9d886f16afb0bdd52bbeed057e032caa5de43d878e586fe
-27d886e0c32abce593edb42af19ed075fed88614ffaafd94dafb18a5f225c2ff2fa9ec5a
-e4af82e0a61bfb93d7b604b8d55de80fdd6ad896cf7cd836f95effa8f688ff94f0be4b8f
-e4b30db8e07acbbba3fb0fceb12ff793fe7df4950eedba2ee902aef340ff6dfac061e5b7
-74b0e4860fffb2ee03d951d31df2af07c1fd21d97ce069d08bfe52f6a55df1cc33f4b26c
-bee51fd9b4f286ff984492f293f77dfe70f4a8ff52db6aeda5fa45fea6f53efb4bffc253
-fa23e59f36c3e561eb2af24a79d6ff64b0dd78b8f880ffc138fa50f4c77ae445fea8fa28
-d994f280ff2be551ffafeb77d909e02dd85ad061fbc6fe62f39dfb3aafef2df379d967fd
-c45ae212d839e7c978fbd67dffc88cd883dd0eed8ad053ed1fc2fbd668dd79ff9ef485fe
-56e78edf81d052fba3beff02a8dd1ed1ff9a64e07ad2ff3cafff884ca2d82be6c1ff13dd
-50d724e2c206bfed33d5b810b6ed7fd96bdd9ad079e694d8b66bf6aefb88dd7fcfabe0f8
-b939bff703fdca47d9149ee88ed9b962ff94f27edc68ed79fe54c7a4ed84f3c21793fe95
-d484f16dfb19d99303a7d83dde88c1ff72d856e597ed18dd9cbdf6a5ffb651e09f47f1b5
-37fe20f8a5cb9bff16f593fe9f37aff132d8b741b5e06ecaa5fe42f16fe1af35ed58e5c9
-83eb932fc1fa91ee03a1ec5bc5edb8fe6bf9b577d8af73fe8df05d95fb6c9ffb80ff95da
-5fce08ffaf1ef8b210fd61fec94fd91aed3ebfff59992687edd879e3569bf489fbc94aff
-019dde36d810cd4dff9ecf3abdfa1dafd93a9dfbd027ef4dffafcaa5ed7ae5b6ee79ffc3
-61e505db86feaf39c2fa6aff3fcc5fc686f21effafcb79e566edb951fb5cbfe086d86cd0
-f87abffe62f78afb11bced1cd29ec0ff0ef5c293f8b638ff63fbaedd1bd859fdcb7dfa95
-12e039afcc1cfb40c9ed37d9b6ffc63bc4d921e14cf238fe9ce083c6ed67dac18fec0698
-f28bff7bb0f30cbceccffe9544ffa5bfde23d866b6f179c1fb50f8a5ed87e0af18f2a5df
-70cbff79f7b760bee47ddc9c14e751bfff49fa2fe1a518fe95f9a8eb1dd0ff53a5d988e6
-80fd26fa6dd962ed0efbc3a6d081dd2ae4a53ffe25ef49c0eb139fdc21e3c599ff4ff788
-fa2f96d879dd27cf60edafc748f075ff7fe3b151de2bd8fb84c3f063f39de986bef88117
-86dba5f279f7ac88c2e67af155fa33a5ff3af24bceafe138d84dcbe466d2fb6ea512e5af
-cb1df282ffa0f70dd3a5e56dedbd6cc4fd2cf7c188ff09ee9945e107d8f140a5fc31ccf8
-92fe34a5d886ce5af7b1d258c943bff66292f1bf31f201d88fdd9fe793ce87d99446ff09
-f560ff88f3c87eda9bff935cfbcb79edaf3bde80d8ac61daafed4cfe9efb81ff9612e19f
-cfb93ff3be23ff94f4b647afff05d97bd75bff01a2e0b0fa4efe0de059c8fb05afd325d8
-87e4cb79df9bfb7bff77f59cfab821fe9f41ddf3c165fa8afb6beb37cd61ea56ff2cafd0
-1eff419fd85aea48afd862fbaec1fe6690ffc55af3b662de79c4f50cfe98da80e02cf188
-ff78a0c7e40bdf9ec1fe5bed47d207fc33ff58f6bf9de487d579d903b0fa4fe50bbce1a8
-2affc186fe6bfa27f0bf01fd6de5ae1bc1e040d2fe5af709fe98cb86edc260ce74edd579
-e5acff27dc6ed2fc5aef93e5bf93b9ff3cd998ff74f66affae0af9ba1dd5bf28dea811d9
-87ed82c6f97a34ffb52dd952d287dc7bfe94dd86cbfe80e587b8f377ff96c5fb7ae522da
-4f93edbf0fea99d386ff0ab3e36edd61ed14ff52fb9ad90cd8fe2aa9ff7af849b6cda5ff
-6bf2b1d6a3e01fde5cc1fe23f0b6fe67cdb683f4ca3ff2d8974af209d0a5e55affd086d8
-3cccf368acf174bdeb86d86be914fb48a6f70effbf24fa9744bfec88f4af3fbed026ca33
-ed63d3af7cec50dda3cb42ec95d76cfe52efaf64fec16fff5ada04abe6d879c7ed79e20b
-feaff31bd132fab410d95fefd005e0bf13e532cda0f880ffd02de0b077fb1fed52c2f23d
-ffafd093c5a9cb74e565eeb34eedcc59d893ea71fa1fc1df9855f979bffe86f332a9d895
-47a5eb1cffd665a4ff8c61e6c47abaec51c8b38f32f59cff85b8fe0ac2fa2eaddc37f9b6
-db6ed0e77edd9f66e05acbfe934ffb1fe39cff7af982ffb3f41ffcc02df9ba13fdbf86fe
-46f2b2e57afbcb39edb22be693ffc95c8cf107a2ff93efa646c3e480edbf70f59bff4593
-fba566fe85b6ff52baed3d9ff281fec14cd8ba9efb82d89d1efc51f336f9bc20febe7cfa
-be6df437fe15d796ef8739fec218ed42afd96ccbf96fffb9f67cd99930f9d805b8fb1bf6
-a6ff6afb17d9f9ba5de70eef49d9b465d893ff7be59f5090ffa32dfe42b9fe8ef6a911e4
-c2a5ce86f20ce960dda34697e067eda5cc5ae892f220c5e088179ed901b7d873fbc466f5
-449efddd56fecf3bd852cbfb9b60fda53be5c328caafdd31cbf54bd4ed73d914c9abfb61
-dd22d9a4ff6ae51adb61f0be79dd95d884ec9fcf3be09b18e694dd85b0ff40a9e4b97ae5
-a5cb96f114ffa43fe310d838e54cfbc25c93edce70d858e034d986e69f48edcb7bd879e2
-86cbff23ed4dcf18fec6ed09e5c686f0d207d838edd160f234ff51afd886d815fbb6ff7e
-d019ff7afbaf62d8b65ea5edc5ff5af679ffab51e1a4bfd8ee199ae56dbef483f9932bc0
-dd07d6ff60a1fb7cf369ff79b8e6a220fa86f463e402cbadf763f205c794f8affe28d3f7
-3cff03fb46db8bf462ffcb7afb5fc2e269cbf50ffbce2aff73fa66d87adfc083f287fe9e
-c774eeaefe2fa5ff92fa81cba1f15dc7fe8821fba6ff1ff65098e0b6f86af2b23aaffa5c
-abe0619af380ff669afe82d894c1fa3ffea9ee79e209d99fe490d903c7ff33f7caff3a86
-b8ed94e020cdf30efb277fb6cb38aefa22b4df15edafff79f75394cfed4cd819e19ed907
-87f2c75be0b0fe93bcff4996e07cb6fe59cc44a4e57bafc886e17cb5ff0eacd929a3f103
-b7ff25f7b677dc5bafed54d902e5adfb24f6b548ddaf07f7b519df55bee543ed08b5fe24
-beff0d96e0afd445c69fd1affa883ea4d880df93d97acdfe1bf8c854e0a5c3e627beed05
-dd72e0c551bace54f85cfe41f567f14f9fde8d1093d8fa24d046affa61b6d595ddff4df2
-ffd97aec67c2ff62d838ecafbff20cb5ff85f8bf48eec0ff42affe952bcb39ea7ed1fc32
-c9ed29dd90edc050ff11edb64cf2d872c7fd6cf7d151e4d84fa9d930ffc493fe7fd888fc
-c4469ee55bcefd79caed61d6ff83cff46bdc9fc1eb51f379ceadf730ff6bf483fe37dc13
-edb9ff05fb55ff1df64393d9a82ffdbf18fb52b2f84dffa7f51a96ff24f389c0df79cb9b
-d886d6f360febef44daee46bfec986ed7cfe40c288d793bb09cda5fc44acda86e09920fe
-65e277c1e03ea5fe935fd89de00ed0f286dd6bf917afe85da5f67fff09fa93ceb761fecb
-9426f7b638e0b17ffeaf79f2cf84e0ad43eb09dd3aedaf62ffd086ff9c17e051befb9340
-ec9911ffb927fe7bd888de34e461d9a0ed07df5feb79fe85d76de8c296bbeba0c0ed78ff
-d86493f27fc8e179afcf5b92e4c06bd89dfc2fafed1cfa38ffb521afd92fcc9fff81f2a5
-0fdb2de058b5f615fa5ae986ff2fd399f703fe4af6d186d892f52599fbd610cefc30f669
-ed55beff58eec09fd983fecf3ad872d76bdf2bf5d89a18ffa9ce59f0c419edc12afbb50b
-fe5df193bef89cffb831f3b60cdb3ac5f292ffa221e4bd69faacc873e259d517ff9dfb7f
-f1b44fc48cbdfba5c74de52bdaaf46ef30cf5aff01d04bafe8c445b9ff0ac1fb26d8fe3b
-f2a5e64ccaa5ff7dd885e0c26dfbd072ed7ae00cd93dc1fb8bff93cded66e0a0c329f2af
-e179ed6ee4a0c7b75aef31fe50d9c452afe581b6c98fd4affb9f09d99927ff50f10f87fb
-b4f23ffeadec8641fad468e683fe9f71ff9661e6c668e89cd119fe4dd25ec979e4c18eef
-7cfaab4bd92fedcc79f2d02ddb46fb86f093e0ac43bfd804fc86e4ff42cf1bed9fc0fa5b
-fe86c5fb7be486b6f299fa11ff9cee6dacf36aec7db6cc5ffe02f068da13dd4afea20eec
-bf3aff97f753fcbc93df64d84df3069effad4bfeda9341c5fb1ab6cb5efb11ff95cca8e4
-78f286fe29f44efa1aff2f87d8f479fecf6ce5afc3dda22088e0c35a94ffbf79afed4ad8
-04debf41c8fa924bffc079f9a6c2e586f012faa522fe56e08ad0fe78f965b3ff0ca7fe7e
-edb0cb38fe62f9c569ff95ccb826afd893f862ff078be09af30eafd921fac635d87adc6f
-e020d2e53bd9a0ff10f693c7b686ff80f7aff260bdf7955ae5ad02c6a5d061eb1cf2a5e6
-7fd9bf33c6e18652c1fe9661bfff31f07ae5c062ea1ac0ff01e994da72dfaeeda4c1e64f
-b7c742aff6933bff4bf4b7ff9e1cf9c506dbf033c1ff93f77cfba5ed0dbfe0a120ed3bda
-7b29fda3dc68ecce79d82dea05b6c69fdd3bd892f34bdf9801ffa4bfd90fecaf28e548d9
-fe7df253addd7bccf2ad39d8a5ff61f150a2ff89f659cbaefa9652feb72fb1d977e033ed
-d227e3c23593d2e545cdff83d8fb62f22dff99fbbe31c4fe71f991f41afb9fed0bf2ade7
-83d993d8a63efaa2fb5badd8b53bb8ff8f37cb5bf76eff24fba5e00adabf9ae078d857e8
-bb70e5ac67b0fb8812e452d12fe05cb2fc35f5c486ff95f2b1cb38bbff4496f5a4ff6df7
-5bf114ffb85ae7afca66f8d260e02a9af284d0f66efa8dc40fb6fed130e9af26ffcd76e1
-80d887cbec62df28b8fe3887eacb79dd8fed47fa9eff539ffb5795d8fe098cfbab1df044
-afdc8ad8b648c870ff9515df48e562b3cfff78d859d824fc51f720ffb1c96dd288ee44fd
-9ff114bffb93e404d887de7aed86fe76f922c5fe01f179cfff4bd7fe24d9b8d8a4ef87d9
-81ffcb72d869ddb449e510ff72f885c7afe01ad986cb9fda93d886c7fc8616ffbf25acf1
-86fbc25eff52bee0a738eea5e03f98ff78fb86bf52fb19f531feaf13fbbea5e57dd7ff05
-bdf718fc62d0bc20cbaff279beff62a1edba65e194c8a4fe35f916ee87e5b443edc0a5ff
-95d8f8274fe5afff7bdc9ccb89df60ed06f537ff96de7ad863ccec6ad87bfea5ed53d61d
-cb5ed888eda563dcb1fb2ca5f37dbef28448fe35c3ff1af2a423f3abfe02f9ca80d891de
-55ed05fb5afe61f238ff1ffb4ff326a5d5ed77e588fe3ad969e6af32dd9909ffd867fc84
-f7c916d95ad6ed95b8d29fea6de096d047ff0af455afef935fe2c3a5fe86f182dd0dcde1
-18ebc82bfecf35ff6ee67bd083e09afe04f7d979fa59cc0ebd87ddf29333c0f946f408fe
-79d096d886e0c50ebff825fea64aff21f2c342b1fa8bff95f232ff51beea93449de3c917
-ec419ee1c19bf450afe566d0ec9343beea56acfe61ee25d79dd87addbf93c2e785d077e0
-7bccf84d9ffb58b6d894bfff11ccf773fbd379b0ce20eb55bcf188e5a50cf63eff4bb5d8
-57f488ed6bdac29edf40d3ff9f4bf303d83ffa5dffaa4ff8b586dd7bb1ed5bd806f15fff
-af51c7b86aaed024eb85d9fe5dab02c4ef82b5e96bd2afed31ff4afbb579f2a56ae284db
-b879de5f9dffd111dd48e56fd897cdfb16ffc6ed6095fe8bd0fa07ff63d5b979c5fe3d87
-ffd87ad093ed1bceaffb69fe30f7b13eff0fb0db3dedafff4293e0c12dc5fe0be951a5ed
-81b8e34bbcf350feb579dca14afa32ffc87adfc293fa03fec623aafc9330fa86feb723db
-bf93e76de3afca79ed9ad43cff51f913c3f686fbb6dd25d4f57dfbd838feb66cffaf3fc5
-fbb1fe65e217c9a5ff55a4d987e4c21ee659ffc346fa07f6cf92ebbf3586ee9fcfaffe08
-f7418ede86b60dfbd432dd53b6cb93ed20dafb059adfc115a0fa31ff5ebaf342a0e28ccd
-84e5a5d19afa79fea509d8befd04f297e250f37bfad045fe20a1ff9418dd88cafb02ffc3
-93d8b64dfba523e574edb079bfe041d0ecb616c86cf67bfb2ac5ff971cfeba26fc6bed82
-d0ace59b29dfa54b93fa9f3fea1f9fe586f3cb2fe09ced70e02bd496ff86ee25c0fb14f6
-5ba2fe80d92ded9fbee09a3efe15f5aefbc356f22ea4e07cc2f4ac5af2d879aff67bff86
-f75bafff9458c0f678fbafe06cdcc29ae482ffc70bf24fff18f153eb2adf4ccaf25b87d9
-b16aff78cfaddc1e9de48adac12ec5ed61f83593ed86e21df26cec81d0f35fdbc14fd9ff
-6af8af79ff93f2b059e088eda943d5ea59d992c1de04b6f22f89feb970ffbbed63c1e088
-c9ff53db0ba4f760fb14ba7af656f23cd861b3e07ecd93dcbf3ef4abcb8afc5286ffc780
-d86be0297fff93c1fa4bb3e424d0fe37beff4ec2ea14de3ae6cc73f3aee926d951ed2ef2
-af0ffb4bd929a5de94d877dd88fb7cd6aef76398ffcd38ebc424baed3193ffc663fb79f5
-a6fe87d97de8d0a85cb8fe9ccf07ff47bbff972efb9f11bbca1ee04dd832e4c207ff50bf
-fa7aa5f56efe38affbca69ffd754eeca3cd912b1ff09f24abded7ac6ed84d888ccffd88e
-ddbf7bf9c3fe39f24fff27ef88d061ea14d8c5f11fa8e547ff9ad8bbd902e363b9ff85f9
-6c9fe5941ded6eb4d881fea50ee032d865ff9ec993ce5eff86c0ed72cbfa62fe35f5aaca
-44befd0d93e0c11aaff77efea4f683fbc05aedb404ed52e041d70effbe24d9fe3bc84fe6
-a5c0e18715c4e585eeafe562ff6ff69cfa79fea5cb9dd915edca0de0c495f1884ae5bf79
-e00797f77efbcc85da93fb9b1cfca745ff23f3aa3b6bfe0e9ee5a50b92d89bd579e0adff
-09f8b5ff8136a5d7fb6eefb90afa4ea6fe87f5ce1ad93dc9ef61d9c4a0fa27ffbf4ac1f2
-92fe86f1bf4bfd0bf9a5c4e93ba5ffb754e586b6c603ffa0ee67b8ff34f186e060d849d7
-15d863ddad37ffd89ed291f86cf2af67fb73bfed86f96efe3797f7affd78d959fe3bf094
-dcb90ab6d646ed30f777fe538fffa84ae421d8fe9f16fab4fed45de0a551ec78d863e4cb
-81e6d070dd5ac6f8ecafc2fb2affb6f55dfb03f7c5439cdf934997edb6fe883ab2cc65e6
-7df2ca53dd329eed93fba812ff87fb56d2af69ed9ffa60d047dd14a9e283d977e01d93fb
-d80696f61dd0fe80e078d821c9ea6fd9aafe2cfbb8f36dffa9ed08f4c261b943ff15ade0
-c44be5b3f10caed821da83d1ed50dc42ed07d097d884cb2beda7fe87dd80d861e0a4bfde
-65ccf884ffa540cff2a44587b0f12ec7fe1af937ffb65dff31b9fa93ee9f1c9352e079d1
-63ec36df6ddcb07cfec161fbb9d95edd03bff7da1cffafd32c97eb82c6ff7ad35ae0c04f
-dd02e57af2b909db2fe497fa88cbff35f4b6fe57f2b9498bf3d27adbaf3bed5cf98cfeae
-43fabf5a9bdd930c9fe0934ec1fe6ee58ff2c697c1fb2f93ff9a39d89ff365ffaff518b6
-ff93cca6ff68f31ef95cfe7ada52f21bff94fbc33cf224fb9418d256c2ed9360ddb9e91e
-beff619bdec29ed111f3afd98706d847ffcfd9ff32ed95d989cc94ffbf4bed1ce5b12ff1
-22ff79f4d8529af1933ffeadf61ffcab43dc08fe79f2b274f79ad82efcc693ff7cd81fec
-5293d89928a5d86dffc6e65fbfff4cfb9ecbbc2fde60e387d104f5ce47eeb6fe36d0f97b
-b2d52afd1cec5edd70b9ef09cbf978ff31de9543c1e562c80efb52bfe086d890dd97d036
-e5afcf5bea0d86ffabd778edaff59dfb09b8fa27ff5bf77acfaff28947f070e99752f1c2
-fe79e4a96301b6c95afa14fe51f1109ffa91d886ffcf78e0a4cc438affc976ddbe6ae079
-d867cdf971f1a5d92efecfa846ffaf79e657c3f167ffa5c3ef79fbb8ed01e59824b3fb14
-aee56cf10affa7c3f313ffa3ed7ab3ff70d881deaf18eb44e399cab679f634fecf7fe0a8
-51d290e57acbfb5aa3fb80f279e79c34fb4dff03f272ffa264fb93c9afdd9960eebc4bd8
-37e062d0eb81d992d896dd36e60cffbfabfe42c0fb933db6f428bffbef83fda7bfdf86d8
-80e5d030e466f3509efbc20efbade9bc12fd5af9cb0dffb0ed159fe0b74cb6ec9321e8be
-65edc138fba00ce0af40fd06e05ad97ffe86d1f179cf9edd2dd888d96bed4294d8b63bb9
-fb1ec3e627f260ff95beff86f84affd887e4a520fa57fec3ef27b0fe05abedd626e09fd1
-21f4c3aded9fc5a7d612edc228f150fe2bf9c102ff87fec57dff9951fd68f410fe6afb86
-d879dd21cba5e028d0ed7ccd9dea8851d823e445a4f426ffb878fea5cb0bbfec3c8ee57b
-f22883e2a5ed3095e9c13d93febf27ff8cf86bc8ff7af9d011feb66eddb87af6c095d2af
-ff37cd4ddf38bef93efe5cf693ff57f798bfff78f993da6ae09f57fbaecd3ded52cf0eaf
-de9302fb49c0d993dd89119efbd85bd0f83892feaf41ffb560fe0fce59f73bfdb66de09b
-bed88de555e895cfb510adf227e5c01ccbace54dc9a8ee5af993fe7af781ffb013fa4cfe
-38ddff9cf27affc770e0af3aedc354ffa9f75cd1ffb74db3d8fec14ad1afff8760fbd85d
-e284c4e516dd52b3d83fabe082cbf54fffce20dd5ff96b9ff286f79bff64ace486ed74c9
-19b8ce22e14dd428ef51ff86f7be8e01e5a1c2fc6bf3d875f1afcc9aff78f33ab8ecbe4a
-87ea9d67bce06ac7eb7ddabf93e580de89d97acaf945ff08f338b9d384f53efadc6ad8b5
-78fea5ef72c5a3ec01b9cd2de051d904db4de1a0d893c7b67b
- >
- >>
-
->>
-dup /HalftoneName 3 index put
-/Halftone defineresource
-pop
diff --git a/Master/xemtex/gslib/image-qa.ps b/Master/xemtex/gslib/image-qa.ps
deleted file mode 100644
index eb22b919b73..00000000000
--- a/Master/xemtex/gslib/image-qa.ps
+++ /dev/null
@@ -1,1827 +0,0 @@
-%!PS
-% Copyright (C) 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-%
-% $Id: image-qa.ps,v 1.3.2.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Tests for the image operators
-
-% Specifications for Image operator testing.
-%
-% 1. All 8 standard orientations (0, 90, 180, 270 degree rotations with
-% and without reflection); ditto those orientations perturbed by +/-
-% 10 degrees, and by 45 degrees.
-%
-% Enough space is provided around images on a test page to allow
-% these permutations to use the same page layout. This will make
-% test page construction easier and simplify page checking.
-%
-% 2. All 9 image types (ImageType 1 mask, ImageType 1 opaque,
-% ImageType 3 with all 3 InterleaveTypes and with unequal scaling
-% for InterleaveType 2 and 3, ImageType 4 with both range and
-% single-point matching).
-%
-% 3. DeviceGray, DeviceRGB, and DeviceN color, both direct and Indexed.
-% Indexed color will use the common pallete size of 256 colors.
-%
-% 4. For simple masks, both colored and uncolored Patterns.
-%
-% 5. CombineWithColor true and false; several different colors for the
-% true case (including black, white, other solid colors, halftones,
-% and patterns).
-%
-% 6. Source transparency true and false.
-%
-% 7. Texture transparency true and false.
-%
-% 8. Different RasterOp values.
-%
-% 9. For ImageType 4, different color keys (out-of-range, specific
-% color other than white, range without white).
-%
-% 10. String, file, and procedure data sources; for multi-component
-% color spaces, MultipleDataSources = true. This is tested by
-% constructing string data sources that are used as input to
-% SubFileDecode filter to create a filetype data source. These
-% filters are read into scratch strings for the procedure data
-% source case. The procedure data source scratch string length
-% does not match the raster width, and the width x height is
-% not an integer multiple of the string length.
-%
-% Also for the File case, the number of bytes consumed is
-% checked after the image operator to verify that the exact
-% amount of data is used. This is particularly important when
-% the currentfile is used as a source (possibly through a
-% filter.
-%
-% Image bytes per line are < 500 bytes to exercise direct and
-% buffer copy gs_image_next_planes mode with the default stream
-% buffer size of 512 bytes. Procedure string size is greater
-% than the image bytes per line for the same reason (sM and sD).
-%
-% Total string size is kept below 65535.
-
-/WidthRGB 83 def
-/HeightRGB 89 def
-
-%
-% 11. Banded and non-banded rendering. This can be tested by running
-% test files throuch with different page device parameters to
-% force banding vs. page mode.
-%
-% -------------------------------------------------------------------------
-%
-% Testing the RasterOp-related functions (5/6/7/8) is not necessary at this
-% time. They are well isolated logically.
-%
-% Testing orientation (1) and color masking (9) would be a good idea at some
-% point, because this code has broken many times in the past and has had a
-% long bug tail.
-%
-% The really important things to test are 2 (image type), 3/4 (color space --
-% but only with regard to number of components, plus DeviceN and simple masks
-% with a Pattern, which exercise special control paths), 10 (data source),
-% and 11 (banding modes).
-%
-% ==========================================================================
-
-%
-% Procedure to generate test mask data
-%
-% WM and HM must be defined prior to invocation
-% MaskGen -
-%
-% The mask data is stored into a string named /MaskData
-%
-% The mask consists of a "target". Bits past width WM are
-% filled with 1's to make sure that pad bits are ignored.
-%
-/MaskGen {
- /H8 HM 8 div def
- /X0 WM 2 div def
- /Y0 HM 2 div def
- /WB WM 7 add 8 div cvi def
- /MaskData WB HM mul string def
- /MB [ 128 64 32 16 8 4 2 1 ] def
- 0 1 HM 1 sub {
- /Y exch def
- 0 1 WB 1 sub {
- /B exch def % byte within the row
- /C B Y WB mul add def
- /P 0 def
- 0 1 7 {
- /b exch def % bit within the character
- /X b B 8 mul add def
- X WM lt
- { X Y eq
- X HM 1 sub Y sub eq or
- Y Y0 gt X X0 sub abs 2 le and or
- X X0 sub WM div dup mul Y Y0 sub HM div dup mul add sqrt 9 mul cvi 2 mod 1 eq or
- }
- { true } % pad bits are always set
- ifelse
- % stack: true if pixel is set
- {
- MB b get P or /P exch def
- } if
- } for % Bits within a byte
- MaskData C P put
- } for % Bytes within the row
- } for % Rows in the mask
-} bind def % MaskGen
-
-%
-% WM and HM must be defined prior to invocation
-% BPC MaskGenBPC -
-%
-% The mask data is stored into a string named /MaskData
-%
-% The mask consists of a "target". BPC is the size of the elements
-% in the MaskData string (must be 4, 8 or 12)
-%
-/MaskGenBPC {
- /BPC exch def
- /X0 WM 2 div def
- /Y0 HM 2 div def
- /WB WM BPC mul 7 add 8 div cvi def % Width in Bytes
- /MaskData WB HM mul string def
- 0 1 HM 1 sub {
- /Y exch def
- 0 1 WM 1 sub {
- /X exch def
- MaskData % Target string
- X Y eq
- X HM 1 sub Y sub eq or
- Y Y0 gt X X0 sub abs 2 le and or
- X X0 sub WM div dup mul Y Y0 sub HM div dup mul add sqrt 9 mul cvi 2 mod 1 eq or
- X BPC mul 8 div Y WB mul add exch
- [
- { } % BPC = 0
- { { 1 } { 0 } ifelse put4bit } % BPC = 4
- { { 255 } { 0 } ifelse exch cvi exch put } % BPC = 8
- { { 1 } { 0 } ifelse put12bit } % BPC = 12
- ] BPC 4 div cvi get exec
- } for
- } for % Rows in the mask
-} bind def
-
-% -----------------------------------------------------------------------
-
-% Procedure to generate image data
-%
-% WD and HD must be defined prior to invocation
-% { proc } ImageGen -
-%
-% The procedure is called once for each pixel
-% Local definitions are R, G, B, X and Y
-
-% Example: Generate RGB Chunky pixel data (single data source) BPC = 8
-% /WD WidthRGB def
-% /HD HeightRGB def
-% /RGBData WD HD mul 3 mul string def
-% { X Y WD mul add 3 mul RGBData
-% dup 2 index R 255 mul cvi put
-% dup 2 index 1 add G 255 mul cvi put
-% exch 2 add B 255 mul cvi put
-% } ImageGen
-
-/ImageGen {
- gsave
- 0 1 HD 1 sub {
- /Y exch def
- 0 1 WD 1 sub {
- /X exch def
- /D X WD 2 div sub WD div dup mul Y HD 2 div sub HD div dup mul add sqrt def
- /D D .6 div def
- /A X WD 2 div sub Y HD 2 div sub atan 360 div def
- A % Hue
- .7 D .3 sub .60 div sub % Saturation
- dup 0.05 lt
- { .95 D .8 sub 3 mul sub 3 mul cvi 3 div sqrt } % Level once Saturation < 0
- { .7 D .25 sub .75 div add } % Level inside
- ifelse
- X WD 2 div gt Y HD 2 div sub abs 2 le and { pop 0 } if % asymmetric marker
- sethsbcolor
- currentrgbcolor /B exch def /G exch def /R exch def
- dup exec
- } for
- } for
- pop % discard the procedure
- grestore
-} bind def
-
-
-% -----------------------------------------------------------------------
-%
-% Procedures for ImageMatrix creation
-/IMLRTB { [ WD 0 0 HD neg 0 HD ] } def
-/IMLRBT { [ WD 0 0 HD 0 0 ] } def
-/IMRLTB { [ WD neg 0 0 HD neg WD HD ] } def
-/IMRLBT { [ WD neg 0 0 HD WD 0 ] } def
-% -----------------------------------------------------------------------
-%
-% Procedure to make invocation of image operators more concise
-%
-% YY, SX, SY, WD and HD should be defined prior to invocation
-% X matrix source decode DoImageMask -
-%
-/DoImageMask {
- gsave
- /D exch def
- /S exch def
- /M exch def
- /XX 1 index def
- YY translate SX SY scale
- 0 setlinewidth 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto 0 0 lineto stroke
- .5 .5 translate
- IR rotate
- -.5 -.5 translate
- <<
- /ImageType 1
- /Width WM
- /Height HM
- /ImageMatrix M
- /MultipleDataSources false
- /DataSource S
- /Decode D
- /BitsPerComponent 1
- >>
- imagemask
- grestore
-} bind def
-
-% YY, SX, SY, WD and HD should be defined prior to invocation
-% X Y BPC matrix source multi decode DoImage1 -
-%
-/DoImage1 {
- gsave
- CSpace setcolorspace
- /D exch def
- /MS exch def
- /S exch def % May be an array of sources
- /M exch def
- /BPC exch def
- /XX 1 index def
- YY translate SX SY scale
- 0 setlinewidth 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto 0 0 lineto stroke
- .5 .5 translate
- IR rotate
- -.5 -.5 translate
- <<
- /ImageType 1
- /Width WD
- /Height HD
- /ImageMatrix M
- /MultipleDataSources MS
- /DataSource S
- /BitsPerComponent BPC
- /Decode D
- >>
- image
- grestore
-} bind def
-
-
-% YY, SX, SY, WD and HD should be defined prior to invocation
-% X Y BPC matrix source multi decode MaskColor DoImage4 -
-%
-/DoImage4 {
- gsave
- CSpace setcolorspace
- /MC exch def
- /D exch def
- /MS exch def
- /S exch def % May be an array of sources
- /M exch def
- /BPC exch def
- /XX 1 index def
- YY translate SX SY scale
- 0 setlinewidth 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto 0 0 lineto stroke
- .5 .5 translate
- IR rotate
- -.5 -.5 translate
- <<
- /ImageType 4
- /Width WD
- /Height HD
- /ImageMatrix M
- /MultipleDataSources MS
- /DataSource S
- /BitsPerComponent BPC
- /Decode D
- /MaskColor MC
- >>
- image
- grestore
-} bind def
-
-% YY, SX, SY, W, HD (Data) WM, HM (Mask) should be defined prior to invocation
-% (IT is InterleaveType)
-% X Y BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
-%
-/DoImage3 {
- gsave
- CSpace setcolorspace
- /IT exch def
- /DD exch def
- /DM exch def
- /MS exch def
- /S exch def % May be an array of sources - For InterleaveType 3
- % S[0] is the Mask DataSource
- /M exch def
- /BPC exch def
- /XX 1 index def
- YY translate SX SY scale
- 0 setlinewidth 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto 0 0 lineto stroke
- .5 .5 translate
- IR rotate
- -.5 -.5 translate
- /DataImage
- <<
- /ImageType 1
- /Width WD
- /Height HD
- /ImageMatrix M
- /MultipleDataSources MS
- /DataSource IT 3 ne { S } { S 1 get exec } ifelse
- /BitsPerComponent BPC
- /Decode DD
- >>
- def
- /MaskImage
- <<
- /ImageType 1
- /Width WM
- /Height HM
- /ImageMatrix % construct the mask matrix using signs from the DataImage matrix
- /M0 M 0 get WD abs div cvi def
- /M3 M 3 get HD abs div cvi def
- /M4 M 4 get WD abs div cvi def
- /M5 M 5 get HD abs div cvi def
- [ WM M0 mul 0 0 HM M3 mul WM M4 mul HM M5 mul ]
- IT 3 eq {
- /DataSource S 0 get exec % DataSource only allowed for InterleaveType 3
- } if
- /BitsPerComponent IT 1 eq { BPC } { 1 } ifelse
- /Decode DM
- >>
- def
- <<
- /ImageType 3
- /DataDict DataImage
- /MaskDict MaskImage
- /InterleaveType IT
- >>
- image
- grestore
-} bind def
-
-
-% -----------------------------------------------------------------------
-%
-/Helvetica-Bold findfont 20 scalefont /TitleFont exch def
-
-/FontSize 10 def
-/Helvetica-Narrow findfont FontSize scalefont /LegendFont exch def
-
-/blockshow { % like "show" but '\n' causes new-line
- dup = flush %DEBUG
- currentpoint /showY exch def /showX exch def
- {
- dup 10 ne
- { 1 string dup 0 4 -1 roll put show }
- { pop showX showY FontSize sub dup /showY exch def moveto }
- ifelse
- } forall
-} bind def
-
-/TX 013 def % Title left X
-/SX 036 def
-/XA 060 def
-/XB XA SX 1.5 mul add def
-/XC XA SX 3.0 mul add def
-/XD XA SX 4.5 mul add def
-/XE XA SX 6.0 mul add def
-/XF XA SX 7.5 mul add def
-/XG XA SX 9.0 mul add def
-/XH XA SX 10.5 mul add def
-/XI XA SX 12.0 mul add def
-/XJ XA SX 13.5 mul add def
-
-/BY 036 def % Bottom Title Top line
-/SY 037 def
-/YA 050 def
-/YB YA SY 1.8 mul add def
-/YC YA SY 3.6 mul add def
-/YD YA SY 5.4 mul add def
-/YE YA SY 7.2 mul add def
-/YF YA SY 9.0 mul add def
-/YG YA SY 10.8 mul add def
-/YH YA SY 12.6 mul add def
-/YI YA SY 14.4 mul add def
-/YJ YA SY 16.2 mul add def
-/YK YA SY 18.0 mul add def
-
-% -----------------------------------------------------------------------
-%
-% Utility procedures to support storing 4 and 12 bit elements in
-% strings.
-%
-% <string> <index> <value> put##bit -
-%
-% <index> will have a fractional part ( .5 ) if the element
-% starts on a 4-bit boundary.
-%
-% <value> is between 0 and 1 and is scaled 0 to 15 (4bit) or
-% 0 to 4095 (12 bit)
-
-/put4bit {
- 15 mul cvi
- exch dup cvi dup 3 1 roll eq 3 -1 roll exch
- { % integer index means high nibble.
- 16 mul put
- }
- { % low nibble -- combine with high nibble
- 2 index 2 index get or put
- }
- ifelse
-} bind def
-
-/put12bit {
- 1 index cvi /I exch def
- 2 index /S exch def
- 4095 mul cvi
- exch dup dup cvi eq
- { % integer index means high byte is aligned
- cvi exch 3 copy 16 div cvi put
- exch 1 add exch 15 and 16 mul put
- }
- { % low nibble -- combine with high nibble
- cvi exch 3 copy 2 index 2 index get exch 256 div cvi or put
- 255 and exch 1 add exch put
- }
- ifelse
-} bind def
-
-% -----------------------------------------------------------------------
-%
-% Procedures to use generated string data as procedure or files
-
-/WD WidthRGB def
-/HD HeightRGB def
-
-/sM WidthRGB 2 mul 1 sub string def % long enough to hold more than one mask line
-/sD WidthRGB 7 mul 1 sub string def % long enough to hold more than one 12 bit RGB line
- % worst case is 12bit ImageType3 InterleaveType 1 == 48 bits
-
-/MaskDProc {
- /FM MaskData dup length () /SubFileDecode filter def
- { { FM sM readstring pop } }
-} bind def
-
-/FileTailString (12345) def % Marker string to check file data usage
-
-/AppendFileTail { % <string> AppendFileTail <string_with_tail> <original_length>
- dup length FileTailString length add string
- dup 0 3 index putinterval
- dup 2 index length FileTailString putinterval
- exch length
-} bind def
-
-/MaskDFile {
- MaskData dup length () /SubFileDecode filter
- /MDF 1 index def
-} bind def
-
-/RGBDProc {
- /FD RGBData dup length () /SubFileDecode filter def
- { { FD sD readstring pop } }
-} bind def
-
-/RGBDFile {
- RGBData dup length () /SubFileDecode filter
- /RGBDF 1 index def
-} bind def
-
-/sR WidthRGB 2 mul 1 sub string def % long enough to hold more than one line of 12 bit data
-/sG WidthRGB 2 mul 1 sub string def
-/sB WidthRGB 2 mul 1 sub string def
-
-/RDProc {
- /FR RData dup length () /SubFileDecode filter def
- { FR sR readstring pop }
-} bind def
-
-/GDProc {
- /FG GData dup length () /SubFileDecode filter def
- { FG sG readstring pop }
-} bind def
-
-/BDProc {
- /FB BData dup length () /SubFileDecode filter def
- { FB sB readstring pop }
-} bind def
-
-/RDFile {
- RData dup length () /SubFileDecode filter
- /RDF 1 index def
-} bind def
-
-/GDFile {
- GData dup length () /SubFileDecode filter
- /GDF 1 index def
-} bind def
-
-/BDFile {
- BData dup length () /SubFileDecode filter
- /BDF 1 index def
-} bind def
-
-% -----------------------------------------------------------------------
-%
-% Procedure to handle fileposition. Ghostscript has a private
-% operator .fileposition that works when fileposition does not
-%
-% <file> tryfilepos
-% Returns: fileposition true if successful
-% 0 false if not
-/tryfilepos {
- /.fileposition where
- { pop /.fileposition load } % most likely to succeed
- { /fileposition load }
- ifelse
- stopped
- { pop 0 false }
- { true }
- ifelse
-} bind def
-
-% -----------------------------------------------------------------------
-%
-% Procedure to provide =only operator if not present. Suggested
-% by Alex Cherepanov to use =print operator present on some Adobe
-% implementations.
-/=only where
- { pop }
- { /=print where { pop /=print load } { /print load } ifelse
- /=only exch def
- }
-ifelse
-
-% -----------------------------------------------------------------------
-%
-% Procedure to make sure that the file is at the EOF.
-% added above (string == FileTailString.
-%
-% If not, it will mark the image area with a red "F"
-%
-% <string> <title> <file> CheckFileTail - XX is the horizontal position
-% YY is the vertical position
-% SX,SY determine size of "F" if fail
-/CheckFileTail {
- dup
- status not dup % status false says no longer valid
- { (Unexpected EOF: XX,YY=) print XX =only (,) print YY = false }
- { 1 index tryfilepos not exch 5 index length ne or dup
- { 3 index print ( fileposition = ) print
- 2 index tryfilepos pop =only
- ( doesn't match expected = ) print 4 index length = flush
- }
- if
- }
- ifelse
- or
- {
- gsave .8 0 0 setrgbcolor
- SX 4 div setlinewidth
- XX YY moveto 0 SY rlineto SX 0 rlineto stroke
- XX YY SY .5 mul add moveto SX .5 mul 0 rlineto stroke
- grestore
- }
- if
- pop pop pop
-} bind def
-
-/CSpaceName { % - CSpaceName <string>
- CSpace dup type /arraytype eq { 0 get } if
- 15 string cvs
-} bind def
-% -----------------------------------------------------------------------
-%
-% tests
-
-/CheckImage {
-
- /IR 0 def
- /CSpace /DeviceRGB def
-
- % Use an unusual (unpleasant?) underlying color
- .6 .95 .4 setrgbcolor clippath fill
-
- 0 0 0 setrgbcolor
- TitleFont setfont
- 200 760 moveto (Image Type 3 Tests) show
- 200 740 moveto (Rotation Angle = ) show IR 3 string cvs show
- 170 720 moveto (Colorspace = ) show CSpaceName show
- LegendFont setfont
-
- .4 .1 .7 setrgbcolor % contrasting color for stencil masking
- /SX SX 2 mul def /SY SY 2 mul def
- /YY 780 SY sub def
- MaskGen
- TX IMLRTB MaskData [1 0] DoImageMask
-
- /RGBData WD HD mul 3 mul string def
- { X Y WD mul add 3 mul RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi decode
- XI 8 IMLRTB RGBData false [0 1 0 1 0 1] DoImage1
- /SX SX 2 div def /SY SY 2 div def
-
- showpage
-} def
-
-% -----------------------------------------------------------------------
-%
-% Type 1 and Type 4 Tests
-
-% /CSpace and /IR are defined in order to generate various pages
-/T1T4Tests { %
-
- % Use an unusual (unpleasant?) underlying color
- .6 .95 .4 setrgbcolor clippath fill
- 0 0 0 setrgbcolor
-
- TitleFont setfont
- 120 760 moveto (Image Type 1 and ImageType 4 Tests) show
- 200 740 moveto (Rotation Angle = ) show IR 3 string cvs show
- 170 720 moveto (Colorspace = ) show CSpaceName show
- LegendFont setfont
-
- XA BY moveto (Decode\nInverted) blockshow
- XB BY moveto ( IMLRTB\nDS=string) blockshow
- XC BY moveto ( IMLRBT\nDS=string) blockshow
- XD BY moveto ( IMRLTB\nDS=string) blockshow
- XE BY moveto ( IMRLBT\nDS=string) blockshow
- XF BY moveto (IMLRTB\nDS=proc) blockshow
- XG BY moveto (IMLRTB\nDS=file) blockshow
- XH BY moveto ( Multi\nDS=string) blockshow
- XI BY moveto ( Multi\nDS=proc) blockshow
- XJ BY moveto ( Multi\nDS=file) blockshow
-
- .4 .1 .7 setrgbcolor % contrasting color for stencil masking
-
- /WM WD def
- /HM HD def
- /SX SX 2 mul def /SY SY 2 mul def
- /YY 780 SY sub def
- MaskGen
- TX IMLRTB MaskData [1 0] DoImageMask
-
- /RGBData WD HD mul 3 mul string def
- { X Y WD mul add 3 mul RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi decode
- XI 8 IMLRTB RGBData false [0 1 0 1 0 1] DoImage1
- /SX SX 2 div def /SY SY 2 div def
-
- % ----------------------------------------------------------------------
- % Type 1 Stencil Mask Images
-
- /YY YA def
- TX YA SY add moveto (\nType 1\nStencil\nMask) blockshow
-
- MaskGen
-
- % X matrix source decode
- XA IMLRTB MaskData [0 1] DoImageMask
- XB IMLRTB MaskData [1 0] DoImageMask
- XC IMLRBT MaskData [1 0] DoImageMask
- XD IMRLTB MaskData [1 0] DoImageMask
- XE IMRLBT MaskData [1 0] DoImageMask
- XF IMLRTB MaskDProc [1 0] DoImageMask
- XG IMLRTB MaskDFile [1 0] DoImageMask
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 1 RGB Single Data Sources, BPC==8
-
- /YY YB def
- TX YY SY add moveto (\nType 1\nRGB\nBPC=8) blockshow
-
- /RGBData WD HD mul 3 mul string def
- { X Y WD mul add 3 mul RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi decode
- XA 8 IMLRTB RGBData false [1 0 1 0 1 0] DoImage1
- XB 8 IMLRTB RGBData false [0 1 0 1 0 1] DoImage1
- XC 8 IMLRBT RGBData false [0 1 0 1 0 1] DoImage1
- XD 8 IMRLTB RGBData false [0 1 0 1 0 1] DoImage1
- XE 8 IMRLBT RGBData false [0 1 0 1 0 1] DoImage1
- XF 8 IMLRTB RGBDProc false [0 1 0 1 0 1] DoImage1
- XG 8 IMLRTB RGBDFile false [0 1 0 1 0 1] DoImage1
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 1 RGB Multiple Data Sources, BPC==8
-
- WD HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- { X Y WD mul add
- RData 1 index R 255 mul cvi put
- GData 1 index G 255 mul cvi put
- BData exch B 255 mul cvi put
- } ImageGen
-
-
- % X BPC matrix source multi decode
- XH 8 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] DoImage1
- XI 8 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] DoImage1
- XJ 8 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] DoImage1
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Single Data Sources, BPC==8, mask black
-
- /YY YE def
- TX YY SY add moveto (\nType 4\nBPC=8\nmask=black) blockshow
-
- % X BPC matrix source multi decode MaskColor
- XA 8 IMLRTB RGBData false [1 0 1 0 1 0] [ 000 000 000 ] DoImage4
- XB 8 IMLRTB RGBData false [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XC 8 IMLRBT RGBData false [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XD 8 IMRLTB RGBData false [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XE 8 IMRLBT RGBData false [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XF 8 IMLRTB RGBDProc false [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XG 8 IMLRTB RGBDFile false [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Multiple Data Sources, BPC==8, mask black
-
- % X BPC matrix source multi decode MaskColor
- XH 8 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XI 8 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- XJ 8 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] [ 000 000 000 ] DoImage4
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Single Data Sources, BPC==8, mask white
-
- /YY YF def
- TX YY SY add moveto (\nType 4\nBPC=8\nmask=white) blockshow
-
- % X BPC matrix source multi decode MaskColor
- XA 8 IMLRTB RGBData false [1 0 1 0 1 0] [ 255 255 255 ] DoImage4
- gsave .5 .2 .2 setrgbcolor XB YY SX 13 mul SY rectfill grestore
- XB 8 IMLRTB RGBData false [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XC 8 IMLRBT RGBData false [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XD 8 IMRLTB RGBData false [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XE 8 IMRLBT RGBData false [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XF 8 IMLRTB RGBDProc false [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XG 8 IMLRTB RGBDFile false [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Multiple Data Sources, BPC==8, mask white
-
- % X BPC matrix source multi decode MaskColor
- XH 8 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XI 8 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- XJ 8 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] [ 255 255 255 ] DoImage4
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Single Data Sources, BPC==8, mask gray
-
- /YY YG def
- TX YY SY add moveto (\nType 4\nBPC=8\nmask=gray) blockshow
-
- % X BPC matrix source multi decode MaskColor
- XA 8 IMLRTB RGBData false [1 0 1 0 1 0] [ 147 147 147 ] DoImage4
- XB 8 IMLRTB RGBData false [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XC 8 IMLRBT RGBData false [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XD 8 IMRLTB RGBData false [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XE 8 IMRLBT RGBData false [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XF 8 IMLRTB RGBDProc false [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XG 8 IMLRTB RGBDFile false [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Multiple Data Sources, BPC==8, mask gray
-
- % X BPC matrix source multi decode MaskColor
- XH 8 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XI 8 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- XJ 8 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] [ 147 147 147 ] DoImage4
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Single Data Sources, BPC==8, mask range
-
- /YY YH def
- TX YY SY add moveto (\nType 4\nBPC=8\nmask range) blockshow
-
- % X BPC matrix source multi decode MaskColor
- XA 8 IMLRTB RGBData false [1 0 1 0 1 0] [ 020 200 020 200 020 200 ] DoImage4
- XB 8 IMLRTB RGBData false [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XC 8 IMLRBT RGBData false [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XD 8 IMRLTB RGBData false [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XE 8 IMRLBT RGBData false [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XF 8 IMLRTB RGBDProc false [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XG 8 IMLRTB RGBDFile false [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Multiple Data Sources, BPC==8, mask range
-
- % X Y SX SY BPC matrix source multi decode MaskColor
- XH 8 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XI 8 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- XJ 8 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] [ 020 200 020 200 020 200 ] DoImage4
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 1 RGB Single Data Sources, BPC==12
-
- /YY YC def
- TX YY SY add moveto (\nType 1\nRGB\nBPC=12) blockshow
-
- /RGBData WD 36 mul 7 add 8 div cvi HD mul string def
- {
- X 36 mul 8 div Y WD 36 mul 7 add 8 div cvi mul add
- RGBData 1 index R put12bit
- RGBData 1 index 1.5 add G put12bit
- RGBData exch 3 add B put12bit
- } ImageGen
-
- % X BPC matrix source multi decode
- XA 12 IMLRTB RGBData false [1 0 1 0 1 0] DoImage1
- XB 12 IMLRTB RGBData false [0 1 0 1 0 1] DoImage1
- XC 12 IMLRBT RGBData false [0 1 0 1 0 1] DoImage1
- XD 12 IMRLTB RGBData false [0 1 0 1 0 1] DoImage1
- XE 12 IMRLBT RGBData false [0 1 0 1 0 1] DoImage1
- XF 12 IMLRTB RGBDProc false [0 1 0 1 0 1] DoImage1
- XG 12 IMLRTB RGBDFile false [0 1 0 1 0 1] DoImage1
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 1 RGB Multiple Data Sources, BPC==12
-
- WD 3 mul 1 add 2 div cvi HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- {
- X 3 mul 2 div Y WD 3 mul 1 add 2 div cvi mul add
- RData 1 index R put12bit
- GData 1 index G put12bit
- BData exch B put12bit
- } ImageGen
-
- % X BPC matrix source multi decode
- XH 12 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] DoImage1
- XI 12 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] DoImage1
- XJ 12 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] DoImage1
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Single Data Sources, BPC==12, mask range
-
- /YY YI def
- TX YY SY add moveto (\nType 4\nBPC=12\nmask range) blockshow
-
- % X BPC matrix source multi decode MaskColor
- XA 12 IMLRTB RGBData false [1 0 1 0 1 0] [ 300 3000 300 3000 300 3000 ] DoImage4
- XB 12 IMLRTB RGBData false [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XC 12 IMLRBT RGBData false [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XD 12 IMRLTB RGBData false [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XE 12 IMRLBT RGBData false [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XF 12 IMLRTB RGBDProc false [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XG 12 IMLRTB RGBDFile false [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Multiple Data Sources, BPC==12, mask range
-
- % X BPC matrix source multi decode MaskColor
- XH 12 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XI 12 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- XJ 12 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] [ 300 3000 300 3000 300 3000 ] DoImage4
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 1 RGB Single Data Sources, BPC==4
-
- /YY YD def
- TX YY SY add moveto (\nType 1\nRGB\nBPC=4) blockshow
-
- /RGBData WD 12 mul 7 add 8 div cvi HD mul string def
- {
- X 12 mul 8 div Y WD 12 mul 7 add 8 div cvi mul add
- RGBData 1 index R put4bit
- RGBData 1 index 0.5 add G put4bit
- RGBData exch 1.0 add B put4bit
- } ImageGen
-
- % X BPC matrix source multi decode
- XA 4 IMLRTB RGBData false [1 0 1 0 1 0] DoImage1
- XB 4 IMLRTB RGBData false [0 1 0 1 0 1] DoImage1
- XC 4 IMLRBT RGBData false [0 1 0 1 0 1] DoImage1
- XD 4 IMRLTB RGBData false [0 1 0 1 0 1] DoImage1
- XE 4 IMRLBT RGBData false [0 1 0 1 0 1] DoImage1
- XF 4 IMLRTB RGBDProc false [0 1 0 1 0 1] DoImage1
- XG 4 IMLRTB RGBDFile false [0 1 0 1 0 1] DoImage1
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 1 RGB Multiple Data Sources, BPC==4
-
- WD 1 add 2 div cvi HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- {
- X 2 div Y WD 1 add 2 div cvi mul add
- RData 1 index R put4bit
- GData 1 index G put4bit
- BData exch B put4bit
- } ImageGen
-
- % X BPC matrix source multi decode
- XH 4 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] DoImage1
- XI 4 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] DoImage1
- XJ 4 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] DoImage1
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Single Data Sources, BPC==4, mask range
-
- /YY YJ def
- TX YY SY add moveto (\nType 4\nBPC=4\nmask range) blockshow
-
- % X BPC matrix source multi decode MaskColor
- XA 4 IMLRTB RGBData false [1 0 1 0 1 0] [ 1 10 1 10 1 10 ] DoImage4
- XB 4 IMLRTB RGBData false [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XC 4 IMLRBT RGBData false [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XD 4 IMRLTB RGBData false [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XE 4 IMRLBT RGBData false [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XF 4 IMLRTB RGBDProc false [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XG 4 IMLRTB RGBDFile false [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- % ----------------------------------------------------------------------
- % Type 4 RGB Multiple Data Sources, BPC==4, mask range
-
- % X BPC matrix source multi decode MaskColor
- XH 4 IMLRTB [ RData GData BData ] true [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XI 4 IMLRTB [ RDProc GDProc BDProc ] true [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- XJ 4 IMLRTB [ RDFile GDFile BDFile ] true [0 1 0 1 0 1] [ 1 10 1 10 1 10 ] DoImage4
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- showpage
-
-} bind def % T1T4Tests
-
-% -----------------------------------------------------------------------
-%
-% Type 3 Tests
-
-/T3Tests {
- % Use an unusual (unpleasant?) underlying color
- .6 .95 .4 setrgbcolor clippath fill
-
- 0 0 0 setrgbcolor
- TitleFont setfont
- 200 760 moveto (Image Type 3 Tests) show
- 200 740 moveto (Rotation Angle = ) show IR 3 string cvs show
- 170 720 moveto (Colorspace = ) show CSpaceName show
- LegendFont setfont
-
- .4 .1 .7 setrgbcolor % contrasting color for stencil masking
-
- /WM WD def
- /HM HD def
- /SX SX 2 mul def /SY SY 2 mul def
- /YY 780 SY sub def
- MaskGen
- XA IMLRTB MaskData [1 0] DoImageMask
-
- /RGBData WD HD mul 3 mul string def
- { X Y WD mul add 3 mul RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi decode
- XH 8 IMLRTB RGBData false [0 1 0 1 0 1] DoImage1
- /SX SX 2 div def /SY SY 2 div def
-
-% ----------------------------------------------------------------------
-% InterleaveType 1, BPC==8, WM=WD, HM=HD
-% IT 1 is what GS calls "chunky pixel"
- /YY YA def
- TX YY SY add moveto (\nIntType 1\nBPC=8) blockshow
-
- % Generate the MaskData first
- 8 MaskGenBPC
-
- % Generate the Data Image (uses the MaskData)
- /RGBData WD HD mul 4 mul string def
- { X Y WD mul add 4 mul % 4 bytes Mask,Red,Green,Blue
- RGBData
- dup 2 index MaskData X Y WB mul add get put
- dup 2 index 1 add R 255 mul cvi put
- dup 2 index 2 add G 255 mul cvi put
- exch 3 add B 255 mul cvi put
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 1 DoImage3
- XB 8 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 1 DoImage3
- XC 8 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 1 DoImage3
- XD 8 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XE 8 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XF 8 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XG 8 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XH 8 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XI 8 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 1 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 1, BPC==12, WM=WD, HM=HD
-% IT 1 is what GS calls "chunky pixel"
- /YY YB def
- TX YY SY add moveto (\nIntType 1\nBPC=12) blockshow
-
- % Generate the MaskData first
- 12 MaskGenBPC
-
- % Generate the Data Image (uses the MaskData)
- /RGBData WD HD mul 6 mul string def
- { X Y WD mul add 6 mul % 6 bytes Mask,Red,Green,Blue
- RGBData
- dup 2 index
- MaskData X 1.5 mul .5 add cvi
- Y WB mul add get % get the aligned mask byte (hi or lo)
- 0 eq { 0 } { 1 } ifelse
- put12bit
- dup 2 index 1.5 add R put12bit
- dup 2 index 3.0 add G put12bit
- exch 4.5 add B put12bit
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 12 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 1 DoImage3
- XB 12 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 1 DoImage3
- XC 12 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 1 DoImage3
- XD 12 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XE 12 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XF 12 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XG 12 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XH 12 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XI 12 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 1 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 1, BPC==4, WM=WD, HM=HD
-% IT 1 is what GS calls "chunky pixel"
- /YY YC def
- TX YY SY add moveto (\nIntType 1\nBPC=4) blockshow
-
- % Generate the MaskData first
- 4 MaskGenBPC
-
- % Generate the Data Image (uses the MaskData)
- /RGBData WD HD mul 2 mul string def
- { X Y WD mul add 2 mul % 2 bytes Mask,Red,Green,Blue
- RGBData
- dup 2 index MaskData X 2 div cvi Y WB mul add get
- X 1 and 0 eq { 128 div cvi } { 1 and } ifelse
- put4bit
- dup 2 index 0.5 add R put4bit
- dup 2 index 1.0 add G put4bit
- exch 1.5 add B put4bit
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 4 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 1 DoImage3
- XB 4 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 1 DoImage3
- XC 4 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 1 DoImage3
- XD 4 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XE 4 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XF 4 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XG 4 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XH 4 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 1 DoImage3
- XI 4 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 1 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==8, WM=WD, HM=HD
-% IT 2 is line interleave -- Mask line follwoed by Data line
-% RGB Image Data must be chunky (MultipleDatasources==false).
- /YY YD def
- TX YY SY add moveto (\nIntType 2\nBPC=8) blockshow
-
- % Generate the MaskData first
- MaskGen
-
- % Generate the Data Image (uses the MaskData)
- /BPL WD 3 mul WB add cvi def % BytesPerLine
- /RGBData BPL HD mul string def
- { X 3 mul Y BPL mul add WB add % 3 bytes Red,Green,Blue + Mask Bytes
- X 0 eq {
- RGBData 1 index WB sub
- MaskData Y WB mul WB getinterval
- putinterval
- } if
- RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 8 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 8 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 8 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 8 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 8 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 8 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 8 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 8 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==12, WM=WD, HM=HD
- /YY YE def
- TX YY SY add moveto (\nIntType 2\nBPC=12) blockshow
-
- % Generate the Data Image (uses the MaskData)
- /BPL WD 36 mul 7 add 8 div cvi WB add def % BytesPerLine
- /RGBData BPL HD mul string def
- { X 36 mul 8 div Y BPL mul add WB add
- X 0 eq {
- RGBData 1 index WB sub cvi
- MaskData Y WB mul WB getinterval
- putinterval
- } if
- RGBData
- dup 2 index R put12bit
- dup 2 index 1.5 add G put12bit
- exch 3.0 add B put12bit
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 12 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 12 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 12 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 12 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 12 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 12 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 12 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 12 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 12 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==4, WM=WD, HM=HD
- /YY YF def
- TX YY SY add moveto (\nIntType 2\nBPC=4) blockshow
-
- % Generate the Data Image (uses the MaskData)
- /BPL WD 12 mul 7 add 8 div cvi WB add def % BytesPerLine
- /RGBData BPL HD mul string def
- { X 12 mul 8 div Y BPL mul add WB add
- X 0 eq {
- RGBData 1 index WB sub cvi
- MaskData Y WB mul WB getinterval
- putinterval
- } if
- RGBData
- dup 2 index R put4bit
- dup 2 index 0.5 add G put4bit
- exch 1.0 add B put4bit
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 4 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 4 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 4 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 4 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 4 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 4 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 4 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 4 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 4 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==8, WM=.6*WD, HM=HD/2
-% IT 2 is line interleave -- Mask line follwoed by Data line
-% RGB Image Data must be chunky (MultipleDatasources==false).
- /YY YG def
- TX YY SY add moveto (\nIntType 2\nBPC=8\nWM=.6*WD\nHM=HD/2) blockshow
-
- % Generate the MaskData first
- /WM WD .6 mul cvi def
- /HM HD 2 div cvi def
- /saveHD HD def
- /HD HM 2 mul def % make HD even for this exercise
- MaskGen
-
- % Generate the Data Image (uses the MaskData)
- /BPL WD 3 mul def % BytesPerLine RGB Data
- /RGBData BPL HD mul WB HM mul add string def
- { X 3 mul Y BPL mul add Y 2 div cvi 1 add WB mul add % 3 bytes Red,Green,Blue + Mask
- X 0 eq Y 1 and 0 eq and { % Do one row of Mask every other image row
- RGBData 1 index WB sub
- MaskData Y 2 div cvi WB mul WB getinterval
- putinterval
- } if
- RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- }
- ImageGen
-
-%DEBUG /xx (xx) (w) file def
-%DEBUG 0 1 HM 1 sub { MaskData exch WB mul WB getinterval xx exch writehexstring xx (\n) writestring } for
-%DEBUG xx (----------------------------------------------------------------\n) writestring
-%DEBUG 0 2 HD 1 sub {
-%DEBUG RGBData 1 index BPL mul 2 index 2 div cvi WB mul add
-%DEBUG WB getinterval xx exch writehexstring xx (\n) writestring
-%DEBUG RGBData 1 index BPL mul 2 index 2 div cvi 1 add WB mul add
-%DEBUG BPL getinterval xx exch writehexstring xx (\n) writestring
-%DEBUG RGBData 1 index 1 add BPL mul 2 index 2 div cvi 1 add WB mul add
-%DEBUG BPL getinterval xx exch writehexstring xx (\n) writestring
-%DEBUG pop
-%DEBUG } for
-%DEBUG xx closefile
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 8 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 8 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 8 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 8 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 8 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 8 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 8 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 8 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- /HD saveHD def % put odd HD back
-
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==8, WM=1.3*WD, HM=2*HD
-% IT 2 is line interleave -- Mask line follwoed by Data line
-% RGB Image Data must be chunky (MultipleDatasources==false).
- /YY YH def
- TX YY SY add moveto (\nIntType 2\nBPC=8\nWM=1.3*WD\nHM=2*HD) blockshow
-
- % Generate the MaskData first
- /WM WD 1.3 mul cvi def
- /HM HD 2 mul def
- MaskGen
-
- % Generate the Data Image (uses the MaskData)
- /HR HM HD div cvi def
- /BPL WD 3 mul WB HR mul add cvi def % BytesPerLine
- /RGBData BPL HD mul string def
- { X 3 mul Y BPL mul add WB HR mul add % 3 bytes Red,Green,Blue + Mask Bytes
- X 0 eq { % Do HM/HD rows of Mask
- RGBData 1 index WB HR mul sub
- MaskData Y WB HR mul mul WB HR mul getinterval
- putinterval
- } if
- RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 8 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 8 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 8 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 8 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 8 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 8 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 8 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 8 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==12, WM=1.3*WD, HM=2*HD
- /YY YI def
- TX YY SY add moveto (\nIntType 2\nBPC=12\nWM=1.3*WD\nHM=2*HD) blockshow
-
- % Generate the Data Image (uses the MaskData)
- /HR HM HD div cvi def
- /BPL WD 36 mul 7 add 8 div cvi WB HR mul add def % BytesPerLine
- /RGBData BPL HD mul string def
- { X 36 mul 8 div Y BPL mul add WB HR mul add
- X 0 eq {
- RGBData 1 index WB HR mul sub cvi
- MaskData Y WB HR mul mul WB HR mul getinterval
- putinterval
- } if
- RGBData
- dup 2 index R put12bit
- dup 2 index 1.5 add G put12bit
- exch 3.0 add B put12bit
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 12 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 12 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 12 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 12 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 12 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 12 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 12 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 12 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 12 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 2, BPC==4, WM=1.3*WD, HM=2*HD
- /YY YJ def
- TX YY SY add moveto (\nIntType 2\nBPC=4\nWM=1.3*WD\nHM=2*HD) blockshow
-
- % Generate the Data Image (uses the MaskData)
- /HR HM HD div cvi def
- /BPL WD 12 mul 7 add 8 div cvi WB HR mul add def % BytesPerLine
- /RGBData BPL HD mul string def
- { X 12 mul 8 div Y BPL mul add WB HR mul add
- X 0 eq {
- RGBData 1 index WB HR mul sub cvi
- MaskData Y WB HR mul mul WB HR mul getinterval
- putinterval
- } if
- RGBData
- dup 2 index R put4bit
- dup 2 index 0.5 add G put4bit
- exch 1.0 add B put4bit
- }
- ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 4 IMLRTB RGBData false [0 1] [1 0 1 0 1 0] 2 DoImage3
- XB 4 IMLRTB RGBData false [1 0] [1 0 1 0 1 0] 2 DoImage3
- XC 4 IMLRTB RGBData false [0 1] [0 1 0 1 0 1] 2 DoImage3
- XD 4 IMLRTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XE 4 IMLRBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XF 4 IMRLTB RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XG 4 IMRLBT RGBData false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XH 4 IMLRTB RGBDProc false [1 0] [0 1 0 1 0 1] 2 DoImage3
- XI 4 IMLRTB RGBDFile false [1 0] [0 1 0 1 0 1] 2 DoImage3
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
- showpage
-% ----------------------------------------------------------------------
-
- % Use an unusual (unpleasant?) underlying color
- .6 .95 .4 setrgbcolor clippath fill
-
- 0 0 0 setrgbcolor
- TitleFont setfont
- 200 760 moveto (Image Type 3 Tests) show
- 200 740 moveto (Rotation Angle = ) show IR 3 string cvs show
- 200 720 moveto (InterleaveType 3) show
- 170 700 moveto (Colorspace = ) show CSpaceName show
- LegendFont setfont
-
- .4 .1 .7 setrgbcolor % contrasting color for stencil masking
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==8, WM=WD, HM=HD
-% IT 3 is line interleave -- Mask and Data in separate sources
-% RGB Image Data chunky (MultipleDatasources==false).
- /YY YA def
- TX YY SY add moveto (BPC=8\nMulti\nfalse) blockshow
-
- % Generate the MaskData first
- /WM WD def
- /HM HD def
- MaskGen
-
- % Generate the Data Image
- /RGBData WD HD mul 3 mul string def
- { X Y WD mul add 3 mul RGBData
- dup 2 index R 255 mul cvi put
- dup 2 index 1 add G 255 mul cvi put
- exch 2 add B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB [ MaskData RGBData ] false [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 8 IMLRTB [ MaskData RGBData ] false [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 8 IMLRTB [ MaskData RGBData ] false [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 8 IMLRTB [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 8 IMLRBT [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 8 IMRLTB [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 8 IMRLBT [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 8 IMLRTB [ MaskDProc RGBDProc ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 8 IMLRTB [ MaskDFile RGBDFile ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==12, WM=WD, HM=HD
- /YY YB def
- TX YY SY add moveto (BPC=12\nMulti\nfalse) blockshow
-
- /RGBData WD 36 mul 7 add 8 div cvi HD mul string def
- {
- X 36 mul 8 div Y WD 36 mul 7 add 8 div cvi mul add
- RGBData 1 index R put12bit
- RGBData 1 index 1.5 add G put12bit
- RGBData exch 3 add B put12bit
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 12 IMLRTB [ MaskData RGBData ] false [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 12 IMLRTB [ MaskData RGBData ] false [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 12 IMLRTB [ MaskData RGBData ] false [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 12 IMLRTB [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 12 IMLRBT [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 12 IMRLTB [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 12 IMRLBT [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 12 IMLRTB [ MaskDProc RGBDProc ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 12 IMLRTB [ MaskDFile RGBDFile ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==4, WM=WD, HM=HD
- /YY YC def
- TX YY SY add moveto (BPC=4\nMulti\nfalse) blockshow
-
- /RGBData WD 12 mul 7 add 8 div cvi HD mul string def
- {
- X 12 mul 8 div Y WD 12 mul 7 add 8 div cvi mul add
- RGBData 1 index R put4bit
- RGBData 1 index 0.5 add G put4bit
- RGBData exch 1.0 add B put4bit
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 4 IMLRTB [ MaskData RGBData ] false [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 4 IMLRTB [ MaskData RGBData ] false [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 4 IMLRTB [ MaskData RGBData ] false [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 4 IMLRTB [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 4 IMLRBT [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 4 IMRLTB [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 4 IMRLBT [ MaskData RGBData ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 4 IMLRTB [ MaskDProc RGBDProc ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 4 IMLRTB [ MaskDFile RGBDFile ] false [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RGBData (RGB) RGBDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==8, WM=WD, HM=HD
-% IT 3 is line interleave -- Mask and Data in separate sources
-% RGB Image Data seprate (MultipleDatasources==true).
- /YY YA def
- TX YY SY add moveto (BPC=8\nMulti\ntrue) blockshow
-
- % Generate the MaskData first
- MaskGen
-
- % Generate the Data Image
- WD HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- { X Y WD mul add
- RData 1 index R 255 mul cvi put
- GData 1 index G 255 mul cvi put
- BData exch B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 8 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 8 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 8 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 8 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 8 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==8, WM=WD, HM=HD
-% IT 3 is line interleave -- Mask and Data in separate sources
-% RGB Image Data seprate (MultipleDatasources==true).
- /YY YD def
- TX YY SY add moveto (BPC=8\nMulti\ntrue) blockshow
-
- % Generate the MaskData first
- MaskGen
-
- % Generate the Data Image
- WD HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- { X Y WD mul add
- RData 1 index R 255 mul cvi put
- GData 1 index G 255 mul cvi put
- BData exch B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 8 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 8 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 8 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 8 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 8 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==12, WM=WD, HM=HD
- /YY YE def
- TX YY SY add moveto (BPC=12\nMulti\ntrue) blockshow
-
- WD 3 mul 1 add 2 div cvi HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- {
- X 3 mul 2 div Y WD 3 mul 1 add 2 div cvi mul add
- RData 1 index R put12bit
- GData 1 index G put12bit
- BData exch B put12bit
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 12 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 12 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 12 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 12 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 12 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 12 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 12 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 12 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 12 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==4, WM=WD, HM=HD
- /YY YF def
- TX YY SY add moveto (BPC=4\nMulti\ntrue) blockshow
-
- WD 1 add 2 div cvi HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- {
- X 2 div Y WD 1 add 2 div cvi mul add
- RData 1 index R put4bit
- GData 1 index G put4bit
- BData exch B put4bit
- } ImageGen
-
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 4 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 4 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 4 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 4 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 4 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 4 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 4 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 4 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 4 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==8, WM=.9*WD, HM=1.1*HD
-% IT 3 is line interleave -- Mask and Data in separate sources
-% RGB Image Data seprate (MultipleDatasources==true).
- /YY YG def
- TX YY SY add moveto (BPC=8\nMulti\ntrue\nWM=.9*WD\nHM=1.1*HD) blockshow
-
- /WM 0.9 WD mul cvi def
- /HM 1.1 HD mul cvi def
- % Generate the MaskData first
- MaskGen
-
- % Generate the Data Image
- WD HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- { X Y WD mul add
- RData 1 index R 255 mul cvi put
- GData 1 index G 255 mul cvi put
- BData exch B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 8 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 8 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 8 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 8 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 8 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==12, WM=WD, HM=HD
- /YY YI def
- TX YY SY add moveto (BPC=12\nMulti\ntrue\nWM=.9*WD\nHM=1.1*HD) blockshow
-
- WD 3 mul 1 add 2 div cvi HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- {
- X 3 mul 2 div Y WD 3 mul 1 add 2 div cvi mul add
- RData 1 index R put12bit
- GData 1 index G put12bit
- BData exch B put12bit
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 12 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 12 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 12 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 12 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 12 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 12 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 12 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 12 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 12 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==4, WM=WD, HM=HD
- /YY YJ def
- TX YY SY add moveto (BPC=4\nMulti\ntrue\nWM=.9*WD\nHM=1.1*HD) blockshow
-
- WD 1 add 2 div cvi HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- {
- X 2 div Y WD 1 add 2 div cvi mul add
- RData 1 index R put4bit
- GData 1 index G put4bit
- BData exch B put4bit
- } ImageGen
-
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 4 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 4 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 4 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 4 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 4 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 4 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 4 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 4 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 4 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
-% ----------------------------------------------------------------------
-% InterleaveType 3, BPC==8, WM=1.1*WD, HM=.9*HD
-% IT 3 is line interleave -- Mask and Data in separate sources
-% RGB Image Data seprate (MultipleDatasources==true).
- /YY YH def
- TX YY SY add moveto (BPC=8\nMulti\ntrue\nWM=1.1*WD\nHM=.9*HD) blockshow
-
- /WM 1.1 WD mul cvi def
- /HM 0.9 HD mul cvi def
- % Generate the MaskData first
- MaskGen
-
- % Generate the Data Image
- WD HD mul /RData 1 index string def
- /GData 1 index string def
- /BData exch string def
- { X Y WD mul add
- RData 1 index R 255 mul cvi put
- GData 1 index G 255 mul cvi put
- BData exch B 255 mul cvi put
- } ImageGen
-
- % X BPC matrix source multi MaskDecode DataDecode IT DoImage3 -
- XA 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [1 0 1 0 1 0] 3 DoImage3
- XB 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [1 0 1 0 1 0] 3 DoImage3
- XC 8 IMLRTB [ MaskData [RData GData BData] ] true [0 1] [0 1 0 1 0 1] 3 DoImage3
- XD 8 IMLRTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XE 8 IMLRBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XF 8 IMRLTB [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XG 8 IMRLBT [ MaskData [RData GData BData] ] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XH 8 IMLRTB [ MaskDProc [RDProc GDProc BDProc]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- XI 8 IMLRTB [ MaskDFile [RDFile GDFile BDFile]] true [1 0] [0 1 0 1 0 1] 3 DoImage3
- MaskData (Mask) MDF CheckFileTail % Check that the correct amount of data was consumed
- RData (Red) RDF CheckFileTail % Check that the correct amount of data was consumed
- GData (Grn) GDF CheckFileTail % Check that the correct amount of data was consumed
- BData (Blu) BDF CheckFileTail % Check that the correct amount of data was consumed
-
- showpage
-} bind def % T3Tests
-
-
-% ----------------------------------------------------------------------
-% Do the various rotations
-%
-/CSpace /DeviceRGB def
-
-[ 0 10 -10 45 90 180 270 ]
-pop [ 0 ] % delete this line to enable tests
-{ /IR exch def T1T4Tests } forall
-
-[ 0 10 -10 45 90 180 270 ]
-pop [ 0 ] % delete this line to enable tests
-{ /IR exch def T3Tests } forall
-
-/CSpace [ /DeviceN [/Blue /Red /Green] /DeviceRGB { } ] def
-
-[ 0 10 -10 45 90 180 270 ]
-pop [ 0 ] % delete this line to enable tests
-{ /IR exch def T1T4Tests } forall
-
-[ 0 10 -10 45 90 180 270 ]
-pop [ 0 ] % delete this line to enable tests
-{ /IR exch def T3Tests } forall
diff --git a/Master/xemtex/gslib/impath.ps b/Master/xemtex/gslib/impath.ps
deleted file mode 100644
index 2b7d79fe67f..00000000000
--- a/Master/xemtex/gslib/impath.ps
+++ /dev/null
@@ -1,180 +0,0 @@
-% Copyright (C) 1992, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: impath.ps,v 1.3.4.1.2.1 2003/04/12 14:02:38 giles Exp $
-% impath.ps
-% Reverse-rasterize a bitmap to produce a Type 1 outline.
-% (This was formerly a Ghostscript operator implemented in C.)
-
-% <image> <width> <height> <wx> <wy> <ox> <oy> <string>
-% type1imagepath <substring>
-% Converts an image (bitmap) description of a character into
-% a scalable description in Adobe Type 1 format. The
-% current transformation matrix should be the same as the
-% FontMatrix of the font in which this character will be
-% used: this establishes the scaling relationship between
-% image pixels (the image is assumed to be 1 unit high in
-% user space) and the character coordinate system used in
-% the scalable description. wx and wy are the character
-% width, and ox and oy are the character origin relative
-% to the lower left corner of the bitmap, in *pixels*.
-% The image is assumed to be stored in left-to-right,
-% top-to-bottom order. Note that this is not consistent
-% with the `image' operator's interpretation of the CTM.
-% All coordinates in the scalable description are rounded to
-% integers, so the coefficients in the FontMatrix should
-% be on the order of 1/N for some value of N that is
-% either a multiple of the height/width or is large
-% compared to the width and height. (There is a
-% convention, which some PostScript programs rely on, that
-% N=1000.)
-% Note that the encoded description has *not* been subjected
-% to CharString encryption, which is necessary before the
-% description can be given to type1addpath: to do this,
-% follow the type1imagepath with
-% 4330 exch dup .type1encrypt exch pop
-% If the description is too complex to fit into the supplied
-% string, a limitcheck error results. A good rule of
-% thumb is that the size of the string should be about 6
-% times the number of 1-bits in the image that are not
-% completely surrounded by other 1-bits.
-
-% Import the Type 1 opcodes.
-(type1ops.ps) runlibfile
-
-100 dict
-dup /type1imagepath_dict exch def
-begin
-
-/rc { round cvi } bind def
-/moving [/rmoveto /hmoveto /vmoveto] def
-/drawing [/rlineto /hlineto /vlineto] def
-
-% Convert the current path to a Type 1 token array.
-/putxy % x y ops -> cs_elements
- { 3 -1 roll dup x sub rc exch /x exch def
- 3 -1 roll dup y sub rc exch /y exch def
- % stack: ops dx dy
- dup 0 eq
- { % dy = 0, use hmoveto/lineto
- pop exch 1 get
- }
- { 1 index 0 eq
- { % dx = 0, use vmoveto/lineto
- exch pop exch 2 get
- }
- { % use rmoveto/rlineto
- 3 -1 roll 0 get
- }
- ifelse
- }
- ifelse
- } bind def
-/pathtotype1 % -> charstack
- { 3 dict begin /x 0 def /y 0 def
- mark
- { moving putxy
- }
- { drawing putxy
- }
- { % Convert curve to relative form
- x y 3
- { exch neg 7 index add rc
- exch neg 6 index add rc
- 8 -2 roll
- }
- repeat /y exch def /x exch def
- 1 index 0 eq 5 index 0 eq and % dy1=dx3=0, hv
- { 5 -1 roll pop exch pop /hvcurveto
- }
- { dup 0 eq 6 index 0 eq and % dx1=dy3=0, vh
- { 6 -1 roll pop pop /vhcurveto
- }
- { /rrcurveto % none of the above
- }
- ifelse
- }
- ifelse
- }
- { /closepath
- }
- pathforall end
- } bind def
-
-end % type1imagepath_dict
-
-% The main program
-/type1imagepath % image width height wx wy ox oy string ->
- % substring
- { type1imagepath_dict begin
- /tsave save def
- /ostring exch def
- /oy exch def /ox exch def
- /wy exch def /wx exch def
- /height exch def /width exch def
- /data exch def
-
- /ofilter ostring /NullEncode filter def
- /raster width 7 add 8 idiv def
-
-% Construct the coordinate transformation.
- height dup scale
- matrix currentmatrix matrix invertmatrix setmatrix
-
-% Determine the left side bearing.
- /lsbx width
- 0 1 width 1 sub
- { dup dup 8 idiv 0 exch
- raster raster height mul 1 sub
- { data exch get or }
- for exch 8 mod bitshift 128 and 0 ne
- { exch pop exit }
- if pop
- }
- for def
-
-% Compute and encode the origin, width, and side bearing.
- mark
- ox oy dtransform
- rc /opty exch def rc /optx exch def
- wx wy dtransform
- rc /iwy exch def rc /iwx exch def
- lsbx ox sub 0 dtransform
- rc /ilsby exch def rc /ilsbx exch def
- ilsbx
- iwy 0 ne ilsby 0 ne or
- { ilsby iwx iwy /sbw }
- { iwx /hsbw }
- ifelse
- ofilter charstack_write
-
-% Flip over the Y axis, because the image is stored top-to-bottom.
- [1 0 0 -1 0 height] concat
-% Account for the character origin.
- lsbx oy translate
-% Trace the outline.
- newpath
- width height data .imagepath
- gsave matrix setmatrix pathtotype1 grestore
- ofilter charstack_write
-% Terminate the output
- mark /endchar ofilter charstack_write
-
- ofilter .fileposition ofilter closefile % flush buffers
- ostring 0 3 -1 roll getinterval
- tsave restore
- end
- } bind def
diff --git a/Master/xemtex/gslib/jispaper.ps b/Master/xemtex/gslib/jispaper.ps
deleted file mode 100644
index 94ef1384ce9..00000000000
--- a/Master/xemtex/gslib/jispaper.ps
+++ /dev/null
@@ -1,28 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: jispaper.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Select JIS B paper sizes for b0...b6.
-
-userdict begin
- /b0 /jisb0 load def
- /b1 /jisb1 load def
- /b2 /jisb2 load def
- /b3 /jisb3 load def
- /b4 /jisb4 load def
- /b5 /jisb5 load def
- /b6 /jisb6 load def
-end
diff --git a/Master/xemtex/gslib/landscap.ps b/Master/xemtex/gslib/landscap.ps
deleted file mode 100644
index c99a312be01..00000000000
--- a/Master/xemtex/gslib/landscap.ps
+++ /dev/null
@@ -1,31 +0,0 @@
-%!
-% landscap.ps
-% This file can be prepended to most PostScript pages to force
-% rotation to "landscape" mode.
-%
-% There are (at least) four possible ways to reasonably position a
-% page after rotation. Any of the four old corners (llx,lly e.g.)
-% can be moved to match the corresonding new corner.
-% By uncommmenting the appropriate line below (i.e., remove the
-% leading '%'), any such positioning can be chosen for positive or
-% negative rotation. The comments at the end of each "rotate" line
-% indicate the ORIGINAL corner to be aligned. For example, as given
-% below, the lower left hand corner is aligned. When viewed, this
-% corner will have moved to the urx,lly corner.
-%
-% James E. Burns, 3/8/93, burns@nova.bellcore.com
-%
-% $Id: landscap.ps,v 1.1.6.1 2002/04/10 09:22:58 giles Exp $
-%
-gsave clippath pathbbox grestore
-4 dict begin
-/ury exch def /urx exch def /lly exch def /llx exch def
-%90 rotate llx neg ury neg translate % llx,ury
-90 rotate llx neg llx urx sub lly sub translate % llx,lly
-%90 rotate ury lly sub urx sub ury neg translate % urx,ury
-%90 rotate ury lly sub urx sub llx urx sub lly sub translate % urx,lly
-%-90 rotate urx neg lly neg translate % urx,lly
-%-90 rotate urx neg urx llx sub ury sub translate % urx,ury
-%-90 rotate llx lly add ury sub urx llx sub ury sub translate % llx,ury
-%-90 rotate llx lly add ury sub lly neg translate % llx,lly
-end
diff --git a/Master/xemtex/gslib/level1.ps b/Master/xemtex/gslib/level1.ps
deleted file mode 100644
index b64374d18b1..00000000000
--- a/Master/xemtex/gslib/level1.ps
+++ /dev/null
@@ -1,3 +0,0 @@
-%!
-% $Id: level1.ps,v 1.1.6.1 2002/04/10 09:22:58 giles Exp $
-/.setlanguagelevel where { pop 1 .setlanguagelevel } if
diff --git a/Master/xemtex/gslib/lines.ps b/Master/xemtex/gslib/lines.ps
deleted file mode 100644
index b784e01aa7c..00000000000
--- a/Master/xemtex/gslib/lines.ps
+++ /dev/null
@@ -1,166 +0,0 @@
-%!
-% Copyright (C) 1989, 1990, 1992, 1994, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: lines.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Test line rendering (stroke).
-
-% Exercise the miter limit. The left column of lines should bevel at
-% 90 degrees, the right column at 60 degrees.
-
-gsave
-1.8 setlinewidth
-0 setgray
-15 15 scale
--5 5 translate
-[1.415 2.0]
- { setmiterlimit 12 0 translate 0 0 moveto
- 10 30 360
- { gsave 5 0 rlineto rotate 2.5 0 rlineto
- gsave 0 setlinewidth 1 0 0 setrgbcolor stroke grestore
- strokepath 0 setlinewidth stroke
- grestore
- 0 4 rmoveto
- } for
- } forall
-
-showpage
-grestore
-
-% Exercise all the combinations of cap and join styles
-% for one-line, two-line, and closed paths.
-
-gsave
-
-/drawlines {
-gsave
-2.0 setmiterlimit
-2.0 setlinewidth
-6 6 scale
-5 20 translate
-{0 1 2} % line cap
- { setlinecap gsave
- {0 1 2} % line join
- { setlinejoin gsave
- { {currentpoint lineto}
- {3 7 lineto}
- {3 7 lineto 5 1 lineto}
- {3 7 lineto 6 3 lineto closepath}
- }
- { gsave 0 0 moveto exec
- gsave stroke grestore
- 0.5 setlinewidth 1 0 0 setrgbcolor stroke
- grestore 8 0 translate
- } forall
- grestore 35 0 translate
- } forall
- grestore 0 20 translate
- } forall
-grestore
-} def
-/xflip
- { 8.5 72 mul 0 translate -1 1 scale
- } def
-/rot90
- { 90 rotate 0 -9.75 72 mul translate
- } def
-/rot180
- { rot90 rot90
- } def
-/rot270
- { rot180 rot90
- } def
-
-drawlines showpage
-gsave xflip drawlines grestore showpage
-gsave rot90 drawlines grestore showpage
-gsave rot90 xflip drawlines grestore showpage
-gsave drawlines rot180 showpage
-gsave rot180 xflip drawlines grestore showpage
-gsave rot270 drawlines grestore showpage
-gsave rot270 xflip drawlines grestore showpage
-grestore
-
-% Here are some boundary conditions, contributed by Mark Rawling.
-
-gsave
-1 setlinecap
-2.6 setmiterlimit
-3.0 setlinewidth
-
-5 5 scale
-10 20 translate
-
-% [ 0.5 sqrt dup dup dup neg exch 0 0 ] concat % 45 rotate
-
-{0 1 2} % line join
-{
- setlinejoin gsave
- 0 0 moveto 0 10 lineto 10 0 lineto gsave stroke grestore
- 15 0 translate
- 0 0 moveto 0 10 lineto 10 20 lineto gsave stroke grestore
- 15 0 translate
- 10 0 moveto 10 10 lineto 0 20 lineto gsave stroke grestore
- 15 0 translate
- 10 0 moveto 10 10 lineto 0 0 lineto gsave stroke grestore
- grestore
- gsave
- 0 20 translate
- 0 20 moveto 0 10 lineto 10 20 lineto gsave stroke grestore
- 15 0 translate
- 0 20 moveto 0 10 lineto 10 0 lineto gsave stroke grestore
- 15 0 translate
- 10 20 moveto 10 10 lineto 0 0 lineto gsave stroke grestore
- 15 0 translate
- 10 20 moveto 10 10 lineto 0 20 lineto gsave stroke grestore
- grestore 60 0 translate
-} forall
-
-showpage
-grestore
-
-% Test narrow lines at a variety of angles.
-
-gsave
-
-/rad 120 def
-/ray { gsave rotate 0 0 moveto rad 0 rlineto stroke grestore } def
-/star
- { newpath gsave
- gsave 0.5 setgray 0 0 rad 0 360 arc stroke grestore
- 0 90 359
- { rotate
- 0 3 14 { ray } for
- 15 15 89 { ray } for
- } for
- grestore
- } def
-
-0 setgray
-150 150 translate
-[ [ 0 0.5 1 ] [ 1.5 2 2.5 ] [ 3 3.5 4 ] ]
- { gsave
- { setlinewidth star
- 250 0 translate
- } forall
- grestore 0 250 translate
- } forall
-
-grestore showpage
-
-% End
-
-quit
diff --git a/Master/xemtex/gslib/lp386.bat b/Master/xemtex/gslib/lp386.bat
deleted file mode 100644
index 65141bcefb0..00000000000
--- a/Master/xemtex/gslib/lp386.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@rem $Id: lp386.bat,v 1.1 2000/03/09 08:40:40 lpd Exp $
-@gs386 -sDEVICE=djet500 -dNOPAUSE -- gslp.ps -fCourier9 %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/lp386r2.bat b/Master/xemtex/gslib/lp386r2.bat
deleted file mode 100644
index 9a6f80d9afd..00000000000
--- a/Master/xemtex/gslib/lp386r2.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@rem $Id: lp386r2.bat,v 1.1 2000/03/09 08:40:40 lpd Exp $
-@gs386 -sDEVICE=djet500 -dNOPAUSE -- gslp.ps -2r %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/lpgs.bat b/Master/xemtex/gslib/lpgs.bat
deleted file mode 100644
index 179667212d6..00000000000
--- a/Master/xemtex/gslib/lpgs.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: lpgs.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -sDEVICE#djet500 -dNOPAUSE -sPROGNAME=lpgs -- gslp.ps -fCourier9 %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/lpr2.bat b/Master/xemtex/gslib/lpr2.bat
deleted file mode 100644
index ede47c51e78..00000000000
--- a/Master/xemtex/gslib/lpr2.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-@rem $Id: lpr2.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-%GSC% -sDEVICE#djet500 -dNOPAUSE -sPROGNAME=lpr2 -- gslp.ps -2r %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Master/xemtex/gslib/lprsetup.sh b/Master/xemtex/gslib/lprsetup.sh
deleted file mode 100644
index 8d4bc5073c3..00000000000
--- a/Master/xemtex/gslib/lprsetup.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/sh
-# $Id: lprsetup.sh,v 1.1 2000/03/09 08:40:40 lpd Exp $
-#
-# BSD PRINT FILTER SETUP utility for Ghostscript - used and tested on
-# SunOS 4.1.3, but I hope it will be useful on other BSD systems
-# See documentation for usage
-#
-
-DEVICES="bjt600.32 bjc600.32 bjc600.24 bjc600.24.3 bjc600.16 bjc600.8 bjc600.8.1 bjc600.1 bjc600.dq"
-#FILTERS="if nf tf gf vf df cf rf"
-FILTERS="if"
-
-# The port your printer is on
-PRINTERDEV=/dev/lp1
-# The kind of printer (accepted values: 'parallel' and 'serial')
-PRINTERTYPE=parallel
-
-GSDIR=/usr/local/lib/ghostscript
-GSFILTERDIR=$GSDIR/filt
-SPOOLDIR=/var/spool
-GSIF=unix-lpr.sh
-PCAP=printcap.insert
-
-PATH=/bin:/usr/bin:/usr/ucb
-export PATH
-
-if [ ! -w $GSDIR ]; then
- echo "$GSDIR must be writable to create filter directory"
- exit 1
-fi
-
-echo "
-Making links in the filter directory $GSFILTERDIR ...
-"
-
-#
-# Make the directory for holding the filter and links
-#
-if [ -d $GSFILTERDIR ]; then
- echo "$GSFILTERDIR already exists - not created"
-else
- mkdir $GSFILTERDIR
-fi
-rm -f $GSFILTERDIR/direct
-ln -s . $GSFILTERDIR/direct
-rm -f $GSFILTERDIR/indirect
-ln -s . $GSFILTERDIR/indirect
-
-#
-# Create a link from each filtertype to the real filter script
-#
-for filter in $FILTERS
-do
- rm -f $GSFILTERDIR/gs$filter
- ln -s ../$GSIF $GSFILTERDIR/gs$filter
-done
-
-#
-# Create a link from each device to the filter directory
-#
-for device in $DEVICES
-do
- dualqueue=
- case "$device" in
- *.dq) device=`basename $device .dq` ; dualqueue=t ;;
- esac
- rm -f $GSFILTERDIR/$device
- if [ $dualqueue ]; then
- rm -f $GSFILTERDIR/indirect/$device
- ln -s . $GSFILTERDIR/indirect/$device
- else
- rm -f $GSFILTERDIR/direct/$device
- ln -s . $GSFILTERDIR/direct/$device
- fi
-done
-
-#
-# Create a basic printcap insert - this is made in the CURRENT directory
-#
-rm -f $PCAP
-cat > $PCAP << EOF
-# This is an example printcap insert for Ghostscript printers
-# You will probably want either to change the names for each printer
-# below (first line for each device) to something more sensible, or
-# to add additional name entries (eg cdjcolor for cdj500.24)
-# The example is shown set up for $PRINTERTYPE printers - you will need
-# to alter the entries for different or networked remote printer,
-# eg. a remote network printer would have a line something like:
-# :lp=:rm=artemis:rp=LPT1:
-# for a PC called artemis, replacing the serial port settings
-#
-# NB/ This is only an example - it is unlikely to be complete or exactly
-# correct for your system, but is designed to illustrate filter names
-# corresponding to the accompanying bsd-if print filter
-#
-EOF
-
-(
-previous=undefined
-for device in $DEVICES
-do
- dualqueue=
- case "$device" in
- *.dq) device=`basename $device .dq` ; dualqueue=t ;;
- esac
- base="`echo $device | sed 's/\.[0-9][0-9]*$//'`"
- base="`echo $base | sed 's/\.[0-9][0-9]*$//'`"
-#
-# If device listed with '.dq' suffix, we set up a separate output queue
-#
- if [ $dualqueue ]; then
- if [ $base != $previous ]; then
- previous=$base
- echo "\
-# Entry for raw device $base.raw
-$base.raw|Raw output device $base:\\
- :lp=$PRINTERDEV:\\"
- if test "$PRINTERTYPE" = serial
- then
- echo "br#19200:xc#0177777:\\"
- echo ":ms=-parity,ixon,-opost:\\"
- fi
- echo ":sd=$SPOOLDIR/$base/raw:\\
- :mx#0:sf:sh:rs:"
- fi
- echo "\
-# Entry for device $device (output to $base.raw)
-$device|Ghostscript device $device:\\
- :lp=/dev/null:\\"
- else
- echo "\
-# Entry for device $device
-$device|Ghostscript device $device:\\
- :lp=$PRINTERDEV:\\"
- if test "$PRINTERTYPE" = serial
- then
- echo "br#19200:xc#0177777:\\"
- echo ":ms=-parity,ixon,-opost:\\"
- fi
- fi
- echo "\
- :sd=$SPOOLDIR/$base:\\
- :lf=$SPOOLDIR/$base/logfile:\\
- :af=$SPOOLDIR/$base/acct:\\"
- for filter in $FILTERS
- do
- if [ $dualqueue ]; then
- echo "\
- :$filter=$GSFILTERDIR/indirect/$device/gs$filter:\\"
- else
- echo "\
- :$filter=$GSFILTERDIR/direct/$device/gs$filter:\\"
- fi
- done
- echo "\
- :mx#0:sf:sh:rs:"
-done
-) >> $PCAP
-
-echo "
-Example printcap insert file \"$PCAP\" now created"
-
-#
-# Remind the user what's still to do
-#
-
-echo "
-NB/ You will need to create the following directories, with
-appropriate permissions, and do 'touch logfile' and 'touch acct'
-in the top level directories (ie. not the 'raw' ones):
-"
-(
-for device in $DEVICES
-do
- dualqueue=
- case "$device" in
- *.dq) device=`basename $device .dq` ; dualqueue=t ;;
- esac
- base="`echo $device | sed 's/\.[0-9][0-9]*$//'`"
- base="`echo $base | sed 's/\.[0-9][0-9]*$//'`"
- echo " $SPOOLDIR/$base"
- if [ $dualqueue ]; then
- echo " $SPOOLDIR/$base/raw"
- fi
-done
-) | sort -u
-
-echo "
- + + + "
diff --git a/Master/xemtex/gslib/markhint.ps b/Master/xemtex/gslib/markhint.ps
deleted file mode 100644
index 1ce2498fe55..00000000000
--- a/Master/xemtex/gslib/markhint.ps
+++ /dev/null
@@ -1,131 +0,0 @@
-% Copyright (C) 1994, 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: markhint.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% markhint.ps
-% Draw the hints for a Type 1 font.
-
-(type1ops.ps) runlibfile
-
-/mhsetup % <matrix> <print> mhsetup -
- { /mhprint exch def
- /mhmx exch def
- /mhdash 0 9 gsave initmatrix dtransform grestore idtransform add abs def
- gsave
- clippath pathbbox
- 2 index sub /bbh exch def
- 2 index sub /bbw exch def
- /bby exch def
- /bbx exch def
- grestore
- } def
-
-/markfonthints % <matrix> <print> markfonthints -
- { mhsetup
- } def
-
-/hmark % <y> hmark -
- { bbx exch moveto bbw 0 rlineto stroke
- } def
-/hsmark % <y0> <dy> hsmark -
- { 1 index add exch gsave
- [mhdash] 0 setdash 0 exch mhmx transform exch pop hmark
- [mhdash 2 div dup 2 mul] 0 setdash 0 exch mhmx transform exch pop hmark
- grestore
- } def
-/vmark % <x> vmark -
- { bby moveto 0 bbh rlineto stroke
- } def
-/vsmark % <x0> <dx> vsmark -
- { 1 index add exch gsave
- [mhdash] mhdash setdash 0 mhmx transform pop vmark
- [mhdash 2 div dup 2 mul] 0 setdash 0 mhmx transform pop vmark
- grestore
- } def
-/pmark % <x> <y> pmark -
- { newpath 0 4.5 gsave initmatrix dtransform grestore idtransform add abs
- 0 360 arc stroke
- } def
-/mchdict mark
- /hsbw { pop 0 mhmx transform translate 0 0 pmark }
- /sbw { pop pop mhmx transform translate 0 0 pmark }
- /hstem
- { mhprint { (hstem ) print 2 copy 2 packedarray == } if
- hsmark
- }
- /vstem
- { mhprint { (vstem ) print 2 copy 2 packedarray == } if
- vsmark
- }
- /hstem3
- { mhprint { (hstem3 ) print 6 copy 6 packedarray == } if
- 3 { hsmark } repeat
- }
- /vstem3
- { mhprint { (vstem3 ) print 6 copy 6 packedarray == } if
- 3 { vsmark } repeat
- }
- /div
- { div
- }
- /callothersubr
- { 3 eq
- { pop
- mhprint { (replace) = } if
- % We're replacing hints; lighten the color.
- currentrgbcolor 3 { 2 mul 3 div 3 1 roll } repeat setrgbcolor
- }
- { { pop } repeat
- } ifelse
- }
- /callsubr
- { Private /Subrs get exch get mchinterp
- }
- /pop
- {
- }
- /return
- {
- }
-.dicttomark def
-
-/mchinterp % <charstring> mchinterp -
- { 4330 exch dup length string .type1decrypt exch pop
- dup length lenIV sub lenIV exch getinterval
- 0 () /SubFileDecode filter
- mark exch charstack_read ]
- { dup type /nametype eq
- { mchdict exch .knownget { exec } { cleartomark mark } ifelse
- }
- if
- }
- forall
- } def
-
-/markcharhints % <charname> <matrix> <print> markcharhints -
- { mhsetup
- gsave mark
- /Private currentfont /Private get def
- Private rcheck % make sure we won't get an access error
- { /lenIV Private /lenIV .knownget not { 4 } if def
- currentfont /CharStrings get 3 -1 roll get mchinterp
- }
- { (Sorry, this font is protected; I can't show the hints.\n) print flush
- exch
- }
- ifelse
- cleartomark grestore
- } def
diff --git a/Master/xemtex/gslib/markpath.ps b/Master/xemtex/gslib/markpath.ps
deleted file mode 100644
index e85dfe63ca8..00000000000
--- a/Master/xemtex/gslib/markpath.ps
+++ /dev/null
@@ -1,60 +0,0 @@
-% Copyright (C) 1993 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: markpath.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% markpath.ps
-% Mark the corners of a path, drawing it slowly if desired.
-
-/Delay where { pop } { /Delay 0 def } ifelse
-/setxy0
- { currentpoint /y0 exch def /x0 exch def
- } def
-/bip
- { epsx epsy idtransform /ey exch def /ex exch def
- currentpoint ex 2 div ey 2 div rlineto currentpoint 0 ey neg rlineto
- ex neg 0 rlineto 0 ey rlineto lineto lineto
- stroke
- } def
-/dally
- { Delay { } repeat
- Delay 0 ne { flushpage } if
- } def
-/movebip
- { /xs 2 index def /ys 1 index def
- gsave newpath mpmx transform moveto setxy0 bip grestore
- } def
-/linebip
- { gsave newpath x0 y0 moveto mpmx transform lineto setxy0 bip dally grestore
- } def
-/curvebip
- { gsave newpath x0 y0 moveto 5 index 5 index mpmx transform lineto bip
- 2 copy mpmx transform moveto 3 index 3 index mpmx transform lineto bip
- x0 y0 moveto
- 3 { mpmx transform 6 2 roll } repeat
- curveto setxy0 bip dally grestore
- } def
-/closebip
- { xs ys linebip
- } def
-
-/markpath % <matrix> markpath -
- { /mpmx exch def
- gsave initgraphics 9 dup dtransform grestore
- /epsy exch def /epsx exch def
- gsave 0 setlinewidth
- { movebip } { linebip } { curvebip } { closebip } pathforall
- grestore
- } def
diff --git a/Master/xemtex/gslib/necp2x.upp b/Master/xemtex/gslib/necp2x.upp
deleted file mode 100644
index 70a9d7e7cbd..00000000000
--- a/Master/xemtex/gslib/necp2x.upp
+++ /dev/null
@@ -1,35 +0,0 @@
--supModel="NEC Prinwriter 2X, 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Epson
--r360x360
--dupMargins="{ 9.0 40.0 9.0 67.0}"
--dupWhiteTransfer="{
- 0.40000 0.36253 0.32747 0.29475
- 0.26428 0.23599 0.20979 0.18561
- 0.16336 0.14297 0.12435 0.10741
- 0.09209 0.07831 0.06597 0.05500
- 0.04532 0.03684 0.02950 0.02320
- 0.01787 0.01343 0.00979 0.00687
- 0.00461 0.00290 0.00168 0.00086
- 0.00036 0.00011 0.00001 0.00000
-}"
--dupWeaveXPasses=2
--dupWeaveYPasses=2
--dupOutputPins=24
--dupWeaveYFeeds="{11 12 13 12}"
--dupWeaveInitialYFeeds="{ 0 1 0 11}"
--dupWeaveInitialPins="{ 6 24 16 5}"
--dupFormatXabsolute
--dupBeginPageCommand="<
-1b40 1b40 1b7401 1b5200 1b50 1b54 1b7200 1b32 1b4306 1b5500 0d 1c242000
->"
--dupAdjustPageLengthCommand
--dupEndPageCommand="(\014)"
--dupAbortCommand="(\034F\034\063\044\15\12\12\12 Printout-Aborted\15\014)"
--dupXMoveCommand="(\015\034$)"
--dupSetLineFeedCommand="(\034F\034\063)"
--dupWriteComponentCommands="{(\033*\047)}"
diff --git a/Master/xemtex/gslib/necp2x6.upp b/Master/xemtex/gslib/necp2x6.upp
deleted file mode 100644
index f0af04e03de..00000000000
--- a/Master/xemtex/gslib/necp2x6.upp
+++ /dev/null
@@ -1,35 +0,0 @@
--supModel="NEC Prinwriter 2X, 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/Epson
--r360x360
--dupMargins="{ 9.0 9.0 9.0 67.0}"
--dupWhiteTransfer="{
- 0.40000 0.36253 0.32747 0.29475
- 0.26428 0.23599 0.20979 0.18561
- 0.16336 0.14297 0.12435 0.10741
- 0.09209 0.07831 0.06597 0.05500
- 0.04532 0.03684 0.02950 0.02320
- 0.01787 0.01343 0.00979 0.00687
- 0.00461 0.00290 0.00168 0.00086
- 0.00036 0.00011 0.00001 0.00000
-}"
--dupWeaveXPasses=3
--dupWeaveYPasses=2
--dupOutputPins=24
--dupWeaveYFeeds="{ 7 9 7 9 7 9}"
--dupWeaveInitialYFeeds="{ 0 0 1 0 0 9}"
--dupWeaveInitialPins="{ 5 21 13 16 8 24}"
--dupFormatXabsolute
--dupBeginPageCommand="<
-1b40 1b40 1b7401 1b5200 1b50 1b54 1b7200 1b32 1b4306 1b5500 0d 1c242000
->"
--dupAdjustPageLengthCommand
--dupEndPageCommand="(\014)"
--dupAbortCommand="(\034F\034\063\044\15\12\12\12 Printout-Aborted\15\014)"
--dupXMoveCommand="(\015\034$)"
--dupSetLineFeedCommand="(\034F\034\063)"
--dupWriteComponentCommands="{(\033*\041)}"
diff --git a/Master/xemtex/gslib/packfile.ps b/Master/xemtex/gslib/packfile.ps
deleted file mode 100644
index 3a311b2613e..00000000000
--- a/Master/xemtex/gslib/packfile.ps
+++ /dev/null
@@ -1,334 +0,0 @@
-% Copyright (C) 1994, 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: packfile.ps,v 1.2.6.2.2.1 2003/04/12 14:02:39 giles Exp $
-% packfile.ps
-% Pack groups of files together, with compression, for use in
-% storage-scarce environments.
-
-% ****** NOTE: This file must be kept consistent with gs_pfile.ps.
-
-% ---------------- Huffman coding utilities ---------------- %
-
-% We count runs of zeros, and individual byte frequencies separately
-% depending on whether they follow or do not follow a run of zeros.
-/zruns 256 array def
-/zfreq 256 array def
-/nzfreq 256 array def
-/maxcode 13 def % max code length, must be between 10 and 16
-/maxzrun 100 def % max length of zero run, must be <= 100
-/statbuf 10000 string def
-
-% Initialize statistics.
-/initstats % - initstats -
- { 0 1 255 { zruns exch 0 put } for
- 0 1 255 { zfreq exch 0 put } for
- 0 1 255 { nzfreq exch 0 put } for
- } bind def
-
-% Accumulate statistics from an individual file.
-/addstats % <file> addstats -
- { 0
- { 1 index //statbuf readstring 3 1 roll
- % Stack: file eof numzeros data
- { dup 0 eq
- { pop 1 add
- }
- { 1 index 0 ne
- { exch 255 .min
- //zruns exch 2 copy get 1 add put
- 0 exch //zfreq
- }
- { //nzfreq
- }
- ifelse
- exch 2 copy get 1 add put
- }
- ifelse
- } forall
- exch not { exit } if (.) print flush
- } loop
- pop closefile
- } bind def
-
-% Compute the Huffman codes from the statistics.
-/statcodes % - statcodes <array>
- { maxcode 1 add 256 add maxzrun 2 sub add 1 add array % full array
- dup maxcode 1 add dup 2 index length exch sub getinterval % data
- % Put statistics into array
- dup 0 1 255
- { zfreq 1 index get nzfreq 2 index get add put dup
- } for
- 0 zruns 1 get put
- 256 zruns 2 maxzrun 2 sub getinterval putinterval
- dup dup length 1 sub 1 put % EOD
- maxcode .computecodes
- } bind def
-
-% ---------------- File handling ---------------- %
-
-% Copy one file to another.
-% Close the input file, but not the output file.
-/copyfile % <infile> <outfile> copyfile <outfile> <length>
- { 0 mark statbuf
- { 4 index 1 index readstring
- exch 5 index 1 index writestring
- length 5 -1 roll add 4 1 roll
- not { exit } if (.) print flush
- } loop
- cleartomark 3 -1 roll closefile dup == flush
- } bind def
-
-% Represent a Type 1 font in its most compressed format.
-% Requires -dWRITESYSTEMDICT to run.
-% Does not close the output file.
-(wrfont.ps) runlibfile
-/compressfont % <fontname> <outfile> compressfont <outfile>
- { exch save
- systemdict /executeonly /readonly load put
- systemdict /noaccess /readonly load put
- systemdict readonly pop
- wrfont_dict begin
- /binary_CharStrings true def
- /binary_tokens true def
- /encrypt_CharStrings false def
- /standard_only false def
- /use_lenIV 0 def
- /smallest_output true def
- end
- exch findfont setfont
- 1 index writefont
- restore
- } bind def
-
-% ---------------- Main program ---------------- %
-
-% Find the length of a file.
-/filelength % <filename> filelength <length>
- { status { pop pop exch pop } { -1 } ifelse
- } bind def
-
-% Define the header string for a compressed file.
-/beginfilestring
-({dup token pop exch[/MaxCodeLength 2 index token pop/Tables 4 index token pop
-/EndOfData true/EncodeZeroRuns 256 .dicttomark
-/BoundedHuffmanDecode filter/MoveToFrontDecode filter
-[/BlockSize 4 -1 roll .dicttomark/BWBlockSortDecode filter
-}) readonly def
-
-% Write a 16-bit big-endian non-negative integer on a file.
-/write16 % <file> <int> write16 -
- { 2 copy -8 bitshift write 255 and write
- } bind def
-
-% Compress a group of files together.
-% Return a dictionary in which the keys are the input file names
-% and the values are [startpos length] in the uncompressed concatenation.
-% Does not open or close the output file.
-/tempname (t.em) def
-/packfiles % <filenames> <outfile> packfiles <outfile> <posdict>
- { % Concatenate files to a temporary file.
- tempname (w) file
- dup /MoveToFrontEncode filter
- dup <<
- /BlockSize 1000000
- >> /BWBlockSortEncode filter
- % Stack: filenames outfile tempfile mtfe bwe
- 5 -1 roll dup length dict 0 6 2 roll
- { % Stack: outfile posdict pos tempfile mtfe bwe infilename
- dup ==only dup (r) file 2 index copyfile exch pop
- dup 7 index 4 2 roll 7 index exch 2 array astore put
- 5 -1 roll add 4 1 roll
- } forall
- closefile closefile closefile pop exch
- % Stack: posdict outfile
- % Compute an optimal Huffman code.
- initstats
- tempname (r) file addstats
- % Actually compress the file.
- % Write the decompression information on the output first.
- dup tempname filelength write==
- dup maxcode write==
- % Write the code table as a homogenous number array.
- statcodes exch
- dup 149 write dup 32 write dup 2 index length write16
- exch { 2 copy write16 pop } forall
- dup <<
- /MaxCodeLength maxcode
- /EndOfData true
- /EncodeZeroRuns 256
- /Tables statcodes
- >> /BoundedHuffmanEncode filter
- tempname (r) file exch copyfile pop closefile
- exch
- } bind def
-
-% Squeeze a font to a .cpf file in anticipation of compression.
-/squeezefont % <fontname> squeezefont <filename.cpf>
- { dup type /nametype ne { cvn } if
- dup
- { dup type /stringtype eq { exit } if
- Fontmap exch get
- }
- loop
- % Stack: fontname filename
- dup dup
- { (.) search not { exit } if
- exch pop exch 3 -1 roll pop
- }
- loop
- % Stack: fontname filename noextname extension
- exch
- { (/) search not { (\\) search not { exit } if } if
- pop pop
- }
- loop
- % If the font extension is anything other than
- % .pfa or .pfb, we assume it can't be rewritten
- % using compressfont.
- % Stack: fontname filename extension basename
- (.cpf) concatstrings dup 5 1 roll (w) file
- % Stack: outfilename fontname filename extension outfile
- exch dup (pfa) eq exch (pfb) eq or
- % Stack: outfilename fontname filename outfile bool
- { exch pop compressfont
- }
- { 3 -1 roll pop
- exch findlibfile pop exch pop
- exch copyfile pop
- }
- ifelse closefile
- } bind def
-
-% ---------------- Production code ---------------- %
-
-% The following code constructs a packed version of the commercial-quality
-% fonts available from Aladdin Enterprises. To use this code:
-% - If desired, change the output file names below.
-% - Make sure you have the synthetic font data (fontmap.shs and the
-% *.ps files for the commercial fonts) in a directory that is on
-% Ghostscript's search path.
-% - Construct the packed fonts by running
-% gs -dNODISPLAY -dWRITESYSTEMDICT packfile.ps
-% - If desired, move the output files to the directory that will be
-% used at run time. You no longer need the *.pfb or *.ps files
-% for the original fonts; however, you do still need the Fontmap
-% for these fonts, because it defines the font name aliases.
-% - Add the following line to the end of gs_fonts.ps:
-% (ALL.cmp) run
-% (substituting the definition of allmapname if you changed it).
-
-% Define the output file names. The extensions are arbitrary;
-% any legal file name is allowed.
-/allname (ALL.cff) def % the compressed font file
-/allmapname (ALL.cmp) def % the Fontmap override file
-
-% Load an alternate Fontmap that references the synthetic oblique and
-% narrow fonts.
-true .setglobal
-(fontmap.shs) findlibfile pop exch pop .loadFontmap
-false .setglobal
-
-% Define the packaging of fonts into font groups.
-% Fewer larger groups compress better, but make decompression slower.
-/Lists [
-[ % The oblique and narrow fonts are synthetic,
- % and take very little space.
- /AvantGarde-BookOblique /AvantGarde-DemiOblique
- /Courier-Oblique /Courier-BoldOblique
- /Helvetica-Oblique /Helvetica-BoldOblique
- /Helvetica-Narrow /Helvetica-Narrow-Oblique
- /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique
-]
-[/AvantGarde-Book /AvantGarde-Demi
- /Bookman-Light] [/Bookman-LightItalic
- /Bookman-Demi /Bookman-DemiItalic
- /Courier] [/Courier-Bold
- /Helvetica /Helvetica-Bold]
-[/NewCenturySchlbk-Roman /NewCenturySchlbk-Italic
- /NewCenturySchlbk-Bold /NewCenturySchlbk-BoldItalic]
-[/Palatino-Roman /Palatino-Italic
- /Palatino-Bold /Palatino-BoldItalic]
-[/Times-Roman /Times-Italic
- /Times-Bold /Times-BoldItalic]
-[/Symbol
- /ZapfChancery-MediumItalic
- /ZapfDingbats]
-] def
-
-% We need to register the fonts under their true names, not aliases.
-/Lists Lists mark exch
- { mark exch
- { { Fontmap 1 index get dup type /nametype ne { pop exit } if
- exch pop
- }
- loop
- }
- forall ]
- }
-forall ] def
-
-% Squeeze the fonts to their .cpf format.
-(Squeezing... ) print flush
-/fdict mark
-Lists
- { { dup squeezefont } forall } forall
-.dicttomark def
-(done.\n) print flush
-
-% Invert fdict.
-/f2dict fdict length dict def
-fdict { exch f2dict 3 1 roll put } forall
-
-% Construct the compressed font file.
-(Creating ) print allname print (... ) print flush
-/posdict fdict length dict def
-/all allname (w) file def
-all beginfilestring writestring
-Lists
- { dup == flush
- /fbegin all fileposition def
- mark exch { fdict exch get } forall ]
- all packfiles exch pop
- /flength all fileposition fbegin sub def
- { fbegin flength 3 -1 roll aload pop 4 packedarray
- exch f2dict exch get exch posdict 3 1 roll put
- }
- forall
- }
-forall
-all closefile
-(done.\n) print flush
-
-% Write the Fontmap addendum for accessing compressed fonts.
-(Writing ) print allmapname print (... ) print flush
-allmapname (w) file
-dup (%!
-/.runpackedlibfile where{pop}{(gs_pfile.ps)runlibfile}ifelse
-.currentglobal true .setglobal
-) writestring
-posdict
- { exch 2 index exch write==only exch dup ({) writestring
- dup allname write==only
- exch { 1 index dup ( ) writestring exch write==only } forall
- dup ( .runpackedlibfile}bind .definefontmap
-) writestring
- }
-forall
-dup (.setglobal
-) writestring
-closefile
-(done.\n) print flush
diff --git a/Master/xemtex/gslib/pcharstr.ps b/Master/xemtex/gslib/pcharstr.ps
deleted file mode 100644
index 06d6a29ca52..00000000000
--- a/Master/xemtex/gslib/pcharstr.ps
+++ /dev/null
@@ -1,127 +0,0 @@
-% Copyright (C) 1990, 1992, 1997, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pcharstr.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% pcharstr.ps
-% Print the CharStrings and Subrs (if present) from a Type 1 font,
-% in either a PostScript-like or a C-compatible form,
-% depending on whether CSFormat is defined as /PS or /C.
-
-% Load the Type 1 utilities.
-(type1ops.ps) runlibfile
-
-% Define the printing procedures for PostScript-like output.
-/pcs_ps_dict mark
- /, {( ) print}
- /charname {==only}
- /csbegin {}
- /beginchars {(%---------------- CharStrings\n) print}
- /charbegin {==only}
- /char1 {( ) print ==only}
- /endchars {}
- /beginsubrs {(%---------------- Subrs\n) print}
- /subrbegin {=only}
- /endsubrs {}
- /beginboxes {(%---------------- Encoding & metrics\n) print}
- /notdefbox {}
- /boxbegin {=only ( ) print}
- /boxend {(\n) print}
- /endboxes {(%----------------\n) print}
-.dicttomark readonly def
-
-% Define the printing procedures for C-like output.
-/pcs_c_dict mark
- /, {(, ) print}
- /charname {(") print =only (") print}
- /csbegin {counttomark =only ,}
- /beginchars {(\nconstdata int CSCharData[] = {\n) print}
- /charbegin {pop}
- /char1 {=only ,}
- /endchars {
- (-1\n};\nconstdata char *CSCharNames[] = {\n) print
- CharStrings {pop charname ,} forall (0\n};\n) print
- }
- /beginsubrs {(\nconstdata int CSSubrs[] = {\n) print}
- /subrbegin {pop}
- /endsubrs {(-1\n};\n) print}
- /beginboxes {(\nconstdata type1_box CSboxes[] = {\n) print}
- /notdefbox {( {""},\n) print}
- /boxbegin {pop ( {) print}
- /boxend {(},) =}
- /endboxes {( {0}\n};\n) print}
-.dicttomark readonly def
-
-/printcs
- { dup type /stringtype eq
- { printcs1 (\n) print }
- { ( ) print == }
- ifelse
- } bind def
-/printcs1
- { save exch
- lenIV 0 ge {
- 4330 exch dup length string .type1decrypt exch pop
- dup length lenIV sub lenIV exch getinterval
- } if
- 0 () /SubFileDecode filter
- mark exch charstack_read csbegin
- counttomark 1 sub -1 0 { index char1 } for
- cleartomark restore
- } bind def
-
-/printfont
- { pcs_ps_dict
- /CSFormat where { pop CSFormat /C eq { pop pcs_c_dict } if } if
- begin
- currentfont begin Private begin 10 dict begin
-
- % Print the CharStrings and Subrs
-
- beginchars
- CharStrings { exch charbegin printcs } forall
- endchars
- /Subrs where
- { pop % the dictionary
- beginsubrs
- 0 1 Subrs length 1 sub
- { dup subrbegin
- Subrs exch get printcs
- } for
- endsubrs
- } if
-
- % Print the bounding boxes
-
- gsave nulldevice FontMatrix matrix invertmatrix concat
- beginboxes
- 0 1 Encoding length 1 sub
- { dup Encoding exch get dup /.notdef eq
- { pop pop notdefbox
- }
- { 1 index boxbegin charname ,
- ( ) dup 0 4 -1 roll put
- newpath 0 0 moveto false charpath
- pathbbox ({) print 4 -1 roll =only ,
- 3 -1 roll =only , exch =only , =only (}) print
- boxend
- }
- ifelse
- } for
- endboxes
- grestore
-
- end end end end
- } bind def
diff --git a/Master/xemtex/gslib/pdf2dsc b/Master/xemtex/gslib/pdf2dsc
deleted file mode 100644
index e47b429c40c..00000000000
--- a/Master/xemtex/gslib/pdf2dsc
+++ /dev/null
@@ -1,26 +0,0 @@
-#! /bin/sh
-# $Id: pdf2dsc,v 1.3 2000/12/29 05:03:49 alexcher Exp $
-
-# psf2dsc: generates an index of a PDF file.
-#
-# Yves Arrouye <arrouye@debian.org>, 1996.
-# 2000-05-18 lpd <ghost@aladdin.com> added -dSAFER
-
-me=`basename $0`
-
-usage() {
- >&2 echo usage: $me "pdffile [ dscfile ]"
- exit 1
-}
-
-if [ $# -gt 2 ]
-then
- usage
-fi
-
-pdffile=$1
-dscfile=$2
-: ${dscfile:=`echo $pdffile | sed 's,\.[^/.]*,,'`.dsc}
-
-exec gs -q -dNODISPLAY -dSAFER -dDELAYSAFER\
- -sPDFname="$pdffile" -sDSCname="$dscfile" pdf2dsc.ps -c quit
diff --git a/Master/xemtex/gslib/pdf2dsc.bat b/Master/xemtex/gslib/pdf2dsc.bat
deleted file mode 100644
index 8d33bc9e48a..00000000000
--- a/Master/xemtex/gslib/pdf2dsc.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-@rem $Id: pdf2dsc.bat,v 1.2 2001/06/22 16:09:22 lpd Exp $
-@rem Convert PDF to DSC
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-call gssetgs.bat
-
-rem Watcom C deletes = signs, so use # instead.
-%GSC% -q -dNODISPLAY -dSAFER -dDELAYSAFER -sPDFname#%1 -sDSCname#%2 -sOutputFile#%2 pdf2dsc.ps
-goto end
-
-:usage
-echo "Usage: pdf2dsc input.pdf output.dsc"
-
-:end
-
-
diff --git a/Master/xemtex/gslib/pdf2dsc.ps b/Master/xemtex/gslib/pdf2dsc.ps
deleted file mode 100644
index 168dbd91632..00000000000
--- a/Master/xemtex/gslib/pdf2dsc.ps
+++ /dev/null
@@ -1,166 +0,0 @@
-% Copyright (C) 1994, 1995, 1996, 1997, 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdf2dsc.ps,v 1.3.4.2.2.1 2003/04/12 14:02:39 giles Exp $
-% pdf2dsc.ps
-% read pdf file and produce DSC "index" file.
-%
-% Input file is named PDFname
-% Output file is named DSCname
-%
-% Run using:
-% gs -dNODISPLAY -sPDFname=pdffilename -sDSCname=tempfilename pdf2dsc.ps
-% Then display the PDF file with
-% gs tempfilename
-%
-% Modified by Geoff Keating <geoffk@ozemail.com.au> 21/12/98:
-% Add DocumentMedia, PageMedia comments
-% Use inherited BoundingBox and Orientation
-% Reformat, add new macro 'puts', generally clean up
-% Modified by Johannes Plass <plass@dipmza.physik.uni-mainz.de> 1996-11-05:
-% Adds BoundingBox and Orientation if available.
-% Modified by rjl/lpd 9/19/96
-% Updates for compatibility with modified pdf_*.ps code for handling
-% page ranges (i.e., partial files) better.
-% Modified by Geoff Keating <Geoff.Keating@anu.edu.au> 7/3/96:
-% include Title and CreationDate DSC comments (these are displayed by
-% Ghostview);
-% reduce the size of typical output files by a factor of about 3.
-% Modified by L. Peter Deutsch 3/18/96:
-% Removes unnecessary and error-prone code duplicated from pdf_main.ps
-% Modified by L. Peter Deutsch for GS 3.33
-% Originally by Russell Lang 1995-04-26
-
-/PDFfile PDFname (r) file def
-/DSCfile DSCname (w) file def
-systemdict /.setsafe known { .setsafe } if
-
-/puts { DSCfile exch writestring } bind def
-/DSCstring 255 string def
-/MediaTypes 10 dict def
-
-% (str1) (str2) concatstr (str1str2)
-/concatstr {
- 2 copy length exch length add string
- dup dup 5 2 roll copy length
-% stack: newstring newstring str2 str1-length
- exch putinterval
-} bind def
-
- GS_PDF_ProcSet begin
- pdfdict begin
- PDFfile
- pdfopen begin
- /FirstPage where { pop } { /FirstPage 1 def } ifelse
- /LastPage where { pop } { /LastPage pdfpagecount def } ifelse
-
-% scan through for media sizes, keep them in the dictionary
- FirstPage 1 LastPage {
- pdfgetpage /MediaBox pget pop % MediaBox is a required attribute
- aload pop
- 3 -1 roll sub 3 1 roll exch sub exch
- 2 array astore
- aload 3 1 roll 10 string cvs exch 10 string cvs
- (x) exch concatstr concatstr cvn
- MediaTypes 3 1 roll exch put
- } for
-
-% write header and prolog
- (%!PS-Adobe-3.0\n) puts
- Trailer /Info knownoget
- {
- dup /Title knownoget
- {
- (%%Title: ) puts
- DSCfile exch write==
- }
- if
- /CreationDate knownoget
- {
- (%%CreationDate: ) puts
- DSCfile exch write==
- }
- if
- }
- if
- % This is really supposed to be sorted by frequency of usage...
- (%%DocumentMedia: )
- MediaTypes {
- exch pop
- 1 index puts
- (y) puts dup 1 get DSCstring cvs puts
- (x) puts dup 0 get DSCstring cvs puts
- ( ) puts dup 0 get DSCstring cvs puts
- ( ) puts 1 get DSCstring cvs puts
- ( 70 white ()\n) puts
- pop (%%+ )
- } forall
- pop
-
- (%%Pages: ) puts
- LastPage FirstPage sub 1 add DSCstring cvs puts
- (\n%%EndComments\n) puts
- (%%BeginProlog\n) puts
- (/Page null def\n/Page# 0 def\n/PDFSave null def\n) puts
- (/DSCPageCount 0 def\n) puts
- (/DoPDFPage {dup /Page# exch store pdfgetpage pdfshowpage } def\n) puts
- (GS_PDF_ProcSet begin\npdfdict begin\n) puts
- (%%EndProlog\n) puts
- (%%BeginSetup\n) puts
- DSCfile PDFname write==only
- ( \(r\) file pdfopen begin\n) puts
- (%%EndSetup\n) puts
- % process each page
- FirstPage 1 LastPage {
- (%%Page: ) puts
- dup DSCstring cvs puts
- ( ) puts
- dup DSCstring cvs puts
- (\n) puts
-
- dup pdfgetpage
- dup /MediaBox pget pop
- (%%PageMedia: y) puts
- aload pop 3 -1 roll sub DSCstring cvs puts
- (x) puts exch sub DSCstring cvs puts
- (\n) puts
- dup /CropBox pget {
- (%%PageBoundingBox: ) puts
- {DSCfile exch write=only ( ) puts} forall
- (\n) puts
- } if
- /Rotate pget {
- (%%PageOrientation: ) puts
- 90 div cvi 4 mod dup 0 lt {4 add} if
- [(Portrait) (Landscape) (UpsideDown) (Seascape)] exch get puts
- (\n) puts
- } if
-
- DSCfile exch DSCstring cvs writestring
- ( DoPDFPage\n) puts
- } for
- currentdict pdfclose
- end
- end
- end
-% write trailer
-(%%Trailer\n) puts
-(currentdict pdfclose\nend\nend\nend\n) puts
-(%%EOF\n) puts
-% close output file and exit
-DSCfile closefile
-quit
-% end of pdf2dsc.ps
diff --git a/Master/xemtex/gslib/pdf2ps b/Master/xemtex/gslib/pdf2ps
deleted file mode 100644
index b684739be95..00000000000
--- a/Master/xemtex/gslib/pdf2ps
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# $Id: pdf2ps,v 1.4 2001/06/22 16:09:22 lpd Exp $
-# Convert PDF to PostScript.
-
-OPTIONS=""
-while true
-do
- case "$1" in
- -?*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -eq 2 ]
-then
- outfile=$2
-elif [ $# -eq 1 ]
-then
- outfile=`basename "$1" \.pdf`.ps
-else
- echo "Usage: `basename $0` [-dASCII85EncodePages=false] [-dLanguageLevel=1|2|3] input.pdf [output.ps]" 1>&2
- exit 1
-fi
-
-# Doing an initial 'save' helps keep fonts from being flushed between pages.
-# We have to include the options twice because -I only takes effect if it
-# appears before other options.
-exec gs $OPTIONS -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pswrite "-sOutputFile=$outfile" $OPTIONS -c save pop -f "$1"
diff --git a/Master/xemtex/gslib/pdf2ps.bat b/Master/xemtex/gslib/pdf2ps.bat
deleted file mode 100644
index 618e1d15446..00000000000
--- a/Master/xemtex/gslib/pdf2ps.bat
+++ /dev/null
@@ -1,24 +0,0 @@
-@echo off
-@rem $Id: pdf2ps.bat,v 1.5 2001/06/22 16:09:22 lpd Exp $
-@rem Convert PDF to PostScript.
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-call gssetgs.bat
-echo -dNOPAUSE -dBATCH -dSAFER -sDEVICE#pswrite >_.at
-:cp
-if %3/==/ goto doit
-echo %1 >>_.at
-shift
-goto cp
-
-:doit
-rem Watcom C deletes = signs, so use # instead.
-%GSC% -q -sOutputFile#%2 @_.at %1
-if exist _.at erase _.at
-goto end
-
-:usage
-echo "Usage: pdf2ps [-dASCII85DecodePages=false] [-dLanguageLevel=n] input.pdf output.ps"
-
-:end
diff --git a/Master/xemtex/gslib/pdf2ps.cmd b/Master/xemtex/gslib/pdf2ps.cmd
deleted file mode 100755
index 34e4a419c93..00000000000
--- a/Master/xemtex/gslib/pdf2ps.cmd
+++ /dev/null
@@ -1,41 +0,0 @@
-/* $Id: pdf2ps.cmd,v 1.2 2001/02/03 18:31:12 alexcher Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* Convert PDF to PostScript. */
-
-parse arg params
-
-gs='@gsos2'
-inext='.pdf'
-outext='.ps'
-
-if params='' then call usage
-
-options='-dNOPAUSE -dBATCH -dSAFER -sDEVICE=pswrite'
-
-/* extract options from command line */
-i=1
-param=word(params,i)
-do while substr(param,1,1)='-'
- options=options param
- i=i+1
- param=word(params,i)
-end
-
-infile=param
-if infile='' then call usage
-outfile=word(params,i+1)
-if outfile='' then do
- outfile=infile''outext
- infile=infile''inext
-end
-
-gs '-q -sOutputFile='outfile options infile
-exit
-
-usage:
-say 'Usage: pdf2ps [-dASCII85DecodePages=false] [-dLanguageLevel=n] input[.pdf output.ps]'
-exit
diff --git a/Master/xemtex/gslib/pdf_base.ps b/Master/xemtex/gslib/pdf_base.ps
deleted file mode 100644
index b18caf6803b..00000000000
--- a/Master/xemtex/gslib/pdf_base.ps
+++ /dev/null
@@ -1,640 +0,0 @@
-% Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdf_base.ps,v 1.14.2.1.2.1 2003/04/12 14:02:39 giles Exp $
-% pdf_base.ps
-% Basic parser for PDF reader.
-
-% This handles basic parsing of the file (including the trailer
-% and cross-reference table), as well as objects, object references,
-% streams, and name/number trees; it doesn't include any facilities for
-% making marks on the page.
-
-/.setlanguagelevel where { pop 2 .setlanguagelevel } if
-.currentglobal true .setglobal
-/pdfdict where { pop } { /pdfdict 100 dict def } ifelse
-pdfdict begin
-
-% Define the name interpretation dictionary for reading values.
-/valueopdict mark
- (<<) cvn { mark } bind % don't push an actual mark!
- (>>) cvn /.dicttomark load
- ([) cvn { mark } bind % ditto
- (]) cvn dup load
-% /true true % see .pdfexectoken below
-% /false false % ibid.
-% /null null % ibid.
- /F dup cvx % see Objects section below
- /R dup cvx % see Objects section below
- /stream dup cvx % see Streams section below
-.dicttomark readonly def
-
-% ------ Utilities ------ %
-
-% Define a scratch string. The PDF language definition says that
-% no line in a PDF file can exceed 255 characters.
-/pdfstring 255 string def
-
-% Read the previous line of a file. If we aren't at a line boundary,
-% read the line containing the current position.
-% Skip any blank lines.
-/prevline % - prevline <startpos> <substring>
- { PDFfile fileposition dup () pdfstring
- 2 index 257 sub 0 .max PDFfile exch setfileposition
- { % Stack: initpos linepos line string
- PDFfile fileposition
- PDFfile 2 index readline pop
- dup length 0 gt
- { 3 2 roll 5 -2 roll pop pop 2 index }
- { pop }
- ifelse
- % Stack: initpos linepos line string startpos
- PDFfile fileposition 5 index ge { exit } if
- pop
- }
- loop pop pop 3 -1 roll pop
- } bind def
-
-% Handle the PDF 1.2 #nn escape convention when reading from a file.
-% This should eventually be done in C.
-/.pdffixname { % <execname> .pdffixname <execname'>
- PDFversion 1.2 ge {
- dup .namestring (#) search {
- name#escape cvn exch pop
- } {
- pop
- } ifelse
- } if
-} bind def
-/name#escape % <post> <(#)> <pre> name#escape <string>
-{ exch pop
- 1 index 2 () /SubFileDecode filter dup (x) readhexstring
- % Stack: post pre stream char t/f
- not { /.pdftoken cvx /syntaxerror signalerror } if
- exch closefile concatstrings
- exch 2 1 index length 2 sub getinterval
- (#) search { name#escape } if concatstrings
-} bind def
-
-% Execute a file, interpreting its executable names in a given
-% dictionary. The name procedures may do whatever they want
-% to the operand stack.
-/.pdftokenerror { % <count> <opdict> <errtoken> .pdftokenerror -
- BXlevel 0 le {
- (%stderr) (w) file
- dup (****************Unknown operator: ) writestring
- dup 2 index .writecvs dup (\n) writestring flushfile
- } if pop pop
- count exch sub { pop } repeat % pop all the operands
-} bind def
-/.pdfexectoken { % <count> <opdict> <exectoken> .pdfexectoken ?
- DEBUG { dup == flush } if
- 2 copy .knownget {
- exch pop exch pop exch pop exec
- } {
- % Normally, true, false, and null would appear in opdict
- % and be treated as "operators". However, there is a
- % special fast case in the PostScript interpreter for names
- % that are defined in, and only in, systemdict and/or
- % userdict: putting these three names in the PDF dictionaries
- % destroys this property for them, slowing down their
- % interpretation in all PostScript code. Therefore, we
- % check for them explicitly here instead.
- dup dup dup /true eq exch /false eq or exch /null eq or {
- exch pop exch pop //systemdict exch get
- } {
- .pdftokenerror
- } ifelse
- } ifelse
-} bind def
-/.pdfrun { % <file> <opdict> .pdfrun -
- % Construct a procedure with the stack depth, file and opdict
- % bound into it.
- 1 index cvlit count 2 sub 3 1 roll mark mark 5 2 roll
- { % Stack: ..operands.. count opdict file
- token {
- dup type /nametype eq {
- dup xcheck {
- .pdfexectoken
- } {
- .pdffixname
- exch pop exch pop DEBUG { dup ==only ( ) print flush } if
- } ifelse
- } {
- exch pop exch pop DEBUG { dup ==only ( ) print flush } if
- } ifelse
- } {
- (%%EOF) cvn cvx .pdfexectoken
- } ifelse
- }
- aload pop .packtomark cvx
- /loop cvx 2 packedarray cvx
- { stopped /PDFsource } aload pop
- PDFsource
- { store { stop } if } aload pop .packtomark cvx
- /PDFsource 3 -1 roll store exec
-} bind def
-
-% Execute a file, like .pdfrun, for a marking context.
-% This temporarily rebinds LocalResources and DefaultMatrix.
-/.pdfruncontext { % <resdict> <file> <opdict> .pdfruncontext -
- /.pdfrun load LocalResources DefaultMatrix
- /LocalResources 7 -1 roll store
- /DefaultMatrix matrix currentmatrix store
- 3 .execn
- /DefaultMatrix exch store
- /LocalResources exch store
-} bind def
-
-% Get the depth of the PDF operand stack. The main program (pdf_main.ps)
-% sets pdfemptycount before calling .pdfrun.
-/.pdfcount { % - .pdfcount <count>
- count pdfemptycount sub
-} bind def
-
-% ------ File reading ------ %
-
-% Read the cross-reference entry for an (unresolved) object.
-% The caller must save and restore the PDFfile position if desired.
-% For invalid (free) objects, we return 0.
-/readxrefentry % <object#> readxrefentry <objpos>
- { dup Objects exch lget
- PDFfile exch setfileposition
- PDFfile token pop % object position
- PDFfile token pop % generation #
- PDFfile token pop % n or f
- dup /n eq
- { pop 1 add dup 255 gt
- { Generations ltype /stringtype eq
- { % Convert Generations from a string to an array.
- larray Generations llength lgrowto dup
- 0 1 2 index llength 1 sub
- { Generations 1 index lget lput dup
- }
- for pop /Generations exch store
- }
- if
- }
- if
- }
- { /f eq
- { pop 0 }
- { /readxrefentry cvx /syntaxerror signalerror }
- ifelse
- }
- ifelse
- % Stack: obj# objpos 1+gen#
- Generations 4 -1 roll 3 -1 roll lput
- } bind def
-
-% ================================ Objects ================================ %
-
-% Since we may have more than 64K objects, we have to use a 2-D array to
-% hold them (and the parallel Generations structure).
-/lshift 9 def
-/lnshift lshift neg def
-/lsubmask 1 lshift bitshift 1 sub def
-/lsublen lsubmask 1 add def
-/larray { % - larray <larray>
- [ [] ]
-} bind def
-/lstring { % - lstring <lstring>
- [ () ]
-} bind def
-/ltype { % <lseq> type <type>
- 0 get type
-} bind def
-/lget { % <lseq> <index> lget <value>
- dup //lsubmask and 3 1 roll //lnshift bitshift get exch get
-} bind def
-/lput { % <lseq> <index> <value> lput -
- 3 1 roll
- dup //lsubmask and 4 1 roll //lnshift bitshift get
- 3 1 roll put
-} bind def
-/llength { % <lseq> llength <length>
- dup length 1 sub dup //lshift bitshift
- 3 1 roll get length add
-} bind def
-% lgrowto assumes newlength > llength(lseq)
-/growto { % <string/array> <length> growto <string'/array'>
- 1 index type /stringtype eq { string } { array } ifelse
- 2 copy copy pop exch pop
-} bind def
-/lgrowto { % <lseq> <newlength> lgrowto <lseq'>
- dup //lsubmask add //lnshift bitshift dup 3 index length gt {
- % Add more sub-arrays. Start by completing the last existing one.
- % Stack: lseq newlen newtoplen
- 3 -1 roll dup llength 1 sub //lsubmask or 1 add lgrowto
- % Stack: newlen newtoplen lseq
- [ exch aload pop
- counttomark 2 add -1 roll % newtoplen
- counttomark sub { dup 0 0 getinterval lsublen growto } repeat
- dup 0 0 getinterval ] exch
- } {
- pop
- } ifelse
- % Expand the last sub-array.
- 1 sub //lsubmask and 1 add
- exch dup dup length 1 sub 2 copy
- % Stack: newsublen lseq lseq len-1 lseq len-1
- get 5 -1 roll growto put
-} bind def
-/lforall { % <lseq> <proc> lforall -
- /forall cvx 2 packedarray cvx forall
-} bind def
-
-% We keep track of PDF objects using the following PostScript variables:
-%
-% Generations (lstring): Generations[N] holds 1+ the current
-% generation number for object number N. (As far as we can tell,
-% this is needed only for error checking.) For free objects,
-% Generations[N] is 0.
-%
-% Objects (larray): If object N is loaded, Objects[N] is the actual
-% object; otherwise, Objects[N] is an executable integer giving
-% the file offset of the object's entry in the cross-reference
-% table.
-%
-% GlobalObjects (dictionary): If object N has been resolved in
-% global VM, GlobalObjects[N] is the same as Objects[N]
-% (except that GlobalObjects itself is stored in global VM,
-% so the entry will not be deleted at the end of the page).
-%
-% IsGlobal (lstring): IsGlobal[N] = 1 iff object N was resolved in
-% global VM. This is an accelerator to avoid having to do a
-% dictionary lookup in GlobalObjects when resolving every object.
-
-% Initialize the PDF object tables.
-/initPDFobjects { % - initPDFobjects -
- /Objects larray def
- /Generations lstring def
- .currentglobal true .setglobal
- /GlobalObjects 20 dict def
- .setglobal
- /IsGlobal lstring def
-} bind def
-
-% Grow the tables to a specified size.
-/growPDFobjects { % <minsize> growPDFobjects -
- dup Objects llength gt {
- dup Objects exch lgrowto /Objects exch def
- } if
- dup Generations llength gt {
- dup Generations exch lgrowto /Generations exch def
- } if
- dup IsGlobal llength gt {
- dup IsGlobal exch lgrowto /IsGlobal exch def
- } if
- pop
-} bind def
-
-% We represent an unresolved object reference by a procedure of the form
-% {obj# gen# resolveR}. This is not a possible PDF object, because PDF has
-% no way to represent procedures. Since PDF in fact has no way to represent
-% any PostScript object that doesn't evaluate to itself, we can 'force'
-% a possibly indirect object painlessly with 'exec'.
-% Note that since we represent streams by executable dictionaries
-% (see below), we need both an xcheck and a type check to determine
-% whether an object has been resolved.
-/resolved? { % <object#> resolved? <value> true
- % <object#> resolved? false
- Objects 1 index lget dup xcheck {
- dup type /integertype eq {
- % Check whether the object is in GlobalObjects.
- pop IsGlobal 1 index lget 0 eq {
- pop false
- } {
- % Update Objects from GlobalObjects
- DEBUG { (%Global=>local: ) print dup == } if
- GlobalObjects 1 index get dup Objects 4 1 roll lput true
- } ifelse
- } {
- exch pop true
- } ifelse
- } {
- exch pop true
- } ifelse
-} bind def
-/oforce /exec load def
-/oget { % <array> <index> oget <object>
- % <dict> <key> oget <object>
- % Before release 6.20, this procedure stored the resolved
- % object back into the referring slot. In order to support
- % PDF linearization, we no longer do this.
- get oforce
-} bind def
-% A null value in a dictionary is equivalent to an omitted key;
-% we must check for this specially.
-/knownoget { % <dict> <key> knownoget <value> true
- % <dict> <key> knownoget false
- % See oget above regarding this procedure.
- .knownget {
- oforce dup null eq { pop false } { true } ifelse
- } {
- false
- } ifelse
-} bind def
-
-% PDF 1.1 defines a 'foreign file reference', but not its meaning.
-% Per the specification, we convert these to nulls.
-/F { % <file#> <object#> <generation#> F <object>
- % Some PDF 1.1 files use F as a synonym for f!
- .pdfcount 3 lt { f } { pop pop pop null } ifelse
-} bind def
-
-/checkgeneration { % <object#> <generation#> checkgeneration <object#> <OK>
- Generations 2 index lget 1 sub 1 index eq {
- pop true
- } {
- QUIET not {
- Generations 2 index lget 0 eq {
- (Warning: reference to free object: )
- } {
- (Warning: wrong generation: )
- } ifelse print 1 index =only ( ) print =only ( R) =
- } {
- pop
- } ifelse false
- } ifelse
-} bind def
-/R { % <object#> <generation#> R <object>
- /resolveR cvx 3 packedarray cvx
-} bind def
-
-% If we encounter an object definition while reading sequentially,
-% we just store it away and keep going.
-/objopdict mark
- valueopdict { } forall
- /endobj dup cvx
-.dicttomark readonly def
-/obj { % <object#> <generation#> obj <object>
- PDFfile objopdict .pdfrun
-} bind def
-/endobj { % <object#> <generation#> <object> endobj <object>
- 3 1 roll
- % Read the xref entry if we haven't yet done so.
- % This is only needed for generation # checking.
- 1 index resolved? {
- pop
- } {
- PDFfile fileposition
- 2 index readxrefentry pop
- PDFoffset add PDFfile exch setfileposition
- } ifelse
- checkgeneration {
- % The only global objects we bother to save are
- % (resource) dictionaries.
- 1 index dup gcheck exch type /dicttype eq and {
- DEBUG { (%Local=>global: ) print dup == } if
- GlobalObjects 1 index 3 index put
- IsGlobal 1 index 1 put
- } if
- Objects exch 2 index lput
- } {
- pop pop null
- } ifelse
-} bind def
-
-% When resolving an object reference, we stop at the endobj.
-/resolveopdict mark
- valueopdict { } forall
- /endobj { endobj exit } bind
- % OmniForm generates PDF file with endobj missing in some
- % objects. AR ignores this. So we have to do it too.
- /obj { pop pop endobj exit } bind
-.dicttomark readonly def
-/resolveR { % <object#> <generation#> resolveR <object>
- DEBUG { (%Resolving: ) print 2 copy 2 array astore == } if
- 1 index resolved? {
- exch pop exch pop
- } {
- PDFfile fileposition 3 1 roll
- 1 index readxrefentry
- 3 1 roll checkgeneration {
- % Stack: savepos objpos obj#
- exch PDFoffset add PDFfile exch setfileposition
- PDFfile token pop 2 copy ne
- { (xref error!) = /resolveR cvx /rangecheck signalerror
- }
- if pop PDFfile token pop
- PDFfile token pop /obj ne
- { (xref error!) = /resolveR cvx /rangecheck signalerror
- }
- if
- pdf_run_resolve % PDFfile resolveopdict .pdfrun
- }
- { % Don't cache if the generation # is wrong.
- pop pop null
- } ifelse
- exch PDFfile exch setfileposition
- } ifelse
-} bind def
-
-% ================================ Streams ================================ %
-
-% We represent a stream by an executable dictionary that contains,
-% in addition to the contents of the original stream dictionary:
-% /File - the file or string where the stream contents are stored,
-% if the stream is not an external one.
-% /FilePosition - iff File is a file, the position in the file
-% where the contents start.
-% /StreamKey - the key used to decrypt this stream, if any.
-% We do the real work of constructing the data stream only when the
-% contents are needed.
-
-% Construct a stream. The length is not reliable in the face of
-% different end-of-line conventions, but it's all we've got.
-%
-% PDF files are inconsistent about what may fall between the 'stream' keyword
-% and the actual stream data, and it appears that no one algorithm can
-% detect this reliably. We used to try to guess whether the file included
-% extraneous \r and/or \n characters, but we no longer attempt to do so,
-% especially since the PDF 1.2 specification states flatly that the only
-% legal terminators following the 'stream' keyword are \n or \r\n, both of
-% which are properly skipped and discarded by the token operator.
-/stream { % <dict> stream <modified_dict>
- dup /F known dup PDFsource PDFfile eq or {
- not {
- dup /File PDFfile put
- dup /FilePosition PDFfile fileposition put
- DEBUG { (%FilePosition: ) print dup /FilePosition get == } if
- } if
- PDFfile fileposition 1 index /Length oget add
- PDFfile exch setfileposition
- } {
- pop
- % We're already reading from a stream, which we can't reposition.
- % Capture the sub-stream contents in a string.
- dup /Length oget string PDFsource exch readstring
- not {
- (Unexpected EOF in stream!) =
- /stream cvx /rangecheck signalerror
- } if
- 1 index exch /File exch put
- } ifelse
- PDFsource token pop
- /endstream ne { /stream cvx /syntaxerror signalerror } if
- cvx
-} bind def
-/endstream {
- exit
-} bind def
-
-% Contrary to the published PDF (1.3) specification, Acrobat Reader
-% accepts abbreviated filter names everywhere, not just for in-line images,
-% and some applications (notably htmldoc) rely on this.
-/unabbrevfilterdict mark
- /AHx /ASCIIHexDecode /A85 /ASCII85Decode /CCF /CCITTFaxDecode
- /DCT /DCTDecode /Fl /FlateDecode /LZW /LZWDecode /RL /RunLengthDecode
-.dicttomark readonly def
-
-% Extract and apply filters.
-/filterparms { % <dict> <DPkey> <Fkey> filterparms
- % <dict> <parms> <filternames>
- 2 index exch .knownget {
- exch 2 index exch .knownget {
- % Both filters and parameters.
- exch dup type /nametype eq {
- 1 array astore exch 1 array astore exch
- } if
- } {
- % Filters, but no parameters.
- null exch
- dup type /nametype eq { 1 array astore } if
- } ifelse
- } {
- % No filters: ignore parameters, if any.
- pop null { }
- } ifelse
-} bind def
-/filtername { % <filtername> filtername <filtername'>
- //unabbrevfilterdict 1 index .knownget { exch pop } if
-} bind def
-/applyfilters { % <parms> <source> <filternames> applyfilters <stream>
- 2 index null eq {
- { filtername filter }
- } {
- { % Stack: parms stream filtername
- 2 index 0 oget dup null eq { pop } { exch } ifelse filtername filter
- exch dup length 1 sub 1 exch getinterval exch
- }
- } ifelse forall exch pop
-} bind def
-
-% Resolve a stream dictionary to a PostScript stream.
-% Streams with no filters require special handling:
-% - If we are going to interpret their contents, we let endstream
-% terminate the interpretation loop;
-% - If we are just going to read data from them, we impose
-% a SubFileDecode filter that reads just the requisite amount of data.
-% Note that, in general, resolving a stream repositions PDFfile.
-% Clients must save and restore the position of PDFfile themselves.
-/resolvestream { % <streamdict> <readdata?> resolvestream <stream>
- 1 index /F .knownget {
- % This stream is stored on an external file.
- (r) file 3 -1 roll
- /FDecodeParms /FFilter filterparms
- % Stack: readdata? file dict parms filternames
- 4 -1 roll exch
- pdf_decrypt_stream
- applyfilters
- } {
- exch dup /FilePosition .knownget {
- 1 index /File get exch setfileposition
- } if
- % Stack: readdata? dict
- /DecodeParms /Filter filterparms
- % Stack: readdata? dict parms filternames
- 2 index /File get exch
- % Stack: readdata? dict parms file/string filternames
- pdf_decrypt_stream % add decryption if needed
- dup length 0 eq {
- % All the PDF filters have EOD markers, but in this case
- % there is no specified filter.
- pop exch pop
- % Stack: readdata? dict file/string
- 2 index {
- % We're going to read data; use a SubFileDecode filter.
- 1 index /Length oget () /SubFileDecode filter
- } {
- dup type /filetype ne {
- % Use a SubFileDecode filter to read from a string.
- 0 () /SubFileDecode filter
- } if
- } ifelse
- } {
- applyfilters
- } ifelse
- } ifelse
- % Stack: readdata? dict file
- exch pop exch pop
-} bind def
-
-% ============================ Name/number trees ============================ %
-
-/nameoget { % <nametree> <key> nameoget <obj|null>
- exch /Names exch .treeget
-} bind def
-
-/numoget { % <numtree> <key> numoget <obj|null>
- exch /Nums exch .treeget
-} bind def
-
-/.treeget { % <key> <leafkey> <tree> .treeget <obj|null>
- dup /Kids knownoget {
- exch pop .branchget
- } {
- exch get .leafget
- } ifelse
-} bind def
-
-/.branchget { % <key> <leafkey> <kids> .branchget <obj|null>
- dup length 0 eq {
- pop pop pop null
- } {
- dup length -1 bitshift 2 copy oget
- % Stack: key leafkey kids mid kids[mid]
- dup /Limits oget aload pop
- % Stack: key leafkey kids mid kids[mid] min max
- 6 index lt {
- pop pop
- 1 add 1 index length 1 index sub getinterval .branchget
- } {
- 5 index gt {
- pop
- 0 exch getinterval .branchget
- } {
- exch pop exch pop .treeget
- } ifelse
- } ifelse
- } ifelse
-} bind def
-
-/.leafget { % <key> <pairs> .leafget <obj|null>
- dup length 2 eq {
- dup 0 get 2 index eq { 1 oget } { pop null } ifelse
- exch pop
- } {
- dup length -1 bitshift -2 and 2 copy oget
- % Stack: key pairs mid pairs[mid]
- 3 index gt { 0 exch } { 1 index length 1 index sub } ifelse
- getinterval .leafget
- } ifelse
-} bind def
-
-end % pdfdict
-.setglobal
diff --git a/Master/xemtex/gslib/pdf_draw.ps b/Master/xemtex/gslib/pdf_draw.ps
deleted file mode 100644
index b75a84e725a..00000000000
--- a/Master/xemtex/gslib/pdf_draw.ps
+++ /dev/null
@@ -1,1151 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdf_draw.ps,v 1.36.2.2.2.1 2003/04/12 14:02:39 giles Exp $
-% pdf_draw.ps
-% PDF drawing operations (graphics, text, and images).
-
-/.setlanguagelevel where { pop 2 .setlanguagelevel } if
-.currentglobal true .setglobal
-/pdfdict where { pop } { /pdfdict 100 dict def } ifelse
-GS_PDF_ProcSet begin
-pdfdict begin
-
-% For simplicity, we use a single interpretation dictionary for all
-% PDF graphics operations, even though this is too liberal.
-/drawopdict 100 dict def
-
-% ================================ Graphics ================================ %
-
-% ---------------- Functions ---------------- %
-
-% Note that resolvefunction converts a PDF Function to a PostScript Function;
-% resolve*fnproc converts a PDF function to a PostScript procedure.
-
-/fnrdict mark
- 0 { .resolvefn0 }
- 2 { }
- 3 { .resolvefn3 }
- 4 { .resolvefn4 }
-.dicttomark readonly def
-
-/.resolvefn0 {
- % Don't lose our place in PDFfile.
- PDFfile fileposition exch
- dup true resolvestream
- % The stream isn't positionable, so read all the data now.
- % Stack: filepos fndict stream
- 1 index /Range oget length 2 idiv 2 index /BitsPerSample oget mul
- 2 index /Size oget { mul } forall
- 7 add 8 idiv string
- 1 index exch readstring pop exch closefile
- % Stack: filepos fndict data
- exch dup length 1 add dict .copydict
- dup /DataSource 4 -1 roll put
- exch PDFfile exch setfileposition
-} bdef
-
-/.resolvefn3 {
- dup length dict .copydict
- dup /Bounds 2 copy knownoget { put } { pop pop } ifelse
- dup /Encode 2 copy knownoget { put } { pop pop } ifelse
- dup /Functions 2 copy oget mark exch dup {
- oforce .resolvefn
- } forall
- counttomark -1 roll astore exch pop put
-} bdef
-
-/.resolvefn4 {
- PDFfile fileposition exch % filepos fndict
- dup true resolvestream % filepos fndict stream
- exch dup length dict copy % filepos stream fndict2
- dup /Function undef % filepos stream fndict2
- exch dup token not {
- () /rangecheck cvx signalerror
- } if
- exch token {
- /rangecheck cvx signalerror
- } if
- % Use .bind to avoid idiom recognition.
- .bind
- 1 index /Function 3 -1 roll put
- exch PDFfile exch setfileposition
-} bdef
-currentdict /tfopdict undef
-
-/.resolvefn { % <fndict> .resolvefn <fndict'>
- dup /FunctionType oget //fnrdict exch get exec
-} bdef
-
-/resolvefunction { % <fndict> resolvefunction <function>
- .resolvefn
- DEBUG { (%Function: ) print dup === flush } if
-} bdef
-
-/resolvefnproc { % <fndict> resolvefnproc <proc>
- resolvefunction .buildfunction
-} bdef
-
-/resolveidfnproc { % <fndict> resolveidfnproc <proc>
- dup /Identity eq { pop { } } { resolvefnproc } ifelse
-} bdef
-
-/resolvedefaultfnproc { % <fndict> <default> resolved'fnproc <proc>
- 1 index /Default eq { exch pop } { pop resolveidfnproc } ifelse
-} bdef
-
-% ---------------- Shadings ---------------- %
-
-/shrdict mark
- /ColorSpace {
- resolvecolorspace
- }
- /Function {
- dup type /dicttype eq {
- resolvefunction
- } {
- [ exch { oforce resolvefunction } forall ]
- } ifelse
- }
-.dicttomark readonly def
-
-/resolveshading { % <shadingstream> resolveshading <shading>
- PDFfile fileposition exch
- mark exch {
- oforce //shrdict 2 index .knownget { exec } if
- } forall .dicttomark
- dup /ShadingType get 4 ge {
- dup dup true resolvestream
- % Make a reusable stream so that the shading doesn't
- % reposition PDFfile at unexpected times.
- /ReusableStreamDecode filter /DataSource exch put
- } if exch PDFfile exch setfileposition
-} bdef
-/resolvesh { % <shname> resolveshading <shading>
- Page /Shading rget {
- resolveshading
- } {
- null
- }ifelse
-} bdef
-
-% ---------------- Halftones ---------------- %
-
-/spotfunctions mark
- /Round {
- abs exch abs 2 copy add 1 le {
- dup mul exch dup mul add 1 exch sub
- } {
- 1 sub dup mul exch 1 sub dup mul add 1 sub
- } ifelse
- }
- /Diamond {
- abs exch abs 2 copy add .75 le {
- dup mul exch dup mul add 1 exch sub
- } {
- 2 copy add 1.23 le {
- .85 mul add 1 exch sub
- } {
- 1 sub dup mul exch 1 sub dup mul add 1 sub
- } ifelse
- } ifelse
- }
- /Ellipse {
- abs exch abs 2 copy 3 mul exch 4 mul add 3 sub dup 0 lt {
- pop dup mul exch .75 div dup mul add 4 div 1 exch sub
- } {
- dup 1 gt {
- pop 1 exch sub dup mul exch 1 exch sub
- .75 div dup mul add 4 div 1 sub
- } {
- .5 exch sub exch pop exch pop
- } ifelse
- } ifelse
- }
- /EllipseA { dup mul .9 mul exch dup mul add 1 exch sub }
- /InvertedEllipseA { dup mul .9 mul exch dup mul add 1 sub }
- /EllipseB { dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }
- /EllipseC { dup mul .9 mul exch dup mul add 1 exch sub }
- /InvertedEllipseC { dup mul .9 mul exch dup mul add 1 sub }
- /Line { exch pop abs neg }
- /LineX { pop }
- /LineY { exch pop }
- /Square { abs exch abs 2 copy lt { exch } if pop neg }
- /Cross { abs exch abs 2 copy gt { exch } if pop neg }
- /Rhomboid { abs exch abs 0.9 mul add 2 div }
- /DoubleDot { 2 {360 mul sin 2 div exch } repeat add }
- /InvertedDoubleDot { 2 {360 mul sin 2 div exch } repeat add neg }
- /SimpleDot { dup mul exch dup mul add 1 exch sub }
- /InvertedSimpleDot { dup mul exch dup mul add 1 sub }
- /CosineDot { 180 mul cos exch 180 mul cos add 2 div }
- /Double { exch 2 div exch 2 { 360 mul sin 2 div exch } repeat add }
- /InvertedDouble {
- exch 2 div exch 2 { 360 mul sin 2 div exch } repeat add neg
- }
-.dicttomark readonly def
-
-/htrdict mark
- 1 { .resolveht1 }
- 5 { .resolveht5 }
- % We don't support types 6, 10, or 16 yet.
-.dicttomark readonly def
-
-/.resolveht1 {
- mark exch {
- oforce
- 1 index /SpotFunction eq {
- dup type /nametype eq
- { //spotfunctions exch get } { resolvefnproc }
- ifelse
- } {
- 1 index /TransferFunction eq {
- resolveidfnproc
- } if
- } ifelse
- } forall .dicttomark
-} bdef
-
-/.resolveht5 {
- mark exch {
- oforce dup type /dicttype eq { resolvehalftone } if
- } forall .dicttomark
-} bdef
-
-/resolvehalftone { % <dict> resolvehalftone <halftone>
- dup /HalftoneType get //htrdict exch get exec
-} bdef
-
-% ---------------- Graphics state management ---------------- %
-
-/cmmatrix matrix def
-drawopdict begin
- % Graphics state stack
- /q { q } def
- /Q { Q } def
- % Graphics state setting
- /cm { //cmmatrix astore concat } def
- /i /setflat load def
- /J /setlinecap load def
- /d /setdash load def
- /j /setlinejoin load def
- /w /setlinewidth load def
- /M /setmiterlimit load def
- /gs { gs } def
-end
-
-% Each entry in this dictionary is
-% <gsres> <value> -proc- <gsres>
-/gsbg {
- /BGDefault load resolvedefaultfnproc setblackgeneration
-} bdef
-/gsucr {
- /UCRDefault load resolvedefaultfnproc setundercolorremoval
-} bdef
-/gstr {
- dup type /arraytype eq {
- { oforce /TRDefault load resolvedefaultfnproc } forall
- setcolortransfer
- } {
- /TRDefault load resolvedefaultfnproc settransfer
- } ifelse
-} bdef
-/gsparamdict mark
- /SA { setstrokeadjust }
- /OP { 1 index /op known not { dup op } if OP }
- % The PDF 1.3 specification says that the name /Default is only
- % recognized for {BG,UCR,TR}2. However, PDF 1.3 files produced
- % by Adobe Acrobat Distiller 4.0 for Windows use the name /Default
- % with the older keys, so we have to implement this.
- /BG { 1 index /BG2 known { pop } { gsbg } ifelse }
- /UCR { 1 index /UCR2 known { pop } { gsucr } ifelse }
- /TR { 1 index /TR2 known { pop } { gstr } ifelse }
- /HT {
- dup /Default eq {
- pop .setdefaultscreen
- } {
- %****** DOESN'T IMPLEMENT THE STREAM CASE YET ******
- resolvehalftone sethalftone
- } ifelse
- }
- /HTP {
- % HTP may be present even if this isn't a DPS interpreter.
- /sethalftonephase where { pop aload pop sethalftonephase } { pop } ifelse
- }
- % PDF 1.3
- /Font { aload pop Tf }
- /LW { setlinewidth }
- /LC { setlinecap }
- /LJ { setlinejoin }
- /ML { setmiterlimit }
- /D { aload pop setdash }
- /RI { ri }
- /op { op }
- /OPM { OPM }
- /BG2 { gsbg }
- /UCR2 { gsucr }
- /TR2 { gstr }
- /FL { setflat }
- /SM {
- % SM may be present even if this is only a Level 2 interpreter.
- /setsmoothness where { pop setsmoothness } { pop } ifelse
- }
- % PDF 1.4
- % All of these require the "transparency" feature in the interpreter.
- /ca { ca }
- /CA { CA }
- /SMask { gssmask }
- /AIS { AIS }
- /BM { BM }
- /TK { TK }
-.dicttomark readonly def
-/gs { % <gsres> gs -
- Page /ExtGState rget {
- % We keep the dictionary on the stack during the forall so that
- % keys that interact with each other have access to it.
- dup {
- oforce exch gsparamdict exch .knownget { exec } { pop } ifelse
- } forall pop
- } if
-} bdef
-
-% ------ Transparency support ------ %
-
-/gssmask {
- dup /None eq {
- pop null
- } {
- % Preprocess the SMask value into a parameter dictionary for
- % .begintransparencymask, with added /BBox and /Draw keys.
- mark exch % Stack: mark smaskdict
- dup /S oget /Subtype exch 3 2 roll
- % Stack: mark ... smaskdict
- dup /BC knownoget { /Background exch 3 2 roll } if
- dup /TR knownoget {
- resolveidfnproc /TransferFunction exch 3 2 roll
- } if
- dup /G oget dup /BBox oget /BBox exch 4 2 roll
- /.execmaskgroup cvx 2 packedarray cvx /Draw exch 3 2 roll
- pop .dicttomark
- } ifelse SMask
-} bdef
-
-% This procedure is called to actually render the soft mask.
-/.execmaskgroup { % <masknum> <paramdict> <formdict> .execmaskgroup -
- % Save our place in PDFfile, and do a gsave to avoid resetting
- % the color space.
- gsave PDFfile fileposition 4 1 roll
- % We have to select the group's color space so that the
- % background color will be interpreted correctly.
- dup /Group oget /CS knownoget { csresolve setcolorspace } if
- exch dup /BBox get aload pop .begintransparencymask {
- dup /Resources knownoget { oforce } { 0 dict } ifelse
- exch false resolvestream
- .execgroup .endtransparencymask
- } .internalstopped {
- .discardtransparencymask stop
- } if
- PDFfile exch setfileposition grestore
-} bdef
-% Paint a Form+Group XObject, either for a transparency mask or for a Do.
-/.execgroup { % <resdict> <stream> .execgroup -
- gsave
- 1 .setopacityalpha 1 .setshapealpha
- 0 .inittransparencymask 1 .inittransparencymask
- /Compatible .setblendmode
- % Execute the body of the Form, similar to DoForm.
- pdfopdict .pdfruncontext
- grestore
-} bdef
-
-/.beginformgroup { % groupdict bbox .beginformgroup -
- exch mark exch % bbox mark groupdict
- dup /CS knownoget { csresolve setcolorspace } if
- dup /I knownoget { /Isolated exch 3 2 roll } if
- dup /K knownoget { /Knockout exch 3 2 roll } if
- pop .dicttomark
- % Stack: bbox paramdict
- exch aload pop
- .begintransparencygroup
-} bdef
-
-% .paintgroupform implements the Form PaintProc in the case where the
-% Form XObject dictionary includes a Group key. See .paintform below.
-/.paintgroupform { % <resdict> <stream> <formdict> .paintgroupform -
- dup /Group oget exch /BBox oget
- % Stack: resdict stream groupdict bbox
- .beginformgroup {
- .execgroup
- } .internalstopped {
- .discardtransparencygroup stop
- } if .endtransparencygroup
-} bdef
-
-% Make an ImageType 103 (soft-masked) image.
-/makesoftmaskimage { % <datasource> <imagemask> <SMask> makesoftmaskimage
- % <datasource> <imagemask>, updates currentdict =
- % imagedict
- % See the ImageType 3 case of makemaskimage below.
- % SMask is a stream, another Image XObject.
- % Stack: datasource imagemask(false) smaskstreamdict
- PDFfile fileposition exch
- dup /Matte knownoget { /Matte exch def } if
- dup length dict makeimagedict pop
- % In order to prevent the two data sources from being
- % aliased, we need to make at least one a reusable stream.
- % We pick the mask, since it's smaller (in case we need to
- % read all its data now).
- % Stack: datasource imagemask(false) savedpos
- % maskdict is currentdict
- /DataSource DataSource mark
- /Intent 1
- /AsyncRead true
- .dicttomark .reusablestreamdecode def
- PDFfile exch setfileposition
- currentdict end currentdict end
- 5 dict begin
- /ImageType 103 def
- /DataDict exch def
- dup /InterleaveType 3 put
- DataDict /Matte .knownget {
- /Matte exch def
- } if
- AlphaIsShape { /ShapeMaskDict } { /OpacityMaskDict } ifelse exch def
- /ColorSpace DataDict /ColorSpace get def
-} bdef
-
-% ---------------- Color setting ---------------- %
-
-/01_1 [0 1] readonly def
-/01_3 [0 1 0 1 0 1] readonly def
-/01_4 [0 1 0 1 0 1 0 1] readonly def
-
-% The keys here are resolved (PostScript, not PDF) color space names.
-/csncompdict mark
- /DeviceGray { pop 1 }
- /DeviceRGB { pop 3 }
- /DeviceCMYK { pop 4 }
- /CIEBasedA { pop 1 }
- /CIEBasedABC { pop 3 }
- /ICCBased { 1 oget /N oget }
- /Separation { pop 1 }
- /DeviceN { 1 oget length }
-.dicttomark readonly def
-
-% Perhaps some of the values in the following need to be modified
-% depending on the WhitePoint value....
-/cslabinit mark
- /DecodeABC [{16 add 116 div} bind {500 div} bind {200 div} bind]
- /MatrixABC [1 1 1 1 0 0 0 0 -1]
- /DecodeLMN [
- {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse
- 0.9505 mul} bind
- {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse
- } bind
- {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse
- 1.0890 mul} bind
- ]
-.dicttomark readonly def
-
-/csrdict mark
- /DeviceGray {
- /DefaultGray Page /ColorSpace rget { exch pop resolvecolorspace } if
- }
- /DeviceRGB {
- /DefaultRGB Page /ColorSpace rget { exch pop resolvecolorspace } if
- }
- /DeviceCMYK { }
- /CalGray {
- 1 oget 6 dict begin
- dup /Gamma knownoget {
- /exp load 2 packedarray cvx /DecodeA exch def
- } if
- dup /BlackPoint knownoget { /BlackPoint exch def } if
- dup /WhitePoint knownoget { /WhitePoint exch def } if
- pop [ /CIEBasedA currentdict end ]
- }
- /CalRGB {
- 1 oget 6 dict begin
- dup /Gamma knownoget {
- [ exch { /exp load 2 packedarray cvx } forall
- ] /DecodeABC exch def
- } if
- dup /Matrix knownoget { /MatrixABC exch def } if
- dup /BlackPoint knownoget { /BlackPoint exch def } if
- dup /WhitePoint knownoget { /WhitePoint exch def } if
- pop [ /CIEBasedABC currentdict end ]
- }
- /CalCMYK {
- pop /DeviceCMYK % not defined by Adobe
- }
- /Lab {
- 1 oget 6 dict begin
- dup /Range knownoget not { [-100 100 -100 100] } if
- [0 100 null null null null] dup 2 4 -1 roll putinterval
- /RangeABC exch def
- //cslabinit { def } forall
- dup /BlackPoint knownoget { /BlackPoint exch def } if
- dup /WhitePoint knownoget { /WhitePoint exch def } if
- pop [ /CIEBasedABC currentdict end ]
- }
- /ICCBased {
- PDFfile fileposition exch
- dup dup 1 oget
- mark exch { oforce } forall .dicttomark
- dup dup true resolvestream
- /ReusableStreamDecode filter /DataSource exch put
- 1 exch put
- exch PDFfile exch setfileposition
- } bind
- /Separation {
- aload pop exch oforce resolvecolorspace exch oforce resolvefnproc
- 4 array astore
- }
- /DeviceN {
- 0 4 getinterval % ignore attributes
- aload pop 3 -1 roll oforce
- 3 -1 roll oforce resolvecolorspace
- 3 -1 roll oforce resolvefnproc
- 4 array astore
- }
- /Indexed {
- aload pop 3 -1 roll oforce resolvecolorspace
- % If the underlying space is a Lab space, we must scale
- % the output of the lookup table as part of DecodeABC.
- dup dup type /arraytype eq { 0 get } if /CIEBasedABC eq {
- dup 1 get /DecodeLMN known {
- 1 get dup length dict copy
- begin /DecodeABC [ 0 2 4 {
- RangeABC 1 index 1 add get RangeABC 2 index get sub /mul load
- RangeABC 3 index get /add load
- DecodeABC 6 -1 roll 2 idiv get [ 6 1 roll aload pop ] cvx
- } for ] def
- /RangeABC //01_3 def
- currentdict end /CIEBasedABC exch 2 array astore
- } if
- } if
- 3 1 roll
- oforce dup type /stringtype ne {
- % The color lookup table is a stream.
- % Get its contents. Don't lose our place in PDFfile.
- % Stack: /Indexed basespace hival lookup
- PDFfile fileposition 5 1 roll true resolvestream
- % Stack: filepos /Indexed basespace hival lookupstream
- 1 index 1 add
- % Stack: filepos /Indexed basespace hival lookupstream len
- 3 index
- dup dup type /arraytype eq { 0 get } if
- //csncompdict exch get exec mul
- string readstring pop
- % Stack: filepos /Indexed basespace hival table
- 5 -1 roll PDFfile exch setfileposition
- }
- if 4 array astore
- }
- /Pattern {
- dup type /nametype ne {
- dup length 1 gt {
- 1 oget resolvecolorspace
- /Pattern exch 2 array astore
- } if
- } if
- }
-.dicttomark readonly def
-
-/cssubst { % <csname> cssubst <cspace'> true
- % <csname> cssubst false
- dup resolvecolorspace
- dup 1 index ne { exch pop true } { pop pop false } ifelse
-} bdef
-
-/csnames mark
- /DeviceGray dup /DeviceRGB dup /DeviceCMYK dup /Pattern dup
-.dicttomark readonly def
-/csresolve { % <csresourcename> csresolve <cspace>
- dup Page /ColorSpace rget {
- exch pop resolvecolorspace
- } {
- //csnames 1 index known not { /undefined cvx signalerror } if
- } ifelse
-} bdef
-/resolvecolorspace { % <cspace> resolvecolorspace <cspace'>
- dup dup type /arraytype eq { 0 get } if
- //csrdict exch .knownget {
- exec dup type /nametype ne { dup length 1 eq { 0 get } if } if
- } {
- csresolve
- } ifelse
-} bdef
-
-/scresolve { % <c0> ... scresolve <multi>
- % We can't really make sc[n] and SC[N] work, because
- % the color space information isn't available at
- % conversion time; so we hack it by assuming that
- % all the operands on the stack are used, and that
- % if the top operand is a name, it's a Pattern resource.
- dup type /nametype eq
- { Page /Pattern rget { resolvepattern } { null } ifelse }
- if
- dup type /dicttype eq {
- % Check the PaintType, if any (shading patterns don't
- % have one).
- dup /PaintType .knownget { 2 eq } { false } ifelse
- } {
- .pdfcount 1 gt
- } ifelse
-} bdef
-
-/.pdfpaintproc { % <patdict> <resdict> .pdfpaintproc -
- DEBUG { (%Begin PaintProc) = flush } if
- % For uncolored patterns, we have to unbind the current
- % color and color space before running the PaintProc.
- % There's no harm in doing this for colored patterns,
- % so for simplicity, we always do it.
- PDFfile fileposition 3 1 roll
- q
- null sc1 null SC1
- exch false resolvestream pdfopdict .pdfruncontext
- Q
- DEBUG { (%End PaintProc) = flush } if
- PDFfile exch setfileposition
-} bdef
-
-/resolvepattern { % <patternstreamdict> resolvepattern <patterndict>
- % Don't do the resolvestream now: just capture the data
- % from the file if necessary.
- dup length dict copy
- dup /FilePosition .knownget {
- 1 index /File get dup fileposition 3 1 roll
- % Stack: dict savepos pos file
- dup 3 -1 roll setfileposition
- dup 3 index /Length oget string readstring pop
- % Stack: dict savepos file string
- 3 1 roll exch setfileposition
- 1 index /File 3 -1 roll put
- dup /FilePosition undef
- } if
- dup /Shading knownoget {
- resolveshading 1 index /Shading 3 -1 roll put
- } if
- dup /PaintProc [
- % Bind the resource dictionary into the PaintProc.
- 2 index /Resources knownoget { oforce } { 0 dict } ifelse
- /.pdfpaintproc cvx
- ] cvx put
- DEBUG {
- (%Pattern: ) print dup === flush
- } if
-} bdef
-
-drawopdict begin
- /g { /DeviceGray cssubst { cs sc1 } { g } ifelse } bdef
- /rg { /DeviceRGB cssubst { cs sc* } { rg } ifelse } bdef
- /k { k } bdef
- /cs { csresolve cs } bdef
- /sc { scresolve { sc* } { sc1 } ifelse } bdef
- /scn /sc load def
- /G { /DeviceGray cssubst { CS SC1 } { G } ifelse } bdef
- /RG { /DeviceRGB cssubst { CS SC* } { RG } ifelse } bdef
- /K { K } bdef
- /CS { csresolve CS } bdef
- /ri { ri } bdef
- /SC { scresolve { SC* } { SC1 } ifelse } bdef
- /SCN /SC load def
-end
-
-% ---------------- Paths ---------------- %
-
-drawopdict begin
- % Path construction
- /m /moveto load def
- /l /lineto load def
- /c /curveto load def
- /v { currentpoint 6 2 roll curveto } def
- /y { 2 copy curveto } def
- /re {
- 4 2 roll moveto exch dup 0 rlineto 0 3 -1 roll rlineto neg 0 rlineto
- closepath
- } def
- /h /closepath load def
- % Path painting and clipping
- /n { n } def
- /S { S } def
- /s { s } def
- /f { f } def
- /f* { f* } def
- /B { B } def
- /b { b } def
- /B* { B* } def
- /b* { b* } def
- /W { W } def
- /W* { W* } def
- /sh { resolvesh shfill } def
-end
-
-% ---------------- XObjects ---------------- %
-
-/xobjectprocs mark % <dict> -proc- -
- /Image { DoImage }
- /Form { DoForm }
- /PS { DoPS }
-.dicttomark readonly def
-
-% Note that the keys in defaultdecodedict are resolved (PostScript, not PDF)
-% color space names.
-/defaultdecodedict mark
- /DeviceGray { pop //01_1 } bind
- /DeviceRGB { pop //01_3 } bind
- /DeviceCMYK { pop //01_4 } bind
- /CIEBasedA { 1 get /RangeA .knownget not { //01_1 } if } bind
- /CIEBasedABC { 1 get /RangeABC .knownget not { //01_3 } if } bind
- /ICCBased {
- 1 oget dup /Range .knownget {
- exch pop
- }{
- /N get [ exch {0 1} repeat ] readonly
- } ifelse
- } bind
- /Separation { pop //01_1 } bind
- /DeviceN {
- 1 oget length [ exch {0 1} repeat ] readonly
- } bind
- /Indexed {
- pop [ 0 1 BitsPerComponent bitshift 1 sub ]
- } bind
-.dicttomark readonly def
-
-/checkaltimage { % <resdict> checkaltimage <resdict[']>
- Printed {
- dup /Alternates knownoget {
- {
- dup /DefaultForPrinting knownoget {
- {
- /Image oget exch pop exit
- } {
- pop
- } ifelse
- } {
- pop
- } ifelse
- } forall
- } if
- } if
-} bdef
-
-/makeimagedict { % <resdict> <newdict> makeimagedict <imagemask>
- % On return, newdict' is currentdict
- begin
- /Width 2 copy oget def
- /Height 2 copy oget def
- /BitsPerComponent 2 copy oget def
- /Interpolate 2 copy knownoget { def } { pop } ifelse
- makeimagekeys
-} bdef
-/makeimagekeys { % <resdict> makeimagekeys <imagemask>
- % newdict is currentdict
- % Assumes Width, Height, BPC, Interpolate already copied.
- /ImageType 1 def
- /ImageMatrix Width 0 0
- % Handle 0-height images specially.
- Height dup 0 eq { pop 1 } if neg 0 1 index neg
- 6 array astore def
- dup /ImageMask knownoget dup { and } if {
- % Image mask
- % Decode is required for the PostScript image operators.
- % AI8 writes bogus decode array [0 1 0 0 0 0 0 0]
- /Decode 2 copy knownoget { 0 2 getinterval } { //01_1 } ifelse def
- % BitsPerComponent may be missing for masks.
- % The spec requires it, but some producers omit it, and
- % Acrobat Reader doesn't care.
- /BitsPerComponent 2 copy known { pop } { 1 def } ifelse
- true
- } {
- % Opaque image
- dup /ColorSpace oget resolvecolorspace /ColorSpace exch def
- % Decode is required for the PostScript image operators.
- /Decode 2 copy knownoget not {
- ColorSpace //defaultdecodedict
- ColorSpace dup type /arraytype eq { 0 get } if get exec
- } if def
- false
- } ifelse
- % Even though we're going to read data,
- % pass false to resolvestream so that
- % it doesn't try to use Length (which may not be present).
- exch false resolvestream /DataSource exch def
-} bdef
-
-/DoImage {
- checkaltimage dup length 6 add dict
- 1 index /SMask knownoget { 1 index exch /SMask exch put } if
- 1 index /Mask knownoget { 1 index exch /Mask exch put } if
- makeimagedict doimage
-} bdef
-/makemaskimage { % <datasource> <imagemask> <Mask> makemaskimage
- % <datasource> <imagemask>, updates currentdict =
- % imagedict
- dup type /arraytype eq {
- /ImageType 4 def
- /MaskColor exch def
- } {
- % Mask is a stream, another Image XObject.
- % Stack: datasource imagemask(false) maskstreamdict
- PDFfile fileposition exch
- dup length dict makeimagedict pop
- % In order to prevent the two data sources from being
- % aliased, we need to make at least one a reusable stream.
- % We pick the mask, since it's smaller (in case we need to
- % read all its data now).
- % Stack: datasource imagemask(false) savedpos
- % maskdict is currentdict
- /DataSource DataSource mark
- /Intent 1
- /AsyncRead true
- .dicttomark .reusablestreamdecode def
- PDFfile exch setfileposition
- currentdict end currentdict end
- 5 dict begin
- /ImageType 3 def
- /InterleaveType 3 def
- /DataDict exch def
- /MaskDict exch def
- /ColorSpace DataDict /ColorSpace get def
- } ifelse
-} bdef
-/doimage { % <imagemask> doimage -
- % imagedict is currentdict, gets popped from dstack
- DataSource exch
- PDFversion 1.4 ge { currentdict /SMask knownoget } { false } ifelse {
- makesoftmaskimage
- } {
- currentdict /Mask knownoget {
- makemaskimage
- } if
- } ifelse
- % Stack: datasource imagemask
- % image and imagemask can be redefined in gs_init.ps to tweak interpolation
- % after device-specific files are run. Don't bind them here.
- { currentdict end setfillstate /imagemask }
- { ColorSpace setcolorspace currentdict end setfillblend /image }
- ifelse
- .systemvar exec
-
- % Close the input stream, unless it is PDFfile or
- % PDFsource.
- dup dup PDFfile eq exch PDFsource eq or { pop } { closefile } ifelse
-} bdef
-
-/.paintform { % <formdict> <resdict> <stream> .paintform -
- 3 -1 roll dup /Group known {
- .paintgroupform
- } {
- pop pdfopdict .pdfruncontext
- } ifelse
-} bdef
-
-/DoForm {
- % Adobe 2nd edition of the PDF 1.3 spec makes /FormType
- % and /Matrix keys optional. Cope with the missing keys.
- dup length
- 1 index /Matrix known
- { dict
- }
- { 1 add dict
- dup /Matrix { 1 0 0 1 0 0 } cvlit put
- }
- ifelse
- copy
- dup /FormType known not {
- dup length 1 add dict copy dup /FormType 1 put
- } if
-
- dup [ 2 index /Resources knownoget { oforce } { 0 dict } ifelse
- 3 index false /resolvestream cvx
- /.paintform cvx
- ] cvx /PaintProc exch put
- execform
-} bdef
-
-/DoPS {
- true resolvestream cvx exec
-} bdef
-
-drawopdict begin
- /Do {
- setfillblend
- PDFfile fileposition exch
- dup Page /XObject rget {
- exch pop dup /Subtype get xobjectprocs exch get
- % Don't leave extra objects on the stack while executing
- % the definition of the form.
- 3 -1 roll 2 .execn
- } {
- % This should cause an error, but Acrobat Reader can
- % continue, so we do too.
- (%stderr) (w) file
- dup (****************Undefined XObject resource: ) writestring
- dup 3 -1 roll write===
- flushfile
- } ifelse
- PDFfile exch setfileposition
- } bdef
-end
-
-% ---------------- In-line images ---------------- %
-
-% Undo the abbreviations in an in-line image dictionary.
-% Note that we must look inside array values.
-% /I is context-dependent.
-/unabbrevkeydict mark
- /BPC /BitsPerComponent /CS /ColorSpace /D /Decode /DP /DecodeParms
- /F /Filter /H /Height /I /Interpolate /IM /ImageMask /W /Width
-.dicttomark readonly def
-/unabbrevvaluedict mark
- /AHx /ASCIIHexDecode /A85 /ASCII85Decode /CC /CalCMYK
- /CCF /CCITTFaxDecode /CG /CalGray /CR /CalRGB
- /DCT /DCTDecode /CMYK /DeviceCMYK /Fl /FlateDecode
- /G /DeviceGray /RGB /DeviceRGB
- /I /Indexed /LZW /LZWDecode /RL /RunLengthDecode
-.dicttomark readonly def
-/unabbrevtypedict mark
- /nametype {
- //unabbrevvaluedict 1 index .knownget { exch pop } if
- }
- /arraytype {
- dup 0 1 2 index length 1 sub {
- 2 copy get unabbrevvalue put dup
- } for pop
- }
-.dicttomark readonly def
-/unabbrevvalue { % <obj> unabbrevvalue <obj'>
- oforce //unabbrevtypedict 1 index type .knownget { exec } if
-} bdef
-
-drawopdict begin
- /BI { mark } bdef
- /ID {
- counttomark 2 idiv dup 6 add dict begin {
- exch //unabbrevkeydict 1 index .knownget { exch pop } if
- exch unabbrevvalue def
- } repeat pop
- /File PDFsource def
- currentdict makeimagekeys doimage
- % The Adobe documentation says that the data following ID
- % consists of "lines", and some PDF files (specifically, some files
- % produced by PCL2PDF from Visual Software) contain garbage bytes
- % between the last byte of valid data and an EOL.
- % Some files (PDFOUT v3.8d by GenText) have EI immediately following
- % the stream. Some have no EOL and garbage bytes.
- % Therefore, we skip all bytes before EI or EOL
- 0
- { PDFsource read not { //true exit } if
- dup 10 eq 1 index 13 eq or
- { pop PDFsource token pop /EI ne exit
- }
- if
- exch 69 eq 1 index 73 eq and { //false exit } if % 'EI'
- }
- loop
- exch pop
- { /ID cvx /syntaxerror signalerror
- }
- if
- } bdef
-end
-
-% ================================ Text ================================ %
-
-drawopdict begin
- % Text control
- /BT { BT } def
- /ET { ET } def
- /Tc { Tc } def
- /TL { TL } def
- /Tr { Tr } def
- /Ts { Ts } def
- /Tw { Tw } def
- /Tz { Tz } def
- % Text positioning
- /Td { Td } def
- /TD { TD } def
- /Tm { Tm } def
- /T* { T* } def
- % Text painting
- /Tj { Tj } def
- /' { ' } def
- /" { " } def
- /TJ { TJ } def
-end
-
-% ============================== Annotations ============================== %
-
-
-
-% Get and normalize an annotation's rectangle.
-/annotrect { % <annot> annotrect <x> <y> <w> <h>
- /Rect get aload pop
- exch 3 index sub dup 0 lt { dup 5 -1 roll add 4 1 roll neg } if
- exch 2 index sub dup 0 lt { dup 4 -1 roll add 3 1 roll neg } if
-} bdef
-
-% Set an annotation color.
-/annotsetcolor { % <annot> annotsetcolor -
- /C knownoget { aload pop setrgbcolor } { 0 setgray } ifelse
-} bdef
-
-% Draw the border. Currently, we ignore requests for beveling, and we
-% don't round the corners of rectangles.
-/strokeborder { % <annot> <width> <dash> strokeborder -
- 1 index 0 ne { % do not draw if border width is 0
- gsave
- 2 index annotsetcolor
- 0 setdash dup setlinewidth
- exch annotrect
- 2 { 4 index sub 4 1 roll } repeat
- 2 { 4 index 0.5 mul add 4 1 roll } repeat
- rectstroke pop
- grestore
- } {
- pop pop pop
- } ifelse
-} bdef
-
-% Draw an annotation border.
-/drawborder { % <annot> drawborder -
- gsave
- dup /BS knownoget {
- dup /W knownoget not { 1 } if
- [] 2 index /S knownoget {
- /D eq { 2 index /D knownoget not { [3] } if exch pop } if
- } if 3 -1 roll pop strokeborder
- } {
- dup /Border knownoget {
- dup 2 get
- exch dup length 3 gt { 3 get } { pop [] } ifelse
- strokeborder
- } {
- 1 [] strokeborder
- } ifelse
- } ifelse
- grestore
-} bdef
-
-%
-% The PDF annotation F (flags) integer is bit encoded.
-% Bit 1 (LSB) Invisible: 1 --> Do not display if no handler.
-% Note: We have no handlers but we ignore this bit.
-% Bit 2 Hidden: 1 --> Do not display. We will not display if this bit is set.
-% Bit 3 Print: 1 --> Display if printing. We will display if this bit set
-% (and not hidden) and Printed is true
-% Bit 4 NoZoom: 1 --> Do not zoom annotation even if image is zoomed.
-% Bit 5 NoRotate: 1 --> Do not rotate annotation even if image is rotated.
-% Bit 6 NoView: 0 --> Display if this is a 'viewer'. We will display
-% if this bit is not set (and not hidden) and Printed is false
-% Bit 7 Read Only - 1 --> No interaction. We ignore this bit
-%
-/annotvisible { % <annot> annotvisible <visible>
- /F knownoget not { 0 } if % Get flag value
- dup 2 and 0 eq % Check hidden flag
- exch dup 4 and 0 ne Printed and % Check print flag
- exch 64 and 0 eq Printed not and % Check noview flag
- or % Combine print and view
- and % Combine with 'hidden' flag test
-} bdef
-
-/drawwidget { % <scalefactor> <annot> drawwidget -
- dup /AP knownoget {
- % Always use the Normal appearance.
- /N oget
- % Acrobat Distiller produces files in which this Form
- % XObject lacks Type and Subtype keys. This is illegal,
- % but Acrobat Reader accepts it. The only way we can
- % tell whether this is a Form or a set of sub-appearances
- % is by testing for the stream Length key.
- dup /Length known {
- % If this is a form then simply use it
- true
- } {
- 1 index /AS knownoget not {
- % If we do not have AS then use any appearance
- { exch pop oforce exit } forall true
- } {
- % Stack: annot Ndict AS
- % Get the specified appearance. If no appearance, then
- % display nothing - set stack = false.
- knownoget
- } ifelse
- } ifelse
-
- % Stack: scale annot appearance true
- % Stack: scale annot false
- {
- % Draw appearance
- 1 index annotrect pop pop translate
- 2 index dup scale % Apply scale factor
- DoForm
- } if
- } if pop pop
-} bdef
-
-%
-% For stamp object we have to determine the size of the output rectangle
-% and the size of the BBox for the stamp image. From these we calculate
-% a scale factor for drawing the stamp.
-%
-/calcstampscale { % <annot> calcstampscale scale
- dup annotrect 4 -2 roll pop pop pop % get x width
- dup 0 lt { neg } if % get magnitude
- exch /AP knownoget {
- /N knownoget {
- /BBox knownoget {
- aload pop 4 -2 roll pop pop pop
- div
- } {
- pop 1 % default to unity scaling
- } ifelse % if we have /BBox
- } {
- pop 1
- } ifelse % if we have /N
- } {
- pop 1
- } ifelse % if we have /AP
-} bdef
-
-/drawlink { % <annot> drawlink -
- dup drawborder
- 1 exch drawwidget
-} bdef
-
-% Draw an annotation.
-/drawannottypes mark
- /Link { drawlink } bind
- /Stamp { dup calcstampscale exch drawwidget } bind
-.dicttomark readonly def
-/drawannot { % <annot> drawannot -
- dup annotvisible {
- gsave
- dup dup /Subtype get //drawannottypes exch .knownget {
- exec
- } {
- 1 exch drawwidget % Use drawwidget for everything else
- } ifelse % type known
- grestore
- } if pop % annotvisible
-} bdef
-currentdict /drawannottypes undef
-
-end % pdfdict
-end % GS_PDF_ProcSet
-.setglobal
diff --git a/Master/xemtex/gslib/pdf_font.ps b/Master/xemtex/gslib/pdf_font.ps
deleted file mode 100644
index 525ae34866e..00000000000
--- a/Master/xemtex/gslib/pdf_font.ps
+++ /dev/null
@@ -1,1224 +0,0 @@
-% Copyright (C) 1994-2002 artofcode LLC. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdf_font.ps,v 1.23.2.6.2.1 2003/04/12 14:02:39 giles Exp $
-% pdf_font.ps
-% PDF font operations.
-
-/.setlanguagelevel where { pop 2 .setlanguagelevel } if
-.currentglobal true .setglobal
-/pdfdict where { pop } { /pdfdict 100 dict def } ifelse
-GS_PDF_ProcSet begin
-pdfdict begin
-
-% We cache the PostScript font in an additional element of the
-% font resource dictionary, called PSFont.
-
-% ---------------- Encodings ---------------- %
-
-% Apply a list of differences to an Encoding.
-% Note that the differences may cause the array to grow.
-/updateencoding { % <encoding> <differences> updateencoding <enc'>
- % Calculate the length of the result.
- exch 0 2 index {
- dup type /nametype ne { exch pop } { pop 1 add } ifelse
- } forall
- 1 index length .max array dup 0 4 -1 roll putinterval
- exch 0 exch {
- % Stack: enc' code element
- dup type /nametype ne
- { exch pop }
- { 3 copy put pop 1 add }
- ifelse
- } forall pop
-} bdef
-
-% Get the Encoding for a font.
-/getencoding % <base-encoding> <font-resource> getencoding <enc>
- { /Encoding knownoget
- { dup type /nametype eq
- {
- % The published PDF specification says the Encoding name
- % "must be" one of the 3 predefined Encodings, implying
- % that an error should occur if it isn't. However, Acrobat
- % Reader simply ignores unknown names, and since there are
- % some buggy applications that rely on this, we do the same.
-
- dup dup dup /MacRomanEncoding eq
- exch /MacExpertEncoding eq or
- exch /WinAnsiEncoding eq or
- { exch pop findencoding
- }
- { pop
- }
- ifelse
- }
- { dup /BaseEncoding knownoget
- { findencoding 3 -1 roll pop exch
- }
- if
- /Differences knownoget { updateencoding } if
- }
- ifelse
- }
- if
- } bdef
-
-% Rename a font with a generated name.
-/renamefont { % <fontdict> renamefont <font'>
- dup /FontName 2 copy get genfontname dup 5 1 roll put definefont
-} bind def
-
-% Adjust a font according to the Encoding and Widths in the font resource.
-/adjustfont { % <font-resource> <font> adjustfont <font'>
- getfontencoding
- getfontmetrics 4 -1 roll pop .updatefont { renamefont } if
-} bind def
-
-% Get the (possibly modified) encoding of a font.
-/getfontencoding { % <font-resource> <font> getfontencoding
- % <font-resource> <font> <Encoding|null>
- 1 index /Encoding known {
- dup /Encoding .knownget { 2 index getencoding } { null } ifelse
- } {
- null
- } ifelse
-} bdef
-
-/find_in_diff % <Differences> <index> find_in_diff <bool>
-{ false exch 0 4 3 roll
- { dup type /nametype ne { exch pop } { pop 1 add } ifelse
- 2 copy eq {
- pop pop pop true 0 0 exit
- } if
- } forall
- pop pop
-} bdef
-
-% Get the metrics of a font, if specified.
-/getfontmetrics { % <font-resource> <font> <Encoding|null> getfontmetrics
- % <font-resource> <font> <Encoding|null>
- % <Metrics|null>
- 2 index /Widths known {
- dup null eq { pop dup /Encoding get } if
- 4 dict begin
- /Encoding exch def
- /Metrics Encoding length dict def
- exch
- dup /Widths oget /Widths exch def
- % Stack: font font-res
- % Note that widths are always based on a 1000-unit
- % character space, but the FontMatrix may specify
- % some other scale factor. Compensate for this here,
- % by scaling the Widths if necessary.
- 0.001 2 index /FontMatrix get 0 get div
- % Stack: font font-res mscale
- 1 index /FirstChar oget dup 1 4 index /LastChar oget
- { % Stack: font font-res mscale first-char index
- Encoding 1 index get
- Widths 2 index 4 index sub oget
- % Stack: font font-res mscale first-char index charname width
- 4 index mul
- % The following 'loop' is only context for 'exit'.
- {
- % Work around a bug in pdfTeX, which can generate Encoding
- % vectors containing nulls :
- 1 index null eq { exit } if
- % There is a hack here to deal with encodings where the
- % same character appears more than once, because the Metrics
- % dictionary works by character name, not by character code.
- % We prefer to take (1) non-zero width, and (2) width for
- % the character code which appears in Differences.
- Metrics 2 index .knownget not { 0 } if 0 ne {
- 5 index /Encoding knownoget not { exit } if
- dup type /dicttype ne { pop exit } if
- /Differences knownoget not { exit } if
- 3 index //find_in_diff exec not { exit } if
- } if
- 2 copy Metrics 3 1 roll put
- exit
- } loop
- pop pop pop
- }
- for pop
- % Now fill in the MissingWidth for any encoded characters
- % that aren't in Metrics already. Note that built-in
- % fonts may have Widths/FirstChar/LastChar but no
- % FontDescriptor, so we must check for this.
- % Stack: font font-res mscale
- 1 index /FontDescriptor knownoget {
- Metrics exch
- /MissingWidth knownoget { 2 index mul } { 0 } ifelse exch
- Encoding {
- % Stack: font font-res mscale missing-width metrics charname
- % Work around the abovementioned pdfTeX bug.
- dup null ne {
- 2 copy known not { 2 copy 4 index put } if pop
- } {
- pop
- } ifelse
- } forall pop pop pop
- } {
- pop
- } ifelse
- exch Encoding Metrics end
- } {
- null
- } ifelse
-} bdef
-
-currentdict /find_in_diff undef
-
-% ---------------- Descriptors ---------------- %
-
-% Partial descriptors for the 14 built-in fonts. Note that
-% from PDF 1.1 to PDF 1.2, the meaning of the Flag 6 in the FontDescriptor
-% object has undergone a subtle change in its meaning which has serious
-% consequences for searching with Acrobat:
-% In PDF 1.1, the flag meant: Font has StandardEncoding
-% In PDF 1.2, the flag means: Font has (subset of) StandardRomanCharacterSet
-/standardfontdescriptors mark
- /Courier mark /Flags 16#23 .dicttomark
- /Courier-Oblique 1 index
- /Courier-Bold 1 index
- /Courier-BoldOblique 1 index
- /Helvetica mark /Flags 16#20 .dicttomark
- /Helvetica-Oblique 1 index
- /Helvetica-Bold 1 index
- /Helvetica-BoldOblique 1 index
- /Times-Roman mark /Flags 16#22 .dicttomark
- /Times-Bold 1 index
- /Times-Italic mark /Flags 16#62 .dicttomark
- /Times-BoldItalic 1 index
- /Symbol mark /Flags 16#4 .dicttomark
- /ZapfDingbats 1 index
-.dicttomark readonly def
-
-% ---------------- Utilities ---------------- %
-
-/.glyphpath { % <glyphname> <boolean> .glyphpath -
- % another glyphpath written in addxchar.ps does not work here...
- currentfont 3 1 roll exch
- currentfont dup length dict begin
- { 1 index /Encoding eq { pop [ 3 -1 roll ] def } { def } ifelse } forall
- currentdict end /.glyphpathfont exch definefont
- setfont <00> exch charpath setfont
-} bdef
-
-/makeboldfont { % <basefont> <strokewidth> makeboldfont <boldfont>
- 10 dict begin
- /strokewidth exch def
- /basefont exch def
- /FontMatrix matrix def
- %/FontName basefont /FontName get def
- /FontName /.boldfont def
- /FontType 3 def
- /Encoding basefont /Encoding get def
- /FontBBox [ basefont /FontBBox get cvx exec
- 4 2 roll basefont /FontMatrix get transform
- 4 2 roll basefont /FontMatrix get transform
- ] def
- /BuildGlyph {
- gsave
- exch begin
- basefont setfont
- strokewidth setlinewidth
- 1 setlinejoin
- newpath
- 0 0 moveto dup false .glyphpath stroke
- 0 0 moveto glyphshow
- currentpoint setcharwidth
- end
- grestore
- } bind def
- currentdict
- end
- dup /FontName get exch definefont
-} bind def
-
-% Fabricate a font name by adding ?'s on the end.
-/genfontname % <name> genfontname <name>
- { dup length string cvs
- { (?) concatstrings
- dup cvn FontDirectory exch known not { cvn exit } if
- }
- loop
- } bdef
-
-% Find a font, and adjust its encoding if necessary.
-/.pdfdfndict mark
- /defaultfontname /Helvetica
-.dicttomark readonly def
-/pdffindfont { % <font-resource> <fontname> pdffindfont <font>
- % If the font isn't available, synthesize one based on
- % its descriptor.
- dup /Font resourcestatus {
- pop pop findfont
- } {
- 1 index /FontDescriptor knownoget {
- % Stack: font-res fontname fontdesc
- dup /Flags oget
- dup 16#40 and -6 bitshift % 1, oblique/italic
- 1 index 16#40000 and -17 bitshift add % 2, bold
- exch 16#2 and 2 bitshift add % 8, serif
- % We should look at the fixed flag, too.
- % Stack: font-res fontname fontdesc properties
- 1 index /FontName oget exch
- % Analyzes font name and extract "Narrow" property
- % which is not described by the FontDescriptor Flags.
- 0 2 index .fontnameproperties 4 and or
- % Rebind the default font name to Helvetica so that
- % fonts with no properties are handled correctly.
- //.pdfdfndict begin .substitutefontname end
- % Stack: font-res fontname fontdesc substname|null
- Fontmap 1 index known not {
- % No available good substitution, use the standard one.
- pop 1 index .substitutefont
- } if
- QUIET not {
- (Substituting font ) print dup =only
- ( for ) print 2 index =only (.) = flush
- } if
- 3 -1 roll pop findfont
- % Stack: font-res fontdesc font
- % If this is a small-caps font, replace the CharString
- % entries for a..z.
- exch /Flags oget 16#20000 and 0 ne {
- true .copyfontdict
- dup /CharStrings 2 copy get dup length dict .copydict
- 4 index /FirstChar get 97 .max
- 5 index /LastChar get 122 .min 1 exch {
- % Stack: font-res font' font' /CharStrings charstrings code
- % Note that this only remaps a-z, not accented characters.
- 5 index /Widths oget 1 index 7 index /FirstChar get sub oget
- 1 string dup 0 5 -1 roll put
- % Stack: font-res font' font' /CharStrings charstrings code
- % width (x)
- 2 index exch dup cvn exch
- dup 0 2 copy get 32 sub put 4 -1 roll {
- % Stack: operand (X) width
- 0 setcharwidth exch pop
- currentfont /FontMatrix get matrix invertmatrix concat
- 0.7 dup scale 0 0 moveto show
- } /exec cvx 4 packedarray cvx put
- } for put
- renamefont
- } if
- } {
- % No descriptor available, use the default algorithm.
- findfont
- } ifelse
- } ifelse adjustfont
-} bdef
-/findpdffont { % <font-resource> <fontname> findpdffont <font>
- {} 3 1 roll % proc fnres fnname
- [
- [ (,Bold) { .03 makeboldfont } ]
- [ (,BoldItalic) { .03 makeboldfont [ 1 0 .3 1 0 0 ] makefont } bind ]
- [ (,Italic) { [ 1 0 .3 1 0 0 ] makefont } bind ]
- ] {
- 1 index dup length string cvs
- 1 index 0 get tailmatch { % proc fnres fnname []
- 3 -1 roll pop exch 1 get % proc fnres pre-fnname proc
- 4 -1 roll pop 3 1 roll % proc fnres pre-fnname
- exit
- } { pop pop } ifelse % proc fnres fnname
- } forall
- pdffindfont exch exec
-} bdef
-
-% ---------------- Type 1 fonts ---------------- %
-
-/buildType1 % <Type1-font-resource> buildType1 <font>
- { dup /BaseFont get pdffindfont
- } bdef
-
-% The state dictionary for the embedded Type 1 font reading procedure
-% has the following keys and values:
-% data - stream (filter)
-% buffer, buffer2 - string
-% hexify - procedure to convert buffer to hex if needed
-% leftstr - string containing (non-negative) integer
-% sectionstr - string containing a character 0 .. 3
-% stream - (stream) dictionary
-% proc - procedure of the form {-dict- type1read}
-% pfbhdr - string containing 16#80 if PFB, 0 otherwise
-% When the procedure is executing, this dictionary is current.
-% leftstr and sectionstr are strings so that we can change their values
-% reliably in case the font executes a restore!
-% We also have to do something special about embedded fonts that
-% execute definefont more than once -- that is the function of topFontDict.
-
-% Read an embedded Type 1 font.
-/readfontfilter { % <proc> readfontfilter <filter>
- 0 () /SubFileDecode filter
-} bdef
-/readtype1dict 5 dict dup begin
- /definefont {
- dup topFontDict eq topFontDict null eq or {
- dup wcheck not { dup length dict copy } if
- exch pop savedFontName exch
- } if
- //systemdict /definefont get exec
- } bdef
- /eexec {
- % Assume the font dictionary is directly below the file on the stack
- count 0 gt { /topFontDict 2 index cvlit store } if
- 55665 /eexecDecode filter
- //systemdict begin readtype1dictcopy begin cvx stopped
- currentdict readtype1dictcopy eq { end } if
- currentdict //systemdict eq { end } if
- { stop } if
- } bdef
-end readonly def
-/readtype1 { % <font-resource> <stream-dict> readtype1 <font>
- % Read the definition, using a procedure-based filter
- % that turns binary/hex conversion on and off
- % at the right times.
- 1 index exch
- PDFfile fileposition 3 1 roll
- 11 dict begin
- /leftstr ( ) 10 string copy def
- dup /Length1 oget leftstr cvs pop
- /sectionstr <00> 1 string copy def
- /pfbhdr <00> 1 string copy def
- /stream 1 index def
- true resolvestream /data exch def
- /buffer 1000 string def % arbitrary
- /buffer2 buffer length 2.1 div cvi 1 sub string def
- /hexify /buf2hex load def
- currentdict end
- /type1read cvx 2 array astore cvx dup 0 get /proc 2 index put
- readfontfilter
- % Some buggy embedded fonts leave extra junk on the stack,
- % so we have to make a closure that records the stack depth
- % in a fail-safe way.
- //systemdict begin
- % The PDF specification is somewhat muddy about whether
- % an embedded font's name is supposed to be the BaseFont
- % from the Font object or the FontName from the descriptor.
- % Acrobat Distiller requires the former. Save away the
- % name so we can substitute it at definefont time.
- //readtype1dict dup length 3 add dict copy begin
- 1 index /BaseFont oget /savedFontName exch def
- /topFontDict null def
- /readtype1dictcopy currentdict def
- { run } aload pop count 1 sub 2 packedarray cvx exec
- end end
- count exch sub { pop } repeat
- PDFfile 3 -1 roll setfileposition
- /BaseFont oget findfont
- adjustfont
- } bdef
-
-% Execute the appropriate reading procedure.
-/type1read % <dict> type1read <string>
- { begin leftstr cvi
- { type1read0 type1read1 type1read2 type1read3 } sectionstr 0 get get exec
- ( ) leftstr copy cvs pop end
- } bdef
-
-% Read the next block of data into the buffer.
-/type1readdata % <left> <buffer> type1readdata <substring> <left'>
- { 0 2 index 2 index length .min getinterval
- % Adobe requires readstring to signal an error if given
- % an empty string. Work around this nonsense here.
- dup length 0 ne { data exch readstring pop } if
- dup length 3 -1 roll exch sub
- DEBUG
- { dup =only ( read ) print
- 1 index length =only (: ) print
- 1 index == flush
- } if
- } bdef
-
-% Read the initial byte to see if we need to skip a 6 byte PFB header
-/type1read0 { % <left> type1read0 <string> <left'>
- sectionstr 0 1 put % either way we go to the next stage
- pfbhdr type1readdata
- 1 index 0 get 16#80 eq {
- (\n **** Warning: Embedded Type1 font in PFB format is not valid PDF.)
- pdfformaterror
- DEBUG { (skipping PFB header) = flush } if
- exch pop buffer 0 5 getinterval type1readdata exch
- dup 4 get 256 mul 1 index 3 get add 256 mul
- 1 index 2 get add 256 mul 1 index 1 get add
- DEBUG { (PFB segment length = ) print dup = } if
- exch pop % discard the string keeping the PFB segment length
- 2 copy ne {
- (\n **** Warning: Type 1 PFB segment length and Length 1 value do not match.)
- pdfformaterror
- exch % keep the PFB length instead
- } if
- pop
- buffer type1readdata % go ahead and read a block
- }
- if % if not PFB, return pfbhdr string (first char of file, usually %).
-} bdef
-
-% Read the next block of the initial text portion.
-/type1read1 { % <left> type1read1 <string> <left'>
- DEBUG { (read1 ) print } if
- dup 0 eq {
- pop sectionstr 0 2 put
- stream /Length2 oget
- % Determine whether to hexify data for eexec.
- dup 8 lt {
- type1read2 % Hexify.
- } {
- DEBUG { (read2 ) print } if
- pfbhdr 0 get 16#80 eq {
- % eat 6 more bytes of PFB junk before proceeding
- DEBUG { (skipping PFB header in segment 2) = flush } if
- buffer 0 6 getinterval type1readdata exch
- dup 5 get 256 mul 1 index 4 get add 256 mul
- 1 index 3 get add 256 mul 1 index 2 get add
- DEBUG { (PFB segment length = ) print dup = } if
- exch pop % discard the string keeping the PFB segment length
- 2 copy ne {
- (\n **** Warning: Type 1 PFB segment length and Length 2 value do not match.)
- pdfformaterror
- dup =
- exch % keep the PFB length instead
- } if
- pop
- } if
- buffer2 type1readdata exch
- % The check doesn't have to be 100% accurate:
- % hexifying is always OK.
- dup 0 8 getinterval 0 exch { or } forall
- 128 ge {
- /hexify { } store
- /buffer2 buffer def % We don't need an intermediate buffer.
- } if hexify exch
- } ifelse
- } {
- buffer type1readdata
- } ifelse
-} bdef
-
-% Convert a string from binary to hex for eexec.
-% Free variables: buffer.
-/buf2hex { % <string> buf2hex <hexstring>
- buffer /ASCIIHexEncode filter dup 3 -1 roll writestring closefile
- buffer (>) search pop exch pop exch pop
-} bdef
-
-% Read the next block of the encrypted portion.
-/type1trailer
-(0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-cleartomark\n)
-readonly def
-/type1read2 { % <left> type1read2 <string> <left'>
- DEBUG { (read2 ) print } if
- dup 0 eq
- { pop sectionstr 0 3 put
- stream /Length3 oget
- dup 0 eq
- { DEBUG { (trailer ) print } if
- type1trailer exch
- }
- {
- pfbhdr 0 get 16#80 eq {
- % eat 6 more bytes of PFB junk before proceeding
- DEBUG { (skipping PFB header in segment 3) = flush } if
- buffer 0 6 getinterval type1readdata exch
- dup 5 get 256 mul 1 index 4 get add 256 mul
- 1 index 3 get add 256 mul 1 index 2 get add
- DEBUG { (PFB segment length = ) print dup = } if
- exch pop % discard the string keeping the PFB segment length
- 2 copy ne {
- (\n **** Warning: Type 1 PFB segment length and Length 3 value do not match.)
- pdfformaterror
- exch % keep the PFB length instead
- } if
- pop
- (\n) pdfformaterror
- } if
- type1read3
- }
- ifelse
- }
- { buffer2 type1readdata exch hexify exch
- }
- ifelse
-} bdef
-
-% Read the next block of the final text portion.
-% When finished, this procedure returns an empty string.
-/type1read3 % <left> type1read3 <string> <left'>
- { DEBUG { (read3 ) print } if
- buffer type1readdata
- } bdef
-
-% ---------------- Type 3 fonts ---------------- %
-
-/.notdefEncoding 256 { /.notdef } repeat 256 packedarray def
-
-/buildType3 { % <Type3-font-resource> buildType3 <font>
- 8 dict begin
- /FontType 3 def
- /Resources 1 index /Resources knownoget { oforce } { 0 dict } ifelse def
- /FontBBox 1 index /FontBBox get cvx def
- /FontMatrix 1 index /FontMatrix oget def
- /CharProcs 1 index /CharProcs oget def
- 1 index /Widths knownoget {
- /Widths exch def
- /FirstChar 1 index /FirstChar oget def
- /LastChar 1 index /LastChar oget def
- } if
- /FontName 1 index /Name get genfontname def
- /Encoding .notdefEncoding 2 index getencoding def
- % We have to define BuildChar rather than BuildGlyph:
- % there is no PDF equivalent of glyphshow, and we need
- % the character code to access the Widths.
- /BuildChar {
- % Stack: font charcode
- 1 index begin 3 dict begin
- /Font 3 -1 roll def /CharCode 1 index def
- % Make unknown characters map to /.notdef
- Encoding exch get dup CharProcs exch known
- { CharProcs exch oget }
- { pop CharProcs /.notdef oget }
- ifelse
- PDFfile fileposition exch
- false resolvestream
- % Stack: filepos stream
- % Don't let setgcolor set the color inside the BuildGlyph
- % procedure, because this causes an /undefined error.
- q null /FillColor gput null /StrokeColor gput
- Font /Resources get exch pdfopdict .pdfruncontext
- Q
- PDFfile exch setfileposition
- end end
- } bdef
- FontName currentdict end definefont exch pop
-} bdef
-/.adjustcharwidth { % <wx> <wy> .adjustcharwidth <wx'> <wy'>
- /Widths where {
- begin
- CharCode FirstChar ge CharCode LastChar le and {
- exch pop Widths CharCode FirstChar sub get exch
- } if end
- } if
-} bdef
-
-% ---------------- TrueType fonts ---------------- %
-
-/TTfonts mark
- /Arial /Helvetica
- /Arial,Italic /Helvetica-Oblique
- /Arial,Bold /Helvetica-Bold
- /Arial,BoldItalic /Helvetica-BoldOblique
- /CourierNew /Courier
- /CourierNew,Bold /Courier-Bold
- /TimesNewRoman /Times-Roman
- /TimesNewRoman,Italic /Times-Italic
- /TimesNewRoman,Bold /Times-Bold
- /TimesNewRoman,BoldItalic /Times-BoldItalic
- %
- /ArialBlack,Italic /Arial-BlackItalic
- /ArialNarrow,Bold /ArialNarrow-Bold
- /ArialNarrow,BoldItalic /ArialNarrow-BoldItalic
- /ArialNarrow,Italic /ArialNarrow-Italic
- /BookAntiqua,Bold /BookAntiqua-Bold
- /BookAntiqua,BoldItalic /BookAntiqua-BoldItalic
- /BookAntiqua,Italic /BookAntiqua-Italic
- /BookmanOldStyle,Bold /BookmanOldStyle-Bold
- /BookmanOldStyle,BoldItalic /BookmanOldStyle-BoldItalic
- /BookmanOldStyle,Italic /BookmanOldStyle-Italic
- /CenturyGothic,Bold /CenturyGothic-Bold
- /CenturyGothic,BoldItalic /CenturyGothic-BoldItalic
- /CenturyGothic,Italic /CenturyGothic-Italic
- /ComicSansMS,Bold /ComicSansMS-Bold
- /CourierNew,Bold /CourierNewPS-BoldMT
- /CourierNew,BoldItalic /CourierNewPS-BoldItalicMT
- /CourierNew,Italic /CourierNewPS-ItalicMT
- /FranklinGothicMedium,Italic /FranklinGothic-MediumItalic
- /Garamond,Bold /Garamond-Bold
- /Garamond,Italic /Garamond-Italic
- /Georgia,Bold /Georgia-Bold
- /Georgia,BoldItalic /Georgia-BoldItalic
- /Georgia,Italic /Georgia-Italic
- /Tahoma,Bold /Tahoma-Bold
- /TrebuchetMS,Bold /TrebuchetMS-Bold
- /TrebuchetMS,BoldItalic /Trebuchet-BoldItalic
- /TrebuchetMS,Italic /TrebuchetMS-Italic
- /Verdana,Bold /Verdana-Bold
- /Verdana,BoldItalic /Verdana-BoldItalic
- /Verdana,Italic /Verdana-Italic
-.dicttomark readonly def
-
-/buildTrueType { % <TrueType-font-resource> buildTrueType <font>
- dup /BaseFont get
- dup TTfonts exch .knownget {
- exch pop
- % Hack required by the PDF specification: if the
- % font resource has Subtype = /TrueType but the actual
- % (installed) font is not a TrueType font, ignore the
- % Encoding in the font resource. However, all current
- % versions of Acrobat Reader have the 14 base TrueType
- % fonts built in, so this produces incorrect output for
- % badly designed PDF files that specify these file names
- % with /Subtype = /TrueType but no embedded definition.
- % Compensate for this by removing the /Subtype key when
- % looking up the font.
- exch dup length dict copy dup /Subtype null put exch
- } if
- pdffindfont % findfont for PDF
- % disable the auto-bold and auto-italic since it sometimes applies
- % so an already bold or italic substitute font
- %findpdffont % findfont and auto-bold and/or auto-italic font for PDF
-} bdef
-
-% Read an embedded TrueType font.
-/readtruetype { % <font-resource> <stream-dict> readtruetype <font>
- % This is much simpler than readtype1, because we don't
- % have to deal with the tripartite .PFB format.
- 1 index exch
- PDFfile fileposition 3 1 roll
- true resolvestream readfontfilter
- % Stack: filepos fontres stream
- 1 index /Subtype get /CIDFontType2 eq {
- .loadttcidfont
- % Stack: filepos fontres cidfont
- 1 index /CIDToGIDMap knownoget {
- dup /Identity eq {
- pop
- } {
- true resolvestream
- % The following doesn't work for CIDToGIDMaps with more
- % than 32K-1 entries. We'll fix it later if necessary.
- % Stack: filepos fontres font mapstream
- dup 2 index /CIDCount oget 2 mul string readstring pop exch closefile
- exch dup length 5 add dict .copydict
- dup /FID undef
- dup /CIDMap 4 -1 roll put
- dup /CIDFontName get exch /CIDFont defineresource
- } ifelse
- } if
- } {
- null 2 index getencoding .loadpdfttfont
- } ifelse
- exch pop
- PDFfile 3 -1 roll setfileposition
- % Ignore both the Encoding and the Widths.
- exch pop
-} bdef
-
-% ---------------- Type 0 fonts ---------------- %
-
-% Predefine the known CMaps, but only create them on demand.
-/knownCMaps mark
- /Identity-H { /Identity-H 0 makeIdentityCMap }
- /Identity-V { /Identity-V 1 makeIdentityCMap }
-.dicttomark def
-
-/makeIdentityCMap { % <cmapname> <wmode> .makeIdentityCMap -
- .currentglobal true .setglobal 3 1 roll
- /CIDInit /ProcSet findresource begin
- 12 dict begin
- begincmap
- /WMode exch def
- /CMapName exch def
- /CIDSystemInfo 3 dict dup begin
- /Registry (Adobe) def
- /Ordering (Identity) def
- /Supplement 0 def
- end def
- %/CMapName (see above)
- /CMapVersion 1 def
- /CMapType 1 def
- %WMode (see above)
- % The PDF documentation says that these CMaps map CIDs
- % "1 to 65,536". This is a misprint for 0 to 65,535.
- 1 begincodespacerange
- % <0001> <00ff> <0100> <ffff>
- <0000> <ffff>
- endcodespacerange
- 1 begincidrange
- % <0001> <00ff> 1 <0100> <ffff> 256
- <0000> <ffff> 0
- endcidrange
- endcmap
- CMapName currentdict /CMap defineresource
- knownCMaps CMapName 2 index put
- end % CMap
- end % CIDInit ProcSet
- exch .setglobal
-} bdef
-
-/buildType0 { % <Type0-font-resource> buildType0 <font>
- dup /BaseFont get % FontName
- 1 index /Encoding oget
- dup type /nametype eq {
- dup /CMap resourcestatus {
- pop pop /CMap findresource
- } {
- knownCMaps 1 index .knownget
- { exch pop exec } { /undefined signalerror } ifelse
- } ifelse
- } {
- PDFfile fileposition exch
- dup /CMapName get exch true resolvestream cvx exec
- /CMap findresource
- exch PDFfile exch setfileposition
- } ifelse % CMap
- [
- 3 index /DescendantFonts oget { exec resourcefont } forall
- ] % subfonts
- composefont
- % Stack: fontres font
- 1 index /FontMatrix knownoget {
- dup aload pop true {0 0 1 0 0 1} {3 -1 roll eq and} forall {
- 1 index exch makefont exch /FontName get exch definefont
- } {
- pop
- } ifelse
- } if exch pop
-} bdef
-
-% ---------------- CIDFontType0/2 fonts ---------------- %
-
-% Insert metrics into a CIDFont, by saving the PDF W, W2, DW, and DW2
-% arrays and using a (currently very inefficient) CDevProc.
-% For detail, refer "PDF Reference" third edition, p. 337,
-% "5.6.3 CIDFonts" and table "Entries in a CIDFont dictionary".
-
-/.pdfDefaultDW 1000 def
-/.pdfDefaultDW2 [ 880 -1000 ] def
-
-/addCIDmetrics { % <CIDFont-resource> <CIDFont> addCIDmetrics <fontdict>
- dup length 5 add dict .copydict
- dup /FID undef
- dup /UniqueID undef
- dup /XUID undef
- % Insert the widths into the font.
-
- % Stack: pdfresource newfont
-
- 1 index /DW .knownget {
- 1 index /DW 3 -1 roll put
- } {
- dup /DW .pdfDefaultDW put
- } ifelse
-
-
- 1 index /W .knownget {
- dup 2 index /W 3 -1 roll put
- .pdfMakeInternalW 1 index /.internalW 3 -1 roll put
- } if
-
-
- 1 index /DW2 .knownget {
- 1 index /DW2 3 -1 roll put
- } {
- dup /DW2 .pdfDefaultDW2 put
- } ifelse
-
-
- 1 index /W2 .knownget {
- dup 2 index /W2 3 -1 roll put
- .pdfMakeInternalW2 1 index /.internalW2 3 -1 roll put
- } if
-
-
- dup /CDevProc 1 index /CIDWProc load /exec load 3 packedarray cvx put
- exch pop
-} bdef
-
-/.pdfMakeInternalMTXArray { % <mtx_array> <item_size> .pdfConvertInternalW <mtx_array'>
-
- % convert /W or /W2 to internal expression
- %
- % mtx_array: original /W or /W2 array
- % item_size: number of metrics values per CID
- %
- % for detail of the metrics list format in PDF,
- % refer PDF Ref. p.317 "Glyph Metrics in CIDFonts".
- %
- % format of single entry in internal expression
- %
- % [
- % [cid_begin cid_end]
- % value_is_varied (bool)
- % [ [values for cid_begin...]
- % [values for cid_begin + 1]
- % ... ]
- % ]
- %
-
- 7 dict
- begin
- /itemSize exch def
- /M exch def % original /W or /W2
- /Msize M length def
- /Mi { M i get } def % W[i]
- /Mi1 { M i 1 add get } def % W[i + 1]
- /putMTXEntry <<
- /arraytype {
- [
- [Mi Mi Mi1 length add 1 sub]
- true
- [
- 0 itemSize Mi1 length 1 sub {
- [ exch 1 1 index itemSize add 1 sub { Mi1 exch get } for ]
- } for
- ]
- ]
- /i i 2 add def
- }
- /integertype {
- [
- [Mi Mi1]
- false
- [[ i 2 add 1 i 1 add itemSize add { M exch get } for ]]
- ]
- /i i 3 add def
- }
- >> def
-
- /i 0 def
-
- [ { putMTXEntry Mi1 type get exec i Msize ge { exit } if } loop ]
- end
-} def
-
-/.pdfMakeInternalW { dup length 0 gt { 1 .pdfMakeInternalMTXArray } if } def
-/.pdfMakeInternalW2 { dup length 0 gt { 3 .pdfMakeInternalMTXArray } if } def
-
-/.pdfGetMTXByCID { % <internalMTXArray> <cid>
- % .pdfGetMTXByCID
- % { <MTXEntry> true | false }
-
- % get values for given CID from internal format of /W or /W2
-
- exch
- {
- {
- dup 0 get {} forall % Stack: <cid> <entry> <cid_0> <cid_1>
- 3 index lt { pop pop false exit } if
- 2 index exch sub dup 0 lt { pop pop false exit } if
- 1 index 1 get not { pop 0 } if
- exch 2 get exch get true exit
- } loop
- { exit } if
- } forall
- dup type /arraytype eq { exch pop true } { pop false } ifelse
-} def
-
-
-% Apply the [D]W[2] metrics to a character before displaying.
-/CIDWProc { % <w0x> <w0y> <llx> <lly> <urx> <ury>
- % <w1x> <w1y> <vx> <vy> <cid> <font> CIDWproc
- % <w0x'> ... <vy'>
-
- begin % push <font> to currentdict
- % <w1x> <w1y> <vx> <vy> won't be used and replaced, discard now
- 5 1 roll pop pop pop pop
-
- {
- currentdict /DW .knownget not { % no DW
- .pdfDefaultDW exit % replace <w0x> by defaultDW
- } if
-
- currentdict /.internalW .knownget not { % no W
- exit % use already-stacked DW
- } if
-
- dup length 0 eq { % W is null array
- pop % discard unusable W
- exit % use already-stacked DW
- } if
-
- % W is finite array, try to get W_cid
- 2 index .pdfGetMTXByCID { % got W, discard DW
- exch pop {} forall
- exit
- } if
-
- exit
- } loop
-
- 1000 div % <w0x'> (normalized W)
- 0 % <w0y'>
-
- % Stack: <w0x> <w0y> <llx> <lly> <urx> <ury> <cid> <w0x'> <w0y'>
- 9 -2 roll pop pop % discard <w0x> <w0y>
- 7 2 roll % put <w0x'> <w0y'>
-
- % Stack: <w0x'> <w0y'> <llx> <lly> <urx> <ury> <cid>
- 0 % <w1x'>
- exch % put <w1x'>
-
- % Stack: <w0x'> <w0y'> <llx> <lly> <urx> <ury> <w1x'> <cid>
- {
- currentdict /DW2 .knownget not { % no DW2, use defaultDW2
- .pdfDefaultDW2 exit
- } if
-
- currentdict /.internalW2 .knownget not { % has DW2, no W2
- exit % use already-stacked DW2
- } if
-
- dup length 0 eq { % W2 is null array
- pop % discard unusable W2
- exit % use already-stacked DW2
- } if
-
- 2 index .pdfGetMTXByCID { % got W2_cid, discard DW2
- exch pop
- exit
- } if
-
- % could not get W2_cid
- exit
-
- } loop
-
- exch pop % discard <cid>
-
-
- % Stack: <w0x'> <w0y'> <llx> <lly> <urx> <ury> <w1x'> { [<vy'> <w1y'>] | [<w1y'> <vx'> <vy'>] }
- dup length 2 eq { % this is DW2
- {1000 div} forall exch
- 4 index 7 index add 2 div % <vx'> = (<urx> + <llx>) / 2
- exch
- }{ % assume W2
- {1000 div} forall
- } ifelse
- end % recover currentdict
-
-} def
-
-
-
-%----------------------------------------------------------------
-
-% <string> <match> tailmatch ==> <pre> true
-% ==> <string> false
-/tailmatch {
- 2 copy length 1 index length .min
- dup 2 index length exch sub exch getinterval
- 1 index eq {
- length 1 index length exch sub
- 0 exch getinterval true
- } {
- pop false
- } ifelse
-} bind def
-
-/makeboldcidfont {
- 16 dict begin
- /strokewidth exch def
- /basecidfont exch def
- /FontMatrix [ 1 0 0 1 0 0 ] def
-
- /CIDFontName /.boldfont def
- /CIDFontType 1 def
-
- /basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
- /basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
-
- /CIDSystemInfo dup basecidfont exch get def
- /FontBBox [ basecidfont /FontBBox get cvx exec
- 4 2 roll basecidfont /FontMatrix get transform
- 4 2 roll basecidfont /FontMatrix get transform
- ] def
-
- /tmpstr 2 string def
- /BuildGlyph {
- gsave
- exch begin
- dup 256 idiv tmpstr exch 0 exch put
- 256 mod tmpstr exch 1 exch put
- rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
- { basefont-V } { basefont-H } ifelse setfont
- strokewidth setlinewidth
- 1 setlinejoin
- newpath
- 0 0 moveto tmpstr false charpath stroke
- 0 0 moveto tmpstr show
- currentpoint setcharwidth
- end
- grestore
- } bind def
-
- currentdict
- end
- dup /CIDFontName get exch /CIDFont defineresource
-} bind def
-
-% <CIDFont-resource> <CIDFontName> findCIDFont <CIDFont-resource> <font>
-% CIDFont-resource is not modified.
-/findCIDFont {
- {
- dup /CIDFont resourcestatus {
- pop pop /CIDFont findresource
- exit
- } if
-
- dup dup length string cvs
- (,Bold) tailmatch {
- exch pop
- cvn findCIDFont 0.03 makeboldcidfont
- exit
- } if
- (,Italic) tailmatch {
- exch pop
- cvn findCIDFont
- [ 1 0 0.3 1 0 0 ] makefont
- exit
- } if
- (,BoldItalic) tailmatch {
- exch pop
- cvn findCIDFont 0.03 makeboldcidfont
- [ 1 0 0.3 1 0 0 ] makefont
- exit
- } if
- pop
-
- 1 index /CIDSystemInfo get begin Registry (-) Ordering end
- concatstrings concatstrings
- cvn
- QUIET not {
- (Substituting ) print dup ==only
- ( for ) print 1 index ==only (.\n) print
- } if
- exch pop
- /CIDFont findresource
- exit
- } loop
-} bdef
-
-/buildCIDType0 { % <CIDFontType0-font-resource> buildCIDType0 <font>
- dup /BaseFont get exch 1 index findCIDFont
- addCIDmetrics /CIDFont defineresource
-} bdef
-
-/buildCIDType2 { % <CIDFontType2-font-resource> buildCIDType2 <font>
- dup /BaseFont get exch 1 index findCIDFont
- addCIDmetrics /CIDFont defineresource
-} bdef
-
-% ---------------- Other embedded fonts ---------------- %
-
-/fontloadprocs mark
- /Type1C /readType1C cvx
- /CIDFontType0C /readCIDFontType0C cvx
-.dicttomark readonly def
-
-% Read an embedded compressed font.
-/readType1C { % <font-resource> <stream-dict> readType1C <font>
- 1 index exch
- PDFfile fileposition 3 1 roll
- dup true resolvestream dup readfontfilter
- % Stack: pos resource streamdict stream filter
- 3 index /FontDescriptor oget /FontName oget
- 1 index FRD
- closefile closefile pop
- PDFfile 3 -1 roll setfileposition
- /FontDescriptor oget /FontName oget findfont
- adjustfont
-} bdef
-
-% Read an embedded CFF CIDFont.
-/readCIDFontType0C { % <font-resource> <stream-dict> readCIDFontType0C <font>
- PDFfile fileposition 3 1 roll
- dup true resolvestream dup readfontfilter
- % Stack: pos resource streamdict stream filter
- 3 index /FontDescriptor oget /FontName oget
- 1 index FRD
- closefile closefile pop
- PDFfile 3 -1 roll setfileposition
- % Some broken Adobe software produces PDF files in which
- % the FontName of the CFF font and the FontName in the
- % FontDescriptor don't match the BaseFont in the font.
- % Use the FontName, rather than the BaseFont, here.
- dup /FontDescriptor oget /FontName oget /CIDFont findresource
- addCIDmetrics dup /CIDFontName get exch /CIDFont defineresource
-} bdef
-
-% ---------------- Font lookup ---------------- %
-
-/fonttypeprocs mark % <font-resource> -proc- <font>
- /Type0 /buildType0 cvx
- /Type1 /buildType1 cvx
- /MMType1 1 index
- /Type3 /buildType3 cvx
- /TrueType /buildTrueType cvx
- /CIDFontType0 /buildCIDType0 cvx
- /CIDFontType2 /buildCIDType2 cvx
-.dicttomark readonly def
-
-/resourcefont % <font-resource> resourcefont <font>
- { dup /PSFont .knownget
- { /FID .knownget { type /fonttype eq } { false } ifelse }
- { false }
- ifelse
- { /PSFont get
- }
- { dup dup /FontDescriptor knownoget
- { % Stack: font-res font-res font-desc
- dup /FontFile knownoget
- { exch pop readtype1 true }
- { dup /FontFile2 knownoget
- { exch pop readtruetype true }
- { /FontFile3 knownoget
- { dup /Subtype get fontloadprocs exch get exec true }
- { false }
- ifelse
- }
- ifelse
- }
- ifelse
- }
- { false }
- ifelse
- % Stack: font-res font-res false
- % -or-: font-res font true
- not
- { dup /Subtype get fonttypeprocs exch get exec }
- if
- 2 copy /PSFont exch put
- exch pop
- }
- ifelse
- } bdef
-
-drawopdict begin
- /d0 {
- .adjustcharwidth setcharwidth
- } bdef
- /d1 {
- 6 -2 roll .adjustcharwidth 6 2 roll setcachedevice
- } bdef
- /Tf {
- 1 index Page /Font rget not { 1 index /invalidfont signalerror } if
- resourcefont exch Tf pop
- } bdef
-end
-
-end % pdfdict
-end % GS_PDF_ProcSet
-.setglobal
diff --git a/Master/xemtex/gslib/pdf_main.ps b/Master/xemtex/gslib/pdf_main.ps
deleted file mode 100644
index fd87aa5c99d..00000000000
--- a/Master/xemtex/gslib/pdf_main.ps
+++ /dev/null
@@ -1,813 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdf_main.ps,v 1.35.2.7.2.3 2003/04/12 14:02:39 giles Exp $
-% pdf_main.ps
-% PDF file- and page-level operations.
-
-/.setlanguagelevel where { pop 2 .setlanguagelevel } if
-.currentglobal true .setglobal
-/pdfdict where { pop } { /pdfdict 100 dict def } ifelse
-pdfdict begin
-
-% Patch in an obsolete variable used by some third-party software.
-/#? false def
-
-% Test whether the current output device handles pdfmark.
-/.writepdfmarkdict 1 dict dup /pdfmark null put readonly def
-/.writepdfmarks { % - .writepdfmarks <bool>
- currentdevice //.writepdfmarkdict .getdeviceparams
- mark eq { false } { pop pop true } ifelse
- systemdict /DOPDFMARKS known or
-} bind def
-
-% For simplicity, we use a single interpretation dictionary for all
-% PDF graphics execution, even though this is too liberal.
-/pdfopdict mark
- objopdict { } forall
- drawopdict { } forall
- /endstream { exit } bind
- (%%EOF) cvn { exit } bind % for filters
- % PDF 1.1 operators
- /BX { /BXlevel BXlevel 1 add store } bind
- /EX { /BXlevel BXlevel 1 sub store } bind
- /PS { cvx exec } bind
- % PDF 1.2 operators
- /BMC { pop } bind
- /BDC { pop pop } bind
- /EMC { }
- /MP { pop } bind
- /DP { pop pop } bind
-.dicttomark readonly def
-
-% ======================== Main program ======================== %
-
-end % pdfdict
-userdict begin
-
-/defaultfontname /Times-Roman def
-
-% Make sure the registered encodings are loaded, so we don't run the risk
-% that some of the indices for their names will overflow the packed
-% representation. (Yes, this is a hack.)
-SymbolEncoding pop
-DingbatsEncoding pop
-
-% Redefine 'run' so it recognizes PDF files.
-systemdict begin
-/.runps /run load def
-/run {
- dup type /filetype ne { (r) file } if
- dup ( ) .peekstring {
- (%) eq {
- dup ( ) .peekstring {
- (%PDF-) eq {
- dup (%stdin) (r) file eq {
- % Copy PDF from stdin to temporary file then run it.
- null (w+) //systemdict /.tempfile get exec exch 3 1 roll
- % stack: tempname stdin tempfile
- 1024 string
- {
- % stack: tempname stdin tempfile string
- 2 index 1 index readstring
- exch 3 index exch writestring
- not { exit } if
- }
- loop
- pop exch closefile
- % stack: tempname tempfile
- dup 0 setfileposition
- dup runpdf
- closefile deletefile
- } {
- runpdf
- } ifelse
- } {
- cvx .runps % doesn't start with %PDF-
- } ifelse
- } {
- pop cvx .runps % didn't read 5 characters
- } ifelse
- } {
- cvx .runps % didn't start with %
- } ifelse
- } {
- pop closefile % file was empty
- } ifelse
-} bind odef
-currentdict /runpdfstring .undef
-
-/runpdf { % <file> runpdf -
- userdict begin
- % It turns out that the PDF interpreter uses memory more
- % effectively if it is run under at least one level of save.
- % This is counter-intuitive, and we don't understand why it happens,
- % but the improvement is significant.
- /PDFTopSave save def
- /Page# null def
- /Page null def
- /DSCPageCount 0 def
- /PDFSave null def
- GS_PDF_ProcSet begin
- pdfdict begin
- pdfopen begin
- Trailer /Root oget /Pages oget /CropBox knownoget
- { mark /CropBox 3 -1 roll /PAGES pdfmark
- }
- if
- /FirstPage where
- { pop FirstPage dup pdfpagecount gt
- { (\nRequested FirstPage is greater than the number of pages in the file: ) print
- pdfpagecount = flush
- } if
- } {
- 1
- } ifelse
- 1
- /LastPage where { pop LastPage pdfpagecount .min } { pdfpagecount } ifelse
- 2 index 1 index gt
- { ( No pages will be processed \(FirstPage > LastPage\).) = flush }
- { QUIET not
- { (Processing pages ) print 2 index =only ( through ) print dup =only
- (.) = flush
- }
- if
- }
- ifelse
- { dup /Page# exch store
- QUIET not { (Page ) print dup == flush } if
- pdfgetpage pdfshowpage
- } for
- currentdict pdfclose
- end % temporary dict
- end % pdfdict
- end % userdict
- end % GS_PDF_ProcSet
- PDFTopSave restore
-} bind def
-end % systemdict
-% Redefine the procedure that the C code uses for running piped input.
-% It is OK to use { (%stdin) run } here, because a startjob cannot occur.
-/.runstdin {
- { (%stdin) run } execute0
-} bind def
-
-end % userdict
-pdfdict begin
-
-% ======================== File parsing ======================== %
-
-% Read the cross-reference and trailer sections.
-
-/traileropdict mark
- (<<) cvn { mark } bind
- (>>) cvn /.dicttomark load
- ([) cvn { mark } bind % ditto
- (]) cvn dup load
-% /true true % see .pdfexectoken in pdf_base.ps
-% /false false % ibid.
-% /null null % ibid.
- /R { /resolveR cvx 3 packedarray cvx } bind % see Objects below
- /startxref /exit load
-.dicttomark readonly def
-
-% Because of EOL conversion, lines with fixed contents might be followed
-% by one or more blanks.
-/lineeq % <filestr> <conststr> lineeq <bool>
- { anchorsearch
- { pop { ( ) anchorsearch not { () eq exit } if pop } loop }
- { pop false }
- ifelse
- } bind def
-/linene { lineeq not } bind def
-
-% Read (mostly scan) the cross-reference table.
-/readxref % <pos> readxref <trailerdict>
- { PDFoffset add PDFfile exch setfileposition
- % In some PDF files, this position actually points to
- % white space before the xref line. Skip over this here.
- { PDFfile fileposition PDFfile read pop 32 gt { exit } if pop
- } loop
- PDFfile exch setfileposition
- % The PDF specification says that the 'xref' must be on a line
- % by itself. The code here formerly used readline and linene to
- % check this. However, Acrobat Reader only requires the line to
- % begin with 'xref', and there are enough applications producing
- % non-compliant PDF files that we have to do this too.
- PDFfile pdfstring 0 4 getinterval readstring pop
- (xref) ne { /readxref cvx /syntaxerror signalerror } if
- % Store the xref table entry position for each object.
- % We only need to read the run headers, not every entry.
- { PDFfile token pop % first object # or trailer
- dup /trailer eq { pop exit } if
- PDFfile pdfstring readline pop
- token pop % entry count
- exch pop exch
- % This section might be adding new objects:
- % ensure that Objects and Generations are big enough.
- % Stack: count obj#
- 2 copy add growPDFobjects
- PDFfile fileposition 3 -1 roll
- { Objects 2 index lget null eq % later update might have set it
- { Objects 2 index 2 index cvx lput }
- if exch 1 add exch 20 add
- }
- repeat PDFfile exch setfileposition pop
- } loop
- count /pdfemptycount exch def
- PDFfile traileropdict .pdfrun
- } bind def
-
-% Open a PDF file and read the header, trailer, and cross-reference.
-/pdfopen { % <file> pdfopen <dict>
- pdfopenfile begin
- pdfopencache
- .writepdfmarks {
- % Copy bookmarks (outline) to the output.
- Trailer /Root oget /Outlines knownoget {
- /First knownoget {
- { dup writeoutline /Next knownoget not { exit } if } loop
- } if
- } if
- } if % end .writepdfmarks
- currentdict end
-} bind def
-/pdfopencache { % - pdfopencache -
- % Create and initialize some caches.
- /PageCount pdfpagecount def
- /PageNumbers PageCount 65534 .min dict def
- /PageIndex PageCount 65534 .min array def
-} bind def
-/pdfopenfile { % <file> pdfopenfile <dict>
- pdfdict readonly pop % can't do it any earlier than this
- 15 dict begin
- /LocalResources 0 dict def
- /DefaultMatrix null def % establish binding
- /Printed where { pop } {
- % Guess whether the output device is a printer.
- /Printed currentpagedevice /OutputFile known def
- } ifelse
- /PSLevel1 where { pop } { /PSLevel1 false def } ifelse
- cvlit /PDFfile exch def
- /PDFsource PDFfile def
- /Repaired false def
- PDFfile dup 0 setfileposition pdfstring readstring
- not {/pdfopen cvx /syntaxerror signalerror} if
- (%PDF-) search not {/pdfopen cvx /syntaxerror signalerror} if
- length /PDFoffset exch def pop cvr /PDFversion exch def
- findxref
- initPDFobjects
- % Read the last cross-reference table.
- readxref /Trailer exch def
- Trailer /Encrypt known
- { pdf_process_Encrypt % signal error
- }
- if
- % Read any previous cross-reference tables.
- Trailer { /Prev .knownget not { exit } if readxref } loop
- Repaired { printrepaired } if
- currentdict end
- } bind def
-
-% Skip backward over the %%EOF at the end of the PDF file, and read
-% the preceding startxref line. The PDF specification unambiguously
-% requires that the %%EOF appear on a line by itself, and that the
-% startxref and the following position value appear on separate lines;
-% however, some applications (including, apparently, Acrobat Distiller
-% on the Macintosh) may add up to 2K of garbage after the %%EOF, and some
-% other applications also truncate the %%EOF to %%EO, and/or put the
-% startxref and the following value on the same line.
-% A file reported from Distiller 3.02b for AIX 4.1.1 has 2076 bytes
-% of garbage. The tolerance is increased to 4K to cover future
-% applications and bigger allocation units.
-/findxref { % - findxref <xrefpos>
- PDFfile dup dup 0 setfileposition bytesavailable
- dup /PDFfilelen exch def
- % Find the last %%EOF string (within 4096 bytes)
- 4096 sub PDFoffset .max
- 2 copy setfileposition
- PDFfilelen exch sub string 1 index exch readstring pop {
- (\015%%EO) search { % Adobe can handle truncated key string
- pop pop % if found, keep searching 'post' string
- } {
- (\012%%EO) search
- { pop pop } { exit } ifelse % exit if neither string found
- } ifelse
- } loop
- PDFfilelen exch length sub 4 sub PDFoffset .max exch 1 index setfileposition
- % Stack: eofpos
- % Check for whether this is, in fact, a valid PDF file.
- dup PDFfilelen exch sub dup dup 7 gt exch 6 lt or {
- pop true
- } {
- string PDFfile exch readstring pop
- dup (%%EOF\n) eq exch dup (%%EOF\r) eq
- exch (%%EOF\r\n) eq or or not
- } ifelse {
- (
- **** This file has a corrupted %%EOF marker, or garbage after the %%EOF.
-) pdfformaterror
- } if
- PDFfile exch setfileposition
- % Now read the startxref and xref start position.
- prevline token not { null } if dup type /integertype eq {
- exch pop cvi % xref start position
- exch PDFfile exch setfileposition
- prevline (startxref) linene { /findxref cvx /syntaxerror signalerror } if
- pop
- } { % else, this file has 'startxref #####' format
- (startxref) ne { /findxref cvx /syntaxerror signalerror } if
- cvi % xref start position
- (
- **** The format of the startxref line in this file is invalid.
-) pdfformaterror
- exch PDFfile exch setfileposition
- } ifelse
-} bind def
-/stderrfile (%stderr) (w) file def
-/stderrprint { % <string> stderrprint -
- //stderrfile dup 3 -1 roll writestring flushfile
-} bind def
-/pdfformaterror { % <string> pdfformaterror -
- stderrprint
- /Repaired true store
-} bind def
-/printrepaired {
- Trailer /Info knownoget {
- /Producer knownoget not { null } if
- } {
- null
- } ifelse
- dup null eq {
- pop (\
- **** Please notify the author of the software that produced this file
-)
- } {
- ( **** The file was produced by ) stderrprint
- % Handle a Unicode Producer.
- (\376\377) anchorsearch {
- pop dup length 2 idiv string 0 1 2 index length 1 sub {
- % Stack: origstr newstr i
- 1 index exch 3 index 1 index 2 mul 1 add get put
- } for exch pop
- } if
- stderrprint
- (:
- **** please notify the author of this software
-)
- } ifelse stderrprint
-(\
- **** that the file does not conform to Adobe's published PDF
- **** specification. Processing of the file will continue normally.
-
-) stderrprint
-} bind def
-
-% Write the outline structure for a file. Uses linkdest (below).
-/writeoutline % <outlinedict> writeoutline -
- { mark
- 0 2 index /First knownoget
- { { exch 1 add exch /Next knownoget not { exit } if } loop }
- if
- % stack: dict mark count
- dup 0 eq
- { pop 1 index
- }
- { 2 index /Count knownoget { 0 lt { neg } if } if
- /Count exch 3 index
- }
- ifelse linkdest /Title oget /Title exch /OUT pdfmark
- /First knownoget
- { { dup writeoutline /Next knownoget not { exit } if } loop }
- if
- } bind def
-
-% Close a PDF file.
-/pdfclose % <dict> pdfclose -
- { begin
- PDFfile closefile
- end
- } bind def
-
-% ======================== Page accessing ======================== %
-
-% Get a (possibly inherited) attribute of a page.
-/pget % <pagedict> <key> pget <value> -true-
- % <pagedict> <key> pget -false-
- { 2 copy knownoget
- { exch pop exch pop true
- }
- { exch /Parent knownoget
- { exch pget }
- { pop false }
- ifelse
- }
- ifelse
- } bind def
-
-% Get the value of a resource on a given page.
-/rget { % <resname> <pagedict> <restype> rget <value> -true-
- % <resname> <pagedict> <restype> rget -false-
- LocalResources 1 index knownoget {
- 3 index knownoget
- } {
- false
- } ifelse {
- exch pop exch pop exch pop true
- } {
- exch /Resources pget {
- exch knownoget { exch knownoget } { pop false } ifelse
- } {
- pop pop false
- } ifelse
- } ifelse
-} bind def
-
-% Get the total number of pages in the document.
-/pdfpagecount % - pdfpagecount <int>
- { Trailer /Root oget /Pages oget /Count oget
- } bind def
-
-% Find the N'th page of the document by iterating through the Pages tree.
-% The first page is numbered 1.
-/pdffindpageref { % <int> pdffindpage <objref>
- dup Trailer /Root oget /Pages get
- { % We should be able to tell when we reach a leaf
- % by finding a Type unequal to /Pages. Unfortunately,
- % some files distributed by Adobe lack the Type key
- % in some of the Pages nodes! Instead, we check for Kids.
- dup oforce /Kids knownoget not { exit } if
- exch pop null
- 0 1 3 index length 1 sub {
- 2 index exch get
- dup oforce dup /Kids known { /Count oget } { pop 1 } ifelse
- % Stack: index kids null noderef count
- dup 5 index ge { pop exch pop exit } if
- 5 -1 roll exch sub 4 1 roll pop
- } for exch pop
- % Stack: index null|noderef
- dup null eq { pop pop 1 null exit } if
- } loop
- % Stack: index countleft noderef
- 1 index 1 ne { pop pop /pdffindpage cvx /rangecheck signalerror } if
- exch pop
- PageIndex 2 index 1 sub 65533 .min 2 index oforce put
- PageNumbers 1 index oforce 3 index dup 65534 le
- { put }
- { pop pop pop } % don't store more than 65534 pagenumbers
- ifelse
- exch pop
-} bind def
-/pdffindpage { % <int> pdffindpage <pagedict>
- pdffindpageref oforce
-} bind def
-
-% Find the N'th page of the document.
-% The first page is numbered 1.
-/pdfgetpage % <int> pdfgetpage <pagedict>
- { PageIndex 1 index 1 sub dup 65533 lt
- { get }
- { pop pop null }
- ifelse
- dup null ne
- { exch pop oforce }
- { pop pdffindpage }
- ifelse
- } bind def
-
-% Find the page number of a page object (inverse of pdfgetpage).
-/pdfpagenumber % <pagedict> pdfpagenumber <int>
- { % We use the simplest and stupidest of all possible algorithms....
- PageNumbers 1 index .knownget
- { exch pop
- }
- { 1 1 PageCount 1 add % will give a rangecheck if not found
- { dup pdfgetpage oforce 2 index eq { exit } if pop
- }
- for exch pop
- }
- ifelse
- } bind def
-
-% Display a given page.
-/boxrect % [<llx> <lly> <urx> <ury>] boxrect <x> <y> <w> <h>
- { aload pop exch 3 index sub exch 2 index sub
- } bind def
-/resolvedest { % <name|string|other> resolvedest <other|null>
- dup type /nametype eq {
- Trailer /Root oget /Dests knownoget {
- exch knownoget not { null } if
- } {
- null
- } ifelse
- } {
- dup type /stringtype eq {
- Trailer /Root oget /Names knownoget {
- /Dests knownoget {
- exch nameoget
- } {
- pop null
- } ifelse
- } {
- pop null
- } ifelse
- } if
- } ifelse
-} bind def
-/linkdest { % <link|outline> linkdest
- % ([/Page <n>] /View <view> | ) <link|outline>
- dup /Dest knownoget
- { resolvedest
- dup type /dicttype eq { /D knownoget not { null } if } if
- dup null eq
- { pop }
- { dup 0 oget
- dup null eq
- { pop }
- { dup type /integertype ne { pdfpagenumber } if
- /Page exch 4 -2 roll
- }
- ifelse
- dup length 1 sub 1 exch getinterval /View exch 3 -1 roll
- }
- ifelse
- }
- if
-} bind def
-% <pagedict> mark ... -proc- -
-/namedactions 8 dict dup begin
- /FirstPage {
- /Page 1 3 -1 roll
- } def
- /LastPage {
- counttomark 2 add index pdfpagecount /Page exch 3 -1 roll
- } def
- /NextPage {
- counttomark 2 add index pdfpagenumber 1 add /Page exch 3 -1 roll
- } def
- /PrevPage {
- counttomark 2 add index pdfpagenumber 1 sub /Page exch 3 -1 roll
- } def
-end readonly def
-% <pagedict> <annotdict> -proc- -
-/annottypes 5 dict dup begin
- /Text {
- mark exch
- { /Rect /Open /Contents }
- { 2 copy knownoget { 3 -1 roll } { pop } ifelse }
- forall pop /ANN pdfmark
- } bind def
- /Link {
- mark exch
- dup /C knownoget { /Color exch 3 -1 roll } if
- { /Rect /Border }
- { 2 copy knownoget { 3 -1 roll } { pop } ifelse }
- forall dup /A knownoget {
- dup /URI known {
- /A mark 3 2 roll % <<>> /A [ <<action>>
- { oforce } forall
- .dicttomark
- 3 2 roll
- } {
- dup /D knownoget {
- exch pop exch dup length dict copy dup /Dest 4 -1 roll put
- } {
- /N knownoget { % Assume /S /Named
- namedactions exch .knownget { exec } if
- } if
- } ifelse
- } ifelse
- } if
- linkdest pop /LNK pdfmark
- } bind def
-end readonly def
-
-/pdfshowpage % <pagedict> pdfshowpage -
- { dup /Page exch store
- pdfshowpage_init
- pdfshowpage_setpage
- pdfshowpage_finish
- } bind def
-
-/pdfpagecontents % <pagedict> pdfpagecontents <contents>
- { } bind def
-
-/pdfshowpage_init % <pagedict> pdfshowpage_init <pagedict>
- { /DSCPageCount DSCPageCount 1 add store
- } bind def
-
-/.pdfshowpage_Install { % <pagedict> [<prevproc>] .pdfshowpage_Install -
- exch
- % We would like to clip to the CropBox here, but the subsequent
- % initgraphics would override it. Instead, we have to handle it
- % in graphicsbeginpage.
- dup /CropBox pget dup {exch pop} if systemdict /UseCropBox known and {
- dup /CropBox pget pop dup 0 get neg exch 1 get neg translate
- } {
- dup /MediaBox pget {
- dup 0 get neg exch 1 get neg translate
- } if
- } ifelse
- pop 0 get exec
-} bind def
-
-/pdfshowpage_setpage { % <pagedict> pdfshowpage_setpage <pagedict>
- 4 dict begin % for setpagedevice
- % Stack: pagedict
- currentpagedevice /Orientation 2 index /Rotate pget not { 0 } if 90 idiv
- % Rotate specifies *clockwise* rotation!
- neg 3 and def
- % Stack: pagedict currentpagedict
- 1 index /CropBox pget dup {exch pop} if systemdict /UseCropBox known and {
- % Set the page size.
- 1 index /CropBox pget pop
- boxrect 2 array astore /PageSize exch def pop pop
- } {
- 1 index /MediaBox pget {
- % Set the page size.
- boxrect 2 array astore /PageSize exch def pop pop
- } if
- } ifelse
- dup /Install .knownget {
- % Don't let the Install procedure get more deeply
- % nested after every page.
- dup type dup /arraytype eq exch /packedarraytype eq or {
- dup length 4 eq {
- dup 2 get /.pdfshowpage_Install load eq {
- 1 get 0 get % previous procedure
- } if
- } if
- } if
- } {
- { }
- } ifelse 1 array astore
- 2 index exch /.pdfshowpage_Install load /exec load
- 4 packedarray cvx
- % Stack: pagedict currentpagedict installproc
- /Install exch def
- % Stack: pagedict currentpagedict
- pop currentdict end setpagedevice
-} bind def
-
-/pdfshowpage_finish { % <pagedict> pdfshowpage_finish -
- save /PDFSave exch store
- (before exec) VMDEBUG
-
- .writepdfmarks {
-
- % Copy the crop box.
- dup /CropBox knownoget {
- % If the page has been rotated, rotate the CropBox.
- mark /CropBox 3 -1 roll
- 3 index /Rotate pget {
- 90 idiv 1 and 0 ne {
- aload pop 4 -2 roll exch 4 2 roll exch 4 array astore
- } if
- } if
- /PAGE pdfmark
- } if
-
- % Copy annotations and links.
- dup /Annots knownoget {
- 0 1 2 index length 1 sub
- { 1 index exch oget
- dup /Subtype oget annottypes exch .knownget { exec } { pop } ifelse
- }
- for pop
- } if
-
- } if % end .writepdfmarks
-
- % Display the actual page contents.
- 6 dict begin
- /BXlevel 0 def
- /BGDefault currentblackgeneration def
- /UCRDefault currentundercolorremoval def
- %****** DOESN'T HANDLE COLOR TRANSFER YET ******
- /TRDefault currenttransfer def
- matrix currentmatrix 2 dict
- 2 index /CropBox knownoget {
- boxrect 4 array astore 1 index /ClipRect 3 -1 roll put
- } if
- dictbeginpage /DefaultMatrix 1 index store setmatrix
- dup % for showing annotations below
- count /pdfemptycount exch store
- gsave
- % If the page uses any transparency features, show it within
- % a transparency group.
- PDFversion 1.4 lt {
- showpagecontents
- } {
- dup pageusestransparency {
- % Show the page within a PDF 1.4 device filter.
- 0 .pushpdf14devicefilter {
- % If the page has a Group, enclose contents in transparency group.
- % (Adobe Tech Note 5407, sec 9.2)
- dup /Group knownoget {
- 1 index /CropBox knownoget not {
- 1 index /MediaBox oget
- } if .beginformgroup {
- showpagecontents
- } .internalstopped {
- .discardtransparencygroup stop
- } if .endtransparencygroup
- } {
- showpagecontents
- } ifelse
- } .internalstopped {
- % todo: discard
- .popdevicefilter stop
- } if .popdevicefilter
- } {
- showpagecontents
- } ifelse
- } ifelse
- grestore
- % todo: mixing drawing ops outside the device filter could cause
- % problems, for example with the pnga device.
- /Annots knownoget { { oforce drawannot } forall } if
- endpage
- end % scratch dict
- (after exec) VMDEBUG
- PDFSave restore
-} bind def
-/showpagecontents { % <pagedict> showpagecontents -
- /Contents knownoget not { 0 array } if
- dup type /arraytype ne { 1 array astore } if {
- oforce false resolvestream pdfopdict .pdfrun
- } forall
-} bind def
-/processcolorspace { % - processcolorspace <colorspace>
- % The following is per the PLRM3.
- currentdevice 1 dict dup /ProcessColorModel dup put .getdeviceparams
- exch pop exch pop
- dup type /nametype ne { cvn } if
- dup { setcolorspace } .internalstopped { pop /DeviceRGB } if
-} bind def
-
-% ------ Transparency support ------ %
-
-% Determine whether a page might invoke any transparency features:
-% - Group in the page dictionary
-% - Non-default ca, CA, or SMask in an ExtGState
-% - Form XObject with Group
-% - Image XObject with SMask
-% ****** DO WE NEED TO LOOK IN RESOURCE DICTS OF OTHER CONTENT STREAMS? ******
-/pageusestransparency { % <pagedict> pageusestransparency <bool>
- PDFversion 1.4 lt {
- pop false
- } {
- dup /Group known {
- pop true
- } {
- false exch {
- dup resourceusestransparency { pop not exit } if
- /Parent knownoget not { exit } if
- } loop
- } ifelse
- } ifelse
-} bind def
-% Check the Resources of a page or Form.
-/resourceusestransparency { % <dict> resourceusestransparency <bool>
- { % Use loop to provide an exitable context.
- /Resources knownoget not { 0 dict } if
- dup /ExtGState knownoget {
- false exch {
- exch pop oforce
- dup /ca knownoget { 1 ne { pop not exit } if } if
- dup /CA knownoget { 1 ne { pop not exit } if } if
- dup /SMask knownoget { /None ne { pop not exit } if } if
- pop
- } forall { pop true exit } if
- } if
- dup /XObject knownoget {
- false exch {
- exch pop oforce dup /Subtype get
- dup /Image eq { 1 index /SMask known { pop pop not exit } if } if
- /Form eq {
- dup /Group known { pop not exit } if
- resourceusestransparency { not exit } if
- } {
- pop
- } ifelse
- } forall { pop true exit } if
- } if
- pop false exit
- } loop
-} bind def
-
-end % pdfdict
-.setglobal
diff --git a/Master/xemtex/gslib/pdf_ops.ps b/Master/xemtex/gslib/pdf_ops.ps
deleted file mode 100644
index 4c98a7f23b7..00000000000
--- a/Master/xemtex/gslib/pdf_ops.ps
+++ /dev/null
@@ -1,521 +0,0 @@
-% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdf_ops.ps,v 1.17.2.2.2.1 2003/04/12 14:02:39 giles Exp $
-% Definitions for most of the PDF operators.
-
-.currentglobal true .setglobal
-
-% Define pdfmark. Don't allow it to be bound in.
-% Also don't define it in systemdict, because this leads some Adobe code
-% to think this interpreter is a distiller.
-% (If this interpreter really is a distiller, don't do this.)
-systemdict /pdfmark known not
- { userdict /pdfmark { cleartomark } bind put } if
-
-userdict /GS_PDF_ProcSet 127 dict dup begin
-
-% ---------------- Abbreviations ---------------- %
-
-/bdef { bind def } bind def
-
-% ---------------- Graphics state stack ---------------- %
-
-% PDF adds a number of parameters to the graphics state.
-% We implement this by pushing and popping a dictionary
-% each time we do a PDF gsave or grestore.
-% The keys in this dictionary are as follows:
-% self % identifies the dictionary as one of ours
-% ClipRect % (optional)
-% Show
-% TextSaveMatrix % matrix at time of BT (iff within BT/ET)
-% (The following correspond directly to PDF state parameters.)
-% AlphaIsShape
-% FillConstantAlpha
-% FillColor
-% FillColorSpace
-% FillOverprint
-% SoftMask
-% StrokeConstantAlpha
-% StrokeColor
-% StrokeColorSpace
-% StrokeOverprint
-% TextSpacing
-% TextHScaling
-% Leading
-% TextFont
-% TextLineMatrix
-% TextMatrix
-% TextRise
-% TextRenderingMode
-% WordSpacing
-
-/nodict 1 dict def
-nodict /self { //nodict } executeonly put
-nodict readonly pop
-
-/dictbeginpage { % <initialdict> dictbeginpage -
- //nodict 20 dict .copydict begin { def } forall
- graphicsbeginpage textbeginpage
-} bdef
-/endpage { % - endpage -
- showpage end
-} bdef
-
-/graphicsbeginpage {
- initgraphics
- currentdict /ClipRect .knownget { aload pop rectclip } if
- 0 g 0 G false op false OP 0 OPM
- 1 ca 1 CA null SMask false AIS /Compatible BM true TK
-} bdef
-
-/gput % <value> <key> gput -
- { exch currentdict //nodict eq { /self dup load end 5 dict begin def } if
- % If we're in a Level 1 system, we need to grow the
- % dictionary explicitly.
- currentdict length currentdict maxlength ge %eq
- { currentdict dup length 3 mul 2 idiv 1 add dict .copydict end begin
- }
- if def
- } bdef
-
-/q {
- gsave //nodict begin
-} bdef
-% Some PDF files have excess Q operators!
-/Q {
- currentdict /self .knownget { exec //nodict eq { end grestore } if } if
-} bdef
-
-% ---------------- Color setting ---------------- %
-
-/fcput % <color> <colorspace> fcput -
- { /FillColorSpace gput /FillColor gput
- } bdef
-/scput % <color> <colorspace> scput -
- { /StrokeColorSpace gput /StrokeColor gput
- } bdef
-
-/csdevgray [/DeviceGray] readonly def
-/csdevrgb [/DeviceRGB] readonly def
-/csdevcmyk [/DeviceCMYK] readonly def
-/cspattern [/Pattern] readonly def
-/nullpattern1 mark
- /PatternType 1 /PaintType 1 /TilingType 3 /BBox [0 0 0 0]
- /XStep 1 /YStep 1 /PaintProc { }
-.dicttomark readonly def
-/nullpattern2 nullpattern1 dup length dict copy readonly def
-
-% Each entry in the color space dictionary is a procedure of the form
-% <cspace> -proc- <cspace> <initial-color>
-/CSdict mark
- /DeviceGray { pop //csdevgray 0 } bind
- /DeviceRGB { pop //csdevrgb [0 0 0] cvx } bind
- /DeviceCMYK { pop //csdevcmyk [0 0 0 1] cvx } bind
- /CIEBasedA { 0 } bind
- /CIEBasedABC { [0 0 0] cvx } bind
- /ICCBased { [ 1 index 1 oget /N get { 0 } repeat ] cvx } bind
- /Separation { 1 } bind
- /DeviceN { % What is the correct value??
- [ 1 index 1 get length { 1 } repeat ] cvx
- } bind
- /Indexed { 0 } bind
- /Pattern {
- dup type /nametype eq 1 index length 1 eq or {
- pop //cspattern //nullpattern1 matrix makepattern
- } {
- //nullpattern2 matrix makepattern 1 index 1 get csset
- % Stack: patternspace nullpattern basecolor basespace
- pop [ 3 1 roll dup type /arraytype eq { aload pop } if
- counttomark -1 roll ] cvx
- } ifelse
- } bind
-.dicttomark readonly def
-/csset % <cspace> csset <color> <cspace>
- { dup dup type /nametype ne { 0 get } if //CSdict exch get exec exch
- } bdef
-
-/g { //csdevgray fcput } bdef
-/G { //csdevgray scput } bdef
-/rg { 3 array astore cvx //csdevrgb fcput } bdef
-/RG { 3 array astore cvx //csdevrgb scput } bdef
-/k { 4 array astore cvx //csdevcmyk fcput } bdef
-/K { 4 array astore cvx //csdevcmyk scput } bdef
-/cs { csset fcput } bdef
-/CS { csset scput } bdef
-/ri { pop } bdef
-% We have to break up sc according to the number of operands.
-/sc1 { /FillColor gput } bdef
-/SC1 { /StrokeColor gput } bdef
-% We have to avoid storing into a color array associated with an outer
-% gsave level, so we do a kind of "copy on write".
-/sc* {
- currentdict /FillColor .knownget {
- astore pop
- } {
- /FillColor load length array astore cvx /FillColor gput
- } ifelse
-} bdef
-/SC* {
- currentdict /StrokeColor .knownget {
- astore pop
- } {
- /StrokeColor load length array astore cvx /StrokeColor gput
- } ifelse
-} bdef
-
-% ---------------- Overprint/transparency setting ---------------- %
-
-/op { /FillOverprint gput } bdef
-/OP { /StrokeOverprint gput } bdef
-/OPM {
- /.setoverprintmode where { pop .setoverprintmode } { pop } ifelse
-} bdef
-/ca { /FillConstantAlpha gput } bdef
-/CA { /StrokeConstantAlpha gput } bdef
-/SMask { /SoftMask gput } bdef
-/AIS { /AlphaIsShape gput } bdef
-/BM {
- /.setblendmode where {
- pop [ exch dup type /nametype ne { aload pop } if /Normal ] {
- { .setblendmode } .internalstopped not { exit } if pop
- } forall
- } {
- pop
- } ifelse
-} bdef
-/TK {
- /.settextknockout where { pop .settextknockout } { pop } ifelse
-} bdef
-
-% ---------------- Color installation ---------------- %
-
-% Establish a given color (and color space) as current.
-/.settransparencyparams { % <alpha> <smask> .settransparencyparams -
- /.begintransparencymask where {
- pop AlphaIsShape {
- 1 .setopacityalpha 0 .inittransparencymask exch .setshapealpha 1
- } {
- 1 .setshapealpha 1 .inittransparencymask exch .setopacityalpha 0
- } ifelse
- % Set the soft mask by rendering the XObject. Doing this every time
- % is obviously very inefficient; we'll improve it later.
- .settransparencymask
- } {
- pop pop
- } ifelse
-} bdef
-/.settransparencymask { % <paramdict> <masknum> .settransparencymask -
- exch dup null eq {
- pop .inittransparencymask
- } {
- dup /Draw get exec
- } ifelse
-} bdef
-% (Non-mask) images must execute setfillblend.
-/setfillblend {
- FillOverprint setoverprint
- FillConstantAlpha SoftMask .settransparencyparams
-} def
-/setfillstate {
- FillColor FillColorSpace setgcolor setfillblend
-} def
-/setstrokestate {
- StrokeColor StrokeColorSpace setgcolor StrokeOverprint setoverprint
- StrokeConstantAlpha SoftMask .settransparencyparams
-} def
-/Cdict 15 dict dup begin % <color...> <colorspace> -proc- -
- /DeviceGray { pop setgray } bdef
- /DeviceRGB { pop setrgbcolor } bdef
- /DeviceCMYK { pop setcmykcolor } bdef
- /CIEBasedA
- { dup currentcolorspace eq { pop } { setcolorspace } ifelse setcolor } bdef
- /CIEBasedABC /CIEBasedA load def
- /CIEBasedDEF /CIEBasedA load def
- /CIEBasedDEFG /CIEBasedA load def
- /ICCBased /CIEBasedA load def
- /Separation /CIEBasedA load def
- /DeviceN /CIEBasedA load def
- /Indexed /CIEBasedA load def
- /Pattern
- { dup currentcolorspace eq { pop } { setcolorspace } ifelse
- dup /Matrix .knownget not { matrix } if
- gsave DefaultMatrix setmatrix makepattern grestore setcolor
- } bdef
-end def
-/setgcolor % (null | <color...>) <colorspace> setgcolor -
- { 1 index null eq
- { pop pop }
- { dup 0 get //Cdict exch get exec }
- ifelse
- } bdef
-/fsexec % <fillop|strokeop> fsexec -
- { % Preserve the current point, if any.
- { currentpoint } stopped
- { $error /newerror false put cvx exec }
- { 3 -1 roll cvx exec moveto }
- ifelse
- } bdef
-
-% ---------------- Path painting and clipping ---------------- %
-
-/S { setstrokestate /stroke fsexec } bdef
-/f { setfillstate /fill fsexec } bdef
-/f* { setfillstate /eofill fsexec } bdef
-/n { newpath } bdef % don't allow n to get bound in
-/s { closepath S } bdef
-/B { gsave setfillstate fill grestore S } bdef
-/b { closepath B } bdef
-/B* { gsave setfillstate eofill grestore S } bdef
-/b* { closepath B* } bdef
-
-% Clipping:
-
-/Wdict 4 dict dup begin
-/S { gsave setstrokestate stroke grestore n } bdef
-/f { gsave setfillstate fill grestore n } bdef
-/f* { gsave setfillstate eofill grestore n } bdef
-/n { end clip newpath } bdef
-end readonly def
-/W { //Wdict begin } bdef
-/W*dict 4 dict dup begin
-Wdict { def } forall
-/n { end eoclip newpath } bdef
-end readonly def
-/W* { //W*dict begin } bdef
-
-% ---------------- Text control ---------------- %
-
-/textbeginpage
- { /TextSpacing 0 def % 0 Tc
- /TextLeading 0 def % 0 TL
- /TextRenderingMode 0 def % 0 Tr
- /TextRise 0 def % 0 Ts
- /WordSpacing 0 def % 0 Tw
- /TextHScaling 1.0 def % 100 Tz
- /TextFont null def
- /Show { showfirst } def
- } bdef
-
-% Contrary to the statement in the PDF manual, BT and ET *can* be nested,
-% if the CharProc for a Type 3 font does a BT/ET itself.
-% Since we always call the CharProc inside a q/Q, we simply ensure that
-% the text state is saved and restored like the rest of the extended
-% graphics state.
-
-/settextmatrix {
- TextMatrix concat
- TextHScaling 1 ne { TextHScaling 1 scale } if
- TextRise 0 ne { 0 TextRise translate } if
- TextFont dup null eq { pop } { setfont } ifelse
-} bdef
-/settextstate {
- % The text state can be set even outside BT/ET.
- currentdict /TextSaveMatrix known {
- TextSaveMatrix setmatrix settextmatrix
- } if
-} bdef
-/settextposition {
- % Update the TextMatrix translation.
- gsave TextSaveMatrix setmatrix
- currentpoint TextMatrix 4 2 getinterval astore pop
- % We would like to do "grestore currentpoint translate"
- % here, but some PDF files set a singular text matrix
- % (0 0 0 0 <x> <y> Tm), so we can't do this.
- TextTempMatrix identmatrix setmatrix currentpoint
- grestore
- TextTempMatrix currentmatrix 4 2 getinterval astore pop
- TextTempMatrix setmatrix
-} bdef
-
-/BT {
- currentdict /TextLineMatrix .knownget
- { identmatrix pop TextMatrix identmatrix pop }
- { matrix /TextLineMatrix gput matrix /TextMatrix gput }
- ifelse
- { showfirst } /Show gput
- currentdict /TextSaveMatrix .knownget not {
- matrix dup /TextSaveMatrix gput
- } if currentmatrix pop settextmatrix
- matrix /TextTempMatrix gput % see settextposition
-} bdef
-/ET {
- TextRenderingMode 4 ge { clip newpath } if
- TextSaveMatrix setmatrix
- currentdict /TextSaveMatrix undef
-} bdef
-/Tc { /TextSpacing gput { showfirst } /Show gput } bdef
-/TL { /TextLeading gput } bdef
-/Tr { /TextRenderingMode gput { showfirst } /Show gput } bdef
-/Ts { /TextRise gput settextstate } bdef
-/Tw { /WordSpacing gput { showfirst } /Show gput } bdef
-/Tz { 100 div /TextHScaling gput settextstate} bdef
-
-% ---------------- Font control ---------------- %
-
-/Tf { % <font> <scale> Tf -
- dup 1 eq { pop } { scalefont } ifelse
- /TextFont gput settextstate
-} bdef
-
-% Read a CFF font.
-/FRD % <resname> <file> FRD -
- { /FontSetInit /ProcSet findresource begin true ReadData
- } bdef
-
-% Copy a font, removing its FID. If changed is true, also remove
-% the UniqueID and XUID, if any. If the original dictionary doesn't have
-% the keys being removed, don't copy it.
-/.copyfontdict % <font> <changed> .copyfontdict <dict>
- { 1 index /FID known
- 1 index { 2 index /UniqueID known or 2 index /XUID known or } if
- { % We add 1 to the length just in case the original
- % didn't have a FID.
- exch dup length 1 add dict exch
- { % Stack: changed newfont key value
- 1 index /FID eq 4 index
- { 2 index /UniqueID eq or 2 index /XUID eq or }
- if not { 3 copy put } if pop pop
- }
- forall exch
- }
- if pop
- } bdef
-
-% Insert a new Encoding or Metrics into a font if necessary.
-% Return a possibly updated font, and a flag to indicate whether
-% the font was actually copied.
-/.updatefontmetrics { % <font> <Metrics|null> .updatefontmetrics
- % <font'> <copied>
- dup null ne {
- exch true .copyfontdict dup /Metrics 4 -1 roll put true
- } {
- pop false
- } ifelse
-} bdef
-/.updatefontencoding { % <font> <Encoding|null> .updatefontencoding
- % <font'> <copied>
- dup null ne { dup 2 index /Encoding get ne } { false } ifelse {
- exch false .copyfontdict dup /Encoding 4 -1 roll put true
- } {
- pop false
- } ifelse
-} bdef
-/.updatefont { % <font> <Encoding|null> <Metrics|null> .updatefont
- % <font'> <copied>
- 3 -1 roll exch .updatefontmetrics
- % Stack: enc|null font' copied
- 3 1 roll exch .updatefontencoding 3 -1 roll or
-} bdef
-
-% ---------------- Text positioning ---------------- %
-
-/Td {
- TextLineMatrix transform TextLineMatrix 4 2 getinterval astore pop
- TextLineMatrix TextMatrix copy pop settextstate
-} bdef
-/TD { dup neg /TextLeading gput Td } bdef
-/T* { 0 TextLeading neg Td } bdef
-/Tm {
- TextLineMatrix astore TextMatrix copy pop settextstate
-} bdef
-
-% ---------------- Text painting ---------------- %
-
-/Vexch {
- rootfont /WMode .knownget { 1 eq { exch } if } if
-} bind def
-
-/textrenderingprocs [ % (0 is handled specially)
- % Painting-only modes
- { tf } { tS } { tB } { tn }
- % Clipping modes
- { gsave tf grestore tW }
- { gsave tS grestore tW }
- { gsave tB grestore tW }
- { tW }
-] readonly def
-/setshowstate
- { WordSpacing 0 eq TextSpacing 0 eq and
- { TextRenderingMode 0 eq
- { { setfillstate show } }
- { { false charpath textrenderingprocs TextRenderingMode get exec } }
- ifelse
- }
- { TextRenderingMode 0 eq
- { WordSpacing 0 eq
- { { setfillstate TextSpacing 0 Vexch 3 -1 roll ashow } }
- { TextSpacing 0 eq
- { { setfillstate WordSpacing 0 Vexch 32 4 -1 roll widthshow } }
- { { setfillstate WordSpacing 0 Vexch 32
- TextSpacing 0 Vexch 6 -1 roll awidthshow } }
- ifelse
- }
- ifelse
- }
- { { WordSpacing TextSpacing
- % Implement the combination of t3 and false charpath.
- % Note that we must use cshow for this, because we
- % can't parse multi-byte strings any other way.
- % Stack: string xword xchar
- { pop pop (x) dup 0 3 index put false charpath
- % Stack: xword xchar ccode
- 3 copy 32 eq { add } { exch pop } ifelse 0 Vexch rmoveto pop
- }
- 4 -1 roll cshow pop pop
- textrenderingprocs TextRenderingMode get exec
- }
- }
- ifelse
- }
- ifelse /Show gput
- } bdef
-/showfirst { setshowstate Show } def
-
-/Tj {
- 0 0 moveto Show settextposition
-} bdef
-/' { T* Tj } bdef
-/" { exch Tc exch Tw T* Tj } bdef
-/TJ {
- 0 0 moveto {
- dup type /stringtype eq {
- Show
- } { -1000 div
- currentfont /ScaleMatrix .knownget { 0 get mul } if
- 0 Vexch rmoveto
- } ifelse
- } forall settextposition
-} bdef
-
-/tf { setfillstate currentpoint fill moveto } bdef
-/tn { currentpoint newpath moveto } bdef
-% For stroking characters, temporarily restore the graphics CTM so that
-% the line width will be transformed properly.
-/Tmatrix matrix def
-/tS
- { setstrokestate
- currentpoint //Tmatrix currentmatrix TextSaveMatrix setmatrix stroke
- setmatrix moveto
- } bdef
-/tB { gsave tf grestore tS } bdef
-% This does the wrong thing if there have been multiple text operations
-% within a single BT/ET pair, but it's a start.
-/tW { } bdef
-
-end readonly put % GS_PDF_ProcSet
-
-.setglobal
diff --git a/Master/xemtex/gslib/pdf_sec.ps b/Master/xemtex/gslib/pdf_sec.ps
deleted file mode 100644
index e19e4b4397e..00000000000
--- a/Master/xemtex/gslib/pdf_sec.ps
+++ /dev/null
@@ -1,361 +0,0 @@
-% Copyright (C) 1996-1998 Geoffrey Keating.
-% Copyright (C) 2001 Artifex Software, Inc.
-% This file may be freely distributed with or without modifications,
-% so long as modified versions are marked as such and copyright notices are
-% not removed.
-
-% $Id: pdf_sec.ps,v 1.5.2.1 2002/04/02 13:57:27 mpsuzuki Exp $
-% Implementation of security hooks for PDF reader.
-
-% This file contains the procedures that have to take encryption into
-% account when reading a PDF file. It replaces the stub version of this
-% file that is shipped with GhostScript. It requires GhostScript 7.01
-% or later.
-
-% Documentation for using this file is available at
-% http://www.ozemail.com.au/%7Egeoffk/pdfencrypt/
-
-% Modified by Alex Cherepanov to work with GS 6.60 and higher.
-% New versions of GS require explicit checks for /true , /false, and /null
-% in .decpdfrun . This fix is backward-compatible.
-
-% Modified by Raph Levien and Ralph Giles to use the new C
-% implementations of md5 and arcfour in ghostscript 7.01, and to
-% be compatible with PDF 1.4 128-bit encryption.
-
-/.setlanguagelevel where { pop 2 .setlanguagelevel } if
-.currentglobal true .setglobal
-/pdfdict where { pop } { /pdfdict 100 dict def } ifelse
-pdfdict begin
-
-% Older ghostscript versions do not have .pdftoken, so we use 'token' instead.
-/.pdftoken where { pop } { /.pdftoken /token load def } ifelse
-
-% take a stream and arc4 decrypt it.
-% <stream> <key> arc4decodefilter <stream>
-/arc4decodefilter {
- 1 dict begin
- /Key exch def
- currentdict end /ArcfourDecode filter
-} bind def
-
-% <ciphertext> <key> arc4decode <plaintext>
-/arc4decode {
- %(key: ) print dup == (ct: ) print 1 index ==
- 1 index length 0 eq {
- pop
- } {
- 1 index length string 3 1 roll arc4decodefilter exch readstring pop
- } ifelse
-} bind def
-
-/md5 {
- 16 string dup /MD5Encode filter dup 4 3 roll writestring closefile
-} bind def
-
-/pdf_padding_string
- <28bf4e5e4e758a41 64004e56fffa0108
- 2e2e00b6d0683e80 2f0ca9fe6453697a>
-def
-
-% Pad a key out to 32 bytes.
-/pdf_pad_key { % <key> pdf_pad_key <padded key>
- dup length 32 gt { 0 32 getinterval } if
- pdf_padding_string
- 0 32 3 index length sub getinterval
- concatstrings
-} bind def
-
-/pdf_xorbytes { % <iter-num> <key> pdf_xorbytes <xored-key>
- dup length dup string
- exch 1 sub 0 1 3 2 roll {
- % <iter-num> <key> <new-key> <byte-num>
- dup 3 index exch get 4 index xor
- % <iter-num> <key> <new-key> <byte-num> <byte>
- 3 copy put pop pop
- } for
- 3 1 roll pop pop
-} bind def
-
-% Get length of encryption key in bytes
-/pdf_key_length { % pdf_key_length <key_length>
- Trailer /Encrypt oget /Length knownoget { -3 bitshift } { 5 } ifelse
-} bind def
-
-% Algorithm 3.2
-/pdf_compute_encryption_key { % <password> pdf_compute_encryption_key <key>
- % Step 1.
- pdf_pad_key
-
- % Step 2, 3.
- Trailer /Encrypt oget dup /O oget
- % <padded-key> <encrypt> <O>
-
- % Step 4.
- exch /P oget 4 string exch
- 2 copy 255 and 0 exch put
- 2 copy -8 bitshift 255 and 1 exch put
- 2 copy -16 bitshift 255 and 2 exch put
- 2 copy -24 bitshift 255 and 3 exch put pop
- % <padded-key> <O> <P>
-
- % Step 5.
- Trailer /ID oget 0 oget
- 3 { concatstrings } repeat md5
-
- % Step 6.
- Trailer /Encrypt oget /R oget 3 eq {
- 50 { md5 } repeat
- } if
-
- % Step 7.
- 0 pdf_key_length getinterval
-} bind def
-
-% Algorithm 3.4
-/pdf_gen_user_password_R2 { % <filekey> pdf_gen_user_password_R2 <U>
-
- % Step 2.
- pdf_padding_string exch arc4decode
-} bind def
-
-% Algorithm 3.5
-/pdf_gen_user_password_R3 { % <filekey> pdf_gen_user_password_R3 <U>
-
- % Step 2.
- pdf_padding_string
-
- % Step 3.
- Trailer /ID oget 0 oget
- concatstrings md5
-
- % Step 4.
- 1 index arc4decode
-
- % Step 5.
- 1 1 19 {
- 2 index pdf_xorbytes arc4decode
- } for
- exch pop
-
-} bind def
-
-/pdf_gen_user_password { % <password> pdf_gen_user_password <filekey> <U>
- % common Step 1 of Algorithms 3.4 and 3.5.
- pdf_compute_encryption_key dup
-
- Trailer /Encrypt oget
-
- /R oget dup 2 eq {
- pop pdf_gen_user_password_R2
- } {
- dup 3 eq {
- pop pdf_gen_user_password_R3
- } {
- (****This file uses an unknown standard security handler revision: )
- print == flush
- /pdf_check_user_password cvx /undefined signalerror
- } ifelse
- } ifelse
-} bind def
-
-% Algorithm 3.6
-/pdf_check_user_password { % <password> pdf_check_user_password <filekey> true
- % <password> pdf_check_user_password false
- pdf_gen_user_password
-
- Trailer /Encrypt oget /U oget
-
- 0 2 index length getinterval eq {
- true
- } {
- pop false
- } ifelse
-} bind def
-
-% Compute an owner key, ie the result of step 4 of Algorithm 3.3
-/pdf_owner_key % <password> pdf_owner_key <owner-key>
-{
- % Step 1.
- pdf_pad_key
-
- % Step 2.
- md5
-
- % 3.3 Step 3.
- Trailer /Encrypt oget /R oget 3 eq {
- 50 { md5 } repeat
- } if
-
- % Step 4.
- 0 pdf_key_length getinterval
-} bind def
-
-% Algorithm 3.7
-/pdf_check_owner_password { % <password> pdf_check_owner_password <filekey> true
- % <password> pdf_check_owner_password false
- % Step 1.
- pdf_owner_key
-
- % Step 2.
- Trailer /Encrypt oget dup /O oget 2 index arc4decode
- % <encryption-key> <encrypt-dict> <decrypted-O>
-
- % Step 3.
- exch /R oget 3 eq {
- 1 1 19 {
- 2 index pdf_xorbytes arc4decode
- } for
- } if
- exch pop
- % <result-of-step-3>
-
- pdf_check_user_password
-} bind def
-
-% Process the encryption information in the Trailer.
-/pdf_process_Encrypt {
- Trailer /Encrypt oget
- /Filter oget /Standard eq not {
- (****This file uses an unknown security handler.\n) print flush
- /pdf_process_Encrypt cvx /undefined signalerror
- } if
- () pdf_check_user_password
- {
- /FileKey exch def
- } {
- /PDFPassword where {
- pop PDFPassword pdf_check_user_password
- {
- /FileKey exch def
- } {
- PDFPassword pdf_check_owner_password
- {
- /FileKey exch def
- } {
- (****Password did not work.\n) print flush
- /pdf_process_Encrypt cvx /invalidfileaccess signalerror
- } ifelse
- } ifelse
- } {
- (****This file requires a password for access.\n) print flush
- /pdf_process_Encrypt cvx /invalidfileaccess signalerror
- } ifelse
- } ifelse
-
-% Trailer /Encrypt oget /P oget 4 and 0 eq #? and
-% { (****This owner of this file has requested you do not print it.\n)
-% print flush
-% /pdf_process_Encrypt cvx /invalidfileaccess signalerror
-% }
-% if
-} bind def
-
-% Calculate the key used to decrypt an object (to pass to .decpdfrun or
-% put into a stream dictionary).
-/computeobjkey % <object#> <generation#> computeobjkey <keystring>
-{
- exch
- FileKey length 5 add string
- dup 0 FileKey putinterval
- exch
- % stack: gen# string obj#
- 2 copy 255 and FileKey length exch put
- 2 copy -8 bitshift 255 and FileKey length 1 add exch put
- 2 copy -16 bitshift 255 and FileKey length 2 add exch put
- pop exch
- 2 copy 255 and FileKey length 3 add exch put
- 2 copy -8 bitshift 255 and FileKey length 4 add exch put
- pop md5 0 FileKey length 5 add 2 index length .min getinterval
-} bind def
-
-% As .pdfrun, but decrypt strings with key <key>.
-/.decpdfrun % <file> <keystring> <opdict> .decpdfrun -
- { % Construct a procedure with the file, opdict and key bound into it.
- 2 index cvlit mark mark 5 2 roll
- { .pdftoken not { (%%EOF) cvn cvx } if
- dup xcheck
- { DEBUG { dup == flush } if
- 3 -1 roll pop
- 2 copy .knownget
- { exch pop exch pop exec
- }
- { exch pop
- dup /true eq
- { pop //true
- }
- { dup /false eq
- { pop //false
- }
- { dup /null eq
- { pop //null
- }
- { (%stderr) (w) file
- dup (****************Unknown operator: ) writestring
- dup 3 -1 roll .writecvs dup (\n) writestring flushfile
- }
- ifelse
- }
- ifelse
- }
- ifelse
- }
- ifelse
- }
- { exch pop DEBUG { dup ==only ( ) print flush } if
- dup type /stringtype eq
- { 1 index arc4decode
- DEBUG { (%Decrypted: ) print dup == flush } if
- }
- if
- exch pop
- }
- ifelse
- }
- aload pop .packtomark cvx
- /loop cvx 2 packedarray cvx
- { stopped /PDFsource } aload pop
- PDFsource
- { store { stop } if } aload pop .packtomark cvx
- /PDFsource 3 -1 roll store exec
- } bind def
-
-% Run the code to resolve an object reference.
-/pdf_run_resolve
- { /FileKey where
- { pop
- 2 copy computeobjkey dup 4 1 roll
- PDFfile exch resolveopdict .decpdfrun
- dup dup dup 5 2 roll
- % stack: object object key object object
- xcheck exch type /dicttype eq and
- { /StreamKey exch put }
- { pop pop }
- ifelse
- }
- { PDFfile resolveopdict .pdfrun }
- ifelse
- } bind def
-
-% Prefix a decryption filter to a stream if needed.
-% Stack: readdata? dict parms file/string filternames
-% (both before and after).
-/pdf_decrypt_stream
- { 3 index /StreamKey known
- {
- exch
- % Stack: readdata? dict parms filternames file/string
- 3 index /Length oget
- dup 0 eq {
- % Handle Length=0 case specially to avoid SubFileDecode semantics
- pop pop ()
- } {
- () /SubFileDecode filter
- } ifelse
- 3 index /StreamKey get arc4decodefilter
- exch
- } if
- } bind def
-
-end % pdfdict
-.setglobal
diff --git a/Master/xemtex/gslib/pdfopt b/Master/xemtex/gslib/pdfopt
deleted file mode 100644
index 0c2413bd7ef..00000000000
--- a/Master/xemtex/gslib/pdfopt
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-# $Id: pdfopt,v 1.4 2001/07/23 06:57:27 lpd Exp $
-# Convert PDF to "optimized" form.
-
-OPTIONS="-dSAFER -dDELAYSAFER"
-while true
-do
- case "$1" in
- -*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -ne 2 ]; then
- echo "Usage: `basename $0` input.pdf output.pdf" 1>&2
- exit 1
-fi
-
-exec gs -q -dNODISPLAY $OPTIONS -- pdfopt.ps "$1" "$2"
diff --git a/Master/xemtex/gslib/pdfopt.bat b/Master/xemtex/gslib/pdfopt.bat
deleted file mode 100644
index 18d86e404e3..00000000000
--- a/Master/xemtex/gslib/pdfopt.bat
+++ /dev/null
@@ -1,22 +0,0 @@
-@echo off
-@rem $Id: pdfopt.bat,v 1.4 2001/07/23 06:57:27 lpd Exp $
-@rem Convert PDF to "optimized" form.
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-call gssetgs.bat
-echo -q -dNODISPLAY -dSAFER -dDELAYSAFER >_.at
-:cp
-if %3/==/ goto doit
-echo %1 >>_.at
-shift
-goto cp
-
-:doit
-%GSC% -q @_.at -- pdfopt.ps %1 %2
-goto end
-
-:usage
-echo "Usage: pdfopt input.pdf output.pdf"
-
-:end
diff --git a/Master/xemtex/gslib/pdfopt.ps b/Master/xemtex/gslib/pdfopt.ps
deleted file mode 100644
index c037b126556..00000000000
--- a/Master/xemtex/gslib/pdfopt.ps
+++ /dev/null
@@ -1,1126 +0,0 @@
-% Copyright (C) 2000, 2001 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdfopt.ps,v 1.10.2.2.2.1 2003/04/12 14:02:39 giles Exp $
-% PDF linearizer ("optimizer").
-
-.currentglobal true .setglobal
-/pdfoptdict 200 dict def
-pdfoptdict begin
-
-% This linearizer is designed for simplicity, not for performance.
-% See the main program (the last procedure in the file) for comments
-% describing the main processing sequence.
-
-% ---------------- Utilities ---------------- %
-
-% ------ Data structures ------ %
-
-% Distinguish dictionaries, arrays, and everything else.
-/ifdaelse { % <obj> <dictproc> <arrayproc> <otherproc> ifdaelse -
- 3 index type dup /dicttype eq {
- pop pop pop
- } {
- dup /arraytype ne exch /packedarraytype ne and {
- exch
- } if pop exch pop
- } ifelse exec
-} bind def
-
-% Implement dynamically growable arrays using a dictionary.
-/darray { % <size> darray <darray>
- dict
-} bind def
-/dadd { % <darray> <value> dadd -
- 1 index length exch put
-} bind def
-/daforall { % <darray> <proc> daforall -
- /exch cvx /get cvx 3 -1 roll /exec cvx 5 packedarray cvx
- 0 1 2 index 0 get length 1 sub 4 -1 roll for
-} bind def
-/dacontents { % <darray> dacontents <array>
- [ exch { } daforall ]
-} bind def
-/dacontstring { % <darray> dacontstring <string>
- 0 1 index { exch pop length add } forall string
- dup /NullEncode filter
- % Stack: darray str filter
- 3 -1 roll { 1 index exch writestring } daforall
- closefile
-} bind def
-
-% Force an object, mapping it if it is a reference.
-/omforcenew { % <obj> omforce <obj'> <notseen>
- dup oforce 2 copy eq { pop true } { exch 0 get omapnew exch pop } ifelse
-} bind def
-/omforce { % <obj> omforce <obj'>
- omforcenew pop
-} bind def
-/omget { % <dict|array> <key> omget <obj>
- get omforce
-} bind def
-% Visit an entire tree.
-/omvisit { % <obj> omvisit -
- omforcenew {
- { { omvisit omvisit } forall }
- { { omvisit } forall }
- { pop }
- ifdaelse
- } {
- pop
- } ifelse
-} bind def
-% Visit a tree, stopping at references to Page objects.
-% (This is only needed for the OpenAction in the Catalog.)
-/omvisitnopage { % <obj> omvisitnopage -
- dup oforce dup type /dicttype eq {
- /Type .knownget { /Page eq } { false } ifelse
- } {
- pop false
- } ifelse {
- pop % Page reference
- } {
- omforcenew {
- { { omvisitnopage omvisitnopage } forall }
- { { omvisitnopage } forall }
- { pop }
- ifdaelse
- } {
- pop
- } ifelse
- } ifelse
-} bind def
-
-% Collect the list of currently mapped object numbers, in order.
-/omapped { % - omapped <obj#s>
- RMap length array RMap {
- 2 index 3 1 roll 1 sub exch put
- } forall
-} bind def
-
-% Collect the list of object numbers passed to omap by a procedure.
-/visited { % <proc> visited <obj#s>
- false currentomap 2 .execn
- omapped exch setomap
-} bind def
-
-% ------ Output ------ %
-
-% Provide a framework for closure-based streams.
-.currentglobal false .setglobal
-userdict /clostreams 20 dict put % stream -> [data endproc]
-.setglobal
-% Create a closure-based stream.
-/clostream { % <data> <proc> <endproc> clostream <stream>
- 2 index 3 -1 roll /exec load 3 packedarray cvx
- /NullEncode filter
- % Stack: data endproc stream
- clostreams 1 index 5 -2 roll 2 array astore put
-} bind def
-% Close a closure-based stream.
-/closend { % <stream> closend <result>
- dup closefile clostreams exch
- 2 copy get 3 1 roll undef aload pop exec
-} bind def
-
-% Implement in-memory output streams.
-/msproc { % <data> <more> <accum> msproc <scratch>
- 3 -1 roll dadd { 100 string } { () } ifelse
-} bind def
-/mstream { % - mstream <mstream>
- 10 darray {msproc} {dacontstring} clostream
-} bind def
-/mcontents { % <mstream> mcontents <string>
- closend
-} bind def
-
-% Implement a stream that only keeps track of its position.
-% (All streams should do this, but the PLRM doesn't require it.)
-/posbuf 100 string def
-/posproc { % <data> <more> <accum> posproc <scratch>
- 0 2 copy get 5 -1 roll length add put
- pop //posbuf
-} bind def
-/postream { % - postream <postream>
- [0] {posproc} {0 get} clostream
-} bind def
-/poslength { % <postream> poslength <pos>
- closend
-} bind def
-
-% Implement streams with variable-bit-width data.
-% Note that these are dictionary objects, not stream objects.
-/bitstream { % <stream> bitstream <bstream>
- 4 dict begin /S exch def /N 8 def /B 0 def
- currentdict end
-} bind def
-/bitwrite { % <bstream> <value> <width> bitwrite -
- PDEBUG { ( ) print 1 index =only (:) print dup = } if
- 3 -1 roll begin
- N exch sub dup 0 ge {
- /N exch def N bitshift B add
- } {
- 2 copy bitshift B add S exch write
- % Stack: value -left
- { 8 add dup 0 ge { exit } if
- 2 copy bitshift 255 and S exch write
- } loop
- /N 1 index def bitshift 255 and
- } ifelse /B exch def
- end
-} bind def
-/bitflush { % <bstream> bitflush -
- begin N 8 ne { S B write /B 0 def /N 8 def } if end
-} bind def
-
-% Capture OFile output on the temporary file, in memory, or just as a length.
-/totemp { % <proc> totemp <start> <end>
- TFile fileposition OFile
- /OFile TFile def 3 .execn
- /OFile exch def
- TFile fileposition
-} bind def
-/tomemory { % <proc> tomemory <string>
- OFile /OFile mstream def 2 .execn
- OFile mcontents exch /OFile exch def
-} bind def
-/tolength { % <proc> tolength <string>
- OFile /OFile postream def 2 .execn
- OFile poslength exch /OFile exch def
-} bind def
-
-% Copy a range of bytes from TFile to OFile.
-/copyrange { % <start> <end> copybytes -
- TFile 2 index setfileposition
- exch sub 1024 string exch {
- % Stack: buf left
- 2 copy 1 index length .min 0 exch getinterval
- TFile exch readstring pop OFile exch writestring
- 1 index length sub dup 0 le { exit } if
- } loop pop pop
-} bind def
-
-% Pad with blanks to a specified position.
-/padto { % <pos> padto -
- OFile fileposition sub
- dup 0 lt {
- (ERROR: file position incorrect by ) print =
- /padto cvx /rangecheck signalerror
- } {
- { ( ) ows } repeat
- } ifelse
-} bind def
-
-% ---------------- Read objects into memory ---------------- %
-
-/touch { % <object> touch -
- {
- { touch touch } forall
- } {
- dup xcheck {
- % Executable array, must be an indirect object.
- dup 0 get resolved? { pop pop } { oforce touch } ifelse
- } {
- { touch } forall
- } ifelse
- } {
- pop
- } ifdaelse
-} bind def
-
-% ---------------- Replace references with referents ---------------- %
-
-/replaceable? { % <value> replaceable? <bool>
- dup type /integertype eq exch xcheck not and
-} bind def
-/replacement { % <obj|ref> replacement <obj'>
- dup oforce dup replaceable? { exch } if pop
-} bind def
-
-/replacerefs { % <object> replacerefs <object>
- {
- dup {
- 2 index 2 index undef
- exch replacement exch replacement
- 2 index 3 1 roll put
- } forall
- } {
- 0 1 2 index length 1 sub {
- 1 index exch 2 copy get replacement put
- } for
- } {
- } ifdaelse
-} bind def
-
-/replaceReferences { % - replaceReferences -
- Objects { replacerefs pop } lforall
- % Delete replaced objects.
- 0 1 Objects llength 1 sub {
- Objects 1 index lget replaceable? {
- PDEBUG { (Deleting ) print dup = } if
- Generations 1 index 0 lput
- } if pop
- } for
-} bind def
-
-% ---------------- Create new objects ---------------- %
-
-/createObjects { % [<obj>...] createObjects <firstobj#>
- Objects llength dup
- dup 3 index length add growPDFobjects
- % Stack: objects objn objn
- 3 1 roll exch {
- Objects 2 index 3 -1 roll lput
- Generations 1 index 1 lput
- 1 add
- } forall pop
-} bind def
-
-% ---------------- Propagate attributes ---------------- %
-
-/nopropattrs <<
- % Never propagate these.
- /Type dup /Kids dup /Count dup /Parent dup
- % Handle Resources specially.
- /Resources dup
->> def
-
-% Merge Resources.
-/mergeres { % <fromdict> <todict> mergeres -
- % Values in todict take priority over fromdict.
- 1 index /Resources .knownget {
- 1 index /Resources .knownget {
- % Stack: fromdict todict fromres tores
- exch oforce exch oforce
- % todict's Resources may be shared, so make a copy.
- dup length dict .copydict
- exch {
- % Stack: fromdict todict tores' fromkey fromvalue
- 2 index 2 index knownoget {
- % Stack: fromdict todict tores' fromkey fromvalue tovalue
- exch oforce exch
- % ProcSet is an array, other types are dictionaries.
- dup type /dicttype eq {
- % Dictionary, not ProcSet.
- exch dup length 2 index length add dict .copydict .copydict
- } {
- % Array or packed array, ProcSet.
- % Use dictionaries to do the merge.
- dup length 2 index length add dict begin
- exch { dup def } forall { dup def } forall
- mark currentdict end { pop } forall .packtomark
- } ifelse
- } if
- 2 index 3 1 roll put
- } forall
- } if /Resources exch put pop
- } {
- pop pop
- } ifelse
-} bind def
-
-% Merge attributes other than Resources.
-/mergeattrs { % <fromdict> <todict> mergeattrs <fromdict> <todict>
- % Values in todict take priority over fromdict.
- 1 index {
- % Stack: fromdict todict fromkey fromvalue
- //nopropattrs 2 index known {
- pop pop
- } {
- 2 index 2 index known { pop pop } { 2 index 3 1 roll put } ifelse
- } ifelse
- } forall
-} bind def
-
-% Propagate attributes to a subtree.
-/proppage { % <attrs> <subtree> proppage -
- % We should be able to tell when we reach a leaf
- % by finding a Type unequal to /Pages. Unfortunately,
- % some files distributed by Adobe lack the Type key
- % in some of the Pages nodes! Instead, we check for Kids.
- dup /Kids knownoget {
- % Accumulate inherited values.
- 3 1 roll
- % Stack: kids attrs pagesnode
- dup length dict .copydict mergeattrs
- dup 3 1 roll mergeres
- exch { oforce 1 index exch proppage } forall pop
- } {
- % Merge inherited values into the leaf.
- mergeattrs mergeres
- } ifelse
-} bind def
-
-% Propagate attributes to all pages.
-/propagateAttributes { % - propagateAttributes -
- 0 dict Trailer /Root oget /Pages oget proppage
-} bind def
-
-% ---------------- Identify document-level objects ---------------- %
-
-/identifyDocumentObjects { % - identifyDocumentObjects <obj#s>
- {
- Trailer /Root omget
- dup /PageMode .knownget { omvisit } if
- % Don't allow omvisit to trace references to Page objects.
- dup /OpenAction .knownget { omvisitnopage } if
- Trailer /Encrypt .knownget { omvisit } if
- dup /Threads .knownget {
- omforce { omforce } forall
- } if
- dup /AcroForm .knownget { omvisit } if
- pop
- } visited
-} bind def
-
-% ---------------- Identify the objects of each page ---------------- %
-
-/identifyfont { % <fontref> identifyfont -
- omforce {
- exch /FontDescriptor eq {
- omforce dup /Flags .knownget { 32 and 0 ne } { false } ifelse
- exch {
- exch dup dup /FontFile eq exch /FontFile2 eq or
- exch /FontFile3 eq or 2 index and {
- fontfiles exch dadd
- } {
- omvisit
- } ifelse
- } forall pop
- } {
- omvisit
- } ifelse
- } forall
-} bind def
-
-/identifyPageObjects { % <extra> <page#> identifyPageObjects <obj#s>
- pdffindpageref
- 4 dict begin
- /images 10 darray def
- /fontfiles 10 darray def
- {
- omforce
- % Stack: extra page
- % Visit any extra objects if applicable.
- exch omvisit
- % Visit Annots, if any.
- % We don't try to defer the drawing information.
- dup /Annots .knownget { omvisit } if
- % Visit beads.
- dup /B .knownget { omvisit } if
- % Visit resources dictionaries.
- dup /Resources .knownget {
- omforce dup {
- % Visit the first-level Resource dictionaries.
- omforce pop pop
- } forall {
- % Visit the resources themselves.
- % Skip Image XObjects, and FontFile streams if the
- % FontDescriptor Flags have bit 6 set.
- % We don't try to visit the resources in the order in which
- % the Contents stream(s) reference(s) them.
- exch dup /XObject eq {
- pop oforce {
- dup oforce /Subtype get /Image eq {
- images exch dadd
- } {
- omvisit
- } ifelse pop
- } forall
- } {
- /Font eq {
- oforce { identifyfont pop } forall
- } {
- oforce omvisit
- } ifelse
- } ifelse
- } forall
- } if
- % Visit the Contents stream(s).
- dup /Contents .knownget { omvisit } if
- % Visit Image XObjects. We don't try to visit them in
- % reference order.
- images { omvisit } daforall
- % Visit FontFile streams. We don't try to visit them in
- % reference order.
- fontfiles { omvisit } daforall
- pop
- } visited end
-} bind def
-
-% Identify the objects of the first page.
-/identifyFirstPageObjects { % -identifyFirstPageObjects <obj#s>
- Trailer /Root oget null
- 1 index /PageMode knownoget {
- /UseOutlines eq {
- 1 index /Outlines knownoget { exch pop } if
- } if
- } if exch pop
- 1 identifyPageObjects
-} bind def
-
-% Identify the non-shared objects of the other pages, and the shared objects.
-/identifyOtherPageObjects { % - identifyOtherPageObjects [<pageobj#s> ...]
- % <sharedobj#s>
- 4 dict begin
- /marks lstring Objects llength lgrowto def
- % Mark document-level and first page objectsw.
- [CatalogNs FirstPageNs] {
- { marks exch 255 lput } forall
- } forall
- % Collect objects of other pages and identify sharing.
- [ 2 1 pdfpagecount { null exch identifyPageObjects } for ]
- dup {
- { marks exch 2 copy lget 1 add 254 .min lput } forall
- } forall
- [ exch {
- [ exch {
- marks 1 index lget 1 ne { pop } if
- } forall ]
- } forall ]
- [ 1 1 marks llength 1 sub {
- marks 1 index lget dup 1 le exch 255 eq or { pop } if
- } for ]
- end
-} bind def
-
-% Identify objects not associated with any page.
-/identifyNonPageObjects { % - identifyNonPageObjects <obj#s>
- 4 dict begin
- /marks lstring Objects llength lgrowto def
- [[[LPDictN PHSN] CatalogNs FirstPageNs SharedNs] OtherPageNs] {
- { { marks exch 1 lput } forall } forall
- } forall
- %****** PUT THESE IN A REASONABLE ORDER ******
- [ 1 1 Objects llength 1 sub {
- marks 1 index lget 0 eq {
- Generations 1 index lget 0 eq { pop } if
- } {
- pop
- } ifelse
- } for ]
-} bind def
-
-% ---------------- Assign object numbers ---------------- %
-
-% Assign object numbers to all objects that will be copied.
-% Return the first (translated) object number in the First Page xref table.
-/assignObjectNumbers { % - assignObjectNumbers -
- OtherPageNs { { omap pop } forall } forall
- SharedNs { omap pop } forall
- NonPageNs { omap pop } forall
- % Assign object numbers for the First Page xref table last.
- LPDictN omap % don't pop, this is the return value
- CatalogNs { omap pop } forall
- FirstPageNs { omap pop } forall
- PHSN omap pop
-} bind def
-
-% ---------------- Create the LPDict ---------------- %
-
-% Create the contents of the LPDict.
-/createLPDict { % <phsstart> <phsend> <firstpageend>
- % <xref0start> <filelength> createLPDict -
- LPDict
- dup /Linearized 1 put
- dup /L 4 -1 roll put % filelength
- dup /T 4 -1 roll put % xref0start
- dup /E 4 -1 roll put % firstpageend
- dup /H 5 -2 roll 1 index sub 2 array astore put % phsstart, end-start
- dup /O 1 pdffindpageref 0 get omap put
- /N pdfpagecount put
-} bind def
-
-% ---------------- Adjust object positions ---------------- %
-
-/adjustObjectPositions { % <boundary> <deltabelow> <deltaabove>
- % adjustObjectPositions -
- % Objects fall into 4 categories: LPDict, PHS, Catalog, and others.
- % We handle the first two as special cases.
- XRef {
- % Stack: bdy below above key loc
- dup 5 index ge { 2 } { 3 } ifelse index add
- XRef 3 1 roll put
- } forall pop pop pop
- XRef LPDictN omap HeaderLength put
- XRef PHSN omap PHSStart put
-} bind def
-
-% ---------------- Write the output file ---------------- %
-
-% Write objects identified by object number.
-/writeobjn { % <obj#> writeobjn -
- Generations 1 index lget pdfwriteobj
-} bind def
-/writeobjns { % <obj#s> writeobjns -
- { writeobjn } forall
-} bind def
-
-% Write a part of the output file.
-/writePart { % <proc> <label> writePart -
- PDEBUG {
- dup print ( start=) print
- OFile { .fileposition } stopped { pop (???) } if =
- 2 .execn
- print ( end=) print
- OFile { .fileposition } stopped { pop (???) } if =
- } {
- pop exec
- } ifelse
-} bind def
-
-% Write the header.
-/writePart1 { % - writePart1 -
- {
- pdfwriteheader
- } (part1) writePart
-} bind def
-
-% Write the linearization parameters dictionary.
-/writePart2 { % - writePart2 -
- {
- LPDictN writeobjn
- } (part2) writePart
-} bind def
-
-% Write the First Page xref table and trailer.
-% Free variables: FirstPageXN.
-/writePart3 { % <xrefstart> writePart3 -
- {
- FirstPageXN NObjects 1 add 1 index sub pdfwritexref
- Trailer dup length 1 add dict copy
- dup /Size NObjects 1 add put
- dup /Prev 4 -1 roll put
- pdfwritetrailer
- 0 pdfwritestartxref
- } (part3) writePart
-} bind def
-
-% Write the Catalog and other required document-level objects.
-% Free variables: CatalogNs.
-/writePart4 { % - writePart4 -
- {
- CatalogNs writeobjns
- } (part4) writePart
-} bind def
-
-% Write the Primary Hint Stream.
-/writePart5 { % - writePart5 -
- {
- PHSN writeobjn
- } (part5) writePart
-} bind def
-
-% Write the First Page's objects.
-% Free variables: FirstPageNs.
-/writePart6 { % - writePart6 -
- {
- FirstPageNs writeobjns
- } (part6) writePart
-} bind def
-
-% Write the objects of other pages (Page + non-shared objects).
-% Free variables: OtherPageNs.
-/writePart7 { % - writePart7 <lengths>
- {
- [ OtherPageNs {
- OFile fileposition exch
- writeobjns OFile fileposition exch sub
- } forall ]
- } (part7) writePart
-} bind def
-
-% Write the shared objects of other pages.
-% Free variables: SharedNs.
-/writePart8 { % - writePart8 -
- {
- SharedNs writeobjns
- } (part8) writePart
-} bind def
-
-% Write the other objects not associated with pages.
-% Free variables: NonPageNs.
-/writePart9 { % - writePart9 -
- {
- NonPageNs writeobjns
- } (part9) writePart
-} bind def
-
-% Write the main xref table and trailer.
-% Free variables: FirstPageXN.
-/writePart11xref { % writePart11 -
- {
- 0 FirstPageXN pdfwritexref
- } (part11xref) writePart
-} bind def
-/writePart11rest { % <part3start> writePart11rest -
- {
- << /Size FirstPageXN >> pdfwritetrailer
- pdfwritestartxref
- } (part11rest) writePart
-} bind def
-
-% ---------------- Write hint tables ---------------- %
-
-/bitsneeded { % <maxvalue> bitsneeded <#bits>
- 0 exch { dup 0 eq { pop exit } if exch 1 add exch 2 idiv } loop
-} bind def
-
-% Find the start and end of objects in the output.
-/omstart { % <obj#> omstart <pos>
- PDEBUG { (start\() print dup =only } if
- omap
- PDEBUG { (=>) print dup =only } if
- XRef exch get
- PDEBUG { (\) = ) print dup = } if
-} bind def
-/omend { % <obj#> omend <pos>
- % The end of an object is the start of the next object.
- % The caller must be sure that this object is not the last one
- % in part 9.
- PDEBUG { (end\() print dup =only } if
- omap
- PDEBUG { (=>) print dup =only } if
- 1 add
- % Check that the requested object wasn't the last one in part 6:
- % the next object in the output file is the first in part 7.
- PHSN omap 1 index eq { pop 1 } if
- XRef exch get
- PDEBUG { (\) = ) print dup = } if
-} bind def
-/omlength { % <obj#> omlength <length>
- dup omend exch omstart sub
-} bind def
-
-% Find the Contents of a page.
-/contentsobjects { % <pagedict> contentsobjects <firstobj#> <lastobj#>
- /Contents get
- dup oforce dup type /dicttype eq {
- pop dup
- } {
- dup 0 get exch dup length 1 sub get
- } ifelse
- exch 0 get exch 0 get
-} bind def
-/contentsstart { % <pagedict> contentsstart <pos>
- contentsobjects pop omstart
-} bind def
-/contentslength { % <pagedict> contentslength <length>
- contentsobjects omend exch omstart sub
-} bind def
-
-
-/writePageOffsetHints {
- PDEBUG { /writePageOffsetHints == } if
- 20 dict begin
- /bits OFile bitstream def
- /bwn { bits 3 1 roll bitwrite } def
-
- % Calculate least length of a page.
- FirstPageLength OtherPageLengths { .min } forall
- /minpl exch def
- % Calculate least contents length.
- FirstPageNs 0 get Objects exch lget contentslength
- OtherPageNs { 0 get Objects exch lget contentslength .min } forall
- /mincl exch def
-
- % The Adobe documentation says that all versions of Acrobat
- % require item 8 (mincl) to be zero. Patch this here.
- /mincl 0 def
-
- % Calculate bits needed to represent greatest page length.
- FirstPageLength OtherPageLengths { .max } forall
- minpl sub bitsneeded /maxplbits exch def
- % Calculate bits needed to represent the greatest Contents length.
- FirstPageNs 0 get Objects exch lget contentslength
- OtherPageNs { 0 get Objects exch lget contentslength .max } forall
- mincl sub bitsneeded /maxclbits exch def
-
- % Per Adobe documentation, Acrobat requires that item 5 (maxplbits)
- % be equal to item 9 (maxclbits). Set both to the max of the two.
- maxplbits maxclbits .max /maxplbits 1 index def /maxclbits exch def
-
- % 1: Least number of objects in a page:
- FirstPageNs length OtherPageNs { length .min } forall
- /minnop 1 index def 32 bwn
- % 2: Location of first page's Page object:
- FirstPageNs 0 get omap XRef exch get 32 bwn
- % 3: Bits needed to represent greatest # of objects in a page:
- FirstPageNs length OtherPageNs { length .max } forall
- minnop sub bitsneeded /maxnopbits 1 index def 16 bwn
- % 4: Least length of a page:
- minpl 32 bwn
- % 5: Bits needed to represent the greatest page length:
- maxplbits 16 bwn
- % 6: Least start of Contents offset:
- 0 % (Acrobat requires that this be 0.)
- /minsco 1 index def 32 bwn
- % 7: Bits needed to represent the greatest start of Contents
- % offset:
- 0 % (Acrobat ignores this.)
- /maxscobits 1 index def 16 bwn
- % 8: Least contents length:
- mincl 32 bwn
- % 9: Bits needed to represent the greatest Contents length:
- maxclbits 16 bwn
- % 10: Bits needed to represent the greatest number of Shared
- 0 % Object references (we don't report any):
- /maxsorbits 1 index def 16 bwn
- % 11: Bits needed to identify a Shared Object (we don't
- 0 % report any):
- /sobits 1 index def 16 bwn
- % 12: Bits needed to represent numerator of fraction (only
- 0 % needed for Shared Object references, which we don't report):
- /numfbits 1 index def 16 bwn
- % 13: Denominator of fraction (only needed for Shared Object
- % references, which we don't report):
- 255 % arbitrary
- /denf 1 index def 16 bwn
-
- % Number of objects in pages:
- FirstPageNs length minnop sub maxnopbits bwn
- OtherPageNs {
- length minnop sub maxnopbits bwn
- } forall
-
- % Total length of pages in bytes;
- FirstPageLength minpl sub maxplbits bwn
- OtherPageLengths {
- minpl sub maxplbits bwn
- } forall
-
- % Number of shared objects referenced from page:
- % (Currently we don't report this.)
- OtherPageNs length 1 add { 0 maxsorbits bwn } repeat
-
- % Since there are no shared object references,
- % the next two sections are empty.
-
- % Contents offsets:
- [FirstPageNs OtherPageNs aload pop] {
- 0 get Objects exch lget contentsstart minsco sub maxscobits bwn
- } forall
-
- % Contents lengths:
- [FirstPageNs OtherPageNs aload pop] {
- 0 get Objects exch lget contentslength mincl sub maxclbits bwn
- } forall
-
- bits bitflush end
-} bind def
-
-/writeSharedObjectHints {
- PDEBUG { /writeSharedObjectHints == } if
- 20 dict begin
- /bits OFile bitstream def
- /bwn { bits 3 1 roll bitwrite } def
-
- % Currently we use the Shared Object hint table only for
- % the objects in the first page, which are all treated as
- % "shared" objects.
-
- % Object number of first object in Shared Objects section
- % (not currently used):
- 0 32 bwn
- % Location of first object in Shared Objects section
- % (not currently used): If there are no shared objects,
- % Acrobat sets this to the location of linearization
- % parameters object (the very first object).
- { pdfwriteheader } tomemory length 32 bwn
- % Number of Shared Object entries for first page:
- FirstPageNs length 32 bwn
- % Number of Shared Object entries for Shared Objects
- % section (not currently used):
- FirstPageNs length 32 bwn
- % Bits needed to represent the greatest number of objects
- % in a shared object group (always 0, because all groups
- % have only 1 object):
- 0 16 bwn
- % Least length of a Shared Object Group in bytes:
- 16#7fffffff FirstPageNs { omlength .min } forall
- /minsol 1 index def 32 bwn
- % Bits needed to represent the greatest length of a
- % Shared Object Group:
- 0 FirstPageNs { omlength .max } forall
- minsol sub bitsneeded
- /maxsolbits 1 index def 16 bwn
-
- % Lengths of shared object groups:
- FirstPageNs { omlength minsol sub maxsolbits bwn } forall
-
- % MD5 flag:
- 0 1 bwn
-
- bits bitflush end
-} bind def
-
-% ---------------- Main program ---------------- %
-
-/tmpprefix (/tmp/) def
-
-/pdfOptimize { % <infile> <outfile> pdfOptimize -
- realtime 3 1 roll
- exch pdfdict begin pdfopenfile dup begin
- 40 dict begin
- /IDict exch def
- /OFile exch def
- /starttime exch def
- /now {
- QUIET { pop } { print (, t = ) print realtime starttime sub = flush } ifelse
- } def
- omapinit
-
- % Create and open a temporary file.
-
- null (w) .tempfile /TFile exch def /TFileName exch def
- .setsafe
-
- % Read all objects into memory.
-
- Trailer touch
- (Read objects) now
-
- % Replace indirect references to numbers. This is needed
- % for the Length of streams, and doesn't hurt anything else.
-
- replaceReferences
- (Replaced references) now
-
- % Create the two new objects: the linearization parameter
- % dictionary, and the Primary Hint Stream.
-
- /LPDict 10 dict def
- /PHS 10 dict cvx def % executable = stream
- [LPDict PHS] createObjects
- /LPDictN 1 index def 1 add
- /PHSN exch def
- PDEBUG { << /LPDictN LPDictN /PHSN PHSN >> === } if
-
- % Count the number of objects in the output.
-
- 0 0 1 Objects llength 1 sub {
- Generations exch lget 0 ne { 1 add } if
- } for
- /NObjects exch def
- QUIET not { NObjects =only ( objects total) = flush } if
-
- % Propagate inherited attributes down the page tree.
-
- propagateAttributes
- (Propagated attributes) now
-
- % Identify the document-level objects (part 4).
-
- identifyDocumentObjects /CatalogNs exch def
- QUIET not { CatalogNs === flush } if
- (Identified Catalog) now
-
- % Identify the first page's objects (part 6),
- % including the Outlines tree if appropriate.
-
- pdfopencache
- /FirstPageNs identifyFirstPageObjects def
- QUIET not { FirstPageNs === flush } if
- (Identified first page) now
-
- % Identify shared vs. non-shared objects for remaining pages
- % (parts 7 and 8).
-
- identifyOtherPageObjects
- /SharedNs exch def
- /OtherPageNs exch def
- QUIET not { OtherPageNs === flush SharedNs === flush } if
- (Identified other pages) now
-
- % Identify objects not associated with any page (part 9).
-
- /NonPageNs identifyNonPageObjects def
- QUIET not { NonPageNs === flush } if
- (Identified non-pages) now
-
- % Assign final object numbers to all the objects.
- % (The omap is currently empty.)
-
- /FirstPageXN assignObjectNumbers def
- (Assigned objects #s) now
-
- % Write the document-level objects (part 4).
-
- { writePart4 } totemp
- /CatalogTempEnd exch def /CatalogTempStart exch def
- (Wrote Catalog) now
-
- % Write the first page's objects (part 6).
-
- { writePart6 } totemp
- /FirstPageTempEnd exch def /FirstPageTempStart exch def
- (Wrote first page) now
-
- % Write the non-shared objects for other pages (part 7).
-
- { writePart7 /OtherPageLengths exch def } totemp
- /OtherPageTempEnd exch def /OtherPageTempStart exch def
- (Wrote other pages) now
-
- % Write the shared objects for other pages (part 8).
-
- { writePart8 } totemp
- /SharedTempEnd exch def /SharedTempStart exch def
- (Wrote shared objects) now
-
- % Write the objects not associated with pages (part 9).
-
- { writePart9 } totemp
- /NonPageTempEnd exch def /NonPageTempStart exch def
-
- % Compute conservative lengths of parts 2,3,5,11 of the output.
- % It's OK for these to be too large, but not too small.
-
- % Make dummy XRef entres for LPDict and PHS.
- XRef LPDictN omap 0 put
- XRef PHSN omap 0 put
-
- /HeaderLength { % this is exact
- writePart1 % part 1
- } tolength def
- /CatalogLength % this is exact
- CatalogTempEnd CatalogTempStart sub def % part 4
- /FirstPageLength % this is exact
- FirstPageTempEnd FirstPageTempStart sub def % part 6
- /OtherObjectsLength % this is exact
- NonPageTempEnd OtherPageTempStart sub def % parts 7,8,9
- /ObjectsLength % this is exact
- CatalogLength FirstPageLength add OtherObjectsLength add def
- /XrefLength { % part 11
- % The LPDict must end within the first 1024 bytes,
- % so the start of the FirstPage xref table can't exceed 1024.
- writePart11xref 1024 writePart11rest
- } tolength def
- /NominalFileLength % Make a generous allowance for parts 2,3,5.
- HeaderLength ObjectsLength 3 mul add 10000 add 99999 .max def
- /FirstPageXrefLength { % part 3
- NominalFileLength writePart3
- } tolength def
- /LPDictLength { % part 2
- NominalFileLength dup 2 mul 2 copy add 1 index dup createLPDict writePart2
- } tolength def
-
- % Compute a few additional values from the above.
-
- /XrefBeginLength {
- (xref\n0 ) ows
- OFile FirstPageXN write=
- } tolength def
- HeaderLength LPDictLength add
- /FirstPageXrefStart 1 index def
- FirstPageXrefLength add
- /CatalogStart 1 index def
- CatalogLength add % phsstart
- /PHSStart exch def
-
- % Adjust the object positions ignoring PHS.
- % (Writing the PHS needs these.)
-
- 0 0 CatalogStart CatalogTempStart sub adjustObjectPositions
- % Make a temporary XRef entry for the PHS, for the benefit of omend.
- XRef PHSN omap CatalogStart put
- (Adjusted positions) now
-
- % Construct the hint tables (part 5).
-
- { writePageOffsetHints } totemp
- pop /PHSTempStart exch def
- { writeSharedObjectHints } totemp
- exch PHSTempStart sub PHS /S 3 -1 roll put
- PHSTempStart sub /PHSTempLength exch def
- (Wrote hints) now
-
- % Prepare to read TFile.
- TFile closefile
- /TFile TFileName (r) file def
-
- PHS
- dup /File TFile put
- dup /FilePosition PHSTempStart put
- dup /Length PHSTempLength put
- pop
- /PHSLength { writePart5 } tolength def
-
- % Construct the linearization parameter dictionary (part 2).
-
- PHSStart
- dup PHSLength add % phsend
- /FirstPageStart 1 index def
- dup FirstPageLength add % firstpageend
- dup OtherObjectsLength add
- /XrefStart 1 index def
- XrefBeginLength add % xref0start
- dup XrefBeginLength sub XrefLength add % fileend
- % Because of a bug, Acrobat Reader doesn't recognize any file
- % shorter than 1K as linearized. Patch this here.
- 1024 .max
- /FileLength 1 index def
- createLPDict
-
- % Adjust the object positions again, taking the PHS into account.
-
- PHSStart 0 PHSLength adjustObjectPositions
- (Readjusted positions) now
-
- % Finally, write the output file.
-
- writePart1
- writePart2
- FirstPageXrefStart padto
- XrefStart writePart3
- CatalogStart padto
- CatalogTempStart CatalogTempEnd copyrange % part 4
- writePart5
- FirstPageStart padto
- FirstPageTempStart NonPageTempEnd copyrange % parts 6,7,8,9
- % No Overflow Hint Stream (part 10).
- XrefStart padto
- writePart11xref
- { FirstPageXrefStart writePart11rest } tomemory
- FileLength 1 index length sub padto ows
- (Wrote output file) now
-
- % Wrap up.
-
- TFile closefile TFileName deletefile
- end % temporary dict
- end % IDict
-} bind def
-
-end % pdfoptdict
-.setglobal
-
-% Check for command line arguments.
-[ shellarguments {
- ] dup length 2 eq {
- % Load the pdfwrite utilities if necessary.
- /omapinit where { pop } { (pdfwrite.ps) runlibfile } ifelse
- save exch
- aload pop exch (r) file exch (w) file
- 3000000 setvmthreshold
- pdfoptdict begin pdfOptimize end
- restore
- } {
- (Usage: gs -dNODISPLAY -- pdfopt.ps input.pdf output.pdf) = flush quit
- } ifelse
-} {
- pop
-} ifelse
diff --git a/Master/xemtex/gslib/pdfwrite.ps b/Master/xemtex/gslib/pdfwrite.ps
deleted file mode 100644
index 922bfaafd1a..00000000000
--- a/Master/xemtex/gslib/pdfwrite.ps
+++ /dev/null
@@ -1,284 +0,0 @@
-% Copyright (C) 1999, 2000, 2001 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pdfwrite.ps,v 1.7.2.1.2.1 2003/04/12 14:02:39 giles Exp $
-% Writer for transmuting PDF files.
-
-% NOTES:
-% We do editing by replacing objects (in the cache) and then doing a
-% simple recursive walk with object renumbering.
-% Free variables:
-% RMap [per input file] (dict): input_obj# => output_obj#
-% PDFfile (file): current input file
-% OFile (file): current output file
-% XRef (dict): output_obj# => output_file_pos
-% ToWrite: 0..N-1 => [obj# gen#]
-
-/.setlanguagelevel where { pop 2 .setlanguagelevel } if
-.currentglobal true .setglobal
-
-/PDEBUG where { pop } { /PDEBUG false def } ifelse
-
-% ================ Object mapping ================ %
-
-% Initialize the object number and location map.
-/omapinit { % - omapinit -
- /RMap 100 dict def
- /XRef 100 dict def
- PDEBUG { (omapinit) = } if
-} def
-
-% Map an object number.
-/omapnew { % <oldobj#> omap <newobj#> <isnew>
- RMap 1 index .knownget {
- exch pop false
- } {
- PDEBUG { (omap\() print dup =only } if
- RMap dup length 1 add 2 index exch dup 5 1 roll put pop true
- PDEBUG { (\) = ) print 1 index = } if
- } ifelse
-} def
-/omap { % <oldobj#> omap <newobj#>
- omapnew pop
-} bind def
-
-% Save and restore the object map.
-% Note that currentomap either returns a copy or calls omapinit.
-/currentomap { % <copy> currentomap <omap>
- {
- [RMap dup length dict copy XRef dup length dict copy]
- } {
- [RMap XRef] omapinit
- } ifelse
-} bind def
-/setomap { % <omap> setomap -
- aload pop /XRef exch def /RMap exch def
- PDEBUG {
- (setomap: #Xref = ) print XRef length =only
- (, #RMap = ) print RMap length =
- } if
-} bind def
-
-% ================ Writing ================ %
-
-% ---------------- Low-level output ---------------- %
-
-% Write a string on the output file.
-/ows { % <string> ows -
- OFile exch writestring
-} def
-
-% ---------------- Scalars ---------------- %
-
-% Note that the '#' character isn't legal in a name unless it is a prefix
-% for a hex encoded character (for PDF 1.2 and later). The following assumes
-% that the names are already valid PDF 1.2+ names so that we can treat the
-% '#' as a legal character. The next two hex characters are already in the
-% set of valid name characters. PDF 1.1 and earlier allowed spaces in names
-% which probably wouldn't make it past the tokenizer anyway.
-/pdfnamechars
- (!"#$&'*+,-.0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\\^_`abcdefghijklmnopqrstuvwxyz|~)
-readonly def
-/pdfwritename { % <name> pdfwritename -
- (/) ows .namestring {
- ( ) dup 0 4 -1 roll put
- //pdfnamechars 1 index search {
- pop pop pop
- } {
- pop 0 get 256 add 16 =string cvrs
- dup 0 (#) 0 get put
- } ifelse ows
- } forall
-} def
-
-% ---------------- Composite objects ---------------- %
-
-/pdfwriteprocs mark
- /resolveR { pdfwriteref }
- /O { pdfwritenewref }
-.dicttomark readonly def
-/pdfwritearray { % <array> pdfwritearray -
- dup xcheck {
- aload pop //pdfwriteprocs exch get exec
- } {
- % Because of a bug in Acrobat's parser for linearization parameters,
- % we have to include some whitespace after the opening [ (!).
- ([ ) ows { pdfwritevalue (\n) ows } forall (]) ows
- } ifelse
-} def
-
-/pdfwritedict { % <dict> pdfwritedict -
- dup xcheck {
- pdfwritestream
- } {
- (<<) ows {
- exch pdfwritevalue ( ) ows pdfwritevalue (\n) ows
- } forall (>>) ows
- } ifelse
-} def
-
-% ---------------- References ---------------- %
-
-/pdfwritenewref { % <newobj#> pdfwritenewref -
- OFile exch write=only ( 0 R) ows
-} def
-
-/pdfwriteref { % <obj#> <gen#> pdfwriteref -
- 1 index omapnew {
- ToWrite dup length 5 -2 roll 2 packedarray put
- } {
- exch pop exch pop
- } ifelse
- pdfwritenewref
-} def
-
-/pdfcopystring 200 string def
-/pdfwritestream { % <streamdict> pdfwritestream -
- % Remove File, FilePosition, and StreamKey;
- % optimize by replacing an indirect Length.
- dup dup length dict copy
- % Stack: origdict dict
- dup /File undef dup /FilePosition undef dup /StreamKey undef
- dup /Length get dup oforce ne {
- dup /Length 2 copy oget put
- } if
- exch dup /File get dup 3 -1 roll /FilePosition get setfileposition
- pdfcopystream
-} def
-
-% We put copying the stream contents in separate procedures so that we
-% can replace this function if desired.
-/pdfcopybytes { % <fromfile> <tofile> <length> pdfcopybytes -
- {
- dup 0 eq { exit } if
- //pdfcopystring 0 2 index 2 index length .min getinterval
- 3 index exch readstring 3 1 roll
- 3 index 1 index writestring length sub exch not { exit } if
- } loop pop pop pop
-} def
-/pdfcopystream { % <newstreamdict> <file> pdfcopystream -
- % (file has been positioned)
- 1 index pdfwritevalue (stream\n) ows
- exch /Length get OFile exch pdfcopybytes
- (endstream) ows
-} def
-
-% ---------------- General values/objects ---------------- %
-
-/pdfwritetypes mark
- % Scalars
- /nulltype { pop (null) ows }
- /integertype { =string cvs ows }
- /booleantype 1 index
- /realtype { OFile exch write===only }
- /stringtype 1 index
- /nametype { pdfwritename }
- % Composite/reference objects
- /arraytype { pdfwritearray }
- /packedarraytype 1 index
- /dicttype { pdfwritedict }
-.dicttomark readonly def
-
-/pdfwritevalue { % <obj> pdfwritevalue -
- PDEBUG { (****Writing: ) print dup === flush } if
- //pdfwritetypes 1 index type get exec
-} def
-
-% We make pdfwriteobjdef a separate procedure for external use.
-/pdfwriteobjheader { % <newobj#> pdfwriteobjheader -
- XRef 1 index OFile .fileposition put
- PDEBUG { (XRef\() print dup =only (\) = ) print XRef 1 index get = } if
- OFile exch write=only ( 0 obj\n) ows
-} def
-/pdfwriteobjdef { % <newobj#> <value> pdfwriteobjdef -
- exch pdfwriteobjheader
- pdfwritevalue (\nendobj\n) ows
-} def
-/pdfwriteobj { % <obj#> <gen#> pdfwriteobj -
- 1 index exch resolveR exch omap exch pdfwriteobjdef
-} def
-
-% ---------------- File-level entities ---------------- %
-
-% Write a PDF file header.
-% Free variables: OFile, PDFversion.
-/pdfwriteheader { % - pdfwriteheader -
- (%PDF-) ows OFile PDFversion write=
- (%\347\363\317\323\n) ows
-} bind def
-
-% Write a cross-reference table and trailer.
-/pdfwritexref { % <firstobj#> <#objs> pdfwritexref -
- (xref\n) ows
- OFile 2 index write=only ( ) ows OFile 1 index write=
- 1 index add 1 sub 1 exch {
- dup 0 eq {
- pop (0000000000 65535 f \n) ows
- } {
- XRef exch get 1000000000 add =string cvs
- dup 0 (0) 0 get put
- ows ( 00000 n \n) ows
- } ifelse
- } for
-} bind def
-/pdfwritetrailer { % <trailer> pdfwritetrailer -
- (trailer\n) ows pdfwritevalue (\n) ows
-} bind def
-/pdfwritestartxref { % <startpos> pdfwritestartxref -
- (startxref\n) ows OFile exch write=
- (%%EOF\n) ows
-} bind def
-
-% ================ Top-level control ================ %
-
-/pdfwrite { % <file> <trailer> pdfwrite -
- 10 dict begin
- /trailer exch def
- /OFile exch def
- /ToWrite 100 dict def
- omapinit
-
- % Write the PDF file header.
-
- pdfwriteheader
-
- % Write the objects.
-
- trailer {
- exch pop dup xcheck { % The only executable objects are references.
- aload pop pop pdfwriteobj
- } {
- pop
- } ifelse
- } forall
- % Walk the object graph.
- {
- ToWrite dup length dup 0 eq { pop pop exit } if
- 1 sub 2 copy get 3 1 roll undef aload pop pdfwriteobj
- } loop
-
- % Write the xref table and trailer.
-
- /xref OFile fileposition def
- 0 XRef length 1 add pdfwritexref
- trailer dup length 1 add dict copy
- dup /Size XRef length 1 add put pdfwritetrailer
- xref pdfwritestartxref
-
- end
-} def
-
-.setglobal
diff --git a/Master/xemtex/gslib/pf2afm b/Master/xemtex/gslib/pf2afm
deleted file mode 100644
index 6e36d3e1f61..00000000000
--- a/Master/xemtex/gslib/pf2afm
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-# $Id: pf2afm,v 1.2 2001/02/03 21:31:40 alexcher Exp $
-# Make an AFM file from PFB / PFA and (optionally) PFM files. Usage:
-# pf2afm fontfilename
-# Output goes to fontfilename.afm, which must not already exist.
-# See pf2afm.ps for more details.
-
-exec gs -q -dNODISPLAY -dSAFER -dDELAYSAFER -- pf2afm.ps "$@"
diff --git a/Master/xemtex/gslib/pf2afm.bat b/Master/xemtex/gslib/pf2afm.bat
deleted file mode 100644
index ec03a6ccd20..00000000000
--- a/Master/xemtex/gslib/pf2afm.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-@rem $Id: pf2afm.bat,v 1.3 2001/06/22 16:09:22 lpd Exp $
-@rem Make an AFM file from PFB / PFA and (optionally) PFM files.
-
-if %1/==/ goto usage
-if not %2/==/ goto usage
-call gssetgs.bat
-
-%GSC% -q -dNODISPLAY -dSAFER -dDELAYSAFER -- pf2afm.ps %1
-goto end
-
-:usage
-echo "Usage: pf2afm disk_font_name"
-
-:end
-
-
diff --git a/Master/xemtex/gslib/pf2afm.cmd b/Master/xemtex/gslib/pf2afm.cmd
deleted file mode 100755
index 2165e988d96..00000000000
--- a/Master/xemtex/gslib/pf2afm.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-/* $Id: pf2afm.cmd,v 1.2 2001/02/03 21:31:40 alexcher Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-@gsos2 -q -dNODISPLAY -dSAFER -dDELAYSAFER -- pf2afm.ps %1
diff --git a/Master/xemtex/gslib/pf2afm.ps b/Master/xemtex/gslib/pf2afm.ps
deleted file mode 100644
index 3bc9013f8f7..00000000000
--- a/Master/xemtex/gslib/pf2afm.ps
+++ /dev/null
@@ -1,497 +0,0 @@
-%!
-% This is a PostScript program for making an AFM file from
-% PFB / PFA and (optionally) PFM files.
-%
-% Written in BOP s.c., Gda\'nsk, Poland
-% e-mail contact: B.Jackowski@GUST.ORG.PL
-% version 0.5 (18 XII 1997)
-% version 0.55 (11 III 1998) -- unlimited number of chars in a font
-% version 1.00 (27 III 1998) -- scanning PFM subdirectory added,
-% code improved; version sent to LPD
-% version 1.01 (1 II 2000) -- message changed
-
-% $Id: pf2afm.ps,v 1.3.2.1 2002/04/10 09:22:58 giles Exp $
-
-% Usage:
-% gs [-dNODISPLAY] -- pf2afm.ps disk_font_name
-%
-% The result is written to the file disk_font_name.afm, provided such
-% a file does not exist; otherwise program quits.
-%
-% The font can be either *.pfa or *.pfb; if no extension is supplied,
-% first disk_font_name.pfb is examined, then disk_font_name.pfa.
-% Moreover, if there is a *.pfm file in the same directory or in the
-% subdirectory PFM, i.e., disk_font_name.pfm or PFM/disk_font_name.pfm,
-% kern pairs from it are extracted, as well as additional font
-% parameters, usually absent from Type 1 fonts.
-
-% Tribute:
-% The program is based on James Clark's <jjc@jclark.uucp> printafm.ps
-% (with alterations by d.love@dl.ac.uk and L. Peter Deutsch) from
-% Ghostscript 5.10 distribution.
-
-/onechar 1 string def
-/edef {exch def} def
-
-% charnumber print-charname -
-% prints the name of the encoded character
-/print-charname {
- PFBencoding exch get =string cvs dup
- (.notdef) eq {
- /was.notdef true def
- } if
- print.to.ofi ( ) print.to.ofi
-} def
-
-/printquit {print flush quit} def
-
-% redirecting GS output to ``ofi'' file
-/eolch (\r\n) def
-/=only.to.ofi {ofi exch write=only} def % replaces GS's `=only'
-/print.to.ofi {ofi exch writestring} def % replaces `print'
-/=to.ofi { =only.to.ofi eolch print.to.ofi } def % replaces `='
-
-% read and skip: byte, short, word, double and long
-/readb-p {currPFMfile read not {(Unexpected EOF) printquit} if} def
-/readw-p {readb-p readb-p 256 mul add} def
-/reads-p {readw-p dup 32768 ge {65536 sub} if} def
-/readd-p {readb-p readb-p readb-p readb-p 256 mul add 256 mul add 256 mul add} def
-/readl-p /readd-p load def % double word is, in fact, long integer in GS
-/skipb-p {readb-p pop} def
-/skipw-p {skipb-p skipb-p} def
-/skips-p /skipw-p load def
-/skipd-p {skipb-p skipb-p skipb-p skipb-p} def
-/skipl-p /skipd-p load def
-/skipa-p { {skipb-p} repeat} def
-
-% PFMfile readPFMheader -
-% defines currPFMfile, PFMExtMetricOffset, PFMPairKernTableOffset
-
-/readPFMheader {
- currPFMfile bytesavailable
- % ---------------
- % PFM MAIN HEADER
- % ---------------
- skipw-p % PFM: version
- readd-p % PFM: size (size is dword, not word as the documentation says)
- ne {(Wrong file size) printquit} if
- 60 skipa-p % PFM: copyright
- skipw-p % PFM: Type
- skipw-p % PFM: Points
- skipw-p % PFM: VertRes
- skipw-p % PFM: HorizRes
- skipw-p % PFM: Ascent
- skipw-p % PFM: InternalLeading
- skipw-p % PFM: ExternalLeading
- skipb-p % PFM: Italic
- skipb-p % PFM: Underline
- skipb-p % PFM: Stikeout
- skipw-p % PFM: Weight
- skipb-p % PFM: CharSet
- skipw-p % PFM: PixWidth
- skipw-p % PFM: PixHeight
- skipb-p % PFM: PitchAndFamily
- skipw-p % PFM: AvgWidth
- skipw-p % PFM: MaxWidth
- skipb-p % PFM: FirstChar
- skipb-p % PFM: LastChar
- skipb-p % PFM: DefaultChar
- skipb-p % PFM: BreakChar
- skipw-p % PFM: WidthBytes
- skipd-p % PFM: Device
- skipd-p % PFM: Face
- skipd-p % PFM: BitsPointer
- skipd-p % PFM: BitsOffset
- % here we assume that it is a PostScript font, i.e., it always uses
- % the extended width table, therefore the normal width table is empty
- % -------------
- % PFM EXTENSION
- % -------------
- skipw-p % PFMEX: SizeFields
- readd-p % PFMEX: ExtMetricOffset
- /PFMExtMetricOffset edef
- skipd-p % PFMEX: ExtentTable
- skipd-p % PFMEX: OriginTable
- readd-p % PFMEX: PairKernTable
- /PFMPairKernTableOffset edef
- skipd-p % PFMEX: TrackKernTable
- skipd-p % PFMEX: DriverInfo
- skipd-p % PFMEX: Reserved
-} def
-
-% requires that currPFMfile, PFMExtMetricOffset are defined
-% readPFMExtMetric -
-% defines PFMNumberofKernPairs
-
-/readPFMExtMetric {
- currPFMfile PFMExtMetricOffset setfileposition
- skips-p % EXTT: Size
- skips-p % EXTT: PointSize
- skips-p % EXTT: Orientation
- skips-p % EXTT: MasterHeight
- skips-p % EXTT: MinScale
- skips-p % EXTT: MaxScale
- skips-p % EXTT: MasterUnit
- reads-p % EXTT: CapHeight
- /PFMCapHeight edef
- reads-p % EXTT: XHeight
- /PFMXHeight edef
- reads-p % EXTT: LowerCaseAscent
- /PFMLowerCaseAscent edef
- reads-p % EXTT: LowerCaseDescent
- neg /PFMLowerCaseDescent edef
- skips-p % EXTT: Slant
- skips-p % EXTT: SuperScript
- skips-p % EXTT: SubScript
- skips-p % EXTT: SuperScriptSize
- skips-p % EXTT: SubScriptSize
- skips-p % EXTT: UnderlineOffset
- skips-p % EXTT: UnderlineWidth
- skips-p % EXTT: DoubleUpperUnderlineOffset
- skips-p % EXTT: DoubleLowerUnderlineOffset
- skips-p % EXTT: DoubleUpperUnderlineWidth
- skips-p % EXTT: DoubleLowerUnderlineWidth
- skips-p % EXTT: StrikeOutOffset
- skips-p % EXTT: StrikeOutWidth
- readw-p % EXTT: KernPairs
- /PFMNumberofKernPairs edef
- skipw-p % EXTT: KernTracks
-} def
-
-% requires that currPFMfile, PFMPairKernTableOffset, PFMNumberofKernPairs are defined
-% readPFMExtMetric -
-% prints kern pairs table in the AFM format
-
-/readPFMKernPairs {
- currPFMfile () ne {
- PFMdict begin
- PFMPairKernTableOffset 0 ne {
- currPFMfile PFMPairKernTableOffset setfileposition
- readw-p % undocumented kern count (although all remaining structures are
- % explicitly preceded by their sizes); if it were a stable
- % feature, EXTTEXTMETRICS could be skipped
- PFMNumberofKernPairs
-% 2 copy = =
- ne {
- (Inconsistent number of kern pairs) printquit
- } if
- (StartKernData) =to.ofi
- (StartKernPairs ) print.to.ofi
- PFMNumberofKernPairs =to.ofi
- % ---------
- % MAIN LOOP
- % ---------
- /was.notdef false def
- PFMNumberofKernPairs {
- (KPX ) print.to.ofi
- readb-p % first char
- print-charname
- readb-p % second char
- print-charname
- reads-p % kern amount
- =to.ofi
- } repeat
- was.notdef {
- (.notdef character ocurred among kern pairs) =
- (you'd better check the resulting AFM file.) =
- } if
- (EndKernPairs) =to.ofi
- (EndKernData) =to.ofi
- } if
- end
- } if
-} def
-
-% alias (for ``compatibility'' with J. Clark):
-/printkernpairs /readPFMKernPairs load def
-
-% printcharmetrics -
-
-/printcharmetrics {
- (StartCharMetrics ) print.to.ofi
- /PFBencoding currfont /Encoding get dup length array copy def
- /PFBcharstrings currfont /CharStrings get def
- PFBcharstrings length
- PFBcharstrings /.notdef known { 1 sub } if =to.ofi
- currfont 1000 scalefont setfont
- % checking Encoding array and CharStrings dictionary for
- % the consistency of names
- /was.inconsitent false def
- 0 1 255 {
- dup PFBencoding exch get
- PFBcharstrings exch known {
- pop
- }{
-% dup PFBencoding exch get =
- PFBencoding exch /.notdef put % fix Encoding array
- /was.inconsitent true def
- } ifelse
- } for
- was.inconsitent {
- (Encoding array contains name(s) absent from CharStrings dictionary) =
- } if
- % print metric data for each character in PFB encoding vector
- 0 1 255 {
- dup PFBencoding exch get
- dup /.notdef ne {
- exch dup printmetric
- }{
- pop pop
- } ifelse
- } for
- % xPFBencoding contains an entry for each name in the original
- % encoding vector
- /xPFBencoding PFBcharstrings length dict def
- PFBencoding {
- xPFBencoding exch true put
- } forall
-
- /fontiter 0 def
- /TMPFontTemplate (TMP_FONT#000) def
- {
- % NewPFBencoding is the new encoding vector
- /NewPFBencoding 256 array def
- 0 1 255 {
- NewPFBencoding exch /.notdef put
- } for
- % fill up NewPFBencoding with names from CharStrings dictionary that
- % are not encoded so far
- /i 0 def
- PFBcharstrings {
- pop
- i 255 le {
- dup xPFBencoding exch known not {
- dup xPFBencoding exch true put
- NewPFBencoding i 3 -1 roll put
- /i i 1 add def
- }{
- pop
- } ifelse
- }{
- pop exit
- } ifelse
- } forall
- i 0 eq {exit} if
- % define a new font with NewPFBencoding as its encoding vector
- currfont maxlength dict /NewTMPfont edef
- currfont {
- exch dup dup /FID ne exch /Encoding ne and {
- exch NewTMPfont 3 1 roll put
- }{
- pop pop
- } ifelse
- } forall
- % compute a unique name for a font to be registered
- /fontiter fontiter 1 add def
- TMPFontTemplate fontiter (000) cvs
- dup length TMPFontTemplate length exch sub exch putinterval
- /TMPFontName TMPFontTemplate cvn def
- NewTMPfont /FontName TMPFontName put
- NewTMPfont /Encoding NewPFBencoding put
- % make this new font the current font
- TMPFontName NewTMPfont definefont 1000 scalefont setfont
- % print metric data for each character in the newly created encoding vector
- 0 1 255 {
- dup NewPFBencoding exch get
- dup /.notdef ne {
- exch -1 printmetric
- }{
- pop pop exit
- } ifelse
- } for
- i 255 lt {exit} if
- } loop
- (EndCharMetrics) =to.ofi
-} def
-
-% name actual_code normal_code printmetric -
-
-/printmetric {
- (C ) print.to.ofi =only.to.ofi
- ( ; WX ) print.to.ofi
- onechar 0 3 -1 roll put
- onechar stringwidth pop round cvi =only.to.ofi
- ( ; N ) print.to.ofi =only.to.ofi
- ( ; B ) print.to.ofi
- newpath 0 0 moveto
- onechar false charpath flattenpath pathbbox
- newpath
- round cvi /ury edef round cvi /urx edef
- round cvi /lly edef round cvi /llx edef
- ury lly eq {/ury 0 def /lly 0 def} if % normalize degenrated BB
- urx llx eq {/urx 0 def /llx 0 def} if %
- llx =only.to.ofi ( ) print.to.ofi lly =only.to.ofi ( ) print.to.ofi
- urx =only.to.ofi ( ) print.to.ofi ury =only.to.ofi ( ) print.to.ofi
- (;) =to.ofi
-} def
-
-/printinfoitem {
- 3 1 roll 2 copy known {
- get =string cvs exch
- print.to.ofi ( ) print.to.ofi =to.ofi
- }{
- pop pop pop
- } ifelse
-} def
-
-/printfontinfo {
- (Comment AFM Generated by Ghostscript/pf2afm) =to.ofi
- currfont /FontName (FontName) printinfoitem
- %
- currfont /FontInfo get
- dup /FullName (FullName) printinfoitem
- dup /FamilyName (FamilyName) printinfoitem
- dup /Weight (Weight) printinfoitem
- dup /Notice (Notice) printinfoitem
- dup /ItalicAngle (ItalicAngle) printinfoitem
- dup /isFixedPitch (IsFixedPitch) printinfoitem
- dup /UnderlinePosition (UnderlinePosition) printinfoitem
- dup /UnderlineThickness (UnderlineThickness) printinfoitem
- /version (Version) printinfoitem
- %
- (EncodingScheme FontSpecific) =to.ofi
- %
- (FontBBox) print.to.ofi
- currfont /FontBBox get {
- ( ) print.to.ofi round cvi =only.to.ofi
- } forall
- eolch print.to.ofi
- %
- currPFMfile () ne {
- PFMdict
- dup /PFMCapHeight (CapHeight) printinfoitem
- dup /PFMXHeight (XHeight) printinfoitem
- dup /PFMLowerCaseDescent (Descender) printinfoitem
- /PFMLowerCaseAscent (Ascender) printinfoitem
- } if
-} def
-
-/readPFBfile {
- % make a shot of the actual font directory:
- /oldFontDirectory FontDirectory dup length dict copy def
- isPFB {% defined in `makeafm'
- (r) file true /PFBDecode filter cvx % true is better (see gs_type1.ps)
- mark exch exec
- }{
- (r) file mark exch run
- } ifelse
- cleartomark
- % make a shot of the updated font directory:
- /newFontDirectory FontDirectory dup length dict copy def
- % spot the added font:
- oldFontDirectory {pop newFontDirectory exch undef} forall
- newFontDirectory length 1 ne {
- newFontDirectory length =
- (Weird PFB file?) printquit
- } if
- newFontDirectory {pop} forall
- findfont /currfont edef
-} def
-
-/readPFMfile {
- dup () ne {
- (r) file /currPFMfile edef
- 10 dict dup /PFMdict edef begin
- readPFMheader
- readPFMExtMetric
- end
- }{
- pop /currPFMfile () def
- } ifelse
-} def
-
-% pfmfilename pf[ba]filename filetype printafm -
-% where filetype=(a) or (b)
-
-/printafm {
- readPFBfile
- readPFMfile
- (StartFontMetrics 2.0) =to.ofi
- printfontinfo
- printcharmetrics
- printkernpairs
- (EndFontMetrics) =to.ofi
-} def
-
-% pf[ba]filename makeafm -
-
-/makeafm {
- count 0 eq {(Missing font file name) printquit} if
- /ifn edef
- ifn length 0 eq {(Empty font file name) printquit} if
-% the following piece of the code does, in fact, the job of a system shell,
-% i.e., it analyses the supplied names, appends extensions if needed,
-% and check files:
- /pfbn () def /pfan () def /pfmn () def % initialisation
- ifn (.pfb) search {
- 3 -1 roll length 0 eq {% file name extension = ".pfb"
- ifn dup length string copy /pfbn edef
- /ifn edef
- }{pop} ifelse
- } if pop
- ifn (.pfa) search {
- 3 -1 roll length 0 eq {% file name extension = ".pfa"
- ifn dup length string copy /pfan edef
- /ifn edef
- }{pop} ifelse
- } if pop
- pfbn () eq pfan () eq and dup {% no extension was supplied, try ".pfb"
- /pfbn ifn (.pfb) concatstrings def
- } if
- pfbn () ne {% check whether "filename.pfb" exists
- pfbn status {pop pop pop pop /isPFB true def}{/pfbn () def} ifelse
- } if
- pfbn () eq and {% checking "filename.pfb" unsuccessful, try ".pfa"
- /pfan ifn (.pfa) concatstrings def
- } if
- pfan () ne {% check whether "filename.pfa" exists
- pfan status {pop pop pop pop /isPFB false def}{/pfan () def} ifelse
- } if
-
- pfbn () eq pfan () eq and {
- (Neither pfa nor pfb found) printquit
- } if
-
- /ofn ifn (.afm) concatstrings def
- ofn status {
- pop pop pop pop (Resulting file exists) printquit
- } if
- /ofi ofn (w) file def
- //systemdict /.setsafe known { .setsafe } if
-
- /pfmn ifn (.pfm) concatstrings def
- pfmn status {
- pop pop pop pop
- }{
- () pfmn {
- (/) search {
- 4 -1 roll exch concatstrings exch concatstrings exch
- }{
- exit
- } ifelse
- } loop
- (pfm/) exch concatstrings concatstrings
- dup status {
- pop pop pop pop /pfmn edef
- }{
- pop /pfmn () def (pfm file not found -- ignored) print
- } ifelse
- } ifelse
-
- pfmn
- isPFB {pfbn}{pfan} ifelse
- printafm
-
-} def
-
-% Check for command line arguments.
-[ shellarguments
- { ] dup length 1 eq {
- 0 get makeafm
- }{
- (This is PF2AFM -- AFM generator \(ver. 1.00\)\n)
- (Usage: gs [-dNODISPLAY] -- pf2afm.ps disk_font_name\n) printquit
- } ifelse
- }
- {pop}
-ifelse
diff --git a/Master/xemtex/gslib/pfbtopfa b/Master/xemtex/gslib/pfbtopfa
deleted file mode 100644
index 1e914fb53fd..00000000000
--- a/Master/xemtex/gslib/pfbtopfa
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-# $Id: pfbtopfa,v 1.3 2001/06/22 16:09:22 lpd Exp $
-# Convert .pfb fonts to .pfa format
-
-if [ $# -eq 2 ]
-then
- outfile=$2
-elif [ $# -eq 1 ]
-then
- outfile=`basename "$1" \.pfb`.pfa
-else
- echo "Usage: `basename $0` input.pfb [output.pfa]" 1>&2
- exit 1
-fi
-
-exec gs -q -dNODISPLAY -- pfbtopfa.ps "$1" "$outfile"
diff --git a/Master/xemtex/gslib/pfbtopfa.ps b/Master/xemtex/gslib/pfbtopfa.ps
deleted file mode 100644
index 886d9eef471..00000000000
--- a/Master/xemtex/gslib/pfbtopfa.ps
+++ /dev/null
@@ -1,35 +0,0 @@
-% Copyright (C) 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pfbtopfa.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% pfbtopfa.ps
-% Convert a .pfb font to .pfa format.
-
-[ shellarguments {
- counttomark 2 eq {
- /pfa exch def /pfb exch def pop
- /in1 pfb (r) file def
- /in in1 true /PFBDecode filter def
- /out pfa (w) file def
- { in read not { exit } if out exch write } loop
- out closefile in closefile in1 closefile
- quit
- } {
- cleartomark (Usage: pfbtopfa input.pfb output.pfa) = flush
- } ifelse
-} {
- pop
-} ifelse
diff --git a/Master/xemtex/gslib/pftogsf.bat b/Master/xemtex/gslib/pftogsf.bat
deleted file mode 100644
index 3808852cacd..00000000000
--- a/Master/xemtex/gslib/pftogsf.bat
+++ /dev/null
@@ -1,20 +0,0 @@
-@echo off
-@rem $Id: pftogsf.bat,v 1.2 2000/05/20 20:53:05 lpd Exp $
-
-rem ******************************
-rem * Convert .pf? files to .gsf *
-rem ******************************
-
-call gssetgs.bat
-echo (wrfont.ps) run (unprot.ps) run unprot >_temp_.ps
-echo systemdict /definefont. /definefont load put >>_temp_.ps
-echo systemdict /definefont { userdict /LFN 3 index put definefont. } bind put >>_temp_.ps
-echo ARGUMENTS 0 get (r) file .loadfont LFN findfont setfont prunefont reprot >>_temp_.ps
-echo ARGUMENTS 1 get (w) file dup writefont closefile quit >>_temp_.ps
-rem for %%f in (cyr cyri) do %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps fonts\pfa\%%f.pfa fonts\%%f.gsf
-rem for %%f in (ncrr ncrb ncrri ncrbi) do %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps fonts\pfa\%%f.pfa fonts\%%f.gsf
-rem for %%f in (bchr bchb bchri bchbi) do %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps fonts\pfa\%%f.pfa fonts\%%f.gsf
-rem for %%f in (putr putb putri putbi) do %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps fonts\pfa\%%f.pfa fonts\%%f.gsf
-rem for %%f in (n019003l n021003l u003043t u004006t) do %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps fonts\%%f.gsf %%f.gsf
-for %%f in (hig_____ kak_____) do %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps fonts\pfb\%%f.pfb %%f.gsf
-rem %GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- _temp_.ps allfonts\baxter.pfb baxter.gsf
diff --git a/Master/xemtex/gslib/pj-gs.sh b/Master/xemtex/gslib/pj-gs.sh
deleted file mode 100644
index 7f8eaa78c85..00000000000
--- a/Master/xemtex/gslib/pj-gs.sh
+++ /dev/null
@@ -1,289 +0,0 @@
-#!/bin/sh
-# $Id: pj-gs.sh,v 1.1 2000/03/09 08:40:40 lpd Exp $
-
-# PaintJet driver script for Ghostscript,
-# created by Philippe-Andre Prindeville <philipp@res.enst.fr>
-
-# PCL level 1 interface
-#
-#=======================================================================#
-# OPTIONS RECOGNIZED: ( all may be preceded with a "-" ) #
-# NOTE: Options marked with a "*" before their descriptions #
-# are provided for backward compatibility with the #
-# former hp2225a, hp2227a and hp3630a printer models - #
-# these models have become links to this model. Consult #
-# your printer reference manual to determine which #
-# options are valid for your particular printer. #
-# #
-# Horizontal Pitch Selection: #
-# c compressed print mode #
-# e * expanded print pitch #
-# 10 * 10 cpi (Pica print pitch) #
-# (expanded compressed on thinkjet and quietjet)#
-# 12 * 12 cpi (Elite print pitch) #
-# #
-# Print Quality Selection #
-# q | lq * near letter quality #
-# #
-# Font Selection #
-# b | bold * set font stroke weight to bold #
-# #
-# Output filtering: (Default Cooked) #
-# r | raw raw mode for plotting mode etc. #
-# #
-# Other: #
-# nb do not output banner page (to save paper) #
-# #
-# NOTE: * = NOT OFFICIAL PCL LEVEL 1 OPTIONS, USE OF #
-# THESE OPTIONS MAY OR MAY NOT PRODUCE #
-# DESIRED RESULTS. #
-#=======================================================================#
-
-PATH="/bin:/usr/bin:/usr/lib:/usr/local/bin"
-export PATH
-
-# set up redirection of stderr
-log=/usr/spool/lp/log
-exec 2>>$log
-
-# sec_class=`getconf SECURITY_CLASS`
-sec_class=
-if [ $? -ne 0 ]
-then
- echo "getconf SECURITY_CLASS failed"
-fi
-
-# Save the arguments to the model
-printer=`basename $0`
-
-if [ "$sec_class" = "2" ] # B1 Trusted System
-then
- reqid=$1
- user=$2
- dev=$3
- title=$4
- copies=$5
- options=$6
-else
- reqid=$1
- user=$2
- title=$3
- copies=$4
- options=$5
-fi
-
-
-# Definitions of functions used within this script
-do_banner()
-{
- # Print the standard header
- x="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- echo "$x\n$x\n$x\n$x\n"
- banner `echo $user`
- echo "\n"
- user=`pwget -n $user | line | cut -d: -f5`
- if [ -n "$user" ]
- then
- echo "User: $user\n"
- else
- echo "\n"
- fi
- echo "Request id: $reqid Printer: `basename $0`\n"
- date
- echo "\n"
- if [ -n "$title" ]
- then
- banner "$title"
- fi
- echo "\014\r\c"
-}
-
-# Set up interface
-if [ -t 1 ]
-then
- stty 9600 opost onlcr -parenb cs8 ixon -istrip clocal tab3 <&1 2>/dev/null
-else
- slp -n -k 2>/dev/null
-fi
-
-# Handle disable and cancel traps.
-trap "echo 'Terminated: $reqid' >> $log; trap 15; kill -15 0; exit 0 " 15
-
-# Set up printer default modes
-echo "\033&k0S\c" # reset pitches
-echo "\033(s0B\033)s0B\c" # reset stroke weights
-echo "\033&d@\c" # disable auto-underline
-echo "\033&l6D\c" # reset to 6 lpi
-echo "\033(s0Q\c" # reset print quality
-echo "\033&v0S\c" # reset color
-echo "\033&k2G\c" # Set line termination mode
-
-
-# Determine which options have been invoked
-pitch="def"
-weight="def"
-quality="def"
-# outputmode="cooked"
-outputmode="raw"
-# banner="yes"
-banner=
-
-for i in $options
-do
- case "$i" in
- -c | c) # compressed print
- pitch="c";;
-
- -e | e) # expanded print
- pitch="e";;
-
- -10 | 10) # pitch set to 10 cpi
- pitch="10";;
-
- -12 | 12) # pitch set to 12 cpi
- pitch="12";;
-
- -q | q | -lq | lq) # near letter quality
- quality=1;;
-
- -b | b | -bold | bold) # set font weight to bold
- weight=1;;
-
- r | raw) # raw mode for binary output to printer
- outputmode="raw";;
-
- -nb | nb) # do not output banner page
- banner="";;
-
- esac
-done
-
-shift; shift; shift; shift; shift
-
-if [ "$sec_class" = "2" ] # B1 Trusted System
-then
- shift
- files="$*"
- Nofilter= Nolabel=
- set -- `getopt fl $options`
- if [ $? != 0 ]
- then
- exit 2
- fi
-
- for opt in $*
- do
- shift
- case $opt in
- -f) Nofilter=$opt ;;
- -l) Nolabel=$opt ;;
- --) break ;;
- esac
- done
-
- # Print the sensitivity label of the process
- echo "$x\n$x\n"
- /usr/lib/lpbanner -j $reqid -t "$title" -u $user -p PCL1 -n $printer -d $dev $files
- echo "\n$x\n$x"
-
-else
- # Assume that the rest of the arguments are files
- files="$*"
- # print the banner if nb option not specified
- if [ -n "$banner" ]
- then
- do_banner
- fi
-fi
-
-# Print the spooled files
-i=1
-while [ $i -le $copies ]
-do
- for file in $files
- do
-
- # If raw mode, turn off output processing,
- # set for no tab expansion
- # If cooked mode, uncomment the cooked case if it is
- # desired not to print on the page perforations
- case "$outputmode" in
- raw) if [ -t 1 ]
- then
- stty raw 9600 -opost -parenb cs8 ixon -istrip clocal tab0 <&1 2>/dev/null
- else
- slp -r 2>/dev/null
- fi
- echo "\033&k0G";; # Reset line termination mode
- # cooked) echo "\033&l1L\r\c";;
- esac
-
- case "$pitch" in
- def);;
- c) echo "\033&k2S\r\c";;
- e) echo "\033&k1S\r\c";;
- 10) echo "\033&k3S\r\c";;
- 12) echo "\033&k0S\r\c"
- echo "\033&k4S\r\c";;
- esac
-
- case "$quality" in
- def);;
- *) echo "\033(s${quality}Q\r\c";;
- esac
-
- case "$weight" in
- def) echo "\033(s0B\033)s0B\r\c";;
- *) echo "\033(s${weight}B\r\c";;
- esac
-
- if [ "$sec_class" = "2" ] # B1 Trusted System
- then
- /usr/lib/lprcat $Nofilter $Nolabel $file PCL1 $user $dev
- else
- type=`file $file | sed 's/^[^:]*..//'`
- case "$type" in
- postscript*)
-#
-# We could do the following, but this would leave gs with a rather large
-# image in memory for (possibly) several minutes. Better to use and
-# intermediate file, since cat is "lightweight"...
-#
-# gs -q -sDEVICE=paintjet -r180 -sOutputFile=- -dDISKFONTS -dNOPAUSE - < $file 2>/tmp/sh$$
-
- gs -q -sDEVICE=paintjet -r180 -sOutputFile=/tmp/pj$$ -dDISKFONTS -dNOPAUSE - < $file 1>2
- cat /tmp/pj$$
- rm /tmp/pj$$
- needff=
- ;;
- *) cat "$file" 2>/tmp/sh$$
- needff=1
- ;;
- esac
-
- if [ -s /tmp/sh$$ ]
- then
-# cat /tmp/sh$$ # output any errors
- cat /tmp/sh$$ 1>2 # output any errors
- fi
- rm -f /tmp/sh$$
- if [ $needff ]; then echo "\014\r\c"; fi
- fi
-
- echo "\033&k0S\r\c" # reset pitches
- echo "\033(s0B\033)s0B\r\c" # reset stroke weights
- echo "\033&d@\r\c" # disable auto-underline
- echo "\033&l6D\r\c" # reset to 6 lpi
- echo "\033(s0Q\c" # reset print quality
- echo "\033&v0S\c" # reset color
- done
- i=`expr $i + 1`
- done
-
-# Insure all buffers are flushed to printer
-if [ -t 1 ]
-then
- stty 9600 opost onlcr -parenb cs8 ixon -istrip clocal tab3 <&1 2>/dev/null
-fi
-
-exit 0
diff --git a/Master/xemtex/gslib/ppath.ps b/Master/xemtex/gslib/ppath.ps
deleted file mode 100644
index 8c2b596da95..00000000000
--- a/Master/xemtex/gslib/ppath.ps
+++ /dev/null
@@ -1,55 +0,0 @@
-% Copyright (C) 1989, 1995, 1997 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: ppath.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% Redefine pathforall for tracing.
-% Can't be used recursively.
-
-/# {( )print} def
-
-/-mat matrix def
-/-imat matrix def
-/-smat { //-mat currentmatrix pop //-imat setmatrix } bind def
-/-rmat { //-mat setmatrix } bind def
-/-pathforall /pathforall load def
-/-p2 { ( ) print exch =only ( ) print =only } bind def
-/-dp2 { 2 copy -p2 2 { exch 4096 mul dup cvi dup ( ) print =only sub dup 0 eq { pop } { (+) print =only } ifelse } repeat } bind def
-/-tp2 { //-mat itransform -p2 } bind def
-/-dict 5 dict def
-
-/pathforall
- { -dict begin
- /-close exch def /-curve exch def /-line exch def /-move exch def
- end -smat -mat ==only ( setmatrix) =
- {2 copy -tp2 ( moveto\t%)print
- 2 copy -dp2 (\n)print
- flush -dict /-move get -rmat exec -smat}
- {2 copy -tp2 ( lineto\t%)print
- 2 copy -dp2 (\n)print
- flush -dict /-line get -rmat exec -smat}
- {5 index 5 index -tp2 3 index 3 index -tp2 2 copy -tp2 ( curveto\t%)print
- 5 index 5 index -dp2 3 index 3 index -dp2 2 copy -dp2 (\n)print
- flush -dict /-curve get -rmat exec -smat}
- {(closepath\n)print flush -dict /-close get -rmat exec -smat}
- -pathforall -rmat
- }
-def
-
-% Just print the current path
-
-/printpath {
- {pop pop} {pop pop} {pop pop pop pop pop pop} {} pathforall
-} def
diff --git a/Master/xemtex/gslib/pphs b/Master/xemtex/gslib/pphs
deleted file mode 100644
index 03fc797ec63..00000000000
--- a/Master/xemtex/gslib/pphs
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-# $Id: pphs,v 1.1 2001/07/15 16:25:02 lpd Exp $
-# Print the Primary Hint Stream from a linearized PDF file. Usage:
-# pphs filename.pdf
-# Output goes to stdout.
-
-exec gs -q -dNODISPLAY -- pphs.ps "$@"
diff --git a/Master/xemtex/gslib/pphs.ps b/Master/xemtex/gslib/pphs.ps
deleted file mode 100644
index 5b841f744fb..00000000000
--- a/Master/xemtex/gslib/pphs.ps
+++ /dev/null
@@ -1,222 +0,0 @@
-% Copyright (C) 2001 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: pphs.ps,v 1.3.2.1.2.1 2003/04/12 14:02:39 giles Exp $
-% Print Linearized PDF hint streams
-
-% Utilities
-/read1 { % <file> read1 <value>
- read not {
- (**** Unexpected EOF) = flush quit
- } if
-} bind def
-/read2 { % <file> read2 <value>
- dup read1 8 bitshift exch read1 add
-} bind def
-/read4 { % <file> read4 <value>
- dup read2 16 bitshift exch read2 add
-} bind def
-% Free variables: Bits, Bitsleft
-/readninit { % - <readninit> -
- /Bits 0 def
- /Bitsleft 0 def
-} bind def
-
-/pdftoken { % <file> pdftoken <token>
- dup token pop
- dup type /nametype eq 1 index xcheck and {
- dup dup (<<) cvn eq exch ([) eq or {
- exec exch {
- dup pdftoken dup dup (>>) cvn eq exch (]) eq or {
- exch pop exec exit
- } if exch
- } loop
- } {
- exch pop
- } ifelse
- } {
- exch pop
- } ifelse
-} bind def
-/makemask { % <nbits> makemask <mask>
- 1 exch bitshift 1 sub
-} bind def
-/readn { % <file> <nbits> readn <value>
- dup Bitsleft le {
- exch pop
- /Bitsleft Bitsleft 2 index sub def
- makemask Bits Bitsleft neg bitshift and
- } {
- Bitsleft makemask Bits and
- exch Bitsleft sub exch 1 index bitshift 3 1 roll
- /Bits 2 index read1 def /Bitsleft 8 def
- readn add
- } ifelse
-} bind def
-/sread { % <string> sread <file>
- 0 () /SubFileDecode filter
-} bind def
-
-/ptag { % <pre-tag> <proc> <post-tag> ptag -
- 3 -1 roll print (: ) print
- exch exec
- ( % ) print =
-} bind def
-
-% Print the linearization parameters dictionary.
-/plpkeys <<
- /E (end of p. 1 objects)
- /L (total file length)
- /H (PHS start + length)
- /N (# of pages)
- /O (p. 1 object #)
- /T (offset of first main xref entry)
->> def
-/plpdict { % <dict> plpdict -
- (<<) = plpkeys {
- 2 index 2 index .knownget {
- % Stack: dict key label value
- ( ) print 3 -1 roll ===only ( ) print ===only
- ( % ) print =
- } {
- pop pop
- } ifelse
- } forall {
- plpkeys 2 index known {
- pop pop
- } {
- ( ) print exch ===only ( ) print ===
- } ifelse
- } forall (>>) =
-} bind def
-
-% Print the Page Offset Hint Table.
-/ppoht { % <npages> <file> ppoht -
-
- 20 dict begin
- /f exch def
- /npages exch def
- readninit
-
- (1) { f read4 =only } (least # objs/page) ptag
- (2) { f read4 =only } (offset of p. 1 object (+PHS length if beyond PHS)) ptag
- (3) { f read2 dup =only /nb3 exch def } (# bits for # objs/page delta) ptag
- (4) { f read4 =only } (least # bytes/page) ptag
- (5) { f read2 dup =only /nb5 exch def } (# bits for # bytes/page delta) ptag
- (6) { f read4 =only } (least content stream offset-in-page) ptag
- (7) { f read2 dup =only /nb7 exch def } (# bits for content stream offset delta) ptag
- (8) { f read4 =only } (least content stream length) ptag
- (9) { f read2 dup =only /nb9 exch def } (# bits for content stream length delta) ptag
- (10) { f read2 dup =only /nb10 exch def } (# bits for # of shared obj refs) ptag
- (11) { f read2 dup =only /nb11 exch def } (# bits for shared obj indices) ptag
- (12) { f read2 dup =only /nb12 exch def } (# bits for shared obj ref pos numerators) ptag
- (13) { f read2 =only } (shared obj ref pos denominator) ptag
-
- (*1) { [ npages { f nb3 readn } repeat ] ==only } (# objs/page deltas (see 1,3)) ptag
- (*2) { [ npages { f nb5 readn } repeat ] ==only } (# bytes/page deltas (see 4,5)) ptag
- (*3) { [ npages { f nb10 readn } repeat ] dup ==only /nso exch def } (# of shared obj refs (see 10)) ptag
- (*4) { [ nso { [ exch { f nb11 readn } repeat ] } forall ] ==only } (shared obj indices (see 11)) ptag
- (*5) { [ nso { [ exch { f nb12 readn } repeat ] } forall ] ==only } (shared obj ref pos numerators (see 12)) ptag
- (*6) { [ npages { f nb7 readn } repeat ] ==only } (content stream offset-in-page deltas (see 6,7)) ptag
- (*7) { [ npages { f nb9 readn } repeat ] ==only } (content stream length deltas (see 8,9)) ptag
-
- end % temp dict
-
-} bind def
-
-% Print the Shared Objects Hint Table.
-/psoht { % <file> psoht -
-
- 20 dict begin
- /f exch def
- readninit
-
- (1) { f read4 =only } (first shared obj #) ptag
- (2) { f read4 =only } (first shared obj offset (+PHS length if beyond PHS)) ptag
- (3) { f read4 dup =only /n3 exch def } (# of p. 1 shared objs) ptag
- (4) { f read4 dup =only /n4 exch def } (total # of shared objs) ptag
- (5) { f read2 dup =only /nb5 exch def } (# bits for # of shared objs/group) ptag
- (6) { f read4 =only } (least shared obj group length) ptag
- (7) { f read2 dup =only /nb7 exch def } (# bits for shared obj group length delta) ptag
-
- /nse n4 def
- (*1) { [ nse { f nb7 readn } repeat ] ==only } (shared obj group length deltas (see 6,7)) ptag
- (*2) { [ nse { f 1 readn } repeat ] dup ==only /md5s exch def } (MD5 present?) ptag
- (*3:) = md5s {
- 0 ne {
- ( ) print f 16 string readstring pop
- (%stdout) (w) file dup 3 -1 roll writehexstring closefile () =
- } if
- } forall
- (*4) { [ nse { f nb5 readn } repeat ] ==only } (# objs/group (see 5)) ptag
-
- end % temp dict
-
-} bind def
-
-% Print the Primary Hint Stream of a PDF file.
-/pphs { % <file> pphs -
- /pdf exch def
-
- % Read the linearization parameter dictionary.
- { pdf pdftoken /obj eq { exit } if } loop
- pdf pdftoken /lpdict exch def
- /lpdict type /dicttype eq { lpdict /Linearized known } { false } ifelse {
- (Not a linearized PDF file.) = stop
- } if
-
- lpdict plpdict flush
-
- % Read the primary hint stream.
- null {
- pdf pdftoken dup /stream eq { pop exit } if
- exch pop
- } loop
- /phsdict exch def
- % Remove Length if indirect reference.
- phsdict 0 known {
- phsdict 0 undef phsdict /Length undef
- } if
- (PHS: ) print phsdict === flush
- pdf 0 (endstream) /SubFileDecode filter
- dup 5000 string readstring pop exch closefile
- sread /phsdata exch def
-
- % Decode the hint stream data if necessary.
- phsdict /Filter .knownget {
- phsdata exch filter
- dup 5000 string readstring pop exch closefile
- sread /phsdata exch def
- } if
-
- % Adobe says we can assume /P = 0.
- (Page Offset Hint Table:) =
- lpdict /N get
- phsdata phsdict /S get string readstring pop sread
- ppoht
- (Shared Objects Hint Table:) =
- phsdata psoht
-} bind def
-
-% Check for command line arguments.
-[ shellarguments
- { ] dup length 1 eq
- { 0 get (r) file dup pphs closefile }
- { (Usage: pphs filename.pdf\n) print flush }
- ifelse
- }
- { pop }
-ifelse
diff --git a/Master/xemtex/gslib/prfont.ps b/Master/xemtex/gslib/prfont.ps
deleted file mode 100644
index c71dce1ad01..00000000000
--- a/Master/xemtex/gslib/prfont.ps
+++ /dev/null
@@ -1,242 +0,0 @@
-%!
-%%Creator: Eric Gisin <egisin@waterloo.csnet>
-%%Title: Print font catalog
-% Copyright (c) 1986 Eric Gisin
-% Copyright (C) 1992 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to print all 256 encoded characters.
-% Copyright (C) 1993 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to print unencoded characters.
-% Copyright (C) 1994 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to always create 256-element Encoding vectors.
-% Copyright (C) 1995 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to print more than 128 unencoded characters.
-% Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to leave a slightly wider left margin, because many H-P
-% printers can't print in the leftmost 1/4" of the page.
-% Modified to print unencoded characters in any font that has CharStrings.
-% Copyright (C) 1999 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to sort unencoded characters.
-% Copyright (C) 2000 Aladdin Enterprises, Menlo Park, CA (ghost@aladdin.com)
-% Modified to print CIDFonts as well as fonts.
-% O(N^2) sorting replaced with O(N log N).
-
-% $Id: prfont.ps,v 1.2.6.1 2002/04/02 13:57:27 mpsuzuki Exp $
-
-% Example usages at bottom of file
-
-/#copies 1 def
-/min { 2 copy gt { exch } if pop } bind def
-
-/T6 /Times-Roman findfont 6 scalefont def
-/Temp 64 string def
-/Inch {72 mul} def
-/Base 16 def % char code output base
-/TempEncoding [ 256 { /.notdef } repeat ] def
-
-% Sort an array. Code used by permission of the author, Aladdin Enterprises.
-/sort { % <array> <lt-proc> sort <array>
- % Heapsort (algorithm 5.2.3H, Knuth vol. 2, p. 146),
- % modified for 0-origin indexing. */
- 10 dict begin
- /LT exch def
- /recs exch def
- /N recs length def
- N 1 gt {
- /l N 2 idiv def
- /r N 1 sub def {
- l 0 gt {
- /l l 1 sub def
- /R recs l get def
- } {
- /R recs r get def
- recs r recs 0 get put
- /r r 1 sub def
- r 0 eq { recs 0 R put exit } if
- } ifelse
- /j l def {
- /i j def
- /j j dup add 1 add def
- j r lt {
- recs j get recs j 1 add get LT { /j j 1 add def } if
- } if
- j r gt { recs i R put exit } if
- R recs j get LT not { recs i R put exit } if
- recs i recs j get put
- } loop
- } loop
- } if recs end
-} def
-
-% do single character of page
-% output to rectangle ll=(0,-24) ur=(36,24)
-/DoGlyph { % C, N, W set
-
- % print code name, width and char name
- T6 setfont
- N /.notdef ne {0 -20 moveto N Temp cvs show} if
- 0 -12 moveto C Base Temp cvrs show ( ) show
- W 0.0005 add Temp cvs 0 5 getinterval show
-
- % print char with reference lines
- N /.notdef ne {
- 3 0 translate
- 0 0 moveto F24 setfont N glyphshow
- /W W 24 mul def
- 0 -6 moveto 0 24 lineto
- W -6 moveto W 24 lineto
- -3 0 moveto W 3 add 0 lineto
- 0 setlinewidth stroke
- } if
-} def
-/DoChar {
- /C exch def
- /N F /Encoding get C get def
- /S (_) dup 0 C put def
- /W F setfont S stringwidth pop def
- DoGlyph
-} def
-/CIDTemp 20 string def
-/DoCID {
- /N exch def
- /C N def
- /W F setfont gsave
- matrix currentmatrix nulldevice setmatrix
- 0 0 moveto N glyphshow currentpoint pop
- grestore def
- DoGlyph
-} def
-
-% print page title
-/DoTitle {
- /Times-Roman findfont 18 scalefont setfont
- 36 10.5 Inch moveto FName Temp cvs show ( ) show ((24 point)) show
-} def
-
-% print one block of characters
-/DoBlock { % firstcode lastcode
- /FirstCode 2 index def
- 1 exch {
- /I exch def
- /Xn I FirstCode sub 16 mod def /Yn I FirstCode sub 16 idiv def
- gsave
- Xn 35 mul 24 add Yn -56 mul 9.5 Inch add translate
- I DoCode
- grestore
- } for
-} def
-
-% print a line of character
-/DoCharLine { % firstcode lastcode
- 1 exch { (_) dup 0 3 index put show pop } for
-} def
-/DoCIDLine { % firstcode lastcode
- 1 exch { glyphshow } for
-} def
-
-% initialize variables
-/InitDoFont { % fontname font
- /F exch def % font
- /FName exch def % font name
- /F24 F 24 scalefont def
- /Line0 96 string def
- /Line1 96 string def
- /Namestring1 128 string def
- /Namestring2 128 string def
-} def
-
-% print pages of unencoded characters
-/DoUnencoded { % glyphs
- /Unencoded exch def
- /Count Unencoded length def
-
- % Print the unencoded characters in blocks of 128.
-
- 0 128 Unencoded length 1 sub
- { /BlockStart 1 index def
- dup 128 add Unencoded length .min 1 index sub
- Unencoded 3 1 roll getinterval TempEncoding copy
- /BlockEncoding exch def
- /BlockCount BlockEncoding length def
- save
- F /Encoding known {
- F length dict F
- { 1 index /FID eq { pop pop } { 2 index 3 1 roll put } ifelse }
- forall dup /Encoding TempEncoding put
- /* exch definefont
- /F exch def
- /F24 F 24 scalefont def
- /BlockStart 0 def
- } if
-
- DoTitle (, unencoded characters) show
- BlockStart dup BlockCount 1 sub add DoBlock
- F 10 scalefont setfont
- 36 2.4 Inch moveto
- 0 32 BlockCount 32 sub 224 .min {
- 0 -0.4 Inch rmoveto gsave
- dup 31 add BlockCount 1 sub .min
- exch BlockStart add exch BlockStart add DoLine
- grestore
- } for
- showpage
- restore
- } for
-
-} def
-
-% print font sample pages
-/DoFont {
- dup findfont InitDoFont
- /DoCode {DoChar} def
- /DoLine {DoCharLine} def
-
- % Display the first 128 encoded characters.
-
- DoTitle (, characters 0-127) show
- 0 127 DoBlock
- F 10 scalefont setfont
- 36 2.0 Inch moveto 0 63 DoLine
- 36 1.5 Inch moveto 64 127 DoLine
- showpage
-
- % Display the second 128 encoded characters.
-
- DoTitle (, characters 128-255) show
- 128 255 DoBlock
- F 10 scalefont setfont
- 36 2.0 Inch moveto 128 191 DoLine
- 36 1.5 Inch moveto 192 255 DoLine
- showpage
-
- F /CharStrings known
- {
- % Find and display the unencoded characters.
-
- /Encoded F /Encoding get length dict def
- F /Encoding get { true Encoded 3 1 roll put } forall
- [ F /CharStrings get
- { pop dup Encoded exch known { pop } if }
- forall ] {
- exch Namestring1 cvs exch Namestring2 cvs lt
- } sort DoUnencoded
-
- }
- if
-
-} def
-
-% print CIDFont sample pages
-/DoCIDFont {
- dup /CIDFont findresource InitDoFont
- /DoCode {DoCID} def
- /DoLine {DoCIDLine} def
-
- [ 0 1 F /CIDCount get 1 sub { } for ] DoUnencoded
-} def
-
-% Do font samples
-% /Times-Roman DoFont % Test (less than a minute)
-% /Hershey-Gothic-English DoFont % Test (8 minutes)
-
-% Do a complete catalog
-% FontDirectory {pop DoFont} forall % All fonts (quite a long time)
diff --git a/Master/xemtex/gslib/printafm b/Master/xemtex/gslib/printafm
deleted file mode 100644
index 97e09ae83b6..00000000000
--- a/Master/xemtex/gslib/printafm
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-# $Id: printafm,v 1.1 2000/03/09 08:40:40 lpd Exp $
-# Print the metrics from a font in AFM format. Usage:
-# printafm fontname
-# Output goes to stdout.
-
-exec gs -q -dNODISPLAY -- printafm.ps "$@"
diff --git a/Master/xemtex/gslib/printafm.ps b/Master/xemtex/gslib/printafm.ps
deleted file mode 100644
index 2b4ed14e889..00000000000
--- a/Master/xemtex/gslib/printafm.ps
+++ /dev/null
@@ -1,149 +0,0 @@
-%!
-% written by James Clark <jjc@jclark.uucp>
-
-% print an afm file on the standard output
-% usage is `fontname printafm' eg `/Times-Roman printafm'
-
-% From the `dvitops' distribution, which included this notice:
-% dvitops is not copyrighted; you can do with it exactly as you please.
-% I would, however, ask that if you make improvements or modifications,
-% you ask me before distributing them to others.
-
-% Altered by d.love@dl.ac.uk to produce input for Rokicki's afm2tfm,
-% which groks the format of the Adobe AFMs.
-
-% $Id: printafm.ps,v 1.1.6.1 2002/04/10 09:22:58 giles Exp $
-
-% Modified by L. Peter Deutsch 9/14/93:
-% uses Ghostscript's =only procedure to replace 'buf cvs print'.
-% Modified by L. Peter Deutsch 9/6/95:
-% uses Ghostscript's shellarguments facility to accept the font name
-% on the command line.
-
-/onechar 1 string def
-
-% c toupper - c
-/toupper {
- dup dup 8#141 ge exch 8#172 le and {
- 8#40 sub
- } if
-} bind def
-
-% printcharmetrics -
-
-/printcharmetrics {
- (StartCharMetrics ) print
- currentfont /CharStrings get dup length exch /.notdef known { 1 sub } if =
- currentfont 1000 scalefont setfont 0 0 moveto
- /e currentfont /Encoding get def
- 0 1 255 {
- dup e exch get
- dup /.notdef ne {
- exch dup printmetric
- } {
- pop pop
- } ifelse
- } for
- % s contains an entry for each name in the original encoding vector
- /s 256 dict def
- e {
- s exch true put
- } forall
- % v is the new encoding vector
- /v 256 array def
- 0 1 255 {
- v exch /.notdef put
- } for
- % fill up v with names in CharStrings
- /i 0 def
- currentfont /CharStrings get {
- pop
- i 255 le {
- v i 3 -1 roll put
- /i i 1 add def
- } {
- pop
- } ifelse
- } forall
- % define a new font with v as its encoding vector
- currentfont maxlength dict /f exch def
- currentfont {
- exch dup dup /FID ne exch /Encoding ne and {
- exch f 3 1 roll put
- } {
- pop pop
- } ifelse
- } forall
- f /Encoding v put
- f /FontName /temp put
- % make this new font the current font
- /temp f definefont setfont
- % print a entry for each character not in old vector
- /e currentfont /Encoding get def
- 0 1 255 {
- dup e exch get
- dup dup /.notdef ne exch s exch known not and {
- exch -1 printmetric
- } {
- pop pop
- } ifelse
- } for
- (EndCharMetrics) =
-} bind def
-
-% name actual_code normal_code printmetric -
-
-/printmetric {
- /saved save def
- (C ) print =only
- ( ; WX ) print
- onechar 0 3 -1 roll put
- onechar stringwidth pop round cvi =only
- ( ; N ) print =only
- ( ; B ) print
- onechar false charpath flattenpath mark pathbbox counttomark {
- counttomark -1 roll
- round cvi =only
- ( ) print
- } repeat pop
- (;) =
- saved restore
-} bind def
-
-% fontname printafm -
-
-/printafm {
- findfont gsave setfont
- (StartFontMetrics 2.0) =
- (FontName ) print currentfont /FontName get =
-
- % Print the FontInfo
-
- currentfont /FontInfo get {
- exch
- =string cvs dup dup 0 get 0 exch toupper put print
- ( ) print =
- } forall
-
- % Print the FontBBox
-
- (FontBBox) print
- currentfont /FontBBox get {
- ( ) print round cvi =only
- } forall
- (\n) print
-
- printcharmetrics
- (EndFontMetrics) =
- grestore
-} bind def
-
-% Check for command line arguments.
-[ shellarguments
- { ] dup length 1 eq
- { 0 get printafm }
- { (Usage: printafm fontname\n) print flush }
- ifelse
- }
- { pop }
-ifelse
diff --git a/Master/xemtex/gslib/ps2ai.ps b/Master/xemtex/gslib/ps2ai.ps
deleted file mode 100644
index 15bb6fef675..00000000000
--- a/Master/xemtex/gslib/ps2ai.ps
+++ /dev/null
@@ -1,552 +0,0 @@
-%!
-% Copyright (C) 1994 , 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: ps2ai.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-%
-% ps2ai.ps - a postscript to editable adobe illustrator file filter
-%
-/vers {2.14} def % January 31, 1999
-
-% conditional def ( if the key is already defined before, don't
-% redefine it. This can be used by other programs to overwrite
-% some settings from externally
-%
-/cdef { 1 index where { pop pop pop } { def } ifelse } def
-%
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-%
-% needs a postscript level 2 interpreter, like gnu ghostscript, to work
-%
-% Usage: gs -q -dNODISPLAY ps2ai.ps file.ps > file.aips
-% or (see below)
-% gs -q -dNODISPLAY ps2ai.ps file.ps
-% or
-% cat ps2ai.ps file.ps | lpr (then look in log file)
-%
-% or from within gsview via:
-% Edit->Convert to vector format
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-% Options
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-% Output Options: directly to a file or standard out
-%
-/jout false cdef % true=file false=stdout (default=false)
-/joutput (ps2ai.out.aips) cdef % Name of Output file
-%
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-%
-% Other Options
-%
-/jtxt3 true cdef % output text in AI3 form (false=ai88)
- % for coreldraw/photoshop readable output
-/joutln false cdef % use font outline instead of font
-/jerr false def % use error handling (ie die gracefully)
-/jbiterr false def % attempt to handle bitmap fonts (kludge)
-/jMacGS false def % true if using MacGS (not fully implemented yet)
-/jMacfix true def % convert filled boxes to lines (only usefull with
- % laserwriter 8 postscript input)
-
-%
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-% No options below here
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-%
-% - Notes -
-% ai uses cmykcolor, so level 1 interpreters don't work
-% ai doesn't use image/imagemask - so bitmaps don't work correctly
-% the output file has a header so it is viewable/printable/reconvertable
-%
-% Comments, suggestions, bug-fixes, etc send to:
-%
-% Jason Olszewski (olszewsk@splash.princeton.edu)
-%
-% anonymous ftp: toby.princeton.edu /pub/olszewsk/ps2ai.ps
-% URL ftp://toby.princeton.edu/pub/olszewsk
-%
-% - Fix History -
-% 2.14 added cdef to allow overwriting of certain values from externally
-% 2.13 check for bitmap fonts, work better with TeX,WinPS,etc
-% 2.12 fixed initclip to US letter size page
-% 2.11 added header support for *u/*U compound paths
-% 2.1 option of font outline instead of text(gwhite@trevnx.bio.dfo.ca)
-% 2.0 major change to complex path handling
-% 1.9 fixed text leaking ascii (,),\
-% 1.85 added default font to handle no setfont (Courier)
-% 1.84 added even-odd fill/clip (D)
-% 1.83 undefined PPD PageSize printer specific info
-% 1.82 added kludge to save clipping status through a restore
-% 1.81 added custom color/gray support to header (x/X, g/G)
-% 1.8 added newpath if clippath is not consumed correctly(amiga)
-% 1.79 eliminated scientific notation of numbers less than 0.0001
-% 1.78 fixed transposed h & H
-% 1.77 made laserwriter 8 fixes optional
-% 1.76 added margin fix for unix AI (brown@wi.extrel.com)
-% 1.75 added kludge to handle bitmap font errors (TeX, Windows.ps)
-% 1.74 made grestore a little smarter
-% 1.73 included header handle encoded fontname (/_fontname)
-% 1.72 fixed problem with restore/clip info - (not enough Qs problem)
-% 1.71 filter font names to remove previous encoding (|,_,etc)
-% 1.7 change text format to AI3, works better with PS & CD
-% 1.67 deal with weird makefonts
-% 1.66 handle to many bad stroke/fills (s s s w/o paths)
-% 1.65 more useable with non-gs interpreters (defaultmatrix fix)
-% 1.64 fixed "smart grestore" repeat bug
-% 1.63 fixed ashow/awidthshow bug
-% 1.62 check if cmykcolor is understood otherwise rgb
-% 1.61 made grestore smarter (only print if different)
-% 1.6 add better compatibility to CorelDraw and PhotoShop
-% 1.53 make it more gs-backward compatible (clarke@lsl.co.uk)
-% 1.52 handle clipping paths a little better (Posted)
-% 1.51 improve mac lw8 output (lines instead of filled boxes)
-% 1.5 handle some level 2 stuff (mac lw8)
-% 1.4 fixed scaling of linewidth and dash
-% 1.31 made trailer more AI88 friendly
-% 1.3 add ablity to output to file directly
-% 1.21 print matrix cleaner
-% 1.2 fix rotated fonts, thanks to G.Cameron (g.cameron@biomed.abdn.ac.uk)
-% 1.1 fix stroke/fill color difference (k vs K)
-% 1.0 posted to comp.lang.postscript
-%
-% - To Do List -
-% find real %%BoundingBox: llx lly urx ury
-% make MacGS friendly (line-endings)
-% handle eps w/o showpage:(append to end)
-% write out image data to external file
-%
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-% Nothing of Interest below here
-%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-matrix identmatrix setmatrix % make ctm [1 0 0 1 0 0]
-/oldgsave {} def /oldgrestore {} def
-/initgraphics {} def /initmatrix {} def
-% undefine PPD PageSizes to be more printer independant
-/letter {} def /legal {} def /a4 {} def /b5 {} def /lettersmall {} def
-/setpagedevice { pop } def % for level 2 PPD PageSizes
-/Courier findfont 12 scalefont setfont % handle no setfont
-/initclip {0 0 moveto 0 792 lineto 612 792 lineto 612 0 lineto closepath
- clip newpath } def
-/xdef {exch def} def
-/trx {transform exch} def
-/cbdef {cvx bind def} def
-/jltz {dup abs 0.0001 lt {pop 0} if} def % get rid of scientific notation bug
-/clstate false def % closepath state
-/dpth false def % destroy path (ie newpath)
-/fclp false def % first paint after clip
-/kscl {1.0} def % default current scale X-factor
-/gcnt {1} def % graphics state counter
-/spth {1} def % multiple paths on stack
-/jeol (\n) def % default end-of-line
-/jnump {0} def % number of paths on stack
-/jx {0} def /jy {0} def /j_ax {0} def
-/j3ftxt true def
-/clarry 10 array def
-0 1 9 {clarry exch false put} for % initilize no clipping path
-%
-% handle cmyk color on level 1 interpreters
-/setcmykcolor where {pop}
- {/setcmykcolor {
- /blk exch def /yel exch def /mag exch def /cyan exch def
- /ccomp {add dup 1 gt {pop 1} if} def
- /red {1 cyan blk ccomp sub} def
- /green {1 mag blk ccomp sub} def
- /blue {1 yel blk ccomp sub} def
- red green blue setrgbcolor
- } def
-} ifelse
-/currentcmykcolor where {pop}
- {/currentcmykcolor {
- currentrgbcolor /bval xdef /gval xdef /rval xdef
- /rawC 1 rval sub def /rawM 1 gval sub def /rawY 1 bval sub def
- rawC rawM ge { rawY rawM ge { /blk rawM def} if } if
- rawC rawY ge { rawM rawY ge { /blk rawY def} if } if
- rawY rawC ge { rawM rawC ge { /blk rawC def} if } if
- rawY rawC eq { rawM rawC eq { /blk rawC def} if } if
- /cyan rawC blk sub def
- /mag rawM blk sub def
- /yel rawY blk sub def
- /blk blk def
- cyan mag yel blk
- } def
-} ifelse
-% If using Mac Ghostscript
-jMacGS {
-% /jeol {(\r) jp} def
- /jout true def
- (%%Note: Loading ps2ai.ps\n) print
- } if
-/jstr 40 string def
-jout {joutput (w) file /joutput xdef} if
-%
-% Output
-%
-jout {/jp { joutput exch writestring } bind def }{/jp {print}bind def} ifelse
-/jpnum {jltz ( ) jp =string cvs jp } bind def
-/jpmat { dup /jarry exch def length 1 sub /j_num exch def
- (\[) jp 0 1 j_num {jarry exch get jpnum} for (\]) jp } def
-%
-% Stack to Paths converters
-%
-/ckpnt { % check which paint and clipping to use
- dpth { % if there are multiple paths on the stack
- clarry gcnt get fclp and {clstate {(h W\n) jp }{(H W\n) jp } ifelse} if
- spth 0 eq {clstate {(n\n) jp }{(N\n) jp } ifelse} if
- spth 1 eq {clstate {(s\n) jp }{(S\n) jp } ifelse} if
- spth 2 eq {clstate {(f\n) jp }{(F\n) jp } ifelse} if
- } if
-} def
-/jpm {
- ckpnt
- /dpth true def
- transform 2 copy /yst xdef /xst xdef exch jpnum jpnum ( m\n) jp } bind def
-/jpl { trx jpnum jpnum ( l\n) jp } bind def
-/jpc { 6 4 roll trx jpnum jpnum 4 2 roll trx jpnum jpnum trx
- jpnum jpnum ( c\n) jp } bind def
-/jpp {xst jpnum yst jpnum ( l\n) jp /clstate true def} def
-/cntpaths { % count paths on stack
- oldgsave
- {pop pop /jnump jnump 1 add def} {pop pop} {6 {pop} repeat}{} pathforall
- oldgrestore
-} def
-/ppforall {
- cntpaths % find out how many paths are on the stack
- jnump 1 gt { (*u\n) jp } if
- {jpm}{jpl}{jpc}{jpp} pathforall
- ckpnt
- jnump 1 gt { (*U\n) jp } if
- /jnump 0 def /clstate false def /dpth false def /fclp false def
- oldnewpath
-} bind def
-%
-% Painting Operators
-%
-/oldnewpath [/newpath load] cbdef
-/newpath { (\n) jp /spth 0 def ppforall} def
-/stroke { (\n) jp /spth 1 def ppforall } def
-/fill {(\n) jp /spth 2 def ppforall } def
-/eofill {(1 D\n) jp fill (0 D\n) jp} def
-/clip {clarry gcnt get {(Q\nq\n) jp}{(q\n) jp} ifelse
- /fclp true def clarry gcnt true put} def
-/eoclip {(1 D\n) jp clip (0 D\n) jp} def
-%
-% Text Operators
-%
-/oldshow [/show load] cbdef
-/curpt {stringwidth pop jx add jy} def
-/jNN {dup 0 eq {pop oldgsave currentfont /FontMatrix get setmatrix kscl
- oldgrestore} if
-} def
-/curftmatrix {
- currentfont /FontMatrix get dup 0 get jNN abs /norm exch def
- dup 0 get norm div exch dup
- 1 get norm div exch dup 2 get norm div exch dup 3 get norm div exch dup
- 4 get exch 5 get 6 array astore matrix currentmatrix matrix concatmatrix
-} def
-% AI does not support negitive font sizes
-/curftsize {currentfont /FontMatrix get 0 get jNN abs 1000 mul} def
-/hstr (X) def
-/vbar (|) 0 get def /undsc (_) 0 get def
-/ftnamefix { % handle font names with |,_ (previously encoded)
-jstr cvs
-{ %forall
- dup vbar eq {pop}{ %ifelse
- dup undsc eq {pop}{ %ifelse
- hstr exch 0 exch put hstr jp
- } ifelse
- } ifelse
- } forall flush
-} bind def
-%/curftname {currentfont /FontName get ftnamefix}def
-/curftname { currentfont /FontName known {currentfont /FontName get}
- { (Times-Roman)} ifelse ftnamefix } def
-/lftpar (\() 0 get def
-/rhtpar (\)) 0 get def
-/bckslsh (\\) 0 get def
-/handft { % handle strings with (,),\
- (\() jp
- { %forall
- dup lftpar eq { (\\\() jp }{ %ifelse
- dup rhtpar eq { (\\\)) jp }{ %ifelse
- dup bckslsh eq { (\\\\) jp }{ %ifelse
- hstr exch 0 exch put hstr jp
- } ifelse
- } ifelse
- } ifelse
- } forall (\)) jp flush
-} bind def
-% AI 3 text format pieces
-jtxt3 {
-/j3txt { j3ftxt {(0 Ts 100 Tz 0 Tt 0 TA 0 0 5 TC 100 100 200 TW 0 0 0 Ti\n) jp
- (0 Ta 0 Tq 0 0 TI 0 Tc 0 Tw\n) jp} if } def
-/show {oldgsave (0 To\n) jp
- currentpoint 2 copy /jy exch def /jx exch def translate
- curftmatrix /jitm exch def
- 0 1 5 {jitm exch get jpnum} for ( 0 Tp\n) jp (TP\n) jp
- (0 Tr\n) jp (\/_) jp curftname curftsize jpnum ( Tf\n) jp
- (0) jp j_ax curftsize div 100 mul jpnum ( 100 TC\n) jp % percent(?)
- dup curpt moveto mark exch handft ( Tx\n) jp (TO\n) jp /j3ftxt false def
- cleartomark currentpoint oldgrestore moveto
-} def
-/ashow {exch pop exch /j_ax exch def show /j_ax {0} def } def
-}
- {
-/show {oldgsave (u\n) jp currentpoint 2 copy /jy exch def /jx exch def translate
- (\/) jp curftname jstr cvs jp
- curftsize dup jpnum jpnum ( 0 0 z\n) jp
- curftmatrix jpmat ( e\n) jp
- dup curpt moveto mark exch handft ( t T U\n) jp
- cleartomark currentpoint oldgrestore moveto} def
-/ashow {oldgsave (u\n) jp currentpoint translate (\/) jp curftname jstr cvs jp
- curftsize dup jpnum jpnum exch kscl mul jpnum ( 0 z\n) jp
- curftmatrix jpmat ( e\n) jp dup curpt moveto mark exch handft
- ( t T U\n) jp cleartomark currentpoint oldgrestore moveto} def
-} ifelse
-/widthshow { show pop pop pop} def
-/awidthshow {ashow pop pop pop} def
-/kshow {show pop} def
-%/show {true charpath fill} bind def % get outline of charactor
-joutln {/show { true charpath currentpoint
- /jy exch def /jx exch def fill jx jy moveto} bind def} if
-%/show {oldshow} def % do nothing different
-%
-% Color Operators
-%
-/oldsetcmykcolor [/setcmykcolor load] cbdef
-/setcmykcolor {oldsetcmykcolor
-currentcmykcolor 4 -1 roll jpnum 3 -1 roll jpnum 2 -1 roll jpnum jpnum ( k\n) jp
-currentcmykcolor 4 -1 roll jpnum 3 -1 roll jpnum 2 -1 roll jpnum jpnum ( K\n) jp
- } def
-/oldsetgray [/setgray load] cbdef
-/setgray {0 0 0 4 -1 roll 1 exch sub setcmykcolor} def
-/oldsethsbcolor [/sethsbcolor load] cbdef
-/sethsbcolor {oldsethsbcolor currentcmykcolor setcmykcolor} def
-/oldsetrgbcolor [/setrgbcolor load] cbdef
-/setrgbcolor {oldsetrgbcolor currentrgbcolor /bval xdef /gval xdef /rval xdef
- /rawC 1 rval sub def /rawM 1 gval sub def /rawY 1 bval sub def
- rawC rawM ge { rawY rawM ge { /blk rawM def} if } if
- rawC rawY ge { rawM rawY ge { /blk rawY def} if } if
- rawY rawC ge { rawM rawC ge { /blk rawC def} if } if
- rawY rawC eq { rawM rawC eq { /blk rawC def} if } if
- /cyan rawC blk sub def
- /mag rawM blk sub def
- /yel rawY blk sub def
- /blk blk def
- cyan mag yel blk setcmykcolor } def
-%
-% State Operators
-%
-/oldsetlinewidth [/setlinewidth load] cbdef
-/setlinewidth {kscl abs mul jltz oldsetlinewidth
- currentlinewidth jpnum ( w\n) jp } def
-/oldsetlinecap [/setlinecap load] cbdef
-/setlinecap {dup oldsetlinecap jpnum ( J\n) jp} def
-/oldsetlinejoin [/setlinejoin load] cbdef
-/setlinejoin {dup oldsetlinejoin jpnum ( j\n) jp} def
-/oldsetmiterlimit [/setmiterlimit load] cbdef
-/setmiterlimit {dup oldsetmiterlimit jpnum ( M\n) jp}def
-/oldsetdash [/setdash load] cbdef
-/setdash {exch [ exch {kscl abs mul} forall ] exch kscl abs mul oldsetdash
- currentdash exch jpmat jpnum ( d\n) jp } def
-/oldsetflat [/setflat load] cbdef
-/setflat {dup oldsetflat jpnum ( i\n) jp } def
-%
-% More State Operators
-%
-/kscl { % use just the x scale factor
- oldgsave
- matrix currentmatrix /jctm exch def
- jctm 4 0 put jctm 5 0 put jctm setmatrix
- 1 0 moveto currentpoint transform
- dup mul exch dup mul add sqrt 10000 mul round 10000 div
- oldgrestore
-} def
-/currentstate {currentcmykcolor setcmykcolor
- currentflat jpnum ( i) jp currentlinecap jpnum ( J) jp
- currentlinejoin jpnum ( j) jp currentlinewidth jpnum ( w) jp
- currentmiterlimit jpnum ( M ) jp currentdash exch jpmat jpnum ( d\n) jp
-} def
-/jdifG {
- currentcmykcolor /jok xdef /joy xdef /jom xdef /joc xdef
- currentflat /jof xdef currentlinecap /jolc xdef currentlinejoin /jolj xdef
- currentlinewidth /jolw xdef currentmiterlimit /joml xdef
- currentdash /jood xdef /joad xdef
- oldgrestore
- currentcmykcolor /jnk xdef /jny xdef /jnm xdef /jnc xdef
- currentflat /jnf xdef currentlinecap /jnlc xdef currentlinejoin /jnlj xdef
- currentlinewidth /jnlw xdef currentmiterlimit /jnml xdef
- currentdash /jnod xdef /jnad xdef
- % compare old gstate to new gstate
- joc jnc ne jom jnm ne joy jny ne jok jnk ne
- jof jnf ne jolc jnlc ne jolj jnlj ne jolw jnlw ne joml jnml ne
- false joad {true exit} forall {pop pop true}{false} ifelse
- false jnad {true exit} forall {pop pop true}{false} ifelse ne
- jood jnod ne 10 {or} repeat {currentstate} if
-} def
-/oldgsave [/gsave load] cbdef
-/gsave {oldgsave /gcnt gcnt 1 add def } def % clarry gcnt false put} def
-% (%%Note:gsave ) jp gcnt jpnum (\n) jp} def
-/oldgrestore [/grestore load] cbdef
-/grestore {dpth {newpath} if clarry gcnt get {(Q\n) jp clarry gcnt false put} if
- jdifG /gcnt gcnt 1 sub def } def
-% oldgrestore currentstate } def
-% (%%Note:grestore ) jp gcnt 1 add jpnum (\n) jp} def
-/oldrestore [/restore load] cbdef
-% a kludgy way of saving the clipping path status information
-/restore {clarry aload pop 11 -1 roll oldrestore clarry astore pop} def
-/showpage { 0 1 9 {clarry exch get {(Q\n) jp} if } for
- (%%Note: If Error, make sure there are matched pairs of 'q's and 'Q's\n) jp
- (%%Note: in the file. Add 'Q's before '%%Trailer' until equal\n) jp
- (%%Trailer\n) jp
- jtxt3 {(Adobe_IllustratorA_AI3 /terminate get exec\n) jp
- (Adobe_typography_AI3 /terminate get exec\n) jp
- (Adobe_customcolor /terminate get exec\n) jp
- (Adobe_cshow /terminate get exec\n) jp
- (Adobe_cmykcolor /terminate get exec\n) jp
- (Adobe_packedarray /terminate get exec\n) jp
-}{
- (Adobe_Illustrator881 /terminate get exec\n) jp
- (Adobe_customcolor /terminate get exec\n) jp
- (Adobe_cshow /terminate get exec\n) jp
- (Adobe_cmykcolor /terminate get exec\n) jp
- (Adobe_packedarray /terminate get exec\n) jp
- } ifelse
-( showpage\n%EOF\n%%EndDocument\n) jp
- jout {joutput closefile} if jMacGS not {quit} if /j3ftxt true def } def
-%
-% Error handling
-%
-errordict begin
-% Attempt to handle the error caused by bitmap fonts (TeX,Windows.ps,etc)
-% this is a big-time kludge
-jbiterr {
- /undefined {pop pop (Times-Roman)} def
- /typecheck {pop pop} def
-} if
-jerr {
- /handleerror {
- (%%Note: ps2ai error, aborting rest of conversion\n) jp showpage
- } def
-} if
-end
-%
-% Mac LW 8 improvements
-%
-/jmacimp { % stroked line instead of thin filled boxes
- /@a { 3 -1 roll 2 div dup 3 -1 roll add exch 3 -1 roll add exch moveto
- 3 -1 roll 2 div dup 3 -1 roll add exch 3 -1 roll exch sub exch lineto
- abs setlinewidth stroke pop pop} def
- /@b { 3 -1 roll 2 div dup 3 -1 roll add exch 3 -1 roll add exch moveto
- pop
- 3 -1 roll 2 div dup 3 -1 roll add exch 3 -1 roll add exch lineto
- abs setlinewidth stroke} def
- /endp {showpage pm restore} def % because the restore stops clean up
-} def
-%
-% Handle (some) PS Level 2
-%
-/rectstroke { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto
- closepath stroke} def
-/rectfill { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto
- fill } def
-/rectclip { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto
- closepath clip newpath jMacfix {jmacimp} if } def
-%
-% Add a header prolog to the output file so it is still view/print-able
-%
-(%!PS-Adobe-2.0 EPSF-1.2\n%%BoundingBox: 0 0 612 792\n) jp
-(%%Title: Adobe Illustator 3 Editable Document\n) jp
-(%%Creator: ps2ai.ps vers.) jp vers jpnum ( \(C\) 1993-94 Jason Olszewski\n) jp
-(%%TemplateBox: 0 0 612 792\n) jp
-jtxt3 {(%%AI3_Margin:0 0 0 0\n) jp } if
-(%%EndComments\n) jp
-(%%BeginProlog\n) jp
-(/m {moveto} def /l {lineto} def /c {curveto} def\n) jp
-(/S {stroke} def /F {fill} def\n) jp
-(/s {closepath S} def /f {closepath F} def\n) jp
-(/q {gsave} def /Q {grestore} def /W {clip} def /k {setcmykcolor} def\n) jp
-(/i {setflat} def /J {setlinecap} def /j {setlinejoin} def\n) jp
-(/w {setlinewidth} def /M {setmiterlimit} def /d {setdash} def\n) jp
-(/u {gsave} def /U {grestore} def /K {k} def\n) jp
-(/N {newpath} def /n {closepath N} def\n) jp
-(/g {setgray} def /G {g} def\n) jp
-(/x {pop pop k} def /X {x} def\n) jp
-(/H {} def /h {H closepath} def /D {pop} def\n) jp
-(/*u { /N {/spth 0 def}def /S{/spth 1 def}def /F {/spth 2 def} def} def\n) jp
-(/*U { spth 0 eq {newpath} if spth 1 eq {stroke} if spth 2 eq {fill} if\n) jp
-( /N {newpath} def /S {stroke} def /F {fill} def } def\n) jp
-%(\n) jp
-jtxt3 {
- (/TC {pop pop pop} def /Tr {pop} def\n) jp
- (/To {pop gsave} def /TO {grestore} def\n) jp
- (/Tp {pop matrix astore concat} def /TP {0 0 moveto} def\n) jp
- (/a_str 40 string def /cnt 0 def /h_str (X) def /undsc (_) 0 get def\n) jp
- (/fntfix {a_str cvs dup length 1 sub /f_str exch string def\n) jp
- ( {dup undsc eq {pop}{f_str cnt 3 -1 roll put /cnt cnt 1 add def\n) jp
- ( } ifelse } forall flush /cnt 0 def f_str cvn } bind def\n) jp
-
- (/Tf {exch fntfix findfont exch scalefont setfont} def /Tx {show} def\n) jp
-}{
- (/z {pop pop pop exch findfont exch scalefont setfont} def\n) jp
- (/e {concat 0 0 m} def /t {show} def /T {} def\n) jp
-} ifelse
-(\n) jp
-jtxt3 {
- (userdict /Adobe_packedarray 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_cmykcolor 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_cshow 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_customcolor 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_typography_AI3 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_IllustratorA_AI3 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
-}{
- (userdict /Adobe_packedarray 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_cmykcolor 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_cshow 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_customcolor 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
- (userdict /Adobe_Illustrator881 2 dict dup begin put\n) jp
- (/initialize {} def /terminate {} def\n) jp
-} ifelse
-(%%EndProlog\n) jp
-(%%BeginSetup\n) jp
-jtxt3 {
- (Adobe_packedarray /initialize get exec\n) jp
- (Adobe_cmykcolor /initialize get exec\n) jp
- (Adobe_cshow /initialize get exec\n) jp
- (Adobe_customcolor /initialize get exec\n) jp
- (Adobe_typography_AI3 /initialize get exec\n) jp
- (Adobe_IllustratorA_AI3 /initialize get exec\n) jp
-}{
- (Adobe_packedarray /initialize get exec\n) jp
- (Adobe_cmykcolor /initialize get exec\n) jp
- (Adobe_cshow /initialize get exec\n) jp
- (Adobe_customcolor /initialize get exec\n) jp
- (Adobe_Illustrator881 /initialize get exec\n) jp
-} ifelse
-(%%EndSetup\n) jp
-0 0 0 1 oldsetcmykcolor
-currentstate
-
-jout {(%%Note: Load Postscript file to be converted now\n) print} if
diff --git a/Master/xemtex/gslib/ps2ascii b/Master/xemtex/gslib/ps2ascii
deleted file mode 100644
index 7e285b12e6a..00000000000
--- a/Master/xemtex/gslib/ps2ascii
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# $Id: ps2ascii,v 1.3 2001/06/22 16:09:22 lpd Exp $
-# Extract ASCII text from a PostScript file. Usage:
-# ps2ascii [infile.ps [outfile.txt]]
-# If outfile is omitted, output goes to stdout.
-# If both infile and outfile are omitted, ps2ascii acts as a filter,
-# reading from stdin and writing on stdout.
-
-trap "rm -f _temp_.err _temp_.out" 0 1 2 15
-
-OPTIONS="-q -dNODISPLAY -dSAFER -dNOBIND -dWRITESYSTEMDICT -dSIMPLE"
-if ( test $# -eq 0 ) then
- gs $OPTIONS -c save -f ps2ascii.ps - -c quit
-elif ( test $# -eq 1 ) then
- gs $OPTIONS -c save -f ps2ascii.ps "$1" -c quit
-else
- gs $OPTIONS -c save -f ps2ascii.ps "$1" -c quit >"$2"
-fi
diff --git a/Master/xemtex/gslib/ps2ascii.bat b/Master/xemtex/gslib/ps2ascii.bat
deleted file mode 100644
index ad1bdcd2478..00000000000
--- a/Master/xemtex/gslib/ps2ascii.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-@rem $Id: ps2ascii.bat,v 1.3 2000/05/20 20:53:05 lpd Exp $
-
-call gssetgs.bat
-if '%1'=='' goto a0
-if '%2'=='' goto a1
-%GSC% -q -dNODISPLAY -dSAFER -dNOBIND -dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps %1 -c quit >%2
-goto x
-:a0
-%GSC% -q -dNODISPLAY -dSAFER -dNOBIND -dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps - -c quit
-goto x
-:a1
-%GSC% -q -dNODISPLAY -dSAFER -dNOBIND -dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps %1 -c quit
-goto x
-:x
diff --git a/Master/xemtex/gslib/ps2ascii.cmd b/Master/xemtex/gslib/ps2ascii.cmd
deleted file mode 100755
index c1316b89841..00000000000
--- a/Master/xemtex/gslib/ps2ascii.cmd
+++ /dev/null
@@ -1,18 +0,0 @@
-/* $Id: ps2ascii.cmd,v 1.1 2000/07/05 16:21:13 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-@echo off
-if '%1'=='' goto a0
-if '%2'=='' goto a1
-gsos2 -q -dNODISPLAY -dNOBIND -dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps %1 -c quit >%2
-goto x
-:a0
-gsos2 -q -dNODISPLAY -dNOBIND -dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps - -c quit
-goto x
-:a1
-gsos2 -q -dNODISPLAY -dNOBIND -dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps %1 -c quit
-goto x
-:x
diff --git a/Master/xemtex/gslib/ps2ascii.ps b/Master/xemtex/gslib/ps2ascii.ps
deleted file mode 100644
index 44770910fb5..00000000000
--- a/Master/xemtex/gslib/ps2ascii.ps
+++ /dev/null
@@ -1,1509 +0,0 @@
-% Copyright (C) 1991, 1995, 1996, 1998, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: ps2ascii.ps,v 1.3.2.2.2.1 2003/04/12 14:02:39 giles Exp $
-% Extract the ASCII text from a PostScript file. Nothing is displayed.
-% Instead, ASCII information is written to stdout. The idea is similar to
-% Glenn Reid's `distillery', only a lot more simple-minded, and less robust.
-
-% If SIMPLE is defined, just the text is written, with a guess at line
-% breaks and word spacing. If SIMPLE is not defined, lines are written
-% to stdout as follows:
-%
-% F <height> <width> (<fontname>)
-% Indicate the font height and the width of a space.
-%
-% P
-% Indicate the end of the page.
-%
-% S <x> <y> (<string>) <width>
-% Display a string.
-%
-% <width> and <height> are integer dimensions in units of 1/720".
-% <x> and <y> are integer coordinates, in units of 1/720", with the origin
-% at the lower left.
-% <string> and <fontname> are strings represented with the standard
-% PostScript escape conventions.
-
-% If COMPLEX is defined, the following additional types of lines are
-% written to stdout.
-%
-% C <r> <g> <b>
-% Indicate the current color.
-%
-% I <x> <y> <width> <height>
-% Note the presence of an image.
-%
-% R <x> <y> <width> <height>
-% Fill a rectangle.
-%
-% <r>, <g>, and <b> are RGB values expressed as integers between 0 and 1000.
-%
-% Note that future versions of this program (in COMPLEX mode) may add
-% other output elements, so programs parsing the output should be
-% prepared to ignore elements that they do not recognize.
-
-% Note that this code will only work in all cases if systemdict is writable
-% and if `binding' the definitions of operators defined as procedures
-% is deferred. For this reason, it is normally invoked with
-% gs -q -dNODISPLAY -dNOBIND -dWRITESYSTEMDICT ps2ascii.ps
-
-% Thanks to:
-% J Greely <jgreely@cis.ohio-state.edu> for improvements to this code;
-% Jerry Whelan <jerryw@abode.ccd.bnl.gov> for motivating other improvements;
-% David M. Jones <dmjones@theory.lcs.mit.edu> for improvements noted below.
-
-%% Additional modifications by David M. Jones
-%% (dmjones@theory.lcs.mit.edu), December 23, 1997
-%%
-%% (a) Rewrote forall loop at the end of .show.write. This fixes a
-%% stack leakage problem, but the changes are more significant
-%% than that.
-%%
-%% .char.map includes the names of all characters in the
-%% StandardEncoding, ISOLatin1Encoding, OT1Encoding and
-%% T1Encoding vectors. Thus, if the Encoding vector for the
-%% current font contains a name that is not in .char.map, it's
-%% redundant to check if the Encoding vector is equal to one of
-%% the known vectors. Previous versions of ps2ascii would give
-%% up at this point, and substitute an asterisk (*) for the
-%% character. I've taken the liberty of instead using the
-%% OT1Encoding vector to translate the character, on the grounds
-%% that in the cases I'm most interested in, a font without a
-%% useful Encoding vector was most likely created by a DVI to PS
-%% converter such as dvips or DVILASER (and OT1Encoding is
-%% largely compatible with StandardEncoding anyway). [Note that
-%% this does not make my earlier changes to support dvips (see
-%% fix (a) under my 1996 changes) completely obsolete, since
-%% there's additional useful information I can extract in that
-%% case.]
-%%
-%% Overall, this should provide better support for some documents
-%% (e.g, DVILASER documents will no longer be translated into a
-%% series of *'s) without breaking any other documents any worse
-%% than they already were broken.
-%%
-%% (b) Fixed two bugs in dvips.df-tail: (1) changed "dup 127" to "dup
-%% 128" to fix fencepost error, and (2) gave each font it's own
-%% FontName rather than having all fonts share the same name.
-%%
-%% (c) Added one further refinement to the heuristic for detecting
-%% paragraph breaks: do not ever start a new paragraph after a
-%% line ending in a hyphen.
-%%
-%% (d) Added a bunch of missing letters from the T1Encoding,
-%% OT1Encoding and ISOLatin1Encoding vectors to .letter.chars to
-%% improve hyphen-elimination algorithm. This still won't help
-%% if there's no useful Encoding vector.
-%%
-%% NOTE: A better solution to the problem of missing Encoding vectors
-%% might be to redefine definefont to check whether the Encoding
-%% vector is sensible and, if not, replace it by a default. This
-%% would alleviate the need for constant tests in the .show.write
-%% loop, as well as automatically solving the problem noted in fix
-%% (d) above, and the similar problem with .break.chars. This should
-%% be investigated. Also, the hyphen-elimination algorithm really
-%% needs to be looked at carefully and rethought.
-
-%%* Modifications to ps2ascii.ps by David M. Jones
-%%* (dmjones@theory.lcs.mit.edu), June 25-July 8, 1996
-
-%%* Modifications:
-%%*
-%%* (a) added code to give better support for dvips files by providing
-%%* FontBBox's, FontName's and Encoding vectors for downloaded
-%%* bitmap fonts. This is done by using dvips's start-hook to
-%%* overwrite the df-tail and D procedures that dvips uses to
-%%* define its Type 3 bitmap fonts. Thus, this change should
-%%* provide better support for dvips-generated PS files without
-%%* affecting the handling of other documents.
-%%*
-%%* (b) Fixed two bugs that could potentially affect any PS file, not
-%%* just those created by dvips: (1) added missing "get" operator
-%%* in .show.write and (2) fixed bug that caused a hyphen at the
-%%* end of a line to be replaced by a space rather than begin
-%%* deleted. Note that the first bug was a source of stack
-%%* leakage, causing ps2ascii to run out of operand stack space
-%%* occasionally.
-%%*
-%%* Search for "%%* BF" to find these modifications.
-%%*
-%%* (c) Improved the heuristic for determining whether a line break
-%%* has occurred and whether a line break represents a paragraph
-%%* break. Previously, any change in the vertical position caused
-%%* a line break; now a line break is only registered if the
-%%* change is larger than the height of the current font. This
-%%* means that superscripts, subscripts, and such things as
-%%* shifted accents generated by TeX won't cause line breaks.
-%%* Paragraph-recognition is now done by comparing the indentation
-%%* of the new line to the indentation of the previous line and by
-%%* comparing the vertical distance between the new line and the
-%%* previous line to the vertical distance between the previous
-%%* line and its predecessor.
-%%*
-%%* (d) Added a hook for renaming the files where stdout and stderr
-%%* go.
-%%*
-%%* In general, my additions or changes to the code are described in
-%%* comments beginning with "%%*". However, there are numerous other
-%%* places where I have either re-formatted code or added comments to
-%%* the code while I was trying to understand it. These are usually
-%%* not specially marked.
-%%*
-
-/QUIET true def
-systemdict wcheck { systemdict } { userdict } ifelse begin
-/.max where { pop } { /.max { 2 copy lt { exch } if pop } bind def } ifelse
-/COMPLEX dup where { pop true } { false } ifelse def
-/SIMPLE dup where { pop true } { false } ifelse def
-/setglobal where
- { pop currentglobal /setglobal load true setglobal }
- { { } }
-ifelse
-
-% Define a way to store and retrieve integers that survives save/restore.
-/.i.string0 (0 ) def
-/.i.string .i.string0 length string def
-/.iget { cvi } bind def
-/.iput { exch //.i.string exch copy cvs pop } bind def
-/.inew { //.i.string0 dup length string copy } bind def
-
-% We only want to redefine operators if they are defined already.
-
-/codef { 1 index where { pop def } { pop pop } ifelse } def
-
-% Redefine the end-of-page operators.
-
-/erasepage { } codef
-/copypage { SIMPLE { (\014) } { (P\n) } ifelse //print } codef
-/showpage { copypage erasepage initgraphics } codef
-
-% Redefine the fill operators to detect rectangles.
-
-/.orderrect % <llx> <lly> <urx> <ury> .orderrect <llx> <lly> <w> <h>
- { % Ensure llx <= urx, lly <= ury.
- 1 index 4 index lt { 4 2 roll } if
- dup 3 index lt { 3 1 roll exch } if
- exch 3 index sub exch 2 index sub
- } odef
-/.fillcomplex
- { % Do a first pass to see if the path is all rectangles in
- % the output coordinate system. We don't worry about overlapping
- % rectangles that might be partially not filled.
- % Stack: mark llx0 lly0 urx0 ury0 ... true mark x0 y0 ...
- mark true mark
- % Add a final moveto so we pick up any trailing unclosed subpath.
- 0 0 itransform moveto
- { .coord counttomark 2 gt
- { counttomark 4 gt { .fillcheckrect } { 4 2 roll pop pop } ifelse }
- if
- }
- { .coord }
- { cleartomark not mark exit }
- { counttomark -2 roll 2 copy counttomark 2 roll .fillcheckrect }
- pathforall cleartomark
- { .showcolor counttomark 4 idiv
- { counttomark -4 roll .orderrect
- (R ) //print .show==4
- }
- repeat pop
- }
- { cleartomark
- }
- ifelse
- } odef
-/.fillcheckrect
- { % Check whether the current subpath is a rectangle.
- % If it is, add it to the list of rectangles being accumulated;
- % if not exit the .fillcomplex loop.
- % The subpath has not been closed.
- % Stack: as in .fillcomplex, + newx newy
- counttomark 10 eq { 9 index 9 index 4 2 roll } if
- counttomark 12 ne { cleartomark not mark exit } if
- 12 2 roll
- % Check for the two possible forms of rectangles:
- % x0 y0 x0 y1 x1 y1 x1 y0 x0 y0
- % x0 y0 x1 y0 x1 y1 x0 y1 x0 y0
- 9 index 2 index eq 9 index 2 index eq and
- 10 index 9 index eq
- { % Check for first form.
- 7 index 6 index eq and 6 index 5 index eq and 3 index 2 index eq and
- }
- { % Check for second form.
- 9 index 8 index eq and
- 8 index 7 index eq and 5 index 4 index eq and 4 index 3 index eq and
- }
- ifelse not { cleartomark not mark exit } if
- % We have a rectangle.
- pop pop pop pop 4 2 roll pop pop 8 4 roll
- } odef
-/eofill { COMPLEX { .fillcomplex } if newpath } codef
-/fill { COMPLEX { .fillcomplex } if newpath } codef
-/rectfill { gsave newpath .rectappend fill grestore } codef
-/ueofill { gsave newpath uappend eofill grestore } codef
-/ufill { gsave newpath uappend fill grestore } codef
-
-% Redefine the stroke operators to detect rectangles.
-
-/rectstroke
- { gsave newpath
- dup type dup /arraytype eq exch /packedarraytype eq or
- { dup length 6 eq { exch .rectappend concat } { .rectappend } ifelse }
- { .rectappend }
- ifelse stroke grestore
- } codef
-/.strokeline % <fromx> <fromy> <tox> <toy> .strokeline <tox> <toy>
- % Note: fromx and fromy are in output coordinates;
- % tox and toy are in user coordinates.
- { .coord 2 copy 6 2 roll .orderrect
- % Add in the line width. Assume square or round caps.
- currentlinewidth 2 div dup .dcoord add abs 1 .max 5 1 roll
- 4 index add 4 1 roll 4 index add 4 1 roll
- 4 index sub 4 1 roll 5 -1 roll sub 4 1 roll
- (R ) //print .show==4
- } odef
-/.strokecomplex
- { % Do a first pass to see if the path is all horizontal and vertical
- % lines in the output coordinate system.
- % Stack: true mark origx origy curx cury
- true mark null null null null
- { .coord 6 2 roll pop pop pop pop 2 copy }
- { .coord 1 index 4 index eq 1 index 4 index eq or
- { 4 2 roll pop pop }
- { cleartomark not mark exit }
- ifelse
- }
- { cleartomark not mark exit }
- { counttomark -2 roll 2 copy counttomark 2 roll
- 1 index 4 index eq 1 index 4 index eq or
- { pop pop 2 copy }
- { cleartomark not mark exit }
- ifelse
- }
- pathforall cleartomark
- 0 currentlinewidth .dcoord 0 eq exch 0 eq or and
- % Do the second pass to write out the rectangles.
- % Stack: origx origy curx cury
- { .showcolor null null null null
- { 6 2 roll pop pop pop pop 2 copy .coord }
- { .strokeline }
- { }
- { 3 index 3 index .strokeline }
- pathforall pop pop pop pop
- }
- if
- } odef
-/stroke { COMPLEX { .strokecomplex } if newpath } codef
-/ustroke
- { gsave newpath
- dup length 6 eq { exch uappend concat } { uappend } ifelse
- stroke grestore
- } codef
-
-% The image operators must read the input and note the dimensions.
-% Eventually we should redefine these to detect 1-bit-high all-black images,
-% since this is how dvips does underlining (!).
-
-/.noteimagerect % <width> <height> <matrix> .noteimagerect -
- { COMPLEX
- { gsave setmatrix itransform 0 0 itransform
- grestore .coord 4 2 roll .coord .orderrect
- (I ) //print .show==4
- }
- { pop pop pop
- }
- ifelse
- } odef
-/colorimage where
- { pop /colorimage
- { 1 index
- { dup 6 add index 1 index 6 add index 2 index 5 add index }
- { 6 index 6 index 5 index }
- ifelse .noteimagerect gsave nulldevice //colorimage grestore
- } codef
- } if
-/.noteimage % Arguments as for image[mask]
- { dup type /dicttype eq
- { dup /Width get 1 index /Height get 2 index /ImageMatrix get }
- { 4 index 4 index 3 index }
- ifelse .noteimagerect
- } odef
-/image { .noteimage gsave nulldevice //image grestore } codef
-/imagemask { .noteimage gsave nulldevice //imagemask grestore } codef
-
-% Output the current color if necessary.
-/.color.r .inew def
- .color.r -1 .iput % make sure we write the color at the beginning
-/.color.g .inew def
-/.color.b .inew def
-/.showcolor
- { COMPLEX
- { currentrgbcolor
- 1000 mul round cvi
- 3 1 roll 1000 mul round cvi
- exch 1000 mul round cvi
- % Stack: b g r
- dup //.color.r .iget eq
- 2 index //.color.g .iget eq and
- 3 index //.color.b .iget eq and
- { pop pop pop
- }
- { (C ) //print
- dup //.color.r exch .iput .show==only
- ( ) //print dup //.color.g exch .iput .show==only
- ( ) //print dup //.color.b exch .iput .show==only
- (\n) //print
- }
- ifelse
- }
- if
- } bind def
-
-% Redefine `show'.
-
-% Set things up so our output will be in tenths of a point, with origin at
-% lower left. This isolates us from the peculiarities of individual devices.
-
-/.show.ident.matrix matrix def
-/.show.ident { % - .show.ident <scale> <matrix>
-% //.show.ident.matrix defaultmatrix
-% % Assume the original transformation is well-behaved.
-% 0.1 0 2 index dtransform abs exch abs .max /.show.scale exch def
-% 0.1 dup 3 -1 roll scale
- gsave initmatrix
- % Assume the original transformation is well-behaved...
- 0.1 0 dtransform abs exch abs .max
- 0.1 dup scale .show.ident.matrix currentmatrix
- % ... but undo any rotation into landscape orientation.
- dup 0 get 0 eq {
- 1 get dup abs div 90 mul rotate
- .show.ident.matrix currentmatrix
- } if
- grestore
-} bind def
-
-/.coord { % <x> <y> .coord <x'> <y'>
- transform .show.ident exch pop itransform
- exch round cvi exch round cvi
-} odef
-
-/.dcoord { % <dx> <dy> .coord <dx'> <dy'>
- % Transforming distances is trickier, because
- % the coordinate system might be rotated.
- .show.ident pop 3 1 roll
- exch 0 dtransform
- dup mul exch dup mul add sqrt
- 2 index div round cvi
- exch 0 exch dtransform
- dup mul exch dup mul add sqrt
- 3 -1 roll div round cvi
-} odef
-
-% Remember the current X, Y, and height.
-/.show.x .inew def
-/.show.y .inew def
-/.show.height .inew def
-
-% Remember the last character of the previous string; if it was a
-% hyphen preceded by a letter, we didn't output the hyphen.
-
-/.show.last (\000) def
-
-% Remember the current font.
-/.font.name 130 string def
-/.font.name.length .inew def
-/.font.height .inew def
-/.font.width .inew def
-
-%%* Also remember indentation of current line and previous vertical
-%%* skip
-
-/.show.indent .inew def
-/.show.dy .inew def
-
-% We have to redirect stdout somehow....
-
-/.show.stdout { (%stdout) (w) file } bind def
-
-% Make sure writing will work even if a program uses =string.
-/.show.string =string length string def
-/.show.=string =string length string def
-/.show==only
- { //=string //.show.=string copy pop
- dup type /stringtype eq
- { dup length //.show.string length le
- { dup rcheck { //.show.string copy } if
- } if
- } if
- .show.stdout exch write==only
- //.show.=string //=string copy pop
- } odef
-/.show==4
- { 4 -1 roll .show==only ( ) //print
- 3 -1 roll .show==only ( ) //print
- exch .show==only ( ) //print
- .show==only (\n) //print
- } odef
-
-/.showwidth % Same as stringwidth, but disable COMPLEX so that
- % we don't try to detect rectangles during BuildChar.
- { COMPLEX
- { /COMPLEX false def stringwidth /COMPLEX true def }
- { stringwidth }
- ifelse
- } odef
-
-/.showfont % <string> .showfont <string>
- { gsave
- % Try getting the height and width of the font from the FontBBox.
- currentfont /FontBBox .knownget not { {0 0 0 0} } if
- aload pop % llx lly urx ury
- exch 4 -1 roll % lly ury urx llx
- sub % lly ury dx
- 3 1 roll exch % dx ury lly
- sub % dx dy
- 2 copy .max 0 ne
- { currentfont /FontMatrix get dtransform
- }
- { pop pop
- % Fonts produced by dvips, among other applications, have
- % BuildChar procedures that bomb out when given unexpected
- % characters, and there is no way to determine whether a given
- % character will do this. So for Type 1 fonts, we measure a
- % typical character ('X'); for others, we punt.
- currentfont /FontType get 1 eq
- { (X) .showwidth pop dup 1.3 mul
- }
- { % No safe way to get the character size. Punt.
- 0 0
- }
- ifelse
- }
- ifelse .dcoord exch
- currentfont /FontName .knownget not { () } if
- dup type /stringtype ne { //.show.string cvs } if
- grestore
- % Stack: height width fontname
- SIMPLE
- { pop pop //.show.height exch .iput }
- { 2 index //.font.height .iget eq
- 2 index //.font.width .iget eq and
- 1 index //.font.name 0 //.font.name.length .iget getinterval eq and
- { pop pop pop
- }
- { (F ) //print
- 3 -1 roll dup //.font.height exch .iput .show==only ( ) //print
- exch dup //.font.width exch .iput .show==only ( ) //print
- dup length //.font.name.length exch .iput
- //.font.name cvs .show==only (\n) //print
- }
- ifelse
- }
- ifelse
- } odef
-
-% Define the letters -- characters which, if they occur followed by a hyphen
-% at the end of a line, cause the hyphen and line break to be ignored.
-/.letter.chars 100 dict def
-mark
- 65 1 90 { dup 32 add } for
- counttomark
- { StandardEncoding exch get .letter.chars exch dup put }
- repeat
-pop
-
-%%* Add the rest of the letters from the [O]T1Encoding and
-%%* ISOLatin1Encoding vectors
-
-mark
- /AE
- /Aacute
- /Abreve
- /Acircumflex
- /Adieresis
- /Agrave
- /Aogonek
- /Aring
- /Atilde
- /Cacute
- /Ccaron
- /Ccedilla
- /Dcaron
- /Eacute
- /Ecaron
- /Ecircumflex
- /Edieresis
- /Egrave
- /Eng
- /Eogonek
- /Eth
- /Gbreve
- /Germandbls
- /IJ
- /Iacute
- /Icircumflex
- /Idieresis
- /Idot
- /Igrave
- /Lacute
- /Lcaron
- /Lslash
- /Nacute
- /Ncaron
- /Ntilde
- /OE
- /Oacute
- /Ocircumflex
- /Odieresis
- /Ograve
- /Ohungarumlaut
- /Oslash
- /Otilde
- /Racute
- /Rcaron
- /Sacute
- /Scaron
- /Scedilla
- /Tcaron
- /Tcedilla
- /Thorn
- /Uacute
- /Ucircumflex
- /Udieresis
- /Ugrave
- /Uhungarumlaut
- /Uring
- /Yacute
- /Ydieresis
- /Zacute
- /Zcaron
- /Zdot
- /aacute
- /abreve
- /acircumflex
- /adieresis
- /ae
- /agrave
- /aogonek
- /aring
- /atilde
- /cacute
- /ccaron
- /ccedilla
- /dbar
- /dcaron
- /dotlessi
- /dotlessj
- /eacute
- /ecaron
- /ecircumflex
- /edieresis
- /egrave
- /eng
- /eogonek
- /eth
- /exclamdown
- /ff
- /ffi
- /ffl
- /fi
- /fl
- /gbreve
- /germandbls
- /iacute
- /icircumflex
- /idieresis
- /igrave
- /ij
- /lacute
- /lcaron
- /lslash
- /nacute
- /ncaron
- /ntilde
- /oacute
- /ocircumflex
- /odieresis
- /oe
- /ograve
- /ohungarumlaut
- /oslash
- /otilde
- /questiondown
- /racute
- /rcaron
- /sacute
- /scaron
- /scedilla
- /section
- /sterling
- /tcaron
- /tcedilla
- /thorn
- /uacute
- /ucircumflex
- /udieresis
- /ugrave
- /uhungarumlaut
- /uring
- /yacute
- /ydieresis
- /zacute
- /zcaron
- /zdot
-counttomark
- { .letter.chars exch dup put }
-repeat
-pop
-
-% Define a set of characters which, if they occur at the start of a line,
-% are taken as indicating a paragraph break.
-/.break.chars 50 dict def
-mark
- /bullet /dagger /daggerdbl /periodcentered /section
- counttomark
- { .break.chars exch dup put }
- repeat
-pop
-
-% Define character translation to ASCII.
-% We have to do this for the entire character set.
-
-/.char.map 500 dict def
-
-/.chars.def { counttomark 2 idiv { .char.map 3 1 roll put } repeat pop } def
-
-% Encode the printable ASCII characters.
-
-mark 32 1 126
- { 1 string dup 0 4 -1 roll put
- dup 0 get StandardEncoding exch get exch
- }
-for .chars.def
-
- % Encode accents.
-mark
- /acute (')
- /caron (^)
- /cedilla (,)
- /circumflex (^)
- /dieresis (")
- /grave (`)
- /ring (*)
- /tilde (~)
-.chars.def
-
- % Encode the ISO accented characters.
-mark 192 1 255
- { ISOLatin1Encoding exch get =string cvs
- dup 0 1 getinterval 1 index dup length 1 sub 1 exch getinterval
- .char.map 2 index known .char.map 2 index known and
- { .char.map 3 -1 roll get .char.map 3 -1 roll get concatstrings
- .char.map 3 1 roll put
- }
- { pop pop pop
- }
- ifelse
- }
-for .chars.def
-
-% Encode the remaining standard and ISO alphabetic characters.
-
-mark
- /AE (AE) /Eth (DH) /OE (OE) /Thorn (Th)
- /ae (ae) /eth (dh)
- /ffi (ffi) /ffl (ffl) /fi (fi) /fl (fl)
- /germandbls (ss) /oe (oe) /thorn (th)
-.chars.def
-
-% Encode the other standard and ISO characters.
-
-mark
- /brokenbar (|) /bullet (*) /copyright ((C)) /currency (#)
- /dagger (#) /daggerdbl (##) /degree (o) /divide (/) /dotaccent (.)
- /dotlessi (i)
- /ellipsis (...) /emdash (--) /endash (-) /exclamdown (!)
- /florin (f) /fraction (/)
- /guillemotleft (<<) /guillemotright (>>)
- /guilsinglleft (<) /guilsinglright (>) /hungarumlaut ("") /logicalnot (~)
- /macron (_) /minus (-) /mu (u) /multiply (*)
- /ogonek (,) /onehalf (1/2) /onequarter (1/4) /onesuperior (1)
- /ordfeminine (-a) /ordmasculine (-o)
- /paragraph (||) /periodcentered (*) /perthousand (o/oo) /plusminus (+-)
- /questiondown (?) /quotedblbase (") /quotedblleft (") /quotedblright (")
- /quotesinglbase (,) /quotesingle (') /registered ((R))
- /section ($) /sterling (#)
- /threequarters (3/4) /threesuperior (3) /trademark ((TM)) /twosuperior (2)
- /yen (Y)
-.chars.def
-
-% Encode a few common Symbol characters.
-
-mark
- /asteriskmath (*) /copyrightsans ((C)) /copyrightserif ((C))
- /greaterequal (>=) /lessequal (<=) /registersans ((R)) /registerserif ((R))
- /trademarksans ((TM)) /trademarkserif ((TM))
-.chars.def
-
-%%* Add a few characters from StandardEncoding and ISOLatin1Encoding
-%%* that were missing.
-
-mark
- /cent (c)
- /guilsinglleft (<)
- /guilsinglright (>)
- /breve (*)
- /Lslash (L/)
- /lslash (l/)
-.chars.def
-
-%%* Define the OT1Encoding and T1Encoding vectors for use with dvips
-%%* files. Unfortunately, there's no way of telling what font is
-%%* really being used within a dvips document, so we can't provide an
-%%* appropriate encoding for each individual font. Instead, we'll
-%%* just provide support for the two most popular text encodings, the
-%%* OT1 and T1 encodings, and just accept the fact that any font not
-%%* using one of those encodings will be rendered as gibberish.
-%%*
-%%* OT1 is Knuth's 7-bit encoding for the CMR text fonts, while T1
-%%* (aka the Cork encoding) is the 8-bit encoding used by the DC
-%%* fonts, a preliminary version of the proposed Extended Computer
-%%* Modern fonts. Unfortunately, T1 is not a strict extension of OT1;
-%%* they differ in positions 8#000 through 8#040, 8#074, 8#076, 8#134,
-%%* 8#137, 8#173, 8#174, 8#175 and 8#177, so we can't use the same
-%%* vector for both.
-%%*
-%%* Of course, we also can't reliably tell the difference between an
-%%* OT1-encoded font and a T1-encoded font based on the information in
-%%* a dvips-created PostScript file. As a best-guess solution, we'll
-%%* use the T1 encoding if the font contains any characters in
-%%* positions above 8#177 and the OT1 encoding if it doesn't.
-
-/T1Encoding 256 array def
-
-/OT1Encoding 256 array def
-
-%%* T1Encoding shares a lot with StandardEncoding, so let's start
-%%* there.
-
-StandardEncoding T1Encoding copy pop
-
-/OT1.encode {
- counttomark
- 2 idiv
- { OT1Encoding 3 1 roll put }
- repeat
- cleartomark
-} def
-
-/T1.encode {
- counttomark
- 2 idiv
- { T1Encoding 3 1 roll put }
- repeat
- cleartomark
-} def
-
-mark
- 8#000 /grave
- 8#001 /acute
- 8#002 /circumflex
- 8#003 /tilde
- 8#004 /dieresis
- 8#005 /hungarumlaut
- 8#006 /ring
- 8#007 /caron
-
- 8#010 /breve
- 8#011 /macron
- 8#012 /dotaccent
- 8#013 /cedilla
- 8#014 /ogonek
- 8#015 /quotesinglbase
- 8#016 /guilsinglleft
- 8#017 /guilsinglright
-
- 8#020 /quotedblleft
- 8#021 /quotedblright
- 8#022 /quotedblbase
- 8#023 /guillemotleft
- 8#024 /guillemotright
- 8#025 /endash
- 8#026 /emdash
- 8#027 /cwm
-
- 8#030 /perthousandzero
- 8#031 /dotlessi
- 8#032 /dotlessj
- 8#033 /ff
- 8#034 /fi
- 8#035 /fl
- 8#036 /ffi
- 8#037 /ffl
-
-%% 8#040 through 8#176 follow StandardEncoding
-
- 8#177 /hyphen
-T1.encode
-
-mark
- 8#200 /Abreve
- 8#201 /Aogonek
- 8#202 /Cacute
- 8#203 /Ccaron
- 8#204 /Dcaron
- 8#205 /Ecaron
- 8#206 /Eogonek
- 8#207 /Gbreve
- 8#210 /Lacute
- 8#211 /Lcaron
- 8#212 /Lslash
- 8#213 /Nacute
- 8#214 /Ncaron
- 8#215 /Eng
- 8#216 /Ohungarumlaut
- 8#217 /Racute
- 8#220 /Rcaron
- 8#221 /Sacute
- 8#222 /Scaron
- 8#223 /Scedilla
- 8#224 /Tcaron
- 8#225 /Tcedilla
- 8#226 /Uhungarumlaut
- 8#227 /Uring
- 8#230 /Ydieresis
- 8#231 /Zacute
- 8#232 /Zcaron
- 8#233 /Zdot
- 8#234 /IJ
- 8#235 /Idot
- 8#236 /dbar
- 8#237 /section
- 8#240 /abreve
- 8#241 /aogonek
- 8#242 /cacute
- 8#243 /ccaron
- 8#244 /dcaron
- 8#245 /ecaron
- 8#246 /eogonek
- 8#247 /gbreve
- 8#250 /lacute
- 8#251 /lcaron
- 8#252 /lslash
- 8#253 /nacute
- 8#254 /ncaron
- 8#255 /eng
- 8#256 /ohungarumlaut
- 8#257 /racute
- 8#260 /rcaron
- 8#261 /sacute
- 8#262 /scaron
- 8#263 /scedilla
- 8#264 /tcaron
- 8#265 /tcedilla
- 8#266 /uhungarumlaut
- 8#267 /uring
- 8#270 /ydieresis
- 8#271 /zacute
- 8#272 /zcaron
- 8#273 /zdot
- 8#274 /ij
- 8#275 /exclamdown
- 8#276 /questiondown
- 8#277 /sterling
-
- 8#300 /Agrave
- 8#301 /Aacute
- 8#302 /Acircumflex
- 8#303 /Atilde
- 8#304 /Adieresis
- 8#305 /Aring
- 8#306 /AE
- 8#307 /Ccedilla
- 8#310 /Egrave
- 8#311 /Eacute
- 8#312 /Ecircumflex
- 8#313 /Edieresis
- 8#314 /Igrave
- 8#315 /Iacute
- 8#316 /Icircumflex
- 8#317 /Idieresis
- 8#320 /Eth
- 8#321 /Ntilde
- 8#322 /Ograve
- 8#323 /Oacute
- 8#324 /Ocircumflex
- 8#325 /Otilde
- 8#326 /Odieresis
- 8#327 /OE
- 8#330 /Oslash
- 8#331 /Ugrave
- 8#332 /Uacute
- 8#333 /Ucircumflex
- 8#334 /Udieresis
- 8#335 /Yacute
- 8#336 /Thorn
- 8#337 /Germandbls
-
- 8#340 /agrave
- 8#341 /aacute
- 8#342 /acircumflex
- 8#343 /atilde
- 8#344 /adieresis
- 8#345 /aring
- 8#346 /ae
- 8#347 /ccedilla
- 8#350 /egrave
- 8#351 /eacute
- 8#352 /ecircumflex
- 8#353 /edieresis
- 8#354 /igrave
- 8#355 /iacute
- 8#356 /icircumflex
- 8#357 /idieresis
- 8#360 /eth
- 8#361 /ntilde
- 8#362 /ograve
- 8#363 /oacute
- 8#364 /ocircumflex
- 8#365 /otilde
- 8#366 /odieresis
- 8#367 /oe
- 8#370 /oslash
- 8#371 /ugrave
- 8#372 /uacute
- 8#373 /ucircumflex
- 8#374 /udieresis
- 8#375 /yacute
- 8#376 /thorn
- 8#377 /germandbls
-
-T1.encode
-
-%%* Now copy OT1Encoding into T1Encoding and make a few changes.
-
-T1Encoding OT1Encoding copy pop
-
-mark
- 8#000 /Gamma
- 8#001 /Delta
- 8#002 /Theta
- 8#003 /Lambda
- 8#004 /Xi
- 8#005 /Pi
- 8#006 /Sigma
- 8#007 /Upsilon
-
- 8#010 /Phi
- 8#011 /Psi
- 8#012 /Omega
- 8#013 /ff
- 8#014 /fi
- 8#015 /fl
- 8#016 /ffi
- 8#017 /ffl
-
- 8#020 /dotlessi
- 8#021 /dotlessj
- 8#022 /grave
- 8#023 /acute
- 8#024 /caron
- 8#025 /breve
- 8#026 /macron
- 8#027 /ring
-
- 8#030 /cedilla
- 8#031 /germandbls
- 8#032 /ae
- 8#033 /oe
- 8#034 /oslash
- 8#035 /AE
- 8#036 /OE
- 8#037 /Oslash
-
- 8#040 /polishslash
-
- 8#042 /quotedblright
-
- 8#074 /exclamdown
- 8#076 /questiondown
-
- 8#134 /quotedblleft
- 8#137 /dotaccent
-
- 8#173 /endash
- 8#174 /emdash
- 8#175 /hungarumlaut
- 8#177 /dieresis
-OT1.encode
-
-%%* And add a few characters from the OT1Encoding
-
-mark
- /Gamma (\\Gamma )
- /Delta (\\Delta )
- /Theta (\\Theta )
- /Lambda (\\Lambda )
- /Xi (\\Xi )
- /Pi (\\Pi )
- /Sigma (\\Sigma )
- /Upsilon (\\Upsilon )
-
- /Phi (\\Phi )
- /Psi (\\Psi )
- /Omega (\\Omega )
-
- /dotlessj (j)
- /ff (ff)
-
- /cwm ()
-
- /perthousandzero (0)
-
- /polishslash ()
-
- /Abreve (A*)
- /Aogonek (A,)
- /Cacute (C')
- /Ccaron (C^)
- /Dcaron (D^)
- /Ecaron (E^)
- /Eogonek (E,)
- /Gbreve (G*)
- /Lacute (L')
- /Lcaron (L^)
- /Nacute (N')
- /Ncaron (N^)
- /Eng (NG)
- /Ohungarumlaut (O"")
- /Racute (R')
- /Rcaron (R^)
- /Sacute (S')
- /Scaron (S^)
- /Scedilla (S,)
- /Tcaron (T^)
- /Tcedilla (T,)
- /Uhungarumlaut (U"")
- /Uring (U*)
- /Ydieresis (Y")
- /Zacute (Z')
- /Zcaron (Z^)
- /Zdot (Z.)
- /IJ (IJ)
- /Idot (I.)
- /dbar (d-)
- /abreve (a*)
- /aogonek (a,)
- /cacute (c')
- /ccaron (c^)
- /dcaron (d^)
- /ecaron (e^)
- /eogonek (e,)
- /gbreve (g*)
- /lacute (l')
- /lcaron (l^)
- /nacute (n')
- /ncaron (n^)
- /eng (ng)
- /ohungarumlaut (o"")
- /racute (r')
- /rcaron (r^)
- /sacute (s')
- /scaron (s^)
- /scedilla (s,)
- /tcaron (t^)
- /tcedilla (t,)
- /uhungarumlaut (u"")
- /uring (u*)
- /zacute (z')
- /zcaron (z^)
- /zdot (z.)
- /ij (ij)
- /Germandbls (SS)
-.chars.def
-
-%%* We extend the df-tail command to stick in an Encoding vector (see
-%%* above for a discussion of the T1 and OT1 encodings), put in a
-%%* FontName (which will just be dvips's name for the font, i.e., Fa,
-%%* Fb, etc.) and give each font a separate FontBBox instead of
-%%* letting them all share a single one.
-
-/dvips.df-tail % id numcc maxcc df-tail
- {
- /nn 9 dict N
- nn begin
- %%
- %% Choose an encoding based on the highest position occupied.
- %%
- dup 128 gt { T1Encoding } { OT1Encoding } ifelse
- /Encoding X
- /FontType 3 N
- %%
- %% It's ok for all the fonts to share a FontMatrix, but they
- %% need to have separate FontBBoxes
- %%
- /FontMatrix fntrx N
- /FontBBox [0 0 0 0] N
- string /base X
- array /BitMaps X
- %%
- %% And let's throw in a FontName for good measure
- %%
- dup ( ) cvs
- %%
- %% Make sure each font gets it own private FontName. -- dmj,
- %% 12/23/97
- %%
- dup length string copy
- /FontName X
- /BuildChar {CharBuilder} N
- end
- dup { /foo setfont }
- 2 array copy cvx N
- load
- 0 nn put
- /ctr 0 N
- [
-} def
-
-%%* This is functionally equivalent to dvips's /D procedure, but it
-%%* also calculates the Font Bounding Box while defining the
-%%* characters.
-
-/dvips.D % char-data ch D - : define character bitmap in current font
-{
- /cc X % char-data
- dup type /stringtype ne {]} if % char-data
-
- /ch-data X
- nn /base get cc ctr put % (adds ctr to cc'th position of BASE)
- nn /BitMaps get
- ctr
- ch-data % BitMaps ctr char-data
- sf 1 ne {
- dup dup length 1 sub dup 2 index S get sf div put
- } if
- put % puts char-data into BitMaps at index ctr
- /ctr ctr 1 add N
-%%
-%% Make sure the Font Bounding Box encloses the Bounding Box of the
-%% current character
-%%
- nn /FontBBox get % BB
-
- dup % calculate new llx
- dup 0 get
- ch-xoff
- .min
- 0 exch put
-
- dup % calculate new lly
- dup 1 get
- ch-yoff ch-height sub
- .min
- 1 exch put
-
- dup % calculate new urx
- dup 2 get
- ch-dx ch-width add
- .max
- 2 exch put
-
- dup 3 get % calculate new ury
- ch-yoff
- .max
- 3 exch put
-
-} def
-
-%%* Define start-hook to replace df-tail and D by our versions.
-%%* Unfortunately, the user can redefine start-hook and thus bypass
-%%* these changes, but I don't see an obvious way around that.
-
-userdict /start-hook {
- TeXDict /df-tail /dvips.df-tail load bind put
- TeXDict /D /dvips.D load bind put
-} put
-
-%%* Introduce a symbolic constant for hyphens. (Need to make
-%%* allowance for hyphen being in different place?)
-
-/.hyphen 45 def
-
-% Write out a string. If it ends in a letter and a hyphen,
-% don't write the hyphen, and set .show.last to a hyphen;
-% otherwise, set .show.last to the character (or \000 if it was a hyphen).
-/.show.write % <string>
- {
- dup length 1 ge
- { dup dup length 1 sub get % string last_char
- dup .hyphen eq % string last_char hyphen?
- { % string last_char
- 1 index length 1 gt
- { 1 index dup length 2 sub get }
- { //.show.last 0 get }
- ifelse % string last_char prev-char
- currentfont /Encoding get exch get % look up prev-char
- //.letter.chars exch known % is it a letter?
- { % Remove the hyphen % string last_char
- exch % last_char string
- dup length 1 sub % last_char string len-1
- 0 exch getinterval % last_char string-1
- exch % string-1 last_char
- }
- { pop 0 } % string 0
- ifelse
- }
- if
- //.show.last 0 3 -1 roll put % store last_char
- % in .show.last
- % If .show.last ==
- % hyphen, then
- % last char of
- % previous string
- % was a hyphen
- }
- if % string
- { % begin forall % c
- dup % c c
- currentfont /Encoding get % c c vec
- exch get % c name
- dup //.char.map exch known % c name bool
- { exch pop }
- { pop OT1Encoding exch get }
- ifelse % name
- //.char.map exch get % translation
- .show.stdout exch writestring
- }
- forall
-} odef
-
-/.showstring1 { % string
- currentpoint .coord % string x y
- 3 -1 roll dup .showwidth % x y string dx dy
- 1 index % x y string dx dy dx
- 0 rmoveto % x y string dx dy
- .dcoord pop % x y string width
- SIMPLE
- { % x y string width
- 2 index % x y string width y
- //.show.y .iget % x y string width y old.y
- %%*
- %%* Replaced test "has y changed" by "has y changed by more
- %%* than the current font height" so that subscripts and
- %%* superscripts won't cause line/paragraph breaks
- %%*
- sub abs dup % x y string width dy dy
- //.show.height .iget
- gt
- { % x y string width dy
-
- %%* Vertical position has changed by more than the font
- %%* height, so we now try to figure out whether we've
- %%* started a new paragraph or merely a new line, using a
- %%* variety of heuristics.
-
- %%* If any of the following is true, we start a new
- %%* paragraph:
-
- %%* (a) the current vertical shift is more than 1.1 times
- %%* the previous vertical shift, where 1.1 is an
- %%* arbitrarily chosen factor that could probably be
- %%* refined.
-
- dup % x y string width dy dy
- //.show.dy .iget 1.1 mul
- gt
- exch
-
- %%* Save the new vertical shift
-
- //.show.dy exch .iput
-
- %%* (b) The vertical shift is more than 1.3 times the
- %%* "size" of the current font. I've removed this
- %%* test since it's not really very useful.
-
-%%* //.show.dy .iget
-%%* //.show.height .iget 1.4 mul
-%%* gt % x y string width bool
-%%* .show.height .iget 0 gt and % only perform test if font
-%%* % height is nonzero
-%%* or
-
- %%* (c) the first character of the new line is one of the
- %%* .break.chars
-
- 2 index length % x y string width newpar? len
- 0 gt % x y string width newpar? len>0?
- {
- 2 index 0 get % x y string width newpar? s
- currentfont /Encoding get
- exch get % x y string width newpar? s_enc
- //.break.chars exch known { pop true } if
- }
- if % x y string width newpar?
-
- %%* (d) The indentation of the new line is greater than
- %%* the indentation of the previous line.
-
- 4 index
- //.show.indent .iget
- gt
- or
-
- %%* HOWEVER, if the line ends in a hyphen, we do NOT begin
- %%* a new paragraph (cf. comment at end of BF2). --dmj,
- %%* 12/23/97
-
- //.show.last 0 get .hyphen ne
- and
-
- % newpar?
- { (\n\n) } % Paragraph
- { % Line
- %%*
- %%* BF2: If last character on a line is
- %%* a hyphen, we omit the hyphen and
- %%* run the lines together. Of
- %%* course, this will fail if a word
- %%* with an explicit hyphen (e.g.,
- %%* X-ray) is split across two lines.
- %%* Oh, well. (What should we do
- %%* about a hyphen that ends a
- %%* "paragraph"? Perhaps that should
- %%* inhibit a paragraph break.)
- %%*
- //.show.last 0 get .hyphen eq
- { () }
- { ( ) }
- ifelse % x y string width char
- }
- ifelse
- //print
-
- //.show.y 3 index .iput % x y string width
- //.show.x 4 index .iput % x y string width
- //.show.indent 4 index .iput
- }
- { % x y string width dy
- % If the word processor split a hyphenated word within
- % the same line, put out the hyphen now.
- pop
- //.show.last 0 get .hyphen eq { (-) //print } if
- }
- ifelse
- %%*
- %%* If have moved more than 1 point to
- %%* the right, interpret it as a
- %%* space? This need to be looked at
- %%* more closely.
- %%*
- 3 index % x y string width x
- //.show.x .iget 10 add gt % x y string width bool
- { ( ) //print }
- if
- % x y string width
- 4 1 roll % width x y string
- .show.write pop % width x
- add //.show.x exch .iput % <empty>
- }
- { (S ) //print .show==4 }
- ifelse
-} odef
-
-/.showstring
- { dup () eq { pop } { .showstring1 } ifelse
- } bind def
-
-% Redefine all the string display operators.
-
-/show {
- .showfont
- .showcolor
- .showstring
-} codef
-
-% We define all the other operators in terms of .show1.
-
-/.show1.string ( ) def
-/.show1 { //.show1.string exch 0 exch put //.show1.string .showstring } odef
-/ashow
- { .showfont .showcolor
- { .show1 2 copy rmoveto } forall
- pop pop
- } codef
-/awidthshow
- { .showfont .showcolor
- { dup .show1 4 index eq { 4 index 4 index rmoveto } if
- 2 copy rmoveto
- }
- forall
- pop pop pop pop pop
- } codef
-/widthshow
- { .showfont .showcolor
- //.show1.string 0 4 -1 roll put
- { //.show1.string search not { exit } if
- .showstring .showstring
- 2 index 2 index rmoveto
- } loop
- .showstring pop pop
- } codef
-/kshow
- { .showfont .showcolor
- %**************** Should construct a closure, in case the procedure
- %**************** affects the o-stack.
- { .show1 dup exec } forall pop
- } codef
-
-% We don't really do the right thing with the Level 2 show operators,
-% but we do something semi-reasonable.
-/xshow { pop show } codef
-/yshow { pop show } codef
-/xyshow { pop show } codef
-/glyphshow
- { currentfont /Encoding .knownget not { {} } if
- 0 1 2 index length 1 sub
- { % Stack: glyph encoding index
- 2 copy get 3 index eq { exch pop exch pop null exit } if
- pop
- }
- for null eq { (X) dup 0 4 -1 roll put show } { pop } ifelse
- } codef
-
-end
-
-% Bind the operators we just defined, and all the others if we didn't
-% do it before. Also reenable 'bind' for future files.
-
-.bindoperators
-NOBIND currentdict systemdict ne and
- { systemdict begin .bindoperators end }
-if
-NOBIND
- { /bind /.bind load def }
-if
-
-% Make systemdict read-only if it wasn't already.
-
-systemdict wcheck { systemdict readonly pop } if
-
-% Restore the current local/global VM mode.
-
-exec
-
-
diff --git a/Master/xemtex/gslib/ps2epsi b/Master/xemtex/gslib/ps2epsi
deleted file mode 100644
index 8e349d205a1..00000000000
--- a/Master/xemtex/gslib/ps2epsi
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/sh
-# $Id: ps2epsi,v 1.7.2.1 2002/04/22 20:18:24 giles Exp $
-
-tmpfile=/tmp/ps2epsi$$
-
-export outfile
-
-if [ $# -lt 1 -o $# -gt 2 ]; then
- echo "Usage: `basename $0` file.ps [file.epsi]" 1>&2
- exit 1
-fi
-
-infile=$1;
-
-if [ $# -eq 1 ]
-then
- case "${infile}" in
- *.ps) base=`basename "${infile}" .ps` ;;
- *.cps) base=`basename "${infile}" .cps` ;;
- *.eps) base=`basename "${infile}" .eps` ;;
- *.epsf) base=`basename "${infile}" .epsf` ;;
- *) base=`basename "${infile}"` ;;
- esac
- outfile=${base}.epsi
-else
- outfile=$2
-fi
-
-ls -l "${infile}" |
-awk 'F==1 {
- cd="%%CreationDate: " $6 " " $7 " " $8;
- t="%%Title: " $9;
- f="%%For:" U " " $3;
- c="%%Creator: Ghostscript ps2epsi from " $9;
- next;
- }
- /^%!/ {next;}
- /^%%Title:/ {t=$0; next;}
- /^%%Creator:/ {c=$0; next;}
- /^%%CreationDate:/ {cd=$0; next;}
- /^%%For:/ {f=$0; next;}
- !/^%/ {
- print "/ps2edict 30 dict def";
- print "ps2edict begin";
- print "/epsititle (" t "\\n) def";
- print "/epsicreator (" c "\\n) def";
- print "/epsicrdt (" cd "\\n) def";
- print "/epsifor (" f "\\n) def";
- print "end";
- exit(0);
- }
- ' U="$USERNAME$LOGNAME" F=1 - F=2 "${infile}" >$tmpfile
-
-gs -q -dNOPAUSE -dSAFER -dDELAYSAFER -r72 -sDEVICE=bit -sOutputFile=/dev/null $tmpfile ps2epsi.ps $tmpfile <"${infile}" 1>&2
-rm -f $tmpfile
-
-(
-cat << BEGINEPS
-save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def
-%%EndProlog
-%%Page: 1 1
-%%BeginDocument: ${infile}
-BEGINEPS
-
-cat "${infile}" |
-sed -e '/^%%BeginPreview:/,/^%%EndPreview[^!-~]*$/d' -e '/^%!PS-Adobe/d'\
- -e '/^%%[A-Za-z][A-Za-z]*[^!-~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
-
-cat << ENDEPS
-%%EndDocument
-%%Trailer
-cleartomark countdictstack exch sub { end } repeat restore
-%%EOF
-ENDEPS
-
-) >> "${outfile}"
-
-exit 0
diff --git a/Master/xemtex/gslib/ps2epsi.bat b/Master/xemtex/gslib/ps2epsi.bat
deleted file mode 100644
index 53ff10d1aac..00000000000
--- a/Master/xemtex/gslib/ps2epsi.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-@rem $Id: ps2epsi.bat,v 1.6 2001/06/22 16:09:22 lpd Exp $
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-
-call gssetgs.bat
-set infile=%1
-set outfile=%2
-
-rem Ghostscript uses %outfile% to define the output file
-%GSC% -q -dNOPAUSE -dSAFER -dDELAYSAFER -sDEVICE=bit -sOutputFile=NUL ps2epsi.ps < %infile%
-
-rem We bracket the actual file with a few commands to help encapsulation
-echo /InitDictCount countdictstack def gsave save mark newpath >> %outfile%
-
-rem Append the original onto the preview header
-copy %outfile% + %infile%
-
-echo countdictstack InitDictCount sub { end } repeat >> %outfile%
-echo cleartomark restore grestore >> %outfile%
-
-goto end
-
-:usage
-echo "Usage: ps2epsi <infile.ps> <outfile.epi>"
-
-:end
diff --git a/Master/xemtex/gslib/ps2epsi.cmd b/Master/xemtex/gslib/ps2epsi.cmd
deleted file mode 100755
index d5a0f52ccba..00000000000
--- a/Master/xemtex/gslib/ps2epsi.cmd
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id: ps2epsi.cmd,v 1.3 2001/06/22 16:09:22 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-@echo off
-if %1/==/ goto usage
-if %2/==/ goto usage
-
-set infile=%1
-set outfile=%2
-
-rem Ghostscript uses %outfile% to define the output file
-gsos2 -q -dNOPAUSE -dSAFER -dDELAYSAFER -sDEVICE=bit -sOutputFile=NUL ps2epsi.ps < %infile%
-
-rem We bracket the actual file with a few commands to help encapsulation
-echo /InitDictCount countdictstack def gsave save mark newpath >> %outfile%
-
-rem Append the original onto the preview header
-copy %outfile% + %infile%
-
-echo countdictstack InitDictCount sub { end } repeat >> %outfile%
-echo cleartomark restore grestore >> %outfile%
-
-goto end
-
-:usage
-echo "Usage: ps2epsi <infile.ps> <outfile.epi>"
-
-:end
diff --git a/Master/xemtex/gslib/ps2epsi.ps b/Master/xemtex/gslib/ps2epsi.ps
deleted file mode 100644
index 0bd22288def..00000000000
--- a/Master/xemtex/gslib/ps2epsi.ps
+++ /dev/null
@@ -1,248 +0,0 @@
-% Copyright (C) 1990-2002 artofcode LLC. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: ps2epsi.ps,v 1.5.2.3.2.1 2003/04/12 14:02:39 giles Exp $
-% Convert an arbitrary PostScript file to an EPSI file.
-%
-% Please do not contact these users if you have questions. They no longer
-% have the time, interest, or current expertise to keep this code working.
-% If you find bugs, please send proposed fixes to bug-gs@aladdin.com.
-%
-% Bug fix 2002-04-20 by rayjj: Bounding box was incorrect since it depended
-% on the dither pattern and gray shade at the boundary. Changed to use
-% 8-bit grayscale preview image to allow correct bounding box (at the
-% expense of a 8x larger preview image). Also moved .setsafe until after
-% the device and file operations are complete (but still before the input
-% file is processed.
-% Bug fix 2000-04-11 by lpd: if a font didn't have a FontName (which is the
-% case for bitmap fonts produced by recent versions of dvips), setfont
-% caused an error.
-% Bug fix 8/21/99 by lpd: many of the margin and width computations were
-% wrong (off by 1). The code only "worked" because the bugs were
-% (mostly) in conservative directions.
-% Modified 3/17/98 by lpd to make it possible to run this file without
-% running the ps2epsi script first, for debugging.
-% Bug fix 9/29/97 by lpd <ghost@aladdin.com>: if the page size wasn't an
-% exact multiple of 8 bits, an incorrect bounding box (or a rangecheck
-% error) could occur.
-% Patched 7/26/95 by
-% Greg P. Kochanski <gpk@bell-labs.com>
-% to add many new DSC comments and make the comments conforming.
-% Original version contributed by
-% George Cameron <george@bio-medical-physics.aberdeen.ac.uk>
-%
-
-% Initialize, and redefine copypage and showpage.
-
-% ps2edict is normally defined in the pre-loaded code created by the
-% ps2epsi script.
-/ps2edict where { pop } { /ps2edict 25 dict def } ifelse
-ps2edict begin
-
- % The main procedure
- /ps2epsi
- { % Open the file
- outfile (w) file /epsifile exch def
- % Get the device parameters
- currentdevice getdeviceprops .dicttomark
- /HWSize get aload pop
- /devheight exch def
- /devwidth exch def
- matrix defaultmatrix
- /devmatrix exch def
- % Make a corresponding 8-bit deep memory device
- devmatrix devwidth devheight
- 256 string 0 1 255 { 1 index exch dup 255 exch sub put } for
- makeimagedevice
- /arraydevice exch def
- arraydevice
- % Turn on anti-aliasing
- mark /TextAlphaBits 4 /GraphicsAlphaBits 4 6 -1 roll
- putdeviceprops
- setdevice % (does an erasepage)
- /rowwidth devwidth def
- /row rowwidth string def
- /zerorow rowwidth string def % all zero
- % Replace the definition of showpage
- userdict /showpage { ps2edict begin epsipage end } bind put
- userdict /setfont { ps2edict begin epsisetfont end } bind put
- //systemdict /.setsafe known { .setsafe } if
- } bind def
-
- /epsifontdict 100 dict def
-
- /epsisetfont
- {
- % code here keeps a list of font names in dictionary epsifontdict
- /tmpfont exch def
- tmpfont /FontName known {
- /tmpfontname tmpfont /FontName get def
- epsifontdict tmpfontname known not { epsifontdict tmpfontname 0 put } if
- epsifontdict tmpfontname 2 copy get 1 add put
- } if
- tmpfont setfont
- } bind def
-
-% Get a scan line from the memory device, zeroing any bits beyond
-% the device width.
-/getscanline { % <device> <y> <string> getscanline <string>
- dup 4 1 roll copyscanlines pop
- 16#ff00 devwidth 7 and neg bitshift 255 and
- dup 0 ne {
- 1 index dup length 1 sub 2 copy get 4 -1 roll and put
- } {
- pop
- } ifelse
-} bind def
-
-/margintest { % <y-start> <step> <y-limit> margintest <y-non-blank>
- % <y-start> <step> <y-limit> margintest -
- { dup arraydevice exch row getscanline
- zerorow ne { exit } if pop
- } for
-} bind def
-
-
- /epsiNameStr 200 string def
- /epsiNpages 0 def
- /epsiNpageStr 20 string def
- /epsipage
- {
- /epsiNpages epsiNpages 1 add def
- /loopcount devheight 1 sub def
-
- % Find top margin -- minimum Y of non-blank scan line.
- -1 0 1 loopcount margintest
- dup -1 eq { (blank page!!\n) print quit }{ exch pop } ifelse
- /tm exch def
-
- % Find bottom margin -- maximum Y of non-blank scan line.
- loopcount -1 0 margintest
- /bm exch def
-
- % Initialise limit variables
- /loopcount rowwidth 1 sub def
- /lm loopcount def
- /rm 0 def
-
- % Find left and right boundaries of image
- tm 1 bm
- { % Get more data
- arraydevice exch row getscanline pop
- % Scan from left to find first non-zero element
- % We save first the element, then the index
- -1 0 1 loopcount
- { dup row exch get 0 ne { exch pop exit }{ pop } ifelse
- } for
- % If we found -1, row is blank ..
- dup -1 ne
- { % Find the leftmost index
- dup lm lt
- % If the new index is less, we save index and element
- { /lm exch def } { pop } ifelse
- % Now find the rightmost index
- loopcount -1 0
- { dup row exch get 0 ne { exit }{ pop } ifelse
- } for
- dup rm gt
- % If the new index is greater, we save index and element
- { /rm exch def } { pop } ifelse
- } if
- } for
-
- % Calculate the bounding box values.
- % Note that these must be corrected to produce closed-open intervals.
- /llx lm def
- /lly devheight bm sub 1 sub def
- /urx rm 1 add def
- /ury devheight tm sub def
-
- % Write out the magic string and bounding box information
- epsifile (%!PS-Adobe-2.0 EPSF-1.2\n) writestring
- /epsititle where { pop epsifile epsititle writestring } if
- /epsicreator where { pop epsifile epsicreator writestring } if
- /epsicrdt where { pop epsifile epsicrdt writestring } if
- /epsifor where { pop epsifile epsifor writestring } if
- epsifile flushfile
-
- % Write out the page count:
- epsifile (%%Pages: ) writestring
- epsifile epsiNpages epsiNpageStr cvs writestring
- epsifile (\n) writestring
- epsifile flushfile
-
- % Write out the list of used fonts:
- epsifile (%%DocumentFonts:) writestring
- epsifontdict {
- epsifile ( ) writestring
- pop epsiNameStr cvs epsifile exch writestring
- } forall
- epsifile (\n) writestring
- epsifile flushfile
-
- epsifile (%%BoundingBox: ) writestring
- epsifile llx write==only epsifile ( ) writestring
- epsifile lly write==only epsifile ( ) writestring
- epsifile urx write==only epsifile ( ) writestring
- epsifile ury write==
-
- % Define character and bit widths for the output line buffer:
- /cwidth rm lm sub 1 add def
- /out cwidth string def
-
- epsifile (%%BeginPreview: ) writestring
- epsifile cwidth write==only epsifile ( ) writestring
- epsifile bm tm sub 1 add write==only epsifile ( 8 ) writestring
- epsifile bm tm sub 1 add
- cwidth 39 add 40 idiv mul write==
- epsifile flushfile
-
- gsave
-
- tm 1 bm
- { % Get a scan line interval from the array device
- arraydevice exch row copyscanlines lm cwidth getinterval
- % Write out the hex data as 40 bytes per line (82 chars)
- 0 40 cwidth
- { epsifile (% ) writestring
- epsifile exch 2 index exch
- dup cwidth exch sub 40 .min getinterval writehexstring
- epsifile (\n) writestring
- } for
- pop
- } for
-
- epsifile (%%EndImage\n) writestring
- epsifile (%%EndPreview\n) writestring
- epsifile flushfile
- grestore
- erasepage initgraphics
-
- DonePage 0 1 put
- } bind def
-
-
-(outfile) getenv
- { /outfile exch def
- ps2epsi
-
- /DonePage 1 string def
- (%stdin) (r) file cvx execute0
- DonePage 0 get 0 eq { showpage } if
- } if
-
-end
-quit
diff --git a/Master/xemtex/gslib/ps2pdf b/Master/xemtex/gslib/ps2pdf
deleted file mode 100644
index 1f4c8376531..00000000000
--- a/Master/xemtex/gslib/ps2pdf
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-# $Id: ps2pdf,v 1.1 2000/03/09 08:40:40 lpd Exp $
-# Convert PostScript to PDF.
-
-# Currently, we produce PDF 1.2 by default, but this is not guaranteed
-# not to change in the future.
-exec ps2pdf12 "$@"
diff --git a/Master/xemtex/gslib/ps2pdf.bat b/Master/xemtex/gslib/ps2pdf.bat
deleted file mode 100644
index 4abdf2becaf..00000000000
--- a/Master/xemtex/gslib/ps2pdf.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-@rem $Id: ps2pdf.bat,v 1.6 2001/06/22 16:09:22 lpd Exp $
-
-rem Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible).
-rem The default PDF compatibility level may change in the future:
-rem use ps2pdf12 or ps2pdf13 if you want a specific level.
-
-rem The current default compatibility level is PDF 1.2.
-echo -dCompatibilityLevel#1.2 >_.at
-goto bot
-
-rem Pass arguments through a file to avoid overflowing the command line.
-:top
-echo %1 >>_.at
-shift
-:bot
-if not %3/==/ goto top
-call ps2pdfxx %1 %2
diff --git a/Master/xemtex/gslib/ps2pdf.cmd b/Master/xemtex/gslib/ps2pdf.cmd
deleted file mode 100755
index 1ca35f2f416..00000000000
--- a/Master/xemtex/gslib/ps2pdf.cmd
+++ /dev/null
@@ -1,43 +0,0 @@
-/* $Id: ps2pdf.cmd,v 1.1 2000/07/05 16:21:13 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible). */
-/* The PDF compatibility level may change in the future: */
-/* use ps2pdf12 or ps2pdf13 if you want a specific level. */
-
-parse arg params
-
-gs='@gsos2'
-inext='.ps'
-outext='.pdf'
-
-if params='' then call usage
-
-options=''
-
-/* extract options from command line */
-i=1
-param=word(params,i)
-do while substr(param,1,1)='-'
- options=options param
- i=i+1
- param=word(params,i)
-end
-
-infile=param
-if infile='' then call usage
-outfile=word(params,i+1)
-if outfile='' then do
- outfile=infile''outext
- infile=infile''inext
-end
-
-gs options '-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile='outfile options '-c save pop -f' infile
-exit
-
-usage:
-say 'Usage: ps2pdf [options...] input[.ps output.pdf]'
-exit
diff --git a/Master/xemtex/gslib/ps2pdf12 b/Master/xemtex/gslib/ps2pdf12
deleted file mode 100644
index 885960a0476..00000000000
--- a/Master/xemtex/gslib/ps2pdf12
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# $Id: ps2pdf12,v 1.1 2000/03/09 08:40:40 lpd Exp $
-# Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible).
-
-exec ps2pdfwr -dCompatibilityLevel=1.2 "$@"
diff --git a/Master/xemtex/gslib/ps2pdf12.bat b/Master/xemtex/gslib/ps2pdf12.bat
deleted file mode 100644
index c18d30c2f30..00000000000
--- a/Master/xemtex/gslib/ps2pdf12.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-@rem $Id: ps2pdf12.bat,v 1.5 2001/06/22 16:09:22 lpd Exp $
-
-rem Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible).
-
-echo -dCompatibilityLevel#1.2 >_.at
-goto bot
-
-rem Pass arguments through a file to avoid overflowing the command line.
-:top
-echo %1 >>_.at
-shift
-:bot
-if not %3/==/ goto top
-call ps2pdfxx %1 %2
diff --git a/Master/xemtex/gslib/ps2pdf12.cmd b/Master/xemtex/gslib/ps2pdf12.cmd
deleted file mode 100755
index 2514039a76c..00000000000
--- a/Master/xemtex/gslib/ps2pdf12.cmd
+++ /dev/null
@@ -1,11 +0,0 @@
-/* $Id: ps2pdf12.cmd,v 1.1 2000/07/05 16:21:13 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible). */
-
-parse arg params
-
-call 'ps2pdf' '-dCompatibilityLevel=1.2' params
diff --git a/Master/xemtex/gslib/ps2pdf13 b/Master/xemtex/gslib/ps2pdf13
deleted file mode 100644
index 86b4d3ca963..00000000000
--- a/Master/xemtex/gslib/ps2pdf13
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# $Id: ps2pdf13,v 1.1 2000/03/09 08:40:40 lpd Exp $
-# Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible).
-
-exec ps2pdfwr -dCompatibilityLevel=1.3 "$@"
diff --git a/Master/xemtex/gslib/ps2pdf13.bat b/Master/xemtex/gslib/ps2pdf13.bat
deleted file mode 100644
index 3881a1c967f..00000000000
--- a/Master/xemtex/gslib/ps2pdf13.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-@rem $Id: ps2pdf13.bat,v 1.5 2001/06/22 16:09:22 lpd Exp $
-
-rem Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible).
-
-echo -dCompatibilityLevel#1.3 >_.at
-goto bot
-
-rem Pass arguments through a file to avoid overflowing the command line.
-:top
-echo %1 >>_.at
-shift
-:bot
-if not %3/==/ goto top
-call ps2pdfxx %1 %2
diff --git a/Master/xemtex/gslib/ps2pdf13.cmd b/Master/xemtex/gslib/ps2pdf13.cmd
deleted file mode 100755
index 8b26b38874b..00000000000
--- a/Master/xemtex/gslib/ps2pdf13.cmd
+++ /dev/null
@@ -1,11 +0,0 @@
-/* $Id: ps2pdf13.cmd,v 1.2 2000/09/10 19:32:44 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible). */
-
-parse arg params
-
-call 'ps2pdf' '-dCompatibilityLevel=1.3' params
diff --git a/Master/xemtex/gslib/ps2pdf14 b/Master/xemtex/gslib/ps2pdf14
deleted file mode 100644
index 65802329861..00000000000
--- a/Master/xemtex/gslib/ps2pdf14
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# $Id: ps2pdf14,v 1.1 2000/09/10 19:33:47 lpd Exp $
-# Convert PostScript to PDF 1.4 (Acrobat 5-and-later compatible).
-
-exec ps2pdfwr -dCompatibilityLevel=1.4 "$@"
diff --git a/Master/xemtex/gslib/ps2pdf14.bat b/Master/xemtex/gslib/ps2pdf14.bat
deleted file mode 100644
index a5f7d7d9397..00000000000
--- a/Master/xemtex/gslib/ps2pdf14.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-@rem $Id: ps2pdf14.bat,v 1.2 2001/06/22 16:09:22 lpd Exp $
-
-rem Convert PostScript to PDF 1.4 (Acrobat 5-and-later compatible).
-
-echo -dCompatibilityLevel#1.4 >_.at
-goto bot
-
-rem Pass arguments through a file to avoid overflowing the command line.
-:top
-echo %1 >>_.at
-shift
-:bot
-if not %3/==/ goto top
-call ps2pdfxx %1 %2
diff --git a/Master/xemtex/gslib/ps2pdf14.cmd b/Master/xemtex/gslib/ps2pdf14.cmd
deleted file mode 100755
index 9144e695dae..00000000000
--- a/Master/xemtex/gslib/ps2pdf14.cmd
+++ /dev/null
@@ -1,11 +0,0 @@
-/* $Id: ps2pdf14.cmd,v 1.1 2000/09/10 19:33:47 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* Convert PostScript to PDF 1.4 (Acrobat 5-and-later compatible). */
-
-parse arg params
-
-call 'ps2pdf' '-dCompatibilityLevel=1.4' params
diff --git a/Master/xemtex/gslib/ps2pdfwr b/Master/xemtex/gslib/ps2pdfwr
deleted file mode 100644
index 562824094bc..00000000000
--- a/Master/xemtex/gslib/ps2pdfwr
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# $Id: ps2pdfwr,v 1.6.2.1 2002/01/22 21:34:04 jackiem Exp $
-# Convert PostScript to PDF without specifying CompatibilityLevel.
-
-OPTIONS="-dSAFER"
-while true
-do
- case "$1" in
- -?*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -lt 1 -o $# -gt 2 ]; then
- echo "Usage: `basename $0` [options...] (input.[e]ps|-) [output.pdf|-]" 1>&2
- exit 1
-fi
-
-infile="$1";
-
-if [ $# -eq 1 ]
-then
- case "${infile}" in
- -) outfile=- ;;
- *.eps) base=`basename "${infile}" .eps`; outfile="${base}.pdf" ;;
- *.ps) base=`basename "${infile}" .ps`; outfile="${base}.pdf" ;;
- *) base=`basename "${infile}"`; outfile="${base}.pdf" ;;
- esac
-else
- outfile="$2"
-fi
-
-# We have to include the options twice because -I only takes effect if it
-# appears before other options.
-exec gs $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "-sOutputFile=$outfile" $OPTIONS -c .setpdfwrite -f "$infile"
diff --git a/Master/xemtex/gslib/ps2pdfxx.bat b/Master/xemtex/gslib/ps2pdfxx.bat
deleted file mode 100644
index 5e6797d0d35..00000000000
--- a/Master/xemtex/gslib/ps2pdfxx.bat
+++ /dev/null
@@ -1,56 +0,0 @@
-@echo off
-@rem $Id: ps2pdfxx.bat,v 1.10 2001/06/22 16:09:22 lpd Exp $
-rem Internal batch file for calling pdfwrite driver.
-
-rem The files that call this one (ps2pdf*.bat) write the command-line
-rem options into _.at, and then pass the last 2 (or fewer) arguments
-rem to this file.
-
-call gssetgs.bat
-echo -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite >_.at2
-
-if "%OS%"=="Windows_NT" goto nt
-
-rem Run ps2pdf on any Microsoft OS.
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-
-rem Watcom C deletes = signs, so use # instead.
-rem We have to include the options twice because -I only takes effect if it
-rem appears before other options.
-
-:run
-echo -sOutputFile#%2 >>_.at2
-copy /b /y _.at2+_.at >NUL
-echo -c .setpdfwrite -f %1 >>_.at2
-%GSC% @_.at @_.at2
-goto end
-
-:usage
-echo Usage: ps2pdf [options...] input.[e]ps output.pdf
-goto end
-
-rem Run ps2pdf on Windows NT.
-
-:nt
-if not CMDEXTVERSION 1 goto run
-if %1/==/ goto ntusage
-if %2/==/ goto nooutfile
-goto run
-
-:ntusage
-echo Usage: ps2pdf input.ps [output.pdf]
-echo or: ps2pdf [options...] input.[e]ps output.pdf
-goto end
-
-:nooutfile
-rem We don't know why the circumlocution with _1 is needed....
-set _1=%1
-call ps2pdfxx %1 %_1:.PS=.pdf%
-set _1=
-
-:end
-rem Clean up.
-if exist _.at erase _.at
-if exist _.at2 erase _.at2
diff --git a/Master/xemtex/gslib/ps2ps b/Master/xemtex/gslib/ps2ps
deleted file mode 100644
index 9449b563fb6..00000000000
--- a/Master/xemtex/gslib/ps2ps
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-# $Id: ps2ps,v 1.3 2001/06/22 16:09:22 lpd Exp $
-# "Distill" PostScript.
-
-OPTIONS="-dSAFER"
-while true
-do
- case "$1" in
- -*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -ne 2 ]; then
- echo "Usage: `basename $0` ...switches... input.ps output.ps" 1>&2
- exit 1
-fi
-
-exec gs -q -sDEVICE=pswrite "-sOutputFile=$2" -dNOPAUSE -dBATCH $OPTIONS "$1"
diff --git a/Master/xemtex/gslib/ps2ps.bat b/Master/xemtex/gslib/ps2ps.bat
deleted file mode 100644
index be005e0f484..00000000000
--- a/Master/xemtex/gslib/ps2ps.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off
-@rem $Id: ps2ps.bat,v 1.4 2001/06/22 16:09:22 lpd Exp $
-@rem "Distill" PostScript.
-
-if %1/==/ goto usage
-if %2/==/ goto usage
-call gssetgs.bat
-echo -dNODISPLAY -dNOPAUSE -dSAFER -dBATCH >_.at
-:cp
-if %3/==/ goto doit
-echo %1 >>_.at
-shift
-goto cp
-
-:doit
-rem Watcom C deletes = signs, so use # instead.
-%GSC% -q -sDEVICE#pswrite -sOutputFile#%2 @_.at %1
-goto end
-
-:usage
-echo "Usage: ps2ps ...switches... input.ps output.ps"
-
-:end
diff --git a/Master/xemtex/gslib/ps2ps.cmd b/Master/xemtex/gslib/ps2ps.cmd
deleted file mode 100755
index 9a556fdff14..00000000000
--- a/Master/xemtex/gslib/ps2ps.cmd
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id: ps2ps.cmd,v 1.1 2000/07/05 16:21:13 lpd Exp $ */
-/*
- * This file is maintained by a user: if you have any questions about it,
- * please contact Mark Hale (mark.hale@physics.org).
- */
-
-/* "Distill" PostScript. */
-
-parse arg params
-
-gs='@gsos2'
-
-if params='' then call usage
-
-options='-dNOPAUSE -dBATCH'
-
-/* extract options from command line */
-i=1
-param=word(params,i)
-do while substr(param,1,1)='-'
- options=options param
- i=i+1
- param=word(params,i)
-end
-
-infile=param
-if infile='' then call usage
-outfile=word(params,i+1)
-if outfile='' then call usage
-
-gs '-q -sDEVICE=pswrite -sOutputFile='outfile options infile
-exit
-
-usage:
-say 'Usage: ps2ps ...switches... input.ps output.ps'
-exit
diff --git a/Master/xemtex/gslib/pv.sh b/Master/xemtex/gslib/pv.sh
deleted file mode 100644
index 0f3ae56f1c7..00000000000
--- a/Master/xemtex/gslib/pv.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh -f
-# $Id: pv.sh,v 1.1 2000/03/09 08:40:40 lpd Exp $
-#
-# pv - preview a specified page of a dvi file in a Ghostscript window
-# usage: pv page file
-#
-# pv converts the given page to PostScript and displays it
-# in a Ghostscript window.
-#
-if [ $# -lt 2 ] ;then
- echo usage: $0 'page_number file_name[.dvi]'
- exit 1
-fi
-#
-# The following line used to appear here:
-#
-#RESOLUTION=100
-#
-# But according to Peter Dyballa
-# <pete@lovelace.informatik.uni-frankfurt.de>, "Modern versions of dvips are
-# taught to read configuration files which tell them the paths to PK, TFM,
-# VF and other files for example PostScript font programmes. These files
-# tell #dvips too which default resolution is used and therefore which
-# series of PK files (based on 300 DPI or 400 DPI or 600 DPI or even more)
-# are held on the system." So we have deleted this line, and also removed
-# the -D switch from the call of dvips below.
-#
-TEMPDIR=.
-PAGE=$1
-shift
-FILE=$1
-shift
-trap "rm -rf $TEMPDIR/$FILE.$$.pv" 0 1 2 15
-#dvips -D$RESOLUTION -p $PAGE -n 1 $FILE $* -o $FILE.$$.pv
-dvips -p $PAGE -n 1 $FILE $* -o $FILE.$$.pv
-gs $FILE.$$.pv
-exit 0
diff --git a/Master/xemtex/gslib/quit.ps b/Master/xemtex/gslib/quit.ps
deleted file mode 100644
index eb5f288470a..00000000000
--- a/Master/xemtex/gslib/quit.ps
+++ /dev/null
@@ -1 +0,0 @@
-quit
diff --git a/Master/xemtex/gslib/ras1.upp b/Master/xemtex/gslib/ras1.upp
deleted file mode 100644
index beb3433f845..00000000000
--- a/Master/xemtex/gslib/ras1.upp
+++ /dev/null
@@ -1,8 +0,0 @@
--supModel="SUN rasterfile, 1 Bit, 2 Colors (Ghostscript-Rendering)"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/SunRaster
--dupComponentBits={1}
diff --git a/Master/xemtex/gslib/ras24.upp b/Master/xemtex/gslib/ras24.upp
deleted file mode 100644
index c92f26e9694..00000000000
--- a/Master/xemtex/gslib/ras24.upp
+++ /dev/null
@@ -1,8 +0,0 @@
--supModel="SUN rasterfile, 24 Bit, 7 Colors (RGB-Error-Diffusion)"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceRGB
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/SunRaster
--dupComponentBits="{8 8 8}"
diff --git a/Master/xemtex/gslib/ras3.upp b/Master/xemtex/gslib/ras3.upp
deleted file mode 100644
index 96a0a2c7087..00000000000
--- a/Master/xemtex/gslib/ras3.upp
+++ /dev/null
@@ -1,8 +0,0 @@
--supModel="SUN rasterfile, 3 Bit, 7 Colors (RGB-Ghostscript)"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceRGB
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/SunRaster
--dupComponentBits="{1 1 1}"
diff --git a/Master/xemtex/gslib/ras32.upp b/Master/xemtex/gslib/ras32.upp
deleted file mode 100644
index f75c6bbfa77..00000000000
--- a/Master/xemtex/gslib/ras32.upp
+++ /dev/null
@@ -1,8 +0,0 @@
--supModel="SUN rasterfile, 32 Bit, 6+1 Colors (CMYK-Error-Diffusion)"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/SunRaster
-
diff --git a/Master/xemtex/gslib/ras4.upp b/Master/xemtex/gslib/ras4.upp
deleted file mode 100644
index 1a9330058fa..00000000000
--- a/Master/xemtex/gslib/ras4.upp
+++ /dev/null
@@ -1,8 +0,0 @@
--supModel="SUN rasterfile, 4 Bit, 6+1 Colors (CMYK-Ghostscript)"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/SunRaster
--dupComponentBits="{1 1 1 1}"
diff --git a/Master/xemtex/gslib/ras8m.upp b/Master/xemtex/gslib/ras8m.upp
deleted file mode 100644
index 304ad535d41..00000000000
--- a/Master/xemtex/gslib/ras8m.upp
+++ /dev/null
@@ -1,8 +0,0 @@
--supModel="SUN rasterfile, 8 Bit, 2 Colors (Error-Diffusion)"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/SunRaster
--dupComponentBits={8}
diff --git a/Master/xemtex/gslib/rollconv.ps b/Master/xemtex/gslib/rollconv.ps
deleted file mode 100644
index fbf5cacea69..00000000000
--- a/Master/xemtex/gslib/rollconv.ps
+++ /dev/null
@@ -1,385 +0,0 @@
-%!
-% Copyright (C) 1995, 1996 Aladdin Enterprises. All rights reserved.
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: rollconv.ps,v 1.1.8.1 2003/04/12 14:02:39 giles Exp $
-% Utility program for converting Japanese fonts produced by Macromedia's
-% Rollup program to Type 0 fonts suitable for use with Ghostscript.
-%
-% Rollup produces the following files, where xxx is the font name:
-% xxx-H, xxx-SA, xxx-SB, xxx-SK, xxx-SR, xxx-UG
-% JIS83-1_COD
-% JIS83-1_CSA
-% The _COD and _CSA files are large files containing the actual
-% character outline data; they may theoretically be shared between
-% multiple fonts.
-%
-% rollconv.ps converts the above to files named:
-% fff.ps
-% fff.COD
-% fff.CSA
-% fff.CSR
-% where fff is a font file name provided by the user at conversion time.
-% The fff.ps file is the actual font file to be loaded with `run'
-% or placed in a Fontmap or a directory named by [GS_]FONTPATH;
-% the other two files must be present at runtime in a directory that is
-% on Ghostscript's search path (-I, GS_LIB, GS_LIB_DEFAULT).
-%
-% The normal way to invoke this program is
-% gsnd -- rollconv.ps xxx fff InDir CDir OutDir
-% (assuming that gsnd is an alias for gs -dNODISPLAY), where:
-% xxx is the font name;
-% fff is the base part of the output file name;
-% InDir is the name of the directory containing the xxx-* input files;
-% CDir is the name of the directory containing the _COD and _CSA
-% input files (typically the same as InDir);
-% OutDir is the name of the directory where the output should be written
-% (OutDir must already exist).
-% For example:
-% gsnd -- rollconv.ps HGGothicBPRO gothic /gs/k/rufonts/Gothic \
-% /gs/k/rufonts/Gothic /gs/k/gsfonts
-% To suppress output messages, you may insert -q:
-% gsnd -q -- rollconv.ps ...
-%
-% This program assumes that the files have been FTP'ed from a Macintosh and
-% therefore have 128 bytes of garbage at the beginning. If you have
-% transferred them in some manner that avoids this, change true to false
-% in the following line.
-/fromMac true def
-% The FontName of the converted font is xxx-83pv-RKSJ-H. In order to
-% use a converted font with Ghostscript, you may either load it explicitly
-% at run time, e.g.,
-% (gothic.ps) run
-% or you may add an entry to the Fontmap file, in the form:
-% /HGGothicBPRO-83pv-RKSJ-H (gothic.ps) ;
-% which will allow the font to be loaded automatically. After
-% loading the font, by either method, you can select it in the usual way:
-% /HGGothicBPRO-83pv-RKSJ-H findfont 36 scalefont setfont
-% or
-% /HGGothicBPRO-83pv-RKSJ-H 36 selectfont
-
-
-/macrfile % <filename> macrfile <file>
- { (r) file
- fromMac
- { % Get rid of the initial Mac garbage (128 characters).
- % The garbage at the end is unpredictable,
- % so we'll just have to hope that it's all nulls.
- dup =string 0 128 getinterval readstring pop pop
- }
- if
- } bind def
-
-/convert % <FName> <OutBase> <InDir> <CDir> <OutDir> convert -
- { /OutDir exch def
- /CDir exch def
- /InDir exch def
- /OutBase exch def
- /FName exch def
-
- /inprefix InDir (/) concatstrings FName concatstrings (-) concatstrings def
- /inh inprefix (H) concatstrings def
-
- % Open the output file.
-
-/OutDot OutDir (/) concatstrings OutBase concatstrings (.) concatstrings def
-/outname OutDot (ps) concatstrings def
-QUIET not { (Writing ) print outname = flush } if
-/cdfromstr (\(pgfonts/) FName concatstrings (-JIS83-1_) concatstrings def
-/cdstr (\() OutBase concatstrings (.) concatstrings def
-/out outname (w) file def
-/buffer 65000 string def
-
- % Copy the initial comments from the input file.
-
-inh macrfile
- { dup =string readline pop
- out 1 index writestring out (\n) writestring
- (%%EndComments) eq { exit } if
- }
-loop
-
- % Write out our preamble.
-
-out (
-currentpacking true setpacking
-userdict /AltsysCFD3 known { (%END) .skipeof } if
-userdict /AltsysCFD3 25 dict dup begin
-/beint { 0 exch { exch 8 bitshift add } forall } bind def
-/rfile { findlibfile { exch pop } { (r) file } ifelse } bind def
-/str 500 string def
-/AltRO { } def
-/BuildCh % <font> <ccode> <bias> BuildCh -
- { /bias exch def /ccode exch def begin % font
- ccode dup 255 and dup bias lt exch 252 gt or { pop 127 } if
- dup -8 bitshift -67 mul add % subfonts have 189 chars, not 256
- bias sub buildch1
- } bind def
-/BuildChr % <font> <ccode> BuildChr -
- { /ccode exch def begin % font
- ccode buildch1
- } bind def
-/buildch1
- { 6 mul PGOffsets add
- FileNames 0 get rfile dup dup 4 -1 roll setfileposition
- (xxxxxx) readstring pop exch closefile
- dup 1 3 getinterval beint % COD offset
- exch 4 2 getinterval beint % length
- dup 0 eq
- { pop pop currentdict end
- 1000 0 0 0 1 1 0 -1000 500 1000 setcachedevice2
- }
- { dup str length gt { /str 1 index string store } if
- FileNames 1 get rfile dup dup % offset length file file file
- 5 -1 roll setfileposition % length file file
- str 0 5 -1 roll getinterval readstring pop pop closefile
- currentdict end ccode str 1183615869 internaldict /CCRun get exec
- }
- ifelse
- } bind def
-/privates 100 dict def
-/BuildPr % <stdhw> <stdvw> BuildPr <dict>
- { 2 copy 1000 mul add privates 1 index known
- { privates exch get 3 1 roll pop pop
- }
- { 7 dict begin
- /MinFeature{16 16}executeonly def
- /BlueValues BlueValues def
- /StdVW 3 -1 roll 1 array astore def
- /StdHW 3 -1 roll 1 array astore def
- /password 5839 def
- /LanguageGroup 1 def
- /Subrs Subrs def
- currentdict readonly end
- privates 2 index 2 index put exch pop
- }
- ifelse
- } bind def
-/FullEncoding
- systemdict { pop } forall
- systemdict length 512 sub 1 255 { (x) dup 0 4 -1 roll put cvn } for
-768 packedarray def
-/BlueValues[-250 -250 1100 1100]readonly def
-/BuildChar{AltsysCFD3 begin 64 BuildCh end}bind def
-/CharStrings 1 dict
-dup /.notdef (¿1pyÊ8å) noaccess put
-readonly def
-/CDevProc
- { pop pop pop pop 0 exch -1000 exch 2 div currentfont /FontBBox get 3 get
- } bind def
-/FontMatrix[0.001 0.0 0.0 0.001 0.0 0.0]readonly def
-/Subrs [
-(¿1p|=-“D\âR) noaccess
-(¿1py¼öUz) noaccess
-(¿1py½Äži) noaccess
-(¿1pù) noaccess
-(¿1p|35r·I) noaccess
-] noaccess def
-end put
-%END
-) writestring
-
- % Locate and copy the definition of NotDefFont.
-
-out (
-FontDirectory /NotDefFont known { (%END) .skipeof } if
-) writestring
- { dup =string readline pop
- dup (/NotDefFont) eq { exit } if pop
- }
-loop out exch writestring out (\n) writestring
- { dup =string readline pop
- (definefont) search { pop pop pop exit } if
- out exch writestring out (\n) writestring
- }
-loop out (definefont pop
-%END
-) writestring
-
- % Copy the definitions of the subfonts, moving the
- % CharStrings of the Roman supplement to an external file.
- % Stack for pattern procedures: infile line
-
-/CSRName OutDot (CSR) concatstrings def
-/csr CSRName (w) file def
-QUIET not { (Writing ) print CSRName = flush } if
-
-/encoding 256 array def
-
-/patterns [
- % Patterns specific to the Roman supplement, in which
- % the outlines are in an eexec section.
- { (/Encoding 256 array) {
- pop out (/Encoding ) writestring
- { dup buffer readline pop
- dup (dup) search { exit } if pop pop
- }
- loop
- { % Stack: infile dupline postdup (dup) predup
- pop pop exch pop
- % The top element of the stack is a string beginning with
- % an index and value to put into the Encoding.
- token pop exch token pop exch pop encoding 3 1 roll put
- dup buffer readline pop
- dup (dup) search not { pop exit } if
- }
- loop
- out encoding cvx write== out ( cvlit ) writestring
- out exch writestring out (\n) writestring
- } }
- { (/FontType 1 def) {
- pop out (/FontType 4 def\n) writestring
- out (/BuildChar{AltsysCFD3 begin BuildChr end}bind def\n) writestring
- out (/FileNames[) writestring
- 2 { out OutBase (.CSR) concatstrings write==only } repeat
- out (]def\n) writestring
- } }
- { (currentfile eexec) {
- pop out (systemdict begin\n) writestring
- dup 55665 /eexecDecode filter
- } }
- { (dup/CharStrings ) {
- % Copy the individual CharStrings to the CSR file,
- % recording the lengths and offsets.
- pop out (dup/CharStrings AltsysCFD3 /CharStrings get put\n) writestring
- /offsets 256 dict def
- { dup token pop % char name
- dup dup type /nametype eq exch xcheck not and not { pop exit } if
- 1 index token pop % length of binary data
- 2 index token pop pop % skip RD
- 2 index buffer 0 3 index getinterval readstring pop % charstring
- offsets 3 index csr fileposition 16 bitshift 4 index add put
- csr exch writestring pop pop
- dup buffer readline pop pop % skip ND
- }
- loop
- % We skipped the 'end'; skip the 'readonly put' as well.
- 2 { dup token pop pop } repeat
- out (dup/PGOffsets ) writestring
- out csr fileposition write=only
- out ( put\n) writestring
- encoding
- { offsets exch .knownget not { 0 } if
- 2 { csr 0 write } repeat
- 4 { dup -24 bitshift csr exch write 8 bitshift } repeat pop
- }
- forall
- } }
- { (/OtherSubrs[) {
- pop
- { dup buffer readline pop
- (]noaccess def) search { pop pop pop exit } if pop
- }
- loop
- } }
- { (/Subrs 5 array) {
- pop out (/Subrs AltsysCFD3 /Subrs get def\n) writestring
- 6 { dup buffer readline pop pop } repeat
- } }
- { (currentfile closefile) {
- pop out (end % systemdict\n) writestring
- closefile
- } }
- % Patterns for other supplements.
- { (pgfonts/) {
- { cdfromstr search not { exit } if
- out exch writestring pop out cdstr writestring
- }
- loop out exch writestring out (\n) writestring
- } }
- { (/BuildChar{AltsysCFD3 begin 64 BuildCh end}bind def) {
- pop out (\t/BuildChar AltsysCFD3 /BuildChar get def\n) writestring
- } }
- { (/CDevProc{pop pop pop pop 0 exch -1000 exch 2 div ) {
- pop out (\t/CDevProc AltsysCFD3 /CDevProc get def\n) writestring
- } }
- { (/CharStrings 1 dict dup begin) {
- pop out (\t/CharStrings AltsysCFD3 /CharStrings get def\n) writestring
- 2 { dup buffer readline pop pop } repeat
- } }
- { (/FontMatrix[0.001 0.0 0.0 0.001 0.0 0.0]def) {
- pop out (\t/FontMatrix AltsysCFD3 /FontMatrix get def\n) writestring
- } }
- { (/Private 14 dict dup begin) {
- pop out (\t/Private) writestring
- { dup buffer readline pop
- (end def) search { pop pop pop exit } if
- (/Std) search
- { pop pop dup length 3 sub 3 exch getinterval
- (]) search pop out ( ) writestring out exch writestring pop
- }
- if pop
- }
- loop out ( AltsysCFD3 begin BuildPr end def\n) writestring
- } }
- { (UniqueID) { pop } }
- { () {
- out exch writestring out (\n) writestring
- } }
-] def
-[ (SR) (SA) (SK) (SB) (UG) ]
- { 0 1 255 { encoding exch /.notdef put } for
- inprefix exch concatstrings macrfile
- { dup buffer readline not { pop exit } if
- /patterns load
- { 2 copy 0 get search { pop pop pop 1 get exec exit } if pop pop }
- forall
- }
- loop closefile
- }
-forall
-csr closefile
-
- % Copy the definition of the root font.
-
-dup buffer readstring pop out exch writestring closefile
-out (
-setpacking
-) writestring
-out closefile
-
- % Remove the Mac garbage from the outline files.
-
-[ (COD) (CSA) ]
- { CDir (/) concatstrings (JIS83-1_) concatstrings
- 1 index concatstrings macrfile
- exch OutDot exch concatstrings
- QUIET not { (Writing ) print dup = flush } if
- (w) file
- % Stack: infile outfile
- { 1 index buffer readstring exch
- % Stack: infile outfile noteof substring
- 2 index exch writestring not { exit } if
- }
- loop closefile closefile
- }
-forall
-
- } bind def
-
-% If the program was invoked from the command line, run it now.
-[ shellarguments
- { counttomark 5 eq
- { convert
- QUIET not { (Done.\n) print flush } if
- }
- { cleartomark
- (Usage: gsnd -- rollconv.ps FName OutBase InDir CDir OutDir\n) print
- ( e.g.: gsnd -- rollconv.ps HGMinchoE mincho HGfonts/Mincho HGfonts/Mincho HGfonts/gs\n) print flush
- mark
- }
- ifelse
- }
-if pop
diff --git a/Master/xemtex/gslib/showchar.ps b/Master/xemtex/gslib/showchar.ps
deleted file mode 100644
index bf560dd5383..00000000000
--- a/Master/xemtex/gslib/showchar.ps
+++ /dev/null
@@ -1,94 +0,0 @@
-% Copyright (C) 1993, 1994, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: showchar.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% showchar.ps
-% Show the outline and rasterized forms of a character.
-
-/F where { pop } { /F /Times-Roman def } ifelse
-/P where { pop } { /P 16 def } ifelse
-/Rx where { pop } { /Rx 100 def } ifelse
-/Ry where { pop } { /Ry 100 def } ifelse
-/Cs where { pop } { /Cs (M) def } ifelse
-/Pr where { pop } { /Pr false def } ifelse
-/Delay where { pop } { /Delay 0 def } ifelse
-
-0 setgray
-(markpath.ps) runlibfile
-(markhint.ps) runlibfile
-/mmx [1 0 0 1 0 0] def
-/getpath % - getpath <pathproc>
- { [
- { /moveto cvx } { /lineto cvx } { /curveto cvx } { /closepath cvx }
- pathforall
- ] cvx
- } def
-/bitselectfont % <fontname> <scale> bitselectfont -
- { exch findfont exch scalefont setfont
- % Compute the bounding box in device coordinates.
- gsave [Rx 72 div 0 0 Ry 72 div 0 0] setmatrix
- currentfont /FontMatrix get concat
- currentfont /FontBBox get aload pop
- transform ceiling cvi /ury exch def ceiling cvi /urx exch def
- transform floor cvi /lly exch def floor cvi /llx exch def
- /bbx urx llx sub def /bby ury lly sub def
- grestore
- } def
-/bitshow % <string> bitshow -
- { /S exch def gsave
- /W bbx 8 add 7 or 1 add def
- /H bby 8 add def
- /buf W 8 idiv string def
- /M [Rx 72 div 0 0 Ry -72 div 4 llx sub H 4 sub] def
- M W H <ff 00> makeimagedevice
- /dev exch def
- gsave dev setdevice
- newpath 0 lly idtransform moveto
- 0 setgray
- gsave
- /hpath S false charpath getpath def
- grestore
- S show grestore
- 20 20 translate
- 50000 Rx Ry .max P mul div dup scale
- 0.7 setgray
- 0 W H true M
- { dup 1 add exch dev exch buf copyscanlines
- } imagemask pop
- 0 setlinewidth
- gsave 0.5 1 0.5 setrgbcolor hpath exec mmx markpath grestore
- 0 0.5 1 setrgbcolor hpath exec stroke
- % Show the hints for Type 1 fonts also.
- currentfont /FontType get 1 eq
- { gsave 1 0 0 setrgbcolor
- 0 lly M idtransform translate
- currentfont /FontMatrix get
- dup Pr markfonthints
- currentfont /Encoding get S 0 get get exch Pr markcharhints
- grestore
- }
- if
- } def
-F P bitselectfont
-/S1 1 string def
-Cs
- { /C exch def
- currentfont /Encoding get C get /.notdef ne
- { save S1 0 C put S1 bitshow
- showpage restore
- } if
- } forall
-quit
diff --git a/Master/xemtex/gslib/showpage.ps b/Master/xemtex/gslib/showpage.ps
deleted file mode 100644
index 0a6ae9a7e1f..00000000000
--- a/Master/xemtex/gslib/showpage.ps
+++ /dev/null
@@ -1 +0,0 @@
-showpage
diff --git a/Master/xemtex/gslib/st640ih.upp b/Master/xemtex/gslib/st640ih.upp
deleted file mode 100644
index 0c79f3bbc76..00000000000
--- a/Master/xemtex/gslib/st640ih.upp
+++ /dev/null
@@ -1,57 +0,0 @@
--supModel="Epson Stylus Color 640, 1440x720DpI, Inkjet Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/EscP2XY
--r1440x720
--dupMargins="{ 9.0 24.0 9.0 9.0}"
--dupBlackTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupCyanTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupMagentaTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupYellowTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveXPasses=2
--dupOutputXStep=2
--dupWeaveYPasses=8
--dupOutputPins=30
--dupWeaveYFeeds="{15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15}"
--dupWeaveXStarts="{0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0}"
--dupWeaveYOffset=38
--dupWeaveInitialYFeeds="{ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 15}"
--dupWeaveInitialXStarts="{0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0}"
--dupWeaveInitialPins="{ 15 9 18 12 6 15 9 18 27 21 30 24 18 27 21 30}"
--dupFormatYabsolute
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
- 1b5501
- 1b2865 0200 0002
- 1b284b 0200 0002
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupXStepCommand="<1b285c 0400 a005 0100 0000>"
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/st640ihg.upp b/Master/xemtex/gslib/st640ihg.upp
deleted file mode 100644
index faaf5dfc10e..00000000000
--- a/Master/xemtex/gslib/st640ihg.upp
+++ /dev/null
@@ -1,42 +0,0 @@
--supModel="Epson Stylus Color 640, 1440x720DpI, Grayscale, Inkjet Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2XY
--r1440x720
--dupMargins="{ 9.0 24.0 9.0 9.0}"
--dupWhiteTransfer="{
- 0.30000000 0.25411765 0.20862745 0.18509804 0.16313725 0.14588235 0.12862745
- 0.11450980 0.10196078 0.09098039 0.08156863 0.07215686 0.06431373 0.05490196
- 0.04549020 0.03764706 0.02980392 0.02196078 0.01254902 0.00627451 0.00000000
-}"
--dupOutputComponentOrder="{ 0 }"
--dupWeaveXPasses=2
--dupOutputXStep=2
--dupWeaveYPasses=8
--dupOutputPins=30
--dupWeaveYFeeds="{15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15}"
--dupWeaveXStarts="{0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0}"
--dupWeaveYOffset=38
--dupWeaveInitialYFeeds="{ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 15}"
--dupWeaveInitialXStarts="{0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0}"
--dupWeaveInitialPins="{ 15 9 18 12 6 15 9 18 27 21 30 24 18 27 21 30}"
--dupFormatYabsolute
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
- 1b5501
- 1b2865 0200 0002
- 1b284b 0200 0002
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupXStepCommand="<1b285c 0400 a005 0100 0000>"
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/st640p.upp b/Master/xemtex/gslib/st640p.upp
deleted file mode 100644
index 431592ffd96..00000000000
--- a/Master/xemtex/gslib/st640p.upp
+++ /dev/null
@@ -1,49 +0,0 @@
--supModel="Epson Stylus Color 640, 720x720DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 24.0 9.0 9.0}"
--dupBlackTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupCyanTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupMagentaTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupYellowTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=8
--dupOutputPins=32
--dupWeaveYFeeds="{31 31 31 31 37 33 33 29}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 1 1 25}"
--dupWeaveInitialPins="{ 4 24 28 32 19 15 11 7}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/st640pg.upp b/Master/xemtex/gslib/st640pg.upp
deleted file mode 100644
index 07cca7d7204..00000000000
--- a/Master/xemtex/gslib/st640pg.upp
+++ /dev/null
@@ -1,34 +0,0 @@
--supModel="Epson Stylus Color 640, 720x720DpI, Grayscale, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 24.0 9.0 9.0}"
--dupWhiteTransfer="{
- 0.30000000 0.25411765 0.20862745 0.18509804 0.16313725 0.14588235 0.12862745
- 0.11450980 0.10196078 0.09098039 0.08156863 0.07215686 0.06431373 0.05490196
- 0.04549020 0.03764706 0.02980392 0.02196078 0.01254902 0.00627451 0.00000000
-}"
--dupOutputComponentOrder="{ 0 }"
--dupWeaveYPasses=8
--dupOutputPins=32
--dupWeaveYFeeds="{31 31 31 31 37 33 33 29}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 1 1 25}"
--dupWeaveInitialPins="{ 4 24 28 32 19 15 11 7}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/st640pl.upp b/Master/xemtex/gslib/st640pl.upp
deleted file mode 100644
index 4c851d51e51..00000000000
--- a/Master/xemtex/gslib/st640pl.upp
+++ /dev/null
@@ -1,49 +0,0 @@
--supModel="Epson Stylus Color 640, 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/FSCMYK32
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 24.0 9.0 9.0}"
--dupBlackTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupCyanTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupMagentaTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupYellowTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.30000000
-}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=4
--dupOutputPins=32
--dupWeaveYFeeds="{33 30 35 30}"
--dupWeaveInitialYFeeds="{1 1 1 29}"
--dupWeaveInitialPins="{ 8 16 32 23}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 0A
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/st640plg.upp b/Master/xemtex/gslib/st640plg.upp
deleted file mode 100644
index 82fe7a668b8..00000000000
--- a/Master/xemtex/gslib/st640plg.upp
+++ /dev/null
@@ -1,34 +0,0 @@
--supModel="Epson Stylus Color 640, 360x360DpI, Grayscale, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 24.0 9.0 9.0}"
--dupWhiteTransfer="{
- 0.30000000 0.25411765 0.20862745 0.18509804 0.16313725 0.14588235 0.12862745
- 0.11450980 0.10196078 0.09098039 0.08156863 0.07215686 0.06431373 0.05490196
- 0.04549020 0.03764706 0.02980392 0.02196078 0.01254902 0.00627451 0.00000000
-}"
--dupOutputComponentOrder="{ 0 }"
--dupWeaveYPasses=4
--dupOutputPins=32
--dupWeaveYFeeds="{33 30 35 30}"
--dupWeaveInitialYFeeds="{1 1 1 29}"
--dupWeaveInitialPins="{ 8 16 32 23}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 0A
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/stc.upp b/Master/xemtex/gslib/stc.upp
deleted file mode 100644
index c363728ab8e..00000000000
--- a/Master/xemtex/gslib/stc.upp
+++ /dev/null
@@ -1,53 +0,0 @@
--supModel="Epson Stylus Color I (and PRO Series), 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=4
--dupOutputPins=15
--dupWeaveYFeeds="{15 15 15 15}"
--dupWeaveInitialYFeeds="{1 1 1 13}"
--dupWeaveInitialPins="{ 4 15 11 7}"
--dupBlackTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 00
- 1b2855 0100 0A
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc1520h.upp b/Master/xemtex/gslib/stc1520h.upp
deleted file mode 100644
index e58b831cd24..00000000000
--- a/Master/xemtex/gslib/stc1520h.upp
+++ /dev/null
@@ -1,58 +0,0 @@
--supModel="Epson Stylus Color 1520, 1440x720DpI, Inkjet Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2XY
--r1440x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupCyanTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupMagentaTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupYellowTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveXPasses=2
--dupOutputXStep=2
--dupWeaveYPasses=4
--dupOutputPins=62
--dupWeaveYFeeds="{31 31 31 31 31 31 31 31}"
--dupWeaveXStarts="{0 1 0 1 1 0 1 0}"
--dupWeaveYOffset=18
--dupWeaveInitialYFeeds="{ 3 3 3 3 3 3 3 31}"
--dupWeaveInitialXStarts="{0 1 0 1 1 0 1 0}"
--dupWeaveInitialPins="{ 13 20 27 34 41 48 55 62}"
--dupFormatYabsolute
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b2873 0100 02
- 1b5501
- 1b2865 0200 0001
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupXStepCommand="<1b285c 0400 a005 0100>"
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc2.upp b/Master/xemtex/gslib/stc2.upp
deleted file mode 100644
index b3a0ce16239..00000000000
--- a/Master/xemtex/gslib/stc2.upp
+++ /dev/null
@@ -1,53 +0,0 @@
--supModel="Epson Stylus Color II / IIs, 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=3
--dupOutputPins=20
--dupWeaveYFeeds="{20 20 20}"
--dupWeaveInitialYFeeds="{1 1 19}"
--dupWeaveInitialPins="{ 7 20 13}"
--dupBlackTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 00
- 1b2855 0100 0A
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc200_h.upp b/Master/xemtex/gslib/stc200_h.upp
deleted file mode 100644
index 40cdcd9c9bc..00000000000
--- a/Master/xemtex/gslib/stc200_h.upp
+++ /dev/null
@@ -1,51 +0,0 @@
--supModel="Epson Stylus Color 200 , 360x720DpI"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2XY
--r360x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupOutputPins=19
--dupWeaveYPasses=6
--dupWeaveXPasses=1
--dupWeaveYFeeds="{19 19 19 19 19 19}"
--dupBlackTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b5501
- 1b2865 0200 0001
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/stc2_h.upp b/Master/xemtex/gslib/stc2_h.upp
deleted file mode 100644
index 878abae53c5..00000000000
--- a/Master/xemtex/gslib/stc2_h.upp
+++ /dev/null
@@ -1,53 +0,0 @@
--supModel="Epson Stylus Color II, 720x720DpI, Special Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=6
--dupOutputPins=20
--dupWeaveYFeeds="{20 20 19 22 16 23}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 19}"
--dupWeaveInitialPins="{ 4 20 7 17 10 13}"
--dupBlackTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupCyanTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupMagentaTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupYellowTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 00
- 1b2855 0100 05
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc2s_h.upp b/Master/xemtex/gslib/stc2s_h.upp
deleted file mode 100644
index 802621fc876..00000000000
--- a/Master/xemtex/gslib/stc2s_h.upp
+++ /dev/null
@@ -1,57 +0,0 @@
--supModel="Epson Stylus Color IIs, 720x720DpI, Special Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2XY
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{
- 0.0000 0.0003 0.0027 0.0056 0.0085 0.0120 0.0156 0.0196
- 0.0227 0.0260 0.0292 0.0323 0.0354 0.0386 0.0416 0.0450
- 0.0503 0.0564 0.0630 0.0711 0.0799 0.0905 0.1038 0.1169
- 0.1321 0.1522 0.1761 0.2011 0.2285 0.2678 0.3102 0.3637
-}"
--dupCyanTransfer="{
- 0.0000 0.0008 0.0055 0.0106 0.0152 0.0201 0.0248 0.0298
- 0.0344 0.0393 0.0443 0.0490 0.0536 0.0585 0.0630 0.0683
- 0.0738 0.0803 0.0870 0.0955 0.1042 0.1149 0.1283 0.1408
- 0.1552 0.1744 0.1970 0.2197 0.2441 0.2797 0.3169 0.3637
-}"
--dupMagentaTransfer="{
- 0.0000 0.0008 0.0055 0.0106 0.0152 0.0201 0.0248 0.0298
- 0.0344 0.0393 0.0443 0.0490 0.0536 0.0585 0.0630 0.0683
- 0.0738 0.0803 0.0870 0.0955 0.1042 0.1149 0.1283 0.1408
- 0.1552 0.1744 0.1970 0.2197 0.2441 0.2797 0.3169 0.3637
-}"
--dupYellowTransfer="{
- 0.0000 0.0008 0.0055 0.0106 0.0152 0.0201 0.0248 0.0298
- 0.0344 0.0393 0.0443 0.0490 0.0536 0.0585 0.0630 0.0683
- 0.0738 0.0803 0.0870 0.0955 0.1042 0.1149 0.1283 0.1408
- 0.1552 0.1744 0.1970 0.2197 0.2441 0.2797 0.3169 0.3637
-}"
--dupFormatYabsolute
--dupWeaveYPasses=6
--dupWeaveXPasses=2
--dupOutputPins=20
--dupWeaveYFeeds="{10 10 10 10 10 11 10 10 10 10 10 9}"
--dupWeaveXStarts="{0 1 0 1 0 1 0 1 0 1 0 1}"
--dupWeaveInitialYFeeds="{ 1 1 1 1 1 1 1 1 1 1 1 1}"
--dupWeaveInitialXStarts="{0 1 0 1 0 1 1 0 1 0 1 0}"
--dupWeaveInitialPins="{ 2 17 5 20 8 13 6 11 9 14 2 17}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 00
- 1b2855 0100 05
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc300.upp b/Master/xemtex/gslib/stc300.upp
deleted file mode 100644
index 029faac5dc5..00000000000
--- a/Master/xemtex/gslib/stc300.upp
+++ /dev/null
@@ -1,60 +0,0 @@
--supModel="Epson Stylus Color 300, 360x360 dpi, colour, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscNozzleMap
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=6
--dupOutputPins=11
--dupWeaveYFeeds="{11 11 11 11 11 11}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 7}"
--dupWeaveInitialPins="{ 2 11 9 7 5 3}"
--dupWeaveYOffset=0
--dupNozzleMapRowsPerPass=64
--dupNozzleMapPatternRepeat=6
--dupNozzleMapRowMask="{ 2 4 1 3 0 0 }"
--dupNozzleMapMaskScanOffset="{ 0 1 2 3 0 0 }"
--dupBlackTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
-}"
-
--dupBeginPageCommand="<
- 1b40 1b40
- 1b7c000900802a2c640316110524
- 1b285208000052454d4f544531
- 1b000000
- 1b2847 0100 01
- 1b2855 0100 0A
- 1b2843 0200 7210
- 1b5501
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc300bl.upp b/Master/xemtex/gslib/stc300bl.upp
deleted file mode 100644
index 4c577952ea9..00000000000
--- a/Master/xemtex/gslib/stc300bl.upp
+++ /dev/null
@@ -1,40 +0,0 @@
--supModel="Epson Stylus Color 300, 180x180 dpi, black only, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscNozzleMap
--r360x180
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=1
--dupOutputPins=31
--dupNozzleMapRowsPerPass=64
--dupNozzleMapPatternRepeat=6
--dupNozzleMapRowMask="{ 0 0 1 0 1 1}"
--dupNozzleMapMaskScanOffset="{ 0 0 0 0 1 2 }"
--dupWhiteTransfer="{
-1.0 0.921295345 0.846429467 0.775337517 0.707954228
-0.644212425 0.584044278 0.527380228 0.474149585 0.424279869
-0.377697408 0.334326446 0.294089675 0.256907612 0.222698912
-0.191379622 0.162863538 0.137061611 0.113881744 0.0932285339
-0.0750028 0.0591011234 0.0454152822 0.0338314585 0.0242292974
-0.0164806321 0.0104477014 0.00598061318 0.00291339168 0.00105723308
-0.000186894162 0.0
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b7c000900802a2c640316110524
- 1b285208000052454d4f544531
- 1b000000
- 1b2847 0100 01
- 1b2855 0100 14
- 1b2843 0200 7210
- 1b5501
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc300bm.upp b/Master/xemtex/gslib/stc300bm.upp
deleted file mode 100644
index db69d4a164a..00000000000
--- a/Master/xemtex/gslib/stc300bm.upp
+++ /dev/null
@@ -1,43 +0,0 @@
--supModel="Epson Stylus Color 300, 360x360 dpi, black only, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceGray
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscNozzleMap
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=2
--dupOutputPins=31
--dupWeaveYFeeds="{31 31}"
--dupWeaveInitialYFeeds="{1 31}"
--dupWeaveInitialPins="{16 31}"
--dupNozzleMapRowsPerPass=64
--dupNozzleMapPatternRepeat=6
--dupNozzleMapRowMask="{ 0 0 1 0 1 1}"
--dupNozzleMapMaskScanOffset="{ 0 0 0 0 2 4 }"
--dupWhiteTransfer="{
-1.0 0.921295345 0.846429467 0.775337517 0.707954228
-0.644212425 0.584044278 0.527380228 0.474149585 0.424279869
-0.377697408 0.334326446 0.294089675 0.256907612 0.222698912
-0.191379622 0.162863538 0.137061611 0.113881744 0.0932285339
-0.0750028 0.0591011234 0.0454152822 0.0338314585 0.0242292974
-0.0164806321 0.0104477014 0.00598061318 0.00291339168 0.00105723308
-0.000186894162 0.0
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b7c000900802a2c640316110524
- 1b285208000052454d4f544531
- 1b000000
- 1b2847 0100 01
- 1b2855 0100 0a
- 1b2843 0200 7210
- 1b5501
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc500p.upp b/Master/xemtex/gslib/stc500p.upp
deleted file mode 100644
index e3b43d25b13..00000000000
--- a/Master/xemtex/gslib/stc500p.upp
+++ /dev/null
@@ -1,48 +0,0 @@
--supModel="Epson Stylus Color 500, 360x360DpI, not Weaved, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{
- 0.0000 0.0008 0.0075 0.0155 0.0235 0.0331 0.0430 0.0540
- 0.0625 0.0714 0.0804 0.0889 0.0973 0.1061 0.1143 0.1239
- 0.1382 0.1551 0.1732 0.1956 0.2196 0.2488 0.2854 0.3215
- 0.3633 0.4185 0.4841 0.5529 0.6284 0.7365 0.8529 1.0000
-}"
--dupCyanTransfer="{
- 0.0000 0.0021 0.0152 0.0291 0.0418 0.0552 0.0681 0.0818
- 0.0947 0.1082 0.1218 0.1347 0.1474 0.1607 0.1732 0.1877
- 0.2029 0.2208 0.2393 0.2626 0.2866 0.3159 0.3528 0.3873
- 0.4268 0.4797 0.5417 0.6042 0.6712 0.7692 0.8714 1.0000
-}"
--dupMagentaTransfer="{
- 0.0000 0.0021 0.0152 0.0291 0.0418 0.0552 0.0681 0.0818
- 0.0947 0.1082 0.1218 0.1347 0.1474 0.1607 0.1732 0.1877
- 0.2029 0.2208 0.2393 0.2626 0.2866 0.3159 0.3528 0.3873
- 0.4268 0.4797 0.5417 0.6042 0.6712 0.7692 0.8714 1.0000
-}"
--dupYellowTransfer="{
- 0.0000 0.0021 0.0152 0.0291 0.0418 0.0552 0.0681 0.0818
- 0.0947 0.1082 0.1218 0.1347 0.1474 0.1607 0.1732 0.1877
- 0.2029 0.2208 0.2393 0.2626 0.2866 0.3159 0.3528 0.3873
- 0.4268 0.4797 0.5417 0.6042 0.6712 0.7692 0.8714 1.0000
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 01
- 1b2855 0100 0A
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc500ph.upp b/Master/xemtex/gslib/stc500ph.upp
deleted file mode 100644
index c14bae5fe60..00000000000
--- a/Master/xemtex/gslib/stc500ph.upp
+++ /dev/null
@@ -1,48 +0,0 @@
--supModel="Epson Stylus Color 500, 720x720DpI, not Weaved, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{
- 0.0000 0.0003 0.0027 0.0056 0.0085 0.0120 0.0156 0.0196
- 0.0227 0.0260 0.0292 0.0323 0.0354 0.0386 0.0416 0.0450
- 0.0503 0.0564 0.0630 0.0711 0.0799 0.0905 0.1038 0.1169
- 0.1321 0.1522 0.1761 0.2011 0.2285 0.2678 0.3102 0.3637
-}"
--dupCyanTransfer="{
- 0.0000 0.0008 0.0055 0.0106 0.0152 0.0201 0.0248 0.0298
- 0.0344 0.0393 0.0443 0.0490 0.0536 0.0585 0.0630 0.0683
- 0.0738 0.0803 0.0870 0.0955 0.1042 0.1149 0.1283 0.1408
- 0.1552 0.1744 0.1970 0.2197 0.2441 0.2797 0.3169 0.3637
-}"
--dupMagentaTransfer="{
- 0.0000 0.0008 0.0055 0.0106 0.0152 0.0201 0.0248 0.0298
- 0.0344 0.0393 0.0443 0.0490 0.0536 0.0585 0.0630 0.0683
- 0.0738 0.0803 0.0870 0.0955 0.1042 0.1149 0.1283 0.1408
- 0.1552 0.1744 0.1970 0.2197 0.2441 0.2797 0.3169 0.3637
-}"
--dupYellowTransfer="{
- 0.0000 0.0008 0.0055 0.0106 0.0152 0.0201 0.0248 0.0298
- 0.0344 0.0393 0.0443 0.0490 0.0536 0.0585 0.0630 0.0683
- 0.0738 0.0803 0.0870 0.0955 0.1042 0.1149 0.1283 0.1408
- 0.1552 0.1744 0.1970 0.2197 0.2441 0.2797 0.3169 0.3637
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 01
- 1b2855 0100 05
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc600ih.upp b/Master/xemtex/gslib/stc600ih.upp
deleted file mode 100644
index 6428c273da6..00000000000
--- a/Master/xemtex/gslib/stc600ih.upp
+++ /dev/null
@@ -1,58 +0,0 @@
--supModel="Epson Stylus Color 600, 1440x720DpI, Inkjet Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2XY
--r1440x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupCyanTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupMagentaTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupYellowTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveXPasses=2
--dupOutputXStep=2
--dupWeaveYPasses=8
--dupOutputPins=30
--dupWeaveYFeeds="{15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15}"
--dupWeaveXStarts="{0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0}"
--dupWeaveYOffset=38
--dupWeaveInitialYFeeds="{ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 15}"
--dupWeaveInitialXStarts="{0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0}"
--dupWeaveInitialPins="{ 15 9 18 12 6 15 9 18 27 21 30 24 18 27 21 30}"
--dupFormatYabsolute
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
- 1b5501
- 1b2865 0200 0002
- 1b284b 0200 0002
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupXStepCommand="<1b285c 0400 a005 0100 0000>"
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc600p.upp b/Master/xemtex/gslib/stc600p.upp
deleted file mode 100644
index f3b8338cac8..00000000000
--- a/Master/xemtex/gslib/stc600p.upp
+++ /dev/null
@@ -1,34 +0,0 @@
--supModel="Epson Stylus Color 600, 720x720DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{ 0.0000 0.0329 0.0706 0.1160 0.2392 0.7955 }"
--dupCyanTransfer="{ 0.0000 0.0602 0.1133 0.1961 0.2945 0.3885 }"
--dupMagentaTransfer="{ 0.0000 0.0452 0.0836 0.1215 0.1493 0.1749 }"
--dupYellowTransfer="{ 0.0000 0.0350 0.0914 0.1567 0.2430 0.2934 }"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=8
--dupOutputPins=32
--dupWeaveYFeeds="{31 31 31 31 37 33 33 29}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 1 1 25}"
--dupWeaveInitialPins="{ 4 24 28 32 19 15 11 7}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc600pl.upp b/Master/xemtex/gslib/stc600pl.upp
deleted file mode 100644
index cfd6abf3530..00000000000
--- a/Master/xemtex/gslib/stc600pl.upp
+++ /dev/null
@@ -1,34 +0,0 @@
--supModel="Epson Stylus Color 600, 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{ 0.0000 0.0553 0.1158 0.1998 0.4321 1.0000 }"
--dupCyanTransfer="{ 0.0000 0.1188 0.2272 0.3745 0.5396 0.6145 }"
--dupMagentaTransfer="{ 0.0000 0.0851 0.1512 0.2111 0.2606 0.2818 }"
--dupYellowTransfer="{ 0.0000 0.0679 0.1742 0.3129 0.4587 0.5389 }"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=4
--dupOutputPins=32
--dupWeaveYFeeds="{33 30 35 30}"
--dupWeaveInitialYFeeds="{1 1 1 29}"
--dupWeaveInitialPins="{ 8 16 32 23}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 0A
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc640p.upp b/Master/xemtex/gslib/stc640p.upp
deleted file mode 100644
index 6559f89defd..00000000000
--- a/Master/xemtex/gslib/stc640p.upp
+++ /dev/null
@@ -1,33 +0,0 @@
--supModel="Epson Stylus Color 640, 720x720DpI, Inkjet Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{ 0.0 0.04 0.08 0.16 0.20 0.35}"
--dupCyanTransfer="{ 0.0 0.06 0.12 0.18 0.24 0.45}"
--dupMagentaTransfer="{ 0.0 0.05 0.10 0.15 0.20 0.42}"
--dupYellowTransfer="{ 0.0 0.04 0.08 0.16 0.20 0.37}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=8
--dupOutputPins=32
--dupWeaveYFeeds="{31 31 31 31 37 33 33 29}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 1 1 25}"
--dupWeaveInitialPins="{ 4 24 28 32 19 15 11 7}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/stc800ih.upp b/Master/xemtex/gslib/stc800ih.upp
deleted file mode 100644
index 2adbab95952..00000000000
--- a/Master/xemtex/gslib/stc800ih.upp
+++ /dev/null
@@ -1,58 +0,0 @@
--supModel="Epson Stylus Color 800, 1440x720DpI, Inkjet Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2XY
--r1440x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupCyanTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupMagentaTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupYellowTransfer="{
- 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
- 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
- 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
-}"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveXPasses=2
--dupOutputXStep=2
--dupWeaveYPasses=4
--dupOutputPins=62
--dupWeaveYFeeds="{31 31 31 31 31 31 31 31}"
--dupWeaveXStarts="{0 1 0 1 1 0 1 0}"
--dupWeaveYOffset=18
--dupWeaveInitialYFeeds="{ 3 3 3 3 3 3 3 31}"
--dupWeaveInitialXStarts="{0 1 0 1 1 0 1 0}"
--dupWeaveInitialPins="{ 13 20 27 34 41 48 55 62}"
--dupFormatYabsolute
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b2873 0100 02
- 1b5501
- 1b2865 0200 0001
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupXStepCommand="<1b285c 0400 a005 0100 0000>"
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc800p.upp b/Master/xemtex/gslib/stc800p.upp
deleted file mode 100644
index daaa005eb5f..00000000000
--- a/Master/xemtex/gslib/stc800p.upp
+++ /dev/null
@@ -1,34 +0,0 @@
--supModel="Epson Stylus Color 800, 720x720DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{ 0.0000 0.0329 0.0706 0.1160 0.2392 0.7955 }"
--dupCyanTransfer="{ 0.0000 0.0602 0.1133 0.1961 0.2945 0.3885 }"
--dupMagentaTransfer="{ 0.0000 0.0452 0.0836 0.1215 0.1493 0.1749 }"
--dupYellowTransfer="{ 0.0000 0.0350 0.0914 0.1567 0.2430 0.2934 }"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=4
--dupOutputPins=64
--dupWeaveYFeeds="{63 63 67 63}"
--dupWeaveInitialYFeeds="{1 1 1 61}"
--dupWeaveInitialPins="{ 16 64 47 31}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 05
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc800pl.upp b/Master/xemtex/gslib/stc800pl.upp
deleted file mode 100644
index 7eceb31fd0c..00000000000
--- a/Master/xemtex/gslib/stc800pl.upp
+++ /dev/null
@@ -1,34 +0,0 @@
--supModel="Epson Stylus Color 800, 360x360DpI, Plain Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupBlackTransfer="{ 0.0000 0.0553 0.1158 0.1998 0.4321 1.0000 }"
--dupCyanTransfer="{ 0.0000 0.1188 0.2272 0.3745 0.5396 0.6145 }"
--dupMagentaTransfer="{ 0.0000 0.0851 0.1512 0.2111 0.2606 0.2818 }"
--dupYellowTransfer="{ 0.0000 0.0679 0.1742 0.3129 0.4587 0.5389 }"
--dupOutputComponentOrder="{ 1 2 3 0 }"
--dupWeaveYPasses=2
--dupOutputPins=64
--dupWeaveYFeeds="{63 65}"
--dupWeaveInitialYFeeds="{1 65}"
--dupWeaveInitialPins="{ 33 64}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2855 0100 0A
- 1b5501
- 1b2865 0200 0002
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc_h.upp b/Master/xemtex/gslib/stc_h.upp
deleted file mode 100644
index 6cf3c11026b..00000000000
--- a/Master/xemtex/gslib/stc_h.upp
+++ /dev/null
@@ -1,53 +0,0 @@
--supModel="Epson Stylus Color I (and PRO Series), 720x720DpI, Special Paper"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupWeaveYPasses=8
--dupOutputPins=15
--dupWeaveYFeeds="{15 15 15 15 15 15 15 15}"
--dupWeaveInitialYFeeds="{1 1 1 1 1 1 1 8}"
--dupWeaveInitialPins="{ 15 13 11 9 7 5 3 1}"
--dupBlackTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupCyanTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupMagentaTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupYellowTransfer="{
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
-}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 00
- 1b2855 0100 05
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
-
diff --git a/Master/xemtex/gslib/stc_l.upp b/Master/xemtex/gslib/stc_l.upp
deleted file mode 100644
index f6de35a3bd3..00000000000
--- a/Master/xemtex/gslib/stc_l.upp
+++ /dev/null
@@ -1,26 +0,0 @@
--supModel="Epson Stylus Color I (and PRO Series), 360x360DpI, noWeave"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupComponentBits="{1 1 1 1}"
--dupWeaveYPasses=4
--dupOutputPins=15
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 00
- 1b2855 0100 0A
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/stcany.upp b/Master/xemtex/gslib/stcany.upp
deleted file mode 100644
index e00ea5c29e0..00000000000
--- a/Master/xemtex/gslib/stcany.upp
+++ /dev/null
@@ -1,24 +0,0 @@
--supModel="Any Epson Stylus Color, 360x360DpI"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYK
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r360x360
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupComponentBits="{1 1 1 1}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 01
- 1b2855 0100 0A
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/stcany_h.upp b/Master/xemtex/gslib/stcany_h.upp
deleted file mode 100644
index 43a67b3dcfd..00000000000
--- a/Master/xemtex/gslib/stcany_h.upp
+++ /dev/null
@@ -1,24 +0,0 @@
--supModel="Any Epson Stylus Color, 720x720DpI"
--sDEVICE=uniprint
--dNOPAUSE
--dSAFER
--dupColorModel=/DeviceCMYKgenerate
--dupRendering=/ErrorDiffusion
--dupOutputFormat=/EscP2
--r720x720
--dupMargins="{ 9.0 39.96 9.0 9.0}"
--dupComponentBits="{1 1 1 1}"
--dupBeginPageCommand="<
- 1b40 1b40
- 1b2847 0100 01
- 1b2869 0100 01
- 1b2855 0100 05
- 1b5500
- 1b2843 0200 0000
- 1b2863 0400 0000 0000
->"
--dupAdjustPageLengthCommand
--dupAdjustTopMarginCommand
--dupAdjustBottomMarginCommand
--dupEndPageCommand="(\033@\014)"
--dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
diff --git a/Master/xemtex/gslib/stcinfo.ps b/Master/xemtex/gslib/stcinfo.ps
deleted file mode 100644
index c910f0d9435..00000000000
--- a/Master/xemtex/gslib/stcinfo.ps
+++ /dev/null
@@ -1,800 +0,0 @@
-% Copyright (C) 1995 Aladdin Enterprises. All rights reserved
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: stcinfo.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% stcinfo.ps
-% Epson Stylus-Color Printer-Driver
-
-% The purpose of this file is to print & show Parameters of the
-% stcolor-driver. If not run on ghostscript/stcolor, it prints
-% something like a color-chart.
-
-% use either existing STCinfo-dictionary, retrieve new one or create dummy
-
-statusdict begin product end
-dup (Ghostscript) eq 1 index (Aladdin Ghostscript) eq or
-exch (AFPL Ghostscript) eq or{
-
- currentdevice getdeviceprops .dicttomark
- dup /Name get (stcolor) eq /STCi_onstc exch def
- /STCinfo where {/STCinfo get exch pop} if
- /STCinfo exch def
-
-}{
-
- /STCinfo 10 dict def
- STCinfo begin /Name (unknown) def end
- /STCi_onstc false def
-
-}ifelse
-
-% Next Block are procedures to generate the color-triangles.
-% you may wish to separate them, just look ahead for the name
-% given in the next line to achieve that.
-% Begin: colortri_procedures
-
-% Plot the CIE-XY-triangle (or something like that)
-
-% /colortri_mat Conversion matrix RGB -> XYZ
-% /colortri_bg procedure, that takes X/Y-Values and delivers the
-% "background color" as RGB-Values, default is:
-% {pop pop 0.85 dup dup}
-
-% The default matrix was taken from:
-% Color spaces FAQ - David Bourgin
-% Date: 15/6/94 (items 5.3 and 6 updated)
-% Last update: 29/6/94
-
- /colortri_mat [ % RGB -> CIE XYZitu601-1 (D65)
- 0.4306 0.3415 0.1784
- 0.2220 0.7067 0.0713
- 0.0202 0.1295 0.9394
- ] def
-
- /colortri_bg {pop pop 0.85 dup dup} bind def
-
-
-% +---------------------------------------------------------------------+
-% | Besides from fixing bugs, nothing should be changed below this line |
-% +---------------------------------------------------------------------+
-
-
-% Arbitrary operation on a pair of vectors, *CHANGES* 1st.
-% invoke: Vaccu Vop op vop
- /vop {
- bind 0 1 3 index length 1 sub {
- 3 index 1 index get 3 index 2 index get 3 index exec 4 index 3 1 roll put
- } for pop pop
- } bind def
-
- /vsub { {sub} vop } bind def % subtract two vectors
- /vmul { {mul} vop } bind def % multiply two vectors
-
-% Compute sum of vectors elements
- /vsum {0.0 exch{add}forall} bind def
-
-
-% Sum up products of elements
- /veqn { [ 3 -1 roll {} forall ] exch vmul vsum } bind def
-
-% Find index of |maximum| in array
- /imax {
- dup 0 get abs 0 exch % array i v[i]
- 1 1 4 index length 1 sub {
- 3 index 1 index get abs dup 3 index gt {4 2 roll}if pop pop
- } for
- 3 -1 roll pop
- } bind def
-
-% Procedure to *CHANGE* RGB-Values into XYZ-Values
- /rgb2xyz {
- 0 3 6 { colortri_mat exch 3 getinterval 1 index veqn exch } for astore
- } bind def
-
-% Procedure to *CHANGE* transform rgb->xy
- /rgb2xy {
- rgb2xyz
- dup 0 get 1 index 1 get 2 index vsum % XYZ X Y sum
- dup 0 ne {
- exch 1 index div 3 1 roll div % XYZ y x
- 2 index exch 0 exch put % xYZ y
- 1 index exch 1 exch put % xyZ
- }{
- pop pop pop dup 0 0 put dup 0 1 put
- } ifelse
- 0 2 getinterval
- } bind def
-
-% So here we go with our procedure
-
-/colortri { %Usage: box #pixels
- save
- 1 index type /arraytype eq {exch 8}{3 1 roll} ifelse % Default scale
- /colortri_scale exch def
- /colortri_box exch def
-
-
-% Prepare some useful constants for xy -> RGB conversion
-
- /colsum [ % Array with column-sums
- 0 1 2{0 exch 3 1 index 6 add{colortri_mat exch get add}for}for
- ] def
-
- /Xrow colortri_mat 0 3 getinterval def % two rows from colortri_mat
- /Yrow colortri_mat 3 3 getinterval def
-
-% Avoid allocating new arrays
- /xcoeff 3 array def
- /ycoeff 3 array def
-
-% Procedure to derive RGB-Values form X,Y
- /xy2rgb{ aload pop
- dup dup dup ycoeff astore colsum vmul Yrow vsub imax
- 3 index dup dup xcoeff astore colsum vmul Xrow vsub imax
- 3 -1 roll 1 index 1 index gt{
- xcoeff ycoeff /xcoeff exch def /ycoeff exch def pop 3 -1 roll pop
- }{
- 3 1 roll pop pop
- } ifelse
- 1e-6 lt { % No Pivot ?
- pop colortri_bg xcoeff astore pop
- }{ % Have a Pivot
- dup ycoeff exch get neg
- 0 1 2 { dup ycoeff exch get 2 index div ycoeff 3 1 roll put} for
- pop ycoeff 1 index 0 put
-
- xcoeff 1 index get
- 0 1 2 {
- ycoeff 1 index get 2 index mul xcoeff 2 index get add
- xcoeff 3 1 roll put
- } for
- pop xcoeff 1 index 0 put
- xcoeff imax 1e-6 lt { % no Pivot ?
- pop pop colortri_bg xcoeff astore pop
- }{
- dup 2 index or 3 exch sub
- xcoeff 1 index get xcoeff 3 index get div neg
- xcoeff exch 3 index exch put
- xcoeff 1 index 1 put
- ycoeff exch get ycoeff 2 index get xcoeff 4 -1 roll get mul add
- xcoeff 3 1 roll put
- 0 1 2 {
- xcoeff exch get dup -0.0015 lt exch 1.0015 gt or {
- colortri_bg xcoeff astore dup exit
- } if
- } for
- pop pop xcoeff
- } ifelse
- } ifelse
- } bind def
-
-% Compute the displayed range
- [ 1 1 1 ] rgb2xy
- dup 0 get /colortri_x0 exch def /colortri_dx colortri_x0 def
- 1 get /colortri_y0 exch def /colortri_dy colortri_y0 def
- [[0 0 1][0 1 0][0 1 1][1 0 0][1 0 1][1 1 0]] {
- rgb2xy
- dup 0 get
- dup colortri_x0 lt {/colortri_x0 1 index def}if
- dup colortri_dx gt {/colortri_dx 1 index def}if
- pop 1 get
- dup colortri_y0 lt {/colortri_y0 1 index def}if
- dup colortri_dy gt {/colortri_dy 1 index def}if
- pop
- } forall
- colortri_dx colortri_x0 sub /colortri_dx exch def
- colortri_dy colortri_y0 sub /colortri_dy exch def
-%
-
-% determine the scale
- colortri_box 2 get colortri_box 0 get sub colortri_dx div % fx
- colortri_box 3 get colortri_box 1 get sub colortri_dy div % fx fy
- gt { % fy limits
- colortri_box 3 get colortri_box 1 get sub
- dup colortri_dx mul colortri_dy div exch
- }{ % fx limits
- colortri_box 2 get colortri_box 0 get sub
- dup colortri_dy mul colortri_dx div
- } ifelse
- dtransform abs colortri_scale div cvi /colortri_ny exch def
- abs colortri_scale div cvi /colortri_nx exch def
- colortri_nx colortri_scale mul colortri_ny colortri_scale mul
- idtransform abs exch abs exch
- colortri_box 0 get colortri_box 2 get 1 index sub 3 index sub 2 div add
- colortri_box 1 get colortri_box 3 get 1 index sub 3 index sub 2 div add
- transform .5 add cvi exch .5 add cvi exch itransform
- translate scale
-
-% String & indices
- /colortri_tmp colortri_nx 3 mul string def
- /colortri_dx colortri_dx colortri_nx 1 sub div def
- /colortri_dy colortri_dy colortri_ny 1 sub div def
- /colortri_xy [ colortri_x0 colortri_y0 ] def
- /colortri_ie colortri_tmp length 3 sub def
-
- colortri_nx colortri_ny 8 [ colortri_nx 0 0 colortri_ny 0 0 ]
- {
- colortri_xy 0 colortri_x0 put
- 0 3 colortri_ie {
- colortri_tmp exch % buf ir
- colortri_xy xy2rgb % buf ir rgb buf ib
- 2 index 2 index 2 add 2 index 2 get 255 mul cvi put
- 2 index 2 index 1 add 2 index 1 get 255 mul cvi put
- 0 get 255 mul cvi put
- colortri_xy dup 0 exch 0 get colortri_dx add put
- }for
- colortri_xy dup 1 exch 1 get colortri_dy add put
- colortri_tmp
- } bind
- false 3 colorimage
- restore
-} bind def
-
-% [ newpath clippath pathbbox ] colortri showpage % standalone usage
-
-% End: colortri_procedures
-
-% The next section is a group of procedures, that I for myself
-% do no more fully understand, but they do the Job.
-
-% Begin: stcinfo_procedures_1
-
-% fetch a parameter from the dictionary
-/STCiget { STCinfo exch get } bind def
-
-% action upon ProcessColorModel
-/STCimode {
- /ProcessColorModel STCiget dup
- /DeviceCMYK eq{pop 2}{/DeviceRGB eq{1}{0}ifelse}ifelse get exec
-} bind def
-
-% print given number of blanks
-/STCipspace {
- dup 0 gt{ 1 exch 1 exch { pop ( ) print}for }{ pop } ifelse
-} bind def
-
-% print right or left-justified text
-/STCiprint {
- dup 0 gt { dup 2 index length sub STCipspace } if
- 1 index print
- dup 0 lt { neg dup 2 index length sub STCipspace } if
- pop pop
-} bind def
-
-% floating-point to fixed-length-string conversion
-
-/STCicvs { % number -> string
-
-% Prepare the result
- 8 string dup 0 ( ) putinterval
- exch
-
-% Make it unsigned
- dup 0 lt {neg(-)}{( )}ifelse 0 get exch
-
- dup 1000 lt 1 index 0 eq 2 index 0.001 ge or and { % floating point
- (e+) 0
- }{ % engineering
- 0 {
- 1 index 1000.0 ge
- {3 add exch 1000 div exch}
- {1 index 1 lt {3 sub exch 1000 mul exch}{exit}ifelse}
- ifelse
- }loop
- dup 0 lt {neg(e-)}{(e+)}ifelse exch
- }ifelse
-
-% string sign num esig e
-
-% always up to three Integer Digits plus sign
- 2 index cvi 3 { % string sign num esig e int ind
- 1 index 10 div cvi dup 10 mul 3 index exch sub cvi
- (0123456789) exch get 8 index exch 3 index exch put
- 3 -2 roll 1 sub exch pop dup 0 eq 2 index 0 eq or {exit} if
- } loop exch pop % string sign num esig e ind
- 5 index exch 6 -1 roll put % string num esig e
-
-% print either fraction or exponent
- dup 0 eq { pop pop dup cvi sub % String fraction
-
- dup 0.0 ne { % Fraction present
- 0.0005 add 1 index 4 (.) putinterval
- 5 1 7 { % string frac ind
- exch 10 mul dup cvi exch 1 index sub % string ind ic nfrac
- exch (0123456789) exch get 3 -1 roll % string nfrac chr ind
- exch 3 index 3 1 roll put
- } for
- } if
- pop
-
- }{ 3 -1 roll pop % string esig e
-
- exch 2 index exch 4 exch putinterval
- 7 -1 6 { % string n i
- 1 index 10 div cvi dup 10 mul 3 index exch sub cvi % string n i n/10
- (0123456789) exch get 4 index exch 3 index exch put
- exch pop exch pop
- } for
- pop
- } ifelse
-
-} bind def
-
-% compute colorvalue-steps from transfer & coding
-/STCisteps { % xfer, coding => X-values, Y-Values
-% 2^nbits
- 2 /BitsPerComponent STCiget dup 11 gt { pop 11 } if exp cvi
-
-% X & Y - Arrays (stack: xv:4 yv:3 xfer:2 coding:1 2^ni:0)
- dup 1 add array 1 index array 5 2 roll
-
-% compute GS-Color-Value according to the coding-array
-
- 1 index null eq { % no coding present
-
- 0 1 2 index 1 sub {
- dup 6 index exch dup 4 index div put
- 4 index exch dup 3 index 1 sub div put
- } for
-
- }{ % coding-array given
-
- 1.0 1 index 1 sub div % y step
- 0 % current index
- 0 1 4 index 1 sub { % over indices
- dup 3 index mul
- {
- dup 3 index 1 add dup 8 index length ge {pop pop exit} if % i y
- 7 index exch get le {exit} if
- 2 index 1 add 3 1 roll 4 -1 roll pop
- } loop
- 5 index 3 index get sub
- 5 index 3 index 1 add get 6 index 4 index get sub div
- 2 index add 5 index length 1 sub div
- 2 copy exch dup 0 eq {
- 10 index exch 0.0 put pop
- }{
- dup 10 index exch 1 sub get 3 -1 roll add 2 div
- 10 index 3 1 roll put
- }ifelse
- 7 index 3 1 roll put
- } for % over indices
- pop pop
- } ifelse
- 4 index 1 index 1.0 put
-
-% Replace the raw y-values by those computed from the transfer-array
-
- 0 1 2 index 1 sub { % over indices, 2nd
- dup 5 index exch get
- dup 5 index length 1 sub mul cvi % -> iy
- 5 index 1 index get
- 1 index 1 add 7 index length lt {
- dup 7 index 3 index 1 add get exch sub
- 3 index 3 index 9 index length 1 sub div sub mul
- 7 index length 1 sub mul add
- } if
- exch pop exch pop 5 index 3 1 roll put
- } for % over indices, 2nd
-
- pop pop pop
-} bind def
-
-/STCibar { % Window X-Values proc => Window
- 0 1 3 index length 2 sub {
- dup 3 index exch get exch
- 1 add 3 index exch get
- dup 2 index add 2 div 3 index exec % Color to average
- 4 index 2 get 5 index 0 get sub exch 1 index mul 5 index 0 get add 3 1 roll
- mul 4 index 0 get add 4 index 3 get 5 index 1 get
- newpath
- 2 index 1 index moveto
- 3 index 1 index lineto
- 3 index 2 index lineto
- 2 index 2 index lineto
- closepath fill
- pop pop pop pop
- } for
- pop pop
- 0 setgray
- newpath
- dup 0 get 1 index 1 get moveto
- dup 2 get 1 index 1 get lineto
- dup 2 get 1 index 3 get lineto
- dup 0 get 1 index 3 get lineto
- closepath stroke
- pop
-} bind def
-
-% End: stcinfo_procedures_1
-
-% Begin: stcinfo_preparation
-
-% Compute used area from clippath
-
-/STCi_clip [
- newpath clippath pathbbox
- 2 sub 4 1 roll 2 sub 4 1 roll 2 add 4 1 roll 2 add 4 1 roll
-] def
-
-%
-% Perpare the texual messages, assume no stcolor if this fails
-%
-{
- /STCi_stopped % A Special Mark
-
-% Textual Parameters (an array of pairs of strings)
- /STCi_l1 0 def
- /STCi_l2 0 def
- /STCi_text [
-% Driver-Name & Version
- (Parameters of)
- /Name STCiget length /Version STCiget length add 1 add string
- dup 0 /Name STCiget putinterval dup /Name STCiget length (-)putinterval
- dup /Name STCiget length 1 add /Version STCiget putinterval
-% Dithering-Algorithm
- (Dithering)
- /Dithering STCiget
- [{( \(Monochrome\))}{( \(RGB\))}{( \(CMYK\))}] STCimode
- dup length 2 index length add string exch 1 index exch
- 3 index length exch putinterval dup 3 1 roll exch 0 exch putinterval
-% Flags for the algorithm
- (Flag4-0) 5 string
- dup 0 /Flag4 STCiget {(T)}{(f)} ifelse putinterval
- dup 1 /Flag3 STCiget {(T)}{(f)} ifelse putinterval
- dup 2 /Flag2 STCiget {(T)}{(f)} ifelse putinterval
- dup 3 /Flag1 STCiget {(T)}{(f)} ifelse putinterval
- dup 4 /Flag0 STCiget {(T)}{(f)} ifelse putinterval
-
-% Bits Per Pixel & Bits Per Component
- (BitsPerPixel) 10 string % (nn -> nxnn)
- /BitsPerPixel STCiget 1 index cvs length % string used
- dup 2 index exch ( -> ) putinterval 4 add dup 2 add exch 2 index exch
- [{(1x)}{(3x)}{(4x)}] STCimode putinterval % String used
- /BitsPerComponent STCiget 2 index 2 index 2 getinterval cvs length add
- 0 exch getinterval
-
- () ()
-% ColorAdjustMatrix
- (ColorAdjustMatrix)
- /ColorAdjustMatrix STCiget dup null eq {
- pop (default)
- }{
- { STCicvs } forall
- [{ % Monochrome
- 26 string
- dup 0 6 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 5 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 4 -1 roll putinterval
- }{ % RGB
- 26 string
- dup 0 12 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 11 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 10 -1 roll putinterval
-
- () 26 string
- dup 0 11 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 10 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 9 -1 roll putinterval
-
- () 26 string
- dup 0 10 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 9 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 8 -1 roll putinterval
- }{
- 35 string
- dup 0 19 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 18 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 17 -1 roll putinterval dup 26 ( ) putinterval
- dup 27 16 -1 roll putinterval
-
- () 35 string
- dup 0 17 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 16 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 15 -1 roll putinterval dup 26 ( ) putinterval
- dup 27 14 -1 roll putinterval
-
- () 35 string
- dup 0 15 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 14 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 13 -1 roll putinterval dup 26 ( ) putinterval
- dup 27 12 -1 roll putinterval
-
- () 35 string
- dup 0 13 -1 roll putinterval dup 8 ( ) putinterval
- dup 9 12 -1 roll putinterval dup 17 ( ) putinterval
- dup 18 11 -1 roll putinterval dup 26 ( ) putinterval
- dup 27 10 -1 roll putinterval
-
- }
- ] STCimode
- } ifelse
- () ()
-
-% Printer Model
- (Printer-Model) /Model STCiget
-
-% Resolution
- (Resolution) 15 string % (nnnnnxnnnnn DpI)
- /HWResolution STCiget 0 get cvi 1 index cvs length
- dup 2 index exch (x) putinterval 1 add dup 2 index exch 5 getinterval
- /HWResolution STCiget 1 get cvi exch cvs length add dup 2 index
- exch ( DpI) putinterval 4 add 0 exch getinterval
-
-% HWsize holds entire Page in Pixels,
-% .HWMargins is [left,bottom,right,top] in Points
- (Printed Area) 18 string % (nnnnnxnnnnn Pixel)
- /HWSize STCiget 0 get /.HWMargins STCiget dup 0 get exch 2 get add
- /HWResolution STCiget 0 get mul 72.0 div sub cvi 1 index cvs length
- dup 2 index exch (x) putinterval 1 add dup 2 index exch 5 getinterval
- /HWSize STCiget 1 get /.HWMargins STCiget dup 1 get exch 3 get add
- /HWResolution STCiget 1 get mul 72.0 div sub cvi exch cvs length add
- dup 2 index exch ( Pixel) putinterval 6 add 0 exch getinterval
-
- () ()
-% WeaveMode
- (Weave-Mode)
- /noWeave STCiget {
- (noWeave)
- }{
- /Microweave STCiget {(Microweave)}{(Softweave)}ifelse
- }ifelse
-% Unidirectional
- (Unidirectional) /Unidirectional STCiget {(ON)}{(off)} ifelse
-% Output coding
- (OutputCode) /OutputCode STCiget
-% number of heads
- (escp_Band) /escp_Band STCiget 3 string cvs
- (escp_Width) /escp_Width STCiget 5 string cvs
- (escp_Height) /escp_Height STCiget 5 string cvs
- (escp_Top) /escp_Top STCiget 5 string cvs
- (escp_Bottom) /escp_Bottom STCiget 5 string cvs
- ] def
-
-%
-% compute the Proper X & Y-Arrays
-%
- [{ % Monochrome
- /Ktransfer STCiget /Kcoding STCiget STCisteps
- /STCi_yv [ 3 -1 roll ] def
- /STCi_xv [ 3 -1 roll ] def
- /STCi_col [[0 0 0]] def
- /STCi_set [{1.0 exch sub setgray}] def
- }{ % RGB
- /Rtransfer STCiget /Rcoding STCiget STCisteps
- /Gtransfer STCiget /Gcoding STCiget STCisteps
- /Btransfer STCiget /Bcoding STCiget STCisteps
- exch 4 -1 roll 6 -1 roll exch 3 -1 roll
- /STCi_xv [ 5 2 roll ] def
- /STCi_yv [ 5 2 roll ] def
- /STCi_col [[1 0 0] [0 1 0] [0 0 1]] def
- /STCi_set [
- {1.0 exch sub 1 exch dup setrgbcolor}
- {1.0 exch sub dup 1 exch setrgbcolor}
- {1.0 exch sub dup 1 setrgbcolor}
- ] def
- }{ % CMYK
- /Ctransfer STCiget /Ccoding STCiget STCisteps
- /Mtransfer STCiget /Mcoding STCiget STCisteps exch 3 1 roll
- /Ytransfer STCiget /Ycoding STCiget STCisteps exch 4 1 roll
- /Ktransfer STCiget /Kcoding STCiget STCisteps exch 5 1 roll
- /STCi_yv [ 6 2 roll ] def
- /STCi_xv [ 6 2 roll ] def
- /STCi_col [[0 1 1] [1 0 1] [1.0 0.5 0.0] [0 0 0]] def
- /STCi_set [
- { 0 0 0 setcmykcolor }
- { 0 exch 0 0 setcmykcolor }
- { 0 exch 0 exch 0 setcmykcolor }
- { 0 exch 0 exch 0 exch setcmykcolor }
- ] def
- }
- ]STCimode
-
-} stopped
-
-{ {/STCi_stopped eq {exit}if}loop true}
-{ {/STCi_stopped eq {exit}if}loop false} ifelse
-
-% End: stcinfo_preparation
-
-% The Next section does the real job
-
-% Begin: stcinfo_execution
-{
- (%%[ stcinfo.ps: currentdevice is not supported -> colortri ]%%\n) print
- STCi_clip colortri % The default action
-
-}{
-%
-% Print the text
-%
- 0 2 STCi_text length 2 sub { dup 1 add exch
- STCi_text exch get length dup STCi_l1 gt{/STCi_l1 exch def}{pop}ifelse
- STCi_text exch get length dup STCi_l2 gt{/STCi_l2 exch def}{pop}ifelse
- } for
- /STCi_l2 STCi_l2 neg def
- 0 2 STCi_text length 2 sub {
- dup 1 add STCi_text exch get exch STCi_text exch get
- 1 index length 0 gt {
- dup STCi_l1 STCiprint length 0 gt {(: )}{( )}ifelse print print
- }{
- pop pop
- } ifelse
- (\n) print
- } for
-%
-% Deactivate a present ColorAdjust Matrix, if any
-%
- /ColorAdjustMatrix STCiget null ne STCi_onstc and {
- mark
- /ColorAdjustMatrix null
- currentdevice putdeviceprops pop
- } if
-%
-% "Show" the text
-%
- /Times-Roman findfont 10 scalefont setfont
- /STCi_l1 0 def
- 0 2 STCi_text length 2 sub {
- STCi_text exch get stringwidth pop dup STCi_l1 gt {
- /STCi_l1 exch def
- }{
- pop
- } ifelse
- } for
- STCi_l1 STCi_clip 0 get add /STCi_l1 exch def
-
- STCi_clip 3 get 12 sub
- 0 2 STCi_text length 2 sub {
- STCi_text exch get dup length 0 gt {
- dup stringwidth pop STCi_l1 exch sub 2 index moveto show
- }{
- pop
- } ifelse
- 12 sub
- } for
- pop
-
- /Courier findfont 10 scalefont setfont
- /STCi_l2 0 def
- 1 2 STCi_text length 1 sub {
- STCi_text exch get stringwidth pop dup STCi_l2 gt {
- /STCi_l2 exch def
- }{
- pop
- } ifelse
- } for
-
- STCi_clip 3 get 12 sub
- 1 2 STCi_text length 1 sub {
- STCi_text exch get dup length 0 gt {
- STCi_l1 12 add 2 index moveto show
- }{
- pop
- } ifelse
- 12 sub
- } for
- pop
-
-%
-% compute the space for the graph-window
-%
- STCi_l1 12 add STCi_l2 add 12 add dup STCi_clip 2 get exch sub % Extend
- [ 3 -1 roll dup 3 index add STCi_clip 3 get dup 5 index sub 3 1 roll ]
- /STCi_win exch def /STCi_l1 exch def
-
-% The "Axis"
- newpath
- STCi_win 0 get STCi_win 1 get 14 add moveto
- STCi_win 2 get STCi_win 1 get 14 add lineto stroke
-
- STCi_win 0 get 14 add STCi_win 1 get moveto
- STCi_win 0 get 14 add STCi_win 3 get lineto stroke
-
-% The Labels
- /Times-Roman findfont 10 scalefont setfont
- (Postscript-color) dup stringwidth pop
- STCi_win 2 get STCi_win 0 get sub 14 sub 1 index sub 2 div exch pop
- STCi_win 0 get add 14 add STCi_win 1 get 4 add moveto show
-
- gsave
- STCi_win 0 get 10 add STCi_win 1 get 14 add translate 90 rotate
- (Device-color) dup stringwidth pop
- STCi_win 3 get STCi_win 1 get sub 14 sub 1 index sub 2 div exch pop
- 0 moveto show
- grestore
-
-% The Graphs
- gsave
- STCi_win 0 get 14 add STCi_win 1 get 14 add
- STCi_win 2 get 2 index sub STCi_win 3 get 2 index sub
- 4 2 roll translate
- STCi_col 0 1 2 index length 1 sub {
- 1 index 1 index get aload pop setrgbcolor
- STCi_xv 1 index get STCi_yv 3 -1 roll get
- newpath
- 1 index 0 get 5 index mul 1 index 0 get 5 index mul moveto
- 1 index 1 get 5 index mul 1 index 0 get 5 index mul lineto
- 1 1 2 index length 1 sub {
- 2 index 1 index get 6 index mul
- 2 index 2 index get 6 index mul lineto
- 2 index 1 index 1 add get 6 index mul
- 2 index 2 index get 6 index mul lineto
- pop
- } for
- stroke pop pop
- } for
- pop pop pop
- grestore
-
-%
-% Find lowest Y from Text or graph
-%
- STCi_win 1 get STCi_clip 3 get STCi_text length 2 div 12 mul sub
- dup 2 index gt { pop } { exch pop } ifelse 12 sub
-
-%
-% compute the upper bar-window
-%
- /STCi_win [
- STCi_clip 0 get 4 -1 roll 36 sub STCi_clip 2 get 1 index 36 add
- ] def
-
-%
-% Draw the required number of graphs
-%
- [{ % Monochrome
- STCi_win STCi_xv 0 get {setgray} STCibar
- }{ % RGB
- STCi_win STCi_xv 0 get {0 0 setrgbcolor} STCibar
- STCi_win dup 1 exch 1 get 47 sub put
- STCi_win dup 3 exch 3 get 47 sub put
- STCi_win STCi_xv 1 get {0 0 3 1 roll setrgbcolor} STCibar
- STCi_win dup 1 exch 1 get 47 sub put
- STCi_win dup 3 exch 3 get 47 sub put
- STCi_win STCi_xv 2 get {0 0 3 2 roll setrgbcolor} STCibar
- }{ % CMYK
- STCi_win STCi_xv 0 get {0 0 0 setcmykcolor} STCibar
- STCi_win dup 1 exch 1 get 47 sub put
- STCi_win dup 3 exch 3 get 47 sub put
- STCi_win STCi_xv 1 get {0 0 0 4 1 roll setcmykcolor} STCibar
- STCi_win dup 1 exch 1 get 47 sub put
- STCi_win dup 3 exch 3 get 47 sub put
- STCi_win STCi_xv 2 get {0 0 0 4 2 roll setcmykcolor} STCibar
- STCi_win dup 1 exch 1 get 47 sub put
- STCi_win dup 3 exch 3 get 47 sub put
- STCi_win STCi_xv 3 get {0 0 0 4 3 roll setcmykcolor} STCibar
- }
- ] STCimode
-
- STCi_win 1 STCi_clip 1 get put
- STCi_win dup 3 exch 3 get 47 sub put
-
-%
-% Plot either one or two Color-Triangles
-%
- /ColorAdjustMatrix STCiget null ne STCi_onstc and {
- STCi_win 0 get STCi_win 2 get add 2 div
- [STCi_win 0 get STCi_win 1 get 3 index STCi_win 3 get ] colortri
- mark /ColorAdjustMatrix dup STCiget currentdevice putdeviceprops pop
- [1 index STCi_win 1 get STCi_win 2 get STCi_win 3 get ] colortri
- pop
- }{
- STCi_win colortri
- } ifelse
- newpath clippath stroke
-} ifelse
-showpage
diff --git a/Master/xemtex/gslib/stcolor.ps b/Master/xemtex/gslib/stcolor.ps
deleted file mode 100644
index 76b51dcc383..00000000000
--- a/Master/xemtex/gslib/stcolor.ps
+++ /dev/null
@@ -1,172 +0,0 @@
-% Copyright (C) 1995 Aladdin Enterprises. All rights reserved
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: stcolor.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% stcolor.ps
-% Epson Stylus-Color Printer-Driver
-
-% The purpose of this file is to configure the stcolor-printer driver
-
-%
-% It is useless and dangerous to interpret the following code with anything
-% else than Ghostscript, so this condition is verified first. If this fails
-% a message is send to the output. If this message bothers you, remove it,
-% but I prefer to know why the device-setup failed.
-
-statusdict begin product end
-dup (Ghostscript) eq 1 index (Aladdin Ghostscript) eq or
-exch (AFPL Ghostscript) eq or{
-
-% fetch the current device-parameters this is specific for Ghostscript.
-
- /STCold currentdevice getdeviceprops .dicttomark def
-
-% Any Ghostscript-Driver has a Name, verify that the selected device is
-% stcolor, otherwise nothing than another message will be produced.
-
- STCold /Name get (stcolor) eq {
-
-%
-% The main thing this file does, is to establish transfer-functions.
-% Here are two predefined arrays for 360x360Dpi and for 720x720DpI.
-% If resolution is 360x720 or 720x360 the average is used. You may
-% want to define other arrays here.
-%
-
- /STCdeftransfer [ 0.0 1.0 ] def
-
- /STCKtransfer360 [
- 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
- 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
- 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
- 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
- ] def
-
- /STCKtransfer720 [
- 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
- 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
- 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
- 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
- ] def
-
-% compute the resolution
-
- STCold /HWResolution get dup
- 0 get exch 1 get mul sqrt /STCdpi exch def
-
-% pick the colormodel
- STCold /ProcessColorModel get /STCcolor exch def
-
-
- mark % prepare stack for "putdeviceprops"
-
-% warn for BitsPerPixel=30 with fsrgb
- STCcolor /DeviceRGB eq STCold /BitsPerPixel get 32 eq and
- {
- (%%[ stcolor.ps: inefficient RGB-setup, recommend BitsPerPixel=24 ]%%\n)
- print
- } if
-
-% if the Dithering-Method is default (gscmyk), change it to fscmyk
-% this is achieved by pushing a name/value-pair onto the stack
-% if the selected algorithm uses another ProcessColorModel, it is necessary
-% to change the Value of STCcolor according to the new algorithm.
-
- STCold /Dithering get (gscmyk) eq
- {
- /Dithering (hscmyk) % preferred dithering-method
- } if % might be necessary to change STCcolor too
-
-%
-% select the array according to the resolution
-%
- STCdpi 359.0 lt
- { STCdeftransfer }
- { STCdpi 361.0 lt
- { STCKtransfer360 }
- { STCdpi 719.0 gt
- { STCKtransfer720 }
- {
- STCKtransfer360 length STCKtransfer720 length eq
- {
- 0 1 STCKtransfer360 length 1 sub
- {
- dup dup
- STCKtransfer360 exch get
- exch STCKtransfer720 exch get
- add 2.0 div
- STCKtransfer360 3 1 roll put
- } for
- }if
- STCKtransfer360
- } ifelse
- }ifelse
- } ifelse
- /STCtransfer exch def
-
-%
-% Add the arrays. With Version 1.17 and above, it seems to be
-% a good idea, to use the transfer-arrays as coding-arrays too.
-%
-
-%
-% RGB-Model requires inversion of the transfer-arrays
-%
- STCcolor /DeviceRGB eq
- {
- /RGBtransfer STCtransfer length array def
- 0 1 STCtransfer length 1 sub
- {
- dup RGBtransfer length 1 sub exch sub exch
- STCtransfer exch get 1.0 exch sub
- RGBtransfer 3 1 roll put
- } for
-
- /Rtransfer RGBtransfer
- /Gtransfer RGBtransfer
- /Btransfer RGBtransfer
-
- /Rcoding RGBtransfer
- /Gcoding RGBtransfer
- /Bcoding RGBtransfer
-
- }{
-
- /Ctransfer STCtransfer
- /Mtransfer STCtransfer
- /Ytransfer STCtransfer
- /Ktransfer STCtransfer
-
- /Ccoding STCtransfer
- /Mcoding STCtransfer
- /Ycoding STCtransfer
- /Kcoding STCtransfer
-
- } ifelse
-
- counttomark 0 ne
- {currentdevice putdeviceprops pop}{cleartomark}ifelse
-
-% decativate predefined correction
-
- {} dup dup currenttransfer setcolortransfer
-
- }{
- (%%[ stcolor.ps: currentdevice is not stcolor - ignored ]%%\n) print
- } ifelse
-}{
- (%%[ stcolor.ps: not interpreted by AFPL Ghostscript - ignored ]%%\n) print
-} ifelse
diff --git a/Master/xemtex/gslib/stocht.ps b/Master/xemtex/gslib/stocht.ps
deleted file mode 100644
index db56356c3a6..00000000000
--- a/Master/xemtex/gslib/stocht.ps
+++ /dev/null
@@ -1,63 +0,0 @@
-% Copyright (C) 1999, 2000 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: stocht.ps,v 1.3.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% helper file to simplify use of Stochastic Halftone - uses ht_ccsto.ps
-
-% This file sets the /StochasticDefault /Halftone as the current
-% and the /Default halftoning, loading the Stochastic halftone
-% if required.
-
-% Stochastic halftoning is recommended for inkjet printers, and may
-% produce output as pleasing as the more computationally expensive
-% "error diffusion" that *some* device drivers provide.
-
-% For printing technologies other than inkjet, Stochastic halftoning
-% may not look better than standard screening. In particular, thermal
-% transfer and direct thermal tend to be better with standard ordered
-% screening methods. Some laser printers may produce "smoother"
-% looking gray shades with Stochastic halftoning. Try it, and if
-% you like it, use it.
-
-% Note that this /Default halftone can be overridden by PostScript
-% operators that set the screening or halftone (such as setscreen).
-
-% To make Stochastic Halftone be "sticky" so that other screening and
-% halftone setting in the subsequent PostScript will be ignored, use:
-% -c "<< /HalftoneMode 1 >> setuserparams"
-% on the command line prior to the file to be processed. For example,
-%
-% gs stocht.ps -c "<< /HalftoneMode 1 >> setuserparams" -f examples/tiger.ps
-
-% Alternatively, the command to set the /HalftoneMode userparam can be
-% concatenated to this file (see below).
-
-% =====================================================================
-% Try to get the previously defined resource
-{ /StochasticDefault /Halftone findresource } stopped
-{
- pop pop
- % Need to load the Stochastic Halftone using the lib file
- (ht_ccsto.ps) runlibfile
-} if
-
-% If we didn't error out by now, then go ahead and define the /Default
-/StochasticDefault /Halftone findresource
-/Default exch /Halftone defineresource
-sethalftone % Use the halftone
-
-% Uncomment the next line to make the Stocahstic halftoning be "sticky"
-% << /HalftoneMode 1 >> setuserparams
diff --git a/Master/xemtex/gslib/sysvlp.sh b/Master/xemtex/gslib/sysvlp.sh
deleted file mode 100644
index b93304ce481..00000000000
--- a/Master/xemtex/gslib/sysvlp.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-# $Id: sysvlp.sh,v 1.1 2000/03/09 08:40:40 lpd Exp $
-
-# System V 3.2 lp interface for parallel, postscript printer
-# with ghostscript 2.5.n.
-#
-# Thanks to Arne Ludwig (arne@rrzbu.hanse.de) for this script.
-#
-
-DEVICE=lbp8
-GSHOME=/local/gs/2.5b2
-FONT=/local
-LIBDIR=/usr/spool/lp/admins/lp/interfaces
-#EHANDLER=$LIBDIR/ehandler.ps
-
-GS_LIB=$GSHOME:$FONT/fonts:$FONT/fonts/lw:$FONT/fonts/gs
-export GS_LIB
-
-copies=$4
-shift 5
-files="$*"
-
-# serial line settings
-# stty 19200 ixon ixoff 0<&1
-# stty 1200 tabs cread opost onlcr ixon ixany ff1 cr2 nl0 0<&1
-
-# Brother HL-4: switch to HP laserjet II+ emulation
-# echo "\033\015H\c"
-
-i=1
-while [ $i -le $copies ]
-do
- for file in $files
- do
- $GSHOME/gs \
- -sOUTPUTFILE=/tmp/psp$$.%02d \
- -sDEVICE=$DEVICE \
- $EHANDLER $file \
- < /dev/null >> /usr/tmp/ps_log 2>&1
-
- cat /tmp/psp$$.* 2>> /usr/tmp/ps_log
- rm -f /tmp/psp$$.*
- done
- i=`expr $i + 1`
-done
-exit 0
diff --git a/Master/xemtex/gslib/traceimg.ps b/Master/xemtex/gslib/traceimg.ps
deleted file mode 100644
index 1b8488c9aa7..00000000000
--- a/Master/xemtex/gslib/traceimg.ps
+++ /dev/null
@@ -1,43 +0,0 @@
-% Copyright (C) 1994 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: traceimg.ps,v 1.2.6.2.2.1 2003/04/12 14:02:39 giles Exp $
-% traceimg.ps
-% Trace the data supplied to the 'image' operator.
-
-% This code currently handles only the (Level 2) dictionary form of image,
-% with a single data source and 8-bit pixels.
-
-/traceimage % <dict> traceimage -
- { currentcolorspace == (setcolorspace\n) print
- (<<) print
- dup { (\t) print exch ==only ( ) print == } forall
- (>>\n) print flush
- begin /i_left Width Height mul store /i_dict currentdict store end
- { i_left 0 le { exit } if
- i_dict /DataSource get exec
- dup type /filetype eq
- { i_buf 0 i_left 32 .min getinterval readstring pop
- } if
- dup (%stdout) (w) file exch writehexstring (\n) print flush
- i_left exch length sub /i_left exch def
- } loop
- } bind odef
-
-/image /traceimage load def
-/i_left 0 def
-/i_dict null def
-/i_buf 32 string def
diff --git a/Master/xemtex/gslib/traceop.ps b/Master/xemtex/gslib/traceop.ps
deleted file mode 100644
index 3ac00cb8623..00000000000
--- a/Master/xemtex/gslib/traceop.ps
+++ /dev/null
@@ -1,84 +0,0 @@
-% Copyright (C) 1992, 1993, 1994, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: traceop.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% Trace individual operators or procedures.
-% <opref> is <opname> or <opname> <dict>
-% (dict defaults to dict where op is currently defined, if writable;
-% otherwise uses userdict)
-% <opref> traceop prints vmem usage before;
-% <opref> <numargs|preproc> prints arguments or runs proc before;
-% <opref> <numargs|preproc> <numresults|postproc>
-% also prints results or runs proc after.
-% If traceflush is true, flush the output after each printout.
-/traceflush true def
-
-currentpacking true setpacking
-.currentglobal true .setglobal
-
-% Define the default "before" action
-/tracebefore { vmstatus 3 traceprint pop pop pop } def
-
-% Define the default "after" action
-/traceafter { } def
-
-/traceprint {
- dup type /integertype eq {
- 1 sub -1 0 { ( ) print index ==only } for
- } {
- exec
- } ifelse
-} bind def
-/traceend {
- traceflush { flush } if
-} bind def
-/traceop {
- userdict begin
- dup type dup /nametype eq exch /dicttype eq or { { tracebefore } } if
- 1 index type dup /nametype eq exch /dicttype eq or { { traceafter } } if
- /.tpost exch def /.tpre exch def
- dup type /dicttype ne {
- dup where not { userdict 1 index {} put userdict } if
- } if
- dup dup wcheck not {
- (Warning: substituting userdict for non-writable dictionary.) =
- pop userdict
- } if
- /.tddict exch def /.tdict exch def /.tname exch cvlit def
- .currentglobal [
- .tname /=only cvx ( ) /print cvx
- /.tpre load /traceprint cvx /traceend cvx
- .tdict .tname get /.tdef 1 index cvlit def
- dup xcheck {
- dup type dup /arraytype eq exch /packedarraytype eq or {
- /exec cvx
- } if
- } if
- /.tpost load /traceprint cvx () /= cvx /traceend cvx
- .tdef gcheck /.tpre load gcheck and /.tpost load gcheck and .setglobal
- ] cvx
- .tdef type /operatortype eq {
- .tname exch .makeoperator
- } if
- exch .setglobal
- .tddict exch .tname exch put
- end % userdict
-} bind def
-/tracebind /bind load def % in case someone wants to put it back
-/bind { } def % disable
-
-.setglobal
-setpacking
diff --git a/Master/xemtex/gslib/type1enc.ps b/Master/xemtex/gslib/type1enc.ps
deleted file mode 100644
index 02573c42f01..00000000000
--- a/Master/xemtex/gslib/type1enc.ps
+++ /dev/null
@@ -1,66 +0,0 @@
-% Copyright (C) 1992, 1993 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: type1enc.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% type1enc.ps
-% PostScript language versions of the Type 1 encryption/decryption algorithms.
-
-% This file is normally not needed with Ghostscript, since Ghostscript
-% implements these algorithms in C. For the specifications, see Chapter 7 of
-% "Adobe Type 1 Font Format," ISBN 0-201-57044-0, published by Addison-Wesley.
-
-/.type1crypt % <R> <from> <to> <proc> .type1crypt <R'> <to>
- % (auxiliary procedure)
- { 4 1 roll
- 0 2 index length getinterval
- 0 1 2 index length 1 sub
- { % Stack: proc R from to index
- 2 index 1 index get % proc R from to index C/P
- 4 index -8 bitshift xor 3 copy put % proc R from to index P/C
- 5 index exec % proc R from to C
-
-% Compute R' = ((R + C) * 52845 + 22719) mod 65536
-% without exceeding a 31-bit integer magnitude, given that
-% 0 <= R <= 65535 and 0 <= C <= 255.
-
- 4 -1 roll add
- dup 20077 mul % 52845 - 32768
- exch 1 and 15 bitshift add % only care about 16 low-order bits
- 22719 add 65535 and 3 1 roll
- }
- for exch pop 3 -1 roll pop
- } bind def
-
-% <state> <fromString> <toString> .type1encrypt <newState> <toSubstring>
-% Encrypts fromString according to the algorithm for Adobe
-% Type 1 fonts, writing the result into toString.
-% toString must be at least as long as fromString or a
-% rangecheck error occurs. state is the initial state of
-% the encryption algorithm (a 16-bit non-negative
-% integer); newState is the new state of the algorithm.
-
-/.type1encrypt
- { { exch pop } .type1crypt
- } bind def
-
-% <state> <fromString> <toString> .type1decrypt <newState> <toSubstring>
-% Decrypts fromString according to the algorithm for Adobe
-% Type 1 fonts, writing the result into toString. Other
-% specifications are as for type1encrypt.
-
-/.type1decrypt
- { { pop 2 index exch get } .type1crypt
- } bind def
diff --git a/Master/xemtex/gslib/type1ops.ps b/Master/xemtex/gslib/type1ops.ps
deleted file mode 100644
index c4644924f73..00000000000
--- a/Master/xemtex/gslib/type1ops.ps
+++ /dev/null
@@ -1,238 +0,0 @@
-% Copyright (C) 1992, 1997, 1998, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: type1ops.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% type1ops.ps
-% Define the Type 1 and Type 2 font opcodes for use by Ghostscript utilities.
-
-% Define the default value of lenIV.
-% Note that this expects the current font to be on the dictionary stack.
-
-/lenIV { FontType 2 eq { -1 } { 4 } ifelse } def
-
-% ---------------- Encoding ---------------- %
-
-/Type1encode 70 dict
-
- % Data types
-
-dup /nulltype {
- pop ()
-} put
-dup /nametype {
- Type1encode exch get
-} put
-dup /stringtype {
-} put
-dup /integertype {
- dup dup -107 ge exch 107 le and {
- 139 add (x) dup 0 4 -1 roll put
- } {
- dup dup -1131 ge exch 1131 le and {
- dup 0 ge { 16#f694 } { neg 16#fa94 } ifelse add
- (xx) dup dup 0 4 index -8 bitshift put
- 1 4 -1 roll 255 and put
- } {
- (\377xxxx) 1 1 4 {
- dup 8 mul 32 sub 3 index exch bitshift 255 and
- 2 index 3 1 roll put
- } for exch pop
- } ifelse
- } ifelse
-} put
-
- % Operators
-
-% Identical or similar in Type 1 and Type 2.
-/c_hstem 1 def dup /hstem <01> put
-/c_vstem 3 def dup /vstem <03> put
-/c_vmoveto 4 def dup /vmoveto <04> put
-/c_rlineto 5 def dup /rlineto <05> put
-/c_hlineto 6 def dup /hlineto <06> put
-/c_vlineto 7 def dup /vlineto <07> put
-/c_rrcurveto 8 def dup /rrcurveto <08> put
-/c_callsubr 10 def /s_callsubr <0a> def dup /callsubr s_callsubr put
-/c_return 11 def dup /return <0b> put
-/c_escape 12 def
- /ce_div 12 def /s_div <0c0c> def dup /div s_div put
-/c_endchar 14 def /s_endchar <0e> def dup /endchar s_endchar put
-/c_rmoveto 21 def dup /rmoveto <15> put
-/c_hmoveto 22 def dup /hmoveto <16> put
-/c_vhcurveto 30 def dup /vhcurveto <1e> put
-/c_hvcurveto 31 def dup /hvcurveto <1f> put
-% Only in Type 1.
-/c_closepath 9 def dup /closepath <09> put
-/c_hsbw 13 def /s_hsbw <0d> def dup /hsbw s_hsbw put
- /ce_dotsection 0 def /s_dotsection <0c06> def dup /dotsection s_dotsection put
- /ce_vstem3 1 def /s_vstem3 <0c01> def dup /vstem3 s_vstem3 put
- /ce_hstem3 2 def /s_hstem3 <0c02> def dup /hstem3 s_hstem3 put
- /ce_seac 6 def /s_seac <0c06> def dup /seac s_seac put
- /ce_sbw 7 def /s_sbw <0c07> def dup /sbw s_sbw put
- /ce_callothersubr 16 def /s_callothersubr <0c10> def dup /callothersubr s_callothersubr put
- /ce_pop 17 def /s_pop <0c11> def dup /pop s_pop put
- /ce_setcurrentpoint 33 def /s_setcurrentpoint <0c21> def dup /setcurrentpoint s_setcurrentpoint put
- /s_setcurrentpoint_hmoveto s_setcurrentpoint <8b16> concatstrings def
-% Only in Type 2.
-dup /blend <10> put
-dup /hstemhm <12> put
-dup /hintmask <13> put
-dup /cntrmask <14> put
-dup /vstemhm <17> put
-dup /rcurveline <18> put
-dup /rlinecurve <19> put
-dup /vvcurveto <1a> put
-dup /hhcurveto <1b> put
-dup /callgsubr <1d> put
- dup /and <0c03> put
- dup /or <0c04> put
- dup /not <0c05> put
- dup /store <0c08> put
- dup /abs <0c09> put
- dup /add <0c0a> put
- dup /sub <0c0b> put
- dup /load <0c0d> put
- dup /neg <0c0c> put
- dup /eq <0c0f> put
- dup /drop <0c12> put
- dup /put <0c14> put
- dup /get <0c15> put
- dup /ifelse <0c16> put
- dup /random <0c17> put
- dup /mul <0c18> put
- dup /sqrt <0c1a> put
- dup /dup <0c1b> put
- dup /exch <0c1c> put
- dup /index <0c1d> put
- dup /roll <0c1e> put
- dup /hflex <0c22> put
- dup /flex <0c23> put
- dup /hflex1 <0c24> put
- dup /flex1 <0c25> put
-
-readonly def
-
-% ---------------- Decoding ---------------- %
-
-/Type1decode 512 array
-
-Type1encode {
- dup type /stringtype eq {
- dup length 1 eq { 0 get } { 1 get 256 add } ifelse
- % stack: array key code
- exch 2 index 3 1 roll put
- } {
- pop pop
- } ifelse
-} forall
-
-dup 12 {
- dup read pop dup Type1decode exch 256 add get dup null ne
- { exch pop }
- { pop 2 string dup 0 12 put dup 1 4 -1 roll put }
- ifelse
-} put
-dup 28 { % Type 2 only
- dup read pop 128 xor 128 sub 8 bitshift
- 1 index read pop add
-} put
-32 1 246 { 2 copy dup 139 sub put pop } for
-dup 247 { dup read pop 108 add } put
-dup 248 { dup read pop 364 add } put
-dup 249 { dup read pop 620 add } put
-dup 250 { dup read pop 876 add } put
-dup 251 { dup read pop 108 add neg } put
-dup 252 { dup read pop 364 add neg } put
-dup 253 { dup read pop 620 add neg } put
-dup 254 { dup read pop 876 add neg } put
-dup 255 { % Different for Type 1 and Type 2
- dup read pop 128 xor 128 sub
- 3 { 8 bitshift 1 index read pop add } repeat
- FontType 2 eq { 65536.0 div } if
-} put
-
-readonly def
-
-% ---------------- Procedures ---------------- %
-
-% For these utilities, a CharString is represented by a sequence of
-% integers, reals, strings, and names, either in an array or on the stack.
-% Integers and reals represent themselves; strings are other data that
-% appears in the CharString; names are CharString operator names.
-% A CharString in an array is called a "charproc"; a CharString on
-% the stack is called a "charstack", and is delimited by a mark.
-% Individual elements are called "chartokens".
-
-% ------ Encoding ------ %
-
-% Get the string for a chartoken.
-% Note that this string may be overwritten by the next call.
-/chartoken_string { % <chartoken> chartoken_string <string>
- dup type Type1encode exch get exec
-} bind def
-% Compute the length of a CharString.
-/chartoken_length { % <chartoken> chartoken_length <length>
- chartoken_string length
-} bind def
-/charproc_length { % <charproc> charproc_length <length>
- 0 exch { chartoken_length add } forall
-} bind def
-/charstack_length { % <charstack> charstack_length <charstack> <length>
- counttomark 0 exch -1 1 { index chartoken_length add } for
-} bind def
-
-% Write a CharString to a file. Normally this will be a NullEncode filter
-% writing on a string of the correct length.
-/chartoken_write { % <file> <chartoken> chartoken_write -
- chartoken_string writestring
-} bind def
-/charproc_write { % <file> <charproc> charproc_write -
- { 1 index exch chartoken_write } forall pop
-} bind def
-% Note that the arguments of charstack_write are backwards.
-/charstack_write { % <charstack> <file> charstack_write -
- counttomark 1 sub -1 1 { index 1 index exch chartoken_write } for
- cleartomark
-} bind def
-
-% Convert a charproc or charstack to an *un*encrypted CharString.
-/charproc_string { % <charproc> charproc_string <string>
- mark exch aload pop charstack_string
-} bind def
-/charstack_string { % <charstack> charstack_string <string>
- charstack_length lenIV 0 gt {
- lenIV add string
- dup dup length lenIV sub lenIV exch getinterval % skip lenIV
- } {
- string
- } ifelse
- /NullEncode filter
- exch 1 index counttomark 1 add 2 roll
- charstack_write closefile
-% lenIV 0 ge { 4330 exch dup .type1encrypt exch pop readonly } if
-} bind def
-
-% ------ Decoding ------ %
-
-% Decode a CharString (unencrypted).
-/charstack_read { % <file> charstack_read <no-mark-charstack>
- { dup read not { pop exit } if
- Type1decode 1 index get dup null eq {
- pop 1 string dup 0 4 -1 roll put
- } {
- exch pop exec
- } ifelse exch
- } loop
-} bind def
diff --git a/Master/xemtex/gslib/uninfo.ps b/Master/xemtex/gslib/uninfo.ps
deleted file mode 100644
index 211d3af15a5..00000000000
--- a/Master/xemtex/gslib/uninfo.ps
+++ /dev/null
@@ -1,221 +0,0 @@
-%!
-% Copyright (C) 1997 Aladdin Enterprises. All rights reserved
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: uninfo.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% uninfo.ps: Utilities for "printing" PostScript items, especially dictionaries
-% Usage:
-% (prefix-string) dict unprint
-
-% Maximum Print-Width
-/HSpwidth 80 def
-
-% any HScvs string
-/HScvs {
-% Number-Syntax
- dup type % stack: any /anytype
- dup /integertype eq 1 index /realtype eq or { pop
- 16 string cvs
- }{
-% Logical-Type
- dup /booleantype eq { pop
- 5 string cvs
- }{
-% Identifiers
- dup /nametype eq { pop
- dup length 1 add string
- dup 0 (/) putinterval
- exch 1 index 1 1 index length 1 sub getinterval cvs pop
- }{
-% Strings
- dup /stringtype eq { pop
-% ------- Compute Length
- 2 1 index { % stack: str len item
- dup 32 lt 1 index 126 gt or { % need 4
- pop 4 add
- }{
- dup 40 eq 1 index 41 eq or 1 index 92 eq or {
- pop 2 add
- }{
- pop 1 add
- } ifelse
- } ifelse
- } forall
-% ------- Allocate & Fill String
- string dup 0 (\() putinterval 1
- 3 -1 roll { % outstr pos item
- dup 32 lt 1 index 126 gt or {
- dup 7 le {
- 2 index 2 index (\\00) putinterval
- 8 3 index 3 index 3 add 1 getinterval cvrs
- }{
- dup 63 le {
- 2 index 2 index (\\0) putinterval
- 8 3 index 3 index 2 add 2 getinterval cvrs
- }{
- 2 index 2 index (\\) putinterval
- 8 3 index 3 index 1 add 3 getinterval cvrs
- } ifelse
- } ifelse
- pop 4 add
- }{
- dup 40 eq 1 index 41 eq or 1 index 92 eq or {
- 2 index 2 index (\\) putinterval
- exch 1 add exch
- } if
- 2 index exch 2 index exch put
- 1 add
- } ifelse
- } forall
- 1 index exch (\)) putinterval
- }{ exch pop
- dup length 1 add string
- dup 0 (-) putinterval
- exch 1 index 1 1 index length 1 sub getinterval cvs pop
- dup dup length 4 sub (-) putinterval
- 0 1 index length 3 sub getinterval
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} bind def
-
-% int HSpindent - indent-spaces
-/HSpindent {
- dup 0 gt {
- 1 1 3 -1 roll { pop ( ) print } for
- }{
- pop
- } ifelse
-} bind def
-
-% indent array HSaprint -> Print an Array
-/HSaprint {
- dup type /arraytype eq {
- ( [) print
- exch 1 add dup 1 add
- 3 -1 roll { % rind pos item
- HScvs dup length % rind pos str len
- dup 3 index add HSpwidth ge {
- (\n) print
- 3 index HSpindent
- 3 -1 roll pop
- 2 index add
- exch
- }{
- ( ) print
- 2 index add 1 add
- 3 -1 roll pop
- exch
- } ifelse
- print
- } forall
- ( ]) print
- pop pop
- }{
- ( ) print
- HScvs print pop
- } ifelse
- (\n) print
-} bind def
-
-% dict HSdnames dict names (creates sorted name-strings)
-/HSdnames {
-% Build namelist, stack: dic
- dup length 0 eq {
- []
- }{
- [ 1 index {
- pop dup type /nametype eq {
- dup length string cvs
- }{
- pop
- } ifelse
- } forall
- ]
-% Sort the namelist, stack: dic nam
- 0 1 2 index length 2 sub { % stack: dic nam I
- 2 copy get % stack: pre dic nam I nam[I]
- 1 index 1 add 1 4 index length 1 sub { % stack: dic nam I nam[I] J
- 3 index 1 index get % dic nam I S[I] J S[J]
- 2 index 1 index gt { % swap them
- 4 index 2 index 4 index put
- 4 index 4 index 2 index put
- 3 1 roll
- } if
- pop pop
- } for
- pop pop
- } for
- } ifelse
-} bind def
-
-% string:prefix dict:which unprint
-/unprint {
- HSdnames % pre dic nam
-% compute the maximum length
- 0 1 index { % pre dic nam maxlen nam[I]
- length 2 copy lt { exch } if pop
- } forall
-% Print out all the items, stack: pre dic nam maxlen
- (\n) print
- exch { % pre dic maxlen nam[I]
-% no prefix yet, -> flush right
- 3 index length 0 eq {
- dup length 2 index exch sub HSpindent
- }{
- 3 index print (/) print
- } ifelse
-% print the name
- dup print
-% prefix: fill up with blanks
- 3 index length 0 ne {
- dup length 2 index exch sub HSpindent
- } if
-% now print the item itself, stack: pre dic maxlen nam[I]
- 2 index 1 index cvn get dup type % stack: pre dic maxlen nam[i] item typ
-% Dict-Syntax
- dup /dicttype eq { pop % stack: pre dic maxlen nam[i] item
- ( ) print dup HScvs print
- 4 index length 0 eq { % brand new prefix
- 2 index string 0 1 5 index 1 sub { 1 index exch 32 put } for
- dup 4 index 4 index length sub 5 -1 roll putinterval
- }{
- 4 index length 1 add 2 index length add string
- dup 0 7 index putinterval
- dup 6 index length (/) putinterval
- dup 6 index length 1 add 5 -1 roll putinterval
- } ifelse
- exch unprint
- }{
- 3 -1 roll pop % tack: pre dic maxlen item typ
-% Array-Syntax
- dup /arraytype eq { pop % stack: pre dic maxlen item
- 3 index length dup 0 ne { 1 add } if 2 index add
- exch HSaprint
- }{ pop
- ( ) print
- HScvs print
- (\n) print
- } ifelse
- } ifelse
- } forall
- pop pop length -1 eq { (\n) print } if
-} bind def
-
-/currentpagedevice where { % check for currentpagedevice
- /currentpagedevice get exec () exch unprint
-} if
diff --git a/Master/xemtex/gslib/unix-lpr.sh b/Master/xemtex/gslib/unix-lpr.sh
deleted file mode 100644
index 48754326920..00000000000
--- a/Master/xemtex/gslib/unix-lpr.sh
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/bin/sh
-# $Id: unix-lpr.sh,v 1.1.6.1 2002/04/22 19:54:55 giles Exp $
-#
-# Unix lpr filter. The default setup sends output directly to a pipe,
-# which requires the Ghostscript process to fork, and thus may cause
-# small systems to run out of memory/swap space. An alternative strategy,
-# based on a suggestion by Andy Fyfe (andy@cs.caltech.edu), uses a named
-# pipe for output, which avoids the fork and can thus save a lot of memory.
-#
-# Unfortunately this approach can cause problems when a print job is aborted,
-# as the abort can cause one of the processes to die, leaving the process
-# at the other end of the pipe hanging forever.
-#
-# Because of this, the named pipe method has not been made the default,
-# but it may be restored by commenting out the lines referring to
-# 'gsoutput' and uncommenting the lines referring to 'gspipe'.
-#
-
-PBMPLUSPATH=/usr/local/bin
-PSFILTERPATH=/usr/local/lib/ghostscript
-LOCALPATH=/usr/local/bin
-X11HOME=/usr/X11R6
-
-PATH=/bin:/usr/bin:/usr/ucb:/usr/etc
-PATH=${PATH}\:${LOCALPATH}\:${PBMPLUSPATH}\:${PSFILTERPATH}
-LD_LIBRARY_PATH=${X11HOME}/lib
-
-export PATH LD_LIBRARY_PATH acctfile host user
-
-user= host= acctfile=/dev/null
-
-#
-# Redirect stdout to stderr (for the logfile) and open a new channel
-# connected to stdout for the raw data. This enables us to keep the
-# raw data separate from programmed postscript output and error messages.
-#
-exec 3>&1 1>&2
-
-#
-# Get username and hostname from filter parameters
-#
-while [ $# != 0 ]
-do case "$1" in
- -n) user=$2 ; shift ;;
- -h) host=$2 ; shift ;;
- -*) ;;
- *) acctfile=$1 ;;
- esac
- shift
-done
-
-#
-# Get the filter, printer device and queue type (direct/indirect)
-#
-filter=`basename $0`
-device=`dirname $0`
-type=`dirname ${device}`
-device=`basename ${device}`
-fdevname=$device
-type=`basename ${type}`
-
-#
-# Find the bpp and number of colors, if specified
-#
-
-colorspec="`echo ${device} | sed 's/.*\.[0-9][0-9]*\.\([0-9][0-9]*\)$/\1/'`"
-if test "$colorspec" = "${device}"
-then
- colorspec=""
-else
- device=`basename ${device} .$colorspec`
- colorspec="-dColors=$colorspec"
-fi
-
-bpp="`echo ${device} | sed 's/.*\.\([0-9][0-9]*\)$/\1/'`"
-if test "$bpp" = "${device}"
-then
- bpp=1
-else
- device=`basename ${device} .$bpp`
-fi
-
-#
-# Information for the logfile
-#
-lock=`dirname ${acctfile}`/lock
-cf=`sed -n '$p' ${lock}`
-job=`sed -n 's/^J//p' ${cf}`
-
-echo "gsbanner: ${host}:${user} Job: ${job} Date: `date`"
-echo "gsif: ${host}:${user} ${fdevname} start - `date`"
-
-#
-# Set the direct or indirect output destinations
-#
-#gspipe=/tmp/gspipe.$$
-#mknod ${gspipe} p
-
-case "${type}" in
- direct)
- gsoutput="cat 1>&3" ;;
-# cat ${gspipe} 1>&3 & ;;
- indirect)
- gsoutput="lpr -P${device}.raw" ;;
-# cat ${gspipe} | lpr -P${device}.raw & ;;
-esac
-
-(
-#
-# Any setup required may be done here (eg. setting gamma for colour printing)
-#
-#echo "{0.333 exp} dup dup currenttransfer setcolortransfer"
-
-#
-# The input data is filtered here, before being passed on to Ghostscript
-#
-case "${filter}" in
- gsif) cat ;;
- gsnf) psdit ;;
- gstf) pscat ;;
- gsgf) psplot ;;
- gsvf) rasttopnm | pnmtops ;;
- gsdf) dvi2ps -sqlw ;;
- gscf|gsrf) echo "${filter}: filter not available" 1>&2 ; exit 0 ;;
-esac
-
-#
-# This is the postlude which does the accounting
-#
-echo "\
-(acctfile) getenv
- { currentdevice /PageCount gsgetdeviceprop dup cvi 0 gt
- { exch (a) file /acctfile exch def
- /string 20 string def
- string cvs dup length dup
- 4 lt
- { 4 exch sub
- { acctfile ( ) writestring } repeat
- } { pop } ifelse
- acctfile exch writestring
- acctfile (.00 ) writestring
- acctfile (host) getenv
- { string cvs } { (NOHOST) } ifelse writestring
- acctfile (:) writestring
- acctfile (user) getenv
- { string cvs } { (NOUSER) } ifelse writestring
- acctfile (\n) writestring
- acctfile closefile
- } { pop } ifelse
- } if
-quit"
-) | gs -q -dNOPAUSE -sDEVICE=${device} -dBitsPerPixel=${bpp} $colorspec \
- -sOutputFile=\|"${gsoutput}" -
-# -sOutputFile=${gspipe} -
-
-rm -f ${gspipe}
-#
-# End the logfile entry
-#
-echo "gsif: end - `date`"
-
diff --git a/Master/xemtex/gslib/unprot.ps b/Master/xemtex/gslib/unprot.ps
deleted file mode 100644
index 712eff6064e..00000000000
--- a/Master/xemtex/gslib/unprot.ps
+++ /dev/null
@@ -1,68 +0,0 @@
-% Copyright (C) 1991, 1992, 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: unprot.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% Disable all access checks. This is useful for printing out
-% eexec-encrypted Type 1 fonts, and similar purposes.
-
-systemdict wcheck
- { /protdict systemdict def
- }
- { (Please restart Ghostscript with the -dWRITESYSTEMDICT switch.\n) print
- (Some access checks will remain active if you do not do this.\n) print
- flush
- /protdict userdict def
- }
-ifelse
-
-% The procedures we're about to define will go in systemdict,
-% so they must be allocated in global VM.
-
-.currentglobal true .setglobal
-
-protdict begin
- /readonly. /readonly load def
- /executeonly. /executeonly load def
- /noaccess. /noaccess load def
- /readonly { } odef
- /readonly.. /readonly load def
- /executeonly { } odef
- /executeonly.. /executeonly load def
- /noaccess { } odef
- /noaccess.. /noaccess load def
-end
-
-% Disable the access checks.
-
-/unprot
- { protdict begin
- /readonly /readonly.. load def
- /executeonly /executeonly.. load def
- /noaccess /noaccess.. load def
- end
- } bind def
-
-% Re-enable the access checks.
-
-/reprot
- { protdict begin
- /readonly /readonly. load def
- /executeonly /executeonly. load def
- /noaccess /noaccess. load def
- end
- } bind def
-
-.setglobal
diff --git a/Master/xemtex/gslib/viewcmyk.ps b/Master/xemtex/gslib/viewcmyk.ps
deleted file mode 100644
index 8a95f8b02cd..00000000000
--- a/Master/xemtex/gslib/viewcmyk.ps
+++ /dev/null
@@ -1,64 +0,0 @@
-% Copyright (C) 1996, 1997, 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewcmyk.ps,v 1.2.6.2.2.1 2003/04/12 14:02:39 giles Exp $
-% viewcmyk.ps
-% Display a raw CMYK file.
-% Requires the colorimage operator.
-% If SCALE is defined, maps input pixels to output pixels with that scale;
-% if SCALE is undefined, scales the image to fit the page.
-% If BITS is defined, it is the number of bits per sample (1,2,4,8,12);
-% if BITS is undefined, its default value is 1.
-
-/viewcmyk { % <filename> <width> viewcmyk -
- 20 dict begin
- /w exch def
- /fname exch def
- /bpc /BITS where { pop BITS } { 1 } ifelse def
- /f fname (r) file def
- mark fname status pop pop pop /flen exch def cleartomark
- /h flen w bpc 4 mul mul 7 add 8 idiv idiv def
- (Dimensions: ) print [w h] == flush
- % Set up scaling.
- /SCALE where {
- pop
- % Map pixels SCALE-for-1. Assume orthogonal transformation.
- SCALE 1 0 dtransform add abs div
- SCALE 0 1 dtransform add abs div
- } {
- % Scale the image (uniformly) to fit the page.
- clippath pathbbox pop pop translate
- pathbbox 3 -1 roll sub h div
- 3 1 roll exch sub w div .min dup
- } ifelse scale
- w h bpc [1 0 0 -1 0 h] f false 4 colorimage
- showpage
- f closefile
- end
-} bind def
-
-% If the program was invoked from the command line, run it now.
-[ shellarguments {
- counttomark 2 eq {
- cvi viewcmyk
- } {
- cleartomark
- (Usage: gs -- viewcmyk.ps filename.cmyk width\n) print
- ( e.g.: gs -- viewcmyk.ps my.cmyk 2550\n) print flush
- } ifelse
-} {
- pop
-} ifelse
diff --git a/Master/xemtex/gslib/viewgif.ps b/Master/xemtex/gslib/viewgif.ps
deleted file mode 100644
index a03bff0aa00..00000000000
--- a/Master/xemtex/gslib/viewgif.ps
+++ /dev/null
@@ -1,161 +0,0 @@
-% Copyright (C) 1989, 1992, 1993, 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewgif.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% viewgif.ps
-% Display a GIF file.
-
-/read1 % <file> read1 <int>
- { read pop
- } bind def
-/read2 % <file> read2 <int>
- { dup read1 exch read1 8 bitshift add
- } bind def
-
-/readGIFheader % <file> readGIFheader <dict>
- { 20 dict begin
- dup 6 string readstring pop
- dup (GIF87a) eq exch (GIF89a) eq or not
- { (Not a GIF file.\n) print cleartomark stop
- } if
- dup read2 /Width exch def
- dup read2 /Height exch def
- dup read1
- dup 128 ge /GlobalColor exch def
- dup -4 bitshift 7 and 1 add /BitsPerPixel exch def %***BOGUS?***
- dup 8 and 0 ne /PaletteSorted exch def
- 7 and 1 add dup /BitsPerPixel exch def
- 1 exch bitshift /PaletteSize exch def
- dup read1 /BackgroundIndex exch def
- dup read1 15 add 64 div /AspectRatio exch def
- GlobalColor
- { PaletteSize 3 mul string readstring pop
- /GlobalPalette exch def
- } if
- currentdict end
- } bind def
-
-/readGIFimageHeader % <file> readGIFimageHeader <dict>
- % Note: GIF header must be on dict stack
- { 10 dict begin
- { dup read1
- dup (!) 0 get ne { exit } if pop % extension
- dup read1 pop
- { dup read1 dup 0 eq { pop exit } if { dup read1 pop } repeat
- } loop
- } loop
- (,) 0 get ne
- { (Not a GIF image.\n) print stop
- } if
- dup read2 /Left exch def
- dup read2 /Top exch def
- dup read2 /Width exch def
- dup read2 /Height exch def
- dup read1
- dup 128 ge /LocalColor exch def
- dup 64 and 0 ne /Interlaced exch def
- LocalColor
- { 7 and 1 add /BitsPerPixel exch def
- 1 BitsPerPixel bitshift 3 mul string readstring pop
- /Palette exch def
- }
- { pop pop /Palette GlobalPalette def
- }
- ifelse
- currentdict end
- } bind def
-
-/imageGIF % <imagedict> imageGIF
- { /ImageOut where
- { pop
- % We know BitsPerComponent = 8, Decode = [0 255].
- % and there is only a single data source which is
- % either a filter or a string whose size is exactly
- % the width of the row.
- dup /DataSource get dup type /stringtype eq
- { ImageOut exch writestring
- }
- { pop dup /Width get string
- 1 index /Height get
- { 1 index /DataSource get 1 index readstring pop
- ImageOut exch writestring
- }
- repeat pop pop
- }
- ifelse
- }
- { image
- }
- ifelse
- } bind def
-
-/viewGIF % <file|string> viewGIF -
- { save 20 dict begin
- /saved exch def
- dup type /stringtype eq { (r) file } if
- /F exch def
- /ImageOutFile where { /ImageOut ImageOutFile (w) file def } if
- F readGIFheader /Header exch def
- currentdict Header end begin begin
- DEBUG { Header { exch == == } forall (----------------\n) print flush } if
- F readGIFimageHeader /ImageHeader exch def
- currentdict ImageHeader end begin begin
- DEBUG { ImageHeader { exch == == } forall (----------------\n) print flush } if
- /D F
- << /InitialCodeLength F read1
- /FirstBitLowOrder true
- /BlockData true
- /EarlyChange 0
- >> /LZWDecode filter def
-
- [/Indexed /DeviceRGB 1 BitsPerPixel bitshift 1 sub Palette] setcolorspace
- matrix currentmatrix
- 0 1 3 { 2 copy get dup 0 ne { dup abs div } if 3 copy put pop pop } for
- setmatrix
- << /ImageType 1
- /ImageMatrix [1 0 0 -1 0 Height]
- /BitsPerComponent 8
- /Decode [0 255]
- Interlaced
- { /Width Width /Height 1
- /row Width string def
- /DataSource row
- >> /I exch def
- /inter % <num> <denom> inter -
- { /denom exch def /num exch def
- gsave
- /lines Height denom 1 sub add num sub denom idiv def
- 0 1 lines 1 sub {
- Height exch denom mul num add sub
- I /ImageMatrix get 5 3 -1 roll put
- D row readstring pop pop
- I imageGIF
- } for
- grestore
- }
- bind def
- 0 8 inter
- 4 8 inter
- 2 4 inter
- 1 2 inter
- }
- { /Width Width /Height Height
- /DataSource D
- >> imageGIF
- }
- ifelse
- saved end end end restore
- } bind def
diff --git a/Master/xemtex/gslib/viewjpeg.ps b/Master/xemtex/gslib/viewjpeg.ps
deleted file mode 100644
index 082c27d2c52..00000000000
--- a/Master/xemtex/gslib/viewjpeg.ps
+++ /dev/null
@@ -1,153 +0,0 @@
-%! viewjpeg.ps Copyright (C) 1994 Thomas Merz <tm@pdflib.com>
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewjpeg.ps,v 1.1.6.2.2.1 2003/04/12 14:02:39 giles Exp $
-% View JPEG files with Ghostscript
-%
-% This PostScript code relies on level 2 features.
-%
-% Only JPEG baseline, extended sequential, and progressive files
-% are supported. Note that Adobe PostScript level 2 does not include
-% progressive-JPEG support. Ghostscript with IJG JPEG v6 or later
-% will decode progressive JPEG, but only if you edit gsjmorec.h to
-% enable that feature.
-%
-% Updated by L. Peter Deutsch 20-May-1997:
-% move the usage example to the beginning
-% Updates by Tom Lane 6-Sep-1995
-
-% Usage example:
-% (jpeg-6/testimg.jpg) viewJPEG
-
-/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
- (JPEG needs PostScript Level 2!\n) print flush stop
-} if
-
-/JPEGdict 20 dict def
-JPEGdict begin
-
-/NoParamMarkers [ % JPEG markers without additional parameters
- 16#D0 16#D1 16#D2 16#D3 16#D4 16#D5 16#D6 16#D7 16#D8 16#01
-] def
-
-/NotSupportedMarkers [ % JPEG markers not supported by PostScript level 2
- 16#C3 16#C5 16#C6 16#C7 16#C8 16#C9 16#CA 16#CB 16#CD 16#CE 16#CF
-] def
-
-% Names of color spaces
-/ColorSpaceNames << /1 /DeviceGray /3 /DeviceRGB /4 /DeviceCMYK >> def
-
-% read one byte from file F
-% - ==> int --or-- stop context
-/NextByte {
- F read not { (Read error in ViewJPEG!\n) print flush stop } if
-} bind def
-
-/SkipSegment { % read two bytes and skip that much data
- NextByte 8 bitshift NextByte add 2 sub { NextByte pop } repeat
-} bind def
-
-% read width, height, and # of components from JPEG markers
-% and store in dict
-/readJPEGmarkers { % - ==> dict --or-- stop context
- 5 dict begin
-
- { % loop: read JPEG marker segments until we find SOFn marker or EOF
- NextByte
- 16#FF eq { % found marker
- /markertype NextByte def
- % Is it S0F0=baseline, SOF1=extended sequential, SOF2=progressive ?
- markertype dup 16#C0 ge exch 16#C2 le and {
- NextByte pop NextByte pop % segment length
- % Ghostscript and Adobe PS accept only data precision 8
- NextByte 8 ne {
- (Error: not 8 bits per component!\n) print flush stop
- } if
-
- % Read crucial image parameters
- /height NextByte 8 bitshift NextByte add def
- /width NextByte 8 bitshift NextByte add def
- /colors NextByte def
-
- DEBUG { currentdict { exch == == } forall flush } if
- exit
- } if
-
- % detect several segment types which are not compatible with PS
- NotSupportedMarkers {
- markertype eq {
- (Marker ) print markertype ==
- (not supported!\n) print flush stop
- } if
- } forall
-
- % Skip segment if marker has parameters associated with it
- true NoParamMarkers { markertype eq {pop false exit} if } forall
- { SkipSegment } if
- } if
- } loop
-
- currentdict dup /markertype undef
- end
-} bind def
-
-end % JPEGdict
-
-% read image parameters from JPEG file and display the image
-/viewJPEG { % <file|string> ==> -
- save
- JPEGdict begin
- /saved exch def
- /scratch 1 string def
- dup type /stringtype eq { (r) file } if
- /F exch def
-
- readJPEGmarkers begin
- F 0 setfileposition % reset file pointer
-
- % We use the whole clipping area for the image (at least in one dimension)
- gsave clippath pathbbox grestore
- /ury exch def /urx exch def
- /lly exch def /llx exch def
-
- llx lly translate
- width height scale
-
- % use whole width or height, whichever is appropriate
- urx llx sub width div ury lly sub height div
- 2 copy gt { exch } if pop % min
- dup scale
- ColorSpaceNames colors scratch cvs get setcolorspace
-
- % prepare image dictionary
- << /ImageType 1
- /Width width
- /Height height
- /ImageMatrix [ width 0 0 height neg 0 height ]
- /BitsPerComponent 8
- % If 4-component (CMYK), assume data is inverted per Adobe Photoshop
- colors 4 eq {
- /Decode [ colors { 1 0 } repeat ]
- } {
- /Decode [ colors { 0 1 } repeat ]
- } ifelse
- /DataSource F /DCTDecode filter
- >> image
-
- end % image parameter dictionary
-
- saved end restore
-} bind def
diff --git a/Master/xemtex/gslib/viewmiff.ps b/Master/xemtex/gslib/viewmiff.ps
deleted file mode 100644
index daf56ed458c..00000000000
--- a/Master/xemtex/gslib/viewmiff.ps
+++ /dev/null
@@ -1,125 +0,0 @@
-% Copyright (C) 1998 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewmiff.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% viewmiff.ps
-% Display a MIFF file. You would think the 'display' command would do this,
-% but many versions of 'display' either core-dump or require unacceptably
-% large amounts of memory.
-
-% Recognize MIFF keywords.
-/miffwords mark
- /class { cvn /class exch def }
- /colors { cvi /colors exch def }
- /columns { cvi /Width exch def }
- /compression { cvn /compression exch def }
- /depth { cvi /depth exch def }
- /packets { cvi /packets exch def }
- /rows { cvi /Height exch def }
-.dicttomark readonly def
-
-% Recognize MIFF image classes.
-/miffclasses mark
- /DirectClass {
- /DeviceRGB setcolorspace
- /BitsPerComponent depth def
- /Decode [ 0 1 0 1 0 1 ] def
- }
- /PseudoClass {
- [ /Indexed
- % The MIFF documentation lies about the size of pixels
- % for this case: the pixel size is determined only by
- % the number of colors, and is not affected by the image
- % depth. Specifically, if there are 256 or fewer colors
- % but the depth (of color map entries) is 16, each pixel
- % is still only 1 byte, not 2.
- currentdict /colors known {
- /DeviceRGB colors 1 sub
- /BitsPerComponent colors 256 le { 8 } { 16 } ifelse def
- colors 3 mul string depth 8 eq {
- f exch readstring pop
- } {
- % 16-bit color map entries: take only the high-order byte.
- 0 1 2 index length 1 sub {
- f read pop 2 index 3 1 roll put f read pop pop
- } for
- } ifelse
- } {
- /colors 256 def
- /DeviceGray 255
- 256 string 0 1 255 { 1 index exch dup put } for
- } ifelse
- ] setcolorspace
- /Decode [ 0 1 BitsPerComponent bitshift 1 sub ] def
- }
-.dicttomark readonly def
-
-% Recognize MIFF compression methods.
-/rlstring 768 string def
-/rlread {
- % packets is not reliable -- disregard it.
- dup rlstring 0 3 getinterval readstring {
- pop read pop 3 mul 3 3 2 index {
- rlstring exch rlstring 0 3 getinterval putinterval
- } for
- rlstring 0 3 -1 roll 3 add getinterval
- } {
- pop pop ()
- } ifelse
-} bind def
-/miffcompress mark
- /Uncompressed { f }
- /RunLengthEncoded { { f rlread } }
- /Zip { [ f /FlateDecode filter cvlit /rlread cvx ] cvx }
-.dicttomark readonly def
-
-% Read a MIFF file and display the image.
-/viewmiff { % <filename> viewmiff -
- 50 dict begin
- /fname 1 index def
- /f exch (r) file def
- % Set defaults.
- /ImageType 1 def
- /class /DirectClass def
- /compression /Uncompressed def
- /depth 8 def
- /packets 16#7fffffff def
- % Read and parse the header.
- { f token pop
- dup (:) eq { pop exit } if
- dup type /nametype eq {
- .namestring (=) search {
- exch pop miffwords exch .knownget { exec } { pop } ifelse
- } {
- pop % who knows?
- } ifelse
- } {
- pop % probably a comment in braces
- } ifelse
- } loop
- % Read and display the image.
- miffclasses class get exec
- /DataSource miffcompress compression get exec def
- /ImageMatrix [Width 0 0 Height neg 0 Height] def
- currentpagedevice /PageSize get
- dup 0 get exch 1 get scale
- gsave 0.8 setgray 0 0 1 1 rectfill grestore % provide background
- currentdict image
- showpage
- % Clean up.
- f closefile
- end
-} bind def
diff --git a/Master/xemtex/gslib/viewpbm.ps b/Master/xemtex/gslib/viewpbm.ps
deleted file mode 100644
index 2ba6907e48f..00000000000
--- a/Master/xemtex/gslib/viewpbm.ps
+++ /dev/null
@@ -1,185 +0,0 @@
-% Copyright (C) 1992, 1995, 1996, 1998, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewpbm.ps,v 1.2.6.2.2.1 2003/04/12 14:02:39 giles Exp $
-% viewpbm.ps
-% Display a PBM/PGM/PPM file.
-% Requires the Level 2 `image' operator (to handle variable pixel widths).
-% If SCALE is defined, maps input pixels to output pixels with that scale;
-% if SCALE is undefined, scales the image to fit the page.
-
-/s 100 string def
-/readmaxv { % <file> readmaxv -
- 10 string readline pop cvx exec /maxv exch def
-} bind def
-/readrow { % <file> <row> readrow <row>
- 0 1 2 index length 1 sub {
- 1 index exch 3 index token pop put
- } for exch pop
-} bind def
-/read01 { % <file> <count> read01 <byte>
- 0 exch {
- 1 index read pop 48 xor dup 1 le { exch dup add add } { pop } ifelse
- } repeat
-} bind def
-/readrow01 { % <file> <row> readrow01 <row>
- 0 1 w 8 idiv {
- 1 index exch 3 index 8 read01 put
- } for
- wrem 0 ne {
- dup rsize 1 sub wrem read01 8 wrem sub bitshift put
- } if
- exch pop
-} bind def
-/readwh { % <file> readwh <w> <h>
- dup s readline pop % check for comment
- (#) anchorsearch {
- pop pop dup s readline pop
- } if
- cvx exec
-} bind def
-/pbmtypes mark
-% The procedures in this dictionary are called as
-% <file> Pn <w> <h> <readproc>
-/P1 { % ASCII 1-bit white/black
- /bpc 1 def /maxv 1 def /rsize w 7 add 8 idiv def
- /wrem w 8 mod def
- /ncomp 1 def /invert true def /DeviceGray setcolorspace
- readwh
- { readrow01 }
-} bind
-/P2 { % ASCII 8-bit gray
- readwh
- /bpc 8 def 2 index readmaxv /rsize 2 index def
- /ncomp 1 def /invert false def /DeviceGray setcolorspace
- { readrow }
-} bind
-/P3 { % ASCII 8-bit RGB
- readwh
- /bpc 8 def 2 index readmaxv /rsize 2 index 3 mul def
- /ncomp 3 def /invert false def /DeviceRGB setcolorspace
- { readrow }
-} bind
-/P4 { % Binary 1-bit white/black
- readwh
- /bpc 1 def /maxv 1 def /rsize 2 index 7 add 8 idiv def
- /ncomp 1 def /invert true def /DeviceGray setcolorspace
- { readstring pop }
-} bind
-/P5 { % Binary 8-bit gray
- readwh
- /bpc 8 def 2 index readmaxv /rsize 2 index def
- /ncomp 1 def /invert false def /DeviceGray setcolorspace
- { readstring pop }
-} bind
-/P6 { % Binary 8-bit RGB
- readwh
- /bpc 8 def 2 index readmaxv /rsize 2 index 3 mul def
- /ncomp 3 def /invert false def /DeviceRGB setcolorspace
- { readstring pop }
-} bind
-.dicttomark readonly def
-/pbmsetup { % <file> <w> <h> <readproc> runpbm -
- /readproc exch def
- /h exch def
- /w exch def
- /f exch def
- 20 dict begin % image dictionary
- /ImageType 1 def
- /Width w def
- /Height h def
- /ImageMatrix [w 0 0 h neg 0 h] def
- /BitsPerComponent bpc def
- /Decode [ 0 255 maxv div invert { exch } if ncomp 1 sub { 2 copy } repeat ] def
- /DataSource [ f rsize string /readproc load /exec load ] cvx def
- currentdict end
-} def
-/imagescale { % <imagedict> imagescale -
- begin
- /SCALE where {
- pop
- % Map pixels SCALE-for-1. Assume orthogonal transformation.
- Width 1 0 dtransform add abs div SCALE mul
- Height 0 1 dtransform add abs div SCALE mul
- } {
- % Scale the image (uniformly) to fit the page.
- clippath pathbbox pop pop translate
- pathbbox .min exch pop exch pop ceiling
- dup Height Width gt {
- Width mul Height div exch
- } {
- Height mul Width div
- } ifelse
- }
- ifelse scale
- end
-} def
-
-% Image a PBM file page by page.
-/viewpbm { % <filename> viewpbm -
- 20 dict begin
- (r) file /pf exch def {
- pf token not { exit } if
- pbmtypes exch get pf exch exec pbmsetup
- dup imagescale image showpage
- } loop
- end
-} def
-
-% Reassemble a composite PBM file from the CMYK separations.
-/viewpsm {
- 20 dict begin
- /fname exch def
- /sources [ 0 1 3 {
- /plane exch def
- /pf fname (r) file def
- pf pbmtypes pf token pop get exec
- % Stack: pf w h readproc
- plane {
- /readproc exch def /h exch def /w exch def pop
- /row rsize string def
- h { pf row readproc pop } repeat
- pf pbmtypes pf token pop get exec
- } repeat
- pbmsetup
- } for ] def
- /datas [ sources { /DataSource get 0 get } forall ] def
- /decode sources 0 get /Decode get
- dup 0 get exch 1 get add cvi 0 exch
- 2 copy 4 copy 8 array astore def
- sources 0 get
- dup /MultipleDataSources true put
- dup /DataSource datas put
- dup /Decode decode put
- /DeviceCMYK setcolorspace
- dup imagescale image showpage
- end
-} def
-
-% If the program was invoked from the command line, run it now.
-[ shellarguments
- { counttomark 1 ge
- { ] { viewpbm } forall
- }
- { cleartomark
- (Usage: gs [--] viewpbm.ps filename.p*m ...\n) print
- ( e.g.: gs [--] viewpbm.ps my.ppm another.ppm\n) print flush
- }
- ifelse
- }
- { pop
- }
-ifelse
diff --git a/Master/xemtex/gslib/viewpcx.ps b/Master/xemtex/gslib/viewpcx.ps
deleted file mode 100644
index 204db00eb03..00000000000
--- a/Master/xemtex/gslib/viewpcx.ps
+++ /dev/null
@@ -1,151 +0,0 @@
-% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewpcx.ps,v 1.2.6.2.2.1 2003/04/12 14:02:39 giles Exp $
-% viewpcx.ps
-% Display a PCX file.
-% Requires the Level 2 `image' operator (to handle variable pixel widths).
-% If SCALE is defined, maps input pixels to output pixels with that scale;
-% if SCALE is undefined, scales the image to fit the page.
-% ****NOTE: does not handle multi-plane images with palette.
-
-/pcxbytes [
- 0 1 255 {
- 64 string exch 0 1 63 {
- 3 copy exch put pop
- } for pop
- } for
-] readonly def
-/readpcx { % - readpcx <str>
- f % gets replaced
- dup read not {
- pop ()
- } {
- dup 192 lt {
- ( ) dup 0 4 -1 roll put exch pop
- } {
- 192 sub //pcxbytes 3 -1 roll read pop get exch 0 exch getinterval
- } ifelse
- } ifelse
-} def
-/get2 % <string> <index> get2 <int>
- { 2 copy get 3 1 roll 1 add get 8 bitshift add
- } bind def
-/dsproc
- { df s readstring pop % s gets filled in
- s1 () ne { df s1 readstring pop pop } if % discard padding bytes
- } def % don't bind, must be writable
-/viewpcx % <filename> viewpcx -
- { 100 dict begin
- /fname 1 index def
- /f exch (r) file def
- % Read and unpack the header.
- /header f 128 string readstring pop def
- /version header 1 get def
- /bpp header 3 get def
- /w header 8 get2 header 4 get2 sub 1 add def
- /h header 10 get2 header 6 get2 sub 1 add def
- /nplanes header 65 get def
- /bpl header 66 get2 def
- /palinfo header 68 get2 def
- /nbits bpp nplanes mul def
- version 5 eq
- { nbits 8 le
- { /cspace
- [/Indexed /DeviceRGB 1 bpp bitshift 1 sub
- f fileposition
- 1 nbits bitshift 3 mul string
- fname status pop pop pop exch pop
- 1 index length sub f exch setfileposition
- f exch readstring pop
- exch f exch setfileposition
- ] def
- /decode [0 cspace 2 get] def
- }
- { /cspace /DeviceRGB def
- /decode [0 1 0 1 0 1] def
- }
- ifelse
- }
- { /cspace
- [/Indexed /DeviceRGB 1 bpp bitshift 1 sub
- header 16 1 nbits bitshift 16 .min 3 mul getinterval
- ] def
- /decode [0 cspace 2 get] def
- }
- ifelse
- % Set up scaling.
- /SCALE where
- { pop
- % Map pixels SCALE-for-1. Assume orthogonal transformation.
- w 1 0 dtransform add abs div SCALE mul
- h 0 1 dtransform add abs div SCALE mul
- }
- { % Scale the image (uniformly) to fit the page.
- clippath pathbbox pop pop translate
- pathbbox .min exch pop exch pop ceiling
- dup h w gt { w mul h div exch } { h mul w div } ifelse
- }
- ifelse scale
- % Since the number of bytes per line is always even,
- % it may not match the width specification.
- /wbpl w bpp mul 7 add 8 idiv def
- % Define the data source procedure.
- /s1 bpl wbpl sub string def
- /df /readpcx load copyarray dup 0 f put cvx bind readonly
- 0 () /SubFileDecode filter def
- /dsource [ nplanes
- { /dsproc load copyarray
- dup 1 wbpl string put
- cvx bind readonly
- }
- repeat ] def
- % Construct the image dictionary.
- 20 dict begin % image dictionary
- /ImageType 1 def
- /Width w def
- /Height h def
- /ImageMatrix [w 0 0 h neg 0 h] def
- /BitsPerComponent bpp def
- /Decode decode def
- /DataSource dsource dup length 1 gt
- { /MultipleDataSources true def }
- { 0 get }
- ifelse def
- currentdict end
- % Finally, display the image.
- cspace setcolorspace
- image
- showpage
- df closefile
- f closefile
- end
- } bind def
-
-% If the program was invoked from the command line, run it now.
-[ shellarguments
- { counttomark 1 ge
- { ] { viewpcx } forall
- }
- { cleartomark
- (Usage: gs -- viewpcx.ps filename.pcx ...\n) print
- ( e.g.: gs -- viewpcx.ps my.pcx another.pcx\n) print flush
- }
- ifelse
- }
- { pop
- }
-ifelse
diff --git a/Master/xemtex/gslib/viewps2a.ps b/Master/xemtex/gslib/viewps2a.ps
deleted file mode 100644
index 53073ea3fdd..00000000000
--- a/Master/xemtex/gslib/viewps2a.ps
+++ /dev/null
@@ -1,33 +0,0 @@
-% Copyright (C) 1995 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: viewps2a.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% Display a file produced by ps2ascii with no switch or with -dCOMPLEX.
-% This is just a procset to read in before the file to display.
-
-/init { 0.1 0.1 scale } bind def
-init
-/next { currentfile token pop } bind def
-/F { next next pop next exch selectfont } bind def
-/P { showpage init } bind def
-/S
- { next next moveto
- next dup stringwidth pop next exch div
- gsave 1 scale show grestore
- } bind def
-/C { next next next setrgbcolor } bind def
-/I { next next next next gsave 0.75 setgray rectfill grestore } bind def
-/R { next next next next rectfill } bind def
diff --git a/Master/xemtex/gslib/wftopfa b/Master/xemtex/gslib/wftopfa
deleted file mode 100644
index a6cf9bb9729..00000000000
--- a/Master/xemtex/gslib/wftopfa
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# $Id: wftopfa,v 1.1 2000/03/09 08:40:40 lpd Exp $
-exec gs -q -dNODISPLAY -- wftopfa.ps "$@"
diff --git a/Master/xemtex/gslib/wftopfa.ps b/Master/xemtex/gslib/wftopfa.ps
deleted file mode 100644
index a3ab45964a8..00000000000
--- a/Master/xemtex/gslib/wftopfa.ps
+++ /dev/null
@@ -1,304 +0,0 @@
-% Copyright (C) 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: wftopfa.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% wftopfa.ps
-% Convert a Wadalab base font to .PFA (or .PFB) format.
-
-(gs_ksb_e.ps) runlibfile
-(wrfont.ps) runlibfile
-
-/wftopfa_dict 100 dict def
-wftopfa_dict begin
-
-/KanjiSubEncoding dup .findencoding def
-
-% Initialize parameters.
-/init % - init -
- { /chars 256 dict def
- /version (001.001) def
- /highcode 0 def
- /StdHW [32] def
- /StdVW [32] def
- /UniqueID 20000000 def
- /FontBase (Wadalab) def
- /StdEncMode false def
- /CustomEncMode false def
- /Binary false def
- /Encrypt true def
- } bind def
-
-% Read definitions.
-/rdstring 5000 string def
-/readdefs % <filename> readdefs -
- { (r) file
- { dup rdstring readline not { pop exit } if
- dup length 15 ge
- { dup dup length 7 sub 7 getinterval (> CompD) eq
- { token pop exch token pop exch pop
- dup 0 get /highcode exch def
- exch chars 3 1 roll put
- }
- { pop
- }
- ifelse
- }
- { pop
- }
- ifelse
- }
- loop closefile
- } bind def
-
-% Write out the final font.
-/writepfa
- { 4 string highcode 16#1000 add 16 2 index cvrs 0 (.r) putinterval
- FontBase exch concatstrings /fullname exch def
- UniqueID 20000000 eq { /UniqueID 4990000 highcode add def } if
- /encoding CustomEncMode
- { KanjiSubEncoding }
- { StdEncMode { StandardEncoding } { ISOLatin1Encoding } ifelse }
- ifelse def
-
- /Font 30 dict def
- Font begin
- /FontInfo 20 dict def
- FontInfo begin
-
- % Write the clear text part.
-
- /CreationDate (%Calendar%) currentdevparams
- dup /Weekday get {(Sun )(Mon )(Tue )(Wed )(Thu )(Fri )(Sat )} exch get
- 1 index /Month get 1 sub
- {(Jan)(Feb)(Mar)(Apr)(May)(Jun)(Jul)(Aug)(Sep)(Oct)(Nov)(Dec)} exch get
- concatstrings
- {{/Day ( )} {/Hour ( )} {/Minute (:)} {/Second (:)} {/Year ( )}}
- { dup 1 get 3 -1 roll exch concatstrings exch
- 0 get 2 index exch get
- dup 10 lt { =string cvs (0) exch concatstrings } { =string cvs } ifelse
- concatstrings
- }
- forall exch pop readonly def
- /VMusage 100000 def
- /version version readonly def
- /Notice (No copyright on this font. Original available from moe.ipl.t.u-tokyo.ac.jp:/Font. Converted by wftopfa.ps (Aladdin Enterprises).) readonly def
- /FullName fullname readonly def
- /FamilyName FontBase readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch true def
- /UnderlinePosition 0 def
- /UnderlineThickness 0 def
-
- end % FontInfo
-
- /FontName fullname cvn def
- /Encoding encoding def
- /PaintType 0 def
- /FontType 1 def
- /FontMatrix [.001 0 0 .001 0 -0.16] readonly def
- /UniqueID UniqueID def
- /FontBBox [0 0 1000 1000] readonly def
-
- /Private 20 dict def
- Private begin
-
- /-| {string currentfile exch readstring pop} readonly def
- /|- {readonly def} readonly def
- /| {readonly put} readonly def
- /BlueValues [] readonly def
- /OtherBlues [] readonly def
- /MinFeature {16 16} readonly def
- /StdHW StdHW def
- /StdVW StdVW def
- /ForceBold false def
- /password 5839 def
- /UniqueID UniqueID def
- /OtherSubrs [] readonly def
- /Subrs [
- (\020\2771p|\020\024\020=-\223D\\\342R) readonly
- (\020\2771py\274\366Uz) readonly
- (\020\2771py\275\304\236i) readonly
- (\020\2771p\371) readonly
- (\020\2771p~\266+6\034\3446z) readonly
- ] readonly def
-
- end % Private
-
- /CharStrings 256 dict def
- chars
- { exch =string cvs
- dup 0 get highcode eq
- { 1 get encoding exch get exch CharStrings 3 1 roll put }
- { pop pop }
- ifelse
- }
- forall
-
- end % Font
-
- Font /FontName get Font definefont setfont
- (%stdout) (w) file writefont
- } bind def
-
-% Scan the command line and process files.
-/options mark
- /version { 2 copy get /version exch def 1 add } bind
- /StdHW { 2 copy get cvx exec /StdHW exch def 1 add } bind
- /StdVW { 2 copy get cvx exec /StdVW exch def 1 add } bind
- /UniqueId { 2 copy get cvi /UniqueID exch def 1 add } bind
- /UniqueID 1 index
- /FontBase { 2 copy get /FontBase exch def 1 add } bind
- /StdEnc { /StdEncMode true def } bind
- /CustomEnc { /CustomEncMode true def } bind
- /Binary { /Binary true def } bind
- /noEncrypt { /Encrypt false def } bind
-.dicttomark def
-/wftopfa % [(arg1) ...] wftopfa -
- { init dup 0
- { dup 2 index length ge { exit } if
- 2 copy get exch 1 add exch
- options 1 index .knownget { exch pop exec } { readdefs } ifelse
- }
- loop pop pop
- wrfont_dict /binary_CharStrings Binary put
- wrfont_dict /eexec_encrypt Encrypt put
- wrfont_dict /name_all_Encodings CustomEncMode put
- writepfa
- } bind def
-
-end % wftopfa_dict
-
-/wftopfa
- { mark exch wftopfa_dict begin /saved save def { wftopfa } exec false%stopped
- { cleartomark true } { cleartomark false } ifelse
- saved end restore { stop } if
- } bind def
-
-[ shellarguments
- { ] wftopfa }
- { pop }
-ifelse
-
-% ---------------- Root font ---------------- %
-
-% Define the Encoding for the root font.
-/wfrootencoding
-% \x00-\x3F
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 1 2 3 4 5 6 7 8 0 0 0 0 0 0 0
- 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
-% \x40-\x7F
- 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
- 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
- 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
- 73 74 75 76 77 0 0 0 0 0 0 0 0 0 0 0
-% \x80-\xFF
-128 copy
-256 packedarray def
-
-% Define the template for the root font dictionary.
-/wfrootfontdict mark
- /FontType 0
- /FontMatrix [1 0 0 1 0 0]
- /FMapType 2
- /Encoding wfrootencoding
-.dicttomark def
-
-% Define a dummy (placeholder) Type 1 font for the FDepVector.
-/type1dummyfont % <fontname> type1dummyfont <font>
- { mark /FontName 3 -1 roll
- /FontType 1
- /FontMatrix [.001 0 0 .001 0 0]
- /FontBBox [0 0 1000 1000]
- /Encoding /KanjiSubEncoding findencoding
- /CharStrings 0 dict
- /Private mark /BlueValues [] /password 5839 .dicttomark
- .dicttomark dup /FontName get exch definefont
- } bind def
-
-% Write a root font. Again, wrfont.ps does most of the work.
-/makerootfont % <rootname> makerootfont <font>
- { wfrootfontdict dup length 4 add % FontName, FDepVector, PrefEnc, FID
- dict copy begin
- cvlit /FontName exch def
- 4 dict begin
- /len FontName length def
- /str len 4 add string def
- FontName str cvs pop
- str len (.r) putinterval
- /FDepVector [ 16#21 1 16#74
- { dup wfrootencoding exch get 0 eq
- { pop
- }
- { 16 str len 2 add 2 getinterval cvrs pop
- str cvn type1dummyfont
- }
- ifelse
- }
- for end counttomark -1 roll dup counttomark 2 roll
- ] def
- FontName currentdict end definefont
- } bind def
-/writerootfont % <rootname> writerootfont -
- { save exch makerootfont setfont (%stdout) (w) file writefont restore
- } bind def
-
-% ---------------- Converting entire fonts ---------------- %
-
-% Define the directory where the Wadalab fonts are stored.
-/wfdir (/home/ghost/kanji/w) def
-
-% Convert an entire Wadalab font.
-/writeentirefont % <fontname> <template*> writeentirefont -
- { 2 dict begin
- /templates exch def
- /fontname exch def
- [ templates
- { wfdir (/) concatstrings exch concatstrings { copystring }
- 100 string filenameforall
- }
- forall
- wfdir (/wadalab-sym/*.ps) concatstrings { copystring }
- 100 string filenameforall
- ]
- (%!\n) print
- { /currentuserparams where
- { pop currentuserparams /VMReclaim get -2 vmreclaim { vmreclaim } }
- { { } }
- ifelse
- } == (exec\n) print
- (/KanjiSubEncoding ) print /KanjiSubEncoding findencoding ==
- (readonly def\n) print
- { (%stderr) (w) file dup 2 index write== flushfile
- mark exch (CustomEnc) (Binary) (noEncrypt)
- (FontBase) fontname counttomark -1 roll ] wftopfa
- }
- forall
- fontname cvn writerootfont
- (exec\n) print
- end
- } def % don't bind, so we can print the procedure
-
-% Convert the Wadalab JIS 1&2 SaiMincho font.
-% To invoke this from the command line,
-% gs -dNODISPLAY -q wftopfa.ps -c writeSaiMincho0 flush quit >wmin0.ps
-% To make the resulting font loadable on demand, add to the Fontmap file:
-% /Wadalab-SaiMincho (wmin0.ps) ;
-/writeSaiMincho0
- { (Wadalab-SaiMincho) [ (wadalab-mincho-0-8/*.ps) ] writeentirefont
- } bind def
diff --git a/Master/xemtex/gslib/winmaps.ps b/Master/xemtex/gslib/winmaps.ps
deleted file mode 100644
index 40939ce0282..00000000000
--- a/Master/xemtex/gslib/winmaps.ps
+++ /dev/null
@@ -1,107 +0,0 @@
-% Copyright (C) 1993 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: winmaps.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% winmaps.ps - make maps between PostScript encodings and Windows
-% character sets.
-
-% Define the two Windows encodings.
-
-/ANSIEncoding
- ISOLatin1Encoding 256 array copy
- dup 16#90 /.notdef put
- 16#93 1 16#9f { 2 copy /.notdef put pop } for
-def
-
-/OEMEncoding [
- /.notdef /.notdef /.notdef /heart /diamond /club /spade /bullet
- 8 { /.notdef } repeat
- /.notdef /.notdef /.notdef /.notdef /paragraph /section /.notdef /.notdef
- /arrowup /arrowdown /arrowright /arrowleft /.notdef /arrowboth /.notdef /.notdef
- StandardEncoding 32 96 getinterval aload pop
- /Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring /ccedilla
- /ecircumflex /edieresis /egrave /idieresis /igrave /Adieresis /Aring
- /Eacute /ae /AE /ocircumflex /odieresis /ograve /ucircumflex /ugrave
- /ydieresis /Odieresis /Udieresis /cent /sterling /yen /.notdef /florin
- /aacute /iacute /oacute /uacute /ntilde /Ntilde /ordfeminine /ordmasculine
- /questiondown /.notdef /logicalnot /onehalf /onequarter /exclamdown /guillemotleft /guillemotright
- 48 { /.notdef } repeat
- /alpha /beta /Gamma /Pi /Sigma /sigma /mu /tau
- /Phi /Theta /Omega /delta /infinity /phi /element /intersection
- /equivalence /plusminus /greaterequal /lessequal /integraltp /integralbt /divide /.notdef
- /degree /dotmath /periodcentered /radical /.notdef /twosuperior /.notdef /.notdef
-] def
-
-% Utility procedures
-
-/invertencoding % <array> invertencoding <dict>
- { 256 dict exch dup length 1 sub -1 0
- { % stack: dict array index
- 2 copy get /.notdef ne
- { 2 copy get exch 3 index 3 1 roll put }
- { pop }
- ifelse
- } for
- pop
- } def
-
-/pmarray 256 array def
-/printmap % <chars> <decode> printmap -
- { mark 3 1 roll exch
- { 2 copy known { 1 index exch get } { pop 0 } ifelse exch
- }
- forall pop
- pmarray 0 counttomark 2 sub getinterval astore
- ([) print dup length =only 0 exch (] = {\n ) exch
- { exch print =only
- 1 add 15 and dup 0 eq { (,\n ) } { (, ) } ifelse
- }
- forall pop pop (\n};\n) print pop
- } def
-
-/decodeStd StandardEncoding invertencoding def
-/decodeISO ISOLatin1Encoding
- % Remove the redundant characters
- dup length array copy
- [8#222 8#225 8#230 8#233 8#240] { 2 copy /.notdef put pop } forall
-invertencoding def
-/decodeSym SymbolEncoding invertencoding def
-
-/decodeANSI ANSIEncoding invertencoding def
-/decodeOEM OEMEncoding invertencoding def
-
-% Construct the map from Symbol to OEM.
-
-(\nprivate const byte far_data gs_map_symbol_to_oem) print
-SymbolEncoding decodeOEM printmap
-
-% Construct the map from ISOLatin1 to OEM.
-
-(\nprivate const byte far_data gs_map_iso_to_oem) print
-ISOLatin1Encoding decodeOEM printmap
-
-% Construct the map from Standard to ISOLatin1.
-
-(\nprivate const byte far_data gs_map_std_to_iso) print
-StandardEncoding decodeISO printmap
-
-% Construct the map from ISOLatin1 to Standard.
-% The Windows driver doesn't need this, but the X11 driver does.
-
-(\nprivate const byte far_data gs_map_iso_to_std) print
-ISOLatin1Encoding decodeStd printmap
-
-quit
diff --git a/Master/xemtex/gslib/wmakebat.bat b/Master/xemtex/gslib/wmakebat.bat
deleted file mode 100644
index cfe53b955a1..00000000000
--- a/Master/xemtex/gslib/wmakebat.bat
+++ /dev/null
@@ -1,4 +0,0 @@
-@rem Execute this script with echo on, so we can see what's happening.
-@rem $Id: wmakebat.bat,v 1.1 2000/03/09 08:40:40 lpd Exp $
-wmakel -u -n -h %1 %2 %3 %4 %5 %6 %7 %8 %9 >_wm_temp.bat
-_wm_temp.bat
diff --git a/Master/xemtex/gslib/wrfont.ps b/Master/xemtex/gslib/wrfont.ps
deleted file mode 100644
index 3d1ffc463fb..00000000000
--- a/Master/xemtex/gslib/wrfont.ps
+++ /dev/null
@@ -1,663 +0,0 @@
-% Copyright (C) 1991, 1995, 1996 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: wrfont.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% wrfont.ps
-% Write out a Type 1 font in readable, reloadable form.
-% Note that this does NOT work on protected fonts, such as Adobe fonts
-% (unless you have loaded unprot.ps first, in which case you may be
-% violating the Adobe license).
-
-% ****** NOTE: This file must be kept consistent with gs_pfile.ps.
-
-/wrfont_dict 100 dict def
-wrfont_dict begin
-
-% ------ Options ------ %
-
-% Define whether to use eexec encryption for the font.
-% eexec encryption is only useful for compatibility with Adobe Type Manager
-% and other programs; it only slows Ghostscript down.
- /eexec_encrypt false def
-
-% Define whether to write out the CharStrings in binary or in hex.
-% Binary takes less space on the file, but isn't guaranteed portable.
- /binary_CharStrings false def
-
-% Define whether to use binary token encodings when possible.
-% Binary tokens are smaller and load faster, but are a Level 2 feature.
- /binary_tokens false def
-
-% Define whether to encrypt the CharStrings on the file. (CharStrings
-% are always encrypted in memory.) Unencrypted CharStrings load about
-% 20% slower, but make the files compress much better for transport.
- /encrypt_CharStrings true def
-
-% Define whether the font must provide standard PostScript language
-% equivalents for any facilities it uses that are provided in Ghostscript
-% but are not part of the standard PostScript language.
- /standard_only true def
-
-% Define the value of lenIV to use in writing out the font.
-% use_lenIV = 0 produces the smallest output, but this may not be
-% compatible with old Adobe interpreters. use_lenIV = -1 means
-% use the value of lenIV from the font.
- /use_lenIV -1 def
-
-% Define whether to produce the smallest possible output, relying
-% as much as possible on Ghostscript-specific support code.
-% Taking full advantage of this requires the following settings:
-% binary_CharStrings = true, binary_tokens = true, standard_only = false.
- /smallest_output false def
-
-% Define whether to write out all currently known Encodings by name,
-% or only StandardEncoding and ISOLatin1Encoding.
- /name_all_Encodings false def
-
-% ---------------- Runtime support ---------------- %
-
-/.packedfilefilter where
- { pop }
- { (gs_pfile.ps) runlibfile }
-ifelse
-
-% ------ Output utilities ------ %
-
-% By convention, the output file is named psfile.
-
-% Define some utilities for writing the output file.
- /wtstring 2000 string def
- /wb {psfile exch write} bind def
- /wnb {/wb load repeat} bind def
- /w1 {psfile exch write} bind def
- /ws {psfile exch writestring} bind def
- /wl {ws (\n) ws} bind def
- /wt {wtstring cvs ws ( ) ws} bind def
- /wd % Write a dictionary.
- { dup length wo {dict dup begin} wol { we } forall
- {end} wol
- } bind def
- /wld % Write a large dictionary more efficiently.
- % Ignore the readonly attributes.
- { dup length wo {dict dup begin} wol
- 0 exch
- { exch wo wo () wl
- 1 add dup 200 eq
- { wo ({def} repeat) wl 0 }
- if
- }
- forall
- dup 0 ne
- { wo ({def} repeat) wl }
- { pop }
- ifelse
- (end) ws
- } bind def
- /we % Write a dictionary entry.
- { exch wo wo /def cvx wo (\n) ws
- } bind def
- /wcs % Write a CharString (or Subrs entry)
- { dup type /stringtype eq
- { 4330 exch changelenIV 0 ge
- { % Add some leading garbage bytes.
- wtstring changelenIV 2 index length getinterval
- .type1decrypt exch pop
- wtstring exch 0 exch length changelenIV add getinterval
- }
- { % Drop some leading garbage bytes.
- wtstring .type1decrypt exch pop
- changelenIV neg 1 index length 1 index sub getinterval
- }
- ifelse
- binary_tokens encrypt_CharStrings and
- { % Suppress recognizing the readonly status of the string.
- 4330 exch dup .type1encrypt exch pop wo
- }
- { encrypt_CharStrings
- { 4330 exch dup .type1encrypt exch pop
- } if
- smallest_output
- { wo
- }
- { readonly dup length wo
- binary_tokens not { ( ) ws } if
- readproc ws wx
- }
- ifelse
- }
- ifelse
- }
- { wo % PostScript procedure
- }
- ifelse
- } bind def
-
-% Construct the inversion of the system name table.
- /SystemNames where
- { pop /snit 256 dict def
- 0 1 255
- { dup SystemNames exch get
- dup null ne { exch snit 3 1 roll put } { pop pop } ifelse
- }
- for
- }
- { /snit 1 dict def
- }
- ifelse
-
-% Write an object, using binary tokens if requested and possible.
- /woa % write in ascii
- { psfile exch write==only
- } bind def
-
- % Lookup table for ASCII output.
-
- /intbytes % int nbytes -> byte*
- { { dup 255 and exch -8 bitshift } repeat pop
- } bind def
- /wotta 10 dict dup begin
- { /booleantype /integertype }
- { { ( ) ws woa } def }
- forall
- % Iterate over arrays so we can print operators.
- /arraytype
- { dup xcheck {(}) ({)} {(]) ([)} ifelse ws exch dup wol exch ws wop
- } bind def
- /dicttype
- { ( ) ws wd } def
- /nametype
- { dup xcheck { ( ) ws } if woa
- } bind def
- % Map back operators to their names,
- % so we can write procedures.
- /nulltype
- { pop ( null) ws
- } bind def
- /operatortype
- { wtstring cvs cvn cvx wo
- } bind def
- % Convert reals to integers if possible.
- /realtype
- { dup cvi 1 index eq { cvi wo } { ( ) ws woa } ifelse
- } bind def
- % == truncates strings longer than 200 characters!
- /stringtype
- { (\() ws dup
- { dup dup 32 lt exch 127 ge or
- { (\\) ws dup -6 bitshift 48 add w1
- dup -3 bitshift 7 and 48 add w1
- 7 and 48 add
- }
- { dup dup -2 and 40 eq exch 92 eq or {(\\) ws} if
- }
- ifelse w1
- }
- forall
- (\)) ws wop
- } bind def
- /packedarraytype
- { ([) ws dup { wo } forall
- encodingnames 1 index known
- % This is an encoding, but not one of the standard ones.
- % Use the built-in encoding only if it is available.
- { encodingnames exch get wo
- ({findencoding}stopped{pop) ws
- (}{counttomark 1 add 1 roll cleartomark}ifelse)
- }
- { pop ()
- }
- ifelse
- (/packedarray where{pop counttomark packedarray exch pop}{]readonly}ifelse) ws
- wl
- }
- def
- end def
-
- % Lookup table for binary output.
-
- /wottb 8 dict dup begin
- wotta currentdict copy pop
- /integertype
- { dup dup 127 le exch -128 ge and
- { 136 wb 255 and wb }
- { dup dup 32767 le exch -32768 ge and
- { 134 wb 2 intbytes wb wb }
- { 132 wb 4 intbytes wb wb wb wb }
- ifelse
- }
- ifelse
- } bind def
- /nametype
- { dup snit exch known
- { dup xcheck { 146 } { 145 } ifelse wb
- snit exch get wb
- }
- { wotta /nametype get exec
- }
- ifelse
- } bind def
- /stringtype
- { dup dup length dup 255 le { 142 2 } { 2 intbytes 143 3 } ifelse wnb
- ws wop
- } bind def
- end def
-
- /wop % Write object protection
- { wcheck not { /readonly cvx wo } if
- } bind def
- /wo % Write an object.
- { dup type binary_tokens { wottb } { wotta } ifelse
- exch get exec
- } bind def
- /wol % Write a list of objects.
- { { wo } forall
- } bind def
-
-% Write a hex string for Subrs or CharStrings.
- /wx % string ->
- { binary_CharStrings
- { ws
- }
- { % Some systems choke on very long lines, so
- % we break up the hexstring into chunks of 50 characters.
- { dup length 25 le {exit} if
- dup 0 25 getinterval psfile exch writehexstring (\n) ws
- dup length 25 sub 25 exch getinterval
- } loop
- psfile exch writehexstring
- } ifelse
- } bind def
-
-% ------ CharString encryption utilities ------ %
-
-/enc_dict 20 dict def
-1 dict begin
-/bind { } def % make sure we can print out the procedures
-enc_dict begin
-
-(type1enc.ps) runlibfile
-enc_dict /.type1decrypt undef % we don't need this
-
-end end
-
-enc_dict { 1 index where { pop pop pop } { def } ifelse } forall
-
-% ------ Other utilities ------ %
-
-% Test whether two values are equal (for default dictionary entries).
- /valueeq % <obj1> <obj2> valueeq <bool>
- { 2 copy eq
- { pop pop true }
- { % Special hack for comparing FontMatrix values
- dup type /arraytype eq 2 index type /arraytype eq and
- { dup length 2 index length eq
- { true 0 1 3 index length 1 sub
- { % Stack: arr1 arr2 true index
- 3 index 1 index get 3 index 3 -1 roll get eq not
- { pop false exit }
- if
- }
- for 3 1 roll pop pop
- }
- { pop pop false
- }
- ifelse
- }
- { pop pop false
- }
- ifelse
- }
- ifelse
- } bind def
-
-% ------ The main program ------ %
-
-% Define the dictionary of keys to skip because they are treated specially.
-/.fontskipkeys mark
- /CharStrings dup
- /Encoding dup
- /FDepVector dup
- /FID dup
- /FontInfo dup
- /Metrics dup
- /Metrics2 dup
- /Private dup
-.dicttomark def
-/.minfontskipkeys mark
- .fontskipkeys { } forall
- /FontName dup
- /UniqueID dup
-.dicttomark def
-/.privateskipkeys mark
- /ND dup
- /NP dup
- /RD dup
- /Subrs dup
-.dicttomark def
-/.minprivateskipkeys mark
- .privateskipkeys { } forall
- /MinFeature dup
- /Password dup
- /UniqueID dup
-.dicttomark def
-
-% Define the procedures for the Private dictionary.
-% These must be defined without `bind',
-% for the sake of the DISKFONTS feature.
-4 dict begin
- /-! {string currentfile exch readhexstring pop} def
- /-| {string currentfile exch readstring pop} def
- /|- {readonly def} def
- /| {readonly put} def
-currentdict end /encrypted_procs exch def
-4 dict begin
- /-! {string currentfile exch readhexstring pop
- 4330 exch dup .type1encrypt exch pop} def
- /-| {string currentfile exch readstring pop
- 4330 exch dup .type1encrypt exch pop} def
- /|- {readonly def} def
- /| {readonly put} def
-currentdict end /unencrypted_procs exch def
-
-% Construct an inverse dictionary of encodings.
-/encodingnames mark
- StandardEncoding /StandardEncoding
- ISOLatin1Encoding /ISOLatin1Encoding
- SymbolEncoding /SymbolEncoding
- DingbatsEncoding /DingbatsEncoding
- /resourceforall where
- { pop (*) { cvn dup findencoding exch } 100 string /Encoding resourceforall }
- if
-.dicttomark def
-
-% Invert the standard encodings.
-.knownEncodings length 256 mul dict begin
- 0 .knownEncodings
- { { currentdict 1 index known { pop } { 1 index def } ifelse
- 1 add
- }
- forall
- }
- forall pop
-currentdict end /inverseencodings exch def
-
-/writefont % <psfile> writefont - (writes the current font)
- { /psfile exch def
- /Font currentfont def
- /FontInfo Font /FontInfo .knownget not { 0 dict } if def
- /FontType Font /FontType get def
- /hasPrivate Font /Private known def
- /Private hasPrivate { Font /Private get } { 0 dict } ifelse def
- /readproc binary_CharStrings { (-| ) } { (-! ) } ifelse def
- /privateprocs
- encrypt_CharStrings binary_tokens not and
- { encrypted_procs } { unencrypted_procs } ifelse
- def
- /addlenIV false def
- /changelenIV use_lenIV 0 lt
- { 0 }
- { use_lenIV Private /lenIV .knownget not
- { 4 /addlenIV use_lenIV 4 ne def } if sub }
- ifelse def
- /minimize
- smallest_output
- FontType 1 eq and
- Font /UniqueID known and
- def
- (%!FontType) ws FontType wtstring cvs ws (-1.0: ) ws
- currentfont /FontName get wt
- FontInfo /version .knownget not { (001.001) } if wl
- FontInfo /CreationDate .knownget { (%%Creation Date: ) ws wl } if
- FontInfo /VMusage .knownget
- { (%%VMusage: ) ws dup wt wtstring cvs wl }
- if
- (systemdict begin) wl
-
-% If we're going to use eexec, create the filters now.
- /realpsfile psfile def
- eexec_encrypt
- { /eexecfilter psfile binary_CharStrings not
- { pop /bxstring 35 string def
- { pop dup length 0 ne
- { realpsfile exch writehexstring realpsfile (\n) writestring }
- { pop }
- ifelse bxstring
- }
- /NullEncode filter dup /hexfilter exch def
- }
- if 55665 /eexecEncode filter def
- }
- if
-
-% Turn on binary tokens if relevant.
- binary_tokens { (currentobjectformat 1 setobjectformat) wl } if
-
-% If the file has a UniqueID, write out a check against loading it twice.
- minimize
- { Font /FontName get wo
- Font /UniqueID get wo
- Private length addlenIV { 1 add } if wo
- Font length 1 add wo % +1 for FontFile
- ( .checkexistingfont) wl
- }
- { Font /UniqueID known
- { ({} FontDirectory) ws Font /FontName get dup wo ( known) wl
- ( {) ws wo ( findfont dup /UniqueID known) wl
- ( { dup /UniqueID get) ws Font /UniqueID get wo ( eq exch /FontType get 1 eq and }) wl
- ( { pop false } ifelse) wl
- ( { pop save /restore load } if) wl
- ( } if) wl
- }
- if
- }
- ifelse
-
-% If we are writing unencrypted CharStrings for a standard environment,
-% write out the encryption procedures.
- privateprocs unencrypted_procs eq standard_only and
- { (systemdict /.type1encrypt known) wl
- ( { save /restore load } { { } } ifelse) wl
- (userdict begin) wl
- enc_dict { we } forall
- (end exec) wl
- }
- if
-
-% Write out the creation of the font dictionary and FontInfo.
- minimize not
- { Font length 1 add wo {dict begin} wol % +1 for FontFile
- }
- if
- (/FontInfo ) ws FontInfo wd {readonly def} wol
-
-% Write out the other fixed entries in the font dictionary.
- Font begin
- Font
- { minimize
- { .minfontskipkeys 2 index known
- { pop pop
- }
- { //.compactfontdefault 2 index .knownget
- { 1 index valueeq { pop pop } { we } ifelse }
- { we }
- ifelse
- }
- ifelse
- }
- { .fontskipkeys 2 index known { pop pop } { we } ifelse
- }
- ifelse
- } forall
- /Encoding
- encodingnames Encoding known
- name_all_Encodings
- Encoding StandardEncoding eq or
- Encoding ISOLatin1Encoding eq or and
- { encodingnames Encoding get cvx }
- { Encoding }
- ifelse
- dup /StandardEncoding cvx eq minimize and
- { pop pop }
- { we }
- ifelse
-
-% Write the FDepVector, if any.
- Font /FDepVector .knownget
- { {/FDepVector [} wol
- { /FontName get wo {findfont} wol () wl } forall
- {] readonly def} wol
- }
- if
-
-% Write out the Metrics, if any.
- Font /Metrics .knownget
- { (/Metrics ) ws wld {readonly def} wol
- }
- if
- Font /Metrics2 .knownget
- { (/Metrics2 ) ws wld {readonly def} wol
- }
- if
-
-% Start the eexec-encrypted section, if applicable.
- eexec_encrypt
- { {currentdict currentfile eexec} wol () wl
- /psfile eexecfilter store
- (\000\000\000\000) ws {begin} wol
- }
- if
-
-% Create and initialize the Private dictionary, if any.
- hasPrivate
-{
- Private
- minimize
- { begin {Private dup begin}
- }
- { dup length privateprocs length add dict copy begin
- privateprocs { readonly def } forall
- /Private wo
- currentdict length 1 add wo {dict dup begin}
- }
- ifelse wol () wl
- currentdict
- { 1 index minimize { .minprivateskipkeys } { .privateskipkeys } ifelse
- exch known
- { pop pop }
- { 1 index /lenIV eq use_lenIV 0 ge and { pop use_lenIV } if we }
- ifelse
- } forall
- addlenIV { /lenIV use_lenIV we } if
-}
-if
-
-% Write the Subrs entries, if any.
- currentdict /Subrs known
- { (/Subrs[) wl
- Subrs
- { dup null ne
- { wcs minimize not { () wl } if }
- { pop /null cvx wo }
- ifelse
- } forall
- {] dup {readonly pop} forall readonly def} wol () wl
- }
- if
-
-% Wrap up the Private dictionary.
- hasPrivate
- { end % Private
- minimize
- { {end readonly pop} } % Private
- { {end readonly def} } % Private in font
- ifelse wol
- }
- if
-
-% Write the CharStrings entries.
-% Detect identical (eq) entries, which bdftops produces.
- currentdict /CharStrings known
-{
- /CharStrings wo CharStrings length wo
- minimize
- { encrypt_CharStrings not wo ( .readCharStrings) wl
- CharStrings length dict
- CharStrings
- { exch inverseencodings 1 index .knownget not { dup } if wo
- % Stack: vdict value key
- 3 copy pop .knownget { wo pop pop } { 3 copy put pop wcs } ifelse
- } forall
- }
- { {dict dup Private begin begin} wol () wl
- CharStrings length dict
- CharStrings
- { 2 index 1 index known
- { exch wo 1 index exch get wo {load def} wol () wl
- }
- { 2 index 1 index 3 index put
- exch wo wcs ( |-) wl
- }
- ifelse
- } forall
- {end end} wol
- }
- ifelse
- pop
- { readonly def } % CharStrings in font
- wol
-}
-if
-
-% Terminate the output.
- end % Font
- eexec_encrypt
- { {end mark currentfile closefile} wol () wl
- eexecfilter dup flushfile closefile % psfile is eexecfilter
- binary_CharStrings not { hexfilter dup flushfile closefile } if
- /psfile realpsfile store
- 8
- { (0000000000000000000000000000000000000000000000000000000000000000)
- wl
- }
- repeat {cleartomark} wol
- }
- if
- { FontName currentdict end definefont pop
- }
- wol
- Font /UniqueID known { /exec cvx wo } if
- binary_tokens { /setobjectformat cvx wo } if
- ( end) wl % systemdict
-
- } bind def
-
-% ------ Other utilities ------ %
-
-% Prune garbage characters and OtherSubrs out of the current font,
-% if the relevant dictionaries are writable.
-/prunefont
- { currentfont /CharStrings get wcheck
- { currentfont /CharStrings get dup [ exch
- { pop dup (S????00?) .stringmatch not { pop } if
- } forall
- ] { 2 copy undef pop } forall pop
- }
- if
- } bind def
-
-end % wrfont_dict
-
-/writefont { wrfont_dict begin writefont end } def
diff --git a/Master/xemtex/gslib/zeroline.ps b/Master/xemtex/gslib/zeroline.ps
deleted file mode 100644
index 7411a170d64..00000000000
--- a/Master/xemtex/gslib/zeroline.ps
+++ /dev/null
@@ -1,101 +0,0 @@
-%!
-% Copyright (C) 1994 Aladdin Enterprises. All rights reserved.
-%
-% This program is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-%
-% This program is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-% Public License for more details.
-%
-% You should have received a copy of the GNU General Public License along
-% with this program; if not, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: zeroline.ps,v 1.2.6.1.2.1 2003/04/12 14:02:39 giles Exp $
-% zeroline.ps
-% Test file to determine how other PostScript implementations handle
-% filling zero-width lines under a variety of conditions.
-
-% Add a small "fan" of zero-width lines at different angles to the path.
-/fan
- { currentpoint 100 0 rlineto
- 2 copy moveto 100 20 rlineto
- 2 copy moveto 100 100 rlineto
- 2 copy moveto 20 100 rlineto
- moveto 0 100 rlineto
- } def
-
-% Append a rectangle to the current path.
-/rectappend
- { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto
- neg 0 rlineto closepath
- } def
-% Fill a rectangle.
-/rectfill
- { gsave newpath rectappend fill grestore
- } def
-% Stroke a rectangle.
-/rectstroke
- { gsave newpath rectappend stroke grestore
- } def
-% Clip to a rectangle. Unlike the real rectclip,
-% this clear the current path.
-/rectclip
- { newpath rectappend clip newpath
- } def
-
-40 40 translate
-
-% Display fans of different colors on different backgrounds.
-gsave
-0 setgray
-0 0 120 120 rectstroke
-10 10 moveto fan fill
-140 0 translate
-0 setgray
-0 0 120 120 rectstroke
-0.8 setgray
-10 10 moveto fan fill
-140 0 translate
-0 setgray
-0 0 120 120 rectfill
-1 setgray
-10 10 moveto fan fill
-grestore
-0 140 translate
-
-% Display rectangles with two edges coincident.
-gsave
-newpath
-0 setgray
-0 0 40 40 rectappend
-0 0 20 20 rectappend
-eofill
-60 0 translate
-0 0 40 40 rectappend
-40 0 -20 20 rectappend
-fill
-grestore
-0 60 translate
-
-% Display superimposed lines.
-gsave
-/super
- { currentpoint fan
- 2 copy moveto 20 0 rmoveto 50 0 rlineto
- 2 copy moveto 20 4 rmoveto 50 10 rlineto
- 2 copy moveto 20 20 rmoveto 50 50 rlineto
- 2 copy moveto 4 20 rmoveto 10 50 rlineto
- moveto 0 20 rmoveto 0 50 rlineto
- } def
-0 setgray
-0 0 moveto super fill
-140 0 translate 0 0 moveto super eofill
-grestore
-0 140 translate
-
-showpage
diff --git a/Master/xemtex/perl/lib/AnyDBM_File.pm b/Master/xemtex/perl/lib/AnyDBM_File.pm
deleted file mode 100644
index d73abab0f9e..00000000000
--- a/Master/xemtex/perl/lib/AnyDBM_File.pm
+++ /dev/null
@@ -1,93 +0,0 @@
-package AnyDBM_File;
-
-use 5.006_001;
-our $VERSION = '1.00';
-our @ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA;
-
-my $mod;
-for $mod (@ISA) {
- if (eval "require $mod") {
- @ISA = ($mod); # if we leave @ISA alone, warnings abound
- return 1;
- }
-}
-
-die "No DBM package was successfully found or installed";
-#return 0;
-
-=head1 NAME
-
-AnyDBM_File - provide framework for multiple DBMs
-
-NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File - various DBM implementations
-
-=head1 SYNOPSIS
-
- use AnyDBM_File;
-
-=head1 DESCRIPTION
-
-This module is a "pure virtual base class"--it has nothing of its own.
-It's just there to inherit from one of the various DBM packages. It
-prefers ndbm for compatibility reasons with Perl 4, then Berkeley DB (See
-L<DB_File>), GDBM, SDBM (which is always there--it comes with Perl), and
-finally ODBM. This way old programs that used to use NDBM via dbmopen()
-can still do so, but new ones can reorder @ISA:
-
- BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File) }
- use AnyDBM_File;
-
-Having multiple DBM implementations makes it trivial to copy database formats:
-
- use POSIX; use NDBM_File; use DB_File;
- tie %newhash, 'DB_File', $new_filename, O_CREAT|O_RDWR;
- tie %oldhash, 'NDBM_File', $old_filename, 1, 0;
- %newhash = %oldhash;
-
-=head2 DBM Comparisons
-
-Here's a partial table of features the different packages offer:
-
- odbm ndbm sdbm gdbm bsd-db
- ---- ---- ---- ---- ------
- Linkage comes w/ perl yes yes yes yes yes
- Src comes w/ perl no no yes no no
- Comes w/ many unix os yes yes[0] no no no
- Builds ok on !unix ? ? yes yes ?
- Code Size ? ? small big big
- Database Size ? ? small big? ok[1]
- Speed ? ? slow ok fast
- FTPable no no yes yes yes
- Easy to build N/A N/A yes yes ok[2]
- Size limits 1k 4k 1k[3] none none
- Byte-order independent no no no no yes
- Licensing restrictions ? ? no yes no
-
-
-=over 4
-
-=item [0]
-
-on mixed universe machines, may be in the bsd compat library,
-which is often shunned.
-
-=item [1]
-
-Can be trimmed if you compile for one access method.
-
-=item [2]
-
-See L<DB_File>.
-Requires symbolic links.
-
-=item [3]
-
-By default, but can be redefined.
-
-=back
-
-=head1 SEE ALSO
-
-dbm(3), ndbm(3), DB_File(3), L<perldbmfilter>
-
-=cut
diff --git a/Master/xemtex/perl/lib/AutoLoader.pm b/Master/xemtex/perl/lib/AutoLoader.pm
deleted file mode 100644
index b42d5ff4b68..00000000000
--- a/Master/xemtex/perl/lib/AutoLoader.pm
+++ /dev/null
@@ -1,337 +0,0 @@
-package AutoLoader;
-
-use 5.006_001;
-our(@EXPORT, @EXPORT_OK, $VERSION);
-
-my $is_dosish;
-my $is_epoc;
-my $is_vms;
-my $is_macos;
-
-BEGIN {
- require Exporter;
- @EXPORT = @EXPORT = ();
- @EXPORT_OK = @EXPORT_OK = qw(AUTOLOAD);
- $is_dosish = $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare';
- $is_epoc = $^O eq 'epoc';
- $is_vms = $^O eq 'VMS';
- $is_macos = $^O eq 'MacOS';
- $VERSION = '5.59';
-}
-
-AUTOLOAD {
- my $sub = $AUTOLOAD;
- my $filename;
- # Braces used to preserve $1 et al.
- {
- # Try to find the autoloaded file from the package-qualified
- # name of the sub. e.g., if the sub needed is
- # Getopt::Long::GetOptions(), then $INC{Getopt/Long.pm} is
- # something like '/usr/lib/perl5/Getopt/Long.pm', and the
- # autoload file is '/usr/lib/perl5/auto/Getopt/Long/GetOptions.al'.
- #
- # However, if @INC is a relative path, this might not work. If,
- # for example, @INC = ('lib'), then $INC{Getopt/Long.pm} is
- # 'lib/Getopt/Long.pm', and we want to require
- # 'auto/Getopt/Long/GetOptions.al' (without the leading 'lib').
- # In this case, we simple prepend the 'auto/' and let the
- # C<require> take care of the searching for us.
-
- my ($pkg,$func) = ($sub =~ /(.*)::([^:]+)$/);
- $pkg =~ s#::#/#g;
- if (defined($filename = $INC{"$pkg.pm"})) {
- if ($is_macos) {
- $pkg =~ tr#/#:#;
- $filename =~ s#^(.*)$pkg\.pm\z#$1auto:$pkg:$func.al#s;
- } else {
- $filename =~ s#^(.*)$pkg\.pm\z#$1auto/$pkg/$func.al#s;
- }
-
- # if the file exists, then make sure that it is a
- # a fully anchored path (i.e either '/usr/lib/auto/foo/bar.al',
- # or './lib/auto/foo/bar.al'. This avoids C<require> searching
- # (and failing) to find the 'lib/auto/foo/bar.al' because it
- # looked for 'lib/lib/auto/foo/bar.al', given @INC = ('lib').
-
- if (-r $filename) {
- unless ($filename =~ m|^/|s) {
- if ($is_dosish) {
- unless ($filename =~ m{^([a-z]:)?[\\/]}is) {
- if ($^O ne 'NetWare') {
- $filename = "./$filename";
- } else {
- $filename = "$filename";
- }
- }
- }
- elsif ($is_epoc) {
- unless ($filename =~ m{^([a-z?]:)?[\\/]}is) {
- $filename = "./$filename";
- }
- }
- elsif ($is_vms) {
- # XXX todo by VMSmiths
- $filename = "./$filename";
- }
- elsif (!$is_macos) {
- $filename = "./$filename";
- }
- }
- }
- else {
- $filename = undef;
- }
- }
- unless (defined $filename) {
- # let C<require> do the searching
- $filename = "auto/$sub.al";
- $filename =~ s#::#/#g;
- }
- }
- my $save = $@;
- local $!; # Do not munge the value.
- eval { local $SIG{__DIE__}; require $filename };
- if ($@) {
- if (substr($sub,-9) eq '::DESTROY') {
- *$sub = sub {};
- } else {
- # The load might just have failed because the filename was too
- # long for some old SVR3 systems which treat long names as errors.
- # If we can succesfully truncate a long name then it's worth a go.
- # There is a slight risk that we could pick up the wrong file here
- # but autosplit should have warned about that when splitting.
- if ($filename =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){
- eval { local $SIG{__DIE__}; require $filename };
- }
- if ($@){
- $@ =~ s/ at .*\n//;
- my $error = $@;
- require Carp;
- Carp::croak($error);
- }
- }
- }
- $@ = $save;
- goto &$sub;
-}
-
-sub import {
- my $pkg = shift;
- my $callpkg = caller;
-
- #
- # Export symbols, but not by accident of inheritance.
- #
-
- if ($pkg eq 'AutoLoader') {
- local $Exporter::ExportLevel = 1;
- Exporter::import $pkg, @_;
- }
-
- #
- # Try to find the autosplit index file. Eg., if the call package
- # is POSIX, then $INC{POSIX.pm} is something like
- # '/usr/local/lib/perl5/POSIX.pm', and the autosplit index file is in
- # '/usr/local/lib/perl5/auto/POSIX/autosplit.ix', so we require that.
- #
- # However, if @INC is a relative path, this might not work. If,
- # for example, @INC = ('lib'), then
- # $INC{POSIX.pm} is 'lib/POSIX.pm', and we want to require
- # 'auto/POSIX/autosplit.ix' (without the leading 'lib').
- #
-
- (my $calldir = $callpkg) =~ s#::#/#g;
- my $path = $INC{$calldir . '.pm'};
- if (defined($path)) {
- # Try absolute path name.
- if ($is_macos) {
- (my $malldir = $calldir) =~ tr#/#:#;
- $path =~ s#^(.*)$malldir\.pm\z#$1auto:$malldir:autosplit.ix#s;
- } else {
- $path =~ s#^(.*)$calldir\.pm\z#$1auto/$calldir/autosplit.ix#;
- }
-
- eval { require $path; };
- # If that failed, try relative path with normal @INC searching.
- if ($@) {
- $path ="auto/$calldir/autosplit.ix";
- eval { require $path; };
- }
- if ($@) {
- my $error = $@;
- require Carp;
- Carp::carp($error);
- }
- }
-}
-
-sub unimport {
- my $callpkg = caller;
- eval "package $callpkg; sub AUTOLOAD;";
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-AutoLoader - load subroutines only on demand
-
-=head1 SYNOPSIS
-
- package Foo;
- use AutoLoader 'AUTOLOAD'; # import the default AUTOLOAD subroutine
-
- package Bar;
- use AutoLoader; # don't import AUTOLOAD, define our own
- sub AUTOLOAD {
- ...
- $AutoLoader::AUTOLOAD = "...";
- goto &AutoLoader::AUTOLOAD;
- }
-
-=head1 DESCRIPTION
-
-The B<AutoLoader> module works with the B<AutoSplit> module and the
-C<__END__> token to defer the loading of some subroutines until they are
-used rather than loading them all at once.
-
-To use B<AutoLoader>, the author of a module has to place the
-definitions of subroutines to be autoloaded after an C<__END__> token.
-(See L<perldata>.) The B<AutoSplit> module can then be run manually to
-extract the definitions into individual files F<auto/funcname.al>.
-
-B<AutoLoader> implements an AUTOLOAD subroutine. When an undefined
-subroutine in is called in a client module of B<AutoLoader>,
-B<AutoLoader>'s AUTOLOAD subroutine attempts to locate the subroutine in a
-file with a name related to the location of the file from which the
-client module was read. As an example, if F<POSIX.pm> is located in
-F</usr/local/lib/perl5/POSIX.pm>, B<AutoLoader> will look for perl
-subroutines B<POSIX> in F</usr/local/lib/perl5/auto/POSIX/*.al>, where
-the C<.al> file has the same name as the subroutine, sans package. If
-such a file exists, AUTOLOAD will read and evaluate it,
-thus (presumably) defining the needed subroutine. AUTOLOAD will then
-C<goto> the newly defined subroutine.
-
-Once this process completes for a given function, it is defined, so
-future calls to the subroutine will bypass the AUTOLOAD mechanism.
-
-=head2 Subroutine Stubs
-
-In order for object method lookup and/or prototype checking to operate
-correctly even when methods have not yet been defined it is necessary to
-"forward declare" each subroutine (as in C<sub NAME;>). See
-L<perlsub/"SYNOPSIS">. Such forward declaration creates "subroutine
-stubs", which are place holders with no code.
-
-The AutoSplit and B<AutoLoader> modules automate the creation of forward
-declarations. The AutoSplit module creates an 'index' file containing
-forward declarations of all the AutoSplit subroutines. When the
-AutoLoader module is 'use'd it loads these declarations into its callers
-package.
-
-Because of this mechanism it is important that B<AutoLoader> is always
-C<use>d and not C<require>d.
-
-=head2 Using B<AutoLoader>'s AUTOLOAD Subroutine
-
-In order to use B<AutoLoader>'s AUTOLOAD subroutine you I<must>
-explicitly import it:
-
- use AutoLoader 'AUTOLOAD';
-
-=head2 Overriding B<AutoLoader>'s AUTOLOAD Subroutine
-
-Some modules, mainly extensions, provide their own AUTOLOAD subroutines.
-They typically need to check for some special cases (such as constants)
-and then fallback to B<AutoLoader>'s AUTOLOAD for the rest.
-
-Such modules should I<not> import B<AutoLoader>'s AUTOLOAD subroutine.
-Instead, they should define their own AUTOLOAD subroutines along these
-lines:
-
- use AutoLoader;
- use Carp;
-
- sub AUTOLOAD {
- my $sub = $AUTOLOAD;
- (my $constname = $sub) =~ s/.*:://;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
- if ($! =~ /Invalid/ || $!{EINVAL}) {
- $AutoLoader::AUTOLOAD = $sub;
- goto &AutoLoader::AUTOLOAD;
- }
- else {
- croak "Your vendor has not defined constant $constname";
- }
- }
- *$sub = sub { $val }; # same as: eval "sub $sub { $val }";
- goto &$sub;
- }
-
-If any module's own AUTOLOAD subroutine has no need to fallback to the
-AutoLoader's AUTOLOAD subroutine (because it doesn't have any AutoSplit
-subroutines), then that module should not use B<AutoLoader> at all.
-
-=head2 Package Lexicals
-
-Package lexicals declared with C<my> in the main block of a package
-using B<AutoLoader> will not be visible to auto-loaded subroutines, due to
-the fact that the given scope ends at the C<__END__> marker. A module
-using such variables as package globals will not work properly under the
-B<AutoLoader>.
-
-The C<vars> pragma (see L<perlmod/"vars">) may be used in such
-situations as an alternative to explicitly qualifying all globals with
-the package namespace. Variables pre-declared with this pragma will be
-visible to any autoloaded routines (but will not be invisible outside
-the package, unfortunately).
-
-=head2 Not Using AutoLoader
-
-You can stop using AutoLoader by simply
-
- no AutoLoader;
-
-=head2 B<AutoLoader> vs. B<SelfLoader>
-
-The B<AutoLoader> is similar in purpose to B<SelfLoader>: both delay the
-loading of subroutines.
-
-B<SelfLoader> uses the C<__DATA__> marker rather than C<__END__>.
-While this avoids the use of a hierarchy of disk files and the
-associated open/close for each routine loaded, B<SelfLoader> suffers a
-startup speed disadvantage in the one-time parsing of the lines after
-C<__DATA__>, after which routines are cached. B<SelfLoader> can also
-handle multiple packages in a file.
-
-B<AutoLoader> only reads code as it is requested, and in many cases
-should be faster, but requires a mechanism like B<AutoSplit> be used to
-create the individual files. L<ExtUtils::MakeMaker> will invoke
-B<AutoSplit> automatically if B<AutoLoader> is used in a module source
-file.
-
-=head1 CAVEATS
-
-AutoLoaders prior to Perl 5.002 had a slightly different interface. Any
-old modules which use B<AutoLoader> should be changed to the new calling
-style. Typically this just means changing a require to a use, adding
-the explicit C<'AUTOLOAD'> import if needed, and removing B<AutoLoader>
-from C<@ISA>.
-
-On systems with restrictions on file name length, the file corresponding
-to a subroutine may have a shorter name that the routine itself. This
-can lead to conflicting file names. The I<AutoSplit> package warns of
-these potential conflicts when used to split a module.
-
-AutoLoader may fail to find the autosplit files (or even find the wrong
-ones) in cases where C<@INC> contains relative paths, B<and> the program
-does C<chdir>.
-
-=head1 SEE ALSO
-
-L<SelfLoader> - an autoloader that doesn't use external files.
-
-=cut
diff --git a/Master/xemtex/perl/lib/B.pm b/Master/xemtex/perl/lib/B.pm
deleted file mode 100644
index feca2e59d6e..00000000000
--- a/Master/xemtex/perl/lib/B.pm
+++ /dev/null
@@ -1,971 +0,0 @@
-# B.pm
-#
-# Copyright (c) 1996, 1997, 1998 Malcolm Beattie
-#
-# You may distribute under the terms of either the GNU General Public
-# License or the Artistic License, as specified in the README file.
-#
-package B;
-
-our $VERSION = '1.01';
-
-use XSLoader ();
-require Exporter;
-@ISA = qw(Exporter);
-
-# walkoptree_slow comes from B.pm (you are there),
-# walkoptree comes from B.xs
-@EXPORT_OK = qw(minus_c ppname save_BEGINs
- class peekop cast_I32 cstring cchar hash threadsv_names
- main_root main_start main_cv svref_2object opnumber
- amagic_generation perlstring
- walkoptree_slow walkoptree walkoptree_exec walksymtable
- parents comppadlist sv_undef compile_stats timing_info
- begin_av init_av end_av regex_padav);
-
-sub OPf_KIDS ();
-use strict;
-@B::SV::ISA = 'B::OBJECT';
-@B::NULL::ISA = 'B::SV';
-@B::PV::ISA = 'B::SV';
-@B::IV::ISA = 'B::SV';
-@B::NV::ISA = 'B::IV';
-@B::RV::ISA = 'B::SV';
-@B::PVIV::ISA = qw(B::PV B::IV);
-@B::PVNV::ISA = qw(B::PV B::NV);
-@B::PVMG::ISA = 'B::PVNV';
-@B::PVLV::ISA = 'B::PVMG';
-@B::BM::ISA = 'B::PVMG';
-@B::AV::ISA = 'B::PVMG';
-@B::GV::ISA = 'B::PVMG';
-@B::HV::ISA = 'B::PVMG';
-@B::CV::ISA = 'B::PVMG';
-@B::IO::ISA = 'B::PVMG';
-@B::FM::ISA = 'B::CV';
-
-@B::OP::ISA = 'B::OBJECT';
-@B::UNOP::ISA = 'B::OP';
-@B::BINOP::ISA = 'B::UNOP';
-@B::LOGOP::ISA = 'B::UNOP';
-@B::LISTOP::ISA = 'B::BINOP';
-@B::SVOP::ISA = 'B::OP';
-@B::PADOP::ISA = 'B::OP';
-@B::PVOP::ISA = 'B::OP';
-@B::CVOP::ISA = 'B::OP';
-@B::LOOP::ISA = 'B::LISTOP';
-@B::PMOP::ISA = 'B::LISTOP';
-@B::COP::ISA = 'B::OP';
-
-@B::SPECIAL::ISA = 'B::OBJECT';
-
-{
- # Stop "-w" from complaining about the lack of a real B::OBJECT class
- package B::OBJECT;
-}
-
-sub B::GV::SAFENAME {
- my $name = (shift())->NAME;
-
- # The regex below corresponds to the isCONTROLVAR macro
- # from toke.c
-
- $name =~ s/^([\cA-\cZ\c\\c[\c]\c?\c_\c^])/"^".
- chr( utf8::unicode_to_native( 64 ^ ord($1) ))/e;
-
- # When we say unicode_to_native we really mean ascii_to_native,
- # which matters iff this is a non-ASCII platform (EBCDIC).
-
- return $name;
-}
-
-sub B::IV::int_value {
- my ($self) = @_;
- return (($self->FLAGS() & SVf_IVisUV()) ? $self->UVX : $self->IV);
-}
-
-sub B::NULL::as_string() {""}
-sub B::IV::as_string() {goto &B::IV::int_value}
-sub B::PV::as_string() {goto &B::PV::PV}
-
-my $debug;
-my $op_count = 0;
-my @parents = ();
-
-sub debug {
- my ($class, $value) = @_;
- $debug = $value;
- walkoptree_debug($value);
-}
-
-sub class {
- my $obj = shift;
- my $name = ref $obj;
- $name =~ s/^.*:://;
- return $name;
-}
-
-sub parents { \@parents }
-
-# For debugging
-sub peekop {
- my $op = shift;
- return sprintf("%s (0x%x) %s", class($op), $$op, $op->name);
-}
-
-sub walkoptree_slow {
- my($op, $method, $level) = @_;
- $op_count++; # just for statistics
- $level ||= 0;
- warn(sprintf("walkoptree: %d. %s\n", $level, peekop($op))) if $debug;
- $op->$method($level);
- if ($$op && ($op->flags & OPf_KIDS)) {
- my $kid;
- unshift(@parents, $op);
- for ($kid = $op->first; $$kid; $kid = $kid->sibling) {
- walkoptree_slow($kid, $method, $level + 1);
- }
- shift @parents;
- }
- if (class($op) eq 'PMOP' && $op->pmreplroot && ${$op->pmreplroot}) {
- unshift(@parents, $op);
- walkoptree_slow($op->pmreplroot, $method, $level + 1);
- shift @parents;
- }
-}
-
-sub compile_stats {
- return "Total number of OPs processed: $op_count\n";
-}
-
-sub timing_info {
- my ($sec, $min, $hr) = localtime;
- my ($user, $sys) = times;
- sprintf("%02d:%02d:%02d user=$user sys=$sys",
- $hr, $min, $sec, $user, $sys);
-}
-
-my %symtable;
-
-sub clearsym {
- %symtable = ();
-}
-
-sub savesym {
- my ($obj, $value) = @_;
-# warn(sprintf("savesym: sym_%x => %s\n", $$obj, $value)); # debug
- $symtable{sprintf("sym_%x", $$obj)} = $value;
-}
-
-sub objsym {
- my $obj = shift;
- return $symtable{sprintf("sym_%x", $$obj)};
-}
-
-sub walkoptree_exec {
- my ($op, $method, $level) = @_;
- $level ||= 0;
- my ($sym, $ppname);
- my $prefix = " " x $level;
- for (; $$op; $op = $op->next) {
- $sym = objsym($op);
- if (defined($sym)) {
- print $prefix, "goto $sym\n";
- return;
- }
- savesym($op, sprintf("%s (0x%lx)", class($op), $$op));
- $op->$method($level);
- $ppname = $op->name;
- if ($ppname =~
- /^(or|and|mapwhile|grepwhile|entertry|range|cond_expr)$/)
- {
- print $prefix, uc($1), " => {\n";
- walkoptree_exec($op->other, $method, $level + 1);
- print $prefix, "}\n";
- } elsif ($ppname eq "match" || $ppname eq "subst") {
- my $pmreplstart = $op->pmreplstart;
- if ($$pmreplstart) {
- print $prefix, "PMREPLSTART => {\n";
- walkoptree_exec($pmreplstart, $method, $level + 1);
- print $prefix, "}\n";
- }
- } elsif ($ppname eq "substcont") {
- print $prefix, "SUBSTCONT => {\n";
- walkoptree_exec($op->other->pmreplstart, $method, $level + 1);
- print $prefix, "}\n";
- $op = $op->other;
- } elsif ($ppname eq "enterloop") {
- print $prefix, "REDO => {\n";
- walkoptree_exec($op->redoop, $method, $level + 1);
- print $prefix, "}\n", $prefix, "NEXT => {\n";
- walkoptree_exec($op->nextop, $method, $level + 1);
- print $prefix, "}\n", $prefix, "LAST => {\n";
- walkoptree_exec($op->lastop, $method, $level + 1);
- print $prefix, "}\n";
- } elsif ($ppname eq "subst") {
- my $replstart = $op->pmreplstart;
- if ($$replstart) {
- print $prefix, "SUBST => {\n";
- walkoptree_exec($replstart, $method, $level + 1);
- print $prefix, "}\n";
- }
- }
- }
-}
-
-sub walksymtable {
- my ($symref, $method, $recurse, $prefix) = @_;
- my $sym;
- my $ref;
- my $fullname;
- no strict 'refs';
- $prefix = '' unless defined $prefix;
- while (($sym, $ref) = each %$symref) {
- $fullname = "*main::".$prefix.$sym;
- if ($sym =~ /::$/) {
- $sym = $prefix . $sym;
- if ($sym ne "main::" && $sym ne "<none>::" && &$recurse($sym)) {
- walksymtable(\%$fullname, $method, $recurse, $sym);
- }
- } else {
- svref_2object(\*$fullname)->$method();
- }
- }
-}
-
-{
- package B::Section;
- my $output_fh;
- my %sections;
-
- sub new {
- my ($class, $section, $symtable, $default) = @_;
- $output_fh ||= FileHandle->new_tmpfile;
- my $obj = bless [-1, $section, $symtable, $default], $class;
- $sections{$section} = $obj;
- return $obj;
- }
-
- sub get {
- my ($class, $section) = @_;
- return $sections{$section};
- }
-
- sub add {
- my $section = shift;
- while (defined($_ = shift)) {
- print $output_fh "$section->[1]\t$_\n";
- $section->[0]++;
- }
- }
-
- sub index {
- my $section = shift;
- return $section->[0];
- }
-
- sub name {
- my $section = shift;
- return $section->[1];
- }
-
- sub symtable {
- my $section = shift;
- return $section->[2];
- }
-
- sub default {
- my $section = shift;
- return $section->[3];
- }
-
- sub output {
- my ($section, $fh, $format) = @_;
- my $name = $section->name;
- my $sym = $section->symtable || {};
- my $default = $section->default;
-
- seek($output_fh, 0, 0);
- while (<$output_fh>) {
- chomp;
- s/^(.*?)\t//;
- if ($1 eq $name) {
- s{(s\\_[0-9a-f]+)} {
- exists($sym->{$1}) ? $sym->{$1} : $default;
- }ge;
- printf $fh $format, $_;
- }
- }
- }
-}
-
-XSLoader::load 'B';
-
-1;
-
-__END__
-
-=head1 NAME
-
-B - The Perl Compiler
-
-=head1 SYNOPSIS
-
- use B;
-
-=head1 DESCRIPTION
-
-The C<B> module supplies classes which allow a Perl program to delve
-into its own innards. It is the module used to implement the
-"backends" of the Perl compiler. Usage of the compiler does not
-require knowledge of this module: see the F<O> module for the
-user-visible part. The C<B> module is of use to those who want to
-write new compiler backends. This documentation assumes that the
-reader knows a fair amount about perl's internals including such
-things as SVs, OPs and the internal symbol table and syntax tree
-of a program.
-
-=head1 OVERVIEW OF CLASSES
-
-The C structures used by Perl's internals to hold SV and OP
-information (PVIV, AV, HV, ..., OP, SVOP, UNOP, ...) are modelled on a
-class hierarchy and the C<B> module gives access to them via a true
-object hierarchy. Structure fields which point to other objects
-(whether types of SV or types of OP) are represented by the C<B>
-module as Perl objects of the appropriate class. The bulk of the C<B>
-module is the methods for accessing fields of these structures. Note
-that all access is read-only: you cannot modify the internals by
-using this module.
-
-=head2 SV-RELATED CLASSES
-
-B::IV, B::NV, B::RV, B::PV, B::PVIV, B::PVNV, B::PVMG, B::BM, B::PVLV,
-B::AV, B::HV, B::CV, B::GV, B::FM, B::IO. These classes correspond in
-the obvious way to the underlying C structures of similar names. The
-inheritance hierarchy mimics the underlying C "inheritance". Access
-methods correspond to the underlying C macros for field access,
-usually with the leading "class indication" prefix removed (Sv, Av,
-Hv, ...). The leading prefix is only left in cases where its removal
-would cause a clash in method name. For example, C<GvREFCNT> stays
-as-is since its abbreviation would clash with the "superclass" method
-C<REFCNT> (corresponding to the C function C<SvREFCNT>).
-
-=head2 B::SV METHODS
-
-=over 4
-
-=item REFCNT
-
-=item FLAGS
-
-=back
-
-=head2 B::IV METHODS
-
-=over 4
-
-=item IV
-
-Returns the value of the IV, I<interpreted as
-a signed integer>. This will be misleading
-if C<FLAGS & SVf_IVisUV>. Perhaps you want the
-C<int_value> method instead?
-
-=item IVX
-
-=item UVX
-
-=item int_value
-
-This method returns the value of the IV as an integer.
-It differs from C<IV> in that it returns the correct
-value regardless of whether it's stored signed or
-unsigned.
-
-=item needs64bits
-
-=item packiv
-
-=back
-
-=head2 B::NV METHODS
-
-=over 4
-
-=item NV
-
-=item NVX
-
-=back
-
-=head2 B::RV METHODS
-
-=over 4
-
-=item RV
-
-=back
-
-=head2 B::PV METHODS
-
-=over 4
-
-=item PV
-
-This method is the one you usually want. It constructs a
-string using the length and offset information in the struct:
-for ordinary scalars it will return the string that you'd see
-from Perl, even if it contains null characters.
-
-=item RV
-
-Same as B::RV::RV, except that it will die() if the PV isn't
-a reference.
-
-=item PVX
-
-This method is less often useful. It assumes that the string
-stored in the struct is null-terminated, and disregards the
-length information.
-
-It is the appropriate method to use if you need to get the name
-of a lexical variable from a padname array. Lexical variable names
-are always stored with a null terminator, and the length field
-(SvCUR) is overloaded for other purposes and can't be relied on here.
-
-=back
-
-=head2 B::PVMG METHODS
-
-=over 4
-
-=item MAGIC
-
-=item SvSTASH
-
-=back
-
-=head2 B::MAGIC METHODS
-
-=over 4
-
-=item MOREMAGIC
-
-=item precomp
-
-Only valid on r-magic, returns the string that generated the regexp.
-
-=item PRIVATE
-
-=item TYPE
-
-=item FLAGS
-
-=item OBJ
-
-Will die() if called on r-magic.
-
-=item PTR
-
-=item REGEX
-
-Only valid on r-magic, returns the integer value of the REGEX stored
-in the MAGIC.
-
-=back
-
-=head2 B::PVLV METHODS
-
-=over 4
-
-=item TARGOFF
-
-=item TARGLEN
-
-=item TYPE
-
-=item TARG
-
-=back
-
-=head2 B::BM METHODS
-
-=over 4
-
-=item USEFUL
-
-=item PREVIOUS
-
-=item RARE
-
-=item TABLE
-
-=back
-
-=head2 B::GV METHODS
-
-=over 4
-
-=item is_empty
-
-This method returns TRUE if the GP field of the GV is NULL.
-
-=item NAME
-
-=item SAFENAME
-
-This method returns the name of the glob, but if the first
-character of the name is a control character, then it converts
-it to ^X first, so that *^G would return "^G" rather than "\cG".
-
-It's useful if you want to print out the name of a variable.
-If you restrict yourself to globs which exist at compile-time
-then the result ought to be unambiguous, because code like
-C<${"^G"} = 1> is compiled as two ops - a constant string and
-a dereference (rv2gv) - so that the glob is created at runtime.
-
-If you're working with globs at runtime, and need to disambiguate
-*^G from *{"^G"}, then you should use the raw NAME method.
-
-=item STASH
-
-=item SV
-
-=item IO
-
-=item FORM
-
-=item AV
-
-=item HV
-
-=item EGV
-
-=item CV
-
-=item CVGEN
-
-=item LINE
-
-=item FILE
-
-=item FILEGV
-
-=item GvREFCNT
-
-=item FLAGS
-
-=back
-
-=head2 B::IO METHODS
-
-=over 4
-
-=item LINES
-
-=item PAGE
-
-=item PAGE_LEN
-
-=item LINES_LEFT
-
-=item TOP_NAME
-
-=item TOP_GV
-
-=item FMT_NAME
-
-=item FMT_GV
-
-=item BOTTOM_NAME
-
-=item BOTTOM_GV
-
-=item SUBPROCESS
-
-=item IoTYPE
-
-=item IoFLAGS
-
-=item IsSTD
-
-Takes one arguments ( 'stdin' | 'stdout' | 'stderr' ) and returns true
-if the IoIFP of the object is equal to the handle whose name was
-passed as argument ( i.e. $io->IsSTD('stderr') is true if
-IoIFP($io) == PerlIO_stdin() ).
-
-=back
-
-=head2 B::AV METHODS
-
-=over 4
-
-=item FILL
-
-=item MAX
-
-=item OFF
-
-=item ARRAY
-
-=item AvFLAGS
-
-=back
-
-=head2 B::CV METHODS
-
-=over 4
-
-=item STASH
-
-=item START
-
-=item ROOT
-
-=item GV
-
-=item FILE
-
-=item DEPTH
-
-=item PADLIST
-
-=item OUTSIDE
-
-=item XSUB
-
-=item XSUBANY
-
-For constant subroutines, returns the constant SV returned by the subroutine.
-
-=item CvFLAGS
-
-=item const_sv
-
-=back
-
-=head2 B::HV METHODS
-
-=over 4
-
-=item FILL
-
-=item MAX
-
-=item KEYS
-
-=item RITER
-
-=item NAME
-
-=item PMROOT
-
-=item ARRAY
-
-=back
-
-=head2 OP-RELATED CLASSES
-
-B::OP, B::UNOP, B::BINOP, B::LOGOP, B::LISTOP, B::PMOP,
-B::SVOP, B::PADOP, B::PVOP, B::CVOP, B::LOOP, B::COP.
-These classes correspond in
-the obvious way to the underlying C structures of similar names. The
-inheritance hierarchy mimics the underlying C "inheritance". Access
-methods correspond to the underlying C structre field names, with the
-leading "class indication" prefix removed (op_).
-
-=head2 B::OP METHODS
-
-=over 4
-
-=item next
-
-=item sibling
-
-=item name
-
-This returns the op name as a string (e.g. "add", "rv2av").
-
-=item ppaddr
-
-This returns the function name as a string (e.g. "PL_ppaddr[OP_ADD]",
-"PL_ppaddr[OP_RV2AV]").
-
-=item desc
-
-This returns the op description from the global C PL_op_desc array
-(e.g. "addition" "array deref").
-
-=item targ
-
-=item type
-
-=item seq
-
-=item flags
-
-=item private
-
-=back
-
-=head2 B::UNOP METHOD
-
-=over 4
-
-=item first
-
-=back
-
-=head2 B::BINOP METHOD
-
-=over 4
-
-=item last
-
-=back
-
-=head2 B::LOGOP METHOD
-
-=over 4
-
-=item other
-
-=back
-
-=head2 B::LISTOP METHOD
-
-=over 4
-
-=item children
-
-=back
-
-=head2 B::PMOP METHODS
-
-=over 4
-
-=item pmreplroot
-
-=item pmreplstart
-
-=item pmnext
-
-=item pmregexp
-
-=item pmflags
-
-=item pmdynflags
-
-=item pmpermflags
-
-=item precomp
-
-=item pmoffet
-
-Only when perl was compiled with ithreads.
-
-=back
-
-=head2 B::SVOP METHOD
-
-=over 4
-
-=item sv
-
-=item gv
-
-=back
-
-=head2 B::PADOP METHOD
-
-=over 4
-
-=item padix
-
-=back
-
-=head2 B::PVOP METHOD
-
-=over 4
-
-=item pv
-
-=back
-
-=head2 B::LOOP METHODS
-
-=over 4
-
-=item redoop
-
-=item nextop
-
-=item lastop
-
-=back
-
-=head2 B::COP METHODS
-
-=over 4
-
-=item label
-
-=item stash
-
-=item file
-
-=item cop_seq
-
-=item arybase
-
-=item line
-
-=back
-
-=head1 FUNCTIONS EXPORTED BY C<B>
-
-The C<B> module exports a variety of functions: some are simple
-utility functions, others provide a Perl program with a way to
-get an initial "handle" on an internal object.
-
-=over 4
-
-=item main_cv
-
-Return the (faked) CV corresponding to the main part of the Perl
-program.
-
-=item init_av
-
-Returns the AV object (i.e. in class B::AV) representing INIT blocks.
-
-=item begin_av
-
-Returns the AV object (i.e. in class B::AV) representing BEGIN blocks.
-
-=item end_av
-
-Returns the AV object (i.e. in class B::AV) representing END blocks.
-
-=item main_root
-
-Returns the root op (i.e. an object in the appropriate B::OP-derived
-class) of the main part of the Perl program.
-
-=item main_start
-
-Returns the starting op of the main part of the Perl program.
-
-=item comppadlist
-
-Returns the AV object (i.e. in class B::AV) of the global comppadlist.
-
-=item regex_padav
-
-Only when perl was compiled with ithreads.
-
-=item sv_undef
-
-Returns the SV object corresponding to the C variable C<sv_undef>.
-
-=item sv_yes
-
-Returns the SV object corresponding to the C variable C<sv_yes>.
-
-=item sv_no
-
-Returns the SV object corresponding to the C variable C<sv_no>.
-
-=item amagic_generation
-
-Returns the SV object corresponding to the C variable C<amagic_generation>.
-
-=item walkoptree(OP, METHOD)
-
-Does a tree-walk of the syntax tree based at OP and calls METHOD on
-each op it visits. Each node is visited before its children. If
-C<walkoptree_debug> (q.v.) has been called to turn debugging on then
-the method C<walkoptree_debug> is called on each op before METHOD is
-called.
-
-=item walkoptree_debug(DEBUG)
-
-Returns the current debugging flag for C<walkoptree>. If the optional
-DEBUG argument is non-zero, it sets the debugging flag to that. See
-the description of C<walkoptree> above for what the debugging flag
-does.
-
-=item walksymtable(SYMREF, METHOD, RECURSE, PREFIX)
-
-Walk the symbol table starting at SYMREF and call METHOD on each
-symbol (a B::GV object) visited. When the walk reaches package
-symbols (such as "Foo::") it invokes RECURSE, passing in the symbol
-name, and only recurses into the package if that sub returns true.
-
-PREFIX is the name of the SYMREF you're walking.
-
-For example...
-
- # Walk CGI's symbol table calling print_subs on each symbol.
- # Only recurse into CGI::Util::
- walksymtable(\%CGI::, 'print_subs', sub { $_[0] eq 'CGI::Util::' },
- 'CGI::');
-
-print_subs() is a B::GV method you have declared.
-
-
-=item svref_2object(SV)
-
-Takes any Perl variable and turns it into an object in the
-appropriate B::OP-derived or B::SV-derived class. Apart from functions
-such as C<main_root>, this is the primary way to get an initial
-"handle" on an internal perl data structure which can then be followed
-with the other access methods.
-
-=item ppname(OPNUM)
-
-Return the PP function name (e.g. "pp_add") of op number OPNUM.
-
-=item hash(STR)
-
-Returns a string in the form "0x..." representing the value of the
-internal hash function used by perl on string STR.
-
-=item cast_I32(I)
-
-Casts I to the internal I32 type used by that perl.
-
-
-=item minus_c
-
-Does the equivalent of the C<-c> command-line option. Obviously, this
-is only useful in a BEGIN block or else the flag is set too late.
-
-
-=item cstring(STR)
-
-Returns a double-quote-surrounded escaped version of STR which can
-be used as a string in C source code.
-
-=item perlstring(STR)
-
-Returns a double-quote-surrounded escaped version of STR which can
-be used as a string in Perl source code.
-
-=item class(OBJ)
-
-Returns the class of an object without the part of the classname
-preceding the first "::". This is used to turn "B::UNOP" into
-"UNOP" for example.
-
-=item threadsv_names
-
-In a perl compiled for threads, this returns a list of the special
-per-thread threadsv variables.
-
-=back
-
-=head1 AUTHOR
-
-Malcolm Beattie, C<mbeattie@sable.ox.ac.uk>
-
-=cut
diff --git a/Master/xemtex/perl/lib/B/Deparse.pm b/Master/xemtex/perl/lib/B/Deparse.pm
deleted file mode 100644
index 924f4366d66..00000000000
--- a/Master/xemtex/perl/lib/B/Deparse.pm
+++ /dev/null
@@ -1,4233 +0,0 @@
-# B::Deparse.pm
-# Copyright (c) 1998, 1999, 2000 Stephen McCamant. All rights reserved.
-# This module is free software; you can redistribute and/or modify
-# it under the same terms as Perl itself.
-
-# This is based on the module of the same name by Malcolm Beattie,
-# but essentially none of his code remains.
-
-package B::Deparse;
-use Carp;
-use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
- OPf_WANT OPf_WANT_VOID OPf_WANT_SCALAR OPf_WANT_LIST
- OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL OPf_MOD
- OPpLVAL_INTRO OPpOUR_INTRO OPpENTERSUB_AMPER OPpSLICE OPpCONST_BARE
- OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
- OPpCONST_ARYBASE OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER
- OPpSORT_REVERSE
- SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR
- CVf_METHOD CVf_LOCKED CVf_LVALUE
- PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE PMf_SKIPWHITE
- PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED);
-$VERSION = 0.63;
-use strict;
-use vars qw/$AUTOLOAD/;
-use warnings ();
-
-# Changes between 0.50 and 0.51:
-# - fixed nulled leave with live enter in sort { }
-# - fixed reference constants (\"str")
-# - handle empty programs gracefully
-# - handle infinte loops (for (;;) {}, while (1) {})
-# - differentiate between `for my $x ...' and `my $x; for $x ...'
-# - various minor cleanups
-# - moved globals into an object
-# - added `-u', like B::C
-# - package declarations using cop_stash
-# - subs, formats and code sorted by cop_seq
-# Changes between 0.51 and 0.52:
-# - added pp_threadsv (special variables under USE_5005THREADS)
-# - added documentation
-# Changes between 0.52 and 0.53:
-# - many changes adding precedence contexts and associativity
-# - added `-p' and `-s' output style options
-# - various other minor fixes
-# Changes between 0.53 and 0.54:
-# - added support for new `for (1..100)' optimization,
-# thanks to Gisle Aas
-# Changes between 0.54 and 0.55:
-# - added support for new qr// construct
-# - added support for new pp_regcreset OP
-# Changes between 0.55 and 0.56:
-# - tested on base/*.t, cmd/*.t, comp/*.t, io/*.t
-# - fixed $# on non-lexicals broken in last big rewrite
-# - added temporary fix for change in opcode of OP_STRINGIFY
-# - fixed problem in 0.54's for() patch in `for (@ary)'
-# - fixed precedence in conditional of ?:
-# - tweaked list paren elimination in `my($x) = @_'
-# - made continue-block detection trickier wrt. null ops
-# - fixed various prototype problems in pp_entersub
-# - added support for sub prototypes that never get GVs
-# - added unquoting for special filehandle first arg in truncate
-# - print doubled rv2gv (a bug) as `*{*GV}' instead of illegal `**GV'
-# - added semicolons at the ends of blocks
-# - added -l `#line' declaration option -- fixes cmd/subval.t 27,28
-# Changes between 0.56 and 0.561:
-# - fixed multiply-declared my var in pp_truncate (thanks to Sarathy)
-# - used new B.pm symbolic constants (done by Nick Ing-Simmons)
-# Changes between 0.561 and 0.57:
-# - stylistic changes to symbolic constant stuff
-# - handled scope in s///e replacement code
-# - added unquote option for expanding "" into concats, etc.
-# - split method and proto parts of pp_entersub into separate functions
-# - various minor cleanups
-# Changes after 0.57:
-# - added parens in \&foo (patch by Albert Dvornik)
-# Changes between 0.57 and 0.58:
-# - fixed `0' statements that weren't being printed
-# - added methods for use from other programs
-# (based on patches from James Duncan and Hugo van der Sanden)
-# - added -si and -sT to control indenting (also based on a patch from Hugo)
-# - added -sv to print something else instead of '???'
-# - preliminary version of utf8 tr/// handling
-# Changes after 0.58:
-# - uses of $op->ppaddr changed to new $op->name (done by Sarathy)
-# - added support for Hugo's new OP_SETSTATE (like nextstate)
-# Changes between 0.58 and 0.59
-# - added support for Chip's OP_METHOD_NAMED
-# - added support for Ilya's OPpTARGET_MY optimization
-# - elided arrows before `()' subscripts when possible
-# Changes between 0.59 and 0.60
-# - support for method attribues was added
-# - some warnings fixed
-# - separate recognition of constant subs
-# - rewrote continue block handling, now recoginizing for loops
-# - added more control of expanding control structures
-# Changes between 0.60 and 0.61 (mostly by Robin Houston)
-# - many bug-fixes
-# - support for pragmas and 'use'
-# - support for the little-used $[ variable
-# - support for __DATA__ sections
-# - UTF8 support
-# - BEGIN, CHECK, INIT and END blocks
-# - scoping of subroutine declarations fixed
-# - compile-time output from the input program can be suppressed, so that the
-# output is just the deparsed code. (a change to O.pm in fact)
-# - our() declarations
-# - *all* the known bugs are now listed in the BUGS section
-# - comprehensive test mechanism (TEST -deparse)
-# Changes between 0.62 and 0.63 (mostly by Rafael Garcia-Suarez)
-# - bug-fixes
-# - new switch -P
-# - support for command-line switches (-l, -0, etc.)
-
-# Todo:
-# (See also BUGS section at the end of this file)
-#
-# - finish tr/// changes
-# - add option for even more parens (generalize \&foo change)
-# - left/right context
-# - treat top-level block specially for incremental output
-# - copy comments (look at real text with $^P?)
-# - avoid semis in one-statement blocks
-# - associativity of &&=, ||=, ?:
-# - ',' => '=>' (auto-unquote?)
-# - break long lines ("\r" as discretionary break?)
-# - configurable syntax highlighting: ANSI color, HTML, TeX, etc.
-# - more style options: brace style, hex vs. octal, quotes, ...
-# - print big ints as hex/octal instead of decimal (heuristic?)
-# - handle `my $x if 0'?
-# - coordinate with Data::Dumper (both directions? see previous)
-# - version using op_next instead of op_first/sibling?
-# - avoid string copies (pass arrays, one big join?)
-# - here-docs?
-
-# Tests that will always fail:
-# (see t/TEST for the short list)
-
-# Object fields (were globals):
-#
-# avoid_local:
-# (local($a), local($b)) and local($a, $b) have the same internal
-# representation but the short form looks better. We notice we can
-# use a large-scale local when checking the list, but need to prevent
-# individual locals too. This hash holds the addresses of OPs that
-# have already had their local-ness accounted for. The same thing
-# is done with my().
-#
-# curcv:
-# CV for current sub (or main program) being deparsed
-#
-# curcvlex:
-# Cached hash of lexical variables for curcv: keys are names,
-# each value is an array of pairs, indicating the cop_seq of scopes
-# in which a var of that name is valid.
-#
-# curcop:
-# COP for statement being deparsed
-#
-# curstash:
-# name of the current package for deparsed code
-#
-# subs_todo:
-# array of [cop_seq, CV, is_format?] for subs and formats we still
-# want to deparse
-#
-# protos_todo:
-# as above, but [name, prototype] for subs that never got a GV
-#
-# subs_done, forms_done:
-# keys are addresses of GVs for subs and formats we've already
-# deparsed (or at least put into subs_todo)
-#
-# subs_declared
-# keys are names of subs for which we've printed declarations.
-# That means we can omit parentheses from the arguments.
-#
-# subs_deparsed
-# Keeps track of fully qualified names of all deparsed subs.
-#
-# parens: -p
-# linenums: -l
-# unquote: -q
-# cuddle: ` ' or `\n', depending on -sC
-# indent_size: -si
-# use_tabs: -sT
-# ex_const: -sv
-
-# A little explanation of how precedence contexts and associativity
-# work:
-#
-# deparse() calls each per-op subroutine with an argument $cx (short
-# for context, but not the same as the cx* in the perl core), which is
-# a number describing the op's parents in terms of precedence, whether
-# they're inside an expression or at statement level, etc. (see
-# chart below). When ops with children call deparse on them, they pass
-# along their precedence. Fractional values are used to implement
-# associativity (`($x + $y) + $z' => `$x + $y + $y') and related
-# parentheses hacks. The major disadvantage of this scheme is that
-# it doesn't know about right sides and left sides, so say if you
-# assign a listop to a variable, it can't tell it's allowed to leave
-# the parens off the listop.
-
-# Precedences:
-# 26 [TODO] inside interpolation context ("")
-# 25 left terms and list operators (leftward)
-# 24 left ->
-# 23 nonassoc ++ --
-# 22 right **
-# 21 right ! ~ \ and unary + and -
-# 20 left =~ !~
-# 19 left * / % x
-# 18 left + - .
-# 17 left << >>
-# 16 nonassoc named unary operators
-# 15 nonassoc < > <= >= lt gt le ge
-# 14 nonassoc == != <=> eq ne cmp
-# 13 left &
-# 12 left | ^
-# 11 left &&
-# 10 left ||
-# 9 nonassoc .. ...
-# 8 right ?:
-# 7 right = += -= *= etc.
-# 6 left , =>
-# 5 nonassoc list operators (rightward)
-# 4 right not
-# 3 left and
-# 2 left or xor
-# 1 statement modifiers
-# 0 statement level
-
-# Also, lineseq may pass a fourth parameter to the pp_ routines:
-# if present, the fourth parameter is passed on by deparse.
-#
-# If present and true, it means that the op exists directly as
-# part of a lineseq. Currently it's only used by scopeop to
-# decide whether its results need to be enclosed in a do {} block.
-
-# Nonprinting characters with special meaning:
-# \cS - steal parens (see maybe_parens_unop)
-# \n - newline and indent
-# \t - increase indent
-# \b - decrease indent (`outdent')
-# \f - flush left (no indent)
-# \cK - kill following semicolon, if any
-
-sub null {
- my $op = shift;
- return class($op) eq "NULL";
-}
-
-sub todo {
- my $self = shift;
- my($cv, $is_form) = @_;
- return unless ($cv->FILE eq $0 || exists $self->{files}{$cv->FILE});
- my $seq;
- if (!null($cv->START) and is_state($cv->START)) {
- $seq = $cv->START->cop_seq;
- } else {
- $seq = 0;
- }
- push @{$self->{'subs_todo'}}, [$seq, $cv, $is_form];
- unless ($is_form || class($cv->STASH) eq 'SPECIAL') {
- $self->{'subs_deparsed'}{$cv->STASH->NAME."::".$cv->GV->NAME} = 1;
- }
-}
-
-sub next_todo {
- my $self = shift;
- my $ent = shift @{$self->{'subs_todo'}};
- my $cv = $ent->[1];
- my $gv = $cv->GV;
- my $name = $self->gv_name($gv);
- if ($ent->[2]) {
- return "format $name =\n"
- . $self->deparse_format($ent->[1]). "\n";
- } else {
- $self->{'subs_declared'}{$name} = 1;
- if ($name eq "BEGIN") {
- my $use_dec = $self->begin_is_use($cv);
- if (defined ($use_dec)) {
- return () if 0 == length($use_dec);
- return $use_dec;
- }
- }
- my $l = '';
- if ($self->{'linenums'}) {
- my $line = $gv->LINE;
- my $file = $gv->FILE;
- $l = "\n\f#line $line \"$file\"\n";
- }
- return "${l}sub $name " . $self->deparse_sub($cv);
- }
-}
-
-# Return a "use" declaration for this BEGIN block, if appropriate
-sub begin_is_use {
- my ($self, $cv) = @_;
- my $root = $cv->ROOT;
- local @$self{qw'curcv curcvlex'} = ($cv);
-#require B::Debug;
-#B::walkoptree($cv->ROOT, "debug");
- my $lineseq = $root->first;
- return if $lineseq->name ne "lineseq";
-
- my $req_op = $lineseq->first->sibling;
- return if $req_op->name ne "require";
-
- my $module;
- if ($req_op->first->private & OPpCONST_BARE) {
- # Actually it should always be a bareword
- $module = $self->const_sv($req_op->first)->PV;
- $module =~ s[/][::]g;
- $module =~ s/.pm$//;
- }
- else {
- $module = const($self->const_sv($req_op->first));
- }
-
- my $version;
- my $version_op = $req_op->sibling;
- return if class($version_op) eq "NULL";
- if ($version_op->name eq "lineseq") {
- # We have a version parameter; skip nextstate & pushmark
- my $constop = $version_op->first->next->next;
-
- return unless $self->const_sv($constop)->PV eq $module;
- $constop = $constop->sibling;
- $version = $self->const_sv($constop)->int_value;
- $constop = $constop->sibling;
- return if $constop->name ne "method_named";
- return if $self->const_sv($constop)->PV ne "VERSION";
- }
-
- $lineseq = $version_op->sibling;
- return if $lineseq->name ne "lineseq";
- my $entersub = $lineseq->first->sibling;
- if ($entersub->name eq "stub") {
- return "use $module $version ();\n" if defined $version;
- return "use $module ();\n";
- }
- return if $entersub->name ne "entersub";
-
- # See if there are import arguments
- my $args = '';
-
- my $svop = $entersub->first->sibling; # Skip over pushmark
- return unless $self->const_sv($svop)->PV eq $module;
-
- # Pull out the arguments
- for ($svop=$svop->sibling; $svop->name ne "method_named";
- $svop = $svop->sibling) {
- $args .= ", " if length($args);
- $args .= $self->deparse($svop, 6);
- }
-
- my $use = 'use';
- my $method_named = $svop;
- return if $method_named->name ne "method_named";
- my $method_name = $self->const_sv($method_named)->PV;
-
- if ($method_name eq "unimport") {
- $use = 'no';
- }
-
- # Certain pragmas are dealt with using hint bits,
- # so we ignore them here
- if ($module eq 'strict' || $module eq 'integer'
- || $module eq 'bytes' || $module eq 'warnings') {
- return "";
- }
-
- if (defined $version && length $args) {
- return "$use $module $version ($args);\n";
- } elsif (defined $version) {
- return "$use $module $version;\n";
- } elsif (length $args) {
- return "$use $module ($args);\n";
- } else {
- return "$use $module;\n";
- }
-}
-
-sub stash_subs {
- my ($self, $pack) = @_;
- my (@ret, $stash);
- if (!defined $pack) {
- $pack = '';
- $stash = \%::;
- }
- else {
- $pack =~ s/(::)?$/::/;
- no strict 'refs';
- $stash = \%$pack;
- }
- my %stash = svref_2object($stash)->ARRAY;
- while (my ($key, $val) = each %stash) {
- next if $key eq 'main::'; # avoid infinite recursion
- my $class = class($val);
- if ($class eq "PV") {
- # Just a prototype. As an ugly but fairly effective way
- # to find out if it belongs here is to see if the AUTOLOAD
- # (if any) for the stash was defined in one of our files.
- my $A = $stash{"AUTOLOAD"};
- if (defined ($A) && class($A) eq "GV" && defined($A->CV)
- && class($A->CV) eq "CV") {
- my $AF = $A->FILE;
- next unless $AF eq $0 || exists $self->{'files'}{$AF};
- }
- push @{$self->{'protos_todo'}}, [$pack . $key, $val->PV];
- } elsif ($class eq "IV") {
- # Just a name. As above.
- my $A = $stash{"AUTOLOAD"};
- if (defined ($A) && class($A) eq "GV" && defined($A->CV)
- && class($A->CV) eq "CV") {
- my $AF = $A->FILE;
- next unless $AF eq $0 || exists $self->{'files'}{$AF};
- }
- push @{$self->{'protos_todo'}}, [$pack . $key, undef];
- } elsif ($class eq "GV") {
- if (class(my $cv = $val->CV) ne "SPECIAL") {
- next if $self->{'subs_done'}{$$val}++;
- next if $$val != ${$cv->GV}; # Ignore imposters
- $self->todo($cv, 0);
- }
- if (class(my $cv = $val->FORM) ne "SPECIAL") {
- next if $self->{'forms_done'}{$$val}++;
- next if $$val != ${$cv->GV}; # Ignore imposters
- $self->todo($cv, 1);
- }
- if (class($val->HV) ne "SPECIAL" && $key =~ /::$/) {
- $self->stash_subs($pack . $key);
- }
- }
- }
-}
-
-sub print_protos {
- my $self = shift;
- my $ar;
- my @ret;
- foreach $ar (@{$self->{'protos_todo'}}) {
- my $proto = (defined $ar->[1] ? " (". $ar->[1] . ")" : "");
- push @ret, "sub " . $ar->[0] . "$proto;\n";
- }
- delete $self->{'protos_todo'};
- return @ret;
-}
-
-sub style_opts {
- my $self = shift;
- my $opts = shift;
- my $opt;
- while (length($opt = substr($opts, 0, 1))) {
- if ($opt eq "C") {
- $self->{'cuddle'} = " ";
- $opts = substr($opts, 1);
- } elsif ($opt eq "i") {
- $opts =~ s/^i(\d+)//;
- $self->{'indent_size'} = $1;
- } elsif ($opt eq "T") {
- $self->{'use_tabs'} = 1;
- $opts = substr($opts, 1);
- } elsif ($opt eq "v") {
- $opts =~ s/^v([^.]*)(.|$)//;
- $self->{'ex_const'} = $1;
- }
- }
-}
-
-sub new {
- my $class = shift;
- my $self = bless {}, $class;
- $self->{'subs_todo'} = [];
- $self->{'files'} = {};
- $self->{'curstash'} = "main";
- $self->{'curcop'} = undef;
- $self->{'cuddle'} = "\n";
- $self->{'indent_size'} = 4;
- $self->{'use_tabs'} = 0;
- $self->{'expand'} = 0;
- $self->{'unquote'} = 0;
- $self->{'linenums'} = 0;
- $self->{'parens'} = 0;
- $self->{'ex_const'} = "'???'";
-
- $self->{'ambient_arybase'} = 0;
- $self->{'ambient_warnings'} = undef; # Assume no lexical warnings
- $self->{'ambient_hints'} = 0;
- $self->init();
-
- while (my $arg = shift @_) {
- if ($arg =~ /^-f(.*)/) {
- $self->{'files'}{$1} = 1;
- } elsif ($arg eq "-p") {
- $self->{'parens'} = 1;
- } elsif ($arg eq "-P") {
- $self->{'noproto'} = 1;
- } elsif ($arg eq "-l") {
- $self->{'linenums'} = 1;
- } elsif ($arg eq "-q") {
- $self->{'unquote'} = 1;
- } elsif (substr($arg, 0, 2) eq "-s") {
- $self->style_opts(substr $arg, 2);
- } elsif ($arg =~ /^-x(\d)$/) {
- $self->{'expand'} = $1;
- }
- }
- return $self;
-}
-
-{
- # Mask out the bits that L<warnings::register> uses
- my $WARN_MASK;
- BEGIN {
- $WARN_MASK = $warnings::Bits{all} | $warnings::DeadBits{all};
- }
- sub WARN_MASK () {
- return $WARN_MASK;
- }
-}
-
-# Initialise the contextual information, either from
-# defaults provided with the ambient_pragmas method,
-# or from perl's own defaults otherwise.
-sub init {
- my $self = shift;
-
- $self->{'arybase'} = $self->{'ambient_arybase'};
- $self->{'warnings'} = defined ($self->{'ambient_warnings'})
- ? $self->{'ambient_warnings'} & WARN_MASK
- : undef;
- $self->{'hints'} = $self->{'ambient_hints'} & 0xFF;
-
- # also a convenient place to clear out subs_declared
- delete $self->{'subs_declared'};
-}
-
-sub compile {
- my(@args) = @_;
- return sub {
- my $self = B::Deparse->new(@args);
- # First deparse command-line args
- if (defined $^I) { # deparse -i
- print q(BEGIN { $^I = ).perlstring($^I).qq(; }\n);
- }
- if ($^W) { # deparse -w
- print qq(BEGIN { \$^W = $^W; }\n);
- }
- if ($/ ne "\n" or defined $O::savebackslash) { # deparse -l and -0
- my $fs = perlstring($/) || 'undef';
- my $bs = perlstring($O::savebackslash) || 'undef';
- print qq(BEGIN { \$/ = $fs; \$\\ = $bs; }\n);
- }
- my @BEGINs = B::begin_av->isa("B::AV") ? B::begin_av->ARRAY : ();
- my @INITs = B::init_av->isa("B::AV") ? B::init_av->ARRAY : ();
- my @ENDs = B::end_av->isa("B::AV") ? B::end_av->ARRAY : ();
- for my $block (@BEGINs, @INITs, @ENDs) {
- $self->todo($block, 0);
- }
- $self->stash_subs();
- $self->{'curcv'} = main_cv;
- $self->{'curcvlex'} = undef;
- print $self->print_protos;
- @{$self->{'subs_todo'}} =
- sort {$a->[0] <=> $b->[0]} @{$self->{'subs_todo'}};
- print $self->indent($self->deparse(main_root, 0)), "\n"
- unless null main_root;
- my @text;
- while (scalar(@{$self->{'subs_todo'}})) {
- push @text, $self->next_todo;
- }
- print $self->indent(join("", @text)), "\n" if @text;
-
- # Print __DATA__ section, if necessary
- no strict 'refs';
- my $laststash = defined $self->{'curcop'}
- ? $self->{'curcop'}->stash->NAME : $self->{'curstash'};
- if (defined *{$laststash."::DATA"}{IO}) {
- print "__DATA__\n";
- print readline(*{$laststash."::DATA"});
- }
- }
-}
-
-sub coderef2text {
- my $self = shift;
- my $sub = shift;
- croak "Usage: ->coderef2text(CODEREF)" unless UNIVERSAL::isa($sub, "CODE");
-
- $self->init();
- return $self->indent($self->deparse_sub(svref_2object($sub)));
-}
-
-sub ambient_pragmas {
- my $self = shift;
- my ($arybase, $hint_bits, $warning_bits) = (0, 0);
-
- while (@_ > 1) {
- my $name = shift();
- my $val = shift();
-
- if ($name eq 'strict') {
- require strict;
-
- if ($val eq 'none') {
- $hint_bits &= ~strict::bits(qw/refs subs vars/);
- next();
- }
-
- my @names;
- if ($val eq "all") {
- @names = qw/refs subs vars/;
- }
- elsif (ref $val) {
- @names = @$val;
- }
- else {
- @names = split' ', $val;
- }
- $hint_bits |= strict::bits(@names);
- }
-
- elsif ($name eq '$[') {
- $arybase = $val;
- }
-
- elsif ($name eq 'integer'
- || $name eq 'bytes'
- || $name eq 'utf8') {
- require "$name.pm";
- if ($val) {
- $hint_bits |= ${$::{"${name}::"}{"hint_bits"}};
- }
- else {
- $hint_bits &= ~${$::{"${name}::"}{"hint_bits"}};
- }
- }
-
- elsif ($name eq 're') {
- require re;
- if ($val eq 'none') {
- $hint_bits &= ~re::bits(qw/taint eval/);
- next();
- }
-
- my @names;
- if ($val eq 'all') {
- @names = qw/taint eval/;
- }
- elsif (ref $val) {
- @names = @$val;
- }
- else {
- @names = split' ',$val;
- }
- $hint_bits |= re::bits(@names);
- }
-
- elsif ($name eq 'warnings') {
- if ($val eq 'none') {
- $warning_bits = $warnings::NONE;
- next();
- }
-
- my @names;
- if (ref $val) {
- @names = @$val;
- }
- else {
- @names = split/\s+/, $val;
- }
-
- $warning_bits = $warnings::NONE if !defined ($warning_bits);
- $warning_bits |= warnings::bits(@names);
- }
-
- elsif ($name eq 'warning_bits') {
- $warning_bits = $val;
- }
-
- elsif ($name eq 'hint_bits') {
- $hint_bits = $val;
- }
-
- else {
- croak "Unknown pragma type: $name";
- }
- }
- if (@_) {
- croak "The ambient_pragmas method expects an even number of args";
- }
-
- $self->{'ambient_arybase'} = $arybase;
- $self->{'ambient_warnings'} = $warning_bits;
- $self->{'ambient_hints'} = $hint_bits;
-}
-
-sub deparse {
- my $self = shift;
- my($op, $cx, $flags) = @_;
-
- Carp::confess("Null op in deparse") if !defined($op)
- || class($op) eq "NULL";
- my $meth = "pp_" . $op->name;
- if (is_scope($op)) {
- return $self->$meth($op, $cx, $flags);
- }
- return $self->$meth($op, $cx);
-}
-
-sub indent {
- my $self = shift;
- my $txt = shift;
- my @lines = split(/\n/, $txt);
- my $leader = "";
- my $level = 0;
- my $line;
- for $line (@lines) {
- my $cmd = substr($line, 0, 1);
- if ($cmd eq "\t" or $cmd eq "\b") {
- $level += ($cmd eq "\t" ? 1 : -1) * $self->{'indent_size'};
- if ($self->{'use_tabs'}) {
- $leader = "\t" x ($level / 8) . " " x ($level % 8);
- } else {
- $leader = " " x $level;
- }
- $line = substr($line, 1);
- }
- if (substr($line, 0, 1) eq "\f") {
- $line = substr($line, 1); # no indent
- } else {
- $line = $leader . $line;
- }
- $line =~ s/\cK;?//g;
- }
- return join("\n", @lines);
-}
-
-sub deparse_sub {
- my $self = shift;
- my $cv = shift;
- my $proto = "";
-Carp::confess("NULL in deparse_sub") if !defined($cv) || $cv->isa("B::NULL");
-Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
- local $self->{'curcop'} = $self->{'curcop'};
- if ($cv->FLAGS & SVf_POK) {
- $proto = "(". $cv->PV . ") ";
- }
- if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE)) {
- $proto .= ": ";
- $proto .= "lvalue " if $cv->CvFLAGS & CVf_LVALUE;
- $proto .= "locked " if $cv->CvFLAGS & CVf_LOCKED;
- $proto .= "method " if $cv->CvFLAGS & CVf_METHOD;
- }
-
- local($self->{'curcv'}) = $cv;
- local($self->{'curcvlex'});
- local(@$self{qw'curstash warnings hints'})
- = @$self{qw'curstash warnings hints'};
- my $body;
- if (not null $cv->ROOT) {
- my $lineseq = $cv->ROOT->first;
- if ($lineseq->name eq "lineseq") {
- my @ops;
- for(my$o=$lineseq->first; $$o; $o=$o->sibling) {
- push @ops, $o;
- }
- $body = $self->lineseq(undef, @ops).";";
- my $scope_en = $self->find_scope_en($lineseq);
- if (defined $scope_en) {
- my $subs = join"", $self->seq_subs($scope_en);
- $body .= ";\n$subs" if length($subs);
- }
- }
- else {
- $body = $self->deparse($cv->ROOT->first, 0);
- }
- }
- else {
- my $sv = $cv->const_sv;
- if ($$sv) {
- # uh-oh. inlinable sub... format it differently
- return $proto . "{ " . const($sv) . " }\n";
- } else { # XSUB? (or just a declaration)
- return "$proto;\n";
- }
- }
- return $proto ."{\n\t$body\n\b}" ."\n";
-}
-
-sub deparse_format {
- my $self = shift;
- my $form = shift;
- my @text;
- local($self->{'curcv'}) = $form;
- local($self->{'curcvlex'});
- local($self->{'in_format'}) = 1;
- local(@$self{qw'curstash warnings hints'})
- = @$self{qw'curstash warnings hints'};
- my $op = $form->ROOT;
- my $kid;
- return "\f." if $op->first->name eq 'stub'
- || $op->first->name eq 'nextstate';
- $op = $op->first->first; # skip leavewrite, lineseq
- while (not null $op) {
- $op = $op->sibling; # skip nextstate
- my @exprs;
- $kid = $op->first->sibling; # skip pushmark
- push @text, "\f".$self->const_sv($kid)->PV;
- $kid = $kid->sibling;
- for (; not null $kid; $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 0);
- }
- push @text, "\f".join(", ", @exprs)."\n" if @exprs;
- $op = $op->sibling;
- }
- return join("", @text) . "\f.";
-}
-
-sub is_scope {
- my $op = shift;
- return $op->name eq "leave" || $op->name eq "scope"
- || $op->name eq "lineseq"
- || ($op->name eq "null" && class($op) eq "UNOP"
- && (is_scope($op->first) || $op->first->name eq "enter"));
-}
-
-sub is_state {
- my $name = $_[0]->name;
- return $name eq "nextstate" || $name eq "dbstate" || $name eq "setstate";
-}
-
-sub is_miniwhile { # check for one-line loop (`foo() while $y--')
- my $op = shift;
- return (!null($op) and null($op->sibling)
- and $op->name eq "null" and class($op) eq "UNOP"
- and (($op->first->name =~ /^(and|or)$/
- and $op->first->first->sibling->name eq "lineseq")
- or ($op->first->name eq "lineseq"
- and not null $op->first->first->sibling
- and $op->first->first->sibling->name eq "unstack")
- ));
-}
-
-sub is_scalar {
- my $op = shift;
- return ($op->name eq "rv2sv" or
- $op->name eq "padsv" or
- $op->name eq "gv" or # only in array/hash constructs
- $op->flags & OPf_KIDS && !null($op->first)
- && $op->first->name eq "gvsv");
-}
-
-sub maybe_parens {
- my $self = shift;
- my($text, $cx, $prec) = @_;
- if ($prec < $cx # unary ops nest just fine
- or $prec == $cx and $cx != 4 and $cx != 16 and $cx != 21
- or $self->{'parens'})
- {
- $text = "($text)";
- # In a unop, let parent reuse our parens; see maybe_parens_unop
- $text = "\cS" . $text if $cx == 16;
- return $text;
- } else {
- return $text;
- }
-}
-
-# same as above, but get around the `if it looks like a function' rule
-sub maybe_parens_unop {
- my $self = shift;
- my($name, $kid, $cx) = @_;
- if ($cx > 16 or $self->{'parens'}) {
- $kid = $self->deparse($kid, 1);
- if ($name eq "umask" && $kid =~ /^\d+$/) {
- $kid = sprintf("%#o", $kid);
- }
- return "$name($kid)";
- } else {
- $kid = $self->deparse($kid, 16);
- if ($name eq "umask" && $kid =~ /^\d+$/) {
- $kid = sprintf("%#o", $kid);
- }
- if (substr($kid, 0, 1) eq "\cS") {
- # use kid's parens
- return $name . substr($kid, 1);
- } elsif (substr($kid, 0, 1) eq "(") {
- # avoid looks-like-a-function trap with extra parens
- # (`+' can lead to ambiguities)
- return "$name(" . $kid . ")";
- } else {
- return "$name $kid";
- }
- }
-}
-
-sub maybe_parens_func {
- my $self = shift;
- my($func, $text, $cx, $prec) = @_;
- if ($prec <= $cx or substr($text, 0, 1) eq "(" or $self->{'parens'}) {
- return "$func($text)";
- } else {
- return "$func $text";
- }
-}
-
-sub maybe_local {
- my $self = shift;
- my($op, $cx, $text) = @_;
- my $our_intro = ($op->name =~ /^(gv|rv2)[ash]v$/) ? OPpOUR_INTRO : 0;
- if ($op->private & (OPpLVAL_INTRO|$our_intro)
- and not $self->{'avoid_local'}{$$op}) {
- my $our_local = ($op->private & OPpLVAL_INTRO) ? "local" : "our";
- if (want_scalar($op)) {
- return "$our_local $text";
- } else {
- return $self->maybe_parens_func("$our_local", $text, $cx, 16);
- }
- } else {
- return $text;
- }
-}
-
-sub maybe_targmy {
- my $self = shift;
- my($op, $cx, $func, @args) = @_;
- if ($op->private & OPpTARGET_MY) {
- my $var = $self->padname($op->targ);
- my $val = $func->($self, $op, 7, @args);
- return $self->maybe_parens("$var = $val", $cx, 7);
- } else {
- return $func->($self, $op, $cx, @args);
- }
-}
-
-sub padname_sv {
- my $self = shift;
- my $targ = shift;
- return (($self->{'curcv'}->PADLIST->ARRAY)[0]->ARRAY)[$targ];
-}
-
-sub maybe_my {
- my $self = shift;
- my($op, $cx, $text) = @_;
- if ($op->private & OPpLVAL_INTRO and not $self->{'avoid_local'}{$$op}) {
- if (want_scalar($op)) {
- return "my $text";
- } else {
- return $self->maybe_parens_func("my", $text, $cx, 16);
- }
- } else {
- return $text;
- }
-}
-
-# The following OPs don't have functions:
-
-# pp_padany -- does not exist after parsing
-
-sub AUTOLOAD {
- if ($AUTOLOAD =~ s/^.*::pp_//) {
- warn "unexpected OP_".uc $AUTOLOAD;
- return "XXX";
- } else {
- die "Undefined subroutine $AUTOLOAD called";
- }
-}
-
-sub DESTROY {} # Do not AUTOLOAD
-
-# $root should be the op which represents the root of whatever
-# we're sequencing here. If it's undefined, then we don't append
-# any subroutine declarations to the deparsed ops, otherwise we
-# append appropriate declarations.
-sub lineseq {
- my($self, $root, @ops) = @_;
- my($expr, @exprs);
-
- my $out_cop = $self->{'curcop'};
- my $out_seq = defined($out_cop) ? $out_cop->cop_seq : undef;
- my $limit_seq;
- if (defined $root) {
- $limit_seq = $out_seq;
- my $nseq = $self->find_scope_st($root->sibling) if ${$root->sibling};
- $limit_seq = $nseq if !defined($limit_seq)
- or defined($nseq) && $nseq < $limit_seq;
- }
- $limit_seq = $self->{'limit_seq'}
- if defined($self->{'limit_seq'})
- && (!defined($limit_seq) || $self->{'limit_seq'} < $limit_seq);
- local $self->{'limit_seq'} = $limit_seq;
- for (my $i = 0; $i < @ops; $i++) {
- $expr = "";
- if (is_state $ops[$i]) {
- $expr = $self->deparse($ops[$i], 0);
- $i++;
- if ($i > $#ops) {
- push @exprs, $expr;
- last;
- }
- }
- if (!is_state $ops[$i] and (my $ls = $ops[$i+1]) and
- !null($ops[$i+1]) and $ops[$i+1]->name eq "lineseq")
- {
- if ($ls->first && !null($ls->first) && is_state($ls->first)
- && (my $sib = $ls->first->sibling)) {
- if (!null($sib) && $sib->name eq "leaveloop") {
- push @exprs, $expr . $self->for_loop($ops[$i], 0);
- $i++;
- next;
- }
- }
- }
- $expr .= $self->deparse($ops[$i], 0, (@ops != 1));
- $expr =~ s/;\n?\z//;
- push @exprs, $expr;
- }
- my $body = join(";\n", grep {length} @exprs);
- my $subs = "";
- if (defined $root && defined $limit_seq && !$self->{'in_format'}) {
- $subs = join "\n", $self->seq_subs($limit_seq);
- }
- return join(";\n", grep {length} $body, $subs);
-}
-
-sub scopeop {
- my($real_block, $self, $op, $cx, $flags) = @_;
- my $kid;
- my @kids;
-
- local(@$self{qw'curstash warnings hints'})
- = @$self{qw'curstash warnings hints'} if $real_block;
- if ($real_block) {
- $kid = $op->first->sibling; # skip enter
- if (is_miniwhile($kid)) {
- my $top = $kid->first;
- my $name = $top->name;
- if ($name eq "and") {
- $name = "while";
- } elsif ($name eq "or") {
- $name = "until";
- } else { # no conditional -> while 1 or until 0
- return $self->deparse($top->first, 1) . " while 1";
- }
- my $cond = $top->first;
- my $body = $cond->sibling->first; # skip lineseq
- $cond = $self->deparse($cond, 1);
- $body = $self->deparse($body, 1);
- return "$body $name $cond";
- }
- } else {
- $kid = $op->first;
- }
- for (; !null($kid); $kid = $kid->sibling) {
- push @kids, $kid;
- }
- if ($flags || $cx > 0) { # inside an expression, (a do {} while for lineseq)
- return "do {\n\t" . $self->lineseq($op, @kids) . "\n\b}";
- } else {
- my $lineseq = $self->lineseq($op, @kids);
- return (length ($lineseq) ? "$lineseq;" : "");
- }
-}
-
-sub pp_scope { scopeop(0, @_); }
-sub pp_lineseq { scopeop(0, @_); }
-sub pp_leave { scopeop(1, @_); }
-
-# The BEGIN {} is used here because otherwise this code isn't executed
-# when you run B::Deparse on itself.
-my %globalnames;
-BEGIN { map($globalnames{$_}++, "SIG", "STDIN", "STDOUT", "STDERR", "INC",
- "ENV", "ARGV", "ARGVOUT", "_"); }
-
-sub gv_name {
- my $self = shift;
- my $gv = shift;
-Carp::confess() if $gv->isa("B::CV");
- my $stash = $gv->STASH->NAME;
- my $name = $gv->SAFENAME;
- if (($stash eq 'main' && $globalnames{$name})
- or ($stash eq $self->{'curstash'} && !$globalnames{$name})
- or $name =~ /^[^A-Za-z_]/)
- {
- $stash = "";
- } else {
- $stash = $stash . "::";
- }
- if ($name =~ /^(\^..|{)/) {
- $name = "{$name}"; # ${^WARNING_BITS}, etc and ${
- }
- return $stash . $name;
-}
-
-# Return the name to use for a stash variable.
-# If a lexical with the same name is in scope, it may need to be
-# fully-qualified.
-sub stash_variable {
- my ($self, $prefix, $name) = @_;
-
- return "$prefix$name" if $name =~ /::/;
-
- unless ($prefix eq '$' || $prefix eq '@' ||
- $prefix eq '%' || $prefix eq '$#') {
- return "$prefix$name";
- }
-
- my $v = ($prefix eq '$#' ? '@' : $prefix) . $name;
- return $prefix .$self->{'curstash'}.'::'. $name if $self->lex_in_scope($v);
- return "$prefix$name";
-}
-
-sub lex_in_scope {
- my ($self, $name) = @_;
- $self->populate_curcvlex() if !defined $self->{'curcvlex'};
-
- return 0 if !defined($self->{'curcop'});
- my $seq = $self->{'curcop'}->cop_seq;
- return 0 if !exists $self->{'curcvlex'}{$name};
- for my $a (@{$self->{'curcvlex'}{$name}}) {
- my ($st, $en) = @$a;
- return 1 if $seq > $st && $seq <= $en;
- }
- return 0;
-}
-
-sub populate_curcvlex {
- my $self = shift;
- for (my $cv = $self->{'curcv'}; class($cv) eq "CV"; $cv = $cv->OUTSIDE) {
- my @padlist = $cv->PADLIST->ARRAY;
- my @ns = $padlist[0]->ARRAY;
-
- for (my $i=0; $i<@ns; ++$i) {
- next if class($ns[$i]) eq "SPECIAL";
- next if $ns[$i]->FLAGS & SVpad_OUR; # Skip "our" vars
- if (class($ns[$i]) eq "PV") {
- # Probably that pesky lexical @_
- next;
- }
- my $name = $ns[$i]->PVX;
- my $seq_st = $ns[$i]->NVX;
- my $seq_en = int($ns[$i]->IVX);
-
- push @{$self->{'curcvlex'}{$name}}, [$seq_st, $seq_en];
- }
- }
-}
-
-sub find_scope_st { ((find_scope(@_))[0]); }
-sub find_scope_en { ((find_scope(@_))[1]); }
-
-# Recurses down the tree, looking for pad variable introductions and COPs
-sub find_scope {
- my ($self, $op, $scope_st, $scope_en) = @_;
- carp("Undefined op in find_scope") if !defined $op;
- return ($scope_st, $scope_en) unless $op->flags & OPf_KIDS;
-
- for (my $o=$op->first; $$o; $o=$o->sibling) {
- if ($o->name =~ /^pad.v$/ && $o->private & OPpLVAL_INTRO) {
- my $s = int($self->padname_sv($o->targ)->NVX);
- my $e = $self->padname_sv($o->targ)->IVX;
- $scope_st = $s if !defined($scope_st) || $s < $scope_st;
- $scope_en = $e if !defined($scope_en) || $e > $scope_en;
- }
- elsif (is_state($o)) {
- my $c = $o->cop_seq;
- $scope_st = $c if !defined($scope_st) || $c < $scope_st;
- $scope_en = $c if !defined($scope_en) || $c > $scope_en;
- }
- elsif ($o->flags & OPf_KIDS) {
- ($scope_st, $scope_en) =
- $self->find_scope($o, $scope_st, $scope_en)
- }
- }
-
- return ($scope_st, $scope_en);
-}
-
-# Returns a list of subs which should be inserted before the COP
-sub cop_subs {
- my ($self, $op, $out_seq) = @_;
- my $seq = $op->cop_seq;
- # If we have nephews, then our sequence number indicates
- # the cop_seq of the end of some sort of scope.
- if (class($op->sibling) ne "NULL" && $op->sibling->flags & OPf_KIDS
- and my $nseq = $self->find_scope_st($op->sibling) ) {
- $seq = $nseq;
- }
- $seq = $out_seq if defined($out_seq) && $out_seq < $seq;
- return $self->seq_subs($seq);
-}
-
-sub seq_subs {
- my ($self, $seq) = @_;
- my @text;
-#push @text, "# ($seq)\n";
-
- return "" if !defined $seq;
- while (scalar(@{$self->{'subs_todo'}})
- and $seq > $self->{'subs_todo'}[0][0]) {
- push @text, $self->next_todo;
- }
- return @text;
-}
-
-# Notice how subs and formats are inserted between statements here;
-# also $[ assignments and pragmas.
-sub pp_nextstate {
- my $self = shift;
- my($op, $cx) = @_;
- $self->{'curcop'} = $op;
- my @text;
- push @text, $self->cop_subs($op);
- push @text, $op->label . ": " if $op->label;
- my $stash = $op->stashpv;
- if ($stash ne $self->{'curstash'}) {
- push @text, "package $stash;\n";
- $self->{'curstash'} = $stash;
- }
- if ($self->{'linenums'}) {
- push @text, "\f#line " . $op->line .
- ' "' . $op->file, qq'"\n';
- }
-
- if ($self->{'arybase'} != $op->arybase) {
- push @text, '$[ = '. $op->arybase .";\n";
- $self->{'arybase'} = $op->arybase;
- }
-
- my $warnings = $op->warnings;
- my $warning_bits;
- if ($warnings->isa("B::SPECIAL") && $$warnings == 4) {
- $warning_bits = $warnings::Bits{"all"} & WARN_MASK;
- }
- elsif ($warnings->isa("B::SPECIAL") && $$warnings == 5) {
- $warning_bits = $warnings::NONE;
- }
- elsif ($warnings->isa("B::SPECIAL")) {
- $warning_bits = undef;
- }
- else {
- $warning_bits = $warnings->PV & WARN_MASK;
- }
-
- if (defined ($warning_bits) and
- !defined($self->{warnings}) || $self->{'warnings'} ne $warning_bits) {
- push @text, declare_warnings($self->{'warnings'}, $warning_bits);
- $self->{'warnings'} = $warning_bits;
- }
-
- if ($self->{'hints'} != $op->private) {
- push @text, declare_hints($self->{'hints'}, $op->private);
- $self->{'hints'} = $op->private;
- }
-
- return join("", @text);
-}
-
-sub declare_warnings {
- my ($from, $to) = @_;
- if (($to & WARN_MASK) eq warnings::bits("all")) {
- return "use warnings;\n";
- }
- elsif (($to & WARN_MASK) eq "\0"x length($to)) {
- return "no warnings;\n";
- }
- return "BEGIN {\${^WARNING_BITS} = ".perlstring($to)."}\n";
-}
-
-sub declare_hints {
- my ($from, $to) = @_;
- my $use = $to & ~$from;
- my $no = $from & ~$to;
- my $decls = "";
- for my $pragma (hint_pragmas($use)) {
- $decls .= "use $pragma;\n";
- }
- for my $pragma (hint_pragmas($no)) {
- $decls .= "no $pragma;\n";
- }
- return $decls;
-}
-
-sub hint_pragmas {
- my ($bits) = @_;
- my @pragmas;
- push @pragmas, "integer" if $bits & 0x1;
- push @pragmas, "strict 'refs'" if $bits & 0x2;
- push @pragmas, "bytes" if $bits & 0x8;
- return @pragmas;
-}
-
-sub pp_dbstate { pp_nextstate(@_) }
-sub pp_setstate { pp_nextstate(@_) }
-
-sub pp_unstack { return "" } # see also leaveloop
-
-sub baseop {
- my $self = shift;
- my($op, $cx, $name) = @_;
- return $name;
-}
-
-sub pp_stub {
- my $self = shift;
- my($op, $cx, $name) = @_;
- if ($cx) {
- return "()";
- }
- else {
- return "();";
- }
-}
-sub pp_wantarray { baseop(@_, "wantarray") }
-sub pp_fork { baseop(@_, "fork") }
-sub pp_wait { maybe_targmy(@_, \&baseop, "wait") }
-sub pp_getppid { maybe_targmy(@_, \&baseop, "getppid") }
-sub pp_time { maybe_targmy(@_, \&baseop, "time") }
-sub pp_tms { baseop(@_, "times") }
-sub pp_ghostent { baseop(@_, "gethostent") }
-sub pp_gnetent { baseop(@_, "getnetent") }
-sub pp_gprotoent { baseop(@_, "getprotoent") }
-sub pp_gservent { baseop(@_, "getservent") }
-sub pp_ehostent { baseop(@_, "endhostent") }
-sub pp_enetent { baseop(@_, "endnetent") }
-sub pp_eprotoent { baseop(@_, "endprotoent") }
-sub pp_eservent { baseop(@_, "endservent") }
-sub pp_gpwent { baseop(@_, "getpwent") }
-sub pp_spwent { baseop(@_, "setpwent") }
-sub pp_epwent { baseop(@_, "endpwent") }
-sub pp_ggrent { baseop(@_, "getgrent") }
-sub pp_sgrent { baseop(@_, "setgrent") }
-sub pp_egrent { baseop(@_, "endgrent") }
-sub pp_getlogin { baseop(@_, "getlogin") }
-
-sub POSTFIX () { 1 }
-
-# I couldn't think of a good short name, but this is the category of
-# symbolic unary operators with interesting precedence
-
-sub pfixop {
- my $self = shift;
- my($op, $cx, $name, $prec, $flags) = (@_, 0);
- my $kid = $op->first;
- $kid = $self->deparse($kid, $prec);
- return $self->maybe_parens(($flags & POSTFIX) ? "$kid$name" : "$name$kid",
- $cx, $prec);
-}
-
-sub pp_preinc { pfixop(@_, "++", 23) }
-sub pp_predec { pfixop(@_, "--", 23) }
-sub pp_postinc { maybe_targmy(@_, \&pfixop, "++", 23, POSTFIX) }
-sub pp_postdec { maybe_targmy(@_, \&pfixop, "--", 23, POSTFIX) }
-sub pp_i_preinc { pfixop(@_, "++", 23) }
-sub pp_i_predec { pfixop(@_, "--", 23) }
-sub pp_i_postinc { maybe_targmy(@_, \&pfixop, "++", 23, POSTFIX) }
-sub pp_i_postdec { maybe_targmy(@_, \&pfixop, "--", 23, POSTFIX) }
-sub pp_complement { maybe_targmy(@_, \&pfixop, "~", 21) }
-
-sub pp_negate { maybe_targmy(@_, \&real_negate) }
-sub real_negate {
- my $self = shift;
- my($op, $cx) = @_;
- if ($op->first->name =~ /^(i_)?negate$/) {
- # avoid --$x
- $self->pfixop($op, $cx, "-", 21.5);
- } else {
- $self->pfixop($op, $cx, "-", 21);
- }
-}
-sub pp_i_negate { pp_negate(@_) }
-
-sub pp_not {
- my $self = shift;
- my($op, $cx) = @_;
- if ($cx <= 4) {
- $self->pfixop($op, $cx, "not ", 4);
- } else {
- $self->pfixop($op, $cx, "!", 21);
- }
-}
-
-sub unop {
- my $self = shift;
- my($op, $cx, $name) = @_;
- my $kid;
- if ($op->flags & OPf_KIDS) {
- $kid = $op->first;
- if (defined prototype("CORE::$name")
- && prototype("CORE::$name") =~ /^;?\*/
- && $kid->name eq "rv2gv") {
- $kid = $kid->first;
- }
-
- return $self->maybe_parens_unop($name, $kid, $cx);
- } else {
- return $name . ($op->flags & OPf_SPECIAL ? "()" : "");
- }
-}
-
-sub pp_chop { maybe_targmy(@_, \&unop, "chop") }
-sub pp_chomp { maybe_targmy(@_, \&unop, "chomp") }
-sub pp_schop { maybe_targmy(@_, \&unop, "chop") }
-sub pp_schomp { maybe_targmy(@_, \&unop, "chomp") }
-sub pp_defined { unop(@_, "defined") }
-sub pp_undef { unop(@_, "undef") }
-sub pp_study { unop(@_, "study") }
-sub pp_ref { unop(@_, "ref") }
-sub pp_pos { maybe_local(@_, unop(@_, "pos")) }
-
-sub pp_sin { maybe_targmy(@_, \&unop, "sin") }
-sub pp_cos { maybe_targmy(@_, \&unop, "cos") }
-sub pp_rand { maybe_targmy(@_, \&unop, "rand") }
-sub pp_srand { unop(@_, "srand") }
-sub pp_exp { maybe_targmy(@_, \&unop, "exp") }
-sub pp_log { maybe_targmy(@_, \&unop, "log") }
-sub pp_sqrt { maybe_targmy(@_, \&unop, "sqrt") }
-sub pp_int { maybe_targmy(@_, \&unop, "int") }
-sub pp_hex { maybe_targmy(@_, \&unop, "hex") }
-sub pp_oct { maybe_targmy(@_, \&unop, "oct") }
-sub pp_abs { maybe_targmy(@_, \&unop, "abs") }
-
-sub pp_length { maybe_targmy(@_, \&unop, "length") }
-sub pp_ord { maybe_targmy(@_, \&unop, "ord") }
-sub pp_chr { maybe_targmy(@_, \&unop, "chr") }
-
-sub pp_each { unop(@_, "each") }
-sub pp_values { unop(@_, "values") }
-sub pp_keys { unop(@_, "keys") }
-sub pp_pop { unop(@_, "pop") }
-sub pp_shift { unop(@_, "shift") }
-
-sub pp_caller { unop(@_, "caller") }
-sub pp_reset { unop(@_, "reset") }
-sub pp_exit { unop(@_, "exit") }
-sub pp_prototype { unop(@_, "prototype") }
-
-sub pp_close { unop(@_, "close") }
-sub pp_fileno { unop(@_, "fileno") }
-sub pp_umask { unop(@_, "umask") }
-sub pp_untie { unop(@_, "untie") }
-sub pp_tied { unop(@_, "tied") }
-sub pp_dbmclose { unop(@_, "dbmclose") }
-sub pp_getc { unop(@_, "getc") }
-sub pp_eof { unop(@_, "eof") }
-sub pp_tell { unop(@_, "tell") }
-sub pp_getsockname { unop(@_, "getsockname") }
-sub pp_getpeername { unop(@_, "getpeername") }
-
-sub pp_chdir { maybe_targmy(@_, \&unop, "chdir") }
-sub pp_chroot { maybe_targmy(@_, \&unop, "chroot") }
-sub pp_readlink { unop(@_, "readlink") }
-sub pp_rmdir { maybe_targmy(@_, \&unop, "rmdir") }
-sub pp_readdir { unop(@_, "readdir") }
-sub pp_telldir { unop(@_, "telldir") }
-sub pp_rewinddir { unop(@_, "rewinddir") }
-sub pp_closedir { unop(@_, "closedir") }
-sub pp_getpgrp { maybe_targmy(@_, \&unop, "getpgrp") }
-sub pp_localtime { unop(@_, "localtime") }
-sub pp_gmtime { unop(@_, "gmtime") }
-sub pp_alarm { unop(@_, "alarm") }
-sub pp_sleep { maybe_targmy(@_, \&unop, "sleep") }
-
-sub pp_dofile { unop(@_, "do") }
-sub pp_entereval { unop(@_, "eval") }
-
-sub pp_ghbyname { unop(@_, "gethostbyname") }
-sub pp_gnbyname { unop(@_, "getnetbyname") }
-sub pp_gpbyname { unop(@_, "getprotobyname") }
-sub pp_shostent { unop(@_, "sethostent") }
-sub pp_snetent { unop(@_, "setnetent") }
-sub pp_sprotoent { unop(@_, "setprotoent") }
-sub pp_sservent { unop(@_, "setservent") }
-sub pp_gpwnam { unop(@_, "getpwnam") }
-sub pp_gpwuid { unop(@_, "getpwuid") }
-sub pp_ggrnam { unop(@_, "getgrnam") }
-sub pp_ggrgid { unop(@_, "getgrgid") }
-
-sub pp_lock { unop(@_, "lock") }
-
-sub pp_exists {
- my $self = shift;
- my($op, $cx) = @_;
- my $arg;
- if ($op->private & OPpEXISTS_SUB) {
- # Checking for the existence of a subroutine
- return $self->maybe_parens_func("exists",
- $self->pp_rv2cv($op->first, 16), $cx, 16);
- }
- if ($op->flags & OPf_SPECIAL) {
- # Array element, not hash element
- return $self->maybe_parens_func("exists",
- $self->pp_aelem($op->first, 16), $cx, 16);
- }
- return $self->maybe_parens_func("exists", $self->pp_helem($op->first, 16),
- $cx, 16);
-}
-
-sub pp_delete {
- my $self = shift;
- my($op, $cx) = @_;
- my $arg;
- if ($op->private & OPpSLICE) {
- if ($op->flags & OPf_SPECIAL) {
- # Deleting from an array, not a hash
- return $self->maybe_parens_func("delete",
- $self->pp_aslice($op->first, 16),
- $cx, 16);
- }
- return $self->maybe_parens_func("delete",
- $self->pp_hslice($op->first, 16),
- $cx, 16);
- } else {
- if ($op->flags & OPf_SPECIAL) {
- # Deleting from an array, not a hash
- return $self->maybe_parens_func("delete",
- $self->pp_aelem($op->first, 16),
- $cx, 16);
- }
- return $self->maybe_parens_func("delete",
- $self->pp_helem($op->first, 16),
- $cx, 16);
- }
-}
-
-sub pp_require {
- my $self = shift;
- my($op, $cx) = @_;
- if (class($op) eq "UNOP" and $op->first->name eq "const"
- and $op->first->private & OPpCONST_BARE)
- {
- my $name = $self->const_sv($op->first)->PV;
- $name =~ s[/][::]g;
- $name =~ s/\.pm//g;
- return "require $name";
- } else {
- $self->unop($op, $cx, "require");
- }
-}
-
-sub pp_scalar {
- my $self = shift;
- my($op, $cv) = @_;
- my $kid = $op->first;
- if (not null $kid->sibling) {
- # XXX Was a here-doc
- return $self->dquote($op);
- }
- $self->unop(@_, "scalar");
-}
-
-
-sub padval {
- my $self = shift;
- my $targ = shift;
- return (($self->{'curcv'}->PADLIST->ARRAY)[1]->ARRAY)[$targ];
-}
-
-sub pp_refgen {
- my $self = shift;
- my($op, $cx) = @_;
- my $kid = $op->first;
- if ($kid->name eq "null") {
- $kid = $kid->first;
- if ($kid->name eq "anonlist" || $kid->name eq "anonhash") {
- my($pre, $post) = @{{"anonlist" => ["[","]"],
- "anonhash" => ["{","}"]}->{$kid->name}};
- my($expr, @exprs);
- $kid = $kid->first->sibling; # skip pushmark
- for (; !null($kid); $kid = $kid->sibling) {
- $expr = $self->deparse($kid, 6);
- push @exprs, $expr;
- }
- return $pre . join(", ", @exprs) . $post;
- } elsif (!null($kid->sibling) and
- $kid->sibling->name eq "anoncode") {
- return "sub " .
- $self->deparse_sub($self->padval($kid->sibling->targ));
- } elsif ($kid->name eq "pushmark") {
- my $sib_name = $kid->sibling->name;
- if ($sib_name =~ /^(pad|rv2)[ah]v$/
- and not $kid->sibling->flags & OPf_REF)
- {
- # The @a in \(@a) isn't in ref context, but only when the
- # parens are there.
- return "\\(" . $self->deparse($kid->sibling, 1) . ")";
- } elsif ($sib_name eq 'entersub') {
- my $text = $self->deparse($kid->sibling, 1);
- # Always show parens for \(&func()), but only with -p otherwise
- $text = "($text)" if $self->{'parens'}
- or $kid->sibling->private & OPpENTERSUB_AMPER;
- return "\\$text";
- }
- }
- }
- $self->pfixop($op, $cx, "\\", 20);
-}
-
-sub pp_srefgen { pp_refgen(@_) }
-
-sub pp_readline {
- my $self = shift;
- my($op, $cx) = @_;
- my $kid = $op->first;
- $kid = $kid->first if $kid->name eq "rv2gv"; # <$fh>
- return "<" . $self->deparse($kid, 1) . ">" if is_scalar($kid);
- return $self->unop($op, $cx, "readline");
-}
-
-sub pp_rcatline {
- my $self = shift;
- my($op) = @_;
- return "<" . $self->gv_name($op->gv) . ">";
-}
-
-# Unary operators that can occur as pseudo-listops inside double quotes
-sub dq_unop {
- my $self = shift;
- my($op, $cx, $name, $prec, $flags) = (@_, 0, 0);
- my $kid;
- if ($op->flags & OPf_KIDS) {
- $kid = $op->first;
- # If there's more than one kid, the first is an ex-pushmark.
- $kid = $kid->sibling if not null $kid->sibling;
- return $self->maybe_parens_unop($name, $kid, $cx);
- } else {
- return $name . ($op->flags & OPf_SPECIAL ? "()" : "");
- }
-}
-
-sub pp_ucfirst { dq_unop(@_, "ucfirst") }
-sub pp_lcfirst { dq_unop(@_, "lcfirst") }
-sub pp_uc { dq_unop(@_, "uc") }
-sub pp_lc { dq_unop(@_, "lc") }
-sub pp_quotemeta { maybe_targmy(@_, \&dq_unop, "quotemeta") }
-
-sub loopex {
- my $self = shift;
- my ($op, $cx, $name) = @_;
- if (class($op) eq "PVOP") {
- return "$name " . $op->pv;
- } elsif (class($op) eq "OP") {
- return $name;
- } elsif (class($op) eq "UNOP") {
- # Note -- loop exits are actually exempt from the
- # looks-like-a-func rule, but a few extra parens won't hurt
- return $self->maybe_parens_unop($name, $op->first, $cx);
- }
-}
-
-sub pp_last { loopex(@_, "last") }
-sub pp_next { loopex(@_, "next") }
-sub pp_redo { loopex(@_, "redo") }
-sub pp_goto { loopex(@_, "goto") }
-sub pp_dump { loopex(@_, "dump") }
-
-sub ftst {
- my $self = shift;
- my($op, $cx, $name) = @_;
- if (class($op) eq "UNOP") {
- # Genuine `-X' filetests are exempt from the LLAFR, but not
- # l?stat(); for the sake of clarity, give'em all parens
- return $self->maybe_parens_unop($name, $op->first, $cx);
- } elsif (class($op) eq "SVOP") {
- return $self->maybe_parens_func($name, $self->pp_gv($op, 1), $cx, 16);
- } else { # I don't think baseop filetests ever survive ck_ftst, but...
- return $name;
- }
-}
-
-sub pp_lstat { ftst(@_, "lstat") }
-sub pp_stat { ftst(@_, "stat") }
-sub pp_ftrread { ftst(@_, "-R") }
-sub pp_ftrwrite { ftst(@_, "-W") }
-sub pp_ftrexec { ftst(@_, "-X") }
-sub pp_fteread { ftst(@_, "-r") }
-sub pp_ftewrite { ftst(@_, "-w") }
-sub pp_fteexec { ftst(@_, "-x") }
-sub pp_ftis { ftst(@_, "-e") }
-sub pp_fteowned { ftst(@_, "-O") }
-sub pp_ftrowned { ftst(@_, "-o") }
-sub pp_ftzero { ftst(@_, "-z") }
-sub pp_ftsize { ftst(@_, "-s") }
-sub pp_ftmtime { ftst(@_, "-M") }
-sub pp_ftatime { ftst(@_, "-A") }
-sub pp_ftctime { ftst(@_, "-C") }
-sub pp_ftsock { ftst(@_, "-S") }
-sub pp_ftchr { ftst(@_, "-c") }
-sub pp_ftblk { ftst(@_, "-b") }
-sub pp_ftfile { ftst(@_, "-f") }
-sub pp_ftdir { ftst(@_, "-d") }
-sub pp_ftpipe { ftst(@_, "-p") }
-sub pp_ftlink { ftst(@_, "-l") }
-sub pp_ftsuid { ftst(@_, "-u") }
-sub pp_ftsgid { ftst(@_, "-g") }
-sub pp_ftsvtx { ftst(@_, "-k") }
-sub pp_fttty { ftst(@_, "-t") }
-sub pp_fttext { ftst(@_, "-T") }
-sub pp_ftbinary { ftst(@_, "-B") }
-
-sub SWAP_CHILDREN () { 1 }
-sub ASSIGN () { 2 } # has OP= variant
-sub LIST_CONTEXT () { 4 } # Assignment is in list context
-
-my(%left, %right);
-
-sub assoc_class {
- my $op = shift;
- my $name = $op->name;
- if ($name eq "concat" and $op->first->name eq "concat") {
- # avoid spurious `=' -- see comment in pp_concat
- return "concat";
- }
- if ($name eq "null" and class($op) eq "UNOP"
- and $op->first->name =~ /^(and|x?or)$/
- and null $op->first->sibling)
- {
- # Like all conditional constructs, OP_ANDs and OP_ORs are topped
- # with a null that's used as the common end point of the two
- # flows of control. For precedence purposes, ignore it.
- # (COND_EXPRs have these too, but we don't bother with
- # their associativity).
- return assoc_class($op->first);
- }
- return $name . ($op->flags & OPf_STACKED ? "=" : "");
-}
-
-# Left associative operators, like `+', for which
-# $a + $b + $c is equivalent to ($a + $b) + $c
-
-BEGIN {
- %left = ('multiply' => 19, 'i_multiply' => 19,
- 'divide' => 19, 'i_divide' => 19,
- 'modulo' => 19, 'i_modulo' => 19,
- 'repeat' => 19,
- 'add' => 18, 'i_add' => 18,
- 'subtract' => 18, 'i_subtract' => 18,
- 'concat' => 18,
- 'left_shift' => 17, 'right_shift' => 17,
- 'bit_and' => 13,
- 'bit_or' => 12, 'bit_xor' => 12,
- 'and' => 3,
- 'or' => 2, 'xor' => 2,
- );
-}
-
-sub deparse_binop_left {
- my $self = shift;
- my($op, $left, $prec) = @_;
- if ($left{assoc_class($op)} && $left{assoc_class($left)}
- and $left{assoc_class($op)} == $left{assoc_class($left)})
- {
- return $self->deparse($left, $prec - .00001);
- } else {
- return $self->deparse($left, $prec);
- }
-}
-
-# Right associative operators, like `=', for which
-# $a = $b = $c is equivalent to $a = ($b = $c)
-
-BEGIN {
- %right = ('pow' => 22,
- 'sassign=' => 7, 'aassign=' => 7,
- 'multiply=' => 7, 'i_multiply=' => 7,
- 'divide=' => 7, 'i_divide=' => 7,
- 'modulo=' => 7, 'i_modulo=' => 7,
- 'repeat=' => 7,
- 'add=' => 7, 'i_add=' => 7,
- 'subtract=' => 7, 'i_subtract=' => 7,
- 'concat=' => 7,
- 'left_shift=' => 7, 'right_shift=' => 7,
- 'bit_and=' => 7,
- 'bit_or=' => 7, 'bit_xor=' => 7,
- 'andassign' => 7,
- 'orassign' => 7,
- );
-}
-
-sub deparse_binop_right {
- my $self = shift;
- my($op, $right, $prec) = @_;
- if ($right{assoc_class($op)} && $right{assoc_class($right)}
- and $right{assoc_class($op)} == $right{assoc_class($right)})
- {
- return $self->deparse($right, $prec - .00001);
- } else {
- return $self->deparse($right, $prec);
- }
-}
-
-sub binop {
- my $self = shift;
- my ($op, $cx, $opname, $prec, $flags) = (@_, 0);
- my $left = $op->first;
- my $right = $op->last;
- my $eq = "";
- if ($op->flags & OPf_STACKED && $flags & ASSIGN) {
- $eq = "=";
- $prec = 7;
- }
- if ($flags & SWAP_CHILDREN) {
- ($left, $right) = ($right, $left);
- }
- $left = $self->deparse_binop_left($op, $left, $prec);
- $left = "($left)" if $flags & LIST_CONTEXT
- && $left !~ /^(my|our|local|)[\@\(]/;
- $right = $self->deparse_binop_right($op, $right, $prec);
- return $self->maybe_parens("$left $opname$eq $right", $cx, $prec);
-}
-
-sub pp_add { maybe_targmy(@_, \&binop, "+", 18, ASSIGN) }
-sub pp_multiply { maybe_targmy(@_, \&binop, "*", 19, ASSIGN) }
-sub pp_subtract { maybe_targmy(@_, \&binop, "-",18, ASSIGN) }
-sub pp_divide { maybe_targmy(@_, \&binop, "/", 19, ASSIGN) }
-sub pp_modulo { maybe_targmy(@_, \&binop, "%", 19, ASSIGN) }
-sub pp_i_add { maybe_targmy(@_, \&binop, "+", 18, ASSIGN) }
-sub pp_i_multiply { maybe_targmy(@_, \&binop, "*", 19, ASSIGN) }
-sub pp_i_subtract { maybe_targmy(@_, \&binop, "-", 18, ASSIGN) }
-sub pp_i_divide { maybe_targmy(@_, \&binop, "/", 19, ASSIGN) }
-sub pp_i_modulo { maybe_targmy(@_, \&binop, "%", 19, ASSIGN) }
-sub pp_pow { maybe_targmy(@_, \&binop, "**", 22, ASSIGN) }
-
-sub pp_left_shift { maybe_targmy(@_, \&binop, "<<", 17, ASSIGN) }
-sub pp_right_shift { maybe_targmy(@_, \&binop, ">>", 17, ASSIGN) }
-sub pp_bit_and { maybe_targmy(@_, \&binop, "&", 13, ASSIGN) }
-sub pp_bit_or { maybe_targmy(@_, \&binop, "|", 12, ASSIGN) }
-sub pp_bit_xor { maybe_targmy(@_, \&binop, "^", 12, ASSIGN) }
-
-sub pp_eq { binop(@_, "==", 14) }
-sub pp_ne { binop(@_, "!=", 14) }
-sub pp_lt { binop(@_, "<", 15) }
-sub pp_gt { binop(@_, ">", 15) }
-sub pp_ge { binop(@_, ">=", 15) }
-sub pp_le { binop(@_, "<=", 15) }
-sub pp_ncmp { binop(@_, "<=>", 14) }
-sub pp_i_eq { binop(@_, "==", 14) }
-sub pp_i_ne { binop(@_, "!=", 14) }
-sub pp_i_lt { binop(@_, "<", 15) }
-sub pp_i_gt { binop(@_, ">", 15) }
-sub pp_i_ge { binop(@_, ">=", 15) }
-sub pp_i_le { binop(@_, "<=", 15) }
-sub pp_i_ncmp { binop(@_, "<=>", 14) }
-
-sub pp_seq { binop(@_, "eq", 14) }
-sub pp_sne { binop(@_, "ne", 14) }
-sub pp_slt { binop(@_, "lt", 15) }
-sub pp_sgt { binop(@_, "gt", 15) }
-sub pp_sge { binop(@_, "ge", 15) }
-sub pp_sle { binop(@_, "le", 15) }
-sub pp_scmp { binop(@_, "cmp", 14) }
-
-sub pp_sassign { binop(@_, "=", 7, SWAP_CHILDREN) }
-sub pp_aassign { binop(@_, "=", 7, SWAP_CHILDREN | LIST_CONTEXT) }
-
-# `.' is special because concats-of-concats are optimized to save copying
-# by making all but the first concat stacked. The effect is as if the
-# programmer had written `($a . $b) .= $c', except legal.
-sub pp_concat { maybe_targmy(@_, \&real_concat) }
-sub real_concat {
- my $self = shift;
- my($op, $cx) = @_;
- my $left = $op->first;
- my $right = $op->last;
- my $eq = "";
- my $prec = 18;
- if ($op->flags & OPf_STACKED and $op->first->name ne "concat") {
- $eq = "=";
- $prec = 7;
- }
- $left = $self->deparse_binop_left($op, $left, $prec);
- $right = $self->deparse_binop_right($op, $right, $prec);
- return $self->maybe_parens("$left .$eq $right", $cx, $prec);
-}
-
-# `x' is weird when the left arg is a list
-sub pp_repeat {
- my $self = shift;
- my($op, $cx) = @_;
- my $left = $op->first;
- my $right = $op->last;
- my $eq = "";
- my $prec = 19;
- if ($op->flags & OPf_STACKED) {
- $eq = "=";
- $prec = 7;
- }
- if (null($right)) { # list repeat; count is inside left-side ex-list
- my $kid = $left->first->sibling; # skip pushmark
- my @exprs;
- for (; !null($kid->sibling); $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 6);
- }
- $right = $kid;
- $left = "(" . join(", ", @exprs). ")";
- } else {
- $left = $self->deparse_binop_left($op, $left, $prec);
- }
- $right = $self->deparse_binop_right($op, $right, $prec);
- return $self->maybe_parens("$left x$eq $right", $cx, $prec);
-}
-
-sub range {
- my $self = shift;
- my ($op, $cx, $type) = @_;
- my $left = $op->first;
- my $right = $left->sibling;
- $left = $self->deparse($left, 9);
- $right = $self->deparse($right, 9);
- return $self->maybe_parens("$left $type $right", $cx, 9);
-}
-
-sub pp_flop {
- my $self = shift;
- my($op, $cx) = @_;
- my $flip = $op->first;
- my $type = ($flip->flags & OPf_SPECIAL) ? "..." : "..";
- return $self->range($flip->first, $cx, $type);
-}
-
-# one-line while/until is handled in pp_leave
-
-sub logop {
- my $self = shift;
- my ($op, $cx, $lowop, $lowprec, $highop, $highprec, $blockname) = @_;
- my $left = $op->first;
- my $right = $op->first->sibling;
- if ($cx == 0 and is_scope($right) and $blockname
- and $self->{'expand'} < 7)
- { # if ($a) {$b}
- $left = $self->deparse($left, 1);
- $right = $self->deparse($right, 0);
- return "$blockname ($left) {\n\t$right\n\b}\cK";
- } elsif ($cx == 0 and $blockname and not $self->{'parens'}
- and $self->{'expand'} < 7) { # $b if $a
- $right = $self->deparse($right, 1);
- $left = $self->deparse($left, 1);
- return "$right $blockname $left";
- } elsif ($cx > $lowprec and $highop) { # $a && $b
- $left = $self->deparse_binop_left($op, $left, $highprec);
- $right = $self->deparse_binop_right($op, $right, $highprec);
- return $self->maybe_parens("$left $highop $right", $cx, $highprec);
- } else { # $a and $b
- $left = $self->deparse_binop_left($op, $left, $lowprec);
- $right = $self->deparse_binop_right($op, $right, $lowprec);
- return $self->maybe_parens("$left $lowop $right", $cx, $lowprec);
- }
-}
-
-sub pp_and { logop(@_, "and", 3, "&&", 11, "if") }
-sub pp_or { logop(@_, "or", 2, "||", 10, "unless") }
-
-# xor is syntactically a logop, but it's really a binop (contrary to
-# old versions of opcode.pl). Syntax is what matters here.
-sub pp_xor { logop(@_, "xor", 2, "", 0, "") }
-
-sub logassignop {
- my $self = shift;
- my ($op, $cx, $opname) = @_;
- my $left = $op->first;
- my $right = $op->first->sibling->first; # skip sassign
- $left = $self->deparse($left, 7);
- $right = $self->deparse($right, 7);
- return $self->maybe_parens("$left $opname $right", $cx, 7);
-}
-
-sub pp_andassign { logassignop(@_, "&&=") }
-sub pp_orassign { logassignop(@_, "||=") }
-
-sub listop {
- my $self = shift;
- my($op, $cx, $name) = @_;
- my(@exprs);
- my $parens = ($cx >= 5) || $self->{'parens'};
- my $kid = $op->first->sibling;
- return $name if null $kid;
- my $first;
- $name = "socketpair" if $name eq "sockpair";
- if (defined prototype("CORE::$name")
- && prototype("CORE::$name") =~ /^;?\*/
- && $kid->name eq "rv2gv") {
- $first = $self->deparse($kid->first, 6);
- }
- else {
- $first = $self->deparse($kid, 6);
- }
- if ($name eq "chmod" && $first =~ /^\d+$/) {
- $first = sprintf("%#o", $first);
- }
- $first = "+$first" if not $parens and substr($first, 0, 1) eq "(";
- push @exprs, $first;
- $kid = $kid->sibling;
- for (; !null($kid); $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 6);
- }
- if ($parens) {
- return "$name(" . join(", ", @exprs) . ")";
- } else {
- return "$name " . join(", ", @exprs);
- }
-}
-
-sub pp_bless { listop(@_, "bless") }
-sub pp_atan2 { maybe_targmy(@_, \&listop, "atan2") }
-sub pp_substr { maybe_local(@_, listop(@_, "substr")) }
-sub pp_vec { maybe_local(@_, listop(@_, "vec")) }
-sub pp_index { maybe_targmy(@_, \&listop, "index") }
-sub pp_rindex { maybe_targmy(@_, \&listop, "rindex") }
-sub pp_sprintf { maybe_targmy(@_, \&listop, "sprintf") }
-sub pp_formline { listop(@_, "formline") } # see also deparse_format
-sub pp_crypt { maybe_targmy(@_, \&listop, "crypt") }
-sub pp_unpack { listop(@_, "unpack") }
-sub pp_pack { listop(@_, "pack") }
-sub pp_join { maybe_targmy(@_, \&listop, "join") }
-sub pp_splice { listop(@_, "splice") }
-sub pp_push { maybe_targmy(@_, \&listop, "push") }
-sub pp_unshift { maybe_targmy(@_, \&listop, "unshift") }
-sub pp_reverse { listop(@_, "reverse") }
-sub pp_warn { listop(@_, "warn") }
-sub pp_die { listop(@_, "die") }
-# Actually, return is exempt from the LLAFR (see examples in this very
-# module!), but for consistency's sake, ignore that fact
-sub pp_return { listop(@_, "return") }
-sub pp_open { listop(@_, "open") }
-sub pp_pipe_op { listop(@_, "pipe") }
-sub pp_tie { listop(@_, "tie") }
-sub pp_binmode { listop(@_, "binmode") }
-sub pp_dbmopen { listop(@_, "dbmopen") }
-sub pp_sselect { listop(@_, "select") }
-sub pp_select { listop(@_, "select") }
-sub pp_read { listop(@_, "read") }
-sub pp_sysopen { listop(@_, "sysopen") }
-sub pp_sysseek { listop(@_, "sysseek") }
-sub pp_sysread { listop(@_, "sysread") }
-sub pp_syswrite { listop(@_, "syswrite") }
-sub pp_send { listop(@_, "send") }
-sub pp_recv { listop(@_, "recv") }
-sub pp_seek { listop(@_, "seek") }
-sub pp_fcntl { listop(@_, "fcntl") }
-sub pp_ioctl { listop(@_, "ioctl") }
-sub pp_flock { maybe_targmy(@_, \&listop, "flock") }
-sub pp_socket { listop(@_, "socket") }
-sub pp_sockpair { listop(@_, "sockpair") }
-sub pp_bind { listop(@_, "bind") }
-sub pp_connect { listop(@_, "connect") }
-sub pp_listen { listop(@_, "listen") }
-sub pp_accept { listop(@_, "accept") }
-sub pp_shutdown { listop(@_, "shutdown") }
-sub pp_gsockopt { listop(@_, "getsockopt") }
-sub pp_ssockopt { listop(@_, "setsockopt") }
-sub pp_chown { maybe_targmy(@_, \&listop, "chown") }
-sub pp_unlink { maybe_targmy(@_, \&listop, "unlink") }
-sub pp_chmod { maybe_targmy(@_, \&listop, "chmod") }
-sub pp_utime { maybe_targmy(@_, \&listop, "utime") }
-sub pp_rename { maybe_targmy(@_, \&listop, "rename") }
-sub pp_link { maybe_targmy(@_, \&listop, "link") }
-sub pp_symlink { maybe_targmy(@_, \&listop, "symlink") }
-sub pp_mkdir { maybe_targmy(@_, \&listop, "mkdir") }
-sub pp_open_dir { listop(@_, "opendir") }
-sub pp_seekdir { listop(@_, "seekdir") }
-sub pp_waitpid { maybe_targmy(@_, \&listop, "waitpid") }
-sub pp_system { maybe_targmy(@_, \&listop, "system") }
-sub pp_exec { maybe_targmy(@_, \&listop, "exec") }
-sub pp_kill { maybe_targmy(@_, \&listop, "kill") }
-sub pp_setpgrp { maybe_targmy(@_, \&listop, "setpgrp") }
-sub pp_getpriority { maybe_targmy(@_, \&listop, "getpriority") }
-sub pp_setpriority { maybe_targmy(@_, \&listop, "setpriority") }
-sub pp_shmget { listop(@_, "shmget") }
-sub pp_shmctl { listop(@_, "shmctl") }
-sub pp_shmread { listop(@_, "shmread") }
-sub pp_shmwrite { listop(@_, "shmwrite") }
-sub pp_msgget { listop(@_, "msgget") }
-sub pp_msgctl { listop(@_, "msgctl") }
-sub pp_msgsnd { listop(@_, "msgsnd") }
-sub pp_msgrcv { listop(@_, "msgrcv") }
-sub pp_semget { listop(@_, "semget") }
-sub pp_semctl { listop(@_, "semctl") }
-sub pp_semop { listop(@_, "semop") }
-sub pp_ghbyaddr { listop(@_, "gethostbyaddr") }
-sub pp_gnbyaddr { listop(@_, "getnetbyaddr") }
-sub pp_gpbynumber { listop(@_, "getprotobynumber") }
-sub pp_gsbyname { listop(@_, "getservbyname") }
-sub pp_gsbyport { listop(@_, "getservbyport") }
-sub pp_syscall { listop(@_, "syscall") }
-
-sub pp_glob {
- my $self = shift;
- my($op, $cx) = @_;
- my $text = $self->dq($op->first->sibling); # skip pushmark
- if ($text =~ /^\$?(\w|::|\`)+$/ # could look like a readline
- or $text =~ /[<>]/) {
- return 'glob(' . single_delim('qq', '"', $text) . ')';
- } else {
- return '<' . $text . '>';
- }
-}
-
-# Truncate is special because OPf_SPECIAL makes a bareword first arg
-# be a filehandle. This could probably be better fixed in the core
-# by moving the GV lookup into ck_truc.
-
-sub pp_truncate {
- my $self = shift;
- my($op, $cx) = @_;
- my(@exprs);
- my $parens = ($cx >= 5) || $self->{'parens'};
- my $kid = $op->first->sibling;
- my $fh;
- if ($op->flags & OPf_SPECIAL) {
- # $kid is an OP_CONST
- $fh = $self->const_sv($kid)->PV;
- } else {
- $fh = $self->deparse($kid, 6);
- $fh = "+$fh" if not $parens and substr($fh, 0, 1) eq "(";
- }
- my $len = $self->deparse($kid->sibling, 6);
- if ($parens) {
- return "truncate($fh, $len)";
- } else {
- return "truncate $fh, $len";
- }
-}
-
-sub indirop {
- my $self = shift;
- my($op, $cx, $name) = @_;
- my($expr, @exprs);
- my $kid = $op->first->sibling;
- my $indir = "";
- if ($op->flags & OPf_STACKED) {
- $indir = $kid;
- $indir = $indir->first; # skip rv2gv
- if (is_scope($indir)) {
- $indir = "{" . $self->deparse($indir, 0) . "}";
- } elsif ($indir->name eq "const" && $indir->private & OPpCONST_BARE) {
- $indir = $self->const_sv($indir)->PV;
- } else {
- $indir = $self->deparse($indir, 24);
- }
- $indir = $indir . " ";
- $kid = $kid->sibling;
- }
- if ($name eq "sort" && $op->private & (OPpSORT_NUMERIC | OPpSORT_INTEGER)) {
- $indir = ($op->private & OPpSORT_REVERSE) ? '{$b <=> $a} '
- : '{$a <=> $b} ';
- }
- elsif ($name eq "sort" && $op->private & OPpSORT_REVERSE) {
- $indir = '{$b cmp $a} ';
- }
- for (; !null($kid); $kid = $kid->sibling) {
- $expr = $self->deparse($kid, 6);
- push @exprs, $expr;
- }
- return $self->maybe_parens_func($name, $indir . join(", ", @exprs),
- $cx, 5);
-}
-
-sub pp_prtf { indirop(@_, "printf") }
-sub pp_print { indirop(@_, "print") }
-sub pp_sort { indirop(@_, "sort") }
-
-sub mapop {
- my $self = shift;
- my($op, $cx, $name) = @_;
- my($expr, @exprs);
- my $kid = $op->first; # this is the (map|grep)start
- $kid = $kid->first->sibling; # skip a pushmark
- my $code = $kid->first; # skip a null
- if (is_scope $code) {
- $code = "{" . $self->deparse($code, 0) . "} ";
- } else {
- $code = $self->deparse($code, 24) . ", ";
- }
- $kid = $kid->sibling;
- for (; !null($kid); $kid = $kid->sibling) {
- $expr = $self->deparse($kid, 6);
- push @exprs, $expr if defined $expr;
- }
- return $self->maybe_parens_func($name, $code . join(", ", @exprs), $cx, 5);
-}
-
-sub pp_mapwhile { mapop(@_, "map") }
-sub pp_grepwhile { mapop(@_, "grep") }
-
-sub pp_list {
- my $self = shift;
- my($op, $cx) = @_;
- my($expr, @exprs);
- my $kid = $op->first->sibling; # skip pushmark
- my $lop;
- my $local = "either"; # could be local(...), my(...) or our(...)
- for ($lop = $kid; !null($lop); $lop = $lop->sibling) {
- # This assumes that no other private flags equal 128, and that
- # OPs that store things other than flags in their op_private,
- # like OP_AELEMFAST, won't be immediate children of a list.
- #
- # OP_ENTERSUB can break this logic, so check for it.
- # I suspect that open and exit can too.
-
- if (!($lop->private & (OPpLVAL_INTRO|OPpOUR_INTRO)
- or $lop->name eq "undef")
- or $lop->name eq "entersub"
- or $lop->name eq "exit"
- or $lop->name eq "open")
- {
- $local = ""; # or not
- last;
- }
- if ($lop->name =~ /^pad[ash]v$/) { # my()
- ($local = "", last) if $local eq "local" || $local eq "our";
- $local = "my";
- } elsif ($lop->name =~ /^(gv|rv2)[ash]v$/
- && $lop->private & OPpOUR_INTRO
- or $lop->name eq "null" && $lop->first->name eq "gvsv"
- && $lop->first->private & OPpOUR_INTRO) { # our()
- ($local = "", last) if $local eq "my" || $local eq "local";
- $local = "our";
- } elsif ($lop->name ne "undef") { # local()
- ($local = "", last) if $local eq "my" || $local eq "our";
- $local = "local";
- }
- }
- $local = "" if $local eq "either"; # no point if it's all undefs
- return $self->deparse($kid, $cx) if null $kid->sibling and not $local;
- for (; !null($kid); $kid = $kid->sibling) {
- if ($local) {
- if (class($kid) eq "UNOP" and $kid->first->name eq "gvsv") {
- $lop = $kid->first;
- } else {
- $lop = $kid;
- }
- $self->{'avoid_local'}{$$lop}++;
- $expr = $self->deparse($kid, 6);
- delete $self->{'avoid_local'}{$$lop};
- } else {
- $expr = $self->deparse($kid, 6);
- }
- push @exprs, $expr;
- }
- if ($local) {
- return "$local(" . join(", ", @exprs) . ")";
- } else {
- return $self->maybe_parens( join(", ", @exprs), $cx, 6);
- }
-}
-
-sub is_ifelse_cont {
- my $op = shift;
- return ($op->name eq "null" and class($op) eq "UNOP"
- and $op->first->name =~ /^(and|cond_expr)$/
- and is_scope($op->first->first->sibling));
-}
-
-sub pp_cond_expr {
- my $self = shift;
- my($op, $cx) = @_;
- my $cond = $op->first;
- my $true = $cond->sibling;
- my $false = $true->sibling;
- my $cuddle = $self->{'cuddle'};
- unless ($cx == 0 and (is_scope($true) and $true->name ne "null") and
- (is_scope($false) || is_ifelse_cont($false))
- and $self->{'expand'} < 7) {
- $cond = $self->deparse($cond, 8);
- $true = $self->deparse($true, 8);
- $false = $self->deparse($false, 8);
- return $self->maybe_parens("$cond ? $true : $false", $cx, 8);
- }
-
- $cond = $self->deparse($cond, 1);
- $true = $self->deparse($true, 0);
- my $head = "if ($cond) {\n\t$true\n\b}";
- my @elsifs;
- while (!null($false) and is_ifelse_cont($false)) {
- my $newop = $false->first;
- my $newcond = $newop->first;
- my $newtrue = $newcond->sibling;
- $false = $newtrue->sibling; # last in chain is OP_AND => no else
- $newcond = $self->deparse($newcond, 1);
- $newtrue = $self->deparse($newtrue, 0);
- push @elsifs, "elsif ($newcond) {\n\t$newtrue\n\b}";
- }
- if (!null($false)) {
- $false = $cuddle . "else {\n\t" .
- $self->deparse($false, 0) . "\n\b}\cK";
- } else {
- $false = "\cK";
- }
- return $head . join($cuddle, "", @elsifs) . $false;
-}
-
-sub loop_common {
- my $self = shift;
- my($op, $cx, $init) = @_;
- my $enter = $op->first;
- my $kid = $enter->sibling;
- local(@$self{qw'curstash warnings hints'})
- = @$self{qw'curstash warnings hints'};
- my $head = "";
- my $bare = 0;
- my $body;
- my $cond = undef;
- if ($kid->name eq "lineseq") { # bare or infinite loop
- if (is_state $kid->last) { # infinite
- $head = "while (1) "; # Can't use for(;;) if there's a continue
- $cond = "";
- } else {
- $bare = 1;
- }
- $body = $kid;
- } elsif ($enter->name eq "enteriter") { # foreach
- my $ary = $enter->first->sibling; # first was pushmark
- my $var = $ary->sibling;
- if ($enter->flags & OPf_STACKED
- and not null $ary->first->sibling->sibling)
- {
- $ary = $self->deparse($ary->first->sibling, 9) . " .. " .
- $self->deparse($ary->first->sibling->sibling, 9);
- } else {
- $ary = $self->deparse($ary, 1);
- }
- if (null $var) {
- if ($enter->flags & OPf_SPECIAL) { # thread special var
- $var = $self->pp_threadsv($enter, 1);
- } else { # regular my() variable
- $var = $self->pp_padsv($enter, 1);
- if ($self->padname_sv($enter->targ)->IVX ==
- $kid->first->first->sibling->last->cop_seq)
- {
- # If the scope of this variable closes at the last
- # statement of the loop, it must have been
- # declared here.
- $var = "my " . $var;
- }
- }
- } elsif ($var->name eq "rv2gv") {
- $var = $self->pp_rv2sv($var, 1);
- } elsif ($var->name eq "gv") {
- $var = "\$" . $self->deparse($var, 1);
- }
- $head = "foreach $var ($ary) ";
- $body = $kid->first->first->sibling; # skip OP_AND and OP_ITER
- } elsif ($kid->name eq "null") { # while/until
- $kid = $kid->first;
- my $name = {"and" => "while", "or" => "until"}->{$kid->name};
- $cond = $self->deparse($kid->first, 1);
- $head = "$name ($cond) ";
- $body = $kid->first->sibling;
- } elsif ($kid->name eq "stub") { # bare and empty
- return "{;}"; # {} could be a hashref
- }
- # If there isn't a continue block, then the next pointer for the loop
- # will point to the unstack, which is kid's penultimate child, except
- # in a bare loop, when it will point to the leaveloop. When neither of
- # these conditions hold, then the third-to-last child in the continue
- # block (or the last in a bare loop).
- my $cont_start = $enter->nextop;
- my $cont;
- if ($$cont_start != $$op && ${$cont_start->sibling} != ${$body->last}) {
- if ($bare) {
- $cont = $body->last;
- } else {
- $cont = $body->first;
- while (!null($cont->sibling->sibling->sibling)) {
- $cont = $cont->sibling;
- }
- }
- my $state = $body->first;
- my $cuddle = $self->{'cuddle'};
- my @states;
- for (; $$state != $$cont; $state = $state->sibling) {
- push @states, $state;
- }
- $body = $self->lineseq(undef, @states);
- if (defined $cond and not is_scope $cont and $self->{'expand'} < 3) {
- $head = "for ($init; $cond; " . $self->deparse($cont, 1) .") ";
- $cont = "\cK";
- } else {
- $cont = $cuddle . "continue {\n\t" .
- $self->deparse($cont, 0) . "\n\b}\cK";
- }
- } else {
- return "" if !defined $body;
- if (length $init) {
- $head = "for ($init; $cond;) ";
- }
- $cont = "\cK";
- $body = $self->deparse($body, 0);
- }
- $body =~ s/;?$/;\n/;
-
- return $head . "{\n\t" . $body . "\b}" . $cont;
-}
-
-sub pp_leaveloop { loop_common(@_, "") }
-
-sub for_loop {
- my $self = shift;
- my($op, $cx) = @_;
- my $init = $self->deparse($op, 1);
- return $self->loop_common($op->sibling->first->sibling, $cx, $init);
-}
-
-sub pp_leavetry {
- my $self = shift;
- return "eval {\n\t" . $self->pp_leave(@_) . "\n\b}";
-}
-
-BEGIN { eval "sub OP_CONST () {" . opnumber("const") . "}" }
-BEGIN { eval "sub OP_STRINGIFY () {" . opnumber("stringify") . "}" }
-BEGIN { eval "sub OP_RV2SV () {" . opnumber("rv2sv") . "}" }
-BEGIN { eval "sub OP_LIST () {" . opnumber("list") . "}" }
-
-sub pp_null {
- my $self = shift;
- my($op, $cx) = @_;
- if (class($op) eq "OP") {
- # old value is lost
- return $self->{'ex_const'} if $op->targ == OP_CONST;
- } elsif ($op->first->name eq "pushmark") {
- return $self->pp_list($op, $cx);
- } elsif ($op->first->name eq "enter") {
- return $self->pp_leave($op, $cx);
- } elsif ($op->targ == OP_STRINGIFY) {
- return $self->dquote($op, $cx);
- } elsif (!null($op->first->sibling) and
- $op->first->sibling->name eq "readline" and
- $op->first->sibling->flags & OPf_STACKED) {
- return $self->maybe_parens($self->deparse($op->first, 7) . " = "
- . $self->deparse($op->first->sibling, 7),
- $cx, 7);
- } elsif (!null($op->first->sibling) and
- $op->first->sibling->name eq "trans" and
- $op->first->sibling->flags & OPf_STACKED) {
- return $self->maybe_parens($self->deparse($op->first, 20) . " =~ "
- . $self->deparse($op->first->sibling, 20),
- $cx, 20);
- } elsif ($op->flags & OPf_SPECIAL && $cx == 0 && !$op->targ) {
- return "do {\n\t". $self->deparse($op->first, $cx) ."\n\b};";
- } elsif (!null($op->first->sibling) and
- $op->first->sibling->name eq "null" and
- class($op->first->sibling) eq "UNOP" and
- $op->first->sibling->first->flags & OPf_STACKED and
- $op->first->sibling->first->name eq "rcatline") {
- return $self->maybe_parens($self->deparse($op->first, 18) . " .= "
- . $self->deparse($op->first->sibling, 18),
- $cx, 18);
- } else {
- return $self->deparse($op->first, $cx);
- }
-}
-
-sub padname {
- my $self = shift;
- my $targ = shift;
- return $self->padname_sv($targ)->PVX;
-}
-
-sub padany {
- my $self = shift;
- my $op = shift;
- return substr($self->padname($op->targ), 1); # skip $/@/%
-}
-
-sub pp_padsv {
- my $self = shift;
- my($op, $cx) = @_;
- return $self->maybe_my($op, $cx, $self->padname($op->targ));
-}
-
-sub pp_padav { pp_padsv(@_) }
-sub pp_padhv { pp_padsv(@_) }
-
-my @threadsv_names;
-
-BEGIN {
- @threadsv_names = ("_", "1", "2", "3", "4", "5", "6", "7", "8", "9",
- "&", "`", "'", "+", "/", ".", ",", "\\", '"', ";",
- "^", "-", "%", "=", "|", "~", ":", "^A", "^E",
- "!", "@");
-}
-
-sub pp_threadsv {
- my $self = shift;
- my($op, $cx) = @_;
- return $self->maybe_local($op, $cx, "\$" . $threadsv_names[$op->targ]);
-}
-
-sub gv_or_padgv {
- my $self = shift;
- my $op = shift;
- if (class($op) eq "PADOP") {
- return $self->padval($op->padix);
- } else { # class($op) eq "SVOP"
- return $op->gv;
- }
-}
-
-sub pp_gvsv {
- my $self = shift;
- my($op, $cx) = @_;
- my $gv = $self->gv_or_padgv($op);
- return $self->maybe_local($op, $cx, $self->stash_variable("\$",
- $self->gv_name($gv)));
-}
-
-sub pp_gv {
- my $self = shift;
- my($op, $cx) = @_;
- my $gv = $self->gv_or_padgv($op);
- return $self->gv_name($gv);
-}
-
-sub pp_aelemfast {
- my $self = shift;
- my($op, $cx) = @_;
- my $gv = $self->gv_or_padgv($op);
- my $name = $self->gv_name($gv);
- $name = $self->{'curstash'}."::$name"
- if $name !~ /::/ && $self->lex_in_scope('@'.$name);
-
- return "\$" . $name . "[" .
- ($op->private + $self->{'arybase'}) . "]";
-}
-
-sub rv2x {
- my $self = shift;
- my($op, $cx, $type) = @_;
-
- if (class($op) eq 'NULL' || !$op->can("first")) {
- carp("Unexpected op in pp_rv2x");
- return 'XXX';
- }
- my $kid = $op->first;
- my $str = $self->deparse($kid, 0);
- return $self->stash_variable($type, $str) if is_scalar($kid);
- return $type ."{$str}";
-}
-
-sub pp_rv2sv { maybe_local(@_, rv2x(@_, "\$")) }
-sub pp_rv2hv { maybe_local(@_, rv2x(@_, "%")) }
-sub pp_rv2gv { maybe_local(@_, rv2x(@_, "*")) }
-
-# skip rv2av
-sub pp_av2arylen {
- my $self = shift;
- my($op, $cx) = @_;
- if ($op->first->name eq "padav") {
- return $self->maybe_local($op, $cx, '$#' . $self->padany($op->first));
- } else {
- return $self->maybe_local($op, $cx,
- $self->rv2x($op->first, $cx, '$#'));
- }
-}
-
-# skip down to the old, ex-rv2cv
-sub pp_rv2cv {
- my ($self, $op, $cx) = @_;
- if (!null($op->first) && $op->first->name eq 'null' &&
- $op->first->targ eq OP_LIST)
- {
- return $self->rv2x($op->first->first->sibling, $cx, "&")
- }
- else {
- return $self->rv2x($op, $cx, "")
- }
-}
-
-sub pp_rv2av {
- my $self = shift;
- my($op, $cx) = @_;
- my $kid = $op->first;
- if ($kid->name eq "const") { # constant list
- my $av = $self->const_sv($kid);
- return "(" . join(", ", map(const($_), $av->ARRAY)) . ")";
- } else {
- return $self->maybe_local($op, $cx, $self->rv2x($op, $cx, "\@"));
- }
- }
-
-sub is_subscriptable {
- my $op = shift;
- if ($op->name =~ /^[ahg]elem/) {
- return 1;
- } elsif ($op->name eq "entersub") {
- my $kid = $op->first;
- return 0 unless null $kid->sibling;
- $kid = $kid->first;
- $kid = $kid->sibling until null $kid->sibling;
- return 0 if is_scope($kid);
- $kid = $kid->first;
- return 0 if $kid->name eq "gv";
- return 0 if is_scalar($kid);
- return is_subscriptable($kid);
- } else {
- return 0;
- }
-}
-
-sub elem {
- my $self = shift;
- my ($op, $cx, $left, $right, $padname) = @_;
- my($array, $idx) = ($op->first, $op->first->sibling);
- unless ($array->name eq $padname) { # Maybe this has been fixed
- $array = $array->first; # skip rv2av (or ex-rv2av in _53+)
- }
- if ($array->name eq $padname) {
- $array = $self->padany($array);
- } elsif (is_scope($array)) { # ${expr}[0]
- $array = "{" . $self->deparse($array, 0) . "}";
- } elsif ($array->name eq "gv") {
- $array = $self->gv_name($self->gv_or_padgv($array));
- if ($array !~ /::/) {
- my $prefix = ($left eq '[' ? '@' : '%');
- $array = $self->{curstash}.'::'.$array
- if $self->lex_in_scope($prefix . $array);
- }
- } elsif (is_scalar $array) { # $x[0], $$x[0], ...
- $array = $self->deparse($array, 24);
- } else {
- # $x[20][3]{hi} or expr->[20]
- my $arrow = is_subscriptable($array) ? "" : "->";
- return $self->deparse($array, 24) . $arrow .
- $left . $self->deparse($idx, 1) . $right;
- }
- $idx = $self->deparse($idx, 1);
-
- # Outer parens in an array index will confuse perl
- # if we're interpolating in a regular expression, i.e.
- # /$x$foo[(-1)]/ is *not* the same as /$x$foo[-1]/
- #
- # If $self->{parens}, then an initial '(' will
- # definitely be paired with a final ')'. If
- # !$self->{parens}, the misleading parens won't
- # have been added in the first place.
- #
- # [You might think that we could get "(...)...(...)"
- # where the initial and final parens do not match
- # each other. But we can't, because the above would
- # only happen if there's an infix binop between the
- # two pairs of parens, and *that* means that the whole
- # expression would be parenthesized as well.]
- #
- $idx =~ s/^\((.*)\)$/$1/ if $self->{'parens'};
-
- # Hash-element braces will autoquote a bareword inside themselves.
- # We need to make sure that C<$hash{warn()}> doesn't come out as
- # C<$hash{warn}>, which has a quite different meaning. Currently
- # B::Deparse will always quote strings, even if the string was a
- # bareword in the original (i.e. the OPpCONST_BARE flag is ignored
- # for constant strings.) So we can cheat slightly here - if we see
- # a bareword, we know that it is supposed to be a function call.
- #
- $idx =~ s/^([A-Za-z_]\w*)$/$1()/;
-
- return "\$" . $array . $left . $idx . $right;
-}
-
-sub pp_aelem { maybe_local(@_, elem(@_, "[", "]", "padav")) }
-sub pp_helem { maybe_local(@_, elem(@_, "{", "}", "padhv")) }
-
-sub pp_gelem {
- my $self = shift;
- my($op, $cx) = @_;
- my($glob, $part) = ($op->first, $op->last);
- $glob = $glob->first; # skip rv2gv
- $glob = $glob->first if $glob->name eq "rv2gv"; # this one's a bug
- my $scope = is_scope($glob);
- $glob = $self->deparse($glob, 0);
- $part = $self->deparse($part, 1);
- return "*" . ($scope ? "{$glob}" : $glob) . "{$part}";
-}
-
-sub slice {
- my $self = shift;
- my ($op, $cx, $left, $right, $regname, $padname) = @_;
- my $last;
- my(@elems, $kid, $array, $list);
- if (class($op) eq "LISTOP") {
- $last = $op->last;
- } else { # ex-hslice inside delete()
- for ($kid = $op->first; !null $kid->sibling; $kid = $kid->sibling) {}
- $last = $kid;
- }
- $array = $last;
- $array = $array->first
- if $array->name eq $regname or $array->name eq "null";
- if (is_scope($array)) {
- $array = "{" . $self->deparse($array, 0) . "}";
- } elsif ($array->name eq $padname) {
- $array = $self->padany($array);
- } else {
- $array = $self->deparse($array, 24);
- }
- $kid = $op->first->sibling; # skip pushmark
- if ($kid->name eq "list") {
- $kid = $kid->first->sibling; # skip list, pushmark
- for (; !null $kid; $kid = $kid->sibling) {
- push @elems, $self->deparse($kid, 6);
- }
- $list = join(", ", @elems);
- } else {
- $list = $self->deparse($kid, 1);
- }
- return "\@" . $array . $left . $list . $right;
-}
-
-sub pp_aslice { maybe_local(@_, slice(@_, "[", "]", "rv2av", "padav")) }
-sub pp_hslice { maybe_local(@_, slice(@_, "{", "}", "rv2hv", "padhv")) }
-
-sub pp_lslice {
- my $self = shift;
- my($op, $cx) = @_;
- my $idx = $op->first;
- my $list = $op->last;
- my(@elems, $kid);
- $list = $self->deparse($list, 1);
- $idx = $self->deparse($idx, 1);
- return "($list)" . "[$idx]";
-}
-
-sub want_scalar {
- my $op = shift;
- return ($op->flags & OPf_WANT) == OPf_WANT_SCALAR;
-}
-
-sub want_list {
- my $op = shift;
- return ($op->flags & OPf_WANT) == OPf_WANT_LIST;
-}
-
-sub method {
- my $self = shift;
- my($op, $cx) = @_;
- my $kid = $op->first->sibling; # skip pushmark
- my($meth, $obj, @exprs);
- if ($kid->name eq "list" and want_list $kid) {
- # When an indirect object isn't a bareword but the args are in
- # parens, the parens aren't part of the method syntax (the LLAFR
- # doesn't apply), but they make a list with OPf_PARENS set that
- # doesn't get flattened by the append_elem that adds the method,
- # making a (object, arg1, arg2, ...) list where the object
- # usually is. This can be distinguished from
- # `($obj, $arg1, $arg2)->meth()' (which is legal if $arg2 is an
- # object) because in the later the list is in scalar context
- # as the left side of -> always is, while in the former
- # the list is in list context as method arguments always are.
- # (Good thing there aren't method prototypes!)
- $meth = $kid->sibling;
- $kid = $kid->first->sibling; # skip pushmark
- $obj = $kid;
- $kid = $kid->sibling;
- for (; not null $kid; $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 6);
- }
- } else {
- $obj = $kid;
- $kid = $kid->sibling;
- for (; !null ($kid->sibling) && $kid->name ne "method_named";
- $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 6);
- }
- $meth = $kid;
- }
- $obj = $self->deparse($obj, 24);
- if ($meth->name eq "method_named") {
- $meth = $self->const_sv($meth)->PV;
- } else {
- $meth = $meth->first;
- if ($meth->name eq "const") {
- # As of 5.005_58, this case is probably obsoleted by the
- # method_named case above
- $meth = $self->const_sv($meth)->PV; # needs to be bare
- } else {
- $meth = $self->deparse($meth, 1);
- }
- }
- my $args = join(", ", @exprs);
- $kid = $obj . "->" . $meth;
- if (length $args) {
- return $kid . "(" . $args . ")"; # parens mandatory
- } else {
- return $kid;
- }
-}
-
-# returns "&" if the prototype doesn't match the args,
-# or ("", $args_after_prototype_demunging) if it does.
-sub check_proto {
- my $self = shift;
- return "&" if $self->{'noproto'};
- my($proto, @args) = @_;
- my($arg, $real);
- my $doneok = 0;
- my @reals;
- # An unbackslashed @ or % gobbles up the rest of the args
- 1 while $proto =~ s/(?<!\\)([@%])[^\]]+$/$1/;
- while ($proto) {
- $proto =~ s/^(\\?[\$\@&%*]|\\\[[\$\@&%*]+\]|;)//;
- my $chr = $1;
- if ($chr eq "") {
- return "&" if @args;
- } elsif ($chr eq ";") {
- $doneok = 1;
- } elsif ($chr eq "@" or $chr eq "%") {
- push @reals, map($self->deparse($_, 6), @args);
- @args = ();
- } else {
- $arg = shift @args;
- last unless $arg;
- if ($chr eq "\$") {
- if (want_scalar $arg) {
- push @reals, $self->deparse($arg, 6);
- } else {
- return "&";
- }
- } elsif ($chr eq "&") {
- if ($arg->name =~ /^(s?refgen|undef)$/) {
- push @reals, $self->deparse($arg, 6);
- } else {
- return "&";
- }
- } elsif ($chr eq "*") {
- if ($arg->name =~ /^s?refgen$/
- and $arg->first->first->name eq "rv2gv")
- {
- $real = $arg->first->first; # skip refgen, null
- if ($real->first->name eq "gv") {
- push @reals, $self->deparse($real, 6);
- } else {
- push @reals, $self->deparse($real->first, 6);
- }
- } else {
- return "&";
- }
- } elsif (substr($chr, 0, 1) eq "\\") {
- $chr =~ tr/\\[]//d;
- if ($arg->name =~ /^s?refgen$/ and
- !null($real = $arg->first) and
- ($chr =~ /\$/ && is_scalar($real->first)
- or ($chr =~ /@/
- && class($real->first->sibling) ne 'NULL'
- && $real->first->sibling->name
- =~ /^(rv2|pad)av$/)
- or ($chr =~ /%/
- && class($real->first->sibling) ne 'NULL'
- && $real->first->sibling->name
- =~ /^(rv2|pad)hv$/)
- #or ($chr =~ /&/ # This doesn't work
- # && $real->first->name eq "rv2cv")
- or ($chr =~ /\*/
- && $real->first->name eq "rv2gv")))
- {
- push @reals, $self->deparse($real, 6);
- } else {
- return "&";
- }
- }
- }
- }
- return "&" if $proto and !$doneok; # too few args and no `;'
- return "&" if @args; # too many args
- return ("", join ", ", @reals);
-}
-
-sub pp_entersub {
- my $self = shift;
- my($op, $cx) = @_;
- return $self->method($op, $cx) unless null $op->first->sibling;
- my $prefix = "";
- my $amper = "";
- my($kid, @exprs);
- if ($op->flags & OPf_SPECIAL && !($op->flags & OPf_MOD)) {
- $prefix = "do ";
- } elsif ($op->private & OPpENTERSUB_AMPER) {
- $amper = "&";
- }
- $kid = $op->first;
- $kid = $kid->first->sibling; # skip ex-list, pushmark
- for (; not null $kid->sibling; $kid = $kid->sibling) {
- push @exprs, $kid;
- }
- my $simple = 0;
- my $proto = undef;
- if (is_scope($kid)) {
- $amper = "&";
- $kid = "{" . $self->deparse($kid, 0) . "}";
- } elsif ($kid->first->name eq "gv") {
- my $gv = $self->gv_or_padgv($kid->first);
- if (class($gv->CV) ne "SPECIAL") {
- $proto = $gv->CV->PV if $gv->CV->FLAGS & SVf_POK;
- }
- $simple = 1; # only calls of named functions can be prototyped
- $kid = $self->deparse($kid, 24);
- } elsif (is_scalar ($kid->first) && $kid->first->name ne 'rv2cv') {
- $amper = "&";
- $kid = $self->deparse($kid, 24);
- } else {
- $prefix = "";
- my $arrow = is_subscriptable($kid->first) ? "" : "->";
- $kid = $self->deparse($kid, 24) . $arrow;
- }
-
- # Doesn't matter how many prototypes there are, if
- # they haven't happened yet!
- my $declared;
- {
- no strict 'refs';
- no warnings 'uninitialized';
- $declared = exists $self->{'subs_declared'}{$kid}
- || (
- defined &{ %{$self->{'curstash'}."::"}->{$kid} }
- && !exists
- $self->{'subs_deparsed'}{$self->{'curstash'}."::".$kid}
- && defined prototype $self->{'curstash'}."::".$kid
- );
- if (!$declared && defined($proto)) {
- # Avoid "too early to check prototype" warning
- ($amper, $proto) = ('&');
- }
- }
-
- my $args;
- if ($declared and defined $proto and not $amper) {
- ($amper, $args) = $self->check_proto($proto, @exprs);
- if ($amper eq "&") {
- $args = join(", ", map($self->deparse($_, 6), @exprs));
- }
- } else {
- $args = join(", ", map($self->deparse($_, 6), @exprs));
- }
- if ($prefix or $amper) {
- if ($op->flags & OPf_STACKED) {
- return $prefix . $amper . $kid . "(" . $args . ")";
- } else {
- return $prefix . $amper. $kid;
- }
- } else {
- # glob() invocations can be translated into calls of
- # CORE::GLOBAL::glob with a second parameter, a number.
- # Reverse this.
- if ($kid eq "CORE::GLOBAL::glob") {
- $kid = "glob";
- $args =~ s/\s*,[^,]+$//;
- }
-
- # It's a syntax error to call CORE::GLOBAL::foo without a prefix,
- # so it must have been translated from a keyword call. Translate
- # it back.
- $kid =~ s/^CORE::GLOBAL:://;
-
- if (!$declared) {
- return "$kid(" . $args . ")";
- } elsif (defined $proto and $proto eq "") {
- return $kid;
- } elsif (defined $proto and $proto eq "\$" and is_scalar($exprs[0])) {
- return $self->maybe_parens_func($kid, $args, $cx, 16);
- } elsif (defined($proto) && $proto or $simple) {
- return $self->maybe_parens_func($kid, $args, $cx, 5);
- } else {
- return "$kid(" . $args . ")";
- }
- }
-}
-
-sub pp_enterwrite { unop(@_, "write") }
-
-# escape things that cause interpolation in double quotes,
-# but not character escapes
-sub uninterp {
- my($str) = @_;
- $str =~ s/(^|\G|[^\\])((?:\\\\)*)([\$\@]|\\[uUlLQE])/$1$2\\$3/g;
- return $str;
-}
-
-{
-my $bal;
-BEGIN {
- use re "eval";
- # Matches any string which is balanced with respect to {braces}
- $bal = qr(
- (?:
- [^\\{}]
- | \\\\
- | \\[{}]
- | \{(??{$bal})\}
- )*
- )x;
-}
-
-# the same, but treat $|, $), $( and $ at the end of the string differently
-sub re_uninterp {
- my($str) = @_;
-
- $str =~ s/
- ( ^|\G # $1
- | [^\\]
- )
-
- ( # $2
- (?:\\\\)*
- )
-
- ( # $3
- (\(\?\??\{$bal\}\)) # $4
- | [\$\@]
- (?!\||\)|\(|$)
- | \\[uUlLQE]
- )
-
- /length($4) ? "$1$2$4" : "$1$2\\$3"/xeg;
-
- return $str;
-}
-
-# This is for regular expressions with the /x modifier
-# We have to leave comments unmangled.
-sub re_uninterp_extended {
- my($str) = @_;
-
- $str =~ s/
- ( ^|\G # $1
- | [^\\]
- )
-
- ( # $2
- (?:\\\\)*
- )
-
- ( # $3
- ( \(\?\??\{$bal\}\) # $4 (skip over (?{}) and (??{}) blocks)
- | \#[^\n]* # (skip over comments)
- )
- | [\$\@]
- (?!\||\)|\(|$|\s)
- | \\[uUlLQE]
- )
-
- /length($4) ? "$1$2$4" : "$1$2\\$3"/xeg;
-
- return $str;
-}
-}
-
-my %unctrl = # portable to to EBCDIC
- (
- "\c@" => '\c@', # unused
- "\cA" => '\cA',
- "\cB" => '\cB',
- "\cC" => '\cC',
- "\cD" => '\cD',
- "\cE" => '\cE',
- "\cF" => '\cF',
- "\cG" => '\cG',
- "\cH" => '\cH',
- "\cI" => '\cI',
- "\cJ" => '\cJ',
- "\cK" => '\cK',
- "\cL" => '\cL',
- "\cM" => '\cM',
- "\cN" => '\cN',
- "\cO" => '\cO',
- "\cP" => '\cP',
- "\cQ" => '\cQ',
- "\cR" => '\cR',
- "\cS" => '\cS',
- "\cT" => '\cT',
- "\cU" => '\cU',
- "\cV" => '\cV',
- "\cW" => '\cW',
- "\cX" => '\cX',
- "\cY" => '\cY',
- "\cZ" => '\cZ',
- "\c[" => '\c[', # unused
- "\c\\" => '\c\\', # unused
- "\c]" => '\c]', # unused
- "\c_" => '\c_', # unused
- );
-
-# character escapes, but not delimiters that might need to be escaped
-sub escape_str { # ASCII, UTF8
- my($str) = @_;
- $str =~ s/(.)/ord($1) > 255 ? sprintf("\\x{%x}", ord($1)) : $1/eg;
- $str =~ s/\a/\\a/g;
-# $str =~ s/\cH/\\b/g; # \b means something different in a regex
- $str =~ s/\t/\\t/g;
- $str =~ s/\n/\\n/g;
- $str =~ s/\e/\\e/g;
- $str =~ s/\f/\\f/g;
- $str =~ s/\r/\\r/g;
- $str =~ s/([\cA-\cZ])/$unctrl{$1}/ge;
- $str =~ s/([[:^print:]])/sprintf("\\%03o", ord($1))/ge;
- return $str;
-}
-
-# For regexes with the /x modifier.
-# Leave whitespace unmangled.
-sub escape_extended_re {
- my($str) = @_;
- $str =~ s/(.)/ord($1) > 255 ? sprintf("\\x{%x}", ord($1)) : $1/eg;
- $str =~ s/([[:^print:]])/
- ($1 =~ y! \t\n!!) ? $1 : sprintf("\\%03o", ord($1))/ge;
- $str =~ s/\n/\n\f/g;
- return $str;
-}
-
-# Don't do this for regexen
-sub unback {
- my($str) = @_;
- $str =~ s/\\/\\\\/g;
- return $str;
-}
-
-# Remove backslashes which precede literal control characters,
-# to avoid creating ambiguity when we escape the latter.
-sub re_unback {
- my($str) = @_;
-
- # the insane complexity here is due to the behaviour of "\c\"
- $str =~ s/(^|[^\\]|\\c\\)(?<!\\c)\\(\\\\)*(?=[[:^print:]])/$1$2/g;
- return $str;
-}
-
-sub balanced_delim {
- my($str) = @_;
- my @str = split //, $str;
- my($ar, $open, $close, $fail, $c, $cnt);
- for $ar (['[',']'], ['(',')'], ['<','>'], ['{','}']) {
- ($open, $close) = @$ar;
- $fail = 0; $cnt = 0;
- for $c (@str) {
- if ($c eq $open) {
- $cnt++;
- } elsif ($c eq $close) {
- $cnt--;
- if ($cnt < 0) {
- # qq()() isn't ")("
- $fail = 1;
- last;
- }
- }
- }
- $fail = 1 if $cnt != 0;
- return ($open, "$open$str$close") if not $fail;
- }
- return ("", $str);
-}
-
-sub single_delim {
- my($q, $default, $str) = @_;
- return "$default$str$default" if $default and index($str, $default) == -1;
- if ($q ne 'qr') {
- (my $succeed, $str) = balanced_delim($str);
- return "$q$str" if $succeed;
- }
- for my $delim ('/', '"', '#') {
- return "$q$delim" . $str . $delim if index($str, $delim) == -1;
- }
- if ($default) {
- $str =~ s/$default/\\$default/g;
- return "$default$str$default";
- } else {
- $str =~ s[/][\\/]g;
- return "$q/$str/";
- }
-}
-
-sub const {
- my $sv = shift;
- if (class($sv) eq "SPECIAL") {
- return ('undef', '1', '0')[$$sv-1]; # sv_undef, sv_yes, sv_no
- } elsif (class($sv) eq "NULL") {
- return 'undef';
- } elsif ($sv->FLAGS & SVf_IOK) {
- return $sv->int_value;
- } elsif ($sv->FLAGS & SVf_NOK) {
- # try the default stringification
- my $r = "".$sv->NV;
- if ($r =~ /e/) {
- # If it's in scientific notation, we might have lost information
- return sprintf("%.20e", $sv->NV);
- }
- return $r;
- } elsif ($sv->FLAGS & SVf_ROK && $sv->can("RV")) {
- return "\\(" . const($sv->RV) . ")"; # constant folded
- } elsif ($sv->FLAGS & SVf_POK) {
- my $str = $sv->PV;
- if ($str =~ /[^ -~]/) { # ASCII for non-printing
- return single_delim("qq", '"', uninterp escape_str unback $str);
- } else {
- return single_delim("q", "'", unback $str);
- }
- } else {
- return "undef";
- }
-}
-
-sub const_sv {
- my $self = shift;
- my $op = shift;
- my $sv = $op->sv;
- # the constant could be in the pad (under useithreads)
- $sv = $self->padval($op->targ) unless $$sv;
- return $sv;
-}
-
-sub pp_const {
- my $self = shift;
- my($op, $cx) = @_;
- if ($op->private & OPpCONST_ARYBASE) {
- return '$[';
- }
-# if ($op->private & OPpCONST_BARE) { # trouble with `=>' autoquoting
-# return $self->const_sv($op)->PV;
-# }
- my $sv = $self->const_sv($op);
-# return const($sv);
- my $c = const $sv;
- return $c =~ /^-\d/ ? $self->maybe_parens($c, $cx, 21) : $c;
-}
-
-sub dq {
- my $self = shift;
- my $op = shift;
- my $type = $op->name;
- if ($type eq "const") {
- return '$[' if $op->private & OPpCONST_ARYBASE;
- return uninterp(escape_str(unback($self->const_sv($op)->as_string)));
- } elsif ($type eq "concat") {
- my $first = $self->dq($op->first);
- my $last = $self->dq($op->last);
-
- # Disambiguate "${foo}bar", "${foo}{bar}", "${foo}[1]"
- ($last =~ /^[A-Z\\\^\[\]_?]/ &&
- $first =~ s/([\$@])\^$/${1}{^}/) # "${^}W" etc
- || ($last =~ /^[{\[\w_]/ &&
- $first =~ s/([\$@])([A-Za-z_]\w*)$/${1}{$2}/);
-
- return $first . $last;
- } elsif ($type eq "uc") {
- return '\U' . $self->dq($op->first->sibling) . '\E';
- } elsif ($type eq "lc") {
- return '\L' . $self->dq($op->first->sibling) . '\E';
- } elsif ($type eq "ucfirst") {
- return '\u' . $self->dq($op->first->sibling);
- } elsif ($type eq "lcfirst") {
- return '\l' . $self->dq($op->first->sibling);
- } elsif ($type eq "quotemeta") {
- return '\Q' . $self->dq($op->first->sibling) . '\E';
- } elsif ($type eq "join") {
- return $self->deparse($op->last, 26); # was join($", @ary)
- } else {
- return $self->deparse($op, 26);
- }
-}
-
-sub pp_backtick {
- my $self = shift;
- my($op, $cx) = @_;
- # skip pushmark
- return single_delim("qx", '`', $self->dq($op->first->sibling));
-}
-
-sub dquote {
- my $self = shift;
- my($op, $cx) = @_;
- my $kid = $op->first->sibling; # skip ex-stringify, pushmark
- return $self->deparse($kid, $cx) if $self->{'unquote'};
- $self->maybe_targmy($kid, $cx,
- sub {single_delim("qq", '"', $self->dq($_[1]))});
-}
-
-# OP_STRINGIFY is a listop, but it only ever has one arg
-sub pp_stringify { maybe_targmy(@_, \&dquote) }
-
-# tr/// and s/// (and tr[][], tr[]//, tr###, etc)
-# note that tr(from)/to/ is OK, but not tr/from/(to)
-sub double_delim {
- my($from, $to) = @_;
- my($succeed, $delim);
- if ($from !~ m[/] and $to !~ m[/]) {
- return "/$from/$to/";
- } elsif (($succeed, $from) = balanced_delim($from) and $succeed) {
- if (($succeed, $to) = balanced_delim($to) and $succeed) {
- return "$from$to";
- } else {
- for $delim ('/', '"', '#') { # note no `'' -- s''' is special
- return "$from$delim$to$delim" if index($to, $delim) == -1;
- }
- $to =~ s[/][\\/]g;
- return "$from/$to/";
- }
- } else {
- for $delim ('/', '"', '#') { # note no '
- return "$delim$from$delim$to$delim"
- if index($to . $from, $delim) == -1;
- }
- $from =~ s[/][\\/]g;
- $to =~ s[/][\\/]g;
- return "/$from/$to/";
- }
-}
-
-# Only used by tr///, so backslashes hyphens
-sub pchr { # ASCII
- my($n) = @_;
- if ($n == ord '\\') {
- return '\\\\';
- } elsif ($n == ord "-") {
- return "\\-";
- } elsif ($n >= ord(' ') and $n <= ord('~')) {
- return chr($n);
- } elsif ($n == ord "\a") {
- return '\\a';
- } elsif ($n == ord "\b") {
- return '\\b';
- } elsif ($n == ord "\t") {
- return '\\t';
- } elsif ($n == ord "\n") {
- return '\\n';
- } elsif ($n == ord "\e") {
- return '\\e';
- } elsif ($n == ord "\f") {
- return '\\f';
- } elsif ($n == ord "\r") {
- return '\\r';
- } elsif ($n >= ord("\cA") and $n <= ord("\cZ")) {
- return '\\c' . chr(ord("@") + $n);
- } else {
-# return '\x' . sprintf("%02x", $n);
- return '\\' . sprintf("%03o", $n);
- }
-}
-
-sub collapse {
- my(@chars) = @_;
- my($str, $c, $tr) = ("");
- for ($c = 0; $c < @chars; $c++) {
- $tr = $chars[$c];
- $str .= pchr($tr);
- if ($c <= $#chars - 2 and $chars[$c + 1] == $tr + 1 and
- $chars[$c + 2] == $tr + 2)
- {
- for (; $c <= $#chars-1 and $chars[$c + 1] == $chars[$c] + 1; $c++)
- {}
- $str .= "-";
- $str .= pchr($chars[$c]);
- }
- }
- return $str;
-}
-
-sub tr_decode_byte {
- my($table, $flags) = @_;
- my(@table) = unpack("s*", $table);
- splice @table, 0x100, 1; # Number of subsequent elements
- my($c, $tr, @from, @to, @delfrom, $delhyphen);
- if ($table[ord "-"] != -1 and
- $table[ord("-") - 1] == -1 || $table[ord("-") + 1] == -1)
- {
- $tr = $table[ord "-"];
- $table[ord "-"] = -1;
- if ($tr >= 0) {
- @from = ord("-");
- @to = $tr;
- } else { # -2 ==> delete
- $delhyphen = 1;
- }
- }
- for ($c = 0; $c < @table; $c++) {
- $tr = $table[$c];
- if ($tr >= 0) {
- push @from, $c; push @to, $tr;
- } elsif ($tr == -2) {
- push @delfrom, $c;
- }
- }
- @from = (@from, @delfrom);
- if ($flags & OPpTRANS_COMPLEMENT) {
- my @newfrom = ();
- my %from;
- @from{@from} = (1) x @from;
- for ($c = 0; $c < 256; $c++) {
- push @newfrom, $c unless $from{$c};
- }
- @from = @newfrom;
- }
- unless ($flags & OPpTRANS_DELETE || !@to) {
- pop @to while $#to and $to[$#to] == $to[$#to -1];
- }
- my($from, $to);
- $from = collapse(@from);
- $to = collapse(@to);
- $from .= "-" if $delhyphen;
- return ($from, $to);
-}
-
-sub tr_chr {
- my $x = shift;
- if ($x == ord "-") {
- return "\\-";
- } elsif ($x == ord "\\") {
- return "\\\\";
- } else {
- return chr $x;
- }
-}
-
-# XXX This doesn't yet handle all cases correctly either
-
-sub tr_decode_utf8 {
- my($swash_hv, $flags) = @_;
- my %swash = $swash_hv->ARRAY;
- my $final = undef;
- $final = $swash{'FINAL'}->IV if exists $swash{'FINAL'};
- my $none = $swash{"NONE"}->IV;
- my $extra = $none + 1;
- my(@from, @delfrom, @to);
- my $line;
- foreach $line (split /\n/, $swash{'LIST'}->PV) {
- my($min, $max, $result) = split(/\t/, $line);
- $min = hex $min;
- if (length $max) {
- $max = hex $max;
- } else {
- $max = $min;
- }
- $result = hex $result;
- if ($result == $extra) {
- push @delfrom, [$min, $max];
- } else {
- push @from, [$min, $max];
- push @to, [$result, $result + $max - $min];
- }
- }
- for my $i (0 .. $#from) {
- if ($from[$i][0] == ord '-') {
- unshift @from, splice(@from, $i, 1);
- unshift @to, splice(@to, $i, 1);
- last;
- } elsif ($from[$i][1] == ord '-') {
- $from[$i][1]--;
- $to[$i][1]--;
- unshift @from, ord '-';
- unshift @to, ord '-';
- last;
- }
- }
- for my $i (0 .. $#delfrom) {
- if ($delfrom[$i][0] == ord '-') {
- push @delfrom, splice(@delfrom, $i, 1);
- last;
- } elsif ($delfrom[$i][1] == ord '-') {
- $delfrom[$i][1]--;
- push @delfrom, ord '-';
- last;
- }
- }
- if (defined $final and $to[$#to][1] != $final) {
- push @to, [$final, $final];
- }
- push @from, @delfrom;
- if ($flags & OPpTRANS_COMPLEMENT) {
- my @newfrom;
- my $next = 0;
- for my $i (0 .. $#from) {
- push @newfrom, [$next, $from[$i][0] - 1];
- $next = $from[$i][1] + 1;
- }
- @from = ();
- for my $range (@newfrom) {
- if ($range->[0] <= $range->[1]) {
- push @from, $range;
- }
- }
- }
- my($from, $to, $diff);
- for my $chunk (@from) {
- $diff = $chunk->[1] - $chunk->[0];
- if ($diff > 1) {
- $from .= tr_chr($chunk->[0]) . "-" . tr_chr($chunk->[1]);
- } elsif ($diff == 1) {
- $from .= tr_chr($chunk->[0]) . tr_chr($chunk->[1]);
- } else {
- $from .= tr_chr($chunk->[0]);
- }
- }
- for my $chunk (@to) {
- $diff = $chunk->[1] - $chunk->[0];
- if ($diff > 1) {
- $to .= tr_chr($chunk->[0]) . "-" . tr_chr($chunk->[1]);
- } elsif ($diff == 1) {
- $to .= tr_chr($chunk->[0]) . tr_chr($chunk->[1]);
- } else {
- $to .= tr_chr($chunk->[0]);
- }
- }
- #$final = sprintf("%04x", $final) if defined $final;
- #$none = sprintf("%04x", $none) if defined $none;
- #$extra = sprintf("%04x", $extra) if defined $extra;
- #print STDERR "final: $final\n none: $none\nextra: $extra\n";
- #print STDERR $swash{'LIST'}->PV;
- return (escape_str($from), escape_str($to));
-}
-
-sub pp_trans {
- my $self = shift;
- my($op, $cx) = @_;
- my($from, $to);
- if (class($op) eq "PVOP") {
- ($from, $to) = tr_decode_byte($op->pv, $op->private);
- } else { # class($op) eq "SVOP"
- ($from, $to) = tr_decode_utf8($op->sv->RV, $op->private);
- }
- my $flags = "";
- $flags .= "c" if $op->private & OPpTRANS_COMPLEMENT;
- $flags .= "d" if $op->private & OPpTRANS_DELETE;
- $to = "" if $from eq $to and $flags eq "";
- $flags .= "s" if $op->private & OPpTRANS_SQUASH;
- return "tr" . double_delim($from, $to) . $flags;
-}
-
-# Like dq(), but different
-sub re_dq {
- my $self = shift;
- my ($op, $extended) = @_;
-
- my $type = $op->name;
- if ($type eq "const") {
- return '$[' if $op->private & OPpCONST_ARYBASE;
- my $unbacked = re_unback($self->const_sv($op)->as_string);
- return re_uninterp_extended(escape_extended_re($unbacked))
- if $extended;
- return re_uninterp(escape_str($unbacked));
- } elsif ($type eq "concat") {
- my $first = $self->re_dq($op->first, $extended);
- my $last = $self->re_dq($op->last, $extended);
-
- # Disambiguate "${foo}bar", "${foo}{bar}", "${foo}[1]"
- ($last =~ /^[A-Z\\\^\[\]_?]/ &&
- $first =~ s/([\$@])\^$/${1}{^}/) # "${^}W" etc
- || ($last =~ /^[{\[\w_]/ &&
- $first =~ s/([\$@])([A-Za-z_]\w*)$/${1}{$2}/);
-
- return $first . $last;
- } elsif ($type eq "uc") {
- return '\U' . $self->re_dq($op->first->sibling, $extended) . '\E';
- } elsif ($type eq "lc") {
- return '\L' . $self->re_dq($op->first->sibling, $extended) . '\E';
- } elsif ($type eq "ucfirst") {
- return '\u' . $self->re_dq($op->first->sibling, $extended);
- } elsif ($type eq "lcfirst") {
- return '\l' . $self->re_dq($op->first->sibling, $extended);
- } elsif ($type eq "quotemeta") {
- return '\Q' . $self->re_dq($op->first->sibling, $extended) . '\E';
- } elsif ($type eq "join") {
- return $self->deparse($op->last, 26); # was join($", @ary)
- } else {
- return $self->deparse($op, 26);
- }
-}
-
-sub pure_string {
- my ($self, $op) = @_;
- my $type = $op->name;
-
- if ($type eq 'const') {
- return 1;
- }
- elsif ($type =~ /^[ul]c(first)?$/ || $type eq 'quotemeta') {
- return $self->pure_string($op->first->sibling);
- }
- elsif ($type eq 'join') {
- my $join_op = $op->first->sibling; # Skip pushmark
- return 0 unless $join_op->name eq 'null' && $join_op->targ eq OP_RV2SV;
-
- my $gvop = $join_op->first;
- return 0 unless $gvop->name eq 'gvsv';
- return 0 unless '"' eq $self->gv_name($self->gv_or_padgv($gvop));
-
- return 0 unless ${$join_op->sibling} eq ${$op->last};
- return 0 unless $op->last->name =~ /^(rv2|pad)av$/;
- }
- elsif ($type eq 'concat') {
- return $self->pure_string($op->first)
- && $self->pure_string($op->last);
- }
- elsif (is_scalar($op) || $type =~ /^[ah]elem(fast)?$/) {
- return 1;
- }
- else {
- return 0;
- }
-
- return 1;
-}
-
-sub regcomp {
- my $self = shift;
- my($op, $cx, $extended) = @_;
- my $kid = $op->first;
- $kid = $kid->first if $kid->name eq "regcmaybe";
- $kid = $kid->first if $kid->name eq "regcreset";
- return ($self->re_dq($kid, $extended), 1) if $self->pure_string($kid);
- return ($self->deparse($kid, $cx), 0);
-}
-
-sub pp_regcomp {
- my ($self, $op, $cx) = @_;
- return (($self->regcomp($op, $cx, 0))[0]);
-}
-
-# osmic acid -- see osmium tetroxide
-
-my %matchwords;
-map($matchwords{join "", sort split //, $_} = $_, 'cig', 'cog', 'cos', 'cogs',
- 'cox', 'go', 'is', 'ism', 'iso', 'mig', 'mix', 'osmic', 'ox', 'sic',
- 'sig', 'six', 'smog', 'so', 'soc', 'sog', 'xi');
-
-sub matchop {
- my $self = shift;
- my($op, $cx, $name, $delim) = @_;
- my $kid = $op->first;
- my ($binop, $var, $re) = ("", "", "");
- if ($op->flags & OPf_STACKED) {
- $binop = 1;
- $var = $self->deparse($kid, 20);
- $kid = $kid->sibling;
- }
- my $quote = 1;
- my $extended = ($op->pmflags & PMf_EXTENDED);
- if (null $kid) {
- my $unbacked = re_unback($op->precomp);
- if ($extended) {
- $re = re_uninterp_extended(escape_extended_re($unbacked));
- } else {
- $re = re_uninterp(escape_str(re_unback($op->precomp)));
- }
- } elsif ($kid->name ne 'regcomp') {
- carp("found ".$kid->name." where regcomp expected");
- } else {
- ($re, $quote) = $self->regcomp($kid, 1, $extended);
- }
- my $flags = "";
- $flags .= "c" if $op->pmflags & PMf_CONTINUE;
- $flags .= "g" if $op->pmflags & PMf_GLOBAL;
- $flags .= "i" if $op->pmflags & PMf_FOLD;
- $flags .= "m" if $op->pmflags & PMf_MULTILINE;
- $flags .= "o" if $op->pmflags & PMf_KEEP;
- $flags .= "s" if $op->pmflags & PMf_SINGLELINE;
- $flags .= "x" if $op->pmflags & PMf_EXTENDED;
- $flags = $matchwords{$flags} if $matchwords{$flags};
- if ($op->pmflags & PMf_ONCE) { # only one kind of delimiter works here
- $re =~ s/\?/\\?/g;
- $re = "?$re?";
- } elsif ($quote) {
- $re = single_delim($name, $delim, $re);
- }
- $re = $re . $flags if $quote;
- if ($binop) {
- return $self->maybe_parens("$var =~ $re", $cx, 20);
- } else {
- return $re;
- }
-}
-
-sub pp_match { matchop(@_, "m", "/") }
-sub pp_pushre { matchop(@_, "m", "/") }
-sub pp_qr { matchop(@_, "qr", "") }
-
-sub pp_split {
- my $self = shift;
- my($op, $cx) = @_;
- my($kid, @exprs, $ary, $expr);
- $kid = $op->first;
- # under ithreads pmreplroot is an integer, not an SV
- my $replroot = $kid->pmreplroot;
- if ( ( ref($replroot) && $$replroot ) ||
- ( !ref($replroot) && $replroot ) ) {
- $ary = $self->stash_variable('@', $self->gv_name($kid->pmreplroot));
- }
- for (; !null($kid); $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 6);
- }
-
- # handle special case of split(), and split(" ") that compiles to /\s+/
- $kid = $op->first;
- if ($kid->flags & OPf_SPECIAL
- && $exprs[0] eq '/\\s+/'
- && $kid->pmflags & PMf_SKIPWHITE ) {
- $exprs[0] = '" "';
- }
-
- $expr = "split(" . join(", ", @exprs) . ")";
- if ($ary) {
- return $self->maybe_parens("$ary = $expr", $cx, 7);
- } else {
- return $expr;
- }
-}
-
-# oxime -- any of various compounds obtained chiefly by the action of
-# hydroxylamine on aldehydes and ketones and characterized by the
-# bivalent grouping C=NOH [Webster's Tenth]
-
-my %substwords;
-map($substwords{join "", sort split //, $_} = $_, 'ego', 'egoism', 'em',
- 'es', 'ex', 'exes', 'gee', 'go', 'goes', 'ie', 'ism', 'iso', 'me',
- 'meese', 'meso', 'mig', 'mix', 'os', 'ox', 'oxime', 'see', 'seem',
- 'seg', 'sex', 'sig', 'six', 'smog', 'sog', 'some', 'xi');
-
-sub pp_subst {
- my $self = shift;
- my($op, $cx) = @_;
- my $kid = $op->first;
- my($binop, $var, $re, $repl) = ("", "", "", "");
- if ($op->flags & OPf_STACKED) {
- $binop = 1;
- $var = $self->deparse($kid, 20);
- $kid = $kid->sibling;
- }
- my $flags = "";
- if (null($op->pmreplroot)) {
- $repl = $self->dq($kid);
- $kid = $kid->sibling;
- } else {
- $repl = $op->pmreplroot->first; # skip substcont
- while ($repl->name eq "entereval") {
- $repl = $repl->first;
- $flags .= "e";
- }
- if ($op->pmflags & PMf_EVAL) {
- $repl = $self->deparse($repl, 0);
- } else {
- $repl = $self->dq($repl);
- }
- }
- my $extended = ($op->pmflags & PMf_EXTENDED);
- if (null $kid) {
- my $unbacked = re_unback($op->precomp);
- if ($extended) {
- $re = re_uninterp_extended(escape_extended_re($unbacked));
- }
- else {
- $re = re_uninterp(escape_str($unbacked));
- }
- } else {
- ($re) = $self->regcomp($kid, 1, $extended);
- }
- $flags .= "e" if $op->pmflags & PMf_EVAL;
- $flags .= "g" if $op->pmflags & PMf_GLOBAL;
- $flags .= "i" if $op->pmflags & PMf_FOLD;
- $flags .= "m" if $op->pmflags & PMf_MULTILINE;
- $flags .= "o" if $op->pmflags & PMf_KEEP;
- $flags .= "s" if $op->pmflags & PMf_SINGLELINE;
- $flags .= "x" if $extended;
- $flags = $substwords{$flags} if $substwords{$flags};
- if ($binop) {
- return $self->maybe_parens("$var =~ s"
- . double_delim($re, $repl) . $flags,
- $cx, 20);
- } else {
- return "s". double_delim($re, $repl) . $flags;
- }
-}
-
-1;
-__END__
-
-=head1 NAME
-
-B::Deparse - Perl compiler backend to produce perl code
-
-=head1 SYNOPSIS
-
-B<perl> B<-MO=Deparse>[B<,-u>I<PACKAGE>][B<,-p>][B<,-q>][B<,-l>]
- [B<,-s>I<LETTERS>][B<,-x>I<LEVEL>] I<prog.pl>
-
-=head1 DESCRIPTION
-
-B::Deparse is a backend module for the Perl compiler that generates
-perl source code, based on the internal compiled structure that perl
-itself creates after parsing a program. The output of B::Deparse won't
-be exactly the same as the original source, since perl doesn't keep
-track of comments or whitespace, and there isn't a one-to-one
-correspondence between perl's syntactical constructions and their
-compiled form, but it will often be close. When you use the B<-p>
-option, the output also includes parentheses even when they are not
-required by precedence, which can make it easy to see if perl is
-parsing your expressions the way you intended.
-
-Please note that this module is mainly new and untested code and is
-still under development, so it may change in the future.
-
-=head1 OPTIONS
-
-As with all compiler backend options, these must follow directly after
-the '-MO=Deparse', separated by a comma but not any white space.
-
-=over 4
-
-=item B<-l>
-
-Add '#line' declarations to the output based on the line and file
-locations of the original code.
-
-=item B<-p>
-
-Print extra parentheses. Without this option, B::Deparse includes
-parentheses in its output only when they are needed, based on the
-structure of your program. With B<-p>, it uses parentheses (almost)
-whenever they would be legal. This can be useful if you are used to
-LISP, or if you want to see how perl parses your input. If you say
-
- if ($var & 0x7f == 65) {print "Gimme an A!"}
- print ($which ? $a : $b), "\n";
- $name = $ENV{USER} or "Bob";
-
-C<B::Deparse,-p> will print
-
- if (($var & 0)) {
- print('Gimme an A!')
- };
- (print(($which ? $a : $b)), '???');
- (($name = $ENV{'USER'}) or '???')
-
-which probably isn't what you intended (the C<'???'> is a sign that
-perl optimized away a constant value).
-
-=item B<-P>
-
-Disable prototype checking. With this option, all function calls are
-deparsed as if no prototype was defined for them. In other words,
-
- perl -MO=Deparse,-P -e 'sub foo (\@) { 1 } foo @x'
-
-will print
-
- sub foo (\@) {
- 1;
- }
- &foo(\@x);
-
-making clear how the parameters are actually passed to C<foo>.
-
-=item B<-q>
-
-Expand double-quoted strings into the corresponding combinations of
-concatenation, uc, ucfirst, lc, lcfirst, quotemeta, and join. For
-instance, print
-
- print "Hello, $world, @ladies, \u$gentlemen\E, \u\L$me!";
-
-as
-
- print 'Hello, ' . $world . ', ' . join($", @ladies) . ', '
- . ucfirst($gentlemen) . ', ' . ucfirst(lc $me . '!');
-
-Note that the expanded form represents the way perl handles such
-constructions internally -- this option actually turns off the reverse
-translation that B::Deparse usually does. On the other hand, note that
-C<$x = "$y"> is not the same as C<$x = $y>: the former makes the value
-of $y into a string before doing the assignment.
-
-=item B<-f>I<FILE>
-
-Normally, B::Deparse deparses the main code of a program, and all the subs
-defined in the same file. To include subs defined in other files, pass the
-B<-f> option with the filename. You can pass the B<-f> option several times, to
-include more than one secondary file. (Most of the time you don't want to
-use it at all.) You can also use this option to include subs which are
-defined in the scope of a B<#line> directive with two parameters.
-
-=item B<-s>I<LETTERS>
-
-Tweak the style of B::Deparse's output. The letters should follow
-directly after the 's', with no space or punctuation. The following
-options are available:
-
-=over 4
-
-=item B<C>
-
-Cuddle C<elsif>, C<else>, and C<continue> blocks. For example, print
-
- if (...) {
- ...
- } else {
- ...
- }
-
-instead of
-
- if (...) {
- ...
- }
- else {
- ...
- }
-
-The default is not to cuddle.
-
-=item B<i>I<NUMBER>
-
-Indent lines by multiples of I<NUMBER> columns. The default is 4 columns.
-
-=item B<T>
-
-Use tabs for each 8 columns of indent. The default is to use only spaces.
-For instance, if the style options are B<-si4T>, a line that's indented
-3 times will be preceded by one tab and four spaces; if the options were
-B<-si8T>, the same line would be preceded by three tabs.
-
-=item B<v>I<STRING>B<.>
-
-Print I<STRING> for the value of a constant that can't be determined
-because it was optimized away (mnemonic: this happens when a constant
-is used in B<v>oid context). The end of the string is marked by a period.
-The string should be a valid perl expression, generally a constant.
-Note that unless it's a number, it probably needs to be quoted, and on
-a command line quotes need to be protected from the shell. Some
-conventional values include 0, 1, 42, '', 'foo', and
-'Useless use of constant omitted' (which may need to be
-B<-sv"'Useless use of constant omitted'.">
-or something similar depending on your shell). The default is '???'.
-If you're using B::Deparse on a module or other file that's require'd,
-you shouldn't use a value that evaluates to false, since the customary
-true constant at the end of a module will be in void context when the
-file is compiled as a main program.
-
-=back
-
-=item B<-x>I<LEVEL>
-
-Expand conventional syntax constructions into equivalent ones that expose
-their internal operation. I<LEVEL> should be a digit, with higher values
-meaning more expansion. As with B<-q>, this actually involves turning off
-special cases in B::Deparse's normal operations.
-
-If I<LEVEL> is at least 3, for loops will be translated into equivalent
-while loops with continue blocks; for instance
-
- for ($i = 0; $i < 10; ++$i) {
- print $i;
- }
-
-turns into
-
- $i = 0;
- while ($i < 10) {
- print $i;
- } continue {
- ++$i
- }
-
-Note that in a few cases this translation can't be perfectly carried back
-into the source code -- if the loop's initializer declares a my variable,
-for instance, it won't have the correct scope outside of the loop.
-
-If I<LEVEL> is at least 7, if statements will be translated into equivalent
-expressions using C<&&>, C<?:> and C<do {}>; for instance
-
- print 'hi' if $nice;
- if ($nice) {
- print 'hi';
- }
- if ($nice) {
- print 'hi';
- } else {
- print 'bye';
- }
-
-turns into
-
- $nice and print 'hi';
- $nice and do { print 'hi' };
- $nice ? do { print 'hi' } : do { print 'bye' };
-
-Long sequences of elsifs will turn into nested ternary operators, which
-B::Deparse doesn't know how to indent nicely.
-
-=back
-
-=head1 USING B::Deparse AS A MODULE
-
-=head2 Synopsis
-
- use B::Deparse;
- $deparse = B::Deparse->new("-p", "-sC");
- $body = $deparse->coderef2text(\&func);
- eval "sub func $body"; # the inverse operation
-
-=head2 Description
-
-B::Deparse can also be used on a sub-by-sub basis from other perl
-programs.
-
-=head2 new
-
- $deparse = B::Deparse->new(OPTIONS)
-
-Create an object to store the state of a deparsing operation and any
-options. The options are the same as those that can be given on the
-command line (see L</OPTIONS>); options that are separated by commas
-after B<-MO=Deparse> should be given as separate strings. Some
-options, like B<-u>, don't make sense for a single subroutine, so
-don't pass them.
-
-=head2 ambient_pragmas
-
- $deparse->ambient_pragmas(strict => 'all', '$[' => $[);
-
-The compilation of a subroutine can be affected by a few compiler
-directives, B<pragmas>. These are:
-
-=over 4
-
-=item *
-
-use strict;
-
-=item *
-
-use warnings;
-
-=item *
-
-Assigning to the special variable $[
-
-=item *
-
-use integer;
-
-=item *
-
-use bytes;
-
-=item *
-
-use utf8;
-
-=item *
-
-use re;
-
-=back
-
-Ordinarily, if you use B::Deparse on a subroutine which has
-been compiled in the presence of one or more of these pragmas,
-the output will include statements to turn on the appropriate
-directives. So if you then compile the code returned by coderef2text,
-it will behave the same way as the subroutine which you deparsed.
-
-However, you may know that you intend to use the results in a
-particular context, where some pragmas are already in scope. In
-this case, you use the B<ambient_pragmas> method to describe the
-assumptions you wish to make.
-
-Not all of the options currently have any useful effect. See
-L</BUGS> for more details.
-
-The parameters it accepts are:
-
-=over 4
-
-=item strict
-
-Takes a string, possibly containing several values separated
-by whitespace. The special values "all" and "none" mean what you'd
-expect.
-
- $deparse->ambient_pragmas(strict => 'subs refs');
-
-=item $[
-
-Takes a number, the value of the array base $[.
-
-=item bytes
-
-=item utf8
-
-=item integer
-
-If the value is true, then the appropriate pragma is assumed to
-be in the ambient scope, otherwise not.
-
-=item re
-
-Takes a string, possibly containing a whitespace-separated list of
-values. The values "all" and "none" are special. It's also permissible
-to pass an array reference here.
-
- $deparser->ambient_pragmas(re => 'eval');
-
-
-=item warnings
-
-Takes a string, possibly containing a whitespace-separated list of
-values. The values "all" and "none" are special, again. It's also
-permissible to pass an array reference here.
-
- $deparser->ambient_pragmas(warnings => [qw[void io]]);
-
-If one of the values is the string "FATAL", then all the warnings
-in that list will be considered fatal, just as with the B<warnings>
-pragma itself. Should you need to specify that some warnings are
-fatal, and others are merely enabled, you can pass the B<warnings>
-parameter twice:
-
- $deparser->ambient_pragmas(
- warnings => 'all',
- warnings => [FATAL => qw/void io/],
- );
-
-See L<perllexwarn> for more information about lexical warnings.
-
-=item hint_bits
-
-=item warning_bits
-
-These two parameters are used to specify the ambient pragmas in
-the format used by the special variables $^H and ${^WARNING_BITS}.
-
-They exist principally so that you can write code like:
-
- { my ($hint_bits, $warning_bits);
- BEGIN {($hint_bits, $warning_bits) = ($^H, ${^WARNING_BITS})}
- $deparser->ambient_pragmas (
- hint_bits => $hint_bits,
- warning_bits => $warning_bits,
- '$[' => 0 + $[
- ); }
-
-which specifies that the ambient pragmas are exactly those which
-are in scope at the point of calling.
-
-=back
-
-=head2 coderef2text
-
- $body = $deparse->coderef2text(\&func)
- $body = $deparse->coderef2text(sub ($$) { ... })
-
-Return source code for the body of a subroutine (a block, optionally
-preceded by a prototype in parens), given a reference to the
-sub. Because a subroutine can have no names, or more than one name,
-this method doesn't return a complete subroutine definition -- if you
-want to eval the result, you should prepend "sub subname ", or "sub "
-for an anonymous function constructor. Unless the sub was defined in
-the main:: package, the code will include a package declaration.
-
-=head1 BUGS
-
-=over 4
-
-=item *
-
-The only pragmas to be completely supported are: C<use warnings>,
-C<use strict 'refs'>, C<use bytes>, and C<use integer>. (C<$[>, which
-behaves like a pragma, is also supported.)
-
-Excepting those listed above, we're currently unable to guarantee that
-B::Deparse will produce a pragma at the correct point in the program.
-Since the effects of pragmas are often lexically scoped, this can mean
-that the pragma holds sway over a different portion of the program
-than in the input file.
-
-=item *
-
-In fact, the above is a specific instance of a more general problem:
-we can't guarantee to produce BEGIN blocks or C<use> declarations in
-exactly the right place. So if you use a module which affects compilation
-(such as by over-riding keywords, overloading constants or whatever)
-then the output code might not work as intended.
-
-This is the most serious outstanding problem, and will be very hard
-to fix.
-
-=item *
-
-If a keyword is over-ridden, and your program explicitly calls
-the built-in version by using CORE::keyword, the output of B::Deparse
-will not reflect this. If you run the resulting code, it will call
-the over-ridden version rather than the built-in one. (Maybe there
-should be an option to B<always> print keyword calls as C<CORE::name>.)
-
-=item *
-
-C<sort foo (1, 2, 3)> comes out as C<sort (foo 1, 2, 3)>, which
-causes perl to issue a warning.
-
-The obvious fix doesn't work, because these are different:
-
- print (FOO 1, 2, 3), 4, 5, 6;
- print FOO (1, 2, 3), 4, 5, 6;
-
-=item *
-
-Constants (other than simple strings or numbers) don't work properly.
-Pathological examples that fail (and probably always will) include:
-
- use constant E2BIG => ($!=7);
- use constant x=>\$x; print x
-
-The following could (and should) be made to work:
-
- use constant regex => qr/blah/;
- print regex;
-
-=item *
-
-An input file that uses source filtering probably won't be deparsed into
-runnable code, because it will still include the B<use> declaration
-for the source filtering module, even though the code that is
-produced is already ordinary Perl which shouldn't be filtered again.
-
-=item *
-
-There are probably many more bugs on non-ASCII platforms (EBCDIC).
-
-=back
-
-=head1 AUTHOR
-
-Stephen McCamant <smcc@CSUA.Berkeley.EDU>, based on an earlier
-version by Malcolm Beattie <mbeattie@sable.ox.ac.uk>, with
-contributions from Gisle Aas, James Duncan, Albert Dvornik, Robin
-Houston, Hugo van der Sanden, Gurusamy Sarathy, Nick Ing-Simmons,
-and Rafael Garcia-Suarez.
-
-=cut
diff --git a/Master/xemtex/perl/lib/Carp.pm b/Master/xemtex/perl/lib/Carp.pm
deleted file mode 100644
index 6199f894487..00000000000
--- a/Master/xemtex/perl/lib/Carp.pm
+++ /dev/null
@@ -1,196 +0,0 @@
-package Carp;
-
-our $VERSION = '1.01';
-
-=head1 NAME
-
-carp - warn of errors (from perspective of caller)
-
-cluck - warn of errors with stack backtrace
- (not exported by default)
-
-croak - die of errors (from perspective of caller)
-
-confess - die of errors with stack backtrace
-
-shortmess - return the message that carp and croak produce
-
-longmess - return the message that cluck and confess produce
-
-=head1 SYNOPSIS
-
- use Carp;
- croak "We're outta here!";
-
- use Carp qw(cluck);
- cluck "This is how we got here!";
-
- print FH Carp::shortmess("This will have caller's details added");
- print FH Carp::longmess("This will have stack backtrace added");
-
-=head1 DESCRIPTION
-
-The Carp routines are useful in your own modules because
-they act like die() or warn(), but with a message which is more
-likely to be useful to a user of your module. In the case of
-cluck, confess, and longmess that context is a summary of every
-call in the call-stack. For a shorter message you can use carp,
-croak or shortmess which report the error as being from where
-your module was called. There is no guarantee that that is where
-the error was, but it is a good educated guess.
-
-Here is a more complete description of how shortmess works. What
-it does is search the call-stack for a function call stack where
-it hasn't been told that there shouldn't be an error. If every
-call is marked safe, it then gives up and gives a full stack
-backtrace instead. In other words it presumes that the first likely
-looking potential suspect is guilty. Its rules for telling whether
-a call shouldn't generate errors work as follows:
-
-=over 4
-
-=item 1.
-
-Any call from a package to itself is safe.
-
-=item 2.
-
-Packages claim that there won't be errors on calls to or from
-packages explicitly marked as safe by inclusion in @CARP_NOT, or
-(if that array is empty) @ISA. The ability to override what
-@ISA says is new in 5.8.
-
-=item 3.
-
-The trust in item 2 is transitive. If A trusts B, and B
-trusts C, then A trusts C. So if you do not override @ISA
-with @CARP_NOT, then this trust relationship is identical to,
-"inherits from".
-
-=item 4.
-
-Any call from an internal Perl module is safe. (Nothing keeps
-user modules from marking themselves as internal to Perl, but
-this practice is discouraged.)
-
-=item 5.
-
-Any call to Carp is safe. (This rule is what keeps it from
-reporting the error where you call carp/croak/shortmess.)
-
-=back
-
-=head2 Forcing a Stack Trace
-
-As a debugging aid, you can force Carp to treat a croak as a confess
-and a carp as a cluck across I<all> modules. In other words, force a
-detailed stack trace to be given. This can be very helpful when trying
-to understand why, or from where, a warning or error is being generated.
-
-This feature is enabled by 'importing' the non-existent symbol
-'verbose'. You would typically enable it by saying
-
- perl -MCarp=verbose script.pl
-
-or by including the string C<MCarp=verbose> in the PERL5OPT
-environment variable.
-
-=head1 BUGS
-
-The Carp routines don't handle exception objects currently.
-If called with a first argument that is a reference, they simply
-call die() or warn(), as appropriate.
-
-=cut
-
-# This package is heavily used. Be small. Be fast. Be good.
-
-# Comments added by Andy Wardley <abw@kfs.org> 09-Apr-98, based on an
-# _almost_ complete understanding of the package. Corrections and
-# comments are welcome.
-
-# The members of %Internal are packages that are internal to perl.
-# Carp will not report errors from within these packages if it
-# can. The members of %CarpInternal are internal to Perl's warning
-# system. Carp will not report errors from within these packages
-# either, and will not report calls *to* these packages for carp and
-# croak. They replace $CarpLevel, which is deprecated. The
-# $Max(EvalLen|(Arg(Len|Nums)) variables are used to specify how the eval
-# text and function arguments should be formatted when printed.
-
-$CarpInternal{Carp}++;
-$CarpInternal{warnings}++;
-$CarpLevel = 0; # How many extra package levels to skip on carp.
- # How many calls to skip on confess.
- # Reconciling these notions is hard, use
- # %Internal and %CarpInternal instead.
-$MaxEvalLen = 0; # How much eval '...text...' to show. 0 = all.
-$MaxArgLen = 64; # How much of each argument to print. 0 = all.
-$MaxArgNums = 8; # How many arguments to print. 0 = all.
-$Verbose = 0; # If true then make shortmess call longmess instead
-
-require Exporter;
-@ISA = ('Exporter');
-@EXPORT = qw(confess croak carp);
-@EXPORT_OK = qw(cluck verbose longmess shortmess);
-@EXPORT_FAIL = qw(verbose); # hook to enable verbose mode
-
-
-# if the caller specifies verbose usage ("perl -MCarp=verbose script.pl")
-# then the following method will be called by the Exporter which knows
-# to do this thanks to @EXPORT_FAIL, above. $_[1] will contain the word
-# 'verbose'.
-
-sub export_fail {
- shift;
- $Verbose = shift if $_[0] eq 'verbose';
- return @_;
-}
-
-
-# longmess() crawls all the way up the stack reporting on all the function
-# calls made. The error string, $error, is originally constructed from the
-# arguments passed into longmess() via confess(), cluck() or shortmess().
-# This gets appended with the stack trace messages which are generated for
-# each function call on the stack.
-
-sub longmess {
- { local $@; require Carp::Heavy; } # XXX fix require to not clear $@?
- # Icky backwards compatibility wrapper. :-(
- my $call_pack = caller();
- if ($Internal{$call_pack} or $CarpInternal{$call_pack}) {
- return longmess_heavy(@_);
- }
- else {
- local $CarpLevel = $CarpLevel + 1;
- return longmess_heavy(@_);
- }
-}
-
-
-# shortmess() is called by carp() and croak() to skip all the way up to
-# the top-level caller's package and report the error from there. confess()
-# and cluck() generate a full stack trace so they call longmess() to
-# generate that. In verbose mode shortmess() calls longmess() so
-# you always get a stack trace
-
-sub shortmess { # Short-circuit &longmess if called via multiple packages
- { local $@; require Carp::Heavy; } # XXX fix require to not clear $@?
- # Icky backwards compatibility wrapper. :-(
- my $call_pack = caller();
- local @CARP_NOT = caller();
- shortmess_heavy(@_);
-}
-
-
-# the following four functions call longmess() or shortmess() depending on
-# whether they should generate a full stack trace (confess() and cluck())
-# or simply report the caller's package (croak() and carp()), respectively.
-# confess() and croak() die, carp() and cluck() warn.
-
-sub croak { die shortmess @_ }
-sub confess { die longmess @_ }
-sub carp { warn shortmess @_ }
-sub cluck { warn longmess @_ }
-
-1;
diff --git a/Master/xemtex/perl/lib/Carp/Heavy.pm b/Master/xemtex/perl/lib/Carp/Heavy.pm
deleted file mode 100644
index c3d3c26fa1a..00000000000
--- a/Master/xemtex/perl/lib/Carp/Heavy.pm
+++ /dev/null
@@ -1,247 +0,0 @@
-# Carp::Heavy uses some variables in common with Carp.
-package Carp;
-
-=head1 NAME
-
-Carp heavy machinery - no user serviceable parts inside
-
-=cut
-
-# use strict; # not yet
-
-# On one line so MakeMaker will see it.
-use Carp; our $VERSION = $Carp::VERSION;
-
-our ($CarpLevel, $MaxArgNums, $MaxEvalLen, $MaxArgLen, $Verbose);
-
-sub caller_info {
- my $i = shift(@_) + 1;
- package DB;
- my %call_info;
- @call_info{
- qw(pack file line sub has_args wantarray evaltext is_require)
- } = caller($i);
-
- unless (defined $call_info{pack}) {
- return ();
- }
-
- my $sub_name = Carp::get_subname(\%call_info);
- if ($call_info{has_args}) {
- my @args = map {Carp::format_arg($_)} @DB::args;
- if ($MaxArgNums and @args > $MaxArgNums) { # More than we want to show?
- $#args = $MaxArgNums;
- push @args, '...';
- }
- # Push the args onto the subroutine
- $sub_name .= '(' . join (',', @args) . ')';
- }
- $call_info{sub_name} = $sub_name;
- return wantarray() ? %call_info : \%call_info;
-}
-
-# Transform an argument to a function into a string.
-sub format_arg {
- my $arg = shift;
- if (not defined($arg)) {
- $arg = 'undef';
- }
- elsif (ref($arg)) {
- $arg = defined($overload::VERSION) ? overload::StrVal($arg) : "$arg";
- }
- $arg =~ s/'/\\'/g;
- $arg = str_len_trim($arg, $MaxArgLen);
-
- # Quote it?
- $arg = "'$arg'" unless $arg =~ /^-?[\d.]+\z/;
-
- # The following handling of "control chars" is direct from
- # the original code - I think it is broken on Unicode though.
- # Suggestions?
- $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg;
- return $arg;
-}
-
-# Takes an inheritance cache and a package and returns
-# an anon hash of known inheritances and anon array of
-# inheritances which consequences have not been figured
-# for.
-sub get_status {
- my $cache = shift;
- my $pkg = shift;
- $cache->{$pkg} ||= [{$pkg => $pkg}, [trusts_directly($pkg)]];
- return @{$cache->{$pkg}};
-}
-
-# Takes the info from caller() and figures out the name of
-# the sub/require/eval
-sub get_subname {
- my $info = shift;
- if (defined($info->{evaltext})) {
- my $eval = $info->{evaltext};
- if ($info->{is_require}) {
- return "require $eval";
- }
- else {
- $eval =~ s/([\\\'])/\\$1/g;
- return "eval '" . str_len_trim($eval, $MaxEvalLen) . "'";
- }
- }
-
- return ($info->{sub} eq '(eval)') ? 'eval {...}' : $info->{sub};
-}
-
-# Figures out what call (from the point of view of the caller)
-# the long error backtrace should start at.
-sub long_error_loc {
- my $i;
- my $lvl = $CarpLevel;
- {
- my $pkg = caller(++$i);
- unless(defined($pkg)) {
- # This *shouldn't* happen.
- if (%Internal) {
- local %Internal;
- $i = long_error_loc();
- last;
- }
- else {
- # OK, now I am irritated.
- return 2;
- }
- }
- redo if $CarpInternal{$pkg};
- redo unless 0 > --$lvl;
- redo if $Internal{$pkg};
- }
- return $i - 1;
-}
-
-
-sub longmess_heavy {
- return @_ if ref($_[0]); # don't break references as exceptions
- my $i = long_error_loc();
- return ret_backtrace($i, @_);
-}
-
-# Returns a full stack backtrace starting from where it is
-# told.
-sub ret_backtrace {
- my ($i, @error) = @_;
- my $mess;
- my $err = join '', @error;
- $i++;
-
- my $tid_msg = '';
- if (defined &Thread::tid) {
- my $tid = Thread->self->tid;
- $tid_msg = " thread $tid" if $tid;
- }
-
- { if ($err =~ /\n$/) { # extra block to localise $1 etc
- $mess = $err;
- }
- else {
- my %i = caller_info($i);
- $mess = "$err at $i{file} line $i{line}$tid_msg\n";
- }}
-
- while (my %i = caller_info(++$i)) {
- $mess .= "\t$i{sub_name} called at $i{file} line $i{line}$tid_msg\n";
- }
-
- return $mess;
-}
-
-sub ret_summary {
- my ($i, @error) = @_;
- my $mess;
- my $err = join '', @error;
- $i++;
-
- my $tid_msg = '';
- if (defined &Thread::tid) {
- my $tid = Thread->self->tid;
- $tid_msg = " thread $tid" if $tid;
- }
-
- my %i = caller_info($i);
- return "$err at $i{file} line $i{line}$tid_msg\n";
-}
-
-
-sub short_error_loc {
- my $cache;
- my $i = 1;
- my $lvl = $CarpLevel;
- {
- my $called = caller($i++);
- my $caller = caller($i);
- return 0 unless defined($caller); # What happened?
- redo if $Internal{$caller};
- redo if $CarpInternal{$called};
- redo if trusts($called, $caller, $cache);
- redo if trusts($caller, $called, $cache);
- redo unless 0 > --$lvl;
- }
- return $i - 1;
-}
-
-sub shortmess_heavy {
- return longmess_heavy(@_) if $Verbose;
- return @_ if ref($_[0]); # don't break references as exceptions
- my $i = short_error_loc();
- if ($i) {
- ret_summary($i, @_);
- }
- else {
- longmess_heavy(@_);
- }
-}
-
-# If a string is too long, trims it with ...
-sub str_len_trim {
- my $str = shift;
- my $max = shift || 0;
- if (2 < $max and $max < length($str)) {
- substr($str, $max - 3) = '...';
- }
- return $str;
-}
-
-# Takes two packages and an optional cache. Says whether the
-# first inherits from the second.
-#
-# Recursive versions of this have to work to avoid certain
-# possible endless loops, and when following long chains of
-# inheritance are less efficient.
-sub trusts {
- my $child = shift;
- my $parent = shift;
- my $cache = shift || {};
- my ($known, $partial) = get_status($cache, $child);
- # Figure out consequences until we have an answer
- while (@$partial and not exists $known->{$parent}) {
- my $anc = shift @$partial;
- next if exists $known->{$anc};
- $known->{$anc}++;
- my ($anc_knows, $anc_partial) = get_status($cache, $anc);
- my @found = keys %$anc_knows;
- @$known{@found} = ();
- push @$partial, @$anc_partial;
- }
- return exists $known->{$parent};
-}
-
-# Takes a package and gives a list of those trusted directly
-sub trusts_directly {
- my $class = shift;
- no strict 'refs';
- no warnings 'once';
- return @{"$class\::CARP_NOT"}
- ? @{"$class\::CARP_NOT"}
- : @{"$class\::ISA"};
-}
-
-1;
-
diff --git a/Master/xemtex/perl/lib/Class/Struct.pm b/Master/xemtex/perl/lib/Class/Struct.pm
deleted file mode 100644
index bad4f78165f..00000000000
--- a/Master/xemtex/perl/lib/Class/Struct.pm
+++ /dev/null
@@ -1,632 +0,0 @@
-package Class::Struct;
-
-## See POD after __END__
-
-use 5.006_001;
-
-use strict;
-use warnings::register;
-our(@ISA, @EXPORT, $VERSION);
-
-use Carp;
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(struct);
-
-$VERSION = '0.61';
-
-## Tested on 5.002 and 5.003 without class membership tests:
-my $CHECK_CLASS_MEMBERSHIP = ($] >= 5.003_95);
-
-my $print = 0;
-sub printem {
- if (@_) { $print = shift }
- else { $print++ }
-}
-
-{
- package Class::Struct::Tie_ISA;
-
- sub TIEARRAY {
- my $class = shift;
- return bless [], $class;
- }
-
- sub STORE {
- my ($self, $index, $value) = @_;
- Class::Struct::_subclass_error();
- }
-
- sub FETCH {
- my ($self, $index) = @_;
- $self->[$index];
- }
-
- sub FETCHSIZE {
- my $self = shift;
- return scalar(@$self);
- }
-
- sub DESTROY { }
-}
-
-sub import {
- my $self = shift;
-
- if ( @_ == 0 ) {
- $self->export_to_level( 1, $self, @EXPORT );
- } elsif ( @_ == 1 ) {
- # This is admittedly a little bit silly:
- # do we ever export anything else than 'struct'...?
- $self->export_to_level( 1, $self, @_ );
- } else {
- &struct;
- }
-}
-
-sub struct {
-
- # Determine parameter list structure, one of:
- # struct( class => [ element-list ])
- # struct( class => { element-list })
- # struct( element-list )
- # Latter form assumes current package name as struct name.
-
- my ($class, @decls);
- my $base_type = ref $_[1];
- if ( $base_type eq 'HASH' ) {
- $class = shift;
- @decls = %{shift()};
- _usage_error() if @_;
- }
- elsif ( $base_type eq 'ARRAY' ) {
- $class = shift;
- @decls = @{shift()};
- _usage_error() if @_;
- }
- else {
- $base_type = 'ARRAY';
- $class = (caller())[0];
- @decls = @_;
- }
-
- _usage_error() if @decls % 2 == 1;
-
- # Ensure we are not, and will not be, a subclass.
-
- my $isa = do {
- no strict 'refs';
- \@{$class . '::ISA'};
- };
- _subclass_error() if @$isa;
- tie @$isa, 'Class::Struct::Tie_ISA';
-
- # Create constructor.
-
- croak "function 'new' already defined in package $class"
- if do { no strict 'refs'; defined &{$class . "::new"} };
-
- my @methods = ();
- my %refs = ();
- my %arrays = ();
- my %hashes = ();
- my %classes = ();
- my $got_class = 0;
- my $out = '';
-
- $out = "{\n package $class;\n use Carp;\n sub new {\n";
- $out .= " my (\$class, \%init) = \@_;\n";
- $out .= " \$class = __PACKAGE__ unless \@_;\n";
-
- my $cnt = 0;
- my $idx = 0;
- my( $cmt, $name, $type, $elem );
-
- if( $base_type eq 'HASH' ){
- $out .= " my(\$r) = {};\n";
- $cmt = '';
- }
- elsif( $base_type eq 'ARRAY' ){
- $out .= " my(\$r) = [];\n";
- }
- while( $idx < @decls ){
- $name = $decls[$idx];
- $type = $decls[$idx+1];
- push( @methods, $name );
- if( $base_type eq 'HASH' ){
- $elem = "{'${class}::$name'}";
- }
- elsif( $base_type eq 'ARRAY' ){
- $elem = "[$cnt]";
- ++$cnt;
- $cmt = " # $name";
- }
- if( $type =~ /^\*(.)/ ){
- $refs{$name}++;
- $type = $1;
- }
- my $init = "defined(\$init{'$name'}) ? \$init{'$name'} :";
- if( $type eq '@' ){
- $out .= " croak 'Initializer for $name must be array reference'\n";
- $out .= " if defined(\$init{'$name'}) && ref(\$init{'$name'}) ne 'ARRAY';\n";
- $out .= " \$r->$elem = $init [];$cmt\n";
- $arrays{$name}++;
- }
- elsif( $type eq '%' ){
- $out .= " croak 'Initializer for $name must be hash reference'\n";
- $out .= " if defined(\$init{'$name'}) && ref(\$init{'$name'}) ne 'HASH';\n";
- $out .= " \$r->$elem = $init {};$cmt\n";
- $hashes{$name}++;
- }
- elsif ( $type eq '$') {
- $out .= " \$r->$elem = $init undef;$cmt\n";
- }
- elsif( $type =~ /^\w+(?:::\w+)*$/ ){
- $out .= " if (defined(\$init{'$name'})) {\n";
- $out .= " if (ref \$init{'$name'} eq 'HASH')\n";
- $out .= " { \$r->$elem = $type->new(\%{\$init{'$name'}}) } $cmt\n";
- $out .= " elsif (UNIVERSAL::isa(\$init{'$name'}, '$type'))\n";
- $out .= " { \$r->$elem = \$init{'$name'} } $cmt\n";
- $out .= " else { croak 'Initializer for $name must be hash or $type reference' }\n";
- $out .= " }\n";
- $classes{$name} = $type;
- $got_class = 1;
- }
- else{
- croak "'$type' is not a valid struct element type";
- }
- $idx += 2;
- }
- $out .= " bless \$r, \$class;\n }\n";
-
- # Create accessor methods.
-
- my( $pre, $pst, $sel );
- $cnt = 0;
- foreach $name (@methods){
- if ( do { no strict 'refs'; defined &{$class . "::$name"} } ) {
- warnings::warnif("function '$name' already defined, overrides struct accessor method");
- }
- else {
- $pre = $pst = $cmt = $sel = '';
- if( defined $refs{$name} ){
- $pre = "\\(";
- $pst = ")";
- $cmt = " # returns ref";
- }
- $out .= " sub $name {$cmt\n my \$r = shift;\n";
- if( $base_type eq 'ARRAY' ){
- $elem = "[$cnt]";
- ++$cnt;
- }
- elsif( $base_type eq 'HASH' ){
- $elem = "{'${class}::$name'}";
- }
- if( defined $arrays{$name} ){
- $out .= " my \$i;\n";
- $out .= " \@_ ? (\$i = shift) : return \$r->$elem;\n";
- $out .= " if (ref(\$i) eq 'ARRAY' && !\@_) { \$r->$elem = \$i; return \$r }\n";
- $sel = "->[\$i]";
- }
- elsif( defined $hashes{$name} ){
- $out .= " my \$i;\n";
- $out .= " \@_ ? (\$i = shift) : return \$r->$elem;\n";
- $out .= " if (ref(\$i) eq 'HASH' && !\@_) { \$r->$elem = \$i; return \$r }\n";
- $sel = "->{\$i}";
- }
- elsif( defined $classes{$name} ){
- if ( $CHECK_CLASS_MEMBERSHIP ) {
- $out .= " croak '$name argument is wrong class' if \@_ && ! UNIVERSAL::isa(\$_[0], '$classes{$name}');\n";
- }
- }
- $out .= " croak 'Too many args to $name' if \@_ > 1;\n";
- $out .= " \@_ ? ($pre\$r->$elem$sel = shift$pst) : $pre\$r->$elem$sel$pst;\n";
- $out .= " }\n";
- }
- }
- $out .= "}\n1;\n";
-
- print $out if $print;
- my $result = eval $out;
- carp $@ if $@;
-}
-
-sub _usage_error {
- confess "struct usage error";
-}
-
-sub _subclass_error {
- croak 'struct class cannot be a subclass (@ISA not allowed)';
-}
-
-1; # for require
-
-
-__END__
-
-=head1 NAME
-
-Class::Struct - declare struct-like datatypes as Perl classes
-
-=head1 SYNOPSIS
-
- use Class::Struct;
- # declare struct, based on array:
- struct( CLASS_NAME => [ ELEMENT_NAME => ELEMENT_TYPE, ... ]);
- # declare struct, based on hash:
- struct( CLASS_NAME => { ELEMENT_NAME => ELEMENT_TYPE, ... });
-
- package CLASS_NAME;
- use Class::Struct;
- # declare struct, based on array, implicit class name:
- struct( ELEMENT_NAME => ELEMENT_TYPE, ... );
-
- # Declare struct at compile time
- use Class::Struct CLASS_NAME => [ ELEMENT_NAME => ELEMENT_TYPE, ... ];
- use Class::Struct CLASS_NAME => { ELEMENT_NAME => ELEMENT_TYPE, ... };
-
- package Myobj;
- use Class::Struct;
- # declare struct with four types of elements:
- struct( s => '$', a => '@', h => '%', c => 'My_Other_Class' );
-
- $obj = new Myobj; # constructor
-
- # scalar type accessor:
- $element_value = $obj->s; # element value
- $obj->s('new value'); # assign to element
-
- # array type accessor:
- $ary_ref = $obj->a; # reference to whole array
- $ary_element_value = $obj->a(2); # array element value
- $obj->a(2, 'new value'); # assign to array element
-
- # hash type accessor:
- $hash_ref = $obj->h; # reference to whole hash
- $hash_element_value = $obj->h('x'); # hash element value
- $obj->h('x', 'new value'); # assign to hash element
-
- # class type accessor:
- $element_value = $obj->c; # object reference
- $obj->c->method(...); # call method of object
- $obj->c(new My_Other_Class); # assign a new object
-
-=head1 DESCRIPTION
-
-C<Class::Struct> exports a single function, C<struct>.
-Given a list of element names and types, and optionally
-a class name, C<struct> creates a Perl 5 class that implements
-a "struct-like" data structure.
-
-The new class is given a constructor method, C<new>, for creating
-struct objects.
-
-Each element in the struct data has an accessor method, which is
-used to assign to the element and to fetch its value. The
-default accessor can be overridden by declaring a C<sub> of the
-same name in the package. (See Example 2.)
-
-Each element's type can be scalar, array, hash, or class.
-
-=head2 The C<struct()> function
-
-The C<struct> function has three forms of parameter-list.
-
- struct( CLASS_NAME => [ ELEMENT_LIST ]);
- struct( CLASS_NAME => { ELEMENT_LIST });
- struct( ELEMENT_LIST );
-
-The first and second forms explicitly identify the name of the
-class being created. The third form assumes the current package
-name as the class name.
-
-An object of a class created by the first and third forms is
-based on an array, whereas an object of a class created by the
-second form is based on a hash. The array-based forms will be
-somewhat faster and smaller; the hash-based forms are more
-flexible.
-
-The class created by C<struct> must not be a subclass of another
-class other than C<UNIVERSAL>.
-
-It can, however, be used as a superclass for other classes. To facilitate
-this, the generated constructor method uses a two-argument blessing.
-Furthermore, if the class is hash-based, the key of each element is
-prefixed with the class name (see I<Perl Cookbook>, Recipe 13.12).
-
-A function named C<new> must not be explicitly defined in a class
-created by C<struct>.
-
-The I<ELEMENT_LIST> has the form
-
- NAME => TYPE, ...
-
-Each name-type pair declares one element of the struct. Each
-element name will be defined as an accessor method unless a
-method by that name is explicitly defined; in the latter case, a
-warning is issued if the warning flag (B<-w>) is set.
-
-=head2 Class Creation at Compile Time
-
-C<Class::Struct> can create your class at compile time. The main reason
-for doing this is obvious, so your class acts like every other class in
-Perl. Creating your class at compile time will make the order of events
-similar to using any other class ( or Perl module ).
-
-There is no significant speed gain between compile time and run time
-class creation, there is just a new, more standard order of events.
-
-=head2 Element Types and Accessor Methods
-
-The four element types -- scalar, array, hash, and class -- are
-represented by strings -- C<'$'>, C<'@'>, C<'%'>, and a class name --
-optionally preceded by a C<'*'>.
-
-The accessor method provided by C<struct> for an element depends
-on the declared type of the element.
-
-=over 4
-
-=item Scalar (C<'$'> or C<'*$'>)
-
-The element is a scalar, and by default is initialized to C<undef>
-(but see L<Initializing with new>).
-
-The accessor's argument, if any, is assigned to the element.
-
-If the element type is C<'$'>, the value of the element (after
-assignment) is returned. If the element type is C<'*$'>, a reference
-to the element is returned.
-
-=item Array (C<'@'> or C<'*@'>)
-
-The element is an array, initialized by default to C<()>.
-
-With no argument, the accessor returns a reference to the
-element's whole array (whether or not the element was
-specified as C<'@'> or C<'*@'>).
-
-With one or two arguments, the first argument is an index
-specifying one element of the array; the second argument, if
-present, is assigned to the array element. If the element type
-is C<'@'>, the accessor returns the array element value. If the
-element type is C<'*@'>, a reference to the array element is
-returned.
-
-As a special case, when the accessor is called with an array reference
-as the sole argument, this causes an assignment of the whole array element.
-The object reference is returned.
-
-=item Hash (C<'%'> or C<'*%'>)
-
-The element is a hash, initialized by default to C<()>.
-
-With no argument, the accessor returns a reference to the
-element's whole hash (whether or not the element was
-specified as C<'%'> or C<'*%'>).
-
-With one or two arguments, the first argument is a key specifying
-one element of the hash; the second argument, if present, is
-assigned to the hash element. If the element type is C<'%'>, the
-accessor returns the hash element value. If the element type is
-C<'*%'>, a reference to the hash element is returned.
-
-As a special case, when the accessor is called with a hash reference
-as the sole argument, this causes an assignment of the whole hash element.
-The object reference is returned.
-
-=item Class (C<'Class_Name'> or C<'*Class_Name'>)
-
-The element's value must be a reference blessed to the named
-class or to one of its subclasses. The element is not initialized
-by default.
-
-The accessor's argument, if any, is assigned to the element. The
-accessor will C<croak> if this is not an appropriate object
-reference.
-
-If the element type does not start with a C<'*'>, the accessor
-returns the element value (after assignment). If the element type
-starts with a C<'*'>, a reference to the element itself is returned.
-
-=back
-
-=head2 Initializing with C<new>
-
-C<struct> always creates a constructor called C<new>. That constructor
-may take a list of initializers for the various elements of the new
-struct.
-
-Each initializer is a pair of values: I<element name>C< =E<gt> >I<value>.
-The initializer value for a scalar element is just a scalar value. The
-initializer for an array element is an array reference. The initializer
-for a hash is a hash reference.
-
-The initializer for a class element is an object of the corresponding class,
-or of one of it's subclasses, or a reference to a hash containing named
-arguments to be passed to the element's constructor.
-
-See Example 3 below for an example of initialization.
-
-=head1 EXAMPLES
-
-=over 4
-
-=item Example 1
-
-Giving a struct element a class type that is also a struct is how
-structs are nested. Here, C<timeval> represents a time (seconds and
-microseconds), and C<rusage> has two elements, each of which is of
-type C<timeval>.
-
- use Class::Struct;
-
- struct( rusage => {
- ru_utime => timeval, # seconds
- ru_stime => timeval, # microseconds
- });
-
- struct( timeval => [
- tv_secs => '$',
- tv_usecs => '$',
- ]);
-
- # create an object:
- my $t = new rusage;
-
- # $t->ru_utime and $t->ru_stime are objects of type timeval.
- # set $t->ru_utime to 100.0 sec and $t->ru_stime to 5.0 sec.
- $t->ru_utime->tv_secs(100);
- $t->ru_utime->tv_usecs(0);
- $t->ru_stime->tv_secs(5);
- $t->ru_stime->tv_usecs(0);
-
-=item Example 2
-
-An accessor function can be redefined in order to provide
-additional checking of values, etc. Here, we want the C<count>
-element always to be nonnegative, so we redefine the C<count>
-accessor accordingly.
-
- package MyObj;
- use Class::Struct;
-
- # declare the struct
- struct ( 'MyObj', { count => '$', stuff => '%' } );
-
- # override the default accessor method for 'count'
- sub count {
- my $self = shift;
- if ( @_ ) {
- die 'count must be nonnegative' if $_[0] < 0;
- $self->{'count'} = shift;
- warn "Too many args to count" if @_;
- }
- return $self->{'count'};
- }
-
- package main;
- $x = new MyObj;
- print "\$x->count(5) = ", $x->count(5), "\n";
- # prints '$x->count(5) = 5'
-
- print "\$x->count = ", $x->count, "\n";
- # prints '$x->count = 5'
-
- print "\$x->count(-5) = ", $x->count(-5), "\n";
- # dies due to negative argument!
-
-=item Example 3
-
-The constructor of a generated class can be passed a list
-of I<element>=>I<value> pairs, with which to initialize the struct.
-If no initializer is specified for a particular element, its default
-initialization is performed instead. Initializers for non-existent
-elements are silently ignored.
-
-Note that the initializer for a nested class may be specified as
-an object of that class, or as a reference to a hash of initializers
-that are passed on to the nested struct's constructor.
-
- use Class::Struct;
-
- struct Breed =>
- {
- name => '$',
- cross => '$',
- };
-
- struct Cat =>
- [
- name => '$',
- kittens => '@',
- markings => '%',
- breed => 'Breed',
- ];
-
-
- my $cat = Cat->new( name => 'Socks',
- kittens => ['Monica', 'Kenneth'],
- markings => { socks=>1, blaze=>"white" },
- breed => Breed->new(name=>'short-hair', cross=>1),
- or: breed => {name=>'short-hair', cross=>1},
- );
-
- print "Once a cat called ", $cat->name, "\n";
- print "(which was a ", $cat->breed->name, ")\n";
- print "had two kittens: ", join(' and ', @{$cat->kittens}), "\n";
-
-=back
-
-=head1 Author and Modification History
-
-Modified by Damian Conway, 2001-09-10, v0.62.
-
- Modified implicit construction of nested objects.
- Now will also take an object ref instead of requiring a hash ref.
- Also default initializes nested object attributes to undef, rather
- than calling object constructor without args
- Original over-helpfulness was fraught with problems:
- * the class's constructor might not be called 'new'
- * the class might not have a hash-like-arguments constructor
- * the class might not have a no-argument constructor
- * "recursive" data structures didn't work well:
- package Person;
- struct { mother => 'Person', father => 'Person'};
-
-
-Modified by Casey West, 2000-11-08, v0.59.
-
- Added the ability for compile time class creation.
-
-Modified by Damian Conway, 1999-03-05, v0.58.
-
- Added handling of hash-like arg list to class ctor.
-
- Changed to two-argument blessing in ctor to support
- derivation from created classes.
-
- Added classname prefixes to keys in hash-based classes
- (refer to "Perl Cookbook", Recipe 13.12 for rationale).
-
- Corrected behaviour of accessors for '*@' and '*%' struct
- elements. Package now implements documented behaviour when
- returning a reference to an entire hash or array element.
- Previously these were returned as a reference to a reference
- to the element.
-
-Renamed to C<Class::Struct> and modified by Jim Miner, 1997-04-02.
-
- members() function removed.
- Documentation corrected and extended.
- Use of struct() in a subclass prohibited.
- User definition of accessor allowed.
- Treatment of '*' in element types corrected.
- Treatment of classes as element types corrected.
- Class name to struct() made optional.
- Diagnostic checks added.
-
-Originally C<Class::Template> by Dean Roehrich.
-
- # Template.pm --- struct/member template builder
- # 12mar95
- # Dean Roehrich
- #
- # changes/bugs fixed since 28nov94 version:
- # - podified
- # changes/bugs fixed since 21nov94 version:
- # - Fixed examples.
- # changes/bugs fixed since 02sep94 version:
- # - Moved to Class::Template.
- # changes/bugs fixed since 20feb94 version:
- # - Updated to be a more proper module.
- # - Added "use strict".
- # - Bug in build_methods, was using @var when @$var needed.
- # - Now using my() rather than local().
- #
- # Uses perl5 classes to create nested data types.
- # This is offered as one implementation of Tom Christiansen's "structs.pl"
- # idea.
-
-=cut
diff --git a/Master/xemtex/perl/lib/Config.pm b/Master/xemtex/perl/lib/Config.pm
deleted file mode 100644
index c5b8bd0be9c..00000000000
--- a/Master/xemtex/perl/lib/Config.pm
+++ /dev/null
@@ -1,8895 +0,0 @@
-package Config;
-use Exporter ();
-@EXPORT = qw(%Config);
-@EXPORT_OK = qw(myconfig config_sh config_vars);
-
-# Define our own import method to avoid pulling in the full Exporter:
-sub import {
- my $pkg = shift;
- @_ = @EXPORT unless @_;
- my @func = grep {$_ ne '%Config'} @_;
- local $Exporter::ExportLevel = 1;
- Exporter::import('Config', @func) if @func;
- return if @func == @_;
- my $callpkg = caller(0);
- *{"$callpkg\::Config"} = \%Config;
-}
-
-die "Perl lib version (v5.8.0) doesn't match executable version ($])"
- unless $^V;
-
-$^V eq v5.8.0
- or die "Perl lib version (v5.8.0) doesn't match executable version (" .
- (sprintf "v%vd",$^V) . ")";
-
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-## Configured by: popineau@ANSIBLE
-### Target system: WIN32
-
-my $config_sh = <<'!END!';
-archlibexp='c:\Local\Perl\lib'
-archname='MSWin32-x86-multi-thread'
-cc='cl'
-ccflags='-nologo -GF -W3 -MD -DNDEBUG -O2xtb2 -G6 -GL -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX'
-cppflags='-DWIN32'
-dlsrc='dl_win32.xs'
-dynamic_ext='Storable Encode XS/Typemap B/C IO MIME/Base64 Devel/Peek Opcode Time/HiRes attrs ByteLoader PerlIO/scalar Unicode/Normalize re B XS/APItest Encode/Unicode SDBM_File PerlIO/via PerlIO/encoding Fcntl Sys/Hostname Digest/MD5 Devel/PPPort POSIX Filter/Util/Call Socket threads/shared Data/Dumper List/Util threads File/Glob Devel/DProf Cwd'
-extensions='Storable Encode XS/Typemap B/C IO MIME/Base64 Devel/Peek Opcode Time/HiRes attrs ByteLoader PerlIO/scalar Unicode/Normalize re B XS/APItest Encode/Unicode SDBM_File PerlIO/via PerlIO/encoding Fcntl Sys/Hostname Digest/MD5 Devel/PPPort POSIX Filter/Util/Call Socket threads/shared Data/Dumper List/Util threads File/Glob Devel/DProf Cwd'
-installarchlib='c:\Local\Perl\lib'
-installprivlib='c:\Local\Perl\lib'
-libpth='..\..\texk\msvc\lib'
-libs=' oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib'
-osname='MSWin32'
-osvers='4.0'
-prefix='c:\Local\Perl'
-privlibexp='c:\Local\Perl\lib'
-sharpbang='#!'
-shsharp='true'
-sig_name='ZERO HUP INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM NUM16 NUM17 NUM18 NUM19 CHLD BREAK ABRT STOP NUM24 CONT CLD'
-sig_num='0 1 2 21 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20 0'
-so='dll'
-startsh='#!/bin/sh'
-static_ext=' '
-Author=''
-Date='$Date'
-Header=''
-Id='$Id'
-Locker=''
-Log='$Log'
-PERL_API_REVISION='5'
-PERL_API_SUBVERSION='0'
-PERL_API_VERSION='8'
-PERL_CONFIG_SH='true'
-PERL_PATCHLEVEL='8'
-PERL_REVISION='5'
-PERL_SUBVERSION='0'
-PERL_VERSION='8'
-RCSfile='$RCSfile'
-Revision='$Revision'
-Source=''
-State=''
-_a='.lib'
-_exe='.exe'
-_o='.obj'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname=''
-api_revision='5'
-api_subversion='0'
-api_version='8'
-api_versionstring='5.8.0'
-ar='lib'
-archlib='c:\Local\Perl\lib'
-archname64=''
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5'
-bash=''
-bin='c:\Local\Perl\bin'
-binexp='c:\Local\Perl\bin'
-bison=''
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='type'
-cccdlflags=' '
-ccdlflags=' '
-ccflags_uselargefiles=''
-ccname=''
-ccsymbols=''
-ccversion=''
-cf_by='popineau'
-cf_email='popineau@ANSIBLE'
-cf_time='Mon Aug 18 21:40:53 2003'
-charsize='1'
-chgrp=''
-chmod=''
-chown=''
-clocktype='clock_t'
-comm=''
-compress=''
-contains='grep'
-cp='copy'
-cpio=''
-cpp='cl -nologo -E'
-cpp_stuff='42'
-cppccsymbols=''
-cpplast=''
-cppminus=''
-cpprun='cl -nologo -E'
-cppstdin='cppstdin'
-cppsymbols=''
-crypt_r_proto='0'
-cryptlib=''
-csh='undef'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='undef'
-d_PRIFUldbl='undef'
-d_PRIGUldbl='undef'
-d_PRIXU64='undef'
-d_PRId64='undef'
-d_PRIeldbl='undef'
-d_PRIfldbl='undef'
-d_PRIgldbl='undef'
-d_PRIi64='undef'
-d_PRIo64='undef'
-d_PRIu64='undef'
-d_PRIx64='undef'
-d_SCNfldbl='undef'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_alarm='define'
-d_archlib='define'
-d_asctime_r='undef'
-d_atolf='undef'
-d_atoll='undef'
-d_attribut='undef'
-d_bcmp='undef'
-d_bcopy='undef'
-d_bsd='define'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_bzero='undef'
-d_casti32='undef'
-d_castneg='define'
-d_charvspr='undef'
-d_chown='undef'
-d_chroot='undef'
-d_chsize='define'
-d_class='undef'
-d_closedir='define'
-d_cmsghdr_s='undef'
-d_const='define'
-d_crypt='undef'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='undef'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dirfd='undef'
-d_dirnamlen='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='undef'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='undef'
-d_endgrent_r='undef'
-d_endhent='undef'
-d_endhostent_r='undef'
-d_endnent='undef'
-d_endnetent_r='undef'
-d_endpent='undef'
-d_endprotoent_r='undef'
-d_endpwent='undef'
-d_endpwent_r='undef'
-d_endsent='undef'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_eunice='undef'
-d_fchdir='undef'
-d_fchmod='undef'
-d_fchown='undef'
-d_fcntl='undef'
-d_fcntl_can_lock='undef'
-d_fd_macros='define'
-d_fd_set='define'
-d_fds_bits='define'
-d_fgetpos='define'
-d_finite='undef'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fork='undef'
-d_fp_class='undef'
-d_fpathconf='undef'
-d_fpclass='undef'
-d_fpclassify='undef'
-d_fpclassl='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='undef'
-d_fsetpos='define'
-d_fstatfs='undef'
-d_fstatvfs='undef'
-d_fsync='undef'
-d_ftello='undef'
-d_ftime='define'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='undef'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='undef'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='undef'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='undef'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='undef'
-d_getnbyaddr='undef'
-d_getnbyname='undef'
-d_getnent='undef'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='undef'
-d_getpagsz='undef'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='undef'
-d_getpgid='undef'
-d_getpgrp2='undef'
-d_getpgrp='undef'
-d_getppid='undef'
-d_getprior='undef'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='undef'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='undef'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='undef'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='undef'
-d_hasmntopt='undef'
-d_htonl='define'
-d_index='undef'
-d_inetaton='undef'
-d_int64_t='undef'
-d_isascii='define'
-d_isfinite='undef'
-d_isinf='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_killpg='undef'
-d_lchown='undef'
-d_ldbl_dig='define'
-d_link='define'
-d_localtime_r='undef'
-d_locconv='define'
-d_lockf='undef'
-d_longdbl='define'
-d_longlong='undef'
-d_lseekproto='define'
-d_lstat='undef'
-d_madvise='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='undef'
-d_mkfifo='undef'
-d_mkstemp='undef'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='undef'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_mprotect='undef'
-d_msg='undef'
-d_msg_ctrunc='undef'
-d_msg_dontroute='undef'
-d_msg_oob='undef'
-d_msg_peek='undef'
-d_msg_proxy='undef'
-d_msgctl='undef'
-d_msgget='undef'
-d_msghdr_s='undef'
-d_msgrcv='undef'
-d_msgsnd='undef'
-d_msync='undef'
-d_munmap='undef'
-d_mymalloc='undef'
-d_nice='undef'
-d_nl_langinfo='undef'
-d_nv_preserves_uv='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='undef'
-d_pathconf='undef'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='undef'
-d_portable='define'
-d_procselfexe='undef'
-d_pthread_atfork='undef'
-d_pthread_yield='undef'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='undef'
-d_pwpasswd='undef'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='undef'
-d_random_r='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='undef'
-d_readv='undef'
-d_recvmsg='undef'
-d_rename='define'
-d_rewinddir='define'
-d_rmdir='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='undef'
-d_sched_yield='undef'
-d_scm_rights='undef'
-d_seekdir='define'
-d_select='define'
-d_sem='undef'
-d_semctl='undef'
-d_semctl_semid_ds='undef'
-d_semctl_semun='undef'
-d_semget='undef'
-d_semop='undef'
-d_sendmsg='undef'
-d_setegid='undef'
-d_seteuid='undef'
-d_setgrent='undef'
-d_setgrent_r='undef'
-d_setgrps='undef'
-d_sethent='undef'
-d_sethostent_r='undef'
-d_setitimer='undef'
-d_setlinebuf='undef'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='undef'
-d_setnetent_r='undef'
-d_setpent='undef'
-d_setpgid='undef'
-d_setpgrp2='undef'
-d_setpgrp='undef'
-d_setprior='undef'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='undef'
-d_setpwent_r='undef'
-d_setregid='undef'
-d_setresgid='undef'
-d_setresuid='undef'
-d_setreuid='undef'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='undef'
-d_setservent_r='undef'
-d_setsid='undef'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='undef'
-d_shmat='undef'
-d_shmatprototype='undef'
-d_shmctl='undef'
-d_shmdt='undef'
-d_shmget='undef'
-d_sigaction='undef'
-d_sigprocmask='undef'
-d_sigsetjmp='undef'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='undef'
-d_sockpair='undef'
-d_socks5_init='undef'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_statblks='undef'
-d_statfs_f_flags='undef'
-d_statfs_s='undef'
-d_statvfs='undef'
-d_stdio_cnt_lval='define'
-d_stdio_ptr_lval='define'
-d_stdio_ptr_lval_nochange_cnt='define'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='define'
-d_stdstdio='define'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='undef'
-d_strtoll='undef'
-d_strtoq='undef'
-d_strtoul='define'
-d_strtoull='undef'
-d_strtouq='undef'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='undef'
-d_syscall='undef'
-d_syscallproto='undef'
-d_sysconf='undef'
-d_sysernlst=''
-d_syserrlst='define'
-d_system='define'
-d_tcgetpgrp='undef'
-d_tcsetpgrp='undef'
-d_telldir='define'
-d_telldirproto='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='undef'
-d_tm_tm_zone='undef'
-d_tmpnam_r='undef'
-d_truncate='undef'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='undef'
-d_umask='define'
-d_uname='define'
-d_union_semun='define'
-d_unordered='undef'
-d_usleep='undef'
-d_usleepproto='undef'
-d_ustat='undef'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_wait4='undef'
-d_waitpid='define'
-d_wcstombs='define'
-d_wctomb='define'
-d_writev='undef'
-d_xenix='undef'
-date='date'
-db_hashtype='int'
-db_prefixtype='int'
-db_version_major='0'
-db_version_minor='0'
-db_version_patch='0'
-defvoidused='15'
-direntrytype='struct direct'
-dlext='dll'
-doublesize='8'
-drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
-drand48_r_proto='0'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext='.exe'
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find='find'
-firstmakefile='makefile'
-flex=''
-fpossize='8'
-fpostype='fpos_t'
-freetype='void'
-full_ar=''
-full_csh=''
-full_sed=''
-gccosandvers=''
-gccversion=''
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"ld"'
-gidsign='-1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/shlib '
-gmake='gmake'
-gmtime_r_proto='0'
-grep='grep'
-groupcat=''
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='ypcat hosts'
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='__int64'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='undef'
-i_db='undef'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_fcntl='define'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='undef'
-i_grp='undef'
-i_ieeefp='undef'
-i_inttypes='undef'
-i_langinfo='undef'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='undef'
-i_ndbm='undef'
-i_netdb='undef'
-i_neterrno='undef'
-i_netinettcp='undef'
-i_niin='undef'
-i_poll='undef'
-i_prot='undef'
-i_pthread='undef'
-i_pwd='undef'
-i_rpcsvcdbm='define'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='undef'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='undef'
-i_sysfile='undef'
-i_sysfilio='define'
-i_sysin='undef'
-i_sysioctl='undef'
-i_syslog='undef'
-i_sysmman='undef'
-i_sysmode='undef'
-i_sysmount='undef'
-i_sysndir='undef'
-i_sysparam='undef'
-i_sysresrc='undef'
-i_syssecrt='undef'
-i_sysselct='undef'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='undef'
-i_sysstatvfs='undef'
-i_systime='undef'
-i_systimek='undef'
-i_systimes='undef'
-i_systypes='define'
-i_sysuio='undef'
-i_sysun='undef'
-i_sysutsname='undef'
-i_sysvfs='undef'
-i_syswait='undef'
-i_termio='undef'
-i_termios='undef'
-i_time='define'
-i_unistd='undef'
-i_ustat='undef'
-i_utime='define'
-i_values='undef'
-i_varargs='undef'
-i_varhdr='varargs.h'
-i_vfork='undef'
-ignore_versioned_solibs=''
-inc_version_list=''
-inc_version_list_init='0'
-incpath='..\..\texk\msvc\include'
-inews=''
-installbin='c:\Local\Perl\bin'
-installhtmldir='c:\Local\Perl\html'
-installhtmlhelpdir='c:\Local\Perl\htmlhelp'
-installman1dir='c:\Local\Perl\man\man1'
-installman3dir='c:\Local\Perl\man\man3'
-installprefix='c:\Local\Perl'
-installprefixexp='c:\Local\Perl'
-installscript='c:\Local\Perl\bin'
-installsitearch='c:\Local\Perl\site\lib'
-installsitebin='c:\Local\Perl\bin'
-installsitelib='c:\Local\Perl\site\lib'
-installstyle='lib'
-installusrbinperl='undef'
-installvendorarch=''
-installvendorbin=''
-installvendorlib=''
-intsize='4'
-issymlink=''
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-known_extensions='B B/C ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Encode/Byte Encode/CN Encode/EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode Errno Fcntl File/Glob Filter/Util/Call IO List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Thread Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared'
-ksh=''
-ld='link'
-lddlflags='-dll -nologo -nodefaultlib -release -LTCG -libpath:"c:\Local\Perl\lib\CORE" -machine:x86'
-ldflags='-nologo -nodefaultlib -release -LTCG -libpath:"c:\Local\Perl\lib\CORE" -machine:x86'
-ldflags_uselargefiles=''
-ldlibpthname=''
-less='less'
-lib_ext='.lib'
-libc='msvcrt.lib'
-libperl='perl58.lib'
-libsdirs=''
-libsfiles=''
-libsfound=''
-libspath=''
-libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x'
-line='line'
-lint=''
-lkflags=''
-ln=''
-lns='copy'
-localtime_r_proto='0'
-locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
-loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-longdblsize='10'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='dir'
-lseeksize='4'
-lseektype='off_t'
-mail=''
-mailx=''
-make='nmake'
-make_set_make='#'
-mallocobj='malloc.o'
-mallocsrc='malloc.c'
-malloctype='void *'
-man1dir='c:\Local\Perl\man\man1'
-man1direxp='c:\Local\Perl\man\man1'
-man1ext='1'
-man3dir='c:\Local\Perl\man\man3'
-man3direxp='c:\Local\Perl\man\man3'
-man3ext='3'
-mips_type=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more /e'
-multiarch='undef'
-mv=''
-myarchname='MSWin32'
-mydomain=''
-myhostname=''
-myuname=''
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='int'
-netdb_host_type='char *'
-netdb_name_type='char *'
-netdb_net_type='long'
-nm=''
-nm_opt=''
-nm_so_opt=''
-nonxs_ext='Encode/TW Encode/Byte Errno Encode/KR Encode/EBCDIC Encode/JP Encode/Symbol Encode/CN'
-nroff=''
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.obj'
-old_pthread_create_joinable=''
-optimize='-MD -DNDEBUG -O2xtb2 -G6 -GL'
-orderlib='false'
-otherlibdirs=''
-package='perl5'
-pager='more /e'
-passcat=''
-patchlevel=''
-path_sep=';'
-perl5=''
-perl='perl'
-perladmin=''
-perllibs=' oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib'
-perlpath='c:\Local\Perl\bin\perl.exe'
-pg=''
-phostname='hostname'
-pidtype='int'
-plibpth=''
-pm_apiversion='5.005'
-pmake=''
-pr=''
-prefixexp='c:'
-privlib='c:\Local\Perl\lib'
-procselfexe=''
-prototype='define'
-ptrsize='4'
-quadkind='5'
-quadtype='__int64'
-randbits='15'
-randfunc='rand'
-random_r_proto='0'
-randseedtype='unsigned'
-ranlib='rem'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='del'
-rmail=''
-runnm='true'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"lX"'
-sPRId64='"ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"li"'
-sPRIo64='"lo"'
-sPRIu64='"lu"'
-sPRIx64='"lx"'
-sSCNfldbl='"f"'
-sched_yield=''
-scriptdir='c:\Local\Perl\bin'
-scriptdirexp='c:\Local\Perl\bin'
-sed='sed'
-seedfunc='srand'
-selectminbits='32'
-selecttype='Perl_fd_set *'
-sendmail='blat'
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='cmd /x /c'
-shar=''
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-sig_count='26'
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0'
-sig_num_init='0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
-sig_size='27'
-signal_t='void'
-sitearch='c:\Local\Perl\site\lib'
-sitearchexp='c:\Local\Perl\site\lib'
-sitebin='c:\Local\Perl\site\bin'
-sitebinexp='c:\Local\Perl\site\bin'
-sitelib='c:\Local\Perl\site\lib'
-sitelib_stem=''
-sitelibexp='c:\Local\Perl\site\lib'
-siteprefix='c:\Local\Perl\site'
-siteprefixexp='c:\Local\Perl\site'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-sockethdr=''
-socketlib=''
-socksizetype='int'
-sort='sort'
-spackage='Perl5'
-spitshell=''
-srand48_r_proto='0'
-srandom_r_proto='0'
-src=''
-ssizetype='int'
-startperl='#!perl'
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-strings='/usr/include/string.h'
-submit=''
-subversion=''
-sysman='/usr/man/man1'
-tail=''
-tar=''
-targetarch=''
-tbl=''
-tee=''
-test=''
-timeincl='/usr/include/sys/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-touch='touch'
-tr=''
-trnl='\012'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned __int64'
-u8size='1'
-u8type='unsigned char'
-uidformat='"ld"'
-uidsign='-1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned __int64'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecrosscompile='undef'
-usedl='define'
-useithreads='define'
-uselargefiles='undef'
-uselongdouble='undef'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='false'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usereentrant='undef'
-usesfio='false'
-useshrplib='yes'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='/usr/include'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorprefix=''
-vendorprefixexp=''
-version='5.8.0'
-version_patchlevel_string='version 8 subversion 0'
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-xs_apiversion='5.6.0'
-zcat=''
-zip='zip'
-!END!
-
-my $summary = <<'!END!';
-Summary of my $package (revision $baserev $version_patchlevel_string) configuration:
- Platform:
- osname=$osname, osvers=$osvers, archname=$archname
- uname='$myuname'
- config_args='$config_args'
- hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- usethreads=$usethreads use5005threads=$use5005threads useithreads=$useithreads usemultiplicity=$usemultiplicity
- useperlio=$useperlio d_sfio=$d_sfio uselargefiles=$uselargefiles usesocks=$usesocks
- use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble
- usemymalloc=$usemymalloc, bincompat5005=undef
- Compiler:
- cc='$cc', ccflags ='$ccflags',
- optimize='$optimize',
- cppflags='$cppflags'
- ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize
- ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
- alignbytes=$alignbytes, prototype=$prototype
- Linker and Libraries:
- ld='$ld', ldflags ='$ldflags'
- libpth=$libpth
- libs=$libs
- perllibs=$perllibs
- libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl
- gnulibc_version='$gnulibc_version'
- Dynamic Linking:
- dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags'
- cccdlflags='$cccdlflags', lddlflags='$lddlflags'
-
-!END!
-my $summary_expanded = 0;
-
-sub myconfig {
- return $summary if $summary_expanded;
- $summary =~ s{\$(\w+)}
- { my $c = $Config{$1}; defined($c) ? $c : 'undef' }ge;
- $summary_expanded = 1;
- $summary;
-}
-
-sub FETCH {
- # check for cached value (which may be undef so we use exists not defined)
- return $_[0]->{$_[1]} if (exists $_[0]->{$_[1]});
-
- # Search for it in the big string
- my($value, $start, $marker, $quote_type);
-
- $quote_type = "'";
- # Virtual entries.
- if ($_[1] eq 'byteorder') {
- # byteorder does exist on its own but we overlay a virtual
- # dynamically recomputed value.
- my $t = $Config{ivtype};
- my $s = $Config{ivsize};
- my $f = $t eq 'long' ? 'L!' : $s == 8 ? 'Q': 'I';
- if ($s == 4 || $s == 8) {
- my $i = 0;
- foreach my $c (reverse(2..$s)) { $i |= ord($c); $i <<= 8 }
- $i |= ord(1);
- $value = join('', unpack('a'x$s, pack($f, $i)));
- } else {
- $value = '?'x$s;
- }
- } elsif ($_[1] =~ /^((?:cc|ld)flags|libs(?:wanted)?)_nolargefiles/) {
- # These are purely virtual, they do not exist, but need to
- # be computed on demand for largefile-incapable extensions.
- my $key = "${1}_uselargefiles";
- $value = $Config{$1};
- my $withlargefiles = $Config{$key};
- if ($key =~ /^(?:cc|ld)flags_/) {
- $value =~ s/\Q$withlargefiles\E\b//;
- } elsif ($key =~ /^libs/) {
- my @lflibswanted = split(' ', $Config{libswanted_uselargefiles});
- if (@lflibswanted) {
- my %lflibswanted;
- @lflibswanted{@lflibswanted} = ();
- if ($key =~ /^libs_/) {
- my @libs = grep { /^-l(.+)/ &&
- not exists $lflibswanted{$1} }
- split(' ', $Config{libs});
- $Config{libs} = join(' ', @libs);
- } elsif ($key =~ /^libswanted_/) {
- my @libswanted = grep { not exists $lflibswanted{$_} }
- split(' ', $Config{libswanted});
- $Config{libswanted} = join(' ', @libswanted);
- }
- }
- }
- } else {
- $marker = "$_[1]=";
- # return undef unless (($value) = $config_sh =~ m/^$_[1]='(.*)'\s*$/m);
- # Check for the common case, ' delimeted
- $start = index($config_sh, "\n$marker$quote_type");
- # If that failed, check for " delimited
- if ($start == -1) {
- $quote_type = '"';
- $start = index($config_sh, "\n$marker$quote_type");
- }
- return undef if ( ($start == -1) && # in case it's first
- (substr($config_sh, 0, length($marker)) ne $marker) );
- if ($start == -1) {
- # It's the very first thing we found. Skip $start forward
- # and figure out the quote mark after the =.
- $start = length($marker) + 1;
- $quote_type = substr($config_sh, $start - 1, 1);
- }
- else {
- $start += length($marker) + 2;
- }
- $value = substr($config_sh, $start,
- index($config_sh, "$quote_type\n", $start) - $start);
- }
- # If we had a double-quote, we'd better eval it so escape
- # sequences and such can be interpolated. Since the incoming
- # value is supposed to follow shell rules and not perl rules,
- # we escape any perl variable markers
- if ($quote_type eq '"') {
- $value =~ s/\$/\\\$/g;
- $value =~ s/\@/\\\@/g;
- eval "\$value = \"$value\"";
- }
- #$value = sprintf($value) if $quote_type eq '"';
- # So we can say "if $Config{'foo'}".
- $value = undef if $value eq 'undef';
- $_[0]->{$_[1]} = $value; # cache it
- return $value;
-}
-
-my $prevpos = 0;
-
-sub FIRSTKEY {
- $prevpos = 0;
- # my($key) = $config_sh =~ m/^(.*?)=/;
- substr($config_sh, 0, index($config_sh, '=') );
- # $key;
-}
-
-sub NEXTKEY {
- # Find out how the current key's quoted so we can skip to its end.
- my $quote = substr($config_sh, index($config_sh, "=", $prevpos)+1, 1);
- my $pos = index($config_sh, qq($quote\n), $prevpos) + 2;
- my $len = index($config_sh, "=", $pos) - $pos;
- $prevpos = $pos;
- $len > 0 ? substr($config_sh, $pos, $len) : undef;
-}
-
-sub EXISTS {
- # exists($_[0]->{$_[1]}) or $config_sh =~ m/^$_[1]=/m;
- exists($_[0]->{$_[1]}) or
- index($config_sh, "\n$_[1]='") != -1 or
- substr($config_sh, 0, length($_[1])+2) eq "$_[1]='" or
- index($config_sh, "\n$_[1]=\"") != -1 or
- substr($config_sh, 0, length($_[1])+2) eq "$_[1]=\"" or
- $_[1] =~ /^(?:(?:cc|ld)flags|libs(?:wanted)?)_nolargefiles$/;
-}
-
-sub STORE { die "\%Config::Config is read-only\n" }
-sub DELETE { &STORE }
-sub CLEAR { &STORE }
-
-
-sub config_sh {
- $config_sh
-}
-
-sub config_re {
- my $re = shift;
- my @matches = grep /^$re=/, split /^/, $config_sh;
- @matches ? (print @matches) : print "$re: not found\n";
-}
-
-sub config_vars {
- foreach(@_){
- config_re($_), next if /\W/;
- my $v=(exists $Config{$_}) ? $Config{$_} : 'UNKNOWN';
- $v='undef' unless defined $v;
- print "$_='$v';\n";
- }
-}
-
-sub TIEHASH { bless {} }
-
-# avoid Config..Exporter..UNIVERSAL search for DESTROY then AUTOLOAD
-sub DESTROY { }
-
-tie %Config, 'Config';
-
-1;
-__END__
-
-=head1 NAME
-
-Config - access Perl configuration information
-
-=head1 SYNOPSIS
-
- use Config;
- if ($Config{'cc'} =~ /gcc/) {
- print "built by gcc\n";
- }
-
- use Config qw(myconfig config_sh config_vars);
-
- print myconfig();
-
- print config_sh();
-
- config_vars(qw(osname archname));
-
-
-=head1 DESCRIPTION
-
-The Config module contains all the information that was available to
-the C<Configure> program at Perl build time (over 900 values).
-
-Shell variables from the F<config.sh> file (written by Configure) are
-stored in the readonly-variable C<%Config>, indexed by their names.
-
-Values stored in config.sh as 'undef' are returned as undefined
-values. The perl C<exists> function can be used to check if a
-named variable exists.
-
-=over 4
-
-=item myconfig()
-
-Returns a textual summary of the major perl configuration values.
-See also C<-V> in L<perlrun/Switches>.
-
-=item config_sh()
-
-Returns the entire perl configuration information in the form of the
-original config.sh shell variable assignment script.
-
-=item config_vars(@names)
-
-Prints to STDOUT the values of the named configuration variable. Each is
-printed on a separate line in the form:
-
- name='value';
-
-Names which are unknown are output as C<name='UNKNOWN';>.
-See also C<-V:name> in L<perlrun/Switches>.
-
-=back
-
-=head1 EXAMPLE
-
-Here's a more sophisticated example of using %Config:
-
- use Config;
- use strict;
-
- my %sig_num;
- my @sig_name;
- unless($Config{sig_name} && $Config{sig_num}) {
- die "No sigs?";
- } else {
- my @names = split ' ', $Config{sig_name};
- @sig_num{@names} = split ' ', $Config{sig_num};
- foreach (@names) {
- $sig_name[$sig_num{$_}] ||= $_;
- }
- }
-
- print "signal #17 = $sig_name[17]\n";
- if ($sig_num{ALRM}) {
- print "SIGALRM is $sig_num{ALRM}\n";
- }
-
-=head1 WARNING
-
-Because this information is not stored within the perl executable
-itself it is possible (but unlikely) that the information does not
-relate to the actual perl binary which is being used to access it.
-
-The Config module is installed into the architecture and version
-specific library directory ($Config{installarchlib}) and it checks the
-perl version number when loaded.
-
-The values stored in config.sh may be either single-quoted or
-double-quoted. Double-quoted strings are handy for those cases where you
-need to include escape sequences in the strings. To avoid runtime variable
-interpolation, any C<$> and C<@> characters are replaced by C<\$> and
-C<\@>, respectively. This isn't foolproof, of course, so don't embed C<\$>
-or C<\@> in double-quoted strings unless you're willing to deal with the
-consequences. (The slashes will end up escaped and the C<$> or C<@> will
-trigger variable interpolation)
-
-=head1 GLOSSARY
-
-Most C<Config> variables are determined by the C<Configure> script
-on platforms supported by it (which is most UNIX platforms). Some
-platforms have custom-made C<Config> variables, and may thus not have
-some of the variables described below, or may have extraneous variables
-specific to that particular port. See the port specific documentation
-in such cases.
-
-=head2 _
-
-=over 4
-
-=item C<_a>
-
-From F<Unix.U>:
-
-This variable defines the extension used for ordinary library files.
-For unix, it is F<.a>. The F<.> is included. Other possible
-values include F<.lib>.
-
-=item C<_exe>
-
-From F<Unix.U>:
-
-This variable defines the extension used for executable files.
-C<DJGPP>, Cygwin and F<OS/2> use F<.exe>. Stratus C<VOS> uses F<.pm>.
-On operating systems which do not require a specific extension
-for executable files, this variable is empty.
-
-=item C<_o>
-
-From F<Unix.U>:
-
-This variable defines the extension used for object files.
-For unix, it is F<.o>. The F<.> is included. Other possible
-values include F<.obj>.
-
-=back
-
-=head2 a
-
-=over 4
-
-=item C<afs>
-
-From F<afs.U>:
-
-This variable is set to C<true> if C<AFS> (Andrew File System) is used
-on the system, C<false> otherwise. It is possible to override this
-with a hint value or command line option, but you'd better know
-what you are doing.
-
-=item C<afsroot>
-
-From F<afs.U>:
-
-This variable is by default set to F</afs>. In the unlikely case
-this is not the correct root, it is possible to override this with
-a hint value or command line option. This will be used in subsequent
-tests for AFSness in the Perl configure and test process.
-
-=item C<alignbytes>
-
-From F<alignbytes.U>:
-
-This variable holds the number of bytes required to align a
-double-- or a long double when applicable. Usual values are
-2, 4 and 8. The default is eight, for safety.
-
-=item C<ansi2knr>
-
-From F<ansi2knr.U>:
-
-This variable is set if the user needs to run ansi2knr.
-Currently, this is not supported, so we just abort.
-
-=item C<aphostname>
-
-From F<d_gethname.U>:
-
-This variable contains the command which can be used to compute the
-host name. The command is fully qualified by its absolute path, to make
-it safe when used by a process with super-user privileges.
-
-=item C<api_revision>
-
-From F<patchlevel.U>:
-
-The three variables, api_revision, api_version, and
-api_subversion, specify the version of the oldest perl binary
-compatible with the present perl. In a full version string
-such as F<5.6.1>, api_revision is the C<5>.
-Prior to 5.5.640, the format was a floating point number,
-like 5.00563.
-
-F<perl.c>:incpush() and F<lib/lib.pm> will automatically search in
-F<$sitelib/.>. for older directories back to the limit specified
-by these api_ variables. This is only useful if you have a
-perl library directory tree structured like the default one.
-See C<INSTALL> for how this works. The versioned site_perl
-directory was introduced in 5.005, so that is the lowest
-possible value. The version list appropriate for the current
-system is determined in F<inc_version_list.U>.
-
-C<XXX> To do: Since compatibility can depend on compile time
-options (such as bincompat, longlong, etc.) it should
-(perhaps) be set by Configure, but currently it isn't.
-Currently, we read a hard-wired value from F<patchlevel.h>.
-Perhaps what we ought to do is take the hard-wired value from
-F<patchlevel.h> but then modify it if the current Configure
-options warrant. F<patchlevel.h> then would use an #ifdef guard.
-
-=item C<api_subversion>
-
-From F<patchlevel.U>:
-
-The three variables, api_revision, api_version, and
-api_subversion, specify the version of the oldest perl binary
-compatible with the present perl. In a full version string
-such as F<5.6.1>, api_subversion is the C<1>. See api_revision for
-full details.
-
-=item C<api_version>
-
-From F<patchlevel.U>:
-
-The three variables, api_revision, api_version, and
-api_subversion, specify the version of the oldest perl binary
-compatible with the present perl. In a full version string
-such as F<5.6.1>, api_version is the C<6>. See api_revision for
-full details. As a special case, 5.5.0 is rendered in the
-old-style as 5.005. (In the 5.005_0x maintenance series,
-this was the only versioned directory in $sitelib.)
-
-=item C<api_versionstring>
-
-From F<patchlevel.U>:
-
-This variable combines api_revision, api_version, and
-api_subversion in a format such as 5.6.1 (or 5_6_1) suitable
-for use as a directory name. This is filesystem dependent.
-
-=item C<ar>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the ar program. After Configure runs,
-the value is reset to a plain C<ar> and is not useful.
-
-=item C<archlib>
-
-From F<archlib.U>:
-
-This variable holds the name of the directory in which the user wants
-to put architecture-dependent public library files for $package.
-It is most often a local directory such as F</usr/local/lib>.
-Programs using this variable must be prepared to deal
-with filename expansion.
-
-=item C<archlibexp>
-
-From F<archlib.U>:
-
-This variable is the same as the archlib variable, but is
-filename expanded at configuration time, for convenient use.
-
-=item C<archname64>
-
-From F<use64bits.U>:
-
-This variable is used for the 64-bitness part of $archname.
-
-=item C<archname>
-
-From F<archname.U>:
-
-This variable is a short name to characterize the current
-architecture. It is used mainly to construct the default archlib.
-
-=item C<archobjs>
-
-From F<Unix.U>:
-
-This variable defines any additional objects that must be linked
-in with the program on this architecture. On unix, it is usually
-empty. It is typically used to include emulations of unix calls
-or other facilities. For perl on F<OS/2>, for example, this would
-include F<os2/os2.obj>.
-
-=item C<asctime_r_proto>
-
-From F<d_asctime_r.U>:
-
-This variable encodes the prototype of asctime_r.
-It is zero if d_asctime_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_asctime_r
-is defined.
-
-=item C<awk>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the awk program. After Configure runs,
-the value is reset to a plain C<awk> and is not useful.
-
-=back
-
-=head2 b
-
-=over 4
-
-=item C<baserev>
-
-From F<baserev.U>:
-
-The base revision level of this package, from the F<.package> file.
-
-=item C<bash>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<bin>
-
-From F<bin.U>:
-
-This variable holds the name of the directory in which the user wants
-to put publicly executable images for the package in question. It
-is most often a local directory such as F</usr/local/bin>. Programs using
-this variable must be prepared to deal with F<~name> substitution.
-
-=item C<binexp>
-
-From F<bin.U>:
-
-This is the same as the bin variable, but is filename expanded at
-configuration time, for use in your makefiles.
-
-=item C<bison>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the bison program. After Configure runs,
-the value is reset to a plain C<bison> and is not useful.
-
-=item C<byacc>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the byacc program. After Configure runs,
-the value is reset to a plain C<byacc> and is not useful.
-
-=item C<byteorder>
-
-From F<byteorder.U>:
-
-This variable holds the byte order in a C<UV>. In the following,
-larger digits indicate more significance. The variable byteorder
-is either 4321 on a big-endian machine, or 1234 on a little-endian,
-or 87654321 on a Cray ... or 3412 with weird order !
-
-=back
-
-=head2 c
-
-=over 4
-
-=item C<c>
-
-From F<n.U>:
-
-This variable contains the \c string if that is what causes the echo
-command to suppress newline. Otherwise it is null. Correct usage is
-$echo $n "prompt for a question: $c".
-
-=item C<castflags>
-
-From F<d_castneg.U>:
-
-This variable contains a flag that precise difficulties the
-compiler has casting odd floating values to unsigned long:
-0 = ok
-1 = couldn't cast < 0
-2 = couldn't cast >= 0x80000000
-4 = couldn't cast in argument expression list
-
-=item C<cat>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the cat program. After Configure runs,
-the value is reset to a plain C<cat> and is not useful.
-
-=item C<cc>
-
-From F<cc.U>:
-
-This variable holds the name of a command to execute a C compiler which
-can resolve multiple global references that happen to have the same
-name. Usual values are C<cc> and C<gcc>.
-Fervent C<ANSI> compilers may be called C<c89>. C<AIX> has xlc.
-
-=item C<cccdlflags>
-
-From F<dlsrc.U>:
-
-This variable contains any special flags that might need to be
-passed with C<cc -c> to compile modules to be used to create a shared
-library that will be used for dynamic loading. For hpux, this
-should be +z. It is up to the makefile to use it.
-
-=item C<ccdlflags>
-
-From F<dlsrc.U>:
-
-This variable contains any special flags that might need to be
-passed to cc to link with a shared library for dynamic loading.
-It is up to the makefile to use it. For sunos 4.1, it should
-be empty.
-
-=item C<ccflags>
-
-From F<ccflags.U>:
-
-This variable contains any additional C compiler flags desired by
-the user. It is up to the Makefile to use this.
-
-=item C<ccflags_uselargefiles>
-
-From F<uselfs.U>:
-
-This variable contains the compiler flags needed by large file builds
-and added to ccflags by hints files.
-
-=item C<ccname>
-
-From F<Checkcc.U>:
-
-This can set either by hints files or by Configure. If using
-gcc, this is gcc, and if not, usually equal to cc, unimpressive, no?
-Some platforms, however, make good use of this by storing the
-flavor of the C compiler being used here. For example if using
-the Sun WorkShop suite, ccname will be C<workshop>.
-
-=item C<ccsymbols>
-
-From F<Cppsym.U>:
-
-The variable contains the symbols defined by the C compiler alone.
-The symbols defined by cpp or by cc when it calls cpp are not in
-this list, see cppsymbols and cppccsymbols.
-The list is a space-separated list of symbol=value tokens.
-
-=item C<ccversion>
-
-From F<Checkcc.U>:
-
-This can set either by hints files or by Configure. If using
-a (non-gcc) vendor cc, this variable may contain a version for
-the compiler.
-
-=item C<cf_by>
-
-From F<cf_who.U>:
-
-Login name of the person who ran the Configure script and answered the
-questions. This is used to tag both F<config.sh> and F<config_h.SH>.
-
-=item C<cf_email>
-
-From F<cf_email.U>:
-
-Electronic mail address of the person who ran Configure. This can be
-used by units that require the user's e-mail, like F<MailList.U>.
-
-=item C<cf_time>
-
-From F<cf_who.U>:
-
-Holds the output of the C<date> command when the configuration file was
-produced. This is used to tag both F<config.sh> and F<config_h.SH>.
-
-=item C<charsize>
-
-From F<charsize.U>:
-
-This variable contains the value of the C<CHARSIZE> symbol, which
-indicates to the C program how many bytes there are in a character.
-
-=item C<chgrp>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<chmod>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the chmod program. After Configure runs,
-the value is reset to a plain C<chmod> and is not useful.
-
-=item C<chown>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<clocktype>
-
-From F<d_times.U>:
-
-This variable holds the type returned by times(). It can be long,
-or clock_t on C<BSD> sites (in which case <sys/types.h> should be
-included).
-
-=item C<comm>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the comm program. After Configure runs,
-the value is reset to a plain C<comm> and is not useful.
-
-=item C<compress>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<contains>
-
-From F<contains.U>:
-
-This variable holds the command to do a grep with a proper return
-status. On most sane systems it is simply C<grep>. On insane systems
-it is a grep followed by a cat followed by a test. This variable
-is primarily for the use of other Configure units.
-
-=item C<cp>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the cp program. After Configure runs,
-the value is reset to a plain C<cp> and is not useful.
-
-=item C<cpio>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<cpp>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the cpp program. After Configure runs,
-the value is reset to a plain C<cpp> and is not useful.
-
-=item C<cpp_stuff>
-
-From F<cpp_stuff.U>:
-
-This variable contains an identification of the catenation mechanism
-used by the C preprocessor.
-
-=item C<cppccsymbols>
-
-From F<Cppsym.U>:
-
-The variable contains the symbols defined by the C compiler
-when it calls cpp. The symbols defined by the cc alone or cpp
-alone are not in this list, see ccsymbols and cppsymbols.
-The list is a space-separated list of symbol=value tokens.
-
-=item C<cppflags>
-
-From F<ccflags.U>:
-
-This variable holds the flags that will be passed to the C pre-
-processor. It is up to the Makefile to use it.
-
-=item C<cpplast>
-
-From F<cppstdin.U>:
-
-This variable has the same functionality as cppminus, only it applies
-to cpprun and not cppstdin.
-
-=item C<cppminus>
-
-From F<cppstdin.U>:
-
-This variable contains the second part of the string which will invoke
-the C preprocessor on the standard input and produce to standard
-output. This variable will have the value C<-> if cppstdin needs
-a minus to specify standard input, otherwise the value is "".
-
-=item C<cpprun>
-
-From F<cppstdin.U>:
-
-This variable contains the command which will invoke a C preprocessor
-on standard input and put the output to stdout. It is guaranteed not
-to be a wrapper and may be a null string if no preprocessor can be
-made directly available. This preprocessor might be different from the
-one used by the C compiler. Don't forget to append cpplast after the
-preprocessor options.
-
-=item C<cppstdin>
-
-From F<cppstdin.U>:
-
-This variable contains the command which will invoke the C
-preprocessor on standard input and put the output to stdout.
-It is primarily used by other Configure units that ask about
-preprocessor symbols.
-
-=item C<cppsymbols>
-
-From F<Cppsym.U>:
-
-The variable contains the symbols defined by the C preprocessor
-alone. The symbols defined by cc or by cc when it calls cpp are
-not in this list, see ccsymbols and cppccsymbols.
-The list is a space-separated list of symbol=value tokens.
-
-=item C<crypt_r_proto>
-
-From F<d_crypt_r.U>:
-
-This variable encodes the prototype of crypt_r.
-It is zero if d_crypt_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_crypt_r
-is defined.
-
-=item C<cryptlib>
-
-From F<d_crypt.U>:
-
-This variable holds -lcrypt or the path to a F<libcrypt.a> archive if
-the crypt() function is not defined in the standard C library. It is
-up to the Makefile to use this.
-
-=item C<csh>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the csh program. After Configure runs,
-the value is reset to a plain C<csh> and is not useful.
-
-=item C<ctermid_r_proto>
-
-From F<d_ctermid_r.U>:
-
-This variable encodes the prototype of ctermid_r.
-It is zero if d_ctermid_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_ctermid_r
-is defined.
-
-=item C<ctime_r_proto>
-
-From F<d_ctime_r.U>:
-
-This variable encodes the prototype of ctime_r.
-It is zero if d_ctime_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_ctime_r
-is defined.
-
-=back
-
-=head2 d
-
-=over 4
-
-=item C<d__fwalk>
-
-From F<d__fwalk.U>:
-
-This variable conditionally defines C<HAS__FWALK> if _fwalk() is
-available to apply a function to all the file handles.
-
-=item C<d_access>
-
-From F<d_access.U>:
-
-This variable conditionally defines C<HAS_ACCESS> if the access() system
-call is available to check for access permissions using real IDs.
-
-=item C<d_accessx>
-
-From F<d_accessx.U>:
-
-This variable conditionally defines the C<HAS_ACCESSX> symbol, which
-indicates to the C program that the accessx() routine is available.
-
-=item C<d_alarm>
-
-From F<d_alarm.U>:
-
-This variable conditionally defines the C<HAS_ALARM> symbol, which
-indicates to the C program that the alarm() routine is available.
-
-=item C<d_archlib>
-
-From F<archlib.U>:
-
-This variable conditionally defines C<ARCHLIB> to hold the pathname
-of architecture-dependent library files for $package. If
-$archlib is the same as $privlib, then this is set to undef.
-
-=item C<d_asctime_r>
-
-From F<d_asctime_r.U>:
-
-This variable conditionally defines the C<HAS_ASCTIME_R> symbol,
-which indicates to the C program that the asctime_r()
-routine is available.
-
-=item C<d_atolf>
-
-From F<atolf.U>:
-
-This variable conditionally defines the C<HAS_ATOLF> symbol, which
-indicates to the C program that the atolf() routine is available.
-
-=item C<d_atoll>
-
-From F<atoll.U>:
-
-This variable conditionally defines the C<HAS_ATOLL> symbol, which
-indicates to the C program that the atoll() routine is available.
-
-=item C<d_attribut>
-
-From F<d_attribut.U>:
-
-This variable conditionally defines C<HASATTRIBUTE>, which
-indicates the C compiler can check for function attributes,
-such as printf formats.
-
-=item C<d_bcmp>
-
-From F<d_bcmp.U>:
-
-This variable conditionally defines the C<HAS_BCMP> symbol if
-the bcmp() routine is available to compare strings.
-
-=item C<d_bcopy>
-
-From F<d_bcopy.U>:
-
-This variable conditionally defines the C<HAS_BCOPY> symbol if
-the bcopy() routine is available to copy strings.
-
-=item C<d_bsd>
-
-From F<Guess.U>:
-
-This symbol conditionally defines the symbol C<BSD> when running on a
-C<BSD> system.
-
-=item C<d_bsdgetpgrp>
-
-From F<d_getpgrp.U>:
-
-This variable conditionally defines C<USE_BSD_GETPGRP> if
-getpgrp needs one arguments whereas C<USG> one needs none.
-
-=item C<d_bsdsetpgrp>
-
-From F<d_setpgrp.U>:
-
-This variable conditionally defines C<USE_BSD_SETPGRP> if
-setpgrp needs two arguments whereas C<USG> one needs none.
-See also d_setpgid for a C<POSIX> interface.
-
-=item C<d_bzero>
-
-From F<d_bzero.U>:
-
-This variable conditionally defines the C<HAS_BZERO> symbol if
-the bzero() routine is available to set memory to 0.
-
-=item C<d_casti32>
-
-From F<d_casti32.U>:
-
-This variable conditionally defines CASTI32, which indicates
-whether the C compiler can cast large floats to 32-bit ints.
-
-=item C<d_castneg>
-
-From F<d_castneg.U>:
-
-This variable conditionally defines C<CASTNEG>, which indicates
-wether the C compiler can cast negative float to unsigned.
-
-=item C<d_charvspr>
-
-From F<d_vprintf.U>:
-
-This variable conditionally defines C<CHARVSPRINTF> if this system
-has vsprintf returning type (char*). The trend seems to be to
-declare it as "int vsprintf()".
-
-=item C<d_chown>
-
-From F<d_chown.U>:
-
-This variable conditionally defines the C<HAS_CHOWN> symbol, which
-indicates to the C program that the chown() routine is available.
-
-=item C<d_chroot>
-
-From F<d_chroot.U>:
-
-This variable conditionally defines the C<HAS_CHROOT> symbol, which
-indicates to the C program that the chroot() routine is available.
-
-=item C<d_chsize>
-
-From F<d_chsize.U>:
-
-This variable conditionally defines the C<CHSIZE> symbol, which
-indicates to the C program that the chsize() routine is available
-to truncate files. You might need a -lx to get this routine.
-
-=item C<d_class>
-
-From F<d_class.U>:
-
-This variable conditionally defines the C<HAS_CLASS> symbol, which
-indicates to the C program that the class() routine is available.
-
-=item C<d_closedir>
-
-From F<d_closedir.U>:
-
-This variable conditionally defines C<HAS_CLOSEDIR> if closedir() is
-available.
-
-=item C<d_cmsghdr_s>
-
-From F<d_cmsghdr_s.U>:
-
-This variable conditionally defines the C<HAS_STRUCT_CMSGHDR> symbol,
-which indicates that the struct cmsghdr is supported.
-
-=item C<d_const>
-
-From F<d_const.U>:
-
-This variable conditionally defines the C<HASCONST> symbol, which
-indicates to the C program that this C compiler knows about the
-const type.
-
-=item C<d_crypt>
-
-From F<d_crypt.U>:
-
-This variable conditionally defines the C<CRYPT> symbol, which
-indicates to the C program that the crypt() routine is available
-to encrypt passwords and the like.
-
-=item C<d_crypt_r>
-
-From F<d_crypt_r.U>:
-
-This variable conditionally defines the C<HAS_CRYPT_R> symbol,
-which indicates to the C program that the crypt_r()
-routine is available.
-
-=item C<d_csh>
-
-From F<d_csh.U>:
-
-This variable conditionally defines the C<CSH> symbol, which
-indicates to the C program that the C-shell exists.
-
-=item C<d_ctermid_r>
-
-From F<d_ctermid_r.U>:
-
-This variable conditionally defines the C<HAS_CTERMID_R> symbol,
-which indicates to the C program that the ctermid_r()
-routine is available.
-
-=item C<d_ctime_r>
-
-From F<d_ctime_r.U>:
-
-This variable conditionally defines the C<HAS_CTIME_R> symbol,
-which indicates to the C program that the ctime_r()
-routine is available.
-
-=item C<d_cuserid>
-
-From F<d_cuserid.U>:
-
-This variable conditionally defines the C<HAS_CUSERID> symbol, which
-indicates to the C program that the cuserid() routine is available
-to get character login names.
-
-=item C<d_dbl_dig>
-
-From F<d_dbl_dig.U>:
-
-This variable conditionally defines d_dbl_dig if this system's
-header files provide C<DBL_DIG>, which is the number of significant
-digits in a double precision number.
-
-=item C<d_dbminitproto>
-
-From F<d_dbminitproto.U>:
-
-This variable conditionally defines the C<HAS_DBMINIT_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the dbminit() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_difftime>
-
-From F<d_difftime.U>:
-
-This variable conditionally defines the C<HAS_DIFFTIME> symbol, which
-indicates to the C program that the difftime() routine is available.
-
-=item C<d_dirfd>
-
-From F<d_dirfd.U>:
-
-This variable conditionally defines the C<HAS_DIRFD> constant,
-which indicates to the C program that dirfd() is available
-to return the file descriptor of a directory stream.
-
-=item C<d_dirnamlen>
-
-From F<i_dirent.U>:
-
-This variable conditionally defines C<DIRNAMLEN>, which indicates
-to the C program that the length of directory entry names is
-provided by a d_namelen field.
-
-=item C<d_dlerror>
-
-From F<d_dlerror.U>:
-
-This variable conditionally defines the C<HAS_DLERROR> symbol, which
-indicates to the C program that the dlerror() routine is available.
-
-=item C<d_dlopen>
-
-From F<d_dlopen.U>:
-
-This variable conditionally defines the C<HAS_DLOPEN> symbol, which
-indicates to the C program that the dlopen() routine is available.
-
-=item C<d_dlsymun>
-
-From F<d_dlsymun.U>:
-
-This variable conditionally defines C<DLSYM_NEEDS_UNDERSCORE>, which
-indicates that we need to prepend an underscore to the symbol
-name before calling dlsym().
-
-=item C<d_dosuid>
-
-From F<d_dosuid.U>:
-
-This variable conditionally defines the symbol C<DOSUID>, which
-tells the C program that it should insert setuid emulation code
-on hosts which have setuid #! scripts disabled.
-
-=item C<d_drand48_r>
-
-From F<d_drand48_r.U>:
-
-This variable conditionally defines the HAS_DRAND48_R symbol,
-which indicates to the C program that the drand48_r()
-routine is available.
-
-=item C<d_drand48proto>
-
-From F<d_drand48proto.U>:
-
-This variable conditionally defines the HAS_DRAND48_PROTO symbol,
-which indicates to the C program that the system provides
-a prototype for the drand48() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_dup2>
-
-From F<d_dup2.U>:
-
-This variable conditionally defines HAS_DUP2 if dup2() is
-available to duplicate file descriptors.
-
-=item C<d_eaccess>
-
-From F<d_eaccess.U>:
-
-This variable conditionally defines the C<HAS_EACCESS> symbol, which
-indicates to the C program that the eaccess() routine is available.
-
-=item C<d_endgrent>
-
-From F<d_endgrent.U>:
-
-This variable conditionally defines the C<HAS_ENDGRENT> symbol, which
-indicates to the C program that the endgrent() routine is available
-for sequential access of the group database.
-
-=item C<d_endgrent_r>
-
-From F<d_endgrent_r.U>:
-
-This variable conditionally defines the C<HAS_ENDGRENT_R> symbol,
-which indicates to the C program that the endgrent_r()
-routine is available.
-
-=item C<d_endhent>
-
-From F<d_endhent.U>:
-
-This variable conditionally defines C<HAS_ENDHOSTENT> if endhostent() is
-available to close whatever was being used for host queries.
-
-=item C<d_endhostent_r>
-
-From F<d_endhostent_r.U>:
-
-This variable conditionally defines the C<HAS_ENDHOSTENT_R> symbol,
-which indicates to the C program that the endhostent_r()
-routine is available.
-
-=item C<d_endnent>
-
-From F<d_endnent.U>:
-
-This variable conditionally defines C<HAS_ENDNETENT> if endnetent() is
-available to close whatever was being used for network queries.
-
-=item C<d_endnetent_r>
-
-From F<d_endnetent_r.U>:
-
-This variable conditionally defines the C<HAS_ENDNETENT_R> symbol,
-which indicates to the C program that the endnetent_r()
-routine is available.
-
-=item C<d_endpent>
-
-From F<d_endpent.U>:
-
-This variable conditionally defines C<HAS_ENDPROTOENT> if endprotoent() is
-available to close whatever was being used for protocol queries.
-
-=item C<d_endprotoent_r>
-
-From F<d_endprotoent_r.U>:
-
-This variable conditionally defines the C<HAS_ENDPROTOENT_R> symbol,
-which indicates to the C program that the endprotoent_r()
-routine is available.
-
-=item C<d_endpwent>
-
-From F<d_endpwent.U>:
-
-This variable conditionally defines the C<HAS_ENDPWENT> symbol, which
-indicates to the C program that the endpwent() routine is available
-for sequential access of the passwd database.
-
-=item C<d_endpwent_r>
-
-From F<d_endpwent_r.U>:
-
-This variable conditionally defines the C<HAS_ENDPWENT_R> symbol,
-which indicates to the C program that the endpwent_r()
-routine is available.
-
-=item C<d_endsent>
-
-From F<d_endsent.U>:
-
-This variable conditionally defines C<HAS_ENDSERVENT> if endservent() is
-available to close whatever was being used for service queries.
-
-=item C<d_endservent_r>
-
-From F<d_endservent_r.U>:
-
-This variable conditionally defines the C<HAS_ENDSERVENT_R> symbol,
-which indicates to the C program that the endservent_r()
-routine is available.
-
-=item C<d_eofnblk>
-
-From F<nblock_io.U>:
-
-This variable conditionally defines C<EOF_NONBLOCK> if C<EOF> can be seen
-when reading from a non-blocking I/O source.
-
-=item C<d_eunice>
-
-From F<Guess.U>:
-
-This variable conditionally defines the symbols C<EUNICE> and C<VAX>, which
-alerts the C program that it must deal with ideosyncracies of C<VMS>.
-
-=item C<d_fchdir>
-
-From F<d_fchdir.U>:
-
-This variable conditionally defines the C<HAS_FCHDIR> symbol, which
-indicates to the C program that the fchdir() routine is available.
-
-=item C<d_fchmod>
-
-From F<d_fchmod.U>:
-
-This variable conditionally defines the C<HAS_FCHMOD> symbol, which
-indicates to the C program that the fchmod() routine is available
-to change mode of opened files.
-
-=item C<d_fchown>
-
-From F<d_fchown.U>:
-
-This variable conditionally defines the C<HAS_FCHOWN> symbol, which
-indicates to the C program that the fchown() routine is available
-to change ownership of opened files.
-
-=item C<d_fcntl>
-
-From F<d_fcntl.U>:
-
-This variable conditionally defines the C<HAS_FCNTL> symbol, and indicates
-whether the fcntl() function exists
-
-=item C<d_fcntl_can_lock>
-
-From F<d_fcntl_can_lock.U>:
-
-This variable conditionally defines the C<FCNTL_CAN_LOCK> symbol
-and indicates whether file locking with fcntl() works.
-
-=item C<d_fd_macros>
-
-From F<d_fd_set.U>:
-
-This variable contains the eventual value of the C<HAS_FD_MACROS> symbol,
-which indicates if your C compiler knows about the macros which
-manipulate an fd_set.
-
-=item C<d_fd_set>
-
-From F<d_fd_set.U>:
-
-This variable contains the eventual value of the C<HAS_FD_SET> symbol,
-which indicates if your C compiler knows about the fd_set typedef.
-
-=item C<d_fds_bits>
-
-From F<d_fd_set.U>:
-
-This variable contains the eventual value of the C<HAS_FDS_BITS> symbol,
-which indicates if your fd_set typedef contains the fds_bits member.
-If you have an fd_set typedef, but the dweebs who installed it did
-a half-fast job and neglected to provide the macros to manipulate
-an fd_set, C<HAS_FDS_BITS> will let us know how to fix the gaffe.
-
-=item C<d_fgetpos>
-
-From F<d_fgetpos.U>:
-
-This variable conditionally defines C<HAS_FGETPOS> if fgetpos() is
-available to get the file position indicator.
-
-=item C<d_finite>
-
-From F<d_finite.U>:
-
-This variable conditionally defines the C<HAS_FINITE> symbol, which
-indicates to the C program that the finite() routine is available.
-
-=item C<d_finitel>
-
-From F<d_finitel.U>:
-
-This variable conditionally defines the C<HAS_FINITEL> symbol, which
-indicates to the C program that the finitel() routine is available.
-
-=item C<d_flexfnam>
-
-From F<d_flexfnam.U>:
-
-This variable conditionally defines the C<FLEXFILENAMES> symbol, which
-indicates that the system supports filenames longer than 14 characters.
-
-=item C<d_flock>
-
-From F<d_flock.U>:
-
-This variable conditionally defines C<HAS_FLOCK> if flock() is
-available to do file locking.
-
-=item C<d_flockproto>
-
-From F<d_flockproto.U>:
-
-This variable conditionally defines the C<HAS_FLOCK_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the flock() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_fork>
-
-From F<d_fork.U>:
-
-This variable conditionally defines the C<HAS_FORK> symbol, which
-indicates to the C program that the fork() routine is available.
-
-=item C<d_fp_class>
-
-From F<d_fp_class.U>:
-
-This variable conditionally defines the C<HAS_FP_CLASS> symbol, which
-indicates to the C program that the fp_class() routine is available.
-
-=item C<d_fpathconf>
-
-From F<d_pathconf.U>:
-
-This variable conditionally defines the C<HAS_FPATHCONF> symbol, which
-indicates to the C program that the pathconf() routine is available
-to determine file-system related limits and options associated
-with a given open file descriptor.
-
-=item C<d_fpclass>
-
-From F<d_fpclass.U>:
-
-This variable conditionally defines the C<HAS_FPCLASS> symbol, which
-indicates to the C program that the fpclass() routine is available.
-
-=item C<d_fpclassify>
-
-From F<d_fpclassify.U>:
-
-This variable conditionally defines the C<HAS_FPCLASSIFY> symbol, which
-indicates to the C program that the fpclassify() routine is available.
-
-=item C<d_fpclassl>
-
-From F<d_fpclassl.U>:
-
-This variable conditionally defines the C<HAS_FPCLASSL> symbol, which
-indicates to the C program that the fpclassl() routine is available.
-
-=item C<d_fpos64_t>
-
-From F<d_fpos64_t.U>:
-
-This symbol will be defined if the C compiler supports fpos64_t.
-
-=item C<d_frexpl>
-
-From F<d_frexpl.U>:
-
-This variable conditionally defines the C<HAS_FREXPL> symbol, which
-indicates to the C program that the frexpl() routine is available.
-
-=item C<d_fs_data_s>
-
-From F<d_fs_data_s.U>:
-
-This variable conditionally defines the C<HAS_STRUCT_FS_DATA> symbol,
-which indicates that the struct fs_data is supported.
-
-=item C<d_fseeko>
-
-From F<d_fseeko.U>:
-
-This variable conditionally defines the C<HAS_FSEEKO> symbol, which
-indicates to the C program that the fseeko() routine is available.
-
-=item C<d_fsetpos>
-
-From F<d_fsetpos.U>:
-
-This variable conditionally defines C<HAS_FSETPOS> if fsetpos() is
-available to set the file position indicator.
-
-=item C<d_fstatfs>
-
-From F<d_fstatfs.U>:
-
-This variable conditionally defines the C<HAS_FSTATFS> symbol, which
-indicates to the C program that the fstatfs() routine is available.
-
-=item C<d_fstatvfs>
-
-From F<d_statvfs.U>:
-
-This variable conditionally defines the C<HAS_FSTATVFS> symbol, which
-indicates to the C program that the fstatvfs() routine is available.
-
-=item C<d_fsync>
-
-From F<d_fsync.U>:
-
-This variable conditionally defines the C<HAS_FSYNC> symbol, which
-indicates to the C program that the fsync() routine is available.
-
-=item C<d_ftello>
-
-From F<d_ftello.U>:
-
-This variable conditionally defines the C<HAS_FTELLO> symbol, which
-indicates to the C program that the ftello() routine is available.
-
-=item C<d_ftime>
-
-From F<d_ftime.U>:
-
-This variable conditionally defines the C<HAS_FTIME> symbol, which indicates
-that the ftime() routine exists. The ftime() routine is basically
-a sub-second accuracy clock.
-
-=item C<d_Gconvert>
-
-From F<d_gconvert.U>:
-
-This variable holds what Gconvert is defined as to convert
-floating point numbers into strings. By default, Configure
-sets C<this> macro to use the first of gconvert, gcvt, or sprintf
-that pass sprintf-%g-like behaviour tests. If perl is using
-long doubles, the macro uses the first of the following
-functions that pass Configure's tests: qgcvt, sprintf (if
-Configure knows how to make sprintf format long doubles--see
-sPRIgldbl), gconvert, gcvt, and sprintf (casting to double).
-The gconvert_preference and gconvert_ld_preference variables
-can be used to alter Configure's preferences, for doubles and
-long doubles, respectively. If present, they contain a
-space-separated list of one or more of the above function
-names in the order they should be tried.
-
-d_Gconvert may be set to override Configure with a platform-
-specific function. If this function expects a double, a
-different value may need to be set by the F<uselongdouble.cbu>
-call-back unit so that long doubles can be formatted without
-loss of precision.
-
-=item C<d_getcwd>
-
-From F<d_getcwd.U>:
-
-This variable conditionally defines the C<HAS_GETCWD> symbol, which
-indicates to the C program that the getcwd() routine is available
-to get the current working directory.
-
-=item C<d_getespwnam>
-
-From F<d_getespwnam.U>:
-
-This variable conditionally defines C<HAS_GETESPWNAM> if getespwnam() is
-available to retrieve enchanced (shadow) password entries by name.
-
-=item C<d_getfsstat>
-
-From F<d_getfsstat.U>:
-
-This variable conditionally defines the C<HAS_GETFSSTAT> symbol, which
-indicates to the C program that the getfsstat() routine is available.
-
-=item C<d_getgrent>
-
-From F<d_getgrent.U>:
-
-This variable conditionally defines the C<HAS_GETGRENT> symbol, which
-indicates to the C program that the getgrent() routine is available
-for sequential access of the group database.
-
-=item C<d_getgrent_r>
-
-From F<d_getgrent_r.U>:
-
-This variable conditionally defines the C<HAS_GETGRENT_R> symbol,
-which indicates to the C program that the getgrent_r()
-routine is available.
-
-=item C<d_getgrgid_r>
-
-From F<d_getgrgid_r.U>:
-
-This variable conditionally defines the C<HAS_GETGRGID_R> symbol,
-which indicates to the C program that the getgrgid_r()
-routine is available.
-
-=item C<d_getgrnam_r>
-
-From F<d_getgrnam_r.U>:
-
-This variable conditionally defines the C<HAS_GETGRNAM_R> symbol,
-which indicates to the C program that the getgrnam_r()
-routine is available.
-
-=item C<d_getgrps>
-
-From F<d_getgrps.U>:
-
-This variable conditionally defines the C<HAS_GETGROUPS> symbol, which
-indicates to the C program that the getgroups() routine is available
-to get the list of process groups.
-
-=item C<d_gethbyaddr>
-
-From F<d_gethbyad.U>:
-
-This variable conditionally defines the C<HAS_GETHOSTBYADDR> symbol, which
-indicates to the C program that the gethostbyaddr() routine is available
-to look up hosts by their C<IP> addresses.
-
-=item C<d_gethbyname>
-
-From F<d_gethbynm.U>:
-
-This variable conditionally defines the C<HAS_GETHOSTBYNAME> symbol, which
-indicates to the C program that the gethostbyname() routine is available
-to look up host names in some data base or other.
-
-=item C<d_gethent>
-
-From F<d_gethent.U>:
-
-This variable conditionally defines C<HAS_GETHOSTENT> if gethostent() is
-available to look up host names in some data base or another.
-
-=item C<d_gethname>
-
-From F<d_gethname.U>:
-
-This variable conditionally defines the C<HAS_GETHOSTNAME> symbol, which
-indicates to the C program that the gethostname() routine may be
-used to derive the host name.
-
-=item C<d_gethostbyaddr_r>
-
-From F<d_gethostbyaddr_r.U>:
-
-This variable conditionally defines the C<HAS_GETHOSTBYADDR_R> symbol,
-which indicates to the C program that the gethostbyaddr_r()
-routine is available.
-
-=item C<d_gethostbyname_r>
-
-From F<d_gethostbyname_r.U>:
-
-This variable conditionally defines the C<HAS_GETHOSTBYNAME_R> symbol,
-which indicates to the C program that the gethostbyname_r()
-routine is available.
-
-=item C<d_gethostent_r>
-
-From F<d_gethostent_r.U>:
-
-This variable conditionally defines the C<HAS_GETHOSTENT_R> symbol,
-which indicates to the C program that the gethostent_r()
-routine is available.
-
-=item C<d_gethostprotos>
-
-From F<d_gethostprotos.U>:
-
-This variable conditionally defines the C<HAS_GETHOST_PROTOS> symbol,
-which indicates to the C program that <netdb.h> supplies
-prototypes for the various gethost*() functions.
-See also F<netdbtype.U> for probing for various netdb types.
-
-=item C<d_getitimer>
-
-From F<d_getitimer.U>:
-
-This variable conditionally defines the C<HAS_GETITIMER> symbol, which
-indicates to the C program that the getitimer() routine is available.
-
-=item C<d_getlogin>
-
-From F<d_getlogin.U>:
-
-This variable conditionally defines the C<HAS_GETLOGIN> symbol, which
-indicates to the C program that the getlogin() routine is available
-to get the login name.
-
-=item C<d_getlogin_r>
-
-From F<d_getlogin_r.U>:
-
-This variable conditionally defines the C<HAS_GETLOGIN_R> symbol,
-which indicates to the C program that the getlogin_r()
-routine is available.
-
-=item C<d_getmnt>
-
-From F<d_getmnt.U>:
-
-This variable conditionally defines the C<HAS_GETMNT> symbol, which
-indicates to the C program that the getmnt() routine is available
-to retrieve one or more mount info blocks by filename.
-
-=item C<d_getmntent>
-
-From F<d_getmntent.U>:
-
-This variable conditionally defines the C<HAS_GETMNTENT> symbol, which
-indicates to the C program that the getmntent() routine is available
-to iterate through mounted files to get their mount info.
-
-=item C<d_getnbyaddr>
-
-From F<d_getnbyad.U>:
-
-This variable conditionally defines the C<HAS_GETNETBYADDR> symbol, which
-indicates to the C program that the getnetbyaddr() routine is available
-to look up networks by their C<IP> addresses.
-
-=item C<d_getnbyname>
-
-From F<d_getnbynm.U>:
-
-This variable conditionally defines the C<HAS_GETNETBYNAME> symbol, which
-indicates to the C program that the getnetbyname() routine is available
-to look up networks by their names.
-
-=item C<d_getnent>
-
-From F<d_getnent.U>:
-
-This variable conditionally defines C<HAS_GETNETENT> if getnetent() is
-available to look up network names in some data base or another.
-
-=item C<d_getnetbyaddr_r>
-
-From F<d_getnetbyaddr_r.U>:
-
-This variable conditionally defines the C<HAS_GETNETBYADDR_R> symbol,
-which indicates to the C program that the getnetbyaddr_r()
-routine is available.
-
-=item C<d_getnetbyname_r>
-
-From F<d_getnetbyname_r.U>:
-
-This variable conditionally defines the C<HAS_GETNETBYNAME_R> symbol,
-which indicates to the C program that the getnetbyname_r()
-routine is available.
-
-=item C<d_getnetent_r>
-
-From F<d_getnetent_r.U>:
-
-This variable conditionally defines the C<HAS_GETNETENT_R> symbol,
-which indicates to the C program that the getnetent_r()
-routine is available.
-
-=item C<d_getnetprotos>
-
-From F<d_getnetprotos.U>:
-
-This variable conditionally defines the C<HAS_GETNET_PROTOS> symbol,
-which indicates to the C program that <netdb.h> supplies
-prototypes for the various getnet*() functions.
-See also F<netdbtype.U> for probing for various netdb types.
-
-=item C<d_getpagsz>
-
-From F<d_getpagsz.U>:
-
-This variable conditionally defines C<HAS_GETPAGESIZE> if getpagesize()
-is available to get the system page size.
-
-=item C<d_getpbyname>
-
-From F<d_getprotby.U>:
-
-This variable conditionally defines the C<HAS_GETPROTOBYNAME>
-symbol, which indicates to the C program that the
-getprotobyname() routine is available to look up protocols
-by their name.
-
-=item C<d_getpbynumber>
-
-From F<d_getprotby.U>:
-
-This variable conditionally defines the C<HAS_GETPROTOBYNUMBER>
-symbol, which indicates to the C program that the
-getprotobynumber() routine is available to look up protocols
-by their number.
-
-=item C<d_getpent>
-
-From F<d_getpent.U>:
-
-This variable conditionally defines C<HAS_GETPROTOENT> if getprotoent() is
-available to look up protocols in some data base or another.
-
-=item C<d_getpgid>
-
-From F<d_getpgid.U>:
-
-This variable conditionally defines the C<HAS_GETPGID> symbol, which
-indicates to the C program that the getpgid(pid) function
-is available to get the process group id.
-
-=item C<d_getpgrp2>
-
-From F<d_getpgrp2.U>:
-
-This variable conditionally defines the HAS_GETPGRP2 symbol, which
-indicates to the C program that the getpgrp2() (as in F<DG/C<UX>>) routine
-is available to get the current process group.
-
-=item C<d_getpgrp>
-
-From F<d_getpgrp.U>:
-
-This variable conditionally defines C<HAS_GETPGRP> if getpgrp() is
-available to get the current process group.
-
-=item C<d_getppid>
-
-From F<d_getppid.U>:
-
-This variable conditionally defines the C<HAS_GETPPID> symbol, which
-indicates to the C program that the getppid() routine is available
-to get the parent process C<ID>.
-
-=item C<d_getprior>
-
-From F<d_getprior.U>:
-
-This variable conditionally defines C<HAS_GETPRIORITY> if getpriority()
-is available to get a process's priority.
-
-=item C<d_getprotobyname_r>
-
-From F<d_getprotobyname_r.U>:
-
-This variable conditionally defines the C<HAS_GETPROTOBYNAME_R> symbol,
-which indicates to the C program that the getprotobyname_r()
-routine is available.
-
-=item C<d_getprotobynumber_r>
-
-From F<d_getprotobynumber_r.U>:
-
-This variable conditionally defines the C<HAS_GETPROTOBYNUMBER_R> symbol,
-which indicates to the C program that the getprotobynumber_r()
-routine is available.
-
-=item C<d_getprotoent_r>
-
-From F<d_getprotoent_r.U>:
-
-This variable conditionally defines the C<HAS_GETPROTOENT_R> symbol,
-which indicates to the C program that the getprotoent_r()
-routine is available.
-
-=item C<d_getprotoprotos>
-
-From F<d_getprotoprotos.U>:
-
-This variable conditionally defines the C<HAS_GETPROTO_PROTOS> symbol,
-which indicates to the C program that <netdb.h> supplies
-prototypes for the various getproto*() functions.
-See also F<netdbtype.U> for probing for various netdb types.
-
-=item C<d_getprpwnam>
-
-From F<d_getprpwnam.U>:
-
-This variable conditionally defines C<HAS_GETPRPWNAM> if getprpwnam() is
-available to retrieve protected (shadow) password entries by name.
-
-=item C<d_getpwent>
-
-From F<d_getpwent.U>:
-
-This variable conditionally defines the C<HAS_GETPWENT> symbol, which
-indicates to the C program that the getpwent() routine is available
-for sequential access of the passwd database.
-
-=item C<d_getpwent_r>
-
-From F<d_getpwent_r.U>:
-
-This variable conditionally defines the C<HAS_GETPWENT_R> symbol,
-which indicates to the C program that the getpwent_r()
-routine is available.
-
-=item C<d_getpwnam_r>
-
-From F<d_getpwnam_r.U>:
-
-This variable conditionally defines the C<HAS_GETPWNAM_R> symbol,
-which indicates to the C program that the getpwnam_r()
-routine is available.
-
-=item C<d_getpwuid_r>
-
-From F<d_getpwuid_r.U>:
-
-This variable conditionally defines the C<HAS_GETPWUID_R> symbol,
-which indicates to the C program that the getpwuid_r()
-routine is available.
-
-=item C<d_getsbyname>
-
-From F<d_getsrvby.U>:
-
-This variable conditionally defines the C<HAS_GETSERVBYNAME>
-symbol, which indicates to the C program that the
-getservbyname() routine is available to look up services
-by their name.
-
-=item C<d_getsbyport>
-
-From F<d_getsrvby.U>:
-
-This variable conditionally defines the C<HAS_GETSERVBYPORT>
-symbol, which indicates to the C program that the
-getservbyport() routine is available to look up services
-by their port.
-
-=item C<d_getsent>
-
-From F<d_getsent.U>:
-
-This variable conditionally defines C<HAS_GETSERVENT> if getservent() is
-available to look up network services in some data base or another.
-
-=item C<d_getservbyname_r>
-
-From F<d_getservbyname_r.U>:
-
-This variable conditionally defines the C<HAS_GETSERVBYNAME_R> symbol,
-which indicates to the C program that the getservbyname_r()
-routine is available.
-
-=item C<d_getservbyport_r>
-
-From F<d_getservbyport_r.U>:
-
-This variable conditionally defines the C<HAS_GETSERVBYPORT_R> symbol,
-which indicates to the C program that the getservbyport_r()
-routine is available.
-
-=item C<d_getservent_r>
-
-From F<d_getservent_r.U>:
-
-This variable conditionally defines the C<HAS_GETSERVENT_R> symbol,
-which indicates to the C program that the getservent_r()
-routine is available.
-
-=item C<d_getservprotos>
-
-From F<d_getservprotos.U>:
-
-This variable conditionally defines the C<HAS_GETSERV_PROTOS> symbol,
-which indicates to the C program that <netdb.h> supplies
-prototypes for the various getserv*() functions.
-See also F<netdbtype.U> for probing for various netdb types.
-
-=item C<d_getspnam>
-
-From F<d_getspnam.U>:
-
-This variable conditionally defines C<HAS_GETSPNAM> if getspnam() is
-available to retrieve SysV shadow password entries by name.
-
-=item C<d_getspnam_r>
-
-From F<d_getspnam_r.U>:
-
-This variable conditionally defines the C<HAS_GETSPNAM_R> symbol,
-which indicates to the C program that the getspnam_r()
-routine is available.
-
-=item C<d_gettimeod>
-
-From F<d_ftime.U>:
-
-This variable conditionally defines the C<HAS_GETTIMEOFDAY> symbol, which
-indicates that the gettimeofday() system call exists (to obtain a
-sub-second accuracy clock). You should probably include <sys/resource.h>.
-
-=item C<d_gmtime_r>
-
-From F<d_gmtime_r.U>:
-
-This variable conditionally defines the C<HAS_GMTIME_R> symbol,
-which indicates to the C program that the gmtime_r()
-routine is available.
-
-=item C<d_gnulibc>
-
-From F<d_gnulibc.U>:
-
-Defined if we're dealing with the C<GNU> C Library.
-
-=item C<d_grpasswd>
-
-From F<i_grp.U>:
-
-This variable conditionally defines C<GRPASSWD>, which indicates
-that struct group in <grp.h> contains gr_passwd.
-
-=item C<d_hasmntopt>
-
-From F<d_hasmntopt.U>:
-
-This variable conditionally defines the C<HAS_HASMNTOPT> symbol, which
-indicates to the C program that the hasmntopt() routine is available
-to query the mount options of file systems.
-
-=item C<d_htonl>
-
-From F<d_htonl.U>:
-
-This variable conditionally defines C<HAS_HTONL> if htonl() and its
-friends are available to do network order byte swapping.
-
-=item C<d_index>
-
-From F<d_strchr.U>:
-
-This variable conditionally defines C<HAS_INDEX> if index() and
-rindex() are available for string searching.
-
-=item C<d_inetaton>
-
-From F<d_inetaton.U>:
-
-This variable conditionally defines the C<HAS_INET_ATON> symbol, which
-indicates to the C program that the inet_aton() function is available
-to parse C<IP> address C<dotted-quad> strings.
-
-=item C<d_int64_t>
-
-From F<d_int64_t.U>:
-
-This symbol will be defined if the C compiler supports int64_t.
-
-=item C<d_isascii>
-
-From F<d_isascii.U>:
-
-This variable conditionally defines the C<HAS_ISASCII> constant,
-which indicates to the C program that isascii() is available.
-
-=item C<d_isfinite>
-
-From F<d_isfinite.U>:
-
-This variable conditionally defines the C<HAS_ISFINITE> symbol, which
-indicates to the C program that the isfinite() routine is available.
-
-=item C<d_isinf>
-
-From F<d_isinf.U>:
-
-This variable conditionally defines the C<HAS_ISINF> symbol, which
-indicates to the C program that the isinf() routine is available.
-
-=item C<d_isnan>
-
-From F<d_isnan.U>:
-
-This variable conditionally defines the C<HAS_ISNAN> symbol, which
-indicates to the C program that the isnan() routine is available.
-
-=item C<d_isnanl>
-
-From F<d_isnanl.U>:
-
-This variable conditionally defines the C<HAS_ISNANL> symbol, which
-indicates to the C program that the isnanl() routine is available.
-
-=item C<d_killpg>
-
-From F<d_killpg.U>:
-
-This variable conditionally defines the C<HAS_KILLPG> symbol, which
-indicates to the C program that the killpg() routine is available
-to kill process groups.
-
-=item C<d_lchown>
-
-From F<d_lchown.U>:
-
-This variable conditionally defines the C<HAS_LCHOWN> symbol, which
-indicates to the C program that the lchown() routine is available
-to operate on a symbolic link (instead of following the link).
-
-=item C<d_ldbl_dig>
-
-From F<d_ldbl_dig.U>:
-
-This variable conditionally defines d_ldbl_dig if this system's
-header files provide C<LDBL_DIG>, which is the number of significant
-digits in a long double precision number.
-
-=item C<d_link>
-
-From F<d_link.U>:
-
-This variable conditionally defines C<HAS_LINK> if link() is
-available to create hard links.
-
-=item C<d_localtime_r>
-
-From F<d_localtime_r.U>:
-
-This variable conditionally defines the C<HAS_LOCALTIME_R> symbol,
-which indicates to the C program that the localtime_r()
-routine is available.
-
-=item C<d_locconv>
-
-From F<d_locconv.U>:
-
-This variable conditionally defines C<HAS_LOCALECONV> if localeconv() is
-available for numeric and monetary formatting conventions.
-
-=item C<d_lockf>
-
-From F<d_lockf.U>:
-
-This variable conditionally defines C<HAS_LOCKF> if lockf() is
-available to do file locking.
-
-=item C<d_longdbl>
-
-From F<d_longdbl.U>:
-
-This variable conditionally defines C<HAS_LONG_DOUBLE> if
-the long double type is supported.
-
-=item C<d_longlong>
-
-From F<d_longlong.U>:
-
-This variable conditionally defines C<HAS_LONG_LONG> if
-the long long type is supported.
-
-=item C<d_lseekproto>
-
-From F<d_lseekproto.U>:
-
-This variable conditionally defines the C<HAS_LSEEK_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the lseek() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_lstat>
-
-From F<d_lstat.U>:
-
-This variable conditionally defines C<HAS_LSTAT> if lstat() is
-available to do file stats on symbolic links.
-
-=item C<d_madvise>
-
-From F<d_madvise.U>:
-
-This variable conditionally defines C<HAS_MADVISE> if madvise() is
-available to map a file into memory.
-
-=item C<d_mblen>
-
-From F<d_mblen.U>:
-
-This variable conditionally defines the C<HAS_MBLEN> symbol, which
-indicates to the C program that the mblen() routine is available
-to find the number of bytes in a multibye character.
-
-=item C<d_mbstowcs>
-
-From F<d_mbstowcs.U>:
-
-This variable conditionally defines the C<HAS_MBSTOWCS> symbol, which
-indicates to the C program that the mbstowcs() routine is available
-to convert a multibyte string into a wide character string.
-
-=item C<d_mbtowc>
-
-From F<d_mbtowc.U>:
-
-This variable conditionally defines the C<HAS_MBTOWC> symbol, which
-indicates to the C program that the mbtowc() routine is available
-to convert multibyte to a wide character.
-
-=item C<d_memchr>
-
-From F<d_memchr.U>:
-
-This variable conditionally defines the C<HAS_MEMCHR> symbol, which
-indicates to the C program that the memchr() routine is available
-to locate characters within a C string.
-
-=item C<d_memcmp>
-
-From F<d_memcmp.U>:
-
-This variable conditionally defines the C<HAS_MEMCMP> symbol, which
-indicates to the C program that the memcmp() routine is available
-to compare blocks of memory.
-
-=item C<d_memcpy>
-
-From F<d_memcpy.U>:
-
-This variable conditionally defines the C<HAS_MEMCPY> symbol, which
-indicates to the C program that the memcpy() routine is available
-to copy blocks of memory.
-
-=item C<d_memmove>
-
-From F<d_memmove.U>:
-
-This variable conditionally defines the C<HAS_MEMMOVE> symbol, which
-indicates to the C program that the memmove() routine is available
-to copy potentatially overlapping blocks of memory.
-
-=item C<d_memset>
-
-From F<d_memset.U>:
-
-This variable conditionally defines the C<HAS_MEMSET> symbol, which
-indicates to the C program that the memset() routine is available
-to set blocks of memory.
-
-=item C<d_mkdir>
-
-From F<d_mkdir.U>:
-
-This variable conditionally defines the C<HAS_MKDIR> symbol, which
-indicates to the C program that the mkdir() routine is available
-to create F<directories.>.
-
-=item C<d_mkdtemp>
-
-From F<d_mkdtemp.U>:
-
-This variable conditionally defines the C<HAS_MKDTEMP> symbol, which
-indicates to the C program that the mkdtemp() routine is available
-to exclusively create a uniquely named temporary directory.
-
-=item C<d_mkfifo>
-
-From F<d_mkfifo.U>:
-
-This variable conditionally defines the C<HAS_MKFIFO> symbol, which
-indicates to the C program that the mkfifo() routine is available.
-
-=item C<d_mkstemp>
-
-From F<d_mkstemp.U>:
-
-This variable conditionally defines the C<HAS_MKSTEMP> symbol, which
-indicates to the C program that the mkstemp() routine is available
-to exclusively create and open a uniquely named temporary file.
-
-=item C<d_mkstemps>
-
-From F<d_mkstemps.U>:
-
-This variable conditionally defines the C<HAS_MKSTEMPS> symbol, which
-indicates to the C program that the mkstemps() routine is available
-to exclusively create and open a uniquely named (with a suffix)
-temporary file.
-
-=item C<d_mktime>
-
-From F<d_mktime.U>:
-
-This variable conditionally defines the C<HAS_MKTIME> symbol, which
-indicates to the C program that the mktime() routine is available.
-
-=item C<d_mmap>
-
-From F<d_mmap.U>:
-
-This variable conditionally defines C<HAS_MMAP> if mmap() is
-available to map a file into memory.
-
-=item C<d_modfl>
-
-From F<d_modfl.U>:
-
-This variable conditionally defines the C<HAS_MODFL> symbol, which
-indicates to the C program that the modfl() routine is available.
-
-=item C<d_modfl_pow32_bug>
-
-From F<d_modfl.U>:
-
-This variable conditionally defines the HAS_MODFL_POW32_BUG symbol,
-which indicates that modfl() is broken for long doubles >= pow(2, 32).
-For example from 4294967303.150000 one would get 4294967302.000000
-and 1.150000. The bug has been seen in certain versions of glibc,
-release 2.2.2 is known to be okay.
-
-=item C<d_mprotect>
-
-From F<d_mprotect.U>:
-
-This variable conditionally defines C<HAS_MPROTECT> if mprotect() is
-available to modify the access protection of a memory mapped file.
-
-=item C<d_msg>
-
-From F<d_msg.U>:
-
-This variable conditionally defines the C<HAS_MSG> symbol, which
-indicates that the entire msg*(2) library is present.
-
-=item C<d_msg_ctrunc>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_MSG_CTRUNC> symbol,
-which indicates that the C<MSG_CTRUNC> is available. #ifdef is
-not enough because it may be an enum, glibc has been known to do this.
-
-=item C<d_msg_dontroute>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_MSG_DONTROUTE> symbol,
-which indicates that the C<MSG_DONTROUTE> is available. #ifdef is
-not enough because it may be an enum, glibc has been known to do this.
-
-=item C<d_msg_oob>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_MSG_OOB> symbol,
-which indicates that the C<MSG_OOB> is available. #ifdef is
-not enough because it may be an enum, glibc has been known to do this.
-
-=item C<d_msg_peek>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_MSG_PEEK> symbol,
-which indicates that the C<MSG_PEEK> is available. #ifdef is
-not enough because it may be an enum, glibc has been known to do this.
-
-=item C<d_msg_proxy>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_MSG_PROXY> symbol,
-which indicates that the C<MSG_PROXY> is available. #ifdef is
-not enough because it may be an enum, glibc has been known to do this.
-
-=item C<d_msgctl>
-
-From F<d_msgctl.U>:
-
-This variable conditionally defines the C<HAS_MSGCTL> symbol, which
-indicates to the C program that the msgctl() routine is available.
-
-=item C<d_msgget>
-
-From F<d_msgget.U>:
-
-This variable conditionally defines the C<HAS_MSGGET> symbol, which
-indicates to the C program that the msgget() routine is available.
-
-=item C<d_msghdr_s>
-
-From F<d_msghdr_s.U>:
-
-This variable conditionally defines the C<HAS_STRUCT_MSGHDR> symbol,
-which indicates that the struct msghdr is supported.
-
-=item C<d_msgrcv>
-
-From F<d_msgrcv.U>:
-
-This variable conditionally defines the C<HAS_MSGRCV> symbol, which
-indicates to the C program that the msgrcv() routine is available.
-
-=item C<d_msgsnd>
-
-From F<d_msgsnd.U>:
-
-This variable conditionally defines the C<HAS_MSGSND> symbol, which
-indicates to the C program that the msgsnd() routine is available.
-
-=item C<d_msync>
-
-From F<d_msync.U>:
-
-This variable conditionally defines C<HAS_MSYNC> if msync() is
-available to synchronize a mapped file.
-
-=item C<d_munmap>
-
-From F<d_munmap.U>:
-
-This variable conditionally defines C<HAS_MUNMAP> if munmap() is
-available to unmap a region mapped by mmap().
-
-=item C<d_mymalloc>
-
-From F<mallocsrc.U>:
-
-This variable conditionally defines C<MYMALLOC> in case other parts
-of the source want to take special action if C<MYMALLOC> is used.
-This may include different sorts of profiling or error detection.
-
-=item C<d_nice>
-
-From F<d_nice.U>:
-
-This variable conditionally defines the C<HAS_NICE> symbol, which
-indicates to the C program that the nice() routine is available.
-
-=item C<d_nl_langinfo>
-
-From F<d_nl_langinfo.U>:
-
-This variable conditionally defines the C<HAS_NL_LANGINFO> symbol, which
-indicates to the C program that the nl_langinfo() routine is available.
-
-=item C<d_nv_preserves_uv>
-
-From F<perlxv.U>:
-
-This variable indicates whether a variable of type nvtype
-can preserve all the bits a variable of type uvtype.
-
-=item C<d_off64_t>
-
-From F<d_off64_t.U>:
-
-This symbol will be defined if the C compiler supports off64_t.
-
-=item C<d_old_pthread_create_joinable>
-
-From F<d_pthrattrj.U>:
-
-This variable conditionally defines pthread_create_joinable.
-undef if F<pthread.h> defines C<PTHREAD_CREATE_JOINABLE>.
-
-=item C<d_oldpthreads>
-
-From F<usethreads.U>:
-
-This variable conditionally defines the C<OLD_PTHREADS_API> symbol,
-and indicates that Perl should be built to use the old
-draft C<POSIX> threads C<API>. This is only potentially meaningful if
-usethreads is set.
-
-=item C<d_oldsock>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<OLDSOCKET> symbol, which
-indicates that the C<BSD> socket interface is based on 4.1c and not 4.2.
-
-=item C<d_open3>
-
-From F<d_open3.U>:
-
-This variable conditionally defines the HAS_OPEN3 manifest constant,
-which indicates to the C program that the 3 argument version of
-the open(2) function is available.
-
-=item C<d_pathconf>
-
-From F<d_pathconf.U>:
-
-This variable conditionally defines the C<HAS_PATHCONF> symbol, which
-indicates to the C program that the pathconf() routine is available
-to determine file-system related limits and options associated
-with a given filename.
-
-=item C<d_pause>
-
-From F<d_pause.U>:
-
-This variable conditionally defines the C<HAS_PAUSE> symbol, which
-indicates to the C program that the pause() routine is available
-to suspend a process until a signal is received.
-
-=item C<d_perl_otherlibdirs>
-
-From F<otherlibdirs.U>:
-
-This variable conditionally defines C<PERL_OTHERLIBDIRS>, which
-contains a colon-separated set of paths for the perl binary to
-include in @C<INC>. See also otherlibdirs.
-
-=item C<d_phostname>
-
-From F<d_gethname.U>:
-
-This variable conditionally defines the C<HAS_PHOSTNAME> symbol, which
-contains the shell command which, when fed to popen(), may be
-used to derive the host name.
-
-=item C<d_pipe>
-
-From F<d_pipe.U>:
-
-This variable conditionally defines the C<HAS_PIPE> symbol, which
-indicates to the C program that the pipe() routine is available
-to create an inter-process channel.
-
-=item C<d_poll>
-
-From F<d_poll.U>:
-
-This variable conditionally defines the C<HAS_POLL> symbol, which
-indicates to the C program that the poll() routine is available
-to poll active file descriptors.
-
-=item C<d_portable>
-
-From F<d_portable.U>:
-
-This variable conditionally defines the C<PORTABLE> symbol, which
-indicates to the C program that it should not assume that it is
-running on the machine it was compiled on.
-
-=item C<d_PRId64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRId64 symbol, which
-indiciates that stdio has a symbol to print 64-bit decimal numbers.
-
-=item C<d_PRIeldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to print long doubles.
-
-=item C<d_PRIEUldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to print long doubles.
-The C<U> in the name is to separate this from d_PRIeldbl so that even
-case-blind systems can see the difference.
-
-=item C<d_PRIfldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to print long doubles.
-
-=item C<d_PRIFUldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to print long doubles.
-The C<U> in the name is to separate this from d_PRIfldbl so that even
-case-blind systems can see the difference.
-
-=item C<d_PRIgldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to print long doubles.
-
-=item C<d_PRIGUldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to print long doubles.
-The C<U> in the name is to separate this from d_PRIgldbl so that even
-case-blind systems can see the difference.
-
-=item C<d_PRIi64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIi64 symbol, which
-indiciates that stdio has a symbol to print 64-bit decimal numbers.
-
-=item C<d_PRIo64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIo64 symbol, which
-indiciates that stdio has a symbol to print 64-bit octal numbers.
-
-=item C<d_PRIu64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIu64 symbol, which
-indiciates that stdio has a symbol to print 64-bit unsigned decimal
-numbers.
-
-=item C<d_PRIx64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIx64 symbol, which
-indiciates that stdio has a symbol to print 64-bit hexadecimal numbers.
-
-=item C<d_PRIXU64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIXU64 symbol, which
-indiciates that stdio has a symbol to print 64-bit hExADECimAl numbers.
-The C<U> in the name is to separate this from d_PRIx64 so that even
-case-blind systems can see the difference.
-
-=item C<d_procselfexe>
-
-From F<d_procselfexe.U>:
-
-Defined if $procselfexe is symlink to the absolute
-pathname of the executing program.
-
-=item C<d_pthread_atfork>
-
-From F<d_pthread_atfork.U>:
-
-This variable conditionally defines the C<HAS_PTHREAD_ATFORK> symbol,
-which indicates to the C program that the pthread_atfork()
-routine is available.
-
-=item C<d_pthread_yield>
-
-From F<d_pthread_y.U>:
-
-This variable conditionally defines the C<HAS_PTHREAD_YIELD>
-symbol if the pthread_yield routine is available to yield
-the execution of the current thread.
-
-=item C<d_pwage>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWAGE>, which indicates
-that struct passwd contains pw_age.
-
-=item C<d_pwchange>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWCHANGE>, which indicates
-that struct passwd contains pw_change.
-
-=item C<d_pwclass>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWCLASS>, which indicates
-that struct passwd contains pw_class.
-
-=item C<d_pwcomment>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWCOMMENT>, which indicates
-that struct passwd contains pw_comment.
-
-=item C<d_pwexpire>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWEXPIRE>, which indicates
-that struct passwd contains pw_expire.
-
-=item C<d_pwgecos>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWGECOS>, which indicates
-that struct passwd contains pw_gecos.
-
-=item C<d_pwpasswd>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWPASSWD>, which indicates
-that struct passwd contains pw_passwd.
-
-=item C<d_pwquota>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<PWQUOTA>, which indicates
-that struct passwd contains pw_quota.
-
-=item C<d_qgcvt>
-
-From F<d_qgcvt.U>:
-
-This variable conditionally defines the C<HAS_QGCVT> symbol, which
-indicates to the C program that the qgcvt() routine is available.
-
-=item C<d_quad>
-
-From F<quadtype.U>:
-
-This variable, if defined, tells that there's a 64-bit integer type,
-quadtype.
-
-=item C<d_random_r>
-
-From F<d_random_r.U>:
-
-This variable conditionally defines the C<HAS_RANDOM_R> symbol,
-which indicates to the C program that the random_r()
-routine is available.
-
-=item C<d_readdir64_r>
-
-From F<d_readdir64_r.U>:
-
-This variable conditionally defines the HAS_READDIR64_R symbol,
-which indicates to the C program that the readdir64_r()
-routine is available.
-
-=item C<d_readdir>
-
-From F<d_readdir.U>:
-
-This variable conditionally defines C<HAS_READDIR> if readdir() is
-available to read directory entries.
-
-=item C<d_readdir_r>
-
-From F<d_readdir_r.U>:
-
-This variable conditionally defines the C<HAS_READDIR_R> symbol,
-which indicates to the C program that the readdir_r()
-routine is available.
-
-=item C<d_readlink>
-
-From F<d_readlink.U>:
-
-This variable conditionally defines the C<HAS_READLINK> symbol, which
-indicates to the C program that the readlink() routine is available
-to read the value of a symbolic link.
-
-=item C<d_readv>
-
-From F<d_readv.U>:
-
-This variable conditionally defines the C<HAS_READV> symbol, which
-indicates to the C program that the readv() routine is available.
-
-=item C<d_recvmsg>
-
-From F<d_recvmsg.U>:
-
-This variable conditionally defines the C<HAS_RECVMSG> symbol, which
-indicates to the C program that the recvmsg() routine is available.
-
-=item C<d_rename>
-
-From F<d_rename.U>:
-
-This variable conditionally defines the C<HAS_RENAME> symbol, which
-indicates to the C program that the rename() routine is available
-to rename files.
-
-=item C<d_rewinddir>
-
-From F<d_readdir.U>:
-
-This variable conditionally defines C<HAS_REWINDDIR> if rewinddir() is
-available.
-
-=item C<d_rmdir>
-
-From F<d_rmdir.U>:
-
-This variable conditionally defines C<HAS_RMDIR> if rmdir() is
-available to remove directories.
-
-=item C<d_safebcpy>
-
-From F<d_safebcpy.U>:
-
-This variable conditionally defines the C<HAS_SAFE_BCOPY> symbol if
-the bcopy() routine can do overlapping copies. Normally, you
-should probably use memmove().
-
-=item C<d_safemcpy>
-
-From F<d_safemcpy.U>:
-
-This variable conditionally defines the C<HAS_SAFE_MEMCPY> symbol if
-the memcpy() routine can do overlapping copies.
-For overlapping copies, memmove() should be used, if available.
-
-=item C<d_sanemcmp>
-
-From F<d_sanemcmp.U>:
-
-This variable conditionally defines the C<HAS_SANE_MEMCMP> symbol if
-the memcpy() routine is available and can be used to compare relative
-magnitudes of chars with their high bits set.
-
-=item C<d_sbrkproto>
-
-From F<d_sbrkproto.U>:
-
-This variable conditionally defines the C<HAS_SBRK_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the sbrk() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_sched_yield>
-
-From F<d_pthread_y.U>:
-
-This variable conditionally defines the C<HAS_SCHED_YIELD>
-symbol if the sched_yield routine is available to yield
-the execution of the current thread.
-
-=item C<d_scm_rights>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_SCM_RIGHTS> symbol,
-which indicates that the C<SCM_RIGHTS> is available. #ifdef is
-not enough because it may be an enum, glibc has been known to do this.
-
-=item C<d_SCNfldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indiciates that stdio has a symbol to scan long doubles.
-
-=item C<d_seekdir>
-
-From F<d_readdir.U>:
-
-This variable conditionally defines C<HAS_SEEKDIR> if seekdir() is
-available.
-
-=item C<d_select>
-
-From F<d_select.U>:
-
-This variable conditionally defines C<HAS_SELECT> if select() is
-available to select active file descriptors. A <sys/time.h>
-inclusion may be necessary for the timeout field.
-
-=item C<d_sem>
-
-From F<d_sem.U>:
-
-This variable conditionally defines the C<HAS_SEM> symbol, which
-indicates that the entire sem*(2) library is present.
-
-=item C<d_semctl>
-
-From F<d_semctl.U>:
-
-This variable conditionally defines the C<HAS_SEMCTL> symbol, which
-indicates to the C program that the semctl() routine is available.
-
-=item C<d_semctl_semid_ds>
-
-From F<d_union_semun.U>:
-
-This variable conditionally defines C<USE_SEMCTL_SEMID_DS>, which
-indicates that struct semid_ds * is to be used for semctl C<IPC_STAT>.
-
-=item C<d_semctl_semun>
-
-From F<d_union_semun.U>:
-
-This variable conditionally defines C<USE_SEMCTL_SEMUN>, which
-indicates that union semun is to be used for semctl C<IPC_STAT>.
-
-=item C<d_semget>
-
-From F<d_semget.U>:
-
-This variable conditionally defines the C<HAS_SEMGET> symbol, which
-indicates to the C program that the semget() routine is available.
-
-=item C<d_semop>
-
-From F<d_semop.U>:
-
-This variable conditionally defines the C<HAS_SEMOP> symbol, which
-indicates to the C program that the semop() routine is available.
-
-=item C<d_sendmsg>
-
-From F<d_sendmsg.U>:
-
-This variable conditionally defines the C<HAS_SENDMSG> symbol, which
-indicates to the C program that the sendmsg() routine is available.
-
-=item C<d_setegid>
-
-From F<d_setegid.U>:
-
-This variable conditionally defines the C<HAS_SETEGID> symbol, which
-indicates to the C program that the setegid() routine is available
-to change the effective gid of the current program.
-
-=item C<d_seteuid>
-
-From F<d_seteuid.U>:
-
-This variable conditionally defines the C<HAS_SETEUID> symbol, which
-indicates to the C program that the seteuid() routine is available
-to change the effective uid of the current program.
-
-=item C<d_setgrent>
-
-From F<d_setgrent.U>:
-
-This variable conditionally defines the C<HAS_SETGRENT> symbol, which
-indicates to the C program that the setgrent() routine is available
-for initializing sequential access to the group database.
-
-=item C<d_setgrent_r>
-
-From F<d_setgrent_r.U>:
-
-This variable conditionally defines the C<HAS_SETGRENT_R> symbol,
-which indicates to the C program that the setgrent_r()
-routine is available.
-
-=item C<d_setgrps>
-
-From F<d_setgrps.U>:
-
-This variable conditionally defines the C<HAS_SETGROUPS> symbol, which
-indicates to the C program that the setgroups() routine is available
-to set the list of process groups.
-
-=item C<d_sethent>
-
-From F<d_sethent.U>:
-
-This variable conditionally defines C<HAS_SETHOSTENT> if sethostent() is
-available.
-
-=item C<d_sethostent_r>
-
-From F<d_sethostent_r.U>:
-
-This variable conditionally defines the C<HAS_SETHOSTENT_R> symbol,
-which indicates to the C program that the sethostent_r()
-routine is available.
-
-=item C<d_setitimer>
-
-From F<d_setitimer.U>:
-
-This variable conditionally defines the C<HAS_SETITIMER> symbol, which
-indicates to the C program that the setitimer() routine is available.
-
-=item C<d_setlinebuf>
-
-From F<d_setlnbuf.U>:
-
-This variable conditionally defines the C<HAS_SETLINEBUF> symbol, which
-indicates to the C program that the setlinebuf() routine is available
-to change stderr or stdout from block-buffered or unbuffered to a
-line-buffered mode.
-
-=item C<d_setlocale>
-
-From F<d_setlocale.U>:
-
-This variable conditionally defines C<HAS_SETLOCALE> if setlocale() is
-available to handle locale-specific ctype implementations.
-
-=item C<d_setlocale_r>
-
-From F<d_setlocale_r.U>:
-
-This variable conditionally defines the C<HAS_SETLOCALE_R> symbol,
-which indicates to the C program that the setlocale_r()
-routine is available.
-
-=item C<d_setnent>
-
-From F<d_setnent.U>:
-
-This variable conditionally defines C<HAS_SETNETENT> if setnetent() is
-available.
-
-=item C<d_setnetent_r>
-
-From F<d_setnetent_r.U>:
-
-This variable conditionally defines the C<HAS_SETNETENT_R> symbol,
-which indicates to the C program that the setnetent_r()
-routine is available.
-
-=item C<d_setpent>
-
-From F<d_setpent.U>:
-
-This variable conditionally defines C<HAS_SETPROTOENT> if setprotoent() is
-available.
-
-=item C<d_setpgid>
-
-From F<d_setpgid.U>:
-
-This variable conditionally defines the C<HAS_SETPGID> symbol if the
-setpgid(pid, gpid) function is available to set process group C<ID>.
-
-=item C<d_setpgrp2>
-
-From F<d_setpgrp2.U>:
-
-This variable conditionally defines the HAS_SETPGRP2 symbol, which
-indicates to the C program that the setpgrp2() (as in F<DG/C<UX>>) routine
-is available to set the current process group.
-
-=item C<d_setpgrp>
-
-From F<d_setpgrp.U>:
-
-This variable conditionally defines C<HAS_SETPGRP> if setpgrp() is
-available to set the current process group.
-
-=item C<d_setprior>
-
-From F<d_setprior.U>:
-
-This variable conditionally defines C<HAS_SETPRIORITY> if setpriority()
-is available to set a process's priority.
-
-=item C<d_setproctitle>
-
-From F<d_setproctitle.U>:
-
-This variable conditionally defines the C<HAS_SETPROCTITLE> symbol,
-which indicates to the C program that the setproctitle() routine
-is available.
-
-=item C<d_setprotoent_r>
-
-From F<d_setprotoent_r.U>:
-
-This variable conditionally defines the C<HAS_SETPROTOENT_R> symbol,
-which indicates to the C program that the setprotoent_r()
-routine is available.
-
-=item C<d_setpwent>
-
-From F<d_setpwent.U>:
-
-This variable conditionally defines the C<HAS_SETPWENT> symbol, which
-indicates to the C program that the setpwent() routine is available
-for initializing sequential access to the passwd database.
-
-=item C<d_setpwent_r>
-
-From F<d_setpwent_r.U>:
-
-This variable conditionally defines the C<HAS_SETPWENT_R> symbol,
-which indicates to the C program that the setpwent_r()
-routine is available.
-
-=item C<d_setregid>
-
-From F<d_setregid.U>:
-
-This variable conditionally defines C<HAS_SETREGID> if setregid() is
-available to change the real and effective gid of the current
-process.
-
-=item C<d_setresgid>
-
-From F<d_setregid.U>:
-
-This variable conditionally defines C<HAS_SETRESGID> if setresgid() is
-available to change the real, effective and saved gid of the current
-process.
-
-=item C<d_setresuid>
-
-From F<d_setreuid.U>:
-
-This variable conditionally defines C<HAS_SETREUID> if setresuid() is
-available to change the real, effective and saved uid of the current
-process.
-
-=item C<d_setreuid>
-
-From F<d_setreuid.U>:
-
-This variable conditionally defines C<HAS_SETREUID> if setreuid() is
-available to change the real and effective uid of the current
-process.
-
-=item C<d_setrgid>
-
-From F<d_setrgid.U>:
-
-This variable conditionally defines the C<HAS_SETRGID> symbol, which
-indicates to the C program that the setrgid() routine is available
-to change the real gid of the current program.
-
-=item C<d_setruid>
-
-From F<d_setruid.U>:
-
-This variable conditionally defines the C<HAS_SETRUID> symbol, which
-indicates to the C program that the setruid() routine is available
-to change the real uid of the current program.
-
-=item C<d_setsent>
-
-From F<d_setsent.U>:
-
-This variable conditionally defines C<HAS_SETSERVENT> if setservent() is
-available.
-
-=item C<d_setservent_r>
-
-From F<d_setservent_r.U>:
-
-This variable conditionally defines the C<HAS_SETSERVENT_R> symbol,
-which indicates to the C program that the setservent_r()
-routine is available.
-
-=item C<d_setsid>
-
-From F<d_setsid.U>:
-
-This variable conditionally defines C<HAS_SETSID> if setsid() is
-available to set the process group C<ID>.
-
-=item C<d_setvbuf>
-
-From F<d_setvbuf.U>:
-
-This variable conditionally defines the C<HAS_SETVBUF> symbol, which
-indicates to the C program that the setvbuf() routine is available
-to change buffering on an open stdio stream.
-
-=item C<d_sfio>
-
-From F<d_sfio.U>:
-
-This variable conditionally defines the C<USE_SFIO> symbol,
-and indicates whether sfio is available (and should be used).
-
-=item C<d_shm>
-
-From F<d_shm.U>:
-
-This variable conditionally defines the C<HAS_SHM> symbol, which
-indicates that the entire shm*(2) library is present.
-
-=item C<d_shmat>
-
-From F<d_shmat.U>:
-
-This variable conditionally defines the C<HAS_SHMAT> symbol, which
-indicates to the C program that the shmat() routine is available.
-
-=item C<d_shmatprototype>
-
-From F<d_shmat.U>:
-
-This variable conditionally defines the C<HAS_SHMAT_PROTOTYPE>
-symbol, which indicates that F<sys/shm.h> has a prototype for
-shmat.
-
-=item C<d_shmctl>
-
-From F<d_shmctl.U>:
-
-This variable conditionally defines the C<HAS_SHMCTL> symbol, which
-indicates to the C program that the shmctl() routine is available.
-
-=item C<d_shmdt>
-
-From F<d_shmdt.U>:
-
-This variable conditionally defines the C<HAS_SHMDT> symbol, which
-indicates to the C program that the shmdt() routine is available.
-
-=item C<d_shmget>
-
-From F<d_shmget.U>:
-
-This variable conditionally defines the C<HAS_SHMGET> symbol, which
-indicates to the C program that the shmget() routine is available.
-
-=item C<d_sigaction>
-
-From F<d_sigaction.U>:
-
-This variable conditionally defines the C<HAS_SIGACTION> symbol, which
-indicates that the Vr4 sigaction() routine is available.
-
-=item C<d_sigprocmask>
-
-From F<d_sigprocmask.U>:
-
-This variable conditionally defines C<HAS_SIGPROCMASK>
-if sigprocmask() is available to examine or change the signal mask
-of the calling process.
-
-=item C<d_sigsetjmp>
-
-From F<d_sigsetjmp.U>:
-
-This variable conditionally defines the C<HAS_SIGSETJMP> symbol,
-which indicates that the sigsetjmp() routine is available to
-call setjmp() and optionally save the process's signal mask.
-
-=item C<d_sockatmark>
-
-From F<d_sockatmark.U>:
-
-This variable conditionally defines the C<HAS_SOCKATMARK> symbol, which
-indicates to the C program that the sockatmark() routine is available.
-
-=item C<d_sockatmarkproto>
-
-From F<d_sockatmarkproto.U>:
-
-This variable conditionally defines the C<HAS_SOCKATMARK_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the sockatmark() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_socket>
-
-From F<d_socket.U>:
-
-This variable conditionally defines C<HAS_SOCKET>, which indicates
-that the C<BSD> socket interface is supported.
-
-=item C<d_socklen_t>
-
-From F<d_socklen_t.U>:
-
-This symbol will be defined if the C compiler supports socklen_t.
-
-=item C<d_sockpair>
-
-From F<d_socket.U>:
-
-This variable conditionally defines the C<HAS_SOCKETPAIR> symbol, which
-indicates that the C<BSD> socketpair() is supported.
-
-=item C<d_socks5_init>
-
-From F<d_socks5_init.U>:
-
-This variable conditionally defines the HAS_SOCKS5_INIT symbol, which
-indicates to the C program that the socks5_init() routine is available.
-
-=item C<d_sqrtl>
-
-From F<d_sqrtl.U>:
-
-This variable conditionally defines the C<HAS_SQRTL> symbol, which
-indicates to the C program that the sqrtl() routine is available.
-
-=item C<d_srand48_r>
-
-From F<d_srand48_r.U>:
-
-This variable conditionally defines the HAS_SRAND48_R symbol,
-which indicates to the C program that the srand48_r()
-routine is available.
-
-=item C<d_srandom_r>
-
-From F<d_srandom_r.U>:
-
-This variable conditionally defines the C<HAS_SRANDOM_R> symbol,
-which indicates to the C program that the srandom_r()
-routine is available.
-
-=item C<d_sresgproto>
-
-From F<d_sresgproto.U>:
-
-This variable conditionally defines the C<HAS_SETRESGID_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the setresgid() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_sresuproto>
-
-From F<d_sresuproto.U>:
-
-This variable conditionally defines the C<HAS_SETRESUID_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the setresuid() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_statblks>
-
-From F<d_statblks.U>:
-
-This variable conditionally defines C<USE_STAT_BLOCKS>
-if this system has a stat structure declaring
-st_blksize and st_blocks.
-
-=item C<d_statfs_f_flags>
-
-From F<d_statfs_f_flags.U>:
-
-This variable conditionally defines the C<HAS_STRUCT_STATFS_F_FLAGS>
-symbol, which indicates to struct statfs from has f_flags member.
-This kind of struct statfs is coming from F<sys/mount.h> (C<BSD>),
-not from F<sys/statfs.h> (C<SYSV>).
-
-=item C<d_statfs_s>
-
-From F<d_statfs_s.U>:
-
-This variable conditionally defines the C<HAS_STRUCT_STATFS> symbol,
-which indicates that the struct statfs is supported.
-
-=item C<d_statvfs>
-
-From F<d_statvfs.U>:
-
-This variable conditionally defines the C<HAS_STATVFS> symbol, which
-indicates to the C program that the statvfs() routine is available.
-
-=item C<d_stdio_cnt_lval>
-
-From F<d_stdstdio.U>:
-
-This variable conditionally defines C<STDIO_CNT_LVALUE> if the
-C<FILE_cnt> macro can be used as an lvalue.
-
-=item C<d_stdio_ptr_lval>
-
-From F<d_stdstdio.U>:
-
-This variable conditionally defines C<STDIO_PTR_LVALUE> if the
-C<FILE_ptr> macro can be used as an lvalue.
-
-=item C<d_stdio_ptr_lval_nochange_cnt>
-
-From F<d_stdstdio.U>:
-
-This symbol is defined if using the C<FILE_ptr> macro as an lvalue
-to increase the pointer by n leaves File_cnt(fp) unchanged.
-
-=item C<d_stdio_ptr_lval_sets_cnt>
-
-From F<d_stdstdio.U>:
-
-This symbol is defined if using the C<FILE_ptr> macro as an lvalue
-to increase the pointer by n has the side effect of decreasing the
-value of File_cnt(fp) by n.
-
-=item C<d_stdio_stream_array>
-
-From F<stdio_streams.U>:
-
-This variable tells whether there is an array holding
-the stdio streams.
-
-=item C<d_stdiobase>
-
-From F<d_stdstdio.U>:
-
-This variable conditionally defines C<USE_STDIO_BASE> if this system
-has a C<FILE> structure declaring a usable _base field (or equivalent)
-in F<stdio.h>.
-
-=item C<d_stdstdio>
-
-From F<d_stdstdio.U>:
-
-This variable conditionally defines C<USE_STDIO_PTR> if this system
-has a C<FILE> structure declaring usable _ptr and _cnt fields (or
-equivalent) in F<stdio.h>.
-
-=item C<d_strchr>
-
-From F<d_strchr.U>:
-
-This variable conditionally defines C<HAS_STRCHR> if strchr() and
-strrchr() are available for string searching.
-
-=item C<d_strcoll>
-
-From F<d_strcoll.U>:
-
-This variable conditionally defines C<HAS_STRCOLL> if strcoll() is
-available to compare strings using collating information.
-
-=item C<d_strctcpy>
-
-From F<d_strctcpy.U>:
-
-This variable conditionally defines the C<USE_STRUCT_COPY> symbol, which
-indicates to the C program that this C compiler knows how to copy
-structures.
-
-=item C<d_strerrm>
-
-From F<d_strerror.U>:
-
-This variable holds what Strerrr is defined as to translate an error
-code condition into an error message string. It could be C<strerror>
-or a more C<complex> macro emulating strrror with sys_errlist[], or the
-C<unknown> string when both strerror and sys_errlist are missing.
-
-=item C<d_strerror>
-
-From F<d_strerror.U>:
-
-This variable conditionally defines C<HAS_STRERROR> if strerror() is
-available to translate error numbers to strings.
-
-=item C<d_strerror_r>
-
-From F<d_strerror_r.U>:
-
-This variable conditionally defines the C<HAS_STRERROR_R> symbol,
-which indicates to the C program that the strerror_r()
-routine is available.
-
-=item C<d_strftime>
-
-From F<d_strftime.U>:
-
-This variable conditionally defines the C<HAS_STRFTIME> symbol, which
-indicates to the C program that the strftime() routine is available.
-
-=item C<d_strtod>
-
-From F<d_strtod.U>:
-
-This variable conditionally defines the C<HAS_STRTOD> symbol, which
-indicates to the C program that the strtod() routine is available
-to provide better numeric string conversion than atof().
-
-=item C<d_strtol>
-
-From F<d_strtol.U>:
-
-This variable conditionally defines the C<HAS_STRTOL> symbol, which
-indicates to the C program that the strtol() routine is available
-to provide better numeric string conversion than atoi() and friends.
-
-=item C<d_strtold>
-
-From F<d_strtold.U>:
-
-This variable conditionally defines the C<HAS_STRTOLD> symbol, which
-indicates to the C program that the strtold() routine is available.
-
-=item C<d_strtoll>
-
-From F<d_strtoll.U>:
-
-This variable conditionally defines the C<HAS_STRTOLL> symbol, which
-indicates to the C program that the strtoll() routine is available.
-
-=item C<d_strtoq>
-
-From F<d_strtoq.U>:
-
-This variable conditionally defines the C<HAS_STRTOQ> symbol, which
-indicates to the C program that the strtoq() routine is available.
-
-=item C<d_strtoul>
-
-From F<d_strtoul.U>:
-
-This variable conditionally defines the C<HAS_STRTOUL> symbol, which
-indicates to the C program that the strtoul() routine is available
-to provide conversion of strings to unsigned long.
-
-=item C<d_strtoull>
-
-From F<d_strtoull.U>:
-
-This variable conditionally defines the C<HAS_STRTOULL> symbol, which
-indicates to the C program that the strtoull() routine is available.
-
-=item C<d_strtouq>
-
-From F<d_strtouq.U>:
-
-This variable conditionally defines the C<HAS_STRTOUQ> symbol, which
-indicates to the C program that the strtouq() routine is available.
-
-=item C<d_strxfrm>
-
-From F<d_strxfrm.U>:
-
-This variable conditionally defines C<HAS_STRXFRM> if strxfrm() is
-available to transform strings.
-
-=item C<d_suidsafe>
-
-From F<d_dosuid.U>:
-
-This variable conditionally defines C<SETUID_SCRIPTS_ARE_SECURE_NOW>
-if setuid scripts can be secure. This test looks in F</dev/fd/>.
-
-=item C<d_symlink>
-
-From F<d_symlink.U>:
-
-This variable conditionally defines the C<HAS_SYMLINK> symbol, which
-indicates to the C program that the symlink() routine is available
-to create symbolic links.
-
-=item C<d_syscall>
-
-From F<d_syscall.U>:
-
-This variable conditionally defines C<HAS_SYSCALL> if syscall() is
-available call arbitrary system calls.
-
-=item C<d_syscallproto>
-
-From F<d_syscallproto.U>:
-
-This variable conditionally defines the C<HAS_SYSCALL_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the syscall() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_sysconf>
-
-From F<d_sysconf.U>:
-
-This variable conditionally defines the C<HAS_SYSCONF> symbol, which
-indicates to the C program that the sysconf() routine is available
-to determine system related limits and options.
-
-=item C<d_sysernlst>
-
-From F<d_strerror.U>:
-
-This variable conditionally defines C<HAS_SYS_ERRNOLIST> if sys_errnolist[]
-is available to translate error numbers to the symbolic name.
-
-=item C<d_syserrlst>
-
-From F<d_strerror.U>:
-
-This variable conditionally defines C<HAS_SYS_ERRLIST> if sys_errlist[] is
-available to translate error numbers to strings.
-
-=item C<d_system>
-
-From F<d_system.U>:
-
-This variable conditionally defines C<HAS_SYSTEM> if system() is
-available to issue a shell command.
-
-=item C<d_tcgetpgrp>
-
-From F<d_tcgtpgrp.U>:
-
-This variable conditionally defines the C<HAS_TCGETPGRP> symbol, which
-indicates to the C program that the tcgetpgrp() routine is available.
-to get foreground process group C<ID>.
-
-=item C<d_tcsetpgrp>
-
-From F<d_tcstpgrp.U>:
-
-This variable conditionally defines the C<HAS_TCSETPGRP> symbol, which
-indicates to the C program that the tcsetpgrp() routine is available
-to set foreground process group C<ID>.
-
-=item C<d_telldir>
-
-From F<d_readdir.U>:
-
-This variable conditionally defines C<HAS_TELLDIR> if telldir() is
-available.
-
-=item C<d_telldirproto>
-
-From F<d_telldirproto.U>:
-
-This variable conditionally defines the C<HAS_TELLDIR_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the telldir() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_time>
-
-From F<d_time.U>:
-
-This variable conditionally defines the C<HAS_TIME> symbol, which indicates
-that the time() routine exists. The time() routine is normaly
-provided on C<UNIX> systems.
-
-=item C<d_times>
-
-From F<d_times.U>:
-
-This variable conditionally defines the C<HAS_TIMES> symbol, which indicates
-that the times() routine exists. The times() routine is normaly
-provided on C<UNIX> systems. You may have to include <sys/times.h>.
-
-=item C<d_tm_tm_gmtoff>
-
-From F<i_time.U>:
-
-This variable conditionally defines C<HAS_TM_TM_GMTOFF>, which indicates
-indicates to the C program that the struct tm has the tm_gmtoff field.
-
-=item C<d_tm_tm_zone>
-
-From F<i_time.U>:
-
-This variable conditionally defines C<HAS_TM_TM_ZONE>, which indicates
-indicates to the C program that the struct tm has the tm_zone field.
-
-=item C<d_tmpnam_r>
-
-From F<d_tmpnam_r.U>:
-
-This variable conditionally defines the C<HAS_TMPNAM_R> symbol,
-which indicates to the C program that the tmpnam_r()
-routine is available.
-
-=item C<d_truncate>
-
-From F<d_truncate.U>:
-
-This variable conditionally defines C<HAS_TRUNCATE> if truncate() is
-available to truncate files.
-
-=item C<d_ttyname_r>
-
-From F<d_ttyname_r.U>:
-
-This variable conditionally defines the C<HAS_TTYNAME_R> symbol,
-which indicates to the C program that the ttyname_r()
-routine is available.
-
-=item C<d_tzname>
-
-From F<d_tzname.U>:
-
-This variable conditionally defines C<HAS_TZNAME> if tzname[] is
-available to access timezone names.
-
-=item C<d_u32align>
-
-From F<d_u32align.U>:
-
-This variable tells whether you must access character data
-through U32-aligned pointers.
-
-=item C<d_ualarm>
-
-From F<d_ualarm.U>:
-
-This variable conditionally defines the C<HAS_UALARM> symbol, which
-indicates to the C program that the ualarm() routine is available.
-
-=item C<d_umask>
-
-From F<d_umask.U>:
-
-This variable conditionally defines the C<HAS_UMASK> symbol, which
-indicates to the C program that the umask() routine is available.
-to set and get the value of the file creation mask.
-
-=item C<d_uname>
-
-From F<d_gethname.U>:
-
-This variable conditionally defines the C<HAS_UNAME> symbol, which
-indicates to the C program that the uname() routine may be
-used to derive the host name.
-
-=item C<d_union_semun>
-
-From F<d_union_semun.U>:
-
-This variable conditionally defines C<HAS_UNION_SEMUN> if the
-union semun is defined by including <sys/sem.h>.
-
-=item C<d_unordered>
-
-From F<d_unordered.U>:
-
-This variable conditionally defines the C<HAS_UNORDERED> symbol, which
-indicates to the C program that the unordered() routine is available.
-
-=item C<d_usleep>
-
-From F<d_usleep.U>:
-
-This variable conditionally defines C<HAS_USLEEP> if usleep() is
-available to do high granularity sleeps.
-
-=item C<d_usleepproto>
-
-From F<d_usleepproto.U>:
-
-This variable conditionally defines the C<HAS_USLEEP_PROTO> symbol,
-which indicates to the C program that the system provides
-a prototype for the usleep() function. Otherwise, it is
-up to the program to supply one.
-
-=item C<d_ustat>
-
-From F<d_ustat.U>:
-
-This variable conditionally defines C<HAS_USTAT> if ustat() is
-available to query file system statistics by dev_t.
-
-=item C<d_vendorarch>
-
-From F<vendorarch.U>:
-
-This variable conditionally defined C<PERL_VENDORARCH>.
-
-=item C<d_vendorbin>
-
-From F<vendorbin.U>:
-
-This variable conditionally defines C<PERL_VENDORBIN>.
-
-=item C<d_vendorlib>
-
-From F<vendorlib.U>:
-
-This variable conditionally defines C<PERL_VENDORLIB>.
-
-=item C<d_vfork>
-
-From F<d_vfork.U>:
-
-This variable conditionally defines the C<HAS_VFORK> symbol, which
-indicates the vfork() routine is available.
-
-=item C<d_void_closedir>
-
-From F<d_closedir.U>:
-
-This variable conditionally defines C<VOID_CLOSEDIR> if closedir()
-does not return a value.
-
-=item C<d_voidsig>
-
-From F<d_voidsig.U>:
-
-This variable conditionally defines C<VOIDSIG> if this system
-declares "void (*signal(...))()" in F<signal.h>. The old way was to
-declare it as "int (*signal(...))()".
-
-=item C<d_voidtty>
-
-From F<i_sysioctl.U>:
-
-This variable conditionally defines C<USE_IOCNOTTY> to indicate that the
-ioctl() call with C<TIOCNOTTY> should be used to void tty association.
-Otherwise (on C<USG> probably), it is enough to close the standard file
-decriptors and do a setpgrp().
-
-=item C<d_volatile>
-
-From F<d_volatile.U>:
-
-This variable conditionally defines the C<HASVOLATILE> symbol, which
-indicates to the C program that this C compiler knows about the
-volatile declaration.
-
-=item C<d_vprintf>
-
-From F<d_vprintf.U>:
-
-This variable conditionally defines the C<HAS_VPRINTF> symbol, which
-indicates to the C program that the vprintf() routine is available
-to printf with a pointer to an argument list.
-
-=item C<d_wait4>
-
-From F<d_wait4.U>:
-
-This variable conditionally defines the HAS_WAIT4 symbol, which
-indicates the wait4() routine is available.
-
-=item C<d_waitpid>
-
-From F<d_waitpid.U>:
-
-This variable conditionally defines C<HAS_WAITPID> if waitpid() is
-available to wait for child process.
-
-=item C<d_wcstombs>
-
-From F<d_wcstombs.U>:
-
-This variable conditionally defines the C<HAS_WCSTOMBS> symbol, which
-indicates to the C program that the wcstombs() routine is available
-to convert wide character strings to multibyte strings.
-
-=item C<d_wctomb>
-
-From F<d_wctomb.U>:
-
-This variable conditionally defines the C<HAS_WCTOMB> symbol, which
-indicates to the C program that the wctomb() routine is available
-to convert a wide character to a multibyte.
-
-=item C<d_writev>
-
-From F<d_writev.U>:
-
-This variable conditionally defines the C<HAS_WRITEV> symbol, which
-indicates to the C program that the writev() routine is available.
-
-=item C<d_xenix>
-
-From F<Guess.U>:
-
-This variable conditionally defines the symbol C<XENIX>, which alerts
-the C program that it runs under Xenix.
-
-=item C<date>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the date program. After Configure runs,
-the value is reset to a plain C<date> and is not useful.
-
-=item C<db_hashtype>
-
-From F<i_db.U>:
-
-This variable contains the type of the hash structure element
-in the <db.h> header file. In older versions of C<DB>, it was
-int, while in newer ones it is u_int32_t.
-
-=item C<db_prefixtype>
-
-From F<i_db.U>:
-
-This variable contains the type of the prefix structure element
-in the <db.h> header file. In older versions of C<DB>, it was
-int, while in newer ones it is size_t.
-
-=item C<db_version_major>
-
-From F<i_db.U>:
-
-This variable contains the major version number of
-Berkeley C<DB> found in the <db.h> header file.
-
-=item C<db_version_minor>
-
-From F<i_db.U>:
-
-This variable contains the minor version number of
-Berkeley C<DB> found in the <db.h> header file.
-For C<DB> version 1 this is always 0.
-
-=item C<db_version_patch>
-
-From F<i_db.U>:
-
-This variable contains the patch version number of
-Berkeley C<DB> found in the <db.h> header file.
-For C<DB> version 1 this is always 0.
-
-=item C<defvoidused>
-
-From F<voidflags.U>:
-
-This variable contains the default value of the C<VOIDUSED> symbol (15).
-
-=item C<direntrytype>
-
-From F<i_dirent.U>:
-
-This symbol is set to C<struct direct> or C<struct dirent> depending on
-whether dirent is available or not. You should use this pseudo type to
-portably declare your directory entries.
-
-=item C<dlext>
-
-From F<dlext.U>:
-
-This variable contains the extension that is to be used for the
-dynamically loaded modules that perl generaties.
-
-=item C<dlsrc>
-
-From F<dlsrc.U>:
-
-This variable contains the name of the dynamic loading file that
-will be used with the package.
-
-=item C<doublesize>
-
-From F<doublesize.U>:
-
-This variable contains the value of the C<DOUBLESIZE> symbol, which
-indicates to the C program how many bytes there are in a double.
-
-=item C<drand01>
-
-From F<randfunc.U>:
-
-Indicates the macro to be used to generate normalized
-random numbers. Uses randfunc, often divided by
-(double) (((unsigned long) 1 << randbits)) in order to
-normalize the result.
-In C programs, the macro C<Drand01> is mapped to drand01.
-
-=item C<drand48_r_proto>
-
-From F<d_drand48_r.U>:
-
-This variable encodes the prototype of drand48_r.
-It is zero if d_drand48_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_drand48_r
-is defined.
-
-=item C<dynamic_ext>
-
-From F<Extensions.U>:
-
-This variable holds a list of C<XS> extension files we want to
-link dynamically into the package. It is used by Makefile.
-
-=back
-
-=head2 e
-
-=over 4
-
-=item C<eagain>
-
-From F<nblock_io.U>:
-
-This variable bears the symbolic errno code set by read() when no
-data is present on the file and non-blocking I/O was enabled (otherwise,
-read() blocks naturally).
-
-=item C<ebcdic>
-
-From F<ebcdic.U>:
-
-This variable conditionally defines C<EBCDIC> if this
-system uses C<EBCDIC> encoding. Among other things, this
-means that the character ranges are not contiguous.
-See F<trnl.U>
-
-=item C<echo>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the echo program. After Configure runs,
-the value is reset to a plain C<echo> and is not useful.
-
-=item C<egrep>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the egrep program. After Configure runs,
-the value is reset to a plain C<egrep> and is not useful.
-
-=item C<emacs>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<endgrent_r_proto>
-
-From F<d_endgrent_r.U>:
-
-This variable encodes the prototype of endgrent_r.
-It is zero if d_endgrent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_endgrent_r
-is defined.
-
-=item C<endhostent_r_proto>
-
-From F<d_endhostent_r.U>:
-
-This variable encodes the prototype of endhostent_r.
-It is zero if d_endhostent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_endhostent_r
-is defined.
-
-=item C<endnetent_r_proto>
-
-From F<d_endnetent_r.U>:
-
-This variable encodes the prototype of endnetent_r.
-It is zero if d_endnetent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_endnetent_r
-is defined.
-
-=item C<endprotoent_r_proto>
-
-From F<d_endprotoent_r.U>:
-
-This variable encodes the prototype of endprotoent_r.
-It is zero if d_endprotoent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_endprotoent_r
-is defined.
-
-=item C<endpwent_r_proto>
-
-From F<d_endpwent_r.U>:
-
-This variable encodes the prototype of endpwent_r.
-It is zero if d_endpwent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_endpwent_r
-is defined.
-
-=item C<endservent_r_proto>
-
-From F<d_endservent_r.U>:
-
-This variable encodes the prototype of endservent_r.
-It is zero if d_endservent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_endservent_r
-is defined.
-
-=item C<eunicefix>
-
-From F<Init.U>:
-
-When running under Eunice this variable contains a command which will
-convert a shell script to the proper form of text file for it to be
-executable by the shell. On other systems it is a no-op.
-
-=item C<exe_ext>
-
-From F<Unix.U>:
-
-This is an old synonym for _exe.
-
-=item C<expr>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the expr program. After Configure runs,
-the value is reset to a plain C<expr> and is not useful.
-
-=item C<extensions>
-
-From F<Extensions.U>:
-
-This variable holds a list of all extension files (both C<XS> and
-non-xs linked into the package. It is propagated to F<Config.pm>
-and is typically used to test whether a particular extesion
-is available.
-
-=item C<extras>
-
-From F<Extras.U>:
-
-This variable holds a list of extra modules to install.
-
-=back
-
-=head2 f
-
-=over 4
-
-=item C<fflushall>
-
-From F<fflushall.U>:
-
-This symbol, if defined, tells that to flush
-all pending stdio output one must loop through all
-the stdio file handles stored in an array and fflush them.
-Note that if fflushNULL is defined, fflushall will not
-even be probed for and will be left undefined.
-
-=item C<fflushNULL>
-
-From F<fflushall.U>:
-
-This symbol, if defined, tells that fflush(C<NULL>) does flush
-all pending stdio output.
-
-=item C<find>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<firstmakefile>
-
-From F<Unix.U>:
-
-This variable defines the first file searched by make. On unix,
-it is makefile (then Makefile). On case-insensitive systems,
-it might be something else. This is only used to deal with
-convoluted make depend tricks.
-
-=item C<flex>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<fpossize>
-
-From F<fpossize.U>:
-
-This variable contains the size of a fpostype in bytes.
-
-=item C<fpostype>
-
-From F<fpostype.U>:
-
-This variable defines Fpos_t to be something like fpos_t, long,
-uint, or whatever type is used to declare file positions in libc.
-
-=item C<freetype>
-
-From F<mallocsrc.U>:
-
-This variable contains the return type of free(). It is usually
-void, but occasionally int.
-
-=item C<from>
-
-From F<Cross.U>:
-
-This variable contains the command used by Configure
-to copy files from the target host. Useful and available
-only during Perl build.
-The string C<:> if not cross-compiling.
-
-=item C<full_ar>
-
-From F<Loc_ar.U>:
-
-This variable contains the full pathname to C<ar>, whether or
-not the user has specified C<portability>. This is only used
-in the F<Makefile.SH>.
-
-=item C<full_csh>
-
-From F<d_csh.U>:
-
-This variable contains the full pathname to C<csh>, whether or
-not the user has specified C<portability>. This is only used
-in the compiled C program, and we assume that all systems which
-can share this executable will have the same full pathname to
-F<csh.>
-
-=item C<full_sed>
-
-From F<Loc_sed.U>:
-
-This variable contains the full pathname to C<sed>, whether or
-not the user has specified C<portability>. This is only used
-in the compiled C program, and we assume that all systems which
-can share this executable will have the same full pathname to
-F<sed.>
-
-=back
-
-=head2 g
-
-=over 4
-
-=item C<gccosandvers>
-
-From F<gccvers.U>:
-
-If C<GNU> cc (gcc) is used, this variable the operating system and
-version used to compile the gcc. It is set to '' if not gcc,
-or if nothing useful can be parsed as the os version.
-
-=item C<gccversion>
-
-From F<gccvers.U>:
-
-If C<GNU> cc (gcc) is used, this variable holds C<1> or C<2> to
-indicate whether the compiler is version 1 or 2. This is used in
-setting some of the default cflags. It is set to '' if not gcc.
-
-=item C<getgrent_r_proto>
-
-From F<d_getgrent_r.U>:
-
-This variable encodes the prototype of getgrent_r.
-It is zero if d_getgrent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getgrent_r
-is defined.
-
-=item C<getgrgid_r_proto>
-
-From F<d_getgrgid_r.U>:
-
-This variable encodes the prototype of getgrgid_r.
-It is zero if d_getgrgid_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getgrgid_r
-is defined.
-
-=item C<getgrnam_r_proto>
-
-From F<d_getgrnam_r.U>:
-
-This variable encodes the prototype of getgrnam_r.
-It is zero if d_getgrnam_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getgrnam_r
-is defined.
-
-=item C<gethostbyaddr_r_proto>
-
-From F<d_gethostbyaddr_r.U>:
-
-This variable encodes the prototype of gethostbyaddr_r.
-It is zero if d_gethostbyaddr_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_gethostbyaddr_r
-is defined.
-
-=item C<gethostbyname_r_proto>
-
-From F<d_gethostbyname_r.U>:
-
-This variable encodes the prototype of gethostbyname_r.
-It is zero if d_gethostbyname_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_gethostbyname_r
-is defined.
-
-=item C<gethostent_r_proto>
-
-From F<d_gethostent_r.U>:
-
-This variable encodes the prototype of gethostent_r.
-It is zero if d_gethostent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_gethostent_r
-is defined.
-
-=item C<getlogin_r_proto>
-
-From F<d_getlogin_r.U>:
-
-This variable encodes the prototype of getlogin_r.
-It is zero if d_getlogin_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getlogin_r
-is defined.
-
-=item C<getnetbyaddr_r_proto>
-
-From F<d_getnetbyaddr_r.U>:
-
-This variable encodes the prototype of getnetbyaddr_r.
-It is zero if d_getnetbyaddr_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getnetbyaddr_r
-is defined.
-
-=item C<getnetbyname_r_proto>
-
-From F<d_getnetbyname_r.U>:
-
-This variable encodes the prototype of getnetbyname_r.
-It is zero if d_getnetbyname_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getnetbyname_r
-is defined.
-
-=item C<getnetent_r_proto>
-
-From F<d_getnetent_r.U>:
-
-This variable encodes the prototype of getnetent_r.
-It is zero if d_getnetent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getnetent_r
-is defined.
-
-=item C<getprotobyname_r_proto>
-
-From F<d_getprotobyname_r.U>:
-
-This variable encodes the prototype of getprotobyname_r.
-It is zero if d_getprotobyname_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getprotobyname_r
-is defined.
-
-=item C<getprotobynumber_r_proto>
-
-From F<d_getprotobynumber_r.U>:
-
-This variable encodes the prototype of getprotobynumber_r.
-It is zero if d_getprotobynumber_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getprotobynumber_r
-is defined.
-
-=item C<getprotoent_r_proto>
-
-From F<d_getprotoent_r.U>:
-
-This variable encodes the prototype of getprotoent_r.
-It is zero if d_getprotoent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getprotoent_r
-is defined.
-
-=item C<getpwent_r_proto>
-
-From F<d_getpwent_r.U>:
-
-This variable encodes the prototype of getpwent_r.
-It is zero if d_getpwent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getpwent_r
-is defined.
-
-=item C<getpwnam_r_proto>
-
-From F<d_getpwnam_r.U>:
-
-This variable encodes the prototype of getpwnam_r.
-It is zero if d_getpwnam_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getpwnam_r
-is defined.
-
-=item C<getpwuid_r_proto>
-
-From F<d_getpwuid_r.U>:
-
-This variable encodes the prototype of getpwuid_r.
-It is zero if d_getpwuid_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getpwuid_r
-is defined.
-
-=item C<getservbyname_r_proto>
-
-From F<d_getservbyname_r.U>:
-
-This variable encodes the prototype of getservbyname_r.
-It is zero if d_getservbyname_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getservbyname_r
-is defined.
-
-=item C<getservbyport_r_proto>
-
-From F<d_getservbyport_r.U>:
-
-This variable encodes the prototype of getservbyport_r.
-It is zero if d_getservbyport_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getservbyport_r
-is defined.
-
-=item C<getservent_r_proto>
-
-From F<d_getservent_r.U>:
-
-This variable encodes the prototype of getservent_r.
-It is zero if d_getservent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getservent_r
-is defined.
-
-=item C<getspnam_r_proto>
-
-From F<d_getspnam_r.U>:
-
-This variable encodes the prototype of getspnam_r.
-It is zero if d_getspnam_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_getspnam_r
-is defined.
-
-=item C<gidformat>
-
-From F<gidf.U>:
-
-This variable contains the format string used for printing a Gid_t.
-
-=item C<gidsign>
-
-From F<gidsign.U>:
-
-This variable contains the signedness of a gidtype.
-1 for unsigned, -1 for signed.
-
-=item C<gidsize>
-
-From F<gidsize.U>:
-
-This variable contains the size of a gidtype in bytes.
-
-=item C<gidtype>
-
-From F<gidtype.U>:
-
-This variable defines Gid_t to be something like gid_t, int,
-ushort, or whatever type is used to declare the return type
-of getgid(). Typically, it is the type of group ids in the kernel.
-
-=item C<glibpth>
-
-From F<libpth.U>:
-
-This variable holds the general path (space-separated) used to
-find libraries. It may contain directories that do not exist on
-this platform, libpth is the cleaned-up version.
-
-=item C<gmake>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the gmake program. After Configure runs,
-the value is reset to a plain C<gmake> and is not useful.
-
-=item C<gmtime_r_proto>
-
-From F<d_gmtime_r.U>:
-
-This variable encodes the prototype of gmtime_r.
-It is zero if d_gmtime_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_gmtime_r
-is defined.
-
-=item C<gnulibc_version>
-
-From F<d_gnulibc.U>:
-
-This variable contains the version number of the C<GNU> C library.
-It is usually something like F<2.2.5>. It is a plain '' if this
-is not the C<GNU> C library, or if the version is unknown.
-
-=item C<grep>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the grep program. After Configure runs,
-the value is reset to a plain C<grep> and is not useful.
-
-=item C<groupcat>
-
-From F<nis.U>:
-
-This variable contains a command that produces the text of the
-F</etc/group> file. This is normally "cat F</etc/group>", but can be
-"ypcat group" when C<NIS> is used.
-On some systems, such as os390, there may be no equivalent
-command, in which case this variable is unset.
-
-=item C<groupstype>
-
-From F<groupstype.U>:
-
-This variable defines Groups_t to be something like gid_t, int,
-ushort, or whatever type is used for the second argument to
-getgroups() and setgroups(). Usually, this is the same as
-gidtype (gid_t), but sometimes it isn't.
-
-=item C<gzip>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the gzip program. After Configure runs,
-the value is reset to a plain C<gzip> and is not useful.
-
-=back
-
-=head2 h
-
-=over 4
-
-=item C<h_fcntl>
-
-From F<h_fcntl.U>:
-
-This is variable gets set in various places to tell i_fcntl that
-<fcntl.h> should be included.
-
-=item C<h_sysfile>
-
-From F<h_sysfile.U>:
-
-This is variable gets set in various places to tell i_sys_file that
-<sys/file.h> should be included.
-
-=item C<hint>
-
-From F<Oldconfig.U>:
-
-Gives the type of hints used for previous answers. May be one of
-C<default>, C<recommended> or C<previous>.
-
-=item C<hostcat>
-
-From F<nis.U>:
-
-This variable contains a command that produces the text of the
-F</etc/hosts> file. This is normally "cat F</etc/hosts>", but can be
-"ypcat hosts" when C<NIS> is used.
-On some systems, such as os390, there may be no equivalent
-command, in which case this variable is unset.
-
-=back
-
-=head2 i
-
-=over 4
-
-=item C<i16size>
-
-From F<perlxv.U>:
-
-This variable is the size of an I16 in bytes.
-
-=item C<i16type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's I16.
-
-=item C<i32size>
-
-From F<perlxv.U>:
-
-This variable is the size of an I32 in bytes.
-
-=item C<i32type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's I32.
-
-=item C<i64size>
-
-From F<perlxv.U>:
-
-This variable is the size of an I64 in bytes.
-
-=item C<i64type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's I64.
-
-=item C<i8size>
-
-From F<perlxv.U>:
-
-This variable is the size of an I8 in bytes.
-
-=item C<i8type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's I8.
-
-=item C<i_arpainet>
-
-From F<i_arpainet.U>:
-
-This variable conditionally defines the C<I_ARPA_INET> symbol,
-and indicates whether a C program should include <arpa/inet.h>.
-
-=item C<i_bsdioctl>
-
-From F<i_sysioctl.U>:
-
-This variable conditionally defines the C<I_SYS_BSDIOCTL> symbol, which
-indicates to the C program that <sys/bsdioctl.h> exists and should
-be included.
-
-=item C<i_crypt>
-
-From F<i_crypt.U>:
-
-This variable conditionally defines the C<I_CRYPT> symbol, and indicates
-whether a C program should include <crypt.h>.
-
-=item C<i_db>
-
-From F<i_db.U>:
-
-This variable conditionally defines the C<I_DB> symbol, and indicates
-whether a C program may include Berkeley's C<DB> include file <db.h>.
-
-=item C<i_dbm>
-
-From F<i_dbm.U>:
-
-This variable conditionally defines the C<I_DBM> symbol, which
-indicates to the C program that <dbm.h> exists and should
-be included.
-
-=item C<i_dirent>
-
-From F<i_dirent.U>:
-
-This variable conditionally defines C<I_DIRENT>, which indicates
-to the C program that it should include <dirent.h>.
-
-=item C<i_dld>
-
-From F<i_dld.U>:
-
-This variable conditionally defines the C<I_DLD> symbol, which
-indicates to the C program that <dld.h> (C<GNU> dynamic loading)
-exists and should be included.
-
-=item C<i_dlfcn>
-
-From F<i_dlfcn.U>:
-
-This variable conditionally defines the C<I_DLFCN> symbol, which
-indicates to the C program that <dlfcn.h> exists and should
-be included.
-
-=item C<i_fcntl>
-
-From F<i_fcntl.U>:
-
-This variable controls the value of C<I_FCNTL> (which tells
-the C program to include <fcntl.h>).
-
-=item C<i_float>
-
-From F<i_float.U>:
-
-This variable conditionally defines the C<I_FLOAT> symbol, and indicates
-whether a C program may include <float.h> to get symbols like C<DBL_MAX>
-or C<DBL_MIN>, F<i.e>. machine dependent floating point values.
-
-=item C<i_fp>
-
-From F<i_fp.U>:
-
-This variable conditionally defines the C<I_FP> symbol, and indicates
-whether a C program should include <fp.h>.
-
-=item C<i_fp_class>
-
-From F<i_fp_class.U>:
-
-This variable conditionally defines the C<I_FP_CLASS> symbol, and indicates
-whether a C program should include <fp_class.h>.
-
-=item C<i_gdbm>
-
-From F<i_gdbm.U>:
-
-This variable conditionally defines the C<I_GDBM> symbol, which
-indicates to the C program that <gdbm.h> exists and should
-be included.
-
-=item C<i_grp>
-
-From F<i_grp.U>:
-
-This variable conditionally defines the C<I_GRP> symbol, and indicates
-whether a C program should include <grp.h>.
-
-=item C<i_ieeefp>
-
-From F<i_ieeefp.U>:
-
-This variable conditionally defines the C<I_IEEEFP> symbol, and indicates
-whether a C program should include <ieeefp.h>.
-
-=item C<i_inttypes>
-
-From F<i_inttypes.U>:
-
-This variable conditionally defines the C<I_INTTYPES> symbol,
-and indicates whether a C program should include <inttypes.h>.
-
-=item C<i_langinfo>
-
-From F<i_langinfo.U>:
-
-This variable conditionally defines the C<I_LANGINFO> symbol,
-and indicates whether a C program should include <langinfo.h>.
-
-=item C<i_libutil>
-
-From F<i_libutil.U>:
-
-This variable conditionally defines the C<I_LIBUTIL> symbol, and indicates
-whether a C program should include <libutil.h>.
-
-=item C<i_limits>
-
-From F<i_limits.U>:
-
-This variable conditionally defines the C<I_LIMITS> symbol, and indicates
-whether a C program may include <limits.h> to get symbols like C<WORD_BIT>
-and friends.
-
-=item C<i_locale>
-
-From F<i_locale.U>:
-
-This variable conditionally defines the C<I_LOCALE> symbol,
-and indicates whether a C program should include <locale.h>.
-
-=item C<i_machcthr>
-
-From F<i_machcthr.U>:
-
-This variable conditionally defines the C<I_MACH_CTHREADS> symbol,
-and indicates whether a C program should include <mach/cthreads.h>.
-
-=item C<i_malloc>
-
-From F<i_malloc.U>:
-
-This variable conditionally defines the C<I_MALLOC> symbol, and indicates
-whether a C program should include <malloc.h>.
-
-=item C<i_math>
-
-From F<i_math.U>:
-
-This variable conditionally defines the C<I_MATH> symbol, and indicates
-whether a C program may include <math.h>.
-
-=item C<i_memory>
-
-From F<i_memory.U>:
-
-This variable conditionally defines the C<I_MEMORY> symbol, and indicates
-whether a C program should include <memory.h>.
-
-=item C<i_mntent>
-
-From F<i_mntent.U>:
-
-This variable conditionally defines the C<I_MNTENT> symbol, and indicates
-whether a C program should include <mntent.h>.
-
-=item C<i_ndbm>
-
-From F<i_ndbm.U>:
-
-This variable conditionally defines the C<I_NDBM> symbol, which
-indicates to the C program that <ndbm.h> exists and should
-be included.
-
-=item C<i_netdb>
-
-From F<i_netdb.U>:
-
-This variable conditionally defines the C<I_NETDB> symbol, and indicates
-whether a C program should include <netdb.h>.
-
-=item C<i_neterrno>
-
-From F<i_neterrno.U>:
-
-This variable conditionally defines the C<I_NET_ERRNO> symbol, which
-indicates to the C program that <net/errno.h> exists and should
-be included.
-
-=item C<i_netinettcp>
-
-From F<i_netinettcp.U>:
-
-This variable conditionally defines the C<I_NETINET_TCP> symbol,
-and indicates whether a C program should include <netinet/tcp.h>.
-
-=item C<i_niin>
-
-From F<i_niin.U>:
-
-This variable conditionally defines C<I_NETINET_IN>, which indicates
-to the C program that it should include <netinet/in.h>. Otherwise,
-you may try <sys/in.h>.
-
-=item C<i_poll>
-
-From F<i_poll.U>:
-
-This variable conditionally defines the C<I_POLL> symbol, and indicates
-whether a C program should include <poll.h>.
-
-=item C<i_prot>
-
-From F<i_prot.U>:
-
-This variable conditionally defines the C<I_PROT> symbol, and indicates
-whether a C program should include <prot.h>.
-
-=item C<i_pthread>
-
-From F<i_pthread.U>:
-
-This variable conditionally defines the C<I_PTHREAD> symbol,
-and indicates whether a C program should include <pthread.h>.
-
-=item C<i_pwd>
-
-From F<i_pwd.U>:
-
-This variable conditionally defines C<I_PWD>, which indicates
-to the C program that it should include <pwd.h>.
-
-=item C<i_rpcsvcdbm>
-
-From F<i_dbm.U>:
-
-This variable conditionally defines the C<I_RPCSVC_DBM> symbol, which
-indicates to the C program that <rpcsvc/dbm.h> exists and should
-be included. Some System V systems might need this instead of <dbm.h>.
-
-=item C<i_sfio>
-
-From F<i_sfio.U>:
-
-This variable conditionally defines the C<I_SFIO> symbol,
-and indicates whether a C program should include <sfio.h>.
-
-=item C<i_sgtty>
-
-From F<i_termio.U>:
-
-This variable conditionally defines the C<I_SGTTY> symbol, which
-indicates to the C program that it should include <sgtty.h> rather
-than <termio.h>.
-
-=item C<i_shadow>
-
-From F<i_shadow.U>:
-
-This variable conditionally defines the C<I_SHADOW> symbol, and indicates
-whether a C program should include <shadow.h>.
-
-=item C<i_socks>
-
-From F<i_socks.U>:
-
-This variable conditionally defines the C<I_SOCKS> symbol, and indicates
-whether a C program should include <socks.h>.
-
-=item C<i_stdarg>
-
-From F<i_varhdr.U>:
-
-This variable conditionally defines the C<I_STDARG> symbol, which
-indicates to the C program that <stdarg.h> exists and should
-be included.
-
-=item C<i_stddef>
-
-From F<i_stddef.U>:
-
-This variable conditionally defines the C<I_STDDEF> symbol, which
-indicates to the C program that <stddef.h> exists and should
-be included.
-
-=item C<i_stdlib>
-
-From F<i_stdlib.U>:
-
-This variable conditionally defines the C<I_STDLIB> symbol, which
-indicates to the C program that <stdlib.h> exists and should
-be included.
-
-=item C<i_string>
-
-From F<i_string.U>:
-
-This variable conditionally defines the C<I_STRING> symbol, which
-indicates that <string.h> should be included rather than <strings.h>.
-
-=item C<i_sunmath>
-
-From F<i_sunmath.U>:
-
-This variable conditionally defines the C<I_SUNMATH> symbol, and indicates
-whether a C program should include <sunmath.h>.
-
-=item C<i_sysaccess>
-
-From F<i_sysaccess.U>:
-
-This variable conditionally defines the C<I_SYS_ACCESS> symbol,
-and indicates whether a C program should include <sys/access.h>.
-
-=item C<i_sysdir>
-
-From F<i_sysdir.U>:
-
-This variable conditionally defines the C<I_SYS_DIR> symbol, and indicates
-whether a C program should include <sys/dir.h>.
-
-=item C<i_sysfile>
-
-From F<i_sysfile.U>:
-
-This variable conditionally defines the C<I_SYS_FILE> symbol, and indicates
-whether a C program should include <sys/file.h> to get C<R_OK> and friends.
-
-=item C<i_sysfilio>
-
-From F<i_sysioctl.U>:
-
-This variable conditionally defines the C<I_SYS_FILIO> symbol, which
-indicates to the C program that <sys/filio.h> exists and should
-be included in preference to <sys/ioctl.h>.
-
-=item C<i_sysin>
-
-From F<i_niin.U>:
-
-This variable conditionally defines C<I_SYS_IN>, which indicates
-to the C program that it should include <sys/in.h> instead of
-<netinet/in.h>.
-
-=item C<i_sysioctl>
-
-From F<i_sysioctl.U>:
-
-This variable conditionally defines the C<I_SYS_IOCTL> symbol, which
-indicates to the C program that <sys/ioctl.h> exists and should
-be included.
-
-=item C<i_syslog>
-
-From F<i_syslog.U>:
-
-This variable conditionally defines the C<I_SYSLOG> symbol,
-and indicates whether a C program should include <syslog.h>.
-
-=item C<i_sysmman>
-
-From F<i_sysmman.U>:
-
-This variable conditionally defines the C<I_SYS_MMAN> symbol, and
-indicates whether a C program should include <sys/mman.h>.
-
-=item C<i_sysmode>
-
-From F<i_sysmode.U>:
-
-This variable conditionally defines the C<I_SYSMODE> symbol,
-and indicates whether a C program should include <sys/mode.h>.
-
-=item C<i_sysmount>
-
-From F<i_sysmount.U>:
-
-This variable conditionally defines the C<I_SYSMOUNT> symbol,
-and indicates whether a C program should include <sys/mount.h>.
-
-=item C<i_sysndir>
-
-From F<i_sysndir.U>:
-
-This variable conditionally defines the C<I_SYS_NDIR> symbol, and indicates
-whether a C program should include <sys/ndir.h>.
-
-=item C<i_sysparam>
-
-From F<i_sysparam.U>:
-
-This variable conditionally defines the C<I_SYS_PARAM> symbol, and indicates
-whether a C program should include <sys/param.h>.
-
-=item C<i_sysresrc>
-
-From F<i_sysresrc.U>:
-
-This variable conditionally defines the C<I_SYS_RESOURCE> symbol,
-and indicates whether a C program should include <sys/resource.h>.
-
-=item C<i_syssecrt>
-
-From F<i_syssecrt.U>:
-
-This variable conditionally defines the C<I_SYS_SECURITY> symbol,
-and indicates whether a C program should include <sys/security.h>.
-
-=item C<i_sysselct>
-
-From F<i_sysselct.U>:
-
-This variable conditionally defines C<I_SYS_SELECT>, which indicates
-to the C program that it should include <sys/select.h> in order to
-get the definition of struct timeval.
-
-=item C<i_syssockio>
-
-From F<i_sysioctl.U>:
-
-This variable conditionally defines C<I_SYS_SOCKIO> to indicate to the
-C program that socket ioctl codes may be found in <sys/sockio.h>
-instead of <sys/ioctl.h>.
-
-=item C<i_sysstat>
-
-From F<i_sysstat.U>:
-
-This variable conditionally defines the C<I_SYS_STAT> symbol,
-and indicates whether a C program should include <sys/stat.h>.
-
-=item C<i_sysstatfs>
-
-From F<i_sysstatfs.U>:
-
-This variable conditionally defines the C<I_SYSSTATFS> symbol,
-and indicates whether a C program should include <sys/statfs.h>.
-
-=item C<i_sysstatvfs>
-
-From F<i_sysstatvfs.U>:
-
-This variable conditionally defines the C<I_SYSSTATVFS> symbol,
-and indicates whether a C program should include <sys/statvfs.h>.
-
-=item C<i_systime>
-
-From F<i_time.U>:
-
-This variable conditionally defines C<I_SYS_TIME>, which indicates
-to the C program that it should include <sys/time.h>.
-
-=item C<i_systimek>
-
-From F<i_time.U>:
-
-This variable conditionally defines C<I_SYS_TIME_KERNEL>, which
-indicates to the C program that it should include <sys/time.h>
-with C<KERNEL> defined.
-
-=item C<i_systimes>
-
-From F<i_systimes.U>:
-
-This variable conditionally defines the C<I_SYS_TIMES> symbol, and indicates
-whether a C program should include <sys/times.h>.
-
-=item C<i_systypes>
-
-From F<i_systypes.U>:
-
-This variable conditionally defines the C<I_SYS_TYPES> symbol,
-and indicates whether a C program should include <sys/types.h>.
-
-=item C<i_sysuio>
-
-From F<i_sysuio.U>:
-
-This variable conditionally defines the C<I_SYSUIO> symbol, and indicates
-whether a C program should include <sys/uio.h>.
-
-=item C<i_sysun>
-
-From F<i_sysun.U>:
-
-This variable conditionally defines C<I_SYS_UN>, which indicates
-to the C program that it should include <sys/un.h> to get C<UNIX>
-domain socket definitions.
-
-=item C<i_sysutsname>
-
-From F<i_sysutsname.U>:
-
-This variable conditionally defines the C<I_SYSUTSNAME> symbol,
-and indicates whether a C program should include <sys/utsname.h>.
-
-=item C<i_sysvfs>
-
-From F<i_sysvfs.U>:
-
-This variable conditionally defines the C<I_SYSVFS> symbol,
-and indicates whether a C program should include <sys/vfs.h>.
-
-=item C<i_syswait>
-
-From F<i_syswait.U>:
-
-This variable conditionally defines C<I_SYS_WAIT>, which indicates
-to the C program that it should include <sys/wait.h>.
-
-=item C<i_termio>
-
-From F<i_termio.U>:
-
-This variable conditionally defines the C<I_TERMIO> symbol, which
-indicates to the C program that it should include <termio.h> rather
-than <sgtty.h>.
-
-=item C<i_termios>
-
-From F<i_termio.U>:
-
-This variable conditionally defines the C<I_TERMIOS> symbol, which
-indicates to the C program that the C<POSIX> <termios.h> file is
-to be included.
-
-=item C<i_time>
-
-From F<i_time.U>:
-
-This variable conditionally defines C<I_TIME>, which indicates
-to the C program that it should include <time.h>.
-
-=item C<i_unistd>
-
-From F<i_unistd.U>:
-
-This variable conditionally defines the C<I_UNISTD> symbol, and indicates
-whether a C program should include <unistd.h>.
-
-=item C<i_ustat>
-
-From F<i_ustat.U>:
-
-This variable conditionally defines the C<I_USTAT> symbol, and indicates
-whether a C program should include <ustat.h>.
-
-=item C<i_utime>
-
-From F<i_utime.U>:
-
-This variable conditionally defines the C<I_UTIME> symbol, and indicates
-whether a C program should include <utime.h>.
-
-=item C<i_values>
-
-From F<i_values.U>:
-
-This variable conditionally defines the C<I_VALUES> symbol, and indicates
-whether a C program may include <values.h> to get symbols like C<MAXLONG>
-and friends.
-
-=item C<i_varargs>
-
-From F<i_varhdr.U>:
-
-This variable conditionally defines C<I_VARARGS>, which indicates
-to the C program that it should include <varargs.h>.
-
-=item C<i_varhdr>
-
-From F<i_varhdr.U>:
-
-Contains the name of the header to be included to get va_dcl definition.
-Typically one of F<varargs.h> or F<stdarg.h>.
-
-=item C<i_vfork>
-
-From F<i_vfork.U>:
-
-This variable conditionally defines the C<I_VFORK> symbol, and indicates
-whether a C program should include F<vfork.h>.
-
-=item C<ignore_versioned_solibs>
-
-From F<libs.U>:
-
-This variable should be non-empty if non-versioned shared
-libraries (F<libfoo.so.x.y>) are to be ignored (because they
-cannot be linked against).
-
-=item C<inc_version_list>
-
-From F<inc_version_list.U>:
-
-This variable specifies the list of subdirectories in over
-which F<perl.c>:incpush() and F<lib/lib.pm> will automatically
-search when adding directories to @C<INC>. The elements in
-the list are separated by spaces. This is only useful
-if you have a perl library directory tree structured like the
-default one. See C<INSTALL> for how this works. The versioned
-site_perl directory was introduced in 5.005, so that is the
-lowest possible value.
-
-=item C<inc_version_list_init>
-
-From F<inc_version_list.U>:
-
-This variable holds the same list as inc_version_list, but
-each item is enclosed in double quotes and separated by commas,
-suitable for use in the C<PERL_INC_VERSION_LIST> initialization.
-
-=item C<incpath>
-
-From F<usrinc.U>:
-
-This variable must preceed the normal include path to get hte
-right one, as in F<$F<incpath/usr/include>> or F<$F<incpath/usr/lib>>.
-Value can be "" or F</bsd43> on mips.
-
-=item C<inews>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<installarchlib>
-
-From F<archlib.U>:
-
-This variable is really the same as archlibexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<installbin>
-
-From F<bin.U>:
-
-This variable is the same as binexp unless C<AFS> is running in which case
-the user is explicitely prompted for it. This variable should always
-be used in your makefiles for maximum portability.
-
-=item C<installman1dir>
-
-From F<man1dir.U>:
-
-This variable is really the same as man1direxp, unless you are using
-C<AFS> in which case it points to the read/write location whereas
-man1direxp only points to the read-only access location. For extra
-portability, you should only use this variable within your makefiles.
-
-=item C<installman3dir>
-
-From F<man3dir.U>:
-
-This variable is really the same as man3direxp, unless you are using
-C<AFS> in which case it points to the read/write location whereas
-man3direxp only points to the read-only access location. For extra
-portability, you should only use this variable within your makefiles.
-
-=item C<installprefix>
-
-From F<installprefix.U>:
-
-This variable holds the name of the directory below which
-"make install" will install the package. For most users, this
-is the same as prefix. However, it is useful for
-installing the software into a different (usually temporary)
-location after which it can be bundled up and moved somehow
-to the final location specified by prefix.
-
-=item C<installprefixexp>
-
-From F<installprefix.U>:
-
-This variable holds the full absolute path of installprefix
-with all F<~>-expansion done.
-
-=item C<installprivlib>
-
-From F<privlib.U>:
-
-This variable is really the same as privlibexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<installscript>
-
-From F<scriptdir.U>:
-
-This variable is usually the same as scriptdirexp, unless you are on
-a system running C<AFS>, in which case they may differ slightly. You
-should always use this variable within your makefiles for portability.
-
-=item C<installsitearch>
-
-From F<sitearch.U>:
-
-This variable is really the same as sitearchexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<installsitebin>
-
-From F<sitebin.U>:
-
-This variable is usually the same as sitebinexp, unless you are on
-a system running C<AFS>, in which case they may differ slightly. You
-should always use this variable within your makefiles for portability.
-
-=item C<installsitelib>
-
-From F<sitelib.U>:
-
-This variable is really the same as sitelibexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<installstyle>
-
-From F<installstyle.U>:
-
-This variable describes the C<style> of the perl installation.
-This is intended to be useful for tools that need to
-manipulate entire perl distributions. Perl itself doesn't use
-this to find its libraries -- the library directories are
-stored directly in F<Config.pm>. Currently, there are only two
-styles: C<lib> and F<lib/perl5>. The default library locations
-(e.g. privlib, sitelib) are either F<$prefix/lib> or
-F<$prefix/lib/perl5>. The former is useful if $prefix is a
-directory dedicated to perl (e.g. F</opt/perl>), while the latter
-is useful if $prefix is shared by many packages, e.g. if
-$prefix=F</usr/local>.
-
-This may later be extended to include other information, so
-be careful with pattern-matching on the results.
-
-For compatibility with F<perl5.005> and earlier, the default
-setting is based on whether or not $prefix contains the string
-C<perl>.
-
-=item C<installusrbinperl>
-
-From F<instubperl.U>:
-
-This variable tells whether Perl should be installed also as
-F</usr/bin/perl> in addition to
-F<$installbin/perl>
-
-=item C<installvendorarch>
-
-From F<vendorarch.U>:
-
-This variable is really the same as vendorarchexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<installvendorbin>
-
-From F<vendorbin.U>:
-
-This variable is really the same as vendorbinexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<installvendorlib>
-
-From F<vendorlib.U>:
-
-This variable is really the same as vendorlibexp but may differ on
-those systems using C<AFS>. For extra portability, only this variable
-should be used in makefiles.
-
-=item C<intsize>
-
-From F<intsize.U>:
-
-This variable contains the value of the C<INTSIZE> symbol, which
-indicates to the C program how many bytes there are in an int.
-
-=item C<issymlink>
-
-From F<issymlink.U>:
-
-This variable holds the test command to test for a symbolic link
-(if they are supported). Typical values include C<test -h> and
-C<test -L>.
-
-=item C<ivdformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<IV> as a signed decimal integer.
-
-=item C<ivsize>
-
-From F<perlxv.U>:
-
-This variable is the size of an C<IV> in bytes.
-
-=item C<ivtype>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's C<IV>.
-
-=back
-
-=head2 k
-
-=over 4
-
-=item C<known_extensions>
-
-From F<Extensions.U>:
-
-This variable holds a list of all C<XS> extensions included in
-the package.
-
-=item C<ksh>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=back
-
-=head2 l
-
-=over 4
-
-=item C<ld>
-
-From F<dlsrc.U>:
-
-This variable indicates the program to be used to link
-libraries for dynamic loading. On some systems, it is C<ld>.
-On C<ELF> systems, it should be $cc. Mostly, we'll try to respect
-the hint file setting.
-
-=item C<lddlflags>
-
-From F<dlsrc.U>:
-
-This variable contains any special flags that might need to be
-passed to $ld to create a shared library suitable for dynamic
-loading. It is up to the makefile to use it. For hpux, it
-should be C<-b>. For sunos 4.1, it is empty.
-
-=item C<ldflags>
-
-From F<ccflags.U>:
-
-This variable contains any additional C loader flags desired by
-the user. It is up to the Makefile to use this.
-
-=item C<ldflags_uselargefiles>
-
-From F<uselfs.U>:
-
-This variable contains the loader flags needed by large file builds
-and added to ldflags by hints files.
-
-=item C<ldlibpthname>
-
-From F<libperl.U>:
-
-This variable holds the name of the shared library
-search path, often C<LD_LIBRARY_PATH>. To get an empty
-string, the hints file must set this to C<none>.
-
-=item C<less>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the less program. After Configure runs,
-the value is reset to a plain C<less> and is not useful.
-
-=item C<lib_ext>
-
-From F<Unix.U>:
-
-This is an old synonym for _a.
-
-=item C<libc>
-
-From F<libc.U>:
-
-This variable contains the location of the C library.
-
-=item C<libperl>
-
-From F<libperl.U>:
-
-The perl executable is obtained by linking F<perlmain.c> with
-libperl, any static extensions (usually just DynaLoader),
-and any other libraries needed on this system. libperl
-is usually F<libperl.a>, but can also be F<libperl.so.xxx> if
-the user wishes to build a perl executable with a shared
-library.
-
-=item C<libpth>
-
-From F<libpth.U>:
-
-This variable holds the general path (space-separated) used to find
-libraries. It is intended to be used by other units.
-
-=item C<libs>
-
-From F<libs.U>:
-
-This variable holds the additional libraries we want to use.
-It is up to the Makefile to deal with it. The list can be empty.
-
-=item C<libsdirs>
-
-From F<libs.U>:
-
-This variable holds the directory names aka dirnames of the libraries
-we found and accepted, duplicates are removed.
-
-=item C<libsfiles>
-
-From F<libs.U>:
-
-This variable holds the filenames aka basenames of the libraries
-we found and accepted.
-
-=item C<libsfound>
-
-From F<libs.U>:
-
-This variable holds the full pathnames of the libraries
-we found and accepted.
-
-=item C<libspath>
-
-From F<libs.U>:
-
-This variable holds the directory names probed for libraries.
-
-=item C<libswanted>
-
-From F<Myinit.U>:
-
-This variable holds a list of all the libraries we want to
-search. The order is chosen to pick up the c library
-ahead of ucb or bsd libraries for SVR4.
-
-=item C<libswanted_uselargefiles>
-
-From F<uselfs.U>:
-
-This variable contains the libraries needed by large file builds
-and added to ldflags by hints files. It is a space separated list
-of the library names without the C<lib> prefix or any suffix, just
-like F<libswanted.>.
-
-=item C<line>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<lint>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<lkflags>
-
-From F<ccflags.U>:
-
-This variable contains any additional C partial linker flags desired by
-the user. It is up to the Makefile to use this.
-
-=item C<ln>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the ln program. After Configure runs,
-the value is reset to a plain C<ln> and is not useful.
-
-=item C<lns>
-
-From F<lns.U>:
-
-This variable holds the name of the command to make
-symbolic links (if they are supported). It can be used
-in the Makefile. It is either C<ln -s> or C<ln>
-
-=item C<localtime_r_proto>
-
-From F<d_localtime_r.U>:
-
-This variable encodes the prototype of localtime_r.
-It is zero if d_localtime_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_localtime_r
-is defined.
-
-=item C<locincpth>
-
-From F<ccflags.U>:
-
-This variable contains a list of additional directories to be
-searched by the compiler. The appropriate C<-I> directives will
-be added to ccflags. This is intended to simplify setting
-local directories from the Configure command line.
-It's not much, but it parallels the loclibpth stuff in F<libpth.U>.
-
-=item C<loclibpth>
-
-From F<libpth.U>:
-
-This variable holds the paths (space-separated) used to find local
-libraries. It is prepended to libpth, and is intended to be easily
-set from the command line.
-
-=item C<longdblsize>
-
-From F<d_longdbl.U>:
-
-This variable contains the value of the C<LONG_DOUBLESIZE> symbol, which
-indicates to the C program how many bytes there are in a long double,
-if this system supports long doubles.
-
-=item C<longlongsize>
-
-From F<d_longlong.U>:
-
-This variable contains the value of the C<LONGLONGSIZE> symbol, which
-indicates to the C program how many bytes there are in a long long,
-if this system supports long long.
-
-=item C<longsize>
-
-From F<intsize.U>:
-
-This variable contains the value of the C<LONGSIZE> symbol, which
-indicates to the C program how many bytes there are in a long.
-
-=item C<lp>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<lpr>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<ls>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the ls program. After Configure runs,
-the value is reset to a plain C<ls> and is not useful.
-
-=item C<lseeksize>
-
-From F<lseektype.U>:
-
-This variable defines lseektype to be something like off_t, long,
-or whatever type is used to declare lseek offset's type in the
-kernel (which also appears to be lseek's return type).
-
-=item C<lseektype>
-
-From F<lseektype.U>:
-
-This variable defines lseektype to be something like off_t, long,
-or whatever type is used to declare lseek offset's type in the
-kernel (which also appears to be lseek's return type).
-
-=back
-
-=head2 m
-
-=over 4
-
-=item C<mail>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<mailx>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<make>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the make program. After Configure runs,
-the value is reset to a plain C<make> and is not useful.
-
-=item C<make_set_make>
-
-From F<make.U>:
-
-Some versions of C<make> set the variable C<MAKE>. Others do not.
-This variable contains the string to be included in F<Makefile.SH>
-so that C<MAKE> is set if needed, and not if not needed.
-Possible values are:
-make_set_make=C<#> # If your make program handles this for you,
-make_set_make=C<MAKE=$make> # if it doesn't.
-I used a comment character so that we can distinguish a
-C<set> value (from a previous F<config.sh> or Configure C<-D> option)
-from an uncomputed value.
-
-=item C<mallocobj>
-
-From F<mallocsrc.U>:
-
-This variable contains the name of the F<malloc.o> that this package
-generates, if that F<malloc.o> is preferred over the system malloc.
-Otherwise the value is null. This variable is intended for generating
-Makefiles. See mallocsrc.
-
-=item C<mallocsrc>
-
-From F<mallocsrc.U>:
-
-This variable contains the name of the F<malloc.c> that comes with
-the package, if that F<malloc.c> is preferred over the system malloc.
-Otherwise the value is null. This variable is intended for generating
-Makefiles.
-
-=item C<malloctype>
-
-From F<mallocsrc.U>:
-
-This variable contains the kind of ptr returned by malloc and realloc.
-
-=item C<man1dir>
-
-From F<man1dir.U>:
-
-This variable contains the name of the directory in which manual
-source pages are to be put. It is the responsibility of the
-F<Makefile.SH> to get the value of this into the proper command.
-You must be prepared to do the F<~name> expansion yourself.
-
-=item C<man1direxp>
-
-From F<man1dir.U>:
-
-This variable is the same as the man1dir variable, but is filename
-expanded at configuration time, for convenient use in makefiles.
-
-=item C<man1ext>
-
-From F<man1dir.U>:
-
-This variable contains the extension that the manual page should
-have: one of C<n>, C<l>, or C<1>. The Makefile must supply the F<.>.
-See man1dir.
-
-=item C<man3dir>
-
-From F<man3dir.U>:
-
-This variable contains the name of the directory in which manual
-source pages are to be put. It is the responsibility of the
-F<Makefile.SH> to get the value of this into the proper command.
-You must be prepared to do the F<~name> expansion yourself.
-
-=item C<man3direxp>
-
-From F<man3dir.U>:
-
-This variable is the same as the man3dir variable, but is filename
-expanded at configuration time, for convenient use in makefiles.
-
-=item C<man3ext>
-
-From F<man3dir.U>:
-
-This variable contains the extension that the manual page should
-have: one of C<n>, C<l>, or C<3>. The Makefile must supply the F<.>.
-See man3dir.
-
-=back
-
-=head2 M
-
-=over 4
-
-=item C<Mcc>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the Mcc program. After Configure runs,
-the value is reset to a plain C<Mcc> and is not useful.
-
-=item C<mips_type>
-
-From F<usrinc.U>:
-
-This variable holds the environment type for the mips system.
-Possible values are "BSD 4.3" and "System V".
-
-=item C<mkdir>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the mkdir program. After Configure runs,
-the value is reset to a plain C<mkdir> and is not useful.
-
-=item C<mmaptype>
-
-From F<d_mmap.U>:
-
-This symbol contains the type of pointer returned by mmap()
-(and simultaneously the type of the first argument).
-It can be C<void *> or C<caddr_t>.
-
-=item C<modetype>
-
-From F<modetype.U>:
-
-This variable defines modetype to be something like mode_t,
-int, unsigned short, or whatever type is used to declare file
-modes for system calls.
-
-=item C<more>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the more program. After Configure runs,
-the value is reset to a plain C<more> and is not useful.
-
-=item C<multiarch>
-
-From F<multiarch.U>:
-
-This variable conditionally defines the C<MULTIARCH> symbol
-which signifies the presence of multiplatform files.
-This is normally set by hints files.
-
-=item C<mv>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<myarchname>
-
-From F<archname.U>:
-
-This variable holds the architecture name computed by Configure in
-a previous run. It is not intended to be perused by any user and
-should never be set in a hint file.
-
-=item C<mydomain>
-
-From F<myhostname.U>:
-
-This variable contains the eventual value of the C<MYDOMAIN> symbol,
-which is the domain of the host the program is going to run on.
-The domain must be appended to myhostname to form a complete host name.
-The dot comes with mydomain, and need not be supplied by the program.
-
-=item C<myhostname>
-
-From F<myhostname.U>:
-
-This variable contains the eventual value of the C<MYHOSTNAME> symbol,
-which is the name of the host the program is going to run on.
-The domain is not kept with hostname, but must be gotten from mydomain.
-The dot comes with mydomain, and need not be supplied by the program.
-
-=item C<myuname>
-
-From F<Oldconfig.U>:
-
-The output of C<uname -a> if available, otherwise the hostname. On Xenix,
-pseudo variables assignments in the output are stripped, thank you. The
-whole thing is then lower-cased.
-
-=back
-
-=head2 n
-
-=over 4
-
-=item C<n>
-
-From F<n.U>:
-
-This variable contains the C<-n> flag if that is what causes the echo
-command to suppress newline. Otherwise it is null. Correct usage is
-$echo $n "prompt for a question: $c".
-
-=item C<need_va_copy>
-
-From F<need_va_copy.U>:
-
-This symbol, if defined, indicates that the system stores
-the variable argument list datatype, va_list, in a format
-that cannot be copied by simple assignment, so that some
-other means must be used when copying is required.
-As such systems vary in their provision (or non-provision)
-of copying mechanisms, F<handy.h> defines a platform-
-C<independent> macro, Perl_va_copy(src, dst), to do the job.
-
-=item C<netdb_hlen_type>
-
-From F<netdbtype.U>:
-
-This variable holds the type used for the 2nd argument to
-gethostbyaddr(). Usually, this is int or size_t or unsigned.
-This is only useful if you have gethostbyaddr(), naturally.
-
-=item C<netdb_host_type>
-
-From F<netdbtype.U>:
-
-This variable holds the type used for the 1st argument to
-gethostbyaddr(). Usually, this is char * or void *, possibly
-with or without a const prefix.
-This is only useful if you have gethostbyaddr(), naturally.
-
-=item C<netdb_name_type>
-
-From F<netdbtype.U>:
-
-This variable holds the type used for the argument to
-gethostbyname(). Usually, this is char * or const char *.
-This is only useful if you have gethostbyname(), naturally.
-
-=item C<netdb_net_type>
-
-From F<netdbtype.U>:
-
-This variable holds the type used for the 1st argument to
-getnetbyaddr(). Usually, this is int or long.
-This is only useful if you have getnetbyaddr(), naturally.
-
-=item C<nm>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the nm program. After Configure runs,
-the value is reset to a plain C<nm> and is not useful.
-
-=item C<nm_opt>
-
-From F<usenm.U>:
-
-This variable holds the options that may be necessary for nm.
-
-=item C<nm_so_opt>
-
-From F<usenm.U>:
-
-This variable holds the options that may be necessary for nm
-to work on a shared library but that can not be used on an
-archive library. Currently, this is only used by Linux, where
-nm --dynamic is *required* to get symbols from an C<ELF> library which
-has been stripped, but nm --dynamic is *fatal* on an archive library.
-Maybe Linux should just always set usenm=false.
-
-=item C<nonxs_ext>
-
-From F<Extensions.U>:
-
-This variable holds a list of all non-xs extensions included
-in the package. All of them will be built.
-
-=item C<nroff>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the nroff program. After Configure runs,
-the value is reset to a plain C<nroff> and is not useful.
-
-=item C<nv_preserves_uv_bits>
-
-From F<perlxv.U>:
-
-This variable indicates how many of bits type uvtype
-a variable nvtype can preserve.
-
-=item C<nveformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %e-ish floating point format.
-
-=item C<nvEUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %E-ish floating point format.
-
-=item C<nvfformat>
-
-From F<perlxvf.U>:
-
-This variable confains the format string used for printing
-a Perl C<NV> using %f-ish floating point format.
-
-=item C<nvFUformat>
-
-From F<perlxvf.U>:
-
-This variable confains the format string used for printing
-a Perl C<NV> using %F-ish floating point format.
-
-=item C<nvgformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %g-ish floating point format.
-
-=item C<nvGUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %G-ish floating point format.
-
-=item C<nvsize>
-
-From F<perlxv.U>:
-
-This variable is the size of an C<NV> in bytes.
-
-=item C<nvtype>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's C<NV>.
-
-=back
-
-=head2 o
-
-=over 4
-
-=item C<o_nonblock>
-
-From F<nblock_io.U>:
-
-This variable bears the symbol value to be used during open() or fcntl()
-to turn on non-blocking I/O for a file descriptor. If you wish to switch
-between blocking and non-blocking, you may try ioctl(C<FIOSNBIO>) instead,
-but that is only supported by some devices.
-
-=item C<obj_ext>
-
-From F<Unix.U>:
-
-This is an old synonym for _o.
-
-=item C<old_pthread_create_joinable>
-
-From F<d_pthrattrj.U>:
-
-This variable defines the constant to use for creating joinable
-(aka undetached) pthreads. Unused if F<pthread.h> defines
-C<PTHREAD_CREATE_JOINABLE>. If used, possible values are
-C<PTHREAD_CREATE_UNDETACHED> and C<__UNDETACHED>.
-
-=item C<optimize>
-
-From F<ccflags.U>:
-
-This variable contains any F<optimizer/debugger> flag that should be used.
-It is up to the Makefile to use it.
-
-=item C<orderlib>
-
-From F<orderlib.U>:
-
-This variable is C<true> if the components of libraries must be ordered
-(with `lorder $* | tsort`) before placing them in an archive. Set to
-C<false> if ranlib or ar can generate random libraries.
-
-=item C<osname>
-
-From F<Oldconfig.U>:
-
-This variable contains the operating system name (e.g. sunos,
-solaris, hpux, etc.). It can be useful later on for setting
-defaults. Any spaces are replaced with underscores. It is set
-to a null string if we can't figure it out.
-
-=item C<osvers>
-
-From F<Oldconfig.U>:
-
-This variable contains the operating system version (e.g.
-4.1.3, 5.2, etc.). It is primarily used for helping select
-an appropriate hints file, but might be useful elsewhere for
-setting defaults. It is set to '' if we can't figure it out.
-We try to be flexible about how much of the version number
-to keep, e.g. if 4.1.1, 4.1.2, and 4.1.3 are essentially the
-same for this package, hints files might just be F<os_4.0> or
-F<os_4.1>, etc., not keeping separate files for each little release.
-
-=item C<otherlibdirs>
-
-From F<otherlibdirs.U>:
-
-This variable contains a colon-separated set of paths for the perl
-binary to search for additional library files or modules.
-These directories will be tacked to the end of @C<INC>.
-Perl will automatically search below each path for version-
-and architecture-specific directories. See inc_version_list
-for more details.
-A value of C< > means C<none> and is used to preserve this value
-for the next run through Configure.
-
-=back
-
-=head2 p
-
-=over 4
-
-=item C<package>
-
-From F<package.U>:
-
-This variable contains the name of the package being constructed.
-It is primarily intended for the use of later Configure units.
-
-=item C<pager>
-
-From F<pager.U>:
-
-This variable contains the name of the preferred pager on the system.
-Usual values are (the full pathnames of) more, less, pg, or cat.
-
-=item C<passcat>
-
-From F<nis.U>:
-
-This variable contains a command that produces the text of the
-F</etc/passwd> file. This is normally "cat F</etc/passwd>", but can be
-"ypcat passwd" when C<NIS> is used.
-On some systems, such as os390, there may be no equivalent
-command, in which case this variable is unset.
-
-=item C<patchlevel>
-
-From F<patchlevel.U>:
-
-The patchlevel level of this package.
-The value of patchlevel comes from the F<patchlevel.h> file.
-In a version number such as 5.6.1, this is the C<6>.
-In F<patchlevel.h>, this is referred to as C<PERL_VERSION>.
-
-=item C<path_sep>
-
-From F<Unix.U>:
-
-This is an old synonym for p_ in F<Head.U>, the character
-used to separate elements in the command shell search C<PATH>.
-
-=item C<perl5>
-
-From F<perl5.U>:
-
-This variable contains the full path (if any) to a previously
-installed F<perl5.005> or later suitable for running the script
-to determine inc_version_list.
-
-=item C<perl>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<perl_patchlevel>
-
-From F<patchlevel.U>:
-
-This is the Perl patch level, a numeric change identifier,
-as defined by whichever source code maintenance system
-is used to maintain the patches; currently Perforce.
-It does not correlate with the Perl version numbers or
-the maintenance versus development dichotomy except
-by also being increasing.
-
-=back
-
-=head2 P
-
-=over 4
-
-=item C<PERL_REVISION>
-
-From F<Oldsyms.U>:
-
-In a Perl version number such as 5.6.2, this is the 5.
-This value is manually set in F<patchlevel.h>
-
-=item C<PERL_SUBVERSION>
-
-From F<Oldsyms.U>:
-
-In a Perl version number such as 5.6.2, this is the 2.
-Values greater than 50 represent potentially unstable
-development subversions.
-This value is manually set in F<patchlevel.h>
-
-=item C<PERL_VERSION>
-
-From F<Oldsyms.U>:
-
-In a Perl version number such as 5.6.2, this is the 6.
-This value is manually set in F<patchlevel.h>
-
-=item C<perladmin>
-
-From F<perladmin.U>:
-
-Electronic mail address of the perl5 administrator.
-
-=item C<perllibs>
-
-From F<End.U>:
-
-The list of libraries needed by Perl only (any libraries needed
-by extensions only will by dropped, if using dynamic loading).
-
-=item C<perlpath>
-
-From F<perlpath.U>:
-
-This variable contains the eventual value of the C<PERLPATH> symbol,
-which contains the name of the perl interpreter to be used in
-shell scripts and in the "eval C<exec>" idiom. This variable is
-not necessarily the pathname of the file containing the perl
-interpreter; you must append the executable extension (_exe) if
-it is not already present. Note that Perl code that runs during
-the Perl build process cannot reference this variable, as Perl
-may not have been installed, or even if installed, may be a
-different version of Perl.
-
-=item C<pg>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the pg program. After Configure runs,
-the value is reset to a plain C<pg> and is not useful.
-
-=item C<phostname>
-
-From F<myhostname.U>:
-
-This variable contains the eventual value of the C<PHOSTNAME> symbol,
-which is a command that can be fed to popen() to get the host name.
-The program should probably not presume that the domain is or isn't
-there already.
-
-=item C<pidtype>
-
-From F<pidtype.U>:
-
-This variable defines C<PIDTYPE> to be something like pid_t, int,
-ushort, or whatever type is used to declare process ids in the kernel.
-
-=item C<plibpth>
-
-From F<libpth.U>:
-
-Holds the private path used by Configure to find out the libraries.
-Its value is prepend to libpth. This variable takes care of special
-machines, like the mips. Usually, it should be empty.
-
-=item C<pm_apiversion>
-
-From F<xs_apiversion.U>:
-
-This variable contains the version of the oldest perl
-compatible with the present perl. (That is, pure perl modules
-written for $pm_apiversion will still work for the current
-version). F<perl.c>:incpush() and F<lib/lib.pm> will automatically
-search in $sitelib for older directories across major versions
-back to pm_apiversion. This is only useful if you have a perl
-library directory tree structured like the default one. The
-versioned site_perl library was introduced in 5.005, so that's
-the default setting for this variable. It's hard to imagine
-it changing before Perl6. It is included here for symmetry
-with xs_apiveprsion -- the searching algorithms will
-(presumably) be similar.
-See the C<INSTALL> file for how this works.
-
-=item C<pmake>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<pr>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<prefix>
-
-From F<prefix.U>:
-
-This variable holds the name of the directory below which the
-user will install the package. Usually, this is F</usr/local>, and
-executables go in F</usr/local/bin>, library stuff in F</usr/local/lib>,
-man pages in F</usr/local/man>, etc. It is only used to set defaults
-for things in F<bin.U>, F<mansrc.U>, F<privlib.U>, or F<scriptdir.U>.
-
-=item C<prefixexp>
-
-From F<prefix.U>:
-
-This variable holds the full absolute path of the directory below
-which the user will install the package. Derived from prefix.
-
-=item C<privlib>
-
-From F<privlib.U>:
-
-This variable contains the eventual value of the C<PRIVLIB> symbol,
-which is the name of the private library for this package. It may
-have a F<~> on the front. It is up to the makefile to eventually create
-this directory while performing installation (with F<~> substitution).
-
-=item C<privlibexp>
-
-From F<privlib.U>:
-
-This variable is the F<~name> expanded version of privlib, so that you
-may use it directly in Makefiles or shell scripts.
-
-=item C<procselfexe>
-
-From F<d_procselfexe.U>:
-
-If d_procselfexe is defined, $procselfexe is the filename
-of the symbolic link pointing to the absolute pathname of
-the executing program.
-
-=item C<prototype>
-
-From F<prototype.U>:
-
-This variable holds the eventual value of C<CAN_PROTOTYPE>, which
-indicates the C compiler can handle funciton prototypes.
-
-=item C<ptrsize>
-
-From F<ptrsize.U>:
-
-This variable contains the value of the C<PTRSIZE> symbol, which
-indicates to the C program how many bytes there are in a pointer.
-
-=back
-
-=head2 q
-
-=over 4
-
-=item C<quadkind>
-
-From F<quadtype.U>:
-
-This variable, if defined, encodes the type of a quad:
-1 = int, 2 = long, 3 = long long, 4 = int64_t.
-
-=item C<quadtype>
-
-From F<quadtype.U>:
-
-This variable defines Quad_t to be something like long, int,
-long long, int64_t, or whatever type is used for 64-bit integers.
-
-=back
-
-=head2 r
-
-=over 4
-
-=item C<randbits>
-
-From F<randfunc.U>:
-
-Indicates how many bits are produced by the function used to
-generate normalized random numbers.
-
-=item C<randfunc>
-
-From F<randfunc.U>:
-
-Indicates the name of the random number function to use.
-Values include drand48, random, and rand. In C programs,
-the C<Drand01> macro is defined to generate uniformly distributed
-random numbers over the range [0., 1.[ (see drand01 and nrand).
-
-=item C<random_r_proto>
-
-From F<d_random_r.U>:
-
-This variable encodes the prototype of random_r.
-It is zero if d_random_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_random_r
-is defined.
-
-=item C<randseedtype>
-
-From F<randfunc.U>:
-
-Indicates the type of the argument of the seedfunc.
-
-=item C<ranlib>
-
-From F<orderlib.U>:
-
-This variable is set to the pathname of the ranlib program, if it is
-needed to generate random libraries. Set to C<:> if ar can generate
-random libraries or if random libraries are not supported
-
-=item C<rd_nodata>
-
-From F<nblock_io.U>:
-
-This variable holds the return code from read() when no data is
-present. It should be -1, but some systems return 0 when C<O_NDELAY> is
-used, which is a shame because you cannot make the difference between
-no data and an F<EOF.>. Sigh!
-
-=item C<readdir64_r_proto>
-
-From F<d_readdir64_r.U>:
-
-This variable encodes the prototype of readdir64_r.
-It is zero if d_readdir64_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_readdir64_r
-is defined.
-
-=item C<readdir_r_proto>
-
-From F<d_readdir_r.U>:
-
-This variable encodes the prototype of readdir_r.
-It is zero if d_readdir_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_readdir_r
-is defined.
-
-=item C<revision>
-
-From F<patchlevel.U>:
-
-The value of revision comes from the F<patchlevel.h> file.
-In a version number such as 5.6.1, this is the C<5>.
-In F<patchlevel.h>, this is referred to as C<PERL_REVISION>.
-
-=item C<rm>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the rm program. After Configure runs,
-the value is reset to a plain C<rm> and is not useful.
-
-=item C<rmail>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<run>
-
-From F<Cross.U>:
-
-This variable contains the command used by Configure
-to copy and execute a cross-compiled executable in the
-target host. Useful and available only during Perl build.
-Empty string '' if not cross-compiling.
-
-=item C<runnm>
-
-From F<usenm.U>:
-
-This variable contains C<true> or C<false> depending whether the
-nm extraction should be performed or not, according to the value
-of usenm and the flags on the Configure command line.
-
-=back
-
-=head2 s
-
-=over 4
-
-=item C<sched_yield>
-
-From F<d_pthread_y.U>:
-
-This variable defines the way to yield the execution
-of the current thread.
-
-=item C<scriptdir>
-
-From F<scriptdir.U>:
-
-This variable holds the name of the directory in which the user wants
-to put publicly scripts for the package in question. It is either
-the same directory as for binaries, or a special one that can be
-mounted across different architectures, like F</usr/share>. Programs
-must be prepared to deal with F<~name> expansion.
-
-=item C<scriptdirexp>
-
-From F<scriptdir.U>:
-
-This variable is the same as scriptdir, but is filename expanded
-at configuration time, for programs not wanting to bother with it.
-
-=item C<sed>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the sed program. After Configure runs,
-the value is reset to a plain C<sed> and is not useful.
-
-=item C<seedfunc>
-
-From F<randfunc.U>:
-
-Indicates the random number generating seed function.
-Values include srand48, srandom, and srand.
-
-=item C<selectminbits>
-
-From F<selectminbits.U>:
-
-This variable holds the minimum number of bits operated by select.
-That is, if you do select(n, ...), how many bits at least will be
-cleared in the masks if some activity is detected. Usually this
-is either n or 32*ceil(F<n/32>), especially many little-endians do
-the latter. This is only useful if you have select(), naturally.
-
-=item C<selecttype>
-
-From F<selecttype.U>:
-
-This variable holds the type used for the 2nd, 3rd, and 4th
-arguments to select. Usually, this is C<fd_set *>, if C<HAS_FD_SET>
-is defined, and C<int *> otherwise. This is only useful if you
-have select(), naturally.
-
-=item C<sendmail>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<setgrent_r_proto>
-
-From F<d_setgrent_r.U>:
-
-This variable encodes the prototype of setgrent_r.
-It is zero if d_setgrent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setgrent_r
-is defined.
-
-=item C<sethostent_r_proto>
-
-From F<d_sethostent_r.U>:
-
-This variable encodes the prototype of sethostent_r.
-It is zero if d_sethostent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_sethostent_r
-is defined.
-
-=item C<setlocale_r_proto>
-
-From F<d_setlocale_r.U>:
-
-This variable encodes the prototype of setlocale_r.
-It is zero if d_setlocale_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setlocale_r
-is defined.
-
-=item C<setnetent_r_proto>
-
-From F<d_setnetent_r.U>:
-
-This variable encodes the prototype of setnetent_r.
-It is zero if d_setnetent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setnetent_r
-is defined.
-
-=item C<setprotoent_r_proto>
-
-From F<d_setprotoent_r.U>:
-
-This variable encodes the prototype of setprotoent_r.
-It is zero if d_setprotoent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setprotoent_r
-is defined.
-
-=item C<setpwent_r_proto>
-
-From F<d_setpwent_r.U>:
-
-This variable encodes the prototype of setpwent_r.
-It is zero if d_setpwent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setpwent_r
-is defined.
-
-=item C<setservent_r_proto>
-
-From F<d_setservent_r.U>:
-
-This variable encodes the prototype of setservent_r.
-It is zero if d_setservent_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setservent_r
-is defined.
-
-=item C<sh>
-
-From F<sh.U>:
-
-This variable contains the full pathname of the shell used
-on this system to execute Bourne shell scripts. Usually, this will be
-F</bin/sh>, though it's possible that some systems will have F</bin/ksh>,
-F</bin/pdksh>, F</bin/ash>, F</bin/bash>, or even something such as
-D:F</bin/sh.exe>.
-This unit comes before F<Options.U>, so you can't set sh with a C<-D>
-option, though you can override this (and startsh)
-with C<-O -Dsh=F</bin/whatever> -Dstartsh=whatever>
-
-=item C<shar>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<sharpbang>
-
-From F<spitshell.U>:
-
-This variable contains the string #! if this system supports that
-construct.
-
-=item C<shmattype>
-
-From F<d_shmat.U>:
-
-This symbol contains the type of pointer returned by shmat().
-It can be C<void *> or C<char *>.
-
-=item C<shortsize>
-
-From F<intsize.U>:
-
-This variable contains the value of the C<SHORTSIZE> symbol which
-indicates to the C program how many bytes there are in a short.
-
-=item C<shrpenv>
-
-From F<libperl.U>:
-
-If the user builds a shared F<libperl.so>, then we need to tell the
-C<perl> executable where it will be able to find the installed F<libperl.so>.
-One way to do this on some systems is to set the environment variable
-C<LD_RUN_PATH> to the directory that will be the final location of the
-shared F<libperl.so>. The makefile can use this with something like
-$shrpenv $(C<CC>) -o perl F<perlmain.o> $libperl $libs
-Typical values are
-shrpenv="env C<LD_RUN_PATH>=F<$archlibexp/C<CORE>>"
-or
-shrpenv=''
-See the main perl F<Makefile.SH> for actual working usage.
-Alternatively, we might be able to use a command line option such
-as -R F<$archlibexp/C<CORE>> (Solaris) or -Wl,-rpath
-F<$archlibexp/C<CORE>> (Linux).
-
-=item C<shsharp>
-
-From F<spitshell.U>:
-
-This variable tells further Configure units whether your sh can
-handle # comments.
-
-=item C<sig_count>
-
-From F<sig_name.U>:
-
-This variable holds a number larger than the largest valid
-signal number. This is usually the same as the C<NSIG> macro.
-
-=item C<sig_name>
-
-From F<sig_name.U>:
-
-This variable holds the signal names, space separated. The leading
-C<SIG> in signal name is removed. A C<ZERO> is prepended to the
-list. This is currently not used.
-
-=item C<sig_name_init>
-
-From F<sig_name.U>:
-
-This variable holds the signal names, enclosed in double quotes and
-separated by commas, suitable for use in the C<SIG_NAME> definition
-below. A C<ZERO> is prepended to the list, and the list is
-terminated with a plain 0. The leading C<SIG> in signal names
-is removed. See sig_num.
-
-=item C<sig_num>
-
-From F<sig_name.U>:
-
-This variable holds the signal numbers, space separated. A C<ZERO> is
-prepended to the list (corresponding to the fake C<SIGZERO>), and
-the list is terminated with a 0. Those numbers correspond to
-the value of the signal listed in the same place within the
-sig_name list.
-
-=item C<sig_num_init>
-
-From F<sig_name.U>:
-
-This variable holds the signal numbers, enclosed in double quotes and
-separated by commas, suitable for use in the C<SIG_NUM> definition
-below. A C<ZERO> is prepended to the list, and the list is
-terminated with a plain 0.
-
-=item C<sig_size>
-
-From F<sig_name.U>:
-
-This variable contains the number of elements of the sig_name
-and sig_num arrays, excluding the final C<NULL> entry.
-
-=item C<signal_t>
-
-From F<d_voidsig.U>:
-
-This variable holds the type of the signal handler (void or int).
-
-=item C<sitearch>
-
-From F<sitearch.U>:
-
-This variable contains the eventual value of the C<SITEARCH> symbol,
-which is the name of the private library for this package. It may
-have a F<~> on the front. It is up to the makefile to eventually create
-this directory while performing installation (with F<~> substitution).
-The standard distribution will put nothing in this directory.
-After perl has been installed, users may install their own local
-architecture-dependent modules in this directory with
-MakeMaker F<Makefile.PL>
-or equivalent. See C<INSTALL> for details.
-
-=item C<sitearchexp>
-
-From F<sitearch.U>:
-
-This variable is the F<~name> expanded version of sitearch, so that you
-may use it directly in Makefiles or shell scripts.
-
-=item C<sitebin>
-
-From F<sitebin.U>:
-
-This variable holds the name of the directory in which the user wants
-to put add-on publicly executable files for the package in question. It
-is most often a local directory such as F</usr/local/bin>. Programs using
-this variable must be prepared to deal with F<~name> substitution.
-The standard distribution will put nothing in this directory.
-After perl has been installed, users may install their own local
-executables in this directory with
-MakeMaker F<Makefile.PL>
-or equivalent. See C<INSTALL> for details.
-
-=item C<sitebinexp>
-
-From F<sitebin.U>:
-
-This is the same as the sitebin variable, but is filename expanded at
-configuration time, for use in your makefiles.
-
-=item C<sitelib>
-
-From F<sitelib.U>:
-
-This variable contains the eventual value of the C<SITELIB> symbol,
-which is the name of the private library for this package. It may
-have a F<~> on the front. It is up to the makefile to eventually create
-this directory while performing installation (with F<~> substitution).
-The standard distribution will put nothing in this directory.
-After perl has been installed, users may install their own local
-architecture-independent modules in this directory with
-MakeMaker F<Makefile.PL>
-or equivalent. See C<INSTALL> for details.
-
-=item C<sitelib_stem>
-
-From F<sitelib.U>:
-
-This variable is $sitelibexp with any trailing version-specific component
-removed. The elements in inc_version_list (F<inc_version_list.U>) can
-be tacked onto this variable to generate a list of directories to search.
-
-=item C<sitelibexp>
-
-From F<sitelib.U>:
-
-This variable is the F<~name> expanded version of sitelib, so that you
-may use it directly in Makefiles or shell scripts.
-
-=item C<siteprefix>
-
-From F<siteprefix.U>:
-
-This variable holds the full absolute path of the directory below
-which the user will install add-on packages.
-See C<INSTALL> for usage and examples.
-
-=item C<siteprefixexp>
-
-From F<siteprefix.U>:
-
-This variable holds the full absolute path of the directory below
-which the user will install add-on packages. Derived from siteprefix.
-
-=item C<sizesize>
-
-From F<sizesize.U>:
-
-This variable contains the size of a sizetype in bytes.
-
-=item C<sizetype>
-
-From F<sizetype.U>:
-
-This variable defines sizetype to be something like size_t,
-unsigned long, or whatever type is used to declare length
-parameters for string functions.
-
-=item C<sleep>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<smail>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<so>
-
-From F<so.U>:
-
-This variable holds the extension used to identify shared libraries
-(also known as shared objects) on the system. Usually set to C<so>.
-
-=item C<sockethdr>
-
-From F<d_socket.U>:
-
-This variable has any cpp C<-I> flags needed for socket support.
-
-=item C<socketlib>
-
-From F<d_socket.U>:
-
-This variable has the names of any libraries needed for socket support.
-
-=item C<socksizetype>
-
-From F<socksizetype.U>:
-
-This variable holds the type used for the size argument
-for various socket calls like accept. Usual values include
-socklen_t, size_t, and int.
-
-=item C<sort>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the sort program. After Configure runs,
-the value is reset to a plain C<sort> and is not useful.
-
-=item C<spackage>
-
-From F<package.U>:
-
-This variable contains the name of the package being constructed,
-with the first letter uppercased, F<i.e>. suitable for starting
-sentences.
-
-=item C<spitshell>
-
-From F<spitshell.U>:
-
-This variable contains the command necessary to spit out a runnable
-shell on this system. It is either cat or a grep C<-v> for # comments.
-
-=item C<sPRId64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit decimal numbers (format C<d>) for output.
-
-=item C<sPRIeldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<e>) for output.
-
-=item C<sPRIEUldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<E>) for output.
-The C<U> in the name is to separate this from sPRIeldbl so that even
-case-blind systems can see the difference.
-
-=item C<sPRIfldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<f>) for output.
-
-=item C<sPRIFUldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<F>) for output.
-The C<U> in the name is to separate this from sPRIfldbl so that even
-case-blind systems can see the difference.
-
-=item C<sPRIgldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<g>) for output.
-
-=item C<sPRIGUldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<G>) for output.
-The C<U> in the name is to separate this from sPRIgldbl so that even
-case-blind systems can see the difference.
-
-=item C<sPRIi64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit decimal numbers (format C<i>) for output.
-
-=item C<sPRIo64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit octal numbers (format C<o>) for output.
-
-=item C<sPRIu64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit unsigned decimal numbers (format C<u>) for output.
-
-=item C<sPRIx64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit hexadecimal numbers (format C<x>) for output.
-
-=item C<sPRIXU64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit hExADECimAl numbers (format C<X>) for output.
-The C<U> in the name is to separate this from sPRIx64 so that even
-case-blind systems can see the difference.
-
-=item C<srand48_r_proto>
-
-From F<d_srand48_r.U>:
-
-This variable encodes the prototype of srand48_r.
-It is zero if d_srand48_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_srand48_r
-is defined.
-
-=item C<srandom_r_proto>
-
-From F<d_srandom_r.U>:
-
-This variable encodes the prototype of srandom_r.
-It is zero if d_srandom_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_srandom_r
-is defined.
-
-=item C<src>
-
-From F<src.U>:
-
-This variable holds the path to the package source. It is up to
-the Makefile to use this variable and set C<VPATH> accordingly to
-find the sources remotely.
-
-=item C<sSCNfldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<f>) for input.
-
-=item C<ssizetype>
-
-From F<ssizetype.U>:
-
-This variable defines ssizetype to be something like ssize_t,
-long or int. It is used by functions that return a count
-of bytes or an error condition. It must be a signed type.
-We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
-
-=item C<startperl>
-
-From F<startperl.U>:
-
-This variable contains the string to put on the front of a perl
-script to make sure (hopefully) that it runs with perl and not some
-shell. Of course, that leading line must be followed by the classical
-perl idiom:
-eval 'exec perl -S $0 ${1+C<$@>}'
-if $running_under_some_shell;
-to guarantee perl startup should the shell execute the script. Note
-that this magic incatation is not understood by csh.
-
-=item C<startsh>
-
-From F<startsh.U>:
-
-This variable contains the string to put on the front of a shell
-script to make sure (hopefully) that it runs with sh and not some
-other shell.
-
-=item C<static_ext>
-
-From F<Extensions.U>:
-
-This variable holds a list of C<XS> extension files we want to
-link statically into the package. It is used by Makefile.
-
-=item C<stdchar>
-
-From F<stdchar.U>:
-
-This variable conditionally defines C<STDCHAR> to be the type of char
-used in F<stdio.h>. It has the values "unsigned char" or C<char>.
-
-=item C<stdio_base>
-
-From F<d_stdstdio.U>:
-
-This variable defines how, given a C<FILE> pointer, fp, to access the
-_base field (or equivalent) of F<stdio.h>'s C<FILE> structure. This will
-be used to define the macro FILE_base(fp).
-
-=item C<stdio_bufsiz>
-
-From F<d_stdstdio.U>:
-
-This variable defines how, given a C<FILE> pointer, fp, to determine
-the number of bytes store in the I/O buffer pointer to by the
-_base field (or equivalent) of F<stdio.h>'s C<FILE> structure. This will
-be used to define the macro FILE_bufsiz(fp).
-
-=item C<stdio_cnt>
-
-From F<d_stdstdio.U>:
-
-This variable defines how, given a C<FILE> pointer, fp, to access the
-_cnt field (or equivalent) of F<stdio.h>'s C<FILE> structure. This will
-be used to define the macro FILE_cnt(fp).
-
-=item C<stdio_filbuf>
-
-From F<d_stdstdio.U>:
-
-This variable defines how, given a C<FILE> pointer, fp, to tell
-stdio to refill its internal buffers (?). This will
-be used to define the macro FILE_filbuf(fp).
-
-=item C<stdio_ptr>
-
-From F<d_stdstdio.U>:
-
-This variable defines how, given a C<FILE> pointer, fp, to access the
-_ptr field (or equivalent) of F<stdio.h>'s C<FILE> structure. This will
-be used to define the macro FILE_ptr(fp).
-
-=item C<stdio_stream_array>
-
-From F<stdio_streams.U>:
-
-This variable tells the name of the array holding the stdio streams.
-Usual values include _iob, __iob, and __sF.
-
-=item C<strerror_r_proto>
-
-From F<d_strerror_r.U>:
-
-This variable encodes the prototype of strerror_r.
-It is zero if d_strerror_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_strerror_r
-is defined.
-
-=item C<strings>
-
-From F<i_string.U>:
-
-This variable holds the full path of the string header that will be
-used. Typically F</usr/include/string.h> or F</usr/include/strings.h>.
-
-=item C<submit>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<subversion>
-
-From F<patchlevel.U>:
-
-The subversion level of this package.
-The value of subversion comes from the F<patchlevel.h> file.
-In a version number such as 5.6.1, this is the C<1>.
-In F<patchlevel.h>, this is referred to as C<PERL_SUBVERSION>.
-This is unique to perl.
-
-=item C<sysman>
-
-From F<sysman.U>:
-
-This variable holds the place where the manual is located on this
-system. It is not the place where the user wants to put his manual
-pages. Rather it is the place where Configure may look to find manual
-for unix commands (section 1 of the manual usually). See mansrc.
-
-=back
-
-=head2 t
-
-=over 4
-
-=item C<tail>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<tar>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<targetarch>
-
-From F<Cross.U>:
-
-If cross-compiling, this variable contains the target architecture.
-If not, this will be empty.
-
-=item C<tbl>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<tee>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<test>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the test program. After Configure runs,
-the value is reset to a plain C<test> and is not useful.
-
-=item C<timeincl>
-
-From F<i_time.U>:
-
-This variable holds the full path of the included time header(s).
-
-=item C<timetype>
-
-From F<d_time.U>:
-
-This variable holds the type returned by time(). It can be long,
-or time_t on C<BSD> sites (in which case <sys/types.h> should be
-included). Anyway, the type Time_t should be used.
-
-=item C<tmpnam_r_proto>
-
-From F<d_tmpnam_r.U>:
-
-This variable encodes the prototype of tmpnam_r.
-It is zero if d_tmpnam_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_tmpnam_r
-is defined.
-
-=item C<to>
-
-From F<Cross.U>:
-
-This variable contains the command used by Configure
-to copy to from the target host. Useful and available
-only during Perl build.
-The string C<:> if not cross-compiling.
-
-=item C<touch>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the touch program. After Configure runs,
-the value is reset to a plain C<touch> and is not useful.
-
-=item C<tr>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the tr program. After Configure runs,
-the value is reset to a plain C<tr> and is not useful.
-
-=item C<trnl>
-
-From F<trnl.U>:
-
-This variable contains the value to be passed to the tr(1)
-command to transliterate a newline. Typical values are
-C<\012> and C<\n>. This is needed for C<EBCDIC> systems where
-newline is not necessarily C<\012>.
-
-=item C<troff>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<ttyname_r_proto>
-
-From F<d_ttyname_r.U>:
-
-This variable encodes the prototype of ttyname_r.
-It is zero if d_ttyname_r is undef, and one of the
-C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_ttyname_r
-is defined.
-
-=back
-
-=head2 u
-
-=over 4
-
-=item C<u16size>
-
-From F<perlxv.U>:
-
-This variable is the size of an U16 in bytes.
-
-=item C<u16type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's U16.
-
-=item C<u32size>
-
-From F<perlxv.U>:
-
-This variable is the size of an U32 in bytes.
-
-=item C<u32type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's U32.
-
-=item C<u64size>
-
-From F<perlxv.U>:
-
-This variable is the size of an U64 in bytes.
-
-=item C<u64type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's U64.
-
-=item C<u8size>
-
-From F<perlxv.U>:
-
-This variable is the size of an U8 in bytes.
-
-=item C<u8type>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's U8.
-
-=item C<uidformat>
-
-From F<uidf.U>:
-
-This variable contains the format string used for printing a Uid_t.
-
-=item C<uidsign>
-
-From F<uidsign.U>:
-
-This variable contains the signedness of a uidtype.
-1 for unsigned, -1 for signed.
-
-=item C<uidsize>
-
-From F<uidsize.U>:
-
-This variable contains the size of a uidtype in bytes.
-
-=item C<uidtype>
-
-From F<uidtype.U>:
-
-This variable defines Uid_t to be something like uid_t, int,
-ushort, or whatever type is used to declare user ids in the kernel.
-
-=item C<uname>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the uname program. After Configure runs,
-the value is reset to a plain C<uname> and is not useful.
-
-=item C<uniq>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the uniq program. After Configure runs,
-the value is reset to a plain C<uniq> and is not useful.
-
-=item C<uquadtype>
-
-From F<quadtype.U>:
-
-This variable defines Uquad_t to be something like unsigned long,
-unsigned int, unsigned long long, uint64_t, or whatever type is
-used for 64-bit integers.
-
-=item C<use5005threads>
-
-From F<usethreads.U>:
-
-This variable conditionally defines the USE_5005THREADS symbol,
-and indicates that Perl should be built to use the 5.005-based
-threading implementation.
-
-=item C<use64bitall>
-
-From F<use64bits.U>:
-
-This variable conditionally defines the USE_64_BIT_ALL symbol,
-and indicates that 64-bit integer types should be used
-when available. The maximal possible
-64-bitness is employed: LP64 or ILP64, meaning that you will
-be able to use more than 2 gigabytes of memory. This mode is
-even more binary incompatible than USE_64_BIT_INT. You may not
-be able to run the resulting executable in a 32-bit C<CPU> at all or
-you may need at least to reboot your C<OS> to 64-bit mode.
-
-=item C<use64bitint>
-
-From F<use64bits.U>:
-
-This variable conditionally defines the USE_64_BIT_INT symbol,
-and indicates that 64-bit integer types should be used
-when available. The minimal possible 64-bitness
-is employed, just enough to get 64-bit integers into Perl.
-This may mean using for example "long longs", while your memory
-may still be limited to 2 gigabytes.
-
-=item C<usecrosscompile>
-
-From F<Cross.U>:
-
-This variable conditionally defines the C<USE_CROSS_COMPILE> symbol,
-and indicates that Perl has been cross-compiled.
-
-=item C<usedl>
-
-From F<dlsrc.U>:
-
-This variable indicates if the system supports dynamic
-loading of some sort. See also dlsrc and dlobj.
-
-=item C<useithreads>
-
-From F<usethreads.U>:
-
-This variable conditionally defines the C<USE_ITHREADS> symbol,
-and indicates that Perl should be built to use the interpreter-based
-threading implementation.
-
-=item C<uselargefiles>
-
-From F<uselfs.U>:
-
-This variable conditionally defines the C<USE_LARGE_FILES> symbol,
-and indicates that large file interfaces should be used when
-available.
-
-=item C<uselongdouble>
-
-From F<uselongdbl.U>:
-
-This variable conditionally defines the C<USE_LONG_DOUBLE> symbol,
-and indicates that long doubles should be used when available.
-
-=item C<usemorebits>
-
-From F<usemorebits.U>:
-
-This variable conditionally defines the C<USE_MORE_BITS> symbol,
-and indicates that explicit 64-bit interfaces and long doubles
-should be used when available.
-
-=item C<usemultiplicity>
-
-From F<usemultiplicity.U>:
-
-This variable conditionally defines the C<MULTIPLICITY> symbol,
-and indicates that Perl should be built to use multiplicity.
-
-=item C<usemymalloc>
-
-From F<mallocsrc.U>:
-
-This variable contains y if the malloc that comes with this package
-is desired over the system's version of malloc. People often include
-special versions of malloc for effiency, but such versions are often
-less portable. See also mallocsrc and mallocobj.
-If this is C<y>, then -lmalloc is removed from $libs.
-
-=item C<usenm>
-
-From F<usenm.U>:
-
-This variable contains C<true> or C<false> depending whether the
-nm extraction is wanted or not.
-
-=item C<useopcode>
-
-From F<Extensions.U>:
-
-This variable holds either C<true> or C<false> to indicate
-whether the Opcode extension should be used. The sole
-use for this currently is to allow an easy mechanism
-for users to skip the Opcode extension from the Configure
-command line.
-
-=item C<useperlio>
-
-From F<useperlio.U>:
-
-This variable conditionally defines the C<USE_PERLIO> symbol,
-and indicates that the PerlIO abstraction should be
-used throughout.
-
-=item C<useposix>
-
-From F<Extensions.U>:
-
-This variable holds either C<true> or C<false> to indicate
-whether the C<POSIX> extension should be used. The sole
-use for this currently is to allow an easy mechanism
-for hints files to indicate that C<POSIX> will not compile
-on a particular system.
-
-=item C<usereentrant>
-
-From F<usethreads.U>:
-
-This variable conditionally defines the C<USE_REENTRANT_API> symbol,
-which indicates that the thread code may try to use the various
-_r versions of library functions. This is only potentially
-meaningful if usethreads is set and is very experimental, it is
-not even prompted for.
-
-=item C<usesfio>
-
-From F<d_sfio.U>:
-
-This variable is set to true when the user agrees to use sfio.
-It is set to false when sfio is not available or when the user
-explicitely requests not to use sfio. It is here primarily so
-that command-line settings can override the auto-detection of
-d_sfio without running into a "WHOA THERE".
-
-=item C<useshrplib>
-
-From F<libperl.U>:
-
-This variable is set to C<yes> if the user wishes
-to build a shared libperl, and C<no> otherwise.
-
-=item C<usesocks>
-
-From F<usesocks.U>:
-
-This variable conditionally defines the C<USE_SOCKS> symbol,
-and indicates that Perl should be built to use C<SOCKS>.
-
-=item C<usethreads>
-
-From F<usethreads.U>:
-
-This variable conditionally defines the C<USE_THREADS> symbol,
-and indicates that Perl should be built to use threads.
-
-=item C<usevendorprefix>
-
-From F<vendorprefix.U>:
-
-This variable tells whether the vendorprefix
-and consequently other vendor* paths are in use.
-
-=item C<usevfork>
-
-From F<d_vfork.U>:
-
-This variable is set to true when the user accepts to use vfork.
-It is set to false when no vfork is available or when the user
-explicitely requests not to use vfork.
-
-=item C<usrinc>
-
-From F<usrinc.U>:
-
-This variable holds the path of the include files, which is
-usually F</usr/include>. It is mainly used by other Configure units.
-
-=item C<uuname>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<uvoformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<UV> as an unsigned octal integer.
-
-=item C<uvsize>
-
-From F<perlxv.U>:
-
-This variable is the size of a C<UV> in bytes.
-
-=item C<uvtype>
-
-From F<perlxv.U>:
-
-This variable contains the C type used for Perl's C<UV>.
-
-=item C<uvuformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<UV> as an unsigned decimal integer.
-
-=item C<uvxformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<UV> as an unsigned hexadecimal integer in lowercase abcdef.
-
-=item C<uvXUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<UV> as an unsigned hexadecimal integer in uppercase C<ABCDEF>.
-
-=back
-
-=head2 v
-
-=over 4
-
-=item C<vendorarch>
-
-From F<vendorarch.U>:
-
-This variable contains the value of the C<PERL_VENDORARCH> symbol.
-It may have a F<~> on the front.
-The standard distribution will put nothing in this directory.
-Vendors who distribute perl may wish to place their own
-architecture-dependent modules and extensions in this directory with
-MakeMaker F<Makefile.PL> C<INSTALLDIRS>=vendor
-or equivalent. See C<INSTALL> for details.
-
-=item C<vendorarchexp>
-
-From F<vendorarch.U>:
-
-This variable is the F<~name> expanded version of vendorarch, so that you
-may use it directly in Makefiles or shell scripts.
-
-=item C<vendorbin>
-
-From F<vendorbin.U>:
-
-This variable contains the eventual value of the C<VENDORBIN> symbol.
-It may have a F<~> on the front.
-The standard distribution will put nothing in this directory.
-Vendors who distribute perl may wish to place additional
-binaries in this directory with
-MakeMaker F<Makefile.PL> C<INSTALLDIRS>=vendor
-or equivalent. See C<INSTALL> for details.
-
-=item C<vendorbinexp>
-
-From F<vendorbin.U>:
-
-This variable is the F<~name> expanded version of vendorbin, so that you
-may use it directly in Makefiles or shell scripts.
-
-=item C<vendorlib>
-
-From F<vendorlib.U>:
-
-This variable contains the eventual value of the C<VENDORLIB> symbol,
-which is the name of the private library for this package.
-The standard distribution will put nothing in this directory.
-Vendors who distribute perl may wish to place their own
-modules in this directory with
-MakeMaker F<Makefile.PL> C<INSTALLDIRS>=vendor
-or equivalent. See C<INSTALL> for details.
-
-=item C<vendorlib_stem>
-
-From F<vendorlib.U>:
-
-This variable is $vendorlibexp with any trailing version-specific component
-removed. The elements in inc_version_list (F<inc_version_list.U>) can
-be tacked onto this variable to generate a list of directories to search.
-
-=item C<vendorlibexp>
-
-From F<vendorlib.U>:
-
-This variable is the F<~name> expanded version of vendorlib, so that you
-may use it directly in Makefiles or shell scripts.
-
-=item C<vendorprefix>
-
-From F<vendorprefix.U>:
-
-This variable holds the full absolute path of the directory below
-which the vendor will install add-on packages.
-See C<INSTALL> for usage and examples.
-
-=item C<vendorprefixexp>
-
-From F<vendorprefix.U>:
-
-This variable holds the full absolute path of the directory below
-which the vendor will install add-on packages. Derived from vendorprefix.
-
-=item C<version>
-
-From F<patchlevel.U>:
-
-The full version number of this package, such as 5.6.1 (or 5_6_1).
-This combines revision, patchlevel, and subversion to get the
-full version number, including any possible subversions.
-This is suitable for use as a directory name, and hence is
-filesystem dependent.
-
-=item C<version_patchlevel_string>
-
-From F<patchlevel.U>:
-
-This is a string combining version, subversion and
-perl_patchlevel (if perl_patchlevel is non-zero).
-It is typically something like
-'version 7 subversion 1' or
-'version 7 subversion 1 patchlevel 11224'
-It is computed here to avoid duplication of code in F<myconfig.SH>
-and F<lib/Config.pm>.
-
-=item C<versiononly>
-
-From F<versiononly.U>:
-
-If set, this symbol indicates that only the version-specific
-components of a perl installation should be installed.
-This may be useful for making a test installation of a new
-version without disturbing the existing installation.
-Setting versiononly is equivalent to setting installperl's -v option.
-In particular, the non-versioned scripts and programs such as
-a2p, c2ph, h2xs, pod2*, and perldoc are not installed
-(see C<INSTALL> for a more complete list). Nor are the man
-pages installed.
-Usually, this is undef.
-
-=item C<vi>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<voidflags>
-
-From F<voidflags.U>:
-
-This variable contains the eventual value of the C<VOIDFLAGS> symbol,
-which indicates how much support of the void type is given by this
-compiler. See C<VOIDFLAGS> for more info.
-
-=back
-
-=head2 x
-
-=over 4
-
-=item C<xlibpth>
-
-From F<libpth.U>:
-
-This variable holds extra path (space-separated) used to find
-libraries on this platform, for example C<CPU>-specific libraries
-(on multi-C<CPU> platforms) may be listed here.
-
-=item C<xs_apiversion>
-
-From F<xs_apiversion.U>:
-
-This variable contains the version of the oldest perl binary
-compatible with the present perl. F<perl.c>:incpush() and
-F<lib/lib.pm> will automatically search in $sitearch for older
-directories across major versions back to xs_apiversion.
-This is only useful if you have a perl library directory tree
-structured like the default one.
-See C<INSTALL> for how this works.
-The versioned site_perl directory was introduced in 5.005,
-so that is the lowest possible value.
-Since this can depend on compile time options
-it is set by Configure. Other non-default sources
-of potential incompatibility, such as multiplicity, threads,
-debugging, 64bits, sfio, etc., are not checked for currently,
-though in principle we could go snooping around in old
-F<Config.pm> files.
-
-=back
-
-=head2 y
-
-=over 4
-
-=item C<yacc>
-
-From F<yacc.U>:
-
-This variable holds the name of the compiler compiler we
-want to use in the Makefile. It can be yacc, byacc, or bison -y.
-
-=item C<yaccflags>
-
-From F<yacc.U>:
-
-This variable contains any additional yacc flags desired by the
-user. It is up to the Makefile to use this.
-
-=back
-
-=head2 z
-
-=over 4
-
-=item C<zcat>
-
-From F<Loc.U>:
-
-This variable is defined but not used by Configure.
-The value is a plain '' and is not useful.
-
-=item C<zip>
-
-From F<Loc.U>:
-
-This variable is used internally by Configure to determine the
-full pathname (if any) of the zip program. After Configure runs,
-the value is reset to a plain C<zip> and is not useful.
-
-
-=back
-
-=head1 NOTE
-
-This module contains a good example of how to use tie to implement a
-cache and an example of how to make a tied variable readonly to those
-outside of it.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/Cwd.pm b/Master/xemtex/perl/lib/Cwd.pm
deleted file mode 100644
index 8b00543e1e9..00000000000
--- a/Master/xemtex/perl/lib/Cwd.pm
+++ /dev/null
@@ -1,570 +0,0 @@
-package Cwd;
-use 5.006;
-
-=head1 NAME
-
-Cwd - get pathname of current working directory
-
-=head1 SYNOPSIS
-
- use Cwd;
- my $dir = getcwd;
-
- use Cwd 'abs_path';
- my $abs_path = abs_path($file);
-
-=head1 DESCRIPTION
-
-This module provides functions for determining the pathname of the
-current working directory. It is recommended that getcwd (or another
-*cwd() function) be used in I<all> code to ensure portability.
-
-By default, it exports the functions cwd(), getcwd(), fastcwd(), and
-fastgetcwd() into the caller's namespace.
-
-
-=head2 getcwd and friends
-
-Each of these functions are called without arguments and return the
-absolute path of the current working directory.
-
-=over 4
-
-=item getcwd
-
- my $cwd = getcwd();
-
-Returns the current working directory.
-
-Re-implements the getcwd(3) (or getwd(3)) functions in Perl.
-
-Taint-safe.
-
-=item cwd
-
- my $cwd = cwd();
-
-The cwd() is the most natural form for the current architecture. For
-most systems it is identical to `pwd` (but without the trailing line
-terminator).
-
-Taint-safe.
-
-=item fastcwd
-
- my $cwd = fastcwd();
-
-A more dangerous version of getcwd(), but potentially faster.
-
-It might conceivably chdir() you out of a directory that it can't
-chdir() you back into. If fastcwd encounters a problem it will return
-undef but will probably leave you in a different directory. For a
-measure of extra security, if everything appears to have worked, the
-fastcwd() function will check that it leaves you in the same directory
-that it started in. If it has changed it will C<die> with the message
-"Unstable directory path, current directory changed
-unexpectedly". That should never happen.
-
-=item fastgetcwd
-
- my $cwd = fastgetcwd();
-
-The fastgetcwd() function is provided as a synonym for cwd().
-
-=back
-
-
-=head2 abs_path and friends
-
-These functions are exported only on request. They each take a single
-argument and return the absolute pathname for it.
-
-=over 4
-
-=item abs_path
-
- my $abs_path = abs_path($file);
-
-Uses the same algorithm as getcwd(). Symbolic links and relative-path
-components ("." and "..") are resolved to return the canonical
-pathname, just like realpath(3).
-
-Taint-safe.
-
-=item realpath
-
- my $abs_path = realpath($file);
-
-A synonym for abs_path().
-
-Taint-safe.
-
-=item fast_abs_path
-
- my $abs_path = fast_abs_path($file);
-
-A more dangerous, but potentially faster version of abs_path.
-
-This function is B<Not> taint-safe : you can't use it in programs
-that work under taint mode.
-
-=back
-
-=head2 $ENV{PWD}
-
-If you ask to override your chdir() built-in function,
-
- use Cwd qw(chdir);
-
-then your PWD environment variable will be kept up to date. Note that
-it will only be kept up to date if all packages which use chdir import
-it from Cwd.
-
-
-=head1 NOTES
-
-=over 4
-
-=item *
-
-Since the path seperators are different on some operating systems ('/'
-on Unix, ':' on MacPerl, etc...) we recommend you use the File::Spec
-modules wherever portability is a concern.
-
-=item *
-
-Actually, on Mac OS, the C<getcwd()>, C<fastgetcwd()> and C<fastcwd()>
-functions are all aliases for the C<cwd()> function, which, on Mac OS,
-calls `pwd`. Likewise, the C<abs_path()> function is an alias for
-C<fast_abs_path()>.
-
-=back
-
-=head1 SEE ALSO
-
-L<File::chdir>
-
-=cut
-
-use strict;
-
-use Carp;
-
-our $VERSION = '2.06';
-
-use base qw/ Exporter /;
-our @EXPORT = qw(cwd getcwd fastcwd fastgetcwd);
-our @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath);
-
-# sys_cwd may keep the builtin command
-
-# All the functionality of this module may provided by builtins,
-# there is no sense to process the rest of the file.
-# The best choice may be to have this in BEGIN, but how to return from BEGIN?
-
-if ($^O eq 'os2' && defined &sys_cwd && defined &sys_abspath) {
- local $^W = 0;
- *cwd = \&sys_cwd;
- *getcwd = \&cwd;
- *fastgetcwd = \&cwd;
- *fastcwd = \&cwd;
- *abs_path = \&sys_abspath;
- *fast_abs_path = \&abs_path;
- *realpath = \&abs_path;
- *fast_realpath = \&abs_path;
- return 1;
-}
-
-eval {
- require XSLoader;
- undef *Cwd::fastcwd; # avoid redefinition warning
- XSLoader::load('Cwd');
-};
-
-
-# Find the pwd command in the expected locations. We assume these
-# are safe. This prevents _backtick_pwd() consulting $ENV{PATH}
-# so everything works under taint mode.
-my $pwd_cmd;
-foreach my $try (qw(/bin/pwd /usr/bin/pwd)) {
- if( -x $try ) {
- $pwd_cmd = $try;
- last;
- }
-}
-$pwd_cmd ||= 'pwd';
-
-# The 'natural and safe form' for UNIX (pwd may be setuid root)
-sub _backtick_pwd {
- local @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)};
- my $cwd = `$pwd_cmd`;
- # Belt-and-suspenders in case someone said "undef $/".
- local $/ = "\n";
- # `pwd` may fail e.g. if the disk is full
- chomp($cwd) if defined $cwd;
- $cwd;
-}
-
-# Since some ports may predefine cwd internally (e.g., NT)
-# we take care not to override an existing definition for cwd().
-
-unless(defined &cwd) {
- # The pwd command is not available in some chroot(2)'ed environments
- if( $^O eq 'MacOS' || (defined $ENV{PATH} &&
- grep { -x "$_/pwd" } split(':', $ENV{PATH})) )
- {
- *cwd = \&_backtick_pwd;
- }
- else {
- *cwd = \&getcwd;
- }
-}
-
-# set a reasonable (and very safe) default for fastgetcwd, in case it
-# isn't redefined later (20001212 rspier)
-*fastgetcwd = \&cwd;
-
-# By Brandon S. Allbery
-#
-# Usage: $cwd = getcwd();
-
-sub getcwd
-{
- abs_path('.');
-}
-
-
-# By John Bazik
-#
-# Usage: $cwd = &fastcwd;
-#
-# This is a faster version of getcwd. It's also more dangerous because
-# you might chdir out of a directory that you can't chdir back into.
-
-sub fastcwd {
- my($odev, $oino, $cdev, $cino, $tdev, $tino);
- my(@path, $path);
- local(*DIR);
-
- my($orig_cdev, $orig_cino) = stat('.');
- ($cdev, $cino) = ($orig_cdev, $orig_cino);
- for (;;) {
- my $direntry;
- ($odev, $oino) = ($cdev, $cino);
- CORE::chdir('..') || return undef;
- ($cdev, $cino) = stat('.');
- last if $odev == $cdev && $oino == $cino;
- opendir(DIR, '.') || return undef;
- for (;;) {
- $direntry = readdir(DIR);
- last unless defined $direntry;
- next if $direntry eq '.';
- next if $direntry eq '..';
-
- ($tdev, $tino) = lstat($direntry);
- last unless $tdev != $odev || $tino != $oino;
- }
- closedir(DIR);
- return undef unless defined $direntry; # should never happen
- unshift(@path, $direntry);
- }
- $path = '/' . join('/', @path);
- if ($^O eq 'apollo') { $path = "/".$path; }
- # At this point $path may be tainted (if tainting) and chdir would fail.
- # Untaint it then check that we landed where we started.
- $path =~ /^(.*)\z/s # untaint
- && CORE::chdir($1) or return undef;
- ($cdev, $cino) = stat('.');
- die "Unstable directory path, current directory changed unexpectedly"
- if $cdev != $orig_cdev || $cino != $orig_cino;
- $path;
-}
-
-
-# Keeps track of current working directory in PWD environment var
-# Usage:
-# use Cwd 'chdir';
-# chdir $newdir;
-
-my $chdir_init = 0;
-
-sub chdir_init {
- if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') {
- my($dd,$di) = stat('.');
- my($pd,$pi) = stat($ENV{'PWD'});
- if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) {
- $ENV{'PWD'} = cwd();
- }
- }
- else {
- my $wd = cwd();
- $wd = Win32::GetFullPathName($wd) if $^O eq 'MSWin32';
- $ENV{'PWD'} = $wd;
- }
- # Strip an automounter prefix (where /tmp_mnt/foo/bar == /foo/bar)
- if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) {
- my($pd,$pi) = stat($2);
- my($dd,$di) = stat($1);
- if (defined $pd and defined $dd and $di == $pi and $dd == $pd) {
- $ENV{'PWD'}="$2$3";
- }
- }
- $chdir_init = 1;
-}
-
-sub chdir {
- my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir)
- $newdir =~ s|///*|/|g unless $^O eq 'MSWin32';
- chdir_init() unless $chdir_init;
- my $newpwd;
- if ($^O eq 'MSWin32') {
- # get the full path name *before* the chdir()
- $newpwd = Win32::GetFullPathName($newdir);
- }
-
- return 0 unless CORE::chdir $newdir;
-
- if ($^O eq 'VMS') {
- return $ENV{'PWD'} = $ENV{'DEFAULT'}
- }
- elsif ($^O eq 'MacOS') {
- return $ENV{'PWD'} = cwd();
- }
- elsif ($^O eq 'MSWin32') {
- $ENV{'PWD'} = $newpwd;
- return 1;
- }
-
- if ($newdir =~ m#^/#s) {
- $ENV{'PWD'} = $newdir;
- } else {
- my @curdir = split(m#/#,$ENV{'PWD'});
- @curdir = ('') unless @curdir;
- my $component;
- foreach $component (split(m#/#, $newdir)) {
- next if $component eq '.';
- pop(@curdir),next if $component eq '..';
- push(@curdir,$component);
- }
- $ENV{'PWD'} = join('/',@curdir) || '/';
- }
- 1;
-}
-
-
-# In case the XS version doesn't load.
-*abs_path = \&_perl_abs_path unless defined &abs_path;
-sub _perl_abs_path
-{
- my $start = @_ ? shift : '.';
- my($dotdots, $cwd, @pst, @cst, $dir, @tst);
-
- unless (@cst = stat( $start ))
- {
- carp "stat($start): $!";
- return '';
- }
- $cwd = '';
- $dotdots = $start;
- do
- {
- $dotdots .= '/..';
- @pst = @cst;
- unless (opendir(PARENT, $dotdots))
- {
- carp "opendir($dotdots): $!";
- return '';
- }
- unless (@cst = stat($dotdots))
- {
- carp "stat($dotdots): $!";
- closedir(PARENT);
- return '';
- }
- if ($pst[0] == $cst[0] && $pst[1] == $cst[1])
- {
- $dir = undef;
- }
- else
- {
- do
- {
- unless (defined ($dir = readdir(PARENT)))
- {
- carp "readdir($dotdots): $!";
- closedir(PARENT);
- return '';
- }
- $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir"))
- }
- while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] ||
- $tst[1] != $pst[1]);
- }
- $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ;
- closedir(PARENT);
- } while (defined $dir);
- chop($cwd) unless $cwd eq '/'; # drop the trailing /
- $cwd;
-}
-
-
-# added function alias for those of us more
-# used to the libc function. --tchrist 27-Jan-00
-*realpath = \&abs_path;
-
-sub fast_abs_path {
- my $cwd = getcwd();
- require File::Spec;
- my $path = @_ ? shift : File::Spec->curdir;
- CORE::chdir($path) || croak "Cannot chdir to $path: $!";
- my $realpath = getcwd();
- -d $cwd && CORE::chdir($cwd) ||
- croak "Cannot chdir back to $cwd: $!";
- $realpath;
-}
-
-# added function alias to follow principle of least surprise
-# based on previous aliasing. --tchrist 27-Jan-00
-*fast_realpath = \&fast_abs_path;
-
-
-# --- PORTING SECTION ---
-
-# VMS: $ENV{'DEFAULT'} points to default directory at all times
-# 06-Mar-1996 Charles Bailey bailey@newman.upenn.edu
-# Note: Use of Cwd::chdir() causes the logical name PWD to be defined
-# in the process logical name table as the default device and directory
-# seen by Perl. This may not be the same as the default device
-# and directory seen by DCL after Perl exits, since the effects
-# the CRTL chdir() function persist only until Perl exits.
-
-sub _vms_cwd {
- return $ENV{'DEFAULT'};
-}
-
-sub _vms_abs_path {
- return $ENV{'DEFAULT'} unless @_;
- my $path = VMS::Filespec::pathify($_[0]);
- croak("Invalid path name $_[0]") unless defined $path;
- return VMS::Filespec::rmsexpand($path);
-}
-
-sub _os2_cwd {
- $ENV{'PWD'} = `cmd /c cd`;
- chop $ENV{'PWD'};
- $ENV{'PWD'} =~ s:\\:/:g ;
- return $ENV{'PWD'};
-}
-
-sub _win32_cwd {
- $ENV{'PWD'} = Win32::GetCwd();
- $ENV{'PWD'} =~ s:\\:/:g ;
- return $ENV{'PWD'};
-}
-
-*_NT_cwd = \&_win32_cwd if (!defined &_NT_cwd &&
- defined &Win32::GetCwd);
-
-*_NT_cwd = \&_os2_cwd unless defined &_NT_cwd;
-
-sub _dos_cwd {
- if (!defined &Dos::GetCwd) {
- $ENV{'PWD'} = `command /c cd`;
- chop $ENV{'PWD'};
- $ENV{'PWD'} =~ s:\\:/:g ;
- } else {
- $ENV{'PWD'} = Dos::GetCwd();
- }
- return $ENV{'PWD'};
-}
-
-sub _qnx_cwd {
- local $ENV{PATH} = '';
- local $ENV{CDPATH} = '';
- local $ENV{ENV} = '';
- $ENV{'PWD'} = `/usr/bin/fullpath -t`;
- chop $ENV{'PWD'};
- return $ENV{'PWD'};
-}
-
-sub _qnx_abs_path {
- local $ENV{PATH} = '';
- local $ENV{CDPATH} = '';
- local $ENV{ENV} = '';
- my $path = @_ ? shift : '.';
- my $realpath=`/usr/bin/fullpath -t $path`;
- chop $realpath;
- return $realpath;
-}
-
-sub _epoc_cwd {
- $ENV{'PWD'} = EPOC::getcwd();
- return $ENV{'PWD'};
-}
-
-{
- no warnings; # assignments trigger 'subroutine redefined' warning
-
- if ($^O eq 'VMS') {
- *cwd = \&_vms_cwd;
- *getcwd = \&_vms_cwd;
- *fastcwd = \&_vms_cwd;
- *fastgetcwd = \&_vms_cwd;
- *abs_path = \&_vms_abs_path;
- *fast_abs_path = \&_vms_abs_path;
- }
- elsif ($^O eq 'NT' or $^O eq 'MSWin32') {
- # We assume that &_NT_cwd is defined as an XSUB or in the core.
- *cwd = \&_NT_cwd;
- *getcwd = \&_NT_cwd;
- *fastcwd = \&_NT_cwd;
- *fastgetcwd = \&_NT_cwd;
- *abs_path = \&fast_abs_path;
- *realpath = \&fast_abs_path;
- }
- elsif ($^O eq 'os2') {
- # sys_cwd may keep the builtin command
- *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd;
- *getcwd = \&cwd;
- *fastgetcwd = \&cwd;
- *fastcwd = \&cwd;
- *abs_path = \&fast_abs_path;
- }
- elsif ($^O eq 'dos') {
- *cwd = \&_dos_cwd;
- *getcwd = \&_dos_cwd;
- *fastgetcwd = \&_dos_cwd;
- *fastcwd = \&_dos_cwd;
- *abs_path = \&fast_abs_path;
- }
- elsif ($^O =~ m/^(?:qnx|nto)$/ ) {
- *cwd = \&_qnx_cwd;
- *getcwd = \&_qnx_cwd;
- *fastgetcwd = \&_qnx_cwd;
- *fastcwd = \&_qnx_cwd;
- *abs_path = \&_qnx_abs_path;
- *fast_abs_path = \&_qnx_abs_path;
- }
- elsif ($^O eq 'cygwin') {
- *getcwd = \&cwd;
- *fastgetcwd = \&cwd;
- *fastcwd = \&cwd;
- *abs_path = \&fast_abs_path;
- }
- elsif ($^O eq 'epoc') {
- *cwd = \&_epoc_cwd;
- *getcwd = \&_epoc_cwd;
- *fastgetcwd = \&_epoc_cwd;
- *fastcwd = \&_epoc_cwd;
- *abs_path = \&fast_abs_path;
- }
- elsif ($^O eq 'MacOS') {
- *getcwd = \&cwd;
- *fastgetcwd = \&cwd;
- *fastcwd = \&cwd;
- *abs_path = \&fast_abs_path;
- }
-}
-
-
-1;
diff --git a/Master/xemtex/perl/lib/Data/Dumper.pm b/Master/xemtex/perl/lib/Data/Dumper.pm
deleted file mode 100644
index 189ad007cbc..00000000000
--- a/Master/xemtex/perl/lib/Data/Dumper.pm
+++ /dev/null
@@ -1,1160 +0,0 @@
-#
-# Data/Dumper.pm
-#
-# convert perl data structures into perl syntax suitable for both printing
-# and eval
-#
-# Documentation at the __END__
-#
-
-package Data::Dumper;
-
-$VERSION = '2.12';
-
-#$| = 1;
-
-use 5.006_001;
-require Exporter;
-use XSLoader ();
-require overload;
-
-use Carp;
-
-@ISA = qw(Exporter);
-@EXPORT = qw(Dumper);
-@EXPORT_OK = qw(DumperX);
-
-XSLoader::load 'Data::Dumper';
-
-# module vars and their defaults
-$Indent = 2 unless defined $Indent;
-$Purity = 0 unless defined $Purity;
-$Pad = "" unless defined $Pad;
-$Varname = "VAR" unless defined $Varname;
-$Useqq = 0 unless defined $Useqq;
-$Terse = 0 unless defined $Terse;
-$Freezer = "" unless defined $Freezer;
-$Toaster = "" unless defined $Toaster;
-$Deepcopy = 0 unless defined $Deepcopy;
-$Quotekeys = 1 unless defined $Quotekeys;
-$Bless = "bless" unless defined $Bless;
-#$Expdepth = 0 unless defined $Expdepth;
-$Maxdepth = 0 unless defined $Maxdepth;
-$Useperl = 0 unless defined $Useperl;
-$Sortkeys = 0 unless defined $Sortkeys;
-$Deparse = 0 unless defined $Deparse;
-
-#
-# expects an arrayref of values to be dumped.
-# can optionally pass an arrayref of names for the values.
-# names must have leading $ sign stripped. begin the name with *
-# to cause output of arrays and hashes rather than refs.
-#
-sub new {
- my($c, $v, $n) = @_;
-
- croak "Usage: PACKAGE->new(ARRAYREF, [ARRAYREF])"
- unless (defined($v) && (ref($v) eq 'ARRAY'));
- $n = [] unless (defined($n) && (ref($v) eq 'ARRAY'));
-
- my($s) = {
- level => 0, # current recursive depth
- indent => $Indent, # various styles of indenting
- pad => $Pad, # all lines prefixed by this string
- xpad => "", # padding-per-level
- apad => "", # added padding for hash keys n such
- sep => "", # list separator
- seen => {}, # local (nested) refs (id => [name, val])
- todump => $v, # values to dump []
- names => $n, # optional names for values []
- varname => $Varname, # prefix to use for tagging nameless ones
- purity => $Purity, # degree to which output is evalable
- useqq => $Useqq, # use "" for strings (backslashitis ensues)
- terse => $Terse, # avoid name output (where feasible)
- freezer => $Freezer, # name of Freezer method for objects
- toaster => $Toaster, # name of method to revive objects
- deepcopy => $Deepcopy, # dont cross-ref, except to stop recursion
- quotekeys => $Quotekeys, # quote hash keys
- 'bless' => $Bless, # keyword to use for "bless"
-# expdepth => $Expdepth, # cutoff depth for explicit dumping
- maxdepth => $Maxdepth, # depth beyond which we give up
- useperl => $Useperl, # use the pure Perl implementation
- sortkeys => $Sortkeys, # flag or filter for sorting hash keys
- deparse => $Deparse, # use B::Deparse for coderefs
- };
-
- if ($Indent > 0) {
- $s->{xpad} = " ";
- $s->{sep} = "\n";
- }
- return bless($s, $c);
-}
-
-#
-# add-to or query the table of already seen references
-#
-sub Seen {
- my($s, $g) = @_;
- if (defined($g) && (ref($g) eq 'HASH')) {
- my($k, $v, $id);
- while (($k, $v) = each %$g) {
- if (defined $v and ref $v) {
- ($id) = (overload::StrVal($v) =~ /\((.*)\)$/);
- if ($k =~ /^[*](.*)$/) {
- $k = (ref $v eq 'ARRAY') ? ( "\\\@" . $1 ) :
- (ref $v eq 'HASH') ? ( "\\\%" . $1 ) :
- (ref $v eq 'CODE') ? ( "\\\&" . $1 ) :
- ( "\$" . $1 ) ;
- }
- elsif ($k !~ /^\$/) {
- $k = "\$" . $k;
- }
- $s->{seen}{$id} = [$k, $v];
- }
- else {
- carp "Only refs supported, ignoring non-ref item \$$k";
- }
- }
- return $s;
- }
- else {
- return map { @$_ } values %{$s->{seen}};
- }
-}
-
-#
-# set or query the values to be dumped
-#
-sub Values {
- my($s, $v) = @_;
- if (defined($v) && (ref($v) eq 'ARRAY')) {
- $s->{todump} = [@$v]; # make a copy
- return $s;
- }
- else {
- return @{$s->{todump}};
- }
-}
-
-#
-# set or query the names of the values to be dumped
-#
-sub Names {
- my($s, $n) = @_;
- if (defined($n) && (ref($n) eq 'ARRAY')) {
- $s->{names} = [@$n]; # make a copy
- return $s;
- }
- else {
- return @{$s->{names}};
- }
-}
-
-sub DESTROY {}
-
-sub Dump {
- return &Dumpxs
- unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl}) ||
- $Data::Dumper::Useqq || (ref($_[0]) && $_[0]->{useqq}) ||
- $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse});
- return &Dumpperl;
-}
-
-#
-# dump the refs in the current dumper object.
-# expects same args as new() if called via package name.
-#
-sub Dumpperl {
- my($s) = shift;
- my(@out, $val, $name);
- my($i) = 0;
- local(@post);
-
- $s = $s->new(@_) unless ref $s;
-
- for $val (@{$s->{todump}}) {
- my $out = "";
- @post = ();
- $name = $s->{names}[$i++];
- if (defined $name) {
- if ($name =~ /^[*](.*)$/) {
- if (defined $val) {
- $name = (ref $val eq 'ARRAY') ? ( "\@" . $1 ) :
- (ref $val eq 'HASH') ? ( "\%" . $1 ) :
- (ref $val eq 'CODE') ? ( "\*" . $1 ) :
- ( "\$" . $1 ) ;
- }
- else {
- $name = "\$" . $1;
- }
- }
- elsif ($name !~ /^\$/) {
- $name = "\$" . $name;
- }
- }
- else {
- $name = "\$" . $s->{varname} . $i;
- }
-
- my $valstr;
- {
- local($s->{apad}) = $s->{apad};
- $s->{apad} .= ' ' x (length($name) + 3) if $s->{indent} >= 2;
- $valstr = $s->_dump($val, $name);
- }
-
- $valstr = "$name = " . $valstr . ';' if @post or !$s->{terse};
- $out .= $s->{pad} . $valstr . $s->{sep};
- $out .= $s->{pad} . join(';' . $s->{sep} . $s->{pad}, @post)
- . ';' . $s->{sep} if @post;
-
- push @out, $out;
- }
- return wantarray ? @out : join('', @out);
-}
-
-#
-# twist, toil and turn;
-# and recurse, of course.
-# sometimes sordidly;
-# and curse if no recourse.
-#
-sub _dump {
- my($s, $val, $name) = @_;
- my($sname);
- my($out, $realpack, $realtype, $type, $ipad, $id, $blesspad);
-
- $type = ref $val;
- $out = "";
-
- if ($type) {
-
- # prep it, if it looks like an object
- if (my $freezer = $s->{freezer}) {
- $val->$freezer() if UNIVERSAL::can($val, $freezer);
- }
-
- ($realpack, $realtype, $id) =
- (overload::StrVal($val) =~ /^(?:(.*)\=)?([^=]*)\(([^\(]*)\)$/);
-
- # if it has a name, we need to either look it up, or keep a tab
- # on it so we know when we hit it later
- if (defined($name) and length($name)) {
- # keep a tab on it so that we dont fall into recursive pit
- if (exists $s->{seen}{$id}) {
-# if ($s->{expdepth} < $s->{level}) {
- if ($s->{purity} and $s->{level} > 0) {
- $out = ($realtype eq 'HASH') ? '{}' :
- ($realtype eq 'ARRAY') ? '[]' :
- 'do{my $o}' ;
- push @post, $name . " = " . $s->{seen}{$id}[0];
- }
- else {
- $out = $s->{seen}{$id}[0];
- if ($name =~ /^([\@\%])/) {
- my $start = $1;
- if ($out =~ /^\\$start/) {
- $out = substr($out, 1);
- }
- else {
- $out = $start . '{' . $out . '}';
- }
- }
- }
- return $out;
-# }
- }
- else {
- # store our name
- $s->{seen}{$id} = [ (($name =~ /^[@%]/) ? ('\\' . $name ) :
- ($realtype eq 'CODE' and
- $name =~ /^[*](.*)$/) ? ('\\&' . $1 ) :
- $name ),
- $val ];
- }
- }
-
- if ($realpack and $realpack eq 'Regexp') {
- $out = "$val";
- $out =~ s,/,\\/,g;
- return "qr/$out/";
- }
-
- # If purity is not set and maxdepth is set, then check depth:
- # if we have reached maximum depth, return the string
- # representation of the thing we are currently examining
- # at this depth (i.e., 'Foo=ARRAY(0xdeadbeef)').
- if (!$s->{purity}
- and $s->{maxdepth} > 0
- and $s->{level} >= $s->{maxdepth})
- {
- return qq['$val'];
- }
-
- # we have a blessed ref
- if ($realpack) {
- $out = $s->{'bless'} . '( ';
- $blesspad = $s->{apad};
- $s->{apad} .= ' ' if ($s->{indent} >= 2);
- }
-
- $s->{level}++;
- $ipad = $s->{xpad} x $s->{level};
-
- if ($realtype eq 'SCALAR' || $realtype eq 'REF') {
- if ($realpack) {
- $out .= 'do{\\(my $o = ' . $s->_dump($$val, "\${$name}") . ')}';
- }
- else {
- $out .= '\\' . $s->_dump($$val, "\${$name}");
- }
- }
- elsif ($realtype eq 'GLOB') {
- $out .= '\\' . $s->_dump($$val, "*{$name}");
- }
- elsif ($realtype eq 'ARRAY') {
- my($v, $pad, $mname);
- my($i) = 0;
- $out .= ($name =~ /^\@/) ? '(' : '[';
- $pad = $s->{sep} . $s->{pad} . $s->{apad};
- ($name =~ /^\@(.*)$/) ? ($mname = "\$" . $1) :
- # omit -> if $foo->[0]->{bar}, but not ${$foo->[0]}->{bar}
- ($name =~ /^\\?[\%\@\*\$][^{].*[]}]$/) ? ($mname = $name) :
- ($mname = $name . '->');
- $mname .= '->' if $mname =~ /^\*.+\{[A-Z]+\}$/;
- for $v (@$val) {
- $sname = $mname . '[' . $i . ']';
- $out .= $pad . $ipad . '#' . $i if $s->{indent} >= 3;
- $out .= $pad . $ipad . $s->_dump($v, $sname);
- $out .= "," if $i++ < $#$val;
- }
- $out .= $pad . ($s->{xpad} x ($s->{level} - 1)) if $i;
- $out .= ($name =~ /^\@/) ? ')' : ']';
- }
- elsif ($realtype eq 'HASH') {
- my($k, $v, $pad, $lpad, $mname);
- $out .= ($name =~ /^\%/) ? '(' : '{';
- $pad = $s->{sep} . $s->{pad} . $s->{apad};
- $lpad = $s->{apad};
- ($name =~ /^\%(.*)$/) ? ($mname = "\$" . $1) :
- # omit -> if $foo->[0]->{bar}, but not ${$foo->[0]}->{bar}
- ($name =~ /^\\?[\%\@\*\$][^{].*[]}]$/) ? ($mname = $name) :
- ($mname = $name . '->');
- $mname .= '->' if $mname =~ /^\*.+\{[A-Z]+\}$/;
- my ($sortkeys, $keys, $key) = ("$s->{sortkeys}");
- if ($sortkeys) {
- if (ref($s->{sortkeys}) eq 'CODE') {
- $keys = $s->{sortkeys}($val);
- unless (ref($keys) eq 'ARRAY') {
- carp "Sortkeys subroutine did not return ARRAYREF";
- $keys = [];
- }
- }
- else {
- $keys = [ sort keys %$val ];
- }
- }
- while (($k, $v) = ! $sortkeys ? (each %$val) :
- @$keys ? ($key = shift(@$keys), $val->{$key}) :
- () )
- {
- my $nk = $s->_dump($k, "");
- $nk = $1 if !$s->{quotekeys} and $nk =~ /^[\"\']([A-Za-z_]\w*)[\"\']$/;
- $sname = $mname . '{' . $nk . '}';
- $out .= $pad . $ipad . $nk . " => ";
-
- # temporarily alter apad
- $s->{apad} .= (" " x (length($nk) + 4)) if $s->{indent} >= 2;
- $out .= $s->_dump($val->{$k}, $sname) . ",";
- $s->{apad} = $lpad if $s->{indent} >= 2;
- }
- if (substr($out, -1) eq ',') {
- chop $out;
- $out .= $pad . ($s->{xpad} x ($s->{level} - 1));
- }
- $out .= ($name =~ /^\%/) ? ')' : '}';
- }
- elsif ($realtype eq 'CODE') {
- if ($s->{deparse}) {
- require B::Deparse;
- my $sub = 'sub ' . (B::Deparse->new)->coderef2text($val);
- $pad = $s->{sep} . $s->{pad} . $s->{xpad} . $s->{apad} . ' ';
- $sub =~ s/\n/$pad/gse;
- $out .= $sub;
- } else {
- $out .= 'sub { "DUMMY" }';
- carp "Encountered CODE ref, using dummy placeholder" if $s->{purity};
- }
- }
- else {
- croak "Can\'t handle $realtype type.";
- }
-
- if ($realpack) { # we have a blessed ref
- $out .= ', \'' . $realpack . '\'' . ' )';
- $out .= '->' . $s->{toaster} . '()' if $s->{toaster} ne '';
- $s->{apad} = $blesspad;
- }
- $s->{level}--;
-
- }
- else { # simple scalar
-
- my $ref = \$_[1];
- # first, catalog the scalar
- if ($name ne '') {
- ($id) = ("$ref" =~ /\(([^\(]*)\)$/);
- if (exists $s->{seen}{$id}) {
- if ($s->{seen}{$id}[2]) {
- $out = $s->{seen}{$id}[0];
- #warn "[<$out]\n";
- return "\${$out}";
- }
- }
- else {
- #warn "[>\\$name]\n";
- $s->{seen}{$id} = ["\\$name", $ref];
- }
- }
- if (ref($ref) eq 'GLOB' or "$ref" =~ /=GLOB\([^()]+\)$/) { # glob
- my $name = substr($val, 1);
- if ($name =~ /^[A-Za-z_][\w:]*$/) {
- $name =~ s/^main::/::/;
- $sname = $name;
- }
- else {
- $sname = $s->_dump($name, "");
- $sname = '{' . $sname . '}';
- }
- if ($s->{purity}) {
- my $k;
- local ($s->{level}) = 0;
- for $k (qw(SCALAR ARRAY HASH)) {
- my $gval = *$val{$k};
- next unless defined $gval;
- next if $k eq "SCALAR" && ! defined $$gval; # always there
-
- # _dump can push into @post, so we hold our place using $postlen
- my $postlen = scalar @post;
- $post[$postlen] = "\*$sname = ";
- local ($s->{apad}) = " " x length($post[$postlen]) if $s->{indent} >= 2;
- $post[$postlen] .= $s->_dump($gval, "\*$sname\{$k\}");
- }
- }
- $out .= '*' . $sname;
- }
- elsif (!defined($val)) {
- $out .= "undef";
- }
- elsif ($val =~ /^(?:0|-?[1-9]\d{0,8})\z/) { # safe decimal number
- $out .= $val;
- }
- else { # string
- if ($s->{useqq} or $val =~ tr/\0-\377//c) {
- # Fall back to qq if there's unicode
- $out .= qquote($val, $s->{useqq});
- }
- else {
- $val =~ s/([\\\'])/\\$1/g;
- $out .= '\'' . $val . '\'';
- }
- }
- }
- if ($id) {
- # if we made it this far, $id was added to seen list at current
- # level, so remove it to get deep copies
- if ($s->{deepcopy}) {
- delete($s->{seen}{$id});
- }
- elsif ($name) {
- $s->{seen}{$id}[2] = 1;
- }
- }
- return $out;
-}
-
-#
-# non-OO style of earlier version
-#
-sub Dumper {
- return Data::Dumper->Dump([@_]);
-}
-
-# compat stub
-sub DumperX {
- return Data::Dumper->Dumpxs([@_], []);
-}
-
-sub Dumpf { return Data::Dumper->Dump(@_) }
-
-sub Dumpp { print Data::Dumper->Dump(@_) }
-
-#
-# reset the "seen" cache
-#
-sub Reset {
- my($s) = shift;
- $s->{seen} = {};
- return $s;
-}
-
-sub Indent {
- my($s, $v) = @_;
- if (defined($v)) {
- if ($v == 0) {
- $s->{xpad} = "";
- $s->{sep} = "";
- }
- else {
- $s->{xpad} = " ";
- $s->{sep} = "\n";
- }
- $s->{indent} = $v;
- return $s;
- }
- else {
- return $s->{indent};
- }
-}
-
-sub Pad {
- my($s, $v) = @_;
- defined($v) ? (($s->{pad} = $v), return $s) : $s->{pad};
-}
-
-sub Varname {
- my($s, $v) = @_;
- defined($v) ? (($s->{varname} = $v), return $s) : $s->{varname};
-}
-
-sub Purity {
- my($s, $v) = @_;
- defined($v) ? (($s->{purity} = $v), return $s) : $s->{purity};
-}
-
-sub Useqq {
- my($s, $v) = @_;
- defined($v) ? (($s->{useqq} = $v), return $s) : $s->{useqq};
-}
-
-sub Terse {
- my($s, $v) = @_;
- defined($v) ? (($s->{terse} = $v), return $s) : $s->{terse};
-}
-
-sub Freezer {
- my($s, $v) = @_;
- defined($v) ? (($s->{freezer} = $v), return $s) : $s->{freezer};
-}
-
-sub Toaster {
- my($s, $v) = @_;
- defined($v) ? (($s->{toaster} = $v), return $s) : $s->{toaster};
-}
-
-sub Deepcopy {
- my($s, $v) = @_;
- defined($v) ? (($s->{deepcopy} = $v), return $s) : $s->{deepcopy};
-}
-
-sub Quotekeys {
- my($s, $v) = @_;
- defined($v) ? (($s->{quotekeys} = $v), return $s) : $s->{quotekeys};
-}
-
-sub Bless {
- my($s, $v) = @_;
- defined($v) ? (($s->{'bless'} = $v), return $s) : $s->{'bless'};
-}
-
-sub Maxdepth {
- my($s, $v) = @_;
- defined($v) ? (($s->{'maxdepth'} = $v), return $s) : $s->{'maxdepth'};
-}
-
-sub Useperl {
- my($s, $v) = @_;
- defined($v) ? (($s->{'useperl'} = $v), return $s) : $s->{'useperl'};
-}
-
-sub Sortkeys {
- my($s, $v) = @_;
- defined($v) ? (($s->{'sortkeys'} = $v), return $s) : $s->{'sortkeys'};
-}
-
-sub Deparse {
- my($s, $v) = @_;
- defined($v) ? (($s->{'deparse'} = $v), return $s) : $s->{'deparse'};
-}
-
-# used by qquote below
-my %esc = (
- "\a" => "\\a",
- "\b" => "\\b",
- "\t" => "\\t",
- "\n" => "\\n",
- "\f" => "\\f",
- "\r" => "\\r",
- "\e" => "\\e",
-);
-
-# put a string value in double quotes
-sub qquote {
- local($_) = shift;
- s/([\\\"\@\$])/\\$1/g;
- my $bytes; { use bytes; $bytes = length }
- s/([^\x00-\x7f])/'\x{'.sprintf("%x",ord($1)).'}'/ge if $bytes > length;
- return qq("$_") unless
- /[^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~]/; # fast exit
-
- my $high = shift || "";
- s/([\a\b\t\n\f\r\e])/$esc{$1}/g;
-
- if (ord('^')==94) { # ascii
- # no need for 3 digits in escape for these
- s/([\0-\037])(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
- s/([\0-\037\177])/'\\'.sprintf('%03o',ord($1))/eg;
- # all but last branch below not supported --BEHAVIOR SUBJECT TO CHANGE--
- if ($high eq "iso8859") {
- s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg;
- } elsif ($high eq "utf8") {
-# use utf8;
-# $str =~ s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
- } elsif ($high eq "8bit") {
- # leave it as it is
- } else {
- s/([\200-\377])/'\\'.sprintf('%03o',ord($1))/eg;
- s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
- }
- }
- else { # ebcdic
- s{([^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~])(?!\d)}
- {my $v = ord($1); '\\'.sprintf(($v <= 037 ? '%o' : '%03o'), $v)}eg;
- s{([^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~])}
- {'\\'.sprintf('%03o',ord($1))}eg;
- }
-
- return qq("$_");
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Data::Dumper - stringified perl data structures, suitable for both printing and C<eval>
-
-=head1 SYNOPSIS
-
- use Data::Dumper;
-
- # simple procedural interface
- print Dumper($foo, $bar);
-
- # extended usage with names
- print Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]);
-
- # configuration variables
- {
- local $Data::Dump::Purity = 1;
- eval Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]);
- }
-
- # OO usage
- $d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
- ...
- print $d->Dump;
- ...
- $d->Purity(1)->Terse(1)->Deepcopy(1);
- eval $d->Dump;
-
-
-=head1 DESCRIPTION
-
-Given a list of scalars or reference variables, writes out their contents in
-perl syntax. The references can also be objects. The contents of each
-variable is output in a single Perl statement. Handles self-referential
-structures correctly.
-
-The return value can be C<eval>ed to get back an identical copy of the
-original reference structure.
-
-Any references that are the same as one of those passed in will be named
-C<$VAR>I<n> (where I<n> is a numeric suffix), and other duplicate references
-to substructures within C<$VAR>I<n> will be appropriately labeled using arrow
-notation. You can specify names for individual values to be dumped if you
-use the C<Dump()> method, or you can change the default C<$VAR> prefix to
-something else. See C<$Data::Dumper::Varname> and C<$Data::Dumper::Terse>
-below.
-
-The default output of self-referential structures can be C<eval>ed, but the
-nested references to C<$VAR>I<n> will be undefined, since a recursive
-structure cannot be constructed using one Perl statement. You should set the
-C<Purity> flag to 1 to get additional statements that will correctly fill in
-these references.
-
-In the extended usage form, the references to be dumped can be given
-user-specified names. If a name begins with a C<*>, the output will
-describe the dereferenced type of the supplied reference for hashes and
-arrays, and coderefs. Output of names will be avoided where possible if
-the C<Terse> flag is set.
-
-In many cases, methods that are used to set the internal state of the
-object will return the object itself, so method calls can be conveniently
-chained together.
-
-Several styles of output are possible, all controlled by setting
-the C<Indent> flag. See L<Configuration Variables or Methods> below
-for details.
-
-
-=head2 Methods
-
-=over 4
-
-=item I<PACKAGE>->new(I<ARRAYREF [>, I<ARRAYREF]>)
-
-Returns a newly created C<Data::Dumper> object. The first argument is an
-anonymous array of values to be dumped. The optional second argument is an
-anonymous array of names for the values. The names need not have a leading
-C<$> sign, and must be comprised of alphanumeric characters. You can begin
-a name with a C<*> to specify that the dereferenced type must be dumped
-instead of the reference itself, for ARRAY and HASH references.
-
-The prefix specified by C<$Data::Dumper::Varname> will be used with a
-numeric suffix if the name for a value is undefined.
-
-Data::Dumper will catalog all references encountered while dumping the
-values. Cross-references (in the form of names of substructures in perl
-syntax) will be inserted at all possible points, preserving any structural
-interdependencies in the original set of values. Structure traversal is
-depth-first, and proceeds in order from the first supplied value to
-the last.
-
-=item I<$OBJ>->Dump I<or> I<PACKAGE>->Dump(I<ARRAYREF [>, I<ARRAYREF]>)
-
-Returns the stringified form of the values stored in the object (preserving
-the order in which they were supplied to C<new>), subject to the
-configuration options below. In a list context, it returns a list
-of strings corresponding to the supplied values.
-
-The second form, for convenience, simply calls the C<new> method on its
-arguments before dumping the object immediately.
-
-=item I<$OBJ>->Seen(I<[HASHREF]>)
-
-Queries or adds to the internal table of already encountered references.
-You must use C<Reset> to explicitly clear the table if needed. Such
-references are not dumped; instead, their names are inserted wherever they
-are encountered subsequently. This is useful especially for properly
-dumping subroutine references.
-
-Expects an anonymous hash of name => value pairs. Same rules apply for names
-as in C<new>. If no argument is supplied, will return the "seen" list of
-name => value pairs, in a list context. Otherwise, returns the object
-itself.
-
-=item I<$OBJ>->Values(I<[ARRAYREF]>)
-
-Queries or replaces the internal array of values that will be dumped.
-When called without arguments, returns the values. Otherwise, returns the
-object itself.
-
-=item I<$OBJ>->Names(I<[ARRAYREF]>)
-
-Queries or replaces the internal array of user supplied names for the values
-that will be dumped. When called without arguments, returns the names.
-Otherwise, returns the object itself.
-
-=item I<$OBJ>->Reset
-
-Clears the internal table of "seen" references and returns the object
-itself.
-
-=back
-
-=head2 Functions
-
-=over 4
-
-=item Dumper(I<LIST>)
-
-Returns the stringified form of the values in the list, subject to the
-configuration options below. The values will be named C<$VAR>I<n> in the
-output, where I<n> is a numeric suffix. Will return a list of strings
-in a list context.
-
-=back
-
-=head2 Configuration Variables or Methods
-
-Several configuration variables can be used to control the kind of output
-generated when using the procedural interface. These variables are usually
-C<local>ized in a block so that other parts of the code are not affected by
-the change.
-
-These variables determine the default state of the object created by calling
-the C<new> method, but cannot be used to alter the state of the object
-thereafter. The equivalent method names should be used instead to query
-or set the internal state of the object.
-
-The method forms return the object itself when called with arguments,
-so that they can be chained together nicely.
-
-=over 4
-
-=item $Data::Dumper::Indent I<or> I<$OBJ>->Indent(I<[NEWVAL]>)
-
-Controls the style of indentation. It can be set to 0, 1, 2 or 3. Style 0
-spews output without any newlines, indentation, or spaces between list
-items. It is the most compact format possible that can still be called
-valid perl. Style 1 outputs a readable form with newlines but no fancy
-indentation (each level in the structure is simply indented by a fixed
-amount of whitespace). Style 2 (the default) outputs a very readable form
-which takes into account the length of hash keys (so the hash value lines
-up). Style 3 is like style 2, but also annotates the elements of arrays
-with their index (but the comment is on its own line, so array output
-consumes twice the number of lines). Style 2 is the default.
-
-=item $Data::Dumper::Purity I<or> I<$OBJ>->Purity(I<[NEWVAL]>)
-
-Controls the degree to which the output can be C<eval>ed to recreate the
-supplied reference structures. Setting it to 1 will output additional perl
-statements that will correctly recreate nested references. The default is
-0.
-
-=item $Data::Dumper::Pad I<or> I<$OBJ>->Pad(I<[NEWVAL]>)
-
-Specifies the string that will be prefixed to every line of the output.
-Empty string by default.
-
-=item $Data::Dumper::Varname I<or> I<$OBJ>->Varname(I<[NEWVAL]>)
-
-Contains the prefix to use for tagging variable names in the output. The
-default is "VAR".
-
-=item $Data::Dumper::Useqq I<or> I<$OBJ>->Useqq(I<[NEWVAL]>)
-
-When set, enables the use of double quotes for representing string values.
-Whitespace other than space will be represented as C<[\n\t\r]>, "unsafe"
-characters will be backslashed, and unprintable characters will be output as
-quoted octal integers. Since setting this variable imposes a performance
-penalty, the default is 0. C<Dump()> will run slower if this flag is set,
-since the fast XSUB implementation doesn't support it yet.
-
-=item $Data::Dumper::Terse I<or> I<$OBJ>->Terse(I<[NEWVAL]>)
-
-When set, Data::Dumper will emit single, non-self-referential values as
-atoms/terms rather than statements. This means that the C<$VAR>I<n> names
-will be avoided where possible, but be advised that such output may not
-always be parseable by C<eval>.
-
-=item $Data::Dumper::Freezer I<or> $I<OBJ>->Freezer(I<[NEWVAL]>)
-
-Can be set to a method name, or to an empty string to disable the feature.
-Data::Dumper will invoke that method via the object before attempting to
-stringify it. This method can alter the contents of the object (if, for
-instance, it contains data allocated from C), and even rebless it in a
-different package. The client is responsible for making sure the specified
-method can be called via the object, and that the object ends up containing
-only perl data types after the method has been called. Defaults to an empty
-string.
-
-=item $Data::Dumper::Toaster I<or> $I<OBJ>->Toaster(I<[NEWVAL]>)
-
-Can be set to a method name, or to an empty string to disable the feature.
-Data::Dumper will emit a method call for any objects that are to be dumped
-using the syntax C<bless(DATA, CLASS)-E<gt>METHOD()>. Note that this means that
-the method specified will have to perform any modifications required on the
-object (like creating new state within it, and/or reblessing it in a
-different package) and then return it. The client is responsible for making
-sure the method can be called via the object, and that it returns a valid
-object. Defaults to an empty string.
-
-=item $Data::Dumper::Deepcopy I<or> $I<OBJ>->Deepcopy(I<[NEWVAL]>)
-
-Can be set to a boolean value to enable deep copies of structures.
-Cross-referencing will then only be done when absolutely essential
-(i.e., to break reference cycles). Default is 0.
-
-=item $Data::Dumper::Quotekeys I<or> $I<OBJ>->Quotekeys(I<[NEWVAL]>)
-
-Can be set to a boolean value to control whether hash keys are quoted.
-A false value will avoid quoting hash keys when it looks like a simple
-string. Default is 1, which will always enclose hash keys in quotes.
-
-=item $Data::Dumper::Bless I<or> $I<OBJ>->Bless(I<[NEWVAL]>)
-
-Can be set to a string that specifies an alternative to the C<bless>
-builtin operator used to create objects. A function with the specified
-name should exist, and should accept the same arguments as the builtin.
-Default is C<bless>.
-
-=item $Data::Dumper::Maxdepth I<or> $I<OBJ>->Maxdepth(I<[NEWVAL]>)
-
-Can be set to a positive integer that specifies the depth beyond which
-which we don't venture into a structure. Has no effect when
-C<Data::Dumper::Purity> is set. (Useful in debugger when we often don't
-want to see more than enough). Default is 0, which means there is
-no maximum depth.
-
-=item $Data::Dumper::Useperl I<or> $I<OBJ>->Useperl(I<[NEWVAL]>)
-
-Can be set to a boolean value which controls whether the pure Perl
-implementation of C<Data::Dumper> is used. The C<Data::Dumper> module is
-a dual implementation, with almost all functionality written in both
-pure Perl and also in XS ('C'). Since the XS version is much faster, it
-will always be used if possible. This option lets you override the
-default behavior, usually for testing purposes only. Default is 0, which
-means the XS implementation will be used if possible.
-
-=item $Data::Dumper::Sortkeys I<or> $I<OBJ>->Sortkeys(I<[NEWVAL]>)
-
-Can be set to a boolean value to control whether hash keys are dumped in
-sorted order. A true value will cause the keys of all hashes to be
-dumped in Perl's default sort order. Can also be set to a subroutine
-reference which will be called for each hash that is dumped. In this
-case C<Data::Dumper> will call the subroutine once for each hash,
-passing it the reference of the hash. The purpose of the subroutine is
-to return a reference to an array of the keys that will be dumped, in
-the order that they should be dumped. Using this feature, you can
-control both the order of the keys, and which keys are actually used. In
-other words, this subroutine acts as a filter by which you can exclude
-certain keys from being dumped. Default is 0, which means that hash keys
-are not sorted.
-
-=item $Data::Dumper::Deparse I<or> $I<OBJ>->Deparse(I<[NEWVAL]>)
-
-Can be set to a boolean value to control whether code references are
-turned into perl source code. If set to a true value, C<B::Deparse>
-will be used to get the source of the code reference. Using this option
-will force using the Perl implementation of the dumper, since the fast
-XSUB implementation doesn't support it.
-
-Caution : use this option only if you know that your coderefs will be
-properly reconstructed by C<B::Deparse>.
-
-=back
-
-=head2 Exports
-
-=over 4
-
-=item Dumper
-
-=back
-
-=head1 EXAMPLES
-
-Run these code snippets to get a quick feel for the behavior of this
-module. When you are through with these examples, you may want to
-add or change the various configuration variables described above,
-to see their behavior. (See the testsuite in the Data::Dumper
-distribution for more examples.)
-
-
- use Data::Dumper;
-
- package Foo;
- sub new {bless {'a' => 1, 'b' => sub { return "foo" }}, $_[0]};
-
- package Fuz; # a weird REF-REF-SCALAR object
- sub new {bless \($_ = \ 'fu\'z'), $_[0]};
-
- package main;
- $foo = Foo->new;
- $fuz = Fuz->new;
- $boo = [ 1, [], "abcd", \*foo,
- {1 => 'a', 023 => 'b', 0x45 => 'c'},
- \\"p\q\'r", $foo, $fuz];
-
- ########
- # simple usage
- ########
-
- $bar = eval(Dumper($boo));
- print($@) if $@;
- print Dumper($boo), Dumper($bar); # pretty print (no array indices)
-
- $Data::Dumper::Terse = 1; # don't output names where feasible
- $Data::Dumper::Indent = 0; # turn off all pretty print
- print Dumper($boo), "\n";
-
- $Data::Dumper::Indent = 1; # mild pretty print
- print Dumper($boo);
-
- $Data::Dumper::Indent = 3; # pretty print with array indices
- print Dumper($boo);
-
- $Data::Dumper::Useqq = 1; # print strings in double quotes
- print Dumper($boo);
-
-
- ########
- # recursive structures
- ########
-
- @c = ('c');
- $c = \@c;
- $b = {};
- $a = [1, $b, $c];
- $b->{a} = $a;
- $b->{b} = $a->[1];
- $b->{c} = $a->[2];
- print Data::Dumper->Dump([$a,$b,$c], [qw(a b c)]);
-
-
- $Data::Dumper::Purity = 1; # fill in the holes for eval
- print Data::Dumper->Dump([$a, $b], [qw(*a b)]); # print as @a
- print Data::Dumper->Dump([$b, $a], [qw(*b a)]); # print as %b
-
-
- $Data::Dumper::Deepcopy = 1; # avoid cross-refs
- print Data::Dumper->Dump([$b, $a], [qw(*b a)]);
-
-
- $Data::Dumper::Purity = 0; # avoid cross-refs
- print Data::Dumper->Dump([$b, $a], [qw(*b a)]);
-
- ########
- # deep structures
- ########
-
- $a = "pearl";
- $b = [ $a ];
- $c = { 'b' => $b };
- $d = [ $c ];
- $e = { 'd' => $d };
- $f = { 'e' => $e };
- print Data::Dumper->Dump([$f], [qw(f)]);
-
- $Data::Dumper::Maxdepth = 3; # no deeper than 3 refs down
- print Data::Dumper->Dump([$f], [qw(f)]);
-
-
- ########
- # object-oriented usage
- ########
-
- $d = Data::Dumper->new([$a,$b], [qw(a b)]);
- $d->Seen({'*c' => $c}); # stash a ref without printing it
- $d->Indent(3);
- print $d->Dump;
- $d->Reset->Purity(0); # empty the seen cache
- print join "----\n", $d->Dump;
-
-
- ########
- # persistence
- ########
-
- package Foo;
- sub new { bless { state => 'awake' }, shift }
- sub Freeze {
- my $s = shift;
- print STDERR "preparing to sleep\n";
- $s->{state} = 'asleep';
- return bless $s, 'Foo::ZZZ';
- }
-
- package Foo::ZZZ;
- sub Thaw {
- my $s = shift;
- print STDERR "waking up\n";
- $s->{state} = 'awake';
- return bless $s, 'Foo';
- }
-
- package Foo;
- use Data::Dumper;
- $a = Foo->new;
- $b = Data::Dumper->new([$a], ['c']);
- $b->Freezer('Freeze');
- $b->Toaster('Thaw');
- $c = $b->Dump;
- print $c;
- $d = eval $c;
- print Data::Dumper->Dump([$d], ['d']);
-
-
- ########
- # symbol substitution (useful for recreating CODE refs)
- ########
-
- sub foo { print "foo speaking\n" }
- *other = \&foo;
- $bar = [ \&other ];
- $d = Data::Dumper->new([\&other,$bar],['*other','bar']);
- $d->Seen({ '*foo' => \&foo });
- print $d->Dump;
-
-
- ########
- # sorting and filtering hash keys
- ########
-
- $Data::Dumper::Sortkeys = \&my_filter;
- my $foo = { map { (ord, "$_$_$_") } 'I'..'Q' };
- my $bar = { %$foo };
- my $baz = { reverse %$foo };
- print Dumper [ $foo, $bar, $baz ];
-
- sub my_filter {
- my ($hash) = @_;
- # return an array ref containing the hash keys to dump
- # in the order that you want them to be dumped
- return [
- # Sort the keys of %$foo in reverse numeric order
- $hash eq $foo ? (sort {$b <=> $a} keys %$hash) :
- # Only dump the odd number keys of %$bar
- $hash eq $bar ? (grep {$_ % 2} keys %$hash) :
- # Sort keys in default order for all other hashes
- (sort keys %$hash)
- ];
- }
-
-=head1 BUGS
-
-Due to limitations of Perl subroutine call semantics, you cannot pass an
-array or hash. Prepend it with a C<\> to pass its reference instead. This
-will be remedied in time, now that Perl has subroutine prototypes.
-For now, you need to use the extended usage form, and prepend the
-name with a C<*> to output it as a hash or array.
-
-C<Data::Dumper> cheats with CODE references. If a code reference is
-encountered in the structure being processed (and if you haven't set
-the C<Deparse> flag), an anonymous subroutine that
-contains the string '"DUMMY"' will be inserted in its place, and a warning
-will be printed if C<Purity> is set. You can C<eval> the result, but bear
-in mind that the anonymous sub that gets created is just a placeholder.
-Someday, perl will have a switch to cache-on-demand the string
-representation of a compiled piece of code, I hope. If you have prior
-knowledge of all the code refs that your data structures are likely
-to have, you can use the C<Seen> method to pre-seed the internal reference
-table and make the dumped output point to them, instead. See L<EXAMPLES>
-above.
-
-The C<Useqq> and C<Deparse> flags makes Dump() run slower, since the
-XSUB implementation does not support them.
-
-SCALAR objects have the weirdest looking C<bless> workaround.
-
-
-=head1 AUTHOR
-
-Gurusamy Sarathy gsar@activestate.com
-
-Copyright (c) 1996-98 Gurusamy Sarathy. All rights reserved.
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-=head1 VERSION
-
-Version 2.12 (unreleased)
-
-=head1 SEE ALSO
-
-perl(1)
-
-=cut
diff --git a/Master/xemtex/perl/lib/Digest/MD5.pm b/Master/xemtex/perl/lib/Digest/MD5.pm
deleted file mode 100644
index 372e007cb70..00000000000
--- a/Master/xemtex/perl/lib/Digest/MD5.pm
+++ /dev/null
@@ -1,279 +0,0 @@
-package Digest::MD5;
-
-use strict;
-use vars qw($VERSION @ISA @EXPORT_OK);
-
-$VERSION = '2.20'; # $Date: 2002/05/06 05:15:09 $
-
-require Exporter;
-*import = \&Exporter::import;
-@EXPORT_OK = qw(md5 md5_hex md5_base64);
-
-require DynaLoader;
-@ISA=qw(DynaLoader);
-
-eval {
- Digest::MD5->bootstrap($VERSION);
-};
-if ($@) {
- my $olderr = $@;
- eval {
- # Try to load the pure perl version
- require Digest::Perl::MD5;
-
- Digest::Perl::MD5->import(qw(md5 md5_hex md5_base64));
- push(@ISA, "Digest::Perl::MD5"); # make OO interface work
- };
- if ($@) {
- # restore the original error
- die $olderr;
- }
-}
-else {
- *reset = \&new;
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Digest::MD5 - Perl interface to the MD5 Algorithm
-
-=head1 SYNOPSIS
-
- # Functional style
- use Digest::MD5 qw(md5 md5_hex md5_base64);
-
- $digest = md5($data);
- $digest = md5_hex($data);
- $digest = md5_base64($data);
-
- # OO style
- use Digest::MD5;
-
- $ctx = Digest::MD5->new;
-
- $ctx->add($data);
- $ctx->addfile(*FILE);
-
- $digest = $ctx->digest;
- $digest = $ctx->hexdigest;
- $digest = $ctx->b64digest;
-
-=head1 DESCRIPTION
-
-The C<Digest::MD5> module allows you to use the RSA Data Security
-Inc. MD5 Message Digest algorithm from within Perl programs. The
-algorithm takes as input a message of arbitrary length and produces as
-output a 128-bit "fingerprint" or "message digest" of the input.
-
-The C<Digest::MD5> module provide a procedural interface for simple
-use, as well as an object oriented interface that can handle messages
-of arbitrary length and which can read files directly.
-
-A binary digest will be 16 bytes long. A hex digest will be 32
-characters long. A base64 digest will be 22 characters long.
-
-=head1 FUNCTIONS
-
-The following functions can be exported from the C<Digest::MD5>
-module. No functions are exported by default.
-
-=over 4
-
-=item md5($data,...)
-
-This function will concatenate all arguments, calculate the MD5 digest
-of this "message", and return it in binary form.
-
-=item md5_hex($data,...)
-
-Same as md5(), but will return the digest in hexadecimal form.
-
-=item md5_base64($data,...)
-
-Same as md5(), but will return the digest as a base64 encoded string.
-
-The base64 encoded string returned is not padded to be a multiple of 4
-bytes long. If you want interoperability with other base64 encoded
-md5 digests you might want to append the string "==" to the result.
-
-=back
-
-=head1 METHODS
-
-The following methods are available:
-
-=over 4
-
-=item $md5 = Digest::MD5->new
-
-The constructor returns a new C<Digest::MD5> object which encapsulate
-the state of the MD5 message-digest algorithm. You can add data to
-the object and finally ask for the digest.
-
-If called as an instance method (i.e. $md5->new) it will just reset the
-state the object to the state of a newly created object. No new
-object is created in this case.
-
-=item $md5->reset
-
-This is just an alias for $md5->new.
-
-=item $md5->add($data,...)
-
-The $data provided as argument are appended to the message we
-calculate the digest for. The return value is the $md5 object itself.
-
-=item $md5->addfile($io_handle)
-
-The $io_handle is read until EOF and the content is appended to the
-message we calculate the digest for. The return value is the $md5
-object itself.
-
-In most cases you want to make sure that the $io_handle is set up to
-be in binmode().
-
-=item $md5->digest
-
-Return the binary digest for the message.
-
-Note that the C<digest> operation is effectively a destructive,
-read-once operation. Once it has been performed, the C<Digest::MD5>
-object is automatically C<reset> and can be used to calculate another
-digest value.
-
-=item $md5->hexdigest
-
-Same as $md5->digest, but will return the digest in hexadecimal form.
-
-=item $md5->b64digest
-
-Same as $md5->digest, but will return the digest as a base64 encoded
-string.
-
-The base64 encoded string returned is not padded to be a multiple of 4
-bytes long. If you want interoperability with other base64 encoded
-md5 digests you might want to append the string "==" to the result.
-
-=back
-
-
-=head1 EXAMPLES
-
-The simplest way to use this library is to import the md5_hex()
-function (or one of its cousins):
-
- use Digest::MD5 qw(md5_hex);
- print "Digest is ", md5_hex("foobarbaz"), "\n";
-
-The above example would print out the message
-
- Digest is 6df23dc03f9b54cc38a0fc1483df6e21
-
-provided that the implementation is working correctly. The same
-checksum can also be calculated in OO style:
-
- use Digest::MD5;
-
- $md5 = Digest::MD5->new;
- $md5->add('foo', 'bar');
- $md5->add('baz');
- $digest = $md5->hexdigest;
-
- print "Digest is $digest\n";
-
-With OO style you can break the message arbitrary. This means that we
-are no longer limited to have space for the whole message in memory, i.e.
-we can handle messages of any size.
-
-This is useful when calculating checksum for files:
-
- use Digest::MD5;
-
- my $file = shift || "/etc/passwd";
- open(FILE, $file) or die "Can't open '$file': $!";
- binmode(FILE);
-
- $md5 = Digest::MD5->new;
- while (<FILE>) {
- $md5->add($_);
- }
- close(FILE);
- print $md5->b64digest, " $file\n";
-
-Or we can use the builtin addfile method for more efficient reading of
-the file:
-
- use Digest::MD5;
-
- my $file = shift || "/etc/passwd";
- open(FILE, $file) or die "Can't open '$file': $!";
- binmode(FILE);
-
- print Digest::MD5->new->addfile(*FILE)->hexdigest, " $file\n";
-
-=head1 SEE ALSO
-
-L<Digest>,
-L<Digest::MD2>,
-L<Digest::SHA1>,
-L<Digest::HMAC>
-
-L<md5sum(1)>
-
-RFC 1321
-
-=head1 COPYRIGHT
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
- Copyright 1998-2002 Gisle Aas.
- Copyright 1995-1996 Neil Winton.
- Copyright 1991-1992 RSA Data Security, Inc.
-
-The MD5 algorithm is defined in RFC 1321. The basic C code
-implementing the algorithm is derived from that in the RFC and is
-covered by the following copyright:
-
-=over 4
-
-=item
-
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-
-=back
-
-This copyright does not prohibit distribution of any version of Perl
-containing this extension under the terms of the GNU or Artistic
-licenses.
-
-=head1 AUTHORS
-
-The original MD5 interface was written by Neil Winton
-(C<N.Winton@axion.bt.co.uk>).
-
-This release was made by Gisle Aas <gisle@ActiveState.com>
-
-=cut
diff --git a/Master/xemtex/perl/lib/DynaLoader.pm b/Master/xemtex/perl/lib/DynaLoader.pm
deleted file mode 100644
index da7923e2bc2..00000000000
--- a/Master/xemtex/perl/lib/DynaLoader.pm
+++ /dev/null
@@ -1,826 +0,0 @@
-
-# Generated from DynaLoader.pm.PL
-
-package DynaLoader;
-
-# And Gandalf said: 'Many folk like to know beforehand what is to
-# be set on the table; but those who have laboured to prepare the
-# feast like to keep their secret; for wonder makes the words of
-# praise louder.'
-
-# (Quote from Tolkien suggested by Anno Siegel.)
-#
-# See pod text at end of file for documentation.
-# See also ext/DynaLoader/README in source tree for other information.
-#
-# Tim.Bunce@ig.co.uk, August 1994
-
-use vars qw($VERSION *AUTOLOAD);
-
-$VERSION = 1.04; # avoid typo warning
-
-require AutoLoader;
-*AUTOLOAD = \&AutoLoader::AUTOLOAD;
-
-use Config;
-
-# The following require can't be removed during maintenance
-# releases, sadly, because of the risk of buggy code that does
-# require Carp; Carp::croak "..."; without brackets dying
-# if Carp hasn't been loaded in earlier compile time. :-(
-# We'll let those bugs get found on the development track.
-require Carp if $] < 5.00450;
-
-# enable debug/trace messages from DynaLoader perl code
-$dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug;
-
-#
-# Flags to alter dl_load_file behaviour. Assigned bits:
-# 0x01 make symbols available for linking later dl_load_file's.
-# (only known to work on Solaris 2 using dlopen(RTLD_GLOBAL))
-# (ignored under VMS; effect is built-in to image linking)
-#
-# This is called as a class method $module->dl_load_flags. The
-# definition here will be inherited and result on "default" loading
-# behaviour unless a sub-class of DynaLoader defines its own version.
-#
-
-sub dl_load_flags { 0x00 }
-
-# ($dl_dlext, $dlsrc)
-# = @Config::Config{'dlext', 'dlsrc'};
- ($dl_dlext, $dlsrc) = ('dll','dl_win32.xs')
-;
-# Some systems need special handling to expand file specifications
-# (VMS support by Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>)
-# See dl_expandspec() for more details. Should be harmless but
-# inefficient to define on systems that don't need it.
-$Is_VMS = $^O eq 'VMS';
-$do_expand = $Is_VMS;
-$Is_MacOS = $^O eq 'MacOS';
-
-my $Mac_FS;
-$Mac_FS = eval { require Mac::FileSpec::Unixish } if $Is_MacOS;
-
-@dl_require_symbols = (); # names of symbols we need
-@dl_resolve_using = (); # names of files to link with
-@dl_library_path = (); # path to look for files
-
-#XSLoader.pm may have added elements before we were required
-#@dl_librefs = (); # things we have loaded
-#@dl_modules = (); # Modules we have loaded
-
-# This is a fix to support DLD's unfortunate desire to relink -lc
-@dl_resolve_using = dl_findfile('-lc') if $dlsrc eq "dl_dld.xs";
-
-# Initialise @dl_library_path with the 'standard' library path
-# for this platform as determined by Configure.
-
-push(@dl_library_path, split(' ', $Config::Config{libpth}));
-
-
-my $ldlibpthname = $Config::Config{ldlibpthname};
-my $ldlibpthname_defined = defined $Config::Config{ldlibpthname};
-my $pthsep = $Config::Config{path_sep};
-
-# Add to @dl_library_path any extra directories we can gather from environment
-# during runtime.
-
-if ($ldlibpthname_defined &&
- exists $ENV{$ldlibpthname}) {
- push(@dl_library_path, split(/$pthsep/, $ENV{$ldlibpthname}));
-}
-
-# E.g. HP-UX supports both its native SHLIB_PATH *and* LD_LIBRARY_PATH.
-
-if ($ldlibpthname_defined &&
- $ldlibpthname ne 'LD_LIBRARY_PATH' &&
- exists $ENV{LD_LIBRARY_PATH}) {
- push(@dl_library_path, split(/$pthsep/, $ENV{LD_LIBRARY_PATH}));
-}
-
-
-# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here.
-# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB
-boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) &&
- !defined(&dl_error);
-
-if ($dl_debug) {
- print STDERR "DynaLoader.pm loaded (@INC, @dl_library_path)\n";
- print STDERR "DynaLoader not linked into this perl\n"
- unless defined(&boot_DynaLoader);
-}
-
-1; # End of main code
-
-
-sub croak { require Carp; Carp::croak(@_) }
-
-sub bootstrap_inherit {
- my $module = $_[0];
- local *isa = *{"$module\::ISA"};
- local @isa = (@isa, 'DynaLoader');
- # Cannot goto due to delocalization. Will report errors on a wrong line?
- bootstrap(@_);
-}
-
-# The bootstrap function cannot be autoloaded (without complications)
-# so we define it here:
-
-sub bootstrap {
- # use local vars to enable $module.bs script to edit values
- local(@args) = @_;
- local($module) = $args[0];
- local(@dirs, $file);
-
- unless ($module) {
- require Carp;
- Carp::confess("Usage: DynaLoader::bootstrap(module)");
- }
-
- # A common error on platforms which don't support dynamic loading.
- # Since it's fatal and potentially confusing we give a detailed message.
- croak("Can't load module $module, dynamic loading not available in this perl.\n".
- " (You may need to build a new perl executable which either supports\n".
- " dynamic loading or has the $module module statically linked into it.)\n")
- unless defined(&dl_load_file);
-
- my @modparts = split(/::/,$module);
- my $modfname = $modparts[-1];
-
- # Some systems have restrictions on files names for DLL's etc.
- # mod2fname returns appropriate file base name (typically truncated)
- # It may also edit @modparts if required.
- $modfname = &mod2fname(\@modparts) if defined &mod2fname;
-
- # Truncate the module name to 8.3 format for NetWare
- if (($^O eq 'NetWare') && (length($modfname) > 8)) {
- $modfname = substr($modfname, 0, 8);
- }
-
- my $modpname = join(($Is_MacOS ? ':' : '/'),@modparts);
-
- print STDERR "DynaLoader::bootstrap for $module ",
- ($Is_MacOS
- ? "(:auto:$modpname:$modfname.$dl_dlext)\n" :
- "(auto/$modpname/$modfname.$dl_dlext)\n")
- if $dl_debug;
-
- foreach (@INC) {
- chop($_ = VMS::Filespec::unixpath($_)) if $Is_VMS;
- my $dir;
- if ($Is_MacOS) {
- my $path = $_;
- if ($Mac_FS && ! -d $path) {
- $path = Mac::FileSpec::Unixish::nativize($path);
- }
- $path .= ":" unless /:$/;
- $dir = "${path}auto:$modpname";
- } else {
- $dir = "$_/auto/$modpname";
- }
-
- next unless -d $dir; # skip over uninteresting directories
-
- # check for common cases to avoid autoload of dl_findfile
- my $try = $Is_MacOS ? "$dir:$modfname.$dl_dlext" : "$dir/$modfname.$dl_dlext";
- last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try);
-
- # no luck here, save dir for possible later dl_findfile search
- push @dirs, $dir;
- }
- # last resort, let dl_findfile have a go in all known locations
- $file = dl_findfile(map("-L$_",@dirs,@INC), $modfname) unless $file;
-
- croak("Can't locate loadable object for module $module in \@INC (\@INC contains: @INC)")
- unless $file; # wording similar to error from 'require'
-
- $file = uc($file) if $Is_VMS && $Config::Config{d_vms_case_sensitive_symbols};
- my $bootname = "boot_$module";
- $bootname =~ s/\W/_/g;
- @dl_require_symbols = ($bootname);
-
- # Execute optional '.bootstrap' perl script for this module.
- # The .bs file can be used to configure @dl_resolve_using etc to
- # match the needs of the individual module on this architecture.
- my $bs = $file;
- $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
- if (-s $bs) { # only read file if it's not empty
- print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
- eval { do $bs; };
- warn "$bs: $@\n" if $@;
- }
-
- my $boot_symbol_ref;
-
- if ($^O eq 'darwin') {
- if ($boot_symbol_ref = dl_find_symbol(0, $bootname)) {
- goto boot; #extension library has already been loaded, e.g. darwin
- }
- }
-
- # Many dynamic extension loading problems will appear to come from
- # this section of code: XYZ failed at line 123 of DynaLoader.pm.
- # Often these errors are actually occurring in the initialisation
- # C code of the extension XS file. Perl reports the error as being
- # in this perl code simply because this was the last perl code
- # it executed.
-
- my $libref = dl_load_file($file, $module->dl_load_flags) or
- croak("Can't load '$file' for module $module: ".dl_error());
-
- push(@dl_librefs,$libref); # record loaded object
-
- my @unresolved = dl_undef_symbols();
- if (@unresolved) {
- require Carp;
- Carp::carp("Undefined symbols present after loading $file: @unresolved\n");
- }
-
- $boot_symbol_ref = dl_find_symbol($libref, $bootname) or
- croak("Can't find '$bootname' symbol in $file\n");
-
- push(@dl_modules, $module); # record loaded module
-
- boot:
- my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file);
-
- # See comment block above
- &$xs(@args);
-}
-
-
-#sub _check_file { # private utility to handle dl_expandspec vs -f tests
-# my($file) = @_;
-# return $file if (!$do_expand && -f $file); # the common case
-# return $file if ( $do_expand && ($file=dl_expandspec($file)));
-# return undef;
-#}
-
-
-# Let autosplit and the autoloader deal with these functions:
-__END__
-
-
-sub dl_findfile {
- # Read ext/DynaLoader/DynaLoader.doc for detailed information.
- # This function does not automatically consider the architecture
- # or the perl library auto directories.
- my (@args) = @_;
- my (@dirs, $dir); # which directories to search
- my (@found); # full paths to real files we have found
- my $dl_ext= 'dll'; # $Config::Config{'dlext'} suffix for perl extensions
- my $dl_so = 'dll'; # $Config::Config{'so'} suffix for shared libraries
-
- print STDERR "dl_findfile(@args)\n" if $dl_debug;
-
- # accumulate directories but process files as they appear
- arg: foreach(@args) {
- # Special fast case: full filepath requires no search
- if ($Is_VMS && m%[:>/\]]% && -f $_) {
- push(@found,dl_expandspec(VMS::Filespec::vmsify($_)));
- last arg unless wantarray;
- next;
- }
- elsif ($Is_MacOS) {
- if (m/:/ && -f $_) {
- push(@found,$_);
- last arg unless wantarray;
- }
- }
- elsif (m:/: && -f $_ && !$do_expand) {
- push(@found,$_);
- last arg unless wantarray;
- next;
- }
-
- # Deal with directories first:
- # Using a -L prefix is the preferred option (faster and more robust)
- if (m:^-L:) { s/^-L//; push(@dirs, $_); next; }
-
- if ($Is_MacOS) {
- # Otherwise we try to try to spot directories by a heuristic
- # (this is a more complicated issue than it first appears)
- if (m/:/ && -d $_) { push(@dirs, $_); next; }
- # Only files should get this far...
- my(@names, $name); # what filenames to look for
- s/^-l//;
- push(@names, $_);
- foreach $dir (@dirs, @dl_library_path) {
- next unless -d $dir;
- $dir =~ s/^([^:]+)$/:$1/;
- $dir =~ s/:$//;
- foreach $name (@names) {
- my($file) = "$dir:$name";
- print STDERR " checking in $dir for $name\n" if $dl_debug;
- if (-f $file) {
- push(@found, $file);
- next arg; # no need to look any further
- }
- }
- }
- next;
- }
-
- # Otherwise we try to try to spot directories by a heuristic
- # (this is a more complicated issue than it first appears)
- if (m:/: && -d $_) { push(@dirs, $_); next; }
-
- # VMS: we may be using native VMS directory syntax instead of
- # Unix emulation, so check this as well
- if ($Is_VMS && /[:>\]]/ && -d $_) { push(@dirs, $_); next; }
-
- # Only files should get this far...
- my(@names, $name); # what filenames to look for
- if (m:-l: ) { # convert -lname to appropriate library name
- s/-l//;
- push(@names,"lib$_.$dl_so");
- push(@names,"lib$_.a");
- } else { # Umm, a bare name. Try various alternatives:
- # these should be ordered with the most likely first
- push(@names,"$_.$dl_ext") unless m/\.$dl_ext$/o;
- push(@names,"$_.$dl_so") unless m/\.$dl_so$/o;
- push(@names,"lib$_.$dl_so") unless m:/:;
- push(@names,"$_.a") if !m/\.a$/ and $dlsrc eq "dl_dld.xs";
- push(@names, $_);
- }
- foreach $dir (@dirs, @dl_library_path) {
- next unless -d $dir;
- chop($dir = VMS::Filespec::unixpath($dir)) if $Is_VMS;
- foreach $name (@names) {
- my($file) = "$dir/$name";
- print STDERR " checking in $dir for $name\n" if $dl_debug;
- $file = ($do_expand) ? dl_expandspec($file) : (-f $file && $file);
- #$file = _check_file($file);
- if ($file) {
- push(@found, $file);
- next arg; # no need to look any further
- }
- }
- }
- }
- if ($dl_debug) {
- foreach(@dirs) {
- print STDERR " dl_findfile ignored non-existent directory: $_\n" unless -d $_;
- }
- print STDERR "dl_findfile found: @found\n";
- }
- return $found[0] unless wantarray;
- @found;
-}
-
-
-sub dl_expandspec {
- my($spec) = @_;
- # Optional function invoked if DynaLoader.pm sets $do_expand.
- # Most systems do not require or use this function.
- # Some systems may implement it in the dl_*.xs file in which case
- # this autoload version will not be called but is harmless.
-
- # This function is designed to deal with systems which treat some
- # 'filenames' in a special way. For example VMS 'Logical Names'
- # (something like unix environment variables - but different).
- # This function should recognise such names and expand them into
- # full file paths.
- # Must return undef if $spec is invalid or file does not exist.
-
- my $file = $spec; # default output to input
-
- if ($Is_VMS) { # dl_expandspec should be defined in dl_vms.xs
- require Carp;
- Carp::croak("dl_expandspec: should be defined in XS file!\n");
- } else {
- return undef unless -f $file;
- }
- print STDERR "dl_expandspec($spec) => $file\n" if $dl_debug;
- $file;
-}
-
-sub dl_find_symbol_anywhere
-{
- my $sym = shift;
- my $libref;
- foreach $libref (@dl_librefs) {
- my $symref = dl_find_symbol($libref,$sym);
- return $symref if $symref;
- }
- return undef;
-}
-
-=head1 NAME
-
-DynaLoader - Dynamically load C libraries into Perl code
-
-dl_error(), dl_findfile(), dl_expandspec(), dl_load_file(), dl_unload_file(), dl_find_symbol(), dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(), dl_load_flags(), bootstrap() - routines used by DynaLoader modules
-
-=head1 SYNOPSIS
-
- package YourPackage;
- require DynaLoader;
- @ISA = qw(... DynaLoader ...);
- bootstrap YourPackage;
-
- # optional method for 'global' loading
- sub dl_load_flags { 0x01 }
-
-
-=head1 DESCRIPTION
-
-This document defines a standard generic interface to the dynamic
-linking mechanisms available on many platforms. Its primary purpose is
-to implement automatic dynamic loading of Perl modules.
-
-This document serves as both a specification for anyone wishing to
-implement the DynaLoader for a new platform and as a guide for
-anyone wishing to use the DynaLoader directly in an application.
-
-The DynaLoader is designed to be a very simple high-level
-interface that is sufficiently general to cover the requirements
-of SunOS, HP-UX, NeXT, Linux, VMS and other platforms.
-
-It is also hoped that the interface will cover the needs of OS/2, NT
-etc and also allow pseudo-dynamic linking (using C<ld -A> at runtime).
-
-It must be stressed that the DynaLoader, by itself, is practically
-useless for accessing non-Perl libraries because it provides almost no
-Perl-to-C 'glue'. There is, for example, no mechanism for calling a C
-library function or supplying arguments. A C::DynaLib module
-is available from CPAN sites which performs that function for some
-common system types. And since the year 2000, there's also Inline::C,
-a module that allows you to write Perl subroutines in C. Also available
-from your local CPAN site.
-
-DynaLoader Interface Summary
-
- @dl_library_path
- @dl_resolve_using
- @dl_require_symbols
- $dl_debug
- @dl_librefs
- @dl_modules
- Implemented in:
- bootstrap($modulename) Perl
- @filepaths = dl_findfile(@names) Perl
- $flags = $modulename->dl_load_flags Perl
- $symref = dl_find_symbol_anywhere($symbol) Perl
-
- $libref = dl_load_file($filename, $flags) C
- $status = dl_unload_file($libref) C
- $symref = dl_find_symbol($libref, $symbol) C
- @symbols = dl_undef_symbols() C
- dl_install_xsub($name, $symref [, $filename]) C
- $message = dl_error C
-
-=over 4
-
-=item @dl_library_path
-
-The standard/default list of directories in which dl_findfile() will
-search for libraries etc. Directories are searched in order:
-$dl_library_path[0], [1], ... etc
-
-@dl_library_path is initialised to hold the list of 'normal' directories
-(F</usr/lib>, etc) determined by B<Configure> (C<$Config{'libpth'}>). This should
-ensure portability across a wide range of platforms.
-
-@dl_library_path should also be initialised with any other directories
-that can be determined from the environment at runtime (such as
-LD_LIBRARY_PATH for SunOS).
-
-After initialisation @dl_library_path can be manipulated by an
-application using push and unshift before calling dl_findfile().
-Unshift can be used to add directories to the front of the search order
-either to save search time or to override libraries with the same name
-in the 'normal' directories.
-
-The load function that dl_load_file() calls may require an absolute
-pathname. The dl_findfile() function and @dl_library_path can be
-used to search for and return the absolute pathname for the
-library/object that you wish to load.
-
-=item @dl_resolve_using
-
-A list of additional libraries or other shared objects which can be
-used to resolve any undefined symbols that might be generated by a
-later call to load_file().
-
-This is only required on some platforms which do not handle dependent
-libraries automatically. For example the Socket Perl extension
-library (F<auto/Socket/Socket.so>) contains references to many socket
-functions which need to be resolved when it's loaded. Most platforms
-will automatically know where to find the 'dependent' library (e.g.,
-F</usr/lib/libsocket.so>). A few platforms need to be told the
-location of the dependent library explicitly. Use @dl_resolve_using
-for this.
-
-Example usage:
-
- @dl_resolve_using = dl_findfile('-lsocket');
-
-=item @dl_require_symbols
-
-A list of one or more symbol names that are in the library/object file
-to be dynamically loaded. This is only required on some platforms.
-
-=item @dl_librefs
-
-An array of the handles returned by successful calls to dl_load_file(),
-made by bootstrap, in the order in which they were loaded.
-Can be used with dl_find_symbol() to look for a symbol in any of
-the loaded files.
-
-=item @dl_modules
-
-An array of module (package) names that have been bootstrap'ed.
-
-=item dl_error()
-
-Syntax:
-
- $message = dl_error();
-
-Error message text from the last failed DynaLoader function. Note
-that, similar to errno in unix, a successful function call does not
-reset this message.
-
-Implementations should detect the error as soon as it occurs in any of
-the other functions and save the corresponding message for later
-retrieval. This will avoid problems on some platforms (such as SunOS)
-where the error message is very temporary (e.g., dlerror()).
-
-=item $dl_debug
-
-Internal debugging messages are enabled when $dl_debug is set true.
-Currently setting $dl_debug only affects the Perl side of the
-DynaLoader. These messages should help an application developer to
-resolve any DynaLoader usage problems.
-
-$dl_debug is set to C<$ENV{'PERL_DL_DEBUG'}> if defined.
-
-For the DynaLoader developer/porter there is a similar debugging
-variable added to the C code (see dlutils.c) and enabled if Perl was
-built with the B<-DDEBUGGING> flag. This can also be set via the
-PERL_DL_DEBUG environment variable. Set to 1 for minimal information or
-higher for more.
-
-=item dl_findfile()
-
-Syntax:
-
- @filepaths = dl_findfile(@names)
-
-Determine the full paths (including file suffix) of one or more
-loadable files given their generic names and optionally one or more
-directories. Searches directories in @dl_library_path by default and
-returns an empty list if no files were found.
-
-Names can be specified in a variety of platform independent forms. Any
-names in the form B<-lname> are converted into F<libname.*>, where F<.*> is
-an appropriate suffix for the platform.
-
-If a name does not already have a suitable prefix and/or suffix then
-the corresponding file will be searched for by trying combinations of
-prefix and suffix appropriate to the platform: "$name.o", "lib$name.*"
-and "$name".
-
-If any directories are included in @names they are searched before
-@dl_library_path. Directories may be specified as B<-Ldir>. Any other
-names are treated as filenames to be searched for.
-
-Using arguments of the form C<-Ldir> and C<-lname> is recommended.
-
-Example:
-
- @dl_resolve_using = dl_findfile(qw(-L/usr/5lib -lposix));
-
-
-=item dl_expandspec()
-
-Syntax:
-
- $filepath = dl_expandspec($spec)
-
-Some unusual systems, such as VMS, require special filename handling in
-order to deal with symbolic names for files (i.e., VMS's Logical Names).
-
-To support these systems a dl_expandspec() function can be implemented
-either in the F<dl_*.xs> file or code can be added to the autoloadable
-dl_expandspec() function in F<DynaLoader.pm>. See F<DynaLoader.pm> for
-more information.
-
-=item dl_load_file()
-
-Syntax:
-
- $libref = dl_load_file($filename, $flags)
-
-Dynamically load $filename, which must be the path to a shared object
-or library. An opaque 'library reference' is returned as a handle for
-the loaded object. Returns undef on error.
-
-The $flags argument to alters dl_load_file behaviour.
-Assigned bits:
-
- 0x01 make symbols available for linking later dl_load_file's.
- (only known to work on Solaris 2 using dlopen(RTLD_GLOBAL))
- (ignored under VMS; this is a normal part of image linking)
-
-(On systems that provide a handle for the loaded object such as SunOS
-and HPUX, $libref will be that handle. On other systems $libref will
-typically be $filename or a pointer to a buffer containing $filename.
-The application should not examine or alter $libref in any way.)
-
-This is the function that does the real work. It should use the
-current values of @dl_require_symbols and @dl_resolve_using if required.
-
- SunOS: dlopen($filename)
- HP-UX: shl_load($filename)
- Linux: dld_create_reference(@dl_require_symbols); dld_link($filename)
- NeXT: rld_load($filename, @dl_resolve_using)
- VMS: lib$find_image_symbol($filename,$dl_require_symbols[0])
-
-(The dlopen() function is also used by Solaris and some versions of
-Linux, and is a common choice when providing a "wrapper" on other
-mechanisms as is done in the OS/2 port.)
-
-=item dl_unload_file()
-
-Syntax:
-
- $status = dl_unload_file($libref)
-
-Dynamically unload $libref, which must be an opaque 'library reference' as
-returned from dl_load_file. Returns one on success and zero on failure.
-
-This function is optional and may not necessarily be provided on all platforms.
-If it is defined, it is called automatically when the interpreter exits for
-every shared object or library loaded by DynaLoader::bootstrap. All such
-library references are stored in @dl_librefs by DynaLoader::Bootstrap as it
-loads the libraries. The files are unloaded in last-in, first-out order.
-
-This unloading is usually necessary when embedding a shared-object perl (e.g.
-one configured with -Duseshrplib) within a larger application, and the perl
-interpreter is created and destroyed several times within the lifetime of the
-application. In this case it is possible that the system dynamic linker will
-unload and then subsequently reload the shared libperl without relocating any
-references to it from any files DynaLoaded by the previous incarnation of the
-interpreter. As a result, any shared objects opened by DynaLoader may point to
-a now invalid 'ghost' of the libperl shared object, causing apparently random
-memory corruption and crashes. This behaviour is most commonly seen when using
-Apache and mod_perl built with the APXS mechanism.
-
- SunOS: dlclose($libref)
- HP-UX: ???
- Linux: ???
- NeXT: ???
- VMS: ???
-
-(The dlclose() function is also used by Solaris and some versions of
-Linux, and is a common choice when providing a "wrapper" on other
-mechanisms as is done in the OS/2 port.)
-
-=item dl_loadflags()
-
-Syntax:
-
- $flags = dl_loadflags $modulename;
-
-Designed to be a method call, and to be overridden by a derived class
-(i.e. a class which has DynaLoader in its @ISA). The definition in
-DynaLoader itself returns 0, which produces standard behavior from
-dl_load_file().
-
-=item dl_find_symbol()
-
-Syntax:
-
- $symref = dl_find_symbol($libref, $symbol)
-
-Return the address of the symbol $symbol or C<undef> if not found. If the
-target system has separate functions to search for symbols of different
-types then dl_find_symbol() should search for function symbols first and
-then other types.
-
-The exact manner in which the address is returned in $symref is not
-currently defined. The only initial requirement is that $symref can
-be passed to, and understood by, dl_install_xsub().
-
- SunOS: dlsym($libref, $symbol)
- HP-UX: shl_findsym($libref, $symbol)
- Linux: dld_get_func($symbol) and/or dld_get_symbol($symbol)
- NeXT: rld_lookup("_$symbol")
- VMS: lib$find_image_symbol($libref,$symbol)
-
-
-=item dl_find_symbol_anywhere()
-
-Syntax:
-
- $symref = dl_find_symbol_anywhere($symbol)
-
-Applies dl_find_symbol() to the members of @dl_librefs and returns
-the first match found.
-
-=item dl_undef_symbols()
-
-Example
-
- @symbols = dl_undef_symbols()
-
-Return a list of symbol names which remain undefined after load_file().
-Returns C<()> if not known. Don't worry if your platform does not provide
-a mechanism for this. Most do not need it and hence do not provide it,
-they just return an empty list.
-
-
-=item dl_install_xsub()
-
-Syntax:
-
- dl_install_xsub($perl_name, $symref [, $filename])
-
-Create a new Perl external subroutine named $perl_name using $symref as
-a pointer to the function which implements the routine. This is simply
-a direct call to newXSUB(). Returns a reference to the installed
-function.
-
-The $filename parameter is used by Perl to identify the source file for
-the function if required by die(), caller() or the debugger. If
-$filename is not defined then "DynaLoader" will be used.
-
-
-=item bootstrap()
-
-Syntax:
-
-bootstrap($module)
-
-This is the normal entry point for automatic dynamic loading in Perl.
-
-It performs the following actions:
-
-=over 8
-
-=item *
-
-locates an auto/$module directory by searching @INC
-
-=item *
-
-uses dl_findfile() to determine the filename to load
-
-=item *
-
-sets @dl_require_symbols to C<("boot_$module")>
-
-=item *
-
-executes an F<auto/$module/$module.bs> file if it exists
-(typically used to add to @dl_resolve_using any files which
-are required to load the module on the current platform)
-
-=item *
-
-calls dl_load_flags() to determine how to load the file.
-
-=item *
-
-calls dl_load_file() to load the file
-
-=item *
-
-calls dl_undef_symbols() and warns if any symbols are undefined
-
-=item *
-
-calls dl_find_symbol() for "boot_$module"
-
-=item *
-
-calls dl_install_xsub() to install it as "${module}::bootstrap"
-
-=item *
-
-calls &{"${module}::bootstrap"} to bootstrap the module (actually
-it uses the function reference returned by dl_install_xsub for speed)
-
-=back
-
-=back
-
-
-=head1 AUTHOR
-
-Tim Bunce, 11 August 1994.
-
-This interface is based on the work and comments of (in no particular
-order): Larry Wall, Robert Sanders, Dean Roehrich, Jeff Okamoto, Anno
-Siegel, Thomas Neumann, Paul Marquess, Charles Bailey, myself and others.
-
-Larry Wall designed the elegant inherited bootstrap mechanism and
-implemented the first Perl 5 dynamic loader using it.
-
-Solaris global loading added by Nick Ing-Simmons with design/coding
-assistance from Tim Bunce, January 1996.
-
-=cut
diff --git a/Master/xemtex/perl/lib/Errno.pm b/Master/xemtex/perl/lib/Errno.pm
deleted file mode 100644
index e23fdf215d2..00000000000
--- a/Master/xemtex/perl/lib/Errno.pm
+++ /dev/null
@@ -1,221 +0,0 @@
-#
-# This file is auto-generated. ***ANY*** changes here will be lost
-#
-
-package Errno;
-our (@EXPORT_OK,%EXPORT_TAGS,@ISA,$VERSION,%errno,$AUTOLOAD);
-use Exporter ();
-use Config;
-use strict;
-
-"$Config{'archname'}-$Config{'osvers'}" eq
-"MSWin32-x86-multi-thread-4.0" or
- die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
-
-$VERSION = "1.09_00";
-$VERSION = eval $VERSION;
-@ISA = qw(Exporter);
-
-@EXPORT_OK = qw(EROFS ESHUTDOWN EPROTONOSUPPORT ENFILE ENOLCK
- EADDRINUSE ECONNABORTED EBADF EDEADLK ENOTDIR EINVAL ENOTTY EXDEV
- ELOOP ECONNREFUSED EISCONN EFBIG ECONNRESET EPFNOSUPPORT ENOENT
- EDISCON EWOULDBLOCK EDOM EMSGSIZE EDESTADDRREQ ENOTSOCK EIO ENOSPC
- EINPROGRESS ENOBUFS ERANGE EADDRNOTAVAIL EAFNOSUPPORT ENOSYS EINTR
- EHOSTDOWN EREMOTE EILSEQ ENOMEM ENOTCONN ENETUNREACH EPIPE ESTALE
- EDQUOT EUSERS EOPNOTSUPP ESPIPE EALREADY EMFILE ENAMETOOLONG EACCES
- ENOEXEC EISDIR EPROCLIM EBUSY E2BIG EPERM EEXIST ETOOMANYREFS
- ESOCKTNOSUPPORT ETIMEDOUT ENXIO ESRCH ENODEV EFAULT EAGAIN EMLINK
- EDEADLOCK ENOPROTOOPT ECHILD ENETDOWN EHOSTUNREACH EPROTOTYPE
- ENETRESET ENOTEMPTY);
-
-%EXPORT_TAGS = (
- POSIX => [qw(
- E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY
- EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK
- EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH
- EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS
- ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTCONN
- ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT
- EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE EROFS
- ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
- EUSERS EWOULDBLOCK EXDEV
- )]
-);
-
-sub EPERM () { 1 }
-sub ENOENT () { 2 }
-sub ESRCH () { 3 }
-sub EINTR () { 4 }
-sub EIO () { 5 }
-sub ENXIO () { 6 }
-sub E2BIG () { 7 }
-sub ENOEXEC () { 8 }
-sub EBADF () { 9 }
-sub ECHILD () { 10 }
-sub EAGAIN () { 11 }
-sub ENOMEM () { 12 }
-sub EACCES () { 13 }
-sub EFAULT () { 14 }
-sub EBUSY () { 16 }
-sub EEXIST () { 17 }
-sub EXDEV () { 18 }
-sub ENODEV () { 19 }
-sub ENOTDIR () { 20 }
-sub EISDIR () { 21 }
-sub EINVAL () { 22 }
-sub ENFILE () { 23 }
-sub EMFILE () { 24 }
-sub ENOTTY () { 25 }
-sub EFBIG () { 27 }
-sub ENOSPC () { 28 }
-sub ESPIPE () { 29 }
-sub EROFS () { 30 }
-sub EMLINK () { 31 }
-sub EPIPE () { 32 }
-sub EDOM () { 33 }
-sub ERANGE () { 34 }
-sub EDEADLK () { 36 }
-sub EDEADLOCK () { 36 }
-sub ENAMETOOLONG () { 38 }
-sub ENOLCK () { 39 }
-sub ENOSYS () { 40 }
-sub ENOTEMPTY () { 41 }
-sub EILSEQ () { 42 }
-sub EWOULDBLOCK () { 10035 }
-sub EINPROGRESS () { 10036 }
-sub EALREADY () { 10037 }
-sub ENOTSOCK () { 10038 }
-sub EDESTADDRREQ () { 10039 }
-sub EMSGSIZE () { 10040 }
-sub EPROTOTYPE () { 10041 }
-sub ENOPROTOOPT () { 10042 }
-sub EPROTONOSUPPORT () { 10043 }
-sub ESOCKTNOSUPPORT () { 10044 }
-sub EOPNOTSUPP () { 10045 }
-sub EPFNOSUPPORT () { 10046 }
-sub EAFNOSUPPORT () { 10047 }
-sub EADDRINUSE () { 10048 }
-sub EADDRNOTAVAIL () { 10049 }
-sub ENETDOWN () { 10050 }
-sub ENETUNREACH () { 10051 }
-sub ENETRESET () { 10052 }
-sub ECONNABORTED () { 10053 }
-sub ECONNRESET () { 10054 }
-sub ENOBUFS () { 10055 }
-sub EISCONN () { 10056 }
-sub ENOTCONN () { 10057 }
-sub ESHUTDOWN () { 10058 }
-sub ETOOMANYREFS () { 10059 }
-sub ETIMEDOUT () { 10060 }
-sub ECONNREFUSED () { 10061 }
-sub ELOOP () { 10062 }
-sub EHOSTDOWN () { 10064 }
-sub EHOSTUNREACH () { 10065 }
-sub EPROCLIM () { 10067 }
-sub EUSERS () { 10068 }
-sub EDQUOT () { 10069 }
-sub ESTALE () { 10070 }
-sub EREMOTE () { 10071 }
-sub EDISCON () { 10101 }
-
-sub TIEHASH { bless [] }
-
-sub FETCH {
- my ($self, $errname) = @_;
- my $proto = prototype("Errno::$errname");
- my $errno = "";
- if (defined($proto) && $proto eq "") {
- no strict 'refs';
- $errno = &$errname;
- $errno = 0 unless $! == $errno;
- }
- return $errno;
-}
-
-sub STORE {
- require Carp;
- Carp::confess("ERRNO hash is read only!");
-}
-
-*CLEAR = \&STORE;
-*DELETE = \&STORE;
-
-sub NEXTKEY {
- my($k,$v);
- while(($k,$v) = each %Errno::) {
- my $proto = prototype("Errno::$k");
- last if (defined($proto) && $proto eq "");
- }
- $k
-}
-
-sub FIRSTKEY {
- my $s = scalar keys %Errno::; # initialize iterator
- goto &NEXTKEY;
-}
-
-sub EXISTS {
- my ($self, $errname) = @_;
- my $proto = prototype($errname);
- defined($proto) && $proto eq "";
-}
-
-tie %!, __PACKAGE__;
-
-1;
-__END__
-
-=head1 NAME
-
-Errno - System errno constants
-
-=head1 SYNOPSIS
-
- use Errno qw(EINTR EIO :POSIX);
-
-=head1 DESCRIPTION
-
-C<Errno> defines and conditionally exports all the error constants
-defined in your system C<errno.h> include file. It has a single export
-tag, C<:POSIX>, which will export all POSIX defined error numbers.
-
-C<Errno> also makes C<%!> magic such that each element of C<%!> has a
-non-zero value only if C<$!> is set to that value. For example:
-
- use Errno;
-
- unless (open(FH, "/fangorn/spouse")) {
- if ($!{ENOENT}) {
- warn "Get a wife!\n";
- } else {
- warn "This path is barred: $!";
- }
- }
-
-If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}>
-returns C<"">. You may use C<exists $!{EFOO}> to check whether the
-constant is available on the system.
-
-=head1 CAVEATS
-
-Importing a particular constant may not be very portable, because the
-import will fail on platforms that do not have that constant. A more
-portable way to set C<$!> to a valid value is to use:
-
- if (exists &Errno::EFOO) {
- $! = &Errno::EFOO;
- }
-
-=head1 AUTHOR
-
-Graham Barr <gbarr@pobox.com>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-8 Graham Barr. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/Exporter.pm b/Master/xemtex/perl/lib/Exporter.pm
deleted file mode 100644
index 8b8d4c49392..00000000000
--- a/Master/xemtex/perl/lib/Exporter.pm
+++ /dev/null
@@ -1,416 +0,0 @@
-package Exporter;
-
-require 5.006;
-
-# Be lean.
-#use strict;
-#no strict 'refs';
-
-our $Debug = 0;
-our $ExportLevel = 0;
-our $Verbose ||= 0;
-our $VERSION = '5.566';
-$Carp::Internal{Exporter} = 1;
-
-sub as_heavy {
- require Exporter::Heavy;
- # Unfortunately, this does not work if the caller is aliased as *name = \&foo
- # Thus the need to create a lot of identical subroutines
- my $c = (caller(1))[3];
- $c =~ s/.*:://;
- \&{"Exporter::Heavy::heavy_$c"};
-}
-
-sub export {
- goto &{as_heavy()};
-}
-
-sub import {
- my $pkg = shift;
- my $callpkg = caller($ExportLevel);
-
- # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-(
- my($exports, $export_cache, $fail)
- = (\@{"$pkg\::EXPORT"}, \%{"$pkg\::EXPORT"}, \@{"$pkg\::EXPORT_FAIL"});
- return export $pkg, $callpkg, @_
- if $Verbose or $Debug or @$fail > 1;
- my $args = @_ or @_ = @$exports;
-
- local $_;
- if ($args and not %$export_cache) {
- s/^&//, $export_cache->{$_} = 1
- foreach (@$exports, @{"$pkg\::EXPORT_OK"});
- }
- my $heavy;
- # Try very hard not to use {} and hence have to enter scope on the foreach
- # We bomb out of the loop with last as soon as heavy is set.
- if ($args or $fail) {
- ($heavy = (/\W/ or $args and not exists $export_cache->{$_}
- or @$fail and $_ eq $fail->[0])) and last
- foreach (@_);
- } else {
- ($heavy = /\W/) and last
- foreach (@_);
- }
- return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy;
- local $SIG{__WARN__} =
- sub {require Carp; &Carp::carp};
- # shortcut for the common case of no type character
- *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
-}
-
-# Default methods
-
-sub export_fail {
- my $self = shift;
- @_;
-}
-
-# Unfortunately, caller(1)[3] "does not work" if the caller is aliased as
-# *name = \&foo. Thus the need to create a lot of identical subroutines
-# Otherwise we could have aliased them to export().
-
-sub export_to_level {
- goto &{as_heavy()};
-}
-
-sub export_tags {
- goto &{as_heavy()};
-}
-
-sub export_ok_tags {
- goto &{as_heavy()};
-}
-
-sub require_version {
- goto &{as_heavy()};
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Exporter - Implements default import method for modules
-
-=head1 SYNOPSIS
-
-In module YourModule.pm:
-
- package YourModule;
- require Exporter;
- @ISA = qw(Exporter);
- @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
-
-In other files which wish to use YourModule:
-
- use ModuleName qw(frobnicate); # import listed symbols
- frobnicate ($left, $right) # calls YourModule::frobnicate
-
-=head1 DESCRIPTION
-
-The Exporter module implements an C<import> method which allows a module
-to export functions and variables to its users' namespaces. Many modules
-use Exporter rather than implementing their own C<import> method because
-Exporter provides a highly flexible interface, with an implementation optimised
-for the common case.
-
-Perl automatically calls the C<import> method when processing a
-C<use> statement for a module. Modules and C<use> are documented
-in L<perlfunc> and L<perlmod>. Understanding the concept of
-modules and how the C<use> statement operates is important to
-understanding the Exporter.
-
-=head2 How to Export
-
-The arrays C<@EXPORT> and C<@EXPORT_OK> in a module hold lists of
-symbols that are going to be exported into the users name space by
-default, or which they can request to be exported, respectively. The
-symbols can represent functions, scalars, arrays, hashes, or typeglobs.
-The symbols must be given by full name with the exception that the
-ampersand in front of a function is optional, e.g.
-
- @EXPORT = qw(afunc $scalar @array); # afunc is a function
- @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc
-
-If you are only exporting function names it is recommended to omit the
-ampersand, as the implementation is faster this way.
-
-=head2 Selecting What To Export
-
-Do B<not> export method names!
-
-Do B<not> export anything else by default without a good reason!
-
-Exports pollute the namespace of the module user. If you must export
-try to use @EXPORT_OK in preference to @EXPORT and avoid short or
-common symbol names to reduce the risk of name clashes.
-
-Generally anything not exported is still accessible from outside the
-module using the ModuleName::item_name (or $blessed_ref-E<gt>method)
-syntax. By convention you can use a leading underscore on names to
-informally indicate that they are 'internal' and not for public use.
-
-(It is actually possible to get private functions by saying:
-
- my $subref = sub { ... };
- $subref->(@args); # Call it as a function
- $obj->$subref(@args); # Use it as a method
-
-However if you use them for methods it is up to you to figure out
-how to make inheritance work.)
-
-As a general rule, if the module is trying to be object oriented
-then export nothing. If it's just a collection of functions then
-@EXPORT_OK anything but use @EXPORT with caution. For function and
-method names use barewords in preference to names prefixed with
-ampersands for the export lists.
-
-Other module design guidelines can be found in L<perlmod>.
-
-=head2 How to Import
-
-In other files which wish to use your module there are three basic ways for
-them to load your module and import its symbols:
-
-=over 4
-
-=item C<use ModuleName;>
-
-This imports all the symbols from ModuleName's @EXPORT into the namespace
-of the C<use> statement.
-
-=item C<use ModuleName ();>
-
-This causes perl to load your module but does not import any symbols.
-
-=item C<use ModuleName qw(...);>
-
-This imports only the symbols listed by the caller into their namespace.
-All listed symbols must be in your @EXPORT or @EXPORT_OK, else an error
-occurs. The advanced export features of Exporter are accessed like this,
-but with list entries that are syntactically distinct from symbol names.
-
-=back
-
-Unless you want to use its advanced features, this is probably all you
-need to know to use Exporter.
-
-=head1 Advanced features
-
-=head2 Specialised Import Lists
-
-If the first entry in an import list begins with !, : or / then the
-list is treated as a series of specifications which either add to or
-delete from the list of names to import. They are processed left to
-right. Specifications are in the form:
-
- [!]name This name only
- [!]:DEFAULT All names in @EXPORT
- [!]:tag All names in $EXPORT_TAGS{tag} anonymous list
- [!]/pattern/ All names in @EXPORT and @EXPORT_OK which match
-
-A leading ! indicates that matching names should be deleted from the
-list of names to import. If the first specification is a deletion it
-is treated as though preceded by :DEFAULT. If you just want to import
-extra names in addition to the default set you will still need to
-include :DEFAULT explicitly.
-
-e.g., Module.pm defines:
-
- @EXPORT = qw(A1 A2 A3 A4 A5);
- @EXPORT_OK = qw(B1 B2 B3 B4 B5);
- %EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]);
-
- Note that you cannot use tags in @EXPORT or @EXPORT_OK.
- Names in EXPORT_TAGS must also appear in @EXPORT or @EXPORT_OK.
-
-An application using Module can say something like:
-
- use Module qw(:DEFAULT :T2 !B3 A3);
-
-Other examples include:
-
- use Socket qw(!/^[AP]F_/ !SOMAXCONN !SOL_SOCKET);
- use POSIX qw(:errno_h :termios_h !TCSADRAIN !/^EXIT/);
-
-Remember that most patterns (using //) will need to be anchored
-with a leading ^, e.g., C</^EXIT/> rather than C</EXIT/>.
-
-You can say C<BEGIN { $Exporter::Verbose=1 }> to see how the
-specifications are being processed and what is actually being imported
-into modules.
-
-=head2 Exporting without using Exporter's import method
-
-Exporter has a special method, 'export_to_level' which is used in situations
-where you can't directly call Exporter's import method. The export_to_level
-method looks like:
-
- MyPackage->export_to_level($where_to_export, $package, @what_to_export);
-
-where $where_to_export is an integer telling how far up the calling stack
-to export your symbols, and @what_to_export is an array telling what
-symbols *to* export (usually this is @_). The $package argument is
-currently unused.
-
-For example, suppose that you have a module, A, which already has an
-import function:
-
- package A;
-
- @ISA = qw(Exporter);
- @EXPORT_OK = qw ($b);
-
- sub import
- {
- $A::b = 1; # not a very useful import method
- }
-
-and you want to Export symbol $A::b back to the module that called
-package A. Since Exporter relies on the import method to work, via
-inheritance, as it stands Exporter::import() will never get called.
-Instead, say the following:
-
- package A;
- @ISA = qw(Exporter);
- @EXPORT_OK = qw ($b);
-
- sub import
- {
- $A::b = 1;
- A->export_to_level(1, @_);
- }
-
-This will export the symbols one level 'above' the current package - ie: to
-the program or module that used package A.
-
-Note: Be careful not to modify '@_' at all before you call export_to_level
-- or people using your package will get very unexplained results!
-
-
-=head2 Module Version Checking
-
-The Exporter module will convert an attempt to import a number from a
-module into a call to $module_name-E<gt>require_version($value). This can
-be used to validate that the version of the module being used is
-greater than or equal to the required version.
-
-The Exporter module supplies a default require_version method which
-checks the value of $VERSION in the exporting module.
-
-Since the default require_version method treats the $VERSION number as
-a simple numeric value it will regard version 1.10 as lower than
-1.9. For this reason it is strongly recommended that you use numbers
-with at least two decimal places, e.g., 1.09.
-
-=head2 Managing Unknown Symbols
-
-In some situations you may want to prevent certain symbols from being
-exported. Typically this applies to extensions which have functions
-or constants that may not exist on some systems.
-
-The names of any symbols that cannot be exported should be listed
-in the C<@EXPORT_FAIL> array.
-
-If a module attempts to import any of these symbols the Exporter
-will give the module an opportunity to handle the situation before
-generating an error. The Exporter will call an export_fail method
-with a list of the failed symbols:
-
- @failed_symbols = $module_name->export_fail(@failed_symbols);
-
-If the export_fail method returns an empty list then no error is
-recorded and all the requested symbols are exported. If the returned
-list is not empty then an error is generated for each symbol and the
-export fails. The Exporter provides a default export_fail method which
-simply returns the list unchanged.
-
-Uses for the export_fail method include giving better error messages
-for some symbols and performing lazy architectural checks (put more
-symbols into @EXPORT_FAIL by default and then take them out if someone
-actually tries to use them and an expensive check shows that they are
-usable on that platform).
-
-=head2 Tag Handling Utility Functions
-
-Since the symbols listed within %EXPORT_TAGS must also appear in either
-@EXPORT or @EXPORT_OK, two utility functions are provided which allow
-you to easily add tagged sets of symbols to @EXPORT or @EXPORT_OK:
-
- %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]);
-
- Exporter::export_tags('foo'); # add aa, bb and cc to @EXPORT
- Exporter::export_ok_tags('bar'); # add aa, cc and dd to @EXPORT_OK
-
-Any names which are not tags are added to @EXPORT or @EXPORT_OK
-unchanged but will trigger a warning (with C<-w>) to avoid misspelt tags
-names being silently added to @EXPORT or @EXPORT_OK. Future versions
-may make this a fatal error.
-
-=head2 Generating combined tags
-
-If several symbol categories exist in %EXPORT_TAGS, it's usually
-useful to create the utility ":all" to simplify "use" statements.
-
-The simplest way to do this is:
-
- %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]);
-
- # add all the other ":class" tags to the ":all" class,
- # deleting duplicates
- {
- my %seen;
-
- push @{$EXPORT_TAGS{all}},
- grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS;
- }
-
-CGI.pm creates an ":all" tag which contains some (but not really
-all) of its categories. That could be done with one small
-change:
-
- # add some of the other ":class" tags to the ":all" class,
- # deleting duplicates
- {
- my %seen;
-
- push @{$EXPORT_TAGS{all}},
- grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}}
- foreach qw/html2 html3 netscape form cgi internal/;
- }
-
-Note that the tag names in %EXPORT_TAGS don't have the leading ':'.
-
-=head2 C<AUTOLOAD>ed Constants
-
-Many modules make use of C<AUTOLOAD>ing for constant subroutines to
-avoid having to compile and waste memory on rarely used values (see
-L<perlsub> for details on constant subroutines). Calls to such
-constant subroutines are not optimized away at compile time because
-they can't be checked at compile time for constancy.
-
-Even if a prototype is available at compile time, the body of the
-subroutine is not (it hasn't been C<AUTOLOAD>ed yet). perl needs to
-examine both the C<()> prototype and the body of a subroutine at
-compile time to detect that it can safely replace calls to that
-subroutine with the constant value.
-
-A workaround for this is to call the constants once in a C<BEGIN> block:
-
- package My ;
-
- use Socket ;
-
- foo( SO_LINGER ); ## SO_LINGER NOT optimized away; called at runtime
- BEGIN { SO_LINGER }
- foo( SO_LINGER ); ## SO_LINGER optimized away at compile time.
-
-This forces the C<AUTOLOAD> for C<SO_LINGER> to take place before
-SO_LINGER is encountered later in C<My> package.
-
-If you are writing a package that C<AUTOLOAD>s, consider forcing
-an C<AUTOLOAD> for any constants explicitly imported by other packages
-or which are usually used when your package is C<use>d.
-
-=cut
diff --git a/Master/xemtex/perl/lib/Exporter/Heavy.pm b/Master/xemtex/perl/lib/Exporter/Heavy.pm
deleted file mode 100644
index 3bdc4b4f204..00000000000
--- a/Master/xemtex/perl/lib/Exporter/Heavy.pm
+++ /dev/null
@@ -1,232 +0,0 @@
-package Exporter::Heavy;
-
-use strict;
-no strict 'refs';
-
-# On one line so MakeMaker will see it.
-require Exporter; our $VERSION = $Exporter::VERSION;
-$Carp::Internal{"Exporter::Heavy"} = 1;
-our $Verbose;
-
-=head1 NAME
-
-Exporter::Heavy - Exporter guts
-
-=head1 SYNOPSIS
-
-(internal use only)
-
-=head1 DESCRIPTION
-
-No user-serviceable parts inside.
-
-=cut
-
-#
-# We go to a lot of trouble not to 'require Carp' at file scope,
-# because Carp requires Exporter, and something has to give.
-#
-
-sub heavy_export {
-
- # First make import warnings look like they're coming from the "use".
- local $SIG{__WARN__} = sub {
- my $text = shift;
- if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//) {
- require Carp;
- local $Carp::CarpLevel = 1; # ignore package calling us too.
- Carp::carp($text);
- }
- else {
- warn $text;
- }
- };
- local $SIG{__DIE__} = sub {
- require Carp;
- local $Carp::CarpLevel = 1; # ignore package calling us too.
- Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT")
- if $_[0] =~ /^Unable to create sub named "(.*?)::"/;
- };
-
- my($pkg, $callpkg, @imports) = @_;
- my($type, $sym, $oops);
- my($exports, $export_cache) = (\@{"${pkg}::EXPORT"},
- \%{"${pkg}::EXPORT"});
-
- if (@imports) {
- if (!%$export_cache) {
- s/^&// foreach @$exports;
- @{$export_cache}{@$exports} = (1) x @$exports;
- my $ok = \@{"${pkg}::EXPORT_OK"};
- if (@$ok) {
- s/^&// foreach @$ok;
- @{$export_cache}{@$ok} = (1) x @$ok;
- }
- }
-
- if ($imports[0] =~ m#^[/!:]#){
- my $tagsref = \%{"${pkg}::EXPORT_TAGS"};
- my $tagdata;
- my %imports;
- my($remove, $spec, @names, @allexports);
- # negated first item implies starting with default set:
- unshift @imports, ':DEFAULT' if $imports[0] =~ m/^!/;
- foreach $spec (@imports){
- $remove = $spec =~ s/^!//;
-
- if ($spec =~ s/^://){
- if ($spec eq 'DEFAULT'){
- @names = @$exports;
- }
- elsif ($tagdata = $tagsref->{$spec}) {
- @names = @$tagdata;
- }
- else {
- warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS];
- ++$oops;
- next;
- }
- }
- elsif ($spec =~ m:^/(.*)/$:){
- my $patn = $1;
- @allexports = keys %$export_cache unless @allexports; # only do keys once
- @names = grep(/$patn/, @allexports); # not anchored by default
- }
- else {
- @names = ($spec); # is a normal symbol name
- }
-
- warn "Import ".($remove ? "del":"add").": @names "
- if $Verbose;
-
- if ($remove) {
- foreach $sym (@names) { delete $imports{$sym} }
- }
- else {
- @imports{@names} = (1) x @names;
- }
- }
- @imports = keys %imports;
- }
-
- my @carp;
- foreach $sym (@imports) {
- if (!$export_cache->{$sym}) {
- if ($sym =~ m/^\d/) {
- $pkg->VERSION($sym); # inherit from UNIVERSAL
- # If the version number was the only thing specified
- # then we should act as if nothing was specified:
- if (@imports == 1) {
- @imports = @$exports;
- last;
- }
- # We need a way to emulate 'use Foo ()' but still
- # allow an easy version check: "use Foo 1.23, ''";
- if (@imports == 2 and !$imports[1]) {
- @imports = ();
- last;
- }
- } elsif ($sym !~ s/^&// || !$export_cache->{$sym}) {
- # accumulate the non-exports
- push @carp,
- qq["$sym" is not exported by the $pkg module\n];
- $oops++;
- }
- }
- }
- if ($oops) {
- require Carp;
- Carp::croak("@{carp}Can't continue after import errors");
- }
- }
- else {
- @imports = @$exports;
- }
-
- my($fail, $fail_cache) = (\@{"${pkg}::EXPORT_FAIL"},
- \%{"${pkg}::EXPORT_FAIL"});
-
- if (@$fail) {
- if (!%$fail_cache) {
- # Build cache of symbols. Optimise the lookup by adding
- # barewords twice... both with and without a leading &.
- # (Technique could be applied to $export_cache at cost of memory)
- my @expanded = map { /^\w/ ? ($_, '&'.$_) : $_ } @$fail;
- warn "${pkg}::EXPORT_FAIL cached: @expanded" if $Verbose;
- @{$fail_cache}{@expanded} = (1) x @expanded;
- }
- my @failed;
- foreach $sym (@imports) { push(@failed, $sym) if $fail_cache->{$sym} }
- if (@failed) {
- @failed = $pkg->export_fail(@failed);
- foreach $sym (@failed) {
- require Carp;
- Carp::carp(qq["$sym" is not implemented by the $pkg module ],
- "on this architecture");
- }
- if (@failed) {
- require Carp;
- Carp::croak("Can't continue after import errors");
- }
- }
- }
-
- warn "Importing into $callpkg from $pkg: ",
- join(", ",sort @imports) if $Verbose;
-
- foreach $sym (@imports) {
- # shortcut for the common case of no type character
- (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
- unless $sym =~ s/^(\W)//;
- $type = $1;
- *{"${callpkg}::$sym"} =
- $type eq '&' ? \&{"${pkg}::$sym"} :
- $type eq '$' ? \${"${pkg}::$sym"} :
- $type eq '@' ? \@{"${pkg}::$sym"} :
- $type eq '%' ? \%{"${pkg}::$sym"} :
- $type eq '*' ? *{"${pkg}::$sym"} :
- do { require Carp; Carp::croak("Can't export symbol: $type$sym") };
- }
-}
-
-sub heavy_export_to_level
-{
- my $pkg = shift;
- my $level = shift;
- (undef) = shift; # XXX redundant arg
- my $callpkg = caller($level);
- $pkg->export($callpkg, @_);
-}
-
-# Utility functions
-
-sub _push_tags {
- my($pkg, $var, $syms) = @_;
- my @nontag = ();
- my $export_tags = \%{"${pkg}::EXPORT_TAGS"};
- push(@{"${pkg}::$var"},
- map { $export_tags->{$_} ? @{$export_tags->{$_}}
- : scalar(push(@nontag,$_),$_) }
- (@$syms) ? @$syms : keys %$export_tags);
- if (@nontag and $^W) {
- # This may change to a die one day
- require Carp;
- Carp::carp(join(", ", @nontag)." are not tags of $pkg");
- }
-}
-
-sub heavy_require_version {
- my($self, $wanted) = @_;
- my $pkg = ref $self || $self;
- return ${pkg}->VERSION($wanted);
-}
-
-sub heavy_export_tags {
- _push_tags((caller)[0], "EXPORT", \@_);
-}
-
-sub heavy_export_ok_tags {
- _push_tags((caller)[0], "EXPORT_OK", \@_);
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/Fcntl.pm b/Master/xemtex/perl/lib/Fcntl.pm
deleted file mode 100644
index 6e4236713de..00000000000
--- a/Master/xemtex/perl/lib/Fcntl.pm
+++ /dev/null
@@ -1,216 +0,0 @@
-package Fcntl;
-
-=head1 NAME
-
-Fcntl - load the C Fcntl.h defines
-
-=head1 SYNOPSIS
-
- use Fcntl;
- use Fcntl qw(:DEFAULT :flock);
-
-=head1 DESCRIPTION
-
-This module is just a translation of the C F<fnctl.h> file.
-Unlike the old mechanism of requiring a translated F<fnctl.ph>
-file, this uses the B<h2xs> program (see the Perl source distribution)
-and your native C compiler. This means that it has a
-far more likely chance of getting the numbers right.
-
-=head1 NOTE
-
-Only C<#define> symbols get translated; you must still correctly
-pack up your own arguments to pass as args for locking functions, etc.
-
-=head1 EXPORTED SYMBOLS
-
-By default your system's F_* and O_* constants (eg, F_DUPFD and
-O_CREAT) and the FD_CLOEXEC constant are exported into your namespace.
-
-You can request that the flock() constants (LOCK_SH, LOCK_EX, LOCK_NB
-and LOCK_UN) be provided by using the tag C<:flock>. See L<Exporter>.
-
-You can request that the old constants (FAPPEND, FASYNC, FCREAT,
-FDEFER, FEXCL, FNDELAY, FNONBLOCK, FSYNC, FTRUNC) be provided for
-compatibility reasons by using the tag C<:Fcompat>. For new
-applications the newer versions of these constants are suggested
-(O_APPEND, O_ASYNC, O_CREAT, O_DEFER, O_EXCL, O_NDELAY, O_NONBLOCK,
-O_SYNC, O_TRUNC).
-
-For ease of use also the SEEK_* constants (for seek() and sysseek(),
-e.g. SEEK_END) and the S_I* constants (for chmod() and stat()) are
-available for import. They can be imported either separately or using
-the tags C<:seek> and C<:mode>.
-
-Please refer to your native fcntl(2), open(2), fseek(3), lseek(2)
-(equal to Perl's seek() and sysseek(), respectively), and chmod(2)
-documentation to see what constants are implemented in your system.
-
-See L<perlopentut> to learn about the uses of the O_* constants
-with sysopen().
-
-See L<perlfunc/seek> and L<perlfunc/sysseek> about the SEEK_* constants.
-
-See L<perlfunc/stat> about the S_I* constants.
-
-=cut
-
-our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD);
-
-require Exporter;
-use XSLoader ();
-@ISA = qw(Exporter);
-$VERSION = "1.04";
-# Items to export into callers namespace by default
-# (move infrequently used names to @EXPORT_OK below)
-@EXPORT =
- qw(
- FD_CLOEXEC
- F_ALLOCSP
- F_ALLOCSP64
- F_COMPAT
- F_DUP2FD
- F_DUPFD
- F_EXLCK
- F_FREESP
- F_FREESP64
- F_FSYNC
- F_FSYNC64
- F_GETFD
- F_GETFL
- F_GETLK
- F_GETLK64
- F_GETOWN
- F_NODNY
- F_POSIX
- F_RDACC
- F_RDDNY
- F_RDLCK
- F_RWACC
- F_RWDNY
- F_SETFD
- F_SETFL
- F_SETLK
- F_SETLK64
- F_SETLKW
- F_SETLKW64
- F_SETOWN
- F_SHARE
- F_SHLCK
- F_UNLCK
- F_UNSHARE
- F_WRACC
- F_WRDNY
- F_WRLCK
- O_ACCMODE
- O_ALIAS
- O_APPEND
- O_ASYNC
- O_BINARY
- O_CREAT
- O_DEFER
- O_DIRECT
- O_DIRECTORY
- O_DSYNC
- O_EXCL
- O_EXLOCK
- O_LARGEFILE
- O_NDELAY
- O_NOCTTY
- O_NOFOLLOW
- O_NOINHERIT
- O_NONBLOCK
- O_RANDOM
- O_RAW
- O_RDONLY
- O_RDWR
- O_RSRC
- O_RSYNC
- O_SEQUENTIAL
- O_SHLOCK
- O_SYNC
- O_TEMPORARY
- O_TEXT
- O_TRUNC
- O_WRONLY
- );
-
-# Other items we are prepared to export if requested
-@EXPORT_OK = qw(
- FAPPEND
- FASYNC
- FCREAT
- FDEFER
- FDSYNC
- FEXCL
- FLARGEFILE
- FNDELAY
- FNONBLOCK
- FRSYNC
- FSYNC
- FTRUNC
- LOCK_EX
- LOCK_NB
- LOCK_SH
- LOCK_UN
- S_ISUID S_ISGID S_ISVTX S_ISTXT
- _S_IFMT S_IFREG S_IFDIR S_IFLNK
- S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
- S_IRUSR S_IWUSR S_IXUSR S_IRWXU
- S_IRGRP S_IWGRP S_IXGRP S_IRWXG
- S_IROTH S_IWOTH S_IXOTH S_IRWXO
- S_IREAD S_IWRITE S_IEXEC
- &S_ISREG &S_ISDIR &S_ISLNK &S_ISSOCK &S_ISBLK &S_ISCHR &S_ISFIFO
- &S_ISWHT &S_ISENFMT &S_IFMT &S_IMODE
- SEEK_SET
- SEEK_CUR
- SEEK_END
-);
-# Named groups of exports
-%EXPORT_TAGS = (
- 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
- 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
- FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
- 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)],
- 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
- _S_IFMT S_IFREG S_IFDIR S_IFLNK
- S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
- S_IRUSR S_IWUSR S_IXUSR S_IRWXU
- S_IRGRP S_IWGRP S_IXGRP S_IRWXG
- S_IROTH S_IWOTH S_IXOTH S_IRWXO
- S_IREAD S_IWRITE S_IEXEC
- S_ISREG S_ISDIR S_ISLNK S_ISSOCK
- S_ISBLK S_ISCHR S_ISFIFO
- S_ISWHT S_ISENFMT
- S_IFMT S_IMODE
- )],
-);
-
-sub S_IFMT { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT() }
-sub S_IMODE { $_[0] & 07777 }
-
-sub S_ISREG { ( $_[0] & _S_IFMT() ) == S_IFREG() }
-sub S_ISDIR { ( $_[0] & _S_IFMT() ) == S_IFDIR() }
-sub S_ISLNK { ( $_[0] & _S_IFMT() ) == S_IFLNK() }
-sub S_ISSOCK { ( $_[0] & _S_IFMT() ) == S_IFSOCK() }
-sub S_ISBLK { ( $_[0] & _S_IFMT() ) == S_IFBLK() }
-sub S_ISCHR { ( $_[0] & _S_IFMT() ) == S_IFCHR() }
-sub S_ISFIFO { ( $_[0] & _S_IFMT() ) == S_IFIFO() }
-sub S_ISWHT { ( $_[0] & _S_IFMT() ) == S_IFWHT() }
-sub S_ISENFMT { ( $_[0] & _S_IFMT() ) == S_IFENFMT() }
-
-sub AUTOLOAD {
- (my $constname = $AUTOLOAD) =~ s/.*:://;
- die "&Fcntl::constant not defined" if $constname eq 'constant';
- my ($error, $val) = constant($constname);
- if ($error) {
- my (undef,$file,$line) = caller;
- die "$error at $file line $line.\n";
- }
- *$AUTOLOAD = sub { $val };
- goto &$AUTOLOAD;
-}
-
-XSLoader::load 'Fcntl', $VERSION;
-
-1;
diff --git a/Master/xemtex/perl/lib/File/Basename.pm b/Master/xemtex/perl/lib/File/Basename.pm
deleted file mode 100644
index f2ef495cddf..00000000000
--- a/Master/xemtex/perl/lib/File/Basename.pm
+++ /dev/null
@@ -1,289 +0,0 @@
-package File::Basename;
-
-=head1 NAME
-
-fileparse - split a pathname into pieces
-
-basename - extract just the filename from a path
-
-dirname - extract just the directory from a path
-
-=head1 SYNOPSIS
-
- use File::Basename;
-
- ($name,$path,$suffix) = fileparse($fullname,@suffixlist)
- fileparse_set_fstype($os_string);
- $basename = basename($fullname,@suffixlist);
- $dirname = dirname($fullname);
-
- ($name,$path,$suffix) = fileparse("lib/File/Basename.pm",qr{\.pm});
- fileparse_set_fstype("VMS");
- $basename = basename("lib/File/Basename.pm",qr{\.pm});
- $dirname = dirname("lib/File/Basename.pm");
-
-=head1 DESCRIPTION
-
-These routines allow you to parse file specifications into useful
-pieces using the syntax of different operating systems.
-
-=over 4
-
-=item fileparse_set_fstype
-
-You select the syntax via the routine fileparse_set_fstype().
-
-If the argument passed to it contains one of the substrings
-"VMS", "MSDOS", "MacOS", "AmigaOS" or "MSWin32", the file specification
-syntax of that operating system is used in future calls to
-fileparse(), basename(), and dirname(). If it contains none of
-these substrings, Unix syntax is used. This pattern matching is
-case-insensitive. If you've selected VMS syntax, and the file
-specification you pass to one of these routines contains a "/",
-they assume you are using Unix emulation and apply the Unix syntax
-rules instead, for that function call only.
-
-If the argument passed to it contains one of the substrings "VMS",
-"MSDOS", "MacOS", "AmigaOS", "os2", "MSWin32" or "RISCOS", then the pattern
-matching for suffix removal is performed without regard for case,
-since those systems are not case-sensitive when opening existing files
-(though some of them preserve case on file creation).
-
-If you haven't called fileparse_set_fstype(), the syntax is chosen
-by examining the builtin variable C<$^O> according to these rules.
-
-=item fileparse
-
-The fileparse() routine divides a file specification into three
-parts: a leading B<path>, a file B<name>, and a B<suffix>. The
-B<path> contains everything up to and including the last directory
-separator in the input file specification. The remainder of the input
-file specification is then divided into B<name> and B<suffix> based on
-the optional patterns you specify in C<@suffixlist>. Each element of
-this list can be a qr-quoted pattern (or a string which is interpreted
-as a regular expression), and is matched
-against the end of B<name>. If this succeeds, the matching portion of
-B<name> is removed and prepended to B<suffix>. By proper use of
-C<@suffixlist>, you can remove file types or versions for examination.
-
-You are guaranteed that if you concatenate B<path>, B<name>, and
-B<suffix> together in that order, the result will denote the same
-file as the input file specification.
-
-=back
-
-=head1 EXAMPLES
-
-Using Unix file syntax:
-
- ($base,$path,$type) = fileparse('/virgil/aeneid/draft.book7',
- qr{\.book\d+});
-
-would yield
-
- $base eq 'draft'
- $path eq '/virgil/aeneid/',
- $type eq '.book7'
-
-Similarly, using VMS syntax:
-
- ($name,$dir,$type) = fileparse('Doc_Root:[Help]Rhetoric.Rnh',
- qr{\..*});
-
-would yield
-
- $name eq 'Rhetoric'
- $dir eq 'Doc_Root:[Help]'
- $type eq '.Rnh'
-
-=over
-
-=item C<basename>
-
-The basename() routine returns the first element of the list produced
-by calling fileparse() with the same arguments, except that it always
-quotes metacharacters in the given suffixes. It is provided for
-programmer compatibility with the Unix shell command basename(1).
-
-=item C<dirname>
-
-The dirname() routine returns the directory portion of the input file
-specification. When using VMS or MacOS syntax, this is identical to the
-second element of the list produced by calling fileparse() with the same
-input file specification. (Under VMS, if there is no directory information
-in the input file specification, then the current default device and
-directory are returned.) When using Unix or MSDOS syntax, the return
-value conforms to the behavior of the Unix shell command dirname(1). This
-is usually the same as the behavior of fileparse(), but differs in some
-cases. For example, for the input file specification F<lib/>, fileparse()
-considers the directory name to be F<lib/>, while dirname() considers the
-directory name to be F<.>).
-
-=back
-
-=cut
-
-
-## use strict;
-# A bit of juggling to insure that C<use re 'taint';> always works, since
-# File::Basename is used during the Perl build, when the re extension may
-# not be available.
-BEGIN {
- unless (eval { require re; })
- { eval ' sub re::import { $^H |= 0x00100000; } ' }
- import re 'taint';
-}
-
-
-
-use 5.006;
-use warnings;
-our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase);
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(fileparse fileparse_set_fstype basename dirname);
-$VERSION = "2.71";
-
-
-# fileparse_set_fstype() - specify OS-based rules used in future
-# calls to routines in this package
-#
-# Currently recognized values: VMS, MSDOS, MacOS, AmigaOS, os2, RISCOS
-# Any other name uses Unix-style rules and is case-sensitive
-
-sub fileparse_set_fstype {
- my @old = ($Fileparse_fstype, $Fileparse_igncase);
- if (@_) {
- $Fileparse_fstype = $_[0];
- $Fileparse_igncase = ($_[0] =~ /^(?:MacOS|VMS|AmigaOS|os2|RISCOS|MSWin32|MSDOS)/i);
- }
- wantarray ? @old : $old[0];
-}
-
-# fileparse() - parse file specification
-#
-# Version 2.4 27-Sep-1996 Charles Bailey bailey@genetics.upenn.edu
-
-
-sub fileparse {
- my($fullname,@suffices) = @_;
- unless (defined $fullname) {
- require Carp;
- Carp::croak "fileparse(): need a valid pathname";
- }
- my($fstype,$igncase) = ($Fileparse_fstype, $Fileparse_igncase);
- my($dirpath,$tail,$suffix,$basename);
- my($taint) = substr($fullname,0,0); # Is $fullname tainted?
-
- if ($fstype =~ /^VMS/i) {
- if ($fullname =~ m#/#) { $fstype = '' } # We're doing Unix emulation
- else {
- ($dirpath,$basename) = ($fullname =~ /^(.*[:>\]])?(.*)/s);
- $dirpath ||= ''; # should always be defined
- }
- }
- if ($fstype =~ /^MS(DOS|Win32)|epoc/i) {
- ($dirpath,$basename) = ($fullname =~ /^((?:.*[:\\\/])?)(.*)/s);
- $dirpath .= '.\\' unless $dirpath =~ /[\\\/]\z/;
- }
- elsif ($fstype =~ /^os2/i) {
- ($dirpath,$basename) = ($fullname =~ m#^((?:.*[:\\/])?)(.*)#s);
- $dirpath = './' unless $dirpath; # Can't be 0
- $dirpath .= '/' unless $dirpath =~ m#[\\/]\z#;
- }
- elsif ($fstype =~ /^MacOS/si) {
- ($dirpath,$basename) = ($fullname =~ /^(.*:)?(.*)/s);
- $dirpath = ':' unless $dirpath;
- }
- elsif ($fstype =~ /^AmigaOS/i) {
- ($dirpath,$basename) = ($fullname =~ /(.*[:\/])?(.*)/s);
- $dirpath = './' unless $dirpath;
- }
- elsif ($fstype !~ /^VMS/i) { # default to Unix
- ($dirpath,$basename) = ($fullname =~ m#^(.*/)?(.*)#s);
- if ($^O eq 'VMS' and $fullname =~ m:^(/[^/]+/000000(/|$))(.*):) {
- # dev:[000000] is top of VMS tree, similar to Unix '/'
- # so strip it off and treat the rest as "normal"
- my $devspec = $1;
- my $remainder = $3;
- ($dirpath,$basename) = ($remainder =~ m#^(.*/)?(.*)#s);
- $dirpath ||= ''; # should always be defined
- $dirpath = $devspec.$dirpath;
- }
- $dirpath = './' unless $dirpath;
- }
-
- if (@suffices) {
- $tail = '';
- foreach $suffix (@suffices) {
- my $pat = ($igncase ? '(?i)' : '') . "($suffix)\$";
- if ($basename =~ s/$pat//s) {
- $taint .= substr($suffix,0,0);
- $tail = $1 . $tail;
- }
- }
- }
-
- $tail .= $taint if defined $tail; # avoid warning if $tail == undef
- wantarray ? ($basename .= $taint, $dirpath .= $taint, $tail)
- : ($basename .= $taint);
-}
-
-
-# basename() - returns first element of list returned by fileparse()
-
-sub basename {
- my($name) = shift;
- (fileparse($name, map("\Q$_\E",@_)))[0];
-}
-
-
-# dirname() - returns device and directory portion of file specification
-# Behavior matches that of Unix dirname(1) exactly for Unix and MSDOS
-# filespecs except for names ending with a separator, e.g., "/xx/yy/".
-# This differs from the second element of the list returned
-# by fileparse() in that the trailing '/' (Unix) or '\' (MSDOS) (and
-# the last directory name if the filespec ends in a '/' or '\'), is lost.
-
-sub dirname {
- my($basename,$dirname) = fileparse($_[0]);
- my($fstype) = $Fileparse_fstype;
-
- if ($fstype =~ /VMS/i) {
- if ($_[0] =~ m#/#) { $fstype = '' }
- else { return $dirname || $ENV{DEFAULT} }
- }
- if ($fstype =~ /MacOS/i) {
- if( !length($basename) && $dirname !~ /^[^:]+:\z/) {
- $dirname =~ s/([^:]):\z/$1/s;
- ($basename,$dirname) = fileparse $dirname;
- }
- $dirname .= ":" unless $dirname =~ /:\z/;
- }
- elsif ($fstype =~ /MS(DOS|Win32)|os2/i) {
- $dirname =~ s/([^:])[\\\/]*\z/$1/;
- unless( length($basename) ) {
- ($basename,$dirname) = fileparse $dirname;
- $dirname =~ s/([^:])[\\\/]*\z/$1/;
- }
- }
- elsif ($fstype =~ /AmigaOS/i) {
- if ( $dirname =~ /:\z/) { return $dirname }
- chop $dirname;
- $dirname =~ s#[^:/]+\z## unless length($basename);
- }
- else {
- $dirname =~ s:(.)/*\z:$1:s;
- unless( length($basename) ) {
- local($File::Basename::Fileparse_fstype) = $fstype;
- ($basename,$dirname) = fileparse $dirname;
- $dirname =~ s:(.)/*\z:$1:s;
- }
- }
-
- $dirname;
-}
-
-fileparse_set_fstype $^O;
-
-1;
diff --git a/Master/xemtex/perl/lib/File/Compare.pm b/Master/xemtex/perl/lib/File/Compare.pm
deleted file mode 100644
index 0b73d7c7657..00000000000
--- a/Master/xemtex/perl/lib/File/Compare.pm
+++ /dev/null
@@ -1,178 +0,0 @@
-package File::Compare;
-
-use 5.006;
-use strict;
-use warnings;
-our($VERSION, @ISA, @EXPORT, @EXPORT_OK, $Too_Big);
-
-require Exporter;
-use Carp;
-
-$VERSION = '1.1003';
-@ISA = qw(Exporter);
-@EXPORT = qw(compare);
-@EXPORT_OK = qw(cmp compare_text);
-
-$Too_Big = 1024 * 1024 * 2;
-
-sub compare {
- croak("Usage: compare( file1, file2 [, buffersize]) ")
- unless(@_ == 2 || @_ == 3);
-
- my ($from,$to,$size) = @_;
- my $text_mode = defined($size) && (ref($size) eq 'CODE' || $size < 0);
-
- my ($fromsize,$closefrom,$closeto);
- local (*FROM, *TO);
-
- croak("from undefined") unless (defined $from);
- croak("to undefined") unless (defined $to);
-
- if (ref($from) &&
- (UNIVERSAL::isa($from,'GLOB') || UNIVERSAL::isa($from,'IO::Handle'))) {
- *FROM = *$from;
- } elsif (ref(\$from) eq 'GLOB') {
- *FROM = $from;
- } else {
- open(FROM,"<$from") or goto fail_open1;
- unless ($text_mode) {
- binmode FROM;
- $fromsize = -s FROM;
- }
- $closefrom = 1;
- }
-
- if (ref($to) &&
- (UNIVERSAL::isa($to,'GLOB') || UNIVERSAL::isa($to,'IO::Handle'))) {
- *TO = *$to;
- } elsif (ref(\$to) eq 'GLOB') {
- *TO = $to;
- } else {
- open(TO,"<$to") or goto fail_open2;
- binmode TO unless $text_mode;
- $closeto = 1;
- }
-
- if (!$text_mode && $closefrom && $closeto) {
- # If both are opened files we know they differ if their size differ
- goto fail_inner if $fromsize != -s TO;
- }
-
- if ($text_mode) {
- local $/ = "\n";
- my ($fline,$tline);
- while (defined($fline = <FROM>)) {
- goto fail_inner unless defined($tline = <TO>);
- if (ref $size) {
- # $size contains ref to comparison function
- goto fail_inner if &$size($fline, $tline);
- } else {
- goto fail_inner if $fline ne $tline;
- }
- }
- goto fail_inner if defined($tline = <TO>);
- }
- else {
- unless (defined($size) && $size > 0) {
- $size = $fromsize || -s TO || 0;
- $size = 1024 if $size < 512;
- $size = $Too_Big if $size > $Too_Big;
- }
-
- my ($fr,$tr,$fbuf,$tbuf);
- $fbuf = $tbuf = '';
- while(defined($fr = read(FROM,$fbuf,$size)) && $fr > 0) {
- unless (defined($tr = read(TO,$tbuf,$fr)) && $tbuf eq $fbuf) {
- goto fail_inner;
- }
- }
- goto fail_inner if defined($tr = read(TO,$tbuf,$size)) && $tr > 0;
- }
-
- close(TO) || goto fail_open2 if $closeto;
- close(FROM) || goto fail_open1 if $closefrom;
-
- return 0;
-
- # All of these contortions try to preserve error messages...
- fail_inner:
- close(TO) || goto fail_open2 if $closeto;
- close(FROM) || goto fail_open1 if $closefrom;
-
- return 1;
-
- fail_open2:
- if ($closefrom) {
- my $status = $!;
- $! = 0;
- close FROM;
- $! = $status unless $!;
- }
- fail_open1:
- return -1;
-}
-
-sub cmp;
-*cmp = \&compare;
-
-sub compare_text {
- my ($from,$to,$cmp) = @_;
- croak("Usage: compare_text( file1, file2 [, cmp-function])")
- unless @_ == 2 || @_ == 3;
- croak("Third arg to compare_text() function must be a code reference")
- if @_ == 3 && ref($cmp) ne 'CODE';
-
- # Using a negative buffer size puts compare into text_mode too
- $cmp = -1 unless defined $cmp;
- compare($from, $to, $cmp);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-File::Compare - Compare files or filehandles
-
-=head1 SYNOPSIS
-
- use File::Compare;
-
- if (compare("file1","file2") == 0) {
- print "They're equal\n";
- }
-
-=head1 DESCRIPTION
-
-The File::Compare::compare function compares the contents of two
-sources, each of which can be a file or a file handle. It is exported
-from File::Compare by default.
-
-File::Compare::cmp is a synonym for File::Compare::compare. It is
-exported from File::Compare only by request.
-
-File::Compare::compare_text does a line by line comparison of the two
-files. It stops as soon as a difference is detected. compare_text()
-accepts an optional third argument: This must be a CODE reference to
-a line comparison function, which returns 0 when both lines are considered
-equal. For example:
-
- compare_text($file1, $file2)
-
-is basically equivalent to
-
- compare_text($file1, $file2, sub {$_[0] ne $_[1]} )
-
-=head1 RETURN
-
-File::Compare::compare and its sibling functions return 0 if the files
-are equal, 1 if the files are unequal, or -1 if an error was encountered.
-
-=head1 AUTHOR
-
-File::Compare was written by Nick Ing-Simmons.
-Its original documentation was written by Chip Salzenberg.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/File/Copy.pm b/Master/xemtex/perl/lib/File/Copy.pm
deleted file mode 100644
index 08da5e5d31e..00000000000
--- a/Master/xemtex/perl/lib/File/Copy.pm
+++ /dev/null
@@ -1,443 +0,0 @@
-# File/Copy.pm. Written in 1994 by Aaron Sherman <ajs@ajs.com>. This
-# source code has been placed in the public domain by the author.
-# Please be kind and preserve the documentation.
-#
-# Additions copyright 1996 by Charles Bailey. Permission is granted
-# to distribute the revised code under the same terms as Perl itself.
-
-package File::Copy;
-
-use 5.006;
-use strict;
-use warnings;
-use Carp;
-use File::Spec;
-use Config;
-our(@ISA, @EXPORT, @EXPORT_OK, $VERSION, $Too_Big, $Syscopy_is_copy);
-sub copy;
-sub syscopy;
-sub cp;
-sub mv;
-
-# Note that this module implements only *part* of the API defined by
-# the File/Copy.pm module of the File-Tools-2.0 package. However, that
-# package has not yet been updated to work with Perl 5.004, and so it
-# would be a Bad Thing for the CPAN module to grab it and replace this
-# module. Therefore, we set this module's version higher than 2.0.
-$VERSION = '2.05';
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(copy move);
-@EXPORT_OK = qw(cp mv);
-
-$Too_Big = 1024 * 1024 * 2;
-
-my $macfiles;
-if ($^O eq 'MacOS') {
- $macfiles = eval { require Mac::MoreFiles };
- warn 'Mac::MoreFiles could not be loaded; using non-native syscopy'
- if $^W;
-}
-
-sub _catname {
- my($from, $to) = @_;
- if (not defined &basename) {
- require File::Basename;
- import File::Basename 'basename';
- }
-
- if ($^O eq 'MacOS') {
- # a partial dir name that's valid only in the cwd (e.g. 'tmp')
- $to = ':' . $to if $to !~ /:/;
- }
-
- return File::Spec->catfile($to, basename($from));
-}
-
-sub copy {
- croak("Usage: copy(FROM, TO [, BUFFERSIZE]) ")
- unless(@_ == 2 || @_ == 3);
-
- my $from = shift;
- my $to = shift;
-
- my $from_a_handle = (ref($from)
- ? (ref($from) eq 'GLOB'
- || UNIVERSAL::isa($from, 'GLOB')
- || UNIVERSAL::isa($from, 'IO::Handle'))
- : (ref(\$from) eq 'GLOB'));
- my $to_a_handle = (ref($to)
- ? (ref($to) eq 'GLOB'
- || UNIVERSAL::isa($to, 'GLOB')
- || UNIVERSAL::isa($to, 'IO::Handle'))
- : (ref(\$to) eq 'GLOB'));
-
- if ($from eq $to) { # works for references, too
- croak("'$from' and '$to' are identical (not copied)");
- }
-
- if ($Config{d_symlink} && $Config{d_readlink} &&
- !($^O eq 'Win32' || $^O eq 'os2' || $^O eq 'vms')) {
- no warnings 'io'; # don't warn if -l on filehandle
- if ((-e $from && -l $from) || (-e $to && -l $to)) {
- my @fs = stat($from);
- my @ts = stat($to);
- if (@fs && @ts && $fs[0] == $ts[0] && $fs[1] == $ts[1]) {
- croak("'$from' and '$to' are identical (not copied)");
- }
- }
- }
-
- if (!$from_a_handle && !$to_a_handle && -d $to && ! -d $from) {
- $to = _catname($from, $to);
- }
-
- if (defined &syscopy && !$Syscopy_is_copy
- && !$to_a_handle
- && !($from_a_handle && $^O eq 'os2' ) # OS/2 cannot handle handles
- && !($from_a_handle && $^O eq 'mpeix') # and neither can MPE/iX.
- && !($from_a_handle && $^O eq 'MSWin32')
- && !($from_a_handle && $^O eq 'MacOS')
- && !($from_a_handle && $^O eq 'NetWare')
- )
- {
- return syscopy($from, $to);
- }
-
- my $closefrom = 0;
- my $closeto = 0;
- my ($size, $status, $r, $buf);
- local($\) = '';
-
- my $from_h;
- if ($from_a_handle) {
- $from_h = $from;
- } else {
- $from = _protect($from) if $from =~ /^\s/s;
- $from_h = \do { local *FH };
- open($from_h, "< $from\0") or goto fail_open1;
- binmode $from_h or die "($!,$^E)";
- $closefrom = 1;
- }
-
- my $to_h;
- if ($to_a_handle) {
- $to_h = $to;
- } else {
- $to = _protect($to) if $to =~ /^\s/s;
- $to_h = \do { local *FH };
- open($to_h,"> $to\0") or goto fail_open2;
- binmode $to_h or die "($!,$^E)";
- $closeto = 1;
- }
-
- if (@_) {
- $size = shift(@_) + 0;
- croak("Bad buffer size for copy: $size\n") unless ($size > 0);
- } else {
- $size = tied(*$from_h) ? 0 : -s $from_h || 0;
- $size = 1024 if ($size < 512);
- $size = $Too_Big if ($size > $Too_Big);
- }
-
- $! = 0;
- for (;;) {
- my ($r, $w, $t);
- defined($r = sysread($from_h, $buf, $size))
- or goto fail_inner;
- last unless $r;
- for ($w = 0; $w < $r; $w += $t) {
- $t = syswrite($to_h, $buf, $r - $w, $w)
- or goto fail_inner;
- }
- }
-
- close($to_h) || goto fail_open2 if $closeto;
- close($from_h) || goto fail_open1 if $closefrom;
-
- # Use this idiom to avoid uninitialized value warning.
- return 1;
-
- # All of these contortions try to preserve error messages...
- fail_inner:
- if ($closeto) {
- $status = $!;
- $! = 0;
- close $to_h;
- $! = $status unless $!;
- }
- fail_open2:
- if ($closefrom) {
- $status = $!;
- $! = 0;
- close $from_h;
- $! = $status unless $!;
- }
- fail_open1:
- return 0;
-}
-
-sub move {
- my($from,$to) = @_;
- my($copied,$fromsz,$tosz1,$tomt1,$tosz2,$tomt2,$sts,$ossts);
-
- if (-d $to && ! -d $from) {
- $to = _catname($from, $to);
- }
-
- ($tosz1,$tomt1) = (stat($to))[7,9];
- $fromsz = -s $from;
- if ($^O eq 'os2' and defined $tosz1 and defined $fromsz) {
- # will not rename with overwrite
- unlink $to;
- }
- return 1 if rename $from, $to;
-
- ($sts,$ossts) = ($! + 0, $^E + 0);
- # Did rename return an error even though it succeeded, because $to
- # is on a remote NFS file system, and NFS lost the server's ack?
- return 1 if defined($fromsz) && !-e $from && # $from disappeared
- (($tosz2,$tomt2) = (stat($to))[7,9]) && # $to's there
- ($tosz1 != $tosz2 or $tomt1 != $tomt2) && # and changed
- $tosz2 == $fromsz; # it's all there
-
- ($tosz1,$tomt1) = (stat($to))[7,9]; # just in case rename did something
- return 1 if ($copied = copy($from,$to)) && unlink($from);
-
- ($tosz2,$tomt2) = ((stat($to))[7,9],0,0) if defined $tomt1;
- unlink($to) if !defined($tomt1) or $tomt1 != $tomt2 or $tosz1 != $tosz2;
- ($!,$^E) = ($sts,$ossts);
- return 0;
-}
-
-*cp = \&copy;
-*mv = \&move;
-
-
-if ($^O eq 'MacOS') {
- *_protect = sub { MacPerl::MakeFSSpec($_[0]) };
-} else {
- *_protect = sub { "./$_[0]" };
-}
-
-# &syscopy is an XSUB under OS/2
-unless (defined &syscopy) {
- if ($^O eq 'VMS') {
- *syscopy = \&rmscopy;
- } elsif ($^O eq 'mpeix') {
- *syscopy = sub {
- return 0 unless @_ == 2;
- # Use the MPE cp program in order to
- # preserve MPE file attributes.
- return system('/bin/cp', '-f', $_[0], $_[1]) == 0;
- };
- } elsif ($^O eq 'MSWin32') {
- *syscopy = sub {
- return 0 unless @_ == 2;
- return Win32::CopyFile(@_, 1);
- };
- } elsif ($macfiles) {
- *syscopy = sub {
- my($from, $to) = @_;
- my($dir, $toname);
-
- return 0 unless -e $from;
-
- if ($to =~ /(.*:)([^:]+):?$/) {
- ($dir, $toname) = ($1, $2);
- } else {
- ($dir, $toname) = (":", $to);
- }
-
- unlink($to);
- Mac::MoreFiles::FSpFileCopy($from, $dir, $toname, 1);
- };
- } else {
- $Syscopy_is_copy = 1;
- *syscopy = \&copy;
- }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-File::Copy - Copy files or filehandles
-
-=head1 SYNOPSIS
-
- use File::Copy;
-
- copy("file1","file2");
- copy("Copy.pm",\*STDOUT);'
- move("/dev1/fileA","/dev2/fileB");
-
- use POSIX;
- use File::Copy cp;
-
- $n = FileHandle->new("/a/file","r");
- cp($n,"x");'
-
-=head1 DESCRIPTION
-
-The File::Copy module provides two basic functions, C<copy> and
-C<move>, which are useful for getting the contents of a file from
-one place to another.
-
-=over 4
-
-=item *
-
-The C<copy> function takes two
-parameters: a file to copy from and a file to copy to. Either
-argument may be a string, a FileHandle reference or a FileHandle
-glob. Obviously, if the first argument is a filehandle of some
-sort, it will be read from, and if it is a file I<name> it will
-be opened for reading. Likewise, the second argument will be
-written to (and created if need be). Trying to copy a file on top
-of itself is a fatal error.
-
-B<Note that passing in
-files as handles instead of names may lead to loss of information
-on some operating systems; it is recommended that you use file
-names whenever possible.> Files are opened in binary mode where
-applicable. To get a consistent behaviour when copying from a
-filehandle to a file, use C<binmode> on the filehandle.
-
-An optional third parameter can be used to specify the buffer
-size used for copying. This is the number of bytes from the
-first file, that wil be held in memory at any given time, before
-being written to the second file. The default buffer size depends
-upon the file, but will generally be the whole file (up to 2Mb), or
-1k for filehandles that do not reference files (eg. sockets).
-
-You may use the syntax C<use File::Copy "cp"> to get at the
-"cp" alias for this function. The syntax is I<exactly> the same.
-
-=item *
-
-The C<move> function also takes two parameters: the current name
-and the intended name of the file to be moved. If the destination
-already exists and is a directory, and the source is not a
-directory, then the source file will be renamed into the directory
-specified by the destination.
-
-If possible, move() will simply rename the file. Otherwise, it copies
-the file to the new location and deletes the original. If an error occurs
-during this copy-and-delete process, you may be left with a (possibly partial)
-copy of the file under the destination name.
-
-You may use the "mv" alias for this function in the same way that
-you may use the "cp" alias for C<copy>.
-
-=back
-
-File::Copy also provides the C<syscopy> routine, which copies the
-file specified in the first parameter to the file specified in the
-second parameter, preserving OS-specific attributes and file
-structure. For Unix systems, this is equivalent to the simple
-C<copy> routine, which doesn't preserve OS-specific attributes. For
-VMS systems, this calls the C<rmscopy> routine (see below). For OS/2
-systems, this calls the C<syscopy> XSUB directly. For Win32 systems,
-this calls C<Win32::CopyFile>.
-
-On Mac OS (Classic), C<syscopy> calls C<Mac::MoreFiles::FSpFileCopy>,
-if available.
-
-=head2 Special behaviour if C<syscopy> is defined (OS/2, VMS and Win32)
-
-If both arguments to C<copy> are not file handles,
-then C<copy> will perform a "system copy" of
-the input file to a new output file, in order to preserve file
-attributes, indexed file structure, I<etc.> The buffer size
-parameter is ignored. If either argument to C<copy> is a
-handle to an opened file, then data is copied using Perl
-operators, and no effort is made to preserve file attributes
-or record structure.
-
-The system copy routine may also be called directly under VMS and OS/2
-as C<File::Copy::syscopy> (or under VMS as C<File::Copy::rmscopy>, which
-is the routine that does the actual work for syscopy).
-
-=over 4
-
-=item rmscopy($from,$to[,$date_flag])
-
-The first and second arguments may be strings, typeglobs, typeglob
-references, or objects inheriting from IO::Handle;
-they are used in all cases to obtain the
-I<filespec> of the input and output files, respectively. The
-name and type of the input file are used as defaults for the
-output file, if necessary.
-
-A new version of the output file is always created, which
-inherits the structure and RMS attributes of the input file,
-except for owner and protections (and possibly timestamps;
-see below). All data from the input file is copied to the
-output file; if either of the first two parameters to C<rmscopy>
-is a file handle, its position is unchanged. (Note that this
-means a file handle pointing to the output file will be
-associated with an old version of that file after C<rmscopy>
-returns, not the newly created version.)
-
-The third parameter is an integer flag, which tells C<rmscopy>
-how to handle timestamps. If it is E<lt> 0, none of the input file's
-timestamps are propagated to the output file. If it is E<gt> 0, then
-it is interpreted as a bitmask: if bit 0 (the LSB) is set, then
-timestamps other than the revision date are propagated; if bit 1
-is set, the revision date is propagated. If the third parameter
-to C<rmscopy> is 0, then it behaves much like the DCL COPY command:
-if the name or type of the output file was explicitly specified,
-then no timestamps are propagated, but if they were taken implicitly
-from the input filespec, then all timestamps other than the
-revision date are propagated. If this parameter is not supplied,
-it defaults to 0.
-
-Like C<copy>, C<rmscopy> returns 1 on success. If an error occurs,
-it sets C<$!>, deletes the output file, and returns 0.
-
-=back
-
-=head1 RETURN
-
-All functions return 1 on success, 0 on failure.
-$! will be set if an error was encountered.
-
-=head1 NOTES
-
-=over 4
-
-=item *
-
-On Mac OS (Classic), the path separator is ':', not '/', and the
-current directory is denoted as ':', not '.'. You should be careful
-about specifying relative pathnames. While a full path always begins
-with a volume name, a relative pathname should always begin with a
-':'. If specifying a volume name only, a trailing ':' is required.
-
-E.g.
-
- copy("file1", "tmp"); # creates the file 'tmp' in the current directory
- copy("file1", ":tmp:"); # creates :tmp:file1
- copy("file1", ":tmp"); # same as above
- copy("file1", "tmp"); # same as above, if 'tmp' is a directory (but don't do
- # that, since it may cause confusion, see example #1)
- copy("file1", "tmp:file1"); # error, since 'tmp:' is not a volume
- copy("file1", ":tmp:file1"); # ok, partial path
- copy("file1", "DataHD:"); # creates DataHD:file1
-
- move("MacintoshHD:fileA", "DataHD:fileB"); # moves (don't copies) files from one
- # volume to another
-
-=back
-
-=head1 AUTHOR
-
-File::Copy was written by Aaron Sherman I<E<lt>ajs@ajs.comE<gt>> in 1995,
-and updated by Charles Bailey I<E<lt>bailey@newman.upenn.eduE<gt>> in 1996.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/File/Find.pm b/Master/xemtex/perl/lib/File/Find.pm
deleted file mode 100644
index 72fd195c9b0..00000000000
--- a/Master/xemtex/perl/lib/File/Find.pm
+++ /dev/null
@@ -1,1212 +0,0 @@
-package File::Find;
-use 5.006;
-use strict;
-use warnings;
-use warnings::register;
-our $VERSION = '1.04';
-require Exporter;
-require Cwd;
-
-=head1 NAME
-
-File::Find - Traverse a directory tree.
-
-=head1 SYNOPSIS
-
- use File::Find;
- find(\&wanted, @directories_to_seach);
- sub wanted { ... }
-
- use File::Find;
- finddepth(\&wanted, @directories_to_search);
- sub wanted { ... }
-
- use File::Find;
- find({ wanted => \&process, follow => 1 }, '.');
-
-=head1 DESCRIPTION
-
-These are functions for searching through directory trees doing work
-on each file found similar to the Unix I<find> command. File::Find
-exports two functions, C<find> and C<finddepth>. They work similarly
-but have subtle differences.
-
-=over 4
-
-=item B<find>
-
- find(\&wanted, @directories);
- find(\%options, @directories);
-
-find() does a breadth-first search over the given @directories in the
-order they are given. In essense, it works from the top down.
-
-For each file or directory found the &wanted subroutine is called (see
-below for details). Additionally, for each directory found it will go
-into that directory and continue the search.
-
-=item B<finddepth>
-
- finddepth(\&wanted, @directories);
- finddepth(\%options, @directories);
-
-finddepth() works just like find() except it does a depth-first search.
-It works from the bottom of the directory tree up.
-
-=back
-
-=head2 %options
-
-The first argument to find() is either a hash reference describing the
-operations to be performed for each file, or a code reference. The
-code reference is described in L<The wanted function> below.
-
-Here are the possible keys for the hash:
-
-=over 3
-
-=item C<wanted>
-
-The value should be a code reference. This code reference is
-described in L<The wanted function> below.
-
-=item C<bydepth>
-
-Reports the name of a directory only AFTER all its entries
-have been reported. Entry point finddepth() is a shortcut for
-specifying C<{ bydepth =E<gt> 1 }> in the first argument of find().
-
-=item C<preprocess>
-
-The value should be a code reference. This code reference is used to
-preprocess the current directory. The name of currently processed
-directory is in $File::Find::dir. Your preprocessing function is
-called after readdir() but before the loop that calls the wanted()
-function. It is called with a list of strings (actually file/directory
-names) and is expected to return a list of strings. The code can be
-used to sort the file/directory names alphabetically, numerically,
-or to filter out directory entries based on their name alone. When
-I<follow> or I<follow_fast> are in effect, C<preprocess> is a no-op.
-
-=item C<postprocess>
-
-The value should be a code reference. It is invoked just before leaving
-the currently processed directory. It is called in void context with no
-arguments. The name of the current directory is in $File::Find::dir. This
-hook is handy for summarizing a directory, such as calculating its disk
-usage. When I<follow> or I<follow_fast> are in effect, C<postprocess> is a
-no-op.
-
-=item C<follow>
-
-Causes symbolic links to be followed. Since directory trees with symbolic
-links (followed) may contain files more than once and may even have
-cycles, a hash has to be built up with an entry for each file.
-This might be expensive both in space and time for a large
-directory tree. See I<follow_fast> and I<follow_skip> below.
-If either I<follow> or I<follow_fast> is in effect:
-
-=over 6
-
-=item *
-
-It is guaranteed that an I<lstat> has been called before the user's
-I<wanted()> function is called. This enables fast file checks involving S< _>.
-
-=item *
-
-There is a variable C<$File::Find::fullname> which holds the absolute
-pathname of the file with all symbolic links resolved
-
-=back
-
-=item C<follow_fast>
-
-This is similar to I<follow> except that it may report some files more
-than once. It does detect cycles, however. Since only symbolic links
-have to be hashed, this is much cheaper both in space and time. If
-processing a file more than once (by the user's I<wanted()> function)
-is worse than just taking time, the option I<follow> should be used.
-
-=item C<follow_skip>
-
-C<follow_skip==1>, which is the default, causes all files which are
-neither directories nor symbolic links to be ignored if they are about
-to be processed a second time. If a directory or a symbolic link
-are about to be processed a second time, File::Find dies.
-C<follow_skip==0> causes File::Find to die if any file is about to be
-processed a second time.
-C<follow_skip==2> causes File::Find to ignore any duplicate files and
-directories but to proceed normally otherwise.
-
-=item C<dangling_symlinks>
-
-If true and a code reference, will be called with the symbolic link
-name and the directory it lives in as arguments. Otherwise, if true
-and warnings are on, warning "symbolic_link_name is a dangling
-symbolic link\n" will be issued. If false, the dangling symbolic link
-will be silently ignored.
-
-=item C<no_chdir>
-
-Does not C<chdir()> to each directory as it recurses. The wanted()
-function will need to be aware of this, of course. In this case,
-C<$_> will be the same as C<$File::Find::name>.
-
-=item C<untaint>
-
-If find is used in taint-mode (-T command line switch or if EUID != UID
-or if EGID != GID) then internally directory names have to be untainted
-before they can be chdir'ed to. Therefore they are checked against a regular
-expression I<untaint_pattern>. Note that all names passed to the user's
-I<wanted()> function are still tainted. If this option is used while
-not in taint-mode, C<untaint> is a no-op.
-
-=item C<untaint_pattern>
-
-See above. This should be set using the C<qr> quoting operator.
-The default is set to C<qr|^([-+@\w./]+)$|>.
-Note that the parentheses are vital.
-
-=item C<untaint_skip>
-
-If set, a directory which fails the I<untaint_pattern> is skipped,
-including all its sub-directories. The default is to 'die' in such a case.
-
-=back
-
-=head2 The wanted function
-
-The wanted() function does whatever verifications you want on each
-file and directory. It takes no arguments but rather does its work
-through a collection of variables.
-
-=over 4
-
-=item C<$File::Find::dir> is the current directory name,
-
-=item C<$_> is the current filename within that directory
-
-=item C<$File::Find::name> is the complete pathname to the file.
-
-=back
-
-Don't modify these variables.
-
-For example, when examining the file /some/path/foo.ext you will have:
-
- $File::Find::dir = /some/path/
- $_ = foo.ext
- $File::Find::name = /some/path/foo.ext
-
-You are chdir()'d toC<$File::Find::dir> when the function is called,
-unless C<no_chdir> was specified. Note that when changing to
-directories is in effect the root directory (F</>) is a somewhat
-special case inasmuch as the concatenation of C<$File::Find::dir>,
-C<'/'> and C<$_> is not literally equal to C<$File::Find::name>. The
-table below summarizes all variants:
-
- $File::Find::name $File::Find::dir $_
- default / / .
- no_chdir=>0 /etc / etc
- /etc/x /etc x
-
- no_chdir=>1 / / /
- /etc / /etc
- /etc/x /etc /etc/x
-
-
-When <follow> or <follow_fast> are in effect, there is
-also a C<$File::Find::fullname>. The function may set
-C<$File::Find::prune> to prune the tree unless C<bydepth> was
-specified. Unless C<follow> or C<follow_fast> is specified, for
-compatibility reasons (find.pl, find2perl) there are in addition the
-following globals available: C<$File::Find::topdir>,
-C<$File::Find::topdev>, C<$File::Find::topino>,
-C<$File::Find::topmode> and C<$File::Find::topnlink>.
-
-This library is useful for the C<find2perl> tool, which when fed,
-
- find2perl / -name .nfs\* -mtime +7 \
- -exec rm -f {} \; -o -fstype nfs -prune
-
-produces something like:
-
- sub wanted {
- /^\.nfs.*\z/s &&
- (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_)) &&
- int(-M _) > 7 &&
- unlink($_)
- ||
- ($nlink || (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_))) &&
- $dev < 0 &&
- ($File::Find::prune = 1);
- }
-
-Notice the C<_> in the above C<int(-M _)>: the C<_> is a magical
-filehandle that caches the information from the preceding
-stat(), lstat(), or filetest.
-
-Here's another interesting wanted function. It will find all symbolic
-links that don't resolve:
-
- sub wanted {
- -l && !-e && print "bogus link: $File::Find::name\n";
- }
-
-See also the script C<pfind> on CPAN for a nice application of this
-module.
-
-=head1 WARNINGS
-
-If you run your program with the C<-w> switch, or if you use the
-C<warnings> pragma, File::Find will report warnings for several weird
-situations. You can disable these warnings by putting the statement
-
- no warnings 'File::Find';
-
-in the appropriate scope. See L<perllexwarn> for more info about lexical
-warnings.
-
-=head1 CAVEAT
-
-=over 2
-
-=item $dont_use_nlink
-
-You can set the variable C<$File::Find::dont_use_nlink> to 1, if you want to
-force File::Find to always stat directories. This was used for file systems
-that do not have an C<nlink> count matching the number of sub-directories.
-Examples are ISO-9660 (CD-ROM), AFS, HPFS (OS/2 file system), FAT (DOS file
-system) and a couple of others.
-
-You shouldn't need to set this variable, since File::Find should now detect
-such file systems on-the-fly and switch itself to using stat. This works even
-for parts of your file system, like a mounted CD-ROM.
-
-If you do set C<$File::Find::dont_use_nlink> to 1, you will notice slow-downs.
-
-=item symlinks
-
-Be aware that the option to follow symbolic links can be dangerous.
-Depending on the structure of the directory tree (including symbolic
-links to directories) you might traverse a given (physical) directory
-more than once (only if C<follow_fast> is in effect).
-Furthermore, deleting or changing files in a symbolically linked directory
-might cause very unpleasant surprises, since you delete or change files
-in an unknown directory.
-
-=back
-
-=head1 NOTES
-
-=over 4
-
-=item *
-
-Mac OS (Classic) users should note a few differences:
-
-=over 4
-
-=item *
-
-The path separator is ':', not '/', and the current directory is denoted
-as ':', not '.'. You should be careful about specifying relative pathnames.
-While a full path always begins with a volume name, a relative pathname
-should always begin with a ':'. If specifying a volume name only, a
-trailing ':' is required.
-
-=item *
-
-C<$File::Find::dir> is guaranteed to end with a ':'. If C<$_>
-contains the name of a directory, that name may or may not end with a
-':'. Likewise, C<$File::Find::name>, which contains the complete
-pathname to that directory, and C<$File::Find::fullname>, which holds
-the absolute pathname of that directory with all symbolic links resolved,
-may or may not end with a ':'.
-
-=item *
-
-The default C<untaint_pattern> (see above) on Mac OS is set to
-C<qr|^(.+)$|>. Note that the parentheses are vital.
-
-=item *
-
-The invisible system file "Icon\015" is ignored. While this file may
-appear in every directory, there are some more invisible system files
-on every volume, which are all located at the volume root level (i.e.
-"MacintoshHD:"). These system files are B<not> excluded automatically.
-Your filter may use the following code to recognize invisible files or
-directories (requires Mac::Files):
-
- use Mac::Files;
-
- # invisible() -- returns 1 if file/directory is invisible,
- # 0 if it's visible or undef if an error occurred
-
- sub invisible($) {
- my $file = shift;
- my ($fileCat, $fileInfo);
- my $invisible_flag = 1 << 14;
-
- if ( $fileCat = FSpGetCatInfo($file) ) {
- if ($fileInfo = $fileCat->ioFlFndrInfo() ) {
- return (($fileInfo->fdFlags & $invisible_flag) && 1);
- }
- }
- return undef;
- }
-
-Generally, invisible files are system files, unless an odd application
-decides to use invisible files for its own purposes. To distinguish
-such files from system files, you have to look at the B<type> and B<creator>
-file attributes. The MacPerl built-in functions C<GetFileInfo(FILE)> and
-C<SetFileInfo(CREATOR, TYPE, FILES)> offer access to these attributes
-(see MacPerl.pm for details).
-
-Files that appear on the desktop actually reside in an (hidden) directory
-named "Desktop Folder" on the particular disk volume. Note that, although
-all desktop files appear to be on the same "virtual" desktop, each disk
-volume actually maintains its own "Desktop Folder" directory.
-
-=back
-
-=back
-
-=head1 HISTORY
-
-File::Find used to produce incorrect results if called recursively.
-During the development of perl 5.8 this bug was fixed.
-The first fixed version of File::Find was 1.01.
-
-=cut
-
-our @ISA = qw(Exporter);
-our @EXPORT = qw(find finddepth);
-
-
-use strict;
-my $Is_VMS;
-my $Is_MacOS;
-
-require File::Basename;
-require File::Spec;
-
-# Should ideally be my() not our() but local() currently
-# refuses to operate on lexicals
-
-our %SLnkSeen;
-our ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow,
- $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat,
- $pre_process, $post_process, $dangling_symlinks);
-
-sub contract_name {
- my ($cdir,$fn) = @_;
-
- return substr($cdir,0,rindex($cdir,'/')) if $fn eq $File::Find::current_dir;
-
- $cdir = substr($cdir,0,rindex($cdir,'/')+1);
-
- $fn =~ s|^\./||;
-
- my $abs_name= $cdir . $fn;
-
- if (substr($fn,0,3) eq '../') {
- 1 while $abs_name =~ s!/[^/]*/\.\./!/!;
- }
-
- return $abs_name;
-}
-
-# return the absolute name of a directory or file
-sub contract_name_Mac {
- my ($cdir,$fn) = @_;
- my $abs_name;
-
- if ($fn =~ /^(:+)(.*)$/) { # valid pathname starting with a ':'
-
- my $colon_count = length ($1);
- if ($colon_count == 1) {
- $abs_name = $cdir . $2;
- return $abs_name;
- }
- else {
- # need to move up the tree, but
- # only if it's not a volume name
- for (my $i=1; $i<$colon_count; $i++) {
- unless ($cdir =~ /^[^:]+:$/) { # volume name
- $cdir =~ s/[^:]+:$//;
- }
- else {
- return undef;
- }
- }
- $abs_name = $cdir . $2;
- return $abs_name;
- }
-
- }
- else {
-
- # $fn may be a valid path to a directory or file or (dangling)
- # symlink, without a leading ':'
- if ( (-e $fn) || (-l $fn) ) {
- if ($fn =~ /^[^:]+:/) { # a volume name like DataHD:*
- return $fn; # $fn is already an absolute path
- }
- else {
- $abs_name = $cdir . $fn;
- return $abs_name;
- }
- }
- else { # argh!, $fn is not a valid directory/file
- return undef;
- }
- }
-}
-
-sub PathCombine($$) {
- my ($Base,$Name) = @_;
- my $AbsName;
-
- if ($Is_MacOS) {
- # $Name is the resolved symlink (always a full path on MacOS),
- # i.e. there's no need to call contract_name_Mac()
- $AbsName = $Name;
-
- # (simple) check for recursion
- if ( ( $Base =~ /^$AbsName/) && (-d $AbsName) ) { # recursion
- return undef;
- }
- }
- else {
- if (substr($Name,0,1) eq '/') {
- $AbsName= $Name;
- }
- else {
- $AbsName= contract_name($Base,$Name);
- }
-
- # (simple) check for recursion
- my $newlen= length($AbsName);
- if ($newlen <= length($Base)) {
- if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/')
- && $AbsName eq substr($Base,0,$newlen))
- {
- return undef;
- }
- }
- }
- return $AbsName;
-}
-
-sub Follow_SymLink($) {
- my ($AbsName) = @_;
-
- my ($NewName,$DEV, $INO);
- ($DEV, $INO)= lstat $AbsName;
-
- while (-l _) {
- if ($SLnkSeen{$DEV, $INO}++) {
- if ($follow_skip < 2) {
- die "$AbsName is encountered a second time";
- }
- else {
- return undef;
- }
- }
- $NewName= PathCombine($AbsName, readlink($AbsName));
- unless(defined $NewName) {
- if ($follow_skip < 2) {
- die "$AbsName is a recursive symbolic link";
- }
- else {
- return undef;
- }
- }
- else {
- $AbsName= $NewName;
- }
- ($DEV, $INO) = lstat($AbsName);
- return undef unless defined $DEV; # dangling symbolic link
- }
-
- if ($full_check && defined $DEV && $SLnkSeen{$DEV, $INO}++) {
- if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) {
- die "$AbsName encountered a second time";
- }
- else {
- return undef;
- }
- }
-
- return $AbsName;
-}
-
-our($dir, $name, $fullname, $prune);
-sub _find_dir_symlnk($$$);
-sub _find_dir($$$);
-
-# check whether or not a scalar variable is tainted
-# (code straight from the Camel, 3rd ed., page 561)
-sub is_tainted_pp {
- my $arg = shift;
- my $nada = substr($arg, 0, 0); # zero-length
- local $@;
- eval { eval "# $nada" };
- return length($@) != 0;
-}
-
-sub _find_opt {
- my $wanted = shift;
- die "invalid top directory" unless defined $_[0];
-
- # This function must local()ize everything because callbacks may
- # call find() or finddepth()
-
- local %SLnkSeen;
- local ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow,
- $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat,
- $pre_process, $post_process, $dangling_symlinks);
- local($dir, $name, $fullname, $prune);
-
- my $cwd = $wanted->{bydepth} ? Cwd::fastcwd() : Cwd::getcwd();
- my $cwd_untainted = $cwd;
- my $check_t_cwd = 1;
- $wanted_callback = $wanted->{wanted};
- $bydepth = $wanted->{bydepth};
- $pre_process = $wanted->{preprocess};
- $post_process = $wanted->{postprocess};
- $no_chdir = $wanted->{no_chdir};
- $full_check = $wanted->{follow};
- $follow = $full_check || $wanted->{follow_fast};
- $follow_skip = $wanted->{follow_skip};
- $untaint = $wanted->{untaint};
- $untaint_pat = $wanted->{untaint_pattern};
- $untaint_skip = $wanted->{untaint_skip};
- $dangling_symlinks = $wanted->{dangling_symlinks};
-
- # for compatibility reasons (find.pl, find2perl)
- local our ($topdir, $topdev, $topino, $topmode, $topnlink);
-
- # a symbolic link to a directory doesn't increase the link count
- $avoid_nlink = $follow || $File::Find::dont_use_nlink;
-
- my ($abs_dir, $Is_Dir);
-
- Proc_Top_Item:
- foreach my $TOP (@_) {
- my $top_item = $TOP;
-
- if ($Is_MacOS) {
- ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
- $top_item = ":$top_item"
- if ( (-d _) && ( $top_item !~ /:/ ) );
- }
- else {
- $top_item =~ s|/\z|| unless $top_item eq '/';
- ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
- }
-
- $Is_Dir= 0;
-
- if ($follow) {
-
- if ($Is_MacOS) {
- $cwd = "$cwd:" unless ($cwd =~ /:$/); # for safety
-
- if ($top_item eq $File::Find::current_dir) {
- $abs_dir = $cwd;
- }
- else {
- $abs_dir = contract_name_Mac($cwd, $top_item);
- unless (defined $abs_dir) {
- warnings::warnif "Can't determine absolute path for $top_item (No such file or directory)\n";
- next Proc_Top_Item;
- }
- }
-
- }
- else {
- if (substr($top_item,0,1) eq '/') {
- $abs_dir = $top_item;
- }
- elsif ($top_item eq $File::Find::current_dir) {
- $abs_dir = $cwd;
- }
- else { # care about any ../
- $abs_dir = contract_name("$cwd/",$top_item);
- }
- }
- $abs_dir= Follow_SymLink($abs_dir);
- unless (defined $abs_dir) {
- if ($dangling_symlinks) {
- if (ref $dangling_symlinks eq 'CODE') {
- $dangling_symlinks->($top_item, $cwd);
- } else {
- warnings::warnif "$top_item is a dangling symbolic link\n";
- }
- }
- next Proc_Top_Item;
- }
-
- if (-d _) {
- _find_dir_symlnk($wanted, $abs_dir, $top_item);
- $Is_Dir= 1;
- }
- }
- else { # no follow
- $topdir = $top_item;
- unless (defined $topnlink) {
- warnings::warnif "Can't stat $top_item: $!\n";
- next Proc_Top_Item;
- }
- if (-d _) {
- $top_item =~ s/\.dir\z// if $Is_VMS;
- _find_dir($wanted, $top_item, $topnlink);
- $Is_Dir= 1;
- }
- else {
- $abs_dir= $top_item;
- }
- }
-
- unless ($Is_Dir) {
- unless (($_,$dir) = File::Basename::fileparse($abs_dir)) {
- if ($Is_MacOS) {
- ($dir,$_) = (':', $top_item); # $File::Find::dir, $_
- }
- else {
- ($dir,$_) = ('./', $top_item);
- }
- }
-
- $abs_dir = $dir;
- if (( $untaint ) && (is_tainted($dir) )) {
- ( $abs_dir ) = $dir =~ m|$untaint_pat|;
- unless (defined $abs_dir) {
- if ($untaint_skip == 0) {
- die "directory $dir is still tainted";
- }
- else {
- next Proc_Top_Item;
- }
- }
- }
-
- unless ($no_chdir || chdir $abs_dir) {
- warnings::warnif "Couldn't chdir $abs_dir: $!\n";
- next Proc_Top_Item;
- }
-
- $name = $abs_dir . $_; # $File::Find::name
-
- { $wanted_callback->() }; # protect against wild "next"
-
- }
-
- unless ( $no_chdir ) {
- if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) {
- ( $cwd_untainted ) = $cwd =~ m|$untaint_pat|;
- unless (defined $cwd_untainted) {
- die "insecure cwd in find(depth)";
- }
- $check_t_cwd = 0;
- }
- unless (chdir $cwd_untainted) {
- die "Can't cd to $cwd: $!\n";
- }
- }
- }
-}
-
-# API:
-# $wanted
-# $p_dir : "parent directory"
-# $nlink : what came back from the stat
-# preconditions:
-# chdir (if not no_chdir) to dir
-
-sub _find_dir($$$) {
- my ($wanted, $p_dir, $nlink) = @_;
- my ($CdLvl,$Level) = (0,0);
- my @Stack;
- my @filenames;
- my ($subcount,$sub_nlink);
- my $SE= [];
- my $dir_name= $p_dir;
- my $dir_pref;
- my $dir_rel = $File::Find::current_dir;
- my $tainted = 0;
- my $no_nlink;
-
- if ($Is_MacOS) {
- $dir_pref= ($p_dir =~ /:$/) ? $p_dir : "$p_dir:"; # preface
- }
- else {
- $dir_pref= ( $p_dir eq '/' ? '/' : "$p_dir/" );
- }
-
- local ($dir, $name, $prune, *DIR);
-
- unless ( $no_chdir || ($p_dir eq $File::Find::current_dir)) {
- my $udir = $p_dir;
- if (( $untaint ) && (is_tainted($p_dir) )) {
- ( $udir ) = $p_dir =~ m|$untaint_pat|;
- unless (defined $udir) {
- if ($untaint_skip == 0) {
- die "directory $p_dir is still tainted";
- }
- else {
- return;
- }
- }
- }
- unless (chdir $udir) {
- warnings::warnif "Can't cd to $udir: $!\n";
- return;
- }
- }
-
- # push the starting directory
- push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth;
-
- if ($Is_MacOS) {
- $p_dir = $dir_pref; # ensure trailing ':'
- }
-
- while (defined $SE) {
- unless ($bydepth) {
- $dir= $p_dir; # $File::Find::dir
- $name= $dir_name; # $File::Find::name
- $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
- # prune may happen here
- $prune= 0;
- { $wanted_callback->() }; # protect against wild "next"
- next if $prune;
- }
-
- # change to that directory
- unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
- my $udir= $dir_rel;
- if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) {
- ( $udir ) = $dir_rel =~ m|$untaint_pat|;
- unless (defined $udir) {
- if ($untaint_skip == 0) {
- if ($Is_MacOS) {
- die "directory ($p_dir) $dir_rel is still tainted";
- }
- else {
- die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted";
- }
- } else { # $untaint_skip == 1
- next;
- }
- }
- }
- unless (chdir $udir) {
- if ($Is_MacOS) {
- warnings::warnif "Can't cd to ($p_dir) $udir: $!\n";
- }
- else {
- warnings::warnif "Can't cd to (" .
- ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n";
- }
- next;
- }
- $CdLvl++;
- }
-
- if ($Is_MacOS) {
- $dir_name = "$dir_name:" unless ($dir_name =~ /:$/);
- }
-
- $dir= $dir_name; # $File::Find::dir
-
- # Get the list of files in the current directory.
- unless (opendir DIR, ($no_chdir ? $dir_name : $File::Find::current_dir)) {
- warnings::warnif "Can't opendir($dir_name): $!\n";
- next;
- }
- @filenames = readdir DIR;
- closedir(DIR);
- @filenames = $pre_process->(@filenames) if $pre_process;
- push @Stack,[$CdLvl,$dir_name,"",-2] if $post_process;
-
- # default: use whatever was specifid
- # (if $nlink >= 2, and $avoid_nlink == 0, this will switch back)
- $no_nlink = $avoid_nlink;
- # if dir has wrong nlink count, force switch to slower stat method
- $no_nlink = 1 if ($nlink < 2);
-
- if ($nlink == 2 && !$no_nlink) {
- # This dir has no subdirectories.
- for my $FN (@filenames) {
- next if $FN =~ $File::Find::skip_pattern;
-
- $name = $dir_pref . $FN; # $File::Find::name
- $_ = ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
-
- }
- else {
- # This dir has subdirectories.
- $subcount = $nlink - 2;
-
- for my $FN (@filenames) {
- next if $FN =~ $File::Find::skip_pattern;
- if ($subcount > 0 || $no_nlink) {
- # Seen all the subdirs?
- # check for directoriness.
- # stat is faster for a file in the current directory
- $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3];
-
- if (-d _) {
- --$subcount;
- $FN =~ s/\.dir\z// if $Is_VMS;
- push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink];
- }
- else {
- $name = $dir_pref . $FN; # $File::Find::name
- $_= ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
- }
- else {
- $name = $dir_pref . $FN; # $File::Find::name
- $_= ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
- }
- }
- }
- continue {
- while ( defined ($SE = pop @Stack) ) {
- ($Level, $p_dir, $dir_rel, $nlink) = @$SE;
- if ($CdLvl > $Level && !$no_chdir) {
- my $tmp;
- if ($Is_MacOS) {
- $tmp = (':' x ($CdLvl-$Level)) . ':';
- }
- else {
- $tmp = join('/',('..') x ($CdLvl-$Level));
- }
- die "Can't cd to $dir_name" . $tmp
- unless chdir ($tmp);
- $CdLvl = $Level;
- }
-
- if ($Is_MacOS) {
- # $pdir always has a trailing ':', except for the starting dir,
- # where $dir_rel eq ':'
- $dir_name = "$p_dir$dir_rel";
- $dir_pref = "$dir_name:";
- }
- else {
- $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
- $dir_pref = "$dir_name/";
- }
-
- if ( $nlink == -2 ) {
- $name = $dir = $p_dir; # $File::Find::name / dir
- $_ = $File::Find::current_dir;
- $post_process->(); # End-of-directory processing
- }
- elsif ( $nlink < 0 ) { # must be finddepth, report dirname now
- $name = $dir_name;
- if ($Is_MacOS) {
- if ($dir_rel eq ':') { # must be the top dir, where we started
- $name =~ s|:$||; # $File::Find::name
- $p_dir = "$p_dir:" unless ($p_dir =~ /:$/);
- }
- $dir = $p_dir; # $File::Find::dir
- $_ = ($no_chdir ? $name : $dir_rel); # $_
- }
- else {
- if ( substr($name,-2) eq '/.' ) {
- substr($name, length($name) == 2 ? -1 : -2) = '';
- }
- $dir = $p_dir;
- $_ = ($no_chdir ? $dir_name : $dir_rel );
- if ( substr($_,-2) eq '/.' ) {
- substr($_, length($_) == 2 ? -1 : -2) = '';
- }
- }
- { $wanted_callback->() }; # protect against wild "next"
- }
- else {
- push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth;
- last;
- }
- }
- }
-}
-
-
-# API:
-# $wanted
-# $dir_loc : absolute location of a dir
-# $p_dir : "parent directory"
-# preconditions:
-# chdir (if not no_chdir) to dir
-
-sub _find_dir_symlnk($$$) {
- my ($wanted, $dir_loc, $p_dir) = @_; # $dir_loc is the absolute directory
- my @Stack;
- my @filenames;
- my $new_loc;
- my $updir_loc = $dir_loc; # untainted parent directory
- my $SE = [];
- my $dir_name = $p_dir;
- my $dir_pref;
- my $loc_pref;
- my $dir_rel = $File::Find::current_dir;
- my $byd_flag; # flag for pending stack entry if $bydepth
- my $tainted = 0;
- my $ok = 1;
-
- if ($Is_MacOS) {
- $dir_pref = ($p_dir =~ /:$/) ? "$p_dir" : "$p_dir:";
- $loc_pref = ($dir_loc =~ /:$/) ? "$dir_loc" : "$dir_loc:";
- } else {
- $dir_pref = ( $p_dir eq '/' ? '/' : "$p_dir/" );
- $loc_pref = ( $dir_loc eq '/' ? '/' : "$dir_loc/" );
- }
-
- local ($dir, $name, $fullname, $prune, *DIR);
-
- unless ($no_chdir) {
- # untaint the topdir
- if (( $untaint ) && (is_tainted($dir_loc) )) {
- ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted
- # once untainted, $updir_loc is pushed on the stack (as parent directory);
- # hence, we don't need to untaint the parent directory every time we chdir
- # to it later
- unless (defined $updir_loc) {
- if ($untaint_skip == 0) {
- die "directory $dir_loc is still tainted";
- }
- else {
- return;
- }
- }
- }
- $ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir);
- unless ($ok) {
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- return;
- }
- }
-
- push @Stack,[$dir_loc,$updir_loc,$p_dir,$dir_rel,-1] if $bydepth;
-
- if ($Is_MacOS) {
- $p_dir = $dir_pref; # ensure trailing ':'
- }
-
- while (defined $SE) {
-
- unless ($bydepth) {
- # change (back) to parent directory (always untainted)
- unless ($no_chdir) {
- unless (chdir $updir_loc) {
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- next;
- }
- }
- $dir= $p_dir; # $File::Find::dir
- $name= $dir_name; # $File::Find::name
- $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
- $fullname= $dir_loc; # $File::Find::fullname
- # prune may happen here
- $prune= 0;
- lstat($_); # make sure file tests with '_' work
- { $wanted_callback->() }; # protect against wild "next"
- next if $prune;
- }
-
- # change to that directory
- unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
- $updir_loc = $dir_loc;
- if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) {
- # untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir
- ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|;
- unless (defined $updir_loc) {
- if ($untaint_skip == 0) {
- die "directory $dir_loc is still tainted";
- }
- else {
- next;
- }
- }
- }
- unless (chdir $updir_loc) {
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- next;
- }
- }
-
- if ($Is_MacOS) {
- $dir_name = "$dir_name:" unless ($dir_name =~ /:$/);
- }
-
- $dir = $dir_name; # $File::Find::dir
-
- # Get the list of files in the current directory.
- unless (opendir DIR, ($no_chdir ? $dir_loc : $File::Find::current_dir)) {
- warnings::warnif "Can't opendir($dir_loc): $!\n";
- next;
- }
- @filenames = readdir DIR;
- closedir(DIR);
-
- for my $FN (@filenames) {
- next if $FN =~ $File::Find::skip_pattern;
-
- # follow symbolic links / do an lstat
- $new_loc = Follow_SymLink($loc_pref.$FN);
-
- # ignore if invalid symlink
- next unless defined $new_loc;
-
- if (-d _) {
- push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1];
- }
- else {
- $fullname = $new_loc; # $File::Find::fullname
- $name = $dir_pref . $FN; # $File::Find::name
- $_ = ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
- }
-
- }
- continue {
- while (defined($SE = pop @Stack)) {
- ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE;
- if ($Is_MacOS) {
- # $p_dir always has a trailing ':', except for the starting dir,
- # where $dir_rel eq ':'
- $dir_name = "$p_dir$dir_rel";
- $dir_pref = "$dir_name:";
- $loc_pref = ($dir_loc =~ /:$/) ? $dir_loc : "$dir_loc:";
- }
- else {
- $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
- $dir_pref = "$dir_name/";
- $loc_pref = "$dir_loc/";
- }
- if ( $byd_flag < 0 ) { # must be finddepth, report dirname now
- unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
- unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- next;
- }
- }
- $fullname = $dir_loc; # $File::Find::fullname
- $name = $dir_name; # $File::Find::name
- if ($Is_MacOS) {
- if ($dir_rel eq ':') { # must be the top dir, where we started
- $name =~ s|:$||; # $File::Find::name
- $p_dir = "$p_dir:" unless ($p_dir =~ /:$/);
- }
- $dir = $p_dir; # $File::Find::dir
- $_ = ($no_chdir ? $name : $dir_rel); # $_
- }
- else {
- if ( substr($name,-2) eq '/.' ) {
- substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name
- }
- $dir = $p_dir; # $File::Find::dir
- $_ = ($no_chdir ? $dir_name : $dir_rel); # $_
- if ( substr($_,-2) eq '/.' ) {
- substr($_, length($_) == 2 ? -1 : -2) = '';
- }
- }
-
- lstat($_); # make sure file tests with '_' work
- { $wanted_callback->() }; # protect against wild "next"
- }
- else {
- push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1] if $bydepth;
- last;
- }
- }
- }
-}
-
-
-sub wrap_wanted {
- my $wanted = shift;
- if ( ref($wanted) eq 'HASH' ) {
- if ( $wanted->{follow} || $wanted->{follow_fast}) {
- $wanted->{follow_skip} = 1 unless defined $wanted->{follow_skip};
- }
- if ( $wanted->{untaint} ) {
- $wanted->{untaint_pattern} = $File::Find::untaint_pattern
- unless defined $wanted->{untaint_pattern};
- $wanted->{untaint_skip} = 0 unless defined $wanted->{untaint_skip};
- }
- return $wanted;
- }
- else {
- return { wanted => $wanted };
- }
-}
-
-sub find {
- my $wanted = shift;
- _find_opt(wrap_wanted($wanted), @_);
-}
-
-sub finddepth {
- my $wanted = wrap_wanted(shift);
- $wanted->{bydepth} = 1;
- _find_opt($wanted, @_);
-}
-
-# default
-$File::Find::skip_pattern = qr/^\.{1,2}\z/;
-$File::Find::untaint_pattern = qr|^([-+@\w./]+)$|;
-
-# These are hard-coded for now, but may move to hint files.
-if ($^O eq 'VMS') {
- $Is_VMS = 1;
- $File::Find::dont_use_nlink = 1;
-}
-elsif ($^O eq 'MacOS') {
- $Is_MacOS = 1;
- $File::Find::dont_use_nlink = 1;
- $File::Find::skip_pattern = qr/^Icon\015\z/;
- $File::Find::untaint_pattern = qr|^(.+)$|;
-}
-
-# this _should_ work properly on all platforms
-# where File::Find can be expected to work
-$File::Find::current_dir = File::Spec->curdir || '.';
-
-$File::Find::dont_use_nlink = 1
- if $^O eq 'os2' || $^O eq 'dos' || $^O eq 'amigaos' || $^O eq 'MSWin32' ||
- $^O eq 'cygwin' || $^O eq 'epoc' || $^O eq 'qnx' ||
- $^O eq 'nto';
-
-# Set dont_use_nlink in your hint file if your system's stat doesn't
-# report the number of links in a directory as an indication
-# of the number of files.
-# See, e.g. hints/machten.sh for MachTen 2.2.
-unless ($File::Find::dont_use_nlink) {
- require Config;
- $File::Find::dont_use_nlink = 1 if ($Config::Config{'dont_use_nlink'});
-}
-
-# We need a function that checks if a scalar is tainted. Either use the
-# Scalar::Util module's tainted() function or our (slower) pure Perl
-# fallback is_tainted_pp()
-{
- local $@;
- eval { require Scalar::Util };
- *is_tainted = $@ ? \&is_tainted_pp : \&Scalar::Util::tainted;
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/File/Glob.pm b/Master/xemtex/perl/lib/File/Glob.pm
deleted file mode 100644
index a704b567bb0..00000000000
--- a/Master/xemtex/perl/lib/File/Glob.pm
+++ /dev/null
@@ -1,465 +0,0 @@
-package File::Glob;
-
-use strict;
-our($VERSION, @ISA, @EXPORT_OK, @EXPORT_FAIL, %EXPORT_TAGS,
- $AUTOLOAD, $DEFAULT_FLAGS);
-
-use XSLoader ();
-
-@ISA = qw(Exporter);
-
-# NOTE: The glob() export is only here for compatibility with 5.6.0.
-# csh_glob() should not be used directly, unless you know what you're doing.
-
-@EXPORT_OK = qw(
- csh_glob
- bsd_glob
- glob
- GLOB_ABEND
- GLOB_ALPHASORT
- GLOB_ALTDIRFUNC
- GLOB_BRACE
- GLOB_CSH
- GLOB_ERR
- GLOB_ERROR
- GLOB_LIMIT
- GLOB_MARK
- GLOB_NOCASE
- GLOB_NOCHECK
- GLOB_NOMAGIC
- GLOB_NOSORT
- GLOB_NOSPACE
- GLOB_QUOTE
- GLOB_TILDE
-);
-
-%EXPORT_TAGS = (
- 'glob' => [ qw(
- GLOB_ABEND
- GLOB_ALPHASORT
- GLOB_ALTDIRFUNC
- GLOB_BRACE
- GLOB_CSH
- GLOB_ERR
- GLOB_ERROR
- GLOB_LIMIT
- GLOB_MARK
- GLOB_NOCASE
- GLOB_NOCHECK
- GLOB_NOMAGIC
- GLOB_NOSORT
- GLOB_NOSPACE
- GLOB_QUOTE
- GLOB_TILDE
- glob
- bsd_glob
- ) ],
-);
-
-$VERSION = '1.01';
-
-sub import {
- require Exporter;
- my $i = 1;
- while ($i < @_) {
- if ($_[$i] =~ /^:(case|nocase|globally)$/) {
- splice(@_, $i, 1);
- $DEFAULT_FLAGS &= ~GLOB_NOCASE() if $1 eq 'case';
- $DEFAULT_FLAGS |= GLOB_NOCASE() if $1 eq 'nocase';
- if ($1 eq 'globally') {
- local $^W;
- *CORE::GLOBAL::glob = \&File::Glob::csh_glob;
- }
- next;
- }
- ++$i;
- }
- goto &Exporter::import;
-}
-
-sub AUTOLOAD {
- # This AUTOLOAD is used to 'autoload' constants from the constant()
- # XS function. If a constant is not found then control is passed
- # to the AUTOLOAD in AutoLoader.
-
- my $constname;
- ($constname = $AUTOLOAD) =~ s/.*:://;
- my ($error, $val) = constant($constname);
- if ($error) {
- require Carp;
- Carp::croak($error);
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-XSLoader::load 'File::Glob', $VERSION;
-
-# Preloaded methods go here.
-
-sub GLOB_ERROR {
- return (constant('GLOB_ERROR'))[1];
-}
-
-sub GLOB_CSH () {
- GLOB_BRACE()
- | GLOB_NOMAGIC()
- | GLOB_QUOTE()
- | GLOB_TILDE()
- | GLOB_ALPHASORT()
-}
-
-$DEFAULT_FLAGS = GLOB_CSH();
-if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos|MacOS)$/) {
- $DEFAULT_FLAGS |= GLOB_NOCASE();
-}
-
-# Autoload methods go after =cut, and are processed by the autosplit program.
-
-sub bsd_glob {
- my ($pat,$flags) = @_;
- $flags = $DEFAULT_FLAGS if @_ < 2;
- return doglob($pat,$flags);
-}
-
-# File::Glob::glob() is deprecated because its prototype is different from
-# CORE::glob() (use bsd_glob() instead)
-sub glob {
- goto &bsd_glob;
-}
-
-## borrowed heavily from gsar's File::DosGlob
-my %iter;
-my %entries;
-
-sub csh_glob {
- my $pat = shift;
- my $cxix = shift;
- my @pat;
-
- # glob without args defaults to $_
- $pat = $_ unless defined $pat;
-
- # extract patterns
- $pat =~ s/^\s+//; # Protect against empty elements in
- $pat =~ s/\s+$//; # things like < *.c> and <*.c >.
- # These alone shouldn't trigger ParseWords.
- if ($pat =~ /\s/) {
- # XXX this is needed for compatibility with the csh
- # implementation in Perl. Need to support a flag
- # to disable this behavior.
- require Text::ParseWords;
- @pat = Text::ParseWords::parse_line('\s+',0,$pat);
- }
-
- # assume global context if not provided one
- $cxix = '_G_' unless defined $cxix;
- $iter{$cxix} = 0 unless exists $iter{$cxix};
-
- # if we're just beginning, do it all first
- if ($iter{$cxix} == 0) {
- if (@pat) {
- $entries{$cxix} = [ map { doglob($_, $DEFAULT_FLAGS) } @pat ];
- }
- else {
- $entries{$cxix} = [ doglob($pat, $DEFAULT_FLAGS) ];
- }
- }
-
- # chuck it all out, quick or slow
- if (wantarray) {
- delete $iter{$cxix};
- return @{delete $entries{$cxix}};
- }
- else {
- if ($iter{$cxix} = scalar @{$entries{$cxix}}) {
- return shift @{$entries{$cxix}};
- }
- else {
- # return undef for EOL
- delete $iter{$cxix};
- delete $entries{$cxix};
- return undef;
- }
- }
-}
-
-1;
-__END__
-
-=head1 NAME
-
-File::Glob - Perl extension for BSD glob routine
-
-=head1 SYNOPSIS
-
- use File::Glob ':glob';
- @list = bsd_glob('*.[ch]');
- $homedir = bsd_glob('~gnat', GLOB_TILDE | GLOB_ERR);
- if (GLOB_ERROR) {
- # an error occurred reading $homedir
- }
-
- ## override the core glob (CORE::glob() does this automatically
- ## by default anyway, since v5.6.0)
- use File::Glob ':globally';
- my @sources = <*.{c,h,y}>
-
- ## override the core glob, forcing case sensitivity
- use File::Glob qw(:globally :case);
- my @sources = <*.{c,h,y}>
-
- ## override the core glob forcing case insensitivity
- use File::Glob qw(:globally :nocase);
- my @sources = <*.{c,h,y}>
-
-=head1 DESCRIPTION
-
-File::Glob::bsd_glob() implements the FreeBSD glob(3) routine, which is
-a superset of the POSIX glob() (described in IEEE Std 1003.2 "POSIX.2").
-bsd_glob() takes a mandatory C<pattern> argument, and an optional
-C<flags> argument, and returns a list of filenames matching the
-pattern, with interpretation of the pattern modified by the C<flags>
-variable.
-
-Since v5.6.0, Perl's CORE::glob() is implemented in terms of bsd_glob().
-Note that they don't share the same prototype--CORE::glob() only accepts
-a single argument. Due to historical reasons, CORE::glob() will also
-split its argument on whitespace, treating it as multiple patterns,
-whereas bsd_glob() considers them as one pattern.
-
-The POSIX defined flags for bsd_glob() are:
-
-=over 4
-
-=item C<GLOB_ERR>
-
-Force bsd_glob() to return an error when it encounters a directory it
-cannot open or read. Ordinarily bsd_glob() continues to find matches.
-
-=item C<GLOB_LIMIT>
-
-Make bsd_glob() return an error (GLOB_NOSPACE) when the pattern expands
-to a size bigger than the system constant C<ARG_MAX> (usually found in
-limits.h). If your system does not define this constant, bsd_glob() uses
-C<sysconf(_SC_ARG_MAX)> or C<_POSIX_ARG_MAX> where available (in that
-order). You can inspect these values using the standard C<POSIX>
-extension.
-
-=item C<GLOB_MARK>
-
-Each pathname that is a directory that matches the pattern has a slash
-appended.
-
-=item C<GLOB_NOCASE>
-
-By default, file names are assumed to be case sensitive; this flag
-makes bsd_glob() treat case differences as not significant.
-
-=item C<GLOB_NOCHECK>
-
-If the pattern does not match any pathname, then bsd_glob() returns a list
-consisting of only the pattern. If C<GLOB_QUOTE> is set, its effect
-is present in the pattern returned.
-
-=item C<GLOB_NOSORT>
-
-By default, the pathnames are sorted in ascending ASCII order; this
-flag prevents that sorting (speeding up bsd_glob()).
-
-=back
-
-The FreeBSD extensions to the POSIX standard are the following flags:
-
-=over 4
-
-=item C<GLOB_BRACE>
-
-Pre-process the string to expand C<{pat,pat,...}> strings like csh(1).
-The pattern '{}' is left unexpanded for historical reasons (and csh(1)
-does the same thing to ease typing of find(1) patterns).
-
-=item C<GLOB_NOMAGIC>
-
-Same as C<GLOB_NOCHECK> but it only returns the pattern if it does not
-contain any of the special characters "*", "?" or "[". C<NOMAGIC> is
-provided to simplify implementing the historic csh(1) globbing
-behaviour and should probably not be used anywhere else.
-
-=item C<GLOB_QUOTE>
-
-Use the backslash ('\') character for quoting: every occurrence of a
-backslash followed by a character in the pattern is replaced by that
-character, avoiding any special interpretation of the character.
-(But see below for exceptions on DOSISH systems).
-
-=item C<GLOB_TILDE>
-
-Expand patterns that start with '~' to user name home directories.
-
-=item C<GLOB_CSH>
-
-For convenience, C<GLOB_CSH> is a synonym for
-C<GLOB_BRACE | GLOB_NOMAGIC | GLOB_QUOTE | GLOB_TILDE | GLOB_ALPHASORT>.
-
-=back
-
-The POSIX provided C<GLOB_APPEND>, C<GLOB_DOOFFS>, and the FreeBSD
-extensions C<GLOB_ALTDIRFUNC>, and C<GLOB_MAGCHAR> flags have not been
-implemented in the Perl version because they involve more complex
-interaction with the underlying C structures.
-
-The following flag has been added in the Perl implementation for
-csh compatibility:
-
-=over 4
-
-=item C<GLOB_ALPHASORT>
-
-If C<GLOB_NOSORT> is not in effect, sort filenames is alphabetical
-order (case does not matter) rather than in ASCII order.
-
-=back
-
-=head1 DIAGNOSTICS
-
-bsd_glob() returns a list of matching paths, possibly zero length. If an
-error occurred, &File::Glob::GLOB_ERROR will be non-zero and C<$!> will be
-set. &File::Glob::GLOB_ERROR is guaranteed to be zero if no error occurred,
-or one of the following values otherwise:
-
-=over 4
-
-=item C<GLOB_NOSPACE>
-
-An attempt to allocate memory failed.
-
-=item C<GLOB_ABEND>
-
-The glob was stopped because an error was encountered.
-
-=back
-
-In the case where bsd_glob() has found some matching paths, but is
-interrupted by an error, it will return a list of filenames B<and>
-set &File::Glob::ERROR.
-
-Note that bsd_glob() deviates from POSIX and FreeBSD glob(3) behaviour
-by not considering C<ENOENT> and C<ENOTDIR> as errors - bsd_glob() will
-continue processing despite those errors, unless the C<GLOB_ERR> flag is
-set.
-
-Be aware that all filenames returned from File::Glob are tainted.
-
-=head1 NOTES
-
-=over 4
-
-=item *
-
-If you want to use multiple patterns, e.g. C<bsd_glob "a* b*">, you should
-probably throw them in a set as in C<bsd_glob "{a*,b*}">. This is because
-the argument to bsd_glob() isn't subjected to parsing by the C shell.
-Remember that you can use a backslash to escape things.
-
-=item *
-
-On DOSISH systems, backslash is a valid directory separator character.
-In this case, use of backslash as a quoting character (via GLOB_QUOTE)
-interferes with the use of backslash as a directory separator. The
-best (simplest, most portable) solution is to use forward slashes for
-directory separators, and backslashes for quoting. However, this does
-not match "normal practice" on these systems. As a concession to user
-expectation, therefore, backslashes (under GLOB_QUOTE) only quote the
-glob metacharacters '[', ']', '{', '}', '-', '~', and backslash itself.
-All other backslashes are passed through unchanged.
-
-=item *
-
-Win32 users should use the real slash. If you really want to use
-backslashes, consider using Sarathy's File::DosGlob, which comes with
-the standard Perl distribution.
-
-=item *
-
-Mac OS (Classic) users should note a few differences. Since
-Mac OS is not Unix, when the glob code encounters a tilde glob (e.g.
-~user) and the C<GLOB_TILDE> flag is used, it simply returns that
-pattern without doing any expansion.
-
-Glob on Mac OS is case-insensitive by default (if you don't use any
-flags). If you specify any flags at all and still want glob
-to be case-insensitive, you must include C<GLOB_NOCASE> in the flags.
-
-The path separator is ':' (aka colon), not '/' (aka slash). Mac OS users
-should be careful about specifying relative pathnames. While a full path
-always begins with a volume name, a relative pathname should always
-begin with a ':'. If specifying a volume name only, a trailing ':' is
-required.
-
-The specification of pathnames in glob patterns adheres to the usual Mac
-OS conventions: The path separator is a colon ':', not a slash '/'. A
-full path always begins with a volume name. A relative pathname on Mac
-OS must always begin with a ':', except when specifying a file or
-directory name in the current working directory, where the leading colon
-is optional. If specifying a volume name only, a trailing ':' is
-required. Due to these rules, a glob like E<lt>*:E<gt> will find all
-mounted volumes, while a glob like E<lt>*E<gt> or E<lt>:*E<gt> will find
-all files and directories in the current directory.
-
-Note that updirs in the glob pattern are resolved before the matching begins,
-i.e. a pattern like "*HD:t?p::a*" will be matched as "*HD:a*". Note also,
-that a single trailing ':' in the pattern is ignored (unless it's a volume
-name pattern like "*HD:"), i.e. a glob like E<lt>:*:E<gt> will find both
-directories I<and> files (and not, as one might expect, only directories).
-You can, however, use the C<GLOB_MARK> flag to distinguish (without a file
-test) directory names from file names.
-
-If the C<GLOB_MARK> flag is set, all directory paths will have a ':' appended.
-Since a directory like 'lib:' is I<not> a valid I<relative> path on Mac OS,
-both a leading and a trailing colon will be added, when the directory name in
-question doesn't contain any colons (e.g. 'lib' becomes ':lib:').
-
-=back
-
-=head1 AUTHOR
-
-The Perl interface was written by Nathan Torkington E<lt>gnat@frii.comE<gt>,
-and is released under the artistic license. Further modifications were
-made by Greg Bacon E<lt>gbacon@cs.uah.eduE<gt>, Gurusamy Sarathy
-E<lt>gsar@activestate.comE<gt>, and Thomas Wegner
-E<lt>wegner_thomas@yahoo.comE<gt>. The C glob code has the
-following copyright:
-
- Copyright (c) 1989, 1993 The Regents of the University of California.
- All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Guido van Rossum.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-=cut
diff --git a/Master/xemtex/perl/lib/File/Path.pm b/Master/xemtex/perl/lib/File/Path.pm
deleted file mode 100644
index 46af24fdb20..00000000000
--- a/Master/xemtex/perl/lib/File/Path.pm
+++ /dev/null
@@ -1,267 +0,0 @@
-package File::Path;
-
-=head1 NAME
-
-File::Path - create or remove directory trees
-
-=head1 SYNOPSIS
-
- use File::Path;
-
- mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711);
- rmtree(['foo/bar/baz', 'blurfl/quux'], 1, 1);
-
-=head1 DESCRIPTION
-
-The C<mkpath> function provides a convenient way to create directories, even
-if your C<mkdir> kernel call won't create more than one level of directory at
-a time. C<mkpath> takes three arguments:
-
-=over 4
-
-=item *
-
-the name of the path to create, or a reference
-to a list of paths to create,
-
-=item *
-
-a boolean value, which if TRUE will cause C<mkpath>
-to print the name of each directory as it is created
-(defaults to FALSE), and
-
-=item *
-
-the numeric mode to use when creating the directories
-(defaults to 0777)
-
-=back
-
-It returns a list of all directories (including intermediates, determined
-using the Unix '/' separator) created.
-
-If a system error prevents a directory from being created, then the
-C<mkpath> function throws a fatal error with C<Carp::croak>. This error
-can be trapped with an C<eval> block:
-
- eval { mkpath($dir) };
- if ($@) {
- print "Couldn't create $dir: $@";
- }
-
-Similarly, the C<rmtree> function provides a convenient way to delete a
-subtree from the directory structure, much like the Unix command C<rm -r>.
-C<rmtree> takes three arguments:
-
-=over 4
-
-=item *
-
-the root of the subtree to delete, or a reference to
-a list of roots. All of the files and directories
-below each root, as well as the roots themselves,
-will be deleted.
-
-=item *
-
-a boolean value, which if TRUE will cause C<rmtree> to
-print a message each time it examines a file, giving the
-name of the file, and indicating whether it's using C<rmdir>
-or C<unlink> to remove it, or that it's skipping it.
-(defaults to FALSE)
-
-=item *
-
-a boolean value, which if TRUE will cause C<rmtree> to
-skip any files to which you do not have delete access
-(if running under VMS) or write access (if running
-under another OS). This will change in the future when
-a criterion for 'delete permission' under OSs other
-than VMS is settled. (defaults to FALSE)
-
-=back
-
-It returns the number of files successfully deleted. Symlinks are
-simply deleted and not followed.
-
-B<NOTE:> If the third parameter is not TRUE, C<rmtree> is B<unsecure>
-in the face of failure or interruption. Files and directories which
-were not deleted may be left with permissions reset to allow world
-read and write access. Note also that the occurrence of errors in
-rmtree can be determined I<only> by trapping diagnostic messages
-using C<$SIG{__WARN__}>; it is not apparent from the return value.
-Therefore, you must be extremely careful about using C<rmtree($foo,$bar,0>
-in situations where security is an issue.
-
-=head1 AUTHORS
-
-Tim Bunce <F<Tim.Bunce@ig.co.uk>> and
-Charles Bailey <F<bailey@newman.upenn.edu>>
-
-=cut
-
-use 5.006;
-use Carp;
-use File::Basename ();
-use Exporter ();
-use strict;
-use warnings;
-
-our $VERSION = "1.05";
-our @ISA = qw( Exporter );
-our @EXPORT = qw( mkpath rmtree );
-
-my $Is_VMS = $^O eq 'VMS';
-my $Is_MacOS = $^O eq 'MacOS';
-
-# These OSes complain if you want to remove a file that you have no
-# write permission to:
-my $force_writeable = ($^O eq 'os2' || $^O eq 'dos' || $^O eq 'MSWin32' ||
- $^O eq 'amigaos' || $^O eq 'MacOS' || $^O eq 'epoc');
-
-sub mkpath {
- my($paths, $verbose, $mode) = @_;
- # $paths -- either a path string or ref to list of paths
- # $verbose -- optional print "mkdir $path" for each directory created
- # $mode -- optional permissions, defaults to 0777
- local($")=$Is_MacOS ? ":" : "/";
- $mode = 0777 unless defined($mode);
- $paths = [$paths] unless ref $paths;
- my(@created,$path);
- foreach $path (@$paths) {
- $path .= '/' if $^O eq 'os2' and $path =~ /^\w:\z/s; # feature of CRT
- # Logic wants Unix paths, so go with the flow.
- if ($Is_VMS) {
- next if $path eq '/';
- $path = VMS::Filespec::unixify($path);
- if ($path =~ m:^(/[^/]+)/?\z:) {
- $path = $1.'/000000';
- }
- }
- next if -d $path;
- my $parent = File::Basename::dirname($path);
- unless (-d $parent or $path eq $parent) {
- push(@created,mkpath($parent, $verbose, $mode));
- }
- print "mkdir $path\n" if $verbose;
- unless (mkdir($path,$mode)) {
- my $e = $!;
- # allow for another process to have created it meanwhile
- croak "mkdir $path: $e" unless -d $path;
- }
- push(@created, $path);
- }
- @created;
-}
-
-sub rmtree {
- my($roots, $verbose, $safe) = @_;
- my(@files);
- my($count) = 0;
- $verbose ||= 0;
- $safe ||= 0;
-
- if ( defined($roots) && length($roots) ) {
- $roots = [$roots] unless ref $roots;
- }
- else {
- carp "No root path(s) specified\n";
- return 0;
- }
-
- my($root);
- foreach $root (@{$roots}) {
- if ($Is_MacOS) {
- $root = ":$root" if $root !~ /:/;
- $root =~ s#([^:])\z#$1:#;
- } else {
- $root =~ s#/\z##;
- }
- (undef, undef, my $rp) = lstat $root or next;
- $rp &= 07777; # don't forget setuid, setgid, sticky bits
- if ( -d _ ) {
- # notabene: 0777 is for making readable in the first place,
- # it's also intended to change it to writable in case we have
- # to recurse in which case we are better than rm -rf for
- # subtrees with strange permissions
- chmod(0777, ($Is_VMS ? VMS::Filespec::fileify($root) : $root))
- or carp "Can't make directory $root read+writeable: $!"
- unless $safe;
-
- if (opendir my $d, $root) {
- no strict 'refs';
- if (!defined ${"\cTAINT"} or ${"\cTAINT"}) {
- # Blindly untaint dir names
- @files = map { /^(.*)$/s ; $1 } readdir $d;
- } else {
- @files = readdir $d;
- }
- closedir $d;
- }
- else {
- carp "Can't read $root: $!";
- @files = ();
- }
-
- # Deleting large numbers of files from VMS Files-11 filesystems
- # is faster if done in reverse ASCIIbetical order
- @files = reverse @files if $Is_VMS;
- ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z## if $Is_VMS;
- if ($Is_MacOS) {
- @files = map("$root$_", @files);
- } else {
- @files = map("$root/$_", grep $_!~/^\.{1,2}\z/s,@files);
- }
- $count += rmtree(\@files,$verbose,$safe);
- if ($safe &&
- ($Is_VMS ? !&VMS::Filespec::candelete($root) : !-w $root)) {
- print "skipped $root\n" if $verbose;
- next;
- }
- chmod 0777, $root
- or carp "Can't make directory $root writeable: $!"
- if $force_writeable;
- print "rmdir $root\n" if $verbose;
- if (rmdir $root) {
- ++$count;
- }
- else {
- carp "Can't remove directory $root: $!";
- chmod($rp, ($Is_VMS ? VMS::Filespec::fileify($root) : $root))
- or carp("and can't restore permissions to "
- . sprintf("0%o",$rp) . "\n");
- }
- }
- else {
- if ($safe &&
- ($Is_VMS ? !&VMS::Filespec::candelete($root)
- : !(-l $root || -w $root)))
- {
- print "skipped $root\n" if $verbose;
- next;
- }
- chmod 0666, $root
- or carp "Can't make file $root writeable: $!"
- if $force_writeable;
- print "unlink $root\n" if $verbose;
- # delete all versions under VMS
- for (;;) {
- unless (unlink $root) {
- carp "Can't unlink file $root: $!";
- if ($force_writeable) {
- chmod $rp, $root
- or carp("and can't restore permissions to "
- . sprintf("0%o",$rp) . "\n");
- }
- last;
- }
- ++$count;
- last unless $Is_VMS && lstat $root;
- }
- }
- }
-
- $count;
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/File/Spec.pm b/Master/xemtex/perl/lib/File/Spec.pm
deleted file mode 100644
index 529e34fe84a..00000000000
--- a/Master/xemtex/perl/lib/File/Spec.pm
+++ /dev/null
@@ -1,292 +0,0 @@
-package File::Spec;
-
-use strict;
-our(@ISA, $VERSION);
-
-$VERSION = 0.83 ;
-
-my %module = (MacOS => 'Mac',
- MSWin32 => 'Win32',
- os2 => 'OS2',
- VMS => 'VMS',
- epoc => 'Epoc',
- NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare.
- dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP.
- cygwin => 'Cygwin');
-
-
-my $module = $module{$^O} || 'Unix';
-
-require "File/Spec/$module.pm";
-@ISA = ("File::Spec::$module");
-
-1;
-
-__END__
-
-=head1 NAME
-
-File::Spec - portably perform operations on file names
-
-=head1 SYNOPSIS
-
- use File::Spec;
-
- $x=File::Spec->catfile('a', 'b', 'c');
-
-which returns 'a/b/c' under Unix. Or:
-
- use File::Spec::Functions;
-
- $x = catfile('a', 'b', 'c');
-
-=head1 DESCRIPTION
-
-This module is designed to support operations commonly performed on file
-specifications (usually called "file names", but not to be confused with the
-contents of a file, or Perl's file handles), such as concatenating several
-directory and file names into a single path, or determining whether a path
-is rooted. It is based on code directly taken from MakeMaker 5.17, code
-written by Andreas KE<ouml>nig, Andy Dougherty, Charles Bailey, Ilya
-Zakharevich, Paul Schinder, and others.
-
-Since these functions are different for most operating systems, each set of
-OS specific routines is available in a separate module, including:
-
- File::Spec::Unix
- File::Spec::Mac
- File::Spec::OS2
- File::Spec::Win32
- File::Spec::VMS
-
-The module appropriate for the current OS is automatically loaded by
-File::Spec. Since some modules (like VMS) make use of facilities available
-only under that OS, it may not be possible to load all modules under all
-operating systems.
-
-Since File::Spec is object oriented, subroutines should not be called directly,
-as in:
-
- File::Spec::catfile('a','b');
-
-but rather as class methods:
-
- File::Spec->catfile('a','b');
-
-For simple uses, L<File::Spec::Functions> provides convenient functional
-forms of these methods.
-
-=head1 METHODS
-
-=over 2
-
-=item canonpath
-
-No physical check on the filesystem, but a logical cleanup of a
-path.
-
- $cpath = File::Spec->canonpath( $path ) ;
-
-=item catdir
-
-Concatenate two or more directory names to form a complete path ending
-with a directory. But remove the trailing slash from the resulting
-string, because it doesn't look good, isn't necessary and confuses
-OS2. Of course, if this is the root directory, don't cut off the
-trailing slash :-)
-
- $path = File::Spec->catdir( @directories );
-
-=item catfile
-
-Concatenate one or more directory names and a filename to form a
-complete path ending with a filename
-
- $path = File::Spec->catfile( @directories, $filename );
-
-=item curdir
-
-Returns a string representation of the current directory.
-
- $curdir = File::Spec->curdir();
-
-=item devnull
-
-Returns a string representation of the null device.
-
- $devnull = File::Spec->devnull();
-
-=item rootdir
-
-Returns a string representation of the root directory.
-
- $rootdir = File::Spec->rootdir();
-
-=item tmpdir
-
-Returns a string representation of the first writable directory from a
-list of possible temporary directories. Returns "" if no writable
-temporary directories are found. The list of directories checked
-depends on the platform; e.g. File::Spec::Unix checks $ENV{TMPDIR} and
-/tmp.
-
- $tmpdir = File::Spec->tmpdir();
-
-=item updir
-
-Returns a string representation of the parent directory.
-
- $updir = File::Spec->updir();
-
-=item no_upwards
-
-Given a list of file names, strip out those that refer to a parent
-directory. (Does not strip symlinks, only '.', '..', and equivalents.)
-
- @paths = File::Spec->no_upwards( @paths );
-
-=item case_tolerant
-
-Returns a true or false value indicating, respectively, that alphabetic
-is not or is significant when comparing file specifications.
-
- $is_case_tolerant = File::Spec->case_tolerant();
-
-=item file_name_is_absolute
-
-Takes as argument a path and returns true if it is an absolute path.
-
- $is_absolute = File::Spec->file_name_is_absolute( $path );
-
-This does not consult the local filesystem on Unix, Win32, OS/2, or
-Mac OS (Classic). It does consult the working environment for VMS
-(see L<File::Spec::VMS/file_name_is_absolute>).
-
-=item path
-
-Takes no argument, returns the environment variable PATH as an array.
-
- @PATH = File::Spec->path();
-
-=item join
-
-join is the same as catfile.
-
-=item splitpath
-
-Splits a path in to volume, directory, and filename portions. On systems
-with no concept of volume, returns undef for volume.
-
- ($volume,$directories,$file) = File::Spec->splitpath( $path );
- ($volume,$directories,$file) = File::Spec->splitpath( $path, $no_file );
-
-For systems with no syntax differentiating filenames from directories,
-assumes that the last file is a path unless $no_file is true or a
-trailing separator or /. or /.. is present. On Unix this means that $no_file
-true makes this return ( '', $path, '' ).
-
-The directory portion may or may not be returned with a trailing '/'.
-
-The results can be passed to L</catpath()> to get back a path equivalent to
-(usually identical to) the original path.
-
-=item splitdir
-
-The opposite of L</catdir()>.
-
- @dirs = File::Spec->splitdir( $directories );
-
-$directories must be only the directory portion of the path on systems
-that have the concept of a volume or that have path syntax that differentiates
-files from directories.
-
-Unlike just splitting the directories on the separator, empty
-directory names (C<''>) can be returned, because these are significant
-on some OSs.
-
-=item catpath()
-
-Takes volume, directory and file portions and returns an entire path. Under
-Unix, $volume is ignored, and directory and file are catenated. A '/' is
-inserted if need be. On other OSs, $volume is significant.
-
- $full_path = File::Spec->catpath( $volume, $directory, $file );
-
-=item abs2rel
-
-Takes a destination path and an optional base path returns a relative path
-from the base path to the destination path:
-
- $rel_path = File::Spec->abs2rel( $path ) ;
- $rel_path = File::Spec->abs2rel( $path, $base ) ;
-
-If $base is not present or '', then L<cwd()|Cwd> is used. If $base is relative,
-then it is converted to absolute form using L</rel2abs()>. This means that it
-is taken to be relative to L<cwd()|Cwd>.
-
-On systems with the concept of a volume, this assumes that both paths
-are on the $destination volume, and ignores the $base volume.
-
-On systems that have a grammar that indicates filenames, this ignores the
-$base filename as well. Otherwise all path components are assumed to be
-directories.
-
-If $path is relative, it is converted to absolute form using L</rel2abs()>.
-This means that it is taken to be relative to L<cwd()|Cwd>.
-
-No checks against the filesystem are made. On VMS, there is
-interaction with the working environment, as logicals and
-macros are expanded.
-
-Based on code written by Shigio Yamaguchi.
-
-=item rel2abs()
-
-Converts a relative path to an absolute path.
-
- $abs_path = File::Spec->rel2abs( $path ) ;
- $abs_path = File::Spec->rel2abs( $path, $base ) ;
-
-If $base is not present or '', then L<cwd()|Cwd> is used. If $base is relative,
-then it is converted to absolute form using L</rel2abs()>. This means that it
-is taken to be relative to L<cwd()|Cwd>.
-
-On systems with the concept of a volume, this assumes that both paths
-are on the $base volume, and ignores the $path volume.
-
-On systems that have a grammar that indicates filenames, this ignores the
-$base filename as well. Otherwise all path components are assumed to be
-directories.
-
-If $path is absolute, it is cleaned up and returned using L</canonpath()>.
-
-No checks against the filesystem are made. On VMS, there is
-interaction with the working environment, as logicals and
-macros are expanded.
-
-Based on code written by Shigio Yamaguchi.
-
-=back
-
-For further information, please see L<File::Spec::Unix>,
-L<File::Spec::Mac>, L<File::Spec::OS2>, L<File::Spec::Win32>, or
-L<File::Spec::VMS>.
-
-=head1 SEE ALSO
-
-L<File::Spec::Unix>, L<File::Spec::Mac>, L<File::Spec::OS2>,
-L<File::Spec::Win32>, L<File::Spec::VMS>, L<File::Spec::Functions>,
-L<ExtUtils::MakeMaker>
-
-=head1 AUTHORS
-
-Kenneth Albanowski <kjahds@kjahds.com>, Andy Dougherty
-<doughera@lafcol.lafayette.edu>, Andreas KE<ouml>nig
-<A.Koenig@franz.ww.TU-Berlin.DE>, Tim Bunce <Tim.Bunce@ig.co.uk.
-VMS support by Charles Bailey <bailey@newman.upenn.edu>.
-OS/2 support by Ilya Zakharevich <ilya@math.ohio-state.edu>.
-Mac support by Paul Schinder <schinder@pobox.com>, and Thomas Wegner
-<wegner_thomas@yahoo.com>. abs2rel() and rel2abs() written by Shigio
-Yamaguchi <shigio@tamacom.com>, modified by Barrie Slaymaker
-<barries@slaysys.com>. splitpath(), splitdir(), catpath() and
-catdir() by Barrie Slaymaker.
diff --git a/Master/xemtex/perl/lib/File/Spec/Unix.pm b/Master/xemtex/perl/lib/File/Spec/Unix.pm
deleted file mode 100644
index 87ee5051022..00000000000
--- a/Master/xemtex/perl/lib/File/Spec/Unix.pm
+++ /dev/null
@@ -1,482 +0,0 @@
-package File::Spec::Unix;
-
-use strict;
-our($VERSION);
-
-$VERSION = '1.4';
-
-use Cwd;
-
-=head1 NAME
-
-File::Spec::Unix - File::Spec for Unix, base for other File::Spec modules
-
-=head1 SYNOPSIS
-
- require File::Spec::Unix; # Done automatically by File::Spec
-
-=head1 DESCRIPTION
-
-Methods for manipulating file specifications. Other File::Spec
-modules, such as File::Spec::Mac, inherit from File::Spec::Unix and
-override specific methods.
-
-=head1 METHODS
-
-=over 2
-
-=item canonpath()
-
-No physical check on the filesystem, but a logical cleanup of a
-path. On UNIX eliminates successive slashes and successive "/.".
-
- $cpath = File::Spec->canonpath( $path ) ;
-
-=cut
-
-sub canonpath {
- my ($self,$path) = @_;
-
- # Handle POSIX-style node names beginning with double slash (qnx, nto)
- # Handle network path names beginning with double slash (cygwin)
- # (POSIX says: "a pathname that begins with two successive slashes
- # may be interpreted in an implementation-defined manner, although
- # more than two leading slashes shall be treated as a single slash.")
- my $node = '';
- if ( $^O =~ m/^(?:qnx|nto|cygwin)$/ && $path =~ s:^(//[^/]+)(/|\z):/:s ) {
- $node = $1;
- }
- # This used to be
- # $path =~ s|/+|/|g unless($^O eq 'cygwin');
- # but that made tests 29, 30, 35, 46, and 213 (as of #13272) to fail
- # (Mainly because trailing "" directories didn't get stripped).
- # Why would cygwin avoid collapsing multiple slashes into one? --jhi
- $path =~ s|/+|/|g; # xx////xx -> xx/xx
- $path =~ s@(/\.)+(/|\Z(?!\n))@/@g; # xx/././xx -> xx/xx
- $path =~ s|^(\./)+||s unless $path eq "./"; # ./xx -> xx
- $path =~ s|^/(\.\./)+|/|s; # /../../xx -> xx
- $path =~ s|/\Z(?!\n)|| unless $path eq "/"; # xx/ -> xx
- return "$node$path";
-}
-
-=item catdir()
-
-Concatenate two or more directory names to form a complete path ending
-with a directory. But remove the trailing slash from the resulting
-string, because it doesn't look good, isn't necessary and confuses
-OS2. Of course, if this is the root directory, don't cut off the
-trailing slash :-)
-
-=cut
-
-sub catdir {
- my $self = shift;
- my @args = @_;
- foreach (@args) {
- # append a slash to each argument unless it has one there
- $_ .= "/" if $_ eq '' || substr($_,-1) ne "/";
- }
- return $self->canonpath(join('', @args));
-}
-
-=item catfile
-
-Concatenate one or more directory names and a filename to form a
-complete path ending with a filename
-
-=cut
-
-sub catfile {
- my $self = shift;
- my $file = pop @_;
- return $file unless @_;
- my $dir = $self->catdir(@_);
- $dir .= "/" unless substr($dir,-1) eq "/";
- return $dir.$file;
-}
-
-=item curdir
-
-Returns a string representation of the current directory. "." on UNIX.
-
-=cut
-
-sub curdir {
- return ".";
-}
-
-=item devnull
-
-Returns a string representation of the null device. "/dev/null" on UNIX.
-
-=cut
-
-sub devnull {
- return "/dev/null";
-}
-
-=item rootdir
-
-Returns a string representation of the root directory. "/" on UNIX.
-
-=cut
-
-sub rootdir {
- return "/";
-}
-
-=item tmpdir
-
-Returns a string representation of the first writable directory
-from the following list or "" if none are writable:
-
- $ENV{TMPDIR}
- /tmp
-
-Since perl 5.8.0, if running under taint mode, and if $ENV{TMPDIR}
-is tainted, it is not used.
-
-=cut
-
-my $tmpdir;
-sub tmpdir {
- return $tmpdir if defined $tmpdir;
- my @dirlist = ($ENV{TMPDIR}, "/tmp");
- {
- no strict 'refs';
- if (${"\cTAINT"}) { # Check for taint mode on perl >= 5.8.0
- require Scalar::Util;
- shift @dirlist if Scalar::Util::tainted($ENV{TMPDIR});
- }
- }
- foreach (@dirlist) {
- next unless defined && -d && -w _;
- $tmpdir = $_;
- last;
- }
- $tmpdir = '' unless defined $tmpdir;
- return $tmpdir;
-}
-
-=item updir
-
-Returns a string representation of the parent directory. ".." on UNIX.
-
-=cut
-
-sub updir {
- return "..";
-}
-
-=item no_upwards
-
-Given a list of file names, strip out those that refer to a parent
-directory. (Does not strip symlinks, only '.', '..', and equivalents.)
-
-=cut
-
-sub no_upwards {
- my $self = shift;
- return grep(!/^\.{1,2}\Z(?!\n)/s, @_);
-}
-
-=item case_tolerant
-
-Returns a true or false value indicating, respectively, that alphabetic
-is not or is significant when comparing file specifications.
-
-=cut
-
-sub case_tolerant {
- return 0;
-}
-
-=item file_name_is_absolute
-
-Takes as argument a path and returns true if it is an absolute path.
-
-This does not consult the local filesystem on Unix, Win32, OS/2 or Mac
-OS (Classic). It does consult the working environment for VMS (see
-L<File::Spec::VMS/file_name_is_absolute>).
-
-=cut
-
-sub file_name_is_absolute {
- my ($self,$file) = @_;
- return scalar($file =~ m:^/:s);
-}
-
-=item path
-
-Takes no argument, returns the environment variable PATH as an array.
-
-=cut
-
-sub path {
- my @path = split(':', $ENV{PATH});
- foreach (@path) { $_ = '.' if $_ eq '' }
- return @path;
-}
-
-=item join
-
-join is the same as catfile.
-
-=cut
-
-sub join {
- my $self = shift;
- return $self->catfile(@_);
-}
-
-=item splitpath
-
- ($volume,$directories,$file) = File::Spec->splitpath( $path );
- ($volume,$directories,$file) = File::Spec->splitpath( $path, $no_file );
-
-Splits a path in to volume, directory, and filename portions. On systems
-with no concept of volume, returns undef for volume.
-
-For systems with no syntax differentiating filenames from directories,
-assumes that the last file is a path unless $no_file is true or a
-trailing separator or /. or /.. is present. On Unix this means that $no_file
-true makes this return ( '', $path, '' ).
-
-The directory portion may or may not be returned with a trailing '/'.
-
-The results can be passed to L</catpath()> to get back a path equivalent to
-(usually identical to) the original path.
-
-=cut
-
-sub splitpath {
- my ($self,$path, $nofile) = @_;
-
- my ($volume,$directory,$file) = ('','','');
-
- if ( $nofile ) {
- $directory = $path;
- }
- else {
- $path =~ m|^ ( (?: .* / (?: \.\.?\Z(?!\n) )? )? ) ([^/]*) |xs;
- $directory = $1;
- $file = $2;
- }
-
- return ($volume,$directory,$file);
-}
-
-
-=item splitdir
-
-The opposite of L</catdir()>.
-
- @dirs = File::Spec->splitdir( $directories );
-
-$directories must be only the directory portion of the path on systems
-that have the concept of a volume or that have path syntax that differentiates
-files from directories.
-
-Unlike just splitting the directories on the separator, empty
-directory names (C<''>) can be returned, because these are significant
-on some OSs.
-
-On Unix,
-
- File::Spec->splitdir( "/a/b//c/" );
-
-Yields:
-
- ( '', 'a', 'b', '', 'c', '' )
-
-=cut
-
-sub splitdir {
- my ($self,$directories) = @_ ;
- #
- # split() likes to forget about trailing null fields, so here we
- # check to be sure that there will not be any before handling the
- # simple case.
- #
- if ( $directories !~ m|/\Z(?!\n)| ) {
- return split( m|/|, $directories );
- }
- else {
- #
- # since there was a trailing separator, add a file name to the end,
- # then do the split, then replace it with ''.
- #
- my( @directories )= split( m|/|, "${directories}dummy" ) ;
- $directories[ $#directories ]= '' ;
- return @directories ;
- }
-}
-
-
-=item catpath()
-
-Takes volume, directory and file portions and returns an entire path. Under
-Unix, $volume is ignored, and directory and file are catenated. A '/' is
-inserted if needed (though if the directory portion doesn't start with
-'/' it is not added). On other OSs, $volume is significant.
-
-=cut
-
-sub catpath {
- my ($self,$volume,$directory,$file) = @_;
-
- if ( $directory ne '' &&
- $file ne '' &&
- substr( $directory, -1 ) ne '/' &&
- substr( $file, 0, 1 ) ne '/'
- ) {
- $directory .= "/$file" ;
- }
- else {
- $directory .= $file ;
- }
-
- return $directory ;
-}
-
-=item abs2rel
-
-Takes a destination path and an optional base path returns a relative path
-from the base path to the destination path:
-
- $rel_path = File::Spec->abs2rel( $path ) ;
- $rel_path = File::Spec->abs2rel( $path, $base ) ;
-
-If $base is not present or '', then L<cwd()|Cwd> is used. If $base is relative,
-then it is converted to absolute form using L</rel2abs()>. This means that it
-is taken to be relative to L<cwd()|Cwd>.
-
-On systems with the concept of a volume, this assumes that both paths
-are on the $destination volume, and ignores the $base volume.
-
-On systems that have a grammar that indicates filenames, this ignores the
-$base filename as well. Otherwise all path components are assumed to be
-directories.
-
-If $path is relative, it is converted to absolute form using L</rel2abs()>.
-This means that it is taken to be relative to L<cwd()|Cwd>.
-
-No checks against the filesystem are made. On VMS, there is
-interaction with the working environment, as logicals and
-macros are expanded.
-
-Based on code written by Shigio Yamaguchi.
-
-=cut
-
-sub abs2rel {
- my($self,$path,$base) = @_;
-
- # Clean up $path
- if ( ! $self->file_name_is_absolute( $path ) ) {
- $path = $self->rel2abs( $path ) ;
- }
- else {
- $path = $self->canonpath( $path ) ;
- }
-
- # Figure out the effective $base and clean it up.
- if ( !defined( $base ) || $base eq '' ) {
- $base = cwd() ;
- }
- elsif ( ! $self->file_name_is_absolute( $base ) ) {
- $base = $self->rel2abs( $base ) ;
- }
- else {
- $base = $self->canonpath( $base ) ;
- }
-
- # Now, remove all leading components that are the same
- my @pathchunks = $self->splitdir( $path);
- my @basechunks = $self->splitdir( $base);
-
- while (@pathchunks && @basechunks && $pathchunks[0] eq $basechunks[0]) {
- shift @pathchunks ;
- shift @basechunks ;
- }
-
- $path = CORE::join( '/', @pathchunks );
- $base = CORE::join( '/', @basechunks );
-
- # $base now contains the directories the resulting relative path
- # must ascend out of before it can descend to $path_directory. So,
- # replace all names with $parentDir
- $base =~ s|[^/]+|..|g ;
-
- # Glue the two together, using a separator if necessary, and preventing an
- # empty result.
- if ( $path ne '' && $base ne '' ) {
- $path = "$base/$path" ;
- } else {
- $path = "$base$path" ;
- }
-
- return $self->canonpath( $path ) ;
-}
-
-=item rel2abs()
-
-Converts a relative path to an absolute path.
-
- $abs_path = File::Spec->rel2abs( $path ) ;
- $abs_path = File::Spec->rel2abs( $path, $base ) ;
-
-If $base is not present or '', then L<cwd()|Cwd> is used. If $base is relative,
-then it is converted to absolute form using L</rel2abs()>. This means that it
-is taken to be relative to L<cwd()|Cwd>.
-
-On systems with the concept of a volume, this assumes that both paths
-are on the $base volume, and ignores the $path volume.
-
-On systems that have a grammar that indicates filenames, this ignores the
-$base filename as well. Otherwise all path components are assumed to be
-directories.
-
-If $path is absolute, it is cleaned up and returned using L</canonpath()>.
-
-No checks against the filesystem are made. On VMS, there is
-interaction with the working environment, as logicals and
-macros are expanded.
-
-Based on code written by Shigio Yamaguchi.
-
-=cut
-
-sub rel2abs {
- my ($self,$path,$base ) = @_;
-
- # Clean up $path
- if ( ! $self->file_name_is_absolute( $path ) ) {
- # Figure out the effective $base and clean it up.
- if ( !defined( $base ) || $base eq '' ) {
- $base = cwd() ;
- }
- elsif ( ! $self->file_name_is_absolute( $base ) ) {
- $base = $self->rel2abs( $base ) ;
- }
- else {
- $base = $self->canonpath( $base ) ;
- }
-
- # Glom them together
- $path = $self->catdir( $base, $path ) ;
- }
-
- return $self->canonpath( $path ) ;
-}
-
-
-=back
-
-=head1 SEE ALSO
-
-L<File::Spec>
-
-=cut
-
-1;
diff --git a/Master/xemtex/perl/lib/File/Spec/Win32.pm b/Master/xemtex/perl/lib/File/Spec/Win32.pm
deleted file mode 100644
index 186052bb4d8..00000000000
--- a/Master/xemtex/perl/lib/File/Spec/Win32.pm
+++ /dev/null
@@ -1,370 +0,0 @@
-package File::Spec::Win32;
-
-use strict;
-use Cwd;
-use vars qw(@ISA $VERSION);
-require File::Spec::Unix;
-
-$VERSION = '1.3';
-
-@ISA = qw(File::Spec::Unix);
-
-=head1 NAME
-
-File::Spec::Win32 - methods for Win32 file specs
-
-=head1 SYNOPSIS
-
- require File::Spec::Win32; # Done internally by File::Spec if needed
-
-=head1 DESCRIPTION
-
-See File::Spec::Unix for a documentation of the methods provided
-there. This package overrides the implementation of these methods, not
-the semantics.
-
-=over 4
-
-=item devnull
-
-Returns a string representation of the null device.
-
-=cut
-
-sub devnull {
- return "nul";
-}
-
-=item tmpdir
-
-Returns a string representation of the first existing directory
-from the following list:
-
- $ENV{TMPDIR}
- $ENV{TEMP}
- $ENV{TMP}
- SYS:/temp
- C:/temp
- /tmp
- /
-
-The SYS:/temp is preferred in Novell NetWare.
-
-Since Perl 5.8.0, if running under taint mode, and if the environment
-variables are tainted, they are not used.
-
-=cut
-
-my $tmpdir;
-sub tmpdir {
- return $tmpdir if defined $tmpdir;
- my $self = shift;
- my @dirlist = (@ENV{qw(TMPDIR TEMP TMP)}, qw(C:/temp /tmp /));
- {
- no strict 'refs';
- if (${"\cTAINT"}) { # Check for taint mode on perl >= 5.8.0
- require Scalar::Util;
- @dirlist = grep { ! Scalar::Util::tainted $_ } @dirlist;
- }
- }
- foreach (@dirlist) {
- next unless defined && -d;
- $tmpdir = $_;
- last;
- }
- $tmpdir = '' unless defined $tmpdir;
- $tmpdir = $self->canonpath($tmpdir);
- return $tmpdir;
-}
-
-sub case_tolerant {
- return 1;
-}
-
-sub file_name_is_absolute {
- my ($self,$file) = @_;
- return scalar($file =~ m{^([a-z]:)?[\\/]}is);
-}
-
-=item catfile
-
-Concatenate one or more directory names and a filename to form a
-complete path ending with a filename
-
-=cut
-
-sub catfile {
- my $self = shift;
- my $file = pop @_;
- return $file unless @_;
- my $dir = $self->catdir(@_);
- $dir .= "\\" unless substr($dir,-1) eq "\\";
- return $dir.$file;
-}
-
-sub path {
- my $path = $ENV{'PATH'} || $ENV{'Path'} || $ENV{'path'};
- my @path = split(';',$path);
- foreach (@path) { $_ = '.' if $_ eq '' }
- return @path;
-}
-
-=item canonpath
-
-No physical check on the filesystem, but a logical cleanup of a
-path. On UNIX eliminated successive slashes and successive "/.".
-
-=cut
-
-sub canonpath {
- my ($self,$path) = @_;
- $path =~ s/^([a-z]:)/\u$1/s;
- $path =~ s|/|\\|g;
- $path =~ s|([^\\])\\+|$1\\|g; # xx\\\\xx -> xx\xx
- $path =~ s|(\\\.)+\\|\\|g; # xx\.\.\xx -> xx\xx
- $path =~ s|^(\.\\)+||s unless $path eq ".\\"; # .\xx -> xx
- $path =~ s|\\\Z(?!\n)||
- unless $path =~ m#^([A-Z]:)?\\\Z(?!\n)#s; # xx\ -> xx
- return $path;
-}
-
-=item splitpath
-
- ($volume,$directories,$file) = File::Spec->splitpath( $path );
- ($volume,$directories,$file) = File::Spec->splitpath( $path, $no_file );
-
-Splits a path in to volume, directory, and filename portions. Assumes that
-the last file is a path unless the path ends in '\\', '\\.', '\\..'
-or $no_file is true. On Win32 this means that $no_file true makes this return
-( $volume, $path, undef ).
-
-Separators accepted are \ and /.
-
-Volumes can be drive letters or UNC sharenames (\\server\share).
-
-The results can be passed to L</catpath> to get back a path equivalent to
-(usually identical to) the original path.
-
-=cut
-
-sub splitpath {
- my ($self,$path, $nofile) = @_;
- my ($volume,$directory,$file) = ('','','');
- if ( $nofile ) {
- $path =~
- m{^( (?:[a-zA-Z]:|(?:\\\\|//)[^\\/]+[\\/][^\\/]+)? )
- (.*)
- }xs;
- $volume = $1;
- $directory = $2;
- }
- else {
- $path =~
- m{^ ( (?: [a-zA-Z]: |
- (?:\\\\|//)[^\\/]+[\\/][^\\/]+
- )?
- )
- ( (?:.*[\\\\/](?:\.\.?\Z(?!\n))?)? )
- (.*)
- }xs;
- $volume = $1;
- $directory = $2;
- $file = $3;
- }
-
- return ($volume,$directory,$file);
-}
-
-
-=item splitdir
-
-The opposite of L<catdir()|File::Spec/catdir()>.
-
- @dirs = File::Spec->splitdir( $directories );
-
-$directories must be only the directory portion of the path on systems
-that have the concept of a volume or that have path syntax that differentiates
-files from directories.
-
-Unlike just splitting the directories on the separator, leading empty and
-trailing directory entries can be returned, because these are significant
-on some OSs. So,
-
- File::Spec->splitdir( "/a/b/c" );
-
-Yields:
-
- ( '', 'a', 'b', '', 'c', '' )
-
-=cut
-
-sub splitdir {
- my ($self,$directories) = @_ ;
- #
- # split() likes to forget about trailing null fields, so here we
- # check to be sure that there will not be any before handling the
- # simple case.
- #
- if ( $directories !~ m|[\\/]\Z(?!\n)| ) {
- return split( m|[\\/]|, $directories );
- }
- else {
- #
- # since there was a trailing separator, add a file name to the end,
- # then do the split, then replace it with ''.
- #
- my( @directories )= split( m|[\\/]|, "${directories}dummy" ) ;
- $directories[ $#directories ]= '' ;
- return @directories ;
- }
-}
-
-
-=item catpath
-
-Takes volume, directory and file portions and returns an entire path. Under
-Unix, $volume is ignored, and this is just like catfile(). On other OSs,
-the $volume become significant.
-
-=cut
-
-sub catpath {
- my ($self,$volume,$directory,$file) = @_;
-
- # If it's UNC, make sure the glue separator is there, reusing
- # whatever separator is first in the $volume
- $volume .= $1
- if ( $volume =~ m@^([\\/])[\\/][^\\/]+[\\/][^\\/]+\Z(?!\n)@s &&
- $directory =~ m@^[^\\/]@s
- ) ;
-
- $volume .= $directory ;
-
- # If the volume is not just A:, make sure the glue separator is
- # there, reusing whatever separator is first in the $volume if possible.
- if ( $volume !~ m@^[a-zA-Z]:\Z(?!\n)@s &&
- $volume =~ m@[^\\/]\Z(?!\n)@ &&
- $file =~ m@[^\\/]@
- ) {
- $volume =~ m@([\\/])@ ;
- my $sep = $1 ? $1 : '\\' ;
- $volume .= $sep ;
- }
-
- $volume .= $file ;
-
- return $volume ;
-}
-
-
-sub abs2rel {
- my($self,$path,$base) = @_;
-
- # Clean up $path
- if ( ! $self->file_name_is_absolute( $path ) ) {
- $path = $self->rel2abs( $path ) ;
- }
- else {
- $path = $self->canonpath( $path ) ;
- }
-
- # Figure out the effective $base and clean it up.
- if ( !defined( $base ) || $base eq '' ) {
- $base = cwd() ;
- }
- elsif ( ! $self->file_name_is_absolute( $base ) ) {
- $base = $self->rel2abs( $base ) ;
- }
- else {
- $base = $self->canonpath( $base ) ;
- }
-
- # Split up paths
- my ( undef, $path_directories, $path_file ) =
- $self->splitpath( $path, 1 ) ;
-
- my $base_directories = ($self->splitpath( $base, 1 ))[1] ;
-
- # Now, remove all leading components that are the same
- my @pathchunks = $self->splitdir( $path_directories );
- my @basechunks = $self->splitdir( $base_directories );
-
- while ( @pathchunks &&
- @basechunks &&
- lc( $pathchunks[0] ) eq lc( $basechunks[0] )
- ) {
- shift @pathchunks ;
- shift @basechunks ;
- }
-
- # No need to catdir, we know these are well formed.
- $path_directories = CORE::join( '\\', @pathchunks );
- $base_directories = CORE::join( '\\', @basechunks );
-
- # $base_directories now contains the directories the resulting relative
- # path must ascend out of before it can descend to $path_directory. So,
- # replace all names with $parentDir
-
- #FA Need to replace between backslashes...
- $base_directories =~ s|[^\\]+|..|g ;
-
- # Glue the two together, using a separator if necessary, and preventing an
- # empty result.
-
- #FA Must check that new directories are not empty.
- if ( $path_directories ne '' && $base_directories ne '' ) {
- $path_directories = "$base_directories\\$path_directories" ;
- } else {
- $path_directories = "$base_directories$path_directories" ;
- }
-
- return $self->canonpath(
- $self->catpath( "", $path_directories, $path_file )
- ) ;
-}
-
-
-sub rel2abs {
- my ($self,$path,$base ) = @_;
-
- if ( ! $self->file_name_is_absolute( $path ) ) {
-
- if ( !defined( $base ) || $base eq '' ) {
- $base = cwd() ;
- }
- elsif ( ! $self->file_name_is_absolute( $base ) ) {
- $base = $self->rel2abs( $base ) ;
- }
- else {
- $base = $self->canonpath( $base ) ;
- }
-
- my ( $path_directories, $path_file ) =
- ($self->splitpath( $path, 1 ))[1,2] ;
-
- my ( $base_volume, $base_directories ) =
- $self->splitpath( $base, 1 ) ;
-
- $path = $self->catpath(
- $base_volume,
- $self->catdir( $base_directories, $path_directories ),
- $path_file
- ) ;
- }
-
- return $self->canonpath( $path ) ;
-}
-
-=back
-
-=head2 Note For File::Spec::Win32 Maintainers
-
-Novell NetWare inherits its File::Spec behaviour from File::Spec::Win32.
-
-=head1 SEE ALSO
-
-L<File::Spec>
-
-=cut
-
-1;
diff --git a/Master/xemtex/perl/lib/File/Temp.pm b/Master/xemtex/perl/lib/File/Temp.pm
deleted file mode 100644
index 6f351dfa6ce..00000000000
--- a/Master/xemtex/perl/lib/File/Temp.pm
+++ /dev/null
@@ -1,1876 +0,0 @@
-package File::Temp;
-
-=head1 NAME
-
-File::Temp - return name and handle of a temporary file safely
-
-=begin __INTERNALS
-
-=head1 PORTABILITY
-
-This module is designed to be portable across operating systems
-and it currently supports Unix, VMS, DOS, OS/2, Windows and
-Mac OS (Classic). When
-porting to a new OS there are generally three main issues
-that have to be solved:
-
-=over 4
-
-=item *
-
-Can the OS unlink an open file? If it can not then the
-C<_can_unlink_opened_file> method should be modified.
-
-=item *
-
-Are the return values from C<stat> reliable? By default all the
-return values from C<stat> are compared when unlinking a temporary
-file using the filename and the handle. Operating systems other than
-unix do not always have valid entries in all fields. If C<unlink0> fails
-then the C<stat> comparison should be modified accordingly.
-
-=item *
-
-Security. Systems that can not support a test for the sticky bit
-on a directory can not use the MEDIUM and HIGH security tests.
-The C<_can_do_level> method should be modified accordingly.
-
-=back
-
-=end __INTERNALS
-
-=head1 SYNOPSIS
-
- use File::Temp qw/ tempfile tempdir /;
-
- $dir = tempdir( CLEANUP => 1 );
- ($fh, $filename) = tempfile( DIR => $dir );
-
- ($fh, $filename) = tempfile( $template, DIR => $dir);
- ($fh, $filename) = tempfile( $template, SUFFIX => '.dat');
-
- $fh = tempfile();
-
-MkTemp family:
-
- use File::Temp qw/ :mktemp /;
-
- ($fh, $file) = mkstemp( "tmpfileXXXXX" );
- ($fh, $file) = mkstemps( "tmpfileXXXXXX", $suffix);
-
- $tmpdir = mkdtemp( $template );
-
- $unopened_file = mktemp( $template );
-
-POSIX functions:
-
- use File::Temp qw/ :POSIX /;
-
- $file = tmpnam();
- $fh = tmpfile();
-
- ($fh, $file) = tmpnam();
- ($fh, $file) = tmpfile();
-
-
-Compatibility functions:
-
- $unopened_file = File::Temp::tempnam( $dir, $pfx );
-
-=begin later
-
-Objects (NOT YET IMPLEMENTED):
-
- require File::Temp;
-
- $fh = new File::Temp($template);
- $fname = $fh->filename;
-
-=end later
-
-=head1 DESCRIPTION
-
-C<File::Temp> can be used to create and open temporary files in a safe way.
-The tempfile() function can be used to return the name and the open
-filehandle of a temporary file. The tempdir() function can
-be used to create a temporary directory.
-
-The security aspect of temporary file creation is emphasized such that
-a filehandle and filename are returned together. This helps guarantee
-that a race condition can not occur where the temporary file is
-created by another process between checking for the existence of the
-file and its opening. Additional security levels are provided to
-check, for example, that the sticky bit is set on world writable
-directories. See L<"safe_level"> for more information.
-
-For compatibility with popular C library functions, Perl implementations of
-the mkstemp() family of functions are provided. These are, mkstemp(),
-mkstemps(), mkdtemp() and mktemp().
-
-Additionally, implementations of the standard L<POSIX|POSIX>
-tmpnam() and tmpfile() functions are provided if required.
-
-Implementations of mktemp(), tmpnam(), and tempnam() are provided,
-but should be used with caution since they return only a filename
-that was valid when function was called, so cannot guarantee
-that the file will not exist by the time the caller opens the filename.
-
-=cut
-
-# 5.6.0 gives us S_IWOTH, S_IWGRP, our and auto-vivifying filehandls
-# People would like a version on 5.005 so give them what they want :-)
-use 5.005;
-use strict;
-use Carp;
-use File::Spec 0.8;
-use File::Path qw/ rmtree /;
-use Fcntl 1.03;
-use Errno;
-require VMS::Stdio if $^O eq 'VMS';
-
-# Need the Symbol package if we are running older perl
-require Symbol if $] < 5.006;
-
-
-# use 'our' on v5.6.0
-use vars qw($VERSION @EXPORT_OK %EXPORT_TAGS $DEBUG);
-
-$DEBUG = 0;
-
-# We are exporting functions
-
-use base qw/Exporter/;
-
-# Export list - to allow fine tuning of export table
-
-@EXPORT_OK = qw{
- tempfile
- tempdir
- tmpnam
- tmpfile
- mktemp
- mkstemp
- mkstemps
- mkdtemp
- unlink0
- };
-
-# Groups of functions for export
-
-%EXPORT_TAGS = (
- 'POSIX' => [qw/ tmpnam tmpfile /],
- 'mktemp' => [qw/ mktemp mkstemp mkstemps mkdtemp/],
- );
-
-# add contents of these tags to @EXPORT
-Exporter::export_tags('POSIX','mktemp');
-
-# Version number
-
-$VERSION = '0.13';
-
-# This is a list of characters that can be used in random filenames
-
-my @CHARS = (qw/ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- a b c d e f g h i j k l m n o p q r s t u v w x y z
- 0 1 2 3 4 5 6 7 8 9 _
- /);
-
-# Maximum number of tries to make a temp file before failing
-
-use constant MAX_TRIES => 10;
-
-# Minimum number of X characters that should be in a template
-use constant MINX => 4;
-
-# Default template when no template supplied
-
-use constant TEMPXXX => 'X' x 10;
-
-# Constants for the security level
-
-use constant STANDARD => 0;
-use constant MEDIUM => 1;
-use constant HIGH => 2;
-
-# OPENFLAGS. If we defined the flag to use with Sysopen here this gives
-# us an optimisation when many temporary files are requested
-
-my $OPENFLAGS = O_CREAT | O_EXCL | O_RDWR;
-
-unless ($^O eq 'MacOS') {
- for my $oflag (qw/ FOLLOW BINARY LARGEFILE EXLOCK NOINHERIT /) {
- my ($bit, $func) = (0, "Fcntl::O_" . $oflag);
- no strict 'refs';
- $OPENFLAGS |= $bit if eval {
- # Make sure that redefined die handlers do not cause problems
- # eg CGI::Carp
- local $SIG{__DIE__} = sub {};
- local $SIG{__WARN__} = sub {};
- $bit = &$func();
- 1;
- };
- }
-}
-
-# On some systems the O_TEMPORARY flag can be used to tell the OS
-# to automatically remove the file when it is closed. This is fine
-# in most cases but not if tempfile is called with UNLINK=>0 and
-# the filename is requested -- in the case where the filename is to
-# be passed to another routine. This happens on windows. We overcome
-# this by using a second open flags variable
-
-my $OPENTEMPFLAGS = $OPENFLAGS;
-unless ($^O eq 'MacOS') {
- for my $oflag (qw/ TEMPORARY /) {
- my ($bit, $func) = (0, "Fcntl::O_" . $oflag);
- no strict 'refs';
- $OPENTEMPFLAGS |= $bit if eval {
- # Make sure that redefined die handlers do not cause problems
- # eg CGI::Carp
- local $SIG{__DIE__} = sub {};
- local $SIG{__WARN__} = sub {};
- $bit = &$func();
- 1;
- };
- }
-}
-
-# INTERNAL ROUTINES - not to be used outside of package
-
-# Generic routine for getting a temporary filename
-# modelled on OpenBSD _gettemp() in mktemp.c
-
-# The template must contain X's that are to be replaced
-# with the random values
-
-# Arguments:
-
-# TEMPLATE - string containing the XXXXX's that is converted
-# to a random filename and opened if required
-
-# Optionally, a hash can also be supplied containing specific options
-# "open" => if true open the temp file, else just return the name
-# default is 0
-# "mkdir"=> if true, we are creating a temp directory rather than tempfile
-# default is 0
-# "suffixlen" => number of characters at end of PATH to be ignored.
-# default is 0.
-# "unlink_on_close" => indicates that, if possible, the OS should remove
-# the file as soon as it is closed. Usually indicates
-# use of the O_TEMPORARY flag to sysopen.
-# Usually irrelevant on unix
-
-# Optionally a reference to a scalar can be passed into the function
-# On error this will be used to store the reason for the error
-# "ErrStr" => \$errstr
-
-# "open" and "mkdir" can not both be true
-# "unlink_on_close" is not used when "mkdir" is true.
-
-# The default options are equivalent to mktemp().
-
-# Returns:
-# filehandle - open file handle (if called with doopen=1, else undef)
-# temp name - name of the temp file or directory
-
-# For example:
-# ($fh, $name) = _gettemp($template, "open" => 1);
-
-# for the current version, failures are associated with
-# stored in an error string and returned to give the reason whilst debugging
-# This routine is not called by any external function
-sub _gettemp {
-
- croak 'Usage: ($fh, $name) = _gettemp($template, OPTIONS);'
- unless scalar(@_) >= 1;
-
- # the internal error string - expect it to be overridden
- # Need this in case the caller decides not to supply us a value
- # need an anonymous scalar
- my $tempErrStr;
-
- # Default options
- my %options = (
- "open" => 0,
- "mkdir" => 0,
- "suffixlen" => 0,
- "unlink_on_close" => 0,
- "ErrStr" => \$tempErrStr,
- );
-
- # Read the template
- my $template = shift;
- if (ref($template)) {
- # Use a warning here since we have not yet merged ErrStr
- carp "File::Temp::_gettemp: template must not be a reference";
- return ();
- }
-
- # Check that the number of entries on stack are even
- if (scalar(@_) % 2 != 0) {
- # Use a warning here since we have not yet merged ErrStr
- carp "File::Temp::_gettemp: Must have even number of options";
- return ();
- }
-
- # Read the options and merge with defaults
- %options = (%options, @_) if @_;
-
- # Make sure the error string is set to undef
- ${$options{ErrStr}} = undef;
-
- # Can not open the file and make a directory in a single call
- if ($options{"open"} && $options{"mkdir"}) {
- ${$options{ErrStr}} = "doopen and domkdir can not both be true\n";
- return ();
- }
-
- # Find the start of the end of the Xs (position of last X)
- # Substr starts from 0
- my $start = length($template) - 1 - $options{"suffixlen"};
-
- # Check that we have at least MINX x X (eg 'XXXX") at the end of the string
- # (taking suffixlen into account). Any fewer is insecure.
-
- # Do it using substr - no reason to use a pattern match since
- # we know where we are looking and what we are looking for
-
- if (substr($template, $start - MINX + 1, MINX) ne 'X' x MINX) {
- ${$options{ErrStr}} = "The template must contain at least ".
- MINX . " 'X' characters\n";
- return ();
- }
-
- # Replace all the X at the end of the substring with a
- # random character or just all the XX at the end of a full string.
- # Do it as an if, since the suffix adjusts which section to replace
- # and suffixlen=0 returns nothing if used in the substr directly
- # and generate a full path from the template
-
- my $path = _replace_XX($template, $options{"suffixlen"});
-
-
- # Split the path into constituent parts - eventually we need to check
- # whether the directory exists
- # We need to know whether we are making a temp directory
- # or a tempfile
-
- my ($volume, $directories, $file);
- my $parent; # parent directory
- if ($options{"mkdir"}) {
- # There is no filename at the end
- ($volume, $directories, $file) = File::Spec->splitpath( $path, 1);
-
- # The parent is then $directories without the last directory
- # Split the directory and put it back together again
- my @dirs = File::Spec->splitdir($directories);
-
- # If @dirs only has one entry (i.e. the directory template) that means
- # we are in the current directory
- if ($#dirs == 0) {
- $parent = File::Spec->curdir;
- } else {
-
- if ($^O eq 'VMS') { # need volume to avoid relative dir spec
- $parent = File::Spec->catdir($volume, @dirs[0..$#dirs-1]);
- $parent = 'sys$disk:[]' if $parent eq '';
- } else {
-
- # Put it back together without the last one
- $parent = File::Spec->catdir(@dirs[0..$#dirs-1]);
-
- # ...and attach the volume (no filename)
- $parent = File::Spec->catpath($volume, $parent, '');
- }
-
- }
-
- } else {
-
- # Get rid of the last filename (use File::Basename for this?)
- ($volume, $directories, $file) = File::Spec->splitpath( $path );
-
- # Join up without the file part
- $parent = File::Spec->catpath($volume,$directories,'');
-
- # If $parent is empty replace with curdir
- $parent = File::Spec->curdir
- unless $directories ne '';
-
- }
-
- # Check that the parent directories exist
- # Do this even for the case where we are simply returning a name
- # not a file -- no point returning a name that includes a directory
- # that does not exist or is not writable
-
- unless (-d $parent) {
- ${$options{ErrStr}} = "Parent directory ($parent) is not a directory";
- return ();
- }
- unless (-w _) {
- ${$options{ErrStr}} = "Parent directory ($parent) is not writable\n";
- return ();
- }
-
-
- # Check the stickiness of the directory and chown giveaway if required
- # If the directory is world writable the sticky bit
- # must be set
-
- if (File::Temp->safe_level == MEDIUM) {
- my $safeerr;
- unless (_is_safe($parent,\$safeerr)) {
- ${$options{ErrStr}} = "Parent directory ($parent) is not safe ($safeerr)";
- return ();
- }
- } elsif (File::Temp->safe_level == HIGH) {
- my $safeerr;
- unless (_is_verysafe($parent, \$safeerr)) {
- ${$options{ErrStr}} = "Parent directory ($parent) is not safe ($safeerr)";
- return ();
- }
- }
-
-
- # Now try MAX_TRIES time to open the file
- for (my $i = 0; $i < MAX_TRIES; $i++) {
-
- # Try to open the file if requested
- if ($options{"open"}) {
- my $fh;
-
- # If we are running before perl5.6.0 we can not auto-vivify
- if ($] < 5.006) {
- $fh = &Symbol::gensym;
- }
-
- # Try to make sure this will be marked close-on-exec
- # XXX: Win32 doesn't respect this, nor the proper fcntl,
- # but may have O_NOINHERIT. This may or may not be in Fcntl.
- local $^F = 2;
-
- # Store callers umask
- my $umask = umask();
-
- # Set a known umask
- umask(066);
-
- # Attempt to open the file
- my $open_success = undef;
- if ( $^O eq 'VMS' and $options{"unlink_on_close"} ) {
- # make it auto delete on close by setting FAB$V_DLT bit
- $fh = VMS::Stdio::vmssysopen($path, $OPENFLAGS, 0600, 'fop=dlt');
- $open_success = $fh;
- } else {
- my $flags = ( $options{"unlink_on_close"} ?
- $OPENTEMPFLAGS :
- $OPENFLAGS );
- $open_success = sysopen($fh, $path, $flags, 0600);
- }
- if ( $open_success ) {
-
- # Reset umask
- umask($umask) if defined $umask;
-
- # Opened successfully - return file handle and name
- return ($fh, $path);
-
- } else {
- # Reset umask
- umask($umask) if defined $umask;
-
- # Error opening file - abort with error
- # if the reason was anything but EEXIST
- unless ($!{EEXIST}) {
- ${$options{ErrStr}} = "Could not create temp file $path: $!";
- return ();
- }
-
- # Loop round for another try
-
- }
- } elsif ($options{"mkdir"}) {
-
- # Store callers umask
- my $umask = umask();
-
- # Set a known umask
- umask(066);
-
- # Open the temp directory
- if (mkdir( $path, 0700)) {
- # created okay
- # Reset umask
- umask($umask) if defined $umask;
-
- return undef, $path;
- } else {
-
- # Reset umask
- umask($umask) if defined $umask;
-
- # Abort with error if the reason for failure was anything
- # except EEXIST
- unless ($!{EEXIST}) {
- ${$options{ErrStr}} = "Could not create directory $path: $!";
- return ();
- }
-
- # Loop round for another try
-
- }
-
- } else {
-
- # Return true if the file can not be found
- # Directory has been checked previously
-
- return (undef, $path) unless -e $path;
-
- # Try again until MAX_TRIES
-
- }
-
- # Did not successfully open the tempfile/dir
- # so try again with a different set of random letters
- # No point in trying to increment unless we have only
- # 1 X say and the randomness could come up with the same
- # file MAX_TRIES in a row.
-
- # Store current attempt - in principal this implies that the
- # 3rd time around the open attempt that the first temp file
- # name could be generated again. Probably should store each
- # attempt and make sure that none are repeated
-
- my $original = $path;
- my $counter = 0; # Stop infinite loop
- my $MAX_GUESS = 50;
-
- do {
-
- # Generate new name from original template
- $path = _replace_XX($template, $options{"suffixlen"});
-
- $counter++;
-
- } until ($path ne $original || $counter > $MAX_GUESS);
-
- # Check for out of control looping
- if ($counter > $MAX_GUESS) {
- ${$options{ErrStr}} = "Tried to get a new temp name different to the previous value $MAX_GUESS times.\nSomething wrong with template?? ($template)";
- return ();
- }
-
- }
-
- # If we get here, we have run out of tries
- ${ $options{ErrStr} } = "Have exceeded the maximum number of attempts ("
- . MAX_TRIES . ") to open temp file/dir";
-
- return ();
-
-}
-
-# Internal routine to return a random character from the
-# character list. Does not do an srand() since rand()
-# will do one automatically
-
-# No arguments. Return value is the random character
-
-# No longer called since _replace_XX runs a few percent faster if
-# I inline the code. This is important if we are creating thousands of
-# temporary files.
-
-sub _randchar {
-
- $CHARS[ int( rand( $#CHARS ) ) ];
-
-}
-
-# Internal routine to replace the XXXX... with random characters
-# This has to be done by _gettemp() every time it fails to
-# open a temp file/dir
-
-# Arguments: $template (the template with XXX),
-# $ignore (number of characters at end to ignore)
-
-# Returns: modified template
-
-sub _replace_XX {
-
- croak 'Usage: _replace_XX($template, $ignore)'
- unless scalar(@_) == 2;
-
- my ($path, $ignore) = @_;
-
- # Do it as an if, since the suffix adjusts which section to replace
- # and suffixlen=0 returns nothing if used in the substr directly
- # Alternatively, could simply set $ignore to length($path)-1
- # Don't want to always use substr when not required though.
-
- if ($ignore) {
- substr($path, 0, - $ignore) =~ s/X(?=X*\z)/$CHARS[ int( rand( $#CHARS ) ) ]/ge;
- } else {
- $path =~ s/X(?=X*\z)/$CHARS[ int( rand( $#CHARS ) ) ]/ge;
- }
-
- return $path;
-}
-
-# internal routine to check to see if the directory is safe
-# First checks to see if the directory is not owned by the
-# current user or root. Then checks to see if anyone else
-# can write to the directory and if so, checks to see if
-# it has the sticky bit set
-
-# Will not work on systems that do not support sticky bit
-
-#Args: directory path to check
-# Optionally: reference to scalar to contain error message
-# Returns true if the path is safe and false otherwise.
-# Returns undef if can not even run stat() on the path
-
-# This routine based on version written by Tom Christiansen
-
-# Presumably, by the time we actually attempt to create the
-# file or directory in this directory, it may not be safe
-# anymore... Have to run _is_safe directly after the open.
-
-sub _is_safe {
-
- my $path = shift;
- my $err_ref = shift;
-
- # Stat path
- my @info = stat($path);
- unless (scalar(@info)) {
- $$err_ref = "stat(path) returned no values";
- return 0;
- };
- return 1 if $^O eq 'VMS'; # owner delete control at file level
-
- # Check to see whether owner is neither superuser (or a system uid) nor me
- # Use the real uid from the $< variable
- # UID is in [4]
- if ($info[4] > File::Temp->top_system_uid() && $info[4] != $<) {
-
- Carp::cluck(sprintf "uid=$info[4] topuid=%s \$<=$< path='$path'",
- File::Temp->top_system_uid());
-
- $$err_ref = "Directory owned neither by root nor the current user"
- if ref($err_ref);
- return 0;
- }
-
- # check whether group or other can write file
- # use 066 to detect either reading or writing
- # use 022 to check writability
- # Do it with S_IWOTH and S_IWGRP for portability (maybe)
- # mode is in info[2]
- if (($info[2] & &Fcntl::S_IWGRP) || # Is group writable?
- ($info[2] & &Fcntl::S_IWOTH) ) { # Is world writable?
- # Must be a directory
- unless (-d _) {
- $$err_ref = "Path ($path) is not a directory"
- if ref($err_ref);
- return 0;
- }
- # Must have sticky bit set
- unless (-k _) {
- $$err_ref = "Sticky bit not set on $path when dir is group|world writable"
- if ref($err_ref);
- return 0;
- }
- }
-
- return 1;
-}
-
-# Internal routine to check whether a directory is safe
-# for temp files. Safer than _is_safe since it checks for
-# the possibility of chown giveaway and if that is a possibility
-# checks each directory in the path to see if it is safe (with _is_safe)
-
-# If _PC_CHOWN_RESTRICTED is not set, does the full test of each
-# directory anyway.
-
-# Takes optional second arg as scalar ref to error reason
-
-sub _is_verysafe {
-
- # Need POSIX - but only want to bother if really necessary due to overhead
- require POSIX;
-
- my $path = shift;
- print "_is_verysafe testing $path\n" if $DEBUG;
- return 1 if $^O eq 'VMS'; # owner delete control at file level
-
- my $err_ref = shift;
-
- # Should Get the value of _PC_CHOWN_RESTRICTED if it is defined
- # and If it is not there do the extensive test
- my $chown_restricted;
- $chown_restricted = &POSIX::_PC_CHOWN_RESTRICTED()
- if eval { &POSIX::_PC_CHOWN_RESTRICTED(); 1};
-
- # If chown_resticted is set to some value we should test it
- if (defined $chown_restricted) {
-
- # Return if the current directory is safe
- return _is_safe($path,$err_ref) if POSIX::sysconf( $chown_restricted );
-
- }
-
- # To reach this point either, the _PC_CHOWN_RESTRICTED symbol
- # was not avialable or the symbol was there but chown giveaway
- # is allowed. Either way, we now have to test the entire tree for
- # safety.
-
- # Convert path to an absolute directory if required
- unless (File::Spec->file_name_is_absolute($path)) {
- $path = File::Spec->rel2abs($path);
- }
-
- # Split directory into components - assume no file
- my ($volume, $directories, undef) = File::Spec->splitpath( $path, 1);
-
- # Slightly less efficient than having a function in File::Spec
- # to chop off the end of a directory or even a function that
- # can handle ../ in a directory tree
- # Sometimes splitdir() returns a blank at the end
- # so we will probably check the bottom directory twice in some cases
- my @dirs = File::Spec->splitdir($directories);
-
- # Concatenate one less directory each time around
- foreach my $pos (0.. $#dirs) {
- # Get a directory name
- my $dir = File::Spec->catpath($volume,
- File::Spec->catdir(@dirs[0.. $#dirs - $pos]),
- ''
- );
-
- print "TESTING DIR $dir\n" if $DEBUG;
-
- # Check the directory
- return 0 unless _is_safe($dir,$err_ref);
-
- }
-
- return 1;
-}
-
-
-
-# internal routine to determine whether unlink works on this
-# platform for files that are currently open.
-# Returns true if we can, false otherwise.
-
-# Currently WinNT, OS/2 and VMS can not unlink an opened file
-# On VMS this is because the O_EXCL flag is used to open the
-# temporary file. Currently I do not know enough about the issues
-# on VMS to decide whether O_EXCL is a requirement.
-
-sub _can_unlink_opened_file {
-
- if ($^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'VMS' || $^O eq 'dos' || $^O eq 'MacOS') {
- return 0;
- } else {
- return 1;
- }
-
-}
-
-# internal routine to decide which security levels are allowed
-# see safe_level() for more information on this
-
-# Controls whether the supplied security level is allowed
-
-# $cando = _can_do_level( $level )
-
-sub _can_do_level {
-
- # Get security level
- my $level = shift;
-
- # Always have to be able to do STANDARD
- return 1 if $level == STANDARD;
-
- # Currently, the systems that can do HIGH or MEDIUM are identical
- if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'MacOS') {
- return 0;
- } else {
- return 1;
- }
-
-}
-
-# This routine sets up a deferred unlinking of a specified
-# filename and filehandle. It is used in the following cases:
-# - Called by unlink0 if an opened file can not be unlinked
-# - Called by tempfile() if files are to be removed on shutdown
-# - Called by tempdir() if directories are to be removed on shutdown
-
-# Arguments:
-# _deferred_unlink( $fh, $fname, $isdir );
-#
-# - filehandle (so that it can be expclicitly closed if open
-# - filename (the thing we want to remove)
-# - isdir (flag to indicate that we are being given a directory)
-# [and hence no filehandle]
-
-# Status is not referred to since all the magic is done with an END block
-
-{
- # Will set up two lexical variables to contain all the files to be
- # removed. One array for files, another for directories
- # They will only exist in this block
- # This means we only have to set up a single END block to remove all files
- # @files_to_unlink contains an array ref with the filehandle and filename
- my (@files_to_unlink, @dirs_to_unlink);
-
- # Set up an end block to use these arrays
- END {
- # Files
- foreach my $file (@files_to_unlink) {
- # close the filehandle without checking its state
- # in order to make real sure that this is closed
- # if its already closed then I dont care about the answer
- # probably a better way to do this
- close($file->[0]); # file handle is [0]
-
- if (-f $file->[1]) { # file name is [1]
- unlink $file->[1] or warn "Error removing ".$file->[1];
- }
- }
- # Dirs
- foreach my $dir (@dirs_to_unlink) {
- if (-d $dir) {
- rmtree($dir, $DEBUG, 1);
- }
- }
-
- }
-
- # This is the sub called to register a file for deferred unlinking
- # This could simply store the input parameters and defer everything
- # until the END block. For now we do a bit of checking at this
- # point in order to make sure that (1) we have a file/dir to delete
- # and (2) we have been called with the correct arguments.
- sub _deferred_unlink {
-
- croak 'Usage: _deferred_unlink($fh, $fname, $isdir)'
- unless scalar(@_) == 3;
-
- my ($fh, $fname, $isdir) = @_;
-
- warn "Setting up deferred removal of $fname\n"
- if $DEBUG;
-
- # If we have a directory, check that it is a directory
- if ($isdir) {
-
- if (-d $fname) {
-
- # Directory exists so store it
- # first on VMS turn []foo into [.foo] for rmtree
- $fname = VMS::Filespec::vmspath($fname) if $^O eq 'VMS';
- push (@dirs_to_unlink, $fname);
-
- } else {
- carp "Request to remove directory $fname could not be completed since it does not exist!\n" if $^W;
- }
-
- } else {
-
- if (-f $fname) {
-
- # file exists so store handle and name for later removal
- push(@files_to_unlink, [$fh, $fname]);
-
- } else {
- carp "Request to remove file $fname could not be completed since it is not there!\n" if $^W;
- }
-
- }
-
- }
-
-
-}
-
-=head1 FUNCTIONS
-
-This section describes the recommended interface for generating
-temporary files and directories.
-
-=over 4
-
-=item B<tempfile>
-
-This is the basic function to generate temporary files.
-The behaviour of the file can be changed using various options:
-
- ($fh, $filename) = tempfile();
-
-Create a temporary file in the directory specified for temporary
-files, as specified by the tmpdir() function in L<File::Spec>.
-
- ($fh, $filename) = tempfile($template);
-
-Create a temporary file in the current directory using the supplied
-template. Trailing `X' characters are replaced with random letters to
-generate the filename. At least four `X' characters must be present
-in the template.
-
- ($fh, $filename) = tempfile($template, SUFFIX => $suffix)
-
-Same as previously, except that a suffix is added to the template
-after the `X' translation. Useful for ensuring that a temporary
-filename has a particular extension when needed by other applications.
-But see the WARNING at the end.
-
- ($fh, $filename) = tempfile($template, DIR => $dir);
-
-Translates the template as before except that a directory name
-is specified.
-
- ($fh, $filename) = tempfile($template, UNLINK => 1);
-
-Return the filename and filehandle as before except that the file is
-automatically removed when the program exits. Default is for the file
-to be removed if a file handle is requested and to be kept if the
-filename is requested. In a scalar context (where no filename is
-returned) the file is always deleted either on exit or when it is closed.
-
-If the template is not specified, a template is always
-automatically generated. This temporary file is placed in tmpdir()
-(L<File::Spec>) unless a directory is specified explicitly with the
-DIR option.
-
- $fh = tempfile( $template, DIR => $dir );
-
-If called in scalar context, only the filehandle is returned
-and the file will automatically be deleted when closed (see
-the description of tmpfile() elsewhere in this document).
-This is the preferred mode of operation, as if you only
-have a filehandle, you can never create a race condition
-by fumbling with the filename. On systems that can not unlink
-an open file or can not mark a file as temporary when it is opened
-(for example, Windows NT uses the C<O_TEMPORARY> flag))
-the file is marked for deletion when the program ends (equivalent
-to setting UNLINK to 1). The C<UNLINK> flag is ignored if present.
-
- (undef, $filename) = tempfile($template, OPEN => 0);
-
-This will return the filename based on the template but
-will not open this file. Cannot be used in conjunction with
-UNLINK set to true. Default is to always open the file
-to protect from possible race conditions. A warning is issued
-if warnings are turned on. Consider using the tmpnam()
-and mktemp() functions described elsewhere in this document
-if opening the file is not required.
-
-Options can be combined as required.
-
-=cut
-
-sub tempfile {
-
- # Can not check for argument count since we can have any
- # number of args
-
- # Default options
- my %options = (
- "DIR" => undef, # Directory prefix
- "SUFFIX" => '', # Template suffix
- "UNLINK" => 0, # Do not unlink file on exit
- "OPEN" => 1, # Open file
- );
-
- # Check to see whether we have an odd or even number of arguments
- my $template = (scalar(@_) % 2 == 1 ? shift(@_) : undef);
-
- # Read the options and merge with defaults
- %options = (%options, @_) if @_;
-
- # First decision is whether or not to open the file
- if (! $options{"OPEN"}) {
-
- warn "tempfile(): temporary filename requested but not opened.\nPossibly unsafe, consider using tempfile() with OPEN set to true\n"
- if $^W;
-
- }
-
- if ($options{"DIR"} and $^O eq 'VMS') {
-
- # on VMS turn []foo into [.foo] for concatenation
- $options{"DIR"} = VMS::Filespec::vmspath($options{"DIR"});
- }
-
- # Construct the template
-
- # Have a choice of trying to work around the mkstemp/mktemp/tmpnam etc
- # functions or simply constructing a template and using _gettemp()
- # explicitly. Go for the latter
-
- # First generate a template if not defined and prefix the directory
- # If no template must prefix the temp directory
- if (defined $template) {
- if ($options{"DIR"}) {
-
- $template = File::Spec->catfile($options{"DIR"}, $template);
-
- }
-
- } else {
-
- if ($options{"DIR"}) {
-
- $template = File::Spec->catfile($options{"DIR"}, TEMPXXX);
-
- } else {
-
- $template = File::Spec->catfile(File::Spec->tmpdir, TEMPXXX);
-
- }
-
- }
-
- # Now add a suffix
- $template .= $options{"SUFFIX"};
-
- # Determine whether we should tell _gettemp to unlink the file
- # On unix this is irrelevant and can be worked out after the file is
- # opened (simply by unlinking the open filehandle). On Windows or VMS
- # we have to indicate temporary-ness when we open the file. In general
- # we only want a true temporary file if we are returning just the
- # filehandle - if the user wants the filename they probably do not
- # want the file to disappear as soon as they close it.
- # For this reason, tie unlink_on_close to the return context regardless
- # of OS.
- my $unlink_on_close = ( wantarray ? 0 : 1);
-
- # Create the file
- my ($fh, $path, $errstr);
- croak "Error in tempfile() using $template: $errstr"
- unless (($fh, $path) = _gettemp($template,
- "open" => $options{'OPEN'},
- "mkdir"=> 0 ,
- "unlink_on_close" => $unlink_on_close,
- "suffixlen" => length($options{'SUFFIX'}),
- "ErrStr" => \$errstr,
- ) );
-
- # Set up an exit handler that can do whatever is right for the
- # system. This removes files at exit when requested explicitly or when
- # system is asked to unlink_on_close but is unable to do so because
- # of OS limitations.
- # The latter should be achieved by using a tied filehandle.
- # Do not check return status since this is all done with END blocks.
- _deferred_unlink($fh, $path, 0) if $options{"UNLINK"};
-
- # Return
- if (wantarray()) {
-
- if ($options{'OPEN'}) {
- return ($fh, $path);
- } else {
- return (undef, $path);
- }
-
- } else {
-
- # Unlink the file. It is up to unlink0 to decide what to do with
- # this (whether to unlink now or to defer until later)
- unlink0($fh, $path) or croak "Error unlinking file $path using unlink0";
-
- # Return just the filehandle.
- return $fh;
- }
-
-
-}
-
-=item B<tempdir>
-
-This is the recommended interface for creation of temporary directories.
-The behaviour of the function depends on the arguments:
-
- $tempdir = tempdir();
-
-Create a directory in tmpdir() (see L<File::Spec|File::Spec>).
-
- $tempdir = tempdir( $template );
-
-Create a directory from the supplied template. This template is
-similar to that described for tempfile(). `X' characters at the end
-of the template are replaced with random letters to construct the
-directory name. At least four `X' characters must be in the template.
-
- $tempdir = tempdir ( DIR => $dir );
-
-Specifies the directory to use for the temporary directory.
-The temporary directory name is derived from an internal template.
-
- $tempdir = tempdir ( $template, DIR => $dir );
-
-Prepend the supplied directory name to the template. The template
-should not include parent directory specifications itself. Any parent
-directory specifications are removed from the template before
-prepending the supplied directory.
-
- $tempdir = tempdir ( $template, TMPDIR => 1 );
-
-Using the supplied template, create the temporary directory in
-a standard location for temporary files. Equivalent to doing
-
- $tempdir = tempdir ( $template, DIR => File::Spec->tmpdir);
-
-but shorter. Parent directory specifications are stripped from the
-template itself. The C<TMPDIR> option is ignored if C<DIR> is set
-explicitly. Additionally, C<TMPDIR> is implied if neither a template
-nor a directory are supplied.
-
- $tempdir = tempdir( $template, CLEANUP => 1);
-
-Create a temporary directory using the supplied template, but
-attempt to remove it (and all files inside it) when the program
-exits. Note that an attempt will be made to remove all files from
-the directory even if they were not created by this module (otherwise
-why ask to clean it up?). The directory removal is made with
-the rmtree() function from the L<File::Path|File::Path> module.
-Of course, if the template is not specified, the temporary directory
-will be created in tmpdir() and will also be removed at program exit.
-
-=cut
-
-# '
-
-sub tempdir {
-
- # Can not check for argument count since we can have any
- # number of args
-
- # Default options
- my %options = (
- "CLEANUP" => 0, # Remove directory on exit
- "DIR" => '', # Root directory
- "TMPDIR" => 0, # Use tempdir with template
- );
-
- # Check to see whether we have an odd or even number of arguments
- my $template = (scalar(@_) % 2 == 1 ? shift(@_) : undef );
-
- # Read the options and merge with defaults
- %options = (%options, @_) if @_;
-
- # Modify or generate the template
-
- # Deal with the DIR and TMPDIR options
- if (defined $template) {
-
- # Need to strip directory path if using DIR or TMPDIR
- if ($options{'TMPDIR'} || $options{'DIR'}) {
-
- # Strip parent directory from the filename
- #
- # There is no filename at the end
- $template = VMS::Filespec::vmspath($template) if $^O eq 'VMS';
- my ($volume, $directories, undef) = File::Spec->splitpath( $template, 1);
-
- # Last directory is then our template
- $template = (File::Spec->splitdir($directories))[-1];
-
- # Prepend the supplied directory or temp dir
- if ($options{"DIR"}) {
-
- $template = File::Spec->catdir($options{"DIR"}, $template);
-
- } elsif ($options{TMPDIR}) {
-
- # Prepend tmpdir
- $template = File::Spec->catdir(File::Spec->tmpdir, $template);
-
- }
-
- }
-
- } else {
-
- if ($options{"DIR"}) {
-
- $template = File::Spec->catdir($options{"DIR"}, TEMPXXX);
-
- } else {
-
- $template = File::Spec->catdir(File::Spec->tmpdir, TEMPXXX);
-
- }
-
- }
-
- # Create the directory
- my $tempdir;
- my $suffixlen = 0;
- if ($^O eq 'VMS') { # dir names can end in delimiters
- $template =~ m/([\.\]:>]+)$/;
- $suffixlen = length($1);
- }
- if ( ($^O eq 'MacOS') && (substr($template, -1) eq ':') ) {
- # dir name has a trailing ':'
- ++$suffixlen;
- }
-
- my $errstr;
- croak "Error in tempdir() using $template: $errstr"
- unless ((undef, $tempdir) = _gettemp($template,
- "open" => 0,
- "mkdir"=> 1 ,
- "suffixlen" => $suffixlen,
- "ErrStr" => \$errstr,
- ) );
-
- # Install exit handler; must be dynamic to get lexical
- if ( $options{'CLEANUP'} && -d $tempdir) {
- _deferred_unlink(undef, $tempdir, 1);
- }
-
- # Return the dir name
- return $tempdir;
-
-}
-
-=back
-
-=head1 MKTEMP FUNCTIONS
-
-The following functions are Perl implementations of the
-mktemp() family of temp file generation system calls.
-
-=over 4
-
-=item B<mkstemp>
-
-Given a template, returns a filehandle to the temporary file and the name
-of the file.
-
- ($fh, $name) = mkstemp( $template );
-
-In scalar context, just the filehandle is returned.
-
-The template may be any filename with some number of X's appended
-to it, for example F</tmp/temp.XXXX>. The trailing X's are replaced
-with unique alphanumeric combinations.
-
-=cut
-
-
-
-sub mkstemp {
-
- croak "Usage: mkstemp(template)"
- if scalar(@_) != 1;
-
- my $template = shift;
-
- my ($fh, $path, $errstr);
- croak "Error in mkstemp using $template: $errstr"
- unless (($fh, $path) = _gettemp($template,
- "open" => 1,
- "mkdir"=> 0 ,
- "suffixlen" => 0,
- "ErrStr" => \$errstr,
- ) );
-
- if (wantarray()) {
- return ($fh, $path);
- } else {
- return $fh;
- }
-
-}
-
-
-=item B<mkstemps>
-
-Similar to mkstemp(), except that an extra argument can be supplied
-with a suffix to be appended to the template.
-
- ($fh, $name) = mkstemps( $template, $suffix );
-
-For example a template of C<testXXXXXX> and suffix of C<.dat>
-would generate a file similar to F<testhGji_w.dat>.
-
-Returns just the filehandle alone when called in scalar context.
-
-=cut
-
-sub mkstemps {
-
- croak "Usage: mkstemps(template, suffix)"
- if scalar(@_) != 2;
-
-
- my $template = shift;
- my $suffix = shift;
-
- $template .= $suffix;
-
- my ($fh, $path, $errstr);
- croak "Error in mkstemps using $template: $errstr"
- unless (($fh, $path) = _gettemp($template,
- "open" => 1,
- "mkdir"=> 0 ,
- "suffixlen" => length($suffix),
- "ErrStr" => \$errstr,
- ) );
-
- if (wantarray()) {
- return ($fh, $path);
- } else {
- return $fh;
- }
-
-}
-
-=item B<mkdtemp>
-
-Create a directory from a template. The template must end in
-X's that are replaced by the routine.
-
- $tmpdir_name = mkdtemp($template);
-
-Returns the name of the temporary directory created.
-Returns undef on failure.
-
-Directory must be removed by the caller.
-
-=cut
-
-#' # for emacs
-
-sub mkdtemp {
-
- croak "Usage: mkdtemp(template)"
- if scalar(@_) != 1;
-
- my $template = shift;
- my $suffixlen = 0;
- if ($^O eq 'VMS') { # dir names can end in delimiters
- $template =~ m/([\.\]:>]+)$/;
- $suffixlen = length($1);
- }
- if ( ($^O eq 'MacOS') && (substr($template, -1) eq ':') ) {
- # dir name has a trailing ':'
- ++$suffixlen;
- }
- my ($junk, $tmpdir, $errstr);
- croak "Error creating temp directory from template $template\: $errstr"
- unless (($junk, $tmpdir) = _gettemp($template,
- "open" => 0,
- "mkdir"=> 1 ,
- "suffixlen" => $suffixlen,
- "ErrStr" => \$errstr,
- ) );
-
- return $tmpdir;
-
-}
-
-=item B<mktemp>
-
-Returns a valid temporary filename but does not guarantee
-that the file will not be opened by someone else.
-
- $unopened_file = mktemp($template);
-
-Template is the same as that required by mkstemp().
-
-=cut
-
-sub mktemp {
-
- croak "Usage: mktemp(template)"
- if scalar(@_) != 1;
-
- my $template = shift;
-
- my ($tmpname, $junk, $errstr);
- croak "Error getting name to temp file from template $template: $errstr"
- unless (($junk, $tmpname) = _gettemp($template,
- "open" => 0,
- "mkdir"=> 0 ,
- "suffixlen" => 0,
- "ErrStr" => \$errstr,
- ) );
-
- return $tmpname;
-}
-
-=back
-
-=head1 POSIX FUNCTIONS
-
-This section describes the re-implementation of the tmpnam()
-and tmpfile() functions described in L<POSIX>
-using the mkstemp() from this module.
-
-Unlike the L<POSIX|POSIX> implementations, the directory used
-for the temporary file is not specified in a system include
-file (C<P_tmpdir>) but simply depends on the choice of tmpdir()
-returned by L<File::Spec|File::Spec>. On some implementations this
-location can be set using the C<TMPDIR> environment variable, which
-may not be secure.
-If this is a problem, simply use mkstemp() and specify a template.
-
-=over 4
-
-=item B<tmpnam>
-
-When called in scalar context, returns the full name (including path)
-of a temporary file (uses mktemp()). The only check is that the file does
-not already exist, but there is no guarantee that that condition will
-continue to apply.
-
- $file = tmpnam();
-
-When called in list context, a filehandle to the open file and
-a filename are returned. This is achieved by calling mkstemp()
-after constructing a suitable template.
-
- ($fh, $file) = tmpnam();
-
-If possible, this form should be used to prevent possible
-race conditions.
-
-See L<File::Spec/tmpdir> for information on the choice of temporary
-directory for a particular operating system.
-
-=cut
-
-sub tmpnam {
-
- # Retrieve the temporary directory name
- my $tmpdir = File::Spec->tmpdir;
-
- croak "Error temporary directory is not writable"
- if $tmpdir eq '';
-
- # Use a ten character template and append to tmpdir
- my $template = File::Spec->catfile($tmpdir, TEMPXXX);
-
- if (wantarray() ) {
- return mkstemp($template);
- } else {
- return mktemp($template);
- }
-
-}
-
-=item B<tmpfile>
-
-In scalar context, returns the filehandle of a temporary file.
-
- $fh = tmpfile();
-
-The file is removed when the filehandle is closed or when the program
-exits. No access to the filename is provided.
-
-If the temporary file can not be created undef is returned.
-Currently this command will probably not work when the temporary
-directory is on an NFS file system.
-
-=cut
-
-sub tmpfile {
-
- # Simply call tmpnam() in a list context
- my ($fh, $file) = tmpnam();
-
- # Make sure file is removed when filehandle is closed
- # This will fail on NFS
- unlink0($fh, $file)
- or return undef;
-
- return $fh;
-
-}
-
-=back
-
-=head1 ADDITIONAL FUNCTIONS
-
-These functions are provided for backwards compatibility
-with common tempfile generation C library functions.
-
-They are not exported and must be addressed using the full package
-name.
-
-=over 4
-
-=item B<tempnam>
-
-Return the name of a temporary file in the specified directory
-using a prefix. The file is guaranteed not to exist at the time
-the function was called, but such guarantees are good for one
-clock tick only. Always use the proper form of C<sysopen>
-with C<O_CREAT | O_EXCL> if you must open such a filename.
-
- $filename = File::Temp::tempnam( $dir, $prefix );
-
-Equivalent to running mktemp() with $dir/$prefixXXXXXXXX
-(using unix file convention as an example)
-
-Because this function uses mktemp(), it can suffer from race conditions.
-
-=cut
-
-sub tempnam {
-
- croak 'Usage tempnam($dir, $prefix)' unless scalar(@_) == 2;
-
- my ($dir, $prefix) = @_;
-
- # Add a string to the prefix
- $prefix .= 'XXXXXXXX';
-
- # Concatenate the directory to the file
- my $template = File::Spec->catfile($dir, $prefix);
-
- return mktemp($template);
-
-}
-
-=back
-
-=head1 UTILITY FUNCTIONS
-
-Useful functions for dealing with the filehandle and filename.
-
-=over 4
-
-=item B<unlink0>
-
-Given an open filehandle and the associated filename, make a safe
-unlink. This is achieved by first checking that the filename and
-filehandle initially point to the same file and that the number of
-links to the file is 1 (all fields returned by stat() are compared).
-Then the filename is unlinked and the filehandle checked once again to
-verify that the number of links on that file is now 0. This is the
-closest you can come to making sure that the filename unlinked was the
-same as the file whose descriptor you hold.
-
- unlink0($fh, $path) or die "Error unlinking file $path safely";
-
-Returns false on error. The filehandle is not closed since on some
-occasions this is not required.
-
-On some platforms, for example Windows NT, it is not possible to
-unlink an open file (the file must be closed first). On those
-platforms, the actual unlinking is deferred until the program ends and
-good status is returned. A check is still performed to make sure that
-the filehandle and filename are pointing to the same thing (but not at
-the time the end block is executed since the deferred removal may not
-have access to the filehandle).
-
-Additionally, on Windows NT not all the fields returned by stat() can
-be compared. For example, the C<dev> and C<rdev> fields seem to be
-different. Also, it seems that the size of the file returned by stat()
-does not always agree, with C<stat(FH)> being more accurate than
-C<stat(filename)>, presumably because of caching issues even when
-using autoflush (this is usually overcome by waiting a while after
-writing to the tempfile before attempting to C<unlink0> it).
-
-Finally, on NFS file systems the link count of the file handle does
-not always go to zero immediately after unlinking. Currently, this
-command is expected to fail on NFS disks.
-
-=cut
-
-sub unlink0 {
-
- croak 'Usage: unlink0(filehandle, filename)'
- unless scalar(@_) == 2;
-
- # Read args
- my ($fh, $path) = @_;
-
- warn "Unlinking $path using unlink0\n"
- if $DEBUG;
-
- # Stat the filehandle
- my @fh = stat $fh;
-
- if ($fh[3] > 1 && $^W) {
- carp "unlink0: fstat found too many links; SB=@fh" if $^W;
- }
-
- # Stat the path
- my @path = stat $path;
-
- unless (@path) {
- carp "unlink0: $path is gone already" if $^W;
- return;
- }
-
- # this is no longer a file, but may be a directory, or worse
- unless (-f _) {
- confess "panic: $path is no longer a file: SB=@fh";
- }
-
- # Do comparison of each member of the array
- # On WinNT dev and rdev seem to be different
- # depending on whether it is a file or a handle.
- # Cannot simply compare all members of the stat return
- # Select the ones we can use
- my @okstat = (0..$#fh); # Use all by default
- if ($^O eq 'MSWin32') {
- @okstat = (1,2,3,4,5,7,8,9,10);
- } elsif ($^O eq 'os2') {
- @okstat = (0, 2..$#fh);
- } elsif ($^O eq 'VMS') { # device and file ID are sufficient
- @okstat = (0, 1);
- } elsif ($^O eq 'dos') {
- @okstat = (0,2..7,11..$#fh);
- }
-
- # Now compare each entry explicitly by number
- for (@okstat) {
- print "Comparing: $_ : $fh[$_] and $path[$_]\n" if $DEBUG;
- # Use eq rather than == since rdev, blksize, and blocks (6, 11,
- # and 12) will be '' on platforms that do not support them. This
- # is fine since we are only comparing integers.
- unless ($fh[$_] eq $path[$_]) {
- warn "Did not match $_ element of stat\n" if $DEBUG;
- return 0;
- }
- }
-
- # attempt remove the file (does not work on some platforms)
- if (_can_unlink_opened_file()) {
- # XXX: do *not* call this on a directory; possible race
- # resulting in recursive removal
- croak "unlink0: $path has become a directory!" if -d $path;
- unlink($path) or return 0;
-
- # Stat the filehandle
- @fh = stat $fh;
-
- print "Link count = $fh[3] \n" if $DEBUG;
-
- # Make sure that the link count is zero
- # - Cygwin provides deferred unlinking, however,
- # on Win9x the link count remains 1
- # On NFS the link count may still be 1 but we cant know that
- # we are on NFS
- return ( $fh[3] == 0 or $^O eq 'cygwin' ? 1 : 0);
-
- } else {
- _deferred_unlink($fh, $path, 0);
- return 1;
- }
-
-}
-
-=back
-
-=head1 PACKAGE VARIABLES
-
-These functions control the global state of the package.
-
-=over 4
-
-=item B<safe_level>
-
-Controls the lengths to which the module will go to check the safety of the
-temporary file or directory before proceeding.
-Options are:
-
-=over 8
-
-=item STANDARD
-
-Do the basic security measures to ensure the directory exists and
-is writable, that the umask() is fixed before opening of the file,
-that temporary files are opened only if they do not already exist, and
-that possible race conditions are avoided. Finally the L<unlink0|"unlink0">
-function is used to remove files safely.
-
-=item MEDIUM
-
-In addition to the STANDARD security, the output directory is checked
-to make sure that it is owned either by root or the user running the
-program. If the directory is writable by group or by other, it is then
-checked to make sure that the sticky bit is set.
-
-Will not work on platforms that do not support the C<-k> test
-for sticky bit.
-
-=item HIGH
-
-In addition to the MEDIUM security checks, also check for the
-possibility of ``chown() giveaway'' using the L<POSIX|POSIX>
-sysconf() function. If this is a possibility, each directory in the
-path is checked in turn for safeness, recursively walking back to the
-root directory.
-
-For platforms that do not support the L<POSIX|POSIX>
-C<_PC_CHOWN_RESTRICTED> symbol (for example, Windows NT) it is
-assumed that ``chown() giveaway'' is possible and the recursive test
-is performed.
-
-=back
-
-The level can be changed as follows:
-
- File::Temp->safe_level( File::Temp::HIGH );
-
-The level constants are not exported by the module.
-
-Currently, you must be running at least perl v5.6.0 in order to
-run with MEDIUM or HIGH security. This is simply because the
-safety tests use functions from L<Fcntl|Fcntl> that are not
-available in older versions of perl. The problem is that the version
-number for Fcntl is the same in perl 5.6.0 and in 5.005_03 even though
-they are different versions.
-
-On systems that do not support the HIGH or MEDIUM safety levels
-(for example Win NT or OS/2) any attempt to change the level will
-be ignored. The decision to ignore rather than raise an exception
-allows portable programs to be written with high security in mind
-for the systems that can support this without those programs failing
-on systems where the extra tests are irrelevant.
-
-If you really need to see whether the change has been accepted
-simply examine the return value of C<safe_level>.
-
- $newlevel = File::Temp->safe_level( File::Temp::HIGH );
- die "Could not change to high security"
- if $newlevel != File::Temp::HIGH;
-
-=cut
-
-{
- # protect from using the variable itself
- my $LEVEL = STANDARD;
- sub safe_level {
- my $self = shift;
- if (@_) {
- my $level = shift;
- if (($level != STANDARD) && ($level != MEDIUM) && ($level != HIGH)) {
- carp "safe_level: Specified level ($level) not STANDARD, MEDIUM or HIGH - ignoring\n" if $^W;
- } else {
- # Dont allow this on perl 5.005 or earlier
- if ($] < 5.006 && $level != STANDARD) {
- # Cant do MEDIUM or HIGH checks
- croak "Currently requires perl 5.006 or newer to do the safe checks";
- }
- # Check that we are allowed to change level
- # Silently ignore if we can not.
- $LEVEL = $level if _can_do_level($level);
- }
- }
- return $LEVEL;
- }
-}
-
-=item TopSystemUID
-
-This is the highest UID on the current system that refers to a root
-UID. This is used to make sure that the temporary directory is
-owned by a system UID (C<root>, C<bin>, C<sys> etc) rather than
-simply by root.
-
-This is required since on many unix systems C</tmp> is not owned
-by root.
-
-Default is to assume that any UID less than or equal to 10 is a root
-UID.
-
- File::Temp->top_system_uid(10);
- my $topid = File::Temp->top_system_uid;
-
-This value can be adjusted to reduce security checking if required.
-The value is only relevant when C<safe_level> is set to MEDIUM or higher.
-
-=back
-
-=cut
-
-{
- my $TopSystemUID = 10;
- sub top_system_uid {
- my $self = shift;
- if (@_) {
- my $newuid = shift;
- croak "top_system_uid: UIDs should be numeric"
- unless $newuid =~ /^\d+$/s;
- $TopSystemUID = $newuid;
- }
- return $TopSystemUID;
- }
-}
-
-=head1 WARNING
-
-For maximum security, endeavour always to avoid ever looking at,
-touching, or even imputing the existence of the filename. You do not
-know that that filename is connected to the same file as the handle
-you have, and attempts to check this can only trigger more race
-conditions. It's far more secure to use the filehandle alone and
-dispense with the filename altogether.
-
-If you need to pass the handle to something that expects a filename
-then, on a unix system, use C<"/dev/fd/" . fileno($fh)> for arbitrary
-programs, or more generally C<< "+<=&" . fileno($fh) >> for Perl
-programs. You will have to clear the close-on-exec bit on that file
-descriptor before passing it to another process.
-
- use Fcntl qw/F_SETFD F_GETFD/;
- fcntl($tmpfh, F_SETFD, 0)
- or die "Can't clear close-on-exec flag on temp fh: $!\n";
-
-=head2 Temporary files and NFS
-
-Some problems are associated with using temporary files that reside
-on NFS file systems and it is recommended that a local filesystem
-is used whenever possible. Some of the security tests will most probably
-fail when the temp file is not local. Additionally, be aware that
-the performance of I/O operations over NFS will not be as good as for
-a local disk.
-
-=head1 HISTORY
-
-Originally began life in May 1999 as an XS interface to the system
-mkstemp() function. In March 2000, the OpenBSD mkstemp() code was
-translated to Perl for total control of the code's
-security checking, to ensure the presence of the function regardless of
-operating system and to help with portability.
-
-=head1 SEE ALSO
-
-L<POSIX/tmpnam>, L<POSIX/tmpfile>, L<File::Spec>, L<File::Path>
-
-See L<IO::File> and L<File::MkTemp> for different implementations of
-temporary file handling.
-
-=head1 AUTHOR
-
-Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt>
-
-Copyright (C) 1999-2001 Tim Jenness and the UK Particle Physics and
-Astronomy Research Council. All Rights Reserved. This program is free
-software; you can redistribute it and/or modify it under the same
-terms as Perl itself.
-
-Original Perl implementation loosely based on the OpenBSD C code for
-mkstemp(). Thanks to Tom Christiansen for suggesting that this module
-should be written and providing ideas for code improvements and
-security enhancements.
-
-=cut
-
-
-1;
diff --git a/Master/xemtex/perl/lib/FindBin.pm b/Master/xemtex/perl/lib/FindBin.pm
deleted file mode 100644
index 8be9cb6b5af..00000000000
--- a/Master/xemtex/perl/lib/FindBin.pm
+++ /dev/null
@@ -1,183 +0,0 @@
-# FindBin.pm
-#
-# Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or modify it
-# under the same terms as Perl itself.
-
-=head1 NAME
-
-FindBin - Locate directory of original perl script
-
-=head1 SYNOPSIS
-
- use FindBin;
- use lib "$FindBin::Bin/../lib";
-
- or
-
- use FindBin qw($Bin);
- use lib "$Bin/../lib";
-
-=head1 DESCRIPTION
-
-Locates the full path to the script bin directory to allow the use
-of paths relative to the bin directory.
-
-This allows a user to setup a directory tree for some software with
-directories E<lt>rootE<gt>/bin and E<lt>rootE<gt>/lib and then the above example will allow
-the use of modules in the lib directory without knowing where the software
-tree is installed.
-
-If perl is invoked using the B<-e> option or the perl script is read from
-C<STDIN> then FindBin sets both C<$Bin> and C<$RealBin> to the current
-directory.
-
-=head1 EXPORTABLE VARIABLES
-
- $Bin - path to bin directory from where script was invoked
- $Script - basename of script from which perl was invoked
- $RealBin - $Bin with all links resolved
- $RealScript - $Script with all links resolved
-
-=head1 KNOWN ISSUES
-
-If there are two modules using C<FindBin> from different directories
-under the same interpreter, this won't work. Since C<FindBin> uses
-C<BEGIN> block, it'll be executed only once, and only the first caller
-will get it right. This is a problem under mod_perl and other persistent
-Perl environments, where you shouldn't use this module. Which also means
-that you should avoid using C<FindBin> in modules that you plan to put
-on CPAN. The only way to make sure that C<FindBin> will work is to force
-the C<BEGIN> block to be executed again:
-
- delete $INC{'FindBin.pm'};
- require FindBin;
-
-=head1 KNOWN BUGS
-
-If perl is invoked as
-
- perl filename
-
-and I<filename> does not have executable rights and a program called I<filename>
-exists in the users C<$ENV{PATH}> which satisfies both B<-x> and B<-T> then FindBin
-assumes that it was invoked via the C<$ENV{PATH}>.
-
-Workaround is to invoke perl as
-
- perl ./filename
-
-=head1 AUTHORS
-
-FindBin is supported as part of the core perl distribution. Please send bug
-reports to E<lt>F<perlbug@perl.org>E<gt> using the perlbug program included with perl.
-
-Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
-Nick Ing-Simmons E<lt>F<nik@tiuk.ti.com>E<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-package FindBin;
-use Carp;
-require 5.000;
-require Exporter;
-use Cwd qw(getcwd abs_path);
-use Config;
-use File::Basename;
-use File::Spec;
-
-@EXPORT_OK = qw($Bin $Script $RealBin $RealScript $Dir $RealDir);
-%EXPORT_TAGS = (ALL => [qw($Bin $Script $RealBin $RealScript $Dir $RealDir)]);
-@ISA = qw(Exporter);
-
-$VERSION = "1.43";
-
-BEGIN
-{
- *Dir = \$Bin;
- *RealDir = \$RealBin;
-
- if($0 eq '-e' || $0 eq '-')
- {
- # perl invoked with -e or script is on C<STDIN>
-
- $Script = $RealScript = $0;
- $Bin = $RealBin = getcwd();
- }
- else
- {
- my $script = $0;
-
- if ($^O eq 'VMS')
- {
- ($Bin,$Script) = VMS::Filespec::rmsexpand($0) =~ /(.*\])(.*)/s;
- ($RealBin,$RealScript) = ($Bin,$Script);
- }
- else
- {
- my $dosish = ($^O eq 'MSWin32' or $^O eq 'os2');
- unless(($script =~ m#/# || ($dosish && $script =~ m#\\#))
- && -f $script)
- {
- my $dir;
- foreach $dir (File::Spec->path)
- {
- my $scr = File::Spec->catfile($dir, $script);
- if(-r $scr && (!$dosish || -x _))
- {
- $script = $scr;
-
- if (-f $0)
- {
- # $script has been found via PATH but perl could have
- # been invoked as 'perl file'. Do a dumb check to see
- # if $script is a perl program, if not then $script = $0
- #
- # well we actually only check that it is an ASCII file
- # we know its executable so it is probably a script
- # of some sort.
-
- $script = $0 unless(-T $script);
- }
- last;
- }
- }
- }
-
- croak("Cannot find current script '$0'") unless(-f $script);
-
- # Ensure $script contains the complete path incase we C<chdir>
-
- $script = File::Spec->catfile(getcwd(), $script)
- unless File::Spec->file_name_is_absolute($script);
-
- ($Script,$Bin) = fileparse($script);
-
- # Resolve $script if it is a link
- while(1)
- {
- my $linktext = readlink($script);
-
- ($RealScript,$RealBin) = fileparse($script);
- last unless defined $linktext;
-
- $script = (File::Spec->file_name_is_absolute($linktext))
- ? $linktext
- : File::Spec->catfile($RealBin, $linktext);
- }
-
- # Get absolute paths to directories
- $Bin = abs_path($Bin) if($Bin);
- $RealBin = abs_path($RealBin) if($RealBin);
- }
- }
-}
-
-1; # Keep require happy
-
diff --git a/Master/xemtex/perl/lib/Getopt/Long.pm b/Master/xemtex/perl/lib/Getopt/Long.pm
deleted file mode 100644
index 7e1663d557a..00000000000
--- a/Master/xemtex/perl/lib/Getopt/Long.pm
+++ /dev/null
@@ -1,2048 +0,0 @@
-# GetOpt::Long.pm -- Universal options parsing
-
-package Getopt::Long;
-
-# RCS Status : $Id: GetoptLong.pm,v 2.58 2002-06-20 09:32:09+02 jv Exp $
-# Author : Johan Vromans
-# Created On : Tue Sep 11 15:00:12 1990
-# Last Modified By: Johan Vromans
-# Last Modified On: Thu Jun 20 07:48:05 2002
-# Update Count : 1083
-# Status : Released
-
-################ Copyright ################
-
-# This program is Copyright 1990,2002 by Johan Vromans.
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the Perl Artistic License or the
-# GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any
-# later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# If you do not have a copy of the GNU General Public License write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
-# MA 02139, USA.
-
-################ Module Preamble ################
-
-use 5.004;
-
-use strict;
-
-use vars qw($VERSION);
-$VERSION = 2.32;
-# For testing versions only.
-use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.32";
-
-use Exporter;
-
-use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-@ISA = qw(Exporter);
-%EXPORT_TAGS = qw();
-BEGIN {
- # Init immediately so their contents can be used in the 'use vars' below.
- @EXPORT = qw(&GetOptions $REQUIRE_ORDER $PERMUTE $RETURN_IN_ORDER);
- @EXPORT_OK = qw();
-}
-
-# User visible variables.
-use vars @EXPORT, @EXPORT_OK;
-use vars qw($error $debug $major_version $minor_version);
-# Deprecated visible variables.
-use vars qw($autoabbrev $getopt_compat $ignorecase $bundling $order
- $passthrough);
-# Official invisible variables.
-use vars qw($genprefix $caller $gnu_compat);
-
-# Public subroutines.
-sub Configure (@);
-sub config (@); # deprecated name
-sub GetOptions;
-
-# Private subroutines.
-sub ConfigDefaults ();
-sub ParseOptionSpec ($$);
-sub OptCtl ($);
-sub FindOption ($$$$);
-
-################ Local Variables ################
-
-################ Resident subroutines ################
-
-sub ConfigDefaults () {
- # Handle POSIX compliancy.
- if ( defined $ENV{"POSIXLY_CORRECT"} ) {
- $genprefix = "(--|-)";
- $autoabbrev = 0; # no automatic abbrev of options
- $bundling = 0; # no bundling of single letter switches
- $getopt_compat = 0; # disallow '+' to start options
- $order = $REQUIRE_ORDER;
- }
- else {
- $genprefix = "(--|-|\\+)";
- $autoabbrev = 1; # automatic abbrev of options
- $bundling = 0; # bundling off by default
- $getopt_compat = 1; # allow '+' to start options
- $order = $PERMUTE;
- }
- # Other configurable settings.
- $debug = 0; # for debugging
- $error = 0; # error tally
- $ignorecase = 1; # ignore case when matching options
- $passthrough = 0; # leave unrecognized options alone
- $gnu_compat = 0; # require --opt=val if value is optional
-}
-
-# Override import.
-sub import {
- my $pkg = shift; # package
- my @syms = (); # symbols to import
- my @config = (); # configuration
- my $dest = \@syms; # symbols first
- for ( @_ ) {
- if ( $_ eq ':config' ) {
- $dest = \@config; # config next
- next;
- }
- push (@$dest, $_); # push
- }
- # Hide one level and call super.
- local $Exporter::ExportLevel = 1;
- $pkg->SUPER::import(@syms);
- # And configure.
- Configure (@config) if @config;
-}
-
-################ Initialization ################
-
-# Values for $order. See GNU getopt.c for details.
-($REQUIRE_ORDER, $PERMUTE, $RETURN_IN_ORDER) = (0..2);
-# Version major/minor numbers.
-($major_version, $minor_version) = $VERSION =~ /^(\d+)\.(\d+)/;
-
-ConfigDefaults();
-
-################ OO Interface ################
-
-package Getopt::Long::Parser;
-
-# Store a copy of the default configuration. Since ConfigDefaults has
-# just been called, what we get from Configure is the default.
-my $default_config = do {
- Getopt::Long::Configure ()
-};
-
-sub new {
- my $that = shift;
- my $class = ref($that) || $that;
- my %atts = @_;
-
- # Register the callers package.
- my $self = { caller_pkg => (caller)[0] };
-
- bless ($self, $class);
-
- # Process config attributes.
- if ( defined $atts{config} ) {
- my $save = Getopt::Long::Configure ($default_config, @{$atts{config}});
- $self->{settings} = Getopt::Long::Configure ($save);
- delete ($atts{config});
- }
- # Else use default config.
- else {
- $self->{settings} = $default_config;
- }
-
- if ( %atts ) { # Oops
- die(__PACKAGE__.": unhandled attributes: ".
- join(" ", sort(keys(%atts)))."\n");
- }
-
- $self;
-}
-
-sub configure {
- my ($self) = shift;
-
- # Restore settings, merge new settings in.
- my $save = Getopt::Long::Configure ($self->{settings}, @_);
-
- # Restore orig config and save the new config.
- $self->{settings} = Getopt::Long::Configure ($save);
-}
-
-sub getoptions {
- my ($self) = shift;
-
- # Restore config settings.
- my $save = Getopt::Long::Configure ($self->{settings});
-
- # Call main routine.
- my $ret = 0;
- $Getopt::Long::caller = $self->{caller_pkg};
-
- eval {
- # Locally set exception handler to default, otherwise it will
- # be called implicitly here, and again explicitly when we try
- # to deliver the messages.
- local ($SIG{__DIE__}) = '__DEFAULT__';
- $ret = Getopt::Long::GetOptions (@_);
- };
-
- # Restore saved settings.
- Getopt::Long::Configure ($save);
-
- # Handle errors and return value.
- die ($@) if $@;
- return $ret;
-}
-
-package Getopt::Long;
-
-# Indices in option control info.
-# Note that ParseOptions uses the fields directly. Search for 'hard-wired'.
-use constant CTL_TYPE => 0;
-#use constant CTL_TYPE_FLAG => '';
-#use constant CTL_TYPE_NEG => '!';
-#use constant CTL_TYPE_INCR => '+';
-#use constant CTL_TYPE_INT => 'i';
-#use constant CTL_TYPE_INTINC => 'I';
-#use constant CTL_TYPE_XINT => 'o';
-#use constant CTL_TYPE_FLOAT => 'f';
-#use constant CTL_TYPE_STRING => 's';
-
-use constant CTL_CNAME => 1;
-
-use constant CTL_MAND => 2;
-
-use constant CTL_DEST => 3;
- use constant CTL_DEST_SCALAR => 0;
- use constant CTL_DEST_ARRAY => 1;
- use constant CTL_DEST_HASH => 2;
- use constant CTL_DEST_CODE => 3;
-
-use constant CTL_DEFAULT => 4;
-
-# FFU.
-#use constant CTL_RANGE => ;
-#use constant CTL_REPEAT => ;
-
-sub GetOptions {
-
- my @optionlist = @_; # local copy of the option descriptions
- my $argend = '--'; # option list terminator
- my %opctl = (); # table of option specs
- my $pkg = $caller || (caller)[0]; # current context
- # Needed if linkage is omitted.
- my @ret = (); # accum for non-options
- my %linkage; # linkage
- my $userlinkage; # user supplied HASH
- my $opt; # current option
- my $prefix = $genprefix; # current prefix
-
- $error = '';
-
- print STDERR ("GetOpt::Long $Getopt::Long::VERSION (",
- '$Revision: 2.58 $', ") ",
- "called from package \"$pkg\".",
- "\n ",
- "ARGV: (@ARGV)",
- "\n ",
- "autoabbrev=$autoabbrev,".
- "bundling=$bundling,",
- "getopt_compat=$getopt_compat,",
- "gnu_compat=$gnu_compat,",
- "order=$order,",
- "\n ",
- "ignorecase=$ignorecase,",
- "passthrough=$passthrough,",
- "genprefix=\"$genprefix\".",
- "\n")
- if $debug;
-
- # Check for ref HASH as first argument.
- # First argument may be an object. It's OK to use this as long
- # as it is really a hash underneath.
- $userlinkage = undef;
- if ( @optionlist && ref($optionlist[0]) and
- "$optionlist[0]" =~ /^(?:.*\=)?HASH\([^\(]*\)$/ ) {
- $userlinkage = shift (@optionlist);
- print STDERR ("=> user linkage: $userlinkage\n") if $debug;
- }
-
- # See if the first element of the optionlist contains option
- # starter characters.
- # Be careful not to interpret '<>' as option starters.
- if ( @optionlist && $optionlist[0] =~ /^\W+$/
- && !($optionlist[0] eq '<>'
- && @optionlist > 0
- && ref($optionlist[1])) ) {
- $prefix = shift (@optionlist);
- # Turn into regexp. Needs to be parenthesized!
- $prefix =~ s/(\W)/\\$1/g;
- $prefix = "([" . $prefix . "])";
- print STDERR ("=> prefix=\"$prefix\"\n") if $debug;
- }
-
- # Verify correctness of optionlist.
- %opctl = ();
- while ( @optionlist ) {
- my $opt = shift (@optionlist);
-
- # Strip leading prefix so people can specify "--foo=i" if they like.
- $opt = $+ if $opt =~ /^$prefix+(.*)$/s;
-
- if ( $opt eq '<>' ) {
- if ( (defined $userlinkage)
- && !(@optionlist > 0 && ref($optionlist[0]))
- && (exists $userlinkage->{$opt})
- && ref($userlinkage->{$opt}) ) {
- unshift (@optionlist, $userlinkage->{$opt});
- }
- unless ( @optionlist > 0
- && ref($optionlist[0]) && ref($optionlist[0]) eq 'CODE' ) {
- $error .= "Option spec <> requires a reference to a subroutine\n";
- # Kill the linkage (to avoid another error).
- shift (@optionlist)
- if @optionlist && ref($optionlist[0]);
- next;
- }
- $linkage{'<>'} = shift (@optionlist);
- next;
- }
-
- # Parse option spec.
- my ($name, $orig) = ParseOptionSpec ($opt, \%opctl);
- unless ( defined $name ) {
- # Failed. $orig contains the error message. Sorry for the abuse.
- $error .= $orig;
- # Kill the linkage (to avoid another error).
- shift (@optionlist)
- if @optionlist && ref($optionlist[0]);
- next;
- }
-
- # If no linkage is supplied in the @optionlist, copy it from
- # the userlinkage if available.
- if ( defined $userlinkage ) {
- unless ( @optionlist > 0 && ref($optionlist[0]) ) {
- if ( exists $userlinkage->{$orig} &&
- ref($userlinkage->{$orig}) ) {
- print STDERR ("=> found userlinkage for \"$orig\": ",
- "$userlinkage->{$orig}\n")
- if $debug;
- unshift (@optionlist, $userlinkage->{$orig});
- }
- else {
- # Do nothing. Being undefined will be handled later.
- next;
- }
- }
- }
-
- # Copy the linkage. If omitted, link to global variable.
- if ( @optionlist > 0 && ref($optionlist[0]) ) {
- print STDERR ("=> link \"$orig\" to $optionlist[0]\n")
- if $debug;
- my $rl = ref($linkage{$orig} = shift (@optionlist));
-
- if ( $rl eq "ARRAY" ) {
- $opctl{$name}[CTL_DEST] = CTL_DEST_ARRAY;
- }
- elsif ( $rl eq "HASH" ) {
- $opctl{$name}[CTL_DEST] = CTL_DEST_HASH;
- }
- elsif ( $rl eq "SCALAR" || $rl eq "CODE" ) {
- # Ok.
- }
- else {
- $error .= "Invalid option linkage for \"$opt\"\n";
- }
- }
- else {
- # Link to global $opt_XXX variable.
- # Make sure a valid perl identifier results.
- my $ov = $orig;
- $ov =~ s/\W/_/g;
- if ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY ) {
- print STDERR ("=> link \"$orig\" to \@$pkg","::opt_$ov\n")
- if $debug;
- eval ("\$linkage{\$orig} = \\\@".$pkg."::opt_$ov;");
- }
- elsif ( $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) {
- print STDERR ("=> link \"$orig\" to \%$pkg","::opt_$ov\n")
- if $debug;
- eval ("\$linkage{\$orig} = \\\%".$pkg."::opt_$ov;");
- }
- else {
- print STDERR ("=> link \"$orig\" to \$$pkg","::opt_$ov\n")
- if $debug;
- eval ("\$linkage{\$orig} = \\\$".$pkg."::opt_$ov;");
- }
- }
- }
-
- # Bail out if errors found.
- die ($error) if $error;
- $error = 0;
-
- # Show the options tables if debugging.
- if ( $debug ) {
- my ($arrow, $k, $v);
- $arrow = "=> ";
- while ( ($k,$v) = each(%opctl) ) {
- print STDERR ($arrow, "\$opctl{$k} = $v ", OptCtl($v), "\n");
- $arrow = " ";
- }
- }
-
- # Process argument list
- my $goon = 1;
- while ( $goon && @ARGV > 0 ) {
-
- # Get next argument.
- $opt = shift (@ARGV);
- print STDERR ("=> arg \"", $opt, "\"\n") if $debug;
-
- # Double dash is option list terminator.
- last if $opt eq $argend;
-
- # Look it up.
- my $tryopt = $opt;
- my $found; # success status
- my $key; # key (if hash type)
- my $arg; # option argument
- my $ctl; # the opctl entry
-
- ($found, $opt, $ctl, $arg, $key) =
- FindOption ($prefix, $argend, $opt, \%opctl);
-
- if ( $found ) {
-
- # FindOption undefines $opt in case of errors.
- next unless defined $opt;
-
- if ( defined $arg ) {
-
- # Get the canonical name.
- print STDERR ("=> cname for \"$opt\" is ") if $debug;
- $opt = $ctl->[CTL_CNAME];
- print STDERR ("\"$ctl->[CTL_CNAME]\"\n") if $debug;
-
- if ( defined $linkage{$opt} ) {
- print STDERR ("=> ref(\$L{$opt}) -> ",
- ref($linkage{$opt}), "\n") if $debug;
-
- if ( ref($linkage{$opt}) eq 'SCALAR' ) {
- if ( $ctl->[CTL_TYPE] eq '+' ) {
- print STDERR ("=> \$\$L{$opt} += \"$arg\"\n")
- if $debug;
- if ( defined ${$linkage{$opt}} ) {
- ${$linkage{$opt}} += $arg;
- }
- else {
- ${$linkage{$opt}} = $arg;
- }
- }
- else {
- print STDERR ("=> \$\$L{$opt} = \"$arg\"\n")
- if $debug;
- ${$linkage{$opt}} = $arg;
- }
- }
- elsif ( ref($linkage{$opt}) eq 'ARRAY' ) {
- print STDERR ("=> push(\@{\$L{$opt}, \"$arg\")\n")
- if $debug;
- push (@{$linkage{$opt}}, $arg);
- }
- elsif ( ref($linkage{$opt}) eq 'HASH' ) {
- print STDERR ("=> \$\$L{$opt}->{$key} = \"$arg\"\n")
- if $debug;
- $linkage{$opt}->{$key} = $arg;
- }
- elsif ( ref($linkage{$opt}) eq 'CODE' ) {
- print STDERR ("=> &L{$opt}(\"$opt\"",
- $ctl->[CTL_DEST] == CTL_DEST_HASH ? ", \"$key\"" : "",
- ", \"$arg\")\n")
- if $debug;
- my $eval_error = do {
- local $@;
- local $SIG{__DIE__} = '__DEFAULT__';
- eval {
- &{$linkage{$opt}}($opt,
- $ctl->[CTL_DEST] == CTL_DEST_HASH ? ($key) : (),
- $arg);
- };
- $@;
- };
- print STDERR ("=> die($eval_error)\n")
- if $debug && $eval_error ne '';
- if ( $eval_error =~ /^!/ ) {
- if ( $eval_error =~ /^!FINISH\b/ ) {
- $goon = 0;
- }
- }
- elsif ( $eval_error ne '' ) {
- warn ($eval_error);
- $error++;
- }
- }
- else {
- print STDERR ("Invalid REF type \"", ref($linkage{$opt}),
- "\" in linkage\n");
- die("Getopt::Long -- internal error!\n");
- }
- }
- # No entry in linkage means entry in userlinkage.
- elsif ( $ctl->[CTL_DEST] == CTL_DEST_ARRAY ) {
- if ( defined $userlinkage->{$opt} ) {
- print STDERR ("=> push(\@{\$L{$opt}}, \"$arg\")\n")
- if $debug;
- push (@{$userlinkage->{$opt}}, $arg);
- }
- else {
- print STDERR ("=>\$L{$opt} = [\"$arg\"]\n")
- if $debug;
- $userlinkage->{$opt} = [$arg];
- }
- }
- elsif ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) {
- if ( defined $userlinkage->{$opt} ) {
- print STDERR ("=> \$L{$opt}->{$key} = \"$arg\"\n")
- if $debug;
- $userlinkage->{$opt}->{$key} = $arg;
- }
- else {
- print STDERR ("=>\$L{$opt} = {$key => \"$arg\"}\n")
- if $debug;
- $userlinkage->{$opt} = {$key => $arg};
- }
- }
- else {
- if ( $ctl->[CTL_TYPE] eq '+' ) {
- print STDERR ("=> \$L{$opt} += \"$arg\"\n")
- if $debug;
- if ( defined $userlinkage->{$opt} ) {
- $userlinkage->{$opt} += $arg;
- }
- else {
- $userlinkage->{$opt} = $arg;
- }
- }
- else {
- print STDERR ("=>\$L{$opt} = \"$arg\"\n") if $debug;
- $userlinkage->{$opt} = $arg;
- }
- }
- }
- }
-
- # Not an option. Save it if we $PERMUTE and don't have a <>.
- elsif ( $order == $PERMUTE ) {
- # Try non-options call-back.
- my $cb;
- if ( (defined ($cb = $linkage{'<>'})) ) {
- print STDERR ("=> &L{$tryopt}(\"$tryopt\")\n")
- if $debug;
- my $eval_error = do {
- local $@;
- local $SIG{__DIE__} = '__DEFAULT__';
- eval { &$cb ($tryopt) };
- $@;
- };
- print STDERR ("=> die($eval_error)\n")
- if $debug && $eval_error ne '';
- if ( $eval_error =~ /^!/ ) {
- if ( $eval_error =~ /^!FINISH\b/ ) {
- $goon = 0;
- }
- }
- elsif ( $eval_error ne '' ) {
- warn ($eval_error);
- $error++;
- }
- }
- else {
- print STDERR ("=> saving \"$tryopt\" ",
- "(not an option, may permute)\n") if $debug;
- push (@ret, $tryopt);
- }
- next;
- }
-
- # ...otherwise, terminate.
- else {
- # Push this one back and exit.
- unshift (@ARGV, $tryopt);
- return ($error == 0);
- }
-
- }
-
- # Finish.
- if ( @ret && $order == $PERMUTE ) {
- # Push back accumulated arguments
- print STDERR ("=> restoring \"", join('" "', @ret), "\"\n")
- if $debug;
- unshift (@ARGV, @ret);
- }
-
- return ($error == 0);
-}
-
-# A readable representation of what's in an optbl.
-sub OptCtl ($) {
- my ($v) = @_;
- my @v = map { defined($_) ? ($_) : ("<undef>") } @$v;
- "[".
- join(",",
- "\"$v[CTL_TYPE]\"",
- "\"$v[CTL_CNAME]\"",
- $v[CTL_MAND] ? "O" : "M",
- ("\$","\@","\%","\&")[$v[CTL_DEST] || 0],
- "\"$v[CTL_DEFAULT]\"",
-# $v[CTL_RANGE] || '',
-# $v[CTL_REPEAT] || '',
- ). "]";
-}
-
-# Parse an option specification and fill the tables.
-sub ParseOptionSpec ($$) {
- my ($opt, $opctl) = @_;
-
- # Match option spec.
- if ( $opt !~ m;^
- (
- # Option name
- (?: \w+[-\w]* )
- # Alias names, or "?"
- (?: \| (?: \? | \w[-\w]* )? )*
- )?
- (
- # Either modifiers ...
- [!+]
- |
- # ... or a value/dest specification
- [=:] [ionfs] [@%]?
- |
- # ... or an optional-with-default spec
- : (?: -?\d+ | \+ ) [@%]?
- )?
- $;x ) {
- return (undef, "Error in option spec: \"$opt\"\n");
- }
-
- my ($names, $spec) = ($1, $2);
- $spec = '' unless defined $spec;
-
- # $orig keeps track of the primary name the user specified.
- # This name will be used for the internal or external linkage.
- # In other words, if the user specifies "FoO|BaR", it will
- # match any case combinations of 'foo' and 'bar', but if a global
- # variable needs to be set, it will be $opt_FoO in the exact case
- # as specified.
- my $orig;
-
- my @names;
- if ( defined $names ) {
- @names = split (/\|/, $names);
- $orig = $names[0];
- }
- else {
- @names = ('');
- $orig = '';
- }
-
- # Construct the opctl entries.
- my $entry;
- if ( $spec eq '' || $spec eq '+' || $spec eq '!' ) {
- # Fields are hard-wired here.
- $entry = [$spec,$orig,0,CTL_DEST_SCALAR,undef];
- }
- elsif ( $spec =~ /:(-?\d+|\+)([@%])?/ ) {
- my $def = $1;
- my $dest = $2;
- my $type = $def eq '+' ? 'I' : 'i';
- $dest ||= '$';
- $dest = $dest eq '@' ? CTL_DEST_ARRAY
- : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR;
- # Fields are hard-wired here.
- $entry = [$type,$orig,0,$dest,$def eq '+' ? undef : $def];
- }
- else {
- my ($mand, $type, $dest) = $spec =~ /([=:])([ionfs])([@%])?/;
- $type = 'i' if $type eq 'n';
- $dest ||= '$';
- $dest = $dest eq '@' ? CTL_DEST_ARRAY
- : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR;
- # Fields are hard-wired here.
- $entry = [$type,$orig,$mand eq '=',$dest,undef];
- }
-
- # Process all names. First is canonical, the rest are aliases.
- my $dups = '';
- foreach ( @names ) {
-
- $_ = lc ($_)
- if $ignorecase > (($bundling && length($_) == 1) ? 1 : 0);
-
- if ( exists $opctl->{$_} ) {
- $dups .= "Duplicate specification \"$opt\" for option \"$_\"\n";
- }
-
- if ( $spec eq '!' ) {
- $opctl->{"no$_"} = $entry;
- $opctl->{$_} = [@$entry];
- $opctl->{$_}->[CTL_TYPE] = '';
- }
- else {
- $opctl->{$_} = $entry;
- }
- }
-
- if ( $dups && $^W ) {
- foreach ( split(/\n+/, $dups) ) {
- warn($_."\n");
- }
- }
- ($names[0], $orig);
-}
-
-# Option lookup.
-sub FindOption ($$$$) {
-
- # returns (1, $opt, $ctl, $arg, $key) if okay,
- # returns (1, undef) if option in error,
- # returns (0) otherwise.
-
- my ($prefix, $argend, $opt, $opctl) = @_;
-
- print STDERR ("=> find \"$opt\"\n") if $debug;
-
- return (0) unless $opt =~ /^$prefix(.*)$/s;
- return (0) if $opt eq "-" && !defined $opctl->{''};
-
- $opt = $+;
- my $starter = $1;
-
- print STDERR ("=> split \"$starter\"+\"$opt\"\n") if $debug;
-
- my $optarg; # value supplied with --opt=value
- my $rest; # remainder from unbundling
-
- # If it is a long option, it may include the value.
- # With getopt_compat, only if not bundling.
- if ( ($starter eq "--"
- || ($getopt_compat && ($bundling == 0 || $bundling == 2)))
- && $opt =~ /^([^=]+)=(.*)$/s ) {
- $opt = $1;
- $optarg = $2;
- print STDERR ("=> option \"", $opt,
- "\", optarg = \"$optarg\"\n") if $debug;
- }
-
- #### Look it up ###
-
- my $tryopt = $opt; # option to try
-
- if ( $bundling && $starter eq '-' ) {
-
- # To try overrides, obey case ignore.
- $tryopt = $ignorecase ? lc($opt) : $opt;
-
- # If bundling == 2, long options can override bundles.
- if ( $bundling == 2 && length($tryopt) > 1
- && defined ($opctl->{$tryopt}) ) {
- print STDERR ("=> $starter$tryopt overrides unbundling\n")
- if $debug;
- }
- else {
- $tryopt = $opt;
- # Unbundle single letter option.
- $rest = length ($tryopt) > 0 ? substr ($tryopt, 1) : '';
- $tryopt = substr ($tryopt, 0, 1);
- $tryopt = lc ($tryopt) if $ignorecase > 1;
- print STDERR ("=> $starter$tryopt unbundled from ",
- "$starter$tryopt$rest\n") if $debug;
- $rest = undef unless $rest ne '';
- }
- }
-
- # Try auto-abbreviation.
- elsif ( $autoabbrev ) {
- # Sort the possible long option names.
- my @names = sort(keys (%$opctl));
- # Downcase if allowed.
- $opt = lc ($opt) if $ignorecase;
- $tryopt = $opt;
- # Turn option name into pattern.
- my $pat = quotemeta ($opt);
- # Look up in option names.
- my @hits = grep (/^$pat/, @names);
- print STDERR ("=> ", scalar(@hits), " hits (@hits) with \"$pat\" ",
- "out of ", scalar(@names), "\n") if $debug;
-
- # Check for ambiguous results.
- unless ( (@hits <= 1) || (grep ($_ eq $opt, @hits) == 1) ) {
- # See if all matches are for the same option.
- my %hit;
- foreach ( @hits ) {
- $_ = $opctl->{$_}->[CTL_CNAME]
- if defined $opctl->{$_}->[CTL_CNAME];
- $hit{$_} = 1;
- }
- # Now see if it really is ambiguous.
- unless ( keys(%hit) == 1 ) {
- return (0) if $passthrough;
- warn ("Option ", $opt, " is ambiguous (",
- join(", ", @hits), ")\n");
- $error++;
- return (1, undef);
- }
- @hits = keys(%hit);
- }
-
- # Complete the option name, if appropriate.
- if ( @hits == 1 && $hits[0] ne $opt ) {
- $tryopt = $hits[0];
- $tryopt = lc ($tryopt) if $ignorecase;
- print STDERR ("=> option \"$opt\" -> \"$tryopt\"\n")
- if $debug;
- }
- }
-
- # Map to all lowercase if ignoring case.
- elsif ( $ignorecase ) {
- $tryopt = lc ($opt);
- }
-
- # Check validity by fetching the info.
- my $ctl = $opctl->{$tryopt};
- unless ( defined $ctl ) {
- return (0) if $passthrough;
- warn ("Unknown option: ", $opt, "\n");
- $error++;
- return (1, undef);
- }
- # Apparently valid.
- $opt = $tryopt;
- print STDERR ("=> found ", OptCtl($ctl),
- " for \"", $opt, "\"\n") if $debug;
-
- #### Determine argument status ####
-
- # If it is an option w/o argument, we're almost finished with it.
- my $type = $ctl->[CTL_TYPE];
- my $arg;
-
- if ( $type eq '' || $type eq '!' || $type eq '+' ) {
- if ( defined $optarg ) {
- return (0) if $passthrough;
- warn ("Option ", $opt, " does not take an argument\n");
- $error++;
- undef $opt;
- }
- elsif ( $type eq '' || $type eq '+' ) {
- # Supply explicit value.
- $arg = 1;
- }
- else {
- $opt =~ s/^no//i; # strip NO prefix
- $arg = 0; # supply explicit value
- }
- unshift (@ARGV, $starter.$rest) if defined $rest;
- return (1, $opt, $ctl, $arg);
- }
-
- # Get mandatory status and type info.
- my $mand = $ctl->[CTL_MAND];
-
- # Check if there is an option argument available.
- if ( $gnu_compat && defined $optarg && $optarg eq '' ) {
- return (1, $opt, $ctl, $type eq 's' ? '' : 0) unless $mand;
- $optarg = 0 unless $type eq 's';
- }
-
- # Check if there is an option argument available.
- if ( defined $optarg
- ? ($optarg eq '')
- : !(defined $rest || @ARGV > 0) ) {
- # Complain if this option needs an argument.
- if ( $mand ) {
- return (0) if $passthrough;
- warn ("Option ", $opt, " requires an argument\n");
- $error++;
- return (1, undef);
- }
- if ( $type eq 'I' ) {
- # Fake incremental type.
- my @c = @$ctl;
- $c[CTL_TYPE] = '+';
- return (1, $opt, \@c, 1);
- }
- return (1, $opt, $ctl,
- defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] :
- $type eq 's' ? '' : 0);
- }
-
- # Get (possibly optional) argument.
- $arg = (defined $rest ? $rest
- : (defined $optarg ? $optarg : shift (@ARGV)));
-
- # Get key if this is a "name=value" pair for a hash option.
- my $key;
- if ($ctl->[CTL_DEST] == CTL_DEST_HASH && defined $arg) {
- ($key, $arg) = ($arg =~ /^([^=]*)=(.*)$/s) ? ($1, $2)
- : ($arg, defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : 1);
- }
-
- #### Check if the argument is valid for this option ####
-
- if ( $type eq 's' ) { # string
- # A mandatory string takes anything.
- return (1, $opt, $ctl, $arg, $key) if $mand;
-
- # An optional string takes almost anything.
- return (1, $opt, $ctl, $arg, $key)
- if defined $optarg || defined $rest;
- return (1, $opt, $ctl, $arg, $key) if $arg eq "-"; # ??
-
- # Check for option or option list terminator.
- if ($arg eq $argend ||
- $arg =~ /^$prefix.+/) {
- # Push back.
- unshift (@ARGV, $arg);
- # Supply empty value.
- $arg = '';
- }
- }
-
- elsif ( $type eq 'i' # numeric/integer
- || $type eq 'I' # numeric/integer w/ incr default
- || $type eq 'o' ) { # dec/oct/hex/bin value
-
- my $o_valid =
- $type eq 'o' ? "[-+]?[1-9][0-9]*|0x[0-9a-f]+|0b[01]+|0[0-7]*"
- : "[-+]?[0-9]+";
-
- if ( $bundling && defined $rest && $rest =~ /^($o_valid)(.*)$/si ) {
- $arg = $1;
- $rest = $2;
- $arg = ($type eq 'o' && $arg =~ /^0/) ? oct($arg) : 0+$arg;
- unshift (@ARGV, $starter.$rest) if defined $rest && $rest ne '';
- }
- elsif ( $arg =~ /^($o_valid)$/si ) {
- $arg = ($type eq 'o' && $arg =~ /^0/) ? oct($arg) : 0+$arg;
- }
- else {
- if ( defined $optarg || $mand ) {
- if ( $passthrough ) {
- unshift (@ARGV, defined $rest ? $starter.$rest : $arg)
- unless defined $optarg;
- return (0);
- }
- warn ("Value \"", $arg, "\" invalid for option ",
- $opt, " (",
- $type eq 'o' ? "extended " : '',
- "number expected)\n");
- $error++;
- # Push back.
- unshift (@ARGV, $starter.$rest) if defined $rest;
- return (1, undef);
- }
- else {
- # Push back.
- unshift (@ARGV, defined $rest ? $starter.$rest : $arg);
- if ( $type eq 'I' ) {
- # Fake incremental type.
- my @c = @$ctl;
- $c[CTL_TYPE] = '+';
- return (1, $opt, \@c, 1);
- }
- # Supply default value.
- $arg = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : 0;
- }
- }
- }
-
- elsif ( $type eq 'f' ) { # real number, int is also ok
- # We require at least one digit before a point or 'e',
- # and at least one digit following the point and 'e'.
- # [-]NN[.NN][eNN]
- if ( $bundling && defined $rest &&
- $rest =~ /^([-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?)(.*)$/s ) {
- $arg = $1;
- $rest = $+;
- unshift (@ARGV, $starter.$rest) if defined $rest && $rest ne '';
- }
- elsif ( $arg !~ /^[-+]?[0-9.]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/ ) {
- if ( defined $optarg || $mand ) {
- if ( $passthrough ) {
- unshift (@ARGV, defined $rest ? $starter.$rest : $arg)
- unless defined $optarg;
- return (0);
- }
- warn ("Value \"", $arg, "\" invalid for option ",
- $opt, " (real number expected)\n");
- $error++;
- # Push back.
- unshift (@ARGV, $starter.$rest) if defined $rest;
- return (1, undef);
- }
- else {
- # Push back.
- unshift (@ARGV, defined $rest ? $starter.$rest : $arg);
- # Supply default value.
- $arg = 0.0;
- }
- }
- }
- else {
- die("GetOpt::Long internal error (Can't happen)\n");
- }
- return (1, $opt, $ctl, $arg, $key);
-}
-
-# Getopt::Long Configuration.
-sub Configure (@) {
- my (@options) = @_;
-
- my $prevconfig =
- [ $error, $debug, $major_version, $minor_version,
- $autoabbrev, $getopt_compat, $ignorecase, $bundling, $order,
- $gnu_compat, $passthrough, $genprefix ];
-
- if ( ref($options[0]) eq 'ARRAY' ) {
- ( $error, $debug, $major_version, $minor_version,
- $autoabbrev, $getopt_compat, $ignorecase, $bundling, $order,
- $gnu_compat, $passthrough, $genprefix ) = @{shift(@options)};
- }
-
- my $opt;
- foreach $opt ( @options ) {
- my $try = lc ($opt);
- my $action = 1;
- if ( $try =~ /^no_?(.*)$/s ) {
- $action = 0;
- $try = $+;
- }
- if ( ($try eq 'default' or $try eq 'defaults') && $action ) {
- ConfigDefaults ();
- }
- elsif ( ($try eq 'posix_default' or $try eq 'posix_defaults') ) {
- local $ENV{POSIXLY_CORRECT};
- $ENV{POSIXLY_CORRECT} = 1 if $action;
- ConfigDefaults ();
- }
- elsif ( $try eq 'auto_abbrev' or $try eq 'autoabbrev' ) {
- $autoabbrev = $action;
- }
- elsif ( $try eq 'getopt_compat' ) {
- $getopt_compat = $action;
- }
- elsif ( $try eq 'gnu_getopt' ) {
- if ( $action ) {
- $gnu_compat = 1;
- $bundling = 1;
- $getopt_compat = 0;
- $order = $PERMUTE;
- }
- }
- elsif ( $try eq 'gnu_compat' ) {
- $gnu_compat = $action;
- }
- elsif ( $try eq 'ignorecase' or $try eq 'ignore_case' ) {
- $ignorecase = $action;
- }
- elsif ( $try eq 'ignore_case_always' ) {
- $ignorecase = $action ? 2 : 0;
- }
- elsif ( $try eq 'bundling' ) {
- $bundling = $action;
- }
- elsif ( $try eq 'bundling_override' ) {
- $bundling = $action ? 2 : 0;
- }
- elsif ( $try eq 'require_order' ) {
- $order = $action ? $REQUIRE_ORDER : $PERMUTE;
- }
- elsif ( $try eq 'permute' ) {
- $order = $action ? $PERMUTE : $REQUIRE_ORDER;
- }
- elsif ( $try eq 'pass_through' or $try eq 'passthrough' ) {
- $passthrough = $action;
- }
- elsif ( $try =~ /^prefix=(.+)$/ && $action ) {
- $genprefix = $1;
- # Turn into regexp. Needs to be parenthesized!
- $genprefix = "(" . quotemeta($genprefix) . ")";
- eval { '' =~ /$genprefix/; };
- die("Getopt::Long: invalid pattern \"$genprefix\"") if $@;
- }
- elsif ( $try =~ /^prefix_pattern=(.+)$/ && $action ) {
- $genprefix = $1;
- # Parenthesize if needed.
- $genprefix = "(" . $genprefix . ")"
- unless $genprefix =~ /^\(.*\)$/;
- eval { '' =~ /$genprefix/; };
- die("Getopt::Long: invalid pattern \"$genprefix\"") if $@;
- }
- elsif ( $try eq 'debug' ) {
- $debug = $action;
- }
- else {
- die("Getopt::Long: unknown config parameter \"$opt\"")
- }
- }
- $prevconfig;
-}
-
-# Deprecated name.
-sub config (@) {
- Configure (@_);
-}
-
-################ Documentation ################
-
-=head1 NAME
-
-Getopt::Long - Extended processing of command line options
-
-=head1 SYNOPSIS
-
- use Getopt::Long;
- my $data = "file.dat";
- my $length = 24;
- my $verbose;
- $result = GetOptions ("length=i" => \$length, # numeric
- "file=s" => \$data, # string
- "verbose" => \$verbose); # flag
-
-=head1 DESCRIPTION
-
-The Getopt::Long module implements an extended getopt function called
-GetOptions(). This function adheres to the POSIX syntax for command
-line options, with GNU extensions. In general, this means that options
-have long names instead of single letters, and are introduced with a
-double dash "--". Support for bundling of command line options, as was
-the case with the more traditional single-letter approach, is provided
-but not enabled by default.
-
-=head1 Command Line Options, an Introduction
-
-Command line operated programs traditionally take their arguments from
-the command line, for example filenames or other information that the
-program needs to know. Besides arguments, these programs often take
-command line I<options> as well. Options are not necessary for the
-program to work, hence the name 'option', but are used to modify its
-default behaviour. For example, a program could do its job quietly,
-but with a suitable option it could provide verbose information about
-what it did.
-
-Command line options come in several flavours. Historically, they are
-preceded by a single dash C<->, and consist of a single letter.
-
- -l -a -c
-
-Usually, these single-character options can be bundled:
-
- -lac
-
-Options can have values, the value is placed after the option
-character. Sometimes with whitespace in between, sometimes not:
-
- -s 24 -s24
-
-Due to the very cryptic nature of these options, another style was
-developed that used long names. So instead of a cryptic C<-l> one
-could use the more descriptive C<--long>. To distinguish between a
-bundle of single-character options and a long one, two dashes are used
-to precede the option name. Early implementations of long options used
-a plus C<+> instead. Also, option values could be specified either
-like
-
- --size=24
-
-or
-
- --size 24
-
-The C<+> form is now obsolete and strongly deprecated.
-
-=head1 Getting Started with Getopt::Long
-
-Getopt::Long is the Perl5 successor of C<newgetopt.pl>. This was
-the first Perl module that provided support for handling the new style
-of command line options, hence the name Getopt::Long. This module
-also supports single-character options and bundling. In this case, the
-options are restricted to alphabetic characters only, and the
-characters C<?> and C<->.
-
-To use Getopt::Long from a Perl program, you must include the
-following line in your Perl program:
-
- use Getopt::Long;
-
-This will load the core of the Getopt::Long module and prepare your
-program for using it. Most of the actual Getopt::Long code is not
-loaded until you really call one of its functions.
-
-In the default configuration, options names may be abbreviated to
-uniqueness, case does not matter, and a single dash is sufficient,
-even for long option names. Also, options may be placed between
-non-option arguments. See L<Configuring Getopt::Long> for more
-details on how to configure Getopt::Long.
-
-=head2 Simple options
-
-The most simple options are the ones that take no values. Their mere
-presence on the command line enables the option. Popular examples are:
-
- --all --verbose --quiet --debug
-
-Handling simple options is straightforward:
-
- my $verbose = ''; # option variable with default value (false)
- my $all = ''; # option variable with default value (false)
- GetOptions ('verbose' => \$verbose, 'all' => \$all);
-
-The call to GetOptions() parses the command line arguments that are
-present in C<@ARGV> and sets the option variable to the value C<1> if
-the option did occur on the command line. Otherwise, the option
-variable is not touched. Setting the option value to true is often
-called I<enabling> the option.
-
-The option name as specified to the GetOptions() function is called
-the option I<specification>. Later we'll see that this specification
-can contain more than just the option name. The reference to the
-variable is called the option I<destination>.
-
-GetOptions() will return a true value if the command line could be
-processed successfully. Otherwise, it will write error messages to
-STDERR, and return a false result.
-
-=head2 A little bit less simple options
-
-Getopt::Long supports two useful variants of simple options:
-I<negatable> options and I<incremental> options.
-
-A negatable option is specified with an exclamation mark C<!> after the
-option name:
-
- my $verbose = ''; # option variable with default value (false)
- GetOptions ('verbose!' => \$verbose);
-
-Now, using C<--verbose> on the command line will enable C<$verbose>,
-as expected. But it is also allowed to use C<--noverbose>, which will
-disable C<$verbose> by setting its value to C<0>. Using a suitable
-default value, the program can find out whether C<$verbose> is false
-by default, or disabled by using C<--noverbose>.
-
-An incremental option is specified with a plus C<+> after the
-option name:
-
- my $verbose = ''; # option variable with default value (false)
- GetOptions ('verbose+' => \$verbose);
-
-Using C<--verbose> on the command line will increment the value of
-C<$verbose>. This way the program can keep track of how many times the
-option occurred on the command line. For example, each occurrence of
-C<--verbose> could increase the verbosity level of the program.
-
-=head2 Mixing command line option with other arguments
-
-Usually programs take command line options as well as other arguments,
-for example, file names. It is good practice to always specify the
-options first, and the other arguments last. Getopt::Long will,
-however, allow the options and arguments to be mixed and 'filter out'
-all the options before passing the rest of the arguments to the
-program. To stop Getopt::Long from processing further arguments,
-insert a double dash C<--> on the command line:
-
- --size 24 -- --all
-
-In this example, C<--all> will I<not> be treated as an option, but
-passed to the program unharmed, in C<@ARGV>.
-
-=head2 Options with values
-
-For options that take values it must be specified whether the option
-value is required or not, and what kind of value the option expects.
-
-Three kinds of values are supported: integer numbers, floating point
-numbers, and strings.
-
-If the option value is required, Getopt::Long will take the
-command line argument that follows the option and assign this to the
-option variable. If, however, the option value is specified as
-optional, this will only be done if that value does not look like a
-valid command line option itself.
-
- my $tag = ''; # option variable with default value
- GetOptions ('tag=s' => \$tag);
-
-In the option specification, the option name is followed by an equals
-sign C<=> and the letter C<s>. The equals sign indicates that this
-option requires a value. The letter C<s> indicates that this value is
-an arbitrary string. Other possible value types are C<i> for integer
-values, and C<f> for floating point values. Using a colon C<:> instead
-of the equals sign indicates that the option value is optional. In
-this case, if no suitable value is supplied, string valued options get
-an empty string C<''> assigned, while numeric options are set to C<0>.
-
-=head2 Options with multiple values
-
-Options sometimes take several values. For example, a program could
-use multiple directories to search for library files:
-
- --library lib/stdlib --library lib/extlib
-
-To accomplish this behaviour, simply specify an array reference as the
-destination for the option:
-
- my @libfiles = ();
- GetOptions ("library=s" => \@libfiles);
-
-Used with the example above, C<@libfiles> would contain two strings
-upon completion: C<"lib/srdlib"> and C<"lib/extlib">, in that order.
-It is also possible to specify that only integer or floating point
-numbers are acceptible values.
-
-Often it is useful to allow comma-separated lists of values as well as
-multiple occurrences of the options. This is easy using Perl's split()
-and join() operators:
-
- my @libfiles = ();
- GetOptions ("library=s" => \@libfiles);
- @libfiles = split(/,/,join(',',@libfiles));
-
-Of course, it is important to choose the right separator string for
-each purpose.
-
-=head2 Options with hash values
-
-If the option destination is a reference to a hash, the option will
-take, as value, strings of the form I<key>C<=>I<value>. The value will
-be stored with the specified key in the hash.
-
- my %defines = ();
- GetOptions ("define=s" => \%defines);
-
-When used with command line options:
-
- --define os=linux --define vendor=redhat
-
-the hash C<%defines> will contain two keys, C<"os"> with value
-C<"linux> and C<"vendor"> with value C<"redhat">.
-It is also possible to specify that only integer or floating point
-numbers are acceptible values. The keys are always taken to be strings.
-
-=head2 User-defined subroutines to handle options
-
-Ultimate control over what should be done when (actually: each time)
-an option is encountered on the command line can be achieved by
-designating a reference to a subroutine (or an anonymous subroutine)
-as the option destination. When GetOptions() encounters the option, it
-will call the subroutine with two or three arguments. The first
-argument is the name of the option. For a scalar or array destination,
-the second argument is the value to be stored. For a hash destination,
-the second arguments is the key to the hash, and the third argument
-the value to be stored. It is up to the subroutine to store the value,
-or do whatever it thinks is appropriate.
-
-A trivial application of this mechanism is to implement options that
-are related to each other. For example:
-
- my $verbose = ''; # option variable with default value (false)
- GetOptions ('verbose' => \$verbose,
- 'quiet' => sub { $verbose = 0 });
-
-Here C<--verbose> and C<--quiet> control the same variable
-C<$verbose>, but with opposite values.
-
-If the subroutine needs to signal an error, it should call die() with
-the desired error message as its argument. GetOptions() will catch the
-die(), issue the error message, and record that an error result must
-be returned upon completion.
-
-If the text of the error message starts with an exclamantion mark C<!>
-it is interpreted specially by GetOptions(). There is currently one
-special command implemented: C<die("!FINISH")> will cause GetOptions()
-to stop processing options, as if it encountered a double dash C<-->.
-
-=head2 Options with multiple names
-
-Often it is user friendly to supply alternate mnemonic names for
-options. For example C<--height> could be an alternate name for
-C<--length>. Alternate names can be included in the option
-specification, separated by vertical bar C<|> characters. To implement
-the above example:
-
- GetOptions ('length|height=f' => \$length);
-
-The first name is called the I<primary> name, the other names are
-called I<aliases>.
-
-Multiple alternate names are possible.
-
-=head2 Case and abbreviations
-
-Without additional configuration, GetOptions() will ignore the case of
-option names, and allow the options to be abbreviated to uniqueness.
-
- GetOptions ('length|height=f' => \$length, "head" => \$head);
-
-This call will allow C<--l> and C<--L> for the length option, but
-requires a least C<--hea> and C<--hei> for the head and height options.
-
-=head2 Summary of Option Specifications
-
-Each option specifier consists of two parts: the name specification
-and the argument specification.
-
-The name specification contains the name of the option, optionally
-followed by a list of alternative names separated by vertical bar
-characters.
-
- length option name is "length"
- length|size|l name is "length", aliases are "size" and "l"
-
-The argument specification is optional. If omitted, the option is
-considered boolean, a value of 1 will be assigned when the option is
-used on the command line.
-
-The argument specification can be
-
-=over 4
-
-=item !
-
-The option does not take an argument and may be negated, i.e. prefixed
-by "no". E.g. C<"foo!"> will allow C<--foo> (a value of 1 will be
-assigned) and C<--nofoo> (a value of 0 will be assigned). If the
-option has aliases, this applies to the aliases as well.
-
-Using negation on a single letter option when bundling is in effect is
-pointless and will result in a warning.
-
-=item +
-
-The option does not take an argument and will be incremented by 1
-every time it appears on the command line. E.g. C<"more+">, when used
-with C<--more --more --more>, will increment the value three times,
-resulting in a value of 3 (provided it was 0 or undefined at first).
-
-The C<+> specifier is ignored if the option destination is not a scalar.
-
-=item = I<type> [ I<desttype> ]
-
-The option requires an argument of the given type. Supported types
-are:
-
-=over 4
-
-=item s
-
-String. An arbitrary sequence of characters. It is valid for the
-argument to start with C<-> or C<-->.
-
-=item i
-
-Integer. An optional leading plus or minus sign, followed by a
-sequence of digits.
-
-=item o
-
-Extended integer, Perl style. This can be either an optional leading
-plus or minus sign, followed by a sequence of digits, or an octal
-string (a zero, optionally followed by '0', '1', .. '7'), or a
-hexadecimal string (C<0x> followed by '0' .. '9', 'a' .. 'f', case
-insensitive), or a binary string (C<0b> followed by a series of '0'
-and '1').
-
-=item f
-
-Real number. For example C<3.14>, C<-6.23E24> and so on.
-
-=back
-
-The I<desttype> can be C<@> or C<%> to specify that the option is
-list or a hash valued. This is only needed when the destination for
-the option value is not otherwise specified. It should be omitted when
-not needed.
-
-=item : I<type> [ I<desttype> ]
-
-Like C<=>, but designates the argument as optional.
-If omitted, an empty string will be assigned to string values options,
-and the value zero to numeric options.
-
-Note that if a string argument starts with C<-> or C<-->, it will be
-considered an option on itself.
-
-=item : I<number> [ I<desttype> ]
-
-Like C<:i>, but if the value is omitted, the I<number> will be assigned.
-
-=item : + [ I<desttype> ]
-
-Like C<:i>, but if the value is omitted, the current value for the
-option will be incremented.
-
-=back
-
-=head1 Advanced Possibilities
-
-=head2 Object oriented interface
-
-Getopt::Long can be used in an object oriented way as well:
-
- use Getopt::Long;
- $p = new Getopt::Long::Parser;
- $p->configure(...configuration options...);
- if ($p->getoptions(...options descriptions...)) ...
-
-Configuration options can be passed to the constructor:
-
- $p = new Getopt::Long::Parser
- config => [...configuration options...];
-
-=head2 Thread Safety
-
-Getopt::Long is thread safe when using ithreads as of Perl 5.8. It is
-I<not> thread safe when using the older (experimental and now
-obsolete) threads implementation that was added to Perl 5.005.
-
-=head2 Documentation and help texts
-
-Getopt::Long encourages the use of Pod::Usage to produce help
-messages. For example:
-
- use Getopt::Long;
- use Pod::Usage;
-
- my $man = 0;
- my $help = 0;
-
- GetOptions('help|?' => \$help, man => \$man) or pod2usage(2);
- pod2usage(1) if $help;
- pod2usage(-exitstatus => 0, -verbose => 2) if $man;
-
- __END__
-
- =head1 NAME
-
- sample - Using GetOpt::Long and Pod::Usage
-
- =head1 SYNOPSIS
-
- sample [options] [file ...]
-
- Options:
- -help brief help message
- -man full documentation
-
- =head1 OPTIONS
-
- =over 8
-
- =item B<-help>
-
- Print a brief help message and exits.
-
- =item B<-man>
-
- Prints the manual page and exits.
-
- =back
-
- =head1 DESCRIPTION
-
- B<This program> will read the given input file(s) and do someting
- useful with the contents thereof.
-
- =cut
-
-See L<Pod::Usage> for details.
-
-=head2 Storing options in a hash
-
-Sometimes, for example when there are a lot of options, having a
-separate variable for each of them can be cumbersome. GetOptions()
-supports, as an alternative mechanism, storing options in a hash.
-
-To obtain this, a reference to a hash must be passed I<as the first
-argument> to GetOptions(). For each option that is specified on the
-command line, the option value will be stored in the hash with the
-option name as key. Options that are not actually used on the command
-line will not be put in the hash, on other words,
-C<exists($h{option})> (or defined()) can be used to test if an option
-was used. The drawback is that warnings will be issued if the program
-runs under C<use strict> and uses C<$h{option}> without testing with
-exists() or defined() first.
-
- my %h = ();
- GetOptions (\%h, 'length=i'); # will store in $h{length}
-
-For options that take list or hash values, it is necessary to indicate
-this by appending an C<@> or C<%> sign after the type:
-
- GetOptions (\%h, 'colours=s@'); # will push to @{$h{colours}}
-
-To make things more complicated, the hash may contain references to
-the actual destinations, for example:
-
- my $len = 0;
- my %h = ('length' => \$len);
- GetOptions (\%h, 'length=i'); # will store in $len
-
-This example is fully equivalent with:
-
- my $len = 0;
- GetOptions ('length=i' => \$len); # will store in $len
-
-Any mixture is possible. For example, the most frequently used options
-could be stored in variables while all other options get stored in the
-hash:
-
- my $verbose = 0; # frequently referred
- my $debug = 0; # frequently referred
- my %h = ('verbose' => \$verbose, 'debug' => \$debug);
- GetOptions (\%h, 'verbose', 'debug', 'filter', 'size=i');
- if ( $verbose ) { ... }
- if ( exists $h{filter} ) { ... option 'filter' was specified ... }
-
-=head2 Bundling
-
-With bundling it is possible to set several single-character options
-at once. For example if C<a>, C<v> and C<x> are all valid options,
-
- -vax
-
-would set all three.
-
-Getopt::Long supports two levels of bundling. To enable bundling, a
-call to Getopt::Long::Configure is required.
-
-The first level of bundling can be enabled with:
-
- Getopt::Long::Configure ("bundling");
-
-Configured this way, single-character options can be bundled but long
-options B<must> always start with a double dash C<--> to avoid
-abiguity. For example, when C<vax>, C<a>, C<v> and C<x> are all valid
-options,
-
- -vax
-
-would set C<a>, C<v> and C<x>, but
-
- --vax
-
-would set C<vax>.
-
-The second level of bundling lifts this restriction. It can be enabled
-with:
-
- Getopt::Long::Configure ("bundling_override");
-
-Now, C<-vax> would set the option C<vax>.
-
-When any level of bundling is enabled, option values may be inserted
-in the bundle. For example:
-
- -h24w80
-
-is equivalent to
-
- -h 24 -w 80
-
-When configured for bundling, single-character options are matched
-case sensitive while long options are matched case insensitive. To
-have the single-character options matched case insensitive as well,
-use:
-
- Getopt::Long::Configure ("bundling", "ignorecase_always");
-
-It goes without saying that bundling can be quite confusing.
-
-=head2 The lonesome dash
-
-Normally, a lone dash C<-> on the command line will not be considered
-an option. Option processing will terminate (unless "permute" is
-configured) and the dash will be left in C<@ARGV>.
-
-It is possible to get special treatment for a lone dash. This can be
-achieved by adding an option specification with an empty name, for
-example:
-
- GetOptions ('' => \$stdio);
-
-A lone dash on the command line will now be a legal option, and using
-it will set variable C<$stdio>.
-
-=head2 Argument callback
-
-A special option 'name' C<<>> can be used to designate a subroutine
-to handle non-option arguments. When GetOptions() encounters an
-argument that does not look like an option, it will immediately call this
-subroutine and passes it one parameter: the argument name.
-
-For example:
-
- my $width = 80;
- sub process { ... }
- GetOptions ('width=i' => \$width, '<>' => \&process);
-
-When applied to the following command line:
-
- arg1 --width=72 arg2 --width=60 arg3
-
-This will call
-C<process("arg1")> while C<$width> is C<80>,
-C<process("arg2")> while C<$width> is C<72>, and
-C<process("arg3")> while C<$width> is C<60>.
-
-This feature requires configuration option B<permute>, see section
-L<Configuring Getopt::Long>.
-
-
-=head1 Configuring Getopt::Long
-
-Getopt::Long can be configured by calling subroutine
-Getopt::Long::Configure(). This subroutine takes a list of quoted
-strings, each specifying a configuration option to be enabled, e.g.
-C<ignore_case>, or disabled, e.g. C<no_ignore_case>. Case does not
-matter. Multiple calls to Configure() are possible.
-
-Alternatively, as of version 2.24, the configuration options may be
-passed together with the C<use> statement:
-
- use Getopt::Long qw(:config no_ignore_case bundling);
-
-The following options are available:
-
-=over 12
-
-=item default
-
-This option causes all configuration options to be reset to their
-default values.
-
-=item posix_default
-
-This option causes all configuration options to be reset to their
-default values as if the environment variable POSIXLY_CORRECT had
-been set.
-
-=item auto_abbrev
-
-Allow option names to be abbreviated to uniqueness.
-Default is enabled unless environment variable
-POSIXLY_CORRECT has been set, in which case C<auto_abbrev> is disabled.
-
-=item getopt_compat
-
-Allow C<+> to start options.
-Default is enabled unless environment variable
-POSIXLY_CORRECT has been set, in which case C<getopt_compat> is disabled.
-
-=item gnu_compat
-
-C<gnu_compat> controls whether C<--opt=> is allowed, and what it should
-do. Without C<gnu_compat>, C<--opt=> gives an error. With C<gnu_compat>,
-C<--opt=> will give option C<opt> and empty value.
-This is the way GNU getopt_long() does it.
-
-=item gnu_getopt
-
-This is a short way of setting C<gnu_compat> C<bundling> C<permute>
-C<no_getopt_compat>. With C<gnu_getopt>, command line handling should be
-fully compatible with GNU getopt_long().
-
-=item require_order
-
-Whether command line arguments are allowed to be mixed with options.
-Default is disabled unless environment variable
-POSIXLY_CORRECT has been set, in which case C<require_order> is enabled.
-
-See also C<permute>, which is the opposite of C<require_order>.
-
-=item permute
-
-Whether command line arguments are allowed to be mixed with options.
-Default is enabled unless environment variable
-POSIXLY_CORRECT has been set, in which case C<permute> is disabled.
-Note that C<permute> is the opposite of C<require_order>.
-
-If C<permute> is enabled, this means that
-
- --foo arg1 --bar arg2 arg3
-
-is equivalent to
-
- --foo --bar arg1 arg2 arg3
-
-If an argument callback routine is specified, C<@ARGV> will always be
-empty upon succesful return of GetOptions() since all options have been
-processed. The only exception is when C<--> is used:
-
- --foo arg1 --bar arg2 -- arg3
-
-This will call the callback routine for arg1 and arg2, and then
-terminate GetOptions() leaving C<"arg2"> in C<@ARGV>.
-
-If C<require_order> is enabled, options processing
-terminates when the first non-option is encountered.
-
- --foo arg1 --bar arg2 arg3
-
-is equivalent to
-
- --foo -- arg1 --bar arg2 arg3
-
-If C<pass_through> is also enabled, options processing will terminate
-at the first unrecognized option, or non-option, whichever comes
-first.
-
-=item bundling (default: disabled)
-
-Enabling this option will allow single-character options to be
-bundled. To distinguish bundles from long option names, long options
-I<must> be introduced with C<--> and bundles with C<->.
-
-Note that, if you have options C<a>, C<l> and C<all>, and
-auto_abbrev enabled, possible arguments and option settings are:
-
- using argument sets option(s)
- ------------------------------------------
- -a, --a a
- -l, --l l
- -al, -la, -ala, -all,... a, l
- --al, --all all
-
-The suprising part is that C<--a> sets option C<a> (due to auto
-completion), not C<all>.
-
-Note: disabling C<bundling> also disables C<bundling_override>.
-
-=item bundling_override (default: disabled)
-
-If C<bundling_override> is enabled, bundling is enabled as with
-C<bundling> but now long option names override option bundles.
-
-Note: disabling C<bundling_override> also disables C<bundling>.
-
-B<Note:> Using option bundling can easily lead to unexpected results,
-especially when mixing long options and bundles. Caveat emptor.
-
-=item ignore_case (default: enabled)
-
-If enabled, case is ignored when matching long option names. If,
-however, bundling is enabled as well, single character options will be
-treated case-sensitive.
-
-With C<ignore_case>, option specifications for options that only
-differ in case, e.g., C<"foo"> and C<"Foo">, will be flagged as
-duplicates.
-
-Note: disabling C<ignore_case> also disables C<ignore_case_always>.
-
-=item ignore_case_always (default: disabled)
-
-When bundling is in effect, case is ignored on single-character
-options also.
-
-Note: disabling C<ignore_case_always> also disables C<ignore_case>.
-
-=item pass_through (default: disabled)
-
-Options that are unknown, ambiguous or supplied with an invalid option
-value are passed through in C<@ARGV> instead of being flagged as
-errors. This makes it possible to write wrapper scripts that process
-only part of the user supplied command line arguments, and pass the
-remaining options to some other program.
-
-If C<require_order> is enabled, options processing will terminate at
-the first unrecognized option, or non-option, whichever comes first.
-However, if C<permute> is enabled instead, results can become confusing.
-
-=item prefix
-
-The string that starts options. If a constant string is not
-sufficient, see C<prefix_pattern>.
-
-=item prefix_pattern
-
-A Perl pattern that identifies the strings that introduce options.
-Default is C<(--|-|\+)> unless environment variable
-POSIXLY_CORRECT has been set, in which case it is C<(--|-)>.
-
-=item debug (default: disabled)
-
-Enable debugging output.
-
-=back
-
-=head1 Return values and Errors
-
-Configuration errors and errors in the option definitions are
-signalled using die() and will terminate the calling program unless
-the call to Getopt::Long::GetOptions() was embedded in C<eval { ...
-}>, or die() was trapped using C<$SIG{__DIE__}>.
-
-GetOptions returns true to indicate success.
-It returns false when the function detected one or more errors during
-option parsing. These errors are signalled using warn() and can be
-trapped with C<$SIG{__WARN__}>.
-
-Errors that can't happen are signalled using Carp::croak().
-
-=head1 Legacy
-
-The earliest development of C<newgetopt.pl> started in 1990, with Perl
-version 4. As a result, its development, and the development of
-Getopt::Long, has gone through several stages. Since backward
-compatibility has always been extremely important, the current version
-of Getopt::Long still supports a lot of constructs that nowadays are
-no longer necessary or otherwise unwanted. This section describes
-briefly some of these 'features'.
-
-=head2 Default destinations
-
-When no destination is specified for an option, GetOptions will store
-the resultant value in a global variable named C<opt_>I<XXX>, where
-I<XXX> is the primary name of this option. When a progam executes
-under C<use strict> (recommended), these variables must be
-pre-declared with our() or C<use vars>.
-
- our $opt_length = 0;
- GetOptions ('length=i'); # will store in $opt_length
-
-To yield a usable Perl variable, characters that are not part of the
-syntax for variables are translated to underscores. For example,
-C<--fpp-struct-return> will set the variable
-C<$opt_fpp_struct_return>. Note that this variable resides in the
-namespace of the calling program, not necessarily C<main>. For
-example:
-
- GetOptions ("size=i", "sizes=i@");
-
-with command line "-size 10 -sizes 24 -sizes 48" will perform the
-equivalent of the assignments
-
- $opt_size = 10;
- @opt_sizes = (24, 48);
-
-=head2 Alternative option starters
-
-A string of alternative option starter characters may be passed as the
-first argument (or the first argument after a leading hash reference
-argument).
-
- my $len = 0;
- GetOptions ('/', 'length=i' => $len);
-
-Now the command line may look like:
-
- /length 24 -- arg
-
-Note that to terminate options processing still requires a double dash
-C<-->.
-
-GetOptions() will not interpret a leading C<< "<>" >> as option starters
-if the next argument is a reference. To force C<< "<" >> and C<< ">" >> as
-option starters, use C<< "><" >>. Confusing? Well, B<using a starter
-argument is strongly deprecated> anyway.
-
-=head2 Configuration variables
-
-Previous versions of Getopt::Long used variables for the purpose of
-configuring. Although manipulating these variables still work, it is
-strongly encouraged to use the C<Configure> routine that was introduced
-in version 2.17. Besides, it is much easier.
-
-=head1 Trouble Shooting
-
-=head2 Warning: Ignoring '!' modifier for short option
-
-This warning is issued when the '!' modifier is applied to a short
-(one-character) option and bundling is in effect. E.g.,
-
- Getopt::Long::Configure("bundling");
- GetOptions("foo|f!" => \$foo);
-
-Note that older Getopt::Long versions did not issue a warning, because
-the '!' modifier was applied to the first name only. This bug was
-fixed in 2.22.
-
-Solution: separate the long and short names and apply the '!' to the
-long names only, e.g.,
-
- GetOptions("foo!" => \$foo, "f" => \$foo);
-
-=head2 GetOptions does not return a false result when an option is not supplied
-
-That's why they're called 'options'.
-
-=head2 GetOptions does not split the command line correctly
-
-The command line is not split by GetOptions, but by the command line
-interpreter (CLI). On Unix, this is the shell. On Windows, it is
-COMMAND.COM or CMD.EXE. Other operating systems have other CLIs.
-
-It is important to know that these CLIs may behave different when the
-command line contains special characters, in particular quotes or
-backslashes. For example, with Unix shells you can use single quotes
-(C<'>) and double quotes (C<">) to group words together. The following
-alternatives are equivalent on Unix:
-
- "two words"
- 'two words'
- two\ words
-
-In case of doubt, insert the following statement in front of your Perl
-program:
-
- print STDERR (join("|",@ARGV),"\n");
-
-to verify how your CLI passes the arguments to the program.
-
-=head2 How do I put a "-?" option into a Getopt::Long?
-
-You can only obtain this using an alias, and Getopt::Long of at least
-version 2.13.
-
- use Getopt::Long;
- GetOptions ("help|?"); # -help and -? will both set $opt_help
-
-=head1 AUTHOR
-
-Johan Vromans <jvromans@squirrel.nl>
-
-=head1 COPYRIGHT AND DISCLAIMER
-
-This program is Copyright 2002,1990 by Johan Vromans.
-This program is free software; you can redistribute it and/or
-modify it under the terms of the Perl Artistic License or the
-GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-If you do not have a copy of the GNU General Public License write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
-MA 02139, USA.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/IO.pm b/Master/xemtex/perl/lib/IO.pm
deleted file mode 100644
index 0087530c7e6..00000000000
--- a/Master/xemtex/perl/lib/IO.pm
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-
-package IO;
-
-use XSLoader ();
-use Carp;
-
-$VERSION = "1.20";
-XSLoader::load 'IO', $VERSION;
-
-sub import {
- shift;
- my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir);
-
- eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l)
- or croak $@;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-IO - load various IO modules
-
-=head1 SYNOPSIS
-
- use IO;
-
-=head1 DESCRIPTION
-
-C<IO> provides a simple mechanism to load some of the IO modules at one go.
-Currently this includes:
-
- IO::Handle
- IO::Seekable
- IO::File
- IO::Pipe
- IO::Socket
- IO::Dir
-
-For more information on any of these modules, please see its respective
-documentation.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/IO/File.pm b/Master/xemtex/perl/lib/IO/File.pm
deleted file mode 100644
index d5520cbd933..00000000000
--- a/Master/xemtex/perl/lib/IO/File.pm
+++ /dev/null
@@ -1,169 +0,0 @@
-#
-
-package IO::File;
-
-=head1 NAME
-
-IO::File - supply object methods for filehandles
-
-=head1 SYNOPSIS
-
- use IO::File;
-
- $fh = new IO::File;
- if ($fh->open("< file")) {
- print <$fh>;
- $fh->close;
- }
-
- $fh = new IO::File "> file";
- if (defined $fh) {
- print $fh "bar\n";
- $fh->close;
- }
-
- $fh = new IO::File "file", "r";
- if (defined $fh) {
- print <$fh>;
- undef $fh; # automatically closes the file
- }
-
- $fh = new IO::File "file", O_WRONLY|O_APPEND;
- if (defined $fh) {
- print $fh "corge\n";
-
- $pos = $fh->getpos;
- $fh->setpos($pos);
-
- undef $fh; # automatically closes the file
- }
-
- autoflush STDOUT 1;
-
-=head1 DESCRIPTION
-
-C<IO::File> inherits from C<IO::Handle> and C<IO::Seekable>. It extends
-these classes with methods that are specific to file handles.
-
-=head1 CONSTRUCTOR
-
-=over 4
-
-=item new ( FILENAME [,MODE [,PERMS]] )
-
-Creates an C<IO::File>. If it receives any parameters, they are passed to
-the method C<open>; if the open fails, the object is destroyed. Otherwise,
-it is returned to the caller.
-
-=item new_tmpfile
-
-Creates an C<IO::File> opened for read/write on a newly created temporary
-file. On systems where this is possible, the temporary file is anonymous
-(i.e. it is unlinked after creation, but held open). If the temporary
-file cannot be created or opened, the C<IO::File> object is destroyed.
-Otherwise, it is returned to the caller.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item open( FILENAME [,MODE [,PERMS]] )
-
-C<open> accepts one, two or three parameters. With one parameter,
-it is just a front end for the built-in C<open> function. With two or three
-parameters, the first parameter is a filename that may include
-whitespace or other special characters, and the second parameter is
-the open mode, optionally followed by a file permission value.
-
-If C<IO::File::open> receives a Perl mode string ("E<gt>", "+E<lt>", etc.)
-or an ANSI C fopen() mode string ("w", "r+", etc.), it uses the basic
-Perl C<open> operator (but protects any special characters).
-
-If C<IO::File::open> is given a numeric mode, it passes that mode
-and the optional permissions value to the Perl C<sysopen> operator.
-The permissions default to 0666.
-
-For convenience, C<IO::File> exports the O_XXX constants from the
-Fcntl module, if this module is available.
-
-=back
-
-=head1 SEE ALSO
-
-L<perlfunc>,
-L<perlop/"I/O Operators">,
-L<IO::Handle>
-L<IO::Seekable>
-
-=head1 HISTORY
-
-Derived from FileHandle.pm by Graham Barr E<lt>F<gbarr@pobox.com>E<gt>.
-
-=cut
-
-use 5.006_001;
-use strict;
-our($VERSION, @EXPORT, @EXPORT_OK, @ISA);
-use Carp;
-use Symbol;
-use SelectSaver;
-use IO::Seekable;
-use File::Spec;
-
-require Exporter;
-
-@ISA = qw(IO::Handle IO::Seekable Exporter);
-
-$VERSION = "1.09";
-
-@EXPORT = @IO::Seekable::EXPORT;
-
-eval {
- # Make all Fcntl O_XXX constants available for importing
- require Fcntl;
- my @O = grep /^O_/, @Fcntl::EXPORT;
- Fcntl->import(@O); # first we import what we want to export
- push(@EXPORT, @O);
-};
-
-################################################
-## Constructor
-##
-
-sub new {
- my $type = shift;
- my $class = ref($type) || $type || "IO::File";
- @_ >= 0 && @_ <= 3
- or croak "usage: new $class [FILENAME [,MODE [,PERMS]]]";
- my $fh = $class->SUPER::new();
- if (@_) {
- $fh->open(@_)
- or return undef;
- }
- $fh;
-}
-
-################################################
-## Open
-##
-
-sub open {
- @_ >= 2 && @_ <= 4 or croak 'usage: $fh->open(FILENAME [,MODE [,PERMS]])';
- my ($fh, $file) = @_;
- if (@_ > 2) {
- my ($mode, $perms) = @_[2, 3];
- if ($mode =~ /^\d+$/) {
- defined $perms or $perms = 0666;
- return sysopen($fh, $file, $mode, $perms);
- }
- if (! File::Spec->file_name_is_absolute($file)) {
- $file = File::Spec->catfile(File::Spec->curdir(),$file);
- }
- $file = IO::Handle::_open_mode_string($mode) . " $file\0";
- }
- open($fh, $file);
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/IO/Handle.pm b/Master/xemtex/perl/lib/IO/Handle.pm
deleted file mode 100644
index 81bec5a6c1a..00000000000
--- a/Master/xemtex/perl/lib/IO/Handle.pm
+++ /dev/null
@@ -1,613 +0,0 @@
-
-package IO::Handle;
-
-=head1 NAME
-
-IO::Handle - supply object methods for I/O handles
-
-=head1 SYNOPSIS
-
- use IO::Handle;
-
- $io = new IO::Handle;
- if ($io->fdopen(fileno(STDIN),"r")) {
- print $io->getline;
- $io->close;
- }
-
- $io = new IO::Handle;
- if ($io->fdopen(fileno(STDOUT),"w")) {
- $io->print("Some text\n");
- }
-
- use IO::Handle '_IOLBF';
- $io->setvbuf($buffer_var, _IOLBF, 1024);
-
- undef $io; # automatically closes the file if it's open
-
- autoflush STDOUT 1;
-
-=head1 DESCRIPTION
-
-C<IO::Handle> is the base class for all other IO handle classes. It is
-not intended that objects of C<IO::Handle> would be created directly,
-but instead C<IO::Handle> is inherited from by several other classes
-in the IO hierarchy.
-
-If you are reading this documentation, looking for a replacement for
-the C<FileHandle> package, then I suggest you read the documentation
-for C<IO::File> too.
-
-=head1 CONSTRUCTOR
-
-=over 4
-
-=item new ()
-
-Creates a new C<IO::Handle> object.
-
-=item new_from_fd ( FD, MODE )
-
-Creates an C<IO::Handle> like C<new> does.
-It requires two parameters, which are passed to the method C<fdopen>;
-if the fdopen fails, the object is destroyed. Otherwise, it is returned
-to the caller.
-
-=back
-
-=head1 METHODS
-
-See L<perlfunc> for complete descriptions of each of the following
-supported C<IO::Handle> methods, which are just front ends for the
-corresponding built-in functions:
-
- $io->close
- $io->eof
- $io->fileno
- $io->format_write( [FORMAT_NAME] )
- $io->getc
- $io->read ( BUF, LEN, [OFFSET] )
- $io->print ( ARGS )
- $io->printf ( FMT, [ARGS] )
- $io->stat
- $io->sysread ( BUF, LEN, [OFFSET] )
- $io->syswrite ( BUF, [LEN, [OFFSET]] )
- $io->truncate ( LEN )
-
-See L<perlvar> for complete descriptions of each of the following
-supported C<IO::Handle> methods. All of them return the previous
-value of the attribute and takes an optional single argument that when
-given will set the value. If no argument is given the previous value
-is unchanged (except for $io->autoflush will actually turn ON
-autoflush by default).
-
- $io->autoflush ( [BOOL] ) $|
- $io->format_page_number( [NUM] ) $%
- $io->format_lines_per_page( [NUM] ) $=
- $io->format_lines_left( [NUM] ) $-
- $io->format_name( [STR] ) $~
- $io->format_top_name( [STR] ) $^
- $io->input_line_number( [NUM]) $.
-
-The following methods are not supported on a per-filehandle basis.
-
- IO::Handle->format_line_break_characters( [STR] ) $:
- IO::Handle->format_formfeed( [STR]) $^L
- IO::Handle->output_field_separator( [STR] ) $,
- IO::Handle->output_record_separator( [STR] ) $\
-
- IO::Handle->input_record_separator( [STR] ) $/
-
-Furthermore, for doing normal I/O you might need these:
-
-=over 4
-
-=item $io->fdopen ( FD, MODE )
-
-C<fdopen> is like an ordinary C<open> except that its first parameter
-is not a filename but rather a file handle name, an IO::Handle object,
-or a file descriptor number.
-
-=item $io->opened
-
-Returns true if the object is currently a valid file descriptor, false
-otherwise.
-
-=item $io->getline
-
-This works like <$io> described in L<perlop/"I/O Operators">
-except that it's more readable and can be safely called in a
-list context but still returns just one line.
-
-=item $io->getlines
-
-This works like <$io> when called in a list context to read all
-the remaining lines in a file, except that it's more readable.
-It will also croak() if accidentally called in a scalar context.
-
-=item $io->ungetc ( ORD )
-
-Pushes a character with the given ordinal value back onto the given
-handle's input stream. Only one character of pushback per handle is
-guaranteed.
-
-=item $io->write ( BUF, LEN [, OFFSET ] )
-
-This C<write> is like C<write> found in C, that is it is the
-opposite of read. The wrapper for the perl C<write> function is
-called C<format_write>.
-
-=item $io->error
-
-Returns a true value if the given handle has experienced any errors
-since it was opened or since the last call to C<clearerr>, or if the
-handle is invalid. It only returns false for a valid handle with no
-outstanding errors.
-
-=item $io->clearerr
-
-Clear the given handle's error indicator. Returns -1 if the handle is
-invalid, 0 otherwise.
-
-=item $io->sync
-
-C<sync> synchronizes a file's in-memory state with that on the
-physical medium. C<sync> does not operate at the perlio api level, but
-operates on the file descriptor (similar to sysread, sysseek and
-systell). This means that any data held at the perlio api level will not
-be synchronized. To synchronize data that is buffered at the perlio api
-level you must use the flush method. C<sync> is not implemented on all
-platforms. Returns "0 but true" on success, C<undef> on error, C<undef>
-for an invalid handle. See L<fsync(3c)>.
-
-=item $io->flush
-
-C<flush> causes perl to flush any buffered data at the perlio api level.
-Any unread data in the buffer will be discarded, and any unwritten data
-will be written to the underlying file descriptor. Returns "0 but true"
-on success, C<undef> on error.
-
-=item $io->printflush ( ARGS )
-
-Turns on autoflush, print ARGS and then restores the autoflush status of the
-C<IO::Handle> object. Returns the return value from print.
-
-=item $io->blocking ( [ BOOL ] )
-
-If called with an argument C<blocking> will turn on non-blocking IO if
-C<BOOL> is false, and turn it off if C<BOOL> is true.
-
-C<blocking> will return the value of the previous setting, or the
-current setting if C<BOOL> is not given.
-
-If an error occurs C<blocking> will return undef and C<$!> will be set.
-
-=back
-
-
-If the C functions setbuf() and/or setvbuf() are available, then
-C<IO::Handle::setbuf> and C<IO::Handle::setvbuf> set the buffering
-policy for an IO::Handle. The calling sequences for the Perl functions
-are the same as their C counterparts--including the constants C<_IOFBF>,
-C<_IOLBF>, and C<_IONBF> for setvbuf()--except that the buffer parameter
-specifies a scalar variable to use as a buffer. You should only
-change the buffer before any I/O, or immediately after calling flush.
-
-WARNING: A variable used as a buffer by C<setbuf> or C<setvbuf> B<must not
-be modified> in any way until the IO::Handle is closed or C<setbuf> or
-C<setvbuf> is called again, or memory corruption may result! Remember that
-the order of global destruction is undefined, so even if your buffer
-variable remains in scope until program termination, it may be undefined
-before the file IO::Handle is closed. Note that you need to import the
-constants C<_IOFBF>, C<_IOLBF>, and C<_IONBF> explicitly. Like C, setbuf
-returns nothing. setvbuf returns "0 but true", on success, C<undef> on
-failure.
-
-Lastly, there is a special method for working under B<-T> and setuid/gid
-scripts:
-
-=over 4
-
-=item $io->untaint
-
-Marks the object as taint-clean, and as such data read from it will also
-be considered taint-clean. Note that this is a very trusting action to
-take, and appropriate consideration for the data source and potential
-vulnerability should be kept in mind. Returns 0 on success, -1 if setting
-the taint-clean flag failed. (eg invalid handle)
-
-=back
-
-=head1 NOTE
-
-An C<IO::Handle> object is a reference to a symbol/GLOB reference (see
-the C<Symbol> package). Some modules that
-inherit from C<IO::Handle> may want to keep object related variables
-in the hash table part of the GLOB. In an attempt to prevent modules
-trampling on each other I propose the that any such module should prefix
-its variables with its own name separated by _'s. For example the IO::Socket
-module keeps a C<timeout> variable in 'io_socket_timeout'.
-
-=head1 SEE ALSO
-
-L<perlfunc>,
-L<perlop/"I/O Operators">,
-L<IO::File>
-
-=head1 BUGS
-
-Due to backwards compatibility, all filehandles resemble objects
-of class C<IO::Handle>, or actually classes derived from that class.
-They actually aren't. Which means you can't derive your own
-class from C<IO::Handle> and inherit those methods.
-
-=head1 HISTORY
-
-Derived from FileHandle.pm by Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
-
-=cut
-
-use 5.006_001;
-use strict;
-our($VERSION, @EXPORT_OK, @ISA);
-use Carp;
-use Symbol;
-use SelectSaver;
-use IO (); # Load the XS module
-
-require Exporter;
-@ISA = qw(Exporter);
-
-$VERSION = "1.21_00";
-$VERSION = eval $VERSION;
-
-@EXPORT_OK = qw(
- autoflush
- output_field_separator
- output_record_separator
- input_record_separator
- input_line_number
- format_page_number
- format_lines_per_page
- format_lines_left
- format_name
- format_top_name
- format_line_break_characters
- format_formfeed
- format_write
-
- print
- printf
- getline
- getlines
-
- printflush
- flush
-
- SEEK_SET
- SEEK_CUR
- SEEK_END
- _IOFBF
- _IOLBF
- _IONBF
-);
-
-################################################
-## Constructors, destructors.
-##
-
-sub new {
- my $class = ref($_[0]) || $_[0] || "IO::Handle";
- @_ == 1 or croak "usage: new $class";
- my $io = gensym;
- bless $io, $class;
-}
-
-sub new_from_fd {
- my $class = ref($_[0]) || $_[0] || "IO::Handle";
- @_ == 3 or croak "usage: new_from_fd $class FD, MODE";
- my $io = gensym;
- shift;
- IO::Handle::fdopen($io, @_)
- or return undef;
- bless $io, $class;
-}
-
-#
-# There is no need for DESTROY to do anything, because when the
-# last reference to an IO object is gone, Perl automatically
-# closes its associated files (if any). However, to avoid any
-# attempts to autoload DESTROY, we here define it to do nothing.
-#
-sub DESTROY {}
-
-
-################################################
-## Open and close.
-##
-
-sub _open_mode_string {
- my ($mode) = @_;
- $mode =~ /^\+?(<|>>?)$/
- or $mode =~ s/^r(\+?)$/$1</
- or $mode =~ s/^w(\+?)$/$1>/
- or $mode =~ s/^a(\+?)$/$1>>/
- or croak "IO::Handle: bad open mode: $mode";
- $mode;
-}
-
-sub fdopen {
- @_ == 3 or croak 'usage: $io->fdopen(FD, MODE)';
- my ($io, $fd, $mode) = @_;
- local(*GLOB);
-
- if (ref($fd) && "".$fd =~ /GLOB\(/o) {
- # It's a glob reference; Alias it as we cannot get name of anon GLOBs
- my $n = qualify(*GLOB);
- *GLOB = *{*$fd};
- $fd = $n;
- } elsif ($fd =~ m#^\d+$#) {
- # It's an FD number; prefix with "=".
- $fd = "=$fd";
- }
-
- open($io, _open_mode_string($mode) . '&' . $fd)
- ? $io : undef;
-}
-
-sub close {
- @_ == 1 or croak 'usage: $io->close()';
- my($io) = @_;
-
- close($io);
-}
-
-################################################
-## Normal I/O functions.
-##
-
-# flock
-# select
-
-sub opened {
- @_ == 1 or croak 'usage: $io->opened()';
- defined fileno($_[0]);
-}
-
-sub fileno {
- @_ == 1 or croak 'usage: $io->fileno()';
- fileno($_[0]);
-}
-
-sub getc {
- @_ == 1 or croak 'usage: $io->getc()';
- getc($_[0]);
-}
-
-sub eof {
- @_ == 1 or croak 'usage: $io->eof()';
- eof($_[0]);
-}
-
-sub print {
- @_ or croak 'usage: $io->print(ARGS)';
- my $this = shift;
- print $this @_;
-}
-
-sub printf {
- @_ >= 2 or croak 'usage: $io->printf(FMT,[ARGS])';
- my $this = shift;
- printf $this @_;
-}
-
-sub getline {
- @_ == 1 or croak 'usage: $io->getline()';
- my $this = shift;
- return scalar <$this>;
-}
-
-*gets = \&getline; # deprecated
-
-sub getlines {
- @_ == 1 or croak 'usage: $io->getlines()';
- wantarray or
- croak 'Can\'t call $io->getlines in a scalar context, use $io->getline';
- my $this = shift;
- return <$this>;
-}
-
-sub truncate {
- @_ == 2 or croak 'usage: $io->truncate(LEN)';
- truncate($_[0], $_[1]);
-}
-
-sub read {
- @_ == 3 || @_ == 4 or croak 'usage: $io->read(BUF, LEN [, OFFSET])';
- read($_[0], $_[1], $_[2], $_[3] || 0);
-}
-
-sub sysread {
- @_ == 3 || @_ == 4 or croak 'usage: $io->sysread(BUF, LEN [, OFFSET])';
- sysread($_[0], $_[1], $_[2], $_[3] || 0);
-}
-
-sub write {
- @_ >= 2 && @_ <= 4 or croak 'usage: $io->write(BUF [, LEN [, OFFSET]])';
- local($\) = "";
- $_[2] = length($_[1]) unless defined $_[2];
- print { $_[0] } substr($_[1], $_[3] || 0, $_[2]);
-}
-
-sub syswrite {
- @_ >= 2 && @_ <= 4 or croak 'usage: $io->syswrite(BUF [, LEN [, OFFSET]])';
- if (defined($_[2])) {
- syswrite($_[0], $_[1], $_[2], $_[3] || 0);
- } else {
- syswrite($_[0], $_[1]);
- }
-}
-
-sub stat {
- @_ == 1 or croak 'usage: $io->stat()';
- stat($_[0]);
-}
-
-################################################
-## State modification functions.
-##
-
-sub autoflush {
- my $old = new SelectSaver qualify($_[0], caller);
- my $prev = $|;
- $| = @_ > 1 ? $_[1] : 1;
- $prev;
-}
-
-sub output_field_separator {
- carp "output_field_separator is not supported on a per-handle basis"
- if ref($_[0]);
- my $prev = $,;
- $, = $_[1] if @_ > 1;
- $prev;
-}
-
-sub output_record_separator {
- carp "output_record_separator is not supported on a per-handle basis"
- if ref($_[0]);
- my $prev = $\;
- $\ = $_[1] if @_ > 1;
- $prev;
-}
-
-sub input_record_separator {
- carp "input_record_separator is not supported on a per-handle basis"
- if ref($_[0]);
- my $prev = $/;
- $/ = $_[1] if @_ > 1;
- $prev;
-}
-
-sub input_line_number {
- local $.;
- my $tell = tell qualify($_[0], caller) if ref($_[0]);
- my $prev = $.;
- $. = $_[1] if @_ > 1;
- $prev;
-}
-
-sub format_page_number {
- my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
- my $prev = $%;
- $% = $_[1] if @_ > 1;
- $prev;
-}
-
-sub format_lines_per_page {
- my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
- my $prev = $=;
- $= = $_[1] if @_ > 1;
- $prev;
-}
-
-sub format_lines_left {
- my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
- my $prev = $-;
- $- = $_[1] if @_ > 1;
- $prev;
-}
-
-sub format_name {
- my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
- my $prev = $~;
- $~ = qualify($_[1], caller) if @_ > 1;
- $prev;
-}
-
-sub format_top_name {
- my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
- my $prev = $^;
- $^ = qualify($_[1], caller) if @_ > 1;
- $prev;
-}
-
-sub format_line_break_characters {
- carp "format_line_break_characters is not supported on a per-handle basis"
- if ref($_[0]);
- my $prev = $:;
- $: = $_[1] if @_ > 1;
- $prev;
-}
-
-sub format_formfeed {
- carp "format_formfeed is not supported on a per-handle basis"
- if ref($_[0]);
- my $prev = $^L;
- $^L = $_[1] if @_ > 1;
- $prev;
-}
-
-sub formline {
- my $io = shift;
- my $picture = shift;
- local($^A) = $^A;
- local($\) = "";
- formline($picture, @_);
- print $io $^A;
-}
-
-sub format_write {
- @_ < 3 || croak 'usage: $io->write( [FORMAT_NAME] )';
- if (@_ == 2) {
- my ($io, $fmt) = @_;
- my $oldfmt = $io->format_name($fmt);
- CORE::write($io);
- $io->format_name($oldfmt);
- } else {
- CORE::write($_[0]);
- }
-}
-
-# XXX undocumented
-sub fcntl {
- @_ == 3 || croak 'usage: $io->fcntl( OP, VALUE );';
- my ($io, $op) = @_;
- return fcntl($io, $op, $_[2]);
-}
-
-# XXX undocumented
-sub ioctl {
- @_ == 3 || croak 'usage: $io->ioctl( OP, VALUE );';
- my ($io, $op) = @_;
- return ioctl($io, $op, $_[2]);
-}
-
-# this sub is for compatability with older releases of IO that used
-# a sub called constant to detemine if a constant existed -- GMB
-#
-# The SEEK_* and _IO?BF constants were the only constants at that time
-# any new code should just chech defined(&CONSTANT_NAME)
-
-sub constant {
- no strict 'refs';
- my $name = shift;
- (($name =~ /^(SEEK_(SET|CUR|END)|_IO[FLN]BF)$/) && defined &{$name})
- ? &{$name}() : undef;
-}
-
-
-# so that flush.pl can be deprecated
-
-sub printflush {
- my $io = shift;
- my $old = new SelectSaver qualify($io, caller) if ref($io);
- local $| = 1;
- if(ref($io)) {
- print $io @_;
- }
- else {
- print @_;
- }
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/IO/Seekable.pm b/Master/xemtex/perl/lib/IO/Seekable.pm
deleted file mode 100644
index 2ddee4d53ce..00000000000
--- a/Master/xemtex/perl/lib/IO/Seekable.pm
+++ /dev/null
@@ -1,128 +0,0 @@
-#
-
-package IO::Seekable;
-
-=head1 NAME
-
-IO::Seekable - supply seek based methods for I/O objects
-
-=head1 SYNOPSIS
-
- use IO::Seekable;
- package IO::Something;
- @ISA = qw(IO::Seekable);
-
-=head1 DESCRIPTION
-
-C<IO::Seekable> does not have a constructor of its own as it is intended to
-be inherited by other C<IO::Handle> based objects. It provides methods
-which allow seeking of the file descriptors.
-
-=over 4
-
-=item $io->getpos
-
-Returns an opaque value that represents the current position of the
-IO::File, or C<undef> if this is not possible (eg an unseekable stream such
-as a terminal, pipe or socket). If the fgetpos() function is available in
-your C library it is used to implements getpos, else perl emulates getpos
-using C's ftell() function.
-
-=item $io->setpos
-
-Uses the value of a previous getpos call to return to a previously visited
-position. Returns "0 but true" on success, C<undef> on failure.
-
-=back
-
-See L<perlfunc> for complete descriptions of each of the following
-supported C<IO::Seekable> methods, which are just front ends for the
-corresponding built-in functions:
-
-=over 4
-
-=item $io->seek ( POS, WHENCE )
-
-Seek the IO::File to position POS, relative to WHENCE:
-
-=over 8
-
-=item WHENCE=0 (SEEK_SET)
-
-POS is absolute position. (Seek relative to the start of the file)
-
-=item WHENCE=1 (SEEK_CUR)
-
-POS is an offset from the current position. (Seek relative to current)
-
-=item WHENCE=2 (SEEK_END)
-
-POS is an offset from the end of the file. (Seek relative to end)
-
-=back
-
-The SEEK_* constants can be imported from the C<Fcntl> module if you
-don't wish to use the numbers C<0> C<1> or C<2> in your code.
-
-Returns C<1> upon success, C<0> otherwise.
-
-=item $io->sysseek( POS, WHENCE )
-
-Similar to $io->seek, but sets the IO::File's position using the system
-call lseek(2) directly, so will confuse most perl IO operators except
-sysread and syswrite (see L<perlfunc> for full details)
-
-Returns the new position, or C<undef> on failure. A position
-of zero is returned as the string C<"0 but true">
-
-=item $io->tell
-
-Returns the IO::File's current position, or -1 on error.
-
-=back
-
-=head1 SEE ALSO
-
-L<perlfunc>,
-L<perlop/"I/O Operators">,
-L<IO::Handle>
-L<IO::File>
-
-=head1 HISTORY
-
-Derived from FileHandle.pm by Graham Barr E<lt>gbarr@pobox.comE<gt>
-
-=cut
-
-use 5.006_001;
-use Carp;
-use strict;
-our($VERSION, @EXPORT, @ISA);
-use IO::Handle ();
-# XXX we can't get these from IO::Handle or we'll get prototype
-# mismatch warnings on C<use POSIX; use IO::File;> :-(
-use Fcntl qw(SEEK_SET SEEK_CUR SEEK_END);
-require Exporter;
-
-@EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
-@ISA = qw(Exporter);
-
-$VERSION = "1.08_00";
-$VERSION = eval $VERSION;
-
-sub seek {
- @_ == 3 or croak 'usage: $io->seek(POS, WHENCE)';
- seek($_[0], $_[1], $_[2]);
-}
-
-sub sysseek {
- @_ == 3 or croak 'usage: $io->sysseek(POS, WHENCE)';
- sysseek($_[0], $_[1], $_[2]);
-}
-
-sub tell {
- @_ == 1 or croak 'usage: $io->tell()';
- tell($_[0]);
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/List/Util.pm b/Master/xemtex/perl/lib/List/Util.pm
deleted file mode 100644
index 7686ffe82cd..00000000000
--- a/Master/xemtex/perl/lib/List/Util.pm
+++ /dev/null
@@ -1,194 +0,0 @@
-# List::Util.pm
-#
-# Copyright (c) 1997-2001 Graham Barr <gbarr@pobox.com>. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package List::Util;
-
-require Exporter;
-require DynaLoader;
-
-our @ISA = qw(Exporter DynaLoader);
-our @EXPORT_OK = qw(first min max minstr maxstr reduce sum shuffle);
-our $VERSION = "1.07_00";
-our $XS_VERSION = $VERSION;
-$VERSION = eval $VERSION;
-
-bootstrap List::Util $XS_VERSION;
-
-1;
-
-__END__
-
-=head1 NAME
-
-List::Util - A selection of general-utility list subroutines
-
-=head1 SYNOPSIS
-
- use List::Util qw(first max maxstr min minstr reduce shuffle sum);
-
-=head1 DESCRIPTION
-
-C<List::Util> contains a selection of subroutines that people have
-expressed would be nice to have in the perl core, but the usage would
-not really be high enough to warrant the use of a keyword, and the size
-so small such that being individual extensions would be wasteful.
-
-By default C<List::Util> does not export any subroutines. The
-subroutines defined are
-
-=over 4
-
-=item first BLOCK LIST
-
-Similar to C<grep> in that it evaluates BLOCK setting C<$_> to each element
-of LIST in turn. C<first> returns the first element where the result from
-BLOCK is a true value. If BLOCK never returns true or LIST was empty then
-C<undef> is returned.
-
- $foo = first { defined($_) } @list # first defined value in @list
- $foo = first { $_ > $value } @list # first value in @list which
- # is greater than $value
-
-This function could be implemented using C<reduce> like this
-
- $foo = reduce { defined($a) ? $a : wanted($b) ? $b : undef } undef, @list
-
-for example wanted() could be defined() which would return the first
-defined value in @list
-
-=item max LIST
-
-Returns the entry in the list with the highest numerical value. If the
-list is empty then C<undef> is returned.
-
- $foo = max 1..10 # 10
- $foo = max 3,9,12 # 12
- $foo = max @bar, @baz # whatever
-
-This function could be implemented using C<reduce> like this
-
- $foo = reduce { $a > $b ? $a : $b } 1..10
-
-=item maxstr LIST
-
-Similar to C<max>, but treats all the entries in the list as strings
-and returns the highest string as defined by the C<gt> operator.
-If the list is empty then C<undef> is returned.
-
- $foo = maxstr 'A'..'Z' # 'Z'
- $foo = maxstr "hello","world" # "world"
- $foo = maxstr @bar, @baz # whatever
-
-This function could be implemented using C<reduce> like this
-
- $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z'
-
-=item min LIST
-
-Similar to C<max> but returns the entry in the list with the lowest
-numerical value. If the list is empty then C<undef> is returned.
-
- $foo = min 1..10 # 1
- $foo = min 3,9,12 # 3
- $foo = min @bar, @baz # whatever
-
-This function could be implemented using C<reduce> like this
-
- $foo = reduce { $a < $b ? $a : $b } 1..10
-
-=item minstr LIST
-
-Similar to C<min>, but treats all the entries in the list as strings
-and returns the lowest string as defined by the C<lt> operator.
-If the list is empty then C<undef> is returned.
-
- $foo = minstr 'A'..'Z' # 'A'
- $foo = minstr "hello","world" # "hello"
- $foo = minstr @bar, @baz # whatever
-
-This function could be implemented using C<reduce> like this
-
- $foo = reduce { $a lt $b ? $a : $b } 'A'..'Z'
-
-=item reduce BLOCK LIST
-
-Reduces LIST by calling BLOCK multiple times, setting C<$a> and C<$b>
-each time. The first call will be with C<$a> and C<$b> set to the first
-two elements of the list, subsequent calls will be done by
-setting C<$a> to the result of the previous call and C<$b> to the next
-element in the list.
-
-Returns the result of the last call to BLOCK. If LIST is empty then
-C<undef> is returned. If LIST only contains one element then that
-element is returned and BLOCK is not executed.
-
- $foo = reduce { $a < $b ? $a : $b } 1..10 # min
- $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr
- $foo = reduce { $a + $b } 1 .. 10 # sum
- $foo = reduce { $a . $b } @bar # concat
-
-=item shuffle LIST
-
-Returns the elements of LIST in a random order
-
- @cards = shuffle 0..51 # 0..51 in a random order
-
-=item sum LIST
-
-Returns the sum of all the elements in LIST.
-
- $foo = sum 1..10 # 55
- $foo = sum 3,9,12 # 24
- $foo = sum @bar, @baz # whatever
-
-This function could be implemented using C<reduce> like this
-
- $foo = reduce { $a + $b } 1..10
-
-=back
-
-=head1 KNOWN BUGS
-
-With perl versions prior to 5.005 there are some cases where reduce
-will return an incorrect result. This will show up as test 7 of
-reduce.t failing.
-
-=head1 SUGGESTED ADDITIONS
-
-The following are additions that have been requested, but I have been reluctant
-to add due to them being very simple to implement in perl
-
- # One argument is true
-
- sub any { $_ && return 1 for @_; 0 }
-
- # All arguments are true
-
- sub all { $_ || return 0 for @_; 1 }
-
- # All arguments are false
-
- sub none { $_ && return 0 for @_; 1 }
-
- # One argument is false
-
- sub notall { $_ || return 1 for @_; 0 }
-
- # How many elements are true
-
- sub true { scalar grep { $_ } @_ }
-
- # How many elements are false
-
- sub false { scalar grep { !$_ } @_ }
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-2001 Graham Barr <gbarr@pobox.com>. All rights reserved.
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/xemtex/perl/lib/POSIX.pm b/Master/xemtex/perl/lib/POSIX.pm
deleted file mode 100644
index 05634f01322..00000000000
--- a/Master/xemtex/perl/lib/POSIX.pm
+++ /dev/null
@@ -1,950 +0,0 @@
-package POSIX;
-
-our(@ISA, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD) = ();
-
-use AutoLoader;
-
-use XSLoader ();
-
-our $VERSION = "1.05" ;
-
-# Grandfather old foo_h form to new :foo_h form
-my $loaded;
-
-sub import {
- load_imports() unless $loaded++;
- my $this = shift;
- my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_;
- local $Exporter::ExportLevel = 1;
- Exporter::import($this,@list);
-}
-
-sub croak { require Carp; goto &Carp::croak }
-# declare usage to assist AutoLoad
-sub usage;
-
-XSLoader::load 'POSIX', $VERSION;
-
-my %NON_CONSTS = (map {($_,1)}
- qw(S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG WEXITSTATUS
- WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG));
-
-sub AUTOLOAD {
- if ($AUTOLOAD =~ /::(_?[a-z])/) {
- # require AutoLoader;
- $AutoLoader::AUTOLOAD = $AUTOLOAD;
- goto &AutoLoader::AUTOLOAD
- }
- local $! = 0;
- my $constname = $AUTOLOAD;
- $constname =~ s/.*:://;
- if ($NON_CONSTS{$constname}) {
- my ($val, $error) = &int_macro_int($constname, $_[0]);
- croak $error if $error;
- *$AUTOLOAD = sub { &int_macro_int($constname, $_[0]) };
- } else {
- my ($error, $val) = constant($constname);
- croak $error if $error;
- *$AUTOLOAD = sub { $val };
- }
-
- goto &$AUTOLOAD;
-}
-
-sub POSIX::SigAction::new {
- bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0}, $_[0];
-}
-
-1;
-__END__
-
-sub usage {
- my ($mess) = @_;
- croak "Usage: POSIX::$mess";
-}
-
-sub redef {
- my ($mess) = @_;
- croak "Use method $mess instead";
-}
-
-sub unimpl {
- my ($mess) = @_;
- $mess =~ s/xxx//;
- croak "Unimplemented: POSIX::$mess";
-}
-
-sub assert {
- usage "assert(expr)" if @_ != 1;
- if (!$_[0]) {
- croak "Assertion failed";
- }
-}
-
-sub tolower {
- usage "tolower(string)" if @_ != 1;
- lc($_[0]);
-}
-
-sub toupper {
- usage "toupper(string)" if @_ != 1;
- uc($_[0]);
-}
-
-sub closedir {
- usage "closedir(dirhandle)" if @_ != 1;
- CORE::closedir($_[0]);
-}
-
-sub opendir {
- usage "opendir(directory)" if @_ != 1;
- my $dirhandle;
- CORE::opendir($dirhandle, $_[0])
- ? $dirhandle
- : undef;
-}
-
-sub readdir {
- usage "readdir(dirhandle)" if @_ != 1;
- CORE::readdir($_[0]);
-}
-
-sub rewinddir {
- usage "rewinddir(dirhandle)" if @_ != 1;
- CORE::rewinddir($_[0]);
-}
-
-sub errno {
- usage "errno()" if @_ != 0;
- $! + 0;
-}
-
-sub creat {
- usage "creat(filename, mode)" if @_ != 2;
- &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]);
-}
-
-sub fcntl {
- usage "fcntl(filehandle, cmd, arg)" if @_ != 3;
- CORE::fcntl($_[0], $_[1], $_[2]);
-}
-
-sub getgrgid {
- usage "getgrgid(gid)" if @_ != 1;
- CORE::getgrgid($_[0]);
-}
-
-sub getgrnam {
- usage "getgrnam(name)" if @_ != 1;
- CORE::getgrnam($_[0]);
-}
-
-sub atan2 {
- usage "atan2(x,y)" if @_ != 2;
- CORE::atan2($_[0], $_[1]);
-}
-
-sub cos {
- usage "cos(x)" if @_ != 1;
- CORE::cos($_[0]);
-}
-
-sub exp {
- usage "exp(x)" if @_ != 1;
- CORE::exp($_[0]);
-}
-
-sub fabs {
- usage "fabs(x)" if @_ != 1;
- CORE::abs($_[0]);
-}
-
-sub log {
- usage "log(x)" if @_ != 1;
- CORE::log($_[0]);
-}
-
-sub pow {
- usage "pow(x,exponent)" if @_ != 2;
- $_[0] ** $_[1];
-}
-
-sub sin {
- usage "sin(x)" if @_ != 1;
- CORE::sin($_[0]);
-}
-
-sub sqrt {
- usage "sqrt(x)" if @_ != 1;
- CORE::sqrt($_[0]);
-}
-
-sub getpwnam {
- usage "getpwnam(name)" if @_ != 1;
- CORE::getpwnam($_[0]);
-}
-
-sub getpwuid {
- usage "getpwuid(uid)" if @_ != 1;
- CORE::getpwuid($_[0]);
-}
-
-sub longjmp {
- unimpl "longjmp() is C-specific: use die instead";
-}
-
-sub setjmp {
- unimpl "setjmp() is C-specific: use eval {} instead";
-}
-
-sub siglongjmp {
- unimpl "siglongjmp() is C-specific: use die instead";
-}
-
-sub sigsetjmp {
- unimpl "sigsetjmp() is C-specific: use eval {} instead";
-}
-
-sub kill {
- usage "kill(pid, sig)" if @_ != 2;
- CORE::kill $_[1], $_[0];
-}
-
-sub raise {
- usage "raise(sig)" if @_ != 1;
- CORE::kill $_[0], $$; # Is this good enough?
-}
-
-sub offsetof {
- unimpl "offsetof() is C-specific, stopped";
-}
-
-sub clearerr {
- redef "IO::Handle::clearerr()";
-}
-
-sub fclose {
- redef "IO::Handle::close()";
-}
-
-sub fdopen {
- redef "IO::Handle::new_from_fd()";
-}
-
-sub feof {
- redef "IO::Handle::eof()";
-}
-
-sub fgetc {
- redef "IO::Handle::getc()";
-}
-
-sub fgets {
- redef "IO::Handle::gets()";
-}
-
-sub fileno {
- redef "IO::Handle::fileno()";
-}
-
-sub fopen {
- redef "IO::File::open()";
-}
-
-sub fprintf {
- unimpl "fprintf() is C-specific--use printf instead";
-}
-
-sub fputc {
- unimpl "fputc() is C-specific--use print instead";
-}
-
-sub fputs {
- unimpl "fputs() is C-specific--use print instead";
-}
-
-sub fread {
- unimpl "fread() is C-specific--use read instead";
-}
-
-sub freopen {
- unimpl "freopen() is C-specific--use open instead";
-}
-
-sub fscanf {
- unimpl "fscanf() is C-specific--use <> and regular expressions instead";
-}
-
-sub fseek {
- redef "IO::Seekable::seek()";
-}
-
-sub ferror {
- redef "IO::Handle::error()";
-}
-
-sub fflush {
- redef "IO::Handle::flush()";
-}
-
-sub fgetpos {
- redef "IO::Seekable::getpos()";
-}
-
-sub fsetpos {
- redef "IO::Seekable::setpos()";
-}
-
-sub ftell {
- redef "IO::Seekable::tell()";
-}
-
-sub fwrite {
- unimpl "fwrite() is C-specific--use print instead";
-}
-
-sub getc {
- usage "getc(handle)" if @_ != 1;
- CORE::getc($_[0]);
-}
-
-sub getchar {
- usage "getchar()" if @_ != 0;
- CORE::getc(STDIN);
-}
-
-sub gets {
- usage "gets()" if @_ != 0;
- scalar <STDIN>;
-}
-
-sub perror {
- print STDERR "@_: " if @_;
- print STDERR $!,"\n";
-}
-
-sub printf {
- usage "printf(pattern, args...)" if @_ < 1;
- CORE::printf STDOUT @_;
-}
-
-sub putc {
- unimpl "putc() is C-specific--use print instead";
-}
-
-sub putchar {
- unimpl "putchar() is C-specific--use print instead";
-}
-
-sub puts {
- unimpl "puts() is C-specific--use print instead";
-}
-
-sub remove {
- usage "remove(filename)" if @_ != 1;
- CORE::unlink($_[0]);
-}
-
-sub rename {
- usage "rename(oldfilename, newfilename)" if @_ != 2;
- CORE::rename($_[0], $_[1]);
-}
-
-sub rewind {
- usage "rewind(filehandle)" if @_ != 1;
- CORE::seek($_[0],0,0);
-}
-
-sub scanf {
- unimpl "scanf() is C-specific--use <> and regular expressions instead";
-}
-
-sub sprintf {
- usage "sprintf(pattern,args)" if @_ == 0;
- CORE::sprintf(shift,@_);
-}
-
-sub sscanf {
- unimpl "sscanf() is C-specific--use regular expressions instead";
-}
-
-sub tmpfile {
- redef "IO::File::new_tmpfile()";
-}
-
-sub ungetc {
- redef "IO::Handle::ungetc()";
-}
-
-sub vfprintf {
- unimpl "vfprintf() is C-specific";
-}
-
-sub vprintf {
- unimpl "vprintf() is C-specific";
-}
-
-sub vsprintf {
- unimpl "vsprintf() is C-specific";
-}
-
-sub abs {
- usage "abs(x)" if @_ != 1;
- CORE::abs($_[0]);
-}
-
-sub atexit {
- unimpl "atexit() is C-specific: use END {} instead";
-}
-
-sub atof {
- unimpl "atof() is C-specific, stopped";
-}
-
-sub atoi {
- unimpl "atoi() is C-specific, stopped";
-}
-
-sub atol {
- unimpl "atol() is C-specific, stopped";
-}
-
-sub bsearch {
- unimpl "bsearch() not supplied";
-}
-
-sub calloc {
- unimpl "calloc() is C-specific, stopped";
-}
-
-sub div {
- unimpl "div() is C-specific, stopped";
-}
-
-sub exit {
- usage "exit(status)" if @_ != 1;
- CORE::exit($_[0]);
-}
-
-sub free {
- unimpl "free() is C-specific, stopped";
-}
-
-sub getenv {
- usage "getenv(name)" if @_ != 1;
- $ENV{$_[0]};
-}
-
-sub labs {
- unimpl "labs() is C-specific, use abs instead";
-}
-
-sub ldiv {
- unimpl "ldiv() is C-specific, use / and int instead";
-}
-
-sub malloc {
- unimpl "malloc() is C-specific, stopped";
-}
-
-sub qsort {
- unimpl "qsort() is C-specific, use sort instead";
-}
-
-sub rand {
- unimpl "rand() is non-portable, use Perl's rand instead";
-}
-
-sub realloc {
- unimpl "realloc() is C-specific, stopped";
-}
-
-sub srand {
- unimpl "srand()";
-}
-
-sub system {
- usage "system(command)" if @_ != 1;
- CORE::system($_[0]);
-}
-
-sub memchr {
- unimpl "memchr() is C-specific, use index() instead";
-}
-
-sub memcmp {
- unimpl "memcmp() is C-specific, use eq instead";
-}
-
-sub memcpy {
- unimpl "memcpy() is C-specific, use = instead";
-}
-
-sub memmove {
- unimpl "memmove() is C-specific, use = instead";
-}
-
-sub memset {
- unimpl "memset() is C-specific, use x instead";
-}
-
-sub strcat {
- unimpl "strcat() is C-specific, use .= instead";
-}
-
-sub strchr {
- unimpl "strchr() is C-specific, use index() instead";
-}
-
-sub strcmp {
- unimpl "strcmp() is C-specific, use eq instead";
-}
-
-sub strcpy {
- unimpl "strcpy() is C-specific, use = instead";
-}
-
-sub strcspn {
- unimpl "strcspn() is C-specific, use regular expressions instead";
-}
-
-sub strerror {
- usage "strerror(errno)" if @_ != 1;
- local $! = $_[0];
- $! . "";
-}
-
-sub strlen {
- unimpl "strlen() is C-specific, use length instead";
-}
-
-sub strncat {
- unimpl "strncat() is C-specific, use .= instead";
-}
-
-sub strncmp {
- unimpl "strncmp() is C-specific, use eq instead";
-}
-
-sub strncpy {
- unimpl "strncpy() is C-specific, use = instead";
-}
-
-sub strpbrk {
- unimpl "strpbrk() is C-specific, stopped";
-}
-
-sub strrchr {
- unimpl "strrchr() is C-specific, use rindex() instead";
-}
-
-sub strspn {
- unimpl "strspn() is C-specific, stopped";
-}
-
-sub strstr {
- usage "strstr(big, little)" if @_ != 2;
- CORE::index($_[0], $_[1]);
-}
-
-sub strtok {
- unimpl "strtok() is C-specific, stopped";
-}
-
-sub chmod {
- usage "chmod(mode, filename)" if @_ != 2;
- CORE::chmod($_[0], $_[1]);
-}
-
-sub fstat {
- usage "fstat(fd)" if @_ != 1;
- local *TMP;
- CORE::open(TMP, "<&$_[0]"); # Gross.
- my @l = CORE::stat(TMP);
- CORE::close(TMP);
- @l;
-}
-
-sub mkdir {
- usage "mkdir(directoryname, mode)" if @_ != 2;
- CORE::mkdir($_[0], $_[1]);
-}
-
-sub stat {
- usage "stat(filename)" if @_ != 1;
- CORE::stat($_[0]);
-}
-
-sub umask {
- usage "umask(mask)" if @_ != 1;
- CORE::umask($_[0]);
-}
-
-sub wait {
- usage "wait()" if @_ != 0;
- CORE::wait();
-}
-
-sub waitpid {
- usage "waitpid(pid, options)" if @_ != 2;
- CORE::waitpid($_[0], $_[1]);
-}
-
-sub gmtime {
- usage "gmtime(time)" if @_ != 1;
- CORE::gmtime($_[0]);
-}
-
-sub localtime {
- usage "localtime(time)" if @_ != 1;
- CORE::localtime($_[0]);
-}
-
-sub time {
- usage "time()" if @_ != 0;
- CORE::time;
-}
-
-sub alarm {
- usage "alarm(seconds)" if @_ != 1;
- CORE::alarm($_[0]);
-}
-
-sub chdir {
- usage "chdir(directory)" if @_ != 1;
- CORE::chdir($_[0]);
-}
-
-sub chown {
- usage "chown(filename, uid, gid)" if @_ != 3;
- CORE::chown($_[0], $_[1], $_[2]);
-}
-
-sub execl {
- unimpl "execl() is C-specific, stopped";
-}
-
-sub execle {
- unimpl "execle() is C-specific, stopped";
-}
-
-sub execlp {
- unimpl "execlp() is C-specific, stopped";
-}
-
-sub execv {
- unimpl "execv() is C-specific, stopped";
-}
-
-sub execve {
- unimpl "execve() is C-specific, stopped";
-}
-
-sub execvp {
- unimpl "execvp() is C-specific, stopped";
-}
-
-sub fork {
- usage "fork()" if @_ != 0;
- CORE::fork;
-}
-
-sub getegid {
- usage "getegid()" if @_ != 0;
- $) + 0;
-}
-
-sub geteuid {
- usage "geteuid()" if @_ != 0;
- $> + 0;
-}
-
-sub getgid {
- usage "getgid()" if @_ != 0;
- $( + 0;
-}
-
-sub getgroups {
- usage "getgroups()" if @_ != 0;
- my %seen;
- grep(!$seen{$_}++, split(' ', $) ));
-}
-
-sub getlogin {
- usage "getlogin()" if @_ != 0;
- CORE::getlogin();
-}
-
-sub getpgrp {
- usage "getpgrp()" if @_ != 0;
- CORE::getpgrp;
-}
-
-sub getpid {
- usage "getpid()" if @_ != 0;
- $$;
-}
-
-sub getppid {
- usage "getppid()" if @_ != 0;
- CORE::getppid;
-}
-
-sub getuid {
- usage "getuid()" if @_ != 0;
- $<;
-}
-
-sub isatty {
- usage "isatty(filehandle)" if @_ != 1;
- -t $_[0];
-}
-
-sub link {
- usage "link(oldfilename, newfilename)" if @_ != 2;
- CORE::link($_[0], $_[1]);
-}
-
-sub rmdir {
- usage "rmdir(directoryname)" if @_ != 1;
- CORE::rmdir($_[0]);
-}
-
-sub setbuf {
- redef "IO::Handle::setbuf()";
-}
-
-sub setvbuf {
- redef "IO::Handle::setvbuf()";
-}
-
-sub sleep {
- usage "sleep(seconds)" if @_ != 1;
- $_[0] - CORE::sleep($_[0]);
-}
-
-sub unlink {
- usage "unlink(filename)" if @_ != 1;
- CORE::unlink($_[0]);
-}
-
-sub utime {
- usage "utime(filename, atime, mtime)" if @_ != 3;
- CORE::utime($_[1], $_[2], $_[0]);
-}
-
-sub load_imports {
-%EXPORT_TAGS = (
-
- assert_h => [qw(assert NDEBUG)],
-
- ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
- isprint ispunct isspace isupper isxdigit tolower toupper)],
-
- dirent_h => [],
-
- errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT
- EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED
- ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT
- EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS
- EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH
- ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM
- ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
- ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM
- EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE
- ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT
- ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY
- EUSERS EWOULDBLOCK EXDEV errno)],
-
- fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK
- F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK
- O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
- O_RDONLY O_RDWR O_TRUNC O_WRONLY
- creat
- SEEK_CUR SEEK_END SEEK_SET
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
- S_IWGRP S_IWOTH S_IWUSR)],
-
- float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
- DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP
- DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP
- FLT_DIG FLT_EPSILON FLT_MANT_DIG
- FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP
- FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP
- FLT_RADIX FLT_ROUNDS
- LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG
- LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP
- LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)],
-
- grp_h => [],
-
- limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX
- INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON
- MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX
- PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN
- SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX
- ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX
- _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT
- _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX
- _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX
- _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)],
-
- locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
- LC_MONETARY LC_NUMERIC LC_TIME NULL
- localeconv setlocale)],
-
- math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
- frexp ldexp log10 modf pow sinh tan tanh)],
-
- pwd_h => [],
-
- setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)],
-
- signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK
- SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM
- SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL
- SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN
- SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR
- SIG_IGN SIG_SETMASK SIG_UNBLOCK raise sigaction signal
- sigpending sigprocmask sigsuspend)],
-
- stdarg_h => [],
-
- stddef_h => [qw(NULL offsetof)],
-
- stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid
- L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET
- STREAM_MAX TMP_MAX stderr stdin stdout
- clearerr fclose fdopen feof ferror fflush fgetc fgetpos
- fgets fopen fprintf fputc fputs fread freopen
- fscanf fseek fsetpos ftell fwrite getchar gets
- perror putc putchar puts remove rewind
- scanf setbuf setvbuf sscanf tmpfile tmpnam
- ungetc vfprintf vprintf vsprintf)],
-
- stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX
- abort atexit atof atoi atol bsearch calloc div
- free getenv labs ldiv malloc mblen mbstowcs mbtowc
- qsort realloc strtod strtol strtoul wcstombs wctomb)],
-
- string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat
- strchr strcmp strcoll strcpy strcspn strerror strlen
- strncat strncmp strncpy strpbrk strrchr strspn strstr
- strtok strxfrm)],
-
- sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
- S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
- fstat mkfifo)],
-
- sys_times_h => [],
-
- sys_types_h => [],
-
- sys_utsname_h => [qw(uname)],
-
- sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED
- WNOHANG WSTOPSIG WTERMSIG WUNTRACED)],
-
- termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400
- B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL
- CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK
- ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR
- INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST
- PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION
- TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
- TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART
- VSTOP VSUSP VTIME
- cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain
- tcflow tcflush tcgetattr tcsendbreak tcsetattr )],
-
- time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime
- difftime mktime strftime tzset tzname)],
-
- unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK
- _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON
- _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX
- _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED
- _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS
- _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX
- _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL
- _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS
- _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
- _exit access ctermid cuserid
- dup2 dup execl execle execlp execv execve execvp
- fpathconf getcwd getegid geteuid getgid getgroups
- getpid getuid isatty lseek pathconf pause setgid setpgid
- setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)],
-
- utime_h => [],
-
-);
-
-# Exporter::export_tags();
-for (values %EXPORT_TAGS) {
- push @EXPORT, @$_;
-}
-
-@EXPORT_OK = qw(
- abs
- alarm
- atan2
- chdir
- chmod
- chown
- close
- closedir
- cos
- exit
- exp
- fcntl
- fileno
- fork
- getc
- getgrgid
- getgrnam
- getlogin
- getpgrp
- getppid
- getpwnam
- getpwuid
- gmtime
- isatty
- kill
- link
- localtime
- log
- mkdir
- nice
- open
- opendir
- pipe
- printf
- rand
- read
- readdir
- rename
- rewinddir
- rmdir
- sin
- sleep
- sprintf
- sqrt
- srand
- stat
- system
- time
- times
- umask
- unlink
- utime
- wait
- waitpid
- write
-);
-
-require Exporter;
-}
diff --git a/Master/xemtex/perl/lib/SDBM_File.pm b/Master/xemtex/perl/lib/SDBM_File.pm
deleted file mode 100644
index ee82a54145d..00000000000
--- a/Master/xemtex/perl/lib/SDBM_File.pm
+++ /dev/null
@@ -1,116 +0,0 @@
-package SDBM_File;
-
-use strict;
-use warnings;
-
-require Tie::Hash;
-use XSLoader ();
-
-our @ISA = qw(Tie::Hash);
-our $VERSION = "1.03" ;
-
-XSLoader::load 'SDBM_File', $VERSION;
-
-1;
-
-__END__
-
-=head1 NAME
-
-SDBM_File - Tied access to sdbm files
-
-=head1 SYNOPSIS
-
- use Fcntl; # For O_RDWR, O_CREAT, etc.
- use SDBM_File;
-
- tie(%h, 'SDBM_File', 'filename', O_RDWR|O_CREAT, 0666)
- or die "Couldn't tie SDBM file 'filename': $!; aborting";
-
- # Now read and change the hash
- $h{newkey} = newvalue;
- print $h{oldkey};
- ...
-
- untie %h;
-
-=head1 DESCRIPTION
-
-C<SDBM_File> establishes a connection between a Perl hash variable and
-a file in SDBM_File format;. You can manipulate the data in the file
-just as if it were in a Perl hash, but when your program exits, the
-data will remain in the file, to be used the next time your program
-runs.
-
-Use C<SDBM_File> with the Perl built-in C<tie> function to establish
-the connection between the variable and the file. The arguments to
-C<tie> should be:
-
-=over 4
-
-=item 1.
-
-The hash variable you want to tie.
-
-=item 2.
-
-The string C<"SDBM_File">. (Ths tells Perl to use the C<SDBM_File>
-package to perform the functions of the hash.)
-
-=item 3.
-
-The name of the file you want to tie to the hash.
-
-=item 4.
-
-Flags. Use one of:
-
-=over 2
-
-=item C<O_RDONLY>
-
-Read-only access to the data in the file.
-
-=item C<O_WRONLY>
-
-Write-only access to the data in the file.
-
-=item C<O_RDWR>
-
-Both read and write access.
-
-=back
-
-If you want to create the file if it does not exist, add C<O_CREAT> to
-any of these, as in the example. If you omit C<O_CREAT> and the file
-does not already exist, the C<tie> call will fail.
-
-=item 5.
-
-The default permissions to use if a new file is created. The actual
-permissions will be modified by the user's umask, so you should
-probably use 0666 here. (See L<perlfunc/umask>.)
-
-=back
-
-=head1 DIAGNOSTICS
-
-On failure, the C<tie> call returns an undefined value and probably
-sets C<$!> to contain the reason the file could not be tied.
-
-=head2 C<sdbm store returned -1, errno 22, key "..." at ...>
-
-This warning is emmitted when you try to store a key or a value that
-is too long. It means that the change was not recorded in the
-database. See BUGS AND WARNINGS below.
-
-=head1 BUGS AND WARNINGS
-
-There are a number of limits on the size of the data that you can
-store in the SDBM file. The most important is that the length of a
-key, plus the length of its associated value, may not exceed 1008
-bytes.
-
-See L<perlfunc/tie>, L<perldbmfilter>, L<Fcntl>
-
-=cut
diff --git a/Master/xemtex/perl/lib/Scalar/Util.pm b/Master/xemtex/perl/lib/Scalar/Util.pm
deleted file mode 100644
index e518a4c445a..00000000000
--- a/Master/xemtex/perl/lib/Scalar/Util.pm
+++ /dev/null
@@ -1,170 +0,0 @@
-# Scalar::Util.pm
-#
-# Copyright (c) 1997-2001 Graham Barr <gbarr@pobox.com>. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package Scalar::Util;
-
-require Exporter;
-require List::Util; # List::Util loads the XS
-
-our @ISA = qw(Exporter);
-our @EXPORT_OK = qw(blessed dualvar reftype weaken isweak tainted readonly openhandle);
-our $VERSION = $List::Util::VERSION;
-
-sub openhandle ($) {
- my $fh = shift;
- my $rt = reftype($fh) || '';
-
- return defined(fileno($fh)) ? $fh : undef
- if $rt eq 'IO';
-
- if (reftype(\$fh) eq 'GLOB') { # handle openhandle(*DATA)
- $fh = \(my $tmp=$fh);
- }
- elsif ($rt ne 'GLOB') {
- return undef;
- }
-
- (tied(*$fh) or defined(fileno($fh)))
- ? $fh : undef;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Scalar::Util - A selection of general-utility scalar subroutines
-
-=head1 SYNOPSIS
-
- use Scalar::Util qw(blessed dualvar isweak readonly reftype tainted weaken);
-
-=head1 DESCRIPTION
-
-C<Scalar::Util> contains a selection of subroutines that people have
-expressed would be nice to have in the perl core, but the usage would
-not really be high enough to warrant the use of a keyword, and the size
-so small such that being individual extensions would be wasteful.
-
-By default C<Scalar::Util> does not export any subroutines. The
-subroutines defined are
-
-=over 4
-
-=item blessed EXPR
-
-If EXPR evaluates to a blessed reference the name of the package
-that it is blessed into is returned. Otherwise C<undef> is returned.
-
- $scalar = "foo";
- $class = blessed $scalar; # undef
-
- $ref = [];
- $class = blessed $ref; # undef
-
- $obj = bless [], "Foo";
- $class = blessed $obj; # "Foo"
-
-=item dualvar NUM, STRING
-
-Returns a scalar that has the value NUM in a numeric context and the
-value STRING in a string context.
-
- $foo = dualvar 10, "Hello";
- $num = $foo + 2; # 12
- $str = $foo . " world"; # Hello world
-
-=item isweak EXPR
-
-If EXPR is a scalar which is a weak reference the result is true.
-
- $ref = \$foo;
- $weak = isweak($ref); # false
- weaken($ref);
- $weak = isweak($ref); # true
-
-=item openhandle FH
-
-Returns FH if FH may be used as a filehandle and is open, or FH is a tied
-handle. Otherwise C<undef> is returned.
-
- $fh = openhandle(*STDIN); # \*STDIN
- $fh = openhandle(\*STDIN); # \*STDIN
- $fh = openhandle(*NOTOPEN); # undef
- $fh = openhandle("scalar"); # undef
-
-=item readonly SCALAR
-
-Returns true if SCALAR is readonly.
-
- sub foo { readonly($_[0]) }
-
- $readonly = foo($bar); # false
- $readonly = foo(0); # true
-
-=item reftype EXPR
-
-If EXPR evaluates to a reference the type of the variable referenced
-is returned. Otherwise C<undef> is returned.
-
- $type = reftype "string"; # undef
- $type = reftype \$var; # SCALAR
- $type = reftype []; # ARRAY
-
- $obj = bless {}, "Foo";
- $type = reftype $obj; # HASH
-
-=item tainted EXPR
-
-Return true if the result of EXPR is tainted
-
- $taint = tainted("constant"); # false
- $taint = tainted($ENV{PWD}); # true if running under -T
-
-=item weaken REF
-
-REF will be turned into a weak reference. This means that it will not
-hold a reference count on the object it references. Also when the reference
-count on that object reaches zero, REF will be set to undef.
-
-This is useful for keeping copies of references , but you don't want to
-prevent the object being DESTROY-ed at its usual time.
-
- {
- my $var;
- $ref = \$var;
- weaken($ref); # Make $ref a weak reference
- }
- # $ref is now undef
-
-=back
-
-=head1 KNOWN BUGS
-
-There is a bug in perl5.6.0 with UV's that are >= 1<<31. This will
-show up as tests 8 and 9 of dualvar.t failing
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-2001 Graham Barr <gbarr@pobox.com>. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-Except weaken and isweak which are
-
-Copyright (c) 1999 Tuomas J. Lukka <lukka@iki.fi>. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as perl itself.
-
-=head1 BLATANT PLUG
-
-The weaken and isweak subroutines in this module and the patch to the core Perl
-were written in connection with the APress book `Tuomas J. Lukka's Definitive
-Guide to Object-Oriented Programming in Perl', to avoid explaining why certain
-things would have to be done in cumbersome ways.
-
-=cut
diff --git a/Master/xemtex/perl/lib/SelectSaver.pm b/Master/xemtex/perl/lib/SelectSaver.pm
deleted file mode 100644
index 08104f47d4c..00000000000
--- a/Master/xemtex/perl/lib/SelectSaver.pm
+++ /dev/null
@@ -1,54 +0,0 @@
-package SelectSaver;
-
-our $VERSION = '1.00';
-
-=head1 NAME
-
-SelectSaver - save and restore selected file handle
-
-=head1 SYNOPSIS
-
- use SelectSaver;
-
- {
- my $saver = new SelectSaver(FILEHANDLE);
- # FILEHANDLE is selected
- }
- # previous handle is selected
-
- {
- my $saver = new SelectSaver;
- # new handle may be selected, or not
- }
- # previous handle is selected
-
-=head1 DESCRIPTION
-
-A C<SelectSaver> object contains a reference to the file handle that
-was selected when it was created. If its C<new> method gets an extra
-parameter, then that parameter is selected; otherwise, the selected
-file handle remains unchanged.
-
-When a C<SelectSaver> is destroyed, it re-selects the file handle
-that was selected when it was created.
-
-=cut
-
-require 5.000;
-use Carp;
-use Symbol;
-
-sub new {
- @_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]';
- my $fh = select;
- my $self = bless [$fh], $_[0];
- select qualify($_[1], caller) if @_ > 1;
- $self;
-}
-
-sub DESTROY {
- my $this = $_[0];
- select $$this[0];
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/Symbol.pm b/Master/xemtex/perl/lib/Symbol.pm
deleted file mode 100644
index 98fb6763fe6..00000000000
--- a/Master/xemtex/perl/lib/Symbol.pm
+++ /dev/null
@@ -1,162 +0,0 @@
-package Symbol;
-
-=head1 NAME
-
-Symbol - manipulate Perl symbols and their names
-
-=head1 SYNOPSIS
-
- use Symbol;
-
- $sym = gensym;
- open($sym, "filename");
- $_ = <$sym>;
- # etc.
-
- ungensym $sym; # no effect
-
- # replace *FOO{IO} handle but not $FOO, %FOO, etc.
- *FOO = geniosym;
-
- print qualify("x"), "\n"; # "Test::x"
- print qualify("x", "FOO"), "\n" # "FOO::x"
- print qualify("BAR::x"), "\n"; # "BAR::x"
- print qualify("BAR::x", "FOO"), "\n"; # "BAR::x"
- print qualify("STDOUT", "FOO"), "\n"; # "main::STDOUT" (global)
- print qualify(\*x), "\n"; # returns \*x
- print qualify(\*x, "FOO"), "\n"; # returns \*x
-
- use strict refs;
- print { qualify_to_ref $fh } "foo!\n";
- $ref = qualify_to_ref $name, $pkg;
-
- use Symbol qw(delete_package);
- delete_package('Foo::Bar');
- print "deleted\n" unless exists $Foo::{'Bar::'};
-
-
-=head1 DESCRIPTION
-
-C<Symbol::gensym> creates an anonymous glob and returns a reference
-to it. Such a glob reference can be used as a file or directory
-handle.
-
-For backward compatibility with older implementations that didn't
-support anonymous globs, C<Symbol::ungensym> is also provided.
-But it doesn't do anything.
-
-C<Symbol::geniosym> creates an anonymous IO handle. This can be
-assigned into an existing glob without affecting the non-IO portions
-of the glob.
-
-C<Symbol::qualify> turns unqualified symbol names into qualified
-variable names (e.g. "myvar" -E<gt> "MyPackage::myvar"). If it is given a
-second parameter, C<qualify> uses it as the default package;
-otherwise, it uses the package of its caller. Regardless, global
-variable names (e.g. "STDOUT", "ENV", "SIG") are always qualified with
-"main::".
-
-Qualification applies only to symbol names (strings). References are
-left unchanged under the assumption that they are glob references,
-which are qualified by their nature.
-
-C<Symbol::qualify_to_ref> is just like C<Symbol::qualify> except that it
-returns a glob ref rather than a symbol name, so you can use the result
-even if C<use strict 'refs'> is in effect.
-
-C<Symbol::delete_package> wipes out a whole package namespace. Note
-this routine is not exported by default--you may want to import it
-explicitly.
-
-=cut
-
-BEGIN { require 5.005; }
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(gensym ungensym qualify qualify_to_ref);
-@EXPORT_OK = qw(delete_package geniosym);
-
-$VERSION = 1.04;
-
-my $genpkg = "Symbol::";
-my $genseq = 0;
-
-my %global = map {$_ => 1} qw(ARGV ARGVOUT ENV INC SIG STDERR STDIN STDOUT);
-
-#
-# Note that we never _copy_ the glob; we just make a ref to it.
-# If we did copy it, then SVf_FAKE would be set on the copy, and
-# glob-specific behaviors (e.g. C<*$ref = \&func>) wouldn't work.
-#
-sub gensym () {
- my $name = "GEN" . $genseq++;
- my $ref = \*{$genpkg . $name};
- delete $$genpkg{$name};
- $ref;
-}
-
-sub geniosym () {
- my $sym = gensym();
- # force the IO slot to be filled
- select(select $sym);
- *$sym{IO};
-}
-
-sub ungensym ($) {}
-
-sub qualify ($;$) {
- my ($name) = @_;
- if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) {
- my $pkg;
- # Global names: special character, "^xyz", or other.
- if ($name =~ /^(([^a-z])|(\^[a-z_]+))\z/i || $global{$name}) {
- # RGS 2001-11-05 : translate leading ^X to control-char
- $name =~ s/^\^([a-z_])/'qq(\c'.$1.')'/eei;
- $pkg = "main";
- }
- else {
- $pkg = (@_ > 1) ? $_[1] : caller;
- }
- $name = $pkg . "::" . $name;
- }
- $name;
-}
-
-sub qualify_to_ref ($;$) {
- return \*{ qualify $_[0], @_ > 1 ? $_[1] : caller };
-}
-
-#
-# of Safe.pm lineage
-#
-sub delete_package ($) {
- my $pkg = shift;
-
- # expand to full symbol table name if needed
-
- unless ($pkg =~ /^main::.*::$/) {
- $pkg = "main$pkg" if $pkg =~ /^::/;
- $pkg = "main::$pkg" unless $pkg =~ /^main::/;
- $pkg .= '::' unless $pkg =~ /::$/;
- }
-
- my($stem, $leaf) = $pkg =~ m/(.*::)(\w+::)$/;
- my $stem_symtab = *{$stem}{HASH};
- return unless defined $stem_symtab and exists $stem_symtab->{$leaf};
-
-
- # free all the symbols in the package
-
- my $leaf_symtab = *{$stem_symtab->{$leaf}}{HASH};
- foreach my $name (keys %$leaf_symtab) {
- undef *{$pkg . $name};
- }
-
- # delete the symbol table
-
- %$leaf_symtab = ();
- delete $stem_symtab->{$leaf};
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/Term/Cap.pm b/Master/xemtex/perl/lib/Term/Cap.pm
deleted file mode 100644
index 03d2573d853..00000000000
--- a/Master/xemtex/perl/lib/Term/Cap.pm
+++ /dev/null
@@ -1,651 +0,0 @@
-package Term::Cap;
-
-use Carp;
-use strict;
-
-use vars qw($VERSION $VMS_TERMCAP);
-use vars qw($termpat $state $first $entry);
-
-$VERSION = '1.07';
-
-# Version undef: Thu Dec 14 20:02:42 CST 1995 by sanders@bsdi.com
-# Version 1.00: Thu Nov 30 23:34:29 EST 2000 by schwern@pobox.com
-# [PATCH] $VERSION crusade, strict, tests, etc... all over lib/
-# Version 1.01: Wed May 23 00:00:00 CST 2001 by d-lewart@uiuc.edu
-# Avoid warnings in Tgetent and Tputs
-# Version 1.02: Sat Nov 17 13:50:39 GMT 2001 by jns@gellyfish.com
-# Altered layout of the POD
-# Added Test::More to PREREQ_PM in Makefile.PL
-# Fixed no argument Tgetent()
-# Version 1.03: Wed Nov 28 10:09:38 GMT 2001
-# VMS Support from Charles Lane <lane@DUPHY4.Physics.Drexel.Edu>
-# Version 1.04: Thu Nov 29 16:22:03 GMT 2001
-# Fixed warnings in test
-# Version 1.05: Mon Dec 3 15:33:49 GMT 2001
-# Don't try to fall back on infocmp if it's not there. From chromatic.
-# Version 1.06: Thu Dec 6 18:43:22 GMT 2001
-# Preload the default VMS termcap from Charles Lane
-# Don't carp at setting OSPEED unless warnings are on.
-# Version 1.07: Wed Jan 2 21:35:09 GMT 2002
-# Sanity check on infocmp output from Norton Allen
-# Repaired INSTALLDIRS thanks to Michael Schwern
-
-# TODO:
-# support Berkeley DB termcaps
-# should probably be a .xs module
-# force $FH into callers package?
-# keep $FH in object at Tgetent time?
-
-=head1 NAME
-
-Term::Cap - Perl termcap interface
-
-=head1 SYNOPSIS
-
- require Term::Cap;
- $terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
- $terminal->Trequire(qw/ce ku kd/);
- $terminal->Tgoto('cm', $col, $row, $FH);
- $terminal->Tputs('dl', $count, $FH);
- $terminal->Tpad($string, $count, $FH);
-
-=head1 DESCRIPTION
-
-These are low-level functions to extract and use capabilities from
-a terminal capability (termcap) database.
-
-More information on the terminal capabilities will be found in the
-termcap manpage on most Unix-like systems.
-
-=head2 METHODS
-
-=over 4
-
-The output strings for B<Tputs> are cached for counts of 1 for performance.
-B<Tgoto> and B<Tpad> do not cache. C<$self-E<gt>{_xx}> is the raw termcap
-data and C<$self-E<gt>{xx}> is the cached version.
-
- print $terminal->Tpad($self->{_xx}, 1);
-
-B<Tgoto>, B<Tputs>, and B<Tpad> return the string and will also
-output the string to $FH if specified.
-
-
-=cut
-
-# Preload the default VMS termcap.
-# If a different termcap is required then the text of one can be supplied
-# in $Term::Cap::VMS_TERMCAP before Tgetent is called.
-
-if ( $^O eq 'VMS') {
- chomp (my @entry = <DATA>);
- $VMS_TERMCAP = join '', @entry;
-}
-
-# Returns a list of termcap files to check.
-
-sub termcap_path { ## private
- my @termcap_path;
- # $TERMCAP, if it's a filespec
- push(@termcap_path, $ENV{TERMCAP})
- if ((exists $ENV{TERMCAP}) &&
- (($^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'dos')
- ? $ENV{TERMCAP} =~ /^[a-z]:[\\\/]/is
- : $ENV{TERMCAP} =~ /^\//s));
- if ((exists $ENV{TERMPATH}) && ($ENV{TERMPATH})) {
- # Add the users $TERMPATH
- push(@termcap_path, split(/(:|\s+)/, $ENV{TERMPATH}))
- }
- else {
- # Defaults
- push(@termcap_path,
- $ENV{'HOME'} . '/.termcap',
- '/etc/termcap',
- '/usr/share/misc/termcap',
- );
- }
-
- # return the list of those termcaps that exist
- return grep(-f, @termcap_path);
-}
-
-=item B<Tgetent>
-
-Returns a blessed object reference which the user can
-then use to send the control strings to the terminal using B<Tputs>
-and B<Tgoto>.
-
-The function extracts the entry of the specified terminal
-type I<TERM> (defaults to the environment variable I<TERM>) from the
-database.
-
-It will look in the environment for a I<TERMCAP> variable. If
-found, and the value does not begin with a slash, and the terminal
-type name is the same as the environment string I<TERM>, the
-I<TERMCAP> string is used instead of reading a termcap file. If
-it does begin with a slash, the string is used as a path name of
-the termcap file to search. If I<TERMCAP> does not begin with a
-slash and name is different from I<TERM>, B<Tgetent> searches the
-files F<$HOME/.termcap>, F</etc/termcap>, and F</usr/share/misc/termcap>,
-in that order, unless the environment variable I<TERMPATH> exists,
-in which case it specifies a list of file pathnames (separated by
-spaces or colons) to be searched B<instead>. Whenever multiple
-files are searched and a tc field occurs in the requested entry,
-the entry it names must be found in the same file or one of the
-succeeding files. If there is a C<:tc=...:> in the I<TERMCAP>
-environment variable string it will continue the search in the
-files as above.
-
-The extracted termcap entry is available in the object
-as C<$self-E<gt>{TERMCAP}>.
-
-It takes a hash reference as an argument with two optional keys:
-
-=over 2
-
-=item OSPEED
-
-The terminal output bit rate (often mistakenly called the baud rate)
-for this terminal - if not set a warning will be generated
-and it will be defaulted to 9600. I<OSPEED> can be be specified as
-either a POSIX termios/SYSV termio speeds (where 9600 equals 9600) or
-an old DSD-style speed ( where 13 equals 9600).
-
-
-=item TERM
-
-The terminal type whose termcap entry will be used - if not supplied it will
-default to $ENV{TERM}: if that is not set then B<Tgetent> will croak.
-
-=back
-
-It calls C<croak> on failure.
-
-=cut
-
-sub Tgetent { ## public -- static method
- my $class = shift;
- my ($self) = @_;
-
- $self = {} unless defined $self;
- bless $self, $class;
-
- my($term,$cap,$search,$field,$max,$tmp_term,$TERMCAP);
- local($termpat,$state,$first,$entry); # used inside eval
- local $_;
-
- # Compute PADDING factor from OSPEED (to be used by Tpad)
- if (! $self->{OSPEED}) {
- if ( $^W ) {
- carp "OSPEED was not set, defaulting to 9600";
- }
- $self->{OSPEED} = 9600;
- }
- if ($self->{OSPEED} < 16) {
- # delays for old style speeds
- my @pad = (0,200,133.3,90.9,74.3,66.7,50,33.3,16.7,8.3,5.5,4.1,2,1,.5,.2);
- $self->{PADDING} = $pad[$self->{OSPEED}];
- }
- else {
- $self->{PADDING} = 10000 / $self->{OSPEED};
- }
-
- $self->{TERM} = ($self->{TERM} || $ENV{TERM} || croak "TERM not set");
- $term = $self->{TERM}; # $term is the term type we are looking for
-
- # $tmp_term is always the next term (possibly :tc=...:) we are looking for
- $tmp_term = $self->{TERM};
- # protect any pattern metacharacters in $tmp_term
- $termpat = $tmp_term; $termpat =~ s/(\W)/\\$1/g;
-
- my $foo = (exists $ENV{TERMCAP} ? $ENV{TERMCAP} : '');
-
- # $entry is the extracted termcap entry
- if (($foo !~ m:^/:s) && ($foo =~ m/(^|\|)${termpat}[:|]/s)) {
- $entry = $foo;
- }
-
- my @termcap_path = termcap_path();
-
- unless (@termcap_path || $entry)
- {
- # last resort--fake up a termcap from terminfo
- local $ENV{TERM} = $term;
-
- if ( $^O eq 'VMS' ) {
- $entry = $VMS_TERMCAP;
- }
- else {
- if ( grep { -x "$_/infocmp" } split /:/, $ENV{PATH} ) {
- eval
- {
- my $tmp = `infocmp -C 2>/dev/null`;
-
- if (( $tmp !~ m%^/%s ) && ( $tmp =~ /(^|\|)${termpat}[:|]/s)) {
- $entry = $tmp;
- }
- };
- }
- }
- }
-
- croak "Can't find a valid termcap file" unless @termcap_path || $entry;
-
- $state = 1; # 0 == finished
- # 1 == next file
- # 2 == search again
-
- $first = 0; # first entry (keeps term name)
-
- $max = 32; # max :tc=...:'s
-
- if ($entry) {
- # ok, we're starting with $TERMCAP
- $first++; # we're the first entry
- # do we need to continue?
- if ($entry =~ s/:tc=([^:]+):/:/) {
- $tmp_term = $1;
- # protect any pattern metacharacters in $tmp_term
- $termpat = $tmp_term; $termpat =~ s/(\W)/\\$1/g;
- }
- else {
- $state = 0; # we're already finished
- }
- }
-
- # This is eval'ed inside the while loop for each file
- $search = q{
- while (<TERMCAP>) {
- next if /^\\t/ || /^#/;
- if ($_ =~ m/(^|\\|)${termpat}[:|]/o) {
- chomp;
- s/^[^:]*:// if $first++;
- $state = 0;
- while ($_ =~ s/\\\\$//) {
- defined(my $x = <TERMCAP>) or last;
- $_ .= $x; chomp;
- }
- last;
- }
- }
- defined $entry or $entry = '';
- $entry .= $_ if $_;
- };
-
- while ($state != 0) {
- if ($state == 1) {
- # get the next TERMCAP
- $TERMCAP = shift @termcap_path
- || croak "failed termcap lookup on $tmp_term";
- }
- else {
- # do the same file again
- # prevent endless recursion
- $max-- || croak "failed termcap loop at $tmp_term";
- $state = 1; # ok, maybe do a new file next time
- }
-
- open(TERMCAP,"< $TERMCAP\0") || croak "open $TERMCAP: $!";
- eval $search;
- die $@ if $@;
- close TERMCAP;
-
- # If :tc=...: found then search this file again
- $entry =~ s/:tc=([^:]+):/:/ && ($tmp_term = $1, $state = 2);
- # protect any pattern metacharacters in $tmp_term
- $termpat = $tmp_term; $termpat =~ s/(\W)/\\$1/g;
- }
-
- croak "Can't find $term" if $entry eq '';
- $entry =~ s/:+\s*:+/:/g; # cleanup $entry
- $entry =~ s/:+/:/g; # cleanup $entry
- $self->{TERMCAP} = $entry; # save it
- # print STDERR "DEBUG: $entry = ", $entry, "\n";
-
- # Precompile $entry into the object
- $entry =~ s/^[^:]*://;
- foreach $field (split(/:[\s:\\]*/,$entry)) {
- if (defined $field && $field =~ /^(\w\w)$/) {
- $self->{'_' . $field} = 1 unless defined $self->{'_' . $1};
- # print STDERR "DEBUG: flag $1\n";
- }
- elsif (defined $field && $field =~ /^(\w\w)\@/) {
- $self->{'_' . $1} = "";
- # print STDERR "DEBUG: unset $1\n";
- }
- elsif (defined $field && $field =~ /^(\w\w)#(.*)/) {
- $self->{'_' . $1} = $2 unless defined $self->{'_' . $1};
- # print STDERR "DEBUG: numeric $1 = $2\n";
- }
- elsif (defined $field && $field =~ /^(\w\w)=(.*)/) {
- # print STDERR "DEBUG: string $1 = $2\n";
- next if defined $self->{'_' . ($cap = $1)};
- $_ = $2;
- s/\\E/\033/g;
- s/\\(\d\d\d)/pack('c',oct($1) & 0177)/eg;
- s/\\n/\n/g;
- s/\\r/\r/g;
- s/\\t/\t/g;
- s/\\b/\b/g;
- s/\\f/\f/g;
- s/\\\^/\377/g;
- s/\^\?/\177/g;
- s/\^(.)/pack('c',ord($1) & 31)/eg;
- s/\\(.)/$1/g;
- s/\377/^/g;
- $self->{'_' . $cap} = $_;
- }
- # else { carp "junk in $term ignored: $field"; }
- }
- $self->{'_pc'} = "\0" unless defined $self->{'_pc'};
- $self->{'_bc'} = "\b" unless defined $self->{'_bc'};
- $self;
-}
-
-# $terminal->Tpad($string, $cnt, $FH);
-
-=item B<Tpad>
-
-Outputs a literal string with appropriate padding for the current terminal.
-
-It takes three arguments:
-
-=over 2
-
-=item B<$string>
-
-The literal string to be output. If it starts with a number and an optional
-'*' then the padding will be increased by an amount relative to this number,
-if the '*' is present then this amount will me multiplied by $cnt. This part
-of $string is removed before output/
-
-=item B<$cnt>
-
-Will be used to modify the padding applied to string as described above.
-
-=item B<$FH>
-
-An optional filehandle (or IO::Handle ) that output will be printed to.
-
-=back
-
-The padded $string is returned.
-
-=cut
-
-sub Tpad { ## public
- my $self = shift;
- my($string, $cnt, $FH) = @_;
- my($decr, $ms);
-
- if (defined $string && $string =~ /(^[\d.]+)(\*?)(.*)$/) {
- $ms = $1;
- $ms *= $cnt if $2;
- $string = $3;
- $decr = $self->{PADDING};
- if ($decr > .1) {
- $ms += $decr / 2;
- $string .= $self->{'_pc'} x ($ms / $decr);
- }
- }
- print $FH $string if $FH;
- $string;
-}
-
-# $terminal->Tputs($cap, $cnt, $FH);
-
-=item B<Tputs>
-
-Output the string for the given capability padded as appropriate without
-any parameter substitution.
-
-It takes three arguments:
-
-=over 2
-
-=item B<$cap>
-
-The capability whose string is to be output.
-
-=item B<$cnt>
-
-A count passed to Tpad to modify the padding applied to the output string.
-If $cnt is zero or one then the resulting string will be cached.
-
-=item B<$FH>
-
-An optional filehandle (or IO::Handle ) that output will be printed to.
-
-=back
-
-The appropriate string for the capability will be returned.
-
-=cut
-
-sub Tputs { ## public
- my $self = shift;
- my($cap, $cnt, $FH) = @_;
- my $string;
-
- $cnt = 0 unless $cnt;
-
- if ($cnt > 1) {
- $string = Tpad($self, $self->{'_' . $cap}, $cnt);
- } else {
- # cache result because Tpad can be slow
- unless (exists $self->{$cap}) {
- $self->{$cap} = exists $self->{"_$cap"} ?
- Tpad($self, $self->{"_$cap"}, 1) : undef;
- }
- $string = $self->{$cap};
- }
- print $FH $string if $FH;
- $string;
-}
-
-# $terminal->Tgoto($cap, $col, $row, $FH);
-
-=item B<Tgoto>
-
-B<Tgoto> decodes a cursor addressing string with the given parameters.
-
-There are four arguments:
-
-=over 2
-
-=item B<$cap>
-
-The name of the capability to be output.
-
-=item B<$col>
-
-The first value to be substituted in the output string ( usually the column
-in a cursor addressing capability )
-
-=item B<$row>
-
-The second value to be substituted in the output string (usually the row
-in cursor addressing capabilities)
-
-=item B<$FH>
-
-An optional filehandle (or IO::Handle ) to which the output string will be
-printed.
-
-=back
-
-Substitutions are made with $col and $row in the output string with the
-following sprintf() line formats:
-
- %% output `%'
- %d output value as in printf %d
- %2 output value as in printf %2d
- %3 output value as in printf %3d
- %. output value as in printf %c
- %+x add x to value, then do %.
-
- %>xy if value > x then add y, no output
- %r reverse order of two parameters, no output
- %i increment by one, no output
- %B BCD (16*(value/10)) + (value%10), no output
-
- %n exclusive-or all parameters with 0140 (Datamedia 2500)
- %D Reverse coding (value - 2*(value%16)), no output (Delta Data)
-
-The output string will be returned.
-
-=cut
-
-sub Tgoto { ## public
- my $self = shift;
- my($cap, $code, $tmp, $FH) = @_;
- my $string = $self->{'_' . $cap};
- my $result = '';
- my $after = '';
- my $online = 0;
- my @tmp = ($tmp,$code);
- my $cnt = $code;
-
- while ($string =~ /^([^%]*)%(.)(.*)/) {
- $result .= $1;
- $code = $2;
- $string = $3;
- if ($code eq 'd') {
- $result .= sprintf("%d",shift(@tmp));
- }
- elsif ($code eq '.') {
- $tmp = shift(@tmp);
- if ($tmp == 0 || $tmp == 4 || $tmp == 10) {
- if ($online) {
- ++$tmp, $after .= $self->{'_up'} if $self->{'_up'};
- }
- else {
- ++$tmp, $after .= $self->{'_bc'};
- }
- }
- $result .= sprintf("%c",$tmp);
- $online = !$online;
- }
- elsif ($code eq '+') {
- $result .= sprintf("%c",shift(@tmp)+ord($string));
- $string = substr($string,1,99);
- $online = !$online;
- }
- elsif ($code eq 'r') {
- ($code,$tmp) = @tmp;
- @tmp = ($tmp,$code);
- $online = !$online;
- }
- elsif ($code eq '>') {
- ($code,$tmp,$string) = unpack("CCa99",$string);
- if ($tmp[$[] > $code) {
- $tmp[$[] += $tmp;
- }
- }
- elsif ($code eq '2') {
- $result .= sprintf("%02d",shift(@tmp));
- $online = !$online;
- }
- elsif ($code eq '3') {
- $result .= sprintf("%03d",shift(@tmp));
- $online = !$online;
- }
- elsif ($code eq 'i') {
- ($code,$tmp) = @tmp;
- @tmp = ($code+1,$tmp+1);
- }
- else {
- return "OOPS";
- }
- }
- $string = Tpad($self, $result . $string . $after, $cnt);
- print $FH $string if $FH;
- $string;
-}
-
-# $terminal->Trequire(qw/ce ku kd/);
-
-=item B<Trequire>
-
-Takes a list of capabilities as an argument and will croak if one is not
-found.
-
-=cut
-
-sub Trequire { ## public
- my $self = shift;
- my($cap,@undefined);
- foreach $cap (@_) {
- push(@undefined, $cap)
- unless defined $self->{'_' . $cap} && $self->{'_' . $cap};
- }
- croak "Terminal does not support: (@undefined)" if @undefined;
-}
-
-=back
-
-=head1 EXAMPLES
-
- use Term::Cap;
-
- # Get terminal output speed
- require POSIX;
- my $termios = new POSIX::Termios;
- $termios->getattr;
- my $ospeed = $termios->getospeed;
-
- # Old-style ioctl code to get ospeed:
- # require 'ioctl.pl';
- # ioctl(TTY,$TIOCGETP,$sgtty);
- # ($ispeed,$ospeed) = unpack('cc',$sgtty);
-
- # allocate and initialize a terminal structure
- $terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
-
- # require certain capabilities to be available
- $terminal->Trequire(qw/ce ku kd/);
-
- # Output Routines, if $FH is undefined these just return the string
-
- # Tgoto does the % expansion stuff with the given args
- $terminal->Tgoto('cm', $col, $row, $FH);
-
- # Tputs doesn't do any % expansion.
- $terminal->Tputs('dl', $count = 1, $FH);
-
-=head1 COPYRIGHT AND LICENSE
-
-Please see the README file in distribution.
-
-=head1 AUTHOR
-
-This module is part of the core Perl distribution and is also maintained
-for CPAN by Jonathan Stowe <jns@gellyfish.com>.
-
-=head1 SEE ALSO
-
-termcap(5)
-
-=cut
-
-# Below is a default entry for systems where there are terminals but no
-# termcap
-1;
-__DATA__
-vt220|vt200|DEC VT220 in vt100 emulation mode:
-am:mi:xn:xo:
-co#80:li#24:
-RA=\E[?7l:SA=\E[?7h:
-ac=kkllmmjjnnwwqquuttvvxx:ae=\E(B:al=\E[L:as=\E(0:
-bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:
-cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:
-ei=\E[4l:ho=\E[H:im=\E[4h:
-is=\E[1;24r\E[24;1H:
-nd=\E[C:
-kd=\E[B::kl=\E[D:kr=\E[C:ku=\E[A:le=^H:
-mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:
-kb=\0177:
-r2=\E>\E[24;1H\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E=:rc=\E8:
-sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:
-ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
-
diff --git a/Master/xemtex/perl/lib/Text/ParseWords.pm b/Master/xemtex/perl/lib/Text/ParseWords.pm
deleted file mode 100644
index 6949c459378..00000000000
--- a/Master/xemtex/perl/lib/Text/ParseWords.pm
+++ /dev/null
@@ -1,263 +0,0 @@
-package Text::ParseWords;
-
-use vars qw($VERSION @ISA @EXPORT $PERL_SINGLE_QUOTE);
-$VERSION = "3.21";
-
-require 5.000;
-
-use Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(shellwords quotewords nested_quotewords parse_line);
-@EXPORT_OK = qw(old_shellwords);
-
-
-sub shellwords {
- local(@lines) = @_;
- $lines[$#lines] =~ s/\s+$//;
- return(quotewords('\s+', 0, @lines));
-}
-
-
-
-sub quotewords {
- my($delim, $keep, @lines) = @_;
- my($line, @words, @allwords);
-
-
- foreach $line (@lines) {
- @words = parse_line($delim, $keep, $line);
- return() unless (@words || !length($line));
- push(@allwords, @words);
- }
- return(@allwords);
-}
-
-
-
-sub nested_quotewords {
- my($delim, $keep, @lines) = @_;
- my($i, @allwords);
-
- for ($i = 0; $i < @lines; $i++) {
- @{$allwords[$i]} = parse_line($delim, $keep, $lines[$i]);
- return() unless (@{$allwords[$i]} || !length($lines[$i]));
- }
- return(@allwords);
-}
-
-
-
-sub parse_line {
- # We will be testing undef strings
- no warnings;
- use re 'taint'; # if it's tainted, leave it as such
-
- my($delimiter, $keep, $line) = @_;
- my($quote, $quoted, $unquoted, $delim, $word, @pieces);
-
- while (length($line)) {
-
- ($quote, $quoted, undef, $unquoted, $delim, undef) =
- $line =~ m/^(["']) # a $quote
- ((?:\\.|(?!\1)[^\\])*) # and $quoted text
- \1 # followed by the same quote
- ([\000-\377]*) # and the rest
- | # --OR--
- ^((?:\\.|[^\\"'])*?) # an $unquoted text
- (\Z(?!\n)|(?-x:$delimiter)|(?!^)(?=["']))
- # plus EOL, delimiter, or quote
- ([\000-\377]*) # the rest
- /x; # extended layout
- return() unless( $quote || length($unquoted) || length($delim));
-
- $line = $+;
-
- if ($keep) {
- $quoted = "$quote$quoted$quote";
- }
- else {
- $unquoted =~ s/\\(.)/$1/g;
- if (defined $quote) {
- $quoted =~ s/\\(.)/$1/g if ($quote eq '"');
- $quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'");
- }
- }
- $word .= defined $quote ? $quoted : $unquoted;
-
- if (length($delim)) {
- push(@pieces, $word);
- push(@pieces, $delim) if ($keep eq 'delimiters');
- undef $word;
- }
- if (!length($line)) {
- push(@pieces, $word);
- }
- }
- return(@pieces);
-}
-
-
-
-sub old_shellwords {
-
- # Usage:
- # use ParseWords;
- # @words = old_shellwords($line);
- # or
- # @words = old_shellwords(@lines);
-
- local($_) = join('', @_);
- my(@words,$snippet,$field);
-
- s/^\s+//;
- while ($_ ne '') {
- $field = '';
- for (;;) {
- if (s/^"(([^"\\]|\\.)*)"//) {
- ($snippet = $1) =~ s#\\(.)#$1#g;
- }
- elsif (/^"/) {
- return();
- }
- elsif (s/^'(([^'\\]|\\.)*)'//) {
- ($snippet = $1) =~ s#\\(.)#$1#g;
- }
- elsif (/^'/) {
- return();
- }
- elsif (s/^\\(.)//) {
- $snippet = $1;
- }
- elsif (s/^([^\s\\'"]+)//) {
- $snippet = $1;
- }
- else {
- s/^\s+//;
- last;
- }
- $field .= $snippet;
- }
- push(@words, $field);
- }
- @words;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Text::ParseWords - parse text into an array of tokens or array of arrays
-
-=head1 SYNOPSIS
-
- use Text::ParseWords;
- @lists = &nested_quotewords($delim, $keep, @lines);
- @words = &quotewords($delim, $keep, @lines);
- @words = &shellwords(@lines);
- @words = &parse_line($delim, $keep, $line);
- @words = &old_shellwords(@lines); # DEPRECATED!
-
-=head1 DESCRIPTION
-
-The &nested_quotewords() and &quotewords() functions accept a delimiter
-(which can be a regular expression)
-and a list of lines and then breaks those lines up into a list of
-words ignoring delimiters that appear inside quotes. &quotewords()
-returns all of the tokens in a single long list, while &nested_quotewords()
-returns a list of token lists corresponding to the elements of @lines.
-&parse_line() does tokenizing on a single string. The &*quotewords()
-functions simply call &parse_lines(), so if you're only splitting
-one line you can call &parse_lines() directly and save a function
-call.
-
-The $keep argument is a boolean flag. If true, then the tokens are
-split on the specified delimiter, but all other characters (quotes,
-backslashes, etc.) are kept in the tokens. If $keep is false then the
-&*quotewords() functions remove all quotes and backslashes that are
-not themselves backslash-escaped or inside of single quotes (i.e.,
-&quotewords() tries to interpret these characters just like the Bourne
-shell). NB: these semantics are significantly different from the
-original version of this module shipped with Perl 5.000 through 5.004.
-As an additional feature, $keep may be the keyword "delimiters" which
-causes the functions to preserve the delimiters in each string as
-tokens in the token lists, in addition to preserving quote and
-backslash characters.
-
-&shellwords() is written as a special case of &quotewords(), and it
-does token parsing with whitespace as a delimiter-- similar to most
-Unix shells.
-
-=head1 EXAMPLES
-
-The sample program:
-
- use Text::ParseWords;
- @words = &quotewords('\s+', 0, q{this is "a test" of\ quotewords \"for you});
- $i = 0;
- foreach (@words) {
- print "$i: <$_>\n";
- $i++;
- }
-
-produces:
-
- 0: <this>
- 1: <is>
- 2: <a test>
- 3: <of quotewords>
- 4: <"for>
- 5: <you>
-
-demonstrating:
-
-=over 4
-
-=item 0
-
-a simple word
-
-=item 1
-
-multiple spaces are skipped because of our $delim
-
-=item 2
-
-use of quotes to include a space in a word
-
-=item 3
-
-use of a backslash to include a space in a word
-
-=item 4
-
-use of a backslash to remove the special meaning of a double-quote
-
-=item 5
-
-another simple word (note the lack of effect of the
-backslashed double-quote)
-
-=back
-
-Replacing C<&quotewords('\s+', 0, q{this is...})>
-with C<&shellwords(q{this is...})>
-is a simpler way to accomplish the same thing.
-
-=head1 AUTHORS
-
-Maintainer is Hal Pomeranz <pomeranz@netcom.com>, 1994-1997 (Original
-author unknown). Much of the code for &parse_line() (including the
-primary regexp) from Joerk Behrends <jbehrends@multimediaproduzenten.de>.
-
-Examples section another documentation provided by John Heidemann
-<johnh@ISI.EDU>
-
-Bug reports, patches, and nagging provided by lots of folks-- thanks
-everybody! Special thanks to Michael Schwern <schwern@envirolink.org>
-for assuring me that a &nested_quotewords() would be useful, and to
-Jeff Friedl <jfriedl@yahoo-inc.com> for telling me not to worry about
-error-checking (sort of-- you had to be there).
-
-=cut
diff --git a/Master/xemtex/perl/lib/Text/Tabs.pm b/Master/xemtex/perl/lib/Text/Tabs.pm
deleted file mode 100644
index b26f8f40548..00000000000
--- a/Master/xemtex/perl/lib/Text/Tabs.pm
+++ /dev/null
@@ -1,97 +0,0 @@
-
-package Text::Tabs;
-
-require Exporter;
-
-@ISA = (Exporter);
-@EXPORT = qw(expand unexpand $tabstop);
-
-use vars qw($VERSION $tabstop $debug);
-$VERSION = 98.112801;
-
-use strict;
-
-BEGIN {
- $tabstop = 8;
- $debug = 0;
-}
-
-sub expand
-{
- my (@l) = @_;
- for $_ (@l) {
- 1 while s/(^|\n)([^\t\n]*)(\t+)/
- $1. $2 . (" " x
- ($tabstop * length($3)
- - (length($2) % $tabstop)))
- /sex;
- }
- return @l if wantarray;
- return $l[0];
-}
-
-sub unexpand
-{
- my (@l) = @_;
- my @e;
- my $x;
- my $line;
- my @lines;
- my $lastbit;
- for $x (@l) {
- @lines = split("\n", $x, -1);
- for $line (@lines) {
- $line = expand($line);
- @e = split(/(.{$tabstop})/,$line,-1);
- $lastbit = pop(@e);
- $lastbit = '' unless defined $lastbit;
- $lastbit = "\t"
- if $lastbit eq " "x$tabstop;
- for $_ (@e) {
- if ($debug) {
- my $x = $_;
- $x =~ s/\t/^I\t/gs;
- print "sub on '$x'\n";
- }
- s/ +$/\t/;
- }
- $line = join('',@e, $lastbit);
- }
- $x = join("\n", @lines);
- }
- return @l if wantarray;
- return $l[0];
-}
-
-1;
-__END__
-
-
-=head1 NAME
-
-Text::Tabs -- expand and unexpand tabs per the unix expand(1) and unexpand(1)
-
-=head1 SYNOPSIS
-
- use Text::Tabs;
-
- $tabstop = 4;
- @lines_without_tabs = expand(@lines_with_tabs);
- @lines_with_tabs = unexpand(@lines_without_tabs);
-
-=head1 DESCRIPTION
-
-Text::Tabs does about what the unix utilities expand(1) and unexpand(1)
-do. Given a line with tabs in it, expand will replace the tabs with
-the appropriate number of spaces. Given a line with or without tabs in
-it, unexpand will add tabs when it can save bytes by doing so. Invisible
-compression with plain ascii!
-
-=head1 BUGS
-
-expand doesn't handle newlines very quickly -- do not feed it an
-entire document in one string. Instead feed it an array of lines.
-
-=head1 AUTHOR
-
-David Muir Sharnoff <muir@idiom.com>
diff --git a/Master/xemtex/perl/lib/Text/Wrap.pm b/Master/xemtex/perl/lib/Text/Wrap.pm
deleted file mode 100644
index 8dd1f6c2512..00000000000
--- a/Master/xemtex/perl/lib/Text/Wrap.pm
+++ /dev/null
@@ -1,211 +0,0 @@
-package Text::Wrap;
-
-require Exporter;
-
-@ISA = qw(Exporter);
-@EXPORT = qw(wrap fill);
-@EXPORT_OK = qw($columns $break $huge);
-
-$VERSION = 2001.0929;
-
-use vars qw($VERSION $columns $debug $break $huge $unexpand $tabstop
- $separator);
-use strict;
-
-BEGIN {
- $columns = 76; # <= screen width
- $debug = 0;
- $break = '\s';
- $huge = 'wrap'; # alternatively: 'die' or 'overflow'
- $unexpand = 1;
- $tabstop = 8;
- $separator = "\n";
-}
-
-use Text::Tabs qw(expand unexpand);
-
-sub wrap
-{
- my ($ip, $xp, @t) = @_;
-
- local($Text::Tabs::tabstop) = $tabstop;
- my $r = "";
- my $tail = pop(@t);
- my $t = expand(join("", (map { /\s+\z/ ? ( $_ ) : ($_, ' ') } @t), $tail));
- my $lead = $ip;
- my $ll = $columns - length(expand($ip)) - 1;
- my $nll = $columns - length(expand($xp)) - 1;
- my $nl = "";
- my $remainder = "";
-
- use re 'taint';
-
- pos($t) = 0;
- while ($t !~ /\G\s*\Z/gc) {
- if ($t =~ /\G([^\n]{0,$ll})($break|\z)/xmgc) {
- $r .= $unexpand
- ? unexpand($nl . $lead . $1)
- : $nl . $lead . $1;
- $remainder = $2;
- } elsif ($huge eq 'wrap' && $t =~ /\G([^\n]{$ll})/gc) {
- $r .= $unexpand
- ? unexpand($nl . $lead . $1)
- : $nl . $lead . $1;
- $remainder = $separator;
- } elsif ($huge eq 'overflow' && $t =~ /\G([^\n]*?)($break|\z)/xmgc) {
- $r .= $unexpand
- ? unexpand($nl . $lead . $1)
- : $nl . $lead . $1;
- $remainder = $2;
- } elsif ($huge eq 'die') {
- die "couldn't wrap '$t'";
- } else {
- die "This shouldn't happen";
- }
-
- $lead = $xp;
- $ll = $nll;
- $nl = $separator;
- }
- $r .= $remainder;
-
- print "-----------$r---------\n" if $debug;
-
- print "Finish up with '$lead'\n" if $debug;
-
- $r .= $lead . substr($t, pos($t), length($t)-pos($t))
- if pos($t) ne length($t);
-
- print "-----------$r---------\n" if $debug;;
-
- return $r;
-}
-
-sub fill
-{
- my ($ip, $xp, @raw) = @_;
- my @para;
- my $pp;
-
- for $pp (split(/\n\s+/, join("\n",@raw))) {
- $pp =~ s/\s+/ /g;
- my $x = wrap($ip, $xp, $pp);
- push(@para, $x);
- }
-
- # if paragraph_indent is the same as line_indent,
- # separate paragraphs with blank lines
-
- my $ps = ($ip eq $xp) ? "\n\n" : "\n";
- return join ($ps, @para);
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Text::Wrap - line wrapping to form simple paragraphs
-
-=head1 SYNOPSIS
-
-B<Example 1>
-
- use Text::Wrap
-
- $initial_tab = "\t"; # Tab before first line
- $subsequent_tab = ""; # All other lines flush left
-
- print wrap($initial_tab, $subsequent_tab, @text);
- print fill($initial_tab, $subsequent_tab, @text);
-
- @lines = wrap($initial_tab, $subsequent_tab, @text);
-
- @paragraphs = fill($initial_tab, $subsequent_tab, @text);
-
-B<Example 2>
-
- use Text::Wrap qw(wrap $columns $huge);
-
- $columns = 132; # Wrap at 132 characters
- $huge = 'die';
- $huge = 'wrap';
- $huge = 'overflow';
-
-B<Example 3>
-
- use Text::Wrap
-
- $Text::Wrap::columns = 72;
- print wrap('', '', @text);
-
-=head1 DESCRIPTION
-
-C<Text::Wrap::wrap()> is a very simple paragraph formatter. It formats a
-single paragraph at a time by breaking lines at word boundries.
-Indentation is controlled for the first line (C<$initial_tab>) and
-all subsquent lines (C<$subsequent_tab>) independently. Please note:
-C<$initial_tab> and C<$subsequent_tab> are the literal strings that will
-be used: it is unlikley you would want to pass in a number.
-
-Text::Wrap::fill() is a simple multi-paragraph formatter. It formats
-each paragraph separately and then joins them together when it's done. It
-will destory any whitespace in the original text. It breaks text into
-paragraphs by looking for whitespace after a newline. In other respects
-it acts like wrap().
-
-=head1 OVERRIDES
-
-C<Text::Wrap::wrap()> has a number of variables that control its behavior.
-Because other modules might be using C<Text::Wrap::wrap()> it is suggested
-that you leave these variables alone! If you can't do that, then
-use C<local($Text::Wrap::VARIABLE) = YOURVALUE> when you change the
-values so that the original value is restored. This C<local()> trick
-will not work if you import the variable into your own namespace.
-
-Lines are wrapped at C<$Text::Wrap::columns> columns. C<$Text::Wrap::columns>
-should be set to the full width of your output device. In fact,
-every resulting line will have length of no more than C<$columns - 1>.
-
-It is possible to control which characters terminate words by
-modifying C<$Text::Wrap::break>. Set this to a string such as
-C<'[\s:]'> (to break before spaces or colons) or a pre-compiled regexp
-such as C<qr/[\s']/> (to break before spaces or apostrophes). The
-default is simply C<'\s'>; that is, words are terminated by spaces.
-(This means, among other things, that trailing punctuation such as
-full stops or commas stay with the word they are "attached" to.)
-
-Beginner note: In example 2, above C<$columns> is imported into
-the local namespace, and set locally. In example 3,
-C<$Text::Wrap::columns> is set in its own namespace without importing it.
-
-C<Text::Wrap::wrap()> starts its work by expanding all the tabs in its
-input into spaces. The last thing it does it to turn spaces back
-into tabs. If you do not want tabs in your results, set
-C<$Text::Wrap::unexapand> to a false value. Likewise if you do not
-want to use 8-character tabstops, set C<$Text::Wrap::tabstop> to
-the number of characters you do want for your tabstops.
-
-If you want to separate your lines with something other than C<\n>
-then set C<$Text::Wrap::seporator> to your preference.
-
-When words that are longer than C<$columns> are encountered, they
-are broken up. C<wrap()> adds a C<"\n"> at column C<$columns>.
-This behavior can be overridden by setting C<$huge> to
-'die' or to 'overflow'. When set to 'die', large words will cause
-C<die()> to be called. When set to 'overflow', large words will be
-left intact.
-
-Historical notes: 'die' used to be the default value of
-C<$huge>. Now, 'wrap' is the default value.
-
-=head1 EXAMPLE
-
- print wrap("\t","","This is a bit of text that forms
- a normal book-style paragraph");
-
-=head1 AUTHOR
-
-David Muir Sharnoff <muir@idiom.com> with help from Tim Pierce and
-many many others.
-
diff --git a/Master/xemtex/perl/lib/Tie/Hash.pm b/Master/xemtex/perl/lib/Tie/Hash.pm
deleted file mode 100644
index 282006984b9..00000000000
--- a/Master/xemtex/perl/lib/Tie/Hash.pm
+++ /dev/null
@@ -1,243 +0,0 @@
-package Tie::Hash;
-
-our $VERSION = '1.00';
-
-=head1 NAME
-
-Tie::Hash, Tie::StdHash, Tie::ExtraHash - base class definitions for tied hashes
-
-=head1 SYNOPSIS
-
- package NewHash;
- require Tie::Hash;
-
- @ISA = (Tie::Hash);
-
- sub DELETE { ... } # Provides needed method
- sub CLEAR { ... } # Overrides inherited method
-
-
- package NewStdHash;
- require Tie::Hash;
-
- @ISA = (Tie::StdHash);
-
- # All methods provided by default, define only those needing overrides
- # Accessors access the storage in %{$_[0]};
- # TIEHANDLE should return a reference to the actual storage
- sub DELETE { ... }
-
- package NewExtraHash;
- require Tie::Hash;
-
- @ISA = (Tie::ExtraHash);
-
- # All methods provided by default, define only those needing overrides
- # Accessors access the storage in %{$_[0][0]};
- # TIEHANDLE should return an array reference with the first element being
- # the reference to the actual storage
- sub DELETE {
- $_[0][1]->('del', $_[0][0], $_[1]); # Call the report writer
- delete $_[0][0]->{$_[1]}; # $_[0]->SUPER::DELETE($_[1]) }
-
-
- package main;
-
- tie %new_hash, 'NewHash';
- tie %new_std_hash, 'NewStdHash';
- tie %new_extra_hash, 'NewExtraHash',
- sub {warn "Doing \U$_[1]\E of $_[2].\n"};
-
-=head1 DESCRIPTION
-
-This module provides some skeletal methods for hash-tying classes. See
-L<perltie> for a list of the functions required in order to tie a hash
-to a package. The basic B<Tie::Hash> package provides a C<new> method, as well
-as methods C<TIEHASH>, C<EXISTS> and C<CLEAR>. The B<Tie::StdHash> and
-B<Tie::ExtraHash> packages
-provide most methods for hashes described in L<perltie> (the exceptions
-are C<UNTIE> and C<DESTROY>). They cause tied hashes to behave exactly like standard hashes,
-and allow for selective overwriting of methods. B<Tie::Hash> grandfathers the
-C<new> method: it is used if C<TIEHASH> is not defined
-in the case a class forgets to include a C<TIEHASH> method.
-
-For developers wishing to write their own tied hashes, the required methods
-are briefly defined below. See the L<perltie> section for more detailed
-descriptive, as well as example code:
-
-=over 4
-
-=item TIEHASH classname, LIST
-
-The method invoked by the command C<tie %hash, classname>. Associates a new
-hash instance with the specified class. C<LIST> would represent additional
-arguments (along the lines of L<AnyDBM_File> and compatriots) needed to
-complete the association.
-
-=item STORE this, key, value
-
-Store datum I<value> into I<key> for the tied hash I<this>.
-
-=item FETCH this, key
-
-Retrieve the datum in I<key> for the tied hash I<this>.
-
-=item FIRSTKEY this
-
-Return the first key in the hash.
-
-=item NEXTKEY this, lastkey
-
-Return the next key in the hash.
-
-=item EXISTS this, key
-
-Verify that I<key> exists with the tied hash I<this>.
-
-The B<Tie::Hash> implementation is a stub that simply croaks.
-
-=item DELETE this, key
-
-Delete the key I<key> from the tied hash I<this>.
-
-=item CLEAR this
-
-Clear all values from the tied hash I<this>.
-
-=back
-
-=head1 Inheriting from B<Tie::StdHash>
-
-The accessor methods assume that the actual storage for the data in the tied
-hash is in the hash referenced by C<tied(%tiedhash)>. Thus overwritten
-C<TIEHANDLE> method should return a hash reference, and the remaining methods
-should operate on the hash referenced by the first argument:
-
- package ReportHash;
- our @ISA = 'Tie::StdHash';
-
- sub TIEHASH {
- my $storage = bless {}, shift;
- warn "New ReportHash created, stored in $storage.\n";
- $storage
- }
- sub STORE {
- warn "Storing data with key $_[1] at $_[0].\n";
- $_[0]{$_[1]} = $_[2]
- }
-
-
-=head1 Inheriting from B<Tie::ExtraHash>
-
-The accessor methods assume that the actual storage for the data in the tied
-hash is in the hash referenced by C<(tied(%tiedhash))[0]>. Thus overwritten
-C<TIEHANDLE> method should return an array reference with the first
-element being a hash reference, and the remaining methods should operate on the
-hash C<< %{ $_[0]->[0] } >>:
-
- package ReportHash;
- our @ISA = 'Tie::StdHash';
-
- sub TIEHASH {
- my $storage = bless {}, shift;
- warn "New ReportHash created, stored in $storage.\n";
- [$storage, @_]
- }
- sub STORE {
- warn "Storing data with key $_[1] at $_[0].\n";
- $_[0][0]{$_[1]} = $_[2]
- }
-
-The default C<TIEHANDLE> method stores "extra" arguments to tie() starting
-from offset 1 in the array referenced by C<tied(%tiedhash)>; this is the
-same storage algorithm as in TIEHASH subroutine above. Hence, a typical
-package inheriting from B<Tie::ExtraHash> does not need to overwrite this
-method.
-
-=head1 C<UNTIE> and C<DESTROY>
-
-The methods C<UNTIE> and C<DESTROY> are not defined in B<Tie::Hash>,
-B<Tie::StdHash>, or B<Tie::ExtraHash>. Tied hashes do not require
-presense of these methods, but if defined, the methods will be called in
-proper time, see L<perltie>.
-
-If needed, these methods should be defined by the package inheriting from
-B<Tie::Hash>, B<Tie::StdHash>, or B<Tie::ExtraHash>.
-
-=head1 MORE INFORMATION
-
-The packages relating to various DBM-related implementations (F<DB_File>,
-F<NDBM_File>, etc.) show examples of general tied hashes, as does the
-L<Config> module. While these do not utilize B<Tie::Hash>, they serve as
-good working examples.
-
-=cut
-
-use Carp;
-use warnings::register;
-
-sub new {
- my $pkg = shift;
- $pkg->TIEHASH(@_);
-}
-
-# Grandfather "new"
-
-sub TIEHASH {
- my $pkg = shift;
- if (defined &{"${pkg}::new"}) {
- warnings::warnif("WARNING: calling ${pkg}->new since ${pkg}->TIEHASH is missing");
- $pkg->new(@_);
- }
- else {
- croak "$pkg doesn't define a TIEHASH method";
- }
-}
-
-sub EXISTS {
- my $pkg = ref $_[0];
- croak "$pkg doesn't define an EXISTS method";
-}
-
-sub CLEAR {
- my $self = shift;
- my $key = $self->FIRSTKEY(@_);
- my @keys;
-
- while (defined $key) {
- push @keys, $key;
- $key = $self->NEXTKEY(@_, $key);
- }
- foreach $key (@keys) {
- $self->DELETE(@_, $key);
- }
-}
-
-# The Tie::StdHash package implements standard perl hash behaviour.
-# It exists to act as a base class for classes which only wish to
-# alter some parts of their behaviour.
-
-package Tie::StdHash;
-# @ISA = qw(Tie::Hash); # would inherit new() only
-
-sub TIEHASH { bless {}, $_[0] }
-sub STORE { $_[0]->{$_[1]} = $_[2] }
-sub FETCH { $_[0]->{$_[1]} }
-sub FIRSTKEY { my $a = scalar keys %{$_[0]}; each %{$_[0]} }
-sub NEXTKEY { each %{$_[0]} }
-sub EXISTS { exists $_[0]->{$_[1]} }
-sub DELETE { delete $_[0]->{$_[1]} }
-sub CLEAR { %{$_[0]} = () }
-
-package Tie::ExtraHash;
-
-sub TIEHASH { my $p = shift; bless [{}, @_], $p }
-sub STORE { $_[0][0]{$_[1]} = $_[2] }
-sub FETCH { $_[0][0]{$_[1]} }
-sub FIRSTKEY { my $a = scalar keys %{$_[0][0]}; each %{$_[0][0]} }
-sub NEXTKEY { each %{$_[0][0]} }
-sub EXISTS { exists $_[0][0]->{$_[1]} }
-sub DELETE { delete $_[0][0]->{$_[1]} }
-sub CLEAR { %{$_[0][0]} = () }
-
-1;
diff --git a/Master/xemtex/perl/lib/Tie/Scalar.pm b/Master/xemtex/perl/lib/Tie/Scalar.pm
deleted file mode 100644
index c23c12187a8..00000000000
--- a/Master/xemtex/perl/lib/Tie/Scalar.pm
+++ /dev/null
@@ -1,140 +0,0 @@
-package Tie::Scalar;
-
-our $VERSION = '1.00';
-
-=head1 NAME
-
-Tie::Scalar, Tie::StdScalar - base class definitions for tied scalars
-
-=head1 SYNOPSIS
-
- package NewScalar;
- require Tie::Scalar;
-
- @ISA = (Tie::Scalar);
-
- sub FETCH { ... } # Provide a needed method
- sub TIESCALAR { ... } # Overrides inherited method
-
-
- package NewStdScalar;
- require Tie::Scalar;
-
- @ISA = (Tie::StdScalar);
-
- # All methods provided by default, so define only what needs be overridden
- sub FETCH { ... }
-
-
- package main;
-
- tie $new_scalar, 'NewScalar';
- tie $new_std_scalar, 'NewStdScalar';
-
-=head1 DESCRIPTION
-
-This module provides some skeletal methods for scalar-tying classes. See
-L<perltie> for a list of the functions required in tying a scalar to a
-package. The basic B<Tie::Scalar> package provides a C<new> method, as well
-as methods C<TIESCALAR>, C<FETCH> and C<STORE>. The B<Tie::StdScalar>
-package provides all the methods specified in L<perltie>. It inherits from
-B<Tie::Scalar> and causes scalars tied to it to behave exactly like the
-built-in scalars, allowing for selective overloading of methods. The C<new>
-method is provided as a means of grandfathering, for classes that forget to
-provide their own C<TIESCALAR> method.
-
-For developers wishing to write their own tied-scalar classes, the methods
-are summarized below. The L<perltie> section not only documents these, but
-has sample code as well:
-
-=over 4
-
-=item TIESCALAR classname, LIST
-
-The method invoked by the command C<tie $scalar, classname>. Associates a new
-scalar instance with the specified class. C<LIST> would represent additional
-arguments (along the lines of L<AnyDBM_File> and compatriots) needed to
-complete the association.
-
-=item FETCH this
-
-Retrieve the value of the tied scalar referenced by I<this>.
-
-=item STORE this, value
-
-Store data I<value> in the tied scalar referenced by I<this>.
-
-=item DESTROY this
-
-Free the storage associated with the tied scalar referenced by I<this>.
-This is rarely needed, as Perl manages its memory quite well. But the
-option exists, should a class wish to perform specific actions upon the
-destruction of an instance.
-
-=back
-
-=head1 MORE INFORMATION
-
-The L<perltie> section uses a good example of tying scalars by associating
-process IDs with priority.
-
-=cut
-
-use Carp;
-use warnings::register;
-
-sub new {
- my $pkg = shift;
- $pkg->TIESCALAR(@_);
-}
-
-# "Grandfather" the new, a la Tie::Hash
-
-sub TIESCALAR {
- my $pkg = shift;
- if ($pkg->can('new') and $pkg ne __PACKAGE__) {
- warnings::warnif("WARNING: calling ${pkg}->new since ${pkg}->TIESCALAR is missing");
- $pkg->new(@_);
- }
- else {
- croak "$pkg doesn't define a TIESCALAR method";
- }
-}
-
-sub FETCH {
- my $pkg = ref $_[0];
- croak "$pkg doesn't define a FETCH method";
-}
-
-sub STORE {
- my $pkg = ref $_[0];
- croak "$pkg doesn't define a STORE method";
-}
-
-#
-# The Tie::StdScalar package provides scalars that behave exactly like
-# Perl's built-in scalars. Good base to inherit from, if you're only going to
-# tweak a small bit.
-#
-package Tie::StdScalar;
-@ISA = (Tie::Scalar);
-
-sub TIESCALAR {
- my $class = shift;
- my $instance = shift || undef;
- return bless \$instance => $class;
-}
-
-sub FETCH {
- return ${$_[0]};
-}
-
-sub STORE {
- ${$_[0]} = $_[1];
-}
-
-sub DESTROY {
- undef ${$_[0]};
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/Time/HiRes.pm b/Master/xemtex/perl/lib/Time/HiRes.pm
deleted file mode 100644
index 63375320408..00000000000
--- a/Master/xemtex/perl/lib/Time/HiRes.pm
+++ /dev/null
@@ -1,357 +0,0 @@
-package Time::HiRes;
-
-use strict;
-use vars qw($VERSION $XS_VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);
-
-require Exporter;
-use XSLoader;
-
-@ISA = qw(Exporter);
-
-@EXPORT = qw( );
-@EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval
- getitimer setitimer ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF);
-
-$VERSION = '1.20_00';
-$XS_VERSION = $VERSION;
-$VERSION = eval $VERSION;
-
-sub AUTOLOAD {
- my $constname;
- ($constname= $AUTOLOAD) =~ s/.*:://;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($!) {
- my ($pack,$file,$line) = caller;
- die "Your vendor has not defined Time::HiRes macro $constname, used at $file line $line.\n";
- }
- {
- no strict 'refs';
- *$AUTOLOAD = sub { $val };
- }
- goto &$AUTOLOAD;
-}
-
-XSLoader::load 'Time::HiRes', $XS_VERSION;
-
-# Preloaded methods go here.
-
-sub tv_interval {
- # probably could have been done in C
- my ($a, $b) = @_;
- $b = [gettimeofday()] unless defined($b);
- (${$b}[0] - ${$a}[0]) + ((${$b}[1] - ${$a}[1]) / 1_000_000);
-}
-
-# Autoload methods go after =cut, and are processed by the autosplit program.
-
-1;
-__END__
-
-=head1 NAME
-
-Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers
-
-=head1 SYNOPSIS
-
- use Time::HiRes qw( usleep ualarm gettimeofday tv_interval );
-
- usleep ($microseconds);
-
- ualarm ($microseconds);
- ualarm ($microseconds, $interval_microseconds);
-
- $t0 = [gettimeofday];
- ($seconds, $microseconds) = gettimeofday;
-
- $elapsed = tv_interval ( $t0, [$seconds, $microseconds]);
- $elapsed = tv_interval ( $t0, [gettimeofday]);
- $elapsed = tv_interval ( $t0 );
-
- use Time::HiRes qw ( time alarm sleep );
-
- $now_fractions = time;
- sleep ($floating_seconds);
- alarm ($floating_seconds);
- alarm ($floating_seconds, $floating_interval);
-
- use Time::HiRes qw( setitimer getitimer
- ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF );
-
- setitimer ($which, $floating_seconds, $floating_interval );
- getitimer ($which);
-
-=head1 DESCRIPTION
-
-The C<Time::HiRes> module implements a Perl interface to the usleep,
-ualarm, gettimeofday, and setitimer/getitimer system calls. See the
-EXAMPLES section below and the test scripts for usage; see your system
-documentation for the description of the underlying usleep, ualarm,
-gettimeofday, and setitimer/getitimer calls.
-
-If your system lacks gettimeofday(2) or an emulation of it you don't
-get gettimeofday() or the one-arg form of tv_interval().
-If you don't have usleep(3) or select(2) you don't get usleep()
-or sleep(). If your system don't have ualarm(3) or setitimer(2) you
-don't get ualarm() or alarm(). If you try to import an unimplemented
-function in the C<use> statement it will fail at compile time.
-
-The following functions can be imported from this module.
-No functions are exported by default.
-
-=over 4
-
-=item gettimeofday ()
-
-In array context returns a 2 element array with the seconds and
-microseconds since the epoch. In scalar context returns floating
-seconds like Time::HiRes::time() (see below).
-
-=item usleep ( $useconds )
-
-Sleeps for the number of microseconds specified. Returns the number
-of microseconds actually slept. Can sleep for more than one second
-unlike the usleep system call. See also Time::HiRes::sleep() below.
-
-=item ualarm ( $useconds [, $interval_useconds ] )
-
-Issues a ualarm call; interval_useconds is optional and will be 0 if
-unspecified, resulting in alarm-like behaviour.
-
-=item tv_interval
-
-C<tv_interval ( $ref_to_gettimeofday [, $ref_to_later_gettimeofday] )>
-
-Returns the floating seconds between the two times, which should have
-been returned by gettimeofday(). If the second argument is omitted,
-then the current time is used.
-
-=item time ()
-
-Returns a floating seconds since the epoch. This function can be
-imported, resulting in a nice drop-in replacement for the C<time>
-provided with core Perl, see the EXAMPLES below.
-
-B<NOTE 1>: this higher resolution timer can return values either less or
-more than the core time(), depending on whether your platforms rounds
-the higher resolution timer values up, down, or to the nearest to get
-the core time(), but naturally the difference should be never more than
-half a second.
-
-B<NOTE 2>: Since Sunday, September 9th, 2001 at 01:46:40 AM GMT
-(when the time() seconds since epoch rolled over to 1_000_000_000),
-the default floating point format of Perl and the seconds since epoch
-have conspired to produce an apparent bug: if you print the value of
-Time::HiRes::time() you seem to be getting only five decimals, not six
-as promised (microseconds). Not to worry, the microseconds are there
-(assuming your platform supports such granularity). What is going on
-is that the default floating point format of Perl only outputs 15
-digits. In this case that means ten digits before the decimal
-separator and five after. To see the microseconds you can use either
-printf/sprintf with C<%.6f>, or the gettimeofday() function in list
-context, which will give you the seconds and microseconds as two
-separate values.
-
-=item sleep ( $floating_seconds )
-
-Sleeps for the specified amount of seconds. Returns the number of
-seconds actually slept (a floating point value). This function can be
-imported, resulting in a nice drop-in replacement for the C<sleep>
-provided with perl, see the EXAMPLES below.
-
-=item alarm ( $floating_seconds [, $interval_floating_seconds ] )
-
-The SIGALRM signal is sent after the specfified number of seconds.
-Implemented using ualarm(). The $interval_floating_seconds argument
-is optional and will be 0 if unspecified, resulting in alarm()-like
-behaviour. This function can be imported, resulting in a nice drop-in
-replacement for the C<alarm> provided with perl, see the EXAMPLES below.
-
-=item setitimer
-
-C<setitimer ( $which, $floating_seconds [, $interval_floating_seconds ] )>
-
-Start up an interval timer: after a certain time, a signal arrives,
-and more signals may keep arriving at certain intervals. To disable
-a timer, use time of zero. If interval is set to zero (or unspecified),
-the timer is disabled B<after> the next delivered signal.
-
-Use of interval timers may interfere with alarm(), sleep(), and usleep().
-In standard-speak the "interaction is unspecified", which means that
-I<anything> may happen: it may work, it may not.
-
-In scalar context, the remaining time in the timer is returned.
-
-In list context, both the remaining time and the interval are returned.
-
-There are three interval timers: the $which can be ITIMER_REAL,
-ITIMER_VIRTUAL, or ITIMER_PROF.
-
-ITIMER_REAL results in alarm()-like behavior. Time is counted in
-I<real time>, that is, wallclock time. SIGALRM is delivered when
-the timer expires.
-
-ITIMER_VIRTUAL counts time in (process) I<virtual time>, that is, only
-when the process is running. In multiprocessor/user/CPU systems this
-may be more or less than real or wallclock time. (This time is also
-known as the I<user time>.) SIGVTALRM is delivered when the timer expires.
-
-ITIMER_PROF counts time when either the process virtual time or when
-the operating system is running on behalf of the process (such as
-I/O). (This time is also known as the I<system time>.) (Collectively
-these times are also known as the I<CPU time>.) SIGPROF is delivered
-when the timer expires. SIGPROF can interrupt system calls.
-
-The semantics of interval timers for multithreaded programs are
-system-specific, and some systems may support additional interval
-timers. See your setitimer() documentation.
-
-=item getitimer ( $which )
-
-Return the remaining time in the interval timer specified by $which.
-
-In scalar context, the remaining time is returned.
-
-In list context, both the remaining time and the interval are returned.
-The interval is always what you put in using setitimer().
-
-=back
-
-=head1 EXAMPLES
-
- use Time::HiRes qw(usleep ualarm gettimeofday tv_interval);
-
- $microseconds = 750_000;
- usleep $microseconds;
-
- # signal alarm in 2.5s & every .1s thereafter
- ualarm 2_500_000, 100_000;
-
- # get seconds and microseconds since the epoch
- ($s, $usec) = gettimeofday;
-
- # measure elapsed time
- # (could also do by subtracting 2 gettimeofday return values)
- $t0 = [gettimeofday];
- # do bunch of stuff here
- $t1 = [gettimeofday];
- # do more stuff here
- $t0_t1 = tv_interval $t0, $t1;
-
- $elapsed = tv_interval ($t0, [gettimeofday]);
- $elapsed = tv_interval ($t0); # equivalent code
-
- #
- # replacements for time, alarm and sleep that know about
- # floating seconds
- #
- use Time::HiRes;
- $now_fractions = Time::HiRes::time;
- Time::HiRes::sleep (2.5);
- Time::HiRes::alarm (10.6666666);
-
- use Time::HiRes qw ( time alarm sleep );
- $now_fractions = time;
- sleep (2.5);
- alarm (10.6666666);
-
- # Arm an interval timer to go off first at 10 seconds and
- # after that every 2.5 seconds, in process virtual time
-
- use Time::HiRes qw ( setitimer ITIMER_VIRTUAL time );
-
- $SIG{VTLARM} = sub { print time, "\n" };
- setitimer(ITIMER_VIRTUAL, 10, 2.5);
-
-=head1 C API
-
-In addition to the perl API described above, a C API is available for
-extension writers. The following C functions are available in the
-modglobal hash:
-
- name C prototype
- --------------- ----------------------
- Time::NVtime double (*)()
- Time::U2time void (*)(UV ret[2])
-
-Both functions return equivalent information (like C<gettimeofday>)
-but with different representations. The names C<NVtime> and C<U2time>
-were selected mainly because they are operating system independent.
-(C<gettimeofday> is Un*x-centric.)
-
-Here is an example of using NVtime from C:
-
- double (*myNVtime)();
- SV **svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0);
- if (!svp) croak("Time::HiRes is required");
- if (!SvIOK(*svp)) croak("Time::NVtime isn't a function pointer");
- myNVtime = INT2PTR(double(*)(), SvIV(*svp));
- printf("The current time is: %f\n", (*myNVtime)());
-
-=head1 CAVEATS
-
-Notice that the core time() maybe rounding rather than truncating.
-What this means that the core time() may be giving time one second
-later than gettimeofday(), also known as Time::HiRes::time().
-
-=head1 AUTHORS
-
-D. Wegscheid <wegscd@whirlpool.com>
-R. Schertler <roderick@argon.org>
-J. Hietaniemi <jhi@iki.fi>
-G. Aas <gisle@aas.no>
-
-=head1 REVISION
-
-$Id: HiRes.pm,v 1.20 1999/03/16 02:26:13 wegscd Exp $
-
-$Log: HiRes.pm,v $
-Revision 1.20 1999/03/16 02:26:13 wegscd
-Add documentation for NVTime and U2Time.
-
-Revision 1.19 1998/09/30 02:34:42 wegscd
-No changes, bump version.
-
-Revision 1.18 1998/07/07 02:41:35 wegscd
-No changes, bump version.
-
-Revision 1.17 1998/07/02 01:45:13 wegscd
-Bump version to 1.17
-
-Revision 1.16 1997/11/13 02:06:36 wegscd
-version bump to accomodate HiRes.xs fix.
-
-Revision 1.15 1997/11/11 02:17:59 wegscd
-POD editing, courtesy of Gisle Aas.
-
-Revision 1.14 1997/11/06 03:14:35 wegscd
-Update version # for Makefile.PL and HiRes.xs changes.
-
-Revision 1.13 1997/11/05 05:36:25 wegscd
-change version # for Makefile.pl and HiRes.xs changes.
-
-Revision 1.12 1997/10/13 20:55:33 wegscd
-Force a new version for Makefile.PL changes.
-
-Revision 1.11 1997/09/05 19:59:33 wegscd
-New version to bump version for README and Makefile.PL fixes.
-Fix bad RCS log.
-
-Revision 1.10 1997/05/23 01:11:38 wegscd
-Conditional compilation; EXPORT_FAIL fixes.
-
-Revision 1.2 1996/12/30 13:28:40 wegscd
-Update documentation for what to do when missing ualarm() and friends.
-
-Revision 1.1 1996/10/17 20:53:31 wegscd
-Fix =head1 being next to __END__ so pod2man works
-
-Revision 1.0 1996/09/03 18:25:15 wegscd
-Initial revision
-
-=head1 COPYRIGHT
-
-Copyright (c) 1996-1997 Douglas E. Wegscheid.
-All rights reserved. This program is free software; you can
-redistribute it and/or modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/xemtex/perl/lib/Time/Local.pm b/Master/xemtex/perl/lib/Time/Local.pm
deleted file mode 100644
index faef1d78694..00000000000
--- a/Master/xemtex/perl/lib/Time/Local.pm
+++ /dev/null
@@ -1,255 +0,0 @@
-package Time::Local;
-use 5.006;
-require Exporter;
-use Carp;
-use Config;
-use strict;
-use integer;
-
-our $VERSION = '1.04';
-our @ISA = qw( Exporter );
-our @EXPORT = qw( timegm timelocal );
-our @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck );
-
-my @MonthDays = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
-
-# Determine breakpoint for rolling century
-my $ThisYear = (localtime())[5];
-my $Breakpoint = ($ThisYear + 50) % 100;
-my $NextCentury = $ThisYear - $ThisYear % 100;
- $NextCentury += 100 if $Breakpoint < 50;
-my $Century = $NextCentury - 100;
-my $SecOff = 0;
-
-my (%Options, %Cheat);
-
-my $MaxInt = ((1<<(8 * $Config{intsize} - 2))-1)*2 + 1;
-my $MaxDay = int(($MaxInt-43200)/86400)-1;
-
-# Determine the EPOC day for this machine
-my $Epoc = 0;
-if ($^O eq 'vos') {
-# work around posix-977 -- VOS doesn't handle dates in
-# the range 1970-1980.
- $Epoc = _daygm((0, 0, 0, 1, 0, 70, 4, 0));
-}
-elsif ($^O eq 'MacOS') {
- no integer;
-
- $MaxDay *=2 if $^O eq 'MacOS'; # time_t unsigned ... quick hack?
- # MacOS time() is seconds since 1 Jan 1904, localtime
- # so we need to calculate an offset to apply later
- $Epoc = 693901;
- $SecOff = timelocal(localtime(0)) - timelocal(gmtime(0));
- $Epoc += _daygm(gmtime(0));
-}
-else {
- $Epoc = _daygm(gmtime(0));
-}
-
-%Cheat=(); # clear the cache as epoc has changed
-
-sub _daygm {
- $_[3] + ($Cheat{pack("ss",@_[4,5])} ||= do {
- my $month = ($_[4] + 10) % 12;
- my $year = $_[5] + 1900 - $month/10;
- 365*$year + $year/4 - $year/100 + $year/400 + ($month*306 + 5)/10 - $Epoc
- });
-}
-
-
-sub _timegm {
- my $sec = $SecOff + $_[0] + 60 * $_[1] + 3600 * $_[2];
-
- no integer;
-
- $sec + 86400 * &_daygm;
-}
-
-
-sub timegm {
- my ($sec,$min,$hour,$mday,$month,$year) = @_;
-
- if ($year >= 1000) {
- $year -= 1900;
- }
- elsif ($year < 100 and $year >= 0) {
- $year += ($year > $Breakpoint) ? $Century : $NextCentury;
- }
-
- unless ($Options{no_range_check}) {
- if (abs($year) >= 0x7fff) {
- $year += 1900;
- croak "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)";
- }
-
- croak "Month '$month' out of range 0..11" if $month > 11 or $month < 0;
-
- my $md = $MonthDays[$month];
- ++$md unless $month != 1 or $year % 4 or !($year % 400);
-
- croak "Day '$mday' out of range 1..$md" if $mday > $md or $mday < 1;
- croak "Hour '$hour' out of range 0..23" if $hour > 23 or $hour < 0;
- croak "Minute '$min' out of range 0..59" if $min > 59 or $min < 0;
- croak "Second '$sec' out of range 0..59" if $sec > 59 or $sec < 0;
- }
-
- my $days = _daygm(undef, undef, undef, $mday, $month, $year);
-
- unless ($Options{no_range_check} or abs($days) < $MaxDay) {
- $year += 1900;
- croak "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)";
- }
-
- $sec += $SecOff + 60*$min + 3600*$hour;
-
- no integer;
-
- $sec + 86400*$days;
-}
-
-
-sub timegm_nocheck {
- local $Options{no_range_check} = 1;
- &timegm;
-}
-
-
-sub timelocal {
- no integer;
- my $ref_t = &timegm;
- my $loc_t = _timegm(localtime($ref_t));
-
- # Is there a timezone offset from GMT or are we done
- my $zone_off = $ref_t - $loc_t
- or return $loc_t;
-
- # Adjust for timezone
- $loc_t = $ref_t + $zone_off;
-
- # Are we close to a DST change or are we done
- my $dst_off = $ref_t - _timegm(localtime($loc_t))
- or return $loc_t;
-
- # Adjust for DST change
- $loc_t + $dst_off;
-}
-
-
-sub timelocal_nocheck {
- local $Options{no_range_check} = 1;
- &timelocal;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Time::Local - efficiently compute time from local and GMT time
-
-=head1 SYNOPSIS
-
- $time = timelocal($sec,$min,$hour,$mday,$mon,$year);
- $time = timegm($sec,$min,$hour,$mday,$mon,$year);
-
-=head1 DESCRIPTION
-
-These routines are the inverse of built-in perl functions localtime()
-and gmtime(). They accept a date as a six-element array, and return
-the corresponding time(2) value in seconds since the Epoch (Midnight,
-January 1, 1970). This value can be positive or negative.
-
-It is worth drawing particular attention to the expected ranges for
-the values provided. The value for the day of the month is the actual day
-(ie 1..31), while the month is the number of months since January (0..11).
-This is consistent with the values returned from localtime() and gmtime().
-
-The timelocal() and timegm() functions perform range checking on the
-input $sec, $min, $hour, $mday, and $mon values by default. If you'd
-rather they didn't, you can explicitly import the timelocal_nocheck()
-and timegm_nocheck() functions.
-
- use Time::Local 'timelocal_nocheck';
-
- {
- # The 365th day of 1999
- print scalar localtime timelocal_nocheck 0,0,0,365,0,99;
-
- # The twenty thousandth day since 1970
- print scalar localtime timelocal_nocheck 0,0,0,20000,0,70;
-
- # And even the 10,000,000th second since 1999!
- print scalar localtime timelocal_nocheck 10000000,0,0,1,0,99;
- }
-
-Your mileage may vary when trying these with minutes and hours,
-and it doesn't work at all for months.
-
-Strictly speaking, the year should also be specified in a form consistent
-with localtime(), i.e. the offset from 1900.
-In order to make the interpretation of the year easier for humans,
-however, who are more accustomed to seeing years as two-digit or four-digit
-values, the following conventions are followed:
-
-=over 4
-
-=item *
-
-Years greater than 999 are interpreted as being the actual year,
-rather than the offset from 1900. Thus, 1963 would indicate the year
-Martin Luther King won the Nobel prize, not the year 2863.
-
-=item *
-
-Years in the range 100..999 are interpreted as offset from 1900,
-so that 112 indicates 2012. This rule also applies to years less than zero
-(but see note below regarding date range).
-
-=item *
-
-Years in the range 0..99 are interpreted as shorthand for years in the
-rolling "current century," defined as 50 years on either side of the current
-year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045,
-but 55 would refer to 1955. Twenty years from now, 55 would instead refer
-to 2055. This is messy, but matches the way people currently think about
-two digit dates. Whenever possible, use an absolute four digit year instead.
-
-=back
-
-The scheme above allows interpretation of a wide range of dates, particularly
-if 4-digit years are used.
-
-Please note, however, that the range of dates that can be actually be handled
-depends on the size of an integer (time_t) on a given platform.
-Currently, this is 32 bits for most systems, yielding an approximate range
-from Dec 1901 to Jan 2038.
-
-Both timelocal() and timegm() croak if given dates outside the supported
-range.
-
-=head1 IMPLEMENTATION
-
-These routines are quite efficient and yet are always guaranteed to agree
-with localtime() and gmtime(). We manage this by caching the start times
-of any months we've seen before. If we know the start time of the month,
-we can always calculate any time within the month. The start times
-are calculated using a mathematical formula. Unlike other algorithms
-that do multiple calls to gmtime().
-
-timelocal() is implemented using the same cache. We just assume that we're
-translating a GMT time, and then fudge it when we're done for the timezone
-and daylight savings arguments. Note that the timezone is evaluated for
-each date because countries occasionally change their official timezones.
-Assuming that localtime() corrects for these changes, this routine will
-also be correct.
-
-=head1 BUGS
-
-The whole scheme for interpreting two-digit years can be considered a bug.
-
-The proclivity to croak() is probably a bug.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/UNIVERSAL.pm b/Master/xemtex/perl/lib/UNIVERSAL.pm
deleted file mode 100644
index 92b4fcd352a..00000000000
--- a/Master/xemtex/perl/lib/UNIVERSAL.pm
+++ /dev/null
@@ -1,118 +0,0 @@
-package UNIVERSAL;
-
-our $VERSION = '1.00';
-
-# UNIVERSAL should not contain any extra subs/methods beyond those
-# that it exists to define. The use of Exporter below is a historical
-# accident that can't be fixed without breaking code. Note that we
-# *don't* set @ISA here, don't want all classes/objects inheriting from
-# Exporter. It's bad enough that all classes have a import() method
-# whenever UNIVERSAL.pm is loaded.
-require Exporter;
-*import = \&Exporter::import;
-@EXPORT_OK = qw(isa can VERSION);
-
-1;
-__END__
-
-=head1 NAME
-
-UNIVERSAL - base class for ALL classes (blessed references)
-
-=head1 SYNOPSIS
-
- $is_io = $fd->isa("IO::Handle");
- $is_io = Class->isa("IO::Handle");
-
- $sub = $obj->can("print");
- $sub = Class->can("print");
-
- use UNIVERSAL qw( isa can VERSION );
- $yes = isa $ref, "HASH" ;
- $sub = can $ref, "fandango" ;
- $ver = VERSION $obj ;
-
-=head1 DESCRIPTION
-
-C<UNIVERSAL> is the base class which all bless references will inherit from,
-see L<perlobj>.
-
-C<UNIVERSAL> provides the following methods and functions:
-
-=over 4
-
-=item $obj->isa( TYPE ), CLASS->isa( TYPE ), isa( VAL, TYPE )
-
- C<TYPE> is a package name
- $obj is a blessed reference or a string containing a package name
- C<CLASS> is a package name
- C<VAL> is any of the above or an unblessed reference
-
-When used as an instance or class method (C<$obj->isa( TYPE )>), C<isa>
-returns I<true> if $obj is blessed into package C<TYPE> or inherits from
-package C<TYPE>.
-
-When used as a class method (C<CLASS->isa( TYPE )>; sometimes referred to as a
-static method), C<isa> returns I<true> if C<CLASS> inherits from (or is itself)
-the name of the package C<TYPE> or inherits from package C<TYPE>.
-
-When used as a function, like
-
- use UNIVERSAL qw( isa ) ;
- $yes = isa $h, "HASH";
- $yes = isa "Foo", "Bar";
-
-or
-
- require UNIVERSAL ;
- $yes = UNIVERSAL::isa $a, "ARRAY";
-
-, C<isa> returns I<true> in the same cases as above and also if C<VAL> is an
-unblessed reference to a perl variable of type C<TYPE>, such as "HASH",
-"ARRAY", or "Regexp".
-
-=item $obj->can( METHOD ), CLASS->can( METHOD ), can( VAL, METHOD )
-
-C<can> checks if the object or class has a method called C<METHOD>. If it does
-then a reference to the sub is returned. If it does not then I<undef> is
-returned. This includes methods inherited or imported by C<$obj>, C<CLASS>, or
-C<VAL>.
-
-C<can> cannot know whether an object will be able to provide a method
-through AUTOLOAD, so a return value of I<undef> does not necessarily mean
-the object will not be able to handle the method call. To get around
-this some module authors use a forward declaration (see L<perlsub>)
-for methods they will handle via AUTOLOAD. For such 'dummy' subs, C<can>
-will still return a code reference, which, when called, will fall through
-to the AUTOLOAD. If no suitable AUTOLOAD is provided, calling the coderef
-will cause an error.
-
-C<can> can be called as a class (static) method, an object method, or a
-function.
-
-When used as a function, if C<VAL> is a blessed reference or package name which
-has a method called C<METHOD>, C<can> returns a reference to the subroutine.
-If C<VAL> is not a blessed reference, or if it does not have a method
-C<METHOD>, I<undef> is returned.
-
-=item VERSION ( [ REQUIRE ] )
-
-C<VERSION> will return the value of the variable C<$VERSION> in the
-package the object is blessed into. If C<REQUIRE> is given then
-it will do a comparison and die if the package version is not
-greater than or equal to C<REQUIRE>.
-
-C<VERSION> can be called as either a class (static) method, an object method or
-or a function.
-
-
-=back
-
-These subroutines should I<not> be imported via S<C<use UNIVERSAL qw(...)>>.
-If you want simple local access to them you can do
-
- *isa = \&UNIVERSAL::isa;
-
-to import isa into your package.
-
-=cut
diff --git a/Master/xemtex/perl/lib/XSLoader.pm b/Master/xemtex/perl/lib/XSLoader.pm
deleted file mode 100644
index c5b3300a458..00000000000
--- a/Master/xemtex/perl/lib/XSLoader.pm
+++ /dev/null
@@ -1,138 +0,0 @@
-# Generated from XSLoader.pm.PL (resolved %Config::Config value)
-
-package XSLoader;
-
-# And Gandalf said: 'Many folk like to know beforehand what is to
-# be set on the table; but those who have laboured to prepare the
-# feast like to keep their secret; for wonder makes the words of
-# praise louder.'
-
-# (Quote from Tolkien sugested by Anno Siegel.)
-#
-# See pod text at end of file for documentation.
-# See also ext/DynaLoader/README in source tree for other information.
-#
-# Tim.Bunce@ig.co.uk, August 1994
-
-$VERSION = "0.01"; # avoid typo warning
-
-# enable debug/trace messages from DynaLoader perl code
-# $dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug;
-
- my $dl_dlext = 'dll';
-
-package DynaLoader;
-
-# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here.
-# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB
-boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) &&
- !defined(&dl_error);
-package XSLoader;
-
-1; # End of main code
-
-# The bootstrap function cannot be autoloaded (without complications)
-# so we define it here:
-
-sub load {
- package DynaLoader;
-
- my($module) = $_[0];
-
- # work with static linking too
- my $b = "$module\::bootstrap";
- goto &$b if defined &$b;
-
- goto retry unless $module and defined &dl_load_file;
-
- my @modparts = split(/::/,$module);
- my $modfname = $modparts[-1];
-
- my $modpname = join('/',@modparts);
- my $modlibname = (caller())[1];
- my $c = @modparts;
- $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
- my $file = "$modlibname/auto/$modpname/$modfname.$dl_dlext";
-
-# print STDERR "XSLoader::load for $module ($file)\n" if $dl_debug;
-
- my $bs = $file;
- $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
-
- goto retry if not -f $file or -s $bs;
-
- my $bootname = "boot_$module";
- $bootname =~ s/\W/_/g;
- @dl_require_symbols = ($bootname);
-
- my $boot_symbol_ref;
-
- if ($^O eq 'darwin') {
- if ($boot_symbol_ref = dl_find_symbol(0, $bootname)) {
- goto boot; #extension library has already been loaded, e.g. darwin
- }
- }
-
- # Many dynamic extension loading problems will appear to come from
- # this section of code: XYZ failed at line 123 of DynaLoader.pm.
- # Often these errors are actually occurring in the initialisation
- # C code of the extension XS file. Perl reports the error as being
- # in this perl code simply because this was the last perl code
- # it executed.
-
- my $libref = dl_load_file($file, 0) or do {
- require Carp;
- Carp::croak("Can't load '$file' for module $module: " . dl_error());
- };
- push(@dl_librefs,$libref); # record loaded object
-
- my @unresolved = dl_undef_symbols();
- if (@unresolved) {
- require Carp;
- Carp::carp("Undefined symbols present after loading $file: @unresolved\n");
- }
-
- $boot_symbol_ref = dl_find_symbol($libref, $bootname) or do {
- require Carp;
- Carp::croak("Can't find '$bootname' symbol in $file\n");
- };
-
- push(@dl_modules, $module); # record loaded module
-
- boot:
- my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file);
-
- # See comment block above
- return &$xs(@_);
-
- retry:
- require DynaLoader;
- goto &DynaLoader::bootstrap_inherit;
-}
-
-__END__
-
-=head1 NAME
-
-XSLoader - Dynamically load C libraries into Perl code
-
-=head1 SYNOPSIS
-
- package YourPackage;
- use XSLoader;
-
- XSLoader::load 'YourPackage', @args;
-
-=head1 DESCRIPTION
-
-This module defines a standard I<simplified> interface to the dynamic
-linking mechanisms available on many platforms. Its primary purpose is
-to implement cheap automatic dynamic loading of Perl modules.
-
-For more complicated interface see L<DynaLoader>.
-
-=head1 AUTHOR
-
-Ilya Zakharevich: extraction from DynaLoader.
-
-=cut
diff --git a/Master/xemtex/perl/lib/attributes.pm b/Master/xemtex/perl/lib/attributes.pm
deleted file mode 100644
index 2dacd02751e..00000000000
--- a/Master/xemtex/perl/lib/attributes.pm
+++ /dev/null
@@ -1,414 +0,0 @@
-package attributes;
-
-our $VERSION = 0.05;
-
-@EXPORT_OK = qw(get reftype);
-@EXPORT = ();
-%EXPORT_TAGS = (ALL => [@EXPORT, @EXPORT_OK]);
-
-use strict;
-
-sub croak {
- require Carp;
- goto &Carp::croak;
-}
-
-sub carp {
- require Carp;
- goto &Carp::carp;
-}
-
-## forward declaration(s) rather than wrapping the bootstrap call in BEGIN{}
-#sub reftype ($) ;
-#sub _fetch_attrs ($) ;
-#sub _guess_stash ($) ;
-#sub _modify_attrs ;
-#sub _warn_reserved () ;
-#
-# The extra trips through newATTRSUB in the interpreter wipe out any savings
-# from avoiding the BEGIN block. Just do the bootstrap now.
-BEGIN { bootstrap attributes }
-
-sub import {
- @_ > 2 && ref $_[2] or do {
- require Exporter;
- goto &Exporter::import;
- };
- my (undef,$home_stash,$svref,@attrs) = @_;
-
- my $svtype = uc reftype($svref);
- my $pkgmeth;
- $pkgmeth = UNIVERSAL::can($home_stash, "MODIFY_${svtype}_ATTRIBUTES")
- if defined $home_stash && $home_stash ne '';
- my @badattrs;
- if ($pkgmeth) {
- my @pkgattrs = _modify_attrs($svref, @attrs);
- @badattrs = $pkgmeth->($home_stash, $svref, @attrs);
- if (!@badattrs && @pkgattrs) {
- return unless _warn_reserved;
- @pkgattrs = grep { m/\A[[:lower:]]+(?:\z|\()/ } @pkgattrs;
- if (@pkgattrs) {
- for my $attr (@pkgattrs) {
- $attr =~ s/\(.+\z//s;
- }
- my $s = ((@pkgattrs == 1) ? '' : 's');
- carp "$svtype package attribute$s " .
- "may clash with future reserved word$s: " .
- join(' : ' , @pkgattrs);
- }
- }
- }
- else {
- @badattrs = _modify_attrs($svref, @attrs);
- }
- if (@badattrs) {
- croak "Invalid $svtype attribute" .
- (( @badattrs == 1 ) ? '' : 's') .
- ": " .
- join(' : ', @badattrs);
- }
-}
-
-sub get ($) {
- @_ == 1 && ref $_[0] or
- croak 'Usage: '.__PACKAGE__.'::get $ref';
- my $svref = shift;
- my $svtype = uc reftype $svref;
- my $stash = _guess_stash $svref;
- $stash = caller unless defined $stash;
- my $pkgmeth;
- $pkgmeth = UNIVERSAL::can($stash, "FETCH_${svtype}_ATTRIBUTES")
- if defined $stash && $stash ne '';
- return $pkgmeth ?
- (_fetch_attrs($svref), $pkgmeth->($stash, $svref)) :
- (_fetch_attrs($svref))
- ;
-}
-
-sub require_version { goto &UNIVERSAL::VERSION }
-
-1;
-__END__
-#The POD goes here
-
-=head1 NAME
-
-attributes - get/set subroutine or variable attributes
-
-=head1 SYNOPSIS
-
- sub foo : method ;
- my ($x,@y,%z) : Bent = 1;
- my $s = sub : method { ... };
-
- use attributes (); # optional, to get subroutine declarations
- my @attrlist = attributes::get(\&foo);
-
- use attributes 'get'; # import the attributes::get subroutine
- my @attrlist = get \&foo;
-
-=head1 DESCRIPTION
-
-Subroutine declarations and definitions may optionally have attribute lists
-associated with them. (Variable C<my> declarations also may, but see the
-warning below.) Perl handles these declarations by passing some information
-about the call site and the thing being declared along with the attribute
-list to this module. In particular, the first example above is equivalent to
-the following:
-
- use attributes __PACKAGE__, \&foo, 'method';
-
-The second example in the synopsis does something equivalent to this:
-
- use attributes ();
- my ($x,@y,%z);
- attributes::->import(__PACKAGE__, \$x, 'Bent');
- attributes::->import(__PACKAGE__, \@y, 'Bent');
- attributes::->import(__PACKAGE__, \%z, 'Bent');
- ($x,@y,%z) = 1;
-
-Yes, that's a lot of expansion.
-
-B<WARNING>: attribute declarations for variables are still evolving.
-The semantics and interfaces of such declarations could change in
-future versions. They are present for purposes of experimentation
-with what the semantics ought to be. Do not rely on the current
-implementation of this feature.
-
-There are only a few attributes currently handled by Perl itself (or
-directly by this module, depending on how you look at it.) However,
-package-specific attributes are allowed by an extension mechanism.
-(See L<"Package-specific Attribute Handling"> below.)
-
-The setting of subroutine attributes happens at compile time.
-Variable attributes in C<our> declarations are also applied at compile time.
-However, C<my> variables get their attributes applied at run-time.
-This means that you have to I<reach> the run-time component of the C<my>
-before those attributes will get applied. For example:
-
- my $x : Bent = 42 if 0;
-
-will neither assign 42 to $x I<nor> will it apply the C<Bent> attribute
-to the variable.
-
-An attempt to set an unrecognized attribute is a fatal error. (The
-error is trappable, but it still stops the compilation within that
-C<eval>.) Setting an attribute with a name that's all lowercase
-letters that's not a built-in attribute (such as "foo") will result in
-a warning with B<-w> or C<use warnings 'reserved'>.
-
-=head2 Built-in Attributes
-
-The following are the built-in attributes for subroutines:
-
-=over 4
-
-=item locked
-
-Setting this attribute is only meaningful when the subroutine or
-method is to be called by multiple threads. When set on a method
-subroutine (i.e., one marked with the B<method> attribute below),
-Perl ensures that any invocation of it implicitly locks its first
-argument before execution. When set on a non-method subroutine,
-Perl ensures that a lock is taken on the subroutine itself before
-execution. The semantics of the lock are exactly those of one
-explicitly taken with the C<lock> operator immediately after the
-subroutine is entered.
-
-=item method
-
-Indicates that the referenced subroutine is a method.
-This has a meaning when taken together with the B<locked> attribute,
-as described there. It also means that a subroutine so marked
-will not trigger the "Ambiguous call resolved as CORE::%s" warning.
-
-=item lvalue
-
-Indicates that the referenced subroutine is a valid lvalue and can
-be assigned to. The subroutine must return a modifiable value such
-as a scalar variable, as described in L<perlsub>.
-
-=back
-
-For global variables there is C<unique> attribute: see L<perlfunc/our>.
-
-=head2 Available Subroutines
-
-The following subroutines are available for general use once this module
-has been loaded:
-
-=over 4
-
-=item get
-
-This routine expects a single parameter--a reference to a
-subroutine or variable. It returns a list of attributes, which may be
-empty. If passed invalid arguments, it uses die() (via L<Carp::croak|Carp>)
-to raise a fatal exception. If it can find an appropriate package name
-for a class method lookup, it will include the results from a
-C<FETCH_I<type>_ATTRIBUTES> call in its return list, as described in
-L<"Package-specific Attribute Handling"> below.
-Otherwise, only L<built-in attributes|"Built-in Attributes"> will be returned.
-
-=item reftype
-
-This routine expects a single parameter--a reference to a subroutine or
-variable. It returns the built-in type of the referenced variable,
-ignoring any package into which it might have been blessed.
-This can be useful for determining the I<type> value which forms part of
-the method names described in L<"Package-specific Attribute Handling"> below.
-
-=back
-
-Note that these routines are I<not> exported by default.
-
-=head2 Package-specific Attribute Handling
-
-B<WARNING>: the mechanisms described here are still experimental. Do not
-rely on the current implementation. In particular, there is no provision
-for applying package attributes to 'cloned' copies of subroutines used as
-closures. (See L<perlref/"Making References"> for information on closures.)
-Package-specific attribute handling may change incompatibly in a future
-release.
-
-When an attribute list is present in a declaration, a check is made to see
-whether an attribute 'modify' handler is present in the appropriate package
-(or its @ISA inheritance tree). Similarly, when C<attributes::get> is
-called on a valid reference, a check is made for an appropriate attribute
-'fetch' handler. See L<"EXAMPLES"> to see how the "appropriate package"
-determination works.
-
-The handler names are based on the underlying type of the variable being
-declared or of the reference passed. Because these attributes are
-associated with subroutine or variable declarations, this deliberately
-ignores any possibility of being blessed into some package. Thus, a
-subroutine declaration uses "CODE" as its I<type>, and even a blessed
-hash reference uses "HASH" as its I<type>.
-
-The class methods invoked for modifying and fetching are these:
-
-=over 4
-
-=item FETCH_I<type>_ATTRIBUTES
-
-This method receives a single argument, which is a reference to the
-variable or subroutine for which package-defined attributes are desired.
-The expected return value is a list of associated attributes.
-This list may be empty.
-
-=item MODIFY_I<type>_ATTRIBUTES
-
-This method is called with two fixed arguments, followed by the list of
-attributes from the relevant declaration. The two fixed arguments are
-the relevant package name and a reference to the declared subroutine or
-variable. The expected return value as a list of attributes which were
-not recognized by this handler. Note that this allows for a derived class
-to delegate a call to its base class, and then only examine the attributes
-which the base class didn't already handle for it.
-
-The call to this method is currently made I<during> the processing of the
-declaration. In particular, this means that a subroutine reference will
-probably be for an undefined subroutine, even if this declaration is
-actually part of the definition.
-
-=back
-
-Calling C<attributes::get()> from within the scope of a null package
-declaration C<package ;> for an unblessed variable reference will
-not provide any starting package name for the 'fetch' method lookup.
-Thus, this circumstance will not result in a method call for package-defined
-attributes. A named subroutine knows to which symbol table entry it belongs
-(or originally belonged), and it will use the corresponding package.
-An anonymous subroutine knows the package name into which it was compiled
-(unless it was also compiled with a null package declaration), and so it
-will use that package name.
-
-=head2 Syntax of Attribute Lists
-
-An attribute list is a sequence of attribute specifications, separated by
-whitespace or a colon (with optional whitespace).
-Each attribute specification is a simple
-name, optionally followed by a parenthesised parameter list.
-If such a parameter list is present, it is scanned past as for the rules
-for the C<q()> operator. (See L<perlop/"Quote and Quote-like Operators">.)
-The parameter list is passed as it was found, however, and not as per C<q()>.
-
-Some examples of syntactically valid attribute lists:
-
- switch(10,foo(7,3)) : expensive
- Ugly('\(") :Bad
- _5x5
- locked method
-
-Some examples of syntactically invalid attribute lists (with annotation):
-
- switch(10,foo() # ()-string not balanced
- Ugly('(') # ()-string not balanced
- 5x5 # "5x5" not a valid identifier
- Y2::north # "Y2::north" not a simple identifier
- foo + bar # "+" neither a colon nor whitespace
-
-=head1 EXPORTS
-
-=head2 Default exports
-
-None.
-
-=head2 Available exports
-
-The routines C<get> and C<reftype> are exportable.
-
-=head2 Export tags defined
-
-The C<:ALL> tag will get all of the above exports.
-
-=head1 EXAMPLES
-
-Here are some samples of syntactically valid declarations, with annotation
-as to how they resolve internally into C<use attributes> invocations by
-perl. These examples are primarily useful to see how the "appropriate
-package" is found for the possible method lookups for package-defined
-attributes.
-
-=over 4
-
-=item 1.
-
-Code:
-
- package Canine;
- package Dog;
- my Canine $spot : Watchful ;
-
-Effect:
-
- use attributes ();
- attributes::->import(Canine => \$spot, "Watchful");
-
-=item 2.
-
-Code:
-
- package Felis;
- my $cat : Nervous;
-
-Effect:
-
- use attributes ();
- attributes::->import(Felis => \$cat, "Nervous");
-
-=item 3.
-
-Code:
-
- package X;
- sub foo : locked ;
-
-Effect:
-
- use attributes X => \&foo, "locked";
-
-=item 4.
-
-Code:
-
- package X;
- sub Y::x : locked { 1 }
-
-Effect:
-
- use attributes Y => \&Y::x, "locked";
-
-=item 5.
-
-Code:
-
- package X;
- sub foo { 1 }
-
- package Y;
- BEGIN { *bar = \&X::foo; }
-
- package Z;
- sub Y::bar : locked ;
-
-Effect:
-
- use attributes X => \&X::foo, "locked";
-
-=back
-
-This last example is purely for purposes of completeness. You should not
-be trying to mess with the attributes of something in a package that's
-not your own.
-
-=head1 SEE ALSO
-
-L<perlsub/"Private Variables via my()"> and
-L<perlsub/"Subroutine Attributes"> for details on the basic declarations;
-L<attrs> for the obsolescent form of subroutine attribute specification
-which this module replaces;
-L<perlfunc/use> for details on the normal invocation mechanism.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/auto/B/B.dll b/Master/xemtex/perl/lib/auto/B/B.dll
deleted file mode 100644
index 78e25799a7e..00000000000
--- a/Master/xemtex/perl/lib/auto/B/B.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/Cwd/Cwd.dll b/Master/xemtex/perl/lib/auto/Cwd/Cwd.dll
deleted file mode 100644
index e06e55e5288..00000000000
--- a/Master/xemtex/perl/lib/auto/Cwd/Cwd.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/Data/Dumper/Dumper.dll b/Master/xemtex/perl/lib/auto/Data/Dumper/Dumper.dll
deleted file mode 100644
index f6bbfbc9e70..00000000000
--- a/Master/xemtex/perl/lib/auto/Data/Dumper/Dumper.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/Digest/MD5/MD5.dll b/Master/xemtex/perl/lib/auto/Digest/MD5/MD5.dll
deleted file mode 100644
index 4892ae02cec..00000000000
--- a/Master/xemtex/perl/lib/auto/Digest/MD5/MD5.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/DynaLoader/autosplit.ix b/Master/xemtex/perl/lib/auto/DynaLoader/autosplit.ix
deleted file mode 100644
index d7605efa074..00000000000
--- a/Master/xemtex/perl/lib/auto/DynaLoader/autosplit.ix
+++ /dev/null
@@ -1,8 +0,0 @@
-# Index created by AutoSplit for ../LIB\DynaLoader.pm
-# (file acts as timestamp)
-package DynaLoader;
-sub dl_findfile ;
-sub dl_expandspec ;
-sub dl_find_symbol_anywhere
-;
-1;
diff --git a/Master/xemtex/perl/lib/auto/DynaLoader/dl_expandspec.al b/Master/xemtex/perl/lib/auto/DynaLoader/dl_expandspec.al
deleted file mode 100644
index 2943afff245..00000000000
--- a/Master/xemtex/perl/lib/auto/DynaLoader/dl_expandspec.al
+++ /dev/null
@@ -1,34 +0,0 @@
-# NOTE: Derived from ../LIB\DynaLoader.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package DynaLoader;
-
-#line 373 "../LIB\DynaLoader.pm (autosplit into ..\lib\auto\DynaLoader\dl_expandspec.al)"
-sub dl_expandspec {
- my($spec) = @_;
- # Optional function invoked if DynaLoader.pm sets $do_expand.
- # Most systems do not require or use this function.
- # Some systems may implement it in the dl_*.xs file in which case
- # this autoload version will not be called but is harmless.
-
- # This function is designed to deal with systems which treat some
- # 'filenames' in a special way. For example VMS 'Logical Names'
- # (something like unix environment variables - but different).
- # This function should recognise such names and expand them into
- # full file paths.
- # Must return undef if $spec is invalid or file does not exist.
-
- my $file = $spec; # default output to input
-
- if ($Is_VMS) { # dl_expandspec should be defined in dl_vms.xs
- require Carp;
- Carp::croak("dl_expandspec: should be defined in XS file!\n");
- } else {
- return undef unless -f $file;
- }
- print STDERR "dl_expandspec($spec) => $file\n" if $dl_debug;
- $file;
-}
-
-# end of DynaLoader::dl_expandspec
-1;
diff --git a/Master/xemtex/perl/lib/auto/DynaLoader/dl_find_symbol_anywhere.al b/Master/xemtex/perl/lib/auto/DynaLoader/dl_find_symbol_anywhere.al
deleted file mode 100644
index b4a6ad15f09..00000000000
--- a/Master/xemtex/perl/lib/auto/DynaLoader/dl_find_symbol_anywhere.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ../LIB\DynaLoader.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package DynaLoader;
-
-#line 399 "../LIB\DynaLoader.pm (autosplit into ..\lib\auto\DynaLoader\dl_find_symbol_anywhere.al)"
-sub dl_find_symbol_anywhere
-{
- my $sym = shift;
- my $libref;
- foreach $libref (@dl_librefs) {
- my $symref = dl_find_symbol($libref,$sym);
- return $symref if $symref;
- }
- return undef;
-}
-
-1;
-# end of DynaLoader::dl_find_symbol_anywhere
diff --git a/Master/xemtex/perl/lib/auto/DynaLoader/dl_findfile.al b/Master/xemtex/perl/lib/auto/DynaLoader/dl_findfile.al
deleted file mode 100644
index d91cf60d194..00000000000
--- a/Master/xemtex/perl/lib/auto/DynaLoader/dl_findfile.al
+++ /dev/null
@@ -1,115 +0,0 @@
-# NOTE: Derived from ../LIB\DynaLoader.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package DynaLoader;
-
-#line 265 "../LIB\DynaLoader.pm (autosplit into ..\lib\auto\DynaLoader\dl_findfile.al)"
-sub dl_findfile {
- # Read ext/DynaLoader/DynaLoader.doc for detailed information.
- # This function does not automatically consider the architecture
- # or the perl library auto directories.
- my (@args) = @_;
- my (@dirs, $dir); # which directories to search
- my (@found); # full paths to real files we have found
- my $dl_ext= 'dll'; # $Config::Config{'dlext'} suffix for perl extensions
- my $dl_so = 'dll'; # $Config::Config{'so'} suffix for shared libraries
-
- print STDERR "dl_findfile(@args)\n" if $dl_debug;
-
- # accumulate directories but process files as they appear
- arg: foreach(@args) {
- # Special fast case: full filepath requires no search
- if ($Is_VMS && m%[:>/\]]% && -f $_) {
- push(@found,dl_expandspec(VMS::Filespec::vmsify($_)));
- last arg unless wantarray;
- next;
- }
- elsif ($Is_MacOS) {
- if (m/:/ && -f $_) {
- push(@found,$_);
- last arg unless wantarray;
- }
- }
- elsif (m:/: && -f $_ && !$do_expand) {
- push(@found,$_);
- last arg unless wantarray;
- next;
- }
-
- # Deal with directories first:
- # Using a -L prefix is the preferred option (faster and more robust)
- if (m:^-L:) { s/^-L//; push(@dirs, $_); next; }
-
- if ($Is_MacOS) {
- # Otherwise we try to try to spot directories by a heuristic
- # (this is a more complicated issue than it first appears)
- if (m/:/ && -d $_) { push(@dirs, $_); next; }
- # Only files should get this far...
- my(@names, $name); # what filenames to look for
- s/^-l//;
- push(@names, $_);
- foreach $dir (@dirs, @dl_library_path) {
- next unless -d $dir;
- $dir =~ s/^([^:]+)$/:$1/;
- $dir =~ s/:$//;
- foreach $name (@names) {
- my($file) = "$dir:$name";
- print STDERR " checking in $dir for $name\n" if $dl_debug;
- if (-f $file) {
- push(@found, $file);
- next arg; # no need to look any further
- }
- }
- }
- next;
- }
-
- # Otherwise we try to try to spot directories by a heuristic
- # (this is a more complicated issue than it first appears)
- if (m:/: && -d $_) { push(@dirs, $_); next; }
-
- # VMS: we may be using native VMS directory syntax instead of
- # Unix emulation, so check this as well
- if ($Is_VMS && /[:>\]]/ && -d $_) { push(@dirs, $_); next; }
-
- # Only files should get this far...
- my(@names, $name); # what filenames to look for
- if (m:-l: ) { # convert -lname to appropriate library name
- s/-l//;
- push(@names,"lib$_.$dl_so");
- push(@names,"lib$_.a");
- } else { # Umm, a bare name. Try various alternatives:
- # these should be ordered with the most likely first
- push(@names,"$_.$dl_ext") unless m/\.$dl_ext$/o;
- push(@names,"$_.$dl_so") unless m/\.$dl_so$/o;
- push(@names,"lib$_.$dl_so") unless m:/:;
- push(@names,"$_.a") if !m/\.a$/ and $dlsrc eq "dl_dld.xs";
- push(@names, $_);
- }
- foreach $dir (@dirs, @dl_library_path) {
- next unless -d $dir;
- chop($dir = VMS::Filespec::unixpath($dir)) if $Is_VMS;
- foreach $name (@names) {
- my($file) = "$dir/$name";
- print STDERR " checking in $dir for $name\n" if $dl_debug;
- $file = ($do_expand) ? dl_expandspec($file) : (-f $file && $file);
- #$file = _check_file($file);
- if ($file) {
- push(@found, $file);
- next arg; # no need to look any further
- }
- }
- }
- }
- if ($dl_debug) {
- foreach(@dirs) {
- print STDERR " dl_findfile ignored non-existent directory: $_\n" unless -d $_;
- }
- print STDERR "dl_findfile found: @found\n";
- }
- return $found[0] unless wantarray;
- @found;
-}
-
-# end of DynaLoader::dl_findfile
-1;
diff --git a/Master/xemtex/perl/lib/auto/Fcntl/Fcntl.dll b/Master/xemtex/perl/lib/auto/Fcntl/Fcntl.dll
deleted file mode 100644
index 5cea87d315c..00000000000
--- a/Master/xemtex/perl/lib/auto/Fcntl/Fcntl.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/File/Glob/Glob.dll b/Master/xemtex/perl/lib/auto/File/Glob/Glob.dll
deleted file mode 100644
index 0ba64866dd3..00000000000
--- a/Master/xemtex/perl/lib/auto/File/Glob/Glob.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/IO/IO.dll b/Master/xemtex/perl/lib/auto/IO/IO.dll
deleted file mode 100644
index 60d92c3a6c0..00000000000
--- a/Master/xemtex/perl/lib/auto/IO/IO.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/List/Util/Util.dll b/Master/xemtex/perl/lib/auto/List/Util/Util.dll
deleted file mode 100644
index efb06c7f240..00000000000
--- a/Master/xemtex/perl/lib/auto/List/Util/Util.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/POSIX/POSIX.dll b/Master/xemtex/perl/lib/auto/POSIX/POSIX.dll
deleted file mode 100644
index 2e090c5e742..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/POSIX.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/POSIX/abs.al b/Master/xemtex/perl/lib/auto/POSIX/abs.al
deleted file mode 100644
index 298fd61df5c..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/abs.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 391 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\abs.al)"
-sub abs {
- usage "abs(x)" if @_ != 1;
- CORE::abs($_[0]);
-}
-
-# end of POSIX::abs
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/alarm.al b/Master/xemtex/perl/lib/auto/POSIX/alarm.al
deleted file mode 100644
index 3be4c8dc908..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/alarm.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 608 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\alarm.al)"
-sub alarm {
- usage "alarm(seconds)" if @_ != 1;
- CORE::alarm($_[0]);
-}
-
-# end of POSIX::alarm
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/assert.al b/Master/xemtex/perl/lib/auto/POSIX/assert.al
deleted file mode 100644
index def2f62f767..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/assert.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 77 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\assert.al)"
-sub assert {
- usage "assert(expr)" if @_ != 1;
- if (!$_[0]) {
- croak "Assertion failed";
- }
-}
-
-# end of POSIX::assert
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/atan2.al b/Master/xemtex/perl/lib/auto/POSIX/atan2.al
deleted file mode 100644
index 30795e97c4b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/atan2.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 142 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\atan2.al)"
-sub atan2 {
- usage "atan2(x,y)" if @_ != 2;
- CORE::atan2($_[0], $_[1]);
-}
-
-# end of POSIX::atan2
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/atexit.al b/Master/xemtex/perl/lib/auto/POSIX/atexit.al
deleted file mode 100644
index f8e4e9ef393..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/atexit.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 396 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\atexit.al)"
-sub atexit {
- unimpl "atexit() is C-specific: use END {} instead";
-}
-
-# end of POSIX::atexit
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/atof.al b/Master/xemtex/perl/lib/auto/POSIX/atof.al
deleted file mode 100644
index 731267c6b40..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/atof.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 400 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\atof.al)"
-sub atof {
- unimpl "atof() is C-specific, stopped";
-}
-
-# end of POSIX::atof
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/atoi.al b/Master/xemtex/perl/lib/auto/POSIX/atoi.al
deleted file mode 100644
index a48dc6c29c3..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/atoi.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 404 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\atoi.al)"
-sub atoi {
- unimpl "atoi() is C-specific, stopped";
-}
-
-# end of POSIX::atoi
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/atol.al b/Master/xemtex/perl/lib/auto/POSIX/atol.al
deleted file mode 100644
index ba2278ca041..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/atol.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 408 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\atol.al)"
-sub atol {
- unimpl "atol() is C-specific, stopped";
-}
-
-# end of POSIX::atol
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/autosplit.ix b/Master/xemtex/perl/lib/auto/POSIX/autosplit.ix
deleted file mode 100644
index 7f244a3fb86..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/autosplit.ix
+++ /dev/null
@@ -1,153 +0,0 @@
-# Index created by AutoSplit for ..\..\lib\POSIX.pm
-# (file acts as timestamp)
-package POSIX;
-sub usage ;
-sub redef ;
-sub unimpl ;
-sub assert ;
-sub tolower ;
-sub toupper ;
-sub closedir ;
-sub opendir ;
-sub readdir ;
-sub rewinddir ;
-sub errno ;
-sub creat ;
-sub fcntl ;
-sub getgrgid ;
-sub getgrnam ;
-sub atan2 ;
-sub cos ;
-sub exp ;
-sub fabs ;
-sub log ;
-sub pow ;
-sub sin ;
-sub sqrt ;
-sub getpwnam ;
-sub getpwuid ;
-sub longjmp ;
-sub setjmp ;
-sub siglongjmp ;
-sub sigsetjmp ;
-sub kill ;
-sub raise ;
-sub offsetof ;
-sub clearerr ;
-sub fclose ;
-sub fdopen ;
-sub feof ;
-sub fgetc ;
-sub fgets ;
-sub fileno ;
-sub fopen ;
-sub fprintf ;
-sub fputc ;
-sub fputs ;
-sub fread ;
-sub freopen ;
-sub fscanf ;
-sub fseek ;
-sub ferror ;
-sub fflush ;
-sub fgetpos ;
-sub fsetpos ;
-sub ftell ;
-sub fwrite ;
-sub getc ;
-sub getchar ;
-sub gets ;
-sub perror ;
-sub printf ;
-sub putc ;
-sub putchar ;
-sub puts ;
-sub remove ;
-sub rename ;
-sub rewind ;
-sub scanf ;
-sub sprintf ;
-sub sscanf ;
-sub tmpfile ;
-sub ungetc ;
-sub vfprintf ;
-sub vprintf ;
-sub vsprintf ;
-sub abs ;
-sub atexit ;
-sub atof ;
-sub atoi ;
-sub atol ;
-sub bsearch ;
-sub calloc ;
-sub div ;
-sub exit ;
-sub free ;
-sub getenv ;
-sub labs ;
-sub ldiv ;
-sub malloc ;
-sub qsort ;
-sub rand ;
-sub realloc ;
-sub srand ;
-sub system ;
-sub memchr ;
-sub memcmp ;
-sub memcpy ;
-sub memmove ;
-sub memset ;
-sub strcat ;
-sub strchr ;
-sub strcmp ;
-sub strcpy ;
-sub strcspn ;
-sub strerror ;
-sub strlen ;
-sub strncat ;
-sub strncmp ;
-sub strncpy ;
-sub strpbrk ;
-sub strrchr ;
-sub strspn ;
-sub strstr ;
-sub strtok ;
-sub chmod ;
-sub fstat ;
-sub mkdir ;
-sub stat ;
-sub umask ;
-sub wait ;
-sub waitpid ;
-sub gmtime ;
-sub localtime ;
-sub time ;
-sub alarm ;
-sub chdir ;
-sub chown ;
-sub execl ;
-sub execle ;
-sub execlp ;
-sub execv ;
-sub execve ;
-sub execvp ;
-sub fork ;
-sub getegid ;
-sub geteuid ;
-sub getgid ;
-sub getgroups ;
-sub getlogin ;
-sub getpgrp ;
-sub getpid ;
-sub getppid ;
-sub getuid ;
-sub isatty ;
-sub link ;
-sub rmdir ;
-sub setbuf ;
-sub setvbuf ;
-sub sleep ;
-sub unlink ;
-sub utime ;
-sub load_imports ;
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/bsearch.al b/Master/xemtex/perl/lib/auto/POSIX/bsearch.al
deleted file mode 100644
index ae569040e00..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/bsearch.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 412 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\bsearch.al)"
-sub bsearch {
- unimpl "bsearch() not supplied";
-}
-
-# end of POSIX::bsearch
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/calloc.al b/Master/xemtex/perl/lib/auto/POSIX/calloc.al
deleted file mode 100644
index 8375767c30b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/calloc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 416 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\calloc.al)"
-sub calloc {
- unimpl "calloc() is C-specific, stopped";
-}
-
-# end of POSIX::calloc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/chdir.al b/Master/xemtex/perl/lib/auto/POSIX/chdir.al
deleted file mode 100644
index 7ebaad5aa95..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/chdir.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 613 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\chdir.al)"
-sub chdir {
- usage "chdir(directory)" if @_ != 1;
- CORE::chdir($_[0]);
-}
-
-# end of POSIX::chdir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/chmod.al b/Master/xemtex/perl/lib/auto/POSIX/chmod.al
deleted file mode 100644
index e57badcb3dd..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/chmod.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 554 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\chmod.al)"
-sub chmod {
- usage "chmod(mode, filename)" if @_ != 2;
- CORE::chmod($_[0], $_[1]);
-}
-
-# end of POSIX::chmod
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/chown.al b/Master/xemtex/perl/lib/auto/POSIX/chown.al
deleted file mode 100644
index cfc23f0b072..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/chown.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 618 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\chown.al)"
-sub chown {
- usage "chown(filename, uid, gid)" if @_ != 3;
- CORE::chown($_[0], $_[1], $_[2]);
-}
-
-# end of POSIX::chown
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/clearerr.al b/Master/xemtex/perl/lib/auto/POSIX/clearerr.al
deleted file mode 100644
index 8c3b70743cb..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/clearerr.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 222 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\clearerr.al)"
-sub clearerr {
- redef "IO::Handle::clearerr()";
-}
-
-# end of POSIX::clearerr
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/closedir.al b/Master/xemtex/perl/lib/auto/POSIX/closedir.al
deleted file mode 100644
index 7ecdf46af31..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/closedir.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 94 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\closedir.al)"
-sub closedir {
- usage "closedir(dirhandle)" if @_ != 1;
- CORE::closedir($_[0]);
-}
-
-# end of POSIX::closedir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/cos.al b/Master/xemtex/perl/lib/auto/POSIX/cos.al
deleted file mode 100644
index 17a90b50286..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/cos.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 147 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\cos.al)"
-sub cos {
- usage "cos(x)" if @_ != 1;
- CORE::cos($_[0]);
-}
-
-# end of POSIX::cos
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/creat.al b/Master/xemtex/perl/lib/auto/POSIX/creat.al
deleted file mode 100644
index 4645b72ab0e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/creat.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 122 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\creat.al)"
-sub creat {
- usage "creat(filename, mode)" if @_ != 2;
- &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]);
-}
-
-# end of POSIX::creat
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/div.al b/Master/xemtex/perl/lib/auto/POSIX/div.al
deleted file mode 100644
index 272d1d23bbb..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/div.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 420 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\div.al)"
-sub div {
- unimpl "div() is C-specific, stopped";
-}
-
-# end of POSIX::div
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/errno.al b/Master/xemtex/perl/lib/auto/POSIX/errno.al
deleted file mode 100644
index 5195ab1efe1..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/errno.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 117 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\errno.al)"
-sub errno {
- usage "errno()" if @_ != 0;
- $! + 0;
-}
-
-# end of POSIX::errno
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/execl.al b/Master/xemtex/perl/lib/auto/POSIX/execl.al
deleted file mode 100644
index 4f0e27566e8..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/execl.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 623 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\execl.al)"
-sub execl {
- unimpl "execl() is C-specific, stopped";
-}
-
-# end of POSIX::execl
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/execle.al b/Master/xemtex/perl/lib/auto/POSIX/execle.al
deleted file mode 100644
index 303af430e07..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/execle.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 627 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\execle.al)"
-sub execle {
- unimpl "execle() is C-specific, stopped";
-}
-
-# end of POSIX::execle
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/execlp.al b/Master/xemtex/perl/lib/auto/POSIX/execlp.al
deleted file mode 100644
index 772f718e44e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/execlp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 631 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\execlp.al)"
-sub execlp {
- unimpl "execlp() is C-specific, stopped";
-}
-
-# end of POSIX::execlp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/execv.al b/Master/xemtex/perl/lib/auto/POSIX/execv.al
deleted file mode 100644
index 85b211db4ab..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/execv.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 635 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\execv.al)"
-sub execv {
- unimpl "execv() is C-specific, stopped";
-}
-
-# end of POSIX::execv
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/execve.al b/Master/xemtex/perl/lib/auto/POSIX/execve.al
deleted file mode 100644
index 919580cbed1..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/execve.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 639 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\execve.al)"
-sub execve {
- unimpl "execve() is C-specific, stopped";
-}
-
-# end of POSIX::execve
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/execvp.al b/Master/xemtex/perl/lib/auto/POSIX/execvp.al
deleted file mode 100644
index f55f8495f8d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/execvp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 643 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\execvp.al)"
-sub execvp {
- unimpl "execvp() is C-specific, stopped";
-}
-
-# end of POSIX::execvp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/exit.al b/Master/xemtex/perl/lib/auto/POSIX/exit.al
deleted file mode 100644
index b03a880d66a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/exit.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 424 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\exit.al)"
-sub exit {
- usage "exit(status)" if @_ != 1;
- CORE::exit($_[0]);
-}
-
-# end of POSIX::exit
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/exp.al b/Master/xemtex/perl/lib/auto/POSIX/exp.al
deleted file mode 100644
index d15d24f1128..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/exp.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 152 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\exp.al)"
-sub exp {
- usage "exp(x)" if @_ != 1;
- CORE::exp($_[0]);
-}
-
-# end of POSIX::exp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fabs.al b/Master/xemtex/perl/lib/auto/POSIX/fabs.al
deleted file mode 100644
index 2f5cbce7501..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fabs.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 157 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fabs.al)"
-sub fabs {
- usage "fabs(x)" if @_ != 1;
- CORE::abs($_[0]);
-}
-
-# end of POSIX::fabs
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fclose.al b/Master/xemtex/perl/lib/auto/POSIX/fclose.al
deleted file mode 100644
index 1b4f7192da9..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fclose.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 226 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fclose.al)"
-sub fclose {
- redef "IO::Handle::close()";
-}
-
-# end of POSIX::fclose
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fcntl.al b/Master/xemtex/perl/lib/auto/POSIX/fcntl.al
deleted file mode 100644
index 0d8692e6cd7..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fcntl.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 127 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fcntl.al)"
-sub fcntl {
- usage "fcntl(filehandle, cmd, arg)" if @_ != 3;
- CORE::fcntl($_[0], $_[1], $_[2]);
-}
-
-# end of POSIX::fcntl
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fdopen.al b/Master/xemtex/perl/lib/auto/POSIX/fdopen.al
deleted file mode 100644
index cc4b68b4df0..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fdopen.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 230 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fdopen.al)"
-sub fdopen {
- redef "IO::Handle::new_from_fd()";
-}
-
-# end of POSIX::fdopen
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/feof.al b/Master/xemtex/perl/lib/auto/POSIX/feof.al
deleted file mode 100644
index 2aa0580f31e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/feof.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 234 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\feof.al)"
-sub feof {
- redef "IO::Handle::eof()";
-}
-
-# end of POSIX::feof
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/ferror.al b/Master/xemtex/perl/lib/auto/POSIX/ferror.al
deleted file mode 100644
index 864c11609a6..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/ferror.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 282 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\ferror.al)"
-sub ferror {
- redef "IO::Handle::error()";
-}
-
-# end of POSIX::ferror
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fflush.al b/Master/xemtex/perl/lib/auto/POSIX/fflush.al
deleted file mode 100644
index d4084b44569..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fflush.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 286 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fflush.al)"
-sub fflush {
- redef "IO::Handle::flush()";
-}
-
-# end of POSIX::fflush
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fgetc.al b/Master/xemtex/perl/lib/auto/POSIX/fgetc.al
deleted file mode 100644
index 55c6951da44..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fgetc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 238 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fgetc.al)"
-sub fgetc {
- redef "IO::Handle::getc()";
-}
-
-# end of POSIX::fgetc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fgetpos.al b/Master/xemtex/perl/lib/auto/POSIX/fgetpos.al
deleted file mode 100644
index e354fdf5a4f..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fgetpos.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 290 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fgetpos.al)"
-sub fgetpos {
- redef "IO::Seekable::getpos()";
-}
-
-# end of POSIX::fgetpos
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fgets.al b/Master/xemtex/perl/lib/auto/POSIX/fgets.al
deleted file mode 100644
index adb96ebfed6..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fgets.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 242 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fgets.al)"
-sub fgets {
- redef "IO::Handle::gets()";
-}
-
-# end of POSIX::fgets
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fileno.al b/Master/xemtex/perl/lib/auto/POSIX/fileno.al
deleted file mode 100644
index 2b9ef0d0f0b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fileno.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 246 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fileno.al)"
-sub fileno {
- redef "IO::Handle::fileno()";
-}
-
-# end of POSIX::fileno
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fopen.al b/Master/xemtex/perl/lib/auto/POSIX/fopen.al
deleted file mode 100644
index 8a85034722b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fopen.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 250 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fopen.al)"
-sub fopen {
- redef "IO::File::open()";
-}
-
-# end of POSIX::fopen
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fork.al b/Master/xemtex/perl/lib/auto/POSIX/fork.al
deleted file mode 100644
index e7a7de97948..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fork.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 647 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fork.al)"
-sub fork {
- usage "fork()" if @_ != 0;
- CORE::fork;
-}
-
-# end of POSIX::fork
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fprintf.al b/Master/xemtex/perl/lib/auto/POSIX/fprintf.al
deleted file mode 100644
index bdcebf38760..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fprintf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 254 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fprintf.al)"
-sub fprintf {
- unimpl "fprintf() is C-specific--use printf instead";
-}
-
-# end of POSIX::fprintf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fputc.al b/Master/xemtex/perl/lib/auto/POSIX/fputc.al
deleted file mode 100644
index 9233e689600..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fputc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 258 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fputc.al)"
-sub fputc {
- unimpl "fputc() is C-specific--use print instead";
-}
-
-# end of POSIX::fputc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fputs.al b/Master/xemtex/perl/lib/auto/POSIX/fputs.al
deleted file mode 100644
index 885cf9e4bb3..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fputs.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 262 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fputs.al)"
-sub fputs {
- unimpl "fputs() is C-specific--use print instead";
-}
-
-# end of POSIX::fputs
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fread.al b/Master/xemtex/perl/lib/auto/POSIX/fread.al
deleted file mode 100644
index ca411635f63..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fread.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 266 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fread.al)"
-sub fread {
- unimpl "fread() is C-specific--use read instead";
-}
-
-# end of POSIX::fread
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/free.al b/Master/xemtex/perl/lib/auto/POSIX/free.al
deleted file mode 100644
index 83ce0402725..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/free.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 429 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\free.al)"
-sub free {
- unimpl "free() is C-specific, stopped";
-}
-
-# end of POSIX::free
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/freopen.al b/Master/xemtex/perl/lib/auto/POSIX/freopen.al
deleted file mode 100644
index cefb9db1dab..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/freopen.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 270 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\freopen.al)"
-sub freopen {
- unimpl "freopen() is C-specific--use open instead";
-}
-
-# end of POSIX::freopen
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fscanf.al b/Master/xemtex/perl/lib/auto/POSIX/fscanf.al
deleted file mode 100644
index 452877452c6..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fscanf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 274 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fscanf.al)"
-sub fscanf {
- unimpl "fscanf() is C-specific--use <> and regular expressions instead";
-}
-
-# end of POSIX::fscanf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fseek.al b/Master/xemtex/perl/lib/auto/POSIX/fseek.al
deleted file mode 100644
index ffefc229066..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fseek.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 278 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fseek.al)"
-sub fseek {
- redef "IO::Seekable::seek()";
-}
-
-# end of POSIX::fseek
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fsetpos.al b/Master/xemtex/perl/lib/auto/POSIX/fsetpos.al
deleted file mode 100644
index f43fc57c18a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fsetpos.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 294 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fsetpos.al)"
-sub fsetpos {
- redef "IO::Seekable::setpos()";
-}
-
-# end of POSIX::fsetpos
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fstat.al b/Master/xemtex/perl/lib/auto/POSIX/fstat.al
deleted file mode 100644
index cd05ea95007..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fstat.al
+++ /dev/null
@@ -1,17 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 559 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fstat.al)"
-sub fstat {
- usage "fstat(fd)" if @_ != 1;
- local *TMP;
- CORE::open(TMP, "<&$_[0]"); # Gross.
- my @l = CORE::stat(TMP);
- CORE::close(TMP);
- @l;
-}
-
-# end of POSIX::fstat
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/ftell.al b/Master/xemtex/perl/lib/auto/POSIX/ftell.al
deleted file mode 100644
index dd6c347c710..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/ftell.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 298 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\ftell.al)"
-sub ftell {
- redef "IO::Seekable::tell()";
-}
-
-# end of POSIX::ftell
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/fwrite.al b/Master/xemtex/perl/lib/auto/POSIX/fwrite.al
deleted file mode 100644
index d51037b1d17..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/fwrite.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 302 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\fwrite.al)"
-sub fwrite {
- unimpl "fwrite() is C-specific--use print instead";
-}
-
-# end of POSIX::fwrite
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getc.al b/Master/xemtex/perl/lib/auto/POSIX/getc.al
deleted file mode 100644
index 318c4bd6b0f..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getc.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 306 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getc.al)"
-sub getc {
- usage "getc(handle)" if @_ != 1;
- CORE::getc($_[0]);
-}
-
-# end of POSIX::getc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getchar.al b/Master/xemtex/perl/lib/auto/POSIX/getchar.al
deleted file mode 100644
index eb1344fa4cc..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getchar.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 311 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getchar.al)"
-sub getchar {
- usage "getchar()" if @_ != 0;
- CORE::getc(STDIN);
-}
-
-# end of POSIX::getchar
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getegid.al b/Master/xemtex/perl/lib/auto/POSIX/getegid.al
deleted file mode 100644
index 6234a682aae..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getegid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 652 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getegid.al)"
-sub getegid {
- usage "getegid()" if @_ != 0;
- $) + 0;
-}
-
-# end of POSIX::getegid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getenv.al b/Master/xemtex/perl/lib/auto/POSIX/getenv.al
deleted file mode 100644
index 7ca5395c458..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getenv.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 433 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getenv.al)"
-sub getenv {
- usage "getenv(name)" if @_ != 1;
- $ENV{$_[0]};
-}
-
-# end of POSIX::getenv
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/geteuid.al b/Master/xemtex/perl/lib/auto/POSIX/geteuid.al
deleted file mode 100644
index 829472d16ae..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/geteuid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 657 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\geteuid.al)"
-sub geteuid {
- usage "geteuid()" if @_ != 0;
- $> + 0;
-}
-
-# end of POSIX::geteuid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getgid.al b/Master/xemtex/perl/lib/auto/POSIX/getgid.al
deleted file mode 100644
index b9f60fcea02..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getgid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 662 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getgid.al)"
-sub getgid {
- usage "getgid()" if @_ != 0;
- $( + 0;
-}
-
-# end of POSIX::getgid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getgrgid.al b/Master/xemtex/perl/lib/auto/POSIX/getgrgid.al
deleted file mode 100644
index be95e0badbb..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getgrgid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 132 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getgrgid.al)"
-sub getgrgid {
- usage "getgrgid(gid)" if @_ != 1;
- CORE::getgrgid($_[0]);
-}
-
-# end of POSIX::getgrgid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getgrnam.al b/Master/xemtex/perl/lib/auto/POSIX/getgrnam.al
deleted file mode 100644
index 8cda0521600..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getgrnam.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 137 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getgrnam.al)"
-sub getgrnam {
- usage "getgrnam(name)" if @_ != 1;
- CORE::getgrnam($_[0]);
-}
-
-# end of POSIX::getgrnam
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getgroups.al b/Master/xemtex/perl/lib/auto/POSIX/getgroups.al
deleted file mode 100644
index e3a31459b38..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getgroups.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 667 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getgroups.al)"
-sub getgroups {
- usage "getgroups()" if @_ != 0;
- my %seen;
- grep(!$seen{$_}++, split(' ', $) ));
-}
-
-# end of POSIX::getgroups
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getlogin.al b/Master/xemtex/perl/lib/auto/POSIX/getlogin.al
deleted file mode 100644
index 3b9259b5f95..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getlogin.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 673 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getlogin.al)"
-sub getlogin {
- usage "getlogin()" if @_ != 0;
- CORE::getlogin();
-}
-
-# end of POSIX::getlogin
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getpgrp.al b/Master/xemtex/perl/lib/auto/POSIX/getpgrp.al
deleted file mode 100644
index b4771bcd799..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getpgrp.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 678 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getpgrp.al)"
-sub getpgrp {
- usage "getpgrp()" if @_ != 0;
- CORE::getpgrp;
-}
-
-# end of POSIX::getpgrp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getpid.al b/Master/xemtex/perl/lib/auto/POSIX/getpid.al
deleted file mode 100644
index b85b2304d38..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getpid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 683 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getpid.al)"
-sub getpid {
- usage "getpid()" if @_ != 0;
- $$;
-}
-
-# end of POSIX::getpid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getppid.al b/Master/xemtex/perl/lib/auto/POSIX/getppid.al
deleted file mode 100644
index 66b4877dc31..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getppid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 688 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getppid.al)"
-sub getppid {
- usage "getppid()" if @_ != 0;
- CORE::getppid;
-}
-
-# end of POSIX::getppid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getpwnam.al b/Master/xemtex/perl/lib/auto/POSIX/getpwnam.al
deleted file mode 100644
index 89538d13b37..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getpwnam.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 182 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getpwnam.al)"
-sub getpwnam {
- usage "getpwnam(name)" if @_ != 1;
- CORE::getpwnam($_[0]);
-}
-
-# end of POSIX::getpwnam
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getpwuid.al b/Master/xemtex/perl/lib/auto/POSIX/getpwuid.al
deleted file mode 100644
index 27c8642d36b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getpwuid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 187 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getpwuid.al)"
-sub getpwuid {
- usage "getpwuid(uid)" if @_ != 1;
- CORE::getpwuid($_[0]);
-}
-
-# end of POSIX::getpwuid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/gets.al b/Master/xemtex/perl/lib/auto/POSIX/gets.al
deleted file mode 100644
index ba8caa9cc5e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/gets.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 316 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\gets.al)"
-sub gets {
- usage "gets()" if @_ != 0;
- scalar <STDIN>;
-}
-
-# end of POSIX::gets
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/getuid.al b/Master/xemtex/perl/lib/auto/POSIX/getuid.al
deleted file mode 100644
index c3a7a1e993f..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/getuid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 693 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\getuid.al)"
-sub getuid {
- usage "getuid()" if @_ != 0;
- $<;
-}
-
-# end of POSIX::getuid
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/gmtime.al b/Master/xemtex/perl/lib/auto/POSIX/gmtime.al
deleted file mode 100644
index 4f4b26f658a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/gmtime.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 593 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\gmtime.al)"
-sub gmtime {
- usage "gmtime(time)" if @_ != 1;
- CORE::gmtime($_[0]);
-}
-
-# end of POSIX::gmtime
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/isatty.al b/Master/xemtex/perl/lib/auto/POSIX/isatty.al
deleted file mode 100644
index aff49f6fa73..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/isatty.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 698 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\isatty.al)"
-sub isatty {
- usage "isatty(filehandle)" if @_ != 1;
- -t $_[0];
-}
-
-# end of POSIX::isatty
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/kill.al b/Master/xemtex/perl/lib/auto/POSIX/kill.al
deleted file mode 100644
index ed4544cd1b8..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/kill.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 208 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\kill.al)"
-sub kill {
- usage "kill(pid, sig)" if @_ != 2;
- CORE::kill $_[1], $_[0];
-}
-
-# end of POSIX::kill
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/labs.al b/Master/xemtex/perl/lib/auto/POSIX/labs.al
deleted file mode 100644
index cb2aee982ec..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/labs.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 438 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\labs.al)"
-sub labs {
- unimpl "labs() is C-specific, use abs instead";
-}
-
-# end of POSIX::labs
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/ldiv.al b/Master/xemtex/perl/lib/auto/POSIX/ldiv.al
deleted file mode 100644
index e30e8dddbb6..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/ldiv.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 442 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\ldiv.al)"
-sub ldiv {
- unimpl "ldiv() is C-specific, use / and int instead";
-}
-
-# end of POSIX::ldiv
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/link.al b/Master/xemtex/perl/lib/auto/POSIX/link.al
deleted file mode 100644
index 7f2cc18847f..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/link.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 703 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\link.al)"
-sub link {
- usage "link(oldfilename, newfilename)" if @_ != 2;
- CORE::link($_[0], $_[1]);
-}
-
-# end of POSIX::link
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/load_imports.al b/Master/xemtex/perl/lib/auto/POSIX/load_imports.al
deleted file mode 100644
index 5659bce963d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/load_imports.al
+++ /dev/null
@@ -1,224 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 736 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\load_imports.al)"
-sub load_imports {
-%EXPORT_TAGS = (
-
- assert_h => [qw(assert NDEBUG)],
-
- ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
- isprint ispunct isspace isupper isxdigit tolower toupper)],
-
- dirent_h => [],
-
- errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT
- EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED
- ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT
- EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS
- EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH
- ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM
- ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
- ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM
- EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE
- ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT
- ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY
- EUSERS EWOULDBLOCK EXDEV errno)],
-
- fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK
- F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK
- O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
- O_RDONLY O_RDWR O_TRUNC O_WRONLY
- creat
- SEEK_CUR SEEK_END SEEK_SET
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
- S_IWGRP S_IWOTH S_IWUSR)],
-
- float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
- DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP
- DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP
- FLT_DIG FLT_EPSILON FLT_MANT_DIG
- FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP
- FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP
- FLT_RADIX FLT_ROUNDS
- LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG
- LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP
- LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)],
-
- grp_h => [],
-
- limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX
- INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON
- MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX
- PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN
- SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX
- ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX
- _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT
- _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX
- _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX
- _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)],
-
- locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
- LC_MONETARY LC_NUMERIC LC_TIME NULL
- localeconv setlocale)],
-
- math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
- frexp ldexp log10 modf pow sinh tan tanh)],
-
- pwd_h => [],
-
- setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)],
-
- signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK
- SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM
- SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL
- SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN
- SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR
- SIG_IGN SIG_SETMASK SIG_UNBLOCK raise sigaction signal
- sigpending sigprocmask sigsuspend)],
-
- stdarg_h => [],
-
- stddef_h => [qw(NULL offsetof)],
-
- stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid
- L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET
- STREAM_MAX TMP_MAX stderr stdin stdout
- clearerr fclose fdopen feof ferror fflush fgetc fgetpos
- fgets fopen fprintf fputc fputs fread freopen
- fscanf fseek fsetpos ftell fwrite getchar gets
- perror putc putchar puts remove rewind
- scanf setbuf setvbuf sscanf tmpfile tmpnam
- ungetc vfprintf vprintf vsprintf)],
-
- stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX
- abort atexit atof atoi atol bsearch calloc div
- free getenv labs ldiv malloc mblen mbstowcs mbtowc
- qsort realloc strtod strtol strtoul wcstombs wctomb)],
-
- string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat
- strchr strcmp strcoll strcpy strcspn strerror strlen
- strncat strncmp strncpy strpbrk strrchr strspn strstr
- strtok strxfrm)],
-
- sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
- S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
- fstat mkfifo)],
-
- sys_times_h => [],
-
- sys_types_h => [],
-
- sys_utsname_h => [qw(uname)],
-
- sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED
- WNOHANG WSTOPSIG WTERMSIG WUNTRACED)],
-
- termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400
- B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL
- CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK
- ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR
- INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST
- PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION
- TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
- TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART
- VSTOP VSUSP VTIME
- cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain
- tcflow tcflush tcgetattr tcsendbreak tcsetattr )],
-
- time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime
- difftime mktime strftime tzset tzname)],
-
- unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK
- _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON
- _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX
- _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED
- _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS
- _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX
- _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL
- _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS
- _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
- _exit access ctermid cuserid
- dup2 dup execl execle execlp execv execve execvp
- fpathconf getcwd getegid geteuid getgid getgroups
- getpid getuid isatty lseek pathconf pause setgid setpgid
- setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)],
-
- utime_h => [],
-
-);
-
-# Exporter::export_tags();
-for (values %EXPORT_TAGS) {
- push @EXPORT, @$_;
-}
-
-@EXPORT_OK = qw(
- abs
- alarm
- atan2
- chdir
- chmod
- chown
- close
- closedir
- cos
- exit
- exp
- fcntl
- fileno
- fork
- getc
- getgrgid
- getgrnam
- getlogin
- getpgrp
- getppid
- getpwnam
- getpwuid
- gmtime
- isatty
- kill
- link
- localtime
- log
- mkdir
- nice
- open
- opendir
- pipe
- printf
- rand
- read
- readdir
- rename
- rewinddir
- rmdir
- sin
- sleep
- sprintf
- sqrt
- srand
- stat
- system
- time
- times
- umask
- unlink
- utime
- wait
- waitpid
- write
-);
-
-require Exporter;
-}
-
-1;
-# end of POSIX::load_imports
diff --git a/Master/xemtex/perl/lib/auto/POSIX/localtime.al b/Master/xemtex/perl/lib/auto/POSIX/localtime.al
deleted file mode 100644
index 327eec0044c..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/localtime.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 598 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\localtime.al)"
-sub localtime {
- usage "localtime(time)" if @_ != 1;
- CORE::localtime($_[0]);
-}
-
-# end of POSIX::localtime
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/log.al b/Master/xemtex/perl/lib/auto/POSIX/log.al
deleted file mode 100644
index b04b0689863..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/log.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 162 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\log.al)"
-sub log {
- usage "log(x)" if @_ != 1;
- CORE::log($_[0]);
-}
-
-# end of POSIX::log
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/longjmp.al b/Master/xemtex/perl/lib/auto/POSIX/longjmp.al
deleted file mode 100644
index 2edb512681b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/longjmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 192 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\longjmp.al)"
-sub longjmp {
- unimpl "longjmp() is C-specific: use die instead";
-}
-
-# end of POSIX::longjmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/malloc.al b/Master/xemtex/perl/lib/auto/POSIX/malloc.al
deleted file mode 100644
index c7afafcbb7a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/malloc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 446 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\malloc.al)"
-sub malloc {
- unimpl "malloc() is C-specific, stopped";
-}
-
-# end of POSIX::malloc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/memchr.al b/Master/xemtex/perl/lib/auto/POSIX/memchr.al
deleted file mode 100644
index 8de2367abd2..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/memchr.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 471 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\memchr.al)"
-sub memchr {
- unimpl "memchr() is C-specific, use index() instead";
-}
-
-# end of POSIX::memchr
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/memcmp.al b/Master/xemtex/perl/lib/auto/POSIX/memcmp.al
deleted file mode 100644
index 91169494c1d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/memcmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 475 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\memcmp.al)"
-sub memcmp {
- unimpl "memcmp() is C-specific, use eq instead";
-}
-
-# end of POSIX::memcmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/memcpy.al b/Master/xemtex/perl/lib/auto/POSIX/memcpy.al
deleted file mode 100644
index 39afe5ecfd9..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/memcpy.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 479 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\memcpy.al)"
-sub memcpy {
- unimpl "memcpy() is C-specific, use = instead";
-}
-
-# end of POSIX::memcpy
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/memmove.al b/Master/xemtex/perl/lib/auto/POSIX/memmove.al
deleted file mode 100644
index 14643d3610b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/memmove.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 483 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\memmove.al)"
-sub memmove {
- unimpl "memmove() is C-specific, use = instead";
-}
-
-# end of POSIX::memmove
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/memset.al b/Master/xemtex/perl/lib/auto/POSIX/memset.al
deleted file mode 100644
index ea5df704a5e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/memset.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 487 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\memset.al)"
-sub memset {
- unimpl "memset() is C-specific, use x instead";
-}
-
-# end of POSIX::memset
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/mkdir.al b/Master/xemtex/perl/lib/auto/POSIX/mkdir.al
deleted file mode 100644
index b3ce65784b5..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/mkdir.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 568 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\mkdir.al)"
-sub mkdir {
- usage "mkdir(directoryname, mode)" if @_ != 2;
- CORE::mkdir($_[0], $_[1]);
-}
-
-# end of POSIX::mkdir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/offsetof.al b/Master/xemtex/perl/lib/auto/POSIX/offsetof.al
deleted file mode 100644
index dc4d5065c1d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/offsetof.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 218 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\offsetof.al)"
-sub offsetof {
- unimpl "offsetof() is C-specific, stopped";
-}
-
-# end of POSIX::offsetof
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/opendir.al b/Master/xemtex/perl/lib/auto/POSIX/opendir.al
deleted file mode 100644
index 40aa101f3ca..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/opendir.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 99 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\opendir.al)"
-sub opendir {
- usage "opendir(directory)" if @_ != 1;
- my $dirhandle;
- CORE::opendir($dirhandle, $_[0])
- ? $dirhandle
- : undef;
-}
-
-# end of POSIX::opendir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/perror.al b/Master/xemtex/perl/lib/auto/POSIX/perror.al
deleted file mode 100644
index 2f65bc3a0cf..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/perror.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 321 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\perror.al)"
-sub perror {
- print STDERR "@_: " if @_;
- print STDERR $!,"\n";
-}
-
-# end of POSIX::perror
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/pow.al b/Master/xemtex/perl/lib/auto/POSIX/pow.al
deleted file mode 100644
index 5f199d5fb29..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/pow.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 167 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\pow.al)"
-sub pow {
- usage "pow(x,exponent)" if @_ != 2;
- $_[0] ** $_[1];
-}
-
-# end of POSIX::pow
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/printf.al b/Master/xemtex/perl/lib/auto/POSIX/printf.al
deleted file mode 100644
index 8c27863f9d9..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/printf.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 326 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\printf.al)"
-sub printf {
- usage "printf(pattern, args...)" if @_ < 1;
- CORE::printf STDOUT @_;
-}
-
-# end of POSIX::printf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/putc.al b/Master/xemtex/perl/lib/auto/POSIX/putc.al
deleted file mode 100644
index 773c795c192..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/putc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 331 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\putc.al)"
-sub putc {
- unimpl "putc() is C-specific--use print instead";
-}
-
-# end of POSIX::putc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/putchar.al b/Master/xemtex/perl/lib/auto/POSIX/putchar.al
deleted file mode 100644
index b9ca943a724..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/putchar.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 335 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\putchar.al)"
-sub putchar {
- unimpl "putchar() is C-specific--use print instead";
-}
-
-# end of POSIX::putchar
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/puts.al b/Master/xemtex/perl/lib/auto/POSIX/puts.al
deleted file mode 100644
index 3b2dd7d90a6..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/puts.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 339 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\puts.al)"
-sub puts {
- unimpl "puts() is C-specific--use print instead";
-}
-
-# end of POSIX::puts
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/qsort.al b/Master/xemtex/perl/lib/auto/POSIX/qsort.al
deleted file mode 100644
index eb9c6d3586a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/qsort.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 450 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\qsort.al)"
-sub qsort {
- unimpl "qsort() is C-specific, use sort instead";
-}
-
-# end of POSIX::qsort
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/raise.al b/Master/xemtex/perl/lib/auto/POSIX/raise.al
deleted file mode 100644
index 1399c31f800..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/raise.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 213 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\raise.al)"
-sub raise {
- usage "raise(sig)" if @_ != 1;
- CORE::kill $_[0], $$; # Is this good enough?
-}
-
-# end of POSIX::raise
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/rand.al b/Master/xemtex/perl/lib/auto/POSIX/rand.al
deleted file mode 100644
index 0a8b3982e3a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/rand.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 454 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\rand.al)"
-sub rand {
- unimpl "rand() is non-portable, use Perl's rand instead";
-}
-
-# end of POSIX::rand
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/readdir.al b/Master/xemtex/perl/lib/auto/POSIX/readdir.al
deleted file mode 100644
index 3c2e72fd0a0..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/readdir.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 107 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\readdir.al)"
-sub readdir {
- usage "readdir(dirhandle)" if @_ != 1;
- CORE::readdir($_[0]);
-}
-
-# end of POSIX::readdir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/realloc.al b/Master/xemtex/perl/lib/auto/POSIX/realloc.al
deleted file mode 100644
index 28efa2ccec5..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/realloc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 458 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\realloc.al)"
-sub realloc {
- unimpl "realloc() is C-specific, stopped";
-}
-
-# end of POSIX::realloc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/redef.al b/Master/xemtex/perl/lib/auto/POSIX/redef.al
deleted file mode 100644
index 0265989b228..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/redef.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 66 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\redef.al)"
-sub redef {
- my ($mess) = @_;
- croak "Use method $mess instead";
-}
-
-# end of POSIX::redef
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/remove.al b/Master/xemtex/perl/lib/auto/POSIX/remove.al
deleted file mode 100644
index e07b2fc0bd3..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/remove.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 343 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\remove.al)"
-sub remove {
- usage "remove(filename)" if @_ != 1;
- CORE::unlink($_[0]);
-}
-
-# end of POSIX::remove
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/rename.al b/Master/xemtex/perl/lib/auto/POSIX/rename.al
deleted file mode 100644
index 10e8447f8b8..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/rename.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 348 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\rename.al)"
-sub rename {
- usage "rename(oldfilename, newfilename)" if @_ != 2;
- CORE::rename($_[0], $_[1]);
-}
-
-# end of POSIX::rename
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/rewind.al b/Master/xemtex/perl/lib/auto/POSIX/rewind.al
deleted file mode 100644
index 5d7bc6fc17c..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/rewind.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 353 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\rewind.al)"
-sub rewind {
- usage "rewind(filehandle)" if @_ != 1;
- CORE::seek($_[0],0,0);
-}
-
-# end of POSIX::rewind
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/rewinddir.al b/Master/xemtex/perl/lib/auto/POSIX/rewinddir.al
deleted file mode 100644
index 04ba2209b07..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/rewinddir.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 112 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\rewinddir.al)"
-sub rewinddir {
- usage "rewinddir(dirhandle)" if @_ != 1;
- CORE::rewinddir($_[0]);
-}
-
-# end of POSIX::rewinddir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/rmdir.al b/Master/xemtex/perl/lib/auto/POSIX/rmdir.al
deleted file mode 100644
index 983a2262e9a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/rmdir.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 708 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\rmdir.al)"
-sub rmdir {
- usage "rmdir(directoryname)" if @_ != 1;
- CORE::rmdir($_[0]);
-}
-
-# end of POSIX::rmdir
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/scanf.al b/Master/xemtex/perl/lib/auto/POSIX/scanf.al
deleted file mode 100644
index 20774a6e869..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/scanf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 358 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\scanf.al)"
-sub scanf {
- unimpl "scanf() is C-specific--use <> and regular expressions instead";
-}
-
-# end of POSIX::scanf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/setbuf.al b/Master/xemtex/perl/lib/auto/POSIX/setbuf.al
deleted file mode 100644
index 3dee5e3eb99..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/setbuf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 713 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\setbuf.al)"
-sub setbuf {
- redef "IO::Handle::setbuf()";
-}
-
-# end of POSIX::setbuf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/setjmp.al b/Master/xemtex/perl/lib/auto/POSIX/setjmp.al
deleted file mode 100644
index 81cddb9ed62..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/setjmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 196 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\setjmp.al)"
-sub setjmp {
- unimpl "setjmp() is C-specific: use eval {} instead";
-}
-
-# end of POSIX::setjmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/setvbuf.al b/Master/xemtex/perl/lib/auto/POSIX/setvbuf.al
deleted file mode 100644
index db1a791cb2c..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/setvbuf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 717 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\setvbuf.al)"
-sub setvbuf {
- redef "IO::Handle::setvbuf()";
-}
-
-# end of POSIX::setvbuf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/siglongjmp.al b/Master/xemtex/perl/lib/auto/POSIX/siglongjmp.al
deleted file mode 100644
index bfbf9916c52..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/siglongjmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 200 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\siglongjmp.al)"
-sub siglongjmp {
- unimpl "siglongjmp() is C-specific: use die instead";
-}
-
-# end of POSIX::siglongjmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/sigsetjmp.al b/Master/xemtex/perl/lib/auto/POSIX/sigsetjmp.al
deleted file mode 100644
index ef8ad5ec087..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/sigsetjmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 204 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\sigsetjmp.al)"
-sub sigsetjmp {
- unimpl "sigsetjmp() is C-specific: use eval {} instead";
-}
-
-# end of POSIX::sigsetjmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/sin.al b/Master/xemtex/perl/lib/auto/POSIX/sin.al
deleted file mode 100644
index 97501e7fc5d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/sin.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 172 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\sin.al)"
-sub sin {
- usage "sin(x)" if @_ != 1;
- CORE::sin($_[0]);
-}
-
-# end of POSIX::sin
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/sleep.al b/Master/xemtex/perl/lib/auto/POSIX/sleep.al
deleted file mode 100644
index ed44ef67ceb..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/sleep.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 721 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\sleep.al)"
-sub sleep {
- usage "sleep(seconds)" if @_ != 1;
- $_[0] - CORE::sleep($_[0]);
-}
-
-# end of POSIX::sleep
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/sprintf.al b/Master/xemtex/perl/lib/auto/POSIX/sprintf.al
deleted file mode 100644
index dc02870b96a..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/sprintf.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 362 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\sprintf.al)"
-sub sprintf {
- usage "sprintf(pattern,args)" if @_ == 0;
- CORE::sprintf(shift,@_);
-}
-
-# end of POSIX::sprintf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/sqrt.al b/Master/xemtex/perl/lib/auto/POSIX/sqrt.al
deleted file mode 100644
index def6780521d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/sqrt.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 177 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\sqrt.al)"
-sub sqrt {
- usage "sqrt(x)" if @_ != 1;
- CORE::sqrt($_[0]);
-}
-
-# end of POSIX::sqrt
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/srand.al b/Master/xemtex/perl/lib/auto/POSIX/srand.al
deleted file mode 100644
index 6f4a41042b3..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/srand.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 462 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\srand.al)"
-sub srand {
- unimpl "srand()";
-}
-
-# end of POSIX::srand
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/sscanf.al b/Master/xemtex/perl/lib/auto/POSIX/sscanf.al
deleted file mode 100644
index fe5d61fe665..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/sscanf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 367 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\sscanf.al)"
-sub sscanf {
- unimpl "sscanf() is C-specific--use regular expressions instead";
-}
-
-# end of POSIX::sscanf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/stat.al b/Master/xemtex/perl/lib/auto/POSIX/stat.al
deleted file mode 100644
index eb483e18f70..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/stat.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 573 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\stat.al)"
-sub stat {
- usage "stat(filename)" if @_ != 1;
- CORE::stat($_[0]);
-}
-
-# end of POSIX::stat
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strcat.al b/Master/xemtex/perl/lib/auto/POSIX/strcat.al
deleted file mode 100644
index ed3e4fe582c..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strcat.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 491 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strcat.al)"
-sub strcat {
- unimpl "strcat() is C-specific, use .= instead";
-}
-
-# end of POSIX::strcat
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strchr.al b/Master/xemtex/perl/lib/auto/POSIX/strchr.al
deleted file mode 100644
index 7802d2dc57d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strchr.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 495 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strchr.al)"
-sub strchr {
- unimpl "strchr() is C-specific, use index() instead";
-}
-
-# end of POSIX::strchr
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strcmp.al b/Master/xemtex/perl/lib/auto/POSIX/strcmp.al
deleted file mode 100644
index 07127207853..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strcmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 499 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strcmp.al)"
-sub strcmp {
- unimpl "strcmp() is C-specific, use eq instead";
-}
-
-# end of POSIX::strcmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strcpy.al b/Master/xemtex/perl/lib/auto/POSIX/strcpy.al
deleted file mode 100644
index fc48c859e2e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strcpy.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 503 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strcpy.al)"
-sub strcpy {
- unimpl "strcpy() is C-specific, use = instead";
-}
-
-# end of POSIX::strcpy
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strcspn.al b/Master/xemtex/perl/lib/auto/POSIX/strcspn.al
deleted file mode 100644
index 1347dc79fd3..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strcspn.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 507 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strcspn.al)"
-sub strcspn {
- unimpl "strcspn() is C-specific, use regular expressions instead";
-}
-
-# end of POSIX::strcspn
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strerror.al b/Master/xemtex/perl/lib/auto/POSIX/strerror.al
deleted file mode 100644
index 55dcb64350c..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strerror.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 511 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strerror.al)"
-sub strerror {
- usage "strerror(errno)" if @_ != 1;
- local $! = $_[0];
- $! . "";
-}
-
-# end of POSIX::strerror
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strlen.al b/Master/xemtex/perl/lib/auto/POSIX/strlen.al
deleted file mode 100644
index f417d1755aa..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strlen.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 517 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strlen.al)"
-sub strlen {
- unimpl "strlen() is C-specific, use length instead";
-}
-
-# end of POSIX::strlen
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strncat.al b/Master/xemtex/perl/lib/auto/POSIX/strncat.al
deleted file mode 100644
index bb890c89858..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strncat.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 521 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strncat.al)"
-sub strncat {
- unimpl "strncat() is C-specific, use .= instead";
-}
-
-# end of POSIX::strncat
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strncmp.al b/Master/xemtex/perl/lib/auto/POSIX/strncmp.al
deleted file mode 100644
index f8f0b2b5f84..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strncmp.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 525 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strncmp.al)"
-sub strncmp {
- unimpl "strncmp() is C-specific, use eq instead";
-}
-
-# end of POSIX::strncmp
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strncpy.al b/Master/xemtex/perl/lib/auto/POSIX/strncpy.al
deleted file mode 100644
index a9680b90514..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strncpy.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 529 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strncpy.al)"
-sub strncpy {
- unimpl "strncpy() is C-specific, use = instead";
-}
-
-# end of POSIX::strncpy
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strpbrk.al b/Master/xemtex/perl/lib/auto/POSIX/strpbrk.al
deleted file mode 100644
index 18e7fa29bcf..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strpbrk.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 533 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strpbrk.al)"
-sub strpbrk {
- unimpl "strpbrk() is C-specific, stopped";
-}
-
-# end of POSIX::strpbrk
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strrchr.al b/Master/xemtex/perl/lib/auto/POSIX/strrchr.al
deleted file mode 100644
index 8a0ad300422..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strrchr.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 537 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strrchr.al)"
-sub strrchr {
- unimpl "strrchr() is C-specific, use rindex() instead";
-}
-
-# end of POSIX::strrchr
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strspn.al b/Master/xemtex/perl/lib/auto/POSIX/strspn.al
deleted file mode 100644
index 162341b05a3..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strspn.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 541 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strspn.al)"
-sub strspn {
- unimpl "strspn() is C-specific, stopped";
-}
-
-# end of POSIX::strspn
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strstr.al b/Master/xemtex/perl/lib/auto/POSIX/strstr.al
deleted file mode 100644
index c99a491a780..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strstr.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 545 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strstr.al)"
-sub strstr {
- usage "strstr(big, little)" if @_ != 2;
- CORE::index($_[0], $_[1]);
-}
-
-# end of POSIX::strstr
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/strtok.al b/Master/xemtex/perl/lib/auto/POSIX/strtok.al
deleted file mode 100644
index a574fde27ed..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/strtok.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 550 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\strtok.al)"
-sub strtok {
- unimpl "strtok() is C-specific, stopped";
-}
-
-# end of POSIX::strtok
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/system.al b/Master/xemtex/perl/lib/auto/POSIX/system.al
deleted file mode 100644
index 976f439cc35..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/system.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 466 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\system.al)"
-sub system {
- usage "system(command)" if @_ != 1;
- CORE::system($_[0]);
-}
-
-# end of POSIX::system
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/time.al b/Master/xemtex/perl/lib/auto/POSIX/time.al
deleted file mode 100644
index 3f90c0a999d..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/time.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 603 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\time.al)"
-sub time {
- usage "time()" if @_ != 0;
- CORE::time;
-}
-
-# end of POSIX::time
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/tmpfile.al b/Master/xemtex/perl/lib/auto/POSIX/tmpfile.al
deleted file mode 100644
index a64d2aff625..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/tmpfile.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 371 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\tmpfile.al)"
-sub tmpfile {
- redef "IO::File::new_tmpfile()";
-}
-
-# end of POSIX::tmpfile
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/tolower.al b/Master/xemtex/perl/lib/auto/POSIX/tolower.al
deleted file mode 100644
index 8ec7b584813..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/tolower.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 84 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\tolower.al)"
-sub tolower {
- usage "tolower(string)" if @_ != 1;
- lc($_[0]);
-}
-
-# end of POSIX::tolower
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/toupper.al b/Master/xemtex/perl/lib/auto/POSIX/toupper.al
deleted file mode 100644
index efc3c3ebeac..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/toupper.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 89 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\toupper.al)"
-sub toupper {
- usage "toupper(string)" if @_ != 1;
- uc($_[0]);
-}
-
-# end of POSIX::toupper
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/umask.al b/Master/xemtex/perl/lib/auto/POSIX/umask.al
deleted file mode 100644
index 6812329253e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/umask.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 578 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\umask.al)"
-sub umask {
- usage "umask(mask)" if @_ != 1;
- CORE::umask($_[0]);
-}
-
-# end of POSIX::umask
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/ungetc.al b/Master/xemtex/perl/lib/auto/POSIX/ungetc.al
deleted file mode 100644
index b384b46b9d2..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/ungetc.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 375 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\ungetc.al)"
-sub ungetc {
- redef "IO::Handle::ungetc()";
-}
-
-# end of POSIX::ungetc
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/unimpl.al b/Master/xemtex/perl/lib/auto/POSIX/unimpl.al
deleted file mode 100644
index b700d3d95b4..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/unimpl.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 71 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\unimpl.al)"
-sub unimpl {
- my ($mess) = @_;
- $mess =~ s/xxx//;
- croak "Unimplemented: POSIX::$mess";
-}
-
-# end of POSIX::unimpl
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/unlink.al b/Master/xemtex/perl/lib/auto/POSIX/unlink.al
deleted file mode 100644
index f8a44b79620..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/unlink.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 726 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\unlink.al)"
-sub unlink {
- usage "unlink(filename)" if @_ != 1;
- CORE::unlink($_[0]);
-}
-
-# end of POSIX::unlink
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/usage.al b/Master/xemtex/perl/lib/auto/POSIX/usage.al
deleted file mode 100644
index e81f8619b5e..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/usage.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 61 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\usage.al)"
-sub usage {
- my ($mess) = @_;
- croak "Usage: POSIX::$mess";
-}
-
-# end of POSIX::usage
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/utime.al b/Master/xemtex/perl/lib/auto/POSIX/utime.al
deleted file mode 100644
index 5ddf502f8cf..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/utime.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 731 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\utime.al)"
-sub utime {
- usage "utime(filename, atime, mtime)" if @_ != 3;
- CORE::utime($_[1], $_[2], $_[0]);
-}
-
-# end of POSIX::utime
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/vfprintf.al b/Master/xemtex/perl/lib/auto/POSIX/vfprintf.al
deleted file mode 100644
index 561853cc60f..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/vfprintf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 379 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\vfprintf.al)"
-sub vfprintf {
- unimpl "vfprintf() is C-specific";
-}
-
-# end of POSIX::vfprintf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/vprintf.al b/Master/xemtex/perl/lib/auto/POSIX/vprintf.al
deleted file mode 100644
index aa597c30eaa..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/vprintf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 383 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\vprintf.al)"
-sub vprintf {
- unimpl "vprintf() is C-specific";
-}
-
-# end of POSIX::vprintf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/vsprintf.al b/Master/xemtex/perl/lib/auto/POSIX/vsprintf.al
deleted file mode 100644
index fcc93ff270b..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/vsprintf.al
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 387 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\vsprintf.al)"
-sub vsprintf {
- unimpl "vsprintf() is C-specific";
-}
-
-# end of POSIX::vsprintf
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/wait.al b/Master/xemtex/perl/lib/auto/POSIX/wait.al
deleted file mode 100644
index bb11314a208..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/wait.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 583 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\wait.al)"
-sub wait {
- usage "wait()" if @_ != 0;
- CORE::wait();
-}
-
-# end of POSIX::wait
-1;
diff --git a/Master/xemtex/perl/lib/auto/POSIX/waitpid.al b/Master/xemtex/perl/lib/auto/POSIX/waitpid.al
deleted file mode 100644
index 2b10e7908b1..00000000000
--- a/Master/xemtex/perl/lib/auto/POSIX/waitpid.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\..\lib\POSIX.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package POSIX;
-
-#line 588 "..\..\lib\POSIX.pm (autosplit into ..\..\lib\auto\POSIX\waitpid.al)"
-sub waitpid {
- usage "waitpid(pid, options)" if @_ != 2;
- CORE::waitpid($_[0], $_[1]);
-}
-
-# end of POSIX::waitpid
-1;
diff --git a/Master/xemtex/perl/lib/auto/SDBM_File/SDBM_File.dll b/Master/xemtex/perl/lib/auto/SDBM_File/SDBM_File.dll
deleted file mode 100644
index 1b5a3da0bb1..00000000000
--- a/Master/xemtex/perl/lib/auto/SDBM_File/SDBM_File.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/Time/HiRes/HiRes.dll b/Master/xemtex/perl/lib/auto/Time/HiRes/HiRes.dll
deleted file mode 100644
index 8e0ebb6ac3e..00000000000
--- a/Master/xemtex/perl/lib/auto/Time/HiRes/HiRes.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/auto/re/re.dll b/Master/xemtex/perl/lib/auto/re/re.dll
deleted file mode 100644
index 6b83e6c3ba1..00000000000
--- a/Master/xemtex/perl/lib/auto/re/re.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/lib/base.pm b/Master/xemtex/perl/lib/base.pm
deleted file mode 100644
index 37f220f63a9..00000000000
--- a/Master/xemtex/perl/lib/base.pm
+++ /dev/null
@@ -1,94 +0,0 @@
-=head1 NAME
-
-base - Establish IS-A relationship with base class at compile time
-
-=head1 SYNOPSIS
-
- package Baz;
- use base qw(Foo Bar);
-
-=head1 DESCRIPTION
-
-Roughly similar in effect to
-
- BEGIN {
- require Foo;
- require Bar;
- push @ISA, qw(Foo Bar);
- }
-
-Will also initialize the %FIELDS hash if one of the base classes has
-it. Multiple inheritance of %FIELDS is not supported. The 'base'
-pragma will croak if multiple base classes have a %FIELDS hash. See
-L<fields> for a description of this feature.
-
-When strict 'vars' is in scope I<base> also let you assign to @ISA
-without having to declare @ISA with the 'vars' pragma first.
-
-If any of the base classes are not loaded yet, I<base> silently
-C<require>s them. Whether to C<require> a base class package is
-determined by the absence of a global $VERSION in the base package.
-If $VERSION is not detected even after loading it, <base> will
-define $VERSION in the base package, setting it to the string
-C<-1, set by base.pm>.
-
-=head1 HISTORY
-
-This module was introduced with Perl 5.004_04.
-
-=head1 SEE ALSO
-
-L<fields>
-
-=cut
-
-package base;
-
-use 5.006_001;
-our $VERSION = "1.03";
-
-sub import {
- my $class = shift;
- my $fields_base;
- my $pkg = caller(0);
-
- foreach my $base (@_) {
- next if $pkg->isa($base);
- my $vglob;
- if ($vglob = ${"$base\::"}{VERSION} and *$vglob{SCALAR}) {
- $$vglob = "-1, set by base.pm" unless defined $$vglob;
- } else {
- eval "require $base";
- # Only ignore "Can't locate" errors from our eval require.
- # Other fatal errors (syntax etc) must be reported.
- die if $@ && $@ !~ /^Can't locate .*? at \(eval /;
- unless (%{"$base\::"}) {
- require Carp;
- Carp::croak("Base class package \"$base\" is empty.\n",
- "\t(Perhaps you need to 'use' the module ",
- "which defines that package first.)");
- }
- ${"$base\::VERSION"} = "-1, set by base.pm" unless defined ${"$base\::VERSION"};
- }
- push @{"$pkg\::ISA"}, $base;
-
- # A simple test like (defined %{"$base\::FIELDS"}) will
- # sometimes produce typo warnings because it would create
- # the hash if it was not present before.
- my $fglob;
- if ($fglob = ${"$base\::"}{"FIELDS"} and *$fglob{HASH}) {
- if ($fields_base) {
- require Carp;
- Carp::croak("Can't multiply inherit %FIELDS");
- } else {
- $fields_base = $base;
- }
- }
- }
- if ($fields_base) {
- require fields;
- fields::inherit($pkg, $fields_base);
- }
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/bytes.pm b/Master/xemtex/perl/lib/bytes.pm
deleted file mode 100644
index cd82abc75b5..00000000000
--- a/Master/xemtex/perl/lib/bytes.pm
+++ /dev/null
@@ -1,68 +0,0 @@
-package bytes;
-
-our $VERSION = '1.00';
-
-$bytes::hint_bits = 0x00000008;
-
-sub import {
- $^H |= $bytes::hint_bits;
-}
-
-sub unimport {
- $^H &= ~$bytes::hint_bits;
-}
-
-sub AUTOLOAD {
- require "bytes_heavy.pl";
- goto &$AUTOLOAD;
-}
-
-sub length ($);
-
-1;
-__END__
-
-=head1 NAME
-
-bytes - Perl pragma to force byte semantics rather than character semantics
-
-=head1 SYNOPSIS
-
- use bytes;
- no bytes;
-
-=head1 DESCRIPTION
-
-The C<use bytes> pragma disables character semantics for the rest of the
-lexical scope in which it appears. C<no bytes> can be used to reverse
-the effect of C<use bytes> within the current lexical scope.
-
-Perl normally assumes character semantics in the presence of character
-data (i.e. data that has come from a source that has been marked as
-being of a particular character encoding). When C<use bytes> is in
-effect, the encoding is temporarily ignored, and each string is treated
-as a series of bytes.
-
-As an example, when Perl sees C<$x = chr(400)>, it encodes the character
-in UTF-8 and stores it in $x. Then it is marked as character data, so,
-for instance, C<length $x> returns C<1>. However, in the scope of the
-C<bytes> pragma, $x is treated as a series of bytes - the bytes that make
-up the UTF8 encoding - and C<length $x> returns C<2>:
-
- $x = chr(400);
- print "Length is ", length $x, "\n"; # "Length is 1"
- printf "Contents are %vd\n", $x; # "Contents are 400"
- {
- use bytes;
- print "Length is ", length $x, "\n"; # "Length is 2"
- printf "Contents are %vd\n", $x; # "Contents are 198.144"
- }
-
-For more on the implications and differences between character
-semantics and byte semantics, see L<perlunicode>.
-
-=head1 SEE ALSO
-
-L<perlunicode>, L<utf8>
-
-=cut
diff --git a/Master/xemtex/perl/lib/bytes_heavy.pl b/Master/xemtex/perl/lib/bytes_heavy.pl
deleted file mode 100644
index 47bdbf91b0d..00000000000
--- a/Master/xemtex/perl/lib/bytes_heavy.pl
+++ /dev/null
@@ -1,8 +0,0 @@
-package bytes;
-
-sub length ($) {
- BEGIN { bytes::import() }
- return CORE::length($_[0]);
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/constant.pm b/Master/xemtex/perl/lib/constant.pm
deleted file mode 100644
index 93086d53985..00000000000
--- a/Master/xemtex/perl/lib/constant.pm
+++ /dev/null
@@ -1,345 +0,0 @@
-package constant;
-
-use strict;
-use 5.006_00;
-use warnings::register;
-
-our($VERSION, %declared);
-$VERSION = '1.04';
-
-#=======================================================================
-
-# Some names are evil choices.
-my %keywords = map +($_, 1), qw{ BEGIN INIT CHECK END DESTROY AUTOLOAD };
-
-my %forced_into_main = map +($_, 1),
- qw{ STDIN STDOUT STDERR ARGV ARGVOUT ENV INC SIG };
-
-my %forbidden = (%keywords, %forced_into_main);
-
-#=======================================================================
-# import() - import symbols into user's namespace
-#
-# What we actually do is define a function in the caller's namespace
-# which returns the value. The function we create will normally
-# be inlined as a constant, thereby avoiding further sub calling
-# overhead.
-#=======================================================================
-sub import {
- my $class = shift;
- return unless @_; # Ignore 'use constant;'
- my %constants = ();
- my $multiple = ref $_[0];
-
- if ( $multiple ) {
- if (ref $_[0] ne 'HASH') {
- require Carp;
- Carp::croak("Invalid reference type '".ref(shift)."' not 'HASH'");
- }
- %constants = %{+shift};
- } else {
- $constants{+shift} = undef;
- }
-
- foreach my $name ( keys %constants ) {
- unless (defined $name) {
- require Carp;
- Carp::croak("Can't use undef as constant name");
- }
- my $pkg = caller;
-
- # Normal constant name
- if ($name =~ /^_?[^\W_0-9]\w*\z/ and !$forbidden{$name}) {
- # Everything is okay
-
- # Name forced into main, but we're not in main. Fatal.
- } elsif ($forced_into_main{$name} and $pkg ne 'main') {
- require Carp;
- Carp::croak("Constant name '$name' is forced into main::");
-
- # Starts with double underscore. Fatal.
- } elsif ($name =~ /^__/) {
- require Carp;
- Carp::croak("Constant name '$name' begins with '__'");
-
- # Maybe the name is tolerable
- } elsif ($name =~ /^[A-Za-z_]\w*\z/) {
- # Then we'll warn only if you've asked for warnings
- if (warnings::enabled()) {
- if ($keywords{$name}) {
- warnings::warn("Constant name '$name' is a Perl keyword");
- } elsif ($forced_into_main{$name}) {
- warnings::warn("Constant name '$name' is " .
- "forced into package main::");
- } else {
- # Catch-all - what did I miss? If you get this error,
- # please let me know what your constant's name was.
- # Write to <rootbeer@redcat.com>. Thanks!
- warnings::warn("Constant name '$name' has unknown problems");
- }
- }
-
- # Looks like a boolean
- # use constant FRED == fred;
- } elsif ($name =~ /^[01]?\z/) {
- require Carp;
- if (@_) {
- Carp::croak("Constant name '$name' is invalid");
- } else {
- Carp::croak("Constant name looks like boolean value");
- }
-
- } else {
- # Must have bad characters
- require Carp;
- Carp::croak("Constant name '$name' has invalid characters");
- }
-
- {
- no strict 'refs';
- my $full_name = "${pkg}::$name";
- $declared{$full_name}++;
- if ($multiple) {
- my $scalar = $constants{$name};
- *$full_name = sub () { $scalar };
- } else {
- if (@_ == 1) {
- my $scalar = $_[0];
- *$full_name = sub () { $scalar };
- } elsif (@_) {
- my @list = @_;
- *$full_name = sub () { @list };
- } else {
- *$full_name = sub () { };
- }
- }
- }
- }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-constant - Perl pragma to declare constants
-
-=head1 SYNOPSIS
-
- use constant PI => 4 * atan2(1, 1);
- use constant DEBUG => 0;
-
- print "Pi equals ", PI, "...\n" if DEBUG;
-
- use constant {
- SEC => 0,
- MIN => 1,
- HOUR => 2,
- MDAY => 3,
- MON => 4,
- YEAR => 5,
- WDAY => 6,
- YDAY => 7,
- ISDST => 8,
- };
-
- use constant WEEKDAYS => qw(
- Sunday Monday Tuesday Wednesday Thursday Friday Saturday
- );
-
- print "Today is ", (WEEKDAYS)[ (localtime)[WDAY] ], ".\n";
-
-=head1 DESCRIPTION
-
-This will declare a symbol to be a constant with the given value.
-
-When you declare a constant such as C<PI> using the method shown
-above, each machine your script runs upon can have as many digits
-of accuracy as it can use. Also, your program will be easier to
-read, more likely to be maintained (and maintained correctly), and
-far less likely to send a space probe to the wrong planet because
-nobody noticed the one equation in which you wrote C<3.14195>.
-
-When a constant is used in an expression, perl replaces it with its
-value at compile time, and may then optimize the expression further.
-In particular, any code in an C<if (CONSTANT)> block will be optimized
-away if the constant is false.
-
-=head1 NOTES
-
-As with all C<use> directives, defining a constant happens at
-compile time. Thus, it's probably not correct to put a constant
-declaration inside of a conditional statement (like C<if ($foo)
-{ use constant ... }>).
-
-Constants defined using this module cannot be interpolated into
-strings like variables. However, concatenation works just fine:
-
- print "Pi equals PI...\n"; # WRONG: does not expand "PI"
- print "Pi equals ".PI."...\n"; # right
-
-Even though a reference may be declared as a constant, the reference may
-point to data which may be changed, as this code shows.
-
- use constant ARRAY => [ 1,2,3,4 ];
- print ARRAY->[1];
- ARRAY->[1] = " be changed";
- print ARRAY->[1];
-
-Dereferencing constant references incorrectly (such as using an array
-subscript on a constant hash reference, or vice versa) will be trapped at
-compile time.
-
-Constants belong to the package they are defined in. To refer to a
-constant defined in another package, specify the full package name, as
-in C<Some::Package::CONSTANT>. Constants may be exported by modules,
-and may also be called as either class or instance methods, that is,
-as C<< Some::Package->CONSTANT >> or as C<< $obj->CONSTANT >> where
-C<$obj> is an instance of C<Some::Package>. Subclasses may define
-their own constants to override those in their base class.
-
-The use of all caps for constant names is merely a convention,
-although it is recommended in order to make constants stand out
-and to help avoid collisions with other barewords, keywords, and
-subroutine names. Constant names must begin with a letter or
-underscore. Names beginning with a double underscore are reserved. Some
-poor choices for names will generate warnings, if warnings are enabled at
-compile time.
-
-=head2 List constants
-
-Constants may be lists of more (or less) than one value. A constant
-with no values evaluates to C<undef> in scalar context. Note that
-constants with more than one value do I<not> return their last value in
-scalar context as one might expect. They currently return the number
-of values, but B<this may change in the future>. Do not use constants
-with multiple values in scalar context.
-
-B<NOTE:> This implies that the expression defining the value of a
-constant is evaluated in list context. This may produce surprises:
-
- use constant TIMESTAMP => localtime; # WRONG!
- use constant TIMESTAMP => scalar localtime; # right
-
-The first line above defines C<TIMESTAMP> as a 9-element list, as
-returned by localtime() in list context. To set it to the string
-returned by localtime() in scalar context, an explicit C<scalar>
-keyword is required.
-
-List constants are lists, not arrays. To index or slice them, they
-must be placed in parentheses.
-
- my @workdays = WEEKDAYS[1 .. 5]; # WRONG!
- my @workdays = (WEEKDAYS)[1 .. 5]; # right
-
-=head2 Defining multiple constants at once
-
-Instead of writing multiple C<use constant> statements, you may define
-multiple constants in a single statement by giving, instead of the
-constant name, a reference to a hash where the keys are the names of
-the constants to be defined. Obviously, all constants defined using
-this method must have a single value.
-
- use constant {
- FOO => "A single value",
- BAR => "This", "won't", "work!", # Error!
- };
-
-This is a fundamental limitation of the way hashes are constructed in
-Perl. The error messages produced when this happens will often be
-quite cryptic -- in the worst case there may be none at all, and
-you'll only later find that something is broken.
-
-When defining multiple constants, you cannot use the values of other
-constants defined in the same declaration. This is because the
-calling package doesn't know about any constant within that group
-until I<after> the C<use> statement is finished.
-
- use constant {
- BITMASK => 0xAFBAEBA8,
- NEGMASK => ~BITMASK, # Error!
- };
-
-=head2 Magic constants
-
-Magical values and references can be made into constants at compile
-time, allowing for way cool stuff like this. (These error numbers
-aren't totally portable, alas.)
-
- use constant E2BIG => ($! = 7);
- print E2BIG, "\n"; # something like "Arg list too long"
- print 0+E2BIG, "\n"; # "7"
-
-You can't produce a tied constant by giving a tied scalar as the
-value. References to tied variables, however, can be used as
-constants without any problems.
-
-=head1 TECHNICAL NOTES
-
-In the current implementation, scalar constants are actually
-inlinable subroutines. As of version 5.004 of Perl, the appropriate
-scalar constant is inserted directly in place of some subroutine
-calls, thereby saving the overhead of a subroutine call. See
-L<perlsub/"Constant Functions"> for details about how and when this
-happens.
-
-In the rare case in which you need to discover at run time whether a
-particular constant has been declared via this module, you may use
-this function to examine the hash C<%constant::declared>. If the given
-constant name does not include a package name, the current package is
-used.
-
- sub declared ($) {
- use constant 1.01; # don't omit this!
- my $name = shift;
- $name =~ s/^::/main::/;
- my $pkg = caller;
- my $full_name = $name =~ /::/ ? $name : "${pkg}::$name";
- $constant::declared{$full_name};
- }
-
-=head1 BUGS
-
-In the current version of Perl, list constants are not inlined
-and some symbols may be redefined without generating a warning.
-
-It is not possible to have a subroutine or a keyword with the same
-name as a constant in the same package. This is probably a Good Thing.
-
-A constant with a name in the list C<STDIN STDOUT STDERR ARGV ARGVOUT
-ENV INC SIG> is not allowed anywhere but in package C<main::>, for
-technical reasons.
-
-Unlike constants in some languages, these cannot be overridden
-on the command line or via environment variables.
-
-You can get into trouble if you use constants in a context which
-automatically quotes barewords (as is true for any subroutine call).
-For example, you can't say C<$hash{CONSTANT}> because C<CONSTANT> will
-be interpreted as a string. Use C<$hash{CONSTANT()}> or
-C<$hash{+CONSTANT}> to prevent the bareword quoting mechanism from
-kicking in. Similarly, since the C<< => >> operator quotes a bareword
-immediately to its left, you have to say C<< CONSTANT() => 'value' >>
-(or simply use a comma in place of the big arrow) instead of
-C<< CONSTANT => 'value' >>.
-
-=head1 AUTHOR
-
-Tom Phoenix, E<lt>F<rootbeer@redcat.com>E<gt>, with help from
-many other folks.
-
-Multiple constant declarations at once added by Casey West,
-E<lt>F<casey@geeknest.com>E<gt>.
-
-Documentation mostly rewritten by Ilmari Karonen,
-E<lt>F<perl@itz.pp.sci.fi>E<gt>.
-
-=head1 COPYRIGHT
-
-Copyright (C) 1997, 1999 Tom Phoenix
-
-This module is free software; you can redistribute it or modify it
-under the same terms as Perl itself.
-
-=cut
diff --git a/Master/xemtex/perl/lib/fields.pm b/Master/xemtex/perl/lib/fields.pm
deleted file mode 100644
index be2a7aedab4..00000000000
--- a/Master/xemtex/perl/lib/fields.pm
+++ /dev/null
@@ -1,285 +0,0 @@
-package fields;
-
-=head1 NAME
-
-fields - compile-time class fields
-
-=head1 SYNOPSIS
-
- {
- package Foo;
- use fields qw(foo bar _Foo_private);
- sub new {
- my Foo $self = shift;
- unless (ref $self) {
- $self = fields::new($self);
- $self->{_Foo_private} = "this is Foo's secret";
- }
- $self->{foo} = 10;
- $self->{bar} = 20;
- return $self;
- }
- }
-
- my Foo $var = Foo::->new;
- $var->{foo} = 42;
-
- # this will generate a compile-time error
- $var->{zap} = 42;
-
- # subclassing
- {
- package Bar;
- use base 'Foo';
- use fields qw(baz _Bar_private); # not shared with Foo
- sub new {
- my $class = shift;
- my $self = fields::new($class);
- $self->SUPER::new(); # init base fields
- $self->{baz} = 10; # init own fields
- $self->{_Bar_private} = "this is Bar's secret";
- return $self;
- }
- }
-
-=head1 DESCRIPTION
-
-The C<fields> pragma enables compile-time verified class fields.
-
-NOTE: The current implementation keeps the declared fields in the %FIELDS
-hash of the calling package, but this may change in future versions.
-Do B<not> update the %FIELDS hash directly, because it must be created
-at compile-time for it to be fully useful, as is done by this pragma.
-
-If a typed lexical variable holding a reference is used to access a
-hash element and a package with the same name as the type has declared
-class fields using this pragma, then the operation is turned into an
-array access at compile time.
-
-The related C<base> pragma will combine fields from base classes and any
-fields declared using the C<fields> pragma. This enables field
-inheritance to work properly.
-
-Field names that start with an underscore character are made private to
-the class and are not visible to subclasses. Inherited fields can be
-overridden but will generate a warning if used together with the C<-w>
-switch.
-
-The effect of all this is that you can have objects with named fields
-which are as compact and as fast arrays to access. This only works
-as long as the objects are accessed through properly typed variables.
-If the objects are not typed, access is only checked at run time.
-
-The following functions are supported:
-
-=over 8
-
-=item new
-
-fields::new() creates and blesses a pseudo-hash comprised of the fields
-declared using the C<fields> pragma into the specified class.
-This makes it possible to write a constructor like this:
-
- package Critter::Sounds;
- use fields qw(cat dog bird);
-
- sub new {
- my Critter::Sounds $self = shift;
- $self = fields::new($self) unless ref $self;
- $self->{cat} = 'meow'; # scalar element
- @$self{'dog','bird'} = ('bark','tweet'); # slice
- return $self;
- }
-
-=item phash
-
-fields::phash() can be used to create and initialize a plain (unblessed)
-pseudo-hash. This function should always be used instead of creating
-pseudo-hashes directly.
-
-If the first argument is a reference to an array, the pseudo-hash will
-be created with keys from that array. If a second argument is supplied,
-it must also be a reference to an array whose elements will be used as
-the values. If the second array contains less elements than the first,
-the trailing elements of the pseudo-hash will not be initialized.
-This makes it particularly useful for creating a pseudo-hash from
-subroutine arguments:
-
- sub dogtag {
- my $tag = fields::phash([qw(name rank ser_num)], [@_]);
- }
-
-fields::phash() also accepts a list of key-value pairs that will
-be used to construct the pseudo hash. Examples:
-
- my $tag = fields::phash(name => "Joe",
- rank => "captain",
- ser_num => 42);
-
- my $pseudohash = fields::phash(%args);
-
-=back
-
-=head1 SEE ALSO
-
-L<base>,
-L<perlref/Pseudo-hashes: Using an array as a hash>
-
-=cut
-
-use 5.006_001;
-use strict;
-no strict 'refs';
-use warnings::register;
-our(%attr, $VERSION);
-
-$VERSION = "1.02";
-
-# some constants
-sub _PUBLIC () { 1 }
-sub _PRIVATE () { 2 }
-
-# The %attr hash holds the attributes of the currently assigned fields
-# per class. The hash is indexed by class names and the hash value is
-# an array reference. The first element in the array is the lowest field
-# number not belonging to a base class. The remaining elements' indices
-# are the field numbers. The values are integer bit masks, or undef
-# in the case of base class private fields (which occupy a slot but are
-# otherwise irrelevant to the class).
-
-sub import {
- my $class = shift;
- return unless @_;
- my $package = caller(0);
- # avoid possible typo warnings
- %{"$package\::FIELDS"} = () unless %{"$package\::FIELDS"};
- my $fields = \%{"$package\::FIELDS"};
- my $fattr = ($attr{$package} ||= [1]);
- my $next = @$fattr;
-
- if ($next > $fattr->[0]
- and ($fields->{$_[0]} || 0) >= $fattr->[0])
- {
- # There are already fields not belonging to base classes.
- # Looks like a possible module reload...
- $next = $fattr->[0];
- }
- foreach my $f (@_) {
- my $fno = $fields->{$f};
-
- # Allow the module to be reloaded so long as field positions
- # have not changed.
- if ($fno and $fno != $next) {
- require Carp;
- if ($fno < $fattr->[0]) {
- warnings::warnif("Hides field '$f' in base class") ;
- } else {
- Carp::croak("Field name '$f' already in use");
- }
- }
- $fields->{$f} = $next;
- $fattr->[$next] = ($f =~ /^_/) ? _PRIVATE : _PUBLIC;
- $next += 1;
- }
- if (@$fattr > $next) {
- # Well, we gave them the benefit of the doubt by guessing the
- # module was reloaded, but they appear to be declaring fields
- # in more than one place. We can't be sure (without some extra
- # bookkeeping) that the rest of the fields will be declared or
- # have the same positions, so punt.
- require Carp;
- Carp::croak ("Reloaded module must declare all fields at once");
- }
-}
-
-sub inherit { # called by base.pm when $base_fields is nonempty
- my($derived, $base) = @_;
- my $base_attr = $attr{$base};
- my $derived_attr = $attr{$derived} ||= [];
- # avoid possible typo warnings
- %{"$base\::FIELDS"} = () unless %{"$base\::FIELDS"};
- %{"$derived\::FIELDS"} = () unless %{"$derived\::FIELDS"};
- my $base_fields = \%{"$base\::FIELDS"};
- my $derived_fields = \%{"$derived\::FIELDS"};
-
- $derived_attr->[0] = $base_attr ? scalar(@$base_attr) : 1;
- while (my($k,$v) = each %$base_fields) {
- my($fno);
- if ($fno = $derived_fields->{$k} and $fno != $v) {
- require Carp;
- Carp::croak ("Inherited %FIELDS can't override existing %FIELDS");
- }
- if ($base_attr->[$v] & _PRIVATE) {
- $derived_attr->[$v] = undef;
- } else {
- $derived_attr->[$v] = $base_attr->[$v];
- $derived_fields->{$k} = $v;
- }
- }
-}
-
-sub _dump # sometimes useful for debugging
-{
- for my $pkg (sort keys %attr) {
- print "\n$pkg";
- if (@{"$pkg\::ISA"}) {
- print " (", join(", ", @{"$pkg\::ISA"}), ")";
- }
- print "\n";
- my $fields = \%{"$pkg\::FIELDS"};
- for my $f (sort {$fields->{$a} <=> $fields->{$b}} keys %$fields) {
- my $no = $fields->{$f};
- print " $no: $f";
- my $fattr = $attr{$pkg}[$no];
- if (defined $fattr) {
- my @a;
- push(@a, "public") if $fattr & _PUBLIC;
- push(@a, "private") if $fattr & _PRIVATE;
- push(@a, "inherited") if $no < $attr{$pkg}[0];
- print "\t(", join(", ", @a), ")";
- }
- print "\n";
- }
- }
-}
-
-sub new {
- my $class = shift;
- $class = ref $class if ref $class;
- return bless [\%{$class . "::FIELDS"}], $class;
-}
-
-sub phash {
- my $h;
- my $v;
- if (@_) {
- if (ref $_[0] eq 'ARRAY') {
- my $a = shift;
- @$h{@$a} = 1 .. @$a;
- if (@_) {
- $v = shift;
- unless (! @_ and ref $v eq 'ARRAY') {
- require Carp;
- Carp::croak ("Expected at most two array refs\n");
- }
- }
- }
- else {
- if (@_ % 2) {
- require Carp;
- Carp::croak ("Odd number of elements initializing pseudo-hash\n");
- }
- my $i = 0;
- @$h{grep ++$i % 2, @_} = 1 .. @_ / 2;
- $i = 0;
- $v = [grep $i++ % 2, @_];
- }
- }
- else {
- $h = {};
- $v = [];
- }
- [ $h, @$v ];
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/integer.pm b/Master/xemtex/perl/lib/integer.pm
deleted file mode 100644
index caa1ea6951f..00000000000
--- a/Master/xemtex/perl/lib/integer.pm
+++ /dev/null
@@ -1,93 +0,0 @@
-package integer;
-
-our $VERSION = '1.00';
-
-=head1 NAME
-
-integer - Perl pragma to use integer arithmetic instead of floating point
-
-=head1 SYNOPSIS
-
- use integer;
- $x = 10/3;
- # $x is now 3, not 3.33333333333333333
-
-=head1 DESCRIPTION
-
-This tells the compiler to use integer operations from here to the end
-of the enclosing BLOCK. On many machines, this doesn't matter a great
-deal for most computations, but on those without floating point
-hardware, it can make a big difference in performance.
-
-Note that this only affects how most of the arithmetic and relational
-B<operators> handle their operands and results, and B<not> how all
-numbers everywhere are treated. Specifically, C<use integer;> has the
-effect that before computing the results of the arithmetic operators
-(+, -, *, /, %, +=, -=, *=, /=, %=, and unary minus), the comparison
-operators (<, <=, >, >=, ==, !=, <=>), and the bitwise operators (|, &,
-^, <<, >>, |=, &=, ^=, <<=, >>=), the operands have their fractional
-portions truncated (or floored), and the result will have its
-fractional portion truncated as well. In addition, the range of
-operands and results is restricted to that of familiar two's complement
-integers, i.e., -(2**31) .. (2**31-1) on 32-bit architectures, and
--(2**63) .. (2**63-1) on 64-bit architectures. For example, this code
-
- use integer;
- $x = 5.8;
- $y = 2.5;
- $z = 2.7;
- $a = 2**31 - 1; # Largest positive integer on 32-bit machines
- $, = ", ";
- print $x, -$x, $x + $y, $x - $y, $x / $y, $x * $y, $y == $z, $a, $a + 1;
-
-will print: 5.8, -5, 7, 3, 2, 10, 1, 2147483647, -2147483648
-
-Note that $x is still printed as having its true non-integer value of
-5.8 since it wasn't operated on. And note too the wrap-around from the
-largest positive integer to the largest negative one. Also, arguments
-passed to functions and the values returned by them are B<not> affected
-by C<use integer;>. E.g.,
-
- srand(1.5);
- $, = ", ";
- print sin(.5), cos(.5), atan2(1,2), sqrt(2), rand(10);
-
-will give the same result with or without C<use integer;> The power
-operator C<**> is also not affected, so that 2 ** .5 is always the
-square root of 2. Now, it so happens that the pre- and post- increment
-and decrement operators, ++ and --, are not affected by C<use integer;>
-either. Some may rightly consider this to be a bug -- but at least it's
-a long-standing one.
-
-Finally, C<use integer;> also has an additional affect on the bitwise
-operators. Normally, the operands and results are treated as
-B<unsigned> integers, but with C<use integer;> the operands and results
-are B<signed>. This means, among other things, that ~0 is -1, and -2 &
--5 is -6.
-
-Internally, native integer arithmetic (as provided by your C compiler)
-is used. This means that Perl's own semantics for arithmetic
-operations may not be preserved. One common source of trouble is the
-modulus of negative numbers, which Perl does one way, but your hardware
-may do another.
-
- % perl -le 'print (4 % -3)'
- -2
- % perl -Minteger -le 'print (4 % -3)'
- 1
-
-See L<perlmodlib/"Pragmatic Modules">, L<perlop/"Integer Arithmetic">
-
-=cut
-
-$integer::hint_bits = 0x1;
-
-sub import {
- $^H |= $integer::hint_bits;
-}
-
-sub unimport {
- $^H &= ~$integer::hint_bits;
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/lib.pm b/Master/xemtex/perl/lib/lib.pm
deleted file mode 100644
index 83b8d737cd7..00000000000
--- a/Master/xemtex/perl/lib/lib.pm
+++ /dev/null
@@ -1,205 +0,0 @@
-package lib;
-
-# THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL.
-# ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD.
-
-use Config;
-
-use strict;
-
-my $archname = $Config{archname};
-my $version = $Config{version};
-my @inc_version_list = reverse split / /, $Config{inc_version_list};
-
-
-our @ORIG_INC = @INC; # take a handy copy of 'original' value
-our $VERSION = '0.5564';
-my $Is_MacOS = $^O eq 'MacOS';
-my $Mac_FS;
-if ($Is_MacOS) {
- require File::Spec;
- $Mac_FS = eval { require Mac::FileSpec::Unixish };
-}
-
-sub import {
- shift;
-
- my %names;
- foreach (reverse @_) {
- if ($_ eq '') {
- require Carp;
- Carp::carp("Empty compile time value given to use lib");
- }
-
- local $_ = _nativize($_);
-
- if (-e && ! -d _) {
- require Carp;
- Carp::carp("Parameter to use lib must be directory, not file");
- }
- unshift(@INC, $_);
- # Add any previous version directories we found at configure time
- foreach my $incver (@inc_version_list)
- {
- my $dir = $Is_MacOS
- ? File::Spec->catdir( $_, $incver )
- : "$_/$incver";
- unshift(@INC, $dir) if -d $dir;
- }
- # Put a corresponding archlib directory in front of $_ if it
- # looks like $_ has an archlib directory below it.
- my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir)
- = _get_dirs($_);
- unshift(@INC, $arch_dir) if -d $arch_auto_dir;
- unshift(@INC, $version_dir) if -d $version_dir;
- unshift(@INC, $version_arch_dir) if -d $version_arch_dir;
- }
-
- # remove trailing duplicates
- @INC = grep { ++$names{$_} == 1 } @INC;
- return;
-}
-
-
-sub unimport {
- shift;
-
- my %names;
- foreach (@_) {
- local $_ = _nativize($_);
-
- my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir)
- = _get_dirs($_);
- ++$names{$_};
- ++$names{$arch_dir} if -d $arch_auto_dir;
- ++$names{$version_dir} if -d $version_dir;
- ++$names{$version_arch_dir} if -d $version_arch_dir;
- }
-
- # Remove ALL instances of each named directory.
- @INC = grep { !exists $names{$_} } @INC;
- return;
-}
-
-sub _get_dirs {
- my($dir) = @_;
- my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir);
-
- # we could use this for all platforms in the future, but leave it
- # Mac-only for now, until there is more time for testing it.
- if ($Is_MacOS) {
- $arch_auto_dir = File::Spec->catdir( $_, $archname, 'auto' );
- $arch_dir = File::Spec->catdir( $_, $archname, );
- $version_dir = File::Spec->catdir( $_, $version );
- $version_arch_dir = File::Spec->catdir( $_, $version, $archname );
- } else {
- $arch_auto_dir = "$_/$archname/auto";
- $arch_dir = "$_/$archname";
- $version_dir = "$_/$version";
- $version_arch_dir = "$_/$version/$archname";
- }
- return($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir);
-}
-
-sub _nativize {
- my($dir) = @_;
-
- if ($Is_MacOS && $Mac_FS && ! -d $dir) {
- $dir = Mac::FileSpec::Unixish::nativize($dir);
- $dir .= ":" unless $dir =~ /:$/;
- }
-
- return $dir;
-}
-
-1;
-__END__
-
-=head1 NAME
-
-lib - manipulate @INC at compile time
-
-=head1 SYNOPSIS
-
- use lib LIST;
-
- no lib LIST;
-
-=head1 DESCRIPTION
-
-This is a small simple module which simplifies the manipulation of @INC
-at compile time.
-
-It is typically used to add extra directories to perl's search path so
-that later C<use> or C<require> statements will find modules which are
-not located on perl's default search path.
-
-=head2 Adding directories to @INC
-
-The parameters to C<use lib> are added to the start of the perl search
-path. Saying
-
- use lib LIST;
-
-is I<almost> the same as saying
-
- BEGIN { unshift(@INC, LIST) }
-
-For each directory in LIST (called $dir here) the lib module also
-checks to see if a directory called $dir/$archname/auto exists.
-If so the $dir/$archname directory is assumed to be a corresponding
-architecture specific directory and is added to @INC in front of $dir.
-
-To avoid memory leaks, all trailing duplicate entries in @INC are
-removed.
-
-=head2 Deleting directories from @INC
-
-You should normally only add directories to @INC. If you need to
-delete directories from @INC take care to only delete those which you
-added yourself or which you are certain are not needed by other modules
-in your script. Other modules may have added directories which they
-need for correct operation.
-
-The C<no lib> statement deletes all instances of each named directory
-from @INC.
-
-For each directory in LIST (called $dir here) the lib module also
-checks to see if a directory called $dir/$archname/auto exists.
-If so the $dir/$archname directory is assumed to be a corresponding
-architecture specific directory and is also deleted from @INC.
-
-=head2 Restoring original @INC
-
-When the lib module is first loaded it records the current value of @INC
-in an array C<@lib::ORIG_INC>. To restore @INC to that value you
-can say
-
- @INC = @lib::ORIG_INC;
-
-=head1 CAVEATS
-
-In order to keep lib.pm small and simple, it only works with Unix
-filepaths. This doesn't mean it only works on Unix, but non-Unix
-users must first translate their file paths to Unix conventions.
-
- # VMS users wanting to put [.stuff.moo] into
- # their @INC would write
- use lib 'stuff/moo';
-
-=head1 NOTES
-
-In the future, this module will likely use File::Spec for determining
-paths, as it does now for Mac OS (where Unix-style or Mac-style paths
-work, and Unix-style paths are converted properly to Mac-style paths
-before being added to @INC).
-
-=head1 SEE ALSO
-
-FindBin - optional module which deals with paths relative to the source file.
-
-=head1 AUTHOR
-
-Tim Bunce, 2nd June 1995.
-
-=cut
diff --git a/Master/xemtex/perl/lib/newgetopt.pl b/Master/xemtex/perl/lib/newgetopt.pl
deleted file mode 100644
index 95eef220fe7..00000000000
--- a/Master/xemtex/perl/lib/newgetopt.pl
+++ /dev/null
@@ -1,75 +0,0 @@
-# $Id: newgetopt.pl,v 1.18 2001-09-21 15:34:59+02 jv Exp $
-
-# This library is no longer being maintained, and is included for backward
-# compatibility with Perl 4 programs which may require it.
-# It is now just a wrapper around the Getopt::Long module.
-#
-# In particular, this should not be used as an example of modern Perl
-# programming techniques.
-#
-# Suggested alternative: Getopt::Long
-
-{ package newgetopt;
-
- # Values for $order. See GNU getopt.c for details.
- $REQUIRE_ORDER = 0;
- $PERMUTE = 1;
- $RETURN_IN_ORDER = 2;
-
- # Handle POSIX compliancy.
- if ( defined $ENV{"POSIXLY_CORRECT"} ) {
- $autoabbrev = 0; # no automatic abbrev of options (???)
- $getopt_compat = 0; # disallow '+' to start options
- $option_start = "(--|-)";
- $order = $REQUIRE_ORDER;
- $bundling = 0;
- $passthrough = 0;
- }
- else {
- $autoabbrev = 1; # automatic abbrev of options
- $getopt_compat = 1; # allow '+' to start options
- $option_start = "(--|-|\\+)";
- $order = $PERMUTE;
- $bundling = 0;
- $passthrough = 0;
- }
-
- # Other configurable settings.
- $debug = 0; # for debugging
- $ignorecase = 1; # ignore case when matching options
- $argv_end = "--"; # don't change this!
-}
-
-use Getopt::Long;
-
-################ Subroutines ################
-
-sub NGetOpt {
-
- $Getopt::Long::debug = $newgetopt::debug
- if defined $newgetopt::debug;
- $Getopt::Long::autoabbrev = $newgetopt::autoabbrev
- if defined $newgetopt::autoabbrev;
- $Getopt::Long::getopt_compat = $newgetopt::getopt_compat
- if defined $newgetopt::getopt_compat;
- $Getopt::Long::option_start = $newgetopt::option_start
- if defined $newgetopt::option_start;
- $Getopt::Long::order = $newgetopt::order
- if defined $newgetopt::order;
- $Getopt::Long::bundling = $newgetopt::bundling
- if defined $newgetopt::bundling;
- $Getopt::Long::ignorecase = $newgetopt::ignorecase
- if defined $newgetopt::ignorecase;
- $Getopt::Long::ignorecase = $newgetopt::ignorecase
- if defined $newgetopt::ignorecase;
- $Getopt::Long::passthrough = $newgetopt::passthrough
- if defined $newgetopt::passthrough;
-
- &GetOptions;
-}
-
-################ Package return ################
-
-1;
-
-################ End of newgetopt.pl ################
diff --git a/Master/xemtex/perl/lib/overload.pm b/Master/xemtex/perl/lib/overload.pm
deleted file mode 100644
index fb1a0d1236e..00000000000
--- a/Master/xemtex/perl/lib/overload.pm
+++ /dev/null
@@ -1,1432 +0,0 @@
-package overload;
-
-our $VERSION = '1.00';
-
-$overload::hint_bits = 0x20000;
-
-sub nil {}
-
-sub OVERLOAD {
- $package = shift;
- my %arg = @_;
- my ($sub, $fb);
- $ {$package . "::OVERLOAD"}{dummy}++; # Register with magic by touching.
- *{$package . "::()"} = \&nil; # Make it findable via fetchmethod.
- for (keys %arg) {
- if ($_ eq 'fallback') {
- $fb = $arg{$_};
- } else {
- $sub = $arg{$_};
- if (not ref $sub and $sub !~ /::/) {
- $ {$package . "::(" . $_} = $sub;
- $sub = \&nil;
- }
- #print STDERR "Setting `$ {'package'}::\cO$_' to \\&`$sub'.\n";
- *{$package . "::(" . $_} = \&{ $sub };
- }
- }
- ${$package . "::()"} = $fb; # Make it findable too (fallback only).
-}
-
-sub import {
- $package = (caller())[0];
- # *{$package . "::OVERLOAD"} = \&OVERLOAD;
- shift;
- $package->overload::OVERLOAD(@_);
-}
-
-sub unimport {
- $package = (caller())[0];
- ${$package . "::OVERLOAD"}{dummy}++; # Upgrade the table
- shift;
- for (@_) {
- if ($_ eq 'fallback') {
- undef $ {$package . "::()"};
- } else {
- delete $ {$package . "::"}{"(" . $_};
- }
- }
-}
-
-sub Overloaded {
- my $package = shift;
- $package = ref $package if ref $package;
- $package->can('()');
-}
-
-sub ov_method {
- my $globref = shift;
- return undef unless $globref;
- my $sub = \&{*$globref};
- return $sub if $sub ne \&nil;
- return shift->can($ {*$globref});
-}
-
-sub OverloadedStringify {
- my $package = shift;
- $package = ref $package if ref $package;
- #$package->can('(""')
- ov_method mycan($package, '(""'), $package
- or ov_method mycan($package, '(0+'), $package
- or ov_method mycan($package, '(bool'), $package
- or ov_method mycan($package, '(nomethod'), $package;
-}
-
-sub Method {
- my $package = shift;
- $package = ref $package if ref $package;
- #my $meth = $package->can('(' . shift);
- ov_method mycan($package, '(' . shift), $package;
- #return $meth if $meth ne \&nil;
- #return $ {*{$meth}};
-}
-
-sub AddrRef {
- my $package = ref $_[0];
- return "$_[0]" unless $package;
- bless $_[0], overload::Fake; # Non-overloaded package
- my $str = "$_[0]";
- bless $_[0], $package; # Back
- $package . substr $str, index $str, '=';
-}
-
-sub StrVal {
- (ref $_[0] && OverloadedStringify($_[0]) or ref($_[0]) eq 'Regexp') ?
- (AddrRef(shift)) :
- "$_[0]";
-}
-
-sub mycan { # Real can would leave stubs.
- my ($package, $meth) = @_;
- return \*{$package . "::$meth"} if defined &{$package . "::$meth"};
- my $p;
- foreach $p (@{$package . "::ISA"}) {
- my $out = mycan($p, $meth);
- return $out if $out;
- }
- return undef;
-}
-
-%constants = (
- 'integer' => 0x1000,
- 'float' => 0x2000,
- 'binary' => 0x4000,
- 'q' => 0x8000,
- 'qr' => 0x10000,
- );
-
-%ops = ( with_assign => "+ - * / % ** << >> x .",
- assign => "+= -= *= /= %= **= <<= >>= x= .=",
- num_comparison => "< <= > >= == !=",
- '3way_comparison'=> "<=> cmp",
- str_comparison => "lt le gt ge eq ne",
- binary => "& | ^",
- unary => "neg ! ~",
- mutators => '++ --',
- func => "atan2 cos sin exp abs log sqrt int",
- conversion => 'bool "" 0+',
- iterators => '<>',
- dereferencing => '${} @{} %{} &{} *{}',
- special => 'nomethod fallback =');
-
-use warnings::register;
-sub constant {
- # Arguments: what, sub
- while (@_) {
- if (@_ == 1) {
- warnings::warnif ("Odd number of arguments for overload::constant");
- last;
- }
- elsif (!exists $constants {$_ [0]}) {
- warnings::warnif ("`$_[0]' is not an overloadable type");
- }
- elsif (!ref $_ [1] || "$_[1]" !~ /CODE\(0x[\da-f]+\)$/) {
- # Can't use C<ref $_[1] eq "CODE"> above as code references can be
- # blessed, and C<ref> would return the package the ref is blessed into.
- if (warnings::enabled) {
- $_ [1] = "undef" unless defined $_ [1];
- warnings::warn ("`$_[1]' is not a code reference");
- }
- }
- else {
- $^H{$_[0]} = $_[1];
- $^H |= $constants{$_[0]} | $overload::hint_bits;
- }
- shift, shift;
- }
-}
-
-sub remove_constant {
- # Arguments: what, sub
- while (@_) {
- delete $^H{$_[0]};
- $^H &= ~ $constants{$_[0]};
- shift, shift;
- }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-overload - Package for overloading perl operations
-
-=head1 SYNOPSIS
-
- package SomeThing;
-
- use overload
- '+' => \&myadd,
- '-' => \&mysub;
- # etc
- ...
-
- package main;
- $a = new SomeThing 57;
- $b=5+$a;
- ...
- if (overload::Overloaded $b) {...}
- ...
- $strval = overload::StrVal $b;
-
-=head1 DESCRIPTION
-
-=head2 Declaration of overloaded functions
-
-The compilation directive
-
- package Number;
- use overload
- "+" => \&add,
- "*=" => "muas";
-
-declares function Number::add() for addition, and method muas() in
-the "class" C<Number> (or one of its base classes)
-for the assignment form C<*=> of multiplication.
-
-Arguments of this directive come in (key, value) pairs. Legal values
-are values legal inside a C<&{ ... }> call, so the name of a
-subroutine, a reference to a subroutine, or an anonymous subroutine
-will all work. Note that values specified as strings are
-interpreted as methods, not subroutines. Legal keys are listed below.
-
-The subroutine C<add> will be called to execute C<$a+$b> if $a
-is a reference to an object blessed into the package C<Number>, or if $a is
-not an object from a package with defined mathemagic addition, but $b is a
-reference to a C<Number>. It can also be called in other situations, like
-C<$a+=7>, or C<$a++>. See L<MAGIC AUTOGENERATION>. (Mathemagical
-methods refer to methods triggered by an overloaded mathematical
-operator.)
-
-Since overloading respects inheritance via the @ISA hierarchy, the
-above declaration would also trigger overloading of C<+> and C<*=> in
-all the packages which inherit from C<Number>.
-
-=head2 Calling Conventions for Binary Operations
-
-The functions specified in the C<use overload ...> directive are called
-with three (in one particular case with four, see L<Last Resort>)
-arguments. If the corresponding operation is binary, then the first
-two arguments are the two arguments of the operation. However, due to
-general object calling conventions, the first argument should always be
-an object in the package, so in the situation of C<7+$a>, the
-order of the arguments is interchanged. It probably does not matter
-when implementing the addition method, but whether the arguments
-are reversed is vital to the subtraction method. The method can
-query this information by examining the third argument, which can take
-three different values:
-
-=over 7
-
-=item FALSE
-
-the order of arguments is as in the current operation.
-
-=item TRUE
-
-the arguments are reversed.
-
-=item C<undef>
-
-the current operation is an assignment variant (as in
-C<$a+=7>), but the usual function is called instead. This additional
-information can be used to generate some optimizations. Compare
-L<Calling Conventions for Mutators>.
-
-=back
-
-=head2 Calling Conventions for Unary Operations
-
-Unary operation are considered binary operations with the second
-argument being C<undef>. Thus the functions that overloads C<{"++"}>
-is called with arguments C<($a,undef,'')> when $a++ is executed.
-
-=head2 Calling Conventions for Mutators
-
-Two types of mutators have different calling conventions:
-
-=over
-
-=item C<++> and C<-->
-
-The routines which implement these operators are expected to actually
-I<mutate> their arguments. So, assuming that $obj is a reference to a
-number,
-
- sub incr { my $n = $ {$_[0]}; ++$n; $_[0] = bless \$n}
-
-is an appropriate implementation of overloaded C<++>. Note that
-
- sub incr { ++$ {$_[0]} ; shift }
-
-is OK if used with preincrement and with postincrement. (In the case
-of postincrement a copying will be performed, see L<Copy Constructor>.)
-
-=item C<x=> and other assignment versions
-
-There is nothing special about these methods. They may change the
-value of their arguments, and may leave it as is. The result is going
-to be assigned to the value in the left-hand-side if different from
-this value.
-
-This allows for the same method to be used as overloaded C<+=> and
-C<+>. Note that this is I<allowed>, but not recommended, since by the
-semantic of L<"Fallback"> Perl will call the method for C<+> anyway,
-if C<+=> is not overloaded.
-
-=back
-
-B<Warning.> Due to the presence of assignment versions of operations,
-routines which may be called in assignment context may create
-self-referential structures. Currently Perl will not free self-referential
-structures until cycles are C<explicitly> broken. You may get problems
-when traversing your structures too.
-
-Say,
-
- use overload '+' => sub { bless [ \$_[0], \$_[1] ] };
-
-is asking for trouble, since for code C<$obj += $foo> the subroutine
-is called as C<$obj = add($obj, $foo, undef)>, or C<$obj = [\$obj,
-\$foo]>. If using such a subroutine is an important optimization, one
-can overload C<+=> explicitly by a non-"optimized" version, or switch
-to non-optimized version if C<not defined $_[2]> (see
-L<Calling Conventions for Binary Operations>).
-
-Even if no I<explicit> assignment-variants of operators are present in
-the script, they may be generated by the optimizer. Say, C<",$obj,"> or
-C<',' . $obj . ','> may be both optimized to
-
- my $tmp = ',' . $obj; $tmp .= ',';
-
-=head2 Overloadable Operations
-
-The following symbols can be specified in C<use overload> directive:
-
-=over 5
-
-=item * I<Arithmetic operations>
-
- "+", "+=", "-", "-=", "*", "*=", "/", "/=", "%", "%=",
- "**", "**=", "<<", "<<=", ">>", ">>=", "x", "x=", ".", ".=",
-
-For these operations a substituted non-assignment variant can be called if
-the assignment variant is not available. Methods for operations C<+>,
-C<->, C<+=>, and C<-=> can be called to automatically generate
-increment and decrement methods. The operation C<-> can be used to
-autogenerate missing methods for unary minus or C<abs>.
-
-See L<"MAGIC AUTOGENERATION">, L<"Calling Conventions for Mutators"> and
-L<"Calling Conventions for Binary Operations">) for details of these
-substitutions.
-
-=item * I<Comparison operations>
-
- "<", "<=", ">", ">=", "==", "!=", "<=>",
- "lt", "le", "gt", "ge", "eq", "ne", "cmp",
-
-If the corresponding "spaceship" variant is available, it can be
-used to substitute for the missing operation. During C<sort>ing
-arrays, C<cmp> is used to compare values subject to C<use overload>.
-
-=item * I<Bit operations>
-
- "&", "^", "|", "neg", "!", "~",
-
-C<neg> stands for unary minus. If the method for C<neg> is not
-specified, it can be autogenerated using the method for
-subtraction. If the method for C<!> is not specified, it can be
-autogenerated using the methods for C<bool>, or C<"">, or C<0+>.
-
-=item * I<Increment and decrement>
-
- "++", "--",
-
-If undefined, addition and subtraction methods can be
-used instead. These operations are called both in prefix and
-postfix form.
-
-=item * I<Transcendental functions>
-
- "atan2", "cos", "sin", "exp", "abs", "log", "sqrt", "int"
-
-If C<abs> is unavailable, it can be autogenerated using methods
-for "E<lt>" or "E<lt>=E<gt>" combined with either unary minus or subtraction.
-
-Note that traditionally the Perl function L<int> rounds to 0, thus for
-floating-point-like types one should follow the same semantic. If
-C<int> is unavailable, it can be autogenerated using the overloading of
-C<0+>.
-
-=item * I<Boolean, string and numeric conversion>
-
- 'bool', '""', '0+',
-
-If one or two of these operations are not overloaded, the remaining ones can
-be used instead. C<bool> is used in the flow control operators
-(like C<while>) and for the ternary C<?:> operation. These functions can
-return any arbitrary Perl value. If the corresponding operation for this value
-is overloaded too, that operation will be called again with this value.
-
-As a special case if the overload returns the object itself then it will
-be used directly. An overloaded conversion returning the object is
-probably a bug, because you're likely to get something that looks like
-C<YourPackage=HASH(0x8172b34)>.
-
-=item * I<Iteration>
-
- "<>"
-
-If not overloaded, the argument will be converted to a filehandle or
-glob (which may require a stringification). The same overloading
-happens both for the I<read-filehandle> syntax C<E<lt>$varE<gt>> and
-I<globbing> syntax C<E<lt>${var}E<gt>>.
-
-B<BUGS> Even in list context, the iterator is currently called only
-once and with scalar context.
-
-=item * I<Dereferencing>
-
- '${}', '@{}', '%{}', '&{}', '*{}'.
-
-If not overloaded, the argument will be dereferenced I<as is>, thus
-should be of correct type. These functions should return a reference
-of correct type, or another object with overloaded dereferencing.
-
-As a special case if the overload returns the object itself then it
-will be used directly (provided it is the correct type).
-
-The dereference operators must be specified explicitly they will not be passed to
-"nomethod".
-
-=item * I<Special>
-
- "nomethod", "fallback", "=",
-
-see L<SPECIAL SYMBOLS FOR C<use overload>>.
-
-=back
-
-See L<"Fallback"> for an explanation of when a missing method can be
-autogenerated.
-
-A computer-readable form of the above table is available in the hash
-%overload::ops, with values being space-separated lists of names:
-
- with_assign => '+ - * / % ** << >> x .',
- assign => '+= -= *= /= %= **= <<= >>= x= .=',
- num_comparison => '< <= > >= == !=',
- '3way_comparison'=> '<=> cmp',
- str_comparison => 'lt le gt ge eq ne',
- binary => '& | ^',
- unary => 'neg ! ~',
- mutators => '++ --',
- func => 'atan2 cos sin exp abs log sqrt',
- conversion => 'bool "" 0+',
- iterators => '<>',
- dereferencing => '${} @{} %{} &{} *{}',
- special => 'nomethod fallback ='
-
-=head2 Inheritance and overloading
-
-Inheritance interacts with overloading in two ways.
-
-=over
-
-=item Strings as values of C<use overload> directive
-
-If C<value> in
-
- use overload key => value;
-
-is a string, it is interpreted as a method name.
-
-=item Overloading of an operation is inherited by derived classes
-
-Any class derived from an overloaded class is also overloaded. The
-set of overloaded methods is the union of overloaded methods of all
-the ancestors. If some method is overloaded in several ancestor, then
-which description will be used is decided by the usual inheritance
-rules:
-
-If C<A> inherits from C<B> and C<C> (in this order), C<B> overloads
-C<+> with C<\&D::plus_sub>, and C<C> overloads C<+> by C<"plus_meth">,
-then the subroutine C<D::plus_sub> will be called to implement
-operation C<+> for an object in package C<A>.
-
-=back
-
-Note that since the value of the C<fallback> key is not a subroutine,
-its inheritance is not governed by the above rules. In the current
-implementation, the value of C<fallback> in the first overloaded
-ancestor is used, but this is accidental and subject to change.
-
-=head1 SPECIAL SYMBOLS FOR C<use overload>
-
-Three keys are recognized by Perl that are not covered by the above
-description.
-
-=head2 Last Resort
-
-C<"nomethod"> should be followed by a reference to a function of four
-parameters. If defined, it is called when the overloading mechanism
-cannot find a method for some operation. The first three arguments of
-this function coincide with the arguments for the corresponding method if
-it were found, the fourth argument is the symbol
-corresponding to the missing method. If several methods are tried,
-the last one is used. Say, C<1-$a> can be equivalent to
-
- &nomethodMethod($a,1,1,"-")
-
-if the pair C<"nomethod" =E<gt> "nomethodMethod"> was specified in the
-C<use overload> directive.
-
-The C<"nomethod"> mechanism is I<not> used for the dereference operators
-( ${} @{} %{} &{} *{} ).
-
-
-If some operation cannot be resolved, and there is no function
-assigned to C<"nomethod">, then an exception will be raised via die()--
-unless C<"fallback"> was specified as a key in C<use overload> directive.
-
-
-=head2 Fallback
-
-The key C<"fallback"> governs what to do if a method for a particular
-operation is not found. Three different cases are possible depending on
-the value of C<"fallback">:
-
-=over 16
-
-=item * C<undef>
-
-Perl tries to use a
-substituted method (see L<MAGIC AUTOGENERATION>). If this fails, it
-then tries to calls C<"nomethod"> value; if missing, an exception
-will be raised.
-
-=item * TRUE
-
-The same as for the C<undef> value, but no exception is raised. Instead,
-it silently reverts to what it would have done were there no C<use overload>
-present.
-
-=item * defined, but FALSE
-
-No autogeneration is tried. Perl tries to call
-C<"nomethod"> value, and if this is missing, raises an exception.
-
-=back
-
-B<Note.> C<"fallback"> inheritance via @ISA is not carved in stone
-yet, see L<"Inheritance and overloading">.
-
-=head2 Copy Constructor
-
-The value for C<"="> is a reference to a function with three
-arguments, i.e., it looks like the other values in C<use
-overload>. However, it does not overload the Perl assignment
-operator. This would go against Camel hair.
-
-This operation is called in the situations when a mutator is applied
-to a reference that shares its object with some other reference, such
-as
-
- $a=$b;
- ++$a;
-
-To make this change $a and not change $b, a copy of C<$$a> is made,
-and $a is assigned a reference to this new object. This operation is
-done during execution of the C<++$a>, and not during the assignment,
-(so before the increment C<$$a> coincides with C<$$b>). This is only
-done if C<++> is expressed via a method for C<'++'> or C<'+='> (or
-C<nomethod>). Note that if this operation is expressed via C<'+'>
-a nonmutator, i.e., as in
-
- $a=$b;
- $a=$a+1;
-
-then C<$a> does not reference a new copy of C<$$a>, since $$a does not
-appear as lvalue when the above code is executed.
-
-If the copy constructor is required during the execution of some mutator,
-but a method for C<'='> was not specified, it can be autogenerated as a
-string copy if the object is a plain scalar.
-
-=over 5
-
-=item B<Example>
-
-The actually executed code for
-
- $a=$b;
- Something else which does not modify $a or $b....
- ++$a;
-
-may be
-
- $a=$b;
- Something else which does not modify $a or $b....
- $a = $a->clone(undef,"");
- $a->incr(undef,"");
-
-if $b was mathemagical, and C<'++'> was overloaded with C<\&incr>,
-C<'='> was overloaded with C<\&clone>.
-
-=back
-
-Same behaviour is triggered by C<$b = $a++>, which is consider a synonym for
-C<$b = $a; ++$a>.
-
-=head1 MAGIC AUTOGENERATION
-
-If a method for an operation is not found, and the value for C<"fallback"> is
-TRUE or undefined, Perl tries to autogenerate a substitute method for
-the missing operation based on the defined operations. Autogenerated method
-substitutions are possible for the following operations:
-
-=over 16
-
-=item I<Assignment forms of arithmetic operations>
-
-C<$a+=$b> can use the method for C<"+"> if the method for C<"+=">
-is not defined.
-
-=item I<Conversion operations>
-
-String, numeric, and boolean conversion are calculated in terms of one
-another if not all of them are defined.
-
-=item I<Increment and decrement>
-
-The C<++$a> operation can be expressed in terms of C<$a+=1> or C<$a+1>,
-and C<$a--> in terms of C<$a-=1> and C<$a-1>.
-
-=item C<abs($a)>
-
-can be expressed in terms of C<$aE<lt>0> and C<-$a> (or C<0-$a>).
-
-=item I<Unary minus>
-
-can be expressed in terms of subtraction.
-
-=item I<Negation>
-
-C<!> and C<not> can be expressed in terms of boolean conversion, or
-string or numerical conversion.
-
-=item I<Concatenation>
-
-can be expressed in terms of string conversion.
-
-=item I<Comparison operations>
-
-can be expressed in terms of its "spaceship" counterpart: either
-C<E<lt>=E<gt>> or C<cmp>:
-
- <, >, <=, >=, ==, != in terms of <=>
- lt, gt, le, ge, eq, ne in terms of cmp
-
-=item I<Iterator>
-
- <> in terms of builtin operations
-
-=item I<Dereferencing>
-
- ${} @{} %{} &{} *{} in terms of builtin operations
-
-=item I<Copy operator>
-
-can be expressed in terms of an assignment to the dereferenced value, if this
-value is a scalar and not a reference.
-
-=back
-
-=head1 Losing overloading
-
-The restriction for the comparison operation is that even if, for example,
-`C<cmp>' should return a blessed reference, the autogenerated `C<lt>'
-function will produce only a standard logical value based on the
-numerical value of the result of `C<cmp>'. In particular, a working
-numeric conversion is needed in this case (possibly expressed in terms of
-other conversions).
-
-Similarly, C<.=> and C<x=> operators lose their mathemagical properties
-if the string conversion substitution is applied.
-
-When you chop() a mathemagical object it is promoted to a string and its
-mathemagical properties are lost. The same can happen with other
-operations as well.
-
-=head1 Run-time Overloading
-
-Since all C<use> directives are executed at compile-time, the only way to
-change overloading during run-time is to
-
- eval 'use overload "+" => \&addmethod';
-
-You can also use
-
- eval 'no overload "+", "--", "<="';
-
-though the use of these constructs during run-time is questionable.
-
-=head1 Public functions
-
-Package C<overload.pm> provides the following public functions:
-
-=over 5
-
-=item overload::StrVal(arg)
-
-Gives string value of C<arg> as in absence of stringify overloading.
-
-=item overload::Overloaded(arg)
-
-Returns true if C<arg> is subject to overloading of some operations.
-
-=item overload::Method(obj,op)
-
-Returns C<undef> or a reference to the method that implements C<op>.
-
-=back
-
-=head1 Overloading constants
-
-For some application Perl parser mangles constants too much. It is possible
-to hook into this process via overload::constant() and overload::remove_constant()
-functions.
-
-These functions take a hash as an argument. The recognized keys of this hash
-are
-
-=over 8
-
-=item integer
-
-to overload integer constants,
-
-=item float
-
-to overload floating point constants,
-
-=item binary
-
-to overload octal and hexadecimal constants,
-
-=item q
-
-to overload C<q>-quoted strings, constant pieces of C<qq>- and C<qx>-quoted
-strings and here-documents,
-
-=item qr
-
-to overload constant pieces of regular expressions.
-
-=back
-
-The corresponding values are references to functions which take three arguments:
-the first one is the I<initial> string form of the constant, the second one
-is how Perl interprets this constant, the third one is how the constant is used.
-Note that the initial string form does not
-contain string delimiters, and has backslashes in backslash-delimiter
-combinations stripped (thus the value of delimiter is not relevant for
-processing of this string). The return value of this function is how this
-constant is going to be interpreted by Perl. The third argument is undefined
-unless for overloaded C<q>- and C<qr>- constants, it is C<q> in single-quote
-context (comes from strings, regular expressions, and single-quote HERE
-documents), it is C<tr> for arguments of C<tr>/C<y> operators,
-it is C<s> for right-hand side of C<s>-operator, and it is C<qq> otherwise.
-
-Since an expression C<"ab$cd,,"> is just a shortcut for C<'ab' . $cd . ',,'>,
-it is expected that overloaded constant strings are equipped with reasonable
-overloaded catenation operator, otherwise absurd results will result.
-Similarly, negative numbers are considered as negations of positive constants.
-
-Note that it is probably meaningless to call the functions overload::constant()
-and overload::remove_constant() from anywhere but import() and unimport() methods.
-From these methods they may be called as
-
- sub import {
- shift;
- return unless @_;
- die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant';
- overload::constant integer => sub {Math::BigInt->new(shift)};
- }
-
-B<BUGS> Currently overloaded-ness of constants does not propagate
-into C<eval '...'>.
-
-=head1 IMPLEMENTATION
-
-What follows is subject to change RSN.
-
-The table of methods for all operations is cached in magic for the
-symbol table hash for the package. The cache is invalidated during
-processing of C<use overload>, C<no overload>, new function
-definitions, and changes in @ISA. However, this invalidation remains
-unprocessed until the next C<bless>ing into the package. Hence if you
-want to change overloading structure dynamically, you'll need an
-additional (fake) C<bless>ing to update the table.
-
-(Every SVish thing has a magic queue, and magic is an entry in that
-queue. This is how a single variable may participate in multiple
-forms of magic simultaneously. For instance, environment variables
-regularly have two forms at once: their %ENV magic and their taint
-magic. However, the magic which implements overloading is applied to
-the stashes, which are rarely used directly, thus should not slow down
-Perl.)
-
-If an object belongs to a package using overload, it carries a special
-flag. Thus the only speed penalty during arithmetic operations without
-overloading is the checking of this flag.
-
-In fact, if C<use overload> is not present, there is almost no overhead
-for overloadable operations, so most programs should not suffer
-measurable performance penalties. A considerable effort was made to
-minimize the overhead when overload is used in some package, but the
-arguments in question do not belong to packages using overload. When
-in doubt, test your speed with C<use overload> and without it. So far
-there have been no reports of substantial speed degradation if Perl is
-compiled with optimization turned on.
-
-There is no size penalty for data if overload is not used. The only
-size penalty if overload is used in some package is that I<all> the
-packages acquire a magic during the next C<bless>ing into the
-package. This magic is three-words-long for packages without
-overloading, and carries the cache table if the package is overloaded.
-
-Copying (C<$a=$b>) is shallow; however, a one-level-deep copying is
-carried out before any operation that can imply an assignment to the
-object $a (or $b) refers to, like C<$a++>. You can override this
-behavior by defining your own copy constructor (see L<"Copy Constructor">).
-
-It is expected that arguments to methods that are not explicitly supposed
-to be changed are constant (but this is not enforced).
-
-=head1 Metaphor clash
-
-One may wonder why the semantic of overloaded C<=> is so counter intuitive.
-If it I<looks> counter intuitive to you, you are subject to a metaphor
-clash.
-
-Here is a Perl object metaphor:
-
-I< object is a reference to blessed data>
-
-and an arithmetic metaphor:
-
-I< object is a thing by itself>.
-
-The I<main> problem of overloading C<=> is the fact that these metaphors
-imply different actions on the assignment C<$a = $b> if $a and $b are
-objects. Perl-think implies that $a becomes a reference to whatever
-$b was referencing. Arithmetic-think implies that the value of "object"
-$a is changed to become the value of the object $b, preserving the fact
-that $a and $b are separate entities.
-
-The difference is not relevant in the absence of mutators. After
-a Perl-way assignment an operation which mutates the data referenced by $a
-would change the data referenced by $b too. Effectively, after
-C<$a = $b> values of $a and $b become I<indistinguishable>.
-
-On the other hand, anyone who has used algebraic notation knows the
-expressive power of the arithmetic metaphor. Overloading works hard
-to enable this metaphor while preserving the Perlian way as far as
-possible. Since it is not possible to freely mix two contradicting
-metaphors, overloading allows the arithmetic way to write things I<as
-far as all the mutators are called via overloaded access only>. The
-way it is done is described in L<Copy Constructor>.
-
-If some mutator methods are directly applied to the overloaded values,
-one may need to I<explicitly unlink> other values which references the
-same value:
-
- $a = new Data 23;
- ...
- $b = $a; # $b is "linked" to $a
- ...
- $a = $a->clone; # Unlink $b from $a
- $a->increment_by(4);
-
-Note that overloaded access makes this transparent:
-
- $a = new Data 23;
- $b = $a; # $b is "linked" to $a
- $a += 4; # would unlink $b automagically
-
-However, it would not make
-
- $a = new Data 23;
- $a = 4; # Now $a is a plain 4, not 'Data'
-
-preserve "objectness" of $a. But Perl I<has> a way to make assignments
-to an object do whatever you want. It is just not the overload, but
-tie()ing interface (see L<perlfunc/tie>). Adding a FETCH() method
-which returns the object itself, and STORE() method which changes the
-value of the object, one can reproduce the arithmetic metaphor in its
-completeness, at least for variables which were tie()d from the start.
-
-(Note that a workaround for a bug may be needed, see L<"BUGS">.)
-
-=head1 Cookbook
-
-Please add examples to what follows!
-
-=head2 Two-face scalars
-
-Put this in F<two_face.pm> in your Perl library directory:
-
- package two_face; # Scalars with separate string and
- # numeric values.
- sub new { my $p = shift; bless [@_], $p }
- use overload '""' => \&str, '0+' => \&num, fallback => 1;
- sub num {shift->[1]}
- sub str {shift->[0]}
-
-Use it as follows:
-
- require two_face;
- my $seven = new two_face ("vii", 7);
- printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1;
- print "seven contains `i'\n" if $seven =~ /i/;
-
-(The second line creates a scalar which has both a string value, and a
-numeric value.) This prints:
-
- seven=vii, seven=7, eight=8
- seven contains `i'
-
-=head2 Two-face references
-
-Suppose you want to create an object which is accessible as both an
-array reference and a hash reference, similar to the
-L<pseudo-hash|perlref/"Pseudo-hashes: Using an array as a hash">
-builtin Perl type. Let's make it better than a pseudo-hash by
-allowing index 0 to be treated as a normal element.
-
- package two_refs;
- use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} };
- sub new {
- my $p = shift;
- bless \ [@_], $p;
- }
- sub gethash {
- my %h;
- my $self = shift;
- tie %h, ref $self, $self;
- \%h;
- }
-
- sub TIEHASH { my $p = shift; bless \ shift, $p }
- my %fields;
- my $i = 0;
- $fields{$_} = $i++ foreach qw{zero one two three};
- sub STORE {
- my $self = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $$self->[$key] = shift;
- }
- sub FETCH {
- my $self = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $$self->[$key];
- }
-
-Now one can access an object using both the array and hash syntax:
-
- my $bar = new two_refs 3,4,5,6;
- $bar->[2] = 11;
- $bar->{two} == 11 or die 'bad hash fetch';
-
-Note several important features of this example. First of all, the
-I<actual> type of $bar is a scalar reference, and we do not overload
-the scalar dereference. Thus we can get the I<actual> non-overloaded
-contents of $bar by just using C<$$bar> (what we do in functions which
-overload dereference). Similarly, the object returned by the
-TIEHASH() method is a scalar reference.
-
-Second, we create a new tied hash each time the hash syntax is used.
-This allows us not to worry about a possibility of a reference loop,
-which would lead to a memory leak.
-
-Both these problems can be cured. Say, if we want to overload hash
-dereference on a reference to an object which is I<implemented> as a
-hash itself, the only problem one has to circumvent is how to access
-this I<actual> hash (as opposed to the I<virtual> hash exhibited by the
-overloaded dereference operator). Here is one possible fetching routine:
-
- sub access_hash {
- my ($self, $key) = (shift, shift);
- my $class = ref $self;
- bless $self, 'overload::dummy'; # Disable overloading of %{}
- my $out = $self->{$key};
- bless $self, $class; # Restore overloading
- $out;
- }
-
-To remove creation of the tied hash on each access, one may an extra
-level of indirection which allows a non-circular structure of references:
-
- package two_refs1;
- use overload '%{}' => sub { ${shift()}->[1] },
- '@{}' => sub { ${shift()}->[0] };
- sub new {
- my $p = shift;
- my $a = [@_];
- my %h;
- tie %h, $p, $a;
- bless \ [$a, \%h], $p;
- }
- sub gethash {
- my %h;
- my $self = shift;
- tie %h, ref $self, $self;
- \%h;
- }
-
- sub TIEHASH { my $p = shift; bless \ shift, $p }
- my %fields;
- my $i = 0;
- $fields{$_} = $i++ foreach qw{zero one two three};
- sub STORE {
- my $a = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $a->[$key] = shift;
- }
- sub FETCH {
- my $a = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $a->[$key];
- }
-
-Now if $baz is overloaded like this, then C<$baz> is a reference to a
-reference to the intermediate array, which keeps a reference to an
-actual array, and the access hash. The tie()ing object for the access
-hash is a reference to a reference to the actual array, so
-
-=over
-
-=item *
-
-There are no loops of references.
-
-=item *
-
-Both "objects" which are blessed into the class C<two_refs1> are
-references to a reference to an array, thus references to a I<scalar>.
-Thus the accessor expression C<$$foo-E<gt>[$ind]> involves no
-overloaded operations.
-
-=back
-
-=head2 Symbolic calculator
-
-Put this in F<symbolic.pm> in your Perl library directory:
-
- package symbolic; # Primitive symbolic calculator
- use overload nomethod => \&wrap;
-
- sub new { shift; bless ['n', @_] }
- sub wrap {
- my ($obj, $other, $inv, $meth) = @_;
- ($obj, $other) = ($other, $obj) if $inv;
- bless [$meth, $obj, $other];
- }
-
-This module is very unusual as overloaded modules go: it does not
-provide any usual overloaded operators, instead it provides the L<Last
-Resort> operator C<nomethod>. In this example the corresponding
-subroutine returns an object which encapsulates operations done over
-the objects: C<new symbolic 3> contains C<['n', 3]>, C<2 + new
-symbolic 3> contains C<['+', 2, ['n', 3]]>.
-
-Here is an example of the script which "calculates" the side of
-circumscribed octagon using the above package:
-
- require symbolic;
- my $iter = 1; # 2**($iter+2) = 8
- my $side = new symbolic 1;
- my $cnt = $iter;
-
- while ($cnt--) {
- $side = (sqrt(1 + $side**2) - 1)/$side;
- }
- print "OK\n";
-
-The value of $side is
-
- ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]],
- undef], 1], ['n', 1]]
-
-Note that while we obtained this value using a nice little script,
-there is no simple way to I<use> this value. In fact this value may
-be inspected in debugger (see L<perldebug>), but ony if
-C<bareStringify> B<O>ption is set, and not via C<p> command.
-
-If one attempts to print this value, then the overloaded operator
-C<""> will be called, which will call C<nomethod> operator. The
-result of this operator will be stringified again, but this result is
-again of type C<symbolic>, which will lead to an infinite loop.
-
-Add a pretty-printer method to the module F<symbolic.pm>:
-
- sub pretty {
- my ($meth, $a, $b) = @{+shift};
- $a = 'u' unless defined $a;
- $b = 'u' unless defined $b;
- $a = $a->pretty if ref $a;
- $b = $b->pretty if ref $b;
- "[$meth $a $b]";
- }
-
-Now one can finish the script by
-
- print "side = ", $side->pretty, "\n";
-
-The method C<pretty> is doing object-to-string conversion, so it
-is natural to overload the operator C<""> using this method. However,
-inside such a method it is not necessary to pretty-print the
-I<components> $a and $b of an object. In the above subroutine
-C<"[$meth $a $b]"> is a catenation of some strings and components $a
-and $b. If these components use overloading, the catenation operator
-will look for an overloaded operator C<.>; if not present, it will
-look for an overloaded operator C<"">. Thus it is enough to use
-
- use overload nomethod => \&wrap, '""' => \&str;
- sub str {
- my ($meth, $a, $b) = @{+shift};
- $a = 'u' unless defined $a;
- $b = 'u' unless defined $b;
- "[$meth $a $b]";
- }
-
-Now one can change the last line of the script to
-
- print "side = $side\n";
-
-which outputs
-
- side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]]
-
-and one can inspect the value in debugger using all the possible
-methods.
-
-Something is still amiss: consider the loop variable $cnt of the
-script. It was a number, not an object. We cannot make this value of
-type C<symbolic>, since then the loop will not terminate.
-
-Indeed, to terminate the cycle, the $cnt should become false.
-However, the operator C<bool> for checking falsity is overloaded (this
-time via overloaded C<"">), and returns a long string, thus any object
-of type C<symbolic> is true. To overcome this, we need a way to
-compare an object to 0. In fact, it is easier to write a numeric
-conversion routine.
-
-Here is the text of F<symbolic.pm> with such a routine added (and
-slightly modified str()):
-
- package symbolic; # Primitive symbolic calculator
- use overload
- nomethod => \&wrap, '""' => \&str, '0+' => \&num;
-
- sub new { shift; bless ['n', @_] }
- sub wrap {
- my ($obj, $other, $inv, $meth) = @_;
- ($obj, $other) = ($other, $obj) if $inv;
- bless [$meth, $obj, $other];
- }
- sub str {
- my ($meth, $a, $b) = @{+shift};
- $a = 'u' unless defined $a;
- if (defined $b) {
- "[$meth $a $b]";
- } else {
- "[$meth $a]";
- }
- }
- my %subr = ( n => sub {$_[0]},
- sqrt => sub {sqrt $_[0]},
- '-' => sub {shift() - shift()},
- '+' => sub {shift() + shift()},
- '/' => sub {shift() / shift()},
- '*' => sub {shift() * shift()},
- '**' => sub {shift() ** shift()},
- );
- sub num {
- my ($meth, $a, $b) = @{+shift};
- my $subr = $subr{$meth}
- or die "Do not know how to ($meth) in symbolic";
- $a = $a->num if ref $a eq __PACKAGE__;
- $b = $b->num if ref $b eq __PACKAGE__;
- $subr->($a,$b);
- }
-
-All the work of numeric conversion is done in %subr and num(). Of
-course, %subr is not complete, it contains only operators used in the
-example below. Here is the extra-credit question: why do we need an
-explicit recursion in num()? (Answer is at the end of this section.)
-
-Use this module like this:
-
- require symbolic;
- my $iter = new symbolic 2; # 16-gon
- my $side = new symbolic 1;
- my $cnt = $iter;
-
- while ($cnt) {
- $cnt = $cnt - 1; # Mutator `--' not implemented
- $side = (sqrt(1 + $side**2) - 1)/$side;
- }
- printf "%s=%f\n", $side, $side;
- printf "pi=%f\n", $side*(2**($iter+2));
-
-It prints (without so many line breaks)
-
- [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1]
- [n 1]] 2]]] 1]
- [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912
- pi=3.182598
-
-The above module is very primitive. It does not implement
-mutator methods (C<++>, C<-=> and so on), does not do deep copying
-(not required without mutators!), and implements only those arithmetic
-operations which are used in the example.
-
-To implement most arithmetic operations is easy; one should just use
-the tables of operations, and change the code which fills %subr to
-
- my %subr = ( 'n' => sub {$_[0]} );
- foreach my $op (split " ", $overload::ops{with_assign}) {
- $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
- }
- my @bins = qw(binary 3way_comparison num_comparison str_comparison);
- foreach my $op (split " ", "@overload::ops{ @bins }") {
- $subr{$op} = eval "sub {shift() $op shift()}";
- }
- foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
- print "defining `$op'\n";
- $subr{$op} = eval "sub {$op shift()}";
- }
-
-Due to L<Calling Conventions for Mutators>, we do not need anything
-special to make C<+=> and friends work, except filling C<+=> entry of
-%subr, and defining a copy constructor (needed since Perl has no
-way to know that the implementation of C<'+='> does not mutate
-the argument, compare L<Copy Constructor>).
-
-To implement a copy constructor, add C<< '=' => \&cpy >> to C<use overload>
-line, and code (this code assumes that mutators change things one level
-deep only, so recursive copying is not needed):
-
- sub cpy {
- my $self = shift;
- bless [@$self], ref $self;
- }
-
-To make C<++> and C<--> work, we need to implement actual mutators,
-either directly, or in C<nomethod>. We continue to do things inside
-C<nomethod>, thus add
-
- if ($meth eq '++' or $meth eq '--') {
- @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference
- return $obj;
- }
-
-after the first line of wrap(). This is not a most effective
-implementation, one may consider
-
- sub inc { $_[0] = bless ['++', shift, 1]; }
-
-instead.
-
-As a final remark, note that one can fill %subr by
-
- my %subr = ( 'n' => sub {$_[0]} );
- foreach my $op (split " ", $overload::ops{with_assign}) {
- $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
- }
- my @bins = qw(binary 3way_comparison num_comparison str_comparison);
- foreach my $op (split " ", "@overload::ops{ @bins }") {
- $subr{$op} = eval "sub {shift() $op shift()}";
- }
- foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
- $subr{$op} = eval "sub {$op shift()}";
- }
- $subr{'++'} = $subr{'+'};
- $subr{'--'} = $subr{'-'};
-
-This finishes implementation of a primitive symbolic calculator in
-50 lines of Perl code. Since the numeric values of subexpressions
-are not cached, the calculator is very slow.
-
-Here is the answer for the exercise: In the case of str(), we need no
-explicit recursion since the overloaded C<.>-operator will fall back
-to an existing overloaded operator C<"">. Overloaded arithmetic
-operators I<do not> fall back to numeric conversion if C<fallback> is
-not explicitly requested. Thus without an explicit recursion num()
-would convert C<['+', $a, $b]> to C<$a + $b>, which would just rebuild
-the argument of num().
-
-If you wonder why defaults for conversion are different for str() and
-num(), note how easy it was to write the symbolic calculator. This
-simplicity is due to an appropriate choice of defaults. One extra
-note: due to the explicit recursion num() is more fragile than sym():
-we need to explicitly check for the type of $a and $b. If components
-$a and $b happen to be of some related type, this may lead to problems.
-
-=head2 I<Really> symbolic calculator
-
-One may wonder why we call the above calculator symbolic. The reason
-is that the actual calculation of the value of expression is postponed
-until the value is I<used>.
-
-To see it in action, add a method
-
- sub STORE {
- my $obj = shift;
- $#$obj = 1;
- @$obj->[0,1] = ('=', shift);
- }
-
-to the package C<symbolic>. After this change one can do
-
- my $a = new symbolic 3;
- my $b = new symbolic 4;
- my $c = sqrt($a**2 + $b**2);
-
-and the numeric value of $c becomes 5. However, after calling
-
- $a->STORE(12); $b->STORE(5);
-
-the numeric value of $c becomes 13. There is no doubt now that the module
-symbolic provides a I<symbolic> calculator indeed.
-
-To hide the rough edges under the hood, provide a tie()d interface to the
-package C<symbolic> (compare with L<Metaphor clash>). Add methods
-
- sub TIESCALAR { my $pack = shift; $pack->new(@_) }
- sub FETCH { shift }
- sub nop { } # Around a bug
-
-(the bug is described in L<"BUGS">). One can use this new interface as
-
- tie $a, 'symbolic', 3;
- tie $b, 'symbolic', 4;
- $a->nop; $b->nop; # Around a bug
-
- my $c = sqrt($a**2 + $b**2);
-
-Now numeric value of $c is 5. After C<$a = 12; $b = 5> the numeric value
-of $c becomes 13. To insulate the user of the module add a method
-
- sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; }
-
-Now
-
- my ($a, $b);
- symbolic->vars($a, $b);
- my $c = sqrt($a**2 + $b**2);
-
- $a = 3; $b = 4;
- printf "c5 %s=%f\n", $c, $c;
-
- $a = 12; $b = 5;
- printf "c13 %s=%f\n", $c, $c;
-
-shows that the numeric value of $c follows changes to the values of $a
-and $b.
-
-=head1 AUTHOR
-
-Ilya Zakharevich E<lt>F<ilya@math.mps.ohio-state.edu>E<gt>.
-
-=head1 DIAGNOSTICS
-
-When Perl is run with the B<-Do> switch or its equivalent, overloading
-induces diagnostic messages.
-
-Using the C<m> command of Perl debugger (see L<perldebug>) one can
-deduce which operations are overloaded (and which ancestor triggers
-this overloading). Say, if C<eq> is overloaded, then the method C<(eq>
-is shown by debugger. The method C<()> corresponds to the C<fallback>
-key (in fact a presence of this method shows that this package has
-overloading enabled, and it is what is used by the C<Overloaded>
-function of module C<overload>).
-
-The module might issue the following warnings:
-
-=over 4
-
-=item Odd number of arguments for overload::constant
-
-(W) The call to overload::constant contained an odd number of arguments.
-The arguments should come in pairs.
-
-=item `%s' is not an overloadable type
-
-(W) You tried to overload a constant type the overload package is unaware of.
-
-=item `%s' is not a code reference
-
-(W) The second (fourth, sixth, ...) argument of overload::constant needs
-to be a code reference. Either an anonymous subroutine, or a reference
-to a subroutine.
-
-=back
-
-=head1 BUGS
-
-Because it is used for overloading, the per-package hash %OVERLOAD now
-has a special meaning in Perl. The symbol table is filled with names
-looking like line-noise.
-
-For the purpose of inheritance every overloaded package behaves as if
-C<fallback> is present (possibly undefined). This may create
-interesting effects if some package is not overloaded, but inherits
-from two overloaded packages.
-
-Relation between overloading and tie()ing is broken. Overloading is
-triggered or not basing on the I<previous> class of tie()d value.
-
-This happens because the presence of overloading is checked too early,
-before any tie()d access is attempted. If the FETCH()ed class of the
-tie()d value does not change, a simple workaround is to access the value
-immediately after tie()ing, so that after this call the I<previous> class
-coincides with the current one.
-
-B<Needed:> a way to fix this without a speed penalty.
-
-Barewords are not covered by overloaded string constants.
-
-This document is confusing. There are grammos and misleading language
-used in places. It would seem a total rewrite is needed.
-
-=cut
-
diff --git a/Master/xemtex/perl/lib/re.pm b/Master/xemtex/perl/lib/re.pm
deleted file mode 100644
index 95e25407607..00000000000
--- a/Master/xemtex/perl/lib/re.pm
+++ /dev/null
@@ -1,134 +0,0 @@
-package re;
-
-our $VERSION = 0.03;
-
-=head1 NAME
-
-re - Perl pragma to alter regular expression behaviour
-
-=head1 SYNOPSIS
-
- use re 'taint';
- ($x) = ($^X =~ /^(.*)$/s); # $x is tainted here
-
- $pat = '(?{ $foo = 1 })';
- use re 'eval';
- /foo${pat}bar/; # won't fail (when not under -T switch)
-
- {
- no re 'taint'; # the default
- ($x) = ($^X =~ /^(.*)$/s); # $x is not tainted here
-
- no re 'eval'; # the default
- /foo${pat}bar/; # disallowed (with or without -T switch)
- }
-
- use re 'debug'; # NOT lexically scoped (as others are)
- /^(.*)$/s; # output debugging info during
- # compile and run time
-
- use re 'debugcolor'; # same as 'debug', but with colored output
- ...
-
-(We use $^X in these examples because it's tainted by default.)
-
-=head1 DESCRIPTION
-
-When C<use re 'taint'> is in effect, and a tainted string is the target
-of a regex, the regex memories (or values returned by the m// operator
-in list context) are tainted. This feature is useful when regex operations
-on tainted data aren't meant to extract safe substrings, but to perform
-other transformations.
-
-When C<use re 'eval'> is in effect, a regex is allowed to contain
-C<(?{ ... })> zero-width assertions even if regular expression contains
-variable interpolation. That is normally disallowed, since it is a
-potential security risk. Note that this pragma is ignored when the regular
-expression is obtained from tainted data, i.e. evaluation is always
-disallowed with tainted regular expresssions. See L<perlre/(?{ code })>.
-
-For the purpose of this pragma, interpolation of precompiled regular
-expressions (i.e., the result of C<qr//>) is I<not> considered variable
-interpolation. Thus:
-
- /foo${pat}bar/
-
-I<is> allowed if $pat is a precompiled regular expression, even
-if $pat contains C<(?{ ... })> assertions.
-
-When C<use re 'debug'> is in effect, perl emits debugging messages when
-compiling and using regular expressions. The output is the same as that
-obtained by running a C<-DDEBUGGING>-enabled perl interpreter with the
-B<-Dr> switch. It may be quite voluminous depending on the complexity
-of the match. Using C<debugcolor> instead of C<debug> enables a
-form of output that can be used to get a colorful display on terminals
-that understand termcap color sequences. Set C<$ENV{PERL_RE_TC}> to a
-comma-separated list of C<termcap> properties to use for highlighting
-strings on/off, pre-point part on/off.
-See L<perldebug/"Debugging regular expressions"> for additional info.
-
-The directive C<use re 'debug'> is I<not lexically scoped>, as the
-other directives are. It has both compile-time and run-time effects.
-
-See L<perlmodlib/Pragmatic Modules>.
-
-=cut
-
-# N.B. File::Basename contains a literal for 'taint' as a fallback. If
-# taint is changed here, File::Basename must be updated as well.
-my %bitmask = (
-taint => 0x00100000,
-eval => 0x00200000,
-);
-
-sub setcolor {
- eval { # Ignore errors
- require Term::Cap;
-
- my $terminal = Tgetent Term::Cap ({OSPEED => 9600}); # Avoid warning.
- my $props = $ENV{PERL_RE_TC} || 'md,me,so,se,us,ue';
- my @props = split /,/, $props;
- my $colors = join "\t", map {$terminal->Tputs($_,1)} @props;
-
- $colors =~ s/\0//g;
- $ENV{PERL_RE_COLORS} = $colors;
- };
-}
-
-sub bits {
- my $on = shift;
- my $bits = 0;
- unless (@_) {
- require Carp;
- Carp::carp("Useless use of \"re\" pragma");
- }
- foreach my $s (@_){
- if ($s eq 'debug' or $s eq 'debugcolor') {
- setcolor() if $s eq 'debugcolor';
- require XSLoader;
- XSLoader::load('re');
- install() if $on;
- uninstall() unless $on;
- next;
- }
- if (exists $bitmask{$s}) {
- $bits |= $bitmask{$s};
- } else {
- require Carp;
- Carp::carp("Unknown \"re\" subpragma '$s' (known ones are: @{[join(', ', map {qq('$_')} 'debug', 'debugcolor', sort keys %bitmask)]})");
- }
- }
- $bits;
-}
-
-sub import {
- shift;
- $^H |= bits(1, @_);
-}
-
-sub unimport {
- shift;
- $^H &= ~ bits(0, @_);
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/strict.pm b/Master/xemtex/perl/lib/strict.pm
deleted file mode 100644
index 737cb18b1ad..00000000000
--- a/Master/xemtex/perl/lib/strict.pm
+++ /dev/null
@@ -1,117 +0,0 @@
-package strict;
-
-=head1 NAME
-
-strict - Perl pragma to restrict unsafe constructs
-
-=head1 SYNOPSIS
-
- use strict;
-
- use strict "vars";
- use strict "refs";
- use strict "subs";
-
- use strict;
- no strict "vars";
-
-=head1 DESCRIPTION
-
-If no import list is supplied, all possible restrictions are assumed.
-(This is the safest mode to operate in, but is sometimes too strict for
-casual programming.) Currently, there are three possible things to be
-strict about: "subs", "vars", and "refs".
-
-=over 6
-
-=item C<strict refs>
-
-This generates a runtime error if you
-use symbolic references (see L<perlref>).
-
- use strict 'refs';
- $ref = \$foo;
- print $$ref; # ok
- $ref = "foo";
- print $$ref; # runtime error; normally ok
- $file = "STDOUT";
- print $file "Hi!"; # error; note: no comma after $file
-
-There is one exception to this rule:
-
- $bar = \&{'foo'};
- &$bar;
-
-is allowed so that C<goto &$AUTOLOAD> would not break under stricture.
-
-
-=item C<strict vars>
-
-This generates a compile-time error if you access a variable that wasn't
-declared via "our" or C<use vars>,
-localized via C<my()>, or wasn't fully qualified. Because this is to avoid
-variable suicide problems and subtle dynamic scoping issues, a merely
-local() variable isn't good enough. See L<perlfunc/my> and
-L<perlfunc/local>.
-
- use strict 'vars';
- $X::foo = 1; # ok, fully qualified
- my $foo = 10; # ok, my() var
- local $foo = 9; # blows up
-
- package Cinna;
- our $bar; # Declares $bar in current package
- $bar = 'HgS'; # ok, global declared via pragma
-
-The local() generated a compile-time error because you just touched a global
-name without fully qualifying it.
-
-Because of their special use by sort(), the variables $a and $b are
-exempted from this check.
-
-=item C<strict subs>
-
-This disables the poetry optimization, generating a compile-time error if
-you try to use a bareword identifier that's not a subroutine, unless it
-appears in curly braces or on the left hand side of the "=E<gt>" symbol.
-
-
- use strict 'subs';
- $SIG{PIPE} = Plumber; # blows up
- $SIG{PIPE} = "Plumber"; # just fine: bareword in curlies always ok
- $SIG{PIPE} = \&Plumber; # preferred form
-
-
-
-=back
-
-See L<perlmodlib/Pragmatic Modules>.
-
-
-=cut
-
-$strict::VERSION = "1.02";
-
-my %bitmask = (
-refs => 0x00000002,
-subs => 0x00000200,
-vars => 0x00000400
-);
-
-sub bits {
- my $bits = 0;
- foreach my $s (@_){ $bits |= $bitmask{$s} || 0; };
- $bits;
-}
-
-sub import {
- shift;
- $^H |= bits(@_ ? @_ : qw(refs subs vars));
-}
-
-sub unimport {
- shift;
- $^H &= ~ bits(@_ ? @_ : qw(refs subs vars));
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/subs.pm b/Master/xemtex/perl/lib/subs.pm
deleted file mode 100644
index e5a9aa8827d..00000000000
--- a/Master/xemtex/perl/lib/subs.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-package subs;
-
-our $VERSION = '1.00';
-
-=head1 NAME
-
-subs - Perl pragma to predeclare sub names
-
-=head1 SYNOPSIS
-
- use subs qw(frob);
- frob 3..10;
-
-=head1 DESCRIPTION
-
-This will predeclare all the subroutine whose names are
-in the list, allowing you to use them without parentheses
-even before they're declared.
-
-Unlike pragmas that affect the C<$^H> hints variable, the C<use vars> and
-C<use subs> declarations are not BLOCK-scoped. They are thus effective
-for the entire file in which they appear. You may not rescind such
-declarations with C<no vars> or C<no subs>.
-
-See L<perlmodlib/Pragmatic Modules> and L<strict/strict subs>.
-
-=cut
-
-require 5.000;
-
-sub import {
- my $callpack = caller;
- my $pack = shift;
- my @imports = @_;
- foreach $sym (@imports) {
- *{"${callpack}::$sym"} = \&{"${callpack}::$sym"};
- }
-};
-
-1;
diff --git a/Master/xemtex/perl/lib/unicore/ArabLink.pl b/Master/xemtex/perl/lib/unicore/ArabLink.pl
deleted file mode 100644
index f68a8af519a..00000000000
--- a/Master/xemtex/perl/lib/unicore/ArabLink.pl
+++ /dev/null
@@ -1,49 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0621 U
-0622 0625 R
-0626 D
-0627 R
-0628 D
-0629 R
-062A 062E D
-062F 0632 R
-0633 063A D
-0640 C
-0641 0647 D
-0648 R
-0649 064A D
-066E 066F D
-0671 0673 R
-0674 U
-0675 0677 R
-0678 0687 D
-0688 0699 R
-069A 06BF D
-06C0 R
-06C1 D
-06C2 06CB R
-06CC D
-06CD R
-06CE D
-06CF R
-06D0 06D1 D
-06D2 06D3 R
-06D5 R
-06FA 06FC D
-0710 R
-0712 0714 D
-0715 0719 R
-071A 071D D
-071E R
-071F 0727 D
-0728 R
-0729 D
-072A R
-072B D
-072C R
-200D C
-END
diff --git a/Master/xemtex/perl/lib/unicore/ArabLnkGrp.pl b/Master/xemtex/perl/lib/unicore/ArabLnkGrp.pl
deleted file mode 100644
index 2e766d50a8f..00000000000
--- a/Master/xemtex/perl/lib/unicore/ArabLnkGrp.pl
+++ /dev/null
@@ -1,98 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0621 <no shaping>
-0622 0623 ALEF
-0624 WAW
-0625 ALEF
-0626 YEH
-0627 ALEF
-0628 BEH
-0629 TEH MARBUTA
-062A 062B BEH
-062C 062E HAH
-062F 0630 DAL
-0631 0632 REH
-0633 0634 SEEN
-0635 0636 SAD
-0637 0638 TAH
-0639 063A AIN
-0640 <no shaping>
-0641 FEH
-0642 QAF
-0643 KAF
-0644 LAM
-0645 MEEM
-0646 NOON
-0647 HEH
-0648 WAW
-0649 064A YEH
-066E BEH
-066F QAF
-0671 0673 ALEF
-0674 <no shaping>
-0675 ALEF
-0676 0677 WAW
-0678 YEH
-0679 0680 BEH
-0681 0687 HAH
-0688 0690 DAL
-0691 0699 REH
-069A 069C SEEN
-069D 069E SAD
-069F TAH
-06A0 AIN
-06A1 06A6 FEH
-06A7 06A8 QAF
-06A9 GAF
-06AA SWASH KAF
-06AB GAF
-06AC 06AE KAF
-06AF 06B4 GAF
-06B5 06B8 LAM
-06B9 06BD NOON
-06BE KNOTTED HEH
-06BF HAH
-06C0 TEH MARBUTA
-06C1 HEH GOAL
-06C2 06C3 HAMZA ON HEH GOAL
-06C4 06CB WAW
-06CC YEH
-06CD YEH WITH TAIL
-06CE YEH
-06CF WAW
-06D0 06D1 YEH
-06D2 06D3 YEH BARREE
-06D5 TEH MARBUTA
-06FA SEEN
-06FB SAD
-06FC AIN
-0710 ALAPH
-0712 BETH
-0713 0714 GAMAL
-0715 0716 DALATH RISH
-0717 HE
-0718 SYRIAC WAW
-0719 ZAIN
-071A HETH
-071B 071C TETH
-071D YUDH
-071E YUDH HE
-071F KAPH
-0720 LAMADH
-0721 MIM
-0722 NUN
-0723 SEMKATH
-0724 FINAL SEMKATH
-0725 E
-0726 PE
-0727 REVERSED PE
-0728 SADHE
-0729 QAPH
-072A DALATH RISH
-072B SHIN
-072C TAW
-200D <no shaping>
-END
diff --git a/Master/xemtex/perl/lib/unicore/Bidirectional.pl b/Master/xemtex/perl/lib/unicore/Bidirectional.pl
deleted file mode 100644
index 0fd1fff9321..00000000000
--- a/Master/xemtex/perl/lib/unicore/Bidirectional.pl
+++ /dev/null
@@ -1,692 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0000 0008 BN
-0009 S
-000A B
-000B S
-000C WS
-000D B
-000E 001B BN
-001C 001E B
-001F S
-0020 WS
-0021 0022 ON
-0023 0025 ET
-0026 002A ON
-002B ET
-002C CS
-002D ET
-002E CS
-002F ES
-0030 0039 EN
-003A CS
-003B 0040 ON
-0041 005A L
-005B 0060 ON
-0061 007A L
-007B 007E ON
-007F 0084 BN
-0085 B
-0086 009F BN
-00A0 CS
-00A1 ON
-00A2 00A5 ET
-00A6 00A9 ON
-00AA L
-00AB 00AF ON
-00B0 00B1 ET
-00B2 00B3 EN
-00B4 ON
-00B5 L
-00B6 00B8 ON
-00B9 EN
-00BA L
-00BB 00BF ON
-00C0 00D6 L
-00D7 ON
-00D8 00F6 L
-00F7 ON
-00F8 0220 L
-0222 0233 L
-0250 02AD L
-02B0 02B8 L
-02B9 02BA ON
-02BB 02C1 L
-02C2 02CF ON
-02D0 02D1 L
-02D2 02DF ON
-02E0 02E4 L
-02E5 02ED ON
-02EE L
-0300 034F NSM
-0360 036F NSM
-0374 0375 ON
-037A L
-037E ON
-0384 0385 ON
-0386 L
-0387 ON
-0388 038A L
-038C L
-038E 03A1 L
-03A3 03CE L
-03D0 03F5 L
-03F6 ON
-0400 0482 L
-0483 0486 NSM
-0488 0489 NSM
-048A 04CE L
-04D0 04F5 L
-04F8 04F9 L
-0500 050F L
-0531 0556 L
-0559 055F L
-0561 0587 L
-0589 L
-058A ON
-0591 05A1 NSM
-05A3 05B9 NSM
-05BB 05BD NSM
-05BE R
-05BF NSM
-05C0 R
-05C1 05C2 NSM
-05C3 R
-05C4 NSM
-05D0 05EA R
-05F0 05F4 R
-060C CS
-061B AL
-061F AL
-0621 063A AL
-0640 064A AL
-064B 0655 NSM
-0660 0669 AN
-066A ET
-066B 066C AN
-066D 066F AL
-0670 NSM
-0671 06D5 AL
-06D6 06DC NSM
-06DD AL
-06DE 06E4 NSM
-06E5 06E6 AL
-06E7 06E8 NSM
-06E9 ON
-06EA 06ED NSM
-06F0 06F9 EN
-06FA 06FE AL
-0700 070D AL
-070F BN
-0710 AL
-0711 NSM
-0712 072C AL
-0730 074A NSM
-0780 07A5 AL
-07A6 07B0 NSM
-07B1 AL
-0901 0902 NSM
-0903 L
-0905 0939 L
-093C NSM
-093D 0940 L
-0941 0948 NSM
-0949 094C L
-094D NSM
-0950 L
-0951 0954 NSM
-0958 0961 L
-0962 0963 NSM
-0964 0970 L
-0981 NSM
-0982 0983 L
-0985 098C L
-098F 0990 L
-0993 09A8 L
-09AA 09B0 L
-09B2 L
-09B6 09B9 L
-09BC NSM
-09BE 09C0 L
-09C1 09C4 NSM
-09C7 09C8 L
-09CB 09CC L
-09CD NSM
-09D7 L
-09DC 09DD L
-09DF 09E1 L
-09E2 09E3 NSM
-09E6 09F1 L
-09F2 09F3 ET
-09F4 09FA L
-0A02 NSM
-0A05 0A0A L
-0A0F 0A10 L
-0A13 0A28 L
-0A2A 0A30 L
-0A32 0A33 L
-0A35 0A36 L
-0A38 0A39 L
-0A3C NSM
-0A3E 0A40 L
-0A41 0A42 NSM
-0A47 0A48 NSM
-0A4B 0A4D NSM
-0A59 0A5C L
-0A5E L
-0A66 0A6F L
-0A70 0A71 NSM
-0A72 0A74 L
-0A81 0A82 NSM
-0A83 L
-0A85 0A8B L
-0A8D L
-0A8F 0A91 L
-0A93 0AA8 L
-0AAA 0AB0 L
-0AB2 0AB3 L
-0AB5 0AB9 L
-0ABC NSM
-0ABD 0AC0 L
-0AC1 0AC5 NSM
-0AC7 0AC8 NSM
-0AC9 L
-0ACB 0ACC L
-0ACD NSM
-0AD0 L
-0AE0 L
-0AE6 0AEF L
-0B01 NSM
-0B02 0B03 L
-0B05 0B0C L
-0B0F 0B10 L
-0B13 0B28 L
-0B2A 0B30 L
-0B32 0B33 L
-0B36 0B39 L
-0B3C NSM
-0B3D 0B3E L
-0B3F NSM
-0B40 L
-0B41 0B43 NSM
-0B47 0B48 L
-0B4B 0B4C L
-0B4D NSM
-0B56 NSM
-0B57 L
-0B5C 0B5D L
-0B5F 0B61 L
-0B66 0B70 L
-0B82 NSM
-0B83 L
-0B85 0B8A L
-0B8E 0B90 L
-0B92 0B95 L
-0B99 0B9A L
-0B9C L
-0B9E 0B9F L
-0BA3 0BA4 L
-0BA8 0BAA L
-0BAE 0BB5 L
-0BB7 0BB9 L
-0BBE 0BBF L
-0BC0 NSM
-0BC1 0BC2 L
-0BC6 0BC8 L
-0BCA 0BCC L
-0BCD NSM
-0BD7 L
-0BE7 0BF2 L
-0C01 0C03 L
-0C05 0C0C L
-0C0E 0C10 L
-0C12 0C28 L
-0C2A 0C33 L
-0C35 0C39 L
-0C3E 0C40 NSM
-0C41 0C44 L
-0C46 0C48 NSM
-0C4A 0C4D NSM
-0C55 0C56 NSM
-0C60 0C61 L
-0C66 0C6F L
-0C82 0C83 L
-0C85 0C8C L
-0C8E 0C90 L
-0C92 0CA8 L
-0CAA 0CB3 L
-0CB5 0CB9 L
-0CBE L
-0CBF NSM
-0CC0 0CC4 L
-0CC6 NSM
-0CC7 0CC8 L
-0CCA 0CCB L
-0CCC 0CCD NSM
-0CD5 0CD6 L
-0CDE L
-0CE0 0CE1 L
-0CE6 0CEF L
-0D02 0D03 L
-0D05 0D0C L
-0D0E 0D10 L
-0D12 0D28 L
-0D2A 0D39 L
-0D3E 0D40 L
-0D41 0D43 NSM
-0D46 0D48 L
-0D4A 0D4C L
-0D4D NSM
-0D57 L
-0D60 0D61 L
-0D66 0D6F L
-0D82 0D83 L
-0D85 0D96 L
-0D9A 0DB1 L
-0DB3 0DBB L
-0DBD L
-0DC0 0DC6 L
-0DCA NSM
-0DCF 0DD1 L
-0DD2 0DD4 NSM
-0DD6 NSM
-0DD8 0DDF L
-0DF2 0DF4 L
-0E01 0E30 L
-0E31 NSM
-0E32 0E33 L
-0E34 0E3A NSM
-0E3F ET
-0E40 0E46 L
-0E47 0E4E NSM
-0E4F 0E5B L
-0E81 0E82 L
-0E84 L
-0E87 0E88 L
-0E8A L
-0E8D L
-0E94 0E97 L
-0E99 0E9F L
-0EA1 0EA3 L
-0EA5 L
-0EA7 L
-0EAA 0EAB L
-0EAD 0EB0 L
-0EB1 NSM
-0EB2 0EB3 L
-0EB4 0EB9 NSM
-0EBB 0EBC NSM
-0EBD L
-0EC0 0EC4 L
-0EC6 L
-0EC8 0ECD NSM
-0ED0 0ED9 L
-0EDC 0EDD L
-0F00 0F17 L
-0F18 0F19 NSM
-0F1A 0F34 L
-0F35 NSM
-0F36 L
-0F37 NSM
-0F38 L
-0F39 NSM
-0F3A 0F3D ON
-0F3E 0F47 L
-0F49 0F6A L
-0F71 0F7E NSM
-0F7F L
-0F80 0F84 NSM
-0F85 L
-0F86 0F87 NSM
-0F88 0F8B L
-0F90 0F97 NSM
-0F99 0FBC NSM
-0FBE 0FC5 L
-0FC6 NSM
-0FC7 0FCC L
-0FCF L
-1000 1021 L
-1023 1027 L
-1029 102A L
-102C L
-102D 1030 NSM
-1031 L
-1032 NSM
-1036 1037 NSM
-1038 L
-1039 NSM
-1040 1057 L
-1058 1059 NSM
-10A0 10C5 L
-10D0 10F8 L
-10FB L
-1100 1159 L
-115F 11A2 L
-11A8 11F9 L
-1200 1206 L
-1208 1246 L
-1248 L
-124A 124D L
-1250 1256 L
-1258 L
-125A 125D L
-1260 1286 L
-1288 L
-128A 128D L
-1290 12AE L
-12B0 L
-12B2 12B5 L
-12B8 12BE L
-12C0 L
-12C2 12C5 L
-12C8 12CE L
-12D0 12D6 L
-12D8 12EE L
-12F0 130E L
-1310 L
-1312 1315 L
-1318 131E L
-1320 1346 L
-1348 135A L
-1361 137C L
-13A0 13F4 L
-1401 1676 L
-1680 WS
-1681 169A L
-169B 169C ON
-16A0 16F0 L
-1700 170C L
-170E 1711 L
-1712 1714 NSM
-1720 1731 L
-1732 1734 NSM
-1735 1736 L
-1740 1751 L
-1752 1753 NSM
-1760 176C L
-176E 1770 L
-1772 1773 NSM
-1780 17B6 L
-17B7 17BD NSM
-17BE 17C5 L
-17C6 NSM
-17C7 17C8 L
-17C9 17D3 NSM
-17D4 17DA L
-17DB ET
-17DC L
-17E0 17E9 L
-1800 180A ON
-180B 180D NSM
-180E BN
-1810 1819 L
-1820 1877 L
-1880 18A8 L
-18A9 NSM
-1E00 1E9B L
-1EA0 1EF9 L
-1F00 1F15 L
-1F18 1F1D L
-1F20 1F45 L
-1F48 1F4D L
-1F50 1F57 L
-1F59 L
-1F5B L
-1F5D L
-1F5F 1F7D L
-1F80 1FB4 L
-1FB6 1FBC L
-1FBD ON
-1FBE L
-1FBF 1FC1 ON
-1FC2 1FC4 L
-1FC6 1FCC L
-1FCD 1FCF ON
-1FD0 1FD3 L
-1FD6 1FDB L
-1FDD 1FDF ON
-1FE0 1FEC L
-1FED 1FEF ON
-1FF2 1FF4 L
-1FF6 1FFC L
-1FFD 1FFE ON
-2000 200A WS
-200B 200D BN
-200E L
-200F R
-2010 2027 ON
-2028 WS
-2029 B
-202A LRE
-202B RLE
-202C PDF
-202D LRO
-202E RLO
-202F WS
-2030 2034 ET
-2035 2052 ON
-2057 ON
-205F WS
-2060 2063 BN
-206A 206F BN
-2070 EN
-2071 L
-2074 2079 EN
-207A 207B ET
-207C 207E ON
-207F L
-2080 2089 EN
-208A 208B ET
-208C 208E ON
-20A0 20B1 ET
-20D0 20EA NSM
-2100 2101 ON
-2102 L
-2103 2106 ON
-2107 L
-2108 2109 ON
-210A 2113 L
-2114 ON
-2115 L
-2116 2118 ON
-2119 211D L
-211E 2123 ON
-2124 L
-2125 ON
-2126 L
-2127 ON
-2128 L
-2129 ON
-212A 212D L
-212E ET
-212F 2131 L
-2132 ON
-2133 2139 L
-213A ON
-213D 213F L
-2140 2144 ON
-2145 2149 L
-214A 214B ON
-2153 215F ON
-2160 2183 L
-2190 2211 ON
-2212 2213 ET
-2214 2335 ON
-2336 237A L
-237B 2394 ON
-2395 L
-2396 23CE ON
-2400 2426 ON
-2440 244A ON
-2460 249B EN
-249C 24E9 L
-24EA EN
-24EB 24FE ON
-2500 2613 ON
-2616 2617 ON
-2619 267D ON
-2680 2689 ON
-2701 2704 ON
-2706 2709 ON
-270C 2727 ON
-2729 274B ON
-274D ON
-274F 2752 ON
-2756 ON
-2758 275E ON
-2761 2794 ON
-2798 27AF ON
-27B1 27BE ON
-27D0 27EB ON
-27F0 2AFF ON
-2E80 2E99 ON
-2E9B 2EF3 ON
-2F00 2FD5 ON
-2FF0 2FFB ON
-3000 WS
-3001 3004 ON
-3005 3007 L
-3008 3020 ON
-3021 3029 L
-302A 302F NSM
-3030 ON
-3031 3035 L
-3036 3037 ON
-3038 303C L
-303D 303F ON
-3041 3096 L
-3099 309A NSM
-309B 309C ON
-309D 309F L
-30A0 ON
-30A1 30FA L
-30FB ON
-30FC 30FF L
-3105 312C L
-3131 318E L
-3190 31B7 L
-31F0 321C L
-3220 3243 L
-3251 325F ON
-3260 327B L
-327F 32B0 L
-32B1 32BF ON
-32C0 32CB L
-32D0 32FE L
-3300 3376 L
-337B 33DD L
-33E0 33FE L
-A000 A48C L
-A490 A4C6 ON
-F900 FA2D L
-FA30 FA6A L
-FB00 FB06 L
-FB13 FB17 L
-FB1D R
-FB1E NSM
-FB1F FB28 R
-FB29 ET
-FB2A FB36 R
-FB38 FB3C R
-FB3E R
-FB40 FB41 R
-FB43 FB44 R
-FB46 FB4F R
-FB50 FBB1 AL
-FBD3 FD3D AL
-FD3E FD3F ON
-FD50 FD8F AL
-FD92 FDC7 AL
-FDF0 FDFC AL
-FE00 FE0F NSM
-FE20 FE23 NSM
-FE30 FE46 ON
-FE49 FE4F ON
-FE50 CS
-FE51 ON
-FE52 CS
-FE54 ON
-FE55 CS
-FE56 FE5E ON
-FE5F ET
-FE60 FE61 ON
-FE62 FE63 ET
-FE64 FE66 ON
-FE68 ON
-FE69 FE6A ET
-FE6B ON
-FE70 FE74 AL
-FE76 FEFC AL
-FEFF BN
-FF01 FF02 ON
-FF03 FF05 ET
-FF06 FF0A ON
-FF0B ET
-FF0C CS
-FF0D ET
-FF0E CS
-FF0F ES
-FF10 FF19 EN
-FF1A CS
-FF1B FF20 ON
-FF21 FF3A L
-FF3B FF40 ON
-FF41 FF5A L
-FF5B FF65 ON
-FF66 FFBE L
-FFC2 FFC7 L
-FFCA FFCF L
-FFD2 FFD7 L
-FFDA FFDC L
-FFE0 FFE1 ET
-FFE2 FFE4 ON
-FFE5 FFE6 ET
-FFE8 FFEE ON
-FFF9 FFFB BN
-FFFC FFFD ON
-10300 1031E L
-10320 10323 L
-10330 1034A L
-10400 10425 L
-10428 1044D L
-1D000 1D0F5 L
-1D100 1D126 L
-1D12A 1D166 L
-1D167 1D169 NSM
-1D16A 1D172 L
-1D173 1D17A BN
-1D17B 1D182 NSM
-1D183 1D184 L
-1D185 1D18B NSM
-1D18C 1D1A9 L
-1D1AA 1D1AD NSM
-1D1AE 1D1DD L
-1D400 1D454 L
-1D456 1D49C L
-1D49E 1D49F L
-1D4A2 L
-1D4A5 1D4A6 L
-1D4A9 1D4AC L
-1D4AE 1D4B9 L
-1D4BB L
-1D4BD 1D4C0 L
-1D4C2 1D4C3 L
-1D4C5 1D505 L
-1D507 1D50A L
-1D50D 1D514 L
-1D516 1D51C L
-1D51E 1D539 L
-1D53B 1D53E L
-1D540 1D544 L
-1D546 L
-1D54A 1D550 L
-1D552 1D6A3 L
-1D6A8 1D7C9 L
-1D7CE 1D7FF EN
-2F800 2FA1D L
-E0001 BN
-E0020 E007F BN
-END
diff --git a/Master/xemtex/perl/lib/unicore/Blocks.pl b/Master/xemtex/perl/lib/unicore/Blocks.pl
deleted file mode 100644
index 07f2a325cab..00000000000
--- a/Master/xemtex/perl/lib/unicore/Blocks.pl
+++ /dev/null
@@ -1,116 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0000 007F Basic Latin
-0080 00FF Latin-1 Supplement
-0100 017F Latin Extended-A
-0180 024F Latin Extended-B
-0250 02AF IPA Extensions
-02B0 02FF Spacing Modifier Letters
-0300 036F Combining Diacritical Marks
-0370 03FF Greek and Coptic
-0400 04FF Cyrillic
-0500 052F Cyrillic Supplementary
-0530 058F Armenian
-0590 05FF Hebrew
-0600 06FF Arabic
-0700 074F Syriac
-0780 07BF Thaana
-0900 097F Devanagari
-0980 09FF Bengali
-0A00 0A7F Gurmukhi
-0A80 0AFF Gujarati
-0B00 0B7F Oriya
-0B80 0BFF Tamil
-0C00 0C7F Telugu
-0C80 0CFF Kannada
-0D00 0D7F Malayalam
-0D80 0DFF Sinhala
-0E00 0E7F Thai
-0E80 0EFF Lao
-0F00 0FFF Tibetan
-1000 109F Myanmar
-10A0 10FF Georgian
-1100 11FF Hangul Jamo
-1200 137F Ethiopic
-13A0 13FF Cherokee
-1400 167F Unified Canadian Aboriginal Syllabics
-1680 169F Ogham
-16A0 16FF Runic
-1700 171F Tagalog
-1720 173F Hanunoo
-1740 175F Buhid
-1760 177F Tagbanwa
-1780 17FF Khmer
-1800 18AF Mongolian
-1E00 1EFF Latin Extended Additional
-1F00 1FFF Greek Extended
-2000 206F General Punctuation
-2070 209F Superscripts and Subscripts
-20A0 20CF Currency Symbols
-20D0 20FF Combining Diacritical Marks for Symbols
-2100 214F Letterlike Symbols
-2150 218F Number Forms
-2190 21FF Arrows
-2200 22FF Mathematical Operators
-2300 23FF Miscellaneous Technical
-2400 243F Control Pictures
-2440 245F Optical Character Recognition
-2460 24FF Enclosed Alphanumerics
-2500 257F Box Drawing
-2580 259F Block Elements
-25A0 25FF Geometric Shapes
-2600 26FF Miscellaneous Symbols
-2700 27BF Dingbats
-27C0 27EF Miscellaneous Mathematical Symbols-A
-27F0 27FF Supplemental Arrows-A
-2800 28FF Braille Patterns
-2900 297F Supplemental Arrows-B
-2980 29FF Miscellaneous Mathematical Symbols-B
-2A00 2AFF Supplemental Mathematical Operators
-2E80 2EFF CJK Radicals Supplement
-2F00 2FDF Kangxi Radicals
-2FF0 2FFF Ideographic Description Characters
-3000 303F CJK Symbols and Punctuation
-3040 309F Hiragana
-30A0 30FF Katakana
-3100 312F Bopomofo
-3130 318F Hangul Compatibility Jamo
-3190 319F Kanbun
-31A0 31BF Bopomofo Extended
-31F0 31FF Katakana Phonetic Extensions
-3200 32FF Enclosed CJK Letters and Months
-3300 33FF CJK Compatibility
-3400 4DBF CJK Unified Ideographs Extension A
-4E00 9FFF CJK Unified Ideographs
-A000 A48F Yi Syllables
-A490 A4CF Yi Radicals
-AC00 D7AF Hangul Syllables
-D800 DB7F High Surrogates
-DB80 DBFF High Private Use Surrogates
-DC00 DFFF Low Surrogates
-E000 F8FF Private Use Area
-F900 FAFF CJK Compatibility Ideographs
-FB00 FB4F Alphabetic Presentation Forms
-FB50 FDFF Arabic Presentation Forms-A
-FE00 FE0F Variation Selectors
-FE20 FE2F Combining Half Marks
-FE30 FE4F CJK Compatibility Forms
-FE50 FE6F Small Form Variants
-FE70 FEFF Arabic Presentation Forms-B
-FF00 FFEF Halfwidth and Fullwidth Forms
-FFF0 FFFF Specials
-10300 1032F Old Italic
-10330 1034F Gothic
-10400 1044F Deseret
-1D000 1D0FF Byzantine Musical Symbols
-1D100 1D1FF Musical Symbols
-1D400 1D7FF Mathematical Alphanumeric Symbols
-20000 2A6DF CJK Unified Ideographs Extension B
-2F800 2FA1F CJK Compatibility Ideographs Supplement
-E0000 E007F Tags
-F0000 FFFFF Supplementary Private Use Area-A
-100000 10FFFF Supplementary Private Use Area-B
-END
diff --git a/Master/xemtex/perl/lib/unicore/Canonical.pl b/Master/xemtex/perl/lib/unicore/Canonical.pl
deleted file mode 100644
index 947fd2b9d5c..00000000000
--- a/Master/xemtex/perl/lib/unicore/Canonical.pl
+++ /dev/null
@@ -1,816 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-##
-## Data in this file used by ../utf8_heavy.pl
-##
-
-## Mapping from lc(canonical name) to filename in ./lib
-%utf8::Canonical = (
- alphabetic => 'Alphabet',
-
- # InAlphabeticPresentationForms
- alphabeticpresentationforms => 'InAlphab',
-
- arabic => 'Arabic',
-
- # InArabicPresentationFormsA
- arabicpresentationformsa => 'InArabi3',
-
- # InArabicPresentationFormsB
- arabicpresentationformsb => 'InArabi2',
-
- armenian => 'Armenian',
-
- # InArrows
- arrows => 'InArrows',
-
- # AsciiHexDigit
- asciihexdigit => 'AsciiHex',
-
- # InBasicLatin
- basiclatin => 'InBasicL',
-
- bengali => 'Bengali',
-
- # BidiControl
- bidicontrol => 'BidiCont',
-
- # InBlockElements
- blockelements => 'InBlockE',
-
- bopomofo => 'Bopomofo',
-
- # InBopomofoExtended
- bopomofoextended => 'InBopom2',
-
- # InBoxDrawing
- boxdrawing => 'InBoxDra',
-
- # InBraillePatterns
- braillepatterns => 'InBraill',
-
- buhid => 'Buhid',
-
- # InByzantineMusicalSymbols
- byzantinemusicalsymbols => 'InByzant',
-
- # CanadianAboriginal
- canadianaboriginal => 'Canadian',
-
- cherokee => 'Cherokee',
-
- # InCjkCompatibility
- cjkcompatibility => 'InCjkCom',
-
- # InCjkCompatibilityForms
- cjkcompatibilityforms => 'InCjkCo2',
-
- # InCjkCompatibilityIdeographs
- cjkcompatibilityideographs => 'InCjkCo3',
-
- # InCjkCompatibilityIdeographsSupplement
- cjkcompatibilityideographssupplement => 'InCjkCo4',
-
- # InCjkRadicalsSupplement
- cjkradicalssupplement => 'InCjkRad',
-
- # InCjkSymbolsAndPunctuation
- cjksymbolsandpunctuation => 'InCjkSym',
-
- # InCjkUnifiedIdeographs
- cjkunifiedideographs => 'InCjkUni',
-
- # InCjkUnifiedIdeographsExtensionA
- cjkunifiedideographsextensiona => 'InCjkUn3',
-
- # InCjkUnifiedIdeographsExtensionB
- cjkunifiedideographsextensionb => 'InCjkUn2',
-
- # ClosePunctuation
- closepunctuation => 'Pe',
-
- # InCombiningDiacriticalMarks
- combiningdiacriticalmarks => 'InCombi2',
-
- # InCombiningDiacriticalMarksForSymbols
- combiningdiacriticalmarksforsymbols => 'InCombi3',
-
- # InCombiningHalfMarks
- combininghalfmarks => 'InCombin',
-
- common => 'Common',
-
- # ConnectorPunctuation
- connectorpunctuation => 'Pc',
-
- control => 'Cc',
-
- # InControlPictures
- controlpictures => 'InContro',
-
- # CurrencySymbol
- currencysymbol => 'Sc',
-
- # InCurrencySymbols
- currencysymbols => 'InCurren',
-
- cyrillic => 'Cyrillic',
-
- # InCyrillicSupplementary
- cyrillicsupplementary => 'InCyril2',
-
- dash => 'Dash',
-
- # DashPunctuation
- dashpunctuation => 'Pd',
-
- # DecimalNumber
- decimalnumber => 'Nd',
-
- deprecated => 'Deprecat',
- deseret => 'Deseret',
- devanagari => 'Devanaga',
- diacritic => 'Diacriti',
-
- # InDingbats
- dingbats => 'InDingba',
-
- # InEnclosedAlphanumerics
- enclosedalphanumerics => 'InEnclos',
-
- # InEnclosedCjkLettersAndMonths
- enclosedcjklettersandmonths => 'InEnclo2',
-
- # EnclosingMark
- enclosingmark => 'Me',
-
- ethiopic => 'Ethiopic',
- extender => 'Extender',
-
- # FinalPunctuation
- finalpunctuation => 'Pf',
-
- format => 'Cf',
-
- # InGeneralPunctuation
- generalpunctuation => 'InGenera',
-
- # InGeometricShapes
- geometricshapes => 'InGeomet',
-
- georgian => 'Georgian',
- gothic => 'Gothic',
-
- # GraphemeLink
- graphemelink => 'Grapheme',
-
- greek => 'Greek',
-
- # InGreekAndCoptic
- greekandcoptic => 'InGreekA',
-
- # InGreekExtended
- greekextended => 'InGreekE',
-
- gujarati => 'Gujarati',
- gurmukhi => 'Gurmukhi',
-
- # InHalfwidthAndFullwidthForms
- halfwidthandfullwidthforms => 'InHalfwi',
-
- han => 'Han',
- hangul => 'Hangul',
-
- # InHangulCompatibilityJamo
- hangulcompatibilityjamo => 'InHangu3',
-
- # InHangulJamo
- hanguljamo => 'InHangul',
-
- # InHangulSyllables
- hangulsyllables => 'InHangu2',
-
- hanunoo => 'Hanunoo',
- hebrew => 'Hebrew',
-
- # HexDigit
- hexdigit => 'HexDigit',
-
- # InHighPrivateUseSurrogates
- highprivateusesurrogates => 'InHighPr',
-
- # InHighSurrogates
- highsurrogates => 'InHighSu',
-
- hiragana => 'Hiragana',
- hyphen => 'Hyphen',
-
- # IdContinue
- idcontinue => 'IdContin',
-
- ideographic => 'Ideograp',
-
- # InIdeographicDescriptionCharacters
- ideographicdescriptioncharacters => 'InIdeogr',
-
- # IdsBinaryOperator
- idsbinaryoperator => 'IdsBinar',
-
- # IdStart
- idstart => 'IdStart',
-
- # IdsTrinaryOperator
- idstrinaryoperator => 'IdsTrina',
-
- # InAlphabeticPresentationForms
- inalphabeticpresentationforms => 'InAlphab',
-
- # InArabic
- inarabic => 'InArabic',
-
- # InArabicPresentationFormsA
- inarabicpresentationformsa => 'InArabi3',
-
- # InArabicPresentationFormsB
- inarabicpresentationformsb => 'InArabi2',
-
- # InArmenian
- inarmenian => 'InArmeni',
-
- # InArrows
- inarrows => 'InArrows',
-
- # InBasicLatin
- inbasiclatin => 'InBasicL',
-
- # InBengali
- inbengali => 'InBengal',
-
- # InBlockElements
- inblockelements => 'InBlockE',
-
- # InBopomofo
- inbopomofo => 'InBopomo',
-
- # InBopomofoExtended
- inbopomofoextended => 'InBopom2',
-
- # InBoxDrawing
- inboxdrawing => 'InBoxDra',
-
- # InBraillePatterns
- inbraillepatterns => 'InBraill',
-
- # InBuhid
- inbuhid => 'InBuhid',
-
- # InByzantineMusicalSymbols
- inbyzantinemusicalsymbols => 'InByzant',
-
- # InCherokee
- incherokee => 'InCherok',
-
- # InCjkCompatibility
- incjkcompatibility => 'InCjkCom',
-
- # InCjkCompatibilityForms
- incjkcompatibilityforms => 'InCjkCo2',
-
- # InCjkCompatibilityIdeographs
- incjkcompatibilityideographs => 'InCjkCo3',
-
- # InCjkCompatibilityIdeographsSupplement
- incjkcompatibilityideographssupplement => 'InCjkCo4',
-
- # InCjkRadicalsSupplement
- incjkradicalssupplement => 'InCjkRad',
-
- # InCjkSymbolsAndPunctuation
- incjksymbolsandpunctuation => 'InCjkSym',
-
- # InCjkUnifiedIdeographs
- incjkunifiedideographs => 'InCjkUni',
-
- # InCjkUnifiedIdeographsExtensionA
- incjkunifiedideographsextensiona => 'InCjkUn3',
-
- # InCjkUnifiedIdeographsExtensionB
- incjkunifiedideographsextensionb => 'InCjkUn2',
-
- # InCombiningDiacriticalMarks
- incombiningdiacriticalmarks => 'InCombi2',
-
- # InCombiningDiacriticalMarksForSymbols
- incombiningdiacriticalmarksforsymbols => 'InCombi3',
-
- # InCombiningHalfMarks
- incombininghalfmarks => 'InCombin',
-
- # InControlPictures
- incontrolpictures => 'InContro',
-
- # InCurrencySymbols
- incurrencysymbols => 'InCurren',
-
- # InCyrillic
- incyrillic => 'InCyrill',
-
- # InCyrillicSupplementary
- incyrillicsupplementary => 'InCyril2',
-
- # InDeseret
- indeseret => 'InDesere',
-
- # InDevanagari
- indevanagari => 'InDevana',
-
- # InDingbats
- indingbats => 'InDingba',
-
- # InEnclosedAlphanumerics
- inenclosedalphanumerics => 'InEnclos',
-
- # InEnclosedCjkLettersAndMonths
- inenclosedcjklettersandmonths => 'InEnclo2',
-
- # InEthiopic
- inethiopic => 'InEthiop',
-
- # InGeneralPunctuation
- ingeneralpunctuation => 'InGenera',
-
- # InGeometricShapes
- ingeometricshapes => 'InGeomet',
-
- # InGeorgian
- ingeorgian => 'InGeorgi',
-
- # InGothic
- ingothic => 'InGothic',
-
- # InGreekAndCoptic
- ingreekandcoptic => 'InGreekA',
-
- # InGreekExtended
- ingreekextended => 'InGreekE',
-
- # InGujarati
- ingujarati => 'InGujara',
-
- # InGurmukhi
- ingurmukhi => 'InGurmuk',
-
- # InHalfwidthAndFullwidthForms
- inhalfwidthandfullwidthforms => 'InHalfwi',
-
- # InHangulCompatibilityJamo
- inhangulcompatibilityjamo => 'InHangu3',
-
- # InHangulJamo
- inhanguljamo => 'InHangul',
-
- # InHangulSyllables
- inhangulsyllables => 'InHangu2',
-
- # InHanunoo
- inhanunoo => 'InHanuno',
-
- # InHebrew
- inhebrew => 'InHebrew',
-
- inherited => 'Inherite',
-
- # InHighPrivateUseSurrogates
- inhighprivateusesurrogates => 'InHighPr',
-
- # InHighSurrogates
- inhighsurrogates => 'InHighSu',
-
- # InHiragana
- inhiragana => 'InHiraga',
-
- # InIdeographicDescriptionCharacters
- inideographicdescriptioncharacters => 'InIdeogr',
-
- # InIpaExtensions
- inipaextensions => 'InIpaExt',
-
- # InitialPunctuation
- initialpunctuation => 'Pi',
-
- # InKanbun
- inkanbun => 'InKanbun',
-
- # InKangxiRadicals
- inkangxiradicals => 'InKangxi',
-
- # InKannada
- inkannada => 'InKannad',
-
- # InKatakana
- inkatakana => 'InKataka',
-
- # InKatakanaPhoneticExtensions
- inkatakanaphoneticextensions => 'InKatak2',
-
- # InKhmer
- inkhmer => 'InKhmer',
-
- # InLao
- inlao => 'InLao',
-
- # InLatin1Supplement
- inlatin1supplement => 'InLatin1',
-
- # InLatinExtendedA
- inlatinextendeda => 'InLatin2',
-
- # InLatinExtendedAdditional
- inlatinextendedadditional => 'InLatin3',
-
- # InLatinExtendedB
- inlatinextendedb => 'InLatinE',
-
- # InLetterlikeSymbols
- inletterlikesymbols => 'InLetter',
-
- # InLowSurrogates
- inlowsurrogates => 'InLowSur',
-
- # InMalayalam
- inmalayalam => 'InMalaya',
-
- # InMathematicalAlphanumericSymbols
- inmathematicalalphanumericsymbols => 'InMathe2',
-
- # InMathematicalOperators
- inmathematicaloperators => 'InMathem',
-
- # InMiscellaneousMathematicalSymbolsA
- inmiscellaneousmathematicalsymbolsa => 'InMisce3',
-
- # InMiscellaneousMathematicalSymbolsB
- inmiscellaneousmathematicalsymbolsb => 'InMisce4',
-
- # InMiscellaneousSymbols
- inmiscellaneoussymbols => 'InMiscel',
-
- # InMiscellaneousTechnical
- inmiscellaneoustechnical => 'InMisce2',
-
- # InMongolian
- inmongolian => 'InMongol',
-
- # InMusicalSymbols
- inmusicalsymbols => 'InMusica',
-
- # InMyanmar
- inmyanmar => 'InMyanma',
-
- # InNumberForms
- innumberforms => 'InNumber',
-
- # InOgham
- inogham => 'InOgham',
-
- # InOldItalic
- inolditalic => 'InOldIta',
-
- # InOpticalCharacterRecognition
- inopticalcharacterrecognition => 'InOptica',
-
- # InOriya
- inoriya => 'InOriya',
-
- # InPrivateUseArea
- inprivateusearea => 'InPrivat',
-
- # InRunic
- inrunic => 'InRunic',
-
- # InSinhala
- insinhala => 'InSinhal',
-
- # InSmallFormVariants
- insmallformvariants => 'InSmallF',
-
- # InSpacingModifierLetters
- inspacingmodifierletters => 'InSpacin',
-
- # InSpecials
- inspecials => 'InSpecia',
-
- # InSuperscriptsAndSubscripts
- insuperscriptsandsubscripts => 'InSupers',
-
- # InSupplementalArrowsA
- insupplementalarrowsa => 'InSuppl2',
-
- # InSupplementalArrowsB
- insupplementalarrowsb => 'InSupple',
-
- # InSupplementalMathematicalOperators
- insupplementalmathematicaloperators => 'InSuppl5',
-
- # InSupplementaryPrivateUseAreaA
- insupplementaryprivateuseareaa => 'InSuppl3',
-
- # InSupplementaryPrivateUseAreaB
- insupplementaryprivateuseareab => 'InSuppl4',
-
- # InSyriac
- insyriac => 'InSyriac',
-
- # InTagalog
- intagalog => 'InTagalo',
-
- # InTagbanwa
- intagbanwa => 'InTagban',
-
- # InTags
- intags => 'InTags',
-
- # InTamil
- intamil => 'InTamil',
-
- # InTelugu
- intelugu => 'InTelugu',
-
- # InThaana
- inthaana => 'InThaana',
-
- # InThai
- inthai => 'InThai',
-
- # InTibetan
- intibetan => 'InTibeta',
-
- # InUnifiedCanadianAboriginalSyllabics
- inunifiedcanadianaboriginalsyllabics => 'InUnifie',
-
- # InVariationSelectors
- invariationselectors => 'InVariat',
-
- # InYiRadicals
- inyiradicals => 'InYiRadi',
-
- # InYiSyllables
- inyisyllables => 'InYiSyll',
-
- # InIpaExtensions
- ipaextensions => 'InIpaExt',
-
- # JoinControl
- joincontrol => 'JoinCont',
-
- # InKanbun
- kanbun => 'InKanbun',
-
- # InKangxiRadicals
- kangxiradicals => 'InKangxi',
-
- kannada => 'Kannada',
- katakana => 'Katakana',
-
- # InKatakanaPhoneticExtensions
- katakanaphoneticextensions => 'InKatak2',
-
- khmer => 'Khmer',
- lao => 'Lao',
- latin => 'Latin',
-
- # InLatin1Supplement
- latin1supplement => 'InLatin1',
-
- # InLatinExtendedA
- latinextendeda => 'InLatin2',
-
- # InLatinExtendedAdditional
- latinextendedadditional => 'InLatin3',
-
- # InLatinExtendedB
- latinextendedb => 'InLatinE',
-
- letter => 'L',
-
- # InLetterlikeSymbols
- letterlikesymbols => 'InLetter',
-
- # LetterNumber
- letternumber => 'Nl',
-
- # LineSeparator
- lineseparator => 'Zl',
-
- # LogicalOrderException
- logicalorderexception => 'LogicalO',
-
- lowercase => 'Lowercas',
-
- # LowercaseLetter
- lowercaseletter => 'Ll',
-
- # InLowSurrogates
- lowsurrogates => 'InLowSur',
-
- malayalam => 'Malayala',
- mark => 'M',
- math => 'Math',
-
- # InMathematicalAlphanumericSymbols
- mathematicalalphanumericsymbols => 'InMathe2',
-
- # InMathematicalOperators
- mathematicaloperators => 'InMathem',
-
- # MathSymbol
- mathsymbol => 'Sm',
-
- # InMiscellaneousMathematicalSymbolsA
- miscellaneousmathematicalsymbolsa => 'InMisce3',
-
- # InMiscellaneousMathematicalSymbolsB
- miscellaneousmathematicalsymbolsb => 'InMisce4',
-
- # InMiscellaneousSymbols
- miscellaneoussymbols => 'InMiscel',
-
- # InMiscellaneousTechnical
- miscellaneoustechnical => 'InMisce2',
-
- # ModifierLetter
- modifierletter => 'Lm',
-
- # ModifierSymbol
- modifiersymbol => 'Sk',
-
- mongolian => 'Mongolia',
-
- # InMusicalSymbols
- musicalsymbols => 'InMusica',
-
- myanmar => 'Myanmar',
-
- # NoncharacterCodePoint
- noncharactercodepoint => 'Nonchara',
-
- # NonSpacingMark
- nonspacingmark => 'Mn',
-
- number => 'N',
-
- # InNumberForms
- numberforms => 'InNumber',
-
- ogham => 'Ogham',
-
- # OldItalic
- olditalic => 'OldItali',
-
- # OpenPunctuation
- openpunctuation => 'Ps',
-
- # InOpticalCharacterRecognition
- opticalcharacterrecognition => 'InOptica',
-
- oriya => 'Oriya',
- other => 'C',
-
- # OtherAlphabetic
- otheralphabetic => 'OtherAlp',
-
- # OtherDefaultIgnorableCodePoint
- otherdefaultignorablecodepoint => 'OtherDef',
-
- # OtherGraphemeExtend
- othergraphemeextend => 'OtherGra',
-
- # OtherLetter
- otherletter => 'Lo',
-
- # OtherLowercase
- otherlowercase => 'OtherLow',
-
- # OtherMath
- othermath => 'OtherMat',
-
- # OtherNumber
- othernumber => 'No',
-
- # OtherPunctuation
- otherpunctuation => 'Po',
-
- # OtherSymbol
- othersymbol => 'So',
-
- # OtherUppercase
- otheruppercase => 'OtherUpp',
-
- # ParagraphSeparator
- paragraphseparator => 'Zp',
-
- # PrivateUse
- privateuse => 'Co',
-
- # InPrivateUseArea
- privateusearea => 'InPrivat',
-
- punctuation => 'P',
-
- # QuotationMark
- quotationmark => 'Quotatio',
-
- radical => 'Radical',
- runic => 'Runic',
- separator => 'Z',
- sinhala => 'Sinhala',
-
- # InSmallFormVariants
- smallformvariants => 'InSmallF',
-
- # SoftDotted
- softdotted => 'SoftDott',
-
- # SpaceSeparator
- spaceseparator => 'Zs',
-
- # SpacingMark
- spacingmark => 'Mc',
-
- # InSpacingModifierLetters
- spacingmodifierletters => 'InSpacin',
-
- # InSpecials
- specials => 'InSpecia',
-
- # InSuperscriptsAndSubscripts
- superscriptsandsubscripts => 'InSupers',
-
- # InSupplementalArrowsA
- supplementalarrowsa => 'InSuppl2',
-
- # InSupplementalArrowsB
- supplementalarrowsb => 'InSupple',
-
- # InSupplementalMathematicalOperators
- supplementalmathematicaloperators => 'InSuppl5',
-
- # InSupplementaryPrivateUseAreaA
- supplementaryprivateuseareaa => 'InSuppl3',
-
- # InSupplementaryPrivateUseAreaB
- supplementaryprivateuseareab => 'InSuppl4',
-
- surrogate => 'Cs',
- symbol => 'S',
- syriac => 'Syriac',
- tagalog => 'Tagalog',
- tagbanwa => 'Tagbanwa',
-
- # InTags
- tags => 'InTags',
-
- tamil => 'Tamil',
- telugu => 'Telugu',
-
- # TerminalPunctuation
- terminalpunctuation => 'Terminal',
-
- thaana => 'Thaana',
- thai => 'Thai',
- tibetan => 'Tibetan',
-
- # TitlecaseLetter
- titlecaseletter => 'Lt',
-
- unassigned => 'Cn',
-
- # InUnifiedCanadianAboriginalSyllabics
- unifiedcanadianaboriginalsyllabics => 'InUnifie',
-
- # UnifiedIdeograph
- unifiedideograph => 'UnifiedI',
-
- uppercase => 'Uppercas',
-
- # UppercaseLetter
- uppercaseletter => 'Lu',
-
- # InVariationSelectors
- variationselectors => 'InVariat',
-
- # WhiteSpace
- whitespace => 'WhiteSpa',
-
- yi => 'Yi',
-
- # InYiRadicals
- yiradicals => 'InYiRadi',
-
- # InYiSyllables
- yisyllables => 'InYiSyll',
-
-);
-1
diff --git a/Master/xemtex/perl/lib/unicore/Category.pl b/Master/xemtex/perl/lib/unicore/Category.pl
deleted file mode 100644
index dba6ad9afc3..00000000000
--- a/Master/xemtex/perl/lib/unicore/Category.pl
+++ /dev/null
@@ -1,1732 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0000 001F Cc
-0020 Zs
-0021 0023 Po
-0024 Sc
-0025 0027 Po
-0028 Ps
-0029 Pe
-002A Po
-002B Sm
-002C Po
-002D Pd
-002E 002F Po
-0030 0039 Nd
-003A 003B Po
-003C 003E Sm
-003F 0040 Po
-0041 005A Lu
-005B Ps
-005C Po
-005D Pe
-005E Sk
-005F Pc
-0060 Sk
-0061 007A Ll
-007B Ps
-007C Sm
-007D Pe
-007E Sm
-007F 009F Cc
-00A0 Zs
-00A1 Po
-00A2 00A5 Sc
-00A6 00A7 So
-00A8 Sk
-00A9 So
-00AA Ll
-00AB Pi
-00AC Sm
-00AD Pd
-00AE So
-00AF Sk
-00B0 So
-00B1 Sm
-00B2 00B3 No
-00B4 Sk
-00B5 Ll
-00B6 So
-00B7 Po
-00B8 Sk
-00B9 No
-00BA Ll
-00BB Pf
-00BC 00BE No
-00BF Po
-00C0 00D6 Lu
-00D7 Sm
-00D8 00DE Lu
-00DF 00F6 Ll
-00F7 Sm
-00F8 00FF Ll
-0100 Lu
-0101 Ll
-0102 Lu
-0103 Ll
-0104 Lu
-0105 Ll
-0106 Lu
-0107 Ll
-0108 Lu
-0109 Ll
-010A Lu
-010B Ll
-010C Lu
-010D Ll
-010E Lu
-010F Ll
-0110 Lu
-0111 Ll
-0112 Lu
-0113 Ll
-0114 Lu
-0115 Ll
-0116 Lu
-0117 Ll
-0118 Lu
-0119 Ll
-011A Lu
-011B Ll
-011C Lu
-011D Ll
-011E Lu
-011F Ll
-0120 Lu
-0121 Ll
-0122 Lu
-0123 Ll
-0124 Lu
-0125 Ll
-0126 Lu
-0127 Ll
-0128 Lu
-0129 Ll
-012A Lu
-012B Ll
-012C Lu
-012D Ll
-012E Lu
-012F Ll
-0130 Lu
-0131 Ll
-0132 Lu
-0133 Ll
-0134 Lu
-0135 Ll
-0136 Lu
-0137 0138 Ll
-0139 Lu
-013A Ll
-013B Lu
-013C Ll
-013D Lu
-013E Ll
-013F Lu
-0140 Ll
-0141 Lu
-0142 Ll
-0143 Lu
-0144 Ll
-0145 Lu
-0146 Ll
-0147 Lu
-0148 0149 Ll
-014A Lu
-014B Ll
-014C Lu
-014D Ll
-014E Lu
-014F Ll
-0150 Lu
-0151 Ll
-0152 Lu
-0153 Ll
-0154 Lu
-0155 Ll
-0156 Lu
-0157 Ll
-0158 Lu
-0159 Ll
-015A Lu
-015B Ll
-015C Lu
-015D Ll
-015E Lu
-015F Ll
-0160 Lu
-0161 Ll
-0162 Lu
-0163 Ll
-0164 Lu
-0165 Ll
-0166 Lu
-0167 Ll
-0168 Lu
-0169 Ll
-016A Lu
-016B Ll
-016C Lu
-016D Ll
-016E Lu
-016F Ll
-0170 Lu
-0171 Ll
-0172 Lu
-0173 Ll
-0174 Lu
-0175 Ll
-0176 Lu
-0177 Ll
-0178 0179 Lu
-017A Ll
-017B Lu
-017C Ll
-017D Lu
-017E 0180 Ll
-0181 0182 Lu
-0183 Ll
-0184 Lu
-0185 Ll
-0186 0187 Lu
-0188 Ll
-0189 018B Lu
-018C 018D Ll
-018E 0191 Lu
-0192 Ll
-0193 0194 Lu
-0195 Ll
-0196 0198 Lu
-0199 019B Ll
-019C 019D Lu
-019E Ll
-019F 01A0 Lu
-01A1 Ll
-01A2 Lu
-01A3 Ll
-01A4 Lu
-01A5 Ll
-01A6 01A7 Lu
-01A8 Ll
-01A9 Lu
-01AA 01AB Ll
-01AC Lu
-01AD Ll
-01AE 01AF Lu
-01B0 Ll
-01B1 01B3 Lu
-01B4 Ll
-01B5 Lu
-01B6 Ll
-01B7 01B8 Lu
-01B9 01BA Ll
-01BB Lo
-01BC Lu
-01BD 01BF Ll
-01C0 01C3 Lo
-01C4 Lu
-01C5 Lt
-01C6 Ll
-01C7 Lu
-01C8 Lt
-01C9 Ll
-01CA Lu
-01CB Lt
-01CC Ll
-01CD Lu
-01CE Ll
-01CF Lu
-01D0 Ll
-01D1 Lu
-01D2 Ll
-01D3 Lu
-01D4 Ll
-01D5 Lu
-01D6 Ll
-01D7 Lu
-01D8 Ll
-01D9 Lu
-01DA Ll
-01DB Lu
-01DC 01DD Ll
-01DE Lu
-01DF Ll
-01E0 Lu
-01E1 Ll
-01E2 Lu
-01E3 Ll
-01E4 Lu
-01E5 Ll
-01E6 Lu
-01E7 Ll
-01E8 Lu
-01E9 Ll
-01EA Lu
-01EB Ll
-01EC Lu
-01ED Ll
-01EE Lu
-01EF 01F0 Ll
-01F1 Lu
-01F2 Lt
-01F3 Ll
-01F4 Lu
-01F5 Ll
-01F6 01F8 Lu
-01F9 Ll
-01FA Lu
-01FB Ll
-01FC Lu
-01FD Ll
-01FE Lu
-01FF Ll
-0200 Lu
-0201 Ll
-0202 Lu
-0203 Ll
-0204 Lu
-0205 Ll
-0206 Lu
-0207 Ll
-0208 Lu
-0209 Ll
-020A Lu
-020B Ll
-020C Lu
-020D Ll
-020E Lu
-020F Ll
-0210 Lu
-0211 Ll
-0212 Lu
-0213 Ll
-0214 Lu
-0215 Ll
-0216 Lu
-0217 Ll
-0218 Lu
-0219 Ll
-021A Lu
-021B Ll
-021C Lu
-021D Ll
-021E Lu
-021F Ll
-0220 Lu
-0222 Lu
-0223 Ll
-0224 Lu
-0225 Ll
-0226 Lu
-0227 Ll
-0228 Lu
-0229 Ll
-022A Lu
-022B Ll
-022C Lu
-022D Ll
-022E Lu
-022F Ll
-0230 Lu
-0231 Ll
-0232 Lu
-0233 Ll
-0250 02AD Ll
-02B0 02B8 Lm
-02B9 02BA Sk
-02BB 02C1 Lm
-02C2 02CF Sk
-02D0 02D1 Lm
-02D2 02DF Sk
-02E0 02E4 Lm
-02E5 02ED Sk
-02EE Lm
-0300 034F Mn
-0360 036F Mn
-0374 0375 Sk
-037A Lm
-037E Po
-0384 0385 Sk
-0386 Lu
-0387 Po
-0388 038A Lu
-038C Lu
-038E 038F Lu
-0390 Ll
-0391 03A1 Lu
-03A3 03AB Lu
-03AC 03CE Ll
-03D0 03D1 Ll
-03D2 03D4 Lu
-03D5 03D7 Ll
-03D8 Lu
-03D9 Ll
-03DA Lu
-03DB Ll
-03DC Lu
-03DD Ll
-03DE Lu
-03DF Ll
-03E0 Lu
-03E1 Ll
-03E2 Lu
-03E3 Ll
-03E4 Lu
-03E5 Ll
-03E6 Lu
-03E7 Ll
-03E8 Lu
-03E9 Ll
-03EA Lu
-03EB Ll
-03EC Lu
-03ED Ll
-03EE Lu
-03EF 03F3 Ll
-03F4 Lu
-03F5 Ll
-03F6 Sm
-0400 042F Lu
-0430 045F Ll
-0460 Lu
-0461 Ll
-0462 Lu
-0463 Ll
-0464 Lu
-0465 Ll
-0466 Lu
-0467 Ll
-0468 Lu
-0469 Ll
-046A Lu
-046B Ll
-046C Lu
-046D Ll
-046E Lu
-046F Ll
-0470 Lu
-0471 Ll
-0472 Lu
-0473 Ll
-0474 Lu
-0475 Ll
-0476 Lu
-0477 Ll
-0478 Lu
-0479 Ll
-047A Lu
-047B Ll
-047C Lu
-047D Ll
-047E Lu
-047F Ll
-0480 Lu
-0481 Ll
-0482 So
-0483 0486 Mn
-0488 0489 Me
-048A Lu
-048B Ll
-048C Lu
-048D Ll
-048E Lu
-048F Ll
-0490 Lu
-0491 Ll
-0492 Lu
-0493 Ll
-0494 Lu
-0495 Ll
-0496 Lu
-0497 Ll
-0498 Lu
-0499 Ll
-049A Lu
-049B Ll
-049C Lu
-049D Ll
-049E Lu
-049F Ll
-04A0 Lu
-04A1 Ll
-04A2 Lu
-04A3 Ll
-04A4 Lu
-04A5 Ll
-04A6 Lu
-04A7 Ll
-04A8 Lu
-04A9 Ll
-04AA Lu
-04AB Ll
-04AC Lu
-04AD Ll
-04AE Lu
-04AF Ll
-04B0 Lu
-04B1 Ll
-04B2 Lu
-04B3 Ll
-04B4 Lu
-04B5 Ll
-04B6 Lu
-04B7 Ll
-04B8 Lu
-04B9 Ll
-04BA Lu
-04BB Ll
-04BC Lu
-04BD Ll
-04BE Lu
-04BF Ll
-04C0 04C1 Lu
-04C2 Ll
-04C3 Lu
-04C4 Ll
-04C5 Lu
-04C6 Ll
-04C7 Lu
-04C8 Ll
-04C9 Lu
-04CA Ll
-04CB Lu
-04CC Ll
-04CD Lu
-04CE Ll
-04D0 Lu
-04D1 Ll
-04D2 Lu
-04D3 Ll
-04D4 Lu
-04D5 Ll
-04D6 Lu
-04D7 Ll
-04D8 Lu
-04D9 Ll
-04DA Lu
-04DB Ll
-04DC Lu
-04DD Ll
-04DE Lu
-04DF Ll
-04E0 Lu
-04E1 Ll
-04E2 Lu
-04E3 Ll
-04E4 Lu
-04E5 Ll
-04E6 Lu
-04E7 Ll
-04E8 Lu
-04E9 Ll
-04EA Lu
-04EB Ll
-04EC Lu
-04ED Ll
-04EE Lu
-04EF Ll
-04F0 Lu
-04F1 Ll
-04F2 Lu
-04F3 Ll
-04F4 Lu
-04F5 Ll
-04F8 Lu
-04F9 Ll
-0500 Lu
-0501 Ll
-0502 Lu
-0503 Ll
-0504 Lu
-0505 Ll
-0506 Lu
-0507 Ll
-0508 Lu
-0509 Ll
-050A Lu
-050B Ll
-050C Lu
-050D Ll
-050E Lu
-050F Ll
-0531 0556 Lu
-0559 Lm
-055A 055F Po
-0561 0587 Ll
-0589 Po
-058A Pd
-0591 05A1 Mn
-05A3 05B9 Mn
-05BB 05BD Mn
-05BE Po
-05BF Mn
-05C0 Po
-05C1 05C2 Mn
-05C3 Po
-05C4 Mn
-05D0 05EA Lo
-05F0 05F2 Lo
-05F3 05F4 Po
-060C Po
-061B Po
-061F Po
-0621 063A Lo
-0640 Lm
-0641 064A Lo
-064B 0655 Mn
-0660 0669 Nd
-066A 066D Po
-066E 066F Lo
-0670 Mn
-0671 06D3 Lo
-06D4 Po
-06D5 Lo
-06D6 06DC Mn
-06DD Cf
-06DE Me
-06DF 06E4 Mn
-06E5 06E6 Lm
-06E7 06E8 Mn
-06E9 So
-06EA 06ED Mn
-06F0 06F9 Nd
-06FA 06FC Lo
-06FD 06FE So
-0700 070D Po
-070F Cf
-0710 Lo
-0711 Mn
-0712 072C Lo
-0730 074A Mn
-0780 07A5 Lo
-07A6 07B0 Mn
-07B1 Lo
-0901 0902 Mn
-0903 Mc
-0905 0939 Lo
-093C Mn
-093D Lo
-093E 0940 Mc
-0941 0948 Mn
-0949 094C Mc
-094D Mn
-0950 Lo
-0951 0954 Mn
-0958 0961 Lo
-0962 0963 Mn
-0964 0965 Po
-0966 096F Nd
-0970 Po
-0981 Mn
-0982 0983 Mc
-0985 098C Lo
-098F 0990 Lo
-0993 09A8 Lo
-09AA 09B0 Lo
-09B2 Lo
-09B6 09B9 Lo
-09BC Mn
-09BE 09C0 Mc
-09C1 09C4 Mn
-09C7 09C8 Mc
-09CB 09CC Mc
-09CD Mn
-09D7 Mc
-09DC 09DD Lo
-09DF 09E1 Lo
-09E2 09E3 Mn
-09E6 09EF Nd
-09F0 09F1 Lo
-09F2 09F3 Sc
-09F4 09F9 No
-09FA So
-0A02 Mn
-0A05 0A0A Lo
-0A0F 0A10 Lo
-0A13 0A28 Lo
-0A2A 0A30 Lo
-0A32 0A33 Lo
-0A35 0A36 Lo
-0A38 0A39 Lo
-0A3C Mn
-0A3E 0A40 Mc
-0A41 0A42 Mn
-0A47 0A48 Mn
-0A4B 0A4D Mn
-0A59 0A5C Lo
-0A5E Lo
-0A66 0A6F Nd
-0A70 0A71 Mn
-0A72 0A74 Lo
-0A81 0A82 Mn
-0A83 Mc
-0A85 0A8B Lo
-0A8D Lo
-0A8F 0A91 Lo
-0A93 0AA8 Lo
-0AAA 0AB0 Lo
-0AB2 0AB3 Lo
-0AB5 0AB9 Lo
-0ABC Mn
-0ABD Lo
-0ABE 0AC0 Mc
-0AC1 0AC5 Mn
-0AC7 0AC8 Mn
-0AC9 Mc
-0ACB 0ACC Mc
-0ACD Mn
-0AD0 Lo
-0AE0 Lo
-0AE6 0AEF Nd
-0B01 Mn
-0B02 0B03 Mc
-0B05 0B0C Lo
-0B0F 0B10 Lo
-0B13 0B28 Lo
-0B2A 0B30 Lo
-0B32 0B33 Lo
-0B36 0B39 Lo
-0B3C Mn
-0B3D Lo
-0B3E Mc
-0B3F Mn
-0B40 Mc
-0B41 0B43 Mn
-0B47 0B48 Mc
-0B4B 0B4C Mc
-0B4D Mn
-0B56 Mn
-0B57 Mc
-0B5C 0B5D Lo
-0B5F 0B61 Lo
-0B66 0B6F Nd
-0B70 So
-0B82 Mn
-0B83 Lo
-0B85 0B8A Lo
-0B8E 0B90 Lo
-0B92 0B95 Lo
-0B99 0B9A Lo
-0B9C Lo
-0B9E 0B9F Lo
-0BA3 0BA4 Lo
-0BA8 0BAA Lo
-0BAE 0BB5 Lo
-0BB7 0BB9 Lo
-0BBE 0BBF Mc
-0BC0 Mn
-0BC1 0BC2 Mc
-0BC6 0BC8 Mc
-0BCA 0BCC Mc
-0BCD Mn
-0BD7 Mc
-0BE7 0BEF Nd
-0BF0 0BF2 No
-0C01 0C03 Mc
-0C05 0C0C Lo
-0C0E 0C10 Lo
-0C12 0C28 Lo
-0C2A 0C33 Lo
-0C35 0C39 Lo
-0C3E 0C40 Mn
-0C41 0C44 Mc
-0C46 0C48 Mn
-0C4A 0C4D Mn
-0C55 0C56 Mn
-0C60 0C61 Lo
-0C66 0C6F Nd
-0C82 0C83 Mc
-0C85 0C8C Lo
-0C8E 0C90 Lo
-0C92 0CA8 Lo
-0CAA 0CB3 Lo
-0CB5 0CB9 Lo
-0CBE Mc
-0CBF Mn
-0CC0 0CC4 Mc
-0CC6 Mn
-0CC7 0CC8 Mc
-0CCA 0CCB Mc
-0CCC 0CCD Mn
-0CD5 0CD6 Mc
-0CDE Lo
-0CE0 0CE1 Lo
-0CE6 0CEF Nd
-0D02 0D03 Mc
-0D05 0D0C Lo
-0D0E 0D10 Lo
-0D12 0D28 Lo
-0D2A 0D39 Lo
-0D3E 0D40 Mc
-0D41 0D43 Mn
-0D46 0D48 Mc
-0D4A 0D4C Mc
-0D4D Mn
-0D57 Mc
-0D60 0D61 Lo
-0D66 0D6F Nd
-0D82 0D83 Mc
-0D85 0D96 Lo
-0D9A 0DB1 Lo
-0DB3 0DBB Lo
-0DBD Lo
-0DC0 0DC6 Lo
-0DCA Mn
-0DCF 0DD1 Mc
-0DD2 0DD4 Mn
-0DD6 Mn
-0DD8 0DDF Mc
-0DF2 0DF3 Mc
-0DF4 Po
-0E01 0E30 Lo
-0E31 Mn
-0E32 0E33 Lo
-0E34 0E3A Mn
-0E3F Sc
-0E40 0E45 Lo
-0E46 Lm
-0E47 0E4E Mn
-0E4F Po
-0E50 0E59 Nd
-0E5A 0E5B Po
-0E81 0E82 Lo
-0E84 Lo
-0E87 0E88 Lo
-0E8A Lo
-0E8D Lo
-0E94 0E97 Lo
-0E99 0E9F Lo
-0EA1 0EA3 Lo
-0EA5 Lo
-0EA7 Lo
-0EAA 0EAB Lo
-0EAD 0EB0 Lo
-0EB1 Mn
-0EB2 0EB3 Lo
-0EB4 0EB9 Mn
-0EBB 0EBC Mn
-0EBD Lo
-0EC0 0EC4 Lo
-0EC6 Lm
-0EC8 0ECD Mn
-0ED0 0ED9 Nd
-0EDC 0EDD Lo
-0F00 Lo
-0F01 0F03 So
-0F04 0F12 Po
-0F13 0F17 So
-0F18 0F19 Mn
-0F1A 0F1F So
-0F20 0F29 Nd
-0F2A 0F33 No
-0F34 So
-0F35 Mn
-0F36 So
-0F37 Mn
-0F38 So
-0F39 Mn
-0F3A Ps
-0F3B Pe
-0F3C Ps
-0F3D Pe
-0F3E 0F3F Mc
-0F40 0F47 Lo
-0F49 0F6A Lo
-0F71 0F7E Mn
-0F7F Mc
-0F80 0F84 Mn
-0F85 Po
-0F86 0F87 Mn
-0F88 0F8B Lo
-0F90 0F97 Mn
-0F99 0FBC Mn
-0FBE 0FC5 So
-0FC6 Mn
-0FC7 0FCC So
-0FCF So
-1000 1021 Lo
-1023 1027 Lo
-1029 102A Lo
-102C Mc
-102D 1030 Mn
-1031 Mc
-1032 Mn
-1036 1037 Mn
-1038 Mc
-1039 Mn
-1040 1049 Nd
-104A 104F Po
-1050 1055 Lo
-1056 1057 Mc
-1058 1059 Mn
-10A0 10C5 Lu
-10D0 10F8 Lo
-10FB Po
-1100 1159 Lo
-115F 11A2 Lo
-11A8 11F9 Lo
-1200 1206 Lo
-1208 1246 Lo
-1248 Lo
-124A 124D Lo
-1250 1256 Lo
-1258 Lo
-125A 125D Lo
-1260 1286 Lo
-1288 Lo
-128A 128D Lo
-1290 12AE Lo
-12B0 Lo
-12B2 12B5 Lo
-12B8 12BE Lo
-12C0 Lo
-12C2 12C5 Lo
-12C8 12CE Lo
-12D0 12D6 Lo
-12D8 12EE Lo
-12F0 130E Lo
-1310 Lo
-1312 1315 Lo
-1318 131E Lo
-1320 1346 Lo
-1348 135A Lo
-1361 1368 Po
-1369 1371 Nd
-1372 137C No
-13A0 13F4 Lo
-1401 166C Lo
-166D 166E Po
-166F 1676 Lo
-1680 Zs
-1681 169A Lo
-169B Ps
-169C Pe
-16A0 16EA Lo
-16EB 16ED Po
-16EE 16F0 Nl
-1700 170C Lo
-170E 1711 Lo
-1712 1714 Mn
-1720 1731 Lo
-1732 1734 Mn
-1735 1736 Po
-1740 1751 Lo
-1752 1753 Mn
-1760 176C Lo
-176E 1770 Lo
-1772 1773 Mn
-1780 17B3 Lo
-17B4 17B6 Mc
-17B7 17BD Mn
-17BE 17C5 Mc
-17C6 Mn
-17C7 17C8 Mc
-17C9 17D3 Mn
-17D4 17D6 Po
-17D7 Lm
-17D8 17DA Po
-17DB Sc
-17DC Lo
-17E0 17E9 Nd
-1800 1805 Po
-1806 Pd
-1807 180A Po
-180B 180D Mn
-180E Cf
-1810 1819 Nd
-1820 1842 Lo
-1843 Lm
-1844 1877 Lo
-1880 18A8 Lo
-18A9 Mn
-1E00 Lu
-1E01 Ll
-1E02 Lu
-1E03 Ll
-1E04 Lu
-1E05 Ll
-1E06 Lu
-1E07 Ll
-1E08 Lu
-1E09 Ll
-1E0A Lu
-1E0B Ll
-1E0C Lu
-1E0D Ll
-1E0E Lu
-1E0F Ll
-1E10 Lu
-1E11 Ll
-1E12 Lu
-1E13 Ll
-1E14 Lu
-1E15 Ll
-1E16 Lu
-1E17 Ll
-1E18 Lu
-1E19 Ll
-1E1A Lu
-1E1B Ll
-1E1C Lu
-1E1D Ll
-1E1E Lu
-1E1F Ll
-1E20 Lu
-1E21 Ll
-1E22 Lu
-1E23 Ll
-1E24 Lu
-1E25 Ll
-1E26 Lu
-1E27 Ll
-1E28 Lu
-1E29 Ll
-1E2A Lu
-1E2B Ll
-1E2C Lu
-1E2D Ll
-1E2E Lu
-1E2F Ll
-1E30 Lu
-1E31 Ll
-1E32 Lu
-1E33 Ll
-1E34 Lu
-1E35 Ll
-1E36 Lu
-1E37 Ll
-1E38 Lu
-1E39 Ll
-1E3A Lu
-1E3B Ll
-1E3C Lu
-1E3D Ll
-1E3E Lu
-1E3F Ll
-1E40 Lu
-1E41 Ll
-1E42 Lu
-1E43 Ll
-1E44 Lu
-1E45 Ll
-1E46 Lu
-1E47 Ll
-1E48 Lu
-1E49 Ll
-1E4A Lu
-1E4B Ll
-1E4C Lu
-1E4D Ll
-1E4E Lu
-1E4F Ll
-1E50 Lu
-1E51 Ll
-1E52 Lu
-1E53 Ll
-1E54 Lu
-1E55 Ll
-1E56 Lu
-1E57 Ll
-1E58 Lu
-1E59 Ll
-1E5A Lu
-1E5B Ll
-1E5C Lu
-1E5D Ll
-1E5E Lu
-1E5F Ll
-1E60 Lu
-1E61 Ll
-1E62 Lu
-1E63 Ll
-1E64 Lu
-1E65 Ll
-1E66 Lu
-1E67 Ll
-1E68 Lu
-1E69 Ll
-1E6A Lu
-1E6B Ll
-1E6C Lu
-1E6D Ll
-1E6E Lu
-1E6F Ll
-1E70 Lu
-1E71 Ll
-1E72 Lu
-1E73 Ll
-1E74 Lu
-1E75 Ll
-1E76 Lu
-1E77 Ll
-1E78 Lu
-1E79 Ll
-1E7A Lu
-1E7B Ll
-1E7C Lu
-1E7D Ll
-1E7E Lu
-1E7F Ll
-1E80 Lu
-1E81 Ll
-1E82 Lu
-1E83 Ll
-1E84 Lu
-1E85 Ll
-1E86 Lu
-1E87 Ll
-1E88 Lu
-1E89 Ll
-1E8A Lu
-1E8B Ll
-1E8C Lu
-1E8D Ll
-1E8E Lu
-1E8F Ll
-1E90 Lu
-1E91 Ll
-1E92 Lu
-1E93 Ll
-1E94 Lu
-1E95 1E9B Ll
-1EA0 Lu
-1EA1 Ll
-1EA2 Lu
-1EA3 Ll
-1EA4 Lu
-1EA5 Ll
-1EA6 Lu
-1EA7 Ll
-1EA8 Lu
-1EA9 Ll
-1EAA Lu
-1EAB Ll
-1EAC Lu
-1EAD Ll
-1EAE Lu
-1EAF Ll
-1EB0 Lu
-1EB1 Ll
-1EB2 Lu
-1EB3 Ll
-1EB4 Lu
-1EB5 Ll
-1EB6 Lu
-1EB7 Ll
-1EB8 Lu
-1EB9 Ll
-1EBA Lu
-1EBB Ll
-1EBC Lu
-1EBD Ll
-1EBE Lu
-1EBF Ll
-1EC0 Lu
-1EC1 Ll
-1EC2 Lu
-1EC3 Ll
-1EC4 Lu
-1EC5 Ll
-1EC6 Lu
-1EC7 Ll
-1EC8 Lu
-1EC9 Ll
-1ECA Lu
-1ECB Ll
-1ECC Lu
-1ECD Ll
-1ECE Lu
-1ECF Ll
-1ED0 Lu
-1ED1 Ll
-1ED2 Lu
-1ED3 Ll
-1ED4 Lu
-1ED5 Ll
-1ED6 Lu
-1ED7 Ll
-1ED8 Lu
-1ED9 Ll
-1EDA Lu
-1EDB Ll
-1EDC Lu
-1EDD Ll
-1EDE Lu
-1EDF Ll
-1EE0 Lu
-1EE1 Ll
-1EE2 Lu
-1EE3 Ll
-1EE4 Lu
-1EE5 Ll
-1EE6 Lu
-1EE7 Ll
-1EE8 Lu
-1EE9 Ll
-1EEA Lu
-1EEB Ll
-1EEC Lu
-1EED Ll
-1EEE Lu
-1EEF Ll
-1EF0 Lu
-1EF1 Ll
-1EF2 Lu
-1EF3 Ll
-1EF4 Lu
-1EF5 Ll
-1EF6 Lu
-1EF7 Ll
-1EF8 Lu
-1EF9 Ll
-1F00 1F07 Ll
-1F08 1F0F Lu
-1F10 1F15 Ll
-1F18 1F1D Lu
-1F20 1F27 Ll
-1F28 1F2F Lu
-1F30 1F37 Ll
-1F38 1F3F Lu
-1F40 1F45 Ll
-1F48 1F4D Lu
-1F50 1F57 Ll
-1F59 Lu
-1F5B Lu
-1F5D Lu
-1F5F Lu
-1F60 1F67 Ll
-1F68 1F6F Lu
-1F70 1F7D Ll
-1F80 1F87 Ll
-1F88 1F8F Lt
-1F90 1F97 Ll
-1F98 1F9F Lt
-1FA0 1FA7 Ll
-1FA8 1FAF Lt
-1FB0 1FB4 Ll
-1FB6 1FB7 Ll
-1FB8 1FBB Lu
-1FBC Lt
-1FBD Sk
-1FBE Ll
-1FBF 1FC1 Sk
-1FC2 1FC4 Ll
-1FC6 1FC7 Ll
-1FC8 1FCB Lu
-1FCC Lt
-1FCD 1FCF Sk
-1FD0 1FD3 Ll
-1FD6 1FD7 Ll
-1FD8 1FDB Lu
-1FDD 1FDF Sk
-1FE0 1FE7 Ll
-1FE8 1FEC Lu
-1FED 1FEF Sk
-1FF2 1FF4 Ll
-1FF6 1FF7 Ll
-1FF8 1FFB Lu
-1FFC Lt
-1FFD 1FFE Sk
-2000 200B Zs
-200C 200F Cf
-2010 2015 Pd
-2016 2017 Po
-2018 Pi
-2019 Pf
-201A Ps
-201B 201C Pi
-201D Pf
-201E Ps
-201F Pi
-2020 2027 Po
-2028 Zl
-2029 Zp
-202A 202E Cf
-202F Zs
-2030 2038 Po
-2039 Pi
-203A Pf
-203B 203E Po
-203F 2040 Pc
-2041 2043 Po
-2044 Sm
-2045 Ps
-2046 Pe
-2047 2051 Po
-2052 Sm
-2057 Po
-205F Zs
-2060 2063 Cf
-206A 206F Cf
-2070 No
-2071 Ll
-2074 2079 No
-207A 207C Sm
-207D Ps
-207E Pe
-207F Ll
-2080 2089 No
-208A 208C Sm
-208D Ps
-208E Pe
-20A0 20B1 Sc
-20D0 20DC Mn
-20DD 20E0 Me
-20E1 Mn
-20E2 20E4 Me
-20E5 20EA Mn
-2100 2101 So
-2102 Lu
-2103 2106 So
-2107 Lu
-2108 2109 So
-210A Ll
-210B 210D Lu
-210E 210F Ll
-2110 2112 Lu
-2113 Ll
-2114 So
-2115 Lu
-2116 2118 So
-2119 211D Lu
-211E 2123 So
-2124 Lu
-2125 So
-2126 Lu
-2127 So
-2128 Lu
-2129 So
-212A 212D Lu
-212E So
-212F Ll
-2130 2131 Lu
-2132 So
-2133 Lu
-2134 Ll
-2135 2138 Lo
-2139 Ll
-213A So
-213D Ll
-213E 213F Lu
-2140 2144 Sm
-2145 Lu
-2146 2149 Ll
-214A So
-214B Sm
-2153 215F No
-2160 2183 Nl
-2190 2194 Sm
-2195 2199 So
-219A 219B Sm
-219C 219F So
-21A0 Sm
-21A1 21A2 So
-21A3 Sm
-21A4 21A5 So
-21A6 Sm
-21A7 21AD So
-21AE Sm
-21AF 21CD So
-21CE 21CF Sm
-21D0 21D1 So
-21D2 Sm
-21D3 So
-21D4 Sm
-21D5 21F3 So
-21F4 22FF Sm
-2300 2307 So
-2308 230B Sm
-230C 231F So
-2320 2321 Sm
-2322 2328 So
-2329 Ps
-232A Pe
-232B 237B So
-237C Sm
-237D 239A So
-239B 23B3 Sm
-23B4 Ps
-23B5 Pe
-23B6 Po
-23B7 23CE So
-2400 2426 So
-2440 244A So
-2460 249B No
-249C 24E9 So
-24EA 24FE No
-2500 25B6 So
-25B7 Sm
-25B8 25C0 So
-25C1 Sm
-25C2 25F7 So
-25F8 25FF Sm
-2600 2613 So
-2616 2617 So
-2619 266E So
-266F Sm
-2670 267D So
-2680 2689 So
-2701 2704 So
-2706 2709 So
-270C 2727 So
-2729 274B So
-274D So
-274F 2752 So
-2756 So
-2758 275E So
-2761 2767 So
-2768 Ps
-2769 Pe
-276A Ps
-276B Pe
-276C Ps
-276D Pe
-276E Ps
-276F Pe
-2770 Ps
-2771 Pe
-2772 Ps
-2773 Pe
-2774 Ps
-2775 Pe
-2776 2793 No
-2794 So
-2798 27AF So
-27B1 27BE So
-27D0 27E5 Sm
-27E6 Ps
-27E7 Pe
-27E8 Ps
-27E9 Pe
-27EA Ps
-27EB Pe
-27F0 27FF Sm
-2800 28FF So
-2900 2982 Sm
-2983 Ps
-2984 Pe
-2985 Ps
-2986 Pe
-2987 Ps
-2988 Pe
-2989 Ps
-298A Pe
-298B Ps
-298C Pe
-298D Ps
-298E Pe
-298F Ps
-2990 Pe
-2991 Ps
-2992 Pe
-2993 Ps
-2994 Pe
-2995 Ps
-2996 Pe
-2997 Ps
-2998 Pe
-2999 29D7 Sm
-29D8 Ps
-29D9 Pe
-29DA Ps
-29DB Pe
-29DC 29FB Sm
-29FC Ps
-29FD Pe
-29FE 2AFF Sm
-2E80 2E99 So
-2E9B 2EF3 So
-2F00 2FD5 So
-2FF0 2FFB So
-3000 Zs
-3001 3003 Po
-3004 So
-3005 Lm
-3006 Lo
-3007 Nl
-3008 Ps
-3009 Pe
-300A Ps
-300B Pe
-300C Ps
-300D Pe
-300E Ps
-300F Pe
-3010 Ps
-3011 Pe
-3012 3013 So
-3014 Ps
-3015 Pe
-3016 Ps
-3017 Pe
-3018 Ps
-3019 Pe
-301A Ps
-301B Pe
-301C Pd
-301D Ps
-301E 301F Pe
-3020 So
-3021 3029 Nl
-302A 302F Mn
-3030 Pd
-3031 3035 Lm
-3036 3037 So
-3038 303A Nl
-303B Lm
-303C Lo
-303D Po
-303E 303F So
-3041 3096 Lo
-3099 309A Mn
-309B 309C Sk
-309D 309E Lm
-309F Lo
-30A0 Pd
-30A1 30FA Lo
-30FB Pc
-30FC 30FE Lm
-30FF Lo
-3105 312C Lo
-3131 318E Lo
-3190 3191 So
-3192 3195 No
-3196 319F So
-31A0 31B7 Lo
-31F0 31FF Lo
-3200 321C So
-3220 3229 No
-322A 3243 So
-3251 325F No
-3260 327B So
-327F So
-3280 3289 No
-328A 32B0 So
-32B1 32BF No
-32C0 32CB So
-32D0 32FE So
-3300 3376 So
-337B 33DD So
-33E0 33FE So
-3400 4DB5 Lo
-4E00 9FA5 Lo
-A000 A48C Lo
-A490 A4C6 So
-AC00 D7A3 Lo
-D800 DFFF Cs
-E000 F8FF Co
-F900 FA2D Lo
-FA30 FA6A Lo
-FB00 FB06 Ll
-FB13 FB17 Ll
-FB1D Lo
-FB1E Mn
-FB1F FB28 Lo
-FB29 Sm
-FB2A FB36 Lo
-FB38 FB3C Lo
-FB3E Lo
-FB40 FB41 Lo
-FB43 FB44 Lo
-FB46 FBB1 Lo
-FBD3 FD3D Lo
-FD3E Ps
-FD3F Pe
-FD50 FD8F Lo
-FD92 FDC7 Lo
-FDF0 FDFB Lo
-FDFC Sc
-FE00 FE0F Mn
-FE20 FE23 Mn
-FE30 Po
-FE31 FE32 Pd
-FE33 FE34 Pc
-FE35 Ps
-FE36 Pe
-FE37 Ps
-FE38 Pe
-FE39 Ps
-FE3A Pe
-FE3B Ps
-FE3C Pe
-FE3D Ps
-FE3E Pe
-FE3F Ps
-FE40 Pe
-FE41 Ps
-FE42 Pe
-FE43 Ps
-FE44 Pe
-FE45 FE46 Po
-FE49 FE4C Po
-FE4D FE4F Pc
-FE50 FE52 Po
-FE54 FE57 Po
-FE58 Pd
-FE59 Ps
-FE5A Pe
-FE5B Ps
-FE5C Pe
-FE5D Ps
-FE5E Pe
-FE5F FE61 Po
-FE62 Sm
-FE63 Pd
-FE64 FE66 Sm
-FE68 Po
-FE69 Sc
-FE6A FE6B Po
-FE70 FE74 Lo
-FE76 FEFC Lo
-FEFF Cf
-FF01 FF03 Po
-FF04 Sc
-FF05 FF07 Po
-FF08 Ps
-FF09 Pe
-FF0A Po
-FF0B Sm
-FF0C Po
-FF0D Pd
-FF0E FF0F Po
-FF10 FF19 Nd
-FF1A FF1B Po
-FF1C FF1E Sm
-FF1F FF20 Po
-FF21 FF3A Lu
-FF3B Ps
-FF3C Po
-FF3D Pe
-FF3E Sk
-FF3F Pc
-FF40 Sk
-FF41 FF5A Ll
-FF5B Ps
-FF5C Sm
-FF5D Pe
-FF5E Sm
-FF5F Ps
-FF60 Pe
-FF61 Po
-FF62 Ps
-FF63 Pe
-FF64 Po
-FF65 Pc
-FF66 FF6F Lo
-FF70 Lm
-FF71 FF9D Lo
-FF9E FF9F Lm
-FFA0 FFBE Lo
-FFC2 FFC7 Lo
-FFCA FFCF Lo
-FFD2 FFD7 Lo
-FFDA FFDC Lo
-FFE0 FFE1 Sc
-FFE2 Sm
-FFE3 Sk
-FFE4 So
-FFE5 FFE6 Sc
-FFE8 So
-FFE9 FFEC Sm
-FFED FFEE So
-FFF9 FFFB Cf
-FFFC FFFD So
-10300 1031E Lo
-10320 10323 No
-10330 10349 Lo
-1034A Nl
-10400 10425 Lu
-10428 1044D Ll
-1D000 1D0F5 So
-1D100 1D126 So
-1D12A 1D164 So
-1D165 1D166 Mc
-1D167 1D169 Mn
-1D16A 1D16C So
-1D16D 1D172 Mc
-1D173 1D17A Cf
-1D17B 1D182 Mn
-1D183 1D184 So
-1D185 1D18B Mn
-1D18C 1D1A9 So
-1D1AA 1D1AD Mn
-1D1AE 1D1DD So
-1D400 1D419 Lu
-1D41A 1D433 Ll
-1D434 1D44D Lu
-1D44E 1D454 Ll
-1D456 1D467 Ll
-1D468 1D481 Lu
-1D482 1D49B Ll
-1D49C Lu
-1D49E 1D49F Lu
-1D4A2 Lu
-1D4A5 1D4A6 Lu
-1D4A9 1D4AC Lu
-1D4AE 1D4B5 Lu
-1D4B6 1D4B9 Ll
-1D4BB Ll
-1D4BD 1D4C0 Ll
-1D4C2 1D4C3 Ll
-1D4C5 1D4CF Ll
-1D4D0 1D4E9 Lu
-1D4EA 1D503 Ll
-1D504 1D505 Lu
-1D507 1D50A Lu
-1D50D 1D514 Lu
-1D516 1D51C Lu
-1D51E 1D537 Ll
-1D538 1D539 Lu
-1D53B 1D53E Lu
-1D540 1D544 Lu
-1D546 Lu
-1D54A 1D550 Lu
-1D552 1D56B Ll
-1D56C 1D585 Lu
-1D586 1D59F Ll
-1D5A0 1D5B9 Lu
-1D5BA 1D5D3 Ll
-1D5D4 1D5ED Lu
-1D5EE 1D607 Ll
-1D608 1D621 Lu
-1D622 1D63B Ll
-1D63C 1D655 Lu
-1D656 1D66F Ll
-1D670 1D689 Lu
-1D68A 1D6A3 Ll
-1D6A8 1D6C0 Lu
-1D6C1 Sm
-1D6C2 1D6DA Ll
-1D6DB Sm
-1D6DC 1D6E1 Ll
-1D6E2 1D6FA Lu
-1D6FB Sm
-1D6FC 1D714 Ll
-1D715 Sm
-1D716 1D71B Ll
-1D71C 1D734 Lu
-1D735 Sm
-1D736 1D74E Ll
-1D74F Sm
-1D750 1D755 Ll
-1D756 1D76E Lu
-1D76F Sm
-1D770 1D788 Ll
-1D789 Sm
-1D78A 1D78F Ll
-1D790 1D7A8 Lu
-1D7A9 Sm
-1D7AA 1D7C2 Ll
-1D7C3 Sm
-1D7C4 1D7C9 Ll
-1D7CE 1D7FF Nd
-20000 2A6D6 Lo
-2F800 2FA1D Lo
-E0001 Cf
-E0020 E007F Cf
-F0000 FFFFD Co
-100000 10FFFD Co
-END
diff --git a/Master/xemtex/perl/lib/unicore/CombiningClass.pl b/Master/xemtex/perl/lib/unicore/CombiningClass.pl
deleted file mode 100644
index 2b97b553e4e..00000000000
--- a/Master/xemtex/perl/lib/unicore/CombiningClass.pl
+++ /dev/null
@@ -1,169 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0300 0314 230
-0315 232
-0316 0319 220
-031A 232
-031B 216
-031C 0320 220
-0321 0322 202
-0323 0326 220
-0327 0328 202
-0329 0333 220
-0334 0338 1
-0339 033C 220
-033D 0344 230
-0345 240
-0346 230
-0347 0349 220
-034A 034C 230
-034D 034E 220
-0360 0361 234
-0362 233
-0363 036F 230
-0483 0486 230
-0591 220
-0592 0595 230
-0596 220
-0597 0599 230
-059A 222
-059B 220
-059C 05A1 230
-05A3 05A7 220
-05A8 05A9 230
-05AA 220
-05AB 05AC 230
-05AD 222
-05AE 228
-05AF 230
-05B0 10
-05B1 11
-05B2 12
-05B3 13
-05B4 14
-05B5 15
-05B6 16
-05B7 17
-05B8 18
-05B9 19
-05BB 20
-05BC 21
-05BD 22
-05BF 23
-05C1 24
-05C2 25
-05C4 230
-064B 27
-064C 28
-064D 29
-064E 30
-064F 31
-0650 32
-0651 33
-0652 34
-0653 0654 230
-0655 220
-0670 35
-06D6 06DC 230
-06DF 06E2 230
-06E3 220
-06E4 230
-06E7 06E8 230
-06EA 220
-06EB 06EC 230
-06ED 220
-0711 36
-0730 230
-0731 220
-0732 0733 230
-0734 220
-0735 0736 230
-0737 0739 220
-073A 230
-073B 073C 220
-073D 230
-073E 220
-073F 0741 230
-0742 220
-0743 230
-0744 220
-0745 230
-0746 220
-0747 230
-0748 220
-0749 074A 230
-093C 7
-094D 9
-0951 230
-0952 220
-0953 0954 230
-09BC 7
-09CD 9
-0A3C 7
-0A4D 9
-0ABC 7
-0ACD 9
-0B3C 7
-0B4D 9
-0BCD 9
-0C4D 9
-0C55 84
-0C56 91
-0CCD 9
-0D4D 9
-0DCA 9
-0E38 0E39 103
-0E3A 9
-0E48 0E4B 107
-0EB8 0EB9 118
-0EC8 0ECB 122
-0F18 0F19 220
-0F35 220
-0F37 220
-0F39 216
-0F71 129
-0F72 130
-0F74 132
-0F7A 0F7D 130
-0F80 130
-0F82 0F83 230
-0F84 9
-0F86 0F87 230
-0FC6 220
-1037 7
-1039 9
-1714 9
-1734 9
-17D2 9
-18A9 228
-20D0 20D1 230
-20D2 20D3 1
-20D4 20D7 230
-20D8 20DA 1
-20DB 20DC 230
-20E1 230
-20E5 20E6 1
-20E7 230
-20E8 220
-20E9 230
-20EA 1
-302A 218
-302B 228
-302C 232
-302D 222
-302E 302F 224
-3099 309A 8
-FB1E 26
-FE20 FE23 230
-1D165 1D166 216
-1D167 1D169 1
-1D16D 226
-1D16E 1D172 216
-1D17B 1D182 220
-1D185 1D189 230
-1D18A 1D18B 220
-1D1AA 1D1AD 230
-END
diff --git a/Master/xemtex/perl/lib/unicore/Decomposition.pl b/Master/xemtex/perl/lib/unicore/Decomposition.pl
deleted file mode 100644
index 739d8fc661b..00000000000
--- a/Master/xemtex/perl/lib/unicore/Decomposition.pl
+++ /dev/null
@@ -1,5120 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-00A0 <noBreak> 0020
-00A8 <compat> 0020 0308
-00AA <super> 0061
-00AF <compat> 0020 0304
-00B2 <super> 0032
-00B3 <super> 0033
-00B4 <compat> 0020 0301
-00B5 <compat> 03BC
-00B8 <compat> 0020 0327
-00B9 <super> 0031
-00BA <super> 006F
-00BC <fraction> 0031 2044 0034
-00BD <fraction> 0031 2044 0032
-00BE <fraction> 0033 2044 0034
-00C0 0041 0300
-00C1 0041 0301
-00C2 0041 0302
-00C3 0041 0303
-00C4 0041 0308
-00C5 0041 030A
-00C7 0043 0327
-00C8 0045 0300
-00C9 0045 0301
-00CA 0045 0302
-00CB 0045 0308
-00CC 0049 0300
-00CD 0049 0301
-00CE 0049 0302
-00CF 0049 0308
-00D1 004E 0303
-00D2 004F 0300
-00D3 004F 0301
-00D4 004F 0302
-00D5 004F 0303
-00D6 004F 0308
-00D9 0055 0300
-00DA 0055 0301
-00DB 0055 0302
-00DC 0055 0308
-00DD 0059 0301
-00E0 0061 0300
-00E1 0061 0301
-00E2 0061 0302
-00E3 0061 0303
-00E4 0061 0308
-00E5 0061 030A
-00E7 0063 0327
-00E8 0065 0300
-00E9 0065 0301
-00EA 0065 0302
-00EB 0065 0308
-00EC 0069 0300
-00ED 0069 0301
-00EE 0069 0302
-00EF 0069 0308
-00F1 006E 0303
-00F2 006F 0300
-00F3 006F 0301
-00F4 006F 0302
-00F5 006F 0303
-00F6 006F 0308
-00F9 0075 0300
-00FA 0075 0301
-00FB 0075 0302
-00FC 0075 0308
-00FD 0079 0301
-00FF 0079 0308
-0100 0041 0304
-0101 0061 0304
-0102 0041 0306
-0103 0061 0306
-0104 0041 0328
-0105 0061 0328
-0106 0043 0301
-0107 0063 0301
-0108 0043 0302
-0109 0063 0302
-010A 0043 0307
-010B 0063 0307
-010C 0043 030C
-010D 0063 030C
-010E 0044 030C
-010F 0064 030C
-0112 0045 0304
-0113 0065 0304
-0114 0045 0306
-0115 0065 0306
-0116 0045 0307
-0117 0065 0307
-0118 0045 0328
-0119 0065 0328
-011A 0045 030C
-011B 0065 030C
-011C 0047 0302
-011D 0067 0302
-011E 0047 0306
-011F 0067 0306
-0120 0047 0307
-0121 0067 0307
-0122 0047 0327
-0123 0067 0327
-0124 0048 0302
-0125 0068 0302
-0128 0049 0303
-0129 0069 0303
-012A 0049 0304
-012B 0069 0304
-012C 0049 0306
-012D 0069 0306
-012E 0049 0328
-012F 0069 0328
-0130 0049 0307
-0132 <compat> 0049 004A
-0133 <compat> 0069 006A
-0134 004A 0302
-0135 006A 0302
-0136 004B 0327
-0137 006B 0327
-0139 004C 0301
-013A 006C 0301
-013B 004C 0327
-013C 006C 0327
-013D 004C 030C
-013E 006C 030C
-013F <compat> 004C 00B7
-0140 <compat> 006C 00B7
-0143 004E 0301
-0144 006E 0301
-0145 004E 0327
-0146 006E 0327
-0147 004E 030C
-0148 006E 030C
-0149 <compat> 02BC 006E
-014C 004F 0304
-014D 006F 0304
-014E 004F 0306
-014F 006F 0306
-0150 004F 030B
-0151 006F 030B
-0154 0052 0301
-0155 0072 0301
-0156 0052 0327
-0157 0072 0327
-0158 0052 030C
-0159 0072 030C
-015A 0053 0301
-015B 0073 0301
-015C 0053 0302
-015D 0073 0302
-015E 0053 0327
-015F 0073 0327
-0160 0053 030C
-0161 0073 030C
-0162 0054 0327
-0163 0074 0327
-0164 0054 030C
-0165 0074 030C
-0168 0055 0303
-0169 0075 0303
-016A 0055 0304
-016B 0075 0304
-016C 0055 0306
-016D 0075 0306
-016E 0055 030A
-016F 0075 030A
-0170 0055 030B
-0171 0075 030B
-0172 0055 0328
-0173 0075 0328
-0174 0057 0302
-0175 0077 0302
-0176 0059 0302
-0177 0079 0302
-0178 0059 0308
-0179 005A 0301
-017A 007A 0301
-017B 005A 0307
-017C 007A 0307
-017D 005A 030C
-017E 007A 030C
-017F <compat> 0073
-01A0 004F 031B
-01A1 006F 031B
-01AF 0055 031B
-01B0 0075 031B
-01C4 <compat> 0044 017D
-01C5 <compat> 0044 017E
-01C6 <compat> 0064 017E
-01C7 <compat> 004C 004A
-01C8 <compat> 004C 006A
-01C9 <compat> 006C 006A
-01CA <compat> 004E 004A
-01CB <compat> 004E 006A
-01CC <compat> 006E 006A
-01CD 0041 030C
-01CE 0061 030C
-01CF 0049 030C
-01D0 0069 030C
-01D1 004F 030C
-01D2 006F 030C
-01D3 0055 030C
-01D4 0075 030C
-01D5 00DC 0304
-01D6 00FC 0304
-01D7 00DC 0301
-01D8 00FC 0301
-01D9 00DC 030C
-01DA 00FC 030C
-01DB 00DC 0300
-01DC 00FC 0300
-01DE 00C4 0304
-01DF 00E4 0304
-01E0 0226 0304
-01E1 0227 0304
-01E2 00C6 0304
-01E3 00E6 0304
-01E6 0047 030C
-01E7 0067 030C
-01E8 004B 030C
-01E9 006B 030C
-01EA 004F 0328
-01EB 006F 0328
-01EC 01EA 0304
-01ED 01EB 0304
-01EE 01B7 030C
-01EF 0292 030C
-01F0 006A 030C
-01F1 <compat> 0044 005A
-01F2 <compat> 0044 007A
-01F3 <compat> 0064 007A
-01F4 0047 0301
-01F5 0067 0301
-01F8 004E 0300
-01F9 006E 0300
-01FA 00C5 0301
-01FB 00E5 0301
-01FC 00C6 0301
-01FD 00E6 0301
-01FE 00D8 0301
-01FF 00F8 0301
-0200 0041 030F
-0201 0061 030F
-0202 0041 0311
-0203 0061 0311
-0204 0045 030F
-0205 0065 030F
-0206 0045 0311
-0207 0065 0311
-0208 0049 030F
-0209 0069 030F
-020A 0049 0311
-020B 0069 0311
-020C 004F 030F
-020D 006F 030F
-020E 004F 0311
-020F 006F 0311
-0210 0052 030F
-0211 0072 030F
-0212 0052 0311
-0213 0072 0311
-0214 0055 030F
-0215 0075 030F
-0216 0055 0311
-0217 0075 0311
-0218 0053 0326
-0219 0073 0326
-021A 0054 0326
-021B 0074 0326
-021E 0048 030C
-021F 0068 030C
-0226 0041 0307
-0227 0061 0307
-0228 0045 0327
-0229 0065 0327
-022A 00D6 0304
-022B 00F6 0304
-022C 00D5 0304
-022D 00F5 0304
-022E 004F 0307
-022F 006F 0307
-0230 022E 0304
-0231 022F 0304
-0232 0059 0304
-0233 0079 0304
-02B0 <super> 0068
-02B1 <super> 0266
-02B2 <super> 006A
-02B3 <super> 0072
-02B4 <super> 0279
-02B5 <super> 027B
-02B6 <super> 0281
-02B7 <super> 0077
-02B8 <super> 0079
-02D8 <compat> 0020 0306
-02D9 <compat> 0020 0307
-02DA <compat> 0020 030A
-02DB <compat> 0020 0328
-02DC <compat> 0020 0303
-02DD <compat> 0020 030B
-02E0 <super> 0263
-02E1 <super> 006C
-02E2 <super> 0073
-02E3 <super> 0078
-02E4 <super> 0295
-0340 0300
-0341 0301
-0343 0313
-0344 0308 0301
-0374 02B9
-037A <compat> 0020 0345
-037E 003B
-0384 <compat> 0020 0301
-0385 00A8 0301
-0386 0391 0301
-0387 00B7
-0388 0395 0301
-0389 0397 0301
-038A 0399 0301
-038C 039F 0301
-038E 03A5 0301
-038F 03A9 0301
-0390 03CA 0301
-03AA 0399 0308
-03AB 03A5 0308
-03AC 03B1 0301
-03AD 03B5 0301
-03AE 03B7 0301
-03AF 03B9 0301
-03B0 03CB 0301
-03CA 03B9 0308
-03CB 03C5 0308
-03CC 03BF 0301
-03CD 03C5 0301
-03CE 03C9 0301
-03D0 <compat> 03B2
-03D1 <compat> 03B8
-03D2 <compat> 03A5
-03D3 03D2 0301
-03D4 03D2 0308
-03D5 <compat> 03C6
-03D6 <compat> 03C0
-03F0 <compat> 03BA
-03F1 <compat> 03C1
-03F2 <compat> 03C2
-03F4 <compat> 0398
-03F5 <compat> 03B5
-0400 0415 0300
-0401 0415 0308
-0403 0413 0301
-0407 0406 0308
-040C 041A 0301
-040D 0418 0300
-040E 0423 0306
-0419 0418 0306
-0439 0438 0306
-0450 0435 0300
-0451 0435 0308
-0453 0433 0301
-0457 0456 0308
-045C 043A 0301
-045D 0438 0300
-045E 0443 0306
-0476 0474 030F
-0477 0475 030F
-04C1 0416 0306
-04C2 0436 0306
-04D0 0410 0306
-04D1 0430 0306
-04D2 0410 0308
-04D3 0430 0308
-04D6 0415 0306
-04D7 0435 0306
-04DA 04D8 0308
-04DB 04D9 0308
-04DC 0416 0308
-04DD 0436 0308
-04DE 0417 0308
-04DF 0437 0308
-04E2 0418 0304
-04E3 0438 0304
-04E4 0418 0308
-04E5 0438 0308
-04E6 041E 0308
-04E7 043E 0308
-04EA 04E8 0308
-04EB 04E9 0308
-04EC 042D 0308
-04ED 044D 0308
-04EE 0423 0304
-04EF 0443 0304
-04F0 0423 0308
-04F1 0443 0308
-04F2 0423 030B
-04F3 0443 030B
-04F4 0427 0308
-04F5 0447 0308
-04F8 042B 0308
-04F9 044B 0308
-0587 <compat> 0565 0582
-0622 0627 0653
-0623 0627 0654
-0624 0648 0654
-0625 0627 0655
-0626 064A 0654
-0675 <compat> 0627 0674
-0676 <compat> 0648 0674
-0677 <compat> 06C7 0674
-0678 <compat> 064A 0674
-06C0 06D5 0654
-06C2 06C1 0654
-06D3 06D2 0654
-0929 0928 093C
-0931 0930 093C
-0934 0933 093C
-0958 0915 093C
-0959 0916 093C
-095A 0917 093C
-095B 091C 093C
-095C 0921 093C
-095D 0922 093C
-095E 092B 093C
-095F 092F 093C
-09CB 09C7 09BE
-09CC 09C7 09D7
-09DC 09A1 09BC
-09DD 09A2 09BC
-09DF 09AF 09BC
-0A33 0A32 0A3C
-0A36 0A38 0A3C
-0A59 0A16 0A3C
-0A5A 0A17 0A3C
-0A5B 0A1C 0A3C
-0A5E 0A2B 0A3C
-0B48 0B47 0B56
-0B4B 0B47 0B3E
-0B4C 0B47 0B57
-0B5C 0B21 0B3C
-0B5D 0B22 0B3C
-0B94 0B92 0BD7
-0BCA 0BC6 0BBE
-0BCB 0BC7 0BBE
-0BCC 0BC6 0BD7
-0C48 0C46 0C56
-0CC0 0CBF 0CD5
-0CC7 0CC6 0CD5
-0CC8 0CC6 0CD6
-0CCA 0CC6 0CC2
-0CCB 0CCA 0CD5
-0D4A 0D46 0D3E
-0D4B 0D47 0D3E
-0D4C 0D46 0D57
-0DDA 0DD9 0DCA
-0DDC 0DD9 0DCF
-0DDD 0DDC 0DCA
-0DDE 0DD9 0DDF
-0E33 <compat> 0E4D 0E32
-0EB3 <compat> 0ECD 0EB2
-0EDC <compat> 0EAB 0E99
-0EDD <compat> 0EAB 0EA1
-0F0C <noBreak> 0F0B
-0F43 0F42 0FB7
-0F4D 0F4C 0FB7
-0F52 0F51 0FB7
-0F57 0F56 0FB7
-0F5C 0F5B 0FB7
-0F69 0F40 0FB5
-0F73 0F71 0F72
-0F75 0F71 0F74
-0F76 0FB2 0F80
-0F77 <compat> 0FB2 0F81
-0F78 0FB3 0F80
-0F79 <compat> 0FB3 0F81
-0F81 0F71 0F80
-0F93 0F92 0FB7
-0F9D 0F9C 0FB7
-0FA2 0FA1 0FB7
-0FA7 0FA6 0FB7
-0FAC 0FAB 0FB7
-0FB9 0F90 0FB5
-1026 1025 102E
-1E00 0041 0325
-1E01 0061 0325
-1E02 0042 0307
-1E03 0062 0307
-1E04 0042 0323
-1E05 0062 0323
-1E06 0042 0331
-1E07 0062 0331
-1E08 00C7 0301
-1E09 00E7 0301
-1E0A 0044 0307
-1E0B 0064 0307
-1E0C 0044 0323
-1E0D 0064 0323
-1E0E 0044 0331
-1E0F 0064 0331
-1E10 0044 0327
-1E11 0064 0327
-1E12 0044 032D
-1E13 0064 032D
-1E14 0112 0300
-1E15 0113 0300
-1E16 0112 0301
-1E17 0113 0301
-1E18 0045 032D
-1E19 0065 032D
-1E1A 0045 0330
-1E1B 0065 0330
-1E1C 0228 0306
-1E1D 0229 0306
-1E1E 0046 0307
-1E1F 0066 0307
-1E20 0047 0304
-1E21 0067 0304
-1E22 0048 0307
-1E23 0068 0307
-1E24 0048 0323
-1E25 0068 0323
-1E26 0048 0308
-1E27 0068 0308
-1E28 0048 0327
-1E29 0068 0327
-1E2A 0048 032E
-1E2B 0068 032E
-1E2C 0049 0330
-1E2D 0069 0330
-1E2E 00CF 0301
-1E2F 00EF 0301
-1E30 004B 0301
-1E31 006B 0301
-1E32 004B 0323
-1E33 006B 0323
-1E34 004B 0331
-1E35 006B 0331
-1E36 004C 0323
-1E37 006C 0323
-1E38 1E36 0304
-1E39 1E37 0304
-1E3A 004C 0331
-1E3B 006C 0331
-1E3C 004C 032D
-1E3D 006C 032D
-1E3E 004D 0301
-1E3F 006D 0301
-1E40 004D 0307
-1E41 006D 0307
-1E42 004D 0323
-1E43 006D 0323
-1E44 004E 0307
-1E45 006E 0307
-1E46 004E 0323
-1E47 006E 0323
-1E48 004E 0331
-1E49 006E 0331
-1E4A 004E 032D
-1E4B 006E 032D
-1E4C 00D5 0301
-1E4D 00F5 0301
-1E4E 00D5 0308
-1E4F 00F5 0308
-1E50 014C 0300
-1E51 014D 0300
-1E52 014C 0301
-1E53 014D 0301
-1E54 0050 0301
-1E55 0070 0301
-1E56 0050 0307
-1E57 0070 0307
-1E58 0052 0307
-1E59 0072 0307
-1E5A 0052 0323
-1E5B 0072 0323
-1E5C 1E5A 0304
-1E5D 1E5B 0304
-1E5E 0052 0331
-1E5F 0072 0331
-1E60 0053 0307
-1E61 0073 0307
-1E62 0053 0323
-1E63 0073 0323
-1E64 015A 0307
-1E65 015B 0307
-1E66 0160 0307
-1E67 0161 0307
-1E68 1E62 0307
-1E69 1E63 0307
-1E6A 0054 0307
-1E6B 0074 0307
-1E6C 0054 0323
-1E6D 0074 0323
-1E6E 0054 0331
-1E6F 0074 0331
-1E70 0054 032D
-1E71 0074 032D
-1E72 0055 0324
-1E73 0075 0324
-1E74 0055 0330
-1E75 0075 0330
-1E76 0055 032D
-1E77 0075 032D
-1E78 0168 0301
-1E79 0169 0301
-1E7A 016A 0308
-1E7B 016B 0308
-1E7C 0056 0303
-1E7D 0076 0303
-1E7E 0056 0323
-1E7F 0076 0323
-1E80 0057 0300
-1E81 0077 0300
-1E82 0057 0301
-1E83 0077 0301
-1E84 0057 0308
-1E85 0077 0308
-1E86 0057 0307
-1E87 0077 0307
-1E88 0057 0323
-1E89 0077 0323
-1E8A 0058 0307
-1E8B 0078 0307
-1E8C 0058 0308
-1E8D 0078 0308
-1E8E 0059 0307
-1E8F 0079 0307
-1E90 005A 0302
-1E91 007A 0302
-1E92 005A 0323
-1E93 007A 0323
-1E94 005A 0331
-1E95 007A 0331
-1E96 0068 0331
-1E97 0074 0308
-1E98 0077 030A
-1E99 0079 030A
-1E9A <compat> 0061 02BE
-1E9B 017F 0307
-1EA0 0041 0323
-1EA1 0061 0323
-1EA2 0041 0309
-1EA3 0061 0309
-1EA4 00C2 0301
-1EA5 00E2 0301
-1EA6 00C2 0300
-1EA7 00E2 0300
-1EA8 00C2 0309
-1EA9 00E2 0309
-1EAA 00C2 0303
-1EAB 00E2 0303
-1EAC 1EA0 0302
-1EAD 1EA1 0302
-1EAE 0102 0301
-1EAF 0103 0301
-1EB0 0102 0300
-1EB1 0103 0300
-1EB2 0102 0309
-1EB3 0103 0309
-1EB4 0102 0303
-1EB5 0103 0303
-1EB6 1EA0 0306
-1EB7 1EA1 0306
-1EB8 0045 0323
-1EB9 0065 0323
-1EBA 0045 0309
-1EBB 0065 0309
-1EBC 0045 0303
-1EBD 0065 0303
-1EBE 00CA 0301
-1EBF 00EA 0301
-1EC0 00CA 0300
-1EC1 00EA 0300
-1EC2 00CA 0309
-1EC3 00EA 0309
-1EC4 00CA 0303
-1EC5 00EA 0303
-1EC6 1EB8 0302
-1EC7 1EB9 0302
-1EC8 0049 0309
-1EC9 0069 0309
-1ECA 0049 0323
-1ECB 0069 0323
-1ECC 004F 0323
-1ECD 006F 0323
-1ECE 004F 0309
-1ECF 006F 0309
-1ED0 00D4 0301
-1ED1 00F4 0301
-1ED2 00D4 0300
-1ED3 00F4 0300
-1ED4 00D4 0309
-1ED5 00F4 0309
-1ED6 00D4 0303
-1ED7 00F4 0303
-1ED8 1ECC 0302
-1ED9 1ECD 0302
-1EDA 01A0 0301
-1EDB 01A1 0301
-1EDC 01A0 0300
-1EDD 01A1 0300
-1EDE 01A0 0309
-1EDF 01A1 0309
-1EE0 01A0 0303
-1EE1 01A1 0303
-1EE2 01A0 0323
-1EE3 01A1 0323
-1EE4 0055 0323
-1EE5 0075 0323
-1EE6 0055 0309
-1EE7 0075 0309
-1EE8 01AF 0301
-1EE9 01B0 0301
-1EEA 01AF 0300
-1EEB 01B0 0300
-1EEC 01AF 0309
-1EED 01B0 0309
-1EEE 01AF 0303
-1EEF 01B0 0303
-1EF0 01AF 0323
-1EF1 01B0 0323
-1EF2 0059 0300
-1EF3 0079 0300
-1EF4 0059 0323
-1EF5 0079 0323
-1EF6 0059 0309
-1EF7 0079 0309
-1EF8 0059 0303
-1EF9 0079 0303
-1F00 03B1 0313
-1F01 03B1 0314
-1F02 1F00 0300
-1F03 1F01 0300
-1F04 1F00 0301
-1F05 1F01 0301
-1F06 1F00 0342
-1F07 1F01 0342
-1F08 0391 0313
-1F09 0391 0314
-1F0A 1F08 0300
-1F0B 1F09 0300
-1F0C 1F08 0301
-1F0D 1F09 0301
-1F0E 1F08 0342
-1F0F 1F09 0342
-1F10 03B5 0313
-1F11 03B5 0314
-1F12 1F10 0300
-1F13 1F11 0300
-1F14 1F10 0301
-1F15 1F11 0301
-1F18 0395 0313
-1F19 0395 0314
-1F1A 1F18 0300
-1F1B 1F19 0300
-1F1C 1F18 0301
-1F1D 1F19 0301
-1F20 03B7 0313
-1F21 03B7 0314
-1F22 1F20 0300
-1F23 1F21 0300
-1F24 1F20 0301
-1F25 1F21 0301
-1F26 1F20 0342
-1F27 1F21 0342
-1F28 0397 0313
-1F29 0397 0314
-1F2A 1F28 0300
-1F2B 1F29 0300
-1F2C 1F28 0301
-1F2D 1F29 0301
-1F2E 1F28 0342
-1F2F 1F29 0342
-1F30 03B9 0313
-1F31 03B9 0314
-1F32 1F30 0300
-1F33 1F31 0300
-1F34 1F30 0301
-1F35 1F31 0301
-1F36 1F30 0342
-1F37 1F31 0342
-1F38 0399 0313
-1F39 0399 0314
-1F3A 1F38 0300
-1F3B 1F39 0300
-1F3C 1F38 0301
-1F3D 1F39 0301
-1F3E 1F38 0342
-1F3F 1F39 0342
-1F40 03BF 0313
-1F41 03BF 0314
-1F42 1F40 0300
-1F43 1F41 0300
-1F44 1F40 0301
-1F45 1F41 0301
-1F48 039F 0313
-1F49 039F 0314
-1F4A 1F48 0300
-1F4B 1F49 0300
-1F4C 1F48 0301
-1F4D 1F49 0301
-1F50 03C5 0313
-1F51 03C5 0314
-1F52 1F50 0300
-1F53 1F51 0300
-1F54 1F50 0301
-1F55 1F51 0301
-1F56 1F50 0342
-1F57 1F51 0342
-1F59 03A5 0314
-1F5B 1F59 0300
-1F5D 1F59 0301
-1F5F 1F59 0342
-1F60 03C9 0313
-1F61 03C9 0314
-1F62 1F60 0300
-1F63 1F61 0300
-1F64 1F60 0301
-1F65 1F61 0301
-1F66 1F60 0342
-1F67 1F61 0342
-1F68 03A9 0313
-1F69 03A9 0314
-1F6A 1F68 0300
-1F6B 1F69 0300
-1F6C 1F68 0301
-1F6D 1F69 0301
-1F6E 1F68 0342
-1F6F 1F69 0342
-1F70 03B1 0300
-1F71 03AC
-1F72 03B5 0300
-1F73 03AD
-1F74 03B7 0300
-1F75 03AE
-1F76 03B9 0300
-1F77 03AF
-1F78 03BF 0300
-1F79 03CC
-1F7A 03C5 0300
-1F7B 03CD
-1F7C 03C9 0300
-1F7D 03CE
-1F80 1F00 0345
-1F81 1F01 0345
-1F82 1F02 0345
-1F83 1F03 0345
-1F84 1F04 0345
-1F85 1F05 0345
-1F86 1F06 0345
-1F87 1F07 0345
-1F88 1F08 0345
-1F89 1F09 0345
-1F8A 1F0A 0345
-1F8B 1F0B 0345
-1F8C 1F0C 0345
-1F8D 1F0D 0345
-1F8E 1F0E 0345
-1F8F 1F0F 0345
-1F90 1F20 0345
-1F91 1F21 0345
-1F92 1F22 0345
-1F93 1F23 0345
-1F94 1F24 0345
-1F95 1F25 0345
-1F96 1F26 0345
-1F97 1F27 0345
-1F98 1F28 0345
-1F99 1F29 0345
-1F9A 1F2A 0345
-1F9B 1F2B 0345
-1F9C 1F2C 0345
-1F9D 1F2D 0345
-1F9E 1F2E 0345
-1F9F 1F2F 0345
-1FA0 1F60 0345
-1FA1 1F61 0345
-1FA2 1F62 0345
-1FA3 1F63 0345
-1FA4 1F64 0345
-1FA5 1F65 0345
-1FA6 1F66 0345
-1FA7 1F67 0345
-1FA8 1F68 0345
-1FA9 1F69 0345
-1FAA 1F6A 0345
-1FAB 1F6B 0345
-1FAC 1F6C 0345
-1FAD 1F6D 0345
-1FAE 1F6E 0345
-1FAF 1F6F 0345
-1FB0 03B1 0306
-1FB1 03B1 0304
-1FB2 1F70 0345
-1FB3 03B1 0345
-1FB4 03AC 0345
-1FB6 03B1 0342
-1FB7 1FB6 0345
-1FB8 0391 0306
-1FB9 0391 0304
-1FBA 0391 0300
-1FBB 0386
-1FBC 0391 0345
-1FBD <compat> 0020 0313
-1FBE 03B9
-1FBF <compat> 0020 0313
-1FC0 <compat> 0020 0342
-1FC1 00A8 0342
-1FC2 1F74 0345
-1FC3 03B7 0345
-1FC4 03AE 0345
-1FC6 03B7 0342
-1FC7 1FC6 0345
-1FC8 0395 0300
-1FC9 0388
-1FCA 0397 0300
-1FCB 0389
-1FCC 0397 0345
-1FCD 1FBF 0300
-1FCE 1FBF 0301
-1FCF 1FBF 0342
-1FD0 03B9 0306
-1FD1 03B9 0304
-1FD2 03CA 0300
-1FD3 0390
-1FD6 03B9 0342
-1FD7 03CA 0342
-1FD8 0399 0306
-1FD9 0399 0304
-1FDA 0399 0300
-1FDB 038A
-1FDD 1FFE 0300
-1FDE 1FFE 0301
-1FDF 1FFE 0342
-1FE0 03C5 0306
-1FE1 03C5 0304
-1FE2 03CB 0300
-1FE3 03B0
-1FE4 03C1 0313
-1FE5 03C1 0314
-1FE6 03C5 0342
-1FE7 03CB 0342
-1FE8 03A5 0306
-1FE9 03A5 0304
-1FEA 03A5 0300
-1FEB 038E
-1FEC 03A1 0314
-1FED 00A8 0300
-1FEE 0385
-1FEF 0060
-1FF2 1F7C 0345
-1FF3 03C9 0345
-1FF4 03CE 0345
-1FF6 03C9 0342
-1FF7 1FF6 0345
-1FF8 039F 0300
-1FF9 038C
-1FFA 03A9 0300
-1FFB 038F
-1FFC 03A9 0345
-1FFD 00B4
-1FFE <compat> 0020 0314
-2000 2002
-2001 2003
-2002 2006 <compat> 0020
-2007 <noBreak> 0020
-2008 200A <compat> 0020
-2011 <noBreak> 2010
-2017 <compat> 0020 0333
-2024 <compat> 002E
-2025 <compat> 002E 002E
-2026 <compat> 002E 002E 002E
-202F <noBreak> 0020
-2033 <compat> 2032 2032
-2034 <compat> 2032 2032 2032
-2036 <compat> 2035 2035
-2037 <compat> 2035 2035 2035
-203C <compat> 0021 0021
-203E <compat> 0020 0305
-2047 <compat> 003F 003F
-2048 <compat> 003F 0021
-2049 <compat> 0021 003F
-2057 <compat> 2032 2032 2032 2032
-205F <compat> 0020
-2070 <super> 0030
-2071 <super> 0069
-2074 <super> 0034
-2075 <super> 0035
-2076 <super> 0036
-2077 <super> 0037
-2078 <super> 0038
-2079 <super> 0039
-207A <super> 002B
-207B <super> 2212
-207C <super> 003D
-207D <super> 0028
-207E <super> 0029
-207F <super> 006E
-2080 <sub> 0030
-2081 <sub> 0031
-2082 <sub> 0032
-2083 <sub> 0033
-2084 <sub> 0034
-2085 <sub> 0035
-2086 <sub> 0036
-2087 <sub> 0037
-2088 <sub> 0038
-2089 <sub> 0039
-208A <sub> 002B
-208B <sub> 2212
-208C <sub> 003D
-208D <sub> 0028
-208E <sub> 0029
-20A8 <compat> 0052 0073
-2100 <compat> 0061 002F 0063
-2101 <compat> 0061 002F 0073
-2102 <font> 0043
-2103 <compat> 00B0 0043
-2105 <compat> 0063 002F 006F
-2106 <compat> 0063 002F 0075
-2107 <compat> 0190
-2109 <compat> 00B0 0046
-210A <font> 0067
-210B 210D <font> 0048
-210E <font> 0068
-210F <font> 0127
-2110 2111 <font> 0049
-2112 <font> 004C
-2113 <font> 006C
-2115 <font> 004E
-2116 <compat> 004E 006F
-2119 <font> 0050
-211A <font> 0051
-211B 211D <font> 0052
-2120 <super> 0053 004D
-2121 <compat> 0054 0045 004C
-2122 <super> 0054 004D
-2124 <font> 005A
-2126 03A9
-2128 <font> 005A
-212A 004B
-212B 00C5
-212C <font> 0042
-212D <font> 0043
-212F <font> 0065
-2130 <font> 0045
-2131 <font> 0046
-2133 <font> 004D
-2134 <font> 006F
-2135 <compat> 05D0
-2136 <compat> 05D1
-2137 <compat> 05D2
-2138 <compat> 05D3
-2139 <font> 0069
-213D <font> 03B3
-213E <font> 0393
-213F <font> 03A0
-2140 <font> 2211
-2145 <font> 0044
-2146 <font> 0064
-2147 <font> 0065
-2148 <font> 0069
-2149 <font> 006A
-2153 <fraction> 0031 2044 0033
-2154 <fraction> 0032 2044 0033
-2155 <fraction> 0031 2044 0035
-2156 <fraction> 0032 2044 0035
-2157 <fraction> 0033 2044 0035
-2158 <fraction> 0034 2044 0035
-2159 <fraction> 0031 2044 0036
-215A <fraction> 0035 2044 0036
-215B <fraction> 0031 2044 0038
-215C <fraction> 0033 2044 0038
-215D <fraction> 0035 2044 0038
-215E <fraction> 0037 2044 0038
-215F <fraction> 0031 2044
-2160 <compat> 0049
-2161 <compat> 0049 0049
-2162 <compat> 0049 0049 0049
-2163 <compat> 0049 0056
-2164 <compat> 0056
-2165 <compat> 0056 0049
-2166 <compat> 0056 0049 0049
-2167 <compat> 0056 0049 0049 0049
-2168 <compat> 0049 0058
-2169 <compat> 0058
-216A <compat> 0058 0049
-216B <compat> 0058 0049 0049
-216C <compat> 004C
-216D <compat> 0043
-216E <compat> 0044
-216F <compat> 004D
-2170 <compat> 0069
-2171 <compat> 0069 0069
-2172 <compat> 0069 0069 0069
-2173 <compat> 0069 0076
-2174 <compat> 0076
-2175 <compat> 0076 0069
-2176 <compat> 0076 0069 0069
-2177 <compat> 0076 0069 0069 0069
-2178 <compat> 0069 0078
-2179 <compat> 0078
-217A <compat> 0078 0069
-217B <compat> 0078 0069 0069
-217C <compat> 006C
-217D <compat> 0063
-217E <compat> 0064
-217F <compat> 006D
-219A 2190 0338
-219B 2192 0338
-21AE 2194 0338
-21CD 21D0 0338
-21CE 21D4 0338
-21CF 21D2 0338
-2204 2203 0338
-2209 2208 0338
-220C 220B 0338
-2224 2223 0338
-2226 2225 0338
-222C <compat> 222B 222B
-222D <compat> 222B 222B 222B
-222F <compat> 222E 222E
-2230 <compat> 222E 222E 222E
-2241 223C 0338
-2244 2243 0338
-2247 2245 0338
-2249 2248 0338
-2260 003D 0338
-2262 2261 0338
-226D 224D 0338
-226E 003C 0338
-226F 003E 0338
-2270 2264 0338
-2271 2265 0338
-2274 2272 0338
-2275 2273 0338
-2278 2276 0338
-2279 2277 0338
-2280 227A 0338
-2281 227B 0338
-2284 2282 0338
-2285 2283 0338
-2288 2286 0338
-2289 2287 0338
-22AC 22A2 0338
-22AD 22A8 0338
-22AE 22A9 0338
-22AF 22AB 0338
-22E0 227C 0338
-22E1 227D 0338
-22E2 2291 0338
-22E3 2292 0338
-22EA 22B2 0338
-22EB 22B3 0338
-22EC 22B4 0338
-22ED 22B5 0338
-2329 3008
-232A 3009
-2460 <circle> 0031
-2461 <circle> 0032
-2462 <circle> 0033
-2463 <circle> 0034
-2464 <circle> 0035
-2465 <circle> 0036
-2466 <circle> 0037
-2467 <circle> 0038
-2468 <circle> 0039
-2469 <circle> 0031 0030
-246A <circle> 0031 0031
-246B <circle> 0031 0032
-246C <circle> 0031 0033
-246D <circle> 0031 0034
-246E <circle> 0031 0035
-246F <circle> 0031 0036
-2470 <circle> 0031 0037
-2471 <circle> 0031 0038
-2472 <circle> 0031 0039
-2473 <circle> 0032 0030
-2474 <compat> 0028 0031 0029
-2475 <compat> 0028 0032 0029
-2476 <compat> 0028 0033 0029
-2477 <compat> 0028 0034 0029
-2478 <compat> 0028 0035 0029
-2479 <compat> 0028 0036 0029
-247A <compat> 0028 0037 0029
-247B <compat> 0028 0038 0029
-247C <compat> 0028 0039 0029
-247D <compat> 0028 0031 0030 0029
-247E <compat> 0028 0031 0031 0029
-247F <compat> 0028 0031 0032 0029
-2480 <compat> 0028 0031 0033 0029
-2481 <compat> 0028 0031 0034 0029
-2482 <compat> 0028 0031 0035 0029
-2483 <compat> 0028 0031 0036 0029
-2484 <compat> 0028 0031 0037 0029
-2485 <compat> 0028 0031 0038 0029
-2486 <compat> 0028 0031 0039 0029
-2487 <compat> 0028 0032 0030 0029
-2488 <compat> 0031 002E
-2489 <compat> 0032 002E
-248A <compat> 0033 002E
-248B <compat> 0034 002E
-248C <compat> 0035 002E
-248D <compat> 0036 002E
-248E <compat> 0037 002E
-248F <compat> 0038 002E
-2490 <compat> 0039 002E
-2491 <compat> 0031 0030 002E
-2492 <compat> 0031 0031 002E
-2493 <compat> 0031 0032 002E
-2494 <compat> 0031 0033 002E
-2495 <compat> 0031 0034 002E
-2496 <compat> 0031 0035 002E
-2497 <compat> 0031 0036 002E
-2498 <compat> 0031 0037 002E
-2499 <compat> 0031 0038 002E
-249A <compat> 0031 0039 002E
-249B <compat> 0032 0030 002E
-249C <compat> 0028 0061 0029
-249D <compat> 0028 0062 0029
-249E <compat> 0028 0063 0029
-249F <compat> 0028 0064 0029
-24A0 <compat> 0028 0065 0029
-24A1 <compat> 0028 0066 0029
-24A2 <compat> 0028 0067 0029
-24A3 <compat> 0028 0068 0029
-24A4 <compat> 0028 0069 0029
-24A5 <compat> 0028 006A 0029
-24A6 <compat> 0028 006B 0029
-24A7 <compat> 0028 006C 0029
-24A8 <compat> 0028 006D 0029
-24A9 <compat> 0028 006E 0029
-24AA <compat> 0028 006F 0029
-24AB <compat> 0028 0070 0029
-24AC <compat> 0028 0071 0029
-24AD <compat> 0028 0072 0029
-24AE <compat> 0028 0073 0029
-24AF <compat> 0028 0074 0029
-24B0 <compat> 0028 0075 0029
-24B1 <compat> 0028 0076 0029
-24B2 <compat> 0028 0077 0029
-24B3 <compat> 0028 0078 0029
-24B4 <compat> 0028 0079 0029
-24B5 <compat> 0028 007A 0029
-24B6 <circle> 0041
-24B7 <circle> 0042
-24B8 <circle> 0043
-24B9 <circle> 0044
-24BA <circle> 0045
-24BB <circle> 0046
-24BC <circle> 0047
-24BD <circle> 0048
-24BE <circle> 0049
-24BF <circle> 004A
-24C0 <circle> 004B
-24C1 <circle> 004C
-24C2 <circle> 004D
-24C3 <circle> 004E
-24C4 <circle> 004F
-24C5 <circle> 0050
-24C6 <circle> 0051
-24C7 <circle> 0052
-24C8 <circle> 0053
-24C9 <circle> 0054
-24CA <circle> 0055
-24CB <circle> 0056
-24CC <circle> 0057
-24CD <circle> 0058
-24CE <circle> 0059
-24CF <circle> 005A
-24D0 <circle> 0061
-24D1 <circle> 0062
-24D2 <circle> 0063
-24D3 <circle> 0064
-24D4 <circle> 0065
-24D5 <circle> 0066
-24D6 <circle> 0067
-24D7 <circle> 0068
-24D8 <circle> 0069
-24D9 <circle> 006A
-24DA <circle> 006B
-24DB <circle> 006C
-24DC <circle> 006D
-24DD <circle> 006E
-24DE <circle> 006F
-24DF <circle> 0070
-24E0 <circle> 0071
-24E1 <circle> 0072
-24E2 <circle> 0073
-24E3 <circle> 0074
-24E4 <circle> 0075
-24E5 <circle> 0076
-24E6 <circle> 0077
-24E7 <circle> 0078
-24E8 <circle> 0079
-24E9 <circle> 007A
-24EA <circle> 0030
-2A0C <compat> 222B 222B 222B 222B
-2A74 <compat> 003A 003A 003D
-2A75 <compat> 003D 003D
-2A76 <compat> 003D 003D 003D
-2ADC 2ADD 0338
-2E9F <compat> 6BCD
-2EF3 <compat> 9F9F
-2F00 <compat> 4E00
-2F01 <compat> 4E28
-2F02 <compat> 4E36
-2F03 <compat> 4E3F
-2F04 <compat> 4E59
-2F05 <compat> 4E85
-2F06 <compat> 4E8C
-2F07 <compat> 4EA0
-2F08 <compat> 4EBA
-2F09 <compat> 513F
-2F0A <compat> 5165
-2F0B <compat> 516B
-2F0C <compat> 5182
-2F0D <compat> 5196
-2F0E <compat> 51AB
-2F0F <compat> 51E0
-2F10 <compat> 51F5
-2F11 <compat> 5200
-2F12 <compat> 529B
-2F13 <compat> 52F9
-2F14 <compat> 5315
-2F15 <compat> 531A
-2F16 <compat> 5338
-2F17 <compat> 5341
-2F18 <compat> 535C
-2F19 <compat> 5369
-2F1A <compat> 5382
-2F1B <compat> 53B6
-2F1C <compat> 53C8
-2F1D <compat> 53E3
-2F1E <compat> 56D7
-2F1F <compat> 571F
-2F20 <compat> 58EB
-2F21 <compat> 5902
-2F22 <compat> 590A
-2F23 <compat> 5915
-2F24 <compat> 5927
-2F25 <compat> 5973
-2F26 <compat> 5B50
-2F27 <compat> 5B80
-2F28 <compat> 5BF8
-2F29 <compat> 5C0F
-2F2A <compat> 5C22
-2F2B <compat> 5C38
-2F2C <compat> 5C6E
-2F2D <compat> 5C71
-2F2E <compat> 5DDB
-2F2F <compat> 5DE5
-2F30 <compat> 5DF1
-2F31 <compat> 5DFE
-2F32 <compat> 5E72
-2F33 <compat> 5E7A
-2F34 <compat> 5E7F
-2F35 <compat> 5EF4
-2F36 <compat> 5EFE
-2F37 <compat> 5F0B
-2F38 <compat> 5F13
-2F39 <compat> 5F50
-2F3A <compat> 5F61
-2F3B <compat> 5F73
-2F3C <compat> 5FC3
-2F3D <compat> 6208
-2F3E <compat> 6236
-2F3F <compat> 624B
-2F40 <compat> 652F
-2F41 <compat> 6534
-2F42 <compat> 6587
-2F43 <compat> 6597
-2F44 <compat> 65A4
-2F45 <compat> 65B9
-2F46 <compat> 65E0
-2F47 <compat> 65E5
-2F48 <compat> 66F0
-2F49 <compat> 6708
-2F4A <compat> 6728
-2F4B <compat> 6B20
-2F4C <compat> 6B62
-2F4D <compat> 6B79
-2F4E <compat> 6BB3
-2F4F <compat> 6BCB
-2F50 <compat> 6BD4
-2F51 <compat> 6BDB
-2F52 <compat> 6C0F
-2F53 <compat> 6C14
-2F54 <compat> 6C34
-2F55 <compat> 706B
-2F56 <compat> 722A
-2F57 <compat> 7236
-2F58 <compat> 723B
-2F59 <compat> 723F
-2F5A <compat> 7247
-2F5B <compat> 7259
-2F5C <compat> 725B
-2F5D <compat> 72AC
-2F5E <compat> 7384
-2F5F <compat> 7389
-2F60 <compat> 74DC
-2F61 <compat> 74E6
-2F62 <compat> 7518
-2F63 <compat> 751F
-2F64 <compat> 7528
-2F65 <compat> 7530
-2F66 <compat> 758B
-2F67 <compat> 7592
-2F68 <compat> 7676
-2F69 <compat> 767D
-2F6A <compat> 76AE
-2F6B <compat> 76BF
-2F6C <compat> 76EE
-2F6D <compat> 77DB
-2F6E <compat> 77E2
-2F6F <compat> 77F3
-2F70 <compat> 793A
-2F71 <compat> 79B8
-2F72 <compat> 79BE
-2F73 <compat> 7A74
-2F74 <compat> 7ACB
-2F75 <compat> 7AF9
-2F76 <compat> 7C73
-2F77 <compat> 7CF8
-2F78 <compat> 7F36
-2F79 <compat> 7F51
-2F7A <compat> 7F8A
-2F7B <compat> 7FBD
-2F7C <compat> 8001
-2F7D <compat> 800C
-2F7E <compat> 8012
-2F7F <compat> 8033
-2F80 <compat> 807F
-2F81 <compat> 8089
-2F82 <compat> 81E3
-2F83 <compat> 81EA
-2F84 <compat> 81F3
-2F85 <compat> 81FC
-2F86 <compat> 820C
-2F87 <compat> 821B
-2F88 <compat> 821F
-2F89 <compat> 826E
-2F8A <compat> 8272
-2F8B <compat> 8278
-2F8C <compat> 864D
-2F8D <compat> 866B
-2F8E <compat> 8840
-2F8F <compat> 884C
-2F90 <compat> 8863
-2F91 <compat> 897E
-2F92 <compat> 898B
-2F93 <compat> 89D2
-2F94 <compat> 8A00
-2F95 <compat> 8C37
-2F96 <compat> 8C46
-2F97 <compat> 8C55
-2F98 <compat> 8C78
-2F99 <compat> 8C9D
-2F9A <compat> 8D64
-2F9B <compat> 8D70
-2F9C <compat> 8DB3
-2F9D <compat> 8EAB
-2F9E <compat> 8ECA
-2F9F <compat> 8F9B
-2FA0 <compat> 8FB0
-2FA1 <compat> 8FB5
-2FA2 <compat> 9091
-2FA3 <compat> 9149
-2FA4 <compat> 91C6
-2FA5 <compat> 91CC
-2FA6 <compat> 91D1
-2FA7 <compat> 9577
-2FA8 <compat> 9580
-2FA9 <compat> 961C
-2FAA <compat> 96B6
-2FAB <compat> 96B9
-2FAC <compat> 96E8
-2FAD <compat> 9751
-2FAE <compat> 975E
-2FAF <compat> 9762
-2FB0 <compat> 9769
-2FB1 <compat> 97CB
-2FB2 <compat> 97ED
-2FB3 <compat> 97F3
-2FB4 <compat> 9801
-2FB5 <compat> 98A8
-2FB6 <compat> 98DB
-2FB7 <compat> 98DF
-2FB8 <compat> 9996
-2FB9 <compat> 9999
-2FBA <compat> 99AC
-2FBB <compat> 9AA8
-2FBC <compat> 9AD8
-2FBD <compat> 9ADF
-2FBE <compat> 9B25
-2FBF <compat> 9B2F
-2FC0 <compat> 9B32
-2FC1 <compat> 9B3C
-2FC2 <compat> 9B5A
-2FC3 <compat> 9CE5
-2FC4 <compat> 9E75
-2FC5 <compat> 9E7F
-2FC6 <compat> 9EA5
-2FC7 <compat> 9EBB
-2FC8 <compat> 9EC3
-2FC9 <compat> 9ECD
-2FCA <compat> 9ED1
-2FCB <compat> 9EF9
-2FCC <compat> 9EFD
-2FCD <compat> 9F0E
-2FCE <compat> 9F13
-2FCF <compat> 9F20
-2FD0 <compat> 9F3B
-2FD1 <compat> 9F4A
-2FD2 <compat> 9F52
-2FD3 <compat> 9F8D
-2FD4 <compat> 9F9C
-2FD5 <compat> 9FA0
-3000 <wide> 0020
-3036 <compat> 3012
-3038 <compat> 5341
-3039 <compat> 5344
-303A <compat> 5345
-304C 304B 3099
-304E 304D 3099
-3050 304F 3099
-3052 3051 3099
-3054 3053 3099
-3056 3055 3099
-3058 3057 3099
-305A 3059 3099
-305C 305B 3099
-305E 305D 3099
-3060 305F 3099
-3062 3061 3099
-3065 3064 3099
-3067 3066 3099
-3069 3068 3099
-3070 306F 3099
-3071 306F 309A
-3073 3072 3099
-3074 3072 309A
-3076 3075 3099
-3077 3075 309A
-3079 3078 3099
-307A 3078 309A
-307C 307B 3099
-307D 307B 309A
-3094 3046 3099
-309B <compat> 0020 3099
-309C <compat> 0020 309A
-309E 309D 3099
-309F <vertical> 3088 308A
-30AC 30AB 3099
-30AE 30AD 3099
-30B0 30AF 3099
-30B2 30B1 3099
-30B4 30B3 3099
-30B6 30B5 3099
-30B8 30B7 3099
-30BA 30B9 3099
-30BC 30BB 3099
-30BE 30BD 3099
-30C0 30BF 3099
-30C2 30C1 3099
-30C5 30C4 3099
-30C7 30C6 3099
-30C9 30C8 3099
-30D0 30CF 3099
-30D1 30CF 309A
-30D3 30D2 3099
-30D4 30D2 309A
-30D6 30D5 3099
-30D7 30D5 309A
-30D9 30D8 3099
-30DA 30D8 309A
-30DC 30DB 3099
-30DD 30DB 309A
-30F4 30A6 3099
-30F7 30EF 3099
-30F8 30F0 3099
-30F9 30F1 3099
-30FA 30F2 3099
-30FE 30FD 3099
-30FF <vertical> 30B3 30C8
-3131 <compat> 1100
-3132 <compat> 1101
-3133 <compat> 11AA
-3134 <compat> 1102
-3135 <compat> 11AC
-3136 <compat> 11AD
-3137 <compat> 1103
-3138 <compat> 1104
-3139 <compat> 1105
-313A <compat> 11B0
-313B <compat> 11B1
-313C <compat> 11B2
-313D <compat> 11B3
-313E <compat> 11B4
-313F <compat> 11B5
-3140 <compat> 111A
-3141 <compat> 1106
-3142 <compat> 1107
-3143 <compat> 1108
-3144 <compat> 1121
-3145 <compat> 1109
-3146 <compat> 110A
-3147 <compat> 110B
-3148 <compat> 110C
-3149 <compat> 110D
-314A <compat> 110E
-314B <compat> 110F
-314C <compat> 1110
-314D <compat> 1111
-314E <compat> 1112
-314F <compat> 1161
-3150 <compat> 1162
-3151 <compat> 1163
-3152 <compat> 1164
-3153 <compat> 1165
-3154 <compat> 1166
-3155 <compat> 1167
-3156 <compat> 1168
-3157 <compat> 1169
-3158 <compat> 116A
-3159 <compat> 116B
-315A <compat> 116C
-315B <compat> 116D
-315C <compat> 116E
-315D <compat> 116F
-315E <compat> 1170
-315F <compat> 1171
-3160 <compat> 1172
-3161 <compat> 1173
-3162 <compat> 1174
-3163 <compat> 1175
-3164 <compat> 1160
-3165 <compat> 1114
-3166 <compat> 1115
-3167 <compat> 11C7
-3168 <compat> 11C8
-3169 <compat> 11CC
-316A <compat> 11CE
-316B <compat> 11D3
-316C <compat> 11D7
-316D <compat> 11D9
-316E <compat> 111C
-316F <compat> 11DD
-3170 <compat> 11DF
-3171 <compat> 111D
-3172 <compat> 111E
-3173 <compat> 1120
-3174 <compat> 1122
-3175 <compat> 1123
-3176 <compat> 1127
-3177 <compat> 1129
-3178 <compat> 112B
-3179 <compat> 112C
-317A <compat> 112D
-317B <compat> 112E
-317C <compat> 112F
-317D <compat> 1132
-317E <compat> 1136
-317F <compat> 1140
-3180 <compat> 1147
-3181 <compat> 114C
-3182 <compat> 11F1
-3183 <compat> 11F2
-3184 <compat> 1157
-3185 <compat> 1158
-3186 <compat> 1159
-3187 <compat> 1184
-3188 <compat> 1185
-3189 <compat> 1188
-318A <compat> 1191
-318B <compat> 1192
-318C <compat> 1194
-318D <compat> 119E
-318E <compat> 11A1
-3192 <super> 4E00
-3193 <super> 4E8C
-3194 <super> 4E09
-3195 <super> 56DB
-3196 <super> 4E0A
-3197 <super> 4E2D
-3198 <super> 4E0B
-3199 <super> 7532
-319A <super> 4E59
-319B <super> 4E19
-319C <super> 4E01
-319D <super> 5929
-319E <super> 5730
-319F <super> 4EBA
-3200 <compat> 0028 1100 0029
-3201 <compat> 0028 1102 0029
-3202 <compat> 0028 1103 0029
-3203 <compat> 0028 1105 0029
-3204 <compat> 0028 1106 0029
-3205 <compat> 0028 1107 0029
-3206 <compat> 0028 1109 0029
-3207 <compat> 0028 110B 0029
-3208 <compat> 0028 110C 0029
-3209 <compat> 0028 110E 0029
-320A <compat> 0028 110F 0029
-320B <compat> 0028 1110 0029
-320C <compat> 0028 1111 0029
-320D <compat> 0028 1112 0029
-320E <compat> 0028 1100 1161 0029
-320F <compat> 0028 1102 1161 0029
-3210 <compat> 0028 1103 1161 0029
-3211 <compat> 0028 1105 1161 0029
-3212 <compat> 0028 1106 1161 0029
-3213 <compat> 0028 1107 1161 0029
-3214 <compat> 0028 1109 1161 0029
-3215 <compat> 0028 110B 1161 0029
-3216 <compat> 0028 110C 1161 0029
-3217 <compat> 0028 110E 1161 0029
-3218 <compat> 0028 110F 1161 0029
-3219 <compat> 0028 1110 1161 0029
-321A <compat> 0028 1111 1161 0029
-321B <compat> 0028 1112 1161 0029
-321C <compat> 0028 110C 116E 0029
-3220 <compat> 0028 4E00 0029
-3221 <compat> 0028 4E8C 0029
-3222 <compat> 0028 4E09 0029
-3223 <compat> 0028 56DB 0029
-3224 <compat> 0028 4E94 0029
-3225 <compat> 0028 516D 0029
-3226 <compat> 0028 4E03 0029
-3227 <compat> 0028 516B 0029
-3228 <compat> 0028 4E5D 0029
-3229 <compat> 0028 5341 0029
-322A <compat> 0028 6708 0029
-322B <compat> 0028 706B 0029
-322C <compat> 0028 6C34 0029
-322D <compat> 0028 6728 0029
-322E <compat> 0028 91D1 0029
-322F <compat> 0028 571F 0029
-3230 <compat> 0028 65E5 0029
-3231 <compat> 0028 682A 0029
-3232 <compat> 0028 6709 0029
-3233 <compat> 0028 793E 0029
-3234 <compat> 0028 540D 0029
-3235 <compat> 0028 7279 0029
-3236 <compat> 0028 8CA1 0029
-3237 <compat> 0028 795D 0029
-3238 <compat> 0028 52B4 0029
-3239 <compat> 0028 4EE3 0029
-323A <compat> 0028 547C 0029
-323B <compat> 0028 5B66 0029
-323C <compat> 0028 76E3 0029
-323D <compat> 0028 4F01 0029
-323E <compat> 0028 8CC7 0029
-323F <compat> 0028 5354 0029
-3240 <compat> 0028 796D 0029
-3241 <compat> 0028 4F11 0029
-3242 <compat> 0028 81EA 0029
-3243 <compat> 0028 81F3 0029
-3251 <circle> 0032 0031
-3252 <circle> 0032 0032
-3253 <circle> 0032 0033
-3254 <circle> 0032 0034
-3255 <circle> 0032 0035
-3256 <circle> 0032 0036
-3257 <circle> 0032 0037
-3258 <circle> 0032 0038
-3259 <circle> 0032 0039
-325A <circle> 0033 0030
-325B <circle> 0033 0031
-325C <circle> 0033 0032
-325D <circle> 0033 0033
-325E <circle> 0033 0034
-325F <circle> 0033 0035
-3260 <circle> 1100
-3261 <circle> 1102
-3262 <circle> 1103
-3263 <circle> 1105
-3264 <circle> 1106
-3265 <circle> 1107
-3266 <circle> 1109
-3267 <circle> 110B
-3268 <circle> 110C
-3269 <circle> 110E
-326A <circle> 110F
-326B <circle> 1110
-326C <circle> 1111
-326D <circle> 1112
-326E <circle> 1100 1161
-326F <circle> 1102 1161
-3270 <circle> 1103 1161
-3271 <circle> 1105 1161
-3272 <circle> 1106 1161
-3273 <circle> 1107 1161
-3274 <circle> 1109 1161
-3275 <circle> 110B 1161
-3276 <circle> 110C 1161
-3277 <circle> 110E 1161
-3278 <circle> 110F 1161
-3279 <circle> 1110 1161
-327A <circle> 1111 1161
-327B <circle> 1112 1161
-3280 <circle> 4E00
-3281 <circle> 4E8C
-3282 <circle> 4E09
-3283 <circle> 56DB
-3284 <circle> 4E94
-3285 <circle> 516D
-3286 <circle> 4E03
-3287 <circle> 516B
-3288 <circle> 4E5D
-3289 <circle> 5341
-328A <circle> 6708
-328B <circle> 706B
-328C <circle> 6C34
-328D <circle> 6728
-328E <circle> 91D1
-328F <circle> 571F
-3290 <circle> 65E5
-3291 <circle> 682A
-3292 <circle> 6709
-3293 <circle> 793E
-3294 <circle> 540D
-3295 <circle> 7279
-3296 <circle> 8CA1
-3297 <circle> 795D
-3298 <circle> 52B4
-3299 <circle> 79D8
-329A <circle> 7537
-329B <circle> 5973
-329C <circle> 9069
-329D <circle> 512A
-329E <circle> 5370
-329F <circle> 6CE8
-32A0 <circle> 9805
-32A1 <circle> 4F11
-32A2 <circle> 5199
-32A3 <circle> 6B63
-32A4 <circle> 4E0A
-32A5 <circle> 4E2D
-32A6 <circle> 4E0B
-32A7 <circle> 5DE6
-32A8 <circle> 53F3
-32A9 <circle> 533B
-32AA <circle> 5B97
-32AB <circle> 5B66
-32AC <circle> 76E3
-32AD <circle> 4F01
-32AE <circle> 8CC7
-32AF <circle> 5354
-32B0 <circle> 591C
-32B1 <circle> 0033 0036
-32B2 <circle> 0033 0037
-32B3 <circle> 0033 0038
-32B4 <circle> 0033 0039
-32B5 <circle> 0034 0030
-32B6 <circle> 0034 0031
-32B7 <circle> 0034 0032
-32B8 <circle> 0034 0033
-32B9 <circle> 0034 0034
-32BA <circle> 0034 0035
-32BB <circle> 0034 0036
-32BC <circle> 0034 0037
-32BD <circle> 0034 0038
-32BE <circle> 0034 0039
-32BF <circle> 0035 0030
-32C0 <compat> 0031 6708
-32C1 <compat> 0032 6708
-32C2 <compat> 0033 6708
-32C3 <compat> 0034 6708
-32C4 <compat> 0035 6708
-32C5 <compat> 0036 6708
-32C6 <compat> 0037 6708
-32C7 <compat> 0038 6708
-32C8 <compat> 0039 6708
-32C9 <compat> 0031 0030 6708
-32CA <compat> 0031 0031 6708
-32CB <compat> 0031 0032 6708
-32D0 <circle> 30A2
-32D1 <circle> 30A4
-32D2 <circle> 30A6
-32D3 <circle> 30A8
-32D4 <circle> 30AA
-32D5 <circle> 30AB
-32D6 <circle> 30AD
-32D7 <circle> 30AF
-32D8 <circle> 30B1
-32D9 <circle> 30B3
-32DA <circle> 30B5
-32DB <circle> 30B7
-32DC <circle> 30B9
-32DD <circle> 30BB
-32DE <circle> 30BD
-32DF <circle> 30BF
-32E0 <circle> 30C1
-32E1 <circle> 30C4
-32E2 <circle> 30C6
-32E3 <circle> 30C8
-32E4 <circle> 30CA
-32E5 <circle> 30CB
-32E6 <circle> 30CC
-32E7 <circle> 30CD
-32E8 <circle> 30CE
-32E9 <circle> 30CF
-32EA <circle> 30D2
-32EB <circle> 30D5
-32EC <circle> 30D8
-32ED <circle> 30DB
-32EE <circle> 30DE
-32EF <circle> 30DF
-32F0 <circle> 30E0
-32F1 <circle> 30E1
-32F2 <circle> 30E2
-32F3 <circle> 30E4
-32F4 <circle> 30E6
-32F5 <circle> 30E8
-32F6 <circle> 30E9
-32F7 <circle> 30EA
-32F8 <circle> 30EB
-32F9 <circle> 30EC
-32FA <circle> 30ED
-32FB <circle> 30EF
-32FC <circle> 30F0
-32FD <circle> 30F1
-32FE <circle> 30F2
-3300 <square> 30A2 30D1 30FC 30C8
-3301 <square> 30A2 30EB 30D5 30A1
-3302 <square> 30A2 30F3 30DA 30A2
-3303 <square> 30A2 30FC 30EB
-3304 <square> 30A4 30CB 30F3 30B0
-3305 <square> 30A4 30F3 30C1
-3306 <square> 30A6 30A9 30F3
-3307 <square> 30A8 30B9 30AF 30FC 30C9
-3308 <square> 30A8 30FC 30AB 30FC
-3309 <square> 30AA 30F3 30B9
-330A <square> 30AA 30FC 30E0
-330B <square> 30AB 30A4 30EA
-330C <square> 30AB 30E9 30C3 30C8
-330D <square> 30AB 30ED 30EA 30FC
-330E <square> 30AC 30ED 30F3
-330F <square> 30AC 30F3 30DE
-3310 <square> 30AE 30AC
-3311 <square> 30AE 30CB 30FC
-3312 <square> 30AD 30E5 30EA 30FC
-3313 <square> 30AE 30EB 30C0 30FC
-3314 <square> 30AD 30ED
-3315 <square> 30AD 30ED 30B0 30E9 30E0
-3316 <square> 30AD 30ED 30E1 30FC 30C8 30EB
-3317 <square> 30AD 30ED 30EF 30C3 30C8
-3318 <square> 30B0 30E9 30E0
-3319 <square> 30B0 30E9 30E0 30C8 30F3
-331A <square> 30AF 30EB 30BC 30A4 30ED
-331B <square> 30AF 30ED 30FC 30CD
-331C <square> 30B1 30FC 30B9
-331D <square> 30B3 30EB 30CA
-331E <square> 30B3 30FC 30DD
-331F <square> 30B5 30A4 30AF 30EB
-3320 <square> 30B5 30F3 30C1 30FC 30E0
-3321 <square> 30B7 30EA 30F3 30B0
-3322 <square> 30BB 30F3 30C1
-3323 <square> 30BB 30F3 30C8
-3324 <square> 30C0 30FC 30B9
-3325 <square> 30C7 30B7
-3326 <square> 30C9 30EB
-3327 <square> 30C8 30F3
-3328 <square> 30CA 30CE
-3329 <square> 30CE 30C3 30C8
-332A <square> 30CF 30A4 30C4
-332B <square> 30D1 30FC 30BB 30F3 30C8
-332C <square> 30D1 30FC 30C4
-332D <square> 30D0 30FC 30EC 30EB
-332E <square> 30D4 30A2 30B9 30C8 30EB
-332F <square> 30D4 30AF 30EB
-3330 <square> 30D4 30B3
-3331 <square> 30D3 30EB
-3332 <square> 30D5 30A1 30E9 30C3 30C9
-3333 <square> 30D5 30A3 30FC 30C8
-3334 <square> 30D6 30C3 30B7 30A7 30EB
-3335 <square> 30D5 30E9 30F3
-3336 <square> 30D8 30AF 30BF 30FC 30EB
-3337 <square> 30DA 30BD
-3338 <square> 30DA 30CB 30D2
-3339 <square> 30D8 30EB 30C4
-333A <square> 30DA 30F3 30B9
-333B <square> 30DA 30FC 30B8
-333C <square> 30D9 30FC 30BF
-333D <square> 30DD 30A4 30F3 30C8
-333E <square> 30DC 30EB 30C8
-333F <square> 30DB 30F3
-3340 <square> 30DD 30F3 30C9
-3341 <square> 30DB 30FC 30EB
-3342 <square> 30DB 30FC 30F3
-3343 <square> 30DE 30A4 30AF 30ED
-3344 <square> 30DE 30A4 30EB
-3345 <square> 30DE 30C3 30CF
-3346 <square> 30DE 30EB 30AF
-3347 <square> 30DE 30F3 30B7 30E7 30F3
-3348 <square> 30DF 30AF 30ED 30F3
-3349 <square> 30DF 30EA
-334A <square> 30DF 30EA 30D0 30FC 30EB
-334B <square> 30E1 30AC
-334C <square> 30E1 30AC 30C8 30F3
-334D <square> 30E1 30FC 30C8 30EB
-334E <square> 30E4 30FC 30C9
-334F <square> 30E4 30FC 30EB
-3350 <square> 30E6 30A2 30F3
-3351 <square> 30EA 30C3 30C8 30EB
-3352 <square> 30EA 30E9
-3353 <square> 30EB 30D4 30FC
-3354 <square> 30EB 30FC 30D6 30EB
-3355 <square> 30EC 30E0
-3356 <square> 30EC 30F3 30C8 30B2 30F3
-3357 <square> 30EF 30C3 30C8
-3358 <compat> 0030 70B9
-3359 <compat> 0031 70B9
-335A <compat> 0032 70B9
-335B <compat> 0033 70B9
-335C <compat> 0034 70B9
-335D <compat> 0035 70B9
-335E <compat> 0036 70B9
-335F <compat> 0037 70B9
-3360 <compat> 0038 70B9
-3361 <compat> 0039 70B9
-3362 <compat> 0031 0030 70B9
-3363 <compat> 0031 0031 70B9
-3364 <compat> 0031 0032 70B9
-3365 <compat> 0031 0033 70B9
-3366 <compat> 0031 0034 70B9
-3367 <compat> 0031 0035 70B9
-3368 <compat> 0031 0036 70B9
-3369 <compat> 0031 0037 70B9
-336A <compat> 0031 0038 70B9
-336B <compat> 0031 0039 70B9
-336C <compat> 0032 0030 70B9
-336D <compat> 0032 0031 70B9
-336E <compat> 0032 0032 70B9
-336F <compat> 0032 0033 70B9
-3370 <compat> 0032 0034 70B9
-3371 <square> 0068 0050 0061
-3372 <square> 0064 0061
-3373 <square> 0041 0055
-3374 <square> 0062 0061 0072
-3375 <square> 006F 0056
-3376 <square> 0070 0063
-337B <square> 5E73 6210
-337C <square> 662D 548C
-337D <square> 5927 6B63
-337E <square> 660E 6CBB
-337F <square> 682A 5F0F 4F1A 793E
-3380 <square> 0070 0041
-3381 <square> 006E 0041
-3382 <square> 03BC 0041
-3383 <square> 006D 0041
-3384 <square> 006B 0041
-3385 <square> 004B 0042
-3386 <square> 004D 0042
-3387 <square> 0047 0042
-3388 <square> 0063 0061 006C
-3389 <square> 006B 0063 0061 006C
-338A <square> 0070 0046
-338B <square> 006E 0046
-338C <square> 03BC 0046
-338D <square> 03BC 0067
-338E <square> 006D 0067
-338F <square> 006B 0067
-3390 <square> 0048 007A
-3391 <square> 006B 0048 007A
-3392 <square> 004D 0048 007A
-3393 <square> 0047 0048 007A
-3394 <square> 0054 0048 007A
-3395 <square> 03BC 2113
-3396 <square> 006D 2113
-3397 <square> 0064 2113
-3398 <square> 006B 2113
-3399 <square> 0066 006D
-339A <square> 006E 006D
-339B <square> 03BC 006D
-339C <square> 006D 006D
-339D <square> 0063 006D
-339E <square> 006B 006D
-339F <square> 006D 006D 00B2
-33A0 <square> 0063 006D 00B2
-33A1 <square> 006D 00B2
-33A2 <square> 006B 006D 00B2
-33A3 <square> 006D 006D 00B3
-33A4 <square> 0063 006D 00B3
-33A5 <square> 006D 00B3
-33A6 <square> 006B 006D 00B3
-33A7 <square> 006D 2215 0073
-33A8 <square> 006D 2215 0073 00B2
-33A9 <square> 0050 0061
-33AA <square> 006B 0050 0061
-33AB <square> 004D 0050 0061
-33AC <square> 0047 0050 0061
-33AD <square> 0072 0061 0064
-33AE <square> 0072 0061 0064 2215 0073
-33AF <square> 0072 0061 0064 2215 0073 00B2
-33B0 <square> 0070 0073
-33B1 <square> 006E 0073
-33B2 <square> 03BC 0073
-33B3 <square> 006D 0073
-33B4 <square> 0070 0056
-33B5 <square> 006E 0056
-33B6 <square> 03BC 0056
-33B7 <square> 006D 0056
-33B8 <square> 006B 0056
-33B9 <square> 004D 0056
-33BA <square> 0070 0057
-33BB <square> 006E 0057
-33BC <square> 03BC 0057
-33BD <square> 006D 0057
-33BE <square> 006B 0057
-33BF <square> 004D 0057
-33C0 <square> 006B 03A9
-33C1 <square> 004D 03A9
-33C2 <square> 0061 002E 006D 002E
-33C3 <square> 0042 0071
-33C4 <square> 0063 0063
-33C5 <square> 0063 0064
-33C6 <square> 0043 2215 006B 0067
-33C7 <square> 0043 006F 002E
-33C8 <square> 0064 0042
-33C9 <square> 0047 0079
-33CA <square> 0068 0061
-33CB <square> 0048 0050
-33CC <square> 0069 006E
-33CD <square> 004B 004B
-33CE <square> 004B 004D
-33CF <square> 006B 0074
-33D0 <square> 006C 006D
-33D1 <square> 006C 006E
-33D2 <square> 006C 006F 0067
-33D3 <square> 006C 0078
-33D4 <square> 006D 0062
-33D5 <square> 006D 0069 006C
-33D6 <square> 006D 006F 006C
-33D7 <square> 0050 0048
-33D8 <square> 0070 002E 006D 002E
-33D9 <square> 0050 0050 004D
-33DA <square> 0050 0052
-33DB <square> 0073 0072
-33DC <square> 0053 0076
-33DD <square> 0057 0062
-33E0 <compat> 0031 65E5
-33E1 <compat> 0032 65E5
-33E2 <compat> 0033 65E5
-33E3 <compat> 0034 65E5
-33E4 <compat> 0035 65E5
-33E5 <compat> 0036 65E5
-33E6 <compat> 0037 65E5
-33E7 <compat> 0038 65E5
-33E8 <compat> 0039 65E5
-33E9 <compat> 0031 0030 65E5
-33EA <compat> 0031 0031 65E5
-33EB <compat> 0031 0032 65E5
-33EC <compat> 0031 0033 65E5
-33ED <compat> 0031 0034 65E5
-33EE <compat> 0031 0035 65E5
-33EF <compat> 0031 0036 65E5
-33F0 <compat> 0031 0037 65E5
-33F1 <compat> 0031 0038 65E5
-33F2 <compat> 0031 0039 65E5
-33F3 <compat> 0032 0030 65E5
-33F4 <compat> 0032 0031 65E5
-33F5 <compat> 0032 0032 65E5
-33F6 <compat> 0032 0033 65E5
-33F7 <compat> 0032 0034 65E5
-33F8 <compat> 0032 0035 65E5
-33F9 <compat> 0032 0036 65E5
-33FA <compat> 0032 0037 65E5
-33FB <compat> 0032 0038 65E5
-33FC <compat> 0032 0039 65E5
-33FD <compat> 0033 0030 65E5
-33FE <compat> 0033 0031 65E5
-F900 8C48
-F901 66F4
-F902 8ECA
-F903 8CC8
-F904 6ED1
-F905 4E32
-F906 53E5
-F907 F908 9F9C
-F909 5951
-F90A 91D1
-F90B 5587
-F90C 5948
-F90D 61F6
-F90E 7669
-F90F 7F85
-F910 863F
-F911 87BA
-F912 88F8
-F913 908F
-F914 6A02
-F915 6D1B
-F916 70D9
-F917 73DE
-F918 843D
-F919 916A
-F91A 99F1
-F91B 4E82
-F91C 5375
-F91D 6B04
-F91E 721B
-F91F 862D
-F920 9E1E
-F921 5D50
-F922 6FEB
-F923 85CD
-F924 8964
-F925 62C9
-F926 81D8
-F927 881F
-F928 5ECA
-F929 6717
-F92A 6D6A
-F92B 72FC
-F92C 90CE
-F92D 4F86
-F92E 51B7
-F92F 52DE
-F930 64C4
-F931 6AD3
-F932 7210
-F933 76E7
-F934 8001
-F935 8606
-F936 865C
-F937 8DEF
-F938 9732
-F939 9B6F
-F93A 9DFA
-F93B 788C
-F93C 797F
-F93D 7DA0
-F93E 83C9
-F93F 9304
-F940 9E7F
-F941 8AD6
-F942 58DF
-F943 5F04
-F944 7C60
-F945 807E
-F946 7262
-F947 78CA
-F948 8CC2
-F949 96F7
-F94A 58D8
-F94B 5C62
-F94C 6A13
-F94D 6DDA
-F94E 6F0F
-F94F 7D2F
-F950 7E37
-F951 964B
-F952 52D2
-F953 808B
-F954 51DC
-F955 51CC
-F956 7A1C
-F957 7DBE
-F958 83F1
-F959 9675
-F95A 8B80
-F95B 62CF
-F95C 6A02
-F95D 8AFE
-F95E 4E39
-F95F 5BE7
-F960 6012
-F961 7387
-F962 7570
-F963 5317
-F964 78FB
-F965 4FBF
-F966 5FA9
-F967 4E0D
-F968 6CCC
-F969 6578
-F96A 7D22
-F96B 53C3
-F96C 585E
-F96D 7701
-F96E 8449
-F96F 8AAA
-F970 6BBA
-F971 8FB0
-F972 6C88
-F973 62FE
-F974 82E5
-F975 63A0
-F976 7565
-F977 4EAE
-F978 5169
-F979 51C9
-F97A 6881
-F97B 7CE7
-F97C 826F
-F97D 8AD2
-F97E 91CF
-F97F 52F5
-F980 5442
-F981 5973
-F982 5EEC
-F983 65C5
-F984 6FFE
-F985 792A
-F986 95AD
-F987 9A6A
-F988 9E97
-F989 9ECE
-F98A 529B
-F98B 66C6
-F98C 6B77
-F98D 8F62
-F98E 5E74
-F98F 6190
-F990 6200
-F991 649A
-F992 6F23
-F993 7149
-F994 7489
-F995 79CA
-F996 7DF4
-F997 806F
-F998 8F26
-F999 84EE
-F99A 9023
-F99B 934A
-F99C 5217
-F99D 52A3
-F99E 54BD
-F99F 70C8
-F9A0 88C2
-F9A1 8AAA
-F9A2 5EC9
-F9A3 5FF5
-F9A4 637B
-F9A5 6BAE
-F9A6 7C3E
-F9A7 7375
-F9A8 4EE4
-F9A9 56F9
-F9AA 5BE7
-F9AB 5DBA
-F9AC 601C
-F9AD 73B2
-F9AE 7469
-F9AF 7F9A
-F9B0 8046
-F9B1 9234
-F9B2 96F6
-F9B3 9748
-F9B4 9818
-F9B5 4F8B
-F9B6 79AE
-F9B7 91B4
-F9B8 96B8
-F9B9 60E1
-F9BA 4E86
-F9BB 50DA
-F9BC 5BEE
-F9BD 5C3F
-F9BE 6599
-F9BF 6A02
-F9C0 71CE
-F9C1 7642
-F9C2 84FC
-F9C3 907C
-F9C4 9F8D
-F9C5 6688
-F9C6 962E
-F9C7 5289
-F9C8 677B
-F9C9 67F3
-F9CA 6D41
-F9CB 6E9C
-F9CC 7409
-F9CD 7559
-F9CE 786B
-F9CF 7D10
-F9D0 985E
-F9D1 516D
-F9D2 622E
-F9D3 9678
-F9D4 502B
-F9D5 5D19
-F9D6 6DEA
-F9D7 8F2A
-F9D8 5F8B
-F9D9 6144
-F9DA 6817
-F9DB 7387
-F9DC 9686
-F9DD 5229
-F9DE 540F
-F9DF 5C65
-F9E0 6613
-F9E1 674E
-F9E2 68A8
-F9E3 6CE5
-F9E4 7406
-F9E5 75E2
-F9E6 7F79
-F9E7 88CF
-F9E8 88E1
-F9E9 91CC
-F9EA 96E2
-F9EB 533F
-F9EC 6EBA
-F9ED 541D
-F9EE 71D0
-F9EF 7498
-F9F0 85FA
-F9F1 96A3
-F9F2 9C57
-F9F3 9E9F
-F9F4 6797
-F9F5 6DCB
-F9F6 81E8
-F9F7 7ACB
-F9F8 7B20
-F9F9 7C92
-F9FA 72C0
-F9FB 7099
-F9FC 8B58
-F9FD 4EC0
-F9FE 8336
-F9FF 523A
-FA00 5207
-FA01 5EA6
-FA02 62D3
-FA03 7CD6
-FA04 5B85
-FA05 6D1E
-FA06 66B4
-FA07 8F3B
-FA08 884C
-FA09 964D
-FA0A 898B
-FA0B 5ED3
-FA0C 5140
-FA0D 55C0
-FA10 585A
-FA12 6674
-FA15 51DE
-FA16 732A
-FA17 76CA
-FA18 793C
-FA19 795E
-FA1A 7965
-FA1B 798F
-FA1C 9756
-FA1D 7CBE
-FA1E 7FBD
-FA20 8612
-FA22 8AF8
-FA25 9038
-FA26 90FD
-FA2A 98EF
-FA2B 98FC
-FA2C 9928
-FA2D 9DB4
-FA30 4FAE
-FA31 50E7
-FA32 514D
-FA33 52C9
-FA34 52E4
-FA35 5351
-FA36 559D
-FA37 5606
-FA38 5668
-FA39 5840
-FA3A 58A8
-FA3B 5C64
-FA3C 5C6E
-FA3D 6094
-FA3E 6168
-FA3F 618E
-FA40 61F2
-FA41 654F
-FA42 65E2
-FA43 6691
-FA44 6885
-FA45 6D77
-FA46 6E1A
-FA47 6F22
-FA48 716E
-FA49 722B
-FA4A 7422
-FA4B 7891
-FA4C 793E
-FA4D 7949
-FA4E 7948
-FA4F 7950
-FA50 7956
-FA51 795D
-FA52 798D
-FA53 798E
-FA54 7A40
-FA55 7A81
-FA56 7BC0
-FA57 7DF4
-FA58 7E09
-FA59 7E41
-FA5A 7F72
-FA5B 8005
-FA5C 81ED
-FA5D FA5E 8279
-FA5F 8457
-FA60 8910
-FA61 8996
-FA62 8B01
-FA63 8B39
-FA64 8CD3
-FA65 8D08
-FA66 8FB6
-FA67 9038
-FA68 96E3
-FA69 97FF
-FA6A 983B
-FB00 <compat> 0066 0066
-FB01 <compat> 0066 0069
-FB02 <compat> 0066 006C
-FB03 <compat> 0066 0066 0069
-FB04 <compat> 0066 0066 006C
-FB05 <compat> 017F 0074
-FB06 <compat> 0073 0074
-FB13 <compat> 0574 0576
-FB14 <compat> 0574 0565
-FB15 <compat> 0574 056B
-FB16 <compat> 057E 0576
-FB17 <compat> 0574 056D
-FB1D 05D9 05B4
-FB1F 05F2 05B7
-FB20 <font> 05E2
-FB21 <font> 05D0
-FB22 <font> 05D3
-FB23 <font> 05D4
-FB24 <font> 05DB
-FB25 <font> 05DC
-FB26 <font> 05DD
-FB27 <font> 05E8
-FB28 <font> 05EA
-FB29 <font> 002B
-FB2A 05E9 05C1
-FB2B 05E9 05C2
-FB2C FB49 05C1
-FB2D FB49 05C2
-FB2E 05D0 05B7
-FB2F 05D0 05B8
-FB30 05D0 05BC
-FB31 05D1 05BC
-FB32 05D2 05BC
-FB33 05D3 05BC
-FB34 05D4 05BC
-FB35 05D5 05BC
-FB36 05D6 05BC
-FB38 05D8 05BC
-FB39 05D9 05BC
-FB3A 05DA 05BC
-FB3B 05DB 05BC
-FB3C 05DC 05BC
-FB3E 05DE 05BC
-FB40 05E0 05BC
-FB41 05E1 05BC
-FB43 05E3 05BC
-FB44 05E4 05BC
-FB46 05E6 05BC
-FB47 05E7 05BC
-FB48 05E8 05BC
-FB49 05E9 05BC
-FB4A 05EA 05BC
-FB4B 05D5 05B9
-FB4C 05D1 05BF
-FB4D 05DB 05BF
-FB4E 05E4 05BF
-FB4F <compat> 05D0 05DC
-FB50 <isolated> 0671
-FB51 <final> 0671
-FB52 <isolated> 067B
-FB53 <final> 067B
-FB54 <initial> 067B
-FB55 <medial> 067B
-FB56 <isolated> 067E
-FB57 <final> 067E
-FB58 <initial> 067E
-FB59 <medial> 067E
-FB5A <isolated> 0680
-FB5B <final> 0680
-FB5C <initial> 0680
-FB5D <medial> 0680
-FB5E <isolated> 067A
-FB5F <final> 067A
-FB60 <initial> 067A
-FB61 <medial> 067A
-FB62 <isolated> 067F
-FB63 <final> 067F
-FB64 <initial> 067F
-FB65 <medial> 067F
-FB66 <isolated> 0679
-FB67 <final> 0679
-FB68 <initial> 0679
-FB69 <medial> 0679
-FB6A <isolated> 06A4
-FB6B <final> 06A4
-FB6C <initial> 06A4
-FB6D <medial> 06A4
-FB6E <isolated> 06A6
-FB6F <final> 06A6
-FB70 <initial> 06A6
-FB71 <medial> 06A6
-FB72 <isolated> 0684
-FB73 <final> 0684
-FB74 <initial> 0684
-FB75 <medial> 0684
-FB76 <isolated> 0683
-FB77 <final> 0683
-FB78 <initial> 0683
-FB79 <medial> 0683
-FB7A <isolated> 0686
-FB7B <final> 0686
-FB7C <initial> 0686
-FB7D <medial> 0686
-FB7E <isolated> 0687
-FB7F <final> 0687
-FB80 <initial> 0687
-FB81 <medial> 0687
-FB82 <isolated> 068D
-FB83 <final> 068D
-FB84 <isolated> 068C
-FB85 <final> 068C
-FB86 <isolated> 068E
-FB87 <final> 068E
-FB88 <isolated> 0688
-FB89 <final> 0688
-FB8A <isolated> 0698
-FB8B <final> 0698
-FB8C <isolated> 0691
-FB8D <final> 0691
-FB8E <isolated> 06A9
-FB8F <final> 06A9
-FB90 <initial> 06A9
-FB91 <medial> 06A9
-FB92 <isolated> 06AF
-FB93 <final> 06AF
-FB94 <initial> 06AF
-FB95 <medial> 06AF
-FB96 <isolated> 06B3
-FB97 <final> 06B3
-FB98 <initial> 06B3
-FB99 <medial> 06B3
-FB9A <isolated> 06B1
-FB9B <final> 06B1
-FB9C <initial> 06B1
-FB9D <medial> 06B1
-FB9E <isolated> 06BA
-FB9F <final> 06BA
-FBA0 <isolated> 06BB
-FBA1 <final> 06BB
-FBA2 <initial> 06BB
-FBA3 <medial> 06BB
-FBA4 <isolated> 06C0
-FBA5 <final> 06C0
-FBA6 <isolated> 06C1
-FBA7 <final> 06C1
-FBA8 <initial> 06C1
-FBA9 <medial> 06C1
-FBAA <isolated> 06BE
-FBAB <final> 06BE
-FBAC <initial> 06BE
-FBAD <medial> 06BE
-FBAE <isolated> 06D2
-FBAF <final> 06D2
-FBB0 <isolated> 06D3
-FBB1 <final> 06D3
-FBD3 <isolated> 06AD
-FBD4 <final> 06AD
-FBD5 <initial> 06AD
-FBD6 <medial> 06AD
-FBD7 <isolated> 06C7
-FBD8 <final> 06C7
-FBD9 <isolated> 06C6
-FBDA <final> 06C6
-FBDB <isolated> 06C8
-FBDC <final> 06C8
-FBDD <isolated> 0677
-FBDE <isolated> 06CB
-FBDF <final> 06CB
-FBE0 <isolated> 06C5
-FBE1 <final> 06C5
-FBE2 <isolated> 06C9
-FBE3 <final> 06C9
-FBE4 <isolated> 06D0
-FBE5 <final> 06D0
-FBE6 <initial> 06D0
-FBE7 <medial> 06D0
-FBE8 <initial> 0649
-FBE9 <medial> 0649
-FBEA <isolated> 0626 0627
-FBEB <final> 0626 0627
-FBEC <isolated> 0626 06D5
-FBED <final> 0626 06D5
-FBEE <isolated> 0626 0648
-FBEF <final> 0626 0648
-FBF0 <isolated> 0626 06C7
-FBF1 <final> 0626 06C7
-FBF2 <isolated> 0626 06C6
-FBF3 <final> 0626 06C6
-FBF4 <isolated> 0626 06C8
-FBF5 <final> 0626 06C8
-FBF6 <isolated> 0626 06D0
-FBF7 <final> 0626 06D0
-FBF8 <initial> 0626 06D0
-FBF9 <isolated> 0626 0649
-FBFA <final> 0626 0649
-FBFB <initial> 0626 0649
-FBFC <isolated> 06CC
-FBFD <final> 06CC
-FBFE <initial> 06CC
-FBFF <medial> 06CC
-FC00 <isolated> 0626 062C
-FC01 <isolated> 0626 062D
-FC02 <isolated> 0626 0645
-FC03 <isolated> 0626 0649
-FC04 <isolated> 0626 064A
-FC05 <isolated> 0628 062C
-FC06 <isolated> 0628 062D
-FC07 <isolated> 0628 062E
-FC08 <isolated> 0628 0645
-FC09 <isolated> 0628 0649
-FC0A <isolated> 0628 064A
-FC0B <isolated> 062A 062C
-FC0C <isolated> 062A 062D
-FC0D <isolated> 062A 062E
-FC0E <isolated> 062A 0645
-FC0F <isolated> 062A 0649
-FC10 <isolated> 062A 064A
-FC11 <isolated> 062B 062C
-FC12 <isolated> 062B 0645
-FC13 <isolated> 062B 0649
-FC14 <isolated> 062B 064A
-FC15 <isolated> 062C 062D
-FC16 <isolated> 062C 0645
-FC17 <isolated> 062D 062C
-FC18 <isolated> 062D 0645
-FC19 <isolated> 062E 062C
-FC1A <isolated> 062E 062D
-FC1B <isolated> 062E 0645
-FC1C <isolated> 0633 062C
-FC1D <isolated> 0633 062D
-FC1E <isolated> 0633 062E
-FC1F <isolated> 0633 0645
-FC20 <isolated> 0635 062D
-FC21 <isolated> 0635 0645
-FC22 <isolated> 0636 062C
-FC23 <isolated> 0636 062D
-FC24 <isolated> 0636 062E
-FC25 <isolated> 0636 0645
-FC26 <isolated> 0637 062D
-FC27 <isolated> 0637 0645
-FC28 <isolated> 0638 0645
-FC29 <isolated> 0639 062C
-FC2A <isolated> 0639 0645
-FC2B <isolated> 063A 062C
-FC2C <isolated> 063A 0645
-FC2D <isolated> 0641 062C
-FC2E <isolated> 0641 062D
-FC2F <isolated> 0641 062E
-FC30 <isolated> 0641 0645
-FC31 <isolated> 0641 0649
-FC32 <isolated> 0641 064A
-FC33 <isolated> 0642 062D
-FC34 <isolated> 0642 0645
-FC35 <isolated> 0642 0649
-FC36 <isolated> 0642 064A
-FC37 <isolated> 0643 0627
-FC38 <isolated> 0643 062C
-FC39 <isolated> 0643 062D
-FC3A <isolated> 0643 062E
-FC3B <isolated> 0643 0644
-FC3C <isolated> 0643 0645
-FC3D <isolated> 0643 0649
-FC3E <isolated> 0643 064A
-FC3F <isolated> 0644 062C
-FC40 <isolated> 0644 062D
-FC41 <isolated> 0644 062E
-FC42 <isolated> 0644 0645
-FC43 <isolated> 0644 0649
-FC44 <isolated> 0644 064A
-FC45 <isolated> 0645 062C
-FC46 <isolated> 0645 062D
-FC47 <isolated> 0645 062E
-FC48 <isolated> 0645 0645
-FC49 <isolated> 0645 0649
-FC4A <isolated> 0645 064A
-FC4B <isolated> 0646 062C
-FC4C <isolated> 0646 062D
-FC4D <isolated> 0646 062E
-FC4E <isolated> 0646 0645
-FC4F <isolated> 0646 0649
-FC50 <isolated> 0646 064A
-FC51 <isolated> 0647 062C
-FC52 <isolated> 0647 0645
-FC53 <isolated> 0647 0649
-FC54 <isolated> 0647 064A
-FC55 <isolated> 064A 062C
-FC56 <isolated> 064A 062D
-FC57 <isolated> 064A 062E
-FC58 <isolated> 064A 0645
-FC59 <isolated> 064A 0649
-FC5A <isolated> 064A 064A
-FC5B <isolated> 0630 0670
-FC5C <isolated> 0631 0670
-FC5D <isolated> 0649 0670
-FC5E <isolated> 0020 064C 0651
-FC5F <isolated> 0020 064D 0651
-FC60 <isolated> 0020 064E 0651
-FC61 <isolated> 0020 064F 0651
-FC62 <isolated> 0020 0650 0651
-FC63 <isolated> 0020 0651 0670
-FC64 <final> 0626 0631
-FC65 <final> 0626 0632
-FC66 <final> 0626 0645
-FC67 <final> 0626 0646
-FC68 <final> 0626 0649
-FC69 <final> 0626 064A
-FC6A <final> 0628 0631
-FC6B <final> 0628 0632
-FC6C <final> 0628 0645
-FC6D <final> 0628 0646
-FC6E <final> 0628 0649
-FC6F <final> 0628 064A
-FC70 <final> 062A 0631
-FC71 <final> 062A 0632
-FC72 <final> 062A 0645
-FC73 <final> 062A 0646
-FC74 <final> 062A 0649
-FC75 <final> 062A 064A
-FC76 <final> 062B 0631
-FC77 <final> 062B 0632
-FC78 <final> 062B 0645
-FC79 <final> 062B 0646
-FC7A <final> 062B 0649
-FC7B <final> 062B 064A
-FC7C <final> 0641 0649
-FC7D <final> 0641 064A
-FC7E <final> 0642 0649
-FC7F <final> 0642 064A
-FC80 <final> 0643 0627
-FC81 <final> 0643 0644
-FC82 <final> 0643 0645
-FC83 <final> 0643 0649
-FC84 <final> 0643 064A
-FC85 <final> 0644 0645
-FC86 <final> 0644 0649
-FC87 <final> 0644 064A
-FC88 <final> 0645 0627
-FC89 <final> 0645 0645
-FC8A <final> 0646 0631
-FC8B <final> 0646 0632
-FC8C <final> 0646 0645
-FC8D <final> 0646 0646
-FC8E <final> 0646 0649
-FC8F <final> 0646 064A
-FC90 <final> 0649 0670
-FC91 <final> 064A 0631
-FC92 <final> 064A 0632
-FC93 <final> 064A 0645
-FC94 <final> 064A 0646
-FC95 <final> 064A 0649
-FC96 <final> 064A 064A
-FC97 <initial> 0626 062C
-FC98 <initial> 0626 062D
-FC99 <initial> 0626 062E
-FC9A <initial> 0626 0645
-FC9B <initial> 0626 0647
-FC9C <initial> 0628 062C
-FC9D <initial> 0628 062D
-FC9E <initial> 0628 062E
-FC9F <initial> 0628 0645
-FCA0 <initial> 0628 0647
-FCA1 <initial> 062A 062C
-FCA2 <initial> 062A 062D
-FCA3 <initial> 062A 062E
-FCA4 <initial> 062A 0645
-FCA5 <initial> 062A 0647
-FCA6 <initial> 062B 0645
-FCA7 <initial> 062C 062D
-FCA8 <initial> 062C 0645
-FCA9 <initial> 062D 062C
-FCAA <initial> 062D 0645
-FCAB <initial> 062E 062C
-FCAC <initial> 062E 0645
-FCAD <initial> 0633 062C
-FCAE <initial> 0633 062D
-FCAF <initial> 0633 062E
-FCB0 <initial> 0633 0645
-FCB1 <initial> 0635 062D
-FCB2 <initial> 0635 062E
-FCB3 <initial> 0635 0645
-FCB4 <initial> 0636 062C
-FCB5 <initial> 0636 062D
-FCB6 <initial> 0636 062E
-FCB7 <initial> 0636 0645
-FCB8 <initial> 0637 062D
-FCB9 <initial> 0638 0645
-FCBA <initial> 0639 062C
-FCBB <initial> 0639 0645
-FCBC <initial> 063A 062C
-FCBD <initial> 063A 0645
-FCBE <initial> 0641 062C
-FCBF <initial> 0641 062D
-FCC0 <initial> 0641 062E
-FCC1 <initial> 0641 0645
-FCC2 <initial> 0642 062D
-FCC3 <initial> 0642 0645
-FCC4 <initial> 0643 062C
-FCC5 <initial> 0643 062D
-FCC6 <initial> 0643 062E
-FCC7 <initial> 0643 0644
-FCC8 <initial> 0643 0645
-FCC9 <initial> 0644 062C
-FCCA <initial> 0644 062D
-FCCB <initial> 0644 062E
-FCCC <initial> 0644 0645
-FCCD <initial> 0644 0647
-FCCE <initial> 0645 062C
-FCCF <initial> 0645 062D
-FCD0 <initial> 0645 062E
-FCD1 <initial> 0645 0645
-FCD2 <initial> 0646 062C
-FCD3 <initial> 0646 062D
-FCD4 <initial> 0646 062E
-FCD5 <initial> 0646 0645
-FCD6 <initial> 0646 0647
-FCD7 <initial> 0647 062C
-FCD8 <initial> 0647 0645
-FCD9 <initial> 0647 0670
-FCDA <initial> 064A 062C
-FCDB <initial> 064A 062D
-FCDC <initial> 064A 062E
-FCDD <initial> 064A 0645
-FCDE <initial> 064A 0647
-FCDF <medial> 0626 0645
-FCE0 <medial> 0626 0647
-FCE1 <medial> 0628 0645
-FCE2 <medial> 0628 0647
-FCE3 <medial> 062A 0645
-FCE4 <medial> 062A 0647
-FCE5 <medial> 062B 0645
-FCE6 <medial> 062B 0647
-FCE7 <medial> 0633 0645
-FCE8 <medial> 0633 0647
-FCE9 <medial> 0634 0645
-FCEA <medial> 0634 0647
-FCEB <medial> 0643 0644
-FCEC <medial> 0643 0645
-FCED <medial> 0644 0645
-FCEE <medial> 0646 0645
-FCEF <medial> 0646 0647
-FCF0 <medial> 064A 0645
-FCF1 <medial> 064A 0647
-FCF2 <medial> 0640 064E 0651
-FCF3 <medial> 0640 064F 0651
-FCF4 <medial> 0640 0650 0651
-FCF5 <isolated> 0637 0649
-FCF6 <isolated> 0637 064A
-FCF7 <isolated> 0639 0649
-FCF8 <isolated> 0639 064A
-FCF9 <isolated> 063A 0649
-FCFA <isolated> 063A 064A
-FCFB <isolated> 0633 0649
-FCFC <isolated> 0633 064A
-FCFD <isolated> 0634 0649
-FCFE <isolated> 0634 064A
-FCFF <isolated> 062D 0649
-FD00 <isolated> 062D 064A
-FD01 <isolated> 062C 0649
-FD02 <isolated> 062C 064A
-FD03 <isolated> 062E 0649
-FD04 <isolated> 062E 064A
-FD05 <isolated> 0635 0649
-FD06 <isolated> 0635 064A
-FD07 <isolated> 0636 0649
-FD08 <isolated> 0636 064A
-FD09 <isolated> 0634 062C
-FD0A <isolated> 0634 062D
-FD0B <isolated> 0634 062E
-FD0C <isolated> 0634 0645
-FD0D <isolated> 0634 0631
-FD0E <isolated> 0633 0631
-FD0F <isolated> 0635 0631
-FD10 <isolated> 0636 0631
-FD11 <final> 0637 0649
-FD12 <final> 0637 064A
-FD13 <final> 0639 0649
-FD14 <final> 0639 064A
-FD15 <final> 063A 0649
-FD16 <final> 063A 064A
-FD17 <final> 0633 0649
-FD18 <final> 0633 064A
-FD19 <final> 0634 0649
-FD1A <final> 0634 064A
-FD1B <final> 062D 0649
-FD1C <final> 062D 064A
-FD1D <final> 062C 0649
-FD1E <final> 062C 064A
-FD1F <final> 062E 0649
-FD20 <final> 062E 064A
-FD21 <final> 0635 0649
-FD22 <final> 0635 064A
-FD23 <final> 0636 0649
-FD24 <final> 0636 064A
-FD25 <final> 0634 062C
-FD26 <final> 0634 062D
-FD27 <final> 0634 062E
-FD28 <final> 0634 0645
-FD29 <final> 0634 0631
-FD2A <final> 0633 0631
-FD2B <final> 0635 0631
-FD2C <final> 0636 0631
-FD2D <initial> 0634 062C
-FD2E <initial> 0634 062D
-FD2F <initial> 0634 062E
-FD30 <initial> 0634 0645
-FD31 <initial> 0633 0647
-FD32 <initial> 0634 0647
-FD33 <initial> 0637 0645
-FD34 <medial> 0633 062C
-FD35 <medial> 0633 062D
-FD36 <medial> 0633 062E
-FD37 <medial> 0634 062C
-FD38 <medial> 0634 062D
-FD39 <medial> 0634 062E
-FD3A <medial> 0637 0645
-FD3B <medial> 0638 0645
-FD3C <final> 0627 064B
-FD3D <isolated> 0627 064B
-FD50 <initial> 062A 062C 0645
-FD51 <final> 062A 062D 062C
-FD52 <initial> 062A 062D 062C
-FD53 <initial> 062A 062D 0645
-FD54 <initial> 062A 062E 0645
-FD55 <initial> 062A 0645 062C
-FD56 <initial> 062A 0645 062D
-FD57 <initial> 062A 0645 062E
-FD58 <final> 062C 0645 062D
-FD59 <initial> 062C 0645 062D
-FD5A <final> 062D 0645 064A
-FD5B <final> 062D 0645 0649
-FD5C <initial> 0633 062D 062C
-FD5D <initial> 0633 062C 062D
-FD5E <final> 0633 062C 0649
-FD5F <final> 0633 0645 062D
-FD60 <initial> 0633 0645 062D
-FD61 <initial> 0633 0645 062C
-FD62 <final> 0633 0645 0645
-FD63 <initial> 0633 0645 0645
-FD64 <final> 0635 062D 062D
-FD65 <initial> 0635 062D 062D
-FD66 <final> 0635 0645 0645
-FD67 <final> 0634 062D 0645
-FD68 <initial> 0634 062D 0645
-FD69 <final> 0634 062C 064A
-FD6A <final> 0634 0645 062E
-FD6B <initial> 0634 0645 062E
-FD6C <final> 0634 0645 0645
-FD6D <initial> 0634 0645 0645
-FD6E <final> 0636 062D 0649
-FD6F <final> 0636 062E 0645
-FD70 <initial> 0636 062E 0645
-FD71 <final> 0637 0645 062D
-FD72 <initial> 0637 0645 062D
-FD73 <initial> 0637 0645 0645
-FD74 <final> 0637 0645 064A
-FD75 <final> 0639 062C 0645
-FD76 <final> 0639 0645 0645
-FD77 <initial> 0639 0645 0645
-FD78 <final> 0639 0645 0649
-FD79 <final> 063A 0645 0645
-FD7A <final> 063A 0645 064A
-FD7B <final> 063A 0645 0649
-FD7C <final> 0641 062E 0645
-FD7D <initial> 0641 062E 0645
-FD7E <final> 0642 0645 062D
-FD7F <final> 0642 0645 0645
-FD80 <final> 0644 062D 0645
-FD81 <final> 0644 062D 064A
-FD82 <final> 0644 062D 0649
-FD83 <initial> 0644 062C 062C
-FD84 <final> 0644 062C 062C
-FD85 <final> 0644 062E 0645
-FD86 <initial> 0644 062E 0645
-FD87 <final> 0644 0645 062D
-FD88 <initial> 0644 0645 062D
-FD89 <initial> 0645 062D 062C
-FD8A <initial> 0645 062D 0645
-FD8B <final> 0645 062D 064A
-FD8C <initial> 0645 062C 062D
-FD8D <initial> 0645 062C 0645
-FD8E <initial> 0645 062E 062C
-FD8F <initial> 0645 062E 0645
-FD92 <initial> 0645 062C 062E
-FD93 <initial> 0647 0645 062C
-FD94 <initial> 0647 0645 0645
-FD95 <initial> 0646 062D 0645
-FD96 <final> 0646 062D 0649
-FD97 <final> 0646 062C 0645
-FD98 <initial> 0646 062C 0645
-FD99 <final> 0646 062C 0649
-FD9A <final> 0646 0645 064A
-FD9B <final> 0646 0645 0649
-FD9C <final> 064A 0645 0645
-FD9D <initial> 064A 0645 0645
-FD9E <final> 0628 062E 064A
-FD9F <final> 062A 062C 064A
-FDA0 <final> 062A 062C 0649
-FDA1 <final> 062A 062E 064A
-FDA2 <final> 062A 062E 0649
-FDA3 <final> 062A 0645 064A
-FDA4 <final> 062A 0645 0649
-FDA5 <final> 062C 0645 064A
-FDA6 <final> 062C 062D 0649
-FDA7 <final> 062C 0645 0649
-FDA8 <final> 0633 062E 0649
-FDA9 <final> 0635 062D 064A
-FDAA <final> 0634 062D 064A
-FDAB <final> 0636 062D 064A
-FDAC <final> 0644 062C 064A
-FDAD <final> 0644 0645 064A
-FDAE <final> 064A 062D 064A
-FDAF <final> 064A 062C 064A
-FDB0 <final> 064A 0645 064A
-FDB1 <final> 0645 0645 064A
-FDB2 <final> 0642 0645 064A
-FDB3 <final> 0646 062D 064A
-FDB4 <initial> 0642 0645 062D
-FDB5 <initial> 0644 062D 0645
-FDB6 <final> 0639 0645 064A
-FDB7 <final> 0643 0645 064A
-FDB8 <initial> 0646 062C 062D
-FDB9 <final> 0645 062E 064A
-FDBA <initial> 0644 062C 0645
-FDBB <final> 0643 0645 0645
-FDBC <final> 0644 062C 0645
-FDBD <final> 0646 062C 062D
-FDBE <final> 062C 062D 064A
-FDBF <final> 062D 062C 064A
-FDC0 <final> 0645 062C 064A
-FDC1 <final> 0641 0645 064A
-FDC2 <final> 0628 062D 064A
-FDC3 <initial> 0643 0645 0645
-FDC4 <initial> 0639 062C 0645
-FDC5 <initial> 0635 0645 0645
-FDC6 <final> 0633 062E 064A
-FDC7 <final> 0646 062C 064A
-FDF0 <isolated> 0635 0644 06D2
-FDF1 <isolated> 0642 0644 06D2
-FDF2 <isolated> 0627 0644 0644 0647
-FDF3 <isolated> 0627 0643 0628 0631
-FDF4 <isolated> 0645 062D 0645 062F
-FDF5 <isolated> 0635 0644 0639 0645
-FDF6 <isolated> 0631 0633 0648 0644
-FDF7 <isolated> 0639 0644 064A 0647
-FDF8 <isolated> 0648 0633 0644 0645
-FDF9 <isolated> 0635 0644 0649
-FDFA <isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645
-FDFB <isolated> 062C 0644 0020 062C 0644 0627 0644 0647
-FDFC <isolated> 0631 06CC 0627 0644
-FE30 <vertical> 2025
-FE31 <vertical> 2014
-FE32 <vertical> 2013
-FE33 FE34 <vertical> 005F
-FE35 <vertical> 0028
-FE36 <vertical> 0029
-FE37 <vertical> 007B
-FE38 <vertical> 007D
-FE39 <vertical> 3014
-FE3A <vertical> 3015
-FE3B <vertical> 3010
-FE3C <vertical> 3011
-FE3D <vertical> 300A
-FE3E <vertical> 300B
-FE3F <vertical> 3008
-FE40 <vertical> 3009
-FE41 <vertical> 300C
-FE42 <vertical> 300D
-FE43 <vertical> 300E
-FE44 <vertical> 300F
-FE49 FE4C <compat> 203E
-FE4D FE4F <compat> 005F
-FE50 <small> 002C
-FE51 <small> 3001
-FE52 <small> 002E
-FE54 <small> 003B
-FE55 <small> 003A
-FE56 <small> 003F
-FE57 <small> 0021
-FE58 <small> 2014
-FE59 <small> 0028
-FE5A <small> 0029
-FE5B <small> 007B
-FE5C <small> 007D
-FE5D <small> 3014
-FE5E <small> 3015
-FE5F <small> 0023
-FE60 <small> 0026
-FE61 <small> 002A
-FE62 <small> 002B
-FE63 <small> 002D
-FE64 <small> 003C
-FE65 <small> 003E
-FE66 <small> 003D
-FE68 <small> 005C
-FE69 <small> 0024
-FE6A <small> 0025
-FE6B <small> 0040
-FE70 <isolated> 0020 064B
-FE71 <medial> 0640 064B
-FE72 <isolated> 0020 064C
-FE74 <isolated> 0020 064D
-FE76 <isolated> 0020 064E
-FE77 <medial> 0640 064E
-FE78 <isolated> 0020 064F
-FE79 <medial> 0640 064F
-FE7A <isolated> 0020 0650
-FE7B <medial> 0640 0650
-FE7C <isolated> 0020 0651
-FE7D <medial> 0640 0651
-FE7E <isolated> 0020 0652
-FE7F <medial> 0640 0652
-FE80 <isolated> 0621
-FE81 <isolated> 0622
-FE82 <final> 0622
-FE83 <isolated> 0623
-FE84 <final> 0623
-FE85 <isolated> 0624
-FE86 <final> 0624
-FE87 <isolated> 0625
-FE88 <final> 0625
-FE89 <isolated> 0626
-FE8A <final> 0626
-FE8B <initial> 0626
-FE8C <medial> 0626
-FE8D <isolated> 0627
-FE8E <final> 0627
-FE8F <isolated> 0628
-FE90 <final> 0628
-FE91 <initial> 0628
-FE92 <medial> 0628
-FE93 <isolated> 0629
-FE94 <final> 0629
-FE95 <isolated> 062A
-FE96 <final> 062A
-FE97 <initial> 062A
-FE98 <medial> 062A
-FE99 <isolated> 062B
-FE9A <final> 062B
-FE9B <initial> 062B
-FE9C <medial> 062B
-FE9D <isolated> 062C
-FE9E <final> 062C
-FE9F <initial> 062C
-FEA0 <medial> 062C
-FEA1 <isolated> 062D
-FEA2 <final> 062D
-FEA3 <initial> 062D
-FEA4 <medial> 062D
-FEA5 <isolated> 062E
-FEA6 <final> 062E
-FEA7 <initial> 062E
-FEA8 <medial> 062E
-FEA9 <isolated> 062F
-FEAA <final> 062F
-FEAB <isolated> 0630
-FEAC <final> 0630
-FEAD <isolated> 0631
-FEAE <final> 0631
-FEAF <isolated> 0632
-FEB0 <final> 0632
-FEB1 <isolated> 0633
-FEB2 <final> 0633
-FEB3 <initial> 0633
-FEB4 <medial> 0633
-FEB5 <isolated> 0634
-FEB6 <final> 0634
-FEB7 <initial> 0634
-FEB8 <medial> 0634
-FEB9 <isolated> 0635
-FEBA <final> 0635
-FEBB <initial> 0635
-FEBC <medial> 0635
-FEBD <isolated> 0636
-FEBE <final> 0636
-FEBF <initial> 0636
-FEC0 <medial> 0636
-FEC1 <isolated> 0637
-FEC2 <final> 0637
-FEC3 <initial> 0637
-FEC4 <medial> 0637
-FEC5 <isolated> 0638
-FEC6 <final> 0638
-FEC7 <initial> 0638
-FEC8 <medial> 0638
-FEC9 <isolated> 0639
-FECA <final> 0639
-FECB <initial> 0639
-FECC <medial> 0639
-FECD <isolated> 063A
-FECE <final> 063A
-FECF <initial> 063A
-FED0 <medial> 063A
-FED1 <isolated> 0641
-FED2 <final> 0641
-FED3 <initial> 0641
-FED4 <medial> 0641
-FED5 <isolated> 0642
-FED6 <final> 0642
-FED7 <initial> 0642
-FED8 <medial> 0642
-FED9 <isolated> 0643
-FEDA <final> 0643
-FEDB <initial> 0643
-FEDC <medial> 0643
-FEDD <isolated> 0644
-FEDE <final> 0644
-FEDF <initial> 0644
-FEE0 <medial> 0644
-FEE1 <isolated> 0645
-FEE2 <final> 0645
-FEE3 <initial> 0645
-FEE4 <medial> 0645
-FEE5 <isolated> 0646
-FEE6 <final> 0646
-FEE7 <initial> 0646
-FEE8 <medial> 0646
-FEE9 <isolated> 0647
-FEEA <final> 0647
-FEEB <initial> 0647
-FEEC <medial> 0647
-FEED <isolated> 0648
-FEEE <final> 0648
-FEEF <isolated> 0649
-FEF0 <final> 0649
-FEF1 <isolated> 064A
-FEF2 <final> 064A
-FEF3 <initial> 064A
-FEF4 <medial> 064A
-FEF5 <isolated> 0644 0622
-FEF6 <final> 0644 0622
-FEF7 <isolated> 0644 0623
-FEF8 <final> 0644 0623
-FEF9 <isolated> 0644 0625
-FEFA <final> 0644 0625
-FEFB <isolated> 0644 0627
-FEFC <final> 0644 0627
-FF01 <wide> 0021
-FF02 <wide> 0022
-FF03 <wide> 0023
-FF04 <wide> 0024
-FF05 <wide> 0025
-FF06 <wide> 0026
-FF07 <wide> 0027
-FF08 <wide> 0028
-FF09 <wide> 0029
-FF0A <wide> 002A
-FF0B <wide> 002B
-FF0C <wide> 002C
-FF0D <wide> 002D
-FF0E <wide> 002E
-FF0F <wide> 002F
-FF10 <wide> 0030
-FF11 <wide> 0031
-FF12 <wide> 0032
-FF13 <wide> 0033
-FF14 <wide> 0034
-FF15 <wide> 0035
-FF16 <wide> 0036
-FF17 <wide> 0037
-FF18 <wide> 0038
-FF19 <wide> 0039
-FF1A <wide> 003A
-FF1B <wide> 003B
-FF1C <wide> 003C
-FF1D <wide> 003D
-FF1E <wide> 003E
-FF1F <wide> 003F
-FF20 <wide> 0040
-FF21 <wide> 0041
-FF22 <wide> 0042
-FF23 <wide> 0043
-FF24 <wide> 0044
-FF25 <wide> 0045
-FF26 <wide> 0046
-FF27 <wide> 0047
-FF28 <wide> 0048
-FF29 <wide> 0049
-FF2A <wide> 004A
-FF2B <wide> 004B
-FF2C <wide> 004C
-FF2D <wide> 004D
-FF2E <wide> 004E
-FF2F <wide> 004F
-FF30 <wide> 0050
-FF31 <wide> 0051
-FF32 <wide> 0052
-FF33 <wide> 0053
-FF34 <wide> 0054
-FF35 <wide> 0055
-FF36 <wide> 0056
-FF37 <wide> 0057
-FF38 <wide> 0058
-FF39 <wide> 0059
-FF3A <wide> 005A
-FF3B <wide> 005B
-FF3C <wide> 005C
-FF3D <wide> 005D
-FF3E <wide> 005E
-FF3F <wide> 005F
-FF40 <wide> 0060
-FF41 <wide> 0061
-FF42 <wide> 0062
-FF43 <wide> 0063
-FF44 <wide> 0064
-FF45 <wide> 0065
-FF46 <wide> 0066
-FF47 <wide> 0067
-FF48 <wide> 0068
-FF49 <wide> 0069
-FF4A <wide> 006A
-FF4B <wide> 006B
-FF4C <wide> 006C
-FF4D <wide> 006D
-FF4E <wide> 006E
-FF4F <wide> 006F
-FF50 <wide> 0070
-FF51 <wide> 0071
-FF52 <wide> 0072
-FF53 <wide> 0073
-FF54 <wide> 0074
-FF55 <wide> 0075
-FF56 <wide> 0076
-FF57 <wide> 0077
-FF58 <wide> 0078
-FF59 <wide> 0079
-FF5A <wide> 007A
-FF5B <wide> 007B
-FF5C <wide> 007C
-FF5D <wide> 007D
-FF5E <wide> 007E
-FF5F <wide> 2985
-FF60 <wide> 2986
-FF61 <narrow> 3002
-FF62 <narrow> 300C
-FF63 <narrow> 300D
-FF64 <narrow> 3001
-FF65 <narrow> 30FB
-FF66 <narrow> 30F2
-FF67 <narrow> 30A1
-FF68 <narrow> 30A3
-FF69 <narrow> 30A5
-FF6A <narrow> 30A7
-FF6B <narrow> 30A9
-FF6C <narrow> 30E3
-FF6D <narrow> 30E5
-FF6E <narrow> 30E7
-FF6F <narrow> 30C3
-FF70 <narrow> 30FC
-FF71 <narrow> 30A2
-FF72 <narrow> 30A4
-FF73 <narrow> 30A6
-FF74 <narrow> 30A8
-FF75 <narrow> 30AA
-FF76 <narrow> 30AB
-FF77 <narrow> 30AD
-FF78 <narrow> 30AF
-FF79 <narrow> 30B1
-FF7A <narrow> 30B3
-FF7B <narrow> 30B5
-FF7C <narrow> 30B7
-FF7D <narrow> 30B9
-FF7E <narrow> 30BB
-FF7F <narrow> 30BD
-FF80 <narrow> 30BF
-FF81 <narrow> 30C1
-FF82 <narrow> 30C4
-FF83 <narrow> 30C6
-FF84 <narrow> 30C8
-FF85 <narrow> 30CA
-FF86 <narrow> 30CB
-FF87 <narrow> 30CC
-FF88 <narrow> 30CD
-FF89 <narrow> 30CE
-FF8A <narrow> 30CF
-FF8B <narrow> 30D2
-FF8C <narrow> 30D5
-FF8D <narrow> 30D8
-FF8E <narrow> 30DB
-FF8F <narrow> 30DE
-FF90 <narrow> 30DF
-FF91 <narrow> 30E0
-FF92 <narrow> 30E1
-FF93 <narrow> 30E2
-FF94 <narrow> 30E4
-FF95 <narrow> 30E6
-FF96 <narrow> 30E8
-FF97 <narrow> 30E9
-FF98 <narrow> 30EA
-FF99 <narrow> 30EB
-FF9A <narrow> 30EC
-FF9B <narrow> 30ED
-FF9C <narrow> 30EF
-FF9D <narrow> 30F3
-FF9E <narrow> 3099
-FF9F <narrow> 309A
-FFA0 <narrow> 3164
-FFA1 <narrow> 3131
-FFA2 <narrow> 3132
-FFA3 <narrow> 3133
-FFA4 <narrow> 3134
-FFA5 <narrow> 3135
-FFA6 <narrow> 3136
-FFA7 <narrow> 3137
-FFA8 <narrow> 3138
-FFA9 <narrow> 3139
-FFAA <narrow> 313A
-FFAB <narrow> 313B
-FFAC <narrow> 313C
-FFAD <narrow> 313D
-FFAE <narrow> 313E
-FFAF <narrow> 313F
-FFB0 <narrow> 3140
-FFB1 <narrow> 3141
-FFB2 <narrow> 3142
-FFB3 <narrow> 3143
-FFB4 <narrow> 3144
-FFB5 <narrow> 3145
-FFB6 <narrow> 3146
-FFB7 <narrow> 3147
-FFB8 <narrow> 3148
-FFB9 <narrow> 3149
-FFBA <narrow> 314A
-FFBB <narrow> 314B
-FFBC <narrow> 314C
-FFBD <narrow> 314D
-FFBE <narrow> 314E
-FFC2 <narrow> 314F
-FFC3 <narrow> 3150
-FFC4 <narrow> 3151
-FFC5 <narrow> 3152
-FFC6 <narrow> 3153
-FFC7 <narrow> 3154
-FFCA <narrow> 3155
-FFCB <narrow> 3156
-FFCC <narrow> 3157
-FFCD <narrow> 3158
-FFCE <narrow> 3159
-FFCF <narrow> 315A
-FFD2 <narrow> 315B
-FFD3 <narrow> 315C
-FFD4 <narrow> 315D
-FFD5 <narrow> 315E
-FFD6 <narrow> 315F
-FFD7 <narrow> 3160
-FFDA <narrow> 3161
-FFDB <narrow> 3162
-FFDC <narrow> 3163
-FFE0 <wide> 00A2
-FFE1 <wide> 00A3
-FFE2 <wide> 00AC
-FFE3 <wide> 00AF
-FFE4 <wide> 00A6
-FFE5 <wide> 00A5
-FFE6 <wide> 20A9
-FFE8 <narrow> 2502
-FFE9 <narrow> 2190
-FFEA <narrow> 2191
-FFEB <narrow> 2192
-FFEC <narrow> 2193
-FFED <narrow> 25A0
-FFEE <narrow> 25CB
-1D15E 1D157 1D165
-1D15F 1D158 1D165
-1D160 1D15F 1D16E
-1D161 1D15F 1D16F
-1D162 1D15F 1D170
-1D163 1D15F 1D171
-1D164 1D15F 1D172
-1D1BB 1D1B9 1D165
-1D1BC 1D1BA 1D165
-1D1BD 1D1BB 1D16E
-1D1BE 1D1BC 1D16E
-1D1BF 1D1BB 1D16F
-1D1C0 1D1BC 1D16F
-1D400 <font> 0041
-1D401 <font> 0042
-1D402 <font> 0043
-1D403 <font> 0044
-1D404 <font> 0045
-1D405 <font> 0046
-1D406 <font> 0047
-1D407 <font> 0048
-1D408 <font> 0049
-1D409 <font> 004A
-1D40A <font> 004B
-1D40B <font> 004C
-1D40C <font> 004D
-1D40D <font> 004E
-1D40E <font> 004F
-1D40F <font> 0050
-1D410 <font> 0051
-1D411 <font> 0052
-1D412 <font> 0053
-1D413 <font> 0054
-1D414 <font> 0055
-1D415 <font> 0056
-1D416 <font> 0057
-1D417 <font> 0058
-1D418 <font> 0059
-1D419 <font> 005A
-1D41A <font> 0061
-1D41B <font> 0062
-1D41C <font> 0063
-1D41D <font> 0064
-1D41E <font> 0065
-1D41F <font> 0066
-1D420 <font> 0067
-1D421 <font> 0068
-1D422 <font> 0069
-1D423 <font> 006A
-1D424 <font> 006B
-1D425 <font> 006C
-1D426 <font> 006D
-1D427 <font> 006E
-1D428 <font> 006F
-1D429 <font> 0070
-1D42A <font> 0071
-1D42B <font> 0072
-1D42C <font> 0073
-1D42D <font> 0074
-1D42E <font> 0075
-1D42F <font> 0076
-1D430 <font> 0077
-1D431 <font> 0078
-1D432 <font> 0079
-1D433 <font> 007A
-1D434 <font> 0041
-1D435 <font> 0042
-1D436 <font> 0043
-1D437 <font> 0044
-1D438 <font> 0045
-1D439 <font> 0046
-1D43A <font> 0047
-1D43B <font> 0048
-1D43C <font> 0049
-1D43D <font> 004A
-1D43E <font> 004B
-1D43F <font> 004C
-1D440 <font> 004D
-1D441 <font> 004E
-1D442 <font> 004F
-1D443 <font> 0050
-1D444 <font> 0051
-1D445 <font> 0052
-1D446 <font> 0053
-1D447 <font> 0054
-1D448 <font> 0055
-1D449 <font> 0056
-1D44A <font> 0057
-1D44B <font> 0058
-1D44C <font> 0059
-1D44D <font> 005A
-1D44E <font> 0061
-1D44F <font> 0062
-1D450 <font> 0063
-1D451 <font> 0064
-1D452 <font> 0065
-1D453 <font> 0066
-1D454 <font> 0067
-1D456 <font> 0069
-1D457 <font> 006A
-1D458 <font> 006B
-1D459 <font> 006C
-1D45A <font> 006D
-1D45B <font> 006E
-1D45C <font> 006F
-1D45D <font> 0070
-1D45E <font> 0071
-1D45F <font> 0072
-1D460 <font> 0073
-1D461 <font> 0074
-1D462 <font> 0075
-1D463 <font> 0076
-1D464 <font> 0077
-1D465 <font> 0078
-1D466 <font> 0079
-1D467 <font> 007A
-1D468 <font> 0041
-1D469 <font> 0042
-1D46A <font> 0043
-1D46B <font> 0044
-1D46C <font> 0045
-1D46D <font> 0046
-1D46E <font> 0047
-1D46F <font> 0048
-1D470 <font> 0049
-1D471 <font> 004A
-1D472 <font> 004B
-1D473 <font> 004C
-1D474 <font> 004D
-1D475 <font> 004E
-1D476 <font> 004F
-1D477 <font> 0050
-1D478 <font> 0051
-1D479 <font> 0052
-1D47A <font> 0053
-1D47B <font> 0054
-1D47C <font> 0055
-1D47D <font> 0056
-1D47E <font> 0057
-1D47F <font> 0058
-1D480 <font> 0059
-1D481 <font> 005A
-1D482 <font> 0061
-1D483 <font> 0062
-1D484 <font> 0063
-1D485 <font> 0064
-1D486 <font> 0065
-1D487 <font> 0066
-1D488 <font> 0067
-1D489 <font> 0068
-1D48A <font> 0069
-1D48B <font> 006A
-1D48C <font> 006B
-1D48D <font> 006C
-1D48E <font> 006D
-1D48F <font> 006E
-1D490 <font> 006F
-1D491 <font> 0070
-1D492 <font> 0071
-1D493 <font> 0072
-1D494 <font> 0073
-1D495 <font> 0074
-1D496 <font> 0075
-1D497 <font> 0076
-1D498 <font> 0077
-1D499 <font> 0078
-1D49A <font> 0079
-1D49B <font> 007A
-1D49C <font> 0041
-1D49E <font> 0043
-1D49F <font> 0044
-1D4A2 <font> 0047
-1D4A5 <font> 004A
-1D4A6 <font> 004B
-1D4A9 <font> 004E
-1D4AA <font> 004F
-1D4AB <font> 0050
-1D4AC <font> 0051
-1D4AE <font> 0053
-1D4AF <font> 0054
-1D4B0 <font> 0055
-1D4B1 <font> 0056
-1D4B2 <font> 0057
-1D4B3 <font> 0058
-1D4B4 <font> 0059
-1D4B5 <font> 005A
-1D4B6 <font> 0061
-1D4B7 <font> 0062
-1D4B8 <font> 0063
-1D4B9 <font> 0064
-1D4BB <font> 0066
-1D4BD <font> 0068
-1D4BE <font> 0069
-1D4BF <font> 006A
-1D4C0 <font> 006B
-1D4C2 <font> 006D
-1D4C3 <font> 006E
-1D4C5 <font> 0070
-1D4C6 <font> 0071
-1D4C7 <font> 0072
-1D4C8 <font> 0073
-1D4C9 <font> 0074
-1D4CA <font> 0075
-1D4CB <font> 0076
-1D4CC <font> 0077
-1D4CD <font> 0078
-1D4CE <font> 0079
-1D4CF <font> 007A
-1D4D0 <font> 0041
-1D4D1 <font> 0042
-1D4D2 <font> 0043
-1D4D3 <font> 0044
-1D4D4 <font> 0045
-1D4D5 <font> 0046
-1D4D6 <font> 0047
-1D4D7 <font> 0048
-1D4D8 <font> 0049
-1D4D9 <font> 004A
-1D4DA <font> 004B
-1D4DB <font> 004C
-1D4DC <font> 004D
-1D4DD <font> 004E
-1D4DE <font> 004F
-1D4DF <font> 0050
-1D4E0 <font> 0051
-1D4E1 <font> 0052
-1D4E2 <font> 0053
-1D4E3 <font> 0054
-1D4E4 <font> 0055
-1D4E5 <font> 0056
-1D4E6 <font> 0057
-1D4E7 <font> 0058
-1D4E8 <font> 0059
-1D4E9 <font> 005A
-1D4EA <font> 0061
-1D4EB <font> 0062
-1D4EC <font> 0063
-1D4ED <font> 0064
-1D4EE <font> 0065
-1D4EF <font> 0066
-1D4F0 <font> 0067
-1D4F1 <font> 0068
-1D4F2 <font> 0069
-1D4F3 <font> 006A
-1D4F4 <font> 006B
-1D4F5 <font> 006C
-1D4F6 <font> 006D
-1D4F7 <font> 006E
-1D4F8 <font> 006F
-1D4F9 <font> 0070
-1D4FA <font> 0071
-1D4FB <font> 0072
-1D4FC <font> 0073
-1D4FD <font> 0074
-1D4FE <font> 0075
-1D4FF <font> 0076
-1D500 <font> 0077
-1D501 <font> 0078
-1D502 <font> 0079
-1D503 <font> 007A
-1D504 <font> 0041
-1D505 <font> 0042
-1D507 <font> 0044
-1D508 <font> 0045
-1D509 <font> 0046
-1D50A <font> 0047
-1D50D <font> 004A
-1D50E <font> 004B
-1D50F <font> 004C
-1D510 <font> 004D
-1D511 <font> 004E
-1D512 <font> 004F
-1D513 <font> 0050
-1D514 <font> 0051
-1D516 <font> 0053
-1D517 <font> 0054
-1D518 <font> 0055
-1D519 <font> 0056
-1D51A <font> 0057
-1D51B <font> 0058
-1D51C <font> 0059
-1D51E <font> 0061
-1D51F <font> 0062
-1D520 <font> 0063
-1D521 <font> 0064
-1D522 <font> 0065
-1D523 <font> 0066
-1D524 <font> 0067
-1D525 <font> 0068
-1D526 <font> 0069
-1D527 <font> 006A
-1D528 <font> 006B
-1D529 <font> 006C
-1D52A <font> 006D
-1D52B <font> 006E
-1D52C <font> 006F
-1D52D <font> 0070
-1D52E <font> 0071
-1D52F <font> 0072
-1D530 <font> 0073
-1D531 <font> 0074
-1D532 <font> 0075
-1D533 <font> 0076
-1D534 <font> 0077
-1D535 <font> 0078
-1D536 <font> 0079
-1D537 <font> 007A
-1D538 <font> 0041
-1D539 <font> 0042
-1D53B <font> 0044
-1D53C <font> 0045
-1D53D <font> 0046
-1D53E <font> 0047
-1D540 <font> 0049
-1D541 <font> 004A
-1D542 <font> 004B
-1D543 <font> 004C
-1D544 <font> 004D
-1D546 <font> 004F
-1D54A <font> 0053
-1D54B <font> 0054
-1D54C <font> 0055
-1D54D <font> 0056
-1D54E <font> 0057
-1D54F <font> 0058
-1D550 <font> 0059
-1D552 <font> 0061
-1D553 <font> 0062
-1D554 <font> 0063
-1D555 <font> 0064
-1D556 <font> 0065
-1D557 <font> 0066
-1D558 <font> 0067
-1D559 <font> 0068
-1D55A <font> 0069
-1D55B <font> 006A
-1D55C <font> 006B
-1D55D <font> 006C
-1D55E <font> 006D
-1D55F <font> 006E
-1D560 <font> 006F
-1D561 <font> 0070
-1D562 <font> 0071
-1D563 <font> 0072
-1D564 <font> 0073
-1D565 <font> 0074
-1D566 <font> 0075
-1D567 <font> 0076
-1D568 <font> 0077
-1D569 <font> 0078
-1D56A <font> 0079
-1D56B <font> 007A
-1D56C <font> 0041
-1D56D <font> 0042
-1D56E <font> 0043
-1D56F <font> 0044
-1D570 <font> 0045
-1D571 <font> 0046
-1D572 <font> 0047
-1D573 <font> 0048
-1D574 <font> 0049
-1D575 <font> 004A
-1D576 <font> 004B
-1D577 <font> 004C
-1D578 <font> 004D
-1D579 <font> 004E
-1D57A <font> 004F
-1D57B <font> 0050
-1D57C <font> 0051
-1D57D <font> 0052
-1D57E <font> 0053
-1D57F <font> 0054
-1D580 <font> 0055
-1D581 <font> 0056
-1D582 <font> 0057
-1D583 <font> 0058
-1D584 <font> 0059
-1D585 <font> 005A
-1D586 <font> 0061
-1D587 <font> 0062
-1D588 <font> 0063
-1D589 <font> 0064
-1D58A <font> 0065
-1D58B <font> 0066
-1D58C <font> 0067
-1D58D <font> 0068
-1D58E <font> 0069
-1D58F <font> 006A
-1D590 <font> 006B
-1D591 <font> 006C
-1D592 <font> 006D
-1D593 <font> 006E
-1D594 <font> 006F
-1D595 <font> 0070
-1D596 <font> 0071
-1D597 <font> 0072
-1D598 <font> 0073
-1D599 <font> 0074
-1D59A <font> 0075
-1D59B <font> 0076
-1D59C <font> 0077
-1D59D <font> 0078
-1D59E <font> 0079
-1D59F <font> 007A
-1D5A0 <font> 0041
-1D5A1 <font> 0042
-1D5A2 <font> 0043
-1D5A3 <font> 0044
-1D5A4 <font> 0045
-1D5A5 <font> 0046
-1D5A6 <font> 0047
-1D5A7 <font> 0048
-1D5A8 <font> 0049
-1D5A9 <font> 004A
-1D5AA <font> 004B
-1D5AB <font> 004C
-1D5AC <font> 004D
-1D5AD <font> 004E
-1D5AE <font> 004F
-1D5AF <font> 0050
-1D5B0 <font> 0051
-1D5B1 <font> 0052
-1D5B2 <font> 0053
-1D5B3 <font> 0054
-1D5B4 <font> 0055
-1D5B5 <font> 0056
-1D5B6 <font> 0057
-1D5B7 <font> 0058
-1D5B8 <font> 0059
-1D5B9 <font> 005A
-1D5BA <font> 0061
-1D5BB <font> 0062
-1D5BC <font> 0063
-1D5BD <font> 0064
-1D5BE <font> 0065
-1D5BF <font> 0066
-1D5C0 <font> 0067
-1D5C1 <font> 0068
-1D5C2 <font> 0069
-1D5C3 <font> 006A
-1D5C4 <font> 006B
-1D5C5 <font> 006C
-1D5C6 <font> 006D
-1D5C7 <font> 006E
-1D5C8 <font> 006F
-1D5C9 <font> 0070
-1D5CA <font> 0071
-1D5CB <font> 0072
-1D5CC <font> 0073
-1D5CD <font> 0074
-1D5CE <font> 0075
-1D5CF <font> 0076
-1D5D0 <font> 0077
-1D5D1 <font> 0078
-1D5D2 <font> 0079
-1D5D3 <font> 007A
-1D5D4 <font> 0041
-1D5D5 <font> 0042
-1D5D6 <font> 0043
-1D5D7 <font> 0044
-1D5D8 <font> 0045
-1D5D9 <font> 0046
-1D5DA <font> 0047
-1D5DB <font> 0048
-1D5DC <font> 0049
-1D5DD <font> 004A
-1D5DE <font> 004B
-1D5DF <font> 004C
-1D5E0 <font> 004D
-1D5E1 <font> 004E
-1D5E2 <font> 004F
-1D5E3 <font> 0050
-1D5E4 <font> 0051
-1D5E5 <font> 0052
-1D5E6 <font> 0053
-1D5E7 <font> 0054
-1D5E8 <font> 0055
-1D5E9 <font> 0056
-1D5EA <font> 0057
-1D5EB <font> 0058
-1D5EC <font> 0059
-1D5ED <font> 005A
-1D5EE <font> 0061
-1D5EF <font> 0062
-1D5F0 <font> 0063
-1D5F1 <font> 0064
-1D5F2 <font> 0065
-1D5F3 <font> 0066
-1D5F4 <font> 0067
-1D5F5 <font> 0068
-1D5F6 <font> 0069
-1D5F7 <font> 006A
-1D5F8 <font> 006B
-1D5F9 <font> 006C
-1D5FA <font> 006D
-1D5FB <font> 006E
-1D5FC <font> 006F
-1D5FD <font> 0070
-1D5FE <font> 0071
-1D5FF <font> 0072
-1D600 <font> 0073
-1D601 <font> 0074
-1D602 <font> 0075
-1D603 <font> 0076
-1D604 <font> 0077
-1D605 <font> 0078
-1D606 <font> 0079
-1D607 <font> 007A
-1D608 <font> 0041
-1D609 <font> 0042
-1D60A <font> 0043
-1D60B <font> 0044
-1D60C <font> 0045
-1D60D <font> 0046
-1D60E <font> 0047
-1D60F <font> 0048
-1D610 <font> 0049
-1D611 <font> 004A
-1D612 <font> 004B
-1D613 <font> 004C
-1D614 <font> 004D
-1D615 <font> 004E
-1D616 <font> 004F
-1D617 <font> 0050
-1D618 <font> 0051
-1D619 <font> 0052
-1D61A <font> 0053
-1D61B <font> 0054
-1D61C <font> 0055
-1D61D <font> 0056
-1D61E <font> 0057
-1D61F <font> 0058
-1D620 <font> 0059
-1D621 <font> 005A
-1D622 <font> 0061
-1D623 <font> 0062
-1D624 <font> 0063
-1D625 <font> 0064
-1D626 <font> 0065
-1D627 <font> 0066
-1D628 <font> 0067
-1D629 <font> 0068
-1D62A <font> 0069
-1D62B <font> 006A
-1D62C <font> 006B
-1D62D <font> 006C
-1D62E <font> 006D
-1D62F <font> 006E
-1D630 <font> 006F
-1D631 <font> 0070
-1D632 <font> 0071
-1D633 <font> 0072
-1D634 <font> 0073
-1D635 <font> 0074
-1D636 <font> 0075
-1D637 <font> 0076
-1D638 <font> 0077
-1D639 <font> 0078
-1D63A <font> 0079
-1D63B <font> 007A
-1D63C <font> 0041
-1D63D <font> 0042
-1D63E <font> 0043
-1D63F <font> 0044
-1D640 <font> 0045
-1D641 <font> 0046
-1D642 <font> 0047
-1D643 <font> 0048
-1D644 <font> 0049
-1D645 <font> 004A
-1D646 <font> 004B
-1D647 <font> 004C
-1D648 <font> 004D
-1D649 <font> 004E
-1D64A <font> 004F
-1D64B <font> 0050
-1D64C <font> 0051
-1D64D <font> 0052
-1D64E <font> 0053
-1D64F <font> 0054
-1D650 <font> 0055
-1D651 <font> 0056
-1D652 <font> 0057
-1D653 <font> 0058
-1D654 <font> 0059
-1D655 <font> 005A
-1D656 <font> 0061
-1D657 <font> 0062
-1D658 <font> 0063
-1D659 <font> 0064
-1D65A <font> 0065
-1D65B <font> 0066
-1D65C <font> 0067
-1D65D <font> 0068
-1D65E <font> 0069
-1D65F <font> 006A
-1D660 <font> 006B
-1D661 <font> 006C
-1D662 <font> 006D
-1D663 <font> 006E
-1D664 <font> 006F
-1D665 <font> 0070
-1D666 <font> 0071
-1D667 <font> 0072
-1D668 <font> 0073
-1D669 <font> 0074
-1D66A <font> 0075
-1D66B <font> 0076
-1D66C <font> 0077
-1D66D <font> 0078
-1D66E <font> 0079
-1D66F <font> 007A
-1D670 <font> 0041
-1D671 <font> 0042
-1D672 <font> 0043
-1D673 <font> 0044
-1D674 <font> 0045
-1D675 <font> 0046
-1D676 <font> 0047
-1D677 <font> 0048
-1D678 <font> 0049
-1D679 <font> 004A
-1D67A <font> 004B
-1D67B <font> 004C
-1D67C <font> 004D
-1D67D <font> 004E
-1D67E <font> 004F
-1D67F <font> 0050
-1D680 <font> 0051
-1D681 <font> 0052
-1D682 <font> 0053
-1D683 <font> 0054
-1D684 <font> 0055
-1D685 <font> 0056
-1D686 <font> 0057
-1D687 <font> 0058
-1D688 <font> 0059
-1D689 <font> 005A
-1D68A <font> 0061
-1D68B <font> 0062
-1D68C <font> 0063
-1D68D <font> 0064
-1D68E <font> 0065
-1D68F <font> 0066
-1D690 <font> 0067
-1D691 <font> 0068
-1D692 <font> 0069
-1D693 <font> 006A
-1D694 <font> 006B
-1D695 <font> 006C
-1D696 <font> 006D
-1D697 <font> 006E
-1D698 <font> 006F
-1D699 <font> 0070
-1D69A <font> 0071
-1D69B <font> 0072
-1D69C <font> 0073
-1D69D <font> 0074
-1D69E <font> 0075
-1D69F <font> 0076
-1D6A0 <font> 0077
-1D6A1 <font> 0078
-1D6A2 <font> 0079
-1D6A3 <font> 007A
-1D6A8 <font> 0391
-1D6A9 <font> 0392
-1D6AA <font> 0393
-1D6AB <font> 0394
-1D6AC <font> 0395
-1D6AD <font> 0396
-1D6AE <font> 0397
-1D6AF <font> 0398
-1D6B0 <font> 0399
-1D6B1 <font> 039A
-1D6B2 <font> 039B
-1D6B3 <font> 039C
-1D6B4 <font> 039D
-1D6B5 <font> 039E
-1D6B6 <font> 039F
-1D6B7 <font> 03A0
-1D6B8 <font> 03A1
-1D6B9 <font> 03F4
-1D6BA <font> 03A3
-1D6BB <font> 03A4
-1D6BC <font> 03A5
-1D6BD <font> 03A6
-1D6BE <font> 03A7
-1D6BF <font> 03A8
-1D6C0 <font> 03A9
-1D6C1 <font> 2207
-1D6C2 <font> 03B1
-1D6C3 <font> 03B2
-1D6C4 <font> 03B3
-1D6C5 <font> 03B4
-1D6C6 <font> 03B5
-1D6C7 <font> 03B6
-1D6C8 <font> 03B7
-1D6C9 <font> 03B8
-1D6CA <font> 03B9
-1D6CB <font> 03BA
-1D6CC <font> 03BB
-1D6CD <font> 03BC
-1D6CE <font> 03BD
-1D6CF <font> 03BE
-1D6D0 <font> 03BF
-1D6D1 <font> 03C0
-1D6D2 <font> 03C1
-1D6D3 <font> 03C2
-1D6D4 <font> 03C3
-1D6D5 <font> 03C4
-1D6D6 <font> 03C5
-1D6D7 <font> 03C6
-1D6D8 <font> 03C7
-1D6D9 <font> 03C8
-1D6DA <font> 03C9
-1D6DB <font> 2202
-1D6DC <font> 03F5
-1D6DD <font> 03D1
-1D6DE <font> 03F0
-1D6DF <font> 03D5
-1D6E0 <font> 03F1
-1D6E1 <font> 03D6
-1D6E2 <font> 0391
-1D6E3 <font> 0392
-1D6E4 <font> 0393
-1D6E5 <font> 0394
-1D6E6 <font> 0395
-1D6E7 <font> 0396
-1D6E8 <font> 0397
-1D6E9 <font> 0398
-1D6EA <font> 0399
-1D6EB <font> 039A
-1D6EC <font> 039B
-1D6ED <font> 039C
-1D6EE <font> 039D
-1D6EF <font> 039E
-1D6F0 <font> 039F
-1D6F1 <font> 03A0
-1D6F2 <font> 03A1
-1D6F3 <font> 03F4
-1D6F4 <font> 03A3
-1D6F5 <font> 03A4
-1D6F6 <font> 03A5
-1D6F7 <font> 03A6
-1D6F8 <font> 03A7
-1D6F9 <font> 03A8
-1D6FA <font> 03A9
-1D6FB <font> 2207
-1D6FC <font> 03B1
-1D6FD <font> 03B2
-1D6FE <font> 03B3
-1D6FF <font> 03B4
-1D700 <font> 03B5
-1D701 <font> 03B6
-1D702 <font> 03B7
-1D703 <font> 03B8
-1D704 <font> 03B9
-1D705 <font> 03BA
-1D706 <font> 03BB
-1D707 <font> 03BC
-1D708 <font> 03BD
-1D709 <font> 03BE
-1D70A <font> 03BF
-1D70B <font> 03C0
-1D70C <font> 03C1
-1D70D <font> 03C2
-1D70E <font> 03C3
-1D70F <font> 03C4
-1D710 <font> 03C5
-1D711 <font> 03C6
-1D712 <font> 03C7
-1D713 <font> 03C8
-1D714 <font> 03C9
-1D715 <font> 2202
-1D716 <font> 03F5
-1D717 <font> 03D1
-1D718 <font> 03F0
-1D719 <font> 03D5
-1D71A <font> 03F1
-1D71B <font> 03D6
-1D71C <font> 0391
-1D71D <font> 0392
-1D71E <font> 0393
-1D71F <font> 0394
-1D720 <font> 0395
-1D721 <font> 0396
-1D722 <font> 0397
-1D723 <font> 0398
-1D724 <font> 0399
-1D725 <font> 039A
-1D726 <font> 039B
-1D727 <font> 039C
-1D728 <font> 039D
-1D729 <font> 039E
-1D72A <font> 039F
-1D72B <font> 03A0
-1D72C <font> 03A1
-1D72D <font> 03F4
-1D72E <font> 03A3
-1D72F <font> 03A4
-1D730 <font> 03A5
-1D731 <font> 03A6
-1D732 <font> 03A7
-1D733 <font> 03A8
-1D734 <font> 03A9
-1D735 <font> 2207
-1D736 <font> 03B1
-1D737 <font> 03B2
-1D738 <font> 03B3
-1D739 <font> 03B4
-1D73A <font> 03B5
-1D73B <font> 03B6
-1D73C <font> 03B7
-1D73D <font> 03B8
-1D73E <font> 03B9
-1D73F <font> 03BA
-1D740 <font> 03BB
-1D741 <font> 03BC
-1D742 <font> 03BD
-1D743 <font> 03BE
-1D744 <font> 03BF
-1D745 <font> 03C0
-1D746 <font> 03C1
-1D747 <font> 03C2
-1D748 <font> 03C3
-1D749 <font> 03C4
-1D74A <font> 03C5
-1D74B <font> 03C6
-1D74C <font> 03C7
-1D74D <font> 03C8
-1D74E <font> 03C9
-1D74F <font> 2202
-1D750 <font> 03F5
-1D751 <font> 03D1
-1D752 <font> 03F0
-1D753 <font> 03D5
-1D754 <font> 03F1
-1D755 <font> 03D6
-1D756 <font> 0391
-1D757 <font> 0392
-1D758 <font> 0393
-1D759 <font> 0394
-1D75A <font> 0395
-1D75B <font> 0396
-1D75C <font> 0397
-1D75D <font> 0398
-1D75E <font> 0399
-1D75F <font> 039A
-1D760 <font> 039B
-1D761 <font> 039C
-1D762 <font> 039D
-1D763 <font> 039E
-1D764 <font> 039F
-1D765 <font> 03A0
-1D766 <font> 03A1
-1D767 <font> 03F4
-1D768 <font> 03A3
-1D769 <font> 03A4
-1D76A <font> 03A5
-1D76B <font> 03A6
-1D76C <font> 03A7
-1D76D <font> 03A8
-1D76E <font> 03A9
-1D76F <font> 2207
-1D770 <font> 03B1
-1D771 <font> 03B2
-1D772 <font> 03B3
-1D773 <font> 03B4
-1D774 <font> 03B5
-1D775 <font> 03B6
-1D776 <font> 03B7
-1D777 <font> 03B8
-1D778 <font> 03B9
-1D779 <font> 03BA
-1D77A <font> 03BB
-1D77B <font> 03BC
-1D77C <font> 03BD
-1D77D <font> 03BE
-1D77E <font> 03BF
-1D77F <font> 03C0
-1D780 <font> 03C1
-1D781 <font> 03C2
-1D782 <font> 03C3
-1D783 <font> 03C4
-1D784 <font> 03C5
-1D785 <font> 03C6
-1D786 <font> 03C7
-1D787 <font> 03C8
-1D788 <font> 03C9
-1D789 <font> 2202
-1D78A <font> 03F5
-1D78B <font> 03D1
-1D78C <font> 03F0
-1D78D <font> 03D5
-1D78E <font> 03F1
-1D78F <font> 03D6
-1D790 <font> 0391
-1D791 <font> 0392
-1D792 <font> 0393
-1D793 <font> 0394
-1D794 <font> 0395
-1D795 <font> 0396
-1D796 <font> 0397
-1D797 <font> 0398
-1D798 <font> 0399
-1D799 <font> 039A
-1D79A <font> 039B
-1D79B <font> 039C
-1D79C <font> 039D
-1D79D <font> 039E
-1D79E <font> 039F
-1D79F <font> 03A0
-1D7A0 <font> 03A1
-1D7A1 <font> 03F4
-1D7A2 <font> 03A3
-1D7A3 <font> 03A4
-1D7A4 <font> 03A5
-1D7A5 <font> 03A6
-1D7A6 <font> 03A7
-1D7A7 <font> 03A8
-1D7A8 <font> 03A9
-1D7A9 <font> 2207
-1D7AA <font> 03B1
-1D7AB <font> 03B2
-1D7AC <font> 03B3
-1D7AD <font> 03B4
-1D7AE <font> 03B5
-1D7AF <font> 03B6
-1D7B0 <font> 03B7
-1D7B1 <font> 03B8
-1D7B2 <font> 03B9
-1D7B3 <font> 03BA
-1D7B4 <font> 03BB
-1D7B5 <font> 03BC
-1D7B6 <font> 03BD
-1D7B7 <font> 03BE
-1D7B8 <font> 03BF
-1D7B9 <font> 03C0
-1D7BA <font> 03C1
-1D7BB <font> 03C2
-1D7BC <font> 03C3
-1D7BD <font> 03C4
-1D7BE <font> 03C5
-1D7BF <font> 03C6
-1D7C0 <font> 03C7
-1D7C1 <font> 03C8
-1D7C2 <font> 03C9
-1D7C3 <font> 2202
-1D7C4 <font> 03F5
-1D7C5 <font> 03D1
-1D7C6 <font> 03F0
-1D7C7 <font> 03D5
-1D7C8 <font> 03F1
-1D7C9 <font> 03D6
-1D7CE <font> 0030
-1D7CF <font> 0031
-1D7D0 <font> 0032
-1D7D1 <font> 0033
-1D7D2 <font> 0034
-1D7D3 <font> 0035
-1D7D4 <font> 0036
-1D7D5 <font> 0037
-1D7D6 <font> 0038
-1D7D7 <font> 0039
-1D7D8 <font> 0030
-1D7D9 <font> 0031
-1D7DA <font> 0032
-1D7DB <font> 0033
-1D7DC <font> 0034
-1D7DD <font> 0035
-1D7DE <font> 0036
-1D7DF <font> 0037
-1D7E0 <font> 0038
-1D7E1 <font> 0039
-1D7E2 <font> 0030
-1D7E3 <font> 0031
-1D7E4 <font> 0032
-1D7E5 <font> 0033
-1D7E6 <font> 0034
-1D7E7 <font> 0035
-1D7E8 <font> 0036
-1D7E9 <font> 0037
-1D7EA <font> 0038
-1D7EB <font> 0039
-1D7EC <font> 0030
-1D7ED <font> 0031
-1D7EE <font> 0032
-1D7EF <font> 0033
-1D7F0 <font> 0034
-1D7F1 <font> 0035
-1D7F2 <font> 0036
-1D7F3 <font> 0037
-1D7F4 <font> 0038
-1D7F5 <font> 0039
-1D7F6 <font> 0030
-1D7F7 <font> 0031
-1D7F8 <font> 0032
-1D7F9 <font> 0033
-1D7FA <font> 0034
-1D7FB <font> 0035
-1D7FC <font> 0036
-1D7FD <font> 0037
-1D7FE <font> 0038
-1D7FF <font> 0039
-2F800 4E3D
-2F801 4E38
-2F802 4E41
-2F803 20122
-2F804 4F60
-2F805 4FAE
-2F806 4FBB
-2F807 5002
-2F808 507A
-2F809 5099
-2F80A 50E7
-2F80B 50CF
-2F80C 349E
-2F80D 2063A
-2F80E 514D
-2F80F 5154
-2F810 5164
-2F811 5177
-2F812 2051C
-2F813 34B9
-2F814 5167
-2F815 518D
-2F816 2054B
-2F817 5197
-2F818 51A4
-2F819 4ECC
-2F81A 51AC
-2F81B 51B5
-2F81C 291DF
-2F81D 51F5
-2F81E 5203
-2F81F 34DF
-2F820 523B
-2F821 5246
-2F822 5272
-2F823 5277
-2F824 3515
-2F825 52C7
-2F826 52C9
-2F827 52E4
-2F828 52FA
-2F829 5305
-2F82A 5306
-2F82B 5317
-2F82C 5349
-2F82D 5351
-2F82E 535A
-2F82F 5373
-2F830 537D
-2F831 2F833 537F
-2F834 20A2C
-2F835 7070
-2F836 53CA
-2F837 53DF
-2F838 20B63
-2F839 53EB
-2F83A 53F1
-2F83B 5406
-2F83C 549E
-2F83D 5438
-2F83E 5448
-2F83F 5468
-2F840 54A2
-2F841 54F6
-2F842 5510
-2F843 5553
-2F844 5563
-2F845 2F846 5584
-2F847 5599
-2F848 55AB
-2F849 55B3
-2F84A 55C2
-2F84B 5716
-2F84C 5606
-2F84D 5717
-2F84E 5651
-2F84F 5674
-2F850 5207
-2F851 58EE
-2F852 57CE
-2F853 57F4
-2F854 580D
-2F855 578B
-2F856 5832
-2F857 5831
-2F858 58AC
-2F859 214E4
-2F85A 58F2
-2F85B 58F7
-2F85C 5906
-2F85D 591A
-2F85E 5922
-2F85F 5962
-2F860 216A8
-2F861 216EA
-2F862 59EC
-2F863 5A1B
-2F864 5A27
-2F865 59D8
-2F866 5A66
-2F867 36EE
-2F868 2136A
-2F869 5B08
-2F86A 2F86B 5B3E
-2F86C 219C8
-2F86D 5BC3
-2F86E 5BD8
-2F86F 5BE7
-2F870 5BF3
-2F871 21B18
-2F872 5BFF
-2F873 5C06
-2F874 5F33
-2F875 5C22
-2F876 3781
-2F877 5C60
-2F878 5C6E
-2F879 5CC0
-2F87A 5C8D
-2F87B 21DE4
-2F87C 5D43
-2F87D 21DE6
-2F87E 5D6E
-2F87F 5D6B
-2F880 5D7C
-2F881 5DE1
-2F882 5DE2
-2F883 382F
-2F884 5DFD
-2F885 5E28
-2F886 5E3D
-2F887 5E69
-2F888 3862
-2F889 22183
-2F88A 387C
-2F88B 5EB0
-2F88C 5EB3
-2F88D 5EB6
-2F88E 5ECA
-2F88F 2A392
-2F890 5EFE
-2F891 2F892 22331
-2F893 8201
-2F894 2F895 5F22
-2F896 38C7
-2F897 232B8
-2F898 261DA
-2F899 5F62
-2F89A 5F6B
-2F89B 38E3
-2F89C 5F9A
-2F89D 5FCD
-2F89E 5FD7
-2F89F 5FF9
-2F8A0 6081
-2F8A1 393A
-2F8A2 391C
-2F8A3 6094
-2F8A4 226D4
-2F8A5 60C7
-2F8A6 6148
-2F8A7 614C
-2F8A8 614E
-2F8A9 614C
-2F8AA 617A
-2F8AB 618E
-2F8AC 61B2
-2F8AD 61A4
-2F8AE 61AF
-2F8AF 61DE
-2F8B0 61F2
-2F8B1 61F6
-2F8B2 6210
-2F8B3 621B
-2F8B4 625D
-2F8B5 62B1
-2F8B6 62D4
-2F8B7 6350
-2F8B8 22B0C
-2F8B9 633D
-2F8BA 62FC
-2F8BB 6368
-2F8BC 6383
-2F8BD 63E4
-2F8BE 22BF1
-2F8BF 6422
-2F8C0 63C5
-2F8C1 63A9
-2F8C2 3A2E
-2F8C3 6469
-2F8C4 647E
-2F8C5 649D
-2F8C6 6477
-2F8C7 3A6C
-2F8C8 654F
-2F8C9 656C
-2F8CA 2300A
-2F8CB 65E3
-2F8CC 66F8
-2F8CD 6649
-2F8CE 3B19
-2F8CF 6691
-2F8D0 3B08
-2F8D1 3AE4
-2F8D2 5192
-2F8D3 5195
-2F8D4 6700
-2F8D5 669C
-2F8D6 80AD
-2F8D7 43D9
-2F8D8 6717
-2F8D9 671B
-2F8DA 6721
-2F8DB 675E
-2F8DC 6753
-2F8DD 233C3
-2F8DE 3B49
-2F8DF 67FA
-2F8E0 6785
-2F8E1 6852
-2F8E2 6885
-2F8E3 2346D
-2F8E4 688E
-2F8E5 681F
-2F8E6 6914
-2F8E7 3B9D
-2F8E8 6942
-2F8E9 69A3
-2F8EA 69EA
-2F8EB 6AA8
-2F8EC 236A3
-2F8ED 6ADB
-2F8EE 3C18
-2F8EF 6B21
-2F8F0 238A7
-2F8F1 6B54
-2F8F2 3C4E
-2F8F3 6B72
-2F8F4 6B9F
-2F8F5 6BBA
-2F8F6 6BBB
-2F8F7 23A8D
-2F8F8 21D0B
-2F8F9 23AFA
-2F8FA 6C4E
-2F8FB 23CBC
-2F8FC 6CBF
-2F8FD 6CCD
-2F8FE 6C67
-2F8FF 6D16
-2F900 6D3E
-2F901 6D77
-2F902 6D41
-2F903 6D69
-2F904 6D78
-2F905 6D85
-2F906 23D1E
-2F907 6D34
-2F908 6E2F
-2F909 6E6E
-2F90A 3D33
-2F90B 6ECB
-2F90C 6EC7
-2F90D 23ED1
-2F90E 6DF9
-2F90F 6F6E
-2F910 23F5E
-2F911 23F8E
-2F912 6FC6
-2F913 7039
-2F914 701E
-2F915 701B
-2F916 3D96
-2F917 704A
-2F918 707D
-2F919 7077
-2F91A 70AD
-2F91B 20525
-2F91C 7145
-2F91D 24263
-2F91E 719C
-2F91F 43AB
-2F920 7228
-2F921 7235
-2F922 7250
-2F923 24608
-2F924 7280
-2F925 7295
-2F926 24735
-2F927 24814
-2F928 737A
-2F929 738B
-2F92A 3EAC
-2F92B 73A5
-2F92C 2F92D 3EB8
-2F92E 7447
-2F92F 745C
-2F930 7471
-2F931 7485
-2F932 74CA
-2F933 3F1B
-2F934 7524
-2F935 24C36
-2F936 753E
-2F937 24C92
-2F938 7570
-2F939 2219F
-2F93A 7610
-2F93B 24FA1
-2F93C 24FB8
-2F93D 25044
-2F93E 3FFC
-2F93F 4008
-2F940 76F4
-2F941 250F3
-2F942 250F2
-2F943 25119
-2F944 25133
-2F945 771E
-2F946 2F947 771F
-2F948 774A
-2F949 4039
-2F94A 778B
-2F94B 4046
-2F94C 4096
-2F94D 2541D
-2F94E 784E
-2F94F 788C
-2F950 78CC
-2F951 40E3
-2F952 25626
-2F953 7956
-2F954 2569A
-2F955 256C5
-2F956 798F
-2F957 79EB
-2F958 412F
-2F959 7A40
-2F95A 7A4A
-2F95B 7A4F
-2F95C 2597C
-2F95D 2F95E 25AA7
-2F95F 7AAE
-2F960 4202
-2F961 25BAB
-2F962 7BC6
-2F963 7BC9
-2F964 4227
-2F965 25C80
-2F966 7CD2
-2F967 42A0
-2F968 7CE8
-2F969 7CE3
-2F96A 7D00
-2F96B 25F86
-2F96C 7D63
-2F96D 4301
-2F96E 7DC7
-2F96F 7E02
-2F970 7E45
-2F971 4334
-2F972 26228
-2F973 26247
-2F974 4359
-2F975 262D9
-2F976 7F7A
-2F977 2633E
-2F978 7F95
-2F979 7FFA
-2F97A 8005
-2F97B 264DA
-2F97C 26523
-2F97D 8060
-2F97E 265A8
-2F97F 8070
-2F980 2335F
-2F981 43D5
-2F982 80B2
-2F983 8103
-2F984 440B
-2F985 813E
-2F986 5AB5
-2F987 267A7
-2F988 267B5
-2F989 23393
-2F98A 2339C
-2F98B 8201
-2F98C 8204
-2F98D 8F9E
-2F98E 446B
-2F98F 8291
-2F990 828B
-2F991 829D
-2F992 52B3
-2F993 82B1
-2F994 82B3
-2F995 82BD
-2F996 82E6
-2F997 26B3C
-2F998 82E5
-2F999 831D
-2F99A 8363
-2F99B 83AD
-2F99C 8323
-2F99D 83BD
-2F99E 83E7
-2F99F 8457
-2F9A0 8353
-2F9A1 83CA
-2F9A2 83CC
-2F9A3 83DC
-2F9A4 26C36
-2F9A5 26D6B
-2F9A6 26CD5
-2F9A7 452B
-2F9A8 84F1
-2F9A9 84F3
-2F9AA 8516
-2F9AB 273CA
-2F9AC 8564
-2F9AD 26F2C
-2F9AE 455D
-2F9AF 4561
-2F9B0 26FB1
-2F9B1 270D2
-2F9B2 456B
-2F9B3 8650
-2F9B4 865C
-2F9B5 8667
-2F9B6 8669
-2F9B7 86A9
-2F9B8 8688
-2F9B9 870E
-2F9BA 86E2
-2F9BB 8779
-2F9BC 8728
-2F9BD 876B
-2F9BE 8786
-2F9BF 4D57
-2F9C0 87E1
-2F9C1 8801
-2F9C2 45F9
-2F9C3 8860
-2F9C4 8863
-2F9C5 27667
-2F9C6 88D7
-2F9C7 88DE
-2F9C8 4635
-2F9C9 88FA
-2F9CA 34BB
-2F9CB 278AE
-2F9CC 27966
-2F9CD 46BE
-2F9CE 46C7
-2F9CF 8AA0
-2F9D0 8AED
-2F9D1 8B8A
-2F9D2 8C55
-2F9D3 27CA8
-2F9D4 8CAB
-2F9D5 8CC1
-2F9D6 8D1B
-2F9D7 8D77
-2F9D8 27F2F
-2F9D9 20804
-2F9DA 8DCB
-2F9DB 8DBC
-2F9DC 8DF0
-2F9DD 208DE
-2F9DE 8ED4
-2F9DF 8F38
-2F9E0 285D2
-2F9E1 285ED
-2F9E2 9094
-2F9E3 90F1
-2F9E4 9111
-2F9E5 2872E
-2F9E6 911B
-2F9E7 9238
-2F9E8 92D7
-2F9E9 92D8
-2F9EA 927C
-2F9EB 93F9
-2F9EC 9415
-2F9ED 28BFA
-2F9EE 958B
-2F9EF 4995
-2F9F0 95B7
-2F9F1 28D77
-2F9F2 49E6
-2F9F3 96C3
-2F9F4 5DB2
-2F9F5 9723
-2F9F6 29145
-2F9F7 2921A
-2F9F8 4A6E
-2F9F9 4A76
-2F9FA 97E0
-2F9FB 2940A
-2F9FC 4AB2
-2F9FD 29496
-2F9FE 2F9FF 980B
-2FA00 9829
-2FA01 295B6
-2FA02 98E2
-2FA03 4B33
-2FA04 9929
-2FA05 99A7
-2FA06 99C2
-2FA07 99FE
-2FA08 4BCE
-2FA09 29B30
-2FA0A 9B12
-2FA0B 9C40
-2FA0C 9CFD
-2FA0D 4CCE
-2FA0E 4CED
-2FA0F 9D67
-2FA10 2A0CE
-2FA11 4CF8
-2FA12 2A105
-2FA13 2A20E
-2FA14 2A291
-2FA15 9EBB
-2FA16 4D56
-2FA17 9EF9
-2FA18 9EFE
-2FA19 9F05
-2FA1A 9F0F
-2FA1B 9F16
-2FA1C 9F3B
-2FA1D 2A600
-END
diff --git a/Master/xemtex/perl/lib/unicore/Exact.pl b/Master/xemtex/perl/lib/unicore/Exact.pl
deleted file mode 100644
index 61ba06a9e70..00000000000
--- a/Master/xemtex/perl/lib/unicore/Exact.pl
+++ /dev/null
@@ -1,110 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-##
-## Data in this file used by ../utf8_heavy.pl
-##
-
-## Mapping from name to filename in ./lib
-%utf8::Exact = (
- ASCII => 'ASCII',
- All => 'Any',
- Alnum => 'Alnum',
- Alpha => 'Alpha',
- Any => 'Any',
- Assigned => 'Assigned',
- BidiAL => 'BidiAL',
- BidiAN => 'BidiAN',
- BidiB => 'BidiB',
- BidiBN => 'BidiBN',
- BidiCS => 'BidiCS',
- BidiEN => 'BidiEN',
- BidiES => 'BidiES',
- BidiET => 'BidiET',
- BidiL => 'BidiL',
- BidiLRE => 'BidiLRE',
- BidiLRO => 'BidiLRO',
- BidiNSM => 'BidiNSM',
- BidiON => 'BidiON',
- BidiPDF => 'BidiPDF',
- BidiR => 'BidiR',
- BidiRLE => 'BidiRLE',
- BidiRLO => 'BidiRLO',
- BidiS => 'BidiS',
- BidiWS => 'BidiWS',
- Blank => 'Blank',
- C => 'C',
- Canon => 'Canon',
- Cc => 'Cc',
- Cf => 'Cf',
- Cn => 'Cn',
- Cntrl => 'Cntrl',
- Co => 'Co',
- Compat => 'Compat',
- Cs => 'Cs',
- DCcircle => 'DCcircle',
- DCcompat => 'DCcompat',
- DCfinal => 'DCfinal',
- DCfont => 'DCfont',
- DCfraction => 'DCfracti',
- DCinitial => 'DCinitia',
- DCisolated => 'DCisolat',
- DCmedial => 'DCmedial',
- DCnarrow => 'DCnarrow',
- DCnoBreak => 'DCnoBrea',
- DCsmall => 'DCsmall',
- DCsquare => 'DCsquare',
- DCsub => 'DCsub',
- DCsuper => 'DCsuper',
- DCvertical => 'DCvertic',
- DCwide => 'DCwide',
- Digit => 'Digit',
- Graph => 'Graph',
- L => 'L',
-'L&' => 'L_',
- Ll => 'Ll',
- Lm => 'Lm',
- Lo => 'Lo',
- Lower => 'Lower',
- Lt => 'Lt',
- Lu => 'Lu',
- M => 'M',
- Mc => 'Mc',
- Me => 'Me',
- Mirrored => 'Mirrored',
- Mn => 'Mn',
- N => 'N',
- Nd => 'Nd',
- Nl => 'Nl',
- No => 'No',
- P => 'P',
- Pc => 'Pc',
- Pd => 'Pd',
- Pe => 'Pe',
- Pf => 'Pf',
- Pi => 'Pi',
- Po => 'Po',
- Print => 'Print',
- Ps => 'Ps',
- Punct => 'Punct',
- S => 'S',
- Sc => 'Sc',
- Sk => 'Sk',
- Sm => 'Sm',
- So => 'So',
- Space => 'Space',
- SpacePerl => 'SpacePer',
- Title => 'Title',
- Upper => 'Upper',
- Word => 'Word',
- XDigit => 'XDigit',
- Z => 'Z',
- Zl => 'Zl',
- Zp => 'Zp',
- Zs => 'Zs',
- _CanonDCIJ => '_CanonDC',
- _CaseIgnorable => '_CaseIgn',
- _CombAbove => '_CombAbo',
-);
-1;
diff --git a/Master/xemtex/perl/lib/unicore/JamoShort.pl b/Master/xemtex/perl/lib/unicore/JamoShort.pl
deleted file mode 100644
index 4ab02fd5449..00000000000
--- a/Master/xemtex/perl/lib/unicore/JamoShort.pl
+++ /dev/null
@@ -1,73 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-1100 G
-1101 GG
-1102 N
-1103 D
-1104 DD
-1105 R
-1106 M
-1107 B
-1108 BB
-1109 S
-110A SS
-110B
-110C J
-110D JJ
-110E C
-110F K
-1110 T
-1111 P
-1112 H
-1161 A
-1162 AE
-1163 YA
-1164 YAE
-1165 EO
-1166 E
-1167 YEO
-1168 YE
-1169 O
-116A WA
-116B WAE
-116C OE
-116D YO
-116E U
-116F WEO
-1170 WE
-1171 WI
-1172 YU
-1173 EU
-1174 YI
-1175 I
-11A8 G
-11A9 GG
-11AA GS
-11AB N
-11AC NJ
-11AD NH
-11AE D
-11AF L
-11B0 LG
-11B1 LM
-11B2 LB
-11B3 LS
-11B4 LT
-11B5 LP
-11B6 LH
-11B7 M
-11B8 B
-11B9 BS
-11BA S
-11BB SS
-11BC NG
-11BD J
-11BE C
-11BF K
-11C0 T
-11C1 P
-11C2 H
-END
diff --git a/Master/xemtex/perl/lib/unicore/Lbrk.pl b/Master/xemtex/perl/lib/unicore/Lbrk.pl
deleted file mode 100644
index 0a4eb153697..00000000000
--- a/Master/xemtex/perl/lib/unicore/Lbrk.pl
+++ /dev/null
@@ -1,1073 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0000 0008 CM
-0009 BA
-000A LF
-000B CM
-000C BK
-000D CR
-000E 001F CM
-0020 SP
-0021 EX
-0022 QU
-0023 AL
-0024 PR
-0025 PO
-0026 AL
-0027 QU
-0028 OP
-0029 CL
-002A AL
-002B PR
-002C IS
-002D HY
-002E IS
-002F SY
-0030 0039 NU
-003A 003B IS
-003C 003E AL
-003F EX
-0040 005A AL
-005B OP
-005C PR
-005D CL
-005E 007A AL
-007B OP
-007C BA
-007D CL
-007E AL
-007F 009F CM
-00A0 GL
-00A1 AI
-00A2 PO
-00A3 00A5 PR
-00A6 AL
-00A7 00A8 AI
-00A9 AL
-00AA AI
-00AB QU
-00AC AL
-00AD BA
-00AE 00AF AL
-00B0 PO
-00B1 PR
-00B2 00B3 AI
-00B4 BB
-00B5 AL
-00B6 00BA AI
-00BB QU
-00BC 00BF AI
-00C0 00C5 AL
-00C6 AI
-00C7 00CF AL
-00D0 AI
-00D1 00D6 AL
-00D7 00D8 AI
-00D9 00DD AL
-00DE 00E1 AI
-00E2 00E5 AL
-00E6 AI
-00E7 AL
-00E8 00EA AI
-00EB AL
-00EC 00ED AI
-00EE 00EF AL
-00F0 AI
-00F1 AL
-00F2 00F3 AI
-00F4 00F6 AL
-00F7 00FA AI
-00FB AL
-00FC AI
-00FD AL
-00FE AI
-00FF 0100 AL
-0101 AI
-0102 0110 AL
-0111 AI
-0112 AL
-0113 AI
-0114 011A AL
-011B AI
-011C 0125 AL
-0126 0127 AI
-0128 012A AL
-012B AI
-012C 0130 AL
-0131 0133 AI
-0134 0137 AL
-0138 AI
-0139 013E AL
-013F 0142 AI
-0143 AL
-0144 AI
-0145 0147 AL
-0148 014A AI
-014B 014C AL
-014D AI
-014E 0151 AL
-0152 0153 AI
-0154 0165 AL
-0166 0167 AI
-0168 016A AL
-016B AI
-016C 01CD AL
-01CE AI
-01CF AL
-01D0 AI
-01D1 AL
-01D2 AI
-01D3 AL
-01D4 AI
-01D5 AL
-01D6 AI
-01D7 AL
-01D8 AI
-01D9 AL
-01DA AI
-01DB AL
-01DC AI
-01DD 0220 AL
-0222 0233 AL
-0250 AL
-0251 AI
-0252 0260 AL
-0261 AI
-0262 02AD AL
-02B0 02C6 AL
-02C7 AI
-02C8 BB
-02C9 02CB AI
-02CC BB
-02CD AI
-02CE 02CF AL
-02D0 AI
-02D1 02D7 AL
-02D8 02DB AI
-02DC AL
-02DD AI
-02DE 02EE AL
-0300 034F CM
-0360 036F CM
-0374 0375 AL
-037A AL
-037E AL
-0384 038A AL
-038C AL
-038E 0390 AL
-0391 03A1 AI
-03A3 03A9 AI
-03AA 03B0 AL
-03B1 03C1 AI
-03C2 AL
-03C3 03C9 AI
-03CA 03CE AL
-03D0 03F6 AL
-0400 AL
-0401 AI
-0402 040F AL
-0410 044F AI
-0450 AL
-0451 AI
-0452 0482 AL
-0483 0486 CM
-0488 0489 CM
-048A 04CE AL
-04D0 04F5 AL
-04F8 04F9 AL
-0500 050F AL
-0531 0556 AL
-0559 055F AL
-0561 0587 AL
-0589 IS
-058A BA
-0591 05A1 CM
-05A3 05B9 CM
-05BB 05BD CM
-05BE AL
-05BF CM
-05C0 AL
-05C1 05C2 CM
-05C3 AL
-05C4 CM
-05D0 05EA AL
-05F0 05F4 AL
-060C AL
-061B AL
-061F AL
-0621 063A AL
-0640 064A AL
-064B 0655 CM
-0660 0669 NU
-066A 066F AL
-0670 CM
-0671 06D5 AL
-06D6 06E4 CM
-06E5 06E6 AL
-06E7 06E8 CM
-06E9 AL
-06EA 06ED CM
-06F0 06F9 NU
-06FA 06FE AL
-0700 070D AL
-070F CM
-0710 AL
-0711 CM
-0712 072C AL
-0730 074A CM
-0780 07A5 AL
-07A6 07B0 CM
-07B1 AL
-0901 0903 CM
-0905 0939 AL
-093C CM
-093D AL
-093E 094D CM
-0950 AL
-0951 0954 CM
-0958 0961 AL
-0962 0963 CM
-0964 0965 AL
-0966 096F NU
-0970 AL
-0981 0983 CM
-0985 098C AL
-098F 0990 AL
-0993 09A8 AL
-09AA 09B0 AL
-09B2 AL
-09B6 09B9 AL
-09BC CM
-09BE 09C4 CM
-09C7 09C8 CM
-09CB 09CD CM
-09D7 CM
-09DC 09DD AL
-09DF 09E1 AL
-09E2 09E3 CM
-09E6 09EF NU
-09F0 09F1 AL
-09F2 09F3 PR
-09F4 09FA AL
-0A02 CM
-0A05 0A0A AL
-0A0F 0A10 AL
-0A13 0A28 AL
-0A2A 0A30 AL
-0A32 0A33 AL
-0A35 0A36 AL
-0A38 0A39 AL
-0A3C CM
-0A3E 0A42 CM
-0A47 0A48 CM
-0A4B 0A4D CM
-0A59 0A5C AL
-0A5E AL
-0A66 0A6F NU
-0A70 0A71 CM
-0A72 0A74 AL
-0A81 0A83 CM
-0A85 0A8B AL
-0A8D AL
-0A8F 0A91 AL
-0A93 0AA8 AL
-0AAA 0AB0 AL
-0AB2 0AB3 AL
-0AB5 0AB9 AL
-0ABC CM
-0ABD AL
-0ABE 0AC5 CM
-0AC7 0AC9 CM
-0ACB 0ACD CM
-0AD0 AL
-0AE0 AL
-0AE6 0AEF NU
-0B01 0B03 CM
-0B05 0B0C AL
-0B0F 0B10 AL
-0B13 0B28 AL
-0B2A 0B30 AL
-0B32 0B33 AL
-0B36 0B39 AL
-0B3C CM
-0B3D AL
-0B3E 0B43 CM
-0B47 0B48 CM
-0B4B 0B4D CM
-0B56 0B57 CM
-0B5C 0B5D AL
-0B5F 0B61 AL
-0B66 0B6F NU
-0B70 AL
-0B82 CM
-0B83 AL
-0B85 0B8A AL
-0B8E 0B90 AL
-0B92 0B95 AL
-0B99 0B9A AL
-0B9C AL
-0B9E 0B9F AL
-0BA3 0BA4 AL
-0BA8 0BAA AL
-0BAE 0BB5 AL
-0BB7 0BB9 AL
-0BBE 0BC2 CM
-0BC6 0BC8 CM
-0BCA 0BCD CM
-0BD7 CM
-0BE7 0BEF NU
-0BF0 0BF2 AL
-0C01 0C03 CM
-0C05 0C0C AL
-0C0E 0C10 AL
-0C12 0C28 AL
-0C2A 0C33 AL
-0C35 0C39 AL
-0C3E 0C44 CM
-0C46 0C48 CM
-0C4A 0C4D CM
-0C55 0C56 CM
-0C60 0C61 AL
-0C66 0C6F NU
-0C82 0C83 CM
-0C85 0C8C AL
-0C8E 0C90 AL
-0C92 0CA8 AL
-0CAA 0CB3 AL
-0CB5 0CB9 AL
-0CBE 0CC4 CM
-0CC6 0CC8 CM
-0CCA 0CCD CM
-0CD5 0CD6 CM
-0CDE AL
-0CE0 0CE1 AL
-0CE6 0CEF NU
-0D02 0D03 CM
-0D05 0D0C AL
-0D0E 0D10 AL
-0D12 0D28 AL
-0D2A 0D39 AL
-0D3E 0D43 CM
-0D46 0D48 CM
-0D4A 0D4D CM
-0D57 CM
-0D60 0D61 AL
-0D66 0D6F NU
-0D82 0D83 CM
-0D85 0D96 AL
-0D9A 0DB1 AL
-0DB3 0DBB AL
-0DBD AL
-0DC0 0DC6 AL
-0DCA CM
-0DCF 0DD4 CM
-0DD6 CM
-0DD8 0DDF CM
-0DF2 0DF3 CM
-0DF4 AL
-0E01 0E30 SA
-0E31 CM
-0E32 0E33 SA
-0E34 0E3A CM
-0E3F PR
-0E40 0E46 SA
-0E47 0E4E CM
-0E4F AL
-0E50 0E59 NU
-0E5A 0E5B NS
-0E81 0E82 SA
-0E84 SA
-0E87 0E88 SA
-0E8A SA
-0E8D SA
-0E94 0E97 SA
-0E99 0E9F SA
-0EA1 0EA3 SA
-0EA5 SA
-0EA7 SA
-0EAA 0EAB SA
-0EAD 0EB0 SA
-0EB1 CM
-0EB2 0EB3 SA
-0EB4 0EB9 CM
-0EBB 0EBC CM
-0EBD SA
-0EC0 0EC4 SA
-0EC6 SA
-0EC8 0ECD CM
-0ED0 0ED9 NU
-0EDC 0EDD SA
-0F00 0F0A AL
-0F0B BA
-0F0C GL
-0F0D 0F17 AL
-0F18 0F19 CM
-0F1A 0F1F AL
-0F20 0F29 NU
-0F2A 0F34 AL
-0F35 CM
-0F36 AL
-0F37 CM
-0F38 AL
-0F39 CM
-0F3A OP
-0F3B CL
-0F3C OP
-0F3D CL
-0F3E 0F3F CM
-0F40 0F47 AL
-0F49 0F6A AL
-0F71 0F84 CM
-0F85 AL
-0F86 0F87 CM
-0F88 0F8B AL
-0F90 0F97 CM
-0F99 0FBC CM
-0FBE 0FC5 AL
-0FC6 CM
-0FC7 0FCC AL
-0FCF AL
-1000 1021 SA
-1023 1027 SA
-1029 102A SA
-102C 1032 CM
-1036 1039 CM
-1040 1049 NU
-104A 104F AL
-1050 1055 SA
-1056 1059 CM
-10A0 10C5 AL
-10D0 10F8 AL
-10FB AL
-1100 1159 ID
-115F ID
-1160 11A2 CM
-11A8 11F9 CM
-1200 1206 AL
-1208 1246 AL
-1248 AL
-124A 124D AL
-1250 1256 AL
-1258 AL
-125A 125D AL
-1260 1286 AL
-1288 AL
-128A 128D AL
-1290 12AE AL
-12B0 AL
-12B2 12B5 AL
-12B8 12BE AL
-12C0 AL
-12C2 12C5 AL
-12C8 12CE AL
-12D0 12D6 AL
-12D8 12EE AL
-12F0 130E AL
-1310 AL
-1312 1315 AL
-1318 131E AL
-1320 1346 AL
-1348 135A AL
-1361 BA
-1362 1368 AL
-1369 1371 NU
-1372 137C AL
-13A0 13F4 AL
-1401 1676 AL
-1680 BA
-1681 169A AL
-169B OP
-169C CL
-16A0 16F0 AL
-1700 170C AL
-170E 1711 AL
-1712 1714 CM
-1720 1731 AL
-1732 1734 CM
-1735 1736 AL
-1740 1751 AL
-1752 1753 CM
-1760 176C AL
-176E 1770 AL
-1772 1773 CM
-1780 17B3 SA
-17B4 17D3 CM
-17D4 NS
-17D5 BA
-17D6 17DA NS
-17DB PR
-17DC AL
-17E0 17E9 NU
-1800 1805 AL
-1806 BB
-1807 180A AL
-180B 180E CM
-1810 1819 NU
-1820 1877 AL
-1880 18A8 AL
-18A9 CM
-1E00 1E9B AL
-1EA0 1EF9 AL
-1F00 1F15 AL
-1F18 1F1D AL
-1F20 1F45 AL
-1F48 1F4D AL
-1F50 1F57 AL
-1F59 AL
-1F5B AL
-1F5D AL
-1F5F 1F7D AL
-1F80 1FB4 AL
-1FB6 1FC4 AL
-1FC6 1FD3 AL
-1FD6 1FDB AL
-1FDD 1FEF AL
-1FF2 1FF4 AL
-1FF6 1FFE AL
-2000 2006 BA
-2007 GL
-2008 200A BA
-200B ZW
-200C 200F CM
-2010 BA
-2011 GL
-2012 2013 BA
-2014 B2
-2015 2016 AI
-2017 AL
-2018 2019 QU
-201A OP
-201B 201D QU
-201E OP
-201F QU
-2020 2021 AI
-2022 2023 AL
-2024 2026 IN
-2027 BA
-2028 2029 BK
-202A 202E CM
-202F GL
-2030 2037 PO
-2038 AL
-2039 203A QU
-203B AI
-203C NS
-203D 2043 AL
-2044 NS
-2045 OP
-2046 CL
-2047 2052 AL
-2057 AL
-205F BA
-2060 GL
-2061 2063 AL
-206A 206F CM
-2070 2071 AL
-2074 AI
-2075 207C AL
-207D OP
-207E CL
-207F AI
-2080 AL
-2081 2084 AI
-2085 208C AL
-208D OP
-208E CL
-20A0 20A6 PR
-20A7 PO
-20A8 20B1 PR
-20D0 20EA CM
-2100 2102 AL
-2103 PO
-2104 AL
-2105 AI
-2106 2108 AL
-2109 PO
-210A 2112 AL
-2113 AI
-2114 2115 AL
-2116 PR
-2117 2120 AL
-2121 2122 AI
-2123 2125 AL
-2126 PO
-2127 212A AL
-212B AI
-212C 213A AL
-213D 213F AL
-2140 AI
-2141 214B AL
-2153 AL
-2154 2155 AI
-2156 215A AL
-215B AI
-215C 215D AL
-215E AI
-215F AL
-2160 216B AI
-216C 216F AL
-2170 2179 AI
-217A 2183 AL
-2190 2199 AI
-219A 21D1 AL
-21D2 AI
-21D3 AL
-21D4 AI
-21D5 21FF AL
-2200 AI
-2201 AL
-2202 2203 AI
-2204 2206 AL
-2207 2208 AI
-2209 220A AL
-220B AI
-220C 220E AL
-220F AI
-2210 AL
-2211 AI
-2212 2213 PR
-2214 AL
-2215 AI
-2216 2219 AL
-221A AI
-221B 221C AL
-221D 2220 AI
-2221 2222 AL
-2223 AI
-2224 AL
-2225 AI
-2226 AL
-2227 222C AI
-222D AL
-222E AI
-222F 2233 AL
-2234 2237 AI
-2238 223B AL
-223C 223D AI
-223E 2247 AL
-2248 AI
-2249 224B AL
-224C AI
-224D 2251 AL
-2252 AI
-2253 225F AL
-2260 2261 AI
-2262 2263 AL
-2264 2267 AI
-2268 2269 AL
-226A 226B AI
-226C 226D AL
-226E 226F AI
-2270 2281 AL
-2282 2283 AI
-2284 2285 AL
-2286 2287 AI
-2288 2294 AL
-2295 AI
-2296 2298 AL
-2299 AI
-229A 22A4 AL
-22A5 AI
-22A6 22BE AL
-22BF AI
-22C0 2311 AL
-2312 AI
-2313 2328 AL
-2329 OP
-232A CL
-232B 23B3 AL
-23B4 OP
-23B5 CL
-23B6 QU
-23B7 23CE AL
-2400 2426 AL
-2440 244A AL
-2460 24BF AI
-24C0 24CF AL
-24D0 24E9 AI
-24EA AL
-24EB 24FE AI
-2500 254B AI
-254C 254F AL
-2550 2574 AI
-2575 257F AL
-2580 258F AI
-2590 2591 AL
-2592 2595 AI
-2596 259F AL
-25A0 25A1 AI
-25A2 AL
-25A3 25A9 AI
-25AA 25B1 AL
-25B2 25B3 AI
-25B4 25B5 AL
-25B6 25B7 AI
-25B8 25BB AL
-25BC 25BD AI
-25BE 25BF AL
-25C0 25C1 AI
-25C2 25C5 AL
-25C6 25C8 AI
-25C9 25CA AL
-25CB AI
-25CC 25CD AL
-25CE 25D1 AI
-25D2 25E1 AL
-25E2 25E5 AI
-25E6 25EE AL
-25EF AI
-25F0 2604 AL
-2605 2606 AI
-2607 2608 AL
-2609 AI
-260A 260D AL
-260E 260F AI
-2610 2613 AL
-2616 2617 AI
-2619 261B AL
-261C AI
-261D AL
-261E AI
-261F 263F AL
-2640 AI
-2641 AL
-2642 AI
-2643 265F AL
-2660 2661 AI
-2662 AL
-2663 2665 AI
-2666 AL
-2667 266A AI
-266B AL
-266C 266D AI
-266E AL
-266F AI
-2670 267D AL
-2680 2689 AL
-2701 2704 AL
-2706 2709 AL
-270C 2727 AL
-2729 274B AL
-274D AL
-274F 2752 AL
-2756 AL
-2758 275A AL
-275B 275E QU
-2761 AL
-2762 2763 EX
-2764 2767 AL
-2768 OP
-2769 CL
-276A OP
-276B CL
-276C OP
-276D CL
-276E OP
-276F CL
-2770 OP
-2771 CL
-2772 OP
-2773 CL
-2774 OP
-2775 CL
-2776 2794 AL
-2798 27AF AL
-27B1 27BE AL
-27D0 27E5 AL
-27E6 OP
-27E7 CL
-27E8 OP
-27E9 CL
-27EA OP
-27EB CL
-27F0 2982 AL
-2983 OP
-2984 CL
-2985 OP
-2986 CL
-2987 OP
-2988 CL
-2989 OP
-298A CL
-298B OP
-298C CL
-298D OP
-298E CL
-298F OP
-2990 CL
-2991 OP
-2992 CL
-2993 OP
-2994 CL
-2995 OP
-2996 CL
-2997 OP
-2998 CL
-2999 29D7 AL
-29D8 OP
-29D9 CL
-29DA OP
-29DB CL
-29DC 29FB AL
-29FC OP
-29FD CL
-29FE 2AFF AL
-2E80 2E99 ID
-2E9B 2EF3 ID
-2F00 2FD5 ID
-2FF0 2FFB ID
-3000 ID
-3001 3002 CL
-3003 3004 ID
-3005 NS
-3006 3007 ID
-3008 OP
-3009 CL
-300A OP
-300B CL
-300C OP
-300D CL
-300E OP
-300F CL
-3010 OP
-3011 CL
-3012 3013 ID
-3014 OP
-3015 CL
-3016 OP
-3017 CL
-3018 OP
-3019 CL
-301A OP
-301B CL
-301C NS
-301D OP
-301E 301F CL
-3020 3029 ID
-302A 302F CM
-3030 303A ID
-303B 303C NS
-303D 303F ID
-3041 NS
-3042 ID
-3043 NS
-3044 ID
-3045 NS
-3046 ID
-3047 NS
-3048 ID
-3049 NS
-304A 3062 ID
-3063 NS
-3064 3082 ID
-3083 NS
-3084 ID
-3085 NS
-3086 ID
-3087 NS
-3088 308D ID
-308E NS
-308F 3094 ID
-3095 3096 NS
-3099 309A CM
-309B 309E NS
-309F ID
-30A0 30A1 NS
-30A2 ID
-30A3 NS
-30A4 ID
-30A5 NS
-30A6 ID
-30A7 NS
-30A8 ID
-30A9 NS
-30AA 30C2 ID
-30C3 NS
-30C4 30E2 ID
-30E3 NS
-30E4 ID
-30E5 NS
-30E6 ID
-30E7 NS
-30E8 30ED ID
-30EE NS
-30EF 30F4 ID
-30F5 30F6 NS
-30F7 30FA ID
-30FB NS
-30FC ID
-30FD NS
-30FE 30FF ID
-3105 312C ID
-3131 318E ID
-3190 31B7 ID
-31F0 31FF NS
-3200 321C ID
-3220 3243 ID
-3251 327B ID
-327F 32CB ID
-32D0 32FE ID
-3300 3376 ID
-337B 33DD ID
-33E0 33FE ID
-3400 4DB5 ID
-4E00 9FA5 ID
-A000 A48C ID
-A490 A4C6 ID
-AC00 D7A3 ID
-D800 DFFF SG
-E000 F8FF XX
-F900 FA2D ID
-FA30 FA6A ID
-FB00 FB06 AL
-FB13 FB17 AL
-FB1D AL
-FB1E CM
-FB1F FB36 AL
-FB38 FB3C AL
-FB3E AL
-FB40 FB41 AL
-FB43 FB44 AL
-FB46 FBB1 AL
-FBD3 FD3D AL
-FD3E OP
-FD3F CL
-FD50 FD8F AL
-FD92 FDC7 AL
-FDF0 FDFB AL
-FDFC PO
-FE00 FE0F CM
-FE20 FE23 CM
-FE30 FE34 ID
-FE35 OP
-FE36 CL
-FE37 OP
-FE38 CL
-FE39 OP
-FE3A CL
-FE3B OP
-FE3C CL
-FE3D OP
-FE3E CL
-FE3F OP
-FE40 CL
-FE41 OP
-FE42 CL
-FE43 OP
-FE44 CL
-FE45 FE46 ID
-FE49 FE4F ID
-FE50 CL
-FE51 ID
-FE52 CL
-FE54 FE55 NS
-FE56 FE57 EX
-FE58 ID
-FE59 OP
-FE5A CL
-FE5B OP
-FE5C CL
-FE5D OP
-FE5E CL
-FE5F FE66 ID
-FE68 ID
-FE69 PR
-FE6A PO
-FE6B ID
-FE70 FE74 AL
-FE76 FEFC AL
-FEFF GL
-FF01 EX
-FF02 FF03 ID
-FF04 PR
-FF05 PO
-FF06 FF07 ID
-FF08 OP
-FF09 CL
-FF0A FF0B ID
-FF0C CL
-FF0D ID
-FF0E CL
-FF0F FF19 ID
-FF1A FF1B NS
-FF1C FF1E ID
-FF1F EX
-FF20 FF3A ID
-FF3B OP
-FF3C ID
-FF3D CL
-FF3E FF5A ID
-FF5B OP
-FF5C ID
-FF5D CL
-FF5E ID
-FF5F OP
-FF60 FF61 CL
-FF62 OP
-FF63 FF64 CL
-FF65 NS
-FF66 AL
-FF67 FF70 NS
-FF71 FF9D AL
-FF9E FF9F NS
-FFA0 FFBE AL
-FFC2 FFC7 AL
-FFCA FFCF AL
-FFD2 FFD7 AL
-FFDA FFDC AL
-FFE0 PO
-FFE1 PR
-FFE2 FFE4 ID
-FFE5 FFE6 PR
-FFE8 FFEE AL
-FFF9 FFFB CM
-FFFC CB
-FFFD AI
-10300 1031E AL
-10320 10323 AL
-10330 1034A AL
-10400 10425 AL
-10428 1044D AL
-1D000 1D0F5 AL
-1D100 1D126 AL
-1D12A 1D164 AL
-1D165 1D169 CM
-1D16A 1D16C AL
-1D16D 1D182 CM
-1D183 1D184 AL
-1D185 1D18B CM
-1D18C 1D1A9 AL
-1D1AA 1D1AD CM
-1D1AE 1D1DD AL
-1D400 1D454 AL
-1D456 1D49C AL
-1D49E 1D49F AL
-1D4A2 AL
-1D4A5 1D4A6 AL
-1D4A9 1D4AC AL
-1D4AE 1D4B9 AL
-1D4BB AL
-1D4BD 1D4C0 AL
-1D4C2 1D4C3 AL
-1D4C5 1D505 AL
-1D507 1D50A AL
-1D50D 1D514 AL
-1D516 1D51C AL
-1D51E 1D539 AL
-1D53B 1D53E AL
-1D540 1D544 AL
-1D546 AL
-1D54A 1D550 AL
-1D552 1D6A3 AL
-1D6A8 1D7C9 AL
-1D7CE 1D7FF NU
-20000 2A6D6 ID
-2F800 2FA1D ID
-E0001 CM
-E0020 E007F CM
-F0000 FFFFD XX
-100000 10FFFD XX
-END
diff --git a/Master/xemtex/perl/lib/unicore/Name.pl b/Master/xemtex/perl/lib/unicore/Name.pl
deleted file mode 100644
index 2dde9fdd3b1..00000000000
--- a/Master/xemtex/perl/lib/unicore/Name.pl
+++ /dev/null
@@ -1,13869 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0000 NULL
-0001 START OF HEADING
-0002 START OF TEXT
-0003 END OF TEXT
-0004 END OF TRANSMISSION
-0005 ENQUIRY
-0006 ACKNOWLEDGE
-0007 BELL
-0008 BACKSPACE
-0009 CHARACTER TABULATION
-000A LINE FEED (LF)
-000B LINE TABULATION
-000C FORM FEED (FF)
-000D CARRIAGE RETURN (CR)
-000E SHIFT OUT
-000F SHIFT IN
-0010 DATA LINK ESCAPE
-0011 DEVICE CONTROL ONE
-0012 DEVICE CONTROL TWO
-0013 DEVICE CONTROL THREE
-0014 DEVICE CONTROL FOUR
-0015 NEGATIVE ACKNOWLEDGE
-0016 SYNCHRONOUS IDLE
-0017 END OF TRANSMISSION BLOCK
-0018 CANCEL
-0019 END OF MEDIUM
-001A SUBSTITUTE
-001B ESCAPE
-001C INFORMATION SEPARATOR FOUR
-001D INFORMATION SEPARATOR THREE
-001E INFORMATION SEPARATOR TWO
-001F INFORMATION SEPARATOR ONE
-0020 SPACE
-0021 EXCLAMATION MARK
-0022 QUOTATION MARK
-0023 NUMBER SIGN
-0024 DOLLAR SIGN
-0025 PERCENT SIGN
-0026 AMPERSAND
-0027 APOSTROPHE
-0028 LEFT PARENTHESIS
-0029 RIGHT PARENTHESIS
-002A ASTERISK
-002B PLUS SIGN
-002C COMMA
-002D HYPHEN-MINUS
-002E FULL STOP
-002F SOLIDUS
-0030 DIGIT ZERO
-0031 DIGIT ONE
-0032 DIGIT TWO
-0033 DIGIT THREE
-0034 DIGIT FOUR
-0035 DIGIT FIVE
-0036 DIGIT SIX
-0037 DIGIT SEVEN
-0038 DIGIT EIGHT
-0039 DIGIT NINE
-003A COLON
-003B SEMICOLON
-003C LESS-THAN SIGN
-003D EQUALS SIGN
-003E GREATER-THAN SIGN
-003F QUESTION MARK
-0040 COMMERCIAL AT
-0041 LATIN CAPITAL LETTER A
-0042 LATIN CAPITAL LETTER B
-0043 LATIN CAPITAL LETTER C
-0044 LATIN CAPITAL LETTER D
-0045 LATIN CAPITAL LETTER E
-0046 LATIN CAPITAL LETTER F
-0047 LATIN CAPITAL LETTER G
-0048 LATIN CAPITAL LETTER H
-0049 LATIN CAPITAL LETTER I
-004A LATIN CAPITAL LETTER J
-004B LATIN CAPITAL LETTER K
-004C LATIN CAPITAL LETTER L
-004D LATIN CAPITAL LETTER M
-004E LATIN CAPITAL LETTER N
-004F LATIN CAPITAL LETTER O
-0050 LATIN CAPITAL LETTER P
-0051 LATIN CAPITAL LETTER Q
-0052 LATIN CAPITAL LETTER R
-0053 LATIN CAPITAL LETTER S
-0054 LATIN CAPITAL LETTER T
-0055 LATIN CAPITAL LETTER U
-0056 LATIN CAPITAL LETTER V
-0057 LATIN CAPITAL LETTER W
-0058 LATIN CAPITAL LETTER X
-0059 LATIN CAPITAL LETTER Y
-005A LATIN CAPITAL LETTER Z
-005B LEFT SQUARE BRACKET
-005C REVERSE SOLIDUS
-005D RIGHT SQUARE BRACKET
-005E CIRCUMFLEX ACCENT
-005F LOW LINE
-0060 GRAVE ACCENT
-0061 LATIN SMALL LETTER A
-0062 LATIN SMALL LETTER B
-0063 LATIN SMALL LETTER C
-0064 LATIN SMALL LETTER D
-0065 LATIN SMALL LETTER E
-0066 LATIN SMALL LETTER F
-0067 LATIN SMALL LETTER G
-0068 LATIN SMALL LETTER H
-0069 LATIN SMALL LETTER I
-006A LATIN SMALL LETTER J
-006B LATIN SMALL LETTER K
-006C LATIN SMALL LETTER L
-006D LATIN SMALL LETTER M
-006E LATIN SMALL LETTER N
-006F LATIN SMALL LETTER O
-0070 LATIN SMALL LETTER P
-0071 LATIN SMALL LETTER Q
-0072 LATIN SMALL LETTER R
-0073 LATIN SMALL LETTER S
-0074 LATIN SMALL LETTER T
-0075 LATIN SMALL LETTER U
-0076 LATIN SMALL LETTER V
-0077 LATIN SMALL LETTER W
-0078 LATIN SMALL LETTER X
-0079 LATIN SMALL LETTER Y
-007A LATIN SMALL LETTER Z
-007B LEFT CURLY BRACKET
-007C VERTICAL LINE
-007D RIGHT CURLY BRACKET
-007E TILDE
-007F DELETE
-0080 0081 <control>
-0082 BREAK PERMITTED HERE
-0083 NO BREAK HERE
-0084 <control>
-0085 NEXT LINE (NEL)
-0086 START OF SELECTED AREA
-0087 END OF SELECTED AREA
-0088 CHARACTER TABULATION SET
-0089 CHARACTER TABULATION WITH JUSTIFICATION
-008A LINE TABULATION SET
-008B PARTIAL LINE FORWARD
-008C PARTIAL LINE BACKWARD
-008D REVERSE LINE FEED
-008E SINGLE SHIFT TWO
-008F SINGLE SHIFT THREE
-0090 DEVICE CONTROL STRING
-0091 PRIVATE USE ONE
-0092 PRIVATE USE TWO
-0093 SET TRANSMIT STATE
-0094 CANCEL CHARACTER
-0095 MESSAGE WAITING
-0096 START OF GUARDED AREA
-0097 END OF GUARDED AREA
-0098 START OF STRING
-0099 <control>
-009A SINGLE CHARACTER INTRODUCER
-009B CONTROL SEQUENCE INTRODUCER
-009C STRING TERMINATOR
-009D OPERATING SYSTEM COMMAND
-009E PRIVACY MESSAGE
-009F APPLICATION PROGRAM COMMAND
-00A0 NO-BREAK SPACE
-00A1 INVERTED EXCLAMATION MARK
-00A2 CENT SIGN
-00A3 POUND SIGN
-00A4 CURRENCY SIGN
-00A5 YEN SIGN
-00A6 BROKEN BAR
-00A7 SECTION SIGN
-00A8 DIAERESIS
-00A9 COPYRIGHT SIGN
-00AA FEMININE ORDINAL INDICATOR
-00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC NOT SIGN
-00AD SOFT HYPHEN
-00AE REGISTERED SIGN
-00AF MACRON
-00B0 DEGREE SIGN
-00B1 PLUS-MINUS SIGN
-00B2 SUPERSCRIPT TWO
-00B3 SUPERSCRIPT THREE
-00B4 ACUTE ACCENT
-00B5 MICRO SIGN
-00B6 PILCROW SIGN
-00B7 MIDDLE DOT
-00B8 CEDILLA
-00B9 SUPERSCRIPT ONE
-00BA MASCULINE ORDINAL INDICATOR
-00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BC VULGAR FRACTION ONE QUARTER
-00BD VULGAR FRACTION ONE HALF
-00BE VULGAR FRACTION THREE QUARTERS
-00BF INVERTED QUESTION MARK
-00C0 LATIN CAPITAL LETTER A WITH GRAVE
-00C1 LATIN CAPITAL LETTER A WITH ACUTE
-00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00C3 LATIN CAPITAL LETTER A WITH TILDE
-00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
-00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
-00C6 LATIN CAPITAL LETTER AE
-00C7 LATIN CAPITAL LETTER C WITH CEDILLA
-00C8 LATIN CAPITAL LETTER E WITH GRAVE
-00C9 LATIN CAPITAL LETTER E WITH ACUTE
-00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00CB LATIN CAPITAL LETTER E WITH DIAERESIS
-00CC LATIN CAPITAL LETTER I WITH GRAVE
-00CD LATIN CAPITAL LETTER I WITH ACUTE
-00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF LATIN CAPITAL LETTER I WITH DIAERESIS
-00D0 LATIN CAPITAL LETTER ETH
-00D1 LATIN CAPITAL LETTER N WITH TILDE
-00D2 LATIN CAPITAL LETTER O WITH GRAVE
-00D3 LATIN CAPITAL LETTER O WITH ACUTE
-00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00D5 LATIN CAPITAL LETTER O WITH TILDE
-00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
-00D7 MULTIPLICATION SIGN
-00D8 LATIN CAPITAL LETTER O WITH STROKE
-00D9 LATIN CAPITAL LETTER U WITH GRAVE
-00DA LATIN CAPITAL LETTER U WITH ACUTE
-00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-00DC LATIN CAPITAL LETTER U WITH DIAERESIS
-00DD LATIN CAPITAL LETTER Y WITH ACUTE
-00DE LATIN CAPITAL LETTER THORN
-00DF LATIN SMALL LETTER SHARP S
-00E0 LATIN SMALL LETTER A WITH GRAVE
-00E1 LATIN SMALL LETTER A WITH ACUTE
-00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
-00E3 LATIN SMALL LETTER A WITH TILDE
-00E4 LATIN SMALL LETTER A WITH DIAERESIS
-00E5 LATIN SMALL LETTER A WITH RING ABOVE
-00E6 LATIN SMALL LETTER AE
-00E7 LATIN SMALL LETTER C WITH CEDILLA
-00E8 LATIN SMALL LETTER E WITH GRAVE
-00E9 LATIN SMALL LETTER E WITH ACUTE
-00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
-00EB LATIN SMALL LETTER E WITH DIAERESIS
-00EC LATIN SMALL LETTER I WITH GRAVE
-00ED LATIN SMALL LETTER I WITH ACUTE
-00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
-00EF LATIN SMALL LETTER I WITH DIAERESIS
-00F0 LATIN SMALL LETTER ETH
-00F1 LATIN SMALL LETTER N WITH TILDE
-00F2 LATIN SMALL LETTER O WITH GRAVE
-00F3 LATIN SMALL LETTER O WITH ACUTE
-00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
-00F5 LATIN SMALL LETTER O WITH TILDE
-00F6 LATIN SMALL LETTER O WITH DIAERESIS
-00F7 DIVISION SIGN
-00F8 LATIN SMALL LETTER O WITH STROKE
-00F9 LATIN SMALL LETTER U WITH GRAVE
-00FA LATIN SMALL LETTER U WITH ACUTE
-00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
-00FC LATIN SMALL LETTER U WITH DIAERESIS
-00FD LATIN SMALL LETTER Y WITH ACUTE
-00FE LATIN SMALL LETTER THORN
-00FF LATIN SMALL LETTER Y WITH DIAERESIS
-0100 LATIN CAPITAL LETTER A WITH MACRON
-0101 LATIN SMALL LETTER A WITH MACRON
-0102 LATIN CAPITAL LETTER A WITH BREVE
-0103 LATIN SMALL LETTER A WITH BREVE
-0104 LATIN CAPITAL LETTER A WITH OGONEK
-0105 LATIN SMALL LETTER A WITH OGONEK
-0106 LATIN CAPITAL LETTER C WITH ACUTE
-0107 LATIN SMALL LETTER C WITH ACUTE
-0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0109 LATIN SMALL LETTER C WITH CIRCUMFLEX
-010A LATIN CAPITAL LETTER C WITH DOT ABOVE
-010B LATIN SMALL LETTER C WITH DOT ABOVE
-010C LATIN CAPITAL LETTER C WITH CARON
-010D LATIN SMALL LETTER C WITH CARON
-010E LATIN CAPITAL LETTER D WITH CARON
-010F LATIN SMALL LETTER D WITH CARON
-0110 LATIN CAPITAL LETTER D WITH STROKE
-0111 LATIN SMALL LETTER D WITH STROKE
-0112 LATIN CAPITAL LETTER E WITH MACRON
-0113 LATIN SMALL LETTER E WITH MACRON
-0114 LATIN CAPITAL LETTER E WITH BREVE
-0115 LATIN SMALL LETTER E WITH BREVE
-0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
-0117 LATIN SMALL LETTER E WITH DOT ABOVE
-0118 LATIN CAPITAL LETTER E WITH OGONEK
-0119 LATIN SMALL LETTER E WITH OGONEK
-011A LATIN CAPITAL LETTER E WITH CARON
-011B LATIN SMALL LETTER E WITH CARON
-011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-011D LATIN SMALL LETTER G WITH CIRCUMFLEX
-011E LATIN CAPITAL LETTER G WITH BREVE
-011F LATIN SMALL LETTER G WITH BREVE
-0120 LATIN CAPITAL LETTER G WITH DOT ABOVE
-0121 LATIN SMALL LETTER G WITH DOT ABOVE
-0122 LATIN CAPITAL LETTER G WITH CEDILLA
-0123 LATIN SMALL LETTER G WITH CEDILLA
-0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0125 LATIN SMALL LETTER H WITH CIRCUMFLEX
-0126 LATIN CAPITAL LETTER H WITH STROKE
-0127 LATIN SMALL LETTER H WITH STROKE
-0128 LATIN CAPITAL LETTER I WITH TILDE
-0129 LATIN SMALL LETTER I WITH TILDE
-012A LATIN CAPITAL LETTER I WITH MACRON
-012B LATIN SMALL LETTER I WITH MACRON
-012C LATIN CAPITAL LETTER I WITH BREVE
-012D LATIN SMALL LETTER I WITH BREVE
-012E LATIN CAPITAL LETTER I WITH OGONEK
-012F LATIN SMALL LETTER I WITH OGONEK
-0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131 LATIN SMALL LETTER DOTLESS I
-0132 LATIN CAPITAL LIGATURE IJ
-0133 LATIN SMALL LIGATURE IJ
-0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-0135 LATIN SMALL LETTER J WITH CIRCUMFLEX
-0136 LATIN CAPITAL LETTER K WITH CEDILLA
-0137 LATIN SMALL LETTER K WITH CEDILLA
-0138 LATIN SMALL LETTER KRA
-0139 LATIN CAPITAL LETTER L WITH ACUTE
-013A LATIN SMALL LETTER L WITH ACUTE
-013B LATIN CAPITAL LETTER L WITH CEDILLA
-013C LATIN SMALL LETTER L WITH CEDILLA
-013D LATIN CAPITAL LETTER L WITH CARON
-013E LATIN SMALL LETTER L WITH CARON
-013F LATIN CAPITAL LETTER L WITH MIDDLE DOT
-0140 LATIN SMALL LETTER L WITH MIDDLE DOT
-0141 LATIN CAPITAL LETTER L WITH STROKE
-0142 LATIN SMALL LETTER L WITH STROKE
-0143 LATIN CAPITAL LETTER N WITH ACUTE
-0144 LATIN SMALL LETTER N WITH ACUTE
-0145 LATIN CAPITAL LETTER N WITH CEDILLA
-0146 LATIN SMALL LETTER N WITH CEDILLA
-0147 LATIN CAPITAL LETTER N WITH CARON
-0148 LATIN SMALL LETTER N WITH CARON
-0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-014A LATIN CAPITAL LETTER ENG
-014B LATIN SMALL LETTER ENG
-014C LATIN CAPITAL LETTER O WITH MACRON
-014D LATIN SMALL LETTER O WITH MACRON
-014E LATIN CAPITAL LETTER O WITH BREVE
-014F LATIN SMALL LETTER O WITH BREVE
-0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0152 LATIN CAPITAL LIGATURE OE
-0153 LATIN SMALL LIGATURE OE
-0154 LATIN CAPITAL LETTER R WITH ACUTE
-0155 LATIN SMALL LETTER R WITH ACUTE
-0156 LATIN CAPITAL LETTER R WITH CEDILLA
-0157 LATIN SMALL LETTER R WITH CEDILLA
-0158 LATIN CAPITAL LETTER R WITH CARON
-0159 LATIN SMALL LETTER R WITH CARON
-015A LATIN CAPITAL LETTER S WITH ACUTE
-015B LATIN SMALL LETTER S WITH ACUTE
-015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-015D LATIN SMALL LETTER S WITH CIRCUMFLEX
-015E LATIN CAPITAL LETTER S WITH CEDILLA
-015F LATIN SMALL LETTER S WITH CEDILLA
-0160 LATIN CAPITAL LETTER S WITH CARON
-0161 LATIN SMALL LETTER S WITH CARON
-0162 LATIN CAPITAL LETTER T WITH CEDILLA
-0163 LATIN SMALL LETTER T WITH CEDILLA
-0164 LATIN CAPITAL LETTER T WITH CARON
-0165 LATIN SMALL LETTER T WITH CARON
-0166 LATIN CAPITAL LETTER T WITH STROKE
-0167 LATIN SMALL LETTER T WITH STROKE
-0168 LATIN CAPITAL LETTER U WITH TILDE
-0169 LATIN SMALL LETTER U WITH TILDE
-016A LATIN CAPITAL LETTER U WITH MACRON
-016B LATIN SMALL LETTER U WITH MACRON
-016C LATIN CAPITAL LETTER U WITH BREVE
-016D LATIN SMALL LETTER U WITH BREVE
-016E LATIN CAPITAL LETTER U WITH RING ABOVE
-016F LATIN SMALL LETTER U WITH RING ABOVE
-0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0172 LATIN CAPITAL LETTER U WITH OGONEK
-0173 LATIN SMALL LETTER U WITH OGONEK
-0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-0175 LATIN SMALL LETTER W WITH CIRCUMFLEX
-0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
-0179 LATIN CAPITAL LETTER Z WITH ACUTE
-017A LATIN SMALL LETTER Z WITH ACUTE
-017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
-017C LATIN SMALL LETTER Z WITH DOT ABOVE
-017D LATIN CAPITAL LETTER Z WITH CARON
-017E LATIN SMALL LETTER Z WITH CARON
-017F LATIN SMALL LETTER LONG S
-0180 LATIN SMALL LETTER B WITH STROKE
-0181 LATIN CAPITAL LETTER B WITH HOOK
-0182 LATIN CAPITAL LETTER B WITH TOPBAR
-0183 LATIN SMALL LETTER B WITH TOPBAR
-0184 LATIN CAPITAL LETTER TONE SIX
-0185 LATIN SMALL LETTER TONE SIX
-0186 LATIN CAPITAL LETTER OPEN O
-0187 LATIN CAPITAL LETTER C WITH HOOK
-0188 LATIN SMALL LETTER C WITH HOOK
-0189 LATIN CAPITAL LETTER AFRICAN D
-018A LATIN CAPITAL LETTER D WITH HOOK
-018B LATIN CAPITAL LETTER D WITH TOPBAR
-018C LATIN SMALL LETTER D WITH TOPBAR
-018D LATIN SMALL LETTER TURNED DELTA
-018E LATIN CAPITAL LETTER REVERSED E
-018F LATIN CAPITAL LETTER SCHWA
-0190 LATIN CAPITAL LETTER OPEN E
-0191 LATIN CAPITAL LETTER F WITH HOOK
-0192 LATIN SMALL LETTER F WITH HOOK
-0193 LATIN CAPITAL LETTER G WITH HOOK
-0194 LATIN CAPITAL LETTER GAMMA
-0195 LATIN SMALL LETTER HV
-0196 LATIN CAPITAL LETTER IOTA
-0197 LATIN CAPITAL LETTER I WITH STROKE
-0198 LATIN CAPITAL LETTER K WITH HOOK
-0199 LATIN SMALL LETTER K WITH HOOK
-019A LATIN SMALL LETTER L WITH BAR
-019B LATIN SMALL LETTER LAMBDA WITH STROKE
-019C LATIN CAPITAL LETTER TURNED M
-019D LATIN CAPITAL LETTER N WITH LEFT HOOK
-019E LATIN SMALL LETTER N WITH LONG RIGHT LEG
-019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-01A0 LATIN CAPITAL LETTER O WITH HORN
-01A1 LATIN SMALL LETTER O WITH HORN
-01A2 LATIN CAPITAL LETTER OI
-01A3 LATIN SMALL LETTER OI
-01A4 LATIN CAPITAL LETTER P WITH HOOK
-01A5 LATIN SMALL LETTER P WITH HOOK
-01A6 LATIN LETTER YR
-01A7 LATIN CAPITAL LETTER TONE TWO
-01A8 LATIN SMALL LETTER TONE TWO
-01A9 LATIN CAPITAL LETTER ESH
-01AA LATIN LETTER REVERSED ESH LOOP
-01AB LATIN SMALL LETTER T WITH PALATAL HOOK
-01AC LATIN CAPITAL LETTER T WITH HOOK
-01AD LATIN SMALL LETTER T WITH HOOK
-01AE LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-01AF LATIN CAPITAL LETTER U WITH HORN
-01B0 LATIN SMALL LETTER U WITH HORN
-01B1 LATIN CAPITAL LETTER UPSILON
-01B2 LATIN CAPITAL LETTER V WITH HOOK
-01B3 LATIN CAPITAL LETTER Y WITH HOOK
-01B4 LATIN SMALL LETTER Y WITH HOOK
-01B5 LATIN CAPITAL LETTER Z WITH STROKE
-01B6 LATIN SMALL LETTER Z WITH STROKE
-01B7 LATIN CAPITAL LETTER EZH
-01B8 LATIN CAPITAL LETTER EZH REVERSED
-01B9 LATIN SMALL LETTER EZH REVERSED
-01BA LATIN SMALL LETTER EZH WITH TAIL
-01BB LATIN LETTER TWO WITH STROKE
-01BC LATIN CAPITAL LETTER TONE FIVE
-01BD LATIN SMALL LETTER TONE FIVE
-01BE LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-01BF LATIN LETTER WYNN
-01C0 LATIN LETTER DENTAL CLICK
-01C1 LATIN LETTER LATERAL CLICK
-01C2 LATIN LETTER ALVEOLAR CLICK
-01C3 LATIN LETTER RETROFLEX CLICK
-01C4 LATIN CAPITAL LETTER DZ WITH CARON
-01C5 LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C6 LATIN SMALL LETTER DZ WITH CARON
-01C7 LATIN CAPITAL LETTER LJ
-01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C9 LATIN SMALL LETTER LJ
-01CA LATIN CAPITAL LETTER NJ
-01CB LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CC LATIN SMALL LETTER NJ
-01CD LATIN CAPITAL LETTER A WITH CARON
-01CE LATIN SMALL LETTER A WITH CARON
-01CF LATIN CAPITAL LETTER I WITH CARON
-01D0 LATIN SMALL LETTER I WITH CARON
-01D1 LATIN CAPITAL LETTER O WITH CARON
-01D2 LATIN SMALL LETTER O WITH CARON
-01D3 LATIN CAPITAL LETTER U WITH CARON
-01D4 LATIN SMALL LETTER U WITH CARON
-01D5 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01D6 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D7 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D8 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D9 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01DA LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01DB LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DC LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DD LATIN SMALL LETTER TURNED E
-01DE LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-01DF LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01E0 LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-01E1 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E2 LATIN CAPITAL LETTER AE WITH MACRON
-01E3 LATIN SMALL LETTER AE WITH MACRON
-01E4 LATIN CAPITAL LETTER G WITH STROKE
-01E5 LATIN SMALL LETTER G WITH STROKE
-01E6 LATIN CAPITAL LETTER G WITH CARON
-01E7 LATIN SMALL LETTER G WITH CARON
-01E8 LATIN CAPITAL LETTER K WITH CARON
-01E9 LATIN SMALL LETTER K WITH CARON
-01EA LATIN CAPITAL LETTER O WITH OGONEK
-01EB LATIN SMALL LETTER O WITH OGONEK
-01EC LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-01ED LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EE LATIN CAPITAL LETTER EZH WITH CARON
-01EF LATIN SMALL LETTER EZH WITH CARON
-01F0 LATIN SMALL LETTER J WITH CARON
-01F1 LATIN CAPITAL LETTER DZ
-01F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F3 LATIN SMALL LETTER DZ
-01F4 LATIN CAPITAL LETTER G WITH ACUTE
-01F5 LATIN SMALL LETTER G WITH ACUTE
-01F6 LATIN CAPITAL LETTER HWAIR
-01F7 LATIN CAPITAL LETTER WYNN
-01F8 LATIN CAPITAL LETTER N WITH GRAVE
-01F9 LATIN SMALL LETTER N WITH GRAVE
-01FA LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-01FB LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FC LATIN CAPITAL LETTER AE WITH ACUTE
-01FD LATIN SMALL LETTER AE WITH ACUTE
-01FE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01FF LATIN SMALL LETTER O WITH STROKE AND ACUTE
-0200 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0201 LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0202 LATIN CAPITAL LETTER A WITH INVERTED BREVE
-0203 LATIN SMALL LETTER A WITH INVERTED BREVE
-0204 LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0205 LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0206 LATIN CAPITAL LETTER E WITH INVERTED BREVE
-0207 LATIN SMALL LETTER E WITH INVERTED BREVE
-0208 LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-0209 LATIN SMALL LETTER I WITH DOUBLE GRAVE
-020A LATIN CAPITAL LETTER I WITH INVERTED BREVE
-020B LATIN SMALL LETTER I WITH INVERTED BREVE
-020C LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020D LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020E LATIN CAPITAL LETTER O WITH INVERTED BREVE
-020F LATIN SMALL LETTER O WITH INVERTED BREVE
-0210 LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0211 LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0212 LATIN CAPITAL LETTER R WITH INVERTED BREVE
-0213 LATIN SMALL LETTER R WITH INVERTED BREVE
-0214 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0215 LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0216 LATIN CAPITAL LETTER U WITH INVERTED BREVE
-0217 LATIN SMALL LETTER U WITH INVERTED BREVE
-0218 LATIN CAPITAL LETTER S WITH COMMA BELOW
-0219 LATIN SMALL LETTER S WITH COMMA BELOW
-021A LATIN CAPITAL LETTER T WITH COMMA BELOW
-021B LATIN SMALL LETTER T WITH COMMA BELOW
-021C LATIN CAPITAL LETTER YOGH
-021D LATIN SMALL LETTER YOGH
-021E LATIN CAPITAL LETTER H WITH CARON
-021F LATIN SMALL LETTER H WITH CARON
-0220 LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-0222 LATIN CAPITAL LETTER OU
-0223 LATIN SMALL LETTER OU
-0224 LATIN CAPITAL LETTER Z WITH HOOK
-0225 LATIN SMALL LETTER Z WITH HOOK
-0226 LATIN CAPITAL LETTER A WITH DOT ABOVE
-0227 LATIN SMALL LETTER A WITH DOT ABOVE
-0228 LATIN CAPITAL LETTER E WITH CEDILLA
-0229 LATIN SMALL LETTER E WITH CEDILLA
-022A LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-022B LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022C LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022D LATIN SMALL LETTER O WITH TILDE AND MACRON
-022E LATIN CAPITAL LETTER O WITH DOT ABOVE
-022F LATIN SMALL LETTER O WITH DOT ABOVE
-0230 LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-0231 LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0232 LATIN CAPITAL LETTER Y WITH MACRON
-0233 LATIN SMALL LETTER Y WITH MACRON
-0250 LATIN SMALL LETTER TURNED A
-0251 LATIN SMALL LETTER ALPHA
-0252 LATIN SMALL LETTER TURNED ALPHA
-0253 LATIN SMALL LETTER B WITH HOOK
-0254 LATIN SMALL LETTER OPEN O
-0255 LATIN SMALL LETTER C WITH CURL
-0256 LATIN SMALL LETTER D WITH TAIL
-0257 LATIN SMALL LETTER D WITH HOOK
-0258 LATIN SMALL LETTER REVERSED E
-0259 LATIN SMALL LETTER SCHWA
-025A LATIN SMALL LETTER SCHWA WITH HOOK
-025B LATIN SMALL LETTER OPEN E
-025C LATIN SMALL LETTER REVERSED OPEN E
-025D LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E LATIN SMALL LETTER CLOSED REVERSED OPEN E
-025F LATIN SMALL LETTER DOTLESS J WITH STROKE
-0260 LATIN SMALL LETTER G WITH HOOK
-0261 LATIN SMALL LETTER SCRIPT G
-0262 LATIN LETTER SMALL CAPITAL G
-0263 LATIN SMALL LETTER GAMMA
-0264 LATIN SMALL LETTER RAMS HORN
-0265 LATIN SMALL LETTER TURNED H
-0266 LATIN SMALL LETTER H WITH HOOK
-0267 LATIN SMALL LETTER HENG WITH HOOK
-0268 LATIN SMALL LETTER I WITH STROKE
-0269 LATIN SMALL LETTER IOTA
-026A LATIN LETTER SMALL CAPITAL I
-026B LATIN SMALL LETTER L WITH MIDDLE TILDE
-026C LATIN SMALL LETTER L WITH BELT
-026D LATIN SMALL LETTER L WITH RETROFLEX HOOK
-026E LATIN SMALL LETTER LEZH
-026F LATIN SMALL LETTER TURNED M
-0270 LATIN SMALL LETTER TURNED M WITH LONG LEG
-0271 LATIN SMALL LETTER M WITH HOOK
-0272 LATIN SMALL LETTER N WITH LEFT HOOK
-0273 LATIN SMALL LETTER N WITH RETROFLEX HOOK
-0274 LATIN LETTER SMALL CAPITAL N
-0275 LATIN SMALL LETTER BARRED O
-0276 LATIN LETTER SMALL CAPITAL OE
-0277 LATIN SMALL LETTER CLOSED OMEGA
-0278 LATIN SMALL LETTER PHI
-0279 LATIN SMALL LETTER TURNED R
-027A LATIN SMALL LETTER TURNED R WITH LONG LEG
-027B LATIN SMALL LETTER TURNED R WITH HOOK
-027C LATIN SMALL LETTER R WITH LONG LEG
-027D LATIN SMALL LETTER R WITH TAIL
-027E LATIN SMALL LETTER R WITH FISHHOOK
-027F LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-0280 LATIN LETTER SMALL CAPITAL R
-0281 LATIN LETTER SMALL CAPITAL INVERTED R
-0282 LATIN SMALL LETTER S WITH HOOK
-0283 LATIN SMALL LETTER ESH
-0284 LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-0285 LATIN SMALL LETTER SQUAT REVERSED ESH
-0286 LATIN SMALL LETTER ESH WITH CURL
-0287 LATIN SMALL LETTER TURNED T
-0288 LATIN SMALL LETTER T WITH RETROFLEX HOOK
-0289 LATIN SMALL LETTER U BAR
-028A LATIN SMALL LETTER UPSILON
-028B LATIN SMALL LETTER V WITH HOOK
-028C LATIN SMALL LETTER TURNED V
-028D LATIN SMALL LETTER TURNED W
-028E LATIN SMALL LETTER TURNED Y
-028F LATIN LETTER SMALL CAPITAL Y
-0290 LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-0291 LATIN SMALL LETTER Z WITH CURL
-0292 LATIN SMALL LETTER EZH
-0293 LATIN SMALL LETTER EZH WITH CURL
-0294 LATIN LETTER GLOTTAL STOP
-0295 LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-0296 LATIN LETTER INVERTED GLOTTAL STOP
-0297 LATIN LETTER STRETCHED C
-0298 LATIN LETTER BILABIAL CLICK
-0299 LATIN LETTER SMALL CAPITAL B
-029A LATIN SMALL LETTER CLOSED OPEN E
-029B LATIN LETTER SMALL CAPITAL G WITH HOOK
-029C LATIN LETTER SMALL CAPITAL H
-029D LATIN SMALL LETTER J WITH CROSSED-TAIL
-029E LATIN SMALL LETTER TURNED K
-029F LATIN LETTER SMALL CAPITAL L
-02A0 LATIN SMALL LETTER Q WITH HOOK
-02A1 LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2 LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-02A3 LATIN SMALL LETTER DZ DIGRAPH
-02A4 LATIN SMALL LETTER DEZH DIGRAPH
-02A5 LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A6 LATIN SMALL LETTER TS DIGRAPH
-02A7 LATIN SMALL LETTER TESH DIGRAPH
-02A8 LATIN SMALL LETTER TC DIGRAPH WITH CURL
-02A9 LATIN SMALL LETTER FENG DIGRAPH
-02AA LATIN SMALL LETTER LS DIGRAPH
-02AB LATIN SMALL LETTER LZ DIGRAPH
-02AC LATIN LETTER BILABIAL PERCUSSIVE
-02AD LATIN LETTER BIDENTAL PERCUSSIVE
-02B0 MODIFIER LETTER SMALL H
-02B1 MODIFIER LETTER SMALL H WITH HOOK
-02B2 MODIFIER LETTER SMALL J
-02B3 MODIFIER LETTER SMALL R
-02B4 MODIFIER LETTER SMALL TURNED R
-02B5 MODIFIER LETTER SMALL TURNED R WITH HOOK
-02B6 MODIFIER LETTER SMALL CAPITAL INVERTED R
-02B7 MODIFIER LETTER SMALL W
-02B8 MODIFIER LETTER SMALL Y
-02B9 MODIFIER LETTER PRIME
-02BA MODIFIER LETTER DOUBLE PRIME
-02BB MODIFIER LETTER TURNED COMMA
-02BC MODIFIER LETTER APOSTROPHE
-02BD MODIFIER LETTER REVERSED COMMA
-02BE MODIFIER LETTER RIGHT HALF RING
-02BF MODIFIER LETTER LEFT HALF RING
-02C0 MODIFIER LETTER GLOTTAL STOP
-02C1 MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2 MODIFIER LETTER LEFT ARROWHEAD
-02C3 MODIFIER LETTER RIGHT ARROWHEAD
-02C4 MODIFIER LETTER UP ARROWHEAD
-02C5 MODIFIER LETTER DOWN ARROWHEAD
-02C6 MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7 CARON
-02C8 MODIFIER LETTER VERTICAL LINE
-02C9 MODIFIER LETTER MACRON
-02CA MODIFIER LETTER ACUTE ACCENT
-02CB MODIFIER LETTER GRAVE ACCENT
-02CC MODIFIER LETTER LOW VERTICAL LINE
-02CD MODIFIER LETTER LOW MACRON
-02CE MODIFIER LETTER LOW GRAVE ACCENT
-02CF MODIFIER LETTER LOW ACUTE ACCENT
-02D0 MODIFIER LETTER TRIANGULAR COLON
-02D1 MODIFIER LETTER HALF TRIANGULAR COLON
-02D2 MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3 MODIFIER LETTER CENTRED LEFT HALF RING
-02D4 MODIFIER LETTER UP TACK
-02D5 MODIFIER LETTER DOWN TACK
-02D6 MODIFIER LETTER PLUS SIGN
-02D7 MODIFIER LETTER MINUS SIGN
-02D8 BREVE
-02D9 DOT ABOVE
-02DA RING ABOVE
-02DB OGONEK
-02DC SMALL TILDE
-02DD DOUBLE ACUTE ACCENT
-02DE MODIFIER LETTER RHOTIC HOOK
-02DF MODIFIER LETTER CROSS ACCENT
-02E0 MODIFIER LETTER SMALL GAMMA
-02E1 MODIFIER LETTER SMALL L
-02E2 MODIFIER LETTER SMALL S
-02E3 MODIFIER LETTER SMALL X
-02E4 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02E5 MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6 MODIFIER LETTER HIGH TONE BAR
-02E7 MODIFIER LETTER MID TONE BAR
-02E8 MODIFIER LETTER LOW TONE BAR
-02E9 MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC MODIFIER LETTER VOICING
-02ED MODIFIER LETTER UNASPIRATED
-02EE MODIFIER LETTER DOUBLE APOSTROPHE
-0300 COMBINING GRAVE ACCENT
-0301 COMBINING ACUTE ACCENT
-0302 COMBINING CIRCUMFLEX ACCENT
-0303 COMBINING TILDE
-0304 COMBINING MACRON
-0305 COMBINING OVERLINE
-0306 COMBINING BREVE
-0307 COMBINING DOT ABOVE
-0308 COMBINING DIAERESIS
-0309 COMBINING HOOK ABOVE
-030A COMBINING RING ABOVE
-030B COMBINING DOUBLE ACUTE ACCENT
-030C COMBINING CARON
-030D COMBINING VERTICAL LINE ABOVE
-030E COMBINING DOUBLE VERTICAL LINE ABOVE
-030F COMBINING DOUBLE GRAVE ACCENT
-0310 COMBINING CANDRABINDU
-0311 COMBINING INVERTED BREVE
-0312 COMBINING TURNED COMMA ABOVE
-0313 COMBINING COMMA ABOVE
-0314 COMBINING REVERSED COMMA ABOVE
-0315 COMBINING COMMA ABOVE RIGHT
-0316 COMBINING GRAVE ACCENT BELOW
-0317 COMBINING ACUTE ACCENT BELOW
-0318 COMBINING LEFT TACK BELOW
-0319 COMBINING RIGHT TACK BELOW
-031A COMBINING LEFT ANGLE ABOVE
-031B COMBINING HORN
-031C COMBINING LEFT HALF RING BELOW
-031D COMBINING UP TACK BELOW
-031E COMBINING DOWN TACK BELOW
-031F COMBINING PLUS SIGN BELOW
-0320 COMBINING MINUS SIGN BELOW
-0321 COMBINING PALATALIZED HOOK BELOW
-0322 COMBINING RETROFLEX HOOK BELOW
-0323 COMBINING DOT BELOW
-0324 COMBINING DIAERESIS BELOW
-0325 COMBINING RING BELOW
-0326 COMBINING COMMA BELOW
-0327 COMBINING CEDILLA
-0328 COMBINING OGONEK
-0329 COMBINING VERTICAL LINE BELOW
-032A COMBINING BRIDGE BELOW
-032B COMBINING INVERTED DOUBLE ARCH BELOW
-032C COMBINING CARON BELOW
-032D COMBINING CIRCUMFLEX ACCENT BELOW
-032E COMBINING BREVE BELOW
-032F COMBINING INVERTED BREVE BELOW
-0330 COMBINING TILDE BELOW
-0331 COMBINING MACRON BELOW
-0332 COMBINING LOW LINE
-0333 COMBINING DOUBLE LOW LINE
-0334 COMBINING TILDE OVERLAY
-0335 COMBINING SHORT STROKE OVERLAY
-0336 COMBINING LONG STROKE OVERLAY
-0337 COMBINING SHORT SOLIDUS OVERLAY
-0338 COMBINING LONG SOLIDUS OVERLAY
-0339 COMBINING RIGHT HALF RING BELOW
-033A COMBINING INVERTED BRIDGE BELOW
-033B COMBINING SQUARE BELOW
-033C COMBINING SEAGULL BELOW
-033D COMBINING X ABOVE
-033E COMBINING VERTICAL TILDE
-033F COMBINING DOUBLE OVERLINE
-0340 COMBINING GRAVE TONE MARK
-0341 COMBINING ACUTE TONE MARK
-0342 COMBINING GREEK PERISPOMENI
-0343 COMBINING GREEK KORONIS
-0344 COMBINING GREEK DIALYTIKA TONOS
-0345 COMBINING GREEK YPOGEGRAMMENI
-0346 COMBINING BRIDGE ABOVE
-0347 COMBINING EQUALS SIGN BELOW
-0348 COMBINING DOUBLE VERTICAL LINE BELOW
-0349 COMBINING LEFT ANGLE BELOW
-034A COMBINING NOT TILDE ABOVE
-034B COMBINING HOMOTHETIC ABOVE
-034C COMBINING ALMOST EQUAL TO ABOVE
-034D COMBINING LEFT RIGHT ARROW BELOW
-034E COMBINING UPWARDS ARROW BELOW
-034F COMBINING GRAPHEME JOINER
-0360 COMBINING DOUBLE TILDE
-0361 COMBINING DOUBLE INVERTED BREVE
-0362 COMBINING DOUBLE RIGHTWARDS ARROW BELOW
-0363 COMBINING LATIN SMALL LETTER A
-0364 COMBINING LATIN SMALL LETTER E
-0365 COMBINING LATIN SMALL LETTER I
-0366 COMBINING LATIN SMALL LETTER O
-0367 COMBINING LATIN SMALL LETTER U
-0368 COMBINING LATIN SMALL LETTER C
-0369 COMBINING LATIN SMALL LETTER D
-036A COMBINING LATIN SMALL LETTER H
-036B COMBINING LATIN SMALL LETTER M
-036C COMBINING LATIN SMALL LETTER R
-036D COMBINING LATIN SMALL LETTER T
-036E COMBINING LATIN SMALL LETTER V
-036F COMBINING LATIN SMALL LETTER X
-0374 GREEK NUMERAL SIGN
-0375 GREEK LOWER NUMERAL SIGN
-037A GREEK YPOGEGRAMMENI
-037E GREEK QUESTION MARK
-0384 GREEK TONOS
-0385 GREEK DIALYTIKA TONOS
-0386 GREEK CAPITAL LETTER ALPHA WITH TONOS
-0387 GREEK ANO TELEIA
-0388 GREEK CAPITAL LETTER EPSILON WITH TONOS
-0389 GREEK CAPITAL LETTER ETA WITH TONOS
-038A GREEK CAPITAL LETTER IOTA WITH TONOS
-038C GREEK CAPITAL LETTER OMICRON WITH TONOS
-038E GREEK CAPITAL LETTER UPSILON WITH TONOS
-038F GREEK CAPITAL LETTER OMEGA WITH TONOS
-0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-0391 GREEK CAPITAL LETTER ALPHA
-0392 GREEK CAPITAL LETTER BETA
-0393 GREEK CAPITAL LETTER GAMMA
-0394 GREEK CAPITAL LETTER DELTA
-0395 GREEK CAPITAL LETTER EPSILON
-0396 GREEK CAPITAL LETTER ZETA
-0397 GREEK CAPITAL LETTER ETA
-0398 GREEK CAPITAL LETTER THETA
-0399 GREEK CAPITAL LETTER IOTA
-039A GREEK CAPITAL LETTER KAPPA
-039B GREEK CAPITAL LETTER LAMDA
-039C GREEK CAPITAL LETTER MU
-039D GREEK CAPITAL LETTER NU
-039E GREEK CAPITAL LETTER XI
-039F GREEK CAPITAL LETTER OMICRON
-03A0 GREEK CAPITAL LETTER PI
-03A1 GREEK CAPITAL LETTER RHO
-03A3 GREEK CAPITAL LETTER SIGMA
-03A4 GREEK CAPITAL LETTER TAU
-03A5 GREEK CAPITAL LETTER UPSILON
-03A6 GREEK CAPITAL LETTER PHI
-03A7 GREEK CAPITAL LETTER CHI
-03A8 GREEK CAPITAL LETTER PSI
-03A9 GREEK CAPITAL LETTER OMEGA
-03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03AC GREEK SMALL LETTER ALPHA WITH TONOS
-03AD GREEK SMALL LETTER EPSILON WITH TONOS
-03AE GREEK SMALL LETTER ETA WITH TONOS
-03AF GREEK SMALL LETTER IOTA WITH TONOS
-03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-03B1 GREEK SMALL LETTER ALPHA
-03B2 GREEK SMALL LETTER BETA
-03B3 GREEK SMALL LETTER GAMMA
-03B4 GREEK SMALL LETTER DELTA
-03B5 GREEK SMALL LETTER EPSILON
-03B6 GREEK SMALL LETTER ZETA
-03B7 GREEK SMALL LETTER ETA
-03B8 GREEK SMALL LETTER THETA
-03B9 GREEK SMALL LETTER IOTA
-03BA GREEK SMALL LETTER KAPPA
-03BB GREEK SMALL LETTER LAMDA
-03BC GREEK SMALL LETTER MU
-03BD GREEK SMALL LETTER NU
-03BE GREEK SMALL LETTER XI
-03BF GREEK SMALL LETTER OMICRON
-03C0 GREEK SMALL LETTER PI
-03C1 GREEK SMALL LETTER RHO
-03C2 GREEK SMALL LETTER FINAL SIGMA
-03C3 GREEK SMALL LETTER SIGMA
-03C4 GREEK SMALL LETTER TAU
-03C5 GREEK SMALL LETTER UPSILON
-03C6 GREEK SMALL LETTER PHI
-03C7 GREEK SMALL LETTER CHI
-03C8 GREEK SMALL LETTER PSI
-03C9 GREEK SMALL LETTER OMEGA
-03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03CC GREEK SMALL LETTER OMICRON WITH TONOS
-03CD GREEK SMALL LETTER UPSILON WITH TONOS
-03CE GREEK SMALL LETTER OMEGA WITH TONOS
-03D0 GREEK BETA SYMBOL
-03D1 GREEK THETA SYMBOL
-03D2 GREEK UPSILON WITH HOOK SYMBOL
-03D3 GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-03D4 GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03D5 GREEK PHI SYMBOL
-03D6 GREEK PI SYMBOL
-03D7 GREEK KAI SYMBOL
-03D8 GREEK LETTER ARCHAIC KOPPA
-03D9 GREEK SMALL LETTER ARCHAIC KOPPA
-03DA GREEK LETTER STIGMA
-03DB GREEK SMALL LETTER STIGMA
-03DC GREEK LETTER DIGAMMA
-03DD GREEK SMALL LETTER DIGAMMA
-03DE GREEK LETTER KOPPA
-03DF GREEK SMALL LETTER KOPPA
-03E0 GREEK LETTER SAMPI
-03E1 GREEK SMALL LETTER SAMPI
-03E2 COPTIC CAPITAL LETTER SHEI
-03E3 COPTIC SMALL LETTER SHEI
-03E4 COPTIC CAPITAL LETTER FEI
-03E5 COPTIC SMALL LETTER FEI
-03E6 COPTIC CAPITAL LETTER KHEI
-03E7 COPTIC SMALL LETTER KHEI
-03E8 COPTIC CAPITAL LETTER HORI
-03E9 COPTIC SMALL LETTER HORI
-03EA COPTIC CAPITAL LETTER GANGIA
-03EB COPTIC SMALL LETTER GANGIA
-03EC COPTIC CAPITAL LETTER SHIMA
-03ED COPTIC SMALL LETTER SHIMA
-03EE COPTIC CAPITAL LETTER DEI
-03EF COPTIC SMALL LETTER DEI
-03F0 GREEK KAPPA SYMBOL
-03F1 GREEK RHO SYMBOL
-03F2 GREEK LUNATE SIGMA SYMBOL
-03F3 GREEK LETTER YOT
-03F4 GREEK CAPITAL THETA SYMBOL
-03F5 GREEK LUNATE EPSILON SYMBOL
-03F6 GREEK REVERSED LUNATE EPSILON SYMBOL
-0400 CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0401 CYRILLIC CAPITAL LETTER IO
-0402 CYRILLIC CAPITAL LETTER DJE
-0403 CYRILLIC CAPITAL LETTER GJE
-0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0405 CYRILLIC CAPITAL LETTER DZE
-0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-0407 CYRILLIC CAPITAL LETTER YI
-0408 CYRILLIC CAPITAL LETTER JE
-0409 CYRILLIC CAPITAL LETTER LJE
-040A CYRILLIC CAPITAL LETTER NJE
-040B CYRILLIC CAPITAL LETTER TSHE
-040C CYRILLIC CAPITAL LETTER KJE
-040D CYRILLIC CAPITAL LETTER I WITH GRAVE
-040E CYRILLIC CAPITAL LETTER SHORT U
-040F CYRILLIC CAPITAL LETTER DZHE
-0410 CYRILLIC CAPITAL LETTER A
-0411 CYRILLIC CAPITAL LETTER BE
-0412 CYRILLIC CAPITAL LETTER VE
-0413 CYRILLIC CAPITAL LETTER GHE
-0414 CYRILLIC CAPITAL LETTER DE
-0415 CYRILLIC CAPITAL LETTER IE
-0416 CYRILLIC CAPITAL LETTER ZHE
-0417 CYRILLIC CAPITAL LETTER ZE
-0418 CYRILLIC CAPITAL LETTER I
-0419 CYRILLIC CAPITAL LETTER SHORT I
-041A CYRILLIC CAPITAL LETTER KA
-041B CYRILLIC CAPITAL LETTER EL
-041C CYRILLIC CAPITAL LETTER EM
-041D CYRILLIC CAPITAL LETTER EN
-041E CYRILLIC CAPITAL LETTER O
-041F CYRILLIC CAPITAL LETTER PE
-0420 CYRILLIC CAPITAL LETTER ER
-0421 CYRILLIC CAPITAL LETTER ES
-0422 CYRILLIC CAPITAL LETTER TE
-0423 CYRILLIC CAPITAL LETTER U
-0424 CYRILLIC CAPITAL LETTER EF
-0425 CYRILLIC CAPITAL LETTER HA
-0426 CYRILLIC CAPITAL LETTER TSE
-0427 CYRILLIC CAPITAL LETTER CHE
-0428 CYRILLIC CAPITAL LETTER SHA
-0429 CYRILLIC CAPITAL LETTER SHCHA
-042A CYRILLIC CAPITAL LETTER HARD SIGN
-042B CYRILLIC CAPITAL LETTER YERU
-042C CYRILLIC CAPITAL LETTER SOFT SIGN
-042D CYRILLIC CAPITAL LETTER E
-042E CYRILLIC CAPITAL LETTER YU
-042F CYRILLIC CAPITAL LETTER YA
-0430 CYRILLIC SMALL LETTER A
-0431 CYRILLIC SMALL LETTER BE
-0432 CYRILLIC SMALL LETTER VE
-0433 CYRILLIC SMALL LETTER GHE
-0434 CYRILLIC SMALL LETTER DE
-0435 CYRILLIC SMALL LETTER IE
-0436 CYRILLIC SMALL LETTER ZHE
-0437 CYRILLIC SMALL LETTER ZE
-0438 CYRILLIC SMALL LETTER I
-0439 CYRILLIC SMALL LETTER SHORT I
-043A CYRILLIC SMALL LETTER KA
-043B CYRILLIC SMALL LETTER EL
-043C CYRILLIC SMALL LETTER EM
-043D CYRILLIC SMALL LETTER EN
-043E CYRILLIC SMALL LETTER O
-043F CYRILLIC SMALL LETTER PE
-0440 CYRILLIC SMALL LETTER ER
-0441 CYRILLIC SMALL LETTER ES
-0442 CYRILLIC SMALL LETTER TE
-0443 CYRILLIC SMALL LETTER U
-0444 CYRILLIC SMALL LETTER EF
-0445 CYRILLIC SMALL LETTER HA
-0446 CYRILLIC SMALL LETTER TSE
-0447 CYRILLIC SMALL LETTER CHE
-0448 CYRILLIC SMALL LETTER SHA
-0449 CYRILLIC SMALL LETTER SHCHA
-044A CYRILLIC SMALL LETTER HARD SIGN
-044B CYRILLIC SMALL LETTER YERU
-044C CYRILLIC SMALL LETTER SOFT SIGN
-044D CYRILLIC SMALL LETTER E
-044E CYRILLIC SMALL LETTER YU
-044F CYRILLIC SMALL LETTER YA
-0450 CYRILLIC SMALL LETTER IE WITH GRAVE
-0451 CYRILLIC SMALL LETTER IO
-0452 CYRILLIC SMALL LETTER DJE
-0453 CYRILLIC SMALL LETTER GJE
-0454 CYRILLIC SMALL LETTER UKRAINIAN IE
-0455 CYRILLIC SMALL LETTER DZE
-0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0457 CYRILLIC SMALL LETTER YI
-0458 CYRILLIC SMALL LETTER JE
-0459 CYRILLIC SMALL LETTER LJE
-045A CYRILLIC SMALL LETTER NJE
-045B CYRILLIC SMALL LETTER TSHE
-045C CYRILLIC SMALL LETTER KJE
-045D CYRILLIC SMALL LETTER I WITH GRAVE
-045E CYRILLIC SMALL LETTER SHORT U
-045F CYRILLIC SMALL LETTER DZHE
-0460 CYRILLIC CAPITAL LETTER OMEGA
-0461 CYRILLIC SMALL LETTER OMEGA
-0462 CYRILLIC CAPITAL LETTER YAT
-0463 CYRILLIC SMALL LETTER YAT
-0464 CYRILLIC CAPITAL LETTER IOTIFIED E
-0465 CYRILLIC SMALL LETTER IOTIFIED E
-0466 CYRILLIC CAPITAL LETTER LITTLE YUS
-0467 CYRILLIC SMALL LETTER LITTLE YUS
-0468 CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-0469 CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-046A CYRILLIC CAPITAL LETTER BIG YUS
-046B CYRILLIC SMALL LETTER BIG YUS
-046C CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046D CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-046E CYRILLIC CAPITAL LETTER KSI
-046F CYRILLIC SMALL LETTER KSI
-0470 CYRILLIC CAPITAL LETTER PSI
-0471 CYRILLIC SMALL LETTER PSI
-0472 CYRILLIC CAPITAL LETTER FITA
-0473 CYRILLIC SMALL LETTER FITA
-0474 CYRILLIC CAPITAL LETTER IZHITSA
-0475 CYRILLIC SMALL LETTER IZHITSA
-0476 CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0477 CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0478 CYRILLIC CAPITAL LETTER UK
-0479 CYRILLIC SMALL LETTER UK
-047A CYRILLIC CAPITAL LETTER ROUND OMEGA
-047B CYRILLIC SMALL LETTER ROUND OMEGA
-047C CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047D CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047E CYRILLIC CAPITAL LETTER OT
-047F CYRILLIC SMALL LETTER OT
-0480 CYRILLIC CAPITAL LETTER KOPPA
-0481 CYRILLIC SMALL LETTER KOPPA
-0482 CYRILLIC THOUSANDS SIGN
-0483 COMBINING CYRILLIC TITLO
-0484 COMBINING CYRILLIC PALATALIZATION
-0485 COMBINING CYRILLIC DASIA PNEUMATA
-0486 COMBINING CYRILLIC PSILI PNEUMATA
-0488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
-0489 COMBINING CYRILLIC MILLIONS SIGN
-048A CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-048B CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048C CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-048D CYRILLIC SMALL LETTER SEMISOFT SIGN
-048E CYRILLIC CAPITAL LETTER ER WITH TICK
-048F CYRILLIC SMALL LETTER ER WITH TICK
-0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0491 CYRILLIC SMALL LETTER GHE WITH UPTURN
-0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE
-0493 CYRILLIC SMALL LETTER GHE WITH STROKE
-0494 CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-0495 CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0498 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0499 CYRILLIC SMALL LETTER ZE WITH DESCENDER
-049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-049B CYRILLIC SMALL LETTER KA WITH DESCENDER
-049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049E CYRILLIC CAPITAL LETTER KA WITH STROKE
-049F CYRILLIC SMALL LETTER KA WITH STROKE
-04A0 CYRILLIC CAPITAL LETTER BASHKIR KA
-04A1 CYRILLIC SMALL LETTER BASHKIR KA
-04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A4 CYRILLIC CAPITAL LIGATURE EN GHE
-04A5 CYRILLIC SMALL LIGATURE EN GHE
-04A6 CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7 CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A8 CYRILLIC CAPITAL LETTER ABKHASIAN HA
-04A9 CYRILLIC SMALL LETTER ABKHASIAN HA
-04AA CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-04AB CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AC CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-04AD CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AE CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF CYRILLIC SMALL LETTER STRAIGHT U
-04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B4 CYRILLIC CAPITAL LIGATURE TE TSE
-04B5 CYRILLIC SMALL LIGATURE TE TSE
-04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA CYRILLIC CAPITAL LETTER SHHA
-04BB CYRILLIC SMALL LETTER SHHA
-04BC CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BD CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BE CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-04BF CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04C0 CYRILLIC LETTER PALOCHKA
-04C1 CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-04C2 CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C3 CYRILLIC CAPITAL LETTER KA WITH HOOK
-04C4 CYRILLIC SMALL LETTER KA WITH HOOK
-04C5 CYRILLIC CAPITAL LETTER EL WITH TAIL
-04C6 CYRILLIC SMALL LETTER EL WITH TAIL
-04C7 CYRILLIC CAPITAL LETTER EN WITH HOOK
-04C8 CYRILLIC SMALL LETTER EN WITH HOOK
-04C9 CYRILLIC CAPITAL LETTER EN WITH TAIL
-04CA CYRILLIC SMALL LETTER EN WITH TAIL
-04CB CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04CC CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CD CYRILLIC CAPITAL LETTER EM WITH TAIL
-04CE CYRILLIC SMALL LETTER EM WITH TAIL
-04D0 CYRILLIC CAPITAL LETTER A WITH BREVE
-04D1 CYRILLIC SMALL LETTER A WITH BREVE
-04D2 CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D3 CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D4 CYRILLIC CAPITAL LIGATURE A IE
-04D5 CYRILLIC SMALL LIGATURE A IE
-04D6 CYRILLIC CAPITAL LETTER IE WITH BREVE
-04D7 CYRILLIC SMALL LETTER IE WITH BREVE
-04D8 CYRILLIC CAPITAL LETTER SCHWA
-04D9 CYRILLIC SMALL LETTER SCHWA
-04DA CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04DB CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DC CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DD CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DE CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04DF CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04E0 CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-04E1 CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E2 CYRILLIC CAPITAL LETTER I WITH MACRON
-04E3 CYRILLIC SMALL LETTER I WITH MACRON
-04E4 CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-04E5 CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E6 CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E7 CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E8 CYRILLIC CAPITAL LETTER BARRED O
-04E9 CYRILLIC SMALL LETTER BARRED O
-04EA CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04EB CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EC CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-04ED CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EE CYRILLIC CAPITAL LETTER U WITH MACRON
-04EF CYRILLIC SMALL LETTER U WITH MACRON
-04F0 CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F1 CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F2 CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F3 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F4 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F5 CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F8 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04F9 CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-0500 CYRILLIC CAPITAL LETTER KOMI DE
-0501 CYRILLIC SMALL LETTER KOMI DE
-0502 CYRILLIC CAPITAL LETTER KOMI DJE
-0503 CYRILLIC SMALL LETTER KOMI DJE
-0504 CYRILLIC CAPITAL LETTER KOMI ZJE
-0505 CYRILLIC SMALL LETTER KOMI ZJE
-0506 CYRILLIC CAPITAL LETTER KOMI DZJE
-0507 CYRILLIC SMALL LETTER KOMI DZJE
-0508 CYRILLIC CAPITAL LETTER KOMI LJE
-0509 CYRILLIC SMALL LETTER KOMI LJE
-050A CYRILLIC CAPITAL LETTER KOMI NJE
-050B CYRILLIC SMALL LETTER KOMI NJE
-050C CYRILLIC CAPITAL LETTER KOMI SJE
-050D CYRILLIC SMALL LETTER KOMI SJE
-050E CYRILLIC CAPITAL LETTER KOMI TJE
-050F CYRILLIC SMALL LETTER KOMI TJE
-0531 ARMENIAN CAPITAL LETTER AYB
-0532 ARMENIAN CAPITAL LETTER BEN
-0533 ARMENIAN CAPITAL LETTER GIM
-0534 ARMENIAN CAPITAL LETTER DA
-0535 ARMENIAN CAPITAL LETTER ECH
-0536 ARMENIAN CAPITAL LETTER ZA
-0537 ARMENIAN CAPITAL LETTER EH
-0538 ARMENIAN CAPITAL LETTER ET
-0539 ARMENIAN CAPITAL LETTER TO
-053A ARMENIAN CAPITAL LETTER ZHE
-053B ARMENIAN CAPITAL LETTER INI
-053C ARMENIAN CAPITAL LETTER LIWN
-053D ARMENIAN CAPITAL LETTER XEH
-053E ARMENIAN CAPITAL LETTER CA
-053F ARMENIAN CAPITAL LETTER KEN
-0540 ARMENIAN CAPITAL LETTER HO
-0541 ARMENIAN CAPITAL LETTER JA
-0542 ARMENIAN CAPITAL LETTER GHAD
-0543 ARMENIAN CAPITAL LETTER CHEH
-0544 ARMENIAN CAPITAL LETTER MEN
-0545 ARMENIAN CAPITAL LETTER YI
-0546 ARMENIAN CAPITAL LETTER NOW
-0547 ARMENIAN CAPITAL LETTER SHA
-0548 ARMENIAN CAPITAL LETTER VO
-0549 ARMENIAN CAPITAL LETTER CHA
-054A ARMENIAN CAPITAL LETTER PEH
-054B ARMENIAN CAPITAL LETTER JHEH
-054C ARMENIAN CAPITAL LETTER RA
-054D ARMENIAN CAPITAL LETTER SEH
-054E ARMENIAN CAPITAL LETTER VEW
-054F ARMENIAN CAPITAL LETTER TIWN
-0550 ARMENIAN CAPITAL LETTER REH
-0551 ARMENIAN CAPITAL LETTER CO
-0552 ARMENIAN CAPITAL LETTER YIWN
-0553 ARMENIAN CAPITAL LETTER PIWR
-0554 ARMENIAN CAPITAL LETTER KEH
-0555 ARMENIAN CAPITAL LETTER OH
-0556 ARMENIAN CAPITAL LETTER FEH
-0559 ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A ARMENIAN APOSTROPHE
-055B ARMENIAN EMPHASIS MARK
-055C ARMENIAN EXCLAMATION MARK
-055D ARMENIAN COMMA
-055E ARMENIAN QUESTION MARK
-055F ARMENIAN ABBREVIATION MARK
-0561 ARMENIAN SMALL LETTER AYB
-0562 ARMENIAN SMALL LETTER BEN
-0563 ARMENIAN SMALL LETTER GIM
-0564 ARMENIAN SMALL LETTER DA
-0565 ARMENIAN SMALL LETTER ECH
-0566 ARMENIAN SMALL LETTER ZA
-0567 ARMENIAN SMALL LETTER EH
-0568 ARMENIAN SMALL LETTER ET
-0569 ARMENIAN SMALL LETTER TO
-056A ARMENIAN SMALL LETTER ZHE
-056B ARMENIAN SMALL LETTER INI
-056C ARMENIAN SMALL LETTER LIWN
-056D ARMENIAN SMALL LETTER XEH
-056E ARMENIAN SMALL LETTER CA
-056F ARMENIAN SMALL LETTER KEN
-0570 ARMENIAN SMALL LETTER HO
-0571 ARMENIAN SMALL LETTER JA
-0572 ARMENIAN SMALL LETTER GHAD
-0573 ARMENIAN SMALL LETTER CHEH
-0574 ARMENIAN SMALL LETTER MEN
-0575 ARMENIAN SMALL LETTER YI
-0576 ARMENIAN SMALL LETTER NOW
-0577 ARMENIAN SMALL LETTER SHA
-0578 ARMENIAN SMALL LETTER VO
-0579 ARMENIAN SMALL LETTER CHA
-057A ARMENIAN SMALL LETTER PEH
-057B ARMENIAN SMALL LETTER JHEH
-057C ARMENIAN SMALL LETTER RA
-057D ARMENIAN SMALL LETTER SEH
-057E ARMENIAN SMALL LETTER VEW
-057F ARMENIAN SMALL LETTER TIWN
-0580 ARMENIAN SMALL LETTER REH
-0581 ARMENIAN SMALL LETTER CO
-0582 ARMENIAN SMALL LETTER YIWN
-0583 ARMENIAN SMALL LETTER PIWR
-0584 ARMENIAN SMALL LETTER KEH
-0585 ARMENIAN SMALL LETTER OH
-0586 ARMENIAN SMALL LETTER FEH
-0587 ARMENIAN SMALL LIGATURE ECH YIWN
-0589 ARMENIAN FULL STOP
-058A ARMENIAN HYPHEN
-0591 HEBREW ACCENT ETNAHTA
-0592 HEBREW ACCENT SEGOL
-0593 HEBREW ACCENT SHALSHELET
-0594 HEBREW ACCENT ZAQEF QATAN
-0595 HEBREW ACCENT ZAQEF GADOL
-0596 HEBREW ACCENT TIPEHA
-0597 HEBREW ACCENT REVIA
-0598 HEBREW ACCENT ZARQA
-0599 HEBREW ACCENT PASHTA
-059A HEBREW ACCENT YETIV
-059B HEBREW ACCENT TEVIR
-059C HEBREW ACCENT GERESH
-059D HEBREW ACCENT GERESH MUQDAM
-059E HEBREW ACCENT GERSHAYIM
-059F HEBREW ACCENT QARNEY PARA
-05A0 HEBREW ACCENT TELISHA GEDOLA
-05A1 HEBREW ACCENT PAZER
-05A3 HEBREW ACCENT MUNAH
-05A4 HEBREW ACCENT MAHAPAKH
-05A5 HEBREW ACCENT MERKHA
-05A6 HEBREW ACCENT MERKHA KEFULA
-05A7 HEBREW ACCENT DARGA
-05A8 HEBREW ACCENT QADMA
-05A9 HEBREW ACCENT TELISHA QETANA
-05AA HEBREW ACCENT YERAH BEN YOMO
-05AB HEBREW ACCENT OLE
-05AC HEBREW ACCENT ILUY
-05AD HEBREW ACCENT DEHI
-05AE HEBREW ACCENT ZINOR
-05AF HEBREW MARK MASORA CIRCLE
-05B0 HEBREW POINT SHEVA
-05B1 HEBREW POINT HATAF SEGOL
-05B2 HEBREW POINT HATAF PATAH
-05B3 HEBREW POINT HATAF QAMATS
-05B4 HEBREW POINT HIRIQ
-05B5 HEBREW POINT TSERE
-05B6 HEBREW POINT SEGOL
-05B7 HEBREW POINT PATAH
-05B8 HEBREW POINT QAMATS
-05B9 HEBREW POINT HOLAM
-05BB HEBREW POINT QUBUTS
-05BC HEBREW POINT DAGESH OR MAPIQ
-05BD HEBREW POINT METEG
-05BE HEBREW PUNCTUATION MAQAF
-05BF HEBREW POINT RAFE
-05C0 HEBREW PUNCTUATION PASEQ
-05C1 HEBREW POINT SHIN DOT
-05C2 HEBREW POINT SIN DOT
-05C3 HEBREW PUNCTUATION SOF PASUQ
-05C4 HEBREW MARK UPPER DOT
-05D0 HEBREW LETTER ALEF
-05D1 HEBREW LETTER BET
-05D2 HEBREW LETTER GIMEL
-05D3 HEBREW LETTER DALET
-05D4 HEBREW LETTER HE
-05D5 HEBREW LETTER VAV
-05D6 HEBREW LETTER ZAYIN
-05D7 HEBREW LETTER HET
-05D8 HEBREW LETTER TET
-05D9 HEBREW LETTER YOD
-05DA HEBREW LETTER FINAL KAF
-05DB HEBREW LETTER KAF
-05DC HEBREW LETTER LAMED
-05DD HEBREW LETTER FINAL MEM
-05DE HEBREW LETTER MEM
-05DF HEBREW LETTER FINAL NUN
-05E0 HEBREW LETTER NUN
-05E1 HEBREW LETTER SAMEKH
-05E2 HEBREW LETTER AYIN
-05E3 HEBREW LETTER FINAL PE
-05E4 HEBREW LETTER PE
-05E5 HEBREW LETTER FINAL TSADI
-05E6 HEBREW LETTER TSADI
-05E7 HEBREW LETTER QOF
-05E8 HEBREW LETTER RESH
-05E9 HEBREW LETTER SHIN
-05EA HEBREW LETTER TAV
-05F0 HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1 HEBREW LIGATURE YIDDISH VAV YOD
-05F2 HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3 HEBREW PUNCTUATION GERESH
-05F4 HEBREW PUNCTUATION GERSHAYIM
-060C ARABIC COMMA
-061B ARABIC SEMICOLON
-061F ARABIC QUESTION MARK
-0621 ARABIC LETTER HAMZA
-0622 ARABIC LETTER ALEF WITH MADDA ABOVE
-0623 ARABIC LETTER ALEF WITH HAMZA ABOVE
-0624 ARABIC LETTER WAW WITH HAMZA ABOVE
-0625 ARABIC LETTER ALEF WITH HAMZA BELOW
-0626 ARABIC LETTER YEH WITH HAMZA ABOVE
-0627 ARABIC LETTER ALEF
-0628 ARABIC LETTER BEH
-0629 ARABIC LETTER TEH MARBUTA
-062A ARABIC LETTER TEH
-062B ARABIC LETTER THEH
-062C ARABIC LETTER JEEM
-062D ARABIC LETTER HAH
-062E ARABIC LETTER KHAH
-062F ARABIC LETTER DAL
-0630 ARABIC LETTER THAL
-0631 ARABIC LETTER REH
-0632 ARABIC LETTER ZAIN
-0633 ARABIC LETTER SEEN
-0634 ARABIC LETTER SHEEN
-0635 ARABIC LETTER SAD
-0636 ARABIC LETTER DAD
-0637 ARABIC LETTER TAH
-0638 ARABIC LETTER ZAH
-0639 ARABIC LETTER AIN
-063A ARABIC LETTER GHAIN
-0640 ARABIC TATWEEL
-0641 ARABIC LETTER FEH
-0642 ARABIC LETTER QAF
-0643 ARABIC LETTER KAF
-0644 ARABIC LETTER LAM
-0645 ARABIC LETTER MEEM
-0646 ARABIC LETTER NOON
-0647 ARABIC LETTER HEH
-0648 ARABIC LETTER WAW
-0649 ARABIC LETTER ALEF MAKSURA
-064A ARABIC LETTER YEH
-064B ARABIC FATHATAN
-064C ARABIC DAMMATAN
-064D ARABIC KASRATAN
-064E ARABIC FATHA
-064F ARABIC DAMMA
-0650 ARABIC KASRA
-0651 ARABIC SHADDA
-0652 ARABIC SUKUN
-0653 ARABIC MADDAH ABOVE
-0654 ARABIC HAMZA ABOVE
-0655 ARABIC HAMZA BELOW
-0660 ARABIC-INDIC DIGIT ZERO
-0661 ARABIC-INDIC DIGIT ONE
-0662 ARABIC-INDIC DIGIT TWO
-0663 ARABIC-INDIC DIGIT THREE
-0664 ARABIC-INDIC DIGIT FOUR
-0665 ARABIC-INDIC DIGIT FIVE
-0666 ARABIC-INDIC DIGIT SIX
-0667 ARABIC-INDIC DIGIT SEVEN
-0668 ARABIC-INDIC DIGIT EIGHT
-0669 ARABIC-INDIC DIGIT NINE
-066A ARABIC PERCENT SIGN
-066B ARABIC DECIMAL SEPARATOR
-066C ARABIC THOUSANDS SEPARATOR
-066D ARABIC FIVE POINTED STAR
-066E ARABIC LETTER DOTLESS BEH
-066F ARABIC LETTER DOTLESS QAF
-0670 ARABIC LETTER SUPERSCRIPT ALEF
-0671 ARABIC LETTER ALEF WASLA
-0672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0673 ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0674 ARABIC LETTER HIGH HAMZA
-0675 ARABIC LETTER HIGH HAMZA ALEF
-0676 ARABIC LETTER HIGH HAMZA WAW
-0677 ARABIC LETTER U WITH HAMZA ABOVE
-0678 ARABIC LETTER HIGH HAMZA YEH
-0679 ARABIC LETTER TTEH
-067A ARABIC LETTER TTEHEH
-067B ARABIC LETTER BEEH
-067C ARABIC LETTER TEH WITH RING
-067D ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067E ARABIC LETTER PEH
-067F ARABIC LETTER TEHEH
-0680 ARABIC LETTER BEHEH
-0681 ARABIC LETTER HAH WITH HAMZA ABOVE
-0682 ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0683 ARABIC LETTER NYEH
-0684 ARABIC LETTER DYEH
-0685 ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0686 ARABIC LETTER TCHEH
-0687 ARABIC LETTER TCHEHEH
-0688 ARABIC LETTER DDAL
-0689 ARABIC LETTER DAL WITH RING
-068A ARABIC LETTER DAL WITH DOT BELOW
-068B ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C ARABIC LETTER DAHAL
-068D ARABIC LETTER DDAHAL
-068E ARABIC LETTER DUL
-068F ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690 ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-0691 ARABIC LETTER RREH
-0692 ARABIC LETTER REH WITH SMALL V
-0693 ARABIC LETTER REH WITH RING
-0694 ARABIC LETTER REH WITH DOT BELOW
-0695 ARABIC LETTER REH WITH SMALL V BELOW
-0696 ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697 ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698 ARABIC LETTER JEH
-0699 ARABIC LETTER REH WITH FOUR DOTS ABOVE
-069A ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-069D ARABIC LETTER SAD WITH TWO DOTS BELOW
-069E ARABIC LETTER SAD WITH THREE DOTS ABOVE
-069F ARABIC LETTER TAH WITH THREE DOTS ABOVE
-06A0 ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06A1 ARABIC LETTER DOTLESS FEH
-06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3 ARABIC LETTER FEH WITH DOT BELOW
-06A4 ARABIC LETTER VEH
-06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6 ARABIC LETTER PEHEH
-06A7 ARABIC LETTER QAF WITH DOT ABOVE
-06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE
-06A9 ARABIC LETTER KEHEH
-06AA ARABIC LETTER SWASH KAF
-06AB ARABIC LETTER KAF WITH RING
-06AC ARABIC LETTER KAF WITH DOT ABOVE
-06AD ARABIC LETTER NG
-06AE ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF ARABIC LETTER GAF
-06B0 ARABIC LETTER GAF WITH RING
-06B1 ARABIC LETTER NGOEH
-06B2 ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3 ARABIC LETTER GUEH
-06B4 ARABIC LETTER GAF WITH THREE DOTS ABOVE
-06B5 ARABIC LETTER LAM WITH SMALL V
-06B6 ARABIC LETTER LAM WITH DOT ABOVE
-06B7 ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8 ARABIC LETTER LAM WITH THREE DOTS BELOW
-06B9 ARABIC LETTER NOON WITH DOT BELOW
-06BA ARABIC LETTER NOON GHUNNA
-06BB ARABIC LETTER RNOON
-06BC ARABIC LETTER NOON WITH RING
-06BD ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06BE ARABIC LETTER HEH DOACHASHMEE
-06BF ARABIC LETTER TCHEH WITH DOT ABOVE
-06C0 ARABIC LETTER HEH WITH YEH ABOVE
-06C1 ARABIC LETTER HEH GOAL
-06C2 ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3 ARABIC LETTER TEH MARBUTA GOAL
-06C4 ARABIC LETTER WAW WITH RING
-06C5 ARABIC LETTER KIRGHIZ OE
-06C6 ARABIC LETTER OE
-06C7 ARABIC LETTER U
-06C8 ARABIC LETTER YU
-06C9 ARABIC LETTER KIRGHIZ YU
-06CA ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB ARABIC LETTER VE
-06CC ARABIC LETTER FARSI YEH
-06CD ARABIC LETTER YEH WITH TAIL
-06CE ARABIC LETTER YEH WITH SMALL V
-06CF ARABIC LETTER WAW WITH DOT ABOVE
-06D0 ARABIC LETTER E
-06D1 ARABIC LETTER YEH WITH THREE DOTS BELOW
-06D2 ARABIC LETTER YEH BARREE
-06D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4 ARABIC FULL STOP
-06D5 ARABIC LETTER AE
-06D6 ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
-06D7 ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
-06D8 ARABIC SMALL HIGH MEEM INITIAL FORM
-06D9 ARABIC SMALL HIGH LAM ALEF
-06DA ARABIC SMALL HIGH JEEM
-06DB ARABIC SMALL HIGH THREE DOTS
-06DC ARABIC SMALL HIGH SEEN
-06DD ARABIC END OF AYAH
-06DE ARABIC START OF RUB EL HIZB
-06DF ARABIC SMALL HIGH ROUNDED ZERO
-06E0 ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
-06E1 ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
-06E2 ARABIC SMALL HIGH MEEM ISOLATED FORM
-06E3 ARABIC SMALL LOW SEEN
-06E4 ARABIC SMALL HIGH MADDA
-06E5 ARABIC SMALL WAW
-06E6 ARABIC SMALL YEH
-06E7 ARABIC SMALL HIGH YEH
-06E8 ARABIC SMALL HIGH NOON
-06E9 ARABIC PLACE OF SAJDAH
-06EA ARABIC EMPTY CENTRE LOW STOP
-06EB ARABIC EMPTY CENTRE HIGH STOP
-06EC ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
-06ED ARABIC SMALL LOW MEEM
-06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
-06F1 EXTENDED ARABIC-INDIC DIGIT ONE
-06F2 EXTENDED ARABIC-INDIC DIGIT TWO
-06F3 EXTENDED ARABIC-INDIC DIGIT THREE
-06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
-06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
-06F6 EXTENDED ARABIC-INDIC DIGIT SIX
-06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
-06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
-06F9 EXTENDED ARABIC-INDIC DIGIT NINE
-06FA ARABIC LETTER SHEEN WITH DOT BELOW
-06FB ARABIC LETTER DAD WITH DOT BELOW
-06FC ARABIC LETTER GHAIN WITH DOT BELOW
-06FD ARABIC SIGN SINDHI AMPERSAND
-06FE ARABIC SIGN SINDHI POSTPOSITION MEN
-0700 SYRIAC END OF PARAGRAPH
-0701 SYRIAC SUPRALINEAR FULL STOP
-0702 SYRIAC SUBLINEAR FULL STOP
-0703 SYRIAC SUPRALINEAR COLON
-0704 SYRIAC SUBLINEAR COLON
-0705 SYRIAC HORIZONTAL COLON
-0706 SYRIAC COLON SKEWED LEFT
-0707 SYRIAC COLON SKEWED RIGHT
-0708 SYRIAC SUPRALINEAR COLON SKEWED LEFT
-0709 SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A SYRIAC CONTRACTION
-070B SYRIAC HARKLEAN OBELUS
-070C SYRIAC HARKLEAN METOBELUS
-070D SYRIAC HARKLEAN ASTERISCUS
-070F SYRIAC ABBREVIATION MARK
-0710 SYRIAC LETTER ALAPH
-0711 SYRIAC LETTER SUPERSCRIPT ALAPH
-0712 SYRIAC LETTER BETH
-0713 SYRIAC LETTER GAMAL
-0714 SYRIAC LETTER GAMAL GARSHUNI
-0715 SYRIAC LETTER DALATH
-0716 SYRIAC LETTER DOTLESS DALATH RISH
-0717 SYRIAC LETTER HE
-0718 SYRIAC LETTER WAW
-0719 SYRIAC LETTER ZAIN
-071A SYRIAC LETTER HETH
-071B SYRIAC LETTER TETH
-071C SYRIAC LETTER TETH GARSHUNI
-071D SYRIAC LETTER YUDH
-071E SYRIAC LETTER YUDH HE
-071F SYRIAC LETTER KAPH
-0720 SYRIAC LETTER LAMADH
-0721 SYRIAC LETTER MIM
-0722 SYRIAC LETTER NUN
-0723 SYRIAC LETTER SEMKATH
-0724 SYRIAC LETTER FINAL SEMKATH
-0725 SYRIAC LETTER E
-0726 SYRIAC LETTER PE
-0727 SYRIAC LETTER REVERSED PE
-0728 SYRIAC LETTER SADHE
-0729 SYRIAC LETTER QAPH
-072A SYRIAC LETTER RISH
-072B SYRIAC LETTER SHIN
-072C SYRIAC LETTER TAW
-0730 SYRIAC PTHAHA ABOVE
-0731 SYRIAC PTHAHA BELOW
-0732 SYRIAC PTHAHA DOTTED
-0733 SYRIAC ZQAPHA ABOVE
-0734 SYRIAC ZQAPHA BELOW
-0735 SYRIAC ZQAPHA DOTTED
-0736 SYRIAC RBASA ABOVE
-0737 SYRIAC RBASA BELOW
-0738 SYRIAC DOTTED ZLAMA HORIZONTAL
-0739 SYRIAC DOTTED ZLAMA ANGULAR
-073A SYRIAC HBASA ABOVE
-073B SYRIAC HBASA BELOW
-073C SYRIAC HBASA-ESASA DOTTED
-073D SYRIAC ESASA ABOVE
-073E SYRIAC ESASA BELOW
-073F SYRIAC RWAHA
-0740 SYRIAC FEMININE DOT
-0741 SYRIAC QUSHSHAYA
-0742 SYRIAC RUKKAKHA
-0743 SYRIAC TWO VERTICAL DOTS ABOVE
-0744 SYRIAC TWO VERTICAL DOTS BELOW
-0745 SYRIAC THREE DOTS ABOVE
-0746 SYRIAC THREE DOTS BELOW
-0747 SYRIAC OBLIQUE LINE ABOVE
-0748 SYRIAC OBLIQUE LINE BELOW
-0749 SYRIAC MUSIC
-074A SYRIAC BARREKH
-0780 THAANA LETTER HAA
-0781 THAANA LETTER SHAVIYANI
-0782 THAANA LETTER NOONU
-0783 THAANA LETTER RAA
-0784 THAANA LETTER BAA
-0785 THAANA LETTER LHAVIYANI
-0786 THAANA LETTER KAAFU
-0787 THAANA LETTER ALIFU
-0788 THAANA LETTER VAAVU
-0789 THAANA LETTER MEEMU
-078A THAANA LETTER FAAFU
-078B THAANA LETTER DHAALU
-078C THAANA LETTER THAA
-078D THAANA LETTER LAAMU
-078E THAANA LETTER GAAFU
-078F THAANA LETTER GNAVIYANI
-0790 THAANA LETTER SEENU
-0791 THAANA LETTER DAVIYANI
-0792 THAANA LETTER ZAVIYANI
-0793 THAANA LETTER TAVIYANI
-0794 THAANA LETTER YAA
-0795 THAANA LETTER PAVIYANI
-0796 THAANA LETTER JAVIYANI
-0797 THAANA LETTER CHAVIYANI
-0798 THAANA LETTER TTAA
-0799 THAANA LETTER HHAA
-079A THAANA LETTER KHAA
-079B THAANA LETTER THAALU
-079C THAANA LETTER ZAA
-079D THAANA LETTER SHEENU
-079E THAANA LETTER SAADHU
-079F THAANA LETTER DAADHU
-07A0 THAANA LETTER TO
-07A1 THAANA LETTER ZO
-07A2 THAANA LETTER AINU
-07A3 THAANA LETTER GHAINU
-07A4 THAANA LETTER QAAFU
-07A5 THAANA LETTER WAAVU
-07A6 THAANA ABAFILI
-07A7 THAANA AABAAFILI
-07A8 THAANA IBIFILI
-07A9 THAANA EEBEEFILI
-07AA THAANA UBUFILI
-07AB THAANA OOBOOFILI
-07AC THAANA EBEFILI
-07AD THAANA EYBEYFILI
-07AE THAANA OBOFILI
-07AF THAANA OABOAFILI
-07B0 THAANA SUKUN
-07B1 THAANA LETTER NAA
-0901 DEVANAGARI SIGN CANDRABINDU
-0902 DEVANAGARI SIGN ANUSVARA
-0903 DEVANAGARI SIGN VISARGA
-0905 DEVANAGARI LETTER A
-0906 DEVANAGARI LETTER AA
-0907 DEVANAGARI LETTER I
-0908 DEVANAGARI LETTER II
-0909 DEVANAGARI LETTER U
-090A DEVANAGARI LETTER UU
-090B DEVANAGARI LETTER VOCALIC R
-090C DEVANAGARI LETTER VOCALIC L
-090D DEVANAGARI LETTER CANDRA E
-090E DEVANAGARI LETTER SHORT E
-090F DEVANAGARI LETTER E
-0910 DEVANAGARI LETTER AI
-0911 DEVANAGARI LETTER CANDRA O
-0912 DEVANAGARI LETTER SHORT O
-0913 DEVANAGARI LETTER O
-0914 DEVANAGARI LETTER AU
-0915 DEVANAGARI LETTER KA
-0916 DEVANAGARI LETTER KHA
-0917 DEVANAGARI LETTER GA
-0918 DEVANAGARI LETTER GHA
-0919 DEVANAGARI LETTER NGA
-091A DEVANAGARI LETTER CA
-091B DEVANAGARI LETTER CHA
-091C DEVANAGARI LETTER JA
-091D DEVANAGARI LETTER JHA
-091E DEVANAGARI LETTER NYA
-091F DEVANAGARI LETTER TTA
-0920 DEVANAGARI LETTER TTHA
-0921 DEVANAGARI LETTER DDA
-0922 DEVANAGARI LETTER DDHA
-0923 DEVANAGARI LETTER NNA
-0924 DEVANAGARI LETTER TA
-0925 DEVANAGARI LETTER THA
-0926 DEVANAGARI LETTER DA
-0927 DEVANAGARI LETTER DHA
-0928 DEVANAGARI LETTER NA
-0929 DEVANAGARI LETTER NNNA
-092A DEVANAGARI LETTER PA
-092B DEVANAGARI LETTER PHA
-092C DEVANAGARI LETTER BA
-092D DEVANAGARI LETTER BHA
-092E DEVANAGARI LETTER MA
-092F DEVANAGARI LETTER YA
-0930 DEVANAGARI LETTER RA
-0931 DEVANAGARI LETTER RRA
-0932 DEVANAGARI LETTER LA
-0933 DEVANAGARI LETTER LLA
-0934 DEVANAGARI LETTER LLLA
-0935 DEVANAGARI LETTER VA
-0936 DEVANAGARI LETTER SHA
-0937 DEVANAGARI LETTER SSA
-0938 DEVANAGARI LETTER SA
-0939 DEVANAGARI LETTER HA
-093C DEVANAGARI SIGN NUKTA
-093D DEVANAGARI SIGN AVAGRAHA
-093E DEVANAGARI VOWEL SIGN AA
-093F DEVANAGARI VOWEL SIGN I
-0940 DEVANAGARI VOWEL SIGN II
-0941 DEVANAGARI VOWEL SIGN U
-0942 DEVANAGARI VOWEL SIGN UU
-0943 DEVANAGARI VOWEL SIGN VOCALIC R
-0944 DEVANAGARI VOWEL SIGN VOCALIC RR
-0945 DEVANAGARI VOWEL SIGN CANDRA E
-0946 DEVANAGARI VOWEL SIGN SHORT E
-0947 DEVANAGARI VOWEL SIGN E
-0948 DEVANAGARI VOWEL SIGN AI
-0949 DEVANAGARI VOWEL SIGN CANDRA O
-094A DEVANAGARI VOWEL SIGN SHORT O
-094B DEVANAGARI VOWEL SIGN O
-094C DEVANAGARI VOWEL SIGN AU
-094D DEVANAGARI SIGN VIRAMA
-0950 DEVANAGARI OM
-0951 DEVANAGARI STRESS SIGN UDATTA
-0952 DEVANAGARI STRESS SIGN ANUDATTA
-0953 DEVANAGARI GRAVE ACCENT
-0954 DEVANAGARI ACUTE ACCENT
-0958 DEVANAGARI LETTER QA
-0959 DEVANAGARI LETTER KHHA
-095A DEVANAGARI LETTER GHHA
-095B DEVANAGARI LETTER ZA
-095C DEVANAGARI LETTER DDDHA
-095D DEVANAGARI LETTER RHA
-095E DEVANAGARI LETTER FA
-095F DEVANAGARI LETTER YYA
-0960 DEVANAGARI LETTER VOCALIC RR
-0961 DEVANAGARI LETTER VOCALIC LL
-0962 DEVANAGARI VOWEL SIGN VOCALIC L
-0963 DEVANAGARI VOWEL SIGN VOCALIC LL
-0964 DEVANAGARI DANDA
-0965 DEVANAGARI DOUBLE DANDA
-0966 DEVANAGARI DIGIT ZERO
-0967 DEVANAGARI DIGIT ONE
-0968 DEVANAGARI DIGIT TWO
-0969 DEVANAGARI DIGIT THREE
-096A DEVANAGARI DIGIT FOUR
-096B DEVANAGARI DIGIT FIVE
-096C DEVANAGARI DIGIT SIX
-096D DEVANAGARI DIGIT SEVEN
-096E DEVANAGARI DIGIT EIGHT
-096F DEVANAGARI DIGIT NINE
-0970 DEVANAGARI ABBREVIATION SIGN
-0981 BENGALI SIGN CANDRABINDU
-0982 BENGALI SIGN ANUSVARA
-0983 BENGALI SIGN VISARGA
-0985 BENGALI LETTER A
-0986 BENGALI LETTER AA
-0987 BENGALI LETTER I
-0988 BENGALI LETTER II
-0989 BENGALI LETTER U
-098A BENGALI LETTER UU
-098B BENGALI LETTER VOCALIC R
-098C BENGALI LETTER VOCALIC L
-098F BENGALI LETTER E
-0990 BENGALI LETTER AI
-0993 BENGALI LETTER O
-0994 BENGALI LETTER AU
-0995 BENGALI LETTER KA
-0996 BENGALI LETTER KHA
-0997 BENGALI LETTER GA
-0998 BENGALI LETTER GHA
-0999 BENGALI LETTER NGA
-099A BENGALI LETTER CA
-099B BENGALI LETTER CHA
-099C BENGALI LETTER JA
-099D BENGALI LETTER JHA
-099E BENGALI LETTER NYA
-099F BENGALI LETTER TTA
-09A0 BENGALI LETTER TTHA
-09A1 BENGALI LETTER DDA
-09A2 BENGALI LETTER DDHA
-09A3 BENGALI LETTER NNA
-09A4 BENGALI LETTER TA
-09A5 BENGALI LETTER THA
-09A6 BENGALI LETTER DA
-09A7 BENGALI LETTER DHA
-09A8 BENGALI LETTER NA
-09AA BENGALI LETTER PA
-09AB BENGALI LETTER PHA
-09AC BENGALI LETTER BA
-09AD BENGALI LETTER BHA
-09AE BENGALI LETTER MA
-09AF BENGALI LETTER YA
-09B0 BENGALI LETTER RA
-09B2 BENGALI LETTER LA
-09B6 BENGALI LETTER SHA
-09B7 BENGALI LETTER SSA
-09B8 BENGALI LETTER SA
-09B9 BENGALI LETTER HA
-09BC BENGALI SIGN NUKTA
-09BE BENGALI VOWEL SIGN AA
-09BF BENGALI VOWEL SIGN I
-09C0 BENGALI VOWEL SIGN II
-09C1 BENGALI VOWEL SIGN U
-09C2 BENGALI VOWEL SIGN UU
-09C3 BENGALI VOWEL SIGN VOCALIC R
-09C4 BENGALI VOWEL SIGN VOCALIC RR
-09C7 BENGALI VOWEL SIGN E
-09C8 BENGALI VOWEL SIGN AI
-09CB BENGALI VOWEL SIGN O
-09CC BENGALI VOWEL SIGN AU
-09CD BENGALI SIGN VIRAMA
-09D7 BENGALI AU LENGTH MARK
-09DC BENGALI LETTER RRA
-09DD BENGALI LETTER RHA
-09DF BENGALI LETTER YYA
-09E0 BENGALI LETTER VOCALIC RR
-09E1 BENGALI LETTER VOCALIC LL
-09E2 BENGALI VOWEL SIGN VOCALIC L
-09E3 BENGALI VOWEL SIGN VOCALIC LL
-09E6 BENGALI DIGIT ZERO
-09E7 BENGALI DIGIT ONE
-09E8 BENGALI DIGIT TWO
-09E9 BENGALI DIGIT THREE
-09EA BENGALI DIGIT FOUR
-09EB BENGALI DIGIT FIVE
-09EC BENGALI DIGIT SIX
-09ED BENGALI DIGIT SEVEN
-09EE BENGALI DIGIT EIGHT
-09EF BENGALI DIGIT NINE
-09F0 BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09F1 BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2 BENGALI RUPEE MARK
-09F3 BENGALI RUPEE SIGN
-09F4 BENGALI CURRENCY NUMERATOR ONE
-09F5 BENGALI CURRENCY NUMERATOR TWO
-09F6 BENGALI CURRENCY NUMERATOR THREE
-09F7 BENGALI CURRENCY NUMERATOR FOUR
-09F8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9 BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA BENGALI ISSHAR
-0A02 GURMUKHI SIGN BINDI
-0A05 GURMUKHI LETTER A
-0A06 GURMUKHI LETTER AA
-0A07 GURMUKHI LETTER I
-0A08 GURMUKHI LETTER II
-0A09 GURMUKHI LETTER U
-0A0A GURMUKHI LETTER UU
-0A0F GURMUKHI LETTER EE
-0A10 GURMUKHI LETTER AI
-0A13 GURMUKHI LETTER OO
-0A14 GURMUKHI LETTER AU
-0A15 GURMUKHI LETTER KA
-0A16 GURMUKHI LETTER KHA
-0A17 GURMUKHI LETTER GA
-0A18 GURMUKHI LETTER GHA
-0A19 GURMUKHI LETTER NGA
-0A1A GURMUKHI LETTER CA
-0A1B GURMUKHI LETTER CHA
-0A1C GURMUKHI LETTER JA
-0A1D GURMUKHI LETTER JHA
-0A1E GURMUKHI LETTER NYA
-0A1F GURMUKHI LETTER TTA
-0A20 GURMUKHI LETTER TTHA
-0A21 GURMUKHI LETTER DDA
-0A22 GURMUKHI LETTER DDHA
-0A23 GURMUKHI LETTER NNA
-0A24 GURMUKHI LETTER TA
-0A25 GURMUKHI LETTER THA
-0A26 GURMUKHI LETTER DA
-0A27 GURMUKHI LETTER DHA
-0A28 GURMUKHI LETTER NA
-0A2A GURMUKHI LETTER PA
-0A2B GURMUKHI LETTER PHA
-0A2C GURMUKHI LETTER BA
-0A2D GURMUKHI LETTER BHA
-0A2E GURMUKHI LETTER MA
-0A2F GURMUKHI LETTER YA
-0A30 GURMUKHI LETTER RA
-0A32 GURMUKHI LETTER LA
-0A33 GURMUKHI LETTER LLA
-0A35 GURMUKHI LETTER VA
-0A36 GURMUKHI LETTER SHA
-0A38 GURMUKHI LETTER SA
-0A39 GURMUKHI LETTER HA
-0A3C GURMUKHI SIGN NUKTA
-0A3E GURMUKHI VOWEL SIGN AA
-0A3F GURMUKHI VOWEL SIGN I
-0A40 GURMUKHI VOWEL SIGN II
-0A41 GURMUKHI VOWEL SIGN U
-0A42 GURMUKHI VOWEL SIGN UU
-0A47 GURMUKHI VOWEL SIGN EE
-0A48 GURMUKHI VOWEL SIGN AI
-0A4B GURMUKHI VOWEL SIGN OO
-0A4C GURMUKHI VOWEL SIGN AU
-0A4D GURMUKHI SIGN VIRAMA
-0A59 GURMUKHI LETTER KHHA
-0A5A GURMUKHI LETTER GHHA
-0A5B GURMUKHI LETTER ZA
-0A5C GURMUKHI LETTER RRA
-0A5E GURMUKHI LETTER FA
-0A66 GURMUKHI DIGIT ZERO
-0A67 GURMUKHI DIGIT ONE
-0A68 GURMUKHI DIGIT TWO
-0A69 GURMUKHI DIGIT THREE
-0A6A GURMUKHI DIGIT FOUR
-0A6B GURMUKHI DIGIT FIVE
-0A6C GURMUKHI DIGIT SIX
-0A6D GURMUKHI DIGIT SEVEN
-0A6E GURMUKHI DIGIT EIGHT
-0A6F GURMUKHI DIGIT NINE
-0A70 GURMUKHI TIPPI
-0A71 GURMUKHI ADDAK
-0A72 GURMUKHI IRI
-0A73 GURMUKHI URA
-0A74 GURMUKHI EK ONKAR
-0A81 GUJARATI SIGN CANDRABINDU
-0A82 GUJARATI SIGN ANUSVARA
-0A83 GUJARATI SIGN VISARGA
-0A85 GUJARATI LETTER A
-0A86 GUJARATI LETTER AA
-0A87 GUJARATI LETTER I
-0A88 GUJARATI LETTER II
-0A89 GUJARATI LETTER U
-0A8A GUJARATI LETTER UU
-0A8B GUJARATI LETTER VOCALIC R
-0A8D GUJARATI VOWEL CANDRA E
-0A8F GUJARATI LETTER E
-0A90 GUJARATI LETTER AI
-0A91 GUJARATI VOWEL CANDRA O
-0A93 GUJARATI LETTER O
-0A94 GUJARATI LETTER AU
-0A95 GUJARATI LETTER KA
-0A96 GUJARATI LETTER KHA
-0A97 GUJARATI LETTER GA
-0A98 GUJARATI LETTER GHA
-0A99 GUJARATI LETTER NGA
-0A9A GUJARATI LETTER CA
-0A9B GUJARATI LETTER CHA
-0A9C GUJARATI LETTER JA
-0A9D GUJARATI LETTER JHA
-0A9E GUJARATI LETTER NYA
-0A9F GUJARATI LETTER TTA
-0AA0 GUJARATI LETTER TTHA
-0AA1 GUJARATI LETTER DDA
-0AA2 GUJARATI LETTER DDHA
-0AA3 GUJARATI LETTER NNA
-0AA4 GUJARATI LETTER TA
-0AA5 GUJARATI LETTER THA
-0AA6 GUJARATI LETTER DA
-0AA7 GUJARATI LETTER DHA
-0AA8 GUJARATI LETTER NA
-0AAA GUJARATI LETTER PA
-0AAB GUJARATI LETTER PHA
-0AAC GUJARATI LETTER BA
-0AAD GUJARATI LETTER BHA
-0AAE GUJARATI LETTER MA
-0AAF GUJARATI LETTER YA
-0AB0 GUJARATI LETTER RA
-0AB2 GUJARATI LETTER LA
-0AB3 GUJARATI LETTER LLA
-0AB5 GUJARATI LETTER VA
-0AB6 GUJARATI LETTER SHA
-0AB7 GUJARATI LETTER SSA
-0AB8 GUJARATI LETTER SA
-0AB9 GUJARATI LETTER HA
-0ABC GUJARATI SIGN NUKTA
-0ABD GUJARATI SIGN AVAGRAHA
-0ABE GUJARATI VOWEL SIGN AA
-0ABF GUJARATI VOWEL SIGN I
-0AC0 GUJARATI VOWEL SIGN II
-0AC1 GUJARATI VOWEL SIGN U
-0AC2 GUJARATI VOWEL SIGN UU
-0AC3 GUJARATI VOWEL SIGN VOCALIC R
-0AC4 GUJARATI VOWEL SIGN VOCALIC RR
-0AC5 GUJARATI VOWEL SIGN CANDRA E
-0AC7 GUJARATI VOWEL SIGN E
-0AC8 GUJARATI VOWEL SIGN AI
-0AC9 GUJARATI VOWEL SIGN CANDRA O
-0ACB GUJARATI VOWEL SIGN O
-0ACC GUJARATI VOWEL SIGN AU
-0ACD GUJARATI SIGN VIRAMA
-0AD0 GUJARATI OM
-0AE0 GUJARATI LETTER VOCALIC RR
-0AE6 GUJARATI DIGIT ZERO
-0AE7 GUJARATI DIGIT ONE
-0AE8 GUJARATI DIGIT TWO
-0AE9 GUJARATI DIGIT THREE
-0AEA GUJARATI DIGIT FOUR
-0AEB GUJARATI DIGIT FIVE
-0AEC GUJARATI DIGIT SIX
-0AED GUJARATI DIGIT SEVEN
-0AEE GUJARATI DIGIT EIGHT
-0AEF GUJARATI DIGIT NINE
-0B01 ORIYA SIGN CANDRABINDU
-0B02 ORIYA SIGN ANUSVARA
-0B03 ORIYA SIGN VISARGA
-0B05 ORIYA LETTER A
-0B06 ORIYA LETTER AA
-0B07 ORIYA LETTER I
-0B08 ORIYA LETTER II
-0B09 ORIYA LETTER U
-0B0A ORIYA LETTER UU
-0B0B ORIYA LETTER VOCALIC R
-0B0C ORIYA LETTER VOCALIC L
-0B0F ORIYA LETTER E
-0B10 ORIYA LETTER AI
-0B13 ORIYA LETTER O
-0B14 ORIYA LETTER AU
-0B15 ORIYA LETTER KA
-0B16 ORIYA LETTER KHA
-0B17 ORIYA LETTER GA
-0B18 ORIYA LETTER GHA
-0B19 ORIYA LETTER NGA
-0B1A ORIYA LETTER CA
-0B1B ORIYA LETTER CHA
-0B1C ORIYA LETTER JA
-0B1D ORIYA LETTER JHA
-0B1E ORIYA LETTER NYA
-0B1F ORIYA LETTER TTA
-0B20 ORIYA LETTER TTHA
-0B21 ORIYA LETTER DDA
-0B22 ORIYA LETTER DDHA
-0B23 ORIYA LETTER NNA
-0B24 ORIYA LETTER TA
-0B25 ORIYA LETTER THA
-0B26 ORIYA LETTER DA
-0B27 ORIYA LETTER DHA
-0B28 ORIYA LETTER NA
-0B2A ORIYA LETTER PA
-0B2B ORIYA LETTER PHA
-0B2C ORIYA LETTER BA
-0B2D ORIYA LETTER BHA
-0B2E ORIYA LETTER MA
-0B2F ORIYA LETTER YA
-0B30 ORIYA LETTER RA
-0B32 ORIYA LETTER LA
-0B33 ORIYA LETTER LLA
-0B36 ORIYA LETTER SHA
-0B37 ORIYA LETTER SSA
-0B38 ORIYA LETTER SA
-0B39 ORIYA LETTER HA
-0B3C ORIYA SIGN NUKTA
-0B3D ORIYA SIGN AVAGRAHA
-0B3E ORIYA VOWEL SIGN AA
-0B3F ORIYA VOWEL SIGN I
-0B40 ORIYA VOWEL SIGN II
-0B41 ORIYA VOWEL SIGN U
-0B42 ORIYA VOWEL SIGN UU
-0B43 ORIYA VOWEL SIGN VOCALIC R
-0B47 ORIYA VOWEL SIGN E
-0B48 ORIYA VOWEL SIGN AI
-0B4B ORIYA VOWEL SIGN O
-0B4C ORIYA VOWEL SIGN AU
-0B4D ORIYA SIGN VIRAMA
-0B56 ORIYA AI LENGTH MARK
-0B57 ORIYA AU LENGTH MARK
-0B5C ORIYA LETTER RRA
-0B5D ORIYA LETTER RHA
-0B5F ORIYA LETTER YYA
-0B60 ORIYA LETTER VOCALIC RR
-0B61 ORIYA LETTER VOCALIC LL
-0B66 ORIYA DIGIT ZERO
-0B67 ORIYA DIGIT ONE
-0B68 ORIYA DIGIT TWO
-0B69 ORIYA DIGIT THREE
-0B6A ORIYA DIGIT FOUR
-0B6B ORIYA DIGIT FIVE
-0B6C ORIYA DIGIT SIX
-0B6D ORIYA DIGIT SEVEN
-0B6E ORIYA DIGIT EIGHT
-0B6F ORIYA DIGIT NINE
-0B70 ORIYA ISSHAR
-0B82 TAMIL SIGN ANUSVARA
-0B83 TAMIL SIGN VISARGA
-0B85 TAMIL LETTER A
-0B86 TAMIL LETTER AA
-0B87 TAMIL LETTER I
-0B88 TAMIL LETTER II
-0B89 TAMIL LETTER U
-0B8A TAMIL LETTER UU
-0B8E TAMIL LETTER E
-0B8F TAMIL LETTER EE
-0B90 TAMIL LETTER AI
-0B92 TAMIL LETTER O
-0B93 TAMIL LETTER OO
-0B94 TAMIL LETTER AU
-0B95 TAMIL LETTER KA
-0B99 TAMIL LETTER NGA
-0B9A TAMIL LETTER CA
-0B9C TAMIL LETTER JA
-0B9E TAMIL LETTER NYA
-0B9F TAMIL LETTER TTA
-0BA3 TAMIL LETTER NNA
-0BA4 TAMIL LETTER TA
-0BA8 TAMIL LETTER NA
-0BA9 TAMIL LETTER NNNA
-0BAA TAMIL LETTER PA
-0BAE TAMIL LETTER MA
-0BAF TAMIL LETTER YA
-0BB0 TAMIL LETTER RA
-0BB1 TAMIL LETTER RRA
-0BB2 TAMIL LETTER LA
-0BB3 TAMIL LETTER LLA
-0BB4 TAMIL LETTER LLLA
-0BB5 TAMIL LETTER VA
-0BB7 TAMIL LETTER SSA
-0BB8 TAMIL LETTER SA
-0BB9 TAMIL LETTER HA
-0BBE TAMIL VOWEL SIGN AA
-0BBF TAMIL VOWEL SIGN I
-0BC0 TAMIL VOWEL SIGN II
-0BC1 TAMIL VOWEL SIGN U
-0BC2 TAMIL VOWEL SIGN UU
-0BC6 TAMIL VOWEL SIGN E
-0BC7 TAMIL VOWEL SIGN EE
-0BC8 TAMIL VOWEL SIGN AI
-0BCA TAMIL VOWEL SIGN O
-0BCB TAMIL VOWEL SIGN OO
-0BCC TAMIL VOWEL SIGN AU
-0BCD TAMIL SIGN VIRAMA
-0BD7 TAMIL AU LENGTH MARK
-0BE7 TAMIL DIGIT ONE
-0BE8 TAMIL DIGIT TWO
-0BE9 TAMIL DIGIT THREE
-0BEA TAMIL DIGIT FOUR
-0BEB TAMIL DIGIT FIVE
-0BEC TAMIL DIGIT SIX
-0BED TAMIL DIGIT SEVEN
-0BEE TAMIL DIGIT EIGHT
-0BEF TAMIL DIGIT NINE
-0BF0 TAMIL NUMBER TEN
-0BF1 TAMIL NUMBER ONE HUNDRED
-0BF2 TAMIL NUMBER ONE THOUSAND
-0C01 TELUGU SIGN CANDRABINDU
-0C02 TELUGU SIGN ANUSVARA
-0C03 TELUGU SIGN VISARGA
-0C05 TELUGU LETTER A
-0C06 TELUGU LETTER AA
-0C07 TELUGU LETTER I
-0C08 TELUGU LETTER II
-0C09 TELUGU LETTER U
-0C0A TELUGU LETTER UU
-0C0B TELUGU LETTER VOCALIC R
-0C0C TELUGU LETTER VOCALIC L
-0C0E TELUGU LETTER E
-0C0F TELUGU LETTER EE
-0C10 TELUGU LETTER AI
-0C12 TELUGU LETTER O
-0C13 TELUGU LETTER OO
-0C14 TELUGU LETTER AU
-0C15 TELUGU LETTER KA
-0C16 TELUGU LETTER KHA
-0C17 TELUGU LETTER GA
-0C18 TELUGU LETTER GHA
-0C19 TELUGU LETTER NGA
-0C1A TELUGU LETTER CA
-0C1B TELUGU LETTER CHA
-0C1C TELUGU LETTER JA
-0C1D TELUGU LETTER JHA
-0C1E TELUGU LETTER NYA
-0C1F TELUGU LETTER TTA
-0C20 TELUGU LETTER TTHA
-0C21 TELUGU LETTER DDA
-0C22 TELUGU LETTER DDHA
-0C23 TELUGU LETTER NNA
-0C24 TELUGU LETTER TA
-0C25 TELUGU LETTER THA
-0C26 TELUGU LETTER DA
-0C27 TELUGU LETTER DHA
-0C28 TELUGU LETTER NA
-0C2A TELUGU LETTER PA
-0C2B TELUGU LETTER PHA
-0C2C TELUGU LETTER BA
-0C2D TELUGU LETTER BHA
-0C2E TELUGU LETTER MA
-0C2F TELUGU LETTER YA
-0C30 TELUGU LETTER RA
-0C31 TELUGU LETTER RRA
-0C32 TELUGU LETTER LA
-0C33 TELUGU LETTER LLA
-0C35 TELUGU LETTER VA
-0C36 TELUGU LETTER SHA
-0C37 TELUGU LETTER SSA
-0C38 TELUGU LETTER SA
-0C39 TELUGU LETTER HA
-0C3E TELUGU VOWEL SIGN AA
-0C3F TELUGU VOWEL SIGN I
-0C40 TELUGU VOWEL SIGN II
-0C41 TELUGU VOWEL SIGN U
-0C42 TELUGU VOWEL SIGN UU
-0C43 TELUGU VOWEL SIGN VOCALIC R
-0C44 TELUGU VOWEL SIGN VOCALIC RR
-0C46 TELUGU VOWEL SIGN E
-0C47 TELUGU VOWEL SIGN EE
-0C48 TELUGU VOWEL SIGN AI
-0C4A TELUGU VOWEL SIGN O
-0C4B TELUGU VOWEL SIGN OO
-0C4C TELUGU VOWEL SIGN AU
-0C4D TELUGU SIGN VIRAMA
-0C55 TELUGU LENGTH MARK
-0C56 TELUGU AI LENGTH MARK
-0C60 TELUGU LETTER VOCALIC RR
-0C61 TELUGU LETTER VOCALIC LL
-0C66 TELUGU DIGIT ZERO
-0C67 TELUGU DIGIT ONE
-0C68 TELUGU DIGIT TWO
-0C69 TELUGU DIGIT THREE
-0C6A TELUGU DIGIT FOUR
-0C6B TELUGU DIGIT FIVE
-0C6C TELUGU DIGIT SIX
-0C6D TELUGU DIGIT SEVEN
-0C6E TELUGU DIGIT EIGHT
-0C6F TELUGU DIGIT NINE
-0C82 KANNADA SIGN ANUSVARA
-0C83 KANNADA SIGN VISARGA
-0C85 KANNADA LETTER A
-0C86 KANNADA LETTER AA
-0C87 KANNADA LETTER I
-0C88 KANNADA LETTER II
-0C89 KANNADA LETTER U
-0C8A KANNADA LETTER UU
-0C8B KANNADA LETTER VOCALIC R
-0C8C KANNADA LETTER VOCALIC L
-0C8E KANNADA LETTER E
-0C8F KANNADA LETTER EE
-0C90 KANNADA LETTER AI
-0C92 KANNADA LETTER O
-0C93 KANNADA LETTER OO
-0C94 KANNADA LETTER AU
-0C95 KANNADA LETTER KA
-0C96 KANNADA LETTER KHA
-0C97 KANNADA LETTER GA
-0C98 KANNADA LETTER GHA
-0C99 KANNADA LETTER NGA
-0C9A KANNADA LETTER CA
-0C9B KANNADA LETTER CHA
-0C9C KANNADA LETTER JA
-0C9D KANNADA LETTER JHA
-0C9E KANNADA LETTER NYA
-0C9F KANNADA LETTER TTA
-0CA0 KANNADA LETTER TTHA
-0CA1 KANNADA LETTER DDA
-0CA2 KANNADA LETTER DDHA
-0CA3 KANNADA LETTER NNA
-0CA4 KANNADA LETTER TA
-0CA5 KANNADA LETTER THA
-0CA6 KANNADA LETTER DA
-0CA7 KANNADA LETTER DHA
-0CA8 KANNADA LETTER NA
-0CAA KANNADA LETTER PA
-0CAB KANNADA LETTER PHA
-0CAC KANNADA LETTER BA
-0CAD KANNADA LETTER BHA
-0CAE KANNADA LETTER MA
-0CAF KANNADA LETTER YA
-0CB0 KANNADA LETTER RA
-0CB1 KANNADA LETTER RRA
-0CB2 KANNADA LETTER LA
-0CB3 KANNADA LETTER LLA
-0CB5 KANNADA LETTER VA
-0CB6 KANNADA LETTER SHA
-0CB7 KANNADA LETTER SSA
-0CB8 KANNADA LETTER SA
-0CB9 KANNADA LETTER HA
-0CBE KANNADA VOWEL SIGN AA
-0CBF KANNADA VOWEL SIGN I
-0CC0 KANNADA VOWEL SIGN II
-0CC1 KANNADA VOWEL SIGN U
-0CC2 KANNADA VOWEL SIGN UU
-0CC3 KANNADA VOWEL SIGN VOCALIC R
-0CC4 KANNADA VOWEL SIGN VOCALIC RR
-0CC6 KANNADA VOWEL SIGN E
-0CC7 KANNADA VOWEL SIGN EE
-0CC8 KANNADA VOWEL SIGN AI
-0CCA KANNADA VOWEL SIGN O
-0CCB KANNADA VOWEL SIGN OO
-0CCC KANNADA VOWEL SIGN AU
-0CCD KANNADA SIGN VIRAMA
-0CD5 KANNADA LENGTH MARK
-0CD6 KANNADA AI LENGTH MARK
-0CDE KANNADA LETTER FA
-0CE0 KANNADA LETTER VOCALIC RR
-0CE1 KANNADA LETTER VOCALIC LL
-0CE6 KANNADA DIGIT ZERO
-0CE7 KANNADA DIGIT ONE
-0CE8 KANNADA DIGIT TWO
-0CE9 KANNADA DIGIT THREE
-0CEA KANNADA DIGIT FOUR
-0CEB KANNADA DIGIT FIVE
-0CEC KANNADA DIGIT SIX
-0CED KANNADA DIGIT SEVEN
-0CEE KANNADA DIGIT EIGHT
-0CEF KANNADA DIGIT NINE
-0D02 MALAYALAM SIGN ANUSVARA
-0D03 MALAYALAM SIGN VISARGA
-0D05 MALAYALAM LETTER A
-0D06 MALAYALAM LETTER AA
-0D07 MALAYALAM LETTER I
-0D08 MALAYALAM LETTER II
-0D09 MALAYALAM LETTER U
-0D0A MALAYALAM LETTER UU
-0D0B MALAYALAM LETTER VOCALIC R
-0D0C MALAYALAM LETTER VOCALIC L
-0D0E MALAYALAM LETTER E
-0D0F MALAYALAM LETTER EE
-0D10 MALAYALAM LETTER AI
-0D12 MALAYALAM LETTER O
-0D13 MALAYALAM LETTER OO
-0D14 MALAYALAM LETTER AU
-0D15 MALAYALAM LETTER KA
-0D16 MALAYALAM LETTER KHA
-0D17 MALAYALAM LETTER GA
-0D18 MALAYALAM LETTER GHA
-0D19 MALAYALAM LETTER NGA
-0D1A MALAYALAM LETTER CA
-0D1B MALAYALAM LETTER CHA
-0D1C MALAYALAM LETTER JA
-0D1D MALAYALAM LETTER JHA
-0D1E MALAYALAM LETTER NYA
-0D1F MALAYALAM LETTER TTA
-0D20 MALAYALAM LETTER TTHA
-0D21 MALAYALAM LETTER DDA
-0D22 MALAYALAM LETTER DDHA
-0D23 MALAYALAM LETTER NNA
-0D24 MALAYALAM LETTER TA
-0D25 MALAYALAM LETTER THA
-0D26 MALAYALAM LETTER DA
-0D27 MALAYALAM LETTER DHA
-0D28 MALAYALAM LETTER NA
-0D2A MALAYALAM LETTER PA
-0D2B MALAYALAM LETTER PHA
-0D2C MALAYALAM LETTER BA
-0D2D MALAYALAM LETTER BHA
-0D2E MALAYALAM LETTER MA
-0D2F MALAYALAM LETTER YA
-0D30 MALAYALAM LETTER RA
-0D31 MALAYALAM LETTER RRA
-0D32 MALAYALAM LETTER LA
-0D33 MALAYALAM LETTER LLA
-0D34 MALAYALAM LETTER LLLA
-0D35 MALAYALAM LETTER VA
-0D36 MALAYALAM LETTER SHA
-0D37 MALAYALAM LETTER SSA
-0D38 MALAYALAM LETTER SA
-0D39 MALAYALAM LETTER HA
-0D3E MALAYALAM VOWEL SIGN AA
-0D3F MALAYALAM VOWEL SIGN I
-0D40 MALAYALAM VOWEL SIGN II
-0D41 MALAYALAM VOWEL SIGN U
-0D42 MALAYALAM VOWEL SIGN UU
-0D43 MALAYALAM VOWEL SIGN VOCALIC R
-0D46 MALAYALAM VOWEL SIGN E
-0D47 MALAYALAM VOWEL SIGN EE
-0D48 MALAYALAM VOWEL SIGN AI
-0D4A MALAYALAM VOWEL SIGN O
-0D4B MALAYALAM VOWEL SIGN OO
-0D4C MALAYALAM VOWEL SIGN AU
-0D4D MALAYALAM SIGN VIRAMA
-0D57 MALAYALAM AU LENGTH MARK
-0D60 MALAYALAM LETTER VOCALIC RR
-0D61 MALAYALAM LETTER VOCALIC LL
-0D66 MALAYALAM DIGIT ZERO
-0D67 MALAYALAM DIGIT ONE
-0D68 MALAYALAM DIGIT TWO
-0D69 MALAYALAM DIGIT THREE
-0D6A MALAYALAM DIGIT FOUR
-0D6B MALAYALAM DIGIT FIVE
-0D6C MALAYALAM DIGIT SIX
-0D6D MALAYALAM DIGIT SEVEN
-0D6E MALAYALAM DIGIT EIGHT
-0D6F MALAYALAM DIGIT NINE
-0D82 SINHALA SIGN ANUSVARAYA
-0D83 SINHALA SIGN VISARGAYA
-0D85 SINHALA LETTER AYANNA
-0D86 SINHALA LETTER AAYANNA
-0D87 SINHALA LETTER AEYANNA
-0D88 SINHALA LETTER AEEYANNA
-0D89 SINHALA LETTER IYANNA
-0D8A SINHALA LETTER IIYANNA
-0D8B SINHALA LETTER UYANNA
-0D8C SINHALA LETTER UUYANNA
-0D8D SINHALA LETTER IRUYANNA
-0D8E SINHALA LETTER IRUUYANNA
-0D8F SINHALA LETTER ILUYANNA
-0D90 SINHALA LETTER ILUUYANNA
-0D91 SINHALA LETTER EYANNA
-0D92 SINHALA LETTER EEYANNA
-0D93 SINHALA LETTER AIYANNA
-0D94 SINHALA LETTER OYANNA
-0D95 SINHALA LETTER OOYANNA
-0D96 SINHALA LETTER AUYANNA
-0D9A SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F SINHALA LETTER SANYAKA GAYANNA
-0DA0 SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1 SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2 SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3 SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4 SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5 SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6 SINHALA LETTER SANYAKA JAYANNA
-0DA7 SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8 SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9 SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB SINHALA LETTER MUURDHAJA NAYANNA
-0DAC SINHALA LETTER SANYAKA DDAYANNA
-0DAD SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0 SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1 SINHALA LETTER DANTAJA NAYANNA
-0DB3 SINHALA LETTER SANYAKA DAYANNA
-0DB4 SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5 SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6 SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7 SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8 SINHALA LETTER MAYANNA
-0DB9 SINHALA LETTER AMBA BAYANNA
-0DBA SINHALA LETTER YAYANNA
-0DBB SINHALA LETTER RAYANNA
-0DBD SINHALA LETTER DANTAJA LAYANNA
-0DC0 SINHALA LETTER VAYANNA
-0DC1 SINHALA LETTER TAALUJA SAYANNA
-0DC2 SINHALA LETTER MUURDHAJA SAYANNA
-0DC3 SINHALA LETTER DANTAJA SAYANNA
-0DC4 SINHALA LETTER HAYANNA
-0DC5 SINHALA LETTER MUURDHAJA LAYANNA
-0DC6 SINHALA LETTER FAYANNA
-0DCA SINHALA SIGN AL-LAKUNA
-0DCF SINHALA VOWEL SIGN AELA-PILLA
-0DD0 SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1 SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2 SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3 SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4 SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8 SINHALA VOWEL SIGN GAETTA-PILLA
-0DD9 SINHALA VOWEL SIGN KOMBUVA
-0DDA SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB SINHALA VOWEL SIGN KOMBU DEKA
-0DDC SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DDF SINHALA VOWEL SIGN GAYANUKITTA
-0DF2 SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DF3 SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4 SINHALA PUNCTUATION KUNDDALIYA
-0E01 THAI CHARACTER KO KAI
-0E02 THAI CHARACTER KHO KHAI
-0E03 THAI CHARACTER KHO KHUAT
-0E04 THAI CHARACTER KHO KHWAI
-0E05 THAI CHARACTER KHO KHON
-0E06 THAI CHARACTER KHO RAKHANG
-0E07 THAI CHARACTER NGO NGU
-0E08 THAI CHARACTER CHO CHAN
-0E09 THAI CHARACTER CHO CHING
-0E0A THAI CHARACTER CHO CHANG
-0E0B THAI CHARACTER SO SO
-0E0C THAI CHARACTER CHO CHOE
-0E0D THAI CHARACTER YO YING
-0E0E THAI CHARACTER DO CHADA
-0E0F THAI CHARACTER TO PATAK
-0E10 THAI CHARACTER THO THAN
-0E11 THAI CHARACTER THO NANGMONTHO
-0E12 THAI CHARACTER THO PHUTHAO
-0E13 THAI CHARACTER NO NEN
-0E14 THAI CHARACTER DO DEK
-0E15 THAI CHARACTER TO TAO
-0E16 THAI CHARACTER THO THUNG
-0E17 THAI CHARACTER THO THAHAN
-0E18 THAI CHARACTER THO THONG
-0E19 THAI CHARACTER NO NU
-0E1A THAI CHARACTER BO BAIMAI
-0E1B THAI CHARACTER PO PLA
-0E1C THAI CHARACTER PHO PHUNG
-0E1D THAI CHARACTER FO FA
-0E1E THAI CHARACTER PHO PHAN
-0E1F THAI CHARACTER FO FAN
-0E20 THAI CHARACTER PHO SAMPHAO
-0E21 THAI CHARACTER MO MA
-0E22 THAI CHARACTER YO YAK
-0E23 THAI CHARACTER RO RUA
-0E24 THAI CHARACTER RU
-0E25 THAI CHARACTER LO LING
-0E26 THAI CHARACTER LU
-0E27 THAI CHARACTER WO WAEN
-0E28 THAI CHARACTER SO SALA
-0E29 THAI CHARACTER SO RUSI
-0E2A THAI CHARACTER SO SUA
-0E2B THAI CHARACTER HO HIP
-0E2C THAI CHARACTER LO CHULA
-0E2D THAI CHARACTER O ANG
-0E2E THAI CHARACTER HO NOKHUK
-0E2F THAI CHARACTER PAIYANNOI
-0E30 THAI CHARACTER SARA A
-0E31 THAI CHARACTER MAI HAN-AKAT
-0E32 THAI CHARACTER SARA AA
-0E33 THAI CHARACTER SARA AM
-0E34 THAI CHARACTER SARA I
-0E35 THAI CHARACTER SARA II
-0E36 THAI CHARACTER SARA UE
-0E37 THAI CHARACTER SARA UEE
-0E38 THAI CHARACTER SARA U
-0E39 THAI CHARACTER SARA UU
-0E3A THAI CHARACTER PHINTHU
-0E3F THAI CURRENCY SYMBOL BAHT
-0E40 THAI CHARACTER SARA E
-0E41 THAI CHARACTER SARA AE
-0E42 THAI CHARACTER SARA O
-0E43 THAI CHARACTER SARA AI MAIMUAN
-0E44 THAI CHARACTER SARA AI MAIMALAI
-0E45 THAI CHARACTER LAKKHANGYAO
-0E46 THAI CHARACTER MAIYAMOK
-0E47 THAI CHARACTER MAITAIKHU
-0E48 THAI CHARACTER MAI EK
-0E49 THAI CHARACTER MAI THO
-0E4A THAI CHARACTER MAI TRI
-0E4B THAI CHARACTER MAI CHATTAWA
-0E4C THAI CHARACTER THANTHAKHAT
-0E4D THAI CHARACTER NIKHAHIT
-0E4E THAI CHARACTER YAMAKKAN
-0E4F THAI CHARACTER FONGMAN
-0E50 THAI DIGIT ZERO
-0E51 THAI DIGIT ONE
-0E52 THAI DIGIT TWO
-0E53 THAI DIGIT THREE
-0E54 THAI DIGIT FOUR
-0E55 THAI DIGIT FIVE
-0E56 THAI DIGIT SIX
-0E57 THAI DIGIT SEVEN
-0E58 THAI DIGIT EIGHT
-0E59 THAI DIGIT NINE
-0E5A THAI CHARACTER ANGKHANKHU
-0E5B THAI CHARACTER KHOMUT
-0E81 LAO LETTER KO
-0E82 LAO LETTER KHO SUNG
-0E84 LAO LETTER KHO TAM
-0E87 LAO LETTER NGO
-0E88 LAO LETTER CO
-0E8A LAO LETTER SO TAM
-0E8D LAO LETTER NYO
-0E94 LAO LETTER DO
-0E95 LAO LETTER TO
-0E96 LAO LETTER THO SUNG
-0E97 LAO LETTER THO TAM
-0E99 LAO LETTER NO
-0E9A LAO LETTER BO
-0E9B LAO LETTER PO
-0E9C LAO LETTER PHO SUNG
-0E9D LAO LETTER FO TAM
-0E9E LAO LETTER PHO TAM
-0E9F LAO LETTER FO SUNG
-0EA1 LAO LETTER MO
-0EA2 LAO LETTER YO
-0EA3 LAO LETTER LO LING
-0EA5 LAO LETTER LO LOOT
-0EA7 LAO LETTER WO
-0EAA LAO LETTER SO SUNG
-0EAB LAO LETTER HO SUNG
-0EAD LAO LETTER O
-0EAE LAO LETTER HO TAM
-0EAF LAO ELLIPSIS
-0EB0 LAO VOWEL SIGN A
-0EB1 LAO VOWEL SIGN MAI KAN
-0EB2 LAO VOWEL SIGN AA
-0EB3 LAO VOWEL SIGN AM
-0EB4 LAO VOWEL SIGN I
-0EB5 LAO VOWEL SIGN II
-0EB6 LAO VOWEL SIGN Y
-0EB7 LAO VOWEL SIGN YY
-0EB8 LAO VOWEL SIGN U
-0EB9 LAO VOWEL SIGN UU
-0EBB LAO VOWEL SIGN MAI KON
-0EBC LAO SEMIVOWEL SIGN LO
-0EBD LAO SEMIVOWEL SIGN NYO
-0EC0 LAO VOWEL SIGN E
-0EC1 LAO VOWEL SIGN EI
-0EC2 LAO VOWEL SIGN O
-0EC3 LAO VOWEL SIGN AY
-0EC4 LAO VOWEL SIGN AI
-0EC6 LAO KO LA
-0EC8 LAO TONE MAI EK
-0EC9 LAO TONE MAI THO
-0ECA LAO TONE MAI TI
-0ECB LAO TONE MAI CATAWA
-0ECC LAO CANCELLATION MARK
-0ECD LAO NIGGAHITA
-0ED0 LAO DIGIT ZERO
-0ED1 LAO DIGIT ONE
-0ED2 LAO DIGIT TWO
-0ED3 LAO DIGIT THREE
-0ED4 LAO DIGIT FOUR
-0ED5 LAO DIGIT FIVE
-0ED6 LAO DIGIT SIX
-0ED7 LAO DIGIT SEVEN
-0ED8 LAO DIGIT EIGHT
-0ED9 LAO DIGIT NINE
-0EDC LAO HO NO
-0EDD LAO HO MO
-0F00 TIBETAN SYLLABLE OM
-0F01 TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02 TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03 TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04 TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05 TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06 TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07 TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08 TIBETAN MARK SBRUL SHAD
-0F09 TIBETAN MARK BSKUR YIG MGO
-0F0A TIBETAN MARK BKA- SHOG YIG MGO
-0F0B TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D TIBETAN MARK SHAD
-0F0E TIBETAN MARK NYIS SHAD
-0F0F TIBETAN MARK TSHEG SHAD
-0F10 TIBETAN MARK NYIS TSHEG SHAD
-0F11 TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12 TIBETAN MARK RGYA GRAM SHAD
-0F13 TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14 TIBETAN MARK GTER TSHEG
-0F15 TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16 TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17 TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18 TIBETAN ASTROLOGICAL SIGN -KHYUD PA
-0F19 TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A TIBETAN SIGN RDEL DKAR GCIG
-0F1B TIBETAN SIGN RDEL DKAR GNYIS
-0F1C TIBETAN SIGN RDEL DKAR GSUM
-0F1D TIBETAN SIGN RDEL NAG GCIG
-0F1E TIBETAN SIGN RDEL NAG GNYIS
-0F1F TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20 TIBETAN DIGIT ZERO
-0F21 TIBETAN DIGIT ONE
-0F22 TIBETAN DIGIT TWO
-0F23 TIBETAN DIGIT THREE
-0F24 TIBETAN DIGIT FOUR
-0F25 TIBETAN DIGIT FIVE
-0F26 TIBETAN DIGIT SIX
-0F27 TIBETAN DIGIT SEVEN
-0F28 TIBETAN DIGIT EIGHT
-0F29 TIBETAN DIGIT NINE
-0F2A TIBETAN DIGIT HALF ONE
-0F2B TIBETAN DIGIT HALF TWO
-0F2C TIBETAN DIGIT HALF THREE
-0F2D TIBETAN DIGIT HALF FOUR
-0F2E TIBETAN DIGIT HALF FIVE
-0F2F TIBETAN DIGIT HALF SIX
-0F30 TIBETAN DIGIT HALF SEVEN
-0F31 TIBETAN DIGIT HALF EIGHT
-0F32 TIBETAN DIGIT HALF NINE
-0F33 TIBETAN DIGIT HALF ZERO
-0F34 TIBETAN MARK BSDUS RTAGS
-0F35 TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36 TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37 TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38 TIBETAN MARK CHE MGO
-0F39 TIBETAN MARK TSA -PHRU
-0F3A TIBETAN MARK GUG RTAGS GYON
-0F3B TIBETAN MARK GUG RTAGS GYAS
-0F3C TIBETAN MARK ANG KHANG GYON
-0F3D TIBETAN MARK ANG KHANG GYAS
-0F3E TIBETAN SIGN YAR TSHES
-0F3F TIBETAN SIGN MAR TSHES
-0F40 TIBETAN LETTER KA
-0F41 TIBETAN LETTER KHA
-0F42 TIBETAN LETTER GA
-0F43 TIBETAN LETTER GHA
-0F44 TIBETAN LETTER NGA
-0F45 TIBETAN LETTER CA
-0F46 TIBETAN LETTER CHA
-0F47 TIBETAN LETTER JA
-0F49 TIBETAN LETTER NYA
-0F4A TIBETAN LETTER TTA
-0F4B TIBETAN LETTER TTHA
-0F4C TIBETAN LETTER DDA
-0F4D TIBETAN LETTER DDHA
-0F4E TIBETAN LETTER NNA
-0F4F TIBETAN LETTER TA
-0F50 TIBETAN LETTER THA
-0F51 TIBETAN LETTER DA
-0F52 TIBETAN LETTER DHA
-0F53 TIBETAN LETTER NA
-0F54 TIBETAN LETTER PA
-0F55 TIBETAN LETTER PHA
-0F56 TIBETAN LETTER BA
-0F57 TIBETAN LETTER BHA
-0F58 TIBETAN LETTER MA
-0F59 TIBETAN LETTER TSA
-0F5A TIBETAN LETTER TSHA
-0F5B TIBETAN LETTER DZA
-0F5C TIBETAN LETTER DZHA
-0F5D TIBETAN LETTER WA
-0F5E TIBETAN LETTER ZHA
-0F5F TIBETAN LETTER ZA
-0F60 TIBETAN LETTER -A
-0F61 TIBETAN LETTER YA
-0F62 TIBETAN LETTER RA
-0F63 TIBETAN LETTER LA
-0F64 TIBETAN LETTER SHA
-0F65 TIBETAN LETTER SSA
-0F66 TIBETAN LETTER SA
-0F67 TIBETAN LETTER HA
-0F68 TIBETAN LETTER A
-0F69 TIBETAN LETTER KSSA
-0F6A TIBETAN LETTER FIXED-FORM RA
-0F71 TIBETAN VOWEL SIGN AA
-0F72 TIBETAN VOWEL SIGN I
-0F73 TIBETAN VOWEL SIGN II
-0F74 TIBETAN VOWEL SIGN U
-0F75 TIBETAN VOWEL SIGN UU
-0F76 TIBETAN VOWEL SIGN VOCALIC R
-0F77 TIBETAN VOWEL SIGN VOCALIC RR
-0F78 TIBETAN VOWEL SIGN VOCALIC L
-0F79 TIBETAN VOWEL SIGN VOCALIC LL
-0F7A TIBETAN VOWEL SIGN E
-0F7B TIBETAN VOWEL SIGN EE
-0F7C TIBETAN VOWEL SIGN O
-0F7D TIBETAN VOWEL SIGN OO
-0F7E TIBETAN SIGN RJES SU NGA RO
-0F7F TIBETAN SIGN RNAM BCAD
-0F80 TIBETAN VOWEL SIGN REVERSED I
-0F81 TIBETAN VOWEL SIGN REVERSED II
-0F82 TIBETAN SIGN NYI ZLA NAA DA
-0F83 TIBETAN SIGN SNA LDAN
-0F84 TIBETAN MARK HALANTA
-0F85 TIBETAN MARK PALUTA
-0F86 TIBETAN SIGN LCI RTAGS
-0F87 TIBETAN SIGN YANG RTAGS
-0F88 TIBETAN SIGN LCE TSA CAN
-0F89 TIBETAN SIGN MCHU CAN
-0F8A TIBETAN SIGN GRU CAN RGYINGS
-0F8B TIBETAN SIGN GRU MED RGYINGS
-0F90 TIBETAN SUBJOINED LETTER KA
-0F91 TIBETAN SUBJOINED LETTER KHA
-0F92 TIBETAN SUBJOINED LETTER GA
-0F93 TIBETAN SUBJOINED LETTER GHA
-0F94 TIBETAN SUBJOINED LETTER NGA
-0F95 TIBETAN SUBJOINED LETTER CA
-0F96 TIBETAN SUBJOINED LETTER CHA
-0F97 TIBETAN SUBJOINED LETTER JA
-0F99 TIBETAN SUBJOINED LETTER NYA
-0F9A TIBETAN SUBJOINED LETTER TTA
-0F9B TIBETAN SUBJOINED LETTER TTHA
-0F9C TIBETAN SUBJOINED LETTER DDA
-0F9D TIBETAN SUBJOINED LETTER DDHA
-0F9E TIBETAN SUBJOINED LETTER NNA
-0F9F TIBETAN SUBJOINED LETTER TA
-0FA0 TIBETAN SUBJOINED LETTER THA
-0FA1 TIBETAN SUBJOINED LETTER DA
-0FA2 TIBETAN SUBJOINED LETTER DHA
-0FA3 TIBETAN SUBJOINED LETTER NA
-0FA4 TIBETAN SUBJOINED LETTER PA
-0FA5 TIBETAN SUBJOINED LETTER PHA
-0FA6 TIBETAN SUBJOINED LETTER BA
-0FA7 TIBETAN SUBJOINED LETTER BHA
-0FA8 TIBETAN SUBJOINED LETTER MA
-0FA9 TIBETAN SUBJOINED LETTER TSA
-0FAA TIBETAN SUBJOINED LETTER TSHA
-0FAB TIBETAN SUBJOINED LETTER DZA
-0FAC TIBETAN SUBJOINED LETTER DZHA
-0FAD TIBETAN SUBJOINED LETTER WA
-0FAE TIBETAN SUBJOINED LETTER ZHA
-0FAF TIBETAN SUBJOINED LETTER ZA
-0FB0 TIBETAN SUBJOINED LETTER -A
-0FB1 TIBETAN SUBJOINED LETTER YA
-0FB2 TIBETAN SUBJOINED LETTER RA
-0FB3 TIBETAN SUBJOINED LETTER LA
-0FB4 TIBETAN SUBJOINED LETTER SHA
-0FB5 TIBETAN SUBJOINED LETTER SSA
-0FB6 TIBETAN SUBJOINED LETTER SA
-0FB7 TIBETAN SUBJOINED LETTER HA
-0FB8 TIBETAN SUBJOINED LETTER A
-0FB9 TIBETAN SUBJOINED LETTER KSSA
-0FBA TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0FBB TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0FBC TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBE TIBETAN KU RU KHA
-0FBF TIBETAN KU RU KHA BZHI MIG CAN
-0FC0 TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1 TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2 TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3 TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4 TIBETAN SYMBOL DRIL BU
-0FC5 TIBETAN SYMBOL RDO RJE
-0FC6 TIBETAN SYMBOL PADMA GDAN
-0FC7 TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8 TIBETAN SYMBOL PHUR PA
-0FC9 TIBETAN SYMBOL NOR BU
-0FCA TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCF TIBETAN SIGN RDEL NAG GSUM
-1000 MYANMAR LETTER KA
-1001 MYANMAR LETTER KHA
-1002 MYANMAR LETTER GA
-1003 MYANMAR LETTER GHA
-1004 MYANMAR LETTER NGA
-1005 MYANMAR LETTER CA
-1006 MYANMAR LETTER CHA
-1007 MYANMAR LETTER JA
-1008 MYANMAR LETTER JHA
-1009 MYANMAR LETTER NYA
-100A MYANMAR LETTER NNYA
-100B MYANMAR LETTER TTA
-100C MYANMAR LETTER TTHA
-100D MYANMAR LETTER DDA
-100E MYANMAR LETTER DDHA
-100F MYANMAR LETTER NNA
-1010 MYANMAR LETTER TA
-1011 MYANMAR LETTER THA
-1012 MYANMAR LETTER DA
-1013 MYANMAR LETTER DHA
-1014 MYANMAR LETTER NA
-1015 MYANMAR LETTER PA
-1016 MYANMAR LETTER PHA
-1017 MYANMAR LETTER BA
-1018 MYANMAR LETTER BHA
-1019 MYANMAR LETTER MA
-101A MYANMAR LETTER YA
-101B MYANMAR LETTER RA
-101C MYANMAR LETTER LA
-101D MYANMAR LETTER WA
-101E MYANMAR LETTER SA
-101F MYANMAR LETTER HA
-1020 MYANMAR LETTER LLA
-1021 MYANMAR LETTER A
-1023 MYANMAR LETTER I
-1024 MYANMAR LETTER II
-1025 MYANMAR LETTER U
-1026 MYANMAR LETTER UU
-1027 MYANMAR LETTER E
-1029 MYANMAR LETTER O
-102A MYANMAR LETTER AU
-102C MYANMAR VOWEL SIGN AA
-102D MYANMAR VOWEL SIGN I
-102E MYANMAR VOWEL SIGN II
-102F MYANMAR VOWEL SIGN U
-1030 MYANMAR VOWEL SIGN UU
-1031 MYANMAR VOWEL SIGN E
-1032 MYANMAR VOWEL SIGN AI
-1036 MYANMAR SIGN ANUSVARA
-1037 MYANMAR SIGN DOT BELOW
-1038 MYANMAR SIGN VISARGA
-1039 MYANMAR SIGN VIRAMA
-1040 MYANMAR DIGIT ZERO
-1041 MYANMAR DIGIT ONE
-1042 MYANMAR DIGIT TWO
-1043 MYANMAR DIGIT THREE
-1044 MYANMAR DIGIT FOUR
-1045 MYANMAR DIGIT FIVE
-1046 MYANMAR DIGIT SIX
-1047 MYANMAR DIGIT SEVEN
-1048 MYANMAR DIGIT EIGHT
-1049 MYANMAR DIGIT NINE
-104A MYANMAR SIGN LITTLE SECTION
-104B MYANMAR SIGN SECTION
-104C MYANMAR SYMBOL LOCATIVE
-104D MYANMAR SYMBOL COMPLETED
-104E MYANMAR SYMBOL AFOREMENTIONED
-104F MYANMAR SYMBOL GENITIVE
-1050 MYANMAR LETTER SHA
-1051 MYANMAR LETTER SSA
-1052 MYANMAR LETTER VOCALIC R
-1053 MYANMAR LETTER VOCALIC RR
-1054 MYANMAR LETTER VOCALIC L
-1055 MYANMAR LETTER VOCALIC LL
-1056 MYANMAR VOWEL SIGN VOCALIC R
-1057 MYANMAR VOWEL SIGN VOCALIC RR
-1058 MYANMAR VOWEL SIGN VOCALIC L
-1059 MYANMAR VOWEL SIGN VOCALIC LL
-10A0 GEORGIAN CAPITAL LETTER AN
-10A1 GEORGIAN CAPITAL LETTER BAN
-10A2 GEORGIAN CAPITAL LETTER GAN
-10A3 GEORGIAN CAPITAL LETTER DON
-10A4 GEORGIAN CAPITAL LETTER EN
-10A5 GEORGIAN CAPITAL LETTER VIN
-10A6 GEORGIAN CAPITAL LETTER ZEN
-10A7 GEORGIAN CAPITAL LETTER TAN
-10A8 GEORGIAN CAPITAL LETTER IN
-10A9 GEORGIAN CAPITAL LETTER KAN
-10AA GEORGIAN CAPITAL LETTER LAS
-10AB GEORGIAN CAPITAL LETTER MAN
-10AC GEORGIAN CAPITAL LETTER NAR
-10AD GEORGIAN CAPITAL LETTER ON
-10AE GEORGIAN CAPITAL LETTER PAR
-10AF GEORGIAN CAPITAL LETTER ZHAR
-10B0 GEORGIAN CAPITAL LETTER RAE
-10B1 GEORGIAN CAPITAL LETTER SAN
-10B2 GEORGIAN CAPITAL LETTER TAR
-10B3 GEORGIAN CAPITAL LETTER UN
-10B4 GEORGIAN CAPITAL LETTER PHAR
-10B5 GEORGIAN CAPITAL LETTER KHAR
-10B6 GEORGIAN CAPITAL LETTER GHAN
-10B7 GEORGIAN CAPITAL LETTER QAR
-10B8 GEORGIAN CAPITAL LETTER SHIN
-10B9 GEORGIAN CAPITAL LETTER CHIN
-10BA GEORGIAN CAPITAL LETTER CAN
-10BB GEORGIAN CAPITAL LETTER JIL
-10BC GEORGIAN CAPITAL LETTER CIL
-10BD GEORGIAN CAPITAL LETTER CHAR
-10BE GEORGIAN CAPITAL LETTER XAN
-10BF GEORGIAN CAPITAL LETTER JHAN
-10C0 GEORGIAN CAPITAL LETTER HAE
-10C1 GEORGIAN CAPITAL LETTER HE
-10C2 GEORGIAN CAPITAL LETTER HIE
-10C3 GEORGIAN CAPITAL LETTER WE
-10C4 GEORGIAN CAPITAL LETTER HAR
-10C5 GEORGIAN CAPITAL LETTER HOE
-10D0 GEORGIAN LETTER AN
-10D1 GEORGIAN LETTER BAN
-10D2 GEORGIAN LETTER GAN
-10D3 GEORGIAN LETTER DON
-10D4 GEORGIAN LETTER EN
-10D5 GEORGIAN LETTER VIN
-10D6 GEORGIAN LETTER ZEN
-10D7 GEORGIAN LETTER TAN
-10D8 GEORGIAN LETTER IN
-10D9 GEORGIAN LETTER KAN
-10DA GEORGIAN LETTER LAS
-10DB GEORGIAN LETTER MAN
-10DC GEORGIAN LETTER NAR
-10DD GEORGIAN LETTER ON
-10DE GEORGIAN LETTER PAR
-10DF GEORGIAN LETTER ZHAR
-10E0 GEORGIAN LETTER RAE
-10E1 GEORGIAN LETTER SAN
-10E2 GEORGIAN LETTER TAR
-10E3 GEORGIAN LETTER UN
-10E4 GEORGIAN LETTER PHAR
-10E5 GEORGIAN LETTER KHAR
-10E6 GEORGIAN LETTER GHAN
-10E7 GEORGIAN LETTER QAR
-10E8 GEORGIAN LETTER SHIN
-10E9 GEORGIAN LETTER CHIN
-10EA GEORGIAN LETTER CAN
-10EB GEORGIAN LETTER JIL
-10EC GEORGIAN LETTER CIL
-10ED GEORGIAN LETTER CHAR
-10EE GEORGIAN LETTER XAN
-10EF GEORGIAN LETTER JHAN
-10F0 GEORGIAN LETTER HAE
-10F1 GEORGIAN LETTER HE
-10F2 GEORGIAN LETTER HIE
-10F3 GEORGIAN LETTER WE
-10F4 GEORGIAN LETTER HAR
-10F5 GEORGIAN LETTER HOE
-10F6 GEORGIAN LETTER FI
-10F7 GEORGIAN LETTER YN
-10F8 GEORGIAN LETTER ELIFI
-10FB GEORGIAN PARAGRAPH SEPARATOR
-1100 HANGUL CHOSEONG KIYEOK
-1101 HANGUL CHOSEONG SSANGKIYEOK
-1102 HANGUL CHOSEONG NIEUN
-1103 HANGUL CHOSEONG TIKEUT
-1104 HANGUL CHOSEONG SSANGTIKEUT
-1105 HANGUL CHOSEONG RIEUL
-1106 HANGUL CHOSEONG MIEUM
-1107 HANGUL CHOSEONG PIEUP
-1108 HANGUL CHOSEONG SSANGPIEUP
-1109 HANGUL CHOSEONG SIOS
-110A HANGUL CHOSEONG SSANGSIOS
-110B HANGUL CHOSEONG IEUNG
-110C HANGUL CHOSEONG CIEUC
-110D HANGUL CHOSEONG SSANGCIEUC
-110E HANGUL CHOSEONG CHIEUCH
-110F HANGUL CHOSEONG KHIEUKH
-1110 HANGUL CHOSEONG THIEUTH
-1111 HANGUL CHOSEONG PHIEUPH
-1112 HANGUL CHOSEONG HIEUH
-1113 HANGUL CHOSEONG NIEUN-KIYEOK
-1114 HANGUL CHOSEONG SSANGNIEUN
-1115 HANGUL CHOSEONG NIEUN-TIKEUT
-1116 HANGUL CHOSEONG NIEUN-PIEUP
-1117 HANGUL CHOSEONG TIKEUT-KIYEOK
-1118 HANGUL CHOSEONG RIEUL-NIEUN
-1119 HANGUL CHOSEONG SSANGRIEUL
-111A HANGUL CHOSEONG RIEUL-HIEUH
-111B HANGUL CHOSEONG KAPYEOUNRIEUL
-111C HANGUL CHOSEONG MIEUM-PIEUP
-111D HANGUL CHOSEONG KAPYEOUNMIEUM
-111E HANGUL CHOSEONG PIEUP-KIYEOK
-111F HANGUL CHOSEONG PIEUP-NIEUN
-1120 HANGUL CHOSEONG PIEUP-TIKEUT
-1121 HANGUL CHOSEONG PIEUP-SIOS
-1122 HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-1123 HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-1124 HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125 HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126 HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127 HANGUL CHOSEONG PIEUP-CIEUC
-1128 HANGUL CHOSEONG PIEUP-CHIEUCH
-1129 HANGUL CHOSEONG PIEUP-THIEUTH
-112A HANGUL CHOSEONG PIEUP-PHIEUPH
-112B HANGUL CHOSEONG KAPYEOUNPIEUP
-112C HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-112D HANGUL CHOSEONG SIOS-KIYEOK
-112E HANGUL CHOSEONG SIOS-NIEUN
-112F HANGUL CHOSEONG SIOS-TIKEUT
-1130 HANGUL CHOSEONG SIOS-RIEUL
-1131 HANGUL CHOSEONG SIOS-MIEUM
-1132 HANGUL CHOSEONG SIOS-PIEUP
-1133 HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134 HANGUL CHOSEONG SIOS-SSANGSIOS
-1135 HANGUL CHOSEONG SIOS-IEUNG
-1136 HANGUL CHOSEONG SIOS-CIEUC
-1137 HANGUL CHOSEONG SIOS-CHIEUCH
-1138 HANGUL CHOSEONG SIOS-KHIEUKH
-1139 HANGUL CHOSEONG SIOS-THIEUTH
-113A HANGUL CHOSEONG SIOS-PHIEUPH
-113B HANGUL CHOSEONG SIOS-HIEUH
-113C HANGUL CHOSEONG CHITUEUMSIOS
-113D HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140 HANGUL CHOSEONG PANSIOS
-1141 HANGUL CHOSEONG IEUNG-KIYEOK
-1142 HANGUL CHOSEONG IEUNG-TIKEUT
-1143 HANGUL CHOSEONG IEUNG-MIEUM
-1144 HANGUL CHOSEONG IEUNG-PIEUP
-1145 HANGUL CHOSEONG IEUNG-SIOS
-1146 HANGUL CHOSEONG IEUNG-PANSIOS
-1147 HANGUL CHOSEONG SSANGIEUNG
-1148 HANGUL CHOSEONG IEUNG-CIEUC
-1149 HANGUL CHOSEONG IEUNG-CHIEUCH
-114A HANGUL CHOSEONG IEUNG-THIEUTH
-114B HANGUL CHOSEONG IEUNG-PHIEUPH
-114C HANGUL CHOSEONG YESIEUNG
-114D HANGUL CHOSEONG CIEUC-IEUNG
-114E HANGUL CHOSEONG CHITUEUMCIEUC
-114F HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150 HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151 HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152 HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153 HANGUL CHOSEONG CHIEUCH-HIEUH
-1154 HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155 HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156 HANGUL CHOSEONG PHIEUPH-PIEUP
-1157 HANGUL CHOSEONG KAPYEOUNPHIEUPH
-1158 HANGUL CHOSEONG SSANGHIEUH
-1159 HANGUL CHOSEONG YEORINHIEUH
-115F HANGUL CHOSEONG FILLER
-1160 HANGUL JUNGSEONG FILLER
-1161 HANGUL JUNGSEONG A
-1162 HANGUL JUNGSEONG AE
-1163 HANGUL JUNGSEONG YA
-1164 HANGUL JUNGSEONG YAE
-1165 HANGUL JUNGSEONG EO
-1166 HANGUL JUNGSEONG E
-1167 HANGUL JUNGSEONG YEO
-1168 HANGUL JUNGSEONG YE
-1169 HANGUL JUNGSEONG O
-116A HANGUL JUNGSEONG WA
-116B HANGUL JUNGSEONG WAE
-116C HANGUL JUNGSEONG OE
-116D HANGUL JUNGSEONG YO
-116E HANGUL JUNGSEONG U
-116F HANGUL JUNGSEONG WEO
-1170 HANGUL JUNGSEONG WE
-1171 HANGUL JUNGSEONG WI
-1172 HANGUL JUNGSEONG YU
-1173 HANGUL JUNGSEONG EU
-1174 HANGUL JUNGSEONG YI
-1175 HANGUL JUNGSEONG I
-1176 HANGUL JUNGSEONG A-O
-1177 HANGUL JUNGSEONG A-U
-1178 HANGUL JUNGSEONG YA-O
-1179 HANGUL JUNGSEONG YA-YO
-117A HANGUL JUNGSEONG EO-O
-117B HANGUL JUNGSEONG EO-U
-117C HANGUL JUNGSEONG EO-EU
-117D HANGUL JUNGSEONG YEO-O
-117E HANGUL JUNGSEONG YEO-U
-117F HANGUL JUNGSEONG O-EO
-1180 HANGUL JUNGSEONG O-E
-1181 HANGUL JUNGSEONG O-YE
-1182 HANGUL JUNGSEONG O-O
-1183 HANGUL JUNGSEONG O-U
-1184 HANGUL JUNGSEONG YO-YA
-1185 HANGUL JUNGSEONG YO-YAE
-1186 HANGUL JUNGSEONG YO-YEO
-1187 HANGUL JUNGSEONG YO-O
-1188 HANGUL JUNGSEONG YO-I
-1189 HANGUL JUNGSEONG U-A
-118A HANGUL JUNGSEONG U-AE
-118B HANGUL JUNGSEONG U-EO-EU
-118C HANGUL JUNGSEONG U-YE
-118D HANGUL JUNGSEONG U-U
-118E HANGUL JUNGSEONG YU-A
-118F HANGUL JUNGSEONG YU-EO
-1190 HANGUL JUNGSEONG YU-E
-1191 HANGUL JUNGSEONG YU-YEO
-1192 HANGUL JUNGSEONG YU-YE
-1193 HANGUL JUNGSEONG YU-U
-1194 HANGUL JUNGSEONG YU-I
-1195 HANGUL JUNGSEONG EU-U
-1196 HANGUL JUNGSEONG EU-EU
-1197 HANGUL JUNGSEONG YI-U
-1198 HANGUL JUNGSEONG I-A
-1199 HANGUL JUNGSEONG I-YA
-119A HANGUL JUNGSEONG I-O
-119B HANGUL JUNGSEONG I-U
-119C HANGUL JUNGSEONG I-EU
-119D HANGUL JUNGSEONG I-ARAEA
-119E HANGUL JUNGSEONG ARAEA
-119F HANGUL JUNGSEONG ARAEA-EO
-11A0 HANGUL JUNGSEONG ARAEA-U
-11A1 HANGUL JUNGSEONG ARAEA-I
-11A2 HANGUL JUNGSEONG SSANGARAEA
-11A8 HANGUL JONGSEONG KIYEOK
-11A9 HANGUL JONGSEONG SSANGKIYEOK
-11AA HANGUL JONGSEONG KIYEOK-SIOS
-11AB HANGUL JONGSEONG NIEUN
-11AC HANGUL JONGSEONG NIEUN-CIEUC
-11AD HANGUL JONGSEONG NIEUN-HIEUH
-11AE HANGUL JONGSEONG TIKEUT
-11AF HANGUL JONGSEONG RIEUL
-11B0 HANGUL JONGSEONG RIEUL-KIYEOK
-11B1 HANGUL JONGSEONG RIEUL-MIEUM
-11B2 HANGUL JONGSEONG RIEUL-PIEUP
-11B3 HANGUL JONGSEONG RIEUL-SIOS
-11B4 HANGUL JONGSEONG RIEUL-THIEUTH
-11B5 HANGUL JONGSEONG RIEUL-PHIEUPH
-11B6 HANGUL JONGSEONG RIEUL-HIEUH
-11B7 HANGUL JONGSEONG MIEUM
-11B8 HANGUL JONGSEONG PIEUP
-11B9 HANGUL JONGSEONG PIEUP-SIOS
-11BA HANGUL JONGSEONG SIOS
-11BB HANGUL JONGSEONG SSANGSIOS
-11BC HANGUL JONGSEONG IEUNG
-11BD HANGUL JONGSEONG CIEUC
-11BE HANGUL JONGSEONG CHIEUCH
-11BF HANGUL JONGSEONG KHIEUKH
-11C0 HANGUL JONGSEONG THIEUTH
-11C1 HANGUL JONGSEONG PHIEUPH
-11C2 HANGUL JONGSEONG HIEUH
-11C3 HANGUL JONGSEONG KIYEOK-RIEUL
-11C4 HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5 HANGUL JONGSEONG NIEUN-KIYEOK
-11C6 HANGUL JONGSEONG NIEUN-TIKEUT
-11C7 HANGUL JONGSEONG NIEUN-SIOS
-11C8 HANGUL JONGSEONG NIEUN-PANSIOS
-11C9 HANGUL JONGSEONG NIEUN-THIEUTH
-11CA HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB HANGUL JONGSEONG TIKEUT-RIEUL
-11CC HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-11CD HANGUL JONGSEONG RIEUL-NIEUN
-11CE HANGUL JONGSEONG RIEUL-TIKEUT
-11CF HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0 HANGUL JONGSEONG SSANGRIEUL
-11D1 HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2 HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3 HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-11D4 HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5 HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6 HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7 HANGUL JONGSEONG RIEUL-PANSIOS
-11D8 HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9 HANGUL JONGSEONG RIEUL-YEORINHIEUH
-11DA HANGUL JONGSEONG MIEUM-KIYEOK
-11DB HANGUL JONGSEONG MIEUM-RIEUL
-11DC HANGUL JONGSEONG MIEUM-PIEUP
-11DD HANGUL JONGSEONG MIEUM-SIOS
-11DE HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF HANGUL JONGSEONG MIEUM-PANSIOS
-11E0 HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1 HANGUL JONGSEONG MIEUM-HIEUH
-11E2 HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3 HANGUL JONGSEONG PIEUP-RIEUL
-11E4 HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5 HANGUL JONGSEONG PIEUP-HIEUH
-11E6 HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7 HANGUL JONGSEONG SIOS-KIYEOK
-11E8 HANGUL JONGSEONG SIOS-TIKEUT
-11E9 HANGUL JONGSEONG SIOS-RIEUL
-11EA HANGUL JONGSEONG SIOS-PIEUP
-11EB HANGUL JONGSEONG PANSIOS
-11EC HANGUL JONGSEONG IEUNG-KIYEOK
-11ED HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE HANGUL JONGSEONG SSANGIEUNG
-11EF HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0 HANGUL JONGSEONG YESIEUNG
-11F1 HANGUL JONGSEONG YESIEUNG-SIOS
-11F2 HANGUL JONGSEONG YESIEUNG-PANSIOS
-11F3 HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4 HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5 HANGUL JONGSEONG HIEUH-NIEUN
-11F6 HANGUL JONGSEONG HIEUH-RIEUL
-11F7 HANGUL JONGSEONG HIEUH-MIEUM
-11F8 HANGUL JONGSEONG HIEUH-PIEUP
-11F9 HANGUL JONGSEONG YEORINHIEUH
-1200 ETHIOPIC SYLLABLE HA
-1201 ETHIOPIC SYLLABLE HU
-1202 ETHIOPIC SYLLABLE HI
-1203 ETHIOPIC SYLLABLE HAA
-1204 ETHIOPIC SYLLABLE HEE
-1205 ETHIOPIC SYLLABLE HE
-1206 ETHIOPIC SYLLABLE HO
-1208 ETHIOPIC SYLLABLE LA
-1209 ETHIOPIC SYLLABLE LU
-120A ETHIOPIC SYLLABLE LI
-120B ETHIOPIC SYLLABLE LAA
-120C ETHIOPIC SYLLABLE LEE
-120D ETHIOPIC SYLLABLE LE
-120E ETHIOPIC SYLLABLE LO
-120F ETHIOPIC SYLLABLE LWA
-1210 ETHIOPIC SYLLABLE HHA
-1211 ETHIOPIC SYLLABLE HHU
-1212 ETHIOPIC SYLLABLE HHI
-1213 ETHIOPIC SYLLABLE HHAA
-1214 ETHIOPIC SYLLABLE HHEE
-1215 ETHIOPIC SYLLABLE HHE
-1216 ETHIOPIC SYLLABLE HHO
-1217 ETHIOPIC SYLLABLE HHWA
-1218 ETHIOPIC SYLLABLE MA
-1219 ETHIOPIC SYLLABLE MU
-121A ETHIOPIC SYLLABLE MI
-121B ETHIOPIC SYLLABLE MAA
-121C ETHIOPIC SYLLABLE MEE
-121D ETHIOPIC SYLLABLE ME
-121E ETHIOPIC SYLLABLE MO
-121F ETHIOPIC SYLLABLE MWA
-1220 ETHIOPIC SYLLABLE SZA
-1221 ETHIOPIC SYLLABLE SZU
-1222 ETHIOPIC SYLLABLE SZI
-1223 ETHIOPIC SYLLABLE SZAA
-1224 ETHIOPIC SYLLABLE SZEE
-1225 ETHIOPIC SYLLABLE SZE
-1226 ETHIOPIC SYLLABLE SZO
-1227 ETHIOPIC SYLLABLE SZWA
-1228 ETHIOPIC SYLLABLE RA
-1229 ETHIOPIC SYLLABLE RU
-122A ETHIOPIC SYLLABLE RI
-122B ETHIOPIC SYLLABLE RAA
-122C ETHIOPIC SYLLABLE REE
-122D ETHIOPIC SYLLABLE RE
-122E ETHIOPIC SYLLABLE RO
-122F ETHIOPIC SYLLABLE RWA
-1230 ETHIOPIC SYLLABLE SA
-1231 ETHIOPIC SYLLABLE SU
-1232 ETHIOPIC SYLLABLE SI
-1233 ETHIOPIC SYLLABLE SAA
-1234 ETHIOPIC SYLLABLE SEE
-1235 ETHIOPIC SYLLABLE SE
-1236 ETHIOPIC SYLLABLE SO
-1237 ETHIOPIC SYLLABLE SWA
-1238 ETHIOPIC SYLLABLE SHA
-1239 ETHIOPIC SYLLABLE SHU
-123A ETHIOPIC SYLLABLE SHI
-123B ETHIOPIC SYLLABLE SHAA
-123C ETHIOPIC SYLLABLE SHEE
-123D ETHIOPIC SYLLABLE SHE
-123E ETHIOPIC SYLLABLE SHO
-123F ETHIOPIC SYLLABLE SHWA
-1240 ETHIOPIC SYLLABLE QA
-1241 ETHIOPIC SYLLABLE QU
-1242 ETHIOPIC SYLLABLE QI
-1243 ETHIOPIC SYLLABLE QAA
-1244 ETHIOPIC SYLLABLE QEE
-1245 ETHIOPIC SYLLABLE QE
-1246 ETHIOPIC SYLLABLE QO
-1248 ETHIOPIC SYLLABLE QWA
-124A ETHIOPIC SYLLABLE QWI
-124B ETHIOPIC SYLLABLE QWAA
-124C ETHIOPIC SYLLABLE QWEE
-124D ETHIOPIC SYLLABLE QWE
-1250 ETHIOPIC SYLLABLE QHA
-1251 ETHIOPIC SYLLABLE QHU
-1252 ETHIOPIC SYLLABLE QHI
-1253 ETHIOPIC SYLLABLE QHAA
-1254 ETHIOPIC SYLLABLE QHEE
-1255 ETHIOPIC SYLLABLE QHE
-1256 ETHIOPIC SYLLABLE QHO
-1258 ETHIOPIC SYLLABLE QHWA
-125A ETHIOPIC SYLLABLE QHWI
-125B ETHIOPIC SYLLABLE QHWAA
-125C ETHIOPIC SYLLABLE QHWEE
-125D ETHIOPIC SYLLABLE QHWE
-1260 ETHIOPIC SYLLABLE BA
-1261 ETHIOPIC SYLLABLE BU
-1262 ETHIOPIC SYLLABLE BI
-1263 ETHIOPIC SYLLABLE BAA
-1264 ETHIOPIC SYLLABLE BEE
-1265 ETHIOPIC SYLLABLE BE
-1266 ETHIOPIC SYLLABLE BO
-1267 ETHIOPIC SYLLABLE BWA
-1268 ETHIOPIC SYLLABLE VA
-1269 ETHIOPIC SYLLABLE VU
-126A ETHIOPIC SYLLABLE VI
-126B ETHIOPIC SYLLABLE VAA
-126C ETHIOPIC SYLLABLE VEE
-126D ETHIOPIC SYLLABLE VE
-126E ETHIOPIC SYLLABLE VO
-126F ETHIOPIC SYLLABLE VWA
-1270 ETHIOPIC SYLLABLE TA
-1271 ETHIOPIC SYLLABLE TU
-1272 ETHIOPIC SYLLABLE TI
-1273 ETHIOPIC SYLLABLE TAA
-1274 ETHIOPIC SYLLABLE TEE
-1275 ETHIOPIC SYLLABLE TE
-1276 ETHIOPIC SYLLABLE TO
-1277 ETHIOPIC SYLLABLE TWA
-1278 ETHIOPIC SYLLABLE CA
-1279 ETHIOPIC SYLLABLE CU
-127A ETHIOPIC SYLLABLE CI
-127B ETHIOPIC SYLLABLE CAA
-127C ETHIOPIC SYLLABLE CEE
-127D ETHIOPIC SYLLABLE CE
-127E ETHIOPIC SYLLABLE CO
-127F ETHIOPIC SYLLABLE CWA
-1280 ETHIOPIC SYLLABLE XA
-1281 ETHIOPIC SYLLABLE XU
-1282 ETHIOPIC SYLLABLE XI
-1283 ETHIOPIC SYLLABLE XAA
-1284 ETHIOPIC SYLLABLE XEE
-1285 ETHIOPIC SYLLABLE XE
-1286 ETHIOPIC SYLLABLE XO
-1288 ETHIOPIC SYLLABLE XWA
-128A ETHIOPIC SYLLABLE XWI
-128B ETHIOPIC SYLLABLE XWAA
-128C ETHIOPIC SYLLABLE XWEE
-128D ETHIOPIC SYLLABLE XWE
-1290 ETHIOPIC SYLLABLE NA
-1291 ETHIOPIC SYLLABLE NU
-1292 ETHIOPIC SYLLABLE NI
-1293 ETHIOPIC SYLLABLE NAA
-1294 ETHIOPIC SYLLABLE NEE
-1295 ETHIOPIC SYLLABLE NE
-1296 ETHIOPIC SYLLABLE NO
-1297 ETHIOPIC SYLLABLE NWA
-1298 ETHIOPIC SYLLABLE NYA
-1299 ETHIOPIC SYLLABLE NYU
-129A ETHIOPIC SYLLABLE NYI
-129B ETHIOPIC SYLLABLE NYAA
-129C ETHIOPIC SYLLABLE NYEE
-129D ETHIOPIC SYLLABLE NYE
-129E ETHIOPIC SYLLABLE NYO
-129F ETHIOPIC SYLLABLE NYWA
-12A0 ETHIOPIC SYLLABLE GLOTTAL A
-12A1 ETHIOPIC SYLLABLE GLOTTAL U
-12A2 ETHIOPIC SYLLABLE GLOTTAL I
-12A3 ETHIOPIC SYLLABLE GLOTTAL AA
-12A4 ETHIOPIC SYLLABLE GLOTTAL EE
-12A5 ETHIOPIC SYLLABLE GLOTTAL E
-12A6 ETHIOPIC SYLLABLE GLOTTAL O
-12A7 ETHIOPIC SYLLABLE GLOTTAL WA
-12A8 ETHIOPIC SYLLABLE KA
-12A9 ETHIOPIC SYLLABLE KU
-12AA ETHIOPIC SYLLABLE KI
-12AB ETHIOPIC SYLLABLE KAA
-12AC ETHIOPIC SYLLABLE KEE
-12AD ETHIOPIC SYLLABLE KE
-12AE ETHIOPIC SYLLABLE KO
-12B0 ETHIOPIC SYLLABLE KWA
-12B2 ETHIOPIC SYLLABLE KWI
-12B3 ETHIOPIC SYLLABLE KWAA
-12B4 ETHIOPIC SYLLABLE KWEE
-12B5 ETHIOPIC SYLLABLE KWE
-12B8 ETHIOPIC SYLLABLE KXA
-12B9 ETHIOPIC SYLLABLE KXU
-12BA ETHIOPIC SYLLABLE KXI
-12BB ETHIOPIC SYLLABLE KXAA
-12BC ETHIOPIC SYLLABLE KXEE
-12BD ETHIOPIC SYLLABLE KXE
-12BE ETHIOPIC SYLLABLE KXO
-12C0 ETHIOPIC SYLLABLE KXWA
-12C2 ETHIOPIC SYLLABLE KXWI
-12C3 ETHIOPIC SYLLABLE KXWAA
-12C4 ETHIOPIC SYLLABLE KXWEE
-12C5 ETHIOPIC SYLLABLE KXWE
-12C8 ETHIOPIC SYLLABLE WA
-12C9 ETHIOPIC SYLLABLE WU
-12CA ETHIOPIC SYLLABLE WI
-12CB ETHIOPIC SYLLABLE WAA
-12CC ETHIOPIC SYLLABLE WEE
-12CD ETHIOPIC SYLLABLE WE
-12CE ETHIOPIC SYLLABLE WO
-12D0 ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1 ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2 ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3 ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4 ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5 ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6 ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8 ETHIOPIC SYLLABLE ZA
-12D9 ETHIOPIC SYLLABLE ZU
-12DA ETHIOPIC SYLLABLE ZI
-12DB ETHIOPIC SYLLABLE ZAA
-12DC ETHIOPIC SYLLABLE ZEE
-12DD ETHIOPIC SYLLABLE ZE
-12DE ETHIOPIC SYLLABLE ZO
-12DF ETHIOPIC SYLLABLE ZWA
-12E0 ETHIOPIC SYLLABLE ZHA
-12E1 ETHIOPIC SYLLABLE ZHU
-12E2 ETHIOPIC SYLLABLE ZHI
-12E3 ETHIOPIC SYLLABLE ZHAA
-12E4 ETHIOPIC SYLLABLE ZHEE
-12E5 ETHIOPIC SYLLABLE ZHE
-12E6 ETHIOPIC SYLLABLE ZHO
-12E7 ETHIOPIC SYLLABLE ZHWA
-12E8 ETHIOPIC SYLLABLE YA
-12E9 ETHIOPIC SYLLABLE YU
-12EA ETHIOPIC SYLLABLE YI
-12EB ETHIOPIC SYLLABLE YAA
-12EC ETHIOPIC SYLLABLE YEE
-12ED ETHIOPIC SYLLABLE YE
-12EE ETHIOPIC SYLLABLE YO
-12F0 ETHIOPIC SYLLABLE DA
-12F1 ETHIOPIC SYLLABLE DU
-12F2 ETHIOPIC SYLLABLE DI
-12F3 ETHIOPIC SYLLABLE DAA
-12F4 ETHIOPIC SYLLABLE DEE
-12F5 ETHIOPIC SYLLABLE DE
-12F6 ETHIOPIC SYLLABLE DO
-12F7 ETHIOPIC SYLLABLE DWA
-12F8 ETHIOPIC SYLLABLE DDA
-12F9 ETHIOPIC SYLLABLE DDU
-12FA ETHIOPIC SYLLABLE DDI
-12FB ETHIOPIC SYLLABLE DDAA
-12FC ETHIOPIC SYLLABLE DDEE
-12FD ETHIOPIC SYLLABLE DDE
-12FE ETHIOPIC SYLLABLE DDO
-12FF ETHIOPIC SYLLABLE DDWA
-1300 ETHIOPIC SYLLABLE JA
-1301 ETHIOPIC SYLLABLE JU
-1302 ETHIOPIC SYLLABLE JI
-1303 ETHIOPIC SYLLABLE JAA
-1304 ETHIOPIC SYLLABLE JEE
-1305 ETHIOPIC SYLLABLE JE
-1306 ETHIOPIC SYLLABLE JO
-1307 ETHIOPIC SYLLABLE JWA
-1308 ETHIOPIC SYLLABLE GA
-1309 ETHIOPIC SYLLABLE GU
-130A ETHIOPIC SYLLABLE GI
-130B ETHIOPIC SYLLABLE GAA
-130C ETHIOPIC SYLLABLE GEE
-130D ETHIOPIC SYLLABLE GE
-130E ETHIOPIC SYLLABLE GO
-1310 ETHIOPIC SYLLABLE GWA
-1312 ETHIOPIC SYLLABLE GWI
-1313 ETHIOPIC SYLLABLE GWAA
-1314 ETHIOPIC SYLLABLE GWEE
-1315 ETHIOPIC SYLLABLE GWE
-1318 ETHIOPIC SYLLABLE GGA
-1319 ETHIOPIC SYLLABLE GGU
-131A ETHIOPIC SYLLABLE GGI
-131B ETHIOPIC SYLLABLE GGAA
-131C ETHIOPIC SYLLABLE GGEE
-131D ETHIOPIC SYLLABLE GGE
-131E ETHIOPIC SYLLABLE GGO
-1320 ETHIOPIC SYLLABLE THA
-1321 ETHIOPIC SYLLABLE THU
-1322 ETHIOPIC SYLLABLE THI
-1323 ETHIOPIC SYLLABLE THAA
-1324 ETHIOPIC SYLLABLE THEE
-1325 ETHIOPIC SYLLABLE THE
-1326 ETHIOPIC SYLLABLE THO
-1327 ETHIOPIC SYLLABLE THWA
-1328 ETHIOPIC SYLLABLE CHA
-1329 ETHIOPIC SYLLABLE CHU
-132A ETHIOPIC SYLLABLE CHI
-132B ETHIOPIC SYLLABLE CHAA
-132C ETHIOPIC SYLLABLE CHEE
-132D ETHIOPIC SYLLABLE CHE
-132E ETHIOPIC SYLLABLE CHO
-132F ETHIOPIC SYLLABLE CHWA
-1330 ETHIOPIC SYLLABLE PHA
-1331 ETHIOPIC SYLLABLE PHU
-1332 ETHIOPIC SYLLABLE PHI
-1333 ETHIOPIC SYLLABLE PHAA
-1334 ETHIOPIC SYLLABLE PHEE
-1335 ETHIOPIC SYLLABLE PHE
-1336 ETHIOPIC SYLLABLE PHO
-1337 ETHIOPIC SYLLABLE PHWA
-1338 ETHIOPIC SYLLABLE TSA
-1339 ETHIOPIC SYLLABLE TSU
-133A ETHIOPIC SYLLABLE TSI
-133B ETHIOPIC SYLLABLE TSAA
-133C ETHIOPIC SYLLABLE TSEE
-133D ETHIOPIC SYLLABLE TSE
-133E ETHIOPIC SYLLABLE TSO
-133F ETHIOPIC SYLLABLE TSWA
-1340 ETHIOPIC SYLLABLE TZA
-1341 ETHIOPIC SYLLABLE TZU
-1342 ETHIOPIC SYLLABLE TZI
-1343 ETHIOPIC SYLLABLE TZAA
-1344 ETHIOPIC SYLLABLE TZEE
-1345 ETHIOPIC SYLLABLE TZE
-1346 ETHIOPIC SYLLABLE TZO
-1348 ETHIOPIC SYLLABLE FA
-1349 ETHIOPIC SYLLABLE FU
-134A ETHIOPIC SYLLABLE FI
-134B ETHIOPIC SYLLABLE FAA
-134C ETHIOPIC SYLLABLE FEE
-134D ETHIOPIC SYLLABLE FE
-134E ETHIOPIC SYLLABLE FO
-134F ETHIOPIC SYLLABLE FWA
-1350 ETHIOPIC SYLLABLE PA
-1351 ETHIOPIC SYLLABLE PU
-1352 ETHIOPIC SYLLABLE PI
-1353 ETHIOPIC SYLLABLE PAA
-1354 ETHIOPIC SYLLABLE PEE
-1355 ETHIOPIC SYLLABLE PE
-1356 ETHIOPIC SYLLABLE PO
-1357 ETHIOPIC SYLLABLE PWA
-1358 ETHIOPIC SYLLABLE RYA
-1359 ETHIOPIC SYLLABLE MYA
-135A ETHIOPIC SYLLABLE FYA
-1361 ETHIOPIC WORDSPACE
-1362 ETHIOPIC FULL STOP
-1363 ETHIOPIC COMMA
-1364 ETHIOPIC SEMICOLON
-1365 ETHIOPIC COLON
-1366 ETHIOPIC PREFACE COLON
-1367 ETHIOPIC QUESTION MARK
-1368 ETHIOPIC PARAGRAPH SEPARATOR
-1369 ETHIOPIC DIGIT ONE
-136A ETHIOPIC DIGIT TWO
-136B ETHIOPIC DIGIT THREE
-136C ETHIOPIC DIGIT FOUR
-136D ETHIOPIC DIGIT FIVE
-136E ETHIOPIC DIGIT SIX
-136F ETHIOPIC DIGIT SEVEN
-1370 ETHIOPIC DIGIT EIGHT
-1371 ETHIOPIC DIGIT NINE
-1372 ETHIOPIC NUMBER TEN
-1373 ETHIOPIC NUMBER TWENTY
-1374 ETHIOPIC NUMBER THIRTY
-1375 ETHIOPIC NUMBER FORTY
-1376 ETHIOPIC NUMBER FIFTY
-1377 ETHIOPIC NUMBER SIXTY
-1378 ETHIOPIC NUMBER SEVENTY
-1379 ETHIOPIC NUMBER EIGHTY
-137A ETHIOPIC NUMBER NINETY
-137B ETHIOPIC NUMBER HUNDRED
-137C ETHIOPIC NUMBER TEN THOUSAND
-13A0 CHEROKEE LETTER A
-13A1 CHEROKEE LETTER E
-13A2 CHEROKEE LETTER I
-13A3 CHEROKEE LETTER O
-13A4 CHEROKEE LETTER U
-13A5 CHEROKEE LETTER V
-13A6 CHEROKEE LETTER GA
-13A7 CHEROKEE LETTER KA
-13A8 CHEROKEE LETTER GE
-13A9 CHEROKEE LETTER GI
-13AA CHEROKEE LETTER GO
-13AB CHEROKEE LETTER GU
-13AC CHEROKEE LETTER GV
-13AD CHEROKEE LETTER HA
-13AE CHEROKEE LETTER HE
-13AF CHEROKEE LETTER HI
-13B0 CHEROKEE LETTER HO
-13B1 CHEROKEE LETTER HU
-13B2 CHEROKEE LETTER HV
-13B3 CHEROKEE LETTER LA
-13B4 CHEROKEE LETTER LE
-13B5 CHEROKEE LETTER LI
-13B6 CHEROKEE LETTER LO
-13B7 CHEROKEE LETTER LU
-13B8 CHEROKEE LETTER LV
-13B9 CHEROKEE LETTER MA
-13BA CHEROKEE LETTER ME
-13BB CHEROKEE LETTER MI
-13BC CHEROKEE LETTER MO
-13BD CHEROKEE LETTER MU
-13BE CHEROKEE LETTER NA
-13BF CHEROKEE LETTER HNA
-13C0 CHEROKEE LETTER NAH
-13C1 CHEROKEE LETTER NE
-13C2 CHEROKEE LETTER NI
-13C3 CHEROKEE LETTER NO
-13C4 CHEROKEE LETTER NU
-13C5 CHEROKEE LETTER NV
-13C6 CHEROKEE LETTER QUA
-13C7 CHEROKEE LETTER QUE
-13C8 CHEROKEE LETTER QUI
-13C9 CHEROKEE LETTER QUO
-13CA CHEROKEE LETTER QUU
-13CB CHEROKEE LETTER QUV
-13CC CHEROKEE LETTER SA
-13CD CHEROKEE LETTER S
-13CE CHEROKEE LETTER SE
-13CF CHEROKEE LETTER SI
-13D0 CHEROKEE LETTER SO
-13D1 CHEROKEE LETTER SU
-13D2 CHEROKEE LETTER SV
-13D3 CHEROKEE LETTER DA
-13D4 CHEROKEE LETTER TA
-13D5 CHEROKEE LETTER DE
-13D6 CHEROKEE LETTER TE
-13D7 CHEROKEE LETTER DI
-13D8 CHEROKEE LETTER TI
-13D9 CHEROKEE LETTER DO
-13DA CHEROKEE LETTER DU
-13DB CHEROKEE LETTER DV
-13DC CHEROKEE LETTER DLA
-13DD CHEROKEE LETTER TLA
-13DE CHEROKEE LETTER TLE
-13DF CHEROKEE LETTER TLI
-13E0 CHEROKEE LETTER TLO
-13E1 CHEROKEE LETTER TLU
-13E2 CHEROKEE LETTER TLV
-13E3 CHEROKEE LETTER TSA
-13E4 CHEROKEE LETTER TSE
-13E5 CHEROKEE LETTER TSI
-13E6 CHEROKEE LETTER TSO
-13E7 CHEROKEE LETTER TSU
-13E8 CHEROKEE LETTER TSV
-13E9 CHEROKEE LETTER WA
-13EA CHEROKEE LETTER WE
-13EB CHEROKEE LETTER WI
-13EC CHEROKEE LETTER WO
-13ED CHEROKEE LETTER WU
-13EE CHEROKEE LETTER WV
-13EF CHEROKEE LETTER YA
-13F0 CHEROKEE LETTER YE
-13F1 CHEROKEE LETTER YI
-13F2 CHEROKEE LETTER YO
-13F3 CHEROKEE LETTER YU
-13F4 CHEROKEE LETTER YV
-1401 CANADIAN SYLLABICS E
-1402 CANADIAN SYLLABICS AAI
-1403 CANADIAN SYLLABICS I
-1404 CANADIAN SYLLABICS II
-1405 CANADIAN SYLLABICS O
-1406 CANADIAN SYLLABICS OO
-1407 CANADIAN SYLLABICS Y-CREE OO
-1408 CANADIAN SYLLABICS CARRIER EE
-1409 CANADIAN SYLLABICS CARRIER I
-140A CANADIAN SYLLABICS A
-140B CANADIAN SYLLABICS AA
-140C CANADIAN SYLLABICS WE
-140D CANADIAN SYLLABICS WEST-CREE WE
-140E CANADIAN SYLLABICS WI
-140F CANADIAN SYLLABICS WEST-CREE WI
-1410 CANADIAN SYLLABICS WII
-1411 CANADIAN SYLLABICS WEST-CREE WII
-1412 CANADIAN SYLLABICS WO
-1413 CANADIAN SYLLABICS WEST-CREE WO
-1414 CANADIAN SYLLABICS WOO
-1415 CANADIAN SYLLABICS WEST-CREE WOO
-1416 CANADIAN SYLLABICS NASKAPI WOO
-1417 CANADIAN SYLLABICS WA
-1418 CANADIAN SYLLABICS WEST-CREE WA
-1419 CANADIAN SYLLABICS WAA
-141A CANADIAN SYLLABICS WEST-CREE WAA
-141B CANADIAN SYLLABICS NASKAPI WAA
-141C CANADIAN SYLLABICS AI
-141D CANADIAN SYLLABICS Y-CREE W
-141E CANADIAN SYLLABICS GLOTTAL STOP
-141F CANADIAN SYLLABICS FINAL ACUTE
-1420 CANADIAN SYLLABICS FINAL GRAVE
-1421 CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422 CANADIAN SYLLABICS FINAL TOP HALF RING
-1423 CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424 CANADIAN SYLLABICS FINAL RING
-1425 CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426 CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427 CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428 CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429 CANADIAN SYLLABICS FINAL PLUS
-142A CANADIAN SYLLABICS FINAL DOWN TACK
-142B CANADIAN SYLLABICS EN
-142C CANADIAN SYLLABICS IN
-142D CANADIAN SYLLABICS ON
-142E CANADIAN SYLLABICS AN
-142F CANADIAN SYLLABICS PE
-1430 CANADIAN SYLLABICS PAAI
-1431 CANADIAN SYLLABICS PI
-1432 CANADIAN SYLLABICS PII
-1433 CANADIAN SYLLABICS PO
-1434 CANADIAN SYLLABICS POO
-1435 CANADIAN SYLLABICS Y-CREE POO
-1436 CANADIAN SYLLABICS CARRIER HEE
-1437 CANADIAN SYLLABICS CARRIER HI
-1438 CANADIAN SYLLABICS PA
-1439 CANADIAN SYLLABICS PAA
-143A CANADIAN SYLLABICS PWE
-143B CANADIAN SYLLABICS WEST-CREE PWE
-143C CANADIAN SYLLABICS PWI
-143D CANADIAN SYLLABICS WEST-CREE PWI
-143E CANADIAN SYLLABICS PWII
-143F CANADIAN SYLLABICS WEST-CREE PWII
-1440 CANADIAN SYLLABICS PWO
-1441 CANADIAN SYLLABICS WEST-CREE PWO
-1442 CANADIAN SYLLABICS PWOO
-1443 CANADIAN SYLLABICS WEST-CREE PWOO
-1444 CANADIAN SYLLABICS PWA
-1445 CANADIAN SYLLABICS WEST-CREE PWA
-1446 CANADIAN SYLLABICS PWAA
-1447 CANADIAN SYLLABICS WEST-CREE PWAA
-1448 CANADIAN SYLLABICS Y-CREE PWAA
-1449 CANADIAN SYLLABICS P
-144A CANADIAN SYLLABICS WEST-CREE P
-144B CANADIAN SYLLABICS CARRIER H
-144C CANADIAN SYLLABICS TE
-144D CANADIAN SYLLABICS TAAI
-144E CANADIAN SYLLABICS TI
-144F CANADIAN SYLLABICS TII
-1450 CANADIAN SYLLABICS TO
-1451 CANADIAN SYLLABICS TOO
-1452 CANADIAN SYLLABICS Y-CREE TOO
-1453 CANADIAN SYLLABICS CARRIER DEE
-1454 CANADIAN SYLLABICS CARRIER DI
-1455 CANADIAN SYLLABICS TA
-1456 CANADIAN SYLLABICS TAA
-1457 CANADIAN SYLLABICS TWE
-1458 CANADIAN SYLLABICS WEST-CREE TWE
-1459 CANADIAN SYLLABICS TWI
-145A CANADIAN SYLLABICS WEST-CREE TWI
-145B CANADIAN SYLLABICS TWII
-145C CANADIAN SYLLABICS WEST-CREE TWII
-145D CANADIAN SYLLABICS TWO
-145E CANADIAN SYLLABICS WEST-CREE TWO
-145F CANADIAN SYLLABICS TWOO
-1460 CANADIAN SYLLABICS WEST-CREE TWOO
-1461 CANADIAN SYLLABICS TWA
-1462 CANADIAN SYLLABICS WEST-CREE TWA
-1463 CANADIAN SYLLABICS TWAA
-1464 CANADIAN SYLLABICS WEST-CREE TWAA
-1465 CANADIAN SYLLABICS NASKAPI TWAA
-1466 CANADIAN SYLLABICS T
-1467 CANADIAN SYLLABICS TTE
-1468 CANADIAN SYLLABICS TTI
-1469 CANADIAN SYLLABICS TTO
-146A CANADIAN SYLLABICS TTA
-146B CANADIAN SYLLABICS KE
-146C CANADIAN SYLLABICS KAAI
-146D CANADIAN SYLLABICS KI
-146E CANADIAN SYLLABICS KII
-146F CANADIAN SYLLABICS KO
-1470 CANADIAN SYLLABICS KOO
-1471 CANADIAN SYLLABICS Y-CREE KOO
-1472 CANADIAN SYLLABICS KA
-1473 CANADIAN SYLLABICS KAA
-1474 CANADIAN SYLLABICS KWE
-1475 CANADIAN SYLLABICS WEST-CREE KWE
-1476 CANADIAN SYLLABICS KWI
-1477 CANADIAN SYLLABICS WEST-CREE KWI
-1478 CANADIAN SYLLABICS KWII
-1479 CANADIAN SYLLABICS WEST-CREE KWII
-147A CANADIAN SYLLABICS KWO
-147B CANADIAN SYLLABICS WEST-CREE KWO
-147C CANADIAN SYLLABICS KWOO
-147D CANADIAN SYLLABICS WEST-CREE KWOO
-147E CANADIAN SYLLABICS KWA
-147F CANADIAN SYLLABICS WEST-CREE KWA
-1480 CANADIAN SYLLABICS KWAA
-1481 CANADIAN SYLLABICS WEST-CREE KWAA
-1482 CANADIAN SYLLABICS NASKAPI KWAA
-1483 CANADIAN SYLLABICS K
-1484 CANADIAN SYLLABICS KW
-1485 CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486 CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487 CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488 CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489 CANADIAN SYLLABICS CE
-148A CANADIAN SYLLABICS CAAI
-148B CANADIAN SYLLABICS CI
-148C CANADIAN SYLLABICS CII
-148D CANADIAN SYLLABICS CO
-148E CANADIAN SYLLABICS COO
-148F CANADIAN SYLLABICS Y-CREE COO
-1490 CANADIAN SYLLABICS CA
-1491 CANADIAN SYLLABICS CAA
-1492 CANADIAN SYLLABICS CWE
-1493 CANADIAN SYLLABICS WEST-CREE CWE
-1494 CANADIAN SYLLABICS CWI
-1495 CANADIAN SYLLABICS WEST-CREE CWI
-1496 CANADIAN SYLLABICS CWII
-1497 CANADIAN SYLLABICS WEST-CREE CWII
-1498 CANADIAN SYLLABICS CWO
-1499 CANADIAN SYLLABICS WEST-CREE CWO
-149A CANADIAN SYLLABICS CWOO
-149B CANADIAN SYLLABICS WEST-CREE CWOO
-149C CANADIAN SYLLABICS CWA
-149D CANADIAN SYLLABICS WEST-CREE CWA
-149E CANADIAN SYLLABICS CWAA
-149F CANADIAN SYLLABICS WEST-CREE CWAA
-14A0 CANADIAN SYLLABICS NASKAPI CWAA
-14A1 CANADIAN SYLLABICS C
-14A2 CANADIAN SYLLABICS SAYISI TH
-14A3 CANADIAN SYLLABICS ME
-14A4 CANADIAN SYLLABICS MAAI
-14A5 CANADIAN SYLLABICS MI
-14A6 CANADIAN SYLLABICS MII
-14A7 CANADIAN SYLLABICS MO
-14A8 CANADIAN SYLLABICS MOO
-14A9 CANADIAN SYLLABICS Y-CREE MOO
-14AA CANADIAN SYLLABICS MA
-14AB CANADIAN SYLLABICS MAA
-14AC CANADIAN SYLLABICS MWE
-14AD CANADIAN SYLLABICS WEST-CREE MWE
-14AE CANADIAN SYLLABICS MWI
-14AF CANADIAN SYLLABICS WEST-CREE MWI
-14B0 CANADIAN SYLLABICS MWII
-14B1 CANADIAN SYLLABICS WEST-CREE MWII
-14B2 CANADIAN SYLLABICS MWO
-14B3 CANADIAN SYLLABICS WEST-CREE MWO
-14B4 CANADIAN SYLLABICS MWOO
-14B5 CANADIAN SYLLABICS WEST-CREE MWOO
-14B6 CANADIAN SYLLABICS MWA
-14B7 CANADIAN SYLLABICS WEST-CREE MWA
-14B8 CANADIAN SYLLABICS MWAA
-14B9 CANADIAN SYLLABICS WEST-CREE MWAA
-14BA CANADIAN SYLLABICS NASKAPI MWAA
-14BB CANADIAN SYLLABICS M
-14BC CANADIAN SYLLABICS WEST-CREE M
-14BD CANADIAN SYLLABICS MH
-14BE CANADIAN SYLLABICS ATHAPASCAN M
-14BF CANADIAN SYLLABICS SAYISI M
-14C0 CANADIAN SYLLABICS NE
-14C1 CANADIAN SYLLABICS NAAI
-14C2 CANADIAN SYLLABICS NI
-14C3 CANADIAN SYLLABICS NII
-14C4 CANADIAN SYLLABICS NO
-14C5 CANADIAN SYLLABICS NOO
-14C6 CANADIAN SYLLABICS Y-CREE NOO
-14C7 CANADIAN SYLLABICS NA
-14C8 CANADIAN SYLLABICS NAA
-14C9 CANADIAN SYLLABICS NWE
-14CA CANADIAN SYLLABICS WEST-CREE NWE
-14CB CANADIAN SYLLABICS NWA
-14CC CANADIAN SYLLABICS WEST-CREE NWA
-14CD CANADIAN SYLLABICS NWAA
-14CE CANADIAN SYLLABICS WEST-CREE NWAA
-14CF CANADIAN SYLLABICS NASKAPI NWAA
-14D0 CANADIAN SYLLABICS N
-14D1 CANADIAN SYLLABICS CARRIER NG
-14D2 CANADIAN SYLLABICS NH
-14D3 CANADIAN SYLLABICS LE
-14D4 CANADIAN SYLLABICS LAAI
-14D5 CANADIAN SYLLABICS LI
-14D6 CANADIAN SYLLABICS LII
-14D7 CANADIAN SYLLABICS LO
-14D8 CANADIAN SYLLABICS LOO
-14D9 CANADIAN SYLLABICS Y-CREE LOO
-14DA CANADIAN SYLLABICS LA
-14DB CANADIAN SYLLABICS LAA
-14DC CANADIAN SYLLABICS LWE
-14DD CANADIAN SYLLABICS WEST-CREE LWE
-14DE CANADIAN SYLLABICS LWI
-14DF CANADIAN SYLLABICS WEST-CREE LWI
-14E0 CANADIAN SYLLABICS LWII
-14E1 CANADIAN SYLLABICS WEST-CREE LWII
-14E2 CANADIAN SYLLABICS LWO
-14E3 CANADIAN SYLLABICS WEST-CREE LWO
-14E4 CANADIAN SYLLABICS LWOO
-14E5 CANADIAN SYLLABICS WEST-CREE LWOO
-14E6 CANADIAN SYLLABICS LWA
-14E7 CANADIAN SYLLABICS WEST-CREE LWA
-14E8 CANADIAN SYLLABICS LWAA
-14E9 CANADIAN SYLLABICS WEST-CREE LWAA
-14EA CANADIAN SYLLABICS L
-14EB CANADIAN SYLLABICS WEST-CREE L
-14EC CANADIAN SYLLABICS MEDIAL L
-14ED CANADIAN SYLLABICS SE
-14EE CANADIAN SYLLABICS SAAI
-14EF CANADIAN SYLLABICS SI
-14F0 CANADIAN SYLLABICS SII
-14F1 CANADIAN SYLLABICS SO
-14F2 CANADIAN SYLLABICS SOO
-14F3 CANADIAN SYLLABICS Y-CREE SOO
-14F4 CANADIAN SYLLABICS SA
-14F5 CANADIAN SYLLABICS SAA
-14F6 CANADIAN SYLLABICS SWE
-14F7 CANADIAN SYLLABICS WEST-CREE SWE
-14F8 CANADIAN SYLLABICS SWI
-14F9 CANADIAN SYLLABICS WEST-CREE SWI
-14FA CANADIAN SYLLABICS SWII
-14FB CANADIAN SYLLABICS WEST-CREE SWII
-14FC CANADIAN SYLLABICS SWO
-14FD CANADIAN SYLLABICS WEST-CREE SWO
-14FE CANADIAN SYLLABICS SWOO
-14FF CANADIAN SYLLABICS WEST-CREE SWOO
-1500 CANADIAN SYLLABICS SWA
-1501 CANADIAN SYLLABICS WEST-CREE SWA
-1502 CANADIAN SYLLABICS SWAA
-1503 CANADIAN SYLLABICS WEST-CREE SWAA
-1504 CANADIAN SYLLABICS NASKAPI SWAA
-1505 CANADIAN SYLLABICS S
-1506 CANADIAN SYLLABICS ATHAPASCAN S
-1507 CANADIAN SYLLABICS SW
-1508 CANADIAN SYLLABICS BLACKFOOT S
-1509 CANADIAN SYLLABICS MOOSE-CREE SK
-150A CANADIAN SYLLABICS NASKAPI SKW
-150B CANADIAN SYLLABICS NASKAPI S-W
-150C CANADIAN SYLLABICS NASKAPI SPWA
-150D CANADIAN SYLLABICS NASKAPI STWA
-150E CANADIAN SYLLABICS NASKAPI SKWA
-150F CANADIAN SYLLABICS NASKAPI SCWA
-1510 CANADIAN SYLLABICS SHE
-1511 CANADIAN SYLLABICS SHI
-1512 CANADIAN SYLLABICS SHII
-1513 CANADIAN SYLLABICS SHO
-1514 CANADIAN SYLLABICS SHOO
-1515 CANADIAN SYLLABICS SHA
-1516 CANADIAN SYLLABICS SHAA
-1517 CANADIAN SYLLABICS SHWE
-1518 CANADIAN SYLLABICS WEST-CREE SHWE
-1519 CANADIAN SYLLABICS SHWI
-151A CANADIAN SYLLABICS WEST-CREE SHWI
-151B CANADIAN SYLLABICS SHWII
-151C CANADIAN SYLLABICS WEST-CREE SHWII
-151D CANADIAN SYLLABICS SHWO
-151E CANADIAN SYLLABICS WEST-CREE SHWO
-151F CANADIAN SYLLABICS SHWOO
-1520 CANADIAN SYLLABICS WEST-CREE SHWOO
-1521 CANADIAN SYLLABICS SHWA
-1522 CANADIAN SYLLABICS WEST-CREE SHWA
-1523 CANADIAN SYLLABICS SHWAA
-1524 CANADIAN SYLLABICS WEST-CREE SHWAA
-1525 CANADIAN SYLLABICS SH
-1526 CANADIAN SYLLABICS YE
-1527 CANADIAN SYLLABICS YAAI
-1528 CANADIAN SYLLABICS YI
-1529 CANADIAN SYLLABICS YII
-152A CANADIAN SYLLABICS YO
-152B CANADIAN SYLLABICS YOO
-152C CANADIAN SYLLABICS Y-CREE YOO
-152D CANADIAN SYLLABICS YA
-152E CANADIAN SYLLABICS YAA
-152F CANADIAN SYLLABICS YWE
-1530 CANADIAN SYLLABICS WEST-CREE YWE
-1531 CANADIAN SYLLABICS YWI
-1532 CANADIAN SYLLABICS WEST-CREE YWI
-1533 CANADIAN SYLLABICS YWII
-1534 CANADIAN SYLLABICS WEST-CREE YWII
-1535 CANADIAN SYLLABICS YWO
-1536 CANADIAN SYLLABICS WEST-CREE YWO
-1537 CANADIAN SYLLABICS YWOO
-1538 CANADIAN SYLLABICS WEST-CREE YWOO
-1539 CANADIAN SYLLABICS YWA
-153A CANADIAN SYLLABICS WEST-CREE YWA
-153B CANADIAN SYLLABICS YWAA
-153C CANADIAN SYLLABICS WEST-CREE YWAA
-153D CANADIAN SYLLABICS NASKAPI YWAA
-153E CANADIAN SYLLABICS Y
-153F CANADIAN SYLLABICS BIBLE-CREE Y
-1540 CANADIAN SYLLABICS WEST-CREE Y
-1541 CANADIAN SYLLABICS SAYISI YI
-1542 CANADIAN SYLLABICS RE
-1543 CANADIAN SYLLABICS R-CREE RE
-1544 CANADIAN SYLLABICS WEST-CREE LE
-1545 CANADIAN SYLLABICS RAAI
-1546 CANADIAN SYLLABICS RI
-1547 CANADIAN SYLLABICS RII
-1548 CANADIAN SYLLABICS RO
-1549 CANADIAN SYLLABICS ROO
-154A CANADIAN SYLLABICS WEST-CREE LO
-154B CANADIAN SYLLABICS RA
-154C CANADIAN SYLLABICS RAA
-154D CANADIAN SYLLABICS WEST-CREE LA
-154E CANADIAN SYLLABICS RWAA
-154F CANADIAN SYLLABICS WEST-CREE RWAA
-1550 CANADIAN SYLLABICS R
-1551 CANADIAN SYLLABICS WEST-CREE R
-1552 CANADIAN SYLLABICS MEDIAL R
-1553 CANADIAN SYLLABICS FE
-1554 CANADIAN SYLLABICS FAAI
-1555 CANADIAN SYLLABICS FI
-1556 CANADIAN SYLLABICS FII
-1557 CANADIAN SYLLABICS FO
-1558 CANADIAN SYLLABICS FOO
-1559 CANADIAN SYLLABICS FA
-155A CANADIAN SYLLABICS FAA
-155B CANADIAN SYLLABICS FWAA
-155C CANADIAN SYLLABICS WEST-CREE FWAA
-155D CANADIAN SYLLABICS F
-155E CANADIAN SYLLABICS THE
-155F CANADIAN SYLLABICS N-CREE THE
-1560 CANADIAN SYLLABICS THI
-1561 CANADIAN SYLLABICS N-CREE THI
-1562 CANADIAN SYLLABICS THII
-1563 CANADIAN SYLLABICS N-CREE THII
-1564 CANADIAN SYLLABICS THO
-1565 CANADIAN SYLLABICS THOO
-1566 CANADIAN SYLLABICS THA
-1567 CANADIAN SYLLABICS THAA
-1568 CANADIAN SYLLABICS THWAA
-1569 CANADIAN SYLLABICS WEST-CREE THWAA
-156A CANADIAN SYLLABICS TH
-156B CANADIAN SYLLABICS TTHE
-156C CANADIAN SYLLABICS TTHI
-156D CANADIAN SYLLABICS TTHO
-156E CANADIAN SYLLABICS TTHA
-156F CANADIAN SYLLABICS TTH
-1570 CANADIAN SYLLABICS TYE
-1571 CANADIAN SYLLABICS TYI
-1572 CANADIAN SYLLABICS TYO
-1573 CANADIAN SYLLABICS TYA
-1574 CANADIAN SYLLABICS NUNAVIK HE
-1575 CANADIAN SYLLABICS NUNAVIK HI
-1576 CANADIAN SYLLABICS NUNAVIK HII
-1577 CANADIAN SYLLABICS NUNAVIK HO
-1578 CANADIAN SYLLABICS NUNAVIK HOO
-1579 CANADIAN SYLLABICS NUNAVIK HA
-157A CANADIAN SYLLABICS NUNAVIK HAA
-157B CANADIAN SYLLABICS NUNAVIK H
-157C CANADIAN SYLLABICS NUNAVUT H
-157D CANADIAN SYLLABICS HK
-157E CANADIAN SYLLABICS QAAI
-157F CANADIAN SYLLABICS QI
-1580 CANADIAN SYLLABICS QII
-1581 CANADIAN SYLLABICS QO
-1582 CANADIAN SYLLABICS QOO
-1583 CANADIAN SYLLABICS QA
-1584 CANADIAN SYLLABICS QAA
-1585 CANADIAN SYLLABICS Q
-1586 CANADIAN SYLLABICS TLHE
-1587 CANADIAN SYLLABICS TLHI
-1588 CANADIAN SYLLABICS TLHO
-1589 CANADIAN SYLLABICS TLHA
-158A CANADIAN SYLLABICS WEST-CREE RE
-158B CANADIAN SYLLABICS WEST-CREE RI
-158C CANADIAN SYLLABICS WEST-CREE RO
-158D CANADIAN SYLLABICS WEST-CREE RA
-158E CANADIAN SYLLABICS NGAAI
-158F CANADIAN SYLLABICS NGI
-1590 CANADIAN SYLLABICS NGII
-1591 CANADIAN SYLLABICS NGO
-1592 CANADIAN SYLLABICS NGOO
-1593 CANADIAN SYLLABICS NGA
-1594 CANADIAN SYLLABICS NGAA
-1595 CANADIAN SYLLABICS NG
-1596 CANADIAN SYLLABICS NNG
-1597 CANADIAN SYLLABICS SAYISI SHE
-1598 CANADIAN SYLLABICS SAYISI SHI
-1599 CANADIAN SYLLABICS SAYISI SHO
-159A CANADIAN SYLLABICS SAYISI SHA
-159B CANADIAN SYLLABICS WOODS-CREE THE
-159C CANADIAN SYLLABICS WOODS-CREE THI
-159D CANADIAN SYLLABICS WOODS-CREE THO
-159E CANADIAN SYLLABICS WOODS-CREE THA
-159F CANADIAN SYLLABICS WOODS-CREE TH
-15A0 CANADIAN SYLLABICS LHI
-15A1 CANADIAN SYLLABICS LHII
-15A2 CANADIAN SYLLABICS LHO
-15A3 CANADIAN SYLLABICS LHOO
-15A4 CANADIAN SYLLABICS LHA
-15A5 CANADIAN SYLLABICS LHAA
-15A6 CANADIAN SYLLABICS LH
-15A7 CANADIAN SYLLABICS TH-CREE THE
-15A8 CANADIAN SYLLABICS TH-CREE THI
-15A9 CANADIAN SYLLABICS TH-CREE THII
-15AA CANADIAN SYLLABICS TH-CREE THO
-15AB CANADIAN SYLLABICS TH-CREE THOO
-15AC CANADIAN SYLLABICS TH-CREE THA
-15AD CANADIAN SYLLABICS TH-CREE THAA
-15AE CANADIAN SYLLABICS TH-CREE TH
-15AF CANADIAN SYLLABICS AIVILIK B
-15B0 CANADIAN SYLLABICS BLACKFOOT E
-15B1 CANADIAN SYLLABICS BLACKFOOT I
-15B2 CANADIAN SYLLABICS BLACKFOOT O
-15B3 CANADIAN SYLLABICS BLACKFOOT A
-15B4 CANADIAN SYLLABICS BLACKFOOT WE
-15B5 CANADIAN SYLLABICS BLACKFOOT WI
-15B6 CANADIAN SYLLABICS BLACKFOOT WO
-15B7 CANADIAN SYLLABICS BLACKFOOT WA
-15B8 CANADIAN SYLLABICS BLACKFOOT NE
-15B9 CANADIAN SYLLABICS BLACKFOOT NI
-15BA CANADIAN SYLLABICS BLACKFOOT NO
-15BB CANADIAN SYLLABICS BLACKFOOT NA
-15BC CANADIAN SYLLABICS BLACKFOOT KE
-15BD CANADIAN SYLLABICS BLACKFOOT KI
-15BE CANADIAN SYLLABICS BLACKFOOT KO
-15BF CANADIAN SYLLABICS BLACKFOOT KA
-15C0 CANADIAN SYLLABICS SAYISI HE
-15C1 CANADIAN SYLLABICS SAYISI HI
-15C2 CANADIAN SYLLABICS SAYISI HO
-15C3 CANADIAN SYLLABICS SAYISI HA
-15C4 CANADIAN SYLLABICS CARRIER GHU
-15C5 CANADIAN SYLLABICS CARRIER GHO
-15C6 CANADIAN SYLLABICS CARRIER GHE
-15C7 CANADIAN SYLLABICS CARRIER GHEE
-15C8 CANADIAN SYLLABICS CARRIER GHI
-15C9 CANADIAN SYLLABICS CARRIER GHA
-15CA CANADIAN SYLLABICS CARRIER RU
-15CB CANADIAN SYLLABICS CARRIER RO
-15CC CANADIAN SYLLABICS CARRIER RE
-15CD CANADIAN SYLLABICS CARRIER REE
-15CE CANADIAN SYLLABICS CARRIER RI
-15CF CANADIAN SYLLABICS CARRIER RA
-15D0 CANADIAN SYLLABICS CARRIER WU
-15D1 CANADIAN SYLLABICS CARRIER WO
-15D2 CANADIAN SYLLABICS CARRIER WE
-15D3 CANADIAN SYLLABICS CARRIER WEE
-15D4 CANADIAN SYLLABICS CARRIER WI
-15D5 CANADIAN SYLLABICS CARRIER WA
-15D6 CANADIAN SYLLABICS CARRIER HWU
-15D7 CANADIAN SYLLABICS CARRIER HWO
-15D8 CANADIAN SYLLABICS CARRIER HWE
-15D9 CANADIAN SYLLABICS CARRIER HWEE
-15DA CANADIAN SYLLABICS CARRIER HWI
-15DB CANADIAN SYLLABICS CARRIER HWA
-15DC CANADIAN SYLLABICS CARRIER THU
-15DD CANADIAN SYLLABICS CARRIER THO
-15DE CANADIAN SYLLABICS CARRIER THE
-15DF CANADIAN SYLLABICS CARRIER THEE
-15E0 CANADIAN SYLLABICS CARRIER THI
-15E1 CANADIAN SYLLABICS CARRIER THA
-15E2 CANADIAN SYLLABICS CARRIER TTU
-15E3 CANADIAN SYLLABICS CARRIER TTO
-15E4 CANADIAN SYLLABICS CARRIER TTE
-15E5 CANADIAN SYLLABICS CARRIER TTEE
-15E6 CANADIAN SYLLABICS CARRIER TTI
-15E7 CANADIAN SYLLABICS CARRIER TTA
-15E8 CANADIAN SYLLABICS CARRIER PU
-15E9 CANADIAN SYLLABICS CARRIER PO
-15EA CANADIAN SYLLABICS CARRIER PE
-15EB CANADIAN SYLLABICS CARRIER PEE
-15EC CANADIAN SYLLABICS CARRIER PI
-15ED CANADIAN SYLLABICS CARRIER PA
-15EE CANADIAN SYLLABICS CARRIER P
-15EF CANADIAN SYLLABICS CARRIER GU
-15F0 CANADIAN SYLLABICS CARRIER GO
-15F1 CANADIAN SYLLABICS CARRIER GE
-15F2 CANADIAN SYLLABICS CARRIER GEE
-15F3 CANADIAN SYLLABICS CARRIER GI
-15F4 CANADIAN SYLLABICS CARRIER GA
-15F5 CANADIAN SYLLABICS CARRIER KHU
-15F6 CANADIAN SYLLABICS CARRIER KHO
-15F7 CANADIAN SYLLABICS CARRIER KHE
-15F8 CANADIAN SYLLABICS CARRIER KHEE
-15F9 CANADIAN SYLLABICS CARRIER KHI
-15FA CANADIAN SYLLABICS CARRIER KHA
-15FB CANADIAN SYLLABICS CARRIER KKU
-15FC CANADIAN SYLLABICS CARRIER KKO
-15FD CANADIAN SYLLABICS CARRIER KKE
-15FE CANADIAN SYLLABICS CARRIER KKEE
-15FF CANADIAN SYLLABICS CARRIER KKI
-1600 CANADIAN SYLLABICS CARRIER KKA
-1601 CANADIAN SYLLABICS CARRIER KK
-1602 CANADIAN SYLLABICS CARRIER NU
-1603 CANADIAN SYLLABICS CARRIER NO
-1604 CANADIAN SYLLABICS CARRIER NE
-1605 CANADIAN SYLLABICS CARRIER NEE
-1606 CANADIAN SYLLABICS CARRIER NI
-1607 CANADIAN SYLLABICS CARRIER NA
-1608 CANADIAN SYLLABICS CARRIER MU
-1609 CANADIAN SYLLABICS CARRIER MO
-160A CANADIAN SYLLABICS CARRIER ME
-160B CANADIAN SYLLABICS CARRIER MEE
-160C CANADIAN SYLLABICS CARRIER MI
-160D CANADIAN SYLLABICS CARRIER MA
-160E CANADIAN SYLLABICS CARRIER YU
-160F CANADIAN SYLLABICS CARRIER YO
-1610 CANADIAN SYLLABICS CARRIER YE
-1611 CANADIAN SYLLABICS CARRIER YEE
-1612 CANADIAN SYLLABICS CARRIER YI
-1613 CANADIAN SYLLABICS CARRIER YA
-1614 CANADIAN SYLLABICS CARRIER JU
-1615 CANADIAN SYLLABICS SAYISI JU
-1616 CANADIAN SYLLABICS CARRIER JO
-1617 CANADIAN SYLLABICS CARRIER JE
-1618 CANADIAN SYLLABICS CARRIER JEE
-1619 CANADIAN SYLLABICS CARRIER JI
-161A CANADIAN SYLLABICS SAYISI JI
-161B CANADIAN SYLLABICS CARRIER JA
-161C CANADIAN SYLLABICS CARRIER JJU
-161D CANADIAN SYLLABICS CARRIER JJO
-161E CANADIAN SYLLABICS CARRIER JJE
-161F CANADIAN SYLLABICS CARRIER JJEE
-1620 CANADIAN SYLLABICS CARRIER JJI
-1621 CANADIAN SYLLABICS CARRIER JJA
-1622 CANADIAN SYLLABICS CARRIER LU
-1623 CANADIAN SYLLABICS CARRIER LO
-1624 CANADIAN SYLLABICS CARRIER LE
-1625 CANADIAN SYLLABICS CARRIER LEE
-1626 CANADIAN SYLLABICS CARRIER LI
-1627 CANADIAN SYLLABICS CARRIER LA
-1628 CANADIAN SYLLABICS CARRIER DLU
-1629 CANADIAN SYLLABICS CARRIER DLO
-162A CANADIAN SYLLABICS CARRIER DLE
-162B CANADIAN SYLLABICS CARRIER DLEE
-162C CANADIAN SYLLABICS CARRIER DLI
-162D CANADIAN SYLLABICS CARRIER DLA
-162E CANADIAN SYLLABICS CARRIER LHU
-162F CANADIAN SYLLABICS CARRIER LHO
-1630 CANADIAN SYLLABICS CARRIER LHE
-1631 CANADIAN SYLLABICS CARRIER LHEE
-1632 CANADIAN SYLLABICS CARRIER LHI
-1633 CANADIAN SYLLABICS CARRIER LHA
-1634 CANADIAN SYLLABICS CARRIER TLHU
-1635 CANADIAN SYLLABICS CARRIER TLHO
-1636 CANADIAN SYLLABICS CARRIER TLHE
-1637 CANADIAN SYLLABICS CARRIER TLHEE
-1638 CANADIAN SYLLABICS CARRIER TLHI
-1639 CANADIAN SYLLABICS CARRIER TLHA
-163A CANADIAN SYLLABICS CARRIER TLU
-163B CANADIAN SYLLABICS CARRIER TLO
-163C CANADIAN SYLLABICS CARRIER TLE
-163D CANADIAN SYLLABICS CARRIER TLEE
-163E CANADIAN SYLLABICS CARRIER TLI
-163F CANADIAN SYLLABICS CARRIER TLA
-1640 CANADIAN SYLLABICS CARRIER ZU
-1641 CANADIAN SYLLABICS CARRIER ZO
-1642 CANADIAN SYLLABICS CARRIER ZE
-1643 CANADIAN SYLLABICS CARRIER ZEE
-1644 CANADIAN SYLLABICS CARRIER ZI
-1645 CANADIAN SYLLABICS CARRIER ZA
-1646 CANADIAN SYLLABICS CARRIER Z
-1647 CANADIAN SYLLABICS CARRIER INITIAL Z
-1648 CANADIAN SYLLABICS CARRIER DZU
-1649 CANADIAN SYLLABICS CARRIER DZO
-164A CANADIAN SYLLABICS CARRIER DZE
-164B CANADIAN SYLLABICS CARRIER DZEE
-164C CANADIAN SYLLABICS CARRIER DZI
-164D CANADIAN SYLLABICS CARRIER DZA
-164E CANADIAN SYLLABICS CARRIER SU
-164F CANADIAN SYLLABICS CARRIER SO
-1650 CANADIAN SYLLABICS CARRIER SE
-1651 CANADIAN SYLLABICS CARRIER SEE
-1652 CANADIAN SYLLABICS CARRIER SI
-1653 CANADIAN SYLLABICS CARRIER SA
-1654 CANADIAN SYLLABICS CARRIER SHU
-1655 CANADIAN SYLLABICS CARRIER SHO
-1656 CANADIAN SYLLABICS CARRIER SHE
-1657 CANADIAN SYLLABICS CARRIER SHEE
-1658 CANADIAN SYLLABICS CARRIER SHI
-1659 CANADIAN SYLLABICS CARRIER SHA
-165A CANADIAN SYLLABICS CARRIER SH
-165B CANADIAN SYLLABICS CARRIER TSU
-165C CANADIAN SYLLABICS CARRIER TSO
-165D CANADIAN SYLLABICS CARRIER TSE
-165E CANADIAN SYLLABICS CARRIER TSEE
-165F CANADIAN SYLLABICS CARRIER TSI
-1660 CANADIAN SYLLABICS CARRIER TSA
-1661 CANADIAN SYLLABICS CARRIER CHU
-1662 CANADIAN SYLLABICS CARRIER CHO
-1663 CANADIAN SYLLABICS CARRIER CHE
-1664 CANADIAN SYLLABICS CARRIER CHEE
-1665 CANADIAN SYLLABICS CARRIER CHI
-1666 CANADIAN SYLLABICS CARRIER CHA
-1667 CANADIAN SYLLABICS CARRIER TTSU
-1668 CANADIAN SYLLABICS CARRIER TTSO
-1669 CANADIAN SYLLABICS CARRIER TTSE
-166A CANADIAN SYLLABICS CARRIER TTSEE
-166B CANADIAN SYLLABICS CARRIER TTSI
-166C CANADIAN SYLLABICS CARRIER TTSA
-166D CANADIAN SYLLABICS CHI SIGN
-166E CANADIAN SYLLABICS FULL STOP
-166F CANADIAN SYLLABICS QAI
-1670 CANADIAN SYLLABICS NGAI
-1671 CANADIAN SYLLABICS NNGI
-1672 CANADIAN SYLLABICS NNGII
-1673 CANADIAN SYLLABICS NNGO
-1674 CANADIAN SYLLABICS NNGOO
-1675 CANADIAN SYLLABICS NNGA
-1676 CANADIAN SYLLABICS NNGAA
-1680 OGHAM SPACE MARK
-1681 OGHAM LETTER BEITH
-1682 OGHAM LETTER LUIS
-1683 OGHAM LETTER FEARN
-1684 OGHAM LETTER SAIL
-1685 OGHAM LETTER NION
-1686 OGHAM LETTER UATH
-1687 OGHAM LETTER DAIR
-1688 OGHAM LETTER TINNE
-1689 OGHAM LETTER COLL
-168A OGHAM LETTER CEIRT
-168B OGHAM LETTER MUIN
-168C OGHAM LETTER GORT
-168D OGHAM LETTER NGEADAL
-168E OGHAM LETTER STRAIF
-168F OGHAM LETTER RUIS
-1690 OGHAM LETTER AILM
-1691 OGHAM LETTER ONN
-1692 OGHAM LETTER UR
-1693 OGHAM LETTER EADHADH
-1694 OGHAM LETTER IODHADH
-1695 OGHAM LETTER EABHADH
-1696 OGHAM LETTER OR
-1697 OGHAM LETTER UILLEANN
-1698 OGHAM LETTER IFIN
-1699 OGHAM LETTER EAMHANCHOLL
-169A OGHAM LETTER PEITH
-169B OGHAM FEATHER MARK
-169C OGHAM REVERSED FEATHER MARK
-16A0 RUNIC LETTER FEHU FEOH FE F
-16A1 RUNIC LETTER V
-16A2 RUNIC LETTER URUZ UR U
-16A3 RUNIC LETTER YR
-16A4 RUNIC LETTER Y
-16A5 RUNIC LETTER W
-16A6 RUNIC LETTER THURISAZ THURS THORN
-16A7 RUNIC LETTER ETH
-16A8 RUNIC LETTER ANSUZ A
-16A9 RUNIC LETTER OS O
-16AA RUNIC LETTER AC A
-16AB RUNIC LETTER AESC
-16AC RUNIC LETTER LONG-BRANCH-OSS O
-16AD RUNIC LETTER SHORT-TWIG-OSS O
-16AE RUNIC LETTER O
-16AF RUNIC LETTER OE
-16B0 RUNIC LETTER ON
-16B1 RUNIC LETTER RAIDO RAD REID R
-16B2 RUNIC LETTER KAUNA
-16B3 RUNIC LETTER CEN
-16B4 RUNIC LETTER KAUN K
-16B5 RUNIC LETTER G
-16B6 RUNIC LETTER ENG
-16B7 RUNIC LETTER GEBO GYFU G
-16B8 RUNIC LETTER GAR
-16B9 RUNIC LETTER WUNJO WYNN W
-16BA RUNIC LETTER HAGLAZ H
-16BB RUNIC LETTER HAEGL H
-16BC RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE RUNIC LETTER NAUDIZ NYD NAUD N
-16BF RUNIC LETTER SHORT-TWIG-NAUD N
-16C0 RUNIC LETTER DOTTED-N
-16C1 RUNIC LETTER ISAZ IS ISS I
-16C2 RUNIC LETTER E
-16C3 RUNIC LETTER JERAN J
-16C4 RUNIC LETTER GER
-16C5 RUNIC LETTER LONG-BRANCH-AR AE
-16C6 RUNIC LETTER SHORT-TWIG-AR A
-16C7 RUNIC LETTER IWAZ EOH
-16C8 RUNIC LETTER PERTHO PEORTH P
-16C9 RUNIC LETTER ALGIZ EOLHX
-16CA RUNIC LETTER SOWILO S
-16CB RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16CC RUNIC LETTER SHORT-TWIG-SOL S
-16CD RUNIC LETTER C
-16CE RUNIC LETTER Z
-16CF RUNIC LETTER TIWAZ TIR TYR T
-16D0 RUNIC LETTER SHORT-TWIG-TYR T
-16D1 RUNIC LETTER D
-16D2 RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3 RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4 RUNIC LETTER DOTTED-P
-16D5 RUNIC LETTER OPEN-P
-16D6 RUNIC LETTER EHWAZ EH E
-16D7 RUNIC LETTER MANNAZ MAN M
-16D8 RUNIC LETTER LONG-BRANCH-MADR M
-16D9 RUNIC LETTER SHORT-TWIG-MADR M
-16DA RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB RUNIC LETTER DOTTED-L
-16DC RUNIC LETTER INGWAZ
-16DD RUNIC LETTER ING
-16DE RUNIC LETTER DAGAZ DAEG D
-16DF RUNIC LETTER OTHALAN ETHEL O
-16E0 RUNIC LETTER EAR
-16E1 RUNIC LETTER IOR
-16E2 RUNIC LETTER CWEORTH
-16E3 RUNIC LETTER CALC
-16E4 RUNIC LETTER CEALC
-16E5 RUNIC LETTER STAN
-16E6 RUNIC LETTER LONG-BRANCH-YR
-16E7 RUNIC LETTER SHORT-TWIG-YR
-16E8 RUNIC LETTER ICELANDIC-YR
-16E9 RUNIC LETTER Q
-16EA RUNIC LETTER X
-16EB RUNIC SINGLE PUNCTUATION
-16EC RUNIC MULTIPLE PUNCTUATION
-16ED RUNIC CROSS PUNCTUATION
-16EE RUNIC ARLAUG SYMBOL
-16EF RUNIC TVIMADUR SYMBOL
-16F0 RUNIC BELGTHOR SYMBOL
-1700 TAGALOG LETTER A
-1701 TAGALOG LETTER I
-1702 TAGALOG LETTER U
-1703 TAGALOG LETTER KA
-1704 TAGALOG LETTER GA
-1705 TAGALOG LETTER NGA
-1706 TAGALOG LETTER TA
-1707 TAGALOG LETTER DA
-1708 TAGALOG LETTER NA
-1709 TAGALOG LETTER PA
-170A TAGALOG LETTER BA
-170B TAGALOG LETTER MA
-170C TAGALOG LETTER YA
-170E TAGALOG LETTER LA
-170F TAGALOG LETTER WA
-1710 TAGALOG LETTER SA
-1711 TAGALOG LETTER HA
-1712 TAGALOG VOWEL SIGN I
-1713 TAGALOG VOWEL SIGN U
-1714 TAGALOG SIGN VIRAMA
-1720 HANUNOO LETTER A
-1721 HANUNOO LETTER I
-1722 HANUNOO LETTER U
-1723 HANUNOO LETTER KA
-1724 HANUNOO LETTER GA
-1725 HANUNOO LETTER NGA
-1726 HANUNOO LETTER TA
-1727 HANUNOO LETTER DA
-1728 HANUNOO LETTER NA
-1729 HANUNOO LETTER PA
-172A HANUNOO LETTER BA
-172B HANUNOO LETTER MA
-172C HANUNOO LETTER YA
-172D HANUNOO LETTER RA
-172E HANUNOO LETTER LA
-172F HANUNOO LETTER WA
-1730 HANUNOO LETTER SA
-1731 HANUNOO LETTER HA
-1732 HANUNOO VOWEL SIGN I
-1733 HANUNOO VOWEL SIGN U
-1734 HANUNOO SIGN PAMUDPOD
-1735 PHILIPPINE SINGLE PUNCTUATION
-1736 PHILIPPINE DOUBLE PUNCTUATION
-1740 BUHID LETTER A
-1741 BUHID LETTER I
-1742 BUHID LETTER U
-1743 BUHID LETTER KA
-1744 BUHID LETTER GA
-1745 BUHID LETTER NGA
-1746 BUHID LETTER TA
-1747 BUHID LETTER DA
-1748 BUHID LETTER NA
-1749 BUHID LETTER PA
-174A BUHID LETTER BA
-174B BUHID LETTER MA
-174C BUHID LETTER YA
-174D BUHID LETTER RA
-174E BUHID LETTER LA
-174F BUHID LETTER WA
-1750 BUHID LETTER SA
-1751 BUHID LETTER HA
-1752 BUHID VOWEL SIGN I
-1753 BUHID VOWEL SIGN U
-1760 TAGBANWA LETTER A
-1761 TAGBANWA LETTER I
-1762 TAGBANWA LETTER U
-1763 TAGBANWA LETTER KA
-1764 TAGBANWA LETTER GA
-1765 TAGBANWA LETTER NGA
-1766 TAGBANWA LETTER TA
-1767 TAGBANWA LETTER DA
-1768 TAGBANWA LETTER NA
-1769 TAGBANWA LETTER PA
-176A TAGBANWA LETTER BA
-176B TAGBANWA LETTER MA
-176C TAGBANWA LETTER YA
-176E TAGBANWA LETTER LA
-176F TAGBANWA LETTER WA
-1770 TAGBANWA LETTER SA
-1772 TAGBANWA VOWEL SIGN I
-1773 TAGBANWA VOWEL SIGN U
-1780 KHMER LETTER KA
-1781 KHMER LETTER KHA
-1782 KHMER LETTER KO
-1783 KHMER LETTER KHO
-1784 KHMER LETTER NGO
-1785 KHMER LETTER CA
-1786 KHMER LETTER CHA
-1787 KHMER LETTER CO
-1788 KHMER LETTER CHO
-1789 KHMER LETTER NYO
-178A KHMER LETTER DA
-178B KHMER LETTER TTHA
-178C KHMER LETTER DO
-178D KHMER LETTER TTHO
-178E KHMER LETTER NNO
-178F KHMER LETTER TA
-1790 KHMER LETTER THA
-1791 KHMER LETTER TO
-1792 KHMER LETTER THO
-1793 KHMER LETTER NO
-1794 KHMER LETTER BA
-1795 KHMER LETTER PHA
-1796 KHMER LETTER PO
-1797 KHMER LETTER PHO
-1798 KHMER LETTER MO
-1799 KHMER LETTER YO
-179A KHMER LETTER RO
-179B KHMER LETTER LO
-179C KHMER LETTER VO
-179D KHMER LETTER SHA
-179E KHMER LETTER SSO
-179F KHMER LETTER SA
-17A0 KHMER LETTER HA
-17A1 KHMER LETTER LA
-17A2 KHMER LETTER QA
-17A3 KHMER INDEPENDENT VOWEL QAQ
-17A4 KHMER INDEPENDENT VOWEL QAA
-17A5 KHMER INDEPENDENT VOWEL QI
-17A6 KHMER INDEPENDENT VOWEL QII
-17A7 KHMER INDEPENDENT VOWEL QU
-17A8 KHMER INDEPENDENT VOWEL QUK
-17A9 KHMER INDEPENDENT VOWEL QUU
-17AA KHMER INDEPENDENT VOWEL QUUV
-17AB KHMER INDEPENDENT VOWEL RY
-17AC KHMER INDEPENDENT VOWEL RYY
-17AD KHMER INDEPENDENT VOWEL LY
-17AE KHMER INDEPENDENT VOWEL LYY
-17AF KHMER INDEPENDENT VOWEL QE
-17B0 KHMER INDEPENDENT VOWEL QAI
-17B1 KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2 KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3 KHMER INDEPENDENT VOWEL QAU
-17B4 KHMER VOWEL INHERENT AQ
-17B5 KHMER VOWEL INHERENT AA
-17B6 KHMER VOWEL SIGN AA
-17B7 KHMER VOWEL SIGN I
-17B8 KHMER VOWEL SIGN II
-17B9 KHMER VOWEL SIGN Y
-17BA KHMER VOWEL SIGN YY
-17BB KHMER VOWEL SIGN U
-17BC KHMER VOWEL SIGN UU
-17BD KHMER VOWEL SIGN UA
-17BE KHMER VOWEL SIGN OE
-17BF KHMER VOWEL SIGN YA
-17C0 KHMER VOWEL SIGN IE
-17C1 KHMER VOWEL SIGN E
-17C2 KHMER VOWEL SIGN AE
-17C3 KHMER VOWEL SIGN AI
-17C4 KHMER VOWEL SIGN OO
-17C5 KHMER VOWEL SIGN AU
-17C6 KHMER SIGN NIKAHIT
-17C7 KHMER SIGN REAHMUK
-17C8 KHMER SIGN YUUKALEAPINTU
-17C9 KHMER SIGN MUUSIKATOAN
-17CA KHMER SIGN TRIISAP
-17CB KHMER SIGN BANTOC
-17CC KHMER SIGN ROBAT
-17CD KHMER SIGN TOANDAKHIAT
-17CE KHMER SIGN KAKABAT
-17CF KHMER SIGN AHSDA
-17D0 KHMER SIGN SAMYOK SANNYA
-17D1 KHMER SIGN VIRIAM
-17D2 KHMER SIGN COENG
-17D3 KHMER SIGN BATHAMASAT
-17D4 KHMER SIGN KHAN
-17D5 KHMER SIGN BARIYOOSAN
-17D6 KHMER SIGN CAMNUC PII KUUH
-17D7 KHMER SIGN LEK TOO
-17D8 KHMER SIGN BEYYAL
-17D9 KHMER SIGN PHNAEK MUAN
-17DA KHMER SIGN KOOMUUT
-17DB KHMER CURRENCY SYMBOL RIEL
-17DC KHMER SIGN AVAKRAHASANYA
-17E0 KHMER DIGIT ZERO
-17E1 KHMER DIGIT ONE
-17E2 KHMER DIGIT TWO
-17E3 KHMER DIGIT THREE
-17E4 KHMER DIGIT FOUR
-17E5 KHMER DIGIT FIVE
-17E6 KHMER DIGIT SIX
-17E7 KHMER DIGIT SEVEN
-17E8 KHMER DIGIT EIGHT
-17E9 KHMER DIGIT NINE
-1800 MONGOLIAN BIRGA
-1801 MONGOLIAN ELLIPSIS
-1802 MONGOLIAN COMMA
-1803 MONGOLIAN FULL STOP
-1804 MONGOLIAN COLON
-1805 MONGOLIAN FOUR DOTS
-1806 MONGOLIAN TODO SOFT HYPHEN
-1807 MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808 MONGOLIAN MANCHU COMMA
-1809 MONGOLIAN MANCHU FULL STOP
-180A MONGOLIAN NIRUGU
-180B MONGOLIAN FREE VARIATION SELECTOR ONE
-180C MONGOLIAN FREE VARIATION SELECTOR TWO
-180D MONGOLIAN FREE VARIATION SELECTOR THREE
-180E MONGOLIAN VOWEL SEPARATOR
-1810 MONGOLIAN DIGIT ZERO
-1811 MONGOLIAN DIGIT ONE
-1812 MONGOLIAN DIGIT TWO
-1813 MONGOLIAN DIGIT THREE
-1814 MONGOLIAN DIGIT FOUR
-1815 MONGOLIAN DIGIT FIVE
-1816 MONGOLIAN DIGIT SIX
-1817 MONGOLIAN DIGIT SEVEN
-1818 MONGOLIAN DIGIT EIGHT
-1819 MONGOLIAN DIGIT NINE
-1820 MONGOLIAN LETTER A
-1821 MONGOLIAN LETTER E
-1822 MONGOLIAN LETTER I
-1823 MONGOLIAN LETTER O
-1824 MONGOLIAN LETTER U
-1825 MONGOLIAN LETTER OE
-1826 MONGOLIAN LETTER UE
-1827 MONGOLIAN LETTER EE
-1828 MONGOLIAN LETTER NA
-1829 MONGOLIAN LETTER ANG
-182A MONGOLIAN LETTER BA
-182B MONGOLIAN LETTER PA
-182C MONGOLIAN LETTER QA
-182D MONGOLIAN LETTER GA
-182E MONGOLIAN LETTER MA
-182F MONGOLIAN LETTER LA
-1830 MONGOLIAN LETTER SA
-1831 MONGOLIAN LETTER SHA
-1832 MONGOLIAN LETTER TA
-1833 MONGOLIAN LETTER DA
-1834 MONGOLIAN LETTER CHA
-1835 MONGOLIAN LETTER JA
-1836 MONGOLIAN LETTER YA
-1837 MONGOLIAN LETTER RA
-1838 MONGOLIAN LETTER WA
-1839 MONGOLIAN LETTER FA
-183A MONGOLIAN LETTER KA
-183B MONGOLIAN LETTER KHA
-183C MONGOLIAN LETTER TSA
-183D MONGOLIAN LETTER ZA
-183E MONGOLIAN LETTER HAA
-183F MONGOLIAN LETTER ZRA
-1840 MONGOLIAN LETTER LHA
-1841 MONGOLIAN LETTER ZHI
-1842 MONGOLIAN LETTER CHI
-1843 MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844 MONGOLIAN LETTER TODO E
-1845 MONGOLIAN LETTER TODO I
-1846 MONGOLIAN LETTER TODO O
-1847 MONGOLIAN LETTER TODO U
-1848 MONGOLIAN LETTER TODO OE
-1849 MONGOLIAN LETTER TODO UE
-184A MONGOLIAN LETTER TODO ANG
-184B MONGOLIAN LETTER TODO BA
-184C MONGOLIAN LETTER TODO PA
-184D MONGOLIAN LETTER TODO QA
-184E MONGOLIAN LETTER TODO GA
-184F MONGOLIAN LETTER TODO MA
-1850 MONGOLIAN LETTER TODO TA
-1851 MONGOLIAN LETTER TODO DA
-1852 MONGOLIAN LETTER TODO CHA
-1853 MONGOLIAN LETTER TODO JA
-1854 MONGOLIAN LETTER TODO TSA
-1855 MONGOLIAN LETTER TODO YA
-1856 MONGOLIAN LETTER TODO WA
-1857 MONGOLIAN LETTER TODO KA
-1858 MONGOLIAN LETTER TODO GAA
-1859 MONGOLIAN LETTER TODO HAA
-185A MONGOLIAN LETTER TODO JIA
-185B MONGOLIAN LETTER TODO NIA
-185C MONGOLIAN LETTER TODO DZA
-185D MONGOLIAN LETTER SIBE E
-185E MONGOLIAN LETTER SIBE I
-185F MONGOLIAN LETTER SIBE IY
-1860 MONGOLIAN LETTER SIBE UE
-1861 MONGOLIAN LETTER SIBE U
-1862 MONGOLIAN LETTER SIBE ANG
-1863 MONGOLIAN LETTER SIBE KA
-1864 MONGOLIAN LETTER SIBE GA
-1865 MONGOLIAN LETTER SIBE HA
-1866 MONGOLIAN LETTER SIBE PA
-1867 MONGOLIAN LETTER SIBE SHA
-1868 MONGOLIAN LETTER SIBE TA
-1869 MONGOLIAN LETTER SIBE DA
-186A MONGOLIAN LETTER SIBE JA
-186B MONGOLIAN LETTER SIBE FA
-186C MONGOLIAN LETTER SIBE GAA
-186D MONGOLIAN LETTER SIBE HAA
-186E MONGOLIAN LETTER SIBE TSA
-186F MONGOLIAN LETTER SIBE ZA
-1870 MONGOLIAN LETTER SIBE RAA
-1871 MONGOLIAN LETTER SIBE CHA
-1872 MONGOLIAN LETTER SIBE ZHA
-1873 MONGOLIAN LETTER MANCHU I
-1874 MONGOLIAN LETTER MANCHU KA
-1875 MONGOLIAN LETTER MANCHU RA
-1876 MONGOLIAN LETTER MANCHU FA
-1877 MONGOLIAN LETTER MANCHU ZHA
-1880 MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881 MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882 MONGOLIAN LETTER ALI GALI DAMARU
-1883 MONGOLIAN LETTER ALI GALI UBADAMA
-1884 MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885 MONGOLIAN LETTER ALI GALI BALUDA
-1886 MONGOLIAN LETTER ALI GALI THREE BALUDA
-1887 MONGOLIAN LETTER ALI GALI A
-1888 MONGOLIAN LETTER ALI GALI I
-1889 MONGOLIAN LETTER ALI GALI KA
-188A MONGOLIAN LETTER ALI GALI NGA
-188B MONGOLIAN LETTER ALI GALI CA
-188C MONGOLIAN LETTER ALI GALI TTA
-188D MONGOLIAN LETTER ALI GALI TTHA
-188E MONGOLIAN LETTER ALI GALI DDA
-188F MONGOLIAN LETTER ALI GALI NNA
-1890 MONGOLIAN LETTER ALI GALI TA
-1891 MONGOLIAN LETTER ALI GALI DA
-1892 MONGOLIAN LETTER ALI GALI PA
-1893 MONGOLIAN LETTER ALI GALI PHA
-1894 MONGOLIAN LETTER ALI GALI SSA
-1895 MONGOLIAN LETTER ALI GALI ZHA
-1896 MONGOLIAN LETTER ALI GALI ZA
-1897 MONGOLIAN LETTER ALI GALI AH
-1898 MONGOLIAN LETTER TODO ALI GALI TA
-1899 MONGOLIAN LETTER TODO ALI GALI ZHA
-189A MONGOLIAN LETTER MANCHU ALI GALI GHA
-189B MONGOLIAN LETTER MANCHU ALI GALI NGA
-189C MONGOLIAN LETTER MANCHU ALI GALI CA
-189D MONGOLIAN LETTER MANCHU ALI GALI JHA
-189E MONGOLIAN LETTER MANCHU ALI GALI TTA
-189F MONGOLIAN LETTER MANCHU ALI GALI DDHA
-18A0 MONGOLIAN LETTER MANCHU ALI GALI TA
-18A1 MONGOLIAN LETTER MANCHU ALI GALI DHA
-18A2 MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A3 MONGOLIAN LETTER MANCHU ALI GALI CYA
-18A4 MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5 MONGOLIAN LETTER MANCHU ALI GALI ZA
-18A6 MONGOLIAN LETTER ALI GALI HALF U
-18A7 MONGOLIAN LETTER ALI GALI HALF YA
-18A8 MONGOLIAN LETTER MANCHU ALI GALI BHA
-18A9 MONGOLIAN LETTER ALI GALI DAGALGA
-1E00 LATIN CAPITAL LETTER A WITH RING BELOW
-1E01 LATIN SMALL LETTER A WITH RING BELOW
-1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E03 LATIN SMALL LETTER B WITH DOT ABOVE
-1E04 LATIN CAPITAL LETTER B WITH DOT BELOW
-1E05 LATIN SMALL LETTER B WITH DOT BELOW
-1E06 LATIN CAPITAL LETTER B WITH LINE BELOW
-1E07 LATIN SMALL LETTER B WITH LINE BELOW
-1E08 LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-1E09 LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E0B LATIN SMALL LETTER D WITH DOT ABOVE
-1E0C LATIN CAPITAL LETTER D WITH DOT BELOW
-1E0D LATIN SMALL LETTER D WITH DOT BELOW
-1E0E LATIN CAPITAL LETTER D WITH LINE BELOW
-1E0F LATIN SMALL LETTER D WITH LINE BELOW
-1E10 LATIN CAPITAL LETTER D WITH CEDILLA
-1E11 LATIN SMALL LETTER D WITH CEDILLA
-1E12 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E13 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E14 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1E15 LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E16 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E17 LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E18 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E19 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E1A LATIN CAPITAL LETTER E WITH TILDE BELOW
-1E1B LATIN SMALL LETTER E WITH TILDE BELOW
-1E1C LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-1E1D LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE
-1E1F LATIN SMALL LETTER F WITH DOT ABOVE
-1E20 LATIN CAPITAL LETTER G WITH MACRON
-1E21 LATIN SMALL LETTER G WITH MACRON
-1E22 LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E23 LATIN SMALL LETTER H WITH DOT ABOVE
-1E24 LATIN CAPITAL LETTER H WITH DOT BELOW
-1E25 LATIN SMALL LETTER H WITH DOT BELOW
-1E26 LATIN CAPITAL LETTER H WITH DIAERESIS
-1E27 LATIN SMALL LETTER H WITH DIAERESIS
-1E28 LATIN CAPITAL LETTER H WITH CEDILLA
-1E29 LATIN SMALL LETTER H WITH CEDILLA
-1E2A LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E2B LATIN SMALL LETTER H WITH BREVE BELOW
-1E2C LATIN CAPITAL LETTER I WITH TILDE BELOW
-1E2D LATIN SMALL LETTER I WITH TILDE BELOW
-1E2E LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-1E2F LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E30 LATIN CAPITAL LETTER K WITH ACUTE
-1E31 LATIN SMALL LETTER K WITH ACUTE
-1E32 LATIN CAPITAL LETTER K WITH DOT BELOW
-1E33 LATIN SMALL LETTER K WITH DOT BELOW
-1E34 LATIN CAPITAL LETTER K WITH LINE BELOW
-1E35 LATIN SMALL LETTER K WITH LINE BELOW
-1E36 LATIN CAPITAL LETTER L WITH DOT BELOW
-1E37 LATIN SMALL LETTER L WITH DOT BELOW
-1E38 LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E39 LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E3A LATIN CAPITAL LETTER L WITH LINE BELOW
-1E3B LATIN SMALL LETTER L WITH LINE BELOW
-1E3C LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3D LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3E LATIN CAPITAL LETTER M WITH ACUTE
-1E3F LATIN SMALL LETTER M WITH ACUTE
-1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E41 LATIN SMALL LETTER M WITH DOT ABOVE
-1E42 LATIN CAPITAL LETTER M WITH DOT BELOW
-1E43 LATIN SMALL LETTER M WITH DOT BELOW
-1E44 LATIN CAPITAL LETTER N WITH DOT ABOVE
-1E45 LATIN SMALL LETTER N WITH DOT ABOVE
-1E46 LATIN CAPITAL LETTER N WITH DOT BELOW
-1E47 LATIN SMALL LETTER N WITH DOT BELOW
-1E48 LATIN CAPITAL LETTER N WITH LINE BELOW
-1E49 LATIN SMALL LETTER N WITH LINE BELOW
-1E4A LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E4B LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4C LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4D LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4E LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1E4F LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E50 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1E51 LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E52 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E53 LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E54 LATIN CAPITAL LETTER P WITH ACUTE
-1E55 LATIN SMALL LETTER P WITH ACUTE
-1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE
-1E57 LATIN SMALL LETTER P WITH DOT ABOVE
-1E58 LATIN CAPITAL LETTER R WITH DOT ABOVE
-1E59 LATIN SMALL LETTER R WITH DOT ABOVE
-1E5A LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5B LATIN SMALL LETTER R WITH DOT BELOW
-1E5C LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5D LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5E LATIN CAPITAL LETTER R WITH LINE BELOW
-1E5F LATIN SMALL LETTER R WITH LINE BELOW
-1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE
-1E61 LATIN SMALL LETTER S WITH DOT ABOVE
-1E62 LATIN CAPITAL LETTER S WITH DOT BELOW
-1E63 LATIN SMALL LETTER S WITH DOT BELOW
-1E64 LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-1E65 LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E66 LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E67 LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E68 LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E69 LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE
-1E6B LATIN SMALL LETTER T WITH DOT ABOVE
-1E6C LATIN CAPITAL LETTER T WITH DOT BELOW
-1E6D LATIN SMALL LETTER T WITH DOT BELOW
-1E6E LATIN CAPITAL LETTER T WITH LINE BELOW
-1E6F LATIN SMALL LETTER T WITH LINE BELOW
-1E70 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E71 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E72 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E73 LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E74 LATIN CAPITAL LETTER U WITH TILDE BELOW
-1E75 LATIN SMALL LETTER U WITH TILDE BELOW
-1E76 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E77 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E78 LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-1E79 LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E7A LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1E7B LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7C LATIN CAPITAL LETTER V WITH TILDE
-1E7D LATIN SMALL LETTER V WITH TILDE
-1E7E LATIN CAPITAL LETTER V WITH DOT BELOW
-1E7F LATIN SMALL LETTER V WITH DOT BELOW
-1E80 LATIN CAPITAL LETTER W WITH GRAVE
-1E81 LATIN SMALL LETTER W WITH GRAVE
-1E82 LATIN CAPITAL LETTER W WITH ACUTE
-1E83 LATIN SMALL LETTER W WITH ACUTE
-1E84 LATIN CAPITAL LETTER W WITH DIAERESIS
-1E85 LATIN SMALL LETTER W WITH DIAERESIS
-1E86 LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E87 LATIN SMALL LETTER W WITH DOT ABOVE
-1E88 LATIN CAPITAL LETTER W WITH DOT BELOW
-1E89 LATIN SMALL LETTER W WITH DOT BELOW
-1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE
-1E8B LATIN SMALL LETTER X WITH DOT ABOVE
-1E8C LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8D LATIN SMALL LETTER X WITH DIAERESIS
-1E8E LATIN CAPITAL LETTER Y WITH DOT ABOVE
-1E8F LATIN SMALL LETTER Y WITH DOT ABOVE
-1E90 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-1E91 LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E92 LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E93 LATIN SMALL LETTER Z WITH DOT BELOW
-1E94 LATIN CAPITAL LETTER Z WITH LINE BELOW
-1E95 LATIN SMALL LETTER Z WITH LINE BELOW
-1E96 LATIN SMALL LETTER H WITH LINE BELOW
-1E97 LATIN SMALL LETTER T WITH DIAERESIS
-1E98 LATIN SMALL LETTER W WITH RING ABOVE
-1E99 LATIN SMALL LETTER Y WITH RING ABOVE
-1E9A LATIN SMALL LETTER A WITH RIGHT HALF RING
-1E9B LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW
-1EA1 LATIN SMALL LETTER A WITH DOT BELOW
-1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW
-1EB9 LATIN SMALL LETTER E WITH DOT BELOW
-1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EBB LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBC LATIN CAPITAL LETTER E WITH TILDE
-1EBD LATIN SMALL LETTER E WITH TILDE
-1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE
-1ECA LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECB LATIN SMALL LETTER I WITH DOT BELOW
-1ECC LATIN CAPITAL LETTER O WITH DOT BELOW
-1ECD LATIN SMALL LETTER O WITH DOT BELOW
-1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1ECF LATIN SMALL LETTER O WITH HOOK ABOVE
-1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW
-1EE5 LATIN SMALL LETTER U WITH DOT BELOW
-1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EEF LATIN SMALL LETTER U WITH HORN AND TILDE
-1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF2 LATIN CAPITAL LETTER Y WITH GRAVE
-1EF3 LATIN SMALL LETTER Y WITH GRAVE
-1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW
-1EF5 LATIN SMALL LETTER Y WITH DOT BELOW
-1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF8 LATIN CAPITAL LETTER Y WITH TILDE
-1EF9 LATIN SMALL LETTER Y WITH TILDE
-1F00 GREEK SMALL LETTER ALPHA WITH PSILI
-1F01 GREEK SMALL LETTER ALPHA WITH DASIA
-1F02 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F03 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F04 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F05 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F06 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F07 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F08 GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F09 GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F0A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F0B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F0C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F0D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F0E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F10 GREEK SMALL LETTER EPSILON WITH PSILI
-1F11 GREEK SMALL LETTER EPSILON WITH DASIA
-1F12 GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F13 GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F14 GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F15 GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F18 GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F19 GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F1A GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F1B GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-1F1C GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F1D GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F20 GREEK SMALL LETTER ETA WITH PSILI
-1F21 GREEK SMALL LETTER ETA WITH DASIA
-1F22 GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F23 GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F24 GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F25 GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F26 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F27 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F28 GREEK CAPITAL LETTER ETA WITH PSILI
-1F29 GREEK CAPITAL LETTER ETA WITH DASIA
-1F2A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F2B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F2C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F2D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F2E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F30 GREEK SMALL LETTER IOTA WITH PSILI
-1F31 GREEK SMALL LETTER IOTA WITH DASIA
-1F32 GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F33 GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F34 GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F35 GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F36 GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F37 GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F38 GREEK CAPITAL LETTER IOTA WITH PSILI
-1F39 GREEK CAPITAL LETTER IOTA WITH DASIA
-1F3A GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F3B GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F3C GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F3D GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F3E GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3F GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F40 GREEK SMALL LETTER OMICRON WITH PSILI
-1F41 GREEK SMALL LETTER OMICRON WITH DASIA
-1F42 GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F43 GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F44 GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F45 GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F48 GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F49 GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F4A GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F4B GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-1F4C GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F4D GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F50 GREEK SMALL LETTER UPSILON WITH PSILI
-1F51 GREEK SMALL LETTER UPSILON WITH DASIA
-1F52 GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F53 GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F54 GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F55 GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F56 GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F57 GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F59 GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5B GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5D GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5F GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F60 GREEK SMALL LETTER OMEGA WITH PSILI
-1F61 GREEK SMALL LETTER OMEGA WITH DASIA
-1F62 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F63 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F64 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F65 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F66 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F67 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F68 GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F69 GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F6A GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1F6B GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1F6C GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1F6D GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1F6E GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6F GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F70 GREEK SMALL LETTER ALPHA WITH VARIA
-1F71 GREEK SMALL LETTER ALPHA WITH OXIA
-1F72 GREEK SMALL LETTER EPSILON WITH VARIA
-1F73 GREEK SMALL LETTER EPSILON WITH OXIA
-1F74 GREEK SMALL LETTER ETA WITH VARIA
-1F75 GREEK SMALL LETTER ETA WITH OXIA
-1F76 GREEK SMALL LETTER IOTA WITH VARIA
-1F77 GREEK SMALL LETTER IOTA WITH OXIA
-1F78 GREEK SMALL LETTER OMICRON WITH VARIA
-1F79 GREEK SMALL LETTER OMICRON WITH OXIA
-1F7A GREEK SMALL LETTER UPSILON WITH VARIA
-1F7B GREEK SMALL LETTER UPSILON WITH OXIA
-1F7C GREEK SMALL LETTER OMEGA WITH VARIA
-1F7D GREEK SMALL LETTER OMEGA WITH OXIA
-1F80 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F81 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F82 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F83 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F84 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F85 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F86 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F87 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F88 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F89 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-1F8A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F8B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F8C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F8D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F8E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F8F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F90 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F91 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F92 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F93 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F94 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F95 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F96 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F97 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-1F9A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F9B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F9C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F9D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F9E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F9F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FA3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FA4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FA5 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FA6 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FA7 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FA8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1FA9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-1FAA GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1FAB GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1FAC GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1FAD GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1FAE GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FAF GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FB0 GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB1 GREEK SMALL LETTER ALPHA WITH MACRON
-1FB2 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB3 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FB4 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB6 GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB8 GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB9 GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FBA GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FBC GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-1FBD GREEK KORONIS
-1FBE GREEK PROSGEGRAMMENI
-1FBF GREEK PSILI
-1FC0 GREEK PERISPOMENI
-1FC1 GREEK DIALYTIKA AND PERISPOMENI
-1FC2 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC3 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FC4 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC6 GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC8 GREEK CAPITAL LETTER EPSILON WITH VARIA
-1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA
-1FCA GREEK CAPITAL LETTER ETA WITH VARIA
-1FCB GREEK CAPITAL LETTER ETA WITH OXIA
-1FCC GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-1FCD GREEK PSILI AND VARIA
-1FCE GREEK PSILI AND OXIA
-1FCF GREEK PSILI AND PERISPOMENI
-1FD0 GREEK SMALL LETTER IOTA WITH VRACHY
-1FD1 GREEK SMALL LETTER IOTA WITH MACRON
-1FD2 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD6 GREEK SMALL LETTER IOTA WITH PERISPOMENI
-1FD7 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD8 GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD9 GREEK CAPITAL LETTER IOTA WITH MACRON
-1FDA GREEK CAPITAL LETTER IOTA WITH VARIA
-1FDB GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDD GREEK DASIA AND VARIA
-1FDE GREEK DASIA AND OXIA
-1FDF GREEK DASIA AND PERISPOMENI
-1FE0 GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE1 GREEK SMALL LETTER UPSILON WITH MACRON
-1FE2 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE4 GREEK SMALL LETTER RHO WITH PSILI
-1FE5 GREEK SMALL LETTER RHO WITH DASIA
-1FE6 GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-1FE7 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE8 GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE9 GREEK CAPITAL LETTER UPSILON WITH MACRON
-1FEA GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA
-1FEC GREEK CAPITAL LETTER RHO WITH DASIA
-1FED GREEK DIALYTIKA AND VARIA
-1FEE GREEK DIALYTIKA AND OXIA
-1FEF GREEK VARIA
-1FF2 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF3 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FF4 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF6 GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF8 GREEK CAPITAL LETTER OMICRON WITH VARIA
-1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA
-1FFA GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FFC GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-1FFD GREEK OXIA
-1FFE GREEK DASIA
-2000 EN QUAD
-2001 EM QUAD
-2002 EN SPACE
-2003 EM SPACE
-2004 THREE-PER-EM SPACE
-2005 FOUR-PER-EM SPACE
-2006 SIX-PER-EM SPACE
-2007 FIGURE SPACE
-2008 PUNCTUATION SPACE
-2009 THIN SPACE
-200A HAIR SPACE
-200B ZERO WIDTH SPACE
-200C ZERO WIDTH NON-JOINER
-200D ZERO WIDTH JOINER
-200E LEFT-TO-RIGHT MARK
-200F RIGHT-TO-LEFT MARK
-2010 HYPHEN
-2011 NON-BREAKING HYPHEN
-2012 FIGURE DASH
-2013 EN DASH
-2014 EM DASH
-2015 HORIZONTAL BAR
-2016 DOUBLE VERTICAL LINE
-2017 DOUBLE LOW LINE
-2018 LEFT SINGLE QUOTATION MARK
-2019 RIGHT SINGLE QUOTATION MARK
-201A SINGLE LOW-9 QUOTATION MARK
-201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C LEFT DOUBLE QUOTATION MARK
-201D RIGHT DOUBLE QUOTATION MARK
-201E DOUBLE LOW-9 QUOTATION MARK
-201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020 DAGGER
-2021 DOUBLE DAGGER
-2022 BULLET
-2023 TRIANGULAR BULLET
-2024 ONE DOT LEADER
-2025 TWO DOT LEADER
-2026 HORIZONTAL ELLIPSIS
-2027 HYPHENATION POINT
-2028 LINE SEPARATOR
-2029 PARAGRAPH SEPARATOR
-202A LEFT-TO-RIGHT EMBEDDING
-202B RIGHT-TO-LEFT EMBEDDING
-202C POP DIRECTIONAL FORMATTING
-202D LEFT-TO-RIGHT OVERRIDE
-202E RIGHT-TO-LEFT OVERRIDE
-202F NARROW NO-BREAK SPACE
-2030 PER MILLE SIGN
-2031 PER TEN THOUSAND SIGN
-2032 PRIME
-2033 DOUBLE PRIME
-2034 TRIPLE PRIME
-2035 REVERSED PRIME
-2036 REVERSED DOUBLE PRIME
-2037 REVERSED TRIPLE PRIME
-2038 CARET
-2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B REFERENCE MARK
-203C DOUBLE EXCLAMATION MARK
-203D INTERROBANG
-203E OVERLINE
-203F UNDERTIE
-2040 CHARACTER TIE
-2041 CARET INSERTION POINT
-2042 ASTERISM
-2043 HYPHEN BULLET
-2044 FRACTION SLASH
-2045 LEFT SQUARE BRACKET WITH QUILL
-2046 RIGHT SQUARE BRACKET WITH QUILL
-2047 DOUBLE QUESTION MARK
-2048 QUESTION EXCLAMATION MARK
-2049 EXCLAMATION QUESTION MARK
-204A TIRONIAN SIGN ET
-204B REVERSED PILCROW SIGN
-204C BLACK LEFTWARDS BULLET
-204D BLACK RIGHTWARDS BULLET
-204E LOW ASTERISK
-204F REVERSED SEMICOLON
-2050 CLOSE UP
-2051 TWO ASTERISKS ALIGNED VERTICALLY
-2052 COMMERCIAL MINUS SIGN
-2057 QUADRUPLE PRIME
-205F MEDIUM MATHEMATICAL SPACE
-2060 WORD JOINER
-2061 FUNCTION APPLICATION
-2062 INVISIBLE TIMES
-2063 INVISIBLE SEPARATOR
-206A INHIBIT SYMMETRIC SWAPPING
-206B ACTIVATE SYMMETRIC SWAPPING
-206C INHIBIT ARABIC FORM SHAPING
-206D ACTIVATE ARABIC FORM SHAPING
-206E NATIONAL DIGIT SHAPES
-206F NOMINAL DIGIT SHAPES
-2070 SUPERSCRIPT ZERO
-2071 SUPERSCRIPT LATIN SMALL LETTER I
-2074 SUPERSCRIPT FOUR
-2075 SUPERSCRIPT FIVE
-2076 SUPERSCRIPT SIX
-2077 SUPERSCRIPT SEVEN
-2078 SUPERSCRIPT EIGHT
-2079 SUPERSCRIPT NINE
-207A SUPERSCRIPT PLUS SIGN
-207B SUPERSCRIPT MINUS
-207C SUPERSCRIPT EQUALS SIGN
-207D SUPERSCRIPT LEFT PARENTHESIS
-207E SUPERSCRIPT RIGHT PARENTHESIS
-207F SUPERSCRIPT LATIN SMALL LETTER N
-2080 SUBSCRIPT ZERO
-2081 SUBSCRIPT ONE
-2082 SUBSCRIPT TWO
-2083 SUBSCRIPT THREE
-2084 SUBSCRIPT FOUR
-2085 SUBSCRIPT FIVE
-2086 SUBSCRIPT SIX
-2087 SUBSCRIPT SEVEN
-2088 SUBSCRIPT EIGHT
-2089 SUBSCRIPT NINE
-208A SUBSCRIPT PLUS SIGN
-208B SUBSCRIPT MINUS
-208C SUBSCRIPT EQUALS SIGN
-208D SUBSCRIPT LEFT PARENTHESIS
-208E SUBSCRIPT RIGHT PARENTHESIS
-20A0 EURO-CURRENCY SIGN
-20A1 COLON SIGN
-20A2 CRUZEIRO SIGN
-20A3 FRENCH FRANC SIGN
-20A4 LIRA SIGN
-20A5 MILL SIGN
-20A6 NAIRA SIGN
-20A7 PESETA SIGN
-20A8 RUPEE SIGN
-20A9 WON SIGN
-20AA NEW SHEQEL SIGN
-20AB DONG SIGN
-20AC EURO SIGN
-20AD KIP SIGN
-20AE TUGRIK SIGN
-20AF DRACHMA SIGN
-20B0 GERMAN PENNY SIGN
-20B1 PESO SIGN
-20D0 COMBINING LEFT HARPOON ABOVE
-20D1 COMBINING RIGHT HARPOON ABOVE
-20D2 COMBINING LONG VERTICAL LINE OVERLAY
-20D3 COMBINING SHORT VERTICAL LINE OVERLAY
-20D4 COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5 COMBINING CLOCKWISE ARROW ABOVE
-20D6 COMBINING LEFT ARROW ABOVE
-20D7 COMBINING RIGHT ARROW ABOVE
-20D8 COMBINING RING OVERLAY
-20D9 COMBINING CLOCKWISE RING OVERLAY
-20DA COMBINING ANTICLOCKWISE RING OVERLAY
-20DB COMBINING THREE DOTS ABOVE
-20DC COMBINING FOUR DOTS ABOVE
-20DD COMBINING ENCLOSING CIRCLE
-20DE COMBINING ENCLOSING SQUARE
-20DF COMBINING ENCLOSING DIAMOND
-20E0 COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1 COMBINING LEFT RIGHT ARROW ABOVE
-20E2 COMBINING ENCLOSING SCREEN
-20E3 COMBINING ENCLOSING KEYCAP
-20E4 COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5 COMBINING REVERSE SOLIDUS OVERLAY
-20E6 COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7 COMBINING ANNUITY SYMBOL
-20E8 COMBINING TRIPLE UNDERDOT
-20E9 COMBINING WIDE BRIDGE ABOVE
-20EA COMBINING LEFTWARDS ARROW OVERLAY
-2100 ACCOUNT OF
-2101 ADDRESSED TO THE SUBJECT
-2102 DOUBLE-STRUCK CAPITAL C
-2103 DEGREE CELSIUS
-2104 CENTRE LINE SYMBOL
-2105 CARE OF
-2106 CADA UNA
-2107 EULER CONSTANT
-2108 SCRUPLE
-2109 DEGREE FAHRENHEIT
-210A SCRIPT SMALL G
-210B SCRIPT CAPITAL H
-210C BLACK-LETTER CAPITAL H
-210D DOUBLE-STRUCK CAPITAL H
-210E PLANCK CONSTANT
-210F PLANCK CONSTANT OVER TWO PI
-2110 SCRIPT CAPITAL I
-2111 BLACK-LETTER CAPITAL I
-2112 SCRIPT CAPITAL L
-2113 SCRIPT SMALL L
-2114 L B BAR SYMBOL
-2115 DOUBLE-STRUCK CAPITAL N
-2116 NUMERO SIGN
-2117 SOUND RECORDING COPYRIGHT
-2118 SCRIPT CAPITAL P
-2119 DOUBLE-STRUCK CAPITAL P
-211A DOUBLE-STRUCK CAPITAL Q
-211B SCRIPT CAPITAL R
-211C BLACK-LETTER CAPITAL R
-211D DOUBLE-STRUCK CAPITAL R
-211E PRESCRIPTION TAKE
-211F RESPONSE
-2120 SERVICE MARK
-2121 TELEPHONE SIGN
-2122 TRADE MARK SIGN
-2123 VERSICLE
-2124 DOUBLE-STRUCK CAPITAL Z
-2125 OUNCE SIGN
-2126 OHM SIGN
-2127 INVERTED OHM SIGN
-2128 BLACK-LETTER CAPITAL Z
-2129 TURNED GREEK SMALL LETTER IOTA
-212A KELVIN SIGN
-212B ANGSTROM SIGN
-212C SCRIPT CAPITAL B
-212D BLACK-LETTER CAPITAL C
-212E ESTIMATED SYMBOL
-212F SCRIPT SMALL E
-2130 SCRIPT CAPITAL E
-2131 SCRIPT CAPITAL F
-2132 TURNED CAPITAL F
-2133 SCRIPT CAPITAL M
-2134 SCRIPT SMALL O
-2135 ALEF SYMBOL
-2136 BET SYMBOL
-2137 GIMEL SYMBOL
-2138 DALET SYMBOL
-2139 INFORMATION SOURCE
-213A ROTATED CAPITAL Q
-213D DOUBLE-STRUCK SMALL GAMMA
-213E DOUBLE-STRUCK CAPITAL GAMMA
-213F DOUBLE-STRUCK CAPITAL PI
-2140 DOUBLE-STRUCK N-ARY SUMMATION
-2141 TURNED SANS-SERIF CAPITAL G
-2142 TURNED SANS-SERIF CAPITAL L
-2143 REVERSED SANS-SERIF CAPITAL L
-2144 TURNED SANS-SERIF CAPITAL Y
-2145 DOUBLE-STRUCK ITALIC CAPITAL D
-2146 DOUBLE-STRUCK ITALIC SMALL D
-2147 DOUBLE-STRUCK ITALIC SMALL E
-2148 DOUBLE-STRUCK ITALIC SMALL I
-2149 DOUBLE-STRUCK ITALIC SMALL J
-214A PROPERTY LINE
-214B TURNED AMPERSAND
-2153 VULGAR FRACTION ONE THIRD
-2154 VULGAR FRACTION TWO THIRDS
-2155 VULGAR FRACTION ONE FIFTH
-2156 VULGAR FRACTION TWO FIFTHS
-2157 VULGAR FRACTION THREE FIFTHS
-2158 VULGAR FRACTION FOUR FIFTHS
-2159 VULGAR FRACTION ONE SIXTH
-215A VULGAR FRACTION FIVE SIXTHS
-215B VULGAR FRACTION ONE EIGHTH
-215C VULGAR FRACTION THREE EIGHTHS
-215D VULGAR FRACTION FIVE EIGHTHS
-215E VULGAR FRACTION SEVEN EIGHTHS
-215F FRACTION NUMERATOR ONE
-2160 ROMAN NUMERAL ONE
-2161 ROMAN NUMERAL TWO
-2162 ROMAN NUMERAL THREE
-2163 ROMAN NUMERAL FOUR
-2164 ROMAN NUMERAL FIVE
-2165 ROMAN NUMERAL SIX
-2166 ROMAN NUMERAL SEVEN
-2167 ROMAN NUMERAL EIGHT
-2168 ROMAN NUMERAL NINE
-2169 ROMAN NUMERAL TEN
-216A ROMAN NUMERAL ELEVEN
-216B ROMAN NUMERAL TWELVE
-216C ROMAN NUMERAL FIFTY
-216D ROMAN NUMERAL ONE HUNDRED
-216E ROMAN NUMERAL FIVE HUNDRED
-216F ROMAN NUMERAL ONE THOUSAND
-2170 SMALL ROMAN NUMERAL ONE
-2171 SMALL ROMAN NUMERAL TWO
-2172 SMALL ROMAN NUMERAL THREE
-2173 SMALL ROMAN NUMERAL FOUR
-2174 SMALL ROMAN NUMERAL FIVE
-2175 SMALL ROMAN NUMERAL SIX
-2176 SMALL ROMAN NUMERAL SEVEN
-2177 SMALL ROMAN NUMERAL EIGHT
-2178 SMALL ROMAN NUMERAL NINE
-2179 SMALL ROMAN NUMERAL TEN
-217A SMALL ROMAN NUMERAL ELEVEN
-217B SMALL ROMAN NUMERAL TWELVE
-217C SMALL ROMAN NUMERAL FIFTY
-217D SMALL ROMAN NUMERAL ONE HUNDRED
-217E SMALL ROMAN NUMERAL FIVE HUNDRED
-217F SMALL ROMAN NUMERAL ONE THOUSAND
-2180 ROMAN NUMERAL ONE THOUSAND C D
-2181 ROMAN NUMERAL FIVE THOUSAND
-2182 ROMAN NUMERAL TEN THOUSAND
-2183 ROMAN NUMERAL REVERSED ONE HUNDRED
-2190 LEFTWARDS ARROW
-2191 UPWARDS ARROW
-2192 RIGHTWARDS ARROW
-2193 DOWNWARDS ARROW
-2194 LEFT RIGHT ARROW
-2195 UP DOWN ARROW
-2196 NORTH WEST ARROW
-2197 NORTH EAST ARROW
-2198 SOUTH EAST ARROW
-2199 SOUTH WEST ARROW
-219A LEFTWARDS ARROW WITH STROKE
-219B RIGHTWARDS ARROW WITH STROKE
-219C LEFTWARDS WAVE ARROW
-219D RIGHTWARDS WAVE ARROW
-219E LEFTWARDS TWO HEADED ARROW
-219F UPWARDS TWO HEADED ARROW
-21A0 RIGHTWARDS TWO HEADED ARROW
-21A1 DOWNWARDS TWO HEADED ARROW
-21A2 LEFTWARDS ARROW WITH TAIL
-21A3 RIGHTWARDS ARROW WITH TAIL
-21A4 LEFTWARDS ARROW FROM BAR
-21A5 UPWARDS ARROW FROM BAR
-21A6 RIGHTWARDS ARROW FROM BAR
-21A7 DOWNWARDS ARROW FROM BAR
-21A8 UP DOWN ARROW WITH BASE
-21A9 LEFTWARDS ARROW WITH HOOK
-21AA RIGHTWARDS ARROW WITH HOOK
-21AB LEFTWARDS ARROW WITH LOOP
-21AC RIGHTWARDS ARROW WITH LOOP
-21AD LEFT RIGHT WAVE ARROW
-21AE LEFT RIGHT ARROW WITH STROKE
-21AF DOWNWARDS ZIGZAG ARROW
-21B0 UPWARDS ARROW WITH TIP LEFTWARDS
-21B1 UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2 DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3 DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4 RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5 DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6 ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7 CLOCKWISE TOP SEMICIRCLE ARROW
-21B8 NORTH WEST ARROW TO LONG BAR
-21B9 LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB CLOCKWISE OPEN CIRCLE ARROW
-21BC LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0 RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1 RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2 DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3 DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4 RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5 UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6 LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7 LEFTWARDS PAIRED ARROWS
-21C8 UPWARDS PAIRED ARROWS
-21C9 RIGHTWARDS PAIRED ARROWS
-21CA DOWNWARDS PAIRED ARROWS
-21CB LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0 LEFTWARDS DOUBLE ARROW
-21D1 UPWARDS DOUBLE ARROW
-21D2 RIGHTWARDS DOUBLE ARROW
-21D3 DOWNWARDS DOUBLE ARROW
-21D4 LEFT RIGHT DOUBLE ARROW
-21D5 UP DOWN DOUBLE ARROW
-21D6 NORTH WEST DOUBLE ARROW
-21D7 NORTH EAST DOUBLE ARROW
-21D8 SOUTH EAST DOUBLE ARROW
-21D9 SOUTH WEST DOUBLE ARROW
-21DA LEFTWARDS TRIPLE ARROW
-21DB RIGHTWARDS TRIPLE ARROW
-21DC LEFTWARDS SQUIGGLE ARROW
-21DD RIGHTWARDS SQUIGGLE ARROW
-21DE UPWARDS ARROW WITH DOUBLE STROKE
-21DF DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0 LEFTWARDS DASHED ARROW
-21E1 UPWARDS DASHED ARROW
-21E2 RIGHTWARDS DASHED ARROW
-21E3 DOWNWARDS DASHED ARROW
-21E4 LEFTWARDS ARROW TO BAR
-21E5 RIGHTWARDS ARROW TO BAR
-21E6 LEFTWARDS WHITE ARROW
-21E7 UPWARDS WHITE ARROW
-21E8 RIGHTWARDS WHITE ARROW
-21E9 DOWNWARDS WHITE ARROW
-21EA UPWARDS WHITE ARROW FROM BAR
-21EB UPWARDS WHITE ARROW ON PEDESTAL
-21EC UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE UPWARDS WHITE DOUBLE ARROW
-21EF UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0 RIGHTWARDS WHITE ARROW FROM WALL
-21F1 NORTH WEST ARROW TO CORNER
-21F2 SOUTH EAST ARROW TO CORNER
-21F3 UP DOWN WHITE ARROW
-21F4 RIGHT ARROW WITH SMALL CIRCLE
-21F5 DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6 THREE RIGHTWARDS ARROWS
-21F7 LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8 RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9 LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD LEFTWARDS OPEN-HEADED ARROW
-21FE RIGHTWARDS OPEN-HEADED ARROW
-21FF LEFT RIGHT OPEN-HEADED ARROW
-2200 FOR ALL
-2201 COMPLEMENT
-2202 PARTIAL DIFFERENTIAL
-2203 THERE EXISTS
-2204 THERE DOES NOT EXIST
-2205 EMPTY SET
-2206 INCREMENT
-2207 NABLA
-2208 ELEMENT OF
-2209 NOT AN ELEMENT OF
-220A SMALL ELEMENT OF
-220B CONTAINS AS MEMBER
-220C DOES NOT CONTAIN AS MEMBER
-220D SMALL CONTAINS AS MEMBER
-220E END OF PROOF
-220F N-ARY PRODUCT
-2210 N-ARY COPRODUCT
-2211 N-ARY SUMMATION
-2212 MINUS SIGN
-2213 MINUS-OR-PLUS SIGN
-2214 DOT PLUS
-2215 DIVISION SLASH
-2216 SET MINUS
-2217 ASTERISK OPERATOR
-2218 RING OPERATOR
-2219 BULLET OPERATOR
-221A SQUARE ROOT
-221B CUBE ROOT
-221C FOURTH ROOT
-221D PROPORTIONAL TO
-221E INFINITY
-221F RIGHT ANGLE
-2220 ANGLE
-2221 MEASURED ANGLE
-2222 SPHERICAL ANGLE
-2223 DIVIDES
-2224 DOES NOT DIVIDE
-2225 PARALLEL TO
-2226 NOT PARALLEL TO
-2227 LOGICAL AND
-2228 LOGICAL OR
-2229 INTERSECTION
-222A UNION
-222B INTEGRAL
-222C DOUBLE INTEGRAL
-222D TRIPLE INTEGRAL
-222E CONTOUR INTEGRAL
-222F SURFACE INTEGRAL
-2230 VOLUME INTEGRAL
-2231 CLOCKWISE INTEGRAL
-2232 CLOCKWISE CONTOUR INTEGRAL
-2233 ANTICLOCKWISE CONTOUR INTEGRAL
-2234 THEREFORE
-2235 BECAUSE
-2236 RATIO
-2237 PROPORTION
-2238 DOT MINUS
-2239 EXCESS
-223A GEOMETRIC PROPORTION
-223B HOMOTHETIC
-223C TILDE OPERATOR
-223D REVERSED TILDE
-223E INVERTED LAZY S
-223F SINE WAVE
-2240 WREATH PRODUCT
-2241 NOT TILDE
-2242 MINUS TILDE
-2243 ASYMPTOTICALLY EQUAL TO
-2244 NOT ASYMPTOTICALLY EQUAL TO
-2245 APPROXIMATELY EQUAL TO
-2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248 ALMOST EQUAL TO
-2249 NOT ALMOST EQUAL TO
-224A ALMOST EQUAL OR EQUAL TO
-224B TRIPLE TILDE
-224C ALL EQUAL TO
-224D EQUIVALENT TO
-224E GEOMETRICALLY EQUIVALENT TO
-224F DIFFERENCE BETWEEN
-2250 APPROACHES THE LIMIT
-2251 GEOMETRICALLY EQUAL TO
-2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253 IMAGE OF OR APPROXIMATELY EQUAL TO
-2254 COLON EQUALS
-2255 EQUALS COLON
-2256 RING IN EQUAL TO
-2257 RING EQUAL TO
-2258 CORRESPONDS TO
-2259 ESTIMATES
-225A EQUIANGULAR TO
-225B STAR EQUALS
-225C DELTA EQUAL TO
-225D EQUAL TO BY DEFINITION
-225E MEASURED BY
-225F QUESTIONED EQUAL TO
-2260 NOT EQUAL TO
-2261 IDENTICAL TO
-2262 NOT IDENTICAL TO
-2263 STRICTLY EQUIVALENT TO
-2264 LESS-THAN OR EQUAL TO
-2265 GREATER-THAN OR EQUAL TO
-2266 LESS-THAN OVER EQUAL TO
-2267 GREATER-THAN OVER EQUAL TO
-2268 LESS-THAN BUT NOT EQUAL TO
-2269 GREATER-THAN BUT NOT EQUAL TO
-226A MUCH LESS-THAN
-226B MUCH GREATER-THAN
-226C BETWEEN
-226D NOT EQUIVALENT TO
-226E NOT LESS-THAN
-226F NOT GREATER-THAN
-2270 NEITHER LESS-THAN NOR EQUAL TO
-2271 NEITHER GREATER-THAN NOR EQUAL TO
-2272 LESS-THAN OR EQUIVALENT TO
-2273 GREATER-THAN OR EQUIVALENT TO
-2274 NEITHER LESS-THAN NOR EQUIVALENT TO
-2275 NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276 LESS-THAN OR GREATER-THAN
-2277 GREATER-THAN OR LESS-THAN
-2278 NEITHER LESS-THAN NOR GREATER-THAN
-2279 NEITHER GREATER-THAN NOR LESS-THAN
-227A PRECEDES
-227B SUCCEEDS
-227C PRECEDES OR EQUAL TO
-227D SUCCEEDS OR EQUAL TO
-227E PRECEDES OR EQUIVALENT TO
-227F SUCCEEDS OR EQUIVALENT TO
-2280 DOES NOT PRECEDE
-2281 DOES NOT SUCCEED
-2282 SUBSET OF
-2283 SUPERSET OF
-2284 NOT A SUBSET OF
-2285 NOT A SUPERSET OF
-2286 SUBSET OF OR EQUAL TO
-2287 SUPERSET OF OR EQUAL TO
-2288 NEITHER A SUBSET OF NOR EQUAL TO
-2289 NEITHER A SUPERSET OF NOR EQUAL TO
-228A SUBSET OF WITH NOT EQUAL TO
-228B SUPERSET OF WITH NOT EQUAL TO
-228C MULTISET
-228D MULTISET MULTIPLICATION
-228E MULTISET UNION
-228F SQUARE IMAGE OF
-2290 SQUARE ORIGINAL OF
-2291 SQUARE IMAGE OF OR EQUAL TO
-2292 SQUARE ORIGINAL OF OR EQUAL TO
-2293 SQUARE CAP
-2294 SQUARE CUP
-2295 CIRCLED PLUS
-2296 CIRCLED MINUS
-2297 CIRCLED TIMES
-2298 CIRCLED DIVISION SLASH
-2299 CIRCLED DOT OPERATOR
-229A CIRCLED RING OPERATOR
-229B CIRCLED ASTERISK OPERATOR
-229C CIRCLED EQUALS
-229D CIRCLED DASH
-229E SQUARED PLUS
-229F SQUARED MINUS
-22A0 SQUARED TIMES
-22A1 SQUARED DOT OPERATOR
-22A2 RIGHT TACK
-22A3 LEFT TACK
-22A4 DOWN TACK
-22A5 UP TACK
-22A6 ASSERTION
-22A7 MODELS
-22A8 TRUE
-22A9 FORCES
-22AA TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC DOES NOT PROVE
-22AD NOT TRUE
-22AE DOES NOT FORCE
-22AF NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0 PRECEDES UNDER RELATION
-22B1 SUCCEEDS UNDER RELATION
-22B2 NORMAL SUBGROUP OF
-22B3 CONTAINS AS NORMAL SUBGROUP
-22B4 NORMAL SUBGROUP OF OR EQUAL TO
-22B5 CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6 ORIGINAL OF
-22B7 IMAGE OF
-22B8 MULTIMAP
-22B9 HERMITIAN CONJUGATE MATRIX
-22BA INTERCALATE
-22BB XOR
-22BC NAND
-22BD NOR
-22BE RIGHT ANGLE WITH ARC
-22BF RIGHT TRIANGLE
-22C0 N-ARY LOGICAL AND
-22C1 N-ARY LOGICAL OR
-22C2 N-ARY INTERSECTION
-22C3 N-ARY UNION
-22C4 DIAMOND OPERATOR
-22C5 DOT OPERATOR
-22C6 STAR OPERATOR
-22C7 DIVISION TIMES
-22C8 BOWTIE
-22C9 LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB LEFT SEMIDIRECT PRODUCT
-22CC RIGHT SEMIDIRECT PRODUCT
-22CD REVERSED TILDE EQUALS
-22CE CURLY LOGICAL OR
-22CF CURLY LOGICAL AND
-22D0 DOUBLE SUBSET
-22D1 DOUBLE SUPERSET
-22D2 DOUBLE INTERSECTION
-22D3 DOUBLE UNION
-22D4 PITCHFORK
-22D5 EQUAL AND PARALLEL TO
-22D6 LESS-THAN WITH DOT
-22D7 GREATER-THAN WITH DOT
-22D8 VERY MUCH LESS-THAN
-22D9 VERY MUCH GREATER-THAN
-22DA LESS-THAN EQUAL TO OR GREATER-THAN
-22DB GREATER-THAN EQUAL TO OR LESS-THAN
-22DC EQUAL TO OR LESS-THAN
-22DD EQUAL TO OR GREATER-THAN
-22DE EQUAL TO OR PRECEDES
-22DF EQUAL TO OR SUCCEEDS
-22E0 DOES NOT PRECEDE OR EQUAL
-22E1 DOES NOT SUCCEED OR EQUAL
-22E2 NOT SQUARE IMAGE OF OR EQUAL TO
-22E3 NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4 SQUARE IMAGE OF OR NOT EQUAL TO
-22E5 SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6 LESS-THAN BUT NOT EQUIVALENT TO
-22E7 GREATER-THAN BUT NOT EQUIVALENT TO
-22E8 PRECEDES BUT NOT EQUIVALENT TO
-22E9 SUCCEEDS BUT NOT EQUIVALENT TO
-22EA NOT NORMAL SUBGROUP OF
-22EB DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE VERTICAL ELLIPSIS
-22EF MIDLINE HORIZONTAL ELLIPSIS
-22F0 UP RIGHT DIAGONAL ELLIPSIS
-22F1 DOWN RIGHT DIAGONAL ELLIPSIS
-22F2 ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3 ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4 SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5 ELEMENT OF WITH DOT ABOVE
-22F6 ELEMENT OF WITH OVERBAR
-22F7 SMALL ELEMENT OF WITH OVERBAR
-22F8 ELEMENT OF WITH UNDERBAR
-22F9 ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA CONTAINS WITH LONG HORIZONTAL STROKE
-22FB CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD CONTAINS WITH OVERBAR
-22FE SMALL CONTAINS WITH OVERBAR
-22FF Z NOTATION BAG MEMBERSHIP
-2300 DIAMETER SIGN
-2301 ELECTRIC ARROW
-2302 HOUSE
-2303 UP ARROWHEAD
-2304 DOWN ARROWHEAD
-2305 PROJECTIVE
-2306 PERSPECTIVE
-2307 WAVY LINE
-2308 LEFT CEILING
-2309 RIGHT CEILING
-230A LEFT FLOOR
-230B RIGHT FLOOR
-230C BOTTOM RIGHT CROP
-230D BOTTOM LEFT CROP
-230E TOP RIGHT CROP
-230F TOP LEFT CROP
-2310 REVERSED NOT SIGN
-2311 SQUARE LOZENGE
-2312 ARC
-2313 SEGMENT
-2314 SECTOR
-2315 TELEPHONE RECORDER
-2316 POSITION INDICATOR
-2317 VIEWDATA SQUARE
-2318 PLACE OF INTEREST SIGN
-2319 TURNED NOT SIGN
-231A WATCH
-231B HOURGLASS
-231C TOP LEFT CORNER
-231D TOP RIGHT CORNER
-231E BOTTOM LEFT CORNER
-231F BOTTOM RIGHT CORNER
-2320 TOP HALF INTEGRAL
-2321 BOTTOM HALF INTEGRAL
-2322 FROWN
-2323 SMILE
-2324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325 OPTION KEY
-2326 ERASE TO THE RIGHT
-2327 X IN A RECTANGLE BOX
-2328 KEYBOARD
-2329 LEFT-POINTING ANGLE BRACKET
-232A RIGHT-POINTING ANGLE BRACKET
-232B ERASE TO THE LEFT
-232C BENZENE RING
-232D CYLINDRICITY
-232E ALL AROUND-PROFILE
-232F SYMMETRY
-2330 TOTAL RUNOUT
-2331 DIMENSION ORIGIN
-2332 CONICAL TAPER
-2333 SLOPE
-2334 COUNTERBORE
-2335 COUNTERSINK
-2336 APL FUNCTIONAL SYMBOL I-BEAM
-2337 APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338 APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339 APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B APL FUNCTIONAL SYMBOL QUAD JOT
-233C APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F APL FUNCTIONAL SYMBOL SLASH BAR
-2340 APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341 APL FUNCTIONAL SYMBOL QUAD SLASH
-2342 APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343 APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344 APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345 APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346 APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347 APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348 APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349 APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B APL FUNCTIONAL SYMBOL DELTA STILE
-234C APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D APL FUNCTIONAL SYMBOL QUAD DELTA
-234E APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350 APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351 APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352 APL FUNCTIONAL SYMBOL DEL STILE
-2353 APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354 APL FUNCTIONAL SYMBOL QUAD DEL
-2355 APL FUNCTIONAL SYMBOL UP TACK JOT
-2356 APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357 APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358 APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359 APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360 APL FUNCTIONAL SYMBOL QUAD COLON
-2361 APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362 APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363 APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364 APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365 APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366 APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367 APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368 APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369 APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A APL FUNCTIONAL SYMBOL COMMA BAR
-236B APL FUNCTIONAL SYMBOL DEL TILDE
-236C APL FUNCTIONAL SYMBOL ZILDE
-236D APL FUNCTIONAL SYMBOL STILE TILDE
-236E APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370 APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371 APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372 APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373 APL FUNCTIONAL SYMBOL IOTA
-2374 APL FUNCTIONAL SYMBOL RHO
-2375 APL FUNCTIONAL SYMBOL OMEGA
-2376 APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377 APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378 APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379 APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A APL FUNCTIONAL SYMBOL ALPHA
-237B NOT CHECK MARK
-237C RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D SHOULDERED OPEN BOX
-237E BELL SYMBOL
-237F VERTICAL LINE WITH MIDDLE DOT
-2380 INSERTION SYMBOL
-2381 CONTINUOUS UNDERLINE SYMBOL
-2382 DISCONTINUOUS UNDERLINE SYMBOL
-2383 EMPHASIS SYMBOL
-2384 COMPOSITION SYMBOL
-2385 WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386 ENTER SYMBOL
-2387 ALTERNATIVE KEY SYMBOL
-2388 HELM SYMBOL
-2389 CIRCLED HORIZONTAL BAR WITH NOTCH
-238A CIRCLED TRIANGLE DOWN
-238B BROKEN CIRCLE WITH NORTHWEST ARROW
-238C UNDO SYMBOL
-238D MONOSTABLE SYMBOL
-238E HYSTERESIS SYMBOL
-238F OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390 OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391 PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392 PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393 DIRECT CURRENT SYMBOL FORM TWO
-2394 SOFTWARE-FUNCTION SYMBOL
-2395 APL FUNCTIONAL SYMBOL QUAD
-2396 DECIMAL SEPARATOR KEY SYMBOL
-2397 PREVIOUS PAGE
-2398 NEXT PAGE
-2399 PRINT SCREEN SYMBOL
-239A CLEAR SCREEN SYMBOL
-239B LEFT PARENTHESIS UPPER HOOK
-239C LEFT PARENTHESIS EXTENSION
-239D LEFT PARENTHESIS LOWER HOOK
-239E RIGHT PARENTHESIS UPPER HOOK
-239F RIGHT PARENTHESIS EXTENSION
-23A0 RIGHT PARENTHESIS LOWER HOOK
-23A1 LEFT SQUARE BRACKET UPPER CORNER
-23A2 LEFT SQUARE BRACKET EXTENSION
-23A3 LEFT SQUARE BRACKET LOWER CORNER
-23A4 RIGHT SQUARE BRACKET UPPER CORNER
-23A5 RIGHT SQUARE BRACKET EXTENSION
-23A6 RIGHT SQUARE BRACKET LOWER CORNER
-23A7 LEFT CURLY BRACKET UPPER HOOK
-23A8 LEFT CURLY BRACKET MIDDLE PIECE
-23A9 LEFT CURLY BRACKET LOWER HOOK
-23AA CURLY BRACKET EXTENSION
-23AB RIGHT CURLY BRACKET UPPER HOOK
-23AC RIGHT CURLY BRACKET MIDDLE PIECE
-23AD RIGHT CURLY BRACKET LOWER HOOK
-23AE INTEGRAL EXTENSION
-23AF HORIZONTAL LINE EXTENSION
-23B0 UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1 UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2 SUMMATION TOP
-23B3 SUMMATION BOTTOM
-23B4 TOP SQUARE BRACKET
-23B5 BOTTOM SQUARE BRACKET
-23B6 BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7 RADICAL SYMBOL BOTTOM
-23B8 LEFT VERTICAL BOX LINE
-23B9 RIGHT VERTICAL BOX LINE
-23BA HORIZONTAL SCAN LINE-1
-23BB HORIZONTAL SCAN LINE-3
-23BC HORIZONTAL SCAN LINE-7
-23BD HORIZONTAL SCAN LINE-9
-23BE DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0 DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3 DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6 DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD SQUARE FOOT
-23CE RETURN SYMBOL
-2400 SYMBOL FOR NULL
-2401 SYMBOL FOR START OF HEADING
-2402 SYMBOL FOR START OF TEXT
-2403 SYMBOL FOR END OF TEXT
-2404 SYMBOL FOR END OF TRANSMISSION
-2405 SYMBOL FOR ENQUIRY
-2406 SYMBOL FOR ACKNOWLEDGE
-2407 SYMBOL FOR BELL
-2408 SYMBOL FOR BACKSPACE
-2409 SYMBOL FOR HORIZONTAL TABULATION
-240A SYMBOL FOR LINE FEED
-240B SYMBOL FOR VERTICAL TABULATION
-240C SYMBOL FOR FORM FEED
-240D SYMBOL FOR CARRIAGE RETURN
-240E SYMBOL FOR SHIFT OUT
-240F SYMBOL FOR SHIFT IN
-2410 SYMBOL FOR DATA LINK ESCAPE
-2411 SYMBOL FOR DEVICE CONTROL ONE
-2412 SYMBOL FOR DEVICE CONTROL TWO
-2413 SYMBOL FOR DEVICE CONTROL THREE
-2414 SYMBOL FOR DEVICE CONTROL FOUR
-2415 SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416 SYMBOL FOR SYNCHRONOUS IDLE
-2417 SYMBOL FOR END OF TRANSMISSION BLOCK
-2418 SYMBOL FOR CANCEL
-2419 SYMBOL FOR END OF MEDIUM
-241A SYMBOL FOR SUBSTITUTE
-241B SYMBOL FOR ESCAPE
-241C SYMBOL FOR FILE SEPARATOR
-241D SYMBOL FOR GROUP SEPARATOR
-241E SYMBOL FOR RECORD SEPARATOR
-241F SYMBOL FOR UNIT SEPARATOR
-2420 SYMBOL FOR SPACE
-2421 SYMBOL FOR DELETE
-2422 BLANK SYMBOL
-2423 OPEN BOX
-2424 SYMBOL FOR NEWLINE
-2425 SYMBOL FOR DELETE FORM TWO
-2426 SYMBOL FOR SUBSTITUTE FORM TWO
-2440 OCR HOOK
-2441 OCR CHAIR
-2442 OCR FORK
-2443 OCR INVERTED FORK
-2444 OCR BELT BUCKLE
-2445 OCR BOW TIE
-2446 OCR BRANCH BANK IDENTIFICATION
-2447 OCR AMOUNT OF CHECK
-2448 OCR DASH
-2449 OCR CUSTOMER ACCOUNT NUMBER
-244A OCR DOUBLE BACKSLASH
-2460 CIRCLED DIGIT ONE
-2461 CIRCLED DIGIT TWO
-2462 CIRCLED DIGIT THREE
-2463 CIRCLED DIGIT FOUR
-2464 CIRCLED DIGIT FIVE
-2465 CIRCLED DIGIT SIX
-2466 CIRCLED DIGIT SEVEN
-2467 CIRCLED DIGIT EIGHT
-2468 CIRCLED DIGIT NINE
-2469 CIRCLED NUMBER TEN
-246A CIRCLED NUMBER ELEVEN
-246B CIRCLED NUMBER TWELVE
-246C CIRCLED NUMBER THIRTEEN
-246D CIRCLED NUMBER FOURTEEN
-246E CIRCLED NUMBER FIFTEEN
-246F CIRCLED NUMBER SIXTEEN
-2470 CIRCLED NUMBER SEVENTEEN
-2471 CIRCLED NUMBER EIGHTEEN
-2472 CIRCLED NUMBER NINETEEN
-2473 CIRCLED NUMBER TWENTY
-2474 PARENTHESIZED DIGIT ONE
-2475 PARENTHESIZED DIGIT TWO
-2476 PARENTHESIZED DIGIT THREE
-2477 PARENTHESIZED DIGIT FOUR
-2478 PARENTHESIZED DIGIT FIVE
-2479 PARENTHESIZED DIGIT SIX
-247A PARENTHESIZED DIGIT SEVEN
-247B PARENTHESIZED DIGIT EIGHT
-247C PARENTHESIZED DIGIT NINE
-247D PARENTHESIZED NUMBER TEN
-247E PARENTHESIZED NUMBER ELEVEN
-247F PARENTHESIZED NUMBER TWELVE
-2480 PARENTHESIZED NUMBER THIRTEEN
-2481 PARENTHESIZED NUMBER FOURTEEN
-2482 PARENTHESIZED NUMBER FIFTEEN
-2483 PARENTHESIZED NUMBER SIXTEEN
-2484 PARENTHESIZED NUMBER SEVENTEEN
-2485 PARENTHESIZED NUMBER EIGHTEEN
-2486 PARENTHESIZED NUMBER NINETEEN
-2487 PARENTHESIZED NUMBER TWENTY
-2488 DIGIT ONE FULL STOP
-2489 DIGIT TWO FULL STOP
-248A DIGIT THREE FULL STOP
-248B DIGIT FOUR FULL STOP
-248C DIGIT FIVE FULL STOP
-248D DIGIT SIX FULL STOP
-248E DIGIT SEVEN FULL STOP
-248F DIGIT EIGHT FULL STOP
-2490 DIGIT NINE FULL STOP
-2491 NUMBER TEN FULL STOP
-2492 NUMBER ELEVEN FULL STOP
-2493 NUMBER TWELVE FULL STOP
-2494 NUMBER THIRTEEN FULL STOP
-2495 NUMBER FOURTEEN FULL STOP
-2496 NUMBER FIFTEEN FULL STOP
-2497 NUMBER SIXTEEN FULL STOP
-2498 NUMBER SEVENTEEN FULL STOP
-2499 NUMBER EIGHTEEN FULL STOP
-249A NUMBER NINETEEN FULL STOP
-249B NUMBER TWENTY FULL STOP
-249C PARENTHESIZED LATIN SMALL LETTER A
-249D PARENTHESIZED LATIN SMALL LETTER B
-249E PARENTHESIZED LATIN SMALL LETTER C
-249F PARENTHESIZED LATIN SMALL LETTER D
-24A0 PARENTHESIZED LATIN SMALL LETTER E
-24A1 PARENTHESIZED LATIN SMALL LETTER F
-24A2 PARENTHESIZED LATIN SMALL LETTER G
-24A3 PARENTHESIZED LATIN SMALL LETTER H
-24A4 PARENTHESIZED LATIN SMALL LETTER I
-24A5 PARENTHESIZED LATIN SMALL LETTER J
-24A6 PARENTHESIZED LATIN SMALL LETTER K
-24A7 PARENTHESIZED LATIN SMALL LETTER L
-24A8 PARENTHESIZED LATIN SMALL LETTER M
-24A9 PARENTHESIZED LATIN SMALL LETTER N
-24AA PARENTHESIZED LATIN SMALL LETTER O
-24AB PARENTHESIZED LATIN SMALL LETTER P
-24AC PARENTHESIZED LATIN SMALL LETTER Q
-24AD PARENTHESIZED LATIN SMALL LETTER R
-24AE PARENTHESIZED LATIN SMALL LETTER S
-24AF PARENTHESIZED LATIN SMALL LETTER T
-24B0 PARENTHESIZED LATIN SMALL LETTER U
-24B1 PARENTHESIZED LATIN SMALL LETTER V
-24B2 PARENTHESIZED LATIN SMALL LETTER W
-24B3 PARENTHESIZED LATIN SMALL LETTER X
-24B4 PARENTHESIZED LATIN SMALL LETTER Y
-24B5 PARENTHESIZED LATIN SMALL LETTER Z
-24B6 CIRCLED LATIN CAPITAL LETTER A
-24B7 CIRCLED LATIN CAPITAL LETTER B
-24B8 CIRCLED LATIN CAPITAL LETTER C
-24B9 CIRCLED LATIN CAPITAL LETTER D
-24BA CIRCLED LATIN CAPITAL LETTER E
-24BB CIRCLED LATIN CAPITAL LETTER F
-24BC CIRCLED LATIN CAPITAL LETTER G
-24BD CIRCLED LATIN CAPITAL LETTER H
-24BE CIRCLED LATIN CAPITAL LETTER I
-24BF CIRCLED LATIN CAPITAL LETTER J
-24C0 CIRCLED LATIN CAPITAL LETTER K
-24C1 CIRCLED LATIN CAPITAL LETTER L
-24C2 CIRCLED LATIN CAPITAL LETTER M
-24C3 CIRCLED LATIN CAPITAL LETTER N
-24C4 CIRCLED LATIN CAPITAL LETTER O
-24C5 CIRCLED LATIN CAPITAL LETTER P
-24C6 CIRCLED LATIN CAPITAL LETTER Q
-24C7 CIRCLED LATIN CAPITAL LETTER R
-24C8 CIRCLED LATIN CAPITAL LETTER S
-24C9 CIRCLED LATIN CAPITAL LETTER T
-24CA CIRCLED LATIN CAPITAL LETTER U
-24CB CIRCLED LATIN CAPITAL LETTER V
-24CC CIRCLED LATIN CAPITAL LETTER W
-24CD CIRCLED LATIN CAPITAL LETTER X
-24CE CIRCLED LATIN CAPITAL LETTER Y
-24CF CIRCLED LATIN CAPITAL LETTER Z
-24D0 CIRCLED LATIN SMALL LETTER A
-24D1 CIRCLED LATIN SMALL LETTER B
-24D2 CIRCLED LATIN SMALL LETTER C
-24D3 CIRCLED LATIN SMALL LETTER D
-24D4 CIRCLED LATIN SMALL LETTER E
-24D5 CIRCLED LATIN SMALL LETTER F
-24D6 CIRCLED LATIN SMALL LETTER G
-24D7 CIRCLED LATIN SMALL LETTER H
-24D8 CIRCLED LATIN SMALL LETTER I
-24D9 CIRCLED LATIN SMALL LETTER J
-24DA CIRCLED LATIN SMALL LETTER K
-24DB CIRCLED LATIN SMALL LETTER L
-24DC CIRCLED LATIN SMALL LETTER M
-24DD CIRCLED LATIN SMALL LETTER N
-24DE CIRCLED LATIN SMALL LETTER O
-24DF CIRCLED LATIN SMALL LETTER P
-24E0 CIRCLED LATIN SMALL LETTER Q
-24E1 CIRCLED LATIN SMALL LETTER R
-24E2 CIRCLED LATIN SMALL LETTER S
-24E3 CIRCLED LATIN SMALL LETTER T
-24E4 CIRCLED LATIN SMALL LETTER U
-24E5 CIRCLED LATIN SMALL LETTER V
-24E6 CIRCLED LATIN SMALL LETTER W
-24E7 CIRCLED LATIN SMALL LETTER X
-24E8 CIRCLED LATIN SMALL LETTER Y
-24E9 CIRCLED LATIN SMALL LETTER Z
-24EA CIRCLED DIGIT ZERO
-24EB NEGATIVE CIRCLED NUMBER ELEVEN
-24EC NEGATIVE CIRCLED NUMBER TWELVE
-24ED NEGATIVE CIRCLED NUMBER THIRTEEN
-24EE NEGATIVE CIRCLED NUMBER FOURTEEN
-24EF NEGATIVE CIRCLED NUMBER FIFTEEN
-24F0 NEGATIVE CIRCLED NUMBER SIXTEEN
-24F1 NEGATIVE CIRCLED NUMBER SEVENTEEN
-24F2 NEGATIVE CIRCLED NUMBER EIGHTEEN
-24F3 NEGATIVE CIRCLED NUMBER NINETEEN
-24F4 NEGATIVE CIRCLED NUMBER TWENTY
-24F5 DOUBLE CIRCLED DIGIT ONE
-24F6 DOUBLE CIRCLED DIGIT TWO
-24F7 DOUBLE CIRCLED DIGIT THREE
-24F8 DOUBLE CIRCLED DIGIT FOUR
-24F9 DOUBLE CIRCLED DIGIT FIVE
-24FA DOUBLE CIRCLED DIGIT SIX
-24FB DOUBLE CIRCLED DIGIT SEVEN
-24FC DOUBLE CIRCLED DIGIT EIGHT
-24FD DOUBLE CIRCLED DIGIT NINE
-24FE DOUBLE CIRCLED NUMBER TEN
-2500 BOX DRAWINGS LIGHT HORIZONTAL
-2501 BOX DRAWINGS HEAVY HORIZONTAL
-2502 BOX DRAWINGS LIGHT VERTICAL
-2503 BOX DRAWINGS HEAVY VERTICAL
-2504 BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505 BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506 BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507 BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508 BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509 BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510 BOX DRAWINGS LIGHT DOWN AND LEFT
-2511 BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512 BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513 BOX DRAWINGS HEAVY DOWN AND LEFT
-2514 BOX DRAWINGS LIGHT UP AND RIGHT
-2515 BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516 BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517 BOX DRAWINGS HEAVY UP AND RIGHT
-2518 BOX DRAWINGS LIGHT UP AND LEFT
-2519 BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B BOX DRAWINGS HEAVY UP AND LEFT
-251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520 BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521 BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522 BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523 BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525 BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526 BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527 BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528 BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529 BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530 BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531 BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532 BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533 BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535 BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536 BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537 BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538 BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539 BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540 BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541 BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542 BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543 BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544 BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545 BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546 BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547 BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548 BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549 BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550 BOX DRAWINGS DOUBLE HORIZONTAL
-2551 BOX DRAWINGS DOUBLE VERTICAL
-2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A BOX DRAWINGS DOUBLE UP AND RIGHT
-255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D BOX DRAWINGS DOUBLE UP AND LEFT
-255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570 BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571 BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572 BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573 BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574 BOX DRAWINGS LIGHT LEFT
-2575 BOX DRAWINGS LIGHT UP
-2576 BOX DRAWINGS LIGHT RIGHT
-2577 BOX DRAWINGS LIGHT DOWN
-2578 BOX DRAWINGS HEAVY LEFT
-2579 BOX DRAWINGS HEAVY UP
-257A BOX DRAWINGS HEAVY RIGHT
-257B BOX DRAWINGS HEAVY DOWN
-257C BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580 UPPER HALF BLOCK
-2581 LOWER ONE EIGHTH BLOCK
-2582 LOWER ONE QUARTER BLOCK
-2583 LOWER THREE EIGHTHS BLOCK
-2584 LOWER HALF BLOCK
-2585 LOWER FIVE EIGHTHS BLOCK
-2586 LOWER THREE QUARTERS BLOCK
-2587 LOWER SEVEN EIGHTHS BLOCK
-2588 FULL BLOCK
-2589 LEFT SEVEN EIGHTHS BLOCK
-258A LEFT THREE QUARTERS BLOCK
-258B LEFT FIVE EIGHTHS BLOCK
-258C LEFT HALF BLOCK
-258D LEFT THREE EIGHTHS BLOCK
-258E LEFT ONE QUARTER BLOCK
-258F LEFT ONE EIGHTH BLOCK
-2590 RIGHT HALF BLOCK
-2591 LIGHT SHADE
-2592 MEDIUM SHADE
-2593 DARK SHADE
-2594 UPPER ONE EIGHTH BLOCK
-2595 RIGHT ONE EIGHTH BLOCK
-2596 QUADRANT LOWER LEFT
-2597 QUADRANT LOWER RIGHT
-2598 QUADRANT UPPER LEFT
-2599 QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A QUADRANT UPPER LEFT AND LOWER RIGHT
-259B QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D QUADRANT UPPER RIGHT
-259E QUADRANT UPPER RIGHT AND LOWER LEFT
-259F QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0 BLACK SQUARE
-25A1 WHITE SQUARE
-25A2 WHITE SQUARE WITH ROUNDED CORNERS
-25A3 WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4 SQUARE WITH HORIZONTAL FILL
-25A5 SQUARE WITH VERTICAL FILL
-25A6 SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7 SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8 SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9 SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA BLACK SMALL SQUARE
-25AB WHITE SMALL SQUARE
-25AC BLACK RECTANGLE
-25AD WHITE RECTANGLE
-25AE BLACK VERTICAL RECTANGLE
-25AF WHITE VERTICAL RECTANGLE
-25B0 BLACK PARALLELOGRAM
-25B1 WHITE PARALLELOGRAM
-25B2 BLACK UP-POINTING TRIANGLE
-25B3 WHITE UP-POINTING TRIANGLE
-25B4 BLACK UP-POINTING SMALL TRIANGLE
-25B5 WHITE UP-POINTING SMALL TRIANGLE
-25B6 BLACK RIGHT-POINTING TRIANGLE
-25B7 WHITE RIGHT-POINTING TRIANGLE
-25B8 BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9 WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA BLACK RIGHT-POINTING POINTER
-25BB WHITE RIGHT-POINTING POINTER
-25BC BLACK DOWN-POINTING TRIANGLE
-25BD WHITE DOWN-POINTING TRIANGLE
-25BE BLACK DOWN-POINTING SMALL TRIANGLE
-25BF WHITE DOWN-POINTING SMALL TRIANGLE
-25C0 BLACK LEFT-POINTING TRIANGLE
-25C1 WHITE LEFT-POINTING TRIANGLE
-25C2 BLACK LEFT-POINTING SMALL TRIANGLE
-25C3 WHITE LEFT-POINTING SMALL TRIANGLE
-25C4 BLACK LEFT-POINTING POINTER
-25C5 WHITE LEFT-POINTING POINTER
-25C6 BLACK DIAMOND
-25C7 WHITE DIAMOND
-25C8 WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9 FISHEYE
-25CA LOZENGE
-25CB WHITE CIRCLE
-25CC DOTTED CIRCLE
-25CD CIRCLE WITH VERTICAL FILL
-25CE BULLSEYE
-25CF BLACK CIRCLE
-25D0 CIRCLE WITH LEFT HALF BLACK
-25D1 CIRCLE WITH RIGHT HALF BLACK
-25D2 CIRCLE WITH LOWER HALF BLACK
-25D3 CIRCLE WITH UPPER HALF BLACK
-25D4 CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5 CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6 LEFT HALF BLACK CIRCLE
-25D7 RIGHT HALF BLACK CIRCLE
-25D8 INVERSE BULLET
-25D9 INVERSE WHITE CIRCLE
-25DA UPPER HALF INVERSE WHITE CIRCLE
-25DB LOWER HALF INVERSE WHITE CIRCLE
-25DC UPPER LEFT QUADRANT CIRCULAR ARC
-25DD UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF LOWER LEFT QUADRANT CIRCULAR ARC
-25E0 UPPER HALF CIRCLE
-25E1 LOWER HALF CIRCLE
-25E2 BLACK LOWER RIGHT TRIANGLE
-25E3 BLACK LOWER LEFT TRIANGLE
-25E4 BLACK UPPER LEFT TRIANGLE
-25E5 BLACK UPPER RIGHT TRIANGLE
-25E6 WHITE BULLET
-25E7 SQUARE WITH LEFT HALF BLACK
-25E8 SQUARE WITH RIGHT HALF BLACK
-25E9 SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC WHITE UP-POINTING TRIANGLE WITH DOT
-25ED UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF LARGE CIRCLE
-25F0 WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1 WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2 WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3 WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4 WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5 WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6 WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7 WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8 UPPER LEFT TRIANGLE
-25F9 UPPER RIGHT TRIANGLE
-25FA LOWER LEFT TRIANGLE
-25FB WHITE MEDIUM SQUARE
-25FC BLACK MEDIUM SQUARE
-25FD WHITE MEDIUM SMALL SQUARE
-25FE BLACK MEDIUM SMALL SQUARE
-25FF LOWER RIGHT TRIANGLE
-2600 BLACK SUN WITH RAYS
-2601 CLOUD
-2602 UMBRELLA
-2603 SNOWMAN
-2604 COMET
-2605 BLACK STAR
-2606 WHITE STAR
-2607 LIGHTNING
-2608 THUNDERSTORM
-2609 SUN
-260A ASCENDING NODE
-260B DESCENDING NODE
-260C CONJUNCTION
-260D OPPOSITION
-260E BLACK TELEPHONE
-260F WHITE TELEPHONE
-2610 BALLOT BOX
-2611 BALLOT BOX WITH CHECK
-2612 BALLOT BOX WITH X
-2613 SALTIRE
-2616 WHITE SHOGI PIECE
-2617 BLACK SHOGI PIECE
-2619 REVERSED ROTATED FLORAL HEART BULLET
-261A BLACK LEFT POINTING INDEX
-261B BLACK RIGHT POINTING INDEX
-261C WHITE LEFT POINTING INDEX
-261D WHITE UP POINTING INDEX
-261E WHITE RIGHT POINTING INDEX
-261F WHITE DOWN POINTING INDEX
-2620 SKULL AND CROSSBONES
-2621 CAUTION SIGN
-2622 RADIOACTIVE SIGN
-2623 BIOHAZARD SIGN
-2624 CADUCEUS
-2625 ANKH
-2626 ORTHODOX CROSS
-2627 CHI RHO
-2628 CROSS OF LORRAINE
-2629 CROSS OF JERUSALEM
-262A STAR AND CRESCENT
-262B FARSI SYMBOL
-262C ADI SHAKTI
-262D HAMMER AND SICKLE
-262E PEACE SYMBOL
-262F YIN YANG
-2630 TRIGRAM FOR HEAVEN
-2631 TRIGRAM FOR LAKE
-2632 TRIGRAM FOR FIRE
-2633 TRIGRAM FOR THUNDER
-2634 TRIGRAM FOR WIND
-2635 TRIGRAM FOR WATER
-2636 TRIGRAM FOR MOUNTAIN
-2637 TRIGRAM FOR EARTH
-2638 WHEEL OF DHARMA
-2639 WHITE FROWNING FACE
-263A WHITE SMILING FACE
-263B BLACK SMILING FACE
-263C WHITE SUN WITH RAYS
-263D FIRST QUARTER MOON
-263E LAST QUARTER MOON
-263F MERCURY
-2640 FEMALE SIGN
-2641 EARTH
-2642 MALE SIGN
-2643 JUPITER
-2644 SATURN
-2645 URANUS
-2646 NEPTUNE
-2647 PLUTO
-2648 ARIES
-2649 TAURUS
-264A GEMINI
-264B CANCER
-264C LEO
-264D VIRGO
-264E LIBRA
-264F SCORPIUS
-2650 SAGITTARIUS
-2651 CAPRICORN
-2652 AQUARIUS
-2653 PISCES
-2654 WHITE CHESS KING
-2655 WHITE CHESS QUEEN
-2656 WHITE CHESS ROOK
-2657 WHITE CHESS BISHOP
-2658 WHITE CHESS KNIGHT
-2659 WHITE CHESS PAWN
-265A BLACK CHESS KING
-265B BLACK CHESS QUEEN
-265C BLACK CHESS ROOK
-265D BLACK CHESS BISHOP
-265E BLACK CHESS KNIGHT
-265F BLACK CHESS PAWN
-2660 BLACK SPADE SUIT
-2661 WHITE HEART SUIT
-2662 WHITE DIAMOND SUIT
-2663 BLACK CLUB SUIT
-2664 WHITE SPADE SUIT
-2665 BLACK HEART SUIT
-2666 BLACK DIAMOND SUIT
-2667 WHITE CLUB SUIT
-2668 HOT SPRINGS
-2669 QUARTER NOTE
-266A EIGHTH NOTE
-266B BEAMED EIGHTH NOTES
-266C BEAMED SIXTEENTH NOTES
-266D MUSIC FLAT SIGN
-266E MUSIC NATURAL SIGN
-266F MUSIC SHARP SIGN
-2670 WEST SYRIAC CROSS
-2671 EAST SYRIAC CROSS
-2672 UNIVERSAL RECYCLING SYMBOL
-2673 RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674 RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675 RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676 RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677 RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678 RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679 RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B BLACK UNIVERSAL RECYCLING SYMBOL
-267C RECYCLED PAPER SYMBOL
-267D PARTIALLY-RECYCLED PAPER SYMBOL
-2680 DIE FACE-1
-2681 DIE FACE-2
-2682 DIE FACE-3
-2683 DIE FACE-4
-2684 DIE FACE-5
-2685 DIE FACE-6
-2686 WHITE CIRCLE WITH DOT RIGHT
-2687 WHITE CIRCLE WITH TWO DOTS
-2688 BLACK CIRCLE WITH WHITE DOT RIGHT
-2689 BLACK CIRCLE WITH TWO WHITE DOTS
-2701 UPPER BLADE SCISSORS
-2702 BLACK SCISSORS
-2703 LOWER BLADE SCISSORS
-2704 WHITE SCISSORS
-2706 TELEPHONE LOCATION SIGN
-2707 TAPE DRIVE
-2708 AIRPLANE
-2709 ENVELOPE
-270C VICTORY HAND
-270D WRITING HAND
-270E LOWER RIGHT PENCIL
-270F PENCIL
-2710 UPPER RIGHT PENCIL
-2711 WHITE NIB
-2712 BLACK NIB
-2713 CHECK MARK
-2714 HEAVY CHECK MARK
-2715 MULTIPLICATION X
-2716 HEAVY MULTIPLICATION X
-2717 BALLOT X
-2718 HEAVY BALLOT X
-2719 OUTLINED GREEK CROSS
-271A HEAVY GREEK CROSS
-271B OPEN CENTRE CROSS
-271C HEAVY OPEN CENTRE CROSS
-271D LATIN CROSS
-271E SHADOWED WHITE LATIN CROSS
-271F OUTLINED LATIN CROSS
-2720 MALTESE CROSS
-2721 STAR OF DAVID
-2722 FOUR TEARDROP-SPOKED ASTERISK
-2723 FOUR BALLOON-SPOKED ASTERISK
-2724 HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725 FOUR CLUB-SPOKED ASTERISK
-2726 BLACK FOUR POINTED STAR
-2727 WHITE FOUR POINTED STAR
-2729 STRESS OUTLINED WHITE STAR
-272A CIRCLED WHITE STAR
-272B OPEN CENTRE BLACK STAR
-272C BLACK CENTRE WHITE STAR
-272D OUTLINED BLACK STAR
-272E HEAVY OUTLINED BLACK STAR
-272F PINWHEEL STAR
-2730 SHADOWED WHITE STAR
-2731 HEAVY ASTERISK
-2732 OPEN CENTRE ASTERISK
-2733 EIGHT SPOKED ASTERISK
-2734 EIGHT POINTED BLACK STAR
-2735 EIGHT POINTED PINWHEEL STAR
-2736 SIX POINTED BLACK STAR
-2737 EIGHT POINTED RECTILINEAR BLACK STAR
-2738 HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739 TWELVE POINTED BLACK STAR
-273A SIXTEEN POINTED ASTERISK
-273B TEARDROP-SPOKED ASTERISK
-273C OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D HEAVY TEARDROP-SPOKED ASTERISK
-273E SIX PETALLED BLACK AND WHITE FLORETTE
-273F BLACK FLORETTE
-2740 WHITE FLORETTE
-2741 EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742 CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743 HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744 SNOWFLAKE
-2745 TIGHT TRIFOLIATE SNOWFLAKE
-2746 HEAVY CHEVRON SNOWFLAKE
-2747 SPARKLE
-2748 HEAVY SPARKLE
-2749 BALLOON-SPOKED ASTERISK
-274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274D SHADOWED WHITE CIRCLE
-274F LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750 UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751 LOWER RIGHT SHADOWED WHITE SQUARE
-2752 UPPER RIGHT SHADOWED WHITE SQUARE
-2756 BLACK DIAMOND MINUS WHITE X
-2758 LIGHT VERTICAL BAR
-2759 MEDIUM VERTICAL BAR
-275A HEAVY VERTICAL BAR
-275B HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761 CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762 HEAVY EXCLAMATION MARK ORNAMENT
-2763 HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764 HEAVY BLACK HEART
-2765 ROTATED HEAVY BLACK HEART BULLET
-2766 FLORAL HEART
-2767 ROTATED FLORAL HEART BULLET
-2768 MEDIUM LEFT PARENTHESIS ORNAMENT
-2769 MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770 HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771 HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772 LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773 LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774 MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775 MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2776 DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2777 DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2778 DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2779 DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-277A DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-277B DINGBAT NEGATIVE CIRCLED DIGIT SIX
-277C DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-277D DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-277E DINGBAT NEGATIVE CIRCLED DIGIT NINE
-277F DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2780 DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-2781 DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-2782 DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-2783 DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-2784 DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-2785 DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-2786 DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2787 DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2788 DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2789 DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-278A DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-278B DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-278C DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-278D DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-278E DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-278F DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2790 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2791 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2792 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2793 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-2794 HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2798 HEAVY SOUTH EAST ARROW
-2799 HEAVY RIGHTWARDS ARROW
-279A HEAVY NORTH EAST ARROW
-279B DRAFTING POINT RIGHTWARDS ARROW
-279C HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D TRIANGLE-HEADED RIGHTWARDS ARROW
-279E HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0 HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1 BLACK RIGHTWARDS ARROW
-27A2 THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3 THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4 BLACK RIGHTWARDS ARROWHEAD
-27A5 HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6 HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7 SQUAT BLACK RIGHTWARDS ARROW
-27A8 HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9 RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3 WHITE-FEATHERED RIGHTWARDS ARROW
-27B4 BLACK-FEATHERED SOUTH EAST ARROW
-27B5 BLACK-FEATHERED RIGHTWARDS ARROW
-27B6 BLACK-FEATHERED NORTH EAST ARROW
-27B7 HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8 HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9 HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA TEARDROP-BARBED RIGHTWARDS ARROW
-27BB HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC WEDGE-TAILED RIGHTWARDS ARROW
-27BD HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE OPEN-OUTLINED RIGHTWARDS ARROW
-27D0 WHITE DIAMOND WITH CENTRED DOT
-27D1 AND WITH DOT
-27D2 ELEMENT OF OPENING UPWARDS
-27D3 LOWER RIGHT CORNER WITH DOT
-27D4 UPPER LEFT CORNER WITH DOT
-27D5 LEFT OUTER JOIN
-27D6 RIGHT OUTER JOIN
-27D7 FULL OUTER JOIN
-27D8 LARGE UP TACK
-27D9 LARGE DOWN TACK
-27DA LEFT AND RIGHT DOUBLE TURNSTILE
-27DB LEFT AND RIGHT TACK
-27DC LEFT MULTIMAP
-27DD LONG RIGHT TACK
-27DE LONG LEFT TACK
-27DF UP TACK WITH CIRCLE ABOVE
-27E0 LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1 WHITE CONCAVE-SIDED DIAMOND
-27E2 WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3 WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4 WHITE SQUARE WITH LEFTWARDS TICK
-27E5 WHITE SQUARE WITH RIGHTWARDS TICK
-27E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 MATHEMATICAL LEFT ANGLE BRACKET
-27E9 MATHEMATICAL RIGHT ANGLE BRACKET
-27EA MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27F0 UPWARDS QUADRUPLE ARROW
-27F1 DOWNWARDS QUADRUPLE ARROW
-27F2 ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3 CLOCKWISE GAPPED CIRCLE ARROW
-27F4 RIGHT ARROW WITH CIRCLED PLUS
-27F5 LONG LEFTWARDS ARROW
-27F6 LONG RIGHTWARDS ARROW
-27F7 LONG LEFT RIGHT ARROW
-27F8 LONG LEFTWARDS DOUBLE ARROW
-27F9 LONG RIGHTWARDS DOUBLE ARROW
-27FA LONG LEFT RIGHT DOUBLE ARROW
-27FB LONG LEFTWARDS ARROW FROM BAR
-27FC LONG RIGHTWARDS ARROW FROM BAR
-27FD LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF LONG RIGHTWARDS SQUIGGLE ARROW
-2800 BRAILLE PATTERN BLANK
-2801 BRAILLE PATTERN DOTS-1
-2802 BRAILLE PATTERN DOTS-2
-2803 BRAILLE PATTERN DOTS-12
-2804 BRAILLE PATTERN DOTS-3
-2805 BRAILLE PATTERN DOTS-13
-2806 BRAILLE PATTERN DOTS-23
-2807 BRAILLE PATTERN DOTS-123
-2808 BRAILLE PATTERN DOTS-4
-2809 BRAILLE PATTERN DOTS-14
-280A BRAILLE PATTERN DOTS-24
-280B BRAILLE PATTERN DOTS-124
-280C BRAILLE PATTERN DOTS-34
-280D BRAILLE PATTERN DOTS-134
-280E BRAILLE PATTERN DOTS-234
-280F BRAILLE PATTERN DOTS-1234
-2810 BRAILLE PATTERN DOTS-5
-2811 BRAILLE PATTERN DOTS-15
-2812 BRAILLE PATTERN DOTS-25
-2813 BRAILLE PATTERN DOTS-125
-2814 BRAILLE PATTERN DOTS-35
-2815 BRAILLE PATTERN DOTS-135
-2816 BRAILLE PATTERN DOTS-235
-2817 BRAILLE PATTERN DOTS-1235
-2818 BRAILLE PATTERN DOTS-45
-2819 BRAILLE PATTERN DOTS-145
-281A BRAILLE PATTERN DOTS-245
-281B BRAILLE PATTERN DOTS-1245
-281C BRAILLE PATTERN DOTS-345
-281D BRAILLE PATTERN DOTS-1345
-281E BRAILLE PATTERN DOTS-2345
-281F BRAILLE PATTERN DOTS-12345
-2820 BRAILLE PATTERN DOTS-6
-2821 BRAILLE PATTERN DOTS-16
-2822 BRAILLE PATTERN DOTS-26
-2823 BRAILLE PATTERN DOTS-126
-2824 BRAILLE PATTERN DOTS-36
-2825 BRAILLE PATTERN DOTS-136
-2826 BRAILLE PATTERN DOTS-236
-2827 BRAILLE PATTERN DOTS-1236
-2828 BRAILLE PATTERN DOTS-46
-2829 BRAILLE PATTERN DOTS-146
-282A BRAILLE PATTERN DOTS-246
-282B BRAILLE PATTERN DOTS-1246
-282C BRAILLE PATTERN DOTS-346
-282D BRAILLE PATTERN DOTS-1346
-282E BRAILLE PATTERN DOTS-2346
-282F BRAILLE PATTERN DOTS-12346
-2830 BRAILLE PATTERN DOTS-56
-2831 BRAILLE PATTERN DOTS-156
-2832 BRAILLE PATTERN DOTS-256
-2833 BRAILLE PATTERN DOTS-1256
-2834 BRAILLE PATTERN DOTS-356
-2835 BRAILLE PATTERN DOTS-1356
-2836 BRAILLE PATTERN DOTS-2356
-2837 BRAILLE PATTERN DOTS-12356
-2838 BRAILLE PATTERN DOTS-456
-2839 BRAILLE PATTERN DOTS-1456
-283A BRAILLE PATTERN DOTS-2456
-283B BRAILLE PATTERN DOTS-12456
-283C BRAILLE PATTERN DOTS-3456
-283D BRAILLE PATTERN DOTS-13456
-283E BRAILLE PATTERN DOTS-23456
-283F BRAILLE PATTERN DOTS-123456
-2840 BRAILLE PATTERN DOTS-7
-2841 BRAILLE PATTERN DOTS-17
-2842 BRAILLE PATTERN DOTS-27
-2843 BRAILLE PATTERN DOTS-127
-2844 BRAILLE PATTERN DOTS-37
-2845 BRAILLE PATTERN DOTS-137
-2846 BRAILLE PATTERN DOTS-237
-2847 BRAILLE PATTERN DOTS-1237
-2848 BRAILLE PATTERN DOTS-47
-2849 BRAILLE PATTERN DOTS-147
-284A BRAILLE PATTERN DOTS-247
-284B BRAILLE PATTERN DOTS-1247
-284C BRAILLE PATTERN DOTS-347
-284D BRAILLE PATTERN DOTS-1347
-284E BRAILLE PATTERN DOTS-2347
-284F BRAILLE PATTERN DOTS-12347
-2850 BRAILLE PATTERN DOTS-57
-2851 BRAILLE PATTERN DOTS-157
-2852 BRAILLE PATTERN DOTS-257
-2853 BRAILLE PATTERN DOTS-1257
-2854 BRAILLE PATTERN DOTS-357
-2855 BRAILLE PATTERN DOTS-1357
-2856 BRAILLE PATTERN DOTS-2357
-2857 BRAILLE PATTERN DOTS-12357
-2858 BRAILLE PATTERN DOTS-457
-2859 BRAILLE PATTERN DOTS-1457
-285A BRAILLE PATTERN DOTS-2457
-285B BRAILLE PATTERN DOTS-12457
-285C BRAILLE PATTERN DOTS-3457
-285D BRAILLE PATTERN DOTS-13457
-285E BRAILLE PATTERN DOTS-23457
-285F BRAILLE PATTERN DOTS-123457
-2860 BRAILLE PATTERN DOTS-67
-2861 BRAILLE PATTERN DOTS-167
-2862 BRAILLE PATTERN DOTS-267
-2863 BRAILLE PATTERN DOTS-1267
-2864 BRAILLE PATTERN DOTS-367
-2865 BRAILLE PATTERN DOTS-1367
-2866 BRAILLE PATTERN DOTS-2367
-2867 BRAILLE PATTERN DOTS-12367
-2868 BRAILLE PATTERN DOTS-467
-2869 BRAILLE PATTERN DOTS-1467
-286A BRAILLE PATTERN DOTS-2467
-286B BRAILLE PATTERN DOTS-12467
-286C BRAILLE PATTERN DOTS-3467
-286D BRAILLE PATTERN DOTS-13467
-286E BRAILLE PATTERN DOTS-23467
-286F BRAILLE PATTERN DOTS-123467
-2870 BRAILLE PATTERN DOTS-567
-2871 BRAILLE PATTERN DOTS-1567
-2872 BRAILLE PATTERN DOTS-2567
-2873 BRAILLE PATTERN DOTS-12567
-2874 BRAILLE PATTERN DOTS-3567
-2875 BRAILLE PATTERN DOTS-13567
-2876 BRAILLE PATTERN DOTS-23567
-2877 BRAILLE PATTERN DOTS-123567
-2878 BRAILLE PATTERN DOTS-4567
-2879 BRAILLE PATTERN DOTS-14567
-287A BRAILLE PATTERN DOTS-24567
-287B BRAILLE PATTERN DOTS-124567
-287C BRAILLE PATTERN DOTS-34567
-287D BRAILLE PATTERN DOTS-134567
-287E BRAILLE PATTERN DOTS-234567
-287F BRAILLE PATTERN DOTS-1234567
-2880 BRAILLE PATTERN DOTS-8
-2881 BRAILLE PATTERN DOTS-18
-2882 BRAILLE PATTERN DOTS-28
-2883 BRAILLE PATTERN DOTS-128
-2884 BRAILLE PATTERN DOTS-38
-2885 BRAILLE PATTERN DOTS-138
-2886 BRAILLE PATTERN DOTS-238
-2887 BRAILLE PATTERN DOTS-1238
-2888 BRAILLE PATTERN DOTS-48
-2889 BRAILLE PATTERN DOTS-148
-288A BRAILLE PATTERN DOTS-248
-288B BRAILLE PATTERN DOTS-1248
-288C BRAILLE PATTERN DOTS-348
-288D BRAILLE PATTERN DOTS-1348
-288E BRAILLE PATTERN DOTS-2348
-288F BRAILLE PATTERN DOTS-12348
-2890 BRAILLE PATTERN DOTS-58
-2891 BRAILLE PATTERN DOTS-158
-2892 BRAILLE PATTERN DOTS-258
-2893 BRAILLE PATTERN DOTS-1258
-2894 BRAILLE PATTERN DOTS-358
-2895 BRAILLE PATTERN DOTS-1358
-2896 BRAILLE PATTERN DOTS-2358
-2897 BRAILLE PATTERN DOTS-12358
-2898 BRAILLE PATTERN DOTS-458
-2899 BRAILLE PATTERN DOTS-1458
-289A BRAILLE PATTERN DOTS-2458
-289B BRAILLE PATTERN DOTS-12458
-289C BRAILLE PATTERN DOTS-3458
-289D BRAILLE PATTERN DOTS-13458
-289E BRAILLE PATTERN DOTS-23458
-289F BRAILLE PATTERN DOTS-123458
-28A0 BRAILLE PATTERN DOTS-68
-28A1 BRAILLE PATTERN DOTS-168
-28A2 BRAILLE PATTERN DOTS-268
-28A3 BRAILLE PATTERN DOTS-1268
-28A4 BRAILLE PATTERN DOTS-368
-28A5 BRAILLE PATTERN DOTS-1368
-28A6 BRAILLE PATTERN DOTS-2368
-28A7 BRAILLE PATTERN DOTS-12368
-28A8 BRAILLE PATTERN DOTS-468
-28A9 BRAILLE PATTERN DOTS-1468
-28AA BRAILLE PATTERN DOTS-2468
-28AB BRAILLE PATTERN DOTS-12468
-28AC BRAILLE PATTERN DOTS-3468
-28AD BRAILLE PATTERN DOTS-13468
-28AE BRAILLE PATTERN DOTS-23468
-28AF BRAILLE PATTERN DOTS-123468
-28B0 BRAILLE PATTERN DOTS-568
-28B1 BRAILLE PATTERN DOTS-1568
-28B2 BRAILLE PATTERN DOTS-2568
-28B3 BRAILLE PATTERN DOTS-12568
-28B4 BRAILLE PATTERN DOTS-3568
-28B5 BRAILLE PATTERN DOTS-13568
-28B6 BRAILLE PATTERN DOTS-23568
-28B7 BRAILLE PATTERN DOTS-123568
-28B8 BRAILLE PATTERN DOTS-4568
-28B9 BRAILLE PATTERN DOTS-14568
-28BA BRAILLE PATTERN DOTS-24568
-28BB BRAILLE PATTERN DOTS-124568
-28BC BRAILLE PATTERN DOTS-34568
-28BD BRAILLE PATTERN DOTS-134568
-28BE BRAILLE PATTERN DOTS-234568
-28BF BRAILLE PATTERN DOTS-1234568
-28C0 BRAILLE PATTERN DOTS-78
-28C1 BRAILLE PATTERN DOTS-178
-28C2 BRAILLE PATTERN DOTS-278
-28C3 BRAILLE PATTERN DOTS-1278
-28C4 BRAILLE PATTERN DOTS-378
-28C5 BRAILLE PATTERN DOTS-1378
-28C6 BRAILLE PATTERN DOTS-2378
-28C7 BRAILLE PATTERN DOTS-12378
-28C8 BRAILLE PATTERN DOTS-478
-28C9 BRAILLE PATTERN DOTS-1478
-28CA BRAILLE PATTERN DOTS-2478
-28CB BRAILLE PATTERN DOTS-12478
-28CC BRAILLE PATTERN DOTS-3478
-28CD BRAILLE PATTERN DOTS-13478
-28CE BRAILLE PATTERN DOTS-23478
-28CF BRAILLE PATTERN DOTS-123478
-28D0 BRAILLE PATTERN DOTS-578
-28D1 BRAILLE PATTERN DOTS-1578
-28D2 BRAILLE PATTERN DOTS-2578
-28D3 BRAILLE PATTERN DOTS-12578
-28D4 BRAILLE PATTERN DOTS-3578
-28D5 BRAILLE PATTERN DOTS-13578
-28D6 BRAILLE PATTERN DOTS-23578
-28D7 BRAILLE PATTERN DOTS-123578
-28D8 BRAILLE PATTERN DOTS-4578
-28D9 BRAILLE PATTERN DOTS-14578
-28DA BRAILLE PATTERN DOTS-24578
-28DB BRAILLE PATTERN DOTS-124578
-28DC BRAILLE PATTERN DOTS-34578
-28DD BRAILLE PATTERN DOTS-134578
-28DE BRAILLE PATTERN DOTS-234578
-28DF BRAILLE PATTERN DOTS-1234578
-28E0 BRAILLE PATTERN DOTS-678
-28E1 BRAILLE PATTERN DOTS-1678
-28E2 BRAILLE PATTERN DOTS-2678
-28E3 BRAILLE PATTERN DOTS-12678
-28E4 BRAILLE PATTERN DOTS-3678
-28E5 BRAILLE PATTERN DOTS-13678
-28E6 BRAILLE PATTERN DOTS-23678
-28E7 BRAILLE PATTERN DOTS-123678
-28E8 BRAILLE PATTERN DOTS-4678
-28E9 BRAILLE PATTERN DOTS-14678
-28EA BRAILLE PATTERN DOTS-24678
-28EB BRAILLE PATTERN DOTS-124678
-28EC BRAILLE PATTERN DOTS-34678
-28ED BRAILLE PATTERN DOTS-134678
-28EE BRAILLE PATTERN DOTS-234678
-28EF BRAILLE PATTERN DOTS-1234678
-28F0 BRAILLE PATTERN DOTS-5678
-28F1 BRAILLE PATTERN DOTS-15678
-28F2 BRAILLE PATTERN DOTS-25678
-28F3 BRAILLE PATTERN DOTS-125678
-28F4 BRAILLE PATTERN DOTS-35678
-28F5 BRAILLE PATTERN DOTS-135678
-28F6 BRAILLE PATTERN DOTS-235678
-28F7 BRAILLE PATTERN DOTS-1235678
-28F8 BRAILLE PATTERN DOTS-45678
-28F9 BRAILLE PATTERN DOTS-145678
-28FA BRAILLE PATTERN DOTS-245678
-28FB BRAILLE PATTERN DOTS-1245678
-28FC BRAILLE PATTERN DOTS-345678
-28FD BRAILLE PATTERN DOTS-1345678
-28FE BRAILLE PATTERN DOTS-2345678
-28FF BRAILLE PATTERN DOTS-12345678
-2900 RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901 RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902 LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903 RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904 LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905 RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906 LEFTWARDS DOUBLE ARROW FROM BAR
-2907 RIGHTWARDS DOUBLE ARROW FROM BAR
-2908 DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909 UPWARDS ARROW WITH HORIZONTAL STROKE
-290A UPWARDS TRIPLE ARROW
-290B DOWNWARDS TRIPLE ARROW
-290C LEFTWARDS DOUBLE DASH ARROW
-290D RIGHTWARDS DOUBLE DASH ARROW
-290E LEFTWARDS TRIPLE DASH ARROW
-290F RIGHTWARDS TRIPLE DASH ARROW
-2910 RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911 RIGHTWARDS ARROW WITH DOTTED STEM
-2912 UPWARDS ARROW TO BAR
-2913 DOWNWARDS ARROW TO BAR
-2914 RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915 RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916 RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917 RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918 RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919 LEFTWARDS ARROW-TAIL
-291A RIGHTWARDS ARROW-TAIL
-291B LEFTWARDS DOUBLE ARROW-TAIL
-291C RIGHTWARDS DOUBLE ARROW-TAIL
-291D LEFTWARDS ARROW TO BLACK DIAMOND
-291E RIGHTWARDS ARROW TO BLACK DIAMOND
-291F LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920 RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921 NORTH WEST AND SOUTH EAST ARROW
-2922 NORTH EAST AND SOUTH WEST ARROW
-2923 NORTH WEST ARROW WITH HOOK
-2924 NORTH EAST ARROW WITH HOOK
-2925 SOUTH EAST ARROW WITH HOOK
-2926 SOUTH WEST ARROW WITH HOOK
-2927 NORTH WEST ARROW AND NORTH EAST ARROW
-2928 NORTH EAST ARROW AND SOUTH EAST ARROW
-2929 SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A SOUTH WEST ARROW AND NORTH WEST ARROW
-292B RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930 RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931 NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932 NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933 WAVE ARROW POINTING DIRECTLY RIGHT
-2934 ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935 ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936 ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937 ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938 RIGHT-SIDE ARC CLOCKWISE ARROW
-2939 LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A TOP ARC ANTICLOCKWISE ARROW
-293B BOTTOM ARC ANTICLOCKWISE ARROW
-293C TOP ARC CLOCKWISE ARROW WITH MINUS
-293D TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940 ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941 CLOCKWISE CLOSED CIRCLE ARROW
-2942 RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943 LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944 SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945 RIGHTWARDS ARROW WITH PLUS BELOW
-2946 LEFTWARDS ARROW WITH PLUS BELOW
-2947 RIGHTWARDS ARROW THROUGH X
-2948 LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949 UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E LEFT BARB UP RIGHT BARB UP HARPOON
-294F UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950 LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951 UP BARB LEFT DOWN BARB LEFT HARPOON
-2952 LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953 RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954 UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955 DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956 LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957 RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958 UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959 DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960 UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961 DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962 LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963 UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964 RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965 DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966 LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967 LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968 RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969 RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970 RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971 EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972 TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973 LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974 RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975 RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976 LESS-THAN ABOVE LEFTWARDS ARROW
-2977 LEFTWARDS ARROW THROUGH LESS-THAN
-2978 GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979 SUBSET ABOVE RIGHTWARDS ARROW
-297A LEFTWARDS ARROW THROUGH SUBSET
-297B SUPERSET ABOVE LEFTWARDS ARROW
-297C LEFT FISH TAIL
-297D RIGHT FISH TAIL
-297E UP FISH TAIL
-297F DOWN FISH TAIL
-2980 TRIPLE VERTICAL BAR DELIMITER
-2981 Z NOTATION SPOT
-2982 Z NOTATION TYPE COLON
-2983 LEFT WHITE CURLY BRACKET
-2984 RIGHT WHITE CURLY BRACKET
-2985 LEFT WHITE PARENTHESIS
-2986 RIGHT WHITE PARENTHESIS
-2987 Z NOTATION LEFT IMAGE BRACKET
-2988 Z NOTATION RIGHT IMAGE BRACKET
-2989 Z NOTATION LEFT BINDING BRACKET
-298A Z NOTATION RIGHT BINDING BRACKET
-298B LEFT SQUARE BRACKET WITH UNDERBAR
-298C RIGHT SQUARE BRACKET WITH UNDERBAR
-298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 LEFT ANGLE BRACKET WITH DOT
-2992 RIGHT ANGLE BRACKET WITH DOT
-2993 LEFT ARC LESS-THAN BRACKET
-2994 RIGHT ARC GREATER-THAN BRACKET
-2995 DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 LEFT BLACK TORTOISE SHELL BRACKET
-2998 RIGHT BLACK TORTOISE SHELL BRACKET
-2999 DOTTED FENCE
-299A VERTICAL ZIGZAG LINE
-299B MEASURED ANGLE OPENING LEFT
-299C RIGHT ANGLE VARIANT WITH SQUARE
-299D MEASURED RIGHT ANGLE WITH DOT
-299E ANGLE WITH S INSIDE
-299F ACUTE ANGLE
-29A0 SPHERICAL ANGLE OPENING LEFT
-29A1 SPHERICAL ANGLE OPENING UP
-29A2 TURNED ANGLE
-29A3 REVERSED ANGLE
-29A4 ANGLE WITH UNDERBAR
-29A5 REVERSED ANGLE WITH UNDERBAR
-29A6 OBLIQUE ANGLE OPENING UP
-29A7 OBLIQUE ANGLE OPENING DOWN
-29A8 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0 REVERSED EMPTY SET
-29B1 EMPTY SET WITH OVERBAR
-29B2 EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3 EMPTY SET WITH RIGHT ARROW ABOVE
-29B4 EMPTY SET WITH LEFT ARROW ABOVE
-29B5 CIRCLE WITH HORIZONTAL BAR
-29B6 CIRCLED VERTICAL BAR
-29B7 CIRCLED PARALLEL
-29B8 CIRCLED REVERSE SOLIDUS
-29B9 CIRCLED PERPENDICULAR
-29BA CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB CIRCLE WITH SUPERIMPOSED X
-29BC CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD UP ARROW THROUGH CIRCLE
-29BE CIRCLED WHITE BULLET
-29BF CIRCLED BULLET
-29C0 CIRCLED LESS-THAN
-29C1 CIRCLED GREATER-THAN
-29C2 CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3 CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4 SQUARED RISING DIAGONAL SLASH
-29C5 SQUARED FALLING DIAGONAL SLASH
-29C6 SQUARED ASTERISK
-29C7 SQUARED SMALL CIRCLE
-29C8 SQUARED SQUARE
-29C9 TWO JOINED SQUARES
-29CA TRIANGLE WITH DOT ABOVE
-29CB TRIANGLE WITH UNDERBAR
-29CC S IN TRIANGLE
-29CD TRIANGLE WITH SERIFS AT BOTTOM
-29CE RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0 VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1 BOWTIE WITH LEFT HALF BLACK
-29D2 BOWTIE WITH RIGHT HALF BLACK
-29D3 BLACK BOWTIE
-29D4 TIMES WITH LEFT HALF BLACK
-29D5 TIMES WITH RIGHT HALF BLACK
-29D6 WHITE HOURGLASS
-29D7 BLACK HOURGLASS
-29D8 LEFT WIGGLY FENCE
-29D9 RIGHT WIGGLY FENCE
-29DA LEFT DOUBLE WIGGLY FENCE
-29DB RIGHT DOUBLE WIGGLY FENCE
-29DC INCOMPLETE INFINITY
-29DD TIE OVER INFINITY
-29DE INFINITY NEGATED WITH VERTICAL BAR
-29DF DOUBLE-ENDED MULTIMAP
-29E0 SQUARE WITH CONTOURED OUTLINE
-29E1 INCREASES AS
-29E2 SHUFFLE PRODUCT
-29E3 EQUALS SIGN AND SLANTED PARALLEL
-29E4 EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5 IDENTICAL TO AND SLANTED PARALLEL
-29E6 GLEICH STARK
-29E7 THERMODYNAMIC
-29E8 DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9 DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA BLACK DIAMOND WITH DOWN ARROW
-29EB BLACK LOZENGE
-29EC WHITE CIRCLE WITH DOWN ARROW
-29ED BLACK CIRCLE WITH DOWN ARROW
-29EE ERROR-BARRED WHITE SQUARE
-29EF ERROR-BARRED BLACK SQUARE
-29F0 ERROR-BARRED WHITE DIAMOND
-29F1 ERROR-BARRED BLACK DIAMOND
-29F2 ERROR-BARRED WHITE CIRCLE
-29F3 ERROR-BARRED BLACK CIRCLE
-29F4 RULE-DELAYED
-29F5 REVERSE SOLIDUS OPERATOR
-29F6 SOLIDUS WITH OVERBAR
-29F7 REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8 BIG SOLIDUS
-29F9 BIG REVERSE SOLIDUS
-29FA DOUBLE PLUS
-29FB TRIPLE PLUS
-29FC LEFT-POINTING CURVED ANGLE BRACKET
-29FD RIGHT-POINTING CURVED ANGLE BRACKET
-29FE TINY
-29FF MINY
-2A00 N-ARY CIRCLED DOT OPERATOR
-2A01 N-ARY CIRCLED PLUS OPERATOR
-2A02 N-ARY CIRCLED TIMES OPERATOR
-2A03 N-ARY UNION OPERATOR WITH DOT
-2A04 N-ARY UNION OPERATOR WITH PLUS
-2A05 N-ARY SQUARE INTERSECTION OPERATOR
-2A06 N-ARY SQUARE UNION OPERATOR
-2A07 TWO LOGICAL AND OPERATOR
-2A08 TWO LOGICAL OR OPERATOR
-2A09 N-ARY TIMES OPERATOR
-2A0A MODULO TWO SUM
-2A0B SUMMATION WITH INTEGRAL
-2A0C QUADRUPLE INTEGRAL OPERATOR
-2A0D FINITE PART INTEGRAL
-2A0E INTEGRAL WITH DOUBLE STROKE
-2A0F INTEGRAL AVERAGE WITH SLASH
-2A10 CIRCULATION FUNCTION
-2A11 ANTICLOCKWISE INTEGRATION
-2A12 LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13 LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14 LINE INTEGRATION NOT INCLUDING THE POLE
-2A15 INTEGRAL AROUND A POINT OPERATOR
-2A16 QUATERNION INTEGRAL OPERATOR
-2A17 INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18 INTEGRAL WITH TIMES SIGN
-2A19 INTEGRAL WITH INTERSECTION
-2A1A INTEGRAL WITH UNION
-2A1B INTEGRAL WITH OVERBAR
-2A1C INTEGRAL WITH UNDERBAR
-2A1D JOIN
-2A1E LARGE LEFT TRIANGLE OPERATOR
-2A1F Z NOTATION SCHEMA COMPOSITION
-2A20 Z NOTATION SCHEMA PIPING
-2A21 Z NOTATION SCHEMA PROJECTION
-2A22 PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23 PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24 PLUS SIGN WITH TILDE ABOVE
-2A25 PLUS SIGN WITH DOT BELOW
-2A26 PLUS SIGN WITH TILDE BELOW
-2A27 PLUS SIGN WITH SUBSCRIPT TWO
-2A28 PLUS SIGN WITH BLACK TRIANGLE
-2A29 MINUS SIGN WITH COMMA ABOVE
-2A2A MINUS SIGN WITH DOT BELOW
-2A2B MINUS SIGN WITH FALLING DOTS
-2A2C MINUS SIGN WITH RISING DOTS
-2A2D PLUS SIGN IN LEFT HALF CIRCLE
-2A2E PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F VECTOR OR CROSS PRODUCT
-2A30 MULTIPLICATION SIGN WITH DOT ABOVE
-2A31 MULTIPLICATION SIGN WITH UNDERBAR
-2A32 SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33 SMASH PRODUCT
-2A34 MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35 MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36 CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37 MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38 CIRCLED DIVISION SIGN
-2A39 PLUS SIGN IN TRIANGLE
-2A3A MINUS SIGN IN TRIANGLE
-2A3B MULTIPLICATION SIGN IN TRIANGLE
-2A3C INTERIOR PRODUCT
-2A3D RIGHTHAND INTERIOR PRODUCT
-2A3E Z NOTATION RELATIONAL COMPOSITION
-2A3F AMALGAMATION OR COPRODUCT
-2A40 INTERSECTION WITH DOT
-2A41 UNION WITH MINUS SIGN
-2A42 UNION WITH OVERBAR
-2A43 INTERSECTION WITH OVERBAR
-2A44 INTERSECTION WITH LOGICAL AND
-2A45 UNION WITH LOGICAL OR
-2A46 UNION ABOVE INTERSECTION
-2A47 INTERSECTION ABOVE UNION
-2A48 UNION ABOVE BAR ABOVE INTERSECTION
-2A49 INTERSECTION ABOVE BAR ABOVE UNION
-2A4A UNION BESIDE AND JOINED WITH UNION
-2A4B INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C CLOSED UNION WITH SERIFS
-2A4D CLOSED INTERSECTION WITH SERIFS
-2A4E DOUBLE SQUARE INTERSECTION
-2A4F DOUBLE SQUARE UNION
-2A50 CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51 LOGICAL AND WITH DOT ABOVE
-2A52 LOGICAL OR WITH DOT ABOVE
-2A53 DOUBLE LOGICAL AND
-2A54 DOUBLE LOGICAL OR
-2A55 TWO INTERSECTING LOGICAL AND
-2A56 TWO INTERSECTING LOGICAL OR
-2A57 SLOPING LARGE OR
-2A58 SLOPING LARGE AND
-2A59 LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A LOGICAL AND WITH MIDDLE STEM
-2A5B LOGICAL OR WITH MIDDLE STEM
-2A5C LOGICAL AND WITH HORIZONTAL DASH
-2A5D LOGICAL OR WITH HORIZONTAL DASH
-2A5E LOGICAL AND WITH DOUBLE OVERBAR
-2A5F LOGICAL AND WITH UNDERBAR
-2A60 LOGICAL AND WITH DOUBLE UNDERBAR
-2A61 SMALL VEE WITH UNDERBAR
-2A62 LOGICAL OR WITH DOUBLE OVERBAR
-2A63 LOGICAL OR WITH DOUBLE UNDERBAR
-2A64 Z NOTATION DOMAIN ANTIRESTRICTION
-2A65 Z NOTATION RANGE ANTIRESTRICTION
-2A66 EQUALS SIGN WITH DOT BELOW
-2A67 IDENTICAL WITH DOT ABOVE
-2A68 TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A TILDE OPERATOR WITH DOT ABOVE
-2A6B TILDE OPERATOR WITH RISING DOTS
-2A6C SIMILAR MINUS SIMILAR
-2A6D CONGRUENT WITH DOT ABOVE
-2A6E EQUALS WITH ASTERISK
-2A6F ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70 APPROXIMATELY EQUAL OR EQUAL TO
-2A71 EQUALS SIGN ABOVE PLUS SIGN
-2A72 PLUS SIGN ABOVE EQUALS SIGN
-2A73 EQUALS SIGN ABOVE TILDE OPERATOR
-2A74 DOUBLE COLON EQUAL
-2A75 TWO CONSECUTIVE EQUALS SIGNS
-2A76 THREE CONSECUTIVE EQUALS SIGNS
-2A77 EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78 EQUIVALENT WITH FOUR DOTS ABOVE
-2A79 LESS-THAN WITH CIRCLE INSIDE
-2A7A GREATER-THAN WITH CIRCLE INSIDE
-2A7B LESS-THAN WITH QUESTION MARK ABOVE
-2A7C GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D LESS-THAN OR SLANTED EQUAL TO
-2A7E GREATER-THAN OR SLANTED EQUAL TO
-2A7F LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80 GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81 LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83 LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85 LESS-THAN OR APPROXIMATE
-2A86 GREATER-THAN OR APPROXIMATE
-2A87 LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88 GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89 LESS-THAN AND NOT APPROXIMATE
-2A8A GREATER-THAN AND NOT APPROXIMATE
-2A8B LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90 GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91 LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92 GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93 LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95 SLANTED EQUAL TO OR LESS-THAN
-2A96 SLANTED EQUAL TO OR GREATER-THAN
-2A97 SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98 SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99 DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D SIMILAR OR LESS-THAN
-2A9E SIMILAR OR GREATER-THAN
-2A9F SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0 SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1 DOUBLE NESTED LESS-THAN
-2AA2 DOUBLE NESTED GREATER-THAN
-2AA3 DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4 GREATER-THAN OVERLAPPING LESS-THAN
-2AA5 GREATER-THAN BESIDE LESS-THAN
-2AA6 LESS-THAN CLOSED BY CURVE
-2AA7 GREATER-THAN CLOSED BY CURVE
-2AA8 LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9 GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA SMALLER THAN
-2AAB LARGER THAN
-2AAC SMALLER THAN OR EQUAL TO
-2AAD LARGER THAN OR EQUAL TO
-2AAE EQUALS SIGN WITH BUMPY ABOVE
-2AAF PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0 SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1 PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2 SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3 PRECEDES ABOVE EQUALS SIGN
-2AB4 SUCCEEDS ABOVE EQUALS SIGN
-2AB5 PRECEDES ABOVE NOT EQUAL TO
-2AB6 SUCCEEDS ABOVE NOT EQUAL TO
-2AB7 PRECEDES ABOVE ALMOST EQUAL TO
-2AB8 SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9 PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB DOUBLE PRECEDES
-2ABC DOUBLE SUCCEEDS
-2ABD SUBSET WITH DOT
-2ABE SUPERSET WITH DOT
-2ABF SUBSET WITH PLUS SIGN BELOW
-2AC0 SUPERSET WITH PLUS SIGN BELOW
-2AC1 SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2 SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3 SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4 SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5 SUBSET OF ABOVE EQUALS SIGN
-2AC6 SUPERSET OF ABOVE EQUALS SIGN
-2AC7 SUBSET OF ABOVE TILDE OPERATOR
-2AC8 SUPERSET OF ABOVE TILDE OPERATOR
-2AC9 SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB SUBSET OF ABOVE NOT EQUAL TO
-2ACC SUPERSET OF ABOVE NOT EQUAL TO
-2ACD SQUARE LEFT OPEN BOX OPERATOR
-2ACE SQUARE RIGHT OPEN BOX OPERATOR
-2ACF CLOSED SUBSET
-2AD0 CLOSED SUPERSET
-2AD1 CLOSED SUBSET OR EQUAL TO
-2AD2 CLOSED SUPERSET OR EQUAL TO
-2AD3 SUBSET ABOVE SUPERSET
-2AD4 SUPERSET ABOVE SUBSET
-2AD5 SUBSET ABOVE SUBSET
-2AD6 SUPERSET ABOVE SUPERSET
-2AD7 SUPERSET BESIDE SUBSET
-2AD8 SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9 ELEMENT OF OPENING DOWNWARDS
-2ADA PITCHFORK WITH TEE TOP
-2ADB TRANSVERSAL INTERSECTION
-2ADC FORKING
-2ADD NONFORKING
-2ADE SHORT LEFT TACK
-2ADF SHORT DOWN TACK
-2AE0 SHORT UP TACK
-2AE1 PERPENDICULAR WITH S
-2AE2 VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3 DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4 VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5 DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6 LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7 SHORT DOWN TACK WITH OVERBAR
-2AE8 SHORT UP TACK WITH UNDERBAR
-2AE9 SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA DOUBLE DOWN TACK
-2AEB DOUBLE UP TACK
-2AEC DOUBLE STROKE NOT SIGN
-2AED REVERSED DOUBLE STROKE NOT SIGN
-2AEE DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF VERTICAL LINE WITH CIRCLE ABOVE
-2AF0 VERTICAL LINE WITH CIRCLE BELOW
-2AF1 DOWN TACK WITH CIRCLE BELOW
-2AF2 PARALLEL WITH HORIZONTAL STROKE
-2AF3 PARALLEL WITH TILDE OPERATOR
-2AF4 TRIPLE VERTICAL BAR BINARY RELATION
-2AF5 TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6 TRIPLE COLON OPERATOR
-2AF7 TRIPLE NESTED LESS-THAN
-2AF8 TRIPLE NESTED GREATER-THAN
-2AF9 DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB TRIPLE SOLIDUS BINARY RELATION
-2AFC LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD DOUBLE SOLIDUS OPERATOR
-2AFE WHITE VERTICAL BAR
-2AFF N-ARY WHITE VERTICAL BAR
-2E80 CJK RADICAL REPEAT
-2E81 CJK RADICAL CLIFF
-2E82 CJK RADICAL SECOND ONE
-2E83 CJK RADICAL SECOND TWO
-2E84 CJK RADICAL SECOND THREE
-2E85 CJK RADICAL PERSON
-2E86 CJK RADICAL BOX
-2E87 CJK RADICAL TABLE
-2E88 CJK RADICAL KNIFE ONE
-2E89 CJK RADICAL KNIFE TWO
-2E8A CJK RADICAL DIVINATION
-2E8B CJK RADICAL SEAL
-2E8C CJK RADICAL SMALL ONE
-2E8D CJK RADICAL SMALL TWO
-2E8E CJK RADICAL LAME ONE
-2E8F CJK RADICAL LAME TWO
-2E90 CJK RADICAL LAME THREE
-2E91 CJK RADICAL LAME FOUR
-2E92 CJK RADICAL SNAKE
-2E93 CJK RADICAL THREAD
-2E94 CJK RADICAL SNOUT ONE
-2E95 CJK RADICAL SNOUT TWO
-2E96 CJK RADICAL HEART ONE
-2E97 CJK RADICAL HEART TWO
-2E98 CJK RADICAL HAND
-2E99 CJK RADICAL RAP
-2E9B CJK RADICAL CHOKE
-2E9C CJK RADICAL SUN
-2E9D CJK RADICAL MOON
-2E9E CJK RADICAL DEATH
-2E9F CJK RADICAL MOTHER
-2EA0 CJK RADICAL CIVILIAN
-2EA1 CJK RADICAL WATER ONE
-2EA2 CJK RADICAL WATER TWO
-2EA3 CJK RADICAL FIRE
-2EA4 CJK RADICAL PAW ONE
-2EA5 CJK RADICAL PAW TWO
-2EA6 CJK RADICAL SIMPLIFIED HALF TREE TRUNK
-2EA7 CJK RADICAL COW
-2EA8 CJK RADICAL DOG
-2EA9 CJK RADICAL JADE
-2EAA CJK RADICAL BOLT OF CLOTH
-2EAB CJK RADICAL EYE
-2EAC CJK RADICAL SPIRIT ONE
-2EAD CJK RADICAL SPIRIT TWO
-2EAE CJK RADICAL BAMBOO
-2EAF CJK RADICAL SILK
-2EB0 CJK RADICAL C-SIMPLIFIED SILK
-2EB1 CJK RADICAL NET ONE
-2EB2 CJK RADICAL NET TWO
-2EB3 CJK RADICAL NET THREE
-2EB4 CJK RADICAL NET FOUR
-2EB5 CJK RADICAL MESH
-2EB6 CJK RADICAL SHEEP
-2EB7 CJK RADICAL RAM
-2EB8 CJK RADICAL EWE
-2EB9 CJK RADICAL OLD
-2EBA CJK RADICAL BRUSH ONE
-2EBB CJK RADICAL BRUSH TWO
-2EBC CJK RADICAL MEAT
-2EBD CJK RADICAL MORTAR
-2EBE CJK RADICAL GRASS ONE
-2EBF CJK RADICAL GRASS TWO
-2EC0 CJK RADICAL GRASS THREE
-2EC1 CJK RADICAL TIGER
-2EC2 CJK RADICAL CLOTHES
-2EC3 CJK RADICAL WEST ONE
-2EC4 CJK RADICAL WEST TWO
-2EC5 CJK RADICAL C-SIMPLIFIED SEE
-2EC6 CJK RADICAL SIMPLIFIED HORN
-2EC7 CJK RADICAL HORN
-2EC8 CJK RADICAL C-SIMPLIFIED SPEECH
-2EC9 CJK RADICAL C-SIMPLIFIED SHELL
-2ECA CJK RADICAL FOOT
-2ECB CJK RADICAL C-SIMPLIFIED CART
-2ECC CJK RADICAL SIMPLIFIED WALK
-2ECD CJK RADICAL WALK ONE
-2ECE CJK RADICAL WALK TWO
-2ECF CJK RADICAL CITY
-2ED0 CJK RADICAL C-SIMPLIFIED GOLD
-2ED1 CJK RADICAL LONG ONE
-2ED2 CJK RADICAL LONG TWO
-2ED3 CJK RADICAL C-SIMPLIFIED LONG
-2ED4 CJK RADICAL C-SIMPLIFIED GATE
-2ED5 CJK RADICAL MOUND ONE
-2ED6 CJK RADICAL MOUND TWO
-2ED7 CJK RADICAL RAIN
-2ED8 CJK RADICAL BLUE
-2ED9 CJK RADICAL C-SIMPLIFIED TANNED LEATHER
-2EDA CJK RADICAL C-SIMPLIFIED LEAF
-2EDB CJK RADICAL C-SIMPLIFIED WIND
-2EDC CJK RADICAL C-SIMPLIFIED FLY
-2EDD CJK RADICAL EAT ONE
-2EDE CJK RADICAL EAT TWO
-2EDF CJK RADICAL EAT THREE
-2EE0 CJK RADICAL C-SIMPLIFIED EAT
-2EE1 CJK RADICAL HEAD
-2EE2 CJK RADICAL C-SIMPLIFIED HORSE
-2EE3 CJK RADICAL BONE
-2EE4 CJK RADICAL GHOST
-2EE5 CJK RADICAL C-SIMPLIFIED FISH
-2EE6 CJK RADICAL C-SIMPLIFIED BIRD
-2EE7 CJK RADICAL C-SIMPLIFIED SALT
-2EE8 CJK RADICAL SIMPLIFIED WHEAT
-2EE9 CJK RADICAL SIMPLIFIED YELLOW
-2EEA CJK RADICAL C-SIMPLIFIED FROG
-2EEB CJK RADICAL J-SIMPLIFIED EVEN
-2EEC CJK RADICAL C-SIMPLIFIED EVEN
-2EED CJK RADICAL J-SIMPLIFIED TOOTH
-2EEE CJK RADICAL C-SIMPLIFIED TOOTH
-2EEF CJK RADICAL J-SIMPLIFIED DRAGON
-2EF0 CJK RADICAL C-SIMPLIFIED DRAGON
-2EF1 CJK RADICAL TURTLE
-2EF2 CJK RADICAL J-SIMPLIFIED TURTLE
-2EF3 CJK RADICAL C-SIMPLIFIED TURTLE
-2F00 KANGXI RADICAL ONE
-2F01 KANGXI RADICAL LINE
-2F02 KANGXI RADICAL DOT
-2F03 KANGXI RADICAL SLASH
-2F04 KANGXI RADICAL SECOND
-2F05 KANGXI RADICAL HOOK
-2F06 KANGXI RADICAL TWO
-2F07 KANGXI RADICAL LID
-2F08 KANGXI RADICAL MAN
-2F09 KANGXI RADICAL LEGS
-2F0A KANGXI RADICAL ENTER
-2F0B KANGXI RADICAL EIGHT
-2F0C KANGXI RADICAL DOWN BOX
-2F0D KANGXI RADICAL COVER
-2F0E KANGXI RADICAL ICE
-2F0F KANGXI RADICAL TABLE
-2F10 KANGXI RADICAL OPEN BOX
-2F11 KANGXI RADICAL KNIFE
-2F12 KANGXI RADICAL POWER
-2F13 KANGXI RADICAL WRAP
-2F14 KANGXI RADICAL SPOON
-2F15 KANGXI RADICAL RIGHT OPEN BOX
-2F16 KANGXI RADICAL HIDING ENCLOSURE
-2F17 KANGXI RADICAL TEN
-2F18 KANGXI RADICAL DIVINATION
-2F19 KANGXI RADICAL SEAL
-2F1A KANGXI RADICAL CLIFF
-2F1B KANGXI RADICAL PRIVATE
-2F1C KANGXI RADICAL AGAIN
-2F1D KANGXI RADICAL MOUTH
-2F1E KANGXI RADICAL ENCLOSURE
-2F1F KANGXI RADICAL EARTH
-2F20 KANGXI RADICAL SCHOLAR
-2F21 KANGXI RADICAL GO
-2F22 KANGXI RADICAL GO SLOWLY
-2F23 KANGXI RADICAL EVENING
-2F24 KANGXI RADICAL BIG
-2F25 KANGXI RADICAL WOMAN
-2F26 KANGXI RADICAL CHILD
-2F27 KANGXI RADICAL ROOF
-2F28 KANGXI RADICAL INCH
-2F29 KANGXI RADICAL SMALL
-2F2A KANGXI RADICAL LAME
-2F2B KANGXI RADICAL CORPSE
-2F2C KANGXI RADICAL SPROUT
-2F2D KANGXI RADICAL MOUNTAIN
-2F2E KANGXI RADICAL RIVER
-2F2F KANGXI RADICAL WORK
-2F30 KANGXI RADICAL ONESELF
-2F31 KANGXI RADICAL TURBAN
-2F32 KANGXI RADICAL DRY
-2F33 KANGXI RADICAL SHORT THREAD
-2F34 KANGXI RADICAL DOTTED CLIFF
-2F35 KANGXI RADICAL LONG STRIDE
-2F36 KANGXI RADICAL TWO HANDS
-2F37 KANGXI RADICAL SHOOT
-2F38 KANGXI RADICAL BOW
-2F39 KANGXI RADICAL SNOUT
-2F3A KANGXI RADICAL BRISTLE
-2F3B KANGXI RADICAL STEP
-2F3C KANGXI RADICAL HEART
-2F3D KANGXI RADICAL HALBERD
-2F3E KANGXI RADICAL DOOR
-2F3F KANGXI RADICAL HAND
-2F40 KANGXI RADICAL BRANCH
-2F41 KANGXI RADICAL RAP
-2F42 KANGXI RADICAL SCRIPT
-2F43 KANGXI RADICAL DIPPER
-2F44 KANGXI RADICAL AXE
-2F45 KANGXI RADICAL SQUARE
-2F46 KANGXI RADICAL NOT
-2F47 KANGXI RADICAL SUN
-2F48 KANGXI RADICAL SAY
-2F49 KANGXI RADICAL MOON
-2F4A KANGXI RADICAL TREE
-2F4B KANGXI RADICAL LACK
-2F4C KANGXI RADICAL STOP
-2F4D KANGXI RADICAL DEATH
-2F4E KANGXI RADICAL WEAPON
-2F4F KANGXI RADICAL DO NOT
-2F50 KANGXI RADICAL COMPARE
-2F51 KANGXI RADICAL FUR
-2F52 KANGXI RADICAL CLAN
-2F53 KANGXI RADICAL STEAM
-2F54 KANGXI RADICAL WATER
-2F55 KANGXI RADICAL FIRE
-2F56 KANGXI RADICAL CLAW
-2F57 KANGXI RADICAL FATHER
-2F58 KANGXI RADICAL DOUBLE X
-2F59 KANGXI RADICAL HALF TREE TRUNK
-2F5A KANGXI RADICAL SLICE
-2F5B KANGXI RADICAL FANG
-2F5C KANGXI RADICAL COW
-2F5D KANGXI RADICAL DOG
-2F5E KANGXI RADICAL PROFOUND
-2F5F KANGXI RADICAL JADE
-2F60 KANGXI RADICAL MELON
-2F61 KANGXI RADICAL TILE
-2F62 KANGXI RADICAL SWEET
-2F63 KANGXI RADICAL LIFE
-2F64 KANGXI RADICAL USE
-2F65 KANGXI RADICAL FIELD
-2F66 KANGXI RADICAL BOLT OF CLOTH
-2F67 KANGXI RADICAL SICKNESS
-2F68 KANGXI RADICAL DOTTED TENT
-2F69 KANGXI RADICAL WHITE
-2F6A KANGXI RADICAL SKIN
-2F6B KANGXI RADICAL DISH
-2F6C KANGXI RADICAL EYE
-2F6D KANGXI RADICAL SPEAR
-2F6E KANGXI RADICAL ARROW
-2F6F KANGXI RADICAL STONE
-2F70 KANGXI RADICAL SPIRIT
-2F71 KANGXI RADICAL TRACK
-2F72 KANGXI RADICAL GRAIN
-2F73 KANGXI RADICAL CAVE
-2F74 KANGXI RADICAL STAND
-2F75 KANGXI RADICAL BAMBOO
-2F76 KANGXI RADICAL RICE
-2F77 KANGXI RADICAL SILK
-2F78 KANGXI RADICAL JAR
-2F79 KANGXI RADICAL NET
-2F7A KANGXI RADICAL SHEEP
-2F7B KANGXI RADICAL FEATHER
-2F7C KANGXI RADICAL OLD
-2F7D KANGXI RADICAL AND
-2F7E KANGXI RADICAL PLOW
-2F7F KANGXI RADICAL EAR
-2F80 KANGXI RADICAL BRUSH
-2F81 KANGXI RADICAL MEAT
-2F82 KANGXI RADICAL MINISTER
-2F83 KANGXI RADICAL SELF
-2F84 KANGXI RADICAL ARRIVE
-2F85 KANGXI RADICAL MORTAR
-2F86 KANGXI RADICAL TONGUE
-2F87 KANGXI RADICAL OPPOSE
-2F88 KANGXI RADICAL BOAT
-2F89 KANGXI RADICAL STOPPING
-2F8A KANGXI RADICAL COLOR
-2F8B KANGXI RADICAL GRASS
-2F8C KANGXI RADICAL TIGER
-2F8D KANGXI RADICAL INSECT
-2F8E KANGXI RADICAL BLOOD
-2F8F KANGXI RADICAL WALK ENCLOSURE
-2F90 KANGXI RADICAL CLOTHES
-2F91 KANGXI RADICAL WEST
-2F92 KANGXI RADICAL SEE
-2F93 KANGXI RADICAL HORN
-2F94 KANGXI RADICAL SPEECH
-2F95 KANGXI RADICAL VALLEY
-2F96 KANGXI RADICAL BEAN
-2F97 KANGXI RADICAL PIG
-2F98 KANGXI RADICAL BADGER
-2F99 KANGXI RADICAL SHELL
-2F9A KANGXI RADICAL RED
-2F9B KANGXI RADICAL RUN
-2F9C KANGXI RADICAL FOOT
-2F9D KANGXI RADICAL BODY
-2F9E KANGXI RADICAL CART
-2F9F KANGXI RADICAL BITTER
-2FA0 KANGXI RADICAL MORNING
-2FA1 KANGXI RADICAL WALK
-2FA2 KANGXI RADICAL CITY
-2FA3 KANGXI RADICAL WINE
-2FA4 KANGXI RADICAL DISTINGUISH
-2FA5 KANGXI RADICAL VILLAGE
-2FA6 KANGXI RADICAL GOLD
-2FA7 KANGXI RADICAL LONG
-2FA8 KANGXI RADICAL GATE
-2FA9 KANGXI RADICAL MOUND
-2FAA KANGXI RADICAL SLAVE
-2FAB KANGXI RADICAL SHORT TAILED BIRD
-2FAC KANGXI RADICAL RAIN
-2FAD KANGXI RADICAL BLUE
-2FAE KANGXI RADICAL WRONG
-2FAF KANGXI RADICAL FACE
-2FB0 KANGXI RADICAL LEATHER
-2FB1 KANGXI RADICAL TANNED LEATHER
-2FB2 KANGXI RADICAL LEEK
-2FB3 KANGXI RADICAL SOUND
-2FB4 KANGXI RADICAL LEAF
-2FB5 KANGXI RADICAL WIND
-2FB6 KANGXI RADICAL FLY
-2FB7 KANGXI RADICAL EAT
-2FB8 KANGXI RADICAL HEAD
-2FB9 KANGXI RADICAL FRAGRANT
-2FBA KANGXI RADICAL HORSE
-2FBB KANGXI RADICAL BONE
-2FBC KANGXI RADICAL TALL
-2FBD KANGXI RADICAL HAIR
-2FBE KANGXI RADICAL FIGHT
-2FBF KANGXI RADICAL SACRIFICIAL WINE
-2FC0 KANGXI RADICAL CAULDRON
-2FC1 KANGXI RADICAL GHOST
-2FC2 KANGXI RADICAL FISH
-2FC3 KANGXI RADICAL BIRD
-2FC4 KANGXI RADICAL SALT
-2FC5 KANGXI RADICAL DEER
-2FC6 KANGXI RADICAL WHEAT
-2FC7 KANGXI RADICAL HEMP
-2FC8 KANGXI RADICAL YELLOW
-2FC9 KANGXI RADICAL MILLET
-2FCA KANGXI RADICAL BLACK
-2FCB KANGXI RADICAL EMBROIDERY
-2FCC KANGXI RADICAL FROG
-2FCD KANGXI RADICAL TRIPOD
-2FCE KANGXI RADICAL DRUM
-2FCF KANGXI RADICAL RAT
-2FD0 KANGXI RADICAL NOSE
-2FD1 KANGXI RADICAL EVEN
-2FD2 KANGXI RADICAL TOOTH
-2FD3 KANGXI RADICAL DRAGON
-2FD4 KANGXI RADICAL TURTLE
-2FD5 KANGXI RADICAL FLUTE
-2FF0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4 IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-3000 IDEOGRAPHIC SPACE
-3001 IDEOGRAPHIC COMMA
-3002 IDEOGRAPHIC FULL STOP
-3003 DITTO MARK
-3004 JAPANESE INDUSTRIAL STANDARD SYMBOL
-3005 IDEOGRAPHIC ITERATION MARK
-3006 IDEOGRAPHIC CLOSING MARK
-3007 IDEOGRAPHIC NUMBER ZERO
-3008 LEFT ANGLE BRACKET
-3009 RIGHT ANGLE BRACKET
-300A LEFT DOUBLE ANGLE BRACKET
-300B RIGHT DOUBLE ANGLE BRACKET
-300C LEFT CORNER BRACKET
-300D RIGHT CORNER BRACKET
-300E LEFT WHITE CORNER BRACKET
-300F RIGHT WHITE CORNER BRACKET
-3010 LEFT BLACK LENTICULAR BRACKET
-3011 RIGHT BLACK LENTICULAR BRACKET
-3012 POSTAL MARK
-3013 GETA MARK
-3014 LEFT TORTOISE SHELL BRACKET
-3015 RIGHT TORTOISE SHELL BRACKET
-3016 LEFT WHITE LENTICULAR BRACKET
-3017 RIGHT WHITE LENTICULAR BRACKET
-3018 LEFT WHITE TORTOISE SHELL BRACKET
-3019 RIGHT WHITE TORTOISE SHELL BRACKET
-301A LEFT WHITE SQUARE BRACKET
-301B RIGHT WHITE SQUARE BRACKET
-301C WAVE DASH
-301D REVERSED DOUBLE PRIME QUOTATION MARK
-301E DOUBLE PRIME QUOTATION MARK
-301F LOW DOUBLE PRIME QUOTATION MARK
-3020 POSTAL MARK FACE
-3021 HANGZHOU NUMERAL ONE
-3022 HANGZHOU NUMERAL TWO
-3023 HANGZHOU NUMERAL THREE
-3024 HANGZHOU NUMERAL FOUR
-3025 HANGZHOU NUMERAL FIVE
-3026 HANGZHOU NUMERAL SIX
-3027 HANGZHOU NUMERAL SEVEN
-3028 HANGZHOU NUMERAL EIGHT
-3029 HANGZHOU NUMERAL NINE
-302A IDEOGRAPHIC LEVEL TONE MARK
-302B IDEOGRAPHIC RISING TONE MARK
-302C IDEOGRAPHIC DEPARTING TONE MARK
-302D IDEOGRAPHIC ENTERING TONE MARK
-302E HANGUL SINGLE DOT TONE MARK
-302F HANGUL DOUBLE DOT TONE MARK
-3030 WAVY DASH
-3031 VERTICAL KANA REPEAT MARK
-3032 VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033 VERTICAL KANA REPEAT MARK UPPER HALF
-3034 VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035 VERTICAL KANA REPEAT MARK LOWER HALF
-3036 CIRCLED POSTAL MARK
-3037 IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-3038 HANGZHOU NUMERAL TEN
-3039 HANGZHOU NUMERAL TWENTY
-303A HANGZHOU NUMERAL THIRTY
-303B VERTICAL IDEOGRAPHIC ITERATION MARK
-303C MASU MARK
-303D PART ALTERNATION MARK
-303E IDEOGRAPHIC VARIATION INDICATOR
-303F IDEOGRAPHIC HALF FILL SPACE
-3041 HIRAGANA LETTER SMALL A
-3042 HIRAGANA LETTER A
-3043 HIRAGANA LETTER SMALL I
-3044 HIRAGANA LETTER I
-3045 HIRAGANA LETTER SMALL U
-3046 HIRAGANA LETTER U
-3047 HIRAGANA LETTER SMALL E
-3048 HIRAGANA LETTER E
-3049 HIRAGANA LETTER SMALL O
-304A HIRAGANA LETTER O
-304B HIRAGANA LETTER KA
-304C HIRAGANA LETTER GA
-304D HIRAGANA LETTER KI
-304E HIRAGANA LETTER GI
-304F HIRAGANA LETTER KU
-3050 HIRAGANA LETTER GU
-3051 HIRAGANA LETTER KE
-3052 HIRAGANA LETTER GE
-3053 HIRAGANA LETTER KO
-3054 HIRAGANA LETTER GO
-3055 HIRAGANA LETTER SA
-3056 HIRAGANA LETTER ZA
-3057 HIRAGANA LETTER SI
-3058 HIRAGANA LETTER ZI
-3059 HIRAGANA LETTER SU
-305A HIRAGANA LETTER ZU
-305B HIRAGANA LETTER SE
-305C HIRAGANA LETTER ZE
-305D HIRAGANA LETTER SO
-305E HIRAGANA LETTER ZO
-305F HIRAGANA LETTER TA
-3060 HIRAGANA LETTER DA
-3061 HIRAGANA LETTER TI
-3062 HIRAGANA LETTER DI
-3063 HIRAGANA LETTER SMALL TU
-3064 HIRAGANA LETTER TU
-3065 HIRAGANA LETTER DU
-3066 HIRAGANA LETTER TE
-3067 HIRAGANA LETTER DE
-3068 HIRAGANA LETTER TO
-3069 HIRAGANA LETTER DO
-306A HIRAGANA LETTER NA
-306B HIRAGANA LETTER NI
-306C HIRAGANA LETTER NU
-306D HIRAGANA LETTER NE
-306E HIRAGANA LETTER NO
-306F HIRAGANA LETTER HA
-3070 HIRAGANA LETTER BA
-3071 HIRAGANA LETTER PA
-3072 HIRAGANA LETTER HI
-3073 HIRAGANA LETTER BI
-3074 HIRAGANA LETTER PI
-3075 HIRAGANA LETTER HU
-3076 HIRAGANA LETTER BU
-3077 HIRAGANA LETTER PU
-3078 HIRAGANA LETTER HE
-3079 HIRAGANA LETTER BE
-307A HIRAGANA LETTER PE
-307B HIRAGANA LETTER HO
-307C HIRAGANA LETTER BO
-307D HIRAGANA LETTER PO
-307E HIRAGANA LETTER MA
-307F HIRAGANA LETTER MI
-3080 HIRAGANA LETTER MU
-3081 HIRAGANA LETTER ME
-3082 HIRAGANA LETTER MO
-3083 HIRAGANA LETTER SMALL YA
-3084 HIRAGANA LETTER YA
-3085 HIRAGANA LETTER SMALL YU
-3086 HIRAGANA LETTER YU
-3087 HIRAGANA LETTER SMALL YO
-3088 HIRAGANA LETTER YO
-3089 HIRAGANA LETTER RA
-308A HIRAGANA LETTER RI
-308B HIRAGANA LETTER RU
-308C HIRAGANA LETTER RE
-308D HIRAGANA LETTER RO
-308E HIRAGANA LETTER SMALL WA
-308F HIRAGANA LETTER WA
-3090 HIRAGANA LETTER WI
-3091 HIRAGANA LETTER WE
-3092 HIRAGANA LETTER WO
-3093 HIRAGANA LETTER N
-3094 HIRAGANA LETTER VU
-3095 HIRAGANA LETTER SMALL KA
-3096 HIRAGANA LETTER SMALL KE
-3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
-309A COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B KATAKANA-HIRAGANA VOICED SOUND MARK
-309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309D HIRAGANA ITERATION MARK
-309E HIRAGANA VOICED ITERATION MARK
-309F HIRAGANA DIGRAPH YORI
-30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN
-30A1 KATAKANA LETTER SMALL A
-30A2 KATAKANA LETTER A
-30A3 KATAKANA LETTER SMALL I
-30A4 KATAKANA LETTER I
-30A5 KATAKANA LETTER SMALL U
-30A6 KATAKANA LETTER U
-30A7 KATAKANA LETTER SMALL E
-30A8 KATAKANA LETTER E
-30A9 KATAKANA LETTER SMALL O
-30AA KATAKANA LETTER O
-30AB KATAKANA LETTER KA
-30AC KATAKANA LETTER GA
-30AD KATAKANA LETTER KI
-30AE KATAKANA LETTER GI
-30AF KATAKANA LETTER KU
-30B0 KATAKANA LETTER GU
-30B1 KATAKANA LETTER KE
-30B2 KATAKANA LETTER GE
-30B3 KATAKANA LETTER KO
-30B4 KATAKANA LETTER GO
-30B5 KATAKANA LETTER SA
-30B6 KATAKANA LETTER ZA
-30B7 KATAKANA LETTER SI
-30B8 KATAKANA LETTER ZI
-30B9 KATAKANA LETTER SU
-30BA KATAKANA LETTER ZU
-30BB KATAKANA LETTER SE
-30BC KATAKANA LETTER ZE
-30BD KATAKANA LETTER SO
-30BE KATAKANA LETTER ZO
-30BF KATAKANA LETTER TA
-30C0 KATAKANA LETTER DA
-30C1 KATAKANA LETTER TI
-30C2 KATAKANA LETTER DI
-30C3 KATAKANA LETTER SMALL TU
-30C4 KATAKANA LETTER TU
-30C5 KATAKANA LETTER DU
-30C6 KATAKANA LETTER TE
-30C7 KATAKANA LETTER DE
-30C8 KATAKANA LETTER TO
-30C9 KATAKANA LETTER DO
-30CA KATAKANA LETTER NA
-30CB KATAKANA LETTER NI
-30CC KATAKANA LETTER NU
-30CD KATAKANA LETTER NE
-30CE KATAKANA LETTER NO
-30CF KATAKANA LETTER HA
-30D0 KATAKANA LETTER BA
-30D1 KATAKANA LETTER PA
-30D2 KATAKANA LETTER HI
-30D3 KATAKANA LETTER BI
-30D4 KATAKANA LETTER PI
-30D5 KATAKANA LETTER HU
-30D6 KATAKANA LETTER BU
-30D7 KATAKANA LETTER PU
-30D8 KATAKANA LETTER HE
-30D9 KATAKANA LETTER BE
-30DA KATAKANA LETTER PE
-30DB KATAKANA LETTER HO
-30DC KATAKANA LETTER BO
-30DD KATAKANA LETTER PO
-30DE KATAKANA LETTER MA
-30DF KATAKANA LETTER MI
-30E0 KATAKANA LETTER MU
-30E1 KATAKANA LETTER ME
-30E2 KATAKANA LETTER MO
-30E3 KATAKANA LETTER SMALL YA
-30E4 KATAKANA LETTER YA
-30E5 KATAKANA LETTER SMALL YU
-30E6 KATAKANA LETTER YU
-30E7 KATAKANA LETTER SMALL YO
-30E8 KATAKANA LETTER YO
-30E9 KATAKANA LETTER RA
-30EA KATAKANA LETTER RI
-30EB KATAKANA LETTER RU
-30EC KATAKANA LETTER RE
-30ED KATAKANA LETTER RO
-30EE KATAKANA LETTER SMALL WA
-30EF KATAKANA LETTER WA
-30F0 KATAKANA LETTER WI
-30F1 KATAKANA LETTER WE
-30F2 KATAKANA LETTER WO
-30F3 KATAKANA LETTER N
-30F4 KATAKANA LETTER VU
-30F5 KATAKANA LETTER SMALL KA
-30F6 KATAKANA LETTER SMALL KE
-30F7 KATAKANA LETTER VA
-30F8 KATAKANA LETTER VI
-30F9 KATAKANA LETTER VE
-30FA KATAKANA LETTER VO
-30FB KATAKANA MIDDLE DOT
-30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD KATAKANA ITERATION MARK
-30FE KATAKANA VOICED ITERATION MARK
-30FF KATAKANA DIGRAPH KOTO
-3105 BOPOMOFO LETTER B
-3106 BOPOMOFO LETTER P
-3107 BOPOMOFO LETTER M
-3108 BOPOMOFO LETTER F
-3109 BOPOMOFO LETTER D
-310A BOPOMOFO LETTER T
-310B BOPOMOFO LETTER N
-310C BOPOMOFO LETTER L
-310D BOPOMOFO LETTER G
-310E BOPOMOFO LETTER K
-310F BOPOMOFO LETTER H
-3110 BOPOMOFO LETTER J
-3111 BOPOMOFO LETTER Q
-3112 BOPOMOFO LETTER X
-3113 BOPOMOFO LETTER ZH
-3114 BOPOMOFO LETTER CH
-3115 BOPOMOFO LETTER SH
-3116 BOPOMOFO LETTER R
-3117 BOPOMOFO LETTER Z
-3118 BOPOMOFO LETTER C
-3119 BOPOMOFO LETTER S
-311A BOPOMOFO LETTER A
-311B BOPOMOFO LETTER O
-311C BOPOMOFO LETTER E
-311D BOPOMOFO LETTER EH
-311E BOPOMOFO LETTER AI
-311F BOPOMOFO LETTER EI
-3120 BOPOMOFO LETTER AU
-3121 BOPOMOFO LETTER OU
-3122 BOPOMOFO LETTER AN
-3123 BOPOMOFO LETTER EN
-3124 BOPOMOFO LETTER ANG
-3125 BOPOMOFO LETTER ENG
-3126 BOPOMOFO LETTER ER
-3127 BOPOMOFO LETTER I
-3128 BOPOMOFO LETTER U
-3129 BOPOMOFO LETTER IU
-312A BOPOMOFO LETTER V
-312B BOPOMOFO LETTER NG
-312C BOPOMOFO LETTER GN
-3131 HANGUL LETTER KIYEOK
-3132 HANGUL LETTER SSANGKIYEOK
-3133 HANGUL LETTER KIYEOK-SIOS
-3134 HANGUL LETTER NIEUN
-3135 HANGUL LETTER NIEUN-CIEUC
-3136 HANGUL LETTER NIEUN-HIEUH
-3137 HANGUL LETTER TIKEUT
-3138 HANGUL LETTER SSANGTIKEUT
-3139 HANGUL LETTER RIEUL
-313A HANGUL LETTER RIEUL-KIYEOK
-313B HANGUL LETTER RIEUL-MIEUM
-313C HANGUL LETTER RIEUL-PIEUP
-313D HANGUL LETTER RIEUL-SIOS
-313E HANGUL LETTER RIEUL-THIEUTH
-313F HANGUL LETTER RIEUL-PHIEUPH
-3140 HANGUL LETTER RIEUL-HIEUH
-3141 HANGUL LETTER MIEUM
-3142 HANGUL LETTER PIEUP
-3143 HANGUL LETTER SSANGPIEUP
-3144 HANGUL LETTER PIEUP-SIOS
-3145 HANGUL LETTER SIOS
-3146 HANGUL LETTER SSANGSIOS
-3147 HANGUL LETTER IEUNG
-3148 HANGUL LETTER CIEUC
-3149 HANGUL LETTER SSANGCIEUC
-314A HANGUL LETTER CHIEUCH
-314B HANGUL LETTER KHIEUKH
-314C HANGUL LETTER THIEUTH
-314D HANGUL LETTER PHIEUPH
-314E HANGUL LETTER HIEUH
-314F HANGUL LETTER A
-3150 HANGUL LETTER AE
-3151 HANGUL LETTER YA
-3152 HANGUL LETTER YAE
-3153 HANGUL LETTER EO
-3154 HANGUL LETTER E
-3155 HANGUL LETTER YEO
-3156 HANGUL LETTER YE
-3157 HANGUL LETTER O
-3158 HANGUL LETTER WA
-3159 HANGUL LETTER WAE
-315A HANGUL LETTER OE
-315B HANGUL LETTER YO
-315C HANGUL LETTER U
-315D HANGUL LETTER WEO
-315E HANGUL LETTER WE
-315F HANGUL LETTER WI
-3160 HANGUL LETTER YU
-3161 HANGUL LETTER EU
-3162 HANGUL LETTER YI
-3163 HANGUL LETTER I
-3164 HANGUL FILLER
-3165 HANGUL LETTER SSANGNIEUN
-3166 HANGUL LETTER NIEUN-TIKEUT
-3167 HANGUL LETTER NIEUN-SIOS
-3168 HANGUL LETTER NIEUN-PANSIOS
-3169 HANGUL LETTER RIEUL-KIYEOK-SIOS
-316A HANGUL LETTER RIEUL-TIKEUT
-316B HANGUL LETTER RIEUL-PIEUP-SIOS
-316C HANGUL LETTER RIEUL-PANSIOS
-316D HANGUL LETTER RIEUL-YEORINHIEUH
-316E HANGUL LETTER MIEUM-PIEUP
-316F HANGUL LETTER MIEUM-SIOS
-3170 HANGUL LETTER MIEUM-PANSIOS
-3171 HANGUL LETTER KAPYEOUNMIEUM
-3172 HANGUL LETTER PIEUP-KIYEOK
-3173 HANGUL LETTER PIEUP-TIKEUT
-3174 HANGUL LETTER PIEUP-SIOS-KIYEOK
-3175 HANGUL LETTER PIEUP-SIOS-TIKEUT
-3176 HANGUL LETTER PIEUP-CIEUC
-3177 HANGUL LETTER PIEUP-THIEUTH
-3178 HANGUL LETTER KAPYEOUNPIEUP
-3179 HANGUL LETTER KAPYEOUNSSANGPIEUP
-317A HANGUL LETTER SIOS-KIYEOK
-317B HANGUL LETTER SIOS-NIEUN
-317C HANGUL LETTER SIOS-TIKEUT
-317D HANGUL LETTER SIOS-PIEUP
-317E HANGUL LETTER SIOS-CIEUC
-317F HANGUL LETTER PANSIOS
-3180 HANGUL LETTER SSANGIEUNG
-3181 HANGUL LETTER YESIEUNG
-3182 HANGUL LETTER YESIEUNG-SIOS
-3183 HANGUL LETTER YESIEUNG-PANSIOS
-3184 HANGUL LETTER KAPYEOUNPHIEUPH
-3185 HANGUL LETTER SSANGHIEUH
-3186 HANGUL LETTER YEORINHIEUH
-3187 HANGUL LETTER YO-YA
-3188 HANGUL LETTER YO-YAE
-3189 HANGUL LETTER YO-I
-318A HANGUL LETTER YU-YEO
-318B HANGUL LETTER YU-YE
-318C HANGUL LETTER YU-I
-318D HANGUL LETTER ARAEA
-318E HANGUL LETTER ARAEAE
-3190 IDEOGRAPHIC ANNOTATION LINKING MARK
-3191 IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192 IDEOGRAPHIC ANNOTATION ONE MARK
-3193 IDEOGRAPHIC ANNOTATION TWO MARK
-3194 IDEOGRAPHIC ANNOTATION THREE MARK
-3195 IDEOGRAPHIC ANNOTATION FOUR MARK
-3196 IDEOGRAPHIC ANNOTATION TOP MARK
-3197 IDEOGRAPHIC ANNOTATION MIDDLE MARK
-3198 IDEOGRAPHIC ANNOTATION BOTTOM MARK
-3199 IDEOGRAPHIC ANNOTATION FIRST MARK
-319A IDEOGRAPHIC ANNOTATION SECOND MARK
-319B IDEOGRAPHIC ANNOTATION THIRD MARK
-319C IDEOGRAPHIC ANNOTATION FOURTH MARK
-319D IDEOGRAPHIC ANNOTATION HEAVEN MARK
-319E IDEOGRAPHIC ANNOTATION EARTH MARK
-319F IDEOGRAPHIC ANNOTATION MAN MARK
-31A0 BOPOMOFO LETTER BU
-31A1 BOPOMOFO LETTER ZI
-31A2 BOPOMOFO LETTER JI
-31A3 BOPOMOFO LETTER GU
-31A4 BOPOMOFO LETTER EE
-31A5 BOPOMOFO LETTER ENN
-31A6 BOPOMOFO LETTER OO
-31A7 BOPOMOFO LETTER ONN
-31A8 BOPOMOFO LETTER IR
-31A9 BOPOMOFO LETTER ANN
-31AA BOPOMOFO LETTER INN
-31AB BOPOMOFO LETTER UNN
-31AC BOPOMOFO LETTER IM
-31AD BOPOMOFO LETTER NGG
-31AE BOPOMOFO LETTER AINN
-31AF BOPOMOFO LETTER AUNN
-31B0 BOPOMOFO LETTER AM
-31B1 BOPOMOFO LETTER OM
-31B2 BOPOMOFO LETTER ONG
-31B3 BOPOMOFO LETTER INNN
-31B4 BOPOMOFO FINAL LETTER P
-31B5 BOPOMOFO FINAL LETTER T
-31B6 BOPOMOFO FINAL LETTER K
-31B7 BOPOMOFO FINAL LETTER H
-31F0 KATAKANA LETTER SMALL KU
-31F1 KATAKANA LETTER SMALL SI
-31F2 KATAKANA LETTER SMALL SU
-31F3 KATAKANA LETTER SMALL TO
-31F4 KATAKANA LETTER SMALL NU
-31F5 KATAKANA LETTER SMALL HA
-31F6 KATAKANA LETTER SMALL HI
-31F7 KATAKANA LETTER SMALL HU
-31F8 KATAKANA LETTER SMALL HE
-31F9 KATAKANA LETTER SMALL HO
-31FA KATAKANA LETTER SMALL MU
-31FB KATAKANA LETTER SMALL RA
-31FC KATAKANA LETTER SMALL RI
-31FD KATAKANA LETTER SMALL RU
-31FE KATAKANA LETTER SMALL RE
-31FF KATAKANA LETTER SMALL RO
-3200 PARENTHESIZED HANGUL KIYEOK
-3201 PARENTHESIZED HANGUL NIEUN
-3202 PARENTHESIZED HANGUL TIKEUT
-3203 PARENTHESIZED HANGUL RIEUL
-3204 PARENTHESIZED HANGUL MIEUM
-3205 PARENTHESIZED HANGUL PIEUP
-3206 PARENTHESIZED HANGUL SIOS
-3207 PARENTHESIZED HANGUL IEUNG
-3208 PARENTHESIZED HANGUL CIEUC
-3209 PARENTHESIZED HANGUL CHIEUCH
-320A PARENTHESIZED HANGUL KHIEUKH
-320B PARENTHESIZED HANGUL THIEUTH
-320C PARENTHESIZED HANGUL PHIEUPH
-320D PARENTHESIZED HANGUL HIEUH
-320E PARENTHESIZED HANGUL KIYEOK A
-320F PARENTHESIZED HANGUL NIEUN A
-3210 PARENTHESIZED HANGUL TIKEUT A
-3211 PARENTHESIZED HANGUL RIEUL A
-3212 PARENTHESIZED HANGUL MIEUM A
-3213 PARENTHESIZED HANGUL PIEUP A
-3214 PARENTHESIZED HANGUL SIOS A
-3215 PARENTHESIZED HANGUL IEUNG A
-3216 PARENTHESIZED HANGUL CIEUC A
-3217 PARENTHESIZED HANGUL CHIEUCH A
-3218 PARENTHESIZED HANGUL KHIEUKH A
-3219 PARENTHESIZED HANGUL THIEUTH A
-321A PARENTHESIZED HANGUL PHIEUPH A
-321B PARENTHESIZED HANGUL HIEUH A
-321C PARENTHESIZED HANGUL CIEUC U
-3220 PARENTHESIZED IDEOGRAPH ONE
-3221 PARENTHESIZED IDEOGRAPH TWO
-3222 PARENTHESIZED IDEOGRAPH THREE
-3223 PARENTHESIZED IDEOGRAPH FOUR
-3224 PARENTHESIZED IDEOGRAPH FIVE
-3225 PARENTHESIZED IDEOGRAPH SIX
-3226 PARENTHESIZED IDEOGRAPH SEVEN
-3227 PARENTHESIZED IDEOGRAPH EIGHT
-3228 PARENTHESIZED IDEOGRAPH NINE
-3229 PARENTHESIZED IDEOGRAPH TEN
-322A PARENTHESIZED IDEOGRAPH MOON
-322B PARENTHESIZED IDEOGRAPH FIRE
-322C PARENTHESIZED IDEOGRAPH WATER
-322D PARENTHESIZED IDEOGRAPH WOOD
-322E PARENTHESIZED IDEOGRAPH METAL
-322F PARENTHESIZED IDEOGRAPH EARTH
-3230 PARENTHESIZED IDEOGRAPH SUN
-3231 PARENTHESIZED IDEOGRAPH STOCK
-3232 PARENTHESIZED IDEOGRAPH HAVE
-3233 PARENTHESIZED IDEOGRAPH SOCIETY
-3234 PARENTHESIZED IDEOGRAPH NAME
-3235 PARENTHESIZED IDEOGRAPH SPECIAL
-3236 PARENTHESIZED IDEOGRAPH FINANCIAL
-3237 PARENTHESIZED IDEOGRAPH CONGRATULATION
-3238 PARENTHESIZED IDEOGRAPH LABOR
-3239 PARENTHESIZED IDEOGRAPH REPRESENT
-323A PARENTHESIZED IDEOGRAPH CALL
-323B PARENTHESIZED IDEOGRAPH STUDY
-323C PARENTHESIZED IDEOGRAPH SUPERVISE
-323D PARENTHESIZED IDEOGRAPH ENTERPRISE
-323E PARENTHESIZED IDEOGRAPH RESOURCE
-323F PARENTHESIZED IDEOGRAPH ALLIANCE
-3240 PARENTHESIZED IDEOGRAPH FESTIVAL
-3241 PARENTHESIZED IDEOGRAPH REST
-3242 PARENTHESIZED IDEOGRAPH SELF
-3243 PARENTHESIZED IDEOGRAPH REACH
-3251 CIRCLED NUMBER TWENTY ONE
-3252 CIRCLED NUMBER TWENTY TWO
-3253 CIRCLED NUMBER TWENTY THREE
-3254 CIRCLED NUMBER TWENTY FOUR
-3255 CIRCLED NUMBER TWENTY FIVE
-3256 CIRCLED NUMBER TWENTY SIX
-3257 CIRCLED NUMBER TWENTY SEVEN
-3258 CIRCLED NUMBER TWENTY EIGHT
-3259 CIRCLED NUMBER TWENTY NINE
-325A CIRCLED NUMBER THIRTY
-325B CIRCLED NUMBER THIRTY ONE
-325C CIRCLED NUMBER THIRTY TWO
-325D CIRCLED NUMBER THIRTY THREE
-325E CIRCLED NUMBER THIRTY FOUR
-325F CIRCLED NUMBER THIRTY FIVE
-3260 CIRCLED HANGUL KIYEOK
-3261 CIRCLED HANGUL NIEUN
-3262 CIRCLED HANGUL TIKEUT
-3263 CIRCLED HANGUL RIEUL
-3264 CIRCLED HANGUL MIEUM
-3265 CIRCLED HANGUL PIEUP
-3266 CIRCLED HANGUL SIOS
-3267 CIRCLED HANGUL IEUNG
-3268 CIRCLED HANGUL CIEUC
-3269 CIRCLED HANGUL CHIEUCH
-326A CIRCLED HANGUL KHIEUKH
-326B CIRCLED HANGUL THIEUTH
-326C CIRCLED HANGUL PHIEUPH
-326D CIRCLED HANGUL HIEUH
-326E CIRCLED HANGUL KIYEOK A
-326F CIRCLED HANGUL NIEUN A
-3270 CIRCLED HANGUL TIKEUT A
-3271 CIRCLED HANGUL RIEUL A
-3272 CIRCLED HANGUL MIEUM A
-3273 CIRCLED HANGUL PIEUP A
-3274 CIRCLED HANGUL SIOS A
-3275 CIRCLED HANGUL IEUNG A
-3276 CIRCLED HANGUL CIEUC A
-3277 CIRCLED HANGUL CHIEUCH A
-3278 CIRCLED HANGUL KHIEUKH A
-3279 CIRCLED HANGUL THIEUTH A
-327A CIRCLED HANGUL PHIEUPH A
-327B CIRCLED HANGUL HIEUH A
-327F KOREAN STANDARD SYMBOL
-3280 CIRCLED IDEOGRAPH ONE
-3281 CIRCLED IDEOGRAPH TWO
-3282 CIRCLED IDEOGRAPH THREE
-3283 CIRCLED IDEOGRAPH FOUR
-3284 CIRCLED IDEOGRAPH FIVE
-3285 CIRCLED IDEOGRAPH SIX
-3286 CIRCLED IDEOGRAPH SEVEN
-3287 CIRCLED IDEOGRAPH EIGHT
-3288 CIRCLED IDEOGRAPH NINE
-3289 CIRCLED IDEOGRAPH TEN
-328A CIRCLED IDEOGRAPH MOON
-328B CIRCLED IDEOGRAPH FIRE
-328C CIRCLED IDEOGRAPH WATER
-328D CIRCLED IDEOGRAPH WOOD
-328E CIRCLED IDEOGRAPH METAL
-328F CIRCLED IDEOGRAPH EARTH
-3290 CIRCLED IDEOGRAPH SUN
-3291 CIRCLED IDEOGRAPH STOCK
-3292 CIRCLED IDEOGRAPH HAVE
-3293 CIRCLED IDEOGRAPH SOCIETY
-3294 CIRCLED IDEOGRAPH NAME
-3295 CIRCLED IDEOGRAPH SPECIAL
-3296 CIRCLED IDEOGRAPH FINANCIAL
-3297 CIRCLED IDEOGRAPH CONGRATULATION
-3298 CIRCLED IDEOGRAPH LABOR
-3299 CIRCLED IDEOGRAPH SECRET
-329A CIRCLED IDEOGRAPH MALE
-329B CIRCLED IDEOGRAPH FEMALE
-329C CIRCLED IDEOGRAPH SUITABLE
-329D CIRCLED IDEOGRAPH EXCELLENT
-329E CIRCLED IDEOGRAPH PRINT
-329F CIRCLED IDEOGRAPH ATTENTION
-32A0 CIRCLED IDEOGRAPH ITEM
-32A1 CIRCLED IDEOGRAPH REST
-32A2 CIRCLED IDEOGRAPH COPY
-32A3 CIRCLED IDEOGRAPH CORRECT
-32A4 CIRCLED IDEOGRAPH HIGH
-32A5 CIRCLED IDEOGRAPH CENTRE
-32A6 CIRCLED IDEOGRAPH LOW
-32A7 CIRCLED IDEOGRAPH LEFT
-32A8 CIRCLED IDEOGRAPH RIGHT
-32A9 CIRCLED IDEOGRAPH MEDICINE
-32AA CIRCLED IDEOGRAPH RELIGION
-32AB CIRCLED IDEOGRAPH STUDY
-32AC CIRCLED IDEOGRAPH SUPERVISE
-32AD CIRCLED IDEOGRAPH ENTERPRISE
-32AE CIRCLED IDEOGRAPH RESOURCE
-32AF CIRCLED IDEOGRAPH ALLIANCE
-32B0 CIRCLED IDEOGRAPH NIGHT
-32B1 CIRCLED NUMBER THIRTY SIX
-32B2 CIRCLED NUMBER THIRTY SEVEN
-32B3 CIRCLED NUMBER THIRTY EIGHT
-32B4 CIRCLED NUMBER THIRTY NINE
-32B5 CIRCLED NUMBER FORTY
-32B6 CIRCLED NUMBER FORTY ONE
-32B7 CIRCLED NUMBER FORTY TWO
-32B8 CIRCLED NUMBER FORTY THREE
-32B9 CIRCLED NUMBER FORTY FOUR
-32BA CIRCLED NUMBER FORTY FIVE
-32BB CIRCLED NUMBER FORTY SIX
-32BC CIRCLED NUMBER FORTY SEVEN
-32BD CIRCLED NUMBER FORTY EIGHT
-32BE CIRCLED NUMBER FORTY NINE
-32BF CIRCLED NUMBER FIFTY
-32C0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-32C1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-32C2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-32C3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-32C4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-32C5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-32C6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-32C7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-32C8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-32C9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-32CA IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-32CB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-32D0 CIRCLED KATAKANA A
-32D1 CIRCLED KATAKANA I
-32D2 CIRCLED KATAKANA U
-32D3 CIRCLED KATAKANA E
-32D4 CIRCLED KATAKANA O
-32D5 CIRCLED KATAKANA KA
-32D6 CIRCLED KATAKANA KI
-32D7 CIRCLED KATAKANA KU
-32D8 CIRCLED KATAKANA KE
-32D9 CIRCLED KATAKANA KO
-32DA CIRCLED KATAKANA SA
-32DB CIRCLED KATAKANA SI
-32DC CIRCLED KATAKANA SU
-32DD CIRCLED KATAKANA SE
-32DE CIRCLED KATAKANA SO
-32DF CIRCLED KATAKANA TA
-32E0 CIRCLED KATAKANA TI
-32E1 CIRCLED KATAKANA TU
-32E2 CIRCLED KATAKANA TE
-32E3 CIRCLED KATAKANA TO
-32E4 CIRCLED KATAKANA NA
-32E5 CIRCLED KATAKANA NI
-32E6 CIRCLED KATAKANA NU
-32E7 CIRCLED KATAKANA NE
-32E8 CIRCLED KATAKANA NO
-32E9 CIRCLED KATAKANA HA
-32EA CIRCLED KATAKANA HI
-32EB CIRCLED KATAKANA HU
-32EC CIRCLED KATAKANA HE
-32ED CIRCLED KATAKANA HO
-32EE CIRCLED KATAKANA MA
-32EF CIRCLED KATAKANA MI
-32F0 CIRCLED KATAKANA MU
-32F1 CIRCLED KATAKANA ME
-32F2 CIRCLED KATAKANA MO
-32F3 CIRCLED KATAKANA YA
-32F4 CIRCLED KATAKANA YU
-32F5 CIRCLED KATAKANA YO
-32F6 CIRCLED KATAKANA RA
-32F7 CIRCLED KATAKANA RI
-32F8 CIRCLED KATAKANA RU
-32F9 CIRCLED KATAKANA RE
-32FA CIRCLED KATAKANA RO
-32FB CIRCLED KATAKANA WA
-32FC CIRCLED KATAKANA WI
-32FD CIRCLED KATAKANA WE
-32FE CIRCLED KATAKANA WO
-3300 SQUARE APAATO
-3301 SQUARE ARUHUA
-3302 SQUARE ANPEA
-3303 SQUARE AARU
-3304 SQUARE ININGU
-3305 SQUARE INTI
-3306 SQUARE UON
-3307 SQUARE ESUKUUDO
-3308 SQUARE EEKAA
-3309 SQUARE ONSU
-330A SQUARE OOMU
-330B SQUARE KAIRI
-330C SQUARE KARATTO
-330D SQUARE KARORII
-330E SQUARE GARON
-330F SQUARE GANMA
-3310 SQUARE GIGA
-3311 SQUARE GINII
-3312 SQUARE KYURII
-3313 SQUARE GIRUDAA
-3314 SQUARE KIRO
-3315 SQUARE KIROGURAMU
-3316 SQUARE KIROMEETORU
-3317 SQUARE KIROWATTO
-3318 SQUARE GURAMU
-3319 SQUARE GURAMUTON
-331A SQUARE KURUZEIRO
-331B SQUARE KUROONE
-331C SQUARE KEESU
-331D SQUARE KORUNA
-331E SQUARE KOOPO
-331F SQUARE SAIKURU
-3320 SQUARE SANTIIMU
-3321 SQUARE SIRINGU
-3322 SQUARE SENTI
-3323 SQUARE SENTO
-3324 SQUARE DAASU
-3325 SQUARE DESI
-3326 SQUARE DORU
-3327 SQUARE TON
-3328 SQUARE NANO
-3329 SQUARE NOTTO
-332A SQUARE HAITU
-332B SQUARE PAASENTO
-332C SQUARE PAATU
-332D SQUARE BAARERU
-332E SQUARE PIASUTORU
-332F SQUARE PIKURU
-3330 SQUARE PIKO
-3331 SQUARE BIRU
-3332 SQUARE HUARADDO
-3333 SQUARE HUIITO
-3334 SQUARE BUSSYERU
-3335 SQUARE HURAN
-3336 SQUARE HEKUTAARU
-3337 SQUARE PESO
-3338 SQUARE PENIHI
-3339 SQUARE HERUTU
-333A SQUARE PENSU
-333B SQUARE PEEZI
-333C SQUARE BEETA
-333D SQUARE POINTO
-333E SQUARE BORUTO
-333F SQUARE HON
-3340 SQUARE PONDO
-3341 SQUARE HOORU
-3342 SQUARE HOON
-3343 SQUARE MAIKURO
-3344 SQUARE MAIRU
-3345 SQUARE MAHHA
-3346 SQUARE MARUKU
-3347 SQUARE MANSYON
-3348 SQUARE MIKURON
-3349 SQUARE MIRI
-334A SQUARE MIRIBAARU
-334B SQUARE MEGA
-334C SQUARE MEGATON
-334D SQUARE MEETORU
-334E SQUARE YAADO
-334F SQUARE YAARU
-3350 SQUARE YUAN
-3351 SQUARE RITTORU
-3352 SQUARE RIRA
-3353 SQUARE RUPII
-3354 SQUARE RUUBURU
-3355 SQUARE REMU
-3356 SQUARE RENTOGEN
-3357 SQUARE WATTO
-3358 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-3359 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-335A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-335B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-335C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-335D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-335E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-335F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-3360 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-3361 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-3362 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-3363 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-3364 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-3365 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-3366 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-3367 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-3368 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-3369 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-336A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-336B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-336C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-336D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-336E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-336F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3370 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3371 SQUARE HPA
-3372 SQUARE DA
-3373 SQUARE AU
-3374 SQUARE BAR
-3375 SQUARE OV
-3376 SQUARE PC
-337B SQUARE ERA NAME HEISEI
-337C SQUARE ERA NAME SYOUWA
-337D SQUARE ERA NAME TAISYOU
-337E SQUARE ERA NAME MEIZI
-337F SQUARE CORPORATION
-3380 SQUARE PA AMPS
-3381 SQUARE NA
-3382 SQUARE MU A
-3383 SQUARE MA
-3384 SQUARE KA
-3385 SQUARE KB
-3386 SQUARE MB
-3387 SQUARE GB
-3388 SQUARE CAL
-3389 SQUARE KCAL
-338A SQUARE PF
-338B SQUARE NF
-338C SQUARE MU F
-338D SQUARE MU G
-338E SQUARE MG
-338F SQUARE KG
-3390 SQUARE HZ
-3391 SQUARE KHZ
-3392 SQUARE MHZ
-3393 SQUARE GHZ
-3394 SQUARE THZ
-3395 SQUARE MU L
-3396 SQUARE ML
-3397 SQUARE DL
-3398 SQUARE KL
-3399 SQUARE FM
-339A SQUARE NM
-339B SQUARE MU M
-339C SQUARE MM
-339D SQUARE CM
-339E SQUARE KM
-339F SQUARE MM SQUARED
-33A0 SQUARE CM SQUARED
-33A1 SQUARE M SQUARED
-33A2 SQUARE KM SQUARED
-33A3 SQUARE MM CUBED
-33A4 SQUARE CM CUBED
-33A5 SQUARE M CUBED
-33A6 SQUARE KM CUBED
-33A7 SQUARE M OVER S
-33A8 SQUARE M OVER S SQUARED
-33A9 SQUARE PA
-33AA SQUARE KPA
-33AB SQUARE MPA
-33AC SQUARE GPA
-33AD SQUARE RAD
-33AE SQUARE RAD OVER S
-33AF SQUARE RAD OVER S SQUARED
-33B0 SQUARE PS
-33B1 SQUARE NS
-33B2 SQUARE MU S
-33B3 SQUARE MS
-33B4 SQUARE PV
-33B5 SQUARE NV
-33B6 SQUARE MU V
-33B7 SQUARE MV
-33B8 SQUARE KV
-33B9 SQUARE MV MEGA
-33BA SQUARE PW
-33BB SQUARE NW
-33BC SQUARE MU W
-33BD SQUARE MW
-33BE SQUARE KW
-33BF SQUARE MW MEGA
-33C0 SQUARE K OHM
-33C1 SQUARE M OHM
-33C2 SQUARE AM
-33C3 SQUARE BQ
-33C4 SQUARE CC
-33C5 SQUARE CD
-33C6 SQUARE C OVER KG
-33C7 SQUARE CO
-33C8 SQUARE DB
-33C9 SQUARE GY
-33CA SQUARE HA
-33CB SQUARE HP
-33CC SQUARE IN
-33CD SQUARE KK
-33CE SQUARE KM CAPITAL
-33CF SQUARE KT
-33D0 SQUARE LM
-33D1 SQUARE LN
-33D2 SQUARE LOG
-33D3 SQUARE LX
-33D4 SQUARE MB SMALL
-33D5 SQUARE MIL
-33D6 SQUARE MOL
-33D7 SQUARE PH
-33D8 SQUARE PM
-33D9 SQUARE PPM
-33DA SQUARE PR
-33DB SQUARE SR
-33DC SQUARE SV
-33DD SQUARE WB
-33E0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-33E1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-33E2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-33E3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-33E4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-33E5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-33E6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-33E7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-33E8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-33E9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-33EA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-33EB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-33EC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-33ED IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-33EE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-33EF IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-33F0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-33F1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-33F2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-33F3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-33F4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-33F5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-33F6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-33F7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-33F8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33FD IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-3400 4DB5 CJK Ideograph Extension A
-4E00 9FA5 CJK Ideograph
-A000 YI SYLLABLE IT
-A001 YI SYLLABLE IX
-A002 YI SYLLABLE I
-A003 YI SYLLABLE IP
-A004 YI SYLLABLE IET
-A005 YI SYLLABLE IEX
-A006 YI SYLLABLE IE
-A007 YI SYLLABLE IEP
-A008 YI SYLLABLE AT
-A009 YI SYLLABLE AX
-A00A YI SYLLABLE A
-A00B YI SYLLABLE AP
-A00C YI SYLLABLE UOX
-A00D YI SYLLABLE UO
-A00E YI SYLLABLE UOP
-A00F YI SYLLABLE OT
-A010 YI SYLLABLE OX
-A011 YI SYLLABLE O
-A012 YI SYLLABLE OP
-A013 YI SYLLABLE EX
-A014 YI SYLLABLE E
-A015 YI SYLLABLE WU
-A016 YI SYLLABLE BIT
-A017 YI SYLLABLE BIX
-A018 YI SYLLABLE BI
-A019 YI SYLLABLE BIP
-A01A YI SYLLABLE BIET
-A01B YI SYLLABLE BIEX
-A01C YI SYLLABLE BIE
-A01D YI SYLLABLE BIEP
-A01E YI SYLLABLE BAT
-A01F YI SYLLABLE BAX
-A020 YI SYLLABLE BA
-A021 YI SYLLABLE BAP
-A022 YI SYLLABLE BUOX
-A023 YI SYLLABLE BUO
-A024 YI SYLLABLE BUOP
-A025 YI SYLLABLE BOT
-A026 YI SYLLABLE BOX
-A027 YI SYLLABLE BO
-A028 YI SYLLABLE BOP
-A029 YI SYLLABLE BEX
-A02A YI SYLLABLE BE
-A02B YI SYLLABLE BEP
-A02C YI SYLLABLE BUT
-A02D YI SYLLABLE BUX
-A02E YI SYLLABLE BU
-A02F YI SYLLABLE BUP
-A030 YI SYLLABLE BURX
-A031 YI SYLLABLE BUR
-A032 YI SYLLABLE BYT
-A033 YI SYLLABLE BYX
-A034 YI SYLLABLE BY
-A035 YI SYLLABLE BYP
-A036 YI SYLLABLE BYRX
-A037 YI SYLLABLE BYR
-A038 YI SYLLABLE PIT
-A039 YI SYLLABLE PIX
-A03A YI SYLLABLE PI
-A03B YI SYLLABLE PIP
-A03C YI SYLLABLE PIEX
-A03D YI SYLLABLE PIE
-A03E YI SYLLABLE PIEP
-A03F YI SYLLABLE PAT
-A040 YI SYLLABLE PAX
-A041 YI SYLLABLE PA
-A042 YI SYLLABLE PAP
-A043 YI SYLLABLE PUOX
-A044 YI SYLLABLE PUO
-A045 YI SYLLABLE PUOP
-A046 YI SYLLABLE POT
-A047 YI SYLLABLE POX
-A048 YI SYLLABLE PO
-A049 YI SYLLABLE POP
-A04A YI SYLLABLE PUT
-A04B YI SYLLABLE PUX
-A04C YI SYLLABLE PU
-A04D YI SYLLABLE PUP
-A04E YI SYLLABLE PURX
-A04F YI SYLLABLE PUR
-A050 YI SYLLABLE PYT
-A051 YI SYLLABLE PYX
-A052 YI SYLLABLE PY
-A053 YI SYLLABLE PYP
-A054 YI SYLLABLE PYRX
-A055 YI SYLLABLE PYR
-A056 YI SYLLABLE BBIT
-A057 YI SYLLABLE BBIX
-A058 YI SYLLABLE BBI
-A059 YI SYLLABLE BBIP
-A05A YI SYLLABLE BBIET
-A05B YI SYLLABLE BBIEX
-A05C YI SYLLABLE BBIE
-A05D YI SYLLABLE BBIEP
-A05E YI SYLLABLE BBAT
-A05F YI SYLLABLE BBAX
-A060 YI SYLLABLE BBA
-A061 YI SYLLABLE BBAP
-A062 YI SYLLABLE BBUOX
-A063 YI SYLLABLE BBUO
-A064 YI SYLLABLE BBUOP
-A065 YI SYLLABLE BBOT
-A066 YI SYLLABLE BBOX
-A067 YI SYLLABLE BBO
-A068 YI SYLLABLE BBOP
-A069 YI SYLLABLE BBEX
-A06A YI SYLLABLE BBE
-A06B YI SYLLABLE BBEP
-A06C YI SYLLABLE BBUT
-A06D YI SYLLABLE BBUX
-A06E YI SYLLABLE BBU
-A06F YI SYLLABLE BBUP
-A070 YI SYLLABLE BBURX
-A071 YI SYLLABLE BBUR
-A072 YI SYLLABLE BBYT
-A073 YI SYLLABLE BBYX
-A074 YI SYLLABLE BBY
-A075 YI SYLLABLE BBYP
-A076 YI SYLLABLE NBIT
-A077 YI SYLLABLE NBIX
-A078 YI SYLLABLE NBI
-A079 YI SYLLABLE NBIP
-A07A YI SYLLABLE NBIEX
-A07B YI SYLLABLE NBIE
-A07C YI SYLLABLE NBIEP
-A07D YI SYLLABLE NBAT
-A07E YI SYLLABLE NBAX
-A07F YI SYLLABLE NBA
-A080 YI SYLLABLE NBAP
-A081 YI SYLLABLE NBOT
-A082 YI SYLLABLE NBOX
-A083 YI SYLLABLE NBO
-A084 YI SYLLABLE NBOP
-A085 YI SYLLABLE NBUT
-A086 YI SYLLABLE NBUX
-A087 YI SYLLABLE NBU
-A088 YI SYLLABLE NBUP
-A089 YI SYLLABLE NBURX
-A08A YI SYLLABLE NBUR
-A08B YI SYLLABLE NBYT
-A08C YI SYLLABLE NBYX
-A08D YI SYLLABLE NBY
-A08E YI SYLLABLE NBYP
-A08F YI SYLLABLE NBYRX
-A090 YI SYLLABLE NBYR
-A091 YI SYLLABLE HMIT
-A092 YI SYLLABLE HMIX
-A093 YI SYLLABLE HMI
-A094 YI SYLLABLE HMIP
-A095 YI SYLLABLE HMIEX
-A096 YI SYLLABLE HMIE
-A097 YI SYLLABLE HMIEP
-A098 YI SYLLABLE HMAT
-A099 YI SYLLABLE HMAX
-A09A YI SYLLABLE HMA
-A09B YI SYLLABLE HMAP
-A09C YI SYLLABLE HMUOX
-A09D YI SYLLABLE HMUO
-A09E YI SYLLABLE HMUOP
-A09F YI SYLLABLE HMOT
-A0A0 YI SYLLABLE HMOX
-A0A1 YI SYLLABLE HMO
-A0A2 YI SYLLABLE HMOP
-A0A3 YI SYLLABLE HMUT
-A0A4 YI SYLLABLE HMUX
-A0A5 YI SYLLABLE HMU
-A0A6 YI SYLLABLE HMUP
-A0A7 YI SYLLABLE HMURX
-A0A8 YI SYLLABLE HMUR
-A0A9 YI SYLLABLE HMYX
-A0AA YI SYLLABLE HMY
-A0AB YI SYLLABLE HMYP
-A0AC YI SYLLABLE HMYRX
-A0AD YI SYLLABLE HMYR
-A0AE YI SYLLABLE MIT
-A0AF YI SYLLABLE MIX
-A0B0 YI SYLLABLE MI
-A0B1 YI SYLLABLE MIP
-A0B2 YI SYLLABLE MIEX
-A0B3 YI SYLLABLE MIE
-A0B4 YI SYLLABLE MIEP
-A0B5 YI SYLLABLE MAT
-A0B6 YI SYLLABLE MAX
-A0B7 YI SYLLABLE MA
-A0B8 YI SYLLABLE MAP
-A0B9 YI SYLLABLE MUOT
-A0BA YI SYLLABLE MUOX
-A0BB YI SYLLABLE MUO
-A0BC YI SYLLABLE MUOP
-A0BD YI SYLLABLE MOT
-A0BE YI SYLLABLE MOX
-A0BF YI SYLLABLE MO
-A0C0 YI SYLLABLE MOP
-A0C1 YI SYLLABLE MEX
-A0C2 YI SYLLABLE ME
-A0C3 YI SYLLABLE MUT
-A0C4 YI SYLLABLE MUX
-A0C5 YI SYLLABLE MU
-A0C6 YI SYLLABLE MUP
-A0C7 YI SYLLABLE MURX
-A0C8 YI SYLLABLE MUR
-A0C9 YI SYLLABLE MYT
-A0CA YI SYLLABLE MYX
-A0CB YI SYLLABLE MY
-A0CC YI SYLLABLE MYP
-A0CD YI SYLLABLE FIT
-A0CE YI SYLLABLE FIX
-A0CF YI SYLLABLE FI
-A0D0 YI SYLLABLE FIP
-A0D1 YI SYLLABLE FAT
-A0D2 YI SYLLABLE FAX
-A0D3 YI SYLLABLE FA
-A0D4 YI SYLLABLE FAP
-A0D5 YI SYLLABLE FOX
-A0D6 YI SYLLABLE FO
-A0D7 YI SYLLABLE FOP
-A0D8 YI SYLLABLE FUT
-A0D9 YI SYLLABLE FUX
-A0DA YI SYLLABLE FU
-A0DB YI SYLLABLE FUP
-A0DC YI SYLLABLE FURX
-A0DD YI SYLLABLE FUR
-A0DE YI SYLLABLE FYT
-A0DF YI SYLLABLE FYX
-A0E0 YI SYLLABLE FY
-A0E1 YI SYLLABLE FYP
-A0E2 YI SYLLABLE VIT
-A0E3 YI SYLLABLE VIX
-A0E4 YI SYLLABLE VI
-A0E5 YI SYLLABLE VIP
-A0E6 YI SYLLABLE VIET
-A0E7 YI SYLLABLE VIEX
-A0E8 YI SYLLABLE VIE
-A0E9 YI SYLLABLE VIEP
-A0EA YI SYLLABLE VAT
-A0EB YI SYLLABLE VAX
-A0EC YI SYLLABLE VA
-A0ED YI SYLLABLE VAP
-A0EE YI SYLLABLE VOT
-A0EF YI SYLLABLE VOX
-A0F0 YI SYLLABLE VO
-A0F1 YI SYLLABLE VOP
-A0F2 YI SYLLABLE VEX
-A0F3 YI SYLLABLE VEP
-A0F4 YI SYLLABLE VUT
-A0F5 YI SYLLABLE VUX
-A0F6 YI SYLLABLE VU
-A0F7 YI SYLLABLE VUP
-A0F8 YI SYLLABLE VURX
-A0F9 YI SYLLABLE VUR
-A0FA YI SYLLABLE VYT
-A0FB YI SYLLABLE VYX
-A0FC YI SYLLABLE VY
-A0FD YI SYLLABLE VYP
-A0FE YI SYLLABLE VYRX
-A0FF YI SYLLABLE VYR
-A100 YI SYLLABLE DIT
-A101 YI SYLLABLE DIX
-A102 YI SYLLABLE DI
-A103 YI SYLLABLE DIP
-A104 YI SYLLABLE DIEX
-A105 YI SYLLABLE DIE
-A106 YI SYLLABLE DIEP
-A107 YI SYLLABLE DAT
-A108 YI SYLLABLE DAX
-A109 YI SYLLABLE DA
-A10A YI SYLLABLE DAP
-A10B YI SYLLABLE DUOX
-A10C YI SYLLABLE DUO
-A10D YI SYLLABLE DOT
-A10E YI SYLLABLE DOX
-A10F YI SYLLABLE DO
-A110 YI SYLLABLE DOP
-A111 YI SYLLABLE DEX
-A112 YI SYLLABLE DE
-A113 YI SYLLABLE DEP
-A114 YI SYLLABLE DUT
-A115 YI SYLLABLE DUX
-A116 YI SYLLABLE DU
-A117 YI SYLLABLE DUP
-A118 YI SYLLABLE DURX
-A119 YI SYLLABLE DUR
-A11A YI SYLLABLE TIT
-A11B YI SYLLABLE TIX
-A11C YI SYLLABLE TI
-A11D YI SYLLABLE TIP
-A11E YI SYLLABLE TIEX
-A11F YI SYLLABLE TIE
-A120 YI SYLLABLE TIEP
-A121 YI SYLLABLE TAT
-A122 YI SYLLABLE TAX
-A123 YI SYLLABLE TA
-A124 YI SYLLABLE TAP
-A125 YI SYLLABLE TUOT
-A126 YI SYLLABLE TUOX
-A127 YI SYLLABLE TUO
-A128 YI SYLLABLE TUOP
-A129 YI SYLLABLE TOT
-A12A YI SYLLABLE TOX
-A12B YI SYLLABLE TO
-A12C YI SYLLABLE TOP
-A12D YI SYLLABLE TEX
-A12E YI SYLLABLE TE
-A12F YI SYLLABLE TEP
-A130 YI SYLLABLE TUT
-A131 YI SYLLABLE TUX
-A132 YI SYLLABLE TU
-A133 YI SYLLABLE TUP
-A134 YI SYLLABLE TURX
-A135 YI SYLLABLE TUR
-A136 YI SYLLABLE DDIT
-A137 YI SYLLABLE DDIX
-A138 YI SYLLABLE DDI
-A139 YI SYLLABLE DDIP
-A13A YI SYLLABLE DDIEX
-A13B YI SYLLABLE DDIE
-A13C YI SYLLABLE DDIEP
-A13D YI SYLLABLE DDAT
-A13E YI SYLLABLE DDAX
-A13F YI SYLLABLE DDA
-A140 YI SYLLABLE DDAP
-A141 YI SYLLABLE DDUOX
-A142 YI SYLLABLE DDUO
-A143 YI SYLLABLE DDUOP
-A144 YI SYLLABLE DDOT
-A145 YI SYLLABLE DDOX
-A146 YI SYLLABLE DDO
-A147 YI SYLLABLE DDOP
-A148 YI SYLLABLE DDEX
-A149 YI SYLLABLE DDE
-A14A YI SYLLABLE DDEP
-A14B YI SYLLABLE DDUT
-A14C YI SYLLABLE DDUX
-A14D YI SYLLABLE DDU
-A14E YI SYLLABLE DDUP
-A14F YI SYLLABLE DDURX
-A150 YI SYLLABLE DDUR
-A151 YI SYLLABLE NDIT
-A152 YI SYLLABLE NDIX
-A153 YI SYLLABLE NDI
-A154 YI SYLLABLE NDIP
-A155 YI SYLLABLE NDIEX
-A156 YI SYLLABLE NDIE
-A157 YI SYLLABLE NDAT
-A158 YI SYLLABLE NDAX
-A159 YI SYLLABLE NDA
-A15A YI SYLLABLE NDAP
-A15B YI SYLLABLE NDOT
-A15C YI SYLLABLE NDOX
-A15D YI SYLLABLE NDO
-A15E YI SYLLABLE NDOP
-A15F YI SYLLABLE NDEX
-A160 YI SYLLABLE NDE
-A161 YI SYLLABLE NDEP
-A162 YI SYLLABLE NDUT
-A163 YI SYLLABLE NDUX
-A164 YI SYLLABLE NDU
-A165 YI SYLLABLE NDUP
-A166 YI SYLLABLE NDURX
-A167 YI SYLLABLE NDUR
-A168 YI SYLLABLE HNIT
-A169 YI SYLLABLE HNIX
-A16A YI SYLLABLE HNI
-A16B YI SYLLABLE HNIP
-A16C YI SYLLABLE HNIET
-A16D YI SYLLABLE HNIEX
-A16E YI SYLLABLE HNIE
-A16F YI SYLLABLE HNIEP
-A170 YI SYLLABLE HNAT
-A171 YI SYLLABLE HNAX
-A172 YI SYLLABLE HNA
-A173 YI SYLLABLE HNAP
-A174 YI SYLLABLE HNUOX
-A175 YI SYLLABLE HNUO
-A176 YI SYLLABLE HNOT
-A177 YI SYLLABLE HNOX
-A178 YI SYLLABLE HNOP
-A179 YI SYLLABLE HNEX
-A17A YI SYLLABLE HNE
-A17B YI SYLLABLE HNEP
-A17C YI SYLLABLE HNUT
-A17D YI SYLLABLE NIT
-A17E YI SYLLABLE NIX
-A17F YI SYLLABLE NI
-A180 YI SYLLABLE NIP
-A181 YI SYLLABLE NIEX
-A182 YI SYLLABLE NIE
-A183 YI SYLLABLE NIEP
-A184 YI SYLLABLE NAX
-A185 YI SYLLABLE NA
-A186 YI SYLLABLE NAP
-A187 YI SYLLABLE NUOX
-A188 YI SYLLABLE NUO
-A189 YI SYLLABLE NUOP
-A18A YI SYLLABLE NOT
-A18B YI SYLLABLE NOX
-A18C YI SYLLABLE NO
-A18D YI SYLLABLE NOP
-A18E YI SYLLABLE NEX
-A18F YI SYLLABLE NE
-A190 YI SYLLABLE NEP
-A191 YI SYLLABLE NUT
-A192 YI SYLLABLE NUX
-A193 YI SYLLABLE NU
-A194 YI SYLLABLE NUP
-A195 YI SYLLABLE NURX
-A196 YI SYLLABLE NUR
-A197 YI SYLLABLE HLIT
-A198 YI SYLLABLE HLIX
-A199 YI SYLLABLE HLI
-A19A YI SYLLABLE HLIP
-A19B YI SYLLABLE HLIEX
-A19C YI SYLLABLE HLIE
-A19D YI SYLLABLE HLIEP
-A19E YI SYLLABLE HLAT
-A19F YI SYLLABLE HLAX
-A1A0 YI SYLLABLE HLA
-A1A1 YI SYLLABLE HLAP
-A1A2 YI SYLLABLE HLUOX
-A1A3 YI SYLLABLE HLUO
-A1A4 YI SYLLABLE HLUOP
-A1A5 YI SYLLABLE HLOX
-A1A6 YI SYLLABLE HLO
-A1A7 YI SYLLABLE HLOP
-A1A8 YI SYLLABLE HLEX
-A1A9 YI SYLLABLE HLE
-A1AA YI SYLLABLE HLEP
-A1AB YI SYLLABLE HLUT
-A1AC YI SYLLABLE HLUX
-A1AD YI SYLLABLE HLU
-A1AE YI SYLLABLE HLUP
-A1AF YI SYLLABLE HLURX
-A1B0 YI SYLLABLE HLUR
-A1B1 YI SYLLABLE HLYT
-A1B2 YI SYLLABLE HLYX
-A1B3 YI SYLLABLE HLY
-A1B4 YI SYLLABLE HLYP
-A1B5 YI SYLLABLE HLYRX
-A1B6 YI SYLLABLE HLYR
-A1B7 YI SYLLABLE LIT
-A1B8 YI SYLLABLE LIX
-A1B9 YI SYLLABLE LI
-A1BA YI SYLLABLE LIP
-A1BB YI SYLLABLE LIET
-A1BC YI SYLLABLE LIEX
-A1BD YI SYLLABLE LIE
-A1BE YI SYLLABLE LIEP
-A1BF YI SYLLABLE LAT
-A1C0 YI SYLLABLE LAX
-A1C1 YI SYLLABLE LA
-A1C2 YI SYLLABLE LAP
-A1C3 YI SYLLABLE LUOT
-A1C4 YI SYLLABLE LUOX
-A1C5 YI SYLLABLE LUO
-A1C6 YI SYLLABLE LUOP
-A1C7 YI SYLLABLE LOT
-A1C8 YI SYLLABLE LOX
-A1C9 YI SYLLABLE LO
-A1CA YI SYLLABLE LOP
-A1CB YI SYLLABLE LEX
-A1CC YI SYLLABLE LE
-A1CD YI SYLLABLE LEP
-A1CE YI SYLLABLE LUT
-A1CF YI SYLLABLE LUX
-A1D0 YI SYLLABLE LU
-A1D1 YI SYLLABLE LUP
-A1D2 YI SYLLABLE LURX
-A1D3 YI SYLLABLE LUR
-A1D4 YI SYLLABLE LYT
-A1D5 YI SYLLABLE LYX
-A1D6 YI SYLLABLE LY
-A1D7 YI SYLLABLE LYP
-A1D8 YI SYLLABLE LYRX
-A1D9 YI SYLLABLE LYR
-A1DA YI SYLLABLE GIT
-A1DB YI SYLLABLE GIX
-A1DC YI SYLLABLE GI
-A1DD YI SYLLABLE GIP
-A1DE YI SYLLABLE GIET
-A1DF YI SYLLABLE GIEX
-A1E0 YI SYLLABLE GIE
-A1E1 YI SYLLABLE GIEP
-A1E2 YI SYLLABLE GAT
-A1E3 YI SYLLABLE GAX
-A1E4 YI SYLLABLE GA
-A1E5 YI SYLLABLE GAP
-A1E6 YI SYLLABLE GUOT
-A1E7 YI SYLLABLE GUOX
-A1E8 YI SYLLABLE GUO
-A1E9 YI SYLLABLE GUOP
-A1EA YI SYLLABLE GOT
-A1EB YI SYLLABLE GOX
-A1EC YI SYLLABLE GO
-A1ED YI SYLLABLE GOP
-A1EE YI SYLLABLE GET
-A1EF YI SYLLABLE GEX
-A1F0 YI SYLLABLE GE
-A1F1 YI SYLLABLE GEP
-A1F2 YI SYLLABLE GUT
-A1F3 YI SYLLABLE GUX
-A1F4 YI SYLLABLE GU
-A1F5 YI SYLLABLE GUP
-A1F6 YI SYLLABLE GURX
-A1F7 YI SYLLABLE GUR
-A1F8 YI SYLLABLE KIT
-A1F9 YI SYLLABLE KIX
-A1FA YI SYLLABLE KI
-A1FB YI SYLLABLE KIP
-A1FC YI SYLLABLE KIEX
-A1FD YI SYLLABLE KIE
-A1FE YI SYLLABLE KIEP
-A1FF YI SYLLABLE KAT
-A200 YI SYLLABLE KAX
-A201 YI SYLLABLE KA
-A202 YI SYLLABLE KAP
-A203 YI SYLLABLE KUOX
-A204 YI SYLLABLE KUO
-A205 YI SYLLABLE KUOP
-A206 YI SYLLABLE KOT
-A207 YI SYLLABLE KOX
-A208 YI SYLLABLE KO
-A209 YI SYLLABLE KOP
-A20A YI SYLLABLE KET
-A20B YI SYLLABLE KEX
-A20C YI SYLLABLE KE
-A20D YI SYLLABLE KEP
-A20E YI SYLLABLE KUT
-A20F YI SYLLABLE KUX
-A210 YI SYLLABLE KU
-A211 YI SYLLABLE KUP
-A212 YI SYLLABLE KURX
-A213 YI SYLLABLE KUR
-A214 YI SYLLABLE GGIT
-A215 YI SYLLABLE GGIX
-A216 YI SYLLABLE GGI
-A217 YI SYLLABLE GGIEX
-A218 YI SYLLABLE GGIE
-A219 YI SYLLABLE GGIEP
-A21A YI SYLLABLE GGAT
-A21B YI SYLLABLE GGAX
-A21C YI SYLLABLE GGA
-A21D YI SYLLABLE GGAP
-A21E YI SYLLABLE GGUOT
-A21F YI SYLLABLE GGUOX
-A220 YI SYLLABLE GGUO
-A221 YI SYLLABLE GGUOP
-A222 YI SYLLABLE GGOT
-A223 YI SYLLABLE GGOX
-A224 YI SYLLABLE GGO
-A225 YI SYLLABLE GGOP
-A226 YI SYLLABLE GGET
-A227 YI SYLLABLE GGEX
-A228 YI SYLLABLE GGE
-A229 YI SYLLABLE GGEP
-A22A YI SYLLABLE GGUT
-A22B YI SYLLABLE GGUX
-A22C YI SYLLABLE GGU
-A22D YI SYLLABLE GGUP
-A22E YI SYLLABLE GGURX
-A22F YI SYLLABLE GGUR
-A230 YI SYLLABLE MGIEX
-A231 YI SYLLABLE MGIE
-A232 YI SYLLABLE MGAT
-A233 YI SYLLABLE MGAX
-A234 YI SYLLABLE MGA
-A235 YI SYLLABLE MGAP
-A236 YI SYLLABLE MGUOX
-A237 YI SYLLABLE MGUO
-A238 YI SYLLABLE MGUOP
-A239 YI SYLLABLE MGOT
-A23A YI SYLLABLE MGOX
-A23B YI SYLLABLE MGO
-A23C YI SYLLABLE MGOP
-A23D YI SYLLABLE MGEX
-A23E YI SYLLABLE MGE
-A23F YI SYLLABLE MGEP
-A240 YI SYLLABLE MGUT
-A241 YI SYLLABLE MGUX
-A242 YI SYLLABLE MGU
-A243 YI SYLLABLE MGUP
-A244 YI SYLLABLE MGURX
-A245 YI SYLLABLE MGUR
-A246 YI SYLLABLE HXIT
-A247 YI SYLLABLE HXIX
-A248 YI SYLLABLE HXI
-A249 YI SYLLABLE HXIP
-A24A YI SYLLABLE HXIET
-A24B YI SYLLABLE HXIEX
-A24C YI SYLLABLE HXIE
-A24D YI SYLLABLE HXIEP
-A24E YI SYLLABLE HXAT
-A24F YI SYLLABLE HXAX
-A250 YI SYLLABLE HXA
-A251 YI SYLLABLE HXAP
-A252 YI SYLLABLE HXUOT
-A253 YI SYLLABLE HXUOX
-A254 YI SYLLABLE HXUO
-A255 YI SYLLABLE HXUOP
-A256 YI SYLLABLE HXOT
-A257 YI SYLLABLE HXOX
-A258 YI SYLLABLE HXO
-A259 YI SYLLABLE HXOP
-A25A YI SYLLABLE HXEX
-A25B YI SYLLABLE HXE
-A25C YI SYLLABLE HXEP
-A25D YI SYLLABLE NGIEX
-A25E YI SYLLABLE NGIE
-A25F YI SYLLABLE NGIEP
-A260 YI SYLLABLE NGAT
-A261 YI SYLLABLE NGAX
-A262 YI SYLLABLE NGA
-A263 YI SYLLABLE NGAP
-A264 YI SYLLABLE NGUOT
-A265 YI SYLLABLE NGUOX
-A266 YI SYLLABLE NGUO
-A267 YI SYLLABLE NGOT
-A268 YI SYLLABLE NGOX
-A269 YI SYLLABLE NGO
-A26A YI SYLLABLE NGOP
-A26B YI SYLLABLE NGEX
-A26C YI SYLLABLE NGE
-A26D YI SYLLABLE NGEP
-A26E YI SYLLABLE HIT
-A26F YI SYLLABLE HIEX
-A270 YI SYLLABLE HIE
-A271 YI SYLLABLE HAT
-A272 YI SYLLABLE HAX
-A273 YI SYLLABLE HA
-A274 YI SYLLABLE HAP
-A275 YI SYLLABLE HUOT
-A276 YI SYLLABLE HUOX
-A277 YI SYLLABLE HUO
-A278 YI SYLLABLE HUOP
-A279 YI SYLLABLE HOT
-A27A YI SYLLABLE HOX
-A27B YI SYLLABLE HO
-A27C YI SYLLABLE HOP
-A27D YI SYLLABLE HEX
-A27E YI SYLLABLE HE
-A27F YI SYLLABLE HEP
-A280 YI SYLLABLE WAT
-A281 YI SYLLABLE WAX
-A282 YI SYLLABLE WA
-A283 YI SYLLABLE WAP
-A284 YI SYLLABLE WUOX
-A285 YI SYLLABLE WUO
-A286 YI SYLLABLE WUOP
-A287 YI SYLLABLE WOX
-A288 YI SYLLABLE WO
-A289 YI SYLLABLE WOP
-A28A YI SYLLABLE WEX
-A28B YI SYLLABLE WE
-A28C YI SYLLABLE WEP
-A28D YI SYLLABLE ZIT
-A28E YI SYLLABLE ZIX
-A28F YI SYLLABLE ZI
-A290 YI SYLLABLE ZIP
-A291 YI SYLLABLE ZIEX
-A292 YI SYLLABLE ZIE
-A293 YI SYLLABLE ZIEP
-A294 YI SYLLABLE ZAT
-A295 YI SYLLABLE ZAX
-A296 YI SYLLABLE ZA
-A297 YI SYLLABLE ZAP
-A298 YI SYLLABLE ZUOX
-A299 YI SYLLABLE ZUO
-A29A YI SYLLABLE ZUOP
-A29B YI SYLLABLE ZOT
-A29C YI SYLLABLE ZOX
-A29D YI SYLLABLE ZO
-A29E YI SYLLABLE ZOP
-A29F YI SYLLABLE ZEX
-A2A0 YI SYLLABLE ZE
-A2A1 YI SYLLABLE ZEP
-A2A2 YI SYLLABLE ZUT
-A2A3 YI SYLLABLE ZUX
-A2A4 YI SYLLABLE ZU
-A2A5 YI SYLLABLE ZUP
-A2A6 YI SYLLABLE ZURX
-A2A7 YI SYLLABLE ZUR
-A2A8 YI SYLLABLE ZYT
-A2A9 YI SYLLABLE ZYX
-A2AA YI SYLLABLE ZY
-A2AB YI SYLLABLE ZYP
-A2AC YI SYLLABLE ZYRX
-A2AD YI SYLLABLE ZYR
-A2AE YI SYLLABLE CIT
-A2AF YI SYLLABLE CIX
-A2B0 YI SYLLABLE CI
-A2B1 YI SYLLABLE CIP
-A2B2 YI SYLLABLE CIET
-A2B3 YI SYLLABLE CIEX
-A2B4 YI SYLLABLE CIE
-A2B5 YI SYLLABLE CIEP
-A2B6 YI SYLLABLE CAT
-A2B7 YI SYLLABLE CAX
-A2B8 YI SYLLABLE CA
-A2B9 YI SYLLABLE CAP
-A2BA YI SYLLABLE CUOX
-A2BB YI SYLLABLE CUO
-A2BC YI SYLLABLE CUOP
-A2BD YI SYLLABLE COT
-A2BE YI SYLLABLE COX
-A2BF YI SYLLABLE CO
-A2C0 YI SYLLABLE COP
-A2C1 YI SYLLABLE CEX
-A2C2 YI SYLLABLE CE
-A2C3 YI SYLLABLE CEP
-A2C4 YI SYLLABLE CUT
-A2C5 YI SYLLABLE CUX
-A2C6 YI SYLLABLE CU
-A2C7 YI SYLLABLE CUP
-A2C8 YI SYLLABLE CURX
-A2C9 YI SYLLABLE CUR
-A2CA YI SYLLABLE CYT
-A2CB YI SYLLABLE CYX
-A2CC YI SYLLABLE CY
-A2CD YI SYLLABLE CYP
-A2CE YI SYLLABLE CYRX
-A2CF YI SYLLABLE CYR
-A2D0 YI SYLLABLE ZZIT
-A2D1 YI SYLLABLE ZZIX
-A2D2 YI SYLLABLE ZZI
-A2D3 YI SYLLABLE ZZIP
-A2D4 YI SYLLABLE ZZIET
-A2D5 YI SYLLABLE ZZIEX
-A2D6 YI SYLLABLE ZZIE
-A2D7 YI SYLLABLE ZZIEP
-A2D8 YI SYLLABLE ZZAT
-A2D9 YI SYLLABLE ZZAX
-A2DA YI SYLLABLE ZZA
-A2DB YI SYLLABLE ZZAP
-A2DC YI SYLLABLE ZZOX
-A2DD YI SYLLABLE ZZO
-A2DE YI SYLLABLE ZZOP
-A2DF YI SYLLABLE ZZEX
-A2E0 YI SYLLABLE ZZE
-A2E1 YI SYLLABLE ZZEP
-A2E2 YI SYLLABLE ZZUX
-A2E3 YI SYLLABLE ZZU
-A2E4 YI SYLLABLE ZZUP
-A2E5 YI SYLLABLE ZZURX
-A2E6 YI SYLLABLE ZZUR
-A2E7 YI SYLLABLE ZZYT
-A2E8 YI SYLLABLE ZZYX
-A2E9 YI SYLLABLE ZZY
-A2EA YI SYLLABLE ZZYP
-A2EB YI SYLLABLE ZZYRX
-A2EC YI SYLLABLE ZZYR
-A2ED YI SYLLABLE NZIT
-A2EE YI SYLLABLE NZIX
-A2EF YI SYLLABLE NZI
-A2F0 YI SYLLABLE NZIP
-A2F1 YI SYLLABLE NZIEX
-A2F2 YI SYLLABLE NZIE
-A2F3 YI SYLLABLE NZIEP
-A2F4 YI SYLLABLE NZAT
-A2F5 YI SYLLABLE NZAX
-A2F6 YI SYLLABLE NZA
-A2F7 YI SYLLABLE NZAP
-A2F8 YI SYLLABLE NZUOX
-A2F9 YI SYLLABLE NZUO
-A2FA YI SYLLABLE NZOX
-A2FB YI SYLLABLE NZOP
-A2FC YI SYLLABLE NZEX
-A2FD YI SYLLABLE NZE
-A2FE YI SYLLABLE NZUX
-A2FF YI SYLLABLE NZU
-A300 YI SYLLABLE NZUP
-A301 YI SYLLABLE NZURX
-A302 YI SYLLABLE NZUR
-A303 YI SYLLABLE NZYT
-A304 YI SYLLABLE NZYX
-A305 YI SYLLABLE NZY
-A306 YI SYLLABLE NZYP
-A307 YI SYLLABLE NZYRX
-A308 YI SYLLABLE NZYR
-A309 YI SYLLABLE SIT
-A30A YI SYLLABLE SIX
-A30B YI SYLLABLE SI
-A30C YI SYLLABLE SIP
-A30D YI SYLLABLE SIEX
-A30E YI SYLLABLE SIE
-A30F YI SYLLABLE SIEP
-A310 YI SYLLABLE SAT
-A311 YI SYLLABLE SAX
-A312 YI SYLLABLE SA
-A313 YI SYLLABLE SAP
-A314 YI SYLLABLE SUOX
-A315 YI SYLLABLE SUO
-A316 YI SYLLABLE SUOP
-A317 YI SYLLABLE SOT
-A318 YI SYLLABLE SOX
-A319 YI SYLLABLE SO
-A31A YI SYLLABLE SOP
-A31B YI SYLLABLE SEX
-A31C YI SYLLABLE SE
-A31D YI SYLLABLE SEP
-A31E YI SYLLABLE SUT
-A31F YI SYLLABLE SUX
-A320 YI SYLLABLE SU
-A321 YI SYLLABLE SUP
-A322 YI SYLLABLE SURX
-A323 YI SYLLABLE SUR
-A324 YI SYLLABLE SYT
-A325 YI SYLLABLE SYX
-A326 YI SYLLABLE SY
-A327 YI SYLLABLE SYP
-A328 YI SYLLABLE SYRX
-A329 YI SYLLABLE SYR
-A32A YI SYLLABLE SSIT
-A32B YI SYLLABLE SSIX
-A32C YI SYLLABLE SSI
-A32D YI SYLLABLE SSIP
-A32E YI SYLLABLE SSIEX
-A32F YI SYLLABLE SSIE
-A330 YI SYLLABLE SSIEP
-A331 YI SYLLABLE SSAT
-A332 YI SYLLABLE SSAX
-A333 YI SYLLABLE SSA
-A334 YI SYLLABLE SSAP
-A335 YI SYLLABLE SSOT
-A336 YI SYLLABLE SSOX
-A337 YI SYLLABLE SSO
-A338 YI SYLLABLE SSOP
-A339 YI SYLLABLE SSEX
-A33A YI SYLLABLE SSE
-A33B YI SYLLABLE SSEP
-A33C YI SYLLABLE SSUT
-A33D YI SYLLABLE SSUX
-A33E YI SYLLABLE SSU
-A33F YI SYLLABLE SSUP
-A340 YI SYLLABLE SSYT
-A341 YI SYLLABLE SSYX
-A342 YI SYLLABLE SSY
-A343 YI SYLLABLE SSYP
-A344 YI SYLLABLE SSYRX
-A345 YI SYLLABLE SSYR
-A346 YI SYLLABLE ZHAT
-A347 YI SYLLABLE ZHAX
-A348 YI SYLLABLE ZHA
-A349 YI SYLLABLE ZHAP
-A34A YI SYLLABLE ZHUOX
-A34B YI SYLLABLE ZHUO
-A34C YI SYLLABLE ZHUOP
-A34D YI SYLLABLE ZHOT
-A34E YI SYLLABLE ZHOX
-A34F YI SYLLABLE ZHO
-A350 YI SYLLABLE ZHOP
-A351 YI SYLLABLE ZHET
-A352 YI SYLLABLE ZHEX
-A353 YI SYLLABLE ZHE
-A354 YI SYLLABLE ZHEP
-A355 YI SYLLABLE ZHUT
-A356 YI SYLLABLE ZHUX
-A357 YI SYLLABLE ZHU
-A358 YI SYLLABLE ZHUP
-A359 YI SYLLABLE ZHURX
-A35A YI SYLLABLE ZHUR
-A35B YI SYLLABLE ZHYT
-A35C YI SYLLABLE ZHYX
-A35D YI SYLLABLE ZHY
-A35E YI SYLLABLE ZHYP
-A35F YI SYLLABLE ZHYRX
-A360 YI SYLLABLE ZHYR
-A361 YI SYLLABLE CHAT
-A362 YI SYLLABLE CHAX
-A363 YI SYLLABLE CHA
-A364 YI SYLLABLE CHAP
-A365 YI SYLLABLE CHUOT
-A366 YI SYLLABLE CHUOX
-A367 YI SYLLABLE CHUO
-A368 YI SYLLABLE CHUOP
-A369 YI SYLLABLE CHOT
-A36A YI SYLLABLE CHOX
-A36B YI SYLLABLE CHO
-A36C YI SYLLABLE CHOP
-A36D YI SYLLABLE CHET
-A36E YI SYLLABLE CHEX
-A36F YI SYLLABLE CHE
-A370 YI SYLLABLE CHEP
-A371 YI SYLLABLE CHUX
-A372 YI SYLLABLE CHU
-A373 YI SYLLABLE CHUP
-A374 YI SYLLABLE CHURX
-A375 YI SYLLABLE CHUR
-A376 YI SYLLABLE CHYT
-A377 YI SYLLABLE CHYX
-A378 YI SYLLABLE CHY
-A379 YI SYLLABLE CHYP
-A37A YI SYLLABLE CHYRX
-A37B YI SYLLABLE CHYR
-A37C YI SYLLABLE RRAX
-A37D YI SYLLABLE RRA
-A37E YI SYLLABLE RRUOX
-A37F YI SYLLABLE RRUO
-A380 YI SYLLABLE RROT
-A381 YI SYLLABLE RROX
-A382 YI SYLLABLE RRO
-A383 YI SYLLABLE RROP
-A384 YI SYLLABLE RRET
-A385 YI SYLLABLE RREX
-A386 YI SYLLABLE RRE
-A387 YI SYLLABLE RREP
-A388 YI SYLLABLE RRUT
-A389 YI SYLLABLE RRUX
-A38A YI SYLLABLE RRU
-A38B YI SYLLABLE RRUP
-A38C YI SYLLABLE RRURX
-A38D YI SYLLABLE RRUR
-A38E YI SYLLABLE RRYT
-A38F YI SYLLABLE RRYX
-A390 YI SYLLABLE RRY
-A391 YI SYLLABLE RRYP
-A392 YI SYLLABLE RRYRX
-A393 YI SYLLABLE RRYR
-A394 YI SYLLABLE NRAT
-A395 YI SYLLABLE NRAX
-A396 YI SYLLABLE NRA
-A397 YI SYLLABLE NRAP
-A398 YI SYLLABLE NROX
-A399 YI SYLLABLE NRO
-A39A YI SYLLABLE NROP
-A39B YI SYLLABLE NRET
-A39C YI SYLLABLE NREX
-A39D YI SYLLABLE NRE
-A39E YI SYLLABLE NREP
-A39F YI SYLLABLE NRUT
-A3A0 YI SYLLABLE NRUX
-A3A1 YI SYLLABLE NRU
-A3A2 YI SYLLABLE NRUP
-A3A3 YI SYLLABLE NRURX
-A3A4 YI SYLLABLE NRUR
-A3A5 YI SYLLABLE NRYT
-A3A6 YI SYLLABLE NRYX
-A3A7 YI SYLLABLE NRY
-A3A8 YI SYLLABLE NRYP
-A3A9 YI SYLLABLE NRYRX
-A3AA YI SYLLABLE NRYR
-A3AB YI SYLLABLE SHAT
-A3AC YI SYLLABLE SHAX
-A3AD YI SYLLABLE SHA
-A3AE YI SYLLABLE SHAP
-A3AF YI SYLLABLE SHUOX
-A3B0 YI SYLLABLE SHUO
-A3B1 YI SYLLABLE SHUOP
-A3B2 YI SYLLABLE SHOT
-A3B3 YI SYLLABLE SHOX
-A3B4 YI SYLLABLE SHO
-A3B5 YI SYLLABLE SHOP
-A3B6 YI SYLLABLE SHET
-A3B7 YI SYLLABLE SHEX
-A3B8 YI SYLLABLE SHE
-A3B9 YI SYLLABLE SHEP
-A3BA YI SYLLABLE SHUT
-A3BB YI SYLLABLE SHUX
-A3BC YI SYLLABLE SHU
-A3BD YI SYLLABLE SHUP
-A3BE YI SYLLABLE SHURX
-A3BF YI SYLLABLE SHUR
-A3C0 YI SYLLABLE SHYT
-A3C1 YI SYLLABLE SHYX
-A3C2 YI SYLLABLE SHY
-A3C3 YI SYLLABLE SHYP
-A3C4 YI SYLLABLE SHYRX
-A3C5 YI SYLLABLE SHYR
-A3C6 YI SYLLABLE RAT
-A3C7 YI SYLLABLE RAX
-A3C8 YI SYLLABLE RA
-A3C9 YI SYLLABLE RAP
-A3CA YI SYLLABLE RUOX
-A3CB YI SYLLABLE RUO
-A3CC YI SYLLABLE RUOP
-A3CD YI SYLLABLE ROT
-A3CE YI SYLLABLE ROX
-A3CF YI SYLLABLE RO
-A3D0 YI SYLLABLE ROP
-A3D1 YI SYLLABLE REX
-A3D2 YI SYLLABLE RE
-A3D3 YI SYLLABLE REP
-A3D4 YI SYLLABLE RUT
-A3D5 YI SYLLABLE RUX
-A3D6 YI SYLLABLE RU
-A3D7 YI SYLLABLE RUP
-A3D8 YI SYLLABLE RURX
-A3D9 YI SYLLABLE RUR
-A3DA YI SYLLABLE RYT
-A3DB YI SYLLABLE RYX
-A3DC YI SYLLABLE RY
-A3DD YI SYLLABLE RYP
-A3DE YI SYLLABLE RYRX
-A3DF YI SYLLABLE RYR
-A3E0 YI SYLLABLE JIT
-A3E1 YI SYLLABLE JIX
-A3E2 YI SYLLABLE JI
-A3E3 YI SYLLABLE JIP
-A3E4 YI SYLLABLE JIET
-A3E5 YI SYLLABLE JIEX
-A3E6 YI SYLLABLE JIE
-A3E7 YI SYLLABLE JIEP
-A3E8 YI SYLLABLE JUOT
-A3E9 YI SYLLABLE JUOX
-A3EA YI SYLLABLE JUO
-A3EB YI SYLLABLE JUOP
-A3EC YI SYLLABLE JOT
-A3ED YI SYLLABLE JOX
-A3EE YI SYLLABLE JO
-A3EF YI SYLLABLE JOP
-A3F0 YI SYLLABLE JUT
-A3F1 YI SYLLABLE JUX
-A3F2 YI SYLLABLE JU
-A3F3 YI SYLLABLE JUP
-A3F4 YI SYLLABLE JURX
-A3F5 YI SYLLABLE JUR
-A3F6 YI SYLLABLE JYT
-A3F7 YI SYLLABLE JYX
-A3F8 YI SYLLABLE JY
-A3F9 YI SYLLABLE JYP
-A3FA YI SYLLABLE JYRX
-A3FB YI SYLLABLE JYR
-A3FC YI SYLLABLE QIT
-A3FD YI SYLLABLE QIX
-A3FE YI SYLLABLE QI
-A3FF YI SYLLABLE QIP
-A400 YI SYLLABLE QIET
-A401 YI SYLLABLE QIEX
-A402 YI SYLLABLE QIE
-A403 YI SYLLABLE QIEP
-A404 YI SYLLABLE QUOT
-A405 YI SYLLABLE QUOX
-A406 YI SYLLABLE QUO
-A407 YI SYLLABLE QUOP
-A408 YI SYLLABLE QOT
-A409 YI SYLLABLE QOX
-A40A YI SYLLABLE QO
-A40B YI SYLLABLE QOP
-A40C YI SYLLABLE QUT
-A40D YI SYLLABLE QUX
-A40E YI SYLLABLE QU
-A40F YI SYLLABLE QUP
-A410 YI SYLLABLE QURX
-A411 YI SYLLABLE QUR
-A412 YI SYLLABLE QYT
-A413 YI SYLLABLE QYX
-A414 YI SYLLABLE QY
-A415 YI SYLLABLE QYP
-A416 YI SYLLABLE QYRX
-A417 YI SYLLABLE QYR
-A418 YI SYLLABLE JJIT
-A419 YI SYLLABLE JJIX
-A41A YI SYLLABLE JJI
-A41B YI SYLLABLE JJIP
-A41C YI SYLLABLE JJIET
-A41D YI SYLLABLE JJIEX
-A41E YI SYLLABLE JJIE
-A41F YI SYLLABLE JJIEP
-A420 YI SYLLABLE JJUOX
-A421 YI SYLLABLE JJUO
-A422 YI SYLLABLE JJUOP
-A423 YI SYLLABLE JJOT
-A424 YI SYLLABLE JJOX
-A425 YI SYLLABLE JJO
-A426 YI SYLLABLE JJOP
-A427 YI SYLLABLE JJUT
-A428 YI SYLLABLE JJUX
-A429 YI SYLLABLE JJU
-A42A YI SYLLABLE JJUP
-A42B YI SYLLABLE JJURX
-A42C YI SYLLABLE JJUR
-A42D YI SYLLABLE JJYT
-A42E YI SYLLABLE JJYX
-A42F YI SYLLABLE JJY
-A430 YI SYLLABLE JJYP
-A431 YI SYLLABLE NJIT
-A432 YI SYLLABLE NJIX
-A433 YI SYLLABLE NJI
-A434 YI SYLLABLE NJIP
-A435 YI SYLLABLE NJIET
-A436 YI SYLLABLE NJIEX
-A437 YI SYLLABLE NJIE
-A438 YI SYLLABLE NJIEP
-A439 YI SYLLABLE NJUOX
-A43A YI SYLLABLE NJUO
-A43B YI SYLLABLE NJOT
-A43C YI SYLLABLE NJOX
-A43D YI SYLLABLE NJO
-A43E YI SYLLABLE NJOP
-A43F YI SYLLABLE NJUX
-A440 YI SYLLABLE NJU
-A441 YI SYLLABLE NJUP
-A442 YI SYLLABLE NJURX
-A443 YI SYLLABLE NJUR
-A444 YI SYLLABLE NJYT
-A445 YI SYLLABLE NJYX
-A446 YI SYLLABLE NJY
-A447 YI SYLLABLE NJYP
-A448 YI SYLLABLE NJYRX
-A449 YI SYLLABLE NJYR
-A44A YI SYLLABLE NYIT
-A44B YI SYLLABLE NYIX
-A44C YI SYLLABLE NYI
-A44D YI SYLLABLE NYIP
-A44E YI SYLLABLE NYIET
-A44F YI SYLLABLE NYIEX
-A450 YI SYLLABLE NYIE
-A451 YI SYLLABLE NYIEP
-A452 YI SYLLABLE NYUOX
-A453 YI SYLLABLE NYUO
-A454 YI SYLLABLE NYUOP
-A455 YI SYLLABLE NYOT
-A456 YI SYLLABLE NYOX
-A457 YI SYLLABLE NYO
-A458 YI SYLLABLE NYOP
-A459 YI SYLLABLE NYUT
-A45A YI SYLLABLE NYUX
-A45B YI SYLLABLE NYU
-A45C YI SYLLABLE NYUP
-A45D YI SYLLABLE XIT
-A45E YI SYLLABLE XIX
-A45F YI SYLLABLE XI
-A460 YI SYLLABLE XIP
-A461 YI SYLLABLE XIET
-A462 YI SYLLABLE XIEX
-A463 YI SYLLABLE XIE
-A464 YI SYLLABLE XIEP
-A465 YI SYLLABLE XUOX
-A466 YI SYLLABLE XUO
-A467 YI SYLLABLE XOT
-A468 YI SYLLABLE XOX
-A469 YI SYLLABLE XO
-A46A YI SYLLABLE XOP
-A46B YI SYLLABLE XYT
-A46C YI SYLLABLE XYX
-A46D YI SYLLABLE XY
-A46E YI SYLLABLE XYP
-A46F YI SYLLABLE XYRX
-A470 YI SYLLABLE XYR
-A471 YI SYLLABLE YIT
-A472 YI SYLLABLE YIX
-A473 YI SYLLABLE YI
-A474 YI SYLLABLE YIP
-A475 YI SYLLABLE YIET
-A476 YI SYLLABLE YIEX
-A477 YI SYLLABLE YIE
-A478 YI SYLLABLE YIEP
-A479 YI SYLLABLE YUOT
-A47A YI SYLLABLE YUOX
-A47B YI SYLLABLE YUO
-A47C YI SYLLABLE YUOP
-A47D YI SYLLABLE YOT
-A47E YI SYLLABLE YOX
-A47F YI SYLLABLE YO
-A480 YI SYLLABLE YOP
-A481 YI SYLLABLE YUT
-A482 YI SYLLABLE YUX
-A483 YI SYLLABLE YU
-A484 YI SYLLABLE YUP
-A485 YI SYLLABLE YURX
-A486 YI SYLLABLE YUR
-A487 YI SYLLABLE YYT
-A488 YI SYLLABLE YYX
-A489 YI SYLLABLE YY
-A48A YI SYLLABLE YYP
-A48B YI SYLLABLE YYRX
-A48C YI SYLLABLE YYR
-A490 YI RADICAL QOT
-A491 YI RADICAL LI
-A492 YI RADICAL KIT
-A493 YI RADICAL NYIP
-A494 YI RADICAL CYP
-A495 YI RADICAL SSI
-A496 YI RADICAL GGOP
-A497 YI RADICAL GEP
-A498 YI RADICAL MI
-A499 YI RADICAL HXIT
-A49A YI RADICAL LYR
-A49B YI RADICAL BBUT
-A49C YI RADICAL MOP
-A49D YI RADICAL YO
-A49E YI RADICAL PUT
-A49F YI RADICAL HXUO
-A4A0 YI RADICAL TAT
-A4A1 YI RADICAL GA
-A4A2 YI RADICAL ZUP
-A4A3 YI RADICAL CYT
-A4A4 YI RADICAL DDUR
-A4A5 YI RADICAL BUR
-A4A6 YI RADICAL GGUO
-A4A7 YI RADICAL NYOP
-A4A8 YI RADICAL TU
-A4A9 YI RADICAL OP
-A4AA YI RADICAL JJUT
-A4AB YI RADICAL ZOT
-A4AC YI RADICAL PYT
-A4AD YI RADICAL HMO
-A4AE YI RADICAL YIT
-A4AF YI RADICAL VUR
-A4B0 YI RADICAL SHY
-A4B1 YI RADICAL VEP
-A4B2 YI RADICAL ZA
-A4B3 YI RADICAL JO
-A4B4 YI RADICAL NZUP
-A4B5 YI RADICAL JJY
-A4B6 YI RADICAL GOT
-A4B7 YI RADICAL JJIE
-A4B8 YI RADICAL WO
-A4B9 YI RADICAL DU
-A4BA YI RADICAL SHUR
-A4BB YI RADICAL LIE
-A4BC YI RADICAL CY
-A4BD YI RADICAL CUOP
-A4BE YI RADICAL CIP
-A4BF YI RADICAL HXOP
-A4C0 YI RADICAL SHAT
-A4C1 YI RADICAL ZUR
-A4C2 YI RADICAL SHOP
-A4C3 YI RADICAL CHE
-A4C4 YI RADICAL ZZIET
-A4C5 YI RADICAL NBIE
-A4C6 YI RADICAL KE
-AC00 D7A3 Hangul Syllable
-D800 DB7F Non Private Use High Surrogate
-DB80 DBFF Private Use High Surrogate
-DC00 DFFF Low Surrogate
-E000 F8FF Private Use
-F900 CJK COMPATIBILITY IDEOGRAPH-F900
-F901 CJK COMPATIBILITY IDEOGRAPH-F901
-F902 CJK COMPATIBILITY IDEOGRAPH-F902
-F903 CJK COMPATIBILITY IDEOGRAPH-F903
-F904 CJK COMPATIBILITY IDEOGRAPH-F904
-F905 CJK COMPATIBILITY IDEOGRAPH-F905
-F906 CJK COMPATIBILITY IDEOGRAPH-F906
-F907 CJK COMPATIBILITY IDEOGRAPH-F907
-F908 CJK COMPATIBILITY IDEOGRAPH-F908
-F909 CJK COMPATIBILITY IDEOGRAPH-F909
-F90A CJK COMPATIBILITY IDEOGRAPH-F90A
-F90B CJK COMPATIBILITY IDEOGRAPH-F90B
-F90C CJK COMPATIBILITY IDEOGRAPH-F90C
-F90D CJK COMPATIBILITY IDEOGRAPH-F90D
-F90E CJK COMPATIBILITY IDEOGRAPH-F90E
-F90F CJK COMPATIBILITY IDEOGRAPH-F90F
-F910 CJK COMPATIBILITY IDEOGRAPH-F910
-F911 CJK COMPATIBILITY IDEOGRAPH-F911
-F912 CJK COMPATIBILITY IDEOGRAPH-F912
-F913 CJK COMPATIBILITY IDEOGRAPH-F913
-F914 CJK COMPATIBILITY IDEOGRAPH-F914
-F915 CJK COMPATIBILITY IDEOGRAPH-F915
-F916 CJK COMPATIBILITY IDEOGRAPH-F916
-F917 CJK COMPATIBILITY IDEOGRAPH-F917
-F918 CJK COMPATIBILITY IDEOGRAPH-F918
-F919 CJK COMPATIBILITY IDEOGRAPH-F919
-F91A CJK COMPATIBILITY IDEOGRAPH-F91A
-F91B CJK COMPATIBILITY IDEOGRAPH-F91B
-F91C CJK COMPATIBILITY IDEOGRAPH-F91C
-F91D CJK COMPATIBILITY IDEOGRAPH-F91D
-F91E CJK COMPATIBILITY IDEOGRAPH-F91E
-F91F CJK COMPATIBILITY IDEOGRAPH-F91F
-F920 CJK COMPATIBILITY IDEOGRAPH-F920
-F921 CJK COMPATIBILITY IDEOGRAPH-F921
-F922 CJK COMPATIBILITY IDEOGRAPH-F922
-F923 CJK COMPATIBILITY IDEOGRAPH-F923
-F924 CJK COMPATIBILITY IDEOGRAPH-F924
-F925 CJK COMPATIBILITY IDEOGRAPH-F925
-F926 CJK COMPATIBILITY IDEOGRAPH-F926
-F927 CJK COMPATIBILITY IDEOGRAPH-F927
-F928 CJK COMPATIBILITY IDEOGRAPH-F928
-F929 CJK COMPATIBILITY IDEOGRAPH-F929
-F92A CJK COMPATIBILITY IDEOGRAPH-F92A
-F92B CJK COMPATIBILITY IDEOGRAPH-F92B
-F92C CJK COMPATIBILITY IDEOGRAPH-F92C
-F92D CJK COMPATIBILITY IDEOGRAPH-F92D
-F92E CJK COMPATIBILITY IDEOGRAPH-F92E
-F92F CJK COMPATIBILITY IDEOGRAPH-F92F
-F930 CJK COMPATIBILITY IDEOGRAPH-F930
-F931 CJK COMPATIBILITY IDEOGRAPH-F931
-F932 CJK COMPATIBILITY IDEOGRAPH-F932
-F933 CJK COMPATIBILITY IDEOGRAPH-F933
-F934 CJK COMPATIBILITY IDEOGRAPH-F934
-F935 CJK COMPATIBILITY IDEOGRAPH-F935
-F936 CJK COMPATIBILITY IDEOGRAPH-F936
-F937 CJK COMPATIBILITY IDEOGRAPH-F937
-F938 CJK COMPATIBILITY IDEOGRAPH-F938
-F939 CJK COMPATIBILITY IDEOGRAPH-F939
-F93A CJK COMPATIBILITY IDEOGRAPH-F93A
-F93B CJK COMPATIBILITY IDEOGRAPH-F93B
-F93C CJK COMPATIBILITY IDEOGRAPH-F93C
-F93D CJK COMPATIBILITY IDEOGRAPH-F93D
-F93E CJK COMPATIBILITY IDEOGRAPH-F93E
-F93F CJK COMPATIBILITY IDEOGRAPH-F93F
-F940 CJK COMPATIBILITY IDEOGRAPH-F940
-F941 CJK COMPATIBILITY IDEOGRAPH-F941
-F942 CJK COMPATIBILITY IDEOGRAPH-F942
-F943 CJK COMPATIBILITY IDEOGRAPH-F943
-F944 CJK COMPATIBILITY IDEOGRAPH-F944
-F945 CJK COMPATIBILITY IDEOGRAPH-F945
-F946 CJK COMPATIBILITY IDEOGRAPH-F946
-F947 CJK COMPATIBILITY IDEOGRAPH-F947
-F948 CJK COMPATIBILITY IDEOGRAPH-F948
-F949 CJK COMPATIBILITY IDEOGRAPH-F949
-F94A CJK COMPATIBILITY IDEOGRAPH-F94A
-F94B CJK COMPATIBILITY IDEOGRAPH-F94B
-F94C CJK COMPATIBILITY IDEOGRAPH-F94C
-F94D CJK COMPATIBILITY IDEOGRAPH-F94D
-F94E CJK COMPATIBILITY IDEOGRAPH-F94E
-F94F CJK COMPATIBILITY IDEOGRAPH-F94F
-F950 CJK COMPATIBILITY IDEOGRAPH-F950
-F951 CJK COMPATIBILITY IDEOGRAPH-F951
-F952 CJK COMPATIBILITY IDEOGRAPH-F952
-F953 CJK COMPATIBILITY IDEOGRAPH-F953
-F954 CJK COMPATIBILITY IDEOGRAPH-F954
-F955 CJK COMPATIBILITY IDEOGRAPH-F955
-F956 CJK COMPATIBILITY IDEOGRAPH-F956
-F957 CJK COMPATIBILITY IDEOGRAPH-F957
-F958 CJK COMPATIBILITY IDEOGRAPH-F958
-F959 CJK COMPATIBILITY IDEOGRAPH-F959
-F95A CJK COMPATIBILITY IDEOGRAPH-F95A
-F95B CJK COMPATIBILITY IDEOGRAPH-F95B
-F95C CJK COMPATIBILITY IDEOGRAPH-F95C
-F95D CJK COMPATIBILITY IDEOGRAPH-F95D
-F95E CJK COMPATIBILITY IDEOGRAPH-F95E
-F95F CJK COMPATIBILITY IDEOGRAPH-F95F
-F960 CJK COMPATIBILITY IDEOGRAPH-F960
-F961 CJK COMPATIBILITY IDEOGRAPH-F961
-F962 CJK COMPATIBILITY IDEOGRAPH-F962
-F963 CJK COMPATIBILITY IDEOGRAPH-F963
-F964 CJK COMPATIBILITY IDEOGRAPH-F964
-F965 CJK COMPATIBILITY IDEOGRAPH-F965
-F966 CJK COMPATIBILITY IDEOGRAPH-F966
-F967 CJK COMPATIBILITY IDEOGRAPH-F967
-F968 CJK COMPATIBILITY IDEOGRAPH-F968
-F969 CJK COMPATIBILITY IDEOGRAPH-F969
-F96A CJK COMPATIBILITY IDEOGRAPH-F96A
-F96B CJK COMPATIBILITY IDEOGRAPH-F96B
-F96C CJK COMPATIBILITY IDEOGRAPH-F96C
-F96D CJK COMPATIBILITY IDEOGRAPH-F96D
-F96E CJK COMPATIBILITY IDEOGRAPH-F96E
-F96F CJK COMPATIBILITY IDEOGRAPH-F96F
-F970 CJK COMPATIBILITY IDEOGRAPH-F970
-F971 CJK COMPATIBILITY IDEOGRAPH-F971
-F972 CJK COMPATIBILITY IDEOGRAPH-F972
-F973 CJK COMPATIBILITY IDEOGRAPH-F973
-F974 CJK COMPATIBILITY IDEOGRAPH-F974
-F975 CJK COMPATIBILITY IDEOGRAPH-F975
-F976 CJK COMPATIBILITY IDEOGRAPH-F976
-F977 CJK COMPATIBILITY IDEOGRAPH-F977
-F978 CJK COMPATIBILITY IDEOGRAPH-F978
-F979 CJK COMPATIBILITY IDEOGRAPH-F979
-F97A CJK COMPATIBILITY IDEOGRAPH-F97A
-F97B CJK COMPATIBILITY IDEOGRAPH-F97B
-F97C CJK COMPATIBILITY IDEOGRAPH-F97C
-F97D CJK COMPATIBILITY IDEOGRAPH-F97D
-F97E CJK COMPATIBILITY IDEOGRAPH-F97E
-F97F CJK COMPATIBILITY IDEOGRAPH-F97F
-F980 CJK COMPATIBILITY IDEOGRAPH-F980
-F981 CJK COMPATIBILITY IDEOGRAPH-F981
-F982 CJK COMPATIBILITY IDEOGRAPH-F982
-F983 CJK COMPATIBILITY IDEOGRAPH-F983
-F984 CJK COMPATIBILITY IDEOGRAPH-F984
-F985 CJK COMPATIBILITY IDEOGRAPH-F985
-F986 CJK COMPATIBILITY IDEOGRAPH-F986
-F987 CJK COMPATIBILITY IDEOGRAPH-F987
-F988 CJK COMPATIBILITY IDEOGRAPH-F988
-F989 CJK COMPATIBILITY IDEOGRAPH-F989
-F98A CJK COMPATIBILITY IDEOGRAPH-F98A
-F98B CJK COMPATIBILITY IDEOGRAPH-F98B
-F98C CJK COMPATIBILITY IDEOGRAPH-F98C
-F98D CJK COMPATIBILITY IDEOGRAPH-F98D
-F98E CJK COMPATIBILITY IDEOGRAPH-F98E
-F98F CJK COMPATIBILITY IDEOGRAPH-F98F
-F990 CJK COMPATIBILITY IDEOGRAPH-F990
-F991 CJK COMPATIBILITY IDEOGRAPH-F991
-F992 CJK COMPATIBILITY IDEOGRAPH-F992
-F993 CJK COMPATIBILITY IDEOGRAPH-F993
-F994 CJK COMPATIBILITY IDEOGRAPH-F994
-F995 CJK COMPATIBILITY IDEOGRAPH-F995
-F996 CJK COMPATIBILITY IDEOGRAPH-F996
-F997 CJK COMPATIBILITY IDEOGRAPH-F997
-F998 CJK COMPATIBILITY IDEOGRAPH-F998
-F999 CJK COMPATIBILITY IDEOGRAPH-F999
-F99A CJK COMPATIBILITY IDEOGRAPH-F99A
-F99B CJK COMPATIBILITY IDEOGRAPH-F99B
-F99C CJK COMPATIBILITY IDEOGRAPH-F99C
-F99D CJK COMPATIBILITY IDEOGRAPH-F99D
-F99E CJK COMPATIBILITY IDEOGRAPH-F99E
-F99F CJK COMPATIBILITY IDEOGRAPH-F99F
-F9A0 CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9A1 CJK COMPATIBILITY IDEOGRAPH-F9A1
-F9A2 CJK COMPATIBILITY IDEOGRAPH-F9A2
-F9A3 CJK COMPATIBILITY IDEOGRAPH-F9A3
-F9A4 CJK COMPATIBILITY IDEOGRAPH-F9A4
-F9A5 CJK COMPATIBILITY IDEOGRAPH-F9A5
-F9A6 CJK COMPATIBILITY IDEOGRAPH-F9A6
-F9A7 CJK COMPATIBILITY IDEOGRAPH-F9A7
-F9A8 CJK COMPATIBILITY IDEOGRAPH-F9A8
-F9A9 CJK COMPATIBILITY IDEOGRAPH-F9A9
-F9AA CJK COMPATIBILITY IDEOGRAPH-F9AA
-F9AB CJK COMPATIBILITY IDEOGRAPH-F9AB
-F9AC CJK COMPATIBILITY IDEOGRAPH-F9AC
-F9AD CJK COMPATIBILITY IDEOGRAPH-F9AD
-F9AE CJK COMPATIBILITY IDEOGRAPH-F9AE
-F9AF CJK COMPATIBILITY IDEOGRAPH-F9AF
-F9B0 CJK COMPATIBILITY IDEOGRAPH-F9B0
-F9B1 CJK COMPATIBILITY IDEOGRAPH-F9B1
-F9B2 CJK COMPATIBILITY IDEOGRAPH-F9B2
-F9B3 CJK COMPATIBILITY IDEOGRAPH-F9B3
-F9B4 CJK COMPATIBILITY IDEOGRAPH-F9B4
-F9B5 CJK COMPATIBILITY IDEOGRAPH-F9B5
-F9B6 CJK COMPATIBILITY IDEOGRAPH-F9B6
-F9B7 CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9B8 CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9B9 CJK COMPATIBILITY IDEOGRAPH-F9B9
-F9BA CJK COMPATIBILITY IDEOGRAPH-F9BA
-F9BB CJK COMPATIBILITY IDEOGRAPH-F9BB
-F9BC CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD CJK COMPATIBILITY IDEOGRAPH-F9BD
-F9BE CJK COMPATIBILITY IDEOGRAPH-F9BE
-F9BF CJK COMPATIBILITY IDEOGRAPH-F9BF
-F9C0 CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9C1 CJK COMPATIBILITY IDEOGRAPH-F9C1
-F9C2 CJK COMPATIBILITY IDEOGRAPH-F9C2
-F9C3 CJK COMPATIBILITY IDEOGRAPH-F9C3
-F9C4 CJK COMPATIBILITY IDEOGRAPH-F9C4
-F9C5 CJK COMPATIBILITY IDEOGRAPH-F9C5
-F9C6 CJK COMPATIBILITY IDEOGRAPH-F9C6
-F9C7 CJK COMPATIBILITY IDEOGRAPH-F9C7
-F9C8 CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9C9 CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9CA CJK COMPATIBILITY IDEOGRAPH-F9CA
-F9CB CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9CC CJK COMPATIBILITY IDEOGRAPH-F9CC
-F9CD CJK COMPATIBILITY IDEOGRAPH-F9CD
-F9CE CJK COMPATIBILITY IDEOGRAPH-F9CE
-F9CF CJK COMPATIBILITY IDEOGRAPH-F9CF
-F9D0 CJK COMPATIBILITY IDEOGRAPH-F9D0
-F9D1 CJK COMPATIBILITY IDEOGRAPH-F9D1
-F9D2 CJK COMPATIBILITY IDEOGRAPH-F9D2
-F9D3 CJK COMPATIBILITY IDEOGRAPH-F9D3
-F9D4 CJK COMPATIBILITY IDEOGRAPH-F9D4
-F9D5 CJK COMPATIBILITY IDEOGRAPH-F9D5
-F9D6 CJK COMPATIBILITY IDEOGRAPH-F9D6
-F9D7 CJK COMPATIBILITY IDEOGRAPH-F9D7
-F9D8 CJK COMPATIBILITY IDEOGRAPH-F9D8
-F9D9 CJK COMPATIBILITY IDEOGRAPH-F9D9
-F9DA CJK COMPATIBILITY IDEOGRAPH-F9DA
-F9DB CJK COMPATIBILITY IDEOGRAPH-F9DB
-F9DC CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9DD CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9DE CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9DF CJK COMPATIBILITY IDEOGRAPH-F9DF
-F9E0 CJK COMPATIBILITY IDEOGRAPH-F9E0
-F9E1 CJK COMPATIBILITY IDEOGRAPH-F9E1
-F9E2 CJK COMPATIBILITY IDEOGRAPH-F9E2
-F9E3 CJK COMPATIBILITY IDEOGRAPH-F9E3
-F9E4 CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9E5 CJK COMPATIBILITY IDEOGRAPH-F9E5
-F9E6 CJK COMPATIBILITY IDEOGRAPH-F9E6
-F9E7 CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8 CJK COMPATIBILITY IDEOGRAPH-F9E8
-F9E9 CJK COMPATIBILITY IDEOGRAPH-F9E9
-F9EA CJK COMPATIBILITY IDEOGRAPH-F9EA
-F9EB CJK COMPATIBILITY IDEOGRAPH-F9EB
-F9EC CJK COMPATIBILITY IDEOGRAPH-F9EC
-F9ED CJK COMPATIBILITY IDEOGRAPH-F9ED
-F9EE CJK COMPATIBILITY IDEOGRAPH-F9EE
-F9EF CJK COMPATIBILITY IDEOGRAPH-F9EF
-F9F0 CJK COMPATIBILITY IDEOGRAPH-F9F0
-F9F1 CJK COMPATIBILITY IDEOGRAPH-F9F1
-F9F2 CJK COMPATIBILITY IDEOGRAPH-F9F2
-F9F3 CJK COMPATIBILITY IDEOGRAPH-F9F3
-F9F4 CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9F5 CJK COMPATIBILITY IDEOGRAPH-F9F5
-F9F6 CJK COMPATIBILITY IDEOGRAPH-F9F6
-F9F7 CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8 CJK COMPATIBILITY IDEOGRAPH-F9F8
-F9F9 CJK COMPATIBILITY IDEOGRAPH-F9F9
-F9FA CJK COMPATIBILITY IDEOGRAPH-F9FA
-F9FB CJK COMPATIBILITY IDEOGRAPH-F9FB
-F9FC CJK COMPATIBILITY IDEOGRAPH-F9FC
-F9FD CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9FE CJK COMPATIBILITY IDEOGRAPH-F9FE
-F9FF CJK COMPATIBILITY IDEOGRAPH-F9FF
-FA00 CJK COMPATIBILITY IDEOGRAPH-FA00
-FA01 CJK COMPATIBILITY IDEOGRAPH-FA01
-FA02 CJK COMPATIBILITY IDEOGRAPH-FA02
-FA03 CJK COMPATIBILITY IDEOGRAPH-FA03
-FA04 CJK COMPATIBILITY IDEOGRAPH-FA04
-FA05 CJK COMPATIBILITY IDEOGRAPH-FA05
-FA06 CJK COMPATIBILITY IDEOGRAPH-FA06
-FA07 CJK COMPATIBILITY IDEOGRAPH-FA07
-FA08 CJK COMPATIBILITY IDEOGRAPH-FA08
-FA09 CJK COMPATIBILITY IDEOGRAPH-FA09
-FA0A CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA0B CJK COMPATIBILITY IDEOGRAPH-FA0B
-FA0C CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA0D CJK COMPATIBILITY IDEOGRAPH-FA0D
-FA0E CJK COMPATIBILITY IDEOGRAPH-FA0E
-FA0F CJK COMPATIBILITY IDEOGRAPH-FA0F
-FA10 CJK COMPATIBILITY IDEOGRAPH-FA10
-FA11 CJK COMPATIBILITY IDEOGRAPH-FA11
-FA12 CJK COMPATIBILITY IDEOGRAPH-FA12
-FA13 CJK COMPATIBILITY IDEOGRAPH-FA13
-FA14 CJK COMPATIBILITY IDEOGRAPH-FA14
-FA15 CJK COMPATIBILITY IDEOGRAPH-FA15
-FA16 CJK COMPATIBILITY IDEOGRAPH-FA16
-FA17 CJK COMPATIBILITY IDEOGRAPH-FA17
-FA18 CJK COMPATIBILITY IDEOGRAPH-FA18
-FA19 CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A CJK COMPATIBILITY IDEOGRAPH-FA1A
-FA1B CJK COMPATIBILITY IDEOGRAPH-FA1B
-FA1C CJK COMPATIBILITY IDEOGRAPH-FA1C
-FA1D CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA1E CJK COMPATIBILITY IDEOGRAPH-FA1E
-FA1F CJK COMPATIBILITY IDEOGRAPH-FA1F
-FA20 CJK COMPATIBILITY IDEOGRAPH-FA20
-FA21 CJK COMPATIBILITY IDEOGRAPH-FA21
-FA22 CJK COMPATIBILITY IDEOGRAPH-FA22
-FA23 CJK COMPATIBILITY IDEOGRAPH-FA23
-FA24 CJK COMPATIBILITY IDEOGRAPH-FA24
-FA25 CJK COMPATIBILITY IDEOGRAPH-FA25
-FA26 CJK COMPATIBILITY IDEOGRAPH-FA26
-FA27 CJK COMPATIBILITY IDEOGRAPH-FA27
-FA28 CJK COMPATIBILITY IDEOGRAPH-FA28
-FA29 CJK COMPATIBILITY IDEOGRAPH-FA29
-FA2A CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C CJK COMPATIBILITY IDEOGRAPH-FA2C
-FA2D CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA30 CJK COMPATIBILITY IDEOGRAPH-FA30
-FA31 CJK COMPATIBILITY IDEOGRAPH-FA31
-FA32 CJK COMPATIBILITY IDEOGRAPH-FA32
-FA33 CJK COMPATIBILITY IDEOGRAPH-FA33
-FA34 CJK COMPATIBILITY IDEOGRAPH-FA34
-FA35 CJK COMPATIBILITY IDEOGRAPH-FA35
-FA36 CJK COMPATIBILITY IDEOGRAPH-FA36
-FA37 CJK COMPATIBILITY IDEOGRAPH-FA37
-FA38 CJK COMPATIBILITY IDEOGRAPH-FA38
-FA39 CJK COMPATIBILITY IDEOGRAPH-FA39
-FA3A CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA3B CJK COMPATIBILITY IDEOGRAPH-FA3B
-FA3C CJK COMPATIBILITY IDEOGRAPH-FA3C
-FA3D CJK COMPATIBILITY IDEOGRAPH-FA3D
-FA3E CJK COMPATIBILITY IDEOGRAPH-FA3E
-FA3F CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA40 CJK COMPATIBILITY IDEOGRAPH-FA40
-FA41 CJK COMPATIBILITY IDEOGRAPH-FA41
-FA42 CJK COMPATIBILITY IDEOGRAPH-FA42
-FA43 CJK COMPATIBILITY IDEOGRAPH-FA43
-FA44 CJK COMPATIBILITY IDEOGRAPH-FA44
-FA45 CJK COMPATIBILITY IDEOGRAPH-FA45
-FA46 CJK COMPATIBILITY IDEOGRAPH-FA46
-FA47 CJK COMPATIBILITY IDEOGRAPH-FA47
-FA48 CJK COMPATIBILITY IDEOGRAPH-FA48
-FA49 CJK COMPATIBILITY IDEOGRAPH-FA49
-FA4A CJK COMPATIBILITY IDEOGRAPH-FA4A
-FA4B CJK COMPATIBILITY IDEOGRAPH-FA4B
-FA4C CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4D CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4E CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4F CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50 CJK COMPATIBILITY IDEOGRAPH-FA50
-FA51 CJK COMPATIBILITY IDEOGRAPH-FA51
-FA52 CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53 CJK COMPATIBILITY IDEOGRAPH-FA53
-FA54 CJK COMPATIBILITY IDEOGRAPH-FA54
-FA55 CJK COMPATIBILITY IDEOGRAPH-FA55
-FA56 CJK COMPATIBILITY IDEOGRAPH-FA56
-FA57 CJK COMPATIBILITY IDEOGRAPH-FA57
-FA58 CJK COMPATIBILITY IDEOGRAPH-FA58
-FA59 CJK COMPATIBILITY IDEOGRAPH-FA59
-FA5A CJK COMPATIBILITY IDEOGRAPH-FA5A
-FA5B CJK COMPATIBILITY IDEOGRAPH-FA5B
-FA5C CJK COMPATIBILITY IDEOGRAPH-FA5C
-FA5D CJK COMPATIBILITY IDEOGRAPH-FA5D
-FA5E CJK COMPATIBILITY IDEOGRAPH-FA5E
-FA5F CJK COMPATIBILITY IDEOGRAPH-FA5F
-FA60 CJK COMPATIBILITY IDEOGRAPH-FA60
-FA61 CJK COMPATIBILITY IDEOGRAPH-FA61
-FA62 CJK COMPATIBILITY IDEOGRAPH-FA62
-FA63 CJK COMPATIBILITY IDEOGRAPH-FA63
-FA64 CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65 CJK COMPATIBILITY IDEOGRAPH-FA65
-FA66 CJK COMPATIBILITY IDEOGRAPH-FA66
-FA67 CJK COMPATIBILITY IDEOGRAPH-FA67
-FA68 CJK COMPATIBILITY IDEOGRAPH-FA68
-FA69 CJK COMPATIBILITY IDEOGRAPH-FA69
-FA6A CJK COMPATIBILITY IDEOGRAPH-FA6A
-FB00 LATIN SMALL LIGATURE FF
-FB01 LATIN SMALL LIGATURE FI
-FB02 LATIN SMALL LIGATURE FL
-FB03 LATIN SMALL LIGATURE FFI
-FB04 LATIN SMALL LIGATURE FFL
-FB05 LATIN SMALL LIGATURE LONG S T
-FB06 LATIN SMALL LIGATURE ST
-FB13 ARMENIAN SMALL LIGATURE MEN NOW
-FB14 ARMENIAN SMALL LIGATURE MEN ECH
-FB15 ARMENIAN SMALL LIGATURE MEN INI
-FB16 ARMENIAN SMALL LIGATURE VEW NOW
-FB17 ARMENIAN SMALL LIGATURE MEN XEH
-FB1D HEBREW LETTER YOD WITH HIRIQ
-FB1E HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F HEBREW LIGATURE YIDDISH YOD YOD PATAH
-FB20 HEBREW LETTER ALTERNATIVE AYIN
-FB21 HEBREW LETTER WIDE ALEF
-FB22 HEBREW LETTER WIDE DALET
-FB23 HEBREW LETTER WIDE HE
-FB24 HEBREW LETTER WIDE KAF
-FB25 HEBREW LETTER WIDE LAMED
-FB26 HEBREW LETTER WIDE FINAL MEM
-FB27 HEBREW LETTER WIDE RESH
-FB28 HEBREW LETTER WIDE TAV
-FB29 HEBREW LETTER ALTERNATIVE PLUS SIGN
-FB2A HEBREW LETTER SHIN WITH SHIN DOT
-FB2B HEBREW LETTER SHIN WITH SIN DOT
-FB2C HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-FB2D HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2E HEBREW LETTER ALEF WITH PATAH
-FB2F HEBREW LETTER ALEF WITH QAMATS
-FB30 HEBREW LETTER ALEF WITH MAPIQ
-FB31 HEBREW LETTER BET WITH DAGESH
-FB32 HEBREW LETTER GIMEL WITH DAGESH
-FB33 HEBREW LETTER DALET WITH DAGESH
-FB34 HEBREW LETTER HE WITH MAPIQ
-FB35 HEBREW LETTER VAV WITH DAGESH
-FB36 HEBREW LETTER ZAYIN WITH DAGESH
-FB38 HEBREW LETTER TET WITH DAGESH
-FB39 HEBREW LETTER YOD WITH DAGESH
-FB3A HEBREW LETTER FINAL KAF WITH DAGESH
-FB3B HEBREW LETTER KAF WITH DAGESH
-FB3C HEBREW LETTER LAMED WITH DAGESH
-FB3E HEBREW LETTER MEM WITH DAGESH
-FB40 HEBREW LETTER NUN WITH DAGESH
-FB41 HEBREW LETTER SAMEKH WITH DAGESH
-FB43 HEBREW LETTER FINAL PE WITH DAGESH
-FB44 HEBREW LETTER PE WITH DAGESH
-FB46 HEBREW LETTER TSADI WITH DAGESH
-FB47 HEBREW LETTER QOF WITH DAGESH
-FB48 HEBREW LETTER RESH WITH DAGESH
-FB49 HEBREW LETTER SHIN WITH DAGESH
-FB4A HEBREW LETTER TAV WITH DAGESH
-FB4B HEBREW LETTER VAV WITH HOLAM
-FB4C HEBREW LETTER BET WITH RAFE
-FB4D HEBREW LETTER KAF WITH RAFE
-FB4E HEBREW LETTER PE WITH RAFE
-FB4F HEBREW LIGATURE ALEF LAMED
-FB50 ARABIC LETTER ALEF WASLA ISOLATED FORM
-FB51 ARABIC LETTER ALEF WASLA FINAL FORM
-FB52 ARABIC LETTER BEEH ISOLATED FORM
-FB53 ARABIC LETTER BEEH FINAL FORM
-FB54 ARABIC LETTER BEEH INITIAL FORM
-FB55 ARABIC LETTER BEEH MEDIAL FORM
-FB56 ARABIC LETTER PEH ISOLATED FORM
-FB57 ARABIC LETTER PEH FINAL FORM
-FB58 ARABIC LETTER PEH INITIAL FORM
-FB59 ARABIC LETTER PEH MEDIAL FORM
-FB5A ARABIC LETTER BEHEH ISOLATED FORM
-FB5B ARABIC LETTER BEHEH FINAL FORM
-FB5C ARABIC LETTER BEHEH INITIAL FORM
-FB5D ARABIC LETTER BEHEH MEDIAL FORM
-FB5E ARABIC LETTER TTEHEH ISOLATED FORM
-FB5F ARABIC LETTER TTEHEH FINAL FORM
-FB60 ARABIC LETTER TTEHEH INITIAL FORM
-FB61 ARABIC LETTER TTEHEH MEDIAL FORM
-FB62 ARABIC LETTER TEHEH ISOLATED FORM
-FB63 ARABIC LETTER TEHEH FINAL FORM
-FB64 ARABIC LETTER TEHEH INITIAL FORM
-FB65 ARABIC LETTER TEHEH MEDIAL FORM
-FB66 ARABIC LETTER TTEH ISOLATED FORM
-FB67 ARABIC LETTER TTEH FINAL FORM
-FB68 ARABIC LETTER TTEH INITIAL FORM
-FB69 ARABIC LETTER TTEH MEDIAL FORM
-FB6A ARABIC LETTER VEH ISOLATED FORM
-FB6B ARABIC LETTER VEH FINAL FORM
-FB6C ARABIC LETTER VEH INITIAL FORM
-FB6D ARABIC LETTER VEH MEDIAL FORM
-FB6E ARABIC LETTER PEHEH ISOLATED FORM
-FB6F ARABIC LETTER PEHEH FINAL FORM
-FB70 ARABIC LETTER PEHEH INITIAL FORM
-FB71 ARABIC LETTER PEHEH MEDIAL FORM
-FB72 ARABIC LETTER DYEH ISOLATED FORM
-FB73 ARABIC LETTER DYEH FINAL FORM
-FB74 ARABIC LETTER DYEH INITIAL FORM
-FB75 ARABIC LETTER DYEH MEDIAL FORM
-FB76 ARABIC LETTER NYEH ISOLATED FORM
-FB77 ARABIC LETTER NYEH FINAL FORM
-FB78 ARABIC LETTER NYEH INITIAL FORM
-FB79 ARABIC LETTER NYEH MEDIAL FORM
-FB7A ARABIC LETTER TCHEH ISOLATED FORM
-FB7B ARABIC LETTER TCHEH FINAL FORM
-FB7C ARABIC LETTER TCHEH INITIAL FORM
-FB7D ARABIC LETTER TCHEH MEDIAL FORM
-FB7E ARABIC LETTER TCHEHEH ISOLATED FORM
-FB7F ARABIC LETTER TCHEHEH FINAL FORM
-FB80 ARABIC LETTER TCHEHEH INITIAL FORM
-FB81 ARABIC LETTER TCHEHEH MEDIAL FORM
-FB82 ARABIC LETTER DDAHAL ISOLATED FORM
-FB83 ARABIC LETTER DDAHAL FINAL FORM
-FB84 ARABIC LETTER DAHAL ISOLATED FORM
-FB85 ARABIC LETTER DAHAL FINAL FORM
-FB86 ARABIC LETTER DUL ISOLATED FORM
-FB87 ARABIC LETTER DUL FINAL FORM
-FB88 ARABIC LETTER DDAL ISOLATED FORM
-FB89 ARABIC LETTER DDAL FINAL FORM
-FB8A ARABIC LETTER JEH ISOLATED FORM
-FB8B ARABIC LETTER JEH FINAL FORM
-FB8C ARABIC LETTER RREH ISOLATED FORM
-FB8D ARABIC LETTER RREH FINAL FORM
-FB8E ARABIC LETTER KEHEH ISOLATED FORM
-FB8F ARABIC LETTER KEHEH FINAL FORM
-FB90 ARABIC LETTER KEHEH INITIAL FORM
-FB91 ARABIC LETTER KEHEH MEDIAL FORM
-FB92 ARABIC LETTER GAF ISOLATED FORM
-FB93 ARABIC LETTER GAF FINAL FORM
-FB94 ARABIC LETTER GAF INITIAL FORM
-FB95 ARABIC LETTER GAF MEDIAL FORM
-FB96 ARABIC LETTER GUEH ISOLATED FORM
-FB97 ARABIC LETTER GUEH FINAL FORM
-FB98 ARABIC LETTER GUEH INITIAL FORM
-FB99 ARABIC LETTER GUEH MEDIAL FORM
-FB9A ARABIC LETTER NGOEH ISOLATED FORM
-FB9B ARABIC LETTER NGOEH FINAL FORM
-FB9C ARABIC LETTER NGOEH INITIAL FORM
-FB9D ARABIC LETTER NGOEH MEDIAL FORM
-FB9E ARABIC LETTER NOON GHUNNA ISOLATED FORM
-FB9F ARABIC LETTER NOON GHUNNA FINAL FORM
-FBA0 ARABIC LETTER RNOON ISOLATED FORM
-FBA1 ARABIC LETTER RNOON FINAL FORM
-FBA2 ARABIC LETTER RNOON INITIAL FORM
-FBA3 ARABIC LETTER RNOON MEDIAL FORM
-FBA4 ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-FBA5 ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA6 ARABIC LETTER HEH GOAL ISOLATED FORM
-FBA7 ARABIC LETTER HEH GOAL FINAL FORM
-FBA8 ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9 ARABIC LETTER HEH GOAL MEDIAL FORM
-FBAA ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-FBAB ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAC ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAE ARABIC LETTER YEH BARREE ISOLATED FORM
-FBAF ARABIC LETTER YEH BARREE FINAL FORM
-FBB0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-FBB1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBD3 ARABIC LETTER NG ISOLATED FORM
-FBD4 ARABIC LETTER NG FINAL FORM
-FBD5 ARABIC LETTER NG INITIAL FORM
-FBD6 ARABIC LETTER NG MEDIAL FORM
-FBD7 ARABIC LETTER U ISOLATED FORM
-FBD8 ARABIC LETTER U FINAL FORM
-FBD9 ARABIC LETTER OE ISOLATED FORM
-FBDA ARABIC LETTER OE FINAL FORM
-FBDB ARABIC LETTER YU ISOLATED FORM
-FBDC ARABIC LETTER YU FINAL FORM
-FBDD ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-FBDE ARABIC LETTER VE ISOLATED FORM
-FBDF ARABIC LETTER VE FINAL FORM
-FBE0 ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-FBE1 ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE2 ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-FBE3 ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE4 ARABIC LETTER E ISOLATED FORM
-FBE5 ARABIC LETTER E FINAL FORM
-FBE6 ARABIC LETTER E INITIAL FORM
-FBE7 ARABIC LETTER E MEDIAL FORM
-FBE8 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FBEA ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FBEB ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEC ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBED ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEE ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBEF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBF0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF2 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF3 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF4 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBF5 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF6 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-FBF7 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF8 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF9 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FBFA ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBFB ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFC ARABIC LETTER FARSI YEH ISOLATED FORM
-FBFD ARABIC LETTER FARSI YEH FINAL FORM
-FBFE ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF ARABIC LETTER FARSI YEH MEDIAL FORM
-FC00 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC01 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC02 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC03 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC04 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FC05 ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC06 ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FC07 ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FC08 ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC09 ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC0A ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-FC0B ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FC0C ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FC0D ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FC0E ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FC0F ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC10 ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-FC11 ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC12 ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC13 ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC14 ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-FC15 ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FC16 ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FC17 ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FC18 ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FC19 ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FC1B ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FC1C ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FC1D ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FC1E ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FC1F ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FC20 ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FC21 ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FC22 ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FC23 ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FC24 ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FC25 ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FC26 ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FC27 ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FC28 ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-FC29 ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FC2A ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FC2B ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FC2C ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FC2D ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FC2E ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FC2F ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FC30 ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FC31 ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC32 ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-FC33 ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FC34 ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FC35 ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC36 ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-FC37 ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FC38 ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FC39 ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FC3A ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FC3B ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FC3C ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FC3D ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC3E ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-FC3F ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FC40 ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FC41 ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FC42 ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FC43 ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC44 ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-FC45 ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FC46 ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FC47 ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FC48 ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FC49 ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-FC4B ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FC4C ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FC4D ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC4E ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FC4F ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC50 ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-FC51 ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FC52 ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FC53 ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54 ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-FC55 ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FC56 ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FC57 ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC58 ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FC59 ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC5A ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-FC5B ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5C ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5D ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5E ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
-FC5F ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
-FC60 ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
-FC61 ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
-FC62 ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
-FC63 ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC64 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC66 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC67 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC68 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC69 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC6A ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC6C ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC6D ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FC6E ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC6F ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC70 ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71 ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FC72 ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC73 ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FC74 ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC75 ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC76 ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77 ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FC78 ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC79 ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FC7A ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC7B ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC7C ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC7D ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC7E ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC7F ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC80 ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC81 ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC82 ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC83 ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC84 ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC85 ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC86 ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC87 ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC88 ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FC89 ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC8A ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FC8C ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC8D ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FC8E ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC8F ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC90 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC91 ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92 ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FC93 ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC94 ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FC95 ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC96 ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC97 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC98 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC99 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC9A ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FC9B ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FC9C ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC9D ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC9E ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC9F ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCA0 ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCA1 ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FCA2 ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FCA3 ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FCA4 ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCA5 ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCA6 ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCA7 ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FCA8 ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FCA9 ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FCAA ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FCAB ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FCAC ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FCAD ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FCAE ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FCAF ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FCB0 ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCB1 ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FCB2 ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FCB3 ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FCB4 ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FCB5 ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FCB6 ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FCB7 ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FCB8 ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FCB9 ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FCBA ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FCBB ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FCBC ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FCBD ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FCBE ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FCBF ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FCC0 ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FCC1 ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FCC2 ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FCC3 ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FCC4 ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FCC5 ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FCC6 ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FCC7 ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCC8 ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCC9 ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FCCA ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FCCB ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FCCC ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCCD ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FCCE ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FCCF ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FCD0 ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FCD1 ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FCD2 ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FCD3 ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FCD4 ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FCD5 ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCD6 ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCD7 ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FCD8 ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FCD9 ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCDA ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FCDB ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FCDC ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FCDD ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCDE ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCDF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FCE0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FCE1 ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FCE2 ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FCE3 ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FCE4 ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FCE5 ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FCE6 ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FCE7 ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FCE8 ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FCE9 ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FCEA ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FCEB ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FCEC ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FCED ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FCEE ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FCEF ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FCF0 ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FCF1 ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FCF2 ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
-FCF3 ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
-FCF4 ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
-FCF5 ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FCF6 ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-FCF7 ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FCF8 ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-FCF9 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FCFA ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-FCFB ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFC ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-FCFD ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFE ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-FCFF ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD00 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-FD01 ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD02 ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-FD03 ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD04 ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-FD05 ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD06 ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-FD07 ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD08 ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-FD09 ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD0A ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD0B ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD0C ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD0D ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD0E ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FD0F ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FD10 ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FD11 ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FD12 ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FD13 ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FD14 ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FD15 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FD16 ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FD17 ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FD18 ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FD19 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FD1A ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FD1B ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FD1C ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD1D ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD1E ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD1F ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD20 ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD21 ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD22 ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD23 ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD24 ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD25 ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD26 ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD27 ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD28 ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD29 ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD2A ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD2B ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD2C ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD2D ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD2E ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD2F ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD30 ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FD31 ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FD32 ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FD33 ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD34 ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FD35 ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FD36 ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FD37 ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD38 ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD39 ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD3A ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FD3B ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FD3C ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E ORNATE LEFT PARENTHESIS
-FD3F ORNATE RIGHT PARENTHESIS
-FD50 ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FD51 ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD52 ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD53 ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FD54 ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FD55 ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56 ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57 ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FD58 ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FD59 ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD5A ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD5B ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5C ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FD5D ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD5F ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD60 ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD61 ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD62 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD63 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD64 ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FD65 ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD66 ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD67 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FD68 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD69 ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD6A ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6B ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6C ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD6D ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6E ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD6F ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD70 ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD71 ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD72 ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD73 ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74 ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD75 ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FD76 ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD77 ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD78 ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD79 ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7A ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD7B ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7C ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FD7D ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7E ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FD80 ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD81 ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FD82 ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD83 ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84 ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FD85 ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FD86 ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD87 ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FD88 ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD89 ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FD8B ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FD8C ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD8D ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FD8E ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD92 ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD93 ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94 ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FD95 ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96 ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD97 ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD98 ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD99 ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9A ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FD9B ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9C ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FD9D ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9E ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FD9F ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FDA0 ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDA1 ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FDA2 ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA3 ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FDA4 ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5 ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FDA6 ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDA7 ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA8 ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA9 ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FDAA ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FDAB ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FDAC ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FDAD ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FDAE ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FDAF ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FDB0 ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FDB1 ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FDB2 ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FDB3 ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FDB4 ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FDB5 ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FDB6 ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FDB7 ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FDB8 ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDB9 ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FDBA ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBB ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDBC ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDBD ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FDBE ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDBF ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FDC0 ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FDC1 ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FDC2 ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FDC3 ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDC4 ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FDC5 ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FDC6 ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FDC7 ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDF0 ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF1 ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
-FDF3 ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF4 ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FDF5 ARABIC LIGATURE SALAM ISOLATED FORM
-FDF6 ARABIC LIGATURE RASOUL ISOLATED FORM
-FDF7 ARABIC LIGATURE ALAYHE ISOLATED FORM
-FDF8 ARABIC LIGATURE WASALLAM ISOLATED FORM
-FDF9 ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDFB ARABIC LIGATURE JALLAJALALOUHOU
-FDFC RIAL SIGN
-FE00 VARIATION SELECTOR-1
-FE01 VARIATION SELECTOR-2
-FE02 VARIATION SELECTOR-3
-FE03 VARIATION SELECTOR-4
-FE04 VARIATION SELECTOR-5
-FE05 VARIATION SELECTOR-6
-FE06 VARIATION SELECTOR-7
-FE07 VARIATION SELECTOR-8
-FE08 VARIATION SELECTOR-9
-FE09 VARIATION SELECTOR-10
-FE0A VARIATION SELECTOR-11
-FE0B VARIATION SELECTOR-12
-FE0C VARIATION SELECTOR-13
-FE0D VARIATION SELECTOR-14
-FE0E VARIATION SELECTOR-15
-FE0F VARIATION SELECTOR-16
-FE20 COMBINING LIGATURE LEFT HALF
-FE21 COMBINING LIGATURE RIGHT HALF
-FE22 COMBINING DOUBLE TILDE LEFT HALF
-FE23 COMBINING DOUBLE TILDE RIGHT HALF
-FE30 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-FE31 PRESENTATION FORM FOR VERTICAL EM DASH
-FE32 PRESENTATION FORM FOR VERTICAL EN DASH
-FE33 PRESENTATION FORM FOR VERTICAL LOW LINE
-FE34 PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35 PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36 PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37 PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38 PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39 PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40 PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41 PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42 PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43 PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44 PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45 SESAME DOT
-FE46 WHITE SESAME DOT
-FE49 DASHED OVERLINE
-FE4A CENTRELINE OVERLINE
-FE4B WAVY OVERLINE
-FE4C DOUBLE WAVY OVERLINE
-FE4D DASHED LOW LINE
-FE4E CENTRELINE LOW LINE
-FE4F WAVY LOW LINE
-FE50 SMALL COMMA
-FE51 SMALL IDEOGRAPHIC COMMA
-FE52 SMALL FULL STOP
-FE54 SMALL SEMICOLON
-FE55 SMALL COLON
-FE56 SMALL QUESTION MARK
-FE57 SMALL EXCLAMATION MARK
-FE58 SMALL EM DASH
-FE59 SMALL LEFT PARENTHESIS
-FE5A SMALL RIGHT PARENTHESIS
-FE5B SMALL LEFT CURLY BRACKET
-FE5C SMALL RIGHT CURLY BRACKET
-FE5D SMALL LEFT TORTOISE SHELL BRACKET
-FE5E SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F SMALL NUMBER SIGN
-FE60 SMALL AMPERSAND
-FE61 SMALL ASTERISK
-FE62 SMALL PLUS SIGN
-FE63 SMALL HYPHEN-MINUS
-FE64 SMALL LESS-THAN SIGN
-FE65 SMALL GREATER-THAN SIGN
-FE66 SMALL EQUALS SIGN
-FE68 SMALL REVERSE SOLIDUS
-FE69 SMALL DOLLAR SIGN
-FE6A SMALL PERCENT SIGN
-FE6B SMALL COMMERCIAL AT
-FE70 ARABIC FATHATAN ISOLATED FORM
-FE71 ARABIC TATWEEL WITH FATHATAN ABOVE
-FE72 ARABIC DAMMATAN ISOLATED FORM
-FE73 ARABIC TAIL FRAGMENT
-FE74 ARABIC KASRATAN ISOLATED FORM
-FE76 ARABIC FATHA ISOLATED FORM
-FE77 ARABIC FATHA MEDIAL FORM
-FE78 ARABIC DAMMA ISOLATED FORM
-FE79 ARABIC DAMMA MEDIAL FORM
-FE7A ARABIC KASRA ISOLATED FORM
-FE7B ARABIC KASRA MEDIAL FORM
-FE7C ARABIC SHADDA ISOLATED FORM
-FE7D ARABIC SHADDA MEDIAL FORM
-FE7E ARABIC SUKUN ISOLATED FORM
-FE7F ARABIC SUKUN MEDIAL FORM
-FE80 ARABIC LETTER HAMZA ISOLATED FORM
-FE81 ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-FE82 ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE83 ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-FE84 ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE85 ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-FE86 ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE87 ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-FE88 ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE89 ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FE8A ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE8B ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8D ARABIC LETTER ALEF ISOLATED FORM
-FE8E ARABIC LETTER ALEF FINAL FORM
-FE8F ARABIC LETTER BEH ISOLATED FORM
-FE90 ARABIC LETTER BEH FINAL FORM
-FE91 ARABIC LETTER BEH INITIAL FORM
-FE92 ARABIC LETTER BEH MEDIAL FORM
-FE93 ARABIC LETTER TEH MARBUTA ISOLATED FORM
-FE94 ARABIC LETTER TEH MARBUTA FINAL FORM
-FE95 ARABIC LETTER TEH ISOLATED FORM
-FE96 ARABIC LETTER TEH FINAL FORM
-FE97 ARABIC LETTER TEH INITIAL FORM
-FE98 ARABIC LETTER TEH MEDIAL FORM
-FE99 ARABIC LETTER THEH ISOLATED FORM
-FE9A ARABIC LETTER THEH FINAL FORM
-FE9B ARABIC LETTER THEH INITIAL FORM
-FE9C ARABIC LETTER THEH MEDIAL FORM
-FE9D ARABIC LETTER JEEM ISOLATED FORM
-FE9E ARABIC LETTER JEEM FINAL FORM
-FE9F ARABIC LETTER JEEM INITIAL FORM
-FEA0 ARABIC LETTER JEEM MEDIAL FORM
-FEA1 ARABIC LETTER HAH ISOLATED FORM
-FEA2 ARABIC LETTER HAH FINAL FORM
-FEA3 ARABIC LETTER HAH INITIAL FORM
-FEA4 ARABIC LETTER HAH MEDIAL FORM
-FEA5 ARABIC LETTER KHAH ISOLATED FORM
-FEA6 ARABIC LETTER KHAH FINAL FORM
-FEA7 ARABIC LETTER KHAH INITIAL FORM
-FEA8 ARABIC LETTER KHAH MEDIAL FORM
-FEA9 ARABIC LETTER DAL ISOLATED FORM
-FEAA ARABIC LETTER DAL FINAL FORM
-FEAB ARABIC LETTER THAL ISOLATED FORM
-FEAC ARABIC LETTER THAL FINAL FORM
-FEAD ARABIC LETTER REH ISOLATED FORM
-FEAE ARABIC LETTER REH FINAL FORM
-FEAF ARABIC LETTER ZAIN ISOLATED FORM
-FEB0 ARABIC LETTER ZAIN FINAL FORM
-FEB1 ARABIC LETTER SEEN ISOLATED FORM
-FEB2 ARABIC LETTER SEEN FINAL FORM
-FEB3 ARABIC LETTER SEEN INITIAL FORM
-FEB4 ARABIC LETTER SEEN MEDIAL FORM
-FEB5 ARABIC LETTER SHEEN ISOLATED FORM
-FEB6 ARABIC LETTER SHEEN FINAL FORM
-FEB7 ARABIC LETTER SHEEN INITIAL FORM
-FEB8 ARABIC LETTER SHEEN MEDIAL FORM
-FEB9 ARABIC LETTER SAD ISOLATED FORM
-FEBA ARABIC LETTER SAD FINAL FORM
-FEBB ARABIC LETTER SAD INITIAL FORM
-FEBC ARABIC LETTER SAD MEDIAL FORM
-FEBD ARABIC LETTER DAD ISOLATED FORM
-FEBE ARABIC LETTER DAD FINAL FORM
-FEBF ARABIC LETTER DAD INITIAL FORM
-FEC0 ARABIC LETTER DAD MEDIAL FORM
-FEC1 ARABIC LETTER TAH ISOLATED FORM
-FEC2 ARABIC LETTER TAH FINAL FORM
-FEC3 ARABIC LETTER TAH INITIAL FORM
-FEC4 ARABIC LETTER TAH MEDIAL FORM
-FEC5 ARABIC LETTER ZAH ISOLATED FORM
-FEC6 ARABIC LETTER ZAH FINAL FORM
-FEC7 ARABIC LETTER ZAH INITIAL FORM
-FEC8 ARABIC LETTER ZAH MEDIAL FORM
-FEC9 ARABIC LETTER AIN ISOLATED FORM
-FECA ARABIC LETTER AIN FINAL FORM
-FECB ARABIC LETTER AIN INITIAL FORM
-FECC ARABIC LETTER AIN MEDIAL FORM
-FECD ARABIC LETTER GHAIN ISOLATED FORM
-FECE ARABIC LETTER GHAIN FINAL FORM
-FECF ARABIC LETTER GHAIN INITIAL FORM
-FED0 ARABIC LETTER GHAIN MEDIAL FORM
-FED1 ARABIC LETTER FEH ISOLATED FORM
-FED2 ARABIC LETTER FEH FINAL FORM
-FED3 ARABIC LETTER FEH INITIAL FORM
-FED4 ARABIC LETTER FEH MEDIAL FORM
-FED5 ARABIC LETTER QAF ISOLATED FORM
-FED6 ARABIC LETTER QAF FINAL FORM
-FED7 ARABIC LETTER QAF INITIAL FORM
-FED8 ARABIC LETTER QAF MEDIAL FORM
-FED9 ARABIC LETTER KAF ISOLATED FORM
-FEDA ARABIC LETTER KAF FINAL FORM
-FEDB ARABIC LETTER KAF INITIAL FORM
-FEDC ARABIC LETTER KAF MEDIAL FORM
-FEDD ARABIC LETTER LAM ISOLATED FORM
-FEDE ARABIC LETTER LAM FINAL FORM
-FEDF ARABIC LETTER LAM INITIAL FORM
-FEE0 ARABIC LETTER LAM MEDIAL FORM
-FEE1 ARABIC LETTER MEEM ISOLATED FORM
-FEE2 ARABIC LETTER MEEM FINAL FORM
-FEE3 ARABIC LETTER MEEM INITIAL FORM
-FEE4 ARABIC LETTER MEEM MEDIAL FORM
-FEE5 ARABIC LETTER NOON ISOLATED FORM
-FEE6 ARABIC LETTER NOON FINAL FORM
-FEE7 ARABIC LETTER NOON INITIAL FORM
-FEE8 ARABIC LETTER NOON MEDIAL FORM
-FEE9 ARABIC LETTER HEH ISOLATED FORM
-FEEA ARABIC LETTER HEH FINAL FORM
-FEEB ARABIC LETTER HEH INITIAL FORM
-FEEC ARABIC LETTER HEH MEDIAL FORM
-FEED ARABIC LETTER WAW ISOLATED FORM
-FEEE ARABIC LETTER WAW FINAL FORM
-FEEF ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FEF0 ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEF1 ARABIC LETTER YEH ISOLATED FORM
-FEF2 ARABIC LETTER YEH FINAL FORM
-FEF3 ARABIC LETTER YEH INITIAL FORM
-FEF4 ARABIC LETTER YEH MEDIAL FORM
-FEF5 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF6 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF7 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEF8 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF9 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFA ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEFB ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FEFC ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFF ZERO WIDTH NO-BREAK SPACE
-FF01 FULLWIDTH EXCLAMATION MARK
-FF02 FULLWIDTH QUOTATION MARK
-FF03 FULLWIDTH NUMBER SIGN
-FF04 FULLWIDTH DOLLAR SIGN
-FF05 FULLWIDTH PERCENT SIGN
-FF06 FULLWIDTH AMPERSAND
-FF07 FULLWIDTH APOSTROPHE
-FF08 FULLWIDTH LEFT PARENTHESIS
-FF09 FULLWIDTH RIGHT PARENTHESIS
-FF0A FULLWIDTH ASTERISK
-FF0B FULLWIDTH PLUS SIGN
-FF0C FULLWIDTH COMMA
-FF0D FULLWIDTH HYPHEN-MINUS
-FF0E FULLWIDTH FULL STOP
-FF0F FULLWIDTH SOLIDUS
-FF10 FULLWIDTH DIGIT ZERO
-FF11 FULLWIDTH DIGIT ONE
-FF12 FULLWIDTH DIGIT TWO
-FF13 FULLWIDTH DIGIT THREE
-FF14 FULLWIDTH DIGIT FOUR
-FF15 FULLWIDTH DIGIT FIVE
-FF16 FULLWIDTH DIGIT SIX
-FF17 FULLWIDTH DIGIT SEVEN
-FF18 FULLWIDTH DIGIT EIGHT
-FF19 FULLWIDTH DIGIT NINE
-FF1A FULLWIDTH COLON
-FF1B FULLWIDTH SEMICOLON
-FF1C FULLWIDTH LESS-THAN SIGN
-FF1D FULLWIDTH EQUALS SIGN
-FF1E FULLWIDTH GREATER-THAN SIGN
-FF1F FULLWIDTH QUESTION MARK
-FF20 FULLWIDTH COMMERCIAL AT
-FF21 FULLWIDTH LATIN CAPITAL LETTER A
-FF22 FULLWIDTH LATIN CAPITAL LETTER B
-FF23 FULLWIDTH LATIN CAPITAL LETTER C
-FF24 FULLWIDTH LATIN CAPITAL LETTER D
-FF25 FULLWIDTH LATIN CAPITAL LETTER E
-FF26 FULLWIDTH LATIN CAPITAL LETTER F
-FF27 FULLWIDTH LATIN CAPITAL LETTER G
-FF28 FULLWIDTH LATIN CAPITAL LETTER H
-FF29 FULLWIDTH LATIN CAPITAL LETTER I
-FF2A FULLWIDTH LATIN CAPITAL LETTER J
-FF2B FULLWIDTH LATIN CAPITAL LETTER K
-FF2C FULLWIDTH LATIN CAPITAL LETTER L
-FF2D FULLWIDTH LATIN CAPITAL LETTER M
-FF2E FULLWIDTH LATIN CAPITAL LETTER N
-FF2F FULLWIDTH LATIN CAPITAL LETTER O
-FF30 FULLWIDTH LATIN CAPITAL LETTER P
-FF31 FULLWIDTH LATIN CAPITAL LETTER Q
-FF32 FULLWIDTH LATIN CAPITAL LETTER R
-FF33 FULLWIDTH LATIN CAPITAL LETTER S
-FF34 FULLWIDTH LATIN CAPITAL LETTER T
-FF35 FULLWIDTH LATIN CAPITAL LETTER U
-FF36 FULLWIDTH LATIN CAPITAL LETTER V
-FF37 FULLWIDTH LATIN CAPITAL LETTER W
-FF38 FULLWIDTH LATIN CAPITAL LETTER X
-FF39 FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B FULLWIDTH LEFT SQUARE BRACKET
-FF3C FULLWIDTH REVERSE SOLIDUS
-FF3D FULLWIDTH RIGHT SQUARE BRACKET
-FF3E FULLWIDTH CIRCUMFLEX ACCENT
-FF3F FULLWIDTH LOW LINE
-FF40 FULLWIDTH GRAVE ACCENT
-FF41 FULLWIDTH LATIN SMALL LETTER A
-FF42 FULLWIDTH LATIN SMALL LETTER B
-FF43 FULLWIDTH LATIN SMALL LETTER C
-FF44 FULLWIDTH LATIN SMALL LETTER D
-FF45 FULLWIDTH LATIN SMALL LETTER E
-FF46 FULLWIDTH LATIN SMALL LETTER F
-FF47 FULLWIDTH LATIN SMALL LETTER G
-FF48 FULLWIDTH LATIN SMALL LETTER H
-FF49 FULLWIDTH LATIN SMALL LETTER I
-FF4A FULLWIDTH LATIN SMALL LETTER J
-FF4B FULLWIDTH LATIN SMALL LETTER K
-FF4C FULLWIDTH LATIN SMALL LETTER L
-FF4D FULLWIDTH LATIN SMALL LETTER M
-FF4E FULLWIDTH LATIN SMALL LETTER N
-FF4F FULLWIDTH LATIN SMALL LETTER O
-FF50 FULLWIDTH LATIN SMALL LETTER P
-FF51 FULLWIDTH LATIN SMALL LETTER Q
-FF52 FULLWIDTH LATIN SMALL LETTER R
-FF53 FULLWIDTH LATIN SMALL LETTER S
-FF54 FULLWIDTH LATIN SMALL LETTER T
-FF55 FULLWIDTH LATIN SMALL LETTER U
-FF56 FULLWIDTH LATIN SMALL LETTER V
-FF57 FULLWIDTH LATIN SMALL LETTER W
-FF58 FULLWIDTH LATIN SMALL LETTER X
-FF59 FULLWIDTH LATIN SMALL LETTER Y
-FF5A FULLWIDTH LATIN SMALL LETTER Z
-FF5B FULLWIDTH LEFT CURLY BRACKET
-FF5C FULLWIDTH VERTICAL LINE
-FF5D FULLWIDTH RIGHT CURLY BRACKET
-FF5E FULLWIDTH TILDE
-FF5F FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61 HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 HALFWIDTH LEFT CORNER BRACKET
-FF63 HALFWIDTH RIGHT CORNER BRACKET
-FF64 HALFWIDTH IDEOGRAPHIC COMMA
-FF65 HALFWIDTH KATAKANA MIDDLE DOT
-FF66 HALFWIDTH KATAKANA LETTER WO
-FF67 HALFWIDTH KATAKANA LETTER SMALL A
-FF68 HALFWIDTH KATAKANA LETTER SMALL I
-FF69 HALFWIDTH KATAKANA LETTER SMALL U
-FF6A HALFWIDTH KATAKANA LETTER SMALL E
-FF6B HALFWIDTH KATAKANA LETTER SMALL O
-FF6C HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F HALFWIDTH KATAKANA LETTER SMALL TU
-FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71 HALFWIDTH KATAKANA LETTER A
-FF72 HALFWIDTH KATAKANA LETTER I
-FF73 HALFWIDTH KATAKANA LETTER U
-FF74 HALFWIDTH KATAKANA LETTER E
-FF75 HALFWIDTH KATAKANA LETTER O
-FF76 HALFWIDTH KATAKANA LETTER KA
-FF77 HALFWIDTH KATAKANA LETTER KI
-FF78 HALFWIDTH KATAKANA LETTER KU
-FF79 HALFWIDTH KATAKANA LETTER KE
-FF7A HALFWIDTH KATAKANA LETTER KO
-FF7B HALFWIDTH KATAKANA LETTER SA
-FF7C HALFWIDTH KATAKANA LETTER SI
-FF7D HALFWIDTH KATAKANA LETTER SU
-FF7E HALFWIDTH KATAKANA LETTER SE
-FF7F HALFWIDTH KATAKANA LETTER SO
-FF80 HALFWIDTH KATAKANA LETTER TA
-FF81 HALFWIDTH KATAKANA LETTER TI
-FF82 HALFWIDTH KATAKANA LETTER TU
-FF83 HALFWIDTH KATAKANA LETTER TE
-FF84 HALFWIDTH KATAKANA LETTER TO
-FF85 HALFWIDTH KATAKANA LETTER NA
-FF86 HALFWIDTH KATAKANA LETTER NI
-FF87 HALFWIDTH KATAKANA LETTER NU
-FF88 HALFWIDTH KATAKANA LETTER NE
-FF89 HALFWIDTH KATAKANA LETTER NO
-FF8A HALFWIDTH KATAKANA LETTER HA
-FF8B HALFWIDTH KATAKANA LETTER HI
-FF8C HALFWIDTH KATAKANA LETTER HU
-FF8D HALFWIDTH KATAKANA LETTER HE
-FF8E HALFWIDTH KATAKANA LETTER HO
-FF8F HALFWIDTH KATAKANA LETTER MA
-FF90 HALFWIDTH KATAKANA LETTER MI
-FF91 HALFWIDTH KATAKANA LETTER MU
-FF92 HALFWIDTH KATAKANA LETTER ME
-FF93 HALFWIDTH KATAKANA LETTER MO
-FF94 HALFWIDTH KATAKANA LETTER YA
-FF95 HALFWIDTH KATAKANA LETTER YU
-FF96 HALFWIDTH KATAKANA LETTER YO
-FF97 HALFWIDTH KATAKANA LETTER RA
-FF98 HALFWIDTH KATAKANA LETTER RI
-FF99 HALFWIDTH KATAKANA LETTER RU
-FF9A HALFWIDTH KATAKANA LETTER RE
-FF9B HALFWIDTH KATAKANA LETTER RO
-FF9C HALFWIDTH KATAKANA LETTER WA
-FF9D HALFWIDTH KATAKANA LETTER N
-FF9E HALFWIDTH KATAKANA VOICED SOUND MARK
-FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFA0 HALFWIDTH HANGUL FILLER
-FFA1 HALFWIDTH HANGUL LETTER KIYEOK
-FFA2 HALFWIDTH HANGUL LETTER SSANGKIYEOK
-FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-FFA4 HALFWIDTH HANGUL LETTER NIEUN
-FFA5 HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-FFA6 HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-FFA7 HALFWIDTH HANGUL LETTER TIKEUT
-FFA8 HALFWIDTH HANGUL LETTER SSANGTIKEUT
-FFA9 HALFWIDTH HANGUL LETTER RIEUL
-FFAA HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-FFAB HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-FFAC HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-FFAD HALFWIDTH HANGUL LETTER RIEUL-SIOS
-FFAE HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-FFAF HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-FFB0 HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-FFB1 HALFWIDTH HANGUL LETTER MIEUM
-FFB2 HALFWIDTH HANGUL LETTER PIEUP
-FFB3 HALFWIDTH HANGUL LETTER SSANGPIEUP
-FFB4 HALFWIDTH HANGUL LETTER PIEUP-SIOS
-FFB5 HALFWIDTH HANGUL LETTER SIOS
-FFB6 HALFWIDTH HANGUL LETTER SSANGSIOS
-FFB7 HALFWIDTH HANGUL LETTER IEUNG
-FFB8 HALFWIDTH HANGUL LETTER CIEUC
-FFB9 HALFWIDTH HANGUL LETTER SSANGCIEUC
-FFBA HALFWIDTH HANGUL LETTER CHIEUCH
-FFBB HALFWIDTH HANGUL LETTER KHIEUKH
-FFBC HALFWIDTH HANGUL LETTER THIEUTH
-FFBD HALFWIDTH HANGUL LETTER PHIEUPH
-FFBE HALFWIDTH HANGUL LETTER HIEUH
-FFC2 HALFWIDTH HANGUL LETTER A
-FFC3 HALFWIDTH HANGUL LETTER AE
-FFC4 HALFWIDTH HANGUL LETTER YA
-FFC5 HALFWIDTH HANGUL LETTER YAE
-FFC6 HALFWIDTH HANGUL LETTER EO
-FFC7 HALFWIDTH HANGUL LETTER E
-FFCA HALFWIDTH HANGUL LETTER YEO
-FFCB HALFWIDTH HANGUL LETTER YE
-FFCC HALFWIDTH HANGUL LETTER O
-FFCD HALFWIDTH HANGUL LETTER WA
-FFCE HALFWIDTH HANGUL LETTER WAE
-FFCF HALFWIDTH HANGUL LETTER OE
-FFD2 HALFWIDTH HANGUL LETTER YO
-FFD3 HALFWIDTH HANGUL LETTER U
-FFD4 HALFWIDTH HANGUL LETTER WEO
-FFD5 HALFWIDTH HANGUL LETTER WE
-FFD6 HALFWIDTH HANGUL LETTER WI
-FFD7 HALFWIDTH HANGUL LETTER YU
-FFDA HALFWIDTH HANGUL LETTER EU
-FFDB HALFWIDTH HANGUL LETTER YI
-FFDC HALFWIDTH HANGUL LETTER I
-FFE0 FULLWIDTH CENT SIGN
-FFE1 FULLWIDTH POUND SIGN
-FFE2 FULLWIDTH NOT SIGN
-FFE3 FULLWIDTH MACRON
-FFE4 FULLWIDTH BROKEN BAR
-FFE5 FULLWIDTH YEN SIGN
-FFE6 FULLWIDTH WON SIGN
-FFE8 HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 HALFWIDTH LEFTWARDS ARROW
-FFEA HALFWIDTH UPWARDS ARROW
-FFEB HALFWIDTH RIGHTWARDS ARROW
-FFEC HALFWIDTH DOWNWARDS ARROW
-FFED HALFWIDTH BLACK SQUARE
-FFEE HALFWIDTH WHITE CIRCLE
-FFF9 INTERLINEAR ANNOTATION ANCHOR
-FFFA INTERLINEAR ANNOTATION SEPARATOR
-FFFB INTERLINEAR ANNOTATION TERMINATOR
-FFFC OBJECT REPLACEMENT CHARACTER
-FFFD REPLACEMENT CHARACTER
-10300 OLD ITALIC LETTER A
-10301 OLD ITALIC LETTER BE
-10302 OLD ITALIC LETTER KE
-10303 OLD ITALIC LETTER DE
-10304 OLD ITALIC LETTER E
-10305 OLD ITALIC LETTER VE
-10306 OLD ITALIC LETTER ZE
-10307 OLD ITALIC LETTER HE
-10308 OLD ITALIC LETTER THE
-10309 OLD ITALIC LETTER I
-1030A OLD ITALIC LETTER KA
-1030B OLD ITALIC LETTER EL
-1030C OLD ITALIC LETTER EM
-1030D OLD ITALIC LETTER EN
-1030E OLD ITALIC LETTER ESH
-1030F OLD ITALIC LETTER O
-10310 OLD ITALIC LETTER PE
-10311 OLD ITALIC LETTER SHE
-10312 OLD ITALIC LETTER KU
-10313 OLD ITALIC LETTER ER
-10314 OLD ITALIC LETTER ES
-10315 OLD ITALIC LETTER TE
-10316 OLD ITALIC LETTER U
-10317 OLD ITALIC LETTER EKS
-10318 OLD ITALIC LETTER PHE
-10319 OLD ITALIC LETTER KHE
-1031A OLD ITALIC LETTER EF
-1031B OLD ITALIC LETTER ERS
-1031C OLD ITALIC LETTER CHE
-1031D OLD ITALIC LETTER II
-1031E OLD ITALIC LETTER UU
-10320 OLD ITALIC NUMERAL ONE
-10321 OLD ITALIC NUMERAL FIVE
-10322 OLD ITALIC NUMERAL TEN
-10323 OLD ITALIC NUMERAL FIFTY
-10330 GOTHIC LETTER AHSA
-10331 GOTHIC LETTER BAIRKAN
-10332 GOTHIC LETTER GIBA
-10333 GOTHIC LETTER DAGS
-10334 GOTHIC LETTER AIHVUS
-10335 GOTHIC LETTER QAIRTHRA
-10336 GOTHIC LETTER IUJA
-10337 GOTHIC LETTER HAGL
-10338 GOTHIC LETTER THIUTH
-10339 GOTHIC LETTER EIS
-1033A GOTHIC LETTER KUSMA
-1033B GOTHIC LETTER LAGUS
-1033C GOTHIC LETTER MANNA
-1033D GOTHIC LETTER NAUTHS
-1033E GOTHIC LETTER JER
-1033F GOTHIC LETTER URUS
-10340 GOTHIC LETTER PAIRTHRA
-10341 GOTHIC LETTER NINETY
-10342 GOTHIC LETTER RAIDA
-10343 GOTHIC LETTER SAUIL
-10344 GOTHIC LETTER TEIWS
-10345 GOTHIC LETTER WINJA
-10346 GOTHIC LETTER FAIHU
-10347 GOTHIC LETTER IGGWS
-10348 GOTHIC LETTER HWAIR
-10349 GOTHIC LETTER OTHAL
-1034A GOTHIC LETTER NINE HUNDRED
-10400 DESERET CAPITAL LETTER LONG I
-10401 DESERET CAPITAL LETTER LONG E
-10402 DESERET CAPITAL LETTER LONG A
-10403 DESERET CAPITAL LETTER LONG AH
-10404 DESERET CAPITAL LETTER LONG O
-10405 DESERET CAPITAL LETTER LONG OO
-10406 DESERET CAPITAL LETTER SHORT I
-10407 DESERET CAPITAL LETTER SHORT E
-10408 DESERET CAPITAL LETTER SHORT A
-10409 DESERET CAPITAL LETTER SHORT AH
-1040A DESERET CAPITAL LETTER SHORT O
-1040B DESERET CAPITAL LETTER SHORT OO
-1040C DESERET CAPITAL LETTER AY
-1040D DESERET CAPITAL LETTER OW
-1040E DESERET CAPITAL LETTER WU
-1040F DESERET CAPITAL LETTER YEE
-10410 DESERET CAPITAL LETTER H
-10411 DESERET CAPITAL LETTER PEE
-10412 DESERET CAPITAL LETTER BEE
-10413 DESERET CAPITAL LETTER TEE
-10414 DESERET CAPITAL LETTER DEE
-10415 DESERET CAPITAL LETTER CHEE
-10416 DESERET CAPITAL LETTER JEE
-10417 DESERET CAPITAL LETTER KAY
-10418 DESERET CAPITAL LETTER GAY
-10419 DESERET CAPITAL LETTER EF
-1041A DESERET CAPITAL LETTER VEE
-1041B DESERET CAPITAL LETTER ETH
-1041C DESERET CAPITAL LETTER THEE
-1041D DESERET CAPITAL LETTER ES
-1041E DESERET CAPITAL LETTER ZEE
-1041F DESERET CAPITAL LETTER ESH
-10420 DESERET CAPITAL LETTER ZHEE
-10421 DESERET CAPITAL LETTER ER
-10422 DESERET CAPITAL LETTER EL
-10423 DESERET CAPITAL LETTER EM
-10424 DESERET CAPITAL LETTER EN
-10425 DESERET CAPITAL LETTER ENG
-10428 DESERET SMALL LETTER LONG I
-10429 DESERET SMALL LETTER LONG E
-1042A DESERET SMALL LETTER LONG A
-1042B DESERET SMALL LETTER LONG AH
-1042C DESERET SMALL LETTER LONG O
-1042D DESERET SMALL LETTER LONG OO
-1042E DESERET SMALL LETTER SHORT I
-1042F DESERET SMALL LETTER SHORT E
-10430 DESERET SMALL LETTER SHORT A
-10431 DESERET SMALL LETTER SHORT AH
-10432 DESERET SMALL LETTER SHORT O
-10433 DESERET SMALL LETTER SHORT OO
-10434 DESERET SMALL LETTER AY
-10435 DESERET SMALL LETTER OW
-10436 DESERET SMALL LETTER WU
-10437 DESERET SMALL LETTER YEE
-10438 DESERET SMALL LETTER H
-10439 DESERET SMALL LETTER PEE
-1043A DESERET SMALL LETTER BEE
-1043B DESERET SMALL LETTER TEE
-1043C DESERET SMALL LETTER DEE
-1043D DESERET SMALL LETTER CHEE
-1043E DESERET SMALL LETTER JEE
-1043F DESERET SMALL LETTER KAY
-10440 DESERET SMALL LETTER GAY
-10441 DESERET SMALL LETTER EF
-10442 DESERET SMALL LETTER VEE
-10443 DESERET SMALL LETTER ETH
-10444 DESERET SMALL LETTER THEE
-10445 DESERET SMALL LETTER ES
-10446 DESERET SMALL LETTER ZEE
-10447 DESERET SMALL LETTER ESH
-10448 DESERET SMALL LETTER ZHEE
-10449 DESERET SMALL LETTER ER
-1044A DESERET SMALL LETTER EL
-1044B DESERET SMALL LETTER EM
-1044C DESERET SMALL LETTER EN
-1044D DESERET SMALL LETTER ENG
-1D000 BYZANTINE MUSICAL SYMBOL PSILI
-1D001 BYZANTINE MUSICAL SYMBOL DASEIA
-1D002 BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003 BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004 BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005 BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006 BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007 BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008 BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009 BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F BYZANTINE MUSICAL SYMBOL TELEIA
-1D010 BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011 BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012 BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013 BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014 BYZANTINE MUSICAL SYMBOL THITA
-1D015 BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016 BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017 BYZANTINE MUSICAL SYMBOL PSILON
-1D018 BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019 BYZANTINE MUSICAL SYMBOL VATHY
-1D01A BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020 BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021 BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022 BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023 BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024 BYZANTINE MUSICAL SYMBOL KLASMA
-1D025 BYZANTINE MUSICAL SYMBOL REVMA
-1D026 BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027 BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028 BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029 BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D BYZANTINE MUSICAL SYMBOL THEMA
-1D02E BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F BYZANTINE MUSICAL SYMBOL DYO
-1D030 BYZANTINE MUSICAL SYMBOL TRIA
-1D031 BYZANTINE MUSICAL SYMBOL TESSERA
-1D032 BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033 BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035 BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036 BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037 BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038 BYZANTINE MUSICAL SYMBOL PELASTON
-1D039 BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040 BYZANTINE MUSICAL SYMBOL NANA
-1D041 BYZANTINE MUSICAL SYMBOL PETASMA
-1D042 BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043 BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044 BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045 BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046 BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047 BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048 BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049 BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050 BYZANTINE MUSICAL SYMBOL YPSILI
-1D051 BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052 BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053 BYZANTINE MUSICAL SYMBOL YPORROI
-1D054 BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055 BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056 BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057 BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058 BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059 BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B BYZANTINE MUSICAL SYMBOL OMALON
-1D05C BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060 BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061 BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062 BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063 BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064 BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065 BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066 BYZANTINE MUSICAL SYMBOL SYRMA
-1D067 BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068 BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069 BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070 BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071 BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072 BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073 BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074 BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075 BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076 BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077 BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078 BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079 BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080 BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081 BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082 BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083 BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084 BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085 BYZANTINE MUSICAL SYMBOL APLI
-1D086 BYZANTINE MUSICAL SYMBOL DIPLI
-1D087 BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088 BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089 BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092 BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096 BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097 BYZANTINE MUSICAL SYMBOL ARGON
-1D098 BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099 BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0 BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1 BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4 BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6 BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7 BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0 BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1 BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3 BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4 BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5 BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6 BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7 BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8 BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5 BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7 BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8 BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9 BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0 BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1 BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2 BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3 BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4 BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5 BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6 BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7 BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8 BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9 BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6 BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7 BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8 BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9 BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1 BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3 BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4 BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5 BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100 MUSICAL SYMBOL SINGLE BARLINE
-1D101 MUSICAL SYMBOL DOUBLE BARLINE
-1D102 MUSICAL SYMBOL FINAL BARLINE
-1D103 MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104 MUSICAL SYMBOL DASHED BARLINE
-1D105 MUSICAL SYMBOL SHORT BARLINE
-1D106 MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107 MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108 MUSICAL SYMBOL REPEAT DOTS
-1D109 MUSICAL SYMBOL DAL SEGNO
-1D10A MUSICAL SYMBOL DA CAPO
-1D10B MUSICAL SYMBOL SEGNO
-1D10C MUSICAL SYMBOL CODA
-1D10D MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F MUSICAL SYMBOL REPEATED FIGURE-3
-1D110 MUSICAL SYMBOL FERMATA
-1D111 MUSICAL SYMBOL FERMATA BELOW
-1D112 MUSICAL SYMBOL BREATH MARK
-1D113 MUSICAL SYMBOL CAESURA
-1D114 MUSICAL SYMBOL BRACE
-1D115 MUSICAL SYMBOL BRACKET
-1D116 MUSICAL SYMBOL ONE-LINE STAFF
-1D117 MUSICAL SYMBOL TWO-LINE STAFF
-1D118 MUSICAL SYMBOL THREE-LINE STAFF
-1D119 MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B MUSICAL SYMBOL SIX-LINE STAFF
-1D11C MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E MUSICAL SYMBOL G CLEF
-1D11F MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120 MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121 MUSICAL SYMBOL C CLEF
-1D122 MUSICAL SYMBOL F CLEF
-1D123 MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124 MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125 MUSICAL SYMBOL DRUM CLEF-1
-1D126 MUSICAL SYMBOL DRUM CLEF-2
-1D12A MUSICAL SYMBOL DOUBLE SHARP
-1D12B MUSICAL SYMBOL DOUBLE FLAT
-1D12C MUSICAL SYMBOL FLAT UP
-1D12D MUSICAL SYMBOL FLAT DOWN
-1D12E MUSICAL SYMBOL NATURAL UP
-1D12F MUSICAL SYMBOL NATURAL DOWN
-1D130 MUSICAL SYMBOL SHARP UP
-1D131 MUSICAL SYMBOL SHARP DOWN
-1D132 MUSICAL SYMBOL QUARTER TONE SHARP
-1D133 MUSICAL SYMBOL QUARTER TONE FLAT
-1D134 MUSICAL SYMBOL COMMON TIME
-1D135 MUSICAL SYMBOL CUT TIME
-1D136 MUSICAL SYMBOL OTTAVA ALTA
-1D137 MUSICAL SYMBOL OTTAVA BASSA
-1D138 MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139 MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A MUSICAL SYMBOL MULTI REST
-1D13B MUSICAL SYMBOL WHOLE REST
-1D13C MUSICAL SYMBOL HALF REST
-1D13D MUSICAL SYMBOL QUARTER REST
-1D13E MUSICAL SYMBOL EIGHTH REST
-1D13F MUSICAL SYMBOL SIXTEENTH REST
-1D140 MUSICAL SYMBOL THIRTY-SECOND REST
-1D141 MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143 MUSICAL SYMBOL X NOTEHEAD
-1D144 MUSICAL SYMBOL PLUS NOTEHEAD
-1D145 MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146 MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147 MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152 MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153 MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154 MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155 MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156 MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157 MUSICAL SYMBOL VOID NOTEHEAD
-1D158 MUSICAL SYMBOL NOTEHEAD BLACK
-1D159 MUSICAL SYMBOL NULL NOTEHEAD
-1D15A MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C MUSICAL SYMBOL BREVE
-1D15D MUSICAL SYMBOL WHOLE NOTE
-1D15E MUSICAL SYMBOL HALF NOTE
-1D15F MUSICAL SYMBOL QUARTER NOTE
-1D160 MUSICAL SYMBOL EIGHTH NOTE
-1D161 MUSICAL SYMBOL SIXTEENTH NOTE
-1D162 MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163 MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
-1D165 MUSICAL SYMBOL COMBINING STEM
-1D166 MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
-1D167 MUSICAL SYMBOL COMBINING TREMOLO-1
-1D168 MUSICAL SYMBOL COMBINING TREMOLO-2
-1D169 MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C MUSICAL SYMBOL FINGERED TREMOLO-3
-1D16D MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-1D16E MUSICAL SYMBOL COMBINING FLAG-1
-1D16F MUSICAL SYMBOL COMBINING FLAG-2
-1D170 MUSICAL SYMBOL COMBINING FLAG-3
-1D171 MUSICAL SYMBOL COMBINING FLAG-4
-1D172 MUSICAL SYMBOL COMBINING FLAG-5
-1D173 MUSICAL SYMBOL BEGIN BEAM
-1D174 MUSICAL SYMBOL END BEAM
-1D175 MUSICAL SYMBOL BEGIN TIE
-1D176 MUSICAL SYMBOL END TIE
-1D177 MUSICAL SYMBOL BEGIN SLUR
-1D178 MUSICAL SYMBOL END SLUR
-1D179 MUSICAL SYMBOL BEGIN PHRASE
-1D17A MUSICAL SYMBOL END PHRASE
-1D17B MUSICAL SYMBOL COMBINING ACCENT
-1D17C MUSICAL SYMBOL COMBINING STACCATO
-1D17D MUSICAL SYMBOL COMBINING TENUTO
-1D17E MUSICAL SYMBOL COMBINING STACCATISSIMO
-1D17F MUSICAL SYMBOL COMBINING MARCATO
-1D180 MUSICAL SYMBOL COMBINING MARCATO-STACCATO
-1D181 MUSICAL SYMBOL COMBINING ACCENT-STACCATO
-1D182 MUSICAL SYMBOL COMBINING LOURE
-1D183 MUSICAL SYMBOL ARPEGGIATO UP
-1D184 MUSICAL SYMBOL ARPEGGIATO DOWN
-1D185 MUSICAL SYMBOL COMBINING DOIT
-1D186 MUSICAL SYMBOL COMBINING RIP
-1D187 MUSICAL SYMBOL COMBINING FLIP
-1D188 MUSICAL SYMBOL COMBINING SMEAR
-1D189 MUSICAL SYMBOL COMBINING BEND
-1D18A MUSICAL SYMBOL COMBINING DOUBLE TONGUE
-1D18B MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C MUSICAL SYMBOL RINFORZANDO
-1D18D MUSICAL SYMBOL SUBITO
-1D18E MUSICAL SYMBOL Z
-1D18F MUSICAL SYMBOL PIANO
-1D190 MUSICAL SYMBOL MEZZO
-1D191 MUSICAL SYMBOL FORTE
-1D192 MUSICAL SYMBOL CRESCENDO
-1D193 MUSICAL SYMBOL DECRESCENDO
-1D194 MUSICAL SYMBOL GRACE NOTE SLASH
-1D195 MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196 MUSICAL SYMBOL TR
-1D197 MUSICAL SYMBOL TURN
-1D198 MUSICAL SYMBOL INVERTED TURN
-1D199 MUSICAL SYMBOL TURN SLASH
-1D19A MUSICAL SYMBOL TURN UP
-1D19B MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0 MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1 MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2 MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3 MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4 MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5 MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6 MUSICAL SYMBOL HAUPTSTIMME
-1D1A7 MUSICAL SYMBOL NEBENSTIMME
-1D1A8 MUSICAL SYMBOL END OF STIMME
-1D1A9 MUSICAL SYMBOL DEGREE SLASH
-1D1AA MUSICAL SYMBOL COMBINING DOWN BOW
-1D1AB MUSICAL SYMBOL COMBINING UP BOW
-1D1AC MUSICAL SYMBOL COMBINING HARMONIC
-1D1AD MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE MUSICAL SYMBOL PEDAL MARK
-1D1AF MUSICAL SYMBOL PEDAL UP MARK
-1D1B0 MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1 MUSICAL SYMBOL GLISSANDO UP
-1D1B2 MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3 MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4 MUSICAL SYMBOL DAMP
-1D1B5 MUSICAL SYMBOL DAMP ALL
-1D1B6 MUSICAL SYMBOL MAXIMA
-1D1B7 MUSICAL SYMBOL LONGA
-1D1B8 MUSICAL SYMBOL BREVIS
-1D1B9 MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB MUSICAL SYMBOL MINIMA
-1D1BC MUSICAL SYMBOL MINIMA BLACK
-1D1BD MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF MUSICAL SYMBOL FUSA WHITE
-1D1C0 MUSICAL SYMBOL FUSA BLACK
-1D1C1 MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2 MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3 MUSICAL SYMBOL BREVIS REST
-1D1C4 MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5 MUSICAL SYMBOL MINIMA REST
-1D1C6 MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF MUSICAL SYMBOL CROIX
-1D1D0 MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1 MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2 MUSICAL SYMBOL SQUARE B
-1D1D3 MUSICAL SYMBOL VIRGA
-1D1D4 MUSICAL SYMBOL PODATUS
-1D1D5 MUSICAL SYMBOL CLIVIS
-1D1D6 MUSICAL SYMBOL SCANDICUS
-1D1D7 MUSICAL SYMBOL CLIMACUS
-1D1D8 MUSICAL SYMBOL TORCULUS
-1D1D9 MUSICAL SYMBOL PORRECTUS
-1D1DA MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD MUSICAL SYMBOL PES SUBPUNCTIS
-1D400 MATHEMATICAL BOLD CAPITAL A
-1D401 MATHEMATICAL BOLD CAPITAL B
-1D402 MATHEMATICAL BOLD CAPITAL C
-1D403 MATHEMATICAL BOLD CAPITAL D
-1D404 MATHEMATICAL BOLD CAPITAL E
-1D405 MATHEMATICAL BOLD CAPITAL F
-1D406 MATHEMATICAL BOLD CAPITAL G
-1D407 MATHEMATICAL BOLD CAPITAL H
-1D408 MATHEMATICAL BOLD CAPITAL I
-1D409 MATHEMATICAL BOLD CAPITAL J
-1D40A MATHEMATICAL BOLD CAPITAL K
-1D40B MATHEMATICAL BOLD CAPITAL L
-1D40C MATHEMATICAL BOLD CAPITAL M
-1D40D MATHEMATICAL BOLD CAPITAL N
-1D40E MATHEMATICAL BOLD CAPITAL O
-1D40F MATHEMATICAL BOLD CAPITAL P
-1D410 MATHEMATICAL BOLD CAPITAL Q
-1D411 MATHEMATICAL BOLD CAPITAL R
-1D412 MATHEMATICAL BOLD CAPITAL S
-1D413 MATHEMATICAL BOLD CAPITAL T
-1D414 MATHEMATICAL BOLD CAPITAL U
-1D415 MATHEMATICAL BOLD CAPITAL V
-1D416 MATHEMATICAL BOLD CAPITAL W
-1D417 MATHEMATICAL BOLD CAPITAL X
-1D418 MATHEMATICAL BOLD CAPITAL Y
-1D419 MATHEMATICAL BOLD CAPITAL Z
-1D41A MATHEMATICAL BOLD SMALL A
-1D41B MATHEMATICAL BOLD SMALL B
-1D41C MATHEMATICAL BOLD SMALL C
-1D41D MATHEMATICAL BOLD SMALL D
-1D41E MATHEMATICAL BOLD SMALL E
-1D41F MATHEMATICAL BOLD SMALL F
-1D420 MATHEMATICAL BOLD SMALL G
-1D421 MATHEMATICAL BOLD SMALL H
-1D422 MATHEMATICAL BOLD SMALL I
-1D423 MATHEMATICAL BOLD SMALL J
-1D424 MATHEMATICAL BOLD SMALL K
-1D425 MATHEMATICAL BOLD SMALL L
-1D426 MATHEMATICAL BOLD SMALL M
-1D427 MATHEMATICAL BOLD SMALL N
-1D428 MATHEMATICAL BOLD SMALL O
-1D429 MATHEMATICAL BOLD SMALL P
-1D42A MATHEMATICAL BOLD SMALL Q
-1D42B MATHEMATICAL BOLD SMALL R
-1D42C MATHEMATICAL BOLD SMALL S
-1D42D MATHEMATICAL BOLD SMALL T
-1D42E MATHEMATICAL BOLD SMALL U
-1D42F MATHEMATICAL BOLD SMALL V
-1D430 MATHEMATICAL BOLD SMALL W
-1D431 MATHEMATICAL BOLD SMALL X
-1D432 MATHEMATICAL BOLD SMALL Y
-1D433 MATHEMATICAL BOLD SMALL Z
-1D434 MATHEMATICAL ITALIC CAPITAL A
-1D435 MATHEMATICAL ITALIC CAPITAL B
-1D436 MATHEMATICAL ITALIC CAPITAL C
-1D437 MATHEMATICAL ITALIC CAPITAL D
-1D438 MATHEMATICAL ITALIC CAPITAL E
-1D439 MATHEMATICAL ITALIC CAPITAL F
-1D43A MATHEMATICAL ITALIC CAPITAL G
-1D43B MATHEMATICAL ITALIC CAPITAL H
-1D43C MATHEMATICAL ITALIC CAPITAL I
-1D43D MATHEMATICAL ITALIC CAPITAL J
-1D43E MATHEMATICAL ITALIC CAPITAL K
-1D43F MATHEMATICAL ITALIC CAPITAL L
-1D440 MATHEMATICAL ITALIC CAPITAL M
-1D441 MATHEMATICAL ITALIC CAPITAL N
-1D442 MATHEMATICAL ITALIC CAPITAL O
-1D443 MATHEMATICAL ITALIC CAPITAL P
-1D444 MATHEMATICAL ITALIC CAPITAL Q
-1D445 MATHEMATICAL ITALIC CAPITAL R
-1D446 MATHEMATICAL ITALIC CAPITAL S
-1D447 MATHEMATICAL ITALIC CAPITAL T
-1D448 MATHEMATICAL ITALIC CAPITAL U
-1D449 MATHEMATICAL ITALIC CAPITAL V
-1D44A MATHEMATICAL ITALIC CAPITAL W
-1D44B MATHEMATICAL ITALIC CAPITAL X
-1D44C MATHEMATICAL ITALIC CAPITAL Y
-1D44D MATHEMATICAL ITALIC CAPITAL Z
-1D44E MATHEMATICAL ITALIC SMALL A
-1D44F MATHEMATICAL ITALIC SMALL B
-1D450 MATHEMATICAL ITALIC SMALL C
-1D451 MATHEMATICAL ITALIC SMALL D
-1D452 MATHEMATICAL ITALIC SMALL E
-1D453 MATHEMATICAL ITALIC SMALL F
-1D454 MATHEMATICAL ITALIC SMALL G
-1D456 MATHEMATICAL ITALIC SMALL I
-1D457 MATHEMATICAL ITALIC SMALL J
-1D458 MATHEMATICAL ITALIC SMALL K
-1D459 MATHEMATICAL ITALIC SMALL L
-1D45A MATHEMATICAL ITALIC SMALL M
-1D45B MATHEMATICAL ITALIC SMALL N
-1D45C MATHEMATICAL ITALIC SMALL O
-1D45D MATHEMATICAL ITALIC SMALL P
-1D45E MATHEMATICAL ITALIC SMALL Q
-1D45F MATHEMATICAL ITALIC SMALL R
-1D460 MATHEMATICAL ITALIC SMALL S
-1D461 MATHEMATICAL ITALIC SMALL T
-1D462 MATHEMATICAL ITALIC SMALL U
-1D463 MATHEMATICAL ITALIC SMALL V
-1D464 MATHEMATICAL ITALIC SMALL W
-1D465 MATHEMATICAL ITALIC SMALL X
-1D466 MATHEMATICAL ITALIC SMALL Y
-1D467 MATHEMATICAL ITALIC SMALL Z
-1D468 MATHEMATICAL BOLD ITALIC CAPITAL A
-1D469 MATHEMATICAL BOLD ITALIC CAPITAL B
-1D46A MATHEMATICAL BOLD ITALIC CAPITAL C
-1D46B MATHEMATICAL BOLD ITALIC CAPITAL D
-1D46C MATHEMATICAL BOLD ITALIC CAPITAL E
-1D46D MATHEMATICAL BOLD ITALIC CAPITAL F
-1D46E MATHEMATICAL BOLD ITALIC CAPITAL G
-1D46F MATHEMATICAL BOLD ITALIC CAPITAL H
-1D470 MATHEMATICAL BOLD ITALIC CAPITAL I
-1D471 MATHEMATICAL BOLD ITALIC CAPITAL J
-1D472 MATHEMATICAL BOLD ITALIC CAPITAL K
-1D473 MATHEMATICAL BOLD ITALIC CAPITAL L
-1D474 MATHEMATICAL BOLD ITALIC CAPITAL M
-1D475 MATHEMATICAL BOLD ITALIC CAPITAL N
-1D476 MATHEMATICAL BOLD ITALIC CAPITAL O
-1D477 MATHEMATICAL BOLD ITALIC CAPITAL P
-1D478 MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D479 MATHEMATICAL BOLD ITALIC CAPITAL R
-1D47A MATHEMATICAL BOLD ITALIC CAPITAL S
-1D47B MATHEMATICAL BOLD ITALIC CAPITAL T
-1D47C MATHEMATICAL BOLD ITALIC CAPITAL U
-1D47D MATHEMATICAL BOLD ITALIC CAPITAL V
-1D47E MATHEMATICAL BOLD ITALIC CAPITAL W
-1D47F MATHEMATICAL BOLD ITALIC CAPITAL X
-1D480 MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D481 MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D482 MATHEMATICAL BOLD ITALIC SMALL A
-1D483 MATHEMATICAL BOLD ITALIC SMALL B
-1D484 MATHEMATICAL BOLD ITALIC SMALL C
-1D485 MATHEMATICAL BOLD ITALIC SMALL D
-1D486 MATHEMATICAL BOLD ITALIC SMALL E
-1D487 MATHEMATICAL BOLD ITALIC SMALL F
-1D488 MATHEMATICAL BOLD ITALIC SMALL G
-1D489 MATHEMATICAL BOLD ITALIC SMALL H
-1D48A MATHEMATICAL BOLD ITALIC SMALL I
-1D48B MATHEMATICAL BOLD ITALIC SMALL J
-1D48C MATHEMATICAL BOLD ITALIC SMALL K
-1D48D MATHEMATICAL BOLD ITALIC SMALL L
-1D48E MATHEMATICAL BOLD ITALIC SMALL M
-1D48F MATHEMATICAL BOLD ITALIC SMALL N
-1D490 MATHEMATICAL BOLD ITALIC SMALL O
-1D491 MATHEMATICAL BOLD ITALIC SMALL P
-1D492 MATHEMATICAL BOLD ITALIC SMALL Q
-1D493 MATHEMATICAL BOLD ITALIC SMALL R
-1D494 MATHEMATICAL BOLD ITALIC SMALL S
-1D495 MATHEMATICAL BOLD ITALIC SMALL T
-1D496 MATHEMATICAL BOLD ITALIC SMALL U
-1D497 MATHEMATICAL BOLD ITALIC SMALL V
-1D498 MATHEMATICAL BOLD ITALIC SMALL W
-1D499 MATHEMATICAL BOLD ITALIC SMALL X
-1D49A MATHEMATICAL BOLD ITALIC SMALL Y
-1D49B MATHEMATICAL BOLD ITALIC SMALL Z
-1D49C MATHEMATICAL SCRIPT CAPITAL A
-1D49E MATHEMATICAL SCRIPT CAPITAL C
-1D49F MATHEMATICAL SCRIPT CAPITAL D
-1D4A2 MATHEMATICAL SCRIPT CAPITAL G
-1D4A5 MATHEMATICAL SCRIPT CAPITAL J
-1D4A6 MATHEMATICAL SCRIPT CAPITAL K
-1D4A9 MATHEMATICAL SCRIPT CAPITAL N
-1D4AA MATHEMATICAL SCRIPT CAPITAL O
-1D4AB MATHEMATICAL SCRIPT CAPITAL P
-1D4AC MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE MATHEMATICAL SCRIPT CAPITAL S
-1D4AF MATHEMATICAL SCRIPT CAPITAL T
-1D4B0 MATHEMATICAL SCRIPT CAPITAL U
-1D4B1 MATHEMATICAL SCRIPT CAPITAL V
-1D4B2 MATHEMATICAL SCRIPT CAPITAL W
-1D4B3 MATHEMATICAL SCRIPT CAPITAL X
-1D4B4 MATHEMATICAL SCRIPT CAPITAL Y
-1D4B5 MATHEMATICAL SCRIPT CAPITAL Z
-1D4B6 MATHEMATICAL SCRIPT SMALL A
-1D4B7 MATHEMATICAL SCRIPT SMALL B
-1D4B8 MATHEMATICAL SCRIPT SMALL C
-1D4B9 MATHEMATICAL SCRIPT SMALL D
-1D4BB MATHEMATICAL SCRIPT SMALL F
-1D4BD MATHEMATICAL SCRIPT SMALL H
-1D4BE MATHEMATICAL SCRIPT SMALL I
-1D4BF MATHEMATICAL SCRIPT SMALL J
-1D4C0 MATHEMATICAL SCRIPT SMALL K
-1D4C2 MATHEMATICAL SCRIPT SMALL M
-1D4C3 MATHEMATICAL SCRIPT SMALL N
-1D4C5 MATHEMATICAL SCRIPT SMALL P
-1D4C6 MATHEMATICAL SCRIPT SMALL Q
-1D4C7 MATHEMATICAL SCRIPT SMALL R
-1D4C8 MATHEMATICAL SCRIPT SMALL S
-1D4C9 MATHEMATICAL SCRIPT SMALL T
-1D4CA MATHEMATICAL SCRIPT SMALL U
-1D4CB MATHEMATICAL SCRIPT SMALL V
-1D4CC MATHEMATICAL SCRIPT SMALL W
-1D4CD MATHEMATICAL SCRIPT SMALL X
-1D4CE MATHEMATICAL SCRIPT SMALL Y
-1D4CF MATHEMATICAL SCRIPT SMALL Z
-1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D4D1 MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D4D2 MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D4D3 MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D4D4 MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D4D5 MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D4D6 MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D4D7 MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D4D8 MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D4D9 MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D4DA MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D4DB MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D4DC MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D4DD MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D4DE MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D4DF MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D4E0 MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D4E1 MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D4E2 MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D4E3 MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D4E4 MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D4E5 MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D4E6 MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D4E7 MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D4E8 MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D4E9 MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D4EA MATHEMATICAL BOLD SCRIPT SMALL A
-1D4EB MATHEMATICAL BOLD SCRIPT SMALL B
-1D4EC MATHEMATICAL BOLD SCRIPT SMALL C
-1D4ED MATHEMATICAL BOLD SCRIPT SMALL D
-1D4EE MATHEMATICAL BOLD SCRIPT SMALL E
-1D4EF MATHEMATICAL BOLD SCRIPT SMALL F
-1D4F0 MATHEMATICAL BOLD SCRIPT SMALL G
-1D4F1 MATHEMATICAL BOLD SCRIPT SMALL H
-1D4F2 MATHEMATICAL BOLD SCRIPT SMALL I
-1D4F3 MATHEMATICAL BOLD SCRIPT SMALL J
-1D4F4 MATHEMATICAL BOLD SCRIPT SMALL K
-1D4F5 MATHEMATICAL BOLD SCRIPT SMALL L
-1D4F6 MATHEMATICAL BOLD SCRIPT SMALL M
-1D4F7 MATHEMATICAL BOLD SCRIPT SMALL N
-1D4F8 MATHEMATICAL BOLD SCRIPT SMALL O
-1D4F9 MATHEMATICAL BOLD SCRIPT SMALL P
-1D4FA MATHEMATICAL BOLD SCRIPT SMALL Q
-1D4FB MATHEMATICAL BOLD SCRIPT SMALL R
-1D4FC MATHEMATICAL BOLD SCRIPT SMALL S
-1D4FD MATHEMATICAL BOLD SCRIPT SMALL T
-1D4FE MATHEMATICAL BOLD SCRIPT SMALL U
-1D4FF MATHEMATICAL BOLD SCRIPT SMALL V
-1D500 MATHEMATICAL BOLD SCRIPT SMALL W
-1D501 MATHEMATICAL BOLD SCRIPT SMALL X
-1D502 MATHEMATICAL BOLD SCRIPT SMALL Y
-1D503 MATHEMATICAL BOLD SCRIPT SMALL Z
-1D504 MATHEMATICAL FRAKTUR CAPITAL A
-1D505 MATHEMATICAL FRAKTUR CAPITAL B
-1D507 MATHEMATICAL FRAKTUR CAPITAL D
-1D508 MATHEMATICAL FRAKTUR CAPITAL E
-1D509 MATHEMATICAL FRAKTUR CAPITAL F
-1D50A MATHEMATICAL FRAKTUR CAPITAL G
-1D50D MATHEMATICAL FRAKTUR CAPITAL J
-1D50E MATHEMATICAL FRAKTUR CAPITAL K
-1D50F MATHEMATICAL FRAKTUR CAPITAL L
-1D510 MATHEMATICAL FRAKTUR CAPITAL M
-1D511 MATHEMATICAL FRAKTUR CAPITAL N
-1D512 MATHEMATICAL FRAKTUR CAPITAL O
-1D513 MATHEMATICAL FRAKTUR CAPITAL P
-1D514 MATHEMATICAL FRAKTUR CAPITAL Q
-1D516 MATHEMATICAL FRAKTUR CAPITAL S
-1D517 MATHEMATICAL FRAKTUR CAPITAL T
-1D518 MATHEMATICAL FRAKTUR CAPITAL U
-1D519 MATHEMATICAL FRAKTUR CAPITAL V
-1D51A MATHEMATICAL FRAKTUR CAPITAL W
-1D51B MATHEMATICAL FRAKTUR CAPITAL X
-1D51C MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E MATHEMATICAL FRAKTUR SMALL A
-1D51F MATHEMATICAL FRAKTUR SMALL B
-1D520 MATHEMATICAL FRAKTUR SMALL C
-1D521 MATHEMATICAL FRAKTUR SMALL D
-1D522 MATHEMATICAL FRAKTUR SMALL E
-1D523 MATHEMATICAL FRAKTUR SMALL F
-1D524 MATHEMATICAL FRAKTUR SMALL G
-1D525 MATHEMATICAL FRAKTUR SMALL H
-1D526 MATHEMATICAL FRAKTUR SMALL I
-1D527 MATHEMATICAL FRAKTUR SMALL J
-1D528 MATHEMATICAL FRAKTUR SMALL K
-1D529 MATHEMATICAL FRAKTUR SMALL L
-1D52A MATHEMATICAL FRAKTUR SMALL M
-1D52B MATHEMATICAL FRAKTUR SMALL N
-1D52C MATHEMATICAL FRAKTUR SMALL O
-1D52D MATHEMATICAL FRAKTUR SMALL P
-1D52E MATHEMATICAL FRAKTUR SMALL Q
-1D52F MATHEMATICAL FRAKTUR SMALL R
-1D530 MATHEMATICAL FRAKTUR SMALL S
-1D531 MATHEMATICAL FRAKTUR SMALL T
-1D532 MATHEMATICAL FRAKTUR SMALL U
-1D533 MATHEMATICAL FRAKTUR SMALL V
-1D534 MATHEMATICAL FRAKTUR SMALL W
-1D535 MATHEMATICAL FRAKTUR SMALL X
-1D536 MATHEMATICAL FRAKTUR SMALL Y
-1D537 MATHEMATICAL FRAKTUR SMALL Z
-1D538 MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D539 MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D53C MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D53D MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D53E MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540 MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D541 MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D542 MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D543 MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D544 MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546 MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D54B MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D54C MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D54D MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D54E MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D54F MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D550 MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552 MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D553 MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D554 MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D555 MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D556 MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D557 MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D558 MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D559 MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D55A MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D55B MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D55C MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D55D MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D55E MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D55F MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D560 MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D561 MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D562 MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D563 MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D564 MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D565 MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D566 MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D567 MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D568 MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D569 MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D56A MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D56B MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D56C MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D56D MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D56E MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D56F MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D570 MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D571 MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D572 MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D573 MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D574 MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D575 MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D576 MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D577 MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D578 MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D579 MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D57A MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D57B MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D57C MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D57D MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D57E MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D57F MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D580 MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D581 MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D582 MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D583 MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D584 MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D585 MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D586 MATHEMATICAL BOLD FRAKTUR SMALL A
-1D587 MATHEMATICAL BOLD FRAKTUR SMALL B
-1D588 MATHEMATICAL BOLD FRAKTUR SMALL C
-1D589 MATHEMATICAL BOLD FRAKTUR SMALL D
-1D58A MATHEMATICAL BOLD FRAKTUR SMALL E
-1D58B MATHEMATICAL BOLD FRAKTUR SMALL F
-1D58C MATHEMATICAL BOLD FRAKTUR SMALL G
-1D58D MATHEMATICAL BOLD FRAKTUR SMALL H
-1D58E MATHEMATICAL BOLD FRAKTUR SMALL I
-1D58F MATHEMATICAL BOLD FRAKTUR SMALL J
-1D590 MATHEMATICAL BOLD FRAKTUR SMALL K
-1D591 MATHEMATICAL BOLD FRAKTUR SMALL L
-1D592 MATHEMATICAL BOLD FRAKTUR SMALL M
-1D593 MATHEMATICAL BOLD FRAKTUR SMALL N
-1D594 MATHEMATICAL BOLD FRAKTUR SMALL O
-1D595 MATHEMATICAL BOLD FRAKTUR SMALL P
-1D596 MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D597 MATHEMATICAL BOLD FRAKTUR SMALL R
-1D598 MATHEMATICAL BOLD FRAKTUR SMALL S
-1D599 MATHEMATICAL BOLD FRAKTUR SMALL T
-1D59A MATHEMATICAL BOLD FRAKTUR SMALL U
-1D59B MATHEMATICAL BOLD FRAKTUR SMALL V
-1D59C MATHEMATICAL BOLD FRAKTUR SMALL W
-1D59D MATHEMATICAL BOLD FRAKTUR SMALL X
-1D59E MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D59F MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5A0 MATHEMATICAL SANS-SERIF CAPITAL A
-1D5A1 MATHEMATICAL SANS-SERIF CAPITAL B
-1D5A2 MATHEMATICAL SANS-SERIF CAPITAL C
-1D5A3 MATHEMATICAL SANS-SERIF CAPITAL D
-1D5A4 MATHEMATICAL SANS-SERIF CAPITAL E
-1D5A5 MATHEMATICAL SANS-SERIF CAPITAL F
-1D5A6 MATHEMATICAL SANS-SERIF CAPITAL G
-1D5A7 MATHEMATICAL SANS-SERIF CAPITAL H
-1D5A8 MATHEMATICAL SANS-SERIF CAPITAL I
-1D5A9 MATHEMATICAL SANS-SERIF CAPITAL J
-1D5AA MATHEMATICAL SANS-SERIF CAPITAL K
-1D5AB MATHEMATICAL SANS-SERIF CAPITAL L
-1D5AC MATHEMATICAL SANS-SERIF CAPITAL M
-1D5AD MATHEMATICAL SANS-SERIF CAPITAL N
-1D5AE MATHEMATICAL SANS-SERIF CAPITAL O
-1D5AF MATHEMATICAL SANS-SERIF CAPITAL P
-1D5B0 MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5B1 MATHEMATICAL SANS-SERIF CAPITAL R
-1D5B2 MATHEMATICAL SANS-SERIF CAPITAL S
-1D5B3 MATHEMATICAL SANS-SERIF CAPITAL T
-1D5B4 MATHEMATICAL SANS-SERIF CAPITAL U
-1D5B5 MATHEMATICAL SANS-SERIF CAPITAL V
-1D5B6 MATHEMATICAL SANS-SERIF CAPITAL W
-1D5B7 MATHEMATICAL SANS-SERIF CAPITAL X
-1D5B8 MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5B9 MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5BA MATHEMATICAL SANS-SERIF SMALL A
-1D5BB MATHEMATICAL SANS-SERIF SMALL B
-1D5BC MATHEMATICAL SANS-SERIF SMALL C
-1D5BD MATHEMATICAL SANS-SERIF SMALL D
-1D5BE MATHEMATICAL SANS-SERIF SMALL E
-1D5BF MATHEMATICAL SANS-SERIF SMALL F
-1D5C0 MATHEMATICAL SANS-SERIF SMALL G
-1D5C1 MATHEMATICAL SANS-SERIF SMALL H
-1D5C2 MATHEMATICAL SANS-SERIF SMALL I
-1D5C3 MATHEMATICAL SANS-SERIF SMALL J
-1D5C4 MATHEMATICAL SANS-SERIF SMALL K
-1D5C5 MATHEMATICAL SANS-SERIF SMALL L
-1D5C6 MATHEMATICAL SANS-SERIF SMALL M
-1D5C7 MATHEMATICAL SANS-SERIF SMALL N
-1D5C8 MATHEMATICAL SANS-SERIF SMALL O
-1D5C9 MATHEMATICAL SANS-SERIF SMALL P
-1D5CA MATHEMATICAL SANS-SERIF SMALL Q
-1D5CB MATHEMATICAL SANS-SERIF SMALL R
-1D5CC MATHEMATICAL SANS-SERIF SMALL S
-1D5CD MATHEMATICAL SANS-SERIF SMALL T
-1D5CE MATHEMATICAL SANS-SERIF SMALL U
-1D5CF MATHEMATICAL SANS-SERIF SMALL V
-1D5D0 MATHEMATICAL SANS-SERIF SMALL W
-1D5D1 MATHEMATICAL SANS-SERIF SMALL X
-1D5D2 MATHEMATICAL SANS-SERIF SMALL Y
-1D5D3 MATHEMATICAL SANS-SERIF SMALL Z
-1D5D4 MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D5D5 MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D5D6 MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D5D7 MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D5D8 MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D5D9 MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D5DA MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D5DB MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D5DC MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D5DD MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D5DE MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D5DF MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D5E0 MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D5E1 MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D5E2 MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D5E3 MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D5E4 MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D5E5 MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D5E6 MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D5E7 MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D5E8 MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D5E9 MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D5EA MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D5EB MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D5EC MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D5ED MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D5EE MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D5EF MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D5F0 MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D5F1 MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D5F2 MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D5F3 MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D5F4 MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D5F5 MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D5F6 MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D5F7 MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D5F8 MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D5F9 MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D5FA MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D5FB MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D5FC MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D5FD MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D5FE MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D5FF MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D600 MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D601 MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D602 MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D603 MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D604 MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D605 MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D606 MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D607 MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D608 MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D609 MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D60A MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D60B MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D60C MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D60D MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D60E MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D60F MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D610 MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D611 MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D612 MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D613 MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D614 MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D615 MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D616 MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D617 MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D618 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D619 MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D61A MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D61B MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D61C MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D61D MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D61E MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D61F MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D620 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D621 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D622 MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D623 MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D624 MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D625 MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D626 MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D627 MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D628 MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D629 MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D62A MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D62B MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D62C MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D62D MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D62E MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D62F MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D630 MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D631 MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D632 MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D633 MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D634 MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D635 MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D636 MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D637 MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D638 MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D639 MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D63A MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D63B MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D63C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D63D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D63E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D63F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D640 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D641 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D642 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D643 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D644 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D645 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D646 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D647 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D648 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D649 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D64A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D64B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D64C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D64D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D64E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D64F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D650 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D651 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D652 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D653 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D654 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D655 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D656 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D657 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D658 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D659 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D65A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D65B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D65C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D65D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D65E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D65F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D660 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D661 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D662 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D663 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D664 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D665 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D666 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D667 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D668 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D669 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D66A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D66B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D66C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D66D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D66E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D66F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D670 MATHEMATICAL MONOSPACE CAPITAL A
-1D671 MATHEMATICAL MONOSPACE CAPITAL B
-1D672 MATHEMATICAL MONOSPACE CAPITAL C
-1D673 MATHEMATICAL MONOSPACE CAPITAL D
-1D674 MATHEMATICAL MONOSPACE CAPITAL E
-1D675 MATHEMATICAL MONOSPACE CAPITAL F
-1D676 MATHEMATICAL MONOSPACE CAPITAL G
-1D677 MATHEMATICAL MONOSPACE CAPITAL H
-1D678 MATHEMATICAL MONOSPACE CAPITAL I
-1D679 MATHEMATICAL MONOSPACE CAPITAL J
-1D67A MATHEMATICAL MONOSPACE CAPITAL K
-1D67B MATHEMATICAL MONOSPACE CAPITAL L
-1D67C MATHEMATICAL MONOSPACE CAPITAL M
-1D67D MATHEMATICAL MONOSPACE CAPITAL N
-1D67E MATHEMATICAL MONOSPACE CAPITAL O
-1D67F MATHEMATICAL MONOSPACE CAPITAL P
-1D680 MATHEMATICAL MONOSPACE CAPITAL Q
-1D681 MATHEMATICAL MONOSPACE CAPITAL R
-1D682 MATHEMATICAL MONOSPACE CAPITAL S
-1D683 MATHEMATICAL MONOSPACE CAPITAL T
-1D684 MATHEMATICAL MONOSPACE CAPITAL U
-1D685 MATHEMATICAL MONOSPACE CAPITAL V
-1D686 MATHEMATICAL MONOSPACE CAPITAL W
-1D687 MATHEMATICAL MONOSPACE CAPITAL X
-1D688 MATHEMATICAL MONOSPACE CAPITAL Y
-1D689 MATHEMATICAL MONOSPACE CAPITAL Z
-1D68A MATHEMATICAL MONOSPACE SMALL A
-1D68B MATHEMATICAL MONOSPACE SMALL B
-1D68C MATHEMATICAL MONOSPACE SMALL C
-1D68D MATHEMATICAL MONOSPACE SMALL D
-1D68E MATHEMATICAL MONOSPACE SMALL E
-1D68F MATHEMATICAL MONOSPACE SMALL F
-1D690 MATHEMATICAL MONOSPACE SMALL G
-1D691 MATHEMATICAL MONOSPACE SMALL H
-1D692 MATHEMATICAL MONOSPACE SMALL I
-1D693 MATHEMATICAL MONOSPACE SMALL J
-1D694 MATHEMATICAL MONOSPACE SMALL K
-1D695 MATHEMATICAL MONOSPACE SMALL L
-1D696 MATHEMATICAL MONOSPACE SMALL M
-1D697 MATHEMATICAL MONOSPACE SMALL N
-1D698 MATHEMATICAL MONOSPACE SMALL O
-1D699 MATHEMATICAL MONOSPACE SMALL P
-1D69A MATHEMATICAL MONOSPACE SMALL Q
-1D69B MATHEMATICAL MONOSPACE SMALL R
-1D69C MATHEMATICAL MONOSPACE SMALL S
-1D69D MATHEMATICAL MONOSPACE SMALL T
-1D69E MATHEMATICAL MONOSPACE SMALL U
-1D69F MATHEMATICAL MONOSPACE SMALL V
-1D6A0 MATHEMATICAL MONOSPACE SMALL W
-1D6A1 MATHEMATICAL MONOSPACE SMALL X
-1D6A2 MATHEMATICAL MONOSPACE SMALL Y
-1D6A3 MATHEMATICAL MONOSPACE SMALL Z
-1D6A8 MATHEMATICAL BOLD CAPITAL ALPHA
-1D6A9 MATHEMATICAL BOLD CAPITAL BETA
-1D6AA MATHEMATICAL BOLD CAPITAL GAMMA
-1D6AB MATHEMATICAL BOLD CAPITAL DELTA
-1D6AC MATHEMATICAL BOLD CAPITAL EPSILON
-1D6AD MATHEMATICAL BOLD CAPITAL ZETA
-1D6AE MATHEMATICAL BOLD CAPITAL ETA
-1D6AF MATHEMATICAL BOLD CAPITAL THETA
-1D6B0 MATHEMATICAL BOLD CAPITAL IOTA
-1D6B1 MATHEMATICAL BOLD CAPITAL KAPPA
-1D6B2 MATHEMATICAL BOLD CAPITAL LAMDA
-1D6B3 MATHEMATICAL BOLD CAPITAL MU
-1D6B4 MATHEMATICAL BOLD CAPITAL NU
-1D6B5 MATHEMATICAL BOLD CAPITAL XI
-1D6B6 MATHEMATICAL BOLD CAPITAL OMICRON
-1D6B7 MATHEMATICAL BOLD CAPITAL PI
-1D6B8 MATHEMATICAL BOLD CAPITAL RHO
-1D6B9 MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6BA MATHEMATICAL BOLD CAPITAL SIGMA
-1D6BB MATHEMATICAL BOLD CAPITAL TAU
-1D6BC MATHEMATICAL BOLD CAPITAL UPSILON
-1D6BD MATHEMATICAL BOLD CAPITAL PHI
-1D6BE MATHEMATICAL BOLD CAPITAL CHI
-1D6BF MATHEMATICAL BOLD CAPITAL PSI
-1D6C0 MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C1 MATHEMATICAL BOLD NABLA
-1D6C2 MATHEMATICAL BOLD SMALL ALPHA
-1D6C3 MATHEMATICAL BOLD SMALL BETA
-1D6C4 MATHEMATICAL BOLD SMALL GAMMA
-1D6C5 MATHEMATICAL BOLD SMALL DELTA
-1D6C6 MATHEMATICAL BOLD SMALL EPSILON
-1D6C7 MATHEMATICAL BOLD SMALL ZETA
-1D6C8 MATHEMATICAL BOLD SMALL ETA
-1D6C9 MATHEMATICAL BOLD SMALL THETA
-1D6CA MATHEMATICAL BOLD SMALL IOTA
-1D6CB MATHEMATICAL BOLD SMALL KAPPA
-1D6CC MATHEMATICAL BOLD SMALL LAMDA
-1D6CD MATHEMATICAL BOLD SMALL MU
-1D6CE MATHEMATICAL BOLD SMALL NU
-1D6CF MATHEMATICAL BOLD SMALL XI
-1D6D0 MATHEMATICAL BOLD SMALL OMICRON
-1D6D1 MATHEMATICAL BOLD SMALL PI
-1D6D2 MATHEMATICAL BOLD SMALL RHO
-1D6D3 MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4 MATHEMATICAL BOLD SMALL SIGMA
-1D6D5 MATHEMATICAL BOLD SMALL TAU
-1D6D6 MATHEMATICAL BOLD SMALL UPSILON
-1D6D7 MATHEMATICAL BOLD SMALL PHI
-1D6D8 MATHEMATICAL BOLD SMALL CHI
-1D6D9 MATHEMATICAL BOLD SMALL PSI
-1D6DA MATHEMATICAL BOLD SMALL OMEGA
-1D6DB MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6DC MATHEMATICAL BOLD EPSILON SYMBOL
-1D6DD MATHEMATICAL BOLD THETA SYMBOL
-1D6DE MATHEMATICAL BOLD KAPPA SYMBOL
-1D6DF MATHEMATICAL BOLD PHI SYMBOL
-1D6E0 MATHEMATICAL BOLD RHO SYMBOL
-1D6E1 MATHEMATICAL BOLD PI SYMBOL
-1D6E2 MATHEMATICAL ITALIC CAPITAL ALPHA
-1D6E3 MATHEMATICAL ITALIC CAPITAL BETA
-1D6E4 MATHEMATICAL ITALIC CAPITAL GAMMA
-1D6E5 MATHEMATICAL ITALIC CAPITAL DELTA
-1D6E6 MATHEMATICAL ITALIC CAPITAL EPSILON
-1D6E7 MATHEMATICAL ITALIC CAPITAL ZETA
-1D6E8 MATHEMATICAL ITALIC CAPITAL ETA
-1D6E9 MATHEMATICAL ITALIC CAPITAL THETA
-1D6EA MATHEMATICAL ITALIC CAPITAL IOTA
-1D6EB MATHEMATICAL ITALIC CAPITAL KAPPA
-1D6EC MATHEMATICAL ITALIC CAPITAL LAMDA
-1D6ED MATHEMATICAL ITALIC CAPITAL MU
-1D6EE MATHEMATICAL ITALIC CAPITAL NU
-1D6EF MATHEMATICAL ITALIC CAPITAL XI
-1D6F0 MATHEMATICAL ITALIC CAPITAL OMICRON
-1D6F1 MATHEMATICAL ITALIC CAPITAL PI
-1D6F2 MATHEMATICAL ITALIC CAPITAL RHO
-1D6F3 MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D6F4 MATHEMATICAL ITALIC CAPITAL SIGMA
-1D6F5 MATHEMATICAL ITALIC CAPITAL TAU
-1D6F6 MATHEMATICAL ITALIC CAPITAL UPSILON
-1D6F7 MATHEMATICAL ITALIC CAPITAL PHI
-1D6F8 MATHEMATICAL ITALIC CAPITAL CHI
-1D6F9 MATHEMATICAL ITALIC CAPITAL PSI
-1D6FA MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FB MATHEMATICAL ITALIC NABLA
-1D6FC MATHEMATICAL ITALIC SMALL ALPHA
-1D6FD MATHEMATICAL ITALIC SMALL BETA
-1D6FE MATHEMATICAL ITALIC SMALL GAMMA
-1D6FF MATHEMATICAL ITALIC SMALL DELTA
-1D700 MATHEMATICAL ITALIC SMALL EPSILON
-1D701 MATHEMATICAL ITALIC SMALL ZETA
-1D702 MATHEMATICAL ITALIC SMALL ETA
-1D703 MATHEMATICAL ITALIC SMALL THETA
-1D704 MATHEMATICAL ITALIC SMALL IOTA
-1D705 MATHEMATICAL ITALIC SMALL KAPPA
-1D706 MATHEMATICAL ITALIC SMALL LAMDA
-1D707 MATHEMATICAL ITALIC SMALL MU
-1D708 MATHEMATICAL ITALIC SMALL NU
-1D709 MATHEMATICAL ITALIC SMALL XI
-1D70A MATHEMATICAL ITALIC SMALL OMICRON
-1D70B MATHEMATICAL ITALIC SMALL PI
-1D70C MATHEMATICAL ITALIC SMALL RHO
-1D70D MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E MATHEMATICAL ITALIC SMALL SIGMA
-1D70F MATHEMATICAL ITALIC SMALL TAU
-1D710 MATHEMATICAL ITALIC SMALL UPSILON
-1D711 MATHEMATICAL ITALIC SMALL PHI
-1D712 MATHEMATICAL ITALIC SMALL CHI
-1D713 MATHEMATICAL ITALIC SMALL PSI
-1D714 MATHEMATICAL ITALIC SMALL OMEGA
-1D715 MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D716 MATHEMATICAL ITALIC EPSILON SYMBOL
-1D717 MATHEMATICAL ITALIC THETA SYMBOL
-1D718 MATHEMATICAL ITALIC KAPPA SYMBOL
-1D719 MATHEMATICAL ITALIC PHI SYMBOL
-1D71A MATHEMATICAL ITALIC RHO SYMBOL
-1D71B MATHEMATICAL ITALIC PI SYMBOL
-1D71C MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D71D MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D71E MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D71F MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D720 MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D721 MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D722 MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D723 MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D724 MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D725 MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D726 MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D727 MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D728 MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D729 MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D72A MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D72B MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D72C MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D72D MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D72E MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D72F MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D730 MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D731 MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D732 MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D733 MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D734 MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D735 MATHEMATICAL BOLD ITALIC NABLA
-1D736 MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D737 MATHEMATICAL BOLD ITALIC SMALL BETA
-1D738 MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D739 MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D73A MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D73B MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D73C MATHEMATICAL BOLD ITALIC SMALL ETA
-1D73D MATHEMATICAL BOLD ITALIC SMALL THETA
-1D73E MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D73F MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D740 MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D741 MATHEMATICAL BOLD ITALIC SMALL MU
-1D742 MATHEMATICAL BOLD ITALIC SMALL NU
-1D743 MATHEMATICAL BOLD ITALIC SMALL XI
-1D744 MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D745 MATHEMATICAL BOLD ITALIC SMALL PI
-1D746 MATHEMATICAL BOLD ITALIC SMALL RHO
-1D747 MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748 MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D749 MATHEMATICAL BOLD ITALIC SMALL TAU
-1D74A MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D74B MATHEMATICAL BOLD ITALIC SMALL PHI
-1D74C MATHEMATICAL BOLD ITALIC SMALL CHI
-1D74D MATHEMATICAL BOLD ITALIC SMALL PSI
-1D74E MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D74F MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D750 MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D751 MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D752 MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D753 MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D754 MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D755 MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D756 MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D757 MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D758 MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D759 MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D75A MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D75B MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D75C MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D75D MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D75E MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D75F MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D760 MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D761 MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D762 MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D763 MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D764 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D765 MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D766 MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D767 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D768 MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D769 MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D76A MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D76B MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D76C MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D76D MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D76E MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D76F MATHEMATICAL SANS-SERIF BOLD NABLA
-1D770 MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D771 MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D772 MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D773 MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D774 MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D775 MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D776 MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D777 MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D778 MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D779 MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D77A MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D77B MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D77C MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D77D MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D77E MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D77F MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D780 MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D781 MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782 MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D783 MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D784 MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D785 MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D786 MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D787 MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D788 MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D789 MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D78A MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D78B MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D78C MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D78D MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D78E MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D78F MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D790 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1D791 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D792 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D793 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D794 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1D795 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-1D796 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1D797 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D798 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1D799 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-1D79A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D79B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-1D79C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-1D79D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-1D79E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1D79F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D7A0 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D7A1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1D7A2 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-1D7A3 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-1D7A4 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1D7A5 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D7A6 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D7A7 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D7A8 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7A9 MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7AA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-1D7AB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-1D7AC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-1D7AD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-1D7AE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7AF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-1D7B0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-1D7B1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7B2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-1D7B3 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7B4 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-1D7B5 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-1D7B6 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-1D7B7 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-1D7B8 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-1D7B9 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7BA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7BB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-1D7BD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-1D7BE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-1D7BF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-1D7C1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-1D7C2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C3 MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4 MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-1D7C5 MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-1D7C6 MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-1D7C7 MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-1D7C8 MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-1D7C9 MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-1D7CE MATHEMATICAL BOLD DIGIT ZERO
-1D7CF MATHEMATICAL BOLD DIGIT ONE
-1D7D0 MATHEMATICAL BOLD DIGIT TWO
-1D7D1 MATHEMATICAL BOLD DIGIT THREE
-1D7D2 MATHEMATICAL BOLD DIGIT FOUR
-1D7D3 MATHEMATICAL BOLD DIGIT FIVE
-1D7D4 MATHEMATICAL BOLD DIGIT SIX
-1D7D5 MATHEMATICAL BOLD DIGIT SEVEN
-1D7D6 MATHEMATICAL BOLD DIGIT EIGHT
-1D7D7 MATHEMATICAL BOLD DIGIT NINE
-1D7D8 MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7D9 MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7DA MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7DB MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7DC MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7DD MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7DE MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7DF MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E0 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7E1 MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7E2 MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7E3 MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7E4 MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7E5 MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7E6 MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7E7 MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7E8 MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7E9 MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7EA MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7EB MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7EC MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7ED MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7EE MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7EF MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F0 MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7F1 MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7F2 MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7F3 MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7F4 MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7F5 MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7F6 MATHEMATICAL MONOSPACE DIGIT ZERO
-1D7F7 MATHEMATICAL MONOSPACE DIGIT ONE
-1D7F8 MATHEMATICAL MONOSPACE DIGIT TWO
-1D7F9 MATHEMATICAL MONOSPACE DIGIT THREE
-1D7FA MATHEMATICAL MONOSPACE DIGIT FOUR
-1D7FB MATHEMATICAL MONOSPACE DIGIT FIVE
-1D7FC MATHEMATICAL MONOSPACE DIGIT SIX
-1D7FD MATHEMATICAL MONOSPACE DIGIT SEVEN
-1D7FE MATHEMATICAL MONOSPACE DIGIT EIGHT
-1D7FF MATHEMATICAL MONOSPACE DIGIT NINE
-20000 2A6D6 CJK Ideograph Extension B
-2F800 CJK COMPATIBILITY IDEOGRAPH-2F800
-2F801 CJK COMPATIBILITY IDEOGRAPH-2F801
-2F802 CJK COMPATIBILITY IDEOGRAPH-2F802
-2F803 CJK COMPATIBILITY IDEOGRAPH-2F803
-2F804 CJK COMPATIBILITY IDEOGRAPH-2F804
-2F805 CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806 CJK COMPATIBILITY IDEOGRAPH-2F806
-2F807 CJK COMPATIBILITY IDEOGRAPH-2F807
-2F808 CJK COMPATIBILITY IDEOGRAPH-2F808
-2F809 CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80A CJK COMPATIBILITY IDEOGRAPH-2F80A
-2F80B CJK COMPATIBILITY IDEOGRAPH-2F80B
-2F80C CJK COMPATIBILITY IDEOGRAPH-2F80C
-2F80D CJK COMPATIBILITY IDEOGRAPH-2F80D
-2F80E CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F80F CJK COMPATIBILITY IDEOGRAPH-2F80F
-2F810 CJK COMPATIBILITY IDEOGRAPH-2F810
-2F811 CJK COMPATIBILITY IDEOGRAPH-2F811
-2F812 CJK COMPATIBILITY IDEOGRAPH-2F812
-2F813 CJK COMPATIBILITY IDEOGRAPH-2F813
-2F814 CJK COMPATIBILITY IDEOGRAPH-2F814
-2F815 CJK COMPATIBILITY IDEOGRAPH-2F815
-2F816 CJK COMPATIBILITY IDEOGRAPH-2F816
-2F817 CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818 CJK COMPATIBILITY IDEOGRAPH-2F818
-2F819 CJK COMPATIBILITY IDEOGRAPH-2F819
-2F81A CJK COMPATIBILITY IDEOGRAPH-2F81A
-2F81B CJK COMPATIBILITY IDEOGRAPH-2F81B
-2F81C CJK COMPATIBILITY IDEOGRAPH-2F81C
-2F81D CJK COMPATIBILITY IDEOGRAPH-2F81D
-2F81E CJK COMPATIBILITY IDEOGRAPH-2F81E
-2F81F CJK COMPATIBILITY IDEOGRAPH-2F81F
-2F820 CJK COMPATIBILITY IDEOGRAPH-2F820
-2F821 CJK COMPATIBILITY IDEOGRAPH-2F821
-2F822 CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823 CJK COMPATIBILITY IDEOGRAPH-2F823
-2F824 CJK COMPATIBILITY IDEOGRAPH-2F824
-2F825 CJK COMPATIBILITY IDEOGRAPH-2F825
-2F826 CJK COMPATIBILITY IDEOGRAPH-2F826
-2F827 CJK COMPATIBILITY IDEOGRAPH-2F827
-2F828 CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829 CJK COMPATIBILITY IDEOGRAPH-2F829
-2F82A CJK COMPATIBILITY IDEOGRAPH-2F82A
-2F82B CJK COMPATIBILITY IDEOGRAPH-2F82B
-2F82C CJK COMPATIBILITY IDEOGRAPH-2F82C
-2F82D CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F CJK COMPATIBILITY IDEOGRAPH-2F82F
-2F830 CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831 CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832 CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833 CJK COMPATIBILITY IDEOGRAPH-2F833
-2F834 CJK COMPATIBILITY IDEOGRAPH-2F834
-2F835 CJK COMPATIBILITY IDEOGRAPH-2F835
-2F836 CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837 CJK COMPATIBILITY IDEOGRAPH-2F837
-2F838 CJK COMPATIBILITY IDEOGRAPH-2F838
-2F839 CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A CJK COMPATIBILITY IDEOGRAPH-2F83A
-2F83B CJK COMPATIBILITY IDEOGRAPH-2F83B
-2F83C CJK COMPATIBILITY IDEOGRAPH-2F83C
-2F83D CJK COMPATIBILITY IDEOGRAPH-2F83D
-2F83E CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840 CJK COMPATIBILITY IDEOGRAPH-2F840
-2F841 CJK COMPATIBILITY IDEOGRAPH-2F841
-2F842 CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843 CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844 CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845 CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846 CJK COMPATIBILITY IDEOGRAPH-2F846
-2F847 CJK COMPATIBILITY IDEOGRAPH-2F847
-2F848 CJK COMPATIBILITY IDEOGRAPH-2F848
-2F849 CJK COMPATIBILITY IDEOGRAPH-2F849
-2F84A CJK COMPATIBILITY IDEOGRAPH-2F84A
-2F84B CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F84C CJK COMPATIBILITY IDEOGRAPH-2F84C
-2F84D CJK COMPATIBILITY IDEOGRAPH-2F84D
-2F84E CJK COMPATIBILITY IDEOGRAPH-2F84E
-2F84F CJK COMPATIBILITY IDEOGRAPH-2F84F
-2F850 CJK COMPATIBILITY IDEOGRAPH-2F850
-2F851 CJK COMPATIBILITY IDEOGRAPH-2F851
-2F852 CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853 CJK COMPATIBILITY IDEOGRAPH-2F853
-2F854 CJK COMPATIBILITY IDEOGRAPH-2F854
-2F855 CJK COMPATIBILITY IDEOGRAPH-2F855
-2F856 CJK COMPATIBILITY IDEOGRAPH-2F856
-2F857 CJK COMPATIBILITY IDEOGRAPH-2F857
-2F858 CJK COMPATIBILITY IDEOGRAPH-2F858
-2F859 CJK COMPATIBILITY IDEOGRAPH-2F859
-2F85A CJK COMPATIBILITY IDEOGRAPH-2F85A
-2F85B CJK COMPATIBILITY IDEOGRAPH-2F85B
-2F85C CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E CJK COMPATIBILITY IDEOGRAPH-2F85E
-2F85F CJK COMPATIBILITY IDEOGRAPH-2F85F
-2F860 CJK COMPATIBILITY IDEOGRAPH-2F860
-2F861 CJK COMPATIBILITY IDEOGRAPH-2F861
-2F862 CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863 CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864 CJK COMPATIBILITY IDEOGRAPH-2F864
-2F865 CJK COMPATIBILITY IDEOGRAPH-2F865
-2F866 CJK COMPATIBILITY IDEOGRAPH-2F866
-2F867 CJK COMPATIBILITY IDEOGRAPH-2F867
-2F868 CJK COMPATIBILITY IDEOGRAPH-2F868
-2F869 CJK COMPATIBILITY IDEOGRAPH-2F869
-2F86A CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B CJK COMPATIBILITY IDEOGRAPH-2F86B
-2F86C CJK COMPATIBILITY IDEOGRAPH-2F86C
-2F86D CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E CJK COMPATIBILITY IDEOGRAPH-2F86E
-2F86F CJK COMPATIBILITY IDEOGRAPH-2F86F
-2F870 CJK COMPATIBILITY IDEOGRAPH-2F870
-2F871 CJK COMPATIBILITY IDEOGRAPH-2F871
-2F872 CJK COMPATIBILITY IDEOGRAPH-2F872
-2F873 CJK COMPATIBILITY IDEOGRAPH-2F873
-2F874 CJK COMPATIBILITY IDEOGRAPH-2F874
-2F875 CJK COMPATIBILITY IDEOGRAPH-2F875
-2F876 CJK COMPATIBILITY IDEOGRAPH-2F876
-2F877 CJK COMPATIBILITY IDEOGRAPH-2F877
-2F878 CJK COMPATIBILITY IDEOGRAPH-2F878
-2F879 CJK COMPATIBILITY IDEOGRAPH-2F879
-2F87A CJK COMPATIBILITY IDEOGRAPH-2F87A
-2F87B CJK COMPATIBILITY IDEOGRAPH-2F87B
-2F87C CJK COMPATIBILITY IDEOGRAPH-2F87C
-2F87D CJK COMPATIBILITY IDEOGRAPH-2F87D
-2F87E CJK COMPATIBILITY IDEOGRAPH-2F87E
-2F87F CJK COMPATIBILITY IDEOGRAPH-2F87F
-2F880 CJK COMPATIBILITY IDEOGRAPH-2F880
-2F881 CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882 CJK COMPATIBILITY IDEOGRAPH-2F882
-2F883 CJK COMPATIBILITY IDEOGRAPH-2F883
-2F884 CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885 CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886 CJK COMPATIBILITY IDEOGRAPH-2F886
-2F887 CJK COMPATIBILITY IDEOGRAPH-2F887
-2F888 CJK COMPATIBILITY IDEOGRAPH-2F888
-2F889 CJK COMPATIBILITY IDEOGRAPH-2F889
-2F88A CJK COMPATIBILITY IDEOGRAPH-2F88A
-2F88B CJK COMPATIBILITY IDEOGRAPH-2F88B
-2F88C CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D CJK COMPATIBILITY IDEOGRAPH-2F88D
-2F88E CJK COMPATIBILITY IDEOGRAPH-2F88E
-2F88F CJK COMPATIBILITY IDEOGRAPH-2F88F
-2F890 CJK COMPATIBILITY IDEOGRAPH-2F890
-2F891 CJK COMPATIBILITY IDEOGRAPH-2F891
-2F892 CJK COMPATIBILITY IDEOGRAPH-2F892
-2F893 CJK COMPATIBILITY IDEOGRAPH-2F893
-2F894 CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895 CJK COMPATIBILITY IDEOGRAPH-2F895
-2F896 CJK COMPATIBILITY IDEOGRAPH-2F896
-2F897 CJK COMPATIBILITY IDEOGRAPH-2F897
-2F898 CJK COMPATIBILITY IDEOGRAPH-2F898
-2F899 CJK COMPATIBILITY IDEOGRAPH-2F899
-2F89A CJK COMPATIBILITY IDEOGRAPH-2F89A
-2F89B CJK COMPATIBILITY IDEOGRAPH-2F89B
-2F89C CJK COMPATIBILITY IDEOGRAPH-2F89C
-2F89D CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E CJK COMPATIBILITY IDEOGRAPH-2F89E
-2F89F CJK COMPATIBILITY IDEOGRAPH-2F89F
-2F8A0 CJK COMPATIBILITY IDEOGRAPH-2F8A0
-2F8A1 CJK COMPATIBILITY IDEOGRAPH-2F8A1
-2F8A2 CJK COMPATIBILITY IDEOGRAPH-2F8A2
-2F8A3 CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A4 CJK COMPATIBILITY IDEOGRAPH-2F8A4
-2F8A5 CJK COMPATIBILITY IDEOGRAPH-2F8A5
-2F8A6 CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7 CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A8 CJK COMPATIBILITY IDEOGRAPH-2F8A8
-2F8A9 CJK COMPATIBILITY IDEOGRAPH-2F8A9
-2F8AA CJK COMPATIBILITY IDEOGRAPH-2F8AA
-2F8AB CJK COMPATIBILITY IDEOGRAPH-2F8AB
-2F8AC CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AD CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AF CJK COMPATIBILITY IDEOGRAPH-2F8AF
-2F8B0 CJK COMPATIBILITY IDEOGRAPH-2F8B0
-2F8B1 CJK COMPATIBILITY IDEOGRAPH-2F8B1
-2F8B2 CJK COMPATIBILITY IDEOGRAPH-2F8B2
-2F8B3 CJK COMPATIBILITY IDEOGRAPH-2F8B3
-2F8B4 CJK COMPATIBILITY IDEOGRAPH-2F8B4
-2F8B5 CJK COMPATIBILITY IDEOGRAPH-2F8B5
-2F8B6 CJK COMPATIBILITY IDEOGRAPH-2F8B6
-2F8B7 CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8B8 CJK COMPATIBILITY IDEOGRAPH-2F8B8
-2F8B9 CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8BA CJK COMPATIBILITY IDEOGRAPH-2F8BA
-2F8BB CJK COMPATIBILITY IDEOGRAPH-2F8BB
-2F8BC CJK COMPATIBILITY IDEOGRAPH-2F8BC
-2F8BD CJK COMPATIBILITY IDEOGRAPH-2F8BD
-2F8BE CJK COMPATIBILITY IDEOGRAPH-2F8BE
-2F8BF CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C0 CJK COMPATIBILITY IDEOGRAPH-2F8C0
-2F8C1 CJK COMPATIBILITY IDEOGRAPH-2F8C1
-2F8C2 CJK COMPATIBILITY IDEOGRAPH-2F8C2
-2F8C3 CJK COMPATIBILITY IDEOGRAPH-2F8C3
-2F8C4 CJK COMPATIBILITY IDEOGRAPH-2F8C4
-2F8C5 CJK COMPATIBILITY IDEOGRAPH-2F8C5
-2F8C6 CJK COMPATIBILITY IDEOGRAPH-2F8C6
-2F8C7 CJK COMPATIBILITY IDEOGRAPH-2F8C7
-2F8C8 CJK COMPATIBILITY IDEOGRAPH-2F8C8
-2F8C9 CJK COMPATIBILITY IDEOGRAPH-2F8C9
-2F8CA CJK COMPATIBILITY IDEOGRAPH-2F8CA
-2F8CB CJK COMPATIBILITY IDEOGRAPH-2F8CB
-2F8CC CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8CD CJK COMPATIBILITY IDEOGRAPH-2F8CD
-2F8CE CJK COMPATIBILITY IDEOGRAPH-2F8CE
-2F8CF CJK COMPATIBILITY IDEOGRAPH-2F8CF
-2F8D0 CJK COMPATIBILITY IDEOGRAPH-2F8D0
-2F8D1 CJK COMPATIBILITY IDEOGRAPH-2F8D1
-2F8D2 CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3 CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F8D4 CJK COMPATIBILITY IDEOGRAPH-2F8D4
-2F8D5 CJK COMPATIBILITY IDEOGRAPH-2F8D5
-2F8D6 CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F8D7 CJK COMPATIBILITY IDEOGRAPH-2F8D7
-2F8D8 CJK COMPATIBILITY IDEOGRAPH-2F8D8
-2F8D9 CJK COMPATIBILITY IDEOGRAPH-2F8D9
-2F8DA CJK COMPATIBILITY IDEOGRAPH-2F8DA
-2F8DB CJK COMPATIBILITY IDEOGRAPH-2F8DB
-2F8DC CJK COMPATIBILITY IDEOGRAPH-2F8DC
-2F8DD CJK COMPATIBILITY IDEOGRAPH-2F8DD
-2F8DE CJK COMPATIBILITY IDEOGRAPH-2F8DE
-2F8DF CJK COMPATIBILITY IDEOGRAPH-2F8DF
-2F8E0 CJK COMPATIBILITY IDEOGRAPH-2F8E0
-2F8E1 CJK COMPATIBILITY IDEOGRAPH-2F8E1
-2F8E2 CJK COMPATIBILITY IDEOGRAPH-2F8E2
-2F8E3 CJK COMPATIBILITY IDEOGRAPH-2F8E3
-2F8E4 CJK COMPATIBILITY IDEOGRAPH-2F8E4
-2F8E5 CJK COMPATIBILITY IDEOGRAPH-2F8E5
-2F8E6 CJK COMPATIBILITY IDEOGRAPH-2F8E6
-2F8E7 CJK COMPATIBILITY IDEOGRAPH-2F8E7
-2F8E8 CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8E9 CJK COMPATIBILITY IDEOGRAPH-2F8E9
-2F8EA CJK COMPATIBILITY IDEOGRAPH-2F8EA
-2F8EB CJK COMPATIBILITY IDEOGRAPH-2F8EB
-2F8EC CJK COMPATIBILITY IDEOGRAPH-2F8EC
-2F8ED CJK COMPATIBILITY IDEOGRAPH-2F8ED
-2F8EE CJK COMPATIBILITY IDEOGRAPH-2F8EE
-2F8EF CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F0 CJK COMPATIBILITY IDEOGRAPH-2F8F0
-2F8F1 CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F2 CJK COMPATIBILITY IDEOGRAPH-2F8F2
-2F8F3 CJK COMPATIBILITY IDEOGRAPH-2F8F3
-2F8F4 CJK COMPATIBILITY IDEOGRAPH-2F8F4
-2F8F5 CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8F6 CJK COMPATIBILITY IDEOGRAPH-2F8F6
-2F8F7 CJK COMPATIBILITY IDEOGRAPH-2F8F7
-2F8F8 CJK COMPATIBILITY IDEOGRAPH-2F8F8
-2F8F9 CJK COMPATIBILITY IDEOGRAPH-2F8F9
-2F8FA CJK COMPATIBILITY IDEOGRAPH-2F8FA
-2F8FB CJK COMPATIBILITY IDEOGRAPH-2F8FB
-2F8FC CJK COMPATIBILITY IDEOGRAPH-2F8FC
-2F8FD CJK COMPATIBILITY IDEOGRAPH-2F8FD
-2F8FE CJK COMPATIBILITY IDEOGRAPH-2F8FE
-2F8FF CJK COMPATIBILITY IDEOGRAPH-2F8FF
-2F900 CJK COMPATIBILITY IDEOGRAPH-2F900
-2F901 CJK COMPATIBILITY IDEOGRAPH-2F901
-2F902 CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903 CJK COMPATIBILITY IDEOGRAPH-2F903
-2F904 CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905 CJK COMPATIBILITY IDEOGRAPH-2F905
-2F906 CJK COMPATIBILITY IDEOGRAPH-2F906
-2F907 CJK COMPATIBILITY IDEOGRAPH-2F907
-2F908 CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909 CJK COMPATIBILITY IDEOGRAPH-2F909
-2F90A CJK COMPATIBILITY IDEOGRAPH-2F90A
-2F90B CJK COMPATIBILITY IDEOGRAPH-2F90B
-2F90C CJK COMPATIBILITY IDEOGRAPH-2F90C
-2F90D CJK COMPATIBILITY IDEOGRAPH-2F90D
-2F90E CJK COMPATIBILITY IDEOGRAPH-2F90E
-2F90F CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F910 CJK COMPATIBILITY IDEOGRAPH-2F910
-2F911 CJK COMPATIBILITY IDEOGRAPH-2F911
-2F912 CJK COMPATIBILITY IDEOGRAPH-2F912
-2F913 CJK COMPATIBILITY IDEOGRAPH-2F913
-2F914 CJK COMPATIBILITY IDEOGRAPH-2F914
-2F915 CJK COMPATIBILITY IDEOGRAPH-2F915
-2F916 CJK COMPATIBILITY IDEOGRAPH-2F916
-2F917 CJK COMPATIBILITY IDEOGRAPH-2F917
-2F918 CJK COMPATIBILITY IDEOGRAPH-2F918
-2F919 CJK COMPATIBILITY IDEOGRAPH-2F919
-2F91A CJK COMPATIBILITY IDEOGRAPH-2F91A
-2F91B CJK COMPATIBILITY IDEOGRAPH-2F91B
-2F91C CJK COMPATIBILITY IDEOGRAPH-2F91C
-2F91D CJK COMPATIBILITY IDEOGRAPH-2F91D
-2F91E CJK COMPATIBILITY IDEOGRAPH-2F91E
-2F91F CJK COMPATIBILITY IDEOGRAPH-2F91F
-2F920 CJK COMPATIBILITY IDEOGRAPH-2F920
-2F921 CJK COMPATIBILITY IDEOGRAPH-2F921
-2F922 CJK COMPATIBILITY IDEOGRAPH-2F922
-2F923 CJK COMPATIBILITY IDEOGRAPH-2F923
-2F924 CJK COMPATIBILITY IDEOGRAPH-2F924
-2F925 CJK COMPATIBILITY IDEOGRAPH-2F925
-2F926 CJK COMPATIBILITY IDEOGRAPH-2F926
-2F927 CJK COMPATIBILITY IDEOGRAPH-2F927
-2F928 CJK COMPATIBILITY IDEOGRAPH-2F928
-2F929 CJK COMPATIBILITY IDEOGRAPH-2F929
-2F92A CJK COMPATIBILITY IDEOGRAPH-2F92A
-2F92B CJK COMPATIBILITY IDEOGRAPH-2F92B
-2F92C CJK COMPATIBILITY IDEOGRAPH-2F92C
-2F92D CJK COMPATIBILITY IDEOGRAPH-2F92D
-2F92E CJK COMPATIBILITY IDEOGRAPH-2F92E
-2F92F CJK COMPATIBILITY IDEOGRAPH-2F92F
-2F930 CJK COMPATIBILITY IDEOGRAPH-2F930
-2F931 CJK COMPATIBILITY IDEOGRAPH-2F931
-2F932 CJK COMPATIBILITY IDEOGRAPH-2F932
-2F933 CJK COMPATIBILITY IDEOGRAPH-2F933
-2F934 CJK COMPATIBILITY IDEOGRAPH-2F934
-2F935 CJK COMPATIBILITY IDEOGRAPH-2F935
-2F936 CJK COMPATIBILITY IDEOGRAPH-2F936
-2F937 CJK COMPATIBILITY IDEOGRAPH-2F937
-2F938 CJK COMPATIBILITY IDEOGRAPH-2F938
-2F939 CJK COMPATIBILITY IDEOGRAPH-2F939
-2F93A CJK COMPATIBILITY IDEOGRAPH-2F93A
-2F93B CJK COMPATIBILITY IDEOGRAPH-2F93B
-2F93C CJK COMPATIBILITY IDEOGRAPH-2F93C
-2F93D CJK COMPATIBILITY IDEOGRAPH-2F93D
-2F93E CJK COMPATIBILITY IDEOGRAPH-2F93E
-2F93F CJK COMPATIBILITY IDEOGRAPH-2F93F
-2F940 CJK COMPATIBILITY IDEOGRAPH-2F940
-2F941 CJK COMPATIBILITY IDEOGRAPH-2F941
-2F942 CJK COMPATIBILITY IDEOGRAPH-2F942
-2F943 CJK COMPATIBILITY IDEOGRAPH-2F943
-2F944 CJK COMPATIBILITY IDEOGRAPH-2F944
-2F945 CJK COMPATIBILITY IDEOGRAPH-2F945
-2F946 CJK COMPATIBILITY IDEOGRAPH-2F946
-2F947 CJK COMPATIBILITY IDEOGRAPH-2F947
-2F948 CJK COMPATIBILITY IDEOGRAPH-2F948
-2F949 CJK COMPATIBILITY IDEOGRAPH-2F949
-2F94A CJK COMPATIBILITY IDEOGRAPH-2F94A
-2F94B CJK COMPATIBILITY IDEOGRAPH-2F94B
-2F94C CJK COMPATIBILITY IDEOGRAPH-2F94C
-2F94D CJK COMPATIBILITY IDEOGRAPH-2F94D
-2F94E CJK COMPATIBILITY IDEOGRAPH-2F94E
-2F94F CJK COMPATIBILITY IDEOGRAPH-2F94F
-2F950 CJK COMPATIBILITY IDEOGRAPH-2F950
-2F951 CJK COMPATIBILITY IDEOGRAPH-2F951
-2F952 CJK COMPATIBILITY IDEOGRAPH-2F952
-2F953 CJK COMPATIBILITY IDEOGRAPH-2F953
-2F954 CJK COMPATIBILITY IDEOGRAPH-2F954
-2F955 CJK COMPATIBILITY IDEOGRAPH-2F955
-2F956 CJK COMPATIBILITY IDEOGRAPH-2F956
-2F957 CJK COMPATIBILITY IDEOGRAPH-2F957
-2F958 CJK COMPATIBILITY IDEOGRAPH-2F958
-2F959 CJK COMPATIBILITY IDEOGRAPH-2F959
-2F95A CJK COMPATIBILITY IDEOGRAPH-2F95A
-2F95B CJK COMPATIBILITY IDEOGRAPH-2F95B
-2F95C CJK COMPATIBILITY IDEOGRAPH-2F95C
-2F95D CJK COMPATIBILITY IDEOGRAPH-2F95D
-2F95E CJK COMPATIBILITY IDEOGRAPH-2F95E
-2F95F CJK COMPATIBILITY IDEOGRAPH-2F95F
-2F960 CJK COMPATIBILITY IDEOGRAPH-2F960
-2F961 CJK COMPATIBILITY IDEOGRAPH-2F961
-2F962 CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963 CJK COMPATIBILITY IDEOGRAPH-2F963
-2F964 CJK COMPATIBILITY IDEOGRAPH-2F964
-2F965 CJK COMPATIBILITY IDEOGRAPH-2F965
-2F966 CJK COMPATIBILITY IDEOGRAPH-2F966
-2F967 CJK COMPATIBILITY IDEOGRAPH-2F967
-2F968 CJK COMPATIBILITY IDEOGRAPH-2F968
-2F969 CJK COMPATIBILITY IDEOGRAPH-2F969
-2F96A CJK COMPATIBILITY IDEOGRAPH-2F96A
-2F96B CJK COMPATIBILITY IDEOGRAPH-2F96B
-2F96C CJK COMPATIBILITY IDEOGRAPH-2F96C
-2F96D CJK COMPATIBILITY IDEOGRAPH-2F96D
-2F96E CJK COMPATIBILITY IDEOGRAPH-2F96E
-2F96F CJK COMPATIBILITY IDEOGRAPH-2F96F
-2F970 CJK COMPATIBILITY IDEOGRAPH-2F970
-2F971 CJK COMPATIBILITY IDEOGRAPH-2F971
-2F972 CJK COMPATIBILITY IDEOGRAPH-2F972
-2F973 CJK COMPATIBILITY IDEOGRAPH-2F973
-2F974 CJK COMPATIBILITY IDEOGRAPH-2F974
-2F975 CJK COMPATIBILITY IDEOGRAPH-2F975
-2F976 CJK COMPATIBILITY IDEOGRAPH-2F976
-2F977 CJK COMPATIBILITY IDEOGRAPH-2F977
-2F978 CJK COMPATIBILITY IDEOGRAPH-2F978
-2F979 CJK COMPATIBILITY IDEOGRAPH-2F979
-2F97A CJK COMPATIBILITY IDEOGRAPH-2F97A
-2F97B CJK COMPATIBILITY IDEOGRAPH-2F97B
-2F97C CJK COMPATIBILITY IDEOGRAPH-2F97C
-2F97D CJK COMPATIBILITY IDEOGRAPH-2F97D
-2F97E CJK COMPATIBILITY IDEOGRAPH-2F97E
-2F97F CJK COMPATIBILITY IDEOGRAPH-2F97F
-2F980 CJK COMPATIBILITY IDEOGRAPH-2F980
-2F981 CJK COMPATIBILITY IDEOGRAPH-2F981
-2F982 CJK COMPATIBILITY IDEOGRAPH-2F982
-2F983 CJK COMPATIBILITY IDEOGRAPH-2F983
-2F984 CJK COMPATIBILITY IDEOGRAPH-2F984
-2F985 CJK COMPATIBILITY IDEOGRAPH-2F985
-2F986 CJK COMPATIBILITY IDEOGRAPH-2F986
-2F987 CJK COMPATIBILITY IDEOGRAPH-2F987
-2F988 CJK COMPATIBILITY IDEOGRAPH-2F988
-2F989 CJK COMPATIBILITY IDEOGRAPH-2F989
-2F98A CJK COMPATIBILITY IDEOGRAPH-2F98A
-2F98B CJK COMPATIBILITY IDEOGRAPH-2F98B
-2F98C CJK COMPATIBILITY IDEOGRAPH-2F98C
-2F98D CJK COMPATIBILITY IDEOGRAPH-2F98D
-2F98E CJK COMPATIBILITY IDEOGRAPH-2F98E
-2F98F CJK COMPATIBILITY IDEOGRAPH-2F98F
-2F990 CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991 CJK COMPATIBILITY IDEOGRAPH-2F991
-2F992 CJK COMPATIBILITY IDEOGRAPH-2F992
-2F993 CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994 CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995 CJK COMPATIBILITY IDEOGRAPH-2F995
-2F996 CJK COMPATIBILITY IDEOGRAPH-2F996
-2F997 CJK COMPATIBILITY IDEOGRAPH-2F997
-2F998 CJK COMPATIBILITY IDEOGRAPH-2F998
-2F999 CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99A CJK COMPATIBILITY IDEOGRAPH-2F99A
-2F99B CJK COMPATIBILITY IDEOGRAPH-2F99B
-2F99C CJK COMPATIBILITY IDEOGRAPH-2F99C
-2F99D CJK COMPATIBILITY IDEOGRAPH-2F99D
-2F99E CJK COMPATIBILITY IDEOGRAPH-2F99E
-2F99F CJK COMPATIBILITY IDEOGRAPH-2F99F
-2F9A0 CJK COMPATIBILITY IDEOGRAPH-2F9A0
-2F9A1 CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2 CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3 CJK COMPATIBILITY IDEOGRAPH-2F9A3
-2F9A4 CJK COMPATIBILITY IDEOGRAPH-2F9A4
-2F9A5 CJK COMPATIBILITY IDEOGRAPH-2F9A5
-2F9A6 CJK COMPATIBILITY IDEOGRAPH-2F9A6
-2F9A7 CJK COMPATIBILITY IDEOGRAPH-2F9A7
-2F9A8 CJK COMPATIBILITY IDEOGRAPH-2F9A8
-2F9A9 CJK COMPATIBILITY IDEOGRAPH-2F9A9
-2F9AA CJK COMPATIBILITY IDEOGRAPH-2F9AA
-2F9AB CJK COMPATIBILITY IDEOGRAPH-2F9AB
-2F9AC CJK COMPATIBILITY IDEOGRAPH-2F9AC
-2F9AD CJK COMPATIBILITY IDEOGRAPH-2F9AD
-2F9AE CJK COMPATIBILITY IDEOGRAPH-2F9AE
-2F9AF CJK COMPATIBILITY IDEOGRAPH-2F9AF
-2F9B0 CJK COMPATIBILITY IDEOGRAPH-2F9B0
-2F9B1 CJK COMPATIBILITY IDEOGRAPH-2F9B1
-2F9B2 CJK COMPATIBILITY IDEOGRAPH-2F9B2
-2F9B3 CJK COMPATIBILITY IDEOGRAPH-2F9B3
-2F9B4 CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5 CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B6 CJK COMPATIBILITY IDEOGRAPH-2F9B6
-2F9B7 CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9B8 CJK COMPATIBILITY IDEOGRAPH-2F9B8
-2F9B9 CJK COMPATIBILITY IDEOGRAPH-2F9B9
-2F9BA CJK COMPATIBILITY IDEOGRAPH-2F9BA
-2F9BB CJK COMPATIBILITY IDEOGRAPH-2F9BB
-2F9BC CJK COMPATIBILITY IDEOGRAPH-2F9BC
-2F9BD CJK COMPATIBILITY IDEOGRAPH-2F9BD
-2F9BE CJK COMPATIBILITY IDEOGRAPH-2F9BE
-2F9BF CJK COMPATIBILITY IDEOGRAPH-2F9BF
-2F9C0 CJK COMPATIBILITY IDEOGRAPH-2F9C0
-2F9C1 CJK COMPATIBILITY IDEOGRAPH-2F9C1
-2F9C2 CJK COMPATIBILITY IDEOGRAPH-2F9C2
-2F9C3 CJK COMPATIBILITY IDEOGRAPH-2F9C3
-2F9C4 CJK COMPATIBILITY IDEOGRAPH-2F9C4
-2F9C5 CJK COMPATIBILITY IDEOGRAPH-2F9C5
-2F9C6 CJK COMPATIBILITY IDEOGRAPH-2F9C6
-2F9C7 CJK COMPATIBILITY IDEOGRAPH-2F9C7
-2F9C8 CJK COMPATIBILITY IDEOGRAPH-2F9C8
-2F9C9 CJK COMPATIBILITY IDEOGRAPH-2F9C9
-2F9CA CJK COMPATIBILITY IDEOGRAPH-2F9CA
-2F9CB CJK COMPATIBILITY IDEOGRAPH-2F9CB
-2F9CC CJK COMPATIBILITY IDEOGRAPH-2F9CC
-2F9CD CJK COMPATIBILITY IDEOGRAPH-2F9CD
-2F9CE CJK COMPATIBILITY IDEOGRAPH-2F9CE
-2F9CF CJK COMPATIBILITY IDEOGRAPH-2F9CF
-2F9D0 CJK COMPATIBILITY IDEOGRAPH-2F9D0
-2F9D1 CJK COMPATIBILITY IDEOGRAPH-2F9D1
-2F9D2 CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D3 CJK COMPATIBILITY IDEOGRAPH-2F9D3
-2F9D4 CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5 CJK COMPATIBILITY IDEOGRAPH-2F9D5
-2F9D6 CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7 CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9D8 CJK COMPATIBILITY IDEOGRAPH-2F9D8
-2F9D9 CJK COMPATIBILITY IDEOGRAPH-2F9D9
-2F9DA CJK COMPATIBILITY IDEOGRAPH-2F9DA
-2F9DB CJK COMPATIBILITY IDEOGRAPH-2F9DB
-2F9DC CJK COMPATIBILITY IDEOGRAPH-2F9DC
-2F9DD CJK COMPATIBILITY IDEOGRAPH-2F9DD
-2F9DE CJK COMPATIBILITY IDEOGRAPH-2F9DE
-2F9DF CJK COMPATIBILITY IDEOGRAPH-2F9DF
-2F9E0 CJK COMPATIBILITY IDEOGRAPH-2F9E0
-2F9E1 CJK COMPATIBILITY IDEOGRAPH-2F9E1
-2F9E2 CJK COMPATIBILITY IDEOGRAPH-2F9E2
-2F9E3 CJK COMPATIBILITY IDEOGRAPH-2F9E3
-2F9E4 CJK COMPATIBILITY IDEOGRAPH-2F9E4
-2F9E5 CJK COMPATIBILITY IDEOGRAPH-2F9E5
-2F9E6 CJK COMPATIBILITY IDEOGRAPH-2F9E6
-2F9E7 CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9E8 CJK COMPATIBILITY IDEOGRAPH-2F9E8
-2F9E9 CJK COMPATIBILITY IDEOGRAPH-2F9E9
-2F9EA CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9EB CJK COMPATIBILITY IDEOGRAPH-2F9EB
-2F9EC CJK COMPATIBILITY IDEOGRAPH-2F9EC
-2F9ED CJK COMPATIBILITY IDEOGRAPH-2F9ED
-2F9EE CJK COMPATIBILITY IDEOGRAPH-2F9EE
-2F9EF CJK COMPATIBILITY IDEOGRAPH-2F9EF
-2F9F0 CJK COMPATIBILITY IDEOGRAPH-2F9F0
-2F9F1 CJK COMPATIBILITY IDEOGRAPH-2F9F1
-2F9F2 CJK COMPATIBILITY IDEOGRAPH-2F9F2
-2F9F3 CJK COMPATIBILITY IDEOGRAPH-2F9F3
-2F9F4 CJK COMPATIBILITY IDEOGRAPH-2F9F4
-2F9F5 CJK COMPATIBILITY IDEOGRAPH-2F9F5
-2F9F6 CJK COMPATIBILITY IDEOGRAPH-2F9F6
-2F9F7 CJK COMPATIBILITY IDEOGRAPH-2F9F7
-2F9F8 CJK COMPATIBILITY IDEOGRAPH-2F9F8
-2F9F9 CJK COMPATIBILITY IDEOGRAPH-2F9F9
-2F9FA CJK COMPATIBILITY IDEOGRAPH-2F9FA
-2F9FB CJK COMPATIBILITY IDEOGRAPH-2F9FB
-2F9FC CJK COMPATIBILITY IDEOGRAPH-2F9FC
-2F9FD CJK COMPATIBILITY IDEOGRAPH-2F9FD
-2F9FE CJK COMPATIBILITY IDEOGRAPH-2F9FE
-2F9FF CJK COMPATIBILITY IDEOGRAPH-2F9FF
-2FA00 CJK COMPATIBILITY IDEOGRAPH-2FA00
-2FA01 CJK COMPATIBILITY IDEOGRAPH-2FA01
-2FA02 CJK COMPATIBILITY IDEOGRAPH-2FA02
-2FA03 CJK COMPATIBILITY IDEOGRAPH-2FA03
-2FA04 CJK COMPATIBILITY IDEOGRAPH-2FA04
-2FA05 CJK COMPATIBILITY IDEOGRAPH-2FA05
-2FA06 CJK COMPATIBILITY IDEOGRAPH-2FA06
-2FA07 CJK COMPATIBILITY IDEOGRAPH-2FA07
-2FA08 CJK COMPATIBILITY IDEOGRAPH-2FA08
-2FA09 CJK COMPATIBILITY IDEOGRAPH-2FA09
-2FA0A CJK COMPATIBILITY IDEOGRAPH-2FA0A
-2FA0B CJK COMPATIBILITY IDEOGRAPH-2FA0B
-2FA0C CJK COMPATIBILITY IDEOGRAPH-2FA0C
-2FA0D CJK COMPATIBILITY IDEOGRAPH-2FA0D
-2FA0E CJK COMPATIBILITY IDEOGRAPH-2FA0E
-2FA0F CJK COMPATIBILITY IDEOGRAPH-2FA0F
-2FA10 CJK COMPATIBILITY IDEOGRAPH-2FA10
-2FA11 CJK COMPATIBILITY IDEOGRAPH-2FA11
-2FA12 CJK COMPATIBILITY IDEOGRAPH-2FA12
-2FA13 CJK COMPATIBILITY IDEOGRAPH-2FA13
-2FA14 CJK COMPATIBILITY IDEOGRAPH-2FA14
-2FA15 CJK COMPATIBILITY IDEOGRAPH-2FA15
-2FA16 CJK COMPATIBILITY IDEOGRAPH-2FA16
-2FA17 CJK COMPATIBILITY IDEOGRAPH-2FA17
-2FA18 CJK COMPATIBILITY IDEOGRAPH-2FA18
-2FA19 CJK COMPATIBILITY IDEOGRAPH-2FA19
-2FA1A CJK COMPATIBILITY IDEOGRAPH-2FA1A
-2FA1B CJK COMPATIBILITY IDEOGRAPH-2FA1B
-2FA1C CJK COMPATIBILITY IDEOGRAPH-2FA1C
-2FA1D CJK COMPATIBILITY IDEOGRAPH-2FA1D
-E0001 LANGUAGE TAG
-E0020 TAG SPACE
-E0021 TAG EXCLAMATION MARK
-E0022 TAG QUOTATION MARK
-E0023 TAG NUMBER SIGN
-E0024 TAG DOLLAR SIGN
-E0025 TAG PERCENT SIGN
-E0026 TAG AMPERSAND
-E0027 TAG APOSTROPHE
-E0028 TAG LEFT PARENTHESIS
-E0029 TAG RIGHT PARENTHESIS
-E002A TAG ASTERISK
-E002B TAG PLUS SIGN
-E002C TAG COMMA
-E002D TAG HYPHEN-MINUS
-E002E TAG FULL STOP
-E002F TAG SOLIDUS
-E0030 TAG DIGIT ZERO
-E0031 TAG DIGIT ONE
-E0032 TAG DIGIT TWO
-E0033 TAG DIGIT THREE
-E0034 TAG DIGIT FOUR
-E0035 TAG DIGIT FIVE
-E0036 TAG DIGIT SIX
-E0037 TAG DIGIT SEVEN
-E0038 TAG DIGIT EIGHT
-E0039 TAG DIGIT NINE
-E003A TAG COLON
-E003B TAG SEMICOLON
-E003C TAG LESS-THAN SIGN
-E003D TAG EQUALS SIGN
-E003E TAG GREATER-THAN SIGN
-E003F TAG QUESTION MARK
-E0040 TAG COMMERCIAL AT
-E0041 TAG LATIN CAPITAL LETTER A
-E0042 TAG LATIN CAPITAL LETTER B
-E0043 TAG LATIN CAPITAL LETTER C
-E0044 TAG LATIN CAPITAL LETTER D
-E0045 TAG LATIN CAPITAL LETTER E
-E0046 TAG LATIN CAPITAL LETTER F
-E0047 TAG LATIN CAPITAL LETTER G
-E0048 TAG LATIN CAPITAL LETTER H
-E0049 TAG LATIN CAPITAL LETTER I
-E004A TAG LATIN CAPITAL LETTER J
-E004B TAG LATIN CAPITAL LETTER K
-E004C TAG LATIN CAPITAL LETTER L
-E004D TAG LATIN CAPITAL LETTER M
-E004E TAG LATIN CAPITAL LETTER N
-E004F TAG LATIN CAPITAL LETTER O
-E0050 TAG LATIN CAPITAL LETTER P
-E0051 TAG LATIN CAPITAL LETTER Q
-E0052 TAG LATIN CAPITAL LETTER R
-E0053 TAG LATIN CAPITAL LETTER S
-E0054 TAG LATIN CAPITAL LETTER T
-E0055 TAG LATIN CAPITAL LETTER U
-E0056 TAG LATIN CAPITAL LETTER V
-E0057 TAG LATIN CAPITAL LETTER W
-E0058 TAG LATIN CAPITAL LETTER X
-E0059 TAG LATIN CAPITAL LETTER Y
-E005A TAG LATIN CAPITAL LETTER Z
-E005B TAG LEFT SQUARE BRACKET
-E005C TAG REVERSE SOLIDUS
-E005D TAG RIGHT SQUARE BRACKET
-E005E TAG CIRCUMFLEX ACCENT
-E005F TAG LOW LINE
-E0060 TAG GRAVE ACCENT
-E0061 TAG LATIN SMALL LETTER A
-E0062 TAG LATIN SMALL LETTER B
-E0063 TAG LATIN SMALL LETTER C
-E0064 TAG LATIN SMALL LETTER D
-E0065 TAG LATIN SMALL LETTER E
-E0066 TAG LATIN SMALL LETTER F
-E0067 TAG LATIN SMALL LETTER G
-E0068 TAG LATIN SMALL LETTER H
-E0069 TAG LATIN SMALL LETTER I
-E006A TAG LATIN SMALL LETTER J
-E006B TAG LATIN SMALL LETTER K
-E006C TAG LATIN SMALL LETTER L
-E006D TAG LATIN SMALL LETTER M
-E006E TAG LATIN SMALL LETTER N
-E006F TAG LATIN SMALL LETTER O
-E0070 TAG LATIN SMALL LETTER P
-E0071 TAG LATIN SMALL LETTER Q
-E0072 TAG LATIN SMALL LETTER R
-E0073 TAG LATIN SMALL LETTER S
-E0074 TAG LATIN SMALL LETTER T
-E0075 TAG LATIN SMALL LETTER U
-E0076 TAG LATIN SMALL LETTER V
-E0077 TAG LATIN SMALL LETTER W
-E0078 TAG LATIN SMALL LETTER X
-E0079 TAG LATIN SMALL LETTER Y
-E007A TAG LATIN SMALL LETTER Z
-E007B TAG LEFT CURLY BRACKET
-E007C TAG VERTICAL LINE
-E007D TAG RIGHT CURLY BRACKET
-E007E TAG TILDE
-E007F CANCEL TAG
-F0000 FFFFD Plane 15 Private Use
-100000 10FFFD Plane 16 Private Use
-END
diff --git a/Master/xemtex/perl/lib/unicore/Number.pl b/Master/xemtex/perl/lib/unicore/Number.pl
deleted file mode 100644
index 9bc4fd4663d..00000000000
--- a/Master/xemtex/perl/lib/unicore/Number.pl
+++ /dev/null
@@ -1,537 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0030 0
-0031 1
-0032 2
-0033 3
-0034 4
-0035 5
-0036 6
-0037 7
-0038 8
-0039 9
-00B2 2
-00B3 3
-00B9 1
-00BC 1/4
-00BD 1/2
-00BE 3/4
-0660 0
-0661 1
-0662 2
-0663 3
-0664 4
-0665 5
-0666 6
-0667 7
-0668 8
-0669 9
-06F0 0
-06F1 1
-06F2 2
-06F3 3
-06F4 4
-06F5 5
-06F6 6
-06F7 7
-06F8 8
-06F9 9
-0966 0
-0967 1
-0968 2
-0969 3
-096A 4
-096B 5
-096C 6
-096D 7
-096E 8
-096F 9
-09E6 0
-09E7 1
-09E8 2
-09E9 3
-09EA 4
-09EB 5
-09EC 6
-09ED 7
-09EE 8
-09EF 9
-09F4 1
-09F5 2
-09F6 3
-09F7 4
-09F9 16
-0A66 0
-0A67 1
-0A68 2
-0A69 3
-0A6A 4
-0A6B 5
-0A6C 6
-0A6D 7
-0A6E 8
-0A6F 9
-0AE6 0
-0AE7 1
-0AE8 2
-0AE9 3
-0AEA 4
-0AEB 5
-0AEC 6
-0AED 7
-0AEE 8
-0AEF 9
-0B66 0
-0B67 1
-0B68 2
-0B69 3
-0B6A 4
-0B6B 5
-0B6C 6
-0B6D 7
-0B6E 8
-0B6F 9
-0BE7 1
-0BE8 2
-0BE9 3
-0BEA 4
-0BEB 5
-0BEC 6
-0BED 7
-0BEE 8
-0BEF 9
-0BF0 10
-0BF1 100
-0BF2 1000
-0C66 0
-0C67 1
-0C68 2
-0C69 3
-0C6A 4
-0C6B 5
-0C6C 6
-0C6D 7
-0C6E 8
-0C6F 9
-0CE6 0
-0CE7 1
-0CE8 2
-0CE9 3
-0CEA 4
-0CEB 5
-0CEC 6
-0CED 7
-0CEE 8
-0CEF 9
-0D66 0
-0D67 1
-0D68 2
-0D69 3
-0D6A 4
-0D6B 5
-0D6C 6
-0D6D 7
-0D6E 8
-0D6F 9
-0E50 0
-0E51 1
-0E52 2
-0E53 3
-0E54 4
-0E55 5
-0E56 6
-0E57 7
-0E58 8
-0E59 9
-0ED0 0
-0ED1 1
-0ED2 2
-0ED3 3
-0ED4 4
-0ED5 5
-0ED6 6
-0ED7 7
-0ED8 8
-0ED9 9
-0F20 0
-0F21 1
-0F22 2
-0F23 3
-0F24 4
-0F25 5
-0F26 6
-0F27 7
-0F28 8
-0F29 9
-0F2A 1/2
-0F2B 3/2
-0F2C 5/2
-0F2D 7/2
-0F2E 9/2
-0F2F 11/2
-0F30 13/2
-0F31 15/2
-0F32 17/2
-0F33 -1/2
-1040 0
-1041 1
-1042 2
-1043 3
-1044 4
-1045 5
-1046 6
-1047 7
-1048 8
-1049 9
-1369 1
-136A 2
-136B 3
-136C 4
-136D 5
-136E 6
-136F 7
-1370 8
-1371 9
-1372 10
-1373 20
-1374 30
-1375 40
-1376 50
-1377 60
-1378 70
-1379 80
-137A 90
-137B 100
-137C 10000
-16EE 17
-16EF 18
-16F0 19
-17E0 0
-17E1 1
-17E2 2
-17E3 3
-17E4 4
-17E5 5
-17E6 6
-17E7 7
-17E8 8
-17E9 9
-1810 0
-1811 1
-1812 2
-1813 3
-1814 4
-1815 5
-1816 6
-1817 7
-1818 8
-1819 9
-2070 0
-2074 4
-2075 5
-2076 6
-2077 7
-2078 8
-2079 9
-2080 0
-2081 1
-2082 2
-2083 3
-2084 4
-2085 5
-2086 6
-2087 7
-2088 8
-2089 9
-2153 1/3
-2154 2/3
-2155 1/5
-2156 2/5
-2157 3/5
-2158 4/5
-2159 1/6
-215A 5/6
-215B 1/8
-215C 3/8
-215D 5/8
-215E 7/8
-215F 2160 1
-2161 2
-2162 3
-2163 4
-2164 5
-2165 6
-2166 7
-2167 8
-2168 9
-2169 10
-216A 11
-216B 12
-216C 50
-216D 100
-216E 500
-216F 1000
-2170 1
-2171 2
-2172 3
-2173 4
-2174 5
-2175 6
-2176 7
-2177 8
-2178 9
-2179 10
-217A 11
-217B 12
-217C 50
-217D 100
-217E 500
-217F 2180 1000
-2181 5000
-2182 10000
-2460 1
-2461 2
-2462 3
-2463 4
-2464 5
-2465 6
-2466 7
-2467 8
-2468 9
-2469 10
-246A 11
-246B 12
-246C 13
-246D 14
-246E 15
-246F 16
-2470 17
-2471 18
-2472 19
-2473 20
-2474 1
-2475 2
-2476 3
-2477 4
-2478 5
-2479 6
-247A 7
-247B 8
-247C 9
-247D 10
-247E 11
-247F 12
-2480 13
-2481 14
-2482 15
-2483 16
-2484 17
-2485 18
-2486 19
-2487 20
-2488 1
-2489 2
-248A 3
-248B 4
-248C 5
-248D 6
-248E 7
-248F 8
-2490 9
-2491 10
-2492 11
-2493 12
-2494 13
-2495 14
-2496 15
-2497 16
-2498 17
-2499 18
-249A 19
-249B 20
-24EA 0
-24EB 11
-24EC 12
-24ED 13
-24EE 14
-24EF 15
-24F0 16
-24F1 17
-24F2 18
-24F3 19
-24F4 20
-24F5 1
-24F6 2
-24F7 3
-24F8 4
-24F9 5
-24FA 6
-24FB 7
-24FC 8
-24FD 9
-24FE 10
-2776 1
-2777 2
-2778 3
-2779 4
-277A 5
-277B 6
-277C 7
-277D 8
-277E 9
-277F 10
-2780 1
-2781 2
-2782 3
-2783 4
-2784 5
-2785 6
-2786 7
-2787 8
-2788 9
-2789 10
-278A 1
-278B 2
-278C 3
-278D 4
-278E 5
-278F 6
-2790 7
-2791 8
-2792 9
-2793 10
-3007 0
-3021 1
-3022 2
-3023 3
-3024 4
-3025 5
-3026 6
-3027 7
-3028 8
-3029 9
-3038 10
-3039 20
-303A 30
-3192 1
-3193 2
-3194 3
-3195 4
-3220 1
-3221 2
-3222 3
-3223 4
-3224 5
-3225 6
-3226 7
-3227 8
-3228 9
-3229 10
-3251 21
-3252 22
-3253 23
-3254 24
-3255 25
-3256 26
-3257 27
-3258 28
-3259 29
-325A 30
-325B 31
-325C 32
-325D 33
-325E 34
-325F 35
-3280 1
-3281 2
-3282 3
-3283 4
-3284 5
-3285 6
-3286 7
-3287 8
-3288 9
-3289 10
-32B1 36
-32B2 37
-32B3 38
-32B4 39
-32B5 40
-32B6 41
-32B7 42
-32B8 43
-32B9 44
-32BA 45
-32BB 46
-32BC 47
-32BD 48
-32BE 49
-32BF 50
-FF10 0
-FF11 1
-FF12 2
-FF13 3
-FF14 4
-FF15 5
-FF16 6
-FF17 7
-FF18 8
-FF19 9
-10320 1
-10321 5
-10322 10
-10323 50
-1D7CE 0
-1D7CF 1
-1D7D0 2
-1D7D1 3
-1D7D2 4
-1D7D3 5
-1D7D4 6
-1D7D5 7
-1D7D6 8
-1D7D7 9
-1D7D8 0
-1D7D9 1
-1D7DA 2
-1D7DB 3
-1D7DC 4
-1D7DD 5
-1D7DE 6
-1D7DF 7
-1D7E0 8
-1D7E1 9
-1D7E2 0
-1D7E3 1
-1D7E4 2
-1D7E5 3
-1D7E6 4
-1D7E7 5
-1D7E8 6
-1D7E9 7
-1D7EA 8
-1D7EB 9
-1D7EC 0
-1D7ED 1
-1D7EE 2
-1D7EF 3
-1D7F0 4
-1D7F1 5
-1D7F2 6
-1D7F3 7
-1D7F4 8
-1D7F5 9
-1D7F6 0
-1D7F7 1
-1D7F8 2
-1D7F9 3
-1D7FA 4
-1D7FB 5
-1D7FC 6
-1D7FD 7
-1D7FE 8
-1D7FF 9
-END
diff --git a/Master/xemtex/perl/lib/unicore/Scripts.pl b/Master/xemtex/perl/lib/unicore/Scripts.pl
deleted file mode 100644
index 4c99f029cc3..00000000000
--- a/Master/xemtex/perl/lib/unicore/Scripts.pl
+++ /dev/null
@@ -1,371 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0041 005A LATIN
-0061 007A LATIN
-00AA LATIN
-00B5 GREEK
-00BA LATIN
-00C0 00D6 LATIN
-00D8 00F6 LATIN
-00F8 0220 LATIN
-0222 0233 LATIN
-0250 02AD LATIN
-02B0 02B8 LATIN
-02E0 02E4 LATIN
-0300 034F INHERITED
-0360 036F INHERITED
-037A GREEK
-0386 GREEK
-0388 038A GREEK
-038C GREEK
-038E 03A1 GREEK
-03A3 03CE GREEK
-03D0 03F5 GREEK
-0400 0481 CYRILLIC
-0483 0486 CYRILLIC
-0488 0489 INHERITED
-048A 04CE CYRILLIC
-04D0 04F5 CYRILLIC
-04F8 04F9 CYRILLIC
-0500 050F CYRILLIC
-0531 0556 ARMENIAN
-0559 ARMENIAN
-0561 0587 ARMENIAN
-0591 05A1 INHERITED
-05A3 05B9 INHERITED
-05BB 05BD INHERITED
-05BF INHERITED
-05C1 05C2 INHERITED
-05C4 INHERITED
-05D0 05EA HEBREW
-05F0 05F2 HEBREW
-0621 063A ARABIC
-0641 064A ARABIC
-064B 0655 INHERITED
-066E 066F ARABIC
-0670 INHERITED
-0671 06D3 ARABIC
-06D5 ARABIC
-06D6 06E4 INHERITED
-06E5 06E6 ARABIC
-06E7 06E8 INHERITED
-06EA 06ED INHERITED
-06FA 06FC ARABIC
-0710 072C SYRIAC
-0730 074A SYRIAC
-0780 07B1 THAANA
-0901 0903 DEVANAGARI
-0905 0939 DEVANAGARI
-093C 094D DEVANAGARI
-0950 0954 DEVANAGARI
-0958 0963 DEVANAGARI
-0966 096F DEVANAGARI
-0981 0983 BENGALI
-0985 098C BENGALI
-098F 0990 BENGALI
-0993 09A8 BENGALI
-09AA 09B0 BENGALI
-09B2 BENGALI
-09B6 09B9 BENGALI
-09BC BENGALI
-09BE 09C4 BENGALI
-09C7 09C8 BENGALI
-09CB 09CD BENGALI
-09D7 BENGALI
-09DC 09DD BENGALI
-09DF 09E3 BENGALI
-09E6 09F1 BENGALI
-0A02 GURMUKHI
-0A05 0A0A GURMUKHI
-0A0F 0A10 GURMUKHI
-0A13 0A28 GURMUKHI
-0A2A 0A30 GURMUKHI
-0A32 0A33 GURMUKHI
-0A35 0A36 GURMUKHI
-0A38 0A39 GURMUKHI
-0A3C GURMUKHI
-0A3E 0A42 GURMUKHI
-0A47 0A48 GURMUKHI
-0A4B 0A4D GURMUKHI
-0A59 0A5C GURMUKHI
-0A5E GURMUKHI
-0A66 0A74 GURMUKHI
-0A81 0A83 GUJARATI
-0A85 0A8B GUJARATI
-0A8D GUJARATI
-0A8F 0A91 GUJARATI
-0A93 0AA8 GUJARATI
-0AAA 0AB0 GUJARATI
-0AB2 0AB3 GUJARATI
-0AB5 0AB9 GUJARATI
-0ABC 0AC5 GUJARATI
-0AC7 0AC9 GUJARATI
-0ACB 0ACD GUJARATI
-0AD0 GUJARATI
-0AE0 GUJARATI
-0AE6 0AEF GUJARATI
-0B01 0B03 ORIYA
-0B05 0B0C ORIYA
-0B0F 0B10 ORIYA
-0B13 0B28 ORIYA
-0B2A 0B30 ORIYA
-0B32 0B33 ORIYA
-0B36 0B39 ORIYA
-0B3C 0B43 ORIYA
-0B47 0B48 ORIYA
-0B4B 0B4D ORIYA
-0B56 0B57 ORIYA
-0B5C 0B5D ORIYA
-0B5F 0B61 ORIYA
-0B66 0B6F ORIYA
-0B82 0B83 TAMIL
-0B85 0B8A TAMIL
-0B8E 0B90 TAMIL
-0B92 0B95 TAMIL
-0B99 0B9A TAMIL
-0B9C TAMIL
-0B9E 0B9F TAMIL
-0BA3 0BA4 TAMIL
-0BA8 0BAA TAMIL
-0BAE 0BB5 TAMIL
-0BB7 0BB9 TAMIL
-0BBE 0BC2 TAMIL
-0BC6 0BC8 TAMIL
-0BCA 0BCD TAMIL
-0BD7 TAMIL
-0BE7 0BF2 TAMIL
-0C01 0C03 TELUGU
-0C05 0C0C TELUGU
-0C0E 0C10 TELUGU
-0C12 0C28 TELUGU
-0C2A 0C33 TELUGU
-0C35 0C39 TELUGU
-0C3E 0C44 TELUGU
-0C46 0C48 TELUGU
-0C4A 0C4D TELUGU
-0C55 0C56 TELUGU
-0C60 0C61 TELUGU
-0C66 0C6F TELUGU
-0C82 0C83 KANNADA
-0C85 0C8C KANNADA
-0C8E 0C90 KANNADA
-0C92 0CA8 KANNADA
-0CAA 0CB3 KANNADA
-0CB5 0CB9 KANNADA
-0CBE 0CC4 KANNADA
-0CC6 0CC8 KANNADA
-0CCA 0CCD KANNADA
-0CD5 0CD6 KANNADA
-0CDE KANNADA
-0CE0 0CE1 KANNADA
-0CE6 0CEF KANNADA
-0D02 0D03 MALAYALAM
-0D05 0D0C MALAYALAM
-0D0E 0D10 MALAYALAM
-0D12 0D28 MALAYALAM
-0D2A 0D39 MALAYALAM
-0D3E 0D43 MALAYALAM
-0D46 0D48 MALAYALAM
-0D4A 0D4D MALAYALAM
-0D57 MALAYALAM
-0D60 0D61 MALAYALAM
-0D66 0D6F MALAYALAM
-0D82 0D83 SINHALA
-0D85 0D96 SINHALA
-0D9A 0DB1 SINHALA
-0DB3 0DBB SINHALA
-0DBD SINHALA
-0DC0 0DC6 SINHALA
-0DCA SINHALA
-0DCF 0DD4 SINHALA
-0DD6 SINHALA
-0DD8 0DDF SINHALA
-0DF2 0DF3 SINHALA
-0E01 0E3A THAI
-0E40 0E4E THAI
-0E50 0E59 THAI
-0E81 0E82 LAO
-0E84 LAO
-0E87 0E88 LAO
-0E8A LAO
-0E8D LAO
-0E94 0E97 LAO
-0E99 0E9F LAO
-0EA1 0EA3 LAO
-0EA5 LAO
-0EA7 LAO
-0EAA 0EAB LAO
-0EAD 0EB9 LAO
-0EBB 0EBD LAO
-0EC0 0EC4 LAO
-0EC6 LAO
-0EC8 0ECD LAO
-0ED0 0ED9 LAO
-0EDC 0EDD LAO
-0F00 TIBETAN
-0F18 0F19 TIBETAN
-0F20 0F33 TIBETAN
-0F35 TIBETAN
-0F37 TIBETAN
-0F39 TIBETAN
-0F40 0F47 TIBETAN
-0F49 0F6A TIBETAN
-0F71 0F84 TIBETAN
-0F86 0F8B TIBETAN
-0F90 0F97 TIBETAN
-0F99 0FBC TIBETAN
-0FC6 TIBETAN
-1000 1021 MYANMAR
-1023 1027 MYANMAR
-1029 102A MYANMAR
-102C 1032 MYANMAR
-1036 1039 MYANMAR
-1040 1049 MYANMAR
-1050 1059 MYANMAR
-10A0 10C5 GEORGIAN
-10D0 10F8 GEORGIAN
-1100 1159 HANGUL
-115F 11A2 HANGUL
-11A8 11F9 HANGUL
-1200 1206 ETHIOPIC
-1208 1246 ETHIOPIC
-1248 ETHIOPIC
-124A 124D ETHIOPIC
-1250 1256 ETHIOPIC
-1258 ETHIOPIC
-125A 125D ETHIOPIC
-1260 1286 ETHIOPIC
-1288 ETHIOPIC
-128A 128D ETHIOPIC
-1290 12AE ETHIOPIC
-12B0 ETHIOPIC
-12B2 12B5 ETHIOPIC
-12B8 12BE ETHIOPIC
-12C0 ETHIOPIC
-12C2 12C5 ETHIOPIC
-12C8 12CE ETHIOPIC
-12D0 12D6 ETHIOPIC
-12D8 12EE ETHIOPIC
-12F0 130E ETHIOPIC
-1310 ETHIOPIC
-1312 1315 ETHIOPIC
-1318 131E ETHIOPIC
-1320 1346 ETHIOPIC
-1348 135A ETHIOPIC
-1369 137C ETHIOPIC
-13A0 13F4 CHEROKEE
-1401 166C CANADIAN_ABORIGINAL
-166F 1676 CANADIAN_ABORIGINAL
-1681 169A OGHAM
-16A0 16EA RUNIC
-16EE 16F0 RUNIC
-1700 170C TAGALOG
-170E 1714 TAGALOG
-1720 1734 HANUNOO
-1740 1753 BUHID
-1760 176C TAGBANWA
-176E 1770 TAGBANWA
-1772 1773 TAGBANWA
-1780 17D3 KHMER
-17E0 17E9 KHMER
-180B 180D INHERITED
-1810 1819 MONGOLIAN
-1820 1877 MONGOLIAN
-1880 18A9 MONGOLIAN
-1E00 1E9B LATIN
-1EA0 1EF9 LATIN
-1F00 1F15 GREEK
-1F18 1F1D GREEK
-1F20 1F45 GREEK
-1F48 1F4D GREEK
-1F50 1F57 GREEK
-1F59 GREEK
-1F5B GREEK
-1F5D GREEK
-1F5F 1F7D GREEK
-1F80 1FB4 GREEK
-1FB6 1FBC GREEK
-1FBE GREEK
-1FC2 1FC4 GREEK
-1FC6 1FCC GREEK
-1FD0 1FD3 GREEK
-1FD6 1FDB GREEK
-1FE0 1FEC GREEK
-1FF2 1FF4 GREEK
-1FF6 1FFC GREEK
-2071 LATIN
-207F LATIN
-20D0 20EA INHERITED
-2126 GREEK
-212A 212B LATIN
-2E80 2E99 HAN
-2E9B 2EF3 HAN
-2F00 2FD5 HAN
-3005 HAN
-3007 HAN
-3021 3029 HAN
-302A 302F INHERITED
-3038 303B HAN
-3041 3096 HIRAGANA
-3099 309A INHERITED
-309D 309F HIRAGANA
-30A1 30FA KATAKANA
-30FD 30FF KATAKANA
-3105 312C BOPOMOFO
-3131 318E HANGUL
-31A0 31B7 BOPOMOFO
-31F0 31FF KATAKANA
-3400 4DB5 HAN
-4E00 9FA5 HAN
-A000 A48C YI
-A490 A4A1 YI
-A4A4 A4B3 YI
-A4B5 A4C0 YI
-A4C2 A4C4 YI
-A4C6 YI
-AC00 D7A3 HANGUL
-F900 FA2D HAN
-FA30 FA6A HAN
-FB00 FB06 LATIN
-FB13 FB17 ARMENIAN
-FB1D HEBREW
-FB1E INHERITED
-FB1F FB28 HEBREW
-FB2A FB36 HEBREW
-FB38 FB3C HEBREW
-FB3E HEBREW
-FB40 FB41 HEBREW
-FB43 FB44 HEBREW
-FB46 FB4F HEBREW
-FB50 FBB1 ARABIC
-FBD3 FD3D ARABIC
-FD50 FD8F ARABIC
-FD92 FDC7 ARABIC
-FDF0 FDFB ARABIC
-FE00 FE0F INHERITED
-FE20 FE23 INHERITED
-FE70 FE74 ARABIC
-FE76 FEFC ARABIC
-FF21 FF3A LATIN
-FF41 FF5A LATIN
-FF66 FF6F KATAKANA
-FF71 FF9D KATAKANA
-FFA0 FFBE HANGUL
-FFC2 FFC7 HANGUL
-FFCA FFCF HANGUL
-FFD2 FFD7 HANGUL
-FFDA FFDC HANGUL
-10300 1031E OLD_ITALIC
-10330 1034A GOTHIC
-10400 10425 DESERET
-10428 1044D DESERET
-1D167 1D169 INHERITED
-1D17B 1D182 INHERITED
-1D185 1D18B INHERITED
-1D1AA 1D1AD INHERITED
-20000 2A6D6 HAN
-2F800 2FA1D HAN
-END
diff --git a/Master/xemtex/perl/lib/unicore/To/Digit.pl b/Master/xemtex/perl/lib/unicore/To/Digit.pl
deleted file mode 100644
index e5c0ff429ea..00000000000
--- a/Master/xemtex/perl/lib/unicore/To/Digit.pl
+++ /dev/null
@@ -1,274 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-return <<'END';
-0030 0
-0031 1
-0032 2
-0033 3
-0034 4
-0035 5
-0036 6
-0037 7
-0038 8
-0039 9
-00B2 2
-00B3 3
-00B9 1
-0660 0
-0661 1
-0662 2
-0663 3
-0664 4
-0665 5
-0666 6
-0667 7
-0668 8
-0669 9
-06F0 0
-06F1 1
-06F2 2
-06F3 3
-06F4 4
-06F5 5
-06F6 6
-06F7 7
-06F8 8
-06F9 9
-0966 0
-0967 1
-0968 2
-0969 3
-096A 4
-096B 5
-096C 6
-096D 7
-096E 8
-096F 9
-09E6 0
-09E7 1
-09E8 2
-09E9 3
-09EA 4
-09EB 5
-09EC 6
-09ED 7
-09EE 8
-09EF 9
-0A66 0
-0A67 1
-0A68 2
-0A69 3
-0A6A 4
-0A6B 5
-0A6C 6
-0A6D 7
-0A6E 8
-0A6F 9
-0AE6 0
-0AE7 1
-0AE8 2
-0AE9 3
-0AEA 4
-0AEB 5
-0AEC 6
-0AED 7
-0AEE 8
-0AEF 9
-0B66 0
-0B67 1
-0B68 2
-0B69 3
-0B6A 4
-0B6B 5
-0B6C 6
-0B6D 7
-0B6E 8
-0B6F 9
-0BE7 1
-0BE8 2
-0BE9 3
-0BEA 4
-0BEB 5
-0BEC 6
-0BED 7
-0BEE 8
-0BEF 9
-0C66 0
-0C67 1
-0C68 2
-0C69 3
-0C6A 4
-0C6B 5
-0C6C 6
-0C6D 7
-0C6E 8
-0C6F 9
-0CE6 0
-0CE7 1
-0CE8 2
-0CE9 3
-0CEA 4
-0CEB 5
-0CEC 6
-0CED 7
-0CEE 8
-0CEF 9
-0D66 0
-0D67 1
-0D68 2
-0D69 3
-0D6A 4
-0D6B 5
-0D6C 6
-0D6D 7
-0D6E 8
-0D6F 9
-0E50 0
-0E51 1
-0E52 2
-0E53 3
-0E54 4
-0E55 5
-0E56 6
-0E57 7
-0E58 8
-0E59 9
-0ED0 0
-0ED1 1
-0ED2 2
-0ED3 3
-0ED4 4
-0ED5 5
-0ED6 6
-0ED7 7
-0ED8 8
-0ED9 9
-0F20 0
-0F21 1
-0F22 2
-0F23 3
-0F24 4
-0F25 5
-0F26 6
-0F27 7
-0F28 8
-0F29 9
-1040 0
-1041 1
-1042 2
-1043 3
-1044 4
-1045 5
-1046 6
-1047 7
-1048 8
-1049 9
-1369 1
-136A 2
-136B 3
-136C 4
-136D 5
-136E 6
-136F 7
-1370 8
-1371 9
-17E0 0
-17E1 1
-17E2 2
-17E3 3
-17E4 4
-17E5 5
-17E6 6
-17E7 7
-17E8 8
-17E9 9
-1810 0
-1811 1
-1812 2
-1813 3
-1814 4
-1815 5
-1816 6
-1817 7
-1818 8
-1819 9
-2070 0
-2074 4
-2075 5
-2076 6
-2077 7
-2078 8
-2079 9
-2080 0
-2081 1
-2082 2
-2083 3
-2084 4
-2085 5
-2086 6
-2087 7
-2088 8
-2089 9
-FF10 0
-FF11 1
-FF12 2
-FF13 3
-FF14 4
-FF15 5
-FF16 6
-FF17 7
-FF18 8
-FF19 9
-1D7CE 0
-1D7CF 1
-1D7D0 2
-1D7D1 3
-1D7D2 4
-1D7D3 5
-1D7D4 6
-1D7D5 7
-1D7D6 8
-1D7D7 9
-1D7D8 0
-1D7D9 1
-1D7DA 2
-1D7DB 3
-1D7DC 4
-1D7DD 5
-1D7DE 6
-1D7DF 7
-1D7E0 8
-1D7E1 9
-1D7E2 0
-1D7E3 1
-1D7E4 2
-1D7E5 3
-1D7E6 4
-1D7E7 5
-1D7E8 6
-1D7E9 7
-1D7EA 8
-1D7EB 9
-1D7EC 0
-1D7ED 1
-1D7EE 2
-1D7EF 3
-1D7F0 4
-1D7F1 5
-1D7F2 6
-1D7F3 7
-1D7F4 8
-1D7F5 9
-1D7F6 0
-1D7F7 1
-1D7F8 2
-1D7F9 3
-1D7FA 4
-1D7FB 5
-1D7FC 6
-1D7FD 7
-1D7FE 8
-1D7FF 9
-END
diff --git a/Master/xemtex/perl/lib/unicore/To/Fold.pl b/Master/xemtex/perl/lib/unicore/To/Fold.pl
deleted file mode 100644
index 2a355ad6a39..00000000000
--- a/Master/xemtex/perl/lib/unicore/To/Fold.pl
+++ /dev/null
@@ -1,849 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-
-%utf8::ToSpecFold =
-(
-'00DF' => "\x{0073}\x{0073}",
-'0130' => "\x{0069}\x{0307}",
-'0149' => "\x{02BC}\x{006E}",
-'01F0' => "\x{006A}\x{030C}",
-'0390' => "\x{03B9}\x{0308}\x{0301}",
-'03B0' => "\x{03C5}\x{0308}\x{0301}",
-'0587' => "\x{0565}\x{0582}",
-'1E96' => "\x{0068}\x{0331}",
-'1E97' => "\x{0074}\x{0308}",
-'1E98' => "\x{0077}\x{030A}",
-'1E99' => "\x{0079}\x{030A}",
-'1E9A' => "\x{0061}\x{02BE}",
-'1F50' => "\x{03C5}\x{0313}",
-'1F52' => "\x{03C5}\x{0313}\x{0300}",
-'1F54' => "\x{03C5}\x{0313}\x{0301}",
-'1F56' => "\x{03C5}\x{0313}\x{0342}",
-'1F80' => "\x{1F00}\x{03B9}",
-'1F81' => "\x{1F01}\x{03B9}",
-'1F82' => "\x{1F02}\x{03B9}",
-'1F83' => "\x{1F03}\x{03B9}",
-'1F84' => "\x{1F04}\x{03B9}",
-'1F85' => "\x{1F05}\x{03B9}",
-'1F86' => "\x{1F06}\x{03B9}",
-'1F87' => "\x{1F07}\x{03B9}",
-'1F88' => "\x{1F00}\x{03B9}",
-'1F89' => "\x{1F01}\x{03B9}",
-'1F8A' => "\x{1F02}\x{03B9}",
-'1F8B' => "\x{1F03}\x{03B9}",
-'1F8C' => "\x{1F04}\x{03B9}",
-'1F8D' => "\x{1F05}\x{03B9}",
-'1F8E' => "\x{1F06}\x{03B9}",
-'1F8F' => "\x{1F07}\x{03B9}",
-'1F90' => "\x{1F20}\x{03B9}",
-'1F91' => "\x{1F21}\x{03B9}",
-'1F92' => "\x{1F22}\x{03B9}",
-'1F93' => "\x{1F23}\x{03B9}",
-'1F94' => "\x{1F24}\x{03B9}",
-'1F95' => "\x{1F25}\x{03B9}",
-'1F96' => "\x{1F26}\x{03B9}",
-'1F97' => "\x{1F27}\x{03B9}",
-'1F98' => "\x{1F20}\x{03B9}",
-'1F99' => "\x{1F21}\x{03B9}",
-'1F9A' => "\x{1F22}\x{03B9}",
-'1F9B' => "\x{1F23}\x{03B9}",
-'1F9C' => "\x{1F24}\x{03B9}",
-'1F9D' => "\x{1F25}\x{03B9}",
-'1F9E' => "\x{1F26}\x{03B9}",
-'1F9F' => "\x{1F27}\x{03B9}",
-'1FA0' => "\x{1F60}\x{03B9}",
-'1FA1' => "\x{1F61}\x{03B9}",
-'1FA2' => "\x{1F62}\x{03B9}",
-'1FA3' => "\x{1F63}\x{03B9}",
-'1FA4' => "\x{1F64}\x{03B9}",
-'1FA5' => "\x{1F65}\x{03B9}",
-'1FA6' => "\x{1F66}\x{03B9}",
-'1FA7' => "\x{1F67}\x{03B9}",
-'1FA8' => "\x{1F60}\x{03B9}",
-'1FA9' => "\x{1F61}\x{03B9}",
-'1FAA' => "\x{1F62}\x{03B9}",
-'1FAB' => "\x{1F63}\x{03B9}",
-'1FAC' => "\x{1F64}\x{03B9}",
-'1FAD' => "\x{1F65}\x{03B9}",
-'1FAE' => "\x{1F66}\x{03B9}",
-'1FAF' => "\x{1F67}\x{03B9}",
-'1FB2' => "\x{1F70}\x{03B9}",
-'1FB3' => "\x{03B1}\x{03B9}",
-'1FB4' => "\x{03AC}\x{03B9}",
-'1FB6' => "\x{03B1}\x{0342}",
-'1FB7' => "\x{03B1}\x{0342}\x{03B9}",
-'1FBC' => "\x{03B1}\x{03B9}",
-'1FC2' => "\x{1F74}\x{03B9}",
-'1FC3' => "\x{03B7}\x{03B9}",
-'1FC4' => "\x{03AE}\x{03B9}",
-'1FC6' => "\x{03B7}\x{0342}",
-'1FC7' => "\x{03B7}\x{0342}\x{03B9}",
-'1FCC' => "\x{03B7}\x{03B9}",
-'1FD2' => "\x{03B9}\x{0308}\x{0300}",
-'1FD3' => "\x{03B9}\x{0308}\x{0301}",
-'1FD6' => "\x{03B9}\x{0342}",
-'1FD7' => "\x{03B9}\x{0308}\x{0342}",
-'1FE2' => "\x{03C5}\x{0308}\x{0300}",
-'1FE3' => "\x{03C5}\x{0308}\x{0301}",
-'1FE4' => "\x{03C1}\x{0313}",
-'1FE6' => "\x{03C5}\x{0342}",
-'1FE7' => "\x{03C5}\x{0308}\x{0342}",
-'1FF2' => "\x{1F7C}\x{03B9}",
-'1FF3' => "\x{03C9}\x{03B9}",
-'1FF4' => "\x{03CE}\x{03B9}",
-'1FF6' => "\x{03C9}\x{0342}",
-'1FF7' => "\x{03C9}\x{0342}\x{03B9}",
-'1FFC' => "\x{03C9}\x{03B9}",
-'FB00' => "\x{0066}\x{0066}",
-'FB01' => "\x{0066}\x{0069}",
-'FB02' => "\x{0066}\x{006C}",
-'FB03' => "\x{0066}\x{0066}\x{0069}",
-'FB04' => "\x{0066}\x{0066}\x{006C}",
-'FB05' => "\x{0073}\x{0074}",
-'FB06' => "\x{0073}\x{0074}",
-'FB13' => "\x{0574}\x{0576}",
-'FB14' => "\x{0574}\x{0565}",
-'FB15' => "\x{0574}\x{056B}",
-'FB16' => "\x{057E}\x{0576}",
-'FB17' => "\x{0574}\x{056D}",
-);
-
-return <<'END';
-0041 0061
-0042 0062
-0043 0063
-0044 0064
-0045 0065
-0046 0066
-0047 0067
-0048 0068
-0049 0069
-004A 006A
-004B 006B
-004C 006C
-004D 006D
-004E 006E
-004F 006F
-0050 0070
-0051 0071
-0052 0072
-0053 0073
-0054 0074
-0055 0075
-0056 0076
-0057 0077
-0058 0078
-0059 0079
-005A 007A
-00B5 03BC
-00C0 00E0
-00C1 00E1
-00C2 00E2
-00C3 00E3
-00C4 00E4
-00C5 00E5
-00C6 00E6
-00C7 00E7
-00C8 00E8
-00C9 00E9
-00CA 00EA
-00CB 00EB
-00CC 00EC
-00CD 00ED
-00CE 00EE
-00CF 00EF
-00D0 00F0
-00D1 00F1
-00D2 00F2
-00D3 00F3
-00D4 00F4
-00D5 00F5
-00D6 00F6
-00D8 00F8
-00D9 00F9
-00DA 00FA
-00DB 00FB
-00DC 00FC
-00DD 00FD
-00DE 00FE
-0100 0101
-0102 0103
-0104 0105
-0106 0107
-0108 0109
-010A 010B
-010C 010D
-010E 010F
-0110 0111
-0112 0113
-0114 0115
-0116 0117
-0118 0119
-011A 011B
-011C 011D
-011E 011F
-0120 0121
-0122 0123
-0124 0125
-0126 0127
-0128 0129
-012A 012B
-012C 012D
-012E 012F
-0132 0133
-0134 0135
-0136 0137
-0139 013A
-013B 013C
-013D 013E
-013F 0140
-0141 0142
-0143 0144
-0145 0146
-0147 0148
-014A 014B
-014C 014D
-014E 014F
-0150 0151
-0152 0153
-0154 0155
-0156 0157
-0158 0159
-015A 015B
-015C 015D
-015E 015F
-0160 0161
-0162 0163
-0164 0165
-0166 0167
-0168 0169
-016A 016B
-016C 016D
-016E 016F
-0170 0171
-0172 0173
-0174 0175
-0176 0177
-0178 00FF
-0179 017A
-017B 017C
-017D 017E
-017F 0073
-0181 0253
-0182 0183
-0184 0185
-0186 0254
-0187 0188
-0189 0256
-018A 0257
-018B 018C
-018E 01DD
-018F 0259
-0190 025B
-0191 0192
-0193 0260
-0194 0263
-0196 0269
-0197 0268
-0198 0199
-019C 026F
-019D 0272
-019F 0275
-01A0 01A1
-01A2 01A3
-01A4 01A5
-01A6 0280
-01A7 01A8
-01A9 0283
-01AC 01AD
-01AE 0288
-01AF 01B0
-01B1 028A
-01B2 028B
-01B3 01B4
-01B5 01B6
-01B7 0292
-01B8 01B9
-01BC 01BD
-01C4 01C6
-01C5 01C6
-01C7 01C9
-01C8 01C9
-01CA 01CC
-01CB 01CC
-01CD 01CE
-01CF 01D0
-01D1 01D2
-01D3 01D4
-01D5 01D6
-01D7 01D8
-01D9 01DA
-01DB 01DC
-01DE 01DF
-01E0 01E1
-01E2 01E3
-01E4 01E5
-01E6 01E7
-01E8 01E9
-01EA 01EB
-01EC 01ED
-01EE 01EF
-01F1 01F3
-01F2 01F3
-01F4 01F5
-01F6 0195
-01F7 01BF
-01F8 01F9
-01FA 01FB
-01FC 01FD
-01FE 01FF
-0200 0201
-0202 0203
-0204 0205
-0206 0207
-0208 0209
-020A 020B
-020C 020D
-020E 020F
-0210 0211
-0212 0213
-0214 0215
-0216 0217
-0218 0219
-021A 021B
-021C 021D
-021E 021F
-0220 019E
-0222 0223
-0224 0225
-0226 0227
-0228 0229
-022A 022B
-022C 022D
-022E 022F
-0230 0231
-0232 0233
-0345 03B9
-0386 03AC
-0388 03AD
-0389 03AE
-038A 03AF
-038C 03CC
-038E 03CD
-038F 03CE
-0391 03B1
-0392 03B2
-0393 03B3
-0394 03B4
-0395 03B5
-0396 03B6
-0397 03B7
-0398 03B8
-0399 03B9
-039A 03BA
-039B 03BB
-039C 03BC
-039D 03BD
-039E 03BE
-039F 03BF
-03A0 03C0
-03A1 03C1
-03A3 03C3
-03A4 03C4
-03A5 03C5
-03A6 03C6
-03A7 03C7
-03A8 03C8
-03A9 03C9
-03AA 03CA
-03AB 03CB
-03C2 03C3
-03D0 03B2
-03D1 03B8
-03D5 03C6
-03D6 03C0
-03D8 03D9
-03DA 03DB
-03DC 03DD
-03DE 03DF
-03E0 03E1
-03E2 03E3
-03E4 03E5
-03E6 03E7
-03E8 03E9
-03EA 03EB
-03EC 03ED
-03EE 03EF
-03F0 03BA
-03F1 03C1
-03F2 03C3
-03F4 03B8
-03F5 03B5
-0400 0450
-0401 0451
-0402 0452
-0403 0453
-0404 0454
-0405 0455
-0406 0456
-0407 0457
-0408 0458
-0409 0459
-040A 045A
-040B 045B
-040C 045C
-040D 045D
-040E 045E
-040F 045F
-0410 0430
-0411 0431
-0412 0432
-0413 0433
-0414 0434
-0415 0435
-0416 0436
-0417 0437
-0418 0438
-0419 0439
-041A 043A
-041B 043B
-041C 043C
-041D 043D
-041E 043E
-041F 043F
-0420 0440
-0421 0441
-0422 0442
-0423 0443
-0424 0444
-0425 0445
-0426 0446
-0427 0447
-0428 0448
-0429 0449
-042A 044A
-042B 044B
-042C 044C
-042D 044D
-042E 044E
-042F 044F
-0460 0461
-0462 0463
-0464 0465
-0466 0467
-0468 0469
-046A 046B
-046C 046D
-046E 046F
-0470 0471
-0472 0473
-0474 0475
-0476 0477
-0478 0479
-047A 047B
-047C 047D
-047E 047F
-0480 0481
-048A 048B
-048C 048D
-048E 048F
-0490 0491
-0492 0493
-0494 0495
-0496 0497
-0498 0499
-049A 049B
-049C 049D
-049E 049F
-04A0 04A1
-04A2 04A3
-04A4 04A5
-04A6 04A7
-04A8 04A9
-04AA 04AB
-04AC 04AD
-04AE 04AF
-04B0 04B1
-04B2 04B3
-04B4 04B5
-04B6 04B7
-04B8 04B9
-04BA 04BB
-04BC 04BD
-04BE 04BF
-04C1 04C2
-04C3 04C4
-04C5 04C6
-04C7 04C8
-04C9 04CA
-04CB 04CC
-04CD 04CE
-04D0 04D1
-04D2 04D3
-04D4 04D5
-04D6 04D7
-04D8 04D9
-04DA 04DB
-04DC 04DD
-04DE 04DF
-04E0 04E1
-04E2 04E3
-04E4 04E5
-04E6 04E7
-04E8 04E9
-04EA 04EB
-04EC 04ED
-04EE 04EF
-04F0 04F1
-04F2 04F3
-04F4 04F5
-04F8 04F9
-0500 0501
-0502 0503
-0504 0505
-0506 0507
-0508 0509
-050A 050B
-050C 050D
-050E 050F
-0531 0561
-0532 0562
-0533 0563
-0534 0564
-0535 0565
-0536 0566
-0537 0567
-0538 0568
-0539 0569
-053A 056A
-053B 056B
-053C 056C
-053D 056D
-053E 056E
-053F 056F
-0540 0570
-0541 0571
-0542 0572
-0543 0573
-0544 0574
-0545 0575
-0546 0576
-0547 0577
-0548 0578
-0549 0579
-054A 057A
-054B 057B
-054C 057C
-054D 057D
-054E 057E
-054F 057F
-0550 0580
-0551 0581
-0552 0582
-0553 0583
-0554 0584
-0555 0585
-0556 0586
-1E00 1E01
-1E02 1E03
-1E04 1E05
-1E06 1E07
-1E08 1E09
-1E0A 1E0B
-1E0C 1E0D
-1E0E 1E0F
-1E10 1E11
-1E12 1E13
-1E14 1E15
-1E16 1E17
-1E18 1E19
-1E1A 1E1B
-1E1C 1E1D
-1E1E 1E1F
-1E20 1E21
-1E22 1E23
-1E24 1E25
-1E26 1E27
-1E28 1E29
-1E2A 1E2B
-1E2C 1E2D
-1E2E 1E2F
-1E30 1E31
-1E32 1E33
-1E34 1E35
-1E36 1E37
-1E38 1E39
-1E3A 1E3B
-1E3C 1E3D
-1E3E 1E3F
-1E40 1E41
-1E42 1E43
-1E44 1E45
-1E46 1E47
-1E48 1E49
-1E4A 1E4B
-1E4C 1E4D
-1E4E 1E4F
-1E50 1E51
-1E52 1E53
-1E54 1E55
-1E56 1E57
-1E58 1E59
-1E5A 1E5B
-1E5C 1E5D
-1E5E 1E5F
-1E60 1E61
-1E62 1E63
-1E64 1E65
-1E66 1E67
-1E68 1E69
-1E6A 1E6B
-1E6C 1E6D
-1E6E 1E6F
-1E70 1E71
-1E72 1E73
-1E74 1E75
-1E76 1E77
-1E78 1E79
-1E7A 1E7B
-1E7C 1E7D
-1E7E 1E7F
-1E80 1E81
-1E82 1E83
-1E84 1E85
-1E86 1E87
-1E88 1E89
-1E8A 1E8B
-1E8C 1E8D
-1E8E 1E8F
-1E90 1E91
-1E92 1E93
-1E94 1E95
-1E9B 1E61
-1EA0 1EA1
-1EA2 1EA3
-1EA4 1EA5
-1EA6 1EA7
-1EA8 1EA9
-1EAA 1EAB
-1EAC 1EAD
-1EAE 1EAF
-1EB0 1EB1
-1EB2 1EB3
-1EB4 1EB5
-1EB6 1EB7
-1EB8 1EB9
-1EBA 1EBB
-1EBC 1EBD
-1EBE 1EBF
-1EC0 1EC1
-1EC2 1EC3
-1EC4 1EC5
-1EC6 1EC7
-1EC8 1EC9
-1ECA 1ECB
-1ECC 1ECD
-1ECE 1ECF
-1ED0 1ED1
-1ED2 1ED3
-1ED4 1ED5
-1ED6 1ED7
-1ED8 1ED9
-1EDA 1EDB
-1EDC 1EDD
-1EDE 1EDF
-1EE0 1EE1
-1EE2 1EE3
-1EE4 1EE5
-1EE6 1EE7
-1EE8 1EE9
-1EEA 1EEB
-1EEC 1EED
-1EEE 1EEF
-1EF0 1EF1
-1EF2 1EF3
-1EF4 1EF5
-1EF6 1EF7
-1EF8 1EF9
-1F08 1F00
-1F09 1F01
-1F0A 1F02
-1F0B 1F03
-1F0C 1F04
-1F0D 1F05
-1F0E 1F06
-1F0F 1F07
-1F18 1F10
-1F19 1F11
-1F1A 1F12
-1F1B 1F13
-1F1C 1F14
-1F1D 1F15
-1F28 1F20
-1F29 1F21
-1F2A 1F22
-1F2B 1F23
-1F2C 1F24
-1F2D 1F25
-1F2E 1F26
-1F2F 1F27
-1F38 1F30
-1F39 1F31
-1F3A 1F32
-1F3B 1F33
-1F3C 1F34
-1F3D 1F35
-1F3E 1F36
-1F3F 1F37
-1F48 1F40
-1F49 1F41
-1F4A 1F42
-1F4B 1F43
-1F4C 1F44
-1F4D 1F45
-1F59 1F51
-1F5B 1F53
-1F5D 1F55
-1F5F 1F57
-1F68 1F60
-1F69 1F61
-1F6A 1F62
-1F6B 1F63
-1F6C 1F64
-1F6D 1F65
-1F6E 1F66
-1F6F 1F67
-1FB8 1FB0
-1FB9 1FB1
-1FBA 1F70
-1FBB 1F71
-1FBE 03B9
-1FC8 1F72
-1FC9 1F73
-1FCA 1F74
-1FCB 1F75
-1FD8 1FD0
-1FD9 1FD1
-1FDA 1F76
-1FDB 1F77
-1FE8 1FE0
-1FE9 1FE1
-1FEA 1F7A
-1FEB 1F7B
-1FEC 1FE5
-1FF8 1F78
-1FF9 1F79
-1FFA 1F7C
-1FFB 1F7D
-2126 03C9
-212A 006B
-212B 00E5
-2160 2170
-2161 2171
-2162 2172
-2163 2173
-2164 2174
-2165 2175
-2166 2176
-2167 2177
-2168 2178
-2169 2179
-216A 217A
-216B 217B
-216C 217C
-216D 217D
-216E 217E
-216F 217F
-24B6 24D0
-24B7 24D1
-24B8 24D2
-24B9 24D3
-24BA 24D4
-24BB 24D5
-24BC 24D6
-24BD 24D7
-24BE 24D8
-24BF 24D9
-24C0 24DA
-24C1 24DB
-24C2 24DC
-24C3 24DD
-24C4 24DE
-24C5 24DF
-24C6 24E0
-24C7 24E1
-24C8 24E2
-24C9 24E3
-24CA 24E4
-24CB 24E5
-24CC 24E6
-24CD 24E7
-24CE 24E8
-24CF 24E9
-FF21 FF41
-FF22 FF42
-FF23 FF43
-FF24 FF44
-FF25 FF45
-FF26 FF46
-FF27 FF47
-FF28 FF48
-FF29 FF49
-FF2A FF4A
-FF2B FF4B
-FF2C FF4C
-FF2D FF4D
-FF2E FF4E
-FF2F FF4F
-FF30 FF50
-FF31 FF51
-FF32 FF52
-FF33 FF53
-FF34 FF54
-FF35 FF55
-FF36 FF56
-FF37 FF57
-FF38 FF58
-FF39 FF59
-FF3A FF5A
-10400 10428
-10401 10429
-10402 1042A
-10403 1042B
-10404 1042C
-10405 1042D
-10406 1042E
-10407 1042F
-10408 10430
-10409 10431
-1040A 10432
-1040B 10433
-1040C 10434
-1040D 10435
-1040E 10436
-1040F 10437
-10410 10438
-10411 10439
-10412 1043A
-10413 1043B
-10414 1043C
-10415 1043D
-10416 1043E
-10417 1043F
-10418 10440
-10419 10441
-1041A 10442
-1041B 10443
-1041C 10444
-1041D 10445
-1041E 10446
-1041F 10447
-10420 10448
-10421 10449
-10422 1044A
-10423 1044B
-10424 1044C
-10425 1044D
-END
diff --git a/Master/xemtex/perl/lib/unicore/To/Lower.pl b/Master/xemtex/perl/lib/unicore/To/Lower.pl
deleted file mode 100644
index cbb27214882..00000000000
--- a/Master/xemtex/perl/lib/unicore/To/Lower.pl
+++ /dev/null
@@ -1,760 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-
-%utf8::ToSpecLower =
-(
-'0130' => "\x{0069}\x{0307}",
-'1F88' => "\x{1F80}",
-'1F89' => "\x{1F81}",
-'1F8A' => "\x{1F82}",
-'1F8B' => "\x{1F83}",
-'1F8C' => "\x{1F84}",
-'1F8D' => "\x{1F85}",
-'1F8E' => "\x{1F86}",
-'1F8F' => "\x{1F87}",
-'1F98' => "\x{1F90}",
-'1F99' => "\x{1F91}",
-'1F9A' => "\x{1F92}",
-'1F9B' => "\x{1F93}",
-'1F9C' => "\x{1F94}",
-'1F9D' => "\x{1F95}",
-'1F9E' => "\x{1F96}",
-'1F9F' => "\x{1F97}",
-'1FA8' => "\x{1FA0}",
-'1FA9' => "\x{1FA1}",
-'1FAA' => "\x{1FA2}",
-'1FAB' => "\x{1FA3}",
-'1FAC' => "\x{1FA4}",
-'1FAD' => "\x{1FA5}",
-'1FAE' => "\x{1FA6}",
-'1FAF' => "\x{1FA7}",
-'1FBC' => "\x{1FB3}",
-'1FCC' => "\x{1FC3}",
-'1FFC' => "\x{1FF3}",
-);
-
-return <<'END';
-0041 0061
-0042 0062
-0043 0063
-0044 0064
-0045 0065
-0046 0066
-0047 0067
-0048 0068
-0049 0069
-004A 006A
-004B 006B
-004C 006C
-004D 006D
-004E 006E
-004F 006F
-0050 0070
-0051 0071
-0052 0072
-0053 0073
-0054 0074
-0055 0075
-0056 0076
-0057 0077
-0058 0078
-0059 0079
-005A 007A
-00C0 00E0
-00C1 00E1
-00C2 00E2
-00C3 00E3
-00C4 00E4
-00C5 00E5
-00C6 00E6
-00C7 00E7
-00C8 00E8
-00C9 00E9
-00CA 00EA
-00CB 00EB
-00CC 00EC
-00CD 00ED
-00CE 00EE
-00CF 00EF
-00D0 00F0
-00D1 00F1
-00D2 00F2
-00D3 00F3
-00D4 00F4
-00D5 00F5
-00D6 00F6
-00D8 00F8
-00D9 00F9
-00DA 00FA
-00DB 00FB
-00DC 00FC
-00DD 00FD
-00DE 00FE
-0100 0101
-0102 0103
-0104 0105
-0106 0107
-0108 0109
-010A 010B
-010C 010D
-010E 010F
-0110 0111
-0112 0113
-0114 0115
-0116 0117
-0118 0119
-011A 011B
-011C 011D
-011E 011F
-0120 0121
-0122 0123
-0124 0125
-0126 0127
-0128 0129
-012A 012B
-012C 012D
-012E 012F
-0132 0133
-0134 0135
-0136 0137
-0139 013A
-013B 013C
-013D 013E
-013F 0140
-0141 0142
-0143 0144
-0145 0146
-0147 0148
-014A 014B
-014C 014D
-014E 014F
-0150 0151
-0152 0153
-0154 0155
-0156 0157
-0158 0159
-015A 015B
-015C 015D
-015E 015F
-0160 0161
-0162 0163
-0164 0165
-0166 0167
-0168 0169
-016A 016B
-016C 016D
-016E 016F
-0170 0171
-0172 0173
-0174 0175
-0176 0177
-0178 00FF
-0179 017A
-017B 017C
-017D 017E
-0181 0253
-0182 0183
-0184 0185
-0186 0254
-0187 0188
-0189 0256
-018A 0257
-018B 018C
-018E 01DD
-018F 0259
-0190 025B
-0191 0192
-0193 0260
-0194 0263
-0196 0269
-0197 0268
-0198 0199
-019C 026F
-019D 0272
-019F 0275
-01A0 01A1
-01A2 01A3
-01A4 01A5
-01A6 0280
-01A7 01A8
-01A9 0283
-01AC 01AD
-01AE 0288
-01AF 01B0
-01B1 028A
-01B2 028B
-01B3 01B4
-01B5 01B6
-01B7 0292
-01B8 01B9
-01BC 01BD
-01C4 01C6
-01C5 01C6
-01C7 01C9
-01C8 01C9
-01CA 01CC
-01CB 01CC
-01CD 01CE
-01CF 01D0
-01D1 01D2
-01D3 01D4
-01D5 01D6
-01D7 01D8
-01D9 01DA
-01DB 01DC
-01DE 01DF
-01E0 01E1
-01E2 01E3
-01E4 01E5
-01E6 01E7
-01E8 01E9
-01EA 01EB
-01EC 01ED
-01EE 01EF
-01F1 01F3
-01F2 01F3
-01F4 01F5
-01F6 0195
-01F7 01BF
-01F8 01F9
-01FA 01FB
-01FC 01FD
-01FE 01FF
-0200 0201
-0202 0203
-0204 0205
-0206 0207
-0208 0209
-020A 020B
-020C 020D
-020E 020F
-0210 0211
-0212 0213
-0214 0215
-0216 0217
-0218 0219
-021A 021B
-021C 021D
-021E 021F
-0220 019E
-0222 0223
-0224 0225
-0226 0227
-0228 0229
-022A 022B
-022C 022D
-022E 022F
-0230 0231
-0232 0233
-0386 03AC
-0388 03AD
-0389 03AE
-038A 03AF
-038C 03CC
-038E 03CD
-038F 03CE
-0391 03B1
-0392 03B2
-0393 03B3
-0394 03B4
-0395 03B5
-0396 03B6
-0397 03B7
-0398 03B8
-0399 03B9
-039A 03BA
-039B 03BB
-039C 03BC
-039D 03BD
-039E 03BE
-039F 03BF
-03A0 03C0
-03A1 03C1
-03A3 03C3
-03A4 03C4
-03A5 03C5
-03A6 03C6
-03A7 03C7
-03A8 03C8
-03A9 03C9
-03AA 03CA
-03AB 03CB
-03D8 03D9
-03DA 03DB
-03DC 03DD
-03DE 03DF
-03E0 03E1
-03E2 03E3
-03E4 03E5
-03E6 03E7
-03E8 03E9
-03EA 03EB
-03EC 03ED
-03EE 03EF
-03F4 03B8
-0400 0450
-0401 0451
-0402 0452
-0403 0453
-0404 0454
-0405 0455
-0406 0456
-0407 0457
-0408 0458
-0409 0459
-040A 045A
-040B 045B
-040C 045C
-040D 045D
-040E 045E
-040F 045F
-0410 0430
-0411 0431
-0412 0432
-0413 0433
-0414 0434
-0415 0435
-0416 0436
-0417 0437
-0418 0438
-0419 0439
-041A 043A
-041B 043B
-041C 043C
-041D 043D
-041E 043E
-041F 043F
-0420 0440
-0421 0441
-0422 0442
-0423 0443
-0424 0444
-0425 0445
-0426 0446
-0427 0447
-0428 0448
-0429 0449
-042A 044A
-042B 044B
-042C 044C
-042D 044D
-042E 044E
-042F 044F
-0460 0461
-0462 0463
-0464 0465
-0466 0467
-0468 0469
-046A 046B
-046C 046D
-046E 046F
-0470 0471
-0472 0473
-0474 0475
-0476 0477
-0478 0479
-047A 047B
-047C 047D
-047E 047F
-0480 0481
-048A 048B
-048C 048D
-048E 048F
-0490 0491
-0492 0493
-0494 0495
-0496 0497
-0498 0499
-049A 049B
-049C 049D
-049E 049F
-04A0 04A1
-04A2 04A3
-04A4 04A5
-04A6 04A7
-04A8 04A9
-04AA 04AB
-04AC 04AD
-04AE 04AF
-04B0 04B1
-04B2 04B3
-04B4 04B5
-04B6 04B7
-04B8 04B9
-04BA 04BB
-04BC 04BD
-04BE 04BF
-04C1 04C2
-04C3 04C4
-04C5 04C6
-04C7 04C8
-04C9 04CA
-04CB 04CC
-04CD 04CE
-04D0 04D1
-04D2 04D3
-04D4 04D5
-04D6 04D7
-04D8 04D9
-04DA 04DB
-04DC 04DD
-04DE 04DF
-04E0 04E1
-04E2 04E3
-04E4 04E5
-04E6 04E7
-04E8 04E9
-04EA 04EB
-04EC 04ED
-04EE 04EF
-04F0 04F1
-04F2 04F3
-04F4 04F5
-04F8 04F9
-0500 0501
-0502 0503
-0504 0505
-0506 0507
-0508 0509
-050A 050B
-050C 050D
-050E 050F
-0531 0561
-0532 0562
-0533 0563
-0534 0564
-0535 0565
-0536 0566
-0537 0567
-0538 0568
-0539 0569
-053A 056A
-053B 056B
-053C 056C
-053D 056D
-053E 056E
-053F 056F
-0540 0570
-0541 0571
-0542 0572
-0543 0573
-0544 0574
-0545 0575
-0546 0576
-0547 0577
-0548 0578
-0549 0579
-054A 057A
-054B 057B
-054C 057C
-054D 057D
-054E 057E
-054F 057F
-0550 0580
-0551 0581
-0552 0582
-0553 0583
-0554 0584
-0555 0585
-0556 0586
-1E00 1E01
-1E02 1E03
-1E04 1E05
-1E06 1E07
-1E08 1E09
-1E0A 1E0B
-1E0C 1E0D
-1E0E 1E0F
-1E10 1E11
-1E12 1E13
-1E14 1E15
-1E16 1E17
-1E18 1E19
-1E1A 1E1B
-1E1C 1E1D
-1E1E 1E1F
-1E20 1E21
-1E22 1E23
-1E24 1E25
-1E26 1E27
-1E28 1E29
-1E2A 1E2B
-1E2C 1E2D
-1E2E 1E2F
-1E30 1E31
-1E32 1E33
-1E34 1E35
-1E36 1E37
-1E38 1E39
-1E3A 1E3B
-1E3C 1E3D
-1E3E 1E3F
-1E40 1E41
-1E42 1E43
-1E44 1E45
-1E46 1E47
-1E48 1E49
-1E4A 1E4B
-1E4C 1E4D
-1E4E 1E4F
-1E50 1E51
-1E52 1E53
-1E54 1E55
-1E56 1E57
-1E58 1E59
-1E5A 1E5B
-1E5C 1E5D
-1E5E 1E5F
-1E60 1E61
-1E62 1E63
-1E64 1E65
-1E66 1E67
-1E68 1E69
-1E6A 1E6B
-1E6C 1E6D
-1E6E 1E6F
-1E70 1E71
-1E72 1E73
-1E74 1E75
-1E76 1E77
-1E78 1E79
-1E7A 1E7B
-1E7C 1E7D
-1E7E 1E7F
-1E80 1E81
-1E82 1E83
-1E84 1E85
-1E86 1E87
-1E88 1E89
-1E8A 1E8B
-1E8C 1E8D
-1E8E 1E8F
-1E90 1E91
-1E92 1E93
-1E94 1E95
-1EA0 1EA1
-1EA2 1EA3
-1EA4 1EA5
-1EA6 1EA7
-1EA8 1EA9
-1EAA 1EAB
-1EAC 1EAD
-1EAE 1EAF
-1EB0 1EB1
-1EB2 1EB3
-1EB4 1EB5
-1EB6 1EB7
-1EB8 1EB9
-1EBA 1EBB
-1EBC 1EBD
-1EBE 1EBF
-1EC0 1EC1
-1EC2 1EC3
-1EC4 1EC5
-1EC6 1EC7
-1EC8 1EC9
-1ECA 1ECB
-1ECC 1ECD
-1ECE 1ECF
-1ED0 1ED1
-1ED2 1ED3
-1ED4 1ED5
-1ED6 1ED7
-1ED8 1ED9
-1EDA 1EDB
-1EDC 1EDD
-1EDE 1EDF
-1EE0 1EE1
-1EE2 1EE3
-1EE4 1EE5
-1EE6 1EE7
-1EE8 1EE9
-1EEA 1EEB
-1EEC 1EED
-1EEE 1EEF
-1EF0 1EF1
-1EF2 1EF3
-1EF4 1EF5
-1EF6 1EF7
-1EF8 1EF9
-1F08 1F00
-1F09 1F01
-1F0A 1F02
-1F0B 1F03
-1F0C 1F04
-1F0D 1F05
-1F0E 1F06
-1F0F 1F07
-1F18 1F10
-1F19 1F11
-1F1A 1F12
-1F1B 1F13
-1F1C 1F14
-1F1D 1F15
-1F28 1F20
-1F29 1F21
-1F2A 1F22
-1F2B 1F23
-1F2C 1F24
-1F2D 1F25
-1F2E 1F26
-1F2F 1F27
-1F38 1F30
-1F39 1F31
-1F3A 1F32
-1F3B 1F33
-1F3C 1F34
-1F3D 1F35
-1F3E 1F36
-1F3F 1F37
-1F48 1F40
-1F49 1F41
-1F4A 1F42
-1F4B 1F43
-1F4C 1F44
-1F4D 1F45
-1F59 1F51
-1F5B 1F53
-1F5D 1F55
-1F5F 1F57
-1F68 1F60
-1F69 1F61
-1F6A 1F62
-1F6B 1F63
-1F6C 1F64
-1F6D 1F65
-1F6E 1F66
-1F6F 1F67
-1FB8 1FB0
-1FB9 1FB1
-1FBA 1F70
-1FBB 1F71
-1FC8 1F72
-1FC9 1F73
-1FCA 1F74
-1FCB 1F75
-1FD8 1FD0
-1FD9 1FD1
-1FDA 1F76
-1FDB 1F77
-1FE8 1FE0
-1FE9 1FE1
-1FEA 1F7A
-1FEB 1F7B
-1FEC 1FE5
-1FF8 1F78
-1FF9 1F79
-1FFA 1F7C
-1FFB 1F7D
-2126 03C9
-212A 006B
-212B 00E5
-2160 2170
-2161 2171
-2162 2172
-2163 2173
-2164 2174
-2165 2175
-2166 2176
-2167 2177
-2168 2178
-2169 2179
-216A 217A
-216B 217B
-216C 217C
-216D 217D
-216E 217E
-216F 217F
-24B6 24D0
-24B7 24D1
-24B8 24D2
-24B9 24D3
-24BA 24D4
-24BB 24D5
-24BC 24D6
-24BD 24D7
-24BE 24D8
-24BF 24D9
-24C0 24DA
-24C1 24DB
-24C2 24DC
-24C3 24DD
-24C4 24DE
-24C5 24DF
-24C6 24E0
-24C7 24E1
-24C8 24E2
-24C9 24E3
-24CA 24E4
-24CB 24E5
-24CC 24E6
-24CD 24E7
-24CE 24E8
-24CF 24E9
-FF21 FF41
-FF22 FF42
-FF23 FF43
-FF24 FF44
-FF25 FF45
-FF26 FF46
-FF27 FF47
-FF28 FF48
-FF29 FF49
-FF2A FF4A
-FF2B FF4B
-FF2C FF4C
-FF2D FF4D
-FF2E FF4E
-FF2F FF4F
-FF30 FF50
-FF31 FF51
-FF32 FF52
-FF33 FF53
-FF34 FF54
-FF35 FF55
-FF36 FF56
-FF37 FF57
-FF38 FF58
-FF39 FF59
-FF3A FF5A
-10400 10428
-10401 10429
-10402 1042A
-10403 1042B
-10404 1042C
-10405 1042D
-10406 1042E
-10407 1042F
-10408 10430
-10409 10431
-1040A 10432
-1040B 10433
-1040C 10434
-1040D 10435
-1040E 10436
-1040F 10437
-10410 10438
-10411 10439
-10412 1043A
-10413 1043B
-10414 1043C
-10415 1043D
-10416 1043E
-10417 1043F
-10418 10440
-10419 10441
-1041A 10442
-1041B 10443
-1041C 10444
-1041D 10445
-1041E 10446
-1041F 10447
-10420 10448
-10421 10449
-10422 1044A
-10423 1044B
-10424 1044C
-10425 1044D
-END
diff --git a/Master/xemtex/perl/lib/unicore/To/Title.pl b/Master/xemtex/perl/lib/unicore/To/Title.pl
deleted file mode 100644
index 1cd9dc540f3..00000000000
--- a/Master/xemtex/perl/lib/unicore/To/Title.pl
+++ /dev/null
@@ -1,818 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-
-%utf8::ToSpecTitle =
-(
-'00DF' => "\x{0053}\x{0073}",
-'0149' => "\x{02BC}\x{004E}",
-'01F0' => "\x{004A}\x{030C}",
-'0390' => "\x{0399}\x{0308}\x{0301}",
-'03B0' => "\x{03A5}\x{0308}\x{0301}",
-'0587' => "\x{0535}\x{0582}",
-'1E96' => "\x{0048}\x{0331}",
-'1E97' => "\x{0054}\x{0308}",
-'1E98' => "\x{0057}\x{030A}",
-'1E99' => "\x{0059}\x{030A}",
-'1E9A' => "\x{0041}\x{02BE}",
-'1F50' => "\x{03A5}\x{0313}",
-'1F52' => "\x{03A5}\x{0313}\x{0300}",
-'1F54' => "\x{03A5}\x{0313}\x{0301}",
-'1F56' => "\x{03A5}\x{0313}\x{0342}",
-'1F80' => "\x{1F88}",
-'1F81' => "\x{1F89}",
-'1F82' => "\x{1F8A}",
-'1F83' => "\x{1F8B}",
-'1F84' => "\x{1F8C}",
-'1F85' => "\x{1F8D}",
-'1F86' => "\x{1F8E}",
-'1F87' => "\x{1F8F}",
-'1F90' => "\x{1F98}",
-'1F91' => "\x{1F99}",
-'1F92' => "\x{1F9A}",
-'1F93' => "\x{1F9B}",
-'1F94' => "\x{1F9C}",
-'1F95' => "\x{1F9D}",
-'1F96' => "\x{1F9E}",
-'1F97' => "\x{1F9F}",
-'1FA0' => "\x{1FA8}",
-'1FA1' => "\x{1FA9}",
-'1FA2' => "\x{1FAA}",
-'1FA3' => "\x{1FAB}",
-'1FA4' => "\x{1FAC}",
-'1FA5' => "\x{1FAD}",
-'1FA6' => "\x{1FAE}",
-'1FA7' => "\x{1FAF}",
-'1FB2' => "\x{1FBA}\x{0345}",
-'1FB3' => "\x{1FBC}",
-'1FB4' => "\x{0386}\x{0345}",
-'1FB6' => "\x{0391}\x{0342}",
-'1FB7' => "\x{0391}\x{0342}\x{0345}",
-'1FC2' => "\x{1FCA}\x{0345}",
-'1FC3' => "\x{1FCC}",
-'1FC4' => "\x{0389}\x{0345}",
-'1FC6' => "\x{0397}\x{0342}",
-'1FC7' => "\x{0397}\x{0342}\x{0345}",
-'1FD2' => "\x{0399}\x{0308}\x{0300}",
-'1FD3' => "\x{0399}\x{0308}\x{0301}",
-'1FD6' => "\x{0399}\x{0342}",
-'1FD7' => "\x{0399}\x{0308}\x{0342}",
-'1FE2' => "\x{03A5}\x{0308}\x{0300}",
-'1FE3' => "\x{03A5}\x{0308}\x{0301}",
-'1FE4' => "\x{03A1}\x{0313}",
-'1FE6' => "\x{03A5}\x{0342}",
-'1FE7' => "\x{03A5}\x{0308}\x{0342}",
-'1FF2' => "\x{1FFA}\x{0345}",
-'1FF3' => "\x{1FFC}",
-'1FF4' => "\x{038F}\x{0345}",
-'1FF6' => "\x{03A9}\x{0342}",
-'1FF7' => "\x{03A9}\x{0342}\x{0345}",
-'FB00' => "\x{0046}\x{0066}",
-'FB01' => "\x{0046}\x{0069}",
-'FB02' => "\x{0046}\x{006C}",
-'FB03' => "\x{0046}\x{0066}\x{0069}",
-'FB04' => "\x{0046}\x{0066}\x{006C}",
-'FB05' => "\x{0053}\x{0074}",
-'FB06' => "\x{0053}\x{0074}",
-'FB13' => "\x{0544}\x{0576}",
-'FB14' => "\x{0544}\x{0565}",
-'FB15' => "\x{0544}\x{056B}",
-'FB16' => "\x{054E}\x{0576}",
-'FB17' => "\x{0544}\x{056D}",
-);
-
-return <<'END';
-0061 0041
-0062 0042
-0063 0043
-0064 0044
-0065 0045
-0066 0046
-0067 0047
-0068 0048
-0069 0049
-006A 004A
-006B 004B
-006C 004C
-006D 004D
-006E 004E
-006F 004F
-0070 0050
-0071 0051
-0072 0052
-0073 0053
-0074 0054
-0075 0055
-0076 0056
-0077 0057
-0078 0058
-0079 0059
-007A 005A
-00B5 039C
-00E0 00C0
-00E1 00C1
-00E2 00C2
-00E3 00C3
-00E4 00C4
-00E5 00C5
-00E6 00C6
-00E7 00C7
-00E8 00C8
-00E9 00C9
-00EA 00CA
-00EB 00CB
-00EC 00CC
-00ED 00CD
-00EE 00CE
-00EF 00CF
-00F0 00D0
-00F1 00D1
-00F2 00D2
-00F3 00D3
-00F4 00D4
-00F5 00D5
-00F6 00D6
-00F8 00D8
-00F9 00D9
-00FA 00DA
-00FB 00DB
-00FC 00DC
-00FD 00DD
-00FE 00DE
-00FF 0178
-0101 0100
-0103 0102
-0105 0104
-0107 0106
-0109 0108
-010B 010A
-010D 010C
-010F 010E
-0111 0110
-0113 0112
-0115 0114
-0117 0116
-0119 0118
-011B 011A
-011D 011C
-011F 011E
-0121 0120
-0123 0122
-0125 0124
-0127 0126
-0129 0128
-012B 012A
-012D 012C
-012F 012E
-0131 0049
-0133 0132
-0135 0134
-0137 0136
-013A 0139
-013C 013B
-013E 013D
-0140 013F
-0142 0141
-0144 0143
-0146 0145
-0148 0147
-014B 014A
-014D 014C
-014F 014E
-0151 0150
-0153 0152
-0155 0154
-0157 0156
-0159 0158
-015B 015A
-015D 015C
-015F 015E
-0161 0160
-0163 0162
-0165 0164
-0167 0166
-0169 0168
-016B 016A
-016D 016C
-016F 016E
-0171 0170
-0173 0172
-0175 0174
-0177 0176
-017A 0179
-017C 017B
-017E 017D
-017F 0053
-0183 0182
-0185 0184
-0188 0187
-018C 018B
-0192 0191
-0195 01F6
-0199 0198
-019E 0220
-01A1 01A0
-01A3 01A2
-01A5 01A4
-01A8 01A7
-01AD 01AC
-01B0 01AF
-01B4 01B3
-01B6 01B5
-01B9 01B8
-01BD 01BC
-01BF 01F7
-01C4 01C5
-01C6 01C5
-01C7 01C8
-01C9 01C8
-01CA 01CB
-01CC 01CB
-01CE 01CD
-01D0 01CF
-01D2 01D1
-01D4 01D3
-01D6 01D5
-01D8 01D7
-01DA 01D9
-01DC 01DB
-01DD 018E
-01DF 01DE
-01E1 01E0
-01E3 01E2
-01E5 01E4
-01E7 01E6
-01E9 01E8
-01EB 01EA
-01ED 01EC
-01EF 01EE
-01F1 01F2
-01F3 01F2
-01F5 01F4
-01F9 01F8
-01FB 01FA
-01FD 01FC
-01FF 01FE
-0201 0200
-0203 0202
-0205 0204
-0207 0206
-0209 0208
-020B 020A
-020D 020C
-020F 020E
-0211 0210
-0213 0212
-0215 0214
-0217 0216
-0219 0218
-021B 021A
-021D 021C
-021F 021E
-0223 0222
-0225 0224
-0227 0226
-0229 0228
-022B 022A
-022D 022C
-022F 022E
-0231 0230
-0233 0232
-0253 0181
-0254 0186
-0256 0189
-0257 018A
-0259 018F
-025B 0190
-0260 0193
-0263 0194
-0268 0197
-0269 0196
-026F 019C
-0272 019D
-0275 019F
-0280 01A6
-0283 01A9
-0288 01AE
-028A 01B1
-028B 01B2
-0292 01B7
-0345 0399
-03AC 0386
-03AD 0388
-03AE 0389
-03AF 038A
-03B1 0391
-03B2 0392
-03B3 0393
-03B4 0394
-03B5 0395
-03B6 0396
-03B7 0397
-03B8 0398
-03B9 0399
-03BA 039A
-03BB 039B
-03BC 039C
-03BD 039D
-03BE 039E
-03BF 039F
-03C0 03A0
-03C1 03A1
-03C2 03A3
-03C3 03A3
-03C4 03A4
-03C5 03A5
-03C6 03A6
-03C7 03A7
-03C8 03A8
-03C9 03A9
-03CA 03AA
-03CB 03AB
-03CC 038C
-03CD 038E
-03CE 038F
-03D0 0392
-03D1 0398
-03D5 03A6
-03D6 03A0
-03D9 03D8
-03DB 03DA
-03DD 03DC
-03DF 03DE
-03E1 03E0
-03E3 03E2
-03E5 03E4
-03E7 03E6
-03E9 03E8
-03EB 03EA
-03ED 03EC
-03EF 03EE
-03F0 039A
-03F1 03A1
-03F2 03A3
-03F5 0395
-0430 0410
-0431 0411
-0432 0412
-0433 0413
-0434 0414
-0435 0415
-0436 0416
-0437 0417
-0438 0418
-0439 0419
-043A 041A
-043B 041B
-043C 041C
-043D 041D
-043E 041E
-043F 041F
-0440 0420
-0441 0421
-0442 0422
-0443 0423
-0444 0424
-0445 0425
-0446 0426
-0447 0427
-0448 0428
-0449 0429
-044A 042A
-044B 042B
-044C 042C
-044D 042D
-044E 042E
-044F 042F
-0450 0400
-0451 0401
-0452 0402
-0453 0403
-0454 0404
-0455 0405
-0456 0406
-0457 0407
-0458 0408
-0459 0409
-045A 040A
-045B 040B
-045C 040C
-045D 040D
-045E 040E
-045F 040F
-0461 0460
-0463 0462
-0465 0464
-0467 0466
-0469 0468
-046B 046A
-046D 046C
-046F 046E
-0471 0470
-0473 0472
-0475 0474
-0477 0476
-0479 0478
-047B 047A
-047D 047C
-047F 047E
-0481 0480
-048B 048A
-048D 048C
-048F 048E
-0491 0490
-0493 0492
-0495 0494
-0497 0496
-0499 0498
-049B 049A
-049D 049C
-049F 049E
-04A1 04A0
-04A3 04A2
-04A5 04A4
-04A7 04A6
-04A9 04A8
-04AB 04AA
-04AD 04AC
-04AF 04AE
-04B1 04B0
-04B3 04B2
-04B5 04B4
-04B7 04B6
-04B9 04B8
-04BB 04BA
-04BD 04BC
-04BF 04BE
-04C2 04C1
-04C4 04C3
-04C6 04C5
-04C8 04C7
-04CA 04C9
-04CC 04CB
-04CE 04CD
-04D1 04D0
-04D3 04D2
-04D5 04D4
-04D7 04D6
-04D9 04D8
-04DB 04DA
-04DD 04DC
-04DF 04DE
-04E1 04E0
-04E3 04E2
-04E5 04E4
-04E7 04E6
-04E9 04E8
-04EB 04EA
-04ED 04EC
-04EF 04EE
-04F1 04F0
-04F3 04F2
-04F5 04F4
-04F9 04F8
-0501 0500
-0503 0502
-0505 0504
-0507 0506
-0509 0508
-050B 050A
-050D 050C
-050F 050E
-0561 0531
-0562 0532
-0563 0533
-0564 0534
-0565 0535
-0566 0536
-0567 0537
-0568 0538
-0569 0539
-056A 053A
-056B 053B
-056C 053C
-056D 053D
-056E 053E
-056F 053F
-0570 0540
-0571 0541
-0572 0542
-0573 0543
-0574 0544
-0575 0545
-0576 0546
-0577 0547
-0578 0548
-0579 0549
-057A 054A
-057B 054B
-057C 054C
-057D 054D
-057E 054E
-057F 054F
-0580 0550
-0581 0551
-0582 0552
-0583 0553
-0584 0554
-0585 0555
-0586 0556
-1E01 1E00
-1E03 1E02
-1E05 1E04
-1E07 1E06
-1E09 1E08
-1E0B 1E0A
-1E0D 1E0C
-1E0F 1E0E
-1E11 1E10
-1E13 1E12
-1E15 1E14
-1E17 1E16
-1E19 1E18
-1E1B 1E1A
-1E1D 1E1C
-1E1F 1E1E
-1E21 1E20
-1E23 1E22
-1E25 1E24
-1E27 1E26
-1E29 1E28
-1E2B 1E2A
-1E2D 1E2C
-1E2F 1E2E
-1E31 1E30
-1E33 1E32
-1E35 1E34
-1E37 1E36
-1E39 1E38
-1E3B 1E3A
-1E3D 1E3C
-1E3F 1E3E
-1E41 1E40
-1E43 1E42
-1E45 1E44
-1E47 1E46
-1E49 1E48
-1E4B 1E4A
-1E4D 1E4C
-1E4F 1E4E
-1E51 1E50
-1E53 1E52
-1E55 1E54
-1E57 1E56
-1E59 1E58
-1E5B 1E5A
-1E5D 1E5C
-1E5F 1E5E
-1E61 1E60
-1E63 1E62
-1E65 1E64
-1E67 1E66
-1E69 1E68
-1E6B 1E6A
-1E6D 1E6C
-1E6F 1E6E
-1E71 1E70
-1E73 1E72
-1E75 1E74
-1E77 1E76
-1E79 1E78
-1E7B 1E7A
-1E7D 1E7C
-1E7F 1E7E
-1E81 1E80
-1E83 1E82
-1E85 1E84
-1E87 1E86
-1E89 1E88
-1E8B 1E8A
-1E8D 1E8C
-1E8F 1E8E
-1E91 1E90
-1E93 1E92
-1E95 1E94
-1E9B 1E60
-1EA1 1EA0
-1EA3 1EA2
-1EA5 1EA4
-1EA7 1EA6
-1EA9 1EA8
-1EAB 1EAA
-1EAD 1EAC
-1EAF 1EAE
-1EB1 1EB0
-1EB3 1EB2
-1EB5 1EB4
-1EB7 1EB6
-1EB9 1EB8
-1EBB 1EBA
-1EBD 1EBC
-1EBF 1EBE
-1EC1 1EC0
-1EC3 1EC2
-1EC5 1EC4
-1EC7 1EC6
-1EC9 1EC8
-1ECB 1ECA
-1ECD 1ECC
-1ECF 1ECE
-1ED1 1ED0
-1ED3 1ED2
-1ED5 1ED4
-1ED7 1ED6
-1ED9 1ED8
-1EDB 1EDA
-1EDD 1EDC
-1EDF 1EDE
-1EE1 1EE0
-1EE3 1EE2
-1EE5 1EE4
-1EE7 1EE6
-1EE9 1EE8
-1EEB 1EEA
-1EED 1EEC
-1EEF 1EEE
-1EF1 1EF0
-1EF3 1EF2
-1EF5 1EF4
-1EF7 1EF6
-1EF9 1EF8
-1F00 1F08
-1F01 1F09
-1F02 1F0A
-1F03 1F0B
-1F04 1F0C
-1F05 1F0D
-1F06 1F0E
-1F07 1F0F
-1F10 1F18
-1F11 1F19
-1F12 1F1A
-1F13 1F1B
-1F14 1F1C
-1F15 1F1D
-1F20 1F28
-1F21 1F29
-1F22 1F2A
-1F23 1F2B
-1F24 1F2C
-1F25 1F2D
-1F26 1F2E
-1F27 1F2F
-1F30 1F38
-1F31 1F39
-1F32 1F3A
-1F33 1F3B
-1F34 1F3C
-1F35 1F3D
-1F36 1F3E
-1F37 1F3F
-1F40 1F48
-1F41 1F49
-1F42 1F4A
-1F43 1F4B
-1F44 1F4C
-1F45 1F4D
-1F51 1F59
-1F53 1F5B
-1F55 1F5D
-1F57 1F5F
-1F60 1F68
-1F61 1F69
-1F62 1F6A
-1F63 1F6B
-1F64 1F6C
-1F65 1F6D
-1F66 1F6E
-1F67 1F6F
-1F70 1FBA
-1F71 1FBB
-1F72 1FC8
-1F73 1FC9
-1F74 1FCA
-1F75 1FCB
-1F76 1FDA
-1F77 1FDB
-1F78 1FF8
-1F79 1FF9
-1F7A 1FEA
-1F7B 1FEB
-1F7C 1FFA
-1F7D 1FFB
-1FB0 1FB8
-1FB1 1FB9
-1FBE 0399
-1FD0 1FD8
-1FD1 1FD9
-1FE0 1FE8
-1FE1 1FE9
-1FE5 1FEC
-2170 2160
-2171 2161
-2172 2162
-2173 2163
-2174 2164
-2175 2165
-2176 2166
-2177 2167
-2178 2168
-2179 2169
-217A 216A
-217B 216B
-217C 216C
-217D 216D
-217E 216E
-217F 216F
-24D0 24B6
-24D1 24B7
-24D2 24B8
-24D3 24B9
-24D4 24BA
-24D5 24BB
-24D6 24BC
-24D7 24BD
-24D8 24BE
-24D9 24BF
-24DA 24C0
-24DB 24C1
-24DC 24C2
-24DD 24C3
-24DE 24C4
-24DF 24C5
-24E0 24C6
-24E1 24C7
-24E2 24C8
-24E3 24C9
-24E4 24CA
-24E5 24CB
-24E6 24CC
-24E7 24CD
-24E8 24CE
-24E9 24CF
-FF41 FF21
-FF42 FF22
-FF43 FF23
-FF44 FF24
-FF45 FF25
-FF46 FF26
-FF47 FF27
-FF48 FF28
-FF49 FF29
-FF4A FF2A
-FF4B FF2B
-FF4C FF2C
-FF4D FF2D
-FF4E FF2E
-FF4F FF2F
-FF50 FF30
-FF51 FF31
-FF52 FF32
-FF53 FF33
-FF54 FF34
-FF55 FF35
-FF56 FF36
-FF57 FF37
-FF58 FF38
-FF59 FF39
-FF5A FF3A
-10428 10400
-10429 10401
-1042A 10402
-1042B 10403
-1042C 10404
-1042D 10405
-1042E 10406
-1042F 10407
-10430 10408
-10431 10409
-10432 1040A
-10433 1040B
-10434 1040C
-10435 1040D
-10436 1040E
-10437 1040F
-10438 10410
-10439 10411
-1043A 10412
-1043B 10413
-1043C 10414
-1043D 10415
-1043E 10416
-1043F 10417
-10440 10418
-10441 10419
-10442 1041A
-10443 1041B
-10444 1041C
-10445 1041D
-10446 1041E
-10447 1041F
-10448 10420
-10449 10421
-1044A 10422
-1044B 10423
-1044C 10424
-1044D 10425
-END
diff --git a/Master/xemtex/perl/lib/unicore/To/Upper.pl b/Master/xemtex/perl/lib/unicore/To/Upper.pl
deleted file mode 100644
index 0d1596f72d6..00000000000
--- a/Master/xemtex/perl/lib/unicore/To/Upper.pl
+++ /dev/null
@@ -1,845 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-
-%utf8::ToSpecUpper =
-(
-'00DF' => "\x{0053}\x{0053}",
-'0149' => "\x{02BC}\x{004E}",
-'01F0' => "\x{004A}\x{030C}",
-'0390' => "\x{0399}\x{0308}\x{0301}",
-'03B0' => "\x{03A5}\x{0308}\x{0301}",
-'0587' => "\x{0535}\x{0552}",
-'1E96' => "\x{0048}\x{0331}",
-'1E97' => "\x{0054}\x{0308}",
-'1E98' => "\x{0057}\x{030A}",
-'1E99' => "\x{0059}\x{030A}",
-'1E9A' => "\x{0041}\x{02BE}",
-'1F50' => "\x{03A5}\x{0313}",
-'1F52' => "\x{03A5}\x{0313}\x{0300}",
-'1F54' => "\x{03A5}\x{0313}\x{0301}",
-'1F56' => "\x{03A5}\x{0313}\x{0342}",
-'1F80' => "\x{1F08}\x{0399}",
-'1F81' => "\x{1F09}\x{0399}",
-'1F82' => "\x{1F0A}\x{0399}",
-'1F83' => "\x{1F0B}\x{0399}",
-'1F84' => "\x{1F0C}\x{0399}",
-'1F85' => "\x{1F0D}\x{0399}",
-'1F86' => "\x{1F0E}\x{0399}",
-'1F87' => "\x{1F0F}\x{0399}",
-'1F88' => "\x{1F08}\x{0399}",
-'1F89' => "\x{1F09}\x{0399}",
-'1F8A' => "\x{1F0A}\x{0399}",
-'1F8B' => "\x{1F0B}\x{0399}",
-'1F8C' => "\x{1F0C}\x{0399}",
-'1F8D' => "\x{1F0D}\x{0399}",
-'1F8E' => "\x{1F0E}\x{0399}",
-'1F8F' => "\x{1F0F}\x{0399}",
-'1F90' => "\x{1F28}\x{0399}",
-'1F91' => "\x{1F29}\x{0399}",
-'1F92' => "\x{1F2A}\x{0399}",
-'1F93' => "\x{1F2B}\x{0399}",
-'1F94' => "\x{1F2C}\x{0399}",
-'1F95' => "\x{1F2D}\x{0399}",
-'1F96' => "\x{1F2E}\x{0399}",
-'1F97' => "\x{1F2F}\x{0399}",
-'1F98' => "\x{1F28}\x{0399}",
-'1F99' => "\x{1F29}\x{0399}",
-'1F9A' => "\x{1F2A}\x{0399}",
-'1F9B' => "\x{1F2B}\x{0399}",
-'1F9C' => "\x{1F2C}\x{0399}",
-'1F9D' => "\x{1F2D}\x{0399}",
-'1F9E' => "\x{1F2E}\x{0399}",
-'1F9F' => "\x{1F2F}\x{0399}",
-'1FA0' => "\x{1F68}\x{0399}",
-'1FA1' => "\x{1F69}\x{0399}",
-'1FA2' => "\x{1F6A}\x{0399}",
-'1FA3' => "\x{1F6B}\x{0399}",
-'1FA4' => "\x{1F6C}\x{0399}",
-'1FA5' => "\x{1F6D}\x{0399}",
-'1FA6' => "\x{1F6E}\x{0399}",
-'1FA7' => "\x{1F6F}\x{0399}",
-'1FA8' => "\x{1F68}\x{0399}",
-'1FA9' => "\x{1F69}\x{0399}",
-'1FAA' => "\x{1F6A}\x{0399}",
-'1FAB' => "\x{1F6B}\x{0399}",
-'1FAC' => "\x{1F6C}\x{0399}",
-'1FAD' => "\x{1F6D}\x{0399}",
-'1FAE' => "\x{1F6E}\x{0399}",
-'1FAF' => "\x{1F6F}\x{0399}",
-'1FB2' => "\x{1FBA}\x{0399}",
-'1FB3' => "\x{0391}\x{0399}",
-'1FB4' => "\x{0386}\x{0399}",
-'1FB6' => "\x{0391}\x{0342}",
-'1FB7' => "\x{0391}\x{0342}\x{0399}",
-'1FBC' => "\x{0391}\x{0399}",
-'1FC2' => "\x{1FCA}\x{0399}",
-'1FC3' => "\x{0397}\x{0399}",
-'1FC4' => "\x{0389}\x{0399}",
-'1FC6' => "\x{0397}\x{0342}",
-'1FC7' => "\x{0397}\x{0342}\x{0399}",
-'1FCC' => "\x{0397}\x{0399}",
-'1FD2' => "\x{0399}\x{0308}\x{0300}",
-'1FD3' => "\x{0399}\x{0308}\x{0301}",
-'1FD6' => "\x{0399}\x{0342}",
-'1FD7' => "\x{0399}\x{0308}\x{0342}",
-'1FE2' => "\x{03A5}\x{0308}\x{0300}",
-'1FE3' => "\x{03A5}\x{0308}\x{0301}",
-'1FE4' => "\x{03A1}\x{0313}",
-'1FE6' => "\x{03A5}\x{0342}",
-'1FE7' => "\x{03A5}\x{0308}\x{0342}",
-'1FF2' => "\x{1FFA}\x{0399}",
-'1FF3' => "\x{03A9}\x{0399}",
-'1FF4' => "\x{038F}\x{0399}",
-'1FF6' => "\x{03A9}\x{0342}",
-'1FF7' => "\x{03A9}\x{0342}\x{0399}",
-'1FFC' => "\x{03A9}\x{0399}",
-'FB00' => "\x{0046}\x{0046}",
-'FB01' => "\x{0046}\x{0049}",
-'FB02' => "\x{0046}\x{004C}",
-'FB03' => "\x{0046}\x{0046}\x{0049}",
-'FB04' => "\x{0046}\x{0046}\x{004C}",
-'FB05' => "\x{0053}\x{0054}",
-'FB06' => "\x{0053}\x{0054}",
-'FB13' => "\x{0544}\x{0546}",
-'FB14' => "\x{0544}\x{0535}",
-'FB15' => "\x{0544}\x{053B}",
-'FB16' => "\x{054E}\x{0546}",
-'FB17' => "\x{0544}\x{053D}",
-);
-
-return <<'END';
-0061 0041
-0062 0042
-0063 0043
-0064 0044
-0065 0045
-0066 0046
-0067 0047
-0068 0048
-0069 0049
-006A 004A
-006B 004B
-006C 004C
-006D 004D
-006E 004E
-006F 004F
-0070 0050
-0071 0051
-0072 0052
-0073 0053
-0074 0054
-0075 0055
-0076 0056
-0077 0057
-0078 0058
-0079 0059
-007A 005A
-00B5 039C
-00E0 00C0
-00E1 00C1
-00E2 00C2
-00E3 00C3
-00E4 00C4
-00E5 00C5
-00E6 00C6
-00E7 00C7
-00E8 00C8
-00E9 00C9
-00EA 00CA
-00EB 00CB
-00EC 00CC
-00ED 00CD
-00EE 00CE
-00EF 00CF
-00F0 00D0
-00F1 00D1
-00F2 00D2
-00F3 00D3
-00F4 00D4
-00F5 00D5
-00F6 00D6
-00F8 00D8
-00F9 00D9
-00FA 00DA
-00FB 00DB
-00FC 00DC
-00FD 00DD
-00FE 00DE
-00FF 0178
-0101 0100
-0103 0102
-0105 0104
-0107 0106
-0109 0108
-010B 010A
-010D 010C
-010F 010E
-0111 0110
-0113 0112
-0115 0114
-0117 0116
-0119 0118
-011B 011A
-011D 011C
-011F 011E
-0121 0120
-0123 0122
-0125 0124
-0127 0126
-0129 0128
-012B 012A
-012D 012C
-012F 012E
-0131 0049
-0133 0132
-0135 0134
-0137 0136
-013A 0139
-013C 013B
-013E 013D
-0140 013F
-0142 0141
-0144 0143
-0146 0145
-0148 0147
-014B 014A
-014D 014C
-014F 014E
-0151 0150
-0153 0152
-0155 0154
-0157 0156
-0159 0158
-015B 015A
-015D 015C
-015F 015E
-0161 0160
-0163 0162
-0165 0164
-0167 0166
-0169 0168
-016B 016A
-016D 016C
-016F 016E
-0171 0170
-0173 0172
-0175 0174
-0177 0176
-017A 0179
-017C 017B
-017E 017D
-017F 0053
-0183 0182
-0185 0184
-0188 0187
-018C 018B
-0192 0191
-0195 01F6
-0199 0198
-019E 0220
-01A1 01A0
-01A3 01A2
-01A5 01A4
-01A8 01A7
-01AD 01AC
-01B0 01AF
-01B4 01B3
-01B6 01B5
-01B9 01B8
-01BD 01BC
-01BF 01F7
-01C5 01C4
-01C6 01C4
-01C8 01C7
-01C9 01C7
-01CB 01CA
-01CC 01CA
-01CE 01CD
-01D0 01CF
-01D2 01D1
-01D4 01D3
-01D6 01D5
-01D8 01D7
-01DA 01D9
-01DC 01DB
-01DD 018E
-01DF 01DE
-01E1 01E0
-01E3 01E2
-01E5 01E4
-01E7 01E6
-01E9 01E8
-01EB 01EA
-01ED 01EC
-01EF 01EE
-01F2 01F1
-01F3 01F1
-01F5 01F4
-01F9 01F8
-01FB 01FA
-01FD 01FC
-01FF 01FE
-0201 0200
-0203 0202
-0205 0204
-0207 0206
-0209 0208
-020B 020A
-020D 020C
-020F 020E
-0211 0210
-0213 0212
-0215 0214
-0217 0216
-0219 0218
-021B 021A
-021D 021C
-021F 021E
-0223 0222
-0225 0224
-0227 0226
-0229 0228
-022B 022A
-022D 022C
-022F 022E
-0231 0230
-0233 0232
-0253 0181
-0254 0186
-0256 0189
-0257 018A
-0259 018F
-025B 0190
-0260 0193
-0263 0194
-0268 0197
-0269 0196
-026F 019C
-0272 019D
-0275 019F
-0280 01A6
-0283 01A9
-0288 01AE
-028A 01B1
-028B 01B2
-0292 01B7
-0345 0399
-03AC 0386
-03AD 0388
-03AE 0389
-03AF 038A
-03B1 0391
-03B2 0392
-03B3 0393
-03B4 0394
-03B5 0395
-03B6 0396
-03B7 0397
-03B8 0398
-03B9 0399
-03BA 039A
-03BB 039B
-03BC 039C
-03BD 039D
-03BE 039E
-03BF 039F
-03C0 03A0
-03C1 03A1
-03C2 03A3
-03C3 03A3
-03C4 03A4
-03C5 03A5
-03C6 03A6
-03C7 03A7
-03C8 03A8
-03C9 03A9
-03CA 03AA
-03CB 03AB
-03CC 038C
-03CD 038E
-03CE 038F
-03D0 0392
-03D1 0398
-03D5 03A6
-03D6 03A0
-03D9 03D8
-03DB 03DA
-03DD 03DC
-03DF 03DE
-03E1 03E0
-03E3 03E2
-03E5 03E4
-03E7 03E6
-03E9 03E8
-03EB 03EA
-03ED 03EC
-03EF 03EE
-03F0 039A
-03F1 03A1
-03F2 03A3
-03F5 0395
-0430 0410
-0431 0411
-0432 0412
-0433 0413
-0434 0414
-0435 0415
-0436 0416
-0437 0417
-0438 0418
-0439 0419
-043A 041A
-043B 041B
-043C 041C
-043D 041D
-043E 041E
-043F 041F
-0440 0420
-0441 0421
-0442 0422
-0443 0423
-0444 0424
-0445 0425
-0446 0426
-0447 0427
-0448 0428
-0449 0429
-044A 042A
-044B 042B
-044C 042C
-044D 042D
-044E 042E
-044F 042F
-0450 0400
-0451 0401
-0452 0402
-0453 0403
-0454 0404
-0455 0405
-0456 0406
-0457 0407
-0458 0408
-0459 0409
-045A 040A
-045B 040B
-045C 040C
-045D 040D
-045E 040E
-045F 040F
-0461 0460
-0463 0462
-0465 0464
-0467 0466
-0469 0468
-046B 046A
-046D 046C
-046F 046E
-0471 0470
-0473 0472
-0475 0474
-0477 0476
-0479 0478
-047B 047A
-047D 047C
-047F 047E
-0481 0480
-048B 048A
-048D 048C
-048F 048E
-0491 0490
-0493 0492
-0495 0494
-0497 0496
-0499 0498
-049B 049A
-049D 049C
-049F 049E
-04A1 04A0
-04A3 04A2
-04A5 04A4
-04A7 04A6
-04A9 04A8
-04AB 04AA
-04AD 04AC
-04AF 04AE
-04B1 04B0
-04B3 04B2
-04B5 04B4
-04B7 04B6
-04B9 04B8
-04BB 04BA
-04BD 04BC
-04BF 04BE
-04C2 04C1
-04C4 04C3
-04C6 04C5
-04C8 04C7
-04CA 04C9
-04CC 04CB
-04CE 04CD
-04D1 04D0
-04D3 04D2
-04D5 04D4
-04D7 04D6
-04D9 04D8
-04DB 04DA
-04DD 04DC
-04DF 04DE
-04E1 04E0
-04E3 04E2
-04E5 04E4
-04E7 04E6
-04E9 04E8
-04EB 04EA
-04ED 04EC
-04EF 04EE
-04F1 04F0
-04F3 04F2
-04F5 04F4
-04F9 04F8
-0501 0500
-0503 0502
-0505 0504
-0507 0506
-0509 0508
-050B 050A
-050D 050C
-050F 050E
-0561 0531
-0562 0532
-0563 0533
-0564 0534
-0565 0535
-0566 0536
-0567 0537
-0568 0538
-0569 0539
-056A 053A
-056B 053B
-056C 053C
-056D 053D
-056E 053E
-056F 053F
-0570 0540
-0571 0541
-0572 0542
-0573 0543
-0574 0544
-0575 0545
-0576 0546
-0577 0547
-0578 0548
-0579 0549
-057A 054A
-057B 054B
-057C 054C
-057D 054D
-057E 054E
-057F 054F
-0580 0550
-0581 0551
-0582 0552
-0583 0553
-0584 0554
-0585 0555
-0586 0556
-1E01 1E00
-1E03 1E02
-1E05 1E04
-1E07 1E06
-1E09 1E08
-1E0B 1E0A
-1E0D 1E0C
-1E0F 1E0E
-1E11 1E10
-1E13 1E12
-1E15 1E14
-1E17 1E16
-1E19 1E18
-1E1B 1E1A
-1E1D 1E1C
-1E1F 1E1E
-1E21 1E20
-1E23 1E22
-1E25 1E24
-1E27 1E26
-1E29 1E28
-1E2B 1E2A
-1E2D 1E2C
-1E2F 1E2E
-1E31 1E30
-1E33 1E32
-1E35 1E34
-1E37 1E36
-1E39 1E38
-1E3B 1E3A
-1E3D 1E3C
-1E3F 1E3E
-1E41 1E40
-1E43 1E42
-1E45 1E44
-1E47 1E46
-1E49 1E48
-1E4B 1E4A
-1E4D 1E4C
-1E4F 1E4E
-1E51 1E50
-1E53 1E52
-1E55 1E54
-1E57 1E56
-1E59 1E58
-1E5B 1E5A
-1E5D 1E5C
-1E5F 1E5E
-1E61 1E60
-1E63 1E62
-1E65 1E64
-1E67 1E66
-1E69 1E68
-1E6B 1E6A
-1E6D 1E6C
-1E6F 1E6E
-1E71 1E70
-1E73 1E72
-1E75 1E74
-1E77 1E76
-1E79 1E78
-1E7B 1E7A
-1E7D 1E7C
-1E7F 1E7E
-1E81 1E80
-1E83 1E82
-1E85 1E84
-1E87 1E86
-1E89 1E88
-1E8B 1E8A
-1E8D 1E8C
-1E8F 1E8E
-1E91 1E90
-1E93 1E92
-1E95 1E94
-1E9B 1E60
-1EA1 1EA0
-1EA3 1EA2
-1EA5 1EA4
-1EA7 1EA6
-1EA9 1EA8
-1EAB 1EAA
-1EAD 1EAC
-1EAF 1EAE
-1EB1 1EB0
-1EB3 1EB2
-1EB5 1EB4
-1EB7 1EB6
-1EB9 1EB8
-1EBB 1EBA
-1EBD 1EBC
-1EBF 1EBE
-1EC1 1EC0
-1EC3 1EC2
-1EC5 1EC4
-1EC7 1EC6
-1EC9 1EC8
-1ECB 1ECA
-1ECD 1ECC
-1ECF 1ECE
-1ED1 1ED0
-1ED3 1ED2
-1ED5 1ED4
-1ED7 1ED6
-1ED9 1ED8
-1EDB 1EDA
-1EDD 1EDC
-1EDF 1EDE
-1EE1 1EE0
-1EE3 1EE2
-1EE5 1EE4
-1EE7 1EE6
-1EE9 1EE8
-1EEB 1EEA
-1EED 1EEC
-1EEF 1EEE
-1EF1 1EF0
-1EF3 1EF2
-1EF5 1EF4
-1EF7 1EF6
-1EF9 1EF8
-1F00 1F08
-1F01 1F09
-1F02 1F0A
-1F03 1F0B
-1F04 1F0C
-1F05 1F0D
-1F06 1F0E
-1F07 1F0F
-1F10 1F18
-1F11 1F19
-1F12 1F1A
-1F13 1F1B
-1F14 1F1C
-1F15 1F1D
-1F20 1F28
-1F21 1F29
-1F22 1F2A
-1F23 1F2B
-1F24 1F2C
-1F25 1F2D
-1F26 1F2E
-1F27 1F2F
-1F30 1F38
-1F31 1F39
-1F32 1F3A
-1F33 1F3B
-1F34 1F3C
-1F35 1F3D
-1F36 1F3E
-1F37 1F3F
-1F40 1F48
-1F41 1F49
-1F42 1F4A
-1F43 1F4B
-1F44 1F4C
-1F45 1F4D
-1F51 1F59
-1F53 1F5B
-1F55 1F5D
-1F57 1F5F
-1F60 1F68
-1F61 1F69
-1F62 1F6A
-1F63 1F6B
-1F64 1F6C
-1F65 1F6D
-1F66 1F6E
-1F67 1F6F
-1F70 1FBA
-1F71 1FBB
-1F72 1FC8
-1F73 1FC9
-1F74 1FCA
-1F75 1FCB
-1F76 1FDA
-1F77 1FDB
-1F78 1FF8
-1F79 1FF9
-1F7A 1FEA
-1F7B 1FEB
-1F7C 1FFA
-1F7D 1FFB
-1FB0 1FB8
-1FB1 1FB9
-1FBE 0399
-1FD0 1FD8
-1FD1 1FD9
-1FE0 1FE8
-1FE1 1FE9
-1FE5 1FEC
-2170 2160
-2171 2161
-2172 2162
-2173 2163
-2174 2164
-2175 2165
-2176 2166
-2177 2167
-2178 2168
-2179 2169
-217A 216A
-217B 216B
-217C 216C
-217D 216D
-217E 216E
-217F 216F
-24D0 24B6
-24D1 24B7
-24D2 24B8
-24D3 24B9
-24D4 24BA
-24D5 24BB
-24D6 24BC
-24D7 24BD
-24D8 24BE
-24D9 24BF
-24DA 24C0
-24DB 24C1
-24DC 24C2
-24DD 24C3
-24DE 24C4
-24DF 24C5
-24E0 24C6
-24E1 24C7
-24E2 24C8
-24E3 24C9
-24E4 24CA
-24E5 24CB
-24E6 24CC
-24E7 24CD
-24E8 24CE
-24E9 24CF
-FF41 FF21
-FF42 FF22
-FF43 FF23
-FF44 FF24
-FF45 FF25
-FF46 FF26
-FF47 FF27
-FF48 FF28
-FF49 FF29
-FF4A FF2A
-FF4B FF2B
-FF4C FF2C
-FF4D FF2D
-FF4E FF2E
-FF4F FF2F
-FF50 FF30
-FF51 FF31
-FF52 FF32
-FF53 FF33
-FF54 FF34
-FF55 FF35
-FF56 FF36
-FF57 FF37
-FF58 FF38
-FF59 FF39
-FF5A FF3A
-10428 10400
-10429 10401
-1042A 10402
-1042B 10403
-1042C 10404
-1042D 10405
-1042E 10406
-1042F 10407
-10430 10408
-10431 10409
-10432 1040A
-10433 1040B
-10434 1040C
-10435 1040D
-10436 1040E
-10437 1040F
-10438 10410
-10439 10411
-1043A 10412
-1043B 10413
-1043C 10414
-1043D 10415
-1043E 10416
-1043F 10417
-10440 10418
-10441 10419
-10442 1041A
-10443 1041B
-10444 1041C
-10445 1041D
-10446 1041E
-10447 1041F
-10448 10420
-10449 10421
-1044A 10422
-1044B 10423
-1044C 10424
-1044D 10425
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/ASCII.pl b/Master/xemtex/perl/lib/unicore/lib/ASCII.pl
deleted file mode 100644
index 42aa565bc1f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/ASCII.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{ASCII}
-#
-# Meaning: [[:ASCII:]]
-#
-return <<'END';
-0000 007F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Alnum.pl b/Master/xemtex/perl/lib/unicore/lib/Alnum.pl
deleted file mode 100644
index 0ec13c55c44..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Alnum.pl
+++ /dev/null
@@ -1,423 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Alnum}
-#
-# Meaning: [[:Alnum:]]
-#
-return <<'END';
-0030 0039
-0041 005A
-0061 007A
-00AA
-00B2 00B3
-00B5
-00B9 00BA
-00BC 00BE
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-0300 034F
-0360 036F
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-0483 0486
-0488 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 0655
-0660 0669
-066E 06D3
-06D5 06DC
-06DE 06E8
-06EA 06ED
-06F0 06FC
-0710 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0963
-0966 096F
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09E6 09F1
-09F4 09F9
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A66 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0AE6 0AEF
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B6F
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0BE7 0BF2
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF3
-0E01 0E3A
-0E40 0E4E
-0E50 0E59
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0ED0 0ED9
-0EDC 0EDD
-0F00
-0F18 0F19
-0F20 0F33
-0F35
-0F37
-0F39
-0F3E 0F47
-0F49 0F6A
-0F71 0F84
-0F86 0F8B
-0F90 0F97
-0F99 0FBC
-0FC6
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1040 1049
-1050 1059
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1369 137C
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-16EE 16F0
-1700 170C
-170E 1714
-1720 1734
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17D3
-17D7
-17DC
-17E0 17E9
-180B 180D
-1810 1819
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2070 2071
-2074 2079
-207F 2089
-20D0 20EA
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-2153 2183
-2460 249B
-24EA 24FE
-2776 2793
-3005 3007
-3021 302F
-3031 3035
-3038 303C
-3041 3096
-3099 309A
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-3192 3195
-31A0 31B7
-31F0 31FF
-3220 3229
-3251 325F
-3280 3289
-32B1 32BF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE00 FE0F
-FE20 FE23
-FE70 FE74
-FE76 FEFC
-FF10 FF19
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D165 1D169
-1D16D 1D172
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-1D7CE 1D7FF
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Alpha.pl b/Master/xemtex/perl/lib/unicore/lib/Alpha.pl
deleted file mode 100644
index 35b0e3280be..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Alpha.pl
+++ /dev/null
@@ -1,390 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Alpha}
-#
-# Meaning: [[:Alpha:]]
-#
-return <<'END';
-0041 005A
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-0300 034F
-0360 036F
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-0483 0486
-0488 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 0655
-066E 06D3
-06D5 06DC
-06DE 06E8
-06EA 06ED
-06FA 06FC
-0710 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0963
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09F0 09F1
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A70 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF3
-0E01 0E3A
-0E40 0E4E
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0EDC 0EDD
-0F00
-0F18 0F19
-0F35
-0F37
-0F39
-0F3E 0F47
-0F49 0F6A
-0F71 0F84
-0F86 0F8B
-0F90 0F97
-0F99 0FBC
-0FC6
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1050 1059
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-1700 170C
-170E 1714
-1720 1734
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17D3
-17D7
-17DC
-180B 180D
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2071
-207F
-20D0 20EA
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-3005 3006
-302A 302F
-3031 3035
-303B 303C
-3041 3096
-3099 309A
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-31A0 31B7
-31F0 31FF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE00 FE0F
-FE20 FE23
-FE70 FE74
-FE76 FEFC
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10330 10349
-10400 10425
-10428 1044D
-1D165 1D169
-1D16D 1D172
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Alphabet.pl b/Master/xemtex/perl/lib/unicore/lib/Alphabet.pl
deleted file mode 100644
index a909a31f000..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Alphabet.pl
+++ /dev/null
@@ -1,372 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Alphabetic} (and fuzzy permutations)
-#
-# Meaning: [\p{L}\p{OtherAlphabetic}]
-#
-return <<'END';
-0041 005A
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-0345
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-048A 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-05B0 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 0655
-066E 06D3
-06D5 06DC
-06E1 06E8
-06ED
-06FA 06FC
-0710 072C
-0730 073F
-0780 07B1
-0901 0903
-0905 0939
-093D 094C
-0950
-0958 0963
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BE 09C4
-09C7 09C8
-09CB 09CC
-09D7
-09DC 09DD
-09DF 09E3
-09F0 09F1
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3E 0A42
-0A47 0A48
-0A4B 0A4C
-0A59 0A5C
-0A5E
-0A70 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABD 0AC5
-0AC7 0AC9
-0ACB 0ACC
-0AD0
-0AE0
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3D 0B43
-0B47 0B48
-0B4B 0B4C
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCC
-0BD7
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4C
-0C55 0C56
-0C60 0C61
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCC
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4C
-0D57
-0D60 0D61
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF3
-0E01 0E3A
-0E40 0E46
-0E4D
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0ECD
-0EDC 0EDD
-0F00
-0F40 0F47
-0F49 0F6A
-0F71 0F81
-0F88 0F8B
-0F90 0F97
-0F99 0FBC
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036
-1038
-1050 1059
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-16EE 16F0
-1700 170C
-170E 1713
-1720 1733
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17C8
-17D7
-17DC
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2071
-207F
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-2160 2183
-3005 3006
-3031 3035
-303B 303C
-3041 3096
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-31A0 31B7
-31F0 31FF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE70 FE74
-FE76 FEFC
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10330 1034A
-10400 10425
-10428 1044D
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Any.pl b/Master/xemtex/perl/lib/unicore/lib/Any.pl
deleted file mode 100644
index b30cb2fb7f2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Any.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Any}
-# \p{Any}
-#
-# Meaning: [\x{0000}-\x{10FFFF}]
-#
-return <<'END';
-0000 10FFFF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Arabic.pl b/Master/xemtex/perl/lib/unicore/lib/Arabic.pl
deleted file mode 100644
index ac5df6e8900..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Arabic.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Arabic} (and fuzzy permutations)
-#
-# Meaning: Script 'ARABIC'
-#
-return <<'END';
-0621 063A ARABIC
-0641 064A ARABIC
-066E 066F ARABIC
-0671 06D3 ARABIC
-06D5 ARABIC
-06E5 06E6 ARABIC
-06FA 06FC ARABIC
-FB50 FBB1 ARABIC
-FBD3 FD3D ARABIC
-FD50 FD8F ARABIC
-FD92 FDC7 ARABIC
-FDF0 FDFB ARABIC
-FE70 FE74 ARABIC
-FE76 FEFC ARABIC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Armenian.pl b/Master/xemtex/perl/lib/unicore/lib/Armenian.pl
deleted file mode 100644
index 6652079be3a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Armenian.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Armenian} (and fuzzy permutations)
-#
-# Meaning: Script 'ARMENIAN'
-#
-return <<'END';
-0531 0556 ARMENIAN
-0559 ARMENIAN
-0561 0587 ARMENIAN
-FB13 FB17 ARMENIAN
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/AsciiHex.pl b/Master/xemtex/perl/lib/unicore/lib/AsciiHex.pl
deleted file mode 100644
index 24c43ee3771..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/AsciiHex.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{AsciiHexDigit} (and fuzzy permutations)
-#
-# Meaning: Extended property 'ASCII_Hex_Digit'
-#
-return <<'END';
-0030 0039 ASCII_Hex_Digit
-0041 0046 ASCII_Hex_Digit
-0061 0066 ASCII_Hex_Digit
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Assigned.pl b/Master/xemtex/perl/lib/unicore/lib/Assigned.pl
deleted file mode 100644
index 5bd9faffbd3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Assigned.pl
+++ /dev/null
@@ -1,398 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Assigned}
-#
-# Meaning: All assigned code points
-#
-return <<'END';
-0000 0220
-0222 0233
-0250 02AD
-02B0 02EE
-0300 034F
-0360 036F
-0374 0375
-037A
-037E
-0384 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F6
-0400 0486
-0488 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559 055F
-0561 0587
-0589 058A
-0591 05A1
-05A3 05B9
-05BB 05C4
-05D0 05EA
-05F0 05F4
-060C
-061B
-061F
-0621 063A
-0640 0655
-0660 06ED
-06F0 06FE
-0700 070D
-070F 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0970
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09E6 09FA
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A66 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0AE6 0AEF
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B70
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0BE7 0BF2
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF4
-0E01 0E3A
-0E3F 0E5B
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0ED0 0ED9
-0EDC 0EDD
-0F00 0F47
-0F49 0F6A
-0F71 0F8B
-0F90 0F97
-0F99 0FBC
-0FBE 0FCC
-0FCF
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1040 1059
-10A0 10C5
-10D0 10F8
-10FB
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1361 137C
-13A0 13F4
-1401 1676
-1680 169C
-16A0 16F0
-1700 170C
-170E 1714
-1720 1736
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17DC
-17E0 17E9
-1800 180E
-1810 1819
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FC4
-1FC6 1FD3
-1FD6 1FDB
-1FDD 1FEF
-1FF2 1FF4
-1FF6 1FFE
-2000 2052
-2057
-205F 2063
-206A 2071
-2074 208E
-20A0 20B1
-20D0 20EA
-2100 213A
-213D 214B
-2153 2183
-2190 23CE
-2400 2426
-2440 244A
-2460 24FE
-2500 2613
-2616 2617
-2619 267D
-2680 2689
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2794
-2798 27AF
-27B1 27BE
-27D0 27EB
-27F0 2AFF
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3000 303F
-3041 3096
-3099 30FF
-3105 312C
-3131 318E
-3190 31B7
-31F0 321C
-3220 3243
-3251 327B
-327F 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-3400 4DB5
-4E00 9FA5
-A000 A48C
-A490 A4C6
-AC00 D7A3
-D800 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3F
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFC
-FE00 FE0F
-FE20 FE23
-FE30 FE46
-FE49 FE52
-FE54 FE66
-FE68 FE6B
-FE70 FE74
-FE76 FEFC
-FEFF
-FF01 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-FFE0 FFE6
-FFE8 FFEE
-FFF9 FFFD
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D000 1D0F5
-1D100 1D126
-1D12A 1D1DD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-1D7CE 1D7FF
-20000 2A6D6
-2F800 2FA1D
-E0001
-E0020 E007F
-F0000 FFFFD
-100000 10FFFD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Bengali.pl b/Master/xemtex/perl/lib/unicore/lib/Bengali.pl
deleted file mode 100644
index 5d2b9db5849..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Bengali.pl
+++ /dev/null
@@ -1,27 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Bengali} (and fuzzy permutations)
-#
-# Meaning: Script 'BENGALI'
-#
-return <<'END';
-0981 0983 BENGALI
-0985 098C BENGALI
-098F 0990 BENGALI
-0993 09A8 BENGALI
-09AA 09B0 BENGALI
-09B2 BENGALI
-09B6 09B9 BENGALI
-09BC BENGALI
-09BE 09C4 BENGALI
-09C7 09C8 BENGALI
-09CB 09CD BENGALI
-09D7 BENGALI
-09DC 09DD BENGALI
-09DF 09E3 BENGALI
-09E6 09F1 BENGALI
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiAL.pl b/Master/xemtex/perl/lib/unicore/lib/BidiAL.pl
deleted file mode 100644
index 4149869f8bb..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiAL.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiAL}
-#
-# Meaning: Bi-directional category 'AL'
-#
-return <<'END';
-061B
-061F
-0621 063A
-0640 064A
-066D 066F
-0671 06D5
-06DD
-06E5 06E6
-06FA 06FE
-0700 070D
-0710
-0712 072C
-0780 07A5
-07B1
-FB50 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFC
-FE70 FE74
-FE76 FEFC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiAN.pl b/Master/xemtex/perl/lib/unicore/lib/BidiAN.pl
deleted file mode 100644
index c5defcb1fb8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiAN.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiAN}
-#
-# Meaning: Bi-directional category 'AN'
-#
-return <<'END';
-0660 0669
-066B 066C
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiB.pl b/Master/xemtex/perl/lib/unicore/lib/BidiB.pl
deleted file mode 100644
index 85572fec078..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiB.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiB}
-#
-# Meaning: Bi-directional category 'B'
-#
-return <<'END';
-000A
-000D
-001C 001E
-0085
-2029
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiBN.pl b/Master/xemtex/perl/lib/unicore/lib/BidiBN.pl
deleted file mode 100644
index b810db1e76c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiBN.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiBN}
-#
-# Meaning: Bi-directional category 'BN'
-#
-return <<'END';
-0000 0008
-000E 001B
-007F 0084
-0086 009F
-070F
-180E
-200B 200D
-2060 2063
-206A 206F
-FEFF
-FFF9 FFFB
-1D173 1D17A
-E0001
-E0020 E007F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiCS.pl b/Master/xemtex/perl/lib/unicore/lib/BidiCS.pl
deleted file mode 100644
index 7f17238b931..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiCS.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiCS}
-#
-# Meaning: Bi-directional category 'CS'
-#
-return <<'END';
-002C
-002E
-003A
-00A0
-060C
-FE50
-FE52
-FE55
-FF0C
-FF0E
-FF1A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiCont.pl b/Master/xemtex/perl/lib/unicore/lib/BidiCont.pl
deleted file mode 100644
index 070ad87ba82..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiCont.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiControl} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Bidi_Control'
-#
-return <<'END';
-200E 200F Bidi_Control
-202A 202E Bidi_Control
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiEN.pl b/Master/xemtex/perl/lib/unicore/lib/BidiEN.pl
deleted file mode 100644
index 24a291f864b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiEN.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiEN}
-#
-# Meaning: Bi-directional category 'EN'
-#
-return <<'END';
-0030 0039
-00B2 00B3
-00B9
-06F0 06F9
-2070
-2074 2079
-2080 2089
-2460 249B
-24EA
-FF10 FF19
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiES.pl b/Master/xemtex/perl/lib/unicore/lib/BidiES.pl
deleted file mode 100644
index 9810f8118df..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiES.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiES}
-#
-# Meaning: Bi-directional category 'ES'
-#
-return <<'END';
-002F
-FF0F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiET.pl b/Master/xemtex/perl/lib/unicore/lib/BidiET.pl
deleted file mode 100644
index 234cf5ff590..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiET.pl
+++ /dev/null
@@ -1,36 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiET}
-#
-# Meaning: Bi-directional category 'ET'
-#
-return <<'END';
-0023 0025
-002B
-002D
-00A2 00A5
-00B0 00B1
-066A
-09F2 09F3
-0E3F
-17DB
-2030 2034
-207A 207B
-208A 208B
-20A0 20B1
-212E
-2212 2213
-FB29
-FE5F
-FE62 FE63
-FE69 FE6A
-FF03 FF05
-FF0B
-FF0D
-FFE0 FFE1
-FFE5 FFE6
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiL.pl b/Master/xemtex/perl/lib/unicore/lib/BidiL.pl
deleted file mode 100644
index f4033f28e46..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiL.pl
+++ /dev/null
@@ -1,366 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiL}
-#
-# Meaning: Bi-directional category 'L'
-#
-return <<'END';
-0041 005A
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0482
-048A 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559 055F
-0561 0587
-0589
-0903
-0905 0939
-093D 0940
-0949 094C
-0950
-0958 0961
-0964 0970
-0982 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BE 09C0
-09C7 09C8
-09CB 09CC
-09D7
-09DC 09DD
-09DF 09E1
-09E6 09F1
-09F4 09FA
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3E 0A40
-0A59 0A5C
-0A5E
-0A66 0A6F
-0A72 0A74
-0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABD 0AC0
-0AC9
-0ACB 0ACC
-0AD0
-0AE0
-0AE6 0AEF
-0B02 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3D 0B3E
-0B40
-0B47 0B48
-0B4B 0B4C
-0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B70
-0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BBF
-0BC1 0BC2
-0BC6 0BC8
-0BCA 0BCC
-0BD7
-0BE7 0BF2
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C41 0C44
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE
-0CC0 0CC4
-0CC7 0CC8
-0CCA 0CCB
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D40
-0D46 0D48
-0D4A 0D4C
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCF 0DD1
-0DD8 0DDF
-0DF2 0DF4
-0E01 0E30
-0E32 0E33
-0E40 0E46
-0E4F 0E5B
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB0
-0EB2 0EB3
-0EBD
-0EC0 0EC4
-0EC6
-0ED0 0ED9
-0EDC 0EDD
-0F00 0F17
-0F1A 0F34
-0F36
-0F38
-0F3E 0F47
-0F49 0F6A
-0F7F
-0F85
-0F88 0F8B
-0FBE 0FC5
-0FC7 0FCC
-0FCF
-1000 1021
-1023 1027
-1029 102A
-102C
-1031
-1038
-1040 1057
-10A0 10C5
-10D0 10F8
-10FB
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1361 137C
-13A0 13F4
-1401 1676
-1681 169A
-16A0 16F0
-1700 170C
-170E 1711
-1720 1731
-1735 1736
-1740 1751
-1760 176C
-176E 1770
-1780 17B6
-17BE 17C5
-17C7 17C8
-17D4 17DA
-17DC
-17E0 17E9
-1810 1819
-1820 1877
-1880 18A8
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-200E
-2071
-207F
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-2160 2183
-2336 237A
-2395
-249C 24E9
-3005 3007
-3021 3029
-3031 3035
-3038 303C
-3041 3096
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-3190 31B7
-31F0 321C
-3220 3243
-3260 327B
-327F 32B0
-32C0 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-A000 A48C
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D000 1D0F5
-1D100 1D126
-1D12A 1D166
-1D16A 1D172
-1D183 1D184
-1D18C 1D1A9
-1D1AE 1D1DD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiLRE.pl b/Master/xemtex/perl/lib/unicore/lib/BidiLRE.pl
deleted file mode 100644
index 5070363fc5c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiLRE.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiLRE}
-#
-# Meaning: Bi-directional category 'LRE'
-#
-return <<'END';
-202A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiLRO.pl b/Master/xemtex/perl/lib/unicore/lib/BidiLRO.pl
deleted file mode 100644
index 52ea9600f38..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiLRO.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiLRO}
-#
-# Meaning: Bi-directional category 'LRO'
-#
-return <<'END';
-202D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiNSM.pl b/Master/xemtex/perl/lib/unicore/lib/BidiNSM.pl
deleted file mode 100644
index 7e2f4b10820..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiNSM.pl
+++ /dev/null
@@ -1,115 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiNSM}
-#
-# Meaning: Bi-directional category 'NSM'
-#
-return <<'END';
-0300 034F
-0360 036F
-0483 0486
-0488 0489
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-064B 0655
-0670
-06D6 06DC
-06DE 06E4
-06E7 06E8
-06EA 06ED
-0711
-0730 074A
-07A6 07B0
-0901 0902
-093C
-0941 0948
-094D
-0951 0954
-0962 0963
-0981
-09BC
-09C1 09C4
-09CD
-09E2 09E3
-0A02
-0A3C
-0A41 0A42
-0A47 0A48
-0A4B 0A4D
-0A70 0A71
-0A81 0A82
-0ABC
-0AC1 0AC5
-0AC7 0AC8
-0ACD
-0B01
-0B3C
-0B3F
-0B41 0B43
-0B4D
-0B56
-0B82
-0BC0
-0BCD
-0C3E 0C40
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0CBF
-0CC6
-0CCC 0CCD
-0D41 0D43
-0D4D
-0DCA
-0DD2 0DD4
-0DD6
-0E31
-0E34 0E3A
-0E47 0E4E
-0EB1
-0EB4 0EB9
-0EBB 0EBC
-0EC8 0ECD
-0F18 0F19
-0F35
-0F37
-0F39
-0F71 0F7E
-0F80 0F84
-0F86 0F87
-0F90 0F97
-0F99 0FBC
-0FC6
-102D 1030
-1032
-1036 1037
-1039
-1058 1059
-1712 1714
-1732 1734
-1752 1753
-1772 1773
-17B7 17BD
-17C6
-17C9 17D3
-180B 180D
-18A9
-20D0 20EA
-302A 302F
-3099 309A
-FB1E
-FE00 FE0F
-FE20 FE23
-1D167 1D169
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiON.pl b/Master/xemtex/perl/lib/unicore/lib/BidiON.pl
deleted file mode 100644
index 7fe891ebad3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiON.pl
+++ /dev/null
@@ -1,121 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiON}
-#
-# Meaning: Bi-directional category 'ON'
-#
-return <<'END';
-0021 0022
-0026 002A
-003B 0040
-005B 0060
-007B 007E
-00A1
-00A6 00A9
-00AB 00AF
-00B4
-00B6 00B8
-00BB 00BF
-00D7
-00F7
-02B9 02BA
-02C2 02CF
-02D2 02DF
-02E5 02ED
-0374 0375
-037E
-0384 0385
-0387
-03F6
-058A
-06E9
-0F3A 0F3D
-169B 169C
-1800 180A
-1FBD
-1FBF 1FC1
-1FCD 1FCF
-1FDD 1FDF
-1FED 1FEF
-1FFD 1FFE
-2010 2027
-2035 2052
-2057
-207C 207E
-208C 208E
-2100 2101
-2103 2106
-2108 2109
-2114
-2116 2118
-211E 2123
-2125
-2127
-2129
-2132
-213A
-2140 2144
-214A 214B
-2153 215F
-2190 2211
-2214 2335
-237B 2394
-2396 23CE
-2400 2426
-2440 244A
-24EB 24FE
-2500 2613
-2616 2617
-2619 267D
-2680 2689
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2794
-2798 27AF
-27B1 27BE
-27D0 27EB
-27F0 2AFF
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3001 3004
-3008 3020
-3030
-3036 3037
-303D 303F
-309B 309C
-30A0
-30FB
-3251 325F
-32B1 32BF
-A490 A4C6
-FD3E FD3F
-FE30 FE46
-FE49 FE4F
-FE51
-FE54
-FE56 FE5E
-FE60 FE61
-FE64 FE66
-FE68
-FE6B
-FF01 FF02
-FF06 FF0A
-FF1B FF20
-FF3B FF40
-FF5B FF65
-FFE2 FFE4
-FFE8 FFEE
-FFFC FFFD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiPDF.pl b/Master/xemtex/perl/lib/unicore/lib/BidiPDF.pl
deleted file mode 100644
index ef251bd04ce..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiPDF.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiPDF}
-#
-# Meaning: Bi-directional category 'PDF'
-#
-return <<'END';
-202C
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiR.pl b/Master/xemtex/perl/lib/unicore/lib/BidiR.pl
deleted file mode 100644
index 4d62027f26b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiR.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiR}
-#
-# Meaning: Bi-directional category 'R'
-#
-return <<'END';
-05BE
-05C0
-05C3
-05D0 05EA
-05F0 05F4
-200F
-FB1D
-FB1F FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FB4F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiRLE.pl b/Master/xemtex/perl/lib/unicore/lib/BidiRLE.pl
deleted file mode 100644
index dd2162396cc..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiRLE.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiRLE}
-#
-# Meaning: Bi-directional category 'RLE'
-#
-return <<'END';
-202B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiRLO.pl b/Master/xemtex/perl/lib/unicore/lib/BidiRLO.pl
deleted file mode 100644
index 244385588b6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiRLO.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiRLO}
-#
-# Meaning: Bi-directional category 'RLO'
-#
-return <<'END';
-202E
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiS.pl b/Master/xemtex/perl/lib/unicore/lib/BidiS.pl
deleted file mode 100644
index 27207fa5197..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiS.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiS}
-#
-# Meaning: Bi-directional category 'S'
-#
-return <<'END';
-0009
-000B
-001F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/BidiWS.pl b/Master/xemtex/perl/lib/unicore/lib/BidiWS.pl
deleted file mode 100644
index 11896597aea..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/BidiWS.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{BidiWS}
-#
-# Meaning: Bi-directional category 'WS'
-#
-return <<'END';
-000C
-0020
-1680
-2000 200A
-2028
-202F
-205F
-3000
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Blank.pl b/Master/xemtex/perl/lib/unicore/lib/Blank.pl
deleted file mode 100644
index 96498cb22fe..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Blank.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Blank}
-#
-# Meaning: [[:Blank:]]
-#
-return <<'END';
-0009
-0020
-00A0
-1680
-2000 200B
-202F
-205F
-3000
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Bopomofo.pl b/Master/xemtex/perl/lib/unicore/lib/Bopomofo.pl
deleted file mode 100644
index 525797c8b8d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Bopomofo.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Bopomofo} (and fuzzy permutations)
-#
-# Meaning: Script 'BOPOMOFO'
-#
-return <<'END';
-3105 312C BOPOMOFO
-31A0 31B7 BOPOMOFO
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Buhid.pl b/Master/xemtex/perl/lib/unicore/lib/Buhid.pl
deleted file mode 100644
index c1ad8f86d2d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Buhid.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Buhid} (and fuzzy permutations)
-#
-# Meaning: Script 'BUHID'
-#
-return <<'END';
-1740 1753 BUHID
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/C.pl b/Master/xemtex/perl/lib/unicore/lib/C.pl
deleted file mode 100644
index bbe5b39e482..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/C.pl
+++ /dev/null
@@ -1,400 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{C}
-# \p{C} (and fuzzy permutations)
-#
-# Meaning: Major Category 'C'
-#
-return <<'END';
-0000 001F
-007F 009F
-0221
-0234 024F
-02AE 02AF
-02EF 02FF
-0350 035F
-0370 0373
-0376 0379
-037B 037D
-037F 0383
-038B
-038D
-03A2
-03CF
-03F7 03FF
-0487
-04CF
-04F6 04F7
-04FA 04FF
-0510 0530
-0557 0558
-0560
-0588
-058B 0590
-05A2
-05BA
-05C5 05CF
-05EB 05EF
-05F5 060B
-060D 061A
-061C 061E
-0620
-063B 063F
-0656 065F
-06DD
-06EE 06EF
-06FF
-070E 070F
-072D 072F
-074B 077F
-07B2 0900
-0904
-093A 093B
-094E 094F
-0955 0957
-0971 0980
-0984
-098D 098E
-0991 0992
-09A9
-09B1
-09B3 09B5
-09BA 09BB
-09BD
-09C5 09C6
-09C9 09CA
-09CE 09D6
-09D8 09DB
-09DE
-09E4 09E5
-09FB 0A01
-0A03 0A04
-0A0B 0A0E
-0A11 0A12
-0A29
-0A31
-0A34
-0A37
-0A3A 0A3B
-0A3D
-0A43 0A46
-0A49 0A4A
-0A4E 0A58
-0A5D
-0A5F 0A65
-0A75 0A80
-0A84
-0A8C
-0A8E
-0A92
-0AA9
-0AB1
-0AB4
-0ABA 0ABB
-0AC6
-0ACA
-0ACE 0ACF
-0AD1 0ADF
-0AE1 0AE5
-0AF0 0B00
-0B04
-0B0D 0B0E
-0B11 0B12
-0B29
-0B31
-0B34 0B35
-0B3A 0B3B
-0B44 0B46
-0B49 0B4A
-0B4E 0B55
-0B58 0B5B
-0B5E
-0B62 0B65
-0B71 0B81
-0B84
-0B8B 0B8D
-0B91
-0B96 0B98
-0B9B
-0B9D
-0BA0 0BA2
-0BA5 0BA7
-0BAB 0BAD
-0BB6
-0BBA 0BBD
-0BC3 0BC5
-0BC9
-0BCE 0BD6
-0BD8 0BE6
-0BF3 0C00
-0C04
-0C0D
-0C11
-0C29
-0C34
-0C3A 0C3D
-0C45
-0C49
-0C4E 0C54
-0C57 0C5F
-0C62 0C65
-0C70 0C81
-0C84
-0C8D
-0C91
-0CA9
-0CB4
-0CBA 0CBD
-0CC5
-0CC9
-0CCE 0CD4
-0CD7 0CDD
-0CDF
-0CE2 0CE5
-0CF0 0D01
-0D04
-0D0D
-0D11
-0D29
-0D3A 0D3D
-0D44 0D45
-0D49
-0D4E 0D56
-0D58 0D5F
-0D62 0D65
-0D70 0D81
-0D84
-0D97 0D99
-0DB2
-0DBC
-0DBE 0DBF
-0DC7 0DC9
-0DCB 0DCE
-0DD5
-0DD7
-0DE0 0DF1
-0DF5 0E00
-0E3B 0E3E
-0E5C 0E80
-0E83
-0E85 0E86
-0E89
-0E8B 0E8C
-0E8E 0E93
-0E98
-0EA0
-0EA4
-0EA6
-0EA8 0EA9
-0EAC
-0EBA
-0EBE 0EBF
-0EC5
-0EC7
-0ECE 0ECF
-0EDA 0EDB
-0EDE 0EFF
-0F48
-0F6B 0F70
-0F8C 0F8F
-0F98
-0FBD
-0FCD 0FCE
-0FD0 0FFF
-1022
-1028
-102B
-1033 1035
-103A 103F
-105A 109F
-10C6 10CF
-10F9 10FA
-10FC 10FF
-115A 115E
-11A3 11A7
-11FA 11FF
-1207
-1247
-1249
-124E 124F
-1257
-1259
-125E 125F
-1287
-1289
-128E 128F
-12AF
-12B1
-12B6 12B7
-12BF
-12C1
-12C6 12C7
-12CF
-12D7
-12EF
-130F
-1311
-1316 1317
-131F
-1347
-135B 1360
-137D 139F
-13F5 1400
-1677 167F
-169D 169F
-16F1 16FF
-170D
-1715 171F
-1737 173F
-1754 175F
-176D
-1771
-1774 177F
-17DD 17DF
-17EA 17FF
-180E 180F
-181A 181F
-1878 187F
-18AA 1DFF
-1E9C 1E9F
-1EFA 1EFF
-1F16 1F17
-1F1E 1F1F
-1F46 1F47
-1F4E 1F4F
-1F58
-1F5A
-1F5C
-1F5E
-1F7E 1F7F
-1FB5
-1FC5
-1FD4 1FD5
-1FDC
-1FF0 1FF1
-1FF5
-1FFF
-200C 200F
-202A 202E
-2053 2056
-2058 205E
-2060 206F
-2072 2073
-208F 209F
-20B2 20CF
-20EB 20FF
-213B 213C
-214C 2152
-2184 218F
-23CF 23FF
-2427 243F
-244B 245F
-24FF
-2614 2615
-2618
-267E 267F
-268A 2700
-2705
-270A 270B
-2728
-274C
-274E
-2753 2755
-2757
-275F 2760
-2795 2797
-27B0
-27BF 27CF
-27EC 27EF
-2B00 2E7F
-2E9A
-2EF4 2EFF
-2FD6 2FEF
-2FFC 2FFF
-3040
-3097 3098
-3100 3104
-312D 3130
-318F
-31B8 31EF
-321D 321F
-3244 3250
-327C 327E
-32CC 32CF
-32FF
-3377 337A
-33DE 33DF
-33FF
-4DB6 4DFF
-9FA6 9FFF
-A48D A48F
-A4C7 ABFF
-D7A4 F8FF
-FA2E FA2F
-FA6B FAFF
-FB07 FB12
-FB18 FB1C
-FB37
-FB3D
-FB3F
-FB42
-FB45
-FBB2 FBD2
-FD40 FD4F
-FD90 FD91
-FDC8 FDEF
-FDFD FDFF
-FE10 FE1F
-FE24 FE2F
-FE47 FE48
-FE53
-FE67
-FE6C FE6F
-FE75
-FEFD FF00
-FFBF FFC1
-FFC8 FFC9
-FFD0 FFD1
-FFD8 FFD9
-FFDD FFDF
-FFE7
-FFEF FFFB
-FFFE 102FF
-1031F
-10324 1032F
-1034B 103FF
-10426 10427
-1044E 1CFFF
-1D0F6 1D0FF
-1D127 1D129
-1D173 1D17A
-1D1DE 1D3FF
-1D455
-1D49D
-1D4A0 1D4A1
-1D4A3 1D4A4
-1D4A7 1D4A8
-1D4AD
-1D4BA
-1D4BC
-1D4C1
-1D4C4
-1D506
-1D50B 1D50C
-1D515
-1D51D
-1D53A
-1D53F
-1D545
-1D547 1D549
-1D551
-1D6A4 1D6A7
-1D7CA 1D7CD
-1D800 1FFFF
-2A6D7 2F7FF
-2FA1E 10FFFF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Canadian.pl b/Master/xemtex/perl/lib/unicore/lib/Canadian.pl
deleted file mode 100644
index e4942b1d441..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Canadian.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{CanadianAboriginal} (and fuzzy permutations)
-#
-# Meaning: Script 'CANADIAN_ABORIGINAL'
-#
-return <<'END';
-1401 166C CANADIAN_ABORIGINAL
-166F 1676 CANADIAN_ABORIGINAL
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Canon.pl b/Master/xemtex/perl/lib/unicore/lib/Canon.pl
deleted file mode 100644
index 4d30c4b3439..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Canon.pl
+++ /dev/null
@@ -1,224 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Canon}
-#
-# Meaning: Decomposes to multiple characters
-#
-return <<'END';
-00C0 00C5
-00C7 00CF
-00D1 00D6
-00D9 00DD
-00E0 00E5
-00E7 00EF
-00F1 00F6
-00F9 00FD
-00FF 010F
-0112 0125
-0128 0130
-0134 0137
-0139 013E
-0143 0148
-014C 0151
-0154 0165
-0168 017E
-01A0 01A1
-01AF 01B0
-01CD 01DC
-01DE 01E3
-01E6 01F0
-01F4 01F5
-01F8 021B
-021E 021F
-0226 0233
-0340 0341
-0343 0344
-0374
-037E
-0385 038A
-038C
-038E 0390
-03AA 03B0
-03CA 03CE
-03D3 03D4
-0400 0401
-0403
-0407
-040C 040E
-0419
-0439
-0450 0451
-0453
-0457
-045C 045E
-0476 0477
-04C1 04C2
-04D0 04D3
-04D6 04D7
-04DA 04DF
-04E2 04E7
-04EA 04F5
-04F8 04F9
-0622 0626
-06C0
-06C2
-06D3
-0929
-0931
-0934
-0958 095F
-09CB 09CC
-09DC 09DD
-09DF
-0A33
-0A36
-0A59 0A5B
-0A5E
-0B48
-0B4B 0B4C
-0B5C 0B5D
-0B94
-0BCA 0BCC
-0C48
-0CC0
-0CC7 0CC8
-0CCA 0CCB
-0D4A 0D4C
-0DDA
-0DDC 0DDE
-0F43
-0F4D
-0F52
-0F57
-0F5C
-0F69
-0F73
-0F75 0F76
-0F78
-0F81
-0F93
-0F9D
-0FA2
-0FA7
-0FAC
-0FB9
-1026
-1E00 1E99
-1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC1 1FC4
-1FC6 1FD3
-1FD6 1FDB
-1FDD 1FEF
-1FF2 1FF4
-1FF6 1FFD
-2000 2001
-2126
-212A 212B
-219A 219B
-21AE
-21CD 21CF
-2204
-2209
-220C
-2224
-2226
-2241
-2244
-2247
-2249
-2260
-2262
-226D 2271
-2274 2275
-2278 2279
-2280 2281
-2284 2285
-2288 2289
-22AC 22AF
-22E0 22E3
-22EA 22ED
-2329 232A
-2ADC
-304C
-304E
-3050
-3052
-3054
-3056
-3058
-305A
-305C
-305E
-3060
-3062
-3065
-3067
-3069
-3070 3071
-3073 3074
-3076 3077
-3079 307A
-307C 307D
-3094
-309E
-30AC
-30AE
-30B0
-30B2
-30B4
-30B6
-30B8
-30BA
-30BC
-30BE
-30C0
-30C2
-30C5
-30C7
-30C9
-30D0 30D1
-30D3 30D4
-30D6 30D7
-30D9 30DA
-30DC 30DD
-30F4
-30F7 30FA
-30FE
-F900 FA0D
-FA10
-FA12
-FA15 FA1E
-FA20
-FA22
-FA25 FA26
-FA2A FA2D
-FA30 FA6A
-FB1D
-FB1F
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FB4E
-1D15E 1D164
-1D1BB 1D1C0
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cc.pl b/Master/xemtex/perl/lib/unicore/lib/Cc.pl
deleted file mode 100644
index 34faf2eca8f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cc.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cc}
-# \p{Cc} (and fuzzy permutations)
-#
-# Meaning: General Category 'Cc'
-#
-return <<'END';
-0000 001F
-007F 009F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cf.pl b/Master/xemtex/perl/lib/unicore/lib/Cf.pl
deleted file mode 100644
index 9012824ee45..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cf.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cf}
-# \p{Cf} (and fuzzy permutations)
-#
-# Meaning: General Category 'Cf'
-#
-return <<'END';
-06DD
-070F
-180E
-200C 200F
-202A 202E
-2060 2063
-206A 206F
-FEFF
-FFF9 FFFB
-1D173 1D17A
-E0001
-E0020 E007F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cherokee.pl b/Master/xemtex/perl/lib/unicore/lib/Cherokee.pl
deleted file mode 100644
index 4844ef48799..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cherokee.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cherokee} (and fuzzy permutations)
-#
-# Meaning: Script 'CHEROKEE'
-#
-return <<'END';
-13A0 13F4 CHEROKEE
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cn.pl b/Master/xemtex/perl/lib/unicore/lib/Cn.pl
deleted file mode 100644
index c080d192302..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cn.pl
+++ /dev/null
@@ -1,399 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cn}
-# \p{Cn} (and fuzzy permutations)
-#
-# Meaning: General Category 'Cn' [not functional in Perl]
-#
-return <<'END';
-0221
-0234 024F
-02AE 02AF
-02EF 02FF
-0350 035F
-0370 0373
-0376 0379
-037B 037D
-037F 0383
-038B
-038D
-03A2
-03CF
-03F7 03FF
-0487
-04CF
-04F6 04F7
-04FA 04FF
-0510 0530
-0557 0558
-0560
-0588
-058B 0590
-05A2
-05BA
-05C5 05CF
-05EB 05EF
-05F5 060B
-060D 061A
-061C 061E
-0620
-063B 063F
-0656 065F
-06EE 06EF
-06FF
-070E
-072D 072F
-074B 077F
-07B2 0900
-0904
-093A 093B
-094E 094F
-0955 0957
-0971 0980
-0984
-098D 098E
-0991 0992
-09A9
-09B1
-09B3 09B5
-09BA 09BB
-09BD
-09C5 09C6
-09C9 09CA
-09CE 09D6
-09D8 09DB
-09DE
-09E4 09E5
-09FB 0A01
-0A03 0A04
-0A0B 0A0E
-0A11 0A12
-0A29
-0A31
-0A34
-0A37
-0A3A 0A3B
-0A3D
-0A43 0A46
-0A49 0A4A
-0A4E 0A58
-0A5D
-0A5F 0A65
-0A75 0A80
-0A84
-0A8C
-0A8E
-0A92
-0AA9
-0AB1
-0AB4
-0ABA 0ABB
-0AC6
-0ACA
-0ACE 0ACF
-0AD1 0ADF
-0AE1 0AE5
-0AF0 0B00
-0B04
-0B0D 0B0E
-0B11 0B12
-0B29
-0B31
-0B34 0B35
-0B3A 0B3B
-0B44 0B46
-0B49 0B4A
-0B4E 0B55
-0B58 0B5B
-0B5E
-0B62 0B65
-0B71 0B81
-0B84
-0B8B 0B8D
-0B91
-0B96 0B98
-0B9B
-0B9D
-0BA0 0BA2
-0BA5 0BA7
-0BAB 0BAD
-0BB6
-0BBA 0BBD
-0BC3 0BC5
-0BC9
-0BCE 0BD6
-0BD8 0BE6
-0BF3 0C00
-0C04
-0C0D
-0C11
-0C29
-0C34
-0C3A 0C3D
-0C45
-0C49
-0C4E 0C54
-0C57 0C5F
-0C62 0C65
-0C70 0C81
-0C84
-0C8D
-0C91
-0CA9
-0CB4
-0CBA 0CBD
-0CC5
-0CC9
-0CCE 0CD4
-0CD7 0CDD
-0CDF
-0CE2 0CE5
-0CF0 0D01
-0D04
-0D0D
-0D11
-0D29
-0D3A 0D3D
-0D44 0D45
-0D49
-0D4E 0D56
-0D58 0D5F
-0D62 0D65
-0D70 0D81
-0D84
-0D97 0D99
-0DB2
-0DBC
-0DBE 0DBF
-0DC7 0DC9
-0DCB 0DCE
-0DD5
-0DD7
-0DE0 0DF1
-0DF5 0E00
-0E3B 0E3E
-0E5C 0E80
-0E83
-0E85 0E86
-0E89
-0E8B 0E8C
-0E8E 0E93
-0E98
-0EA0
-0EA4
-0EA6
-0EA8 0EA9
-0EAC
-0EBA
-0EBE 0EBF
-0EC5
-0EC7
-0ECE 0ECF
-0EDA 0EDB
-0EDE 0EFF
-0F48
-0F6B 0F70
-0F8C 0F8F
-0F98
-0FBD
-0FCD 0FCE
-0FD0 0FFF
-1022
-1028
-102B
-1033 1035
-103A 103F
-105A 109F
-10C6 10CF
-10F9 10FA
-10FC 10FF
-115A 115E
-11A3 11A7
-11FA 11FF
-1207
-1247
-1249
-124E 124F
-1257
-1259
-125E 125F
-1287
-1289
-128E 128F
-12AF
-12B1
-12B6 12B7
-12BF
-12C1
-12C6 12C7
-12CF
-12D7
-12EF
-130F
-1311
-1316 1317
-131F
-1347
-135B 1360
-137D 139F
-13F5 1400
-1677 167F
-169D 169F
-16F1 16FF
-170D
-1715 171F
-1737 173F
-1754 175F
-176D
-1771
-1774 177F
-17DD 17DF
-17EA 17FF
-180F
-181A 181F
-1878 187F
-18AA 1DFF
-1E9C 1E9F
-1EFA 1EFF
-1F16 1F17
-1F1E 1F1F
-1F46 1F47
-1F4E 1F4F
-1F58
-1F5A
-1F5C
-1F5E
-1F7E 1F7F
-1FB5
-1FC5
-1FD4 1FD5
-1FDC
-1FF0 1FF1
-1FF5
-1FFF
-2053 2056
-2058 205E
-2064 2069
-2072 2073
-208F 209F
-20B2 20CF
-20EB 20FF
-213B 213C
-214C 2152
-2184 218F
-23CF 23FF
-2427 243F
-244B 245F
-24FF
-2614 2615
-2618
-267E 267F
-268A 2700
-2705
-270A 270B
-2728
-274C
-274E
-2753 2755
-2757
-275F 2760
-2795 2797
-27B0
-27BF 27CF
-27EC 27EF
-2B00 2E7F
-2E9A
-2EF4 2EFF
-2FD6 2FEF
-2FFC 2FFF
-3040
-3097 3098
-3100 3104
-312D 3130
-318F
-31B8 31EF
-321D 321F
-3244 3250
-327C 327E
-32CC 32CF
-32FF
-3377 337A
-33DE 33DF
-33FF
-4DB6 4DFF
-9FA6 9FFF
-A48D A48F
-A4C7 ABFF
-D7A4 D7FF
-FA2E FA2F
-FA6B FAFF
-FB07 FB12
-FB18 FB1C
-FB37
-FB3D
-FB3F
-FB42
-FB45
-FBB2 FBD2
-FD40 FD4F
-FD90 FD91
-FDC8 FDEF
-FDFD FDFF
-FE10 FE1F
-FE24 FE2F
-FE47 FE48
-FE53
-FE67
-FE6C FE6F
-FE75
-FEFD FEFE
-FF00
-FFBF FFC1
-FFC8 FFC9
-FFD0 FFD1
-FFD8 FFD9
-FFDD FFDF
-FFE7
-FFEF FFF8
-FFFE 102FF
-1031F
-10324 1032F
-1034B 103FF
-10426 10427
-1044E 1CFFF
-1D0F6 1D0FF
-1D127 1D129
-1D1DE 1D3FF
-1D455
-1D49D
-1D4A0 1D4A1
-1D4A3 1D4A4
-1D4A7 1D4A8
-1D4AD
-1D4BA
-1D4BC
-1D4C1
-1D4C4
-1D506
-1D50B 1D50C
-1D515
-1D51D
-1D53A
-1D53F
-1D545
-1D547 1D549
-1D551
-1D6A4 1D6A7
-1D7CA 1D7CD
-1D800 1FFFF
-2A6D7 2F7FF
-2FA1E E0000
-E0002 E001F
-E0080 EFFFF
-FFFFE FFFFF
-10FFFE 10FFFF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cntrl.pl b/Master/xemtex/perl/lib/unicore/lib/Cntrl.pl
deleted file mode 100644
index b794776699b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cntrl.pl
+++ /dev/null
@@ -1,29 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cntrl}
-#
-# Meaning: [[:Cntrl:]]
-#
-return <<'END';
-0000 001F
-007F 009F
-06DD
-070F
-180E
-200C 200F
-202A 202E
-2060 2063
-206A 206F
-D800 F8FF
-FEFF
-FFF9 FFFB
-1D173 1D17A
-E0001
-E0020 E007F
-F0000 FFFFD
-100000 10FFFD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Co.pl b/Master/xemtex/perl/lib/unicore/lib/Co.pl
deleted file mode 100644
index 1f1ad215689..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Co.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Co}
-# \p{Co} (and fuzzy permutations)
-#
-# Meaning: General Category 'Co'
-#
-return <<'END';
-E000 F8FF
-F0000 FFFFD
-100000 10FFFD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Common.pl b/Master/xemtex/perl/lib/unicore/lib/Common.pl
deleted file mode 100644
index 677d38e8bf2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Common.pl
+++ /dev/null
@@ -1,367 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Common} (and fuzzy permutations)
-#
-# Meaning: Pseudo-Script of codepoints not in other Unicode scripts
-#
-return <<'END';
-0000 0040
-005B 0060
-007B 00A9
-00AB 00B4
-00B6 00B9
-00BB 00BF
-00D7
-00F7
-0221
-0234 024F
-02AE 02AF
-02B9 02DF
-02E5 02FF
-0350 035F
-0370 0379
-037B 0385
-0387
-038B
-038D
-03A2
-03CF
-03F6 03FF
-0482
-0487
-04CF
-04F6 04F7
-04FA 04FF
-0510 0530
-0557 0558
-055A 0560
-0588 0590
-05A2
-05BA
-05BE
-05C0
-05C3
-05C5 05CF
-05EB 05EF
-05F3 0620
-063B 0640
-0656 066D
-06D4
-06E9
-06EE 06F9
-06FD 070F
-072D 072F
-074B 077F
-07B2 0900
-0904
-093A 093B
-094E 094F
-0955 0957
-0964 0965
-0970 0980
-0984
-098D 098E
-0991 0992
-09A9
-09B1
-09B3 09B5
-09BA 09BB
-09BD
-09C5 09C6
-09C9 09CA
-09CE 09D6
-09D8 09DB
-09DE
-09E4 09E5
-09F2 0A01
-0A03 0A04
-0A0B 0A0E
-0A11 0A12
-0A29
-0A31
-0A34
-0A37
-0A3A 0A3B
-0A3D
-0A43 0A46
-0A49 0A4A
-0A4E 0A58
-0A5D
-0A5F 0A65
-0A75 0A80
-0A84
-0A8C
-0A8E
-0A92
-0AA9
-0AB1
-0AB4
-0ABA 0ABB
-0AC6
-0ACA
-0ACE 0ACF
-0AD1 0ADF
-0AE1 0AE5
-0AF0 0B00
-0B04
-0B0D 0B0E
-0B11 0B12
-0B29
-0B31
-0B34 0B35
-0B3A 0B3B
-0B44 0B46
-0B49 0B4A
-0B4E 0B55
-0B58 0B5B
-0B5E
-0B62 0B65
-0B70 0B81
-0B84
-0B8B 0B8D
-0B91
-0B96 0B98
-0B9B
-0B9D
-0BA0 0BA2
-0BA5 0BA7
-0BAB 0BAD
-0BB6
-0BBA 0BBD
-0BC3 0BC5
-0BC9
-0BCE 0BD6
-0BD8 0BE6
-0BF3 0C00
-0C04
-0C0D
-0C11
-0C29
-0C34
-0C3A 0C3D
-0C45
-0C49
-0C4E 0C54
-0C57 0C5F
-0C62 0C65
-0C70 0C81
-0C84
-0C8D
-0C91
-0CA9
-0CB4
-0CBA 0CBD
-0CC5
-0CC9
-0CCE 0CD4
-0CD7 0CDD
-0CDF
-0CE2 0CE5
-0CF0 0D01
-0D04
-0D0D
-0D11
-0D29
-0D3A 0D3D
-0D44 0D45
-0D49
-0D4E 0D56
-0D58 0D5F
-0D62 0D65
-0D70 0D81
-0D84
-0D97 0D99
-0DB2
-0DBC
-0DBE 0DBF
-0DC7 0DC9
-0DCB 0DCE
-0DD5
-0DD7
-0DE0 0DF1
-0DF4 0E00
-0E3B 0E3F
-0E4F
-0E5A 0E80
-0E83
-0E85 0E86
-0E89
-0E8B 0E8C
-0E8E 0E93
-0E98
-0EA0
-0EA4
-0EA6
-0EA8 0EA9
-0EAC
-0EBA
-0EBE 0EBF
-0EC5
-0EC7
-0ECE 0ECF
-0EDA 0EDB
-0EDE 0EFF
-0F01 0F17
-0F1A 0F1F
-0F34
-0F36
-0F38
-0F3A 0F3F
-0F48
-0F6B 0F70
-0F85
-0F8C 0F8F
-0F98
-0FBD 0FC5
-0FC7 0FFF
-1022
-1028
-102B
-1033 1035
-103A 103F
-104A 104F
-105A 109F
-10C6 10CF
-10F9 10FF
-115A 115E
-11A3 11A7
-11FA 11FF
-1207
-1247
-1249
-124E 124F
-1257
-1259
-125E 125F
-1287
-1289
-128E 128F
-12AF
-12B1
-12B6 12B7
-12BF
-12C1
-12C6 12C7
-12CF
-12D7
-12EF
-130F
-1311
-1316 1317
-131F
-1347
-135B 1368
-137D 139F
-13F5 1400
-166D 166E
-1677 1680
-169B 169F
-16EB 16ED
-16F1 16FF
-170D
-1715 171F
-1735 173F
-1754 175F
-176D
-1771
-1774 177F
-17D4 17DF
-17EA 180A
-180E 180F
-181A 181F
-1878 187F
-18AA 1DFF
-1E9C 1E9F
-1EFA 1EFF
-1F16 1F17
-1F1E 1F1F
-1F46 1F47
-1F4E 1F4F
-1F58
-1F5A
-1F5C
-1F5E
-1F7E 1F7F
-1FB5
-1FBD
-1FBF 1FC1
-1FC5
-1FCD 1FCF
-1FD4 1FD5
-1FDC 1FDF
-1FED 1FF1
-1FF5
-1FFD 2070
-2072 207E
-2080 20CF
-20EB 2125
-2127 2129
-212C 2E7F
-2E9A
-2EF4 2EFF
-2FD6 3004
-3006
-3008 3020
-3030 3037
-303C 3040
-3097 3098
-309B 309C
-30A0
-30FB 30FC
-3100 3104
-312D 3130
-318F 319F
-31B8 31EF
-3200 33FF
-4DB6 4DFF
-9FA6 9FFF
-A48D A48F
-A4A2 A4A3
-A4B4
-A4C1
-A4C5
-A4C7 ABFF
-D7A4 F8FF
-FA2E FA2F
-FA6B FAFF
-FB07 FB12
-FB18 FB1C
-FB29
-FB37
-FB3D
-FB3F
-FB42
-FB45
-FBB2 FBD2
-FD3E FD4F
-FD90 FD91
-FDC8 FDEF
-FDFC FDFF
-FE10 FE1F
-FE24 FE6F
-FE75
-FEFD FF20
-FF3B FF40
-FF5B FF65
-FF70
-FF9E FF9F
-FFBF FFC1
-FFC8 FFC9
-FFD0 FFD1
-FFD8 FFD9
-FFDD 102FF
-1031F 1032F
-1034B 103FF
-10426 10427
-1044E 1D166
-1D16A 1D17A
-1D183 1D184
-1D18C 1D1A9
-1D1AE 1FFFF
-2A6D7 2F7FF
-2FA1E 10FFFF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Compat.pl b/Master/xemtex/perl/lib/unicore/lib/Compat.pl
deleted file mode 100644
index 12806f13605..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Compat.pl
+++ /dev/null
@@ -1,143 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Compat}
-#
-# Meaning: Compatible with a more-basic character
-#
-return <<'END';
-00A0
-00A8
-00AA
-00AF
-00B2 00B5
-00B8 00BA
-00BC 00BE
-0132 0133
-013F 0140
-0149
-017F
-01C4 01CC
-01F1 01F3
-02B0 02B8
-02D8 02DD
-02E0 02E4
-037A
-0384
-03D0 03D2
-03D5 03D6
-03F0 03F2
-03F4 03F5
-0587
-0675 0678
-0E33
-0EB3
-0EDC 0EDD
-0F0C
-0F77
-0F79
-1E9A
-1FBD
-1FBF 1FC0
-1FFE
-2002 200A
-2011
-2017
-2024 2026
-202F
-2033 2034
-2036 2037
-203C
-203E
-2047 2049
-2057
-205F
-2070 2071
-2074 208E
-20A8
-2100 2103
-2105 2107
-2109 2113
-2115 2116
-2119 211D
-2120 2122
-2124
-2128
-212C 212D
-212F 2131
-2133 2139
-213D 2140
-2145 2149
-2153 217F
-222C 222D
-222F 2230
-2460 24EA
-2A0C
-2A74 2A76
-2E9F
-2EF3
-2F00 2FD5
-3000
-3036
-3038 303A
-309B 309C
-309F
-30FF
-3131 318E
-3192 319F
-3200 321C
-3220 3243
-3251 327B
-3280 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-FB00 FB06
-FB13 FB17
-FB20 FB29
-FB4F FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFC
-FE30 FE44
-FE49 FE52
-FE54 FE66
-FE68 FE6B
-FE70 FE72
-FE74
-FE76 FEFC
-FF01 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-FFE0 FFE6
-FFE8 FFEE
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cs.pl b/Master/xemtex/perl/lib/unicore/lib/Cs.pl
deleted file mode 100644
index 4624d9da766..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cs.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cs}
-# \p{Cs} (and fuzzy permutations)
-#
-# Meaning: General Category 'Cs'
-#
-return <<'END';
-D800 DFFF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Cyrillic.pl b/Master/xemtex/perl/lib/unicore/lib/Cyrillic.pl
deleted file mode 100644
index 690e2f7a9ef..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Cyrillic.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Cyrillic} (and fuzzy permutations)
-#
-# Meaning: Script 'CYRILLIC'
-#
-return <<'END';
-0400 0481 CYRILLIC
-0483 0486 CYRILLIC
-048A 04CE CYRILLIC
-04D0 04F5 CYRILLIC
-04F8 04F9 CYRILLIC
-0500 050F CYRILLIC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCcircle.pl b/Master/xemtex/perl/lib/unicore/lib/DCcircle.pl
deleted file mode 100644
index b873609a4de..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCcircle.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCcircle}
-#
-# Meaning: Compatible with 'circle'
-#
-return <<'END';
-2460 2473
-24B6 24EA
-3251 327B
-3280 32BF
-32D0 32FE
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCcompat.pl b/Master/xemtex/perl/lib/unicore/lib/DCcompat.pl
deleted file mode 100644
index a35aaa9da3c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCcompat.pl
+++ /dev/null
@@ -1,81 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCcompat}
-#
-# Meaning: Compatible with 'compat'
-#
-return <<'END';
-00A8
-00AF
-00B4 00B5
-00B8
-0132 0133
-013F 0140
-0149
-017F
-01C4 01CC
-01F1 01F3
-02D8 02DD
-037A
-0384
-03D0 03D2
-03D5 03D6
-03F0 03F2
-03F4 03F5
-0587
-0675 0678
-0E33
-0EB3
-0EDC 0EDD
-0F77
-0F79
-1E9A
-1FBD
-1FBF 1FC0
-1FFE
-2002 2006
-2008 200A
-2017
-2024 2026
-2033 2034
-2036 2037
-203C
-203E
-2047 2049
-2057
-205F
-20A8
-2100 2101
-2103
-2105 2107
-2109
-2116
-2121
-2135 2138
-2160 217F
-222C 222D
-222F 2230
-2474 24B5
-2A0C
-2A74 2A76
-2E9F
-2EF3
-2F00 2FD5
-3036
-3038 303A
-309B 309C
-3131 318E
-3200 321C
-3220 3243
-32C0 32CB
-3358 3370
-33E0 33FE
-FB00 FB06
-FB13 FB17
-FB4F
-FE49 FE4F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCfinal.pl b/Master/xemtex/perl/lib/unicore/lib/DCfinal.pl
deleted file mode 100644
index d5fa53efe45..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCfinal.pl
+++ /dev/null
@@ -1,125 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCfinal}
-#
-# Meaning: Compatible with 'final'
-#
-return <<'END';
-FB51
-FB53
-FB57
-FB5B
-FB5F
-FB63
-FB67
-FB6B
-FB6F
-FB73
-FB77
-FB7B
-FB7F
-FB83
-FB85
-FB87
-FB89
-FB8B
-FB8D
-FB8F
-FB93
-FB97
-FB9B
-FB9F
-FBA1
-FBA5
-FBA7
-FBAB
-FBAF
-FBB1
-FBD4
-FBD8
-FBDA
-FBDC
-FBDF
-FBE1
-FBE3
-FBE5
-FBEB
-FBED
-FBEF
-FBF1
-FBF3
-FBF5
-FBF7
-FBFA
-FBFD
-FC64 FC96
-FD11 FD2C
-FD3C
-FD51
-FD58
-FD5A FD5B
-FD5E FD5F
-FD62
-FD64
-FD66 FD67
-FD69 FD6A
-FD6C
-FD6E FD6F
-FD71
-FD74 FD76
-FD78 FD7C
-FD7E FD82
-FD84 FD85
-FD87
-FD8B
-FD96 FD97
-FD99 FD9C
-FD9E FDB3
-FDB6 FDB7
-FDB9
-FDBB FDC2
-FDC6 FDC7
-FE82
-FE84
-FE86
-FE88
-FE8A
-FE8E
-FE90
-FE94
-FE96
-FE9A
-FE9E
-FEA2
-FEA6
-FEAA
-FEAC
-FEAE
-FEB0
-FEB2
-FEB6
-FEBA
-FEBE
-FEC2
-FEC6
-FECA
-FECE
-FED2
-FED6
-FEDA
-FEDE
-FEE2
-FEE6
-FEEA
-FEEE
-FEF0
-FEF2
-FEF6
-FEF8
-FEFA
-FEFC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCfont.pl b/Master/xemtex/perl/lib/unicore/lib/DCfont.pl
deleted file mode 100644
index 30b94d1aeb5..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCfont.pl
+++ /dev/null
@@ -1,47 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCfont}
-#
-# Meaning: Compatible with 'font'
-#
-return <<'END';
-2102
-210A 2113
-2115
-2119 211D
-2124
-2128
-212C 212D
-212F 2131
-2133 2134
-2139
-213D 2140
-2145 2149
-FB20 FB29
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCfracti.pl b/Master/xemtex/perl/lib/unicore/lib/DCfracti.pl
deleted file mode 100644
index 87b4247f476..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCfracti.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCfraction}
-#
-# Meaning: Compatible with 'fraction'
-#
-return <<'END';
-00BC 00BE
-2153 215F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCinitia.pl b/Master/xemtex/perl/lib/unicore/lib/DCinitia.pl
deleted file mode 100644
index b903eceef61..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCinitia.pl
+++ /dev/null
@@ -1,87 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCinitial}
-#
-# Meaning: Compatible with 'initial'
-#
-return <<'END';
-FB54
-FB58
-FB5C
-FB60
-FB64
-FB68
-FB6C
-FB70
-FB74
-FB78
-FB7C
-FB80
-FB90
-FB94
-FB98
-FB9C
-FBA2
-FBA8
-FBAC
-FBD5
-FBE6
-FBE8
-FBF8
-FBFB
-FBFE
-FC97 FCDE
-FD2D FD33
-FD50
-FD52 FD57
-FD59
-FD5C FD5D
-FD60 FD61
-FD63
-FD65
-FD68
-FD6B
-FD6D
-FD70
-FD72 FD73
-FD77
-FD7D
-FD83
-FD86
-FD88 FD8A
-FD8C FD8F
-FD92 FD95
-FD98
-FD9D
-FDB4 FDB5
-FDB8
-FDBA
-FDC3 FDC5
-FE8B
-FE91
-FE97
-FE9B
-FE9F
-FEA3
-FEA7
-FEB3
-FEB7
-FEBB
-FEBF
-FEC3
-FEC7
-FECB
-FECF
-FED3
-FED7
-FEDB
-FEDF
-FEE3
-FEE7
-FEEB
-FEF3
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCisolat.pl b/Master/xemtex/perl/lib/unicore/lib/DCisolat.pl
deleted file mode 100644
index d973ea495e2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCisolat.pl
+++ /dev/null
@@ -1,110 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCisolated}
-#
-# Meaning: Compatible with 'isolated'
-#
-return <<'END';
-FB50
-FB52
-FB56
-FB5A
-FB5E
-FB62
-FB66
-FB6A
-FB6E
-FB72
-FB76
-FB7A
-FB7E
-FB82
-FB84
-FB86
-FB88
-FB8A
-FB8C
-FB8E
-FB92
-FB96
-FB9A
-FB9E
-FBA0
-FBA4
-FBA6
-FBAA
-FBAE
-FBB0
-FBD3
-FBD7
-FBD9
-FBDB
-FBDD FBDE
-FBE0
-FBE2
-FBE4
-FBEA
-FBEC
-FBEE
-FBF0
-FBF2
-FBF4
-FBF6
-FBF9
-FBFC
-FC00 FC63
-FCF5 FD10
-FD3D
-FDF0 FDFC
-FE70
-FE72
-FE74
-FE76
-FE78
-FE7A
-FE7C
-FE7E
-FE80 FE81
-FE83
-FE85
-FE87
-FE89
-FE8D
-FE8F
-FE93
-FE95
-FE99
-FE9D
-FEA1
-FEA5
-FEA9
-FEAB
-FEAD
-FEAF
-FEB1
-FEB5
-FEB9
-FEBD
-FEC1
-FEC5
-FEC9
-FECD
-FED1
-FED5
-FED9
-FEDD
-FEE1
-FEE5
-FEE9
-FEED
-FEEF
-FEF1
-FEF5
-FEF7
-FEF9
-FEFB
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCmedial.pl b/Master/xemtex/perl/lib/unicore/lib/DCmedial.pl
deleted file mode 100644
index 8d15d90321d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCmedial.pl
+++ /dev/null
@@ -1,66 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCmedial}
-#
-# Meaning: Compatible with 'medial'
-#
-return <<'END';
-FB55
-FB59
-FB5D
-FB61
-FB65
-FB69
-FB6D
-FB71
-FB75
-FB79
-FB7D
-FB81
-FB91
-FB95
-FB99
-FB9D
-FBA3
-FBA9
-FBAD
-FBD6
-FBE7
-FBE9
-FBFF
-FCDF FCF4
-FD34 FD3B
-FE71
-FE77
-FE79
-FE7B
-FE7D
-FE7F
-FE8C
-FE92
-FE98
-FE9C
-FEA0
-FEA4
-FEA8
-FEB4
-FEB8
-FEBC
-FEC0
-FEC4
-FEC8
-FECC
-FED0
-FED4
-FED8
-FEDC
-FEE0
-FEE4
-FEE8
-FEEC
-FEF4
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCnarrow.pl b/Master/xemtex/perl/lib/unicore/lib/DCnarrow.pl
deleted file mode 100644
index 33eca3ce359..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCnarrow.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCnarrow}
-#
-# Meaning: Compatible with 'narrow'
-#
-return <<'END';
-FF61 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-FFE8 FFEE
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCnoBrea.pl b/Master/xemtex/perl/lib/unicore/lib/DCnoBrea.pl
deleted file mode 100644
index 8cbaecd257a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCnoBrea.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCnoBreak}
-#
-# Meaning: Compatible with 'noBreak'
-#
-return <<'END';
-00A0
-0F0C
-2007
-2011
-202F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCsmall.pl b/Master/xemtex/perl/lib/unicore/lib/DCsmall.pl
deleted file mode 100644
index 6606d7567fd..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCsmall.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCsmall}
-#
-# Meaning: Compatible with 'small'
-#
-return <<'END';
-FE50 FE52
-FE54 FE66
-FE68 FE6B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCsquare.pl b/Master/xemtex/perl/lib/unicore/lib/DCsquare.pl
deleted file mode 100644
index 28d4f64d7b6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCsquare.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCsquare}
-#
-# Meaning: Compatible with 'square'
-#
-return <<'END';
-3300 3357
-3371 3376
-337B 33DD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCsub.pl b/Master/xemtex/perl/lib/unicore/lib/DCsub.pl
deleted file mode 100644
index df3daf6bb0a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCsub.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCsub}
-#
-# Meaning: Compatible with 'sub'
-#
-return <<'END';
-2080 208E
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCsuper.pl b/Master/xemtex/perl/lib/unicore/lib/DCsuper.pl
deleted file mode 100644
index a11ac2dcb96..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCsuper.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCsuper}
-#
-# Meaning: Compatible with 'super'
-#
-return <<'END';
-00AA
-00B2 00B3
-00B9 00BA
-02B0 02B8
-02E0 02E4
-2070 2071
-2074 207F
-2120
-2122
-3192 319F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCvertic.pl b/Master/xemtex/perl/lib/unicore/lib/DCvertic.pl
deleted file mode 100644
index d7928e562f3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCvertic.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCvertical}
-#
-# Meaning: Compatible with 'vertical'
-#
-return <<'END';
-309F
-30FF
-FE30 FE44
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/DCwide.pl b/Master/xemtex/perl/lib/unicore/lib/DCwide.pl
deleted file mode 100644
index 664c498d281..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/DCwide.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{DCwide}
-#
-# Meaning: Compatible with 'wide'
-#
-return <<'END';
-3000
-FF01 FF60
-FFE0 FFE6
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Dash.pl b/Master/xemtex/perl/lib/unicore/lib/Dash.pl
deleted file mode 100644
index 3d4dd59b7b0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Dash.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Dash} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Dash'
-#
-return <<'END';
-002D Dash
-00AD Dash
-058A Dash
-1806 Dash
-2010 2015 Dash
-207B Dash
-208B Dash
-2212 Dash
-301C Dash
-3030 Dash
-FE31 FE32 Dash
-FE58 Dash
-FE63 Dash
-FF0D Dash
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Deprecat.pl b/Master/xemtex/perl/lib/unicore/lib/Deprecat.pl
deleted file mode 100644
index 1866c6c2da6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Deprecat.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Deprecated} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Deprecated'
-#
-return <<'END';
-0340 0341 Deprecated
-206A 206F Deprecated
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Deseret.pl b/Master/xemtex/perl/lib/unicore/lib/Deseret.pl
deleted file mode 100644
index 20431e628f8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Deseret.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Deseret} (and fuzzy permutations)
-#
-# Meaning: Script 'DESERET'
-#
-return <<'END';
-10400 10425 DESERET
-10428 1044D DESERET
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Devanaga.pl b/Master/xemtex/perl/lib/unicore/lib/Devanaga.pl
deleted file mode 100644
index d35fc083127..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Devanaga.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Devanagari} (and fuzzy permutations)
-#
-# Meaning: Script 'DEVANAGARI'
-#
-return <<'END';
-0901 0903 DEVANAGARI
-0905 0939 DEVANAGARI
-093C 094D DEVANAGARI
-0950 0954 DEVANAGARI
-0958 0963 DEVANAGARI
-0966 096F DEVANAGARI
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Diacriti.pl b/Master/xemtex/perl/lib/unicore/lib/Diacriti.pl
deleted file mode 100644
index e22111672b7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Diacriti.pl
+++ /dev/null
@@ -1,89 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Diacritic} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Diacritic'
-#
-return <<'END';
-005E Diacritic
-0060 Diacritic
-00A8 Diacritic
-00AF Diacritic
-00B4 Diacritic
-00B7 00B8 Diacritic
-02B0 02EE Diacritic
-0300 034E Diacritic
-0360 0362 Diacritic
-0374 0375 Diacritic
-037A Diacritic
-0384 0385 Diacritic
-0483 0486 Diacritic
-0559 Diacritic
-0591 05A1 Diacritic
-05A3 05B9 Diacritic
-05BB 05BD Diacritic
-05BF Diacritic
-05C1 05C2 Diacritic
-05C4 Diacritic
-064B 0652 Diacritic
-06DF 06E0 Diacritic
-06E5 06E6 Diacritic
-06EA 06EC Diacritic
-0730 074A Diacritic
-07A6 07B0 Diacritic
-093C Diacritic
-094D Diacritic
-0951 0954 Diacritic
-09BC Diacritic
-09CD Diacritic
-0A3C Diacritic
-0A4D Diacritic
-0ABC Diacritic
-0ACD Diacritic
-0B3C Diacritic
-0B4D Diacritic
-0BCD Diacritic
-0C4D Diacritic
-0CCD Diacritic
-0D4D Diacritic
-0DCA Diacritic
-0E47 0E4C Diacritic
-0E4E Diacritic
-0EC8 0ECC Diacritic
-0F18 0F19 Diacritic
-0F35 Diacritic
-0F37 Diacritic
-0F39 Diacritic
-0F3E 0F3F Diacritic
-0F82 0F84 Diacritic
-0F86 0F87 Diacritic
-0FC6 Diacritic
-1037 Diacritic
-1039 Diacritic
-17C9 17D3 Diacritic
-1FBD Diacritic
-1FBF 1FC1 Diacritic
-1FCD 1FCF Diacritic
-1FDD 1FDF Diacritic
-1FED 1FEF Diacritic
-1FFD 1FFE Diacritic
-302A 302F Diacritic
-3099 309C Diacritic
-30FC Diacritic
-FB1E Diacritic
-FE20 FE23 Diacritic
-FF3E Diacritic
-FF40 Diacritic
-FF70 Diacritic
-FF9E FF9F Diacritic
-FFE3 Diacritic
-1D167 1D169 Diacritic
-1D16D 1D172 Diacritic
-1D17B 1D182 Diacritic
-1D185 1D18B Diacritic
-1D1AA 1D1AD Diacritic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Digit.pl b/Master/xemtex/perl/lib/unicore/lib/Digit.pl
deleted file mode 100644
index 3a8c507ae73..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Digit.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Digit}
-#
-# Meaning: [[:Digit:]]
-#
-return <<'END';
-0030 0039
-0660 0669
-06F0 06F9
-0966 096F
-09E6 09EF
-0A66 0A6F
-0AE6 0AEF
-0B66 0B6F
-0BE7 0BEF
-0C66 0C6F
-0CE6 0CEF
-0D66 0D6F
-0E50 0E59
-0ED0 0ED9
-0F20 0F29
-1040 1049
-1369 1371
-17E0 17E9
-1810 1819
-FF10 FF19
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Ethiopic.pl b/Master/xemtex/perl/lib/unicore/lib/Ethiopic.pl
deleted file mode 100644
index 433d7d8e040..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Ethiopic.pl
+++ /dev/null
@@ -1,38 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Ethiopic} (and fuzzy permutations)
-#
-# Meaning: Script 'ETHIOPIC'
-#
-return <<'END';
-1200 1206 ETHIOPIC
-1208 1246 ETHIOPIC
-1248 ETHIOPIC
-124A 124D ETHIOPIC
-1250 1256 ETHIOPIC
-1258 ETHIOPIC
-125A 125D ETHIOPIC
-1260 1286 ETHIOPIC
-1288 ETHIOPIC
-128A 128D ETHIOPIC
-1290 12AE ETHIOPIC
-12B0 ETHIOPIC
-12B2 12B5 ETHIOPIC
-12B8 12BE ETHIOPIC
-12C0 ETHIOPIC
-12C2 12C5 ETHIOPIC
-12C8 12CE ETHIOPIC
-12D0 12D6 ETHIOPIC
-12D8 12EE ETHIOPIC
-12F0 130E ETHIOPIC
-1310 ETHIOPIC
-1312 1315 ETHIOPIC
-1318 131E ETHIOPIC
-1320 1346 ETHIOPIC
-1348 135A ETHIOPIC
-1369 137C ETHIOPIC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Extender.pl b/Master/xemtex/perl/lib/unicore/lib/Extender.pl
deleted file mode 100644
index dd0dab84ba9..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Extender.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Extender} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Extender'
-#
-return <<'END';
-00B7 Extender
-02D0 02D1 Extender
-0640 Extender
-0E46 Extender
-0EC6 Extender
-1843 Extender
-3005 Extender
-3031 3035 Extender
-309D 309E Extender
-30FC 30FE Extender
-FF70 Extender
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Georgian.pl b/Master/xemtex/perl/lib/unicore/lib/Georgian.pl
deleted file mode 100644
index cd56aaa56d0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Georgian.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Georgian} (and fuzzy permutations)
-#
-# Meaning: Script 'GEORGIAN'
-#
-return <<'END';
-10A0 10C5 GEORGIAN
-10D0 10F8 GEORGIAN
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Gothic.pl b/Master/xemtex/perl/lib/unicore/lib/Gothic.pl
deleted file mode 100644
index 321d7234fc6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Gothic.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Gothic} (and fuzzy permutations)
-#
-# Meaning: Script 'GOTHIC'
-#
-return <<'END';
-10330 1034A GOTHIC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Graph.pl b/Master/xemtex/perl/lib/unicore/lib/Graph.pl
deleted file mode 100644
index e3e98b518dc..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Graph.pl
+++ /dev/null
@@ -1,398 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Graph}
-#
-# Meaning: [[:Graph:]]
-#
-return <<'END';
-0021 007E
-00A1 0220
-0222 0233
-0250 02AD
-02B0 02EE
-0300 034F
-0360 036F
-0374 0375
-037A
-037E
-0384 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F6
-0400 0486
-0488 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559 055F
-0561 0587
-0589 058A
-0591 05A1
-05A3 05B9
-05BB 05C4
-05D0 05EA
-05F0 05F4
-060C
-061B
-061F
-0621 063A
-0640 0655
-0660 06DC
-06DE 06ED
-06F0 06FE
-0700 070D
-0710 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0970
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09E6 09FA
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A66 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0AE6 0AEF
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B70
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0BE7 0BF2
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF4
-0E01 0E3A
-0E3F 0E5B
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0ED0 0ED9
-0EDC 0EDD
-0F00 0F47
-0F49 0F6A
-0F71 0F8B
-0F90 0F97
-0F99 0FBC
-0FBE 0FCC
-0FCF
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1040 1059
-10A0 10C5
-10D0 10F8
-10FB
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1361 137C
-13A0 13F4
-1401 1676
-1681 169C
-16A0 16F0
-1700 170C
-170E 1714
-1720 1736
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17DC
-17E0 17E9
-1800 180D
-1810 1819
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FC4
-1FC6 1FD3
-1FD6 1FDB
-1FDD 1FEF
-1FF2 1FF4
-1FF6 1FFE
-2010 2027
-2030 2052
-2057
-2070 2071
-2074 208E
-20A0 20B1
-20D0 20EA
-2100 213A
-213D 214B
-2153 2183
-2190 23CE
-2400 2426
-2440 244A
-2460 24FE
-2500 2613
-2616 2617
-2619 267D
-2680 2689
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2794
-2798 27AF
-27B1 27BE
-27D0 27EB
-27F0 2AFF
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3001 303F
-3041 3096
-3099 30FF
-3105 312C
-3131 318E
-3190 31B7
-31F0 321C
-3220 3243
-3251 327B
-327F 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-3400 4DB5
-4E00 9FA5
-A000 A48C
-A490 A4C6
-AC00 D7A3
-E000 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3F
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFC
-FE00 FE0F
-FE20 FE23
-FE30 FE46
-FE49 FE52
-FE54 FE66
-FE68 FE6B
-FE70 FE74
-FE76 FEFC
-FF01 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-FFE0 FFE6
-FFE8 FFEE
-FFFC FFFD
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D000 1D0F5
-1D100 1D126
-1D12A 1D172
-1D17B 1D1DD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-1D7CE 1D7FF
-20000 2A6D6
-2F800 2FA1D
-F0000 FFFFD
-100000 10FFFD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Grapheme.pl b/Master/xemtex/perl/lib/unicore/lib/Grapheme.pl
deleted file mode 100644
index dc2183abb46..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Grapheme.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{GraphemeLink} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Grapheme_Link'
-#
-return <<'END';
-094D Grapheme_Link
-09CD Grapheme_Link
-0A4D Grapheme_Link
-0ACD Grapheme_Link
-0B4D Grapheme_Link
-0BCD Grapheme_Link
-0C4D Grapheme_Link
-0CCD Grapheme_Link
-0D4D Grapheme_Link
-0DCA Grapheme_Link
-0E3A Grapheme_Link
-1039 Grapheme_Link
-17D2 Grapheme_Link
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Greek.pl b/Master/xemtex/perl/lib/unicore/lib/Greek.pl
deleted file mode 100644
index 76ad2ad6f76..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Greek.pl
+++ /dev/null
@@ -1,40 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Greek} (and fuzzy permutations)
-#
-# Meaning: Script 'GREEK'
-#
-return <<'END';
-00B5 GREEK
-037A GREEK
-0386 GREEK
-0388 038A GREEK
-038C GREEK
-038E 03A1 GREEK
-03A3 03CE GREEK
-03D0 03F5 GREEK
-1F00 1F15 GREEK
-1F18 1F1D GREEK
-1F20 1F45 GREEK
-1F48 1F4D GREEK
-1F50 1F57 GREEK
-1F59 GREEK
-1F5B GREEK
-1F5D GREEK
-1F5F 1F7D GREEK
-1F80 1FB4 GREEK
-1FB6 1FBC GREEK
-1FBE GREEK
-1FC2 1FC4 GREEK
-1FC6 1FCC GREEK
-1FD0 1FD3 GREEK
-1FD6 1FDB GREEK
-1FE0 1FEC GREEK
-1FF2 1FF4 GREEK
-1FF6 1FFC GREEK
-2126 GREEK
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Gujarati.pl b/Master/xemtex/perl/lib/unicore/lib/Gujarati.pl
deleted file mode 100644
index aba2f31753b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Gujarati.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Gujarati} (and fuzzy permutations)
-#
-# Meaning: Script 'GUJARATI'
-#
-return <<'END';
-0A81 0A83 GUJARATI
-0A85 0A8B GUJARATI
-0A8D GUJARATI
-0A8F 0A91 GUJARATI
-0A93 0AA8 GUJARATI
-0AAA 0AB0 GUJARATI
-0AB2 0AB3 GUJARATI
-0AB5 0AB9 GUJARATI
-0ABC 0AC5 GUJARATI
-0AC7 0AC9 GUJARATI
-0ACB 0ACD GUJARATI
-0AD0 GUJARATI
-0AE0 GUJARATI
-0AE6 0AEF GUJARATI
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Gurmukhi.pl b/Master/xemtex/perl/lib/unicore/lib/Gurmukhi.pl
deleted file mode 100644
index a56e9ae7218..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Gurmukhi.pl
+++ /dev/null
@@ -1,27 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Gurmukhi} (and fuzzy permutations)
-#
-# Meaning: Script 'GURMUKHI'
-#
-return <<'END';
-0A02 GURMUKHI
-0A05 0A0A GURMUKHI
-0A0F 0A10 GURMUKHI
-0A13 0A28 GURMUKHI
-0A2A 0A30 GURMUKHI
-0A32 0A33 GURMUKHI
-0A35 0A36 GURMUKHI
-0A38 0A39 GURMUKHI
-0A3C GURMUKHI
-0A3E 0A42 GURMUKHI
-0A47 0A48 GURMUKHI
-0A4B 0A4D GURMUKHI
-0A59 0A5C GURMUKHI
-0A5E GURMUKHI
-0A66 0A74 GURMUKHI
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Han.pl b/Master/xemtex/perl/lib/unicore/lib/Han.pl
deleted file mode 100644
index 903bbf2dfd2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Han.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Han} (and fuzzy permutations)
-#
-# Meaning: Script 'HAN'
-#
-return <<'END';
-2E80 2E99 HAN
-2E9B 2EF3 HAN
-2F00 2FD5 HAN
-3005 HAN
-3007 HAN
-3021 3029 HAN
-3038 303B HAN
-3400 4DB5 HAN
-4E00 9FA5 HAN
-F900 FA2D HAN
-FA30 FA6A HAN
-20000 2A6D6 HAN
-2F800 2FA1D HAN
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Hangul.pl b/Master/xemtex/perl/lib/unicore/lib/Hangul.pl
deleted file mode 100644
index afa24a06015..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Hangul.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Hangul} (and fuzzy permutations)
-#
-# Meaning: Script 'HANGUL'
-#
-return <<'END';
-1100 1159 HANGUL
-115F 11A2 HANGUL
-11A8 11F9 HANGUL
-3131 318E HANGUL
-AC00 D7A3 HANGUL
-FFA0 FFBE HANGUL
-FFC2 FFC7 HANGUL
-FFCA FFCF HANGUL
-FFD2 FFD7 HANGUL
-FFDA FFDC HANGUL
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Hanunoo.pl b/Master/xemtex/perl/lib/unicore/lib/Hanunoo.pl
deleted file mode 100644
index 077cc076c7f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Hanunoo.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Hanunoo} (and fuzzy permutations)
-#
-# Meaning: Script 'HANUNOO'
-#
-return <<'END';
-1720 1734 HANUNOO
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Hebrew.pl b/Master/xemtex/perl/lib/unicore/lib/Hebrew.pl
deleted file mode 100644
index 4ec1444cb6b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Hebrew.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Hebrew} (and fuzzy permutations)
-#
-# Meaning: Script 'HEBREW'
-#
-return <<'END';
-05D0 05EA HEBREW
-05F0 05F2 HEBREW
-FB1D HEBREW
-FB1F FB28 HEBREW
-FB2A FB36 HEBREW
-FB38 FB3C HEBREW
-FB3E HEBREW
-FB40 FB41 HEBREW
-FB43 FB44 HEBREW
-FB46 FB4F HEBREW
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/HexDigit.pl b/Master/xemtex/perl/lib/unicore/lib/HexDigit.pl
deleted file mode 100644
index 9bb0755a641..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/HexDigit.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{HexDigit} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Hex_Digit'
-#
-return <<'END';
-0030 0039 Hex_Digit
-0041 0046 Hex_Digit
-0061 0066 Hex_Digit
-FF10 FF19 Hex_Digit
-FF21 FF26 Hex_Digit
-FF41 FF46 Hex_Digit
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Hiragana.pl b/Master/xemtex/perl/lib/unicore/lib/Hiragana.pl
deleted file mode 100644
index dddb82d74d8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Hiragana.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Hiragana} (and fuzzy permutations)
-#
-# Meaning: Script 'HIRAGANA'
-#
-return <<'END';
-3041 3096 HIRAGANA
-309D 309F HIRAGANA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Hyphen.pl b/Master/xemtex/perl/lib/unicore/lib/Hyphen.pl
deleted file mode 100644
index b1ca8d6c9a2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Hyphen.pl
+++ /dev/null
@@ -1,21 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Hyphen} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Hyphen'
-#
-return <<'END';
-002D Hyphen
-00AD Hyphen
-058A Hyphen
-1806 Hyphen
-2010 2011 Hyphen
-30FB Hyphen
-FE63 Hyphen
-FF0D Hyphen
-FF65 Hyphen
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/IdContin.pl b/Master/xemtex/perl/lib/unicore/lib/IdContin.pl
deleted file mode 100644
index 7de06495905..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/IdContin.pl
+++ /dev/null
@@ -1,416 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{IdContinue} (and fuzzy permutations)
-#
-# Meaning: [\p{ID_Start}\p{Mn}\p{Mc}\p{Nd}\p{Pc}]
-#
-return <<'END';
-0030 0039
-0041 005A
-005F
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-0300 034F
-0360 036F
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-0483 0486
-048A 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 0655
-0660 0669
-066E 06D3
-06D5 06DC
-06DF 06E8
-06EA 06ED
-06F0 06FC
-0710 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0963
-0966 096F
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09E6 09F1
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A66 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0AE6 0AEF
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B6F
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0BE7 0BEF
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF3
-0E01 0E3A
-0E40 0E4E
-0E50 0E59
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0ED0 0ED9
-0EDC 0EDD
-0F00
-0F18 0F19
-0F20 0F29
-0F35
-0F37
-0F39
-0F3E 0F47
-0F49 0F6A
-0F71 0F84
-0F86 0F8B
-0F90 0F97
-0F99 0FBC
-0FC6
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1040 1049
-1050 1059
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1369 1371
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-16EE 16F0
-1700 170C
-170E 1714
-1720 1734
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17D3
-17D7
-17DC
-17E0 17E9
-180B 180D
-1810 1819
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-203F 2040
-2071
-207F
-20D0 20DC
-20E1
-20E5 20EA
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-2160 2183
-3005 3007
-3021 302F
-3031 3035
-3038 303C
-3041 3096
-3099 309A
-309D 309F
-30A1 30FF
-3105 312C
-3131 318E
-31A0 31B7
-31F0 31FF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE00 FE0F
-FE20 FE23
-FE33 FE34
-FE4D FE4F
-FE70 FE74
-FE76 FEFC
-FF10 FF19
-FF21 FF3A
-FF3F
-FF41 FF5A
-FF65 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10330 1034A
-10400 10425
-10428 1044D
-1D165 1D169
-1D16D 1D172
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-1D7CE 1D7FF
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/IdStart.pl b/Master/xemtex/perl/lib/unicore/lib/IdStart.pl
deleted file mode 100644
index 0772a752dd6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/IdStart.pl
+++ /dev/null
@@ -1,321 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{IdStart} (and fuzzy permutations)
-#
-# Meaning: [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{Nl}]
-#
-return <<'END';
-0041 005A
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-048A 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 064A
-066E 066F
-0671 06D3
-06D5
-06E5 06E6
-06FA 06FC
-0710
-0712 072C
-0780 07A5
-07B1
-0905 0939
-093D
-0950
-0958 0961
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09DC 09DD
-09DF 09E1
-09F0 09F1
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A59 0A5C
-0A5E
-0A72 0A74
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABD
-0AD0
-0AE0
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3D
-0B5C 0B5D
-0B5F 0B61
-0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C60 0C61
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CDE
-0CE0 0CE1
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D60 0D61
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0E01 0E30
-0E32 0E33
-0E40 0E46
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB0
-0EB2 0EB3
-0EBD
-0EC0 0EC4
-0EC6
-0EDC 0EDD
-0F00
-0F40 0F47
-0F49 0F6A
-0F88 0F8B
-1000 1021
-1023 1027
-1029 102A
-1050 1055
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-16EE 16F0
-1700 170C
-170E 1711
-1720 1731
-1740 1751
-1760 176C
-176E 1770
-1780 17B3
-17D7
-17DC
-1820 1877
-1880 18A8
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2071
-207F
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-2160 2183
-3005 3007
-3021 3029
-3031 3035
-3038 303C
-3041 3096
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-31A0 31B7
-31F0 31FF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D
-FB1F FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE70 FE74
-FE76 FEFC
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10330 1034A
-10400 10425
-10428 1044D
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Ideograp.pl b/Master/xemtex/perl/lib/unicore/lib/Ideograp.pl
deleted file mode 100644
index 476d5cd700e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Ideograp.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Ideographic} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Ideographic'
-#
-return <<'END';
-3006 3007 Ideographic
-3021 3029 Ideographic
-3038 303A Ideographic
-3400 4DB5 Ideographic
-4E00 9FA5 Ideographic
-F900 FA2D Ideographic
-20000 2A6D6 Ideographic
-2F800 2FA1D Ideographic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/IdsBinar.pl b/Master/xemtex/perl/lib/unicore/lib/IdsBinar.pl
deleted file mode 100644
index d138d0a8d8c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/IdsBinar.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{IdsBinaryOperator} (and fuzzy permutations)
-#
-# Meaning: Extended property 'IDS_Binary_Operator'
-#
-return <<'END';
-2FF0 2FF1 IDS_Binary_Operator
-2FF4 2FFB IDS_Binary_Operator
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/IdsTrina.pl b/Master/xemtex/perl/lib/unicore/lib/IdsTrina.pl
deleted file mode 100644
index 587606bad40..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/IdsTrina.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{IdsTrinaryOperator} (and fuzzy permutations)
-#
-# Meaning: Extended property 'IDS_Trinary_Operator'
-#
-return <<'END';
-2FF2 2FF3 IDS_Trinary_Operator
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InAlphab.pl b/Master/xemtex/perl/lib/unicore/lib/InAlphab.pl
deleted file mode 100644
index 2ecd85da4bb..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InAlphab.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InAlphabeticPresentationForms} (and fuzzy permutations)
-#
-# Meaning: Block 'Alphabetic Presentation Forms'
-#
-return <<'END';
-FB00 FB4F Alphabetic Presentation Forms
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InArabi2.pl b/Master/xemtex/perl/lib/unicore/lib/InArabi2.pl
deleted file mode 100644
index 77e704b3dfe..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InArabi2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InArabicPresentationFormsB} (and fuzzy permutations)
-#
-# Meaning: Block 'Arabic Presentation Forms-B'
-#
-return <<'END';
-FE70 FEFF Arabic Presentation Forms-B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InArabi3.pl b/Master/xemtex/perl/lib/unicore/lib/InArabi3.pl
deleted file mode 100644
index 8ab3bb04a74..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InArabi3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InArabicPresentationFormsA} (and fuzzy permutations)
-#
-# Meaning: Block 'Arabic Presentation Forms-A'
-#
-return <<'END';
-FB50 FDFF Arabic Presentation Forms-A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InArabic.pl b/Master/xemtex/perl/lib/unicore/lib/InArabic.pl
deleted file mode 100644
index ac250e86259..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InArabic.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InArabic} (and fuzzy permutations)
-#
-# Meaning: Block 'Arabic'
-#
-return <<'END';
-0600 06FF Arabic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InArmeni.pl b/Master/xemtex/perl/lib/unicore/lib/InArmeni.pl
deleted file mode 100644
index 62a07777423..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InArmeni.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InArmenian} (and fuzzy permutations)
-#
-# Meaning: Block 'Armenian'
-#
-return <<'END';
-0530 058F Armenian
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InArrows.pl b/Master/xemtex/perl/lib/unicore/lib/InArrows.pl
deleted file mode 100644
index 15f4c0bacef..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InArrows.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InArrows} (and fuzzy permutations)
-#
-# Meaning: Block 'Arrows'
-#
-return <<'END';
-2190 21FF Arrows
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBasicL.pl b/Master/xemtex/perl/lib/unicore/lib/InBasicL.pl
deleted file mode 100644
index b15a479ffe2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBasicL.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBasicLatin} (and fuzzy permutations)
-#
-# Meaning: Block 'Basic Latin'
-#
-return <<'END';
-0000 007F Basic Latin
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBengal.pl b/Master/xemtex/perl/lib/unicore/lib/InBengal.pl
deleted file mode 100644
index c20bf6cda0a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBengal.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBengali} (and fuzzy permutations)
-#
-# Meaning: Block 'Bengali'
-#
-return <<'END';
-0980 09FF Bengali
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBlockE.pl b/Master/xemtex/perl/lib/unicore/lib/InBlockE.pl
deleted file mode 100644
index b301e9d358a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBlockE.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBlockElements} (and fuzzy permutations)
-#
-# Meaning: Block 'Block Elements'
-#
-return <<'END';
-2580 259F Block Elements
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBopom2.pl b/Master/xemtex/perl/lib/unicore/lib/InBopom2.pl
deleted file mode 100644
index 8320eb520d3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBopom2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBopomofoExtended} (and fuzzy permutations)
-#
-# Meaning: Block 'Bopomofo Extended'
-#
-return <<'END';
-31A0 31BF Bopomofo Extended
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBopomo.pl b/Master/xemtex/perl/lib/unicore/lib/InBopomo.pl
deleted file mode 100644
index 43edd7cc649..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBopomo.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBopomofo} (and fuzzy permutations)
-#
-# Meaning: Block 'Bopomofo'
-#
-return <<'END';
-3100 312F Bopomofo
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBoxDra.pl b/Master/xemtex/perl/lib/unicore/lib/InBoxDra.pl
deleted file mode 100644
index 4f3698f06bf..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBoxDra.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBoxDrawing} (and fuzzy permutations)
-#
-# Meaning: Block 'Box Drawing'
-#
-return <<'END';
-2500 257F Box Drawing
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBraill.pl b/Master/xemtex/perl/lib/unicore/lib/InBraill.pl
deleted file mode 100644
index b03465e91be..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBraill.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBraillePatterns} (and fuzzy permutations)
-#
-# Meaning: Block 'Braille Patterns'
-#
-return <<'END';
-2800 28FF Braille Patterns
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InBuhid.pl b/Master/xemtex/perl/lib/unicore/lib/InBuhid.pl
deleted file mode 100644
index f58c9c2df10..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InBuhid.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InBuhid} (and fuzzy permutations)
-#
-# Meaning: Block 'Buhid'
-#
-return <<'END';
-1740 175F Buhid
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InByzant.pl b/Master/xemtex/perl/lib/unicore/lib/InByzant.pl
deleted file mode 100644
index a706086ceb1..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InByzant.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InByzantineMusicalSymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Byzantine Musical Symbols'
-#
-return <<'END';
-1D000 1D0FF Byzantine Musical Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCherok.pl b/Master/xemtex/perl/lib/unicore/lib/InCherok.pl
deleted file mode 100644
index 089e3f684d6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCherok.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCherokee} (and fuzzy permutations)
-#
-# Meaning: Block 'Cherokee'
-#
-return <<'END';
-13A0 13FF Cherokee
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkCo2.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkCo2.pl
deleted file mode 100644
index bf9af659c86..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkCo2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkCompatibilityForms} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Compatibility Forms'
-#
-return <<'END';
-FE30 FE4F CJK Compatibility Forms
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkCo3.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkCo3.pl
deleted file mode 100644
index 678c493885e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkCo3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkCompatibilityIdeographs} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Compatibility Ideographs'
-#
-return <<'END';
-F900 FAFF CJK Compatibility Ideographs
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkCo4.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkCo4.pl
deleted file mode 100644
index 05bde2e48d5..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkCo4.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkCompatibilityIdeographsSupplement} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Compatibility Ideographs Supplement'
-#
-return <<'END';
-2F800 2FA1F CJK Compatibility Ideographs Supplement
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkCom.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkCom.pl
deleted file mode 100644
index 76f7396a299..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkCom.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkCompatibility} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Compatibility'
-#
-return <<'END';
-3300 33FF CJK Compatibility
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkRad.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkRad.pl
deleted file mode 100644
index 46e7463cbff..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkRad.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkRadicalsSupplement} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Radicals Supplement'
-#
-return <<'END';
-2E80 2EFF CJK Radicals Supplement
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkSym.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkSym.pl
deleted file mode 100644
index 293608f8fbf..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkSym.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkSymbolsAndPunctuation} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Symbols and Punctuation'
-#
-return <<'END';
-3000 303F CJK Symbols and Punctuation
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkUn2.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkUn2.pl
deleted file mode 100644
index 2f8ce719449..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkUn2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkUnifiedIdeographsExtensionB} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Unified Ideographs Extension B'
-#
-return <<'END';
-20000 2A6DF CJK Unified Ideographs Extension B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkUn3.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkUn3.pl
deleted file mode 100644
index 3967c210621..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkUn3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkUnifiedIdeographsExtensionA} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Unified Ideographs Extension A'
-#
-return <<'END';
-3400 4DBF CJK Unified Ideographs Extension A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCjkUni.pl b/Master/xemtex/perl/lib/unicore/lib/InCjkUni.pl
deleted file mode 100644
index 62c36bf37cc..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCjkUni.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCjkUnifiedIdeographs} (and fuzzy permutations)
-#
-# Meaning: Block 'CJK Unified Ideographs'
-#
-return <<'END';
-4E00 9FFF CJK Unified Ideographs
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCombi2.pl b/Master/xemtex/perl/lib/unicore/lib/InCombi2.pl
deleted file mode 100644
index f4169cfe7fc..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCombi2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCombiningDiacriticalMarks} (and fuzzy permutations)
-#
-# Meaning: Block 'Combining Diacritical Marks'
-#
-return <<'END';
-0300 036F Combining Diacritical Marks
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCombi3.pl b/Master/xemtex/perl/lib/unicore/lib/InCombi3.pl
deleted file mode 100644
index 7dde2138522..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCombi3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCombiningDiacriticalMarksForSymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Combining Diacritical Marks for Symbols'
-#
-return <<'END';
-20D0 20FF Combining Diacritical Marks for Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCombin.pl b/Master/xemtex/perl/lib/unicore/lib/InCombin.pl
deleted file mode 100644
index 5e2670da706..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCombin.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCombiningHalfMarks} (and fuzzy permutations)
-#
-# Meaning: Block 'Combining Half Marks'
-#
-return <<'END';
-FE20 FE2F Combining Half Marks
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InContro.pl b/Master/xemtex/perl/lib/unicore/lib/InContro.pl
deleted file mode 100644
index 5460b22a1ee..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InContro.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InControlPictures} (and fuzzy permutations)
-#
-# Meaning: Block 'Control Pictures'
-#
-return <<'END';
-2400 243F Control Pictures
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCurren.pl b/Master/xemtex/perl/lib/unicore/lib/InCurren.pl
deleted file mode 100644
index 44182705cd9..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCurren.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCurrencySymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Currency Symbols'
-#
-return <<'END';
-20A0 20CF Currency Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCyril2.pl b/Master/xemtex/perl/lib/unicore/lib/InCyril2.pl
deleted file mode 100644
index 41f8f20712d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCyril2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCyrillicSupplementary} (and fuzzy permutations)
-#
-# Meaning: Block 'Cyrillic Supplementary'
-#
-return <<'END';
-0500 052F Cyrillic Supplementary
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InCyrill.pl b/Master/xemtex/perl/lib/unicore/lib/InCyrill.pl
deleted file mode 100644
index 9d6f53a96eb..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InCyrill.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InCyrillic} (and fuzzy permutations)
-#
-# Meaning: Block 'Cyrillic'
-#
-return <<'END';
-0400 04FF Cyrillic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InDesere.pl b/Master/xemtex/perl/lib/unicore/lib/InDesere.pl
deleted file mode 100644
index 5e8b99f164f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InDesere.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InDeseret} (and fuzzy permutations)
-#
-# Meaning: Block 'Deseret'
-#
-return <<'END';
-10400 1044F Deseret
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InDevana.pl b/Master/xemtex/perl/lib/unicore/lib/InDevana.pl
deleted file mode 100644
index eaaa7126905..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InDevana.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InDevanagari} (and fuzzy permutations)
-#
-# Meaning: Block 'Devanagari'
-#
-return <<'END';
-0900 097F Devanagari
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InDingba.pl b/Master/xemtex/perl/lib/unicore/lib/InDingba.pl
deleted file mode 100644
index 72eef3587a7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InDingba.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InDingbats} (and fuzzy permutations)
-#
-# Meaning: Block 'Dingbats'
-#
-return <<'END';
-2700 27BF Dingbats
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InEnclo2.pl b/Master/xemtex/perl/lib/unicore/lib/InEnclo2.pl
deleted file mode 100644
index aadcbdb7d32..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InEnclo2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InEnclosedCjkLettersAndMonths} (and fuzzy permutations)
-#
-# Meaning: Block 'Enclosed CJK Letters and Months'
-#
-return <<'END';
-3200 32FF Enclosed CJK Letters and Months
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InEnclos.pl b/Master/xemtex/perl/lib/unicore/lib/InEnclos.pl
deleted file mode 100644
index 82c20de16f8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InEnclos.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InEnclosedAlphanumerics} (and fuzzy permutations)
-#
-# Meaning: Block 'Enclosed Alphanumerics'
-#
-return <<'END';
-2460 24FF Enclosed Alphanumerics
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InEthiop.pl b/Master/xemtex/perl/lib/unicore/lib/InEthiop.pl
deleted file mode 100644
index fcb2053e44f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InEthiop.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InEthiopic} (and fuzzy permutations)
-#
-# Meaning: Block 'Ethiopic'
-#
-return <<'END';
-1200 137F Ethiopic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGenera.pl b/Master/xemtex/perl/lib/unicore/lib/InGenera.pl
deleted file mode 100644
index 2fd27a7b771..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGenera.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGeneralPunctuation} (and fuzzy permutations)
-#
-# Meaning: Block 'General Punctuation'
-#
-return <<'END';
-2000 206F General Punctuation
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGeomet.pl b/Master/xemtex/perl/lib/unicore/lib/InGeomet.pl
deleted file mode 100644
index 817dabc2b22..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGeomet.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGeometricShapes} (and fuzzy permutations)
-#
-# Meaning: Block 'Geometric Shapes'
-#
-return <<'END';
-25A0 25FF Geometric Shapes
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGeorgi.pl b/Master/xemtex/perl/lib/unicore/lib/InGeorgi.pl
deleted file mode 100644
index 7e965445909..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGeorgi.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGeorgian} (and fuzzy permutations)
-#
-# Meaning: Block 'Georgian'
-#
-return <<'END';
-10A0 10FF Georgian
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGothic.pl b/Master/xemtex/perl/lib/unicore/lib/InGothic.pl
deleted file mode 100644
index 552cba4f000..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGothic.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGothic} (and fuzzy permutations)
-#
-# Meaning: Block 'Gothic'
-#
-return <<'END';
-10330 1034F Gothic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGreek.pl b/Master/xemtex/perl/lib/unicore/lib/InGreek.pl
deleted file mode 100644
index e932705c4ed..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGreek.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGreek} (and fuzzy permutations)
-#
-# Meaning: Block 'Greek'
-#
-return <<'END';
-0370 03FF Greek
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGreekA.pl b/Master/xemtex/perl/lib/unicore/lib/InGreekA.pl
deleted file mode 100644
index d09fd3daf2e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGreekA.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGreekAndCoptic} (and fuzzy permutations)
-#
-# Meaning: Block 'Greek and Coptic'
-#
-return <<'END';
-0370 03FF Greek and Coptic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGreekE.pl b/Master/xemtex/perl/lib/unicore/lib/InGreekE.pl
deleted file mode 100644
index 06965f969d0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGreekE.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGreekExtended} (and fuzzy permutations)
-#
-# Meaning: Block 'Greek Extended'
-#
-return <<'END';
-1F00 1FFF Greek Extended
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGujara.pl b/Master/xemtex/perl/lib/unicore/lib/InGujara.pl
deleted file mode 100644
index f0a8e4a6a29..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGujara.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGujarati} (and fuzzy permutations)
-#
-# Meaning: Block 'Gujarati'
-#
-return <<'END';
-0A80 0AFF Gujarati
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InGurmuk.pl b/Master/xemtex/perl/lib/unicore/lib/InGurmuk.pl
deleted file mode 100644
index 7023d05cfb7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InGurmuk.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InGurmukhi} (and fuzzy permutations)
-#
-# Meaning: Block 'Gurmukhi'
-#
-return <<'END';
-0A00 0A7F Gurmukhi
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHalfwi.pl b/Master/xemtex/perl/lib/unicore/lib/InHalfwi.pl
deleted file mode 100644
index d543110b84f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHalfwi.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHalfwidthAndFullwidthForms} (and fuzzy permutations)
-#
-# Meaning: Block 'Halfwidth and Fullwidth Forms'
-#
-return <<'END';
-FF00 FFEF Halfwidth and Fullwidth Forms
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHangu2.pl b/Master/xemtex/perl/lib/unicore/lib/InHangu2.pl
deleted file mode 100644
index e09ff114a18..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHangu2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHangulSyllables} (and fuzzy permutations)
-#
-# Meaning: Block 'Hangul Syllables'
-#
-return <<'END';
-AC00 D7AF Hangul Syllables
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHangu3.pl b/Master/xemtex/perl/lib/unicore/lib/InHangu3.pl
deleted file mode 100644
index e256ea5dc95..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHangu3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHangulCompatibilityJamo} (and fuzzy permutations)
-#
-# Meaning: Block 'Hangul Compatibility Jamo'
-#
-return <<'END';
-3130 318F Hangul Compatibility Jamo
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHangul.pl b/Master/xemtex/perl/lib/unicore/lib/InHangul.pl
deleted file mode 100644
index d0ef32e871d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHangul.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHangulJamo} (and fuzzy permutations)
-#
-# Meaning: Block 'Hangul Jamo'
-#
-return <<'END';
-1100 11FF Hangul Jamo
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHanuno.pl b/Master/xemtex/perl/lib/unicore/lib/InHanuno.pl
deleted file mode 100644
index 5ea90288d75..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHanuno.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHanunoo} (and fuzzy permutations)
-#
-# Meaning: Block 'Hanunoo'
-#
-return <<'END';
-1720 173F Hanunoo
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHebrew.pl b/Master/xemtex/perl/lib/unicore/lib/InHebrew.pl
deleted file mode 100644
index 14459f46876..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHebrew.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHebrew} (and fuzzy permutations)
-#
-# Meaning: Block 'Hebrew'
-#
-return <<'END';
-0590 05FF Hebrew
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHighPr.pl b/Master/xemtex/perl/lib/unicore/lib/InHighPr.pl
deleted file mode 100644
index fd92248fa5f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHighPr.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHighPrivateUseSurrogates} (and fuzzy permutations)
-#
-# Meaning: Block 'High Private Use Surrogates'
-#
-return <<'END';
-DB80 DBFF High Private Use Surrogates
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHighSu.pl b/Master/xemtex/perl/lib/unicore/lib/InHighSu.pl
deleted file mode 100644
index eec73b3cb35..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHighSu.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHighSurrogates} (and fuzzy permutations)
-#
-# Meaning: Block 'High Surrogates'
-#
-return <<'END';
-D800 DB7F High Surrogates
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InHiraga.pl b/Master/xemtex/perl/lib/unicore/lib/InHiraga.pl
deleted file mode 100644
index 2db67da347f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InHiraga.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InHiragana} (and fuzzy permutations)
-#
-# Meaning: Block 'Hiragana'
-#
-return <<'END';
-3040 309F Hiragana
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InIdeogr.pl b/Master/xemtex/perl/lib/unicore/lib/InIdeogr.pl
deleted file mode 100644
index 95f6229928e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InIdeogr.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InIdeographicDescriptionCharacters} (and fuzzy permutations)
-#
-# Meaning: Block 'Ideographic Description Characters'
-#
-return <<'END';
-2FF0 2FFF Ideographic Description Characters
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InIpaExt.pl b/Master/xemtex/perl/lib/unicore/lib/InIpaExt.pl
deleted file mode 100644
index 3280cb6ccf8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InIpaExt.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InIpaExtensions} (and fuzzy permutations)
-#
-# Meaning: Block 'IPA Extensions'
-#
-return <<'END';
-0250 02AF IPA Extensions
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InKanbun.pl b/Master/xemtex/perl/lib/unicore/lib/InKanbun.pl
deleted file mode 100644
index 5dddfb381f9..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InKanbun.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InKanbun} (and fuzzy permutations)
-#
-# Meaning: Block 'Kanbun'
-#
-return <<'END';
-3190 319F Kanbun
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InKangxi.pl b/Master/xemtex/perl/lib/unicore/lib/InKangxi.pl
deleted file mode 100644
index 49f334c2284..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InKangxi.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InKangxiRadicals} (and fuzzy permutations)
-#
-# Meaning: Block 'Kangxi Radicals'
-#
-return <<'END';
-2F00 2FDF Kangxi Radicals
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InKannad.pl b/Master/xemtex/perl/lib/unicore/lib/InKannad.pl
deleted file mode 100644
index 418011cb128..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InKannad.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InKannada} (and fuzzy permutations)
-#
-# Meaning: Block 'Kannada'
-#
-return <<'END';
-0C80 0CFF Kannada
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InKatak2.pl b/Master/xemtex/perl/lib/unicore/lib/InKatak2.pl
deleted file mode 100644
index 6ed8a84b8eb..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InKatak2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InKatakanaPhoneticExtensions} (and fuzzy permutations)
-#
-# Meaning: Block 'Katakana Phonetic Extensions'
-#
-return <<'END';
-31F0 31FF Katakana Phonetic Extensions
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InKataka.pl b/Master/xemtex/perl/lib/unicore/lib/InKataka.pl
deleted file mode 100644
index 5ef3ce010f8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InKataka.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InKatakana} (and fuzzy permutations)
-#
-# Meaning: Block 'Katakana'
-#
-return <<'END';
-30A0 30FF Katakana
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InKhmer.pl b/Master/xemtex/perl/lib/unicore/lib/InKhmer.pl
deleted file mode 100644
index 8c2efea0429..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InKhmer.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InKhmer} (and fuzzy permutations)
-#
-# Meaning: Block 'Khmer'
-#
-return <<'END';
-1780 17FF Khmer
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLao.pl b/Master/xemtex/perl/lib/unicore/lib/InLao.pl
deleted file mode 100644
index eb96edca009..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLao.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLao} (and fuzzy permutations)
-#
-# Meaning: Block 'Lao'
-#
-return <<'END';
-0E80 0EFF Lao
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLatin1.pl b/Master/xemtex/perl/lib/unicore/lib/InLatin1.pl
deleted file mode 100644
index 52e4c71db85..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLatin1.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLatin1Supplement} (and fuzzy permutations)
-#
-# Meaning: Block 'Latin-1 Supplement'
-#
-return <<'END';
-0080 00FF Latin-1 Supplement
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLatin2.pl b/Master/xemtex/perl/lib/unicore/lib/InLatin2.pl
deleted file mode 100644
index a5f0d22f95c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLatin2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLatinExtendedA} (and fuzzy permutations)
-#
-# Meaning: Block 'Latin Extended-A'
-#
-return <<'END';
-0100 017F Latin Extended-A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLatin3.pl b/Master/xemtex/perl/lib/unicore/lib/InLatin3.pl
deleted file mode 100644
index 8a53dc7f5f1..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLatin3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLatinExtendedAdditional} (and fuzzy permutations)
-#
-# Meaning: Block 'Latin Extended Additional'
-#
-return <<'END';
-1E00 1EFF Latin Extended Additional
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLatinE.pl b/Master/xemtex/perl/lib/unicore/lib/InLatinE.pl
deleted file mode 100644
index 3a81b6e3382..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLatinE.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLatinExtendedB} (and fuzzy permutations)
-#
-# Meaning: Block 'Latin Extended-B'
-#
-return <<'END';
-0180 024F Latin Extended-B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLetter.pl b/Master/xemtex/perl/lib/unicore/lib/InLetter.pl
deleted file mode 100644
index d452812a3c5..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLetter.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLetterlikeSymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Letterlike Symbols'
-#
-return <<'END';
-2100 214F Letterlike Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InLowSur.pl b/Master/xemtex/perl/lib/unicore/lib/InLowSur.pl
deleted file mode 100644
index 5be81e511e0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InLowSur.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InLowSurrogates} (and fuzzy permutations)
-#
-# Meaning: Block 'Low Surrogates'
-#
-return <<'END';
-DC00 DFFF Low Surrogates
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMalaya.pl b/Master/xemtex/perl/lib/unicore/lib/InMalaya.pl
deleted file mode 100644
index ee91b9a2ead..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMalaya.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMalayalam} (and fuzzy permutations)
-#
-# Meaning: Block 'Malayalam'
-#
-return <<'END';
-0D00 0D7F Malayalam
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMathe2.pl b/Master/xemtex/perl/lib/unicore/lib/InMathe2.pl
deleted file mode 100644
index aba54a670fd..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMathe2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMathematicalAlphanumericSymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Mathematical Alphanumeric Symbols'
-#
-return <<'END';
-1D400 1D7FF Mathematical Alphanumeric Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMathem.pl b/Master/xemtex/perl/lib/unicore/lib/InMathem.pl
deleted file mode 100644
index d037fec9547..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMathem.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMathematicalOperators} (and fuzzy permutations)
-#
-# Meaning: Block 'Mathematical Operators'
-#
-return <<'END';
-2200 22FF Mathematical Operators
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMisce2.pl b/Master/xemtex/perl/lib/unicore/lib/InMisce2.pl
deleted file mode 100644
index fb9217a2bfd..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMisce2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMiscellaneousTechnical} (and fuzzy permutations)
-#
-# Meaning: Block 'Miscellaneous Technical'
-#
-return <<'END';
-2300 23FF Miscellaneous Technical
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMisce3.pl b/Master/xemtex/perl/lib/unicore/lib/InMisce3.pl
deleted file mode 100644
index a273df5c133..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMisce3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMiscellaneousMathematicalSymbolsA} (and fuzzy permutations)
-#
-# Meaning: Block 'Miscellaneous Mathematical Symbols-A'
-#
-return <<'END';
-27C0 27EF Miscellaneous Mathematical Symbols-A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMisce4.pl b/Master/xemtex/perl/lib/unicore/lib/InMisce4.pl
deleted file mode 100644
index 1c8e240fca7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMisce4.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMiscellaneousMathematicalSymbolsB} (and fuzzy permutations)
-#
-# Meaning: Block 'Miscellaneous Mathematical Symbols-B'
-#
-return <<'END';
-2980 29FF Miscellaneous Mathematical Symbols-B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMiscel.pl b/Master/xemtex/perl/lib/unicore/lib/InMiscel.pl
deleted file mode 100644
index f1668ea83c4..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMiscel.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMiscellaneousSymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Miscellaneous Symbols'
-#
-return <<'END';
-2600 26FF Miscellaneous Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMongol.pl b/Master/xemtex/perl/lib/unicore/lib/InMongol.pl
deleted file mode 100644
index e1771ec83c7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMongol.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMongolian} (and fuzzy permutations)
-#
-# Meaning: Block 'Mongolian'
-#
-return <<'END';
-1800 18AF Mongolian
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMusica.pl b/Master/xemtex/perl/lib/unicore/lib/InMusica.pl
deleted file mode 100644
index 74419bc98c8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMusica.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMusicalSymbols} (and fuzzy permutations)
-#
-# Meaning: Block 'Musical Symbols'
-#
-return <<'END';
-1D100 1D1FF Musical Symbols
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InMyanma.pl b/Master/xemtex/perl/lib/unicore/lib/InMyanma.pl
deleted file mode 100644
index e00a9f29422..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InMyanma.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InMyanmar} (and fuzzy permutations)
-#
-# Meaning: Block 'Myanmar'
-#
-return <<'END';
-1000 109F Myanmar
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InNumber.pl b/Master/xemtex/perl/lib/unicore/lib/InNumber.pl
deleted file mode 100644
index e1f219e98fa..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InNumber.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InNumberForms} (and fuzzy permutations)
-#
-# Meaning: Block 'Number Forms'
-#
-return <<'END';
-2150 218F Number Forms
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InOgham.pl b/Master/xemtex/perl/lib/unicore/lib/InOgham.pl
deleted file mode 100644
index 6336e02a379..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InOgham.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InOgham} (and fuzzy permutations)
-#
-# Meaning: Block 'Ogham'
-#
-return <<'END';
-1680 169F Ogham
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InOldIta.pl b/Master/xemtex/perl/lib/unicore/lib/InOldIta.pl
deleted file mode 100644
index 71b2acce1b6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InOldIta.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InOldItalic} (and fuzzy permutations)
-#
-# Meaning: Block 'Old Italic'
-#
-return <<'END';
-10300 1032F Old Italic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InOptica.pl b/Master/xemtex/perl/lib/unicore/lib/InOptica.pl
deleted file mode 100644
index bc3f3eefe53..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InOptica.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InOpticalCharacterRecognition} (and fuzzy permutations)
-#
-# Meaning: Block 'Optical Character Recognition'
-#
-return <<'END';
-2440 245F Optical Character Recognition
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InOriya.pl b/Master/xemtex/perl/lib/unicore/lib/InOriya.pl
deleted file mode 100644
index a8bc8aaa3f0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InOriya.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InOriya} (and fuzzy permutations)
-#
-# Meaning: Block 'Oriya'
-#
-return <<'END';
-0B00 0B7F Oriya
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InPrivat.pl b/Master/xemtex/perl/lib/unicore/lib/InPrivat.pl
deleted file mode 100644
index a2b0d6bd4b7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InPrivat.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InPrivateUseArea} (and fuzzy permutations)
-#
-# Meaning: Block 'Private Use Area'
-#
-return <<'END';
-E000 F8FF Private Use Area
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InRunic.pl b/Master/xemtex/perl/lib/unicore/lib/InRunic.pl
deleted file mode 100644
index b99e1fa44de..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InRunic.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InRunic} (and fuzzy permutations)
-#
-# Meaning: Block 'Runic'
-#
-return <<'END';
-16A0 16FF Runic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSinhal.pl b/Master/xemtex/perl/lib/unicore/lib/InSinhal.pl
deleted file mode 100644
index b08f3885193..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSinhal.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSinhala} (and fuzzy permutations)
-#
-# Meaning: Block 'Sinhala'
-#
-return <<'END';
-0D80 0DFF Sinhala
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSmallF.pl b/Master/xemtex/perl/lib/unicore/lib/InSmallF.pl
deleted file mode 100644
index 7938a44c8db..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSmallF.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSmallFormVariants} (and fuzzy permutations)
-#
-# Meaning: Block 'Small Form Variants'
-#
-return <<'END';
-FE50 FE6F Small Form Variants
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSpacin.pl b/Master/xemtex/perl/lib/unicore/lib/InSpacin.pl
deleted file mode 100644
index 9a382598f4a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSpacin.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSpacingModifierLetters} (and fuzzy permutations)
-#
-# Meaning: Block 'Spacing Modifier Letters'
-#
-return <<'END';
-02B0 02FF Spacing Modifier Letters
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSpecia.pl b/Master/xemtex/perl/lib/unicore/lib/InSpecia.pl
deleted file mode 100644
index 7d7651a6e70..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSpecia.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSpecials} (and fuzzy permutations)
-#
-# Meaning: Block 'Specials'
-#
-return <<'END';
-FFF0 FFFF Specials
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSupers.pl b/Master/xemtex/perl/lib/unicore/lib/InSupers.pl
deleted file mode 100644
index 493f8170584..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSupers.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSuperscriptsAndSubscripts} (and fuzzy permutations)
-#
-# Meaning: Block 'Superscripts and Subscripts'
-#
-return <<'END';
-2070 209F Superscripts and Subscripts
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSuppl2.pl b/Master/xemtex/perl/lib/unicore/lib/InSuppl2.pl
deleted file mode 100644
index 6e9fb082d96..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSuppl2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSupplementalArrowsA} (and fuzzy permutations)
-#
-# Meaning: Block 'Supplemental Arrows-A'
-#
-return <<'END';
-27F0 27FF Supplemental Arrows-A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSuppl3.pl b/Master/xemtex/perl/lib/unicore/lib/InSuppl3.pl
deleted file mode 100644
index e4dc4791f9f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSuppl3.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSupplementaryPrivateUseAreaA} (and fuzzy permutations)
-#
-# Meaning: Block 'Supplementary Private Use Area-A'
-#
-return <<'END';
-F0000 FFFFF Supplementary Private Use Area-A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSuppl4.pl b/Master/xemtex/perl/lib/unicore/lib/InSuppl4.pl
deleted file mode 100644
index 5a080021c18..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSuppl4.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSupplementaryPrivateUseAreaB} (and fuzzy permutations)
-#
-# Meaning: Block 'Supplementary Private Use Area-B'
-#
-return <<'END';
-100000 10FFFF Supplementary Private Use Area-B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSuppl5.pl b/Master/xemtex/perl/lib/unicore/lib/InSuppl5.pl
deleted file mode 100644
index 89c08807612..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSuppl5.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSupplementalMathematicalOperators} (and fuzzy permutations)
-#
-# Meaning: Block 'Supplemental Mathematical Operators'
-#
-return <<'END';
-2A00 2AFF Supplemental Mathematical Operators
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSupple.pl b/Master/xemtex/perl/lib/unicore/lib/InSupple.pl
deleted file mode 100644
index 3fe71f2bd05..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSupple.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSupplementalArrowsB} (and fuzzy permutations)
-#
-# Meaning: Block 'Supplemental Arrows-B'
-#
-return <<'END';
-2900 297F Supplemental Arrows-B
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InSyriac.pl b/Master/xemtex/perl/lib/unicore/lib/InSyriac.pl
deleted file mode 100644
index 74f197037bd..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InSyriac.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InSyriac} (and fuzzy permutations)
-#
-# Meaning: Block 'Syriac'
-#
-return <<'END';
-0700 074F Syriac
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InTagalo.pl b/Master/xemtex/perl/lib/unicore/lib/InTagalo.pl
deleted file mode 100644
index 55c8ca466b2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InTagalo.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InTagalog} (and fuzzy permutations)
-#
-# Meaning: Block 'Tagalog'
-#
-return <<'END';
-1700 171F Tagalog
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InTagban.pl b/Master/xemtex/perl/lib/unicore/lib/InTagban.pl
deleted file mode 100644
index 9863a2e3c3f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InTagban.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InTagbanwa} (and fuzzy permutations)
-#
-# Meaning: Block 'Tagbanwa'
-#
-return <<'END';
-1760 177F Tagbanwa
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InTags.pl b/Master/xemtex/perl/lib/unicore/lib/InTags.pl
deleted file mode 100644
index 4a6600e29c3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InTags.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InTags} (and fuzzy permutations)
-#
-# Meaning: Block 'Tags'
-#
-return <<'END';
-E0000 E007F Tags
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InTamil.pl b/Master/xemtex/perl/lib/unicore/lib/InTamil.pl
deleted file mode 100644
index 20036caa54d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InTamil.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InTamil} (and fuzzy permutations)
-#
-# Meaning: Block 'Tamil'
-#
-return <<'END';
-0B80 0BFF Tamil
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InTelugu.pl b/Master/xemtex/perl/lib/unicore/lib/InTelugu.pl
deleted file mode 100644
index 1027f933339..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InTelugu.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InTelugu} (and fuzzy permutations)
-#
-# Meaning: Block 'Telugu'
-#
-return <<'END';
-0C00 0C7F Telugu
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InThaana.pl b/Master/xemtex/perl/lib/unicore/lib/InThaana.pl
deleted file mode 100644
index 740d71bd28e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InThaana.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InThaana} (and fuzzy permutations)
-#
-# Meaning: Block 'Thaana'
-#
-return <<'END';
-0780 07BF Thaana
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InThai.pl b/Master/xemtex/perl/lib/unicore/lib/InThai.pl
deleted file mode 100644
index db6a14581df..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InThai.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InThai} (and fuzzy permutations)
-#
-# Meaning: Block 'Thai'
-#
-return <<'END';
-0E00 0E7F Thai
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InTibeta.pl b/Master/xemtex/perl/lib/unicore/lib/InTibeta.pl
deleted file mode 100644
index 8fbe185461c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InTibeta.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InTibetan} (and fuzzy permutations)
-#
-# Meaning: Block 'Tibetan'
-#
-return <<'END';
-0F00 0FFF Tibetan
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InUnifie.pl b/Master/xemtex/perl/lib/unicore/lib/InUnifie.pl
deleted file mode 100644
index 50d46f18aa6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InUnifie.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InUnifiedCanadianAboriginalSyllabics} (and fuzzy permutations)
-#
-# Meaning: Block 'Unified Canadian Aboriginal Syllabics'
-#
-return <<'END';
-1400 167F Unified Canadian Aboriginal Syllabics
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InVariat.pl b/Master/xemtex/perl/lib/unicore/lib/InVariat.pl
deleted file mode 100644
index 1aa8c298b8c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InVariat.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InVariationSelectors} (and fuzzy permutations)
-#
-# Meaning: Block 'Variation Selectors'
-#
-return <<'END';
-FE00 FE0F Variation Selectors
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InYiRadi.pl b/Master/xemtex/perl/lib/unicore/lib/InYiRadi.pl
deleted file mode 100644
index 7b4265f725a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InYiRadi.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InYiRadicals} (and fuzzy permutations)
-#
-# Meaning: Block 'Yi Radicals'
-#
-return <<'END';
-A490 A4CF Yi Radicals
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/InYiSyll.pl b/Master/xemtex/perl/lib/unicore/lib/InYiSyll.pl
deleted file mode 100644
index c33de835d36..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/InYiSyll.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{InYiSyllables} (and fuzzy permutations)
-#
-# Meaning: Block 'Yi Syllables'
-#
-return <<'END';
-A000 A48F Yi Syllables
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Inherite.pl b/Master/xemtex/perl/lib/unicore/lib/Inherite.pl
deleted file mode 100644
index 49d811268eb..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Inherite.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Inherited} (and fuzzy permutations)
-#
-# Meaning: Script 'INHERITED'
-#
-return <<'END';
-0300 034F INHERITED
-0360 036F INHERITED
-0488 0489 INHERITED
-0591 05A1 INHERITED
-05A3 05B9 INHERITED
-05BB 05BD INHERITED
-05BF INHERITED
-05C1 05C2 INHERITED
-05C4 INHERITED
-064B 0655 INHERITED
-0670 INHERITED
-06D6 06E4 INHERITED
-06E7 06E8 INHERITED
-06EA 06ED INHERITED
-180B 180D INHERITED
-20D0 20EA INHERITED
-302A 302F INHERITED
-3099 309A INHERITED
-FB1E INHERITED
-FE00 FE0F INHERITED
-FE20 FE23 INHERITED
-1D167 1D169 INHERITED
-1D17B 1D182 INHERITED
-1D185 1D18B INHERITED
-1D1AA 1D1AD INHERITED
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/JoinCont.pl b/Master/xemtex/perl/lib/unicore/lib/JoinCont.pl
deleted file mode 100644
index be25b1afef6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/JoinCont.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{JoinControl} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Join_Control'
-#
-return <<'END';
-200C 200D Join_Control
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Kannada.pl b/Master/xemtex/perl/lib/unicore/lib/Kannada.pl
deleted file mode 100644
index 7c9a8580180..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Kannada.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Kannada} (and fuzzy permutations)
-#
-# Meaning: Script 'KANNADA'
-#
-return <<'END';
-0C82 0C83 KANNADA
-0C85 0C8C KANNADA
-0C8E 0C90 KANNADA
-0C92 0CA8 KANNADA
-0CAA 0CB3 KANNADA
-0CB5 0CB9 KANNADA
-0CBE 0CC4 KANNADA
-0CC6 0CC8 KANNADA
-0CCA 0CCD KANNADA
-0CD5 0CD6 KANNADA
-0CDE KANNADA
-0CE0 0CE1 KANNADA
-0CE6 0CEF KANNADA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Katakana.pl b/Master/xemtex/perl/lib/unicore/lib/Katakana.pl
deleted file mode 100644
index b6503508832..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Katakana.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Katakana} (and fuzzy permutations)
-#
-# Meaning: Script 'KATAKANA'
-#
-return <<'END';
-30A1 30FA KATAKANA
-30FD 30FF KATAKANA
-31F0 31FF KATAKANA
-FF66 FF6F KATAKANA
-FF71 FF9D KATAKANA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Khmer.pl b/Master/xemtex/perl/lib/unicore/lib/Khmer.pl
deleted file mode 100644
index 1e69e0039d0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Khmer.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Khmer} (and fuzzy permutations)
-#
-# Meaning: Script 'KHMER'
-#
-return <<'END';
-1780 17D3 KHMER
-17E0 17E9 KHMER
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/L.pl b/Master/xemtex/perl/lib/unicore/lib/L.pl
deleted file mode 100644
index 5b17fe75891..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/L.pl
+++ /dev/null
@@ -1,319 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{L}
-# \p{L} (and fuzzy permutations)
-#
-# Meaning: Major Category 'L'
-#
-return <<'END';
-0041 005A
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-048A 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 064A
-066E 066F
-0671 06D3
-06D5
-06E5 06E6
-06FA 06FC
-0710
-0712 072C
-0780 07A5
-07B1
-0905 0939
-093D
-0950
-0958 0961
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09DC 09DD
-09DF 09E1
-09F0 09F1
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A59 0A5C
-0A5E
-0A72 0A74
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABD
-0AD0
-0AE0
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3D
-0B5C 0B5D
-0B5F 0B61
-0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C60 0C61
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CDE
-0CE0 0CE1
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D60 0D61
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0E01 0E30
-0E32 0E33
-0E40 0E46
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB0
-0EB2 0EB3
-0EBD
-0EC0 0EC4
-0EC6
-0EDC 0EDD
-0F00
-0F40 0F47
-0F49 0F6A
-0F88 0F8B
-1000 1021
-1023 1027
-1029 102A
-1050 1055
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-1700 170C
-170E 1711
-1720 1731
-1740 1751
-1760 176C
-176E 1770
-1780 17B3
-17D7
-17DC
-1820 1877
-1880 18A8
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2071
-207F
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-3005 3006
-3031 3035
-303B 303C
-3041 3096
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-31A0 31B7
-31F0 31FF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D
-FB1F FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE70 FE74
-FE76 FEFC
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10330 10349
-10400 10425
-10428 1044D
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/L_.pl b/Master/xemtex/perl/lib/unicore/lib/L_.pl
deleted file mode 100644
index 44afbeb5922..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/L_.pl
+++ /dev/null
@@ -1,112 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{L&}
-#
-# Meaning: [\p{Ll}\p{Lu}\p{Lt}]
-#
-return <<'END';
-0041 005A
-0061 007A
-00AA
-00B5
-00BA
-00C0 00D6
-00D8 00F6
-00F8 01BA
-01BC 01BF
-01C4 0220
-0222 0233
-0250 02AD
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-048A 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0561 0587
-10A0 10C5
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2071
-207F
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2134
-2139
-213D 213F
-2145 2149
-FB00 FB06
-FB13 FB17
-FF21 FF3A
-FF41 FF5A
-10400 10425
-10428 1044D
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lao.pl b/Master/xemtex/perl/lib/unicore/lib/Lao.pl
deleted file mode 100644
index 83bc60c59b3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lao.pl
+++ /dev/null
@@ -1,30 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lao} (and fuzzy permutations)
-#
-# Meaning: Script 'LAO'
-#
-return <<'END';
-0E81 0E82 LAO
-0E84 LAO
-0E87 0E88 LAO
-0E8A LAO
-0E8D LAO
-0E94 0E97 LAO
-0E99 0E9F LAO
-0EA1 0EA3 LAO
-0EA5 LAO
-0EA7 LAO
-0EAA 0EAB LAO
-0EAD 0EB9 LAO
-0EBB 0EBD LAO
-0EC0 0EC4 LAO
-0EC6 LAO
-0EC8 0ECD LAO
-0ED0 0ED9 LAO
-0EDC 0EDD LAO
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Latin.pl b/Master/xemtex/perl/lib/unicore/lib/Latin.pl
deleted file mode 100644
index 2b27d1c2233..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Latin.pl
+++ /dev/null
@@ -1,31 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Latin} (and fuzzy permutations)
-#
-# Meaning: Script 'LATIN'
-#
-return <<'END';
-0041 005A LATIN
-0061 007A LATIN
-00AA LATIN
-00BA LATIN
-00C0 00D6 LATIN
-00D8 00F6 LATIN
-00F8 0220 LATIN
-0222 0233 LATIN
-0250 02AD LATIN
-02B0 02B8 LATIN
-02E0 02E4 LATIN
-1E00 1E9B LATIN
-1EA0 1EF9 LATIN
-2071 LATIN
-207F LATIN
-212A 212B LATIN
-FB00 FB06 LATIN
-FF21 FF3A LATIN
-FF41 FF5A LATIN
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Ll.pl b/Master/xemtex/perl/lib/unicore/lib/Ll.pl
deleted file mode 100644
index 8655dfea53f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Ll.pl
+++ /dev/null
@@ -1,433 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Ll}
-# \p{Ll} (and fuzzy permutations)
-#
-# Meaning: General Category 'Ll'
-#
-return <<'END';
-0061 007A
-00AA
-00B5
-00BA
-00DF 00F6
-00F8 00FF
-0101
-0103
-0105
-0107
-0109
-010B
-010D
-010F
-0111
-0113
-0115
-0117
-0119
-011B
-011D
-011F
-0121
-0123
-0125
-0127
-0129
-012B
-012D
-012F
-0131
-0133
-0135
-0137 0138
-013A
-013C
-013E
-0140
-0142
-0144
-0146
-0148 0149
-014B
-014D
-014F
-0151
-0153
-0155
-0157
-0159
-015B
-015D
-015F
-0161
-0163
-0165
-0167
-0169
-016B
-016D
-016F
-0171
-0173
-0175
-0177
-017A
-017C
-017E 0180
-0183
-0185
-0188
-018C 018D
-0192
-0195
-0199 019B
-019E
-01A1
-01A3
-01A5
-01A8
-01AA 01AB
-01AD
-01B0
-01B4
-01B6
-01B9 01BA
-01BD 01BF
-01C6
-01C9
-01CC
-01CE
-01D0
-01D2
-01D4
-01D6
-01D8
-01DA
-01DC 01DD
-01DF
-01E1
-01E3
-01E5
-01E7
-01E9
-01EB
-01ED
-01EF 01F0
-01F3
-01F5
-01F9
-01FB
-01FD
-01FF
-0201
-0203
-0205
-0207
-0209
-020B
-020D
-020F
-0211
-0213
-0215
-0217
-0219
-021B
-021D
-021F
-0223
-0225
-0227
-0229
-022B
-022D
-022F
-0231
-0233
-0250 02AD
-0390
-03AC 03CE
-03D0 03D1
-03D5 03D7
-03D9
-03DB
-03DD
-03DF
-03E1
-03E3
-03E5
-03E7
-03E9
-03EB
-03ED
-03EF 03F3
-03F5
-0430 045F
-0461
-0463
-0465
-0467
-0469
-046B
-046D
-046F
-0471
-0473
-0475
-0477
-0479
-047B
-047D
-047F
-0481
-048B
-048D
-048F
-0491
-0493
-0495
-0497
-0499
-049B
-049D
-049F
-04A1
-04A3
-04A5
-04A7
-04A9
-04AB
-04AD
-04AF
-04B1
-04B3
-04B5
-04B7
-04B9
-04BB
-04BD
-04BF
-04C2
-04C4
-04C6
-04C8
-04CA
-04CC
-04CE
-04D1
-04D3
-04D5
-04D7
-04D9
-04DB
-04DD
-04DF
-04E1
-04E3
-04E5
-04E7
-04E9
-04EB
-04ED
-04EF
-04F1
-04F3
-04F5
-04F9
-0501
-0503
-0505
-0507
-0509
-050B
-050D
-050F
-0561 0587
-1E01
-1E03
-1E05
-1E07
-1E09
-1E0B
-1E0D
-1E0F
-1E11
-1E13
-1E15
-1E17
-1E19
-1E1B
-1E1D
-1E1F
-1E21
-1E23
-1E25
-1E27
-1E29
-1E2B
-1E2D
-1E2F
-1E31
-1E33
-1E35
-1E37
-1E39
-1E3B
-1E3D
-1E3F
-1E41
-1E43
-1E45
-1E47
-1E49
-1E4B
-1E4D
-1E4F
-1E51
-1E53
-1E55
-1E57
-1E59
-1E5B
-1E5D
-1E5F
-1E61
-1E63
-1E65
-1E67
-1E69
-1E6B
-1E6D
-1E6F
-1E71
-1E73
-1E75
-1E77
-1E79
-1E7B
-1E7D
-1E7F
-1E81
-1E83
-1E85
-1E87
-1E89
-1E8B
-1E8D
-1E8F
-1E91
-1E93
-1E95 1E9B
-1EA1
-1EA3
-1EA5
-1EA7
-1EA9
-1EAB
-1EAD
-1EAF
-1EB1
-1EB3
-1EB5
-1EB7
-1EB9
-1EBB
-1EBD
-1EBF
-1EC1
-1EC3
-1EC5
-1EC7
-1EC9
-1ECB
-1ECD
-1ECF
-1ED1
-1ED3
-1ED5
-1ED7
-1ED9
-1EDB
-1EDD
-1EDF
-1EE1
-1EE3
-1EE5
-1EE7
-1EE9
-1EEB
-1EED
-1EEF
-1EF1
-1EF3
-1EF5
-1EF7
-1EF9
-1F00 1F07
-1F10 1F15
-1F20 1F27
-1F30 1F37
-1F40 1F45
-1F50 1F57
-1F60 1F67
-1F70 1F7D
-1F80 1F87
-1F90 1F97
-1FA0 1FA7
-1FB0 1FB4
-1FB6 1FB7
-1FBE
-1FC2 1FC4
-1FC6 1FC7
-1FD0 1FD3
-1FD6 1FD7
-1FE0 1FE7
-1FF2 1FF4
-1FF6 1FF7
-2071
-207F
-210A
-210E 210F
-2113
-212F
-2134
-2139
-213D
-2146 2149
-FB00 FB06
-FB13 FB17
-FF41 FF5A
-10428 1044D
-1D41A 1D433
-1D44E 1D454
-1D456 1D467
-1D482 1D49B
-1D4B6 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D4CF
-1D4EA 1D503
-1D51E 1D537
-1D552 1D56B
-1D586 1D59F
-1D5BA 1D5D3
-1D5EE 1D607
-1D622 1D63B
-1D656 1D66F
-1D68A 1D6A3
-1D6C2 1D6DA
-1D6DC 1D6E1
-1D6FC 1D714
-1D716 1D71B
-1D736 1D74E
-1D750 1D755
-1D770 1D788
-1D78A 1D78F
-1D7AA 1D7C2
-1D7C4 1D7C9
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lm.pl b/Master/xemtex/perl/lib/unicore/lib/Lm.pl
deleted file mode 100644
index 808193f0342..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lm.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lm}
-# \p{Lm} (and fuzzy permutations)
-#
-# Meaning: General Category 'Lm'
-#
-return <<'END';
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-037A
-0559
-0640
-06E5 06E6
-0E46
-0EC6
-17D7
-1843
-3005
-3031 3035
-303B
-309D 309E
-30FC 30FE
-FF70
-FF9E FF9F
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lo.pl b/Master/xemtex/perl/lib/unicore/lib/Lo.pl
deleted file mode 100644
index d5f161a0fa6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lo.pl
+++ /dev/null
@@ -1,217 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lo}
-# \p{Lo} (and fuzzy permutations)
-#
-# Meaning: General Category 'Lo'
-#
-return <<'END';
-01BB
-01C0 01C3
-05D0 05EA
-05F0 05F2
-0621 063A
-0641 064A
-066E 066F
-0671 06D3
-06D5
-06FA 06FC
-0710
-0712 072C
-0780 07A5
-07B1
-0905 0939
-093D
-0950
-0958 0961
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09DC 09DD
-09DF 09E1
-09F0 09F1
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A59 0A5C
-0A5E
-0A72 0A74
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABD
-0AD0
-0AE0
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3D
-0B5C 0B5D
-0B5F 0B61
-0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C60 0C61
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CDE
-0CE0 0CE1
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D60 0D61
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0E01 0E30
-0E32 0E33
-0E40 0E45
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB0
-0EB2 0EB3
-0EBD
-0EC0 0EC4
-0EDC 0EDD
-0F00
-0F40 0F47
-0F49 0F6A
-0F88 0F8B
-1000 1021
-1023 1027
-1029 102A
-1050 1055
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-1700 170C
-170E 1711
-1720 1731
-1740 1751
-1760 176C
-176E 1770
-1780 17B3
-17DC
-1820 1842
-1844 1877
-1880 18A8
-2135 2138
-3006
-303C
-3041 3096
-309F
-30A1 30FA
-30FF
-3105 312C
-3131 318E
-31A0 31B7
-31F0 31FF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB1D
-FB1F FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE70 FE74
-FE76 FEFC
-FF66 FF6F
-FF71 FF9D
-FFA0 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10330 10349
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/LogicalO.pl b/Master/xemtex/perl/lib/unicore/lib/LogicalO.pl
deleted file mode 100644
index ae5ad73f603..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/LogicalO.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LogicalOrderException} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Logical_Order_Exception'
-#
-return <<'END';
-0E40 0E44 Logical_Order_Exception
-0EC0 0EC4 Logical_Order_Exception
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lower.pl b/Master/xemtex/perl/lib/unicore/lib/Lower.pl
deleted file mode 100644
index b9e16389f7c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lower.pl
+++ /dev/null
@@ -1,432 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lower}
-#
-# Meaning: [[:Lower:]]
-#
-return <<'END';
-0061 007A
-00AA
-00B5
-00BA
-00DF 00F6
-00F8 00FF
-0101
-0103
-0105
-0107
-0109
-010B
-010D
-010F
-0111
-0113
-0115
-0117
-0119
-011B
-011D
-011F
-0121
-0123
-0125
-0127
-0129
-012B
-012D
-012F
-0131
-0133
-0135
-0137 0138
-013A
-013C
-013E
-0140
-0142
-0144
-0146
-0148 0149
-014B
-014D
-014F
-0151
-0153
-0155
-0157
-0159
-015B
-015D
-015F
-0161
-0163
-0165
-0167
-0169
-016B
-016D
-016F
-0171
-0173
-0175
-0177
-017A
-017C
-017E 0180
-0183
-0185
-0188
-018C 018D
-0192
-0195
-0199 019B
-019E
-01A1
-01A3
-01A5
-01A8
-01AA 01AB
-01AD
-01B0
-01B4
-01B6
-01B9 01BA
-01BD 01BF
-01C6
-01C9
-01CC
-01CE
-01D0
-01D2
-01D4
-01D6
-01D8
-01DA
-01DC 01DD
-01DF
-01E1
-01E3
-01E5
-01E7
-01E9
-01EB
-01ED
-01EF 01F0
-01F3
-01F5
-01F9
-01FB
-01FD
-01FF
-0201
-0203
-0205
-0207
-0209
-020B
-020D
-020F
-0211
-0213
-0215
-0217
-0219
-021B
-021D
-021F
-0223
-0225
-0227
-0229
-022B
-022D
-022F
-0231
-0233
-0250 02AD
-0390
-03AC 03CE
-03D0 03D1
-03D5 03D7
-03D9
-03DB
-03DD
-03DF
-03E1
-03E3
-03E5
-03E7
-03E9
-03EB
-03ED
-03EF 03F3
-03F5
-0430 045F
-0461
-0463
-0465
-0467
-0469
-046B
-046D
-046F
-0471
-0473
-0475
-0477
-0479
-047B
-047D
-047F
-0481
-048B
-048D
-048F
-0491
-0493
-0495
-0497
-0499
-049B
-049D
-049F
-04A1
-04A3
-04A5
-04A7
-04A9
-04AB
-04AD
-04AF
-04B1
-04B3
-04B5
-04B7
-04B9
-04BB
-04BD
-04BF
-04C2
-04C4
-04C6
-04C8
-04CA
-04CC
-04CE
-04D1
-04D3
-04D5
-04D7
-04D9
-04DB
-04DD
-04DF
-04E1
-04E3
-04E5
-04E7
-04E9
-04EB
-04ED
-04EF
-04F1
-04F3
-04F5
-04F9
-0501
-0503
-0505
-0507
-0509
-050B
-050D
-050F
-0561 0587
-1E01
-1E03
-1E05
-1E07
-1E09
-1E0B
-1E0D
-1E0F
-1E11
-1E13
-1E15
-1E17
-1E19
-1E1B
-1E1D
-1E1F
-1E21
-1E23
-1E25
-1E27
-1E29
-1E2B
-1E2D
-1E2F
-1E31
-1E33
-1E35
-1E37
-1E39
-1E3B
-1E3D
-1E3F
-1E41
-1E43
-1E45
-1E47
-1E49
-1E4B
-1E4D
-1E4F
-1E51
-1E53
-1E55
-1E57
-1E59
-1E5B
-1E5D
-1E5F
-1E61
-1E63
-1E65
-1E67
-1E69
-1E6B
-1E6D
-1E6F
-1E71
-1E73
-1E75
-1E77
-1E79
-1E7B
-1E7D
-1E7F
-1E81
-1E83
-1E85
-1E87
-1E89
-1E8B
-1E8D
-1E8F
-1E91
-1E93
-1E95 1E9B
-1EA1
-1EA3
-1EA5
-1EA7
-1EA9
-1EAB
-1EAD
-1EAF
-1EB1
-1EB3
-1EB5
-1EB7
-1EB9
-1EBB
-1EBD
-1EBF
-1EC1
-1EC3
-1EC5
-1EC7
-1EC9
-1ECB
-1ECD
-1ECF
-1ED1
-1ED3
-1ED5
-1ED7
-1ED9
-1EDB
-1EDD
-1EDF
-1EE1
-1EE3
-1EE5
-1EE7
-1EE9
-1EEB
-1EED
-1EEF
-1EF1
-1EF3
-1EF5
-1EF7
-1EF9
-1F00 1F07
-1F10 1F15
-1F20 1F27
-1F30 1F37
-1F40 1F45
-1F50 1F57
-1F60 1F67
-1F70 1F7D
-1F80 1F87
-1F90 1F97
-1FA0 1FA7
-1FB0 1FB4
-1FB6 1FB7
-1FBE
-1FC2 1FC4
-1FC6 1FC7
-1FD0 1FD3
-1FD6 1FD7
-1FE0 1FE7
-1FF2 1FF4
-1FF6 1FF7
-2071
-207F
-210A
-210E 210F
-2113
-212F
-2134
-2139
-213D
-2146 2149
-FB00 FB06
-FB13 FB17
-FF41 FF5A
-10428 1044D
-1D41A 1D433
-1D44E 1D454
-1D456 1D467
-1D482 1D49B
-1D4B6 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D4CF
-1D4EA 1D503
-1D51E 1D537
-1D552 1D56B
-1D586 1D59F
-1D5BA 1D5D3
-1D5EE 1D607
-1D622 1D63B
-1D656 1D66F
-1D68A 1D6A3
-1D6C2 1D6DA
-1D6DC 1D6E1
-1D6FC 1D714
-1D716 1D71B
-1D736 1D74E
-1D750 1D755
-1D770 1D788
-1D78A 1D78F
-1D7AA 1D7C2
-1D7C4 1D7C9
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lowercas.pl b/Master/xemtex/perl/lib/unicore/lib/Lowercas.pl
deleted file mode 100644
index 07832e47ee7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lowercas.pl
+++ /dev/null
@@ -1,439 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lowercase} (and fuzzy permutations)
-#
-# Meaning: [\p{Ll}\p{OtherLowercase}]
-#
-return <<'END';
-0061 007A
-00AA
-00B5
-00BA
-00DF 00F6
-00F8 00FF
-0101
-0103
-0105
-0107
-0109
-010B
-010D
-010F
-0111
-0113
-0115
-0117
-0119
-011B
-011D
-011F
-0121
-0123
-0125
-0127
-0129
-012B
-012D
-012F
-0131
-0133
-0135
-0137 0138
-013A
-013C
-013E
-0140
-0142
-0144
-0146
-0148 0149
-014B
-014D
-014F
-0151
-0153
-0155
-0157
-0159
-015B
-015D
-015F
-0161
-0163
-0165
-0167
-0169
-016B
-016D
-016F
-0171
-0173
-0175
-0177
-017A
-017C
-017E 0180
-0183
-0185
-0188
-018C 018D
-0192
-0195
-0199 019B
-019E
-01A1
-01A3
-01A5
-01A8
-01AA 01AB
-01AD
-01B0
-01B4
-01B6
-01B9 01BA
-01BD 01BF
-01C6
-01C9
-01CC
-01CE
-01D0
-01D2
-01D4
-01D6
-01D8
-01DA
-01DC 01DD
-01DF
-01E1
-01E3
-01E5
-01E7
-01E9
-01EB
-01ED
-01EF 01F0
-01F3
-01F5
-01F9
-01FB
-01FD
-01FF
-0201
-0203
-0205
-0207
-0209
-020B
-020D
-020F
-0211
-0213
-0215
-0217
-0219
-021B
-021D
-021F
-0223
-0225
-0227
-0229
-022B
-022D
-022F
-0231
-0233
-0250 02AD
-02B0 02B8
-02C0 02C1
-02E0 02E4
-0345
-037A
-0390
-03AC 03CE
-03D0 03D1
-03D5 03D7
-03D9
-03DB
-03DD
-03DF
-03E1
-03E3
-03E5
-03E7
-03E9
-03EB
-03ED
-03EF 03F3
-03F5
-0430 045F
-0461
-0463
-0465
-0467
-0469
-046B
-046D
-046F
-0471
-0473
-0475
-0477
-0479
-047B
-047D
-047F
-0481
-048B
-048D
-048F
-0491
-0493
-0495
-0497
-0499
-049B
-049D
-049F
-04A1
-04A3
-04A5
-04A7
-04A9
-04AB
-04AD
-04AF
-04B1
-04B3
-04B5
-04B7
-04B9
-04BB
-04BD
-04BF
-04C2
-04C4
-04C6
-04C8
-04CA
-04CC
-04CE
-04D1
-04D3
-04D5
-04D7
-04D9
-04DB
-04DD
-04DF
-04E1
-04E3
-04E5
-04E7
-04E9
-04EB
-04ED
-04EF
-04F1
-04F3
-04F5
-04F9
-0501
-0503
-0505
-0507
-0509
-050B
-050D
-050F
-0561 0587
-1E01
-1E03
-1E05
-1E07
-1E09
-1E0B
-1E0D
-1E0F
-1E11
-1E13
-1E15
-1E17
-1E19
-1E1B
-1E1D
-1E1F
-1E21
-1E23
-1E25
-1E27
-1E29
-1E2B
-1E2D
-1E2F
-1E31
-1E33
-1E35
-1E37
-1E39
-1E3B
-1E3D
-1E3F
-1E41
-1E43
-1E45
-1E47
-1E49
-1E4B
-1E4D
-1E4F
-1E51
-1E53
-1E55
-1E57
-1E59
-1E5B
-1E5D
-1E5F
-1E61
-1E63
-1E65
-1E67
-1E69
-1E6B
-1E6D
-1E6F
-1E71
-1E73
-1E75
-1E77
-1E79
-1E7B
-1E7D
-1E7F
-1E81
-1E83
-1E85
-1E87
-1E89
-1E8B
-1E8D
-1E8F
-1E91
-1E93
-1E95 1E9B
-1EA1
-1EA3
-1EA5
-1EA7
-1EA9
-1EAB
-1EAD
-1EAF
-1EB1
-1EB3
-1EB5
-1EB7
-1EB9
-1EBB
-1EBD
-1EBF
-1EC1
-1EC3
-1EC5
-1EC7
-1EC9
-1ECB
-1ECD
-1ECF
-1ED1
-1ED3
-1ED5
-1ED7
-1ED9
-1EDB
-1EDD
-1EDF
-1EE1
-1EE3
-1EE5
-1EE7
-1EE9
-1EEB
-1EED
-1EEF
-1EF1
-1EF3
-1EF5
-1EF7
-1EF9
-1F00 1F07
-1F10 1F15
-1F20 1F27
-1F30 1F37
-1F40 1F45
-1F50 1F57
-1F60 1F67
-1F70 1F7D
-1F80 1F87
-1F90 1F97
-1FA0 1FA7
-1FB0 1FB4
-1FB6 1FB7
-1FBE
-1FC2 1FC4
-1FC6 1FC7
-1FD0 1FD3
-1FD6 1FD7
-1FE0 1FE7
-1FF2 1FF4
-1FF6 1FF7
-2071
-207F
-210A
-210E 210F
-2113
-212F
-2134
-2139
-213D
-2146 2149
-2170 217F
-24D0 24E9
-FB00 FB06
-FB13 FB17
-FF41 FF5A
-10428 1044D
-1D41A 1D433
-1D44E 1D454
-1D456 1D467
-1D482 1D49B
-1D4B6 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D4CF
-1D4EA 1D503
-1D51E 1D537
-1D552 1D56B
-1D586 1D59F
-1D5BA 1D5D3
-1D5EE 1D607
-1D622 1D63B
-1D656 1D66F
-1D68A 1D6A3
-1D6C2 1D6DA
-1D6DC 1D6E1
-1D6FC 1D714
-1D716 1D71B
-1D736 1D74E
-1D750 1D755
-1D770 1D788
-1D78A 1D78F
-1D7AA 1D7C2
-1D7C4 1D7C9
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lt.pl b/Master/xemtex/perl/lib/unicore/lib/Lt.pl
deleted file mode 100644
index 40f761a9c69..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lt.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lt}
-# \p{Lt} (and fuzzy permutations)
-#
-# Meaning: General Category 'Lt'
-#
-return <<'END';
-01C5
-01C8
-01CB
-01F2
-1F88 1F8F
-1F98 1F9F
-1FA8 1FAF
-1FBC
-1FCC
-1FFC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Lu.pl b/Master/xemtex/perl/lib/unicore/lib/Lu.pl
deleted file mode 100644
index 1414b40d2f7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Lu.pl
+++ /dev/null
@@ -1,432 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Lu}
-# \p{Lu} (and fuzzy permutations)
-#
-# Meaning: General Category 'Lu'
-#
-return <<'END';
-0041 005A
-00C0 00D6
-00D8 00DE
-0100
-0102
-0104
-0106
-0108
-010A
-010C
-010E
-0110
-0112
-0114
-0116
-0118
-011A
-011C
-011E
-0120
-0122
-0124
-0126
-0128
-012A
-012C
-012E
-0130
-0132
-0134
-0136
-0139
-013B
-013D
-013F
-0141
-0143
-0145
-0147
-014A
-014C
-014E
-0150
-0152
-0154
-0156
-0158
-015A
-015C
-015E
-0160
-0162
-0164
-0166
-0168
-016A
-016C
-016E
-0170
-0172
-0174
-0176
-0178 0179
-017B
-017D
-0181 0182
-0184
-0186 0187
-0189 018B
-018E 0191
-0193 0194
-0196 0198
-019C 019D
-019F 01A0
-01A2
-01A4
-01A6 01A7
-01A9
-01AC
-01AE 01AF
-01B1 01B3
-01B5
-01B7 01B8
-01BC
-01C4
-01C7
-01CA
-01CD
-01CF
-01D1
-01D3
-01D5
-01D7
-01D9
-01DB
-01DE
-01E0
-01E2
-01E4
-01E6
-01E8
-01EA
-01EC
-01EE
-01F1
-01F4
-01F6 01F8
-01FA
-01FC
-01FE
-0200
-0202
-0204
-0206
-0208
-020A
-020C
-020E
-0210
-0212
-0214
-0216
-0218
-021A
-021C
-021E
-0220
-0222
-0224
-0226
-0228
-022A
-022C
-022E
-0230
-0232
-0386
-0388 038A
-038C
-038E 038F
-0391 03A1
-03A3 03AB
-03D2 03D4
-03D8
-03DA
-03DC
-03DE
-03E0
-03E2
-03E4
-03E6
-03E8
-03EA
-03EC
-03EE
-03F4
-0400 042F
-0460
-0462
-0464
-0466
-0468
-046A
-046C
-046E
-0470
-0472
-0474
-0476
-0478
-047A
-047C
-047E
-0480
-048A
-048C
-048E
-0490
-0492
-0494
-0496
-0498
-049A
-049C
-049E
-04A0
-04A2
-04A4
-04A6
-04A8
-04AA
-04AC
-04AE
-04B0
-04B2
-04B4
-04B6
-04B8
-04BA
-04BC
-04BE
-04C0 04C1
-04C3
-04C5
-04C7
-04C9
-04CB
-04CD
-04D0
-04D2
-04D4
-04D6
-04D8
-04DA
-04DC
-04DE
-04E0
-04E2
-04E4
-04E6
-04E8
-04EA
-04EC
-04EE
-04F0
-04F2
-04F4
-04F8
-0500
-0502
-0504
-0506
-0508
-050A
-050C
-050E
-0531 0556
-10A0 10C5
-1E00
-1E02
-1E04
-1E06
-1E08
-1E0A
-1E0C
-1E0E
-1E10
-1E12
-1E14
-1E16
-1E18
-1E1A
-1E1C
-1E1E
-1E20
-1E22
-1E24
-1E26
-1E28
-1E2A
-1E2C
-1E2E
-1E30
-1E32
-1E34
-1E36
-1E38
-1E3A
-1E3C
-1E3E
-1E40
-1E42
-1E44
-1E46
-1E48
-1E4A
-1E4C
-1E4E
-1E50
-1E52
-1E54
-1E56
-1E58
-1E5A
-1E5C
-1E5E
-1E60
-1E62
-1E64
-1E66
-1E68
-1E6A
-1E6C
-1E6E
-1E70
-1E72
-1E74
-1E76
-1E78
-1E7A
-1E7C
-1E7E
-1E80
-1E82
-1E84
-1E86
-1E88
-1E8A
-1E8C
-1E8E
-1E90
-1E92
-1E94
-1EA0
-1EA2
-1EA4
-1EA6
-1EA8
-1EAA
-1EAC
-1EAE
-1EB0
-1EB2
-1EB4
-1EB6
-1EB8
-1EBA
-1EBC
-1EBE
-1EC0
-1EC2
-1EC4
-1EC6
-1EC8
-1ECA
-1ECC
-1ECE
-1ED0
-1ED2
-1ED4
-1ED6
-1ED8
-1EDA
-1EDC
-1EDE
-1EE0
-1EE2
-1EE4
-1EE6
-1EE8
-1EEA
-1EEC
-1EEE
-1EF0
-1EF2
-1EF4
-1EF6
-1EF8
-1F08 1F0F
-1F18 1F1D
-1F28 1F2F
-1F38 1F3F
-1F48 1F4D
-1F59
-1F5B
-1F5D
-1F5F
-1F68 1F6F
-1FB8 1FBB
-1FC8 1FCB
-1FD8 1FDB
-1FE8 1FEC
-1FF8 1FFB
-2102
-2107
-210B 210D
-2110 2112
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-2130 2131
-2133
-213E 213F
-2145
-FF21 FF3A
-10400 10425
-1D400 1D419
-1D434 1D44D
-1D468 1D481
-1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B5
-1D4D0 1D4E9
-1D504 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D538 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D56C 1D585
-1D5A0 1D5B9
-1D5D4 1D5ED
-1D608 1D621
-1D63C 1D655
-1D670 1D689
-1D6A8 1D6C0
-1D6E2 1D6FA
-1D71C 1D734
-1D756 1D76E
-1D790 1D7A8
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/M.pl b/Master/xemtex/perl/lib/unicore/lib/M.pl
deleted file mode 100644
index cd78b82348e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/M.pl
+++ /dev/null
@@ -1,125 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{M}
-# \p{M} (and fuzzy permutations)
-#
-# Meaning: Major Category 'M'
-#
-return <<'END';
-0300 034F
-0360 036F
-0483 0486
-0488 0489
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-064B 0655
-0670
-06D6 06DC
-06DE 06E4
-06E7 06E8
-06EA 06ED
-0711
-0730 074A
-07A6 07B0
-0901 0903
-093C
-093E 094D
-0951 0954
-0962 0963
-0981 0983
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09E2 09E3
-0A02
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A70 0A71
-0A81 0A83
-0ABC
-0ABE 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0B01 0B03
-0B3C
-0B3E 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B82
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0C01 0C03
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C82 0C83
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0D02 0D03
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D82 0D83
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF3
-0E31
-0E34 0E3A
-0E47 0E4E
-0EB1
-0EB4 0EB9
-0EBB 0EBC
-0EC8 0ECD
-0F18 0F19
-0F35
-0F37
-0F39
-0F3E 0F3F
-0F71 0F84
-0F86 0F87
-0F90 0F97
-0F99 0FBC
-0FC6
-102C 1032
-1036 1039
-1056 1059
-1712 1714
-1732 1734
-1752 1753
-1772 1773
-17B4 17D3
-180B 180D
-18A9
-20D0 20EA
-302A 302F
-3099 309A
-FB1E
-FE00 FE0F
-FE20 FE23
-1D165 1D169
-1D16D 1D172
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Malayala.pl b/Master/xemtex/perl/lib/unicore/lib/Malayala.pl
deleted file mode 100644
index eb1c7365e14..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Malayala.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Malayalam} (and fuzzy permutations)
-#
-# Meaning: Script 'MALAYALAM'
-#
-return <<'END';
-0D02 0D03 MALAYALAM
-0D05 0D0C MALAYALAM
-0D0E 0D10 MALAYALAM
-0D12 0D28 MALAYALAM
-0D2A 0D39 MALAYALAM
-0D3E 0D43 MALAYALAM
-0D46 0D48 MALAYALAM
-0D4A 0D4D MALAYALAM
-0D57 MALAYALAM
-0D60 0D61 MALAYALAM
-0D66 0D6F MALAYALAM
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Math.pl b/Master/xemtex/perl/lib/unicore/lib/Math.pl
deleted file mode 100644
index a233c79f8fe..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Math.pl
+++ /dev/null
@@ -1,101 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Math} (and fuzzy permutations)
-#
-# Meaning: [\p{Sm}\p{OtherMath}]
-#
-return <<'END';
-0028 002B
-002D
-002F
-003C 003E
-005B 005E
-007B 007E
-00AC
-00B1
-00D7
-00F7
-03F6
-2016
-2032 2034
-2044
-2052
-207A 207E
-208A 208E
-20D0 20DC
-20E1
-2102
-210A 2113
-2115
-2119 211D
-2124
-2128
-212C 212D
-212F 2131
-2133 2138
-2140 2144
-214B
-2190 2194
-219A 219B
-21A0
-21A3
-21A6
-21AE
-21CE 21CF
-21D2
-21D4
-21F4 22FF
-2308 230B
-2320 2321
-237C
-239B 23B3
-25B7
-25C1
-25F8 25FF
-266F
-27D0 27E5
-27F0 27FF
-2900 2982
-2999 29D7
-29DC 29FB
-29FE 2AFF
-FB29
-FE35 FE38
-FE59 FE5C
-FE61 FE66
-FE68
-FF08 FF0B
-FF0D
-FF0F
-FF1C FF1E
-FF3B FF3E
-FF5B FF5E
-FFE2
-FFE9 FFEC
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Mc.pl b/Master/xemtex/perl/lib/unicore/lib/Mc.pl
deleted file mode 100644
index cb4833a16e9..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Mc.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Mc}
-# \p{Mc} (and fuzzy permutations)
-#
-# Meaning: General Category 'Mc'
-#
-return <<'END';
-0903
-093E 0940
-0949 094C
-0982 0983
-09BE 09C0
-09C7 09C8
-09CB 09CC
-09D7
-0A3E 0A40
-0A83
-0ABE 0AC0
-0AC9
-0ACB 0ACC
-0B02 0B03
-0B3E
-0B40
-0B47 0B48
-0B4B 0B4C
-0B57
-0BBE 0BBF
-0BC1 0BC2
-0BC6 0BC8
-0BCA 0BCC
-0BD7
-0C01 0C03
-0C41 0C44
-0C82 0C83
-0CBE
-0CC0 0CC4
-0CC7 0CC8
-0CCA 0CCB
-0CD5 0CD6
-0D02 0D03
-0D3E 0D40
-0D46 0D48
-0D4A 0D4C
-0D57
-0D82 0D83
-0DCF 0DD1
-0DD8 0DDF
-0DF2 0DF3
-0F3E 0F3F
-0F7F
-102C
-1031
-1038
-1056 1057
-17B4 17B6
-17BE 17C5
-17C7 17C8
-1D165 1D166
-1D16D 1D172
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Me.pl b/Master/xemtex/perl/lib/unicore/lib/Me.pl
deleted file mode 100644
index e8dc9d974e0..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Me.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Me}
-# \p{Me} (and fuzzy permutations)
-#
-# Meaning: General Category 'Me'
-#
-return <<'END';
-0488 0489
-06DE
-20DD 20E0
-20E2 20E4
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Mirrored.pl b/Master/xemtex/perl/lib/unicore/lib/Mirrored.pl
deleted file mode 100644
index f7512515add..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Mirrored.pl
+++ /dev/null
@@ -1,105 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Mirrored}
-#
-# Meaning: Mirrored in bidirectional text
-#
-return <<'END';
-0028 0029
-003C
-003E
-005B
-005D
-007B
-007D
-00AB
-00BB
-2039 203A
-2045 2046
-207D 207E
-208D 208E
-2140
-2201 2204
-2208 220D
-2211
-2215 2216
-221A 221D
-221F 2222
-2224
-2226
-222B 2233
-2239
-223B 224C
-2252 2255
-225F 2260
-2262
-2264 226B
-226E 228C
-228F 2292
-2298
-22A2 22A3
-22A6 22B8
-22BE 22BF
-22C9 22CD
-22D0 22D1
-22D6 22ED
-22F0 22FF
-2308 230B
-2320 2321
-2329 232A
-2768 2775
-27D3 27D6
-27DC 27DE
-27E2 27EB
-2983 2998
-299B 29AF
-29B8
-29C0 29C5
-29C9
-29CE 29D2
-29D4 29D5
-29D8 29DC
-29E1
-29E3 29E5
-29E8 29E9
-29F4 29F9
-29FC 29FD
-2A0A 2A1C
-2A1E 2A21
-2A24
-2A26
-2A29
-2A2B 2A2E
-2A34 2A35
-2A3C 2A3E
-2A57 2A58
-2A64 2A65
-2A6A 2A6D
-2A6F 2A70
-2A73 2A74
-2A79 2AA3
-2AA6 2AAD
-2AAF 2AD6
-2ADC
-2ADE
-2AE2 2AE6
-2AEC 2AEE
-2AF3
-2AF7 2AFB
-2AFD
-3008 3011
-3014 301B
-FF08 FF09
-FF1C
-FF1E
-FF3B
-FF3D
-FF5B
-FF5D
-FF5F FF60
-FF62 FF63
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Mn.pl b/Master/xemtex/perl/lib/unicore/lib/Mn.pl
deleted file mode 100644
index 481f1ed4915..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Mn.pl
+++ /dev/null
@@ -1,117 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Mn}
-# \p{Mn} (and fuzzy permutations)
-#
-# Meaning: General Category 'Mn'
-#
-return <<'END';
-0300 034F
-0360 036F
-0483 0486
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-064B 0655
-0670
-06D6 06DC
-06DF 06E4
-06E7 06E8
-06EA 06ED
-0711
-0730 074A
-07A6 07B0
-0901 0902
-093C
-0941 0948
-094D
-0951 0954
-0962 0963
-0981
-09BC
-09C1 09C4
-09CD
-09E2 09E3
-0A02
-0A3C
-0A41 0A42
-0A47 0A48
-0A4B 0A4D
-0A70 0A71
-0A81 0A82
-0ABC
-0AC1 0AC5
-0AC7 0AC8
-0ACD
-0B01
-0B3C
-0B3F
-0B41 0B43
-0B4D
-0B56
-0B82
-0BC0
-0BCD
-0C3E 0C40
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0CBF
-0CC6
-0CCC 0CCD
-0D41 0D43
-0D4D
-0DCA
-0DD2 0DD4
-0DD6
-0E31
-0E34 0E3A
-0E47 0E4E
-0EB1
-0EB4 0EB9
-0EBB 0EBC
-0EC8 0ECD
-0F18 0F19
-0F35
-0F37
-0F39
-0F71 0F7E
-0F80 0F84
-0F86 0F87
-0F90 0F97
-0F99 0FBC
-0FC6
-102D 1030
-1032
-1036 1037
-1039
-1058 1059
-1712 1714
-1732 1734
-1752 1753
-1772 1773
-17B7 17BD
-17C6
-17C9 17D3
-180B 180D
-18A9
-20D0 20DC
-20E1
-20E5 20EA
-302A 302F
-3099 309A
-FB1E
-FE00 FE0F
-FE20 FE23
-1D167 1D169
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Mongolia.pl b/Master/xemtex/perl/lib/unicore/lib/Mongolia.pl
deleted file mode 100644
index 5cdc083e149..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Mongolia.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Mongolian} (and fuzzy permutations)
-#
-# Meaning: Script 'MONGOLIAN'
-#
-return <<'END';
-1810 1819 MONGOLIAN
-1820 1877 MONGOLIAN
-1880 18A9 MONGOLIAN
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Myanmar.pl b/Master/xemtex/perl/lib/unicore/lib/Myanmar.pl
deleted file mode 100644
index 49385bbe0a2..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Myanmar.pl
+++ /dev/null
@@ -1,19 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Myanmar} (and fuzzy permutations)
-#
-# Meaning: Script 'MYANMAR'
-#
-return <<'END';
-1000 1021 MYANMAR
-1023 1027 MYANMAR
-1029 102A MYANMAR
-102C 1032 MYANMAR
-1036 1039 MYANMAR
-1040 1049 MYANMAR
-1050 1059 MYANMAR
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/N.pl b/Master/xemtex/perl/lib/unicore/lib/N.pl
deleted file mode 100644
index 612b79f1f3d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/N.pl
+++ /dev/null
@@ -1,56 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{N}
-# \p{N} (and fuzzy permutations)
-#
-# Meaning: Major Category 'N'
-#
-return <<'END';
-0030 0039
-00B2 00B3
-00B9
-00BC 00BE
-0660 0669
-06F0 06F9
-0966 096F
-09E6 09EF
-09F4 09F9
-0A66 0A6F
-0AE6 0AEF
-0B66 0B6F
-0BE7 0BF2
-0C66 0C6F
-0CE6 0CEF
-0D66 0D6F
-0E50 0E59
-0ED0 0ED9
-0F20 0F33
-1040 1049
-1369 137C
-16EE 16F0
-17E0 17E9
-1810 1819
-2070
-2074 2079
-2080 2089
-2153 2183
-2460 249B
-24EA 24FE
-2776 2793
-3007
-3021 3029
-3038 303A
-3192 3195
-3220 3229
-3251 325F
-3280 3289
-32B1 32BF
-FF10 FF19
-10320 10323
-1034A
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Nd.pl b/Master/xemtex/perl/lib/unicore/lib/Nd.pl
deleted file mode 100644
index 30cd8445dd1..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Nd.pl
+++ /dev/null
@@ -1,34 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Nd}
-# \p{Nd} (and fuzzy permutations)
-#
-# Meaning: General Category 'Nd'
-#
-return <<'END';
-0030 0039
-0660 0669
-06F0 06F9
-0966 096F
-09E6 09EF
-0A66 0A6F
-0AE6 0AEF
-0B66 0B6F
-0BE7 0BEF
-0C66 0C6F
-0CE6 0CEF
-0D66 0D6F
-0E50 0E59
-0ED0 0ED9
-0F20 0F29
-1040 1049
-1369 1371
-17E0 17E9
-1810 1819
-FF10 FF19
-1D7CE 1D7FF
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Nl.pl b/Master/xemtex/perl/lib/unicore/lib/Nl.pl
deleted file mode 100644
index 14279d3030d..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Nl.pl
+++ /dev/null
@@ -1,19 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Nl}
-# \p{Nl} (and fuzzy permutations)
-#
-# Meaning: General Category 'Nl'
-#
-return <<'END';
-16EE 16F0
-2160 2183
-3007
-3021 3029
-3038 303A
-1034A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/No.pl b/Master/xemtex/perl/lib/unicore/lib/No.pl
deleted file mode 100644
index ede689d6a46..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/No.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{No}
-# \p{No} (and fuzzy permutations)
-#
-# Meaning: General Category 'No'
-#
-return <<'END';
-00B2 00B3
-00B9
-00BC 00BE
-09F4 09F9
-0BF0 0BF2
-0F2A 0F33
-1372 137C
-2070
-2074 2079
-2080 2089
-2153 215F
-2460 249B
-24EA 24FE
-2776 2793
-3192 3195
-3220 3229
-3251 325F
-3280 3289
-32B1 32BF
-10320 10323
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Nonchara.pl b/Master/xemtex/perl/lib/unicore/lib/Nonchara.pl
deleted file mode 100644
index adf874015e3..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Nonchara.pl
+++ /dev/null
@@ -1,30 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{NoncharacterCodePoint} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Noncharacter_Code_Point'
-#
-return <<'END';
-FDD0 FDEF Noncharacter_Code_Point
-FFFE FFFF Noncharacter_Code_Point
-1FFFE 1FFFF Noncharacter_Code_Point
-2FFFE 2FFFF Noncharacter_Code_Point
-3FFFE 3FFFF Noncharacter_Code_Point
-4FFFE 4FFFF Noncharacter_Code_Point
-5FFFE 5FFFF Noncharacter_Code_Point
-6FFFE 6FFFF Noncharacter_Code_Point
-7FFFE 7FFFF Noncharacter_Code_Point
-8FFFE 8FFFF Noncharacter_Code_Point
-9FFFE 9FFFF Noncharacter_Code_Point
-AFFFE AFFFF Noncharacter_Code_Point
-BFFFE BFFFF Noncharacter_Code_Point
-CFFFE CFFFF Noncharacter_Code_Point
-DFFFE DFFFF Noncharacter_Code_Point
-EFFFE EFFFF Noncharacter_Code_Point
-FFFFE FFFFF Noncharacter_Code_Point
-10FFFE 10FFFF Noncharacter_Code_Point
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Ogham.pl b/Master/xemtex/perl/lib/unicore/lib/Ogham.pl
deleted file mode 100644
index 6b9538485b6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Ogham.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Ogham} (and fuzzy permutations)
-#
-# Meaning: Script 'OGHAM'
-#
-return <<'END';
-1681 169A OGHAM
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OldItali.pl b/Master/xemtex/perl/lib/unicore/lib/OldItali.pl
deleted file mode 100644
index 7fe3725c0e6..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OldItali.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OldItalic} (and fuzzy permutations)
-#
-# Meaning: Script 'OLD_ITALIC'
-#
-return <<'END';
-10300 1031E OLD_ITALIC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Oriya.pl b/Master/xemtex/perl/lib/unicore/lib/Oriya.pl
deleted file mode 100644
index 2b599d6c08a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Oriya.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Oriya} (and fuzzy permutations)
-#
-# Meaning: Script 'ORIYA'
-#
-return <<'END';
-0B01 0B03 ORIYA
-0B05 0B0C ORIYA
-0B0F 0B10 ORIYA
-0B13 0B28 ORIYA
-0B2A 0B30 ORIYA
-0B32 0B33 ORIYA
-0B36 0B39 ORIYA
-0B3C 0B43 ORIYA
-0B47 0B48 ORIYA
-0B4B 0B4D ORIYA
-0B56 0B57 ORIYA
-0B5C 0B5D ORIYA
-0B5F 0B61 ORIYA
-0B66 0B6F ORIYA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OtherAlp.pl b/Master/xemtex/perl/lib/unicore/lib/OtherAlp.pl
deleted file mode 100644
index 97eda4888e5..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OtherAlp.pl
+++ /dev/null
@@ -1,99 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OtherAlphabetic} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Other_Alphabetic'
-#
-return <<'END';
-0345 Other_Alphabetic
-05B0 05B9 Other_Alphabetic
-05BB 05BD Other_Alphabetic
-05BF Other_Alphabetic
-05C1 05C2 Other_Alphabetic
-05C4 Other_Alphabetic
-064B 0655 Other_Alphabetic
-0670 Other_Alphabetic
-06D6 06DC Other_Alphabetic
-06E1 06E4 Other_Alphabetic
-06E7 06E8 Other_Alphabetic
-06ED Other_Alphabetic
-0711 Other_Alphabetic
-0730 073F Other_Alphabetic
-07A6 07B0 Other_Alphabetic
-0901 0903 Other_Alphabetic
-093E 094C Other_Alphabetic
-0962 0963 Other_Alphabetic
-0981 0983 Other_Alphabetic
-09BE 09C4 Other_Alphabetic
-09C7 09C8 Other_Alphabetic
-09CB 09CC Other_Alphabetic
-09D7 Other_Alphabetic
-09E2 09E3 Other_Alphabetic
-0A02 Other_Alphabetic
-0A3E 0A42 Other_Alphabetic
-0A47 0A48 Other_Alphabetic
-0A4B 0A4C Other_Alphabetic
-0A70 0A71 Other_Alphabetic
-0A81 0A83 Other_Alphabetic
-0ABE 0AC5 Other_Alphabetic
-0AC7 0AC9 Other_Alphabetic
-0ACB 0ACC Other_Alphabetic
-0B01 0B03 Other_Alphabetic
-0B3E 0B43 Other_Alphabetic
-0B47 0B48 Other_Alphabetic
-0B4B 0B4C Other_Alphabetic
-0B56 0B57 Other_Alphabetic
-0B82 Other_Alphabetic
-0BBE 0BC2 Other_Alphabetic
-0BC6 0BC8 Other_Alphabetic
-0BCA 0BCC Other_Alphabetic
-0BD7 Other_Alphabetic
-0C01 0C03 Other_Alphabetic
-0C3E 0C44 Other_Alphabetic
-0C46 0C48 Other_Alphabetic
-0C4A 0C4C Other_Alphabetic
-0C55 0C56 Other_Alphabetic
-0C82 0C83 Other_Alphabetic
-0CBE 0CC4 Other_Alphabetic
-0CC6 0CC8 Other_Alphabetic
-0CCA 0CCC Other_Alphabetic
-0CD5 0CD6 Other_Alphabetic
-0D02 0D03 Other_Alphabetic
-0D3E 0D43 Other_Alphabetic
-0D46 0D48 Other_Alphabetic
-0D4A 0D4C Other_Alphabetic
-0D57 Other_Alphabetic
-0D82 0D83 Other_Alphabetic
-0DCF 0DD4 Other_Alphabetic
-0DD6 Other_Alphabetic
-0DD8 0DDF Other_Alphabetic
-0DF2 0DF3 Other_Alphabetic
-0E31 Other_Alphabetic
-0E34 0E3A Other_Alphabetic
-0E4D Other_Alphabetic
-0EB1 Other_Alphabetic
-0EB4 0EB9 Other_Alphabetic
-0EBB 0EBC Other_Alphabetic
-0ECD Other_Alphabetic
-0F71 0F81 Other_Alphabetic
-0F90 0F97 Other_Alphabetic
-0F99 0FBC Other_Alphabetic
-102C 1032 Other_Alphabetic
-1036 Other_Alphabetic
-1038 Other_Alphabetic
-1056 1059 Other_Alphabetic
-16EE 16F0 Other_Alphabetic
-1712 1713 Other_Alphabetic
-1732 1733 Other_Alphabetic
-1752 1753 Other_Alphabetic
-1772 1773 Other_Alphabetic
-17B4 17C8 Other_Alphabetic
-18A9 Other_Alphabetic
-2160 2183 Other_Alphabetic
-FB1E Other_Alphabetic
-1034A Other_Alphabetic
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OtherDef.pl b/Master/xemtex/perl/lib/unicore/lib/OtherDef.pl
deleted file mode 100644
index 6bdd19449aa..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OtherDef.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OtherDefaultIgnorableCodePoint} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Other_Default_Ignorable_Code_Point'
-#
-return <<'END';
-180B 180D Other_Default_Ignorable_Code_Point
-2060 206F Other_Default_Ignorable_Code_Point
-FE00 FE0F Other_Default_Ignorable_Code_Point
-FFF0 FFFB Other_Default_Ignorable_Code_Point
-E0000 E0FFF Other_Default_Ignorable_Code_Point
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OtherGra.pl b/Master/xemtex/perl/lib/unicore/lib/OtherGra.pl
deleted file mode 100644
index 7a927cdb456..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OtherGra.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OtherGraphemeExtend} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Other_Grapheme_Extend'
-#
-return <<'END';
-FF9E FF9F Other_Grapheme_Extend
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OtherLow.pl b/Master/xemtex/perl/lib/unicore/lib/OtherLow.pl
deleted file mode 100644
index ae844c9d62c..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OtherLow.pl
+++ /dev/null
@@ -1,19 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OtherLowercase} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Other_Lowercase'
-#
-return <<'END';
-02B0 02B8 Other_Lowercase
-02C0 02C1 Other_Lowercase
-02E0 02E4 Other_Lowercase
-0345 Other_Lowercase
-037A Other_Lowercase
-2170 217F Other_Lowercase
-24D0 24E9 Other_Lowercase
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OtherMat.pl b/Master/xemtex/perl/lib/unicore/lib/OtherMat.pl
deleted file mode 100644
index 1f9ad904090..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OtherMat.pl
+++ /dev/null
@@ -1,76 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OtherMath} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Other_Math'
-#
-return <<'END';
-0028 002A Other_Math
-002D Other_Math
-002F Other_Math
-005B 005E Other_Math
-007B Other_Math
-007D Other_Math
-2016 Other_Math
-2032 2034 Other_Math
-207D 207E Other_Math
-208D 208E Other_Math
-20D0 20DC Other_Math
-20E1 Other_Math
-2102 Other_Math
-210A 2113 Other_Math
-2115 Other_Math
-2119 211D Other_Math
-2124 Other_Math
-2128 Other_Math
-212C 212D Other_Math
-212F 2131 Other_Math
-2133 2138 Other_Math
-FE35 FE38 Other_Math
-FE59 FE5C Other_Math
-FE61 Other_Math
-FE63 Other_Math
-FE68 Other_Math
-FF08 FF0A Other_Math
-FF0D Other_Math
-FF0F Other_Math
-FF3B FF3E Other_Math
-FF5B Other_Math
-FF5D Other_Math
-1D400 1D454 Other_Math
-1D456 1D49C Other_Math
-1D49E 1D49F Other_Math
-1D4A2 Other_Math
-1D4A5 1D4A6 Other_Math
-1D4A9 1D4AC Other_Math
-1D4AE 1D4B9 Other_Math
-1D4BB Other_Math
-1D4BD 1D4C0 Other_Math
-1D4C2 1D4C3 Other_Math
-1D4C5 1D505 Other_Math
-1D507 1D50A Other_Math
-1D50D 1D514 Other_Math
-1D516 1D51C Other_Math
-1D51E 1D539 Other_Math
-1D53B 1D53E Other_Math
-1D540 1D544 Other_Math
-1D546 Other_Math
-1D54A 1D550 Other_Math
-1D552 1D6A3 Other_Math
-1D6A8 1D6C0 Other_Math
-1D6C2 1D6DA Other_Math
-1D6DC 1D6FA Other_Math
-1D6FC 1D714 Other_Math
-1D716 1D734 Other_Math
-1D736 1D74E Other_Math
-1D750 1D76E Other_Math
-1D770 1D788 Other_Math
-1D78A 1D7A8 Other_Math
-1D7AA 1D7C2 Other_Math
-1D7C4 1D7C9 Other_Math
-1D7CE 1D7FF Other_Math
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/OtherUpp.pl b/Master/xemtex/perl/lib/unicore/lib/OtherUpp.pl
deleted file mode 100644
index 4ba30489926..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/OtherUpp.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{OtherUppercase} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Other_Uppercase'
-#
-return <<'END';
-2160 216F Other_Uppercase
-24B6 24CF Other_Uppercase
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/P.pl b/Master/xemtex/perl/lib/unicore/lib/P.pl
deleted file mode 100644
index 1302e8d8f9a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/P.pl
+++ /dev/null
@@ -1,97 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{P}
-# \p{P} (and fuzzy permutations)
-#
-# Meaning: Major Category 'P'
-#
-return <<'END';
-0021 0023
-0025 002A
-002C 002F
-003A 003B
-003F 0040
-005B 005D
-005F
-007B
-007D
-00A1
-00AB
-00AD
-00B7
-00BB
-00BF
-037E
-0387
-055A 055F
-0589 058A
-05BE
-05C0
-05C3
-05F3 05F4
-060C
-061B
-061F
-066A 066D
-06D4
-0700 070D
-0964 0965
-0970
-0DF4
-0E4F
-0E5A 0E5B
-0F04 0F12
-0F3A 0F3D
-0F85
-104A 104F
-10FB
-1361 1368
-166D 166E
-169B 169C
-16EB 16ED
-1735 1736
-17D4 17D6
-17D8 17DA
-1800 180A
-2010 2027
-2030 2043
-2045 2051
-2057
-207D 207E
-208D 208E
-2329 232A
-23B4 23B6
-2768 2775
-27E6 27EB
-2983 2998
-29D8 29DB
-29FC 29FD
-3001 3003
-3008 3011
-3014 301F
-3030
-303D
-30A0
-30FB
-FD3E FD3F
-FE30 FE46
-FE49 FE52
-FE54 FE61
-FE63
-FE68
-FE6A FE6B
-FF01 FF03
-FF05 FF0A
-FF0C FF0F
-FF1A FF1B
-FF1F FF20
-FF3B FF3D
-FF3F
-FF5B
-FF5D
-FF5F FF65
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Pc.pl b/Master/xemtex/perl/lib/unicore/lib/Pc.pl
deleted file mode 100644
index 2f087426846..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Pc.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Pc}
-# \p{Pc} (and fuzzy permutations)
-#
-# Meaning: General Category 'Pc'
-#
-return <<'END';
-005F
-203F 2040
-30FB
-FE33 FE34
-FE4D FE4F
-FF3F
-FF65
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Pd.pl b/Master/xemtex/perl/lib/unicore/lib/Pd.pl
deleted file mode 100644
index e32f88fe509..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Pd.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Pd}
-# \p{Pd} (and fuzzy permutations)
-#
-# Meaning: General Category 'Pd'
-#
-return <<'END';
-002D
-00AD
-058A
-1806
-2010 2015
-301C
-3030
-30A0
-FE31 FE32
-FE58
-FE63
-FF0D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Pe.pl b/Master/xemtex/perl/lib/unicore/lib/Pe.pl
deleted file mode 100644
index 5c7e3c8dbe9..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Pe.pl
+++ /dev/null
@@ -1,75 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Pe}
-# \p{Pe} (and fuzzy permutations)
-#
-# Meaning: General Category 'Pe'
-#
-return <<'END';
-0029
-005D
-007D
-0F3B
-0F3D
-169C
-2046
-207E
-208E
-232A
-23B5
-2769
-276B
-276D
-276F
-2771
-2773
-2775
-27E7
-27E9
-27EB
-2984
-2986
-2988
-298A
-298C
-298E
-2990
-2992
-2994
-2996
-2998
-29D9
-29DB
-29FD
-3009
-300B
-300D
-300F
-3011
-3015
-3017
-3019
-301B
-301E 301F
-FD3F
-FE36
-FE38
-FE3A
-FE3C
-FE3E
-FE40
-FE42
-FE44
-FE5A
-FE5C
-FE5E
-FF09
-FF3D
-FF5D
-FF60
-FF63
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Pf.pl b/Master/xemtex/perl/lib/unicore/lib/Pf.pl
deleted file mode 100644
index 8e363d2a970..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Pf.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Pf}
-# \p{Pf} (and fuzzy permutations)
-#
-# Meaning: General Category 'Pf'
-#
-return <<'END';
-00BB
-2019
-201D
-203A
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Pi.pl b/Master/xemtex/perl/lib/unicore/lib/Pi.pl
deleted file mode 100644
index c78bde1b9cb..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Pi.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Pi}
-# \p{Pi} (and fuzzy permutations)
-#
-# Meaning: General Category 'Pi'
-#
-return <<'END';
-00AB
-2018
-201B 201C
-201F
-2039
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Po.pl b/Master/xemtex/perl/lib/unicore/lib/Po.pl
deleted file mode 100644
index 963ce32a156..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Po.pl
+++ /dev/null
@@ -1,83 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Po}
-# \p{Po} (and fuzzy permutations)
-#
-# Meaning: General Category 'Po'
-#
-return <<'END';
-0021 0023
-0025 0027
-002A
-002C
-002E 002F
-003A 003B
-003F 0040
-005C
-00A1
-00B7
-00BF
-037E
-0387
-055A 055F
-0589
-05BE
-05C0
-05C3
-05F3 05F4
-060C
-061B
-061F
-066A 066D
-06D4
-0700 070D
-0964 0965
-0970
-0DF4
-0E4F
-0E5A 0E5B
-0F04 0F12
-0F85
-104A 104F
-10FB
-1361 1368
-166D 166E
-16EB 16ED
-1735 1736
-17D4 17D6
-17D8 17DA
-1800 1805
-1807 180A
-2016 2017
-2020 2027
-2030 2038
-203B 203E
-2041 2043
-2047 2051
-2057
-23B6
-3001 3003
-303D
-FE30
-FE45 FE46
-FE49 FE4C
-FE50 FE52
-FE54 FE57
-FE5F FE61
-FE68
-FE6A FE6B
-FF01 FF03
-FF05 FF07
-FF0A
-FF0C
-FF0E FF0F
-FF1A FF1B
-FF1F FF20
-FF3C
-FF61
-FF64
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Print.pl b/Master/xemtex/perl/lib/unicore/lib/Print.pl
deleted file mode 100644
index 01ac6f10d41..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Print.pl
+++ /dev/null
@@ -1,400 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Print}
-#
-# Meaning: [[:Print:]]
-#
-return <<'END';
-0020 007E
-00A0 0220
-0222 0233
-0250 02AD
-02B0 02EE
-0300 034F
-0360 036F
-0374 0375
-037A
-037E
-0384 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F6
-0400 0486
-0488 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559 055F
-0561 0587
-0589 058A
-0591 05A1
-05A3 05B9
-05BB 05C4
-05D0 05EA
-05F0 05F4
-060C
-061B
-061F
-0621 063A
-0640 0655
-0660 06DC
-06DE 06ED
-06F0 06FE
-0700 070D
-0710 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0970
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09E6 09FA
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A66 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0AE6 0AEF
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B70
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0BE7 0BF2
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF4
-0E01 0E3A
-0E3F 0E5B
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0ED0 0ED9
-0EDC 0EDD
-0F00 0F47
-0F49 0F6A
-0F71 0F8B
-0F90 0F97
-0F99 0FBC
-0FBE 0FCC
-0FCF
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1040 1059
-10A0 10C5
-10D0 10F8
-10FB
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1361 137C
-13A0 13F4
-1401 1676
-1680 169C
-16A0 16F0
-1700 170C
-170E 1714
-1720 1736
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17DC
-17E0 17E9
-1800 180D
-1810 1819
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FC4
-1FC6 1FD3
-1FD6 1FDB
-1FDD 1FEF
-1FF2 1FF4
-1FF6 1FFE
-2000 200B
-2010 2027
-202F 2052
-2057
-205F
-2070 2071
-2074 208E
-20A0 20B1
-20D0 20EA
-2100 213A
-213D 214B
-2153 2183
-2190 23CE
-2400 2426
-2440 244A
-2460 24FE
-2500 2613
-2616 2617
-2619 267D
-2680 2689
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2794
-2798 27AF
-27B1 27BE
-27D0 27EB
-27F0 2AFF
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3000 303F
-3041 3096
-3099 30FF
-3105 312C
-3131 318E
-3190 31B7
-31F0 321C
-3220 3243
-3251 327B
-327F 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-3400 4DB5
-4E00 9FA5
-A000 A48C
-A490 A4C6
-AC00 D7A3
-E000 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3F
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFC
-FE00 FE0F
-FE20 FE23
-FE30 FE46
-FE49 FE52
-FE54 FE66
-FE68 FE6B
-FE70 FE74
-FE76 FEFC
-FF01 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-FFE0 FFE6
-FFE8 FFEE
-FFFC FFFD
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D000 1D0F5
-1D100 1D126
-1D12A 1D172
-1D17B 1D1DD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D7C9
-1D7CE 1D7FF
-20000 2A6D6
-2F800 2FA1D
-F0000 FFFFD
-100000 10FFFD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Ps.pl b/Master/xemtex/perl/lib/unicore/lib/Ps.pl
deleted file mode 100644
index 0c0dd89a210..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Ps.pl
+++ /dev/null
@@ -1,77 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Ps}
-# \p{Ps} (and fuzzy permutations)
-#
-# Meaning: General Category 'Ps'
-#
-return <<'END';
-0028
-005B
-007B
-0F3A
-0F3C
-169B
-201A
-201E
-2045
-207D
-208D
-2329
-23B4
-2768
-276A
-276C
-276E
-2770
-2772
-2774
-27E6
-27E8
-27EA
-2983
-2985
-2987
-2989
-298B
-298D
-298F
-2991
-2993
-2995
-2997
-29D8
-29DA
-29FC
-3008
-300A
-300C
-300E
-3010
-3014
-3016
-3018
-301A
-301D
-FD3E
-FE35
-FE37
-FE39
-FE3B
-FE3D
-FE3F
-FE41
-FE43
-FE59
-FE5B
-FE5D
-FF08
-FF3B
-FF5B
-FF5F
-FF62
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Punct.pl b/Master/xemtex/perl/lib/unicore/lib/Punct.pl
deleted file mode 100644
index ca68b6ab499..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Punct.pl
+++ /dev/null
@@ -1,96 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Punct}
-#
-# Meaning: [[:Punct:]]
-#
-return <<'END';
-0021 0023
-0025 002A
-002C 002F
-003A 003B
-003F 0040
-005B 005D
-005F
-007B
-007D
-00A1
-00AB
-00AD
-00B7
-00BB
-00BF
-037E
-0387
-055A 055F
-0589 058A
-05BE
-05C0
-05C3
-05F3 05F4
-060C
-061B
-061F
-066A 066D
-06D4
-0700 070D
-0964 0965
-0970
-0DF4
-0E4F
-0E5A 0E5B
-0F04 0F12
-0F3A 0F3D
-0F85
-104A 104F
-10FB
-1361 1368
-166D 166E
-169B 169C
-16EB 16ED
-1735 1736
-17D4 17D6
-17D8 17DA
-1800 180A
-2010 2027
-2030 2043
-2045 2051
-2057
-207D 207E
-208D 208E
-2329 232A
-23B4 23B6
-2768 2775
-27E6 27EB
-2983 2998
-29D8 29DB
-29FC 29FD
-3001 3003
-3008 3011
-3014 301F
-3030
-303D
-30A0
-30FB
-FD3E FD3F
-FE30 FE46
-FE49 FE52
-FE54 FE61
-FE63
-FE68
-FE6A FE6B
-FF01 FF03
-FF05 FF0A
-FF0C FF0F
-FF1A FF1B
-FF1F FF20
-FF3B FF3D
-FF3F
-FF5B
-FF5D
-FF5F FF65
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Quotatio.pl b/Master/xemtex/perl/lib/unicore/lib/Quotatio.pl
deleted file mode 100644
index 802e85a1f52..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Quotatio.pl
+++ /dev/null
@@ -1,24 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{QuotationMark} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Quotation_Mark'
-#
-return <<'END';
-0022 Quotation_Mark
-0027 Quotation_Mark
-00AB Quotation_Mark
-00BB Quotation_Mark
-2018 201F Quotation_Mark
-2039 203A Quotation_Mark
-300C 300F Quotation_Mark
-301D 301F Quotation_Mark
-FE41 FE44 Quotation_Mark
-FF02 Quotation_Mark
-FF07 Quotation_Mark
-FF62 FF63 Quotation_Mark
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Radical.pl b/Master/xemtex/perl/lib/unicore/lib/Radical.pl
deleted file mode 100644
index 2b87cfe7929..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Radical.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Radical} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Radical'
-#
-return <<'END';
-2E80 2E99 Radical
-2E9B 2EF3 Radical
-2F00 2FD5 Radical
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Runic.pl b/Master/xemtex/perl/lib/unicore/lib/Runic.pl
deleted file mode 100644
index 01eef2b0964..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Runic.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Runic} (and fuzzy permutations)
-#
-# Meaning: Script 'RUNIC'
-#
-return <<'END';
-16A0 16EA RUNIC
-16EE 16F0 RUNIC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/S.pl b/Master/xemtex/perl/lib/unicore/lib/S.pl
deleted file mode 100644
index a1ceed0442b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/S.pl
+++ /dev/null
@@ -1,159 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{S}
-# \p{S} (and fuzzy permutations)
-#
-# Meaning: Major Category 'S'
-#
-return <<'END';
-0024
-002B
-003C 003E
-005E
-0060
-007C
-007E
-00A2 00A9
-00AC
-00AE 00B1
-00B4
-00B6
-00B8
-00D7
-00F7
-02B9 02BA
-02C2 02CF
-02D2 02DF
-02E5 02ED
-0374 0375
-0384 0385
-03F6
-0482
-06E9
-06FD 06FE
-09F2 09F3
-09FA
-0B70
-0E3F
-0F01 0F03
-0F13 0F17
-0F1A 0F1F
-0F34
-0F36
-0F38
-0FBE 0FC5
-0FC7 0FCC
-0FCF
-17DB
-1FBD
-1FBF 1FC1
-1FCD 1FCF
-1FDD 1FDF
-1FED 1FEF
-1FFD 1FFE
-2044
-2052
-207A 207C
-208A 208C
-20A0 20B1
-2100 2101
-2103 2106
-2108 2109
-2114
-2116 2118
-211E 2123
-2125
-2127
-2129
-212E
-2132
-213A
-2140 2144
-214A 214B
-2190 2328
-232B 23B3
-23B7 23CE
-2400 2426
-2440 244A
-249C 24E9
-2500 2613
-2616 2617
-2619 267D
-2680 2689
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2767
-2794
-2798 27AF
-27B1 27BE
-27D0 27E5
-27F0 2982
-2999 29D7
-29DC 29FB
-29FE 2AFF
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3004
-3012 3013
-3020
-3036 3037
-303E 303F
-309B 309C
-3190 3191
-3196 319F
-3200 321C
-322A 3243
-3260 327B
-327F
-328A 32B0
-32C0 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-A490 A4C6
-FB29
-FDFC
-FE62
-FE64 FE66
-FE69
-FF04
-FF0B
-FF1C FF1E
-FF3E
-FF40
-FF5C
-FF5E
-FFE0 FFE6
-FFE8 FFEE
-FFFC FFFD
-1D000 1D0F5
-1D100 1D126
-1D12A 1D164
-1D16A 1D16C
-1D183 1D184
-1D18C 1D1A9
-1D1AE 1D1DD
-1D6C1
-1D6DB
-1D6FB
-1D715
-1D735
-1D74F
-1D76F
-1D789
-1D7A9
-1D7C3
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Sc.pl b/Master/xemtex/perl/lib/unicore/lib/Sc.pl
deleted file mode 100644
index 80d79b5d2f8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Sc.pl
+++ /dev/null
@@ -1,24 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Sc}
-# \p{Sc} (and fuzzy permutations)
-#
-# Meaning: General Category 'Sc'
-#
-return <<'END';
-0024
-00A2 00A5
-09F2 09F3
-0E3F
-17DB
-20A0 20B1
-FDFC
-FE69
-FF04
-FFE0 FFE1
-FFE5 FFE6
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Sinhala.pl b/Master/xemtex/perl/lib/unicore/lib/Sinhala.pl
deleted file mode 100644
index 3288efe1fe7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Sinhala.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Sinhala} (and fuzzy permutations)
-#
-# Meaning: Script 'SINHALA'
-#
-return <<'END';
-0D82 0D83 SINHALA
-0D85 0D96 SINHALA
-0D9A 0DB1 SINHALA
-0DB3 0DBB SINHALA
-0DBD SINHALA
-0DC0 0DC6 SINHALA
-0DCA SINHALA
-0DCF 0DD4 SINHALA
-0DD6 SINHALA
-0DD8 0DDF SINHALA
-0DF2 0DF3 SINHALA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Sk.pl b/Master/xemtex/perl/lib/unicore/lib/Sk.pl
deleted file mode 100644
index 19ff8b02686..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Sk.pl
+++ /dev/null
@@ -1,35 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Sk}
-# \p{Sk} (and fuzzy permutations)
-#
-# Meaning: General Category 'Sk'
-#
-return <<'END';
-005E
-0060
-00A8
-00AF
-00B4
-00B8
-02B9 02BA
-02C2 02CF
-02D2 02DF
-02E5 02ED
-0374 0375
-0384 0385
-1FBD
-1FBF 1FC1
-1FCD 1FCF
-1FDD 1FDF
-1FED 1FEF
-1FFD 1FFE
-309B 309C
-FF3E
-FF40
-FFE3
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Sm.pl b/Master/xemtex/perl/lib/unicore/lib/Sm.pl
deleted file mode 100644
index 8e55e4efe66..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Sm.pl
+++ /dev/null
@@ -1,71 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Sm}
-# \p{Sm} (and fuzzy permutations)
-#
-# Meaning: General Category 'Sm'
-#
-return <<'END';
-002B
-003C 003E
-007C
-007E
-00AC
-00B1
-00D7
-00F7
-03F6
-2044
-2052
-207A 207C
-208A 208C
-2140 2144
-214B
-2190 2194
-219A 219B
-21A0
-21A3
-21A6
-21AE
-21CE 21CF
-21D2
-21D4
-21F4 22FF
-2308 230B
-2320 2321
-237C
-239B 23B3
-25B7
-25C1
-25F8 25FF
-266F
-27D0 27E5
-27F0 27FF
-2900 2982
-2999 29D7
-29DC 29FB
-29FE 2AFF
-FB29
-FE62
-FE64 FE66
-FF0B
-FF1C FF1E
-FF5C
-FF5E
-FFE2
-FFE9 FFEC
-1D6C1
-1D6DB
-1D6FB
-1D715
-1D735
-1D74F
-1D76F
-1D789
-1D7A9
-1D7C3
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/So.pl b/Master/xemtex/perl/lib/unicore/lib/So.pl
deleted file mode 100644
index 1ef7acc99cf..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/So.pl
+++ /dev/null
@@ -1,117 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{So}
-# \p{So} (and fuzzy permutations)
-#
-# Meaning: General Category 'So'
-#
-return <<'END';
-00A6 00A7
-00A9
-00AE
-00B0
-00B6
-0482
-06E9
-06FD 06FE
-09FA
-0B70
-0F01 0F03
-0F13 0F17
-0F1A 0F1F
-0F34
-0F36
-0F38
-0FBE 0FC5
-0FC7 0FCC
-0FCF
-2100 2101
-2103 2106
-2108 2109
-2114
-2116 2118
-211E 2123
-2125
-2127
-2129
-212E
-2132
-213A
-214A
-2195 2199
-219C 219F
-21A1 21A2
-21A4 21A5
-21A7 21AD
-21AF 21CD
-21D0 21D1
-21D3
-21D5 21F3
-2300 2307
-230C 231F
-2322 2328
-232B 237B
-237D 239A
-23B7 23CE
-2400 2426
-2440 244A
-249C 24E9
-2500 25B6
-25B8 25C0
-25C2 25F7
-2600 2613
-2616 2617
-2619 266E
-2670 267D
-2680 2689
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2767
-2794
-2798 27AF
-27B1 27BE
-2800 28FF
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3004
-3012 3013
-3020
-3036 3037
-303E 303F
-3190 3191
-3196 319F
-3200 321C
-322A 3243
-3260 327B
-327F
-328A 32B0
-32C0 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-A490 A4C6
-FFE4
-FFE8
-FFED FFEE
-FFFC FFFD
-1D000 1D0F5
-1D100 1D126
-1D12A 1D164
-1D16A 1D16C
-1D183 1D184
-1D18C 1D1A9
-1D1AE 1D1DD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/SoftDott.pl b/Master/xemtex/perl/lib/unicore/lib/SoftDott.pl
deleted file mode 100644
index b36e6756572..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/SoftDott.pl
+++ /dev/null
@@ -1,19 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{SoftDotted} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Soft_Dotted'
-#
-return <<'END';
-0069 006A Soft_Dotted
-012F Soft_Dotted
-0268 Soft_Dotted
-0456 Soft_Dotted
-0458 Soft_Dotted
-1E2D Soft_Dotted
-1ECB Soft_Dotted
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Space.pl b/Master/xemtex/perl/lib/unicore/lib/Space.pl
deleted file mode 100644
index 868c88c5449..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Space.pl
+++ /dev/null
@@ -1,21 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Space}
-#
-# Meaning: [[:Space:]]
-#
-return <<'END';
-0009 000D
-0020
-00A0
-1680
-2000 200B
-2028 2029
-202F
-205F
-3000
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/SpacePer.pl b/Master/xemtex/perl/lib/unicore/lib/SpacePer.pl
deleted file mode 100644
index bf1cdcbbc15..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/SpacePer.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{SpacePerl}
-#
-# Meaning: \s
-#
-return <<'END';
-0009 000A
-000C 000D
-0020
-0085
-00A0
-1680
-2000 200B
-2028 2029
-202F
-205F
-3000
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Syriac.pl b/Master/xemtex/perl/lib/unicore/lib/Syriac.pl
deleted file mode 100644
index d78a76db792..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Syriac.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Syriac} (and fuzzy permutations)
-#
-# Meaning: Script 'SYRIAC'
-#
-return <<'END';
-0710 072C SYRIAC
-0730 074A SYRIAC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Tagalog.pl b/Master/xemtex/perl/lib/unicore/lib/Tagalog.pl
deleted file mode 100644
index 78ab346469a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Tagalog.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Tagalog} (and fuzzy permutations)
-#
-# Meaning: Script 'TAGALOG'
-#
-return <<'END';
-1700 170C TAGALOG
-170E 1714 TAGALOG
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Tagbanwa.pl b/Master/xemtex/perl/lib/unicore/lib/Tagbanwa.pl
deleted file mode 100644
index a7ecbf2af6e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Tagbanwa.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Tagbanwa} (and fuzzy permutations)
-#
-# Meaning: Script 'TAGBANWA'
-#
-return <<'END';
-1760 176C TAGBANWA
-176E 1770 TAGBANWA
-1772 1773 TAGBANWA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Tamil.pl b/Master/xemtex/perl/lib/unicore/lib/Tamil.pl
deleted file mode 100644
index b9777a33d5e..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Tamil.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Tamil} (and fuzzy permutations)
-#
-# Meaning: Script 'TAMIL'
-#
-return <<'END';
-0B82 0B83 TAMIL
-0B85 0B8A TAMIL
-0B8E 0B90 TAMIL
-0B92 0B95 TAMIL
-0B99 0B9A TAMIL
-0B9C TAMIL
-0B9E 0B9F TAMIL
-0BA3 0BA4 TAMIL
-0BA8 0BAA TAMIL
-0BAE 0BB5 TAMIL
-0BB7 0BB9 TAMIL
-0BBE 0BC2 TAMIL
-0BC6 0BC8 TAMIL
-0BCA 0BCD TAMIL
-0BD7 TAMIL
-0BE7 0BF2 TAMIL
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Telugu.pl b/Master/xemtex/perl/lib/unicore/lib/Telugu.pl
deleted file mode 100644
index 1c161eb9e57..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Telugu.pl
+++ /dev/null
@@ -1,24 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Telugu} (and fuzzy permutations)
-#
-# Meaning: Script 'TELUGU'
-#
-return <<'END';
-0C01 0C03 TELUGU
-0C05 0C0C TELUGU
-0C0E 0C10 TELUGU
-0C12 0C28 TELUGU
-0C2A 0C33 TELUGU
-0C35 0C39 TELUGU
-0C3E 0C44 TELUGU
-0C46 0C48 TELUGU
-0C4A 0C4D TELUGU
-0C55 0C56 TELUGU
-0C60 0C61 TELUGU
-0C66 0C6F TELUGU
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Terminal.pl b/Master/xemtex/perl/lib/unicore/lib/Terminal.pl
deleted file mode 100644
index d7606867ce8..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Terminal.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{TerminalPunctuation} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Terminal_Punctuation'
-#
-return <<'END';
-0021 Terminal_Punctuation
-002C Terminal_Punctuation
-002E Terminal_Punctuation
-003A 003B Terminal_Punctuation
-003F Terminal_Punctuation
-037E Terminal_Punctuation
-0387 Terminal_Punctuation
-0589 Terminal_Punctuation
-060C Terminal_Punctuation
-061B Terminal_Punctuation
-061F Terminal_Punctuation
-06D4 Terminal_Punctuation
-0700 070A Terminal_Punctuation
-070C Terminal_Punctuation
-0964 0965 Terminal_Punctuation
-0E5A 0E5B Terminal_Punctuation
-104A 104B Terminal_Punctuation
-1361 1368 Terminal_Punctuation
-166D 166E Terminal_Punctuation
-16EB 16ED Terminal_Punctuation
-17D4 17D6 Terminal_Punctuation
-17DA Terminal_Punctuation
-1802 1805 Terminal_Punctuation
-1808 1809 Terminal_Punctuation
-203C 203D Terminal_Punctuation
-2048 2049 Terminal_Punctuation
-3001 3002 Terminal_Punctuation
-FE50 FE52 Terminal_Punctuation
-FE54 FE57 Terminal_Punctuation
-FF01 Terminal_Punctuation
-FF0C Terminal_Punctuation
-FF0E Terminal_Punctuation
-FF1A FF1B Terminal_Punctuation
-FF1F Terminal_Punctuation
-FF61 Terminal_Punctuation
-FF64 Terminal_Punctuation
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Thaana.pl b/Master/xemtex/perl/lib/unicore/lib/Thaana.pl
deleted file mode 100644
index 9c2be21b40f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Thaana.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Thaana} (and fuzzy permutations)
-#
-# Meaning: Script 'THAANA'
-#
-return <<'END';
-0780 07B1 THAANA
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Thai.pl b/Master/xemtex/perl/lib/unicore/lib/Thai.pl
deleted file mode 100644
index b09ced7a7ac..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Thai.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Thai} (and fuzzy permutations)
-#
-# Meaning: Script 'THAI'
-#
-return <<'END';
-0E01 0E3A THAI
-0E40 0E4E THAI
-0E50 0E59 THAI
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Tibetan.pl b/Master/xemtex/perl/lib/unicore/lib/Tibetan.pl
deleted file mode 100644
index cdf7d5b2015..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Tibetan.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Tibetan} (and fuzzy permutations)
-#
-# Meaning: Script 'TIBETAN'
-#
-return <<'END';
-0F00 TIBETAN
-0F18 0F19 TIBETAN
-0F20 0F33 TIBETAN
-0F35 TIBETAN
-0F37 TIBETAN
-0F39 TIBETAN
-0F40 0F47 TIBETAN
-0F49 0F6A TIBETAN
-0F71 0F84 TIBETAN
-0F86 0F8B TIBETAN
-0F90 0F97 TIBETAN
-0F99 0FBC TIBETAN
-0FC6 TIBETAN
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Title.pl b/Master/xemtex/perl/lib/unicore/lib/Title.pl
deleted file mode 100644
index a1d03207447..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Title.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Title}
-#
-# Meaning: [[:Title:]]
-#
-return <<'END';
-01C5
-01C8
-01CB
-01F2
-1F88 1F8F
-1F98 1F9F
-1FA8 1FAF
-1FBC
-1FCC
-1FFC
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/UnifiedI.pl b/Master/xemtex/perl/lib/unicore/lib/UnifiedI.pl
deleted file mode 100644
index 5e4019a7069..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/UnifiedI.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{UnifiedIdeograph} (and fuzzy permutations)
-#
-# Meaning: Extended property 'Unified_Ideograph'
-#
-return <<'END';
-3400 4DB5 Unified_Ideograph
-4E00 9FA5 Unified_Ideograph
-FA0E FA0F Unified_Ideograph
-FA11 Unified_Ideograph
-FA13 FA14 Unified_Ideograph
-FA1F Unified_Ideograph
-FA21 Unified_Ideograph
-FA23 FA24 Unified_Ideograph
-FA27 FA29 Unified_Ideograph
-20000 2A6D6 Unified_Ideograph
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Upper.pl b/Master/xemtex/perl/lib/unicore/lib/Upper.pl
deleted file mode 100644
index d3350db9b94..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Upper.pl
+++ /dev/null
@@ -1,431 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Upper}
-#
-# Meaning: [[:Upper:]]
-#
-return <<'END';
-0041 005A
-00C0 00D6
-00D8 00DE
-0100
-0102
-0104
-0106
-0108
-010A
-010C
-010E
-0110
-0112
-0114
-0116
-0118
-011A
-011C
-011E
-0120
-0122
-0124
-0126
-0128
-012A
-012C
-012E
-0130
-0132
-0134
-0136
-0139
-013B
-013D
-013F
-0141
-0143
-0145
-0147
-014A
-014C
-014E
-0150
-0152
-0154
-0156
-0158
-015A
-015C
-015E
-0160
-0162
-0164
-0166
-0168
-016A
-016C
-016E
-0170
-0172
-0174
-0176
-0178 0179
-017B
-017D
-0181 0182
-0184
-0186 0187
-0189 018B
-018E 0191
-0193 0194
-0196 0198
-019C 019D
-019F 01A0
-01A2
-01A4
-01A6 01A7
-01A9
-01AC
-01AE 01AF
-01B1 01B3
-01B5
-01B7 01B8
-01BC
-01C4
-01C7
-01CA
-01CD
-01CF
-01D1
-01D3
-01D5
-01D7
-01D9
-01DB
-01DE
-01E0
-01E2
-01E4
-01E6
-01E8
-01EA
-01EC
-01EE
-01F1
-01F4
-01F6 01F8
-01FA
-01FC
-01FE
-0200
-0202
-0204
-0206
-0208
-020A
-020C
-020E
-0210
-0212
-0214
-0216
-0218
-021A
-021C
-021E
-0220
-0222
-0224
-0226
-0228
-022A
-022C
-022E
-0230
-0232
-0386
-0388 038A
-038C
-038E 038F
-0391 03A1
-03A3 03AB
-03D2 03D4
-03D8
-03DA
-03DC
-03DE
-03E0
-03E2
-03E4
-03E6
-03E8
-03EA
-03EC
-03EE
-03F4
-0400 042F
-0460
-0462
-0464
-0466
-0468
-046A
-046C
-046E
-0470
-0472
-0474
-0476
-0478
-047A
-047C
-047E
-0480
-048A
-048C
-048E
-0490
-0492
-0494
-0496
-0498
-049A
-049C
-049E
-04A0
-04A2
-04A4
-04A6
-04A8
-04AA
-04AC
-04AE
-04B0
-04B2
-04B4
-04B6
-04B8
-04BA
-04BC
-04BE
-04C0 04C1
-04C3
-04C5
-04C7
-04C9
-04CB
-04CD
-04D0
-04D2
-04D4
-04D6
-04D8
-04DA
-04DC
-04DE
-04E0
-04E2
-04E4
-04E6
-04E8
-04EA
-04EC
-04EE
-04F0
-04F2
-04F4
-04F8
-0500
-0502
-0504
-0506
-0508
-050A
-050C
-050E
-0531 0556
-10A0 10C5
-1E00
-1E02
-1E04
-1E06
-1E08
-1E0A
-1E0C
-1E0E
-1E10
-1E12
-1E14
-1E16
-1E18
-1E1A
-1E1C
-1E1E
-1E20
-1E22
-1E24
-1E26
-1E28
-1E2A
-1E2C
-1E2E
-1E30
-1E32
-1E34
-1E36
-1E38
-1E3A
-1E3C
-1E3E
-1E40
-1E42
-1E44
-1E46
-1E48
-1E4A
-1E4C
-1E4E
-1E50
-1E52
-1E54
-1E56
-1E58
-1E5A
-1E5C
-1E5E
-1E60
-1E62
-1E64
-1E66
-1E68
-1E6A
-1E6C
-1E6E
-1E70
-1E72
-1E74
-1E76
-1E78
-1E7A
-1E7C
-1E7E
-1E80
-1E82
-1E84
-1E86
-1E88
-1E8A
-1E8C
-1E8E
-1E90
-1E92
-1E94
-1EA0
-1EA2
-1EA4
-1EA6
-1EA8
-1EAA
-1EAC
-1EAE
-1EB0
-1EB2
-1EB4
-1EB6
-1EB8
-1EBA
-1EBC
-1EBE
-1EC0
-1EC2
-1EC4
-1EC6
-1EC8
-1ECA
-1ECC
-1ECE
-1ED0
-1ED2
-1ED4
-1ED6
-1ED8
-1EDA
-1EDC
-1EDE
-1EE0
-1EE2
-1EE4
-1EE6
-1EE8
-1EEA
-1EEC
-1EEE
-1EF0
-1EF2
-1EF4
-1EF6
-1EF8
-1F08 1F0F
-1F18 1F1D
-1F28 1F2F
-1F38 1F3F
-1F48 1F4D
-1F59
-1F5B
-1F5D
-1F5F
-1F68 1F6F
-1FB8 1FBB
-1FC8 1FCB
-1FD8 1FDB
-1FE8 1FEC
-1FF8 1FFB
-2102
-2107
-210B 210D
-2110 2112
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-2130 2131
-2133
-213E 213F
-2145
-FF21 FF3A
-10400 10425
-1D400 1D419
-1D434 1D44D
-1D468 1D481
-1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B5
-1D4D0 1D4E9
-1D504 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D538 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D56C 1D585
-1D5A0 1D5B9
-1D5D4 1D5ED
-1D608 1D621
-1D63C 1D655
-1D670 1D689
-1D6A8 1D6C0
-1D6E2 1D6FA
-1D71C 1D734
-1D756 1D76E
-1D790 1D7A8
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Uppercas.pl b/Master/xemtex/perl/lib/unicore/lib/Uppercas.pl
deleted file mode 100644
index 7f39ab9ee39..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Uppercas.pl
+++ /dev/null
@@ -1,433 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Uppercase} (and fuzzy permutations)
-#
-# Meaning: [\p{Lu}\p{Other_Uppercase}]
-#
-return <<'END';
-0041 005A
-00C0 00D6
-00D8 00DE
-0100
-0102
-0104
-0106
-0108
-010A
-010C
-010E
-0110
-0112
-0114
-0116
-0118
-011A
-011C
-011E
-0120
-0122
-0124
-0126
-0128
-012A
-012C
-012E
-0130
-0132
-0134
-0136
-0139
-013B
-013D
-013F
-0141
-0143
-0145
-0147
-014A
-014C
-014E
-0150
-0152
-0154
-0156
-0158
-015A
-015C
-015E
-0160
-0162
-0164
-0166
-0168
-016A
-016C
-016E
-0170
-0172
-0174
-0176
-0178 0179
-017B
-017D
-0181 0182
-0184
-0186 0187
-0189 018B
-018E 0191
-0193 0194
-0196 0198
-019C 019D
-019F 01A0
-01A2
-01A4
-01A6 01A7
-01A9
-01AC
-01AE 01AF
-01B1 01B3
-01B5
-01B7 01B8
-01BC
-01C4
-01C7
-01CA
-01CD
-01CF
-01D1
-01D3
-01D5
-01D7
-01D9
-01DB
-01DE
-01E0
-01E2
-01E4
-01E6
-01E8
-01EA
-01EC
-01EE
-01F1
-01F4
-01F6 01F8
-01FA
-01FC
-01FE
-0200
-0202
-0204
-0206
-0208
-020A
-020C
-020E
-0210
-0212
-0214
-0216
-0218
-021A
-021C
-021E
-0220
-0222
-0224
-0226
-0228
-022A
-022C
-022E
-0230
-0232
-0386
-0388 038A
-038C
-038E 038F
-0391 03A1
-03A3 03AB
-03D2 03D4
-03D8
-03DA
-03DC
-03DE
-03E0
-03E2
-03E4
-03E6
-03E8
-03EA
-03EC
-03EE
-03F4
-0400 042F
-0460
-0462
-0464
-0466
-0468
-046A
-046C
-046E
-0470
-0472
-0474
-0476
-0478
-047A
-047C
-047E
-0480
-048A
-048C
-048E
-0490
-0492
-0494
-0496
-0498
-049A
-049C
-049E
-04A0
-04A2
-04A4
-04A6
-04A8
-04AA
-04AC
-04AE
-04B0
-04B2
-04B4
-04B6
-04B8
-04BA
-04BC
-04BE
-04C0 04C1
-04C3
-04C5
-04C7
-04C9
-04CB
-04CD
-04D0
-04D2
-04D4
-04D6
-04D8
-04DA
-04DC
-04DE
-04E0
-04E2
-04E4
-04E6
-04E8
-04EA
-04EC
-04EE
-04F0
-04F2
-04F4
-04F8
-0500
-0502
-0504
-0506
-0508
-050A
-050C
-050E
-0531 0556
-10A0 10C5
-1E00
-1E02
-1E04
-1E06
-1E08
-1E0A
-1E0C
-1E0E
-1E10
-1E12
-1E14
-1E16
-1E18
-1E1A
-1E1C
-1E1E
-1E20
-1E22
-1E24
-1E26
-1E28
-1E2A
-1E2C
-1E2E
-1E30
-1E32
-1E34
-1E36
-1E38
-1E3A
-1E3C
-1E3E
-1E40
-1E42
-1E44
-1E46
-1E48
-1E4A
-1E4C
-1E4E
-1E50
-1E52
-1E54
-1E56
-1E58
-1E5A
-1E5C
-1E5E
-1E60
-1E62
-1E64
-1E66
-1E68
-1E6A
-1E6C
-1E6E
-1E70
-1E72
-1E74
-1E76
-1E78
-1E7A
-1E7C
-1E7E
-1E80
-1E82
-1E84
-1E86
-1E88
-1E8A
-1E8C
-1E8E
-1E90
-1E92
-1E94
-1EA0
-1EA2
-1EA4
-1EA6
-1EA8
-1EAA
-1EAC
-1EAE
-1EB0
-1EB2
-1EB4
-1EB6
-1EB8
-1EBA
-1EBC
-1EBE
-1EC0
-1EC2
-1EC4
-1EC6
-1EC8
-1ECA
-1ECC
-1ECE
-1ED0
-1ED2
-1ED4
-1ED6
-1ED8
-1EDA
-1EDC
-1EDE
-1EE0
-1EE2
-1EE4
-1EE6
-1EE8
-1EEA
-1EEC
-1EEE
-1EF0
-1EF2
-1EF4
-1EF6
-1EF8
-1F08 1F0F
-1F18 1F1D
-1F28 1F2F
-1F38 1F3F
-1F48 1F4D
-1F59
-1F5B
-1F5D
-1F5F
-1F68 1F6F
-1FB8 1FBB
-1FC8 1FCB
-1FD8 1FDB
-1FE8 1FEC
-1FF8 1FFB
-2102
-2107
-210B 210D
-2110 2112
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-2130 2131
-2133
-213E 213F
-2145
-2160 216F
-24B6 24CF
-FF21 FF3A
-10400 10425
-1D400 1D419
-1D434 1D44D
-1D468 1D481
-1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B5
-1D4D0 1D4E9
-1D504 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D538 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D56C 1D585
-1D5A0 1D5B9
-1D5D4 1D5ED
-1D608 1D621
-1D63C 1D655
-1D670 1D689
-1D6A8 1D6C0
-1D6E2 1D6FA
-1D71C 1D734
-1D756 1D76E
-1D790 1D7A8
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/WhiteSpa.pl b/Master/xemtex/perl/lib/unicore/lib/WhiteSpa.pl
deleted file mode 100644
index 8f05124ec30..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/WhiteSpa.pl
+++ /dev/null
@@ -1,21 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{WhiteSpace} (and fuzzy permutations)
-#
-# Meaning: Extended property 'White_Space'
-#
-return <<'END';
-0009 000D White_Space
-0020 White_Space
-0085 White_Space
-00A0 White_Space
-1680 White_Space
-2000 200A White_Space
-2028 2029 White_Space
-202F White_Space
-3000 White_Space
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Word.pl b/Master/xemtex/perl/lib/unicore/lib/Word.pl
deleted file mode 100644
index fcd8aa0f805..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Word.pl
+++ /dev/null
@@ -1,424 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Word}
-#
-# Meaning: [[:Word:]]
-#
-return <<'END';
-0030 0039
-0041 005A
-005F
-0061 007A
-00AA
-00B2 00B3
-00B5
-00B9 00BA
-00BC 00BE
-00C0 00D6
-00D8 00F6
-00F8 0220
-0222 0233
-0250 02AD
-02B0 02B8
-02BB 02C1
-02D0 02D1
-02E0 02E4
-02EE
-0300 034F
-0360 036F
-037A
-0386
-0388 038A
-038C
-038E 03A1
-03A3 03CE
-03D0 03F5
-0400 0481
-0483 0486
-0488 04CE
-04D0 04F5
-04F8 04F9
-0500 050F
-0531 0556
-0559
-0561 0587
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-05D0 05EA
-05F0 05F2
-0621 063A
-0640 0655
-0660 0669
-066E 06D3
-06D5 06DC
-06DE 06E8
-06EA 06ED
-06F0 06FC
-0710 072C
-0730 074A
-0780 07B1
-0901 0903
-0905 0939
-093C 094D
-0950 0954
-0958 0963
-0966 096F
-0981 0983
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09BC
-09BE 09C4
-09C7 09C8
-09CB 09CD
-09D7
-09DC 09DD
-09DF 09E3
-09E6 09F1
-09F4 09F9
-0A02
-0A05 0A0A
-0A0F 0A10
-0A13 0A28
-0A2A 0A30
-0A32 0A33
-0A35 0A36
-0A38 0A39
-0A3C
-0A3E 0A42
-0A47 0A48
-0A4B 0A4D
-0A59 0A5C
-0A5E
-0A66 0A74
-0A81 0A83
-0A85 0A8B
-0A8D
-0A8F 0A91
-0A93 0AA8
-0AAA 0AB0
-0AB2 0AB3
-0AB5 0AB9
-0ABC 0AC5
-0AC7 0AC9
-0ACB 0ACD
-0AD0
-0AE0
-0AE6 0AEF
-0B01 0B03
-0B05 0B0C
-0B0F 0B10
-0B13 0B28
-0B2A 0B30
-0B32 0B33
-0B36 0B39
-0B3C 0B43
-0B47 0B48
-0B4B 0B4D
-0B56 0B57
-0B5C 0B5D
-0B5F 0B61
-0B66 0B6F
-0B82 0B83
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BBE 0BC2
-0BC6 0BC8
-0BCA 0BCD
-0BD7
-0BE7 0BF2
-0C01 0C03
-0C05 0C0C
-0C0E 0C10
-0C12 0C28
-0C2A 0C33
-0C35 0C39
-0C3E 0C44
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0C60 0C61
-0C66 0C6F
-0C82 0C83
-0C85 0C8C
-0C8E 0C90
-0C92 0CA8
-0CAA 0CB3
-0CB5 0CB9
-0CBE 0CC4
-0CC6 0CC8
-0CCA 0CCD
-0CD5 0CD6
-0CDE
-0CE0 0CE1
-0CE6 0CEF
-0D02 0D03
-0D05 0D0C
-0D0E 0D10
-0D12 0D28
-0D2A 0D39
-0D3E 0D43
-0D46 0D48
-0D4A 0D4D
-0D57
-0D60 0D61
-0D66 0D6F
-0D82 0D83
-0D85 0D96
-0D9A 0DB1
-0DB3 0DBB
-0DBD
-0DC0 0DC6
-0DCA
-0DCF 0DD4
-0DD6
-0DD8 0DDF
-0DF2 0DF3
-0E01 0E3A
-0E40 0E4E
-0E50 0E59
-0E81 0E82
-0E84
-0E87 0E88
-0E8A
-0E8D
-0E94 0E97
-0E99 0E9F
-0EA1 0EA3
-0EA5
-0EA7
-0EAA 0EAB
-0EAD 0EB9
-0EBB 0EBD
-0EC0 0EC4
-0EC6
-0EC8 0ECD
-0ED0 0ED9
-0EDC 0EDD
-0F00
-0F18 0F19
-0F20 0F33
-0F35
-0F37
-0F39
-0F3E 0F47
-0F49 0F6A
-0F71 0F84
-0F86 0F8B
-0F90 0F97
-0F99 0FBC
-0FC6
-1000 1021
-1023 1027
-1029 102A
-102C 1032
-1036 1039
-1040 1049
-1050 1059
-10A0 10C5
-10D0 10F8
-1100 1159
-115F 11A2
-11A8 11F9
-1200 1206
-1208 1246
-1248
-124A 124D
-1250 1256
-1258
-125A 125D
-1260 1286
-1288
-128A 128D
-1290 12AE
-12B0
-12B2 12B5
-12B8 12BE
-12C0
-12C2 12C5
-12C8 12CE
-12D0 12D6
-12D8 12EE
-12F0 130E
-1310
-1312 1315
-1318 131E
-1320 1346
-1348 135A
-1369 137C
-13A0 13F4
-1401 166C
-166F 1676
-1681 169A
-16A0 16EA
-16EE 16F0
-1700 170C
-170E 1714
-1720 1734
-1740 1753
-1760 176C
-176E 1770
-1772 1773
-1780 17D3
-17D7
-17DC
-17E0 17E9
-180B 180D
-1810 1819
-1820 1877
-1880 18A9
-1E00 1E9B
-1EA0 1EF9
-1F00 1F15
-1F18 1F1D
-1F20 1F45
-1F48 1F4D
-1F50 1F57
-1F59
-1F5B
-1F5D
-1F5F 1F7D
-1F80 1FB4
-1FB6 1FBC
-1FBE
-1FC2 1FC4
-1FC6 1FCC
-1FD0 1FD3
-1FD6 1FDB
-1FE0 1FEC
-1FF2 1FF4
-1FF6 1FFC
-2070 2071
-2074 2079
-207F 2089
-20D0 20EA
-2102
-2107
-210A 2113
-2115
-2119 211D
-2124
-2126
-2128
-212A 212D
-212F 2131
-2133 2139
-213D 213F
-2145 2149
-2153 2183
-2460 249B
-24EA 24FE
-2776 2793
-3005 3007
-3021 302F
-3031 3035
-3038 303C
-3041 3096
-3099 309A
-309D 309F
-30A1 30FA
-30FC 30FF
-3105 312C
-3131 318E
-3192 3195
-31A0 31B7
-31F0 31FF
-3220 3229
-3251 325F
-3280 3289
-32B1 32BF
-3400 4DB5
-4E00 9FA5
-A000 A48C
-AC00 D7A3
-F900 FA2D
-FA30 FA6A
-FB00 FB06
-FB13 FB17
-FB1D FB28
-FB2A FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE00 FE0F
-FE20 FE23
-FE70 FE74
-FE76 FEFC
-FF10 FF19
-FF21 FF3A
-FF41 FF5A
-FF66 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D165 1D169
-1D16D 1D172
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-1D400 1D454
-1D456 1D49C
-1D49E 1D49F
-1D4A2
-1D4A5 1D4A6
-1D4A9 1D4AC
-1D4AE 1D4B9
-1D4BB
-1D4BD 1D4C0
-1D4C2 1D4C3
-1D4C5 1D505
-1D507 1D50A
-1D50D 1D514
-1D516 1D51C
-1D51E 1D539
-1D53B 1D53E
-1D540 1D544
-1D546
-1D54A 1D550
-1D552 1D6A3
-1D6A8 1D6C0
-1D6C2 1D6DA
-1D6DC 1D6FA
-1D6FC 1D714
-1D716 1D734
-1D736 1D74E
-1D750 1D76E
-1D770 1D788
-1D78A 1D7A8
-1D7AA 1D7C2
-1D7C4 1D7C9
-1D7CE 1D7FF
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/XDigit.pl b/Master/xemtex/perl/lib/unicore/lib/XDigit.pl
deleted file mode 100644
index 6fe95d5c1ed..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/XDigit.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{XDigit}
-#
-# Meaning: [[:XDigit:]]
-#
-return <<'END';
-0030 0039
-0041 0046
-0061 0066
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Yi.pl b/Master/xemtex/perl/lib/unicore/lib/Yi.pl
deleted file mode 100644
index eb7131e801a..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Yi.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Yi} (and fuzzy permutations)
-#
-# Meaning: Script 'YI'
-#
-return <<'END';
-A000 A48C YI
-A490 A4A1 YI
-A4A4 A4B3 YI
-A4B5 A4C0 YI
-A4C2 A4C4 YI
-A4C6 YI
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Z.pl b/Master/xemtex/perl/lib/unicore/lib/Z.pl
deleted file mode 100644
index 751327e6922..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Z.pl
+++ /dev/null
@@ -1,21 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Z}
-# \p{Z} (and fuzzy permutations)
-#
-# Meaning: Major Category 'Z'
-#
-return <<'END';
-0020
-00A0
-1680
-2000 200B
-2028 2029
-202F
-205F
-3000
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Zl.pl b/Master/xemtex/perl/lib/unicore/lib/Zl.pl
deleted file mode 100644
index db5580deb4f..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Zl.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Zl}
-# \p{Zl} (and fuzzy permutations)
-#
-# Meaning: General Category 'Zl'
-#
-return <<'END';
-2028
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Zp.pl b/Master/xemtex/perl/lib/unicore/lib/Zp.pl
deleted file mode 100644
index f7a4eb62a3b..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Zp.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Zp}
-# \p{Zp} (and fuzzy permutations)
-#
-# Meaning: General Category 'Zp'
-#
-return <<'END';
-2029
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/Zs.pl b/Master/xemtex/perl/lib/unicore/lib/Zs.pl
deleted file mode 100644
index 1c1b467a570..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/Zs.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{Zs}
-# \p{Zs} (and fuzzy permutations)
-#
-# Meaning: General Category 'Zs'
-#
-return <<'END';
-0020
-00A0
-1680
-2000 200B
-202F
-205F
-3000
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/_CanonDC.pl b/Master/xemtex/perl/lib/unicore/lib/_CanonDC.pl
deleted file mode 100644
index 3d627e7ed21..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/_CanonDC.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{_CanonDCIJ}
-#
-# Meaning: (for internal casefolding use)
-#
-return <<'END';
-0069 006A
-012F
-1E2D
-1ECB
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/_CaseIgn.pl b/Master/xemtex/perl/lib/unicore/lib/_CaseIgn.pl
deleted file mode 100644
index dafa4a668f1..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/_CaseIgn.pl
+++ /dev/null
@@ -1,118 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{_CaseIgnorable}
-#
-# Meaning: (for internal casefolding use)
-#
-return <<'END';
-00AD
-0300 034F
-0360 036F
-0483 0486
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-064B 0655
-0670
-06D6 06DC
-06DF 06E4
-06E7 06E8
-06EA 06ED
-0711
-0730 074A
-07A6 07B0
-0901 0902
-093C
-0941 0948
-094D
-0951 0954
-0962 0963
-0981
-09BC
-09C1 09C4
-09CD
-09E2 09E3
-0A02
-0A3C
-0A41 0A42
-0A47 0A48
-0A4B 0A4D
-0A70 0A71
-0A81 0A82
-0ABC
-0AC1 0AC5
-0AC7 0AC8
-0ACD
-0B01
-0B3C
-0B3F
-0B41 0B43
-0B4D
-0B56
-0B82
-0BC0
-0BCD
-0C3E 0C40
-0C46 0C48
-0C4A 0C4D
-0C55 0C56
-0CBF
-0CC6
-0CCC 0CCD
-0D41 0D43
-0D4D
-0DCA
-0DD2 0DD4
-0DD6
-0E31
-0E34 0E3A
-0E47 0E4E
-0EB1
-0EB4 0EB9
-0EBB 0EBC
-0EC8 0ECD
-0F18 0F19
-0F35
-0F37
-0F39
-0F71 0F7E
-0F80 0F84
-0F86 0F87
-0F90 0F97
-0F99 0FBC
-0FC6
-102D 1030
-1032
-1036 1037
-1039
-1058 1059
-1712 1714
-1732 1734
-1752 1753
-1772 1773
-17B7 17BD
-17C6
-17C9 17D3
-180B 180D
-18A9
-2010
-20D0 20DC
-20E1
-20E5 20EA
-302A 302F
-3099 309A
-FB1E
-FE00 FE0F
-FE20 FE23
-1D167 1D169
-1D17B 1D182
-1D185 1D18B
-1D1AA 1D1AD
-END
diff --git a/Master/xemtex/perl/lib/unicore/lib/_CombAbo.pl b/Master/xemtex/perl/lib/unicore/lib/_CombAbo.pl
deleted file mode 100644
index de2c8e46ab7..00000000000
--- a/Master/xemtex/perl/lib/unicore/lib/_CombAbo.pl
+++ /dev/null
@@ -1,54 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. UnicodeData.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{_CombAbove}
-#
-# Meaning: (for internal casefolding use)
-#
-return <<'END';
-0300 0314
-033D 0344
-0346
-034A 034C
-0363 036F
-0483 0486
-0592 0595
-0597 0599
-059C 05A1
-05A8 05A9
-05AB 05AC
-05AF
-05C4
-0653 0654
-06D6 06DC
-06DF 06E2
-06E4
-06E7 06E8
-06EB 06EC
-0730
-0732 0733
-0735 0736
-073A
-073D
-073F 0741
-0743
-0745
-0747
-0749 074A
-0951
-0953 0954
-0F82 0F83
-0F86 0F87
-20D0 20D1
-20D4 20D7
-20DB 20DC
-20E1
-20E7
-20E9
-FE20 FE23
-1D185 1D189
-1D1AA 1D1AD
-END
diff --git a/Master/xemtex/perl/lib/utf8.pm b/Master/xemtex/perl/lib/utf8.pm
deleted file mode 100644
index 5a37aecba87..00000000000
--- a/Master/xemtex/perl/lib/utf8.pm
+++ /dev/null
@@ -1,152 +0,0 @@
-package utf8;
-
-$utf8::hint_bits = 0x00800000;
-
-our $VERSION = '1.00';
-
-sub import {
- $^H |= $utf8::hint_bits;
- $enc{caller()} = $_[1] if $_[1];
-}
-
-sub unimport {
- $^H &= ~$utf8::hint_bits;
-}
-
-sub AUTOLOAD {
- require "utf8_heavy.pl";
- goto &$AUTOLOAD if defined &$AUTOLOAD;
- Carp::croak("Undefined subroutine $AUTOLOAD called");
-}
-
-1;
-__END__
-
-=head1 NAME
-
-utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code
-
-=head1 SYNOPSIS
-
- use utf8;
- no utf8;
-
-=head1 DESCRIPTION
-
-The C<use utf8> pragma tells the Perl parser to allow UTF-8 in the
-program text in the current lexical scope (allow UTF-EBCDIC on EBCDIC based
-platforms). The C<no utf8> pragma tells Perl to switch back to treating
-the source text as literal bytes in the current lexical scope.
-
-This pragma is primarily a compatibility device. Perl versions
-earlier than 5.6 allowed arbitrary bytes in source code, whereas
-in future we would like to standardize on the UTF-8 encoding for
-source text. Until UTF-8 becomes the default format for source
-text, this pragma should be used to recognize UTF-8 in the source.
-When UTF-8 becomes the standard source format, this pragma will
-effectively become a no-op. For convenience in what follows the
-term I<UTF-X> is used to refer to UTF-8 on ASCII and ISO Latin based
-platforms and UTF-EBCDIC on EBCDIC based platforms.
-
-Enabling the C<utf8> pragma has the following effect:
-
-=over 4
-
-=item *
-
-Bytes in the source text that have their high-bit set will be treated
-as being part of a literal UTF-8 character. This includes most
-literals such as identifier names, string constants, and constant
-regular expression patterns.
-
-On EBCDIC platforms characters in the Latin 1 character set are
-treated as being part of a literal UTF-EBCDIC character.
-
-=back
-
-Note that if you have bytes with the eighth bit on in your script
-(for example embedded Latin-1 in your string literals), C<use utf8>
-will be unhappy since the bytes are most probably not well-formed
-UTF-8. If you want to have such bytes and use utf8, you can disable
-utf8 until the end the block (or file, if at top level) by C<no utf8;>.
-
-=head2 Utility functions
-
-The following functions are defined in the C<utf8::> package by the perl core.
-
-=over 4
-
-=item * $num_octets = utf8::upgrade($string);
-
-Converts (in-place) internal representation of string to Perl's internal
-I<UTF-X> form. Returns the number of octets necessary to represent
-the string as I<UTF-X>. Can be used to make sure that the
-UTF-8 flag is on, so that C<\w> or C<lc()> work as expected on strings
-containing characters in the range 0x80-0xFF. Note that this should
-not be used to convert
-a legacy byte encoding to Unicode: use Encode for that. Affected
-by the encoding pragma.
-
-=item * utf8::downgrade($string[, FAIL_OK])
-
-Converts (in-place) internal representation of string to be un-encoded
-bytes. Returns true on success. On failure dies or, if the value of
-FAIL_OK is true, returns false. Can be used to make sure that the
-UTF-8 flag is off, e.g. when you want to make sure that the substr()
-or length() function works with the usually faster byte algorithm.
-Note that this should not be used to convert Unicode back to a legacy
-byte encoding: use Encode for that. B<Not> affected by the encoding
-pragma.
-
-=item * utf8::encode($string)
-
-Converts (in-place) I<$string> from logical characters to octet
-sequence representing it in Perl's I<UTF-X> encoding. Same as
-Encode::encode_utf8(). Note that this should not be used to convert
-a legacy byte encoding to Unicode: use Encode for that.
-
-=item * $flag = utf8::decode($string)
-
-Attempts to convert I<$string> in-place from Perl's I<UTF-X> encoding
-into logical characters. Same as Encode::decode_utf8(). Note that this
-should not be used to convert Unicode back to a legacy byte encoding:
-use Encode for that.
-
-=item * $flag = utf8::valid(STRING)
-
-[INTERNAL] Test whether STRING is in a consistent state. Will return
-true if string is held as bytes, or is well-formed UTF-8 and has the
-UTF-8 flag on. Main reason for this routine is to allow Perl's
-testsuite to check that operations have left strings in a consistent
-state.
-
-=back
-
-C<utf8::encode> is like C<utf8::upgrade>, but the UTF8 flag is
-cleared. See L<perlunicode> for more on the UTF8 flag and the C API
-functions C<sv_utf8_upgrade>, C<sv_utf8_downgrade>, C<sv_utf8_encode>,
-and C<sv_utf8_decode>, which are wrapped by the Perl functions
-C<utf8::upgrade>, C<utf8::downgrade>, C<utf8::encode> and
-C<utf8::decode>. Note that in the Perl 5.8.0 implementation the
-functions utf8::valid, utf8::encode, utf8::decode, utf8::upgrade,
-and utf8::downgrade are always available, without a C<require utf8>
-statement-- this may change in future releases.
-
-=head1 BUGS
-
-One can have Unicode in identifier names, but not in package/class or
-subroutine names. While some limited functionality towards this does
-exist as of Perl 5.8.0, that is more accidental than designed; use of
-Unicode for the said purposes is unsupported.
-
-One reason of this unfinishedness is its (currently) inherent
-unportability: since both package names and subroutine names may need
-to be mapped to file and directory names, the Unicode capability of
-the filesystem becomes important-- and there unfortunately aren't
-portable answers.
-
-=head1 SEE ALSO
-
-L<perlunicode>, L<bytes>
-
-=cut
diff --git a/Master/xemtex/perl/lib/utf8_heavy.pl b/Master/xemtex/perl/lib/utf8_heavy.pl
deleted file mode 100644
index 1839d2144f1..00000000000
--- a/Master/xemtex/perl/lib/utf8_heavy.pl
+++ /dev/null
@@ -1,344 +0,0 @@
-package utf8;
-use strict;
-use warnings;
-
-sub DEBUG () { 0 }
-
-sub DESTROY {}
-
-my %Cache;
-
-sub croak { require Carp; Carp::croak(@_) }
-
-##
-## "SWASH" == "SWATCH HASH". A "swatch" is a swatch of the Unicode landscape
-##
-
-sub SWASHNEW {
- my ($class, $type, $list, $minbits, $none) = @_;
- local $^D = 0 if $^D;
-
- print STDERR "SWASHNEW @_\n" if DEBUG;
-
- ##
- ## Get the list of codepoints for the type.
- ## Called from utf8.c
- ##
- ## Given a $type, our goal is to fill $list with the set of codepoint
- ## ranges.
- ##
- ## To make the parsing of $type clear, this code takes the a rather
- ## unorthadox approach of last'ing out of the block once we have the
- ## info we need. Were this to be a subroutine, the 'last' would just
- ## be a 'return'.
- ##
- my $file; ## file to load data from, and also part of the %Cache key.
- my $ListSorted = 0;
-
- if ($type)
- {
- $type =~ s/^\s+//;
- $type =~ s/\s+$//;
-
- print "type = $type\n" if DEBUG;
-
- GETFILE:
- {
- ##
- ## 'Is' is always optional, so if it's there, remove it.
- ## Same with 'Category=' and 'Script='.
- ##
- ## 'Block=' is replaced by 'In'.
- ##
- $type =~ s/^Is(?:\s+|[-_])?//i
- or
- $type =~ s/^Category\s*=\s*//i
- or
- $type =~ s/^Script\s*=\s*//i
- or
- $type =~ s/^Block\s*=\s*/In/i;
-
- ##
- ## See if it's in the direct mapping table.
- ##
- require "unicore/Exact.pl";
- if (my $base = $utf8::Exact{$type}) {
- $file = "unicore/lib/$base.pl";
- last GETFILE;
- }
-
- ##
- ## If not there exactly, try the canonical form. The canonical
- ## form is lowercased, with any separators (\s+|[-_]) removed.
- ##
- my $canonical = lc $type;
- $canonical =~ s/(?<=[a-z\d])(?:\s+|[-_])(?=[a-z\d])//g;
- print "canonical = $canonical\n" if DEBUG;
-
- require "unicore/Canonical.pl";
- if (my $base = $utf8::Canonical{$canonical}) {
- $file = "unicore/lib/$base.pl";
- last GETFILE;
- }
-
- ##
- ## It could be a user-defined property.
- ##
-
- if ($type =~ /^I[ns](\w+)$/) {
- my @caller = caller(1);
-
- if (defined $caller[0]) {
- my $prop = $caller[0] . "::" . $type;
-
- if (exists &{$prop}) {
- no strict 'refs';
-
- $list = &{$prop};
- last GETFILE;
- }
- }
- }
-
- ##
- ## Last attempt -- see if it's a "To" name (e.g. "ToLower")
- ##
- if ($type =~ /^To([A-Z][A-Za-z]+)$/)
- {
- $file = "unicore/To/$1.pl";
- ## would like to test to see if $file actually exists....
- last GETFILE;
- }
-
- ##
- ## If we reach this line, it's because we couldn't figure
- ## out what to do with $type. Ouch.
- ##
-
- return $type;
- }
-
- if (defined $file) {
- print "found it (file='$file')\n" if DEBUG;
-
- ##
- ## If we reach here, it was due to a 'last GETFILE' above
- ## (exception: user-defined properties), so we
- ## have a filename, so now we load it if we haven't already.
- ## If we have, return the cached results. The cache key is the
- ## file to load.
- ##
- if ($Cache{$file} and ref($Cache{$file}) eq $class)
- {
- print "Returning cached '$file' for \\p{$type}\n" if DEBUG;
- return $Cache{$class, $file};
- }
-
- $list = do $file;
- }
-
- $ListSorted = 1; ## we know that these lists are sorted
- }
-
- my $extras;
- my $bits;
-
- my $ORIG = $list;
- if ($list) {
- my @tmp = split(/^/m, $list);
- my %seen;
- no warnings;
- $extras = join '', grep /^[^0-9a-fA-F]/, @tmp;
- $list = join '',
- sort { hex $a <=> hex $b }
- grep {/^([0-9a-fA-F]+)/ and not $seen{$1}++} @tmp; # XXX doesn't do ranges right
- }
-
- if ($none) {
- my $hextra = sprintf "%04x", $none + 1;
- $list =~ s/\tXXXX$/\t$hextra/mg;
- }
-
- if ($minbits < 32) {
- my $top = 0;
- while ($list =~ /^([0-9a-fA-F]+)(?:\t([0-9a-fA-F]+)?)(?:\t([0-9a-fA-F]+))?/mg) {
- my $min = hex $1;
- my $max = hex(defined $2 ? $2 : $1);
- my $val = hex(defined $3 ? $3 : "");
- $val += $max - $min if defined $3;
- $top = $val if $val > $top;
- }
- $bits =
- $top > 0xffff ? 32 :
- $top > 0xff ? 16 :
- $top > 1 ? 8 : 1
- }
- $bits = $minbits if $bits < $minbits;
-
- my @extras;
- for my $x ($extras) {
- pos $x = 0;
- while ($x =~ /^([^0-9a-fA-F\n])(.*)/mg) {
- my $char = $1;
- my $name = $2;
- print STDERR "$1 => $2\n" if DEBUG;
- if ($char =~ /[-+!]/) {
- my ($c,$t) = split(/::/, $name, 2); # bogus use of ::, really
- my $subobj;
- if ($c eq 'utf8') {
- $subobj = $c->SWASHNEW($t, "", 0, 0, 0);
- }
- elsif ($c =~ /^([0-9a-fA-F]+)/) {
- $subobj = utf8->SWASHNEW("", $c, 0, 0, 0);
- }
- return $subobj unless ref $subobj;
- push @extras, $name => $subobj;
- $bits = $subobj->{BITS} if $bits < $subobj->{BITS};
- }
- }
- }
-
- print STDERR "CLASS = $class, TYPE => $type, BITS => $bits, NONE => $none\nEXTRAS =>\n$extras\nLIST =>\n$list\n" if DEBUG;
-
- my $SWASH = bless {
- TYPE => $type,
- BITS => $bits,
- EXTRAS => $extras,
- LIST => $list,
- NONE => $none,
- @extras,
- } => $class;
-
- if ($file) {
- $Cache{$class, $file} = $SWASH;
- }
-
- return $SWASH;
-}
-
-# NOTE: utf8.c:swash_init() assumes entries are never modified once generated.
-
-sub SWASHGET {
- # See utf8.c:Perl_swash_fetch for problems with this interface.
- my ($self, $start, $len) = @_;
- local $^D = 0 if $^D;
- my $type = $self->{TYPE};
- my $bits = $self->{BITS};
- my $none = $self->{NONE};
- print STDERR "SWASHGET @_ [$type/$bits/$none]\n" if DEBUG;
- my $end = $start + $len;
- my $swatch = "";
- my $key;
- vec($swatch, $len - 1, $bits) = 0; # Extend to correct length.
- if ($none) {
- for $key (0 .. $len - 1) { vec($swatch, $key, $bits) = $none }
- }
-
- for ($self->{LIST}) {
- pos $_ = 0;
- if ($bits > 1) {
- LINE:
- while (/^([0-9a-fA-F]+)(?:\t([0-9a-fA-F]+)?)(?:\t([0-9a-fA-F]+))?/mg) {
- my $min = hex $1;
- my $max = (defined $2 ? hex $2 : $min);
- my $val = hex $3;
- next if $max < $start;
- print "$min $max $val\n" if DEBUG;
- if ($none) {
- if ($min < $start) {
- $val += $start - $min if $val < $none;
- $min = $start;
- }
- for ($key = $min; $key <= $max; $key++) {
- last LINE if $key >= $end;
- print STDERR "$key => $val\n" if DEBUG;
- vec($swatch, $key - $start, $bits) = $val;
- ++$val if $val < $none;
- }
- }
- else {
- if ($min < $start) {
- $val += $start - $min;
- $min = $start;
- }
- for ($key = $min; $key <= $max; $key++, $val++) {
- last LINE if $key >= $end;
- print STDERR "$key => $val\n" if DEBUG;
- vec($swatch, $key - $start, $bits) = $val;
- }
- }
- }
- }
- else {
- LINE:
- while (/^([0-9a-fA-F]+)(?:[ \t]+([0-9a-fA-F]+))?/mg) {
- my $min = hex $1;
- my $max = (defined $2 ? hex $2 : $min);
- next if $max < $start;
- if ($min < $start) {
- $min = $start;
- }
- for ($key = $min; $key <= $max; $key++) {
- last LINE if $key >= $end;
- print STDERR "$key => 1\n" if DEBUG;
- vec($swatch, $key - $start, 1) = 1;
- }
- }
- }
- }
- for my $x ($self->{EXTRAS}) {
- pos $x = 0;
- while ($x =~ /^([-+!])(.*)/mg) {
- my $char = $1;
- my $name = $2;
- print STDERR "INDIRECT $1 $2\n" if DEBUG;
- my $otherbits = $self->{$name}->{BITS};
- croak("SWASHGET size mismatch") if $bits < $otherbits;
- my $other = $self->{$name}->SWASHGET($start, $len);
- if ($char eq '+') {
- if ($bits == 1 and $otherbits == 1) {
- $swatch |= $other;
- }
- else {
- for ($key = 0; $key < $len; $key++) {
- vec($swatch, $key, $bits) = vec($other, $key, $otherbits);
- }
- }
- }
- elsif ($char eq '!') {
- if ($bits == 1 and $otherbits == 1) {
- $swatch |= ~$other;
- }
- else {
- for ($key = 0; $key < $len; $key++) {
- if (!vec($other, $key, $otherbits)) {
- vec($swatch, $key, $bits) = 1;
- }
- }
- }
- }
- elsif ($char eq '-') {
- if ($bits == 1 and $otherbits == 1) {
- $swatch &= ~$other;
- }
- else {
- for ($key = 0; $key < $len; $key++) {
- if (vec($other, $key, $otherbits)) {
- vec($swatch, $key, $bits) = 0;
- }
- }
- }
- }
- }
- }
- if (DEBUG) {
- print STDERR "CELLS ";
- for ($key = 0; $key < $len; $key++) {
- print STDERR vec($swatch, $key, $bits), " ";
- }
- print STDERR "\n";
- }
- $swatch;
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/vars.pm b/Master/xemtex/perl/lib/vars.pm
deleted file mode 100644
index a0151b84030..00000000000
--- a/Master/xemtex/perl/lib/vars.pm
+++ /dev/null
@@ -1,82 +0,0 @@
-package vars;
-
-use 5.006;
-
-our $VERSION = '1.01';
-
-use warnings::register;
-use strict qw(vars subs);
-
-sub import {
- my $callpack = caller;
- my ($pack, @imports) = @_;
- my ($sym, $ch);
- foreach (@imports) {
- if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) {
- if ($sym =~ /\W/) {
- # time for a more-detailed check-up
- if ($sym =~ /^\w+[[{].*[]}]$/) {
- require Carp;
- Carp::croak("Can't declare individual elements of hash or array");
- } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) {
- warnings::warn("No need to declare built-in vars");
- } elsif (($^H &= strict::bits('vars'))) {
- require Carp;
- Carp::croak("'$_' is not a valid variable name under strict vars");
- }
- }
- $sym = "${callpack}::$sym" unless $sym =~ /::/;
- *$sym =
- ( $ch eq "\$" ? \$$sym
- : $ch eq "\@" ? \@$sym
- : $ch eq "\%" ? \%$sym
- : $ch eq "\*" ? \*$sym
- : $ch eq "\&" ? \&$sym
- : do {
- require Carp;
- Carp::croak("'$_' is not a valid variable name");
- });
- } else {
- require Carp;
- Carp::croak("'$_' is not a valid variable name");
- }
- }
-};
-
-1;
-__END__
-
-=head1 NAME
-
-vars - Perl pragma to predeclare global variable names (obsolete)
-
-=head1 SYNOPSIS
-
- use vars qw($frob @mung %seen);
-
-=head1 DESCRIPTION
-
-NOTE: For variables in the current package, the functionality provided
-by this pragma has been superseded by C<our> declarations, available
-in Perl v5.6.0 or later. See L<perlfunc/our>.
-
-This will predeclare all the variables whose names are
-in the list, allowing you to use them under "use strict", and
-disabling any typo warnings.
-
-Unlike pragmas that affect the C<$^H> hints variable, the C<use vars> and
-C<use subs> declarations are not BLOCK-scoped. They are thus effective
-for the entire file in which they appear. You may not rescind such
-declarations with C<no vars> or C<no subs>.
-
-Packages such as the B<AutoLoader> and B<SelfLoader> that delay
-loading of subroutines within packages can create problems with
-package lexicals defined using C<my()>. While the B<vars> pragma
-cannot duplicate the effect of package lexicals (total transparency
-outside of the package), it can act as an acceptable substitute by
-pre-declaring global symbols, ensuring their availability to the
-later-loaded routines.
-
-See L<perlmodlib/Pragmatic Modules>.
-
-=cut
diff --git a/Master/xemtex/perl/lib/warnings.pm b/Master/xemtex/perl/lib/warnings.pm
deleted file mode 100644
index 8aa77482b20..00000000000
--- a/Master/xemtex/perl/lib/warnings.pm
+++ /dev/null
@@ -1,489 +0,0 @@
-
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file was created by warnings.pl
-# Any changes made here will be lost.
-#
-
-package warnings;
-
-our $VERSION = '1.00';
-
-=head1 NAME
-
-warnings - Perl pragma to control optional warnings
-
-=head1 SYNOPSIS
-
- use warnings;
- no warnings;
-
- use warnings "all";
- no warnings "all";
-
- use warnings::register;
- if (warnings::enabled()) {
- warnings::warn("some warning");
- }
-
- if (warnings::enabled("void")) {
- warnings::warn("void", "some warning");
- }
-
- if (warnings::enabled($object)) {
- warnings::warn($object, "some warning");
- }
-
- warnings::warnif("some warning");
- warnings::warnif("void", "some warning");
- warnings::warnif($object, "some warning");
-
-=head1 DESCRIPTION
-
-If no import list is supplied, all possible warnings are either enabled
-or disabled.
-
-A number of functions are provided to assist module authors.
-
-=over 4
-
-=item use warnings::register
-
-Creates a new warnings category with the same name as the package where
-the call to the pragma is used.
-
-=item warnings::enabled()
-
-Use the warnings category with the same name as the current package.
-
-Return TRUE if that warnings category is enabled in the calling module.
-Otherwise returns FALSE.
-
-=item warnings::enabled($category)
-
-Return TRUE if the warnings category, C<$category>, is enabled in the
-calling module.
-Otherwise returns FALSE.
-
-=item warnings::enabled($object)
-
-Use the name of the class for the object reference, C<$object>, as the
-warnings category.
-
-Return TRUE if that warnings category is enabled in the first scope
-where the object is used.
-Otherwise returns FALSE.
-
-=item warnings::warn($message)
-
-Print C<$message> to STDERR.
-
-Use the warnings category with the same name as the current package.
-
-If that warnings category has been set to "FATAL" in the calling module
-then die. Otherwise return.
-
-=item warnings::warn($category, $message)
-
-Print C<$message> to STDERR.
-
-If the warnings category, C<$category>, has been set to "FATAL" in the
-calling module then die. Otherwise return.
-
-=item warnings::warn($object, $message)
-
-Print C<$message> to STDERR.
-
-Use the name of the class for the object reference, C<$object>, as the
-warnings category.
-
-If that warnings category has been set to "FATAL" in the scope where C<$object>
-is first used then die. Otherwise return.
-
-
-=item warnings::warnif($message)
-
-Equivalent to:
-
- if (warnings::enabled())
- { warnings::warn($message) }
-
-=item warnings::warnif($category, $message)
-
-Equivalent to:
-
- if (warnings::enabled($category))
- { warnings::warn($category, $message) }
-
-=item warnings::warnif($object, $message)
-
-Equivalent to:
-
- if (warnings::enabled($object))
- { warnings::warn($object, $message) }
-
-=back
-
-See L<perlmodlib/Pragmatic Modules> and L<perllexwarn>.
-
-=cut
-
-use Carp ;
-
-%Offsets = (
-
- # Warnings Categories added in Perl 5.008
-
- 'all' => 0,
- 'closure' => 2,
- 'deprecated' => 4,
- 'exiting' => 6,
- 'glob' => 8,
- 'io' => 10,
- 'closed' => 12,
- 'exec' => 14,
- 'layer' => 16,
- 'newline' => 18,
- 'pipe' => 20,
- 'unopened' => 22,
- 'misc' => 24,
- 'numeric' => 26,
- 'once' => 28,
- 'overflow' => 30,
- 'pack' => 32,
- 'portable' => 34,
- 'recursion' => 36,
- 'redefine' => 38,
- 'regexp' => 40,
- 'severe' => 42,
- 'debugging' => 44,
- 'inplace' => 46,
- 'internal' => 48,
- 'malloc' => 50,
- 'signal' => 52,
- 'substr' => 54,
- 'syntax' => 56,
- 'ambiguous' => 58,
- 'bareword' => 60,
- 'digit' => 62,
- 'parenthesis' => 64,
- 'precedence' => 66,
- 'printf' => 68,
- 'prototype' => 70,
- 'qw' => 72,
- 'reserved' => 74,
- 'semicolon' => 76,
- 'taint' => 78,
- 'threads' => 80,
- 'uninitialized' => 82,
- 'unpack' => 84,
- 'untie' => 86,
- 'utf8' => 88,
- 'void' => 90,
- 'y2k' => 92,
- );
-
-%Bits = (
- 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15", # [0..46]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [29]
- 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [30]
- 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
- 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [22]
- 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [31]
- 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
- 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
- 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
- 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [23]
- 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [24]
- 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..11]
- 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [25]
- 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
- 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
- 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
- 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
- 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
- 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [16]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [32]
- 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
- 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [17]
- 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [33]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [34]
- 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [35]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [36]
- 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [18]
- 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [19]
- 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [20]
- 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [37]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [38]
- 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00", # [21..25]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [26]
- 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [27]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x00", # [28..38]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [39]
- 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [40]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [41]
- 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [42]
- 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [43]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [44]
- 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [45]
- 'y2k' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [46]
- );
-
-%DeadBits = (
- 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x2a", # [0..46]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [29]
- 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [30]
- 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
- 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [22]
- 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [31]
- 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
- 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
- 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
- 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [23]
- 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [24]
- 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..11]
- 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [25]
- 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
- 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
- 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
- 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
- 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
- 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [16]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [32]
- 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
- 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [17]
- 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [33]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [34]
- 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [35]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [36]
- 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [18]
- 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [19]
- 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [20]
- 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [37]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [38]
- 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00", # [21..25]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [26]
- 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [27]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x00", # [28..38]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [39]
- 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [40]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [41]
- 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [42]
- 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [43]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [44]
- 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [45]
- 'y2k' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [46]
- );
-
-$NONE = "\0\0\0\0\0\0\0\0\0\0\0\0";
-$LAST_BIT = 94 ;
-$BYTES = 12 ;
-
-$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
-
-sub Croaker
-{
- delete $Carp::CarpInternal{'warnings'};
- croak @_ ;
-}
-
-sub bits
-{
- # called from B::Deparse.pm
-
- push @_, 'all' unless @_;
-
- my $mask;
- my $catmask ;
- my $fatal = 0 ;
- my $no_fatal = 0 ;
-
- foreach my $word ( @_ ) {
- if ($word eq 'FATAL') {
- $fatal = 1;
- $no_fatal = 0;
- }
- elsif ($word eq 'NONFATAL') {
- $fatal = 0;
- $no_fatal = 1;
- }
- elsif ($catmask = $Bits{$word}) {
- $mask |= $catmask ;
- $mask |= $DeadBits{$word} if $fatal ;
- $mask &= ~($DeadBits{$word}|$All) if $no_fatal ;
- }
- else
- { Croaker("Unknown warnings category '$word'")}
- }
-
- return $mask ;
-}
-
-sub import
-{
- shift;
-
- my $catmask ;
- my $fatal = 0 ;
- my $no_fatal = 0 ;
-
- my $mask = ${^WARNING_BITS} ;
-
- if (vec($mask, $Offsets{'all'}, 1)) {
- $mask |= $Bits{'all'} ;
- $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
- }
-
- push @_, 'all' unless @_;
-
- foreach my $word ( @_ ) {
- if ($word eq 'FATAL') {
- $fatal = 1;
- $no_fatal = 0;
- }
- elsif ($word eq 'NONFATAL') {
- $fatal = 0;
- $no_fatal = 1;
- }
- elsif ($catmask = $Bits{$word}) {
- $mask |= $catmask ;
- $mask |= $DeadBits{$word} if $fatal ;
- $mask &= ~($DeadBits{$word}|$All) if $no_fatal ;
- }
- else
- { Croaker("Unknown warnings category '$word'")}
- }
-
- ${^WARNING_BITS} = $mask ;
-}
-
-sub unimport
-{
- shift;
-
- my $catmask ;
- my $mask = ${^WARNING_BITS} ;
-
- if (vec($mask, $Offsets{'all'}, 1)) {
- $mask |= $Bits{'all'} ;
- $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
- }
-
- push @_, 'all' unless @_;
-
- foreach my $word ( @_ ) {
- if ($word eq 'FATAL') {
- next;
- }
- elsif ($catmask = $Bits{$word}) {
- $mask &= ~($catmask | $DeadBits{$word} | $All);
- }
- else
- { Croaker("Unknown warnings category '$word'")}
- }
-
- ${^WARNING_BITS} = $mask ;
-}
-
-sub __chk
-{
- my $category ;
- my $offset ;
- my $isobj = 0 ;
-
- if (@_) {
- # check the category supplied.
- $category = shift ;
- if (ref $category) {
- Croaker ("not an object")
- if $category !~ /^([^=]+)=/ ;
- $category = $1 ;
- $isobj = 1 ;
- }
- $offset = $Offsets{$category};
- Croaker("Unknown warnings category '$category'")
- unless defined $offset;
- }
- else {
- $category = (caller(1))[0] ;
- $offset = $Offsets{$category};
- Croaker("package '$category' not registered for warnings")
- unless defined $offset ;
- }
-
- my $this_pkg = (caller(1))[0] ;
- my $i = 2 ;
- my $pkg ;
-
- if ($isobj) {
- while (do { { package DB; $pkg = (caller($i++))[0] } } ) {
- last unless @DB::args && $DB::args[0] =~ /^$category=/ ;
- }
- $i -= 2 ;
- }
- else {
- for ($i = 2 ; $pkg = (caller($i))[0] ; ++ $i) {
- last if $pkg ne $this_pkg ;
- }
- $i = 2
- if !$pkg || $pkg eq $this_pkg ;
- }
-
- my $callers_bitmask = (caller($i))[9] ;
- return ($callers_bitmask, $offset, $i) ;
-}
-
-sub enabled
-{
- Croaker("Usage: warnings::enabled([category])")
- unless @_ == 1 || @_ == 0 ;
-
- my ($callers_bitmask, $offset, $i) = __chk(@_) ;
-
- return 0 unless defined $callers_bitmask ;
- return vec($callers_bitmask, $offset, 1) ||
- vec($callers_bitmask, $Offsets{'all'}, 1) ;
-}
-
-
-sub warn
-{
- Croaker("Usage: warnings::warn([category,] 'message')")
- unless @_ == 2 || @_ == 1 ;
-
- my $message = pop ;
- my ($callers_bitmask, $offset, $i) = __chk(@_) ;
- croak($message)
- if vec($callers_bitmask, $offset+1, 1) ||
- vec($callers_bitmask, $Offsets{'all'}+1, 1) ;
- carp($message) ;
-}
-
-sub warnif
-{
- Croaker("Usage: warnings::warnif([category,] 'message')")
- unless @_ == 2 || @_ == 1 ;
-
- my $message = pop ;
- my ($callers_bitmask, $offset, $i) = __chk(@_) ;
-
- return
- unless defined $callers_bitmask &&
- (vec($callers_bitmask, $offset, 1) ||
- vec($callers_bitmask, $Offsets{'all'}, 1)) ;
-
- croak($message)
- if vec($callers_bitmask, $offset+1, 1) ||
- vec($callers_bitmask, $Offsets{'all'}+1, 1) ;
-
- carp($message) ;
-}
-
-1;
diff --git a/Master/xemtex/perl/lib/warnings/register.pm b/Master/xemtex/perl/lib/warnings/register.pm
deleted file mode 100644
index c5dc1999a03..00000000000
--- a/Master/xemtex/perl/lib/warnings/register.pm
+++ /dev/null
@@ -1,51 +0,0 @@
-package warnings::register ;
-
-our $VERSION = '1.00';
-
-=pod
-
-=head1 NAME
-
-warnings::register - warnings import function
-
-=head1 SYNOPSIS
-
- use warnings::register ;
-
-=head1 DESCRIPTION
-
-Create a warnings category with the same name as the current package.
-
-See L<perlmodlib/Pragmatic Modules> and L<perllexwarn>.
-
-
-=cut
-
-require warnings ;
-
-sub mkMask
-{
- my ($bit) = @_ ;
- my $mask = "" ;
-
- vec($mask, $bit, 1) = 1 ;
- return $mask ;
-}
-
-sub import
-{
- shift ;
- my $package = (caller(0))[0] ;
- if (! defined $warnings::Bits{$package}) {
- $warnings::Bits{$package} = mkMask($warnings::LAST_BIT) ;
- vec($warnings::Bits{'all'}, $warnings::LAST_BIT, 1) = 1 ;
- $warnings::Offsets{$package} = $warnings::LAST_BIT ++ ;
- foreach my $k (keys %warnings::Bits) {
- vec($warnings::Bits{$k}, $warnings::LAST_BIT, 1) = 0 ;
- }
- $warnings::DeadBits{$package} = mkMask($warnings::LAST_BIT);
- vec($warnings::DeadBits{'all'}, $warnings::LAST_BIT++, 1) = 1 ;
- }
-}
-
-1 ;
diff --git a/Master/xemtex/perl/site/lib/Tk.pm b/Master/xemtex/perl/site/lib/Tk.pm
deleted file mode 100644
index db05463d66d..00000000000
--- a/Master/xemtex/perl/site/lib/Tk.pm
+++ /dev/null
@@ -1,696 +0,0 @@
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in Tk/license.terms due to partial
-# derivation from Tk8.0 sources.
-#
-package Tk;
-require 5.00404;
-use Tk::Event ();
-use AutoLoader qw(AUTOLOAD);
-use DynaLoader;
-use base qw(Exporter DynaLoader);
-
-*fileevent = \&Tk::Event::IO::fileevent;
-
-BEGIN {
- if($^O eq 'cygwin')
- {
- require Tk::Config;
- $Tk::platform = $Tk::Config::win_arch;
- $Tk::platform = 'unix' if $Tk::platform eq 'x';
- }
- else
- {
- $Tk::platform = ($^O eq 'MSWin32') ? $^O : 'unix';
- }
-};
-
-$Tk::tearoff = 1 if ($Tk::platform eq 'unix');
-
-@EXPORT = qw(Exists Ev exit MainLoop DoOneEvent tkinit);
-@EXPORT_OK = qw(NoOp after *widget *event lsearch catch $XS_VERSION
- DONT_WAIT WINDOW_EVENTS FILE_EVENTS TIMER_EVENTS
- IDLE_EVENTS ALL_EVENTS
- NORMAL_BG ACTIVE_BG SELECT_BG
- SELECT_FG TROUGH INDICATOR DISABLED BLACK WHITE);
-%EXPORT_TAGS = (eventtypes => [qw(DONT_WAIT WINDOW_EVENTS FILE_EVENTS
- TIMER_EVENTS IDLE_EVENTS ALL_EVENTS)],
- variables => [qw(*widget *event)],
- colors => [qw(NORMAL_BG ACTIVE_BG SELECT_BG SELECT_FG
- TROUGH INDICATOR DISABLED BLACK WHITE)],
- );
-
-use strict;
-
-use Carp;
-
-# $tk_version and $tk_patchLevel are reset by pTk when a mainwindow
-# is created, $VERSION is checked by bootstrap
-$Tk::version = '8.0';
-$Tk::patchLevel = '8.0';
-$Tk::VERSION = '800.024';
-$Tk::XS_VERSION = $Tk::VERSION;
-$Tk::strictMotif = 0;
-
-{($Tk::library) = __FILE__ =~ /^(.*)\.pm$/;}
-$Tk::library = Tk->findINC('.') unless (defined($Tk::library) && -d $Tk::library);
-
-$Tk::widget = undef;
-$Tk::event = undef;
-
-use vars qw($inMainLoop);
-
-bootstrap Tk;
-
-my $boot_time = timeofday();
-
-# This is a workround for Solaris X11 locale handling
-Preload(DynaLoader::dl_findfile('-L/usr/openwin/lib','-lX11'))
- if (NeedPreload() && -d '/usr/openwin/lib');
-
-use Tk::Submethods ('option' => [qw(add get clear readfile)],
- 'clipboard' => [qw(clear append)]
- );
-
-sub _backTrace
-{
- my $w = shift;
- my $i = 1;
- my ($pack,$file,$line,$sub) = caller($i++);
- while (1)
- {
- my $loc = "at $file line $line";
- ($pack,$file,$line,$sub) = caller($i++);
- last unless defined($sub);
- return 1 if $sub eq '(eval)';
- $w->AddErrorInfo("$sub $loc");
- }
- return 0;
-}
-
-sub BackTrace
-{
- my $w = shift;
- return unless (@_ || $@);
- my $mess = (@_) ? shift : "$@";
- die "$mess\n" if $w->_backTrace;
- # if we get here we are not in an eval so report now
- $w->Fail($mess);
- $w->idletasks;
- die "$mess\n";
-}
-
-#
-# This is a $SIG{__DIE__} handler which does not change the $@
-# string in the way 'croak' does, but rather add to Tk's ErrorInfo.
-# It stops at 1st enclosing eval on assumption that the eval
-# is part of Tk call process and will add its own context to ErrorInfo
-# and then pass on the error.
-#
-sub __DIE__
-{
- my $mess = shift;
- my $w = $Tk::widget;
- # Note that if a __DIE__ handler returns it re-dies up the chain.
- return unless defined $w;
- return if $w->_backTrace;
- # Not in an eval - should not happen
-}
-
-sub XEvent::xy { shift->Info('xy') }
-
-sub XEvent::AUTOLOAD
-{
- my ($meth) = $XEvent::AUTOLOAD =~ /(\w)$/;
- no strict 'refs';
- *{$XEvent::AUTOLOAD} = sub { shift->Info($meth) };
- goto &$XEvent::AUTOLOAD;
-}
-
-sub NoOp { }
-
-sub Ev
-{
- my @args = @_;
- my $obj;
- if (@args == 1)
- {
- my $arg = pop(@args);
- $obj = (ref $arg) ? $arg : \$arg;
- }
- else
- {
- $obj = \@args;
- }
- return bless $obj,'Tk::Ev';
-}
-
-sub InitClass
-{
- my ($package,$parent) = @_;
- croak "Unexpected type of parent $parent" unless(ref $parent);
- croak "$parent is not a widget" unless($parent->IsWidget);
- my $mw = $parent->MainWindow;
- my $hash = $mw->TkHash('_ClassInit_');
- unless (exists $hash->{$package})
- {
- $package->Install($mw);
- $hash->{$package} = $package->ClassInit($mw);
- }
-}
-
-require Tk::Widget;
-require Tk::Image;
-require Tk::MainWindow;
-
-sub Exists
-{my $w = shift;
- return defined($w) && ref($w) && $w->IsWidget && $w->exists;
-}
-
-sub Time_So_Far
-{
- return timeofday() - $boot_time;
-}
-
-# Selection* are not autoloaded as names are too long.
-
-sub SelectionOwn
-{my $widget = shift;
- selection('own',(@_,$widget));
-}
-
-sub SelectionOwner
-{
- selection('own','-displayof',@_);
-}
-
-sub SelectionClear
-{
- selection('clear','-displayof',@_);
-}
-
-sub SelectionExists
-{
- selection('exists','-displayof',@_);
-}
-
-sub SelectionHandle
-{my $widget = shift;
- my $command = pop;
- selection('handle',@_,$widget,$command);
-}
-
-sub SplitString
-{
- local $_ = shift;
- my (@arr, $tmp);
- while (/\{([^{}]*)\}|((?:[^\s\\]|\\.)+)/gs) {
- if (defined $1) { push @arr, $1 }
- else { $tmp = $2 ; $tmp =~ s/\\([\s\\])/$1/g; push @arr, $tmp }
- }
- # carp '('.join(',',@arr).")";
- return @arr;
-}
-
-sub Methods
-{
- my ($package) = caller;
- no strict 'refs';
- foreach my $meth (@_)
- {
- my $name = $meth;
- *{$package."::$meth"} = sub { shift->WidgetMethod($name,@_) };
- }
-}
-
-
-sub MessageBox {
- my ($kind,%args) = @_;
- require Tk::Dialog;
- my $parent = delete $args{'-parent'};
- my $args = \%args;
-
- $args->{-bitmap} = delete $args->{-icon} if defined $args->{-icon};
- $args->{-text} = delete $args->{-message} if defined $args->{-message};
- $args->{-type} = 'OK' unless defined $args->{-type};
-
- my $type;
- if (defined($type = delete $args->{-type})) {
- delete $args->{-type};
- my @buttons = grep($_,map(ucfirst($_),
- split(/(abort|retry|ignore|yes|no|cancel|ok)/,
- lc($type))));
- $args->{-buttons} = [@buttons];
- $args->{-default_button} = delete $args->{-default} if
- defined $args->{-default};
- if (not defined $args->{-default_button} and scalar(@buttons) == 1) {
- $args->{-default_button} = $buttons[0];
- }
- my $md = $parent->Dialog(%$args);
- my $an = $md->Show;
- $md->destroy;
- return $an;
- }
-} # end messageBox
-
-sub messageBox
-{
- my ($widget,%args) = @_;
- $args{'-type'} = (exists $args{'-type'}) ? lc($args{'-type'}) : 'ok';
- tk_messageBox(-parent => $widget, %args);
-}
-
-sub getOpenFile
-{
- tk_getOpenFile(-parent => shift,@_);
-}
-
-sub getSaveFile
-{
- tk_getSaveFile(-parent => shift,@_);
-}
-
-sub chooseColor
-{
- tk_chooseColor(-parent => shift,@_);
-}
-
-sub DialogWrapper
-{
- my ($method,$kind,%args) = @_;
- my $created = 0;
- my $w = delete $args{'-parent'};
- if (defined $w)
- {
- $args{'-popover'} = $w;
- }
- else
- {
- $w = MainWindow->new;
- $w->withdraw;
- $created = 1;
- }
- my $mw = $w->MainWindow;
- my $fs = $mw->{$kind};
- unless (defined $fs)
- {
- $mw->{$kind} = $fs = $mw->$method(%args);
- }
- else
- {
- $fs->configure(%args);
- }
- my $val = $fs->Show;
- $w->destroy if $created;
- return $val;
-}
-
-sub ColorDialog
-{
- require Tk::ColorEditor;
- DialogWrapper('ColorDialog',@_);
-}
-
-sub FDialog
-{
- require Tk::FBox;
- my $cmd = shift;
- if ($cmd =~ /Save/)
- {
- push @_, -type => 'save';
- }
- DialogWrapper('FBox', $cmd, @_);
-}
-
-*MotifFDialog = \&FDialog;
-
-sub MainLoop
-{
- unless ($inMainLoop)
- {
- local $inMainLoop = 1;
- while (Tk::MainWindow->Count)
- {
- DoOneEvent(0);
- }
- }
-}
-
-sub tkinit { return MainWindow->new(@_) }
-
-# a wrapper on eval which turns off user $SIG{__DIE__}
-sub catch (&)
-{
- my $sub = shift;
- eval {local $SIG{'__DIE__'}; &$sub };
-}
-
-my $Home;
-
-sub TranslateFileName
-{
- local $_ = shift;
- unless (defined $Home)
- {
- $Home = $ENV{'HOME'} || ($ENV{'HOMEDRIVE'}.$ENV{'HOMEPATH'});
- $Home =~ s#\\#/#g;
- $Home .= '/' unless $Home =~ m#/$#;
- }
- s#~/#$Home#g;
- # warn $_;
- return $_;
-}
-
-sub findINC
-{
- my $file = join('/',@_);
- my $dir;
- $file =~ s,::,/,g;
- foreach $dir (@INC)
- {
- my $path;
- return $path if (-e ($path = "$dir/$file"));
- }
- return undef;
-}
-
-sub idletasks
-{
- shift->update('idletasks');
-}
-
-
-1;
-
-__END__
-
-sub Error
-{my $w = shift;
- my $error = shift;
- if (Exists($w))
- {
- my $grab = $w->grab('current');
- $grab->Unbusy if (defined $grab);
- }
- chomp($error);
- warn "Tk::Error: $error\n " . join("\n ",@_)."\n";
-}
-
-sub CancelRepeat
-{
- my $w = shift->MainWindow;
- my $id = delete $w->{_afterId_};
- $w->after('cancel',$id) if (defined $id);
-}
-
-sub RepeatId
-{
- my ($w,$id) = @_;
- $w = $w->MainWindow;
- $w->CancelRepeat;
- $w->{_afterId_} = $id;
-}
-
-
-
-#----------------------------------------------------------------------------
-# focus.tcl --
-#
-# This file defines several procedures for managing the input
-# focus.
-#
-# @(#) focus.tcl 1.6 94/12/19 17:06:46
-#
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-sub FocusChildren { shift->children }
-
-#
-# focusNext --
-# This procedure is invoked to move the input focus to the next window
-# after a given one. "Next" is defined in terms of the window
-# stacking order, with all the windows underneath a given top-level
-# (no matter how deeply nested in the hierarchy) considered except
-# for frames and toplevels.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the next window after this one in the traversal
-# order.
-sub focusNext
-{
- my $w = shift;
- my $cur = $w;
- while (1)
- {
- # Descend to just before the first child of the current widget.
- my $parent = $cur;
- my @children = $cur->FocusChildren();
- my $i = -1;
- # Look for the next sibling that isn't a top-level.
- while (1)
- {
- $i += 1;
- if ($i < @children)
- {
- $cur = $children[$i];
- next if ($cur->toplevel == $cur);
- last
- }
- # No more siblings, so go to the current widget's parent.
- # If it's a top-level, break out of the loop, otherwise
- # look for its next sibling.
- $cur = $parent;
- last if ($cur->toplevel() == $cur);
- $parent = $parent->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- if ($cur == $w || $cur->FocusOK)
- {
- $cur->tabFocus;
- return;
- }
- }
-}
-# focusPrev --
-# This procedure is invoked to move the input focus to the previous
-# window before a given one. "Previous" is defined in terms of the
-# window stacking order, with all the windows underneath a given
-# top-level (no matter how deeply nested in the hierarchy) considered.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the previous window before this one in the traversal
-# order.
-sub focusPrev
-{
- my $w = shift;
- my $cur = $w;
- my @children;
- my $i;
- my $parent;
- while (1)
- {
- # Collect information about the current window's position
- # among its siblings. Also, if the window is a top-level,
- # then reposition to just after the last child of the window.
- if ($cur->toplevel() == $cur)
- {
- $parent = $cur;
- @children = $cur->FocusChildren();
- $i = @children;
- }
- else
- {
- $parent = $cur->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- # Go to the previous sibling, then descend to its last descendant
- # (highest in stacking order. While doing this, ignore top-levels
- # and their descendants. When we run out of descendants, go up
- # one level to the parent.
- while ($i > 0)
- {
- $i--;
- $cur = $children[$i];
- next if ($cur->toplevel() == $cur);
- $parent = $cur;
- @children = $parent->FocusChildren();
- $i = @children;
- }
- $cur = $parent;
- if ($cur == $w || $cur->FocusOK)
- {
- $cur->tabFocus;
- return;
- }
- }
-
-}
-
-sub FocusOK
-{
- my $w = shift;
- my $value;
- catch { $value = $w->cget('-takefocus') };
- if (!$@ && defined($value))
- {
- return 0 if ($value eq '0');
- return $w->viewable if ($value eq '1');
- $value = $w->$value();
- return $value if (defined $value);
- }
- if (!$w->viewable)
- {
- return 0;
- }
- catch { $value = $w->cget('-state') } ;
- if (!$@ && defined($value) && $value eq 'disabled')
- {
- return 0;
- }
- $value = grep(/Key|Focus/,$w->Tk::bind(),$w->Tk::bind(ref($w)));
- return $value;
-}
-
-
-# focusFollowsMouse
-#
-# If this procedure is invoked, Tk will enter "focus-follows-mouse"
-# mode, where the focus is always on whatever window contains the
-# mouse. If this procedure isn't invoked, then the user typically
-# has to click on a window to give it the focus.
-#
-# Arguments:
-# None.
-
-sub EnterFocus
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- my $d = $Ev->d;
- $w->Tk::focus() if ($d eq 'NotifyAncestor' || $d eq 'NotifyNonlinear' || $d eq 'NotifyInferior');
-}
-
-sub tabFocus
-{
- shift->Tk::focus;
-}
-
-sub focusFollowsMouse
-{
- my $widget = shift;
- $widget->bind('all','<Enter>','EnterFocus');
-}
-
-# tkTraverseToMenu --
-# This procedure implements keyboard traversal of menus. Given an
-# ASCII character "char", it looks for a menubutton with that character
-# underlined. If one is found, it posts the menubutton's menu
-#
-# Arguments:
-# w - Window in which the key was typed (selects
-# a toplevel window).
-# char - Character that selects a menu. The case
-# is ignored. If an empty string, nothing
-# happens.
-sub TraverseToMenu
-{
- my $w = shift;
- my $char = shift;
- return unless(defined $char && $char ne '');
- $w = $w->toplevel->FindMenu($char);
-}
-# tkFirstMenu --
-# This procedure traverses to the first menubutton in the toplevel
-# for a given window, and posts that menubutton's menu.
-#
-# Arguments:
-# w - Name of a window. Selects which toplevel
-# to search for menubuttons.
-sub FirstMenu
-{
- my $w = shift;
- $w = $w->toplevel->FindMenu('');
-}
-
-# These wrappers don't use method syntax so need to live
-# in same package as raw Tk routines are newXS'ed into.
-
-sub Selection
-{my $widget = shift;
- my $cmd = shift;
- croak 'Use SelectionOwn/SelectionOwner' if ($cmd eq 'own');
- croak "Use Selection\u$cmd()";
-}
-
-# If we have sub Clipboard in Tk then use base qw(Tk::Clipboard ....)
-# calls it when it does its eval "require $base"
-#sub Clipboard
-#{my $w = shift;
-# my $cmd = shift;
-# croak "Use clipboard\u$cmd()";
-#}
-
-sub Receive
-{
- my $w = shift;
- warn 'Receive(' . join(',',@_) .')';
- die 'Tk rejects send(' . join(',',@_) .")\n";
-}
-
-sub break
-{
- die "_TK_BREAK_\n";
-}
-
-sub updateWidgets
-{
- my ($w) = @_;
- while ($w->DoOneEvent(DONT_WAIT|IDLE_EVENTS|WINDOW_EVENTS))
- {
- }
- $w;
-}
-
-sub ImageNames
-{
- image('names');
-}
-
-sub ImageTypes
-{
- image('types');
-}
-
-sub interps
-{
- my $w = shift;
- return $w->winfo('interps','-displayof');
-}
-
-sub lsearch
-{my $ar = shift;
- my $x = shift;
- my $i;
- for ($i = 0; $i < scalar @$ar; $i++)
- {
- return $i if ($$ar[$i] eq $x);
- }
- return -1;
-}
-
-
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Adjuster.pm b/Master/xemtex/perl/site/lib/Tk/Adjuster.pm
deleted file mode 100644
index 0fd5b4f765a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Adjuster.pm
+++ /dev/null
@@ -1,435 +0,0 @@
-package Tk::Adjuster;
-
-use vars qw($VERSION);
-$VERSION = '3.025'; # $Id: //depot/Tk8/Tk/Adjuster.pm#25 $
-
-use base qw(Tk::Frame);
-
-# We cannot do this :
-
-# Construct Tk::Widget 'packAdjust';
-
-# because if managed object is Derived (e.g. a Scrolled) then our 'new'
-# will be delegated and hierachy gets turned inside-out
-# So packAdjust is autoloaded in Widget.pm
-
-
-Construct Tk::Widget qw(Adjuster);
-
-{package Tk::Adjuster::Item;
-
-use strict;
-use base qw(Tk::Frame);
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<1>',['BDown', 1]);
- $mw->bind($class,'<Shift-1>',['BDown', 0]);
- $mw->bind($class,'<B1-Motion>',['Motion',1]);
- $mw->bind($class,'<Shift-B1-Motion>',['Motion',0]);
- $mw->bind($class,'<ButtonRelease-1>',['Motion',0]);
- return $class;
-}
-
-sub BDown
-{
- my($w, $delay_mask) = @_;
- $w->{'start_x'} = $w->XEvent->x;
- $w->{'start_y'} = $w->XEvent->y;
- my $adj = $w->Parent;
- delete $adj->{'lin_info'};
- my $delay = $delay_mask && $adj->cget('-delay');
- if ($delay)
- {
- $adj->vert ? $adj->delta_width_bar(0) : $adj->delta_height_bar(0);
- }
-}
-
-sub Motion
-{
- my($w, $delay_mask) = @_;
- my $ev = $w->XEvent;
- my $adj = $w->Parent;
-
- my $delay = $delay_mask && $adj->cget('-delay');
- if ($adj->vert)
- {
- my $dx = $ev->x - $w->{'start_x'};
- $delay ? $adj->delta_width_bar($dx) : $adj->delta_width($dx);
- }
- else
- {
- my $dy = $ev->y - $w->{'start_y'};
- $delay ? $adj->delta_height_bar($dy) : $adj->delta_height($dy);
- }
-}
-
-}
-
-
-
-sub packAfter
-{
- my ($w,$s,%args) = @_;
- my $side = $args{'-side'} ? $args{'-side'} : 'top';
- $w->configure(-side => $side, -widget => $s);
- $w->packed($s, %args);
-}
-
-sub packForget
-{
- my ($w,$forget_slave) = @_;
- $w->Tk::Widget::packForget;
- $w->slave->packForget if $forget_slave;
-}
-
-# Called by Tk::Widget::packAdjust. It was here before packAfter was added
-sub packed
-{
- my ($w,$s,%args) = @_;
- delete $args{'-before'};
- $args{'-expand'} = 0;
- $args{'-after'} = $s;
- $args{'-fill'} = (($w->vert) ? 'y' : 'x');
- $w->pack(%args);
-}
-
-sub gridded
-{
- my ($w,$s,%args) = @_;
- # delete $args{'-before'};
- # $args{'-expand'} = 0;
- # $args{'-after'} = $s;
- # $args{'-fill'} = (($w->vert) ? 'y' : 'x');
- $w->grid(%args);
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Configure>','SizeChange');
- $mw->bind($class,'<Unmap>','Restore');
- $mw->bind($class,'<Map>','Mapped');
- return $class;
-}
-
-sub SizeChange
-{
- my $w = shift;
- # reqwidth/height of Adjuster is stored here. If it is partially pushed out
- # of the window, then $w->width/height returns that of the visible part.
- if ($w->vert)
- {
- my $sx = ($w->Width - $w->{'sep'}->Width)/2;
- $w->{'but'}->place('-x' => 0, '-y' => $w->Height-18);
- $w->{'sep'}->place('-x' => $sx, '-y' => 0, -relheight => 1);
- $w->configure(-width => $w->{'but'}->ReqWidth);
- $w->{'reqwidth'} = $w->reqwidth;
- }
- else
- {
- my $sy = ($w->Height - $w->{'sep'}->Height)/2;
- $w->{'but'}->place('-x' => $w->Width-18, '-y' => 0);
- $w->{'sep'}->place('-x' => 0, '-y' => $sy, -relwidth => 1);
- $w->configure(-height => $w->{'but'}->ReqHeight);
- $w->{'reqheight'} = $w->reqheight;
- }
- # Turn off geometry propagation in the slave. Do only if necessary, as this
- # causes repacking.
- my $s = $w->slave;
- $s->packPropagate('0') if $s->packSlaves && $s->packPropagate();
- $s->gridPropagate('0') if $s->gridSlaves && $s->gridPropagate();
-}
-
-sub Mapped
-{
- my $w = shift;
- $w->idletasks;
- my $m = $w->manager;
- if ($m =~ /^(?:pack|grid)$/)
- {
- my %info = $w->$m('info');
- my $master = $info{'-in'};
- $master->$m('propagate',0);
- $w->{'master'} = $master;
- }
- $w->slave_expand_off;
-}
-
-sub Populate
-{
- my ($w,$args) = @_;
- $w->SUPER::Populate($args);
- $w->{'sep'} = Tk::Adjuster::Item->new($w,-bd => 1, -relief => 'sunken');
- $w->{'but'} = Tk::Adjuster::Item->new($w,-bd => 1, -width => 8, -height => 8, -relief => 'raised');
-
- # Need to explicitly set frame width to 0 for Win32
- my $l = $w->{'lin'} = $w->toplevel->Frame(-bd => 0);
-
- my $cs = $w->ConfigSpecs(-widget => ['PASSIVE','widget','Widget',$w->Parent],
- -side => ['METHOD','side','Side','top'],
- -delay => ['PASSIVE','delay','Delay', 1],
- -background => [['SELF',$w->{'sep'},$w->{'but'}],'background','Background',undef],
- -foreground => [Tk::Configure->new($w->{'lin'},'-background'),'foreground','Foreground','black'],
- -restore => ['PASSIVE','restore', 'Restore', 1],
- );
- $w->_OnDestroy(qw(sep but lin master));
-}
-
-sub side
-{
- my ($w,$val) = @_;
- if (@_ > 1)
- {
- $w->{'side'} = $val;
- my $cursor;
- if ($w->vert)
- {
- $cursor = 'sb_h_double_arrow';
- $w->{'sep'}->configure(-width => 2, -height => 10000);
- }
- else
- {
- $cursor = 'sb_v_double_arrow';
- $w->{'sep'}->configure(-height => 2, -width => 10000);
- }
- my $x;
- foreach $x ($w->{'sep'},$w->{'but'})
- {
- $x->configure(-cursor => $cursor);
- }
- }
- return $w->{'side'};
-}
-
-sub slave
-{
- my $w = shift;
- my $s = $w->cget('-widget');
- return $s;
-}
-
-sub vert
-{
- my $w = shift;
- my $side = $w->cget('-side');
- return 1 if $side eq 'left';
- return -1 if $side eq 'right';
- return 0;
-}
-
-# If the Adjuster gets unmapped, it attempts to restore itself. If its
-# slave is mapped, then it reduces the size of the slave so that there is
-# then room in the master for the Adjuster widget.
-sub Restore
-{
- my $w = shift;
- return if ! $w->toplevel->IsMapped ||
- ! $w->slave->IsMapped ||
- ! $w->cget('-restore');
- $w->vert ? $w->delta_width(0) : $w->delta_height(0);
-}
-
-sub delta_width_bar
-{
- my ($w,$dx) = @_;
- my $l = $w->{'lin'};
- my $r = $w->{'sep'};
- my $t = $w->toplevel;
- my $m = $w->{'master'};
- my $s = $w->slave;
- my ($min_rootx, $max_rootx, $t_border);
- if (! $w->{'lin_info'})
- {
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- $t_border = $t->cget('-bd') + $t->cget('-highlightthickness');
- if ($w->cget('-side') eq 'right')
- {
- $min_rootx = $m->rootx + $m_border;
- $max_rootx = $s->rootx + $s->width - 1;
- }
- else
- {
- $min_rootx = $s->rootx;
- $max_rootx = $m->rootx + $m->width - $m_border - 1;
- }
- $w->{'lin_info'} = [$min_rootx, $max_rootx, $t_border];
- }
- else
- {
- ($min_rootx, $max_rootx, $t_border) = @{$w->{'lin_info'}};
- }
- $l->configure(-width => 1, -height => $w->height) unless $l->IsMapped;
-
- my $new_rootx = $w->rootx + $w->{'reqwidth'}/2 + $dx;
- $new_rootx = $min_rootx if $new_rootx < $min_rootx;
- $new_rootx = $max_rootx if $new_rootx > $max_rootx;
- my $placex = $new_rootx - $t->rootx - $t_border;
- my $placey = $w->rooty - $t->rooty - $t_border;
- $l->place(-in => $t, -anchor => 'n', '-x' => $placex, '-y' => $placey);
- my $this = $w->containing($new_rootx, $w->rooty + 1);
- $l->raise($this) if $this && $this ne $t;
-}
-
-sub delta_width
-{
- my ($w,$dx) = @_;
- my $l = $w->{'lin'};
- $l->placeForget;
- my $s = $w->slave;
- if ($s)
- {
- my $m = $w->{'master'};
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- my $w_width = $w->{'reqwidth'};
- my $m_width = $m->width;
- my $s_width = $s->width;
- my $max_width = $m_width - $w_width;
- my $max_s_width;
- if ($w->cget('-side') eq 'right')
- {
- $dx = -$dx;
- $max_s_width = $max_width -
- ($m->rootx + $m_width - ($s->rootx+$s_width)) - $m_border;
- }
- else
- {
- $max_s_width = $max_width - ($s->rootx - $m->rootx) - $m_border;
- }
- my $new_width = $s_width+$dx;
- $new_width = $max_s_width if $new_width > $max_s_width;
- $new_width = 0 if $new_width < 0;
- $s->GeometryRequest($new_width, $s->height);
- }
-}
-
-sub delta_height_bar
-{
- my ($w,$dy) = @_;
- my $l = $w->{'lin'};
- my $r = $w->{'sep'};
- my $t = $w->toplevel;
- my $m = $w->{'master'};
- my $s = $w->slave;
- my ($min_rooty, $max_rooty, $t_border);
- if (! $w->{'lin_info'})
- {
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- $t_border = $t->cget('-bd') + $t->cget('-highlightthickness');
- if ($w->cget('-side') eq 'bottom')
- {
- $min_rooty = $m->rooty + $m_border;
- $max_rooty = $s->rooty + $s->height - 1;
- }
- else
- {
- $min_rooty = $s->rooty;
- $max_rooty = $m->rooty + $m->height - $m_border - 1;
- }
- $w->{'lin_info'} = [$min_rooty, $max_rooty, $t_border];
- }
- else
- {
- ($min_rooty, $max_rooty, $t_border) = @{$w->{'lin_info'}};
- }
- $l->configure(-height => 1, -width => $w->width) unless $l->IsMapped;
-
- my $new_rooty = $w->rooty + $w->{'reqheight'}/2 + $dy;
- $new_rooty = $min_rooty if $new_rooty < $min_rooty;
- $new_rooty = $max_rooty if $new_rooty > $max_rooty;
- my $placey = $new_rooty - $t->rooty - $t_border;
- my $placex = $w->rootx - $t->rootx - $t_border;
- $l->place(-in => $t, -anchor => 'w', '-x' => $placex, '-y' => $placey);
- my $this = $w->containing($w->rootx + 1, $new_rooty);
- $l->raise($this) if $this && $this ne $t;
-}
-
-sub delta_height
-{
- my ($w,$dy) = @_;
- my $l = $w->{'lin'};
- $l->placeForget;
- my $s = $w->slave;
- if ($s)
- {
- my $m = $w->{'master'};
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- my $w_height = $w->{'reqheight'};
- my $m_height = $m->height;
- my $s_height = $s->height;
- my $max_height = $m_height - $w_height;
- my $max_s_height;
- if ($w->cget('-side') eq 'bottom')
- {
- $dy = -$dy;
- $max_s_height = $max_height -
- ($m->rooty + $m_height - ($s->rooty+$s_height)) - $m_border;
- }
- else
- {
- $max_s_height = $max_height - ($s->rooty - $m->rooty) - $m_border;
- }
- my $new_height = $s_height+$dy;
-
- $new_height = $max_s_height if $new_height > $max_s_height;
- $new_height = 0 if $new_height < 0;
- $s->GeometryRequest($s->width, $new_height);
- }
-}
-
-# Turn off expansion in the slave.
-# This is done only if necessary, as calls to pack/gridConfigure cause
-# repacking.
-# Before call to pack/gridConfigure, the reqwidth/reqheight is set to the
-# current width/height. This is because the geometry managers use
-# the requested values, not the actual, to calculate the new geometry.
-sub slave_expand_off
-{
- my $w = shift;
- my $s = $w->slave;
- return if ! $s;
-
- my $manager = $s->manager;
- if ($manager eq 'pack')
- {
- my %info = $s->packInfo;
- my $expand = $info{'-expand'};
- if ($expand)
- {
- $s->GeometryRequest($s->width, $s->height);
- $s->packConfigure(-expand => 0);
- }
- }
- elsif ($manager eq 'grid')
- {
- my %info = $s->gridInfo;
- my $master = $info{'-in'};
- if ($w->vert)
- {
- my $col = $info{'-column'};
- my $expand = $master->gridColumnconfigure($col, '-weight');
- if ($expand)
- {
- $s->GeometryRequest($s->width, $s->height);
- $master->gridColumnconfigure($col, -weight => 0);
- }
- }
- else
- {
- my $row = $info{'-row'};
- my $expand = $master->gridRowconfigure($row, '-weight');
- if ($expand)
- {
- $s->GeometryRequest($s->width, $s->height);
- $master->gridRowconfigure($row, -weight => 0);
- }
- }
- }
-}
-
-1;
-
-__END__
-
-=cut #' emacs hilighting...
diff --git a/Master/xemtex/perl/site/lib/Tk/After.pm b/Master/xemtex/perl/site/lib/Tk/After.pm
deleted file mode 100644
index e5eac8b20a8..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/After.pm
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::After;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '3.015'; # $Id: //depot/Tk8/Tk/After.pm#15 $
-
-sub _cancelAll
-{
- my $w = shift;
- my $h = delete $w->{_After_};
- foreach my $obj (values %$h)
- {
- # carp "Auto cancel ".$obj->[1]." for ".$obj->[0]->PathName;
- $obj->cancel;
- }
-}
-
-sub submit
-{
- my $obj = shift;
- my $w = $obj->[0];
- my $id = $obj->[1];
- my $t = $obj->[2];
- my $method = $obj->[3];
- delete($w->{_After_}{$id}) if (defined $id);
- $id = $w->Tk::after($t,[$method => $obj]);
- unless (exists $w->{_After_})
- {
- $w->{_After_} = {};
- $w->OnDestroy([\&_cancelAll, $w]);
- }
- $w->{_After_}{$id} = $obj;
- $obj->[1] = $id;
- return $obj;
-}
-
-sub DESTROY
-{
- my $obj = shift;
- @{$obj} = ();
-}
-
-sub new
-{
- my ($class,$w,$t,$method,@cb) = @_;
- my $cb = (@cb == 1) ? shift(@cb) : [@cb];
- my $obj = bless [$w,undef,$t,$method,Tk::Callback->new($cb)],$class;
- return $obj->submit;
-}
-
-sub cancel
-{
- my $obj = shift;
- my $id = $obj->[1];
- my $w = $obj->[0];
- if ($id)
- {
- $w->Tk::after('cancel'=> $id);
- delete $w->{_After_}{$id} if exists $w->{_After_};
- $obj->[1] = undef;
- }
- return $obj;
-}
-
-sub repeat
-{
- my $obj = shift;
- $obj->submit;
- local $Tk::widget = $obj->[0];
- $obj->[4]->Call;
-}
-
-sub once
-{
- my $obj = shift;
- my $w = $obj->[0];
- my $id = $obj->[1];
- delete $w->{_After_}{$id};
- local $Tk::widget = $w;
- $obj->[4]->Call;
-}
-
-1;
-__END__
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Bitmap.pm b/Master/xemtex/perl/site/lib/Tk/Bitmap.pm
deleted file mode 100644
index da563ffa6cb..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Bitmap.pm
+++ /dev/null
@@ -1,18 +0,0 @@
-package Tk::Bitmap;
-require Tk;
-import Tk qw($XS_VERSION);
-require Tk::Image;
-
-use vars qw($VERSION);
-$VERSION = '3.010'; # $Id: //depot/Tk8/Bitmap/Bitmap.pm#10 $
-
-use base qw(Tk::Image);
-
-Construct Tk::Image 'Bitmap';
-
-bootstrap Tk::Bitmap;
-
-sub Tk_image { 'bitmap' }
-
-1;
-__END__
diff --git a/Master/xemtex/perl/site/lib/Tk/Button.pm b/Master/xemtex/perl/site/lib/Tk/Button.pm
deleted file mode 100644
index b0983ead7c3..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Button.pm
+++ /dev/null
@@ -1,148 +0,0 @@
-package Tk::Button;
-# Conversion from Tk4.0 button.tcl competed.
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-use vars qw($VERSION);
-$VERSION = '3.014'; # $Id: //depot/Tk8/Tk/Button.pm#14 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-use strict;
-
-require Tk::Widget;
-use base qw(Tk::Widget);
-
-use vars qw($buttonWindow $relief);
-
-Tk::Methods('deselect','flash','invoke','select','toggle');
-
-sub Tk_cmd { \&Tk::button }
-
-Construct Tk::Widget 'Button';
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', 'Leave');
- $mw->bind($class,'<1>', 'butDown');
- $mw->bind($class,'<ButtonRelease-1>', 'butUp');
- $mw->bind($class,'<space>', 'Invoke');
- $mw->bind($class,'<Return>', 'Invoke');
- return $class;
-}
-
-# tkButtonEnter --
-# The procedure below is invoked when the mouse pointer enters a
-# button widget. It records the button we're in and changes the
-# state of the button to active unless the button is disabled.
-#
-# Arguments:
-# w - The name of the widget.
-
-sub Enter
-{
- my $w = shift;
- my $E = shift;
- if ($w->cget('-state') ne 'disabled')
- {
- $w->configure('-state' => 'active');
- $w->configure('-state' => 'active', '-relief' => 'sunken') if (defined($buttonWindow) && $w == $buttonWindow)
- }
- $Tk::window = $w;
-}
-
-# tkButtonLeave --
-# The procedure below is invoked when the mouse pointer leaves a
-# button widget. It changes the state of the button back to
-# inactive. If we're leaving the button window with a mouse button
-# pressed (tkPriv(buttonWindow) == $w), restore the relief of the
-# button too.
-#
-# Arguments:
-# w - The name of the widget.
-sub Leave
-{
- my $w = shift;
- $w->configure('-state'=>'normal') if ($w->cget('-state') ne 'disabled');
- $w->configure('-relief' => $relief) if (defined($buttonWindow) && $w == $buttonWindow);
- undef $Tk::window;
-}
-
-# tkButtonDown --
-# The procedure below is invoked when the mouse button is pressed in
-# a button widget. It records the fact that the mouse is in the button,
-# saves the button's relief so it can be restored later, and changes
-# the relief to sunken.
-#
-# Arguments:
-# w - The name of the widget.
-sub butDown
-{
- my $w = shift;
- $relief = $w->cget('-relief');
- if ($w->cget('-state') ne 'disabled')
- {
- $buttonWindow = $w;
- $w->configure('-relief' => 'sunken')
- }
-}
-
-# tkButtonUp --
-# The procedure below is invoked when the mouse button is released
-# in a button widget. It restores the button's relief and invokes
-# the command as long as the mouse hasn't left the button.
-#
-# Arguments:
-# w - The name of the widget.
-sub butUp
-{
- my $w = shift;
- if (defined($buttonWindow) && $buttonWindow == $w)
- {
- undef $buttonWindow;
- $w->configure('-relief' => $relief);
- if ($w->IS($Tk::window) && $w->cget('-state') ne 'disabled')
- {
- $w->invoke;
- }
- }
-}
-
-# tkButtonInvoke --
-# The procedure below is called when a button is invoked through
-# the keyboard. It simulate a press of the button via the mouse.
-#
-# Arguments:
-# w - The name of the widget.
-sub Invoke
-{
- my $w = shift;
- if ($w->cget('-state') ne 'disabled')
- {
- my $oldRelief = $w->cget('-relief');
- my $oldState = $w->cget('-state');
- $w->configure('-state' => 'active', '-relief' => 'sunken');
- $w->idletasks;
- $w->after(100);
- $w->configure('-state' => $oldState, '-relief' => $oldRelief);
- $w->invoke;
- }
-}
-
-
-
-1;
-
-__END__
-
-
-
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Camel.xpm b/Master/xemtex/perl/site/lib/Tk/Camel.xpm
deleted file mode 100644
index ba33c0149ec..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Camel.xpm
+++ /dev/null
@@ -1,41 +0,0 @@
-/* XPM */
-static char *Camel[] = {
-/* width height num_colors chars_per_pixel */
-" 32 32 2 1",
-/* colors */
-". c #ffffff",
-"# c #7f7f00",
-/* pixels */
-"................................",
-"................................",
-"...................###..........",
-".......####......######.........",
-"....####.##.....########........",
-"....########....#########.......",
-"......######..###########.......",
-"......#####..#############......",
-".....######.##############......",
-".....######.###############.....",
-".....######################.....",
-".....#######################....",
-".....#######################....",
-"......#######################...",
-".......####################.#...",
-"........###################.#...",
-"........###############.###.#...",
-"............#######.###.###.#...",
-"............###.###.##...##.....",
-"............###.###..#...##.....",
-"............##.####..#....#.....",
-"............##.###...#....#.....",
-"............##.##...#.....#.....",
-"............#...#...#.....#.....",
-"............#....#..#.....#.....",
-"............#.....#.#.....#.....",
-"............#.....###.....#.....",
-"...........##....##.#....#......",
-"...........#..............#.....",
-".........###.............#......"
-"................................",
-"................................",
-};
diff --git a/Master/xemtex/perl/site/lib/Tk/Canvas.pm b/Master/xemtex/perl/site/lib/Tk/Canvas.pm
deleted file mode 100644
index e1ce78b6a93..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Canvas.pm
+++ /dev/null
@@ -1,60 +0,0 @@
-package Tk::Canvas;
-use vars qw($VERSION);
-$VERSION = '3.018'; # $Id: //depot/Tk8/Canvas/Canvas.pm#18 $
-
-use Tk qw($XS_VERSION);
-
-use base qw(Tk::Widget);
-Construct Tk::Widget 'Canvas';
-
-bootstrap Tk::Canvas;
-
-sub Tk_cmd { \&Tk::canvas }
-
-Tk::Methods('addtag','bbox','bind','canvasx','canvasy','coords','create',
- 'dchars','delete','dtag','find','focus','gettags','icursor',
- 'index','insert','itemcget','itemconfigure','lower','move',
- 'postscript','raise','scale','scan','select','type','xview','yview');
-
-use Tk::Submethods ( 'create' => [qw(arc bitmap grid group image line oval
- polygon rectangle text window)],
- 'scan' => [qw(mark dragto)],
- 'select' => [qw(from clear item to)],
- 'xview' => [qw(moveto scroll)],
- 'yview' => [qw(moveto scroll)],
- );
-
-*CanvasBind = \&Tk::bind;
-*CanvasFocus = \&Tk::focus;
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->XYscrollBind($class);
- return $class;
-}
-
-sub BalloonInfo
-{
- my ($canvas,$balloon,$X,$Y,@opt) = @_;
- my @tags = ($canvas->find('withtag', 'current'),$canvas->gettags('current'));
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$canvas);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'HASH'))
- {
- $balloon->Subclient($tags[0]);
- foreach my $tag (@tags)
- {
- return $info->{$tag} if exists $info->{$tag};
- }
- return '';
- }
- return $info;
- }
-}
-
-
-
-1;
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Checkbutton.pm b/Master/xemtex/perl/site/lib/Tk/Checkbutton.pm
deleted file mode 100644
index e5c43f15f24..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Checkbutton.pm
+++ /dev/null
@@ -1,42 +0,0 @@
-package Tk::Checkbutton;
-# Conversion from Tk4.0 button.tcl competed.
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-
-use vars qw($VERSION);
-$VERSION = '3.011'; # $Id: //depot/Tk8/Tk/Checkbutton.pm#11 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-require Tk::Widget;
-require Tk::Button;
-
-use base qw(Tk::Button);
-
-Construct Tk::Widget 'Checkbutton';
-
-sub Tk_cmd { \&Tk::checkbutton }
-
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', 'Leave');
- $mw->bind($class,'<1>', 'Invoke');
- $mw->bind($class,'<space>', 'Invoke');
- return $class;
-}
-
-sub Invoke
-{
- my $w = shift;
- $w->invoke() unless($w->cget('-state') eq 'disabled');
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Clipboard.pm b/Master/xemtex/perl/site/lib/Tk/Clipboard.pm
deleted file mode 100644
index 6990b371f58..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Clipboard.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Clipboard;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '3.016'; # $Id: //depot/Tk8/Tk/Clipboard.pm#16 $
-
-use AutoLoader qw(AUTOLOAD);
-use Tk qw(catch);
-
-sub clipEvents
-{
- return qw[Copy Cut Paste];
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- foreach my $op ($class->clipEvents)
- {
- $mw->Tk::bind($class,"<<$op>>","clipboard$op");
- }
- return $class;
-}
-
-sub clipboardSet
-{
- my $w = shift;
- $w->clipboardClear;
- $w->clipboardAppend(@_);
-}
-
-sub clipboardCopy
-{
- my $w = shift;
- my $val = $w->getSelected;
- if (defined $val)
- {
- $w->clipboardSet('--',$val);
- }
- return $val;
-}
-
-sub clipboardCut
-{
- my $w = shift;
- my $val = $w->clipboardCopy;
- if (defined $val)
- {
- $w->deleteSelected;
- }
- return $val;
-}
-
-sub clipboardGet
-{
- my $w = shift;
- $w->SelectionGet('-selection','CLIPBOARD',@_);
-}
-
-sub clipboardPaste
-{
- my $w = shift;
- local $@;
- catch { $w->insert('insert',$w->clipboardGet)};
-}
-
-sub clipboardOperations
-{
- my @class = ();
- my $mw = shift;
- if (ref $mw)
- {
- $mw = $mw->DelegateFor('bind');
- }
- else
- {
- push(@class,$mw);
- $mw = shift;
- }
- while (@_)
- {
- my $op = shift;
- $mw->Tk::bind(@class,"<<$op>>","clipboard$op");
- }
-}
-
-# These methods work for Entry and Text
-# and can be overridden where they don't work
-
-sub deleteSelected
-{
- my $w = shift;
- catch { $w->delete('sel.first','sel.last') };
-}
-
-
-1;
-__END__
-
-sub getSelected
-{
- my $w = shift;
- my $val = Tk::catch { $w->get('sel.first','sel.last') };
- return $val;
-}
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/CmdLine.pm b/Master/xemtex/perl/site/lib/Tk/CmdLine.pm
deleted file mode 100644
index 09d4da9c41d..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/CmdLine.pm
+++ /dev/null
@@ -1,954 +0,0 @@
-package Tk::CmdLine; # -*-Perl-*-
-
-#/----------------------------------------------------------------------------//
-#/ Module: Tk/CmdLine.pm
-#/
-#/ Purpose:
-#/
-#/ Process standard X11 command line options and set initial resources.
-#/
-#/ Author: ???? Date: ????
-#/
-#/ History: SEE POD
-#/----------------------------------------------------------------------------//
-
-use vars qw($VERSION);
-$VERSION = '3.030'; # $Id: //depot/Tk8/Tk/CmdLine.pm#30 $
-
-use 5.004;
-
-use strict;
-
-use Config;
-
-my $OBJECT = undef; # define the current object
-
-#/----------------------------------------------------------------------------//
-#/ Constructor
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub new # Tk::CmdLine::new()
-{
- my $this = shift(@_);
- my $class = ref($this) || $this;
-
- my $name = 'pTk';
- $name = $1 if (($0 =~ m/(?:^|[\/\\])([\w-]+)(?:\.\w+)?$/) && ($1 ne '-e'));
-
- my $self = {
- name => $name,
- config => { -name => $name },
- options => {},
- methods => {},
- command => [],
- synchronous => 0,
- iconic => 0,
- motif => ($Tk::strictMotif || 0),
- resources => {} };
-
- return bless($self, $class);
-}
-
-#/----------------------------------------------------------------------------//
-#/ Process the arguments in a given array or in @ARGV.
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub Argument_ # Tk::CmdLine::Argument_($flag) # private method
-{
- my $self = shift(@_);
- my $flag = shift(@_);
- unless ($self->{offset} < @{$self->{argv}})
- {
- die 'Usage: ', $self->{name}, ' ... ', $flag, " <argument> ...\n";
- }
- return splice(@{$self->{argv}}, $self->{offset}, 1);
-}
-
-sub Config_ # Tk::CmdLine::Config_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- push(@{$self->{command}}, $flag, $val);
- $self->{config}->{"-$name"} = $val;
-}
-
-sub Flag_ # Tk::CmdLine::Flag_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- push(@{$self->{command}}, $flag);
- $self->{$name} = 1;
-}
-
-sub Option_ # Tk::CmdLine::Option_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- push(@{$self->{command}}, $flag, $val);
- $self->{options}->{"*$name"} = $val;
-}
-
-sub Method_ # Tk::CmdLine::Method_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- push(@{$self->{command}}, $flag, $val);
- $self->{methods}->{$name} = $val;
-}
-
-sub Resource_ # Tk::CmdLine::Resource_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- if ($val =~ /^([^!:\s]+)*\s*:\s*(.*)$/)
- {
- push(@{$self->{command}}, $flag, $val);
- $self->{options}->{$1} = $2;
- }
-}
-
-my %Method = (
- background => 'Option_',
- bg => 'background', # alias
- class => 'Config_',
- display => 'screen', # alias
- fg => 'foreground', # alias
- fn => 'font', # alias
- font => 'Option_',
- foreground => 'Option_',
- geometry => 'Method_',
- iconic => 'Flag_',
- iconposition => 'Method_',
- motif => 'Flag_',
- name => 'Config_',
- screen => 'Config_',
- synchronous => 'Flag_',
- title => 'Config_',
- xrm => 'Resource_'
-);
-
-sub SetArguments # Tk::CmdLine::SetArguments([@argument])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
- $self->{argv} = (@_ ? [ @_ ] : \@ARGV);
- $self->{offset} = 0; # its existence will denote that this method has been called
-
- my @option = ();
-
- while ($self->{offset} < @{$self->{argv}})
- {
- last if ($self->{argv}->[$self->{offset}] eq '--');
- unless (
- (($self->{argv}->[$self->{offset}] =~ /^-{1,2}(\w+)$/) && (@option = $1)) ||
- (($self->{argv}->[$self->{offset}] =~ /^--(\w+)=(.*)$/) && (@option = ($1, $2))))
- {
- ++$self->{offset};
- next;
- }
-
- next if (!exists($Method{$option[0]}) && ++$self->{offset});
-
- $option[0] = $Method{$option[0]} if exists($Method{$Method{$option[0]}});
-
- my $method = $Method{$option[0]};
-
- if (@option > 1) # replace --<option>=<value> with <value>
- {
- $self->{argv}->[$self->{offset}] = $option[1];
- }
- else # remove the argument
- {
- splice(@{$self->{argv}}, $self->{offset}, 1);
- }
-
- $self->$method(('-' . $option[0]), $option[0]);
- }
-
- $self->{config}->{-class} ||= ucfirst($self->{config}->{-name});
-
- delete($self->{argv}); # no longer needed
-
- return $self;
-}
-
-use vars qw(&process); *process = \&SetArguments; # alias to keep old code happy
-
-#/----------------------------------------------------------------------------//
-#/ Get a list of the arguments that have been processed by SetArguments().
-#/ Returns an array.
-#/----------------------------------------------------------------------------//
-
-sub GetArguments # Tk::CmdLine::GetArguments()
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- return @{$self->{command}};
-}
-
-#/----------------------------------------------------------------------------//
-#/ Get the value of a configuration option (default: -class).
-#/ Returns the option value.
-#/----------------------------------------------------------------------------//
-
-sub cget # Tk::CmdLine::cget([$option])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
- my $option = shift(@_) || '-class';
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- return (exists($self->{config}->{$option}) ? $self->{config}->{$option} : undef);
-}
-
-#/----------------------------------------------------------------------------//
-
-sub CreateArgs # Tk::CmdLine::CreateArgs()
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- return $self->{config};
-}
-
-#/----------------------------------------------------------------------------//
-
-sub Tk::MainWindow::apply_command_line
-{
- my $mw = shift(@_);
-
- my $self = ($OBJECT ||= __PACKAGE__->new());
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- foreach my $priority (keys(%{$self->{resources}}))
- {
- foreach my $resource (@{$self->{resources}->{$priority}})
- {
- $mw->optionAdd(@{$resource}, $priority);
- }
- }
-
- foreach my $key (keys(%{$self->{options}}))
- {
- $mw->optionAdd($key => $self->{options}->{$key}, 'interactive');
- }
-
- foreach my $key (keys(%{$self->{methods}}))
- {
- $mw->$key($self->{methods}->{$key});
- }
-
- if ($self->{methods}->{geometry})
- {
- if ($self->{methods}->{geometry} =~ /[+-]\d+[+-]\d+/)
- {
- $mw->positionfrom('user');
- }
- if ($self->{methods}->{geometry} =~ /\d+x\d+/)
- {
- $mw->sizefrom('user');
- }
- delete $self->{methods}->{geometry}; # XXX needed?
- }
-
- $mw->Synchronize() if $self->{synchronous};
-
- if ($self->{iconic})
- {
- $mw->iconify();
- $self->{iconic} = 0;
- }
-
- $Tk::strictMotif = ($self->{motif} || 0);
-
- # Both these are needed to reliably save state
- # but 'hostname' is tricky to do portably.
- # $mw->client(hostname());
- $mw->protocol('WM_SAVE_YOURSELF' => ['WMSaveYourself',$mw]);
- $mw->command([ $self->{name}, @{$self->{command}} ]);
-}
-
-#/----------------------------------------------------------------------------//
-#/ Set the initial resources.
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub SetResources # Tk::CmdLine::SetResources((\@resource | $resource) [, $priority])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
- return $self unless @_;
-
- my $data = shift(@_);
- my $priority = shift(@_) || 'userDefault';
-
- $self->{resources}->{$priority} = [] unless exists($self->{resources}->{$priority});
-
- foreach my $resource ((ref($data) eq 'ARRAY') ? @{$data} : $data)
- {
- if (ref($resource) eq 'ARRAY') # resources in [ <pattern>, <value> ] format
- {
- push(@{$self->{resources}->{$priority}}, [ @{$resource} ])
- if (@{$resource} == 2);
- }
- else # resources in resource file format
- {
- push(@{$self->{resources}->{$priority}}, [ $1, $2 ])
- if ($resource =~ /^([^!:\s]+)*\s*:\s*(.*)$/);
- }
- }
-
- return $self;
-}
-
-#/----------------------------------------------------------------------------//
-#/ Load initial resources from one or more files (default: $XFILESEARCHPATH with
-#/ priority 'startupFile' and $XUSERFILESEARCHPATH with priority 'userDefault').
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub LoadResources # Tk::CmdLine::LoadResources([%options])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- my %options = @_;
-
- my @file = ();
- my $echo = (exists($options{-echo})
- ? (defined($options{-echo}) ? $options{-echo} : \*STDOUT) : undef);
-
- unless (%options && (exists($options{-file}) || exists($options{-symbol})))
- {
- @file = (
- { -symbol => 'XFILESEARCHPATH', -priority => 'startupFile' },
- { -symbol => 'XUSERFILESEARCHPATH', -priority => 'userDefault' } );
- }
- else
- {
- @file = { %options };
- }
-
- my $delimiter = (($^O eq 'MSWin32') ? ';' : ':');
-
- foreach my $file (@file)
- {
- my $fileSpec = $file->{-spec} = undef;
- if (exists($file->{-symbol}))
- {
- my $xpath = undef;
- if ($file->{-symbol} eq 'XUSERFILESEARCHPATH')
- {
- $file->{-priority} ||= 'userDefault';
- foreach my $symbol (qw(XUSERFILESEARCHPATH XAPPLRESDIR HOME))
- {
- last if (exists($ENV{$symbol}) && ($xpath = $ENV{$symbol}));
- }
- next unless defined($xpath);
- }
- else
- {
- $file->{-priority} ||= (($file->{-symbol} eq 'XFILESEARCHPATH')
- ? 'startupFile' : 'userDefault');
- next unless (
- exists($ENV{$file->{-symbol}}) && ($xpath = $ENV{$file->{-symbol}}));
- }
-
- unless (exists($self->{translation}))
- {
- $self->{translation} = {
- '%l' => '', # ignored
- '%C' => '', # ignored
- '%S' => '', # ignored
- '%L' => ($ENV{LANG} || 'C'), # language
- '%T' => 'app-defaults', # type
- '%N' => $self->{config}->{-class} # filename
- };
- }
-
- my @postfix = map({ $_ . '/' . $self->{config}->{-class} }
- ('/' . $self->{translation}->{'%L'}), '');
-
- ITEM: foreach $fileSpec (split($Config{path_sep}, $xpath))
- {
- if ($fileSpec =~ s/(%[A-Za-z])/$self->{translation}->{$1}/g) # File Pattern
- {
- if (defined($echo) && ($file->{-symbol} ne 'XFILESEARCHPATH'))
- {
- print $echo 'Checking ', $fileSpec, "\n";
- }
- next unless ((-f $fileSpec) && (-r _) && (-s _));
- $file->{-spec} = $fileSpec;
- last;
- }
- else # Directory - Check for <Directory>/$LANG/<Class>, <Directory>/<CLASS>
- {
- foreach my $postfix (@postfix)
- {
- my $fileSpec2 = $fileSpec . $postfix;
- if (defined($echo) && ($file->{-symbol} ne 'XFILESEARCHPATH'))
- {
- print $echo 'Checking ', $fileSpec2, "\n";
- }
- next unless ((-f $fileSpec2) && (-r _) && (-s _));
- $file->{-spec} = $fileSpec2;
- last ITEM;
- }
- }
- }
- }
- elsif (exists($file->{-file}) && ($fileSpec = $file->{-file}))
- {
- print $echo 'Checking ', $fileSpec, "\n" if defined($echo);
- next unless ((-f $fileSpec) && (-r _) && (-s _));
- $file->{-spec} = $fileSpec;
- }
- }
-
- foreach my $file (@file)
- {
- next unless defined($file->{-spec});
- local *SPEC;
- next unless open(SPEC,$file->{-spec});
- print $echo ' Loading ', $file->{-spec}, "\n" if defined($echo);
-
- my $resource = undef;
- my @resource = ();
- my $continuation = 0;
-
- while (defined(my $line = <SPEC>))
- {
- chomp($line);
- next if ($line =~ /^\s*$/); # skip blank lines
- next if ($line =~ /^\s*!/); # skip comments
- $continuation = ($line =~ s/\s*\\$/ /); # search for trailing backslash
- unless (defined($resource)) # it is the first line
- {
- $resource = $line;
- }
- else # it is a continuation line
- {
- $line =~ s/^\s*//; # remove leading whitespace
- $resource .= $line;
- }
- next if $continuation;
- push(@resource, [ $1, $2 ]) if ($resource =~ /^([^:\s]+)*\s*:\s*(.*)$/);
- $resource = undef;
- }
-
- close(SPEC);
-
- if (defined($resource)) # special case - EOF after line with trailing backslash
- {
- push(@resource, [ $1, $2 ]) if ($resource =~ /^([^:\s]+)*\s*:\s*(.*)$/);
- }
-
- $self->SetResources(\@resource, $file->{-priority}) if @resource;
- }
-
- return $self;
-}
-
-#/----------------------------------------------------------------------------//
-
-1;
-
-__END__
-
-=cut
-
-=head1 NAME
-
-Tk::CmdLine - Process standard X11 command line options and set initial resources
-
-=for pm Tk/CmdLine.pm
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
- Tk::CmdLine::SetArguments([@argument]);
-
- my $value = Tk::CmdLine::cget([$option]);
-
- Tk::CmdLine::SetResources((\@resource | $resource) [, $priority]);
-
- Tk::CmdLine::LoadResources(
- [ -symbol => $symbol ]
- [ -file => $fileSpec ]
- [ -priority => $priority ]
- [ -echo => $fileHandle ] );
-
-=head1 DESCRIPTION
-
-Process standard X11 command line options and set initial resources.
-
-The X11R5 man page for X11 says: "Most X programs attempt to use the same names
-for command line options and arguments. All applications written with the
-X Toolkit Intrinsics automatically accept the following options: ...".
-This module processes these command line options for perl/Tk applications
-using the C<SetArguments>() function.
-
-This module can optionally be used to load initial resources explicitly via
-function C<SetResources>(), or from specified files (default: the standard X11
-application-specific resource files) via function C<LoadResources>().
-
-=head2 Command Line Options
-
-=over 4
-
-=item B<-background> I<Color> | B<-bg> I<Color>
-
-Specifies the color to be used for the window background.
-
-=item B<-class> I<Class>
-
-Specifies the class under which resources for the application should be found.
-This option is useful in shell aliases to distinguish between invocations
-of an application, without resorting to creating links to alter the executable
-file name.
-
-=item B<-display> I<Display> | B<-screen> I<Display>
-
-Specifies the name of the X server to be used.
-
-=item B<-font> I<Font> | B<-fn> I<Font>
-
-Specifies the font to be used for displaying text.
-
-=item B<-foreground> I<Color> | B<-fg> I<Color>
-
-Specifies the color to be used for text or graphics.
-
-=item B<-geometry> I<Geometry>
-
-Specifies the initial size and location of the I<first>
-L<MainWindow|Tk::MainWindow>.
-
-=item B<-iconic>
-
-Indicates that the user would prefer that the application's windows initially
-not be visible as if the windows had been immediately iconified by the user.
-Window managers may choose not to honor the application's request.
-
-=item B<-motif>
-
-Specifies that the application should adhere as closely as possible to Motif
-look-and-feel standards. For example, active elements such as buttons and
-scrollbar sliders will not change color when the pointer passes over them.
-
-=item B<-name> I<Name>
-
-Specifies the name under which resources for the application should be found.
-This option is useful in shell aliases to distinguish between invocations
-of an application, without resorting to creating links to alter the executable
-file name.
-
-=item B<-synchronous>
-
-Indicates that requests to the X server should be sent synchronously, instead of
-asynchronously. Since Xlib normally buffers requests to the server, errors do
-do not necessarily get reported immediately after they occur. This option turns
-off the buffering so that the application can be debugged. It should never
-be used with a working program.
-
-=item B<-title> I<TitleString>
-
-This option specifies the title to be used for this window. This information is
-sometimes used by a window manager to provide some sort of header identifying
-the window.
-
-=item B<-xrm> I<ResourceString>
-
-Specifies a resource pattern and value to override any defaults. It is also
-very useful for setting resources that do not have explicit command line
-arguments.
-
-The I<ResourceString> is of the form E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>,
-that is (the first) ':' is used to determine which part is pattern and which
-part is value. The (E<lt>I<pattern>E<gt>, E<lt>I<value>E<gt>) pair is entered
-into the options database with B<optionAdd> (for each
-L<MainWindow|Tk::MainWindow> configured), with I<interactive> priority.
-
-=back
-
-=head2 Initial Resources
-
-There are several mechanism for initializing the resource database to be used
-by an X11 application. Resources may be defined in a $C<HOME>/.Xdefaults file,
-a system application defaults file (e.g.
-/usr/lib/X11/app-defaults/E<lt>B<CLASS>E<gt>),
-or a user application defaults file (e.g. $C<HOME>/E<lt>B<CLASS>E<gt>).
-The Tk::CmdLine functionality for setting initial resources concerns itself
-with the latter two.
-
-Resource files contain data lines of the form
-E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>.
-They may also contain blank lines and comment lines (denoted
-by a ! character as the first non-blank character). Refer to L<option|Tk::option>
-for a description of E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>.
-
-=over 4
-
-=item System Application Defaults Files
-
-System application defaults files may be specified via environment variable
-$C<XFILESEARCHPATH> which, if set, contains a list of file patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>).
-
-=item User Application Defaults Files
-
-User application defaults files may be specified via environment variables
-$C<XUSERFILESEARCHPATH>, $C<XAPPLRESDIR> or $C<HOME>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item B<SetArguments> - Tk::CmdLine::SetArguments([@argument])
-
-Extract the X11 options contained in a specified array (@ARGV by default).
-
- Tk::CmdLine::SetArguments([@argument])
-
-The X11 options may be specified using a single dash I<-> as per the X11
-convention, or using two dashes I<--> as per the POSIX standard (e.g.
-B<-geometry> I<100x100>, B<-geometry> I<100x100> or B<-geometry=>I<100x100>).
-The options may be interspersed with other options or arguments.
-A I<--> by itself terminates option processing.
-
-By default, command line options are extracted from @ARGV the first time
-a MainWindow is created. The Tk::MainWindow constructor indirectly invokes
-C<SetArguments>() to do this.
-
-=item B<GetArguments> - Tk::CmdLine::GetArguments()
-
-Get a list of the X11 options that have been processed by C<SetArguments>().
-(C<GetArguments>() first invokes C<SetArguments>() if it has not already been invoked.)
-
-=item B<cget> - Tk::CmdLine::cget([$option])
-
-Get the value of a configuration option specified via C<SetArguments>().
-(C<cget>() first invokes C<SetArguments>() if it has not already been invoked.)
-
- Tk::CmdLine::cget([$option])
-
-The valid options are: B<-class>, B<-name>, B<-screen> and B<-title>.
-If no option is specified, B<-class> is implied.
-
-A typical use of C<cget>() might be to obtain the application class in order
-to define the name of a resource file to be loaded in via C<LoadResources>().
-
- my $class = Tk::CmdLine::cget(); # process command line and return class
-
-=item B<SetResources> - Tk::CmdLine::SetResources((\@resource | $resource) [, $priority])
-
-Set the initial resources.
-
- Tk::CmdLine::SetResources((\@resource | $resource) [, $priority])
-
-A single resource may be specified using a string of the form
-'E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>'. Multiple resources may be specified
-by passing an array reference whose elements are either strings of the above
-form, and/or anonymous arrays of the form [ E<lt>I<pattern>E<gt>,
-E<lt>I<value>E<gt> ]. The optional second argument specifies the priority,
-as defined in L<option|Tk::option>, to be associated with the resources
-(default: I<userDefault>).
-
-Note that C<SetResources>() first invokes C<SetArguments>() if it has not already
-been invoked.
-
-=item B<LoadResources> - Tk::CmdLine::LoadResources([%options])
-
-Load initial resources from one or more files.
-
- Tk::CmdLine::LoadResources(
- [ -symbol => $symbol ]
- [ -file => $fileSpec ]
- [ -priority => $priority ]
- [ -echo => $fileHandle ] );
-
-[ B<-symbol> =E<gt> $symbol ] specifies the name of an environment variable
-that, if set, defines a list of one or more directories and/or file patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>).
-$C<XUSERFILESEARCHPATH> is a special case.
-If $C<XUSERFILESEARCHPATH> is not set, $C<XAPPLRESDIR> is checked instead.
-If $C<XAPPLRESDIR> is not set, $C<HOME> is checked instead.
-
-An item is identified as a file pattern if it contains one or more /%[A-Za-z]/
-patterns. Only patterns B<%L>, B<%T> and B<%N> are currently recognized. All
-others are replaced with the null string. Pattern B<%L> is translated into
-$C<LANG>. Pattern B<%T> is translated into I<app-defaults>. Pattern B<%N> is
-translated into the application class name.
-
-Each file pattern, after substitutions are applied, is assumed to define a
-FileSpec to be examined.
-
-When a directory is specified, FileSpecs
-E<lt>B<DIRECTORY>E<gt>/E<lt>B<LANG>E<gt>/E<lt>B<CLASS>E<gt>
-and E<lt>B<DIRECTORY>E<gt>/E<lt>B<CLASS>E<gt> are defined, in that order.
-
-[ B<-file> =E<gt> $fileSpec ] specifies a resource file to be loaded in.
-The file is silently skipped if if does not exist, or if it is not readable.
-
-[ B<-priority> =E<gt> $priority ] specifies the priority, as defined in
-L<option|Tk::option>, to be associated with the resources
-(default: I<userDefault>).
-
-[ B<-echo> =E<gt> $fileHandle ] may be used to specify that a line should be
-printed to the corresponding FileHandle (default: \*STDOUT) everytime a file
-is examined / loaded.
-
-If no B<-symbol> or B<-file> options are specified, C<LoadResources>()
-processes symbol $C<XFILESEARCHPATH> with priority I<startupFile> and
-$C<XUSERFILESEARCHPATH> with priority I<userDefault>.
-(Note that $C<XFILESEARCHPATH> and $C<XUSERFILESEARCHPATH> are supposed to
-contain only patterns. $C<XAPPLRESDIR> and $C<HOME> are supposed to be a single
-directory. C<LoadResources>() does not check/care whether this is the case.)
-
-For each set of FileSpecs, C<LoadResources>() examines each FileSpec to
-determine if the file exists and is readable. The first file that meets this
-criteria is read in and C<SetResources>() is invoked.
-
-Note that C<LoadResources>() first invokes C<SetArguments>() if it has not already
-been invoked.
-
-=back
-
-=head1 NOTES
-
-This module is an object-oriented module whose methods can be invoked as object
-methods, class methods or regular functions. This is accomplished via an
-internally-maintained object reference which is created as necessary, and which
-always points to the last object used. C<SetArguments>(), C<SetResources>() and
-C<LoadResources>() return the object reference.
-
-=head1 EXAMPLES
-
-=over
-
-=item 1
-
-@ARGV is processed by Tk::CmdLine at MainWindow creation.
-
- use Tk;
-
- # <Process @ARGV - ignoring all X11-specific options>
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 2
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-An @ARGV of (--geometry=100x100 -opt1 a b c -bg red)
-is equal to (-opt1 a b c) after C<SetArguments>() is invoked.
-
- use Tk;
-
- Tk::CmdLine::SetArguments(); # Tk::CmdLine->SetArguments() works too
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 3
-
-Just like 2) except that default arguments are loaded first.
-
- use Tk;
-
- Tk::CmdLine::SetArguments(qw(-name test -iconic));
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 4
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-Standard resource files are loaded in before MainWindow creation.
-
- use Tk;
-
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- Tk::CmdLine::LoadResources();
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 5
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-Standard resource files are loaded in before MainWindow creation
-using non-default priorities.
-
- use Tk;
-
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- Tk::CmdLine::LoadResources(-echo => \*STDOUT,
- -priority => 65, -symbol => 'XFILESEARCHPATH' );
- Tk::CmdLine::LoadResources(-echo => \*STDOUT,
- -priority => 75, -symbol => 'XUSERFILESEARCHPATH' );
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 6
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-Standard resource files are loaded in before MainWindow creation.
-Individual resources are also loaded in before MainWindow creation.
-
- use Tk;
-
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- Tk::CmdLine::LoadResources();
-
- Tk::CmdLine::SetResources( # set a single resource
- '*Button*background: red',
- 'widgetDefault' );
-
- Tk::CmdLine::SetResources( # set multiple resources
- [ '*Button*background: red', '*Button*foreground: blue' ],
- 'widgetDefault' );
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=back
-
-=head1 ENVIRONMENT
-
-=over 4
-
-=item B<HOME> (optional)
-
-Home directory which may contain user application defaults files as
-$C<HOME>/$C<LANG>/E<lt>B<CLASS>E<gt> or $C<HOME>/E<lt>B<CLASS>E<gt>.
-
-=item B<LANG> (optional)
-
-The current language (default: I<C>).
-
-=item B<XFILESEARCHPATH> (optional)
-
-List of FileSpec patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>)
-used in defining system application defaults files.
-
-=item B<XUSERFILESEARCHPATH> (optional)
-
-List of FileSpec patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>)
-used in defining user application defaults files.
-
-=item B<XAPPLRESDIR> (optional)
-
-Directory containing user application defaults files as
-$C<XAPPLRESDIR>/$C<LANG>/E<lt>B<CLASS>E<gt> or
-$C<XAPPLRESDIR>/E<lt>B<CLASS>E<gt>.
-
-=back
-
-=head1 SEE ALSO
-
-L<MainWindow|Tk::MainWindow>
-L<option|Tk::option>
-
-=head1 HISTORY
-
-=over 4
-
-=item *
-
-1999.03.04 Ben Pavon E<lt>ben.pavon@hsc.hac.comE<gt>
-
-Rewritten as an object-oriented module.
-
-Allow one to process command line options in a specified array (@ARGV by default).
-Eliminate restrictions on the format and location of the options within the array
-(previously the X11 options could not be specified in POSIX format and had to be
-at the beginning of the array).
-
-Added the C<SetResources>() and C<LoadResources>() functions to allow the definition
-of resources prior to MainWindow creation.
-
-=item *
-
-2000.08.31 Ben Pavon E<lt>ben.pavon@hsc.hac.comE<gt>
-
-Added the C<GetArguments>() method which returns the list of arguments that
-have been processed by C<SetArguments>().
-
-Modified C<LoadResources>() to split the symbols using the OS-dependent
-path delimiter defined in the B<Config> module.
-
-Modified C<LoadResources>() to eliminate a warning message when processing
-patterns B<%l>, B<%C>, B<%S>.
-
-=back
-
-=cut
-
diff --git a/Master/xemtex/perl/site/lib/Tk/ColorEdit.xpm b/Master/xemtex/perl/site/lib/Tk/ColorEdit.xpm
deleted file mode 100644
index ef3474cd869..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/ColorEdit.xpm
+++ /dev/null
@@ -1,58 +0,0 @@
-/* XPM */
-static char * ColorEditor_xpm[] = {
-"48 48 6 1",
-" c #0000FFFF0000",
-". c #FFFFFFFF0000",
-"X c #FFFF00000000",
-"o c #000000000000",
-"O c #0000FFFFFFFF",
-"+ c #00000000FFFF",
-" . . ......X..XXXXXXXXXXXXXXXX",
-" . .X.X. X...XX.XXXXXXXXXXX",
-" . . . ... ...XXXXXXXXXXXXXX",
-" . . .. .....XX.XXXXXXXXXXXX",
-" . .X.X...XXX..XXXXXXXXXXXX",
-" .. . ....X...X.XXXXXXXXX",
-" .. ..X.. . ..X..XXXXXXXX",
-" .... ..X.X..X.XXXXXXX",
-" ... .X. X...X...XX.XXX",
-" . .. ... XX...XXXX..XXXX",
-" ooo o ooo. . .. .X...X..X.XXXXX",
-" oo oo oo. . . . .......X.X.XX",
-" oo o oo . . .. ........XX.XXXX",
-" oo ooo oo ooo Xooo.oo..... X XX.X",
-" oo o oo oo o oo ooo o.. . X...X X",
-" oo oo oo oo oo oo .oo . X.X.....XX ",
-"O oo o oo oo oo oo oo oo. ... X..... .",
-"O O oo oo oo o oo ooo o. oo . ... .X..X",
-"O OOOooooO ooo ooo ooo oo ... ....... X ",
-" O OOO . . .. ... ..",
-"OOO OOOO OO O . .... . . .. .",
-" + O O O O .. .. . .",
-" O OOO OO . .. .... ",
-"OOOOO O OO . .. . ... ",
-"+OOOO OOOO OO O ... .. ..",
-" O+OO OO O . ",
-"OOOOOOOOoooooooOOOO ooo oo .... ",
-"OO++ OOO ooO OoOO oo oo oo .. ",
-"+OOOOOOOOooOOOo O O oo oo .",
-"++OOO +oo+oOO O oo oo ooo ooooo ooo ooo oo. ",
-"+OO O OOoooooO O o ooo oo oo o oo ooo o ",
-"++++ O OooOOoO Ooo Ooo oo oo oo oo oo ",
-"+++OOOO ooOOOoOOooOOooO oo oo oo oo oo ",
-"++++++ Ooo OOoOOooOooo ooo ooo o oo o oo ",
-"+++O+++oooooooOOOooOoooOooo ooo Oooo oo ",
-"++++++++O++OOOO O OOOOOOO ",
-"++O++++O+O+OOOOOOO O O OOOOOO O ",
-"+++O+++OOO+OO OOOO O OO O O O ",
-"++++++++O++O OO OO OO OOO OO O O ",
-"+++++++++++++ OOOOOO OOOO OO OO ",
-"+++++++++++++O+ +O OOOO OOO OOO OOO ",
-"++++++++++++++ OOOOO O OOOOOOOOOO ",
-"+++++++++++++ ++ OO +O OOOOO O O O ",
-"+++++++++++++++O+++O+O+O OOOOOOOOOO O ",
-"+++++++++++++O++++O++ O OOO O OOO OO ",
-"++++++++++++++++O+++O+O+OOOO OOOO O OO ",
-"+++++++++++++++++++O+++ +++O OOOOOO OO O ",
-"++++++++++++++++++++++ +++ O OOOOOOOOO "};
-
diff --git a/Master/xemtex/perl/site/lib/Tk/ColorEditor.pm b/Master/xemtex/perl/site/lib/Tk/ColorEditor.pm
deleted file mode 100644
index be4c373194a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/ColorEditor.pm
+++ /dev/null
@@ -1,759 +0,0 @@
-package Tk::ColorSelect;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '3.032'; # $Id: //depot/Tk8/Tk/ColorEditor.pm#32 $
-
-use Tk qw(Ev);
-
-require Tk::Frame;
-
-use base qw(Tk::Frame);
-Construct Tk::Widget 'ColorSelect';
-
-sub Populate
-{
- my ($middle,$args) = @_;
- my($i, @a);
- require Tk::Config;
- my(@xlibpath) = map { s/^-L//; "$_/X11/rgb.txt" }
- split /\s+/, $Tk::Config::xlib;
- foreach $i (@xlibpath,
- '/usr/local/lib/X11/rgb.txt', '/usr/lib/X11/rgb.txt',
- '/usr/X11R6/lib/X11/rgb.txt',
- '/usr/local/X11R5/lib/X11/rgb.txt', '/X11/R5/lib/X11/rgb.txt',
- '/X11/R4/lib/rgb/rgb.txt', '/usr/openwin/lib/X11/rgb.txt') {
- local *FOO;
- next if ! open FOO, $i;
- my $middle_left = $middle->Frame;
- $middle_left->pack(
- -side => 'left',
- -padx => '0.25c',
- -pady => '0.25c',
- );
- my $names = $middle->Listbox(
- -width => 20,
- -height => 12,
- -relief => 'sunken',
- -borderwidth => 2,
- -exportselection => 0,
- );
-
- $names->bind('<Double-1>' => [$middle,'color',Ev(['getSelected'])]);
-
- my $scroll = $middle->Scrollbar(
- -orient => 'vertical',
- -command => ['yview', $names],
- -relief => 'sunken',
- -borderwidth => 2,
- );
- $names->configure(-yscrollcommand => ['set',$scroll]);
- $names->pack(-in => $middle_left, -side => 'left');
- $scroll->pack(-in => $middle_left, -side => 'right', -fill => 'y');
-
- while(<FOO>) {
- chomp;
- next if /^!/;
- my @a = split;
- my $color = join(' ', @a[3 .. $#a]);
- my $hex;
- eval { $hex = $middle->Hex($color); };
- if ($@) {
- #print STDERR "unknown color: '$color'\n";
- if ($@ =~ /unknown color name "/) {
- next;
- } else {
- chomp $@;
- die $@;
- }
- }
- if (!exists($Tk::ColorEditor::names{$hex}) ||
- length($Tk::ColorEditor::names{$hex}) > length($color)) {
- $Tk::ColorEditor::names{$hex} = $color;
- $names->insert('end', $color);
- }
- }
- close FOO;
- last;
- }
-
- # Create the three scales for editing the color, and the entry for typing
- # in a color value.
-
- my $middle_middle = $middle->Frame;
- $middle_middle->pack(-side => 'left', -expand => 1, -fill => 'y');
- my $mcm1 = $middle_middle->Optionmenu(-variable => \$middle->{'color_space'},
- -command => [ $middle, 'color_space'],
- -relief => 'raised',
- -options => [ ['HSB color space' => 'hsb'],
- ['RGB color space' => 'rgb'],
- ['CMY color space' => 'cmy']]);
- $mcm1->pack(-side => 'top', -fill => 'x');
-
- my(@middle_middle, @label, @scale);
- $middle_middle[0] = $middle_middle->Frame;
- $middle_middle[1] = $middle_middle->Frame;
- $middle_middle[2] = $middle_middle->Frame;
- $middle_middle[3] = $middle_middle->Frame;
- $middle_middle[0]->pack(-side => 'top', -expand => 1);
- $middle_middle[1]->pack(-side => 'top', -expand => 1);
- $middle_middle[2]->pack(-side => 'top', -expand => 1);
- $middle_middle[3]->pack(-side => 'top', -expand => 1, -fill => 'x');
- $middle->{'Labels'} = ['zero','one','two'];
- foreach $i (0..2) {
- $label[$i] = $middle->Label(-textvariable => \$middle->{'Labels'}[$i]);
- $scale[$i] = $middle->Scale(
- -from => 0,
- -to => 1000,
- '-length' => '6c',
- -orient => 'horizontal',
- -command => [\&scale_changed, $middle],
- );
- $scale[$i]->pack(
- -in => $middle_middle[$i],
- -side => 'top',
- -anchor => 'w',
- );
- $label[$i]->pack(
- -in => $middle_middle[$i],
- -side => 'top',
- -anchor => 'w',
- );
- }
- my $nameLabel = $middle->Label(-text => 'Name:');
- $middle->{'Entry'} = '';
- my $name = $middle->Entry(
- -relief => 'sunken',
- -borderwidth => 2,
- -textvariable => \$middle->{'Entry'},
- -width => 10,
-# For some reason giving this font causes problems at end of t/create.t
-# -font => '-*-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*'
- );
-
- $nameLabel->pack(-in => $middle_middle[3], -side => 'left');
- $name->pack(
- -in => $middle_middle[3],
- -side => 'right',
- -expand => 1,
- -fill => 'x',
- );
- $name->bind('<Return>' => [ $middle, 'color', Ev(['get'])]);
-
- # Create the color display swatch on the right side of the window.
-
- my $middle_right = $middle->Frame;
- $middle_right->pack(
- -side => 'left',
- -pady => '.25c',
- -padx => '.25c',
- -anchor => 's',
- );
- my $swatch = $middle->Canvas(
- -width => '2.5c',
- -height => '5c',
- );
- my $swatch_item = $swatch->create('oval', '.5c', '.3c', '2.26c', '4.76c');
-
- my $value = $middle->Label(
- -textvariable => \$middle->{'color'},
- -width => 13,
- -font => '-*-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*'
- );
-
- $swatch->pack(
- -in => $middle_right,
- -side => 'top',
- -expand => 1,
- -fill => 'both',
- );
- $value->pack(-in => $middle_right, -side => 'bottom', -pady => '.25c');
-
- $middle->ConfigSpecs(
- '-color_space' => ['METHOD', undef, undef, 'hsb'],
- '-initialcolor' => '-color',
- '-color' => ['METHOD', 'background', 'Background',
- $middle->cget('-background')]
- );
-
- $middle->{'swatch'} = $swatch;
- $middle->{'swatch_item'} = $swatch_item;
- $middle->{'scale'} = [@scale];
- $middle->{'red'} = 0;
- $middle->{'blue'} = 0;
- $middle->{'green'} = 0;
-
-}
-
-sub Hex
-{
- my $w = shift;
- my @rgb = (@_ == 3) ? @_ : $w->rgb(@_);
- sprintf('#%04x%04x%04x',@rgb)
-}
-
-sub color_space {
-
- my($objref, $space) = @_;
-
- if (@_ > 1)
- {
- my %Labels = ( 'rgb' => [qw(Red Green Blue)],
- 'cmy' => [qw(Cyan Magenta Yellow)],
- 'hsb' => [qw(Hue Saturation Brightness)] );
-
- # The procedure below is invoked when a new color space is selected. It
- # changes the labels on the scales and re-loads the scales with the
- # appropriate values for the current color in the new color space
-
- $space = 'hsb' unless (exists $Labels{$space});
- my $i;
- for $i (0..2)
- {
- $objref->{'Labels'}[$i] = $Labels{$space}->[$i];
- }
- $objref->{'color_space'} = $space;
- $objref->afterIdle(['set_scales',$objref]) unless ($objref->{'pending'}++);
- }
- return $objref->{'color_space'};
-} # color_space
-
-sub hsvToRgb {
-
- # The procedure below converts an HSB value to RGB. It takes hue,
- # saturation, and value components (floating-point, 0-1.0) as arguments,
- # and returns a list containing RGB components (integers, 0-65535) as
- # result. The code here is a copy of the code on page 616 of
- # "Fundamentals of Interactive Computer Graphics" by Foley and Van Dam.
-
- my($hue, $sat, $value) = @_;
- my($v, $i, $f, $p, $q, $t);
-
- $v = int(65535 * $value);
- return ($v, $v, $v) if $sat == 0;
- $hue *= 6;
- $hue = 0 if $hue >= 6;
- $i = int($hue);
- $f = $hue - $i;
- $p = int(65535 * $value * (1 - $sat));
- $q = int(65535 * $value * (1 - ($sat * $f)));
- $t = int(65535 * $value * (1 - ($sat * (1 - $f))));
- return ($v, $t, $p) if $i == 0;
- return ($q, $v, $p) if $i == 1;
- return ($p, $v, $t) if $i == 2;
- return ($p, $q, $v) if $i == 3;
- return ($t, $p, $v) if $i == 4;
- return ($v, $p, $q) if $i == 5;
-
-} # end hsvToRgb
-
-sub color
-{
- my ($objref,$name) = @_;
- if (@_ > 1 && defined($name) && length($name))
- {
- if ($name eq 'cancel') {
- $objref->{color} = undef;
- return;
- }
- my ($format, $shift);
- my ($red, $green, $blue);
-
- if ($name !~ /^#/)
- {
- ($red, $green, $blue) = $objref->{'swatch'}->rgb($name);
- }
- else
- {
- my $len = length $name;
- if($len == 4) { $format = '#(.)(.)(.)'; $shift = 12; }
- elsif($len == 7) { $format = '#(..)(..)(..)'; $shift = 8; }
- elsif($len == 10) { $format = '#(...)(...)(...)'; $shift = 4; }
- elsif($len == 13) { $format = '#(....)(....)(....)'; $shift = 0; }
- else {
- $objref->BackTrace(
- "ColorEditor error: syntax error in color name \"$name\"");
- return;
- }
- ($red,$green,$blue) = $name =~ /$format/;
- # Looks like a call for 'pack' or similar rather than eval
- eval "\$red = 0x$red; \$green = 0x$green; \$blue = 0x$blue;";
- $red = $red << $shift;
- $green = $green << $shift;
- $blue = $blue << $shift;
- }
- $objref->{'red'} = $red;
- $objref->{'blue'} = $blue;
- $objref->{'green'} = $green;
- my $hex = sprintf('#%04x%04x%04x', $red, $green, $blue);
- $objref->{'color'} = $hex;
- $objref->{'Entry'} = $name;
- $objref->afterIdle(['set_scales',$objref]) unless ($objref->{'pending'}++);
- $objref->{'swatch'}->itemconfigure($objref->{'swatch_item'},
- -fill => $objref->{'color'});
- }
- return $objref->{'color'};
-}
-
-sub rgbToHsv {
-
- # The procedure below converts an RGB value to HSB. It takes red, green,
- # and blue components (0-65535) as arguments, and returns a list
- # containing HSB components (floating-point, 0-1) as result. The code
- # here is a copy of the code on page 615 of "Fundamentals of Interactive
- # Computer Graphics" by Foley and Van Dam.
-
- my($red, $green, $blue) = @_;
- my($max, $min, $sat, $range, $hue, $rc, $gc, $bc);
-
- $max = ($red > $green) ? (($blue > $red) ? $blue : $red) :
- (($blue > $green) ? $blue : $green);
- $min = ($red < $green) ? (($blue < $red) ? $blue : $red) :
- (($blue < $green) ? $blue : $green);
- $range = $max - $min;
- if ($max == 0) {
- $sat = 0;
- } else {
- $sat = $range / $max;
- }
- if ($sat == 0) {
- $hue = 0;
- } else {
- $rc = ($max - $red) / $range;
- $gc = ($max - $green) / $range;
- $bc = ($max - $blue) / $range;
- $hue = ($max == $red)?(0.166667*($bc - $gc)):
- (($max == $green)?(0.166667*(2 + $rc - $bc)):
- (0.166667*(4 + $gc - $rc)));
- }
- return ($hue, $sat, $max/65535);
-
-} # end rgbToHsv
-
-sub scale_changed {
-
- # The procedure below is invoked when one of the scales is adjusted. It
- # propagates color information from the current scale readings to
- # everywhere else that it is used.
-
- my($objref) = @_;
-
- return if $objref->{'updating'};
- my ($red, $green, $blue);
-
- if($objref->{'color_space'} eq 'rgb') {
- $red = int($objref->{'scale'}->[0]->get * 65.535 + 0.5);
- $green = int($objref->{'scale'}->[1]->get * 65.535 + 0.5);
- $blue = int($objref->{'scale'}->[2]->get * 65.535 + 0.5);
- } elsif($objref->{'color_space'} eq 'cmy') {
- $red = int(65535 - $objref->{'scale'}->[0]->get * 65.535 + 0.5);
- $green = int(65535 - $objref->{'scale'}->[1]->get * 65.535 + 0.5);
- $blue = int(65535 - $objref->{'scale'}->[2]->get * 65.535 + 0.5);
- } else {
- ($red, $green, $blue) = hsvToRgb($objref->{'scale'}->[0]->get/1000.0,
- $objref->{'scale'}->[1]->get/1000.0,
- $objref->{'scale'}->[2]->get/1000.0);
- }
- $objref->{'red'} = $red;
- $objref->{'blue'} = $blue;
- $objref->{'green'} = $green;
- $objref->color(sprintf('#%04x%04x%04x', $red, $green, $blue));
- $objref->idletasks;
-
-} # end scale_changed
-
-sub set_scales {
-
- my($objref) = @_;
- $objref->{'pending'} = 0;
- $objref->{'updating'} = 1;
-
- # The procedure below is invoked to update the scales from the current red,
- # green, and blue intensities. It's invoked after a change in the color
- # space and after a named color value has been loaded.
-
- my($red, $blue, $green) = ($objref->{'red'}, $objref->{'blue'},
- $objref->{'green'});
-
- if($objref->{'color_space'} eq 'rgb') {
- $objref->{'scale'}->[0]->set(int($red / 65.535 + 0.5));
- $objref->{'scale'}->[1]->set(int($green / 65.535 + 0.5));
- $objref->{'scale'}->[2]->set(int($blue / 65.535 + 0.5));
- } elsif($objref->{'color_space'} eq 'cmy') {
- $objref->{'scale'}->[0]->set(int((65535 - $red) / 65.535 + 0.5));
- $objref->{'scale'}->[1]->set(int((65535 - $green) / 65.535 + 0.5));
- $objref->{'scale'}->[2]->set(int((65535 - $blue) / 65.535 + 0.5));
- } else {
- my ($s1, $s2, $s3) = rgbToHsv($red, $green, $blue);
- $objref->{'scale'}->[0]->set(int($s1 * 1000.0 + 0.5));
- $objref->{'scale'}->[1]->set(int($s2 * 1000.0 + 0.5));
- $objref->{'scale'}->[2]->set(int($s3 * 1000.0 + 0.5));
- }
- $objref->{'updating'} = 0;
-
-} # end set_scales
-
-package Tk::ColorDialog;
-require Tk::Toplevel;
-use base qw(Tk::Toplevel);
-
-Construct Tk::Widget 'ColorDialog';
-
-sub Accept
-{
- my $cw = shift;
- $cw->withdraw;
- $cw->{'done'} = 1;
-}
-
-sub Cancel
-{
- my $cw = shift;
-# $cw->configure(-color => undef);
- $cw->configure(-color => 'cancel');
- $cw->Accept;
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
- $cw->SUPER::Populate($args);
- $cw->protocol('WM_DELETE_WINDOW' => [ 'Cancel' => $cw ]);
- $cw->transient($cw->Parent->toplevel);
- $cw->withdraw;
- my $sel = $cw->ColorSelect;
- my $accept = $cw->Button(-text => 'Accept', -command => ['Accept', $cw]);
- my $cancel = $cw->Button(-text => 'Cancel', -command => ['Cancel', $cw]);
- Tk::grid($sel);
- Tk::grid($accept,$cancel);
- $cw->ConfigSpecs(DEFAULT => [$sel]);
-}
-
-sub Show
-{
- my $cw = shift;
- $cw->configure(@_) if @_;
- $cw->Popup();
- $cw->waitVariable(\$cw->{'done'});
- $cw->withdraw;
- return $cw->cget('-color');
-}
-
-package Tk::ColorEditor;
-
-use vars qw($VERSION $SET_PALETTE);
-$VERSION = '3.032'; # $Id: //depot/Tk8/Tk/ColorEditor.pm#32 $
-
-use Tk qw(lsearch Ev);
-use Tk::Toplevel;
-use base qw(Tk::Toplevel);
-use Tk::widgets qw(Pixmap);
-Construct Tk::Widget 'ColorEditor';
-
-%Tk::ColorEditor::names = ();
-
-
-use Tk::Dialog;
-use Tk::Pretty;
-
-BEGIN { $SET_PALETTE = 'Set Palette' };
-
-use subs qw(color_space hsvToRgb rgbToHsv);
-
-# ColorEditor public methods.
-
-sub add_menu_item
-{
- my $objref = shift;
- my $value;
- foreach $value (@_)
- {
- if ($value eq 'SEP')
- {
- $objref->{'mcm2'}->separator;
- }
- else
- {
- $objref->{'mcm2'}->command( -label => $value,
- -command => [ 'configure', $objref, '-highlight' => $value ] );
- push @{$objref->{'highlight_list'}}, $value;
- }
- }
-}
-
-sub set_title
-{
- my ($w) = @_;
- my $t = $w->{Configure}{'-title'} || '' ;
- my $h = $w->{Configure}{'-highlight'} || '';
- $w->SUPER::title("$t $h Color Editor");
-}
-
-sub highlight
-{
- my ($w,$h) = @_;
- if (@_ > 1)
- {
- $w->{'update'}->configure( -text => "Apply $h Color" );
- my $state = ($h eq 'background') ? 'normal' : 'disabled';
- $w->{'palette'}->entryconfigure( $SET_PALETTE, -state => $state);
- $w->{'highlight'} = $h;
- $w->configure(-color => $w->Palette->{$h});
- $w->set_title;
- }
- return $w->{'highlight'};
-}
-
-sub title
-{
- my ($w,$val) = @_;
- $w->set_title if (@_ > 1);
- return $w->{Configure}{'-title'};
-}
-
-sub delete_menu_item
-{
- my $objref = shift;
- my $value;
- foreach $value (@_)
- {
- $objref->{'mcm2'}->delete($value);
- my $list_ord = $value =~ /\d+/ ? $value : lsearch($objref->{'highlight_list'}, $value);
- splice(@{$objref->{'highlight_list'}}, $list_ord, 1) if $list_ord != -1;
- }
-}
-
-sub delete_widgets {
-
- # Remove widgets from consideration by the color configurator.
- # $widgets_ref points to widgets previously added via `configure'.
-
- my($objref, $widgets_ref) = @_;
-
- my($i, $found, $r1, $r2, @wl) = (0, 0, 0, 0, @{$objref->cget(-widgets)});
- foreach $r1 (@{$widgets_ref}) {
- $i = -1;
- $found = 0;
- foreach $r2 (@wl) {
- $i++;
- next if $r1 != $r2;
- $found = 1;
- last;
- }
- splice(@wl, $i, 1) if $found;
- }
- $objref->configure(-widgets => [@wl]);
-
-} # end delete_widgets
-
-sub ApplyDefault
-{
- my($objref) = @_;
- my $cb = $objref->cget('-command');
- my $h;
- foreach $h (@{$objref->{'highlight_list'}})
- {
- next if $h =~ /TEAR_SEP|SEP/;
- $cb->Call($h);
- die unless (defined $cb);
- }
-}
-
-sub Populate
-{
-
- # ColorEditor constructor.
-
- my($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
- $cw->withdraw;
-
- my $color_space = 'hsb'; # rgb, cmy, hsb
- my(@highlight_list) = qw(
- TEAR_SEP
- foreground background SEP
- activeForeground activeBackground SEP
- highlightColor highlightBackground SEP
- selectForeground selectBackground SEP
- disabledForeground insertBackground selectColor troughColor
- );
-
- # Create the Usage Dialog;
-
- my $usage = $cw->Dialog( '-title' => 'ColorEditor Usage',
- -justify => 'left',
- -wraplength => '6i',
- -text => "The Colors menu allows you to:\n\nSelect a color attribute such as \"background\" that you wish to colorize. Click on \"Apply\" to update that single color attribute.\n\nSelect one of three color spaces. All color spaces display a color value as a hexadecimal number under the oval color swatch that can be directly supplied on widget commands.\n\nApply Tk's default color scheme to the application. Useful if you've made a mess of things and want to start over!\n\nChange the application's color palette. Make sure \"background\" is selected as the color attribute, find a pleasing background color to apply to all current and future application widgets, then select \"Set Palette\".",
- );
-
- # Create the menu bar at the top of the window for the File, Colors
- # and Help menubuttons.
-
- my $m0 = $cw->Frame(-relief => 'raised', -borderwidth => 2);
- $m0->pack(-side => 'top', -fill => 'x');
- my $mf = $m0->Menubutton(
- -text => 'File',
- -underline => 0,
- -bd => 1,
- -relief => 'raised',
- );
- $mf->pack(-side => 'left');
- my $close_command = [sub {shift->withdraw}, $cw];
- $mf->command(
- -label => 'Close',
- -underline => 0,
- -command => $close_command,
- -accelerator => 'Ctrl-w',
- );
- $cw->bind('<Control-Key-w>' => $close_command);
- $cw->protocol(WM_DELETE_WINDOW => $close_command);
-
- my $mc = $m0->Menubutton(
- -text => 'Colors',
- -underline => 0,
- -bd => 1,
- -relief => 'raised',
- );
- $mc->pack(-side => 'left');
- my $color_attributes = 'Color Attributes';
- $mc->cascade(-label => $color_attributes, -underline => 6);
- $mc->separator;
-
- $mc->command(
- -label => 'Apply Default Colors',
- -underline => 6,
- -command => ['ApplyDefault',$cw]
- );
- $mc->separator;
- $mc->command(
- -label => $SET_PALETTE,
- -underline => 0,
- -command => sub { $cw->setPalette($cw->cget('-color'))}
- );
-
- my $m1 = $mc->cget(-menu);
-
- my $mcm2 = $m1->Menu;
- $m1->entryconfigure($color_attributes, -menu => $mcm2);
- my $mh = $m0->Menubutton(
- -text => 'Help',
- -underline => 0,
- -bd => 1,
- -relief => 'raised',
- );
- $mh->pack(-side => 'right');
- $mh->command(
- -label => 'Usage',
- -underline => 0,
- -command => [sub {shift->Show}, $usage],
- );
-
- # Create the Apply button.
-
- my $bot = $cw->Frame(-relief => 'raised', -bd => 2);
- $bot->pack(-side => 'bottom', -fill =>'x');
- my $update = $bot->Button(
- -command => [
- sub {
- my ($objref) = @_;
- $objref->Callback(-command => ($objref->{'highlight'}, $objref->cget('-color')));
- }, $cw,
- ],
- );
- $update->pack(-pady => 1, -padx => '0.25c');
-
- # Create the listbox that holds all of the color names in rgb.txt, if an
- # rgb.txt file can be found.
-
- my $middle = $cw->ColorSelect(-relief => 'raised', -borderwidth => 2);
- $middle->pack(-side => 'top', -fill => 'both');
- # Create the status window.
-
- my $status = $cw->Toplevel;
- $status->withdraw;
- $status->geometry('+0+0');
- my $status_l = $status->Label(-width => 50, -anchor => 'w');
- $status_l->pack(-side => 'top');
-
- $cw->{'highlight_list'} = [@highlight_list];
- $cw->{'mcm2'} = $mcm2;
-
- foreach (@highlight_list)
- {
- next if /^TEAR_SEP$/;
- $cw->add_menu_item($_);
- }
-
- $cw->{'updating'} = 0;
- $cw->{'pending'} = 0;
- $cw->{'Status'} = $status;
- $cw->{'Status_l'} = $status_l;
- $cw->{'update'} = $update;
- $cw->{'gwt_depth'} = 0;
- $cw->{'palette'} = $mc;
-
- my $pixmap = $cw->Pixmap('-file' => Tk->findINC('ColorEdit.xpm'));
- $cw->Icon(-image => $pixmap);
-
- $cw->ConfigSpecs(
- DEFAULT => [$middle],
- -widgets => ['PASSIVE', undef, undef,
- [$cw->parent->Descendants]],
- -display_status => ['PASSIVE', undef, undef, 0],
- '-title' => ['METHOD', undef, undef, ''],
- -command => ['CALLBACK', undef, undef, ['set_colors',$cw]],
- '-highlight' => ['METHOD', undef, undef, 'background'],
- -cursor => ['DESCENDANTS', 'cursor', 'Cursor', 'left_ptr'],
- );
-
-} # end Populate, ColorEditor constructor
-
-sub Show {
-
- my($objref) = @_;
-
- $objref->deiconify;
-
-} # end show
-
-# ColorEditor default configurator procedure - can be redefined by the
-# application.
-
-sub set_colors {
-
- # Configure all the widgets in $widgets for attribute $type and color
- # $color. If $color is undef then reset all colors
- # to the Tk defaults.
-
- my($objref, $type, $color) = @_;
- my $display = $objref->cget('-display_status');
-
- $objref->{'Status'}->title("Configure $type");
- $objref->{'Status'}->deiconify if $display;
- my $widget;
- my $reset = !defined($color);
-
- foreach $widget (@{$objref->cget('-widgets')}) {
- if ($display) {
- $objref->{'Status_l'}->configure(
- -text => 'WIDGET: ' . $widget->PathName
- );
- $objref->update;
- }
- eval {local $SIG{'__DIE__'}; $color = ($widget->configure("-\L${type}"))[3]} if $reset;
- eval {local $SIG{'__DIE__'}; $widget->configure("-\L${type}" => $color)};
- }
-
- $objref->{'Status'}->withdraw if $display;
-
-} # end set_colors
-
-# ColorEditor private methods.
-
-1;
-
-__END__
-
-=cut
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Config.pm b/Master/xemtex/perl/site/lib/Tk/Config.pm
deleted file mode 100644
index 7c89d1aadb2..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Config.pm
+++ /dev/null
@@ -1,12 +0,0 @@
-package Tk::Config;
-require Exporter;
-use base qw(Exporter);
-$VERSION = '800.024';
-$inc = '-I$(TKDIR)/pTk/mTk/xlib';
-$define = '';
-$xlib = '';
-$xinc = '';
-$gccopt = '';
-$win_arch = 'MSWin32';
-@EXPORT = qw($VERSION $inc $define $xlib $xinc $gccopt $win_arch);
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Configure.pm b/Master/xemtex/perl/site/lib/Tk/Configure.pm
deleted file mode 100644
index 5fc6e68ade6..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Configure.pm
+++ /dev/null
@@ -1,69 +0,0 @@
-package Tk::Configure;
-use vars qw($VERSION);
-$VERSION = '3.010'; # $Id: //depot/Tk8/Tk/Configure.pm#10 $
-
-use Carp;
-use Tk::Pretty;
-
-
-# Class that handles cget/configure for options that
-# need translating from public form
-# e.g. $cw->configure(-label => 'fred')
-# into $cw->subwiget('label')->configure(-text => 'fred')
-# Should probably do something clever with regexp's here
-
-
-sub new
-{
- my ($class,@args) = @_;
- unshift(@args,'configure','cget') if (@args < 3);
- return bless \@args,$class;
-}
-
-sub cget
-{
- croak('Wrong number of args to cget') unless (@_ == 2);
- my ($alias,$key) = @_;
- my ($set,$get,$widget,@args) = @$alias;
- $widget->$get(@args);
-}
-
-sub configure
-{
- my $alias = shift;
- shift if (@_);
- my ($set,$get,$widget,@args) = @$alias;
- if (wantarray)
- {
- my @results;
- eval { @results = $widget->$set(@args,@_) };
- croak($@) if $@;
- return @results;
- }
- else
- {
- my $results;
- eval { $results = $widget->$set(@args,@_) };
- croak($@) if $@;
- return $results;
- }
-}
-
-*TIESCALAR = \&new;
-*TIEHASH = \&new;
-
-sub FETCH
-{
- my $alias = shift;
- my ($set,$get,$widget,@args) = @$alias;
- return $widget->$get(@args,@_);
-}
-
-sub STORE
-{
- my $alias = shift;
- my ($set,$get,$widget,@args) = @$alias;
- $widget->$set(@args,@_);
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Derived.pm b/Master/xemtex/perl/site/lib/Tk/Derived.pm
deleted file mode 100644
index 89310d4d77a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Derived.pm
+++ /dev/null
@@ -1,510 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Derived;
-require Tk::Widget;
-require Tk::Configure;
-use strict;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '3.046'; # $Id: //depot/Tk8/Tk/Derived.pm#46 $
-
-$Tk::Derived::Debug = 0;
-
-my $ENHANCED_CONFIGSPECS = 0; # disable for now
-
-use Tk qw(NORMAL_BG BLACK);
-
-sub Subwidget
-{
- my $cw = shift;
- my @result = ();
- if (exists $cw->{SubWidget})
- {
- if (@_)
- {
- foreach my $name (@_)
- {
- push(@result,$cw->{SubWidget}{$name}) if (exists $cw->{SubWidget}{$name});
- }
- }
- else
- {
- @result = values %{$cw->{SubWidget}};
- }
- }
- return (wantarray) ? @result : $result[0];
-}
-
-sub _makelist
-{
- my $widget = shift;
- my (@specs) = (ref $widget && ref $widget eq 'ARRAY') ? (@$widget) : ($widget);
- return @specs;
-}
-
-sub Subconfigure
-{
- # This finds the widget or widgets to to which to apply a particular
- # configure option
- my ($cw,$opt) = @_;
- my $config = $cw->ConfigSpecs;
- my $widget;
- my @subwidget = ();
- my @arg = ();
- if (defined $opt)
- {
- $widget = $config->{$opt};
- unless (defined $widget)
- {
- $widget = ($opt =~ /^-(.*)$/) ? $config->{$1} : $config->{-$opt};
- }
- # Handle alias entries
- if (defined($widget) && !ref($widget))
- {
- $opt = $widget;
- $widget = $config->{$widget};
- }
- push(@arg,$opt) unless ($opt eq 'DEFAULT');
- }
- $widget = $config->{DEFAULT} unless (defined $widget);
- if (defined $widget)
- {
- $cw->BackTrace("Invalid ConfigSpecs $widget") unless (ref($widget) && (ref $widget eq 'ARRAY'));
- $widget = $widget->[0];
- }
- else
- {
- $widget = 'SELF';
- }
- foreach $widget (_makelist($widget))
- {
- $widget = 'SELF' if (ref($widget) && $widget == $cw);
- if (ref $widget)
- {
- my $ref = ref $widget;
- if ($ref eq 'ARRAY')
- {
- $widget = Tk::Configure->new(@$widget);
- push(@subwidget,$widget)
- }
- elsif ($ref eq 'HASH')
- {
- foreach my $key (%$widget)
- {
- foreach my $sw (_makelist($widget->{$key}))
- {
- push(@subwidget,Tk::Configure->new($sw,$key));
- }
- }
- }
- else
- {
- push(@subwidget,$widget)
- }
- }
- elsif ($widget eq 'ADVERTISED')
- {
- push(@subwidget,$cw->Subwidget)
- }
- elsif ($widget eq 'DESCENDANTS')
- {
- push(@subwidget,$cw->Descendants)
- }
- elsif ($widget eq 'CHILDREN')
- {
- push(@subwidget,$cw->children)
- }
- elsif ($widget eq 'METHOD')
- {
- my ($method) = ($opt =~ /^-?(.*)$/);
- push(@subwidget,Tk::Configure->new($method,$method,$cw))
- }
- elsif ($widget eq 'SETMETHOD')
- {
- my ($method) = ($opt =~ /^-?(.*)$/);
- push(@subwidget,Tk::Configure->new($method,'_cget',$cw,@arg))
- }
- elsif ($widget eq 'SELF')
- {
- push(@subwidget,Tk::Configure->new('Tk::configure', 'Tk::cget', $cw,@arg))
- }
- elsif ($widget eq 'PASSIVE')
- {
- push(@subwidget,Tk::Configure->new('_configure','_cget',$cw,@arg))
- }
- elsif ($widget eq 'CALLBACK')
- {
- push(@subwidget,Tk::Configure->new('_callback','_cget',$cw,@arg))
- }
- else
- {
- push(@subwidget,$cw->Subwidget($widget));
- }
- }
- $cw->BackTrace("No delegate subwidget '$widget' for $opt") unless (@subwidget);
- return (wantarray) ? @subwidget : $subwidget[0];
-}
-
-sub _cget
-{
- my ($cw,$opt) = @_;
- $cw->BackTrace('Wrong number of args to cget') unless (@_ == 2);
- return $cw->{Configure}{$opt}
-}
-
-sub _configure
-{
- my ($cw,$opt,$val) = @_;
- $cw->BackTrace('Wrong number of args to configure') unless (@_ == 3);
- $cw->{Configure}{$opt} = $val;
-}
-
-sub _callback
-{
- my ($cw,$opt,$val) = @_;
- $cw->BackTrace('Wrong number of args to configure') unless (@_ == 3);
- $val = Tk::Callback->new($val) if defined($val) && ref($val);
- $cw->{Configure}{$opt} = $val;
-}
-
-sub cget
-{my ($cw,$opt) = @_;
- my @result;
- local $SIG{'__DIE__'};
- foreach my $sw ($cw->Subconfigure($opt))
- {
- if (wantarray)
- {
- eval { @result = $sw->cget($opt) };
- }
- else
- {
- eval { $result[0] = $sw->cget($opt) };
- }
- last unless $@;
- }
- return wantarray ? @result : $result[0];
-}
-
-sub Configured
-{
- # Called whenever a derived widget is re-configured
- my ($cw,$args,$changed) = @_;
- if (@_ > 1)
- {
- $cw->afterIdle(['ConfigChanged',$cw,$changed]) if (%$changed);
- }
- return exists $cw->{'Configure'};
-}
-
-sub configure
-{
- # The default composite widget configuration method uses hash stored
- # in the widget's hash to map configuration options
- # onto subwidgets.
- #
- my @results = ();
- my $cw = shift;
- if (@_ <= 1)
- {
- # Enquiry cases
- my $spec = $cw->ConfigSpecs;
- if (@_)
- {
- # Return info on the nominated option
- my $opt = $_[0];
- my $info = $spec->{$opt};
- unless (defined $info)
- {
- $info = ($opt =~ /^-(.*)$/) ? $spec->{$1} : $spec->{-$opt};
- }
- if (defined $info)
- {
- if (ref $info)
- {
- # If the default slot is undef then ask subwidgets in turn
- # for their default value until one accepts it.
- if ($ENHANCED_CONFIGSPECS && !defined($info->[3]))
- {local $SIG{'__DIE__'};
- my @def;
- foreach my $sw ($cw->Subconfigure($opt))
- {
- eval { @def = $sw->configure($opt) };
- last unless $@;
- }
- $info->[3] = $def[3];
- $info->[1] = $def[1] unless defined $info->[1];
- $info->[2] = $def[2] unless defined $info->[2];
- }
- push(@results,$opt,$info->[1],$info->[2],$info->[3],$cw->cget($opt));
- }
- else
- {
- # Real (core) Tk widgets return db name rather than option name
- # for aliases so recurse to get that ...
- my @real = $cw->configure($info);
- push(@results,$opt,$real[1]);
- }
- }
- else
- {
- push(@results,$cw->Subconfigure($opt)->configure($opt));
- }
- }
- else
- {
- my $opt;
- my %results;
- if (exists $spec->{'DEFAULT'})
- {
- foreach $opt ($cw->Subconfigure('DEFAULT')->configure)
- {
- $results{$opt->[0]} = $opt;
- }
- }
- foreach $opt (keys %$spec)
- {
- $results{$opt} = [$cw->configure($opt)] if ($opt ne 'DEFAULT');
- }
- foreach $opt (sort keys %results)
- {
- push(@results,$results{$opt});
- }
- }
- }
- else
- {
- my (%args) = @_;
- my %changed = ();
- my ($opt,$val);
- my $config = $cw->TkHash('Configure');
-
- while (($opt,$val) = each %args)
- {
- my $var = \$config->{$opt};
- my $old = $$var;
- $$var = $val;
- my $accepted = 0;
- my $error = "No widget handles $opt";
- foreach my $subwidget ($cw->Subconfigure($opt))
- {
- next unless (defined $subwidget);
- eval {local $SIG{'__DIE__'}; $subwidget->configure($opt => $val) };
- if ($@)
- {
- my $val2 = (defined $val) ? $val : 'undef';
- $error = "Can't set $opt to `$val2' for $cw: " . $@;
- undef $@;
- }
- else
- {
- $accepted = 1;
- }
- }
- $cw->BackTrace($error) unless ($accepted);
- $val = $$var;
- $changed{$opt} = $val if (!defined $old || !defined $val || "$old" ne "$val");
- }
- $cw->Configured(\%args,\%changed);
- }
- return (wantarray) ? @results : \@results;
-}
-
-sub ConfigDefault
-{
- my ($cw,$args) = @_;
-
- $cw->BackTrace('Bad args') unless (defined $args && ref $args eq 'HASH');
-
- my $specs = $cw->ConfigSpecs;
- # Should we enforce a Delagates(DEFAULT => ) as well ?
- $specs->{'DEFAULT'} = ['SELF'] unless (exists $specs->{'DEFAULT'});
-
- #
- # This is a pain with Text or Entry as core widget, they don't
- # inherit SELF's cursor. So comment it out for Tk402.001
- #
- # $specs->{'-cursor'} = ['SELF',undef,undef,undef] unless (exists $specs->{'-cursor'});
-
- # Now some hacks that cause colours to propogate down a composite widget
- # tree - really needs more thought, other options adding such as active
- # colours too and maybe fonts
-
- my $child = ($cw->children)[0]; # 1st child window (if any)
-
- unless (exists($specs->{'-background'}))
- {
- my (@bg) = ('SELF');
- push(@bg,'CHILDREN') if $child;
- $specs->{'-background'} = [\@bg,'background','Background',NORMAL_BG];
- }
- unless (exists($specs->{'-foreground'}))
- {
- my (@fg) = ('PASSIVE');
- unshift(@fg,'CHILDREN') if $child;
- $specs->{'-foreground'} = [\@fg,'foreground','Foreground',BLACK];
- }
- $cw->ConfigAlias(-fg => '-foreground', -bg => '-background');
-
- # Pre-scan args for aliases - this avoids defaulting
- # options specified via alias
- foreach my $opt (keys %$args)
- {
- my $info = $specs->{$opt};
- if (defined($info) && !ref($info))
- {
- $args->{$info} = delete $args->{$opt};
- }
- }
-
- # Now walk %$specs supplying defaults for all the options
- # which have a defined default value, potentially looking up .Xdefaults database
- # options for the name/class of the 'frame'
-
- foreach my $opt (keys %$specs)
- {
- if ($opt ne 'DEFAULT')
- {
- unless (exists $args->{$opt})
- {
- my $info = $specs->{$opt};
- if (ref $info)
- {
- # Not an alias
- if ($ENHANCED_CONFIGSPECS && !defined $info->[3])
- {
- # configure inquire to fill in default slot from subwidget
- $cw->configure($opt);
- }
- if (defined $info->[3])
- {
- if (defined $info->[1] && defined $info->[2])
- {
- # Should we do this on the Subconfigure widget instead?
- # to match *Entry.Background
- my $db = $cw->optionGet($info->[1],$info->[2]);
- $info->[3] = $db if (defined $db);
- }
- $args->{$opt} = $info->[3];
- }
- }
- }
- }
- }
-}
-
-sub ConfigSpecs
-{
- my $cw = shift;
- my $specs = $cw->TkHash('ConfigSpecs');
- while (@_)
- {
- my $key = shift;
- my $val = shift;
- $specs->{$key} = $val;
- }
- return $specs;
-}
-
-sub _alias
-{
- my ($specs,$opt,$main) = @_;
- if (exists($specs->{$opt}))
- {
- unless (exists $specs->{$main})
- {
- my $targ = $specs->{$opt};
- if (ref($targ))
- {
- # opt is a real option
- $specs->{$main} = $opt
- }
- else
- {
- # opt is itself an alias
- # make main point to same place
- $specs->{$main} = $targ unless $targ eq $main;
- }
- }
- return 1;
- }
- return 0;
-}
-
-sub ConfigAlias
-{
- my $cw = shift;
- my $specs = $cw->ConfigSpecs;
- while (@_ >= 2)
- {
- my $opt = shift;
- my $main = shift;
- unless (_alias($specs,$opt,$main) || _alias($specs,$main,$opt))
- {
- $cw->BackTrace("Neither $opt nor $main exist");
- }
- }
- $cw->BackTrace('Odd number of args to ConfigAlias') if (@_);
-}
-
-sub Delegate
-{
- my ($cw,$method,@args) = @_;
- my $widget = $cw->DelegateFor($method);
- if ($widget == $cw)
- {
- $method = "Tk::Widget::$method"
- }
- my @result;
- if (wantarray)
- {
- @result = $widget->$method(@args);
- }
- else
- {
- $result[0] = $widget->$method(@args);
- }
- return (wantarray) ? @result : $result[0];
-}
-
-sub InitObject
-{
- my ($cw,$args) = @_;
- $cw->Populate($args);
- $cw->ConfigDefault($args);
-}
-
-sub ConfigChanged
-{
- my ($cw,$args) = @_;
-}
-
-sub Advertise
-{
- my ($cw,$name,$widget) = @_;
- confess 'No name' unless (defined $name);
- croak 'No widget' unless (defined $widget);
- my $hash = $cw->TkHash('SubWidget');
- $hash->{$name} = $widget; # advertise it
- return $widget;
-}
-
-sub Component
-{
- my ($cw,$kind,$name,%args) = @_;
- $args{'Name'} = "\l$name" if (defined $name && !exists $args{'Name'});
- # my $pack = delete $args{'-pack'};
- my $delegate = delete $args{'-delegate'};
- my $w = $cw->$kind(%args); # Create it
- # $w->pack(@$pack) if (defined $pack);
- $cw->Advertise($name,$w) if (defined $name);
- $cw->Delegates(map(($_ => $w),@$delegate)) if (defined $delegate);
- return $w; # and return it
-}
-
-1;
-__END__
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Dialog.pm b/Master/xemtex/perl/site/lib/Tk/Dialog.pm
deleted file mode 100644
index e277e35af7b..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Dialog.pm
+++ /dev/null
@@ -1,70 +0,0 @@
-package Tk::Dialog;
-
-use vars qw($VERSION);
-$VERSION = '3.031'; # $Id: //depot/Tk8/Tk/Dialog.pm#31 $
-
-# Dialog - a translation of `tk_dialog' from Tcl/Tk to TkPerl (based on
-# John Stoffel's idea).
-#
-# Stephen O. Lidie, Lehigh University Computing Center. 94/12/27
-# lusol@Lehigh.EDU
-
-# Documentation after __END__
-
-use Carp;
-use strict;
-use base qw(Tk::DialogBox);
-
-Construct Tk::Widget 'Dialog';
-
-sub Populate
-{
-
- # Dialog object constructor. Uses `new' method from base class
- # to create object container then creates the dialog toplevel.
-
- my($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
-
- my ($w_bitmap,$w_but,$pad1,$pad2);
-
- # Create the Toplevel window and divide it into top and bottom parts.
-
- my (@pl) = (-side => 'top', -fill => 'both');
-
- ($pad1, $pad2) =
- ([-padx => '3m', -pady => '3m'], [-padx => '3m', -pady => '2m']);
-
-
- $cw->iconname('Dialog');
-
- my $w_top = $cw->Subwidget('top');
-
- # Fill the top part with the bitmap and message.
-
- @pl = (-side => 'left');
-
- $w_bitmap = $w_top->Label(Name => 'bitmap');
- $w_bitmap->pack(@pl, @$pad1);
-
- my $w_msg = $w_top->Label( -wraplength => '3i', -justify => 'left' );
-
- $w_msg->pack(-side => 'right', -expand => 1, -fill => 'both', @$pad1);
-
- $cw->Advertise(message => $w_msg);
- $cw->Advertise(bitmap => $w_bitmap );
-
- $cw->ConfigSpecs( -image => ['bitmap',undef,undef,undef],
- -bitmap => ['bitmap',undef,undef,undef],
- -font => ['message','font','Font', '-*-Times-Medium-R-Normal--*-180-*-*-*-*-*-*'],
- DEFAULT => ['message',undef,undef,undef]
- );
-}
-
-1;
-
-__END__
-
-=cut
-
diff --git a/Master/xemtex/perl/site/lib/Tk/DialogBox.pm b/Master/xemtex/perl/site/lib/Tk/DialogBox.pm
deleted file mode 100644
index 33b4b85ed85..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/DialogBox.pm
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-# DialogBox is similar to Dialog except that it allows any widget
-# in the top frame. Widgets can be added with the add method. Currently
-# there exists no way of deleting a widget once it has been added.
-
-package Tk::DialogBox;
-
-use strict;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '3.032'; # $Id: //depot/Tk8/Tixish/DialogBox.pm#32 $
-
-use base qw(Tk::Toplevel);
-
-Tk::Widget->Construct('DialogBox');
-
-sub Populate {
- my ($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
- my $buttons = delete $args->{'-buttons'};
- $buttons = ['OK'] unless defined $buttons;
- my $default_button = delete $args->{'-default_button'};
- $default_button = $buttons->[0] unless defined $default_button;
-
- $cw->{'selected_button'} = '';
- $cw->transient($cw->Parent->toplevel);
- $cw->withdraw;
- $cw->protocol('WM_DELETE_WINDOW' => sub {});
-
- # create the two frames
- my $top = $cw->Component('Frame', 'top');
- $top->configure(-relief => 'raised', -bd => 1) unless $Tk::platform eq 'MSWin32';
- my $bot = $cw->Component('Frame', 'bottom');
- $bot->configure(-relief => 'raised', -bd => 1) unless $Tk::platform eq 'MSWin32';
- $bot->pack(qw/-side bottom -fill both -ipady 3 -ipadx 3/);
- $top->pack(qw/-side top -fill both -ipady 3 -ipadx 3 -expand 1/);
-
- # create a row of buttons in the bottom.
- my $bl; # foreach my $var: perl > 5.003_08
- foreach $bl (@$buttons)
- {
- my $b = $bot->Button(-text => $bl, -command => sub { $cw->{'selected_button'} = "$bl" } );
- $cw->Advertise("B_$bl" => $b);
- if ($Tk::platform eq 'MSWin32')
- {
- $b->configure(-width => 10, -pady => 0);
- }
- if ($bl eq $default_button) {
- if ($Tk::platform eq 'MSWin32') {
- $b->pack(-side => 'left', -expand => 1, -padx => 1, -pady => 1);
- } else {
- my $db = $bot->Frame(-relief => 'sunken', -bd => 1);
- $b->raise($db);
- $b->pack(-in => $db, -padx => '2', -pady => '2');
- $db->pack(-side => 'left', -expand => 1, -padx => 1, -pady => 1);
- }
- $cw->bind('<Return>' => [ $b, 'Invoke']);
- $cw->{'default_button'} = $b;
- } else {
- $b->pack(-side => 'left', -expand => 1, -padx => 1, -pady => 1);
- }
- }
- $cw->ConfigSpecs(-command => ['CALLBACK', undef, undef, undef ],
- -foreground => ['DESCENDANTS', 'foreground','Foreground', 'black'],
- -background => ['DESCENDANTS', 'background','Background', undef],
- );
- $cw->Delegates('Construct',$top);
-}
-
-sub add {
- my ($cw, $wnam, @args) = @_;
- my $w = $cw->Subwidget('top')->$wnam(@args);
- $cw->Advertise("\L$wnam" => $w);
- return $w;
-}
-
-sub Wait
-{
- my $cw = shift;
- $cw->waitVariable(\$cw->{'selected_button'});
- $cw->grabRelease;
- $cw->withdraw;
- $cw->Callback(-command => $cw->{'selected_button'});
-}
-
-sub Show {
- my ($cw, $grab) = @_;
- croak 'DialogBox: "Show" method requires at least 1 argument'
- if scalar @_ < 1;
- my $old_focus = $cw->focusSave;
- my $old_grab = $cw->grabSave;
-
- $cw->Popup();
-
- Tk::catch {
- if (defined $grab && length $grab && ($grab =~ /global/)) {
- $cw->grabGlobal;
- } else {
- $cw->grab;
- }
- };
- if (defined $cw->{'default_button'}) {
- $cw->{'default_button'}->focus;
- } else {
- $cw->focus;
- }
- $cw->Wait;
- &$old_focus;
- &$old_grab;
- return $cw->{'selected_button'};
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Entry.pm b/Master/xemtex/perl/site/lib/Tk/Entry.pm
deleted file mode 100644
index 2696b496497..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Entry.pm
+++ /dev/null
@@ -1,517 +0,0 @@
-package Tk::Entry;
-
-# Converted from entry.tcl --
-#
-# This file defines the default bindings for Tk entry widgets.
-#
-# @(#) entry.tcl 1.22 94/12/17 16:05:14
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-use vars qw($VERSION);
-$VERSION = '3.037'; # $Id: //depot/Tk8/Entry/Entry.pm#37 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-use Tk::Widget ();
-use Tk::Clipboard ();
-use base qw(Tk::Clipboard Tk::Widget);
-
-import Tk qw(Ev $XS_VERSION);
-
-Construct Tk::Widget 'Entry';
-
-bootstrap Tk::Entry;
-
-sub Tk_cmd { \&Tk::entry }
-
-Tk::Methods('bbox','delete','get','icursor','index','insert','scan',
- 'selection','xview');
-
-use Tk::Submethods ( 'selection' => [qw(clear range adjust present to from)],
- 'xview' => [qw(moveto scroll)],
- );
-
-sub wordstart
-{my ($w,$pos) = @_;
- my $string = $w->get;
- $pos = $w->index('insert')-1 unless(defined $pos);
- $string = substr($string,0,$pos);
- $string =~ s/\S*$//;
- length $string;
-}
-
-sub wordend
-{my ($w,$pos) = @_;
- my $string = $w->get;
- my $anc = length $string;
- $pos = $w->index('insert') unless(defined $pos);
- $string = substr($string,$pos);
- $string =~ s/^(?:((?=\s)\s*|(?=\S)\S*))//x;
- $anc - length($string);
-}
-
-sub deltainsert
-{
- my ($w,$d) = @_;
- return $w->index('insert')+$d;
-}
-
-#
-# Bind --
-# This procedure is invoked the first time the mouse enters an
-# entry widget or an entry widget receives the input focus. It creates
-# all of the class bindings for entries.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $class->SUPER::ClassInit($mw);
-
- # Standard Motif bindings:
- $mw->bind($class,'<Escape>','selectionClear');
-
- $mw->bind($class,'<1>',['Button1',Ev('x')]);
-
- $mw->bind($class,'<B1-Motion>',['MouseSelect',Ev('x')]);
-
- $mw->bind($class,'<Double-1>',['MouseSelect',Ev('x'),'word','sel.first']);
- $mw->bind($class,'<Double-Shift-1>',['MouseSelect',Ev('x'),'word']);
- $mw->bind($class,'<Triple-1>',['MouseSelect',Ev('x'),'line',0]);
- $mw->bind($class,'<Triple-Shift-1>',['MouseSelect',Ev('x'),'line']);
-
- $mw->bind($class,'<Shift-1>','Shift_1');
-
-
- $mw->bind($class,'<B1-Leave>',['AutoScan',Ev('x')]);
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<ButtonRelease-1>','CancelRepeat');
- $mw->bind($class,'<Control-1>','Control_1');
- $mw->bind($class,'<Left>', ['SetCursor',Ev('deltainsert',-1)]);
- $mw->bind($class,'<Right>',['SetCursor',Ev('deltainsert',1)]);
- $mw->bind($class,'<Shift-Left>',['KeySelect',Ev('deltainsert',-1)]);
- $mw->bind($class,'<Shift-Right>',['KeySelect',Ev('deltainsert',1)]);
- $mw->bind($class,'<Control-Left>',['SetCursor',Ev(['wordstart'])]);
- $mw->bind($class,'<Control-Right>',['SetCursor',Ev(['wordend'])]);
- $mw->bind($class,'<Shift-Control-Left>',['KeySelect',Ev(['wordstart'])]);
- $mw->bind($class,'<Shift-Control-Right>',['KeySelect',Ev(['wordend'])]);
- $mw->bind($class,'<Home>',['SetCursor',0]);
- $mw->bind($class,'<Shift-Home>',['KeySelect',0]);
- $mw->bind($class,'<End>',['SetCursor','end']);
- $mw->bind($class,'<Shift-End>',['KeySelect','end']);
- $mw->bind($class,'<Delete>','Delete');
-
- $mw->bind($class,'<BackSpace>','Backspace');
-
- $mw->bind($class,'<Control-space>',['selectionFrom','insert']);
- $mw->bind($class,'<Select>',['selectionFrom','insert']);
- $mw->bind($class,'<Control-Shift-space>',['selectionAdjust','insert']);
- $mw->bind($class,'<Shift-Select>',['selectionAdjust','insert']);
-
- $mw->bind($class,'<Control-slash>',['selectionRange',0,'end']);
- $mw->bind($class,'<Control-backslash>','selectionClear');
-
- # $class->clipboardOperations($mw,qw[Copy Cut Paste]);
-
- $mw->bind($class,'<KeyPress>', ['Insert',Ev('A')]);
-
- # Ignore all Alt, Meta, and Control keypresses unless explicitly bound.
- # Otherwise, if a widget binding for one of these is defined, the
- # <KeyPress> class binding will also fire and insert the character,
- # which is wrong. Ditto for Return, and Tab.
-
- $mw->bind($class,'<Alt-KeyPress>' ,'NoOp');
- $mw->bind($class,'<Meta-KeyPress>' ,'NoOp');
- $mw->bind($class,'<Control-KeyPress>' ,'NoOp');
- $mw->bind($class,'<Return>' ,'NoOp');
- $mw->bind($class,'<KP_Enter>' ,'NoOp');
- $mw->bind($class,'<Tab>' ,'NoOp');
-
- $mw->bind($class,'<Insert>','InsertSelection');
- if (!$Tk::strictMotif)
- {
- # Additional emacs-like bindings:
- $mw->bind($class,'<Control-a>',['SetCursor',0]);
- $mw->bind($class,'<Control-b>',['SetCursor',Ev('deltainsert',-1)]);
- $mw->bind($class,'<Control-d>',['delete','insert']);
- $mw->bind($class,'<Control-e>',['SetCursor','end']);
- $mw->bind($class,'<Control-f>',['SetCursor',Ev('deltainsert',1)]);
- $mw->bind($class,'<Control-h>','Backspace');
- $mw->bind($class,'<Control-k>',['delete','insert','end']);
-
- $mw->bind($class,'<Control-t>','Transpose');
-
- $mw->bind($class,'<Meta-b>',['SetCursor',Ev(['wordstart'])]);
- $mw->bind($class,'<Meta-d>',['delete','insert',Ev(['wordend'])]);
- $mw->bind($class,'<Meta-f>',['SetCursor',Ev(['wordend'])]);
- $mw->bind($class,'<Meta-BackSpace>',['delete',Ev(['wordstart']),'insert']);
-
- # A few additional bindings from John Ousterhout.
- $mw->bind($class,'<Control-w>',['delete',Ev(['wordstart']),'insert']);
- $mw->bind($class,'<2>','Button_2');
- $mw->bind($class,'<B2-Motion>','B2_Motion');
- $mw->bind($class,'<ButtonRelease-2>','ButtonRelease_2');
- }
- return $class;
-}
-
-sub Shift_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::selectMode = 'char';
- $w->selectionAdjust('@' . $Ev->x)
-}
-
-
-sub Control_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->icursor('@' . $Ev->x)
-}
-
-
-sub Delete
-{
- my $w = shift;
- if ($w->selectionPresent)
- {
- $w->deleteSelected
- }
- else
- {
- $w->delete('insert')
- }
-}
-
-
-sub InsertSelection
-{
- my $w = shift;
- eval {local $SIG{__DIE__}; $w->Insert($w->SelectionGet)}
-}
-
-
-sub Button_2
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->scan('mark',$Ev->x);
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $Tk::mouseMoved = 0
-}
-
-
-sub B2_Motion
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if (abs(($Ev->x-$Tk::x)) > 2)
- {
- $Tk::mouseMoved = 1
- }
- $w->scan('dragto',$Ev->x)
-}
-
-
-sub ButtonRelease_2
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if (!$Tk::mouseMoved)
- {
- eval
- {local $SIG{__DIE__};
- $w->insert('insert',$w->SelectionGet);
- $w->SeeInsert;
- }
- }
-}
-
-# Button1 --
-# This procedure is invoked to handle button-1 presses in entry
-# widgets. It moves the insertion cursor, sets the selection anchor,
-# and claims the input focus.
-#
-# Arguments:
-# w - The entry window in which the button was pressed.
-# x - The x-coordinate of the button press.
-sub Button1
-{
- my $w = shift;
- my $x = shift;
- $Tk::selectMode = 'char';
- $Tk::mouseMoved = 0;
- $Tk::pressX = $x;
- $w->icursor('@' . $x);
- $w->selectionFrom('@' . $x);
- $w->selectionClear;
- if ($w->cget('-state') eq 'normal')
- {
- $w->focus()
- }
-}
-# MouseSelect --
-# This procedure is invoked when dragging out a selection with
-# the mouse. Depending on the selection mode (character, word,
-# line) it selects in different-sized units. This procedure
-# ignores mouse motions initially until the mouse has moved from
-# one character to another or until there have been multiple clicks.
-#
-# Arguments:
-# w - The entry window in which the button was pressed.
-# x - The x-coordinate of the mouse.
-sub MouseSelect
-{
- my $w = shift;
- my $x = shift;
- $Tk::selectMode = shift if (@_);
- my $cur = $w->index('@' . $x);
- return unless defined $cur;
- my $anchor = $w->index('anchor');
- return unless defined $anchor;
- if (($cur != $anchor) || (abs($Tk::pressX - $x) >= 3))
- {
- $Tk::mouseMoved = 1
- }
- my $mode = $Tk::selectMode;
- return unless $mode;
- if ($mode eq 'char')
- {
- if ($Tk::mouseMoved)
- {
- if ($cur < $anchor)
- {
- $w->selectionTo($cur)
- }
- else
- {
- $w->selectionTo($cur+1)
- }
- }
- }
- elsif ($mode eq 'word')
- {
- if ($cur < $w->index('anchor'))
- {
- $w->selectionRange($w->wordstart($cur),$w->wordend($anchor-1))
- }
- else
- {
- $w->selectionRange($w->wordstart($anchor),$w->wordend($cur))
- }
- }
- elsif ($mode eq 'line')
- {
- $w->selectionRange(0,'end')
- }
- if (@_)
- {
- my $ipos = shift;
- eval {local $SIG{__DIE__}; $w->icursor($ipos) };
- }
- $w->idletasks;
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window left or right,
-# depending on where the mouse is, and reschedules itself as an
-# 'after' command so that the window continues to scroll until the
-# mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- my $x = shift;
- if ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->MouseSelect($x);
- $w->RepeatId($w->after(50,['AutoScan',$w,$x]))
-}
-# KeySelect
-# This procedure is invoked when stroking out selections using the
-# keyboard. It moves the cursor to a new position, then extends
-# the selection to that position.
-#
-# Arguments:
-# w - The entry window.
-# new - A new position for the insertion cursor (the cursor hasn't
-# actually been moved to this position yet).
-sub KeySelect
-{
- my $w = shift;
- my $new = shift;
- if (!$w->selectionPresent)
- {
- $w->selectionFrom('insert');
- $w->selectionTo($new)
- }
- else
- {
- $w->selectionAdjust($new)
- }
- $w->icursor($new);
- $w->SeeInsert;
-}
-# Insert --
-# Insert a string into an entry at the point of the insertion cursor.
-# If there is a selection in the entry, and it covers the point of the
-# insertion cursor, then delete the selection before inserting.
-#
-# Arguments:
-# w - The entry window in which to insert the string
-# s - The string to insert (usually just a single character)
-sub Insert
-{
- my $w = shift;
- my $s = shift;
- return unless (defined $s && $s ne '');
- eval
- {local $SIG{__DIE__};
- my $insert = $w->index('insert');
- if ($w->index('sel.first') <= $insert && $w->index('sel.last') >= $insert)
- {
- $w->deleteSelected
- }
- };
- $w->insert('insert',$s);
- $w->SeeInsert
-}
-# Backspace --
-# Backspace over the character just before the insertion cursor.
-#
-# Arguments:
-# w - The entry window in which to backspace.
-sub Backspace
-{
- my $w = shift;
- if ($w->selectionPresent)
- {
- $w->deleteSelected
- }
- else
- {
- my $x = $w->index('insert')-1;
- $w->delete($x) if ($x >= 0);
- }
-}
-# SeeInsert
-# Make sure that the insertion cursor is visible in the entry window.
-# If not, adjust the view so that it is.
-#
-# Arguments:
-# w - The entry window.
-sub SeeInsert
-{
- my $w = shift;
- my $c = $w->index('insert');
-#
-# Probably a bug in your version of tcl/tk (I've not this problem
-# when I test Entry in the widget demo for tcl/tk)
-# index('\@0') give always 0. Consequence :
-# if you make <Control-E> or <Control-F> view is adapted
-# but with <Control-A> or <Control-B> view is not adapted
-#
- my $left = $w->index('@0');
- if ($left > $c)
- {
- $w->xview($c);
- return;
- }
- my $x = $w->width;
- while ($w->index('@' . $x) <= $c && $left < $c)
- {
- $left += 1;
- $w->xview($left)
- }
-}
-# SetCursor
-# Move the insertion cursor to a given position in an entry. Also
-# clears the selection, if there is one in the entry, and makes sure
-# that the insertion cursor is visible.
-#
-# Arguments:
-# w - The entry window.
-# pos - The desired new position for the cursor in the window.
-sub SetCursor
-{
- my $w = shift;
- my $pos = shift;
- $w->icursor($pos);
- $w->selectionClear;
- $w->SeeInsert;
-}
-# Transpose
-# This procedure implements the 'transpose' function for entry widgets.
-# It tranposes the characters on either side of the insertion cursor,
-# unless the cursor is at the end of the line. In this case it
-# transposes the two characters to the left of the cursor. In either
-# case, the cursor ends up to the right of the transposed characters.
-#
-# Arguments:
-# w - The entry window.
-sub Transpose
-{
- my $w = shift;
- my $i = $w->index('insert');
- $i++ if ($i < $w->index('end'));
- my $first = $i-2;
- return if ($first < 0);
- my $str = $w->get;
- my $new = substr($str,$i-1,1) . substr($str,$first,1);
- $w->delete($first,$i);
- $w->insert('insert',$new);
- $w->SeeInsert;
-}
-
-sub tabFocus
-{
- my $w = shift;
- $w->selectionRange(0,'end');
- $w->icursor('end');
- $w->SUPER::tabFocus;
-}
-
-sub getSelected
-{
- my $w = shift;
- return undef unless $w->selectionPresent;
- my $str = $w->get;
- my $show = $w->cget('-show');
- $str = $show x length($str) if (defined $show);
- my $s = $w->index('sel.first');
- my $e = $w->index('sel.last');
- return substr($str,$s,$e+1-$s);
-}
-
-1;
-
-__END__
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Event.pm b/Master/xemtex/perl/site/lib/Tk/Event.pm
deleted file mode 100644
index b162e475d4a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Event.pm
+++ /dev/null
@@ -1,13 +0,0 @@
-package Tk::Event;
-use vars qw($VERSION $XS_VERSION @EXPORT_OK);
-END { CleanupGlue() }
-$VERSION = '3.026'; # $Id: //depot/Tk8/Event/Event.pm#26 $
-$XS_VERSION = '800.024';
-require DynaLoader;
-use base qw(Exporter DynaLoader);
-@EXPORT_OK = qw($XS_VERSION DONT_WAIT WINDOW_EVENTS FILE_EVENTS
- TIMER_EVENTS IDLE_EVENTS ALL_EVENTS);
-bootstrap Tk::Event;
-require Tk::Event::IO;
-1;
-__END__
diff --git a/Master/xemtex/perl/site/lib/Tk/Event/IO.pm b/Master/xemtex/perl/site/lib/Tk/Event/IO.pm
deleted file mode 100644
index a28ae54147a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Event/IO.pm
+++ /dev/null
@@ -1,122 +0,0 @@
-package Tk::Event::IO;
-
-use vars qw($VERSION @EXPORT_OK);
-$VERSION = '3.036'; # $Id: //depot/Tk8/Event/Event/IO.pm#12 $ +24
-
-use base qw(Exporter);
-use Symbol ();
-
-@EXPORT_OK = qw(READABLE WRITABLE);
-
-sub PrintArgs
-{
- my $func = (caller(1))[3];
- print "$func(",join(',',@_),")\n";
-}
-
-sub PRINT
-{
- my $obj = shift;
- $obj->wait(WRITABLE);
- my $h = $obj->handle;
- return print $h @_;
-}
-
-sub PRINTF
-{
- my $obj = shift;
- $obj->wait(WRITABLE);
- my $h = $obj->handle;
- return printf $h @_;
-}
-
-sub WRITE
-{
- my $obj = $_[0];
- $obj->wait(WRITABLE);
- return syswrite($obj->handle,$_[1],$_[2]);
-}
-
-my $depth = 0;
-sub READLINE
-{
- my $obj = shift;
- $obj->wait(READABLE);
- my $h = $obj->handle;
- my $w = <$h>;
- return $w;
-}
-
-sub READ
-{
- my $obj = $_[0];
- $obj->wait(READABLE);
- my $h = $obj->handle;
- return sysread($h,$_[1],$_[2],defined $_[3] ? $_[3] : 0);
-}
-
-sub GETC
-{
- my $obj = $_[0];
- $obj->wait(READABLE);
- my $h = $obj->handle;
- return getc($h);
-}
-
-sub CLOSE
-{
- my $obj = shift;
- $obj->unwatch;
- my $h = $obj->handle;
- return close($h);
-}
-
-sub EOF
-{
- my $obj = shift;
- my $h = $obj->handle;
- return eof($h);
-}
-
-sub FILENO
-{
- my $obj = shift;
- my $h = $obj->handle;
- return fileno($h);
-}
-
-sub imode
-{
- my $mode = shift;
- my $imode = ${{'readable' => READABLE(),
- 'writable' => WRITABLE()}}{$mode};
- croak("Invalid handler type '$mode'") unless (defined $imode);
- return $imode;
-}
-
-sub fileevent
-{
- my ($widget,$file,$mode,$cb) = @_;
- my $imode = imode($mode);
- unless (ref $file)
- {
- no strict 'refs';
- $file = Symbol::qualify($file,(caller)[0]);
- $file = \*{$file};
- }
- my $obj = tied(*$file);
- $obj = tie *$file,'Tk::Event::IO', $file unless $obj && $obj->isa('Tk::Event::IO');
- if (@_ == 3)
- {
- return $obj->handler($imode);
- }
- else
- {
- my $h = $obj->handler($imode,$cb);
- undef $obj;
- untie *$file unless $h;
- }
-}
-
-1;
-__END__
diff --git a/Master/xemtex/perl/site/lib/Tk/FBox.pm b/Master/xemtex/perl/site/lib/Tk/FBox.pm
deleted file mode 100644
index bcc6ef1bf21..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/FBox.pm
+++ /dev/null
@@ -1,891 +0,0 @@
-# -*- perl -*-
-#
-# tkfbox.tcl --
-#
-# Implements the "TK" standard file selection dialog box. This
-# dialog box is used on the Unix platforms whenever the tk_strictMotif
-# flag is not set.
-#
-# The "TK" standard file selection dialog box is similar to the
-# file selection dialog box on Win95(TM). The user can navigate
-# the directories by clicking on the folder icons or by
-# selecting the "Directory" option menu. The user can select
-# files by clicking on the file icons or by entering a filename
-# in the "Filename:" entry.
-#
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# Translated to perk/Tk by Slaven Rezic <eserte@cs.tu-berlin.de>.
-#
-
-#----------------------------------------------------------------------
-#
-# F I L E D I A L O G
-#
-#----------------------------------------------------------------------
-# tkFDialog --
-#
-# Implements the TK file selection dialog. This dialog is used when
-# the tk_strictMotif flag is set to false. This procedure shouldn't
-# be called directly. Call tk_getOpenFile or tk_getSaveFile instead.
-#
-
-package Tk::FBox;
-require Tk::Toplevel;
-
-use strict;
-use vars qw($VERSION $updirImage $folderImage $fileImage);
-
-$VERSION = '3.020'; # $Id: //depot/Tk8/Tk/FBox.pm#20 $
-
-use base qw(Tk::Toplevel);
-
-Construct Tk::Widget 'FBox';
-
-my $selectFilePath;
-my $selectFile;
-my $selectPath;
-
-sub import {
- if (defined $_[1] and $_[1] eq 'as_default') {
- local $^W = 0;
- package Tk;
- *FDialog = \&Tk::FBox::FDialog;
- *MotifFDialog = \&Tk::FBox::FDialog;
- }
-}
-
-sub Populate {
- my($w, $args) = @_;
-
- require Tk::IconList;
- require File::Basename;
- require Cwd;
-
- $w->SUPER::Populate($args);
-
- # f1: the frame with the directory option menu
- my $f1 = $w->Frame;
- my $lab = $f1->Label(-text => 'Directory:', -underline => 0);
- $w->{'dirMenu'} = my $dirMenu =
- $f1->Optionmenu(-variable => \$w->{'selectPath'},
- -textvariable => \$w->{'selectPath'},
- -command => ['SetPath', $w]);
- my $upBtn = $f1->Button;
- if (!defined $updirImage) {
- $updirImage = $w->Bitmap(-data => "#define updir_width 28\n" .
- "#define updir_height 16\n" .
- <<EOF);
-static char updir_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00,
- 0x20, 0x40, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x10, 0x00, 0x00, 0x01,
- 0x10, 0x02, 0x00, 0x01, 0x10, 0x07, 0x00, 0x01, 0x90, 0x0f, 0x00, 0x01,
- 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01,
- 0x10, 0xfe, 0x07, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01,
- 0xf0, 0xff, 0xff, 0x01};
-EOF
- }
- $upBtn->configure(-image => $updirImage);
- $dirMenu->configure(-takefocus => 1, -highlightthickness => 2);
- $upBtn->pack(-side => 'right', -padx => 4, -fill => 'both');
- $lab->pack(-side => 'left', -padx => 4, -fill => 'both');
- $dirMenu->pack(-expand => 'yes', -fill => 'both', -padx => 4);
-
- $w->{'icons'} = my $icons =
- $w->IconList(-browsecmd => ['ListBrowse', $w],
- -command => ['ListInvoke', $w],
- );
-
- # f2: the frame with the OK button and the "file name" field
- my $f2 = $w->Frame(-bd => 0);
- my $f2_lab = $f2->Label(-text => 'File name:', -anchor => 'e',
- -width => 14, -underline => 5, -pady => 0);
- $w->{'ent'} = my $ent = $f2->Entry;
-
- # The font to use for the icons. The default Canvas font on Unix
- # is just deviant.
-# $w->{'icons'}{'font'} = $ent->cget(-font);
- $w->{'icons'}->configure(-font => $ent->cget(-font));
-
- # f3: the frame with the cancel button and the file types field
- my $f3 = $w->Frame(-bd => 0);
-
- # The "File of types:" label needs to be grayed-out when
- # -filetypes are not specified. The label widget does not support
- # grayed-out text on monochrome displays. Therefore, we have to
- # use a button widget to emulate a label widget (by setting its
- # bindtags)
- $w->{'typeMenuLab'} = my $typeMenuLab = $f3->Button
- (-text => 'Files of type:',
- -anchor => 'e',
- -width => 14,
- -underline => 9,
- -bd => $f2_lab->cget(-bd),
- -highlightthickness => $f2_lab->cget(-highlightthickness),
- -relief => $f2_lab->cget(-relief),
- -padx => $f2_lab->cget(-padx),
- -pady => $f2_lab->cget(-pady),
- );
- $typeMenuLab->bindtags([$typeMenuLab, 'Label',
- $typeMenuLab->toplevel, 'all']);
- $w->{'typeMenuBtn'} = my $typeMenuBtn =
- $f3->Menubutton(-indicatoron => 1, -tearoff => 0);
- $typeMenuBtn->configure(-takefocus => 1,
- -highlightthickness => 2,
- -relief => 'raised',
- -bd => 2,
- -anchor => 'w',
- );
-
- # the okBtn is created after the typeMenu so that the keyboard traversal
- # is in the right order
- $w->{'okBtn'} = my $okBtn = $f2->Button
- (-text => 'OK',
- -underline => 0,
- -width => 6,
- -default => 'active',
- -pady => 3,
- );
- my $cancelBtn = $f3->Button
- (-text => 'Cancel',
- -underline => 0,
- -width => 6,
- -default => 'normal',
- -pady => 3,
- );
-
- # pack the widgets in f2 and f3
- $okBtn->pack(-side => 'right', -padx => 4, -anchor => 'e');
- $f2_lab->pack(-side => 'left', -padx => 4);
- $ent->pack(-expand => 'yes', -fill => 'x', -padx => 2, -pady => 0);
- $cancelBtn->pack(-side => 'right', -padx => 4, -anchor => 'w');
- $typeMenuLab->pack(-side => 'left', -padx => 4);
- $typeMenuBtn->pack(-expand => 'yes', -fill => 'x', -side => 'right');
-
- # Pack all the frames together. We are done with widget construction.
- $f1->pack(-side => 'top', -fill => 'x', -pady => 4);
- $f3->pack(-side => 'bottom', -fill => 'x');
- $f2->pack(-side => 'bottom', -fill => 'x');
- $icons->pack(-expand => 'yes', -fill => 'both', -padx => 4, -pady => 1);
-
- # Set up the event handlers
- $ent->bind('<Return>',[$w,'ActivateEnt']);
- $upBtn->configure(-command => ['UpDirCmd', $w]);
- $okBtn->configure(-command => ['OkCmd', $w]);
- $cancelBtn->configure(-command, ['CancelCmd', $w]);
-
- $w->bind('<Alt-d>',[$dirMenu,'focus']);
- $w->bind('<Alt-t>',sub {
- if ($typeMenuBtn->cget(-state) eq 'normal') {
- $typeMenuBtn->focus;
- } });
- $w->bind('<Alt-n>',[$ent,'focus']);
- $w->bind('<KeyPress-Escape>',[$cancelBtn,'invoke']);
- $w->bind('<Alt-c>',[$cancelBtn,'invoke']);
- $w->bind('<Alt-o>',['InvokeBtn','Open']);
- $w->bind('<Alt-s>',['InvokeBtn','Save']);
- $w->protocol('WM_DELETE_WINDOW', ['CancelCmd', $w]);
- $w->OnDestroy(['CancelCmd', $w]);
-
- # Build the focus group for all the entries
- $w->FG_Create;
- $w->FG_BindIn($ent, ['EntFocusIn', $w]);
- $w->FG_BindOut($ent, ['EntFocusOut', $w]);
-
- $w->SetPath(_cwd());
-
- $w->ConfigSpecs(-defaultextension => ['PASSIVE', undef, undef, undef],
- -filetypes => ['PASSIVE', undef, undef, undef],
- -initialdir => ['PASSIVE', undef, undef, undef],
- -initialfile => ['PASSIVE', undef, undef, undef],
- -title => ['PASSIVE', undef, undef, undef],
- -type => ['PASSIVE', undef, undef, 'open'],
- -filter => ['PASSIVE', undef, undef, '*'],
- -force => ['PASSIVE', undef, undef, 0],
- 'DEFAULT' => [$icons],
- );
- # So-far-failed attempt to break reference loops ...
- $w->_OnDestroy(qw(dirMenu icons typeMenuLab typeMenuBtn okBtn ent updateId));
- $w;
-}
-
-
-sub Show {
- my $w = shift;
-
- $w->configure(@_);
-
- $w->transient($w->Parent);
-
- # set the default directory and selection according to the -initial
- # settings
- {
- my $initialdir = $w->cget(-initialdir);
- if (defined $initialdir) {
- if (-d $initialdir) {
- $w->{'selectPath'} = $initialdir;
- } else {
- $w->Error("\"$initialdir\" is not a valid directory");
- }
- }
- $w->{'selectFile'} = $w->cget(-initialfile);
- }
-
- # Initialize the file types menu
- my $typeMenuBtn = $w->{'typeMenuBtn'};
- my $typeMenuLab = $w->{'typeMenuLab'};
- if (defined $w->cget('-filetypes')) {
- my(@filetypes) = GetFileTypes($w->cget('-filetypes'));
- my $typeMenu = $typeMenuBtn->cget(-menu);
- $typeMenu->delete(0, 'end');
- foreach my $ft (@filetypes) {
- my $title = $ft->[0];
- my $filter = join(' ', @{ $ft->[1] });
- $typeMenuBtn->command
- (-label => $title,
- -command => ['SetFilter', $w, $title, $filter],
- );
- }
- $w->SetFilter($filetypes[0]->[0], join(' ', @{ $filetypes[0]->[1] }));
- $typeMenuBtn->configure(-state => 'normal');
- $typeMenuLab->configure(-state => 'normal');
- } else {
- $w->configure(-filter => '*');
- $typeMenuBtn->configure(-state => 'disabled',
- -takefocus => 0);
- $typeMenuLab->configure(-state => 'disabled');
- }
- $w->UpdateWhenIdle;
-
- # Withdraw the window, then update all the geometry information
- # so we know how big it wants to be, then center the window in the
- # display and de-iconify it.
- $w->withdraw;
- $w->idletasks;
- my $x = int($w->screenwidth / 2 - $w->reqwidth / 2 - $w->parent->vrootx);
- my $y = int($w->screenheight / 2 - $w->reqheight / 2 - $w->parent->vrooty);
- $w->geometry("+$x+$y");
-
- {
- my $title = $w->cget(-title);
- if (!defined $title) {
- $title = ($w->cget(-type) eq 'open' ? 'Open' : 'Save As');
- }
- $w->title($title);
- }
-
- $w->deiconify;
- # Set a grab and claim the focus too.
- my $oldFocus = $w->focusCurrent;
- my $oldGrab = $w->grabCurrent;
- my $grabStatus = $oldGrab->grabStatus if ($oldGrab);
- $w->grab;
- my $ent = $w->{'ent'};
- $ent->focus;
- $ent->delete(0, 'end');
- $ent->insert(0, $w->{'selectFile'});
- $ent->selectionFrom(0);
- $ent->selectionTo('end');
- $ent->icursor('end');
-
- # 8. Wait for the user to respond, then restore the focus and
- # return the index of the selected button. Restore the focus
- # before deleting the window, since otherwise the window manager
- # may take the focus away so we can't redirect it. Finally,
- # restore any grab that was in effect.
- $w->waitVariable(\$selectFilePath);
- eval {
- $oldFocus->focus if $oldFocus;
- };
- if (Tk::Exists($w)) { # widget still exists
- $w->grabRelease;
- $w->withdraw;
- }
- if ($oldGrab) {
- if ($grabStatus eq 'global') {
- $oldGrab->grabGlobal;
- } else {
- $oldGrab->grab;
- }
- }
- return $selectFilePath;
-}
-
-# tkFDialog_UpdateWhenIdle --
-#
-# Creates an idle event handler which updates the dialog in idle
-# time. This is important because loading the directory may take a long
-# time and we don't want to load the same directory for multiple times
-# due to multiple concurrent events.
-#
-sub UpdateWhenIdle {
- my $w = shift;
- if (exists $w->{'updateId'}) {
- return;
- } else {
- $w->{'updateId'} = $w->after('idle', [$w, 'Update']);
- }
-}
-
-# tkFDialog_Update --
-#
-# Loads the files and directories into the IconList widget. Also
-# sets up the directory option menu for quick access to parent
-# directories.
-#
-sub Update {
- my $w = shift;
- my $dataName = $w->name;
-
- # This proc may be called within an idle handler. Make sure that the
- # window has not been destroyed before this proc is called
- if (!Tk::Exists($w) || $w->class ne 'FBox') {
- return;
- } else {
- delete $w->{'updateId'};
- }
- unless (defined $folderImage) {
- require Tk::Pixmap;
- $folderImage = $w->Pixmap(-file => Tk->findINC('folder.xpm'));
- $fileImage = $w->Pixmap(-file => Tk->findINC('file.xpm'));
- }
- my $folder = $folderImage;
- my $file = $fileImage;
- my $appPWD = _cwd();
- if (!ext_chdir($w->{'selectPath'})) {
- # We cannot change directory to $data(selectPath). $data(selectPath)
- # should have been checked before tkFDialog_Update is called, so
- # we normally won't come to here. Anyways, give an error and abort
- # action.
- $w->messageBox(-type => 'OK',
- -message => 'Cannot change to the directory "' .
- $w->{'selectPath'} . "\".\nPermission denied.",
- -icon => 'warning',
- );
- ext_chdir($appPWD);
- return;
- }
-
- # Turn on the busy cursor. BUG?? We haven't disabled X events, though,
- # so the user may still click and cause havoc ...
- my $ent = $w->{'ent'};
- my $entCursor = $ent->cget(-cursor);
- my $dlgCursor = $w->cget(-cursor);
- $ent->configure(-cursor => 'watch');
- $w->configure(-cursor => 'watch');
- $w->idletasks;
- my $icons = $w->{'icons'};
- $icons->DeleteAll;
-
- # Make the dir & file list
- my $flt = join('|', split(' ', $w->cget(-filter)) );
- $flt =~ s!([\.\+])!\\$1!g;
- $flt =~ s!\*!.*!g;
- local *FDIR;
- if( opendir( FDIR, _cwd() )) {
- my @files;
- foreach my $f (sort { lc($a) cmp lc($b) } readdir FDIR) {
- next if $f eq '.' or $f eq '..';
- if (-d $f) { $icons->Add($folder, $f); }
- elsif( $f =~ m!$flt$! ) { push( @files, $f ); }
- }
- closedir( FDIR );
- foreach my $f ( @files ) { $icons->Add($file, $f); }
- }
-
- $icons->Arrange;
-
- # Update the Directory: option menu
- my @list;
- my $dir = '';
- foreach my $subdir (TclFileSplit($w->{'selectPath'})) {
- $dir = TclFileJoin($dir, $subdir);
- push @list, $dir;
- }
- my $dirMenu = $w->{'dirMenu'};
- $dirMenu->configure(-options => \@list);
-
- # Restore the PWD to the application's PWD
- ext_chdir($appPWD);
-
- # Restore the Save label
- if ($w->cget(-type) eq 'save') {
- $w->{'okBtn'}->configure(-text => 'Save');
- }
-
- # turn off the busy cursor.
- $ent->configure(-cursor => $entCursor);
- $w->configure(-cursor => $dlgCursor);
-}
-
-# tkFDialog_SetPathSilently --
-#
-# Sets data(selectPath) without invoking the trace procedure
-#
-sub SetPathSilently {
- my($w, $path) = @_;
-
- $w->{'selectPath'} = $path;
-}
-
-# This proc gets called whenever data(selectPath) is set
-#
-sub SetPath {
- my $w = shift;
- $w->{'selectPath'} = $_[0] if @_;
- $w->UpdateWhenIdle;
-}
-
-# This proc gets called whenever data(filter) is set
-#
-sub SetFilter {
- my($w, $title, $filter) = @_;
- $w->configure(-filter => $filter);
- $w->{'typeMenuBtn'}->configure(-text => $title,
- -indicatoron => 1);
- $w->{'icons'}->Subwidget('sbar')->set(0.0, 0.0);
- $w->UpdateWhenIdle;
-}
-
-# tkFDialogResolveFile --
-#
-# Interpret the user's text input in a file selection dialog.
-# Performs:
-#
-# (1) ~ substitution
-# (2) resolve all instances of . and ..
-# (3) check for non-existent files/directories
-# (4) check for chdir permissions
-#
-# Arguments:
-# context: the current directory you are in
-# text: the text entered by the user
-# defaultext: the default extension to add to files with no extension
-#
-# Return value:
-# [list $flag $directory $file]
-#
-# flag = OK : valid input
-# = PATTERN : valid directory/pattern
-# = PATH : the directory does not exist
-# = FILE : the directory exists but the file doesn't
-# exist
-# = CHDIR : Cannot change to the directory
-# = ERROR : Invalid entry
-#
-# directory : valid only if flag = OK or PATTERN or FILE
-# file : valid only if flag = OK or PATTERN
-#
-# directory may not be the same as context, because text may contain
-# a subdirectory name
-#
-sub ResolveFile {
- my($context, $text, $defaultext) = @_;
- my $appPWD = _cwd();
- my $path = JoinFile($context, $text);
- $path = "$path$defaultext" if ($path !~ /\..+$/) and defined $defaultext;
- # Cannot just test for existance here as non-existing files are
- # not an error for getSaveFile type dialogs.
- # return ('ERROR', $path, "") if (!-e $path);
- my($directory, $file, $flag);
- if (-e $path) {
- if (-d $path) {
- if (!ext_chdir($path)) {
- return ('CHDIR', $path, '');
- }
- $directory = _cwd();
- $file = '';
- $flag = 'OK';
- ext_chdir($appPWD);
- } else {
- my $dirname = File::Basename::dirname($path);
- if (!ext_chdir($dirname)) {
- return ('CHDIR', $dirname, '');
- }
- $directory = _cwd();
- $file = File::Basename::basename($path);
- $flag = 'OK';
- ext_chdir($appPWD);
- }
- } else {
- my $dirname = File::Basename::dirname($path);
- if (-e $dirname) {
- if (!ext_chdir($dirname)) {
- return ('CHDIR', $dirname, '');
- }
- $directory = _cwd();
- $file = File::Basename::basename($path);
- if ($file =~ /[*?]/) {
- $flag = 'PATTERN';
- } else {
- $flag = 'FILE';
- }
- ext_chdir($appPWD);
- } else {
- $directory = $dirname;
- $file = File::Basename::basename($path);
- $flag = 'PATH';
- }
- }
- return ($flag,$directory,$file);
-}
-
-# Gets called when the entry box gets keyboard focus. We clear the selection
-# from the icon list . This way the user can be certain that the input in the
-# entry box is the selection.
-#
-sub EntFocusIn {
- my $w = shift;
- my $ent = $w->{'ent'};
- if ($ent->get ne '') {
- $ent->selectionFrom(0);
- $ent->selectionTo('end');
- $ent->icursor('end');
- } else {
- $ent->selectionClear;
- }
- $w->{'icons'}->Unselect;
- my $okBtn = $w->{'okBtn'};
- if ($w->cget(-type) eq 'open') {
- $okBtn->configure(-text => 'Open');
- } else {
- $okBtn->configure(-text => 'Save');
- }
-}
-
-sub EntFocusOut {
- my $w = shift;
- $w->{'ent'}->selectionClear;
-}
-
-# Gets called when user presses Return in the "File name" entry.
-#
-sub ActivateEnt {
- my $w = shift;
- my $ent = $w->{'ent'};
- my $text = $ent->get;
- $text =~ s/^\s+//;
- $text =~ s/\s+$//;
- my($flag, $path, $file) = ResolveFile($w->{'selectPath'}, $text,
- $w->cget(-defaultextension));
- if ($flag eq 'OK') {
- if ($file eq '') {
- # user has entered an existing (sub)directory
- $w->SetPath($path);
- $ent->delete(0, 'end');
- } else {
- $w->SetPathSilently($path);
- $w->{'selectFile'} = $file;
- $w->Done;
- }
- } elsif ($flag eq 'PATTERN') {
- $w->SetPath($path);
- $w->configure(-filter => $file);
- } elsif ($flag eq 'FILE') {
- if ($w->cget(-type) eq 'open') {
- $w->messageBox(-icon => 'warning',
- -type => 'OK',
- -message => 'File "' . TclFileJoin($path, $file)
- . '" does not exist.');
- $ent->selection('from', 0);
- $ent->selection('to', 'end');
- $ent->icursor('end');
- } else {
- $w->SetPathSilently($path);
- $w->{'selectFile'} = $file;
- $w->Done;
- }
- } elsif ($flag eq 'PATH') {
- $w->messageBox(-icon => 'warning',
- -type => 'OK',
- -message => "Directory \'$path\' does not exist.");
- $ent->selection('from', 0);
- $ent->selection('to', 'end');
- $ent->icursor('end');
- } elsif ($flag eq 'CHDIR') {
- $w->messageBox(-type => 'OK',
- -message => "Cannot change to the directory \"$path\".\nPermission denied.",
- -icon => 'warning');
- $ent->selection('from', 0);
- $ent->selection('to', 'end');
- $ent->icursor('end');
- } elsif ($flag eq 'ERROR') {
- $w->messageBox(-type => 'OK',
- -message => "Invalid file name \"$path\".",
- -icon => 'warning');
- $ent->selection('from', 0);
- $ent->selection('to', 'end');
- $ent->icursor('end');
- }
-}
-
-# Gets called when user presses the Alt-s or Alt-o keys.
-#
-sub InvokeBtn {
- my($w, $key) = @_;
- my $okBtn = $w->{'okBtn'};
- $okBtn->invoke if ($okBtn->cget(-text) eq $key);
-}
-
-# Gets called when user presses the "parent directory" button
-#
-sub UpDirCmd {
- my $w = shift;
- $w->SetPath(File::Basename::dirname($w->{'selectPath'}))
- unless ($w->{'selectPath'} eq '/');
-}
-
-# Join a file name to a path name. The "file join" command will break
-# if the filename begins with ~
-sub JoinFile {
- my($path, $file) = @_;
- if ($file =~ /^~/ && -e "$path/$file") {
- TclFileJoin($path, "./$file");
- } else {
- TclFileJoin($path, $file);
- }
-}
-
-# XXX replace with File::Spec when perl/Tk depends on 5.005
-sub TclFileJoin {
- my $path = '';
- foreach (@_) {
- if (m|^/|) {
- $path = $_;
- }
- elsif (m|^[a-z]:/|i) { # DOS-ish
- $path = $_;
- } elsif ($_ eq '~') {
- $path = _get_homedir();
- } elsif (m|^~/(.*)|) {
- $path = _get_homedir() . "/" . $1;
- } elsif (m|^~([^/]+)(.*)|) {
- my($user, $p) = ($1, $2);
- my $dir = _get_homedir($user);
- if (!defined $dir) {
- $path = "~$user$p";
- } else {
- $path = $dir . $p;
- }
- } elsif ($path eq '/' or $path eq '') {
- $path .= $_;
- } else {
- $path .= "/$_";
- }
- }
- $path;
-}
-
-sub TclFileSplit {
- my $path = shift;
- my @comp;
- $path =~ s|/+|/|g; # strip multiple slashes
- if ($path =~ m|^/|) {
- push @comp, '/';
- $path = substr($path, 1);
- }
- push @comp, split /\//, $path;
- @comp;
-}
-
-# Gets called when user presses the "OK" button
-#
-sub OkCmd {
- my $w = shift;
- my $text = $w->{'icons'}->Get;
- if (defined $text and $text ne '') {
- my $file = JoinFile($w->{'selectPath'}, $text);
- if (-d $file) {
- $w->ListInvoke($text);
- return;
- }
- }
- $w->ActivateEnt;
-}
-
-# Gets called when user presses the "Cancel" button
-#
-sub CancelCmd {
- undef $selectFilePath;
-}
-
-# Gets called when user browses the IconList widget (dragging mouse, arrow
-# keys, etc)
-#
-sub ListBrowse {
- my($w, $text) = @_;
- return if ($text eq '');
- my $file = JoinFile($w->{'selectPath'}, $text);
- my $ent = $w->{'ent'};
- my $okBtn = $w->{'okBtn'};
- unless (-d $file) {
- $ent->delete(0, 'end');
- $ent->insert(0, $text);
- if ($w->cget(-type) eq 'open') {
- $okBtn->configure(-text => 'Open');
- } else {
- $okBtn->configure(-text => 'Save');
- }
- } else {
- $okBtn->configure(-text => 'Open');
- }
-}
-
-# Gets called when user invokes the IconList widget (double-click,
-# Return key, etc)
-#
-sub ListInvoke {
- my($w, $text) = @_;
- return if ($text eq '');
- my $file = JoinFile($w->{'selectPath'}, $text);
- if (-d $file) {
- my $appPWD = _cwd();
- if (!ext_chdir($file)) {
- $w->messageBox(-type => 'OK',
- -message => "Cannot change to the directory \"$file\".\nPermission denied.",
- -icon => 'warning');
- } else {
- ext_chdir($appPWD);
- $w->SetPath($file);
- }
- } else {
- $w->{'selectFile'} = $file;
- $w->Done;
- }
-}
-
-# tkFDialog_Done --
-#
-# Gets called when user has input a valid filename. Pops up a
-# dialog box to confirm selection when necessary. Sets the
-# tkPriv(selectFilePath) variable, which will break the "tkwait"
-# loop in tkFDialog and return the selected filename to the
-# script that calls tk_getOpenFile or tk_getSaveFile
-#
-sub Done {
- my $w = shift;
- my $_selectFilePath = (@_) ? shift : '';
- if ($_selectFilePath eq '') {
- $_selectFilePath = JoinFile($w->{'selectPath'}, $w->{'selectFile'});
- if (-e $_selectFilePath and
- $w->cget(-type) eq 'save' and
- !$w->cget(-force)) {
- my $reply = $w->messageBox
- (-icon => 'warning',
- -type => 'YesNo',
- -message => "File \"$_selectFilePath\" already exists.\nDo you want to overwrite it?");
- return unless (lc($reply) eq 'yes');
- }
- }
- $selectFilePath = ($_selectFilePath ne '' ? $_selectFilePath : undef);
-}
-
-sub FDialog {
- my $cmd = shift;
- if ($cmd =~ /Save/) {
- push @_, -type => 'save';
- }
- Tk::DialogWrapper('FBox', $cmd, @_);
-}
-
-# tkFDGetFileTypes --
-#
-# Process the string given by the -filetypes option of the file
-# dialogs. Similar to the C function TkGetFileFilters() on the Mac
-# and Windows platform.
-#
-sub GetFileTypes {
- my $in = shift;
- my %fileTypes;
- foreach my $t (@$in) {
- if (@$t < 2 || @$t > 3) {
- require Carp;
- Carp::croak("bad file type \"$t\", should be \"typeName [extension ?extensions ...?] ?[macType ?macTypes ...?]?\"");
- }
- push @{ $fileTypes{$t->[0]} }, (ref $t->[1] eq 'ARRAY'
- ? @{ $t->[1] }
- : $t->[1]);
- }
-
- my @types;
- my %hasDoneType;
- my %hasGotExt;
- foreach my $t (@$in) {
- my $label = $t->[0];
- my @exts;
-
- next if (exists $hasDoneType{$label});
-
- my $name = "$label (";
- my $sep = '';
- foreach my $ext (@{ $fileTypes{$label} }) {
- next if ($ext eq '');
- $ext =~ s/^\./*./;
- if (!exists $hasGotExt{$label}->{$ext}) {
- $name .= "$sep$ext";
- push @exts, $ext;
- $hasGotExt{$label}->{$ext}++;
- }
- $sep = ',';
- }
- $name .= ')';
- push @types, [$name, \@exts];
-
- $hasDoneType{$label}++;
- }
-
- return @types;
-}
-
-# ext_chdir --
-#
-# Change directory with tilde substitution
-#
-sub ext_chdir {
- my $dir = shift;
- if ($dir eq '~') {
- chdir _get_homedir();
- } elsif ($dir =~ m|^~/(.*)|) {
- chdir _get_homedir() . "/" . $1;
- } elsif ($dir =~ m|^~([^/]+(.*))|) {
- chdir _get_homedir($1) . $2;
- } else {
- chdir $dir;
- }
-}
-
-# _get_homedir --
-#
-# Get home directory of the current user
-#
-sub _get_homedir {
- my($user) = @_;
- if (!defined $user) {
- eval {
- local $SIG{__DIE__};
- (getpwuid($<))[7];
- } || $ENV{HOME} || undef; # chdir undef changes to home directory, too
- } else {
- eval {
- local $SIG{__DIE__};
- (getpwnam($user))[7];
- };
- }
-}
-
-sub _cwd {
- #Cwd::cwd();
- Cwd::fastcwd(); # this is taint-safe
-}
-
-sub _untaint {
- my $s = shift;
- $s =~ /^(.*)$/;
- $1;
-}
-
-1;
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Frame.pm b/Master/xemtex/perl/site/lib/Tk/Frame.pm
deleted file mode 100644
index b80937b8189..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Frame.pm
+++ /dev/null
@@ -1,373 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Frame;
-require Tk::Widget;
-require Tk::Derived;
-use AutoLoader;
-use strict qw(vars);
-use Carp;
-
-use base qw(Tk::Derived Tk::Widget);
-
-Construct Tk::Widget 'Frame';
-
-
-use vars qw($VERSION);
-$VERSION = '3.031'; # $Id: //depot/Tk8/Tk/Frame.pm#31 $
-
-sub Tk_cmd { \&Tk::frame }
-
-sub CreateOptions
-{
- return (shift->SUPER::CreateOptions,'-colormap','-visual','-container')
-}
-
-sub Default
-{
- my ($cw,$name,$widget) = @_;
- confess 'No name' unless (defined $name);
- croak 'No widget' unless (defined $widget);
- $cw->Delegates(DEFAULT => $widget);
- $cw->ConfigSpecs(DEFAULT => [$widget]);
- $widget->pack('-expand' => 1, -fill => 'both') unless ($widget->manager); # Suspect
- $cw->Advertise($name,$widget);
-}
-
-sub ConfigDelegate
-{
- my ($cw,$name,@skip) = @_;
- my $sw = $cw->Subwidget($name);
- my $sc;
- my %skip = ();
- foreach $sc (@skip)
- {
- $skip{$sc} = 1;
- }
- foreach $sc ($sw->configure)
- {
- my (@info) = @$sc;
- next if (@info == 2);
- my $option = $info[0];
- unless ($skip{$option})
- {
- $option =~ s/^-(.*)/-$name\u$1/;
- $info[0] = Tk::Configure->new($sw,$info[0]);
- pop(@info);
- $cw->ConfigSpecs($option => \@info);
- }
- }
-}
-
-sub bind
-{my ($cw,@args) = @_;
- $cw->Delegate('bind',@args);
-}
-
-sub menu
-{my ($cw,@args) = @_;
- $cw->Delegate('menu',@args);
-}
-
-sub focus
-{my ($cw,@args) = @_;
- $cw->Delegate('focus',@args);
-}
-
-#sub bindtags
-#{my ($cw,@args) = @_;
-# $cw->Delegate('bindtags',@args);
-#}
-
-sub selection
-{my ($cw,@args) = @_;
- $cw->Delegate('selection',@args);
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
- $cw->ConfigSpecs('-labelPack' => [ 'METHOD', undef, undef, undef]);
- $cw->ConfigSpecs('-labelVariable' => [ 'METHOD', undef, undef, undef]);
- $cw->ConfigSpecs('-label' => [ 'METHOD', undef, undef, undef]);
- $cw->labelPack([]) if grep /^-label\w+/, keys %$args;
-}
-
-sub Menubar
-{
- my $frame = shift;
- my $menu = $frame->cget('-menu');
- if (defined $menu)
- {
- $menu->configure(@_) if @_;
- }
- else
- {
- $menu = $frame->Menu(-type => 'menubar',@_);
- $frame->configure('-menu' => $menu);
- }
- $frame->Advertise('menubar' => $menu);
- return $menu;
-}
-
-1;
-
-__END__
-
-sub labelPack
-{
- my ($cw,$val) = @_;
- my $w = $cw->Subwidget('label');
- my @result = ();
- if (@_ > 1)
- {
- if (defined($w) && !defined($val))
- {
- $w->packForget;
- }
- elsif (defined($val) && !defined ($w))
- {
- require Tk::Label;
- $w = Tk::Label->new($cw,-textvariable => $cw->labelVariable);
- $cw->Advertise('label' => $w);
- $cw->ConfigDelegate('label',qw(-text -textvariable));
- }
- if (defined($val) && defined($w))
- {
- my %pack = @$val;
- unless (exists $pack{-side})
- {
- $pack{-side} = 'top' unless (exists $pack{-side});
- }
- unless (exists $pack{-fill})
- {
- $pack{-fill} = 'x' if ($pack{-side} =~ /(top|bottom)/);
- $pack{-fill} = 'y' if ($pack{-side} =~ /(left|right)/);
- }
- unless (exists($pack{'-before'}) || exists($pack{'-after'}))
- {
- my $before = ($cw->packSlaves)[0];
- $pack{'-before'} = $before if (defined $before);
- }
- $w->pack(%pack);
- }
- }
- @result = $w->packInfo if (defined $w);
- return (wantarray) ? @result : \@result;
-}
-
-sub labelVariable
-{
- my ($cw,$val) = @_;
- my $var = \$cw->{Configure}{'-labelVariable'};
- if (@_ > 1 && defined $val)
- {
- $$var = $val;
- $$val = '' unless (defined $$val);
- my $w = $cw->Subwidget('label');
- unless (defined $w)
- {
- $cw->labelPack([]);
- $w = $cw->Subwidget('label');
- }
- $w->configure(-textvariable => $val);
- }
- return $$var;
-}
-
-sub label
-{
- my ($cw,$val) = @_;
- my $var = $cw->cget('-labelVariable');
- if (@_ > 1 && defined $val)
- {
- if (!defined $var)
- {
- $var = \$cw->{Configure}{'-label'};
- $cw->labelVariable($var);
- }
- $$var = $val;
- }
- return (defined $var) ? $$var : undef;;
-}
-
-sub queuePack
-{
- my ($cw) = @_;
- unless ($cw->{'pack_pending'})
- {
- $cw->{'pack_pending'} = 1;
- $cw->afterIdle([$cw,'packscrollbars']);
- }
-}
-
-sub sbset
-{
- my ($cw,$sb,$ref,@args) = @_;
- $sb->set(@args);
- $cw->queuePack if (@args == 2 && $sb->Needed != $$ref);
-}
-
-sub freeze_on_map
-{
- my ($w) = @_;
- unless ($w->Tk::bind('Freeze','<Map>'))
- {
- $w->Tk::bind('Freeze','<Map>',['packPropagate' => 0])
- }
- $w->AddBindTag('Freeze');
-}
-
-sub AddScrollbars
-{
- require Tk::Scrollbar;
- my ($cw,$w) = @_;
- my $def = '';
- my ($x,$y) = ('','');
- my $s = 0;
- my $c;
- $cw->freeze_on_map;
- foreach $c ($w->configure)
- {
- my $opt = $c->[0];
- if ($opt eq '-yscrollcommand')
- {
- my $slice = Tk::Frame->new($cw,Name => 'ysbslice');
- my $ysb = Tk::Scrollbar->new($slice,-orient => 'vertical', -command => [ 'yview', $w ]);
- my $size = $ysb->cget('-width');
- my $corner = Tk::Frame->new($slice,Name=>'corner','-relief' => 'raised',
- '-width' => $size, '-height' => $size);
- $ysb->pack(-side => 'left', -fill => 'y');
- $cw->Advertise('yscrollbar' => $ysb);
- $cw->Advertise('corner' => $corner);
- $cw->Advertise('ysbslice' => $slice);
- $corner->{'before'} = $ysb->PathName;
- $slice->{'before'} = $w->PathName;
- $y = 'w';
- $s = 1;
- }
- elsif ($opt eq '-xscrollcommand')
- {
- my $xsb = Tk::Scrollbar->new($cw,-orient => 'horizontal', -command => [ 'xview', $w ]);
- $cw->Advertise('xscrollbar' => $xsb);
- $xsb->{'before'} = $w->PathName;
- $x = 's';
- $s = 1;
- }
- }
- if ($s)
- {
- $cw->Advertise('scrolled' => $w);
- $cw->ConfigSpecs('-scrollbars' => ['METHOD','scrollbars','Scrollbars',$x.$y]);
- }
-}
-
-sub packscrollbars
-{
- my ($cw) = @_;
- my $opt = $cw->cget('-scrollbars');
- my $slice = $cw->Subwidget('ysbslice');
- my $xsb = $cw->Subwidget('xscrollbar');
- my $corner = $cw->Subwidget('corner');
- my $w = $cw->Subwidget('scrolled');
- my $xside = (($opt =~ /n/) ? 'top' : 'bottom');
- my $havex = 0;
- my $havey = 0;
- $opt =~ s/r//;
- $cw->{'pack_pending'} = 0;
- if (defined $slice)
- {
- my $reqy;
- my $ysb = $cw->Subwidget('yscrollbar');
- if ($opt =~ /(o)?[we]/ && (($reqy = !defined($1)) || $ysb->Needed))
- {
- my $yside = (($opt =~ /w/) ? 'left' : 'right');
- $slice->pack(-side => $yside, -fill => 'y',-before => $slice->{'before'});
- $havey = 1;
- if ($reqy)
- {
- $w->configure(-yscrollcommand => ['set', $ysb]);
- }
- else
- {
- $w->configure(-yscrollcommand => ['sbset', $cw, $ysb, \$cw->{'packysb'}]);
- }
- }
- else
- {
- $w->configure(-yscrollcommand => undef) unless $opt =~ s/[we]//;
- $slice->packForget;
- }
- $cw->{'packysb'} = $havey;
- }
- if (defined $xsb)
- {
- my $reqx;
- if ($opt =~ /(o)?[ns]/ && (($reqx = !defined($1)) || $xsb->Needed))
- {
- $xsb->pack(-side => $xside, -fill => 'x',-before => $xsb->{'before'});
- $havex = 1;
- if ($reqx)
- {
- $w->configure(-xscrollcommand => ['set', $xsb]);
- }
- else
- {
- $w->configure(-xscrollcommand => ['sbset', $cw, $xsb, \$cw->{'packxsb'}]);
- }
- }
- else
- {
- $w->configure(-xscrollcommand => undef) unless $opt =~ s/[ns]//;
- $xsb->packForget;
- }
- $cw->{'packxsb'} = $havex;
- }
- if (defined $corner)
- {
- if ($havex && $havey && defined $corner->{'before'})
- {
- my $anchor = $opt;
- $anchor =~ s/o//g;
- $corner->configure(-height => $xsb->ReqHeight);
- $corner->pack(-before => $corner->{'before'}, -side => $xside,
- -anchor => $anchor, -fill => 'x');
- }
- else
- {
- $corner->packForget;
- }
- }
-}
-
-sub scrollbars
-{
- my ($cw,$opt) = @_;
- my $var = \$cw->{'-scrollbars'};
- if (@_ > 1)
- {
- my $old = $$var;
- if (!defined $old || $old ne $opt)
- {
- $$var = $opt;
- $cw->queuePack;
- }
- }
- return $$var;
-}
-
-sub FindMenu
-{
- my ($w,$char) = @_;
- my $child;
- my $match;
- foreach $child ($w->children)
- {
- next unless (ref $child);
- $match = $child->FindMenu($char);
- return $match if (defined $match);
- }
- return undef;
-}
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/IconList.pm b/Master/xemtex/perl/site/lib/Tk/IconList.pm
deleted file mode 100644
index 1c83e740887..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/IconList.pm
+++ /dev/null
@@ -1,536 +0,0 @@
-# -*- perl -*-
-#
-# tkfbox.tcl --
-#
-# Implements the "TK" standard file selection dialog box. This
-# dialog box is used on the Unix platforms whenever the tk_strictMotif
-# flag is not set.
-#
-# The "TK" standard file selection dialog box is similar to the
-# file selection dialog box on Win95(TM). The user can navigate
-# the directories by clicking on the folder icons or by
-# selectinf the "Directory" option menu. The user can select
-# files by clicking on the file icons or by entering a filename
-# in the "Filename:" entry.
-#
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# Translated to perk/Tk by Slaven Rezic <eserte@cs.tu-berlin.de>.
-#
-
-#----------------------------------------------------------------------
-#
-# I C O N L I S T
-#
-# This is a pseudo-widget that implements the icon list inside the
-# tkFDialog dialog box.
-#
-#----------------------------------------------------------------------
-# tkIconList --
-#
-# Creates an IconList widget.
-#
-
-package Tk::IconList;
-require Tk::Frame;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '3.005'; # $Id: //depot/Tk8/Tk/IconList.pm#5 $
-
-use base 'Tk::Frame';
-
-Construct Tk::Widget 'IconList';
-
-# tkIconList_Create --
-#
-# Creates an IconList widget by assembling a canvas widget and a
-# scrollbar widget. Sets all the bindings necessary for the IconList's
-# operations.
-#
-sub Populate {
- my($w, $args) = @_;
- $w->SUPER::Populate($args);
-
- my $sbar = $w->Component('Scrollbar' => 'sbar',
- -orient => 'horizontal',
- -highlightthickness => 0,
- -takefocus => 0,
- );
- my $canvas = $w->Component('Canvas' => 'canvas',
- -bd => 2,
- -relief => 'sunken',
- -width => 400,
- -height => 120,
- -takefocus => 1,
- );
- $sbar->pack(-side => 'bottom', -fill => 'x', -padx => 2);
- $canvas->pack(-expand => 'yes', -fill => 'both');
- $sbar->configure(-command => ['xview', $canvas]);
- $canvas->configure(-xscrollcommand => ['set', $sbar]);
-
- # Initializes the max icon/text width and height and other variables
- $w->{'maxIW'} = 1;
- $w->{'maxIH'} = 1;
- $w->{'maxTW'} = 1;
- $w->{'maxTH'} = 1;
- $w->{'numItems'} = 0;
- delete $w->{'curItem'};
- $w->{'noScroll'} = 1;
-
- # Creates the event bindings.
- $canvas->Tk::bind('<Configure>', sub { $w->Arrange } );
- $canvas->Tk::bind('<1>',
- sub {
- my $c = shift;
- my $Ev = $c->XEvent;
- $w->Btn1($Ev->x, $Ev->y);
- }
- );
- $canvas->Tk::bind('<B1-Motion>',
- sub {
- my $c = shift;
- my $Ev = $c->XEvent;
- $w->Motion1($Ev->x, $Ev->y);
- }
- );
- $canvas->Tk::bind('<Double-ButtonRelease-1>',
- sub {
- my $c = shift;
- my $Ev = $c->XEvent;
- $w->Double1($Ev->x,$Ev->y);
- }
- );
- $canvas->Tk::bind('<ButtonRelease-1>', sub { $w->CancelRepeat });
- $canvas->Tk::bind('<B1-Leave>',
- sub {
- my $c = shift;
- my $Ev = $c->XEvent;
- $w->Leave1($Ev->x, $Ev->y);
- }
- );
- $canvas->Tk::bind('<B1-Enter>', sub { $w->CancelRepeat });
- $canvas->Tk::bind('<Up>', sub { $w->UpDown(-1) });
- $canvas->Tk::bind('<Down>', sub { $w->UpDown(1) });
- $canvas->Tk::bind('<Left>', sub { $w->LeftRight(-1) });
- $canvas->Tk::bind('<Right>', sub { $w->LeftRight(1) });
- $canvas->Tk::bind('<Return>', sub { $w->ReturnKey });
- $canvas->Tk::bind('<KeyPress>',
- sub {
- my $c = shift;
- my $Ev = $c->XEvent;
- $w->KeyPress($Ev->A);
- }
- );
- $canvas->Tk::bind('<Control-KeyPress>', 'NoOp');
- $canvas->Tk::bind('<Alt-KeyPress>', 'NoOp');
- $canvas->Tk::bind('<FocusIn>', sub { $w->FocusIn });
-
- $w->ConfigSpecs(-browsecmd =>
- ['CALLBACK', 'browseCommand', 'BrowseCommand', undef],
- -command =>
- ['CALLBACK', 'command', 'Command', undef],
- -font =>
- ['PASSIVE', 'font', 'Font', undef],
- -foreground =>
- ['PASSIVE', 'foreground', 'Foreground', undef],
- -fg => '-foreground',
- );
-
- $w;
-}
-
-# tkIconList_AutoScan --
-#
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The IconList window.
-#
-sub AutoScan {
- my $w = shift;
- return unless ($w->exists);
- return if ($w->{'noScroll'});
- my($x, $y);
- $x = $Tk::x;
- $y = $Tk::y;
- my $canvas = $w->Subwidget('canvas');
- if ($x >= $canvas->width) {
- $canvas->xview('scroll', 1, 'units');
- } elsif ($x < 0) {
- $canvas->xview('scroll', -1, 'units');
- } elsif ($y >= $canvas->height) {
- # do nothing
- } elsif ($y < 0) {
- # do nothing
- } else {
- return;
- }
- $w->Motion1($x, $y);
- $w->RepeatId($w->after(50, ['AutoScan', $w]));
-}
-
-# Deletes all the items inside the canvas subwidget and reset the IconList's
-# state.
-#
-sub DeleteAll {
- my $w = shift;
- my $canvas = $w->Subwidget('canvas');
- $canvas->delete('all');
- delete $w->{'selected'};
- delete $w->{'rect'};
- delete $w->{'list'};
- delete $w->{'itemList'};
- $w->{'maxIW'} = 1;
- $w->{'maxIH'} = 1;
- $w->{'maxTW'} = 1;
- $w->{'maxTH'} = 1;
- $w->{'numItems'} = 0;
- delete $w->{'curItem'};
- $w->{'noScroll'} = 1;
- $w->Subwidget('sbar')->set(0.0, 1.0);
- $canvas->xview('moveto', 0);
-}
-
-# Adds an icon into the IconList with the designated image and text
-#
-sub Add {
- my($w, $image, $text) = @_;
- my $canvas = $w->Subwidget('canvas');
- my $iTag = $canvas->createImage(0, 0, -image => $image, -anchor => 'nw');
- my $font = $w->cget(-font);
- my $fg = $w->cget(-foreground);
- my $tTag = $canvas->createText(0, 0, -text => $text, -anchor => 'nw',
- (defined $fg ? (-fill => $fg) : ()),
- (defined $font ? (-font => $font) : ()),
- );
- my $rTag = $canvas->createRectangle(0, 0, 0, 0,
- -fill => undef,
- -outline => undef);
- my(@b) = $canvas->bbox($iTag);
- my $iW = $b[2] - $b[0];
- my $iH = $b[3] - $b[1];
- $w->{'maxIW'} = $iW if ($w->{'maxIW'} < $iW);
- $w->{'maxIH'} = $iH if ($w->{'maxIH'} < $iH);
- @b = $canvas->bbox($tTag);
- my $tW = $b[2] - $b[0];
- my $tH = $b[3] - $b[1];
- $w->{'maxTW'} = $tW if ($w->{'maxTW'} < $tW);
- $w->{'maxTH'} = $tH if ($w->{'maxTH'} < $tH);
- push @{ $w->{'list'} }, [$iTag, $tTag, $rTag, $iW, $iH, $tW, $tH,
- $w->{'numItems'}];
- $w->{'itemList'}{$rTag} = [$iTag, $tTag, $text, $w->{'numItems'}];
- $w->{'textList'}{$w->{'numItems'}} = lc($text);
- ++$w->{'numItems'};
-}
-
-# Places the icons in a column-major arrangement.
-#
-sub Arrange {
- my $w = shift;
- my $canvas = $w->Subwidget('canvas');
- my $sbar = $w->Subwidget('sbar');
- unless (exists $w->{'list'}) {
- if (defined $canvas && Tk::Exists($canvas)) {
- $w->{'noScroll'} = 1;
- $sbar->configure(-command => sub { });
- }
- return;
- }
-
- my $W = $canvas->width;
- my $H = $canvas->height;
- my $pad = $canvas->cget(-highlightthickness) + $canvas->cget(-bd);
- $pad = 2 if ($pad < 2);
- $W -= $pad*2;
- $H -= $pad*2;
- my $dx = $w->{'maxIW'} + $w->{'maxTW'} + 8;
- my $dy;
- if ($w->{'maxTH'} > $w->{'maxIH'}) {
- $dy = $w->{'maxTH'};
- } else {
- $dy = $w->{'maxIH'};
- }
- $dy += 2;
- my $shift = $w->{'maxIW'} + 4;
- my $x = $pad * 2;
- my $y = $pad;
- my $usedColumn = 0;
- foreach my $sublist (@{ $w->{'list'} }) {
- $usedColumn = 1;
- my($iTag, $tTag, $rTag, $iW, $iH, $tW, $tH) = @$sublist;
- my $i_dy = ($dy - $iH) / 2;
- my $t_dy = ($dy - $tH) / 2;
- $canvas->coords($iTag, $x, $y + $i_dy);
- $canvas->coords($tTag, $x + $shift, $y + $t_dy);
- $canvas->coords($tTag, $x + $shift, $y + $t_dy);
- $canvas->coords($rTag, $x, $y, $x + $dx, $y + $dy);
- $y += $dy;
- if ($y + $dy > $H) {
- $y = $pad;
- $x += $dx;
- $usedColumn = 0;
- }
- }
- my $sW;
- if ($usedColumn) {
- $sW = $x + $dx;
- } else {
- $sW = $x;
- }
- if ($sW < $W) {
- $canvas->configure(-scrollregion => [$pad, $pad, $sW, $H]);
- $sbar->configure(-command => sub { });
- $canvas->xview(moveto => 0);
- $w->{'noScroll'} = 1;
- } else {
- $canvas->configure(-scrollregion => [$pad, $pad, $sW, $H]);
- $sbar->configure(-command => ['xview', $canvas]);
- $w->{'noScroll'} = 0;
- }
- $w->{'itemsPerColumn'} = ($H - $pad) / $dy;
- $w->{'itemsPerColumn'} = 1 if ($w->{'itemsPerColumn'} < 1);
- $w->Select($w->{'list'}[$w->{'curItem'}][2], 0)
- if (exists $w->{'curItem'});
-}
-
-# Gets called when the user invokes the IconList (usually by double-clicking
-# or pressing the Return key).
-#
-sub Invoke {
- my $w = shift;
- $w->Callback(-command => $w->{'selected'}) if (exists $w->{'selected'});
-}
-
-# tkIconList_See --
-#
-# If the item is not (completely) visible, scroll the canvas so that
-# it becomes visible.
-sub See {
- my($w, $rTag) = @_;
- return if ($w->{'noScroll'});
- return unless (exists $w->{'itemList'}{$rTag});
- my $canvas = $w->Subwidget('canvas');
- my(@sRegion) = @{ $canvas->cget('-scrollregion') };
- return unless (@sRegion);
- my(@bbox) = $canvas->bbox($rTag);
- my $pad = $canvas->cget(-highlightthickness) + $canvas->cget(-bd);
- my $x1 = $bbox[0];
- my $x2 = $bbox[2];
- $x1 -= $pad * 2;
- $x2 -= $pad;
- my $cW = $canvas->width - $pad * 2;
- my $scrollW = $sRegion[2] - $sRegion[0] + 1;
- my $dispX = int(($canvas->xview)[0] * $scrollW);
- my $oldDispX = $dispX;
- # check if out of the right edge
- $dispX = $x2 - $cW if ($x2 - $dispX >= $cW);
- # check if out of the left edge
- $dispX = $x1 if ($x1 - $dispX < 0);
- if ($oldDispX != $dispX) {
- my $fraction = $dispX / $scrollW;
- $canvas->xview('moveto', $fraction);
- }
-}
-
-sub SelectAtXY {
- my($w, $x, $y) = @_;
- my $canvas = $w->Subwidget('canvas');
- $w->Select($canvas->find('closest',
- $canvas->canvasx($x),
- $canvas->canvasy($y)));
-}
-
-sub Select {
- my $w = shift;
- my $rTag = shift;
- my $callBrowse = (@_ ? shift : 1);
- return unless (exists $w->{'itemList'}{$rTag});
- my($iTag, $tTag, $text, $serial) = @{ $w->{'itemList'}{$rTag} };
- my $canvas = $w->Subwidget('canvas');
- $w->{'rect'} = $canvas->createRectangle(0, 0, 0, 0, -fill => '#a0a0ff',
- -outline => '#a0a0ff')
- unless (exists $w->{'rect'});
- $canvas->lower($w->{'rect'});
- my(@bbox) = $canvas->bbox($tTag);
- $canvas->coords($w->{'rect'}, @bbox);
- $w->{'curItem'} = $serial;
- $w->{'selected'} = $text;
- if ($callBrowse) {
- $w->Callback(-browsecmd => $text);
- }
-}
-
-sub Unselect {
- my $w = shift;
- my $canvas = $w->Subwidget('canvas');
- if (exists $w->{'rect'}) {
- $canvas->delete($w->{'rect'});
- delete $w->{'rect'};
- }
- delete $w->{'selected'} if (exists $w->{'selected'});
- delete $w->{'curItem'};
-}
-
-# Returns the selected item
-#
-sub Get {
- my $w = shift;
- if (exists $w->{'selected'}) {
- $w->{'selected'};
- } else {
- undef;
- }
-}
-
-sub Btn1 {
- my($w, $x, $y) = @_;
- $w->Subwidget('canvas')->focus;
- $w->SelectAtXY($x, $y);
-}
-
-# Gets called on button-1 motions
-#
-sub Motion1 {
- my($w, $x, $y) = @_;
- $Tk::x = $x;
- $Tk::y = $y;
- $w->SelectAtXY($x, $y);
-}
-
-sub Double1 {
- my($w, $x, $y) = @_;
- $w->Invoke if (exists $w->{'curItem'});
-}
-
-sub ReturnKey {
- my $w = shift;
- $w->Invoke;
-}
-
-sub Leave1 {
- my($w, $x, $y) = @_;
- $Tk::x = $x;
- $Tk::y = $y;
- $w->AutoScan;
-}
-
-sub FocusIn {
- my $w = shift;
- return unless (exists $w->{'list'});
- unless (exists $w->{'curItem'}) {
- my $rTag = $w->{'list'}[0][2];
- $w->Select($rTag);
- }
-}
-
-# tkIconList_UpDown --
-#
-# Moves the active element up or down by one element
-#
-# Arguments:
-# w - The IconList widget.
-# amount - +1 to move down one item, -1 to move back one item.
-#
-sub UpDown {
- my($w, $amount) = @_;
- my $rTag;
- return unless (exists $w->{'list'});
- unless (exists $w->{'curItem'}) {
- $rTag = $w->{'list'}[0][2];
- } else {
- my $oldRTag = $w->{'list'}[$w->{'curItem'}][2];
- $rTag = $w->{'list'}[($w->{'curItem'} + $amount)][2];
- $rTag = $oldRTag unless defined $rTag;
- }
- if (defined $rTag) {
- $w->Select($rTag);
- $w->See($rTag);
- }
-}
-
-# tkIconList_LeftRight --
-#
-# Moves the active element left or right by one column
-#
-# Arguments:
-# w - The IconList widget.
-# amount - +1 to move right one column, -1 to move left one column.
-#
-sub LeftRight {
- my($w, $amount) = @_;
- my $rTag;
- return unless (exists $w->{'list'});
- unless (exists $w->{'curItem'}) {
- $rTag = $w->{'list'}[0][2];
- } else {
- my $oldRTag = $w->{'list'}[$w->{'curItem'}][2];
- my $newItem = $w->{'curItem'} + $amount * $w->{'itemsPerColumn'};
- $rTag = $w->{'list'}[$newItem][2];
- $rTag = $oldRTag unless (defined $rTag);
- }
- if (defined $rTag) {
- $w->Select($rTag);
- $w->See($rTag);
- }
-}
-
-#----------------------------------------------------------------------
-# Accelerator key bindings
-#----------------------------------------------------------------------
-# tkIconList_KeyPress --
-#
-# Gets called when user enters an arbitrary key in the listbox.
-#
-sub KeyPress {
- my($w, $key) = @_;
- $w->{'_ILAccel'} .= $key;
- $w->Goto($w->{'_ILAccel'});
- eval {
- $w->afterCancel($w->{'_ILAccel_afterid'});
- };
- $w->{'_ILAccel_afterid'} = $w->after(500, ['Reset', $w]);
-}
-
-sub Goto {
- my($w, $text) = @_;
- return unless (exists $w->{'list'});
- return if (not defined $text or $text eq '');
- my $start = (!exists $w->{'curItem'} ? 0 : $w->{'curItem'});
- $text = lc($text);
- my $theIndex = -1;
- my $less = 0;
- my $len = length($text);
- my $i = $start;
- # Search forward until we find a filename whose prefix is an exact match
- # with $text
- while (1) {
- my $sub = substr($w->{'textList'}{$i}, 0, $len);
- if ($text eq $sub) {
- $theIndex = $i;
- last;
- }
- ++$i;
- $i = 0 if ($i == $w->{'numItems'});
- last if ($i == $start);
- }
- if ($theIndex > -1) {
- my $rTag = $w->{'list'}[$theIndex][2];
- $w->Select($rTag, 0);
- $w->See($rTag);
- }
-}
-
-sub Reset {
- my $w = shift;
- undef $w->{'_ILAccel'};
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Image.pm b/Master/xemtex/perl/site/lib/Tk/Image.pm
deleted file mode 100644
index f6d6634c05b..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Image.pm
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Image;
-
-# This module does for images what Tk::Widget does for widgets:
-# provides a base class for them to inherit from.
-require DynaLoader;
-
-use base qw(DynaLoader Tk); # but are they ?
-
-use vars qw($VERSION);
-$VERSION = '3.014'; # $Id: //depot/Tk8/Tk/Image.pm#14 $
-
-sub new
-{
- my $package = shift;
- my $widget = shift;
- $package->InitClass($widget);
- my $leaf = $package->Tk_image;
- my $obj = $widget->Tk::image('create',$leaf,@_);
- return bless $obj,$package;
-}
-
-sub Install
-{
- # Dynamically loaded image types can install standard images here
- my ($class,$mw) = @_;
-}
-
-sub ClassInit
-{
- # Carry out class bindings (or whatever)
- my ($package,$mw) = @_;
- return $package;
-}
-
-require Tk::Submethods;
-
-Direct Tk::Submethods ('image' => [qw(delete width height type)]);
-
-sub Tk::Widget::imageNames
-{
- my $w = shift;
- $w->image('names',@_);
-}
-
-sub Tk::Widget::imageTypes
-{
- my $w = shift;
- map("\u$_",$w->image('types',@_));
-}
-
-sub Construct
-{
- my ($base,$name) = @_;
- my $class = (caller(0))[0];
-
- # Hack for broken ->isa in perl5.6.0
- delete ${"$class\::"}{'::ISA::CACHE::'} if $] == 5.006;
-
- *{"Tk::Widget::$name"} = sub { $class->new(@_) };
-}
-
-# This is here to prevent AUTOLOAD trying to find it.
-sub DESTROY
-{
- my $i = shift;
- # maybe do image delete ???
-}
-
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Label.pm b/Master/xemtex/perl/site/lib/Tk/Label.pm
deleted file mode 100644
index e320e193846..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Label.pm
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package Tk::Label;
-require Tk;
-
-
-use vars qw($VERSION);
-$VERSION = '3.011'; # $Id: //depot/Tk8/Tk/Label.pm#11 $
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Label';
-
-sub Tk_cmd { \&Tk::label }
-
-1;
-
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Listbox.pm b/Master/xemtex/perl/site/lib/Tk/Listbox.pm
deleted file mode 100644
index 0dd86c1ef2e..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Listbox.pm
+++ /dev/null
@@ -1,856 +0,0 @@
-# Converted from listbox.tcl --
-#
-# This file defines the default bindings for Tk listbox widgets.
-#
-# @(#) listbox.tcl 1.7 94/12/17 16:05:18
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-# Modifications from standard Listbox.pm
-# --------------------------------------
-# 27-JAN-2001 Alasdair Allan
-# Modified for local use by adding tied scalar and arrays
-# Implemented TIESCALAR, TIEARRAY, FETCH, FETCHSIZE, STORE, CLEAR & EXTEND
-# 31-JAN-2001 Alasdair Allan
-# Made changes suggested by Tim Jenness
-# 03-FEB-2001 Alasdair Allan
-# Modified STORE for tied scalars to clear and select elements
-# 06-FEB-2001 Alasdair Allan
-# Added POD documentation for tied listbox
-# 13-FEB-2001 Alasdair Allan
-# Implemented EXISTS, DELETE, PUSH, POP, SHIFT & UNSHIFT for tied arrays
-# 14-FEB-2001 Alasdair Allan
-# Implemented SPLICE for tied arrays, all tied functionality in place
-# 16-FEB-2001 Alasdair Allan
-# Tweak to STORE interface for tied scalars
-# 23-FEB-2001 Alasdair Allan
-# Added flag to FETCH for tied scalars, modified to return hashes
-# 24-FEB-2001 Alasdair Allan
-# Updated Pod documentation
-#
-
-package Tk::Listbox;
-
-use vars qw($VERSION);
-$VERSION = '3.033'; # $Id: //depot/Tk8/Listbox/Listbox.pm#33 $
-
-use Tk qw(Ev $XS_VERSION);
-use Tk::Clipboard ();
-use AutoLoader;
-
-use base qw(Tk::Clipboard Tk::Widget);
-
-Construct Tk::Widget 'Listbox';
-
-bootstrap Tk::Listbox;
-
-sub Tk_cmd { \&Tk::listbox }
-
-Tk::Methods('activate','bbox','curselection','delete','get','index',
- 'insert','nearest','scan','see','selection','size',
- 'xview','yview');
-
-use Tk::Submethods ( 'selection' => [qw(anchor clear includes set)],
- 'scan' => [qw(mark dragto)],
- 'xview' => [qw(moveto scroll)],
- 'yview' => [qw(moveto scroll)],
- );
-
-*Getselected = \&getSelected;
-
-sub clipEvents
-{
- return qw[Copy];
-}
-
-sub BalloonInfo
-{
- my ($listbox,$balloon,$X,$Y,@opt) = @_;
- my $e = $listbox->XEvent;
- my $index = $listbox->index('@' . $e->x . ',' . $e->y);
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$listbox);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'ARRAY'))
- {
- $balloon->Subclient($index);
- if (defined $info->[$index])
- {
- return $info->[$index];
- }
- return '';
- }
- return $info;
- }
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $class->SUPER::ClassInit($mw);
- # Standard Motif bindings:
- $mw->bind($class,'<1>',['BeginSelect',Ev('index',Ev('@'))]);
- $mw->bind($class,'<B1-Motion>',['Motion',Ev('index',Ev('@'))]);
- $mw->bind($class,'<ButtonRelease-1>','ButtonRelease_1');
- ;
- $mw->bind($class,'<Shift-1>',['BeginExtend',Ev('index',Ev('@'))]);
- $mw->bind($class,'<Control-1>',['BeginToggle',Ev('index',Ev('@'))]);
-
- $mw->bind($class,'<B1-Leave>',['AutoScan',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<Up>',['UpDown',-1]);
- $mw->bind($class,'<Shift-Up>',['ExtendUpDown',-1]);
- $mw->bind($class,'<Down>',['UpDown',1]);
- $mw->bind($class,'<Shift-Down>',['ExtendUpDown',1]);
-
- $mw->XscrollBind($class);
- $mw->PriorNextBind($class);
-
- $mw->bind($class,'<Control-Home>','Cntrl_Home');
- ;
- $mw->bind($class,'<Shift-Control-Home>',['DataExtend',0]);
- $mw->bind($class,'<Control-End>','Cntrl_End');
- ;
- $mw->bind($class,'<Shift-Control-End>',['DataExtend','end']);
- # $class->clipboardOperations($mw,'Copy');
- $mw->bind($class,'<space>',['BeginSelect',Ev('index','active')]);
- $mw->bind($class,'<Select>',['BeginSelect',Ev('index','active')]);
- $mw->bind($class,'<Control-Shift-space>',['BeginExtend',Ev('index','active')]);
- $mw->bind($class,'<Shift-Select>',['BeginExtend',Ev('index','active')]);
- $mw->bind($class,'<Escape>','Cancel');
- $mw->bind($class,'<Control-slash>','SelectAll');
- $mw->bind($class,'<Control-backslash>','Cntrl_backslash');
- ;
- # Additional Tk bindings that aren't part of the Motif look and feel:
- $mw->bind($class,'<2>',['scan','mark',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['scan','dragto',Ev('x'),Ev('y')]);
- return $class;
-}
-
-
-
-sub TIEARRAY {
- my ( $class, $obj, %options ) = @_;
- return bless {
- OBJECT => \$obj,
- OPTION => \%options }, $class;
-}
-
-
-
-sub TIESCALAR {
- my ( $class, $obj, %options ) = @_;
- return bless {
- OBJECT => \$obj,
- OPTION => \%options }, $class;
-}
-
-# FETCH
-# -----
-# Return either the full contents or only the selected items in the
-# box depending on whether we tied it to an array or scalar respectively
-sub FETCH {
- my $class = shift;
-
- my $self = ${$class->{OBJECT}};
- my %options = %{$class->{OPTION}} if defined $class->{OPTION};;
-
- # Define the return variable
- my $result;
-
- # Check whether we are have a tied array or scalar quantity
- if ( @_ ) {
- my $i = shift;
- # The Tk:: Listbox has been tied to an array, we are returning
- # an array list of the current items in the Listbox
- $result = $self->get($i);
- } else {
- # The Tk::Listbox has been tied to a scalar, we are returning a
- # reference to an array or hash containing the currently selected items
- my ( @array, %hash );
-
- if ( defined $options{ReturnType} ) {
-
- # THREE-WAY SWITCH
- if ( $options{ReturnType} eq "index" ) {
- $result = [$self->curselection];
- } elsif ( $options{ReturnType} eq "element" ) {
- foreach my $selection ( $self->curselection ) {
- push(@array,$self->get($selection)); }
- $result = \@array;
- } elsif ( $options{ReturnType} eq "both" ) {
- foreach my $selection ( $self->curselection ) {
- %hash = ( %hash, $selection => $self->get($selection)); }
- $result = \%hash;
- }
- } else {
- # return elements (default)
- foreach my $selection ( $self->curselection ) {
- push(@array,$self->get($selection)); }
- $result = \@array;
- }
- }
- return $result;
-}
-
-# FETCHSIZE
-# ---------
-# Return the number of elements in the Listbox when tied to an array
-sub FETCHSIZE {
- my $class = shift;
- return ${$class->{OBJECT}}->size();
-}
-
-# STORE
-# -----
-# If tied to an array we will modify the Listbox contents, while if tied
-# to a scalar we will select and clear elements.
-sub STORE {
-
- if ( scalar(@_) == 2 ) {
- # we have a tied scalar
- my ( $class, $selected ) = @_;
- my $self = ${$class->{OBJECT}};
- my %options = %{$class->{OPTION}} if defined $class->{OPTION};;
-
- # clear currently selected elements
- $self->selectionClear(0,'end');
-
- # set selected elements
- if ( defined $options{ReturnType} ) {
-
- # THREE-WAY SWITCH
- if ( $options{ReturnType} eq "index" ) {
- for ( my $i=0; $i < scalar(@$selected) ; $i++ ) {
- for ( my $j=0; $j < $self->size() ; $j++ ) {
- if( $j == $$selected[$i] ) {
- $self->selectionSet($j); last; }
- }
- }
- } elsif ( $options{ReturnType} eq "element" ) {
- for ( my $k=0; $k < scalar(@$selected) ; $k++ ) {
- for ( my $l=0; $l < $self->size() ; $l++ ) {
- if( $self->get($l) eq $$selected[$k] ) {
- $self->selectionSet($l); last; }
- }
- }
- } elsif ( $options{ReturnType} eq "both" ) {
- foreach my $key ( keys %$selected ) {
- $self->selectionSet($key)
- if $$selected{$key} eq $self->get($key);
- }
- }
- } else {
- # return elements (default)
- for ( my $k=0; $k < scalar(@$selected) ; $k++ ) {
- for ( my $l=0; $l < $self->size() ; $l++ ) {
- if( $self->get($l) eq $$selected[$k] ) {
- $self->selectionSet($l); last; }
- }
- }
- }
-
- } else {
- # we have a tied array
- my ( $class, $index, $value ) = @_;
- my $self = ${$class->{OBJECT}};
-
- # check size of current contents list
- my $sizeof = $self->size();
-
- if ( $index <= $sizeof ) {
- # Change a current listbox entry
- $self->delete($index);
- $self->insert($index, $value);
- } else {
- # Add a new value
- if ( defined $index ) {
- $self->insert($index, $value);
- } else {
- $self->insert("end", $value);
- }
- }
- }
-}
-
-# CLEAR
-# -----
-# Empty the Listbox of contents if tied to an array
-sub CLEAR {
- my $class = shift;
- ${$class->{OBJECT}}->delete(0, 'end');
-}
-
-# EXTEND
-# ------
-# Do nothing and be happy about it
-sub EXTEND { }
-
-# PUSH
-# ----
-# Append elements onto the Listbox contents
-sub PUSH {
- my ( $class, @list ) = @_;
- ${$class->{OBJECT}}->insert('end', @list);
-}
-
-# POP
-# ---
-# Remove last element of the array and return it
-sub POP {
- my $class = shift;
-
- my $value = ${$class->{OBJECT}}->get('end');
- ${$class->{OBJECT}}->delete('end');
- return $value;
-}
-
-# SHIFT
-# -----
-# Removes the first element and returns it
-sub SHIFT {
- my $class = shift;
-
- my $value = ${$class->{OBJECT}}->get(0);
- ${$class->{OBJECT}}->delete(0);
- return $value
-}
-
-# UNSHIFT
-# -------
-# Insert elements at the beginning of the Listbox
-sub UNSHIFT {
- my ( $class, @list ) = @_;
- ${$class->{OBJECT}}->insert(0, @list);
-}
-
-# DELETE
-# ------
-# Delete element at specified index
-sub DELETE {
- my ( $class, @list ) = @_;
-
- my $value = ${$class->{OBJECT}}->get(@list);
- ${$class->{OBJECT}}->delete(@list);
- return $value;
-}
-
-# EXISTS
-# ------
-# Returns true if the index exist, and undef if not
-sub EXISTS {
- my ( $class, $index ) = @_;
- return undef unless ${$class->{OBJECT}}->get($index);
-}
-
-# SPLICE
-# ------
-# Performs equivalent of splice on the listbox contents
-sub SPLICE {
- my $class = shift;
-
- my $self = ${$class->{OBJECT}};
-
- # check for arguments
- my @elements;
- if ( scalar(@_) == 0 ) {
- # none
- @elements = $self->get(0,'end');
- $self->delete(0,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];;
-
- } elsif ( scalar(@_) == 1 ) {
- # $offset
- my ( $offset ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- if ( $start > 0 ) {
- @elements = $self->get($start,'end');
- $self->delete($start,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,'end');
- $self->delete($offset,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
-
- } elsif ( scalar(@_) == 2 ) {
- # $offset and $length
- my ( $offset, $length ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- my $end = $self->size() + $offset + $length - 1;
- if ( $start > 0 ) {
- @elements = $self->get($start,$end);
- $self->delete($start,$end);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,$offset+$length-1);
- $self->delete($offset,$offset+$length-1);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
-
- } else {
- # $offset, $length and @list
- my ( $offset, $length, @list ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- my $end = $self->size() + $offset + $length - 1;
- if ( $start > 0 ) {
- @elements = $self->get($start,$end);
- $self->delete($start,$end);
- $self->insert($start,@list);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,$offset+$length-1);
- $self->delete($offset,$offset+$length-1);
- $self->insert($offset,@list);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
- }
-}
-
-# ----
-
-1;
-__END__
-
-#
-# Bind --
-# This procedure is invoked the first time the mouse enters a listbox
-# widget or a listbox widget receives the input focus. It creates
-# all of the class bindings for listboxes.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-
-sub xyIndex
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- return $w->index($Ev->xy);
-}
-
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat;
- $w->activate($Ev->xy);
-}
-
-
-sub Cntrl_Home
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate(0);
- $w->see(0);
- $w->selectionClear(0,'end');
- $w->selectionSet(0)
-}
-
-
-sub Cntrl_End
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate('end');
- $w->see('end');
- $w->selectionClear(0,'end');
- $w->selectionSet('end')
-}
-
-
-sub Cntrl_backslash
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if ($w->cget('-selectmode') ne 'browse')
- {
- $w->selectionClear(0,'end');
- }
-}
-
-# BeginSelect --
-#
-# This procedure is typically invoked on button-1 presses. It begins
-# the process of making a selection in the listbox. Its exact behavior
-# depends on the selection mode currently in effect for the listbox;
-# see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginSelect
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'multiple')
- {
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
- else
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- @Selection = ();
- $Prev = $el
- }
- $w->focus if ($w->cget('-takefocus'));
-}
-# Motion --
-#
-# This procedure is called to process mouse motion events while
-# button 1 is down. It may move or extend the selection, depending
-# on the listbox's selection mode.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element under the pointer (must be a number).
-sub Motion
-{
- my $w = shift;
- my $el = shift;
- if (defined($Prev) && $el == $Prev)
- {
- return;
- }
- $anchor = $w->index('anchor');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $Prev = $el;
- }
- elsif ($mode eq 'extended')
- {
- $i = $Prev;
- if ($w->selectionIncludes('anchor'))
- {
- $w->selectionClear($i,$el);
- $w->selectionSet('anchor',$el)
- }
- else
- {
- $w->selectionClear($i,$el);
- $w->selectionClear('anchor',$el)
- }
- while ($i < $el && $i < $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i += 1
- }
- while ($i > $el && $i > $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i += -1
- }
- $Prev = $el
- }
-}
-# BeginExtend --
-#
-# This procedure is typically invoked on shift-button-1 presses. It
-# begins the process of extending a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginExtend
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended' && $w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
-}
-# BeginToggle --
-#
-# This procedure is typically invoked on control-button-1 presses. It
-# begins the process of toggling a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginToggle
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended')
- {
- @Selection = $w->curselection();
- $Prev = $el;
- $w->selectionAnchor($el);
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-# y - The y-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if ($y >= $w->height)
- {
- $w->yview('scroll',1,'units')
- }
- elsif ($y < 0)
- {
- $w->yview('scroll',-1,'units')
- }
- elsif ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->Motion($w->index("@" . $x . ',' . $y));
- $w->RepeatId($w->after(50,'AutoScan',$w,$x,$y));
-}
-# UpDown --
-#
-# Moves the location cursor (active element) up or down by one element,
-# and changes the selection if we're in browse or extended selection
-# mode.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub UpDown
-{
- my $w = shift;
- my $amount = shift;
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- $LNet__0 = $w->cget('-selectmode');
- if ($LNet__0 eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- elsif ($LNet__0 eq 'extended')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->selectionAnchor('active');
- $Prev = $w->index('active');
- @Selection = ();
- }
-}
-# ExtendUpDown --
-#
-# Does nothing unless we're in extended selection mode; in this
-# case it moves the location cursor (active element) up or down by
-# one element, and extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub ExtendUpDown
-{
- my $w = shift;
- my $amount = shift;
- if ($w->cget('-selectmode') ne 'extended')
- {
- return;
- }
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- $w->Motion($w->index('active'))
-}
-# DataExtend
-#
-# This procedure is called for key-presses such as Shift-KEndData.
-# If the selection mode isn't multiple or extend then it does nothing.
-# Otherwise it moves the active element to el and, if we're in
-# extended mode, extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# el - An integer element number.
-sub DataExtend
-{
- my $w = shift;
- my $el = shift;
- $mode = $w->cget('-selectmode');
- if ($mode eq 'extended')
- {
- $w->activate($el);
- $w->see($el);
- if ($w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- }
- elsif ($mode eq 'multiple')
- {
- $w->activate($el);
- $w->see($el)
- }
-}
-# Cancel
-#
-# This procedure is invoked to cancel an extended selection in
-# progress. If there is an extended selection in progress, it
-# restores all of the items between the active one and the anchor
-# to their previous selection state.
-#
-# Arguments:
-# w - The listbox widget.
-sub Cancel
-{
- my $w = shift;
- if ($w->cget('-selectmode') ne 'extended' || !defined $Prev)
- {
- return;
- }
- $first = $w->index('anchor');
- $last = $Prev;
- if ($first > $last)
- {
- $tmp = $first;
- $first = $last;
- $last = $tmp
- }
- $w->selectionClear($first,$last);
- while ($first <= $last)
- {
- if (Tk::lsearch(\@Selection,$first) >= 0)
- {
- $w->selectionSet($first)
- }
- $first += 1
- }
-}
-# SelectAll
-#
-# This procedure is invoked to handle the "select all" operation.
-# For single and browse mode, it just selects the active element.
-# Otherwise it selects everything in the widget.
-#
-# Arguments:
-# w - The listbox widget.
-sub SelectAll
-{
- my $w = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'single' || $mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- else
- {
- $w->selectionSet(0,'end')
- }
-}
-
-sub SetList
-{
- my $w = shift;
- $w->delete(0,'end');
- $w->insert('end',@_);
-}
-
-sub deleteSelected
-{
- my $w = shift;
- my $i;
- foreach $i (reverse $w->curselection)
- {
- $w->delete($i);
- }
-}
-
-sub clipboardPaste
-{
- my $w = shift;
- my $index = $w->index('active') || $w->index($w->XEvent->xy);
- my $str;
- eval {local $SIG{__DIE__}; $str = $w->clipboardGet };
- return if $@;
- foreach (split("\n",$str))
- {
- $w->insert($index++,$_);
- }
-}
-
-sub getSelected
-{
- my ($w) = @_;
- my $i;
- my (@result) = ();
- foreach $i ($w->curselection)
- {
- push(@result,$w->get($i));
- }
- return (wantarray) ? @result : $result[0];
-}
-
-
-
-1;
-__END__
diff --git a/Master/xemtex/perl/site/lib/Tk/MainWindow.pm b/Master/xemtex/perl/site/lib/Tk/MainWindow.pm
deleted file mode 100644
index 2be63f90358..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/MainWindow.pm
+++ /dev/null
@@ -1,188 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::MainWindow;
-use base qw(Tk::Toplevel);
-BEGIN { @MainWindow::ISA = 'Tk::MainWindow' }
-
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '3.047'; # $Id: //depot/Tk8/Tk/MainWindow.pm#47 $
-
-use Tk::CmdLine;
-use Tk qw(catch);
-require Tk::Toplevel;
-
-use Carp;
-
-$| = 1;
-
-my $pid = $$;
-
-my %Windows = ();
-
-sub CreateArgs
-{
- my ($class,$args) = @_;
- my $cmd = Tk::CmdLine->CreateArgs();
- my $key;
- foreach $key (keys %$cmd)
- {
- $args->{$key} = $cmd->{$key} unless exists $args->{$key};
- }
- my %result = $class->SUPER::CreateArgs(undef,$args);
- my $name = delete($args->{'-name'});
- unless (Tk::tainting)
- {
- $ENV{'DISPLAY'} = ':0' unless (exists $ENV{'DISPLAY'});
- $result{'-screen'} = $ENV{'DISPLAY'} unless exists $result{'-screen'};
- }
- return (-name => "\l$name",%result);
-}
-
-sub new
-{
- my $package = shift;
- if (@_ > 0 && $_[0] =~ /:\d+(\.\d+)?$/)
- {
- carp "Usage $package->new(-screen => '$_[0]' ...)" if $^W;
- unshift(@_,'-screen');
- }
- croak('Odd number of args'."$package->new(" . join(',',@_) .')') if @_ % 2;
- my %args = @_;
-
- my $top = eval { bless Create($package->CreateArgs(\%args)), $package };
- croak($@ . "$package->new(" . join(',',@_) .')') if ($@);
- $top->apply_command_line;
- $top->InitBindings;
- $top->SetBindtags;
- $top->InitObject(\%args);
- eval { $top->configure(%args) };
- croak "$@" if ($@);
- if (($top->positionfrom||'') ne 'user' and ($top->sizefrom||'') ne 'user') {
- my $geometry = $top->optionGet(qw(geometry Geometry));
- if ($geometry) {
- $top->geometry($geometry);
- }
- }
- $Windows{$top} = $top;
- return $top;
-}
-
-sub _Destroyed
-{
- my $top = shift;
- $top->SUPER::_Destroyed;
- delete $Windows{$top};
-}
-
-sub InitBindings
-{
- my $mw = shift;
- $mw->bind('all','<Tab>','focusNext');
- $mw->eventAdd(qw[<<LeftTab>> <Shift-Tab>]);
- catch { $mw->eventAdd(qw[<<LeftTab>> <ISO_Left_Tab>]) };
- $mw->bind('all','<<LeftTab>>','focusPrev');
- if ($Tk::platform eq 'unix')
- {
- $mw->eventAdd(qw[<<Cut>> <Control-Key-x> <Key-F20> <Meta-Key-w>]);
- $mw->eventAdd(qw[<<Copy>> <Control-Key-c> <Key-F16> <Control-Key-w>]);
- $mw->eventAdd(qw[<<Paste>> <Control-Key-v> <Key-F18> <Control-Key-y>]);
- $mw->eventAdd(qw[<<Undo>> <Control-Key-z> <Key-Undo> <Key-F14>
- <Control-Key-underscore>]);
- $mw->eventAdd(qw[<<Redo>> <Control-Key-y> <Shift-Key-Undo> <Key-F12> <Shift-Key-F14>]);
- }
- else
- {
- $mw->eventAdd(qw[<<Cut>> <Control-Key-x> <Shift-Key-Delete>]);
- $mw->eventAdd(qw[<<Copy>> <Control-Key-c> <Control-Key-Insert>]);
- $mw->eventAdd(qw[<<Paste>> <Control-Key-v> <Shift-Key-Insert>]);
- $mw->eventAdd(qw[<<Undo>> <Control-Key-z>]);
- $mw->eventAdd(qw[<<Redo>> <Control-Key-y>]);
- }
-
- # FIXME - Should these move to Menubutton ?
- my $c = ($Tk::platform eq 'unix') ? 'all' : 'Tk::Menubutton';
- $mw->bind($c,'<Alt-KeyPress>',['TraverseToMenu',Tk::Ev('K')]);
- $mw->bind($c,'<F10>','FirstMenu');
-}
-
-sub Existing
-{
- my @Windows;
- foreach my $name (keys %Windows)
- {
- my $obj = $Windows{$name};
- if (Tk::Exists($obj))
- {
- push(@Windows,$obj);
- }
- else
- {
- delete $Windows{$name};
- }
- }
- return @Windows;
-}
-
-END
-{
- if ($pid == $$)
- {
- foreach my $top (values %Windows)
- {
- if ($top->IsWidget)
- {
- # Tk data structuctures are still in place
- # this can occur if non-callback perl code did a 'die'.
- # It will also handle some cases of non-Tk 'exit' being called
- # Destroy this mainwindow and hence is descendants ...
- $top->destroy;
- }
- }
- }
-}
-
-sub CmdLine { return shift->command }
-
-sub WMSaveYourself
-{
- my $mw = shift;
- my @args = @{$mw->command};
- warn 'preWMSaveYourself:'.join(' ',@args)."\n";
- @args = ($0) unless (@args);
- my $i = 1;
- while ($i < @args)
- {
- if ($args[$i] eq '-iconic')
- {
- splice(@args,$i,1);
- }
- elsif ($args[$i] =~ /^-(geometry|iconposition)$/)
- {
- splice(@args,$i,2);
- }
- }
-
- my @ip = $mw->wm('iconposition');
- print 'ip ',join(',',@ip),"\n";
- my $icon = $mw->iconwindow;
- if (defined($icon))
- {
- @ip = $icon->geometry =~ /\d+x\d+([+-]\d+)([+-]\d+)/;
- }
- splice(@args,1,0,'-iconposition' => join(',',@ip)) if (@ip == 2);
-
- splice(@args,1,0,'-iconic') if ($mw->state() eq 'iconic');
-
- splice(@args,1,0,'-geometry' => $mw->geometry);
- warn 'postWMSaveYourself:'.join(' ',@args)."\n";
- $mw->command([@args]);
-}
-
-1;
-
-__END__
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/Tk/Menu.pm b/Master/xemtex/perl/site/lib/Tk/Menu.pm
deleted file mode 100644
index 409467e0e24..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Menu.pm
+++ /dev/null
@@ -1,1130 +0,0 @@
-# Converted from menu.tcl --
-#
-# This file defines the default bindings for Tk menus and menubuttons.
-# It also implements keyboard traversal of menus and implements a few
-# other utility procedures related to menus.
-#
-# @(#) menu.tcl 1.34 94/12/19 17:09:09
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-package Tk::Menu;
-require Tk;
-require Tk::Widget;
-require Tk::Wm;
-require Tk::Derived;
-require Tk::Menu::Item;
-
-
-use vars qw($VERSION);
-$VERSION = '3.045'; # $Id: //depot/Tk8/Tk/Menu.pm#45 $
-
-use strict;
-
-use base qw(Tk::Wm Tk::Derived Tk::Widget);
-
-Construct Tk::Widget 'Menu';
-
-sub Tk_cmd { \&Tk::_menu }
-
-Tk::Methods('activate','add','clone','delete','entrycget','entryconfigure',
- 'index','insert','invoke','post','postcascade','type',
- 'unpost','yposition');
-
-import Tk qw(Ev);
-
-sub CreateArgs
-{
- my ($package,$parent,$args) = @_;
- # Remove from hash %$args any configure-like
- # options which only apply at create time (e.g. -class for Frame)
- # return these as a list of -key => value pairs
- my @result = ();
- my $opt;
- foreach $opt (qw(-type -screen -visual -colormap))
- {
- my $val = delete $args->{$opt};
- push(@result, $opt => $val) if (defined $val);
- }
- return @result;
-}
-
-sub InitObject
-{
- my ($menu,$args) = @_;
- my $menuitems = delete $args->{-menuitems};
- $menu->SUPER::InitObject($args);
- if (defined $menuitems)
- {
- # If any other args do configure now
- if (%$args)
- {
- $menu->configure(%$args);
- %$args = ();
- }
- $menu->AddItems(@$menuitems)
- }
-}
-
-sub AddItems
-{
- my $menu = shift;
- ITEM:
- while (@_)
- {
- my $item = shift;
- if (!ref($item))
- {
- $menu->separator; # A separator
- }
- else
- {
- my ($kind,$name,%minfo) = ( @$item );
- my $invoke = delete $minfo{'-invoke'};
- if (defined $name)
- {
- $minfo{-label} = $name unless defined($minfo{-label});
- $menu->$kind(%minfo);
- }
- else
- {
- $menu->BackTrace("Don't recognize " . join(' ',@$item));
- }
- } # A non-separator
- }
-}
-
-#
-#-------------------------------------------------------------------------
-# Elements of tkPriv that are used in this file:
-#
-# cursor - Saves the -cursor option for the posted menubutton.
-# focus - Saves the focus during a menu selection operation.
-# Focus gets restored here when the menu is unposted.
-# inMenubutton - The name of the menubutton widget containing
-# the mouse, or an empty string if the mouse is
-# not over any menubutton.
-# popup - If a menu has been popped up via tk_popup, this
-# gives the name of the menu. Otherwise this
-# value is empty.
-# postedMb - Name of the menubutton whose menu is currently
-# posted, or an empty string if nothing is posted
-# A grab is set on this widget.
-# relief - Used to save the original relief of the current
-# menubutton.
-# window - When the mouse is over a menu, this holds the
-# name of the menu; it's cleared when the mouse
-# leaves the menu.
-#-------------------------------------------------------------------------
-#-------------------------------------------------------------------------
-# Overall note:
-# This file is tricky because there are four different ways that menus
-# can be used:
-#
-# 1. As a pulldown from a menubutton. This is the most common usage.
-# In this style, the variable tkPriv(postedMb) identifies the posted
-# menubutton.
-# 2. As a torn-off menu copied from some other menu. In this style
-# tkPriv(postedMb) is empty, and the top-level menu is no
-# override-redirect.
-# 3. As an option menu, triggered from an option menubutton. In thi
-# style tkPriv(postedMb) identifies the posted menubutton.
-# 4. As a popup menu. In this style tkPriv(postedMb) is empty and
-# the top-level menu is override-redirect.
-#
-# The various binding procedures use the state described above to
-# distinguish the various cases and take different actions in each
-# case.
-#-------------------------------------------------------------------------
-# Bind --
-# This procedure is invoked the first time the mouse enters a menubutton
-# widget or a menubutton widget receives the input focus. It creates
-# all of the class bindings for both menubuttons and menus.
-#
-# Arguments:
-# w - The widget that was just entered or just received
-# the input focus.
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
- # Must set focus when mouse enters a menu, in order to allow
- # mixed-mode processing using both the mouse and the keyboard.
- $mw->bind($class,'<FocusIn>', 'NoOp');
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', ['Leave',Ev('X'),Ev('Y'),Ev('s')]);
- $mw->bind($class,'<Motion>', ['Motion',Ev('x'),Ev('y'),Ev('s')]);
- $mw->bind($class,'<ButtonPress>','ButtonDown');
- $mw->bind($class,'<ButtonRelease>',['Invoke',1]);
- $mw->bind($class,'<space>',['Invoke',0]);
- $mw->bind($class,'<Return>',['Invoke',0]);
- $mw->bind($class,'<Escape>','Escape');
- $mw->bind($class,'<Left>','LeftArrow');
- $mw->bind($class,'<Right>','RightArrow');
- $mw->bind($class,'<Up>','UpArrow');
- $mw->bind($class,'<Down>','DownArrow');
- $mw->bind($class,'<KeyPress>', ['TraverseWithinMenu',Ev('K')]);
- $mw->bind($class,'<Alt-KeyPress>', ['TraverseWithinMenu',Ev('K')]);
- return $class;
-}
-
-sub UpArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextMenu('left');
- }
- else
- {
- $menu->NextEntry(-1);
- }
-}
-
-sub DownArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextMenu('right');
- }
- else
- {
- $menu->NextEntry(1);
- }
-}
-
-sub LeftArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextEntry(-1);
- }
- else
- {
- $menu->NextMenu('left');
- }
-}
-
-sub RightArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextEntry(1);
- }
- else
- {
- $menu->NextMenu('right');
- }
-}
-
-
-
-# Unpost --
-# This procedure unposts a given menu, plus all of its ancestors up
-# to (and including) a menubutton, if any. It also restores various
-# values to what they were before the menu was posted, and releases
-# a grab if there's a menubutton involved. Special notes:
-# 1. It's important to unpost all menus before releasing the grab, so
-# that any Enter-Leave events (e.g. from menu back to main
-# application) have mode NotifyGrab.
-# 2. Be sure to enclose various groups of commands in "catch" so that
-# the procedure will complete even if the menubutton or the menu
-# or the grab window has been deleted.
-#
-# Arguments:
-# menu - Name of a menu to unpost. Ignored if there
-# is a posted menubutton.
-sub Unpost
-{
- my $menu = shift;
- my $mb = $Tk::postedMb;
-
- # Restore focus right away (otherwise X will take focus away when
- # the menu is unmapped and under some window managers (e.g. olvwm)
- # we'll lose the focus completely).
-
- eval {local $SIG{__DIE__}; $Tk::focus->focus() } if (defined $Tk::focus);
- undef $Tk::focus;
-
- # Unpost menu(s) and restore some stuff that's dependent on
- # what was posted.
- eval {local $SIG{__DIE__};
- if (defined $mb)
- {
- $menu = $mb->cget('-menu');
- $menu->unpost();
- $Tk::postedMb = undef;
- $mb->configure('-cursor',$Tk::cursor);
- $mb->configure('-relief',$Tk::relief)
- }
- elsif (defined $Tk::popup)
- {
- $Tk::popup->unpost();
- my $grab = $Tk::popup->grabCurrent;
- $grab->grabRelease if (defined $grab);
-
- undef $Tk::popup;
- }
- elsif (defined $menu && ref $menu &&
- $menu->cget('-type') ne 'menubar' &&
- $menu->cget('-type') ne 'tearoff'
- )
- {
- # We're in a cascaded sub-menu from a torn-off menu or popup.
- # Unpost all the menus up to the toplevel one (but not
- # including the top-level torn-off one) and deactivate the
- # top-level torn off menu if there is one.
- while (1)
- {
- my $parent = $menu->parent;
- last if (!$parent->IsMenu || !$parent->ismapped);
- $parent->postcascade('none');
- $parent->GenerateMenuSelect;
- $parent->activate('none');
- my $type = $parent->cget('-type');
- last if ($type eq 'menubar' || $type eq 'tearoff');
- $menu = $parent
- }
- $menu->unpost() if ($menu->cget('-type') ne 'menubar');
- }
- };
- warn "$@" if ($@);
- if ($Tk::tearoff || $Tk::menubar)
- {
- # Release grab, if any.
- if (defined $menu && ref $menu)
- {
- my $grab = $menu->grabCurrent;
- $grab->grabRelease if (defined $grab);
- }
- RestoreOldGrab();
- if ($Tk::menubar)
- {
- $Tk::menubar->configure(-cursor => $Tk::cursor);
- undef $Tk::menubar;
- }
- if ($Tk::platform ne 'unix')
- {
- undef $Tk::tearoff;
- }
- }
-}
-
-sub RestoreOldGrab
-{
- if (defined $Tk::oldGrab)
- {
- eval
- {
- local $SIG{__DIE__};
- if ($Tk::grabStatus eq 'global')
- {
- $Tk::oldGrab->grabGlobal;
- }
- else
- {
- $Tk::oldGrab->grab;
- }
- };
- undef $Tk::oldGrab;
- }
-}
-
-sub typeIS
-{my $w = shift;
- my $type = $w->type(shift);
- return defined $type && $type eq shift;
-}
-
-# Motion --
-# This procedure is called to handle mouse motion events for menus.
-# It does two things. First, it resets the active element in the
-# menu, if the mouse is over the menu. Second, if a mouse button
-# is down, it posts and unposts cascade entries to match the mouse
-# position.
-#
-# Arguments:
-# menu - The menu window.
-# y - The y position of the mouse.
-# state - Modifier state (tells whether buttons are down).
-sub Motion
-{
- my $menu = shift;
- my $x = shift;
- my $y = shift;
- my $state = shift;
- my $t = $menu->cget('-type');
-
- if ($menu->IS($Tk::window))
- {
- if ($menu->cget('-type') eq 'menubar')
- {
-# if (defined($Tk::focus) && $Tk::focus != $menu)
- {
- $menu->activate("\@$x,$y");
- $menu->GenerateMenuSelect;
- }
- }
- else
- {
- $menu->activate("\@$x,$y");
- $menu->GenerateMenuSelect;
- }
- }
- if (($state & 0x1f00) != 0)
- {
- $menu->postcascade('active')
- }
-}
-# ButtonDown --
-# Handles button presses in menus. There are a couple of tricky things
-# here:
-# 1. Change the posted cascade entry (if any) to match the mouse position.
-# 2. If there is a posted menubutton, must grab to the menubutton so
-# that it can track mouse motions over other menubuttons and change
-# the posted menu.
-# 3. If there's no posted menubutton (e.g. because we're a torn-off menu
-# or one of its descendants) must grab to the top-level menu so that
-# we can track mouse motions across the entire menu hierarchy.
-
-#
-# Arguments:
-# menu - The menu window.
-sub ButtonDown
-{
- my $menu = shift;
- $menu->postcascade('active');
- if (defined $Tk::postedMb)
- {
- $Tk::postedMb->grabGlobal
- }
- else
- {
- while ($menu->cget('-type') eq 'normal'
- && $menu->parent->IsMenu
- && $menu->parent->ismapped
- )
- {
- $menu = $menu->parent;
- }
-
- if (!defined $Tk::menuBar)
- {
- $Tk::menuBar = $menu;
- $Tk::cursor = $menu->cget('-cursor');
- $menu->configure(-cursor => 'arrow');
- }
-
- # Don't update grab information if the grab window isn't changing.
- # Otherwise, we'll get an error when we unpost the menus and
- # restore the grab, since the old grab window will not be viewable
- # anymore.
-
- $menu->SaveGrabInfo unless ($menu->IS($menu->grabCurrent));
-
- # Must re-grab even if the grab window hasn't changed, in order
- # to release the implicit grab from the button press.
-
- $menu->grabGlobal if ($Tk::platform eq 'unix');
- }
-}
-
-sub Enter
-{
- my $w = shift;
- my $ev = $w->XEvent;
- $Tk::window = $w;
- if ($w->cget('-type') eq 'tearoff')
- {
- if ($ev->m ne 'NotifyUngrab')
- {
- $w->SetFocus if ($Tk::platform eq 'unix');
- }
- }
- $w->Motion($ev->x, $ev->y, $ev->s);
-}
-
-# Leave --
-# This procedure is invoked to handle Leave events for a menu. It
-# deactivates everything unless the active element is a cascade element
-# and the mouse is now over the submenu.
-#
-# Arguments:
-# menu - The menu window.
-# rootx, rooty - Root coordinates of mouse.
-# state - Modifier state.
-sub Leave
-{
- my $menu = shift;
- my $rootx = shift;
- my $rooty = shift;
- my $state = shift;
- undef $Tk::window;
- return if ($menu->index('active') eq 'none');
- if ($menu->typeIS('active','cascade'))
- {
- my $c = $menu->Containing($rootx,$rooty);
- return if (defined $c && $menu->entrycget('active','-menu')->IS($c));
- }
- $menu->activate('none');
- $menu->GenerateMenuSelect;
-}
-
-# Invoke --
-# This procedure is invoked when button 1 is released over a menu.
-# It invokes the appropriate menu action and unposts the menu if
-# it came from a menubutton.
-#
-# Arguments:
-# w - Name of the menu widget.
-sub Invoke
-{
- my $w = shift;
- my $release = shift;
-
- if ($release && !defined($Tk::window))
- {
- # Mouse was pressed over a menu without a menu button, then
- # dragged off the menu (possibly with a cascade posted) and
- # released. Unpost everything and quit.
-
- $w->postcascade('none');
- $w->activate('none');
- $w->eventGenerate('<<MenuSelect>>');
- $w->Unpost;
- return;
- }
-
- my $type = $w->type('active');
- if ($w->typeIS('active','cascade'))
- {
- $w->postcascade('active');
- my $menu = $w->entrycget('active','-menu');
- $menu->FirstEntry() if (defined $menu);
- }
- elsif ($w->typeIS('active','tearoff'))
- {
- $w->Unpost();
- $w->tearOffMenu();
- }
- elsif ($w->typeIS('active','menubar'))
- {
- $w->postcascade('none');
- $w->activate('none');
- $w->eventGenerate('<<MenuSelect>>');
- $w->Unpost;
- }
- else
- {
- $w->Unpost();
- $w->invoke('active')
- }
-}
-# Escape --
-# This procedure is invoked for the Cancel (or Escape) key. It unposts
-# the given menu and, if it is the top-level menu for a menu button,
-# unposts the menu button as well.
-#
-# Arguments:
-# menu - Name of the menu window.
-sub Escape
-{
- my $menu = shift;
- my $parent = $menu->parent;
- if (!$parent->IsMenu)
- {
- $menu->Unpost()
- }
- elsif ($parent->cget('-type') eq 'menubar')
- {
- $menu->Unpost;
- RestoreOldGrab();
- }
- else
- {
- $menu->NextMenu(-1)
- }
-}
-# LeftRight --
-# This procedure is invoked to handle "left" and "right" traversal
-# motions in menus. It traverses to the next menu in a menu bar,
-# or into or out of a cascaded menu.
-#
-# Arguments:
-# menu - The menu that received the keyboard
-# event.
-# direction - Direction in which to move: "left" or "right"
-sub NextMenu
-{
- my $menu = shift;
- my $direction = shift;
- # First handle traversals into and out of cascaded menus.
- my $count;
- if ($direction eq 'right')
- {
- $count = 1;
- if ($menu->typeIS('active','cascade'))
- {
- $menu->postcascade('active');
- my $m2 = $menu->entrycget('active','-menu');
- $m2->FirstEntry if (defined $m2);
- return;
- }
- else
- {
- my $parent = $menu->parent;
- while ($parent->PathName ne '.')
- {
- if ($parent->IsMenu && $parent->cget('-type') eq 'menubar')
- {
- $parent->SetFocus;
- $parent->NextEntry(1);
- return;
- }
- $parent = $parent->parent;
- }
- }
- }
- else
- {
- $count = -1;
- my $m2 = $menu->parent;
- if ($m2->IsMenu)
- {
- if ($m2->cget('-type') ne 'menubar')
- {
- $menu->activate('none');
- $menu->GenerateMenuSelect;
- $m2->SetFocus;
- # This code unposts any posted submenu in the parent.
- my $tmp = $m2->index('active');
- $m2->activate('none');
- $m2->activate($tmp);
- return;
- }
- }
- }
- # Can't traverse into or out of a cascaded menu. Go to the next
- # or previous menubutton, if that makes sense.
-
- my $m2 = $menu->parent;
- if ($m2->IsMenu)
- {
- if ($m2->cget('-type') eq 'menubar')
- {
- $m2->SetFocus;
- $m2->NextEntry(-1);
- return;
- }
- }
-
- my $w = $Tk::postedMb;
- return unless defined $w;
- my @buttons = $w->parent->children;
- my $length = @buttons;
- my $i = Tk::lsearch(\@buttons,$w)+$count;
- my $mb;
- while (1)
- {
- while ($i < 0)
- {
- $i += $length
- }
- while ($i >= $length)
- {
- $i += -$length
- }
- $mb = $buttons[$i];
- last if ($mb->IsMenubutton && $mb->cget('-state') ne 'disabled'
- && defined($mb->cget('-menu'))
- && $mb->cget('-menu')->index('last') ne 'none'
- );
- return if ($mb == $w);
- $i += $count
- }
- $mb->PostFirst();
-}
-# NextEntry --
-# Activate the next higher or lower entry in the posted menu,
-# wrapping around at the ends. Disabled entries are skipped.
-#
-# Arguments:
-# menu - Menu window that received the keystroke.
-# count - 1 means go to the next lower entry,
-# -1 means go to the next higher entry.
-sub NextEntry
-{
- my $menu = shift;
- my $count = shift;
- if ($menu->index('last') eq 'none')
- {
- return;
- }
- my $length = $menu->index('last')+1;
- my $quitAfter = $length;
- my $active = $menu->index('active');
- my $i = ($active eq 'none') ? 0 : $active+$count;
- while (1)
- {
- return if ($quitAfter <= 0);
- while ($i < 0)
- {
- $i += $length
- }
- while ($i >= $length)
- {
- $i += -$length
- }
- my $state = eval {local $SIG{__DIE__}; $menu->entrycget($i,'-state') };
- last if (defined($state) && $state ne 'disabled');
- return if ($i == $active);
- $i += $count;
- $quitAfter -= 1;
- }
- $menu->activate($i);
- $menu->GenerateMenuSelect;
- if ($menu->type($i) eq 'cascade')
- {
- my $cascade = $menu->entrycget($i, '-menu');
- $menu->postcascade($i);
- $cascade->FirstEntry if (defined $cascade);
- }
-}
-
-
-# tkTraverseWithinMenu
-# This procedure implements keyboard traversal within a menu. It
-# searches for an entry in the menu that has "char" underlined. If
-# such an entry is found, it is invoked and the menu is unposted.
-#
-# Arguments:
-# w - The name of the menu widget.
-# char - The character to look for; case is
-# ignored. If the string is empty then
-# nothing happens.
-sub TraverseWithinMenu
-{
- my $w = shift;
- my $char = shift;
- return unless (defined $char);
- $char = "\L$char";
- my $last = $w->index('last');
- return if ($last eq 'none');
- for (my $i = 0;$i <= $last;$i += 1)
- {
- my $label = eval {local $SIG{__DIE__}; $w->entrycget($i,'-label') };
- next unless defined($label);
- my $ul = $w->entrycget($i,'-underline');
- if (defined $ul && $ul >= 0)
- {
- $label = substr("\L$label",$ul,1);
- if (defined($label) && $label eq $char)
- {
- if ($w->type($i) eq 'cascade')
- {
- $w->postcascade($i);
- $w->activate($i);
- my $m2 = $w->entrycget($i,'-menu');
- $m2->FirstEntry if (defined $m2);
- }
- else
- {
- $w->Unpost();
- $w->invoke($i);
- }
- return;
- }
- }
- }
-}
-
-sub FindMenu
-{
- my ($menu,$char) = @_;
- if ($menu->cget('-type') eq 'menubar')
- {
- if (!defined($char) || $char eq '')
- {
- $menu->FirstEntry;
- }
- else
- {
- $menu->TraverseWithinMenu($char);
- }
- return $menu;
- }
- return undef;
-}
-
-
-# FirstEntry --
-# Given a menu, this procedure finds the first entry that isn't
-# disabled or a tear-off or separator, and activates that entry.
-# However, if there is already an active entry in the menu (e.g.,
-# because of a previous call to tkPostOverPoint) then the active
-# entry isn't changed. This procedure also sets the input focus
-# to the menu.
-#
-# Arguments:
-# menu - Name of the menu window (possibly empty).
-sub FirstEntry
-{
- my $menu = shift;
- return if (!defined($menu) || $menu eq '' || !ref($menu));
- $menu->SetFocus;
- return if ($menu->index('active') ne 'none');
- my $last = $menu->index('last');
- return if ($last eq 'none');
- for (my $i = 0;$i <= $last;$i += 1)
- {
- my $state = eval {local $SIG{__DIE__}; $menu->entrycget($i,'-state') };
- if (defined $state && $state ne 'disabled' && !$menu->typeIS($i,'tearoff'))
- {
- $menu->activate($i);
- $menu->GenerateMenuSelect;
- if ($menu->type($i) eq 'cascade')
- {
- my $cascade = $menu->entrycget($i,'-menu');
- if (defined $cascade)
- {
- $menu->postcascade($i);
- $cascade->FirstEntry;
- }
- }
- return;
- }
- }
-}
-
-# FindName --
-# Given a menu and a text string, return the index of the menu entry
-# that displays the string as its label. If there is no such entry,
-# return an empty string. This procedure is tricky because some names
-# like "active" have a special meaning in menu commands, so we can't
-# always use the "index" widget command.
-#
-# Arguments:
-# menu - Name of the menu widget.
-# s - String to look for.
-sub FindName
-{
- my $menu = shift;
- my $s = shift;
- my $i = undef;
- if ($s !~ /^active$|^last$|^none$|^[0-9]|^@/)
- {
- $i = eval {local $SIG{__DIE__}; $menu->index($s) };
- return $i;
- }
- my $last = $menu->index('last');
- return if ($last eq 'none');
- for ($i = 0;$i <= $last;$i += 1)
- {
- my $label = eval {local $SIG{__DIE__}; $menu->entrycget($i,'-label') };
- return $i if (defined $label && $label eq $s);
- }
- return undef;
-}
-# PostOverPoint --
-# This procedure posts a given menu such that a given entry in the
-# menu is centered over a given point in the root window. It also
-# activates the given entry.
-#
-# Arguments:
-# menu - Menu to post.
-# x, y - Root coordinates of point.
-# entry - Index of entry within menu to center over (x,y).
-# If omitted or specified as {}, then the menu's
-# upper-left corner goes at (x,y).
-sub PostOverPoint
-{
- my $menu = shift;
- my $x = shift;
- my $y = shift;
- my $entry = shift;
- if (defined $entry)
- {
- if ($entry == $menu->index('last'))
- {
- $y -= ($menu->yposition($entry)+$menu->height)/2;
- }
- else
- {
- $y -= ($menu->yposition($entry)+$menu->yposition($entry+1))/2;
- }
- $x -= $menu->reqwidth/2;
- }
- $menu->post($x,$y);
- if (defined($entry) && $menu->entrycget($entry,'-state') ne 'disabled')
- {
- $menu->activate($entry);
- $menu->GenerateMenuSelect;
- }
-}
-# tk_popup --
-# This procedure pops up a menu and sets things up for traversing
-# the menu and its submenus.
-#
-# Arguments:
-# menu - Name of the menu to be popped up.
-# x, y - Root coordinates at which to pop up the
-# menu.
-# entry - Index of a menu entry to center over (x,y).
-# If omitted or specified as {}, then menu's
-# upper-left corner goes at (x,y).
-sub Post
-{
- my $menu = shift;
- return unless (defined $menu);
- my $x = shift;
- my $y = shift;
- my $entry = shift;
- Unpost(undef) if (defined($Tk::popup) || defined($Tk::postedMb));
- $menu->PostOverPoint($x,$y,$entry);
- $menu->grabGlobal;
- $Tk::popup = $menu;
- $Tk::focus = $menu->focusCurrent;
- $menu->focus();
-}
-
-sub SetFocus
-{
- my $menu = shift;
- $Tk::focus = $menu->focusCurrent if (!defined($Tk::focus));
- $menu->focus;
-}
-
-sub GenerateMenuSelect
-{
- my $menu = shift;
- $Tk::activeMenu = $menu;
- $Tk::activeItem = $menu->index('active');
- $menu->eventGenerate('<<MenuSelect>>'); # FIXME
-}
-
-# Converted from tearoff.tcl --
-#
-# This file contains procedures that implement tear-off menus.
-#
-# @(#) tearoff.tcl 1.3 94/12/17 16:05:25
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# tkTearoffMenu --
-# Given the name of a menu, this procedure creates a torn-off menu
-# that is identical to the given menu (including nested submenus).
-# The new torn-off menu exists as a toplevel window managed by the
-# window manager. The return value is the name of the new menu.
-#
-# Arguments:
-# w - The menu to be torn-off (duplicated).
-sub tearOffMenu
-{
- my $w = shift;
- my $x = (@_) ? shift : 0;
- my $y = (@_) ? shift : 0;
-
- $x = $w->rootx if $x == 0;
- $y = $w->rooty if $y == 0;
-
- # Find a unique name to use for the torn-off menu. Find the first
- # ancestor of w that is a toplevel but not a menu, and use this as
- # the parent of the new menu. This guarantees that the torn off
- # menu will be on the same screen as the original menu. By making
- # it a child of the ancestor, rather than a child of the menu, it
- # can continue to live even if the menu is deleted; it will go
- # away when the toplevel goes away.
-
- my $parent = $w->parent;
- while ($parent->toplevel != $parent || $parent->IsMenu)
- {
- $parent = $parent->parent;
- }
- my $menu = $w->clone($parent,'tearoff');
-
- # Pick a title for the new menu by looking at the parent of the
- # original: if the parent is a menu, then use the text of the active
- # entry. If it's a menubutton then use its text.
- my $title = $menu->cget('-title');
- unless (defined $title && length($title))
- {
- $parent = $w->parent;
- if ($parent->IsMenubutton)
- {
- $title = $parent->cget('-text');
- }
- elsif ($parent->IsMenu)
- {
- $title = $parent->entrycget('active','-label');
- }
- }
- $menu->title($title) if (defined $title && length($title));
- $menu->post($x,$y);
- # Set tkPriv(focus) on entry: otherwise the focus will get lost
- # after keyboard invocation of a sub-menu (it will stay on the
- # submenu).
- $menu->bind('<Enter>','EnterFocus');
- $menu->Callback('-tearoffcommand');
- return $menu;
-}
-
-# tkMenuDup --
-# Given a menu (hierarchy), create a duplicate menu (hierarchy)
-# in a given window.
-#
-# Arguments:
-# src - Source window. Must be a menu. It and its
-# menu descendants will be duplicated at dst.
-# dst - Name to use for topmost menu in duplicate
-# hierarchy.
-sub MenuDup
-{
- my $src = shift;
- my $parent = shift;
- my $type = (@_) ? shift : 'normal';
- my %args = (-type => $type) ;
- foreach my $option ($src->configure())
- {
- next if (@$option == 2);
- $args{$$option[0]} = $$option[4] unless exists $args{$$option[0]};
- }
- my $dst = ref($src)->new($parent,%args);
- if ($type eq 'tearoff')
- {
- $dst->transient($parent->MainWindow);
- }
- my $last = $src->index('last');
- if ($last ne 'none')
- {
- for (my $i = $src->cget('-tearoff'); $i <= $last; $i++)
- {
- my $type = $src->type($i);
- if (defined $type)
- {
- my @args = ();
- foreach my $option ($src->entryconfigure($i))
- {
- next if (@$option == 2);
- push(@args,$$option[0],$$option[4]) if (defined $$option[4]);
- }
- $dst->add($type,@args);
- }
- }
- }
- # Duplicate the binding tags and bindings from the source menu.
- my @bindtags = $src->bindtags;
- my $path = $src->PathName;
- foreach (@bindtags)
- {
- $_ = $dst if ($_ eq $path);
- }
- $dst->bindtags([@bindtags]);
- foreach my $event ($src->bind)
- {
- my $cb = $src->bind($event);
- $dst->bind($event,$cb->Substitute($src,$dst));
- }
- return $dst;
-}
-
-
-
-# Some convenience methods
-
-sub separator { require Tk::Menu::Item; shift->Separator(@_); }
-sub cascade { require Tk::Menu::Item; shift->Cascade(@_); }
-sub checkbutton { require Tk::Menu::Item; shift->Checkbutton(@_); }
-sub radiobutton { require Tk::Menu::Item; shift->Radiobutton(@_); }
-
-sub command
-{
- my ($menu,%args) = @_;
- require Tk::Menu::Item;
- if (exists $args{-button})
- {
- # Backward compatible stuff from 'Menubar'
- my $button = delete $args{-button};
- $button = ['Misc', -underline => 0 ] unless (defined $button);
- my @bargs = ();
- ($button,@bargs) = @$button if (ref($button) && ref $button eq 'ARRAY');
- $menu = $menu->Menubutton(-label => $button, @bargs);
- }
- $menu->Command(%args);
-}
-
-sub Menubutton
-{
- my ($menu,%args) = @_;
- my $name = delete($args{'-text'}) || $args{'-label'};;
- $args{'-label'} = $name if (defined $name);
- my $items = delete $args{'-menuitems'};
- foreach my $opt (qw(-pack -after -before -side -padx -ipadx -pady -ipady -fill))
- {
- delete $args{$opt};
- }
- if (defined($name) && !defined($args{-underline}))
- {
- my $underline = ($name =~ s/^(.*)~/$1/) ? length($1): undef;
- if (defined($underline) && ($underline >= 0))
- {
- $args{-underline} = $underline;
- $args{-label} = $name;
- }
- }
- my $hash = $menu->TkHash('MenuButtons');
- my $mb = $hash->{$name};
- if (defined $mb)
- {
- delete $args{'-tearoff'}; # too late!
- $mb->configure(%args) if %args;
- }
- else
- {
- $mb = $menu->cascade(%args);
- $hash->{$name} = $mb;
- }
- $mb->menu->AddItems(@$items) if defined($items) && @$items;
- return $mb;
-}
-
-sub BalloonInfo
-{
- my ($menu,$balloon,$X,$Y,@opt) = @_;
- my $i = $menu->index('active');
- if ($i eq 'none')
- {
- my $y = $Y - $menu->rooty;
- $i = $menu->index("\@$y");
- }
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$menu);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'ARRAY'))
- {
- $balloon->Subclient($i);
- return '' if $i eq 'none';
- return ${$info}[$i] || '';
- }
- return $info;
- }
-}
-
-1;
-
-__END__
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Menu/Item.pm b/Master/xemtex/perl/site/lib/Tk/Menu/Item.pm
deleted file mode 100644
index ab341ebaf84..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Menu/Item.pm
+++ /dev/null
@@ -1,180 +0,0 @@
-package Tk::Menu::Item;
-
-require Tk::Menu;
-
-use Carp;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '3.027'; # $Id: //depot/Tk8/Tk/Menu/Item.pm#27 $
-
-sub PreInit
-{
- # Dummy (virtual) method
- my ($class,$menu,$minfo) = @_;
-}
-
-sub new
-{
- my ($class,$menu,%minfo) = @_;
- my $kind = $class->kind;
- my $name = $minfo{'-label'};
- if (defined $kind)
- {
- my $invoke = delete $minfo{'-invoke'};
- if (defined $name)
- {
- # Use ~ in name/label to set -underline
- if (defined($minfo{-label}) && !defined($minfo{-underline}))
- {
- my $cleanlabel = $minfo{-label};
- my $underline = ($cleanlabel =~ s/^(.*)~/$1/) ? length($1): undef;
- if (defined($underline) && ($underline >= 0))
- {
- $minfo{-underline} = $underline;
- $name = $cleanlabel if ($minfo{-label} eq $name);
- $minfo{-label} = $cleanlabel;
- }
- }
- }
- else
- {
- $name = $minfo{'-bitmap'} || $minfo{'-image'};
- croak('No -label') unless defined($name);
- $minfo{'-label'} = $name;
- }
- $class->PreInit($menu,\%minfo);
- $menu->add($kind,%minfo);
- $menu->invoke('last') if ($invoke);
- }
- else
- {
- $menu->add('separator');
- }
- return bless [$menu,$name],$class;
-}
-
-sub configure
-{
- my $obj = shift;
- my ($menu,$name) = @$obj;
- my %args = @_;
- $obj->[1] = $args{'-label'} if exists $args{'-label'};
- $menu->entryconfigure($name,@_);
-}
-
-sub cget
-{
- my $obj = shift;
- my ($menu,$name) = @$obj;
- $menu->entrycget($name,@_);
-}
-
-sub parentMenu
-{
- my $obj = shift;
- return $obj->[0];
-}
-
-# Default "kind" is a command
-sub kind { return 'command' }
-
-# Now the derived packages
-
-package Tk::Menu::Separator;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Separator';
-sub kind { return undef }
-
-package Tk::Menu::Button;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Button';
-Construct Tk::Menu 'Command';
-
-#package Tk::Menu::Command;
-#use base qw(Tk::Menu::Button);
-#Construct Tk::Menu 'Command';
-
-package Tk::Menu::Cascade;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Cascade';
-sub kind { return 'cascade' }
-use Carp;
-
-sub PreInit
-{
- my ($class,$menu,$minfo) = @_;
- my $tearoff = delete $minfo->{-tearoff};
- my $items = delete $minfo->{-menuitems};
- my $widgetvar = delete $minfo->{-menuvar};
- my $command = delete $minfo->{-postcommand};
- my $name = delete $minfo->{'Name'};
- $name = $minfo->{'-label'} unless defined $name;
- my @args = ();
- push(@args, '-tearoff' => $tearoff) if (defined $tearoff);
- push(@args, '-menuitems' => $items) if (defined $items);
- push(@args, '-postcommand' => $command) if (defined $command);
- my $submenu = $minfo->{'-menu'};
- unless (defined $submenu)
- {
- $minfo->{'-menu'} = $submenu = $menu->Menu(Name => $name, @args);
- }
- $$widgetvar = $submenu if (defined($widgetvar) && ref($widgetvar));
-}
-
-sub menu
-{
- my ($self,%args) = @_;
- my $w = $self->parentMenu;
- my $menu = $self->cget('-menu');
- if (!defined $menu)
- {
- require Tk::Menu;
- $w->ColorOptions(\%args);
- my $name = $self->cget('-label');
- warn "Had to (re-)reate menu for $name";
- $menu = $w->Menu(Name => $name, %args);
- $self->configure('-menu'=>$menu);
- }
- else
- {
- $menu->configure(%args) if %args;
- }
- return $menu;
-}
-
-# Some convenience methods
-
-sub separator { shift->menu->Separator(@_); }
-sub command { shift->menu->Command(@_); }
-sub cascade { shift->menu->Cascade(@_); }
-sub checkbutton { shift->menu->Checkbutton(@_); }
-sub radiobutton { shift->menu->Radiobutton(@_); }
-
-sub pack
-{
- my $w = shift;
- if ($^W)
- {
- require Carp;
- Carp::carp("Cannot 'pack' $w - done automatically")
- }
-}
-
-package Tk::Menu::Checkbutton;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Checkbutton';
-sub kind { return 'checkbutton' }
-
-package Tk::Menu::Radiobutton;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Radiobutton';
-sub kind { return 'radiobutton' }
-
-package Tk::Menu::Item;
-
-1;
-__END__
-
-=cut
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Menubutton.pm b/Master/xemtex/perl/site/lib/Tk/Menubutton.pm
deleted file mode 100644
index ef9237900b2..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Menubutton.pm
+++ /dev/null
@@ -1,398 +0,0 @@
-# Converted from menu.tcl --
-#
-# This file defines the default bindings for Tk menus and menubuttons.
-# It also implements keyboard traversal of menus and implements a few
-# other utility procedures related to menus.
-#
-# @(#) menu.tcl 1.34 94/12/19 17:09:09
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-
-package Tk::Menubutton;
-require Tk;
-
-use vars qw($VERSION);
-$VERSION = '3.025'; # $Id: //depot/Tk8/Menubutton/Menubutton.pm#25 $
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Menubutton';
-
-import Tk qw(&Ev $XS_VERSION);
-
-bootstrap Tk::Menubutton;
-
-sub Tk_cmd { \&Tk::menubutton }
-
-sub InitObject
-{
- my ($mb,$args) = @_;
- my $menuitems = delete $args->{-menuitems};
- my $tearoff = delete $args->{-tearoff};
- $mb->SUPER::InitObject($args);
- if ((defined($menuitems) || defined($tearoff)) && %$args)
- {
- $mb->configure(%$args);
- %$args = ();
- }
- $mb->menu(-tearoff => $tearoff) if (defined $tearoff);
- $mb->AddItems(@$menuitems) if (defined $menuitems)
-}
-
-
-#
-#-------------------------------------------------------------------------
-# Elements of tkPriv that are used in this file:
-#
-# cursor - Saves the -cursor option for the posted menubutton.
-# focus - Saves the focus during a menu selection operation.
-# Focus gets restored here when the menu is unposted.
-# inMenubutton - The name of the menubutton widget containing
-# the mouse, or an empty string if the mouse is
-# not over any menubutton.
-# popup - If a menu has been popped up via tk_popup, this
-# gives the name of the menu. Otherwise this
-# value is empty.
-# postedMb - Name of the menubutton whose menu is currently
-# posted, or an empty string if nothing is posted
-# A grab is set on this widget.
-# relief - Used to save the original relief of the current
-# menubutton.
-# window - When the mouse is over a menu, this holds the
-# name of the menu; it's cleared when the mouse
-# leaves the menu.
-#-------------------------------------------------------------------------
-#-------------------------------------------------------------------------
-# Overall note:
-# This file is tricky because there are four different ways that menus
-# can be used:
-#
-# 1. As a pulldown from a menubutton. This is the most common usage.
-# In this style, the variable tkPriv(postedMb) identifies the posted
-# menubutton.
-# 2. As a torn-off menu copied from some other menu. In this style
-# tkPriv(postedMb) is empty, and the top-level menu is no
-# override-redirect.
-# 3. As an option menu, triggered from an option menubutton. In thi
-# style tkPriv(postedMb) identifies the posted menubutton.
-# 4. As a popup menu. In this style tkPriv(postedMb) is empty and
-# the top-level menu is override-redirect.
-#
-# The various binding procedures use the state described above to
-# distinguish the various cases and take different actions in each
-# case.
-#-------------------------------------------------------------------------
-# Menu::Bind --
-# This procedure is invoked the first time the mouse enters a menubutton
-# widget or a menubutton widget receives the input focus. It creates
-# all of the class bindings for both menubuttons and menus.
-#
-# Arguments:
-# w - The widget that was just entered or just received
-# the input focus.
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<FocusIn>','NoOp');
- $mw->bind($class,'<Enter>','Enter');
- $mw->bind($class,'<Leave>','Leave');
- $mw->bind($class,'<1>','ButtonDown');
- $mw->bind($class,'<Motion>',['Motion','up',Ev('X'),Ev('Y')]);
- $mw->bind($class,'<B1-Motion>',['Motion','down',Ev('X'),Ev('Y')]);
- $mw->bind($class,'<ButtonRelease-1>','ButtonUp');
- $mw->bind($class,'<space>','PostFirst');
- $mw->bind($class,'<Return>','PostFirst');
- return $class;
-}
-
-sub ButtonDown
-{my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::inMenubutton->Post($Ev->X,$Ev->Y) if (defined $Tk::inMenubutton);
-}
-
-sub PostFirst
-{
- my $w = shift;
- my $menu = $w->cget('-menu');
- $w->Post();
- $menu->FirstEntry() if (defined $menu);
-}
-
-
-# Enter --
-# This procedure is invoked when the mouse enters a menubutton
-# widget. It activates the widget unless it is disabled. Note:
-# this procedure is only invoked when mouse button 1 is *not* down.
-# The procedure B1Enter is invoked if the button is down.
-#
-# Arguments:
-# w - The name of the widget.
-sub Enter
-{
- my $w = shift;
- $Tk::inMenubutton->Leave if (defined $Tk::inMenubutton);
- $Tk::inMenubutton = $w;
- if ($w->cget('-state') ne 'disabled')
- {
- $w->configure('-state','active')
- }
-}
-
-sub Leave
-{
- my $w = shift;
- $Tk::inMenubutton = undef;
- return unless Tk::Exists($w);
- if ($w->cget('-state') eq 'active')
- {
- $w->configure('-state','normal')
- }
-}
-# Post --
-# Given a menubutton, this procedure does all the work of posting
-# its associated menu and unposting any other menu that is currently
-# posted.
-#
-# Arguments:
-# w - The name of the menubutton widget whose menu
-# is to be posted.
-# x, y - Root coordinates of cursor, used for positioning
-# option menus. If not specified, then the center
-# of the menubutton is used for an option menu.
-sub Post
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return if ($w->cget('-state') eq 'disabled');
- return if (defined $Tk::postedMb && $w == $Tk::postedMb);
- my $menu = $w->cget('-menu');
- return unless (defined($menu) && $menu->index('last') ne 'none');
-
- my $tearoff = $Tk::platform eq 'unix' || $menu->cget('-type') eq 'tearoff';
-
- my $wpath = $w->PathName;
- my $mpath = $menu->PathName;
- unless (index($mpath,"$wpath.") == 0)
- {
- die "Cannot post $mpath : not a descendant of $wpath";
- }
-
- my $cur = $Tk::postedMb;
- if (defined $cur)
- {
- Tk::Menu->Unpost(undef); # fixme
- }
- $Tk::cursor = $w->cget('-cursor');
- $Tk::relief = $w->cget('-relief');
- $w->configure('-cursor','arrow');
- $w->configure('-relief','raised');
- $Tk::postedMb = $w;
- $Tk::focus = $w->focusCurrent;
- $menu->activate('none');
- $menu->GenerateMenuSelect;
- # If this looks like an option menubutton then post the menu so
- # that the current entry is on top of the mouse. Otherwise post
- # the menu just below the menubutton, as for a pull-down.
-
- eval
- {local $SIG{'__DIE__'};
- my $dir = $w->cget('-direction');
- if ($dir eq 'above')
- {
- $menu->post($w->rootx, $w->rooty - $menu->ReqHeight);
- }
- elsif ($dir eq 'below')
- {
- $menu->post($w->rootx, $w->rooty + $w->Height);
- }
- elsif ($dir eq 'left')
- {
- my $x = $w->rootx - $menu->ReqWidth;
- my $y = int((2*$w->rooty + $w->Height) / 2);
- if ($w->cget('-indicatoron') == 1 && defined($w->cget('-textvariable')))
- {
- $menu->PostOverPoint($x,$y,$menu->FindName($w->cget('-text')))
- }
- else
- {
- $menu->post($x,$y);
- }
- }
- elsif ($dir eq 'right')
- {
- my $x = $w->rootx + $w->Width;
- my $y = int((2*$w->rooty + $w->Height) / 2);
- if ($w->cget('-indicatoron') == 1 && defined($w->cget('-textvariable')))
- {
- $menu->PostOverPoint($x,$y,$menu->FindName($w->cget('-text')))
- }
- else
- {
- $menu->post($x,$y);
- }
- }
- else
- {
- if ($w->cget('-indicatoron') == 1 && defined($w->cget('-textvariable')))
- {
- if (!defined($y))
- {
- $x = $w->rootx+$w->width/2;
- $y = $w->rooty+$w->height/2
- }
- $menu->PostOverPoint($x,$y,$menu->FindName($w->cget('-text')))
- }
- else
- {
- $menu->post($w->rootx,$w->rooty+$w->height);
- }
- }
- };
- if ($@)
- {
- Tk::Menu->Unpost;
- die $@
- }
-
- $Tk::tearoff = $tearoff;
- if ($tearoff)
- {
- $menu->focus;
- $w->SaveGrabInfo;
- $w->grabGlobal;
- }
-}
-# Motion --
-# This procedure handles mouse motion events inside menubuttons, and
-# also outside menubuttons when a menubutton has a grab (e.g. when a
-# menu selection operation is in progress).
-#
-# Arguments:
-# w - The name of the menubutton widget.
-# upDown - "down" means button 1 is pressed, "up" means
-# it isn't.
-# rootx, rooty - Coordinates of mouse, in (virtual?) root window.
-sub Motion
-{
- my $w = shift;
- my $upDown = shift;
- my $rootx = shift;
- my $rooty = shift;
- return if (defined($Tk::inMenubutton) && $Tk::inMenubutton == $w);
- my $new = $w->Containing($rootx,$rooty);
- if (defined($Tk::inMenubutton))
- {
- if (!defined($new) || ($new != $Tk::inMenubutton && $w->toplevel != $new->toplevel))
- {
- $Tk::inMenubutton->Leave();
- }
- }
- if (defined($new) && $new->IsMenubutton && $new->cget('-indicatoron') == 0 &&
- $w->cget('-indicatoron') == 0)
- {
- if ($upDown eq 'down')
- {
- $new->Post($rootx,$rooty);
- }
- else
- {
- $new->Enter();
- }
- }
-}
-# ButtonUp --
-# This procedure is invoked to handle button 1 releases for menubuttons.
-# If the release happens inside the menubutton then leave its menu
-# posted with element 0 activated. Otherwise, unpost the menu.
-#
-# Arguments:
-# w - The name of the menubutton widget.
-
-sub ButtonUp {
- my $w = shift;
-
- my $tearoff = $Tk::platform eq 'unix' || (defined($w->cget('-menu')) &&
- $w->cget('-menu')->cget('-type') eq 'tearoff');
- if ($tearoff && (defined($Tk::postedMb) && $Tk::postedMb == $w)
- && (defined($Tk::inMenubutton) && $Tk::inMenubutton == $w)) {
- $Tk::postedMb->cget(-menu)->FirstEntry();
- } else {
- Tk::Menu->Unpost(undef);
- }
-} # end ButtonUp
-
-# Some convenience methods
-
-sub menu
-{
- my ($w,%args) = @_;
- my $menu = $w->cget('-menu');
- if (!defined $menu)
- {
- require Tk::Menu;
- $w->ColorOptions(\%args) if ($Tk::platform eq 'unix');
- $menu = $w->Menu(%args);
- $w->configure('-menu'=>$menu);
- }
- else
- {
- $menu->configure(%args);
- }
- return $menu;
-}
-
-sub separator { require Tk::Menu::Item; shift->menu->Separator(@_); }
-sub command { require Tk::Menu::Item; shift->menu->Command(@_); }
-sub cascade { require Tk::Menu::Item; shift->menu->Cascade(@_); }
-sub checkbutton { require Tk::Menu::Item; shift->menu->Checkbutton(@_); }
-sub radiobutton { require Tk::Menu::Item; shift->menu->Radiobutton(@_); }
-
-sub AddItems
-{
- shift->menu->AddItems(@_);
-}
-
-sub entryconfigure
-{
- shift->menu->entryconfigure(@_);
-}
-
-sub entrycget
-{
- shift->menu->entrycget(@_);
-}
-
-sub FindMenu
-{
- my $child = shift;
- my $char = shift;
- my $ul = $child->cget('-underline');
- if (defined $ul && $ul >= 0 && $child->cget('-state') ne 'disabled')
- {
- my $char2 = $child->cget('-text');
- $char2 = substr("\L$char2",$ul,1) if (defined $char2);
- if (!defined($char) || $char eq '' || (defined($char2) && "\l$char" eq $char2))
- {
- $child->PostFirst;
- return $child;
- }
- }
- return undef;
-}
-
-1;
-
-__END__
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Optionmenu.pm b/Master/xemtex/perl/site/lib/Tk/Optionmenu.pm
deleted file mode 100644
index ca3f5dba22a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Optionmenu.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Optionmenu;
-require Tk::Menubutton;
-require Tk::Menu;
-
-use vars qw($VERSION);
-$VERSION = '3.025'; # $Id: //depot/Tk8/Tk/Optionmenu.pm#25 $
-
-use base qw(Tk::Derived Tk::Menubutton);
-
-use strict;
-
-Construct Tk::Widget 'Optionmenu';
-
-sub Populate
-{
- my ($w,$args) = @_;
- $w->SUPER::Populate($args);
- $args->{-indicatoron} = 1;
- my $var = delete $args->{-textvariable};
- unless (defined $var)
- {
- my $gen = undef;
- $var = \$gen;
- }
- my $menu = $w->menu(-tearoff => 0);
- $w->configure(-textvariable => $var);
-
- # Should we allow -menubackground etc. as in -label* of Frame ?
-
- $w->ConfigSpecs(-command => ['CALLBACK',undef,undef,undef],
- -options => ['METHOD', undef, undef, undef],
- -variable=> ['PASSIVE', undef, undef, undef],
- -font => [['SELF',$menu], undef, undef, undef],
-
- -takefocus => [ qw/SELF takefocus Takefocus 1/ ],
- -highlightthickness => [ qw/SELF highlightThickness HighlightThickness 1/ ],
- -relief => [ qw/SELF relief Relief raised/ ],
-
- );
-
- # configure -variable and -command now so that when -options
- # is set by main-line configure they are there to be set/called.
- $w->configure(-variable => $var) if ($var = delete $args->{-variable});
- $w->configure(-command => $var) if ($var = delete $args->{-command});
-}
-
-sub setOption
-{
- my ($w, $label, $val) = @_;
- $val = $label if @_ == 2;
- my $var = $w->cget(-textvariable);
- $$var = $label;
- $var = $w->cget(-variable);
- $$var = $val if $var;
- $w->Callback(-command => $val);
-}
-
-sub addOptions
-{
- my $w = shift;
- my $menu = $w->menu;
- my $var = $w->cget(-textvariable);
- my $old = $$var;
- my $width = $w->cget('-width');
- my %hash;
- my $first;
- while (@_)
- {
- my $val = shift;
- my $label = $val;
- if (ref $val)
- {
- ($label, $val) = @$val;
- }
- my $len = length($label);
- $width = $len if (!defined($width) || $len > $width);
- $menu->command(-label => $label, -command => [ $w , 'setOption', $label, $val ]);
- $hash{$label} = $val;
- $first = $label unless defined $first;
- }
- if (!defined($old) || !exists($hash{$old}))
- {
- $w->setOption($first, $hash{$first}) if defined $first;
- }
- $w->configure('-width' => $width);
-}
-
-sub options
-{
- my ($w,$opts) = @_;
- if (@_ > 1)
- {
- $w->menu->delete(0,'end');
- $w->addOptions(@$opts);
- }
- else
- {
- return $w->_cget('-options');
- }
-}
-
-1;
-
-__END__
-
-=cut
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Pixmap.pm b/Master/xemtex/perl/site/lib/Tk/Pixmap.pm
deleted file mode 100644
index 081b17f7892..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Pixmap.pm
+++ /dev/null
@@ -1,19 +0,0 @@
-package Tk::Pixmap;
-
-use vars qw($VERSION);
-$VERSION = '3.011'; # $Id: //depot/Tk8/TixPixmap/Pixmap.pm#11 $
-
-use Tk qw($XS_VERSION);
-
-use Tk::Image ();
-
-use base qw(Tk::Image);
-
-Construct Tk::Image 'Pixmap';
-
-bootstrap Tk::Pixmap;
-
-sub Tk_image { 'pixmap' }
-
-1;
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Pretty.pm b/Master/xemtex/perl/site/lib/Tk/Pretty.pm
deleted file mode 100644
index 409f1e1b320..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Pretty.pm
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Pretty;
-require Exporter;
-
-use vars qw($VERSION @EXPORT);
-$VERSION = '3.013'; # $Id: //depot/Tk8/Tk/Pretty.pm#13 $
-
-use base qw(Exporter);
-
-@EXPORT = qw(Pretty PrintArgs);
-
-sub pretty_list
-{
- join(',',map(&Pretty($_),@_));
-}
-
-sub Pretty
-{
- return pretty_list(@_) if (@_ > 1);
- my $obj = shift;
- return 'undef' unless defined($obj);
- my $type = "$obj";
- return $type if ($type =~ /=HASH/ && exists($obj->{"_Tcl_CmdInfo_\0"}));
- my $result = '';
- if (ref $obj)
- {
- my $class;
- if ($type =~ /^([^=]+)=(.*)$/)
- {
- $class = $1;
- $type = $2;
- $result .= 'bless(';
- }
- if ($type =~ /^ARRAY/)
- {
- $result .= '[';
- $result .= pretty_list(@$obj);
- $result .= ']';
- }
- elsif ($type =~ /^HASH/)
- {
- $result .= '{';
- if (%$obj)
- {
- my ($key, $value);
- while (($key,$value) = each %$obj)
- {
- $result .= $key . '=>' . Pretty($value) . ',';
- }
- chop($result);
- }
- $result .= '}';
- }
- elsif ($type =~ /^REF/)
- {
- $result .= "\\" . Pretty($$obj);
- }
- elsif ($type =~ /^SCALAR/)
- {
- $result .= Pretty($$obj);
- }
- else
- {
- $result .= $type;
- }
- $result .= ",$class)" if (defined $class);
- }
- else
- {
- if ($obj =~ /^-?[0-9]+(.[0-9]*(e[+-][0-9]+)?)?$/ ||
- $obj =~ /^[A-Z_][A-Za-z_0-9]*$/ ||
- $obj =~ /^[a-z_][A-Za-z_0-9]*[A-Z_][A-Za-z_0-9]*$/
- )
- {
- $result .= $obj;
- }
- else
- {
- $result .= "'" . $obj . "'";
- }
- }
- return $result;
-}
-
-sub PrintArgs
-{
- my $name = (caller(1))[3];
- print "$name(",Pretty(@_),")\n";
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/ROText.pm b/Master/xemtex/perl/site/lib/Tk/ROText.pm
deleted file mode 100644
index 96fa1e070d3..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/ROText.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::ROText;
-
-use vars qw($VERSION);
-$VERSION = '3.024'; # $Id: //depot/Tk8/Tk/ROText.pm#24 $
-
-use Tk::Text;
-use base qw(Tk::Text);
-
-Construct Tk::Widget 'ROText';
-
-sub clipEvents
-{
- return qw[Copy];
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- my $val = $class->bindRdOnly($mw);
- my $cb = $mw->bind($class,'<Next>');
- $mw->bind($class,'<space>',$cb) if (defined $cb);
- $cb = $mw->bind($class,'<Prior>');
- $mw->bind($class,'<BackSpace>',$cb) if (defined $cb);
- $class->clipboardOperations($mw,'Copy');
- return $val;
-}
-
-sub Tk::Widget::ScrlROText { shift->Scrolled('ROText' => @_) }
-
-1;
-
-__END__
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Radiobutton.pm b/Master/xemtex/perl/site/lib/Tk/Radiobutton.pm
deleted file mode 100644
index a706de6675e..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Radiobutton.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-# Conversion from Tk4.0 button.tcl competed.
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-package Tk::Radiobutton;
-
-use vars qw($VERSION);
-$VERSION = '3.013'; # $Id: //depot/Tk8/Tk/Radiobutton.pm#13 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-require Tk::Button;
-
-
-use base qw(Tk::Button);
-Construct Tk::Widget 'Radiobutton';
-
-sub Tk_cmd { \&Tk::radiobutton }
-
-sub CreateOptions
-{
- return (shift->SUPER::CreateOptions,'-variable');
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', 'Leave');
- $mw->bind($class,'<1>', 'Invoke');
- $mw->bind($class,'<space>', 'Invoke');
- return $class;
-}
-
-sub Invoke
-{
- my $w = shift;
- $w->invoke() unless($w->cget('-state') eq 'disabled');
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Scale.pm b/Master/xemtex/perl/site/lib/Tk/Scale.pm
deleted file mode 100644
index f31a68d9cb0..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Scale.pm
+++ /dev/null
@@ -1,278 +0,0 @@
-# Converted from scale.tcl --
-#
-# This file defines the default bindings for Tk scale widgets.
-#
-# @(#) scale.tcl 1.3 94/12/17 16:05:23
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-package Tk::Scale;
-
-use vars qw($VERSION);
-$VERSION = '3.012'; # $Id: //depot/Tk8/Scale/Scale.pm#12 $
-
-use Tk qw($XS_VERSION);
-use AutoLoader;
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Scale';
-
-bootstrap Tk::Scale;
-
-sub Tk_cmd { \&Tk::scale }
-
-Tk::Methods('coords','get','identify','set');
-
-
-import Tk qw(Ev);
-
-#
-# Bind --
-# This procedure below invoked the first time the mouse enters a
-# scale widget or a scale widget receives the input focus. It creates
-# all of the class bindings for scales.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $mw->bind($class,'<Enter>',['Enter',Ev('x'),Ev('y')]);
- $mw->bind($class,'<Motion>',['Activate',Ev('x'),Ev('y')]);
- $mw->bind($class,'<Leave>','Leave');
-
- $mw->bind($class,'<1>',['ButtonDown',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Motion>',['Drag',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Leave>','NoOp');
- $mw->bind($class,'<B1-Enter>','NoOp');
- $mw->bind($class,'<ButtonRelease-1>',['ButtonUp',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<2>',['ButtonDown',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['Drag',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Leave>','NoOp');
- $mw->bind($class,'<B2-Enter>','NoOp');
- $mw->bind($class,'<ButtonRelease-2>',['ButtonUp',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<Control-1>',['ControlPress',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<Up>',['Increment','up','little','noRepeat']);
- $mw->bind($class,'<Down>',['Increment','down','little','noRepeat']);
- $mw->bind($class,'<Left>',['Increment','up','little','noRepeat']);
- $mw->bind($class,'<Right>',['Increment','down','little','noRepeat']);
-
- $mw->bind($class,'<Control-Up>',['Increment','up','big','noRepeat']);
- $mw->bind($class,'<Control-Down>',['Increment','down','big','noRepeat']);
- $mw->bind($class,'<Control-Left>',['Increment','up','big','noRepeat']);
- $mw->bind($class,'<Control-Right>',['Increment','down','big','noRepeat']);
-
- $mw->bind($class,'<Home>',['set',Ev('cget','-from')]);
- $mw->bind($class,'<End>',['set',Ev('cget','-to')]);
- return $class;
-}
-
-1;
-
-__END__
-
-# Activate --
-# This procedure is invoked to check a given x-y position in the
-# scale and activate the slider if the x-y position falls within
-# the slider.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Activate
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return if ($w->cget('-state') eq 'disabled');
- my $ident = $w->identify($x,$y);
- if (defined($ident) && $ident eq 'slider')
- {
- $w->configure(-state => 'active')
- }
- else
- {
- $w->configure(-state => 'normal')
- }
-}
-
-sub Leave
-{
- my ($w) = @_;
- $w->configure('-activebackground',$w->{'activeBg'}) if ($Tk::strictMotif);
- $w->configure('-state','normal') if ($w->cget('-state') eq 'active');
-}
-
-sub Enter
-{
- my ($w,$x,$y) = @_;
- if ($Tk::strictMotif)
- {
- $w->{'activeBg'} = $w->cget('-activebackground');
- $w->configure('-activebackground',$w->cget('-background'));
- }
- $w->Activate($x,$y);
-}
-
-sub ButtonUp
-{
- my ($w,$x,$y) = @_;
- $w->CancelRepeat();
- $w->EndDrag();
- $w->Activate($x,$y)
-}
-
-
-# ButtonDown --
-# This procedure is invoked when a button is pressed in a scale. It
-# takes different actions depending on where the button was pressed.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates of button press.
-sub ButtonDown
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- $Tk::dragging = 0;
- $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->Increment('up','little','initial')
- }
- elsif ($el eq 'trough2')
- {
- $w->Increment('down','little','initial')
- }
- elsif ($el eq 'slider')
- {
- $Tk::dragging = 1;
- my @coords = $w->coords();
- $Tk::deltaX = $x-$coords[0];
- $Tk::deltaY = $y-$coords[1];
- }
-}
-# Drag --
-# This procedure is called when the mouse is dragged with
-# mouse button 1 down. If the drag started inside the slider
-# (i.e. the scale is active) then the scale's value is adjusted
-# to reflect the mouse's position.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Drag
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $w->set($w->get($x-$Tk::deltaX,$y-$Tk::deltaY))
-}
-# EndDrag --
-# This procedure is called to end an interactive drag of the
-# slider. It just marks the drag as over.
-# Arguments:
-# w - The scale widget.
-sub EndDrag
-{
- my $w = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $Tk::dragging = 0;
-}
-# Increment --
-# This procedure is invoked to increment the value of a scale and
-# to set up auto-repeating of the action if that is desired. The
-# way the value is incremented depends on the "dir" and "big"
-# arguments.
-#
-# Arguments:
-# w - The scale widget.
-# dir - "up" means move value towards -from, "down" means
-# move towards -to.
-# big - Size of increments: "big" or "little".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-sub Increment
-{
- my $w = shift;
- my $dir = shift;
- my $big = shift;
- my $repeat = shift;
- my $inc;
- if ($big eq 'big')
- {
- $inc = $w->cget('-bigincrement');
- if ($inc == 0)
- {
- $inc = abs(($w->cget('-to')-$w->cget('-from')))/10.0
- }
- if ($inc < $w->cget('-resolution'))
- {
- $inc = $w->cget('-resolution')
- }
- }
- else
- {
- $inc = $w->cget('-resolution')
- }
- if (($w->cget('-from') > $w->cget('-to')) ^ ($dir eq 'up'))
- {
- $inc = -$inc
- }
- $w->set($w->get()+$inc);
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),'Increment',$w,$dir,$big,'again'));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),'Increment',$w,$dir,$big,'again'));
- }
-}
-# ControlPress --
-# This procedure handles button presses that are made with the Control
-# key down. Depending on the mouse position, it adjusts the scale
-# value to one end of the range or the other.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates where the button was pressed.
-sub ControlPress
-{
- my ($w,$x,$y) = @_;
- my $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->set($w->cget('-from'))
- }
- elsif ($el eq 'trough2')
- {
- $w->set($w->cget('-to'))
- }
-}
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Scrollbar.pm b/Master/xemtex/perl/site/lib/Tk/Scrollbar.pm
deleted file mode 100644
index a828682514f..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Scrollbar.pm
+++ /dev/null
@@ -1,414 +0,0 @@
-# Conversion from Tk4.0 scrollbar.tcl competed.
-package Tk::Scrollbar;
-require Tk;
-import Tk qw($XS_VERSION);
-use AutoLoader;
-
-use vars qw($VERSION);
-$VERSION = '3.014'; # $Id: //depot/Tk8/Scrollbar/Scrollbar.pm#14 $
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Scrollbar';
-
-bootstrap Tk::Scrollbar;
-
-sub Tk_cmd { \&Tk::scrollbar }
-
-Tk::Methods('activate','delta','fraction','get','identify','set');
-
-sub Needed
-{
- my ($sb) = @_;
- my @val = $sb->get;
- return 1 unless (@val == 2);
- return 1 if $val[0] != 0.0;
- return 1 if $val[1] != 1.0;
- return 0;
-}
-
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class, '<Enter>', 'Enter');
- $mw->bind($class, '<Motion>', 'Motion');
- $mw->bind($class, '<Leave>', 'Leave');
-
- $mw->bind($class, '<1>', 'ButtonDown');
- $mw->bind($class, '<B1-Motion>', 'Drag');
- $mw->bind($class, '<ButtonRelease-1>', 'ButtonUp');
- $mw->bind($class, '<B1-Leave>', 'NoOp'); # prevent generic <Leave>
- $mw->bind($class, '<B1-Enter>', 'NoOp'); # prevent generic <Enter>
- $mw->bind($class, '<Control-1>', 'ScrlTopBottom');
-
- $mw->bind($class, '<2>', 'ButtonDown');
- $mw->bind($class, '<B2-Motion>', 'Drag');
- $mw->bind($class, '<ButtonRelease-2>', 'ButtonUp');
- $mw->bind($class, '<B2-Leave>', 'NoOp'); # prevent generic <Leave>
- $mw->bind($class, '<B2-Enter>', 'NoOp'); # prevent generic <Enter>
- $mw->bind($class, '<Control-2>', 'ScrlTopBottom');
-
- $mw->bind($class, '<Up>', ['ScrlByUnits','v',-1]);
- $mw->bind($class, '<Down>', ['ScrlByUnits','v', 1]);
- $mw->bind($class, '<Control-Up>', ['ScrlByPages','v',-1]);
- $mw->bind($class, '<Control-Down>', ['ScrlByPages','v', 1]);
-
- $mw->bind($class, '<Left>', ['ScrlByUnits','h',-1]);
- $mw->bind($class, '<Right>', ['ScrlByUnits','h', 1]);
- $mw->bind($class, '<Control-Left>', ['ScrlByPages','h',-1]);
- $mw->bind($class, '<Control-Right>', ['ScrlByPages','h', 1]);
-
- $mw->bind($class, '<Prior>', ['ScrlByPages','hv',-1]);
- $mw->bind($class, '<Next>', ['ScrlByPages','hv', 1]);
-
- $mw->bind($class, '<Home>', ['ScrlToPos', 0]);
- $mw->bind($class, '<End>', ['ScrlToPos', 1]);
-
- return $class;
-
-}
-
-1;
-
-__END__
-
-sub Enter
-{
- my $w = shift;
- my $e = $w->XEvent;
- if ($Tk::strictMotif)
- {
- my $bg = $w->cget('-background');
- $activeBg = $w->cget('-activebackground');
- $w->configure('-activebackground' => $bg);
- }
- $w->activate($w->identify($e->x,$e->y));
-}
-
-sub Leave
-{
- my $w = shift;
- if ($Tk::strictMotif)
- {
- $w->configure('-activebackground' => $activeBg) if (defined $activeBg) ;
- }
- $w->activate('');
-}
-
-sub Motion
-{
- my $w = shift;
- my $e = $w->XEvent;
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# tkScrollButtonDown --
-# This procedure is invoked when a button is pressed in a scrollbar.
-# It changes the way the scrollbar is displayed and takes actions
-# depending on where the mouse is.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonDown
-{my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- $w->configure('-activerelief' => 'sunken');
- if ($e->b == 1 and
- (defined($element) && $element eq 'slider'))
- {
- $w->StartDrag($e->x,$e->y);
- }
- elsif ($e->b == 2 and
- (defined($element) && $element =~ /^(trough[12]|slider)$/o))
- {
- my $pos = $w->fraction($e->x, $e->y);
- my($head, $tail) = $w->get;
- my $len = $tail - $head;
-
- $head = $pos - $len/2;
- $tail = $pos + $len/2;
- if ($head < 0) {
- $head = 0;
- $tail = $len;
- }
- elsif ($tail > 1) {
- $head = 1 - $len;
- $tail = 1;
- }
- $w->ScrlToPos($head);
- $w->set($head, $tail);
-
- $w->StartDrag($e->x,$e->y);
- }
- else
- {
- $w->Select($element,'initial');
- }
-}
-
-# tkScrollButtonUp --
-# This procedure is invoked when a button is released in a scrollbar.
-# It cancels scans and auto-repeats that were in progress, and restores
-# the way the active element is displayed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonUp
-{my $w = shift;
- my $e = $w->XEvent;
- $w->CancelRepeat;
- $w->configure('-activerelief' => 'raised');
- $w->EndDrag($e->x,$e->y);
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# tkScrollSelect --
-# This procedure is invoked when button 1 is pressed over the scrollbar.
-# It invokes one of several scrolling actions depending on where in
-# the scrollbar the button was pressed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# element - The element of the scrollbar that was selected, such
-# as "arrow1" or "trough2". Shouldn't be "slider".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-
-sub Select
-{
- my $w = shift;
- my $element = shift;
- my $repeat = shift;
- return unless defined ($element);
- if ($element eq 'arrow1')
- {
- $w->ScrlByUnits('hv',-1);
- }
- elsif ($element eq 'trough1')
- {
- $w->ScrlByPages('hv',-1);
- }
- elsif ($element eq 'trough2')
- {
- $w->ScrlByPages('hv', 1);
- }
- elsif ($element eq 'arrow2')
- {
- $w->ScrlByUnits('hv', 1);
- }
- else
- {
- return;
- }
-
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),['Select',$w,$element,'again']));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),['Select',$w,$element,'again']));
- }
-}
-
-# tkScrollStartDrag --
-# This procedure is called to initiate a drag of the slider. It just
-# remembers the starting position of the slider.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the start of the drag operation.
-
-sub StartDrag
-{my $w = shift;
- my $x = shift;
- my $y = shift;
- return unless (defined ($w->cget('-command')));
- $initMouse = $w->fraction($x,$y);
- @initValues = $w->get();
- if (@initValues == 2)
- {
- $initPos = $initValues[0];
- }
- else
- {
- $initPos = $initValues[2] / $initValues[0];
- }
-}
-
-# tkScrollDrag --
-# This procedure is called for each mouse motion even when the slider
-# is being dragged. It notifies the associated widget if we're not
-# jump scrolling, and it just updates the scrollbar if we are jump
-# scrolling.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The current mouse position.
-
-sub Drag
-{my $w = shift;
- my $e = $w->XEvent;
- return unless (defined $initMouse);
- my $f = $w->fraction($e->x,$e->y);
- my $delta = $f - $initMouse;
- if ($w->cget('-jump'))
- {
- if (@initValues == 2)
- {
- $w->set($initValues[0]+$delta,$initValues[1]+$delta);
- }
- else
- {
- $delta = int($delta * $initValues[0]);
- $initValues[2] += $delta;
- $initValues[3] += $delta;
- $w->set(@initValues);
- }
- }
- else
- {
- $w->ScrlToPos($initPos+$delta);
- }
-}
-
-# tkScrollEndDrag --
-# This procedure is called to end an interactive drag of the slider.
-# It scrolls the window if we're in jump mode, otherwise it does nothing.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the end of the drag operation.
-
-sub EndDrag
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return unless defined($initMouse);
- if ($w->cget('-jump'))
- {
- $w->ScrlToPos($initPos + $w->fraction($x,$y) - $initMouse);
- }
- undef $initMouse;
-}
-
-# tkScrlByUnits --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of units. It notifies the associated widget
-# in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many units to scroll: typically 1 or -1.
-
-sub ScrlByUnits
-{my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'units');
- }
- else
- {
- $cmd->Call($info[2]+$amount);
- }
-}
-
-# tkScrlByPages --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of screenfuls. It notifies the associated
-# widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many screens to scroll: typically 1 or -1.
-
-sub ScrlByPages
-{
- my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'pages');
- }
- else
- {
- $cmd->Call($info[2]+$amount*($info[1]-1));
- }
-}
-
-# tkScrlToPos --
-# This procedure tells the scrollbar's associated widget to scroll to
-# a particular location, given by a fraction between 0 and 1. It notifies
-# the associated widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# pos - A fraction between 0 and 1 indicating a desired position
-# in the document.
-
-sub ScrlToPos
-{
- my $w = shift;
- my $pos = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('moveto',$pos);
- }
- else
- {
- $cmd->Call(int($info[0]*$pos));
- }
-}
-
-# tkScrlTopBottom
-# Scroll to the top or bottom of the document, depending on the mouse
-# position.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates within the widget.
-
-sub ScrlTopBottom
-{
- my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- return unless ($element);
- if ($element =~ /1$/)
- {
- $w->ScrlToPos(0);
- }
- elsif ($element =~ /2$/)
- {
- $w->ScrlToPos(1);
- }
-}
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Submethods.pm b/Master/xemtex/perl/site/lib/Tk/Submethods.pm
deleted file mode 100644
index 3c3abcea379..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Submethods.pm
+++ /dev/null
@@ -1,46 +0,0 @@
-package Tk::Submethods;
-
-use vars qw($VERSION);
-$VERSION = '3.014'; # $Id: //depot/Tk8/Tk/Submethods.pm#14 $
-
-sub import
-{
- my $class = shift;
- no strict 'refs';
- my $package = caller(0);
- while (@_)
- {
- my $fn = shift;
- my $sm = shift;
- foreach my $sub (@{$sm})
- {
- my ($suffix) = $sub =~ /(\w+)$/;
- my $pfn = $package.'::'.$fn;
- *{$pfn."\u$suffix"} = sub { shift->$pfn($sub,@_) };
- }
- }
-}
-
-sub Direct
-{
- my $class = shift;
- no strict 'refs';
- my $package = caller(0);
- while (@_)
- {
- my $fn = shift;
- my $sm = shift;
- my $sub;
- foreach $sub (@{$sm})
- {
- # eval "sub ${package}::${sub} { shift->$fn('$sub',\@_) }";
- *{$package.'::'.$sub} = sub { shift->$fn($sub,@_) };
- }
- }
-}
-
-1;
-
-__END__
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/Tk/Text.pm b/Master/xemtex/perl/site/lib/Tk/Text.pm
deleted file mode 100644
index c4b4f162f77..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Text.pm
+++ /dev/null
@@ -1,1600 +0,0 @@
-# text.tcl --
-#
-# This file defines the default bindings for Tk text widgets.
-#
-# @(#) text.tcl 1.18 94/12/17 16:05:26
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# perl/Tk version:
-# Copyright (c) 1995-1999 Nick Ing-Simmons
-# Copyright (c) 1999 Greg London
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-package Tk::Text;
-use AutoLoader;
-use Carp;
-use strict;
-
-use Text::Tabs;
-
-use vars qw($VERSION);
-$VERSION = '3.044'; # $Id: //depot/Tk8/Text/Text.pm#44 $
-
-use Tk qw(Ev $XS_VERSION);
-use base qw(Tk::Clipboard Tk::Widget);
-
-Construct Tk::Widget 'Text';
-
-bootstrap Tk::Text;
-
-sub Tk_cmd { \&Tk::text }
-
-sub Tk::Widget::ScrlText { shift->Scrolled('Text' => @_) }
-
-Tk::Methods('bbox','compare','debug','delete','dlineinfo','dump',
- 'get','image','index','insert','mark','scan','search',
- 'see','tag','window','xview','yview');
-
-use Tk::Submethods ( 'mark' => [qw(gravity names next previous set unset)],
- 'scan' => [qw(mark dragto)],
- 'tag' => [qw(add bind cget configure delete lower
- names nextrange prevrange raise ranges remove)],
- 'window' => [qw(cget configure create names)],
- 'image' => [qw(cget configure create names)],
- 'xview' => [qw(moveto scroll)],
- 'yview' => [qw(moveto scroll)],
- );
-
-sub Tag;
-sub Tags;
-
-sub bindRdOnly
-{
-
- my ($class,$mw) = @_;
-
- # Standard Motif bindings:
- $mw->bind($class,'<Meta-B1-Motion>','NoOp');
- $mw->bind($class,'<Meta-1>','NoOp');
- $mw->bind($class,'<Alt-KeyPress>','NoOp');
- $mw->bind($class,'<Escape>','unselectAll');
-
- $mw->bind($class,'<1>',['Button1',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Motion>','B1_Motion' ) ;
- $mw->bind($class,'<B1-Leave>','B1_Leave' ) ;
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<ButtonRelease-1>','CancelRepeat');
- $mw->bind($class,'<Control-1>',['markSet','insert',Ev('@')]);
-
- $mw->bind($class,'<Double-1>','selectWord' ) ;
- $mw->bind($class,'<Triple-1>','selectLine' ) ;
- $mw->bind($class,'<Shift-1>','adjustSelect' ) ;
- $mw->bind($class,'<Double-Shift-1>',['SelectTo',Ev('@'),'word']);
- $mw->bind($class,'<Triple-Shift-1>',['SelectTo',Ev('@'),'line']);
-
- $mw->bind($class,'<Left>',['SetCursor',Ev('index','insert-1c')]);
- $mw->bind($class,'<Shift-Left>',['KeySelect',Ev('index','insert-1c')]);
- $mw->bind($class,'<Control-Left>',['SetCursor',Ev('index','insert-1c wordstart')]);
- $mw->bind($class,'<Shift-Control-Left>',['KeySelect',Ev('index','insert-1c wordstart')]);
-
- $mw->bind($class,'<Right>',['SetCursor',Ev('index','insert+1c')]);
- $mw->bind($class,'<Shift-Right>',['KeySelect',Ev('index','insert+1c')]);
- $mw->bind($class,'<Control-Right>',['SetCursor',Ev('index','insert+1c wordend')]);
- $mw->bind($class,'<Shift-Control-Right>',['KeySelect',Ev('index','insert wordend')]);
-
- $mw->bind($class,'<Up>',['SetCursor',Ev('UpDownLine',-1)]);
- $mw->bind($class,'<Shift-Up>',['KeySelect',Ev('UpDownLine',-1)]);
- $mw->bind($class,'<Control-Up>',['SetCursor',Ev('PrevPara','insert')]);
- $mw->bind($class,'<Shift-Control-Up>',['KeySelect',Ev('PrevPara','insert')]);
-
- $mw->bind($class,'<Down>',['SetCursor',Ev('UpDownLine',1)]);
- $mw->bind($class,'<Shift-Down>',['KeySelect',Ev('UpDownLine',1)]);
- $mw->bind($class,'<Control-Down>',['SetCursor',Ev('NextPara','insert')]);
- $mw->bind($class,'<Shift-Control-Down>',['KeySelect',Ev('NextPara','insert')]);
-
- $mw->bind($class,'<Home>',['SetCursor','insert linestart']);
- $mw->bind($class,'<Shift-Home>',['KeySelect','insert linestart']);
- $mw->bind($class,'<Control-Home>',['SetCursor','1.0']);
- $mw->bind($class,'<Control-Shift-Home>',['KeySelect','1.0']);
-
- $mw->bind($class,'<End>',['SetCursor','insert lineend']);
- $mw->bind($class,'<Shift-End>',['KeySelect','insert lineend']);
- $mw->bind($class,'<Control-End>',['SetCursor','end-1char']);
- $mw->bind($class,'<Control-Shift-End>',['KeySelect','end-1char']);
-
- $mw->bind($class,'<Prior>',['SetCursor',Ev('ScrollPages',-1)]);
- $mw->bind($class,'<Shift-Prior>',['KeySelect',Ev('ScrollPages',-1)]);
- $mw->bind($class,'<Control-Prior>',['xview','scroll',-1,'page']);
-
- $mw->bind($class,'<Next>',['SetCursor',Ev('ScrollPages',1)]);
- $mw->bind($class,'<Shift-Next>',['KeySelect',Ev('ScrollPages',1)]);
- $mw->bind($class,'<Control-Next>',['xview','scroll',1,'page']);
-
- $mw->bind($class,'<Shift-Tab>', 'NoOp'); # Needed only to keep <Tab> binding from triggering; does not have to actually do anything.
- $mw->bind($class,'<Control-Tab>','focusNext');
- $mw->bind($class,'<Control-Shift-Tab>','focusPrev');
-
- $mw->bind($class,'<Control-space>',['markSet','anchor','insert']);
- $mw->bind($class,'<Select>',['markSet','anchor','insert']);
- $mw->bind($class,'<Control-Shift-space>',['SelectTo','insert','char']);
- $mw->bind($class,'<Shift-Select>',['SelectTo','insert','char']);
- $mw->bind($class,'<Control-slash>','selectAll');
- $mw->bind($class,'<Control-backslash>','unselectAll');
-
- if (!$Tk::strictMotif)
- {
- $mw->bind($class,'<Control-a>', ['SetCursor','insert linestart']);
- $mw->bind($class,'<Control-b>', ['SetCursor','insert-1c']);
- $mw->bind($class,'<Control-e>', ['SetCursor','insert lineend']);
- $mw->bind($class,'<Control-f>', ['SetCursor','insert+1c']);
- $mw->bind($class,'<Meta-b>', ['SetCursor','insert-1c wordstart']);
- $mw->bind($class,'<Meta-f>', ['SetCursor','insert wordend']);
- $mw->bind($class,'<Meta-less>', ['SetCursor','1.0']);
- $mw->bind($class,'<Meta-greater>', ['SetCursor','end-1c']);
-
- $mw->bind($class,'<Control-n>', ['SetCursor',Ev('UpDownLine',1)]);
- $mw->bind($class,'<Control-p>', ['SetCursor',Ev('UpDownLine',-1)]);
-
- $mw->bind($class,'<2>',['Button2',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['Motion2',Ev('x'),Ev('y')]);
- }
- $mw->bind($class,'<Destroy>','Destroy');
- $mw->bind($class, '<3>', ['PostPopupMenu', Ev('X'), Ev('Y')] );
-
- return $class;
-}
-
-sub selectAll
-{
- my ($w) = @_;
- $w->tagAdd('sel','1.0','end');
-}
-
-sub unselectAll
-{
- my ($w) = @_;
- $w->tagRemove('sel','1.0','end');
-}
-
-sub adjustSelect
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $w->ResetAnchor($Ev->xy);
- $w->SelectTo($Ev->xy,'char')
-}
-
-sub selectLine
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $w->SelectTo($Ev->xy,'line');
- Tk::catch { $w->markSet('insert','sel.first') };
-}
-
-sub selectWord
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $w->SelectTo($Ev->xy,'word');
- Tk::catch { $w->markSet('insert','sel.first') }
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $class->SUPER::ClassInit($mw);
-
- $class->bindRdOnly($mw);
-
- $mw->bind($class,'<Tab>', 'insertTab');
- $mw->bind($class,'<Control-i>', ['Insert',"\t"]);
- $mw->bind($class,'<Return>', ['Insert',"\n"]);
- $mw->bind($class,'<Delete>','Delete');
- $mw->bind($class,'<BackSpace>','Backspace');
- $mw->bind($class,'<Insert>', \&ToggleInsertMode ) ;
- $mw->bind($class,'<KeyPress>',['InsertKeypress',Ev('A')]);
-
- $mw->bind($class,'<F1>', 'clipboardColumnCopy');
- $mw->bind($class,'<F2>', 'clipboardColumnCut');
- $mw->bind($class,'<F3>', 'clipboardColumnPaste');
-
- # Additional emacs-like bindings:
-
- if (!$Tk::strictMotif)
- {
- $mw->bind($class,'<Control-d>',['delete','insert']);
- $mw->bind($class,'<Control-k>','deleteToEndofLine') ;
- $mw->bind($class,'<Control-o>','openLine');
- $mw->bind($class,'<Control-t>','Transpose');
- $mw->bind($class,'<Meta-d>',['delete','insert','insert wordend']);
- $mw->bind($class,'<Meta-BackSpace>',['delete','insert-1c wordstart','insert']);
-
- # A few additional bindings of my own.
- $mw->bind($class,'<Control-h>','deleteBefore');
- $mw->bind($class,'<ButtonRelease-2>','ButtonRelease2');
- }
- $Tk::prevPos = undef;
- return $class;
-}
-
-sub insertTab
-{
- my ($w) = @_;
- $w->Insert("\t");
- $w->focus;
- $w->break
-}
-
-sub deleteToEndofLine
-{
- my ($w) = @_;
- if ($w->compare('insert','==','insert lineend'))
- {
- $w->delete('insert')
- }
- else
- {
- $w->delete('insert','insert lineend')
- }
-}
-
-sub openLine
-{
- my ($w) = @_;
- $w->insert('insert',"\n");
- $w->markSet('insert','insert-1c')
-}
-
-sub Button2
-{
- my ($w,$x,$y) = @_;
- $w->scan('mark',$x,$y);
- $Tk::x = $x;
- $Tk::y = $y;
- $Tk::mouseMoved = 0;
-}
-
-sub Motion2
-{
- my ($w,$x,$y) = @_;
- $Tk::mouseMoved = 1 if ($x != $Tk::x || $y != $Tk::y);
- $w->scan('dragto',$x,$y) if ($Tk::mouseMoved);
-}
-
-sub ButtonRelease2
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- if (!$Tk::mouseMoved)
- {
- Tk::catch { $w->insert($Ev->xy,$w->SelectionGet) }
- }
-}
-
-sub InsertSelection
-{
- my ($w) = @_;
- Tk::catch { $w->Insert($w->SelectionGet) }
-}
-
-sub Backspace
-{
- my ($w) = @_;
- my $sel = Tk::catch { $w->tag('nextrange','sel','1.0','end') };
- if (defined $sel)
- {
- $w->delete('sel.first','sel.last');
- return;
- }
- $w->deleteBefore;
-}
-
-sub deleteBefore
-{
- my ($w) = @_;
- if ($w->compare('insert','!=','1.0'))
- {
- $w->delete('insert-1c');
- $w->see('insert')
- }
-}
-
-sub Delete
-{
- my ($w) = @_;
- my $sel = Tk::catch { $w->tag('nextrange','sel','1.0','end') };
- if (defined $sel)
- {
- $w->delete('sel.first','sel.last')
- }
- else
- {
- $w->delete('insert');
- $w->see('insert')
- }
-}
-
-# Button1 --
-# This procedure is invoked to handle button-1 presses in text
-# widgets. It moves the insertion cursor, sets the selection anchor,
-# and claims the input focus.
-#
-# Arguments:
-# w - The text window in which the button was pressed.
-# x - The x-coordinate of the button press.
-# y - The x-coordinate of the button press.
-sub Button1
-{
- my ($w,$x,$y) = @_;
- $Tk::selectMode = 'char';
- $Tk::mouseMoved = 0;
- $w->SetCursor('@'.$x.','.$y);
- $w->markSet('anchor','insert');
- $w->focus() if ($w->cget('-state') eq 'normal');
-}
-
-sub B1_Motion
-{
- my ($w) = @_;
- return unless defined $Tk::mouseMoved;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $w->SelectTo($Ev->xy)
-}
-
-sub B1_Leave
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $w->AutoScan;
-}
-
-# SelectTo --
-# This procedure is invoked to extend the selection, typically when
-# dragging it with the mouse. Depending on the selection mode (character,
-# word, line) it selects in different-sized units. This procedure
-# ignores mouse motions initially until the mouse has moved from
-# one character to another or until there have been multiple clicks.
-#
-# Arguments:
-# w - The text window in which the button was pressed.
-# index - Index of character at which the mouse button was pressed.
-sub SelectTo
-{
- my ($w, $index, $mode)= @_;
- $Tk::selectMode = $mode if defined ($mode);
- my $cur = $w->index($index);
- my $anchor = Tk::catch { $w->index('anchor') };
- if (!defined $anchor)
- {
- $w->markSet('anchor',$anchor = $cur);
- $Tk::mouseMoved = 0;
- }
- elsif ($w->compare($cur,'!=',$anchor))
- {
- $Tk::mouseMoved = 1;
- }
- $Tk::selectMode = 'char' unless (defined $Tk::selectMode);
- $mode = $Tk::selectMode;
- my ($first,$last);
- if ($mode eq 'char')
- {
- if ($w->compare($cur,'<','anchor'))
- {
- $first = $cur;
- $last = 'anchor';
- }
- else
- {
- $first = 'anchor';
- $last = $cur
- }
- }
- elsif ($mode eq 'word')
- {
- if ($w->compare($cur,'<','anchor'))
- {
- $first = $w->index("$cur wordstart");
- $last = $w->index('anchor - 1c wordend')
- }
- else
- {
- $first = $w->index('anchor wordstart');
- $last = $w->index("$cur wordend")
- }
- }
- elsif ($mode eq 'line')
- {
- if ($w->compare($cur,'<','anchor'))
- {
- $first = $w->index("$cur linestart");
- $last = $w->index('anchor - 1c lineend + 1c')
- }
- else
- {
- $first = $w->index('anchor linestart');
- $last = $w->index("$cur lineend + 1c")
- }
- }
- if ($Tk::mouseMoved || $Tk::selectMode ne 'char')
- {
- $w->tagRemove('sel','1.0',$first);
- $w->tagAdd('sel',$first,$last);
- $w->tagRemove('sel',$last,'end');
- $w->idletasks;
- }
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves a text window
-# with button 1 down. It scrolls the window up, down, left, or right,
-# depending on where the mouse is (this information was saved in
-# tkPriv(x) and tkPriv(y)), and reschedules itself as an 'after'
-# command so that the window continues to scroll until the mouse
-# moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The text window.
-sub AutoScan
-{
- my ($w) = @_;
- if ($Tk::y >= $w->height)
- {
- $w->yview('scroll',2,'units')
- }
- elsif ($Tk::y < 0)
- {
- $w->yview('scroll',-2,'units')
- }
- elsif ($Tk::x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($Tk::x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->SelectTo('@' . $Tk::x . ','. $Tk::y);
- $w->RepeatId($w->after(50,['AutoScan',$w]));
-}
-# SetCursor
-# Move the insertion cursor to a given position in a text. Also
-# clears the selection, if there is one in the text, and makes sure
-# that the insertion cursor is visible.
-#
-# Arguments:
-# w - The text window.
-# pos - The desired new position for the cursor in the window.
-sub SetCursor
-{
- my ($w,$pos) = @_;
- $pos = 'end - 1 chars' if $w->compare($pos,'==','end');
- $w->markSet('insert',$pos);
- $w->unselectAll;
- $w->see('insert')
-}
-# KeySelect
-# This procedure is invoked when stroking out selections using the
-# keyboard. It moves the cursor to a new position, then extends
-# the selection to that position.
-#
-# Arguments:
-# w - The text window.
-# new - A new position for the insertion cursor (the cursor has not
-# actually been moved to this position yet).
-sub KeySelect
-{
- my ($w,$new) = @_;
- my ($first,$last);
- if (!defined $w->tag('ranges','sel'))
- {
- # No selection yet
- $w->markSet('anchor','insert');
- if ($w->compare($new,'<','insert'))
- {
- $w->tagAdd('sel',$new,'insert')
- }
- else
- {
- $w->tagAdd('sel','insert',$new)
- }
- }
- else
- {
- # Selection exists
- if ($w->compare($new,'<','anchor'))
- {
- $first = $new;
- $last = 'anchor'
- }
- else
- {
- $first = 'anchor';
- $last = $new
- }
- $w->tagRemove('sel','1.0',$first);
- $w->tagAdd('sel',$first,$last);
- $w->tagRemove('sel',$last,'end')
- }
- $w->markSet('insert',$new);
- $w->see('insert');
- $w->idletasks;
-}
-# ResetAnchor --
-# Set the selection anchor to whichever end is farthest from the
-# index argument. One special trick: if the selection has two or
-# fewer characters, just leave the anchor where it is. In this
-# case it does not matter which point gets chosen for the anchor,
-# and for the things like Shift-Left and Shift-Right this produces
-# better behavior when the cursor moves back and forth across the
-# anchor.
-#
-# Arguments:
-# w - The text widget.
-# index - Position at which mouse button was pressed, which determines
-# which end of selection should be used as anchor point.
-sub ResetAnchor
-{
- my ($w,$index) = @_;
- if (!defined $w->tag('ranges','sel'))
- {
- $w->markSet('anchor',$index);
- return;
- }
- my $a = $w->index($index);
- my $b = $w->index('sel.first');
- my $c = $w->index('sel.last');
- if ($w->compare($a,'<',$b))
- {
- $w->markSet('anchor','sel.last');
- return;
- }
- if ($w->compare($a,'>',$c))
- {
- $w->markSet('anchor','sel.first');
- return;
- }
- my ($lineA,$chA) = split(/\./,$a);
- my ($lineB,$chB) = split(/\./,$b);
- my ($lineC,$chC) = split(/\./,$c);
- if ($lineB < $lineC+2)
- {
- my $total = length($w->get($b,$c));
- if ($total <= 2)
- {
- return;
- }
- if (length($w->get($b,$a)) < $total/2)
- {
- $w->markSet('anchor','sel.last')
- }
- else
- {
- $w->markSet('anchor','sel.first')
- }
- return;
- }
- if ($lineA-$lineB < $lineC-$lineA)
- {
- $w->markSet('anchor','sel.last')
- }
- else
- {
- $w->markSet('anchor','sel.first')
- }
-}
-
-########################################################################
-sub markExists
-{
- my ($w, $markname)=@_;
- my $mark_exists=0;
- my @markNames_list = $w->markNames;
- foreach my $mark (@markNames_list)
- { if ($markname eq $mark) {$mark_exists=1;last;} }
- return $mark_exists;
-}
-
-########################################################################
-sub OverstrikeMode
-{
- my ($w,$mode) = @_;
-
- $w->{'OVERSTRIKE_MODE'} =0 unless exists($w->{'OVERSTRIKE_MODE'});
-
- $w->{'OVERSTRIKE_MODE'}=$mode if (@_ > 1);
-
- return $w->{'OVERSTRIKE_MODE'};
-}
-
-########################################################################
-# pressed the <Insert> key, just above 'Del' key.
-# this toggles between insert mode and overstrike mode.
-sub ToggleInsertMode
-{
- my ($w)=@_;
- $w->OverstrikeMode(!$w->OverstrikeMode);
-}
-
-########################################################################
-sub InsertKeypress
-{
- my ($w,$char)=@_;
- if ($w->OverstrikeMode)
- {
- my $current=$w->get('insert');
- $w->delete('insert') unless($current eq "\n");
- }
- $w->Insert($char);
-}
-
-########################################################################
-sub GotoLineNumber
-{
- my ($w,$line_number) = @_;
- $line_number=~ s/^\s+|\s+$//g;
- return if $line_number =~ m/\D/;
- my ($last_line,$junk) = split(/\./, $w->index('end'));
- if ($line_number > $last_line) {$line_number = $last_line; }
- $w->{'LAST_GOTO_LINE'} = $line_number;
- $w->markSet('insert', $line_number.'.0');
- $w->see('insert');
-}
-
-########################################################################
-sub GotoLineNumberPopUp
-{
- my ($w)=@_;
- my $popup = $w->{'GOTO_LINE_NUMBER_POPUP'};
-
- unless (defined($w->{'LAST_GOTO_LINE'}))
- {
- my ($line,$col) = split(/\./, $w->index('insert'));
- $w->{'LAST_GOTO_LINE'} = $line;
- }
-
- ## if anything is selected when bring up the pop-up, put it in entry window.
- my $selected;
- eval { $selected = $w->SelectionGet(-selection => "PRIMARY"); };
- unless ($@)
- {
- if (defined($selected) and length($selected))
- {
- unless ($selected =~ /\D/)
- {
- $w->{'LAST_GOTO_LINE'} = $selected;
- }
- }
- }
- unless (defined($popup))
- {
- require Tk::DialogBox;
- $popup = $w->DialogBox(-buttons => [qw[Ok Cancel]],-title => "Goto Line Number", -popover => $w,
- -command => sub { $w->GotoLineNumber($w->{'LAST_GOTO_LINE'}) if $_[0] eq 'Ok'});
- $w->{'GOTO_LINE_NUMBER_POPUP'}=$popup;
- $popup->resizable('no','no');
- my $frame = $popup->Frame->pack(-fill => 'x');
- $frame->Label(text=>'Enter line number: ')->pack(-side => 'left');
- my $entry = $frame->Entry(-background=>'white',width=>25,
- -textvariable => \$w->{'LAST_GOTO_LINE'})->pack(-side =>'left',-fill => 'x');
- $popup->Advertise(entry => $entry);
- }
- $popup->Popup;
- $popup->Subwidget('entry')->focus;
- $popup->Wait;
-}
-
-########################################################################
-
-sub getSelected
-{
- shift->GetTextTaggedWith('sel');
-}
-
-sub deleteSelected
-{
- shift->DeleteTextTaggedWith('sel');
-}
-
-sub GetTextTaggedWith
-{
- my ($w,$tag) = @_;
-
- my @ranges = $w->tagRanges($tag);
- my $range_total = @ranges;
- my $return_text='';
-
- # if nothing selected, then ignore
- if ($range_total == 0) {return $return_text;}
-
- # for every range-pair, get selected text
- while(@ranges)
- {
- my $first = shift(@ranges);
- my $last = shift(@ranges);
- my $text = $w->get($first , $last);
- if(defined($text))
- {$return_text = $return_text . $text;}
- # if there is more tagged text, separate with an end of line character
- if(@ranges)
- {$return_text = $return_text . "\n";}
- }
- return $return_text;
-}
-
-########################################################################
-sub DeleteTextTaggedWith
-{
- my ($w,$tag) = @_;
- my @ranges = $w->tagRanges($tag);
- my $range_total = @ranges;
-
- # if nothing tagged with that tag, then ignore
- if ($range_total == 0) {return;}
-
- # insert marks where selections are located
- # marks will move with text even as text is inserted and deleted
- # in a previous selection.
- for (my $i=0; $i<$range_total; $i++)
- { $w->markSet('mark_tag_'.$i => $ranges[$i]); }
-
- # for every selected mark pair, insert new text and delete old text
- for (my $i=0; $i<$range_total; $i=$i+2)
- {
- my $first = $w->index('mark_tag_'.$i);
- my $last = $w->index('mark_tag_'.($i+1));
-
- my $text = $w->delete($first , $last);
- }
-
- # delete the marks
- for (my $i=0; $i<$range_total; $i++)
- { $w->markUnset('mark_tag_'.$i); }
-}
-
-
-########################################################################
-sub FindAll
-{
- my ($w,$mode, $case, $pattern ) = @_;
- ### 'sel' tags accumulate, need to remove any previous existing
- $w->unselectAll;
-
- my $match_length=0;
- my $start_index;
- my $end_index = '1.0';
-
- while(defined($end_index))
- {
- if ($case eq '-nocase')
- {
- $start_index = $w->search(
- $mode,
- $case,
- -count => \$match_length,
- "--",
- $pattern ,
- $end_index,
- 'end');
- }
- else
- {
- $start_index = $w->search(
- $mode,
- -count => \$match_length,
- "--",
- $pattern ,
- $end_index,
- 'end');
- }
-
- unless(defined($start_index) && $start_index) {last;}
-
- my ($line,$col) = split(/\./, $start_index);
- $col = $col + $match_length;
- $end_index = $line.'.'.$col;
- $w->tagAdd('sel', $start_index, $end_index);
- }
-}
-
-########################################################################
-# get current selected text and search for the next occurrence
-sub FindSelectionNext
-{
- my ($w) = @_;
- my $selected;
- eval {$selected = $w->SelectionGet(-selection => "PRIMARY"); };
- return if($@);
- return unless (defined($selected) and length($selected));
-
- $w->FindNext('-forward', '-exact', '-case', $selected);
-}
-
-########################################################################
-# get current selected text and search for the previous occurrence
-sub FindSelectionPrevious
-{
- my ($w) = @_;
- my $selected;
- eval {$selected = $w->SelectionGet(-selection => "PRIMARY"); };
- return if($@);
- return unless (defined($selected) and length($selected));
-
- $w->FindNext('-backward', '-exact', '-case', $selected);
-}
-
-
-
-########################################################################
-sub FindNext
-{
- my ($w,$direction, $mode, $case, $pattern ) = @_;
-
- ## if searching forward, start search at end of selected block
- ## if backward, start search from start of selected block.
- ## dont want search to find currently selected text.
- ## tag 'sel' may not be defined, use eval loop to trap error
- eval {
- if ($direction eq '-forward')
- {
- $w->markSet('insert', 'sel.last');
- $w->markSet('current', 'sel.last');
- }
- else
- {
- $w->markSet('insert', 'sel.first');
- $w->markSet('current', 'sel.first');
- }
- };
-
- my $saved_index=$w->index('insert');
-
- # remove any previous existing tags
- $w->unselectAll;
-
- my $match_length=0;
- my $start_index;
-
- if ($case eq '-nocase')
- {
- $start_index = $w->search(
- $direction,
- $mode,
- $case,
- -count => \$match_length,
- "--",
- $pattern ,
- 'insert');
- }
- else
- {
- $start_index = $w->search(
- $direction,
- $mode,
- -count => \$match_length,
- "--",
- $pattern ,
- 'insert');
- }
-
- unless(defined($start_index)) { return 0; }
- if(length($start_index) == 0) { return 0; }
-
- my ($line,$col) = split(/\./, $start_index);
- $col = $col + $match_length;
- my $end_index = $line.'.'.$col;
- $w->tagAdd('sel', $start_index, $end_index);
-
- $w->see($start_index);
-
- if ($direction eq '-forward')
- {
- $w->markSet('insert', $end_index);
- $w->markSet('current', $end_index);
- }
- else
- {
- $w->markSet('insert', $start_index);
- $w->markSet('current', $start_index);
- }
-
- my $compared_index = $w->index('insert');
-
- my $ret_val;
- if ($compared_index eq $saved_index)
- {$ret_val=0;}
- else
- {$ret_val=1;}
- return $ret_val;
-}
-
-########################################################################
-sub FindAndReplaceAll
-{
- my ($w,$mode, $case, $find, $replace ) = @_;
- $w->markSet('insert', '1.0');
- $w->unselectAll;
- while($w->FindNext('-forward', $mode, $case, $find))
- {
- $w->ReplaceSelectionsWith($replace);
- }
-}
-
-########################################################################
-sub ReplaceSelectionsWith
-{
- my ($w,$new_text ) = @_;
-
- my @ranges = $w->tagRanges('sel');
- my $range_total = @ranges;
-
- # if nothing selected, then ignore
- if ($range_total == 0) {return};
-
- # insert marks where selections are located
- # marks will move with text even as text is inserted and deleted
- # in a previous selection.
- for (my $i=0; $i<$range_total; $i++)
- {$w->markSet('mark_sel_'.$i => $ranges[$i]); }
-
- # for every selected mark pair, insert new text and delete old text
- my ($first, $last);
- for (my $i=0; $i<$range_total; $i=$i+2)
- {
- $first = $w->index('mark_sel_'.$i);
- $last = $w->index('mark_sel_'.($i+1));
-
- ##########################################################################
- # eventually, want to be able to get selected text,
- # support regular expression matching, determine replace_text
- # $replace_text = $selected_text=~m/$new_text/ (or whatever would work)
- # will have to pass in mode and case flags.
- # this would allow a regular expression search and replace to be performed
- # example, look for "line (\d+):" and replace with "$1 >" or similar
- ##########################################################################
-
- $w->insert($last, $new_text);
- $w->delete($first, $last);
-
- }
- ############################################################
- # set the insert cursor to the end of the last insertion mark
- $w->markSet('insert',$w->index('mark_sel_'.($range_total-1)));
-
- # delete the marks
- for (my $i=0; $i<$range_total; $i++)
- { $w->markUnset('mark_sel_'.$i); }
-}
-########################################################################
-sub FindAndReplacePopUp
-{
- my ($w)=@_;
- $w->findandreplacepopup(0);
-}
-
-########################################################################
-sub FindPopUp
-{
- my ($w)=@_;
- $w->findandreplacepopup(1);
-}
-
-########################################################################
-
-sub findandreplacepopup
-{
- my ($w,$find_only)=@_;
-
- my $pop = $w->Toplevel;
- if ($find_only)
- { $pop->title("Find"); }
- else
- { $pop->title("Find and/or Replace"); }
- my $frame = $pop->Frame->pack(-anchor=>'nw');
-
- $frame->Label(text=>"Direction:")
- ->grid(-row=> 1, -column=>1, -padx=> 20, -sticky => 'nw');
- my $direction = '-forward';
- $frame->Radiobutton(
- variable => \$direction,
- text => '-forward',value => '-forward' )
- ->grid(-row=> 2, -column=>1, -padx=> 20, -sticky => 'nw');
- $frame->Radiobutton(
- variable => \$direction,
- text => '-backward',value => '-backward' )
- ->grid(-row=> 3, -column=>1, -padx=> 20, -sticky => 'nw');
-
- $frame->Label(text=>"Mode:")
- ->grid(-row=> 1, -column=>2, -padx=> 20, -sticky => 'nw');
- my $mode = '-exact';
- $frame->Radiobutton(
- variable => \$mode, text => '-exact',value => '-exact' )
- ->grid(-row=> 2, -column=>2, -padx=> 20, -sticky => 'nw');
- $frame->Radiobutton(
- variable => \$mode, text => '-regexp',value => '-regexp' )
- ->grid(-row=> 3, -column=>2, -padx=> 20, -sticky => 'nw');
-
- $frame->Label(text=>"Case:")
- ->grid(-row=> 1, -column=>3, -padx=> 20, -sticky => 'nw');
- my $case = '-case';
- $frame->Radiobutton(
- variable => \$case, text => '-case',value => '-case' )
- ->grid(-row=> 2, -column=>3, -padx=> 20, -sticky => 'nw');
- $frame->Radiobutton(
- variable => \$case, text => '-nocase',value => '-nocase' )
- ->grid(-row=> 3, -column=>3, -padx=> 20, -sticky => 'nw');
-
- ######################################################
- my $find_entry = $pop->Entry(width=>25);
-
- my $button_find = $pop->Button(text=>'Find',
- command => sub {$w->FindNext ($direction,$mode,$case,$find_entry->get()),} )
- -> pack(-anchor=>'nw');
-
- $find_entry -> pack(-anchor=>'nw', '-expand' => 'yes' , -fill => 'x'); # autosizing
-
- ###### if any $w text is selected, put it in the find entry
- ###### could be more than one text block selected, get first selection
- my @ranges = $w->tagRanges('sel');
- if (@ranges)
- {
- my $first = shift(@ranges);
- my $last = shift(@ranges);
-
- # limit to one line
- my ($first_line, $first_col) = split(/\./,$first);
- my ($last_line, $last_col) = split(/\./,$last);
- unless($first_line == $last_line)
- {$last = $first. ' lineend';}
-
- $find_entry->insert('insert', $w->get($first , $last));
- }
- else
- {
- my $selected;
- eval {$selected=$w->SelectionGet(-selection => "PRIMARY"); };
- if($@) {}
- elsif (defined($selected))
- {$find_entry->insert('insert', $selected);}
- }
-
- my ($replace_entry,$button_replace,$button_replace_all);
- unless ($find_only)
- {
- ######################################################
- $replace_entry = $pop->Entry(width=>25);
- ######################################################
- $button_replace = $pop->Button(text=>'Replace',
- command => sub {$w->ReplaceSelectionsWith($replace_entry->get());} )
- -> pack(-anchor=>'nw');
-
- $replace_entry -> pack(-anchor=>'nw', '-expand' => 'yes' , -fill => 'x');
- }
-
- ######################################################
- $pop->Label(text=>" ")->pack();
- ######################################################
- unless ($find_only)
- {
- $button_replace_all = $pop->Button(text=>'Replace All',
- command => sub {$w->FindAndReplaceAll
- ($mode,$case,$find_entry->get(),$replace_entry->get());} )
- ->pack(-side => 'left');
- }
-
- my $button_find_all = $pop->Button(text=>'Find All',
- command => sub {$w->FindAll($mode,$case,$find_entry->get());} )
- ->pack(-side => 'left');
-
- my $button_cancel = $pop->Button(text=>'Cancel',
- command => sub {$pop->destroy()} )
- ->pack(-side => 'left');
-
- $pop->resizable('yes','no');
- return $pop;
-}
-
-# paste clipboard into current location
-sub clipboardPaste
-{
- my ($w) = @_;
- local $@;
- Tk::catch { $w->Insert($w->clipboardGet) };
-}
-
-########################################################################
-# Insert --
-# Insert a string into a text at the point of the insertion cursor.
-# If there is a selection in the text, and it covers the point of the
-# insertion cursor, then delete the selection before inserting.
-#
-# Arguments:
-# w - The text window in which to insert the string
-# string - The string to insert (usually just a single character)
-sub Insert
-{
- my ($w,$string) = @_;
- return unless (defined $string && $string ne '');
- #figure out if cursor is inside a selection
- my @ranges = $w->tagRanges('sel');
- if (@ranges)
- {
- while (@ranges)
- {
- my ($first,$last) = splice(@ranges,0,2);
- if ($w->compare($first,'<=','insert') && $w->compare($last,'>=','insert'))
- {
- $w->ReplaceSelectionsWith($string);
- return;
- }
- }
- }
- # paste it at the current cursor location
- $w->insert('insert',$string);
- $w->see('insert');
-}
-
-# UpDownLine --
-# Returns the index of the character one line above or below the
-# insertion cursor. There are two tricky things here. First,
-# we want to maintain the original column across repeated operations,
-# even though some lines that will get passed through do not have
-# enough characters to cover the original column. Second, do not
-# try to scroll past the beginning or end of the text.
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# n - The number of lines to move: -1 for up one line,
-# +1 for down one line.
-sub UpDownLine_old
-{
- my ($w,$n) = @_;
- my $i = $w->index('insert');
- my ($line,$char) = split(/\./,$i);
- if (!defined($Tk::prevPos) || $Tk::prevPos ne $i)
- {
- $Tk::char = $char
- }
- my $new = $w->index($line+$n . '.' . $Tk::char);
- if ($w->compare($new,'==','end') || $w->compare($new,'==','insert linestart'))
- {
- $new = $i
- }
- $Tk::prevPos = $new;
- return $new;
-}
-
-sub UpDownLine
-{
- my ($w,$n) = @_;
- my $i = $w->index('insert');
- my ($line,$char) = split(/\./,$i);
- my $string = $w->get($line.'.0', $i);
-
- $string = expand($string);
- $char=length($string);
- $line += $n;
-
- $string = $w->get($line.'.0', $line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $char);
-
- $string = unexpand($string);
- $char = length($string);
-
- my $new = $w->index($line . '.' . $char);
- if ($w->compare($new,'==','end') || $w->compare($new,'==','insert linestart'))
- {
- $new = $i
- }
- $Tk::prevPos = $new;
- $Tk::char = $char;
- return $new;
-}
-
-
-# PrevPara --
-# Returns the index of the beginning of the paragraph just before a given
-# position in the text (the beginning of a paragraph is the first non-blank
-# character after a blank line).
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# pos - Position at which to start search.
-sub PrevPara
-{
- my ($w,$pos) = @_;
- $pos = $w->index("$pos linestart");
- while (1)
- {
- if ($w->get("$pos - 1 line") eq "\n" && $w->get($pos) ne "\n" || $pos eq '1.0' )
- {
- my $string = $w->get($pos,"$pos lineend");
- if ($string =~ /^(\s)+/)
- {
- my $off = length($1);
- $pos = $w->index("$pos + $off chars")
- }
- if ($w->compare($pos,'!=','insert') || $pos eq '1.0')
- {
- return $pos;
- }
- }
- $pos = $w->index("$pos - 1 line")
- }
-}
-# NextPara --
-# Returns the index of the beginning of the paragraph just after a given
-# position in the text (the beginning of a paragraph is the first non-blank
-# character after a blank line).
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# start - Position at which to start search.
-sub NextPara
-{
- my ($w,$start) = @_;
- my $pos = $w->index("$start linestart + 1 line");
- while ($w->get($pos) ne "\n")
- {
- if ($w->compare($pos,'==','end'))
- {
- return $w->index('end - 1c');
- }
- $pos = $w->index("$pos + 1 line")
- }
- while ($w->get($pos) eq "\n" )
- {
- $pos = $w->index("$pos + 1 line");
- if ($w->compare($pos,'==','end'))
- {
- return $w->index('end - 1c');
- }
- }
- my $string = $w->get($pos,"$pos lineend");
- if ($string =~ /^(\s+)/)
- {
- my $off = length($1);
- return $w->index("$pos + $off chars");
- }
- return $pos;
-}
-# ScrollPages --
-# This is a utility procedure used in bindings for moving up and down
-# pages and possibly extending the selection along the way. It scrolls
-# the view in the widget by the number of pages, and it returns the
-# index of the character that is at the same position in the new view
-# as the insertion cursor used to be in the old view.
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# count - Number of pages forward to scroll; may be negative
-# to scroll backwards.
-sub ScrollPages
-{
- my ($w,$count) = @_;
- my @bbox = $w->bbox('insert');
- $w->yview('scroll',$count,'pages');
- if (!@bbox)
- {
- return $w->index('@' . int($w->height/2) . ',' . 0);
- }
- my $x = int($bbox[0]+$bbox[2]/2);
- my $y = int($bbox[1]+$bbox[3]/2);
- return $w->index('@' . $x . ',' . $y);
-}
-
-sub Contents
-{
- my $w = shift;
- if (@_)
- {
- $w->delete('1.0','end');
- $w->insert('end',shift) while (@_);
- }
- else
- {
- return $w->get('1.0','end');
- }
-}
-
-sub Destroy
-{
- my ($w) = @_;
- delete $w->{_Tags_};
-}
-
-sub Transpose
-{
- my ($w) = @_;
- my $pos = 'insert';
- $pos = $w->index("$pos + 1 char") if ($w->compare($pos,'!=',"$pos lineend"));
- return if ($w->compare("$pos - 1 char",'==','1.0'));
- my $new = $w->get("$pos - 1 char").$w->get("$pos - 2 char");
- $w->delete("$pos - 2 char",$pos);
- $w->insert('insert',$new);
- $w->see('insert');
-}
-
-sub Tag
-{
- my $w = shift;
- my $name = shift;
- Carp::confess('No args') unless (ref $w and defined $name);
- $w->{_Tags_} = {} unless (exists $w->{_Tags_});
- unless (exists $w->{_Tags_}{$name})
- {
- require Tk::Text::Tag;
- $w->{_Tags_}{$name} = 'Tk::Text::Tag'->new($w,$name);
- }
- $w->{_Tags_}{$name}->configure(@_) if (@_);
- return $w->{_Tags_}{$name};
-}
-
-sub Tags
-{
- my ($w,$name) = @_;
- my @result = ();
- foreach $name ($w->tagNames(@_))
- {
- push(@result,$w->Tag($name));
- }
- return @result;
-}
-
-sub TIEHANDLE
-{
- my ($class,$obj) = @_;
- return $obj;
-}
-
-sub PRINT
-{
- my $w = shift;
- # Find out whether 'end' is displayed at the moment
- # Retrieve the position of the bottom of the window as
- # a fraction of the entire contents of the Text widget
- my $yview = ($w->yview)[1];
-
- # If $yview is 1.0 this means that 'end' is visible in the window
- my $update = 0;
- $update = 1 if $yview == 1.0;
-
- # Loop over all input strings
- while (@_)
- {
- $w->insert('end',shift);
- }
- # Move the window to see the end of the text if required
- $w->see('end') if $update;
-}
-
-sub PRINTF
-{
- my $w = shift;
- $w->PRINT(sprintf(shift,@_));
-}
-
-sub WhatLineNumberPopUp
-{
- my ($w)=@_;
- my ($line,$col) = split(/\./,$w->index('insert'));
- $w->messageBox(-type => 'Ok', -title => "What Line Number",
- -message => "The cursor is on line $line (column is $col)");
-}
-
-sub MenuLabels
-{
- return qw[~File ~Edit ~Search ~View];
-}
-
-sub SearchMenuItems
-{
- my ($w) = @_;
- return [
- ['command'=>'~Find', -command => [$w => 'FindPopUp']],
- ['command'=>'Find ~Next', -command => [$w => 'FindSelectionNext']],
- ['command'=>'Find ~Previous', -command => [$w => 'FindSelectionPrevious']],
- ['command'=>'~Replace', -command => [$w => 'FindAndReplacePopUp']]
- ];
-}
-
-sub EditMenuItems
-{
- my ($w) = @_;
- my @items = ();
- foreach my $op ($w->clipEvents)
- {
- push(@items,['command' => "~$op", -command => [ $w => "clipboard$op"]]);
- }
- push(@items,
- '-',
- ['command'=>'Select All', -command => [$w => 'selectAll']],
- ['command'=>'Unselect All', -command => [$w => 'unselectAll']],
- );
- return \@items;
-}
-
-sub ViewMenuItems
-{
- my ($w) = @_;
- my $v;
- tie $v,'Tk::Configure',$w,'-wrap';
- return [
- ['command'=>'Goto ~Line...', -command => [$w => 'GotoLineNumberPopUp']],
- ['command'=>'~Which Line?', -command => [$w => 'WhatLineNumberPopUp']],
- ['cascade'=> 'Wrap', -tearoff => 0, -menuitems => [
- [radiobutton => 'Word', -variable => \$v, -value => 'word'],
- [radiobutton => 'Character', -variable => \$v, -value => 'char'],
- [radiobutton => 'None', -variable => \$v, -value => 'none'],
- ]],
- ];
-}
-
-########################################################################
-sub clipboardColumnCopy
-{
- my ($w) = @_;
- $w->Column_Copy_or_Cut(0);
-}
-
-sub clipboardColumnCut
-{
- my ($w) = @_;
- $w->Column_Copy_or_Cut(1);
-}
-
-########################################################################
-sub Column_Copy_or_Cut
-{
- my ($w, $cut) = @_;
- my @ranges = $w->tagRanges('sel');
- my $range_total = @ranges;
- # this only makes sense if there is one selected block
- unless ($range_total==2)
- {
- $w->bell;
- return;
- }
-
- my $selection_start_index = shift(@ranges);
- my $selection_end_index = shift(@ranges);
-
- my ($start_line, $start_column) = split(/\./, $selection_start_index);
- my ($end_line, $end_column) = split(/\./, $selection_end_index);
-
- # correct indices for tabs
- my $string;
- $string = $w->get($start_line.'.0', $start_line.'.0 lineend');
- $string = substr($string, 0, $start_column);
- $string = expand($string);
- my $tab_start_column = length($string);
-
- $string = $w->get($end_line.'.0', $end_line.'.0 lineend');
- $string = substr($string, 0, $end_column);
- $string = expand($string);
- my $tab_end_column = length($string);
-
- my $length = $tab_end_column - $tab_start_column;
-
- $selection_start_index = $start_line . '.' . $tab_start_column;
- $selection_end_index = $end_line . '.' . $tab_end_column;
-
- # clear the clipboard
- $w->clipboardClear;
- my ($clipstring, $startstring, $endstring);
- my $padded_string = ' 'x$tab_end_column;
- for(my $line = $start_line; $line <= $end_line; $line++)
- {
- $string = $w->get($line.'.0', $line.'.0 lineend');
- $string = expand($string) . $padded_string;
- $clipstring = substr($string, $tab_start_column, $length);
- #$clipstring = unexpand($clipstring);
- $w->clipboardAppend($clipstring."\n");
-
- if ($cut)
- {
- $startstring = substr($string, 0, $tab_start_column);
- $startstring = unexpand($startstring);
- $start_column = length($startstring);
-
- $endstring = substr($string, 0, $tab_end_column );
- $endstring = unexpand($endstring);
- $end_column = length($endstring);
-
- $w->delete($line.'.'.$start_column, $line.'.'.$end_column);
- }
- }
-}
-
-########################################################################
-
-sub clipboardColumnPaste
-{
- my ($w) = @_;
- my @ranges = $w->tagRanges('sel');
- my $range_total = @ranges;
- if ($range_total)
- {
- warn " there cannot be any selections during clipboardColumnPaste. \n";
- $w->bell;
- return;
- }
-
- my $clipboard_text;
- eval
- {
- $clipboard_text = $w->SelectionGet(-selection => "CLIPBOARD");
- };
-
- return unless (defined($clipboard_text));
- return unless (length($clipboard_text));
- my $string;
-
- my $current_index = $w->index('insert');
- my ($current_line, $current_column) = split(/\./,$current_index);
- $string = $w->get($current_line.'.0', $current_line.'.'.$current_column);
- $string = expand($string);
- $current_column = length($string);
-
- my @clipboard_lines = split(/\n/,$clipboard_text);
- my $length;
- my $end_index;
- my ($delete_start_column, $delete_end_column, $insert_column_index);
- foreach my $line (@clipboard_lines)
- {
- if ($w->OverstrikeMode)
- {
- #figure out start and end indexes to delete, compensating for tabs.
- $string = $w->get($current_line.'.0', $current_line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $current_column);
- $string = unexpand($string);
- $delete_start_column = length($string);
-
- $string = $w->get($current_line.'.0', $current_line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $current_column + length($line));
- chomp($string); # dont delete a "\n" on end of line.
- $string = unexpand($string);
- $delete_end_column = length($string);
-
-
-
- $w->delete(
- $current_line.'.'.$delete_start_column ,
- $current_line.'.'.$delete_end_column
- );
- }
-
- $string = $w->get($current_line.'.0', $current_line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $current_column);
- $string = unexpand($string);
- $insert_column_index = length($string);
-
- $w->insert($current_line.'.'.$insert_column_index, unexpand($line));
- $current_line++;
- }
-
-}
-
-# Backward compatibility
-sub GetMenu
-{
- carp((caller(0))[3]." is deprecated") if $^W;
- shift->menu
-}
-
-1;
-__END__
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Text/Tag.pm b/Master/xemtex/perl/site/lib/Tk/Text/Tag.pm
deleted file mode 100644
index 7cddf48fd25..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Text/Tag.pm
+++ /dev/null
@@ -1,46 +0,0 @@
-package Tk::Text::Tag;
-require Tk::Text;
-
-use overload '""' => \&name;
-
-
-use vars qw($VERSION);
-$VERSION = '3.007'; # $Id: //depot/Tk8/Text/Text/Tag.pm#7 $
-
-sub _apply
-{
- my $self = shift;
- my $meth = shift;
- $self->widget->tag($meth => $self->name,@_);
-}
-
-sub name
-{
- return shift->[0];
-}
-
-sub widget
-{
- return shift->[1];
-}
-
-BEGIN
-{
- my $meth;
- foreach $meth (qw(cget configure bind add))
- {
- *{$meth} = sub { shift->_apply($meth,@_) }
- }
-}
-
-sub new
-{
- my $class = shift;
- my $widget = shift;
- my $name = shift;
- my $obj = bless [$name,$widget],$class;
- $obj->configure(@_) if (@_);
- return $obj;
-}
-
-1;
diff --git a/Master/xemtex/perl/site/lib/Tk/Tk.xbm b/Master/xemtex/perl/site/lib/Tk/Tk.xbm
deleted file mode 100644
index 136d4793037..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Tk.xbm
+++ /dev/null
@@ -1,44 +0,0 @@
-#define Tk.xbm_width 61
-#define Tk.xbm_height 61
-static unsigned char Tk.xbm_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xf8, 0x0e, 0x00, 0x00,
- 0x00, 0xe0, 0x1e, 0x00, 0xbe, 0x3e, 0x00, 0x00, 0x00, 0xfb, 0x1e, 0x00,
- 0xfe, 0x7f, 0x00, 0x00, 0x80, 0xdf, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x00,
- 0x80, 0xe0, 0x3d, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x47, 0x7f, 0x80,
- 0xff, 0xfd, 0x01, 0x00, 0x00, 0x7f, 0x3e, 0xc0, 0xff, 0xf1, 0x01, 0x00,
- 0x00, 0x30, 0x7f, 0xf0, 0xfe, 0xb3, 0x03, 0x00, 0x00, 0xf8, 0x3e, 0x7c,
- 0xff, 0xcf, 0x07, 0x00, 0x00, 0x78, 0x37, 0xfc, 0x7b, 0xc3, 0x07, 0x00,
- 0x00, 0xfc, 0x3d, 0xfe, 0x3c, 0x25, 0x0e, 0x00, 0x00, 0xfc, 0x3e, 0x5f,
- 0x18, 0x41, 0x0b, 0x00, 0x00, 0x5c, 0x3f, 0x5f, 0xf0, 0x59, 0x1b, 0x00,
- 0x00, 0xdc, 0x9f, 0x3f, 0xe8, 0xbe, 0x17, 0x00, 0x00, 0xbc, 0x9f, 0x2f,
- 0xa8, 0x5b, 0x15, 0x00, 0x00, 0xdc, 0xdf, 0x25, 0x48, 0x7a, 0x34, 0x00,
- 0x00, 0x7c, 0xce, 0x1f, 0x20, 0x2c, 0x36, 0x00, 0x00, 0x7c, 0xa7, 0x1f,
- 0xcc, 0x09, 0xf0, 0x00, 0x00, 0xfc, 0xae, 0x1f, 0x49, 0x05, 0xf6, 0x00,
- 0x00, 0xfc, 0xac, 0x3f, 0xf8, 0x11, 0xf6, 0x00, 0x00, 0xf8, 0x8d, 0x3f,
- 0x8e, 0x0e, 0xd6, 0x01, 0x00, 0xf8, 0x9c, 0x7e, 0xd7, 0x5b, 0xff, 0x03,
- 0x00, 0x70, 0x83, 0x5f, 0xcf, 0xfd, 0xbf, 0x01, 0x00, 0xe0, 0xc3, 0x3b,
- 0xc7, 0xff, 0x3f, 0x03, 0x00, 0xe0, 0xcf, 0xbf, 0xe3, 0xff, 0x97, 0x03,
- 0x00, 0x80, 0xfb, 0x7f, 0xfb, 0xff, 0x17, 0x01, 0x00, 0x80, 0xef, 0xff,
- 0xb3, 0x6f, 0x17, 0x03, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x3f, 0x17, 0x03,
- 0x00, 0x00, 0x88, 0xff, 0xbf, 0x3f, 0x1b, 0x03, 0x00, 0x00, 0x00, 0x7b,
- 0x3d, 0x1f, 0x9f, 0x01, 0x00, 0x00, 0x80, 0x1f, 0x7f, 0x1f, 0x9e, 0x00,
- 0x00, 0x00, 0x80, 0x1f, 0x3f, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x1f,
- 0x1f, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x1f, 0x0e, 0x1e, 0x00,
- 0x00, 0xfe, 0x81, 0x8f, 0x1f, 0x0f, 0x1c, 0x00, 0x00, 0x98, 0x81, 0xc7,
- 0x1f, 0x0e, 0x18, 0x00, 0x00, 0x98, 0x01, 0xc7, 0x0f, 0x0a, 0x18, 0x00,
- 0xfc, 0x98, 0x99, 0xc7, 0x07, 0x0e, 0x18, 0x00, 0x8c, 0x99, 0x8d, 0xc7,
- 0x02, 0x0e, 0x18, 0x00, 0x8c, 0x99, 0x07, 0xc3, 0x03, 0x03, 0x18, 0x00,
- 0x8c, 0x99, 0x07, 0xc7, 0x01, 0x03, 0x28, 0x00, 0x8c, 0x99, 0x0d, 0x03,
- 0x03, 0x01, 0x08, 0x00, 0xfc, 0x98, 0x19, 0x03, 0x86, 0x01, 0x18, 0x00,
- 0x0c, 0x00, 0x00, 0x03, 0xc4, 0x01, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x03,
- 0x88, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x03, 0x90, 0x00, 0x18, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, 0x01,
- 0xf0, 0x01, 0x08, 0x00, 0x00, 0x00, 0x80, 0x01, 0xf8, 0x01, 0x18, 0x00,
- 0x00, 0x00, 0xc0, 0x01, 0x9e, 0x03, 0x04, 0x00, 0x00, 0x00, 0xc0, 0x01,
- 0xb3, 0x01, 0x04, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x01, 0x18, 0x00,
- 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xdc, 0x00,
- 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/xemtex/perl/site/lib/Tk/Tk.xpm b/Master/xemtex/perl/site/lib/Tk/Tk.xpm
deleted file mode 100644
index 7880a637f39..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Tk.xpm
+++ /dev/null
@@ -1,41 +0,0 @@
-/* XPM */
-static char *Tk[] = {
-/* width height num_colors chars_per_pixel */
-" 32 32 2 1",
-/* colors */
-"# c #008080",
-"a c #ff0000",
-/* pixels */
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"##########aaaaaaaa##############",
-"#######aaaaaaaaaaaa#######aa####",
-"#####aaaaaaaaaaaaaa######aaa####",
-"####aaaaaaaaaaaaaaaa####aaaa####",
-"####aaaaaaa######aa####aaaa#####",
-"###aaaa#########aaa###aaaa######",
-"###aaaa#########aa###aaaa#######",
-"######aa#######aa####aaa########",
-"##############aaa###aaaa########",
-"#############aaa###aaaa##aaa####",
-"#############aa####aaa#aaaaa####",
-"############aaa###aaa#aaaaaa####",
-"###########aaa####aa#aa#aaa#####",
-"###########aaa###aa#aa#aaa######",
-"##########aaa####aaaaaaaa#aa####",
-"##########aaa####aaaaaaa##aa####",
-"#########aaaa####aaaaaaaaaa#####",
-"#########aaa#####aa##aaaaa######",
-"#########aaa##########aa########",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################"
-};
diff --git a/Master/xemtex/perl/site/lib/Tk/Toplevel.pm b/Master/xemtex/perl/site/lib/Tk/Toplevel.pm
deleted file mode 100644
index 1d7533f8377..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Toplevel.pm
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Toplevel;
-use AutoLoader;
-
-use vars qw($VERSION);
-$VERSION = '3.028'; # $Id: //depot/Tk8/Tk/Toplevel.pm#28 $
-
-use base qw(Tk::Wm Tk::Frame);
-
-Construct Tk::Widget 'Toplevel';
-
-sub Tk_cmd { \&Tk::toplevel }
-
-sub CreateOptions
-{
- return (shift->SUPER::CreateOptions,'-screen','-use')
-}
-
-sub Populate
-{
- my ($cw,$arg) = @_;
- $cw->SUPER::Populate($arg);
- $cw->ConfigSpecs('-title',['METHOD',undef,undef,$cw->class]);
-}
-
-sub Icon
-{
- my ($top,%args) = @_;
- my $icon = $top->iconwindow;
- my $state = $top->state;
- if ($state ne 'withdrawn')
- {
- $top->withdraw;
- $top->update; # Let attributes propogate
- }
- unless (defined $icon)
- {
- $icon = Tk::Toplevel->new($top,'-borderwidth' => 0,'-class'=>'Icon');
- $icon->withdraw;
- # Fake Populate
- my $lab = $icon->Component('Label' => 'icon');
- $lab->pack('-expand'=>1,'-fill' => 'both');
- $icon->ConfigSpecs(DEFAULT => ['DESCENDANTS']);
- # Now do tail of InitObject
- $icon->ConfigDefault(\%args);
- # And configure that new would have done
- $top->iconwindow($icon);
- $top->update;
- $lab->DisableButtonEvents;
- $lab->update;
- }
- $top->iconimage($args{'-image'}) if (exists $args{'-image'});
- $icon->configure(%args);
- $icon->idletasks; # Let size request propogate
- $icon->geometry($icon->ReqWidth . 'x' . $icon->ReqHeight);
- $icon->update; # Let attributes propogate
- $top->deiconify if ($state eq 'normal');
- $top->iconify if ($state eq 'iconic');
-}
-
-sub menu
-{
- my $w = shift;
- my $menu;
- $menu = $w->cget('-menu');
- unless (defined $menu)
- {
- $w->configure(-menu => ($menu = $w->SUPER::menu))
- }
- $menu->configure(@_) if @_;
- return $menu;
-}
-
-
-1;
-__END__
-
-#----------------------------------------------------------------------
-#
-# Focus Group
-#
-# Focus groups are used to handle the user's focusing actions inside a
-# toplevel.
-#
-# One example of using focus groups is: when the user focuses on an
-# entry, the text in the entry is highlighted and the cursor is put to
-# the end of the text. When the user changes focus to another widget,
-# the text in the previously focused entry is validated.
-#
-
-#----------------------------------------------------------------------
-# tkFocusGroup_Create --
-#
-# Create a focus group. All the widgets in a focus group must be
-# within the same focus toplevel. Each toplevel can have only
-# one focus group, which is identified by the name of the
-# toplevel widget.
-#
-sub FG_Create {
- my $t = shift;
- unless (exists $t->{'_fg'}) {
- $t->{'_fg'} = 1;
- $t->bind('<FocusIn>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_In($w, $Ev->d);
- }
- );
- $t->bind('<FocusOut>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Out($w, $Ev->d);
- }
- );
- $t->bind('<Destroy>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Destroy($w);
- }
- );
- # <Destroy> is not sufficient to break loops if never mapped.
- $t->OnDestroy([$t,'FG_Destroy']);
- }
-}
-
-# tkFocusGroup_BindIn --
-#
-# Add a widget into the "FocusIn" list of the focus group. The $cmd will be
-# called when the widget is focused on by the user.
-#
-sub FG_BindIn {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusIn'}{$w} = Tk::Callback->new($cmd);
-}
-
-# tkFocusGroup_BindOut --
-#
-# Add a widget into the "FocusOut" list of the focus group. The
-# $cmd will be called when the widget loses the focus (User
-# types Tab or click on another widget).
-#
-sub FG_BindOut {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusOut'}{$w} = Tk::Callback->new($cmd);
-}
-
-# tkFocusGroup_Destroy --
-#
-# Cleans up when members of the focus group is deleted, or when the
-# toplevel itself gets deleted.
-#
-sub FG_Destroy {
- my($t, $w) = @_;
- if (!defined($w) || $t == $w) {
- delete $t->{'_fg'};
- delete $t->{'_focus'};
- delete $t->{'_FocusOut'};
- delete $t->{'_FocusIn'};
- } else {
- if (exists $t->{'_focus'}) {
- delete $t->{'_focus'} if ($t->{'_focus'} == $w);
- }
- delete $t->{'_FocusIn'}{$w};
- delete $t->{'_FocusOut'}{$w};
- }
-}
-
-# tkFocusGroup_In --
-#
-# Handles the <FocusIn> event. Calls the FocusIn command for the newly
-# focused widget in the focus group.
-#
-sub FG_In {
- my($t, $w, $detail) = @_;
- if (defined $t->{'_focus'} and $t->{'_focus'} eq $w) {
- # This is already in focus
- return;
- } else {
- $t->{'_focus'} = $w;
- $t->{'_FocusIn'}{$w}->Call if exists $t->{'_FocusIn'}{$w};
- }
-}
-
-# tkFocusGroup_Out --
-#
-# Handles the <FocusOut> event. Checks if this is really a lose
-# focus event, not one generated by the mouse moving out of the
-# toplevel window. Calls the FocusOut command for the widget
-# who loses its focus.
-#
-sub FG_Out {
- my($t, $w, $detail) = @_;
- if ($detail ne 'NotifyNonlinear' and $detail ne 'NotifyNonlinearVirtual') {
- # This is caused by mouse moving out of the window
- return;
- }
- unless (exists $t->{'_FocusOut'}{$w}) {
- return;
- } else {
- $t->{'_FocusOut'}{$w}->Call;
- delete $t->{'_focus'};
- }
-}
-
-1;
-
-__END__
diff --git a/Master/xemtex/perl/site/lib/Tk/Widget.pm b/Master/xemtex/perl/site/lib/Tk/Widget.pm
deleted file mode 100644
index 811d9e5e28b..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Widget.pm
+++ /dev/null
@@ -1,1298 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Widget;
-use vars qw($VERSION @DefaultMenuLabels);
-$VERSION = '3.080'; # $Id: //depot/Tk8/Tk/Widget.pm#80 $
-
-require Tk;
-use AutoLoader;
-use strict;
-use Carp;
-use base qw(DynaLoader Tk);
-
-# stubs for 'autoloaded' widget classes
-
-sub Button;
-sub Canvas;
-sub Checkbutton;
-sub Entry;
-sub Frame;
-sub Label;
-sub Listbox;
-sub Menu;
-sub Menubutton;
-sub Message;
-sub Scale;
-sub Scrollbar;
-sub Radiobutton;
-sub Text;
-sub Toplevel;
-
-sub Pixmap;
-sub Bitmap;
-sub Photo;
-
-sub ScrlListbox;
-sub Optionmenu;
-
-sub import
-{
- my $package = shift;
- carp 'use Tk::Widget () to pre-load widgets is deprecated' if (@_);
- my $need;
- foreach $need (@_)
- {
- unless (defined &{$need})
- {
- require "Tk/${need}.pm";
- }
- croak "Cannot locate $need" unless (defined &{$need});
- }
-}
-
-@DefaultMenuLabels = qw[~File ~Help];
-
-# Some tidy-ness functions for winfo stuff
-
-sub True { 1 }
-sub False { 0 }
-
-use Tk::Submethods( 'grab' => [qw(current status release -global)],
- 'focus' => [qw(-force -lastfor)],
- 'pack' => [qw(configure forget info propagate slaves)],
- 'grid' => [qw(bbox columnconfigure configure forget info location propagate rowconfigure size slaves)],
- 'form' => [qw(check configure forget grid info slaves)],
- 'event' => [qw(add delete generate info)],
- 'place' => [qw(configure forget info slaves)],
- 'wm' => [qw(capture release)],
- 'font' => [qw(actual configure create delete families measure metrics names)]
- );
-
-BEGIN {
- # FIXME - these don't work in the compiler
- *IsMenu = \&False;
- *IsMenubutton = \&False;
- *configure_self = \&Tk::configure;
- *cget_self = \&Tk::cget;
-}
-
-
-
-Direct Tk::Submethods (
- 'winfo' => [qw(cells class colormapfull depth exists
- geometry height id ismapped manager name parent reqheight
- reqwidth rootx rooty screen screencells screendepth screenheight
- screenmmheight screenmmwidth screenvisual screenwidth visual
- visualsavailable vrootheight viewable vrootwidth vrootx vrooty
- width x y toplevel children pixels pointerx pointery pointerxy
- server fpixels rgb )],
- 'tk' => [qw(appname scaling)]);
-
-
-sub DESTROY
-{
- my $w = shift;
- $w->destroy if ($w->IsWidget);
-}
-
-sub Install
-{
- # Dynamically loaded widgets add their core commands
- # to the Tk base class here
- my ($package,$mw) = @_;
-}
-
-sub ClassInit
-{
- # Carry out class bindings (or whatever)
- my ($package,$mw) = @_;
- return $package;
-}
-
-sub CreateOptions
-{
- return ();
-}
-
-sub CreateArgs
-{
- my ($package,$parent,$args) = @_;
- # Remove from hash %$args any configure-like
- # options which only apply at create time (e.g. -colormap for Frame),
- # or which may as well be applied right away
- # return these as a list of -key => value pairs
- # Augment same hash with default values for missing mandatory options,
- # allthough this can be done later in InitObject.
-
- # Honour -class => if present, we have hacked Tk_ConfigureWidget to
- # allow -class to be passed to any widget.
- my @result = ();
- my $class = delete $args->{'-class'};
- ($class) = $package =~ /([A-Z][A-Z0-9_]*)$/i unless (defined $class);
- push(@result, '-class' => "\u$class") if (defined $class);
- foreach my $opt ($package->CreateOptions)
- {
- push(@result, $opt => delete $args->{$opt}) if exists $args->{$opt};
- }
- return @result;
-}
-
-sub InitObject
-{
- my ($obj,$args) = @_;
- # per object initialization, for example populating
- # with sub-widgets, adding a few object bindings to augment
- # inherited class bindings, changing binding tags.
- # Also another chance to mess with %$args before configure...
-}
-
-sub SetBindtags
-{
- my ($obj) = @_;
- $obj->bindtags([ref($obj),$obj,$obj->toplevel,'all']);
-}
-
-sub new
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $package = shift;
- my $parent = shift;
- $package->InitClass($parent);
- $parent->BackTrace("Odd number of args to $package->new(...)") unless ((@_ % 2) == 0);
- my %args = @_;
- my @args = $package->CreateArgs($parent,\%args);
- my $cmd = $package->Tk_cmd;
- my $pname = $parent->PathName;
- $pname = '' if ($pname eq '.');
- my $leaf = delete $args{'Name'};
- if (defined $leaf)
- {
- $leaf =~ s/[^a-z0-9_]+/_/ig;
- $leaf = lcfirst($leaf);
- }
- else
- {
- ($leaf) = "\L$package" =~ /([a-z][a-z0-9_]*)$/;
- }
- my $lname = $pname . '.' . $leaf;
- # create a hash indexed by leaf name to speed up
- # creation of a lot of sub-widgets of the same type
- # e.g. entries in Table
- my $nhash = $parent->TkHash('_names_');
- $nhash->{$leaf} = 0 unless (exists $nhash->{$leaf});
- while (defined ($parent->Widget($lname)))
- {
- $lname = $pname . '.' . $leaf . ++$nhash->{$leaf};
- }
- my $obj = eval { &$cmd($parent, $lname, @args) };
- confess $@ if $@;
- bless $obj,$package;
- $obj->SetBindtags;
- my $notice = $parent->can('NoticeChild');
- $parent->$notice($obj,\%args) if $notice;
- $obj->InitObject(\%args);
-# ASkludge(\%args,1);
- $obj->configure(%args) if (%args);
-# ASkludge(\%args,0);
- return $obj;
-}
-
-sub DelegateFor
-{
- my ($w,$method) = @_;
- while(exists $w->{'Delegates'})
- {
- my $delegate = $w->{'Delegates'};
- my $widget = $delegate->{$method};
- $widget = $delegate->{DEFAULT} unless (defined $widget);
- $widget = $w->Subwidget($widget) if (defined $widget && !ref $widget);
- last unless (defined $widget);
- last if $widget == $w;
- $w = $widget;
- }
- return $w;
-}
-
-sub Delegates
-{
- my $cw = shift;
- my $specs = $cw->TkHash('Delegates');
- while (@_)
- {
- my $key = shift;
- my $val = shift;
- $specs->{$key} = $val;
- }
- return $specs;
-}
-
-sub Construct
-{
- my ($base,$name) = @_;
- my $class = (caller(0))[0];
- no strict 'refs';
-
- # Hack for broken ->isa in perl5.6.0
- delete ${"$class\::"}{'::ISA::CACHE::'} if $] == 5.006;
-
- # Pre ->isa scheme
- *{$base.'::Is'.$name} = \&False;
- *{$class.'::Is'.$name} = \&True;
-
- # DelegateFor trickyness is to allow Frames and other derived things
- # to force creation in a delegate e.g. a ScrlText with embeded windows
- # need those windows to be children of the Text to get clipping right
- # and not of the Frame which contains the Text and the scrollbars.
- *{$base.'::'."$name"} = sub { $class->new(shift->DelegateFor('Construct'),@_) };
-}
-
-sub IS
-{
- return (defined $_[1]) && $_[0] == $_[1];
-}
-
-sub _AutoloadTkWidget
-{
- my ($self,$method) = @_;
- my $what = "Tk::Widget::$method";
- unless (defined &$what)
- {
- require "Tk/$method.pm";
- }
- return $what;
-}
-
-require UNIVERSAL;
-
-sub AUTOLOAD
-{
- # Take a copy into a 'my' variable so we can recurse
- my $what = $Tk::Widget::AUTOLOAD;
- my $save = $@;
- my $name;
- # warn "AUTOLOAD $what ".(ref($_[0]) || $_[0])."\n";
- # Braces used to preserve $1 et al.
- {
- my ($pkg,$func) = $what =~ /(.*)::([^:]+)$/;
- confess("Attempt to load '$what'") unless defined($pkg) && $func =~ /^[\w:]+$/;
- $pkg =~ s#::#/#g;
- if (defined($name=$INC{"$pkg.pm"}))
- {
- $name =~ s#^(.*)$pkg\.pm$#$1auto/$pkg/$func.al#;
- }
- else
- {
- $name = "auto/$what.al";
- $name =~ s#::#/#g;
- }
- }
- # This may fail, catch error and prevent user's __DIE__ handler
- # from triggering as well...
- eval {local $SIG{'__DIE__'}; require $name};
- if ($@)
- {
- croak $@ unless ($@ =~ /Can't locate\s+(?:file\s+)?'?\Q$name\E'?/);
- my($package,$method) = ($what =~ /^(.*)::([^:]*)$/);
- if (ref $_[0] && !$_[0]->can($method)
- && $_[0]->can('Delegate')
- && $method !~ /^(ConfigSpecs|Delegates)/ )
- {
- my $delegate = $_[0]->Delegates;
- if (%$delegate || tied %$delegate)
- {
- my $widget = $delegate->{$method};
- $widget = $delegate->{DEFAULT} unless (defined $widget);
- if (defined $widget)
- {
- my $subwidget = (ref $widget) ? $widget : $_[0]->Subwidget($widget);
- if (defined $subwidget)
- {
- no strict 'refs';
- # print "AUTOLOAD: $what\n";
- *{$what} = sub { shift->Delegate($method,@_) };
- }
- else
- {
- croak "No delegate subwidget '$widget' for $what";
- }
- }
- }
- }
- if (!defined(&$what) && $method =~ /^[A-Z]\w+$/)
- {
- # Use ->can as ->isa is broken in perl5.6.0
- my $sub = UNIVERSAL::can($_[0],'_AutoloadTkWidget');
- if ($sub)
- {
- carp "Assuming 'require Tk::$method;'" unless $_[0]->can($method);
- $what = $_[0]->$sub($method)
- }
- }
- }
- $@ = $save;
- $DB::sub = $what; # Tell debugger what is going on...
- unless (defined &$what)
- {
- no strict 'refs';
- *{$what} = sub { croak("Failed to AUTOLOAD '$what'") };
- }
- goto &$what;
-}
-
-sub _Destroyed
-{
- my $w = shift;
- my $a = delete $w->{'_Destroy_'};
- if (ref($a))
- {
- while (@$a)
- {
- my $ent = pop(@$a);
- if (ref $ent)
- {
- eval {local $SIG{'__DIE__'}; $ent->Call };
- }
- else
- {
- delete $w->{$ent};
- }
- }
- }
-}
-
-sub _OnDestroy
-{
- my $w = shift;
- $w->{'_Destroy_'} = [] unless (exists $w->{'_Destroy_'});
- push(@{$w->{'_Destroy_'}},@_);
-}
-
-sub OnDestroy
-{
- my $w = shift;
- $w->_OnDestroy(Tk::Callback->new(@_));
-}
-
-sub TkHash
-{
- my ($w,$key) = @_;
- return $w->{$key} if exists $w->{$key};
- my $hash = $w->{$key} = {};
- $w->_OnDestroy($key);
- return $hash;
-}
-
-sub privateData
-{
- my $w = shift;
- my $p = shift || caller;
- $w->{$p} ||= {};
-}
-
-my @image_types;
-my %image_method;
-
-sub ImageMethod
-{
- shift if (@_ & 1);
- while (@_)
- {
- my ($name,$method) = splice(@_,0,2);
- push(@image_types,$name);
- $image_method{$name} = $method;
- }
-}
-
-sub Getimage
-{
- my ($w, $name) = @_;
- my $mw = $w->MainWindow;
- croak "Usage \$widget->Getimage('name')" unless defined($name);
- my $images = ($mw->{'__Images__'} ||= {});
-
- return $images->{$name} if $images->{$name};
-
- ImageMethod(xpm => 'Pixmap',
- gif => 'Photo',
- ppm => 'Photo',
- xbm => 'Bitmap' ) unless @image_types;
-
- foreach my $type (@image_types)
- {
- my $method = $image_method{$type};
- my $file = Tk->findINC( "$name.$type" );
- next unless( $file && $method );
- my $sub = $w->can($method);
- unless (defined &$sub)
- {
- require Tk::widgets;
- Tk::widgets->import($method);
- }
- $images->{$name} = $w->$method( -file => $file );
- return $images->{$name};
- }
-
- # Try built-in bitmaps
- $images->{$name} = $w->Pixmap( -id => $name );
- return $images->{$name};
-}
-
-sub SaveGrabInfo
-{
- my $w = shift;
- $Tk::oldGrab = $w->grabCurrent;
- if (defined $Tk::oldGrab)
- {
- $Tk::grabStatus = $Tk::oldGrab->grabStatus;
- }
-}
-
-sub grabSave
-{
- my ($w) = @_;
- my $grab = $w->grabCurrent;
- return sub {} if (!defined $grab);
- my $method = ($grab->grabStatus eq 'global') ? 'grabGlobal' : 'grab';
- return sub { eval {local $SIG{'__DIE__'}; $grab->$method() } };
-}
-
-sub focusCurrent
-{
- my ($w) = @_;
- $w->Tk::focus('-displayof');
-}
-
-sub focusSave
-{
- my ($w) = @_;
- my $focus = $w->focusCurrent;
- return sub {} if (!defined $focus);
- return sub { eval {local $SIG{'__DIE__'}; $focus->focus } };
-}
-
-# This is supposed to replicate Tk::after behaviour,
-# but does auto-cancel when widget is deleted.
-require Tk::After;
-
-sub afterIdle
-{
- my $w = shift;
- return Tk::After->new($w,'idle','once',@_);
-}
-
-sub afterCancel
-{
- my ($w,$what) = @_;
- if (defined $what)
- {
- return $what->cancel if ref($what);
- carp "dubious cancel of $what" if 0 && $^W;
- $w->Tk::after('cancel' => $what);
- }
-}
-
-sub after
-{
- my $w = shift;
- my $t = shift;
- if (@_)
- {
- if ($t ne 'cancel')
- {
- require Tk::After;
- return Tk::After->new($w,$t,'once',@_)
- }
- while (@_)
- {
- my $what = shift;
- $w->afterCancel($what);
- }
- }
- else
- {
- $w->Tk::after($t);
- }
-}
-
-sub repeat
-{
- require Tk::After;
- my $w = shift;
- my $t = shift;
- return Tk::After->new($w,$t,'repeat',@_);
-}
-
-sub FindMenu
-{
- # default FindMenu is that there is no menu.
- return undef;
-}
-
-sub XEvent { shift->{'_XEvent_'} }
-
-sub propertyRoot
-{
- my $w = shift;
- return $w->property(@_,'root');
-}
-
-# atom, atomname, containing, interps, pathname
-# don't work this way - there is no window arg
-# So we pretend there was an call the C versions from Tk.xs
-
-sub atom { shift->InternAtom(@_) }
-sub atomname { shift->GetAtomName(@_) }
-sub containing { shift->Containing(@_) }
-
-# interps not done yet
-# pathname not done yet
-
-# walk and descendants adapted from Stephen's composite
-# versions as they only use core features they can go here.
-# hierachy is reversed in that descendants calls walk rather
-# than vice versa as this avoids building a list.
-# Walk should possibly be enhanced so allow early termination
-# like '-prune' of find.
-
-sub Walk
-{
- # Traverse a widget hierarchy while executing a subroutine.
- my($cw, $proc, @args) = @_;
- my $subwidget;
- foreach $subwidget ($cw->children)
- {
- $subwidget->Walk($proc,@args);
- &$proc($subwidget, @args);
- }
-} # end walk
-
-sub Descendants
-{
- # Return a list of widgets derived from a parent widget and all its
- # descendants of a particular class.
- # If class is not passed returns the entire widget hierarchy.
-
- my($widget, $class) = @_;
- my(@widget_tree) = ();
-
- $widget->Walk(
- sub { my ($widget,$list,$class) = @_;
- push(@$list, $widget) if (!defined($class) or $class eq $widget->class);
- },
- \@widget_tree, $class
- );
- return @widget_tree;
-}
-
-sub Palette
-{
- my $w = shift->MainWindow;
- unless (exists $w->{_Palette_})
- {
- my %Palette = ();
- my $c = $w->Checkbutton();
- my $e = $w->Entry();
- my $s = $w->Scrollbar();
- $Palette{'activeBackground'} = ($c->configure('-activebackground'))[3] ;
- $Palette{'activeForeground'} = ($c->configure('-activeforeground'))[3];
- $Palette{'background'} = ($c->configure('-background'))[3];
- $Palette{'disabledForeground'} = ($c->configure('-disabledforeground'))[3];
- $Palette{'foreground'} = ($c->configure('-foreground'))[3];
- $Palette{'highlightBackground'} = ($c->configure('-highlightbackground'))[3];
- $Palette{'highlightColor'} = ($c->configure('-highlightcolor'))[3];
- $Palette{'insertBackground'} = ($e->configure('-insertbackground'))[3];
- $Palette{'selectColor'} = ($c->configure('-selectcolor'))[3];
- $Palette{'selectBackground'} = ($e->configure('-selectbackground'))[3];
- $Palette{'selectForeground'} = ($e->configure('-selectforeground'))[3];
- $Palette{'troughColor'} = ($s->configure('-troughcolor'))[3];
- $c->destroy;
- $e->destroy;
- $s->destroy;
- $w->{_Palette_} = \%Palette;
- }
- return $w->{_Palette_};
-}
-
-# tk_setPalette --
-# Changes the default color scheme for a Tk application by setting
-# default colors in the option database and by modifying all of the
-# color options for existing widgets that have the default value.
-#
-# Arguments:
-# The arguments consist of either a single color name, which
-# will be used as the new background color (all other colors will
-# be computed from this) or an even number of values consisting of
-# option names and values. The name for an option is the one used
-# for the option database, such as activeForeground, not -activeforeground.
-sub setPalette
-{
- my $w = shift->MainWindow;
- my %new = (@_ == 1) ? (background => $_[0]) : @_;
- my $priority = delete($new{'priority'}) || 'widgetDefault';
-
- # Create an array that has the complete new palette. If some colors
- # aren't specified, compute them from other colors that are specified.
-
- die 'must specify a background color' if (!exists $new{background});
- $new{'foreground'} = 'black' unless (exists $new{foreground});
- my @bg = $w->rgb($new{'background'});
- my @fg = $w->rgb($new{'foreground'});
- my $darkerBg = sprintf('#%02x%02x%02x',9*$bg[0]/2560,9*$bg[1]/2560,9*$bg[2]/2560);
- foreach my $i ('activeForeground','insertBackground','selectForeground','highlightColor')
- {
- $new{$i} = $new{'foreground'} unless (exists $new{$i});
- }
- unless (exists $new{'disabledForeground'})
- {
- $new{'disabledForeground'} = sprintf('#%02x%02x%02x',(3*$bg[0]+$fg[0])/1024,(3*$bg[1]+$fg[1])/1024,(3*$bg[2]+$fg[2])/1024);
- }
- $new{'highlightBackground'} = $new{'background'} unless (exists $new{'highlightBackground'});
-
- unless (exists $new{'activeBackground'})
- {
- my @light;
- # Pick a default active background that is lighter than the
- # normal background. To do this, round each color component
- # up by 15% or 1/3 of the way to full white, whichever is
- # greater.
- foreach my $i (0, 1, 2)
- {
- $light[$i] = $bg[$i]/256;
- my $inc1 = $light[$i]*15/100;
- my $inc2 = (255-$light[$i])/3;
- if ($inc1 > $inc2)
- {
- $light[$i] += $inc1
- }
- else
- {
- $light[$i] += $inc2
- }
- $light[$i] = 255 if ($light[$i] > 255);
- }
- $new{'activeBackground'} = sprintf('#%02x%02x%02x',@light);
- }
- $new{'selectBackground'} = $darkerBg unless (exists $new{'selectBackground'});
- $new{'troughColor'} = $darkerBg unless (exists $new{'troughColor'});
- $new{'selectColor'} = '#b03060' unless (exists $new{'selectColor'});
-
- # Before doing this, make sure that the Tk::Palette variable holds
- # the default values of all options, so that tkRecolorTree can
- # be sure to only change options that have their default values.
- # If the variable exists, then it is already correct (it was created
- # the last time this procedure was invoked). If the variable
- # doesn't exist, fill it in using the defaults from a few widgets.
- my $Palette = $w->Palette;
-
- # Walk the widget hierarchy, recoloring all existing windows.
- $w->RecolorTree(\%new);
- # Change the option database so that future windows will get the
- # same colors.
- foreach my $option (keys %new)
- {
- $w->option('add',"*$option",$new{$option},$priority);
- # Save the options in the global variable Tk::Palette, for use the
- # next time we change the options.
- $Palette->{$option} = $new{$option};
- }
-}
-
-# tkRecolorTree --
-# This procedure changes the colors in a window and all of its
-# descendants, according to information provided by the colors
-# argument. It only modifies colors that have their default values
-# as specified by the Tk::Palette variable.
-#
-# Arguments:
-# w - The name of a window. This window and all its
-# descendants are recolored.
-# colors - The name of an array variable in the caller,
-# which contains color information. Each element
-# is named after a widget configuration option, and
-# each value is the value for that option.
-sub RecolorTree
-{
- my ($w,$colors) = @_;
- local ($@);
- my $Palette = $w->Palette;
- foreach my $dbOption (keys %$colors)
- {
- my $option = "-\L$dbOption";
- my $value;
- eval {local $SIG{'__DIE__'}; $value = $w->cget($option) };
- if (defined $value)
- {
- if ($value eq $Palette->{$dbOption})
- {
- $w->configure($option,$colors->{$dbOption});
- }
- }
- }
- foreach my $child ($w->children)
- {
- $child->RecolorTree($colors);
- }
-}
-# tkDarken --
-# Given a color name, computes a new color value that darkens (or
-# brightens) the given color by a given percent.
-#
-# Arguments:
-# color - Name of starting color.
-# perecent - Integer telling how much to brighten or darken as a
-# percent: 50 means darken by 50%, 110 means brighten
-# by 10%.
-sub Darken
-{
- my ($w,$color,$percent) = @_;
- my @l = $w->rgb($color);
- my $red = $l[0]/256;
- my $green = $l[1]/256;
- my $blue = $l[2]/256;
- $red = int($red*$percent/100);
- $red = 255 if ($red > 255);
- $green = int($green*$percent/100);
- $green = 255 if ($green > 255);
- $blue = int($blue*$percent/100);
- $blue = 255 if ($blue > 255);
- sprintf('#%02x%02x%02x',$red,$green,$blue)
-}
-# tk_bisque --
-# Reset the Tk color palette to the old "bisque" colors.
-#
-# Arguments:
-# None.
-sub bisque
-{
- shift->setPalette('activeBackground' => '#e6ceb1',
- 'activeForeground' => 'black',
- 'background' => '#ffe4c4',
- 'disabledForeground' => '#b0b0b0',
- 'foreground' => 'black',
- 'highlightBackground' => '#ffe4c4',
- 'highlightColor' => 'black',
- 'insertBackground' => 'black',
- 'selectColor' => '#b03060',
- 'selectBackground' => '#e6ceb1',
- 'selectForeground' => 'black',
- 'troughColor' => '#cdb79e'
- );
-}
-
-sub PrintConfig
-{
- require Tk::Pretty;
- my ($w) = (@_);
- my $c;
- foreach $c ($w->configure)
- {
- print Tk::Pretty::Pretty(@$c),"\n";
- }
-}
-
-sub BusyRecurse
-{
- my ($restore,$w,$cursor,$recurse,$top) = @_;
- my $c = $w->cget('-cursor');
- my @tags = $w->bindtags;
- if ($top || defined($c))
- {
- push(@$restore, sub { return unless Tk::Exists($w); $w->configure(-cursor => $c); $w->bindtags(\@tags) });
- $w->configure(-cursor => $cursor);
- }
- else
- {
- push(@$restore, sub { return unless Tk::Exists($w); $w->bindtags(\@tags) });
- }
- $w->bindtags(['Busy',@tags]);
- if ($recurse)
- {
- foreach my $child ($w->children)
- {
- BusyRecurse($restore,$child,$cursor,1,0);
- }
- }
- return $restore;
-}
-
-sub Busy
-{
- my ($w,%args) = @_;
- return unless $w->viewable;
- my $cursor = delete $args{'-cursor'};
- my $recurse = delete $args{'-recurse'};
- $cursor = 'watch' unless defined $cursor;
- unless (exists $w->{'Busy'})
- {
- my @old = ($w->grabSave);
- my $key;
- my @config;
- foreach $key (keys %args)
- {
- push(@config,$key => $w->Tk::cget($key));
- }
- if (@config)
- {
- push(@old, sub { $w->Tk::configure(@config) });
- $w->Tk::configure(%args);
- }
- unless ($w->Tk::bind('Busy'))
- {
- $w->Tk::bind('Busy','<Any-KeyPress>',[_busy => 1]);
- $w->Tk::bind('Busy','<Any-KeyRelease>',[_busy => 0]);
- $w->Tk::bind('Busy','<Any-ButtonPress>',[_busy => 1]);
- $w->Tk::bind('Busy','<Any-ButtonRelease>',[_busy => 0]);
- $w->Tk::bind('Busy','<Any-Motion>',[_busy => 0]);
- }
- $w->{'Busy'} = BusyRecurse(\@old,$w,$cursor,$recurse,1);
- }
- my $g = $w->grabCurrent;
- if (defined $g)
- {
- # warn "$g has the grab";
- $g->grabRelease;
- }
- $w->update;
- eval {local $SIG{'__DIE__'}; $w->grab };
- $w->update;
-}
-
-sub _busy
-{
- my ($w,$f) = @_;
- $w->bell if $f;
- $w->break;
-}
-
-sub Unbusy
-{
- my ($w) = @_;
- $w->update;
- $w->grabRelease;
- my $old = delete $w->{'Busy'};
- if (defined $old)
- {
- local $SIG{'__DIE__'};
- eval { &{pop(@$old)} } while (@$old);
- }
- $w->update;
-}
-
-sub waitVisibility
-{
- my ($w) = shift;
- $w->tkwait('visibility',$w);
-}
-
-sub waitVariable
-{
- my ($w) = shift;
- $w->tkwait('variable',@_);
-}
-
-sub waitWindow
-{
- my ($w) = shift;
- $w->tkwait('window',$w);
-}
-
-sub EventWidget
-{
- my ($w) = @_;
- return $w->{'_EventWidget_'};
-}
-
-sub Popwidget
-{
- my ($ew,$method,$w,@args) = @_;
- $w->{'_EventWidget_'} = $ew;
- $w->$method(@args);
-}
-
-sub ColorOptions
-{
- my ($w,$args) = @_;
- my $opt;
- $args = {} unless (defined $args);
- foreach $opt (qw(-foreground -background -disabledforeground
- -activebackground -activeforeground
- ))
- {
- $args->{$opt} = $w->cget($opt) unless (exists $args->{$opt})
- }
- return (wantarray) ? %$args : $args;
-}
-
-sub XscrollBind
-{
- my ($mw,$class) = @_;
- $mw->bind($class,'<Left>', ['xview','scroll',-1,'units']);
- $mw->bind($class,'<Control-Left>', ['xview','scroll',-1,'pages']);
- $mw->bind($class,'<Control-Prior>',['xview','scroll',-1,'pages']);
- $mw->bind($class,'<Right>', ['xview','scroll',1,'units']);
- $mw->bind($class,'<Control-Right>',['xview','scroll',1,'pages']);
- $mw->bind($class,'<Control-Next>', ['xview','scroll',1,'pages']);
-
- $mw->bind($class,'<Home>', ['xview','moveto',0]);
- $mw->bind($class,'<End>', ['xview','moveto',1]);
-}
-
-sub PriorNextBind
-{
- my ($mw,$class) = @_;
- $mw->bind($class,'<Next>', ['yview','scroll',1,'pages']);
- $mw->bind($class,'<Prior>', ['yview','scroll',-1,'pages']);
-}
-
-sub YscrollBind
-{
- my ($mw,$class) = @_;
- $mw->PriorNextBind($class);
- $mw->bind($class,'<Up>', ['yview','scroll',-1,'units']);
- $mw->bind($class,'<Down>', ['yview','scroll',1,'units']);
-}
-
-sub XYscrollBind
-{
- my ($mw,$class) = @_;
- $mw->YscrollBind($class);
- $mw->XscrollBind($class);
-}
-
-sub ScrlListbox
-{
- my $parent = shift;
- return $parent->Scrolled('Listbox',-scrollbars => 'w', @_);
-}
-
-sub AddBindTag
-{
- my ($w,$tag) = @_;
- my $t;
- my @tags = $w->bindtags;
- foreach $t (@tags)
- {
- return if $t eq $tag;
- }
- $w->bindtags([@tags,$tag]);
-}
-
-sub Callback
-{
- my $w = shift;
- my $name = shift;
- my $cb = $w->cget($name);
- if (defined $cb)
- {
- return $cb->Call(@_) if (ref $cb);
- return $w->$cb(@_);
- }
- return (wantarray) ? () : undef;
-}
-
-sub packAdjust
-{
-# print 'packAdjust(',join(',',@_),")\n";
- require Tk::Adjuster;
- my ($w,%args) = @_;
- my $delay = delete($args{'-delay'});
- $delay = 1 unless (defined $delay);
- $w->pack(%args);
- %args = $w->packInfo;
- my $adj = Tk::Adjuster->new($args{'-in'},
- -widget => $w, -delay => $delay, -side => $args{'-side'});
- $adj->packed($w,%args);
- return $w;
-}
-
-sub gridAdjust
-{
- require Tk::Adjuster;
- my ($w,%args) = @_;
- my $delay = delete($args{'-delay'});
- $delay = 1 unless (defined $delay);
- $w->grid(%args);
- %args = $w->gridInfo;
- my $adj = Tk::Adjuster->new($args{'-in'},-widget => $w, -delay => $delay);
- $adj->gridded($w,%args);
- return $w;
-}
-
-sub place
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:configure|forget|info|slaves)$/x)
- {
- $w->Tk::place(@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- $w->Tk::place('configure',@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub pack
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:configure|forget|info|propagate|slaves)$/x)
- {
- # maybe array/scalar context issue with slaves
- $w->Tk::pack(@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- $w->Tk::pack('configure',@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub grid
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:bbox|columnconfigure|configure|forget|info|location|propagate|rowconfigure|size|slaves)$/x)
- {
- my $opt = shift;
- Tk::grid($opt,$w,@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- Tk::grid('configure',$w,@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub form
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:configure|check|forget|grid|info|slaves)$/x)
- {
- $w->Tk::form(@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- $w->Tk::form('configure',@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub Scrolled
-{
- my ($parent,$kind,%args) = @_;
- # Find args that are Frame create time args
- my @args = Tk::Frame->CreateArgs($parent,\%args);
- my $name = delete $args{'Name'};
- push(@args,'Name' => $name) if (defined $name);
- my $cw = $parent->Frame(@args);
- @args = ();
- # Now remove any args that Frame can handle
- foreach my $k ('-scrollbars',map($_->[0],$cw->configure))
- {
- push(@args,$k,delete($args{$k})) if (exists $args{$k})
- }
- # Anything else must be for target widget - pass at widget create time
- my $w = $cw->$kind(%args);
- # Now re-set %args to be ones Frame can handle
- %args = @args;
- $cw->ConfigSpecs('-scrollbars' => ['METHOD','scrollbars','Scrollbars','se'],
- '-background' => [$w,'background','Background'],
- '-foreground' => [$w,'foreground','Foreground'],
- );
- $cw->AddScrollbars($w);
- $cw->Default("\L$kind" => $w);
- $cw->Delegates('bind' => $w, 'bindtags' => $w, 'menu' => $w);
- $cw->ConfigDefault(\%args);
- $cw->configure(%args);
- return $cw;
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
-}
-
-sub ForwardEvent
-{
- my $self = shift;
- my $to = shift;
- $to->PassEvent($self->XEvent);
-}
-
-# Save / Return abstract event type as in Tix.
-sub EventType
-{
- my $w = shift;
- $w->{'_EventType_'} = $_[0] if @_;
- return $w->{'_EventType_'};
-}
-
-sub PostPopupMenu
-{
- my ($w, $X, $Y) = @_;
- if (@_ < 3)
- {
- my $e = $w->XEvent;
- $X = $e->X;
- $Y = $e->Y;
- }
- my $menu = $w->menu;
- $menu->Post($X,$Y) if defined $menu;
-}
-
-sub FillMenu
-{
- my ($w,$menu,@labels) = @_;
- foreach my $lab (@labels)
- {
- my $method = $lab.'MenuItems';
- $method =~ s/~//g;
- $method =~ s/[\s-]+/_/g;
- if ($w->can($method))
- {
- $menu->Menubutton(-label => $lab, -tearoff => 0, -menuitems => $w->$method());
- }
- }
- return $menu;
-}
-
-sub menu
-{
- my ($w,$menu) = @_;
- if (@_ > 1)
- {
- $w->_OnDestroy('_MENU_') unless exists $w->{'_MENU_'};
- $w->{'_MENU_'} = $menu;
- }
- return unless defined wantarray;
- unless (exists $w->{'_MENU_'})
- {
- $w->_OnDestroy('_MENU_');
- $w->{'_MENU_'} = $menu = $w->Menu(-tearoff => 0);
- $w->FillMenu($menu,$w->MenuLabels);
- }
- return $w->{'_MENU_'};
-}
-
-sub MenuLabels
-{
- return @DefaultMenuLabels;
-}
-
-sub FileMenuItems
-{
- my ($w) = @_;
- return [ ["command"=>'E~xit', -command => [ $w, 'WmDeleteWindow']]];
-}
-
-sub WmDeleteWindow
-{
- shift->toplevel->WmDeleteWindow
-}
-
-sub BalloonInfo
-{
- my ($widget,$balloon,$X,$Y,@opt) = @_;
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$widget);
- return $info if defined $info;
- }
-}
-
-
-
-1;
-__END__
-
-sub ASkludge
-{
- my ($hash,$sense) = @_;
- foreach my $key (%$hash)
- {
- if ($key =~ /-.*variable/ && ref($hash->{$key}) eq 'SCALAR')
- {
- if ($sense)
- {
- my $val = ${$hash->{$key}};
- require Tie::Scalar;
- tie ${$hash->{$key}},'Tie::StdScalar';
- ${$hash->{$key}} = $val;
- }
- else
- {
- untie ${$hash->{$key}};
- }
- }
- }
-}
-
-
-
-# clipboardKeysyms --
-# This procedure is invoked to identify the keys that correspond to
-# the "copy", "cut", and "paste" functions for the clipboard.
-#
-# Arguments:
-# copy - Name of the key (keysym name plus modifiers, if any,
-# such as "Meta-y") used for the copy operation.
-# cut - Name of the key used for the cut operation.
-# paste - Name of the key used for the paste operation.
-#
-# This method is obsolete use clipboardOperations and abstract
-# event types instead. See Clipboard.pm and Mainwindow.pm
-
-sub clipboardKeysyms
-{
- my @class = ();
- my $mw = shift;
- if (ref $mw)
- {
- $mw = $mw->DelegateFor('bind');
- }
- else
- {
- push(@class,$mw);
- $mw = shift;
- }
- if (@_)
- {
- my $copy = shift;
- $mw->Tk::bind(@class,"<$copy>",'clipboardCopy') if (defined $copy);
- }
- if (@_)
- {
- my $cut = shift;
- $mw->Tk::bind(@class,"<$cut>",'clipboardCut') if (defined $cut);
- }
- if (@_)
- {
- my $paste = shift;
- $mw->Tk::bind(@class,"<$paste>",'clipboardPaste') if (defined $paste);
- }
-}
-
-sub pathname
-{
- my ($w,$id) = @_;
- my $x = $w->winfo('pathname',-displayof => oct($id));
- return $x->PathName;
-}
-
-
diff --git a/Master/xemtex/perl/site/lib/Tk/Wm.pm b/Master/xemtex/perl/site/lib/Tk/Wm.pm
deleted file mode 100644
index a148987f350..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Wm.pm
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright (c) 1995-1999 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Wm;
-use AutoLoader;
-
-require Tk::Widget;
-*AUTOLOAD = \&Tk::Widget::AUTOLOAD;
-
-use strict qw(vars);
-
-# There are issues with this stuff now we have Tix's wm release/capture
-# as toplevel-ness is now dynamic.
-
-
-use vars qw($VERSION);
-$VERSION = '3.023'; # $Id: //depot/Tk8/Tk/Wm.pm#23 $
-
-use Tk::Submethods ( 'wm' => [qw(grid tracing)] );
-
-Direct Tk::Submethods ('wm' => [qw(aspect client colormapwindows command
- deiconify focusmodel frame geometry group
- iconbitmap iconify iconimage iconmask iconname
- iconwindow maxsize minsize overrideredirect positionfrom
- protocol resizable saveunder sizefrom state title transient
- withdraw wrapper)]);
-
-sub SetBindtags
-{
- my ($obj) = @_;
- $obj->bindtags([ref($obj),$obj,'all']);
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
- $cw->ConfigSpecs('-overanchor' => ['PASSIVE',undef,undef,undef],
- '-popanchor' => ['PASSIVE',undef,undef,undef],
- '-popover' => ['PASSIVE',undef,undef,undef]
- );
-}
-
-sub MoveResizeWindow
-{
- my ($w,$x,$y,$width,$height) = @_;
- $w->withdraw;
- $w->geometry($width.'x'.$height);
- $w->MoveToplevelWindow($x,$y);
- $w->deiconify;
-}
-
-sub WmDeleteWindow
-{
- my ($w) = @_;
- my $cb = $w->protocol('WM_DELETE_WINDOW');
- if (defined $cb)
- {
- $cb->Call;
- }
- else
- {
- $w->destroy;
- }
-}
-
-
-1;
-
-__END__
-
-
-sub Post
-{
- my ($w,$X,$Y) = @_;
- $X = int($X);
- $Y = int($Y);
- $w->positionfrom('user');
- # $w->geometry("+$X+$Y");
- $w->MoveToplevelWindow($X,$Y);
- $w->deiconify;
- $w->raise;
-}
-
-sub AnchorAdjust
-{
- my ($anchor,$X,$Y,$w,$h) = @_;
- $anchor = 'c' unless (defined $anchor);
- $Y += ($anchor =~ /s/) ? $h : ($anchor =~ /n/) ? 0 : $h/2;
- $X += ($anchor =~ /e/) ? $w : ($anchor =~ /w/) ? 0 : $w/2;
- return ($X,$Y);
-}
-
-sub Popup
-{
- my $w = shift;
- $w->configure(@_) if @_;
- $w->idletasks;
- my ($mw,$mh) = ($w->reqwidth,$w->reqheight);
- my ($rx,$ry,$rw,$rh) = (0,0,0,0);
- my $base = $w->cget('-popover');
- my $outside = 0;
- if (defined $base)
- {
- if ($base eq 'cursor')
- {
- ($rx,$ry) = $w->pointerxy;
- }
- else
- {
- $rx = $base->rootx;
- $ry = $base->rooty;
- $rw = $base->Width;
- $rh = $base->Height;
- }
- }
- else
- {
- my $sc = ($w->parent) ? $w->parent->toplevel : $w;
- $rx = -$sc->vrootx;
- $ry = -$sc->vrooty;
- $rw = $w->screenwidth;
- $rh = $w->screenheight;
- }
- my ($X,$Y) = AnchorAdjust($w->cget('-overanchor'),$rx,$ry,$rw,$rh);
- ($X,$Y) = AnchorAdjust($w->cget('-popanchor'),$X,$Y,-$mw,-$mh);
- $w->Post($X,$Y);
- $w->waitVisibility;
-}
-
-sub FullScreen
-{
- my $w = shift;
- my $over = (@_) ? shift : 0;
- my $width = $w->screenwidth;
- my $height = $w->screenheight;
- $w->GeometryRequest($width,$height);
- $w->overrideredirect($over & 1);
- $w->Post(0,0);
- $w->update;
- if ($over & 2)
- {
- my $x = $w->rootx;
- my $y = $w->rooty;
- $width -= 2*$x;
- $height -= $x + $y;
- $w->GeometryRequest($width,$height);
- $w->update;
- }
-}
-
-sub iconposition
-{
- my $w = shift;
- if (@_ == 1)
- {
- return $w->wm('iconposition',$1,$2) if $_[0] =~ /^(\d+),(\d+)$/;
- if ($_[0] =~ /^([+-])(\d+)([+-])(\d+)$/)
- {
- my $x = ($1 eq '-') ? $w->screenwidth-$2 : $2;
- my $y = ($3 eq '-') ? $w->screenheight-$4 : $4;
- return $w->wm('iconposition',$x,$y);
- }
- }
- $w->wm('iconposition',@_);
-}
diff --git a/Master/xemtex/perl/site/lib/Tk/X.pm b/Master/xemtex/perl/site/lib/Tk/X.pm
deleted file mode 100644
index 856673d4bbe..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/X.pm
+++ /dev/null
@@ -1,398 +0,0 @@
-package Tk::X;
-
-use strict;
-use Carp;
-use vars qw($VERSION @EXPORT $AUTOLOAD);
-$VERSION = '3.016'; # $Id: //depot/Tk8/Xlib/X/X.pm#16 $
-use Tk qw($XS_VERSION);
-
-require Exporter;
-require DynaLoader;
-require AutoLoader;
-
-
-use base qw(Exporter DynaLoader);
-# Items to export into callers namespace by default. Note: do not export
-# names by default without a very good reason. Use EXPORT_OK instead.
-# Do not simply export all your public functions/methods/constants.
-@EXPORT = qw(
- Above
- AllTemporary
- AllocAll
- AllocNone
- AllowExposures
- AlreadyGrabbed
- Always
- AnyButton
- AnyKey
- AnyModifier
- AnyPropertyType
- ArcChord
- ArcPieSlice
- AsyncBoth
- AsyncKeyboard
- AsyncPointer
- AutoRepeatModeDefault
- AutoRepeatModeOff
- AutoRepeatModeOn
- BadAccess
- BadAlloc
- BadAtom
- BadColor
- BadCursor
- BadDrawable
- BadFont
- BadGC
- BadIDChoice
- BadImplementation
- BadLength
- BadMatch
- BadName
- BadPixmap
- BadRequest
- BadValue
- BadWindow
- Below
- BottomIf
- Button1
- Button1Mask
- Button1MotionMask
- Button2
- Button2Mask
- Button2MotionMask
- Button3
- Button3Mask
- Button3MotionMask
- Button4
- Button4Mask
- Button4MotionMask
- Button5
- Button5Mask
- Button5MotionMask
- ButtonMotionMask
- ButtonPress
- ButtonPressMask
- ButtonRelease
- ButtonReleaseMask
- CWBackPixel
- CWBackPixmap
- CWBackingPixel
- CWBackingPlanes
- CWBackingStore
- CWBitGravity
- CWBorderPixel
- CWBorderPixmap
- CWBorderWidth
- CWColormap
- CWCursor
- CWDontPropagate
- CWEventMask
- CWHeight
- CWOverrideRedirect
- CWSaveUnder
- CWSibling
- CWStackMode
- CWWidth
- CWWinGravity
- CWX
- CWY
- CapButt
- CapNotLast
- CapProjecting
- CapRound
- CenterGravity
- CirculateNotify
- CirculateRequest
- ClientMessage
- ClipByChildren
- ColormapChangeMask
- ColormapInstalled
- ColormapNotify
- ColormapUninstalled
- Complex
- ConfigureNotify
- ConfigureRequest
- ControlMapIndex
- ControlMask
- Convex
- CoordModeOrigin
- CoordModePrevious
- CopyFromParent
- CreateNotify
- CurrentTime
- CursorShape
- DefaultBlanking
- DefaultExposures
- DestroyAll
- DestroyNotify
- DirectColor
- DisableAccess
- DisableScreenInterval
- DisableScreenSaver
- DoBlue
- DoGreen
- DoRed
- DontAllowExposures
- DontPreferBlanking
- EastGravity
- EnableAccess
- EnterNotify
- EnterWindowMask
- EvenOddRule
- Expose
- ExposureMask
- FamilyChaos
- FamilyDECnet
- FamilyInternet
- FillOpaqueStippled
- FillSolid
- FillStippled
- FillTiled
- FirstExtensionError
- FocusChangeMask
- FocusIn
- FocusOut
- FontChange
- FontLeftToRight
- FontRightToLeft
- ForgetGravity
- GCArcMode
- GCBackground
- GCCapStyle
- GCClipMask
- GCClipXOrigin
- GCClipYOrigin
- GCDashList
- GCDashOffset
- GCFillRule
- GCFillStyle
- GCFont
- GCForeground
- GCFunction
- GCGraphicsExposures
- GCJoinStyle
- GCLastBit
- GCLineStyle
- GCLineWidth
- GCPlaneMask
- GCStipple
- GCSubwindowMode
- GCTile
- GCTileStipXOrigin
- GCTileStipYOrigin
- GXand
- GXandInverted
- GXandReverse
- GXclear
- GXcopy
- GXcopyInverted
- GXequiv
- GXinvert
- GXnand
- GXnoop
- GXnor
- GXor
- GXorInverted
- GXorReverse
- GXset
- GXxor
- GrabFrozen
- GrabInvalidTime
- GrabModeAsync
- GrabModeSync
- GrabNotViewable
- GrabSuccess
- GraphicsExpose
- GravityNotify
- GrayScale
- HostDelete
- HostInsert
- IncludeInferiors
- InputFocus
- InputOnly
- InputOutput
- IsUnmapped
- IsUnviewable
- IsViewable
- JoinBevel
- JoinMiter
- JoinRound
- KBAutoRepeatMode
- KBBellDuration
- KBBellPercent
- KBBellPitch
- KBKey
- KBKeyClickPercent
- KBLed
- KBLedMode
- KeyPress
- KeyPressMask
- KeyRelease
- KeyReleaseMask
- KeymapNotify
- KeymapStateMask
- LASTEvent
- LSBFirst
- LastExtensionError
- LeaveNotify
- LeaveWindowMask
- LedModeOff
- LedModeOn
- LineDoubleDash
- LineOnOffDash
- LineSolid
- LockMapIndex
- LockMask
- LowerHighest
- MSBFirst
- MapNotify
- MapRequest
- MappingBusy
- MappingFailed
- MappingKeyboard
- MappingModifier
- MappingNotify
- MappingPointer
- MappingSuccess
- Mod1MapIndex
- Mod1Mask
- Mod2MapIndex
- Mod2Mask
- Mod3MapIndex
- Mod3Mask
- Mod4MapIndex
- Mod4Mask
- Mod5MapIndex
- Mod5Mask
- MotionNotify
- NoEventMask
- NoExpose
- NoSymbol
- Nonconvex
- None
- NorthEastGravity
- NorthGravity
- NorthWestGravity
- NotUseful
- NotifyAncestor
- NotifyDetailNone
- NotifyGrab
- NotifyHint
- NotifyInferior
- NotifyNonlinear
- NotifyNonlinearVirtual
- NotifyNormal
- NotifyPointer
- NotifyPointerRoot
- NotifyUngrab
- NotifyVirtual
- NotifyWhileGrabbed
- Opposite
- OwnerGrabButtonMask
- ParentRelative
- PlaceOnBottom
- PlaceOnTop
- PointerMotionHintMask
- PointerMotionMask
- PointerRoot
- PointerWindow
- PreferBlanking
- PropModeAppend
- PropModePrepend
- PropModeReplace
- PropertyChangeMask
- PropertyDelete
- PropertyNewValue
- PropertyNotify
- PseudoColor
- RaiseLowest
- ReparentNotify
- ReplayKeyboard
- ReplayPointer
- ResizeRedirectMask
- ResizeRequest
- RetainPermanent
- RetainTemporary
- RevertToNone
- RevertToParent
- RevertToPointerRoot
- ScreenSaverActive
- ScreenSaverReset
- SelectionClear
- SelectionNotify
- SelectionRequest
- SetModeDelete
- SetModeInsert
- ShiftMapIndex
- ShiftMask
- SouthEastGravity
- SouthGravity
- SouthWestGravity
- StaticColor
- StaticGravity
- StaticGray
- StippleShape
- StructureNotifyMask
- SubstructureNotifyMask
- SubstructureRedirectMask
- Success
- SyncBoth
- SyncKeyboard
- SyncPointer
- TileShape
- TopIf
- TrueColor
- UnmapGravity
- UnmapNotify
- Unsorted
- VisibilityChangeMask
- VisibilityFullyObscured
- VisibilityNotify
- VisibilityPartiallyObscured
- VisibilityUnobscured
- WestGravity
- WhenMapped
- WindingRule
- XYBitmap
- XYPixmap
- X_H
- X_PROTOCOL
- X_PROTOCOL_REVISION
- YSorted
- YXBanded
- YXSorted
- ZPixmap
-);
-
-sub AUTOLOAD {
- # This AUTOLOAD is used to 'autoload' constants from the constant()
- # XS function. If a constant is not found then control is passed
- # to the AUTOLOAD in AutoLoader.
-
- my $constname;
- ($constname = $AUTOLOAD) =~ s/.*:://;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
- if ($! =~ /Invalid/) {
- $AutoLoader::AUTOLOAD = $AUTOLOAD;
- goto &AutoLoader::AUTOLOAD;
- }
- else {
- croak "Your vendor has not defined X macro $constname";
- }
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-bootstrap Tk::X;
-
-# Preloaded methods go here.
-
-# Autoload methods go after =cut, and are processed by the autosplit program.
-
-1;
-__END__
-# Below is the stub of documentation for your module. You better edit it!
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/Tk/X11/license.terms b/Master/xemtex/perl/site/lib/Tk/X11/license.terms
deleted file mode 100644
index 3dcd816f4a3..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/X11/license.terms
+++ /dev/null
@@ -1,32 +0,0 @@
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-RESTRICTED RIGHTS: Use, duplication or disclosure by the government
-is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
-of the Rights in Technical Data and Computer Software Clause as DFARS
-252.227-7013 and FAR 52.227-19.
diff --git a/Master/xemtex/perl/site/lib/Tk/Xcamel.gif b/Master/xemtex/perl/site/lib/Tk/Xcamel.gif
deleted file mode 100644
index cb88bc0afd8..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/Xcamel.gif
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/Tk/act_folder.xbm b/Master/xemtex/perl/site/lib/Tk/act_folder.xbm
deleted file mode 100644
index fc82949945b..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/act_folder.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define act_folder_width 16
-#define act_folder_height 10
-static unsigned char act_folder_bits[] = {
- 0xfc, 0x00, 0xaa, 0x0f, 0x55, 0x15, 0xeb, 0xff, 0x15, 0x80, 0x0b, 0x40,
- 0x05, 0x20, 0x03, 0x10, 0x01, 0x08, 0xff, 0x07};
diff --git a/Master/xemtex/perl/site/lib/Tk/act_folder.xpm b/Master/xemtex/perl/site/lib/Tk/act_folder.xpm
deleted file mode 100644
index 0e7d682713a..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/act_folder.xpm
+++ /dev/null
@@ -1,22 +0,0 @@
-/* XPM */
-static char * act_folder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 4 1",
-/* colors */
-" s None c None",
-". c black",
-"X c yellow",
-"o c #5B5B57574646",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".oXoXoXoXoXo. ",
-".XoX............",
-".oX.XXXXXXXXXXX.",
-".Xo.XXXXXXXXXX. ",
-".o.XXXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-"..XXXXXXXXXX.. ",
-"............. "};
diff --git a/Master/xemtex/perl/site/lib/Tk/anim.gif b/Master/xemtex/perl/site/lib/Tk/anim.gif
deleted file mode 100644
index 96a50b701be..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/anim.gif
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/Tk/balArrow.xbm b/Master/xemtex/perl/site/lib/Tk/balArrow.xbm
deleted file mode 100644
index ee0664a4727..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/balArrow.xbm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define balArrow_width 6
-#define balArrow_height 6
-static char balArrow_bits[] = {
- 0x1f, 0x07, 0x07, 0x09, 0x11, 0x20};
diff --git a/Master/xemtex/perl/site/lib/Tk/cbxarrow.xbm b/Master/xemtex/perl/site/lib/Tk/cbxarrow.xbm
deleted file mode 100644
index ae4054488b9..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/cbxarrow.xbm
+++ /dev/null
@@ -1,6 +0,0 @@
-#define cbxarrow_width 11
-#define cbxarrow_height 14
-static char cbxarrow_bits[] = {
- 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00,
- 0xfe, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0xfe, 0x03, 0xfe, 0x03};
diff --git a/Master/xemtex/perl/site/lib/Tk/file.xbm b/Master/xemtex/perl/site/lib/Tk/file.xbm
deleted file mode 100644
index 7bf12bb4c9f..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/file.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define file_width 12
-#define file_height 12
-static unsigned char file_bits[] = {
- 0xfe, 0x00, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xfe, 0x03};
diff --git a/Master/xemtex/perl/site/lib/Tk/file.xpm b/Master/xemtex/perl/site/lib/Tk/file.xpm
deleted file mode 100644
index 10cc24f9a1e..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/file.xpm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char * file_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c #000000000000",
-"X c white",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .......... "};
diff --git a/Master/xemtex/perl/site/lib/Tk/folder.xbm b/Master/xemtex/perl/site/lib/Tk/folder.xbm
deleted file mode 100644
index 0398f0de777..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/folder.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define folder_width 16
-#define folder_height 10
-static unsigned char folder_bits[] = {
- 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08,
- 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0xff, 0x07};
diff --git a/Master/xemtex/perl/site/lib/Tk/folder.xpm b/Master/xemtex/perl/site/lib/Tk/folder.xpm
deleted file mode 100644
index fda7c15a549..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/folder.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static char * folder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 3 1",
-/* colors */
-" s None c None",
-". c black",
-"X c #f0ff80",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-"............. "};
diff --git a/Master/xemtex/perl/site/lib/Tk/icon.gif b/Master/xemtex/perl/site/lib/Tk/icon.gif
deleted file mode 100644
index dfe6b6621f2..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/icon.gif
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/Tk/license.terms b/Master/xemtex/perl/site/lib/Tk/license.terms
deleted file mode 100644
index 6a5d3728366..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/license.terms
+++ /dev/null
@@ -1,35 +0,0 @@
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-RESTRICTED RIGHTS: Use, duplication or disclosure by the government
-is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
-of the Rights in Technical Data and Computer Software Clause as DFARS
-252.227-7013 and FAR 52.227-19.
-0 in license.terms
-0 in license.terms
-0 in license.terms
diff --git a/Master/xemtex/perl/site/lib/Tk/openfile.xbm b/Master/xemtex/perl/site/lib/Tk/openfile.xbm
deleted file mode 100644
index 859e2e57608..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/openfile.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define openfile_width 16
-#define openfile_height 12
-static unsigned char openfile_bits[] = {
- 0x00, 0x00, 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0xc1, 0xff, 0xa1, 0xaa,
- 0x51, 0x55, 0xa9, 0x2a, 0x55, 0x15, 0xab, 0x0a, 0xff, 0x07, 0x00, 0x00};
diff --git a/Master/xemtex/perl/site/lib/Tk/openfolder.xbm b/Master/xemtex/perl/site/lib/Tk/openfolder.xbm
deleted file mode 100644
index 59ee624efd0..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/openfolder.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define openfolder_width 16
-#define openfolder_height 10
-static unsigned char openfolder_bits[] = {
- 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0xc1, 0xff, 0x21, 0x80, 0x11, 0x40,
- 0x09, 0x20, 0x05, 0x10, 0x03, 0x08, 0xff, 0x07};
diff --git a/Master/xemtex/perl/site/lib/Tk/openfolder.xpm b/Master/xemtex/perl/site/lib/Tk/openfolder.xpm
deleted file mode 100644
index 191fe1e72bc..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/openfolder.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static char * openfolder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 3 1",
-/* colors */
-" s None c None",
-". c black",
-"X c #f0ff80",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".XXXXXXXXXXX. ",
-".XXX............",
-".XX.XXXXXXXXXXX.",
-".XX.XXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-"..XXXXXXXXXX.. ",
-"............. "};
diff --git a/Master/xemtex/perl/site/lib/Tk/prolog.ps b/Master/xemtex/perl/site/lib/Tk/prolog.ps
deleted file mode 100644
index 409e06a65a0..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/prolog.ps
+++ /dev/null
@@ -1,284 +0,0 @@
-%%BeginProlog
-50 dict begin
-
-% This is a standard prolog for Postscript generated by Tk's canvas
-% widget.
-% SCCS: @(#) prolog.ps 1.5 96/02/17 17:45:11
-
-% The definitions below just define all of the variables used in
-% any of the procedures here. This is needed for obscure reasons
-% explained on p. 716 of the Postscript manual (Section H.2.7,
-% "Initializing Variables," in the section on Encapsulated Postscript).
-
-/baseline 0 def
-/stipimage 0 def
-/height 0 def
-/justify 0 def
-/lineLength 0 def
-/spacing 0 def
-/stipple 0 def
-/strings 0 def
-/xoffset 0 def
-/yoffset 0 def
-/tmpstip null def
-
-% Define the array ISOLatin1Encoding (which specifies how characters are
-% encoded for ISO-8859-1 fonts), if it isn't already present (Postscript
-% level 2 is supposed to define it, but level 1 doesn't).
-
-systemdict /ISOLatin1Encoding known not {
- /ISOLatin1Encoding [
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
- /quoteright
- /parenleft /parenright /asterisk /plus /comma /minus /period /slash
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /less /equal /greater /question
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde /space
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
- /dieresis /space /ring /cedilla /space /hungarumlaut /ogonek /caron
- /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
- /registered /macron
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph
- /periodcentered
- /cedillar /onesuperior /ordmasculine /guillemotright /onequarter
- /onehalf /threequarters /questiondown
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex
- /Idieresis
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn
- /germandbls
- /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex
- /idieresis
- /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn
- /ydieresis
- ] def
-} if
-
-% font ISOEncode font
-% This procedure changes the encoding of a font from the default
-% Postscript encoding to ISOLatin1. It's typically invoked just
-% before invoking "setfont". The body of this procedure comes from
-% Section 5.6.1 of the Postscript book.
-
-/ISOEncode {
- dup length dict begin
- {1 index /FID ne {def} {pop pop} ifelse} forall
- /Encoding ISOLatin1Encoding def
- currentdict
- end
-
- % I'm not sure why it's necessary to use "definefont" on this new
- % font, but it seems to be important; just use the name "Temporary"
- % for the font.
-
- /Temporary exch definefont
-} bind def
-
-% StrokeClip
-%
-% This procedure converts the current path into a clip area under
-% the assumption of stroking. It's a bit tricky because some Postscript
-% interpreters get errors during strokepath for dashed lines. If
-% this happens then turn off dashes and try again.
-
-/StrokeClip {
- {strokepath} stopped {
- (This Postscript printer gets limitcheck overflows when) =
- (stippling dashed lines; lines will be printed solid instead.) =
- [] 0 setdash strokepath} if
- clip
-} bind def
-
-% desiredSize EvenPixels closestSize
-%
-% The procedure below is used for stippling. Given the optimal size
-% of a dot in a stipple pattern in the current user coordinate system,
-% compute the closest size that is an exact multiple of the device's
-% pixel size. This allows stipple patterns to be displayed without
-% aliasing effects.
-
-/EvenPixels {
- % Compute exact number of device pixels per stipple dot.
- dup 0 matrix currentmatrix dtransform
- dup mul exch dup mul add sqrt
-
- % Round to an integer, make sure the number is at least 1, and compute
- % user coord distance corresponding to this.
- dup round dup 1 lt {pop 1} if
- exch div mul
-} bind def
-
-% width height string StippleFill --
-%
-% Given a path already set up and a clipping region generated from
-% it, this procedure will fill the clipping region with a stipple
-% pattern. "String" contains a proper image description of the
-% stipple pattern and "width" and "height" give its dimensions. Each
-% stipple dot is assumed to be about one unit across in the current
-% user coordinate system. This procedure trashes the graphics state.
-
-/StippleFill {
- % The following code is needed to work around a NeWSprint bug.
-
- /tmpstip 1 index def
-
- % Change the scaling so that one user unit in user coordinates
- % corresponds to the size of one stipple dot.
- 1 EvenPixels dup scale
-
- % Compute the bounding box occupied by the path (which is now
- % the clipping region), and round the lower coordinates down
- % to the nearest starting point for the stipple pattern. Be
- % careful about negative numbers, since the rounding works
- % differently on them.
-
- pathbbox
- 4 2 roll
- 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll
- 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll
-
- % Stack now: width height string y1 y2 x1 x2
- % Below is a doubly-nested for loop to iterate across this area
- % in units of the stipple pattern size, going up columns then
- % across rows, blasting out a stipple-pattern-sized rectangle at
- % each position
-
- 6 index exch {
- 2 index 5 index 3 index {
- % Stack now: width height string y1 y2 x y
-
- gsave
- 1 index exch translate
- 5 index 5 index true matrix tmpstip imagemask
- grestore
- } for
- pop
- } for
- pop pop pop pop pop
-} bind def
-
-% -- AdjustColor --
-% Given a color value already set for output by the caller, adjusts
-% that value to a grayscale or mono value if requested by the CL
-% variable.
-
-/AdjustColor {
- CL 2 lt {
- currentgray
- CL 0 eq {
- .5 lt {0} {1} ifelse
- } if
- setgray
- } if
-} bind def
-
-% x y strings spacing xoffset yoffset justify stipple DrawText --
-% This procedure does all of the real work of drawing text. The
-% color and font must already have been set by the caller, and the
-% following arguments must be on the stack:
-%
-% x, y - Coordinates at which to draw text.
-% strings - An array of strings, one for each line of the text item,
-% in order from top to bottom.
-% spacing - Spacing between lines.
-% xoffset - Horizontal offset for text bbox relative to x and y: 0 for
-% nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se.
-% yoffset - Vertical offset for text bbox relative to x and y: 0 for
-% nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se.
-% justify - 0 for left justification, 0.5 for center, 1 for right justify.
-% stipple - Boolean value indicating whether or not text is to be
-% drawn in stippled fashion. If text is stippled,
-% procedure StippleText must have been defined to call
-% StippleFill in the right way.
-%
-% Also, when this procedure is invoked, the color and font must already
-% have been set for the text.
-
-/DrawText {
- /stipple exch def
- /justify exch def
- /yoffset exch def
- /xoffset exch def
- /spacing exch def
- /strings exch def
-
- % First scan through all of the text to find the widest line.
-
- /lineLength 0 def
- strings {
- stringwidth pop
- dup lineLength gt {/lineLength exch def} {pop} ifelse
- newpath
- } forall
-
- % Compute the baseline offset and the actual font height.
-
- 0 0 moveto (TXygqPZ) false charpath
- pathbbox dup /baseline exch def
- exch pop exch sub /height exch def pop
- newpath
-
- % Translate coordinates first so that the origin is at the upper-left
- % corner of the text's bounding box. Remember that x and y for
- % positioning are still on the stack.
-
- translate
- lineLength xoffset mul
- strings length 1 sub spacing mul height add yoffset mul translate
-
- % Now use the baseline and justification information to translate so
- % that the origin is at the baseline and positioning point for the
- % first line of text.
-
- justify lineLength mul baseline neg translate
-
- % Iterate over each of the lines to output it. For each line,
- % compute its width again so it can be properly justified, then
- % display it.
-
- strings {
- dup stringwidth pop
- justify neg mul 0 moveto
- stipple {
-
- % The text is stippled, so turn it into a path and print
- % by calling StippledText, which in turn calls StippleFill.
- % Unfortunately, many Postscript interpreters will get
- % overflow errors if we try to do the whole string at
- % once, so do it a character at a time.
-
- gsave
- /char (X) def
- {
- char 0 3 -1 roll put
- currentpoint
- gsave
- char true charpath clip StippleText
- grestore
- char stringwidth translate
- moveto
- } forall
- grestore
- } {show} ifelse
- 0 spacing neg translate
- } forall
-} bind def
-
-%%EndProlog
diff --git a/Master/xemtex/perl/site/lib/Tk/srcfile.xpm b/Master/xemtex/perl/site/lib/Tk/srcfile.xpm
deleted file mode 100644
index 06a40a96c84..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/srcfile.xpm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char * srcfile_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c #000000000000",
-"X c gray91",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .XXXXXXXX. ",
-" .XX...XXX. ",
-" .X.XXX.XX. ",
-" .X.XXXXXX. ",
-" .X.XXXXXX. ",
-" .XX....XX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .......... "};
diff --git a/Master/xemtex/perl/site/lib/Tk/textfile.xpm b/Master/xemtex/perl/site/lib/Tk/textfile.xpm
deleted file mode 100644
index 8fa8d2f9032..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/textfile.xpm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char * textfile_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c #000000000000",
-"X c #E0E0FFFFE0E0",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .X....XXX. ",
-" .XXXXXXXX. ",
-" .X...XXXX. ",
-" .XXXXXXXX. ",
-" .X.....XX. ",
-" .XXXXXXXX. ",
-" .X.....XX. ",
-" .XXXXXXXX. ",
-" .......... "};
diff --git a/Master/xemtex/perl/site/lib/Tk/tranicon.gif b/Master/xemtex/perl/site/lib/Tk/tranicon.gif
deleted file mode 100644
index dc7d494c572..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/tranicon.gif
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/Tk/widgets.pm b/Master/xemtex/perl/site/lib/Tk/widgets.pm
deleted file mode 100644
index 742866216cc..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/widgets.pm
+++ /dev/null
@@ -1,21 +0,0 @@
-package Tk::widgets;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '3.011'; # $Id: //depot/Tk8/Tk/widgets.pm#11 $
-
-sub import
-{
- my $class = shift;
- foreach (@_)
- {
- local $SIG{__DIE__} = \&Carp::croak;
- # carp "$_ already loaded" if (exists $INC{"Tk/$_.pm"});
- require "Tk/$_.pm";
- }
-}
-
-1;
-__END__
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/Tk/win.xbm b/Master/xemtex/perl/site/lib/Tk/win.xbm
deleted file mode 100644
index 13c05e8c2d7..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/win.xbm
+++ /dev/null
@@ -1,6 +0,0 @@
-#define win.xbm_width 16
-#define win.xbm_height 16
-static char win.xbm_bits[] = {
- 0xff, 0xff, 0x0d, 0xb0, 0xff, 0xff, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
- 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
- 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xff, 0xff};
diff --git a/Master/xemtex/perl/site/lib/Tk/winfolder.xpm b/Master/xemtex/perl/site/lib/Tk/winfolder.xpm
deleted file mode 100644
index 73fe734c6d0..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/winfolder.xpm
+++ /dev/null
@@ -1,39 +0,0 @@
-/* XPM */
-static char *winfolder[] = {
-/* width height num_colors chars_per_pixel */
-" 17 15 17 1",
-/* colors */
-" c none",
-". c #000000",
-"# c #808080",
-"a c #800000",
-"b c #808000",
-"c c #008000",
-"d c #008080",
-"e c #000080",
-"f c #800080",
-"g c #ffffff",
-"h c #c0c0c0",
-"i c #ff0000",
-"j c #ffff00",
-"k c #00ff00",
-"l c #00ffff",
-"m c #0000ff",
-"n c #ff00ff",
-/* pixels */
-" ",
-" ##### ",
-" #hjhjh# ",
-" #hjhjhjh###### ",
-" #gggggggggggg#. ",
-" #gjhjhjhjhjhj#. ",
-" #ghjhjhjhjhjh#. ",
-" #gjhjhjhjhjhj#. ",
-" #ghjhjhjhjhjh#. ",
-" #gjhjhjhjhjhj#. ",
-" #ghjhjhjhjhjh#. ",
-" #gjhjhjhjhjhj#. ",
-" ##############. ",
-" .............. ",
-" ",
-};
diff --git a/Master/xemtex/perl/site/lib/Tk/wintext.xpm b/Master/xemtex/perl/site/lib/Tk/wintext.xpm
deleted file mode 100644
index 50b2d5587dd..00000000000
--- a/Master/xemtex/perl/site/lib/Tk/wintext.xpm
+++ /dev/null
@@ -1,42 +0,0 @@
-/* XPM */
-static char *wintext[] = {
-/* width height num_colors chars_per_pixel */
-" 15 18 17 1",
-/* colors */
-" c None",
-". c #000000",
-"# c #808080",
-"a c #800000",
-"b c #808000",
-"c c #008000",
-"d c #008080",
-"e c #000080",
-"f c #800080",
-"g c #ffffff",
-"h c #c0c0c0",
-"i c #ff0000",
-"j c #ffff00",
-"k c #00ff00",
-"l c #00ffff",
-"m c #0000ff",
-"n c #ff00ff",
-/* pixels */
-" ",
-" . . . . . ",
-" .g#g#g#g#g. ",
-" #g.g.g.g.g.g. ",
-" #ggggggggggh. ",
-" #ggggggggggh. ",
-" #gg...g..ggh. ",
-" #ggggggggggh. ",
-" #gg......ggh. ",
-" #ggggggggggh. ",
-" #gg......ggh. ",
-" #ggggggggggh. ",
-" #gg......ggh. ",
-" #ggggggggggh. ",
-" #ggggggggggh. ",
-" #hhhhhhhhhhh. ",
-" ........... ",
-" "
-};
diff --git a/Master/xemtex/perl/site/lib/Win32/API.pm b/Master/xemtex/perl/site/lib/Win32/API.pm
deleted file mode 100644
index 154de7a80ee..00000000000
--- a/Master/xemtex/perl/site/lib/Win32/API.pm
+++ /dev/null
@@ -1,719 +0,0 @@
-package Win32::API;
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-#######################################################################
-#
-# Win32::API - Perl Win32 API Import Facility
-#
-# Version: 0.41
-# Date: 10 Mar 2003
-# Author: Aldo Calpini <dada@perl.it>
-# $Id: API.pm,v 1.0 2001/10/30 13:57:31 dada Exp $
-#######################################################################
-
-require Exporter; # to export the constants to the main:: space
-require DynaLoader; # to dynuhlode the module.
-@ISA = qw( Exporter DynaLoader );
-
-use vars qw( $DEBUG );
-$DEBUG = 0;
-
-sub DEBUG {
- if ($Win32::API::DEBUG) {
- printf @_ if @_ or return 1;
- } else {
- return 0;
- }
-}
-
-use Win32::API::Type;
-use Win32::API::Struct;
-
-#######################################################################
-# STATIC OBJECT PROPERTIES
-#
-$VERSION = "0.41";
-
-#### some package-global hash to
-#### keep track of the imported
-#### libraries and procedures
-my %Libraries = ();
-my %Procedures = ();
-
-
-#######################################################################
-# dynamically load in the API extension module.
-#
-bootstrap Win32::API;
-
-#######################################################################
-# PUBLIC METHODS
-#
-sub new {
- my($class, $dll, $proc, $in, $out) = @_;
- my $hdll;
- my $self = {};
-
- #### avoid loading a library more than once
- if(exists($Libraries{$dll})) {
- # print "Win32::API::new: Library '$dll' already loaded, handle=$Libraries{$dll}\n";
- $hdll = $Libraries{$dll};
- } else {
- # print "Win32::API::new: Loading library '$dll'\n";
- $hdll = Win32::API::LoadLibrary($dll);
- $Libraries{$dll} = $hdll;
- }
-
- #### if the dll can't be loaded, set $! to Win32's GetLastError()
- if(!$hdll) {
- $! = Win32::GetLastError();
- return undef;
- }
-
- #### determine if we have a prototype or not
- if( (not defined $in) and (not defined $out) ) {
- ($proc, $self->{in}, $self->{intypes}, $self->{out}) = parse_prototype( $proc );
- return undef unless $proc;
- $self->{proto} = 1;
- } else {
- $self->{in} = [];
- if(ref($in) eq 'ARRAY') {
- foreach (@$in) {
- push(@{ $self->{in} }, type_to_num($_));
- }
- } else {
- my @in = split '', $in;
- foreach (@in) {
- push(@{ $self->{in} }, type_to_num($_));
- }
- }
- $self->{out} = type_to_num($out);
- }
-
- #### first try to import the function of given name...
- my $hproc = Win32::API::GetProcAddress($hdll, $proc);
-
- #### ...then try appending either A or W (for ASCII or Unicode)
- if(!$hproc) {
- my $tproc = $proc;
- $tproc .= (IsUnicode() ? "W" : "A");
- # print "Win32::API::new: procedure not found, trying '$tproc'...\n";
- $hproc = Win32::API::GetProcAddress($hdll, $tproc);
- }
-
- #### ...if all that fails, set $! accordingly
- if(!$hproc) {
- $! = Win32::GetLastError();
- return undef;
- }
-
- #### ok, let's stuff the object
- $self->{procname} = $proc;
- $self->{dll} = $hdll;
- $self->{dllname} = $dll;
- $self->{proc} = $hproc;
-
- #### keep track of the imported function
- $Libraries{$dll} = $hdll;
- $Procedures{$dll}++;
-
- #### cast the spell
- bless($self, $class);
- return $self;
-}
-
-sub Import {
- my($class, $dll, $proc, $in, $out) = @_;
- $Imported{"$dll:$proc"} = Win32::API->new($dll, $proc, $in, $out) or return 0;
- my $P = (caller)[0];
- eval qq(
- sub ${P}::$Imported{"$dll:$proc"}->{procname} { \$Win32::API::Imported{"$dll:$proc"}->Call(\@_); }
- );
- return $@ ? 0 : 1;
-}
-
-
-#######################################################################
-# PRIVATE METHODS
-#
-sub DESTROY {
- my($self) = @_;
-
- #### decrease this library's procedures reference count
- $Procedures{$self->{dllname}}--;
-
- #### once it reaches 0, free it
- if($Procedures{$self->{dllname}} == 0) {
- # print "Win32::API::DESTROY: Freeing library '$self->{dllname}'\n";
- Win32::API::FreeLibrary($Libraries{$self->{dllname}});
- delete($Libraries{$self->{dllname}});
- }
-}
-
-sub type_to_num {
- my $type = shift;
- my $out = shift;
- my $num;
-
- if( $type eq 'N'
- or $type eq 'n'
- or $type eq 'l'
- or $type eq 'L'
- ) {
- $num = 1;
- } elsif($type eq 'P'
- or $type eq 'p'
- ) {
- $num = 2;
- } elsif($type eq 'I'
- or $type eq 'i'
- ) {
- $num = 3;
- } elsif($type eq 'f'
- or $type eq 'F'
- ) {
- $num = 4;
- } elsif($type eq 'D'
- or $type eq 'd'
- ) {
- $num = 5;
- } elsif($type eq 'c'
- or $type eq 'C'
- ) {
- $num = 6;
- } else {
- $num = 0;
- }
- unless(defined $out) {
- if( $type eq 's'
- or $type eq 'S'
- ) {
- $num = 51;
- } elsif($type eq 'b'
- or $type eq 'B'
- ) {
- $num = 22;
- } elsif($type eq 'k'
- or $type eq 'K'
- ) {
- $num = 101;
- }
- }
- return $num;
-}
-
-sub parse_prototype {
- my($proto) = @_;
-
- my @in_params = ();
- my @in_types = ();
- if($proto =~ /^\s*(\S+)\s+(\S+)\s*\(([^\)]*)\)/) {
- my $ret = $1;
- my $proc = $2;
- my $params = $3;
-
- $params =~ s/^\s+//;
- $params =~ s/\s+$//;
-
- DEBUG "(PM)parse_prototype: got PROC '%s'\n", $proc;
- DEBUG "(PM)parse_prototype: got PARAMS '%s'\n", $params;
-
- foreach my $param (split(/\s*,\s*/, $params)) {
- my($type, $name);
- if($param =~ /(\S+)\s+(\S+)/) {
- ($type, $name) = ($1, $2);
- }
-
- if(Win32::API::Type::is_known($type)) {
- if(Win32::API::Type::is_pointer($type)) {
- DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n",
- $type,
- Win32::API::Type->packing( $type ),
- type_to_num('P');
- push(@in_params, type_to_num('P'));
- } else {
- DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n",
- $type,
- Win32::API::Type->packing( $type ),
- type_to_num( Win32::API::Type->packing( $type ) );
- push(@in_params, type_to_num( Win32::API::Type->packing( $type ) ));
- }
- } elsif( Win32::API::Struct::is_known( $type ) ) {
- DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n",
- $type, 'S', type_to_num('S');
- push(@in_params, type_to_num('S'));
- } else {
- warn "Win32::API::parse_prototype: WARNING unknown parameter type '$type'";
- push(@in_params, type_to_num('I'));
- }
- push(@in_types, $type);
-
- }
- DEBUG "parse_prototype: IN=[ @in_params ]\n";
-
-
-
- if(Win32::API::Type::is_known($ret)) {
- if(Win32::API::Type::is_pointer($ret)) {
- DEBUG "parse_prototype: OUT='%s' PACKING='%s' API_TYPE=%d\n",
- $ret,
- Win32::API::Type->packing( $ret ),
- type_to_num('P');
- return ( $proc, \@in_params, \@in_types, type_to_num('P') );
- } else {
- DEBUG "parse_prototype: OUT='%s' PACKING='%s' API_TYPE=%d\n",
- $ret,
- Win32::API::Type->packing( $ret ),
- type_to_num( Win32::API::Type->packing( $ret ) );
- return ( $proc, \@in_params, \@in_types, type_to_num(Win32::API::Type->packing($ret)) );
- }
- } else {
- warn "Win32::API::parse_prototype: WARNING unknown output parameter type '$ret'";
- return ( $proc, \@in_params, \@in_types, type_to_num('I') );
- }
-
- } else {
- warn "Win32::API::parse_prototype: bad prototype '$proto'";
- return undef;
- }
-}
-
-1;
-
-__END__
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API - Perl Win32 API Import Facility
-
-=head1 SYNOPSIS
-
- #### Method 1: with prototype
-
- use Win32::API;
- $function = Win32::API->new(
- 'mydll, 'int sum_integers(int a, int b)',
- );
- $return = $function->Call(3, 2);
-
- #### Method 2: with parameter list
-
- use Win32::API;
- $function = Win32::API->new(
- 'mydll', 'sum_integers', 'II', 'I',
- );
- $return = $function->Call(3, 2);
-
- #### Method 3: with Import
-
- use Win32::API;
- Win32::API->Import(
- 'mydll', 'int sum_integers(int a, int b)',
- );
- $return = sum_integers(3, 2);
-
-
-=for LATER-UNIMPLEMENTED
- #### or
- use Win32::API mydll => 'int sum_integers(int a, int b)';
- $return = sum_integers(3, 2);
-
-
-=head1 ABSTRACT
-
-With this module you can import and call arbitrary functions
-from Win32's Dynamic Link Libraries (DLL), without having
-to write an XS extension. Note, however, that this module
-can't do anything (parameters input and output is limited
-to simpler cases), and anyway a regular XS extension is
-always safer and faster.
-
-The current version of Win32::API is available at my website:
-
- http://dada.perl.it/
-
-It's also available on your nearest CPAN mirror (but allow a few days
-for worldwide spreading of the latest version) reachable at:
-
- http://www.perl.com/CPAN/authors/Aldo_Calpini/
-
-A short example of how you can use this module (it just gets the PID of
-the current process, eg. same as Perl's internal C<$$>):
-
- use Win32::API;
- Win32::API->Import("kernel32", "int GetCurrentProcessId()");
- $PID = GetCurrentProcessId();
-
-The possibilities are nearly infinite (but not all are good :-).
-Enjoy it.
-
-
-=head1 CREDITS
-
-All the credits go to Andrea Frosini
-for the neat assembler trick that makes this thing work.
-I've also used some work by Dave Roth for the prototyping stuff.
-A big thank you also to Gurusamy Sarathy for his
-unvaluable help in XS development, and to all the Perl community for
-being what it is.
-
-
-=head1 DESCRIPTION
-
-To use this module put the following line at the beginning of your script:
-
- use Win32::API;
-
-You can now use the C<new()> function of the Win32::API module to create a
-new Win32::API object (see L<IMPORTING A FUNCTION>) and then invoke the
-C<Call()> method on this object to perform a call to the imported API
-(see L<CALLING AN IMPORTED FUNCTION>).
-
-Starting from version 0.40, you can also avoid creating a Win32::API object
-and instead automatically define a Perl sub with the same name of the API
-function you're importing. The details of the API definitions are the same,
-just the call is different:
-
- my $GetCurrentProcessId = Win32::API->new(
- "kernel32", "int GetCurrentProcessId()"
- );
- my $PID = $GetCurrentProcessId->Call();
-
- #### vs.
-
- Win32::API->Import("kernel32", "int GetCurrentProcessId()");
- $PID = GetCurrentProcessId();
-
-Note that C<Import> returns 1 on success and 0 on failure (in which case you
-can check the content of C<$^E>).
-
-=head2 IMPORTING A FUNCTION
-
-You can import a function from a 32 bit Dynamic Link Library (DLL) file
-with the C<new()> function. This will create a Perl object that contains the
-reference to that function, which you can later C<Call()>.
-
-What you need to know is the prototype of the function you're going to import
-(eg. the definition of the function expressed in C syntax).
-
-Starting from version 0.40, there are 2 different approaches for this step:
-(the preferred) one uses the prototype directly, while the other (now deprecated)
-one uses Win32::API's internal representation for parameters.
-
-=head2 IMPORTING A FUNCTION BY PROTOTYPE
-
-You need to pass 2 parameters:
-
-=over 4
-
-=item 1.
-The name of the library from which you want to import the function.
-
-=item 2.
-The C prototype of the function.
-
-=back
-
-See L<Win32::API::Type> for a list of the known parameter types and
-L<Win32::API::Struct> for information on how to define a structure.
-
-=head2 IMPORTING A FUNCTION WITH A PARAMETER LIST
-
-You need to pass 4 parameters:
-
-=over 4
-
-=item 1.
-The name of the library from which you want to import the function.
-
-=item 2.
-The name of the function (as exported by the library).
-
-=item 3.
-The number and types of the arguments the function expects as input.
-
-=item 4.
-The type of the value returned by the function.
-
-=back
-
-To better explain their meaning, let's suppose that we
-want to import and call the Win32 API C<GetTempPath()>.
-This function is defined in C as:
-
- DWORD WINAPI GetTempPathA( DWORD nBufferLength, LPSTR lpBuffer );
-
-This is documented in the B<Win32 SDK Reference>; you can look
-for it on the Microsoft's WWW site, or in your C compiler's
-documentation, if you own one.
-
-=over 4
-
-=item B<1.>
-
-The first parameter is the name of the library file that
-exports this function; our function resides in the F<KERNEL32.DLL>
-system file.
-When specifying this name as parameter, the F<.DLL> extension
-is implicit, and if no path is given, the file is searched through
-a couple of directories, including:
-
-=over 4
-
-=item 1. The directory from which the application loaded.
-
-=item 2. The current directory.
-
-=item 3. The Windows system directory (eg. c:\windows\system or system32).
-
-=item 4. The Windows directory (eg. c:\windows).
-
-=item 5. The directories that are listed in the PATH environment variable.
-
-=back
-
-So, you don't have to write F<C:\windows\system\kernel32.dll>;
-only F<kernel32> is enough:
-
- $GetTempPath = new Win32::API('kernel32', ...
-
-=item B<2.>
-
-Now for the second parameter: the name of the function.
-It must be written exactly as it is exported
-by the library (case is significant here).
-If you are using Windows 95 or NT 4.0, you can use the B<Quick View>
-command on the DLL file to see the function it exports.
-Remember that you can only import functions from 32 bit DLLs:
-in Quick View, the file's characteristics should report
-somewhere "32 bit word machine"; as a rule of thumb,
-when you see that all the exported functions are in upper case,
-the DLL is a 16 bit one and you can't use it.
-If their capitalization looks correct, then it's probably a 32 bit
-DLL.
-
-Also note that many Win32 APIs are exported twice, with the addition of
-a final B<A> or B<W> to their name, for - respectively - the ASCII
-and the Unicode version.
-When a function name is not found, Win32::API will actually append
-an B<A> to the name and try again; if the extension is built on a
-Unicode system, then it will try with the B<W> instead.
-So our function name will be:
-
- $GetTempPath = new Win32::API('kernel32', 'GetTempPath', ...
-
-In our case C<GetTempPath> is really loaded as C<GetTempPathA>.
-
-=item B<3.>
-
-The third parameter, the input parameter list, specifies how many
-arguments the function wants, and their types. It can be passed as
-a single string, in which each character represents one parameter,
-or as a list reference. The following forms are valid:
-
- "abcd"
- [a, b, c, d]
- \@LIST
-
-But those are not:
-
- (a, b, c, d)
- @LIST
-
-The number of characters, or elements in the list, specifies the number
-of parameters, and each character or element specifies the type of an
-argument; allowed types are:
-
-=over 4
-
-=item C<I>:
-value is an integer (int)
-
-=item C<N>:
-value is a number (long)
-
-=item C<F>:
-value is a floating point number (float)
-
-=item C<D>:
-value is a double precision number (double)
-
-=item C<C>:
-value is a char (char)
-
-=item C<P>:
-value is a pointer (to a string, structure, etc...)
-
-=item C<S>:
-value is a Win32::API::Struct object (see below)
-
-=item C<K>:
-value is a Win32::API::Callback object (see L<Win32::API::Callback>)
-
-=back
-
-Our function needs two parameters: a number (C<DWORD>) and a pointer to a
-string (C<LPSTR>):
-
- $GetTempPath = new Win32::API('kernel32', 'GetTempPath', 'NP', ...
-
-=item B<4.>
-
-The fourth and final parameter is the type of the value returned by the
-function. It can be one of the types seen above, plus another type named B<V>
-(for C<void>), used for functions that do not return a value.
-In our example the value returned by GetTempPath() is a C<DWORD>, so
-our return type will be B<N>:
-
- $GetTempPath = new Win32::API('kernel32', 'GetTempPath', 'NP', 'N');
-
-Now the line is complete, and the GetTempPath() API is ready to be used
-in Perl. Before calling it, you should test that $GetTempPath is
-C<defined>, otherwise either the function or the library could not be
-loaded; in this case, C<$!> will be set to the error message reported
-by Windows.
-Our definition, with error checking added, should then look like this:
-
- $GetTempPath = new Win32::API('kernel32', 'GetTempPath', 'NP', 'N');
- if(not defined $GetTempPath) {
- die "Can't import API GetTempPath: $!\n";
- }
-
-=back
-
-=head2 CALLING AN IMPORTED FUNCTION
-
-To effectively make a call to an imported function you must use the
-Call() method on the Win32::API object you created.
-Continuing with the example from the previous paragraph,
-the GetTempPath() API can be called using the method:
-
- $GetTempPath->Call(...
-
-Of course, parameters have to be passed as defined in the import phase.
-In particular, if the number of parameters does not match (in the example,
-if GetTempPath() is called with more or less than two parameters),
-Perl will C<croak> an error message and C<die>.
-
-The two parameters needed here are the length of the buffer
-that will hold the returned temporary path, and a pointer to the
-buffer itself.
-For numerical parameters, you can use either a constant expression
-or a variable, while B<for pointers you must use a variable name> (no
-Perl references, just a plain variable name).
-Also note that B<memory must be allocated before calling the function>,
-just like in C.
-For example, to pass a buffer of 80 characters to GetTempPath(),
-it must be initialized before with:
-
- $lpBuffer = " " x 80;
-
-This allocates a string of 80 characters. If you don't do so, you'll
-probably get C<Runtime exception> errors, and generally nothing will
-work. The call should therefore include:
-
- $lpBuffer = " " x 80;
- $GetTempPath->Call(80, $lpBuffer);
-
-And the result will be stored in the $lpBuffer variable.
-Note that you don't need to pass a reference to the variable
-(eg. you B<don't need> C<\$lpBuffer>), even if its value will be set
-by the function.
-
-A little problem here is that Perl does not trim the variable,
-so $lpBuffer will still contain 80 characters in return; the exceeding
-characters will be spaces, because we said C<" " x 80>.
-
-In this case we're lucky enough, because the value returned by
-the GetTempPath() function is the length of the string, so to get
-the actual temporary path we can write:
-
- $lpBuffer = " " x 80;
- $return = $GetTempPath->Call(80, $lpBuffer);
- $TempPath = substr($lpBuffer, 0, $return);
-
-If you don't know the length of the string, you can usually
-cut it at the C<\0> (ASCII zero) character, which is the string
-delimiter in C:
-
- $TempPath = ((split(/\0/, $lpBuffer))[0];
- # or
- $lpBuffer =~ s/\0.*$//;
-
-=head2 USING STRUCTURES
-
-Starting from version 0.40, Win32::API comes with a support package
-named Win32::API::Struct. The package is loaded automatically with
-Win32::API, so you don't need to use it explicitly.
-
-With this module you can conveniently define structures and use
-them as parameters to Win32::API functions. A short example follows:
-
-
- # the 'POINT' structure is defined in C as:
- # typedef struct {
- # LONG x;
- # LONG y;
- # } POINT;
-
-
- #### define the structure
- Win32::API::Struct->typedef( POINT => qw{
- LONG x;
- LONG y;
- });
-
- #### import an API that uses this structure
- Win32::API->Import('user32', 'BOOL GetCursorPos(LPPOINT lpPoint)');
-
- #### create a 'POINT' object
- my $pt = Win32::API::Struct->new('POINT');
-
- #### call the function passing our structure object
- GetCursorPos($pt);
-
- #### and now, access its members
- print "The cursor is at: $pt->{x}, $pt->{y}\n";
-
-Note that this works only when the function wants a
-B<pointer to a structure>: as you can see, our structure is named
-'POINT', but the API used 'LPPOINT'. 'LP' is automatically added at
-the beginning of the structure name when feeding it to a Win32::API
-call.
-
-For more information, see also L<Win32::API::Struct>.
-
-If you don't want (or can't) use the Win32::API::Struct facility,
-you can still use the low-level approach to use structures:
-
-
-=over 4
-
-=item 1.
-you have to pack() the required elements in a variable:
-
- $lpPoint = pack('LL', 0, 0); # store two LONGs
-
-=item 2. to access the values stored in a structure, unpack() it as required:
-
- ($x, $y) = unpack('LL', $lpPoint); # get the actual values
-
-=back
-
-
-The rest is left as an exercise to the reader...
-
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-
-=cut
-
-
diff --git a/Master/xemtex/perl/site/lib/Win32/API/Struct.pm b/Master/xemtex/perl/site/lib/Win32/API/Struct.pm
deleted file mode 100644
index acd160a95a8..00000000000
--- a/Master/xemtex/perl/site/lib/Win32/API/Struct.pm
+++ /dev/null
@@ -1,528 +0,0 @@
-package Win32::API::Struct;
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-#######################################################################
-#
-# Win32::API::Struct - Perl Win32 API struct Facility
-#
-# Version: 0.40
-# Date: 07 Mar 2003
-# Author: Aldo Calpini <dada@perl.it>
-# $Id: Struct.pm,v 1.0 2001/10/30 13:57:31 dada Exp $
-#######################################################################
-
-$VERSION = "0.40";
-
-use Win32::API::Type;
-
-use Carp;
-
-require Exporter; # to export the constants to the main:: space
-require DynaLoader; # to dynuhlode the module.
-@ISA = qw( Exporter DynaLoader );
-
-my %Known = ();
-
-sub DEBUG {
- if ($Win32::API::DEBUG) {
- printf @_ if @_ or return 1;
- } else {
- return 0;
- }
-}
-
-sub typedef {
- my $class = shift;
- my $struct = shift;
- my($type, $name);
- my $self = {
- align => undef,
- typedef => [],
- };
- while(defined($type = shift)) {
- $name = shift;
- $name =~ s/;$//;
- push( @{ $self->{typedef} }, [ recognize($type, $name) ] );
- }
-
- $Known{$struct} = $self;
- return 1;
-}
-
-
-sub recognize {
- my($type, $name) = @_;
- my($size, $packing);
- if(exists $Known{$type}) {
- $packing = ">";
- return $name, $packing, $type;
- } else {
- $packing = Win32::API::Type::packing($type);
- return undef unless defined $packing;
- if($name =~ s/\[(.*)\]$//) {
- $size = $1;
- $packing = $packing."*".$size;
- }
- DEBUG "(PM)Struct::recognize got '$name', '$type' -> '$packing'\n";
- return $name, $packing, $type;
- }
-}
-
-sub new {
- my $class = shift;
- my($type, $name);
- my $self = {
- typedef => [],
- };
- if($#_ == 0) {
- if(exists $Known{$_[0]}) {
- DEBUG "(PM)Struct::new: got '$_[0]'\n";
- $self->{typedef} = $Known{$_[0]}->{typedef};
- foreach my $member (@{ $self->{typedef} }) {
- ($name, $packing, $type) = @$member;
- if($packing eq '>') {
- $self->{$name} = Win32::API::Struct->new($type);
- }
- }
- $self->{__typedef__} = $_[0];
- } else {
- carp "Unknown Win32::API::Struct '$_[0]'";
- return undef;
- }
- } else {
- while(defined($type = shift)) {
- $name = shift;
- # print "new: found member $name ($type)\n";
- if(not exists $Win32::API::Type::Known{$type}) {
- warn "Unknown Win32::API::Struct type '$type'";
- return undef;
- } else {
- push( @{ $self->{typedef} }, [ $name, $Win32::API::Type::Known{$type}, $type ] );
- }
- }
- }
- return bless $self;
-}
-
-sub members {
- my $self = shift;
- return map {$_->[0]} @{ $self->{typedef} };
-}
-
-sub sizeof {
- my $self = shift;
- my $size = 0;
- my $align = 0;
- my $first = undef;
- foreach my $member (@{ $self->{typedef} }) {
- my($name, $packing, $type) = @$member;
-
- if(ref( $self->{$name} ) eq "Win32::API::Struct") {
- $size += $self->{$name}->sizeof();
- # $align = $self->{$name}->sizeof() if $self->{$name}->sizeof() > $align;
- } else {
- if($packing =~ /\w\*(\d+)/) {
- $size += Win32::API::Type::sizeof($type) * $1;
- $first = Win32::API::Type::sizeof($type) * $1 unless defined $first;
- DEBUG "(PM)Struct::sizeof: sizeof with member($name) now = ". $size. "\n";
- } else {
- $size += Win32::API::Type::sizeof($type);
- $first = Win32::API::Type::sizeof($type) unless defined $first;
- $align = Win32::API::Type::sizeof($type)
- if Win32::API::Type::sizeof($type) > $align;
- DEBUG "(PM)Struct::sizeof: sizeof with member($name) now = ". $size. "\n";
- }
- }
- }
- DEBUG "(PM)Struct::sizeof first=$first align=$align\n";
- #DEBUG "(PM)Struct::sizeof returning %d\n", $first + (scalar(@{ $self->{typedef} })-1) * $align;
- #return $first + (scalar(@{ $self->{typedef} })-1) * $align;
- DEBUG "(PM)Struct::sizeof returning %d\n", scalar(@{ $self->{typedef} }) * $align;
- if(defined $align and $align > 0) {
- return scalar(@{ $self->{typedef} }) * $align;
- } else {
- return $size;
- }
- return $size;
-}
-
-sub align {
- my $self = shift;
- my $align = shift;
-
- if(not defined $align) {
- return $self->{align} unless $self->{align} eq 'auto';
- $align = 0;
- foreach my $member (@{ $self->{typedef} }) {
- my($name, $packing, $type) = @$member;
-
- if(ref( $self->{$name} ) eq "Win32::API::Struct") {
- #### ????
- } else {
- if($packing =~ /\w\*(\d+)/) {
- #### ????
- } else {
- $align = Win32::API::Type::sizeof($type)
- if Win32::API::Type::sizeof($type) > $align;
- }
- }
- }
- return $align;
- } else {
- $self->{align} = $align;
-
- }
-}
-
-sub getPack {
- my $self = shift;
- my $packing = "";
- my($type, $name);
- my @items = ();
- my @recipients = ();
-
- my $align = $self->align();
-
- foreach my $member (@{ $self->{typedef} }) {
- ($name, $type, $orig) = @$member;
- if($type eq '>') {
- my($subpacking, $subitems, $subrecipients) = $self->{$name}->getPack();
-
- DEBUG "(PM)Struct::getPack($self->{__typedef__}) ++ $subpacking\n";
-
- $packing .= $subpacking;
- push(@items, @$subitems);
- push(@recipients, @$subrecipients);
- } else {
- if($type =~ /\w\*(\d+)/) {
- my $size = $1;
- $type = "a$size";
- }
-
- DEBUG "(PM)Struct::getPack($self->{__typedef__}) ++ $type\n";
-
- if($type eq 'p') {
- $type = "L";
- push(@items, Win32::API::PointerTo($self->{$name}));
- } else {
- push(@items, $self->{$name});
- }
- $packing .= $type;
-
- if($Win32::API::Type::PackSize{$type} < $align) {
- $packing .= ("x" x ($align - $Win32::API::Type::PackSize{$type}));
- }
-
- push(@recipients, $self);
- }
- }
- DEBUG "(PM)Struct::getPack: $self->{__typedef__}(buffer) = pack($packing, @items)\n";
- return($packing, [@items], [@recipients]);
-}
-
-
-sub Pack {
- my $self = shift;
- my($packing, $items, $recipients) = $self->getPack();
- DEBUG "(PM)Struct::Pack: $self->{__typedef__}(buffer) = pack($packing, @$items)\n";
- $self->{buffer} = pack($packing, @$items);
- if(DEBUG) {
- for my $i (0..$self->sizeof-1) {
- printf " %3d: 0x%02x\n", $i, ord(substr($self->{buffer}, $i, 1));
- }
- }
- $self->{buffer_recipients} = $recipients
-}
-
-sub getUnpack {
- my $self = shift;
- my $packing = "";
- my($type, $name);
- my @items = ();
- my $align = $self->align();
- foreach my $member (@{ $self->{typedef} }) {
- ($name, $type, $orig) = @$member;
- if($type eq '>') {
- my($subpacking, @subitems) = $self->{$name}->getUnpack();
-
- DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ $subpacking\n";
- $packing .= $subpacking;
-
-
- push(@items, @subitems);
- } else {
- if($type =~ /\w\*(\d+)/) {
- my $size = $1;
- $type = "Z$size";
- }
-
- #if($type eq 'p') {
- # $packing .= 'Z*';
- # DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ Z*\n";
- #} else {
- $packing .= $type;
- DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ $type\n";
- #}
- if($type ne 'p' and $type !~ /^Z(\d+)/ and $Win32::API::Type::PackSize{$type} < $align) {
- DEBUG "(PM)Struct::getUnpack %s(%d) < %d\n",
- $type, $Win32::API::Type::PackSize{$type}, $align
- ;
- $packing .= ("x" x ($align - $Win32::API::Type::PackSize{$type}));
- }
-
- push(@items, $name);
- }
- }
- DEBUG "(PM)Struct::getUnpack($self->{__typedef__}): unpack($packing, @items)\n";
- return($packing, @items);
-}
-
-sub Unpack {
- my $self = shift;
- my($packing, @items) = $self->getUnpack();
- my @itemvalue = unpack($packing, $self->{buffer});
- DEBUG "(PM)Struct::Unpack: unpack($packing, buffer) = @itemvalue\n";
- foreach my $i (0..$#items) {
- my $recipient = $self->{buffer_recipients}->[$i];
- DEBUG "(PM)Struct::Unpack: %s(%s) = '%s' (0x%08x)\n",
- $recipient->{__typedef__},
- $items[$i],
- $itemvalue[$i],
- $itemvalue[$i],
- ;
- $recipient->{$items[$i]} = $itemvalue[$i];
- DEBUG "(PM)Struct::Unpack: self.$items[$i] = $self->{$items[$i]}\n";
- }
-}
-
-sub FromMemory {
- my($self, $addr) = @_;
- DEBUG "(PM)Struct::FromMemory: doing Pack\n";
- $self->Pack();
- DEBUG "(PM)Struct::FromMemory: doing GetMemory( 0x%08x, %d )\n", $addr, $self->sizeof;
- $self->{buffer} = Win32::API::ReadMemory( $addr, $self->sizeof );
- $self->Unpack();
- DEBUG "(PM)Struct::FromMemory: doing Unpack\n";
- DEBUG "(PM)Struct::FromMemory: structure is now:\n";
- $self->Dump() if DEBUG;
- DEBUG "\n";
-}
-
-sub Dump {
- my $self = shift;
- my $prefix = shift;
- foreach my $member (@{ $self->{typedef} }) {
- ($name, $packing, $type) = @$member;
- if( ref($self->{$name}) ) {
- $self->{$name}->Dump($name);
- } else {
- printf "%-20s %-20s %-20s\n", $prefix, $name, $self->{$name};
- }
- }
-}
-
-
-sub is_known {
- my $name = shift;
- if(exists $Known{ $name }) {
- return 1;
- } else {
- if($name =~ s/^LP//) {
- return exists $Known{ $name };
- }
- return 0;
- }
-}
-
-sub TIEHASH {
- return Win32::API::Struct::new(@_);
-}
-
-sub EXISTS {
-
-}
-
-sub FETCH {
- my $self = shift;
- my $key = shift;
-
- if($key eq 'sizeof') {
- return $self->sizeof;
- }
- my @members = map { $_->[0] } @{ $self->{typedef} };
- if(grep(/^\Q$key\E$/, @members)) {
- return $self->{$key};
- } else {
- warn "'$key' is not a member of Win32::API::Struct $self->{__typedef__}";
- }
-}
-
-sub STORE {
- my $self = shift;
- my($key, $val) = @_;
- my @members = map { $_->[0] } @{ $self->{typedef} };
- if(grep(/^\Q$key\E$/, @members)) {
- $self->{$key} = $val;
- } else {
- warn "'$key' is not a member of Win32::API::Struct $self->{__typedef__}";
- }
-}
-
-sub FIRSTKEY {
- my $self = shift;
- my @members = map { $_->[0] } @{ $self->{typedef} };
- return $members[0];
-}
-
-sub NEXTKEY {
- my $self = shift;
- my $key = shift;
- my @members = map { $_->[0] } @{ $self->{typedef} };
- for my $i (0..$#members-1) {
- return $members[$i+1] if $members[$i] eq $key;
- }
- return undef;
-}
-
-1;
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API::Struct - C struct support package for Win32::API
-
-=head1 SYNOPSIS
-
- use Win32::API;
-
- Win32::API::Struct->typedef( 'POINT', qw(
- LONG x;
- LONG y;
- ));
-
- my $Point = Win32::API::Struct->new( 'POINT' );
- $Point->{x} = 1024;
- $Point->{y} = 768;
-
- #### alternatively
-
- tie %Point, 'Win32::API::Struct', 'POINT';
- $Point{x} = 1024;
- $Point{y} = 768;
-
-
-=head1 ABSTRACT
-
-This module enables you to define C structs for use with
-Win32::API.
-
-See L<Win32::API> for more info about its usage.
-
-=head1 DESCRIPTION
-
-This module is automatically imported by Win32::API, so you don't
-need to 'use' it explicitly. The main methods are C<typedef> and
-C<new>, which are documented below.
-
-=over 4
-
-=item C<typedef NAME, TYPE, MEMBER, TYPE, MEMBER, ...>
-
-This method defines a structure named C<NAME>. The definition consists
-of types and member names, just like in C. In fact, most of the
-times you can cut the C definition for a structure and paste it
-verbatim to your script, enclosing it in a C<qw()> block. The
-function takes care of removing the semicolon after the member
-name.
-
-The synopsis example could be written like this:
-
- Win32::API::Struct->typedef('POINT', 'LONG', 'x', 'LONG', 'y');
-
-But it could also be written like this (note the indirect object
-syntax), which is pretty cool:
-
- typedef Win32::API::Struct POINT => qw{
- LONG x;
- LONG y;
- };
-
-Also note that C<typedef> automatically defines an 'LPNAME' type,
-which holds a pointer to your structure. In the example above,
-'LPPOINT' is also defined and can be used in a call to a
-Win32::API (in fact, this is what you're really going to use when
-doing API calls).
-
-=item C<new NAME>
-
-This creates a structure (a Win32::API::Struct object) of the
-type C<NAME> (it must have been defined with C<typedef>). In Perl,
-when you create a structure, all the members are undefined. But
-when you use that structure in C (eg. a Win32::API call), you
-can safely assume that they will be treated as zero (or NULL).
-
-=item C<sizeof>
-
-This returns the size, in bytes, of the structure. Acts just like
-the C function of the same name. It is particularly useful for
-structures that need a member to be initialized to the structure's
-own size.
-
-=item C<align [SIZE]>
-
-Sets or returns the structure alignment (eg. how the structure is
-stored in memory). This is a very advanced option, and you normally
-don't need to mess with it.
-All structures in the Win32 Platform SDK should work without it.
-But if you define your own structure, you may need to give it an
-explicit alignment. In most cases, passing a C<SIZE> of 'auto'
-should keep the world happy.
-
-=back
-
-=head2 THE C<tie> INTERFACE
-
-Instead of creating an object with the C<new> method, you can
-tie a hash, which will hold the desired structure, using the
-C<tie> builtin function:
-
- tie %structure, Win32::API::Struct => 'NAME';
-
-The differences between the tied and non-tied approaches are:
-
-=over 4
-
-=item *
-with tied structures, you can access members directly as
-hash lookups, eg.
-
- # tied # non-tied
- $Point{x} vs. $Point->{x}
-
-=item *
-with tied structures, when you try to fetch or store a
-member that is not part of the structure, it will result
-in a warning, eg.
-
- print $Point{z};
- # this will warn: 'z' is not a member of Win32::API::Struct POINT
-
-=item *
-when you pass a tied structure as a Win32::API parameter,
-remember to backslash it, eg.
-
- # tied # non-tied
- GetCursorPos( \%Point ) vs. GetCursorPos( $Point )
-
-=back
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/Win32/API/Type.pm b/Master/xemtex/perl/site/lib/Win32/API/Type.pm
deleted file mode 100644
index 9ebe9ff57dc..00000000000
--- a/Master/xemtex/perl/site/lib/Win32/API/Type.pm
+++ /dev/null
@@ -1,440 +0,0 @@
-package Win32::API::Type;
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-#######################################################################
-#
-# Win32::API::Type - Perl Win32 API type definitions
-#
-# Version: 0.40
-# Date: 07 Mar 2003
-# Author: Aldo Calpini <dada@perl.it>
-# $Id: Type.pm,v 1.0 2001/10/30 13:57:31 dada Exp $
-#######################################################################
-
-$VERSION = "0.40";
-
-use Carp;
-
-require Exporter; # to export the constants to the main:: space
-require DynaLoader; # to dynuhlode the module.
-@ISA = qw( Exporter DynaLoader );
-
-use vars qw( %Known %PackSize %Modifier %Pointer );
-
-sub DEBUG {
- if ($Win32::API::DEBUG) {
- printf @_ if @_ or return 1;
- } else {
- return 0;
- }
-}
-
-%Known = ();
-%PackSize = ();
-%Modifier = ();
-%Pointer = ();
-
-INIT {
- my $section = 'nothing';
- foreach (<DATA>) {
- next if /^\s*#/ or /^\s*$/;
- chomp;
- if( /\[(.+)\]/) {
- $section = $1;
- next;
- }
- if($section eq 'TYPE') {
- my($name, $packing) = split(/\s+/);
- # DEBUG "(PM)Type::INIT: Known('$name') => '$packing'\n";
- $Known{$name} = $packing;
- } elsif($section eq 'PACKSIZE') {
- my($packing, $size) = split(/\s+/);
- # DEBUG "(PM)Type::INIT: PackSize('$packing') => '$size'\n";
- $PackSize{$packing} = $size;
- } elsif($section eq 'MODIFIER') {
- my($modifier, $mapto) = split(/\s+/, $_, 2);
- my %maps = ();
- foreach my $item (split(/\s+/, $mapto)) {
- my($k, $v) = split(/=/, $item);
- $maps{$k} = $v;
- }
- # DEBUG "(PM)Type::INIT: Modifier('$modifier') => '%maps'\n";
- $Modifier{$modifier} = { %maps };
- } elsif($section eq 'POINTER') {
- my($pointer, $pointto) = split(/\s+/);
- # DEBUG "(PM)Type::INIT: Pointer('$pointer') => '$pointto'\n";
- $Pointer{$pointer} = $pointto;
- }
- }
-}
-
-sub new {
- my $class = shift;
- my($type) = @_;
- my $packing = packing($type);
- my $size = sizeof($type);
- my $self = {
- type => $type,
- packing => $packing,
- size => $size,
- };
- return bless $self;
-}
-
-sub typedef {
- my $class = shift;
- my($name, $type) = @_;
- my $packing = packing($type, $name);
- DEBUG "(PM)Type::typedef: packing='$packing'\n";
- my $size = sizeof($type);
- $Known{$name} = $packing;
- return 1;
-}
-
-
-sub is_known {
- my $self = shift;
- my $type = shift;
- $type = $self unless defined $type;
- if(ref($type) =~ /Win32::API::Type/) {
- return 1;
- } else {
- return defined packing($type);
- }
-}
-
-sub sizeof {
- my $self = shift;
- my $type = shift;
- $type = $self unless defined $type;
- if(ref($type) =~ /Win32::API::Type/) {
- return $self->{size};
- } else {
- my $packing = packing($type);
- if($packing =~ /(\w)\*(\d+)/) {
- return $PackSize{ $1 } * $2;
- } else {
- return $PackSize{ $packing };
- }
- }
-}
-
-sub packing {
- # DEBUG "(PM)Type::packing: called by ". join("::", (caller(1))[0,3]). "\n";
- my $self = shift;
- my $is_pointer = 0;
- if(ref($self) =~ /Win32::API::Type/) {
- # DEBUG "(PM)Type::packing: got an object\n";
- return $self->{packing};
- }
- my $type = ($self eq 'Win32::API::Type') ? shift : $self;
- my $name = shift;
-
- # DEBUG "(PM)Type::packing: got '$type', '$name'\n";
- my($modifier, $size, $packing);
- if(exists $Pointer{$type}) {
- # DEBUG "(PM)Type::packing: got '$type', is really '$Pointer{$type}'\n";
- $type = $Pointer{$type};
- $is_pointer = 1;
- } elsif($type =~ /(\w+)\s+(\w+)/) {
- $modifier = $1;
- $type = $2;
- # DEBUG "(PM)packing: got modifier '$modifier', type '$type'\n";
- }
-
- $type =~ s/\*$//;
-
- if(exists $Known{$type}) {
- if(defined $name and $name =~ s/\[(.*)\]$//) {
- $size = $1;
- $packing = $Known{$type}[0]."*".$size;
- # DEBUG "(PM)Type::packing: composite packing: '$packing' '$size'\n";
- } else {
- $packing = $Known{$type};
- if($is_pointer and $packing eq 'c') {
- $packing = "p";
- }
- # DEBUG "(PM)Type::packing: simple packing: '$packing'\n";
- }
- if(defined $modifier and exists $Modifier{$modifier}->{$type}) {
- # DEBUG "(PM)Type::packing: applying modifier '$modifier' -> '$Modifier{$modifier}->{$type}'\n";
- $packing = $Modifier{$modifier}->{$type};
- }
- return $packing;
- } else {
- # DEBUG "(PM)Type::packing: NOT FOUND\n";
- return undef;
- }
-}
-
-
-sub is_pointer {
- my $self = shift;
- my $type = shift;
- $type = $self unless defined $type;
- if(ref($type) =~ /Win32::API::Type/) {
- return 1;
- } else {
- if($type =~ /\*$/) {
- return 1;
- } else {
- return exists $Pointer{$type};
- }
- }
-}
-
-sub Pack {
- my $type = $_[0];
-
- if(packing($type) eq 'c' and is_pointer($type)) {
- $_[1] = pack("Z*", $_[1]);
- return $_[1];
- }
- $_[1] = pack( packing($type), $_[1]);
- return $_[1];
-}
-
-sub Unpack {
- my $type = $_[0];
- if(packing($type) eq 'c' and is_pointer($type)) {
- DEBUG "(PM)Type::Unpack: got packing 'c', is a pointer, unpacking 'Z*' '$_[1]'\n";
- $_[1] = unpack("Z*", $_[1]);
- DEBUG "(PM)Type::Unpack: returning '$_[1]'\n";
- return $_[1];
- }
- DEBUG "(PM)Type::Unpack: unpacking '".packing($type)."' '$_[1]'\n";
- $_[1] = unpack( packing($type), $_[1]);
- DEBUG "(PM)Type::Unpack: returning '$_[1]'\n";
- return $_[1];
-}
-
-1;
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API::Type - C type support package for Win32::API
-
-=head1 SYNOPSIS
-
- use Win32::API;
-
- Win32::API::Type->typedef( 'my_number', 'LONG' );
-
-
-=head1 ABSTRACT
-
-This module is a support package for Win32::API that implements
-C types for the import with prototype functionality.
-
-See L<Win32::API> for more info about its usage.
-
-=head1 DESCRIPTION
-
-This module is automatically imported by Win32::API, so you don't
-need to 'use' it explicitly. These are the methods of this package:
-
-=over 4
-
-=item C<typedef NAME, TYPE>
-
-This method defines a new type named C<NAME>. This actually just
-creates an alias for the already-defined type C<TYPE>, which you
-can use as a parameter in a Win32::API call.
-
-=item C<sizeof TYPE>
-
-This returns the size, in bytes, of C<TYPE>. Acts just like
-the C function of the same name.
-
-=item C<is_known TYPE>
-
-Returns true if C<TYPE> is known by Win32::API::Type, false
-otherwise.
-
-=back
-
-=head2 SUPPORTED TYPES
-
-This module should recognize all the types defined in the
-Win32 Platform SDK header files.
-Please see the source for this module, in the C<__DATA__> section,
-for the full list.
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-
-=cut
-
-
-__DATA__
-
-[TYPE]
-ATOM s
-BOOL L
-BOOLEAN c
-BYTE C
-CHAR c
-COLORREF L
-DWORD L
-DWORD32 L
-DWORD64 Q
-FLOAT f
-HACCEL L
-HANDLE L
-HBITMAP L
-HBRUSH L
-HCOLORSPACE L
-HCONV L
-HCONVLIST L
-HCURSOR L
-HDC L
-HDDEDATA L
-HDESK L
-HDROP L
-HDWP L
-HENHMETAFILE L
-HFILE L
-HFONT L
-HGDIOBJ L
-HGLOBAL L
-HHOOK L
-HICON L
-HIMC L
-HINSTANCE L
-HKEY L
-HKL L
-HLOCAL L
-HMENU L
-HMETAFILE L
-HMODULE L
-HPALETTE L
-HPEN L
-HRGN L
-HRSRC L
-HSZ L
-HWINSTA L
-HWND L
-INT i
-INT32 i
-INT64 q
-LANGID s
-LCID L
-LCSCSTYPE L
-LCSGAMUTMATCH L
-LCTYPE L
-LONG l
-LONG32 l
-LONG64 q
-LONGLONG q
-LPARAM L
-LRESULT L
-REGSAM L
-SC_HANDLE L
-SC_LOCK L
-SERVICE_STATUS_HANDLE L
-SHORT s
-SIZE_T L
-SSIZE_T L
-TBYTE c
-TCHAR C
-UCHAR C
-UINT I
-UINT_PTR L
-UINT32 I
-UINT64 Q
-ULONG L
-ULONG32 L
-ULONG64 Q
-ULONGLONG Q
-USHORT S
-WCHAR S
-WORD S
-WPARAM L
-VOID c
-
-int i
-long l
-float f
-double d
-char c
-
-#CRITICAL_SECTION 24 -- a structure
-#LUID ? 8 -- a structure
-#VOID 0
-#CONST 4
-#FILE_SEGMENT_ELEMENT 8 -- a structure
-
-[PACKSIZE]
-c 1
-C 1
-d 8
-f 4
-i 4
-I 4
-l 4
-L 4
-q 8
-Q 8
-s 2
-S 2
-p 4
-
-[MODIFIER]
-unsigned int=I long=L short=S char=C
-
-[POINTER]
-INT_PTR INT
-LPBOOL BOOL
-LPBYTE BYTE
-LPCOLORREF COLORREF
-LPCSTR CHAR
-#LPCTSTR CHAR or WCHAR
-LPCTSTR CHAR
-LPCVOID any
-LPCWSTR WCHAR
-LPDWORD DWORD
-LPHANDLE HANDLE
-LPINT INT
-LPLONG LONG
-LPSTR CHAR
-#LPTSTR CHAR or WCHAR
-LPTSTR CHAR
-LPVOID VOID
-LPWORD WORD
-LPWSTR WCHAR
-
-PBOOL BOOL
-PBOOLEAN BOOL
-PBYTE BYTE
-PCHAR CHAR
-PCSTR CSTR
-PCWCH CWCH
-PCWSTR CWSTR
-PDWORD DWORD
-PFLOAT FLOAT
-PHANDLE HANDLE
-PHKEY HKEY
-PINT INT
-PLCID LCID
-PLONG LONG
-PSHORT SHORT
-PSTR CHAR
-#PTBYTE TBYTE --
-#PTCHAR TCHAR --
-#PTSTR CHAR or WCHAR
-PTSTR CHAR
-PUCHAR UCHAR
-PUINT UINT
-PULONG ULONG
-PUSHORT USHORT
-PVOID VOID
-PWCHAR WCHAR
-PWORD WORD
-PWSTR WCHAR
diff --git a/Master/xemtex/perl/site/lib/XML/Parser.pm b/Master/xemtex/perl/site/lib/XML/Parser.pm
deleted file mode 100644
index f150b615a2d..00000000000
--- a/Master/xemtex/perl/site/lib/XML/Parser.pm
+++ /dev/null
@@ -1,1089 +0,0 @@
-# XML::Parser
-#
-# Copyright (c) 1998-2000 Larry Wall and Clark Cooper
-# All rights reserved.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package XML::Parser;
-
-use Carp;
-use IO::File;
-
-BEGIN {
- require XML::Parser::Expat;
- $VERSION = '2.31';
- die "Parser.pm and Expat.pm versions don't match"
- unless $VERSION eq $XML::Parser::Expat::VERSION;
-}
-
-use strict;
-
-use vars qw($VERSION %Built_In_Styles $LWP_load_failed);
-
-$LWP_load_failed = 0;
-
-sub new {
- my ($class, %args) = @_;
- my $style = $args{Style};
-
- my $nonexopt = $args{Non_Expat_Options} ||= {};
-
- $nonexopt->{Style} = 1;
- $nonexopt->{Non_Expat_Options} = 1;
- $nonexopt->{Handlers} = 1;
- $nonexopt->{_HNDL_TYPES} = 1;
- $nonexopt->{NoLWP} = 1;
-
- $args{NoLWP} = 1;
-
- $args{_HNDL_TYPES} = {%XML::Parser::Expat::Handler_Setters};
- $args{_HNDL_TYPES}->{Init} = 1;
- $args{_HNDL_TYPES}->{Final} = 1;
-
- $args{Handlers} ||= {};
- my $handlers = $args{Handlers};
-
- if (defined($style)) {
- my $stylepkg = $style;
-
- if ($stylepkg !~ /::/) {
- $stylepkg = "\u$style";
-
- # I'm using the Built_In_Styles hash to define
- # valid internal styles, since a style doesn't
- # need to define any particular Handler to be valid.
- # So I can't check for the existence of a particular sub.
-
- croak "Undefined style: $style"
- unless defined($Built_In_Styles{$stylepkg});
- $stylepkg = 'XML::Parser::' . $stylepkg;
- }
-
- my $htype;
- foreach $htype (keys %{$args{_HNDL_TYPES}}) {
- # Handlers explicity given override
- # handlers from the Style package
- unless (defined($handlers->{$htype})) {
-
- # A handler in the style package must either have
- # exactly the right case as the type name or a
- # completely lower case version of it.
-
- my $hname = "${stylepkg}::$htype";
- if (defined(&$hname)) {
- $handlers->{$htype} = \&$hname;
- next;
- }
-
- $hname = "${stylepkg}::\L$htype";
- if (defined(&$hname)) {
- $handlers->{$htype} = \&$hname;
- next;
- }
- }
- }
- }
-
- unless (defined($handlers->{ExternEnt})
- or defined ($handlers->{ExternEntFin})) {
-
- if ($args{NoLWP} or $LWP_load_failed) {
- $handlers->{ExternEnt} = \&file_ext_ent_handler;
- $handlers->{ExternEntFin} = \&file_ext_ent_cleanup;
- }
- else {
- # The following just bootstraps the real LWP external entity
- # handler
-
- $handlers->{ExternEnt} = \&initial_ext_ent_handler;
-
- # No cleanup function available until LWPExternEnt.pl loaded
- }
- }
-
- $args{Pkg} ||= caller;
- bless \%args, $class;
-} # End of new
-
-sub setHandlers {
- my ($self, @handler_pairs) = @_;
-
- croak("Uneven number of arguments to setHandlers method")
- if (int(@handler_pairs) & 1);
-
- my @ret;
- while (@handler_pairs) {
- my $type = shift @handler_pairs;
- my $handler = shift @handler_pairs;
- unless (defined($self->{_HNDL_TYPES}->{$type})) {
- my @types = sort keys %{$self->{_HNDL_TYPES}};
-
- croak("Unknown Parser handler type: $type\n Valid types: @types");
- }
- push(@ret, $type, $self->{Handlers}->{$type});
- $self->{Handlers}->{$type} = $handler;
- }
-
- return @ret;
-} # End of setHandlers
-
-sub parse_start {
- my $self = shift;
- my @expat_options = ();
-
- my ($key, $val);
- while (($key, $val) = each %{$self}) {
- push (@expat_options, $key, $val)
- unless exists $self->{Non_Expat_Options}->{$key};
- }
-
- my %handlers = %{$self->{Handlers}};
- my $init = delete $handlers{Init};
- my $final = delete $handlers{Final};
-
- my $expatnb = new XML::Parser::ExpatNB(@expat_options, @_);
- $expatnb->setHandlers(%handlers);
-
- &$init($expatnb)
- if defined($init);
-
- $expatnb->{_State_} = 1;
-
- $expatnb->{FinalHandler} = $final
- if defined($final);
-
- return $expatnb;
-}
-
-sub parse {
- my $self = shift;
- my $arg = shift;
- my @expat_options = ();
- my ($key, $val);
- while (($key, $val) = each %{$self}) {
- push(@expat_options, $key, $val)
- unless exists $self->{Non_Expat_Options}->{$key};
- }
-
- my $expat = new XML::Parser::Expat(@expat_options, @_);
- my %handlers = %{$self->{Handlers}};
- my $init = delete $handlers{Init};
- my $final = delete $handlers{Final};
-
- $expat->setHandlers(%handlers);
-
- if ($self->{Base}) {
- $expat->base($self->{Base});
- }
-
- &$init($expat)
- if defined($init);
-
- my @result = ();
- my $result;
- eval {
- $result = $expat->parse($arg);
- };
- my $err = $@;
- if ($err) {
- $expat->release;
- die $err;
- }
-
- if ($result and defined($final)) {
- if (wantarray) {
- @result = &$final($expat);
- }
- else {
- $result = &$final($expat);
- }
- }
-
- $expat->release;
-
- return unless defined wantarray;
- return wantarray ? @result : $result;
-} # End of parse
-
-sub parsestring {
- my $self = shift;
- $self->parse(@_);
-} # End of parsestring
-
-sub parsefile {
- my $self = shift;
- my $file = shift;
- local(*FILE);
- open(FILE, $file) or croak "Couldn't open $file:\n$!";
- binmode(FILE);
- my @ret;
- my $ret;
-
- $self->{Base} = $file;
-
- if (wantarray) {
- eval {
- @ret = $self->parse(*FILE, @_);
- };
- }
- else {
- eval {
- $ret = $self->parse(*FILE, @_);
- };
- }
- my $err = $@;
- close(FILE);
- die $err if $err;
-
- return unless defined wantarray;
- return wantarray ? @ret : $ret;
-} # End of parsefile
-
-
-sub initial_ext_ent_handler {
- # This just bootstraps in the real lwp_ext_ent_handler which
- # also loads the URI and LWP modules.
-
- unless ($LWP_load_failed) {
- local($^W) = 0;
-
- my $stat =
- eval {
- require('XML/Parser/LWPExternEnt.pl');
- };
-
- if ($stat) {
- $_[0]->setHandlers(ExternEnt => \&lwp_ext_ent_handler,
- ExternEntFin => \&lwp_ext_ent_cleanup);
-
- goto &lwp_ext_ent_handler;
- }
-
- # Failed to load lwp handler, act as if NoLWP
-
- $LWP_load_failed = 1;
-
- my $cmsg = "Couldn't load LWP based external entity handler\n";
- $cmsg .= "Switching to file-based external entity handler\n";
- $cmsg .= " (To avoid this message, use NoLWP option to XML::Parser)\n";
- warn($cmsg);
- }
-
- $_[0]->setHandlers(ExternEnt => \&file_ext_ent_handler,
- ExternEntFin => \&file_ext_ent_cleanup);
- goto &file_ext_ent_handler;
-
-} # End initial_ext_ent_handler
-
-sub file_ext_ent_handler {
- my ($xp, $base, $path) = @_;
-
- # Prepend base only for relative paths
-
- if (defined($base)
- and not ($path =~ m!^(?:[\\/]|\w+:)!))
- {
- my $newpath = $base;
- $newpath =~ s![^\\/:]*$!$path!;
- $path = $newpath;
- }
-
- if ($path =~ /^\s*[|>+]/
- or $path =~ /\|\s*$/) {
- $xp->{ErrorMessage}
- .= "System ID ($path) contains Perl IO control characters";
- return undef;
- }
-
- my $fh = new IO::File($path);
- unless (defined $fh) {
- $xp->{ErrorMessage}
- .= "Failed to open $path:\n$!";
- return undef;
- }
-
- $xp->{_BaseStack} ||= [];
- $xp->{_FhStack} ||= [];
-
- push(@{$xp->{_BaseStack}}, $base);
- push(@{$xp->{_FhStack}}, $fh);
-
- $xp->base($path);
-
- return $fh;
-} # End file_ext_ent_handler
-
-sub file_ext_ent_cleanup {
- my ($xp) = @_;
-
- my $fh = pop(@{$xp->{_FhStack}});
- $fh->close;
-
- my $base = pop(@{$xp->{_BaseStack}});
- $xp->base($base);
-} # End file_ext_ent_cleanup
-
-###################################################################
-
-package XML::Parser::Debug;
-$XML::Parser::Built_In_Styles{Debug} = 1;
-
-sub Start {
- my $expat = shift;
- my $tag = shift;
- print STDERR "@{$expat->{Context}} \\\\ (@_)\n";
-}
-
-sub End {
- my $expat = shift;
- my $tag = shift;
- print STDERR "@{$expat->{Context}} //\n";
-}
-
-sub Char {
- my $expat = shift;
- my $text = shift;
- $text =~ s/([\x80-\xff])/sprintf "#x%X;", ord $1/eg;
- $text =~ s/([\t\n])/sprintf "#%d;", ord $1/eg;
- print STDERR "@{$expat->{Context}} || $text\n";
-}
-
-sub Proc {
- my $expat = shift;
- my $target = shift;
- my $text = shift;
- my @foo = @{$expat->{Context}};
- print STDERR "@foo $target($text)\n";
-}
-
-###################################################################
-
-package XML::Parser::Subs;
-$XML::Parser::Built_In_Styles{Subs} = 1;
-
-sub Start {
- no strict 'refs';
- my $expat = shift;
- my $tag = shift;
- my $sub = $expat->{Pkg} . "::$tag";
- eval { &$sub($expat, $tag, @_) };
-}
-
-sub End {
- no strict 'refs';
- my $expat = shift;
- my $tag = shift;
- my $sub = $expat->{Pkg} . "::${tag}_";
- eval { &$sub($expat, $tag) };
-}
-
-###################################################################
-
-package XML::Parser::Tree;
-$XML::Parser::Built_In_Styles{Tree} = 1;
-
-sub Init {
- my $expat = shift;
- $expat->{Lists} = [];
- $expat->{Curlist} = $expat->{Tree} = [];
-}
-
-sub Start {
- my $expat = shift;
- my $tag = shift;
- my $newlist = [ { @_ } ];
- push @{ $expat->{Lists} }, $expat->{Curlist};
- push @{ $expat->{Curlist} }, $tag => $newlist;
- $expat->{Curlist} = $newlist;
-}
-
-sub End {
- my $expat = shift;
- my $tag = shift;
- $expat->{Curlist} = pop @{ $expat->{Lists} };
-}
-
-sub Char {
- my $expat = shift;
- my $text = shift;
- my $clist = $expat->{Curlist};
- my $pos = $#$clist;
-
- if ($pos > 0 and $clist->[$pos - 1] eq '0') {
- $clist->[$pos] .= $text;
- } else {
- push @$clist, 0 => $text;
- }
-}
-
-sub Final {
- my $expat = shift;
- delete $expat->{Curlist};
- delete $expat->{Lists};
- $expat->{Tree};
-}
-
-###################################################################
-
-package XML::Parser::Objects;
-$XML::Parser::Built_In_Styles{Objects} = 1;
-
-sub Init {
- my $expat = shift;
- $expat->{Lists} = [];
- $expat->{Curlist} = $expat->{Tree} = [];
-}
-
-sub Start {
- my $expat = shift;
- my $tag = shift;
- my $newlist = [ ];
- my $class = "${$expat}{Pkg}::$tag";
- my $newobj = bless { @_, Kids => $newlist }, $class;
- push @{ $expat->{Lists} }, $expat->{Curlist};
- push @{ $expat->{Curlist} }, $newobj;
- $expat->{Curlist} = $newlist;
-}
-
-sub End {
- my $expat = shift;
- my $tag = shift;
- $expat->{Curlist} = pop @{ $expat->{Lists} };
-}
-
-sub Char {
- my $expat = shift;
- my $text = shift;
- my $class = "${$expat}{Pkg}::Characters";
- my $clist = $expat->{Curlist};
- my $pos = $#$clist;
-
- if ($pos >= 0 and ref($clist->[$pos]) eq $class) {
- $clist->[$pos]->{Text} .= $text;
- } else {
- push @$clist, bless { Text => $text }, $class;
- }
-}
-
-sub Final {
- my $expat = shift;
- delete $expat->{Curlist};
- delete $expat->{Lists};
- $expat->{Tree};
-}
-
-################################################################
-
-package XML::Parser::Stream;
-$XML::Parser::Built_In_Styles{Stream} = 1;
-
-# This style invented by Tim Bray <tbray@textuality.com>
-
-sub Init {
- no strict 'refs';
- my $expat = shift;
- $expat->{Text} = '';
- my $sub = $expat->{Pkg} ."::StartDocument";
- &$sub($expat)
- if defined(&$sub);
-}
-
-sub Start {
- no strict 'refs';
- my $expat = shift;
- my $type = shift;
-
- doText($expat);
- $_ = "<$type";
-
- %_ = @_;
- while (@_) {
- $_ .= ' ' . shift() . '="' . shift() . '"';
- }
- $_ .= '>';
-
- my $sub = $expat->{Pkg} . "::StartTag";
- if (defined(&$sub)) {
- &$sub($expat, $type);
- } else {
- print;
- }
-}
-
-sub End {
- no strict 'refs';
- my $expat = shift;
- my $type = shift;
-
- # Set right context for Text handler
- push(@{$expat->{Context}}, $type);
- doText($expat);
- pop(@{$expat->{Context}});
-
- $_ = "</$type>";
-
- my $sub = $expat->{Pkg} . "::EndTag";
- if (defined(&$sub)) {
- &$sub($expat, $type);
- } else {
- print;
- }
-}
-
-sub Char {
- my $expat = shift;
- $expat->{Text} .= shift;
-}
-
-sub Proc {
- no strict 'refs';
- my $expat = shift;
- my $target = shift;
- my $text = shift;
-
- doText($expat);
-
- $_ = "<?$target $text?>";
-
- my $sub = $expat->{Pkg} . "::PI";
- if (defined(&$sub)) {
- &$sub($expat, $target, $text);
- } else {
- print;
- }
-}
-
-sub Final {
- no strict 'refs';
- my $expat = shift;
- my $sub = $expat->{Pkg} . "::EndDocument";
- &$sub($expat)
- if defined(&$sub);
-}
-
-sub doText {
- no strict 'refs';
- my $expat = shift;
- $_ = $expat->{Text};
-
- if (length($_)) {
- my $sub = $expat->{Pkg} . "::Text";
- if (defined(&$sub)) {
- &$sub($expat);
- } else {
- print;
- }
-
- $expat->{Text} = '';
- }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-XML::Parser - A perl module for parsing XML documents
-
-=head1 SYNOPSIS
-
- use XML::Parser;
-
- $p1 = new XML::Parser(Style => 'Debug');
- $p1->parsefile('REC-xml-19980210.xml');
- $p1->parse('<foo id="me">Hello World</foo>');
-
- # Alternative
- $p2 = new XML::Parser(Handlers => {Start => \&handle_start,
- End => \&handle_end,
- Char => \&handle_char});
- $p2->parse($socket);
-
- # Another alternative
- $p3 = new XML::Parser(ErrorContext => 2);
-
- $p3->setHandlers(Char => \&text,
- Default => \&other);
-
- open(FOO, 'xmlgenerator |');
- $p3->parse(*FOO, ProtocolEncoding => 'ISO-8859-1');
- close(FOO);
-
- $p3->parsefile('junk.xml', ErrorContext => 3);
-
-=begin man
-.ds PI PI
-
-=end man
-
-=head1 DESCRIPTION
-
-This module provides ways to parse XML documents. It is built on top of
-L<XML::Parser::Expat>, which is a lower level interface to James Clark's
-expat library. Each call to one of the parsing methods creates a new
-instance of XML::Parser::Expat which is then used to parse the document.
-Expat options may be provided when the XML::Parser object is created.
-These options are then passed on to the Expat object on each parse call.
-They can also be given as extra arguments to the parse methods, in which
-case they override options given at XML::Parser creation time.
-
-The behavior of the parser is controlled either by C<L</Style>> and/or
-C<L</Handlers>> options, or by L</setHandlers> method. These all provide
-mechanisms for XML::Parser to set the handlers needed by XML::Parser::Expat.
-If neither C<Style> nor C<Handlers> are specified, then parsing just
-checks the document for being well-formed.
-
-When underlying handlers get called, they receive as their first parameter
-the I<Expat> object, not the Parser object.
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-This is a class method, the constructor for XML::Parser. Options are passed
-as keyword value pairs. Recognized options are:
-
-=over 4
-
-=item * Style
-
-This option provides an easy way to create a given style of parser. The
-built in styles are: L<"Debug">, L<"Subs">, L<"Tree">, L<"Objects">,
-and L<"Stream">.
-Custom styles can be provided by giving a full package name containing
-at least one '::'. This package should then have subs defined for each
-handler it wishes to have installed. See L<"STYLES"> below
-for a discussion of each built in style.
-
-=item * Handlers
-
-When provided, this option should be an anonymous hash containing as
-keys the type of handler and as values a sub reference to handle that
-type of event. All the handlers get passed as their 1st parameter the
-instance of expat that is parsing the document. Further details on
-handlers can be found in L<"HANDLERS">. Any handler set here
-overrides the corresponding handler set with the Style option.
-
-=item * Pkg
-
-Some styles will refer to subs defined in this package. If not provided,
-it defaults to the package which called the constructor.
-
-=item * ErrorContext
-
-This is an Expat option. When this option is defined, errors are reported
-in context. The value should be the number of lines to show on either side
-of the line in which the error occurred.
-
-=item * ProtocolEncoding
-
-This is an Expat option. This sets the protocol encoding name. It defaults
-to none. The built-in encodings are: C<UTF-8>, C<ISO-8859-1>, C<UTF-16>, and
-C<US-ASCII>. Other encodings may be used if they have encoding maps in one
-of the directories in the @Encoding_Path list. Check L<"ENCODINGS"> for
-more information on encoding maps. Setting the protocol encoding overrides
-any encoding in the XML declaration.
-
-=item * Namespaces
-
-This is an Expat option. If this is set to a true value, then namespace
-processing is done during the parse. See L<XML::Parser::Expat/"Namespaces">
-for further discussion of namespace processing.
-
-=item * NoExpand
-
-This is an Expat option. Normally, the parser will try to expand references
-to entities defined in the internal subset. If this option is set to a true
-value, and a default handler is also set, then the default handler will be
-called when an entity reference is seen in text. This has no effect if a
-default handler has not been registered, and it has no effect on the expansion
-of entity references inside attribute values.
-
-=item * Stream_Delimiter
-
-This is an Expat option. It takes a string value. When this string is found
-alone on a line while parsing from a stream, then the parse is ended as if it
-saw an end of file. The intended use is with a stream of xml documents in a
-MIME multipart format. The string should not contain a trailing newline.
-
-=item * ParseParamEnt
-
-This is an Expat option. Unless standalone is set to "yes" in the XML
-declaration, setting this to a true value allows the external DTD to be read,
-and parameter entities to be parsed and expanded.
-
-=item * NoLWP
-
-This option has no effect if the ExternEnt or ExternEntFin handlers are
-directly set. Otherwise, if true, it forces the use of a file based external
-entity handler.
-
-=item * Non-Expat-Options
-
-If provided, this should be an anonymous hash whose keys are options that
-shouldn't be passed to Expat. This should only be of concern to those
-subclassing XML::Parser.
-
-=back
-
-=item setHandlers(TYPE, HANDLER [, TYPE, HANDLER [...]])
-
-This method registers handlers for various parser events. It overrides any
-previous handlers registered through the Style or Handler options or through
-earlier calls to setHandlers. By providing a false or undefined value as
-the handler, the existing handler can be unset.
-
-This method returns a list of type, handler pairs corresponding to the
-input. The handlers returned are the ones that were in effect prior to
-the call.
-
-See a description of the handler types in L<"HANDLERS">.
-
-=item parse(SOURCE [, OPT => OPT_VALUE [...]])
-
-The SOURCE parameter should either be a string containing the whole XML
-document, or it should be an open IO::Handle. Constructor options to
-XML::Parser::Expat given as keyword-value pairs may follow the SOURCE
-parameter. These override, for this call, any options or attributes passed
-through from the XML::Parser instance.
-
-A die call is thrown if a parse error occurs. Otherwise it will return 1
-or whatever is returned from the B<Final> handler, if one is installed.
-In other words, what parse may return depends on the style.
-
-=item parsestring
-
-This is just an alias for parse for backwards compatibility.
-
-=item parsefile(FILE [, OPT => OPT_VALUE [...]])
-
-Open FILE for reading, then call parse with the open handle. The file
-is closed no matter how parse returns. Returns what parse returns.
-
-=item parse_start([ OPT => OPT_VALUE [...]])
-
-Create and return a new instance of XML::Parser::ExpatNB. Constructor
-options may be provided. If an init handler has been provided, it is
-called before returning the ExpatNB object. Documents are parsed by
-making incremental calls to the parse_more method of this object, which
-takes a string. A single call to the parse_done method of this object,
-which takes no arguments, indicates that the document is finished.
-
-If there is a final handler installed, it is executed by the parse_done
-method before returning and the parse_done method returns whatever is
-returned by the final handler.
-
-=back
-
-=head1 HANDLERS
-
-Expat is an event based parser. As the parser recognizes parts of the
-document (say the start or end tag for an XML element), then any handlers
-registered for that type of an event are called with suitable parameters.
-All handlers receive an instance of XML::Parser::Expat as their first
-argument. See L<XML::Parser::Expat/"METHODS"> for a discussion of the
-methods that can be called on this object.
-
-=head2 Init (Expat)
-
-This is called just before the parsing of the document starts.
-
-=head2 Final (Expat)
-
-This is called just after parsing has finished, but only if no errors
-occurred during the parse. Parse returns what this returns.
-
-=head2 Start (Expat, Element [, Attr, Val [,...]])
-
-This event is generated when an XML start tag is recognized. Element is the
-name of the XML element type that is opened with the start tag. The Attr &
-Val pairs are generated for each attribute in the start tag.
-
-=head2 End (Expat, Element)
-
-This event is generated when an XML end tag is recognized. Note that
-an XML empty tag (<foo/>) generates both a start and an end event.
-
-=head2 Char (Expat, String)
-
-This event is generated when non-markup is recognized. The non-markup
-sequence of characters is in String. A single non-markup sequence of
-characters may generate multiple calls to this handler. Whatever the
-encoding of the string in the original document, this is given to the
-handler in UTF-8.
-
-=head2 Proc (Expat, Target, Data)
-
-This event is generated when a processing instruction is recognized.
-
-=head2 Comment (Expat, Data)
-
-This event is generated when a comment is recognized.
-
-=head2 CdataStart (Expat)
-
-This is called at the start of a CDATA section.
-
-=head2 CdataEnd (Expat)
-
-This is called at the end of a CDATA section.
-
-=head2 Default (Expat, String)
-
-This is called for any characters that don't have a registered handler.
-This includes both characters that are part of markup for which no
-events are generated (markup declarations) and characters that
-could generate events, but for which no handler has been registered.
-
-Whatever the encoding in the original document, the string is returned to
-the handler in UTF-8.
-
-=head2 Unparsed (Expat, Entity, Base, Sysid, Pubid, Notation)
-
-This is called for a declaration of an unparsed entity. Entity is the name
-of the entity. Base is the base to be used for resolving a relative URI.
-Sysid is the system id. Pubid is the public id. Notation is the notation
-name. Base and Pubid may be undefined.
-
-=head2 Notation (Expat, Notation, Base, Sysid, Pubid)
-
-This is called for a declaration of notation. Notation is the notation name.
-Base is the base to be used for resolving a relative URI. Sysid is the system
-id. Pubid is the public id. Base, Sysid, and Pubid may all be undefined.
-
-=head2 ExternEnt (Expat, Base, Sysid, Pubid)
-
-This is called when an external entity is referenced. Base is the base to be
-used for resolving a relative URI. Sysid is the system id. Pubid is the public
-id. Base, and Pubid may be undefined.
-
-This handler should either return a string, which represents the contents of
-the external entity, or return an open filehandle that can be read to obtain
-the contents of the external entity, or return undef, which indicates the
-external entity couldn't be found and will generate a parse error.
-
-If an open filehandle is returned, it must be returned as either a glob
-(*FOO) or as a reference to a glob (e.g. an instance of IO::Handle).
-
-A default handler is installed for this event. The default handler is
-XML::Parser::lwp_ext_ent_handler unless the NoLWP option was provided with
-a true value, otherwise XML::Parser::file_ext_ent_handler is the default
-handler for external entities. Even without the NoLWP option, if the
-URI or LWP modules are missing, the file based handler ends up being used
-after giving a warning on the first external entity reference.
-
-The LWP external entity handler will use proxies defined in the environment
-(http_proxy, ftp_proxy, etc.).
-
-Please note that the LWP external entity handler reads the entire
-entity into a string and returns it, where as the file handler opens a
-filehandle.
-
-Also note that the file external entity handler will likely choke on
-absolute URIs or file names that don't fit the conventions of the local
-operating system.
-
-The expat base method can be used to set a basename for
-relative pathnames. If no basename is given, or if the basename is itself
-a relative name, then it is relative to the current working directory.
-
-=head2 ExternEntFin (Expat)
-
-This is called after parsing an external entity. It's not called unless
-an ExternEnt handler is also set. There is a default handler installed
-that pairs with the default ExternEnt handler.
-
-If you're going to install your own ExternEnt handler, then you should
-set (or unset) this handler too.
-
-=head2 Entity (Expat, Name, Val, Sysid, Pubid, Ndata, IsParam)
-
-This is called when an entity is declared. For internal entities, the Val
-parameter will contain the value and the remaining three parameters will be
-undefined. For external entities, the Val parameter will be undefined, the
-Sysid parameter will have the system id, the Pubid parameter will have the
-public id if it was provided (it will be undefined otherwise), the Ndata
-parameter will contain the notation for unparsed entities. If this is a
-parameter entity declaration, then the IsParam parameter is true.
-
-Note that this handler and the Unparsed handler above overlap. If both are
-set, then this handler will not be called for unparsed entities.
-
-=head2 Element (Expat, Name, Model)
-
-The element handler is called when an element declaration is found. Name
-is the element name, and Model is the content model as an XML::Parser::Content
-object. See L<XML::Parser::Expat/"XML::Parser::ContentModel Methods">
-for methods available for this class.
-
-=head2 Attlist (Expat, Elname, Attname, Type, Default, Fixed)
-
-This handler is called for each attribute in an ATTLIST declaration.
-So an ATTLIST declaration that has multiple attributes will generate multiple
-calls to this handler. The Elname parameter is the name of the element with
-which the attribute is being associated. The Attname parameter is the name
-of the attribute. Type is the attribute type, given as a string. Default is
-the default value, which will either be "#REQUIRED", "#IMPLIED" or a quoted
-string (i.e. the returned string will begin and end with a quote character).
-If Fixed is true, then this is a fixed attribute.
-
-=head2 Doctype (Expat, Name, Sysid, Pubid, Internal)
-
-This handler is called for DOCTYPE declarations. Name is the document type
-name. Sysid is the system id of the document type, if it was provided,
-otherwise it's undefined. Pubid is the public id of the document type,
-which will be undefined if no public id was given. Internal is the internal
-subset, given as a string. If there was no internal subset, it will be
-undefined. Internal will contain all whitespace, comments, processing
-instructions, and declarations seen in the internal subset. The declarations
-will be there whether or not they have been processed by another handler
-(except for unparsed entities processed by the Unparsed handler). However,
-comments and processing instructions will not appear if they've been processed
-by their respective handlers.
-
-=head2 * DoctypeFin (Parser)
-
-This handler is called after parsing of the DOCTYPE declaration has finished,
-including any internal or external DTD declarations.
-
-=head2 XMLDecl (Expat, Version, Encoding, Standalone)
-
-This handler is called for xml declarations. Version is a string containg
-the version. Encoding is either undefined or contains an encoding string.
-Standalone will be either true, false, or undefined if the standalone attribute
-is yes, no, or not made respectively.
-
-=head1 STYLES
-
-=head2 Debug
-
-This just prints out the document in outline form. Nothing special is
-returned by parse.
-
-=head2 Subs
-
-Each time an element starts, a sub by that name in the package specified
-by the Pkg option is called with the same parameters that the Start
-handler gets called with.
-
-Each time an element ends, a sub with that name appended with an underscore
-("_"), is called with the same parameters that the End handler gets called
-with.
-
-Nothing special is returned by parse.
-
-=head2 Tree
-
-Parse will return a parse tree for the document. Each node in the tree
-takes the form of a tag, content pair. Text nodes are represented with
-a pseudo-tag of "0" and the string that is their content. For elements,
-the content is an array reference. The first item in the array is a
-(possibly empty) hash reference containing attributes. The remainder of
-the array is a sequence of tag-content pairs representing the content
-of the element.
-
-So for example the result of parsing:
-
- <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
-
-would be:
- Tag Content
- ==================================================================
- [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]],
- bar, [ {}, 0, "Howdy", ref, [{}]],
- 0, "do"
- ]
- ]
-
-The root document "foo", has 3 children: a "head" element, a "bar"
-element and the text "do". After the empty attribute hash, these are
-represented in it's contents by 3 tag-content pairs.
-
-=head2 Objects
-
-This is similar to the Tree style, except that a hash object is created for
-each element. The corresponding object will be in the class whose name
-is created by appending "::" and the element name to the package set with
-the Pkg option. Non-markup text will be in the ::Characters class. The
-contents of the corresponding object will be in an anonymous array that
-is the value of the Kids property for that object.
-
-=head2 Stream
-
-This style also uses the Pkg package. If none of the subs that this
-style looks for is there, then the effect of parsing with this style is
-to print a canonical copy of the document without comments or declarations.
-All the subs receive as their 1st parameter the Expat instance for the
-document they're parsing.
-
-It looks for the following routines:
-
-=over 4
-
-=item * StartDocument
-
-Called at the start of the parse .
-
-=item * StartTag
-
-Called for every start tag with a second parameter of the element type. The $_
-variable will contain a copy of the tag and the %_ variable will contain
-attribute values supplied for that element.
-
-=item * EndTag
-
-Called for every end tag with a second parameter of the element type. The $_
-variable will contain a copy of the end tag.
-
-=item * Text
-
-Called just before start or end tags with accumulated non-markup text in
-the $_ variable.
-
-=item * PI
-
-Called for processing instructions. The $_ variable will contain a copy of
-the PI and the target and data are sent as 2nd and 3rd parameters
-respectively.
-
-=item * EndDocument
-
-Called at conclusion of the parse.
-
-=back
-
-=head1 ENCODINGS
-
-XML documents may be encoded in character sets other than Unicode as
-long as they may be mapped into the Unicode character set. Expat has
-further restrictions on encodings. Read the xmlparse.h header file in
-the expat distribution to see details on these restrictions.
-
-Expat has built-in encodings for: C<UTF-8>, C<ISO-8859-1>, C<UTF-16>, and
-C<US-ASCII>. Encodings are set either through the XML declaration
-encoding attribute or through the ProtocolEncoding option to XML::Parser
-or XML::Parser::Expat.
-
-For encodings other than the built-ins, expat calls the function
-load_encoding in the Expat package with the encoding name. This function
-looks for a file in the path list @XML::Parser::Expat::Encoding_Path, that
-matches the lower-cased name with a '.enc' extension. The first one it
-finds, it loads.
-
-If you wish to build your own encoding maps, check out the XML::Encoding
-module from CPAN.
-
-=head1 AUTHORS
-
-Larry Wall <F<larry@wall.org>> wrote version 1.0.
-
-Clark Cooper <F<coopercc@netheaven.com>> picked up support, changed the API
-for this version (2.x), provided documentation,
-and added some standard package features.
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/XML/Parser/Expat.pm b/Master/xemtex/perl/site/lib/XML/Parser/Expat.pm
deleted file mode 100644
index 370f6f67bf6..00000000000
--- a/Master/xemtex/perl/site/lib/XML/Parser/Expat.pm
+++ /dev/null
@@ -1,1231 +0,0 @@
-package XML::Parser::Expat;
-
-require 5.004;
-
-use strict;
-use vars qw($VERSION @ISA %Handler_Setters %Encoding_Table @Encoding_Path
- $have_File_Spec);
-use Carp;
-
-use IO::Handle;
-
-require DynaLoader;
-
-@ISA = qw(DynaLoader);
-$VERSION = "2.31" ;
-
-$have_File_Spec = $INC{'File/Spec.pm'} || do 'File/Spec.pm';
-
-%Encoding_Table = ();
-if ($have_File_Spec) {
- @Encoding_Path = (grep(-d $_,
- map(File::Spec->catdir($_, qw(XML Parser Encodings)),
- @INC)),
- File::Spec->curdir);
-}
-else {
- @Encoding_Path = (grep(-d $_, map($_ . '/XML/Parser/Encodings', @INC)), '.');
-}
-
-
-bootstrap XML::Parser::Expat $VERSION;
-
-%Handler_Setters = (
- Start => \&SetStartElementHandler,
- End => \&SetEndElementHandler,
- Char => \&SetCharacterDataHandler,
- Proc => \&SetProcessingInstructionHandler,
- Comment => \&SetCommentHandler,
- CdataStart => \&SetStartCdataHandler,
- CdataEnd => \&SetEndCdataHandler,
- Default => \&SetDefaultHandler,
- Unparsed => \&SetUnparsedEntityDeclHandler,
- Notation => \&SetNotationDeclHandler,
- ExternEnt => \&SetExternalEntityRefHandler,
- ExternEntFin => \&SetExtEntFinishHandler,
- Entity => \&SetEntityDeclHandler,
- Element => \&SetElementDeclHandler,
- Attlist => \&SetAttListDeclHandler,
- Doctype => \&SetDoctypeHandler,
- DoctypeFin => \&SetEndDoctypeHandler,
- XMLDecl => \&SetXMLDeclHandler
- );
-
-sub new {
- my ($class, %args) = @_;
- my $self = bless \%args, $_[0];
- $args{_State_} = 0;
- $args{Context} = [];
- $args{Namespaces} ||= 0;
- $args{ErrorMessage} ||= '';
- if ($args{Namespaces}) {
- $args{Namespace_Table} = {};
- $args{Namespace_List} = [undef];
- $args{Prefix_Table} = {};
- $args{New_Prefixes} = [];
- }
- $args{_Setters} = \%Handler_Setters;
- $args{Parser} = ParserCreate($self, $args{ProtocolEncoding},
- $args{Namespaces});
- $self;
-}
-
-sub load_encoding {
- my ($file) = @_;
-
- $file =~ s!([^/]+)$!\L$1\E!;
- $file .= '.enc' unless $file =~ /\.enc$/;
- unless ($file =~ m!^/!) {
- foreach (@Encoding_Path) {
- my $tmp = ($have_File_Spec
- ? File::Spec->catfile($_, $file)
- : "$_/$file");
- if (-e $tmp) {
- $file = $tmp;
- last;
- }
- }
- }
-
- local(*ENC);
- open(ENC, $file) or croak("Couldn't open encmap $file:\n$!\n");
- binmode(ENC);
- my $data;
- my $br = sysread(ENC, $data, -s $file);
- croak("Trouble reading $file:\n$!\n")
- unless defined($br);
- close(ENC);
-
- my $name = LoadEncoding($data, $br);
- croak("$file isn't an encmap file")
- unless defined($name);
-
- $name;
-} # End load_encoding
-
-sub setHandlers {
- my ($self, @handler_pairs) = @_;
-
- croak("Uneven number of arguments to setHandlers method")
- if (int(@handler_pairs) & 1);
-
- my @ret;
-
- while (@handler_pairs) {
- my $type = shift @handler_pairs;
- my $handler = shift @handler_pairs;
- croak "Handler for $type not a Code ref"
- unless (! defined($handler) or ! $handler or ref($handler) eq 'CODE');
-
- my $hndl = $self->{_Setters}->{$type};
-
- unless (defined($hndl)) {
- my @types = sort keys %{$self->{_Setters}};
- croak("Unknown Expat handler type: $type\n Valid types: @types");
- }
-
- my $old = &$hndl($self->{Parser}, $handler);
- push (@ret, $type, $old);
- }
-
- return @ret;
-}
-
-sub xpcroak
- {
- my ($self, $message) = @_;
-
- my $eclines = $self->{ErrorContext};
- my $line = GetCurrentLineNumber($_[0]->{Parser});
- $message .= " at line $line";
- $message .= ":\n" . $self->position_in_context($eclines)
- if defined($eclines);
- croak $message;
-}
-
-sub xpcarp {
- my ($self, $message) = @_;
-
- my $eclines = $self->{ErrorContext};
- my $line = GetCurrentLineNumber($_[0]->{Parser});
- $message .= " at line $line";
- $message .= ":\n" . $self->position_in_context($eclines)
- if defined($eclines);
- carp $message;
-}
-
-sub default_current {
- my $self = shift;
- if ($self->{_State_} == 1) {
- return DefaultCurrent($self->{Parser});
- }
-}
-
-sub recognized_string {
- my $self = shift;
- if ($self->{_State_} == 1) {
- return RecognizedString($self->{Parser});
- }
-}
-
-sub original_string {
- my $self = shift;
- if ($self->{_State_} == 1) {
- return OriginalString($self->{Parser});
- }
-}
-
-sub current_line {
- my $self = shift;
- if ($self->{_State_} == 1) {
- return GetCurrentLineNumber($self->{Parser});
- }
-}
-
-sub current_column {
- my $self = shift;
- if ($self->{_State_} == 1) {
- return GetCurrentColumnNumber($self->{Parser});
- }
-}
-
-sub current_byte {
- my $self = shift;
- if ($self->{_State_} == 1) {
- return GetCurrentByteIndex($self->{Parser});
- }
-}
-
-sub base {
- my ($self, $newbase) = @_;
- my $p = $self->{Parser};
- my $oldbase = GetBase($p);
- SetBase($p, $newbase) if @_ > 1;
- return $oldbase;
-}
-
-sub context {
- my $ctx = $_[0]->{Context};
- @$ctx;
-}
-
-sub current_element {
- my ($self) = @_;
- @{$self->{Context}} ? $self->{Context}->[-1] : undef;
-}
-
-sub in_element {
- my ($self, $element) = @_;
- @{$self->{Context}} ? $self->eq_name($self->{Context}->[-1], $element)
- : undef;
-}
-
-sub within_element {
- my ($self, $element) = @_;
- my $cnt = 0;
- foreach (@{$self->{Context}}) {
- $cnt++ if $self->eq_name($_, $element);
- }
- return $cnt;
-}
-
-sub depth {
- my ($self) = @_;
- int(@{$self->{Context}});
-}
-
-sub element_index {
- my ($self) = @_;
-
- if ($self->{_State_} == 1) {
- return ElementIndex($self->{Parser});
- }
-}
-
-################
-# Namespace methods
-
-sub namespace {
- my ($self, $name) = @_;
- local($^W) = 0;
- $self->{Namespace_List}->[int($name)];
-}
-
-sub eq_name {
- my ($self, $nm1, $nm2) = @_;
- local($^W) = 0;
-
- int($nm1) == int($nm2) and $nm1 eq $nm2;
-}
-
-sub generate_ns_name {
- my ($self, $name, $namespace) = @_;
-
- $namespace ?
- GenerateNSName($name, $namespace, $self->{Namespace_Table},
- $self->{Namespace_List})
- : $name;
-}
-
-sub new_ns_prefixes {
- my ($self) = @_;
- if ($self->{Namespaces}) {
- return @{$self->{New_Prefixes}};
- }
- return ();
-}
-
-sub expand_ns_prefix {
- my ($self, $prefix) = @_;
-
- if ($self->{Namespaces}) {
- my $stack = $self->{Prefix_Table}->{$prefix};
- return (defined($stack) and @$stack) ? $stack->[-1] : undef;
- }
-
- return undef;
-}
-
-sub current_ns_prefixes {
- my ($self) = @_;
-
- if ($self->{Namespaces}) {
- my %set = %{$self->{Prefix_Table}};
-
- if (exists $set{'#default'} and not defined($set{'#default'}->[-1])) {
- delete $set{'#default'};
- }
-
- return keys %set;
- }
-
- return ();
-}
-
-
-################################################################
-# Namespace declaration handlers
-#
-
-sub NamespaceStart {
- my ($self, $prefix, $uri) = @_;
-
- $prefix = '#default' unless defined $prefix;
- my $stack = $self->{Prefix_Table}->{$prefix};
-
- if (defined $stack) {
- push(@$stack, $uri);
- }
- else {
- $self->{Prefix_Table}->{$prefix} = [$uri];
- }
-
- # The New_Prefixes list gets emptied at end of startElement function
- # in Expat.xs
-
- push(@{$self->{New_Prefixes}}, $prefix);
-}
-
-sub NamespaceEnd {
- my ($self, $prefix) = @_;
-
- $prefix = '#default' unless defined $prefix;
-
- my $stack = $self->{Prefix_Table}->{$prefix};
- if (@$stack > 1) {
- pop(@$stack);
- }
- else {
- delete $self->{Prefix_Table}->{$prefix};
- }
-}
-
-################
-
-sub specified_attr {
- my $self = shift;
-
- if ($self->{_State_} == 1) {
- return GetSpecifiedAttributeCount($self->{Parser});
- }
-}
-
-sub finish {
- my ($self) = @_;
- if ($self->{_State_} == 1) {
- my $parser = $self->{Parser};
- UnsetAllHandlers($parser);
- }
-}
-
-sub position_in_context {
- my ($self, $lines) = @_;
- if ($self->{_State_} == 1) {
- my $parser = $self->{Parser};
- my ($string, $linepos) = PositionContext($parser, $lines);
-
- return '' unless defined($string);
-
- my $col = GetCurrentColumnNumber($parser);
- my $ptr = ('=' x ($col - 1)) . '^' . "\n";
- my $ret;
- my $dosplit = $linepos < length($string);
-
- $string .= "\n" unless $string =~ /\n$/;
-
- if ($dosplit) {
- $ret = substr($string, 0, $linepos) . $ptr
- . substr($string, $linepos);
- } else {
- $ret = $string . $ptr;
- }
-
- return $ret;
- }
-}
-
-sub xml_escape {
- my $self = shift;
- my $text = shift;
-
- study $text;
- $text =~ s/\&/\&amp;/g;
- $text =~ s/</\&lt;/g;
- foreach (@_) {
- croak "xml_escape: '$_' isn't a single character" if length($_) > 1;
-
- if ($_ eq '>') {
- $text =~ s/>/\&gt;/g;
- }
- elsif ($_ eq '"') {
- $text =~ s/\"/\&quot;/;
- }
- elsif ($_ eq "'") {
- $text =~ s/\'/\&apos;/;
- }
- else {
- my $rep = '&#' . sprintf('x%X', ord($_)) . ';';
- if (/\W/) {
- my $ptrn = "\\$_";
- $text =~ s/$ptrn/$rep/g;
- }
- else {
- $text =~ s/$_/$rep/g;
- }
- }
- }
- $text;
-}
-
-sub skip_until {
- my $self = shift;
- if ($self->{_State_} <= 1) {
- SkipUntil($self->{Parser}, $_[0]);
- }
-}
-
-sub release {
- my $self = shift;
- ParserRelease($self->{Parser});
-}
-
-sub DESTROY {
- my $self = shift;
- ParserFree($self->{Parser});
-}
-
-sub parse {
- my $self = shift;
- my $arg = shift;
- croak "Parse already in progress (Expat)" if $self->{_State_};
- $self->{_State_} = 1;
- my $parser = $self->{Parser};
- my $ioref;
- my $result = 0;
-
- if (defined $arg) {
- if (ref($arg) and UNIVERSAL::isa($arg, 'IO::Handle')) {
- $ioref = $arg;
- } elsif (tied($arg)) {
- my $class = ref($arg);
- no strict 'refs';
- $ioref = $arg if defined &{"${class}::TIEHANDLE"};
- }
- else {
- eval {
- $ioref = *{$arg}{IO};
- };
- undef $@;
- }
- }
-
- if (defined($ioref)) {
- my $delim = $self->{Stream_Delimiter};
- my $prev_rs;
-
- $prev_rs = ref($ioref)->input_record_separator("\n$delim\n")
- if defined($delim);
-
- $result = ParseStream($parser, $ioref, $delim);
-
- ref($ioref)->input_record_separator($prev_rs)
- if defined($delim);
- } else {
- $result = ParseString($parser, $arg);
- }
-
- $self->{_State_} = 2;
- $result or croak $self->{ErrorMessage};
-}
-
-sub parsestring {
- my $self = shift;
- $self->parse(@_);
-}
-
-sub parsefile {
- my $self = shift;
- croak "Parser has already been used" if $self->{_State_};
- local(*FILE);
- open(FILE, $_[0]) or croak "Couldn't open $_[0]:\n$!";
- binmode(FILE);
- my $ret = $self->parse(*FILE);
- close(FILE);
- $ret;
-}
-
-################################################################
-package XML::Parser::ContentModel;
-use overload '""' => \&asString, 'eq' => \&thiseq;
-
-sub EMPTY () {1}
-sub ANY () {2}
-sub MIXED () {3}
-sub NAME () {4}
-sub CHOICE () {5}
-sub SEQ () {6}
-
-
-sub isempty {
- return $_[0]->{Type} == EMPTY;
-}
-
-sub isany {
- return $_[0]->{Type} == ANY;
-}
-
-sub ismixed {
- return $_[0]->{Type} == MIXED;
-}
-
-sub isname {
- return $_[0]->{Type} == NAME;
-}
-
-sub name {
- return $_[0]->{Tag};
-}
-
-sub ischoice {
- return $_[0]->{Type} == CHOICE;
-}
-
-sub isseq {
- return $_[0]->{Type} == SEQ;
-}
-
-sub quant {
- return $_[0]->{Quant};
-}
-
-sub children {
- my $children = $_[0]->{Children};
- if (defined $children) {
- return @$children;
- }
- return undef;
-}
-
-sub asString {
- my ($self) = @_;
- my $ret;
-
- if ($self->{Type} == NAME) {
- $ret = $self->{Tag};
- }
- elsif ($self->{Type} == EMPTY) {
- return "EMPTY";
- }
- elsif ($self->{Type} == ANY) {
- return "ANY";
- }
- elsif ($self->{Type} == MIXED) {
- $ret = '(#PCDATA';
- foreach (@{$self->{Children}}) {
- $ret .= '|' . $_;
- }
- $ret .= ')';
- }
- else {
- my $sep = $self->{Type} == CHOICE ? '|' : ',';
- my @children_str = map { $_->asString } @{$self->{Children}};
- $ret = '(' . join($sep, @children_str) . ')';
- }
-
- $ret .= $self->{Quant} if $self->{Quant};
- return $ret;
-}
-
-sub thiseq {
- my $self = shift;
-
- return $self->asString eq $_[0];
-}
-
-################################################################
-package XML::Parser::ExpatNB;
-
-use vars qw(@ISA);
-use Carp;
-
-@ISA = qw(XML::Parser::Expat);
-
-sub parse {
- my $self = shift;
- my $class = ref($self);
- croak "parse method not supported in $class";
-}
-
-sub parsestring {
- my $self = shift;
- my $class = ref($self);
- croak "parsestring method not supported in $class";
-}
-
-sub parsefile {
- my $self = shift;
- my $class = ref($self);
- croak "parsefile method not supported in $class";
-}
-
-sub parse_more {
- my ($self, $data) = @_;
-
- $self->{_State_} = 1;
- my $ret = XML::Parser::Expat::ParsePartial($self->{Parser}, $data);
-
- croak $self->{ErrorMessage} unless $ret;
-}
-
-sub parse_done {
- my $self = shift;
-
- my $ret = XML::Parser::Expat::ParseDone($self->{Parser});
- unless ($ret) {
- my $msg = $self->{ErrorMessage};
- $self->release;
- croak $msg;
- }
-
- $self->{_State_} = 2;
-
- my $result = $ret;
- my @result = ();
- my $final = $self->{FinalHandler};
- if (defined $final) {
- if (wantarray) {
- @result = &$final($self);
- }
- else {
- $result = &$final($self);
- }
- }
-
- $self->release;
-
- return unless defined wantarray;
- return wantarray ? @result : $result;
-}
-
-################################################################
-
-package XML::Parser::Encinfo;
-
-sub DESTROY {
- my $self = shift;
- XML::Parser::Expat::FreeEncoding($self);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-XML::Parser::Expat - Lowlevel access to James Clark's expat XML parser
-
-=head1 SYNOPSIS
-
- use XML::Parser::Expat;
-
- $parser = new XML::Parser::Expat;
- $parser->setHandlers('Start' => \&sh,
- 'End' => \&eh,
- 'Char' => \&ch);
- open(FOO, 'info.xml') or die "Couldn't open";
- $parser->parse(*FOO);
- close(FOO);
- # $parser->parse('<foo id="me"> here <em>we</em> go </foo>');
-
- sub sh
- {
- my ($p, $el, %atts) = @_;
- $p->setHandlers('Char' => \&spec)
- if ($el eq 'special');
- ...
- }
-
- sub eh
- {
- my ($p, $el) = @_;
- $p->setHandlers('Char' => \&ch) # Special elements won't contain
- if ($el eq 'special'); # other special elements
- ...
- }
-
-=head1 DESCRIPTION
-
-This module provides an interface to James Clark's XML parser, expat. As in
-expat, a single instance of the parser can only parse one document. Calls
-to parsestring after the first for a given instance will die.
-
-Expat (and XML::Parser::Expat) are event based. As the parser recognizes
-parts of the document (say the start or end of an XML element), then any
-handlers registered for that type of an event are called with suitable
-parameters.
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-This is a class method, the constructor for XML::Parser::Expat. Options are
-passed as keyword value pairs. The recognized options are:
-
-=over 4
-
-=item * ProtocolEncoding
-
-The protocol encoding name. The default is none. The expat built-in
-encodings are: C<UTF-8>, C<ISO-8859-1>, C<UTF-16>, and C<US-ASCII>.
-Other encodings may be used if they have encoding maps in one of the
-directories in the @Encoding_Path list. Setting the protocol encoding
-overrides any encoding in the XML declaration.
-
-=item * Namespaces
-
-When this option is given with a true value, then the parser does namespace
-processing. By default, namespace processing is turned off. When it is
-turned on, the parser consumes I<xmlns> attributes and strips off prefixes
-from element and attributes names where those prefixes have a defined
-namespace. A name's namespace can be found using the L<"namespace"> method
-and two names can be checked for absolute equality with the L<"eq_name">
-method.
-
-=item * NoExpand
-
-Normally, the parser will try to expand references to entities defined in
-the internal subset. If this option is set to a true value, and a default
-handler is also set, then the default handler will be called when an
-entity reference is seen in text. This has no effect if a default handler
-has not been registered, and it has no effect on the expansion of entity
-references inside attribute values.
-
-=item * Stream_Delimiter
-
-This option takes a string value. When this string is found alone on a line
-while parsing from a stream, then the parse is ended as if it saw an end of
-file. The intended use is with a stream of xml documents in a MIME multipart
-format. The string should not contain a trailing newline.
-
-=item * ErrorContext
-
-When this option is defined, errors are reported in context. The value
-of ErrorContext should be the number of lines to show on either side of
-the line in which the error occurred.
-
-=item * ParseParamEnt
-
-Unless standalone is set to "yes" in the XML declaration, setting this to
-a true value allows the external DTD to be read, and parameter entities
-to be parsed and expanded.
-
-=item * Base
-
-The base to use for relative pathnames or URLs. This can also be done by
-using the base method.
-
-=back
-
-=item setHandlers(TYPE, HANDLER [, TYPE, HANDLER [...]])
-
-This method registers handlers for the various events. If no handlers are
-registered, then a call to parsestring or parsefile will only determine if
-the corresponding XML document is well formed (by returning without error.)
-This may be called from within a handler, after the parse has started.
-
-Setting a handler to something that evaluates to false unsets that
-handler.
-
-This method returns a list of type, handler pairs corresponding to the
-input. The handlers returned are the ones that were in effect before the
-call to setHandlers.
-
-The recognized events and the parameters passed to the corresponding
-handlers are:
-
-=over 4
-
-=item * Start (Parser, Element [, Attr, Val [,...]])
-
-This event is generated when an XML start tag is recognized. Parser is
-an XML::Parser::Expat instance. Element is the name of the XML element that
-is opened with the start tag. The Attr & Val pairs are generated for each
-attribute in the start tag.
-
-=item * End (Parser, Element)
-
-This event is generated when an XML end tag is recognized. Note that
-an XML empty tag (<foo/>) generates both a start and an end event.
-
-There is always a lower level start and end handler installed that wrap
-the corresponding callbacks. This is to handle the context mechanism.
-A consequence of this is that the default handler (see below) will not
-see a start tag or end tag unless the default_current method is called.
-
-=item * Char (Parser, String)
-
-This event is generated when non-markup is recognized. The non-markup
-sequence of characters is in String. A single non-markup sequence of
-characters may generate multiple calls to this handler. Whatever the
-encoding of the string in the original document, this is given to the
-handler in UTF-8.
-
-=item * Proc (Parser, Target, Data)
-
-This event is generated when a processing instruction is recognized.
-
-=item * Comment (Parser, String)
-
-This event is generated when a comment is recognized.
-
-=item * CdataStart (Parser)
-
-This is called at the start of a CDATA section.
-
-=item * CdataEnd (Parser)
-
-This is called at the end of a CDATA section.
-
-=item * Default (Parser, String)
-
-This is called for any characters that don't have a registered handler.
-This includes both characters that are part of markup for which no
-events are generated (markup declarations) and characters that
-could generate events, but for which no handler has been registered.
-
-Whatever the encoding in the original document, the string is returned to
-the handler in UTF-8.
-
-=item * Unparsed (Parser, Entity, Base, Sysid, Pubid, Notation)
-
-This is called for a declaration of an unparsed entity. Entity is the name
-of the entity. Base is the base to be used for resolving a relative URI.
-Sysid is the system id. Pubid is the public id. Notation is the notation
-name. Base and Pubid may be undefined.
-
-=item * Notation (Parser, Notation, Base, Sysid, Pubid)
-
-This is called for a declaration of notation. Notation is the notation name.
-Base is the base to be used for resolving a relative URI. Sysid is the system
-id. Pubid is the public id. Base, Sysid, and Pubid may all be undefined.
-
-=item * ExternEnt (Parser, Base, Sysid, Pubid)
-
-This is called when an external entity is referenced. Base is the base to be
-used for resolving a relative URI. Sysid is the system id. Pubid is the public
-id. Base, and Pubid may be undefined.
-
-This handler should either return a string, which represents the contents of
-the external entity, or return an open filehandle that can be read to obtain
-the contents of the external entity, or return undef, which indicates the
-external entity couldn't be found and will generate a parse error.
-
-If an open filehandle is returned, it must be returned as either a glob
-(*FOO) or as a reference to a glob (e.g. an instance of IO::Handle).
-
-=item * ExternEntFin (Parser)
-
-This is called after an external entity has been parsed. It allows
-applications to perform cleanup on actions performed in the above
-ExternEnt handler.
-
-=item * Entity (Parser, Name, Val, Sysid, Pubid, Ndata, IsParam)
-
-This is called when an entity is declared. For internal entities, the Val
-parameter will contain the value and the remaining three parameters will
-be undefined. For external entities, the Val parameter
-will be undefined, the Sysid parameter will have the system id, the Pubid
-parameter will have the public id if it was provided (it will be undefined
-otherwise), the Ndata parameter will contain the notation for unparsed
-entities. If this is a parameter entity declaration, then the IsParam
-parameter is true.
-
-Note that this handler and the Unparsed handler above overlap. If both are
-set, then this handler will not be called for unparsed entities.
-
-=item * Element (Parser, Name, Model)
-
-The element handler is called when an element declaration is found. Name is
-the element name, and Model is the content model as an
-XML::Parser::ContentModel object. See L<"XML::Parser::ContentModel Methods">
-for methods available for this class.
-
-=item * Attlist (Parser, Elname, Attname, Type, Default, Fixed)
-
-This handler is called for each attribute in an ATTLIST declaration.
-So an ATTLIST declaration that has multiple attributes
-will generate multiple calls to this handler. The Elname parameter is the
-name of the element with which the attribute is being associated. The Attname
-parameter is the name of the attribute. Type is the attribute type, given as
-a string. Default is the default value, which will either be "#REQUIRED",
-"#IMPLIED" or a quoted string (i.e. the returned string will begin and end
-with a quote character). If Fixed is true, then this is a fixed attribute.
-
-=item * Doctype (Parser, Name, Sysid, Pubid, Internal)
-
-This handler is called for DOCTYPE declarations. Name is the document type
-name. Sysid is the system id of the document type, if it was provided,
-otherwise it's undefined. Pubid is the public id of the document type,
-which will be undefined if no public id was given. Internal will be
-true or false, indicating whether or not the doctype declaration contains
-an internal subset.
-
-=item * DoctypeFin (Parser)
-
-This handler is called after parsing of the DOCTYPE declaration has finished,
-including any internal or external DTD declarations.
-
-=item * XMLDecl (Parser, Version, Encoding, Standalone)
-
-This handler is called for XML declarations. Version is a string containg
-the version. Encoding is either undefined or contains an encoding string.
-Standalone is either undefined, or true or false. Undefined indicates
-that no standalone parameter was given in the XML declaration. True or
-false indicates "yes" or "no" respectively.
-
-=back
-
-=item namespace(name)
-
-Return the URI of the namespace that the name belongs to. If the name doesn't
-belong to any namespace, an undef is returned. This is only valid on names
-received through the Start or End handlers from a single document, or through
-a call to the generate_ns_name method. In other words, don't use names
-generated from one instance of XML::Parser::Expat with other instances.
-
-=item eq_name(name1, name2)
-
-Return true if name1 and name2 are identical (i.e. same name and from
-the same namespace.) This is only meaningful if both names were obtained
-through the Start or End handlers from a single document, or through
-a call to the generate_ns_name method.
-
-=item generate_ns_name(name, namespace)
-
-Return a name, associated with a given namespace, good for using with the
-above 2 methods. The namespace argument should be the namespace URI, not
-a prefix.
-
-=item new_ns_prefixes
-
-When called from a start tag handler, returns namespace prefixes declared
-with this start tag. If called elsewere (or if there were no namespace
-prefixes declared), it returns an empty list. Setting of the default
-namespace is indicated with '#default' as a prefix.
-
-=item expand_ns_prefix(prefix)
-
-Return the uri to which the given prefix is currently bound. Returns
-undef if the prefix isn't currently bound. Use '#default' to find the
-current binding of the default namespace (if any).
-
-=item current_ns_prefixes
-
-Return a list of currently bound namespace prefixes. The order of the
-the prefixes in the list has no meaning. If the default namespace is
-currently bound, '#default' appears in the list.
-
-=item recognized_string
-
-Returns the string from the document that was recognized in order to call
-the current handler. For instance, when called from a start handler, it
-will give us the the start-tag string. The string is encoded in UTF-8.
-This method doesn't return a meaningful string inside declaration handlers.
-
-=item original_string
-
-Returns the verbatim string from the document that was recognized in
-order to call the current handler. The string is in the original document
-encoding. This method doesn't return a meaningful string inside declaration
-handlers.
-
-=item default_current
-
-When called from a handler, causes the sequence of characters that generated
-the corresponding event to be sent to the default handler (if one is
-registered). Use of this method is deprecated in favor the recognized_string
-method, which you can use without installing a default handler. This
-method doesn't deliver a meaningful string to the default handler when
-called from inside declaration handlers.
-
-=item xpcroak(message)
-
-Concatenate onto the given message the current line number within the
-XML document plus the message implied by ErrorContext. Then croak with
-the formed message.
-
-=item xpcarp(message)
-
-Concatenate onto the given message the current line number within the
-XML document plus the message implied by ErrorContext. Then carp with
-the formed message.
-
-=item current_line
-
-Returns the line number of the current position of the parse.
-
-=item current_column
-
-Returns the column number of the current position of the parse.
-
-=item current_byte
-
-Returns the current position of the parse.
-
-=item base([NEWBASE]);
-
-Returns the current value of the base for resolving relative URIs. If
-NEWBASE is supplied, changes the base to that value.
-
-=item context
-
-Returns a list of element names that represent open elements, with the
-last one being the innermost. Inside start and end tag handlers, this
-will be the tag of the parent element.
-
-=item current_element
-
-Returns the name of the innermost currently opened element. Inside
-start or end handlers, returns the parent of the element associated
-with those tags.
-
-=item in_element(NAME)
-
-Returns true if NAME is equal to the name of the innermost currently opened
-element. If namespace processing is being used and you want to check
-against a name that may be in a namespace, then use the generate_ns_name
-method to create the NAME argument.
-
-=item within_element(NAME)
-
-Returns the number of times the given name appears in the context list.
-If namespace processing is being used and you want to check
-against a name that may be in a namespace, then use the generate_ns_name
-method to create the NAME argument.
-
-=item depth
-
-Returns the size of the context list.
-
-=item element_index
-
-Returns an integer that is the depth-first visit order of the current
-element. This will be zero outside of the root element. For example,
-this will return 1 when called from the start handler for the root element
-start tag.
-
-=item skip_until(INDEX)
-
-INDEX is an integer that represents an element index. When this method
-is called, all handlers are suspended until the start tag for an element
-that has an index number equal to INDEX is seen. If a start handler has
-been set, then this is the first tag that the start handler will see
-after skip_until has been called.
-
-
-=item position_in_context(LINES)
-
-Returns a string that shows the current parse position. LINES should be
-an integer >= 0 that represents the number of lines on either side of the
-current parse line to place into the returned string.
-
-=item xml_escape(TEXT [, CHAR [, CHAR ...]])
-
-Returns TEXT with markup characters turned into character entities. Any
-additional characters provided as arguments are also turned into character
-references where found in TEXT.
-
-=item parse (SOURCE)
-
-The SOURCE parameter should either be a string containing the whole XML
-document, or it should be an open IO::Handle. Only a single document
-may be parsed for a given instance of XML::Parser::Expat, so this will croak
-if it's been called previously for this instance.
-
-=item parsestring(XML_DOC_STRING)
-
-Parses the given string as an XML document. Only a single document may be
-parsed for a given instance of XML::Parser::Expat, so this will die if either
-parsestring or parsefile has been called for this instance previously.
-
-This method is deprecated in favor of the parse method.
-
-=item parsefile(FILENAME)
-
-Parses the XML document in the given file. Will die if parsestring or
-parsefile has been called previously for this instance.
-
-=item is_defaulted(ATTNAME)
-
-NO LONGER WORKS. To find out if an attribute is defaulted please use
-the specified_attr method.
-
-=item specified_attr
-
-When the start handler receives lists of attributes and values, the
-non-defaulted (i.e. explicitly specified) attributes occur in the list
-first. This method returns the number of specified items in the list.
-So if this number is equal to the length of the list, there were no
-defaulted values. Otherwise the number points to the index of the
-first defaulted attribute name.
-
-=item finish
-
-Unsets all handlers (including internal ones that set context), but expat
-continues parsing to the end of the document or until it finds an error.
-It should finish up a lot faster than with the handlers set.
-
-=item release
-
-There are data structures used by XML::Parser::Expat that have circular
-references. This means that these structures will never be garbage
-collected unless these references are explicitly broken. Calling this
-method breaks those references (and makes the instance unusable.)
-
-Normally, higher level calls handle this for you, but if you are using
-XML::Parser::Expat directly, then it's your responsibility to call it.
-
-=back
-
-=head2 XML::Parser::ContentModel Methods
-
-The element declaration handlers are passed objects of this class as the
-content model of the element declaration. They also represent content
-particles, components of a content model.
-
-When referred to as a string, these objects are automagicly converted to a
-string representation of the model (or content particle).
-
-=over 4
-
-=item isempty
-
-This method returns true if the object is "EMPTY", false otherwise.
-
-=item isany
-
-This method returns true if the object is "ANY", false otherwise.
-
-=item ismixed
-
-This method returns true if the object is "(#PCDATA)" or "(#PCDATA|...)*",
-false otherwise.
-
-=item isname
-
-This method returns if the object is an element name.
-
-=item ischoice
-
-This method returns true if the object is a choice of content particles.
-
-
-=item isseq
-
-This method returns true if the object is a sequence of content particles.
-
-=item quant
-
-This method returns undef or a string representing the quantifier
-('?', '*', '+') associated with the model or particle.
-
-=item children
-
-This method returns undef or (for mixed, choice, and sequence types)
-an array of component content particles. There will always be at least
-one component for choices and sequences, but for a mixed content model
-of pure PCDATA, "(#PCDATA)", then an undef is returned.
-
-=back
-
-=head2 XML::Parser::ExpatNB Methods
-
-The class XML::Parser::ExpatNB is a subclass of XML::Parser::Expat used
-for non-blocking access to the expat library. It does not support the parse,
-parsestring, or parsefile methods, but it does have these additional methods:
-
-=over 4
-
-=item parse_more(DATA)
-
-Feed expat more text to munch on.
-
-=item parse_done
-
-Tell expat that it's gotten the whole document.
-
-=back
-
-=head1 FUNCTIONS
-
-=over 4
-
-=item XML::Parser::Expat::load_encoding(ENCODING)
-
-Load an external encoding. ENCODING is either the name of an encoding or
-the name of a file. The basename is converted to lowercase and a '.enc'
-extension is appended unless there's one already there. Then, unless
-it's an absolute pathname (i.e. begins with '/'), the first file by that
-name discovered in the @Encoding_Path path list is used.
-
-The encoding in the file is loaded and kept in the %Encoding_Table
-table. Earlier encodings of the same name are replaced.
-
-This function is automaticly called by expat when it encounters an encoding
-it doesn't know about. Expat shouldn't call this twice for the same
-encoding name. The only reason users should use this function is to
-explicitly load an encoding not contained in the @Encoding_Path list.
-
-=back
-
-=head1 AUTHORS
-
-Larry Wall <F<larry@wall.org>> wrote version 1.0.
-
-Clark Cooper <F<coopercc@netheaven.com>> picked up support, changed the API
-for this version (2.x), provided documentation, and added some standard
-package features.
-
-=cut
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Bitmap/Bitmap.dll b/Master/xemtex/perl/site/lib/auto/Tk/Bitmap/Bitmap.dll
deleted file mode 100644
index f6b75b704c5..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Bitmap/Bitmap.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/CancelRepeat.al b/Master/xemtex/perl/site/lib/auto/Tk/CancelRepeat.al
deleted file mode 100644
index 82105140755..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/CancelRepeat.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 405 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\CancelRepeat.al)"
-sub CancelRepeat
-{
- my $w = shift->MainWindow;
- my $id = delete $w->{_afterId_};
- $w->after('cancel',$id) if (defined $id);
-}
-
-# end of Tk::CancelRepeat
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Canvas/Canvas.dll b/Master/xemtex/perl/site/lib/auto/Tk/Canvas/Canvas.dll
deleted file mode 100644
index b6a1321a741..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Canvas/Canvas.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Clipboard/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Clipboard/autosplit.ix
deleted file mode 100644
index 360e44863af..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Clipboard/autosplit.ix
+++ /dev/null
@@ -1,6 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk/Clipboard.pm
-# (file acts as timestamp)
-package Tk::Clipboard;
-sub getSelected
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Clipboard/getSelected.al b/Master/xemtex/perl/site/lib/auto/Tk/Clipboard/getSelected.al
deleted file mode 100644
index 99d70ee5d76..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Clipboard/getSelected.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Clipboard.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Clipboard;
-
-#line 103 "blib\lib\Tk/Clipboard.pm (autosplit into blib\lib\auto\Tk\Clipboard\getSelected.al)"
-sub getSelected
-{
- my $w = shift;
- my $val = Tk::catch { $w->get('sel.first','sel.last') };
- return $val;
-}
-
-1;
-# end of Tk::Clipboard::getSelected
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/EnterFocus.al b/Master/xemtex/perl/site/lib/auto/Tk/EnterFocus.al
deleted file mode 100644
index 93cc88a8176..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/EnterFocus.al
+++ /dev/null
@@ -1,26 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 568 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\EnterFocus.al)"
-# focusFollowsMouse
-#
-# If this procedure is invoked, Tk will enter "focus-follows-mouse"
-# mode, where the focus is always on whatever window contains the
-# mouse. If this procedure isn't invoked, then the user typically
-# has to click on a window to give it the focus.
-#
-# Arguments:
-# None.
-
-sub EnterFocus
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- my $d = $Ev->d;
- $w->Tk::focus() if ($d eq 'NotifyAncestor' || $d eq 'NotifyNonlinear' || $d eq 'NotifyInferior');
-}
-
-# end of Tk::EnterFocus
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Entry/Entry.dll b/Master/xemtex/perl/site/lib/auto/Tk/Entry/Entry.dll
deleted file mode 100644
index dd36353deef..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Entry/Entry.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Error.al b/Master/xemtex/perl/site/lib/auto/Tk/Error.al
deleted file mode 100644
index 4d4f06dc941..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Error.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 393 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\Error.al)"
-sub Error
-{my $w = shift;
- my $error = shift;
- if (Exists($w))
- {
- my $grab = $w->grab('current');
- $grab->Unbusy if (defined $grab);
- }
- chomp($error);
- warn "Tk::Error: $error\n " . join("\n ",@_)."\n";
-}
-
-# end of Tk::Error
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Event/Event.dll b/Master/xemtex/perl/site/lib/auto/Tk/Event/Event.dll
deleted file mode 100644
index 2339002b71b..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Event/Event.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/FirstMenu.al b/Master/xemtex/perl/site/lib/auto/Tk/FirstMenu.al
deleted file mode 100644
index c5e12b684e7..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/FirstMenu.al
+++ /dev/null
@@ -1,21 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 615 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\FirstMenu.al)"
-# tkFirstMenu --
-# This procedure traverses to the first menubutton in the toplevel
-# for a given window, and posts that menubutton's menu.
-#
-# Arguments:
-# w - Name of a window. Selects which toplevel
-# to search for menubuttons.
-sub FirstMenu
-{
- my $w = shift;
- $w = $w->toplevel->FindMenu('');
-}
-
-# end of Tk::FirstMenu
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/FocusChildren.al b/Master/xemtex/perl/site/lib/auto/Tk/FocusChildren.al
deleted file mode 100644
index f6d8f6af753..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/FocusChildren.al
+++ /dev/null
@@ -1,35 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 422 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\FocusChildren.al)"
-#----------------------------------------------------------------------------
-# focus.tcl --
-#
-# This file defines several procedures for managing the input
-# focus.
-#
-# @(#) focus.tcl 1.6 94/12/19 17:06:46
-#
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-sub FocusChildren { shift->children }
-
-#
-# focusNext --
-# This procedure is invoked to move the input focus to the next window
-# after a given one. "Next" is defined in terms of the window
-# stacking order, with all the windows underneath a given top-level
-# (no matter how deeply nested in the hierarchy) considered except
-# for frames and toplevels.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the next window after this one in the traversal
-# order.
-# end of Tk::FocusChildren
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/FocusOK.al b/Master/xemtex/perl/site/lib/auto/Tk/FocusOK.al
deleted file mode 100644
index bffeffba8f4..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/FocusOK.al
+++ /dev/null
@@ -1,33 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 542 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\FocusOK.al)"
-sub FocusOK
-{
- my $w = shift;
- my $value;
- catch { $value = $w->cget('-takefocus') };
- if (!$@ && defined($value))
- {
- return 0 if ($value eq '0');
- return $w->viewable if ($value eq '1');
- $value = $w->$value();
- return $value if (defined $value);
- }
- if (!$w->viewable)
- {
- return 0;
- }
- catch { $value = $w->cget('-state') } ;
- if (!$@ && defined($value) && $value eq 'disabled')
- {
- return 0;
- }
- $value = grep(/Key|Focus/,$w->Tk::bind(),$w->Tk::bind(ref($w)));
- return $value;
-}
-
-# end of Tk::FocusOK
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/AddScrollbars.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/AddScrollbars.al
deleted file mode 100644
index ef3b7537d6e..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/AddScrollbars.al
+++ /dev/null
@@ -1,52 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 221 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\AddScrollbars.al)"
-sub AddScrollbars
-{
- require Tk::Scrollbar;
- my ($cw,$w) = @_;
- my $def = '';
- my ($x,$y) = ('','');
- my $s = 0;
- my $c;
- $cw->freeze_on_map;
- foreach $c ($w->configure)
- {
- my $opt = $c->[0];
- if ($opt eq '-yscrollcommand')
- {
- my $slice = Tk::Frame->new($cw,Name => 'ysbslice');
- my $ysb = Tk::Scrollbar->new($slice,-orient => 'vertical', -command => [ 'yview', $w ]);
- my $size = $ysb->cget('-width');
- my $corner = Tk::Frame->new($slice,Name=>'corner','-relief' => 'raised',
- '-width' => $size, '-height' => $size);
- $ysb->pack(-side => 'left', -fill => 'y');
- $cw->Advertise('yscrollbar' => $ysb);
- $cw->Advertise('corner' => $corner);
- $cw->Advertise('ysbslice' => $slice);
- $corner->{'before'} = $ysb->PathName;
- $slice->{'before'} = $w->PathName;
- $y = 'w';
- $s = 1;
- }
- elsif ($opt eq '-xscrollcommand')
- {
- my $xsb = Tk::Scrollbar->new($cw,-orient => 'horizontal', -command => [ 'xview', $w ]);
- $cw->Advertise('xscrollbar' => $xsb);
- $xsb->{'before'} = $w->PathName;
- $x = 's';
- $s = 1;
- }
- }
- if ($s)
- {
- $cw->Advertise('scrolled' => $w);
- $cw->ConfigSpecs('-scrollbars' => ['METHOD','scrollbars','Scrollbars',$x.$y]);
- }
-}
-
-# end of Tk::Frame::AddScrollbars
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/FindMenu.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/FindMenu.al
deleted file mode 100644
index b82a61da507..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/FindMenu.al
+++ /dev/null
@@ -1,22 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 359 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\FindMenu.al)"
-sub FindMenu
-{
- my ($w,$char) = @_;
- my $child;
- my $match;
- foreach $child ($w->children)
- {
- next unless (ref $child);
- $match = $child->FindMenu($char);
- return $match if (defined $match);
- }
- return undef;
-}
-
-1;
-# end of Tk::Frame::FindMenu
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Frame/autosplit.ix
deleted file mode 100644
index 670cd9eb1c4..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/autosplit.ix
+++ /dev/null
@@ -1,24 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk/Frame.pm
-# (file acts as timestamp)
-package Tk::Frame;
-sub labelPack
-;
-sub labelVariable
-;
-sub label
-;
-sub queuePack
-;
-sub sbset
-;
-sub freeze_on_map
-;
-sub AddScrollbars
-;
-sub packscrollbars
-;
-sub scrollbars
-;
-sub FindMenu
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/freeze_on_map.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/freeze_on_map.al
deleted file mode 100644
index 61697e647fb..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/freeze_on_map.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 211 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\freeze_on_map.al)"
-sub freeze_on_map
-{
- my ($w) = @_;
- unless ($w->Tk::bind('Freeze','<Map>'))
- {
- $w->Tk::bind('Freeze','<Map>',['packPropagate' => 0])
- }
- $w->AddBindTag('Freeze');
-}
-
-# end of Tk::Frame::freeze_on_map
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/label.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/label.al
deleted file mode 100644
index 3196344c9b8..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/label.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 178 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\label.al)"
-sub label
-{
- my ($cw,$val) = @_;
- my $var = $cw->cget('-labelVariable');
- if (@_ > 1 && defined $val)
- {
- if (!defined $var)
- {
- $var = \$cw->{Configure}{'-label'};
- $cw->labelVariable($var);
- }
- $$var = $val;
- }
- return (defined $var) ? $$var : undef;;
-}
-
-# end of Tk::Frame::label
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/labelPack.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/labelPack.al
deleted file mode 100644
index 1dd66963088..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/labelPack.al
+++ /dev/null
@@ -1,50 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 117 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\labelPack.al)"
-sub labelPack
-{
- my ($cw,$val) = @_;
- my $w = $cw->Subwidget('label');
- my @result = ();
- if (@_ > 1)
- {
- if (defined($w) && !defined($val))
- {
- $w->packForget;
- }
- elsif (defined($val) && !defined ($w))
- {
- require Tk::Label;
- $w = Tk::Label->new($cw,-textvariable => $cw->labelVariable);
- $cw->Advertise('label' => $w);
- $cw->ConfigDelegate('label',qw(-text -textvariable));
- }
- if (defined($val) && defined($w))
- {
- my %pack = @$val;
- unless (exists $pack{-side})
- {
- $pack{-side} = 'top' unless (exists $pack{-side});
- }
- unless (exists $pack{-fill})
- {
- $pack{-fill} = 'x' if ($pack{-side} =~ /(top|bottom)/);
- $pack{-fill} = 'y' if ($pack{-side} =~ /(left|right)/);
- }
- unless (exists($pack{'-before'}) || exists($pack{'-after'}))
- {
- my $before = ($cw->packSlaves)[0];
- $pack{'-before'} = $before if (defined $before);
- }
- $w->pack(%pack);
- }
- }
- @result = $w->packInfo if (defined $w);
- return (wantarray) ? @result : \@result;
-}
-
-# end of Tk::Frame::labelPack
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/labelVariable.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/labelVariable.al
deleted file mode 100644
index 6a068e32873..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/labelVariable.al
+++ /dev/null
@@ -1,27 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 159 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\labelVariable.al)"
-sub labelVariable
-{
- my ($cw,$val) = @_;
- my $var = \$cw->{Configure}{'-labelVariable'};
- if (@_ > 1 && defined $val)
- {
- $$var = $val;
- $$val = '' unless (defined $$val);
- my $w = $cw->Subwidget('label');
- unless (defined $w)
- {
- $cw->labelPack([]);
- $w = $cw->Subwidget('label');
- }
- $w->configure(-textvariable => $val);
- }
- return $$var;
-}
-
-# end of Tk::Frame::labelVariable
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/packscrollbars.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/packscrollbars.al
deleted file mode 100644
index 54c59d5bcf2..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/packscrollbars.al
+++ /dev/null
@@ -1,86 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 265 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\packscrollbars.al)"
-sub packscrollbars
-{
- my ($cw) = @_;
- my $opt = $cw->cget('-scrollbars');
- my $slice = $cw->Subwidget('ysbslice');
- my $xsb = $cw->Subwidget('xscrollbar');
- my $corner = $cw->Subwidget('corner');
- my $w = $cw->Subwidget('scrolled');
- my $xside = (($opt =~ /n/) ? 'top' : 'bottom');
- my $havex = 0;
- my $havey = 0;
- $opt =~ s/r//;
- $cw->{'pack_pending'} = 0;
- if (defined $slice)
- {
- my $reqy;
- my $ysb = $cw->Subwidget('yscrollbar');
- if ($opt =~ /(o)?[we]/ && (($reqy = !defined($1)) || $ysb->Needed))
- {
- my $yside = (($opt =~ /w/) ? 'left' : 'right');
- $slice->pack(-side => $yside, -fill => 'y',-before => $slice->{'before'});
- $havey = 1;
- if ($reqy)
- {
- $w->configure(-yscrollcommand => ['set', $ysb]);
- }
- else
- {
- $w->configure(-yscrollcommand => ['sbset', $cw, $ysb, \$cw->{'packysb'}]);
- }
- }
- else
- {
- $w->configure(-yscrollcommand => undef) unless $opt =~ s/[we]//;
- $slice->packForget;
- }
- $cw->{'packysb'} = $havey;
- }
- if (defined $xsb)
- {
- my $reqx;
- if ($opt =~ /(o)?[ns]/ && (($reqx = !defined($1)) || $xsb->Needed))
- {
- $xsb->pack(-side => $xside, -fill => 'x',-before => $xsb->{'before'});
- $havex = 1;
- if ($reqx)
- {
- $w->configure(-xscrollcommand => ['set', $xsb]);
- }
- else
- {
- $w->configure(-xscrollcommand => ['sbset', $cw, $xsb, \$cw->{'packxsb'}]);
- }
- }
- else
- {
- $w->configure(-xscrollcommand => undef) unless $opt =~ s/[ns]//;
- $xsb->packForget;
- }
- $cw->{'packxsb'} = $havex;
- }
- if (defined $corner)
- {
- if ($havex && $havey && defined $corner->{'before'})
- {
- my $anchor = $opt;
- $anchor =~ s/o//g;
- $corner->configure(-height => $xsb->ReqHeight);
- $corner->pack(-before => $corner->{'before'}, -side => $xside,
- -anchor => $anchor, -fill => 'x');
- }
- else
- {
- $corner->packForget;
- }
- }
-}
-
-# end of Tk::Frame::packscrollbars
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/queuePack.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/queuePack.al
deleted file mode 100644
index a8a24927d8c..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/queuePack.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 194 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\queuePack.al)"
-sub queuePack
-{
- my ($cw) = @_;
- unless ($cw->{'pack_pending'})
- {
- $cw->{'pack_pending'} = 1;
- $cw->afterIdle([$cw,'packscrollbars']);
- }
-}
-
-# end of Tk::Frame::queuePack
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/sbset.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/sbset.al
deleted file mode 100644
index 357fcfd4a4e..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/sbset.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 204 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\sbset.al)"
-sub sbset
-{
- my ($cw,$sb,$ref,@args) = @_;
- $sb->set(@args);
- $cw->queuePack if (@args == 2 && $sb->Needed != $$ref);
-}
-
-# end of Tk::Frame::sbset
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Frame/scrollbars.al b/Master/xemtex/perl/site/lib/auto/Tk/Frame/scrollbars.al
deleted file mode 100644
index 2a4706eb198..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Frame/scrollbars.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 343 "blib\lib\Tk/Frame.pm (autosplit into blib\lib\auto\Tk\Frame\scrollbars.al)"
-sub scrollbars
-{
- my ($cw,$opt) = @_;
- my $var = \$cw->{'-scrollbars'};
- if (@_ > 1)
- {
- my $old = $$var;
- if (!defined $old || $old ne $opt)
- {
- $$var = $opt;
- $cw->queuePack;
- }
- }
- return $$var;
-}
-
-# end of Tk::Frame::scrollbars
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/ImageNames.al b/Master/xemtex/perl/site/lib/auto/Tk/ImageNames.al
deleted file mode 100644
index 2a4bd24818a..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/ImageNames.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 667 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\ImageNames.al)"
-sub ImageNames
-{
- image('names');
-}
-
-# end of Tk::ImageNames
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/ImageTypes.al b/Master/xemtex/perl/site/lib/auto/Tk/ImageTypes.al
deleted file mode 100644
index 0f9b8be674a..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/ImageTypes.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 672 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\ImageTypes.al)"
-sub ImageTypes
-{
- image('types');
-}
-
-# end of Tk::ImageTypes
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/AutoScan.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/AutoScan.al
deleted file mode 100644
index e366618df81..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/AutoScan.al
+++ /dev/null
@@ -1,48 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 634 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\AutoScan.al)"
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-# y - The y-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if ($y >= $w->height)
- {
- $w->yview('scroll',1,'units')
- }
- elsif ($y < 0)
- {
- $w->yview('scroll',-1,'units')
- }
- elsif ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->Motion($w->index("@" . $x . ',' . $y));
- $w->RepeatId($w->after(50,'AutoScan',$w,$x,$y));
-}
-
-# end of Tk::Listbox::AutoScan
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginExtend.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginExtend.al
deleted file mode 100644
index ad3fe4c6d33..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginExtend.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 584 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\BeginExtend.al)"
-# BeginExtend --
-#
-# This procedure is typically invoked on shift-button-1 presses. It
-# begins the process of extending a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginExtend
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended' && $w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
-}
-
-# end of Tk::Listbox::BeginExtend
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginSelect.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginSelect.al
deleted file mode 100644
index b29359c70c5..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginSelect.al
+++ /dev/null
@@ -1,45 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 491 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\BeginSelect.al)"
-# BeginSelect --
-#
-# This procedure is typically invoked on button-1 presses. It begins
-# the process of making a selection in the listbox. Its exact behavior
-# depends on the selection mode currently in effect for the listbox;
-# see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginSelect
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'multiple')
- {
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
- else
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- @Selection = ();
- $Prev = $el
- }
- $w->focus if ($w->cget('-takefocus'));
-}
-
-# end of Tk::Listbox::BeginSelect
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginToggle.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginToggle.al
deleted file mode 100644
index 3f7ddff4cf9..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/BeginToggle.al
+++ /dev/null
@@ -1,39 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 604 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\BeginToggle.al)"
-# BeginToggle --
-#
-# This procedure is typically invoked on control-button-1 presses. It
-# begins the process of toggling a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginToggle
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended')
- {
- @Selection = $w->curselection();
- $Prev = $el;
- $w->selectionAnchor($el);
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
-}
-
-# end of Tk::Listbox::BeginToggle
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/ButtonRelease_1.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/ButtonRelease_1.al
deleted file mode 100644
index 7461080092f..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/ButtonRelease_1.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 450 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\ButtonRelease_1.al)"
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat;
- $w->activate($Ev->xy);
-}
-
-# end of Tk::Listbox::ButtonRelease_1
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cancel.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cancel.al
deleted file mode 100644
index 3974c2e145c..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cancel.al
+++ /dev/null
@@ -1,43 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 754 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cancel.al)"
-# Cancel
-#
-# This procedure is invoked to cancel an extended selection in
-# progress. If there is an extended selection in progress, it
-# restores all of the items between the active one and the anchor
-# to their previous selection state.
-#
-# Arguments:
-# w - The listbox widget.
-sub Cancel
-{
- my $w = shift;
- if ($w->cget('-selectmode') ne 'extended' || !defined $Prev)
- {
- return;
- }
- $first = $w->index('anchor');
- $last = $Prev;
- if ($first > $last)
- {
- $tmp = $first;
- $first = $last;
- $last = $tmp
- }
- $w->selectionClear($first,$last);
- while ($first <= $last)
- {
- if (Tk::lsearch(\@Selection,$first) >= 0)
- {
- $w->selectionSet($first)
- }
- $first += 1
- }
-}
-
-# end of Tk::Listbox::Cancel
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_End.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_End.al
deleted file mode 100644
index de53c8048aa..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_End.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 470 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cntrl_End.al)"
-sub Cntrl_End
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate('end');
- $w->see('end');
- $w->selectionClear(0,'end');
- $w->selectionSet('end')
-}
-
-# end of Tk::Listbox::Cntrl_End
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_Home.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_Home.al
deleted file mode 100644
index 34f09d21bb9..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_Home.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 459 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cntrl_Home.al)"
-sub Cntrl_Home
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate(0);
- $w->see(0);
- $w->selectionClear(0,'end');
- $w->selectionSet(0)
-}
-
-# end of Tk::Listbox::Cntrl_Home
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_backslash.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_backslash.al
deleted file mode 100644
index 382a68528a8..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Cntrl_backslash.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 481 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cntrl_backslash.al)"
-sub Cntrl_backslash
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if ($w->cget('-selectmode') ne 'browse')
- {
- $w->selectionClear(0,'end');
- }
-}
-
-# end of Tk::Listbox::Cntrl_backslash
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/DataExtend.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/DataExtend.al
deleted file mode 100644
index fdeb0368bba..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/DataExtend.al
+++ /dev/null
@@ -1,39 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 724 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\DataExtend.al)"
-# DataExtend
-#
-# This procedure is called for key-presses such as Shift-KEndData.
-# If the selection mode isn't multiple or extend then it does nothing.
-# Otherwise it moves the active element to el and, if we're in
-# extended mode, extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# el - An integer element number.
-sub DataExtend
-{
- my $w = shift;
- my $el = shift;
- $mode = $w->cget('-selectmode');
- if ($mode eq 'extended')
- {
- $w->activate($el);
- $w->see($el);
- if ($w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- }
- elsif ($mode eq 'multiple')
- {
- $w->activate($el);
- $w->see($el)
- }
-}
-
-# end of Tk::Listbox::DataExtend
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/ExtendUpDown.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/ExtendUpDown.al
deleted file mode 100644
index 9c21c0a93a1..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/ExtendUpDown.al
+++ /dev/null
@@ -1,30 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 703 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\ExtendUpDown.al)"
-# ExtendUpDown --
-#
-# Does nothing unless we're in extended selection mode; in this
-# case it moves the location cursor (active element) up or down by
-# one element, and extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub ExtendUpDown
-{
- my $w = shift;
- my $amount = shift;
- if ($w->cget('-selectmode') ne 'extended')
- {
- return;
- }
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- $w->Motion($w->index('active'))
-}
-
-# end of Tk::Listbox::ExtendUpDown
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Listbox.dll b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Listbox.dll
deleted file mode 100644
index de4907125a9..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Listbox.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Motion.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Motion.al
deleted file mode 100644
index d67ec8121d9..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/Motion.al
+++ /dev/null
@@ -1,66 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 527 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Motion.al)"
-# Motion --
-#
-# This procedure is called to process mouse motion events while
-# button 1 is down. It may move or extend the selection, depending
-# on the listbox's selection mode.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element under the pointer (must be a number).
-sub Motion
-{
- my $w = shift;
- my $el = shift;
- if (defined($Prev) && $el == $Prev)
- {
- return;
- }
- $anchor = $w->index('anchor');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $Prev = $el;
- }
- elsif ($mode eq 'extended')
- {
- $i = $Prev;
- if ($w->selectionIncludes('anchor'))
- {
- $w->selectionClear($i,$el);
- $w->selectionSet('anchor',$el)
- }
- else
- {
- $w->selectionClear($i,$el);
- $w->selectionClear('anchor',$el)
- }
- while ($i < $el && $i < $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i += 1
- }
- while ($i > $el && $i > $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i += -1
- }
- $Prev = $el
- }
-}
-
-# end of Tk::Listbox::Motion
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/SelectAll.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/SelectAll.al
deleted file mode 100644
index 319ce5c2a9c..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/SelectAll.al
+++ /dev/null
@@ -1,31 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 788 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\SelectAll.al)"
-# SelectAll
-#
-# This procedure is invoked to handle the "select all" operation.
-# For single and browse mode, it just selects the active element.
-# Otherwise it selects everything in the widget.
-#
-# Arguments:
-# w - The listbox widget.
-sub SelectAll
-{
- my $w = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'single' || $mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- else
- {
- $w->selectionSet(0,'end')
- }
-}
-
-# end of Tk::Listbox::SelectAll
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/SetList.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/SetList.al
deleted file mode 100644
index 5f4ba81ddf3..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/SetList.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 811 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\SetList.al)"
-sub SetList
-{
- my $w = shift;
- $w->delete(0,'end');
- $w->insert('end',@_);
-}
-
-# end of Tk::Listbox::SetList
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/UpDown.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/UpDown.al
deleted file mode 100644
index e2ce7edce78..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/UpDown.al
+++ /dev/null
@@ -1,39 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 673 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\UpDown.al)"
-# UpDown --
-#
-# Moves the location cursor (active element) up or down by one element,
-# and changes the selection if we're in browse or extended selection
-# mode.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub UpDown
-{
- my $w = shift;
- my $amount = shift;
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- $LNet__0 = $w->cget('-selectmode');
- if ($LNet__0 eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- elsif ($LNet__0 eq 'extended')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->selectionAnchor('active');
- $Prev = $w->index('active');
- @Selection = ();
- }
-}
-
-# end of Tk::Listbox::UpDown
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/autosplit.ix
deleted file mode 100644
index 5846f38c4ce..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/autosplit.ix
+++ /dev/null
@@ -1,42 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Listbox.pm
-# (file acts as timestamp)
-package Tk::Listbox;
-sub xyIndex
-;
-sub ButtonRelease_1
-;
-sub Cntrl_Home
-;
-sub Cntrl_End
-;
-sub Cntrl_backslash
-;
-sub BeginSelect
-;
-sub Motion
-;
-sub BeginExtend
-;
-sub BeginToggle
-;
-sub AutoScan
-;
-sub UpDown
-;
-sub ExtendUpDown
-;
-sub DataExtend
-;
-sub Cancel
-;
-sub SelectAll
-;
-sub SetList
-;
-sub deleteSelected
-;
-sub clipboardPaste
-;
-sub getSelected
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/clipboardPaste.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/clipboardPaste.al
deleted file mode 100644
index 7deae1e75a4..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/clipboardPaste.al
+++ /dev/null
@@ -1,21 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 828 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\clipboardPaste.al)"
-sub clipboardPaste
-{
- my $w = shift;
- my $index = $w->index('active') || $w->index($w->XEvent->xy);
- my $str;
- eval {local $SIG{__DIE__}; $str = $w->clipboardGet };
- return if $@;
- foreach (split("\n",$str))
- {
- $w->insert($index++,$_);
- }
-}
-
-# end of Tk::Listbox::clipboardPaste
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/deleteSelected.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/deleteSelected.al
deleted file mode 100644
index 6fc89af9e91..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/deleteSelected.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 818 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\deleteSelected.al)"
-sub deleteSelected
-{
- my $w = shift;
- my $i;
- foreach $i (reverse $w->curselection)
- {
- $w->delete($i);
- }
-}
-
-# end of Tk::Listbox::deleteSelected
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/getSelected.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/getSelected.al
deleted file mode 100644
index 64706cfa9b4..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/getSelected.al
+++ /dev/null
@@ -1,22 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 841 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\getSelected.al)"
-sub getSelected
-{
- my ($w) = @_;
- my $i;
- my (@result) = ();
- foreach $i ($w->curselection)
- {
- push(@result,$w->get($i));
- }
- return (wantarray) ? @result : $result[0];
-}
-
-1;
-__END__
-1;
-# end of Tk::Listbox::getSelected
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/xyIndex.al b/Master/xemtex/perl/site/lib/auto/Tk/Listbox/xyIndex.al
deleted file mode 100644
index bfd364a7f9b..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Listbox/xyIndex.al
+++ /dev/null
@@ -1,27 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 431 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\xyIndex.al)"
-#
-# Bind --
-# This procedure is invoked the first time the mouse enters a listbox
-# widget or a listbox widget receives the input focus. It creates
-# all of the class bindings for listboxes.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-
-sub xyIndex
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- return $w->index($Ev->xy);
-}
-
-# end of Tk::Listbox::xyIndex
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Menubutton/Menubutton.dll b/Master/xemtex/perl/site/lib/auto/Tk/Menubutton/Menubutton.dll
deleted file mode 100644
index f05f347cc8b..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Menubutton/Menubutton.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Pixmap/Pixmap.dll b/Master/xemtex/perl/site/lib/auto/Tk/Pixmap/Pixmap.dll
deleted file mode 100644
index 0e887aaefc3..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Pixmap/Pixmap.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Receive.al b/Master/xemtex/perl/site/lib/auto/Tk/Receive.al
deleted file mode 100644
index e33b6bdc1af..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Receive.al
+++ /dev/null
@@ -1,23 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 638 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\Receive.al)"
-# If we have sub Clipboard in Tk then use base qw(Tk::Clipboard ....)
-# calls it when it does its eval "require $base"
-#sub Clipboard
-#{my $w = shift;
-# my $cmd = shift;
-# croak "Use clipboard\u$cmd()";
-#}
-
-sub Receive
-{
- my $w = shift;
- warn 'Receive(' . join(',',@_) .')';
- die 'Tk rejects send(' . join(',',@_) .")\n";
-}
-
-# end of Tk::Receive
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/RepeatId.al b/Master/xemtex/perl/site/lib/auto/Tk/RepeatId.al
deleted file mode 100644
index 06728f02221..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/RepeatId.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 412 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\RepeatId.al)"
-sub RepeatId
-{
- my ($w,$id) = @_;
- $w = $w->MainWindow;
- $w->CancelRepeat;
- $w->{_afterId_} = $id;
-}
-
-# end of Tk::RepeatId
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Activate.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/Activate.al
deleted file mode 100644
index 500358c8e0e..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Activate.al
+++ /dev/null
@@ -1,33 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 86 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Activate.al)"
-# Activate --
-# This procedure is invoked to check a given x-y position in the
-# scale and activate the slider if the x-y position falls within
-# the slider.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Activate
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return if ($w->cget('-state') eq 'disabled');
- my $ident = $w->identify($x,$y);
- if (defined($ident) && $ident eq 'slider')
- {
- $w->configure(-state => 'active')
- }
- else
- {
- $w->configure(-state => 'normal')
- }
-}
-
-# end of Tk::Scale::Activate
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonDown.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonDown.al
deleted file mode 100644
index 61ed6f32c11..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonDown.al
+++ /dev/null
@@ -1,40 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 138 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\ButtonDown.al)"
-# ButtonDown --
-# This procedure is invoked when a button is pressed in a scale. It
-# takes different actions depending on where the button was pressed.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates of button press.
-sub ButtonDown
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- $Tk::dragging = 0;
- $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->Increment('up','little','initial')
- }
- elsif ($el eq 'trough2')
- {
- $w->Increment('down','little','initial')
- }
- elsif ($el eq 'slider')
- {
- $Tk::dragging = 1;
- my @coords = $w->coords();
- $Tk::deltaX = $x-$coords[0];
- $Tk::deltaY = $y-$coords[1];
- }
-}
-
-# end of Tk::Scale::ButtonDown
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonUp.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonUp.al
deleted file mode 100644
index d5a22a77a46..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/ButtonUp.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 129 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\ButtonUp.al)"
-sub ButtonUp
-{
- my ($w,$x,$y) = @_;
- $w->CancelRepeat();
- $w->EndDrag();
- $w->Activate($x,$y)
-}
-
-# end of Tk::Scale::ButtonUp
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/ControlPress.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/ControlPress.al
deleted file mode 100644
index 50d7ad8b447..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/ControlPress.al
+++ /dev/null
@@ -1,31 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 255 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\ControlPress.al)"
-# ControlPress --
-# This procedure handles button presses that are made with the Control
-# key down. Depending on the mouse position, it adjusts the scale
-# value to one end of the range or the other.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates where the button was pressed.
-sub ControlPress
-{
- my ($w,$x,$y) = @_;
- my $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->set($w->cget('-from'))
- }
- elsif ($el eq 'trough2')
- {
- $w->set($w->cget('-to'))
- }
-}
-
-1;
-# end of Tk::Scale::ControlPress
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Drag.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/Drag.al
deleted file mode 100644
index 0bc63b12879..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Drag.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 169 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Drag.al)"
-# Drag --
-# This procedure is called when the mouse is dragged with
-# mouse button 1 down. If the drag started inside the slider
-# (i.e. the scale is active) then the scale's value is adjusted
-# to reflect the mouse's position.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Drag
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $w->set($w->get($x-$Tk::deltaX,$y-$Tk::deltaY))
-}
-
-# end of Tk::Scale::Drag
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/EndDrag.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/EndDrag.al
deleted file mode 100644
index 86037b86d92..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/EndDrag.al
+++ /dev/null
@@ -1,23 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 189 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\EndDrag.al)"
-# EndDrag --
-# This procedure is called to end an interactive drag of the
-# slider. It just marks the drag as over.
-# Arguments:
-# w - The scale widget.
-sub EndDrag
-{
- my $w = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $Tk::dragging = 0;
-}
-
-# end of Tk::Scale::EndDrag
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Enter.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/Enter.al
deleted file mode 100644
index 1326a5ed9a0..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Enter.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 118 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Enter.al)"
-sub Enter
-{
- my ($w,$x,$y) = @_;
- if ($Tk::strictMotif)
- {
- $w->{'activeBg'} = $w->cget('-activebackground');
- $w->configure('-activebackground',$w->cget('-background'));
- }
- $w->Activate($x,$y);
-}
-
-# end of Tk::Scale::Enter
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Increment.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/Increment.al
deleted file mode 100644
index 76432eeaf40..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Increment.al
+++ /dev/null
@@ -1,61 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 203 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Increment.al)"
-# Increment --
-# This procedure is invoked to increment the value of a scale and
-# to set up auto-repeating of the action if that is desired. The
-# way the value is incremented depends on the "dir" and "big"
-# arguments.
-#
-# Arguments:
-# w - The scale widget.
-# dir - "up" means move value towards -from, "down" means
-# move towards -to.
-# big - Size of increments: "big" or "little".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-sub Increment
-{
- my $w = shift;
- my $dir = shift;
- my $big = shift;
- my $repeat = shift;
- my $inc;
- if ($big eq 'big')
- {
- $inc = $w->cget('-bigincrement');
- if ($inc == 0)
- {
- $inc = abs(($w->cget('-to')-$w->cget('-from')))/10.0
- }
- if ($inc < $w->cget('-resolution'))
- {
- $inc = $w->cget('-resolution')
- }
- }
- else
- {
- $inc = $w->cget('-resolution')
- }
- if (($w->cget('-from') > $w->cget('-to')) ^ ($dir eq 'up'))
- {
- $inc = -$inc
- }
- $w->set($w->get()+$inc);
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),'Increment',$w,$dir,$big,'again'));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),'Increment',$w,$dir,$big,'again'));
- }
-}
-
-# end of Tk::Scale::Increment
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Leave.al b/Master/xemtex/perl/site/lib/auto/Tk/Scale/Leave.al
deleted file mode 100644
index eb6f7b69f89..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Leave.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 111 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Leave.al)"
-sub Leave
-{
- my ($w) = @_;
- $w->configure('-activebackground',$w->{'activeBg'}) if ($Tk::strictMotif);
- $w->configure('-state','normal') if ($w->cget('-state') eq 'active');
-}
-
-# end of Tk::Scale::Leave
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Scale.dll b/Master/xemtex/perl/site/lib/auto/Tk/Scale/Scale.dll
deleted file mode 100644
index ff1568bcfe6..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/Scale.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scale/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Scale/autosplit.ix
deleted file mode 100644
index a5c5d2292f2..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scale/autosplit.ix
+++ /dev/null
@@ -1,22 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Scale.pm
-# (file acts as timestamp)
-package Tk::Scale;
-sub Activate
-;
-sub Leave
-;
-sub Enter
-;
-sub ButtonUp
-;
-sub ButtonDown
-;
-sub Drag
-;
-sub EndDrag
-;
-sub Increment
-;
-sub ControlPress
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonDown.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonDown.al
deleted file mode 100644
index c17199b73b6..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonDown.al
+++ /dev/null
@@ -1,55 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 106 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ButtonDown.al)"
-# tkScrollButtonDown --
-# This procedure is invoked when a button is pressed in a scrollbar.
-# It changes the way the scrollbar is displayed and takes actions
-# depending on where the mouse is.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonDown
-{my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- $w->configure('-activerelief' => 'sunken');
- if ($e->b == 1 and
- (defined($element) && $element eq 'slider'))
- {
- $w->StartDrag($e->x,$e->y);
- }
- elsif ($e->b == 2 and
- (defined($element) && $element =~ /^(trough[12]|slider)$/o))
- {
- my $pos = $w->fraction($e->x, $e->y);
- my($head, $tail) = $w->get;
- my $len = $tail - $head;
-
- $head = $pos - $len/2;
- $tail = $pos + $len/2;
- if ($head < 0) {
- $head = 0;
- $tail = $len;
- }
- elsif ($tail > 1) {
- $head = 1 - $len;
- $tail = 1;
- }
- $w->ScrlToPos($head);
- $w->set($head, $tail);
-
- $w->StartDrag($e->x,$e->y);
- }
- else
- {
- $w->Select($element,'initial');
- }
-}
-
-# end of Tk::Scrollbar::ButtonDown
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonUp.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonUp.al
deleted file mode 100644
index 24058d857ec..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ButtonUp.al
+++ /dev/null
@@ -1,26 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 153 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ButtonUp.al)"
-# tkScrollButtonUp --
-# This procedure is invoked when a button is released in a scrollbar.
-# It cancels scans and auto-repeats that were in progress, and restores
-# the way the active element is displayed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonUp
-{my $w = shift;
- my $e = $w->XEvent;
- $w->CancelRepeat;
- $w->configure('-activerelief' => 'raised');
- $w->EndDrag($e->x,$e->y);
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# end of Tk::Scrollbar::ButtonUp
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Drag.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Drag.al
deleted file mode 100644
index 40d6b0f8d1b..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Drag.al
+++ /dev/null
@@ -1,44 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 247 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Drag.al)"
-# tkScrollDrag --
-# This procedure is called for each mouse motion even when the slider
-# is being dragged. It notifies the associated widget if we're not
-# jump scrolling, and it just updates the scrollbar if we are jump
-# scrolling.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The current mouse position.
-
-sub Drag
-{my $w = shift;
- my $e = $w->XEvent;
- return unless (defined $initMouse);
- my $f = $w->fraction($e->x,$e->y);
- my $delta = $f - $initMouse;
- if ($w->cget('-jump'))
- {
- if (@initValues == 2)
- {
- $w->set($initValues[0]+$delta,$initValues[1]+$delta);
- }
- else
- {
- $delta = int($delta * $initValues[0]);
- $initValues[2] += $delta;
- $initValues[3] += $delta;
- $w->set(@initValues);
- }
- }
- else
- {
- $w->ScrlToPos($initPos+$delta);
- }
-}
-
-# end of Tk::Scrollbar::Drag
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/EndDrag.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/EndDrag.al
deleted file mode 100644
index 5b1fc837326..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/EndDrag.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 283 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\EndDrag.al)"
-# tkScrollEndDrag --
-# This procedure is called to end an interactive drag of the slider.
-# It scrolls the window if we're in jump mode, otherwise it does nothing.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the end of the drag operation.
-
-sub EndDrag
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return unless defined($initMouse);
- if ($w->cget('-jump'))
- {
- $w->ScrlToPos($initPos + $w->fraction($x,$y) - $initMouse);
- }
- undef $initMouse;
-}
-
-# end of Tk::Scrollbar::EndDrag
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Enter.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Enter.al
deleted file mode 100644
index 45a21f920e5..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Enter.al
+++ /dev/null
@@ -1,21 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 76 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Enter.al)"
-sub Enter
-{
- my $w = shift;
- my $e = $w->XEvent;
- if ($Tk::strictMotif)
- {
- my $bg = $w->cget('-background');
- $activeBg = $w->cget('-activebackground');
- $w->configure('-activebackground' => $bg);
- }
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# end of Tk::Scrollbar::Enter
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Leave.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Leave.al
deleted file mode 100644
index 349911e304e..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Leave.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 89 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Leave.al)"
-sub Leave
-{
- my $w = shift;
- if ($Tk::strictMotif)
- {
- $w->configure('-activebackground' => $activeBg) if (defined $activeBg) ;
- }
- $w->activate('');
-}
-
-# end of Tk::Scrollbar::Leave
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Motion.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Motion.al
deleted file mode 100644
index 0b414efa389..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Motion.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 99 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Motion.al)"
-sub Motion
-{
- my $w = shift;
- my $e = $w->XEvent;
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# end of Tk::Scrollbar::Motion
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByPages.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByPages.al
deleted file mode 100644
index bd3d29afa77..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByPages.al
+++ /dev/null
@@ -1,38 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 333 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlByPages.al)"
-# tkScrlByPages --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of screenfuls. It notifies the associated
-# widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many screens to scroll: typically 1 or -1.
-
-sub ScrlByPages
-{
- my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'pages');
- }
- else
- {
- $cmd->Call($info[2]+$amount*($info[1]-1));
- }
-}
-
-# end of Tk::Scrollbar::ScrlByPages
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByUnits.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByUnits.al
deleted file mode 100644
index 99e84e394c5..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlByUnits.al
+++ /dev/null
@@ -1,37 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 304 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlByUnits.al)"
-# tkScrlByUnits --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of units. It notifies the associated widget
-# in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many units to scroll: typically 1 or -1.
-
-sub ScrlByUnits
-{my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'units');
- }
- else
- {
- $cmd->Call($info[2]+$amount);
- }
-}
-
-# end of Tk::Scrollbar::ScrlByUnits
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlToPos.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlToPos.al
deleted file mode 100644
index c3a25af3c19..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlToPos.al
+++ /dev/null
@@ -1,35 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 363 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlToPos.al)"
-# tkScrlToPos --
-# This procedure tells the scrollbar's associated widget to scroll to
-# a particular location, given by a fraction between 0 and 1. It notifies
-# the associated widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# pos - A fraction between 0 and 1 indicating a desired position
-# in the document.
-
-sub ScrlToPos
-{
- my $w = shift;
- my $pos = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('moveto',$pos);
- }
- else
- {
- $cmd->Call(int($info[0]*$pos));
- }
-}
-
-# end of Tk::Scrollbar::ScrlToPos
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlTopBottom.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlTopBottom.al
deleted file mode 100644
index 71be23e6794..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/ScrlTopBottom.al
+++ /dev/null
@@ -1,32 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 390 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlTopBottom.al)"
-# tkScrlTopBottom
-# Scroll to the top or bottom of the document, depending on the mouse
-# position.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates within the widget.
-
-sub ScrlTopBottom
-{
- my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- return unless ($element);
- if ($element =~ /1$/)
- {
- $w->ScrlToPos(0);
- }
- elsif ($element =~ /2$/)
- {
- $w->ScrlToPos(1);
- }
-}
-
-1;
-# end of Tk::Scrollbar::ScrlTopBottom
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll
deleted file mode 100644
index 81eec672093..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Select.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Select.al
deleted file mode 100644
index 21a743bf7fd..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/Select.al
+++ /dev/null
@@ -1,59 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 171 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Select.al)"
-# tkScrollSelect --
-# This procedure is invoked when button 1 is pressed over the scrollbar.
-# It invokes one of several scrolling actions depending on where in
-# the scrollbar the button was pressed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# element - The element of the scrollbar that was selected, such
-# as "arrow1" or "trough2". Shouldn't be "slider".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-
-sub Select
-{
- my $w = shift;
- my $element = shift;
- my $repeat = shift;
- return unless defined ($element);
- if ($element eq 'arrow1')
- {
- $w->ScrlByUnits('hv',-1);
- }
- elsif ($element eq 'trough1')
- {
- $w->ScrlByPages('hv',-1);
- }
- elsif ($element eq 'trough2')
- {
- $w->ScrlByPages('hv', 1);
- }
- elsif ($element eq 'arrow2')
- {
- $w->ScrlByUnits('hv', 1);
- }
- else
- {
- return;
- }
-
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),['Select',$w,$element,'again']));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),['Select',$w,$element,'again']));
- }
-}
-
-# end of Tk::Scrollbar::Select
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/StartDrag.al b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/StartDrag.al
deleted file mode 100644
index d544dc53945..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/StartDrag.al
+++ /dev/null
@@ -1,33 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 222 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\StartDrag.al)"
-# tkScrollStartDrag --
-# This procedure is called to initiate a drag of the slider. It just
-# remembers the starting position of the slider.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the start of the drag operation.
-
-sub StartDrag
-{my $w = shift;
- my $x = shift;
- my $y = shift;
- return unless (defined ($w->cget('-command')));
- $initMouse = $w->fraction($x,$y);
- @initValues = $w->get();
- if (@initValues == 2)
- {
- $initPos = $initValues[0];
- }
- else
- {
- $initPos = $initValues[2] / $initValues[0];
- }
-}
-
-# end of Tk::Scrollbar::StartDrag
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/autosplit.ix
deleted file mode 100644
index 293d1322dd4..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Scrollbar/autosplit.ix
+++ /dev/null
@@ -1,30 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Scrollbar.pm
-# (file acts as timestamp)
-package Tk::Scrollbar;
-sub Enter
-;
-sub Leave
-;
-sub Motion
-;
-sub ButtonDown
-;
-sub ButtonUp
-;
-sub Select
-;
-sub StartDrag
-;
-sub Drag
-;
-sub EndDrag
-;
-sub ScrlByUnits
-;
-sub ScrlByPages
-;
-sub ScrlToPos
-;
-sub ScrlTopBottom
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Selection.al b/Master/xemtex/perl/site/lib/auto/Tk/Selection.al
deleted file mode 100644
index 0d50a9f31df..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Selection.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 628 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\Selection.al)"
-# These wrappers don't use method syntax so need to live
-# in same package as raw Tk routines are newXS'ed into.
-
-sub Selection
-{my $widget = shift;
- my $cmd = shift;
- croak 'Use SelectionOwn/SelectionOwner' if ($cmd eq 'own');
- croak "Use Selection\u$cmd()";
-}
-
-# end of Tk::Selection
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Text/Text.dll b/Master/xemtex/perl/site/lib/auto/Tk/Text/Text.dll
deleted file mode 100644
index 8cb98c8a455..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Text/Text.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Text/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Text/autosplit.ix
deleted file mode 100644
index 48a5455c34a..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Text/autosplit.ix
+++ /dev/null
@@ -1,3 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Text.pm
-# (file acts as timestamp)
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Tk.dll b/Master/xemtex/perl/site/lib/auto/Tk/Tk.dll
deleted file mode 100644
index ee55846fdcb..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Tk.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindIn.al b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindIn.al
deleted file mode 100644
index cc2ceaf7b63..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindIn.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 128 "blib\lib\Tk/Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_BindIn.al)"
-# tkFocusGroup_BindIn --
-#
-# Add a widget into the "FocusIn" list of the focus group. The $cmd will be
-# called when the widget is focused on by the user.
-#
-sub FG_BindIn {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusIn'}{$w} = Tk::Callback->new($cmd);
-}
-
-# end of Tk::Toplevel::FG_BindIn
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindOut.al b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindOut.al
deleted file mode 100644
index 5c5cf9cc3de..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_BindOut.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 139 "blib\lib\Tk/Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_BindOut.al)"
-# tkFocusGroup_BindOut --
-#
-# Add a widget into the "FocusOut" list of the focus group. The
-# $cmd will be called when the widget loses the focus (User
-# types Tab or click on another widget).
-#
-sub FG_BindOut {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusOut'}{$w} = Tk::Callback->new($cmd);
-}
-
-# end of Tk::Toplevel::FG_BindOut
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Create.al b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Create.al
deleted file mode 100644
index 0953c045be8..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Create.al
+++ /dev/null
@@ -1,56 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 80 "blib\lib\Tk/Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_Create.al)"
-#----------------------------------------------------------------------
-#
-# Focus Group
-#
-# Focus groups are used to handle the user's focusing actions inside a
-# toplevel.
-#
-# One example of using focus groups is: when the user focuses on an
-# entry, the text in the entry is highlighted and the cursor is put to
-# the end of the text. When the user changes focus to another widget,
-# the text in the previously focused entry is validated.
-#
-
-#----------------------------------------------------------------------
-# tkFocusGroup_Create --
-#
-# Create a focus group. All the widgets in a focus group must be
-# within the same focus toplevel. Each toplevel can have only
-# one focus group, which is identified by the name of the
-# toplevel widget.
-#
-sub FG_Create {
- my $t = shift;
- unless (exists $t->{'_fg'}) {
- $t->{'_fg'} = 1;
- $t->bind('<FocusIn>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_In($w, $Ev->d);
- }
- );
- $t->bind('<FocusOut>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Out($w, $Ev->d);
- }
- );
- $t->bind('<Destroy>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Destroy($w);
- }
- );
- # <Destroy> is not sufficient to break loops if never mapped.
- $t->OnDestroy([$t,'FG_Destroy']);
- }
-}
-
-# end of Tk::Toplevel::FG_Create
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Destroy.al b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Destroy.al
deleted file mode 100644
index e20f1eb7568..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Destroy.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 151 "blib\lib\Tk/Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_Destroy.al)"
-# tkFocusGroup_Destroy --
-#
-# Cleans up when members of the focus group is deleted, or when the
-# toplevel itself gets deleted.
-#
-sub FG_Destroy {
- my($t, $w) = @_;
- if (!defined($w) || $t == $w) {
- delete $t->{'_fg'};
- delete $t->{'_focus'};
- delete $t->{'_FocusOut'};
- delete $t->{'_FocusIn'};
- } else {
- if (exists $t->{'_focus'}) {
- delete $t->{'_focus'} if ($t->{'_focus'} == $w);
- }
- delete $t->{'_FocusIn'}{$w};
- delete $t->{'_FocusOut'}{$w};
- }
-}
-
-# end of Tk::Toplevel::FG_Destroy
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_In.al b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_In.al
deleted file mode 100644
index a4b5c67a155..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_In.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 172 "blib\lib\Tk/Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_In.al)"
-# tkFocusGroup_In --
-#
-# Handles the <FocusIn> event. Calls the FocusIn command for the newly
-# focused widget in the focus group.
-#
-sub FG_In {
- my($t, $w, $detail) = @_;
- if (defined $t->{'_focus'} and $t->{'_focus'} eq $w) {
- # This is already in focus
- return;
- } else {
- $t->{'_focus'} = $w;
- $t->{'_FocusIn'}{$w}->Call if exists $t->{'_FocusIn'}{$w};
- }
-}
-
-# end of Tk::Toplevel::FG_In
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Out.al b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Out.al
deleted file mode 100644
index 96a3841e6fd..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/FG_Out.al
+++ /dev/null
@@ -1,32 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 188 "blib\lib\Tk/Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_Out.al)"
-# tkFocusGroup_Out --
-#
-# Handles the <FocusOut> event. Checks if this is really a lose
-# focus event, not one generated by the mouse moving out of the
-# toplevel window. Calls the FocusOut command for the widget
-# who loses its focus.
-#
-sub FG_Out {
- my($t, $w, $detail) = @_;
- if ($detail ne 'NotifyNonlinear' and $detail ne 'NotifyNonlinearVirtual') {
- # This is caused by mouse moving out of the window
- return;
- }
- unless (exists $t->{'_FocusOut'}{$w}) {
- return;
- } else {
- $t->{'_FocusOut'}{$w}->Call;
- delete $t->{'_focus'};
- }
-}
-
-1;
-
-__END__
-1;
-# end of Tk::Toplevel::FG_Out
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/autosplit.ix
deleted file mode 100644
index 6267c58604c..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Toplevel/autosplit.ix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk/Toplevel.pm
-# (file acts as timestamp)
-package Tk::Toplevel;
-sub FG_Create ;
-sub FG_BindIn ;
-sub FG_BindOut ;
-sub FG_Destroy ;
-sub FG_In ;
-sub FG_Out ;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/TraverseToMenu.al b/Master/xemtex/perl/site/lib/auto/Tk/TraverseToMenu.al
deleted file mode 100644
index 03b814a1334..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/TraverseToMenu.al
+++ /dev/null
@@ -1,27 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 597 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\TraverseToMenu.al)"
-# tkTraverseToMenu --
-# This procedure implements keyboard traversal of menus. Given an
-# ASCII character "char", it looks for a menubutton with that character
-# underlined. If one is found, it posts the menubutton's menu
-#
-# Arguments:
-# w - Window in which the key was typed (selects
-# a toplevel window).
-# char - Character that selects a menu. The case
-# is ignored. If an empty string, nothing
-# happens.
-sub TraverseToMenu
-{
- my $w = shift;
- my $char = shift;
- return unless(defined $char && $char ne '');
- $w = $w->toplevel->FindMenu($char);
-}
-
-# end of Tk::TraverseToMenu
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Widget/ASkludge.al b/Master/xemtex/perl/site/lib/auto/Tk/Widget/ASkludge.al
deleted file mode 100644
index fe9b23df886..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Widget/ASkludge.al
+++ /dev/null
@@ -1,30 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1224 "blib\lib\Tk/Widget.pm (autosplit into blib\lib\auto\Tk\Widget\ASkludge.al)"
-sub ASkludge
-{
- my ($hash,$sense) = @_;
- foreach my $key (%$hash)
- {
- if ($key =~ /-.*variable/ && ref($hash->{$key}) eq 'SCALAR')
- {
- if ($sense)
- {
- my $val = ${$hash->{$key}};
- require Tie::Scalar;
- tie ${$hash->{$key}},'Tie::StdScalar';
- ${$hash->{$key}} = $val;
- }
- else
- {
- untie ${$hash->{$key}};
- }
- }
- }
-}
-
-# end of Tk::Widget::ASkludge
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Widget/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Widget/autosplit.ix
deleted file mode 100644
index f0a7ffb9891..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Widget/autosplit.ix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk/Widget.pm
-# (file acts as timestamp)
-package Tk::Widget;
-sub ASkludge
-;
-sub clipboardKeysyms
-;
-sub pathname
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Widget/clipboardKeysyms.al b/Master/xemtex/perl/site/lib/auto/Tk/Widget/clipboardKeysyms.al
deleted file mode 100644
index 71996befb5f..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Widget/clipboardKeysyms.al
+++ /dev/null
@@ -1,51 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1248 "blib\lib\Tk/Widget.pm (autosplit into blib\lib\auto\Tk\Widget\clipboardKeysyms.al)"
-# clipboardKeysyms --
-# This procedure is invoked to identify the keys that correspond to
-# the "copy", "cut", and "paste" functions for the clipboard.
-#
-# Arguments:
-# copy - Name of the key (keysym name plus modifiers, if any,
-# such as "Meta-y") used for the copy operation.
-# cut - Name of the key used for the cut operation.
-# paste - Name of the key used for the paste operation.
-#
-# This method is obsolete use clipboardOperations and abstract
-# event types instead. See Clipboard.pm and Mainwindow.pm
-
-sub clipboardKeysyms
-{
- my @class = ();
- my $mw = shift;
- if (ref $mw)
- {
- $mw = $mw->DelegateFor('bind');
- }
- else
- {
- push(@class,$mw);
- $mw = shift;
- }
- if (@_)
- {
- my $copy = shift;
- $mw->Tk::bind(@class,"<$copy>",'clipboardCopy') if (defined $copy);
- }
- if (@_)
- {
- my $cut = shift;
- $mw->Tk::bind(@class,"<$cut>",'clipboardCut') if (defined $cut);
- }
- if (@_)
- {
- my $paste = shift;
- $mw->Tk::bind(@class,"<$paste>",'clipboardPaste') if (defined $paste);
- }
-}
-
-# end of Tk::Widget::clipboardKeysyms
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Widget/pathname.al b/Master/xemtex/perl/site/lib/auto/Tk/Widget/pathname.al
deleted file mode 100644
index e22439a73cd..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Widget/pathname.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1291 "blib\lib\Tk/Widget.pm (autosplit into blib\lib\auto\Tk\Widget\pathname.al)"
-sub pathname
-{
- my ($w,$id) = @_;
- my $x = $w->winfo('pathname',-displayof => oct($id));
- return $x->PathName;
-}
-
-1;
-# end of Tk::Widget::pathname
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Wm/AnchorAdjust.al b/Master/xemtex/perl/site/lib/auto/Tk/Wm/AnchorAdjust.al
deleted file mode 100644
index a699cee6920..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Wm/AnchorAdjust.al
+++ /dev/null
@@ -1,17 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 84 "blib\lib\Tk/Wm.pm (autosplit into blib\lib\auto\Tk\Wm\AnchorAdjust.al)"
-sub AnchorAdjust
-{
- my ($anchor,$X,$Y,$w,$h) = @_;
- $anchor = 'c' unless (defined $anchor);
- $Y += ($anchor =~ /s/) ? $h : ($anchor =~ /n/) ? 0 : $h/2;
- $X += ($anchor =~ /e/) ? $w : ($anchor =~ /w/) ? 0 : $w/2;
- return ($X,$Y);
-}
-
-# end of Tk::Wm::AnchorAdjust
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Wm/FullScreen.al b/Master/xemtex/perl/site/lib/auto/Tk/Wm/FullScreen.al
deleted file mode 100644
index 83ab7a3241c..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Wm/FullScreen.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 130 "blib\lib\Tk/Wm.pm (autosplit into blib\lib\auto\Tk\Wm\FullScreen.al)"
-sub FullScreen
-{
- my $w = shift;
- my $over = (@_) ? shift : 0;
- my $width = $w->screenwidth;
- my $height = $w->screenheight;
- $w->GeometryRequest($width,$height);
- $w->overrideredirect($over & 1);
- $w->Post(0,0);
- $w->update;
- if ($over & 2)
- {
- my $x = $w->rootx;
- my $y = $w->rooty;
- $width -= 2*$x;
- $height -= $x + $y;
- $w->GeometryRequest($width,$height);
- $w->update;
- }
-}
-
-# end of Tk::Wm::FullScreen
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Wm/Popup.al b/Master/xemtex/perl/site/lib/auto/Tk/Wm/Popup.al
deleted file mode 100644
index 59a6f496d53..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Wm/Popup.al
+++ /dev/null
@@ -1,45 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 93 "blib\lib\Tk/Wm.pm (autosplit into blib\lib\auto\Tk\Wm\Popup.al)"
-sub Popup
-{
- my $w = shift;
- $w->configure(@_) if @_;
- $w->idletasks;
- my ($mw,$mh) = ($w->reqwidth,$w->reqheight);
- my ($rx,$ry,$rw,$rh) = (0,0,0,0);
- my $base = $w->cget('-popover');
- my $outside = 0;
- if (defined $base)
- {
- if ($base eq 'cursor')
- {
- ($rx,$ry) = $w->pointerxy;
- }
- else
- {
- $rx = $base->rootx;
- $ry = $base->rooty;
- $rw = $base->Width;
- $rh = $base->Height;
- }
- }
- else
- {
- my $sc = ($w->parent) ? $w->parent->toplevel : $w;
- $rx = -$sc->vrootx;
- $ry = -$sc->vrooty;
- $rw = $w->screenwidth;
- $rh = $w->screenheight;
- }
- my ($X,$Y) = AnchorAdjust($w->cget('-overanchor'),$rx,$ry,$rw,$rh);
- ($X,$Y) = AnchorAdjust($w->cget('-popanchor'),$X,$Y,-$mw,-$mh);
- $w->Post($X,$Y);
- $w->waitVisibility;
-}
-
-# end of Tk::Wm::Popup
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Wm/Post.al b/Master/xemtex/perl/site/lib/auto/Tk/Wm/Post.al
deleted file mode 100644
index 277981329b0..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Wm/Post.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 72 "blib\lib\Tk/Wm.pm (autosplit into blib\lib\auto\Tk\Wm\Post.al)"
-sub Post
-{
- my ($w,$X,$Y) = @_;
- $X = int($X);
- $Y = int($Y);
- $w->positionfrom('user');
- # $w->geometry("+$X+$Y");
- $w->MoveToplevelWindow($X,$Y);
- $w->deiconify;
- $w->raise;
-}
-
-# end of Tk::Wm::Post
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Wm/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/Wm/autosplit.ix
deleted file mode 100644
index 54b764985de..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Wm/autosplit.ix
+++ /dev/null
@@ -1,14 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk/Wm.pm
-# (file acts as timestamp)
-package Tk::Wm;
-sub Post
-;
-sub AnchorAdjust
-;
-sub Popup
-;
-sub FullScreen
-;
-sub iconposition
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/Wm/iconposition.al b/Master/xemtex/perl/site/lib/auto/Tk/Wm/iconposition.al
deleted file mode 100644
index 6a5b0ec92d8..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/Wm/iconposition.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk/Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 151 "blib\lib\Tk/Wm.pm (autosplit into blib\lib\auto\Tk\Wm\iconposition.al)"
-sub iconposition
-{
- my $w = shift;
- if (@_ == 1)
- {
- return $w->wm('iconposition',$1,$2) if $_[0] =~ /^(\d+),(\d+)$/;
- if ($_[0] =~ /^([+-])(\d+)([+-])(\d+)$/)
- {
- my $x = ($1 eq '-') ? $w->screenwidth-$2 : $2;
- my $y = ($3 eq '-') ? $w->screenheight-$4 : $4;
- return $w->wm('iconposition',$x,$y);
- }
- }
- $w->wm('iconposition',@_);
-}
-
-1;
-# end of Tk::Wm::iconposition
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/X/X.dll b/Master/xemtex/perl/site/lib/auto/Tk/X/X.dll
deleted file mode 100644
index 81c220688ae..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/X/X.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/X/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/X/autosplit.ix
deleted file mode 100644
index e63dbf19b00..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/X/autosplit.ix
+++ /dev/null
@@ -1,3 +0,0 @@
-# Index created by AutoSplit for ..\..\blib\lib\Tk\X.pm
-# (file acts as timestamp)
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/autosplit.ix b/Master/xemtex/perl/site/lib/auto/Tk/autosplit.ix
deleted file mode 100644
index 8e8d2880a02..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/autosplit.ix
+++ /dev/null
@@ -1,43 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk.pm
-# (file acts as timestamp)
-package Tk;
-sub Error
-;
-sub CancelRepeat
-;
-sub RepeatId
-;
-sub FocusChildren ;
-sub focusNext
-;
-sub focusPrev
-;
-sub FocusOK
-;
-sub EnterFocus
-;
-sub tabFocus
-;
-sub focusFollowsMouse
-;
-sub TraverseToMenu
-;
-sub FirstMenu
-;
-sub Selection
-;
-sub Receive
-;
-sub break
-;
-sub updateWidgets
-;
-sub ImageNames
-;
-sub ImageTypes
-;
-sub interps
-;
-sub lsearch
-;
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/break.al b/Master/xemtex/perl/site/lib/auto/Tk/break.al
deleted file mode 100644
index 388cd46b21b..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/break.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 653 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\break.al)"
-sub break
-{
- die "_TK_BREAK_\n";
-}
-
-# end of Tk::break
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/focusFollowsMouse.al b/Master/xemtex/perl/site/lib/auto/Tk/focusFollowsMouse.al
deleted file mode 100644
index 697e8c61fae..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/focusFollowsMouse.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 591 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\focusFollowsMouse.al)"
-sub focusFollowsMouse
-{
- my $widget = shift;
- $widget->bind('all','<Enter>','EnterFocus');
-}
-
-# end of Tk::focusFollowsMouse
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/focusNext.al b/Master/xemtex/perl/site/lib/auto/Tk/focusNext.al
deleted file mode 100644
index b5dbc9bc7d6..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/focusNext.al
+++ /dev/null
@@ -1,45 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 449 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\focusNext.al)"
-sub focusNext
-{
- my $w = shift;
- my $cur = $w;
- while (1)
- {
- # Descend to just before the first child of the current widget.
- my $parent = $cur;
- my @children = $cur->FocusChildren();
- my $i = -1;
- # Look for the next sibling that isn't a top-level.
- while (1)
- {
- $i += 1;
- if ($i < @children)
- {
- $cur = $children[$i];
- next if ($cur->toplevel == $cur);
- last
- }
- # No more siblings, so go to the current widget's parent.
- # If it's a top-level, break out of the loop, otherwise
- # look for its next sibling.
- $cur = $parent;
- last if ($cur->toplevel() == $cur);
- $parent = $parent->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- if ($cur == $w || $cur->FocusOK)
- {
- $cur->tabFocus;
- return;
- }
- }
-}
-
-# end of Tk::focusNext
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/focusPrev.al b/Master/xemtex/perl/site/lib/auto/Tk/focusPrev.al
deleted file mode 100644
index 77aadf1b929..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/focusPrev.al
+++ /dev/null
@@ -1,65 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 485 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\focusPrev.al)"
-# focusPrev --
-# This procedure is invoked to move the input focus to the previous
-# window before a given one. "Previous" is defined in terms of the
-# window stacking order, with all the windows underneath a given
-# top-level (no matter how deeply nested in the hierarchy) considered.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the previous window before this one in the traversal
-# order.
-sub focusPrev
-{
- my $w = shift;
- my $cur = $w;
- my @children;
- my $i;
- my $parent;
- while (1)
- {
- # Collect information about the current window's position
- # among its siblings. Also, if the window is a top-level,
- # then reposition to just after the last child of the window.
- if ($cur->toplevel() == $cur)
- {
- $parent = $cur;
- @children = $cur->FocusChildren();
- $i = @children;
- }
- else
- {
- $parent = $cur->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- # Go to the previous sibling, then descend to its last descendant
- # (highest in stacking order. While doing this, ignore top-levels
- # and their descendants. When we run out of descendants, go up
- # one level to the parent.
- while ($i > 0)
- {
- $i--;
- $cur = $children[$i];
- next if ($cur->toplevel() == $cur);
- $parent = $cur;
- @children = $parent->FocusChildren();
- $i = @children;
- }
- $cur = $parent;
- if ($cur == $w || $cur->FocusOK)
- {
- $cur->tabFocus;
- return;
- }
- }
-
-}
-
-# end of Tk::focusPrev
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/interps.al b/Master/xemtex/perl/site/lib/auto/Tk/interps.al
deleted file mode 100644
index fe01aa3099f..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/interps.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 677 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\interps.al)"
-sub interps
-{
- my $w = shift;
- return $w->winfo('interps','-displayof');
-}
-
-# end of Tk::interps
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/lsearch.al b/Master/xemtex/perl/site/lib/auto/Tk/lsearch.al
deleted file mode 100644
index 7a597051bec..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/lsearch.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 683 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\lsearch.al)"
-sub lsearch
-{my $ar = shift;
- my $x = shift;
- my $i;
- for ($i = 0; $i < scalar @$ar; $i++)
- {
- return $i if ($$ar[$i] eq $x);
- }
- return -1;
-}
-
-1;
-# end of Tk::lsearch
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/tabFocus.al b/Master/xemtex/perl/site/lib/auto/Tk/tabFocus.al
deleted file mode 100644
index 4016abff331..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/tabFocus.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 586 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\tabFocus.al)"
-sub tabFocus
-{
- shift->Tk::focus;
-}
-
-# end of Tk::tabFocus
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Tk/updateWidgets.al b/Master/xemtex/perl/site/lib/auto/Tk/updateWidgets.al
deleted file mode 100644
index 0fec5abb3c8..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Tk/updateWidgets.al
+++ /dev/null
@@ -1,17 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 658 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\updateWidgets.al)"
-sub updateWidgets
-{
- my ($w) = @_;
- while ($w->DoOneEvent(DONT_WAIT|IDLE_EVENTS|WINDOW_EVENTS))
- {
- }
- $w;
-}
-
-# end of Tk::updateWidgets
-1;
diff --git a/Master/xemtex/perl/site/lib/auto/Win32/API/API.dll b/Master/xemtex/perl/site/lib/auto/Win32/API/API.dll
deleted file mode 100644
index 4c478dc3136..00000000000
--- a/Master/xemtex/perl/site/lib/auto/Win32/API/API.dll
+++ /dev/null
Binary files differ
diff --git a/Master/xemtex/perl/site/lib/auto/XML/Parser/Expat/Expat.dll b/Master/xemtex/perl/site/lib/auto/XML/Parser/Expat/Expat.dll
deleted file mode 100644
index be327d38a47..00000000000
--- a/Master/xemtex/perl/site/lib/auto/XML/Parser/Expat/Expat.dll
+++ /dev/null
Binary files differ